2025-07-01 09:00:03,788 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:00:03,788 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:00:03,788 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:00:03,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-07-01 09:00:04,301 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 8, 59, 40), 8.83, 53.69, 0.0, 39.98, 7.54, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:00:04,301 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 08:59:40
2025-07-01 09:00:04,400 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:00:04,403 [DEBUG][       Thread-599523][   transport.py][1871] : starting thread (client mode): 0x8107f10
2025-07-01 09:00:04,403 [DEBUG][       Thread-599523][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:00:04,422 [DEBUG][       Thread-599523][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:00:04,422 [ INFO][       Thread-599523][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:00:04,424 [DEBUG][       Thread-599523][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:00:04,424 [DEBUG][       Thread-599523][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:00:04,424 [DEBUG][       Thread-599523][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:00:04,424 [DEBUG][       Thread-599523][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:00:04,424 [DEBUG][       Thread-599523][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:00:04,424 [DEBUG][       Thread-599523][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:00:04,424 [DEBUG][       Thread-599523][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:00:04,424 [DEBUG][       Thread-599523][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:00:04,424 [DEBUG][       Thread-599523][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:00:04,424 [DEBUG][       Thread-599523][   transport.py][1871] : client lang: <none>
2025-07-01 09:00:04,424 [DEBUG][       Thread-599523][   transport.py][1871] : server lang: <none>
2025-07-01 09:00:04,424 [DEBUG][       Thread-599523][   transport.py][1871] : kex follows: False
2025-07-01 09:00:04,424 [DEBUG][       Thread-599523][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:00:04,424 [DEBUG][       Thread-599523][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:00:04,424 [DEBUG][       Thread-599523][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:00:04,424 [DEBUG][       Thread-599523][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:00:04,424 [DEBUG][       Thread-599523][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:00:04,424 [DEBUG][       Thread-599523][   transport.py][1871] : Compression: none
2025-07-01 09:00:04,424 [DEBUG][       Thread-599523][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:00:04,437 [DEBUG][       Thread-599523][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:00:04,438 [DEBUG][       Thread-599523][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:00:04,438 [DEBUG][       Thread-599523][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:00:04,438 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:00:04,438 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:00:04,438 [DEBUG][       Thread-599523][   transport.py][1871] : userauth is OK
2025-07-01 09:00:04,450 [ INFO][       Thread-599523][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:00:04,450 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:00:05,310 [DEBUG][       Thread-599523][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:00:05,310 [DEBUG][       Thread-599523][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:00:05,352 [DEBUG][       Thread-599523][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:00:05,352 [DEBUG][       Thread-599523][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:00:05,354 [DEBUG][       Thread-599523][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:00:05,366 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:00:05,366 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:00:05,367 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:00:05,368 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:00:05,370 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:00:05,370 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:00:05,371 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:00:05,371 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:00:05,371 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.291262 -999.00   +7.50  26.62     58   +0.00 1 1 1 1 1   887    0 7.45 2.65 ----- 26.6 26.6 12.9 46.3 9.9 -23.7 9.2 -23.6 8.2 -22.6 9.1 -22.4
2025-07-01 09:00:05,371 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:00:05,371 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:00:05,371 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.291262
2025-07-01 09:00:05,371 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:00:05,371 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:00:05,371 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:00:05,371 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:00:05,371 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:00:05,371 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T08:59:40', tmtdew=8.83, humidity=53.69, cloud=0.0, wind=39.98, temperature=7.54, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T06:59:25.037', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:00:05,371 [DEBUG][       Thread-599523][   transport.py][1871] : EOF in transport thread
2025-07-01 09:00:05,448 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:00:05,457 [DEBUG][       Thread-599526][   transport.py][1871] : starting thread (client mode): 0x8157790
2025-07-01 09:00:05,458 [DEBUG][       Thread-599526][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:00:05,473 [DEBUG][       Thread-599526][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:00:05,473 [ INFO][       Thread-599526][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:00:05,481 [DEBUG][       Thread-599526][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:00:05,481 [DEBUG][       Thread-599526][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:00:05,481 [DEBUG][       Thread-599526][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:00:05,481 [DEBUG][       Thread-599526][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:00:05,481 [DEBUG][       Thread-599526][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:00:05,481 [DEBUG][       Thread-599526][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:00:05,481 [DEBUG][       Thread-599526][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:00:05,481 [DEBUG][       Thread-599526][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:00:05,481 [DEBUG][       Thread-599526][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:00:05,481 [DEBUG][       Thread-599526][   transport.py][1871] : client lang: <none>
2025-07-01 09:00:05,481 [DEBUG][       Thread-599526][   transport.py][1871] : server lang: <none>
2025-07-01 09:00:05,481 [DEBUG][       Thread-599526][   transport.py][1871] : kex follows: False
2025-07-01 09:00:05,481 [DEBUG][       Thread-599526][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:00:05,481 [DEBUG][       Thread-599526][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:00:05,481 [DEBUG][       Thread-599526][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:00:05,481 [DEBUG][       Thread-599526][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:00:05,481 [DEBUG][       Thread-599526][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:00:05,481 [DEBUG][       Thread-599526][   transport.py][1871] : Compression: none
2025-07-01 09:00:05,481 [DEBUG][       Thread-599526][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:00:05,537 [DEBUG][       Thread-599526][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:00:05,537 [DEBUG][       Thread-599526][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:00:05,537 [DEBUG][       Thread-599526][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:00:05,537 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:00:05,537 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:00:05,599 [DEBUG][       Thread-599526][   transport.py][1871] : userauth is OK
2025-07-01 09:00:05,599 [DEBUG][       Thread-599526][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:00:05,599 [DEBUG][       Thread-599526][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:00:05,599 [DEBUG][       Thread-599526][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:00:05,599 [DEBUG][       Thread-599526][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:00:05,613 [ INFO][       Thread-599526][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:00:05,613 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:00:05,614 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:00:06,648 [DEBUG][       Thread-599526][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:00:06,649 [DEBUG][       Thread-599526][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:00:06,702 [DEBUG][       Thread-599526][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:00:06,702 [DEBUG][       Thread-599526][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:00:06,712 [DEBUG][       Thread-599526][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:00:06,721 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:00:06,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-07-01 09:00:06,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-07-01 09:00:06,739 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:00:06,740 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:00:06,740 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:00:06,752 [DEBUG][       Thread-599526][   transport.py][1871] : EOF in transport thread
2025-07-01 09:00:08,888 [DEBUG][Thread-599528 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:00:16,751 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:00:16,751 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:00:16,751 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:00:16,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-07-01 09:00:17,237 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 0, 11), 8.85, 53.64, 0.0, 42.13, 7.57, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:00:17,237 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:00:11
2025-07-01 09:00:17,322 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:00:17,328 [DEBUG][       Thread-599529][   transport.py][1871] : starting thread (client mode): 0x81570d0
2025-07-01 09:00:17,328 [DEBUG][       Thread-599529][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:00:17,348 [DEBUG][       Thread-599529][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:00:17,348 [ INFO][       Thread-599529][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:00:17,352 [DEBUG][       Thread-599529][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:00:17,352 [DEBUG][       Thread-599529][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:00:17,352 [DEBUG][       Thread-599529][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:00:17,352 [DEBUG][       Thread-599529][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:00:17,352 [DEBUG][       Thread-599529][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:00:17,352 [DEBUG][       Thread-599529][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:00:17,352 [DEBUG][       Thread-599529][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:00:17,352 [DEBUG][       Thread-599529][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:00:17,352 [DEBUG][       Thread-599529][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:00:17,352 [DEBUG][       Thread-599529][   transport.py][1871] : client lang: <none>
2025-07-01 09:00:17,352 [DEBUG][       Thread-599529][   transport.py][1871] : server lang: <none>
2025-07-01 09:00:17,352 [DEBUG][       Thread-599529][   transport.py][1871] : kex follows: False
2025-07-01 09:00:17,352 [DEBUG][       Thread-599529][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:00:17,352 [DEBUG][       Thread-599529][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:00:17,352 [DEBUG][       Thread-599529][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:00:17,352 [DEBUG][       Thread-599529][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:00:17,352 [DEBUG][       Thread-599529][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:00:17,352 [DEBUG][       Thread-599529][   transport.py][1871] : Compression: none
2025-07-01 09:00:17,352 [DEBUG][       Thread-599529][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:00:17,363 [DEBUG][       Thread-599529][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:00:17,363 [DEBUG][       Thread-599529][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:00:17,364 [DEBUG][       Thread-599529][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:00:17,364 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:00:17,364 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:00:17,365 [DEBUG][       Thread-599529][   transport.py][1871] : userauth is OK
2025-07-01 09:00:17,390 [ INFO][       Thread-599529][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:00:17,390 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:00:17,910 [DEBUG][Thread-599531 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:00:18,165 [DEBUG][       Thread-599529][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:00:18,166 [DEBUG][       Thread-599529][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:00:18,209 [DEBUG][       Thread-599529][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:00:18,209 [DEBUG][       Thread-599529][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:00:18,213 [DEBUG][       Thread-599529][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:00:18,227 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:00:18,227 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:00:18,229 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:00:18,231 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:00:18,236 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:00:18,238 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:00:18,238 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:00:18,239 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:00:18,239 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.291262 -999.00   +7.50  26.62     58   +0.00 1 1 1 1 1   887    0 7.45 2.65 ----- 26.6 26.6 12.9 46.3 9.9 -23.7 9.2 -23.6 8.2 -22.6 9.1 -22.4
2025-07-01 09:00:18,239 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:00:18,239 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:00:18,239 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.291262
2025-07-01 09:00:18,240 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:00:18,240 [DEBUG][       Thread-599529][   transport.py][1871] : EOF in transport thread
2025-07-01 09:00:18,240 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:00:18,241 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:00:18,241 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:00:18,241 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:00:18,241 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:00:11', tmtdew=8.85, humidity=53.64, cloud=0.0, wind=42.13, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T06:59:25.037', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:00:18,325 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:00:18,337 [DEBUG][       Thread-599533][   transport.py][1871] : starting thread (client mode): 0x83c84f0
2025-07-01 09:00:18,337 [DEBUG][       Thread-599533][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:00:18,361 [DEBUG][       Thread-599533][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:00:18,361 [ INFO][       Thread-599533][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:00:18,368 [DEBUG][       Thread-599533][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:00:18,369 [DEBUG][       Thread-599533][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:00:18,369 [DEBUG][       Thread-599533][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:00:18,369 [DEBUG][       Thread-599533][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:00:18,369 [DEBUG][       Thread-599533][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:00:18,369 [DEBUG][       Thread-599533][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:00:18,369 [DEBUG][       Thread-599533][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:00:18,369 [DEBUG][       Thread-599533][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:00:18,369 [DEBUG][       Thread-599533][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:00:18,369 [DEBUG][       Thread-599533][   transport.py][1871] : client lang: <none>
2025-07-01 09:00:18,369 [DEBUG][       Thread-599533][   transport.py][1871] : server lang: <none>
2025-07-01 09:00:18,369 [DEBUG][       Thread-599533][   transport.py][1871] : kex follows: False
2025-07-01 09:00:18,369 [DEBUG][       Thread-599533][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:00:18,369 [DEBUG][       Thread-599533][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:00:18,369 [DEBUG][       Thread-599533][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:00:18,369 [DEBUG][       Thread-599533][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:00:18,369 [DEBUG][       Thread-599533][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:00:18,369 [DEBUG][       Thread-599533][   transport.py][1871] : Compression: none
2025-07-01 09:00:18,369 [DEBUG][       Thread-599533][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:00:18,426 [DEBUG][       Thread-599533][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:00:18,427 [DEBUG][       Thread-599533][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:00:18,428 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:00:18,428 [DEBUG][       Thread-599533][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:00:18,429 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:00:18,487 [DEBUG][       Thread-599533][   transport.py][1871] : userauth is OK
2025-07-01 09:00:18,487 [DEBUG][       Thread-599533][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:00:18,487 [DEBUG][       Thread-599533][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:00:18,487 [DEBUG][       Thread-599533][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:00:18,487 [DEBUG][       Thread-599533][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:00:18,510 [ INFO][       Thread-599533][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:00:18,510 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:00:18,510 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:00:19,074 [DEBUG][Thread-599535 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:00:19,508 [DEBUG][       Thread-599533][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:00:19,508 [DEBUG][       Thread-599533][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:00:19,556 [DEBUG][       Thread-599533][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:00:19,556 [DEBUG][       Thread-599533][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:00:19,565 [DEBUG][       Thread-599533][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:00:19,574 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:00:19,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-07-01 09:00:19,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-07-01 09:00:19,593 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:00:19,593 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:00:19,594 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:00:19,602 [DEBUG][       Thread-599533][   transport.py][1871] : EOF in transport thread
2025-07-01 09:00:26,933 [DEBUG][Thread-599536 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:00:29,600 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:00:29,600 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:00:29,600 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:00:29,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-07-01 09:00:30,085 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 0, 11), 8.85, 53.64, 0.0, 42.13, 7.57, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:00:30,085 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:00:11
2025-07-01 09:00:30,170 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:00:30,177 [DEBUG][       Thread-599537][   transport.py][1871] : starting thread (client mode): 0x8105480
2025-07-01 09:00:30,177 [DEBUG][       Thread-599537][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:00:30,206 [DEBUG][       Thread-599537][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:00:30,207 [ INFO][       Thread-599537][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:00:30,210 [DEBUG][       Thread-599537][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:00:30,210 [DEBUG][       Thread-599537][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:00:30,210 [DEBUG][       Thread-599537][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:00:30,210 [DEBUG][       Thread-599537][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:00:30,210 [DEBUG][       Thread-599537][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:00:30,210 [DEBUG][       Thread-599537][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:00:30,210 [DEBUG][       Thread-599537][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:00:30,211 [DEBUG][       Thread-599537][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:00:30,211 [DEBUG][       Thread-599537][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:00:30,211 [DEBUG][       Thread-599537][   transport.py][1871] : client lang: <none>
2025-07-01 09:00:30,211 [DEBUG][       Thread-599537][   transport.py][1871] : server lang: <none>
2025-07-01 09:00:30,211 [DEBUG][       Thread-599537][   transport.py][1871] : kex follows: False
2025-07-01 09:00:30,211 [DEBUG][       Thread-599537][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:00:30,211 [DEBUG][       Thread-599537][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:00:30,211 [DEBUG][       Thread-599537][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:00:30,211 [DEBUG][       Thread-599537][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:00:30,211 [DEBUG][       Thread-599537][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:00:30,211 [DEBUG][       Thread-599537][   transport.py][1871] : Compression: none
2025-07-01 09:00:30,211 [DEBUG][       Thread-599537][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:00:30,230 [DEBUG][       Thread-599537][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:00:30,230 [DEBUG][       Thread-599537][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:00:30,231 [DEBUG][       Thread-599537][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:00:30,231 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:00:30,231 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:00:30,232 [DEBUG][       Thread-599537][   transport.py][1871] : userauth is OK
2025-07-01 09:00:30,257 [ INFO][       Thread-599537][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:00:30,258 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:00:30,896 [DEBUG][       Thread-599537][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:00:30,896 [DEBUG][       Thread-599537][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:00:30,937 [DEBUG][       Thread-599537][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:00:30,937 [DEBUG][       Thread-599537][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:00:30,941 [DEBUG][       Thread-599537][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:00:30,953 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:00:30,953 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:00:30,955 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:00:30,957 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:00:30,964 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:00:30,966 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:00:30,966 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:00:30,967 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:00:30,967 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.291609 -999.00   +7.50  32.96     58   -0.10 1 2 2 1 1   887    0 7.52 4.24 ----- 33.0 33.0 16.3 54.8 10.0 -23.2 9.2 -23.0 8.3 -22.5 9.1 -22.4
2025-07-01 09:00:30,967 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:00:30,967 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:00:30,967 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.291609
2025-07-01 09:00:30,968 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:00:30,968 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:00:30,968 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:00:30,968 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:00:30,968 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 09:00:30,969 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:00:11', tmtdew=8.85, humidity=53.64, cloud=0.0, wind=42.13, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T06:59:55.018', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:00:30,969 [DEBUG][       Thread-599537][   transport.py][1871] : EOF in transport thread
2025-07-01 09:00:31,053 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:00:31,065 [DEBUG][       Thread-599540][   transport.py][1871] : starting thread (client mode): 0x8393b80
2025-07-01 09:00:31,065 [DEBUG][       Thread-599540][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:00:31,082 [DEBUG][       Thread-599540][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:00:31,082 [ INFO][       Thread-599540][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:00:31,090 [DEBUG][       Thread-599540][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:00:31,090 [DEBUG][       Thread-599540][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:00:31,090 [DEBUG][       Thread-599540][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:00:31,090 [DEBUG][       Thread-599540][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:00:31,090 [DEBUG][       Thread-599540][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:00:31,090 [DEBUG][       Thread-599540][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:00:31,090 [DEBUG][       Thread-599540][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:00:31,090 [DEBUG][       Thread-599540][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:00:31,090 [DEBUG][       Thread-599540][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:00:31,090 [DEBUG][       Thread-599540][   transport.py][1871] : client lang: <none>
2025-07-01 09:00:31,090 [DEBUG][       Thread-599540][   transport.py][1871] : server lang: <none>
2025-07-01 09:00:31,090 [DEBUG][       Thread-599540][   transport.py][1871] : kex follows: False
2025-07-01 09:00:31,090 [DEBUG][       Thread-599540][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:00:31,090 [DEBUG][       Thread-599540][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:00:31,090 [DEBUG][       Thread-599540][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:00:31,091 [DEBUG][       Thread-599540][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:00:31,091 [DEBUG][       Thread-599540][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:00:31,091 [DEBUG][       Thread-599540][   transport.py][1871] : Compression: none
2025-07-01 09:00:31,091 [DEBUG][       Thread-599540][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:00:31,147 [DEBUG][       Thread-599540][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:00:31,148 [DEBUG][       Thread-599540][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:00:31,148 [DEBUG][       Thread-599540][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:00:31,149 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:00:31,149 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:00:31,212 [DEBUG][       Thread-599540][   transport.py][1871] : userauth is OK
2025-07-01 09:00:31,212 [DEBUG][       Thread-599540][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:00:31,212 [DEBUG][       Thread-599540][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:00:31,212 [DEBUG][       Thread-599540][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:00:31,212 [DEBUG][       Thread-599540][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:00:31,232 [ INFO][       Thread-599540][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:00:31,232 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:00:31,233 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:00:32,261 [DEBUG][       Thread-599540][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:00:32,262 [DEBUG][       Thread-599540][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:00:32,312 [DEBUG][       Thread-599540][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:00:32,312 [DEBUG][       Thread-599540][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:00:32,322 [DEBUG][       Thread-599540][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:00:32,334 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:00:32,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-07-01 09:00:32,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-07-01 09:00:32,354 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:00:32,354 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:00:32,355 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:00:32,363 [DEBUG][       Thread-599540][   transport.py][1871] : EOF in transport thread
2025-07-01 09:00:35,968 [DEBUG][Thread-599542 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:00:42,364 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:00:42,364 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:00:42,364 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:00:42,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-07-01 09:00:42,866 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 0, 11), 8.85, 53.64, 0.0, 42.13, 7.57, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:00:42,866 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:00:11
2025-07-01 09:00:42,958 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:00:42,962 [DEBUG][       Thread-599543][   transport.py][1871] : starting thread (client mode): 0x81578e0
2025-07-01 09:00:42,962 [DEBUG][       Thread-599543][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:00:42,983 [DEBUG][       Thread-599543][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:00:42,983 [ INFO][       Thread-599543][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:00:42,986 [DEBUG][       Thread-599543][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:00:42,986 [DEBUG][       Thread-599543][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:00:42,986 [DEBUG][       Thread-599543][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:00:42,986 [DEBUG][       Thread-599543][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:00:42,986 [DEBUG][       Thread-599543][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:00:42,986 [DEBUG][       Thread-599543][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:00:42,986 [DEBUG][       Thread-599543][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:00:42,986 [DEBUG][       Thread-599543][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:00:42,986 [DEBUG][       Thread-599543][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:00:42,986 [DEBUG][       Thread-599543][   transport.py][1871] : client lang: <none>
2025-07-01 09:00:42,986 [DEBUG][       Thread-599543][   transport.py][1871] : server lang: <none>
2025-07-01 09:00:42,986 [DEBUG][       Thread-599543][   transport.py][1871] : kex follows: False
2025-07-01 09:00:42,986 [DEBUG][       Thread-599543][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:00:42,986 [DEBUG][       Thread-599543][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:00:42,986 [DEBUG][       Thread-599543][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:00:42,986 [DEBUG][       Thread-599543][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:00:42,986 [DEBUG][       Thread-599543][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:00:42,986 [DEBUG][       Thread-599543][   transport.py][1871] : Compression: none
2025-07-01 09:00:42,986 [DEBUG][       Thread-599543][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:00:43,003 [DEBUG][       Thread-599543][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:00:43,003 [DEBUG][       Thread-599543][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:00:43,003 [DEBUG][       Thread-599543][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:00:43,003 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:00:43,003 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:00:43,004 [DEBUG][       Thread-599543][   transport.py][1871] : userauth is OK
2025-07-01 09:00:43,029 [ INFO][       Thread-599543][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:00:43,029 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:00:43,846 [DEBUG][       Thread-599543][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:00:43,846 [DEBUG][       Thread-599543][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:00:43,888 [DEBUG][       Thread-599543][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:00:43,889 [DEBUG][       Thread-599543][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:00:43,891 [DEBUG][       Thread-599543][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:00:43,901 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:00:43,902 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:00:43,903 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:00:43,904 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:00:43,907 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:00:43,908 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:00:43,908 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:00:43,908 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:00:43,908 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.291609 -999.00   +7.50  32.96     58   -0.10 1 2 2 1 1   887    0 7.52 4.24 ----- 33.0 33.0 16.3 54.8 10.0 -23.2 9.2 -23.0 8.3 -22.5 9.1 -22.4
2025-07-01 09:00:43,908 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:00:43,908 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:00:43,908 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.291609
2025-07-01 09:00:43,908 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:00:43,908 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:00:43,908 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:00:43,908 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:00:43,908 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 09:00:43,908 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:00:11', tmtdew=8.85, humidity=53.64, cloud=0.0, wind=42.13, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T06:59:55.018', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:00:43,909 [DEBUG][       Thread-599543][   transport.py][1871] : EOF in transport thread
2025-07-01 09:00:43,983 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:00:43,992 [DEBUG][       Thread-599546][   transport.py][1871] : starting thread (client mode): 0x8393f40
2025-07-01 09:00:43,992 [DEBUG][       Thread-599546][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:00:44,007 [DEBUG][       Thread-599546][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:00:44,007 [ INFO][       Thread-599546][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:00:44,016 [DEBUG][       Thread-599546][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:00:44,016 [DEBUG][       Thread-599546][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:00:44,016 [DEBUG][       Thread-599546][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:00:44,016 [DEBUG][       Thread-599546][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:00:44,016 [DEBUG][       Thread-599546][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:00:44,016 [DEBUG][       Thread-599546][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:00:44,016 [DEBUG][       Thread-599546][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:00:44,016 [DEBUG][       Thread-599546][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:00:44,016 [DEBUG][       Thread-599546][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:00:44,016 [DEBUG][       Thread-599546][   transport.py][1871] : client lang: <none>
2025-07-01 09:00:44,016 [DEBUG][       Thread-599546][   transport.py][1871] : server lang: <none>
2025-07-01 09:00:44,016 [DEBUG][       Thread-599546][   transport.py][1871] : kex follows: False
2025-07-01 09:00:44,016 [DEBUG][       Thread-599546][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:00:44,016 [DEBUG][       Thread-599546][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:00:44,016 [DEBUG][       Thread-599546][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:00:44,016 [DEBUG][       Thread-599546][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:00:44,016 [DEBUG][       Thread-599546][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:00:44,016 [DEBUG][       Thread-599546][   transport.py][1871] : Compression: none
2025-07-01 09:00:44,016 [DEBUG][       Thread-599546][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:00:44,073 [DEBUG][       Thread-599546][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:00:44,073 [DEBUG][       Thread-599546][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:00:44,073 [DEBUG][       Thread-599546][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:00:44,073 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:00:44,073 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:00:44,130 [DEBUG][       Thread-599546][   transport.py][1871] : userauth is OK
2025-07-01 09:00:44,130 [DEBUG][       Thread-599546][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:00:44,130 [DEBUG][       Thread-599546][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:00:44,130 [DEBUG][       Thread-599546][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:00:44,130 [DEBUG][       Thread-599546][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:00:44,144 [ INFO][       Thread-599546][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:00:44,144 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:00:44,144 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:00:45,008 [DEBUG][Thread-599548 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:00:45,138 [DEBUG][       Thread-599546][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:00:45,138 [DEBUG][       Thread-599546][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:00:45,188 [DEBUG][       Thread-599546][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:00:45,188 [DEBUG][       Thread-599546][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:00:45,197 [DEBUG][       Thread-599546][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:00:45,206 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:00:45,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-07-01 09:00:45,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-07-01 09:00:45,223 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:00:45,223 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:00:45,223 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:00:45,231 [DEBUG][       Thread-599546][   transport.py][1871] : EOF in transport thread
2025-07-01 09:00:47,298 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:00:47,299 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:00:54,028 [DEBUG][Thread-599549 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:00:55,233 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:00:55,233 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:00:55,233 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:00:55,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-07-01 09:00:55,708 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 0, 43), 8.88, 53.52, 0.0, 40.3, 7.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:00:55,708 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:00:43
2025-07-01 09:00:55,793 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:00:55,798 [DEBUG][       Thread-599550][   transport.py][1871] : starting thread (client mode): 0x8104bb0
2025-07-01 09:00:55,798 [DEBUG][       Thread-599550][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:00:55,809 [DEBUG][       Thread-599550][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:00:55,809 [ INFO][       Thread-599550][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:00:55,812 [DEBUG][       Thread-599550][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:00:55,812 [DEBUG][       Thread-599550][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:00:55,812 [DEBUG][       Thread-599550][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:00:55,812 [DEBUG][       Thread-599550][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:00:55,812 [DEBUG][       Thread-599550][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:00:55,812 [DEBUG][       Thread-599550][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:00:55,812 [DEBUG][       Thread-599550][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:00:55,812 [DEBUG][       Thread-599550][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:00:55,812 [DEBUG][       Thread-599550][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:00:55,812 [DEBUG][       Thread-599550][   transport.py][1871] : client lang: <none>
2025-07-01 09:00:55,812 [DEBUG][       Thread-599550][   transport.py][1871] : server lang: <none>
2025-07-01 09:00:55,812 [DEBUG][       Thread-599550][   transport.py][1871] : kex follows: False
2025-07-01 09:00:55,812 [DEBUG][       Thread-599550][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:00:55,812 [DEBUG][       Thread-599550][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:00:55,812 [DEBUG][       Thread-599550][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:00:55,812 [DEBUG][       Thread-599550][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:00:55,812 [DEBUG][       Thread-599550][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:00:55,812 [DEBUG][       Thread-599550][   transport.py][1871] : Compression: none
2025-07-01 09:00:55,812 [DEBUG][       Thread-599550][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:00:55,822 [DEBUG][       Thread-599550][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:00:55,822 [DEBUG][       Thread-599550][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:00:55,822 [DEBUG][       Thread-599550][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:00:55,822 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:00:55,823 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:00:55,823 [DEBUG][       Thread-599550][   transport.py][1871] : userauth is OK
2025-07-01 09:00:55,849 [ INFO][       Thread-599550][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:00:55,850 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:00:56,470 [DEBUG][       Thread-599550][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:00:56,471 [DEBUG][       Thread-599550][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:00:56,513 [DEBUG][       Thread-599550][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:00:56,513 [DEBUG][       Thread-599550][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:00:56,516 [DEBUG][       Thread-599550][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:00:56,523 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:00:56,524 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:00:56,525 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:00:56,527 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:00:56,532 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:00:56,534 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:00:56,534 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:00:56,535 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:00:56,535 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.291957 -999.00   +7.50  34.82     58   -0.10 1 2 2 1 1   887    0 7.31 5.58 ----- 34.8 34.8 24.6 47.5 10.1 -23.5 9.2 -23.6 8.3 -22.2 9.1 -22.1
2025-07-01 09:00:56,535 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:00:56,535 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:00:56,535 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.291957
2025-07-01 09:00:56,536 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:00:56,536 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:00:56,536 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:00:56,536 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:00:56,536 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 09:00:56,536 [DEBUG][       Thread-599550][   transport.py][1871] : EOF in transport thread
2025-07-01 09:00:56,537 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:00:43', tmtdew=8.88, humidity=53.52, cloud=0.0, wind=40.3, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:00:25.085', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:00:56,620 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:01:03,050 [DEBUG][Thread-599553 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:01:12,082 [DEBUG][Thread-599554 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:01:19,123 [DEBUG][Thread-599555 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:01:21,100 [DEBUG][Thread-599556 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:01:30,117 [DEBUG][Thread-599557 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:01:39,140 [DEBUG][Thread-599558 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:01:47,436 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:01:47,436 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:01:48,160 [DEBUG][Thread-599559 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:01:57,181 [DEBUG][Thread-599560 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:02:06,201 [DEBUG][Thread-599561 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:02:15,224 [DEBUG][Thread-599562 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:02:19,156 [DEBUG][Thread-599563 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:02:24,245 [DEBUG][Thread-599564 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:02:33,269 [DEBUG][Thread-599565 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:02:42,289 [DEBUG][Thread-599566 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:02:47,576 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:02:47,577 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:02:51,308 [DEBUG][Thread-599567 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:03:00,330 [DEBUG][Thread-599568 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:03:05,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-07-01 09:03:09,352 [DEBUG][Thread-599569 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:03:15,244 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:03:15,244 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:03:15,244 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:03:15,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-07-01 09:03:15,778 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 2, 50), 8.96, 53.03, 0.0, 34.3, 7.64, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:03:15,778 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:02:50
2025-07-01 09:03:15,866 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:03:15,870 [DEBUG][       Thread-599570][   transport.py][1871] : starting thread (client mode): 0x8107460
2025-07-01 09:03:15,870 [DEBUG][       Thread-599570][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:03:15,890 [DEBUG][       Thread-599570][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:03:15,890 [ INFO][       Thread-599570][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:03:15,893 [DEBUG][       Thread-599570][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:03:15,893 [DEBUG][       Thread-599570][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:03:15,893 [DEBUG][       Thread-599570][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:03:15,893 [DEBUG][       Thread-599570][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:03:15,893 [DEBUG][       Thread-599570][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:03:15,893 [DEBUG][       Thread-599570][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:03:15,893 [DEBUG][       Thread-599570][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:03:15,893 [DEBUG][       Thread-599570][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:03:15,893 [DEBUG][       Thread-599570][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:03:15,893 [DEBUG][       Thread-599570][   transport.py][1871] : client lang: <none>
2025-07-01 09:03:15,893 [DEBUG][       Thread-599570][   transport.py][1871] : server lang: <none>
2025-07-01 09:03:15,893 [DEBUG][       Thread-599570][   transport.py][1871] : kex follows: False
2025-07-01 09:03:15,893 [DEBUG][       Thread-599570][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:03:15,893 [DEBUG][       Thread-599570][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:03:15,893 [DEBUG][       Thread-599570][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:03:15,893 [DEBUG][       Thread-599570][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:03:15,893 [DEBUG][       Thread-599570][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:03:15,893 [DEBUG][       Thread-599570][   transport.py][1871] : Compression: none
2025-07-01 09:03:15,893 [DEBUG][       Thread-599570][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:03:15,906 [DEBUG][       Thread-599570][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:03:15,906 [DEBUG][       Thread-599570][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:03:15,906 [DEBUG][       Thread-599570][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:03:15,906 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:03:15,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:03:15,907 [DEBUG][       Thread-599570][   transport.py][1871] : userauth is OK
2025-07-01 09:03:15,932 [ INFO][       Thread-599570][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:03:15,932 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:03:16,569 [DEBUG][       Thread-599570][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:03:16,570 [DEBUG][       Thread-599570][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:03:16,612 [DEBUG][       Thread-599570][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:03:16,612 [DEBUG][       Thread-599570][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:03:16,615 [DEBUG][       Thread-599570][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:03:16,628 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:03:16,628 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:03:16,629 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:03:16,630 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:03:16,633 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:03:16,634 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:03:16,634 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:03:16,634 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:03:16,634 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.293693 -999.00   +7.60  29.28     58   +0.00 1 2 1 1 1   887    0 7.82 13.86 ----- 29.3 29.3 22.5 45.8 10.2 -23.7 9.4 -23.7 8.5 -22.2 9.3 -22.2
2025-07-01 09:03:16,634 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:03:16,634 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:03:16,634 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.293693
2025-07-01 09:03:16,634 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:03:16,634 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:03:16,634 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:03:16,634 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:03:16,634 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 09:03:16,634 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:02:50', tmtdew=8.96, humidity=53.03, cloud=0.0, wind=34.3, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:02:55.075', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:03:16,635 [DEBUG][       Thread-599570][   transport.py][1871] : EOF in transport thread
2025-07-01 09:03:16,708 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:03:16,721 [DEBUG][       Thread-599573][   transport.py][1871] : starting thread (client mode): 0x83c81f0
2025-07-01 09:03:16,721 [DEBUG][       Thread-599573][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:03:16,740 [DEBUG][       Thread-599573][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:03:16,740 [ INFO][       Thread-599573][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:03:16,749 [DEBUG][       Thread-599573][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:03:16,749 [DEBUG][       Thread-599573][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:03:16,749 [DEBUG][       Thread-599573][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:03:16,749 [DEBUG][       Thread-599573][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:03:16,749 [DEBUG][       Thread-599573][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:03:16,749 [DEBUG][       Thread-599573][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:03:16,749 [DEBUG][       Thread-599573][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:03:16,749 [DEBUG][       Thread-599573][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:03:16,749 [DEBUG][       Thread-599573][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:03:16,749 [DEBUG][       Thread-599573][   transport.py][1871] : client lang: <none>
2025-07-01 09:03:16,749 [DEBUG][       Thread-599573][   transport.py][1871] : server lang: <none>
2025-07-01 09:03:16,749 [DEBUG][       Thread-599573][   transport.py][1871] : kex follows: False
2025-07-01 09:03:16,749 [DEBUG][       Thread-599573][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:03:16,749 [DEBUG][       Thread-599573][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:03:16,749 [DEBUG][       Thread-599573][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:03:16,749 [DEBUG][       Thread-599573][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:03:16,749 [DEBUG][       Thread-599573][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:03:16,749 [DEBUG][       Thread-599573][   transport.py][1871] : Compression: none
2025-07-01 09:03:16,749 [DEBUG][       Thread-599573][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:03:16,814 [DEBUG][       Thread-599573][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:03:16,815 [DEBUG][       Thread-599573][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:03:16,815 [DEBUG][       Thread-599573][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:03:16,815 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:03:16,815 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:03:16,880 [DEBUG][       Thread-599573][   transport.py][1871] : userauth is OK
2025-07-01 09:03:16,880 [DEBUG][       Thread-599573][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:03:16,880 [DEBUG][       Thread-599573][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:03:16,880 [DEBUG][       Thread-599573][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:03:16,880 [DEBUG][       Thread-599573][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:03:16,895 [ INFO][       Thread-599573][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:03:16,895 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:03:16,895 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:03:17,929 [DEBUG][       Thread-599573][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:03:17,929 [DEBUG][       Thread-599573][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:03:17,980 [DEBUG][       Thread-599573][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:03:17,980 [DEBUG][       Thread-599573][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:03:17,989 [DEBUG][       Thread-599573][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:03:17,997 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:03:17,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-07-01 09:03:18,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-07-01 09:03:18,015 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:03:18,015 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:03:18,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:03:18,023 [DEBUG][       Thread-599573][   transport.py][1871] : EOF in transport thread
2025-07-01 09:03:18,369 [DEBUG][Thread-599575 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:03:19,211 [DEBUG][Thread-599576 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:03:27,395 [DEBUG][Thread-599577 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:03:28,020 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:03:28,020 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:03:28,020 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:03: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-07-01 09:03:28,541 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 3, 22), 8.93, 53.16, 0.0, 32.08, 7.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:03:28,541 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:03:22
2025-07-01 09:03:28,626 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:03:28,632 [DEBUG][       Thread-599578][   transport.py][1871] : starting thread (client mode): 0x8155180
2025-07-01 09:03:28,632 [DEBUG][       Thread-599578][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:03:28,653 [DEBUG][       Thread-599578][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:03:28,653 [ INFO][       Thread-599578][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:03:28,656 [DEBUG][       Thread-599578][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:03:28,656 [DEBUG][       Thread-599578][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:03:28,656 [DEBUG][       Thread-599578][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:03:28,656 [DEBUG][       Thread-599578][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:03:28,656 [DEBUG][       Thread-599578][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:03:28,656 [DEBUG][       Thread-599578][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:03:28,656 [DEBUG][       Thread-599578][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:03:28,656 [DEBUG][       Thread-599578][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:03:28,656 [DEBUG][       Thread-599578][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:03:28,656 [DEBUG][       Thread-599578][   transport.py][1871] : client lang: <none>
2025-07-01 09:03:28,656 [DEBUG][       Thread-599578][   transport.py][1871] : server lang: <none>
2025-07-01 09:03:28,656 [DEBUG][       Thread-599578][   transport.py][1871] : kex follows: False
2025-07-01 09:03:28,657 [DEBUG][       Thread-599578][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:03:28,657 [DEBUG][       Thread-599578][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:03:28,657 [DEBUG][       Thread-599578][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:03:28,657 [DEBUG][       Thread-599578][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:03:28,657 [DEBUG][       Thread-599578][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:03:28,657 [DEBUG][       Thread-599578][   transport.py][1871] : Compression: none
2025-07-01 09:03:28,657 [DEBUG][       Thread-599578][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:03:28,673 [DEBUG][       Thread-599578][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:03:28,674 [DEBUG][       Thread-599578][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:03:28,674 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:03:28,674 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:03:28,675 [DEBUG][       Thread-599578][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:03:28,675 [DEBUG][       Thread-599578][   transport.py][1871] : userauth is OK
2025-07-01 09:03:28,700 [ INFO][       Thread-599578][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:03:28,700 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:03:29,363 [DEBUG][       Thread-599578][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:03:29,364 [DEBUG][       Thread-599578][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:03:29,405 [DEBUG][       Thread-599578][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:03:29,405 [DEBUG][       Thread-599578][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:03:29,408 [DEBUG][       Thread-599578][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:03:29,423 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:03:29,424 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:03:29,426 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:03:29,428 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:03:29,434 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:03:29,436 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:03:29,436 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:03:29,437 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:03:29,437 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.293693 -999.00   +7.60  29.28     58   +0.00 1 2 1 1 1   887    0 7.82 13.86 ----- 29.3 29.3 22.5 45.8 10.2 -23.7 9.4 -23.7 8.5 -22.2 9.3 -22.2
2025-07-01 09:03:29,437 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:03:29,437 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:03:29,437 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.293693
2025-07-01 09:03:29,437 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:03:29,438 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:03:29,438 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:03:29,438 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:03:29,438 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 09:03:29,438 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:03:22', tmtdew=8.93, humidity=53.16, cloud=0.0, wind=32.08, temperature=7.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:02:55.075', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:03:29,439 [DEBUG][       Thread-599578][   transport.py][1871] : EOF in transport thread
2025-07-01 09:03:29,523 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:03:29,536 [DEBUG][       Thread-599581][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 09:03:29,536 [DEBUG][       Thread-599581][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:03:29,555 [DEBUG][       Thread-599581][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:03:29,555 [ INFO][       Thread-599581][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:03:29,563 [DEBUG][       Thread-599581][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:03:29,563 [DEBUG][       Thread-599581][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:03:29,563 [DEBUG][       Thread-599581][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:03:29,563 [DEBUG][       Thread-599581][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:03:29,563 [DEBUG][       Thread-599581][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:03:29,563 [DEBUG][       Thread-599581][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:03:29,563 [DEBUG][       Thread-599581][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:03:29,563 [DEBUG][       Thread-599581][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:03:29,563 [DEBUG][       Thread-599581][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:03:29,564 [DEBUG][       Thread-599581][   transport.py][1871] : client lang: <none>
2025-07-01 09:03:29,564 [DEBUG][       Thread-599581][   transport.py][1871] : server lang: <none>
2025-07-01 09:03:29,564 [DEBUG][       Thread-599581][   transport.py][1871] : kex follows: False
2025-07-01 09:03:29,564 [DEBUG][       Thread-599581][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:03:29,564 [DEBUG][       Thread-599581][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:03:29,564 [DEBUG][       Thread-599581][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:03:29,564 [DEBUG][       Thread-599581][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:03:29,564 [DEBUG][       Thread-599581][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:03:29,564 [DEBUG][       Thread-599581][   transport.py][1871] : Compression: none
2025-07-01 09:03:29,564 [DEBUG][       Thread-599581][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:03:29,622 [DEBUG][       Thread-599581][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:03:29,623 [DEBUG][       Thread-599581][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:03:29,623 [DEBUG][       Thread-599581][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:03:29,623 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:03:29,624 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:03:29,679 [DEBUG][       Thread-599581][   transport.py][1871] : userauth is OK
2025-07-01 09:03:29,679 [DEBUG][       Thread-599581][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:03:29,679 [DEBUG][       Thread-599581][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:03:29,679 [DEBUG][       Thread-599581][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:03:29,679 [DEBUG][       Thread-599581][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:03:29,698 [ INFO][       Thread-599581][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:03:29,698 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:03:29,699 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:03:30,687 [DEBUG][       Thread-599581][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:03:30,687 [DEBUG][       Thread-599581][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:03:30,736 [DEBUG][       Thread-599581][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:03:30,736 [DEBUG][       Thread-599581][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:03:30,745 [DEBUG][       Thread-599581][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:03:30,755 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:03:30,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-07-01 09:03:30,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-07-01 09:03:30,773 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:03:30,774 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:03:30,774 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:03:30,782 [DEBUG][       Thread-599581][   transport.py][1871] : EOF in transport thread
2025-07-01 09:03:36,418 [DEBUG][Thread-599583 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:03:40,780 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:03:40,780 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:03:40,780 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:03:40,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-07-01 09:03:41,287 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 3, 22), 8.93, 53.16, 0.0, 32.08, 7.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:03:41,287 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:03:22
2025-07-01 09:03:41,372 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:03:41,376 [DEBUG][       Thread-599584][   transport.py][1871] : starting thread (client mode): 0x8155cc0
2025-07-01 09:03:41,376 [DEBUG][       Thread-599584][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:03:41,396 [DEBUG][       Thread-599584][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:03:41,397 [ INFO][       Thread-599584][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:03:41,400 [DEBUG][       Thread-599584][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:03:41,400 [DEBUG][       Thread-599584][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:03:41,400 [DEBUG][       Thread-599584][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:03:41,400 [DEBUG][       Thread-599584][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:03:41,400 [DEBUG][       Thread-599584][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:03:41,400 [DEBUG][       Thread-599584][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:03:41,400 [DEBUG][       Thread-599584][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:03:41,400 [DEBUG][       Thread-599584][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:03:41,400 [DEBUG][       Thread-599584][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:03:41,400 [DEBUG][       Thread-599584][   transport.py][1871] : client lang: <none>
2025-07-01 09:03:41,400 [DEBUG][       Thread-599584][   transport.py][1871] : server lang: <none>
2025-07-01 09:03:41,400 [DEBUG][       Thread-599584][   transport.py][1871] : kex follows: False
2025-07-01 09:03:41,400 [DEBUG][       Thread-599584][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:03:41,400 [DEBUG][       Thread-599584][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:03:41,400 [DEBUG][       Thread-599584][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:03:41,400 [DEBUG][       Thread-599584][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:03:41,400 [DEBUG][       Thread-599584][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:03:41,400 [DEBUG][       Thread-599584][   transport.py][1871] : Compression: none
2025-07-01 09:03:41,400 [DEBUG][       Thread-599584][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:03:41,418 [DEBUG][       Thread-599584][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:03:41,419 [DEBUG][       Thread-599584][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:03:41,419 [DEBUG][       Thread-599584][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:03:41,420 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:03:41,420 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:03:41,421 [DEBUG][       Thread-599584][   transport.py][1871] : userauth is OK
2025-07-01 09:03:41,446 [ INFO][       Thread-599584][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:03:41,446 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:03:42,077 [DEBUG][       Thread-599584][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:03:42,077 [DEBUG][       Thread-599584][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:03:42,121 [DEBUG][       Thread-599584][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:03:42,121 [DEBUG][       Thread-599584][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:03:42,124 [DEBUG][       Thread-599584][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:03:42,137 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:03:42,137 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:03:42,139 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:03:42,141 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:03:42,147 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:03:42,148 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:03:42,149 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:03:42,149 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:03:42,149 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.293693 -999.00   +7.60  29.28     58   +0.00 1 2 1 1 1   887    0 7.82 13.86 ----- 29.3 29.3 22.5 45.8 10.2 -23.7 9.4 -23.7 8.5 -22.2 9.3 -22.2
2025-07-01 09:03:42,149 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:03:42,149 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:03:42,150 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.293693
2025-07-01 09:03:42,150 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:03:42,150 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:03:42,151 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:03:42,151 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:03:42,151 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 09:03:42,151 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:03:22', tmtdew=8.93, humidity=53.16, cloud=0.0, wind=32.08, temperature=7.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:02:55.075', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:03:42,151 [DEBUG][       Thread-599584][   transport.py][1871] : EOF in transport thread
2025-07-01 09:03:42,227 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:03:42,237 [DEBUG][       Thread-599587][   transport.py][1871] : starting thread (client mode): 0x83c86a0
2025-07-01 09:03:42,237 [DEBUG][       Thread-599587][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:03:42,256 [DEBUG][       Thread-599587][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:03:42,256 [ INFO][       Thread-599587][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:03:42,264 [DEBUG][       Thread-599587][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:03:42,264 [DEBUG][       Thread-599587][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:03:42,265 [DEBUG][       Thread-599587][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:03:42,265 [DEBUG][       Thread-599587][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:03:42,265 [DEBUG][       Thread-599587][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:03:42,265 [DEBUG][       Thread-599587][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:03:42,265 [DEBUG][       Thread-599587][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:03:42,265 [DEBUG][       Thread-599587][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:03:42,265 [DEBUG][       Thread-599587][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:03:42,265 [DEBUG][       Thread-599587][   transport.py][1871] : client lang: <none>
2025-07-01 09:03:42,265 [DEBUG][       Thread-599587][   transport.py][1871] : server lang: <none>
2025-07-01 09:03:42,265 [DEBUG][       Thread-599587][   transport.py][1871] : kex follows: False
2025-07-01 09:03:42,265 [DEBUG][       Thread-599587][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:03:42,265 [DEBUG][       Thread-599587][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:03:42,265 [DEBUG][       Thread-599587][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:03:42,265 [DEBUG][       Thread-599587][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:03:42,265 [DEBUG][       Thread-599587][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:03:42,265 [DEBUG][       Thread-599587][   transport.py][1871] : Compression: none
2025-07-01 09:03:42,265 [DEBUG][       Thread-599587][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:03:42,323 [DEBUG][       Thread-599587][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:03:42,324 [DEBUG][       Thread-599587][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:03:42,324 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:03:42,325 [DEBUG][       Thread-599587][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:03:42,326 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:03:42,389 [DEBUG][       Thread-599587][   transport.py][1871] : userauth is OK
2025-07-01 09:03:42,389 [DEBUG][       Thread-599587][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:03:42,389 [DEBUG][       Thread-599587][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:03:42,389 [DEBUG][       Thread-599587][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:03:42,389 [DEBUG][       Thread-599587][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:03:42,415 [ INFO][       Thread-599587][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:03:42,416 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:03:42,416 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:03:43,389 [DEBUG][       Thread-599587][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:03:43,389 [DEBUG][       Thread-599587][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:03:43,440 [DEBUG][       Thread-599587][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:03:43,440 [DEBUG][       Thread-599587][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:03:43,449 [DEBUG][       Thread-599587][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:03:43,458 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:03:43,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-07-01 09:03:43,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-07-01 09:03:43,477 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:03:43,478 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:03:43,478 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:03:43,486 [DEBUG][       Thread-599587][   transport.py][1871] : EOF in transport thread
2025-07-01 09:03:45,454 [DEBUG][Thread-599589 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:03:47,716 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:03:47,717 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:03:53,488 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:03:53,489 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:03:53,489 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:03:53,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-07-01 09:03:54,009 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 3, 22), 8.93, 53.16, 0.0, 32.08, 7.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:03:54,009 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:03:22
2025-07-01 09:03:54,097 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:03:54,103 [DEBUG][       Thread-599590][   transport.py][1871] : starting thread (client mode): 0x8157f10
2025-07-01 09:03:54,103 [DEBUG][       Thread-599590][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:03:54,124 [DEBUG][       Thread-599590][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:03:54,124 [ INFO][       Thread-599590][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:03:54,127 [DEBUG][       Thread-599590][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:03:54,127 [DEBUG][       Thread-599590][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:03:54,127 [DEBUG][       Thread-599590][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:03:54,127 [DEBUG][       Thread-599590][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:03:54,127 [DEBUG][       Thread-599590][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:03:54,127 [DEBUG][       Thread-599590][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:03:54,127 [DEBUG][       Thread-599590][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:03:54,127 [DEBUG][       Thread-599590][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:03:54,127 [DEBUG][       Thread-599590][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:03:54,127 [DEBUG][       Thread-599590][   transport.py][1871] : client lang: <none>
2025-07-01 09:03:54,127 [DEBUG][       Thread-599590][   transport.py][1871] : server lang: <none>
2025-07-01 09:03:54,127 [DEBUG][       Thread-599590][   transport.py][1871] : kex follows: False
2025-07-01 09:03:54,127 [DEBUG][       Thread-599590][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:03:54,127 [DEBUG][       Thread-599590][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:03:54,127 [DEBUG][       Thread-599590][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:03:54,128 [DEBUG][       Thread-599590][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:03:54,128 [DEBUG][       Thread-599590][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:03:54,128 [DEBUG][       Thread-599590][   transport.py][1871] : Compression: none
2025-07-01 09:03:54,128 [DEBUG][       Thread-599590][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:03:54,142 [DEBUG][       Thread-599590][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:03:54,143 [DEBUG][       Thread-599590][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:03:54,143 [DEBUG][       Thread-599590][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:03:54,143 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:03:54,143 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:03:54,143 [DEBUG][       Thread-599590][   transport.py][1871] : userauth is OK
2025-07-01 09:03:54,156 [ INFO][       Thread-599590][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:03:54,156 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:03:54,474 [DEBUG][Thread-599592 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:03:54,786 [DEBUG][       Thread-599590][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:03:54,786 [DEBUG][       Thread-599590][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:03:54,828 [DEBUG][       Thread-599590][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:03:54,829 [DEBUG][       Thread-599590][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:03:54,831 [DEBUG][       Thread-599590][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:03:54,842 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:03:54,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:03:54,844 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:03:54,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:03:54,848 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:03:54,849 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:03:54,849 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:03:54,849 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:03:54,849 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.294040 -999.00   +7.60  38.65     58   +0.00 1 1 2 1 1   887    0 7.89 15.09 ----- 38.6 38.6 19.8 49.2 10.2 -23.7 9.4 -23.6 8.4 -22.5 9.3 -22.7
2025-07-01 09:03:54,849 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:03:54,849 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:03:54,849 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.294040
2025-07-01 09:03:54,849 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:03:54,849 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:03:54,849 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:03:54,849 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:03:54,849 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:03:54,849 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:03:22', tmtdew=8.93, humidity=53.16, cloud=0.0, wind=32.08, temperature=7.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:03:25.056', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:03:54,850 [DEBUG][       Thread-599590][   transport.py][1871] : EOF in transport thread
2025-07-01 09:03:54,924 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:03:54,935 [DEBUG][       Thread-599594][   transport.py][1871] : starting thread (client mode): 0x83c8790
2025-07-01 09:03:54,935 [DEBUG][       Thread-599594][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:03:54,953 [DEBUG][       Thread-599594][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:03:54,953 [ INFO][       Thread-599594][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:03:54,963 [DEBUG][       Thread-599594][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:03:54,963 [DEBUG][       Thread-599594][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:03:54,963 [DEBUG][       Thread-599594][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:03:54,963 [DEBUG][       Thread-599594][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:03:54,963 [DEBUG][       Thread-599594][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:03:54,963 [DEBUG][       Thread-599594][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:03:54,963 [DEBUG][       Thread-599594][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:03:54,963 [DEBUG][       Thread-599594][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:03:54,963 [DEBUG][       Thread-599594][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:03:54,963 [DEBUG][       Thread-599594][   transport.py][1871] : client lang: <none>
2025-07-01 09:03:54,963 [DEBUG][       Thread-599594][   transport.py][1871] : server lang: <none>
2025-07-01 09:03:54,963 [DEBUG][       Thread-599594][   transport.py][1871] : kex follows: False
2025-07-01 09:03:54,963 [DEBUG][       Thread-599594][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:03:54,963 [DEBUG][       Thread-599594][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:03:54,963 [DEBUG][       Thread-599594][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:03:54,963 [DEBUG][       Thread-599594][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:03:54,963 [DEBUG][       Thread-599594][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:03:54,963 [DEBUG][       Thread-599594][   transport.py][1871] : Compression: none
2025-07-01 09:03:54,963 [DEBUG][       Thread-599594][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:03:55,016 [DEBUG][       Thread-599594][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:03:55,016 [DEBUG][       Thread-599594][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:03:55,016 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:03:55,016 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:03:55,017 [DEBUG][       Thread-599594][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:03:55,076 [DEBUG][       Thread-599594][   transport.py][1871] : userauth is OK
2025-07-01 09:03:55,076 [DEBUG][       Thread-599594][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:03:55,076 [DEBUG][       Thread-599594][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:03:55,076 [DEBUG][       Thread-599594][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:03:55,076 [DEBUG][       Thread-599594][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:03:55,091 [ INFO][       Thread-599594][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:03:55,091 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:03:55,091 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:03:56,096 [DEBUG][       Thread-599594][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:03:56,097 [DEBUG][       Thread-599594][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:03:56,151 [DEBUG][       Thread-599594][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:03:56,151 [DEBUG][       Thread-599594][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:03:56,159 [DEBUG][       Thread-599594][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:03:56,167 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:03:56,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-07-01 09:03:56,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-07-01 09:03:56,183 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:03:56,183 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:03:56,183 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:03:56,191 [DEBUG][       Thread-599594][   transport.py][1871] : EOF in transport thread
2025-07-01 09:04:03,492 [DEBUG][Thread-599596 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:04:06,184 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:04:06,185 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:04:06,185 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:04:06,186 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:04:06,684 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 3, 54), 8.93, 53.13, 0.0, 33.03, 7.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:04:06,685 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:03:54
2025-07-01 09:04:06,771 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:04:06,775 [DEBUG][       Thread-599597][   transport.py][1871] : starting thread (client mode): 0x8154e80
2025-07-01 09:04:06,775 [DEBUG][       Thread-599597][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:04:06,795 [DEBUG][       Thread-599597][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:04:06,795 [ INFO][       Thread-599597][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:04:06,798 [DEBUG][       Thread-599597][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:04:06,798 [DEBUG][       Thread-599597][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:04:06,798 [DEBUG][       Thread-599597][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:04:06,798 [DEBUG][       Thread-599597][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:04:06,798 [DEBUG][       Thread-599597][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:04:06,798 [DEBUG][       Thread-599597][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:04:06,798 [DEBUG][       Thread-599597][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:04:06,798 [DEBUG][       Thread-599597][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:04:06,798 [DEBUG][       Thread-599597][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:04:06,798 [DEBUG][       Thread-599597][   transport.py][1871] : client lang: <none>
2025-07-01 09:04:06,799 [DEBUG][       Thread-599597][   transport.py][1871] : server lang: <none>
2025-07-01 09:04:06,799 [DEBUG][       Thread-599597][   transport.py][1871] : kex follows: False
2025-07-01 09:04:06,799 [DEBUG][       Thread-599597][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:04:06,799 [DEBUG][       Thread-599597][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:04:06,799 [DEBUG][       Thread-599597][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:04:06,799 [DEBUG][       Thread-599597][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:04:06,799 [DEBUG][       Thread-599597][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:04:06,799 [DEBUG][       Thread-599597][   transport.py][1871] : Compression: none
2025-07-01 09:04:06,799 [DEBUG][       Thread-599597][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:04:06,815 [DEBUG][       Thread-599597][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:04:06,816 [DEBUG][       Thread-599597][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:04:06,816 [DEBUG][       Thread-599597][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:04:06,817 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:04:06,817 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:04:06,861 [DEBUG][       Thread-599597][   transport.py][1871] : userauth is OK
2025-07-01 09:04:06,886 [ INFO][       Thread-599597][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:04:06,887 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:04:07,534 [DEBUG][       Thread-599597][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:04:07,535 [DEBUG][       Thread-599597][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:04:07,577 [DEBUG][       Thread-599597][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:04:07,577 [DEBUG][       Thread-599597][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:04:07,580 [DEBUG][       Thread-599597][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:04:07,593 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:04:07,594 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:04:07,596 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:04:07,598 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:04:07,603 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:04:07,605 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:04:07,605 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:04:07,606 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:04:07,606 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.294040 -999.00   +7.60  38.65     58   +0.00 1 1 2 1 1   887    0 7.89 15.09 ----- 38.6 38.6 19.8 49.2 10.2 -23.7 9.4 -23.6 8.4 -22.5 9.3 -22.7
2025-07-01 09:04:07,606 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:04:07,606 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:04:07,606 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.294040
2025-07-01 09:04:07,607 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:04:07,607 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:04:07,607 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:04:07,607 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:04:07,607 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:04:07,607 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:03:54', tmtdew=8.93, humidity=53.13, cloud=0.0, wind=33.03, temperature=7.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:03:25.056', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:04:07,608 [DEBUG][       Thread-599597][   transport.py][1871] : EOF in transport thread
2025-07-01 09:04:07,692 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:04:07,708 [DEBUG][       Thread-599600][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 09:04:07,709 [DEBUG][       Thread-599600][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:04:07,725 [DEBUG][       Thread-599600][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:04:07,725 [ INFO][       Thread-599600][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:04:07,733 [DEBUG][       Thread-599600][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:04:07,733 [DEBUG][       Thread-599600][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:04:07,733 [DEBUG][       Thread-599600][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:04:07,733 [DEBUG][       Thread-599600][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:04:07,733 [DEBUG][       Thread-599600][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:04:07,733 [DEBUG][       Thread-599600][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:04:07,733 [DEBUG][       Thread-599600][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:04:07,734 [DEBUG][       Thread-599600][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:04:07,734 [DEBUG][       Thread-599600][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:04:07,734 [DEBUG][       Thread-599600][   transport.py][1871] : client lang: <none>
2025-07-01 09:04:07,734 [DEBUG][       Thread-599600][   transport.py][1871] : server lang: <none>
2025-07-01 09:04:07,734 [DEBUG][       Thread-599600][   transport.py][1871] : kex follows: False
2025-07-01 09:04:07,734 [DEBUG][       Thread-599600][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:04:07,734 [DEBUG][       Thread-599600][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:04:07,734 [DEBUG][       Thread-599600][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:04:07,734 [DEBUG][       Thread-599600][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:04:07,734 [DEBUG][       Thread-599600][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:04:07,734 [DEBUG][       Thread-599600][   transport.py][1871] : Compression: none
2025-07-01 09:04:07,734 [DEBUG][       Thread-599600][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:04:07,793 [DEBUG][       Thread-599600][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:04:07,794 [DEBUG][       Thread-599600][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:04:07,794 [DEBUG][       Thread-599600][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:04:07,794 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:04:07,795 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:04:07,854 [DEBUG][       Thread-599600][   transport.py][1871] : userauth is OK
2025-07-01 09:04:07,854 [DEBUG][       Thread-599600][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:04:07,854 [DEBUG][       Thread-599600][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:04:07,854 [DEBUG][       Thread-599600][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:04:07,855 [DEBUG][       Thread-599600][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:04:07,873 [ INFO][       Thread-599600][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:04:07,873 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:04:07,874 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:04:08,889 [DEBUG][       Thread-599600][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:04:08,889 [DEBUG][       Thread-599600][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:04:08,943 [DEBUG][       Thread-599600][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:04:08,943 [DEBUG][       Thread-599600][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:04:08,951 [DEBUG][       Thread-599600][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:04:08,961 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:04:08,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-07-01 09:04:08,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') -> 00000000
2025-07-01 09:04:08,980 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:04:08,980 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:04:08,981 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:04:08,989 [DEBUG][       Thread-599600][   transport.py][1871] : EOF in transport thread
2025-07-01 09:04:12,524 [DEBUG][Thread-599602 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:04:18,983 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:04:18,984 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:04:18,984 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:04:18,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-07-01 09:04:19,256 [DEBUG][Thread-599603 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:04:19,483 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 3, 54), 8.93, 53.13, 0.0, 33.03, 7.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:04:19,483 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:03:54
2025-07-01 09:04:19,569 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:04:19,575 [DEBUG][       Thread-599604][   transport.py][1871] : starting thread (client mode): 0x81049d0
2025-07-01 09:04:19,575 [DEBUG][       Thread-599604][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:04:19,596 [DEBUG][       Thread-599604][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:04:19,596 [ INFO][       Thread-599604][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:04:19,599 [DEBUG][       Thread-599604][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:04:19,599 [DEBUG][       Thread-599604][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:04:19,599 [DEBUG][       Thread-599604][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:04:19,599 [DEBUG][       Thread-599604][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:04:19,599 [DEBUG][       Thread-599604][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:04:19,599 [DEBUG][       Thread-599604][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:04:19,599 [DEBUG][       Thread-599604][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:04:19,599 [DEBUG][       Thread-599604][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:04:19,599 [DEBUG][       Thread-599604][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:04:19,599 [DEBUG][       Thread-599604][   transport.py][1871] : client lang: <none>
2025-07-01 09:04:19,599 [DEBUG][       Thread-599604][   transport.py][1871] : server lang: <none>
2025-07-01 09:04:19,599 [DEBUG][       Thread-599604][   transport.py][1871] : kex follows: False
2025-07-01 09:04:19,599 [DEBUG][       Thread-599604][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:04:19,599 [DEBUG][       Thread-599604][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:04:19,599 [DEBUG][       Thread-599604][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:04:19,599 [DEBUG][       Thread-599604][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:04:19,599 [DEBUG][       Thread-599604][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:04:19,599 [DEBUG][       Thread-599604][   transport.py][1871] : Compression: none
2025-07-01 09:04:19,599 [DEBUG][       Thread-599604][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:04:19,616 [DEBUG][       Thread-599604][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:04:19,616 [DEBUG][       Thread-599604][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:04:19,616 [DEBUG][       Thread-599604][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:04:19,616 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:04:19,617 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:04:19,618 [DEBUG][       Thread-599604][   transport.py][1871] : userauth is OK
2025-07-01 09:04:19,642 [ INFO][       Thread-599604][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:04:19,643 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:04:20,227 [DEBUG][       Thread-599604][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:04:20,228 [DEBUG][       Thread-599604][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:04:20,269 [DEBUG][       Thread-599604][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:04:20,269 [DEBUG][       Thread-599604][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:04:20,272 [DEBUG][       Thread-599604][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:04:20,285 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:04:20,285 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:04:20,287 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:04:20,288 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:04:20,296 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:04:20,297 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:04:20,298 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:04:20,298 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:04:20,298 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.294387 -999.00   +7.60  30.72     58   +0.00 1 1 2 1 1   887    0 7.91 17.55 ----- 30.7 30.7 20.1 52.1 10.2 -23.4 9.4 -23.6 8.5 -22.5 9.3 -22.8
2025-07-01 09:04:20,299 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:04:20,299 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:04:20,299 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.294387
2025-07-01 09:04:20,299 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:04:20,300 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:04:20,300 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:04:20,300 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:04:20,300 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:04:20,300 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:03:54', tmtdew=8.93, humidity=53.13, cloud=0.0, wind=33.03, temperature=7.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:03:55.037', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:04:20,301 [DEBUG][       Thread-599604][   transport.py][1871] : EOF in transport thread
2025-07-01 09:04:20,394 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:04:20,406 [DEBUG][       Thread-599607][   transport.py][1871] : starting thread (client mode): 0x83c8520
2025-07-01 09:04:20,406 [DEBUG][       Thread-599607][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:04:20,426 [DEBUG][       Thread-599607][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:04:20,427 [ INFO][       Thread-599607][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:04:20,434 [DEBUG][       Thread-599607][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:04:20,435 [DEBUG][       Thread-599607][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:04:20,435 [DEBUG][       Thread-599607][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:04:20,435 [DEBUG][       Thread-599607][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:04:20,435 [DEBUG][       Thread-599607][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:04:20,435 [DEBUG][       Thread-599607][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:04:20,435 [DEBUG][       Thread-599607][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:04:20,435 [DEBUG][       Thread-599607][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:04:20,435 [DEBUG][       Thread-599607][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:04:20,435 [DEBUG][       Thread-599607][   transport.py][1871] : client lang: <none>
2025-07-01 09:04:20,435 [DEBUG][       Thread-599607][   transport.py][1871] : server lang: <none>
2025-07-01 09:04:20,435 [DEBUG][       Thread-599607][   transport.py][1871] : kex follows: False
2025-07-01 09:04:20,435 [DEBUG][       Thread-599607][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:04:20,435 [DEBUG][       Thread-599607][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:04:20,435 [DEBUG][       Thread-599607][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:04:20,436 [DEBUG][       Thread-599607][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:04:20,436 [DEBUG][       Thread-599607][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:04:20,436 [DEBUG][       Thread-599607][   transport.py][1871] : Compression: none
2025-07-01 09:04:20,436 [DEBUG][       Thread-599607][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:04:20,498 [DEBUG][       Thread-599607][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:04:20,499 [DEBUG][       Thread-599607][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:04:20,500 [DEBUG][       Thread-599607][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:04:20,500 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:04:20,501 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:04:20,558 [DEBUG][       Thread-599607][   transport.py][1871] : userauth is OK
2025-07-01 09:04:20,558 [DEBUG][       Thread-599607][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:04:20,559 [DEBUG][       Thread-599607][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:04:20,559 [DEBUG][       Thread-599607][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:04:20,559 [DEBUG][       Thread-599607][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:04:20,578 [ INFO][       Thread-599607][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:04:20,579 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:04:20,579 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:04:21,557 [DEBUG][Thread-599609 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:04:21,594 [DEBUG][       Thread-599607][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:04:21,594 [DEBUG][       Thread-599607][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:04:21,644 [DEBUG][       Thread-599607][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:04:21,644 [DEBUG][       Thread-599607][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:04:21,653 [DEBUG][       Thread-599607][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:04:21,662 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:04:21,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-07-01 09:04:21,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') -> 00000000
2025-07-01 09:04:21,681 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:04:21,681 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:04:21,682 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:04:21,690 [DEBUG][       Thread-599607][   transport.py][1871] : EOF in transport thread
2025-07-01 09:04:30,580 [DEBUG][Thread-599610 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:04:31,692 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:04:31,692 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:04:31,692 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:04:31,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-07-01 09:04:32,232 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 4, 26), 8.91, 53.57, 0.0, 33.61, 7.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:04:32,232 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:04:26
2025-07-01 09:04:32,322 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:04:32,330 [DEBUG][       Thread-599611][   transport.py][1871] : starting thread (client mode): 0x8155180
2025-07-01 09:04:32,330 [DEBUG][       Thread-599611][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:04:32,349 [DEBUG][       Thread-599611][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:04:32,349 [ INFO][       Thread-599611][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:04:32,352 [DEBUG][       Thread-599611][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:04:32,352 [DEBUG][       Thread-599611][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:04:32,352 [DEBUG][       Thread-599611][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:04:32,352 [DEBUG][       Thread-599611][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:04:32,352 [DEBUG][       Thread-599611][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:04:32,352 [DEBUG][       Thread-599611][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:04:32,352 [DEBUG][       Thread-599611][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:04:32,352 [DEBUG][       Thread-599611][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:04:32,352 [DEBUG][       Thread-599611][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:04:32,352 [DEBUG][       Thread-599611][   transport.py][1871] : client lang: <none>
2025-07-01 09:04:32,352 [DEBUG][       Thread-599611][   transport.py][1871] : server lang: <none>
2025-07-01 09:04:32,352 [DEBUG][       Thread-599611][   transport.py][1871] : kex follows: False
2025-07-01 09:04:32,352 [DEBUG][       Thread-599611][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:04:32,353 [DEBUG][       Thread-599611][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:04:32,353 [DEBUG][       Thread-599611][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:04:32,353 [DEBUG][       Thread-599611][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:04:32,353 [DEBUG][       Thread-599611][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:04:32,353 [DEBUG][       Thread-599611][   transport.py][1871] : Compression: none
2025-07-01 09:04:32,353 [DEBUG][       Thread-599611][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:04:32,368 [DEBUG][       Thread-599611][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:04:32,368 [DEBUG][       Thread-599611][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:04:32,368 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:04:32,368 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:04:32,368 [DEBUG][       Thread-599611][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:04:32,369 [DEBUG][       Thread-599611][   transport.py][1871] : userauth is OK
2025-07-01 09:04:32,393 [ INFO][       Thread-599611][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:04:32,393 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:04:33,025 [DEBUG][       Thread-599611][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:04:33,025 [DEBUG][       Thread-599611][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:04:33,068 [DEBUG][       Thread-599611][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:04:33,068 [DEBUG][       Thread-599611][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:04:33,070 [DEBUG][       Thread-599611][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:04:33,082 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:04:33,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:04:33,083 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:04:33,084 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:04:33,087 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:04:33,088 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:04:33,088 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:04:33,088 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:04:33,088 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.294387 -999.00   +7.60  30.72     58   +0.00 1 1 2 1 1   887    0 7.91 17.55 ----- 30.7 30.7 20.1 52.1 10.2 -23.4 9.4 -23.6 8.5 -22.5 9.3 -22.8
2025-07-01 09:04:33,088 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:04:33,088 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:04:33,088 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.294387
2025-07-01 09:04:33,088 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:04:33,089 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:04:33,089 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:04:33,089 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:04:33,089 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:04:33,089 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:04:26', tmtdew=8.91, humidity=53.57, cloud=0.0, wind=33.61, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:03:55.037', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:04:33,089 [DEBUG][       Thread-599611][   transport.py][1871] : EOF in transport thread
2025-07-01 09:04:33,168 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:04:33,179 [DEBUG][       Thread-599614][   transport.py][1871] : starting thread (client mode): 0x83c8520
2025-07-01 09:04:33,179 [DEBUG][       Thread-599614][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:04:33,195 [DEBUG][       Thread-599614][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:04:33,195 [ INFO][       Thread-599614][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:04:33,207 [DEBUG][       Thread-599614][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:04:33,207 [DEBUG][       Thread-599614][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:04:33,207 [DEBUG][       Thread-599614][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:04:33,207 [DEBUG][       Thread-599614][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:04:33,207 [DEBUG][       Thread-599614][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:04:33,207 [DEBUG][       Thread-599614][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:04:33,207 [DEBUG][       Thread-599614][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:04:33,207 [DEBUG][       Thread-599614][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:04:33,207 [DEBUG][       Thread-599614][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:04:33,207 [DEBUG][       Thread-599614][   transport.py][1871] : client lang: <none>
2025-07-01 09:04:33,207 [DEBUG][       Thread-599614][   transport.py][1871] : server lang: <none>
2025-07-01 09:04:33,207 [DEBUG][       Thread-599614][   transport.py][1871] : kex follows: False
2025-07-01 09:04:33,207 [DEBUG][       Thread-599614][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:04:33,207 [DEBUG][       Thread-599614][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:04:33,207 [DEBUG][       Thread-599614][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:04:33,207 [DEBUG][       Thread-599614][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:04:33,207 [DEBUG][       Thread-599614][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:04:33,208 [DEBUG][       Thread-599614][   transport.py][1871] : Compression: none
2025-07-01 09:04:33,208 [DEBUG][       Thread-599614][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:04:33,260 [DEBUG][       Thread-599614][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:04:33,261 [DEBUG][       Thread-599614][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:04:33,261 [DEBUG][       Thread-599614][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:04:33,261 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:04:33,261 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:04:33,318 [DEBUG][       Thread-599614][   transport.py][1871] : userauth is OK
2025-07-01 09:04:33,318 [DEBUG][       Thread-599614][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:04:33,318 [DEBUG][       Thread-599614][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:04:33,318 [DEBUG][       Thread-599614][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:04:33,318 [DEBUG][       Thread-599614][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:04:33,332 [ INFO][       Thread-599614][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:04:33,332 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:04:33,332 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:04:34,373 [DEBUG][       Thread-599614][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:04:34,373 [DEBUG][       Thread-599614][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:04:34,423 [DEBUG][       Thread-599614][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:04:34,423 [DEBUG][       Thread-599614][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:04:34,432 [DEBUG][       Thread-599614][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:04:34,440 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:04:34,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-07-01 09:04:34,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-07-01 09:04:34,456 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:04:34,456 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:04:34,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:04:34,464 [DEBUG][       Thread-599614][   transport.py][1871] : EOF in transport thread
2025-07-01 09:04:39,603 [DEBUG][Thread-599616 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:04:44,467 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:04:44,467 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:04:44,467 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:04:44,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-07-01 09:04:44,985 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 4, 26), 8.91, 53.57, 0.0, 33.61, 7.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:04:44,985 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:04:26
2025-07-01 09:04:45,071 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:04:45,075 [DEBUG][       Thread-599617][   transport.py][1871] : starting thread (client mode): 0x8106050
2025-07-01 09:04:45,075 [DEBUG][       Thread-599617][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:04:45,096 [DEBUG][       Thread-599617][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:04:45,096 [ INFO][       Thread-599617][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:04:45,099 [DEBUG][       Thread-599617][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:04:45,100 [DEBUG][       Thread-599617][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:04:45,100 [DEBUG][       Thread-599617][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:04:45,100 [DEBUG][       Thread-599617][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:04:45,100 [DEBUG][       Thread-599617][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:04:45,100 [DEBUG][       Thread-599617][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:04:45,100 [DEBUG][       Thread-599617][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:04:45,100 [DEBUG][       Thread-599617][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:04:45,100 [DEBUG][       Thread-599617][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:04:45,100 [DEBUG][       Thread-599617][   transport.py][1871] : client lang: <none>
2025-07-01 09:04:45,100 [DEBUG][       Thread-599617][   transport.py][1871] : server lang: <none>
2025-07-01 09:04:45,100 [DEBUG][       Thread-599617][   transport.py][1871] : kex follows: False
2025-07-01 09:04:45,100 [DEBUG][       Thread-599617][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:04:45,100 [DEBUG][       Thread-599617][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:04:45,100 [DEBUG][       Thread-599617][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:04:45,100 [DEBUG][       Thread-599617][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:04:45,100 [DEBUG][       Thread-599617][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:04:45,100 [DEBUG][       Thread-599617][   transport.py][1871] : Compression: none
2025-07-01 09:04:45,100 [DEBUG][       Thread-599617][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:04:45,110 [DEBUG][       Thread-599617][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:04:45,110 [DEBUG][       Thread-599617][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:04:45,111 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:04:45,111 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:04:45,112 [DEBUG][       Thread-599617][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:04:45,112 [DEBUG][       Thread-599617][   transport.py][1871] : userauth is OK
2025-07-01 09:04:45,126 [ INFO][       Thread-599617][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:04:45,126 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:04:45,789 [DEBUG][       Thread-599617][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:04:45,789 [DEBUG][       Thread-599617][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:04:45,833 [DEBUG][       Thread-599617][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:04:45,833 [DEBUG][       Thread-599617][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:04:45,837 [DEBUG][       Thread-599617][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:04:45,849 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:04:45,853 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:04:45,855 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:04:45,857 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:04:45,863 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:04:45,865 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:04:45,865 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:04:45,866 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:04:45,866 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.294387 -999.00   +7.60  30.72     58   +0.00 1 1 2 1 1   887    0 7.91 17.55 ----- 30.7 30.7 20.1 52.1 10.2 -23.4 9.4 -23.6 8.5 -22.5 9.3 -22.8
2025-07-01 09:04:45,866 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:04:45,866 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:04:45,866 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.294387
2025-07-01 09:04:45,866 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:04:45,867 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:04:45,867 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:04:45,867 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:04:45,867 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:04:45,867 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:04:26', tmtdew=8.91, humidity=53.57, cloud=0.0, wind=33.61, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:03:55.037', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:04:45,868 [DEBUG][       Thread-599617][   transport.py][1871] : EOF in transport thread
2025-07-01 09:04:45,945 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:04:45,954 [DEBUG][       Thread-599620][   transport.py][1871] : starting thread (client mode): 0x83939d0
2025-07-01 09:04:45,954 [DEBUG][       Thread-599620][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:04:45,969 [DEBUG][       Thread-599620][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:04:45,969 [ INFO][       Thread-599620][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:04:45,977 [DEBUG][       Thread-599620][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:04:45,977 [DEBUG][       Thread-599620][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:04:45,977 [DEBUG][       Thread-599620][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:04:45,977 [DEBUG][       Thread-599620][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:04:45,977 [DEBUG][       Thread-599620][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:04:45,977 [DEBUG][       Thread-599620][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:04:45,977 [DEBUG][       Thread-599620][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:04:45,977 [DEBUG][       Thread-599620][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:04:45,978 [DEBUG][       Thread-599620][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:04:45,978 [DEBUG][       Thread-599620][   transport.py][1871] : client lang: <none>
2025-07-01 09:04:45,978 [DEBUG][       Thread-599620][   transport.py][1871] : server lang: <none>
2025-07-01 09:04:45,978 [DEBUG][       Thread-599620][   transport.py][1871] : kex follows: False
2025-07-01 09:04:45,978 [DEBUG][       Thread-599620][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:04:45,978 [DEBUG][       Thread-599620][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:04:45,978 [DEBUG][       Thread-599620][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:04:45,978 [DEBUG][       Thread-599620][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:04:45,978 [DEBUG][       Thread-599620][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:04:45,978 [DEBUG][       Thread-599620][   transport.py][1871] : Compression: none
2025-07-01 09:04:45,978 [DEBUG][       Thread-599620][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:04:46,035 [DEBUG][       Thread-599620][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:04:46,035 [DEBUG][       Thread-599620][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:04:46,045 [DEBUG][       Thread-599620][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:04:46,045 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:04:46,046 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:04:46,095 [DEBUG][       Thread-599620][   transport.py][1871] : userauth is OK
2025-07-01 09:04:46,095 [DEBUG][       Thread-599620][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:04:46,095 [DEBUG][       Thread-599620][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:04:46,095 [DEBUG][       Thread-599620][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:04:46,095 [DEBUG][       Thread-599620][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:04:46,114 [ INFO][       Thread-599620][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:04:46,114 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:04:46,114 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:04:47,127 [DEBUG][       Thread-599620][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:04:47,127 [DEBUG][       Thread-599620][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:04:47,176 [DEBUG][       Thread-599620][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:04:47,176 [DEBUG][       Thread-599620][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:04:47,186 [DEBUG][       Thread-599620][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:04:47,197 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:04:47,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-07-01 09:04:47,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-07-01 09:04:47,217 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:04:47,217 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:04:47,217 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:04:47,226 [DEBUG][       Thread-599620][   transport.py][1871] : EOF in transport thread
2025-07-01 09:04:47,856 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:04:47,857 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:04:48,636 [DEBUG][Thread-599622 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:04:57,228 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:04:57,228 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:04:57,228 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:04:57,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-07-01 09:04:57,656 [DEBUG][Thread-599623 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:04:57,725 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 4, 26), 8.91, 53.57, 0.0, 33.61, 7.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:04:57,725 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:04:26
2025-07-01 09:04:57,811 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:04:57,815 [DEBUG][       Thread-599624][   transport.py][1871] : starting thread (client mode): 0x8105cc0
2025-07-01 09:04:57,815 [DEBUG][       Thread-599624][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:04:57,840 [DEBUG][       Thread-599624][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:04:57,840 [ INFO][       Thread-599624][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:04:57,842 [DEBUG][       Thread-599624][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:04:57,842 [DEBUG][       Thread-599624][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:04:57,842 [DEBUG][       Thread-599624][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:04:57,842 [DEBUG][       Thread-599624][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:04:57,842 [DEBUG][       Thread-599624][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:04:57,842 [DEBUG][       Thread-599624][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:04:57,842 [DEBUG][       Thread-599624][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:04:57,842 [DEBUG][       Thread-599624][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:04:57,842 [DEBUG][       Thread-599624][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:04:57,842 [DEBUG][       Thread-599624][   transport.py][1871] : client lang: <none>
2025-07-01 09:04:57,842 [DEBUG][       Thread-599624][   transport.py][1871] : server lang: <none>
2025-07-01 09:04:57,842 [DEBUG][       Thread-599624][   transport.py][1871] : kex follows: False
2025-07-01 09:04:57,842 [DEBUG][       Thread-599624][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:04:57,842 [DEBUG][       Thread-599624][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:04:57,843 [DEBUG][       Thread-599624][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:04:57,843 [DEBUG][       Thread-599624][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:04:57,843 [DEBUG][       Thread-599624][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:04:57,843 [DEBUG][       Thread-599624][   transport.py][1871] : Compression: none
2025-07-01 09:04:57,843 [DEBUG][       Thread-599624][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:04:57,860 [DEBUG][       Thread-599624][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:04:57,861 [DEBUG][       Thread-599624][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:04:57,861 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:04:57,861 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:04:57,862 [DEBUG][       Thread-599624][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:04:57,862 [DEBUG][       Thread-599624][   transport.py][1871] : userauth is OK
2025-07-01 09:04:57,886 [ INFO][       Thread-599624][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:04:57,887 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:04:58,527 [DEBUG][       Thread-599624][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:04:58,527 [DEBUG][       Thread-599624][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:04:58,568 [DEBUG][       Thread-599624][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:04:58,568 [DEBUG][       Thread-599624][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:04:58,571 [DEBUG][       Thread-599624][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:04:58,583 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:04:58,583 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:04:58,584 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:04:58,585 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:04:58,589 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:04:58,590 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:04:58,590 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:04:58,590 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:04:58,590 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.294734 -999.00   +7.60  27.73     58   +0.00 1 1 1 1 1   887    0 7.91 19.61 ----- 27.7 27.7 11.0 43.7 10.3 -23.6 9.4 -23.9 8.5 -22.4 9.3 -22.3
2025-07-01 09:04:58,590 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:04:58,590 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:04:58,590 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.294734
2025-07-01 09:04:58,590 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:04:58,590 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:04:58,590 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:04:58,590 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:04:58,590 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:04:58,590 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:04:26', tmtdew=8.91, humidity=53.57, cloud=0.0, wind=33.61, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:04:25.018', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:04:58,591 [DEBUG][       Thread-599624][   transport.py][1871] : EOF in transport thread
2025-07-01 09:04:58,665 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:04:58,676 [DEBUG][       Thread-599627][   transport.py][1871] : starting thread (client mode): 0x83939d0
2025-07-01 09:04:58,676 [DEBUG][       Thread-599627][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:04:58,692 [DEBUG][       Thread-599627][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:04:58,692 [ INFO][       Thread-599627][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:04:58,699 [DEBUG][       Thread-599627][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:04:58,699 [DEBUG][       Thread-599627][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:04:58,699 [DEBUG][       Thread-599627][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:04:58,699 [DEBUG][       Thread-599627][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:04:58,699 [DEBUG][       Thread-599627][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:04:58,699 [DEBUG][       Thread-599627][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:04:58,699 [DEBUG][       Thread-599627][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:04:58,699 [DEBUG][       Thread-599627][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:04:58,699 [DEBUG][       Thread-599627][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:04:58,699 [DEBUG][       Thread-599627][   transport.py][1871] : client lang: <none>
2025-07-01 09:04:58,699 [DEBUG][       Thread-599627][   transport.py][1871] : server lang: <none>
2025-07-01 09:04:58,699 [DEBUG][       Thread-599627][   transport.py][1871] : kex follows: False
2025-07-01 09:04:58,699 [DEBUG][       Thread-599627][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:04:58,699 [DEBUG][       Thread-599627][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:04:58,699 [DEBUG][       Thread-599627][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:04:58,699 [DEBUG][       Thread-599627][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:04:58,699 [DEBUG][       Thread-599627][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:04:58,699 [DEBUG][       Thread-599627][   transport.py][1871] : Compression: none
2025-07-01 09:04:58,699 [DEBUG][       Thread-599627][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:04:58,757 [DEBUG][       Thread-599627][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:04:58,757 [DEBUG][       Thread-599627][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:04:58,757 [DEBUG][       Thread-599627][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:04:58,757 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:04:58,758 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:04:58,814 [DEBUG][       Thread-599627][   transport.py][1871] : userauth is OK
2025-07-01 09:04:58,814 [DEBUG][       Thread-599627][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:04:58,814 [DEBUG][       Thread-599627][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:04:58,814 [DEBUG][       Thread-599627][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:04:58,814 [DEBUG][       Thread-599627][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:04:58,833 [ INFO][       Thread-599627][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:04:58,834 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:04:58,834 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:04:59,847 [DEBUG][       Thread-599627][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:04:59,848 [DEBUG][       Thread-599627][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:04:59,896 [DEBUG][       Thread-599627][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:04:59,896 [DEBUG][       Thread-599627][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:04:59,906 [DEBUG][       Thread-599627][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:04:59,920 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:04:59,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-07-01 09:04:59,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-07-01 09:04:59,938 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:04:59,938 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:04:59,938 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:04:59,946 [DEBUG][       Thread-599627][   transport.py][1871] : EOF in transport thread
2025-07-01 09:05:06,684 [DEBUG][Thread-599629 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:05:09,948 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:05:09,948 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:05:09,948 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:05:09,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-07-01 09:05:10,491 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 4, 57), 8.91, 53.56, 0.0, 40.37, 7.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:05:10,491 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:04:57
2025-07-01 09:05:10,581 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:05:10,586 [DEBUG][       Thread-599630][   transport.py][1871] : starting thread (client mode): 0x8106c20
2025-07-01 09:05:10,586 [DEBUG][       Thread-599630][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:05:10,606 [DEBUG][       Thread-599630][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:05:10,606 [ INFO][       Thread-599630][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:05:10,610 [DEBUG][       Thread-599630][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:05:10,610 [DEBUG][       Thread-599630][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:05:10,610 [DEBUG][       Thread-599630][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:05:10,610 [DEBUG][       Thread-599630][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:05:10,610 [DEBUG][       Thread-599630][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:05:10,610 [DEBUG][       Thread-599630][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:05:10,610 [DEBUG][       Thread-599630][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:05:10,610 [DEBUG][       Thread-599630][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:05:10,610 [DEBUG][       Thread-599630][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:05:10,610 [DEBUG][       Thread-599630][   transport.py][1871] : client lang: <none>
2025-07-01 09:05:10,610 [DEBUG][       Thread-599630][   transport.py][1871] : server lang: <none>
2025-07-01 09:05:10,610 [DEBUG][       Thread-599630][   transport.py][1871] : kex follows: False
2025-07-01 09:05:10,610 [DEBUG][       Thread-599630][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:05:10,610 [DEBUG][       Thread-599630][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:05:10,610 [DEBUG][       Thread-599630][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:05:10,610 [DEBUG][       Thread-599630][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:05:10,610 [DEBUG][       Thread-599630][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:05:10,610 [DEBUG][       Thread-599630][   transport.py][1871] : Compression: none
2025-07-01 09:05:10,610 [DEBUG][       Thread-599630][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:05:10,626 [DEBUG][       Thread-599630][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:05:10,626 [DEBUG][       Thread-599630][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:05:10,626 [DEBUG][       Thread-599630][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:05:10,626 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:05:10,626 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:05:10,627 [DEBUG][       Thread-599630][   transport.py][1871] : userauth is OK
2025-07-01 09:05:10,651 [ INFO][       Thread-599630][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:05:10,651 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:05:11,266 [DEBUG][       Thread-599630][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:05:11,266 [DEBUG][       Thread-599630][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:05:11,309 [DEBUG][       Thread-599630][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:05:11,309 [DEBUG][       Thread-599630][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:05:11,311 [DEBUG][       Thread-599630][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:05:11,324 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:05:11,324 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:05:11,325 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:05:11,326 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:05:11,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:05:11,329 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:05:11,329 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:05:11,329 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:05:11,329 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.294734 -999.00   +7.60  27.73     58   +0.00 1 1 1 1 1   887    0 7.91 19.61 ----- 27.7 27.7 11.0 43.7 10.3 -23.6 9.4 -23.9 8.5 -22.4 9.3 -22.3
2025-07-01 09:05:11,329 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:05:11,329 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:05:11,329 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.294734
2025-07-01 09:05:11,329 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:05:11,329 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:05:11,329 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:05:11,329 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:05:11,329 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:05:11,329 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:04:57', tmtdew=8.91, humidity=53.56, cloud=0.0, wind=40.37, temperature=7.7, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:04:25.018', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:05:11,330 [DEBUG][       Thread-599630][   transport.py][1871] : EOF in transport thread
2025-07-01 09:05:11,404 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:05:11,413 [DEBUG][       Thread-599633][   transport.py][1871] : starting thread (client mode): 0x8155f90
2025-07-01 09:05:11,414 [DEBUG][       Thread-599633][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:05:11,429 [DEBUG][       Thread-599633][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:05:11,429 [ INFO][       Thread-599633][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:05:11,436 [DEBUG][       Thread-599633][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:05:11,437 [DEBUG][       Thread-599633][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:05:11,437 [DEBUG][       Thread-599633][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:05:11,437 [DEBUG][       Thread-599633][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:05:11,437 [DEBUG][       Thread-599633][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:05:11,437 [DEBUG][       Thread-599633][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:05:11,437 [DEBUG][       Thread-599633][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:05:11,437 [DEBUG][       Thread-599633][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:05:11,437 [DEBUG][       Thread-599633][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:05:11,437 [DEBUG][       Thread-599633][   transport.py][1871] : client lang: <none>
2025-07-01 09:05:11,437 [DEBUG][       Thread-599633][   transport.py][1871] : server lang: <none>
2025-07-01 09:05:11,437 [DEBUG][       Thread-599633][   transport.py][1871] : kex follows: False
2025-07-01 09:05:11,437 [DEBUG][       Thread-599633][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:05:11,437 [DEBUG][       Thread-599633][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:05:11,437 [DEBUG][       Thread-599633][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:05:11,437 [DEBUG][       Thread-599633][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:05:11,437 [DEBUG][       Thread-599633][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:05:11,437 [DEBUG][       Thread-599633][   transport.py][1871] : Compression: none
2025-07-01 09:05:11,437 [DEBUG][       Thread-599633][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:05:11,492 [DEBUG][       Thread-599633][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:05:11,493 [DEBUG][       Thread-599633][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:05:11,493 [DEBUG][       Thread-599633][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:05:11,493 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:05:11,493 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:05:11,550 [DEBUG][       Thread-599633][   transport.py][1871] : userauth is OK
2025-07-01 09:05:11,550 [DEBUG][       Thread-599633][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:05:11,550 [DEBUG][       Thread-599633][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:05:11,550 [DEBUG][       Thread-599633][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:05:11,550 [DEBUG][       Thread-599633][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:05:11,564 [ INFO][       Thread-599633][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:05:11,564 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:05:11,564 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:05:12,626 [DEBUG][       Thread-599633][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:05:12,626 [DEBUG][       Thread-599633][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:05:12,675 [DEBUG][       Thread-599633][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:05:12,675 [DEBUG][       Thread-599633][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:05:12,684 [DEBUG][       Thread-599633][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:05:12,692 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:05:12,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-07-01 09:05:12,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-07-01 09:05:12,707 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:05:12,707 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:05:12,708 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:05:12,715 [DEBUG][       Thread-599633][   transport.py][1871] : EOF in transport thread
2025-07-01 09:05:15,704 [DEBUG][Thread-599635 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:05:19,306 [DEBUG][Thread-599636 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:05:22,718 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:05:22,718 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:05:22,718 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:05:22,721 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:05:23,219 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 4, 57), 8.91, 53.56, 0.0, 40.37, 7.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:05:23,219 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:04:57
2025-07-01 09:05:23,305 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:05:23,311 [DEBUG][       Thread-599637][   transport.py][1871] : starting thread (client mode): 0x8107b80
2025-07-01 09:05:23,311 [DEBUG][       Thread-599637][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:05:23,331 [DEBUG][       Thread-599637][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:05:23,331 [ INFO][       Thread-599637][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:05:23,334 [DEBUG][       Thread-599637][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:05:23,334 [DEBUG][       Thread-599637][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:05:23,334 [DEBUG][       Thread-599637][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:05:23,334 [DEBUG][       Thread-599637][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:05:23,334 [DEBUG][       Thread-599637][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:05:23,334 [DEBUG][       Thread-599637][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:05:23,334 [DEBUG][       Thread-599637][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:05:23,334 [DEBUG][       Thread-599637][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:05:23,334 [DEBUG][       Thread-599637][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:05:23,334 [DEBUG][       Thread-599637][   transport.py][1871] : client lang: <none>
2025-07-01 09:05:23,334 [DEBUG][       Thread-599637][   transport.py][1871] : server lang: <none>
2025-07-01 09:05:23,335 [DEBUG][       Thread-599637][   transport.py][1871] : kex follows: False
2025-07-01 09:05:23,335 [DEBUG][       Thread-599637][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:05:23,335 [DEBUG][       Thread-599637][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:05:23,335 [DEBUG][       Thread-599637][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:05:23,335 [DEBUG][       Thread-599637][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:05:23,335 [DEBUG][       Thread-599637][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:05:23,335 [DEBUG][       Thread-599637][   transport.py][1871] : Compression: none
2025-07-01 09:05:23,335 [DEBUG][       Thread-599637][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:05:23,351 [DEBUG][       Thread-599637][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:05:23,352 [DEBUG][       Thread-599637][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:05:23,352 [DEBUG][       Thread-599637][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:05:23,353 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:05:23,353 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:05:23,396 [DEBUG][       Thread-599637][   transport.py][1871] : userauth is OK
2025-07-01 09:05:23,421 [ INFO][       Thread-599637][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:05:23,422 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:05:24,059 [DEBUG][       Thread-599637][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:05:24,059 [DEBUG][       Thread-599637][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:05:24,101 [DEBUG][       Thread-599637][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:05:24,101 [DEBUG][       Thread-599637][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:05:24,103 [DEBUG][       Thread-599637][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:05:24,116 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:05:24,116 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:05:24,118 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:05:24,119 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:05:24,124 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:05:24,126 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:05:24,126 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:05:24,127 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:05:24,127 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.294734 -999.00   +7.60  27.73     58   +0.00 1 1 1 1 1   887    0 7.91 19.61 ----- 27.7 27.7 11.0 43.7 10.3 -23.6 9.4 -23.9 8.5 -22.4 9.3 -22.3
2025-07-01 09:05:24,127 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:05:24,127 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:05:24,127 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.294734
2025-07-01 09:05:24,127 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:05:24,128 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:05:24,128 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:05:24,128 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:05:24,128 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:05:24,128 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:04:57', tmtdew=8.91, humidity=53.56, cloud=0.0, wind=40.37, temperature=7.7, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:04:25.018', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:05:24,129 [DEBUG][       Thread-599637][   transport.py][1871] : EOF in transport thread
2025-07-01 09:05:24,204 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:05:24,216 [DEBUG][       Thread-599640][   transport.py][1871] : starting thread (client mode): 0x8157d00
2025-07-01 09:05:24,216 [DEBUG][       Thread-599640][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:05:24,236 [DEBUG][       Thread-599640][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:05:24,236 [ INFO][       Thread-599640][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:05:24,248 [DEBUG][       Thread-599640][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:05:24,248 [DEBUG][       Thread-599640][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:05:24,248 [DEBUG][       Thread-599640][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:05:24,248 [DEBUG][       Thread-599640][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:05:24,248 [DEBUG][       Thread-599640][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:05:24,248 [DEBUG][       Thread-599640][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:05:24,248 [DEBUG][       Thread-599640][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:05:24,248 [DEBUG][       Thread-599640][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:05:24,248 [DEBUG][       Thread-599640][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:05:24,248 [DEBUG][       Thread-599640][   transport.py][1871] : client lang: <none>
2025-07-01 09:05:24,248 [DEBUG][       Thread-599640][   transport.py][1871] : server lang: <none>
2025-07-01 09:05:24,248 [DEBUG][       Thread-599640][   transport.py][1871] : kex follows: False
2025-07-01 09:05:24,249 [DEBUG][       Thread-599640][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:05:24,249 [DEBUG][       Thread-599640][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:05:24,249 [DEBUG][       Thread-599640][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:05:24,249 [DEBUG][       Thread-599640][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:05:24,249 [DEBUG][       Thread-599640][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:05:24,249 [DEBUG][       Thread-599640][   transport.py][1871] : Compression: none
2025-07-01 09:05:24,249 [DEBUG][       Thread-599640][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:05:24,302 [DEBUG][       Thread-599640][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:05:24,303 [DEBUG][       Thread-599640][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:05:24,304 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:05:24,304 [DEBUG][       Thread-599640][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:05:24,305 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:05:24,361 [DEBUG][       Thread-599640][   transport.py][1871] : userauth is OK
2025-07-01 09:05:24,361 [DEBUG][       Thread-599640][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:05:24,361 [DEBUG][       Thread-599640][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:05:24,361 [DEBUG][       Thread-599640][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:05:24,361 [DEBUG][       Thread-599640][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:05:24,380 [ INFO][       Thread-599640][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:05:24,380 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:05:24,381 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:05:24,748 [DEBUG][Thread-599642 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:05:25,385 [DEBUG][       Thread-599640][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:05:25,385 [DEBUG][       Thread-599640][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:05:25,436 [DEBUG][       Thread-599640][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:05:25,436 [DEBUG][       Thread-599640][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:05:25,446 [DEBUG][       Thread-599640][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:05:25,455 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:05:25,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-07-01 09:05:25,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-07-01 09:05:25,474 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:05:25,475 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:05:25,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:05:25,484 [DEBUG][       Thread-599640][   transport.py][1871] : EOF in transport thread
2025-07-01 09:05:33,772 [DEBUG][Thread-599643 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:05:35,486 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:05:35,486 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:05:35,486 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:05:35,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-07-01 09:05:36,002 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 5, 29), 9.03, 52.97, 0.0, 38.6, 7.85, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:05:36,002 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:05:29
2025-07-01 09:05:36,088 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:05:36,092 [DEBUG][       Thread-599644][   transport.py][1871] : starting thread (client mode): 0x81560b0
2025-07-01 09:05:36,092 [DEBUG][       Thread-599644][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:05:36,112 [DEBUG][       Thread-599644][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:05:36,112 [ INFO][       Thread-599644][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:05:36,113 [DEBUG][       Thread-599644][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:05:36,114 [DEBUG][       Thread-599644][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:05:36,114 [DEBUG][       Thread-599644][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:05:36,114 [DEBUG][       Thread-599644][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:05:36,114 [DEBUG][       Thread-599644][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:05:36,114 [DEBUG][       Thread-599644][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:05:36,114 [DEBUG][       Thread-599644][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:05:36,114 [DEBUG][       Thread-599644][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:05:36,114 [DEBUG][       Thread-599644][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:05:36,114 [DEBUG][       Thread-599644][   transport.py][1871] : client lang: <none>
2025-07-01 09:05:36,114 [DEBUG][       Thread-599644][   transport.py][1871] : server lang: <none>
2025-07-01 09:05:36,114 [DEBUG][       Thread-599644][   transport.py][1871] : kex follows: False
2025-07-01 09:05:36,114 [DEBUG][       Thread-599644][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:05:36,114 [DEBUG][       Thread-599644][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:05:36,114 [DEBUG][       Thread-599644][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:05:36,114 [DEBUG][       Thread-599644][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:05:36,114 [DEBUG][       Thread-599644][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:05:36,114 [DEBUG][       Thread-599644][   transport.py][1871] : Compression: none
2025-07-01 09:05:36,114 [DEBUG][       Thread-599644][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:05:36,122 [DEBUG][       Thread-599644][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:05:36,122 [DEBUG][       Thread-599644][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:05:36,122 [DEBUG][       Thread-599644][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:05:36,123 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:05:36,123 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:05:36,124 [DEBUG][       Thread-599644][   transport.py][1871] : userauth is OK
2025-07-01 09:05:36,148 [ INFO][       Thread-599644][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:05:36,149 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:05:36,788 [DEBUG][       Thread-599644][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:05:36,788 [DEBUG][       Thread-599644][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:05:36,829 [DEBUG][       Thread-599644][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:05:36,829 [DEBUG][       Thread-599644][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:05:36,833 [DEBUG][       Thread-599644][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:05:36,845 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:05:36,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:05:36,847 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:05:36,849 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:05:36,854 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:05:36,856 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:05:36,856 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:05:36,857 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:05:36,857 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.295081 -999.00   +7.70  37.13     57   +0.00 1 1 2 1 1   887    0 8.13 21.61 ----- 37.1 37.1 22.0 47.8 10.3 -23.4 9.5 -23.9 8.5 -22.4 9.3 -22.3
2025-07-01 09:05:36,857 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:05:36,857 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:05:36,857 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.295081
2025-07-01 09:05:36,858 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:05:36,858 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:05:36,858 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:05:36,859 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:05:36,859 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:05:36,859 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:05:29', tmtdew=9.03, humidity=52.97, cloud=0.0, wind=38.6, temperature=7.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:04:54.998', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:05:36,860 [DEBUG][       Thread-599644][   transport.py][1871] : EOF in transport thread
2025-07-01 09:05:36,943 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:05:36,958 [DEBUG][       Thread-599647][   transport.py][1871] : starting thread (client mode): 0x81056f0
2025-07-01 09:05:36,958 [DEBUG][       Thread-599647][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:05:36,977 [DEBUG][       Thread-599647][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:05:36,977 [ INFO][       Thread-599647][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:05:36,987 [DEBUG][       Thread-599647][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:05:36,987 [DEBUG][       Thread-599647][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:05:36,988 [DEBUG][       Thread-599647][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:05:36,988 [DEBUG][       Thread-599647][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:05:36,988 [DEBUG][       Thread-599647][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:05:36,988 [DEBUG][       Thread-599647][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:05:36,988 [DEBUG][       Thread-599647][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:05:36,988 [DEBUG][       Thread-599647][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:05:36,988 [DEBUG][       Thread-599647][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:05:36,988 [DEBUG][       Thread-599647][   transport.py][1871] : client lang: <none>
2025-07-01 09:05:36,988 [DEBUG][       Thread-599647][   transport.py][1871] : server lang: <none>
2025-07-01 09:05:36,988 [DEBUG][       Thread-599647][   transport.py][1871] : kex follows: False
2025-07-01 09:05:36,988 [DEBUG][       Thread-599647][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:05:36,988 [DEBUG][       Thread-599647][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:05:36,988 [DEBUG][       Thread-599647][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:05:36,988 [DEBUG][       Thread-599647][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:05:36,988 [DEBUG][       Thread-599647][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:05:36,988 [DEBUG][       Thread-599647][   transport.py][1871] : Compression: none
2025-07-01 09:05:36,988 [DEBUG][       Thread-599647][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:05:37,053 [DEBUG][       Thread-599647][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:05:37,053 [DEBUG][       Thread-599647][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:05:37,054 [DEBUG][       Thread-599647][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:05:37,054 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:05:37,055 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:05:37,121 [DEBUG][       Thread-599647][   transport.py][1871] : userauth is OK
2025-07-01 09:05:37,121 [DEBUG][       Thread-599647][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:05:37,121 [DEBUG][       Thread-599647][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:05:37,121 [DEBUG][       Thread-599647][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:05:37,122 [DEBUG][       Thread-599647][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:05:37,144 [ INFO][       Thread-599647][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:05:37,144 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:05:37,145 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:05:38,136 [DEBUG][       Thread-599647][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:05:38,136 [DEBUG][       Thread-599647][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:05:38,192 [DEBUG][       Thread-599647][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:05:38,192 [DEBUG][       Thread-599647][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:05:38,209 [DEBUG][       Thread-599647][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:05:38,227 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:05:38,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-07-01 09:05:38,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-07-01 09:05:38,260 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:05:38,260 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:05:38,261 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:05:38,277 [DEBUG][       Thread-599647][   transport.py][1871] : EOF in transport thread
2025-07-01 09:05:42,796 [DEBUG][Thread-599649 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:05:47,995 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:05:47,997 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:05:48,271 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:05:48,271 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:05:48,272 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:05:48,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-07-01 09:05:48,807 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 5, 29), 9.03, 52.97, 0.0, 38.6, 7.85, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:05:48,807 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:05:29
2025-07-01 09:05:48,898 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:05:48,902 [DEBUG][       Thread-599650][   transport.py][1871] : starting thread (client mode): 0x8105180
2025-07-01 09:05:48,902 [DEBUG][       Thread-599650][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:05:48,925 [DEBUG][       Thread-599650][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:05:48,925 [ INFO][       Thread-599650][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:05:48,928 [DEBUG][       Thread-599650][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:05:48,928 [DEBUG][       Thread-599650][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:05:48,928 [DEBUG][       Thread-599650][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:05:48,928 [DEBUG][       Thread-599650][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:05:48,928 [DEBUG][       Thread-599650][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:05:48,928 [DEBUG][       Thread-599650][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:05:48,928 [DEBUG][       Thread-599650][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:05:48,928 [DEBUG][       Thread-599650][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:05:48,928 [DEBUG][       Thread-599650][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:05:48,928 [DEBUG][       Thread-599650][   transport.py][1871] : client lang: <none>
2025-07-01 09:05:48,928 [DEBUG][       Thread-599650][   transport.py][1871] : server lang: <none>
2025-07-01 09:05:48,928 [DEBUG][       Thread-599650][   transport.py][1871] : kex follows: False
2025-07-01 09:05:48,928 [DEBUG][       Thread-599650][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:05:48,928 [DEBUG][       Thread-599650][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:05:48,928 [DEBUG][       Thread-599650][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:05:48,928 [DEBUG][       Thread-599650][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:05:48,928 [DEBUG][       Thread-599650][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:05:48,928 [DEBUG][       Thread-599650][   transport.py][1871] : Compression: none
2025-07-01 09:05:48,928 [DEBUG][       Thread-599650][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:05:48,945 [DEBUG][       Thread-599650][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:05:48,945 [DEBUG][       Thread-599650][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:05:48,945 [DEBUG][       Thread-599650][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:05:48,945 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:05:48,945 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:05:48,946 [DEBUG][       Thread-599650][   transport.py][1871] : userauth is OK
2025-07-01 09:05:48,958 [ INFO][       Thread-599650][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:05:48,958 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:05:49,601 [DEBUG][       Thread-599650][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:05:49,601 [DEBUG][       Thread-599650][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:05:49,644 [DEBUG][       Thread-599650][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:05:49,644 [DEBUG][       Thread-599650][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:05:49,647 [DEBUG][       Thread-599650][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:05:49,660 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:05:49,660 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:05:49,661 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:05:49,662 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:05:49,665 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:05:49,666 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:05:49,666 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:05:49,666 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:05:49,666 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.295081 -999.00   +7.70  37.13     57   +0.00 1 1 2 1 1   887    0 8.13 21.61 ----- 37.1 37.1 22.0 47.8 10.3 -23.4 9.5 -23.9 8.5 -22.4 9.3 -22.3
2025-07-01 09:05:49,666 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:05:49,666 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:05:49,666 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.295081
2025-07-01 09:05:49,666 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:05:49,666 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:05:49,666 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:05:49,666 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:05:49,666 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:05:49,666 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:05:29', tmtdew=9.03, humidity=52.97, cloud=0.0, wind=38.6, temperature=7.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:04:54.998', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:05:49,667 [DEBUG][       Thread-599650][   transport.py][1871] : EOF in transport thread
2025-07-01 09:05:49,741 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:05:49,754 [DEBUG][       Thread-599653][   transport.py][1871] : starting thread (client mode): 0x8393b80
2025-07-01 09:05:49,754 [DEBUG][       Thread-599653][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:05:49,769 [DEBUG][       Thread-599653][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:05:49,769 [ INFO][       Thread-599653][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:05:49,777 [DEBUG][       Thread-599653][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:05:49,777 [DEBUG][       Thread-599653][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:05:49,777 [DEBUG][       Thread-599653][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:05:49,777 [DEBUG][       Thread-599653][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:05:49,777 [DEBUG][       Thread-599653][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:05:49,777 [DEBUG][       Thread-599653][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:05:49,777 [DEBUG][       Thread-599653][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:05:49,777 [DEBUG][       Thread-599653][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:05:49,777 [DEBUG][       Thread-599653][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:05:49,777 [DEBUG][       Thread-599653][   transport.py][1871] : client lang: <none>
2025-07-01 09:05:49,777 [DEBUG][       Thread-599653][   transport.py][1871] : server lang: <none>
2025-07-01 09:05:49,777 [DEBUG][       Thread-599653][   transport.py][1871] : kex follows: False
2025-07-01 09:05:49,777 [DEBUG][       Thread-599653][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:05:49,777 [DEBUG][       Thread-599653][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:05:49,777 [DEBUG][       Thread-599653][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:05:49,777 [DEBUG][       Thread-599653][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:05:49,777 [DEBUG][       Thread-599653][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:05:49,777 [DEBUG][       Thread-599653][   transport.py][1871] : Compression: none
2025-07-01 09:05:49,777 [DEBUG][       Thread-599653][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:05:49,832 [DEBUG][       Thread-599653][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:05:49,832 [DEBUG][       Thread-599653][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:05:49,832 [DEBUG][       Thread-599653][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:05:49,832 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:05:49,833 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:05:49,890 [DEBUG][       Thread-599653][   transport.py][1871] : userauth is OK
2025-07-01 09:05:49,890 [DEBUG][       Thread-599653][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:05:49,890 [DEBUG][       Thread-599653][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:05:49,890 [DEBUG][       Thread-599653][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:05:49,890 [DEBUG][       Thread-599653][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:05:49,904 [ INFO][       Thread-599653][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:05:49,904 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:05:49,905 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:05:50,896 [DEBUG][       Thread-599653][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:05:50,896 [DEBUG][       Thread-599653][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:05:50,948 [DEBUG][       Thread-599653][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:05:50,948 [DEBUG][       Thread-599653][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:05:50,956 [DEBUG][       Thread-599653][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:05:50,965 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:05:50,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-07-01 09:05:50,972 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 09:05:50,981 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:05:50,981 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:05:50,981 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:05:50,989 [DEBUG][       Thread-599653][   transport.py][1871] : EOF in transport thread
2025-07-01 09:05:51,826 [DEBUG][Thread-599655 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:06:00,846 [DEBUG][Thread-599656 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:06:00,991 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:06:00,992 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:06:00,992 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:06:00,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-07-01 09:06:01,509 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 5, 29), 9.03, 52.97, 0.0, 38.6, 7.85, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:06:01,509 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:05:29
2025-07-01 09:06:01,595 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:06:01,599 [DEBUG][       Thread-599657][   transport.py][1871] : starting thread (client mode): 0x81561a0
2025-07-01 09:06:01,599 [DEBUG][       Thread-599657][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:06:01,618 [DEBUG][       Thread-599657][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:06:01,618 [ INFO][       Thread-599657][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:06:01,621 [DEBUG][       Thread-599657][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:06:01,621 [DEBUG][       Thread-599657][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:06:01,621 [DEBUG][       Thread-599657][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:06:01,621 [DEBUG][       Thread-599657][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:06:01,621 [DEBUG][       Thread-599657][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:06:01,621 [DEBUG][       Thread-599657][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:06:01,621 [DEBUG][       Thread-599657][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:06:01,621 [DEBUG][       Thread-599657][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:06:01,621 [DEBUG][       Thread-599657][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:06:01,621 [DEBUG][       Thread-599657][   transport.py][1871] : client lang: <none>
2025-07-01 09:06:01,621 [DEBUG][       Thread-599657][   transport.py][1871] : server lang: <none>
2025-07-01 09:06:01,621 [DEBUG][       Thread-599657][   transport.py][1871] : kex follows: False
2025-07-01 09:06:01,621 [DEBUG][       Thread-599657][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:06:01,621 [DEBUG][       Thread-599657][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:06:01,621 [DEBUG][       Thread-599657][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:06:01,622 [DEBUG][       Thread-599657][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:06:01,622 [DEBUG][       Thread-599657][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:06:01,622 [DEBUG][       Thread-599657][   transport.py][1871] : Compression: none
2025-07-01 09:06:01,622 [DEBUG][       Thread-599657][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:06:01,636 [DEBUG][       Thread-599657][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:06:01,636 [DEBUG][       Thread-599657][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:06:01,636 [DEBUG][       Thread-599657][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:06:01,636 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:06:01,637 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:06:01,637 [DEBUG][       Thread-599657][   transport.py][1871] : userauth is OK
2025-07-01 09:06:01,661 [ INFO][       Thread-599657][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:06:01,661 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:06:02,232 [DEBUG][       Thread-599657][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:06:02,232 [DEBUG][       Thread-599657][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:06:02,276 [DEBUG][       Thread-599657][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:06:02,276 [DEBUG][       Thread-599657][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:06:02,279 [DEBUG][       Thread-599657][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:06:02,285 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:06:02,285 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:06:02,286 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:06:02,286 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:06:02,288 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:06:02,289 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:06:02,289 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:06:02,289 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:06:02,289 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.295776 -999.00   +7.80  41.16     57   +0.00 1 2 2 1 1   887    0 8.38 31.05 ----- 41.2 41.2 24.6 46.4 10.4 -23.4 9.5 -23.3 8.6 -22.6 9.4 -22.3
2025-07-01 09:06:02,289 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:06:02,289 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:06:02,289 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.295776
2025-07-01 09:06:02,289 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:06:02,289 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:06:02,289 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:06:02,290 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:06:02,290 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 09:06:02,290 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:05:29', tmtdew=9.03, humidity=52.97, cloud=0.0, wind=38.6, temperature=7.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:05:55.046', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:06:02,290 [DEBUG][       Thread-599657][   transport.py][1871] : EOF in transport thread
2025-07-01 09:06:02,363 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:06:02,373 [DEBUG][       Thread-599660][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 09:06:02,373 [DEBUG][       Thread-599660][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:06:02,388 [DEBUG][       Thread-599660][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:06:02,388 [ INFO][       Thread-599660][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:06:02,396 [DEBUG][       Thread-599660][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:06:02,396 [DEBUG][       Thread-599660][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:06:02,396 [DEBUG][       Thread-599660][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:06:02,396 [DEBUG][       Thread-599660][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:06:02,396 [DEBUG][       Thread-599660][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:06:02,397 [DEBUG][       Thread-599660][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:06:02,397 [DEBUG][       Thread-599660][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:06:02,397 [DEBUG][       Thread-599660][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:06:02,397 [DEBUG][       Thread-599660][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:06:02,397 [DEBUG][       Thread-599660][   transport.py][1871] : client lang: <none>
2025-07-01 09:06:02,397 [DEBUG][       Thread-599660][   transport.py][1871] : server lang: <none>
2025-07-01 09:06:02,397 [DEBUG][       Thread-599660][   transport.py][1871] : kex follows: False
2025-07-01 09:06:02,397 [DEBUG][       Thread-599660][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:06:02,397 [DEBUG][       Thread-599660][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:06:02,397 [DEBUG][       Thread-599660][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:06:02,397 [DEBUG][       Thread-599660][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:06:02,397 [DEBUG][       Thread-599660][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:06:02,397 [DEBUG][       Thread-599660][   transport.py][1871] : Compression: none
2025-07-01 09:06:02,397 [DEBUG][       Thread-599660][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:06:02,452 [DEBUG][       Thread-599660][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:06:02,452 [DEBUG][       Thread-599660][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:06:02,452 [DEBUG][       Thread-599660][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:06:02,453 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:06:02,453 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:06:02,510 [DEBUG][       Thread-599660][   transport.py][1871] : userauth is OK
2025-07-01 09:06:02,510 [DEBUG][       Thread-599660][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:06:02,510 [DEBUG][       Thread-599660][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:06:02,510 [DEBUG][       Thread-599660][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:06:02,510 [DEBUG][       Thread-599660][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:06:02,524 [ INFO][       Thread-599660][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:06:02,524 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:06:02,525 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:06:03,584 [DEBUG][       Thread-599660][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:06:03,585 [DEBUG][       Thread-599660][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:06:03,637 [DEBUG][       Thread-599660][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:06:03,637 [DEBUG][       Thread-599660][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:06:03,647 [DEBUG][       Thread-599660][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:06:03,656 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:06:03,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-07-01 09:06:03,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-07-01 09:06:03,676 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:06:03,677 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:06:03,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:06:03,694 [DEBUG][       Thread-599660][   transport.py][1871] : EOF in transport thread
2025-07-01 09:06:09,867 [DEBUG][Thread-599662 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:06:13,687 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:06:13,688 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:06:13,688 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:06:13,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-07-01 09:06:14,200 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 6, 1), 9.05, 52.89, 0.0, 36.66, 7.87, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:06:14,200 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:06:01
2025-07-01 09:06:14,286 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:06:14,290 [DEBUG][       Thread-599663][   transport.py][1871] : starting thread (client mode): 0x81e5840
2025-07-01 09:06:14,290 [DEBUG][       Thread-599663][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:06:14,312 [DEBUG][       Thread-599663][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:06:14,312 [ INFO][       Thread-599663][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:06:14,315 [DEBUG][       Thread-599663][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:06:14,315 [DEBUG][       Thread-599663][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:06:14,315 [DEBUG][       Thread-599663][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:06:14,315 [DEBUG][       Thread-599663][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:06:14,315 [DEBUG][       Thread-599663][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:06:14,316 [DEBUG][       Thread-599663][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:06:14,316 [DEBUG][       Thread-599663][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:06:14,316 [DEBUG][       Thread-599663][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:06:14,316 [DEBUG][       Thread-599663][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:06:14,316 [DEBUG][       Thread-599663][   transport.py][1871] : client lang: <none>
2025-07-01 09:06:14,316 [DEBUG][       Thread-599663][   transport.py][1871] : server lang: <none>
2025-07-01 09:06:14,316 [DEBUG][       Thread-599663][   transport.py][1871] : kex follows: False
2025-07-01 09:06:14,316 [DEBUG][       Thread-599663][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:06:14,316 [DEBUG][       Thread-599663][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:06:14,316 [DEBUG][       Thread-599663][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:06:14,316 [DEBUG][       Thread-599663][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:06:14,316 [DEBUG][       Thread-599663][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:06:14,316 [DEBUG][       Thread-599663][   transport.py][1871] : Compression: none
2025-07-01 09:06:14,316 [DEBUG][       Thread-599663][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:06:14,333 [DEBUG][       Thread-599663][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:06:14,334 [DEBUG][       Thread-599663][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:06:14,334 [DEBUG][       Thread-599663][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:06:14,334 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:06:14,334 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:06:14,335 [DEBUG][       Thread-599663][   transport.py][1871] : userauth is OK
2025-07-01 09:06:14,360 [ INFO][       Thread-599663][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:06:14,361 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:06:14,998 [DEBUG][       Thread-599663][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:06:14,998 [DEBUG][       Thread-599663][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:06:15,041 [DEBUG][       Thread-599663][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:06:15,041 [DEBUG][       Thread-599663][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:06:15,045 [DEBUG][       Thread-599663][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:06:15,056 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:06:15,056 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:06:15,058 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:06:15,060 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:06:15,066 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:06:15,068 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:06:15,069 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:06:15,069 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:06:15,069 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.295776 -999.00   +7.80  41.16     57   +0.00 1 2 2 1 1   887    0 8.38 31.05 ----- 41.2 41.2 24.6 46.4 10.4 -23.4 9.5 -23.3 8.6 -22.6 9.4 -22.3
2025-07-01 09:06:15,069 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:06:15,070 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:06:15,070 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.295776
2025-07-01 09:06:15,070 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:06:15,071 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:06:15,071 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:06:15,071 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:06:15,071 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 09:06:15,071 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:06:01', tmtdew=9.05, humidity=52.89, cloud=0.0, wind=36.66, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:05:55.046', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:06:15,071 [DEBUG][       Thread-599663][   transport.py][1871] : EOF in transport thread
2025-07-01 09:06:15,154 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:06:15,167 [DEBUG][       Thread-599666][   transport.py][1871] : starting thread (client mode): 0x8155cc0
2025-07-01 09:06:15,167 [DEBUG][       Thread-599666][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:06:15,182 [DEBUG][       Thread-599666][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:06:15,182 [ INFO][       Thread-599666][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:06:15,189 [DEBUG][       Thread-599666][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:06:15,190 [DEBUG][       Thread-599666][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:06:15,190 [DEBUG][       Thread-599666][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:06:15,190 [DEBUG][       Thread-599666][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:06:15,190 [DEBUG][       Thread-599666][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:06:15,190 [DEBUG][       Thread-599666][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:06:15,190 [DEBUG][       Thread-599666][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:06:15,190 [DEBUG][       Thread-599666][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:06:15,190 [DEBUG][       Thread-599666][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:06:15,190 [DEBUG][       Thread-599666][   transport.py][1871] : client lang: <none>
2025-07-01 09:06:15,190 [DEBUG][       Thread-599666][   transport.py][1871] : server lang: <none>
2025-07-01 09:06:15,190 [DEBUG][       Thread-599666][   transport.py][1871] : kex follows: False
2025-07-01 09:06:15,190 [DEBUG][       Thread-599666][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:06:15,190 [DEBUG][       Thread-599666][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:06:15,190 [DEBUG][       Thread-599666][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:06:15,190 [DEBUG][       Thread-599666][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:06:15,190 [DEBUG][       Thread-599666][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:06:15,190 [DEBUG][       Thread-599666][   transport.py][1871] : Compression: none
2025-07-01 09:06:15,190 [DEBUG][       Thread-599666][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:06:15,246 [DEBUG][       Thread-599666][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:06:15,247 [DEBUG][       Thread-599666][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:06:15,247 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:06:15,248 [DEBUG][       Thread-599666][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:06:15,248 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:06:15,302 [DEBUG][       Thread-599666][   transport.py][1871] : userauth is OK
2025-07-01 09:06:15,302 [DEBUG][       Thread-599666][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:06:15,302 [DEBUG][       Thread-599666][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:06:15,303 [DEBUG][       Thread-599666][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:06:15,303 [DEBUG][       Thread-599666][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:06:15,321 [ INFO][       Thread-599666][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:06:15,321 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:06:15,322 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:06:16,303 [DEBUG][       Thread-599666][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:06:16,303 [DEBUG][       Thread-599666][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:06:16,352 [DEBUG][       Thread-599666][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:06:16,352 [DEBUG][       Thread-599666][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:06:16,361 [DEBUG][       Thread-599666][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:06:16,371 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:06:16,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-07-01 09:06:16,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-07-01 09:06:16,393 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:06:16,394 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:06:16,394 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:06:16,402 [DEBUG][       Thread-599666][   transport.py][1871] : EOF in transport thread
2025-07-01 09:06:18,900 [DEBUG][Thread-599668 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:06:19,359 [DEBUG][Thread-599669 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:06:26,401 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:06:26,401 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:06:26,401 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:06:26,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-07-01 09:06:26,909 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 6, 1), 9.05, 52.89, 0.0, 36.66, 7.87, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:06:26,909 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:06:01
2025-07-01 09:06:27,000 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:06:27,007 [DEBUG][       Thread-599670][   transport.py][1871] : starting thread (client mode): 0x81e6590
2025-07-01 09:06:27,007 [DEBUG][       Thread-599670][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:06:27,028 [DEBUG][       Thread-599670][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:06:27,028 [ INFO][       Thread-599670][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:06:27,032 [DEBUG][       Thread-599670][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:06:27,032 [DEBUG][       Thread-599670][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:06:27,032 [DEBUG][       Thread-599670][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:06:27,032 [DEBUG][       Thread-599670][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:06:27,032 [DEBUG][       Thread-599670][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:06:27,032 [DEBUG][       Thread-599670][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:06:27,032 [DEBUG][       Thread-599670][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:06:27,032 [DEBUG][       Thread-599670][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:06:27,032 [DEBUG][       Thread-599670][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:06:27,032 [DEBUG][       Thread-599670][   transport.py][1871] : client lang: <none>
2025-07-01 09:06:27,032 [DEBUG][       Thread-599670][   transport.py][1871] : server lang: <none>
2025-07-01 09:06:27,032 [DEBUG][       Thread-599670][   transport.py][1871] : kex follows: False
2025-07-01 09:06:27,032 [DEBUG][       Thread-599670][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:06:27,032 [DEBUG][       Thread-599670][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:06:27,032 [DEBUG][       Thread-599670][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:06:27,032 [DEBUG][       Thread-599670][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:06:27,032 [DEBUG][       Thread-599670][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:06:27,032 [DEBUG][       Thread-599670][   transport.py][1871] : Compression: none
2025-07-01 09:06:27,032 [DEBUG][       Thread-599670][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:06:27,046 [DEBUG][       Thread-599670][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:06:27,046 [DEBUG][       Thread-599670][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:06:27,046 [DEBUG][       Thread-599670][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:06:27,046 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:06:27,047 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:06:27,047 [DEBUG][       Thread-599670][   transport.py][1871] : userauth is OK
2025-07-01 09:06:27,060 [ INFO][       Thread-599670][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:06:27,060 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:06:27,684 [DEBUG][       Thread-599670][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:06:27,684 [DEBUG][       Thread-599670][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:06:27,728 [DEBUG][       Thread-599670][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:06:27,728 [DEBUG][       Thread-599670][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:06:27,731 [DEBUG][       Thread-599670][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:06:27,743 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:06:27,743 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:06:27,744 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:06:27,745 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:06:27,748 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:06:27,749 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:06:27,749 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:06:27,749 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:06:27,749 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.295776 -999.00   +7.80  41.16     57   +0.00 1 2 2 1 1   887    0 8.38 31.05 ----- 41.2 41.2 24.6 46.4 10.4 -23.4 9.5 -23.3 8.6 -22.6 9.4 -22.3
2025-07-01 09:06:27,749 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:06:27,749 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:06:27,749 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.295776
2025-07-01 09:06:27,749 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:06:27,750 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:06:27,750 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:06:27,750 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:06:27,750 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 09:06:27,750 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:06:01', tmtdew=9.05, humidity=52.89, cloud=0.0, wind=36.66, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:05:55.046', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:06:27,750 [DEBUG][       Thread-599670][   transport.py][1871] : EOF in transport thread
2025-07-01 09:06:27,825 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:06:27,837 [DEBUG][       Thread-599673][   transport.py][1871] : starting thread (client mode): 0x8155d20
2025-07-01 09:06:27,837 [DEBUG][       Thread-599673][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:06:27,854 [DEBUG][       Thread-599673][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:06:27,854 [ INFO][       Thread-599673][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:06:27,861 [DEBUG][       Thread-599673][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:06:27,861 [DEBUG][       Thread-599673][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:06:27,861 [DEBUG][       Thread-599673][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:06:27,862 [DEBUG][       Thread-599673][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:06:27,862 [DEBUG][       Thread-599673][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:06:27,862 [DEBUG][       Thread-599673][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:06:27,862 [DEBUG][       Thread-599673][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:06:27,862 [DEBUG][       Thread-599673][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:06:27,862 [DEBUG][       Thread-599673][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:06:27,862 [DEBUG][       Thread-599673][   transport.py][1871] : client lang: <none>
2025-07-01 09:06:27,862 [DEBUG][       Thread-599673][   transport.py][1871] : server lang: <none>
2025-07-01 09:06:27,862 [DEBUG][       Thread-599673][   transport.py][1871] : kex follows: False
2025-07-01 09:06:27,862 [DEBUG][       Thread-599673][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:06:27,862 [DEBUG][       Thread-599673][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:06:27,862 [DEBUG][       Thread-599673][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:06:27,862 [DEBUG][       Thread-599673][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:06:27,862 [DEBUG][       Thread-599673][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:06:27,862 [DEBUG][       Thread-599673][   transport.py][1871] : Compression: none
2025-07-01 09:06:27,862 [DEBUG][       Thread-599673][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:06:27,921 [DEBUG][       Thread-599673][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:06:27,921 [DEBUG][       Thread-599673][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:06:27,921 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:06:27,922 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:06:27,922 [DEBUG][       Thread-599673][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:06:27,941 [DEBUG][Thread-599675 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:06:27,978 [DEBUG][       Thread-599673][   transport.py][1871] : userauth is OK
2025-07-01 09:06:27,978 [DEBUG][       Thread-599673][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:06:27,978 [DEBUG][       Thread-599673][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:06:27,978 [DEBUG][       Thread-599673][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:06:27,978 [DEBUG][       Thread-599673][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:06:27,992 [ INFO][       Thread-599673][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:06:27,992 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:06:27,992 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:06:28,977 [DEBUG][       Thread-599673][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:06:28,977 [DEBUG][       Thread-599673][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:06:29,027 [DEBUG][       Thread-599673][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:06:29,027 [DEBUG][       Thread-599673][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:06:29,036 [DEBUG][       Thread-599673][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:06:29,044 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:06:29,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-07-01 09:06:29,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-07-01 09:06:29,060 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:06:29,060 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:06:29,060 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:06:29,071 [DEBUG][       Thread-599673][   transport.py][1871] : EOF in transport thread
2025-07-01 09:06:36,960 [DEBUG][Thread-599676 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:06:39,071 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:06:39,071 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:06:39,071 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:06:39,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-07-01 09:06:39,569 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 6, 33), 9.13, 52.5, 0.0, 30.91, 7.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:06:39,569 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:06:33
2025-07-01 09:06:39,656 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:06:39,660 [DEBUG][       Thread-599677][   transport.py][1871] : starting thread (client mode): 0x81e69e0
2025-07-01 09:06:39,660 [DEBUG][       Thread-599677][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:06:39,680 [DEBUG][       Thread-599677][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:06:39,680 [ INFO][       Thread-599677][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:06:39,683 [DEBUG][       Thread-599677][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:06:39,683 [DEBUG][       Thread-599677][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:06:39,683 [DEBUG][       Thread-599677][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:06:39,683 [DEBUG][       Thread-599677][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:06:39,683 [DEBUG][       Thread-599677][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:06:39,683 [DEBUG][       Thread-599677][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:06:39,683 [DEBUG][       Thread-599677][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:06:39,683 [DEBUG][       Thread-599677][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:06:39,683 [DEBUG][       Thread-599677][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:06:39,683 [DEBUG][       Thread-599677][   transport.py][1871] : client lang: <none>
2025-07-01 09:06:39,683 [DEBUG][       Thread-599677][   transport.py][1871] : server lang: <none>
2025-07-01 09:06:39,684 [DEBUG][       Thread-599677][   transport.py][1871] : kex follows: False
2025-07-01 09:06:39,684 [DEBUG][       Thread-599677][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:06:39,684 [DEBUG][       Thread-599677][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:06:39,684 [DEBUG][       Thread-599677][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:06:39,684 [DEBUG][       Thread-599677][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:06:39,684 [DEBUG][       Thread-599677][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:06:39,684 [DEBUG][       Thread-599677][   transport.py][1871] : Compression: none
2025-07-01 09:06:39,684 [DEBUG][       Thread-599677][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:06:39,700 [DEBUG][       Thread-599677][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:06:39,701 [DEBUG][       Thread-599677][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:06:39,701 [DEBUG][       Thread-599677][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:06:39,702 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:06:39,702 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:06:39,703 [DEBUG][       Thread-599677][   transport.py][1871] : userauth is OK
2025-07-01 09:06:39,715 [ INFO][       Thread-599677][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:06:39,716 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:06:40,353 [DEBUG][       Thread-599677][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:06:40,353 [DEBUG][       Thread-599677][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:06:40,397 [DEBUG][       Thread-599677][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:06:40,397 [DEBUG][       Thread-599677][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:06:40,400 [DEBUG][       Thread-599677][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:06:40,412 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:06:40,412 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:06:40,414 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:06:40,416 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:06:40,422 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:06:40,423 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:06:40,424 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:06:40,424 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:06:40,424 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.296123 -999.00   +7.80  30.32     58   +0.00 1 1 2 1 1   887    0 8.31 29.84 ----- 30.3 30.3 27.2 45.1 10.4 -24.0 9.5 -24.1 8.6 -22.4 9.4 -22.2
2025-07-01 09:06:40,425 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:06:40,425 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:06:40,425 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.296123
2025-07-01 09:06:40,425 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:06:40,426 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:06:40,426 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:06:40,426 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:06:40,426 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:06:40,426 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:06:33', tmtdew=9.13, humidity=52.5, cloud=0.0, wind=30.91, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:06:25.027', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:06:40,427 [DEBUG][       Thread-599677][   transport.py][1871] : EOF in transport thread
2025-07-01 09:06:40,510 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:06:40,520 [DEBUG][       Thread-599680][   transport.py][1871] : starting thread (client mode): 0x83c8490
2025-07-01 09:06:40,520 [DEBUG][       Thread-599680][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:06:40,536 [DEBUG][       Thread-599680][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:06:40,536 [ INFO][       Thread-599680][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:06:40,543 [DEBUG][       Thread-599680][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:06:40,543 [DEBUG][       Thread-599680][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:06:40,543 [DEBUG][       Thread-599680][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:06:40,543 [DEBUG][       Thread-599680][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:06:40,544 [DEBUG][       Thread-599680][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:06:40,544 [DEBUG][       Thread-599680][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:06:40,544 [DEBUG][       Thread-599680][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:06:40,544 [DEBUG][       Thread-599680][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:06:40,544 [DEBUG][       Thread-599680][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:06:40,544 [DEBUG][       Thread-599680][   transport.py][1871] : client lang: <none>
2025-07-01 09:06:40,544 [DEBUG][       Thread-599680][   transport.py][1871] : server lang: <none>
2025-07-01 09:06:40,544 [DEBUG][       Thread-599680][   transport.py][1871] : kex follows: False
2025-07-01 09:06:40,544 [DEBUG][       Thread-599680][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:06:40,544 [DEBUG][       Thread-599680][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:06:40,544 [DEBUG][       Thread-599680][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:06:40,544 [DEBUG][       Thread-599680][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:06:40,544 [DEBUG][       Thread-599680][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:06:40,544 [DEBUG][       Thread-599680][   transport.py][1871] : Compression: none
2025-07-01 09:06:40,544 [DEBUG][       Thread-599680][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:06:40,602 [DEBUG][       Thread-599680][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:06:40,602 [DEBUG][       Thread-599680][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:06:40,603 [DEBUG][       Thread-599680][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:06:40,603 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:06:40,604 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:06:40,658 [DEBUG][       Thread-599680][   transport.py][1871] : userauth is OK
2025-07-01 09:06:40,658 [DEBUG][       Thread-599680][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:06:40,658 [DEBUG][       Thread-599680][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:06:40,659 [DEBUG][       Thread-599680][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:06:40,659 [DEBUG][       Thread-599680][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:06:40,678 [ INFO][       Thread-599680][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:06:40,678 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:06:40,678 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:06:41,639 [DEBUG][       Thread-599680][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:06:41,639 [DEBUG][       Thread-599680][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:06:41,688 [DEBUG][       Thread-599680][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:06:41,688 [DEBUG][       Thread-599680][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:06:41,698 [DEBUG][       Thread-599680][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:06:41,707 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:06:41,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-07-01 09:06:41,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') -> 00000000
2025-07-01 09:06:41,727 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:06:41,728 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:06:41,728 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:06:41,737 [DEBUG][       Thread-599680][   transport.py][1871] : EOF in transport thread
2025-07-01 09:06:45,982 [DEBUG][Thread-599682 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:06:48,135 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:06:48,136 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:06:51,731 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:06:51,731 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:06:51,731 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:06:51,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-07-01 09:06:52,240 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 6, 33), 9.13, 52.5, 0.0, 30.91, 7.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:06:52,240 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:06:33
2025-07-01 09:06:52,326 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:06:52,331 [DEBUG][       Thread-599683][   transport.py][1871] : starting thread (client mode): 0x81552a0
2025-07-01 09:06:52,331 [DEBUG][       Thread-599683][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:06:52,351 [DEBUG][       Thread-599683][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:06:52,352 [ INFO][       Thread-599683][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:06:52,353 [DEBUG][       Thread-599683][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:06:52,354 [DEBUG][       Thread-599683][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:06:52,354 [DEBUG][       Thread-599683][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:06:52,354 [DEBUG][       Thread-599683][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:06:52,354 [DEBUG][       Thread-599683][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:06:52,354 [DEBUG][       Thread-599683][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:06:52,354 [DEBUG][       Thread-599683][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:06:52,354 [DEBUG][       Thread-599683][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:06:52,354 [DEBUG][       Thread-599683][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:06:52,354 [DEBUG][       Thread-599683][   transport.py][1871] : client lang: <none>
2025-07-01 09:06:52,354 [DEBUG][       Thread-599683][   transport.py][1871] : server lang: <none>
2025-07-01 09:06:52,354 [DEBUG][       Thread-599683][   transport.py][1871] : kex follows: False
2025-07-01 09:06:52,354 [DEBUG][       Thread-599683][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:06:52,354 [DEBUG][       Thread-599683][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:06:52,354 [DEBUG][       Thread-599683][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:06:52,354 [DEBUG][       Thread-599683][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:06:52,354 [DEBUG][       Thread-599683][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:06:52,354 [DEBUG][       Thread-599683][   transport.py][1871] : Compression: none
2025-07-01 09:06:52,354 [DEBUG][       Thread-599683][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:06:52,367 [DEBUG][       Thread-599683][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:06:52,367 [DEBUG][       Thread-599683][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:06:52,368 [DEBUG][       Thread-599683][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:06:52,368 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:06:52,368 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:06:52,369 [DEBUG][       Thread-599683][   transport.py][1871] : userauth is OK
2025-07-01 09:06:52,383 [ INFO][       Thread-599683][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:06:52,383 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:06:53,036 [DEBUG][       Thread-599683][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:06:53,036 [DEBUG][       Thread-599683][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:06:53,081 [DEBUG][       Thread-599683][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:06:53,081 [DEBUG][       Thread-599683][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:06:53,084 [DEBUG][       Thread-599683][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:06:53,096 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:06:53,097 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:06:53,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:06:53,100 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:06:53,106 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:06:53,108 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:06:53,109 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:06:53,109 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:06:53,109 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.296123 -999.00   +7.80  30.32     58   +0.00 1 1 2 1 1   887    0 8.31 29.84 ----- 30.3 30.3 27.2 45.1 10.4 -24.0 9.5 -24.1 8.6 -22.4 9.4 -22.2
2025-07-01 09:06:53,109 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:06:53,109 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:06:53,109 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.296123
2025-07-01 09:06:53,110 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:06:53,110 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:06:53,111 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:06:53,111 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:06:53,111 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:06:53,111 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:06:33', tmtdew=9.13, humidity=52.5, cloud=0.0, wind=30.91, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:06:25.027', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:06:53,112 [DEBUG][       Thread-599683][   transport.py][1871] : EOF in transport thread
2025-07-01 09:06:53,195 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:06:53,207 [DEBUG][       Thread-599686][   transport.py][1871] : starting thread (client mode): 0x8105960
2025-07-01 09:06:53,207 [DEBUG][       Thread-599686][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:06:53,222 [DEBUG][       Thread-599686][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:06:53,222 [ INFO][       Thread-599686][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:06:53,231 [DEBUG][       Thread-599686][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:06:53,231 [DEBUG][       Thread-599686][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:06:53,232 [DEBUG][       Thread-599686][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:06:53,232 [DEBUG][       Thread-599686][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:06:53,232 [DEBUG][       Thread-599686][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:06:53,232 [DEBUG][       Thread-599686][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:06:53,232 [DEBUG][       Thread-599686][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:06:53,232 [DEBUG][       Thread-599686][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:06:53,232 [DEBUG][       Thread-599686][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:06:53,232 [DEBUG][       Thread-599686][   transport.py][1871] : client lang: <none>
2025-07-01 09:06:53,232 [DEBUG][       Thread-599686][   transport.py][1871] : server lang: <none>
2025-07-01 09:06:53,232 [DEBUG][       Thread-599686][   transport.py][1871] : kex follows: False
2025-07-01 09:06:53,232 [DEBUG][       Thread-599686][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:06:53,232 [DEBUG][       Thread-599686][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:06:53,232 [DEBUG][       Thread-599686][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:06:53,232 [DEBUG][       Thread-599686][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:06:53,232 [DEBUG][       Thread-599686][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:06:53,232 [DEBUG][       Thread-599686][   transport.py][1871] : Compression: none
2025-07-01 09:06:53,232 [DEBUG][       Thread-599686][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:06:53,291 [DEBUG][       Thread-599686][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:06:53,292 [DEBUG][       Thread-599686][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:06:53,292 [DEBUG][       Thread-599686][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:06:53,293 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:06:53,293 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:06:53,357 [DEBUG][       Thread-599686][   transport.py][1871] : userauth is OK
2025-07-01 09:06:53,357 [DEBUG][       Thread-599686][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:06:53,357 [DEBUG][       Thread-599686][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:06:53,357 [DEBUG][       Thread-599686][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:06:53,357 [DEBUG][       Thread-599686][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:06:53,376 [ INFO][       Thread-599686][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:06:53,377 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:06:53,377 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:06:54,372 [DEBUG][       Thread-599686][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:06:54,372 [DEBUG][       Thread-599686][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:06:54,424 [DEBUG][       Thread-599686][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:06:54,424 [DEBUG][       Thread-599686][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:06:54,433 [DEBUG][       Thread-599686][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:06:54,442 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:06:54,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-07-01 09:06:54,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-07-01 09:06:54,460 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:06:54,461 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:06:54,461 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:06:54,469 [DEBUG][       Thread-599686][   transport.py][1871] : EOF in transport thread
2025-07-01 09:06:55,016 [DEBUG][Thread-599688 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:07:04,037 [DEBUG][Thread-599689 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:07:04,468 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:07:04,468 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:07:04,468 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:07:04,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-07-01 09:07:04,969 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 6, 33), 9.13, 52.5, 0.0, 30.91, 7.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:07:04,969 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:06:33
2025-07-01 09:07:05,055 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:07:05,059 [DEBUG][       Thread-599690][   transport.py][1871] : starting thread (client mode): 0x8107e20
2025-07-01 09:07:05,059 [DEBUG][       Thread-599690][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:07:05,079 [DEBUG][       Thread-599690][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:07:05,079 [ INFO][       Thread-599690][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:07:05,082 [DEBUG][       Thread-599690][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:07:05,082 [DEBUG][       Thread-599690][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:07:05,082 [DEBUG][       Thread-599690][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:07:05,082 [DEBUG][       Thread-599690][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:07:05,082 [DEBUG][       Thread-599690][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:07:05,082 [DEBUG][       Thread-599690][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:07:05,082 [DEBUG][       Thread-599690][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:07:05,082 [DEBUG][       Thread-599690][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:07:05,082 [DEBUG][       Thread-599690][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:07:05,082 [DEBUG][       Thread-599690][   transport.py][1871] : client lang: <none>
2025-07-01 09:07:05,082 [DEBUG][       Thread-599690][   transport.py][1871] : server lang: <none>
2025-07-01 09:07:05,082 [DEBUG][       Thread-599690][   transport.py][1871] : kex follows: False
2025-07-01 09:07:05,083 [DEBUG][       Thread-599690][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:07:05,083 [DEBUG][       Thread-599690][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:07:05,083 [DEBUG][       Thread-599690][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:07:05,083 [DEBUG][       Thread-599690][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:07:05,083 [DEBUG][       Thread-599690][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:07:05,083 [DEBUG][       Thread-599690][   transport.py][1871] : Compression: none
2025-07-01 09:07:05,083 [DEBUG][       Thread-599690][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:07:05,098 [DEBUG][       Thread-599690][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:07:05,098 [DEBUG][       Thread-599690][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:07:05,098 [DEBUG][       Thread-599690][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:07:05,098 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:07:05,098 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:07:05,140 [DEBUG][       Thread-599690][   transport.py][1871] : userauth is OK
2025-07-01 09:07:05,164 [ INFO][       Thread-599690][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:07:05,165 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:07:05,776 [DEBUG][       Thread-599690][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:07:05,776 [DEBUG][       Thread-599690][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:07:05,817 [DEBUG][       Thread-599690][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:07:05,817 [DEBUG][       Thread-599690][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:07:05,819 [DEBUG][       Thread-599690][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:07:05,832 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:07:05,832 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:07:05,833 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:07:05,834 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:07:05,838 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:07:05,839 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:07:05,839 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:07:05,839 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:07:05,839 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.296123 -999.00   +7.80  30.32     58   +0.00 1 1 2 1 1   887    0 8.31 29.84 ----- 30.3 30.3 27.2 45.1 10.4 -24.0 9.5 -24.1 8.6 -22.4 9.4 -22.2
2025-07-01 09:07:05,839 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:07:05,839 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:07:05,839 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.296123
2025-07-01 09:07:05,839 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:07:05,839 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:07:05,839 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:07:05,839 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:07:05,839 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:07:05,839 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:06:33', tmtdew=9.13, humidity=52.5, cloud=0.0, wind=30.91, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:06:25.027', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:07:05,840 [DEBUG][       Thread-599690][   transport.py][1871] : EOF in transport thread
2025-07-01 09:07:05,913 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:07:05,922 [DEBUG][       Thread-599693][   transport.py][1871] : starting thread (client mode): 0x83c8880
2025-07-01 09:07:05,922 [DEBUG][       Thread-599693][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:07:05,936 [DEBUG][       Thread-599693][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:07:05,936 [ INFO][       Thread-599693][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:07:06,155 [DEBUG][       Thread-599693][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:07:06,155 [DEBUG][       Thread-599693][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:07:06,155 [DEBUG][       Thread-599693][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:07:06,155 [DEBUG][       Thread-599693][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:07:06,155 [DEBUG][       Thread-599693][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:07:06,155 [DEBUG][       Thread-599693][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:07:06,155 [DEBUG][       Thread-599693][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:07:06,155 [DEBUG][       Thread-599693][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:07:06,155 [DEBUG][       Thread-599693][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:07:06,155 [DEBUG][       Thread-599693][   transport.py][1871] : client lang: <none>
2025-07-01 09:07:06,155 [DEBUG][       Thread-599693][   transport.py][1871] : server lang: <none>
2025-07-01 09:07:06,155 [DEBUG][       Thread-599693][   transport.py][1871] : kex follows: False
2025-07-01 09:07:06,155 [DEBUG][       Thread-599693][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:07:06,155 [DEBUG][       Thread-599693][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:07:06,155 [DEBUG][       Thread-599693][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:07:06,155 [DEBUG][       Thread-599693][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:07:06,155 [DEBUG][       Thread-599693][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:07:06,155 [DEBUG][       Thread-599693][   transport.py][1871] : Compression: none
2025-07-01 09:07:06,155 [DEBUG][       Thread-599693][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:07:06,176 [DEBUG][       Thread-599693][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:07:06,176 [DEBUG][       Thread-599693][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:07:06,176 [DEBUG][       Thread-599693][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:07:06,176 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:07:06,176 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:07:06,237 [DEBUG][       Thread-599693][   transport.py][1871] : userauth is OK
2025-07-01 09:07:06,238 [DEBUG][       Thread-599693][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:07:06,238 [DEBUG][       Thread-599693][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:07:06,238 [DEBUG][       Thread-599693][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:07:06,238 [DEBUG][       Thread-599693][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:07:06,252 [ INFO][       Thread-599693][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:07:06,252 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:07:06,252 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:07:07,275 [DEBUG][       Thread-599693][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:07:07,275 [DEBUG][       Thread-599693][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:07:07,323 [DEBUG][       Thread-599693][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:07:07,323 [DEBUG][       Thread-599693][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:07:07,332 [DEBUG][       Thread-599693][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:07:07,340 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:07:07,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-07-01 09:07:07,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-07-01 09:07:07,358 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:07:07,358 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:07:07,359 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:07:07,367 [DEBUG][       Thread-599693][   transport.py][1871] : EOF in transport thread
2025-07-01 09:07:13,054 [DEBUG][Thread-599695 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:07:17,362 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:07:17,362 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:07:17,362 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:07:17,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-07-01 09:07:17,866 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 7, 4), 9.12, 52.54, 0.0, 30.03, 7.9, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:07:17,866 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:07:04
2025-07-01 09:07:17,951 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:07:17,956 [DEBUG][       Thread-599696][   transport.py][1871] : starting thread (client mode): 0x8156230
2025-07-01 09:07:17,956 [DEBUG][       Thread-599696][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:07:17,977 [DEBUG][       Thread-599696][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:07:17,977 [ INFO][       Thread-599696][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:07:17,978 [DEBUG][       Thread-599696][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:07:17,978 [DEBUG][       Thread-599696][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:07:17,978 [DEBUG][       Thread-599696][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:07:17,978 [DEBUG][       Thread-599696][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:07:17,978 [DEBUG][       Thread-599696][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:07:17,978 [DEBUG][       Thread-599696][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:07:17,978 [DEBUG][       Thread-599696][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:07:17,978 [DEBUG][       Thread-599696][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:07:17,978 [DEBUG][       Thread-599696][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:07:17,979 [DEBUG][       Thread-599696][   transport.py][1871] : client lang: <none>
2025-07-01 09:07:17,979 [DEBUG][       Thread-599696][   transport.py][1871] : server lang: <none>
2025-07-01 09:07:17,979 [DEBUG][       Thread-599696][   transport.py][1871] : kex follows: False
2025-07-01 09:07:17,979 [DEBUG][       Thread-599696][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:07:17,979 [DEBUG][       Thread-599696][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:07:17,979 [DEBUG][       Thread-599696][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:07:17,979 [DEBUG][       Thread-599696][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:07:17,979 [DEBUG][       Thread-599696][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:07:17,979 [DEBUG][       Thread-599696][   transport.py][1871] : Compression: none
2025-07-01 09:07:17,979 [DEBUG][       Thread-599696][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:07:17,987 [DEBUG][       Thread-599696][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:07:17,987 [DEBUG][       Thread-599696][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:07:17,987 [DEBUG][       Thread-599696][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:07:17,987 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:07:17,988 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:07:17,988 [DEBUG][       Thread-599696][   transport.py][1871] : userauth is OK
2025-07-01 09:07:18,001 [ INFO][       Thread-599696][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:07:18,001 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:07:18,717 [DEBUG][       Thread-599696][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:07:18,717 [DEBUG][       Thread-599696][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:07:18,761 [DEBUG][       Thread-599696][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:07:18,761 [DEBUG][       Thread-599696][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:07:18,764 [DEBUG][       Thread-599696][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:07:18,777 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:07:18,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:07:18,780 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:07:18,782 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:07:18,787 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:07:18,789 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:07:18,789 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:07:18,790 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:07:18,790 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.296470 -999.00   +7.80  37.17     57   +0.00 1 1 2 1 1   887    0 8.37 32.23 ----- 37.2 37.2 19.2 54.0 10.3 -23.7 9.5 -23.9 8.7 -22.5 9.4 -22.7
2025-07-01 09:07:18,790 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:07:18,790 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:07:18,790 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.296470
2025-07-01 09:07:18,791 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:07:18,791 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:07:18,791 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:07:18,791 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:07:18,791 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:07:18,792 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:07:04', tmtdew=9.12, humidity=52.54, cloud=0.0, wind=30.03, temperature=7.9, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:06:55.008', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:07:18,793 [DEBUG][       Thread-599696][   transport.py][1871] : EOF in transport thread
2025-07-01 09:07:18,875 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:07:18,887 [DEBUG][       Thread-599699][   transport.py][1871] : starting thread (client mode): 0x81e62f0
2025-07-01 09:07:18,887 [DEBUG][       Thread-599699][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:07:18,902 [DEBUG][       Thread-599699][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:07:18,902 [ INFO][       Thread-599699][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:07:18,909 [DEBUG][       Thread-599699][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:07:18,910 [DEBUG][       Thread-599699][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:07:18,910 [DEBUG][       Thread-599699][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:07:18,910 [DEBUG][       Thread-599699][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:07:18,910 [DEBUG][       Thread-599699][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:07:18,910 [DEBUG][       Thread-599699][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:07:18,910 [DEBUG][       Thread-599699][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:07:18,910 [DEBUG][       Thread-599699][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:07:18,910 [DEBUG][       Thread-599699][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:07:18,910 [DEBUG][       Thread-599699][   transport.py][1871] : client lang: <none>
2025-07-01 09:07:18,910 [DEBUG][       Thread-599699][   transport.py][1871] : server lang: <none>
2025-07-01 09:07:18,910 [DEBUG][       Thread-599699][   transport.py][1871] : kex follows: False
2025-07-01 09:07:18,910 [DEBUG][       Thread-599699][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:07:18,910 [DEBUG][       Thread-599699][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:07:18,910 [DEBUG][       Thread-599699][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:07:18,910 [DEBUG][       Thread-599699][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:07:18,910 [DEBUG][       Thread-599699][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:07:18,910 [DEBUG][       Thread-599699][   transport.py][1871] : Compression: none
2025-07-01 09:07:18,910 [DEBUG][       Thread-599699][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:07:18,966 [DEBUG][       Thread-599699][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:07:18,967 [DEBUG][       Thread-599699][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:07:18,967 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:07:18,968 [DEBUG][       Thread-599699][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:07:18,968 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:07:19,026 [DEBUG][       Thread-599699][   transport.py][1871] : userauth is OK
2025-07-01 09:07:19,026 [DEBUG][       Thread-599699][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:07:19,026 [DEBUG][       Thread-599699][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:07:19,026 [DEBUG][       Thread-599699][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:07:19,026 [DEBUG][       Thread-599699][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:07:19,046 [ INFO][       Thread-599699][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:07:19,047 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:07:19,047 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:07:19,411 [DEBUG][Thread-599701 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:07:20,021 [DEBUG][       Thread-599699][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:07:20,022 [DEBUG][       Thread-599699][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:07:20,072 [DEBUG][       Thread-599699][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:07:20,072 [DEBUG][       Thread-599699][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:07:20,081 [DEBUG][       Thread-599699][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:07:20,091 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:07:20,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-07-01 09:07: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-07-01 09:07:20,109 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:07:20,110 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:07:20,110 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:07:20,118 [DEBUG][       Thread-599699][   transport.py][1871] : EOF in transport thread
2025-07-01 09:07:22,074 [DEBUG][Thread-599702 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:07:30,120 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:07:30,120 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:07:30,120 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:07: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-07-01 09:07:30,628 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 7, 4), 9.12, 52.54, 0.0, 30.03, 7.9, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:07:30,628 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:07:04
2025-07-01 09:07:30,714 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:07:30,719 [DEBUG][       Thread-599703][   transport.py][1871] : starting thread (client mode): 0x81e56f0
2025-07-01 09:07:30,719 [DEBUG][       Thread-599703][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:07:30,740 [DEBUG][       Thread-599703][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:07:30,740 [ INFO][       Thread-599703][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:07:30,743 [DEBUG][       Thread-599703][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:07:30,743 [DEBUG][       Thread-599703][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:07:30,743 [DEBUG][       Thread-599703][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:07:30,743 [DEBUG][       Thread-599703][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:07:30,743 [DEBUG][       Thread-599703][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:07:30,743 [DEBUG][       Thread-599703][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:07:30,743 [DEBUG][       Thread-599703][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:07:30,743 [DEBUG][       Thread-599703][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:07:30,743 [DEBUG][       Thread-599703][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:07:30,743 [DEBUG][       Thread-599703][   transport.py][1871] : client lang: <none>
2025-07-01 09:07:30,743 [DEBUG][       Thread-599703][   transport.py][1871] : server lang: <none>
2025-07-01 09:07:30,743 [DEBUG][       Thread-599703][   transport.py][1871] : kex follows: False
2025-07-01 09:07:30,743 [DEBUG][       Thread-599703][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:07:30,743 [DEBUG][       Thread-599703][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:07:30,743 [DEBUG][       Thread-599703][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:07:30,743 [DEBUG][       Thread-599703][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:07:30,743 [DEBUG][       Thread-599703][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:07:30,743 [DEBUG][       Thread-599703][   transport.py][1871] : Compression: none
2025-07-01 09:07:30,743 [DEBUG][       Thread-599703][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:07:30,760 [DEBUG][       Thread-599703][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:07:30,760 [DEBUG][       Thread-599703][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:07:30,761 [DEBUG][       Thread-599703][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:07:30,761 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:07:30,761 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:07:30,763 [DEBUG][       Thread-599703][   transport.py][1871] : userauth is OK
2025-07-01 09:07:30,787 [ INFO][       Thread-599703][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:07:30,788 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:07:31,116 [DEBUG][Thread-599705 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:07:31,392 [DEBUG][       Thread-599703][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:07:31,392 [DEBUG][       Thread-599703][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:07:31,433 [DEBUG][       Thread-599703][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:07:31,433 [DEBUG][       Thread-599703][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:07:31,436 [DEBUG][       Thread-599703][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:07:31,450 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:07:31,450 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:07:31,451 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:07:31,453 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:07:31,459 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:07:31,461 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:07:31,461 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:07:31,462 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:07:31,462 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.296470 -999.00   +7.80  37.17     57   +0.00 1 1 2 1 1   887    0 8.37 32.23 ----- 37.2 37.2 19.2 54.0 10.3 -23.7 9.5 -23.9 8.7 -22.5 9.4 -22.7
2025-07-01 09:07:31,462 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:07:31,462 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:07:31,462 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.296470
2025-07-01 09:07:31,463 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:07:31,463 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:07:31,463 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:07:31,463 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:07:31,463 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:07:31,464 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:07:04', tmtdew=9.12, humidity=52.54, cloud=0.0, wind=30.03, temperature=7.9, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:06:55.008', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:07:31,464 [DEBUG][       Thread-599703][   transport.py][1871] : EOF in transport thread
2025-07-01 09:07:31,547 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:07:31,559 [DEBUG][       Thread-599707][   transport.py][1871] : starting thread (client mode): 0x8393b80
2025-07-01 09:07:31,559 [DEBUG][       Thread-599707][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:07:31,575 [DEBUG][       Thread-599707][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:07:31,575 [ INFO][       Thread-599707][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:07:31,583 [DEBUG][       Thread-599707][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:07:31,583 [DEBUG][       Thread-599707][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:07:31,583 [DEBUG][       Thread-599707][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:07:31,583 [DEBUG][       Thread-599707][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:07:31,583 [DEBUG][       Thread-599707][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:07:31,583 [DEBUG][       Thread-599707][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:07:31,583 [DEBUG][       Thread-599707][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:07:31,583 [DEBUG][       Thread-599707][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:07:31,583 [DEBUG][       Thread-599707][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:07:31,583 [DEBUG][       Thread-599707][   transport.py][1871] : client lang: <none>
2025-07-01 09:07:31,583 [DEBUG][       Thread-599707][   transport.py][1871] : server lang: <none>
2025-07-01 09:07:31,583 [DEBUG][       Thread-599707][   transport.py][1871] : kex follows: False
2025-07-01 09:07:31,583 [DEBUG][       Thread-599707][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:07:31,583 [DEBUG][       Thread-599707][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:07:31,583 [DEBUG][       Thread-599707][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:07:31,584 [DEBUG][       Thread-599707][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:07:31,584 [DEBUG][       Thread-599707][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:07:31,584 [DEBUG][       Thread-599707][   transport.py][1871] : Compression: none
2025-07-01 09:07:31,584 [DEBUG][       Thread-599707][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:07:31,642 [DEBUG][       Thread-599707][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:07:31,642 [DEBUG][       Thread-599707][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:07:31,642 [DEBUG][       Thread-599707][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:07:31,642 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:07:31,642 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:07:31,700 [DEBUG][       Thread-599707][   transport.py][1871] : userauth is OK
2025-07-01 09:07:31,700 [DEBUG][       Thread-599707][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:07:31,700 [DEBUG][       Thread-599707][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:07:31,700 [DEBUG][       Thread-599707][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:07:31,700 [DEBUG][       Thread-599707][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:07:31,717 [ INFO][       Thread-599707][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:07:31,717 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:07:31,718 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:07:32,768 [DEBUG][       Thread-599707][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:07:32,768 [DEBUG][       Thread-599707][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:07:32,816 [DEBUG][       Thread-599707][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:07:32,816 [DEBUG][       Thread-599707][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:07:32,826 [DEBUG][       Thread-599707][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:07:32,835 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:07:32,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-07-01 09:07:32,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-07-01 09:07:32,853 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:07:32,853 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:07:32,854 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:07:32,862 [DEBUG][       Thread-599707][   transport.py][1871] : EOF in transport thread
2025-07-01 09:07:40,137 [DEBUG][Thread-599709 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:07:42,864 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:07:42,865 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:07:42,865 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:07:42,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-07-01 09:07:43,356 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 7, 36), 9.09, 52.67, 0.0, 38.13, 7.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:07:43,356 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:07:36
2025-07-01 09:07:43,441 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:07:43,445 [DEBUG][       Thread-599710][   transport.py][1871] : starting thread (client mode): 0x8106590
2025-07-01 09:07:43,445 [DEBUG][       Thread-599710][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:07:43,466 [DEBUG][       Thread-599710][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:07:43,466 [ INFO][       Thread-599710][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:07:43,467 [DEBUG][       Thread-599710][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:07:43,467 [DEBUG][       Thread-599710][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:07:43,467 [DEBUG][       Thread-599710][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:07:43,467 [DEBUG][       Thread-599710][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:07:43,467 [DEBUG][       Thread-599710][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:07:43,468 [DEBUG][       Thread-599710][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:07:43,468 [DEBUG][       Thread-599710][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:07:43,468 [DEBUG][       Thread-599710][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:07:43,468 [DEBUG][       Thread-599710][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:07:43,468 [DEBUG][       Thread-599710][   transport.py][1871] : client lang: <none>
2025-07-01 09:07:43,468 [DEBUG][       Thread-599710][   transport.py][1871] : server lang: <none>
2025-07-01 09:07:43,468 [DEBUG][       Thread-599710][   transport.py][1871] : kex follows: False
2025-07-01 09:07:43,468 [DEBUG][       Thread-599710][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:07:43,468 [DEBUG][       Thread-599710][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:07:43,468 [DEBUG][       Thread-599710][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:07:43,468 [DEBUG][       Thread-599710][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:07:43,468 [DEBUG][       Thread-599710][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:07:43,468 [DEBUG][       Thread-599710][   transport.py][1871] : Compression: none
2025-07-01 09:07:43,468 [DEBUG][       Thread-599710][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:07:43,478 [DEBUG][       Thread-599710][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:07:43,479 [DEBUG][       Thread-599710][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:07:43,479 [DEBUG][       Thread-599710][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:07:43,480 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:07:43,480 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:07:43,481 [DEBUG][       Thread-599710][   transport.py][1871] : userauth is OK
2025-07-01 09:07:43,493 [ INFO][       Thread-599710][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:07:43,494 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:07:44,125 [DEBUG][       Thread-599710][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:07:44,125 [DEBUG][       Thread-599710][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:07:44,168 [DEBUG][       Thread-599710][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:07:44,168 [DEBUG][       Thread-599710][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:07:44,171 [DEBUG][       Thread-599710][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:07:44,176 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:07:44,176 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:07:44,177 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:07:44,178 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:07:44,181 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:07:44,182 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:07:44,182 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:07:44,183 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:07:44,183 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.296818 -999.00   +7.80  33.41     57   +0.00 1 1 2 1 1   887    0 8.41 34.10 ----- 33.4 33.4 18.9 47.2 10.4 -23.5 9.5 -23.8 8.6 -22.6 9.4 -22.9
2025-07-01 09:07:44,183 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:07:44,183 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:07:44,183 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.296818
2025-07-01 09:07:44,183 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:07:44,183 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:07:44,183 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:07:44,183 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:07:44,183 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:07:44,183 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:07:36', tmtdew=9.09, humidity=52.67, cloud=0.0, wind=38.13, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:07:25.075', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:07:44,183 [DEBUG][       Thread-599710][   transport.py][1871] : EOF in transport thread
2025-07-01 09:07:44,256 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:07:44,265 [DEBUG][       Thread-599713][   transport.py][1871] : starting thread (client mode): 0x81e4070
2025-07-01 09:07:44,265 [DEBUG][       Thread-599713][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:07:44,280 [DEBUG][       Thread-599713][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:07:44,280 [ INFO][       Thread-599713][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:07:44,288 [DEBUG][       Thread-599713][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:07:44,288 [DEBUG][       Thread-599713][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:07:44,288 [DEBUG][       Thread-599713][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:07:44,288 [DEBUG][       Thread-599713][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:07:44,288 [DEBUG][       Thread-599713][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:07:44,288 [DEBUG][       Thread-599713][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:07:44,288 [DEBUG][       Thread-599713][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:07:44,288 [DEBUG][       Thread-599713][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:07:44,288 [DEBUG][       Thread-599713][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:07:44,288 [DEBUG][       Thread-599713][   transport.py][1871] : client lang: <none>
2025-07-01 09:07:44,288 [DEBUG][       Thread-599713][   transport.py][1871] : server lang: <none>
2025-07-01 09:07:44,288 [DEBUG][       Thread-599713][   transport.py][1871] : kex follows: False
2025-07-01 09:07:44,288 [DEBUG][       Thread-599713][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:07:44,288 [DEBUG][       Thread-599713][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:07:44,288 [DEBUG][       Thread-599713][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:07:44,288 [DEBUG][       Thread-599713][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:07:44,288 [DEBUG][       Thread-599713][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:07:44,288 [DEBUG][       Thread-599713][   transport.py][1871] : Compression: none
2025-07-01 09:07:44,288 [DEBUG][       Thread-599713][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:07:44,347 [DEBUG][       Thread-599713][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:07:44,347 [DEBUG][       Thread-599713][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:07:44,348 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:07:44,348 [DEBUG][       Thread-599713][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:07:44,348 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:07:44,405 [DEBUG][       Thread-599713][   transport.py][1871] : userauth is OK
2025-07-01 09:07:44,405 [DEBUG][       Thread-599713][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:07:44,405 [DEBUG][       Thread-599713][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:07:44,405 [DEBUG][       Thread-599713][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:07:44,405 [DEBUG][       Thread-599713][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:07:44,419 [ INFO][       Thread-599713][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:07:44,419 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:07:44,419 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:07:45,453 [DEBUG][       Thread-599713][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:07:45,453 [DEBUG][       Thread-599713][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:07:45,510 [DEBUG][       Thread-599713][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:07:45,510 [DEBUG][       Thread-599713][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:07:45,519 [DEBUG][       Thread-599713][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:07:45,526 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:07:45,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-07-01 09:07:45,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-07-01 09:07:45,544 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:07:45,544 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:07:45,544 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:07:45,559 [DEBUG][       Thread-599713][   transport.py][1871] : EOF in transport thread
2025-07-01 09:07:48,274 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:07:48,275 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:07:49,156 [DEBUG][Thread-599715 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:07:55,554 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:07:55,555 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:07:55,555 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:07:55,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-07-01 09:07:56,041 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 7, 36), 9.09, 52.67, 0.0, 38.13, 7.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:07:56,041 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:07:36
2025-07-01 09:07:56,127 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:07:56,132 [DEBUG][       Thread-599716][   transport.py][1871] : starting thread (client mode): 0x8104d60
2025-07-01 09:07:56,132 [DEBUG][       Thread-599716][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:07:56,152 [DEBUG][       Thread-599716][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:07:56,152 [ INFO][       Thread-599716][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:07:56,156 [DEBUG][       Thread-599716][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:07:56,156 [DEBUG][       Thread-599716][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:07:56,156 [DEBUG][       Thread-599716][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:07:56,156 [DEBUG][       Thread-599716][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:07:56,156 [DEBUG][       Thread-599716][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:07:56,156 [DEBUG][       Thread-599716][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:07:56,156 [DEBUG][       Thread-599716][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:07:56,156 [DEBUG][       Thread-599716][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:07:56,156 [DEBUG][       Thread-599716][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:07:56,156 [DEBUG][       Thread-599716][   transport.py][1871] : client lang: <none>
2025-07-01 09:07:56,156 [DEBUG][       Thread-599716][   transport.py][1871] : server lang: <none>
2025-07-01 09:07:56,156 [DEBUG][       Thread-599716][   transport.py][1871] : kex follows: False
2025-07-01 09:07:56,156 [DEBUG][       Thread-599716][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:07:56,156 [DEBUG][       Thread-599716][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:07:56,156 [DEBUG][       Thread-599716][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:07:56,156 [DEBUG][       Thread-599716][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:07:56,156 [DEBUG][       Thread-599716][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:07:56,156 [DEBUG][       Thread-599716][   transport.py][1871] : Compression: none
2025-07-01 09:07:56,156 [DEBUG][       Thread-599716][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:07:56,172 [DEBUG][       Thread-599716][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:07:56,173 [DEBUG][       Thread-599716][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:07:56,173 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:07:56,173 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:07:56,174 [DEBUG][       Thread-599716][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:07:56,175 [DEBUG][       Thread-599716][   transport.py][1871] : userauth is OK
2025-07-01 09:07:56,188 [ INFO][       Thread-599716][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:07:56,189 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:07:56,817 [DEBUG][       Thread-599716][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:07:56,818 [DEBUG][       Thread-599716][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:07:56,861 [DEBUG][       Thread-599716][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:07:56,861 [DEBUG][       Thread-599716][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:07:56,864 [DEBUG][       Thread-599716][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:07:56,876 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:07:56,877 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:07:56,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:07:56,881 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:07:56,886 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:07:56,888 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:07:56,888 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:07:56,889 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:07:56,889 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.296818 -999.00   +7.80  33.41     57   +0.00 1 1 2 1 1   887    0 8.41 34.10 ----- 33.4 33.4 18.9 47.2 10.4 -23.5 9.5 -23.8 8.6 -22.6 9.4 -22.9
2025-07-01 09:07:56,889 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:07:56,889 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:07:56,889 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.296818
2025-07-01 09:07:56,890 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:07:56,890 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:07:56,891 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:07:56,891 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:07:56,891 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:07:56,891 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:07:36', tmtdew=9.09, humidity=52.67, cloud=0.0, wind=38.13, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:07:25.075', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:07:56,892 [DEBUG][       Thread-599716][   transport.py][1871] : EOF in transport thread
2025-07-01 09:07:56,975 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:07:56,987 [DEBUG][       Thread-599719][   transport.py][1871] : starting thread (client mode): 0x827ec50
2025-07-01 09:07:56,987 [DEBUG][       Thread-599719][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:07:57,003 [DEBUG][       Thread-599719][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:07:57,003 [ INFO][       Thread-599719][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:07:57,015 [DEBUG][       Thread-599719][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:07:57,015 [DEBUG][       Thread-599719][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:07:57,015 [DEBUG][       Thread-599719][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:07:57,016 [DEBUG][       Thread-599719][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:07:57,016 [DEBUG][       Thread-599719][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:07:57,016 [DEBUG][       Thread-599719][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:07:57,016 [DEBUG][       Thread-599719][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:07:57,016 [DEBUG][       Thread-599719][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:07:57,016 [DEBUG][       Thread-599719][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:07:57,016 [DEBUG][       Thread-599719][   transport.py][1871] : client lang: <none>
2025-07-01 09:07:57,016 [DEBUG][       Thread-599719][   transport.py][1871] : server lang: <none>
2025-07-01 09:07:57,016 [DEBUG][       Thread-599719][   transport.py][1871] : kex follows: False
2025-07-01 09:07:57,016 [DEBUG][       Thread-599719][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:07:57,016 [DEBUG][       Thread-599719][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:07:57,016 [DEBUG][       Thread-599719][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:07:57,016 [DEBUG][       Thread-599719][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:07:57,016 [DEBUG][       Thread-599719][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:07:57,016 [DEBUG][       Thread-599719][   transport.py][1871] : Compression: none
2025-07-01 09:07:57,016 [DEBUG][       Thread-599719][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:07:57,070 [DEBUG][       Thread-599719][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:07:57,070 [DEBUG][       Thread-599719][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:07:57,071 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:07:57,071 [DEBUG][       Thread-599719][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:07:57,072 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:07:57,126 [DEBUG][       Thread-599719][   transport.py][1871] : userauth is OK
2025-07-01 09:07:57,126 [DEBUG][       Thread-599719][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:07:57,126 [DEBUG][       Thread-599719][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:07:57,126 [DEBUG][       Thread-599719][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:07:57,127 [DEBUG][       Thread-599719][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:07:57,144 [ INFO][       Thread-599719][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:07:57,145 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:07:57,145 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:07:58,134 [DEBUG][       Thread-599719][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:07:58,134 [DEBUG][       Thread-599719][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:07:58,184 [DEBUG][       Thread-599719][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:07:58,184 [DEBUG][       Thread-599719][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:07:58,190 [DEBUG][Thread-599721 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:07:58,194 [DEBUG][       Thread-599719][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:07:58,207 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:07:58,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-07-01 09:07: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') -> 00000000
2025-07-01 09:07:58,227 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:07:58,227 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:07:58,227 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:07:58,235 [DEBUG][       Thread-599719][   transport.py][1871] : EOF in transport thread
2025-07-01 09:08:07,211 [DEBUG][Thread-599722 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:08:08,238 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:08:08,238 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:08:08,238 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:08:08,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-07-01 09:08:08,729 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 7, 36), 9.09, 52.67, 0.0, 38.13, 7.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:08:08,729 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:07:36
2025-07-01 09:08:08,817 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:08:08,822 [DEBUG][       Thread-599723][   transport.py][1871] : starting thread (client mode): 0x8104550
2025-07-01 09:08:08,822 [DEBUG][       Thread-599723][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:08:08,844 [DEBUG][       Thread-599723][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:08:08,844 [ INFO][       Thread-599723][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:08:08,847 [DEBUG][       Thread-599723][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:08:08,847 [DEBUG][       Thread-599723][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:08:08,847 [DEBUG][       Thread-599723][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:08:08,847 [DEBUG][       Thread-599723][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:08:08,847 [DEBUG][       Thread-599723][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:08:08,847 [DEBUG][       Thread-599723][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:08:08,847 [DEBUG][       Thread-599723][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:08:08,847 [DEBUG][       Thread-599723][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:08:08,847 [DEBUG][       Thread-599723][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:08:08,847 [DEBUG][       Thread-599723][   transport.py][1871] : client lang: <none>
2025-07-01 09:08:08,847 [DEBUG][       Thread-599723][   transport.py][1871] : server lang: <none>
2025-07-01 09:08:08,847 [DEBUG][       Thread-599723][   transport.py][1871] : kex follows: False
2025-07-01 09:08:08,847 [DEBUG][       Thread-599723][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:08:08,847 [DEBUG][       Thread-599723][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:08:08,847 [DEBUG][       Thread-599723][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:08:08,847 [DEBUG][       Thread-599723][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:08:08,847 [DEBUG][       Thread-599723][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:08:08,847 [DEBUG][       Thread-599723][   transport.py][1871] : Compression: none
2025-07-01 09:08:08,847 [DEBUG][       Thread-599723][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:08:08,862 [DEBUG][       Thread-599723][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:08:08,862 [DEBUG][       Thread-599723][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:08:08,862 [DEBUG][       Thread-599723][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:08:08,862 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:08:08,862 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:08:08,863 [DEBUG][       Thread-599723][   transport.py][1871] : userauth is OK
2025-07-01 09:08:08,886 [ INFO][       Thread-599723][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:08:08,886 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:08:09,526 [DEBUG][       Thread-599723][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:08:09,526 [DEBUG][       Thread-599723][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:08:09,568 [DEBUG][       Thread-599723][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:08:09,568 [DEBUG][       Thread-599723][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:08:09,571 [DEBUG][       Thread-599723][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:08:09,583 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:08:09,583 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:08:09,584 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:08:09,586 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:08:09,589 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:08:09,590 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:08:09,590 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:08:09,590 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:08:09,590 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.296818 -999.00   +7.80  33.41     57   +0.00 1 1 2 1 1   887    0 8.41 34.10 ----- 33.4 33.4 18.9 47.2 10.4 -23.5 9.5 -23.8 8.6 -22.6 9.4 -22.9
2025-07-01 09:08:09,590 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:08:09,590 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:08:09,590 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.296818
2025-07-01 09:08:09,590 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:08:09,590 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:08:09,590 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:08:09,590 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:08:09,590 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:08:09,590 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:07:36', tmtdew=9.09, humidity=52.67, cloud=0.0, wind=38.13, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:07:25.075', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:08:09,591 [DEBUG][       Thread-599723][   transport.py][1871] : EOF in transport thread
2025-07-01 09:08:09,665 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:08:09,674 [DEBUG][       Thread-599726][   transport.py][1871] : starting thread (client mode): 0x81e6a40
2025-07-01 09:08:09,674 [DEBUG][       Thread-599726][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:08:09,689 [DEBUG][       Thread-599726][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:08:09,689 [ INFO][       Thread-599726][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:08:09,697 [DEBUG][       Thread-599726][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:08:09,697 [DEBUG][       Thread-599726][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:08:09,697 [DEBUG][       Thread-599726][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:08:09,697 [DEBUG][       Thread-599726][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:08:09,697 [DEBUG][       Thread-599726][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:08:09,697 [DEBUG][       Thread-599726][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:08:09,697 [DEBUG][       Thread-599726][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:08:09,697 [DEBUG][       Thread-599726][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:08:09,697 [DEBUG][       Thread-599726][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:08:09,697 [DEBUG][       Thread-599726][   transport.py][1871] : client lang: <none>
2025-07-01 09:08:09,697 [DEBUG][       Thread-599726][   transport.py][1871] : server lang: <none>
2025-07-01 09:08:09,697 [DEBUG][       Thread-599726][   transport.py][1871] : kex follows: False
2025-07-01 09:08:09,697 [DEBUG][       Thread-599726][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:08:09,697 [DEBUG][       Thread-599726][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:08:09,697 [DEBUG][       Thread-599726][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:08:09,697 [DEBUG][       Thread-599726][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:08:09,697 [DEBUG][       Thread-599726][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:08:09,697 [DEBUG][       Thread-599726][   transport.py][1871] : Compression: none
2025-07-01 09:08:09,697 [DEBUG][       Thread-599726][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:08:09,753 [DEBUG][       Thread-599726][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:08:09,753 [DEBUG][       Thread-599726][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:08:09,753 [DEBUG][       Thread-599726][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:08:09,753 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:08:09,753 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:08:09,809 [DEBUG][       Thread-599726][   transport.py][1871] : userauth is OK
2025-07-01 09:08:09,809 [DEBUG][       Thread-599726][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:08:09,809 [DEBUG][       Thread-599726][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:08:09,809 [DEBUG][       Thread-599726][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:08:09,809 [DEBUG][       Thread-599726][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:08:09,824 [ INFO][       Thread-599726][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:08:09,824 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:08:09,824 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:08:10,835 [DEBUG][       Thread-599726][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:08:10,835 [DEBUG][       Thread-599726][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:08:10,884 [DEBUG][       Thread-599726][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:08:10,884 [DEBUG][       Thread-599726][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:08:10,893 [DEBUG][       Thread-599726][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:08:10,902 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:08:10,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-07-01 09:08:10,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-07-01 09:08:10,920 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:08:10,920 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:08:10,921 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:08:10,929 [DEBUG][       Thread-599726][   transport.py][1871] : EOF in transport thread
2025-07-01 09:08:16,232 [DEBUG][Thread-599728 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:08:19,461 [DEBUG][Thread-599729 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:08:20,926 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:08:20,926 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:08:20,926 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:08:20,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-07-01 09:08:21,411 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 8, 8), 9.1, 52.62, 0.0, 36.13, 7.92, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:08:21,411 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:08:08
2025-07-01 09:08:21,497 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:08:21,502 [DEBUG][       Thread-599730][   transport.py][1871] : starting thread (client mode): 0x81e6e30
2025-07-01 09:08:21,502 [DEBUG][       Thread-599730][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:08:21,522 [DEBUG][       Thread-599730][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:08:21,522 [ INFO][       Thread-599730][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:08:21,525 [DEBUG][       Thread-599730][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:08:21,525 [DEBUG][       Thread-599730][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:08:21,525 [DEBUG][       Thread-599730][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:08:21,525 [DEBUG][       Thread-599730][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:08:21,525 [DEBUG][       Thread-599730][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:08:21,525 [DEBUG][       Thread-599730][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:08:21,525 [DEBUG][       Thread-599730][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:08:21,525 [DEBUG][       Thread-599730][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:08:21,525 [DEBUG][       Thread-599730][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:08:21,525 [DEBUG][       Thread-599730][   transport.py][1871] : client lang: <none>
2025-07-01 09:08:21,525 [DEBUG][       Thread-599730][   transport.py][1871] : server lang: <none>
2025-07-01 09:08:21,525 [DEBUG][       Thread-599730][   transport.py][1871] : kex follows: False
2025-07-01 09:08:21,525 [DEBUG][       Thread-599730][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:08:21,525 [DEBUG][       Thread-599730][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:08:21,525 [DEBUG][       Thread-599730][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:08:21,525 [DEBUG][       Thread-599730][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:08:21,526 [DEBUG][       Thread-599730][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:08:21,526 [DEBUG][       Thread-599730][   transport.py][1871] : Compression: none
2025-07-01 09:08:21,526 [DEBUG][       Thread-599730][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:08:21,541 [DEBUG][       Thread-599730][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:08:21,541 [DEBUG][       Thread-599730][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:08:21,542 [DEBUG][       Thread-599730][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:08:21,542 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:08:21,542 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:08:21,542 [DEBUG][       Thread-599730][   transport.py][1871] : userauth is OK
2025-07-01 09:08:21,567 [ INFO][       Thread-599730][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:08:21,567 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:08:22,215 [DEBUG][       Thread-599730][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:08:22,215 [DEBUG][       Thread-599730][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:08:22,257 [DEBUG][       Thread-599730][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:08:22,257 [DEBUG][       Thread-599730][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:08:22,259 [DEBUG][       Thread-599730][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:08:22,272 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:08:22,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:08:22,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:08:22,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:08:22,277 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:08:22,278 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:08:22,278 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:08:22,278 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:08:22,278 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.297165 -999.00   +7.80  36.87     57   +0.00 1 2 2 1 1   887    0 8.57 34.08 ----- 36.9 36.9 24.4 48.0 10.4 -23.7 9.6 -23.3 8.7 -22.5 9.4 -22.6
2025-07-01 09:08:22,278 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:08:22,278 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:08:22,278 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.297165
2025-07-01 09:08:22,278 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:08:22,278 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:08:22,278 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:08:22,278 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:08:22,278 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 09:08:22,278 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:08:08', tmtdew=9.1, humidity=52.62, cloud=0.0, wind=36.13, temperature=7.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:07:55.056', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:08:22,279 [DEBUG][       Thread-599730][   transport.py][1871] : EOF in transport thread
2025-07-01 09:08:22,353 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:08:22,365 [DEBUG][       Thread-599733][   transport.py][1871] : starting thread (client mode): 0x827ec50
2025-07-01 09:08:22,365 [DEBUG][       Thread-599733][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:08:22,382 [DEBUG][       Thread-599733][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:08:22,382 [ INFO][       Thread-599733][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:08:22,400 [DEBUG][       Thread-599733][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:08:22,400 [DEBUG][       Thread-599733][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:08:22,400 [DEBUG][       Thread-599733][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:08:22,400 [DEBUG][       Thread-599733][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:08:22,400 [DEBUG][       Thread-599733][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:08:22,400 [DEBUG][       Thread-599733][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:08:22,400 [DEBUG][       Thread-599733][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:08:22,400 [DEBUG][       Thread-599733][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:08:22,400 [DEBUG][       Thread-599733][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:08:22,400 [DEBUG][       Thread-599733][   transport.py][1871] : client lang: <none>
2025-07-01 09:08:22,400 [DEBUG][       Thread-599733][   transport.py][1871] : server lang: <none>
2025-07-01 09:08:22,400 [DEBUG][       Thread-599733][   transport.py][1871] : kex follows: False
2025-07-01 09:08:22,400 [DEBUG][       Thread-599733][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:08:22,400 [DEBUG][       Thread-599733][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:08:22,400 [DEBUG][       Thread-599733][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:08:22,400 [DEBUG][       Thread-599733][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:08:22,400 [DEBUG][       Thread-599733][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:08:22,400 [DEBUG][       Thread-599733][   transport.py][1871] : Compression: none
2025-07-01 09:08:22,400 [DEBUG][       Thread-599733][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:08:22,448 [DEBUG][       Thread-599733][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:08:22,448 [DEBUG][       Thread-599733][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:08:22,448 [DEBUG][       Thread-599733][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:08:22,448 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:08:22,448 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:08:22,506 [DEBUG][       Thread-599733][   transport.py][1871] : userauth is OK
2025-07-01 09:08:22,506 [DEBUG][       Thread-599733][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:08:22,506 [DEBUG][       Thread-599733][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:08:22,506 [DEBUG][       Thread-599733][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:08:22,506 [DEBUG][       Thread-599733][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:08:22,522 [ INFO][       Thread-599733][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:08:22,522 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:08:22,531 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:08:23,522 [DEBUG][       Thread-599733][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:08:23,522 [DEBUG][       Thread-599733][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:08:23,571 [DEBUG][       Thread-599733][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:08:23,571 [DEBUG][       Thread-599733][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:08:23,580 [DEBUG][       Thread-599733][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:08:23,588 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:08:23,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')
2025-07-01 09:08:23,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-07-01 09:08:23,604 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:08:23,604 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:08:23,604 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:08:23,612 [DEBUG][       Thread-599733][   transport.py][1871] : EOF in transport thread
2025-07-01 09:08:25,254 [DEBUG][Thread-599735 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:08:33,606 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:08:33,607 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:08:33,607 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:08:33,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-07-01 09:08:34,087 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 8, 8), 9.1, 52.62, 0.0, 36.13, 7.92, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:08:34,087 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:08:08
2025-07-01 09:08:34,173 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:08:34,177 [DEBUG][       Thread-599736][   transport.py][1871] : starting thread (client mode): 0x8104070
2025-07-01 09:08:34,177 [DEBUG][       Thread-599736][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:08:34,204 [DEBUG][       Thread-599736][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:08:34,204 [ INFO][       Thread-599736][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:08:34,207 [DEBUG][       Thread-599736][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:08:34,208 [DEBUG][       Thread-599736][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:08:34,208 [DEBUG][       Thread-599736][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:08:34,208 [DEBUG][       Thread-599736][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:08:34,208 [DEBUG][       Thread-599736][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:08:34,208 [DEBUG][       Thread-599736][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:08:34,208 [DEBUG][       Thread-599736][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:08:34,208 [DEBUG][       Thread-599736][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:08:34,208 [DEBUG][       Thread-599736][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:08:34,208 [DEBUG][       Thread-599736][   transport.py][1871] : client lang: <none>
2025-07-01 09:08:34,208 [DEBUG][       Thread-599736][   transport.py][1871] : server lang: <none>
2025-07-01 09:08:34,208 [DEBUG][       Thread-599736][   transport.py][1871] : kex follows: False
2025-07-01 09:08:34,208 [DEBUG][       Thread-599736][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:08:34,208 [DEBUG][       Thread-599736][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:08:34,208 [DEBUG][       Thread-599736][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:08:34,208 [DEBUG][       Thread-599736][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:08:34,208 [DEBUG][       Thread-599736][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:08:34,208 [DEBUG][       Thread-599736][   transport.py][1871] : Compression: none
2025-07-01 09:08:34,208 [DEBUG][       Thread-599736][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:08:34,226 [DEBUG][       Thread-599736][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:08:34,226 [DEBUG][       Thread-599736][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:08:34,227 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:08:34,227 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:08:34,228 [DEBUG][       Thread-599736][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:08:34,228 [DEBUG][       Thread-599736][   transport.py][1871] : userauth is OK
2025-07-01 09:08:34,242 [ INFO][       Thread-599736][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:08:34,242 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:08:34,279 [DEBUG][Thread-599738 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:08:34,885 [DEBUG][       Thread-599736][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:08:34,885 [DEBUG][       Thread-599736][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:08:34,929 [DEBUG][       Thread-599736][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:08:34,929 [DEBUG][       Thread-599736][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:08:34,933 [DEBUG][       Thread-599736][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:08:34,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:08:34,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:08:34,947 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:08:34,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:08:34,955 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:08:34,957 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:08:34,958 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:08:34,958 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:08:34,958 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.297165 -999.00   +7.80  36.87     57   +0.00 1 2 2 1 1   887    0 8.57 34.08 ----- 36.9 36.9 24.4 48.0 10.4 -23.7 9.6 -23.3 8.7 -22.5 9.4 -22.6
2025-07-01 09:08:34,958 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:08:34,958 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:08:34,959 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.297165
2025-07-01 09:08:34,959 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:08:34,959 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:08:34,960 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:08:34,960 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:08:34,960 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 09:08:34,960 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:08:08', tmtdew=9.1, humidity=52.62, cloud=0.0, wind=36.13, temperature=7.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:07:55.056', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:08:34,961 [DEBUG][       Thread-599736][   transport.py][1871] : EOF in transport thread
2025-07-01 09:08:35,043 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:08:35,055 [DEBUG][       Thread-599740][   transport.py][1871] : starting thread (client mode): 0x81e5600
2025-07-01 09:08:35,055 [DEBUG][       Thread-599740][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:08:35,072 [DEBUG][       Thread-599740][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:08:35,072 [ INFO][       Thread-599740][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:08:35,080 [DEBUG][       Thread-599740][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:08:35,080 [DEBUG][       Thread-599740][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:08:35,080 [DEBUG][       Thread-599740][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:08:35,080 [DEBUG][       Thread-599740][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:08:35,080 [DEBUG][       Thread-599740][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:08:35,080 [DEBUG][       Thread-599740][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:08:35,080 [DEBUG][       Thread-599740][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:08:35,080 [DEBUG][       Thread-599740][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:08:35,080 [DEBUG][       Thread-599740][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:08:35,080 [DEBUG][       Thread-599740][   transport.py][1871] : client lang: <none>
2025-07-01 09:08:35,080 [DEBUG][       Thread-599740][   transport.py][1871] : server lang: <none>
2025-07-01 09:08:35,080 [DEBUG][       Thread-599740][   transport.py][1871] : kex follows: False
2025-07-01 09:08:35,080 [DEBUG][       Thread-599740][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:08:35,081 [DEBUG][       Thread-599740][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:08:35,081 [DEBUG][       Thread-599740][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:08:35,081 [DEBUG][       Thread-599740][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:08:35,081 [DEBUG][       Thread-599740][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:08:35,081 [DEBUG][       Thread-599740][   transport.py][1871] : Compression: none
2025-07-01 09:08:35,081 [DEBUG][       Thread-599740][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:08:35,138 [DEBUG][       Thread-599740][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:08:35,139 [DEBUG][       Thread-599740][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:08:35,139 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:08:35,140 [DEBUG][       Thread-599740][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:08:35,141 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:08:35,194 [DEBUG][       Thread-599740][   transport.py][1871] : userauth is OK
2025-07-01 09:08:35,194 [DEBUG][       Thread-599740][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:08:35,194 [DEBUG][       Thread-599740][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:08:35,194 [DEBUG][       Thread-599740][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:08:35,194 [DEBUG][       Thread-599740][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:08:35,214 [ INFO][       Thread-599740][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:08:35,214 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:08:35,215 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:08:36,232 [DEBUG][       Thread-599740][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:08:36,232 [DEBUG][       Thread-599740][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:08:36,284 [DEBUG][       Thread-599740][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:08:36,284 [DEBUG][       Thread-599740][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:08:36,294 [DEBUG][       Thread-599740][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:08:36,303 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:08:36,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')
2025-07-01 09:08:36,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-07-01 09:08:36,326 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:08:36,327 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:08:36,327 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:08:36,338 [DEBUG][       Thread-599740][   transport.py][1871] : EOF in transport thread
2025-07-01 09:08:43,298 [DEBUG][Thread-599742 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:08:46,337 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:08:46,338 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:08:46,338 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:08:46,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-07-01 09:08:46,811 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 8, 40), 9.1, 52.62, 0.0, 36.05, 7.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:08:46,811 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:08:40
2025-07-01 09:08:46,897 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:08:46,901 [DEBUG][       Thread-599743][   transport.py][1871] : starting thread (client mode): 0x8155630
2025-07-01 09:08:46,901 [DEBUG][       Thread-599743][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:08:46,921 [DEBUG][       Thread-599743][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:08:46,922 [ INFO][       Thread-599743][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:08:46,925 [DEBUG][       Thread-599743][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:08:46,925 [DEBUG][       Thread-599743][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:08:46,925 [DEBUG][       Thread-599743][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:08:46,925 [DEBUG][       Thread-599743][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:08:46,925 [DEBUG][       Thread-599743][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:08:46,925 [DEBUG][       Thread-599743][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:08:46,925 [DEBUG][       Thread-599743][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:08:46,925 [DEBUG][       Thread-599743][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:08:46,925 [DEBUG][       Thread-599743][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:08:46,925 [DEBUG][       Thread-599743][   transport.py][1871] : client lang: <none>
2025-07-01 09:08:46,925 [DEBUG][       Thread-599743][   transport.py][1871] : server lang: <none>
2025-07-01 09:08:46,925 [DEBUG][       Thread-599743][   transport.py][1871] : kex follows: False
2025-07-01 09:08:46,926 [DEBUG][       Thread-599743][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:08:46,926 [DEBUG][       Thread-599743][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:08:46,926 [DEBUG][       Thread-599743][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:08:46,926 [DEBUG][       Thread-599743][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:08:46,926 [DEBUG][       Thread-599743][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:08:46,926 [DEBUG][       Thread-599743][   transport.py][1871] : Compression: none
2025-07-01 09:08:46,926 [DEBUG][       Thread-599743][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:08:46,941 [DEBUG][       Thread-599743][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:08:46,941 [DEBUG][       Thread-599743][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:08:46,942 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:08:46,942 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:08:46,942 [DEBUG][       Thread-599743][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:08:46,943 [DEBUG][       Thread-599743][   transport.py][1871] : userauth is OK
2025-07-01 09:08:46,967 [ INFO][       Thread-599743][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:08:46,968 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:08:47,630 [DEBUG][       Thread-599743][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:08:47,631 [DEBUG][       Thread-599743][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:08:47,673 [DEBUG][       Thread-599743][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:08:47,673 [DEBUG][       Thread-599743][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:08:47,676 [DEBUG][       Thread-599743][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:08:47,688 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:08:47,688 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:08:47,690 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:08:47,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:08:47,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:08:47,698 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:08:47,699 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:08:47,699 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:08:47,699 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.297165 -999.00   +7.80  36.87     57   +0.00 1 2 2 1 1   887    0 8.57 34.08 ----- 36.9 36.9 24.4 48.0 10.4 -23.7 9.6 -23.3 8.7 -22.5 9.4 -22.6
2025-07-01 09:08:47,699 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:08:47,700 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:08:47,700 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.297165
2025-07-01 09:08:47,700 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:08:47,701 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:08:47,701 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:08:47,701 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:08:47,701 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 09:08:47,701 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:08:40', tmtdew=9.1, humidity=52.62, cloud=0.0, wind=36.05, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:07:55.056', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:08:47,702 [DEBUG][       Thread-599743][   transport.py][1871] : EOF in transport thread
2025-07-01 09:08:47,784 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:08:47,794 [DEBUG][       Thread-599746][   transport.py][1871] : starting thread (client mode): 0x83c81f0
2025-07-01 09:08:47,794 [DEBUG][       Thread-599746][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:08:47,810 [DEBUG][       Thread-599746][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:08:47,810 [ INFO][       Thread-599746][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:08:47,819 [DEBUG][       Thread-599746][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:08:47,820 [DEBUG][       Thread-599746][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:08:47,820 [DEBUG][       Thread-599746][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:08:47,820 [DEBUG][       Thread-599746][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:08:47,820 [DEBUG][       Thread-599746][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:08:47,820 [DEBUG][       Thread-599746][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:08:47,820 [DEBUG][       Thread-599746][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:08:47,820 [DEBUG][       Thread-599746][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:08:47,820 [DEBUG][       Thread-599746][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:08:47,820 [DEBUG][       Thread-599746][   transport.py][1871] : client lang: <none>
2025-07-01 09:08:47,820 [DEBUG][       Thread-599746][   transport.py][1871] : server lang: <none>
2025-07-01 09:08:47,820 [DEBUG][       Thread-599746][   transport.py][1871] : kex follows: False
2025-07-01 09:08:47,820 [DEBUG][       Thread-599746][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:08:47,820 [DEBUG][       Thread-599746][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:08:47,820 [DEBUG][       Thread-599746][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:08:47,820 [DEBUG][       Thread-599746][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:08:47,820 [DEBUG][       Thread-599746][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:08:47,820 [DEBUG][       Thread-599746][   transport.py][1871] : Compression: none
2025-07-01 09:08:47,821 [DEBUG][       Thread-599746][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:08:47,882 [DEBUG][       Thread-599746][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:08:47,883 [DEBUG][       Thread-599746][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:08:47,883 [DEBUG][       Thread-599746][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:08:47,883 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:08:47,884 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:08:47,940 [DEBUG][       Thread-599746][   transport.py][1871] : userauth is OK
2025-07-01 09:08:47,940 [DEBUG][       Thread-599746][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:08:47,940 [DEBUG][       Thread-599746][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:08:47,941 [DEBUG][       Thread-599746][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:08:47,941 [DEBUG][       Thread-599746][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:08:47,961 [ INFO][       Thread-599746][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:08:47,962 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:08:47,962 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:08:48,413 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:08:48,414 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:08:48,972 [DEBUG][       Thread-599746][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:08:48,972 [DEBUG][       Thread-599746][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:08:49,020 [DEBUG][       Thread-599746][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:08:49,020 [DEBUG][       Thread-599746][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:08:49,029 [DEBUG][       Thread-599746][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:08:49,039 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:08:49,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-07-01 09:08:49,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-07-01 09:08:49,058 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:08:49,058 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:08:49,059 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:08:49,067 [DEBUG][       Thread-599746][   transport.py][1871] : EOF in transport thread
2025-07-01 09:08:52,318 [DEBUG][Thread-599748 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:08:59,069 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:08:59,069 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:08:59,070 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:08:59,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-07-01 09:08:59,556 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 8, 40), 9.1, 52.62, 0.0, 36.05, 7.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:08:59,556 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:08:40
2025-07-01 09:08:59,642 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:08:59,646 [DEBUG][       Thread-599749][   transport.py][1871] : starting thread (client mode): 0x8157af0
2025-07-01 09:08:59,646 [DEBUG][       Thread-599749][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:08:59,669 [DEBUG][       Thread-599749][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:08:59,669 [ INFO][       Thread-599749][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:08:59,673 [DEBUG][       Thread-599749][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:08:59,673 [DEBUG][       Thread-599749][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:08:59,673 [DEBUG][       Thread-599749][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:08:59,673 [DEBUG][       Thread-599749][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:08:59,673 [DEBUG][       Thread-599749][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:08:59,673 [DEBUG][       Thread-599749][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:08:59,673 [DEBUG][       Thread-599749][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:08:59,673 [DEBUG][       Thread-599749][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:08:59,673 [DEBUG][       Thread-599749][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:08:59,673 [DEBUG][       Thread-599749][   transport.py][1871] : client lang: <none>
2025-07-01 09:08:59,673 [DEBUG][       Thread-599749][   transport.py][1871] : server lang: <none>
2025-07-01 09:08:59,673 [DEBUG][       Thread-599749][   transport.py][1871] : kex follows: False
2025-07-01 09:08:59,673 [DEBUG][       Thread-599749][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:08:59,673 [DEBUG][       Thread-599749][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:08:59,673 [DEBUG][       Thread-599749][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:08:59,673 [DEBUG][       Thread-599749][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:08:59,673 [DEBUG][       Thread-599749][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:08:59,673 [DEBUG][       Thread-599749][   transport.py][1871] : Compression: none
2025-07-01 09:08:59,673 [DEBUG][       Thread-599749][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:08:59,690 [DEBUG][       Thread-599749][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:08:59,691 [DEBUG][       Thread-599749][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:08:59,691 [DEBUG][       Thread-599749][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:08:59,691 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:08:59,692 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:08:59,693 [DEBUG][       Thread-599749][   transport.py][1871] : userauth is OK
2025-07-01 09:08:59,717 [ INFO][       Thread-599749][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:08:59,718 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:09:00,342 [DEBUG][       Thread-599749][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:09:00,342 [DEBUG][       Thread-599749][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:09:00,385 [DEBUG][       Thread-599749][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:09:00,385 [DEBUG][       Thread-599749][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:09:00,387 [DEBUG][       Thread-599749][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:09:00,399 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:09:00,399 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:09:00,400 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:09:00,401 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:09:00,404 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:09:00,405 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:09:00,405 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:09:00,405 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:09:00,405 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.297512 -999.00   +7.80  36.12     57   +0.00 1 1 2 1 1   887    0 8.55 37.38 ----- 36.1 36.1 23.8 48.0 10.4 -23.6 9.6 -23.5 8.7 -22.6 9.5 -22.3
2025-07-01 09:09:00,405 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:09:00,405 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:09:00,405 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.297512
2025-07-01 09:09:00,405 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:09:00,405 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:09:00,405 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:09:00,405 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:09:00,405 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:09:00,405 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:08:40', tmtdew=9.1, humidity=52.62, cloud=0.0, wind=36.05, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:08:25.037', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:09:00,406 [DEBUG][       Thread-599749][   transport.py][1871] : EOF in transport thread
2025-07-01 09:09:00,480 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:09:00,491 [DEBUG][       Thread-599752][   transport.py][1871] : starting thread (client mode): 0x8106230
2025-07-01 09:09:00,491 [DEBUG][       Thread-599752][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:09:00,511 [DEBUG][       Thread-599752][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:09:00,511 [ INFO][       Thread-599752][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:09:00,518 [DEBUG][       Thread-599752][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:09:00,518 [DEBUG][       Thread-599752][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:09:00,518 [DEBUG][       Thread-599752][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:09:00,518 [DEBUG][       Thread-599752][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:09:00,518 [DEBUG][       Thread-599752][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:09:00,518 [DEBUG][       Thread-599752][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:09:00,518 [DEBUG][       Thread-599752][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:09:00,518 [DEBUG][       Thread-599752][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:09:00,518 [DEBUG][       Thread-599752][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:09:00,518 [DEBUG][       Thread-599752][   transport.py][1871] : client lang: <none>
2025-07-01 09:09:00,518 [DEBUG][       Thread-599752][   transport.py][1871] : server lang: <none>
2025-07-01 09:09:00,518 [DEBUG][       Thread-599752][   transport.py][1871] : kex follows: False
2025-07-01 09:09:00,518 [DEBUG][       Thread-599752][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:09:00,518 [DEBUG][       Thread-599752][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:09:00,518 [DEBUG][       Thread-599752][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:09:00,518 [DEBUG][       Thread-599752][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:09:00,518 [DEBUG][       Thread-599752][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:09:00,518 [DEBUG][       Thread-599752][   transport.py][1871] : Compression: none
2025-07-01 09:09:00,518 [DEBUG][       Thread-599752][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:09:00,576 [DEBUG][       Thread-599752][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:09:00,576 [DEBUG][       Thread-599752][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:09:00,576 [DEBUG][       Thread-599752][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:09:00,576 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:09:00,576 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:09:00,633 [DEBUG][       Thread-599752][   transport.py][1871] : userauth is OK
2025-07-01 09:09:00,633 [DEBUG][       Thread-599752][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:09:00,633 [DEBUG][       Thread-599752][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:09:00,633 [DEBUG][       Thread-599752][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:09:00,633 [DEBUG][       Thread-599752][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:09:00,648 [ INFO][       Thread-599752][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:09:00,648 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:09:00,648 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:09:01,358 [DEBUG][Thread-599754 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:09:01,643 [DEBUG][       Thread-599752][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:09:01,643 [DEBUG][       Thread-599752][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:09:01,691 [DEBUG][       Thread-599752][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:09:01,691 [DEBUG][       Thread-599752][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:09:01,700 [DEBUG][       Thread-599752][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:09:01,708 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:09:01,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-07-01 09:09:01,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-07-01 09:09:01,723 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:09:01,724 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:09:01,724 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:09:01,731 [DEBUG][       Thread-599752][   transport.py][1871] : EOF in transport thread
2025-07-01 09:09:10,391 [DEBUG][Thread-599755 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:09:11,734 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:09:11,734 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:09:11,734 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:09:11,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-07-01 09:09:12,208 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 8, 40), 9.1, 52.62, 0.0, 36.05, 7.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:09:12,208 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:08:40
2025-07-01 09:09:12,294 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:09:12,298 [DEBUG][       Thread-599756][   transport.py][1871] : starting thread (client mode): 0x81573a0
2025-07-01 09:09:12,298 [DEBUG][       Thread-599756][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:09:12,322 [DEBUG][       Thread-599756][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:09:12,322 [ INFO][       Thread-599756][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:09:12,326 [DEBUG][       Thread-599756][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:09:12,326 [DEBUG][       Thread-599756][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:09:12,326 [DEBUG][       Thread-599756][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:09:12,326 [DEBUG][       Thread-599756][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:09:12,326 [DEBUG][       Thread-599756][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:09:12,326 [DEBUG][       Thread-599756][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:09:12,326 [DEBUG][       Thread-599756][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:09:12,326 [DEBUG][       Thread-599756][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:09:12,326 [DEBUG][       Thread-599756][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:09:12,326 [DEBUG][       Thread-599756][   transport.py][1871] : client lang: <none>
2025-07-01 09:09:12,326 [DEBUG][       Thread-599756][   transport.py][1871] : server lang: <none>
2025-07-01 09:09:12,326 [DEBUG][       Thread-599756][   transport.py][1871] : kex follows: False
2025-07-01 09:09:12,326 [DEBUG][       Thread-599756][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:09:12,326 [DEBUG][       Thread-599756][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:09:12,326 [DEBUG][       Thread-599756][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:09:12,326 [DEBUG][       Thread-599756][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:09:12,326 [DEBUG][       Thread-599756][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:09:12,326 [DEBUG][       Thread-599756][   transport.py][1871] : Compression: none
2025-07-01 09:09:12,326 [DEBUG][       Thread-599756][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:09:12,345 [DEBUG][       Thread-599756][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:09:12,345 [DEBUG][       Thread-599756][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:09:12,346 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:09:12,346 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:09:12,346 [DEBUG][       Thread-599756][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:09:12,347 [DEBUG][       Thread-599756][   transport.py][1871] : userauth is OK
2025-07-01 09:09:12,360 [ INFO][       Thread-599756][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:09:12,361 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:09:13,005 [DEBUG][       Thread-599756][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:09:13,005 [DEBUG][       Thread-599756][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:09:13,048 [DEBUG][       Thread-599756][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:09:13,048 [DEBUG][       Thread-599756][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:09:13,051 [DEBUG][       Thread-599756][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:09:13,062 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:09:13,062 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:09:13,064 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:09:13,065 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:09:13,067 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:09:13,069 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:09:13,069 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:09:13,069 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:09:13,069 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.297512 -999.00   +7.80  36.12     57   +0.00 1 1 2 1 1   887    0 8.55 37.38 ----- 36.1 36.1 23.8 48.0 10.4 -23.6 9.6 -23.5 8.7 -22.6 9.5 -22.3
2025-07-01 09:09:13,069 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:09:13,069 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:09:13,069 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.297512
2025-07-01 09:09:13,069 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:09:13,069 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:09:13,069 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:09:13,069 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:09:13,069 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:09:13,069 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:08:40', tmtdew=9.1, humidity=52.62, cloud=0.0, wind=36.05, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:08:25.037', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:09:13,070 [DEBUG][       Thread-599756][   transport.py][1871] : EOF in transport thread
2025-07-01 09:09:13,144 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:09:13,155 [DEBUG][       Thread-599759][   transport.py][1871] : starting thread (client mode): 0x83c8520
2025-07-01 09:09:13,155 [DEBUG][       Thread-599759][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:09:13,172 [DEBUG][       Thread-599759][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:09:13,172 [ INFO][       Thread-599759][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:09:13,179 [DEBUG][       Thread-599759][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:09:13,179 [DEBUG][       Thread-599759][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:09:13,179 [DEBUG][       Thread-599759][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:09:13,179 [DEBUG][       Thread-599759][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:09:13,179 [DEBUG][       Thread-599759][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:09:13,179 [DEBUG][       Thread-599759][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:09:13,179 [DEBUG][       Thread-599759][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:09:13,179 [DEBUG][       Thread-599759][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:09:13,179 [DEBUG][       Thread-599759][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:09:13,179 [DEBUG][       Thread-599759][   transport.py][1871] : client lang: <none>
2025-07-01 09:09:13,179 [DEBUG][       Thread-599759][   transport.py][1871] : server lang: <none>
2025-07-01 09:09:13,180 [DEBUG][       Thread-599759][   transport.py][1871] : kex follows: False
2025-07-01 09:09:13,180 [DEBUG][       Thread-599759][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:09:13,180 [DEBUG][       Thread-599759][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:09:13,180 [DEBUG][       Thread-599759][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:09:13,180 [DEBUG][       Thread-599759][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:09:13,180 [DEBUG][       Thread-599759][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:09:13,180 [DEBUG][       Thread-599759][   transport.py][1871] : Compression: none
2025-07-01 09:09:13,180 [DEBUG][       Thread-599759][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:09:13,237 [DEBUG][       Thread-599759][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:09:13,237 [DEBUG][       Thread-599759][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:09:13,238 [DEBUG][       Thread-599759][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:09:13,238 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:09:13,238 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:09:13,295 [DEBUG][       Thread-599759][   transport.py][1871] : userauth is OK
2025-07-01 09:09:13,295 [DEBUG][       Thread-599759][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:09:13,295 [DEBUG][       Thread-599759][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:09:13,295 [DEBUG][       Thread-599759][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:09:13,295 [DEBUG][       Thread-599759][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:09:13,310 [ INFO][       Thread-599759][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:09:13,310 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:09:13,310 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:09:14,316 [DEBUG][       Thread-599759][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:09:14,316 [DEBUG][       Thread-599759][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:09:14,369 [DEBUG][       Thread-599759][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:09:14,369 [DEBUG][       Thread-599759][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:09:14,380 [DEBUG][       Thread-599759][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:09:14,388 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:09:14,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-07-01 09:09:14,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-07-01 09:09:14,404 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:09:14,404 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:09:14,404 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:09:14,412 [DEBUG][       Thread-599759][   transport.py][1871] : EOF in transport thread
2025-07-01 09:09:19,412 [DEBUG][Thread-599761 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:09:19,513 [DEBUG][Thread-599762 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:09:24,415 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:09:24,415 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:09:24,415 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:09:24,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-07-01 09:09:24,891 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 9, 12), 9.11, 52.58, 0.0, 28.07, 7.92, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:09:24,891 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:09:12
2025-07-01 09:09:24,978 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:09:24,982 [DEBUG][       Thread-599763][   transport.py][1871] : starting thread (client mode): 0x8107070
2025-07-01 09:09:24,982 [DEBUG][       Thread-599763][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:09:24,997 [DEBUG][       Thread-599763][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:09:24,997 [ INFO][       Thread-599763][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:09:25,000 [DEBUG][       Thread-599763][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:09:25,000 [DEBUG][       Thread-599763][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:09:25,000 [DEBUG][       Thread-599763][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:09:25,000 [DEBUG][       Thread-599763][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:09:25,000 [DEBUG][       Thread-599763][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:09:25,000 [DEBUG][       Thread-599763][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:09:25,000 [DEBUG][       Thread-599763][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:09:25,000 [DEBUG][       Thread-599763][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:09:25,000 [DEBUG][       Thread-599763][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:09:25,000 [DEBUG][       Thread-599763][   transport.py][1871] : client lang: <none>
2025-07-01 09:09:25,000 [DEBUG][       Thread-599763][   transport.py][1871] : server lang: <none>
2025-07-01 09:09:25,000 [DEBUG][       Thread-599763][   transport.py][1871] : kex follows: False
2025-07-01 09:09:25,000 [DEBUG][       Thread-599763][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:09:25,000 [DEBUG][       Thread-599763][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:09:25,000 [DEBUG][       Thread-599763][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:09:25,000 [DEBUG][       Thread-599763][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:09:25,001 [DEBUG][       Thread-599763][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:09:25,001 [DEBUG][       Thread-599763][   transport.py][1871] : Compression: none
2025-07-01 09:09:25,001 [DEBUG][       Thread-599763][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:09:25,013 [DEBUG][       Thread-599763][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:09:25,013 [DEBUG][       Thread-599763][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:09:25,014 [DEBUG][       Thread-599763][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:09:25,014 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:09:25,014 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:09:25,015 [DEBUG][       Thread-599763][   transport.py][1871] : userauth is OK
2025-07-01 09:09:25,062 [ INFO][       Thread-599763][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:09:25,063 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:09:25,659 [DEBUG][       Thread-599763][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:09:25,659 [DEBUG][       Thread-599763][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:09:25,705 [DEBUG][       Thread-599763][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:09:25,705 [DEBUG][       Thread-599763][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:09:25,708 [DEBUG][       Thread-599763][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:09:25,721 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:09:25,721 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:09:25,724 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:09:25,726 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:09:25,731 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:09:25,732 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:09:25,732 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:09:25,733 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:09:25,733 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.297859 -999.00   +7.80  34.85     57   +0.00 1 1 2 1 1   887    0 8.46 37.52 ----- 34.9 34.9 18.9 48.6 10.3 -23.7 9.5 -23.9 8.8 -22.8 9.5 -22.5
2025-07-01 09:09:25,733 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:09:25,733 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:09:25,733 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.297859
2025-07-01 09:09:25,734 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:09:25,734 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:09:25,734 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:09:25,735 [DEBUG][       Thread-599763][   transport.py][1871] : EOF in transport thread
2025-07-01 09:09:25,735 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:09:25,735 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:09:25,736 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:09:12', tmtdew=9.11, humidity=52.58, cloud=0.0, wind=28.07, temperature=7.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:08:55.018', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:09:25,816 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:09:25,829 [DEBUG][       Thread-599766][   transport.py][1871] : starting thread (client mode): 0x81e5180
2025-07-01 09:09:25,829 [DEBUG][       Thread-599766][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:09:25,845 [DEBUG][       Thread-599766][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:09:25,845 [ INFO][       Thread-599766][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:09:25,853 [DEBUG][       Thread-599766][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:09:25,853 [DEBUG][       Thread-599766][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:09:25,853 [DEBUG][       Thread-599766][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:09:25,853 [DEBUG][       Thread-599766][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:09:25,853 [DEBUG][       Thread-599766][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:09:25,853 [DEBUG][       Thread-599766][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:09:25,853 [DEBUG][       Thread-599766][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:09:25,853 [DEBUG][       Thread-599766][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:09:25,853 [DEBUG][       Thread-599766][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:09:25,853 [DEBUG][       Thread-599766][   transport.py][1871] : client lang: <none>
2025-07-01 09:09:25,854 [DEBUG][       Thread-599766][   transport.py][1871] : server lang: <none>
2025-07-01 09:09:25,854 [DEBUG][       Thread-599766][   transport.py][1871] : kex follows: False
2025-07-01 09:09:25,854 [DEBUG][       Thread-599766][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:09:25,854 [DEBUG][       Thread-599766][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:09:25,854 [DEBUG][       Thread-599766][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:09:25,854 [DEBUG][       Thread-599766][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:09:25,854 [DEBUG][       Thread-599766][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:09:25,854 [DEBUG][       Thread-599766][   transport.py][1871] : Compression: none
2025-07-01 09:09:25,854 [DEBUG][       Thread-599766][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:09:25,910 [DEBUG][       Thread-599766][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:09:25,910 [DEBUG][       Thread-599766][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:09:25,911 [DEBUG][       Thread-599766][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:09:25,911 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:09:25,912 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:09:25,970 [DEBUG][       Thread-599766][   transport.py][1871] : userauth is OK
2025-07-01 09:09:25,970 [DEBUG][       Thread-599766][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:09:25,970 [DEBUG][       Thread-599766][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:09:25,971 [DEBUG][       Thread-599766][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:09:25,971 [DEBUG][       Thread-599766][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:09:25,989 [ INFO][       Thread-599766][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:09:25,990 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:09:25,990 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:09:26,972 [DEBUG][       Thread-599766][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:09:26,972 [DEBUG][       Thread-599766][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:09:27,020 [DEBUG][       Thread-599766][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:09:27,020 [DEBUG][       Thread-599766][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:09:27,032 [DEBUG][       Thread-599766][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:09:27,049 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:09:27,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-07-01 09:09:27,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-07-01 09:09:27,071 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:09:27,071 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:09:27,071 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:09:27,082 [DEBUG][       Thread-599766][   transport.py][1871] : EOF in transport thread
2025-07-01 09:09:28,433 [DEBUG][Thread-599768 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:09:37,082 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:09:37,082 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:09:37,082 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:09:37,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-07-01 09:09:37,465 [DEBUG][Thread-599769 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:09:37,561 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 9, 12), 9.11, 52.58, 0.0, 28.07, 7.92, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:09:37,561 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:09:12
2025-07-01 09:09:37,653 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:09:37,657 [DEBUG][       Thread-599770][   transport.py][1871] : starting thread (client mode): 0x81e4b50
2025-07-01 09:09:37,657 [DEBUG][       Thread-599770][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:09:37,677 [DEBUG][       Thread-599770][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:09:37,678 [ INFO][       Thread-599770][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:09:37,681 [DEBUG][       Thread-599770][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:09:37,681 [DEBUG][       Thread-599770][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:09:37,681 [DEBUG][       Thread-599770][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:09:37,681 [DEBUG][       Thread-599770][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:09:37,681 [DEBUG][       Thread-599770][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:09:37,681 [DEBUG][       Thread-599770][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:09:37,681 [DEBUG][       Thread-599770][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:09:37,681 [DEBUG][       Thread-599770][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:09:37,681 [DEBUG][       Thread-599770][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:09:37,681 [DEBUG][       Thread-599770][   transport.py][1871] : client lang: <none>
2025-07-01 09:09:37,681 [DEBUG][       Thread-599770][   transport.py][1871] : server lang: <none>
2025-07-01 09:09:37,681 [DEBUG][       Thread-599770][   transport.py][1871] : kex follows: False
2025-07-01 09:09:37,681 [DEBUG][       Thread-599770][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:09:37,681 [DEBUG][       Thread-599770][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:09:37,681 [DEBUG][       Thread-599770][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:09:37,681 [DEBUG][       Thread-599770][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:09:37,681 [DEBUG][       Thread-599770][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:09:37,681 [DEBUG][       Thread-599770][   transport.py][1871] : Compression: none
2025-07-01 09:09:37,681 [DEBUG][       Thread-599770][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:09:37,695 [DEBUG][       Thread-599770][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:09:37,695 [DEBUG][       Thread-599770][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:09:37,695 [DEBUG][       Thread-599770][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:09:37,695 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:09:37,695 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:09:37,696 [DEBUG][       Thread-599770][   transport.py][1871] : userauth is OK
2025-07-01 09:09:37,708 [ INFO][       Thread-599770][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:09:37,708 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:09:38,340 [DEBUG][       Thread-599770][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:09:38,340 [DEBUG][       Thread-599770][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:09:38,388 [DEBUG][       Thread-599770][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:09:38,388 [DEBUG][       Thread-599770][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:09:38,391 [DEBUG][       Thread-599770][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:09:38,403 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:09:38,403 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:09:38,405 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:09:38,406 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:09:38,409 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:09:38,410 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:09:38,410 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:09:38,410 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:09:38,410 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.297859 -999.00   +7.80  34.85     57   +0.00 1 1 2 1 1   887    0 8.46 37.52 ----- 34.9 34.9 18.9 48.6 10.3 -23.7 9.5 -23.9 8.8 -22.8 9.5 -22.5
2025-07-01 09:09:38,410 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:09:38,410 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:09:38,410 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.297859
2025-07-01 09:09:38,410 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:09:38,410 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:09:38,410 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:09:38,411 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:09:38,411 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:09:38,411 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:09:12', tmtdew=9.11, humidity=52.58, cloud=0.0, wind=28.07, temperature=7.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:08:55.018', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:09:38,411 [DEBUG][       Thread-599770][   transport.py][1871] : EOF in transport thread
2025-07-01 09:09:38,484 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:09:38,494 [DEBUG][       Thread-599773][   transport.py][1871] : starting thread (client mode): 0x83939d0
2025-07-01 09:09:38,494 [DEBUG][       Thread-599773][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:09:38,511 [DEBUG][       Thread-599773][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:09:38,511 [ INFO][       Thread-599773][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:09:38,519 [DEBUG][       Thread-599773][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:09:38,519 [DEBUG][       Thread-599773][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:09:38,519 [DEBUG][       Thread-599773][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:09:38,519 [DEBUG][       Thread-599773][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:09:38,519 [DEBUG][       Thread-599773][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:09:38,519 [DEBUG][       Thread-599773][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:09:38,519 [DEBUG][       Thread-599773][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:09:38,519 [DEBUG][       Thread-599773][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:09:38,519 [DEBUG][       Thread-599773][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:09:38,519 [DEBUG][       Thread-599773][   transport.py][1871] : client lang: <none>
2025-07-01 09:09:38,519 [DEBUG][       Thread-599773][   transport.py][1871] : server lang: <none>
2025-07-01 09:09:38,519 [DEBUG][       Thread-599773][   transport.py][1871] : kex follows: False
2025-07-01 09:09:38,519 [DEBUG][       Thread-599773][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:09:38,519 [DEBUG][       Thread-599773][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:09:38,519 [DEBUG][       Thread-599773][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:09:38,519 [DEBUG][       Thread-599773][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:09:38,519 [DEBUG][       Thread-599773][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:09:38,519 [DEBUG][       Thread-599773][   transport.py][1871] : Compression: none
2025-07-01 09:09:38,519 [DEBUG][       Thread-599773][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:09:38,577 [DEBUG][       Thread-599773][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:09:38,577 [DEBUG][       Thread-599773][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:09:38,577 [DEBUG][       Thread-599773][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:09:38,577 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:09:38,577 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:09:38,633 [DEBUG][       Thread-599773][   transport.py][1871] : userauth is OK
2025-07-01 09:09:38,633 [DEBUG][       Thread-599773][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:09:38,633 [DEBUG][       Thread-599773][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:09:38,633 [DEBUG][       Thread-599773][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:09:38,633 [DEBUG][       Thread-599773][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:09:38,648 [ INFO][       Thread-599773][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:09:38,648 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:09:38,649 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:09:39,687 [DEBUG][       Thread-599773][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:09:39,687 [DEBUG][       Thread-599773][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:09:39,735 [DEBUG][       Thread-599773][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:09:39,735 [DEBUG][       Thread-599773][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:09:39,744 [DEBUG][       Thread-599773][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:09:39,752 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:09:39,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-07-01 09:09:39,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-07-01 09:09:39,768 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:09:39,768 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:09:39,768 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:09:39,776 [DEBUG][       Thread-599773][   transport.py][1871] : EOF in transport thread
2025-07-01 09:09:46,485 [DEBUG][Thread-599775 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:09:48,553 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:09:48,554 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:09:49,776 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:09:49,776 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:09:49,776 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:09:49,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-07-01 09:09:50,255 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 9, 44), 9.07, 52.74, 0.0, 30.49, 7.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:09:50,255 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:09:44
2025-07-01 09:09:50,343 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:09:50,347 [DEBUG][       Thread-599776][   transport.py][1871] : starting thread (client mode): 0x81e5de0
2025-07-01 09:09:50,347 [DEBUG][       Thread-599776][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:09:50,368 [DEBUG][       Thread-599776][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:09:50,368 [ INFO][       Thread-599776][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:09:50,371 [DEBUG][       Thread-599776][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:09:50,371 [DEBUG][       Thread-599776][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:09:50,371 [DEBUG][       Thread-599776][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:09:50,371 [DEBUG][       Thread-599776][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:09:50,371 [DEBUG][       Thread-599776][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:09:50,371 [DEBUG][       Thread-599776][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:09:50,371 [DEBUG][       Thread-599776][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:09:50,371 [DEBUG][       Thread-599776][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:09:50,371 [DEBUG][       Thread-599776][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:09:50,371 [DEBUG][       Thread-599776][   transport.py][1871] : client lang: <none>
2025-07-01 09:09:50,371 [DEBUG][       Thread-599776][   transport.py][1871] : server lang: <none>
2025-07-01 09:09:50,371 [DEBUG][       Thread-599776][   transport.py][1871] : kex follows: False
2025-07-01 09:09:50,371 [DEBUG][       Thread-599776][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:09:50,371 [DEBUG][       Thread-599776][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:09:50,371 [DEBUG][       Thread-599776][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:09:50,371 [DEBUG][       Thread-599776][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:09:50,372 [DEBUG][       Thread-599776][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:09:50,372 [DEBUG][       Thread-599776][   transport.py][1871] : Compression: none
2025-07-01 09:09:50,372 [DEBUG][       Thread-599776][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:09:50,388 [DEBUG][       Thread-599776][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:09:50,389 [DEBUG][       Thread-599776][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:09:50,389 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:09:50,389 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:09:50,390 [DEBUG][       Thread-599776][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:09:50,390 [DEBUG][       Thread-599776][   transport.py][1871] : userauth is OK
2025-07-01 09:09:50,416 [ INFO][       Thread-599776][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:09:50,416 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:09:51,048 [DEBUG][       Thread-599776][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:09:51,049 [DEBUG][       Thread-599776][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:09:51,093 [DEBUG][       Thread-599776][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:09:51,093 [DEBUG][       Thread-599776][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:09:51,096 [DEBUG][       Thread-599776][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:09:51,108 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:09:51,109 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:09:51,111 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:09:51,112 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:09:51,119 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:09:51,121 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:09:51,121 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:09:51,121 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:09:51,122 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.297859 -999.00   +7.80  34.85     57   +0.00 1 1 2 1 1   887    0 8.46 37.52 ----- 34.9 34.9 18.9 48.6 10.3 -23.7 9.5 -23.9 8.8 -22.8 9.5 -22.5
2025-07-01 09:09:51,122 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:09:51,122 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:09:51,122 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.297859
2025-07-01 09:09:51,122 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:09:51,123 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:09:51,123 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:09:51,123 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:09:51,123 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:09:51,123 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:09:44', tmtdew=9.07, humidity=52.74, cloud=0.0, wind=30.49, temperature=7.95, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:08:55.018', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:09:51,123 [DEBUG][       Thread-599776][   transport.py][1871] : EOF in transport thread
2025-07-01 09:09:51,207 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:09:51,218 [DEBUG][       Thread-599779][   transport.py][1871] : starting thread (client mode): 0x8104700
2025-07-01 09:09:51,219 [DEBUG][       Thread-599779][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:09:51,233 [DEBUG][       Thread-599779][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:09:51,233 [ INFO][       Thread-599779][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:09:51,241 [DEBUG][       Thread-599779][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:09:51,241 [DEBUG][       Thread-599779][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:09:51,241 [DEBUG][       Thread-599779][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:09:51,241 [DEBUG][       Thread-599779][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:09:51,241 [DEBUG][       Thread-599779][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:09:51,241 [DEBUG][       Thread-599779][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:09:51,241 [DEBUG][       Thread-599779][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:09:51,241 [DEBUG][       Thread-599779][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:09:51,241 [DEBUG][       Thread-599779][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:09:51,241 [DEBUG][       Thread-599779][   transport.py][1871] : client lang: <none>
2025-07-01 09:09:51,241 [DEBUG][       Thread-599779][   transport.py][1871] : server lang: <none>
2025-07-01 09:09:51,241 [DEBUG][       Thread-599779][   transport.py][1871] : kex follows: False
2025-07-01 09:09:51,241 [DEBUG][       Thread-599779][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:09:51,241 [DEBUG][       Thread-599779][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:09:51,241 [DEBUG][       Thread-599779][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:09:51,241 [DEBUG][       Thread-599779][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:09:51,241 [DEBUG][       Thread-599779][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:09:51,241 [DEBUG][       Thread-599779][   transport.py][1871] : Compression: none
2025-07-01 09:09:51,242 [DEBUG][       Thread-599779][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:09:51,302 [DEBUG][       Thread-599779][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:09:51,303 [DEBUG][       Thread-599779][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:09:51,303 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:09:51,304 [DEBUG][       Thread-599779][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:09:51,305 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:09:51,365 [DEBUG][       Thread-599779][   transport.py][1871] : userauth is OK
2025-07-01 09:09:51,365 [DEBUG][       Thread-599779][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:09:51,365 [DEBUG][       Thread-599779][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:09:51,365 [DEBUG][       Thread-599779][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:09:51,365 [DEBUG][       Thread-599779][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:09:51,385 [ INFO][       Thread-599779][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:09:51,385 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:09:51,386 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:09:52,401 [DEBUG][       Thread-599779][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:09:52,402 [DEBUG][       Thread-599779][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:09:52,452 [DEBUG][       Thread-599779][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:09:52,452 [DEBUG][       Thread-599779][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:09:52,461 [DEBUG][       Thread-599779][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:09:52,470 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:09:52,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-07-01 09:09:52,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-07-01 09:09:52,489 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:09:52,489 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:09:52,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:09:52,500 [DEBUG][       Thread-599779][   transport.py][1871] : EOF in transport thread
2025-07-01 09:09:55,507 [DEBUG][Thread-599781 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:10:02,500 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:10:02,500 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:10:02,500 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:10:02,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-07-01 09:10:02,990 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 9, 44), 9.07, 52.74, 0.0, 30.49, 7.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:10:02,990 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:09:44
2025-07-01 09:10:03,077 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:10:03,081 [DEBUG][       Thread-599782][   transport.py][1871] : starting thread (client mode): 0x8106320
2025-07-01 09:10:03,081 [DEBUG][       Thread-599782][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:10:03,096 [DEBUG][       Thread-599782][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:10:03,096 [ INFO][       Thread-599782][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:10:03,100 [DEBUG][       Thread-599782][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:10:03,100 [DEBUG][       Thread-599782][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:10:03,100 [DEBUG][       Thread-599782][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:10:03,100 [DEBUG][       Thread-599782][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:10:03,100 [DEBUG][       Thread-599782][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:10:03,100 [DEBUG][       Thread-599782][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:10:03,100 [DEBUG][       Thread-599782][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:10:03,100 [DEBUG][       Thread-599782][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:10:03,100 [DEBUG][       Thread-599782][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:10:03,100 [DEBUG][       Thread-599782][   transport.py][1871] : client lang: <none>
2025-07-01 09:10:03,100 [DEBUG][       Thread-599782][   transport.py][1871] : server lang: <none>
2025-07-01 09:10:03,100 [DEBUG][       Thread-599782][   transport.py][1871] : kex follows: False
2025-07-01 09:10:03,100 [DEBUG][       Thread-599782][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:10:03,100 [DEBUG][       Thread-599782][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:10:03,100 [DEBUG][       Thread-599782][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:10:03,100 [DEBUG][       Thread-599782][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:10:03,100 [DEBUG][       Thread-599782][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:10:03,100 [DEBUG][       Thread-599782][   transport.py][1871] : Compression: none
2025-07-01 09:10:03,100 [DEBUG][       Thread-599782][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:10:03,108 [DEBUG][       Thread-599782][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:10:03,108 [DEBUG][       Thread-599782][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:10:03,108 [DEBUG][       Thread-599782][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:10:03,109 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:10:03,109 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:10:03,109 [DEBUG][       Thread-599782][   transport.py][1871] : userauth is OK
2025-07-01 09:10:03,122 [ INFO][       Thread-599782][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:10:03,122 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:10:03,767 [DEBUG][       Thread-599782][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:10:03,767 [DEBUG][       Thread-599782][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:10:03,809 [DEBUG][       Thread-599782][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:10:03,809 [DEBUG][       Thread-599782][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:10:03,812 [DEBUG][       Thread-599782][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:10:03,825 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:10:03,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:10:03,826 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:10:03,828 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:10:03,833 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:10:03,835 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:10:03,835 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:10:03,836 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:10:03,836 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.298206 -999.00   +7.80  18.77     57   +0.00 1 1 1 1 1   887    0 8.60 36.88 ----- 18.8 18.8 13.4 48.9 10.4 -23.9 9.6 -23.6 8.8 -22.5 9.5 -23.4
2025-07-01 09:10:03,836 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:10:03,836 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:10:03,836 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.298206
2025-07-01 09:10:03,837 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:10:03,837 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:10:03,837 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:10:03,837 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:10:03,837 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:10:03,837 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:09:44', tmtdew=9.07, humidity=52.74, cloud=0.0, wind=30.49, temperature=7.95, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:09:24.998', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:10:03,838 [DEBUG][       Thread-599782][   transport.py][1871] : EOF in transport thread
2025-07-01 09:10:03,921 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:10:03,931 [DEBUG][       Thread-599785][   transport.py][1871] : starting thread (client mode): 0x81e7220
2025-07-01 09:10:03,931 [DEBUG][       Thread-599785][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:10:03,945 [DEBUG][       Thread-599785][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:10:03,945 [ INFO][       Thread-599785][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:10:03,954 [DEBUG][       Thread-599785][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:10:03,954 [DEBUG][       Thread-599785][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:10:03,954 [DEBUG][       Thread-599785][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:10:03,954 [DEBUG][       Thread-599785][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:10:03,954 [DEBUG][       Thread-599785][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:10:03,954 [DEBUG][       Thread-599785][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:10:03,954 [DEBUG][       Thread-599785][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:10:03,954 [DEBUG][       Thread-599785][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:10:03,954 [DEBUG][       Thread-599785][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:10:03,954 [DEBUG][       Thread-599785][   transport.py][1871] : client lang: <none>
2025-07-01 09:10:03,954 [DEBUG][       Thread-599785][   transport.py][1871] : server lang: <none>
2025-07-01 09:10:03,955 [DEBUG][       Thread-599785][   transport.py][1871] : kex follows: False
2025-07-01 09:10:03,955 [DEBUG][       Thread-599785][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:10:03,955 [DEBUG][       Thread-599785][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:10:03,955 [DEBUG][       Thread-599785][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:10:03,955 [DEBUG][       Thread-599785][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:10:03,955 [DEBUG][       Thread-599785][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:10:03,955 [DEBUG][       Thread-599785][   transport.py][1871] : Compression: none
2025-07-01 09:10:03,955 [DEBUG][       Thread-599785][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:10:04,013 [DEBUG][       Thread-599785][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:10:04,014 [DEBUG][       Thread-599785][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:10:04,014 [DEBUG][       Thread-599785][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:10:04,015 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:10:04,015 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:10:04,070 [DEBUG][       Thread-599785][   transport.py][1871] : userauth is OK
2025-07-01 09:10:04,071 [DEBUG][       Thread-599785][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:10:04,071 [DEBUG][       Thread-599785][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:10:04,071 [DEBUG][       Thread-599785][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:10:04,071 [DEBUG][       Thread-599785][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:10:04,090 [ INFO][       Thread-599785][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:10:04,090 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:10:04,091 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:10:04,540 [DEBUG][Thread-599787 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:10:05,072 [DEBUG][       Thread-599785][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:10:05,072 [DEBUG][       Thread-599785][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:10:05,120 [DEBUG][       Thread-599785][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:10:05,120 [DEBUG][       Thread-599785][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:10:05,129 [DEBUG][       Thread-599785][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:10:05,138 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:10:05,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-07-01 09:10:05,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-07-01 09:10:05,159 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:10:05,160 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:10:05,160 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:10:05,168 [DEBUG][       Thread-599785][   transport.py][1871] : EOF in transport thread
2025-07-01 09:10:13,560 [DEBUG][Thread-599788 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:10:15,171 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:10:15,171 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:10:15,171 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:10:15,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-07-01 09:10:15,659 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 9, 44), 9.07, 52.74, 0.0, 30.49, 7.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:10:15,659 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:09:44
2025-07-01 09:10:15,746 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:10:15,750 [DEBUG][       Thread-599789][   transport.py][1871] : starting thread (client mode): 0x8154550
2025-07-01 09:10:15,750 [DEBUG][       Thread-599789][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:10:15,770 [DEBUG][       Thread-599789][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:10:15,770 [ INFO][       Thread-599789][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:10:15,773 [DEBUG][       Thread-599789][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:10:15,773 [DEBUG][       Thread-599789][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:10:15,773 [DEBUG][       Thread-599789][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:10:15,773 [DEBUG][       Thread-599789][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:10:15,773 [DEBUG][       Thread-599789][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:10:15,774 [DEBUG][       Thread-599789][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:10:15,774 [DEBUG][       Thread-599789][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:10:15,774 [DEBUG][       Thread-599789][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:10:15,774 [DEBUG][       Thread-599789][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:10:15,774 [DEBUG][       Thread-599789][   transport.py][1871] : client lang: <none>
2025-07-01 09:10:15,774 [DEBUG][       Thread-599789][   transport.py][1871] : server lang: <none>
2025-07-01 09:10:15,774 [DEBUG][       Thread-599789][   transport.py][1871] : kex follows: False
2025-07-01 09:10:15,774 [DEBUG][       Thread-599789][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:10:15,774 [DEBUG][       Thread-599789][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:10:15,774 [DEBUG][       Thread-599789][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:10:15,774 [DEBUG][       Thread-599789][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:10:15,774 [DEBUG][       Thread-599789][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:10:15,774 [DEBUG][       Thread-599789][   transport.py][1871] : Compression: none
2025-07-01 09:10:15,774 [DEBUG][       Thread-599789][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:10:15,788 [DEBUG][       Thread-599789][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:10:15,789 [DEBUG][       Thread-599789][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:10:15,789 [DEBUG][       Thread-599789][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:10:15,789 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:10:15,789 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:10:15,790 [DEBUG][       Thread-599789][   transport.py][1871] : userauth is OK
2025-07-01 09:10:15,803 [ INFO][       Thread-599789][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:10:15,804 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:10:16,439 [DEBUG][       Thread-599789][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:10:16,439 [DEBUG][       Thread-599789][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:10:16,480 [DEBUG][       Thread-599789][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:10:16,480 [DEBUG][       Thread-599789][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:10:16,483 [DEBUG][       Thread-599789][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:10:16,494 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:10:16,494 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:10:16,495 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:10:16,496 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:10:16,499 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:10:16,500 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:10:16,500 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:10:16,500 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:10:16,500 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.298206 -999.00   +7.80  18.77     57   +0.00 1 1 1 1 1   887    0 8.60 36.88 ----- 18.8 18.8 13.4 48.9 10.4 -23.9 9.6 -23.6 8.8 -22.5 9.5 -23.4
2025-07-01 09:10:16,500 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:10:16,500 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:10:16,500 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.298206
2025-07-01 09:10:16,500 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:10:16,500 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:10:16,500 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:10:16,500 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:10:16,500 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:10:16,500 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:09:44', tmtdew=9.07, humidity=52.74, cloud=0.0, wind=30.49, temperature=7.95, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:09:24.998', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:10:16,501 [DEBUG][       Thread-599789][   transport.py][1871] : EOF in transport thread
2025-07-01 09:10:16,575 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:10:16,587 [DEBUG][       Thread-599792][   transport.py][1871] : starting thread (client mode): 0x827ec50
2025-07-01 09:10:16,587 [DEBUG][       Thread-599792][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:10:16,603 [DEBUG][       Thread-599792][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:10:16,603 [ INFO][       Thread-599792][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:10:16,610 [DEBUG][       Thread-599792][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:10:16,611 [DEBUG][       Thread-599792][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:10:16,611 [DEBUG][       Thread-599792][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:10:16,611 [DEBUG][       Thread-599792][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:10:16,611 [DEBUG][       Thread-599792][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:10:16,611 [DEBUG][       Thread-599792][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:10:16,611 [DEBUG][       Thread-599792][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:10:16,611 [DEBUG][       Thread-599792][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:10:16,611 [DEBUG][       Thread-599792][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:10:16,611 [DEBUG][       Thread-599792][   transport.py][1871] : client lang: <none>
2025-07-01 09:10:16,611 [DEBUG][       Thread-599792][   transport.py][1871] : server lang: <none>
2025-07-01 09:10:16,611 [DEBUG][       Thread-599792][   transport.py][1871] : kex follows: False
2025-07-01 09:10:16,611 [DEBUG][       Thread-599792][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:10:16,611 [DEBUG][       Thread-599792][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:10:16,611 [DEBUG][       Thread-599792][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:10:16,611 [DEBUG][       Thread-599792][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:10:16,611 [DEBUG][       Thread-599792][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:10:16,611 [DEBUG][       Thread-599792][   transport.py][1871] : Compression: none
2025-07-01 09:10:16,611 [DEBUG][       Thread-599792][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:10:16,673 [DEBUG][       Thread-599792][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:10:16,673 [DEBUG][       Thread-599792][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:10:16,673 [DEBUG][       Thread-599792][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:10:16,673 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:10:16,673 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:10:16,729 [DEBUG][       Thread-599792][   transport.py][1871] : userauth is OK
2025-07-01 09:10:16,729 [DEBUG][       Thread-599792][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:10:16,729 [DEBUG][       Thread-599792][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:10:16,729 [DEBUG][       Thread-599792][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:10:16,729 [DEBUG][       Thread-599792][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:10:16,743 [ INFO][       Thread-599792][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:10:16,744 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:10:16,744 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:10:17,741 [DEBUG][       Thread-599792][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:10:17,741 [DEBUG][       Thread-599792][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:10:17,791 [DEBUG][       Thread-599792][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:10:17,791 [DEBUG][       Thread-599792][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:10:17,800 [DEBUG][       Thread-599792][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:10:17,808 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:10:17,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-07-01 09:10: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-07-01 09:10:17,823 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:10:17,824 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:10:17,824 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:10:17,831 [DEBUG][       Thread-599792][   transport.py][1871] : EOF in transport thread
2025-07-01 09:10:19,540 [DEBUG][Thread-599794 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:10:22,579 [DEBUG][Thread-599795 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:10:27,832 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:10:27,832 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:10:27,832 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:10:27,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-07-01 09:10:28,318 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 10, 16), 9.05, 52.8, 0.0, 29.01, 7.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:10:28,318 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:10:16
2025-07-01 09:10:28,402 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:10:28,406 [DEBUG][       Thread-599796][   transport.py][1871] : starting thread (client mode): 0x81545b0
2025-07-01 09:10:28,406 [DEBUG][       Thread-599796][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:10:28,426 [DEBUG][       Thread-599796][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:10:28,426 [ INFO][       Thread-599796][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:10:28,429 [DEBUG][       Thread-599796][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:10:28,429 [DEBUG][       Thread-599796][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:10:28,429 [DEBUG][       Thread-599796][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:10:28,429 [DEBUG][       Thread-599796][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:10:28,429 [DEBUG][       Thread-599796][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:10:28,429 [DEBUG][       Thread-599796][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:10:28,429 [DEBUG][       Thread-599796][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:10:28,429 [DEBUG][       Thread-599796][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:10:28,429 [DEBUG][       Thread-599796][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:10:28,429 [DEBUG][       Thread-599796][   transport.py][1871] : client lang: <none>
2025-07-01 09:10:28,429 [DEBUG][       Thread-599796][   transport.py][1871] : server lang: <none>
2025-07-01 09:10:28,429 [DEBUG][       Thread-599796][   transport.py][1871] : kex follows: False
2025-07-01 09:10:28,429 [DEBUG][       Thread-599796][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:10:28,429 [DEBUG][       Thread-599796][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:10:28,429 [DEBUG][       Thread-599796][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:10:28,429 [DEBUG][       Thread-599796][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:10:28,429 [DEBUG][       Thread-599796][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:10:28,429 [DEBUG][       Thread-599796][   transport.py][1871] : Compression: none
2025-07-01 09:10:28,429 [DEBUG][       Thread-599796][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:10:28,443 [DEBUG][       Thread-599796][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:10:28,443 [DEBUG][       Thread-599796][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:10:28,444 [DEBUG][       Thread-599796][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:10:28,444 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:10:28,444 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:10:28,445 [DEBUG][       Thread-599796][   transport.py][1871] : userauth is OK
2025-07-01 09:10:28,470 [ INFO][       Thread-599796][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:10:28,471 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:10:29,170 [DEBUG][       Thread-599796][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:10:29,171 [DEBUG][       Thread-599796][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:10:29,213 [DEBUG][       Thread-599796][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:10:29,213 [DEBUG][       Thread-599796][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:10:29,215 [DEBUG][       Thread-599796][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:10:29,230 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:10:29,230 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:10:29,232 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:10:29,234 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:10:29,238 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:10:29,240 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:10:29,241 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:10:29,241 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:10:29,241 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.298206 -999.00   +7.80  18.77     57   +0.00 1 1 1 1 1   887    0 8.60 36.88 ----- 18.8 18.8 13.4 48.9 10.4 -23.9 9.6 -23.6 8.8 -22.5 9.5 -23.4
2025-07-01 09:10:29,241 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:10:29,241 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:10:29,241 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.298206
2025-07-01 09:10:29,242 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:10:29,242 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:10:29,242 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:10:29,243 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:10:29,243 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:10:29,243 [DEBUG][       Thread-599796][   transport.py][1871] : EOF in transport thread
2025-07-01 09:10:29,243 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:10:16', tmtdew=9.05, humidity=52.8, cloud=0.0, wind=29.01, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:09:24.998', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:10:29,327 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:10:29,339 [DEBUG][       Thread-599799][   transport.py][1871] : starting thread (client mode): 0x81552a0
2025-07-01 09:10:29,339 [DEBUG][       Thread-599799][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:10:29,354 [DEBUG][       Thread-599799][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:10:29,355 [ INFO][       Thread-599799][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:10:29,362 [DEBUG][       Thread-599799][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:10:29,362 [DEBUG][       Thread-599799][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:10:29,362 [DEBUG][       Thread-599799][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:10:29,362 [DEBUG][       Thread-599799][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:10:29,362 [DEBUG][       Thread-599799][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:10:29,362 [DEBUG][       Thread-599799][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:10:29,362 [DEBUG][       Thread-599799][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:10:29,363 [DEBUG][       Thread-599799][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:10:29,363 [DEBUG][       Thread-599799][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:10:29,363 [DEBUG][       Thread-599799][   transport.py][1871] : client lang: <none>
2025-07-01 09:10:29,363 [DEBUG][       Thread-599799][   transport.py][1871] : server lang: <none>
2025-07-01 09:10:29,363 [DEBUG][       Thread-599799][   transport.py][1871] : kex follows: False
2025-07-01 09:10:29,363 [DEBUG][       Thread-599799][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:10:29,363 [DEBUG][       Thread-599799][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:10:29,363 [DEBUG][       Thread-599799][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:10:29,363 [DEBUG][       Thread-599799][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:10:29,363 [DEBUG][       Thread-599799][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:10:29,363 [DEBUG][       Thread-599799][   transport.py][1871] : Compression: none
2025-07-01 09:10:29,363 [DEBUG][       Thread-599799][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:10:29,422 [DEBUG][       Thread-599799][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:10:29,423 [DEBUG][       Thread-599799][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:10:29,423 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:10:29,424 [DEBUG][       Thread-599799][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:10:29,425 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:10:29,478 [DEBUG][       Thread-599799][   transport.py][1871] : userauth is OK
2025-07-01 09:10:29,478 [DEBUG][       Thread-599799][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:10:29,478 [DEBUG][       Thread-599799][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:10:29,478 [DEBUG][       Thread-599799][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:10:29,478 [DEBUG][       Thread-599799][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:10:29,498 [ INFO][       Thread-599799][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:10:29,499 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:10:29,499 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:10:30,519 [DEBUG][       Thread-599799][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:10:30,519 [DEBUG][       Thread-599799][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:10:30,568 [DEBUG][       Thread-599799][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:10:30,568 [DEBUG][       Thread-599799][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:10:30,577 [DEBUG][       Thread-599799][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:10:30,586 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:10:30,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-07-01 09:10:30,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-07-01 09:10:30,605 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:10:30,605 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:10:30,606 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:10:30,614 [DEBUG][       Thread-599799][   transport.py][1871] : EOF in transport thread
2025-07-01 09:10:31,600 [DEBUG][Thread-599801 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:10:40,616 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:10:40,616 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:10:40,617 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:10:40,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-07-01 09:10:40,634 [DEBUG][Thread-599802 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:10:41,099 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 10, 16), 9.05, 52.8, 0.0, 29.01, 7.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:10:41,099 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:10:16
2025-07-01 09:10:41,183 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:10:41,187 [DEBUG][       Thread-599803][   transport.py][1871] : starting thread (client mode): 0x8107b20
2025-07-01 09:10:41,187 [DEBUG][       Thread-599803][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:10:41,207 [DEBUG][       Thread-599803][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:10:41,207 [ INFO][       Thread-599803][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:10:41,210 [DEBUG][       Thread-599803][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:10:41,211 [DEBUG][       Thread-599803][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:10:41,211 [DEBUG][       Thread-599803][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:10:41,211 [DEBUG][       Thread-599803][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:10:41,211 [DEBUG][       Thread-599803][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:10:41,211 [DEBUG][       Thread-599803][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:10:41,211 [DEBUG][       Thread-599803][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:10:41,211 [DEBUG][       Thread-599803][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:10:41,211 [DEBUG][       Thread-599803][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:10:41,211 [DEBUG][       Thread-599803][   transport.py][1871] : client lang: <none>
2025-07-01 09:10:41,211 [DEBUG][       Thread-599803][   transport.py][1871] : server lang: <none>
2025-07-01 09:10:41,211 [DEBUG][       Thread-599803][   transport.py][1871] : kex follows: False
2025-07-01 09:10:41,211 [DEBUG][       Thread-599803][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:10:41,211 [DEBUG][       Thread-599803][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:10:41,211 [DEBUG][       Thread-599803][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:10:41,211 [DEBUG][       Thread-599803][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:10:41,211 [DEBUG][       Thread-599803][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:10:41,211 [DEBUG][       Thread-599803][   transport.py][1871] : Compression: none
2025-07-01 09:10:41,211 [DEBUG][       Thread-599803][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:10:41,228 [DEBUG][       Thread-599803][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:10:41,228 [DEBUG][       Thread-599803][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:10:41,228 [DEBUG][       Thread-599803][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:10:41,229 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:10:41,229 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:10:41,229 [DEBUG][       Thread-599803][   transport.py][1871] : userauth is OK
2025-07-01 09:10:41,242 [ INFO][       Thread-599803][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:10:41,242 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:10:41,836 [DEBUG][       Thread-599803][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:10:41,837 [DEBUG][       Thread-599803][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:10:41,881 [DEBUG][       Thread-599803][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:10:41,881 [DEBUG][       Thread-599803][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:10:41,885 [DEBUG][       Thread-599803][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:10:41,896 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:10:41,896 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:10:41,898 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:10:41,900 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:10:41,906 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:10:41,908 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:10:41,908 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:10:41,908 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:10:41,909 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.298901 -999.00   +7.90  37.52     57   +0.00 1 1 2 1 1   887    0 8.62 40.00 ----- 37.5 37.5 25.0 46.0 10.3 -23.9 9.6 -23.6 8.8 -22.8 9.5 -22.6
2025-07-01 09:10:41,909 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:10:41,909 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:10:41,909 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.298901
2025-07-01 09:10:41,909 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:10:41,910 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:10:41,910 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:10:41,910 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:10:41,910 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:10:41,910 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:10:16', tmtdew=9.05, humidity=52.8, cloud=0.0, wind=29.01, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:10:25.046', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:10:41,911 [DEBUG][       Thread-599803][   transport.py][1871] : EOF in transport thread
2025-07-01 09:10:41,994 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:10:42,005 [DEBUG][       Thread-599806][   transport.py][1871] : starting thread (client mode): 0x8a65e70
2025-07-01 09:10:42,005 [DEBUG][       Thread-599806][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:10:42,021 [DEBUG][       Thread-599806][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:10:42,022 [ INFO][       Thread-599806][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:10:42,029 [DEBUG][       Thread-599806][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:10:42,030 [DEBUG][       Thread-599806][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:10:42,030 [DEBUG][       Thread-599806][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:10:42,030 [DEBUG][       Thread-599806][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:10:42,030 [DEBUG][       Thread-599806][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:10:42,030 [DEBUG][       Thread-599806][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:10:42,030 [DEBUG][       Thread-599806][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:10:42,030 [DEBUG][       Thread-599806][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:10:42,030 [DEBUG][       Thread-599806][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:10:42,030 [DEBUG][       Thread-599806][   transport.py][1871] : client lang: <none>
2025-07-01 09:10:42,030 [DEBUG][       Thread-599806][   transport.py][1871] : server lang: <none>
2025-07-01 09:10:42,030 [DEBUG][       Thread-599806][   transport.py][1871] : kex follows: False
2025-07-01 09:10:42,030 [DEBUG][       Thread-599806][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:10:42,030 [DEBUG][       Thread-599806][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:10:42,030 [DEBUG][       Thread-599806][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:10:42,030 [DEBUG][       Thread-599806][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:10:42,030 [DEBUG][       Thread-599806][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:10:42,030 [DEBUG][       Thread-599806][   transport.py][1871] : Compression: none
2025-07-01 09:10:42,030 [DEBUG][       Thread-599806][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:10:42,089 [DEBUG][       Thread-599806][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:10:42,090 [DEBUG][       Thread-599806][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:10:42,090 [DEBUG][       Thread-599806][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:10:42,090 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:10:42,091 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:10:42,146 [DEBUG][       Thread-599806][   transport.py][1871] : userauth is OK
2025-07-01 09:10:42,146 [DEBUG][       Thread-599806][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:10:42,146 [DEBUG][       Thread-599806][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:10:42,146 [DEBUG][       Thread-599806][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:10:42,146 [DEBUG][       Thread-599806][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:10:42,166 [ INFO][       Thread-599806][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:10:42,166 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:10:42,167 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:10:43,183 [DEBUG][       Thread-599806][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:10:43,183 [DEBUG][       Thread-599806][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:10:43,232 [DEBUG][       Thread-599806][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:10:43,232 [DEBUG][       Thread-599806][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:10:43,243 [DEBUG][       Thread-599806][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:10:43,252 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:10:43,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-07-01 09:10:43,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-07-01 09:10:43,272 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:10:43,272 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:10:43,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:10:43,280 [DEBUG][       Thread-599806][   transport.py][1871] : EOF in transport thread
2025-07-01 09:10:48,691 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:10:48,692 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:10:49,653 [DEBUG][Thread-599808 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:10:53,276 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:10:53,276 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:10:53,276 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:10:53,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-07-01 09:10:53,746 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 10, 48), 9.07, 52.73, 0.0, 29.01, 7.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:10:53,746 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:10:48
2025-07-01 09:10:53,830 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:10:53,836 [DEBUG][       Thread-599809][   transport.py][1871] : starting thread (client mode): 0x81e4100
2025-07-01 09:10:53,836 [DEBUG][       Thread-599809][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:10:53,861 [DEBUG][       Thread-599809][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:10:53,861 [ INFO][       Thread-599809][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:10:53,865 [DEBUG][       Thread-599809][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:10:53,865 [DEBUG][       Thread-599809][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:10:53,865 [DEBUG][       Thread-599809][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:10:53,865 [DEBUG][       Thread-599809][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:10:53,865 [DEBUG][       Thread-599809][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:10:53,865 [DEBUG][       Thread-599809][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:10:53,865 [DEBUG][       Thread-599809][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:10:53,865 [DEBUG][       Thread-599809][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:10:53,865 [DEBUG][       Thread-599809][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:10:53,865 [DEBUG][       Thread-599809][   transport.py][1871] : client lang: <none>
2025-07-01 09:10:53,865 [DEBUG][       Thread-599809][   transport.py][1871] : server lang: <none>
2025-07-01 09:10:53,865 [DEBUG][       Thread-599809][   transport.py][1871] : kex follows: False
2025-07-01 09:10:53,865 [DEBUG][       Thread-599809][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:10:53,865 [DEBUG][       Thread-599809][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:10:53,865 [DEBUG][       Thread-599809][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:10:53,866 [DEBUG][       Thread-599809][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:10:53,866 [DEBUG][       Thread-599809][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:10:53,866 [DEBUG][       Thread-599809][   transport.py][1871] : Compression: none
2025-07-01 09:10:53,866 [DEBUG][       Thread-599809][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:10:53,883 [DEBUG][       Thread-599809][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:10:53,883 [DEBUG][       Thread-599809][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:10:53,884 [DEBUG][       Thread-599809][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:10:53,884 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:10:53,884 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:10:53,885 [DEBUG][       Thread-599809][   transport.py][1871] : userauth is OK
2025-07-01 09:10:53,898 [ INFO][       Thread-599809][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:10:53,899 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:10:54,695 [DEBUG][       Thread-599809][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:10:54,695 [DEBUG][       Thread-599809][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:10:54,737 [DEBUG][       Thread-599809][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:10:54,737 [DEBUG][       Thread-599809][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:10:54,740 [DEBUG][       Thread-599809][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:10:54,750 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:10:54,750 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:10:54,752 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:10:54,754 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:10:54,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:10:54,761 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:10:54,761 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:10:54,762 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:10:54,762 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.298901 -999.00   +7.90  37.52     57   +0.00 1 1 2 1 1   887    0 8.62 40.00 ----- 37.5 37.5 25.0 46.0 10.3 -23.9 9.6 -23.6 8.8 -22.8 9.5 -22.6
2025-07-01 09:10:54,762 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:10:54,762 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:10:54,762 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.298901
2025-07-01 09:10:54,763 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:10:54,763 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:10:54,764 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:10:54,764 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:10:54,764 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:10:54,764 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:10:48', tmtdew=9.07, humidity=52.73, cloud=0.0, wind=29.01, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:10:25.046', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:10:54,765 [DEBUG][       Thread-599809][   transport.py][1871] : EOF in transport thread
2025-07-01 09:10:54,848 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:10:54,860 [DEBUG][       Thread-599812][   transport.py][1871] : starting thread (client mode): 0x8155ed0
2025-07-01 09:10:54,860 [DEBUG][       Thread-599812][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:10:54,877 [DEBUG][       Thread-599812][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:10:54,878 [ INFO][       Thread-599812][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:10:54,885 [DEBUG][       Thread-599812][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:10:54,886 [DEBUG][       Thread-599812][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:10:54,886 [DEBUG][       Thread-599812][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:10:54,886 [DEBUG][       Thread-599812][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:10:54,886 [DEBUG][       Thread-599812][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:10:54,886 [DEBUG][       Thread-599812][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:10:54,886 [DEBUG][       Thread-599812][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:10:54,886 [DEBUG][       Thread-599812][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:10:54,886 [DEBUG][       Thread-599812][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:10:54,886 [DEBUG][       Thread-599812][   transport.py][1871] : client lang: <none>
2025-07-01 09:10:54,886 [DEBUG][       Thread-599812][   transport.py][1871] : server lang: <none>
2025-07-01 09:10:54,886 [DEBUG][       Thread-599812][   transport.py][1871] : kex follows: False
2025-07-01 09:10:54,886 [DEBUG][       Thread-599812][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:10:54,886 [DEBUG][       Thread-599812][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:10:54,886 [DEBUG][       Thread-599812][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:10:54,886 [DEBUG][       Thread-599812][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:10:54,886 [DEBUG][       Thread-599812][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:10:54,886 [DEBUG][       Thread-599812][   transport.py][1871] : Compression: none
2025-07-01 09:10:54,887 [DEBUG][       Thread-599812][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:10:54,942 [DEBUG][       Thread-599812][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:10:54,943 [DEBUG][       Thread-599812][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:10:54,943 [DEBUG][       Thread-599812][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:10:54,944 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:10:54,944 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:10:54,998 [DEBUG][       Thread-599812][   transport.py][1871] : userauth is OK
2025-07-01 09:10:54,998 [DEBUG][       Thread-599812][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:10:54,998 [DEBUG][       Thread-599812][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:10:54,998 [DEBUG][       Thread-599812][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:10:54,998 [DEBUG][       Thread-599812][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:10:55,018 [ INFO][       Thread-599812][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:10:55,019 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:10:55,019 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:10:56,065 [DEBUG][       Thread-599812][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:10:56,065 [DEBUG][       Thread-599812][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:10:56,115 [DEBUG][       Thread-599812][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:10:56,115 [DEBUG][       Thread-599812][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:10:56,124 [DEBUG][       Thread-599812][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:10:56,132 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:10:56,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')
2025-07-01 09:10: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-07-01 09:10:56,148 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:10:56,148 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:10:56,148 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:10:56,156 [DEBUG][       Thread-599812][   transport.py][1871] : EOF in transport thread
2025-07-01 09:10:58,669 [DEBUG][Thread-599814 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:11:06,153 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:11:06,153 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:11:06,153 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:11:06,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-07-01 09:11:06,637 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 10, 48), 9.07, 52.73, 0.0, 29.01, 7.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:11:06,637 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:10:48
2025-07-01 09:11:06,724 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:11:06,727 [DEBUG][       Thread-599815][   transport.py][1871] : starting thread (client mode): 0x8107640
2025-07-01 09:11:06,727 [DEBUG][       Thread-599815][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:11:06,748 [DEBUG][       Thread-599815][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:11:06,748 [ INFO][       Thread-599815][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:11:06,751 [DEBUG][       Thread-599815][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:11:06,751 [DEBUG][       Thread-599815][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:11:06,751 [DEBUG][       Thread-599815][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:11:06,751 [DEBUG][       Thread-599815][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:11:06,751 [DEBUG][       Thread-599815][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:11:06,751 [DEBUG][       Thread-599815][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:11:06,751 [DEBUG][       Thread-599815][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:11:06,751 [DEBUG][       Thread-599815][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:11:06,751 [DEBUG][       Thread-599815][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:11:06,751 [DEBUG][       Thread-599815][   transport.py][1871] : client lang: <none>
2025-07-01 09:11:06,751 [DEBUG][       Thread-599815][   transport.py][1871] : server lang: <none>
2025-07-01 09:11:06,751 [DEBUG][       Thread-599815][   transport.py][1871] : kex follows: False
2025-07-01 09:11:06,751 [DEBUG][       Thread-599815][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:11:06,751 [DEBUG][       Thread-599815][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:11:06,751 [DEBUG][       Thread-599815][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:11:06,751 [DEBUG][       Thread-599815][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:11:06,751 [DEBUG][       Thread-599815][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:11:06,751 [DEBUG][       Thread-599815][   transport.py][1871] : Compression: none
2025-07-01 09:11:06,751 [DEBUG][       Thread-599815][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:11:06,767 [DEBUG][       Thread-599815][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:11:06,768 [DEBUG][       Thread-599815][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:11:06,768 [DEBUG][       Thread-599815][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:11:06,769 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:11:06,769 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:11:06,770 [DEBUG][       Thread-599815][   transport.py][1871] : userauth is OK
2025-07-01 09:11:06,782 [ INFO][       Thread-599815][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:11:06,783 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:11:07,436 [DEBUG][       Thread-599815][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:11:07,436 [DEBUG][       Thread-599815][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:11:07,477 [DEBUG][       Thread-599815][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:11:07,477 [DEBUG][       Thread-599815][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:11:07,479 [DEBUG][       Thread-599815][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:11:07,484 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:11:07,484 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:11:07,486 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:11:07,488 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:11:07,493 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:11:07,494 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:11:07,494 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:11:07,495 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:11:07,495 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.299248 -999.00   +7.80  29.75     57   +0.00 1 1 1 1 1   887    0 8.70 41.91 ----- 29.8 29.8 13.5 50.3 10.3 -24.3 9.6 -23.4 8.8 -22.9 9.5 -22.6
2025-07-01 09:11:07,495 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:11:07,495 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:11:07,495 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.299248
2025-07-01 09:11:07,496 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:11:07,497 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:11:07,497 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:11:07,497 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:11:07,497 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:11:07,497 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:10:48', tmtdew=9.07, humidity=52.73, cloud=0.0, wind=29.01, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:10:55.027', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:11:07,498 [DEBUG][       Thread-599815][   transport.py][1871] : EOF in transport thread
2025-07-01 09:11:07,582 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:11:07,592 [DEBUG][       Thread-599818][   transport.py][1871] : starting thread (client mode): 0x8155630
2025-07-01 09:11:07,592 [DEBUG][       Thread-599818][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:11:07,607 [DEBUG][       Thread-599818][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:11:07,607 [ INFO][       Thread-599818][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:11:07,614 [DEBUG][       Thread-599818][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:11:07,615 [DEBUG][       Thread-599818][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:11:07,615 [DEBUG][       Thread-599818][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:11:07,615 [DEBUG][       Thread-599818][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:11:07,615 [DEBUG][       Thread-599818][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:11:07,615 [DEBUG][       Thread-599818][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:11:07,615 [DEBUG][       Thread-599818][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:11:07,615 [DEBUG][       Thread-599818][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:11:07,615 [DEBUG][       Thread-599818][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:11:07,615 [DEBUG][       Thread-599818][   transport.py][1871] : client lang: <none>
2025-07-01 09:11:07,615 [DEBUG][       Thread-599818][   transport.py][1871] : server lang: <none>
2025-07-01 09:11:07,615 [DEBUG][       Thread-599818][   transport.py][1871] : kex follows: False
2025-07-01 09:11:07,615 [DEBUG][       Thread-599818][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:11:07,615 [DEBUG][       Thread-599818][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:11:07,615 [DEBUG][       Thread-599818][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:11:07,615 [DEBUG][       Thread-599818][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:11:07,615 [DEBUG][       Thread-599818][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:11:07,615 [DEBUG][       Thread-599818][   transport.py][1871] : Compression: none
2025-07-01 09:11:07,615 [DEBUG][       Thread-599818][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:11:07,674 [DEBUG][       Thread-599818][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:11:07,675 [DEBUG][       Thread-599818][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:11:07,675 [DEBUG][       Thread-599818][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:11:07,676 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:11:07,676 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:11:07,703 [DEBUG][Thread-599820 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:11:07,739 [DEBUG][       Thread-599818][   transport.py][1871] : userauth is OK
2025-07-01 09:11:07,740 [DEBUG][       Thread-599818][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:11:07,740 [DEBUG][       Thread-599818][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:11:07,740 [DEBUG][       Thread-599818][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:11:07,740 [DEBUG][       Thread-599818][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:11:07,758 [ INFO][       Thread-599818][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:11:07,759 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:11:07,759 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:11:08,790 [DEBUG][       Thread-599818][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:11:08,790 [DEBUG][       Thread-599818][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:11:08,840 [DEBUG][       Thread-599818][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:11:08,840 [DEBUG][       Thread-599818][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:11:08,849 [DEBUG][       Thread-599818][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:11:08,859 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:11:08,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-07-01 09:11:08,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-07-01 09:11:08,877 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:11:08,877 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:11:08,877 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:11:08,893 [DEBUG][       Thread-599818][   transport.py][1871] : EOF in transport thread
2025-07-01 09:11:16,725 [DEBUG][Thread-599821 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:11:18,884 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:11:18,884 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:11:18,884 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:11:18,887 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:11:19,353 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 10, 48), 9.07, 52.73, 0.0, 29.01, 7.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:11:19,353 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:10:48
2025-07-01 09:11:19,440 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:11:19,446 [DEBUG][       Thread-599822][   transport.py][1871] : starting thread (client mode): 0x81a6290
2025-07-01 09:11:19,446 [DEBUG][       Thread-599822][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:11:19,467 [DEBUG][       Thread-599822][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:11:19,467 [ INFO][       Thread-599822][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:11:19,470 [DEBUG][       Thread-599822][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:11:19,470 [DEBUG][       Thread-599822][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:11:19,470 [DEBUG][       Thread-599822][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:11:19,470 [DEBUG][       Thread-599822][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:11:19,470 [DEBUG][       Thread-599822][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:11:19,470 [DEBUG][       Thread-599822][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:11:19,470 [DEBUG][       Thread-599822][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:11:19,470 [DEBUG][       Thread-599822][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:11:19,471 [DEBUG][       Thread-599822][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:11:19,471 [DEBUG][       Thread-599822][   transport.py][1871] : client lang: <none>
2025-07-01 09:11:19,471 [DEBUG][       Thread-599822][   transport.py][1871] : server lang: <none>
2025-07-01 09:11:19,471 [DEBUG][       Thread-599822][   transport.py][1871] : kex follows: False
2025-07-01 09:11:19,471 [DEBUG][       Thread-599822][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:11:19,471 [DEBUG][       Thread-599822][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:11:19,471 [DEBUG][       Thread-599822][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:11:19,471 [DEBUG][       Thread-599822][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:11:19,471 [DEBUG][       Thread-599822][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:11:19,471 [DEBUG][       Thread-599822][   transport.py][1871] : Compression: none
2025-07-01 09:11:19,471 [DEBUG][       Thread-599822][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:11:19,486 [DEBUG][       Thread-599822][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:11:19,486 [DEBUG][       Thread-599822][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:11:19,486 [DEBUG][       Thread-599822][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:11:19,487 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:11:19,487 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:11:19,487 [DEBUG][       Thread-599822][   transport.py][1871] : userauth is OK
2025-07-01 09:11:19,500 [ INFO][       Thread-599822][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:11:19,500 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:11:19,591 [DEBUG][Thread-599824 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:11:20,330 [DEBUG][       Thread-599822][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:11:20,330 [DEBUG][       Thread-599822][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:11:20,372 [DEBUG][       Thread-599822][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:11:20,372 [DEBUG][       Thread-599822][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:11:20,375 [DEBUG][       Thread-599822][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:11:20,388 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:11:20,388 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:11:20,389 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:11:20,390 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:11:20,393 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:11:20,393 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:11:20,393 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:11:20,393 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:11:20,393 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.299248 -999.00   +7.80  29.75     57   +0.00 1 1 1 1 1   887    0 8.70 41.91 ----- 29.8 29.8 13.5 50.3 10.3 -24.3 9.6 -23.4 8.8 -22.9 9.5 -22.6
2025-07-01 09:11:20,393 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:11:20,393 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:11:20,393 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.299248
2025-07-01 09:11:20,394 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:11:20,394 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:11:20,394 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:11:20,394 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:11:20,394 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:11:20,394 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:10:48', tmtdew=9.07, humidity=52.73, cloud=0.0, wind=29.01, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:10:55.027', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:11:20,394 [DEBUG][       Thread-599822][   transport.py][1871] : EOF in transport thread
2025-07-01 09:11:20,468 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:11:20,480 [DEBUG][       Thread-599826][   transport.py][1871] : starting thread (client mode): 0x8154cd0
2025-07-01 09:11:20,480 [DEBUG][       Thread-599826][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:11:20,495 [DEBUG][       Thread-599826][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:11:20,495 [ INFO][       Thread-599826][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:11:20,502 [DEBUG][       Thread-599826][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:11:20,502 [DEBUG][       Thread-599826][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:11:20,502 [DEBUG][       Thread-599826][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:11:20,502 [DEBUG][       Thread-599826][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:11:20,502 [DEBUG][       Thread-599826][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:11:20,502 [DEBUG][       Thread-599826][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:11:20,502 [DEBUG][       Thread-599826][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:11:20,502 [DEBUG][       Thread-599826][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:11:20,502 [DEBUG][       Thread-599826][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:11:20,502 [DEBUG][       Thread-599826][   transport.py][1871] : client lang: <none>
2025-07-01 09:11:20,502 [DEBUG][       Thread-599826][   transport.py][1871] : server lang: <none>
2025-07-01 09:11:20,502 [DEBUG][       Thread-599826][   transport.py][1871] : kex follows: False
2025-07-01 09:11:20,502 [DEBUG][       Thread-599826][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:11:20,502 [DEBUG][       Thread-599826][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:11:20,502 [DEBUG][       Thread-599826][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:11:20,502 [DEBUG][       Thread-599826][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:11:20,502 [DEBUG][       Thread-599826][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:11:20,502 [DEBUG][       Thread-599826][   transport.py][1871] : Compression: none
2025-07-01 09:11:20,502 [DEBUG][       Thread-599826][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:11:20,560 [DEBUG][       Thread-599826][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:11:20,560 [DEBUG][       Thread-599826][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:11:20,560 [DEBUG][       Thread-599826][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:11:20,560 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:11:20,560 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:11:20,617 [DEBUG][       Thread-599826][   transport.py][1871] : userauth is OK
2025-07-01 09:11:20,617 [DEBUG][       Thread-599826][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:11:20,617 [DEBUG][       Thread-599826][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:11:20,617 [DEBUG][       Thread-599826][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:11:20,617 [DEBUG][       Thread-599826][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:11:20,632 [ INFO][       Thread-599826][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:11:20,632 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:11:20,632 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:11:21,654 [DEBUG][       Thread-599826][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:11:21,654 [DEBUG][       Thread-599826][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:11:21,711 [DEBUG][       Thread-599826][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:11:21,711 [DEBUG][       Thread-599826][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:11:21,723 [DEBUG][       Thread-599826][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:11:21,735 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:11:21,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-07-01 09:11:21,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-07-01 09:11:21,752 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:11:21,752 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:11:21,753 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:11:21,760 [DEBUG][       Thread-599826][   transport.py][1871] : EOF in transport thread
2025-07-01 09:11:25,752 [DEBUG][Thread-599828 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:11:31,763 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:11:31,763 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:11:31,763 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:11: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-07-01 09:11:32,242 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 11, 19), 9.02, 52.8, 0.0, 34.16, 7.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:11:32,242 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:11:19
2025-07-01 09:11:32,328 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:11:32,334 [DEBUG][       Thread-599829][   transport.py][1871] : starting thread (client mode): 0x81a6350
2025-07-01 09:11:32,334 [DEBUG][       Thread-599829][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:11:32,354 [DEBUG][       Thread-599829][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:11:32,354 [ INFO][       Thread-599829][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:11:32,357 [DEBUG][       Thread-599829][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:11:32,357 [DEBUG][       Thread-599829][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:11:32,357 [DEBUG][       Thread-599829][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:11:32,357 [DEBUG][       Thread-599829][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:11:32,357 [DEBUG][       Thread-599829][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:11:32,357 [DEBUG][       Thread-599829][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:11:32,357 [DEBUG][       Thread-599829][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:11:32,357 [DEBUG][       Thread-599829][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:11:32,357 [DEBUG][       Thread-599829][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:11:32,357 [DEBUG][       Thread-599829][   transport.py][1871] : client lang: <none>
2025-07-01 09:11:32,357 [DEBUG][       Thread-599829][   transport.py][1871] : server lang: <none>
2025-07-01 09:11:32,357 [DEBUG][       Thread-599829][   transport.py][1871] : kex follows: False
2025-07-01 09:11:32,357 [DEBUG][       Thread-599829][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:11:32,357 [DEBUG][       Thread-599829][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:11:32,357 [DEBUG][       Thread-599829][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:11:32,358 [DEBUG][       Thread-599829][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:11:32,358 [DEBUG][       Thread-599829][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:11:32,358 [DEBUG][       Thread-599829][   transport.py][1871] : Compression: none
2025-07-01 09:11:32,358 [DEBUG][       Thread-599829][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:11:32,370 [DEBUG][       Thread-599829][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:11:32,371 [DEBUG][       Thread-599829][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:11:32,371 [DEBUG][       Thread-599829][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:11:32,372 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:11:32,372 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:11:32,373 [DEBUG][       Thread-599829][   transport.py][1871] : userauth is OK
2025-07-01 09:11:32,397 [ INFO][       Thread-599829][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:11:32,398 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:11:33,247 [DEBUG][       Thread-599829][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:11:33,247 [DEBUG][       Thread-599829][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:11:33,292 [DEBUG][       Thread-599829][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:11:33,292 [DEBUG][       Thread-599829][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:11:33,295 [DEBUG][       Thread-599829][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:11:33,306 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:11:33,306 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:11:33,307 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:11:33,308 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:11:33,312 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:11:33,312 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:11:33,312 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:11:33,312 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:11:33,312 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.299248 -999.00   +7.80  29.75     57   +0.00 1 1 1 1 1   887    0 8.70 41.91 ----- 29.8 29.8 13.5 50.3 10.3 -24.3 9.6 -23.4 8.8 -22.9 9.5 -22.6
2025-07-01 09:11:33,312 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:11:33,313 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:11:33,313 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.299248
2025-07-01 09:11:33,313 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:11:33,313 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:11:33,313 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:11:33,313 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:11:33,313 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:11:33,313 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:11:19', tmtdew=9.02, humidity=52.8, cloud=0.0, wind=34.16, temperature=7.95, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:10:55.027', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:11:33,314 [DEBUG][       Thread-599829][   transport.py][1871] : EOF in transport thread
2025-07-01 09:11:33,387 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:11:33,400 [DEBUG][       Thread-599832][   transport.py][1871] : starting thread (client mode): 0x8107850
2025-07-01 09:11:33,400 [DEBUG][       Thread-599832][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:11:33,415 [DEBUG][       Thread-599832][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:11:33,415 [ INFO][       Thread-599832][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:11:33,422 [DEBUG][       Thread-599832][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:11:33,422 [DEBUG][       Thread-599832][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:11:33,422 [DEBUG][       Thread-599832][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:11:33,422 [DEBUG][       Thread-599832][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:11:33,422 [DEBUG][       Thread-599832][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:11:33,422 [DEBUG][       Thread-599832][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:11:33,422 [DEBUG][       Thread-599832][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:11:33,422 [DEBUG][       Thread-599832][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:11:33,422 [DEBUG][       Thread-599832][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:11:33,422 [DEBUG][       Thread-599832][   transport.py][1871] : client lang: <none>
2025-07-01 09:11:33,422 [DEBUG][       Thread-599832][   transport.py][1871] : server lang: <none>
2025-07-01 09:11:33,422 [DEBUG][       Thread-599832][   transport.py][1871] : kex follows: False
2025-07-01 09:11:33,422 [DEBUG][       Thread-599832][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:11:33,422 [DEBUG][       Thread-599832][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:11:33,422 [DEBUG][       Thread-599832][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:11:33,422 [DEBUG][       Thread-599832][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:11:33,422 [DEBUG][       Thread-599832][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:11:33,422 [DEBUG][       Thread-599832][   transport.py][1871] : Compression: none
2025-07-01 09:11:33,422 [DEBUG][       Thread-599832][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:11:33,480 [DEBUG][       Thread-599832][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:11:33,480 [DEBUG][       Thread-599832][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:11:33,480 [DEBUG][       Thread-599832][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:11:33,480 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:11:33,481 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:11:33,537 [DEBUG][       Thread-599832][   transport.py][1871] : userauth is OK
2025-07-01 09:11:33,537 [DEBUG][       Thread-599832][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:11:33,537 [DEBUG][       Thread-599832][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:11:33,537 [DEBUG][       Thread-599832][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:11:33,537 [DEBUG][       Thread-599832][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:11:33,551 [ INFO][       Thread-599832][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:11:33,551 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:11:33,551 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:11:34,581 [DEBUG][       Thread-599832][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:11:34,581 [DEBUG][       Thread-599832][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:11:34,631 [DEBUG][       Thread-599832][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:11:34,631 [DEBUG][       Thread-599832][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:11:34,640 [DEBUG][       Thread-599832][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:11:34,648 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:11:34,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-07-01 09:11:34,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-07-01 09:11:34,667 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:11:34,667 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:11:34,667 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:11:34,680 [DEBUG][       Thread-599832][   transport.py][1871] : EOF in transport thread
2025-07-01 09:11:34,771 [DEBUG][Thread-599834 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:11:43,804 [DEBUG][Thread-599835 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:11:44,677 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:11:44,677 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:11:44,678 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:11:44,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-07-01 09:11:45,127 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 11, 19), 9.02, 52.8, 0.0, 34.16, 7.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:11:45,127 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:11:19
2025-07-01 09:11:45,212 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:11:45,216 [DEBUG][       Thread-599836][   transport.py][1871] : starting thread (client mode): 0x81a7730
2025-07-01 09:11:45,216 [DEBUG][       Thread-599836][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:11:45,238 [DEBUG][       Thread-599836][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:11:45,238 [ INFO][       Thread-599836][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:11:45,242 [DEBUG][       Thread-599836][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:11:45,243 [DEBUG][       Thread-599836][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:11:45,243 [DEBUG][       Thread-599836][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:11:45,243 [DEBUG][       Thread-599836][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:11:45,243 [DEBUG][       Thread-599836][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:11:45,243 [DEBUG][       Thread-599836][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:11:45,243 [DEBUG][       Thread-599836][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:11:45,243 [DEBUG][       Thread-599836][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:11:45,243 [DEBUG][       Thread-599836][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:11:45,243 [DEBUG][       Thread-599836][   transport.py][1871] : client lang: <none>
2025-07-01 09:11:45,243 [DEBUG][       Thread-599836][   transport.py][1871] : server lang: <none>
2025-07-01 09:11:45,243 [DEBUG][       Thread-599836][   transport.py][1871] : kex follows: False
2025-07-01 09:11:45,243 [DEBUG][       Thread-599836][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:11:45,243 [DEBUG][       Thread-599836][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:11:45,243 [DEBUG][       Thread-599836][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:11:45,243 [DEBUG][       Thread-599836][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:11:45,243 [DEBUG][       Thread-599836][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:11:45,243 [DEBUG][       Thread-599836][   transport.py][1871] : Compression: none
2025-07-01 09:11:45,243 [DEBUG][       Thread-599836][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:11:45,259 [DEBUG][       Thread-599836][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:11:45,259 [DEBUG][       Thread-599836][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:11:45,260 [DEBUG][       Thread-599836][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:11:45,260 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:11:45,260 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:11:45,261 [DEBUG][       Thread-599836][   transport.py][1871] : userauth is OK
2025-07-01 09:11:45,286 [ INFO][       Thread-599836][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:11:45,287 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:11:46,010 [DEBUG][       Thread-599836][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:11:46,010 [DEBUG][       Thread-599836][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:11:46,053 [DEBUG][       Thread-599836][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:11:46,053 [DEBUG][       Thread-599836][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:11:46,057 [DEBUG][       Thread-599836][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:11:46,069 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:11:46,069 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:11:46,071 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:11:46,073 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:11:46,079 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:11:46,081 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:11:46,081 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:11:46,082 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:11:46,082 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.299595 -999.00   +7.80  31.36     57   +0.00 1 1 2 1 1   887    0 8.51 38.27 ----- 31.4 31.4 21.8 42.2 10.3 -23.5 9.6 -23.5 8.8 -23.0 9.5 -23.4
2025-07-01 09:11:46,082 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:11:46,082 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:11:46,082 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.299595
2025-07-01 09:11:46,082 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:11:46,083 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:11:46,083 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:11:46,083 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:11:46,083 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:11:46,083 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:11:19', tmtdew=9.02, humidity=52.8, cloud=0.0, wind=34.16, temperature=7.95, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:11:25.008', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:11:46,084 [DEBUG][       Thread-599836][   transport.py][1871] : EOF in transport thread
2025-07-01 09:11:46,159 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:11:46,170 [DEBUG][       Thread-599839][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 09:11:46,170 [DEBUG][       Thread-599839][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:11:46,185 [DEBUG][       Thread-599839][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:11:46,185 [ INFO][       Thread-599839][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:11:46,193 [DEBUG][       Thread-599839][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:11:46,194 [DEBUG][       Thread-599839][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:11:46,194 [DEBUG][       Thread-599839][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:11:46,194 [DEBUG][       Thread-599839][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:11:46,194 [DEBUG][       Thread-599839][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:11:46,194 [DEBUG][       Thread-599839][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:11:46,194 [DEBUG][       Thread-599839][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:11:46,194 [DEBUG][       Thread-599839][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:11:46,194 [DEBUG][       Thread-599839][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:11:46,194 [DEBUG][       Thread-599839][   transport.py][1871] : client lang: <none>
2025-07-01 09:11:46,194 [DEBUG][       Thread-599839][   transport.py][1871] : server lang: <none>
2025-07-01 09:11:46,194 [DEBUG][       Thread-599839][   transport.py][1871] : kex follows: False
2025-07-01 09:11:46,194 [DEBUG][       Thread-599839][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:11:46,194 [DEBUG][       Thread-599839][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:11:46,194 [DEBUG][       Thread-599839][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:11:46,194 [DEBUG][       Thread-599839][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:11:46,194 [DEBUG][       Thread-599839][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:11:46,194 [DEBUG][       Thread-599839][   transport.py][1871] : Compression: none
2025-07-01 09:11:46,194 [DEBUG][       Thread-599839][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:11:46,253 [DEBUG][       Thread-599839][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:11:46,254 [DEBUG][       Thread-599839][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:11:46,254 [DEBUG][       Thread-599839][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:11:46,255 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:11:46,255 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:11:46,310 [DEBUG][       Thread-599839][   transport.py][1871] : userauth is OK
2025-07-01 09:11:46,310 [DEBUG][       Thread-599839][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:11:46,310 [DEBUG][       Thread-599839][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:11:46,311 [DEBUG][       Thread-599839][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:11:46,311 [DEBUG][       Thread-599839][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:11:46,329 [ INFO][       Thread-599839][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:11:46,329 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:11:46,330 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:11:47,328 [DEBUG][       Thread-599839][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:11:47,329 [DEBUG][       Thread-599839][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:11:47,380 [DEBUG][       Thread-599839][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:11:47,380 [DEBUG][       Thread-599839][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:11:47,389 [DEBUG][       Thread-599839][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:11:47,398 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:11:47,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-07-01 09:11:47,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-07-01 09:11:47,417 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:11:47,417 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:11:47,418 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:11:47,426 [DEBUG][       Thread-599839][   transport.py][1871] : EOF in transport thread
2025-07-01 09:11:48,830 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:11:48,831 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:11:52,824 [DEBUG][Thread-599841 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:11:57,428 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:11:57,428 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:11:57,428 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:11: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-07-01 09:11:57,896 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 11, 51), 9.04, 52.73, 0.0, 37.76, 7.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:11:57,896 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:11:51
2025-07-01 09:11:57,980 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:11:57,986 [DEBUG][       Thread-599842][   transport.py][1871] : starting thread (client mode): 0x81e7880
2025-07-01 09:11:57,986 [DEBUG][       Thread-599842][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:11:58,006 [DEBUG][       Thread-599842][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:11:58,006 [ INFO][       Thread-599842][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:11:58,010 [DEBUG][       Thread-599842][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:11:58,010 [DEBUG][       Thread-599842][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:11:58,010 [DEBUG][       Thread-599842][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:11:58,010 [DEBUG][       Thread-599842][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:11:58,010 [DEBUG][       Thread-599842][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:11:58,010 [DEBUG][       Thread-599842][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:11:58,010 [DEBUG][       Thread-599842][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:11:58,010 [DEBUG][       Thread-599842][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:11:58,010 [DEBUG][       Thread-599842][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:11:58,010 [DEBUG][       Thread-599842][   transport.py][1871] : client lang: <none>
2025-07-01 09:11:58,010 [DEBUG][       Thread-599842][   transport.py][1871] : server lang: <none>
2025-07-01 09:11:58,010 [DEBUG][       Thread-599842][   transport.py][1871] : kex follows: False
2025-07-01 09:11:58,010 [DEBUG][       Thread-599842][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:11:58,010 [DEBUG][       Thread-599842][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:11:58,010 [DEBUG][       Thread-599842][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:11:58,010 [DEBUG][       Thread-599842][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:11:58,010 [DEBUG][       Thread-599842][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:11:58,010 [DEBUG][       Thread-599842][   transport.py][1871] : Compression: none
2025-07-01 09:11:58,010 [DEBUG][       Thread-599842][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:11:58,027 [DEBUG][       Thread-599842][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:11:58,028 [DEBUG][       Thread-599842][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:11:58,028 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:11:58,029 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:11:58,029 [DEBUG][       Thread-599842][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:11:58,030 [DEBUG][       Thread-599842][   transport.py][1871] : userauth is OK
2025-07-01 09:11:58,042 [ INFO][       Thread-599842][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:11:58,043 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:11:58,831 [DEBUG][       Thread-599842][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:11:58,832 [DEBUG][       Thread-599842][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:11:58,873 [DEBUG][       Thread-599842][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:11:58,873 [DEBUG][       Thread-599842][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:11:58,876 [DEBUG][       Thread-599842][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:11:58,888 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:11:58,889 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:11:58,890 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:11:58,892 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:11:58,897 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:11:58,899 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:11:58,899 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:11:58,900 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:11:58,900 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.299595 -999.00   +7.80  31.36     57   +0.00 1 1 2 1 1   887    0 8.51 38.27 ----- 31.4 31.4 21.8 42.2 10.3 -23.5 9.6 -23.5 8.8 -23.0 9.5 -23.4
2025-07-01 09:11:58,900 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:11:58,900 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:11:58,900 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.299595
2025-07-01 09:11:58,901 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:11:58,901 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:11:58,901 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:11:58,901 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:11:58,901 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:11:58,902 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:11:51', tmtdew=9.04, humidity=52.73, cloud=0.0, wind=37.76, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:11:25.008', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:11:58,902 [DEBUG][       Thread-599842][   transport.py][1871] : EOF in transport thread
2025-07-01 09:11:58,985 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:11:58,997 [DEBUG][       Thread-599845][   transport.py][1871] : starting thread (client mode): 0x81552a0
2025-07-01 09:11:58,997 [DEBUG][       Thread-599845][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:11:59,018 [DEBUG][       Thread-599845][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:11:59,018 [ INFO][       Thread-599845][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:11:59,030 [DEBUG][       Thread-599845][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:11:59,030 [DEBUG][       Thread-599845][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:11:59,030 [DEBUG][       Thread-599845][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:11:59,030 [DEBUG][       Thread-599845][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:11:59,030 [DEBUG][       Thread-599845][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:11:59,030 [DEBUG][       Thread-599845][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:11:59,030 [DEBUG][       Thread-599845][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:11:59,030 [DEBUG][       Thread-599845][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:11:59,030 [DEBUG][       Thread-599845][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:11:59,031 [DEBUG][       Thread-599845][   transport.py][1871] : client lang: <none>
2025-07-01 09:11:59,031 [DEBUG][       Thread-599845][   transport.py][1871] : server lang: <none>
2025-07-01 09:11:59,031 [DEBUG][       Thread-599845][   transport.py][1871] : kex follows: False
2025-07-01 09:11:59,031 [DEBUG][       Thread-599845][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:11:59,031 [DEBUG][       Thread-599845][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:11:59,031 [DEBUG][       Thread-599845][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:11:59,031 [DEBUG][       Thread-599845][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:11:59,031 [DEBUG][       Thread-599845][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:11:59,031 [DEBUG][       Thread-599845][   transport.py][1871] : Compression: none
2025-07-01 09:11:59,031 [DEBUG][       Thread-599845][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:11:59,088 [DEBUG][       Thread-599845][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:11:59,089 [DEBUG][       Thread-599845][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:11:59,090 [DEBUG][       Thread-599845][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:11:59,090 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:11:59,090 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:11:59,145 [DEBUG][       Thread-599845][   transport.py][1871] : userauth is OK
2025-07-01 09:11:59,146 [DEBUG][       Thread-599845][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:11:59,146 [DEBUG][       Thread-599845][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:11:59,146 [DEBUG][       Thread-599845][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:11:59,146 [DEBUG][       Thread-599845][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:11:59,165 [ INFO][       Thread-599845][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:11:59,165 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:11:59,166 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:12:00,148 [DEBUG][       Thread-599845][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:12:00,148 [DEBUG][       Thread-599845][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:12:00,197 [DEBUG][       Thread-599845][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:12:00,197 [DEBUG][       Thread-599845][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:12:00,207 [DEBUG][       Thread-599845][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:12:00,217 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:12:00,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-07-01 09:12: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') -> 00000000
2025-07-01 09:12:00,236 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:12:00,237 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:12:00,237 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:12:00,245 [DEBUG][       Thread-599845][   transport.py][1871] : EOF in transport thread
2025-07-01 09:12:01,844 [DEBUG][Thread-599847 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:12:10,248 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:12:10,248 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:12:10,248 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:12:10,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-07-01 09:12:10,713 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 11, 51), 9.04, 52.73, 0.0, 37.76, 7.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:12:10,713 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:11:51
2025-07-01 09:12:10,797 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:12:10,801 [DEBUG][       Thread-599848][   transport.py][1871] : starting thread (client mode): 0x8155180
2025-07-01 09:12:10,801 [DEBUG][       Thread-599848][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:12:10,821 [DEBUG][       Thread-599848][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:12:10,821 [ INFO][       Thread-599848][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:12:10,825 [DEBUG][       Thread-599848][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:12:10,825 [DEBUG][       Thread-599848][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:12:10,825 [DEBUG][       Thread-599848][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:12:10,825 [DEBUG][       Thread-599848][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:12:10,825 [DEBUG][       Thread-599848][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:12:10,825 [DEBUG][       Thread-599848][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:12:10,825 [DEBUG][       Thread-599848][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:12:10,825 [DEBUG][       Thread-599848][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:12:10,825 [DEBUG][       Thread-599848][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:12:10,825 [DEBUG][       Thread-599848][   transport.py][1871] : client lang: <none>
2025-07-01 09:12:10,825 [DEBUG][       Thread-599848][   transport.py][1871] : server lang: <none>
2025-07-01 09:12:10,825 [DEBUG][       Thread-599848][   transport.py][1871] : kex follows: False
2025-07-01 09:12:10,825 [DEBUG][       Thread-599848][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:12:10,825 [DEBUG][       Thread-599848][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:12:10,825 [DEBUG][       Thread-599848][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:12:10,825 [DEBUG][       Thread-599848][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:12:10,825 [DEBUG][       Thread-599848][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:12:10,825 [DEBUG][       Thread-599848][   transport.py][1871] : Compression: none
2025-07-01 09:12:10,825 [DEBUG][       Thread-599848][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:12:10,841 [DEBUG][       Thread-599848][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:12:10,841 [DEBUG][       Thread-599848][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:12:10,842 [DEBUG][       Thread-599848][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:12:10,842 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:12:10,842 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:12:10,843 [DEBUG][       Thread-599848][   transport.py][1871] : userauth is OK
2025-07-01 09:12:10,867 [ INFO][       Thread-599848][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:12:10,867 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:12:10,878 [DEBUG][Thread-599850 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:12:11,627 [DEBUG][       Thread-599848][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:12:11,627 [DEBUG][       Thread-599848][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:12:11,668 [DEBUG][       Thread-599848][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:12:11,668 [DEBUG][       Thread-599848][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:12:11,671 [DEBUG][       Thread-599848][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:12:11,682 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:12:11,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:12:11,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:12:11,684 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:12:11,687 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:12:11,688 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:12:11,688 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:12:11,688 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:12:11,688 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.299595 -999.00   +7.80  31.36     57   +0.00 1 1 2 1 1   887    0 8.51 38.27 ----- 31.4 31.4 21.8 42.2 10.3 -23.5 9.6 -23.5 8.8 -23.0 9.5 -23.4
2025-07-01 09:12:11,688 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:12:11,688 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:12:11,688 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.299595
2025-07-01 09:12:11,688 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:12:11,688 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:12:11,688 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:12:11,688 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:12:11,688 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:12:11,689 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:11:51', tmtdew=9.04, humidity=52.73, cloud=0.0, wind=37.76, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:11:25.008', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:12:11,689 [DEBUG][       Thread-599848][   transport.py][1871] : EOF in transport thread
2025-07-01 09:12:11,763 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:12:11,772 [DEBUG][       Thread-599852][   transport.py][1871] : starting thread (client mode): 0x83c8400
2025-07-01 09:12:11,772 [DEBUG][       Thread-599852][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:12:11,787 [DEBUG][       Thread-599852][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:12:11,787 [ INFO][       Thread-599852][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:12:11,795 [DEBUG][       Thread-599852][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:12:11,795 [DEBUG][       Thread-599852][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:12:11,795 [DEBUG][       Thread-599852][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:12:11,795 [DEBUG][       Thread-599852][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:12:11,795 [DEBUG][       Thread-599852][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:12:11,795 [DEBUG][       Thread-599852][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:12:11,795 [DEBUG][       Thread-599852][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:12:11,795 [DEBUG][       Thread-599852][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:12:11,795 [DEBUG][       Thread-599852][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:12:11,795 [DEBUG][       Thread-599852][   transport.py][1871] : client lang: <none>
2025-07-01 09:12:11,795 [DEBUG][       Thread-599852][   transport.py][1871] : server lang: <none>
2025-07-01 09:12:11,795 [DEBUG][       Thread-599852][   transport.py][1871] : kex follows: False
2025-07-01 09:12:11,795 [DEBUG][       Thread-599852][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:12:11,795 [DEBUG][       Thread-599852][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:12:11,795 [DEBUG][       Thread-599852][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:12:11,795 [DEBUG][       Thread-599852][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:12:11,795 [DEBUG][       Thread-599852][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:12:11,795 [DEBUG][       Thread-599852][   transport.py][1871] : Compression: none
2025-07-01 09:12:11,795 [DEBUG][       Thread-599852][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:12:11,856 [DEBUG][       Thread-599852][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:12:11,856 [DEBUG][       Thread-599852][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:12:11,856 [DEBUG][       Thread-599852][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:12:11,856 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:12:11,856 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:12:11,917 [DEBUG][       Thread-599852][   transport.py][1871] : userauth is OK
2025-07-01 09:12:11,917 [DEBUG][       Thread-599852][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:12:11,917 [DEBUG][       Thread-599852][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:12:11,917 [DEBUG][       Thread-599852][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:12:11,917 [DEBUG][       Thread-599852][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:12:11,931 [ INFO][       Thread-599852][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:12:11,932 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:12:11,932 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:12:12,929 [DEBUG][       Thread-599852][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:12:12,929 [DEBUG][       Thread-599852][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:12:12,979 [DEBUG][       Thread-599852][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:12:12,979 [DEBUG][       Thread-599852][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:12:12,988 [DEBUG][       Thread-599852][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:12:12,996 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:12:12,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-07-01 09:12:13,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-07-01 09:12:13,012 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:12:13,012 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:12:13,012 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:12:13,020 [DEBUG][       Thread-599852][   transport.py][1871] : EOF in transport thread
2025-07-01 09:12:19,642 [DEBUG][Thread-599854 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:12:19,897 [DEBUG][Thread-599855 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:12:23,022 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:12:23,022 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:12:23,023 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:12:23,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-07-01 09:12:23,473 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 11, 51), 9.04, 52.73, 0.0, 37.76, 7.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:12:23,473 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:11:51
2025-07-01 09:12:23,559 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:12:23,564 [DEBUG][       Thread-599856][   transport.py][1871] : starting thread (client mode): 0x81e5ae0
2025-07-01 09:12:23,564 [DEBUG][       Thread-599856][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:12:23,584 [DEBUG][       Thread-599856][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:12:23,584 [ INFO][       Thread-599856][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:12:23,588 [DEBUG][       Thread-599856][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:12:23,588 [DEBUG][       Thread-599856][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:12:23,588 [DEBUG][       Thread-599856][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:12:23,588 [DEBUG][       Thread-599856][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:12:23,588 [DEBUG][       Thread-599856][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:12:23,588 [DEBUG][       Thread-599856][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:12:23,588 [DEBUG][       Thread-599856][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:12:23,588 [DEBUG][       Thread-599856][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:12:23,588 [DEBUG][       Thread-599856][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:12:23,588 [DEBUG][       Thread-599856][   transport.py][1871] : client lang: <none>
2025-07-01 09:12:23,588 [DEBUG][       Thread-599856][   transport.py][1871] : server lang: <none>
2025-07-01 09:12:23,588 [DEBUG][       Thread-599856][   transport.py][1871] : kex follows: False
2025-07-01 09:12:23,588 [DEBUG][       Thread-599856][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:12:23,588 [DEBUG][       Thread-599856][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:12:23,588 [DEBUG][       Thread-599856][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:12:23,588 [DEBUG][       Thread-599856][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:12:23,588 [DEBUG][       Thread-599856][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:12:23,588 [DEBUG][       Thread-599856][   transport.py][1871] : Compression: none
2025-07-01 09:12:23,588 [DEBUG][       Thread-599856][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:12:23,604 [DEBUG][       Thread-599856][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:12:23,604 [DEBUG][       Thread-599856][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:12:23,604 [DEBUG][       Thread-599856][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:12:23,604 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:12:23,604 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:12:23,605 [DEBUG][       Thread-599856][   transport.py][1871] : userauth is OK
2025-07-01 09:12:23,629 [ INFO][       Thread-599856][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:12:23,629 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:12:24,249 [DEBUG][       Thread-599856][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:12:24,250 [DEBUG][       Thread-599856][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:12:24,292 [DEBUG][       Thread-599856][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:12:24,292 [DEBUG][       Thread-599856][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:12:24,295 [DEBUG][       Thread-599856][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:12:24,306 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:12:24,306 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:12:24,307 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:12:24,308 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:12:24,310 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:12:24,310 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:12:24,310 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:12:24,311 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:12:24,311 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.299942 -999.00   +7.90  42.61     57   +0.00 1 1 2 1 1   887    0 8.80 42.22 ----- 42.6 42.6 19.2 51.0 10.3 -23.7 9.6 -23.5 8.8 -22.9 9.5 -22.6
2025-07-01 09:12:24,311 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:12:24,311 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:12:24,311 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.299942
2025-07-01 09:12:24,311 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:12:24,311 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:12:24,311 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:12:24,311 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:12:24,311 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:12:24,311 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:11:51', tmtdew=9.04, humidity=52.73, cloud=0.0, wind=37.76, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:11:54.989', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:12:24,311 [DEBUG][       Thread-599856][   transport.py][1871] : EOF in transport thread
2025-07-01 09:12:24,386 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:12:24,398 [DEBUG][       Thread-599859][   transport.py][1871] : starting thread (client mode): 0x81553f0
2025-07-01 09:12:24,398 [DEBUG][       Thread-599859][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:12:24,414 [DEBUG][       Thread-599859][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:12:24,414 [ INFO][       Thread-599859][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:12:24,421 [DEBUG][       Thread-599859][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:12:24,421 [DEBUG][       Thread-599859][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:12:24,421 [DEBUG][       Thread-599859][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:12:24,421 [DEBUG][       Thread-599859][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:12:24,421 [DEBUG][       Thread-599859][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:12:24,421 [DEBUG][       Thread-599859][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:12:24,421 [DEBUG][       Thread-599859][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:12:24,421 [DEBUG][       Thread-599859][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:12:24,421 [DEBUG][       Thread-599859][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:12:24,421 [DEBUG][       Thread-599859][   transport.py][1871] : client lang: <none>
2025-07-01 09:12:24,421 [DEBUG][       Thread-599859][   transport.py][1871] : server lang: <none>
2025-07-01 09:12:24,421 [DEBUG][       Thread-599859][   transport.py][1871] : kex follows: False
2025-07-01 09:12:24,421 [DEBUG][       Thread-599859][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:12:24,421 [DEBUG][       Thread-599859][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:12:24,421 [DEBUG][       Thread-599859][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:12:24,421 [DEBUG][       Thread-599859][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:12:24,421 [DEBUG][       Thread-599859][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:12:24,421 [DEBUG][       Thread-599859][   transport.py][1871] : Compression: none
2025-07-01 09:12:24,421 [DEBUG][       Thread-599859][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:12:24,481 [DEBUG][       Thread-599859][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:12:24,481 [DEBUG][       Thread-599859][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:12:24,481 [DEBUG][       Thread-599859][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:12:24,481 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:12:24,481 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:12:24,538 [DEBUG][       Thread-599859][   transport.py][1871] : userauth is OK
2025-07-01 09:12:24,538 [DEBUG][       Thread-599859][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:12:24,538 [DEBUG][       Thread-599859][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:12:24,538 [DEBUG][       Thread-599859][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:12:24,538 [DEBUG][       Thread-599859][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:12:24,554 [ INFO][       Thread-599859][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:12:24,554 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:12:24,554 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:12:25,584 [DEBUG][       Thread-599859][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:12:25,584 [DEBUG][       Thread-599859][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:12:25,632 [DEBUG][       Thread-599859][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:12:25,632 [DEBUG][       Thread-599859][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:12:25,642 [DEBUG][       Thread-599859][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:12:25,651 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:12:25,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-07-01 09:12:25,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-07-01 09:12:25,670 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:12:25,671 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:12:25,671 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:12:25,680 [DEBUG][       Thread-599859][   transport.py][1871] : EOF in transport thread
2025-07-01 09:12:28,916 [DEBUG][Thread-599861 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:12:35,682 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:12:35,682 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:12:35,682 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:12:35,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-07-01 09:12:36,161 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 12, 22), 9.12, 52.67, 0.0, 34.67, 7.97, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:12:36,161 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:12:22
2025-07-01 09:12:36,244 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:12:36,249 [DEBUG][       Thread-599862][   transport.py][1871] : starting thread (client mode): 0x81e55a0
2025-07-01 09:12:36,249 [DEBUG][       Thread-599862][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:12:36,269 [DEBUG][       Thread-599862][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:12:36,269 [ INFO][       Thread-599862][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:12:36,270 [DEBUG][       Thread-599862][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:12:36,270 [DEBUG][       Thread-599862][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:12:36,270 [DEBUG][       Thread-599862][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:12:36,270 [DEBUG][       Thread-599862][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:12:36,270 [DEBUG][       Thread-599862][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:12:36,270 [DEBUG][       Thread-599862][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:12:36,270 [DEBUG][       Thread-599862][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:12:36,271 [DEBUG][       Thread-599862][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:12:36,271 [DEBUG][       Thread-599862][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:12:36,271 [DEBUG][       Thread-599862][   transport.py][1871] : client lang: <none>
2025-07-01 09:12:36,271 [DEBUG][       Thread-599862][   transport.py][1871] : server lang: <none>
2025-07-01 09:12:36,271 [DEBUG][       Thread-599862][   transport.py][1871] : kex follows: False
2025-07-01 09:12:36,271 [DEBUG][       Thread-599862][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:12:36,271 [DEBUG][       Thread-599862][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:12:36,271 [DEBUG][       Thread-599862][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:12:36,271 [DEBUG][       Thread-599862][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:12:36,271 [DEBUG][       Thread-599862][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:12:36,271 [DEBUG][       Thread-599862][   transport.py][1871] : Compression: none
2025-07-01 09:12:36,271 [DEBUG][       Thread-599862][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:12:36,289 [DEBUG][       Thread-599862][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:12:36,290 [DEBUG][       Thread-599862][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:12:36,290 [DEBUG][       Thread-599862][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:12:36,290 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:12:36,290 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:12:36,292 [DEBUG][       Thread-599862][   transport.py][1871] : userauth is OK
2025-07-01 09:12:36,316 [ INFO][       Thread-599862][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:12:36,316 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:12:36,978 [DEBUG][       Thread-599862][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:12:36,978 [DEBUG][       Thread-599862][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:12:37,021 [DEBUG][       Thread-599862][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:12:37,021 [DEBUG][       Thread-599862][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:12:37,024 [DEBUG][       Thread-599862][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:12:37,035 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:12:37,035 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:12:37,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:12:37,039 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:12:37,044 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:12:37,046 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:12:37,046 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:12:37,047 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:12:37,047 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.299942 -999.00   +7.90  42.61     57   +0.00 1 1 2 1 1   887    0 8.80 42.22 ----- 42.6 42.6 19.2 51.0 10.3 -23.7 9.6 -23.5 8.8 -22.9 9.5 -22.6
2025-07-01 09:12:37,047 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:12:37,047 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:12:37,047 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.299942
2025-07-01 09:12:37,048 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:12:37,048 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:12:37,048 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:12:37,048 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:12:37,048 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:12:37,049 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:12:22', tmtdew=9.12, humidity=52.67, cloud=0.0, wind=34.67, temperature=7.97, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:11:54.989', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:12:37,050 [DEBUG][       Thread-599862][   transport.py][1871] : EOF in transport thread
2025-07-01 09:12:37,133 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:12:37,143 [DEBUG][       Thread-599865][   transport.py][1871] : starting thread (client mode): 0x83c8490
2025-07-01 09:12:37,143 [DEBUG][       Thread-599865][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:12:37,159 [DEBUG][       Thread-599865][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:12:37,159 [ INFO][       Thread-599865][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:12:37,167 [DEBUG][       Thread-599865][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:12:37,167 [DEBUG][       Thread-599865][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:12:37,167 [DEBUG][       Thread-599865][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:12:37,167 [DEBUG][       Thread-599865][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:12:37,167 [DEBUG][       Thread-599865][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:12:37,167 [DEBUG][       Thread-599865][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:12:37,167 [DEBUG][       Thread-599865][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:12:37,167 [DEBUG][       Thread-599865][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:12:37,167 [DEBUG][       Thread-599865][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:12:37,167 [DEBUG][       Thread-599865][   transport.py][1871] : client lang: <none>
2025-07-01 09:12:37,167 [DEBUG][       Thread-599865][   transport.py][1871] : server lang: <none>
2025-07-01 09:12:37,167 [DEBUG][       Thread-599865][   transport.py][1871] : kex follows: False
2025-07-01 09:12:37,167 [DEBUG][       Thread-599865][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:12:37,167 [DEBUG][       Thread-599865][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:12:37,167 [DEBUG][       Thread-599865][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:12:37,167 [DEBUG][       Thread-599865][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:12:37,167 [DEBUG][       Thread-599865][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:12:37,167 [DEBUG][       Thread-599865][   transport.py][1871] : Compression: none
2025-07-01 09:12:37,167 [DEBUG][       Thread-599865][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:12:37,228 [DEBUG][       Thread-599865][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:12:37,228 [DEBUG][       Thread-599865][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:12:37,229 [DEBUG][       Thread-599865][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:12:37,229 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:12:37,230 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:12:37,287 [DEBUG][       Thread-599865][   transport.py][1871] : userauth is OK
2025-07-01 09:12:37,287 [DEBUG][       Thread-599865][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:12:37,287 [DEBUG][       Thread-599865][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:12:37,287 [DEBUG][       Thread-599865][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:12:37,287 [DEBUG][       Thread-599865][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:12:37,306 [ INFO][       Thread-599865][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:12:37,306 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:12:37,307 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:12:37,937 [DEBUG][Thread-599867 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:12:38,337 [DEBUG][       Thread-599865][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:12:38,338 [DEBUG][       Thread-599865][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:12:38,387 [DEBUG][       Thread-599865][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:12:38,388 [DEBUG][       Thread-599865][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:12:38,397 [DEBUG][       Thread-599865][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:12:38,405 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:12:38,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-07-01 09:12:38,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-07-01 09:12:38,423 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:12:38,423 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:12:38,423 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:12:38,431 [DEBUG][       Thread-599865][   transport.py][1871] : EOF in transport thread
2025-07-01 09:12:46,972 [DEBUG][Thread-599868 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:12:48,434 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:12:48,434 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:12:48,434 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:12:48,437 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:12:48,918 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 12, 22), 9.12, 52.67, 0.0, 34.67, 7.97, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:12:48,918 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:12:22
2025-07-01 09:12:48,969 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:12:48,969 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:12:49,002 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:12:49,006 [DEBUG][       Thread-599869][   transport.py][1871] : starting thread (client mode): 0x81e7d30
2025-07-01 09:12:49,006 [DEBUG][       Thread-599869][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:12:49,025 [DEBUG][       Thread-599869][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:12:49,025 [ INFO][       Thread-599869][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:12:49,028 [DEBUG][       Thread-599869][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:12:49,028 [DEBUG][       Thread-599869][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:12:49,028 [DEBUG][       Thread-599869][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:12:49,028 [DEBUG][       Thread-599869][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:12:49,028 [DEBUG][       Thread-599869][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:12:49,028 [DEBUG][       Thread-599869][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:12:49,028 [DEBUG][       Thread-599869][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:12:49,028 [DEBUG][       Thread-599869][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:12:49,028 [DEBUG][       Thread-599869][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:12:49,028 [DEBUG][       Thread-599869][   transport.py][1871] : client lang: <none>
2025-07-01 09:12:49,028 [DEBUG][       Thread-599869][   transport.py][1871] : server lang: <none>
2025-07-01 09:12:49,028 [DEBUG][       Thread-599869][   transport.py][1871] : kex follows: False
2025-07-01 09:12:49,028 [DEBUG][       Thread-599869][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:12:49,028 [DEBUG][       Thread-599869][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:12:49,028 [DEBUG][       Thread-599869][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:12:49,028 [DEBUG][       Thread-599869][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:12:49,028 [DEBUG][       Thread-599869][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:12:49,028 [DEBUG][       Thread-599869][   transport.py][1871] : Compression: none
2025-07-01 09:12:49,028 [DEBUG][       Thread-599869][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:12:49,045 [DEBUG][       Thread-599869][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:12:49,045 [DEBUG][       Thread-599869][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:12:49,046 [DEBUG][       Thread-599869][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:12:49,046 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:12:49,046 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:12:49,048 [DEBUG][       Thread-599869][   transport.py][1871] : userauth is OK
2025-07-01 09:12:49,073 [ INFO][       Thread-599869][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:12:49,073 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:12:49,644 [DEBUG][       Thread-599869][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:12:49,644 [DEBUG][       Thread-599869][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:12:49,688 [DEBUG][       Thread-599869][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:12:49,688 [DEBUG][       Thread-599869][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:12:49,690 [DEBUG][       Thread-599869][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:12:49,702 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:12:49,703 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:12:49,703 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:12:49,704 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:12:49,706 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:12:49,706 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:12:49,706 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:12:49,706 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:12:49,706 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.300290 -999.00   +7.90  40.31     57   +0.00 1 1 2 1 1   887    0 8.61 41.46 ----- 40.3 40.3 22.0 50.5 10.3 -23.7 9.6 -23.5 8.8 -22.6 9.5 -22.6
2025-07-01 09:12:49,706 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:12:49,706 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:12:49,706 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.300290
2025-07-01 09:12:49,706 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:12:49,707 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:12:49,707 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:12:49,707 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:12:49,707 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:12:49,707 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:12:22', tmtdew=9.12, humidity=52.67, cloud=0.0, wind=34.67, temperature=7.97, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:12:25.056', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:12:49,707 [DEBUG][       Thread-599869][   transport.py][1871] : EOF in transport thread
2025-07-01 09:12:49,781 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:12:49,793 [DEBUG][       Thread-599872][   transport.py][1871] : starting thread (client mode): 0x8154550
2025-07-01 09:12:49,793 [DEBUG][       Thread-599872][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:12:49,808 [DEBUG][       Thread-599872][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:12:49,808 [ INFO][       Thread-599872][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:12:49,816 [DEBUG][       Thread-599872][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:12:49,816 [DEBUG][       Thread-599872][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:12:49,816 [DEBUG][       Thread-599872][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:12:49,816 [DEBUG][       Thread-599872][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:12:49,816 [DEBUG][       Thread-599872][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:12:49,816 [DEBUG][       Thread-599872][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:12:49,816 [DEBUG][       Thread-599872][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:12:49,816 [DEBUG][       Thread-599872][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:12:49,816 [DEBUG][       Thread-599872][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:12:49,816 [DEBUG][       Thread-599872][   transport.py][1871] : client lang: <none>
2025-07-01 09:12:49,816 [DEBUG][       Thread-599872][   transport.py][1871] : server lang: <none>
2025-07-01 09:12:49,816 [DEBUG][       Thread-599872][   transport.py][1871] : kex follows: False
2025-07-01 09:12:49,816 [DEBUG][       Thread-599872][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:12:49,816 [DEBUG][       Thread-599872][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:12:49,816 [DEBUG][       Thread-599872][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:12:49,816 [DEBUG][       Thread-599872][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:12:49,816 [DEBUG][       Thread-599872][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:12:49,816 [DEBUG][       Thread-599872][   transport.py][1871] : Compression: none
2025-07-01 09:12:49,816 [DEBUG][       Thread-599872][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:12:49,872 [DEBUG][       Thread-599872][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:12:49,872 [DEBUG][       Thread-599872][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:12:49,872 [DEBUG][       Thread-599872][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:12:49,872 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:12:49,872 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:12:49,929 [DEBUG][       Thread-599872][   transport.py][1871] : userauth is OK
2025-07-01 09:12:49,929 [DEBUG][       Thread-599872][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:12:49,929 [DEBUG][       Thread-599872][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:12:49,929 [DEBUG][       Thread-599872][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:12:49,929 [DEBUG][       Thread-599872][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:12:49,943 [ INFO][       Thread-599872][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:12:49,943 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:12:49,943 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:12:50,970 [DEBUG][       Thread-599872][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:12:50,970 [DEBUG][       Thread-599872][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:12:51,019 [DEBUG][       Thread-599872][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:12:51,019 [DEBUG][       Thread-599872][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:12:51,028 [DEBUG][       Thread-599872][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:12:51,037 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:12:51,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-07-01 09:12:51,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-07-01 09:12:51,053 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:12:51,053 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:12:51,053 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:12:51,061 [DEBUG][       Thread-599872][   transport.py][1871] : EOF in transport thread
2025-07-01 09:12:55,988 [DEBUG][Thread-599874 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:13:01,060 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:13:01,060 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:13:01,060 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:13:01,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-07-01 09:13:01,536 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 12, 55), 9.11, 52.72, 0.0, 36.77, 7.98, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:13:01,536 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:12:55
2025-07-01 09:13:01,621 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:13:01,625 [DEBUG][       Thread-599875][   transport.py][1871] : starting thread (client mode): 0x81e5270
2025-07-01 09:13:01,625 [DEBUG][       Thread-599875][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:13:01,645 [DEBUG][       Thread-599875][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:13:01,645 [ INFO][       Thread-599875][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:13:01,649 [DEBUG][       Thread-599875][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:13:01,649 [DEBUG][       Thread-599875][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:13:01,649 [DEBUG][       Thread-599875][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:13:01,649 [DEBUG][       Thread-599875][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:13:01,649 [DEBUG][       Thread-599875][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:13:01,649 [DEBUG][       Thread-599875][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:13:01,649 [DEBUG][       Thread-599875][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:13:01,649 [DEBUG][       Thread-599875][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:13:01,649 [DEBUG][       Thread-599875][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:13:01,649 [DEBUG][       Thread-599875][   transport.py][1871] : client lang: <none>
2025-07-01 09:13:01,649 [DEBUG][       Thread-599875][   transport.py][1871] : server lang: <none>
2025-07-01 09:13:01,649 [DEBUG][       Thread-599875][   transport.py][1871] : kex follows: False
2025-07-01 09:13:01,649 [DEBUG][       Thread-599875][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:13:01,649 [DEBUG][       Thread-599875][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:13:01,649 [DEBUG][       Thread-599875][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:13:01,649 [DEBUG][       Thread-599875][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:13:01,649 [DEBUG][       Thread-599875][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:13:01,649 [DEBUG][       Thread-599875][   transport.py][1871] : Compression: none
2025-07-01 09:13:01,649 [DEBUG][       Thread-599875][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:13:01,664 [DEBUG][       Thread-599875][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:13:01,664 [DEBUG][       Thread-599875][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:13:01,664 [DEBUG][       Thread-599875][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:13:01,664 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:13:01,664 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:13:01,665 [DEBUG][       Thread-599875][   transport.py][1871] : userauth is OK
2025-07-01 09:13:01,688 [ INFO][       Thread-599875][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:13:01,688 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:13:02,336 [DEBUG][       Thread-599875][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:13:02,336 [DEBUG][       Thread-599875][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:13:02,377 [DEBUG][       Thread-599875][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:13:02,377 [DEBUG][       Thread-599875][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:13:02,381 [DEBUG][       Thread-599875][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:13:02,394 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:13:02,395 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:13:02,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:13:02,398 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:13:02,404 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:13:02,406 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:13:02,406 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:13:02,407 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:13:02,407 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.300290 -999.00   +7.90  40.31     57   +0.00 1 1 2 1 1   887    0 8.61 41.46 ----- 40.3 40.3 22.0 50.5 10.3 -23.7 9.6 -23.5 8.8 -22.6 9.5 -22.6
2025-07-01 09:13:02,407 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:13:02,407 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:13:02,407 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.300290
2025-07-01 09:13:02,408 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:13:02,408 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:13:02,408 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:13:02,409 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:13:02,409 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:13:02,409 [DEBUG][       Thread-599875][   transport.py][1871] : EOF in transport thread
2025-07-01 09:13:02,409 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:12:55', tmtdew=9.11, humidity=52.72, cloud=0.0, wind=36.77, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:12:25.056', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:13:02,504 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:13:05,008 [DEBUG][Thread-599878 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:13:14,050 [DEBUG][Thread-599879 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:13:19,692 [DEBUG][Thread-599880 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:13:23,072 [DEBUG][Thread-599881 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:13:32,088 [DEBUG][Thread-599882 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:13:41,109 [DEBUG][Thread-599883 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:13:49,107 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:13:49,109 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:13:50,131 [DEBUG][Thread-599884 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:13:59,153 [DEBUG][Thread-599885 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:14:08,171 [DEBUG][Thread-599886 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:14:17,192 [DEBUG][Thread-599887 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:14:19,742 [DEBUG][Thread-599888 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:14:26,217 [DEBUG][Thread-599889 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:14:35,239 [DEBUG][Thread-599890 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:14:44,262 [DEBUG][Thread-599891 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:14:49,248 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:14:49,250 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:14:53,283 [DEBUG][Thread-599892 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:15:02,305 [DEBUG][Thread-599893 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:15:11,327 [DEBUG][Thread-599894 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:15:12,276 [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-07-01 09:15:19,789 [DEBUG][Thread-599895 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:15:20,348 [DEBUG][Thread-599896 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:15:22,281 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:15:22,281 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:15:22,281 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:15:22,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-07-01 09:15:22,785 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 15, 4), 9.22, 52.33, 0.0, 33.56, 8.15, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:15:22,785 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:15:04
2025-07-01 09:15:22,870 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:15:22,876 [DEBUG][       Thread-599897][   transport.py][1871] : starting thread (client mode): 0x81a7250
2025-07-01 09:15:22,876 [DEBUG][       Thread-599897][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:15:22,896 [DEBUG][       Thread-599897][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:15:22,896 [ INFO][       Thread-599897][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:15:22,900 [DEBUG][       Thread-599897][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:15:22,900 [DEBUG][       Thread-599897][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:15:22,900 [DEBUG][       Thread-599897][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:15:22,900 [DEBUG][       Thread-599897][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:15:22,900 [DEBUG][       Thread-599897][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:15:22,900 [DEBUG][       Thread-599897][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:15:22,900 [DEBUG][       Thread-599897][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:15:22,900 [DEBUG][       Thread-599897][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:15:22,900 [DEBUG][       Thread-599897][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:15:22,900 [DEBUG][       Thread-599897][   transport.py][1871] : client lang: <none>
2025-07-01 09:15:22,900 [DEBUG][       Thread-599897][   transport.py][1871] : server lang: <none>
2025-07-01 09:15:22,900 [DEBUG][       Thread-599897][   transport.py][1871] : kex follows: False
2025-07-01 09:15:22,900 [DEBUG][       Thread-599897][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:15:22,900 [DEBUG][       Thread-599897][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:15:22,900 [DEBUG][       Thread-599897][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:15:22,900 [DEBUG][       Thread-599897][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:15:22,900 [DEBUG][       Thread-599897][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:15:22,900 [DEBUG][       Thread-599897][   transport.py][1871] : Compression: none
2025-07-01 09:15:22,901 [DEBUG][       Thread-599897][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:15:22,917 [DEBUG][       Thread-599897][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:15:22,918 [DEBUG][       Thread-599897][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:15:22,918 [DEBUG][       Thread-599897][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:15:22,919 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:15:22,919 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:15:22,920 [DEBUG][       Thread-599897][   transport.py][1871] : userauth is OK
2025-07-01 09:15:22,944 [ INFO][       Thread-599897][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:15:22,944 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:15:23,613 [DEBUG][       Thread-599897][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:15:23,613 [DEBUG][       Thread-599897][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:15:23,656 [DEBUG][       Thread-599897][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:15:23,656 [DEBUG][       Thread-599897][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:15:23,659 [DEBUG][       Thread-599897][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:15:23,672 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:15:23,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:15:23,673 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:15:23,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:15:23,678 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:15:23,678 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:15:23,678 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:15:23,678 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:15:23,678 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.302026 -999.00   +7.90  40.86     57   +0.10 1 1 2 1 1   887    0 9.10 47.94 ----- 40.9 40.9 20.4 49.0 10.4 -23.6 9.7 -23.3 8.8 -22.9 9.6 -22.9
2025-07-01 09:15:23,678 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:15:23,678 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:15:23,678 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.302026
2025-07-01 09:15:23,679 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:15:23,679 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:15:23,679 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:15:23,679 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:15:23,679 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:15:23,679 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:15:04', tmtdew=9.22, humidity=52.33, cloud=0.0, wind=33.56, temperature=8.15, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:14:55.046', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:15:23,680 [DEBUG][       Thread-599897][   transport.py][1871] : EOF in transport thread
2025-07-01 09:15:23,753 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:15:23,765 [DEBUG][       Thread-599900][   transport.py][1871] : starting thread (client mode): 0x83c86a0
2025-07-01 09:15:23,765 [DEBUG][       Thread-599900][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:15:23,780 [DEBUG][       Thread-599900][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:15:23,780 [ INFO][       Thread-599900][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:15:23,788 [DEBUG][       Thread-599900][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:15:23,788 [DEBUG][       Thread-599900][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:15:23,788 [DEBUG][       Thread-599900][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:15:23,788 [DEBUG][       Thread-599900][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:15:23,788 [DEBUG][       Thread-599900][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:15:23,788 [DEBUG][       Thread-599900][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:15:23,788 [DEBUG][       Thread-599900][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:15:23,788 [DEBUG][       Thread-599900][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:15:23,788 [DEBUG][       Thread-599900][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:15:23,788 [DEBUG][       Thread-599900][   transport.py][1871] : client lang: <none>
2025-07-01 09:15:23,788 [DEBUG][       Thread-599900][   transport.py][1871] : server lang: <none>
2025-07-01 09:15:23,788 [DEBUG][       Thread-599900][   transport.py][1871] : kex follows: False
2025-07-01 09:15:23,788 [DEBUG][       Thread-599900][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:15:23,788 [DEBUG][       Thread-599900][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:15:23,788 [DEBUG][       Thread-599900][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:15:23,788 [DEBUG][       Thread-599900][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:15:23,788 [DEBUG][       Thread-599900][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:15:23,788 [DEBUG][       Thread-599900][   transport.py][1871] : Compression: none
2025-07-01 09:15:23,788 [DEBUG][       Thread-599900][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:15:23,844 [DEBUG][       Thread-599900][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:15:23,844 [DEBUG][       Thread-599900][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:15:23,844 [DEBUG][       Thread-599900][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:15:23,845 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:15:23,845 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:15:23,907 [DEBUG][       Thread-599900][   transport.py][1871] : userauth is OK
2025-07-01 09:15:23,907 [DEBUG][       Thread-599900][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:15:23,907 [DEBUG][       Thread-599900][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:15:23,907 [DEBUG][       Thread-599900][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:15:23,907 [DEBUG][       Thread-599900][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:15:23,924 [ INFO][       Thread-599900][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:15:23,925 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:15:23,925 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:15:24,915 [DEBUG][       Thread-599900][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:15:24,915 [DEBUG][       Thread-599900][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:15:24,964 [DEBUG][       Thread-599900][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:15:24,964 [DEBUG][       Thread-599900][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:15:24,974 [DEBUG][       Thread-599900][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:15:24,986 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:15:24,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-07-01 09:15:24,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-07-01 09:15:25,002 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:15:25,002 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:15:25,002 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:15:25,010 [DEBUG][       Thread-599900][   transport.py][1871] : EOF in transport thread
2025-07-01 09:15:29,369 [DEBUG][Thread-599902 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:15:35,013 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:15:35,013 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:15:35,013 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:15:35,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-07-01 09:15:35,511 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 15, 4), 9.22, 52.33, 0.0, 33.56, 8.15, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:15:35,511 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:15:04
2025-07-01 09:15:35,597 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:15:35,603 [DEBUG][       Thread-599903][   transport.py][1871] : starting thread (client mode): 0x8155720
2025-07-01 09:15:35,604 [DEBUG][       Thread-599903][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:15:35,626 [DEBUG][       Thread-599903][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:15:35,626 [ INFO][       Thread-599903][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:15:35,629 [DEBUG][       Thread-599903][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:15:35,629 [DEBUG][       Thread-599903][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:15:35,629 [DEBUG][       Thread-599903][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:15:35,629 [DEBUG][       Thread-599903][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:15:35,629 [DEBUG][       Thread-599903][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:15:35,629 [DEBUG][       Thread-599903][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:15:35,630 [DEBUG][       Thread-599903][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:15:35,630 [DEBUG][       Thread-599903][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:15:35,630 [DEBUG][       Thread-599903][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:15:35,630 [DEBUG][       Thread-599903][   transport.py][1871] : client lang: <none>
2025-07-01 09:15:35,630 [DEBUG][       Thread-599903][   transport.py][1871] : server lang: <none>
2025-07-01 09:15:35,630 [DEBUG][       Thread-599903][   transport.py][1871] : kex follows: False
2025-07-01 09:15:35,630 [DEBUG][       Thread-599903][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:15:35,630 [DEBUG][       Thread-599903][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:15:35,630 [DEBUG][       Thread-599903][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:15:35,630 [DEBUG][       Thread-599903][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:15:35,630 [DEBUG][       Thread-599903][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:15:35,630 [DEBUG][       Thread-599903][   transport.py][1871] : Compression: none
2025-07-01 09:15:35,630 [DEBUG][       Thread-599903][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:15:35,649 [DEBUG][       Thread-599903][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:15:35,649 [DEBUG][       Thread-599903][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:15:35,650 [DEBUG][       Thread-599903][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:15:35,650 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:15:35,650 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:15:35,651 [DEBUG][       Thread-599903][   transport.py][1871] : userauth is OK
2025-07-01 09:15:35,665 [ INFO][       Thread-599903][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:15:35,666 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:15:36,263 [DEBUG][       Thread-599903][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:15:36,264 [DEBUG][       Thread-599903][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:15:36,305 [DEBUG][       Thread-599903][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:15:36,305 [DEBUG][       Thread-599903][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:15:36,309 [DEBUG][       Thread-599903][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:15:36,322 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:15:36,322 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:15:36,324 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:15:36,326 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:15:36,331 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:15:36,333 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:15:36,333 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:15:36,334 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:15:36,334 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.302026 -999.00   +7.90  40.86     57   +0.10 1 1 2 1 1   887    0 9.10 47.94 ----- 40.9 40.9 20.4 49.0 10.4 -23.6 9.7 -23.3 8.8 -22.9 9.6 -22.9
2025-07-01 09:15:36,334 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:15:36,334 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:15:36,334 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.302026
2025-07-01 09:15:36,335 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:15:36,335 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:15:36,335 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:15:36,335 [DEBUG][       Thread-599903][   transport.py][1871] : EOF in transport thread
2025-07-01 09:15:36,335 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:15:36,336 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:15:36,336 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:15:04', tmtdew=9.22, humidity=52.33, cloud=0.0, wind=33.56, temperature=8.15, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:14:55.046', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:15:36,412 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:15:36,424 [DEBUG][       Thread-599906][   transport.py][1871] : starting thread (client mode): 0x81a6410
2025-07-01 09:15:36,424 [DEBUG][       Thread-599906][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:15:36,440 [DEBUG][       Thread-599906][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:15:36,440 [ INFO][       Thread-599906][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:15:36,447 [DEBUG][       Thread-599906][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:15:36,448 [DEBUG][       Thread-599906][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:15:36,448 [DEBUG][       Thread-599906][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:15:36,448 [DEBUG][       Thread-599906][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:15:36,448 [DEBUG][       Thread-599906][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:15:36,448 [DEBUG][       Thread-599906][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:15:36,448 [DEBUG][       Thread-599906][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:15:36,448 [DEBUG][       Thread-599906][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:15:36,448 [DEBUG][       Thread-599906][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:15:36,448 [DEBUG][       Thread-599906][   transport.py][1871] : client lang: <none>
2025-07-01 09:15:36,448 [DEBUG][       Thread-599906][   transport.py][1871] : server lang: <none>
2025-07-01 09:15:36,448 [DEBUG][       Thread-599906][   transport.py][1871] : kex follows: False
2025-07-01 09:15:36,448 [DEBUG][       Thread-599906][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:15:36,448 [DEBUG][       Thread-599906][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:15:36,448 [DEBUG][       Thread-599906][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:15:36,448 [DEBUG][       Thread-599906][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:15:36,448 [DEBUG][       Thread-599906][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:15:36,449 [DEBUG][       Thread-599906][   transport.py][1871] : Compression: none
2025-07-01 09:15:36,449 [DEBUG][       Thread-599906][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:15:36,505 [DEBUG][       Thread-599906][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:15:36,506 [DEBUG][       Thread-599906][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:15:36,506 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:15:36,507 [DEBUG][       Thread-599906][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:15:36,507 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:15:36,565 [DEBUG][       Thread-599906][   transport.py][1871] : userauth is OK
2025-07-01 09:15:36,565 [DEBUG][       Thread-599906][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:15:36,565 [DEBUG][       Thread-599906][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:15:36,565 [DEBUG][       Thread-599906][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:15:36,566 [DEBUG][       Thread-599906][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:15:36,584 [ INFO][       Thread-599906][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:15:36,585 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:15:36,585 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:15:37,592 [DEBUG][       Thread-599906][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:15:37,593 [DEBUG][       Thread-599906][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:15:37,644 [DEBUG][       Thread-599906][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:15:37,644 [DEBUG][       Thread-599906][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:15:37,653 [DEBUG][       Thread-599906][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:15:37,662 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:15:37,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-07-01 09:15:37,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') -> 00000000
2025-07-01 09:15:37,681 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:15:37,681 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:15:37,681 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:15:37,689 [DEBUG][       Thread-599906][   transport.py][1871] : EOF in transport thread
2025-07-01 09:15:38,402 [DEBUG][Thread-599908 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:15:47,425 [DEBUG][Thread-599909 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:15:47,691 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:15:47,692 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:15:47,692 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:15:47,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-07-01 09:15:48,198 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 15, 4), 9.22, 52.33, 0.0, 33.56, 8.15, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:15:48,198 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:15:04
2025-07-01 09:15:48,283 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:15:48,287 [DEBUG][       Thread-599910][   transport.py][1871] : starting thread (client mode): 0x81e6350
2025-07-01 09:15:48,287 [DEBUG][       Thread-599910][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:15:48,309 [DEBUG][       Thread-599910][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:15:48,309 [ INFO][       Thread-599910][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:15:48,312 [DEBUG][       Thread-599910][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:15:48,312 [DEBUG][       Thread-599910][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:15:48,312 [DEBUG][       Thread-599910][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:15:48,313 [DEBUG][       Thread-599910][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:15:48,313 [DEBUG][       Thread-599910][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:15:48,313 [DEBUG][       Thread-599910][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:15:48,313 [DEBUG][       Thread-599910][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:15:48,313 [DEBUG][       Thread-599910][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:15:48,313 [DEBUG][       Thread-599910][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:15:48,313 [DEBUG][       Thread-599910][   transport.py][1871] : client lang: <none>
2025-07-01 09:15:48,313 [DEBUG][       Thread-599910][   transport.py][1871] : server lang: <none>
2025-07-01 09:15:48,313 [DEBUG][       Thread-599910][   transport.py][1871] : kex follows: False
2025-07-01 09:15:48,313 [DEBUG][       Thread-599910][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:15:48,313 [DEBUG][       Thread-599910][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:15:48,313 [DEBUG][       Thread-599910][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:15:48,313 [DEBUG][       Thread-599910][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:15:48,313 [DEBUG][       Thread-599910][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:15:48,313 [DEBUG][       Thread-599910][   transport.py][1871] : Compression: none
2025-07-01 09:15:48,313 [DEBUG][       Thread-599910][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:15:48,330 [DEBUG][       Thread-599910][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:15:48,331 [DEBUG][       Thread-599910][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:15:48,331 [DEBUG][       Thread-599910][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:15:48,331 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:15:48,331 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:15:48,333 [DEBUG][       Thread-599910][   transport.py][1871] : userauth is OK
2025-07-01 09:15:48,346 [ INFO][       Thread-599910][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:15:48,347 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:15:48,983 [DEBUG][       Thread-599910][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:15:48,984 [DEBUG][       Thread-599910][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:15:49,025 [DEBUG][       Thread-599910][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:15:49,025 [DEBUG][       Thread-599910][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:15:49,028 [DEBUG][       Thread-599910][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:15:49,040 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:15:49,041 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:15:49,043 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:15:49,045 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:15:49,050 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:15:49,052 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:15:49,052 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:15:49,053 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:15:49,053 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.302373 -999.00   +8.00  26.65     57   +0.00 1 1 1 1 1   887    0 8.91 44.63 ----- 26.6 26.6 8.2 41.1 10.5 -23.7 9.7 -23.1 8.9 -23.1 9.7 -22.8
2025-07-01 09:15:49,053 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:15:49,053 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:15:49,053 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.302373
2025-07-01 09:15:49,053 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:15:49,054 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:15:49,054 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:15:49,054 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:15:49,054 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:15:49,054 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:15:04', tmtdew=9.22, humidity=52.33, cloud=0.0, wind=33.56, temperature=8.15, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:15:25.027', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:15:49,055 [DEBUG][       Thread-599910][   transport.py][1871] : EOF in transport thread
2025-07-01 09:15:49,138 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:15:49,152 [DEBUG][       Thread-599913][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 09:15:49,152 [DEBUG][       Thread-599913][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:15:49,169 [DEBUG][       Thread-599913][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:15:49,169 [ INFO][       Thread-599913][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:15:49,179 [DEBUG][       Thread-599913][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:15:49,179 [DEBUG][       Thread-599913][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:15:49,179 [DEBUG][       Thread-599913][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:15:49,179 [DEBUG][       Thread-599913][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:15:49,179 [DEBUG][       Thread-599913][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:15:49,179 [DEBUG][       Thread-599913][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:15:49,179 [DEBUG][       Thread-599913][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:15:49,179 [DEBUG][       Thread-599913][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:15:49,179 [DEBUG][       Thread-599913][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:15:49,179 [DEBUG][       Thread-599913][   transport.py][1871] : client lang: <none>
2025-07-01 09:15:49,179 [DEBUG][       Thread-599913][   transport.py][1871] : server lang: <none>
2025-07-01 09:15:49,179 [DEBUG][       Thread-599913][   transport.py][1871] : kex follows: False
2025-07-01 09:15:49,179 [DEBUG][       Thread-599913][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:15:49,180 [DEBUG][       Thread-599913][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:15:49,180 [DEBUG][       Thread-599913][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:15:49,180 [DEBUG][       Thread-599913][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:15:49,180 [DEBUG][       Thread-599913][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:15:49,180 [DEBUG][       Thread-599913][   transport.py][1871] : Compression: none
2025-07-01 09:15:49,180 [DEBUG][       Thread-599913][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:15:49,243 [DEBUG][       Thread-599913][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:15:49,244 [DEBUG][       Thread-599913][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:15:49,245 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:15:49,245 [DEBUG][       Thread-599913][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:15:49,246 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:15:49,308 [DEBUG][       Thread-599913][   transport.py][1871] : userauth is OK
2025-07-01 09:15:49,308 [DEBUG][       Thread-599913][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:15:49,308 [DEBUG][       Thread-599913][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:15:49,308 [DEBUG][       Thread-599913][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:15:49,308 [DEBUG][       Thread-599913][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:15:49,328 [ INFO][       Thread-599913][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:15:49,328 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:15:49,328 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:15:49,388 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:15:49,389 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:15:50,370 [DEBUG][       Thread-599913][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:15:50,370 [DEBUG][       Thread-599913][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:15:50,419 [DEBUG][       Thread-599913][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:15:50,419 [DEBUG][       Thread-599913][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:15:50,429 [DEBUG][       Thread-599913][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:15:50,438 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:15:50,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-07-01 09:15:50,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-07-01 09:15:50,456 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:15:50,456 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:15:50,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:15:50,464 [DEBUG][       Thread-599913][   transport.py][1871] : EOF in transport thread
2025-07-01 09:15:56,447 [DEBUG][Thread-599915 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:16:00,467 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:16:00,467 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:16:00,467 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:16:00,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-07-01 09:16:00,979 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 15, 50), 9.17, 52.28, 0.0, 42.7, 8.15, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:16:00,979 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:15:50
2025-07-01 09:16:01,065 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:16:01,071 [DEBUG][       Thread-599916][   transport.py][1871] : starting thread (client mode): 0x8154a90
2025-07-01 09:16:01,071 [DEBUG][       Thread-599916][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:16:01,091 [DEBUG][       Thread-599916][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:16:01,092 [ INFO][       Thread-599916][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:16:01,093 [DEBUG][       Thread-599916][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:16:01,093 [DEBUG][       Thread-599916][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:16:01,093 [DEBUG][       Thread-599916][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:16:01,093 [DEBUG][       Thread-599916][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:16:01,093 [DEBUG][       Thread-599916][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:16:01,093 [DEBUG][       Thread-599916][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:16:01,093 [DEBUG][       Thread-599916][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:16:01,093 [DEBUG][       Thread-599916][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:16:01,093 [DEBUG][       Thread-599916][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:16:01,093 [DEBUG][       Thread-599916][   transport.py][1871] : client lang: <none>
2025-07-01 09:16:01,093 [DEBUG][       Thread-599916][   transport.py][1871] : server lang: <none>
2025-07-01 09:16:01,093 [DEBUG][       Thread-599916][   transport.py][1871] : kex follows: False
2025-07-01 09:16:01,093 [DEBUG][       Thread-599916][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:16:01,093 [DEBUG][       Thread-599916][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:16:01,093 [DEBUG][       Thread-599916][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:16:01,093 [DEBUG][       Thread-599916][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:16:01,093 [DEBUG][       Thread-599916][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:16:01,093 [DEBUG][       Thread-599916][   transport.py][1871] : Compression: none
2025-07-01 09:16:01,093 [DEBUG][       Thread-599916][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:16:01,110 [DEBUG][       Thread-599916][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:16:01,110 [DEBUG][       Thread-599916][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:16:01,111 [DEBUG][       Thread-599916][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:16:01,111 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:16:01,111 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:16:01,112 [DEBUG][       Thread-599916][   transport.py][1871] : userauth is OK
2025-07-01 09:16:01,125 [ INFO][       Thread-599916][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:16:01,126 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:16:01,689 [DEBUG][       Thread-599916][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:16:01,689 [DEBUG][       Thread-599916][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:16:01,733 [DEBUG][       Thread-599916][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:16:01,733 [DEBUG][       Thread-599916][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:16:01,736 [DEBUG][       Thread-599916][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:16:01,749 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:16:01,749 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:16:01,751 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:16:01,753 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:16:01,758 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:16:01,760 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:16:01,760 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:16:01,760 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:16:01,761 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.302373 -999.00   +8.00  26.65     57   +0.00 1 1 1 1 1   887    0 8.91 44.63 ----- 26.6 26.6 8.2 41.1 10.5 -23.7 9.7 -23.1 8.9 -23.1 9.7 -22.8
2025-07-01 09:16:01,761 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:16:01,761 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:16:01,761 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.302373
2025-07-01 09:16:01,761 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:16:01,761 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:16:01,761 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:16:01,761 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:16:01,761 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:16:01,761 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:15:50', tmtdew=9.17, humidity=52.28, cloud=0.0, wind=42.7, temperature=8.15, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:15:25.027', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:16:01,762 [DEBUG][       Thread-599916][   transport.py][1871] : EOF in transport thread
2025-07-01 09:16:01,837 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:16:01,848 [DEBUG][       Thread-599919][   transport.py][1871] : starting thread (client mode): 0x81a7280
2025-07-01 09:16:01,848 [DEBUG][       Thread-599919][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:16:01,863 [DEBUG][       Thread-599919][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:16:01,863 [ INFO][       Thread-599919][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:16:01,871 [DEBUG][       Thread-599919][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:16:01,871 [DEBUG][       Thread-599919][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:16:01,871 [DEBUG][       Thread-599919][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:16:01,871 [DEBUG][       Thread-599919][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:16:01,871 [DEBUG][       Thread-599919][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:16:01,871 [DEBUG][       Thread-599919][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:16:01,871 [DEBUG][       Thread-599919][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:16:01,871 [DEBUG][       Thread-599919][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:16:01,871 [DEBUG][       Thread-599919][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:16:01,871 [DEBUG][       Thread-599919][   transport.py][1871] : client lang: <none>
2025-07-01 09:16:01,871 [DEBUG][       Thread-599919][   transport.py][1871] : server lang: <none>
2025-07-01 09:16:01,871 [DEBUG][       Thread-599919][   transport.py][1871] : kex follows: False
2025-07-01 09:16:01,871 [DEBUG][       Thread-599919][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:16:01,871 [DEBUG][       Thread-599919][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:16:01,871 [DEBUG][       Thread-599919][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:16:01,871 [DEBUG][       Thread-599919][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:16:01,871 [DEBUG][       Thread-599919][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:16:01,871 [DEBUG][       Thread-599919][   transport.py][1871] : Compression: none
2025-07-01 09:16:01,871 [DEBUG][       Thread-599919][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:16:01,929 [DEBUG][       Thread-599919][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:16:01,929 [DEBUG][       Thread-599919][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:16:01,929 [DEBUG][       Thread-599919][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:16:01,929 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:16:01,929 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:16:01,991 [DEBUG][       Thread-599919][   transport.py][1871] : userauth is OK
2025-07-01 09:16:01,991 [DEBUG][       Thread-599919][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:16:01,991 [DEBUG][       Thread-599919][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:16:01,991 [DEBUG][       Thread-599919][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:16:01,991 [DEBUG][       Thread-599919][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:16:02,010 [ INFO][       Thread-599919][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:16:02,010 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:16:02,010 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:16:03,042 [DEBUG][       Thread-599919][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:16:03,043 [DEBUG][       Thread-599919][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:16:03,092 [DEBUG][       Thread-599919][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:16:03,092 [DEBUG][       Thread-599919][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:16:03,101 [DEBUG][       Thread-599919][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:16:03,112 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:16: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-07-01 09:16: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-07-01 09:16:03,129 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:16:03,129 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:16:03,129 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:16:03,137 [DEBUG][       Thread-599919][   transport.py][1871] : EOF in transport thread
2025-07-01 09:16:05,465 [DEBUG][Thread-599921 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:16:13,139 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:16:13,140 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:16:13,140 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:16: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-07-01 09:16:13,634 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 15, 50), 9.17, 52.28, 0.0, 42.7, 8.15, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:16:13,634 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:15:50
2025-07-01 09:16:13,720 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:16:13,723 [DEBUG][       Thread-599922][   transport.py][1871] : starting thread (client mode): 0x81e76a0
2025-07-01 09:16:13,723 [DEBUG][       Thread-599922][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:16:13,743 [DEBUG][       Thread-599922][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:16:13,743 [ INFO][       Thread-599922][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:16:13,744 [DEBUG][       Thread-599922][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:16:13,744 [DEBUG][       Thread-599922][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:16:13,744 [DEBUG][       Thread-599922][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:16:13,744 [DEBUG][       Thread-599922][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:16:13,744 [DEBUG][       Thread-599922][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:16:13,744 [DEBUG][       Thread-599922][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:16:13,744 [DEBUG][       Thread-599922][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:16:13,744 [DEBUG][       Thread-599922][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:16:13,745 [DEBUG][       Thread-599922][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:16:13,745 [DEBUG][       Thread-599922][   transport.py][1871] : client lang: <none>
2025-07-01 09:16:13,745 [DEBUG][       Thread-599922][   transport.py][1871] : server lang: <none>
2025-07-01 09:16:13,745 [DEBUG][       Thread-599922][   transport.py][1871] : kex follows: False
2025-07-01 09:16:13,745 [DEBUG][       Thread-599922][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:16:13,745 [DEBUG][       Thread-599922][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:16:13,745 [DEBUG][       Thread-599922][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:16:13,745 [DEBUG][       Thread-599922][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:16:13,745 [DEBUG][       Thread-599922][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:16:13,745 [DEBUG][       Thread-599922][   transport.py][1871] : Compression: none
2025-07-01 09:16:13,745 [DEBUG][       Thread-599922][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:16:13,753 [DEBUG][       Thread-599922][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:16:13,753 [DEBUG][       Thread-599922][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:16:13,754 [DEBUG][       Thread-599922][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:16:13,754 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:16:13,754 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:16:13,755 [DEBUG][       Thread-599922][   transport.py][1871] : userauth is OK
2025-07-01 09:16:13,768 [ INFO][       Thread-599922][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:16:13,768 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:16:14,438 [DEBUG][       Thread-599922][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:16:14,438 [DEBUG][       Thread-599922][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:16:14,481 [DEBUG][       Thread-599922][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:16:14,481 [DEBUG][       Thread-599922][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:16:14,484 [DEBUG][       Thread-599922][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:16:14,489 [DEBUG][Thread-599924 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:16:14,495 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:16:14,496 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:16:14,498 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:16:14,500 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:16:14,506 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:16:14,508 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:16:14,508 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:16:14,509 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:16:14,509 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.302720 -999.00   +8.00  32.49     57   +0.10 1 1 2 1 1   887    0 9.03 47.49 ----- 32.5 32.5 33.0 45.5 10.5 -23.5 9.8 -23.6 8.9 -22.9 9.7 -22.6
2025-07-01 09:16:14,509 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:16:14,509 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:16:14,509 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.302720
2025-07-01 09:16:14,509 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:16:14,510 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:16:14,510 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:16:14,510 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:16:14,510 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:16:14,510 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:15:50', tmtdew=9.17, humidity=52.28, cloud=0.0, wind=42.7, temperature=8.15, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:15:55.008', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:16:14,511 [DEBUG][       Thread-599922][   transport.py][1871] : EOF in transport thread
2025-07-01 09:16:14,594 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:16:14,603 [DEBUG][       Thread-599926][   transport.py][1871] : starting thread (client mode): 0x8107bb0
2025-07-01 09:16:14,603 [DEBUG][       Thread-599926][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:16:14,619 [DEBUG][       Thread-599926][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:16:14,619 [ INFO][       Thread-599926][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:16:14,626 [DEBUG][       Thread-599926][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:16:14,626 [DEBUG][       Thread-599926][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:16:14,626 [DEBUG][       Thread-599926][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:16:14,626 [DEBUG][       Thread-599926][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:16:14,626 [DEBUG][       Thread-599926][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:16:14,627 [DEBUG][       Thread-599926][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:16:14,627 [DEBUG][       Thread-599926][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:16:14,627 [DEBUG][       Thread-599926][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:16:14,627 [DEBUG][       Thread-599926][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:16:14,627 [DEBUG][       Thread-599926][   transport.py][1871] : client lang: <none>
2025-07-01 09:16:14,627 [DEBUG][       Thread-599926][   transport.py][1871] : server lang: <none>
2025-07-01 09:16:14,627 [DEBUG][       Thread-599926][   transport.py][1871] : kex follows: False
2025-07-01 09:16:14,627 [DEBUG][       Thread-599926][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:16:14,627 [DEBUG][       Thread-599926][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:16:14,627 [DEBUG][       Thread-599926][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:16:14,627 [DEBUG][       Thread-599926][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:16:14,627 [DEBUG][       Thread-599926][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:16:14,627 [DEBUG][       Thread-599926][   transport.py][1871] : Compression: none
2025-07-01 09:16:14,627 [DEBUG][       Thread-599926][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:16:14,690 [DEBUG][       Thread-599926][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:16:14,690 [DEBUG][       Thread-599926][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:16:14,691 [DEBUG][       Thread-599926][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:16:14,691 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:16:14,691 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:16:14,749 [DEBUG][       Thread-599926][   transport.py][1871] : userauth is OK
2025-07-01 09:16:14,749 [DEBUG][       Thread-599926][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:16:14,749 [DEBUG][       Thread-599926][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:16:14,749 [DEBUG][       Thread-599926][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:16:14,749 [DEBUG][       Thread-599926][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:16:14,763 [ INFO][       Thread-599926][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:16:14,764 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:16:14,764 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:16:15,781 [DEBUG][       Thread-599926][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:16:15,781 [DEBUG][       Thread-599926][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:16:15,832 [DEBUG][       Thread-599926][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:16:15,832 [DEBUG][       Thread-599926][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:16:15,842 [DEBUG][       Thread-599926][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:16:15,851 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:16:15,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-07-01 09:16:15,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') -> 00000000
2025-07-01 09:16:15,870 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:16:15,870 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:16:15,871 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:16:15,879 [DEBUG][       Thread-599926][   transport.py][1871] : EOF in transport thread
2025-07-01 09:16:19,843 [DEBUG][Thread-599928 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:16:23,511 [DEBUG][Thread-599929 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:16:25,879 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:16:25,879 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:16:25,879 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:16:25,882 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:16:26,388 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 16, 22), 9.24, 52.27, 0.0, 40.1, 8.21, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:16:26,388 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:16:22
2025-07-01 09:16:26,478 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:16:26,485 [DEBUG][       Thread-599930][   transport.py][1871] : starting thread (client mode): 0x81a5120
2025-07-01 09:16:26,485 [DEBUG][       Thread-599930][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:16:26,507 [DEBUG][       Thread-599930][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:16:26,507 [ INFO][       Thread-599930][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:16:26,510 [DEBUG][       Thread-599930][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:16:26,510 [DEBUG][       Thread-599930][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:16:26,510 [DEBUG][       Thread-599930][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:16:26,510 [DEBUG][       Thread-599930][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:16:26,510 [DEBUG][       Thread-599930][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:16:26,510 [DEBUG][       Thread-599930][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:16:26,510 [DEBUG][       Thread-599930][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:16:26,510 [DEBUG][       Thread-599930][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:16:26,510 [DEBUG][       Thread-599930][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:16:26,511 [DEBUG][       Thread-599930][   transport.py][1871] : client lang: <none>
2025-07-01 09:16:26,511 [DEBUG][       Thread-599930][   transport.py][1871] : server lang: <none>
2025-07-01 09:16:26,511 [DEBUG][       Thread-599930][   transport.py][1871] : kex follows: False
2025-07-01 09:16:26,511 [DEBUG][       Thread-599930][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:16:26,511 [DEBUG][       Thread-599930][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:16:26,511 [DEBUG][       Thread-599930][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:16:26,511 [DEBUG][       Thread-599930][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:16:26,511 [DEBUG][       Thread-599930][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:16:26,511 [DEBUG][       Thread-599930][   transport.py][1871] : Compression: none
2025-07-01 09:16:26,511 [DEBUG][       Thread-599930][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:16:26,520 [DEBUG][       Thread-599930][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:16:26,520 [DEBUG][       Thread-599930][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:16:26,520 [DEBUG][       Thread-599930][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:16:26,521 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:16:26,521 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:16:26,522 [DEBUG][       Thread-599930][   transport.py][1871] : userauth is OK
2025-07-01 09:16:26,550 [ INFO][       Thread-599930][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:16:26,551 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:16:27,181 [DEBUG][       Thread-599930][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:16:27,181 [DEBUG][       Thread-599930][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:16:27,225 [DEBUG][       Thread-599930][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:16:27,225 [DEBUG][       Thread-599930][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:16:27,228 [DEBUG][       Thread-599930][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:16:27,239 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:16:27,239 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:16:27,241 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:16:27,243 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:16:27,248 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:16:27,250 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:16:27,250 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:16:27,251 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:16:27,251 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.302720 -999.00   +8.00  32.49     57   +0.10 1 1 2 1 1   887    0 9.03 47.49 ----- 32.5 32.5 33.0 45.5 10.5 -23.5 9.8 -23.6 8.9 -22.9 9.7 -22.6
2025-07-01 09:16:27,251 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:16:27,251 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:16:27,251 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.302720
2025-07-01 09:16:27,251 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:16:27,252 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:16:27,252 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:16:27,252 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:16:27,252 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:16:27,252 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:16:22', tmtdew=9.24, humidity=52.27, cloud=0.0, wind=40.1, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:15:55.008', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:16:27,253 [DEBUG][       Thread-599930][   transport.py][1871] : EOF in transport thread
2025-07-01 09:16:27,328 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:16:27,343 [DEBUG][       Thread-599933][   transport.py][1871] : starting thread (client mode): 0x8157a00
2025-07-01 09:16:27,343 [DEBUG][       Thread-599933][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:16:27,358 [DEBUG][       Thread-599933][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:16:27,358 [ INFO][       Thread-599933][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:16:27,366 [DEBUG][       Thread-599933][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:16:27,366 [DEBUG][       Thread-599933][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:16:27,366 [DEBUG][       Thread-599933][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:16:27,366 [DEBUG][       Thread-599933][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:16:27,366 [DEBUG][       Thread-599933][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:16:27,366 [DEBUG][       Thread-599933][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:16:27,366 [DEBUG][       Thread-599933][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:16:27,366 [DEBUG][       Thread-599933][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:16:27,366 [DEBUG][       Thread-599933][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:16:27,366 [DEBUG][       Thread-599933][   transport.py][1871] : client lang: <none>
2025-07-01 09:16:27,366 [DEBUG][       Thread-599933][   transport.py][1871] : server lang: <none>
2025-07-01 09:16:27,366 [DEBUG][       Thread-599933][   transport.py][1871] : kex follows: False
2025-07-01 09:16:27,366 [DEBUG][       Thread-599933][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:16:27,367 [DEBUG][       Thread-599933][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:16:27,367 [DEBUG][       Thread-599933][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:16:27,367 [DEBUG][       Thread-599933][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:16:27,367 [DEBUG][       Thread-599933][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:16:27,367 [DEBUG][       Thread-599933][   transport.py][1871] : Compression: none
2025-07-01 09:16:27,367 [DEBUG][       Thread-599933][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:16:27,430 [DEBUG][       Thread-599933][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:16:27,431 [DEBUG][       Thread-599933][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:16:27,432 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:16:27,432 [DEBUG][       Thread-599933][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:16:27,433 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:16:27,492 [DEBUG][       Thread-599933][   transport.py][1871] : userauth is OK
2025-07-01 09:16:27,492 [DEBUG][       Thread-599933][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:16:27,492 [DEBUG][       Thread-599933][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:16:27,492 [DEBUG][       Thread-599933][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:16:27,492 [DEBUG][       Thread-599933][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:16:27,511 [ INFO][       Thread-599933][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:16:27,511 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:16:27,512 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:16:28,537 [DEBUG][       Thread-599933][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:16:28,537 [DEBUG][       Thread-599933][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:16:28,588 [DEBUG][       Thread-599933][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:16:28,588 [DEBUG][       Thread-599933][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:16:28,598 [DEBUG][       Thread-599933][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:16:28,607 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:16:28,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')
2025-07-01 09:16:28,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') -> 00000000
2025-07-01 09:16:28,627 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:16:28,627 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:16:28,627 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:16:28,636 [DEBUG][       Thread-599933][   transport.py][1871] : EOF in transport thread
2025-07-01 09:16:32,532 [DEBUG][Thread-599935 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:16:38,638 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:16:38,638 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:16:38,638 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:16:38,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-07-01 09:16:39,143 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 16, 22), 9.24, 52.27, 0.0, 40.1, 8.21, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:16:39,143 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:16:22
2025-07-01 09:16:39,228 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:16:39,232 [DEBUG][       Thread-599936][   transport.py][1871] : starting thread (client mode): 0x81a5f60
2025-07-01 09:16:39,232 [DEBUG][       Thread-599936][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:16:39,252 [DEBUG][       Thread-599936][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:16:39,252 [ INFO][       Thread-599936][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:16:39,255 [DEBUG][       Thread-599936][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:16:39,256 [DEBUG][       Thread-599936][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:16:39,256 [DEBUG][       Thread-599936][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:16:39,256 [DEBUG][       Thread-599936][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:16:39,256 [DEBUG][       Thread-599936][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:16:39,256 [DEBUG][       Thread-599936][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:16:39,256 [DEBUG][       Thread-599936][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:16:39,256 [DEBUG][       Thread-599936][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:16:39,256 [DEBUG][       Thread-599936][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:16:39,256 [DEBUG][       Thread-599936][   transport.py][1871] : client lang: <none>
2025-07-01 09:16:39,256 [DEBUG][       Thread-599936][   transport.py][1871] : server lang: <none>
2025-07-01 09:16:39,256 [DEBUG][       Thread-599936][   transport.py][1871] : kex follows: False
2025-07-01 09:16:39,256 [DEBUG][       Thread-599936][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:16:39,256 [DEBUG][       Thread-599936][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:16:39,256 [DEBUG][       Thread-599936][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:16:39,256 [DEBUG][       Thread-599936][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:16:39,256 [DEBUG][       Thread-599936][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:16:39,256 [DEBUG][       Thread-599936][   transport.py][1871] : Compression: none
2025-07-01 09:16:39,256 [DEBUG][       Thread-599936][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:16:39,274 [DEBUG][       Thread-599936][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:16:39,275 [DEBUG][       Thread-599936][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:16:39,275 [DEBUG][       Thread-599936][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:16:39,275 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:16:39,275 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:16:39,277 [DEBUG][       Thread-599936][   transport.py][1871] : userauth is OK
2025-07-01 09:16:39,291 [ INFO][       Thread-599936][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:16:39,292 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:16:39,882 [DEBUG][       Thread-599936][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:16:39,883 [DEBUG][       Thread-599936][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:16:39,925 [DEBUG][       Thread-599936][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:16:39,925 [DEBUG][       Thread-599936][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:16:39,928 [DEBUG][       Thread-599936][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:16:39,939 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:16:39,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:16:39,942 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:16:39,944 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:16:39,950 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:16:39,952 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:16:39,952 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:16:39,952 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:16:39,953 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.302720 -999.00   +8.00  32.49     57   +0.10 1 1 2 1 1   887    0 9.03 47.49 ----- 32.5 32.5 33.0 45.5 10.5 -23.5 9.8 -23.6 8.9 -22.9 9.7 -22.6
2025-07-01 09:16:39,953 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:16:39,953 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:16:39,953 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.302720
2025-07-01 09:16:39,953 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:16:39,954 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:16:39,954 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:16:39,954 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:16:39,954 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:16:39,954 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:16:22', tmtdew=9.24, humidity=52.27, cloud=0.0, wind=40.1, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:15:55.008', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:16:39,955 [DEBUG][       Thread-599936][   transport.py][1871] : EOF in transport thread
2025-07-01 09:16:40,037 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:16:40,047 [DEBUG][       Thread-599939][   transport.py][1871] : starting thread (client mode): 0x8155660
2025-07-01 09:16:40,047 [DEBUG][       Thread-599939][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:16:40,065 [DEBUG][       Thread-599939][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:16:40,065 [ INFO][       Thread-599939][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:16:40,073 [DEBUG][       Thread-599939][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:16:40,073 [DEBUG][       Thread-599939][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:16:40,073 [DEBUG][       Thread-599939][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:16:40,073 [DEBUG][       Thread-599939][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:16:40,073 [DEBUG][       Thread-599939][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:16:40,073 [DEBUG][       Thread-599939][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:16:40,073 [DEBUG][       Thread-599939][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:16:40,073 [DEBUG][       Thread-599939][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:16:40,073 [DEBUG][       Thread-599939][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:16:40,073 [DEBUG][       Thread-599939][   transport.py][1871] : client lang: <none>
2025-07-01 09:16:40,073 [DEBUG][       Thread-599939][   transport.py][1871] : server lang: <none>
2025-07-01 09:16:40,073 [DEBUG][       Thread-599939][   transport.py][1871] : kex follows: False
2025-07-01 09:16:40,073 [DEBUG][       Thread-599939][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:16:40,074 [DEBUG][       Thread-599939][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:16:40,074 [DEBUG][       Thread-599939][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:16:40,074 [DEBUG][       Thread-599939][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:16:40,074 [DEBUG][       Thread-599939][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:16:40,074 [DEBUG][       Thread-599939][   transport.py][1871] : Compression: none
2025-07-01 09:16:40,074 [DEBUG][       Thread-599939][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:16:40,129 [DEBUG][       Thread-599939][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:16:40,130 [DEBUG][       Thread-599939][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:16:40,130 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:16:40,131 [DEBUG][       Thread-599939][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:16:40,132 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:16:40,186 [DEBUG][       Thread-599939][   transport.py][1871] : userauth is OK
2025-07-01 09:16:40,186 [DEBUG][       Thread-599939][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:16:40,186 [DEBUG][       Thread-599939][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:16:40,186 [DEBUG][       Thread-599939][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:16:40,186 [DEBUG][       Thread-599939][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:16:40,215 [ INFO][       Thread-599939][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:16:40,215 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:16:40,216 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:16:41,234 [DEBUG][       Thread-599939][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:16:41,234 [DEBUG][       Thread-599939][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:16:41,284 [DEBUG][       Thread-599939][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:16:41,284 [DEBUG][       Thread-599939][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:16:41,294 [DEBUG][       Thread-599939][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:16:41,304 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:16:41,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-07-01 09:16:41,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') -> 00000000
2025-07-01 09:16:41,327 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:16:41,327 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:16:41,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:16:41,336 [DEBUG][       Thread-599939][   transport.py][1871] : EOF in transport thread
2025-07-01 09:16:41,563 [DEBUG][Thread-599941 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:16:49,528 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:16:49,529 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:16:50,590 [DEBUG][Thread-599942 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:16:51,331 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:16:51,332 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:16:51,332 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:16:51,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-07-01 09:16:51,832 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 16, 22), 9.24, 52.27, 0.0, 40.1, 8.21, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:16:51,832 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:16:22
2025-07-01 09:16:51,917 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:16:51,924 [DEBUG][       Thread-599943][   transport.py][1871] : starting thread (client mode): 0x81051b0
2025-07-01 09:16:51,924 [DEBUG][       Thread-599943][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:16:51,944 [DEBUG][       Thread-599943][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:16:51,944 [ INFO][       Thread-599943][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:16:51,948 [DEBUG][       Thread-599943][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:16:51,948 [DEBUG][       Thread-599943][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:16:51,948 [DEBUG][       Thread-599943][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:16:51,948 [DEBUG][       Thread-599943][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:16:51,948 [DEBUG][       Thread-599943][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:16:51,948 [DEBUG][       Thread-599943][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:16:51,948 [DEBUG][       Thread-599943][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:16:51,948 [DEBUG][       Thread-599943][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:16:51,948 [DEBUG][       Thread-599943][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:16:51,948 [DEBUG][       Thread-599943][   transport.py][1871] : client lang: <none>
2025-07-01 09:16:51,948 [DEBUG][       Thread-599943][   transport.py][1871] : server lang: <none>
2025-07-01 09:16:51,948 [DEBUG][       Thread-599943][   transport.py][1871] : kex follows: False
2025-07-01 09:16:51,948 [DEBUG][       Thread-599943][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:16:51,948 [DEBUG][       Thread-599943][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:16:51,948 [DEBUG][       Thread-599943][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:16:51,948 [DEBUG][       Thread-599943][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:16:51,948 [DEBUG][       Thread-599943][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:16:51,948 [DEBUG][       Thread-599943][   transport.py][1871] : Compression: none
2025-07-01 09:16:51,949 [DEBUG][       Thread-599943][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:16:51,966 [DEBUG][       Thread-599943][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:16:51,966 [DEBUG][       Thread-599943][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:16:51,967 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:16:51,967 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:16:51,967 [DEBUG][       Thread-599943][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:16:51,968 [DEBUG][       Thread-599943][   transport.py][1871] : userauth is OK
2025-07-01 09:16:51,981 [ INFO][       Thread-599943][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:16:51,982 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:16:52,645 [DEBUG][       Thread-599943][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:16:52,645 [DEBUG][       Thread-599943][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:16:52,689 [DEBUG][       Thread-599943][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:16:52,689 [DEBUG][       Thread-599943][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:16:52,692 [DEBUG][       Thread-599943][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:16:52,704 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:16:52,705 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:16:52,707 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:16:52,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:16:52,714 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:16:52,715 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:16:52,716 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:16:52,716 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:16:52,716 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.303067 -999.00   +8.00  27.02     57   +0.10 1 1 1 1 1   887    0 8.84 45.44 ----- 27.0 27.0 21.6 44.9 10.6 -24.1 9.8 -23.9 8.9 -22.9 9.7 -22.4
2025-07-01 09:16:52,717 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:16:52,717 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:16:52,717 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.303067
2025-07-01 09:16:52,717 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:16:52,718 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:16:52,718 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:16:52,718 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:16:52,718 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:16:52,718 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:16:22', tmtdew=9.24, humidity=52.27, cloud=0.0, wind=40.1, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:16:24.989', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:16:52,719 [DEBUG][       Thread-599943][   transport.py][1871] : EOF in transport thread
2025-07-01 09:16:52,801 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:16:52,813 [DEBUG][       Thread-599946][   transport.py][1871] : starting thread (client mode): 0x81a6650
2025-07-01 09:16:52,813 [DEBUG][       Thread-599946][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:16:52,829 [DEBUG][       Thread-599946][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:16:52,829 [ INFO][       Thread-599946][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:16:52,837 [DEBUG][       Thread-599946][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:16:52,837 [DEBUG][       Thread-599946][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:16:52,837 [DEBUG][       Thread-599946][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:16:52,837 [DEBUG][       Thread-599946][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:16:52,837 [DEBUG][       Thread-599946][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:16:52,837 [DEBUG][       Thread-599946][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:16:52,837 [DEBUG][       Thread-599946][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:16:52,837 [DEBUG][       Thread-599946][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:16:52,837 [DEBUG][       Thread-599946][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:16:52,837 [DEBUG][       Thread-599946][   transport.py][1871] : client lang: <none>
2025-07-01 09:16:52,837 [DEBUG][       Thread-599946][   transport.py][1871] : server lang: <none>
2025-07-01 09:16:52,837 [DEBUG][       Thread-599946][   transport.py][1871] : kex follows: False
2025-07-01 09:16:52,837 [DEBUG][       Thread-599946][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:16:52,837 [DEBUG][       Thread-599946][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:16:52,837 [DEBUG][       Thread-599946][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:16:52,837 [DEBUG][       Thread-599946][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:16:52,838 [DEBUG][       Thread-599946][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:16:52,838 [DEBUG][       Thread-599946][   transport.py][1871] : Compression: none
2025-07-01 09:16:52,838 [DEBUG][       Thread-599946][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:16:52,893 [DEBUG][       Thread-599946][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:16:52,894 [DEBUG][       Thread-599946][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:16:52,894 [DEBUG][       Thread-599946][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:16:52,895 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:16:52,895 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:16:52,949 [DEBUG][       Thread-599946][   transport.py][1871] : userauth is OK
2025-07-01 09:16:52,950 [DEBUG][       Thread-599946][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:16:52,950 [DEBUG][       Thread-599946][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:16:52,950 [DEBUG][       Thread-599946][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:16:52,950 [DEBUG][       Thread-599946][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:16:52,969 [ INFO][       Thread-599946][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:16:52,969 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:16:52,970 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:16:53,953 [DEBUG][       Thread-599946][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:16:53,953 [DEBUG][       Thread-599946][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:16:54,004 [DEBUG][       Thread-599946][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:16:54,004 [DEBUG][       Thread-599946][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:16:54,013 [DEBUG][       Thread-599946][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:16:54,021 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:16:54,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')
2025-07-01 09:16:54,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-07-01 09:16:54,039 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:16:54,039 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:16:54,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:16:54,048 [DEBUG][       Thread-599946][   transport.py][1871] : EOF in transport thread
2025-07-01 09:16:59,611 [DEBUG][Thread-599948 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:17:04,050 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:17:04,051 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:17:04,051 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:17:04,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-07-01 09:17:04,556 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 16, 54), 9.25, 52.23, 0.0, 36.13, 8.22, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:17:04,556 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:16:54
2025-07-01 09:17:04,642 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:17:04,646 [DEBUG][       Thread-599949][   transport.py][1871] : starting thread (client mode): 0x81e6290
2025-07-01 09:17:04,646 [DEBUG][       Thread-599949][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:17:04,666 [DEBUG][       Thread-599949][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:17:04,666 [ INFO][       Thread-599949][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:17:04,669 [DEBUG][       Thread-599949][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:17:04,669 [DEBUG][       Thread-599949][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:17:04,669 [DEBUG][       Thread-599949][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:17:04,669 [DEBUG][       Thread-599949][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:17:04,669 [DEBUG][       Thread-599949][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:17:04,669 [DEBUG][       Thread-599949][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:17:04,669 [DEBUG][       Thread-599949][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:17:04,670 [DEBUG][       Thread-599949][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:17:04,670 [DEBUG][       Thread-599949][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:17:04,670 [DEBUG][       Thread-599949][   transport.py][1871] : client lang: <none>
2025-07-01 09:17:04,670 [DEBUG][       Thread-599949][   transport.py][1871] : server lang: <none>
2025-07-01 09:17:04,670 [DEBUG][       Thread-599949][   transport.py][1871] : kex follows: False
2025-07-01 09:17:04,670 [DEBUG][       Thread-599949][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:17:04,670 [DEBUG][       Thread-599949][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:17:04,670 [DEBUG][       Thread-599949][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:17:04,670 [DEBUG][       Thread-599949][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:17:04,670 [DEBUG][       Thread-599949][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:17:04,670 [DEBUG][       Thread-599949][   transport.py][1871] : Compression: none
2025-07-01 09:17:04,670 [DEBUG][       Thread-599949][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:17:04,685 [DEBUG][       Thread-599949][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:17:04,685 [DEBUG][       Thread-599949][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:17:04,686 [DEBUG][       Thread-599949][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:17:04,686 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:17:04,686 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:17:04,687 [DEBUG][       Thread-599949][   transport.py][1871] : userauth is OK
2025-07-01 09:17:04,712 [ INFO][       Thread-599949][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:17:04,712 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:17:05,327 [DEBUG][       Thread-599949][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:17:05,327 [DEBUG][       Thread-599949][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:17:05,368 [DEBUG][       Thread-599949][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:17:05,368 [DEBUG][       Thread-599949][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:17:05,371 [DEBUG][       Thread-599949][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:17:05,383 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:17:05,383 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:17:05,384 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:17:05,386 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:17:05,389 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:17:05,391 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:17:05,391 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:17:05,391 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:17:05,391 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.303067 -999.00   +8.00  27.02     57   +0.10 1 1 1 1 1   887    0 8.84 45.44 ----- 27.0 27.0 21.6 44.9 10.6 -24.1 9.8 -23.9 8.9 -22.9 9.7 -22.4
2025-07-01 09:17:05,391 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:17:05,392 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:17:05,392 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.303067
2025-07-01 09:17:05,392 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:17:05,392 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:17:05,392 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:17:05,392 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:17:05,392 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:17:05,393 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:16:54', tmtdew=9.25, humidity=52.23, cloud=0.0, wind=36.13, temperature=8.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:16:24.989', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:17:05,393 [DEBUG][       Thread-599949][   transport.py][1871] : EOF in transport thread
2025-07-01 09:17:05,476 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:17:05,486 [DEBUG][       Thread-599952][   transport.py][1871] : starting thread (client mode): 0x8154970
2025-07-01 09:17:05,486 [DEBUG][       Thread-599952][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:17:05,501 [DEBUG][       Thread-599952][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:17:05,501 [ INFO][       Thread-599952][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:17:05,509 [DEBUG][       Thread-599952][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:17:05,509 [DEBUG][       Thread-599952][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:17:05,509 [DEBUG][       Thread-599952][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:17:05,509 [DEBUG][       Thread-599952][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:17:05,509 [DEBUG][       Thread-599952][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:17:05,509 [DEBUG][       Thread-599952][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:17:05,509 [DEBUG][       Thread-599952][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:17:05,509 [DEBUG][       Thread-599952][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:17:05,509 [DEBUG][       Thread-599952][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:17:05,509 [DEBUG][       Thread-599952][   transport.py][1871] : client lang: <none>
2025-07-01 09:17:05,509 [DEBUG][       Thread-599952][   transport.py][1871] : server lang: <none>
2025-07-01 09:17:05,509 [DEBUG][       Thread-599952][   transport.py][1871] : kex follows: False
2025-07-01 09:17:05,509 [DEBUG][       Thread-599952][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:17:05,509 [DEBUG][       Thread-599952][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:17:05,510 [DEBUG][       Thread-599952][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:17:05,510 [DEBUG][       Thread-599952][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:17:05,510 [DEBUG][       Thread-599952][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:17:05,510 [DEBUG][       Thread-599952][   transport.py][1871] : Compression: none
2025-07-01 09:17:05,510 [DEBUG][       Thread-599952][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:17:05,566 [DEBUG][       Thread-599952][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:17:05,567 [DEBUG][       Thread-599952][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:17:05,567 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:17:05,568 [DEBUG][       Thread-599952][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:17:05,569 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:17:05,629 [DEBUG][       Thread-599952][   transport.py][1871] : userauth is OK
2025-07-01 09:17:05,630 [DEBUG][       Thread-599952][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:17:05,630 [DEBUG][       Thread-599952][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:17:05,630 [DEBUG][       Thread-599952][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:17:05,630 [DEBUG][       Thread-599952][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:17:05,651 [ INFO][       Thread-599952][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:17:05,652 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:17:05,652 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:17:06,647 [DEBUG][       Thread-599952][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:17:06,648 [DEBUG][       Thread-599952][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:17:06,696 [DEBUG][       Thread-599952][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:17:06,697 [DEBUG][       Thread-599952][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:17:06,706 [DEBUG][       Thread-599952][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:17:06,715 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:17:06,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-07-01 09:17:06,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-07-01 09:17:06,733 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:17:06,734 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:17:06,734 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:17:06,742 [DEBUG][       Thread-599952][   transport.py][1871] : EOF in transport thread
2025-07-01 09:17:08,632 [DEBUG][Thread-599954 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:17:16,745 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:17:16,745 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:17:16,745 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:17:16,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-07-01 09:17:17,239 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 16, 54), 9.25, 52.23, 0.0, 36.13, 8.22, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:17:17,239 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:16:54
2025-07-01 09:17:17,324 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:17:17,330 [DEBUG][       Thread-599955][   transport.py][1871] : starting thread (client mode): 0x8155660
2025-07-01 09:17:17,330 [DEBUG][       Thread-599955][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:17:17,350 [DEBUG][       Thread-599955][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:17:17,350 [ INFO][       Thread-599955][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:17:17,353 [DEBUG][       Thread-599955][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:17:17,354 [DEBUG][       Thread-599955][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:17:17,354 [DEBUG][       Thread-599955][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:17:17,354 [DEBUG][       Thread-599955][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:17:17,354 [DEBUG][       Thread-599955][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:17:17,354 [DEBUG][       Thread-599955][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:17:17,354 [DEBUG][       Thread-599955][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:17:17,354 [DEBUG][       Thread-599955][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:17:17,354 [DEBUG][       Thread-599955][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:17:17,354 [DEBUG][       Thread-599955][   transport.py][1871] : client lang: <none>
2025-07-01 09:17:17,354 [DEBUG][       Thread-599955][   transport.py][1871] : server lang: <none>
2025-07-01 09:17:17,354 [DEBUG][       Thread-599955][   transport.py][1871] : kex follows: False
2025-07-01 09:17:17,354 [DEBUG][       Thread-599955][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:17:17,354 [DEBUG][       Thread-599955][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:17:17,354 [DEBUG][       Thread-599955][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:17:17,354 [DEBUG][       Thread-599955][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:17:17,354 [DEBUG][       Thread-599955][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:17:17,354 [DEBUG][       Thread-599955][   transport.py][1871] : Compression: none
2025-07-01 09:17:17,354 [DEBUG][       Thread-599955][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:17:17,371 [DEBUG][       Thread-599955][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:17:17,372 [DEBUG][       Thread-599955][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:17:17,372 [DEBUG][       Thread-599955][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:17:17,373 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:17:17,373 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:17:17,374 [DEBUG][       Thread-599955][   transport.py][1871] : userauth is OK
2025-07-01 09:17:17,387 [ INFO][       Thread-599955][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:17:17,388 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:17:17,664 [DEBUG][Thread-599957 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:17:17,969 [DEBUG][       Thread-599955][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:17:17,970 [DEBUG][       Thread-599955][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:17:18,013 [DEBUG][       Thread-599955][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:17:18,013 [DEBUG][       Thread-599955][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:17:18,016 [DEBUG][       Thread-599955][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:17:18,028 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:17:18,028 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:17:18,030 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:17:18,032 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:17:18,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:17:18,039 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:17:18,040 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:17:18,040 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:17:18,041 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.303067 -999.00   +8.00  27.02     57   +0.10 1 1 1 1 1   887    0 8.84 45.44 ----- 27.0 27.0 21.6 44.9 10.6 -24.1 9.8 -23.9 8.9 -22.9 9.7 -22.4
2025-07-01 09:17:18,041 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:17:18,041 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:17:18,041 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.303067
2025-07-01 09:17:18,041 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:17:18,042 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:17:18,042 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:17:18,042 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:17:18,042 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:17:18,042 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:16:54', tmtdew=9.25, humidity=52.23, cloud=0.0, wind=36.13, temperature=8.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:16:24.989', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:17:18,043 [DEBUG][       Thread-599955][   transport.py][1871] : EOF in transport thread
2025-07-01 09:17:18,126 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:17:18,137 [DEBUG][       Thread-599959][   transport.py][1871] : starting thread (client mode): 0x83c8460
2025-07-01 09:17:18,137 [DEBUG][       Thread-599959][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:17:18,152 [DEBUG][       Thread-599959][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:17:18,152 [ INFO][       Thread-599959][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:17:18,159 [DEBUG][       Thread-599959][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:17:18,160 [DEBUG][       Thread-599959][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:17:18,160 [DEBUG][       Thread-599959][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:17:18,160 [DEBUG][       Thread-599959][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:17:18,160 [DEBUG][       Thread-599959][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:17:18,160 [DEBUG][       Thread-599959][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:17:18,160 [DEBUG][       Thread-599959][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:17:18,160 [DEBUG][       Thread-599959][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:17:18,160 [DEBUG][       Thread-599959][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:17:18,160 [DEBUG][       Thread-599959][   transport.py][1871] : client lang: <none>
2025-07-01 09:17:18,160 [DEBUG][       Thread-599959][   transport.py][1871] : server lang: <none>
2025-07-01 09:17:18,160 [DEBUG][       Thread-599959][   transport.py][1871] : kex follows: False
2025-07-01 09:17:18,160 [DEBUG][       Thread-599959][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:17:18,160 [DEBUG][       Thread-599959][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:17:18,160 [DEBUG][       Thread-599959][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:17:18,160 [DEBUG][       Thread-599959][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:17:18,160 [DEBUG][       Thread-599959][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:17:18,160 [DEBUG][       Thread-599959][   transport.py][1871] : Compression: none
2025-07-01 09:17:18,160 [DEBUG][       Thread-599959][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:17:18,222 [DEBUG][       Thread-599959][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:17:18,223 [DEBUG][       Thread-599959][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:17:18,223 [DEBUG][       Thread-599959][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:17:18,223 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:17:18,224 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:17:18,282 [DEBUG][       Thread-599959][   transport.py][1871] : userauth is OK
2025-07-01 09:17:18,282 [DEBUG][       Thread-599959][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:17:18,282 [DEBUG][       Thread-599959][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:17:18,282 [DEBUG][       Thread-599959][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:17:18,282 [DEBUG][       Thread-599959][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:17:18,301 [ INFO][       Thread-599959][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:17:18,302 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:17:18,302 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:17:19,290 [DEBUG][       Thread-599959][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:17:19,290 [DEBUG][       Thread-599959][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:17:19,340 [DEBUG][       Thread-599959][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:17:19,340 [DEBUG][       Thread-599959][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:17:19,353 [DEBUG][       Thread-599959][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:17:19,362 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:17:19,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-07-01 09:17:19,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') -> 00000000
2025-07-01 09:17:19,380 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:17:19,380 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:17:19,380 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:17:19,391 [DEBUG][       Thread-599959][   transport.py][1871] : EOF in transport thread
2025-07-01 09:17:19,871 [DEBUG][Thread-599961 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:17:26,685 [DEBUG][Thread-599962 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:17:29,388 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:17:29,388 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:17:29,388 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:17:29,389 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:17:29,877 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 17, 26), 9.33, 52.08, 0.0, 40.44, 8.28, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:17:29,877 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:17:26
2025-07-01 09:17:29,970 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:17:29,974 [DEBUG][       Thread-599963][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 09:17:29,974 [DEBUG][       Thread-599963][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:17:29,989 [DEBUG][       Thread-599963][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:17:29,989 [ INFO][       Thread-599963][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:17:29,992 [DEBUG][       Thread-599963][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:17:29,992 [DEBUG][       Thread-599963][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:17:29,992 [DEBUG][       Thread-599963][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:17:29,992 [DEBUG][       Thread-599963][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:17:29,992 [DEBUG][       Thread-599963][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:17:29,992 [DEBUG][       Thread-599963][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:17:29,992 [DEBUG][       Thread-599963][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:17:29,992 [DEBUG][       Thread-599963][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:17:29,992 [DEBUG][       Thread-599963][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:17:29,992 [DEBUG][       Thread-599963][   transport.py][1871] : client lang: <none>
2025-07-01 09:17:29,992 [DEBUG][       Thread-599963][   transport.py][1871] : server lang: <none>
2025-07-01 09:17:29,992 [DEBUG][       Thread-599963][   transport.py][1871] : kex follows: False
2025-07-01 09:17:29,993 [DEBUG][       Thread-599963][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:17:29,993 [DEBUG][       Thread-599963][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:17:29,993 [DEBUG][       Thread-599963][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:17:29,993 [DEBUG][       Thread-599963][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:17:29,993 [DEBUG][       Thread-599963][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:17:29,993 [DEBUG][       Thread-599963][   transport.py][1871] : Compression: none
2025-07-01 09:17:29,993 [DEBUG][       Thread-599963][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:17:30,008 [DEBUG][       Thread-599963][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:17:30,009 [DEBUG][       Thread-599963][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:17:30,009 [DEBUG][       Thread-599963][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:17:30,009 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:17:30,010 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:17:30,011 [DEBUG][       Thread-599963][   transport.py][1871] : userauth is OK
2025-07-01 09:17:30,035 [ INFO][       Thread-599963][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:17:30,036 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:17:30,672 [DEBUG][       Thread-599963][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:17:30,673 [DEBUG][       Thread-599963][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:17:30,717 [DEBUG][       Thread-599963][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:17:30,717 [DEBUG][       Thread-599963][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:17:30,720 [DEBUG][       Thread-599963][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:17:30,739 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:17:30,739 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:17:30,741 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:17:30,742 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:17:30,747 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:17:30,749 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:17:30,749 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:17:30,749 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:17:30,750 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.303415 -999.00   +8.10  32.21     57   +0.20 1 1 2 1 1   887    0 8.80 42.10 ----- 32.2 32.2 18.8 46.8 10.7 -23.4 9.8 -23.3 8.9 -23.0 9.8 -23.3
2025-07-01 09:17:30,750 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:17:30,750 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:17:30,750 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.303415
2025-07-01 09:17:30,750 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:17:30,751 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:17:30,751 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:17:30,751 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:17:30,751 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:17:30,751 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:17:26', tmtdew=9.33, humidity=52.08, cloud=0.0, wind=40.44, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:16:55.056', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:17:30,751 [DEBUG][       Thread-599963][   transport.py][1871] : EOF in transport thread
2025-07-01 09:17:30,834 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:17:30,846 [DEBUG][       Thread-599966][   transport.py][1871] : starting thread (client mode): 0x81542e0
2025-07-01 09:17:30,846 [DEBUG][       Thread-599966][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:17:30,861 [DEBUG][       Thread-599966][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:17:30,861 [ INFO][       Thread-599966][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:17:30,868 [DEBUG][       Thread-599966][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:17:30,868 [DEBUG][       Thread-599966][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:17:30,868 [DEBUG][       Thread-599966][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:17:30,868 [DEBUG][       Thread-599966][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:17:30,868 [DEBUG][       Thread-599966][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:17:30,868 [DEBUG][       Thread-599966][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:17:30,868 [DEBUG][       Thread-599966][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:17:30,868 [DEBUG][       Thread-599966][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:17:30,868 [DEBUG][       Thread-599966][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:17:30,868 [DEBUG][       Thread-599966][   transport.py][1871] : client lang: <none>
2025-07-01 09:17:30,868 [DEBUG][       Thread-599966][   transport.py][1871] : server lang: <none>
2025-07-01 09:17:30,869 [DEBUG][       Thread-599966][   transport.py][1871] : kex follows: False
2025-07-01 09:17:30,869 [DEBUG][       Thread-599966][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:17:30,869 [DEBUG][       Thread-599966][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:17:30,869 [DEBUG][       Thread-599966][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:17:30,869 [DEBUG][       Thread-599966][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:17:30,869 [DEBUG][       Thread-599966][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:17:30,869 [DEBUG][       Thread-599966][   transport.py][1871] : Compression: none
2025-07-01 09:17:30,869 [DEBUG][       Thread-599966][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:17:30,929 [DEBUG][       Thread-599966][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:17:30,930 [DEBUG][       Thread-599966][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:17:30,930 [DEBUG][       Thread-599966][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:17:30,930 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:17:30,931 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:17:30,989 [DEBUG][       Thread-599966][   transport.py][1871] : userauth is OK
2025-07-01 09:17:30,990 [DEBUG][       Thread-599966][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:17:30,990 [DEBUG][       Thread-599966][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:17:30,990 [DEBUG][       Thread-599966][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:17:30,990 [DEBUG][       Thread-599966][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:17:31,010 [ INFO][       Thread-599966][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:17:31,010 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:17:31,010 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:17:32,006 [DEBUG][       Thread-599966][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:17:32,006 [DEBUG][       Thread-599966][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:17:32,056 [DEBUG][       Thread-599966][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:17:32,056 [DEBUG][       Thread-599966][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:17:32,066 [DEBUG][       Thread-599966][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:17:32,077 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:17:32,078 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 09:17:32,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-07-01 09:17:32,095 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:17:32,095 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:17:32,096 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:17:32,103 [DEBUG][       Thread-599966][   transport.py][1871] : EOF in transport thread
2025-07-01 09:17:35,702 [DEBUG][Thread-599968 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:17:42,106 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:17:42,106 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:17:42,106 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:17:42,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-07-01 09:17:42,600 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 17, 26), 9.33, 52.08, 0.0, 40.44, 8.28, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:17:42,600 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:17:26
2025-07-01 09:17:42,686 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:17:42,691 [DEBUG][       Thread-599969][   transport.py][1871] : starting thread (client mode): 0x818f520
2025-07-01 09:17:42,691 [DEBUG][       Thread-599969][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:17:42,712 [DEBUG][       Thread-599969][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:17:42,712 [ INFO][       Thread-599969][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:17:42,715 [DEBUG][       Thread-599969][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:17:42,715 [DEBUG][       Thread-599969][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:17:42,716 [DEBUG][       Thread-599969][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:17:42,716 [DEBUG][       Thread-599969][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:17:42,716 [DEBUG][       Thread-599969][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:17:42,716 [DEBUG][       Thread-599969][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:17:42,716 [DEBUG][       Thread-599969][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:17:42,716 [DEBUG][       Thread-599969][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:17:42,716 [DEBUG][       Thread-599969][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:17:42,716 [DEBUG][       Thread-599969][   transport.py][1871] : client lang: <none>
2025-07-01 09:17:42,716 [DEBUG][       Thread-599969][   transport.py][1871] : server lang: <none>
2025-07-01 09:17:42,716 [DEBUG][       Thread-599969][   transport.py][1871] : kex follows: False
2025-07-01 09:17:42,716 [DEBUG][       Thread-599969][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:17:42,716 [DEBUG][       Thread-599969][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:17:42,716 [DEBUG][       Thread-599969][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:17:42,716 [DEBUG][       Thread-599969][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:17:42,716 [DEBUG][       Thread-599969][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:17:42,716 [DEBUG][       Thread-599969][   transport.py][1871] : Compression: none
2025-07-01 09:17:42,716 [DEBUG][       Thread-599969][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:17:42,734 [DEBUG][       Thread-599969][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:17:42,734 [DEBUG][       Thread-599969][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:17:42,735 [DEBUG][       Thread-599969][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:17:42,735 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:17:42,735 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:17:42,736 [DEBUG][       Thread-599969][   transport.py][1871] : userauth is OK
2025-07-01 09:17:42,761 [ INFO][       Thread-599969][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:17:42,762 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:17:43,381 [DEBUG][       Thread-599969][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:17:43,381 [DEBUG][       Thread-599969][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:17:43,425 [DEBUG][       Thread-599969][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:17:43,425 [DEBUG][       Thread-599969][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:17:43,428 [DEBUG][       Thread-599969][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:17:43,440 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:17:43,440 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:17:43,442 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:17:43,444 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:17:43,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:17:43,451 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:17:43,451 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:17:43,452 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:17:43,452 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.303415 -999.00   +8.10  32.21     57   +0.20 1 1 2 1 1   887    0 8.80 42.10 ----- 32.2 32.2 18.8 46.8 10.7 -23.4 9.8 -23.3 8.9 -23.0 9.8 -23.3
2025-07-01 09:17:43,452 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:17:43,452 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:17:43,452 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.303415
2025-07-01 09:17:43,452 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:17:43,453 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:17:43,453 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:17:43,453 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:17:43,453 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:17:43,453 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:17:26', tmtdew=9.33, humidity=52.08, cloud=0.0, wind=40.44, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:16:55.056', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:17:43,454 [DEBUG][       Thread-599969][   transport.py][1871] : EOF in transport thread
2025-07-01 09:17:43,537 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:17:43,546 [DEBUG][       Thread-599972][   transport.py][1871] : starting thread (client mode): 0x8105f60
2025-07-01 09:17:43,546 [DEBUG][       Thread-599972][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:17:43,564 [DEBUG][       Thread-599972][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:17:43,564 [ INFO][       Thread-599972][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:17:43,575 [DEBUG][       Thread-599972][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:17:43,575 [DEBUG][       Thread-599972][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:17:43,575 [DEBUG][       Thread-599972][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:17:43,575 [DEBUG][       Thread-599972][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:17:43,575 [DEBUG][       Thread-599972][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:17:43,575 [DEBUG][       Thread-599972][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:17:43,575 [DEBUG][       Thread-599972][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:17:43,575 [DEBUG][       Thread-599972][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:17:43,575 [DEBUG][       Thread-599972][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:17:43,576 [DEBUG][       Thread-599972][   transport.py][1871] : client lang: <none>
2025-07-01 09:17:43,576 [DEBUG][       Thread-599972][   transport.py][1871] : server lang: <none>
2025-07-01 09:17:43,576 [DEBUG][       Thread-599972][   transport.py][1871] : kex follows: False
2025-07-01 09:17:43,576 [DEBUG][       Thread-599972][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:17:43,576 [DEBUG][       Thread-599972][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:17:43,576 [DEBUG][       Thread-599972][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:17:43,576 [DEBUG][       Thread-599972][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:17:43,576 [DEBUG][       Thread-599972][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:17:43,576 [DEBUG][       Thread-599972][   transport.py][1871] : Compression: none
2025-07-01 09:17:43,576 [DEBUG][       Thread-599972][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:17:43,629 [DEBUG][       Thread-599972][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:17:43,630 [DEBUG][       Thread-599972][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:17:43,631 [DEBUG][       Thread-599972][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:17:43,631 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:17:43,631 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:17:43,689 [DEBUG][       Thread-599972][   transport.py][1871] : userauth is OK
2025-07-01 09:17:43,689 [DEBUG][       Thread-599972][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:17:43,689 [DEBUG][       Thread-599972][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:17:43,689 [DEBUG][       Thread-599972][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:17:43,690 [DEBUG][       Thread-599972][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:17:43,710 [ INFO][       Thread-599972][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:17:43,711 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:17:43,711 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:17:44,727 [DEBUG][       Thread-599972][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:17:44,727 [DEBUG][       Thread-599972][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:17:44,731 [DEBUG][Thread-599974 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:17:44,776 [DEBUG][       Thread-599972][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:17:44,777 [DEBUG][       Thread-599972][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:17:44,788 [DEBUG][       Thread-599972][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:17:44,799 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:17:44,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-07-01 09:17:44,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-07-01 09:17:44,818 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:17:44,818 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:17:44,819 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:17:44,827 [DEBUG][       Thread-599972][   transport.py][1871] : EOF in transport thread
2025-07-01 09:17:49,668 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:17:49,669 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:17:53,753 [DEBUG][Thread-599975 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:17:54,829 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:17:54,829 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:17:54,829 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:17:54,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-07-01 09:17:55,323 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 17, 26), 9.33, 52.08, 0.0, 40.44, 8.28, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:17:55,323 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:17:26
2025-07-01 09:17:55,409 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:17:55,413 [DEBUG][       Thread-599976][   transport.py][1871] : starting thread (client mode): 0x818d2a0
2025-07-01 09:17:55,413 [DEBUG][       Thread-599976][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:17:55,427 [DEBUG][       Thread-599976][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:17:55,427 [ INFO][       Thread-599976][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:17:55,429 [DEBUG][       Thread-599976][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:17:55,429 [DEBUG][       Thread-599976][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:17:55,429 [DEBUG][       Thread-599976][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:17:55,429 [DEBUG][       Thread-599976][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:17:55,429 [DEBUG][       Thread-599976][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:17:55,429 [DEBUG][       Thread-599976][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:17:55,429 [DEBUG][       Thread-599976][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:17:55,429 [DEBUG][       Thread-599976][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:17:55,429 [DEBUG][       Thread-599976][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:17:55,429 [DEBUG][       Thread-599976][   transport.py][1871] : client lang: <none>
2025-07-01 09:17:55,429 [DEBUG][       Thread-599976][   transport.py][1871] : server lang: <none>
2025-07-01 09:17:55,429 [DEBUG][       Thread-599976][   transport.py][1871] : kex follows: False
2025-07-01 09:17:55,429 [DEBUG][       Thread-599976][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:17:55,429 [DEBUG][       Thread-599976][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:17:55,429 [DEBUG][       Thread-599976][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:17:55,429 [DEBUG][       Thread-599976][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:17:55,429 [DEBUG][       Thread-599976][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:17:55,429 [DEBUG][       Thread-599976][   transport.py][1871] : Compression: none
2025-07-01 09:17:55,429 [DEBUG][       Thread-599976][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:17:55,441 [DEBUG][       Thread-599976][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:17:55,441 [DEBUG][       Thread-599976][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:17:55,442 [DEBUG][       Thread-599976][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:17:55,442 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:17:55,442 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:17:55,443 [DEBUG][       Thread-599976][   transport.py][1871] : userauth is OK
2025-07-01 09:17:55,467 [ INFO][       Thread-599976][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:17:55,468 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:17:56,090 [DEBUG][       Thread-599976][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:17:56,091 [DEBUG][       Thread-599976][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:17:56,133 [DEBUG][       Thread-599976][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:17:56,134 [DEBUG][       Thread-599976][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:17:56,137 [DEBUG][       Thread-599976][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:17:56,151 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:17:56,152 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:17:56,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:17:56,155 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:17:56,160 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:17:56,162 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:17:56,162 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:17:56,163 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:17:56,163 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.303762 -999.00   +8.10  41.84     57   +0.10 1 1 2 1 1   887    0 8.92 40.13 ----- 41.8 41.8 21.0 47.2 10.8 -23.5 9.9 -23.6 8.9 -23.0 9.8 -22.9
2025-07-01 09:17:56,163 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:17:56,163 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:17:56,163 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.303762
2025-07-01 09:17:56,164 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:17:56,164 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:17:56,165 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:17:56,165 [DEBUG][       Thread-599976][   transport.py][1871] : EOF in transport thread
2025-07-01 09:17:56,165 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:17:56,165 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:17:56,166 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:17:26', tmtdew=9.33, humidity=52.08, cloud=0.0, wind=40.44, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:17:25.037', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:17:56,249 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:17:56,261 [DEBUG][       Thread-599979][   transport.py][1871] : starting thread (client mode): 0x8a65e70
2025-07-01 09:17:56,261 [DEBUG][       Thread-599979][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:17:56,276 [DEBUG][       Thread-599979][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:17:56,277 [ INFO][       Thread-599979][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:17:56,284 [DEBUG][       Thread-599979][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:17:56,284 [DEBUG][       Thread-599979][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:17:56,284 [DEBUG][       Thread-599979][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:17:56,284 [DEBUG][       Thread-599979][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:17:56,284 [DEBUG][       Thread-599979][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:17:56,285 [DEBUG][       Thread-599979][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:17:56,285 [DEBUG][       Thread-599979][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:17:56,285 [DEBUG][       Thread-599979][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:17:56,285 [DEBUG][       Thread-599979][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:17:56,285 [DEBUG][       Thread-599979][   transport.py][1871] : client lang: <none>
2025-07-01 09:17:56,285 [DEBUG][       Thread-599979][   transport.py][1871] : server lang: <none>
2025-07-01 09:17:56,285 [DEBUG][       Thread-599979][   transport.py][1871] : kex follows: False
2025-07-01 09:17:56,285 [DEBUG][       Thread-599979][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:17:56,285 [DEBUG][       Thread-599979][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:17:56,285 [DEBUG][       Thread-599979][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:17:56,285 [DEBUG][       Thread-599979][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:17:56,285 [DEBUG][       Thread-599979][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:17:56,285 [DEBUG][       Thread-599979][   transport.py][1871] : Compression: none
2025-07-01 09:17:56,285 [DEBUG][       Thread-599979][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:17:56,341 [DEBUG][       Thread-599979][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:17:56,342 [DEBUG][       Thread-599979][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:17:56,342 [DEBUG][       Thread-599979][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:17:56,343 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:17:56,343 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:17:56,397 [DEBUG][       Thread-599979][   transport.py][1871] : userauth is OK
2025-07-01 09:17:56,397 [DEBUG][       Thread-599979][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:17:56,397 [DEBUG][       Thread-599979][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:17:56,397 [DEBUG][       Thread-599979][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:17:56,397 [DEBUG][       Thread-599979][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:17:56,416 [ INFO][       Thread-599979][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:17:56,416 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:17:56,417 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:17:57,420 [DEBUG][       Thread-599979][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:17:57,420 [DEBUG][       Thread-599979][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:17:57,474 [DEBUG][       Thread-599979][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:17:57,474 [DEBUG][       Thread-599979][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:17:57,485 [DEBUG][       Thread-599979][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:17:57,493 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:17:57,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')
2025-07-01 09:17:57,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-07-01 09:17:57,508 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:17:57,508 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:17:57,508 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:17:57,517 [DEBUG][       Thread-599979][   transport.py][1871] : EOF in transport thread
2025-07-01 09:18:02,772 [DEBUG][Thread-599981 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:18:07,516 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:18:07,516 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:18:07,516 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:18: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-07-01 09:18:07,995 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 17, 57), 9.32, 52.1, 0.0, 38.06, 8.3, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:18:07,995 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:17:57
2025-07-01 09:18:08,080 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:18:08,084 [DEBUG][       Thread-599982][   transport.py][1871] : starting thread (client mode): 0x81540d0
2025-07-01 09:18:08,084 [DEBUG][       Thread-599982][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:18:08,104 [DEBUG][       Thread-599982][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:18:08,104 [ INFO][       Thread-599982][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:18:08,108 [DEBUG][       Thread-599982][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:18:08,108 [DEBUG][       Thread-599982][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:18:08,108 [DEBUG][       Thread-599982][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:18:08,108 [DEBUG][       Thread-599982][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:18:08,108 [DEBUG][       Thread-599982][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:18:08,108 [DEBUG][       Thread-599982][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:18:08,108 [DEBUG][       Thread-599982][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:18:08,108 [DEBUG][       Thread-599982][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:18:08,108 [DEBUG][       Thread-599982][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:18:08,108 [DEBUG][       Thread-599982][   transport.py][1871] : client lang: <none>
2025-07-01 09:18:08,108 [DEBUG][       Thread-599982][   transport.py][1871] : server lang: <none>
2025-07-01 09:18:08,108 [DEBUG][       Thread-599982][   transport.py][1871] : kex follows: False
2025-07-01 09:18:08,108 [DEBUG][       Thread-599982][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:18:08,108 [DEBUG][       Thread-599982][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:18:08,108 [DEBUG][       Thread-599982][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:18:08,108 [DEBUG][       Thread-599982][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:18:08,108 [DEBUG][       Thread-599982][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:18:08,108 [DEBUG][       Thread-599982][   transport.py][1871] : Compression: none
2025-07-01 09:18:08,108 [DEBUG][       Thread-599982][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:18:08,126 [DEBUG][       Thread-599982][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:18:08,126 [DEBUG][       Thread-599982][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:18:08,127 [DEBUG][       Thread-599982][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:18:08,127 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:18:08,127 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:18:08,128 [DEBUG][       Thread-599982][   transport.py][1871] : userauth is OK
2025-07-01 09:18:08,153 [ INFO][       Thread-599982][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:18:08,153 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:18:08,794 [DEBUG][       Thread-599982][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:18:08,794 [DEBUG][       Thread-599982][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:18:08,837 [DEBUG][       Thread-599982][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:18:08,837 [DEBUG][       Thread-599982][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:18:08,839 [DEBUG][       Thread-599982][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:18:08,853 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:18:08,853 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:18:08,855 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:18:08,856 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:18:08,861 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:18:08,863 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:18:08,863 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:18:08,864 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:18:08,864 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.303762 -999.00   +8.10  41.84     57   +0.10 1 1 2 1 1   887    0 8.92 40.13 ----- 41.8 41.8 21.0 47.2 10.8 -23.5 9.9 -23.6 8.9 -23.0 9.8 -22.9
2025-07-01 09:18:08,864 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:18:08,864 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:18:08,864 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.303762
2025-07-01 09:18:08,865 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:18:08,865 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:18:08,865 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:18:08,865 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:18:08,865 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:18:08,866 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:17:57', tmtdew=9.32, humidity=52.1, cloud=0.0, wind=38.06, temperature=8.3, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:17:25.037', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:18:08,867 [DEBUG][       Thread-599982][   transport.py][1871] : EOF in transport thread
2025-07-01 09:18:08,950 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:18:08,959 [DEBUG][       Thread-599985][   transport.py][1871] : starting thread (client mode): 0x81e5a80
2025-07-01 09:18:08,959 [DEBUG][       Thread-599985][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:18:08,974 [DEBUG][       Thread-599985][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:18:08,974 [ INFO][       Thread-599985][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:18:08,982 [DEBUG][       Thread-599985][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:18:08,982 [DEBUG][       Thread-599985][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:18:08,982 [DEBUG][       Thread-599985][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:18:08,982 [DEBUG][       Thread-599985][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:18:08,982 [DEBUG][       Thread-599985][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:18:08,982 [DEBUG][       Thread-599985][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:18:08,982 [DEBUG][       Thread-599985][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:18:08,982 [DEBUG][       Thread-599985][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:18:08,982 [DEBUG][       Thread-599985][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:18:08,982 [DEBUG][       Thread-599985][   transport.py][1871] : client lang: <none>
2025-07-01 09:18:08,982 [DEBUG][       Thread-599985][   transport.py][1871] : server lang: <none>
2025-07-01 09:18:08,982 [DEBUG][       Thread-599985][   transport.py][1871] : kex follows: False
2025-07-01 09:18:08,982 [DEBUG][       Thread-599985][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:18:08,983 [DEBUG][       Thread-599985][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:18:08,983 [DEBUG][       Thread-599985][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:18:08,983 [DEBUG][       Thread-599985][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:18:08,983 [DEBUG][       Thread-599985][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:18:08,983 [DEBUG][       Thread-599985][   transport.py][1871] : Compression: none
2025-07-01 09:18:08,983 [DEBUG][       Thread-599985][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:18:09,040 [DEBUG][       Thread-599985][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:18:09,041 [DEBUG][       Thread-599985][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:18:09,041 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:18:09,042 [DEBUG][       Thread-599985][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:18:09,042 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:18:09,097 [DEBUG][       Thread-599985][   transport.py][1871] : userauth is OK
2025-07-01 09:18:09,097 [DEBUG][       Thread-599985][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:18:09,097 [DEBUG][       Thread-599985][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:18:09,097 [DEBUG][       Thread-599985][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:18:09,097 [DEBUG][       Thread-599985][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:18:09,116 [ INFO][       Thread-599985][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:18:09,116 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:18:09,116 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:18:10,171 [DEBUG][       Thread-599985][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:18:10,171 [DEBUG][       Thread-599985][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:18:10,227 [DEBUG][       Thread-599985][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:18:10,227 [DEBUG][       Thread-599985][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:18:10,236 [DEBUG][       Thread-599985][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:18:10,247 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:18:10,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-07-01 09:18:10,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-07-01 09:18:10,266 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:18:10,266 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:18:10,266 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:18:10,274 [DEBUG][       Thread-599985][   transport.py][1871] : EOF in transport thread
2025-07-01 09:18:11,794 [DEBUG][Thread-599987 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:18:19,921 [DEBUG][Thread-599988 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:18:20,276 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:18:20,276 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:18:20,276 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:18:20,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-07-01 09:18:20,751 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 17, 57), 9.32, 52.1, 0.0, 38.06, 8.3, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:18:20,751 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:17:57
2025-07-01 09:18:20,834 [DEBUG][Thread-599989 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:18:20,835 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:18:20,839 [DEBUG][       Thread-599990][   transport.py][1871] : starting thread (client mode): 0x81e7100
2025-07-01 09:18:20,839 [DEBUG][       Thread-599990][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:18:20,859 [DEBUG][       Thread-599990][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:18:20,859 [ INFO][       Thread-599990][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:18:20,862 [DEBUG][       Thread-599990][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:18:20,862 [DEBUG][       Thread-599990][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:18:20,862 [DEBUG][       Thread-599990][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:18:20,862 [DEBUG][       Thread-599990][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:18:20,862 [DEBUG][       Thread-599990][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:18:20,862 [DEBUG][       Thread-599990][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:18:20,862 [DEBUG][       Thread-599990][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:18:20,862 [DEBUG][       Thread-599990][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:18:20,862 [DEBUG][       Thread-599990][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:18:20,862 [DEBUG][       Thread-599990][   transport.py][1871] : client lang: <none>
2025-07-01 09:18:20,862 [DEBUG][       Thread-599990][   transport.py][1871] : server lang: <none>
2025-07-01 09:18:20,862 [DEBUG][       Thread-599990][   transport.py][1871] : kex follows: False
2025-07-01 09:18:20,862 [DEBUG][       Thread-599990][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:18:20,862 [DEBUG][       Thread-599990][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:18:20,862 [DEBUG][       Thread-599990][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:18:20,862 [DEBUG][       Thread-599990][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:18:20,862 [DEBUG][       Thread-599990][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:18:20,862 [DEBUG][       Thread-599990][   transport.py][1871] : Compression: none
2025-07-01 09:18:20,862 [DEBUG][       Thread-599990][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:18:20,877 [DEBUG][       Thread-599990][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:18:20,878 [DEBUG][       Thread-599990][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:18:20,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:18:20,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:18:20,879 [DEBUG][       Thread-599990][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:18:20,879 [DEBUG][       Thread-599990][   transport.py][1871] : userauth is OK
2025-07-01 09:18:20,892 [ INFO][       Thread-599990][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:18:20,892 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:18:21,512 [DEBUG][       Thread-599990][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:18:21,512 [DEBUG][       Thread-599990][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:18:21,553 [DEBUG][       Thread-599990][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:18:21,553 [DEBUG][       Thread-599990][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:18:21,556 [DEBUG][       Thread-599990][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:18:21,567 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:18:21,568 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:18:21,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:18:21,571 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:18:21,577 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:18:21,578 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:18:21,579 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:18:21,579 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:18:21,579 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.303762 -999.00   +8.10  41.84     57   +0.10 1 1 2 1 1   887    0 8.92 40.13 ----- 41.8 41.8 21.0 47.2 10.8 -23.5 9.9 -23.6 8.9 -23.0 9.8 -22.9
2025-07-01 09:18:21,579 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:18:21,579 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:18:21,580 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.303762
2025-07-01 09:18:21,580 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:18:21,581 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:18:21,581 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:18:21,581 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:18:21,581 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:18:21,581 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:17:57', tmtdew=9.32, humidity=52.1, cloud=0.0, wind=38.06, temperature=8.3, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:17:25.037', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:18:21,582 [DEBUG][       Thread-599990][   transport.py][1871] : EOF in transport thread
2025-07-01 09:18:21,664 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:18:21,760 [DEBUG][       Thread-599993][   transport.py][1871] : starting thread (client mode): 0x8156e00
2025-07-01 09:18:21,761 [DEBUG][       Thread-599993][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:18:21,777 [DEBUG][       Thread-599993][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:18:21,777 [ INFO][       Thread-599993][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:18:21,791 [DEBUG][       Thread-599993][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:18:21,792 [DEBUG][       Thread-599993][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:18:21,792 [DEBUG][       Thread-599993][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:18:21,792 [DEBUG][       Thread-599993][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:18:21,792 [DEBUG][       Thread-599993][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:18:21,792 [DEBUG][       Thread-599993][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:18:21,792 [DEBUG][       Thread-599993][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:18:21,792 [DEBUG][       Thread-599993][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:18:21,792 [DEBUG][       Thread-599993][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:18:21,792 [DEBUG][       Thread-599993][   transport.py][1871] : client lang: <none>
2025-07-01 09:18:21,792 [DEBUG][       Thread-599993][   transport.py][1871] : server lang: <none>
2025-07-01 09:18:21,792 [DEBUG][       Thread-599993][   transport.py][1871] : kex follows: False
2025-07-01 09:18:21,792 [DEBUG][       Thread-599993][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:18:21,792 [DEBUG][       Thread-599993][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:18:21,792 [DEBUG][       Thread-599993][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:18:21,793 [DEBUG][       Thread-599993][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:18:21,793 [DEBUG][       Thread-599993][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:18:21,793 [DEBUG][       Thread-599993][   transport.py][1871] : Compression: none
2025-07-01 09:18:21,793 [DEBUG][       Thread-599993][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:18:21,845 [DEBUG][       Thread-599993][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:18:21,846 [DEBUG][       Thread-599993][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:18:21,847 [DEBUG][       Thread-599993][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:18:21,847 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:18:21,847 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:18:21,908 [DEBUG][       Thread-599993][   transport.py][1871] : userauth is OK
2025-07-01 09:18:21,908 [DEBUG][       Thread-599993][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:18:21,909 [DEBUG][       Thread-599993][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:18:21,909 [DEBUG][       Thread-599993][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:18:21,909 [DEBUG][       Thread-599993][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:18:21,933 [ INFO][       Thread-599993][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:18:21,934 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:18:21,934 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:18:22,947 [DEBUG][       Thread-599993][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:18:22,948 [DEBUG][       Thread-599993][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:18:22,996 [DEBUG][       Thread-599993][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:18:22,996 [DEBUG][       Thread-599993][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:18:23,010 [DEBUG][       Thread-599993][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:18:23,023 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:18:23,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-07-01 09:18:23,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-07-01 09:18:23,041 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:18:23,042 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:18:23,042 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:18:23,051 [DEBUG][       Thread-599993][   transport.py][1871] : EOF in transport thread
2025-07-01 09:18:29,855 [DEBUG][Thread-599995 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:18:33,053 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:18:33,053 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:18:33,053 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:18:33,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-07-01 09:18:33,530 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 18, 29), 9.32, 51.77, 0.0, 40.39, 8.28, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:18:33,530 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:18:29
2025-07-01 09:18:33,615 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:18:33,620 [DEBUG][       Thread-599996][   transport.py][1871] : starting thread (client mode): 0x8156bf0
2025-07-01 09:18:33,620 [DEBUG][       Thread-599996][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:18:33,643 [DEBUG][       Thread-599996][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:18:33,643 [ INFO][       Thread-599996][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:18:33,646 [DEBUG][       Thread-599996][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:18:33,646 [DEBUG][       Thread-599996][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:18:33,646 [DEBUG][       Thread-599996][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:18:33,646 [DEBUG][       Thread-599996][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:18:33,646 [DEBUG][       Thread-599996][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:18:33,646 [DEBUG][       Thread-599996][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:18:33,646 [DEBUG][       Thread-599996][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:18:33,646 [DEBUG][       Thread-599996][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:18:33,646 [DEBUG][       Thread-599996][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:18:33,646 [DEBUG][       Thread-599996][   transport.py][1871] : client lang: <none>
2025-07-01 09:18:33,646 [DEBUG][       Thread-599996][   transport.py][1871] : server lang: <none>
2025-07-01 09:18:33,646 [DEBUG][       Thread-599996][   transport.py][1871] : kex follows: False
2025-07-01 09:18:33,646 [DEBUG][       Thread-599996][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:18:33,646 [DEBUG][       Thread-599996][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:18:33,646 [DEBUG][       Thread-599996][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:18:33,646 [DEBUG][       Thread-599996][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:18:33,646 [DEBUG][       Thread-599996][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:18:33,646 [DEBUG][       Thread-599996][   transport.py][1871] : Compression: none
2025-07-01 09:18:33,646 [DEBUG][       Thread-599996][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:18:33,663 [DEBUG][       Thread-599996][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:18:33,664 [DEBUG][       Thread-599996][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:18:33,664 [DEBUG][       Thread-599996][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:18:33,664 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:18:33,665 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:18:33,666 [DEBUG][       Thread-599996][   transport.py][1871] : userauth is OK
2025-07-01 09:18:33,678 [ INFO][       Thread-599996][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:18:33,679 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:18:34,312 [DEBUG][       Thread-599996][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:18:34,313 [DEBUG][       Thread-599996][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:18:34,357 [DEBUG][       Thread-599996][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:18:34,357 [DEBUG][       Thread-599996][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:18:34,360 [DEBUG][       Thread-599996][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:18:34,375 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:18:34,376 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:18:34,377 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:18:34,379 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:18:34,384 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:18:34,386 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:18:34,386 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:18:34,387 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:18:34,387 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.304109 -999.00   +8.10  30.93     57   +0.10 1 1 2 1 1   887    0 9.00 38.72 ----- 30.9 30.9 8.2 46.7 10.8 -24.1 9.9 -23.4 9.0 -23.1 9.9 -22.4
2025-07-01 09:18:34,387 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:18:34,387 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:18:34,387 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.304109
2025-07-01 09:18:34,388 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:18:34,388 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:18:34,388 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:18:34,388 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:18:34,389 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:18:34,389 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:18:29', tmtdew=9.32, humidity=51.77, cloud=0.0, wind=40.39, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:17:55.018', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:18:34,390 [DEBUG][       Thread-599996][   transport.py][1871] : EOF in transport thread
2025-07-01 09:18:34,472 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:18:34,485 [DEBUG][       Thread-599999][   transport.py][1871] : starting thread (client mode): 0x81a4c70
2025-07-01 09:18:34,485 [DEBUG][       Thread-599999][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:18:34,501 [DEBUG][       Thread-599999][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:18:34,501 [ INFO][       Thread-599999][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:18:34,508 [DEBUG][       Thread-599999][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:18:34,508 [DEBUG][       Thread-599999][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:18:34,508 [DEBUG][       Thread-599999][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:18:34,508 [DEBUG][       Thread-599999][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:18:34,508 [DEBUG][       Thread-599999][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:18:34,509 [DEBUG][       Thread-599999][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:18:34,509 [DEBUG][       Thread-599999][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:18:34,509 [DEBUG][       Thread-599999][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:18:34,509 [DEBUG][       Thread-599999][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:18:34,509 [DEBUG][       Thread-599999][   transport.py][1871] : client lang: <none>
2025-07-01 09:18:34,509 [DEBUG][       Thread-599999][   transport.py][1871] : server lang: <none>
2025-07-01 09:18:34,509 [DEBUG][       Thread-599999][   transport.py][1871] : kex follows: False
2025-07-01 09:18:34,509 [DEBUG][       Thread-599999][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:18:34,509 [DEBUG][       Thread-599999][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:18:34,509 [DEBUG][       Thread-599999][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:18:34,509 [DEBUG][       Thread-599999][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:18:34,509 [DEBUG][       Thread-599999][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:18:34,509 [DEBUG][       Thread-599999][   transport.py][1871] : Compression: none
2025-07-01 09:18:34,509 [DEBUG][       Thread-599999][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:18:34,565 [DEBUG][       Thread-599999][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:18:34,565 [DEBUG][       Thread-599999][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:18:34,566 [DEBUG][       Thread-599999][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:18:34,566 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:18:34,567 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:18:34,621 [DEBUG][       Thread-599999][   transport.py][1871] : userauth is OK
2025-07-01 09:18:34,621 [DEBUG][       Thread-599999][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:18:34,621 [DEBUG][       Thread-599999][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:18:34,622 [DEBUG][       Thread-599999][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:18:34,622 [DEBUG][       Thread-599999][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:18:34,641 [ INFO][       Thread-599999][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:18:34,641 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:18:34,641 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:18:35,616 [DEBUG][       Thread-599999][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:18:35,616 [DEBUG][       Thread-599999][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:18:35,665 [DEBUG][       Thread-599999][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:18:35,665 [DEBUG][       Thread-599999][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:18:35,674 [DEBUG][       Thread-599999][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:18:35,683 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:18: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-07-01 09:18: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-07-01 09:18:35,701 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:18:35,701 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:18:35,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:18:35,714 [DEBUG][       Thread-599999][   transport.py][1871] : EOF in transport thread
2025-07-01 09:18:38,872 [DEBUG][Thread-600001 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:18:45,712 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:18:45,713 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:18:45,713 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:18:45,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-07-01 09:18:46,187 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 18, 29), 9.32, 51.77, 0.0, 40.39, 8.28, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:18:46,187 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:18:29
2025-07-01 09:18:46,271 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:18:46,275 [DEBUG][       Thread-600002][   transport.py][1871] : starting thread (client mode): 0x81a4b50
2025-07-01 09:18:46,275 [DEBUG][       Thread-600002][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:18:46,296 [DEBUG][       Thread-600002][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:18:46,296 [ INFO][       Thread-600002][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:18:46,299 [DEBUG][       Thread-600002][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:18:46,299 [DEBUG][       Thread-600002][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:18:46,299 [DEBUG][       Thread-600002][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:18:46,299 [DEBUG][       Thread-600002][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:18:46,299 [DEBUG][       Thread-600002][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:18:46,299 [DEBUG][       Thread-600002][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:18:46,299 [DEBUG][       Thread-600002][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:18:46,299 [DEBUG][       Thread-600002][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:18:46,300 [DEBUG][       Thread-600002][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:18:46,300 [DEBUG][       Thread-600002][   transport.py][1871] : client lang: <none>
2025-07-01 09:18:46,300 [DEBUG][       Thread-600002][   transport.py][1871] : server lang: <none>
2025-07-01 09:18:46,300 [DEBUG][       Thread-600002][   transport.py][1871] : kex follows: False
2025-07-01 09:18:46,300 [DEBUG][       Thread-600002][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:18:46,300 [DEBUG][       Thread-600002][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:18:46,300 [DEBUG][       Thread-600002][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:18:46,300 [DEBUG][       Thread-600002][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:18:46,300 [DEBUG][       Thread-600002][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:18:46,300 [DEBUG][       Thread-600002][   transport.py][1871] : Compression: none
2025-07-01 09:18:46,300 [DEBUG][       Thread-600002][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:18:46,315 [DEBUG][       Thread-600002][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:18:46,316 [DEBUG][       Thread-600002][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:18:46,316 [DEBUG][       Thread-600002][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:18:46,316 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:18:46,317 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:18:46,318 [DEBUG][       Thread-600002][   transport.py][1871] : userauth is OK
2025-07-01 09:18:46,343 [ INFO][       Thread-600002][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:18:46,344 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:18:46,976 [DEBUG][       Thread-600002][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:18:46,976 [DEBUG][       Thread-600002][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:18:47,017 [DEBUG][       Thread-600002][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:18:47,017 [DEBUG][       Thread-600002][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:18:47,021 [DEBUG][       Thread-600002][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:18:47,032 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:18:47,033 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:18:47,035 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:18:47,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:18:47,042 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:18:47,043 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:18:47,044 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:18:47,044 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:18:47,044 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.304109 -999.00   +8.10  30.93     57   +0.10 1 1 2 1 1   887    0 9.00 38.72 ----- 30.9 30.9 8.2 46.7 10.8 -24.1 9.9 -23.4 9.0 -23.1 9.9 -22.4
2025-07-01 09:18:47,045 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:18:47,045 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:18:47,045 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.304109
2025-07-01 09:18:47,045 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:18:47,046 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:18:47,046 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:18:47,046 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:18:47,046 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:18:47,046 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:18:29', tmtdew=9.32, humidity=51.77, cloud=0.0, wind=40.39, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:17:55.018', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:18:47,047 [DEBUG][       Thread-600002][   transport.py][1871] : EOF in transport thread
2025-07-01 09:18:47,129 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:18:47,139 [DEBUG][       Thread-600005][   transport.py][1871] : starting thread (client mode): 0x8105ae0
2025-07-01 09:18:47,139 [DEBUG][       Thread-600005][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:18:47,155 [DEBUG][       Thread-600005][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:18:47,155 [ INFO][       Thread-600005][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:18:47,163 [DEBUG][       Thread-600005][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:18:47,163 [DEBUG][       Thread-600005][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:18:47,163 [DEBUG][       Thread-600005][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:18:47,163 [DEBUG][       Thread-600005][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:18:47,163 [DEBUG][       Thread-600005][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:18:47,163 [DEBUG][       Thread-600005][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:18:47,163 [DEBUG][       Thread-600005][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:18:47,163 [DEBUG][       Thread-600005][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:18:47,163 [DEBUG][       Thread-600005][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:18:47,163 [DEBUG][       Thread-600005][   transport.py][1871] : client lang: <none>
2025-07-01 09:18:47,163 [DEBUG][       Thread-600005][   transport.py][1871] : server lang: <none>
2025-07-01 09:18:47,163 [DEBUG][       Thread-600005][   transport.py][1871] : kex follows: False
2025-07-01 09:18:47,163 [DEBUG][       Thread-600005][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:18:47,163 [DEBUG][       Thread-600005][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:18:47,164 [DEBUG][       Thread-600005][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:18:47,164 [DEBUG][       Thread-600005][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:18:47,164 [DEBUG][       Thread-600005][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:18:47,164 [DEBUG][       Thread-600005][   transport.py][1871] : Compression: none
2025-07-01 09:18:47,164 [DEBUG][       Thread-600005][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:18:47,222 [DEBUG][       Thread-600005][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:18:47,222 [DEBUG][       Thread-600005][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:18:47,222 [DEBUG][       Thread-600005][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:18:47,222 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:18:47,222 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:18:47,281 [DEBUG][       Thread-600005][   transport.py][1871] : userauth is OK
2025-07-01 09:18:47,281 [DEBUG][       Thread-600005][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:18:47,281 [DEBUG][       Thread-600005][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:18:47,281 [DEBUG][       Thread-600005][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:18:47,281 [DEBUG][       Thread-600005][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:18:47,295 [ INFO][       Thread-600005][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:18:47,296 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:18:47,296 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:18:47,898 [DEBUG][Thread-600007 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:18:48,280 [DEBUG][       Thread-600005][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:18:48,280 [DEBUG][       Thread-600005][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:18:48,328 [DEBUG][       Thread-600005][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:18:48,328 [DEBUG][       Thread-600005][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:18:48,338 [DEBUG][       Thread-600005][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:18:48,347 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:18:48,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-07-01 09:18:48,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-07-01 09:18:48,366 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:18:48,366 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:18:48,366 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:18:48,374 [DEBUG][       Thread-600005][   transport.py][1871] : EOF in transport thread
2025-07-01 09:18:49,808 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:18:49,809 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:18:56,921 [DEBUG][Thread-600008 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:18:58,377 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:18:58,377 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:18:58,377 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:18:58,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-07-01 09:18:58,844 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 18, 29), 9.32, 51.77, 0.0, 40.39, 8.28, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:18:58,844 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:18:29
2025-07-01 09:18:58,929 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:18:58,933 [DEBUG][       Thread-600009][   transport.py][1871] : starting thread (client mode): 0x81a7b50
2025-07-01 09:18:58,933 [DEBUG][       Thread-600009][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:18:58,953 [DEBUG][       Thread-600009][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:18:58,953 [ INFO][       Thread-600009][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:18:58,957 [DEBUG][       Thread-600009][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:18:58,957 [DEBUG][       Thread-600009][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:18:58,957 [DEBUG][       Thread-600009][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:18:58,957 [DEBUG][       Thread-600009][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:18:58,957 [DEBUG][       Thread-600009][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:18:58,957 [DEBUG][       Thread-600009][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:18:58,957 [DEBUG][       Thread-600009][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:18:58,957 [DEBUG][       Thread-600009][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:18:58,957 [DEBUG][       Thread-600009][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:18:58,957 [DEBUG][       Thread-600009][   transport.py][1871] : client lang: <none>
2025-07-01 09:18:58,957 [DEBUG][       Thread-600009][   transport.py][1871] : server lang: <none>
2025-07-01 09:18:58,957 [DEBUG][       Thread-600009][   transport.py][1871] : kex follows: False
2025-07-01 09:18:58,957 [DEBUG][       Thread-600009][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:18:58,957 [DEBUG][       Thread-600009][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:18:58,957 [DEBUG][       Thread-600009][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:18:58,957 [DEBUG][       Thread-600009][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:18:58,957 [DEBUG][       Thread-600009][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:18:58,957 [DEBUG][       Thread-600009][   transport.py][1871] : Compression: none
2025-07-01 09:18:58,957 [DEBUG][       Thread-600009][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:18:58,976 [DEBUG][       Thread-600009][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:18:58,976 [DEBUG][       Thread-600009][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:18:58,977 [DEBUG][       Thread-600009][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:18:58,977 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:18:58,977 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:18:58,978 [DEBUG][       Thread-600009][   transport.py][1871] : userauth is OK
2025-07-01 09:18:59,003 [ INFO][       Thread-600009][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:18:59,003 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:18:59,645 [DEBUG][       Thread-600009][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:18:59,645 [DEBUG][       Thread-600009][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:18:59,688 [DEBUG][       Thread-600009][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:18:59,688 [DEBUG][       Thread-600009][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:18:59,691 [DEBUG][       Thread-600009][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:18:59,702 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:18:59,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:18:59,703 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:18:59,704 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:18:59,708 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:18:59,709 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:18:59,709 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:18:59,709 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:18:59,709 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.304109 -999.00   +8.10  30.93     57   +0.10 1 1 2 1 1   887    0 9.00 38.72 ----- 30.9 30.9 8.2 46.7 10.8 -24.1 9.9 -23.4 9.0 -23.1 9.9 -22.4
2025-07-01 09:18:59,709 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:18:59,709 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:18:59,709 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.304109
2025-07-01 09:18:59,709 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:18:59,709 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:18:59,709 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:18:59,709 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:18:59,709 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:18:59,709 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:18:29', tmtdew=9.32, humidity=51.77, cloud=0.0, wind=40.39, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:17:55.018', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:18:59,710 [DEBUG][       Thread-600009][   transport.py][1871] : EOF in transport thread
2025-07-01 09:18:59,780 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:18:59,792 [DEBUG][       Thread-600012][   transport.py][1871] : starting thread (client mode): 0x8157100
2025-07-01 09:18:59,792 [DEBUG][       Thread-600012][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:18:59,808 [DEBUG][       Thread-600012][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:18:59,808 [ INFO][       Thread-600012][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:18:59,816 [DEBUG][       Thread-600012][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:18:59,816 [DEBUG][       Thread-600012][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:18:59,816 [DEBUG][       Thread-600012][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:18:59,816 [DEBUG][       Thread-600012][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:18:59,816 [DEBUG][       Thread-600012][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:18:59,816 [DEBUG][       Thread-600012][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:18:59,816 [DEBUG][       Thread-600012][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:18:59,816 [DEBUG][       Thread-600012][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:18:59,816 [DEBUG][       Thread-600012][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:18:59,816 [DEBUG][       Thread-600012][   transport.py][1871] : client lang: <none>
2025-07-01 09:18:59,816 [DEBUG][       Thread-600012][   transport.py][1871] : server lang: <none>
2025-07-01 09:18:59,816 [DEBUG][       Thread-600012][   transport.py][1871] : kex follows: False
2025-07-01 09:18:59,816 [DEBUG][       Thread-600012][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:18:59,817 [DEBUG][       Thread-600012][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:18:59,817 [DEBUG][       Thread-600012][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:18:59,817 [DEBUG][       Thread-600012][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:18:59,817 [DEBUG][       Thread-600012][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:18:59,817 [DEBUG][       Thread-600012][   transport.py][1871] : Compression: none
2025-07-01 09:18:59,817 [DEBUG][       Thread-600012][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:18:59,882 [DEBUG][       Thread-600012][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:18:59,882 [DEBUG][       Thread-600012][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:18:59,883 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:18:59,883 [DEBUG][       Thread-600012][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:18:59,884 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:18:59,941 [DEBUG][       Thread-600012][   transport.py][1871] : userauth is OK
2025-07-01 09:18:59,941 [DEBUG][       Thread-600012][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:18:59,941 [DEBUG][       Thread-600012][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:18:59,942 [DEBUG][       Thread-600012][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:18:59,942 [DEBUG][       Thread-600012][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:18:59,966 [ INFO][       Thread-600012][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:18:59,966 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:18:59,967 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:19:01,032 [DEBUG][       Thread-600012][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:19:01,032 [DEBUG][       Thread-600012][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:19:01,080 [DEBUG][       Thread-600012][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:19:01,080 [DEBUG][       Thread-600012][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:19:01,094 [DEBUG][       Thread-600012][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:19:01,104 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:19:01,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-07-01 09:19:01,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-07-01 09:19:01,126 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:19:01,126 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:19:01,127 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:19:01,139 [DEBUG][       Thread-600012][   transport.py][1871] : EOF in transport thread
2025-07-01 09:19:05,939 [DEBUG][Thread-600014 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:19:11,136 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:19:11,136 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:19:11,136 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:19:11,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-07-01 09:19:11,607 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 19, 1), 9.33, 51.73, 0.0, 41.8, 8.28, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:19:11,607 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:19:01
2025-07-01 09:19:11,692 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:19:11,696 [DEBUG][       Thread-600015][   transport.py][1871] : starting thread (client mode): 0x81a6e90
2025-07-01 09:19:11,696 [DEBUG][       Thread-600015][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:19:11,716 [DEBUG][       Thread-600015][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:19:11,716 [ INFO][       Thread-600015][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:19:11,720 [DEBUG][       Thread-600015][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:19:11,720 [DEBUG][       Thread-600015][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:19:11,720 [DEBUG][       Thread-600015][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:19:11,720 [DEBUG][       Thread-600015][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:19:11,720 [DEBUG][       Thread-600015][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:19:11,720 [DEBUG][       Thread-600015][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:19:11,720 [DEBUG][       Thread-600015][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:19:11,720 [DEBUG][       Thread-600015][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:19:11,720 [DEBUG][       Thread-600015][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:19:11,720 [DEBUG][       Thread-600015][   transport.py][1871] : client lang: <none>
2025-07-01 09:19:11,720 [DEBUG][       Thread-600015][   transport.py][1871] : server lang: <none>
2025-07-01 09:19:11,720 [DEBUG][       Thread-600015][   transport.py][1871] : kex follows: False
2025-07-01 09:19:11,720 [DEBUG][       Thread-600015][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:19:11,720 [DEBUG][       Thread-600015][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:19:11,720 [DEBUG][       Thread-600015][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:19:11,720 [DEBUG][       Thread-600015][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:19:11,721 [DEBUG][       Thread-600015][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:19:11,721 [DEBUG][       Thread-600015][   transport.py][1871] : Compression: none
2025-07-01 09:19:11,721 [DEBUG][       Thread-600015][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:19:11,739 [DEBUG][       Thread-600015][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:19:11,740 [DEBUG][       Thread-600015][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:19:11,740 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:19:11,740 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:19:11,741 [DEBUG][       Thread-600015][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:19:11,741 [DEBUG][       Thread-600015][   transport.py][1871] : userauth is OK
2025-07-01 09:19:11,754 [ INFO][       Thread-600015][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:19:11,755 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:19:12,422 [DEBUG][       Thread-600015][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:19:12,422 [DEBUG][       Thread-600015][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:19:12,465 [DEBUG][       Thread-600015][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:19:12,465 [DEBUG][       Thread-600015][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:19:12,469 [DEBUG][       Thread-600015][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:19:12,483 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:19:12,484 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:19:12,486 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:19:12,488 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:19:12,494 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:19:12,496 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:19:12,496 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:19:12,497 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:19:12,497 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.304803 -999.00   +8.20  33.39     57   +0.20 1 1 2 1 1   887    0 8.86 37.08 ----- 33.4 33.4 24.5 39.3 10.8 -23.6 10.0 -24.9 9.1 -23.0 9.9 -22.7
2025-07-01 09:19:12,497 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:19:12,497 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:19:12,497 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.304803
2025-07-01 09:19:12,498 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:19:12,499 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:19:12,499 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:19:12,499 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:19:12,499 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:19:12,499 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:19:01', tmtdew=9.33, humidity=51.73, cloud=0.0, wind=41.8, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:18:54.979', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:19:12,499 [DEBUG][       Thread-600015][   transport.py][1871] : EOF in transport thread
2025-07-01 09:19:12,583 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:19:12,592 [DEBUG][       Thread-600018][   transport.py][1871] : starting thread (client mode): 0x8105de0
2025-07-01 09:19:12,592 [DEBUG][       Thread-600018][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:19:12,607 [DEBUG][       Thread-600018][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:19:12,607 [ INFO][       Thread-600018][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:19:12,615 [DEBUG][       Thread-600018][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:19:12,615 [DEBUG][       Thread-600018][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:19:12,615 [DEBUG][       Thread-600018][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:19:12,615 [DEBUG][       Thread-600018][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:19:12,615 [DEBUG][       Thread-600018][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:19:12,615 [DEBUG][       Thread-600018][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:19:12,615 [DEBUG][       Thread-600018][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:19:12,616 [DEBUG][       Thread-600018][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:19:12,616 [DEBUG][       Thread-600018][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:19:12,616 [DEBUG][       Thread-600018][   transport.py][1871] : client lang: <none>
2025-07-01 09:19:12,616 [DEBUG][       Thread-600018][   transport.py][1871] : server lang: <none>
2025-07-01 09:19:12,616 [DEBUG][       Thread-600018][   transport.py][1871] : kex follows: False
2025-07-01 09:19:12,616 [DEBUG][       Thread-600018][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:19:12,616 [DEBUG][       Thread-600018][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:19:12,616 [DEBUG][       Thread-600018][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:19:12,616 [DEBUG][       Thread-600018][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:19:12,616 [DEBUG][       Thread-600018][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:19:12,616 [DEBUG][       Thread-600018][   transport.py][1871] : Compression: none
2025-07-01 09:19:12,616 [DEBUG][       Thread-600018][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:19:12,673 [DEBUG][       Thread-600018][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:19:12,673 [DEBUG][       Thread-600018][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:19:12,674 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:19:12,674 [DEBUG][       Thread-600018][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:19:12,675 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:19:12,729 [DEBUG][       Thread-600018][   transport.py][1871] : userauth is OK
2025-07-01 09:19:12,729 [DEBUG][       Thread-600018][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:19:12,729 [DEBUG][       Thread-600018][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:19:12,729 [DEBUG][       Thread-600018][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:19:12,730 [DEBUG][       Thread-600018][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:19:12,748 [ INFO][       Thread-600018][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:19:12,748 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:19:12,749 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:19:13,769 [DEBUG][       Thread-600018][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:19:13,770 [DEBUG][       Thread-600018][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:19:13,820 [DEBUG][       Thread-600018][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:19:13,820 [DEBUG][       Thread-600018][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:19:13,829 [DEBUG][       Thread-600018][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:19:13,838 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:19:13,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-07-01 09:19:13,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-07-01 09:19:13,856 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:19:13,856 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:19:13,856 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:19:13,864 [DEBUG][       Thread-600018][   transport.py][1871] : EOF in transport thread
2025-07-01 09:19:14,958 [DEBUG][Thread-600020 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:19:19,976 [DEBUG][Thread-600021 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:19:23,867 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:19:23,867 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:19:23,867 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:19:23,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-07-01 09:19:24,001 [DEBUG][Thread-600022 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:19:24,349 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 19, 1), 9.33, 51.73, 0.0, 41.8, 8.28, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:19:24,349 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:19:01
2025-07-01 09:19:24,435 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:19:24,442 [DEBUG][       Thread-600023][   transport.py][1871] : starting thread (client mode): 0x8105de0
2025-07-01 09:19:24,442 [DEBUG][       Thread-600023][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:19:24,462 [DEBUG][       Thread-600023][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:19:24,462 [ INFO][       Thread-600023][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:19:24,466 [DEBUG][       Thread-600023][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:19:24,466 [DEBUG][       Thread-600023][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:19:24,466 [DEBUG][       Thread-600023][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:19:24,466 [DEBUG][       Thread-600023][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:19:24,466 [DEBUG][       Thread-600023][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:19:24,466 [DEBUG][       Thread-600023][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:19:24,466 [DEBUG][       Thread-600023][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:19:24,466 [DEBUG][       Thread-600023][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:19:24,466 [DEBUG][       Thread-600023][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:19:24,466 [DEBUG][       Thread-600023][   transport.py][1871] : client lang: <none>
2025-07-01 09:19:24,466 [DEBUG][       Thread-600023][   transport.py][1871] : server lang: <none>
2025-07-01 09:19:24,466 [DEBUG][       Thread-600023][   transport.py][1871] : kex follows: False
2025-07-01 09:19:24,466 [DEBUG][       Thread-600023][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:19:24,467 [DEBUG][       Thread-600023][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:19:24,467 [DEBUG][       Thread-600023][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:19:24,467 [DEBUG][       Thread-600023][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:19:24,467 [DEBUG][       Thread-600023][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:19:24,467 [DEBUG][       Thread-600023][   transport.py][1871] : Compression: none
2025-07-01 09:19:24,467 [DEBUG][       Thread-600023][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:19:24,483 [DEBUG][       Thread-600023][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:19:24,484 [DEBUG][       Thread-600023][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:19:24,484 [DEBUG][       Thread-600023][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:19:24,485 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:19:24,485 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:19:24,486 [DEBUG][       Thread-600023][   transport.py][1871] : userauth is OK
2025-07-01 09:19:24,511 [ INFO][       Thread-600023][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:19:24,512 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:19:25,129 [DEBUG][       Thread-600023][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:19:25,129 [DEBUG][       Thread-600023][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:19:25,173 [DEBUG][       Thread-600023][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:19:25,173 [DEBUG][       Thread-600023][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:19:25,177 [DEBUG][       Thread-600023][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:19:25,188 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:19:25,188 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:19:25,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:19:25,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:19:25,197 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:19:25,199 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:19:25,200 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:19:25,200 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:19:25,200 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.304803 -999.00   +8.20  33.39     57   +0.20 1 1 2 1 1   887    0 8.86 37.08 ----- 33.4 33.4 24.5 39.3 10.8 -23.6 10.0 -24.9 9.1 -23.0 9.9 -22.7
2025-07-01 09:19:25,200 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:19:25,200 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:19:25,201 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.304803
2025-07-01 09:19:25,201 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:19:25,201 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:19:25,202 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:19:25,202 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:19:25,202 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:19:25,202 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:19:01', tmtdew=9.33, humidity=51.73, cloud=0.0, wind=41.8, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:18:54.979', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:19:25,203 [DEBUG][       Thread-600023][   transport.py][1871] : EOF in transport thread
2025-07-01 09:19:25,285 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:19:25,301 [DEBUG][       Thread-600026][   transport.py][1871] : starting thread (client mode): 0x81e70d0
2025-07-01 09:19:25,301 [DEBUG][       Thread-600026][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:19:25,323 [DEBUG][       Thread-600026][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:19:25,323 [ INFO][       Thread-600026][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:19:25,333 [DEBUG][       Thread-600026][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:19:25,333 [DEBUG][       Thread-600026][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:19:25,334 [DEBUG][       Thread-600026][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:19:25,334 [DEBUG][       Thread-600026][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:19:25,334 [DEBUG][       Thread-600026][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:19:25,334 [DEBUG][       Thread-600026][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:19:25,334 [DEBUG][       Thread-600026][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:19:25,334 [DEBUG][       Thread-600026][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:19:25,334 [DEBUG][       Thread-600026][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:19:25,334 [DEBUG][       Thread-600026][   transport.py][1871] : client lang: <none>
2025-07-01 09:19:25,334 [DEBUG][       Thread-600026][   transport.py][1871] : server lang: <none>
2025-07-01 09:19:25,334 [DEBUG][       Thread-600026][   transport.py][1871] : kex follows: False
2025-07-01 09:19:25,334 [DEBUG][       Thread-600026][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:19:25,334 [DEBUG][       Thread-600026][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:19:25,334 [DEBUG][       Thread-600026][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:19:25,334 [DEBUG][       Thread-600026][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:19:25,334 [DEBUG][       Thread-600026][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:19:25,334 [DEBUG][       Thread-600026][   transport.py][1871] : Compression: none
2025-07-01 09:19:25,335 [DEBUG][       Thread-600026][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:19:25,400 [DEBUG][       Thread-600026][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:19:25,400 [DEBUG][       Thread-600026][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:19:25,401 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:19:25,401 [DEBUG][       Thread-600026][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:19:25,402 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:19:25,462 [DEBUG][       Thread-600026][   transport.py][1871] : userauth is OK
2025-07-01 09:19:25,463 [DEBUG][       Thread-600026][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:19:25,463 [DEBUG][       Thread-600026][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:19:25,463 [DEBUG][       Thread-600026][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:19:25,463 [DEBUG][       Thread-600026][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:19:25,484 [ INFO][       Thread-600026][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:19:25,484 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:19:25,485 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:19:26,494 [DEBUG][       Thread-600026][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:19:26,495 [DEBUG][       Thread-600026][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:19:26,544 [DEBUG][       Thread-600026][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:19:26,544 [DEBUG][       Thread-600026][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:19:26,553 [DEBUG][       Thread-600026][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:19:26,562 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:19:26,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')
2025-07-01 09:19:26,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-07-01 09:19:26,580 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:19:26,580 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:19:26,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:19:26,589 [DEBUG][       Thread-600026][   transport.py][1871] : EOF in transport thread
2025-07-01 09:19:33,021 [DEBUG][Thread-600028 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:19:36,589 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:19:36,589 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:19:36,589 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:19:36,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-07-01 09:19:37,070 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 19, 32), 9.31, 51.81, 0.0, 33.28, 8.35, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:19:37,070 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:19:32
2025-07-01 09:19:37,155 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:19:37,159 [DEBUG][       Thread-600029][   transport.py][1871] : starting thread (client mode): 0x81e4d90
2025-07-01 09:19:37,159 [DEBUG][       Thread-600029][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:19:37,177 [DEBUG][       Thread-600029][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:19:37,178 [ INFO][       Thread-600029][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:19:37,179 [DEBUG][       Thread-600029][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:19:37,180 [DEBUG][       Thread-600029][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:19:37,180 [DEBUG][       Thread-600029][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:19:37,180 [DEBUG][       Thread-600029][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:19:37,180 [DEBUG][       Thread-600029][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:19:37,180 [DEBUG][       Thread-600029][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:19:37,180 [DEBUG][       Thread-600029][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:19:37,180 [DEBUG][       Thread-600029][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:19:37,180 [DEBUG][       Thread-600029][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:19:37,180 [DEBUG][       Thread-600029][   transport.py][1871] : client lang: <none>
2025-07-01 09:19:37,180 [DEBUG][       Thread-600029][   transport.py][1871] : server lang: <none>
2025-07-01 09:19:37,180 [DEBUG][       Thread-600029][   transport.py][1871] : kex follows: False
2025-07-01 09:19:37,180 [DEBUG][       Thread-600029][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:19:37,180 [DEBUG][       Thread-600029][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:19:37,180 [DEBUG][       Thread-600029][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:19:37,180 [DEBUG][       Thread-600029][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:19:37,180 [DEBUG][       Thread-600029][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:19:37,180 [DEBUG][       Thread-600029][   transport.py][1871] : Compression: none
2025-07-01 09:19:37,180 [DEBUG][       Thread-600029][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:19:37,194 [DEBUG][       Thread-600029][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:19:37,195 [DEBUG][       Thread-600029][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:19:37,195 [DEBUG][       Thread-600029][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:19:37,196 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:19:37,196 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:19:37,197 [DEBUG][       Thread-600029][   transport.py][1871] : userauth is OK
2025-07-01 09:19:37,210 [ INFO][       Thread-600029][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:19:37,211 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:19:37,834 [DEBUG][       Thread-600029][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:19:37,834 [DEBUG][       Thread-600029][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:19:37,877 [DEBUG][       Thread-600029][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:19:37,877 [DEBUG][       Thread-600029][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:19:37,882 [DEBUG][       Thread-600029][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:19:37,894 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:19:37,894 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:19:37,899 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:19:37,903 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:19:37,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:19:37,921 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:19:37,921 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:19:37,921 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:19:37,922 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.305151 -999.00   +8.20  31.34     56   +0.20 1 1 2 1 1   887    0 8.76 35.26 ----- 31.3 31.3 345.8 51.4 10.9 -23.9 10.0 -24.0 9.1 -23.1 9.9 -22.8
2025-07-01 09:19:37,922 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:19:37,922 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:19:37,922 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.305151
2025-07-01 09:19:37,922 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:19:37,923 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:19:37,923 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:19:37,923 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:19:37,923 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:19:37,923 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:19:32', tmtdew=9.31, humidity=51.81, cloud=0.0, wind=33.28, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:19:25.046', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:19:37,925 [DEBUG][       Thread-600029][   transport.py][1871] : EOF in transport thread
2025-07-01 09:19:38,007 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:19:38,016 [DEBUG][       Thread-600032][   transport.py][1871] : starting thread (client mode): 0x8155360
2025-07-01 09:19:38,016 [DEBUG][       Thread-600032][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:19:38,031 [DEBUG][       Thread-600032][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:19:38,031 [ INFO][       Thread-600032][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:19:38,038 [DEBUG][       Thread-600032][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:19:38,038 [DEBUG][       Thread-600032][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:19:38,039 [DEBUG][       Thread-600032][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:19:38,039 [DEBUG][       Thread-600032][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:19:38,039 [DEBUG][       Thread-600032][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:19:38,039 [DEBUG][       Thread-600032][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:19:38,039 [DEBUG][       Thread-600032][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:19:38,039 [DEBUG][       Thread-600032][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:19:38,039 [DEBUG][       Thread-600032][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:19:38,039 [DEBUG][       Thread-600032][   transport.py][1871] : client lang: <none>
2025-07-01 09:19:38,039 [DEBUG][       Thread-600032][   transport.py][1871] : server lang: <none>
2025-07-01 09:19:38,039 [DEBUG][       Thread-600032][   transport.py][1871] : kex follows: False
2025-07-01 09:19:38,039 [DEBUG][       Thread-600032][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:19:38,039 [DEBUG][       Thread-600032][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:19:38,039 [DEBUG][       Thread-600032][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:19:38,039 [DEBUG][       Thread-600032][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:19:38,039 [DEBUG][       Thread-600032][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:19:38,039 [DEBUG][       Thread-600032][   transport.py][1871] : Compression: none
2025-07-01 09:19:38,039 [DEBUG][       Thread-600032][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:19:38,096 [DEBUG][       Thread-600032][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:19:38,097 [DEBUG][       Thread-600032][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:19:38,098 [DEBUG][       Thread-600032][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:19:38,098 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:19:38,098 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:19:38,157 [DEBUG][       Thread-600032][   transport.py][1871] : userauth is OK
2025-07-01 09:19:38,158 [DEBUG][       Thread-600032][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:19:38,158 [DEBUG][       Thread-600032][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:19:38,158 [DEBUG][       Thread-600032][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:19:38,158 [DEBUG][       Thread-600032][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:19:38,176 [ INFO][       Thread-600032][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:19:38,177 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:19:38,177 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:19:39,178 [DEBUG][       Thread-600032][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:19:39,179 [DEBUG][       Thread-600032][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:19:39,228 [DEBUG][       Thread-600032][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:19:39,228 [DEBUG][       Thread-600032][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:19:39,237 [DEBUG][       Thread-600032][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:19:39,466 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:19:39,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-07-01 09:19:39,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-07-01 09:19:39,492 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:19:39,492 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:19:39,493 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:19:39,501 [DEBUG][       Thread-600032][   transport.py][1871] : EOF in transport thread
2025-07-01 09:19:42,041 [DEBUG][Thread-600034 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:19:49,503 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:19:49,503 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:19:49,503 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:19:49,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-07-01 09:19:49,946 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:19:49,947 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:19:49,968 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 19, 32), 9.31, 51.81, 0.0, 33.28, 8.35, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:19:49,968 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:19:32
2025-07-01 09:19:50,053 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:19:50,057 [DEBUG][       Thread-600035][   transport.py][1871] : starting thread (client mode): 0x8155d20
2025-07-01 09:19:50,057 [DEBUG][       Thread-600035][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:19:50,077 [DEBUG][       Thread-600035][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:19:50,077 [ INFO][       Thread-600035][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:19:50,081 [DEBUG][       Thread-600035][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:19:50,081 [DEBUG][       Thread-600035][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:19:50,081 [DEBUG][       Thread-600035][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:19:50,081 [DEBUG][       Thread-600035][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:19:50,081 [DEBUG][       Thread-600035][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:19:50,081 [DEBUG][       Thread-600035][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:19:50,081 [DEBUG][       Thread-600035][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:19:50,081 [DEBUG][       Thread-600035][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:19:50,081 [DEBUG][       Thread-600035][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:19:50,081 [DEBUG][       Thread-600035][   transport.py][1871] : client lang: <none>
2025-07-01 09:19:50,081 [DEBUG][       Thread-600035][   transport.py][1871] : server lang: <none>
2025-07-01 09:19:50,081 [DEBUG][       Thread-600035][   transport.py][1871] : kex follows: False
2025-07-01 09:19:50,081 [DEBUG][       Thread-600035][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:19:50,081 [DEBUG][       Thread-600035][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:19:50,081 [DEBUG][       Thread-600035][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:19:50,081 [DEBUG][       Thread-600035][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:19:50,081 [DEBUG][       Thread-600035][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:19:50,081 [DEBUG][       Thread-600035][   transport.py][1871] : Compression: none
2025-07-01 09:19:50,081 [DEBUG][       Thread-600035][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:19:50,098 [DEBUG][       Thread-600035][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:19:50,099 [DEBUG][       Thread-600035][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:19:50,099 [DEBUG][       Thread-600035][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:19:50,099 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:19:50,099 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:19:50,101 [DEBUG][       Thread-600035][   transport.py][1871] : userauth is OK
2025-07-01 09:19:50,114 [ INFO][       Thread-600035][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:19:50,115 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:19:50,756 [DEBUG][       Thread-600035][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:19:50,757 [DEBUG][       Thread-600035][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:19:50,801 [DEBUG][       Thread-600035][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:19:50,801 [DEBUG][       Thread-600035][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:19:50,804 [DEBUG][       Thread-600035][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:19:50,816 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:19:50,816 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:19:50,818 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:19:50,820 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:19:50,826 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:19:50,828 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:19:50,828 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:19:50,829 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:19:50,829 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.305151 -999.00   +8.20  31.34     56   +0.20 1 1 2 1 1   887    0 8.76 35.26 ----- 31.3 31.3 345.8 51.4 10.9 -23.9 10.0 -24.0 9.1 -23.1 9.9 -22.8
2025-07-01 09:19:50,829 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:19:50,829 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:19:50,829 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.305151
2025-07-01 09:19:50,830 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:19:50,830 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:19:50,830 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:19:50,830 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:19:50,830 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:19:50,831 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:19:32', tmtdew=9.31, humidity=51.81, cloud=0.0, wind=33.28, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:19:25.046', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:19:50,832 [DEBUG][       Thread-600035][   transport.py][1871] : EOF in transport thread
2025-07-01 09:19:50,915 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:19:51,080 [DEBUG][Thread-600038 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:20:00,099 [DEBUG][Thread-600039 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:20:09,121 [DEBUG][Thread-600040 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:20:18,143 [DEBUG][Thread-600041 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:20:20,025 [DEBUG][Thread-600042 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:20:27,168 [DEBUG][Thread-600043 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:20:36,186 [DEBUG][Thread-600044 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:20:45,206 [DEBUG][Thread-600045 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:20:50,084 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:20:50,085 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:20:54,229 [DEBUG][Thread-600046 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:21:03,251 [DEBUG][Thread-600047 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:21:12,268 [DEBUG][Thread-600048 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:21:20,078 [DEBUG][Thread-600049 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:21:21,289 [DEBUG][Thread-600050 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:21:30,314 [DEBUG][Thread-600051 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:21:39,336 [DEBUG][Thread-600052 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:21:48,356 [DEBUG][Thread-600053 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:21:50,223 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:21:50,224 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:21:57,378 [DEBUG][Thread-600054 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:21:59,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-07-01 09:22:06,402 [DEBUG][Thread-600055 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:22:09,839 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:22:09,839 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:22:09,839 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:22:09,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-07-01 09:22:10,340 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 21, 40), 9.34, 52.06, 0.0, 28.97, 8.4, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:22:10,340 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:21:40
2025-07-01 09:22:10,425 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:22:10,430 [DEBUG][       Thread-600056][   transport.py][1871] : starting thread (client mode): 0x8155360
2025-07-01 09:22:10,430 [DEBUG][       Thread-600056][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:22:10,452 [DEBUG][       Thread-600056][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:22:10,452 [ INFO][       Thread-600056][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:22:10,455 [DEBUG][       Thread-600056][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:22:10,455 [DEBUG][       Thread-600056][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:22:10,455 [DEBUG][       Thread-600056][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:22:10,455 [DEBUG][       Thread-600056][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:22:10,455 [DEBUG][       Thread-600056][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:22:10,455 [DEBUG][       Thread-600056][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:22:10,456 [DEBUG][       Thread-600056][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:22:10,456 [DEBUG][       Thread-600056][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:22:10,456 [DEBUG][       Thread-600056][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:22:10,456 [DEBUG][       Thread-600056][   transport.py][1871] : client lang: <none>
2025-07-01 09:22:10,456 [DEBUG][       Thread-600056][   transport.py][1871] : server lang: <none>
2025-07-01 09:22:10,456 [DEBUG][       Thread-600056][   transport.py][1871] : kex follows: False
2025-07-01 09:22:10,456 [DEBUG][       Thread-600056][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:22:10,456 [DEBUG][       Thread-600056][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:22:10,456 [DEBUG][       Thread-600056][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:22:10,456 [DEBUG][       Thread-600056][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:22:10,456 [DEBUG][       Thread-600056][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:22:10,456 [DEBUG][       Thread-600056][   transport.py][1871] : Compression: none
2025-07-01 09:22:10,456 [DEBUG][       Thread-600056][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:22:10,473 [DEBUG][       Thread-600056][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:22:10,473 [DEBUG][       Thread-600056][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:22:10,474 [DEBUG][       Thread-600056][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:22:10,474 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:22:10,474 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:22:10,475 [DEBUG][       Thread-600056][   transport.py][1871] : userauth is OK
2025-07-01 09:22:10,499 [ INFO][       Thread-600056][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:22:10,500 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:22:11,324 [DEBUG][       Thread-600056][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:22:11,324 [DEBUG][       Thread-600056][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:22:11,369 [DEBUG][       Thread-600056][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:22:11,369 [DEBUG][       Thread-600056][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:22:11,372 [DEBUG][       Thread-600056][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:22:11,379 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:22:11,379 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:22:11,381 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:22:11,383 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:22:11,388 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:22:11,390 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:22:11,390 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:22:11,391 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:22:11,391 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.306539 -999.00   +8.30  20.79     56   +0.30 1 1 1 1 1   887    0 8.64 30.01 ----- 20.8 20.8 19.4 44.6 11.2 -23.8 10.2 -24.9 9.3 -23.1 10.1 -22.7
2025-07-01 09:22:11,391 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:22:11,391 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:22:11,391 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.306539
2025-07-01 09:22:11,392 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:22:11,392 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:22:11,392 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:22:11,392 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:22:11,392 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:22:11,392 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:21:40', tmtdew=9.34, humidity=52.06, cloud=0.0, wind=28.97, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:21:24.970', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:22:11,393 [DEBUG][       Thread-600056][   transport.py][1871] : EOF in transport thread
2025-07-01 09:22:11,476 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:22:11,489 [DEBUG][       Thread-600059][   transport.py][1871] : starting thread (client mode): 0x81a64d0
2025-07-01 09:22:11,489 [DEBUG][       Thread-600059][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:22:11,509 [DEBUG][       Thread-600059][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:22:11,510 [ INFO][       Thread-600059][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:22:11,519 [DEBUG][       Thread-600059][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:22:11,519 [DEBUG][       Thread-600059][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:22:11,519 [DEBUG][       Thread-600059][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:22:11,519 [DEBUG][       Thread-600059][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:22:11,519 [DEBUG][       Thread-600059][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:22:11,519 [DEBUG][       Thread-600059][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:22:11,519 [DEBUG][       Thread-600059][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:22:11,519 [DEBUG][       Thread-600059][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:22:11,519 [DEBUG][       Thread-600059][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:22:11,519 [DEBUG][       Thread-600059][   transport.py][1871] : client lang: <none>
2025-07-01 09:22:11,519 [DEBUG][       Thread-600059][   transport.py][1871] : server lang: <none>
2025-07-01 09:22:11,519 [DEBUG][       Thread-600059][   transport.py][1871] : kex follows: False
2025-07-01 09:22:11,520 [DEBUG][       Thread-600059][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:22:11,520 [DEBUG][       Thread-600059][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:22:11,520 [DEBUG][       Thread-600059][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:22:11,520 [DEBUG][       Thread-600059][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:22:11,520 [DEBUG][       Thread-600059][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:22:11,520 [DEBUG][       Thread-600059][   transport.py][1871] : Compression: none
2025-07-01 09:22:11,520 [DEBUG][       Thread-600059][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:22:11,578 [DEBUG][       Thread-600059][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:22:11,578 [DEBUG][       Thread-600059][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:22:11,579 [DEBUG][       Thread-600059][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:22:11,579 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:22:11,580 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:22:11,634 [DEBUG][       Thread-600059][   transport.py][1871] : userauth is OK
2025-07-01 09:22:11,634 [DEBUG][       Thread-600059][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:22:11,634 [DEBUG][       Thread-600059][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:22:11,635 [DEBUG][       Thread-600059][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:22:11,635 [DEBUG][       Thread-600059][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:22:11,654 [ INFO][       Thread-600059][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:22:11,654 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:22:11,655 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:22:12,660 [DEBUG][       Thread-600059][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:22:12,660 [DEBUG][       Thread-600059][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:22:12,707 [DEBUG][       Thread-600059][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:22:12,707 [DEBUG][       Thread-600059][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:22:12,716 [DEBUG][       Thread-600059][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:22:12,724 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:22:12,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')
2025-07-01 09:22:12,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-07-01 09:22:12,741 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:22:12,741 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:22:12,741 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:22:12,749 [DEBUG][       Thread-600059][   transport.py][1871] : EOF in transport thread
2025-07-01 09:22:15,423 [DEBUG][Thread-600061 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:22:20,126 [DEBUG][Thread-600062 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:22:22,751 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:22:22,752 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:22:22,752 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:22:22,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-07-01 09:22:23,248 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 22, 12), 9.33, 51.77, 0.0, 33.98, 8.45, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:22:23,248 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:22:12
2025-07-01 09:22:23,333 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:22:23,339 [DEBUG][       Thread-600063][   transport.py][1871] : starting thread (client mode): 0x81a7a00
2025-07-01 09:22:23,339 [DEBUG][       Thread-600063][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:22:23,360 [DEBUG][       Thread-600063][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:22:23,360 [ INFO][       Thread-600063][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:22:23,363 [DEBUG][       Thread-600063][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:22:23,363 [DEBUG][       Thread-600063][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:22:23,363 [DEBUG][       Thread-600063][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:22:23,363 [DEBUG][       Thread-600063][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:22:23,363 [DEBUG][       Thread-600063][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:22:23,363 [DEBUG][       Thread-600063][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:22:23,363 [DEBUG][       Thread-600063][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:22:23,363 [DEBUG][       Thread-600063][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:22:23,363 [DEBUG][       Thread-600063][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:22:23,363 [DEBUG][       Thread-600063][   transport.py][1871] : client lang: <none>
2025-07-01 09:22:23,363 [DEBUG][       Thread-600063][   transport.py][1871] : server lang: <none>
2025-07-01 09:22:23,363 [DEBUG][       Thread-600063][   transport.py][1871] : kex follows: False
2025-07-01 09:22:23,363 [DEBUG][       Thread-600063][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:22:23,364 [DEBUG][       Thread-600063][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:22:23,364 [DEBUG][       Thread-600063][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:22:23,364 [DEBUG][       Thread-600063][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:22:23,364 [DEBUG][       Thread-600063][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:22:23,364 [DEBUG][       Thread-600063][   transport.py][1871] : Compression: none
2025-07-01 09:22:23,364 [DEBUG][       Thread-600063][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:22:23,382 [DEBUG][       Thread-600063][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:22:23,382 [DEBUG][       Thread-600063][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:22:23,383 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:22:23,383 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:22:23,383 [DEBUG][       Thread-600063][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:22:23,384 [DEBUG][       Thread-600063][   transport.py][1871] : userauth is OK
2025-07-01 09:22:23,408 [ INFO][       Thread-600063][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:22:23,408 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:22:24,165 [DEBUG][       Thread-600063][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:22:24,165 [DEBUG][       Thread-600063][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:22:24,209 [DEBUG][       Thread-600063][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:22:24,209 [DEBUG][       Thread-600063][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:22:24,212 [DEBUG][       Thread-600063][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:22:24,219 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:22:24,220 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:22:24,221 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:22:24,223 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:22:24,227 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:22:24,229 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:22:24,229 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:22:24,230 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:22:24,230 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.306539 -999.00   +8.30  20.79     56   +0.30 1 1 1 1 1   887    0 8.64 30.01 ----- 20.8 20.8 19.4 44.6 11.2 -23.8 10.2 -24.9 9.3 -23.1 10.1 -22.7
2025-07-01 09:22:24,230 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:22:24,230 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:22:24,230 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.306539
2025-07-01 09:22:24,231 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:22:24,231 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:22:24,231 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:22:24,231 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:22:24,231 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:22:24,232 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:22:12', tmtdew=9.33, humidity=51.77, cloud=0.0, wind=33.98, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:21:24.970', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:22:24,232 [DEBUG][       Thread-600063][   transport.py][1871] : EOF in transport thread
2025-07-01 09:22:24,315 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:22:24,327 [DEBUG][       Thread-600066][   transport.py][1871] : starting thread (client mode): 0x81547c0
2025-07-01 09:22:24,327 [DEBUG][       Thread-600066][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:22:24,342 [DEBUG][       Thread-600066][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:22:24,342 [ INFO][       Thread-600066][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:22:24,349 [DEBUG][       Thread-600066][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:22:24,349 [DEBUG][       Thread-600066][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:22:24,349 [DEBUG][       Thread-600066][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:22:24,349 [DEBUG][       Thread-600066][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:22:24,349 [DEBUG][       Thread-600066][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:22:24,349 [DEBUG][       Thread-600066][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:22:24,349 [DEBUG][       Thread-600066][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:22:24,349 [DEBUG][       Thread-600066][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:22:24,349 [DEBUG][       Thread-600066][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:22:24,349 [DEBUG][       Thread-600066][   transport.py][1871] : client lang: <none>
2025-07-01 09:22:24,349 [DEBUG][       Thread-600066][   transport.py][1871] : server lang: <none>
2025-07-01 09:22:24,349 [DEBUG][       Thread-600066][   transport.py][1871] : kex follows: False
2025-07-01 09:22:24,349 [DEBUG][       Thread-600066][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:22:24,350 [DEBUG][       Thread-600066][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:22:24,350 [DEBUG][       Thread-600066][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:22:24,350 [DEBUG][       Thread-600066][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:22:24,350 [DEBUG][       Thread-600066][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:22:24,350 [DEBUG][       Thread-600066][   transport.py][1871] : Compression: none
2025-07-01 09:22:24,350 [DEBUG][       Thread-600066][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:22:24,409 [DEBUG][       Thread-600066][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:22:24,410 [DEBUG][       Thread-600066][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:22:24,411 [DEBUG][       Thread-600066][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:22:24,411 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:22:24,411 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:22:24,460 [DEBUG][Thread-600068 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:22:24,470 [DEBUG][       Thread-600066][   transport.py][1871] : userauth is OK
2025-07-01 09:22:24,470 [DEBUG][       Thread-600066][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:22:24,470 [DEBUG][       Thread-600066][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:22:24,471 [DEBUG][       Thread-600066][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:22:24,471 [DEBUG][       Thread-600066][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:22:24,495 [ INFO][       Thread-600066][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:22:24,495 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:22:24,495 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:22:25,492 [DEBUG][       Thread-600066][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:22:25,492 [DEBUG][       Thread-600066][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:22:25,540 [DEBUG][       Thread-600066][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:22:25,540 [DEBUG][       Thread-600066][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:22:25,549 [DEBUG][       Thread-600066][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:22:25,559 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:22:25,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-07-01 09:22:25,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-07-01 09:22:25,576 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:22:25,577 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:22:25,577 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:22:25,585 [DEBUG][       Thread-600066][   transport.py][1871] : EOF in transport thread
2025-07-01 09:22:33,494 [DEBUG][Thread-600069 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:22:35,578 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:22:35,579 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:22:35,579 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:22:35,582 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:22:36,086 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 22, 12), 9.33, 51.77, 0.0, 33.98, 8.45, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:22:36,086 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:22:12
2025-07-01 09:22:36,172 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:22:36,176 [DEBUG][       Thread-600070][   transport.py][1871] : starting thread (client mode): 0x81556c0
2025-07-01 09:22:36,176 [DEBUG][       Thread-600070][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:22:36,197 [DEBUG][       Thread-600070][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:22:36,197 [ INFO][       Thread-600070][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:22:36,200 [DEBUG][       Thread-600070][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:22:36,200 [DEBUG][       Thread-600070][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:22:36,200 [DEBUG][       Thread-600070][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:22:36,200 [DEBUG][       Thread-600070][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:22:36,201 [DEBUG][       Thread-600070][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:22:36,201 [DEBUG][       Thread-600070][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:22:36,201 [DEBUG][       Thread-600070][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:22:36,201 [DEBUG][       Thread-600070][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:22:36,201 [DEBUG][       Thread-600070][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:22:36,201 [DEBUG][       Thread-600070][   transport.py][1871] : client lang: <none>
2025-07-01 09:22:36,201 [DEBUG][       Thread-600070][   transport.py][1871] : server lang: <none>
2025-07-01 09:22:36,201 [DEBUG][       Thread-600070][   transport.py][1871] : kex follows: False
2025-07-01 09:22:36,201 [DEBUG][       Thread-600070][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:22:36,201 [DEBUG][       Thread-600070][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:22:36,201 [DEBUG][       Thread-600070][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:22:36,201 [DEBUG][       Thread-600070][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:22:36,201 [DEBUG][       Thread-600070][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:22:36,201 [DEBUG][       Thread-600070][   transport.py][1871] : Compression: none
2025-07-01 09:22:36,201 [DEBUG][       Thread-600070][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:22:36,218 [DEBUG][       Thread-600070][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:22:36,218 [DEBUG][       Thread-600070][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:22:36,219 [DEBUG][       Thread-600070][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:22:36,219 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:22:36,219 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:22:36,220 [DEBUG][       Thread-600070][   transport.py][1871] : userauth is OK
2025-07-01 09:22:36,233 [ INFO][       Thread-600070][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:22:36,233 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:22:36,875 [DEBUG][       Thread-600070][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:22:36,875 [DEBUG][       Thread-600070][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:22:36,917 [DEBUG][       Thread-600070][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:22:36,917 [DEBUG][       Thread-600070][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:22:36,920 [DEBUG][       Thread-600070][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:22:36,932 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:22:36,932 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:22:36,934 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:22:36,936 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:22:36,941 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:22:36,942 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:22:36,943 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:22:36,943 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:22:36,943 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.306887 -999.00   +8.40  29.92     57   +0.40 1 1 1 1 1   887    0 8.62 30.41 ----- 29.9 29.9 34.2 45.4 11.2 -24.4 10.3 -23.6 9.3 -23.1 10.2 -23.0
2025-07-01 09:22:36,944 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:22:36,944 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:22:36,944 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.306887
2025-07-01 09:22:36,944 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:22:36,945 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:22:36,945 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:22:36,945 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:22:36,945 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:22:36,945 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:22:12', tmtdew=9.33, humidity=51.77, cloud=0.0, wind=33.98, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:21:55.037', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:22:36,945 [DEBUG][       Thread-600070][   transport.py][1871] : EOF in transport thread
2025-07-01 09:22:37,029 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:22:37,038 [DEBUG][       Thread-600073][   transport.py][1871] : starting thread (client mode): 0x81a5e10
2025-07-01 09:22:37,038 [DEBUG][       Thread-600073][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:22:37,058 [DEBUG][       Thread-600073][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:22:37,058 [ INFO][       Thread-600073][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:22:37,072 [DEBUG][       Thread-600073][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:22:37,072 [DEBUG][       Thread-600073][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:22:37,072 [DEBUG][       Thread-600073][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:22:37,072 [DEBUG][       Thread-600073][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:22:37,072 [DEBUG][       Thread-600073][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:22:37,072 [DEBUG][       Thread-600073][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:22:37,072 [DEBUG][       Thread-600073][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:22:37,072 [DEBUG][       Thread-600073][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:22:37,072 [DEBUG][       Thread-600073][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:22:37,072 [DEBUG][       Thread-600073][   transport.py][1871] : client lang: <none>
2025-07-01 09:22:37,073 [DEBUG][       Thread-600073][   transport.py][1871] : server lang: <none>
2025-07-01 09:22:37,073 [DEBUG][       Thread-600073][   transport.py][1871] : kex follows: False
2025-07-01 09:22:37,073 [DEBUG][       Thread-600073][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:22:37,073 [DEBUG][       Thread-600073][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:22:37,073 [DEBUG][       Thread-600073][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:22:37,073 [DEBUG][       Thread-600073][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:22:37,073 [DEBUG][       Thread-600073][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:22:37,073 [DEBUG][       Thread-600073][   transport.py][1871] : Compression: none
2025-07-01 09:22:37,073 [DEBUG][       Thread-600073][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:22:37,127 [DEBUG][       Thread-600073][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:22:37,127 [DEBUG][       Thread-600073][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:22:37,128 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:22:37,129 [DEBUG][       Thread-600073][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:22:37,129 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:22:37,197 [DEBUG][       Thread-600073][   transport.py][1871] : userauth is OK
2025-07-01 09:22:37,197 [DEBUG][       Thread-600073][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:22:37,198 [DEBUG][       Thread-600073][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:22:37,198 [DEBUG][       Thread-600073][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:22:37,198 [DEBUG][       Thread-600073][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:22:37,228 [ INFO][       Thread-600073][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:22:37,228 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:22:37,228 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:22:38,247 [DEBUG][       Thread-600073][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:22:38,247 [DEBUG][       Thread-600073][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:22:38,302 [DEBUG][       Thread-600073][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:22:38,302 [DEBUG][       Thread-600073][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:22:38,313 [DEBUG][       Thread-600073][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:22:38,322 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:22:38,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-07-01 09:22: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-07-01 09:22:38,345 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:22:38,346 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:22:38,346 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:22:38,355 [DEBUG][       Thread-600073][   transport.py][1871] : EOF in transport thread
2025-07-01 09:22:42,515 [DEBUG][Thread-600075 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:22:48,357 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:22:48,357 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:22:48,357 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:22:48,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-07-01 09:22:48,861 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 22, 44), 9.37, 51.6, 0.0, 35.23, 8.44, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:22:48,861 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:22:44
2025-07-01 09:22:48,944 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:22:48,948 [DEBUG][       Thread-600076][   transport.py][1871] : starting thread (client mode): 0x81555d0
2025-07-01 09:22:48,948 [DEBUG][       Thread-600076][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:22:48,969 [DEBUG][       Thread-600076][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:22:48,969 [ INFO][       Thread-600076][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:22:48,972 [DEBUG][       Thread-600076][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:22:48,972 [DEBUG][       Thread-600076][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:22:48,973 [DEBUG][       Thread-600076][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:22:48,973 [DEBUG][       Thread-600076][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:22:48,973 [DEBUG][       Thread-600076][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:22:48,973 [DEBUG][       Thread-600076][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:22:48,973 [DEBUG][       Thread-600076][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:22:48,973 [DEBUG][       Thread-600076][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:22:48,973 [DEBUG][       Thread-600076][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:22:48,973 [DEBUG][       Thread-600076][   transport.py][1871] : client lang: <none>
2025-07-01 09:22:48,973 [DEBUG][       Thread-600076][   transport.py][1871] : server lang: <none>
2025-07-01 09:22:48,973 [DEBUG][       Thread-600076][   transport.py][1871] : kex follows: False
2025-07-01 09:22:48,973 [DEBUG][       Thread-600076][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:22:48,973 [DEBUG][       Thread-600076][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:22:48,973 [DEBUG][       Thread-600076][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:22:48,973 [DEBUG][       Thread-600076][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:22:48,973 [DEBUG][       Thread-600076][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:22:48,973 [DEBUG][       Thread-600076][   transport.py][1871] : Compression: none
2025-07-01 09:22:48,973 [DEBUG][       Thread-600076][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:22:48,990 [DEBUG][       Thread-600076][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:22:48,990 [DEBUG][       Thread-600076][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:22:48,991 [DEBUG][       Thread-600076][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:22:48,991 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:22:48,991 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:22:48,992 [DEBUG][       Thread-600076][   transport.py][1871] : userauth is OK
2025-07-01 09:22:49,019 [ INFO][       Thread-600076][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:22:49,020 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:22:49,881 [DEBUG][       Thread-600076][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:22:49,881 [DEBUG][       Thread-600076][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:22:49,925 [DEBUG][       Thread-600076][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:22:49,925 [DEBUG][       Thread-600076][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:22:49,928 [DEBUG][       Thread-600076][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:22:49,941 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:22:49,941 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:22:49,943 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:22:49,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:22:49,950 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:22:49,952 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:22:49,952 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:22:49,953 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:22:49,953 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.306887 -999.00   +8.40  29.92     57   +0.40 1 1 1 1 1   887    0 8.62 30.41 ----- 29.9 29.9 34.2 45.4 11.2 -24.4 10.3 -23.6 9.3 -23.1 10.2 -23.0
2025-07-01 09:22:49,953 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:22:49,953 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:22:49,953 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.306887
2025-07-01 09:22:49,954 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:22:49,954 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:22:49,954 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:22:49,955 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:22:49,955 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:22:49,955 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:22:44', tmtdew=9.37, humidity=51.6, cloud=0.0, wind=35.23, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:21:55.037', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:22:49,956 [DEBUG][       Thread-600076][   transport.py][1871] : EOF in transport thread
2025-07-01 09:22:50,040 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:22:50,051 [DEBUG][       Thread-600079][   transport.py][1871] : starting thread (client mode): 0x81e7670
2025-07-01 09:22:50,051 [DEBUG][       Thread-600079][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:22:50,066 [DEBUG][       Thread-600079][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:22:50,066 [ INFO][       Thread-600079][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:22:50,073 [DEBUG][       Thread-600079][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:22:50,073 [DEBUG][       Thread-600079][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:22:50,073 [DEBUG][       Thread-600079][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:22:50,074 [DEBUG][       Thread-600079][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:22:50,074 [DEBUG][       Thread-600079][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:22:50,074 [DEBUG][       Thread-600079][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:22:50,074 [DEBUG][       Thread-600079][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:22:50,074 [DEBUG][       Thread-600079][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:22:50,074 [DEBUG][       Thread-600079][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:22:50,074 [DEBUG][       Thread-600079][   transport.py][1871] : client lang: <none>
2025-07-01 09:22:50,074 [DEBUG][       Thread-600079][   transport.py][1871] : server lang: <none>
2025-07-01 09:22:50,074 [DEBUG][       Thread-600079][   transport.py][1871] : kex follows: False
2025-07-01 09:22:50,074 [DEBUG][       Thread-600079][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:22:50,074 [DEBUG][       Thread-600079][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:22:50,074 [DEBUG][       Thread-600079][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:22:50,074 [DEBUG][       Thread-600079][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:22:50,074 [DEBUG][       Thread-600079][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:22:50,074 [DEBUG][       Thread-600079][   transport.py][1871] : Compression: none
2025-07-01 09:22:50,074 [DEBUG][       Thread-600079][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:22:50,134 [DEBUG][       Thread-600079][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:22:50,135 [DEBUG][       Thread-600079][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:22:50,135 [DEBUG][       Thread-600079][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:22:50,135 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:22:50,136 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:22:50,203 [DEBUG][       Thread-600079][   transport.py][1871] : userauth is OK
2025-07-01 09:22:50,203 [DEBUG][       Thread-600079][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:22:50,203 [DEBUG][       Thread-600079][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:22:50,203 [DEBUG][       Thread-600079][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:22:50,204 [DEBUG][       Thread-600079][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:22:50,223 [ INFO][       Thread-600079][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:22:50,224 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:22:50,224 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:22:50,362 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:22:50,363 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:22:51,248 [DEBUG][       Thread-600079][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:22:51,248 [DEBUG][       Thread-600079][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:22:51,296 [DEBUG][       Thread-600079][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:22:51,296 [DEBUG][       Thread-600079][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:22:51,311 [DEBUG][       Thread-600079][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:22:51,321 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:22:51,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-07-01 09:22:51,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') -> 00000000
2025-07-01 09:22:51,340 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:22:51,340 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:22:51,341 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:22:51,349 [DEBUG][       Thread-600079][   transport.py][1871] : EOF in transport thread
2025-07-01 09:22:51,542 [DEBUG][Thread-600081 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:23:00,585 [DEBUG][Thread-600082 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:23:01,348 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:23:01,348 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:23:01,348 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:23:01,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-07-01 09:23:01,847 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 22, 44), 9.37, 51.6, 0.0, 35.23, 8.44, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:23:01,847 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:22:44
2025-07-01 09:23:01,932 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:23:01,936 [DEBUG][       Thread-600083][   transport.py][1871] : starting thread (client mode): 0x8155720
2025-07-01 09:23:01,936 [DEBUG][       Thread-600083][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:23:01,955 [DEBUG][       Thread-600083][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:23:01,956 [ INFO][       Thread-600083][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:23:01,958 [DEBUG][       Thread-600083][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:23:01,958 [DEBUG][       Thread-600083][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:23:01,958 [DEBUG][       Thread-600083][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:23:01,958 [DEBUG][       Thread-600083][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:23:01,958 [DEBUG][       Thread-600083][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:23:01,958 [DEBUG][       Thread-600083][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:23:01,958 [DEBUG][       Thread-600083][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:23:01,958 [DEBUG][       Thread-600083][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:23:01,958 [DEBUG][       Thread-600083][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:23:01,958 [DEBUG][       Thread-600083][   transport.py][1871] : client lang: <none>
2025-07-01 09:23:01,958 [DEBUG][       Thread-600083][   transport.py][1871] : server lang: <none>
2025-07-01 09:23:01,958 [DEBUG][       Thread-600083][   transport.py][1871] : kex follows: False
2025-07-01 09:23:01,958 [DEBUG][       Thread-600083][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:23:01,958 [DEBUG][       Thread-600083][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:23:01,958 [DEBUG][       Thread-600083][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:23:01,958 [DEBUG][       Thread-600083][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:23:01,959 [DEBUG][       Thread-600083][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:23:01,959 [DEBUG][       Thread-600083][   transport.py][1871] : Compression: none
2025-07-01 09:23:01,959 [DEBUG][       Thread-600083][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:23:01,968 [DEBUG][       Thread-600083][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:23:01,968 [DEBUG][       Thread-600083][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:23:01,969 [DEBUG][       Thread-600083][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:23:01,969 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:23:01,969 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:23:01,970 [DEBUG][       Thread-600083][   transport.py][1871] : userauth is OK
2025-07-01 09:23:01,983 [ INFO][       Thread-600083][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:23:01,984 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:23:02,648 [DEBUG][       Thread-600083][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:23:02,648 [DEBUG][       Thread-600083][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:23:02,689 [DEBUG][       Thread-600083][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:23:02,689 [DEBUG][       Thread-600083][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:23:02,692 [DEBUG][       Thread-600083][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:23:02,705 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:23:02,706 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:23:02,707 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:23:02,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:23:02,714 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:23:02,716 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:23:02,716 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:23:02,717 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:23:02,717 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.307234 -999.00   +8.40  25.70     56   +0.30 1 1 1 1 1   887    0 8.77 31.54 ----- 25.7 25.7 33.4 46.2 11.2 -24.0 10.3 -24.6 9.3 -23.2 10.2 -23.5
2025-07-01 09:23:02,717 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:23:02,717 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:23:02,717 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.307234
2025-07-01 09:23:02,717 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:23:02,717 [DEBUG][       Thread-600083][   transport.py][1871] : EOF in transport thread
2025-07-01 09:23:02,718 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:23:02,719 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:23:02,719 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:23:02,719 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:23:02,719 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:22:44', tmtdew=9.37, humidity=51.6, cloud=0.0, wind=35.23, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:22:25.018', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:23:02,802 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:23:09,603 [DEBUG][Thread-600086 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:23:18,631 [DEBUG][Thread-600087 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:23:20,180 [DEBUG][Thread-600088 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:23:27,656 [DEBUG][Thread-600089 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:23:36,678 [DEBUG][Thread-600090 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:23:45,696 [DEBUG][Thread-600091 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:23:50,501 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:23:50,502 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:23:54,715 [DEBUG][Thread-600092 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:24:03,738 [DEBUG][Thread-600093 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:24:12,762 [DEBUG][Thread-600094 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:24:20,225 [DEBUG][Thread-600095 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:24:21,781 [DEBUG][Thread-600096 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:24:30,801 [DEBUG][Thread-600097 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:24:39,823 [DEBUG][Thread-600098 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:24:48,846 [DEBUG][Thread-600099 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:24:50,641 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:24:50,642 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:24:57,868 [DEBUG][Thread-600100 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:25:06,889 [DEBUG][Thread-600101 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:25:12,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-07-01 09:25:15,911 [DEBUG][Thread-600102 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:25:20,257 [DEBUG][Thread-600103 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:25:22,347 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:25:22,347 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:25:22,347 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:25:22,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-07-01 09:25:22,863 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 24, 51), 9.43, 51.52, 0.0, 28.85, 8.56, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:25:22,863 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:24:51
2025-07-01 09:25:22,948 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:25:22,953 [DEBUG][       Thread-600104][   transport.py][1871] : starting thread (client mode): 0x8154d30
2025-07-01 09:25:22,954 [DEBUG][       Thread-600104][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:25:22,973 [DEBUG][       Thread-600104][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:25:22,973 [ INFO][       Thread-600104][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:25:22,977 [DEBUG][       Thread-600104][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:25:22,977 [DEBUG][       Thread-600104][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:25:22,977 [DEBUG][       Thread-600104][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:25:22,977 [DEBUG][       Thread-600104][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:25:22,977 [DEBUG][       Thread-600104][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:25:22,977 [DEBUG][       Thread-600104][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:25:22,977 [DEBUG][       Thread-600104][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:25:22,977 [DEBUG][       Thread-600104][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:25:22,977 [DEBUG][       Thread-600104][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:25:22,977 [DEBUG][       Thread-600104][   transport.py][1871] : client lang: <none>
2025-07-01 09:25:22,977 [DEBUG][       Thread-600104][   transport.py][1871] : server lang: <none>
2025-07-01 09:25:22,977 [DEBUG][       Thread-600104][   transport.py][1871] : kex follows: False
2025-07-01 09:25:22,977 [DEBUG][       Thread-600104][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:25:22,977 [DEBUG][       Thread-600104][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:25:22,977 [DEBUG][       Thread-600104][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:25:22,977 [DEBUG][       Thread-600104][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:25:22,977 [DEBUG][       Thread-600104][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:25:22,977 [DEBUG][       Thread-600104][   transport.py][1871] : Compression: none
2025-07-01 09:25:22,977 [DEBUG][       Thread-600104][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:25:22,996 [DEBUG][       Thread-600104][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:25:22,996 [DEBUG][       Thread-600104][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:25:22,997 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:25:22,997 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:25:22,998 [DEBUG][       Thread-600104][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:25:22,998 [DEBUG][       Thread-600104][   transport.py][1871] : userauth is OK
2025-07-01 09:25:23,024 [ INFO][       Thread-600104][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:25:23,024 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:25:23,698 [DEBUG][       Thread-600104][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:25:23,698 [DEBUG][       Thread-600104][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:25:23,741 [DEBUG][       Thread-600104][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:25:23,741 [DEBUG][       Thread-600104][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:25:23,744 [DEBUG][       Thread-600104][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:25:23,754 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:25:23,755 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:25:23,757 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:25:23,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:25:23,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:25:23,766 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:25:23,766 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:25:23,767 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:25:23,767 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.308970 -999.00   +8.60  31.69     56   +0.30 1 1 2 1 1   887    0 8.65 30.10 ----- 31.7 31.7 19.4 50.4 11.3 -24.0 10.4 -24.4 9.5 -23.1 10.3 -23.7
2025-07-01 09:25:23,767 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:25:23,767 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:25:23,767 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.308970
2025-07-01 09:25:23,767 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:25:23,768 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:25:23,768 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:25:23,768 [DEBUG][       Thread-600104][   transport.py][1871] : EOF in transport thread
2025-07-01 09:25:23,768 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:25:23,769 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:25:23,769 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:24:51', tmtdew=9.43, humidity=51.52, cloud=0.0, wind=28.85, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:24:55.008', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:25:23,852 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:25:23,927 [DEBUG][       Thread-600107][   transport.py][1871] : starting thread (client mode): 0x8104670
2025-07-01 09:25:23,928 [DEBUG][       Thread-600107][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:25:23,942 [DEBUG][       Thread-600107][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:25:23,942 [ INFO][       Thread-600107][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:25:23,950 [DEBUG][       Thread-600107][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:25:23,951 [DEBUG][       Thread-600107][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:25:23,951 [DEBUG][       Thread-600107][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:25:23,951 [DEBUG][       Thread-600107][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:25:23,951 [DEBUG][       Thread-600107][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:25:23,951 [DEBUG][       Thread-600107][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:25:23,951 [DEBUG][       Thread-600107][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:25:23,951 [DEBUG][       Thread-600107][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:25:23,951 [DEBUG][       Thread-600107][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:25:23,951 [DEBUG][       Thread-600107][   transport.py][1871] : client lang: <none>
2025-07-01 09:25:23,951 [DEBUG][       Thread-600107][   transport.py][1871] : server lang: <none>
2025-07-01 09:25:23,951 [DEBUG][       Thread-600107][   transport.py][1871] : kex follows: False
2025-07-01 09:25:23,951 [DEBUG][       Thread-600107][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:25:23,951 [DEBUG][       Thread-600107][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:25:23,952 [DEBUG][       Thread-600107][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:25:23,952 [DEBUG][       Thread-600107][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:25:23,952 [DEBUG][       Thread-600107][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:25:23,952 [DEBUG][       Thread-600107][   transport.py][1871] : Compression: none
2025-07-01 09:25:23,952 [DEBUG][       Thread-600107][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:25:24,011 [DEBUG][       Thread-600107][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:25:24,011 [DEBUG][       Thread-600107][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:25:24,012 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:25:24,012 [DEBUG][       Thread-600107][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:25:24,013 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:25:24,067 [DEBUG][       Thread-600107][   transport.py][1871] : userauth is OK
2025-07-01 09:25:24,067 [DEBUG][       Thread-600107][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:25:24,068 [DEBUG][       Thread-600107][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:25:24,068 [DEBUG][       Thread-600107][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:25:24,068 [DEBUG][       Thread-600107][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:25:24,088 [ INFO][       Thread-600107][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:25:24,089 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:25:24,089 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:25:24,937 [DEBUG][Thread-600109 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:25:25,112 [DEBUG][       Thread-600107][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:25:25,112 [DEBUG][       Thread-600107][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:25:25,160 [DEBUG][       Thread-600107][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:25:25,160 [DEBUG][       Thread-600107][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:25:25,170 [DEBUG][       Thread-600107][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:25:25,183 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:25: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-07-01 09:25: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-07-01 09:25:25,201 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:25:25,201 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:25:25,201 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:25:25,210 [DEBUG][       Thread-600107][   transport.py][1871] : EOF in transport thread
2025-07-01 09:25:33,972 [DEBUG][Thread-600110 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:25:35,208 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:25:35,208 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:25:35,208 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:25:35,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-07-01 09:25:35,727 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 25, 24), 9.46, 51.56, 0.0, 37.19, 8.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:25:35,727 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:25:24
2025-07-01 09:25:35,814 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:25:35,819 [DEBUG][       Thread-600111][   transport.py][1871] : starting thread (client mode): 0x81573a0
2025-07-01 09:25:35,819 [DEBUG][       Thread-600111][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:25:35,839 [DEBUG][       Thread-600111][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:25:35,839 [ INFO][       Thread-600111][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:25:35,843 [DEBUG][       Thread-600111][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:25:35,843 [DEBUG][       Thread-600111][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:25:35,843 [DEBUG][       Thread-600111][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:25:35,843 [DEBUG][       Thread-600111][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:25:35,843 [DEBUG][       Thread-600111][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:25:35,843 [DEBUG][       Thread-600111][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:25:35,843 [DEBUG][       Thread-600111][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:25:35,843 [DEBUG][       Thread-600111][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:25:35,843 [DEBUG][       Thread-600111][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:25:35,843 [DEBUG][       Thread-600111][   transport.py][1871] : client lang: <none>
2025-07-01 09:25:35,843 [DEBUG][       Thread-600111][   transport.py][1871] : server lang: <none>
2025-07-01 09:25:35,843 [DEBUG][       Thread-600111][   transport.py][1871] : kex follows: False
2025-07-01 09:25:35,843 [DEBUG][       Thread-600111][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:25:35,843 [DEBUG][       Thread-600111][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:25:35,843 [DEBUG][       Thread-600111][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:25:35,843 [DEBUG][       Thread-600111][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:25:35,843 [DEBUG][       Thread-600111][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:25:35,843 [DEBUG][       Thread-600111][   transport.py][1871] : Compression: none
2025-07-01 09:25:35,843 [DEBUG][       Thread-600111][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:25:35,861 [DEBUG][       Thread-600111][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:25:35,862 [DEBUG][       Thread-600111][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:25:35,862 [DEBUG][       Thread-600111][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:25:35,862 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:25:35,863 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:25:35,864 [DEBUG][       Thread-600111][   transport.py][1871] : userauth is OK
2025-07-01 09:25:35,888 [ INFO][       Thread-600111][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:25:35,889 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:25:36,542 [DEBUG][       Thread-600111][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:25:36,542 [DEBUG][       Thread-600111][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:25:36,585 [DEBUG][       Thread-600111][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:25:36,585 [DEBUG][       Thread-600111][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:25:36,588 [DEBUG][       Thread-600111][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:25:36,601 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:25:36,602 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:25:36,604 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:25:36,606 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:25:36,611 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:25:36,613 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:25:36,613 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:25:36,613 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:25:36,614 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.308970 -999.00   +8.60  31.69     56   +0.30 1 1 2 1 1   887    0 8.65 30.10 ----- 31.7 31.7 19.4 50.4 11.3 -24.0 10.4 -24.4 9.5 -23.1 10.3 -23.7
2025-07-01 09:25:36,614 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:25:36,614 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:25:36,614 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.308970
2025-07-01 09:25:36,614 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:25:36,615 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:25:36,615 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:25:36,615 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:25:36,615 [DEBUG][       Thread-600111][   transport.py][1871] : EOF in transport thread
2025-07-01 09:25:36,615 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:25:36,616 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:25:24', tmtdew=9.46, humidity=51.56, cloud=0.0, wind=37.19, temperature=8.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:24:55.008', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:25:36,698 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:25:36,708 [DEBUG][       Thread-600114][   transport.py][1871] : starting thread (client mode): 0x81a64d0
2025-07-01 09:25:36,708 [DEBUG][       Thread-600114][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:25:36,723 [DEBUG][       Thread-600114][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:25:36,723 [ INFO][       Thread-600114][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:25:36,731 [DEBUG][       Thread-600114][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:25:36,731 [DEBUG][       Thread-600114][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:25:36,731 [DEBUG][       Thread-600114][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:25:36,731 [DEBUG][       Thread-600114][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:25:36,731 [DEBUG][       Thread-600114][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:25:36,731 [DEBUG][       Thread-600114][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:25:36,731 [DEBUG][       Thread-600114][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:25:36,731 [DEBUG][       Thread-600114][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:25:36,731 [DEBUG][       Thread-600114][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:25:36,731 [DEBUG][       Thread-600114][   transport.py][1871] : client lang: <none>
2025-07-01 09:25:36,731 [DEBUG][       Thread-600114][   transport.py][1871] : server lang: <none>
2025-07-01 09:25:36,732 [DEBUG][       Thread-600114][   transport.py][1871] : kex follows: False
2025-07-01 09:25:36,732 [DEBUG][       Thread-600114][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:25:36,732 [DEBUG][       Thread-600114][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:25:36,732 [DEBUG][       Thread-600114][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:25:36,732 [DEBUG][       Thread-600114][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:25:36,732 [DEBUG][       Thread-600114][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:25:36,732 [DEBUG][       Thread-600114][   transport.py][1871] : Compression: none
2025-07-01 09:25:36,732 [DEBUG][       Thread-600114][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:25:36,791 [DEBUG][       Thread-600114][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:25:36,792 [DEBUG][       Thread-600114][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:25:36,792 [DEBUG][       Thread-600114][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:25:36,793 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:25:36,793 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:25:36,847 [DEBUG][       Thread-600114][   transport.py][1871] : userauth is OK
2025-07-01 09:25:36,847 [DEBUG][       Thread-600114][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:25:36,847 [DEBUG][       Thread-600114][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:25:36,847 [DEBUG][       Thread-600114][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:25:36,847 [DEBUG][       Thread-600114][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:25:36,866 [ INFO][       Thread-600114][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:25:36,866 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:25:36,867 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:25:37,882 [DEBUG][       Thread-600114][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:25:37,882 [DEBUG][       Thread-600114][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:25:37,931 [DEBUG][       Thread-600114][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:25:37,931 [DEBUG][       Thread-600114][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:25:37,940 [DEBUG][       Thread-600114][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:25:37,948 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:25:37,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-07-01 09:25: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') -> 00000000
2025-07-01 09:25:37,964 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:25:37,964 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:25:37,964 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:25:37,972 [DEBUG][       Thread-600114][   transport.py][1871] : EOF in transport thread
2025-07-01 09:25:42,992 [DEBUG][Thread-600116 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:25:47,974 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:25:47,975 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:25:47,975 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:25:47,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-07-01 09:25:48,481 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 25, 24), 9.46, 51.56, 0.0, 37.19, 8.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:25:48,481 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:25:24
2025-07-01 09:25:48,568 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:25:48,572 [DEBUG][       Thread-600117][   transport.py][1871] : starting thread (client mode): 0x818d900
2025-07-01 09:25:48,572 [DEBUG][       Thread-600117][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:25:48,586 [DEBUG][       Thread-600117][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:25:48,586 [ INFO][       Thread-600117][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:25:48,589 [DEBUG][       Thread-600117][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:25:48,589 [DEBUG][       Thread-600117][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:25:48,589 [DEBUG][       Thread-600117][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:25:48,589 [DEBUG][       Thread-600117][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:25:48,589 [DEBUG][       Thread-600117][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:25:48,589 [DEBUG][       Thread-600117][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:25:48,589 [DEBUG][       Thread-600117][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:25:48,589 [DEBUG][       Thread-600117][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:25:48,589 [DEBUG][       Thread-600117][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:25:48,589 [DEBUG][       Thread-600117][   transport.py][1871] : client lang: <none>
2025-07-01 09:25:48,589 [DEBUG][       Thread-600117][   transport.py][1871] : server lang: <none>
2025-07-01 09:25:48,589 [DEBUG][       Thread-600117][   transport.py][1871] : kex follows: False
2025-07-01 09:25:48,589 [DEBUG][       Thread-600117][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:25:48,589 [DEBUG][       Thread-600117][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:25:48,589 [DEBUG][       Thread-600117][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:25:48,589 [DEBUG][       Thread-600117][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:25:48,589 [DEBUG][       Thread-600117][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:25:48,589 [DEBUG][       Thread-600117][   transport.py][1871] : Compression: none
2025-07-01 09:25:48,589 [DEBUG][       Thread-600117][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:25:48,604 [DEBUG][       Thread-600117][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:25:48,605 [DEBUG][       Thread-600117][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:25:48,605 [DEBUG][       Thread-600117][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:25:48,605 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:25:48,606 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:25:48,607 [DEBUG][       Thread-600117][   transport.py][1871] : userauth is OK
2025-07-01 09:25:48,631 [ INFO][       Thread-600117][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:25:48,632 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:25:49,223 [DEBUG][       Thread-600117][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:25:49,223 [DEBUG][       Thread-600117][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:25:49,265 [DEBUG][       Thread-600117][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:25:49,265 [DEBUG][       Thread-600117][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:25:49,267 [DEBUG][       Thread-600117][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:25:49,272 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:25:49,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:25:49,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:25:49,275 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:25:49,279 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:25:49,281 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:25:49,281 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:25:49,282 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:25:49,282 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.309317 -999.00   +8.60  33.75     56   +0.40 1 1 2 1 1   887    0 8.70 32.50 ----- 33.8 33.8 22.2 45.2 11.4 -24.5 10.4 -23.9 9.5 -22.9 10.4 -22.5
2025-07-01 09:25:49,282 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:25:49,282 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:25:49,282 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.309317
2025-07-01 09:25:49,283 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:25:49,283 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:25:49,283 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:25:49,283 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:25:49,283 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:25:49,283 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:25:24', tmtdew=9.46, humidity=51.56, cloud=0.0, wind=37.19, temperature=8.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:25:24.989', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:25:49,285 [DEBUG][       Thread-600117][   transport.py][1871] : EOF in transport thread
2025-07-01 09:25:49,357 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:25:49,368 [DEBUG][       Thread-600120][   transport.py][1871] : starting thread (client mode): 0x81e5600
2025-07-01 09:25:49,368 [DEBUG][       Thread-600120][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:25:49,386 [DEBUG][       Thread-600120][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:25:49,386 [ INFO][       Thread-600120][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:25:49,393 [DEBUG][       Thread-600120][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:25:49,394 [DEBUG][       Thread-600120][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:25:49,394 [DEBUG][       Thread-600120][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:25:49,394 [DEBUG][       Thread-600120][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:25:49,394 [DEBUG][       Thread-600120][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:25:49,394 [DEBUG][       Thread-600120][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:25:49,394 [DEBUG][       Thread-600120][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:25:49,394 [DEBUG][       Thread-600120][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:25:49,394 [DEBUG][       Thread-600120][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:25:49,394 [DEBUG][       Thread-600120][   transport.py][1871] : client lang: <none>
2025-07-01 09:25:49,394 [DEBUG][       Thread-600120][   transport.py][1871] : server lang: <none>
2025-07-01 09:25:49,394 [DEBUG][       Thread-600120][   transport.py][1871] : kex follows: False
2025-07-01 09:25:49,394 [DEBUG][       Thread-600120][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:25:49,394 [DEBUG][       Thread-600120][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:25:49,394 [DEBUG][       Thread-600120][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:25:49,394 [DEBUG][       Thread-600120][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:25:49,394 [DEBUG][       Thread-600120][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:25:49,394 [DEBUG][       Thread-600120][   transport.py][1871] : Compression: none
2025-07-01 09:25:49,394 [DEBUG][       Thread-600120][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:25:49,451 [DEBUG][       Thread-600120][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:25:49,452 [DEBUG][       Thread-600120][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:25:49,452 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:25:49,453 [DEBUG][       Thread-600120][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:25:49,454 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:25:49,507 [DEBUG][       Thread-600120][   transport.py][1871] : userauth is OK
2025-07-01 09:25:49,508 [DEBUG][       Thread-600120][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:25:49,508 [DEBUG][       Thread-600120][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:25:49,508 [DEBUG][       Thread-600120][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:25:49,508 [DEBUG][       Thread-600120][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:25:49,527 [ INFO][       Thread-600120][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:25:49,528 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:25:49,528 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:25:50,574 [DEBUG][       Thread-600120][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:25:50,574 [DEBUG][       Thread-600120][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:25:50,623 [DEBUG][       Thread-600120][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:25:50,623 [DEBUG][       Thread-600120][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:25:50,632 [DEBUG][       Thread-600120][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:25:50,640 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:25:50,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-07-01 09:25:50,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-07-01 09:25:50,656 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:25:50,656 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:25:50,656 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:25:50,664 [DEBUG][       Thread-600120][   transport.py][1871] : EOF in transport thread
2025-07-01 09:25:50,781 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:25:50,783 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:25:52,025 [DEBUG][Thread-600122 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:26:00,665 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:26:00,665 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:26:00,665 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:26:00,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-07-01 09:26:01,049 [DEBUG][Thread-600123 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:26:01,175 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 25, 56), 9.47, 51.52, 0.0, 33.65, 8.72, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:26:01,176 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:25:56
2025-07-01 09:26:01,261 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:26:01,264 [DEBUG][       Thread-600124][   transport.py][1871] : starting thread (client mode): 0x818e230
2025-07-01 09:26:01,265 [DEBUG][       Thread-600124][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:26:01,286 [DEBUG][       Thread-600124][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:26:01,286 [ INFO][       Thread-600124][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:26:01,290 [DEBUG][       Thread-600124][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:26:01,290 [DEBUG][       Thread-600124][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:26:01,290 [DEBUG][       Thread-600124][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:26:01,290 [DEBUG][       Thread-600124][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:26:01,290 [DEBUG][       Thread-600124][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:26:01,290 [DEBUG][       Thread-600124][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:26:01,290 [DEBUG][       Thread-600124][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:26:01,290 [DEBUG][       Thread-600124][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:26:01,290 [DEBUG][       Thread-600124][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:26:01,290 [DEBUG][       Thread-600124][   transport.py][1871] : client lang: <none>
2025-07-01 09:26:01,290 [DEBUG][       Thread-600124][   transport.py][1871] : server lang: <none>
2025-07-01 09:26:01,290 [DEBUG][       Thread-600124][   transport.py][1871] : kex follows: False
2025-07-01 09:26:01,290 [DEBUG][       Thread-600124][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:26:01,290 [DEBUG][       Thread-600124][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:26:01,290 [DEBUG][       Thread-600124][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:26:01,290 [DEBUG][       Thread-600124][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:26:01,290 [DEBUG][       Thread-600124][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:26:01,290 [DEBUG][       Thread-600124][   transport.py][1871] : Compression: none
2025-07-01 09:26:01,290 [DEBUG][       Thread-600124][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:26:01,307 [DEBUG][       Thread-600124][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:26:01,307 [DEBUG][       Thread-600124][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:26:01,308 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:26:01,308 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:26:01,308 [DEBUG][       Thread-600124][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:26:01,309 [DEBUG][       Thread-600124][   transport.py][1871] : userauth is OK
2025-07-01 09:26:01,323 [ INFO][       Thread-600124][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:26:01,324 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:26:01,970 [DEBUG][       Thread-600124][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:26:01,970 [DEBUG][       Thread-600124][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:26:02,013 [DEBUG][       Thread-600124][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:26:02,013 [DEBUG][       Thread-600124][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:26:02,017 [DEBUG][       Thread-600124][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:26:02,028 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:26:02,028 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:26:02,030 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:26:02,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:26:02,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:26:02,038 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:26:02,039 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:26:02,040 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:26:02,040 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.309317 -999.00   +8.60  33.75     56   +0.40 1 1 2 1 1   887    0 8.70 32.50 ----- 33.8 33.8 22.2 45.2 11.4 -24.5 10.4 -23.9 9.5 -22.9 10.4 -22.5
2025-07-01 09:26:02,040 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:26:02,040 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:26:02,040 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.309317
2025-07-01 09:26:02,041 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:26:02,041 [DEBUG][       Thread-600124][   transport.py][1871] : EOF in transport thread
2025-07-01 09:26:02,042 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:26:02,043 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:26:02,043 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:26:02,043 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:26:02,043 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:25:56', tmtdew=9.47, humidity=51.52, cloud=0.0, wind=33.65, temperature=8.72, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:25:24.989', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:26:02,125 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:26:02,134 [DEBUG][       Thread-600127][   transport.py][1871] : starting thread (client mode): 0x83939d0
2025-07-01 09:26:02,135 [DEBUG][       Thread-600127][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:26:02,154 [DEBUG][       Thread-600127][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:26:02,154 [ INFO][       Thread-600127][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:26:02,162 [DEBUG][       Thread-600127][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:26:02,162 [DEBUG][       Thread-600127][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:26:02,162 [DEBUG][       Thread-600127][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:26:02,162 [DEBUG][       Thread-600127][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:26:02,163 [DEBUG][       Thread-600127][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:26:02,163 [DEBUG][       Thread-600127][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:26:02,163 [DEBUG][       Thread-600127][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:26:02,163 [DEBUG][       Thread-600127][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:26:02,163 [DEBUG][       Thread-600127][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:26:02,163 [DEBUG][       Thread-600127][   transport.py][1871] : client lang: <none>
2025-07-01 09:26:02,163 [DEBUG][       Thread-600127][   transport.py][1871] : server lang: <none>
2025-07-01 09:26:02,163 [DEBUG][       Thread-600127][   transport.py][1871] : kex follows: False
2025-07-01 09:26:02,163 [DEBUG][       Thread-600127][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:26:02,163 [DEBUG][       Thread-600127][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:26:02,163 [DEBUG][       Thread-600127][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:26:02,163 [DEBUG][       Thread-600127][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:26:02,163 [DEBUG][       Thread-600127][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:26:02,163 [DEBUG][       Thread-600127][   transport.py][1871] : Compression: none
2025-07-01 09:26:02,163 [DEBUG][       Thread-600127][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:26:02,223 [DEBUG][       Thread-600127][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:26:02,224 [DEBUG][       Thread-600127][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:26:02,224 [DEBUG][       Thread-600127][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:26:02,224 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:26:02,225 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:26:02,289 [DEBUG][       Thread-600127][   transport.py][1871] : userauth is OK
2025-07-01 09:26:02,289 [DEBUG][       Thread-600127][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:26:02,289 [DEBUG][       Thread-600127][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:26:02,289 [DEBUG][       Thread-600127][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:26:02,289 [DEBUG][       Thread-600127][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:26:02,309 [ INFO][       Thread-600127][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:26:02,309 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:26:02,310 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:26:03,349 [DEBUG][       Thread-600127][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:26:03,349 [DEBUG][       Thread-600127][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:26:03,400 [DEBUG][       Thread-600127][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:26:03,400 [DEBUG][       Thread-600127][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:26:03,409 [DEBUG][       Thread-600127][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:26:03,419 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:26:03,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-07-01 09:26:03,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-07-01 09:26:03,438 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:26:03,438 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:26:03,439 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:26:03,447 [DEBUG][       Thread-600127][   transport.py][1871] : EOF in transport thread
2025-07-01 09:26:10,070 [DEBUG][Thread-600129 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:26:13,450 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:26:13,450 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:26:13,450 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:26:13,454 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:26:13,957 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 25, 56), 9.47, 51.52, 0.0, 33.65, 8.72, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:26:13,957 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:25:56
2025-07-01 09:26:14,043 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:26:14,047 [DEBUG][       Thread-600130][   transport.py][1871] : starting thread (client mode): 0x8154d30
2025-07-01 09:26:14,047 [DEBUG][       Thread-600130][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:26:14,068 [DEBUG][       Thread-600130][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:26:14,068 [ INFO][       Thread-600130][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:26:14,069 [DEBUG][       Thread-600130][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:26:14,069 [DEBUG][       Thread-600130][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:26:14,069 [DEBUG][       Thread-600130][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:26:14,069 [DEBUG][       Thread-600130][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:26:14,069 [DEBUG][       Thread-600130][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:26:14,069 [DEBUG][       Thread-600130][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:26:14,069 [DEBUG][       Thread-600130][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:26:14,069 [DEBUG][       Thread-600130][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:26:14,069 [DEBUG][       Thread-600130][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:26:14,069 [DEBUG][       Thread-600130][   transport.py][1871] : client lang: <none>
2025-07-01 09:26:14,069 [DEBUG][       Thread-600130][   transport.py][1871] : server lang: <none>
2025-07-01 09:26:14,069 [DEBUG][       Thread-600130][   transport.py][1871] : kex follows: False
2025-07-01 09:26:14,069 [DEBUG][       Thread-600130][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:26:14,069 [DEBUG][       Thread-600130][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:26:14,069 [DEBUG][       Thread-600130][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:26:14,069 [DEBUG][       Thread-600130][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:26:14,069 [DEBUG][       Thread-600130][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:26:14,069 [DEBUG][       Thread-600130][   transport.py][1871] : Compression: none
2025-07-01 09:26:14,069 [DEBUG][       Thread-600130][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:26:14,077 [DEBUG][       Thread-600130][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:26:14,077 [DEBUG][       Thread-600130][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:26:14,077 [DEBUG][       Thread-600130][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:26:14,077 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:26:14,077 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:26:14,078 [DEBUG][       Thread-600130][   transport.py][1871] : userauth is OK
2025-07-01 09:26:14,104 [ INFO][       Thread-600130][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:26:14,104 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:26:14,694 [DEBUG][       Thread-600130][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:26:14,694 [DEBUG][       Thread-600130][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:26:14,737 [DEBUG][       Thread-600130][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:26:14,737 [DEBUG][       Thread-600130][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:26:14,740 [DEBUG][       Thread-600130][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:26:14,751 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:26:14,752 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:26:14,754 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:26:14,755 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:26:14,761 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:26:14,763 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:26:14,763 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:26:14,764 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:26:14,764 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.309317 -999.00   +8.60  33.75     56   +0.40 1 1 2 1 1   887    0 8.70 32.50 ----- 33.8 33.8 22.2 45.2 11.4 -24.5 10.4 -23.9 9.5 -22.9 10.4 -22.5
2025-07-01 09:26:14,764 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:26:14,764 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:26:14,764 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.309317
2025-07-01 09:26:14,765 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:26:14,765 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:26:14,765 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:26:14,765 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:26:14,765 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:26:14,766 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:25:56', tmtdew=9.47, humidity=51.52, cloud=0.0, wind=33.65, temperature=8.72, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:25:24.989', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:26:14,767 [DEBUG][       Thread-600130][   transport.py][1871] : EOF in transport thread
2025-07-01 09:26:14,849 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:26:14,866 [DEBUG][       Thread-600133][   transport.py][1871] : starting thread (client mode): 0x818d2d0
2025-07-01 09:26:14,866 [DEBUG][       Thread-600133][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:26:14,881 [DEBUG][       Thread-600133][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:26:14,881 [ INFO][       Thread-600133][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:26:14,889 [DEBUG][       Thread-600133][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:26:14,889 [DEBUG][       Thread-600133][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:26:14,889 [DEBUG][       Thread-600133][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:26:14,889 [DEBUG][       Thread-600133][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:26:14,889 [DEBUG][       Thread-600133][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:26:14,889 [DEBUG][       Thread-600133][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:26:14,889 [DEBUG][       Thread-600133][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:26:14,889 [DEBUG][       Thread-600133][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:26:14,889 [DEBUG][       Thread-600133][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:26:14,889 [DEBUG][       Thread-600133][   transport.py][1871] : client lang: <none>
2025-07-01 09:26:14,889 [DEBUG][       Thread-600133][   transport.py][1871] : server lang: <none>
2025-07-01 09:26:14,889 [DEBUG][       Thread-600133][   transport.py][1871] : kex follows: False
2025-07-01 09:26:14,889 [DEBUG][       Thread-600133][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:26:14,890 [DEBUG][       Thread-600133][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:26:14,890 [DEBUG][       Thread-600133][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:26:14,890 [DEBUG][       Thread-600133][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:26:14,890 [DEBUG][       Thread-600133][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:26:14,890 [DEBUG][       Thread-600133][   transport.py][1871] : Compression: none
2025-07-01 09:26:14,890 [DEBUG][       Thread-600133][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:26:14,953 [DEBUG][       Thread-600133][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:26:14,953 [DEBUG][       Thread-600133][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:26:14,954 [DEBUG][       Thread-600133][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:26:14,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:26:14,955 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:26:15,014 [DEBUG][       Thread-600133][   transport.py][1871] : userauth is OK
2025-07-01 09:26:15,014 [DEBUG][       Thread-600133][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:26:15,014 [DEBUG][       Thread-600133][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:26:15,015 [DEBUG][       Thread-600133][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:26:15,015 [DEBUG][       Thread-600133][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:26:15,033 [ INFO][       Thread-600133][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:26:15,033 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:26:15,034 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:26:16,045 [DEBUG][       Thread-600133][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:26:16,046 [DEBUG][       Thread-600133][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:26:16,096 [DEBUG][       Thread-600133][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:26:16,096 [DEBUG][       Thread-600133][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:26:16,105 [DEBUG][       Thread-600133][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:26:16,114 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:26:16,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-07-01 09:26:16,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-07-01 09:26:16,132 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:26:16,132 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:26:16,132 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:26:16,140 [DEBUG][       Thread-600133][   transport.py][1871] : EOF in transport thread
2025-07-01 09:26:19,105 [DEBUG][Thread-600135 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:26:20,301 [DEBUG][Thread-600136 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:26:26,143 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:26:26,143 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:26:26,143 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:26:26,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-07-01 09:26:26,653 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 25, 56), 9.47, 51.52, 0.0, 33.65, 8.72, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:26:26,653 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:25:56
2025-07-01 09:26:26,740 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:26:26,746 [DEBUG][       Thread-600137][   transport.py][1871] : starting thread (client mode): 0x81e70a0
2025-07-01 09:26:26,746 [DEBUG][       Thread-600137][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:26:26,766 [DEBUG][       Thread-600137][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:26:26,766 [ INFO][       Thread-600137][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:26:26,769 [DEBUG][       Thread-600137][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:26:26,769 [DEBUG][       Thread-600137][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:26:26,769 [DEBUG][       Thread-600137][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:26:26,769 [DEBUG][       Thread-600137][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:26:26,769 [DEBUG][       Thread-600137][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:26:26,769 [DEBUG][       Thread-600137][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:26:26,769 [DEBUG][       Thread-600137][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:26:26,769 [DEBUG][       Thread-600137][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:26:26,769 [DEBUG][       Thread-600137][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:26:26,769 [DEBUG][       Thread-600137][   transport.py][1871] : client lang: <none>
2025-07-01 09:26:26,769 [DEBUG][       Thread-600137][   transport.py][1871] : server lang: <none>
2025-07-01 09:26:26,769 [DEBUG][       Thread-600137][   transport.py][1871] : kex follows: False
2025-07-01 09:26:26,769 [DEBUG][       Thread-600137][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:26:26,769 [DEBUG][       Thread-600137][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:26:26,769 [DEBUG][       Thread-600137][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:26:26,769 [DEBUG][       Thread-600137][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:26:26,769 [DEBUG][       Thread-600137][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:26:26,769 [DEBUG][       Thread-600137][   transport.py][1871] : Compression: none
2025-07-01 09:26:26,770 [DEBUG][       Thread-600137][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:26:26,788 [DEBUG][       Thread-600137][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:26:26,789 [DEBUG][       Thread-600137][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:26:26,789 [DEBUG][       Thread-600137][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:26:26,789 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:26:26,789 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:26:26,791 [DEBUG][       Thread-600137][   transport.py][1871] : userauth is OK
2025-07-01 09:26:26,805 [ INFO][       Thread-600137][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:26:26,805 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:26:27,459 [DEBUG][       Thread-600137][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:26:27,459 [DEBUG][       Thread-600137][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:26:27,501 [DEBUG][       Thread-600137][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:26:27,501 [DEBUG][       Thread-600137][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:26:27,505 [DEBUG][       Thread-600137][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:26:27,517 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:26:27,517 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:26:27,519 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:26:27,521 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:26:27,527 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:26:27,529 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:26:27,530 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:26:27,530 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:26:27,530 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.309670 -999.00   +8.60  35.24     55   +0.30 1 1 2 1 1   887    0 8.85 35.82 ----- 35.2 35.2 23.7 48.1 11.4 -23.5 10.5 -23.3 9.5 -22.8 10.4 -22.5
2025-07-01 09:26:27,531 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:26:27,531 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:26:27,531 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.309670
2025-07-01 09:26:27,531 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:26:27,532 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:26:27,532 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:26:27,532 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:26:27,532 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:26:27,532 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:25:56', tmtdew=9.47, humidity=51.52, cloud=0.0, wind=33.65, temperature=8.72, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:25:55.488', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:26:27,533 [DEBUG][       Thread-600137][   transport.py][1871] : EOF in transport thread
2025-07-01 09:26:27,609 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:26:27,622 [DEBUG][       Thread-600140][   transport.py][1871] : starting thread (client mode): 0x8393b80
2025-07-01 09:26:27,622 [DEBUG][       Thread-600140][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:26:27,637 [DEBUG][       Thread-600140][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:26:27,637 [ INFO][       Thread-600140][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:26:27,644 [DEBUG][       Thread-600140][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:26:27,645 [DEBUG][       Thread-600140][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:26:27,645 [DEBUG][       Thread-600140][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:26:27,645 [DEBUG][       Thread-600140][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:26:27,645 [DEBUG][       Thread-600140][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:26:27,645 [DEBUG][       Thread-600140][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:26:27,645 [DEBUG][       Thread-600140][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:26:27,645 [DEBUG][       Thread-600140][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:26:27,645 [DEBUG][       Thread-600140][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:26:27,645 [DEBUG][       Thread-600140][   transport.py][1871] : client lang: <none>
2025-07-01 09:26:27,645 [DEBUG][       Thread-600140][   transport.py][1871] : server lang: <none>
2025-07-01 09:26:27,645 [DEBUG][       Thread-600140][   transport.py][1871] : kex follows: False
2025-07-01 09:26:27,645 [DEBUG][       Thread-600140][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:26:27,645 [DEBUG][       Thread-600140][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:26:27,645 [DEBUG][       Thread-600140][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:26:27,645 [DEBUG][       Thread-600140][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:26:27,645 [DEBUG][       Thread-600140][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:26:27,645 [DEBUG][       Thread-600140][   transport.py][1871] : Compression: none
2025-07-01 09:26:27,645 [DEBUG][       Thread-600140][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:26:27,705 [DEBUG][       Thread-600140][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:26:27,705 [DEBUG][       Thread-600140][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:26:27,706 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:26:27,706 [DEBUG][       Thread-600140][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:26:27,707 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:26:27,763 [DEBUG][       Thread-600140][   transport.py][1871] : userauth is OK
2025-07-01 09:26:27,763 [DEBUG][       Thread-600140][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:26:27,763 [DEBUG][       Thread-600140][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:26:27,764 [DEBUG][       Thread-600140][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:26:27,764 [DEBUG][       Thread-600140][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:26:27,787 [ INFO][       Thread-600140][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:26:27,788 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:26:27,788 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:26:28,126 [DEBUG][Thread-600142 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:26:28,825 [DEBUG][       Thread-600140][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:26:28,827 [DEBUG][       Thread-600140][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:26:28,876 [DEBUG][       Thread-600140][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:26:28,876 [DEBUG][       Thread-600140][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:26:28,886 [DEBUG][       Thread-600140][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:26:28,894 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:26:28,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-07-01 09:26:28,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-07-01 09:26:28,910 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:26:28,910 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:26:28,910 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:26:28,918 [DEBUG][       Thread-600140][   transport.py][1871] : EOF in transport thread
2025-07-01 09:26:37,148 [DEBUG][Thread-600143 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:26:38,918 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:26:38,919 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:26:38,919 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:26:38,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-07-01 09:26:39,421 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 26, 28), 9.52, 51.17, 0.0, 32.96, 8.75, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:26:39,421 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:26:28
2025-07-01 09:26:39,507 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:26:39,511 [DEBUG][       Thread-600144][   transport.py][1871] : starting thread (client mode): 0x818c610
2025-07-01 09:26:39,511 [DEBUG][       Thread-600144][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:26:39,532 [DEBUG][       Thread-600144][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:26:39,532 [ INFO][       Thread-600144][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:26:39,535 [DEBUG][       Thread-600144][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:26:39,535 [DEBUG][       Thread-600144][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:26:39,535 [DEBUG][       Thread-600144][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:26:39,535 [DEBUG][       Thread-600144][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:26:39,535 [DEBUG][       Thread-600144][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:26:39,535 [DEBUG][       Thread-600144][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:26:39,535 [DEBUG][       Thread-600144][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:26:39,535 [DEBUG][       Thread-600144][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:26:39,535 [DEBUG][       Thread-600144][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:26:39,535 [DEBUG][       Thread-600144][   transport.py][1871] : client lang: <none>
2025-07-01 09:26:39,535 [DEBUG][       Thread-600144][   transport.py][1871] : server lang: <none>
2025-07-01 09:26:39,535 [DEBUG][       Thread-600144][   transport.py][1871] : kex follows: False
2025-07-01 09:26:39,535 [DEBUG][       Thread-600144][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:26:39,535 [DEBUG][       Thread-600144][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:26:39,536 [DEBUG][       Thread-600144][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:26:39,536 [DEBUG][       Thread-600144][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:26:39,536 [DEBUG][       Thread-600144][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:26:39,536 [DEBUG][       Thread-600144][   transport.py][1871] : Compression: none
2025-07-01 09:26:39,536 [DEBUG][       Thread-600144][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:26:39,555 [DEBUG][       Thread-600144][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:26:39,556 [DEBUG][       Thread-600144][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:26:39,556 [DEBUG][       Thread-600144][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:26:39,557 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:26:39,557 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:26:39,558 [DEBUG][       Thread-600144][   transport.py][1871] : userauth is OK
2025-07-01 09:26:39,583 [ INFO][       Thread-600144][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:26:39,584 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:26:40,242 [DEBUG][       Thread-600144][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:26:40,243 [DEBUG][       Thread-600144][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:26:40,285 [DEBUG][       Thread-600144][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:26:40,285 [DEBUG][       Thread-600144][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:26:40,289 [DEBUG][       Thread-600144][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:26:40,302 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:26:40,302 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:26:40,304 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:26:40,305 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:26:40,310 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:26:40,312 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:26:40,312 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:26:40,313 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:26:40,313 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.309670 -999.00   +8.60  35.24     55   +0.30 1 1 2 1 1   887    0 8.85 35.82 ----- 35.2 35.2 23.7 48.1 11.4 -23.5 10.5 -23.3 9.5 -22.8 10.4 -22.5
2025-07-01 09:26:40,313 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:26:40,313 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:26:40,313 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.309670
2025-07-01 09:26:40,314 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:26:40,314 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:26:40,315 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:26:40,315 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:26:40,315 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:26:40,315 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:26:28', tmtdew=9.52, humidity=51.17, cloud=0.0, wind=32.96, temperature=8.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:25:55.488', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:26:40,315 [DEBUG][       Thread-600144][   transport.py][1871] : EOF in transport thread
2025-07-01 09:26:40,399 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:26:40,408 [DEBUG][       Thread-600147][   transport.py][1871] : starting thread (client mode): 0x81e5540
2025-07-01 09:26:40,408 [DEBUG][       Thread-600147][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:26:40,424 [DEBUG][       Thread-600147][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:26:40,424 [ INFO][       Thread-600147][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:26:40,431 [DEBUG][       Thread-600147][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:26:40,431 [DEBUG][       Thread-600147][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:26:40,431 [DEBUG][       Thread-600147][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:26:40,431 [DEBUG][       Thread-600147][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:26:40,431 [DEBUG][       Thread-600147][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:26:40,431 [DEBUG][       Thread-600147][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:26:40,431 [DEBUG][       Thread-600147][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:26:40,431 [DEBUG][       Thread-600147][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:26:40,431 [DEBUG][       Thread-600147][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:26:40,431 [DEBUG][       Thread-600147][   transport.py][1871] : client lang: <none>
2025-07-01 09:26:40,431 [DEBUG][       Thread-600147][   transport.py][1871] : server lang: <none>
2025-07-01 09:26:40,431 [DEBUG][       Thread-600147][   transport.py][1871] : kex follows: False
2025-07-01 09:26:40,431 [DEBUG][       Thread-600147][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:26:40,431 [DEBUG][       Thread-600147][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:26:40,431 [DEBUG][       Thread-600147][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:26:40,431 [DEBUG][       Thread-600147][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:26:40,431 [DEBUG][       Thread-600147][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:26:40,431 [DEBUG][       Thread-600147][   transport.py][1871] : Compression: none
2025-07-01 09:26:40,431 [DEBUG][       Thread-600147][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:26:40,490 [DEBUG][       Thread-600147][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:26:40,490 [DEBUG][       Thread-600147][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:26:40,490 [DEBUG][       Thread-600147][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:26:40,490 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:26:40,491 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:26:40,547 [DEBUG][       Thread-600147][   transport.py][1871] : userauth is OK
2025-07-01 09:26:40,548 [DEBUG][       Thread-600147][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:26:40,548 [DEBUG][       Thread-600147][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:26:40,548 [DEBUG][       Thread-600147][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:26:40,548 [DEBUG][       Thread-600147][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:26:40,567 [ INFO][       Thread-600147][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:26:40,567 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:26:40,567 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:26:41,570 [DEBUG][       Thread-600147][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:26:41,570 [DEBUG][       Thread-600147][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:26:41,620 [DEBUG][       Thread-600147][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:26:41,620 [DEBUG][       Thread-600147][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:26:41,629 [DEBUG][       Thread-600147][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:26:41,639 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:26:41,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-07-01 09:26:41,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-07-01 09:26:41,657 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:26:41,658 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:26:41,658 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:26:41,666 [DEBUG][       Thread-600147][   transport.py][1871] : EOF in transport thread
2025-07-01 09:26:46,170 [DEBUG][Thread-600149 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:26:50,921 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:26:50,922 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:26:51,668 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:26:51,669 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:26:51,669 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:26:51,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-07-01 09:26:52,172 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 26, 28), 9.52, 51.17, 0.0, 32.96, 8.75, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:26:52,172 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:26:28
2025-07-01 09:26:52,259 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:26:52,264 [DEBUG][       Thread-600150][   transport.py][1871] : starting thread (client mode): 0x818e830
2025-07-01 09:26:52,264 [DEBUG][       Thread-600150][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:26:52,285 [DEBUG][       Thread-600150][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:26:52,285 [ INFO][       Thread-600150][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:26:52,289 [DEBUG][       Thread-600150][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:26:52,289 [DEBUG][       Thread-600150][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:26:52,289 [DEBUG][       Thread-600150][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:26:52,289 [DEBUG][       Thread-600150][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:26:52,289 [DEBUG][       Thread-600150][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:26:52,289 [DEBUG][       Thread-600150][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:26:52,289 [DEBUG][       Thread-600150][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:26:52,289 [DEBUG][       Thread-600150][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:26:52,289 [DEBUG][       Thread-600150][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:26:52,289 [DEBUG][       Thread-600150][   transport.py][1871] : client lang: <none>
2025-07-01 09:26:52,289 [DEBUG][       Thread-600150][   transport.py][1871] : server lang: <none>
2025-07-01 09:26:52,289 [DEBUG][       Thread-600150][   transport.py][1871] : kex follows: False
2025-07-01 09:26:52,289 [DEBUG][       Thread-600150][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:26:52,289 [DEBUG][       Thread-600150][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:26:52,289 [DEBUG][       Thread-600150][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:26:52,289 [DEBUG][       Thread-600150][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:26:52,289 [DEBUG][       Thread-600150][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:26:52,289 [DEBUG][       Thread-600150][   transport.py][1871] : Compression: none
2025-07-01 09:26:52,289 [DEBUG][       Thread-600150][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:26:52,308 [DEBUG][       Thread-600150][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:26:52,308 [DEBUG][       Thread-600150][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:26:52,309 [DEBUG][       Thread-600150][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:26:52,309 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:26:52,309 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:26:52,310 [DEBUG][       Thread-600150][   transport.py][1871] : userauth is OK
2025-07-01 09:26:52,335 [ INFO][       Thread-600150][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:26:52,335 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:26:52,947 [DEBUG][       Thread-600150][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:26:52,947 [DEBUG][       Thread-600150][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:26:52,993 [DEBUG][       Thread-600150][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:26:52,993 [DEBUG][       Thread-600150][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:26:52,996 [DEBUG][       Thread-600150][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:26:53,005 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:26:53,006 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:26:53,008 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:26:53,009 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:26:53,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:26:53,016 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:26:53,017 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:26:53,017 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:26:53,017 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.309670 -999.00   +8.60  35.24     55   +0.30 1 1 2 1 1   887    0 8.85 35.82 ----- 35.2 35.2 23.7 48.1 11.4 -23.5 10.5 -23.3 9.5 -22.8 10.4 -22.5
2025-07-01 09:26:53,017 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:26:53,017 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:26:53,017 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.309670
2025-07-01 09:26:53,018 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:26:53,018 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:26:53,018 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:26:53,019 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:26:53,019 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:26:53,019 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:26:28', tmtdew=9.52, humidity=51.17, cloud=0.0, wind=32.96, temperature=8.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:25:55.488', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:26:53,020 [DEBUG][       Thread-600150][   transport.py][1871] : EOF in transport thread
2025-07-01 09:26:53,102 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:26:53,113 [DEBUG][       Thread-600153][   transport.py][1871] : starting thread (client mode): 0x8155990
2025-07-01 09:26:53,113 [DEBUG][       Thread-600153][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:26:53,131 [DEBUG][       Thread-600153][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:26:53,131 [ INFO][       Thread-600153][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:26:53,138 [DEBUG][       Thread-600153][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:26:53,138 [DEBUG][       Thread-600153][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:26:53,138 [DEBUG][       Thread-600153][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:26:53,139 [DEBUG][       Thread-600153][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:26:53,139 [DEBUG][       Thread-600153][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:26:53,139 [DEBUG][       Thread-600153][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:26:53,139 [DEBUG][       Thread-600153][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:26:53,139 [DEBUG][       Thread-600153][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:26:53,139 [DEBUG][       Thread-600153][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:26:53,139 [DEBUG][       Thread-600153][   transport.py][1871] : client lang: <none>
2025-07-01 09:26:53,139 [DEBUG][       Thread-600153][   transport.py][1871] : server lang: <none>
2025-07-01 09:26:53,139 [DEBUG][       Thread-600153][   transport.py][1871] : kex follows: False
2025-07-01 09:26:53,139 [DEBUG][       Thread-600153][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:26:53,139 [DEBUG][       Thread-600153][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:26:53,139 [DEBUG][       Thread-600153][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:26:53,139 [DEBUG][       Thread-600153][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:26:53,139 [DEBUG][       Thread-600153][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:26:53,139 [DEBUG][       Thread-600153][   transport.py][1871] : Compression: none
2025-07-01 09:26:53,139 [DEBUG][       Thread-600153][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:26:53,200 [DEBUG][       Thread-600153][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:26:53,200 [DEBUG][       Thread-600153][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:26:53,201 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:26:53,202 [DEBUG][       Thread-600153][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:26:53,202 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:26:53,264 [DEBUG][       Thread-600153][   transport.py][1871] : userauth is OK
2025-07-01 09:26:53,264 [DEBUG][       Thread-600153][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:26:53,264 [DEBUG][       Thread-600153][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:26:53,265 [DEBUG][       Thread-600153][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:26:53,265 [DEBUG][       Thread-600153][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:26:53,288 [ INFO][       Thread-600153][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:26:53,288 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:26:53,288 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:26:54,338 [DEBUG][       Thread-600153][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:26:54,338 [DEBUG][       Thread-600153][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:26:54,388 [DEBUG][       Thread-600153][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:26:54,388 [DEBUG][       Thread-600153][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:26:54,397 [DEBUG][       Thread-600153][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:26:54,407 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:26:54,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-07-01 09:26:54,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-07-01 09:26:54,426 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:26:54,426 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:26:54,426 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:26:54,434 [DEBUG][       Thread-600153][   transport.py][1871] : EOF in transport thread
2025-07-01 09:26:55,209 [DEBUG][Thread-600155 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:27:04,227 [DEBUG][Thread-600156 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:27:04,437 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:27:04,437 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:27:04,437 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:27:04,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-07-01 09:27:04,935 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 27), 9.53, 51.1, 0.0, 29.02, 8.74, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:27:04,935 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:27:00
2025-07-01 09:27:05,022 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:27:05,026 [DEBUG][       Thread-600157][   transport.py][1871] : starting thread (client mode): 0x818d8d0
2025-07-01 09:27:05,026 [DEBUG][       Thread-600157][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:27:05,045 [DEBUG][       Thread-600157][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:27:05,045 [ INFO][       Thread-600157][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:27:05,049 [DEBUG][       Thread-600157][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:27:05,049 [DEBUG][       Thread-600157][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:27:05,049 [DEBUG][       Thread-600157][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:27:05,049 [DEBUG][       Thread-600157][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:27:05,049 [DEBUG][       Thread-600157][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:27:05,049 [DEBUG][       Thread-600157][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:27:05,049 [DEBUG][       Thread-600157][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:27:05,049 [DEBUG][       Thread-600157][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:27:05,049 [DEBUG][       Thread-600157][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:27:05,049 [DEBUG][       Thread-600157][   transport.py][1871] : client lang: <none>
2025-07-01 09:27:05,049 [DEBUG][       Thread-600157][   transport.py][1871] : server lang: <none>
2025-07-01 09:27:05,049 [DEBUG][       Thread-600157][   transport.py][1871] : kex follows: False
2025-07-01 09:27:05,049 [DEBUG][       Thread-600157][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:27:05,049 [DEBUG][       Thread-600157][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:27:05,049 [DEBUG][       Thread-600157][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:27:05,049 [DEBUG][       Thread-600157][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:27:05,049 [DEBUG][       Thread-600157][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:27:05,050 [DEBUG][       Thread-600157][   transport.py][1871] : Compression: none
2025-07-01 09:27:05,050 [DEBUG][       Thread-600157][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:27:05,065 [DEBUG][       Thread-600157][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:27:05,066 [DEBUG][       Thread-600157][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:27:05,066 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:27:05,066 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:27:05,067 [DEBUG][       Thread-600157][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:27:05,067 [DEBUG][       Thread-600157][   transport.py][1871] : userauth is OK
2025-07-01 09:27:05,092 [ INFO][       Thread-600157][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:27:05,093 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:27:05,714 [DEBUG][       Thread-600157][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:27:05,714 [DEBUG][       Thread-600157][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:27:05,757 [DEBUG][       Thread-600157][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:27:05,757 [DEBUG][       Thread-600157][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:27:05,760 [DEBUG][       Thread-600157][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:27:05,774 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:27:05,774 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:27:05,776 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:27:05,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:27:05,784 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:27:05,785 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:27:05,786 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:27:05,786 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:27:05,787 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.310017 -999.00   +8.70  32.28     56   +0.40 1 1 2 1 1   887    0 8.98 36.83 ----- 32.3 32.3 16.0 47.9 11.5 -23.4 10.4 -23.7 9.5 -23.0 10.6 -22.1
2025-07-01 09:27:05,787 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:27:05,787 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:27:05,787 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.310017
2025-07-01 09:27:05,787 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:27:05,788 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:27:05,788 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:27:05,788 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:27:05,788 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:27:05,788 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:27:00', tmtdew=9.53, humidity=51.1, cloud=0.0, wind=29.02, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:26:25.469', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:27:05,789 [DEBUG][       Thread-600157][   transport.py][1871] : EOF in transport thread
2025-07-01 09:27:05,872 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:27:05,883 [DEBUG][       Thread-600160][   transport.py][1871] : starting thread (client mode): 0x81e4100
2025-07-01 09:27:05,883 [DEBUG][       Thread-600160][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:27:05,900 [DEBUG][       Thread-600160][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:27:05,901 [ INFO][       Thread-600160][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:27:05,911 [DEBUG][       Thread-600160][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:27:05,911 [DEBUG][       Thread-600160][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:27:05,911 [DEBUG][       Thread-600160][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:27:05,911 [DEBUG][       Thread-600160][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:27:05,911 [DEBUG][       Thread-600160][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:27:05,911 [DEBUG][       Thread-600160][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:27:05,911 [DEBUG][       Thread-600160][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:27:05,911 [DEBUG][       Thread-600160][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:27:05,911 [DEBUG][       Thread-600160][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:27:05,911 [DEBUG][       Thread-600160][   transport.py][1871] : client lang: <none>
2025-07-01 09:27:05,911 [DEBUG][       Thread-600160][   transport.py][1871] : server lang: <none>
2025-07-01 09:27:05,912 [DEBUG][       Thread-600160][   transport.py][1871] : kex follows: False
2025-07-01 09:27:05,912 [DEBUG][       Thread-600160][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:27:05,912 [DEBUG][       Thread-600160][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:27:05,912 [DEBUG][       Thread-600160][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:27:05,912 [DEBUG][       Thread-600160][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:27:05,912 [DEBUG][       Thread-600160][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:27:05,912 [DEBUG][       Thread-600160][   transport.py][1871] : Compression: none
2025-07-01 09:27:05,912 [DEBUG][       Thread-600160][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:27:05,971 [DEBUG][       Thread-600160][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:27:05,972 [DEBUG][       Thread-600160][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:27:05,972 [DEBUG][       Thread-600160][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:27:05,973 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:27:05,973 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:27:06,031 [DEBUG][       Thread-600160][   transport.py][1871] : userauth is OK
2025-07-01 09:27:06,031 [DEBUG][       Thread-600160][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:27:06,031 [DEBUG][       Thread-600160][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:27:06,032 [DEBUG][       Thread-600160][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:27:06,032 [DEBUG][       Thread-600160][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:27:06,056 [ INFO][       Thread-600160][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:27:06,056 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:27:06,057 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:27:07,052 [DEBUG][       Thread-600160][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:27:07,052 [DEBUG][       Thread-600160][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:27:07,102 [DEBUG][       Thread-600160][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:27:07,102 [DEBUG][       Thread-600160][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:27:07,114 [DEBUG][       Thread-600160][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:27:07,126 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:27:07,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-07-01 09:27:07,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-07-01 09:27:07,150 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:27:07,150 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:27:07,151 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:27:07,161 [DEBUG][       Thread-600160][   transport.py][1871] : EOF in transport thread
2025-07-01 09:27:13,250 [DEBUG][Thread-600162 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:27:17,161 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:27:17,161 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:27:17,161 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:27:17,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-07-01 09:27:17,656 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 27), 9.53, 51.1, 0.0, 29.02, 8.74, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:27:17,656 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:27:00
2025-07-01 09:27:17,744 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:27:17,748 [DEBUG][       Thread-600163][   transport.py][1871] : starting thread (client mode): 0x818ed70
2025-07-01 09:27:17,748 [DEBUG][       Thread-600163][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:27:17,768 [DEBUG][       Thread-600163][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:27:17,768 [ INFO][       Thread-600163][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:27:17,771 [DEBUG][       Thread-600163][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:27:17,771 [DEBUG][       Thread-600163][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:27:17,771 [DEBUG][       Thread-600163][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:27:17,771 [DEBUG][       Thread-600163][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:27:17,771 [DEBUG][       Thread-600163][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:27:17,771 [DEBUG][       Thread-600163][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:27:17,771 [DEBUG][       Thread-600163][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:27:17,771 [DEBUG][       Thread-600163][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:27:17,771 [DEBUG][       Thread-600163][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:27:17,771 [DEBUG][       Thread-600163][   transport.py][1871] : client lang: <none>
2025-07-01 09:27:17,771 [DEBUG][       Thread-600163][   transport.py][1871] : server lang: <none>
2025-07-01 09:27:17,771 [DEBUG][       Thread-600163][   transport.py][1871] : kex follows: False
2025-07-01 09:27:17,771 [DEBUG][       Thread-600163][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:27:17,771 [DEBUG][       Thread-600163][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:27:17,771 [DEBUG][       Thread-600163][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:27:17,771 [DEBUG][       Thread-600163][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:27:17,771 [DEBUG][       Thread-600163][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:27:17,771 [DEBUG][       Thread-600163][   transport.py][1871] : Compression: none
2025-07-01 09:27:17,771 [DEBUG][       Thread-600163][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:27:17,787 [DEBUG][       Thread-600163][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:27:17,787 [DEBUG][       Thread-600163][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:27:17,787 [DEBUG][       Thread-600163][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:27:17,787 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:27:17,787 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:27:17,788 [DEBUG][       Thread-600163][   transport.py][1871] : userauth is OK
2025-07-01 09:27:17,812 [ INFO][       Thread-600163][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:27:17,812 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:27:18,387 [DEBUG][       Thread-600163][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:27:18,388 [DEBUG][       Thread-600163][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:27:18,429 [DEBUG][       Thread-600163][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:27:18,429 [DEBUG][       Thread-600163][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:27:18,432 [DEBUG][       Thread-600163][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:27:18,446 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:27:18,446 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:27:18,448 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:27:18,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:27:18,453 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:27:18,455 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:27:18,455 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:27:18,456 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:27:18,456 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.310017 -999.00   +8.70  32.28     56   +0.40 1 1 2 1 1   887    0 8.98 36.83 ----- 32.3 32.3 16.0 47.9 11.5 -23.4 10.4 -23.7 9.5 -23.0 10.6 -22.1
2025-07-01 09:27:18,456 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:27:18,456 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:27:18,456 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.310017
2025-07-01 09:27:18,457 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:27:18,457 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:27:18,457 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:27:18,458 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:27:18,458 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:27:18,458 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:27:00', tmtdew=9.53, humidity=51.1, cloud=0.0, wind=29.02, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:26:25.469', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:27:18,459 [DEBUG][       Thread-600163][   transport.py][1871] : EOF in transport thread
2025-07-01 09:27:18,541 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:27:18,552 [DEBUG][       Thread-600166][   transport.py][1871] : starting thread (client mode): 0x8156740
2025-07-01 09:27:18,552 [DEBUG][       Thread-600166][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:27:18,567 [DEBUG][       Thread-600166][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:27:18,567 [ INFO][       Thread-600166][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:27:18,574 [DEBUG][       Thread-600166][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:27:18,574 [DEBUG][       Thread-600166][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:27:18,574 [DEBUG][       Thread-600166][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:27:18,574 [DEBUG][       Thread-600166][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:27:18,574 [DEBUG][       Thread-600166][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:27:18,575 [DEBUG][       Thread-600166][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:27:18,575 [DEBUG][       Thread-600166][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:27:18,575 [DEBUG][       Thread-600166][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:27:18,575 [DEBUG][       Thread-600166][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:27:18,575 [DEBUG][       Thread-600166][   transport.py][1871] : client lang: <none>
2025-07-01 09:27:18,575 [DEBUG][       Thread-600166][   transport.py][1871] : server lang: <none>
2025-07-01 09:27:18,575 [DEBUG][       Thread-600166][   transport.py][1871] : kex follows: False
2025-07-01 09:27:18,575 [DEBUG][       Thread-600166][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:27:18,575 [DEBUG][       Thread-600166][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:27:18,575 [DEBUG][       Thread-600166][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:27:18,575 [DEBUG][       Thread-600166][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:27:18,575 [DEBUG][       Thread-600166][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:27:18,575 [DEBUG][       Thread-600166][   transport.py][1871] : Compression: none
2025-07-01 09:27:18,575 [DEBUG][       Thread-600166][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:27:18,631 [DEBUG][       Thread-600166][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:27:18,632 [DEBUG][       Thread-600166][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:27:18,632 [DEBUG][       Thread-600166][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:27:18,632 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:27:18,633 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:27:18,688 [DEBUG][       Thread-600166][   transport.py][1871] : userauth is OK
2025-07-01 09:27:18,688 [DEBUG][       Thread-600166][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:27:18,688 [DEBUG][       Thread-600166][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:27:18,688 [DEBUG][       Thread-600166][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:27:18,688 [DEBUG][       Thread-600166][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:27:18,708 [ INFO][       Thread-600166][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:27:18,708 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:27:18,708 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:27:19,694 [DEBUG][       Thread-600166][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:27:19,694 [DEBUG][       Thread-600166][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:27:19,744 [DEBUG][       Thread-600166][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:27:19,745 [DEBUG][       Thread-600166][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:27:19,754 [DEBUG][       Thread-600166][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:27:19,763 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:27:19,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-07-01 09:27:19,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-07-01 09:27:19,781 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:27:19,781 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:27:19,782 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:27:19,790 [DEBUG][       Thread-600166][   transport.py][1871] : EOF in transport thread
2025-07-01 09:27:20,353 [DEBUG][Thread-600168 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:27:22,283 [DEBUG][Thread-600169 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:27:29,792 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:27:29,792 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:27:29,792 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:27:29,795 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:27:30,287 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 27), 9.53, 51.1, 0.0, 29.02, 8.74, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:27:30,288 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:27:00
2025-07-01 09:27:30,373 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:27:30,380 [DEBUG][       Thread-600170][   transport.py][1871] : starting thread (client mode): 0x8154a90
2025-07-01 09:27:30,380 [DEBUG][       Thread-600170][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:27:30,400 [DEBUG][       Thread-600170][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:27:30,400 [ INFO][       Thread-600170][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:27:30,404 [DEBUG][       Thread-600170][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:27:30,404 [DEBUG][       Thread-600170][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:27:30,404 [DEBUG][       Thread-600170][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:27:30,404 [DEBUG][       Thread-600170][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:27:30,404 [DEBUG][       Thread-600170][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:27:30,404 [DEBUG][       Thread-600170][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:27:30,404 [DEBUG][       Thread-600170][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:27:30,404 [DEBUG][       Thread-600170][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:27:30,404 [DEBUG][       Thread-600170][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:27:30,404 [DEBUG][       Thread-600170][   transport.py][1871] : client lang: <none>
2025-07-01 09:27:30,404 [DEBUG][       Thread-600170][   transport.py][1871] : server lang: <none>
2025-07-01 09:27:30,404 [DEBUG][       Thread-600170][   transport.py][1871] : kex follows: False
2025-07-01 09:27:30,404 [DEBUG][       Thread-600170][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:27:30,404 [DEBUG][       Thread-600170][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:27:30,404 [DEBUG][       Thread-600170][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:27:30,405 [DEBUG][       Thread-600170][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:27:30,405 [DEBUG][       Thread-600170][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:27:30,405 [DEBUG][       Thread-600170][   transport.py][1871] : Compression: none
2025-07-01 09:27:30,405 [DEBUG][       Thread-600170][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:27:30,414 [DEBUG][       Thread-600170][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:27:30,415 [DEBUG][       Thread-600170][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:27:30,415 [DEBUG][       Thread-600170][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:27:30,415 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:27:30,416 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:27:30,416 [DEBUG][       Thread-600170][   transport.py][1871] : userauth is OK
2025-07-01 09:27:30,429 [ INFO][       Thread-600170][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:27:30,430 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:27:31,031 [DEBUG][       Thread-600170][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:27:31,031 [DEBUG][       Thread-600170][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:27:31,073 [DEBUG][       Thread-600170][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:27:31,073 [DEBUG][       Thread-600170][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:27:31,076 [DEBUG][       Thread-600170][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:27:31,087 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:27:31,087 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:27:31,089 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:27:31,090 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:27:31,094 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:27:31,096 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:27:31,096 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:27:31,096 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:27:31,097 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.310712 -999.00   +8.70  31.92     56   +0.40 1 1 2 1 1   887    0 8.99 37.54 ----- 31.9 31.9 41.0 46.7 11.6 -23.1 10.7 -24.0 9.6 -23.0 10.6 -21.9
2025-07-01 09:27:31,097 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:27:31,097 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:27:31,097 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.310712
2025-07-01 09:27:31,097 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:27:31,098 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:27:31,098 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:27:31,098 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:27:31,098 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:27:31,098 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:27:00', tmtdew=9.53, humidity=51.1, cloud=0.0, wind=29.02, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:27:25.517', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:27:31,099 [DEBUG][       Thread-600170][   transport.py][1871] : EOF in transport thread
2025-07-01 09:27:31,181 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:27:31,194 [DEBUG][       Thread-600173][   transport.py][1871] : starting thread (client mode): 0x818dab0
2025-07-01 09:27:31,194 [DEBUG][       Thread-600173][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:27:31,209 [DEBUG][       Thread-600173][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:27:31,209 [ INFO][       Thread-600173][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:27:31,216 [DEBUG][       Thread-600173][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:27:31,216 [DEBUG][       Thread-600173][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:27:31,217 [DEBUG][       Thread-600173][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:27:31,217 [DEBUG][       Thread-600173][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:27:31,217 [DEBUG][       Thread-600173][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:27:31,217 [DEBUG][       Thread-600173][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:27:31,217 [DEBUG][       Thread-600173][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:27:31,217 [DEBUG][       Thread-600173][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:27:31,217 [DEBUG][       Thread-600173][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:27:31,217 [DEBUG][       Thread-600173][   transport.py][1871] : client lang: <none>
2025-07-01 09:27:31,217 [DEBUG][       Thread-600173][   transport.py][1871] : server lang: <none>
2025-07-01 09:27:31,217 [DEBUG][       Thread-600173][   transport.py][1871] : kex follows: False
2025-07-01 09:27:31,217 [DEBUG][       Thread-600173][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:27:31,217 [DEBUG][       Thread-600173][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:27:31,217 [DEBUG][       Thread-600173][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:27:31,217 [DEBUG][       Thread-600173][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:27:31,217 [DEBUG][       Thread-600173][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:27:31,217 [DEBUG][       Thread-600173][   transport.py][1871] : Compression: none
2025-07-01 09:27:31,217 [DEBUG][       Thread-600173][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:27:31,279 [DEBUG][       Thread-600173][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:27:31,280 [DEBUG][       Thread-600173][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:27:31,281 [DEBUG][       Thread-600173][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:27:31,281 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:27:31,281 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:27:31,305 [DEBUG][Thread-600175 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:27:31,340 [DEBUG][       Thread-600173][   transport.py][1871] : userauth is OK
2025-07-01 09:27:31,340 [DEBUG][       Thread-600173][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:27:31,340 [DEBUG][       Thread-600173][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:27:31,340 [DEBUG][       Thread-600173][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:27:31,340 [DEBUG][       Thread-600173][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:27:31,359 [ INFO][       Thread-600173][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:27:31,360 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:27:31,360 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:27:32,388 [DEBUG][       Thread-600173][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:27:32,388 [DEBUG][       Thread-600173][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:27:32,439 [DEBUG][       Thread-600173][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:27:32,439 [DEBUG][       Thread-600173][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:27:32,448 [DEBUG][       Thread-600173][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:27:32,456 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:27:32,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-07-01 09:27:32,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-07-01 09:27:32,472 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:27:32,472 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:27:32,472 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:27:32,480 [DEBUG][       Thread-600173][   transport.py][1871] : EOF in transport thread
2025-07-01 09:27:40,325 [DEBUG][Thread-600176 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:27:42,478 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:27:42,478 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:27:42,478 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:27:42,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-07-01 09:27:42,979 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 27, 32), 9.56, 51.02, 0.0, 32.69, 8.81, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:27:42,979 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:27:32
2025-07-01 09:27:43,064 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:27:43,069 [DEBUG][       Thread-600177][   transport.py][1871] : starting thread (client mode): 0x81a5870
2025-07-01 09:27:43,069 [DEBUG][       Thread-600177][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:27:43,089 [DEBUG][       Thread-600177][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:27:43,089 [ INFO][       Thread-600177][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:27:43,092 [DEBUG][       Thread-600177][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:27:43,092 [DEBUG][       Thread-600177][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:27:43,092 [DEBUG][       Thread-600177][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:27:43,092 [DEBUG][       Thread-600177][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:27:43,092 [DEBUG][       Thread-600177][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:27:43,093 [DEBUG][       Thread-600177][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:27:43,093 [DEBUG][       Thread-600177][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:27:43,093 [DEBUG][       Thread-600177][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:27:43,093 [DEBUG][       Thread-600177][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:27:43,093 [DEBUG][       Thread-600177][   transport.py][1871] : client lang: <none>
2025-07-01 09:27:43,093 [DEBUG][       Thread-600177][   transport.py][1871] : server lang: <none>
2025-07-01 09:27:43,093 [DEBUG][       Thread-600177][   transport.py][1871] : kex follows: False
2025-07-01 09:27:43,093 [DEBUG][       Thread-600177][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:27:43,093 [DEBUG][       Thread-600177][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:27:43,093 [DEBUG][       Thread-600177][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:27:43,093 [DEBUG][       Thread-600177][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:27:43,093 [DEBUG][       Thread-600177][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:27:43,093 [DEBUG][       Thread-600177][   transport.py][1871] : Compression: none
2025-07-01 09:27:43,093 [DEBUG][       Thread-600177][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:27:43,110 [DEBUG][       Thread-600177][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:27:43,110 [DEBUG][       Thread-600177][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:27:43,111 [DEBUG][       Thread-600177][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:27:43,111 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:27:43,111 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:27:43,112 [DEBUG][       Thread-600177][   transport.py][1871] : userauth is OK
2025-07-01 09:27:43,159 [ INFO][       Thread-600177][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:27:43,160 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:27:43,959 [DEBUG][       Thread-600177][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:27:43,960 [DEBUG][       Thread-600177][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:27:44,001 [DEBUG][       Thread-600177][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:27:44,001 [DEBUG][       Thread-600177][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:27:44,004 [DEBUG][       Thread-600177][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:27:44,016 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:27:44,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:27:44,018 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:27:44,020 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:27:44,024 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:27:44,026 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:27:44,026 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:27:44,027 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:27:44,027 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.310712 -999.00   +8.70  31.92     56   +0.40 1 1 2 1 1   887    0 8.99 37.54 ----- 31.9 31.9 41.0 46.7 11.6 -23.1 10.7 -24.0 9.6 -23.0 10.6 -21.9
2025-07-01 09:27:44,027 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:27:44,027 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:27:44,027 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.310712
2025-07-01 09:27:44,027 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:27:44,028 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:27:44,028 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:27:44,028 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:27:44,028 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:27:44,028 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:27:32', tmtdew=9.56, humidity=51.02, cloud=0.0, wind=32.69, temperature=8.81, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:27:25.517', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:27:44,029 [DEBUG][       Thread-600177][   transport.py][1871] : EOF in transport thread
2025-07-01 09:27:44,114 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:27:44,123 [DEBUG][       Thread-600180][   transport.py][1871] : starting thread (client mode): 0x818f220
2025-07-01 09:27:44,123 [DEBUG][       Thread-600180][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:27:44,138 [DEBUG][       Thread-600180][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:27:44,138 [ INFO][       Thread-600180][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:27:44,145 [DEBUG][       Thread-600180][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:27:44,146 [DEBUG][       Thread-600180][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:27:44,146 [DEBUG][       Thread-600180][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:27:44,146 [DEBUG][       Thread-600180][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:27:44,146 [DEBUG][       Thread-600180][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:27:44,146 [DEBUG][       Thread-600180][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:27:44,146 [DEBUG][       Thread-600180][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:27:44,146 [DEBUG][       Thread-600180][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:27:44,146 [DEBUG][       Thread-600180][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:27:44,146 [DEBUG][       Thread-600180][   transport.py][1871] : client lang: <none>
2025-07-01 09:27:44,146 [DEBUG][       Thread-600180][   transport.py][1871] : server lang: <none>
2025-07-01 09:27:44,146 [DEBUG][       Thread-600180][   transport.py][1871] : kex follows: False
2025-07-01 09:27:44,146 [DEBUG][       Thread-600180][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:27:44,146 [DEBUG][       Thread-600180][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:27:44,146 [DEBUG][       Thread-600180][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:27:44,146 [DEBUG][       Thread-600180][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:27:44,146 [DEBUG][       Thread-600180][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:27:44,146 [DEBUG][       Thread-600180][   transport.py][1871] : Compression: none
2025-07-01 09:27:44,146 [DEBUG][       Thread-600180][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:27:44,209 [DEBUG][       Thread-600180][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:27:44,209 [DEBUG][       Thread-600180][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:27:44,210 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:27:44,210 [DEBUG][       Thread-600180][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:27:44,211 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:27:44,268 [DEBUG][       Thread-600180][   transport.py][1871] : userauth is OK
2025-07-01 09:27:44,269 [DEBUG][       Thread-600180][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:27:44,269 [DEBUG][       Thread-600180][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:27:44,269 [DEBUG][       Thread-600180][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:27:44,269 [DEBUG][       Thread-600180][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:27:44,287 [ INFO][       Thread-600180][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:27:44,287 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:27:44,287 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:27:45,252 [DEBUG][       Thread-600180][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:27:45,253 [DEBUG][       Thread-600180][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:27:45,308 [DEBUG][       Thread-600180][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:27:45,308 [DEBUG][       Thread-600180][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:27:45,318 [DEBUG][       Thread-600180][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:27:45,326 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:27:45,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-07-01 09:27:45,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-07-01 09:27:45,345 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:27:45,345 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:27:45,346 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:27:45,354 [DEBUG][       Thread-600180][   transport.py][1871] : EOF in transport thread
2025-07-01 09:27:49,346 [DEBUG][Thread-600182 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:27:51,060 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:27:51,061 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:27:55,353 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:27:55,353 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:27:55,354 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:27:55,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-07-01 09:27:55,847 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 27, 32), 9.56, 51.02, 0.0, 32.69, 8.81, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:27:55,847 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:27:32
2025-07-01 09:27:55,934 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:27:55,938 [DEBUG][       Thread-600183][   transport.py][1871] : starting thread (client mode): 0x8105f90
2025-07-01 09:27:55,938 [DEBUG][       Thread-600183][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:27:55,957 [DEBUG][       Thread-600183][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:27:55,957 [ INFO][       Thread-600183][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:27:55,960 [DEBUG][       Thread-600183][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:27:55,960 [DEBUG][       Thread-600183][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:27:55,960 [DEBUG][       Thread-600183][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:27:55,960 [DEBUG][       Thread-600183][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:27:55,961 [DEBUG][       Thread-600183][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:27:55,961 [DEBUG][       Thread-600183][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:27:55,961 [DEBUG][       Thread-600183][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:27:55,961 [DEBUG][       Thread-600183][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:27:55,961 [DEBUG][       Thread-600183][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:27:55,961 [DEBUG][       Thread-600183][   transport.py][1871] : client lang: <none>
2025-07-01 09:27:55,961 [DEBUG][       Thread-600183][   transport.py][1871] : server lang: <none>
2025-07-01 09:27:55,961 [DEBUG][       Thread-600183][   transport.py][1871] : kex follows: False
2025-07-01 09:27:55,961 [DEBUG][       Thread-600183][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:27:55,961 [DEBUG][       Thread-600183][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:27:55,961 [DEBUG][       Thread-600183][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:27:55,961 [DEBUG][       Thread-600183][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:27:55,961 [DEBUG][       Thread-600183][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:27:55,961 [DEBUG][       Thread-600183][   transport.py][1871] : Compression: none
2025-07-01 09:27:55,961 [DEBUG][       Thread-600183][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:27:55,977 [DEBUG][       Thread-600183][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:27:55,977 [DEBUG][       Thread-600183][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:27:55,978 [DEBUG][       Thread-600183][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:27:55,978 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:27:55,978 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:27:55,979 [DEBUG][       Thread-600183][   transport.py][1871] : userauth is OK
2025-07-01 09:27:56,003 [ INFO][       Thread-600183][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:27:56,004 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:27:56,697 [DEBUG][       Thread-600183][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:27:56,697 [DEBUG][       Thread-600183][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:27:56,741 [DEBUG][       Thread-600183][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:27:56,741 [DEBUG][       Thread-600183][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:27:56,744 [DEBUG][       Thread-600183][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:27:56,757 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:27:56,757 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:27:56,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:27:56,761 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:27:56,766 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:27:56,768 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:27:56,768 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:27:56,769 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:27:56,769 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.310712 -999.00   +8.70  31.92     56   +0.40 1 1 2 1 1   887    0 8.99 37.54 ----- 31.9 31.9 41.0 46.7 11.6 -23.1 10.7 -24.0 9.6 -23.0 10.6 -21.9
2025-07-01 09:27:56,769 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:27:56,769 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:27:56,769 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.310712
2025-07-01 09:27:56,770 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:27:56,770 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:27:56,770 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:27:56,770 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:27:56,771 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:27:56,771 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:27:32', tmtdew=9.56, humidity=51.02, cloud=0.0, wind=32.69, temperature=8.81, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:27:25.517', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:27:56,772 [DEBUG][       Thread-600183][   transport.py][1871] : EOF in transport thread
2025-07-01 09:27:56,858 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:27:56,870 [DEBUG][       Thread-600186][   transport.py][1871] : starting thread (client mode): 0x818ee30
2025-07-01 09:27:56,871 [DEBUG][       Thread-600186][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:27:56,887 [DEBUG][       Thread-600186][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:27:56,887 [ INFO][       Thread-600186][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:27:56,894 [DEBUG][       Thread-600186][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:27:56,894 [DEBUG][       Thread-600186][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:27:56,895 [DEBUG][       Thread-600186][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:27:56,895 [DEBUG][       Thread-600186][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:27:56,895 [DEBUG][       Thread-600186][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:27:56,895 [DEBUG][       Thread-600186][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:27:56,895 [DEBUG][       Thread-600186][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:27:56,895 [DEBUG][       Thread-600186][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:27:56,895 [DEBUG][       Thread-600186][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:27:56,895 [DEBUG][       Thread-600186][   transport.py][1871] : client lang: <none>
2025-07-01 09:27:56,895 [DEBUG][       Thread-600186][   transport.py][1871] : server lang: <none>
2025-07-01 09:27:56,895 [DEBUG][       Thread-600186][   transport.py][1871] : kex follows: False
2025-07-01 09:27:56,895 [DEBUG][       Thread-600186][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:27:56,895 [DEBUG][       Thread-600186][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:27:56,895 [DEBUG][       Thread-600186][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:27:56,895 [DEBUG][       Thread-600186][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:27:56,895 [DEBUG][       Thread-600186][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:27:56,895 [DEBUG][       Thread-600186][   transport.py][1871] : Compression: none
2025-07-01 09:27:56,895 [DEBUG][       Thread-600186][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:27:56,951 [DEBUG][       Thread-600186][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:27:56,952 [DEBUG][       Thread-600186][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:27:56,952 [DEBUG][       Thread-600186][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:27:56,952 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:27:56,953 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:27:57,013 [DEBUG][       Thread-600186][   transport.py][1871] : userauth is OK
2025-07-01 09:27:57,013 [DEBUG][       Thread-600186][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:27:57,013 [DEBUG][       Thread-600186][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:27:57,013 [DEBUG][       Thread-600186][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:27:57,013 [DEBUG][       Thread-600186][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:27:57,038 [ INFO][       Thread-600186][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:27:57,039 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:27:57,039 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:27:58,059 [DEBUG][       Thread-600186][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:27:58,060 [DEBUG][       Thread-600186][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:27:58,108 [DEBUG][       Thread-600186][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:27:58,108 [DEBUG][       Thread-600186][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:27:58,118 [DEBUG][       Thread-600186][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:27:58,128 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:27:58,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-07-01 09:27:58,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-07-01 09:27:58,154 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:27:58,154 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:27:58,155 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:27:58,163 [DEBUG][       Thread-600186][   transport.py][1871] : EOF in transport thread
2025-07-01 09:27:58,379 [DEBUG][Thread-600188 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:28:07,402 [DEBUG][Thread-600189 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:28:08,156 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:28:08,156 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:28:08,156 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:28: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-07-01 09:28:08,645 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 28, 4), 9.61, 50.85, 0.0, 31.79, 8.83, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:28:08,645 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:28:04
2025-07-01 09:28:08,732 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:28:08,736 [DEBUG][       Thread-600190][   transport.py][1871] : starting thread (client mode): 0x8170a00
2025-07-01 09:28:08,736 [DEBUG][       Thread-600190][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:28:08,756 [DEBUG][       Thread-600190][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:28:08,756 [ INFO][       Thread-600190][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:28:08,760 [DEBUG][       Thread-600190][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:28:08,760 [DEBUG][       Thread-600190][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:28:08,760 [DEBUG][       Thread-600190][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:28:08,760 [DEBUG][       Thread-600190][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:28:08,760 [DEBUG][       Thread-600190][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:28:08,760 [DEBUG][       Thread-600190][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:28:08,760 [DEBUG][       Thread-600190][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:28:08,760 [DEBUG][       Thread-600190][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:28:08,760 [DEBUG][       Thread-600190][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:28:08,760 [DEBUG][       Thread-600190][   transport.py][1871] : client lang: <none>
2025-07-01 09:28:08,760 [DEBUG][       Thread-600190][   transport.py][1871] : server lang: <none>
2025-07-01 09:28:08,760 [DEBUG][       Thread-600190][   transport.py][1871] : kex follows: False
2025-07-01 09:28:08,760 [DEBUG][       Thread-600190][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:28:08,760 [DEBUG][       Thread-600190][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:28:08,760 [DEBUG][       Thread-600190][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:28:08,760 [DEBUG][       Thread-600190][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:28:08,760 [DEBUG][       Thread-600190][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:28:08,760 [DEBUG][       Thread-600190][   transport.py][1871] : Compression: none
2025-07-01 09:28:08,760 [DEBUG][       Thread-600190][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:28:08,777 [DEBUG][       Thread-600190][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:28:08,778 [DEBUG][       Thread-600190][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:28:08,778 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:28:08,778 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:28:08,779 [DEBUG][       Thread-600190][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:28:08,780 [DEBUG][       Thread-600190][   transport.py][1871] : userauth is OK
2025-07-01 09:28:08,804 [ INFO][       Thread-600190][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:28:08,805 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:28:09,424 [DEBUG][       Thread-600190][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:28:09,425 [DEBUG][       Thread-600190][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:28:09,469 [DEBUG][       Thread-600190][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:28:09,469 [DEBUG][       Thread-600190][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:28:09,472 [DEBUG][       Thread-600190][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:28:09,483 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:28:09,484 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:28:09,486 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:28:09,488 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:28:09,493 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:28:09,495 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:28:09,495 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:28:09,495 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:28:09,496 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.311059 -999.00   +8.70  30.31     56   +0.40 1 1 2 1 1   887    0 8.89 36.98 ----- 30.3 30.3 32.4 40.4 11.7 -23.6 10.7 -23.7 9.7 -23.0 10.7 -22.1
2025-07-01 09:28:09,496 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:28:09,496 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:28:09,496 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.311059
2025-07-01 09:28:09,496 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:28:09,497 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:28:09,497 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:28:09,497 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:28:09,497 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:28:09,497 [DEBUG][       Thread-600190][   transport.py][1871] : EOF in transport thread
2025-07-01 09:28:09,497 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:28:04', tmtdew=9.61, humidity=50.85, cloud=0.0, wind=31.79, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:27:55.498', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:28:09,581 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:28:09,590 [DEBUG][       Thread-600193][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 09:28:09,590 [DEBUG][       Thread-600193][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:28:09,606 [DEBUG][       Thread-600193][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:28:09,606 [ INFO][       Thread-600193][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:28:09,613 [DEBUG][       Thread-600193][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:28:09,613 [DEBUG][       Thread-600193][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:28:09,613 [DEBUG][       Thread-600193][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:28:09,613 [DEBUG][       Thread-600193][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:28:09,613 [DEBUG][       Thread-600193][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:28:09,613 [DEBUG][       Thread-600193][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:28:09,613 [DEBUG][       Thread-600193][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:28:09,613 [DEBUG][       Thread-600193][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:28:09,614 [DEBUG][       Thread-600193][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:28:09,614 [DEBUG][       Thread-600193][   transport.py][1871] : client lang: <none>
2025-07-01 09:28:09,614 [DEBUG][       Thread-600193][   transport.py][1871] : server lang: <none>
2025-07-01 09:28:09,614 [DEBUG][       Thread-600193][   transport.py][1871] : kex follows: False
2025-07-01 09:28:09,614 [DEBUG][       Thread-600193][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:28:09,614 [DEBUG][       Thread-600193][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:28:09,614 [DEBUG][       Thread-600193][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:28:09,614 [DEBUG][       Thread-600193][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:28:09,614 [DEBUG][       Thread-600193][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:28:09,614 [DEBUG][       Thread-600193][   transport.py][1871] : Compression: none
2025-07-01 09:28:09,614 [DEBUG][       Thread-600193][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:28:09,672 [DEBUG][       Thread-600193][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:28:09,672 [DEBUG][       Thread-600193][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:28:09,673 [DEBUG][       Thread-600193][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:28:09,673 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:28:09,674 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:28:09,728 [DEBUG][       Thread-600193][   transport.py][1871] : userauth is OK
2025-07-01 09:28:09,728 [DEBUG][       Thread-600193][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:28:09,728 [DEBUG][       Thread-600193][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:28:09,728 [DEBUG][       Thread-600193][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:28:09,728 [DEBUG][       Thread-600193][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:28:09,748 [ INFO][       Thread-600193][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:28:09,748 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:28:09,749 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:28:10,783 [DEBUG][       Thread-600193][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:28:10,783 [DEBUG][       Thread-600193][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:28:10,836 [DEBUG][       Thread-600193][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:28:10,836 [DEBUG][       Thread-600193][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:28:10,845 [DEBUG][       Thread-600193][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:28:10,854 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:28:10,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-07-01 09:28:10,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-07-01 09:28:10,872 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:28:10,873 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:28:10,873 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:28:10,881 [DEBUG][       Thread-600193][   transport.py][1871] : EOF in transport thread
2025-07-01 09:28:16,423 [DEBUG][Thread-600195 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:28:20,405 [DEBUG][Thread-600196 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:28:20,884 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:28:20,884 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:28:20,884 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:28:20,887 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:28:21,367 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 28, 4), 9.61, 50.85, 0.0, 31.79, 8.83, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:28:21,367 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:28:04
2025-07-01 09:28:21,453 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:28:21,457 [DEBUG][       Thread-600197][   transport.py][1871] : starting thread (client mode): 0x8170e50
2025-07-01 09:28:21,457 [DEBUG][       Thread-600197][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:28:21,478 [DEBUG][       Thread-600197][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:28:21,478 [ INFO][       Thread-600197][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:28:21,482 [DEBUG][       Thread-600197][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:28:21,482 [DEBUG][       Thread-600197][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:28:21,482 [DEBUG][       Thread-600197][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:28:21,482 [DEBUG][       Thread-600197][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:28:21,482 [DEBUG][       Thread-600197][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:28:21,482 [DEBUG][       Thread-600197][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:28:21,482 [DEBUG][       Thread-600197][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:28:21,482 [DEBUG][       Thread-600197][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:28:21,482 [DEBUG][       Thread-600197][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:28:21,482 [DEBUG][       Thread-600197][   transport.py][1871] : client lang: <none>
2025-07-01 09:28:21,482 [DEBUG][       Thread-600197][   transport.py][1871] : server lang: <none>
2025-07-01 09:28:21,482 [DEBUG][       Thread-600197][   transport.py][1871] : kex follows: False
2025-07-01 09:28:21,482 [DEBUG][       Thread-600197][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:28:21,482 [DEBUG][       Thread-600197][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:28:21,482 [DEBUG][       Thread-600197][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:28:21,482 [DEBUG][       Thread-600197][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:28:21,482 [DEBUG][       Thread-600197][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:28:21,482 [DEBUG][       Thread-600197][   transport.py][1871] : Compression: none
2025-07-01 09:28:21,482 [DEBUG][       Thread-600197][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:28:21,499 [DEBUG][       Thread-600197][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:28:21,500 [DEBUG][       Thread-600197][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:28:21,500 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:28:21,500 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:28:21,501 [DEBUG][       Thread-600197][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:28:21,501 [DEBUG][       Thread-600197][   transport.py][1871] : userauth is OK
2025-07-01 09:28:21,515 [ INFO][       Thread-600197][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:28:21,515 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:28:22,188 [DEBUG][       Thread-600197][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:28:22,189 [DEBUG][       Thread-600197][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:28:22,233 [DEBUG][       Thread-600197][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:28:22,233 [DEBUG][       Thread-600197][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:28:22,237 [DEBUG][       Thread-600197][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:28:22,250 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:28:22,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:28:22,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:28:22,254 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:28:22,261 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:28:22,263 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:28:22,263 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:28:22,263 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:28:22,264 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.311059 -999.00   +8.70  30.31     56   +0.40 1 1 2 1 1   887    0 8.89 36.98 ----- 30.3 30.3 32.4 40.4 11.7 -23.6 10.7 -23.7 9.7 -23.0 10.7 -22.1
2025-07-01 09:28:22,264 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:28:22,264 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:28:22,264 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.311059
2025-07-01 09:28:22,264 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:28:22,265 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:28:22,265 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:28:22,265 [DEBUG][       Thread-600197][   transport.py][1871] : EOF in transport thread
2025-07-01 09:28:22,265 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:28:22,266 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:28:22,266 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:28:04', tmtdew=9.61, humidity=50.85, cloud=0.0, wind=31.79, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:27:55.498', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:28:22,349 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:28:22,359 [DEBUG][       Thread-600200][   transport.py][1871] : starting thread (client mode): 0x81a4250
2025-07-01 09:28:22,359 [DEBUG][       Thread-600200][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:28:22,374 [DEBUG][       Thread-600200][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:28:22,374 [ INFO][       Thread-600200][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:28:22,382 [DEBUG][       Thread-600200][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:28:22,382 [DEBUG][       Thread-600200][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:28:22,382 [DEBUG][       Thread-600200][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:28:22,382 [DEBUG][       Thread-600200][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:28:22,382 [DEBUG][       Thread-600200][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:28:22,382 [DEBUG][       Thread-600200][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:28:22,382 [DEBUG][       Thread-600200][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:28:22,382 [DEBUG][       Thread-600200][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:28:22,382 [DEBUG][       Thread-600200][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:28:22,382 [DEBUG][       Thread-600200][   transport.py][1871] : client lang: <none>
2025-07-01 09:28:22,382 [DEBUG][       Thread-600200][   transport.py][1871] : server lang: <none>
2025-07-01 09:28:22,382 [DEBUG][       Thread-600200][   transport.py][1871] : kex follows: False
2025-07-01 09:28:22,382 [DEBUG][       Thread-600200][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:28:22,382 [DEBUG][       Thread-600200][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:28:22,382 [DEBUG][       Thread-600200][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:28:22,382 [DEBUG][       Thread-600200][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:28:22,383 [DEBUG][       Thread-600200][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:28:22,383 [DEBUG][       Thread-600200][   transport.py][1871] : Compression: none
2025-07-01 09:28:22,383 [DEBUG][       Thread-600200][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:28:22,439 [DEBUG][       Thread-600200][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:28:22,440 [DEBUG][       Thread-600200][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:28:22,440 [DEBUG][       Thread-600200][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:28:22,441 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:28:22,441 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:28:22,501 [DEBUG][       Thread-600200][   transport.py][1871] : userauth is OK
2025-07-01 09:28:22,502 [DEBUG][       Thread-600200][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:28:22,502 [DEBUG][       Thread-600200][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:28:22,502 [DEBUG][       Thread-600200][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:28:22,502 [DEBUG][       Thread-600200][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:28:22,526 [ INFO][       Thread-600200][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:28:22,527 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:28:22,527 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:28:23,521 [DEBUG][       Thread-600200][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:28:23,521 [DEBUG][       Thread-600200][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:28:23,574 [DEBUG][       Thread-600200][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:28:23,575 [DEBUG][       Thread-600200][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:28:23,584 [DEBUG][       Thread-600200][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:28:23,593 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:28: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-07-01 09:28:23,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-07-01 09:28:23,611 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:28:23,612 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:28:23,612 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:28:23,620 [DEBUG][       Thread-600200][   transport.py][1871] : EOF in transport thread
2025-07-01 09:28:25,470 [DEBUG][Thread-600202 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:28:33,623 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:28:33,623 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:28:33,623 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:28:33,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-07-01 09:28:34,115 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 28, 4), 9.61, 50.85, 0.0, 31.79, 8.83, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:28:34,115 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:28:04
2025-07-01 09:28:34,202 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:28:34,206 [DEBUG][       Thread-600203][   transport.py][1871] : starting thread (client mode): 0x81736d0
2025-07-01 09:28:34,206 [DEBUG][       Thread-600203][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:28:34,226 [DEBUG][       Thread-600203][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:28:34,226 [ INFO][       Thread-600203][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:28:34,229 [DEBUG][       Thread-600203][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:28:34,229 [DEBUG][       Thread-600203][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:28:34,229 [DEBUG][       Thread-600203][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:28:34,229 [DEBUG][       Thread-600203][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:28:34,229 [DEBUG][       Thread-600203][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:28:34,229 [DEBUG][       Thread-600203][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:28:34,229 [DEBUG][       Thread-600203][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:28:34,229 [DEBUG][       Thread-600203][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:28:34,229 [DEBUG][       Thread-600203][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:28:34,229 [DEBUG][       Thread-600203][   transport.py][1871] : client lang: <none>
2025-07-01 09:28:34,229 [DEBUG][       Thread-600203][   transport.py][1871] : server lang: <none>
2025-07-01 09:28:34,229 [DEBUG][       Thread-600203][   transport.py][1871] : kex follows: False
2025-07-01 09:28:34,229 [DEBUG][       Thread-600203][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:28:34,229 [DEBUG][       Thread-600203][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:28:34,229 [DEBUG][       Thread-600203][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:28:34,229 [DEBUG][       Thread-600203][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:28:34,229 [DEBUG][       Thread-600203][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:28:34,229 [DEBUG][       Thread-600203][   transport.py][1871] : Compression: none
2025-07-01 09:28:34,229 [DEBUG][       Thread-600203][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:28:34,238 [DEBUG][       Thread-600203][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:28:34,238 [DEBUG][       Thread-600203][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:28:34,238 [DEBUG][       Thread-600203][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:28:34,239 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:28:34,239 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:28:34,240 [DEBUG][       Thread-600203][   transport.py][1871] : userauth is OK
2025-07-01 09:28:34,264 [ INFO][       Thread-600203][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:28:34,265 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:28:34,498 [DEBUG][Thread-600205 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:28:34,892 [DEBUG][       Thread-600203][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:28:34,892 [DEBUG][       Thread-600203][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:28:34,933 [DEBUG][       Thread-600203][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:28:34,933 [DEBUG][       Thread-600203][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:28:34,936 [DEBUG][       Thread-600203][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:28:34,947 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:28:34,947 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:28:34,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:28:34,951 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:28:34,956 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:28:34,958 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:28:34,958 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:28:34,959 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:28:34,959 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.311059 -999.00   +8.70  30.31     56   +0.40 1 1 2 1 1   887    0 8.89 36.98 ----- 30.3 30.3 32.4 40.4 11.7 -23.6 10.7 -23.7 9.7 -23.0 10.7 -22.1
2025-07-01 09:28:34,959 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:28:34,959 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:28:34,959 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.311059
2025-07-01 09:28:34,959 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:28:34,960 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:28:34,960 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:28:34,960 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:28:34,960 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:28:34,960 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:28:04', tmtdew=9.61, humidity=50.85, cloud=0.0, wind=31.79, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:27:55.498', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:28:34,961 [DEBUG][       Thread-600203][   transport.py][1871] : EOF in transport thread
2025-07-01 09:28:35,043 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:28:35,055 [DEBUG][       Thread-600207][   transport.py][1871] : starting thread (client mode): 0x81068f0
2025-07-01 09:28:35,055 [DEBUG][       Thread-600207][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:28:35,071 [DEBUG][       Thread-600207][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:28:35,071 [ INFO][       Thread-600207][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:28:35,080 [DEBUG][       Thread-600207][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:28:35,080 [DEBUG][       Thread-600207][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:28:35,081 [DEBUG][       Thread-600207][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:28:35,081 [DEBUG][       Thread-600207][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:28:35,081 [DEBUG][       Thread-600207][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:28:35,081 [DEBUG][       Thread-600207][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:28:35,081 [DEBUG][       Thread-600207][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:28:35,081 [DEBUG][       Thread-600207][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:28:35,081 [DEBUG][       Thread-600207][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:28:35,081 [DEBUG][       Thread-600207][   transport.py][1871] : client lang: <none>
2025-07-01 09:28:35,081 [DEBUG][       Thread-600207][   transport.py][1871] : server lang: <none>
2025-07-01 09:28:35,081 [DEBUG][       Thread-600207][   transport.py][1871] : kex follows: False
2025-07-01 09:28:35,081 [DEBUG][       Thread-600207][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:28:35,081 [DEBUG][       Thread-600207][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:28:35,081 [DEBUG][       Thread-600207][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:28:35,081 [DEBUG][       Thread-600207][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:28:35,081 [DEBUG][       Thread-600207][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:28:35,081 [DEBUG][       Thread-600207][   transport.py][1871] : Compression: none
2025-07-01 09:28:35,081 [DEBUG][       Thread-600207][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:28:35,136 [DEBUG][       Thread-600207][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:28:35,136 [DEBUG][       Thread-600207][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:28:35,137 [DEBUG][       Thread-600207][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:28:35,137 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:28:35,137 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:28:35,198 [DEBUG][       Thread-600207][   transport.py][1871] : userauth is OK
2025-07-01 09:28:35,198 [DEBUG][       Thread-600207][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:28:35,198 [DEBUG][       Thread-600207][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:28:35,199 [DEBUG][       Thread-600207][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:28:35,199 [DEBUG][       Thread-600207][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:28:35,217 [ INFO][       Thread-600207][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:28:35,217 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:28:35,218 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:28:36,231 [DEBUG][       Thread-600207][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:28:36,231 [DEBUG][       Thread-600207][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:28:36,280 [DEBUG][       Thread-600207][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:28:36,280 [DEBUG][       Thread-600207][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:28:36,289 [DEBUG][       Thread-600207][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:28:36,298 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:28:36,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-07-01 09:28:36,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-07-01 09:28:36,316 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:28:36,316 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:28:36,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:28:36,326 [DEBUG][       Thread-600207][   transport.py][1871] : EOF in transport thread
2025-07-01 09:28:43,520 [DEBUG][Thread-600209 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:28:46,327 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:28:46,328 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:28:46,328 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:28:46,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-07-01 09:28:46,819 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 28, 36), 9.58, 50.95, 0.0, 30.8, 8.81, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:28:46,819 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:28:36
2025-07-01 09:28:46,905 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:28:46,909 [DEBUG][       Thread-600210][   transport.py][1871] : starting thread (client mode): 0x8104760
2025-07-01 09:28:46,909 [DEBUG][       Thread-600210][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:28:46,929 [DEBUG][       Thread-600210][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:28:46,929 [ INFO][       Thread-600210][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:28:46,932 [DEBUG][       Thread-600210][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:28:46,933 [DEBUG][       Thread-600210][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:28:46,933 [DEBUG][       Thread-600210][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:28:46,933 [DEBUG][       Thread-600210][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:28:46,933 [DEBUG][       Thread-600210][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:28:46,933 [DEBUG][       Thread-600210][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:28:46,933 [DEBUG][       Thread-600210][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:28:46,933 [DEBUG][       Thread-600210][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:28:46,933 [DEBUG][       Thread-600210][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:28:46,933 [DEBUG][       Thread-600210][   transport.py][1871] : client lang: <none>
2025-07-01 09:28:46,933 [DEBUG][       Thread-600210][   transport.py][1871] : server lang: <none>
2025-07-01 09:28:46,933 [DEBUG][       Thread-600210][   transport.py][1871] : kex follows: False
2025-07-01 09:28:46,933 [DEBUG][       Thread-600210][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:28:46,933 [DEBUG][       Thread-600210][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:28:46,933 [DEBUG][       Thread-600210][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:28:46,933 [DEBUG][       Thread-600210][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:28:46,933 [DEBUG][       Thread-600210][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:28:46,933 [DEBUG][       Thread-600210][   transport.py][1871] : Compression: none
2025-07-01 09:28:46,933 [DEBUG][       Thread-600210][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:28:46,952 [DEBUG][       Thread-600210][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:28:46,953 [DEBUG][       Thread-600210][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:28:46,953 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:28:46,953 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:28:46,954 [DEBUG][       Thread-600210][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:28:46,954 [DEBUG][       Thread-600210][   transport.py][1871] : userauth is OK
2025-07-01 09:28:46,967 [ INFO][       Thread-600210][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:28:46,968 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:28:47,636 [DEBUG][       Thread-600210][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:28:47,636 [DEBUG][       Thread-600210][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:28:47,681 [DEBUG][       Thread-600210][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:28:47,681 [DEBUG][       Thread-600210][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:28:47,684 [DEBUG][       Thread-600210][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:28:47,695 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:28:47,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:28:47,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:28:47,699 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:28:47,705 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:28:47,706 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:28:47,707 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:28:47,707 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:28:47,707 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.311406 -999.00   +8.80  36.51     55   +0.40 1 1 2 1 1   887    0 9.23 42.31 ----- 36.5 36.5 26.8 46.7 11.7 -23.7 10.8 -24.0 9.7 -22.8 -999.0 -999.0
2025-07-01 09:28:47,708 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:28:47,708 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:28:47,708 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.311406
2025-07-01 09:28:47,708 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:28:47,709 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:28:47,709 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:28:47,709 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:28:47,709 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:28:47,709 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:28:36', tmtdew=9.58, humidity=50.95, cloud=0.0, wind=30.8, temperature=8.81, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:28:25.478', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:28:47,709 [DEBUG][       Thread-600210][   transport.py][1871] : EOF in transport thread
2025-07-01 09:28:47,793 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:28:47,802 [DEBUG][       Thread-600213][   transport.py][1871] : starting thread (client mode): 0x81a7f10
2025-07-01 09:28:47,802 [DEBUG][       Thread-600213][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:28:47,822 [DEBUG][       Thread-600213][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:28:47,822 [ INFO][       Thread-600213][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:28:47,831 [DEBUG][       Thread-600213][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:28:47,831 [DEBUG][       Thread-600213][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:28:47,831 [DEBUG][       Thread-600213][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:28:47,831 [DEBUG][       Thread-600213][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:28:47,831 [DEBUG][       Thread-600213][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:28:47,831 [DEBUG][       Thread-600213][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:28:47,831 [DEBUG][       Thread-600213][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:28:47,831 [DEBUG][       Thread-600213][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:28:47,831 [DEBUG][       Thread-600213][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:28:47,831 [DEBUG][       Thread-600213][   transport.py][1871] : client lang: <none>
2025-07-01 09:28:47,831 [DEBUG][       Thread-600213][   transport.py][1871] : server lang: <none>
2025-07-01 09:28:47,831 [DEBUG][       Thread-600213][   transport.py][1871] : kex follows: False
2025-07-01 09:28:47,831 [DEBUG][       Thread-600213][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:28:47,831 [DEBUG][       Thread-600213][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:28:47,831 [DEBUG][       Thread-600213][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:28:47,832 [DEBUG][       Thread-600213][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:28:47,832 [DEBUG][       Thread-600213][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:28:47,832 [DEBUG][       Thread-600213][   transport.py][1871] : Compression: none
2025-07-01 09:28:47,832 [DEBUG][       Thread-600213][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:28:47,888 [DEBUG][       Thread-600213][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:28:47,889 [DEBUG][       Thread-600213][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:28:47,889 [DEBUG][       Thread-600213][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:28:47,889 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:28:47,890 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:28:47,948 [DEBUG][       Thread-600213][   transport.py][1871] : userauth is OK
2025-07-01 09:28:47,948 [DEBUG][       Thread-600213][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:28:47,948 [DEBUG][       Thread-600213][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:28:47,948 [DEBUG][       Thread-600213][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:28:47,948 [DEBUG][       Thread-600213][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:28:47,970 [ INFO][       Thread-600213][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:28:47,970 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:28:47,971 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:28:48,970 [DEBUG][       Thread-600213][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:28:48,970 [DEBUG][       Thread-600213][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:28:49,019 [DEBUG][       Thread-600213][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:28:49,019 [DEBUG][       Thread-600213][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:28:49,028 [DEBUG][       Thread-600213][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:28:49,037 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:28:49,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-07-01 09:28:49,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-07-01 09:28:49,053 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:28:49,053 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:28:49,053 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:28:49,062 [DEBUG][       Thread-600213][   transport.py][1871] : EOF in transport thread
2025-07-01 09:28:51,199 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:28:51,200 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:28:52,537 [DEBUG][Thread-600215 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:28:59,063 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:28:59,064 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:28:59,064 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:28:59,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-07-01 09:28:59,540 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 28, 36), 9.58, 50.95, 0.0, 30.8, 8.81, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:28:59,540 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:28:36
2025-07-01 09:28:59,627 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:28:59,631 [DEBUG][       Thread-600216][   transport.py][1871] : starting thread (client mode): 0x81a6e90
2025-07-01 09:28:59,631 [DEBUG][       Thread-600216][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:28:59,653 [DEBUG][       Thread-600216][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:28:59,653 [ INFO][       Thread-600216][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:28:59,657 [DEBUG][       Thread-600216][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:28:59,657 [DEBUG][       Thread-600216][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:28:59,657 [DEBUG][       Thread-600216][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:28:59,657 [DEBUG][       Thread-600216][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:28:59,657 [DEBUG][       Thread-600216][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:28:59,657 [DEBUG][       Thread-600216][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:28:59,657 [DEBUG][       Thread-600216][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:28:59,657 [DEBUG][       Thread-600216][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:28:59,657 [DEBUG][       Thread-600216][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:28:59,657 [DEBUG][       Thread-600216][   transport.py][1871] : client lang: <none>
2025-07-01 09:28:59,657 [DEBUG][       Thread-600216][   transport.py][1871] : server lang: <none>
2025-07-01 09:28:59,657 [DEBUG][       Thread-600216][   transport.py][1871] : kex follows: False
2025-07-01 09:28:59,657 [DEBUG][       Thread-600216][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:28:59,657 [DEBUG][       Thread-600216][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:28:59,657 [DEBUG][       Thread-600216][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:28:59,657 [DEBUG][       Thread-600216][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:28:59,657 [DEBUG][       Thread-600216][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:28:59,657 [DEBUG][       Thread-600216][   transport.py][1871] : Compression: none
2025-07-01 09:28:59,657 [DEBUG][       Thread-600216][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:28:59,677 [DEBUG][       Thread-600216][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:28:59,678 [DEBUG][       Thread-600216][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:28:59,678 [DEBUG][       Thread-600216][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:28:59,678 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:28:59,678 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:28:59,680 [DEBUG][       Thread-600216][   transport.py][1871] : userauth is OK
2025-07-01 09:28:59,704 [ INFO][       Thread-600216][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:28:59,705 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:29:00,382 [DEBUG][       Thread-600216][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:29:00,383 [DEBUG][       Thread-600216][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:29:00,425 [DEBUG][       Thread-600216][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:29:00,425 [DEBUG][       Thread-600216][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:29:00,428 [DEBUG][       Thread-600216][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:29:00,440 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:29:00,440 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:29:00,441 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:29:00,442 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:29:00,446 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:29:00,447 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:29:00,447 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:29:00,447 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:29:00,447 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.311406 -999.00   +8.80  36.51     55   +0.40 1 1 2 1 1   887    0 9.23 42.31 ----- 36.5 36.5 26.8 46.7 11.7 -23.7 10.8 -24.0 9.7 -22.8 -999.0 -999.0
2025-07-01 09:29:00,447 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:29:00,447 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:29:00,447 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.311406
2025-07-01 09:29:00,447 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:29:00,447 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:29:00,447 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:29:00,447 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:29:00,447 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:29:00,447 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:28:36', tmtdew=9.58, humidity=50.95, cloud=0.0, wind=30.8, temperature=8.81, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:28:25.478', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:29:00,448 [DEBUG][       Thread-600216][   transport.py][1871] : EOF in transport thread
2025-07-01 09:29:00,519 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:29:00,531 [DEBUG][       Thread-600219][   transport.py][1871] : starting thread (client mode): 0x8107e50
2025-07-01 09:29:00,531 [DEBUG][       Thread-600219][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:29:00,546 [DEBUG][       Thread-600219][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:29:00,546 [ INFO][       Thread-600219][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:29:00,554 [DEBUG][       Thread-600219][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:29:00,554 [DEBUG][       Thread-600219][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:29:00,554 [DEBUG][       Thread-600219][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:29:00,554 [DEBUG][       Thread-600219][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:29:00,554 [DEBUG][       Thread-600219][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:29:00,554 [DEBUG][       Thread-600219][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:29:00,554 [DEBUG][       Thread-600219][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:29:00,554 [DEBUG][       Thread-600219][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:29:00,554 [DEBUG][       Thread-600219][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:29:00,554 [DEBUG][       Thread-600219][   transport.py][1871] : client lang: <none>
2025-07-01 09:29:00,554 [DEBUG][       Thread-600219][   transport.py][1871] : server lang: <none>
2025-07-01 09:29:00,554 [DEBUG][       Thread-600219][   transport.py][1871] : kex follows: False
2025-07-01 09:29:00,554 [DEBUG][       Thread-600219][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:29:00,554 [DEBUG][       Thread-600219][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:29:00,554 [DEBUG][       Thread-600219][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:29:00,554 [DEBUG][       Thread-600219][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:29:00,554 [DEBUG][       Thread-600219][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:29:00,554 [DEBUG][       Thread-600219][   transport.py][1871] : Compression: none
2025-07-01 09:29:00,554 [DEBUG][       Thread-600219][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:29:00,611 [DEBUG][       Thread-600219][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:29:00,612 [DEBUG][       Thread-600219][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:29:00,612 [DEBUG][       Thread-600219][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:29:00,613 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:29:00,613 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:29:00,670 [DEBUG][       Thread-600219][   transport.py][1871] : userauth is OK
2025-07-01 09:29:00,671 [DEBUG][       Thread-600219][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:29:00,671 [DEBUG][       Thread-600219][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:29:00,671 [DEBUG][       Thread-600219][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:29:00,671 [DEBUG][       Thread-600219][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:29:00,690 [ INFO][       Thread-600219][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:29:00,690 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:29:00,690 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:29:01,572 [DEBUG][Thread-600221 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:29:01,710 [DEBUG][       Thread-600219][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:29:01,711 [DEBUG][       Thread-600219][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:29:01,760 [DEBUG][       Thread-600219][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:29:01,760 [DEBUG][       Thread-600219][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:29:01,771 [DEBUG][       Thread-600219][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:29:01,780 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:29:01,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-07-01 09:29:01,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-07-01 09:29:01,799 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:29:01,799 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:29:01,800 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:29:01,809 [DEBUG][       Thread-600219][   transport.py][1871] : EOF in transport thread
2025-07-01 09:29:10,591 [DEBUG][Thread-600222 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:29:11,810 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:29:11,810 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:29:11,810 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:29:11,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-07-01 09:29:12,291 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 29, 8), 9.61, 50.85, 0.0, 31.48, 8.83, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:29:12,291 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:29:08
2025-07-01 09:29:12,376 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:29:12,380 [DEBUG][       Thread-600223][   transport.py][1871] : starting thread (client mode): 0x81075e0
2025-07-01 09:29:12,380 [DEBUG][       Thread-600223][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:29:12,392 [DEBUG][       Thread-600223][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:29:12,392 [ INFO][       Thread-600223][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:29:12,395 [DEBUG][       Thread-600223][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:29:12,395 [DEBUG][       Thread-600223][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:29:12,395 [DEBUG][       Thread-600223][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:29:12,395 [DEBUG][       Thread-600223][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:29:12,395 [DEBUG][       Thread-600223][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:29:12,395 [DEBUG][       Thread-600223][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:29:12,395 [DEBUG][       Thread-600223][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:29:12,395 [DEBUG][       Thread-600223][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:29:12,395 [DEBUG][       Thread-600223][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:29:12,395 [DEBUG][       Thread-600223][   transport.py][1871] : client lang: <none>
2025-07-01 09:29:12,395 [DEBUG][       Thread-600223][   transport.py][1871] : server lang: <none>
2025-07-01 09:29:12,395 [DEBUG][       Thread-600223][   transport.py][1871] : kex follows: False
2025-07-01 09:29:12,395 [DEBUG][       Thread-600223][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:29:12,395 [DEBUG][       Thread-600223][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:29:12,395 [DEBUG][       Thread-600223][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:29:12,395 [DEBUG][       Thread-600223][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:29:12,395 [DEBUG][       Thread-600223][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:29:12,395 [DEBUG][       Thread-600223][   transport.py][1871] : Compression: none
2025-07-01 09:29:12,395 [DEBUG][       Thread-600223][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:29:12,403 [DEBUG][       Thread-600223][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:29:12,403 [DEBUG][       Thread-600223][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:29:12,403 [DEBUG][       Thread-600223][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:29:12,404 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:29:12,404 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:29:12,404 [DEBUG][       Thread-600223][   transport.py][1871] : userauth is OK
2025-07-01 09:29:12,417 [ INFO][       Thread-600223][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:29:12,418 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:29:13,065 [DEBUG][       Thread-600223][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:29:13,065 [DEBUG][       Thread-600223][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:29:13,109 [DEBUG][       Thread-600223][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:29:13,109 [DEBUG][       Thread-600223][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:29:13,112 [DEBUG][       Thread-600223][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:29:13,124 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:29:13,124 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:29:13,126 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:29:13,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:29:13,134 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:29:13,135 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:29:13,135 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:29:13,136 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:29:13,136 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.311753 -999.00   +8.90  37.32     55   +0.40 1 1 2 1 1   887    0 9.31 42.65 ----- 37.3 37.3 19.2 54.2 11.8 -23.8 10.8 -23.8 9.8 -22.8 10.7 -22.5
2025-07-01 09:29:13,136 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:29:13,136 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:29:13,136 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.311753
2025-07-01 09:29:13,137 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:29:13,137 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:29:13,138 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:29:13,138 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:29:13,138 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:29:13,138 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:29:08', tmtdew=9.61, humidity=50.85, cloud=0.0, wind=31.48, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:28:55.459', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:29:13,139 [DEBUG][       Thread-600223][   transport.py][1871] : EOF in transport thread
2025-07-01 09:29:13,221 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:29:13,230 [DEBUG][       Thread-600226][   transport.py][1871] : starting thread (client mode): 0x81e6cb0
2025-07-01 09:29:13,230 [DEBUG][       Thread-600226][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:29:13,246 [DEBUG][       Thread-600226][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:29:13,247 [ INFO][       Thread-600226][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:29:13,254 [DEBUG][       Thread-600226][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:29:13,255 [DEBUG][       Thread-600226][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:29:13,255 [DEBUG][       Thread-600226][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:29:13,255 [DEBUG][       Thread-600226][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:29:13,255 [DEBUG][       Thread-600226][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:29:13,255 [DEBUG][       Thread-600226][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:29:13,255 [DEBUG][       Thread-600226][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:29:13,255 [DEBUG][       Thread-600226][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:29:13,255 [DEBUG][       Thread-600226][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:29:13,255 [DEBUG][       Thread-600226][   transport.py][1871] : client lang: <none>
2025-07-01 09:29:13,255 [DEBUG][       Thread-600226][   transport.py][1871] : server lang: <none>
2025-07-01 09:29:13,255 [DEBUG][       Thread-600226][   transport.py][1871] : kex follows: False
2025-07-01 09:29:13,255 [DEBUG][       Thread-600226][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:29:13,255 [DEBUG][       Thread-600226][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:29:13,255 [DEBUG][       Thread-600226][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:29:13,255 [DEBUG][       Thread-600226][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:29:13,255 [DEBUG][       Thread-600226][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:29:13,255 [DEBUG][       Thread-600226][   transport.py][1871] : Compression: none
2025-07-01 09:29:13,255 [DEBUG][       Thread-600226][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:29:13,312 [DEBUG][       Thread-600226][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:29:13,312 [DEBUG][       Thread-600226][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:29:13,313 [DEBUG][       Thread-600226][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:29:13,313 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:29:13,314 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:29:13,373 [DEBUG][       Thread-600226][   transport.py][1871] : userauth is OK
2025-07-01 09:29:13,373 [DEBUG][       Thread-600226][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:29:13,374 [DEBUG][       Thread-600226][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:29:13,374 [DEBUG][       Thread-600226][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:29:13,374 [DEBUG][       Thread-600226][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:29:13,393 [ INFO][       Thread-600226][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:29:13,393 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:29:13,394 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:29:14,454 [DEBUG][       Thread-600226][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:29:14,454 [DEBUG][       Thread-600226][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:29:14,504 [DEBUG][       Thread-600226][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:29:14,504 [DEBUG][       Thread-600226][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:29:14,514 [DEBUG][       Thread-600226][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:29:14,527 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:29:14,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-07-01 09:29:14,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-07-01 09:29:14,551 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:29:14,551 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:29:14,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:29:14,560 [DEBUG][       Thread-600226][   transport.py][1871] : EOF in transport thread
2025-07-01 09:29:19,611 [DEBUG][Thread-600228 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:29:20,459 [DEBUG][Thread-600229 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:29:24,560 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:29:24,560 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:29:24,560 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:29:24,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-07-01 09:29:25,020 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 29, 8), 9.61, 50.85, 0.0, 31.48, 8.83, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:29:25,020 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:29:08
2025-07-01 09:29:25,106 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:29:25,113 [DEBUG][       Thread-600230][   transport.py][1871] : starting thread (client mode): 0x818c1c0
2025-07-01 09:29:25,113 [DEBUG][       Thread-600230][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:29:25,134 [DEBUG][       Thread-600230][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:29:25,134 [ INFO][       Thread-600230][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:29:25,137 [DEBUG][       Thread-600230][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:29:25,137 [DEBUG][       Thread-600230][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:29:25,137 [DEBUG][       Thread-600230][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:29:25,137 [DEBUG][       Thread-600230][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:29:25,137 [DEBUG][       Thread-600230][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:29:25,137 [DEBUG][       Thread-600230][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:29:25,138 [DEBUG][       Thread-600230][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:29:25,138 [DEBUG][       Thread-600230][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:29:25,138 [DEBUG][       Thread-600230][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:29:25,138 [DEBUG][       Thread-600230][   transport.py][1871] : client lang: <none>
2025-07-01 09:29:25,138 [DEBUG][       Thread-600230][   transport.py][1871] : server lang: <none>
2025-07-01 09:29:25,138 [DEBUG][       Thread-600230][   transport.py][1871] : kex follows: False
2025-07-01 09:29:25,138 [DEBUG][       Thread-600230][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:29:25,138 [DEBUG][       Thread-600230][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:29:25,138 [DEBUG][       Thread-600230][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:29:25,138 [DEBUG][       Thread-600230][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:29:25,138 [DEBUG][       Thread-600230][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:29:25,138 [DEBUG][       Thread-600230][   transport.py][1871] : Compression: none
2025-07-01 09:29:25,138 [DEBUG][       Thread-600230][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:29:25,150 [DEBUG][       Thread-600230][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:29:25,150 [DEBUG][       Thread-600230][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:29:25,151 [DEBUG][       Thread-600230][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:29:25,151 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:29:25,151 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:29:25,152 [DEBUG][       Thread-600230][   transport.py][1871] : userauth is OK
2025-07-01 09:29:25,176 [ INFO][       Thread-600230][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:29:25,177 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:29:25,821 [DEBUG][       Thread-600230][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:29:25,821 [DEBUG][       Thread-600230][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:29:25,869 [DEBUG][       Thread-600230][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:29:25,869 [DEBUG][       Thread-600230][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:29:25,872 [DEBUG][       Thread-600230][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:29:25,885 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:29:25,885 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:29:25,887 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:29:25,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:29:25,893 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:29:25,895 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:29:25,895 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:29:25,896 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:29:25,896 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.311753 -999.00   +8.90  37.32     55   +0.40 1 1 2 1 1   887    0 9.31 42.65 ----- 37.3 37.3 19.2 54.2 11.8 -23.8 10.8 -23.8 9.8 -22.8 10.7 -22.5
2025-07-01 09:29:25,896 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:29:25,896 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:29:25,896 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.311753
2025-07-01 09:29:25,897 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:29:25,897 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:29:25,897 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:29:25,897 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:29:25,897 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:29:25,898 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:29:08', tmtdew=9.61, humidity=50.85, cloud=0.0, wind=31.48, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:28:55.459', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:29:25,898 [DEBUG][       Thread-600230][   transport.py][1871] : EOF in transport thread
2025-07-01 09:29:25,981 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:29:28,643 [DEBUG][Thread-600233 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:29:37,663 [DEBUG][Thread-600234 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:29:46,683 [DEBUG][Thread-600235 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:29:51,339 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:29:51,340 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:29:55,705 [DEBUG][Thread-600236 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:30:04,725 [DEBUG][Thread-600237 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:30:13,742 [DEBUG][Thread-600238 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:30:20,512 [DEBUG][Thread-600239 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:30:22,763 [DEBUG][Thread-600240 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:30:31,791 [DEBUG][Thread-600241 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:30:40,813 [DEBUG][Thread-600242 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:30:49,833 [DEBUG][Thread-600243 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:30:51,478 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:30:51,479 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:30:58,858 [DEBUG][Thread-600244 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:31:07,881 [DEBUG][Thread-600245 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:31:16,903 [DEBUG][Thread-600246 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:31:20,558 [DEBUG][Thread-600247 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:31:25,922 [DEBUG][Thread-600248 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:31:34,942 [DEBUG][Thread-600249 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:31:35,316 [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-07-01 09:31:43,965 [DEBUG][Thread-600250 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:31:45,327 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:31:45,327 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:31:45,327 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:31:45,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-07-01 09:31:45,824 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 31, 16), 9.63, 50.88, 0.0, 38.34, 8.85, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:31:45,824 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:31:16
2025-07-01 09:31:45,911 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:31:45,915 [DEBUG][       Thread-600251][   transport.py][1871] : starting thread (client mode): 0x818c8b0
2025-07-01 09:31:45,915 [DEBUG][       Thread-600251][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:31:45,935 [DEBUG][       Thread-600251][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:31:45,935 [ INFO][       Thread-600251][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:31:45,938 [DEBUG][       Thread-600251][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:31:45,938 [DEBUG][       Thread-600251][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:31:45,938 [DEBUG][       Thread-600251][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:31:45,938 [DEBUG][       Thread-600251][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:31:45,938 [DEBUG][       Thread-600251][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:31:45,938 [DEBUG][       Thread-600251][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:31:45,938 [DEBUG][       Thread-600251][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:31:45,938 [DEBUG][       Thread-600251][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:31:45,938 [DEBUG][       Thread-600251][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:31:45,938 [DEBUG][       Thread-600251][   transport.py][1871] : client lang: <none>
2025-07-01 09:31:45,939 [DEBUG][       Thread-600251][   transport.py][1871] : server lang: <none>
2025-07-01 09:31:45,939 [DEBUG][       Thread-600251][   transport.py][1871] : kex follows: False
2025-07-01 09:31:45,939 [DEBUG][       Thread-600251][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:31:45,939 [DEBUG][       Thread-600251][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:31:45,939 [DEBUG][       Thread-600251][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:31:45,939 [DEBUG][       Thread-600251][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:31:45,939 [DEBUG][       Thread-600251][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:31:45,939 [DEBUG][       Thread-600251][   transport.py][1871] : Compression: none
2025-07-01 09:31:45,939 [DEBUG][       Thread-600251][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:31:45,955 [DEBUG][       Thread-600251][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:31:45,956 [DEBUG][       Thread-600251][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:31:45,956 [DEBUG][       Thread-600251][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:31:45,956 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:31:45,957 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:31:45,958 [DEBUG][       Thread-600251][   transport.py][1871] : userauth is OK
2025-07-01 09:31:45,984 [ INFO][       Thread-600251][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:31:45,984 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:31:46,650 [DEBUG][       Thread-600251][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:31:46,650 [DEBUG][       Thread-600251][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:31:46,693 [DEBUG][       Thread-600251][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:31:46,693 [DEBUG][       Thread-600251][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:31:46,696 [DEBUG][       Thread-600251][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:31:46,707 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:31:46,707 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:31:46,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:31:46,710 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:31:46,715 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:31:46,716 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:31:46,716 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:31:46,717 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:31:46,717 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.313142 -999.00   +8.80  44.01     55   +0.40 1 1 2 1 1   887    0 9.40 41.82 ----- 44.0 44.0 21.6 50.4 11.8 -24.0 10.8 -24.3 9.9 -23.1 10.8 -23.3
2025-07-01 09:31:46,717 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:31:46,717 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:31:46,717 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.313142
2025-07-01 09:31:46,718 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:31:46,718 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:31:46,718 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:31:46,719 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:31:46,719 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:31:46,719 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:31:16', tmtdew=9.63, humidity=50.88, cloud=0.0, wind=38.34, temperature=8.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:30:55.469', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:31:46,720 [DEBUG][       Thread-600251][   transport.py][1871] : EOF in transport thread
2025-07-01 09:31:46,802 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:31:46,816 [DEBUG][       Thread-600254][   transport.py][1871] : starting thread (client mode): 0x81e7ca0
2025-07-01 09:31:46,816 [DEBUG][       Thread-600254][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:31:46,832 [DEBUG][       Thread-600254][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:31:46,833 [ INFO][       Thread-600254][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:31:46,840 [DEBUG][       Thread-600254][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:31:46,841 [DEBUG][       Thread-600254][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:31:46,841 [DEBUG][       Thread-600254][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:31:46,841 [DEBUG][       Thread-600254][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:31:46,841 [DEBUG][       Thread-600254][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:31:46,841 [DEBUG][       Thread-600254][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:31:46,841 [DEBUG][       Thread-600254][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:31:46,841 [DEBUG][       Thread-600254][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:31:46,841 [DEBUG][       Thread-600254][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:31:46,841 [DEBUG][       Thread-600254][   transport.py][1871] : client lang: <none>
2025-07-01 09:31:46,841 [DEBUG][       Thread-600254][   transport.py][1871] : server lang: <none>
2025-07-01 09:31:46,841 [DEBUG][       Thread-600254][   transport.py][1871] : kex follows: False
2025-07-01 09:31:46,841 [DEBUG][       Thread-600254][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:31:46,841 [DEBUG][       Thread-600254][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:31:46,841 [DEBUG][       Thread-600254][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:31:46,841 [DEBUG][       Thread-600254][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:31:46,841 [DEBUG][       Thread-600254][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:31:46,842 [DEBUG][       Thread-600254][   transport.py][1871] : Compression: none
2025-07-01 09:31:46,842 [DEBUG][       Thread-600254][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:31:46,908 [DEBUG][       Thread-600254][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:31:46,909 [DEBUG][       Thread-600254][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:31:46,910 [DEBUG][       Thread-600254][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:31:46,910 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:31:46,910 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:31:46,965 [DEBUG][       Thread-600254][   transport.py][1871] : userauth is OK
2025-07-01 09:31:46,965 [DEBUG][       Thread-600254][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:31:46,965 [DEBUG][       Thread-600254][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:31:46,965 [DEBUG][       Thread-600254][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:31:46,965 [DEBUG][       Thread-600254][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:31:46,984 [ INFO][       Thread-600254][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:31:46,984 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:31:46,984 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:31:48,035 [DEBUG][       Thread-600254][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:31:48,035 [DEBUG][       Thread-600254][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:31:48,084 [DEBUG][       Thread-600254][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:31:48,084 [DEBUG][       Thread-600254][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:31:48,096 [DEBUG][       Thread-600254][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:31:48,106 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:31:48,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')
2025-07-01 09:31:48,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-07-01 09:31:48,126 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:31:48,126 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:31:48,126 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:31:48,134 [DEBUG][       Thread-600254][   transport.py][1871] : EOF in transport thread
2025-07-01 09:31:51,616 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:31:51,617 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:31:52,985 [DEBUG][Thread-600256 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:31:58,137 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:31:58,137 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:31:58,146 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:31:58,149 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:31:58,637 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 31, 48), 9.62, 50.94, 0.0, 33.96, 8.86, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:31:58,637 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:31:48
2025-07-01 09:31:58,723 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:31:58,727 [DEBUG][       Thread-600257][   transport.py][1871] : starting thread (client mode): 0x81e51b0
2025-07-01 09:31:58,727 [DEBUG][       Thread-600257][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:31:58,747 [DEBUG][       Thread-600257][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:31:58,747 [ INFO][       Thread-600257][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:31:58,750 [DEBUG][       Thread-600257][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:31:58,750 [DEBUG][       Thread-600257][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:31:58,750 [DEBUG][       Thread-600257][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:31:58,750 [DEBUG][       Thread-600257][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:31:58,750 [DEBUG][       Thread-600257][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:31:58,750 [DEBUG][       Thread-600257][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:31:58,750 [DEBUG][       Thread-600257][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:31:58,750 [DEBUG][       Thread-600257][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:31:58,750 [DEBUG][       Thread-600257][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:31:58,750 [DEBUG][       Thread-600257][   transport.py][1871] : client lang: <none>
2025-07-01 09:31:58,750 [DEBUG][       Thread-600257][   transport.py][1871] : server lang: <none>
2025-07-01 09:31:58,750 [DEBUG][       Thread-600257][   transport.py][1871] : kex follows: False
2025-07-01 09:31:58,750 [DEBUG][       Thread-600257][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:31:58,750 [DEBUG][       Thread-600257][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:31:58,750 [DEBUG][       Thread-600257][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:31:58,750 [DEBUG][       Thread-600257][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:31:58,750 [DEBUG][       Thread-600257][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:31:58,750 [DEBUG][       Thread-600257][   transport.py][1871] : Compression: none
2025-07-01 09:31:58,750 [DEBUG][       Thread-600257][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:31:58,758 [DEBUG][       Thread-600257][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:31:58,759 [DEBUG][       Thread-600257][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:31:58,759 [DEBUG][       Thread-600257][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:31:58,759 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:31:58,759 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:31:58,760 [DEBUG][       Thread-600257][   transport.py][1871] : userauth is OK
2025-07-01 09:31:58,773 [ INFO][       Thread-600257][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:31:58,774 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:31:59,360 [DEBUG][       Thread-600257][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:31:59,360 [DEBUG][       Thread-600257][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:31:59,401 [DEBUG][       Thread-600257][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:31:59,401 [DEBUG][       Thread-600257][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:31:59,403 [DEBUG][       Thread-600257][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:31:59,415 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:31:59,416 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:31:59,418 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:31:59,419 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:31:59,424 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:31:59,425 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:31:59,425 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:31:59,426 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:31:59,426 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.313142 -999.00   +8.80  44.01     55   +0.40 1 1 2 1 1   887    0 9.40 41.82 ----- 44.0 44.0 21.6 50.4 11.8 -24.0 10.8 -24.3 9.9 -23.1 10.8 -23.3
2025-07-01 09:31:59,426 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:31:59,426 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:31:59,426 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.313142
2025-07-01 09:31:59,427 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:31:59,427 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:31:59,427 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:31:59,428 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:31:59,428 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:31:59,428 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:31:48', tmtdew=9.62, humidity=50.94, cloud=0.0, wind=33.96, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:30:55.469', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:31:59,428 [DEBUG][       Thread-600257][   transport.py][1871] : EOF in transport thread
2025-07-01 09:31:59,511 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:31:59,521 [DEBUG][       Thread-600260][   transport.py][1871] : starting thread (client mode): 0x81047c0
2025-07-01 09:31:59,521 [DEBUG][       Thread-600260][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:31:59,536 [DEBUG][       Thread-600260][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:31:59,536 [ INFO][       Thread-600260][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:31:59,543 [DEBUG][       Thread-600260][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:31:59,543 [DEBUG][       Thread-600260][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:31:59,543 [DEBUG][       Thread-600260][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:31:59,544 [DEBUG][       Thread-600260][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:31:59,544 [DEBUG][       Thread-600260][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:31:59,544 [DEBUG][       Thread-600260][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:31:59,544 [DEBUG][       Thread-600260][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:31:59,544 [DEBUG][       Thread-600260][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:31:59,544 [DEBUG][       Thread-600260][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:31:59,544 [DEBUG][       Thread-600260][   transport.py][1871] : client lang: <none>
2025-07-01 09:31:59,544 [DEBUG][       Thread-600260][   transport.py][1871] : server lang: <none>
2025-07-01 09:31:59,544 [DEBUG][       Thread-600260][   transport.py][1871] : kex follows: False
2025-07-01 09:31:59,544 [DEBUG][       Thread-600260][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:31:59,544 [DEBUG][       Thread-600260][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:31:59,544 [DEBUG][       Thread-600260][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:31:59,544 [DEBUG][       Thread-600260][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:31:59,544 [DEBUG][       Thread-600260][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:31:59,544 [DEBUG][       Thread-600260][   transport.py][1871] : Compression: none
2025-07-01 09:31:59,544 [DEBUG][       Thread-600260][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:31:59,601 [DEBUG][       Thread-600260][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:31:59,602 [DEBUG][       Thread-600260][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:31:59,602 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:31:59,603 [DEBUG][       Thread-600260][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:31:59,603 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:31:59,660 [DEBUG][       Thread-600260][   transport.py][1871] : userauth is OK
2025-07-01 09:31:59,661 [DEBUG][       Thread-600260][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:31:59,661 [DEBUG][       Thread-600260][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:31:59,661 [DEBUG][       Thread-600260][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:31:59,661 [DEBUG][       Thread-600260][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:31:59,681 [ INFO][       Thread-600260][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:31:59,682 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:31:59,682 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:32:00,650 [DEBUG][       Thread-600260][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:32:00,650 [DEBUG][       Thread-600260][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:32:00,701 [DEBUG][       Thread-600260][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:32:00,701 [DEBUG][       Thread-600260][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:32:00,710 [DEBUG][       Thread-600260][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:32:00,719 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:32:00,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-07-01 09:32:00,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-07-01 09:32:00,737 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:32:00,737 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:32:00,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:32:00,746 [DEBUG][       Thread-600260][   transport.py][1871] : EOF in transport thread
2025-07-01 09:32:02,014 [DEBUG][Thread-600262 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:32:10,744 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:32:10,744 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:32:10,744 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:32:10,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-07-01 09:32:11,038 [DEBUG][Thread-600263 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:32:11,222 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 31, 48), 9.62, 50.94, 0.0, 33.96, 8.86, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:32:11,222 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:31:48
2025-07-01 09:32:11,307 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:32:11,311 [DEBUG][       Thread-600264][   transport.py][1871] : starting thread (client mode): 0x81e5600
2025-07-01 09:32:11,311 [DEBUG][       Thread-600264][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:32:11,331 [DEBUG][       Thread-600264][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:32:11,331 [ INFO][       Thread-600264][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:32:11,334 [DEBUG][       Thread-600264][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:32:11,334 [DEBUG][       Thread-600264][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:32:11,335 [DEBUG][       Thread-600264][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:32:11,335 [DEBUG][       Thread-600264][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:32:11,335 [DEBUG][       Thread-600264][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:32:11,335 [DEBUG][       Thread-600264][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:32:11,335 [DEBUG][       Thread-600264][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:32:11,335 [DEBUG][       Thread-600264][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:32:11,335 [DEBUG][       Thread-600264][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:32:11,335 [DEBUG][       Thread-600264][   transport.py][1871] : client lang: <none>
2025-07-01 09:32:11,335 [DEBUG][       Thread-600264][   transport.py][1871] : server lang: <none>
2025-07-01 09:32:11,335 [DEBUG][       Thread-600264][   transport.py][1871] : kex follows: False
2025-07-01 09:32:11,335 [DEBUG][       Thread-600264][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:32:11,335 [DEBUG][       Thread-600264][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:32:11,335 [DEBUG][       Thread-600264][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:32:11,335 [DEBUG][       Thread-600264][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:32:11,335 [DEBUG][       Thread-600264][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:32:11,335 [DEBUG][       Thread-600264][   transport.py][1871] : Compression: none
2025-07-01 09:32:11,335 [DEBUG][       Thread-600264][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:32:11,353 [DEBUG][       Thread-600264][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:32:11,354 [DEBUG][       Thread-600264][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:32:11,354 [DEBUG][       Thread-600264][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:32:11,355 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:32:11,355 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:32:11,396 [DEBUG][       Thread-600264][   transport.py][1871] : userauth is OK
2025-07-01 09:32:11,421 [ INFO][       Thread-600264][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:32:11,421 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:32:12,037 [DEBUG][       Thread-600264][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:32:12,038 [DEBUG][       Thread-600264][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:32:12,081 [DEBUG][       Thread-600264][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:32:12,081 [DEBUG][       Thread-600264][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:32:12,084 [DEBUG][       Thread-600264][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:32:12,097 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:32:12,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:32:12,100 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:32:12,101 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:32:12,107 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:32:12,109 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:32:12,109 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:32:12,110 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:32:12,110 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.313837 -999.00   +8.80  38.95     56   +0.60 1 1 2 1 1   887    0 9.13 38.10 ----- 39.0 39.0 31.0 45.5 11.8 -24.3 10.8 -24.3 9.9 -22.8 10.8 -22.9
2025-07-01 09:32:12,110 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:32:12,110 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:32:12,110 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.313837
2025-07-01 09:32:12,111 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:32:12,111 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:32:12,111 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:32:12,111 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:32:12,111 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:32:12,112 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:31:48', tmtdew=9.62, humidity=50.94, cloud=0.0, wind=33.96, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:31:55.517', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:32:12,113 [DEBUG][       Thread-600264][   transport.py][1871] : EOF in transport thread
2025-07-01 09:32:12,195 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:32:12,213 [DEBUG][       Thread-600267][   transport.py][1871] : starting thread (client mode): 0x83c8460
2025-07-01 09:32:12,213 [DEBUG][       Thread-600267][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:32:12,242 [DEBUG][       Thread-600267][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:32:12,242 [ INFO][       Thread-600267][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:32:12,257 [DEBUG][       Thread-600267][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:32:12,258 [DEBUG][       Thread-600267][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:32:12,258 [DEBUG][       Thread-600267][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:32:12,258 [DEBUG][       Thread-600267][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:32:12,258 [DEBUG][       Thread-600267][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:32:12,258 [DEBUG][       Thread-600267][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:32:12,258 [DEBUG][       Thread-600267][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:32:12,258 [DEBUG][       Thread-600267][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:32:12,258 [DEBUG][       Thread-600267][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:32:12,258 [DEBUG][       Thread-600267][   transport.py][1871] : client lang: <none>
2025-07-01 09:32:12,258 [DEBUG][       Thread-600267][   transport.py][1871] : server lang: <none>
2025-07-01 09:32:12,258 [DEBUG][       Thread-600267][   transport.py][1871] : kex follows: False
2025-07-01 09:32:12,258 [DEBUG][       Thread-600267][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:32:12,258 [DEBUG][       Thread-600267][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:32:12,258 [DEBUG][       Thread-600267][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:32:12,259 [DEBUG][       Thread-600267][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:32:12,259 [DEBUG][       Thread-600267][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:32:12,259 [DEBUG][       Thread-600267][   transport.py][1871] : Compression: none
2025-07-01 09:32:12,259 [DEBUG][       Thread-600267][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:32:12,325 [DEBUG][       Thread-600267][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:32:12,325 [DEBUG][       Thread-600267][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:32:12,326 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:32:12,326 [DEBUG][       Thread-600267][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:32:12,327 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:32:12,397 [DEBUG][       Thread-600267][   transport.py][1871] : userauth is OK
2025-07-01 09:32:12,397 [DEBUG][       Thread-600267][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:32:12,397 [DEBUG][       Thread-600267][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:32:12,397 [DEBUG][       Thread-600267][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:32:12,397 [DEBUG][       Thread-600267][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:32:12,424 [ INFO][       Thread-600267][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:32:12,424 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:32:12,424 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:32:13,432 [DEBUG][       Thread-600267][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:32:13,432 [DEBUG][       Thread-600267][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:32:13,483 [DEBUG][       Thread-600267][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:32:13,483 [DEBUG][       Thread-600267][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:32:13,492 [DEBUG][       Thread-600267][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:32:13,500 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:32:13,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-07-01 09:32:13,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-07-01 09:32:13,516 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:32:13,516 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:32:13,516 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:32:13,524 [DEBUG][       Thread-600267][   transport.py][1871] : EOF in transport thread
2025-07-01 09:32:20,059 [DEBUG][Thread-600269 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:32:20,607 [DEBUG][Thread-600270 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:32:23,526 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:32:23,526 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:32:23,527 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:32:23,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-07-01 09:32:24,010 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 32, 20), 9.54, 51.3, 0.0, 31.69, 8.81, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:32:24,010 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:32:20
2025-07-01 09:32:24,096 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:32:24,103 [DEBUG][       Thread-600271][   transport.py][1871] : starting thread (client mode): 0x81e7b20
2025-07-01 09:32:24,103 [DEBUG][       Thread-600271][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:32:24,123 [DEBUG][       Thread-600271][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:32:24,123 [ INFO][       Thread-600271][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:32:24,126 [DEBUG][       Thread-600271][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:32:24,126 [DEBUG][       Thread-600271][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:32:24,126 [DEBUG][       Thread-600271][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:32:24,126 [DEBUG][       Thread-600271][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:32:24,127 [DEBUG][       Thread-600271][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:32:24,127 [DEBUG][       Thread-600271][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:32:24,127 [DEBUG][       Thread-600271][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:32:24,127 [DEBUG][       Thread-600271][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:32:24,127 [DEBUG][       Thread-600271][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:32:24,127 [DEBUG][       Thread-600271][   transport.py][1871] : client lang: <none>
2025-07-01 09:32:24,127 [DEBUG][       Thread-600271][   transport.py][1871] : server lang: <none>
2025-07-01 09:32:24,127 [DEBUG][       Thread-600271][   transport.py][1871] : kex follows: False
2025-07-01 09:32:24,127 [DEBUG][       Thread-600271][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:32:24,127 [DEBUG][       Thread-600271][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:32:24,127 [DEBUG][       Thread-600271][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:32:24,127 [DEBUG][       Thread-600271][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:32:24,127 [DEBUG][       Thread-600271][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:32:24,127 [DEBUG][       Thread-600271][   transport.py][1871] : Compression: none
2025-07-01 09:32:24,127 [DEBUG][       Thread-600271][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:32:24,145 [DEBUG][       Thread-600271][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:32:24,146 [DEBUG][       Thread-600271][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:32:24,146 [DEBUG][       Thread-600271][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:32:24,147 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:32:24,147 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:32:24,189 [DEBUG][       Thread-600271][   transport.py][1871] : userauth is OK
2025-07-01 09:32:24,214 [ INFO][       Thread-600271][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:32:24,214 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:32:24,799 [DEBUG][       Thread-600271][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:32:24,800 [DEBUG][       Thread-600271][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:32:24,841 [DEBUG][       Thread-600271][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:32:24,841 [DEBUG][       Thread-600271][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:32:24,845 [DEBUG][       Thread-600271][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:32:24,858 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:32:24,859 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:32:24,860 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:32:24,862 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:32:24,868 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:32:24,870 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:32:24,871 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:32:24,871 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:32:24,871 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.313837 -999.00   +8.80  38.95     56   +0.60 1 1 2 1 1   887    0 9.13 38.10 ----- 39.0 39.0 31.0 45.5 11.8 -24.3 10.8 -24.3 9.9 -22.8 10.8 -22.9
2025-07-01 09:32:24,871 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:32:24,872 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:32:24,872 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.313837
2025-07-01 09:32:24,872 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:32:24,873 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:32:24,873 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:32:24,873 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:32:24,873 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:32:24,873 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:32:20', tmtdew=9.54, humidity=51.3, cloud=0.0, wind=31.69, temperature=8.81, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:31:55.517', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:32:24,874 [DEBUG][       Thread-600271][   transport.py][1871] : EOF in transport thread
2025-07-01 09:32:24,956 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:32:24,969 [DEBUG][       Thread-600274][   transport.py][1871] : starting thread (client mode): 0x8106b60
2025-07-01 09:32:24,969 [DEBUG][       Thread-600274][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:32:24,986 [DEBUG][       Thread-600274][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:32:24,987 [ INFO][       Thread-600274][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:32:24,994 [DEBUG][       Thread-600274][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:32:24,995 [DEBUG][       Thread-600274][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:32:24,995 [DEBUG][       Thread-600274][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:32:24,995 [DEBUG][       Thread-600274][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:32:24,995 [DEBUG][       Thread-600274][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:32:24,995 [DEBUG][       Thread-600274][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:32:24,995 [DEBUG][       Thread-600274][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:32:24,995 [DEBUG][       Thread-600274][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:32:24,995 [DEBUG][       Thread-600274][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:32:24,995 [DEBUG][       Thread-600274][   transport.py][1871] : client lang: <none>
2025-07-01 09:32:24,995 [DEBUG][       Thread-600274][   transport.py][1871] : server lang: <none>
2025-07-01 09:32:24,995 [DEBUG][       Thread-600274][   transport.py][1871] : kex follows: False
2025-07-01 09:32:24,995 [DEBUG][       Thread-600274][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:32:24,995 [DEBUG][       Thread-600274][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:32:24,995 [DEBUG][       Thread-600274][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:32:24,995 [DEBUG][       Thread-600274][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:32:24,996 [DEBUG][       Thread-600274][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:32:24,996 [DEBUG][       Thread-600274][   transport.py][1871] : Compression: none
2025-07-01 09:32:24,996 [DEBUG][       Thread-600274][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:32:25,053 [DEBUG][       Thread-600274][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:32:25,053 [DEBUG][       Thread-600274][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:32:25,054 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:32:25,055 [DEBUG][       Thread-600274][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:32:25,055 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:32:25,110 [DEBUG][       Thread-600274][   transport.py][1871] : userauth is OK
2025-07-01 09:32:25,110 [DEBUG][       Thread-600274][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:32:25,110 [DEBUG][       Thread-600274][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:32:25,110 [DEBUG][       Thread-600274][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:32:25,110 [DEBUG][       Thread-600274][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:32:25,129 [ INFO][       Thread-600274][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:32:25,130 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:32:25,130 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:32:26,377 [DEBUG][       Thread-600274][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:32:26,378 [DEBUG][       Thread-600274][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:32:26,378 [DEBUG][       Thread-600274][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:32:26,378 [DEBUG][       Thread-600274][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:32:26,388 [DEBUG][       Thread-600274][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:32:26,397 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:32:26,397 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 09:32:26,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-07-01 09:32:26,418 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:32:26,418 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:32:26,419 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:32:26,427 [DEBUG][       Thread-600274][   transport.py][1871] : EOF in transport thread
2025-07-01 09:32:29,080 [DEBUG][Thread-600276 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:32:36,429 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:32:36,429 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:32:36,429 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:32:36,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-07-01 09:32:36,896 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 32, 20), 9.54, 51.3, 0.0, 31.69, 8.81, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:32:36,896 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:32:20
2025-07-01 09:32:36,982 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:32:36,987 [DEBUG][       Thread-600277][   transport.py][1871] : starting thread (client mode): 0x81e7670
2025-07-01 09:32:36,987 [DEBUG][       Thread-600277][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:32:37,006 [DEBUG][       Thread-600277][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:32:37,006 [ INFO][       Thread-600277][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:32:37,008 [DEBUG][       Thread-600277][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:32:37,008 [DEBUG][       Thread-600277][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:32:37,008 [DEBUG][       Thread-600277][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:32:37,008 [DEBUG][       Thread-600277][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:32:37,008 [DEBUG][       Thread-600277][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:32:37,008 [DEBUG][       Thread-600277][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:32:37,008 [DEBUG][       Thread-600277][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:32:37,008 [DEBUG][       Thread-600277][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:32:37,008 [DEBUG][       Thread-600277][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:32:37,008 [DEBUG][       Thread-600277][   transport.py][1871] : client lang: <none>
2025-07-01 09:32:37,008 [DEBUG][       Thread-600277][   transport.py][1871] : server lang: <none>
2025-07-01 09:32:37,008 [DEBUG][       Thread-600277][   transport.py][1871] : kex follows: False
2025-07-01 09:32:37,008 [DEBUG][       Thread-600277][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:32:37,008 [DEBUG][       Thread-600277][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:32:37,008 [DEBUG][       Thread-600277][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:32:37,008 [DEBUG][       Thread-600277][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:32:37,008 [DEBUG][       Thread-600277][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:32:37,008 [DEBUG][       Thread-600277][   transport.py][1871] : Compression: none
2025-07-01 09:32:37,008 [DEBUG][       Thread-600277][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:32:37,020 [DEBUG][       Thread-600277][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:32:37,020 [DEBUG][       Thread-600277][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:32:37,020 [DEBUG][       Thread-600277][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:32:37,021 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:32:37,021 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:32:37,022 [DEBUG][       Thread-600277][   transport.py][1871] : userauth is OK
2025-07-01 09:32:37,034 [ INFO][       Thread-600277][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:32:37,035 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:32:37,660 [DEBUG][       Thread-600277][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:32:37,660 [DEBUG][       Thread-600277][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:32:37,701 [DEBUG][       Thread-600277][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:32:37,701 [DEBUG][       Thread-600277][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:32:37,703 [DEBUG][       Thread-600277][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:32:37,712 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:32:37,712 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:32:37,714 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:32:37,715 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:32:37,720 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:32:37,722 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:32:37,722 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:32:37,723 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:32:37,723 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.314184 -999.00   +9.00  42.34     55   +0.60 1 1 2 1 1   887    0 9.11 36.30 ----- 42.3 42.3 42.0 54.9 11.8 -23.7 10.8 -23.7 9.9 -22.6 10.8 -22.0
2025-07-01 09:32:37,723 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:32:37,723 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:32:37,723 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.314184
2025-07-01 09:32:37,724 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:32:37,724 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:32:37,724 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:32:37,724 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:32:37,724 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:32:37,724 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:32:20', tmtdew=9.54, humidity=51.3, cloud=0.0, wind=31.69, temperature=8.81, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:32:25.498', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:32:37,725 [DEBUG][       Thread-600277][   transport.py][1871] : EOF in transport thread
2025-07-01 09:32:37,808 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:32:37,817 [DEBUG][       Thread-600280][   transport.py][1871] : starting thread (client mode): 0x81e5780
2025-07-01 09:32:37,817 [DEBUG][       Thread-600280][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:32:37,833 [DEBUG][       Thread-600280][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:32:37,833 [ INFO][       Thread-600280][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:32:37,841 [DEBUG][       Thread-600280][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:32:37,841 [DEBUG][       Thread-600280][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:32:37,841 [DEBUG][       Thread-600280][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:32:37,841 [DEBUG][       Thread-600280][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:32:37,841 [DEBUG][       Thread-600280][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:32:37,841 [DEBUG][       Thread-600280][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:32:37,841 [DEBUG][       Thread-600280][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:32:37,841 [DEBUG][       Thread-600280][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:32:37,841 [DEBUG][       Thread-600280][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:32:37,841 [DEBUG][       Thread-600280][   transport.py][1871] : client lang: <none>
2025-07-01 09:32:37,841 [DEBUG][       Thread-600280][   transport.py][1871] : server lang: <none>
2025-07-01 09:32:37,841 [DEBUG][       Thread-600280][   transport.py][1871] : kex follows: False
2025-07-01 09:32:37,841 [DEBUG][       Thread-600280][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:32:37,841 [DEBUG][       Thread-600280][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:32:37,841 [DEBUG][       Thread-600280][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:32:37,841 [DEBUG][       Thread-600280][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:32:37,841 [DEBUG][       Thread-600280][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:32:37,841 [DEBUG][       Thread-600280][   transport.py][1871] : Compression: none
2025-07-01 09:32:37,841 [DEBUG][       Thread-600280][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:32:37,903 [DEBUG][       Thread-600280][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:32:37,904 [DEBUG][       Thread-600280][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:32:37,905 [DEBUG][       Thread-600280][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:32:37,905 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:32:37,905 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:32:37,960 [DEBUG][       Thread-600280][   transport.py][1871] : userauth is OK
2025-07-01 09:32:37,961 [DEBUG][       Thread-600280][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:32:37,961 [DEBUG][       Thread-600280][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:32:37,961 [DEBUG][       Thread-600280][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:32:37,961 [DEBUG][       Thread-600280][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:32:37,985 [ INFO][       Thread-600280][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:32:37,985 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:32:37,986 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:32:38,105 [DEBUG][Thread-600282 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:32:38,987 [DEBUG][       Thread-600280][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:32:38,988 [DEBUG][       Thread-600280][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:32:39,036 [DEBUG][       Thread-600280][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:32:39,037 [DEBUG][       Thread-600280][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:32:39,051 [DEBUG][       Thread-600280][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:32:39,060 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:32:39,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-07-01 09:32:39,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-07-01 09:32:39,086 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:32:39,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:32:39,087 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:32:39,097 [DEBUG][       Thread-600280][   transport.py][1871] : EOF in transport thread
2025-07-01 09:32:47,125 [DEBUG][Thread-600283 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:32:49,097 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:32:49,098 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:32:49,098 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:32:49,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-07-01 09:32:49,546 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 32, 20), 9.54, 51.3, 0.0, 31.69, 8.81, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:32:49,546 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:32:20
2025-07-01 09:32:49,630 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:32:49,634 [DEBUG][       Thread-600284][   transport.py][1871] : starting thread (client mode): 0x81e7100
2025-07-01 09:32:49,635 [DEBUG][       Thread-600284][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:32:49,655 [DEBUG][       Thread-600284][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:32:49,655 [ INFO][       Thread-600284][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:32:49,658 [DEBUG][       Thread-600284][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:32:49,658 [DEBUG][       Thread-600284][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:32:49,658 [DEBUG][       Thread-600284][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:32:49,658 [DEBUG][       Thread-600284][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:32:49,658 [DEBUG][       Thread-600284][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:32:49,658 [DEBUG][       Thread-600284][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:32:49,658 [DEBUG][       Thread-600284][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:32:49,658 [DEBUG][       Thread-600284][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:32:49,658 [DEBUG][       Thread-600284][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:32:49,658 [DEBUG][       Thread-600284][   transport.py][1871] : client lang: <none>
2025-07-01 09:32:49,658 [DEBUG][       Thread-600284][   transport.py][1871] : server lang: <none>
2025-07-01 09:32:49,658 [DEBUG][       Thread-600284][   transport.py][1871] : kex follows: False
2025-07-01 09:32:49,658 [DEBUG][       Thread-600284][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:32:49,658 [DEBUG][       Thread-600284][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:32:49,658 [DEBUG][       Thread-600284][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:32:49,658 [DEBUG][       Thread-600284][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:32:49,658 [DEBUG][       Thread-600284][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:32:49,659 [DEBUG][       Thread-600284][   transport.py][1871] : Compression: none
2025-07-01 09:32:49,659 [DEBUG][       Thread-600284][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:32:49,674 [DEBUG][       Thread-600284][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:32:49,674 [DEBUG][       Thread-600284][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:32:49,675 [DEBUG][       Thread-600284][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:32:49,675 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:32:49,675 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:32:49,676 [DEBUG][       Thread-600284][   transport.py][1871] : userauth is OK
2025-07-01 09:32:49,701 [ INFO][       Thread-600284][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:32:49,701 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:32:50,369 [DEBUG][       Thread-600284][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:32:50,369 [DEBUG][       Thread-600284][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:32:50,413 [DEBUG][       Thread-600284][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:32:50,413 [DEBUG][       Thread-600284][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:32:50,416 [DEBUG][       Thread-600284][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:32:50,428 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:32:50,429 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:32:50,430 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:32:50,432 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:32:50,437 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:32:50,439 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:32:50,439 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:32:50,440 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:32:50,440 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.314184 -999.00   +9.00  42.34     55   +0.60 1 1 2 1 1   887    0 9.11 36.30 ----- 42.3 42.3 42.0 54.9 11.8 -23.7 10.8 -23.7 9.9 -22.6 10.8 -22.0
2025-07-01 09:32:50,440 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:32:50,440 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:32:50,440 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.314184
2025-07-01 09:32:50,440 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:32:50,441 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:32:50,441 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:32:50,441 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:32:50,441 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:32:50,441 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:32:20', tmtdew=9.54, humidity=51.3, cloud=0.0, wind=31.69, temperature=8.81, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:32:25.498', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:32:50,442 [DEBUG][       Thread-600284][   transport.py][1871] : EOF in transport thread
2025-07-01 09:32:50,525 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:32:50,546 [DEBUG][       Thread-600287][   transport.py][1871] : starting thread (client mode): 0x81a5270
2025-07-01 09:32:50,546 [DEBUG][       Thread-600287][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:32:50,562 [DEBUG][       Thread-600287][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:32:50,562 [ INFO][       Thread-600287][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:32:50,570 [DEBUG][       Thread-600287][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:32:50,571 [DEBUG][       Thread-600287][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:32:50,571 [DEBUG][       Thread-600287][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:32:50,571 [DEBUG][       Thread-600287][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:32:50,571 [DEBUG][       Thread-600287][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:32:50,571 [DEBUG][       Thread-600287][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:32:50,571 [DEBUG][       Thread-600287][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:32:50,571 [DEBUG][       Thread-600287][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:32:50,571 [DEBUG][       Thread-600287][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:32:50,571 [DEBUG][       Thread-600287][   transport.py][1871] : client lang: <none>
2025-07-01 09:32:50,571 [DEBUG][       Thread-600287][   transport.py][1871] : server lang: <none>
2025-07-01 09:32:50,571 [DEBUG][       Thread-600287][   transport.py][1871] : kex follows: False
2025-07-01 09:32:50,571 [DEBUG][       Thread-600287][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:32:50,571 [DEBUG][       Thread-600287][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:32:50,571 [DEBUG][       Thread-600287][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:32:50,571 [DEBUG][       Thread-600287][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:32:50,572 [DEBUG][       Thread-600287][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:32:50,572 [DEBUG][       Thread-600287][   transport.py][1871] : Compression: none
2025-07-01 09:32:50,572 [DEBUG][       Thread-600287][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:32:50,628 [DEBUG][       Thread-600287][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:32:50,629 [DEBUG][       Thread-600287][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:32:50,630 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:32:50,630 [DEBUG][       Thread-600287][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:32:50,631 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:32:50,685 [DEBUG][       Thread-600287][   transport.py][1871] : userauth is OK
2025-07-01 09:32:50,685 [DEBUG][       Thread-600287][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:32:50,685 [DEBUG][       Thread-600287][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:32:50,685 [DEBUG][       Thread-600287][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:32:50,686 [DEBUG][       Thread-600287][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:32:50,705 [ INFO][       Thread-600287][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:32:50,706 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:32:50,706 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:32:51,704 [DEBUG][       Thread-600287][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:32:51,705 [DEBUG][       Thread-600287][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:32:51,754 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:32:51,756 [DEBUG][       Thread-600287][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:32:51,756 [DEBUG][       Thread-600287][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:32:51,756 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:32:51,767 [DEBUG][       Thread-600287][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:32:51,776 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:32:51,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')
2025-07-01 09:32:51,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-07-01 09:32:51,795 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:32:51,795 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:32:51,796 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:32:51,804 [DEBUG][       Thread-600287][   transport.py][1871] : EOF in transport thread
2025-07-01 09:32:56,152 [DEBUG][Thread-600289 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:33:01,806 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:33:01,807 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:33:01,807 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:33:01,810 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:33:02,295 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 32, 52), 9.49, 51.5, 0.0, 36.17, 8.84, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:33:02,295 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:32:52
2025-07-01 09:33:02,381 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:33:02,385 [DEBUG][       Thread-600290][   transport.py][1871] : starting thread (client mode): 0x8107400
2025-07-01 09:33:02,385 [DEBUG][       Thread-600290][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:33:02,406 [DEBUG][       Thread-600290][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:33:02,406 [ INFO][       Thread-600290][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:33:02,409 [DEBUG][       Thread-600290][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:33:02,409 [DEBUG][       Thread-600290][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:33:02,409 [DEBUG][       Thread-600290][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:33:02,409 [DEBUG][       Thread-600290][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:33:02,409 [DEBUG][       Thread-600290][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:33:02,409 [DEBUG][       Thread-600290][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:33:02,409 [DEBUG][       Thread-600290][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:33:02,409 [DEBUG][       Thread-600290][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:33:02,409 [DEBUG][       Thread-600290][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:33:02,409 [DEBUG][       Thread-600290][   transport.py][1871] : client lang: <none>
2025-07-01 09:33:02,410 [DEBUG][       Thread-600290][   transport.py][1871] : server lang: <none>
2025-07-01 09:33:02,410 [DEBUG][       Thread-600290][   transport.py][1871] : kex follows: False
2025-07-01 09:33:02,410 [DEBUG][       Thread-600290][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:33:02,410 [DEBUG][       Thread-600290][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:33:02,410 [DEBUG][       Thread-600290][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:33:02,410 [DEBUG][       Thread-600290][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:33:02,410 [DEBUG][       Thread-600290][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:33:02,410 [DEBUG][       Thread-600290][   transport.py][1871] : Compression: none
2025-07-01 09:33:02,410 [DEBUG][       Thread-600290][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:33:02,427 [DEBUG][       Thread-600290][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:33:02,428 [DEBUG][       Thread-600290][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:33:02,428 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:33:02,428 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:33:02,429 [DEBUG][       Thread-600290][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:33:02,430 [DEBUG][       Thread-600290][   transport.py][1871] : userauth is OK
2025-07-01 09:33:02,454 [ INFO][       Thread-600290][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:33:02,455 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:33:03,129 [DEBUG][       Thread-600290][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:33:03,130 [DEBUG][       Thread-600290][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:33:03,173 [DEBUG][       Thread-600290][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:33:03,173 [DEBUG][       Thread-600290][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:33:03,176 [DEBUG][       Thread-600290][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:33:03,188 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:33:03,188 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:33:03,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:33:03,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:33:03,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:33:03,200 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:33:03,201 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:33:03,201 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:33:03,202 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.314184 -999.00   +9.00  42.34     55   +0.60 1 1 2 1 1   887    0 9.11 36.30 ----- 42.3 42.3 42.0 54.9 11.8 -23.7 10.8 -23.7 9.9 -22.6 10.8 -22.0
2025-07-01 09:33:03,202 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:33:03,202 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:33:03,202 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.314184
2025-07-01 09:33:03,202 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:33:03,203 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:33:03,203 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:33:03,203 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:33:03,203 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:33:03,203 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:32:52', tmtdew=9.49, humidity=51.5, cloud=0.0, wind=36.17, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:32:25.498', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:33:03,203 [DEBUG][       Thread-600290][   transport.py][1871] : EOF in transport thread
2025-07-01 09:33:03,284 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:33:03,295 [DEBUG][       Thread-600293][   transport.py][1871] : starting thread (client mode): 0x81540d0
2025-07-01 09:33:03,295 [DEBUG][       Thread-600293][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:33:03,310 [DEBUG][       Thread-600293][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:33:03,310 [ INFO][       Thread-600293][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:33:03,318 [DEBUG][       Thread-600293][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:33:03,318 [DEBUG][       Thread-600293][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:33:03,318 [DEBUG][       Thread-600293][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:33:03,318 [DEBUG][       Thread-600293][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:33:03,318 [DEBUG][       Thread-600293][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:33:03,318 [DEBUG][       Thread-600293][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:33:03,318 [DEBUG][       Thread-600293][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:33:03,318 [DEBUG][       Thread-600293][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:33:03,318 [DEBUG][       Thread-600293][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:33:03,318 [DEBUG][       Thread-600293][   transport.py][1871] : client lang: <none>
2025-07-01 09:33:03,318 [DEBUG][       Thread-600293][   transport.py][1871] : server lang: <none>
2025-07-01 09:33:03,318 [DEBUG][       Thread-600293][   transport.py][1871] : kex follows: False
2025-07-01 09:33:03,318 [DEBUG][       Thread-600293][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:33:03,318 [DEBUG][       Thread-600293][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:33:03,318 [DEBUG][       Thread-600293][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:33:03,318 [DEBUG][       Thread-600293][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:33:03,318 [DEBUG][       Thread-600293][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:33:03,318 [DEBUG][       Thread-600293][   transport.py][1871] : Compression: none
2025-07-01 09:33:03,318 [DEBUG][       Thread-600293][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:33:03,378 [DEBUG][       Thread-600293][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:33:03,379 [DEBUG][       Thread-600293][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:33:03,379 [DEBUG][       Thread-600293][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:33:03,380 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:33:03,380 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:33:03,437 [DEBUG][       Thread-600293][   transport.py][1871] : userauth is OK
2025-07-01 09:33:03,438 [DEBUG][       Thread-600293][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:33:03,438 [DEBUG][       Thread-600293][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:33:03,438 [DEBUG][       Thread-600293][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:33:03,438 [DEBUG][       Thread-600293][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:33:03,463 [ INFO][       Thread-600293][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:33:03,464 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:33:03,464 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:33:04,513 [DEBUG][       Thread-600293][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:33:04,513 [DEBUG][       Thread-600293][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:33:04,570 [DEBUG][       Thread-600293][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:33:04,571 [DEBUG][       Thread-600293][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:33:04,585 [DEBUG][       Thread-600293][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:33:04,600 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:33:04,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-07-01 09:33:04,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-07-01 09:33:04,623 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:33:04,623 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:33:04,624 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:33:04,636 [DEBUG][       Thread-600293][   transport.py][1871] : EOF in transport thread
2025-07-01 09:33:05,176 [DEBUG][Thread-600295 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:33:14,213 [DEBUG][Thread-600296 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:33:14,632 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:33:14,632 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:33:14,632 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:33:14,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-07-01 09:33:15,116 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 32, 52), 9.49, 51.5, 0.0, 36.17, 8.84, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:33:15,116 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:32:52
2025-07-01 09:33:15,201 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:33:15,205 [DEBUG][       Thread-600297][   transport.py][1871] : starting thread (client mode): 0x8155720
2025-07-01 09:33:15,205 [DEBUG][       Thread-600297][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:33:15,228 [DEBUG][       Thread-600297][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:33:15,228 [ INFO][       Thread-600297][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:33:15,231 [DEBUG][       Thread-600297][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:33:15,231 [DEBUG][       Thread-600297][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:33:15,231 [DEBUG][       Thread-600297][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:33:15,231 [DEBUG][       Thread-600297][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:33:15,231 [DEBUG][       Thread-600297][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:33:15,231 [DEBUG][       Thread-600297][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:33:15,231 [DEBUG][       Thread-600297][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:33:15,231 [DEBUG][       Thread-600297][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:33:15,231 [DEBUG][       Thread-600297][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:33:15,231 [DEBUG][       Thread-600297][   transport.py][1871] : client lang: <none>
2025-07-01 09:33:15,231 [DEBUG][       Thread-600297][   transport.py][1871] : server lang: <none>
2025-07-01 09:33:15,231 [DEBUG][       Thread-600297][   transport.py][1871] : kex follows: False
2025-07-01 09:33:15,231 [DEBUG][       Thread-600297][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:33:15,232 [DEBUG][       Thread-600297][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:33:15,232 [DEBUG][       Thread-600297][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:33:15,232 [DEBUG][       Thread-600297][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:33:15,232 [DEBUG][       Thread-600297][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:33:15,232 [DEBUG][       Thread-600297][   transport.py][1871] : Compression: none
2025-07-01 09:33:15,232 [DEBUG][       Thread-600297][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:33:15,249 [DEBUG][       Thread-600297][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:33:15,249 [DEBUG][       Thread-600297][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:33:15,250 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:33:15,250 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:33:15,251 [DEBUG][       Thread-600297][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:33:15,251 [DEBUG][       Thread-600297][   transport.py][1871] : userauth is OK
2025-07-01 09:33:15,276 [ INFO][       Thread-600297][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:33:15,276 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:33:15,883 [DEBUG][       Thread-600297][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:33:15,884 [DEBUG][       Thread-600297][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:33:15,925 [DEBUG][       Thread-600297][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:33:15,925 [DEBUG][       Thread-600297][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:33:15,928 [DEBUG][       Thread-600297][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:33:15,940 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:33:15,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:33:15,942 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:33:15,944 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:33:15,950 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:33:15,952 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:33:15,952 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:33:15,953 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:33:15,953 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.314531 -999.00   +9.00  39.11     55   +0.50 1 1 2 1 1   887    0 9.14 35.77 ----- 39.1 39.1 33.6 51.5 11.8 -23.2 10.9 -23.7 10.0 -22.9 10.9 -21.9
2025-07-01 09:33:15,953 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:33:15,953 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:33:15,953 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.314531
2025-07-01 09:33:15,954 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:33:15,954 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:33:15,954 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:33:15,954 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:33:15,955 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:33:15,955 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:32:52', tmtdew=9.49, humidity=51.5, cloud=0.0, wind=36.17, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:32:55.478', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:33:15,956 [DEBUG][       Thread-600297][   transport.py][1871] : EOF in transport thread
2025-07-01 09:33:16,039 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:33:16,057 [DEBUG][       Thread-600300][   transport.py][1871] : starting thread (client mode): 0x81a7bb0
2025-07-01 09:33:16,057 [DEBUG][       Thread-600300][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:33:16,080 [DEBUG][       Thread-600300][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:33:16,080 [ INFO][       Thread-600300][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:33:16,099 [DEBUG][       Thread-600300][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:33:16,099 [DEBUG][       Thread-600300][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:33:16,099 [DEBUG][       Thread-600300][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:33:16,099 [DEBUG][       Thread-600300][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:33:16,099 [DEBUG][       Thread-600300][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:33:16,099 [DEBUG][       Thread-600300][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:33:16,099 [DEBUG][       Thread-600300][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:33:16,099 [DEBUG][       Thread-600300][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:33:16,100 [DEBUG][       Thread-600300][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:33:16,100 [DEBUG][       Thread-600300][   transport.py][1871] : client lang: <none>
2025-07-01 09:33:16,100 [DEBUG][       Thread-600300][   transport.py][1871] : server lang: <none>
2025-07-01 09:33:16,100 [DEBUG][       Thread-600300][   transport.py][1871] : kex follows: False
2025-07-01 09:33:16,100 [DEBUG][       Thread-600300][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:33:16,100 [DEBUG][       Thread-600300][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:33:16,100 [DEBUG][       Thread-600300][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:33:16,100 [DEBUG][       Thread-600300][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:33:16,100 [DEBUG][       Thread-600300][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:33:16,100 [DEBUG][       Thread-600300][   transport.py][1871] : Compression: none
2025-07-01 09:33:16,100 [DEBUG][       Thread-600300][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:33:16,157 [DEBUG][       Thread-600300][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:33:16,158 [DEBUG][       Thread-600300][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:33:16,158 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:33:16,159 [DEBUG][       Thread-600300][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:33:16,160 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:33:16,225 [DEBUG][       Thread-600300][   transport.py][1871] : userauth is OK
2025-07-01 09:33:16,225 [DEBUG][       Thread-600300][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:33:16,225 [DEBUG][       Thread-600300][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:33:16,225 [DEBUG][       Thread-600300][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:33:16,225 [DEBUG][       Thread-600300][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:33:16,248 [ INFO][       Thread-600300][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:33:16,249 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:33:16,249 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:33:17,233 [DEBUG][       Thread-600300][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:33:17,233 [DEBUG][       Thread-600300][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:33:17,285 [DEBUG][       Thread-600300][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:33:17,285 [DEBUG][       Thread-600300][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:33:17,293 [DEBUG][       Thread-600300][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:33:17,301 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:33:17,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-07-01 09:33:17,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-07-01 09:33:17,318 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:33:17,318 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:33:17,318 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:33:17,326 [DEBUG][       Thread-600300][   transport.py][1871] : EOF in transport thread
2025-07-01 09:33:20,652 [DEBUG][Thread-600302 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:33:23,233 [DEBUG][Thread-600303 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:33:27,329 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:33:27,329 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:33:27,329 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:33:27,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-07-01 09:33:27,807 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 33, 24), 9.63, 51.04, 0.0, 35.2, 8.97, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:33:27,807 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:33:24
2025-07-01 09:33:27,891 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:33:27,897 [DEBUG][       Thread-600304][   transport.py][1871] : starting thread (client mode): 0x8171630
2025-07-01 09:33:27,898 [DEBUG][       Thread-600304][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:33:27,918 [DEBUG][       Thread-600304][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:33:27,918 [ INFO][       Thread-600304][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:33:27,921 [DEBUG][       Thread-600304][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:33:27,921 [DEBUG][       Thread-600304][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:33:27,921 [DEBUG][       Thread-600304][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:33:27,921 [DEBUG][       Thread-600304][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:33:27,921 [DEBUG][       Thread-600304][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:33:27,921 [DEBUG][       Thread-600304][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:33:27,921 [DEBUG][       Thread-600304][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:33:27,921 [DEBUG][       Thread-600304][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:33:27,921 [DEBUG][       Thread-600304][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:33:27,921 [DEBUG][       Thread-600304][   transport.py][1871] : client lang: <none>
2025-07-01 09:33:27,921 [DEBUG][       Thread-600304][   transport.py][1871] : server lang: <none>
2025-07-01 09:33:27,921 [DEBUG][       Thread-600304][   transport.py][1871] : kex follows: False
2025-07-01 09:33:27,921 [DEBUG][       Thread-600304][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:33:27,921 [DEBUG][       Thread-600304][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:33:27,921 [DEBUG][       Thread-600304][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:33:27,921 [DEBUG][       Thread-600304][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:33:27,921 [DEBUG][       Thread-600304][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:33:27,921 [DEBUG][       Thread-600304][   transport.py][1871] : Compression: none
2025-07-01 09:33:27,922 [DEBUG][       Thread-600304][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:33:27,939 [DEBUG][       Thread-600304][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:33:27,939 [DEBUG][       Thread-600304][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:33:27,940 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:33:27,940 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:33:27,940 [DEBUG][       Thread-600304][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:33:27,941 [DEBUG][       Thread-600304][   transport.py][1871] : userauth is OK
2025-07-01 09:33:27,966 [ INFO][       Thread-600304][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:33:27,966 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:33:28,596 [DEBUG][       Thread-600304][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:33:28,596 [DEBUG][       Thread-600304][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:33:28,637 [DEBUG][       Thread-600304][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:33:28,637 [DEBUG][       Thread-600304][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:33:28,641 [DEBUG][       Thread-600304][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:33:28,653 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:33:28,653 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:33:28,655 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:33:28,657 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:33:28,662 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:33:28,663 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:33:28,663 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:33:28,663 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:33:28,663 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.314531 -999.00   +9.00  39.11     55   +0.50 1 1 2 1 1   887    0 9.14 35.77 ----- 39.1 39.1 33.6 51.5 11.8 -23.2 10.9 -23.7 10.0 -22.9 10.9 -21.9
2025-07-01 09:33:28,663 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:33:28,663 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:33:28,663 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.314531
2025-07-01 09:33:28,663 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:33:28,664 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:33:28,664 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:33:28,664 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:33:28,664 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:33:28,664 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:33:24', tmtdew=9.63, humidity=51.04, cloud=0.0, wind=35.2, temperature=8.97, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:32:55.478', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:33:28,664 [DEBUG][       Thread-600304][   transport.py][1871] : EOF in transport thread
2025-07-01 09:33:28,748 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:33:28,760 [DEBUG][       Thread-600307][   transport.py][1871] : starting thread (client mode): 0x8155210
2025-07-01 09:33:28,760 [DEBUG][       Thread-600307][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:33:28,777 [DEBUG][       Thread-600307][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:33:28,777 [ INFO][       Thread-600307][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:33:28,785 [DEBUG][       Thread-600307][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:33:28,785 [DEBUG][       Thread-600307][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:33:28,785 [DEBUG][       Thread-600307][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:33:28,785 [DEBUG][       Thread-600307][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:33:28,785 [DEBUG][       Thread-600307][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:33:28,785 [DEBUG][       Thread-600307][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:33:28,785 [DEBUG][       Thread-600307][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:33:28,785 [DEBUG][       Thread-600307][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:33:28,785 [DEBUG][       Thread-600307][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:33:28,785 [DEBUG][       Thread-600307][   transport.py][1871] : client lang: <none>
2025-07-01 09:33:28,785 [DEBUG][       Thread-600307][   transport.py][1871] : server lang: <none>
2025-07-01 09:33:28,785 [DEBUG][       Thread-600307][   transport.py][1871] : kex follows: False
2025-07-01 09:33:28,785 [DEBUG][       Thread-600307][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:33:28,785 [DEBUG][       Thread-600307][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:33:28,786 [DEBUG][       Thread-600307][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:33:28,786 [DEBUG][       Thread-600307][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:33:28,786 [DEBUG][       Thread-600307][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:33:28,786 [DEBUG][       Thread-600307][   transport.py][1871] : Compression: none
2025-07-01 09:33:28,786 [DEBUG][       Thread-600307][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:33:28,849 [DEBUG][       Thread-600307][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:33:28,850 [DEBUG][       Thread-600307][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:33:28,850 [DEBUG][       Thread-600307][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:33:28,851 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:33:28,851 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:33:28,906 [DEBUG][       Thread-600307][   transport.py][1871] : userauth is OK
2025-07-01 09:33:28,907 [DEBUG][       Thread-600307][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:33:28,907 [DEBUG][       Thread-600307][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:33:28,907 [DEBUG][       Thread-600307][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:33:28,907 [DEBUG][       Thread-600307][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:33:28,926 [ INFO][       Thread-600307][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:33:28,926 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:33:28,927 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:33:29,917 [DEBUG][       Thread-600307][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:33:29,917 [DEBUG][       Thread-600307][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:33:29,968 [DEBUG][       Thread-600307][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:33:29,968 [DEBUG][       Thread-600307][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:33:29,978 [DEBUG][       Thread-600307][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:33:29,987 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:33:29,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-07-01 09:33:29,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-07-01 09:33:30,006 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:33:30,006 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:33:30,007 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:33:30,014 [DEBUG][       Thread-600307][   transport.py][1871] : EOF in transport thread
2025-07-01 09:33:32,256 [DEBUG][Thread-600309 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:33:40,017 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:33:40,017 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:33:40,017 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:33:40,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-07-01 09:33:40,495 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 33, 24), 9.63, 51.04, 0.0, 35.2, 8.97, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:33:40,495 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:33:24
2025-07-01 09:33:40,575 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:33:40,579 [DEBUG][       Thread-600310][   transport.py][1871] : starting thread (client mode): 0x8173550
2025-07-01 09:33:40,579 [DEBUG][       Thread-600310][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:33:40,599 [DEBUG][       Thread-600310][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:33:40,599 [ INFO][       Thread-600310][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:33:40,601 [DEBUG][       Thread-600310][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:33:40,601 [DEBUG][       Thread-600310][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:33:40,601 [DEBUG][       Thread-600310][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:33:40,601 [DEBUG][       Thread-600310][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:33:40,601 [DEBUG][       Thread-600310][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:33:40,601 [DEBUG][       Thread-600310][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:33:40,601 [DEBUG][       Thread-600310][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:33:40,601 [DEBUG][       Thread-600310][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:33:40,601 [DEBUG][       Thread-600310][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:33:40,601 [DEBUG][       Thread-600310][   transport.py][1871] : client lang: <none>
2025-07-01 09:33:40,601 [DEBUG][       Thread-600310][   transport.py][1871] : server lang: <none>
2025-07-01 09:33:40,601 [DEBUG][       Thread-600310][   transport.py][1871] : kex follows: False
2025-07-01 09:33:40,601 [DEBUG][       Thread-600310][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:33:40,601 [DEBUG][       Thread-600310][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:33:40,601 [DEBUG][       Thread-600310][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:33:40,601 [DEBUG][       Thread-600310][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:33:40,601 [DEBUG][       Thread-600310][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:33:40,601 [DEBUG][       Thread-600310][   transport.py][1871] : Compression: none
2025-07-01 09:33:40,601 [DEBUG][       Thread-600310][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:33:40,614 [DEBUG][       Thread-600310][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:33:40,614 [DEBUG][       Thread-600310][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:33:40,614 [DEBUG][       Thread-600310][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:33:40,614 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:33:40,614 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:33:40,615 [DEBUG][       Thread-600310][   transport.py][1871] : userauth is OK
2025-07-01 09:33:40,639 [ INFO][       Thread-600310][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:33:40,639 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:33:41,293 [DEBUG][Thread-600312 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:33:41,315 [DEBUG][       Thread-600310][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:33:41,316 [DEBUG][       Thread-600310][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:33:41,357 [DEBUG][       Thread-600310][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:33:41,357 [DEBUG][       Thread-600310][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:33:41,360 [DEBUG][       Thread-600310][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:33:41,372 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:33:41,372 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:33:41,374 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:33:41,375 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:33:41,381 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:33:41,382 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:33:41,383 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:33:41,383 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:33:41,383 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.314531 -999.00   +9.00  39.11     55   +0.50 1 1 2 1 1   887    0 9.14 35.77 ----- 39.1 39.1 33.6 51.5 11.8 -23.2 10.9 -23.7 10.0 -22.9 10.9 -21.9
2025-07-01 09:33:41,383 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:33:41,383 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:33:41,383 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.314531
2025-07-01 09:33:41,384 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:33:41,384 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:33:41,384 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:33:41,385 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:33:41,385 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:33:41,385 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:33:24', tmtdew=9.63, humidity=51.04, cloud=0.0, wind=35.2, temperature=8.97, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:32:55.478', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:33:41,385 [DEBUG][       Thread-600310][   transport.py][1871] : EOF in transport thread
2025-07-01 09:33:41,468 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:33:41,478 [DEBUG][       Thread-600314][   transport.py][1871] : starting thread (client mode): 0x818c850
2025-07-01 09:33:41,478 [DEBUG][       Thread-600314][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:33:41,493 [DEBUG][       Thread-600314][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:33:41,493 [ INFO][       Thread-600314][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:33:41,501 [DEBUG][       Thread-600314][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:33:41,501 [DEBUG][       Thread-600314][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:33:41,501 [DEBUG][       Thread-600314][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:33:41,501 [DEBUG][       Thread-600314][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:33:41,501 [DEBUG][       Thread-600314][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:33:41,501 [DEBUG][       Thread-600314][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:33:41,501 [DEBUG][       Thread-600314][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:33:41,502 [DEBUG][       Thread-600314][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:33:41,502 [DEBUG][       Thread-600314][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:33:41,502 [DEBUG][       Thread-600314][   transport.py][1871] : client lang: <none>
2025-07-01 09:33:41,502 [DEBUG][       Thread-600314][   transport.py][1871] : server lang: <none>
2025-07-01 09:33:41,502 [DEBUG][       Thread-600314][   transport.py][1871] : kex follows: False
2025-07-01 09:33:41,502 [DEBUG][       Thread-600314][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:33:41,502 [DEBUG][       Thread-600314][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:33:41,502 [DEBUG][       Thread-600314][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:33:41,502 [DEBUG][       Thread-600314][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:33:41,502 [DEBUG][       Thread-600314][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:33:41,502 [DEBUG][       Thread-600314][   transport.py][1871] : Compression: none
2025-07-01 09:33:41,502 [DEBUG][       Thread-600314][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:33:41,560 [DEBUG][       Thread-600314][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:33:41,560 [DEBUG][       Thread-600314][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:33:41,561 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:33:41,561 [DEBUG][       Thread-600314][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:33:41,562 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:33:41,622 [DEBUG][       Thread-600314][   transport.py][1871] : userauth is OK
2025-07-01 09:33:41,622 [DEBUG][       Thread-600314][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:33:41,622 [DEBUG][       Thread-600314][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:33:41,622 [DEBUG][       Thread-600314][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:33:41,622 [DEBUG][       Thread-600314][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:33:41,641 [ INFO][       Thread-600314][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:33:41,641 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:33:41,641 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:33:42,626 [DEBUG][       Thread-600314][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:33:42,627 [DEBUG][       Thread-600314][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:33:42,676 [DEBUG][       Thread-600314][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:33:42,676 [DEBUG][       Thread-600314][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:33:42,686 [DEBUG][       Thread-600314][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:33:42,695 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:33:42,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-07-01 09:33:42,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-07-01 09:33:42,714 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:33:42,714 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:33:42,715 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:33:42,723 [DEBUG][       Thread-600314][   transport.py][1871] : EOF in transport thread
2025-07-01 09:33:50,315 [DEBUG][Thread-600316 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:33:51,895 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:33:51,896 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:33:52,725 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:33:52,725 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:33:52,725 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:33:52,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-07-01 09:33:53,217 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 33, 24), 9.63, 51.04, 0.0, 35.2, 8.97, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:33:53,218 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:33:24
2025-07-01 09:33:53,297 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:33:53,303 [DEBUG][       Thread-600317][   transport.py][1871] : starting thread (client mode): 0x8172170
2025-07-01 09:33:53,304 [DEBUG][       Thread-600317][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:33:53,327 [DEBUG][       Thread-600317][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:33:53,327 [ INFO][       Thread-600317][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:33:53,330 [DEBUG][       Thread-600317][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:33:53,331 [DEBUG][       Thread-600317][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:33:53,331 [DEBUG][       Thread-600317][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:33:53,331 [DEBUG][       Thread-600317][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:33:53,331 [DEBUG][       Thread-600317][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:33:53,331 [DEBUG][       Thread-600317][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:33:53,331 [DEBUG][       Thread-600317][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:33:53,331 [DEBUG][       Thread-600317][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:33:53,331 [DEBUG][       Thread-600317][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:33:53,331 [DEBUG][       Thread-600317][   transport.py][1871] : client lang: <none>
2025-07-01 09:33:53,331 [DEBUG][       Thread-600317][   transport.py][1871] : server lang: <none>
2025-07-01 09:33:53,331 [DEBUG][       Thread-600317][   transport.py][1871] : kex follows: False
2025-07-01 09:33:53,331 [DEBUG][       Thread-600317][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:33:53,331 [DEBUG][       Thread-600317][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:33:53,331 [DEBUG][       Thread-600317][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:33:53,331 [DEBUG][       Thread-600317][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:33:53,331 [DEBUG][       Thread-600317][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:33:53,331 [DEBUG][       Thread-600317][   transport.py][1871] : Compression: none
2025-07-01 09:33:53,331 [DEBUG][       Thread-600317][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:33:53,347 [DEBUG][       Thread-600317][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:33:53,347 [DEBUG][       Thread-600317][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:33:53,348 [DEBUG][       Thread-600317][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:33:53,348 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:33:53,348 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:33:53,349 [DEBUG][       Thread-600317][   transport.py][1871] : userauth is OK
2025-07-01 09:33:53,362 [ INFO][       Thread-600317][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:33:53,363 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:33:54,006 [DEBUG][       Thread-600317][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:33:54,006 [DEBUG][       Thread-600317][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:33:54,049 [DEBUG][       Thread-600317][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:33:54,049 [DEBUG][       Thread-600317][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:33:54,053 [DEBUG][       Thread-600317][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:33:54,065 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:33:54,065 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:33:54,067 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:33:54,068 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:33:54,073 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:33:54,075 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:33:54,075 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:33:54,075 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:33:54,076 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.314878 -999.00   +9.10  33.98     55   +0.50 1 1 2 1 1   887    0 9.19 35.71 ----- 34.0 34.0 13.0 57.0 11.8 -24.1 10.9 -24.0 10.0 -23.2 10.9 -22.6
2025-07-01 09:33:54,076 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:33:54,076 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:33:54,076 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.314878
2025-07-01 09:33:54,076 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:33:54,077 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:33:54,077 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:33:54,077 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:33:54,077 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:33:54,077 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:33:24', tmtdew=9.63, humidity=51.04, cloud=0.0, wind=35.2, temperature=8.97, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:33:25.459', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:33:54,078 [DEBUG][       Thread-600317][   transport.py][1871] : EOF in transport thread
2025-07-01 09:33:54,161 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:33:54,179 [DEBUG][       Thread-600320][   transport.py][1871] : starting thread (client mode): 0x81068f0
2025-07-01 09:33:54,179 [DEBUG][       Thread-600320][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:33:54,199 [DEBUG][       Thread-600320][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:33:54,199 [ INFO][       Thread-600320][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:33:54,208 [DEBUG][       Thread-600320][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:33:54,209 [DEBUG][       Thread-600320][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:33:54,209 [DEBUG][       Thread-600320][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:33:54,209 [DEBUG][       Thread-600320][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:33:54,209 [DEBUG][       Thread-600320][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:33:54,209 [DEBUG][       Thread-600320][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:33:54,209 [DEBUG][       Thread-600320][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:33:54,209 [DEBUG][       Thread-600320][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:33:54,209 [DEBUG][       Thread-600320][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:33:54,209 [DEBUG][       Thread-600320][   transport.py][1871] : client lang: <none>
2025-07-01 09:33:54,209 [DEBUG][       Thread-600320][   transport.py][1871] : server lang: <none>
2025-07-01 09:33:54,209 [DEBUG][       Thread-600320][   transport.py][1871] : kex follows: False
2025-07-01 09:33:54,209 [DEBUG][       Thread-600320][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:33:54,209 [DEBUG][       Thread-600320][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:33:54,210 [DEBUG][       Thread-600320][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:33:54,210 [DEBUG][       Thread-600320][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:33:54,210 [DEBUG][       Thread-600320][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:33:54,210 [DEBUG][       Thread-600320][   transport.py][1871] : Compression: none
2025-07-01 09:33:54,210 [DEBUG][       Thread-600320][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:33:54,269 [DEBUG][       Thread-600320][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:33:54,269 [DEBUG][       Thread-600320][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:33:54,270 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:33:54,270 [DEBUG][       Thread-600320][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:33:54,271 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:33:54,326 [DEBUG][       Thread-600320][   transport.py][1871] : userauth is OK
2025-07-01 09:33:54,326 [DEBUG][       Thread-600320][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:33:54,327 [DEBUG][       Thread-600320][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:33:54,327 [DEBUG][       Thread-600320][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:33:54,327 [DEBUG][       Thread-600320][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:33:54,347 [ INFO][       Thread-600320][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:33:54,348 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:33:54,348 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:33:55,354 [DEBUG][       Thread-600320][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:33:55,357 [DEBUG][       Thread-600320][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:33:55,405 [DEBUG][       Thread-600320][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:33:55,405 [DEBUG][       Thread-600320][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:33:55,415 [DEBUG][       Thread-600320][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:33:55,424 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:33:55,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-07-01 09:33:55,433 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 09:33:55,442 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:33:55,443 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:33:55,443 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:33:55,451 [DEBUG][       Thread-600320][   transport.py][1871] : EOF in transport thread
2025-07-01 09:33:59,333 [DEBUG][Thread-600322 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:34:05,454 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:34:05,454 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:34:05,454 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:34:05,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-07-01 09:34:05,926 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 33, 56), 9.65, 50.94, 0.0, 33.58, 8.96, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:34:05,926 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:33:56
2025-07-01 09:34:06,012 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:34:06,015 [DEBUG][       Thread-600323][   transport.py][1871] : starting thread (client mode): 0x8155990
2025-07-01 09:34:06,015 [DEBUG][       Thread-600323][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:34:06,037 [DEBUG][       Thread-600323][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:34:06,037 [ INFO][       Thread-600323][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:34:06,041 [DEBUG][       Thread-600323][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:34:06,041 [DEBUG][       Thread-600323][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:34:06,041 [DEBUG][       Thread-600323][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:34:06,041 [DEBUG][       Thread-600323][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:34:06,041 [DEBUG][       Thread-600323][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:34:06,041 [DEBUG][       Thread-600323][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:34:06,041 [DEBUG][       Thread-600323][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:34:06,041 [DEBUG][       Thread-600323][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:34:06,041 [DEBUG][       Thread-600323][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:34:06,041 [DEBUG][       Thread-600323][   transport.py][1871] : client lang: <none>
2025-07-01 09:34:06,041 [DEBUG][       Thread-600323][   transport.py][1871] : server lang: <none>
2025-07-01 09:34:06,041 [DEBUG][       Thread-600323][   transport.py][1871] : kex follows: False
2025-07-01 09:34:06,041 [DEBUG][       Thread-600323][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:34:06,041 [DEBUG][       Thread-600323][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:34:06,041 [DEBUG][       Thread-600323][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:34:06,041 [DEBUG][       Thread-600323][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:34:06,042 [DEBUG][       Thread-600323][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:34:06,042 [DEBUG][       Thread-600323][   transport.py][1871] : Compression: none
2025-07-01 09:34:06,042 [DEBUG][       Thread-600323][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:34:06,059 [DEBUG][       Thread-600323][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:34:06,060 [DEBUG][       Thread-600323][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:34:06,060 [DEBUG][       Thread-600323][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:34:06,061 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:34:06,061 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:34:06,062 [DEBUG][       Thread-600323][   transport.py][1871] : userauth is OK
2025-07-01 09:34:06,087 [ INFO][       Thread-600323][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:34:06,087 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:34:06,697 [DEBUG][       Thread-600323][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:34:06,698 [DEBUG][       Thread-600323][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:34:06,741 [DEBUG][       Thread-600323][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:34:06,741 [DEBUG][       Thread-600323][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:34:06,744 [DEBUG][       Thread-600323][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:34:06,757 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:34:06,757 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:34:06,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:34:06,761 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:34:06,766 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:34:06,768 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:34:06,768 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:34:06,769 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:34:06,769 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.314878 -999.00   +9.10  33.98     55   +0.50 1 1 2 1 1   887    0 9.19 35.71 ----- 34.0 34.0 13.0 57.0 11.8 -24.1 10.9 -24.0 10.0 -23.2 10.9 -22.6
2025-07-01 09:34:06,769 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:34:06,769 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:34:06,769 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.314878
2025-07-01 09:34:06,770 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:34:06,770 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:34:06,770 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:34:06,770 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:34:06,770 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:34:06,770 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:33:56', tmtdew=9.65, humidity=50.94, cloud=0.0, wind=33.58, temperature=8.96, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:33:25.459', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:34:06,771 [DEBUG][       Thread-600323][   transport.py][1871] : EOF in transport thread
2025-07-01 09:34:06,852 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:34:06,863 [DEBUG][       Thread-600326][   transport.py][1871] : starting thread (client mode): 0x81e6500
2025-07-01 09:34:06,863 [DEBUG][       Thread-600326][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:34:06,880 [DEBUG][       Thread-600326][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:34:06,880 [ INFO][       Thread-600326][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:34:06,890 [DEBUG][       Thread-600326][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:34:06,890 [DEBUG][       Thread-600326][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:34:06,890 [DEBUG][       Thread-600326][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:34:06,890 [DEBUG][       Thread-600326][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:34:06,890 [DEBUG][       Thread-600326][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:34:06,890 [DEBUG][       Thread-600326][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:34:06,890 [DEBUG][       Thread-600326][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:34:06,890 [DEBUG][       Thread-600326][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:34:06,890 [DEBUG][       Thread-600326][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:34:06,890 [DEBUG][       Thread-600326][   transport.py][1871] : client lang: <none>
2025-07-01 09:34:06,890 [DEBUG][       Thread-600326][   transport.py][1871] : server lang: <none>
2025-07-01 09:34:06,891 [DEBUG][       Thread-600326][   transport.py][1871] : kex follows: False
2025-07-01 09:34:06,891 [DEBUG][       Thread-600326][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:34:06,891 [DEBUG][       Thread-600326][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:34:06,891 [DEBUG][       Thread-600326][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:34:06,891 [DEBUG][       Thread-600326][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:34:06,891 [DEBUG][       Thread-600326][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:34:06,891 [DEBUG][       Thread-600326][   transport.py][1871] : Compression: none
2025-07-01 09:34:06,891 [DEBUG][       Thread-600326][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:34:06,946 [DEBUG][       Thread-600326][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:34:06,946 [DEBUG][       Thread-600326][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:34:06,947 [DEBUG][       Thread-600326][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:34:06,947 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:34:06,947 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:34:07,005 [DEBUG][       Thread-600326][   transport.py][1871] : userauth is OK
2025-07-01 09:34:07,006 [DEBUG][       Thread-600326][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:34:07,006 [DEBUG][       Thread-600326][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:34:07,006 [DEBUG][       Thread-600326][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:34:07,006 [DEBUG][       Thread-600326][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:34:07,031 [ INFO][       Thread-600326][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:34:07,031 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:34:07,031 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:34:08,020 [DEBUG][       Thread-600326][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:34:08,021 [DEBUG][       Thread-600326][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:34:08,072 [DEBUG][       Thread-600326][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:34:08,073 [DEBUG][       Thread-600326][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:34:08,084 [DEBUG][       Thread-600326][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:34:08,093 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:34:08,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-07-01 09:34:08,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-07-01 09:34:08,113 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:34:08,114 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:34:08,114 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:34:08,125 [DEBUG][       Thread-600326][   transport.py][1871] : EOF in transport thread
2025-07-01 09:34:08,353 [DEBUG][Thread-600328 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:34:17,392 [DEBUG][Thread-600329 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:34:18,124 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:34:18,125 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:34:18,125 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:34:18,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-07-01 09:34:18,603 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 33, 56), 9.65, 50.94, 0.0, 33.58, 8.96, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:34:18,603 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:33:56
2025-07-01 09:34:18,688 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:34:18,693 [DEBUG][       Thread-600330][   transport.py][1871] : starting thread (client mode): 0x81a6e90
2025-07-01 09:34:18,693 [DEBUG][       Thread-600330][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:34:18,713 [DEBUG][       Thread-600330][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:34:18,713 [ INFO][       Thread-600330][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:34:18,716 [DEBUG][       Thread-600330][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:34:18,716 [DEBUG][       Thread-600330][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:34:18,716 [DEBUG][       Thread-600330][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:34:18,716 [DEBUG][       Thread-600330][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:34:18,716 [DEBUG][       Thread-600330][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:34:18,716 [DEBUG][       Thread-600330][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:34:18,716 [DEBUG][       Thread-600330][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:34:18,716 [DEBUG][       Thread-600330][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:34:18,716 [DEBUG][       Thread-600330][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:34:18,716 [DEBUG][       Thread-600330][   transport.py][1871] : client lang: <none>
2025-07-01 09:34:18,716 [DEBUG][       Thread-600330][   transport.py][1871] : server lang: <none>
2025-07-01 09:34:18,716 [DEBUG][       Thread-600330][   transport.py][1871] : kex follows: False
2025-07-01 09:34:18,716 [DEBUG][       Thread-600330][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:34:18,717 [DEBUG][       Thread-600330][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:34:18,717 [DEBUG][       Thread-600330][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:34:18,717 [DEBUG][       Thread-600330][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:34:18,717 [DEBUG][       Thread-600330][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:34:18,717 [DEBUG][       Thread-600330][   transport.py][1871] : Compression: none
2025-07-01 09:34:18,717 [DEBUG][       Thread-600330][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:34:18,725 [DEBUG][       Thread-600330][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:34:18,725 [DEBUG][       Thread-600330][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:34:18,726 [DEBUG][       Thread-600330][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:34:18,726 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:34:18,726 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:34:18,727 [DEBUG][       Thread-600330][   transport.py][1871] : userauth is OK
2025-07-01 09:34:18,740 [ INFO][       Thread-600330][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:34:18,741 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:34:19,348 [DEBUG][       Thread-600330][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:34:19,348 [DEBUG][       Thread-600330][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:34:19,393 [DEBUG][       Thread-600330][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:34:19,393 [DEBUG][       Thread-600330][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:34:19,396 [DEBUG][       Thread-600330][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:34:19,408 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:34:19,409 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:34:19,411 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:34:19,412 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:34:19,420 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:34:19,422 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:34:19,422 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:34:19,423 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:34:19,423 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.315225 -999.00   +9.10  39.28     55   +0.60 1 1 2 1 1   887    0 9.19 38.47 ----- 39.3 39.3 26.8 52.2 11.9 -23.4 10.9 -23.7 10.0 -22.7 10.9 -22.0
2025-07-01 09:34:19,423 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:34:19,423 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:34:19,423 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.315225
2025-07-01 09:34:19,424 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:34:19,424 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:34:19,424 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:34:19,424 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:34:19,424 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:34:19,425 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:33:56', tmtdew=9.65, humidity=50.94, cloud=0.0, wind=33.58, temperature=8.96, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:33:55.440', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:34:19,426 [DEBUG][       Thread-600330][   transport.py][1871] : EOF in transport thread
2025-07-01 09:34:19,508 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:34:19,520 [DEBUG][       Thread-600333][   transport.py][1871] : starting thread (client mode): 0x818e320
2025-07-01 09:34:19,520 [DEBUG][       Thread-600333][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:34:19,534 [DEBUG][       Thread-600333][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:34:19,535 [ INFO][       Thread-600333][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:34:19,543 [DEBUG][       Thread-600333][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:34:19,543 [DEBUG][       Thread-600333][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:34:19,543 [DEBUG][       Thread-600333][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:34:19,543 [DEBUG][       Thread-600333][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:34:19,543 [DEBUG][       Thread-600333][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:34:19,543 [DEBUG][       Thread-600333][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:34:19,543 [DEBUG][       Thread-600333][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:34:19,543 [DEBUG][       Thread-600333][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:34:19,543 [DEBUG][       Thread-600333][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:34:19,543 [DEBUG][       Thread-600333][   transport.py][1871] : client lang: <none>
2025-07-01 09:34:19,543 [DEBUG][       Thread-600333][   transport.py][1871] : server lang: <none>
2025-07-01 09:34:19,544 [DEBUG][       Thread-600333][   transport.py][1871] : kex follows: False
2025-07-01 09:34:19,544 [DEBUG][       Thread-600333][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:34:19,544 [DEBUG][       Thread-600333][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:34:19,544 [DEBUG][       Thread-600333][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:34:19,544 [DEBUG][       Thread-600333][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:34:19,544 [DEBUG][       Thread-600333][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:34:19,544 [DEBUG][       Thread-600333][   transport.py][1871] : Compression: none
2025-07-01 09:34:19,544 [DEBUG][       Thread-600333][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:34:19,601 [DEBUG][       Thread-600333][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:34:19,601 [DEBUG][       Thread-600333][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:34:19,602 [DEBUG][       Thread-600333][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:34:19,602 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:34:19,603 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:34:19,657 [DEBUG][       Thread-600333][   transport.py][1871] : userauth is OK
2025-07-01 09:34:19,657 [DEBUG][       Thread-600333][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:34:19,657 [DEBUG][       Thread-600333][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:34:19,657 [DEBUG][       Thread-600333][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:34:19,657 [DEBUG][       Thread-600333][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:34:19,676 [ INFO][       Thread-600333][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:34:19,676 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:34:19,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:34:20,685 [DEBUG][       Thread-600333][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:34:20,685 [DEBUG][       Thread-600333][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:34:20,702 [DEBUG][Thread-600335 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:34:20,736 [DEBUG][       Thread-600333][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:34:20,736 [DEBUG][       Thread-600333][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:34:20,745 [DEBUG][       Thread-600333][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:34:20,754 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:34:20,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-07-01 09:34:20,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-07-01 09:34:20,772 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:34:20,772 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:34:20,772 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:34:20,780 [DEBUG][       Thread-600333][   transport.py][1871] : EOF in transport thread
2025-07-01 09:34:26,418 [DEBUG][Thread-600336 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:34:30,780 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:34:30,780 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:34:30,780 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:34:30,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-07-01 09:34:31,248 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 34, 27), 9.74, 50.54, 0.0, 32.92, 9.05, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:34:31,248 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:34:27
2025-07-01 09:34:31,330 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:34:31,334 [DEBUG][       Thread-600337][   transport.py][1871] : starting thread (client mode): 0x818df30
2025-07-01 09:34:31,334 [DEBUG][       Thread-600337][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:34:31,355 [DEBUG][       Thread-600337][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:34:31,355 [ INFO][       Thread-600337][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:34:31,358 [DEBUG][       Thread-600337][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:34:31,358 [DEBUG][       Thread-600337][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:34:31,358 [DEBUG][       Thread-600337][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:34:31,358 [DEBUG][       Thread-600337][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:34:31,358 [DEBUG][       Thread-600337][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:34:31,358 [DEBUG][       Thread-600337][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:34:31,358 [DEBUG][       Thread-600337][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:34:31,358 [DEBUG][       Thread-600337][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:34:31,358 [DEBUG][       Thread-600337][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:34:31,358 [DEBUG][       Thread-600337][   transport.py][1871] : client lang: <none>
2025-07-01 09:34:31,358 [DEBUG][       Thread-600337][   transport.py][1871] : server lang: <none>
2025-07-01 09:34:31,358 [DEBUG][       Thread-600337][   transport.py][1871] : kex follows: False
2025-07-01 09:34:31,358 [DEBUG][       Thread-600337][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:34:31,358 [DEBUG][       Thread-600337][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:34:31,359 [DEBUG][       Thread-600337][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:34:31,359 [DEBUG][       Thread-600337][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:34:31,359 [DEBUG][       Thread-600337][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:34:31,359 [DEBUG][       Thread-600337][   transport.py][1871] : Compression: none
2025-07-01 09:34:31,359 [DEBUG][       Thread-600337][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:34:31,375 [DEBUG][       Thread-600337][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:34:31,376 [DEBUG][       Thread-600337][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:34:31,376 [DEBUG][       Thread-600337][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:34:31,377 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:34:31,377 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:34:31,378 [DEBUG][       Thread-600337][   transport.py][1871] : userauth is OK
2025-07-01 09:34:31,391 [ INFO][       Thread-600337][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:34:31,391 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:34:32,012 [DEBUG][       Thread-600337][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:34:32,013 [DEBUG][       Thread-600337][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:34:32,057 [DEBUG][       Thread-600337][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:34:32,057 [DEBUG][       Thread-600337][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:34:32,061 [DEBUG][       Thread-600337][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:34:32,072 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:34:32,073 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:34:32,074 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:34:32,076 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:34:32,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:34:32,084 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:34:32,084 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:34:32,085 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:34:32,085 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.315225 -999.00   +9.10  39.28     55   +0.60 1 1 2 1 1   887    0 9.19 38.47 ----- 39.3 39.3 26.8 52.2 11.9 -23.4 10.9 -23.7 10.0 -22.7 10.9 -22.0
2025-07-01 09:34:32,085 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:34:32,085 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:34:32,085 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.315225
2025-07-01 09:34:32,086 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:34:32,086 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:34:32,086 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:34:32,087 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:34:32,087 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:34:32,087 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:34:27', tmtdew=9.74, humidity=50.54, cloud=0.0, wind=32.92, temperature=9.05, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:33:55.440', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:34:32,088 [DEBUG][       Thread-600337][   transport.py][1871] : EOF in transport thread
2025-07-01 09:34:32,170 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:34:32,183 [DEBUG][       Thread-600340][   transport.py][1871] : starting thread (client mode): 0x81a60b0
2025-07-01 09:34:32,183 [DEBUG][       Thread-600340][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:34:32,203 [DEBUG][       Thread-600340][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:34:32,203 [ INFO][       Thread-600340][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:34:32,216 [DEBUG][       Thread-600340][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:34:32,217 [DEBUG][       Thread-600340][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:34:32,217 [DEBUG][       Thread-600340][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:34:32,217 [DEBUG][       Thread-600340][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:34:32,217 [DEBUG][       Thread-600340][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:34:32,217 [DEBUG][       Thread-600340][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:34:32,217 [DEBUG][       Thread-600340][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:34:32,217 [DEBUG][       Thread-600340][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:34:32,217 [DEBUG][       Thread-600340][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:34:32,217 [DEBUG][       Thread-600340][   transport.py][1871] : client lang: <none>
2025-07-01 09:34:32,217 [DEBUG][       Thread-600340][   transport.py][1871] : server lang: <none>
2025-07-01 09:34:32,217 [DEBUG][       Thread-600340][   transport.py][1871] : kex follows: False
2025-07-01 09:34:32,217 [DEBUG][       Thread-600340][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:34:32,217 [DEBUG][       Thread-600340][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:34:32,217 [DEBUG][       Thread-600340][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:34:32,217 [DEBUG][       Thread-600340][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:34:32,217 [DEBUG][       Thread-600340][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:34:32,218 [DEBUG][       Thread-600340][   transport.py][1871] : Compression: none
2025-07-01 09:34:32,218 [DEBUG][       Thread-600340][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:34:32,269 [DEBUG][       Thread-600340][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:34:32,270 [DEBUG][       Thread-600340][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:34:32,271 [DEBUG][       Thread-600340][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:34:32,271 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:34:32,272 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:34:32,325 [DEBUG][       Thread-600340][   transport.py][1871] : userauth is OK
2025-07-01 09:34:32,325 [DEBUG][       Thread-600340][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:34:32,326 [DEBUG][       Thread-600340][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:34:32,326 [DEBUG][       Thread-600340][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:34:32,326 [DEBUG][       Thread-600340][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:34:32,344 [ INFO][       Thread-600340][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:34:32,344 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:34:32,345 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:34:33,349 [DEBUG][       Thread-600340][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:34:33,349 [DEBUG][       Thread-600340][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:34:33,401 [DEBUG][       Thread-600340][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:34:33,402 [DEBUG][       Thread-600340][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:34:33,411 [DEBUG][       Thread-600340][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:34:33,421 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:34:33,422 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 09:34: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-07-01 09:34:33,442 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:34:33,442 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:34:33,443 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:34:33,451 [DEBUG][       Thread-600340][   transport.py][1871] : EOF in transport thread
2025-07-01 09:34:35,438 [DEBUG][Thread-600342 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:34:43,453 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:34:43,454 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:34:43,454 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:34: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-07-01 09:34:43,936 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 34, 27), 9.74, 50.54, 0.0, 32.92, 9.05, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:34:43,936 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:34:27
2025-07-01 09:34:44,018 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:34:44,022 [DEBUG][       Thread-600343][   transport.py][1871] : starting thread (client mode): 0x818d270
2025-07-01 09:34:44,022 [DEBUG][       Thread-600343][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:34:44,042 [DEBUG][       Thread-600343][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:34:44,042 [ INFO][       Thread-600343][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:34:44,045 [DEBUG][       Thread-600343][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:34:44,046 [DEBUG][       Thread-600343][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:34:44,046 [DEBUG][       Thread-600343][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:34:44,046 [DEBUG][       Thread-600343][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:34:44,046 [DEBUG][       Thread-600343][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:34:44,046 [DEBUG][       Thread-600343][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:34:44,046 [DEBUG][       Thread-600343][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:34:44,046 [DEBUG][       Thread-600343][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:34:44,046 [DEBUG][       Thread-600343][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:34:44,046 [DEBUG][       Thread-600343][   transport.py][1871] : client lang: <none>
2025-07-01 09:34:44,046 [DEBUG][       Thread-600343][   transport.py][1871] : server lang: <none>
2025-07-01 09:34:44,046 [DEBUG][       Thread-600343][   transport.py][1871] : kex follows: False
2025-07-01 09:34:44,046 [DEBUG][       Thread-600343][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:34:44,046 [DEBUG][       Thread-600343][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:34:44,046 [DEBUG][       Thread-600343][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:34:44,046 [DEBUG][       Thread-600343][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:34:44,046 [DEBUG][       Thread-600343][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:34:44,047 [DEBUG][       Thread-600343][   transport.py][1871] : Compression: none
2025-07-01 09:34:44,047 [DEBUG][       Thread-600343][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:34:44,064 [DEBUG][       Thread-600343][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:34:44,064 [DEBUG][       Thread-600343][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:34:44,065 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:34:44,065 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:34:44,065 [DEBUG][       Thread-600343][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:34:44,066 [DEBUG][       Thread-600343][   transport.py][1871] : userauth is OK
2025-07-01 09:34:44,079 [ INFO][       Thread-600343][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:34:44,079 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:34:44,472 [DEBUG][Thread-600345 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:34:44,676 [DEBUG][       Thread-600343][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:34:44,677 [DEBUG][       Thread-600343][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:34:44,721 [DEBUG][       Thread-600343][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:34:44,721 [DEBUG][       Thread-600343][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:34:44,724 [DEBUG][       Thread-600343][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:34:44,737 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:34:44,737 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:34:44,739 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:34:44,741 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:34:44,747 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:34:44,749 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:34:44,749 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:34:44,750 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:34:44,750 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.315225 -999.00   +9.10  39.28     55   +0.60 1 1 2 1 1   887    0 9.19 38.47 ----- 39.3 39.3 26.8 52.2 11.9 -23.4 10.9 -23.7 10.0 -22.7 10.9 -22.0
2025-07-01 09:34:44,750 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:34:44,750 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:34:44,750 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.315225
2025-07-01 09:34:44,750 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:34:44,751 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:34:44,751 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:34:44,751 [DEBUG][       Thread-600343][   transport.py][1871] : EOF in transport thread
2025-07-01 09:34:44,751 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:34:44,752 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:34:44,752 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:34:27', tmtdew=9.74, humidity=50.54, cloud=0.0, wind=32.92, temperature=9.05, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:33:55.440', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:34:44,835 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:34:44,845 [DEBUG][       Thread-600347][   transport.py][1871] : starting thread (client mode): 0x8156e00
2025-07-01 09:34:44,845 [DEBUG][       Thread-600347][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:34:44,861 [DEBUG][       Thread-600347][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:34:44,861 [ INFO][       Thread-600347][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:34:44,869 [DEBUG][       Thread-600347][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:34:44,870 [DEBUG][       Thread-600347][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:34:44,870 [DEBUG][       Thread-600347][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:34:44,870 [DEBUG][       Thread-600347][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:34:44,870 [DEBUG][       Thread-600347][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:34:44,870 [DEBUG][       Thread-600347][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:34:44,870 [DEBUG][       Thread-600347][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:34:44,870 [DEBUG][       Thread-600347][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:34:44,870 [DEBUG][       Thread-600347][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:34:44,870 [DEBUG][       Thread-600347][   transport.py][1871] : client lang: <none>
2025-07-01 09:34:44,870 [DEBUG][       Thread-600347][   transport.py][1871] : server lang: <none>
2025-07-01 09:34:44,870 [DEBUG][       Thread-600347][   transport.py][1871] : kex follows: False
2025-07-01 09:34:44,870 [DEBUG][       Thread-600347][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:34:44,870 [DEBUG][       Thread-600347][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:34:44,870 [DEBUG][       Thread-600347][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:34:44,870 [DEBUG][       Thread-600347][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:34:44,870 [DEBUG][       Thread-600347][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:34:44,870 [DEBUG][       Thread-600347][   transport.py][1871] : Compression: none
2025-07-01 09:34:44,870 [DEBUG][       Thread-600347][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:34:44,925 [DEBUG][       Thread-600347][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:34:44,925 [DEBUG][       Thread-600347][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:34:44,926 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:34:44,926 [DEBUG][       Thread-600347][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:34:44,927 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:34:44,981 [DEBUG][       Thread-600347][   transport.py][1871] : userauth is OK
2025-07-01 09:34:44,981 [DEBUG][       Thread-600347][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:34:44,981 [DEBUG][       Thread-600347][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:34:44,982 [DEBUG][       Thread-600347][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:34:44,982 [DEBUG][       Thread-600347][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:34:45,001 [ INFO][       Thread-600347][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:34:45,001 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:34:45,002 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:34:45,996 [DEBUG][       Thread-600347][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:34:45,996 [DEBUG][       Thread-600347][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:34:46,043 [DEBUG][       Thread-600347][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:34:46,043 [DEBUG][       Thread-600347][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:34:46,052 [DEBUG][       Thread-600347][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:34:46,061 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:34:46,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')
2025-07-01 09:34:46,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-07-01 09:34:46,079 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:34:46,079 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:34:46,079 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:34:46,087 [DEBUG][       Thread-600347][   transport.py][1871] : EOF in transport thread
2025-07-01 09:34:52,034 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:34:52,036 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:34:53,497 [DEBUG][Thread-600349 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:34:56,090 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:34:56,090 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:34:56,090 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:34:56,093 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:34:56,557 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 34, 27), 9.74, 50.54, 0.0, 32.92, 9.05, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:34:56,557 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:34:27
2025-07-01 09:34:56,639 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:34:56,643 [DEBUG][       Thread-600350][   transport.py][1871] : starting thread (client mode): 0x81e58d0
2025-07-01 09:34:56,643 [DEBUG][       Thread-600350][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:34:56,664 [DEBUG][       Thread-600350][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:34:56,664 [ INFO][       Thread-600350][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:34:56,667 [DEBUG][       Thread-600350][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:34:56,668 [DEBUG][       Thread-600350][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:34:56,668 [DEBUG][       Thread-600350][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:34:56,668 [DEBUG][       Thread-600350][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:34:56,668 [DEBUG][       Thread-600350][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:34:56,668 [DEBUG][       Thread-600350][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:34:56,668 [DEBUG][       Thread-600350][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:34:56,668 [DEBUG][       Thread-600350][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:34:56,668 [DEBUG][       Thread-600350][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:34:56,668 [DEBUG][       Thread-600350][   transport.py][1871] : client lang: <none>
2025-07-01 09:34:56,668 [DEBUG][       Thread-600350][   transport.py][1871] : server lang: <none>
2025-07-01 09:34:56,668 [DEBUG][       Thread-600350][   transport.py][1871] : kex follows: False
2025-07-01 09:34:56,668 [DEBUG][       Thread-600350][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:34:56,668 [DEBUG][       Thread-600350][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:34:56,668 [DEBUG][       Thread-600350][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:34:56,668 [DEBUG][       Thread-600350][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:34:56,668 [DEBUG][       Thread-600350][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:34:56,668 [DEBUG][       Thread-600350][   transport.py][1871] : Compression: none
2025-07-01 09:34:56,668 [DEBUG][       Thread-600350][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:34:56,685 [DEBUG][       Thread-600350][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:34:56,686 [DEBUG][       Thread-600350][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:34:56,686 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:34:56,686 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:34:56,687 [DEBUG][       Thread-600350][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:34:56,688 [DEBUG][       Thread-600350][   transport.py][1871] : userauth is OK
2025-07-01 09:34:56,712 [ INFO][       Thread-600350][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:34:56,712 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:34:57,356 [DEBUG][       Thread-600350][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:34:57,357 [DEBUG][       Thread-600350][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:34:57,401 [DEBUG][       Thread-600350][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:34:57,401 [DEBUG][       Thread-600350][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:34:57,404 [DEBUG][       Thread-600350][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:34:57,419 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:34:57,420 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:34:57,422 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:34:57,424 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:34:57,430 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:34:57,432 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:34:57,432 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:34:57,433 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:34:57,433 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.315573 -999.00   +9.10  38.81     55   +0.60 1 1 2 1 1   887    0 9.16 39.02 ----- 38.8 38.8 22.5 46.3 12.0 -23.6 11.1 -23.9 10.1 -22.9 11.0 -22.9
2025-07-01 09:34:57,433 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:34:57,433 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:34:57,433 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.315573
2025-07-01 09:34:57,434 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:34:57,434 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:34:57,435 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:34:57,435 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:34:57,435 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:34:57,435 [DEBUG][       Thread-600350][   transport.py][1871] : EOF in transport thread
2025-07-01 09:34:57,435 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:34:27', tmtdew=9.74, humidity=50.54, cloud=0.0, wind=32.92, temperature=9.05, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:34:25.507', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:34:57,519 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:34:57,530 [DEBUG][       Thread-600353][   transport.py][1871] : starting thread (client mode): 0x81a5720
2025-07-01 09:34:57,530 [DEBUG][       Thread-600353][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:34:57,547 [DEBUG][       Thread-600353][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:34:57,547 [ INFO][       Thread-600353][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:34:57,555 [DEBUG][       Thread-600353][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:34:57,555 [DEBUG][       Thread-600353][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:34:57,555 [DEBUG][       Thread-600353][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:34:57,555 [DEBUG][       Thread-600353][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:34:57,555 [DEBUG][       Thread-600353][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:34:57,555 [DEBUG][       Thread-600353][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:34:57,555 [DEBUG][       Thread-600353][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:34:57,555 [DEBUG][       Thread-600353][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:34:57,555 [DEBUG][       Thread-600353][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:34:57,555 [DEBUG][       Thread-600353][   transport.py][1871] : client lang: <none>
2025-07-01 09:34:57,555 [DEBUG][       Thread-600353][   transport.py][1871] : server lang: <none>
2025-07-01 09:34:57,555 [DEBUG][       Thread-600353][   transport.py][1871] : kex follows: False
2025-07-01 09:34:57,555 [DEBUG][       Thread-600353][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:34:57,556 [DEBUG][       Thread-600353][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:34:57,556 [DEBUG][       Thread-600353][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:34:57,556 [DEBUG][       Thread-600353][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:34:57,556 [DEBUG][       Thread-600353][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:34:57,556 [DEBUG][       Thread-600353][   transport.py][1871] : Compression: none
2025-07-01 09:34:57,556 [DEBUG][       Thread-600353][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:34:57,613 [DEBUG][       Thread-600353][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:34:57,613 [DEBUG][       Thread-600353][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:34:57,614 [DEBUG][       Thread-600353][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:34:57,614 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:34:57,615 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:34:57,669 [DEBUG][       Thread-600353][   transport.py][1871] : userauth is OK
2025-07-01 09:34:57,669 [DEBUG][       Thread-600353][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:34:57,669 [DEBUG][       Thread-600353][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:34:57,669 [DEBUG][       Thread-600353][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:34:57,669 [DEBUG][       Thread-600353][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:34:57,688 [ INFO][       Thread-600353][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:34:57,689 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:34:57,689 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:34:58,702 [DEBUG][       Thread-600353][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:34:58,702 [DEBUG][       Thread-600353][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:34:58,753 [DEBUG][       Thread-600353][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:34:58,753 [DEBUG][       Thread-600353][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:34:58,771 [DEBUG][       Thread-600353][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:34:58,784 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:34:58,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-07-01 09:34:58,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-07-01 09:34:58,801 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:34:58,801 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:34:58,801 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:34:58,809 [DEBUG][       Thread-600353][   transport.py][1871] : EOF in transport thread
2025-07-01 09:35:02,518 [DEBUG][Thread-600355 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:35:08,811 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:35:08,812 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:35:08,812 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:35:08,814 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:35:09,292 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 34, 59), 9.76, 50.48, 0.0, 35.5, 9.04, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:35:09,292 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:34:59
2025-07-01 09:35:09,376 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:35:09,380 [DEBUG][       Thread-600356][   transport.py][1871] : starting thread (client mode): 0x81e6500
2025-07-01 09:35:09,380 [DEBUG][       Thread-600356][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:35:09,402 [DEBUG][       Thread-600356][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:35:09,402 [ INFO][       Thread-600356][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:35:09,405 [DEBUG][       Thread-600356][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:35:09,405 [DEBUG][       Thread-600356][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:35:09,405 [DEBUG][       Thread-600356][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:35:09,405 [DEBUG][       Thread-600356][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:35:09,405 [DEBUG][       Thread-600356][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:35:09,405 [DEBUG][       Thread-600356][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:35:09,405 [DEBUG][       Thread-600356][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:35:09,406 [DEBUG][       Thread-600356][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:35:09,406 [DEBUG][       Thread-600356][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:35:09,406 [DEBUG][       Thread-600356][   transport.py][1871] : client lang: <none>
2025-07-01 09:35:09,406 [DEBUG][       Thread-600356][   transport.py][1871] : server lang: <none>
2025-07-01 09:35:09,406 [DEBUG][       Thread-600356][   transport.py][1871] : kex follows: False
2025-07-01 09:35:09,406 [DEBUG][       Thread-600356][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:35:09,406 [DEBUG][       Thread-600356][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:35:09,406 [DEBUG][       Thread-600356][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:35:09,406 [DEBUG][       Thread-600356][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:35:09,406 [DEBUG][       Thread-600356][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:35:09,406 [DEBUG][       Thread-600356][   transport.py][1871] : Compression: none
2025-07-01 09:35:09,406 [DEBUG][       Thread-600356][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:35:09,425 [DEBUG][       Thread-600356][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:35:09,426 [DEBUG][       Thread-600356][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:35:09,426 [DEBUG][       Thread-600356][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:35:09,426 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:35:09,427 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:35:09,428 [DEBUG][       Thread-600356][   transport.py][1871] : userauth is OK
2025-07-01 09:35:09,475 [ INFO][       Thread-600356][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:35:09,476 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:35:10,137 [DEBUG][       Thread-600356][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:35:10,137 [DEBUG][       Thread-600356][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:35:10,181 [DEBUG][       Thread-600356][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:35:10,181 [DEBUG][       Thread-600356][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:35:10,184 [DEBUG][       Thread-600356][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:35:10,197 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:35:10,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:35:10,199 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:35:10,201 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:35:10,207 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:35:10,209 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:35:10,209 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:35:10,209 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:35:10,210 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.315573 -999.00   +9.10  38.81     55   +0.60 1 1 2 1 1   887    0 9.16 39.02 ----- 38.8 38.8 22.5 46.3 12.0 -23.6 11.1 -23.9 10.1 -22.9 11.0 -22.9
2025-07-01 09:35:10,210 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:35:10,210 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:35:10,210 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.315573
2025-07-01 09:35:10,210 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:35:10,211 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:35:10,211 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:35:10,211 [DEBUG][       Thread-600356][   transport.py][1871] : EOF in transport thread
2025-07-01 09:35:10,211 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:35:10,211 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:35:10,212 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:34:59', tmtdew=9.76, humidity=50.48, cloud=0.0, wind=35.5, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:34:25.507', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:35:10,295 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:35:10,306 [DEBUG][       Thread-600359][   transport.py][1871] : starting thread (client mode): 0x81e5840
2025-07-01 09:35:10,306 [DEBUG][       Thread-600359][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:35:10,324 [DEBUG][       Thread-600359][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:35:10,324 [ INFO][       Thread-600359][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:35:10,333 [DEBUG][       Thread-600359][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:35:10,333 [DEBUG][       Thread-600359][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:35:10,333 [DEBUG][       Thread-600359][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:35:10,333 [DEBUG][       Thread-600359][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:35:10,333 [DEBUG][       Thread-600359][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:35:10,333 [DEBUG][       Thread-600359][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:35:10,333 [DEBUG][       Thread-600359][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:35:10,333 [DEBUG][       Thread-600359][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:35:10,333 [DEBUG][       Thread-600359][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:35:10,333 [DEBUG][       Thread-600359][   transport.py][1871] : client lang: <none>
2025-07-01 09:35:10,333 [DEBUG][       Thread-600359][   transport.py][1871] : server lang: <none>
2025-07-01 09:35:10,333 [DEBUG][       Thread-600359][   transport.py][1871] : kex follows: False
2025-07-01 09:35:10,333 [DEBUG][       Thread-600359][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:35:10,334 [DEBUG][       Thread-600359][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:35:10,334 [DEBUG][       Thread-600359][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:35:10,334 [DEBUG][       Thread-600359][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:35:10,334 [DEBUG][       Thread-600359][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:35:10,334 [DEBUG][       Thread-600359][   transport.py][1871] : Compression: none
2025-07-01 09:35:10,334 [DEBUG][       Thread-600359][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:35:10,388 [DEBUG][       Thread-600359][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:35:10,389 [DEBUG][       Thread-600359][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:35:10,389 [DEBUG][       Thread-600359][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:35:10,389 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:35:10,389 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:35:10,451 [DEBUG][       Thread-600359][   transport.py][1871] : userauth is OK
2025-07-01 09:35:10,451 [DEBUG][       Thread-600359][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:35:10,451 [DEBUG][       Thread-600359][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:35:10,451 [DEBUG][       Thread-600359][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:35:10,451 [DEBUG][       Thread-600359][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:35:10,474 [ INFO][       Thread-600359][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:35:10,474 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:35:10,475 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:35:11,515 [DEBUG][       Thread-600359][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:35:11,515 [DEBUG][       Thread-600359][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:35:11,536 [DEBUG][Thread-600361 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:35:11,565 [DEBUG][       Thread-600359][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:35:11,565 [DEBUG][       Thread-600359][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:35:11,573 [DEBUG][       Thread-600359][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:35:11,581 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:35:11,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-07-01 09:35: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') -> 00000000
2025-07-01 09:35:11,597 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:35:11,597 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:35:11,597 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:35:11,605 [DEBUG][       Thread-600359][   transport.py][1871] : EOF in transport thread
2025-07-01 09:35:20,562 [DEBUG][Thread-600362 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:35:20,785 [DEBUG][Thread-600363 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:35:21,600 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:35:21,600 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:35:21,600 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:35:21,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-07-01 09:35:22,054 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 34, 59), 9.76, 50.48, 0.0, 35.5, 9.04, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:35:22,054 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:34:59
2025-07-01 09:35:22,139 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:35:22,143 [DEBUG][       Thread-600364][   transport.py][1871] : starting thread (client mode): 0x8170dc0
2025-07-01 09:35:22,143 [DEBUG][       Thread-600364][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:35:22,163 [DEBUG][       Thread-600364][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:35:22,163 [ INFO][       Thread-600364][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:35:22,166 [DEBUG][       Thread-600364][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:35:22,167 [DEBUG][       Thread-600364][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:35:22,167 [DEBUG][       Thread-600364][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:35:22,167 [DEBUG][       Thread-600364][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:35:22,167 [DEBUG][       Thread-600364][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:35:22,167 [DEBUG][       Thread-600364][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:35:22,167 [DEBUG][       Thread-600364][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:35:22,167 [DEBUG][       Thread-600364][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:35:22,167 [DEBUG][       Thread-600364][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:35:22,167 [DEBUG][       Thread-600364][   transport.py][1871] : client lang: <none>
2025-07-01 09:35:22,167 [DEBUG][       Thread-600364][   transport.py][1871] : server lang: <none>
2025-07-01 09:35:22,167 [DEBUG][       Thread-600364][   transport.py][1871] : kex follows: False
2025-07-01 09:35:22,167 [DEBUG][       Thread-600364][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:35:22,167 [DEBUG][       Thread-600364][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:35:22,167 [DEBUG][       Thread-600364][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:35:22,167 [DEBUG][       Thread-600364][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:35:22,167 [DEBUG][       Thread-600364][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:35:22,167 [DEBUG][       Thread-600364][   transport.py][1871] : Compression: none
2025-07-01 09:35:22,167 [DEBUG][       Thread-600364][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:35:22,183 [DEBUG][       Thread-600364][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:35:22,184 [DEBUG][       Thread-600364][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:35:22,184 [DEBUG][       Thread-600364][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:35:22,184 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:35:22,185 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:35:22,186 [DEBUG][       Thread-600364][   transport.py][1871] : userauth is OK
2025-07-01 09:35:22,199 [ INFO][       Thread-600364][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:35:22,199 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:35:22,848 [DEBUG][       Thread-600364][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:35:22,848 [DEBUG][       Thread-600364][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:35:22,889 [DEBUG][       Thread-600364][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:35:22,889 [DEBUG][       Thread-600364][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:35:22,892 [DEBUG][       Thread-600364][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:35:22,903 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:35:22,904 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:35:22,905 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:35:22,907 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:35:22,912 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:35:22,914 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:35:22,914 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:35:22,915 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:35:22,915 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.315573 -999.00   +9.10  38.81     55   +0.60 1 1 2 1 1   887    0 9.16 39.02 ----- 38.8 38.8 22.5 46.3 12.0 -23.6 11.1 -23.9 10.1 -22.9 11.0 -22.9
2025-07-01 09:35:22,915 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:35:22,915 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:35:22,915 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.315573
2025-07-01 09:35:22,916 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:35:22,916 [DEBUG][       Thread-600364][   transport.py][1871] : EOF in transport thread
2025-07-01 09:35:22,917 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:35:22,917 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:35:22,917 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:35:22,917 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:35:22,918 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:34:59', tmtdew=9.76, humidity=50.48, cloud=0.0, wind=35.5, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:34:25.507', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:35:23,002 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:35:23,014 [DEBUG][       Thread-600367][   transport.py][1871] : starting thread (client mode): 0x8154f70
2025-07-01 09:35:23,014 [DEBUG][       Thread-600367][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:35:23,032 [DEBUG][       Thread-600367][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:35:23,032 [ INFO][       Thread-600367][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:35:23,039 [DEBUG][       Thread-600367][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:35:23,040 [DEBUG][       Thread-600367][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:35:23,040 [DEBUG][       Thread-600367][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:35:23,040 [DEBUG][       Thread-600367][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:35:23,040 [DEBUG][       Thread-600367][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:35:23,040 [DEBUG][       Thread-600367][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:35:23,040 [DEBUG][       Thread-600367][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:35:23,040 [DEBUG][       Thread-600367][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:35:23,040 [DEBUG][       Thread-600367][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:35:23,040 [DEBUG][       Thread-600367][   transport.py][1871] : client lang: <none>
2025-07-01 09:35:23,040 [DEBUG][       Thread-600367][   transport.py][1871] : server lang: <none>
2025-07-01 09:35:23,040 [DEBUG][       Thread-600367][   transport.py][1871] : kex follows: False
2025-07-01 09:35:23,040 [DEBUG][       Thread-600367][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:35:23,040 [DEBUG][       Thread-600367][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:35:23,040 [DEBUG][       Thread-600367][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:35:23,040 [DEBUG][       Thread-600367][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:35:23,040 [DEBUG][       Thread-600367][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:35:23,041 [DEBUG][       Thread-600367][   transport.py][1871] : Compression: none
2025-07-01 09:35:23,041 [DEBUG][       Thread-600367][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:35:23,097 [DEBUG][       Thread-600367][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:35:23,098 [DEBUG][       Thread-600367][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:35:23,098 [DEBUG][       Thread-600367][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:35:23,098 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:35:23,099 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:35:23,154 [DEBUG][       Thread-600367][   transport.py][1871] : userauth is OK
2025-07-01 09:35:23,154 [DEBUG][       Thread-600367][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:35:23,154 [DEBUG][       Thread-600367][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:35:23,154 [DEBUG][       Thread-600367][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:35:23,154 [DEBUG][       Thread-600367][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:35:23,173 [ INFO][       Thread-600367][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:35:23,173 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:35:23,174 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:35:24,231 [DEBUG][       Thread-600367][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:35:24,232 [DEBUG][       Thread-600367][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:35:24,280 [DEBUG][       Thread-600367][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:35:24,281 [DEBUG][       Thread-600367][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:35:24,290 [DEBUG][       Thread-600367][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:35:24,299 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:35:24,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-07-01 09:35:24,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-07-01 09:35:24,317 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:35:24,318 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:35:24,318 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:35:24,326 [DEBUG][       Thread-600367][   transport.py][1871] : EOF in transport thread
2025-07-01 09:35:29,585 [DEBUG][Thread-600369 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:35:34,328 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:35:34,329 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:35:34,329 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:35:34,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-07-01 09:35:34,812 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 35, 31), 9.86, 50.12, 0.0, 47.04, 9.24, 0, 0, 0, 2, 1, 0),)
2025-07-01 09:35:34,812 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:35:31
2025-07-01 09:35:34,895 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:35:34,900 [DEBUG][       Thread-600370][   transport.py][1871] : starting thread (client mode): 0x8104bb0
2025-07-01 09:35:34,900 [DEBUG][       Thread-600370][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:35:34,920 [DEBUG][       Thread-600370][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:35:34,920 [ INFO][       Thread-600370][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:35:34,924 [DEBUG][       Thread-600370][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:35:34,924 [DEBUG][       Thread-600370][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:35:34,924 [DEBUG][       Thread-600370][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:35:34,924 [DEBUG][       Thread-600370][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:35:34,924 [DEBUG][       Thread-600370][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:35:34,924 [DEBUG][       Thread-600370][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:35:34,924 [DEBUG][       Thread-600370][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:35:34,924 [DEBUG][       Thread-600370][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:35:34,924 [DEBUG][       Thread-600370][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:35:34,924 [DEBUG][       Thread-600370][   transport.py][1871] : client lang: <none>
2025-07-01 09:35:34,924 [DEBUG][       Thread-600370][   transport.py][1871] : server lang: <none>
2025-07-01 09:35:34,924 [DEBUG][       Thread-600370][   transport.py][1871] : kex follows: False
2025-07-01 09:35:34,924 [DEBUG][       Thread-600370][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:35:34,924 [DEBUG][       Thread-600370][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:35:34,925 [DEBUG][       Thread-600370][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:35:34,925 [DEBUG][       Thread-600370][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:35:34,925 [DEBUG][       Thread-600370][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:35:34,925 [DEBUG][       Thread-600370][   transport.py][1871] : Compression: none
2025-07-01 09:35:34,925 [DEBUG][       Thread-600370][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:35:34,942 [DEBUG][       Thread-600370][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:35:34,942 [DEBUG][       Thread-600370][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:35:34,943 [DEBUG][       Thread-600370][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:35:34,943 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:35:34,943 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:35:34,944 [DEBUG][       Thread-600370][   transport.py][1871] : userauth is OK
2025-07-01 09:35:34,969 [ INFO][       Thread-600370][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:35:34,969 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:35:35,616 [DEBUG][       Thread-600370][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:35:35,616 [DEBUG][       Thread-600370][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:35:35,657 [DEBUG][       Thread-600370][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:35:35,657 [DEBUG][       Thread-600370][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:35:35,661 [DEBUG][       Thread-600370][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:35:35,673 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:35:35,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:35:35,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:35:35,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:35:35,682 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:35:35,684 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:35:35,684 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:35:35,685 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:35:35,685 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.315920 -999.00   +9.10  38.71     54   +0.50 1 1 2 1 1   887    0 9.33 39.68 ----- 38.7 38.7 4.1 48.8 11.9 -23.2 11.1 -23.6 10.1 -22.8 11.0 -22.9
2025-07-01 09:35:35,685 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:35:35,685 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:35:35,685 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.315920
2025-07-01 09:35:35,686 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:35:35,686 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:35:35,686 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:35:35,686 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:35:35,686 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:35:35,686 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:35:31', tmtdew=9.86, humidity=50.12, cloud=0.0, wind=47.04, temperature=9.24, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=1, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:34:55.488', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:35:35,687 [DEBUG][       Thread-600370][   transport.py][1871] : EOF in transport thread
2025-07-01 09:35:35,770 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:35:35,782 [DEBUG][       Thread-600373][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 09:35:35,782 [DEBUG][       Thread-600373][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:35:35,798 [DEBUG][       Thread-600373][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:35:35,798 [ INFO][       Thread-600373][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:35:35,808 [DEBUG][       Thread-600373][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:35:35,808 [DEBUG][       Thread-600373][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:35:35,808 [DEBUG][       Thread-600373][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:35:35,808 [DEBUG][       Thread-600373][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:35:35,808 [DEBUG][       Thread-600373][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:35:35,808 [DEBUG][       Thread-600373][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:35:35,808 [DEBUG][       Thread-600373][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:35:35,808 [DEBUG][       Thread-600373][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:35:35,808 [DEBUG][       Thread-600373][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:35:35,808 [DEBUG][       Thread-600373][   transport.py][1871] : client lang: <none>
2025-07-01 09:35:35,808 [DEBUG][       Thread-600373][   transport.py][1871] : server lang: <none>
2025-07-01 09:35:35,808 [DEBUG][       Thread-600373][   transport.py][1871] : kex follows: False
2025-07-01 09:35:35,808 [DEBUG][       Thread-600373][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:35:35,808 [DEBUG][       Thread-600373][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:35:35,808 [DEBUG][       Thread-600373][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:35:35,808 [DEBUG][       Thread-600373][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:35:35,808 [DEBUG][       Thread-600373][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:35:35,808 [DEBUG][       Thread-600373][   transport.py][1871] : Compression: none
2025-07-01 09:35:35,808 [DEBUG][       Thread-600373][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:35:35,864 [DEBUG][       Thread-600373][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:35:35,864 [DEBUG][       Thread-600373][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:35:35,864 [DEBUG][       Thread-600373][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:35:35,864 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:35:35,864 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:35:35,922 [DEBUG][       Thread-600373][   transport.py][1871] : userauth is OK
2025-07-01 09:35:35,922 [DEBUG][       Thread-600373][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:35:35,922 [DEBUG][       Thread-600373][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:35:35,922 [DEBUG][       Thread-600373][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:35:35,923 [DEBUG][       Thread-600373][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:35:35,943 [ INFO][       Thread-600373][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:35:35,943 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:35:35,943 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:35:36,960 [DEBUG][       Thread-600373][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:35:36,961 [DEBUG][       Thread-600373][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:35:37,012 [DEBUG][       Thread-600373][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:35:37,012 [DEBUG][       Thread-600373][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:35:37,022 [DEBUG][       Thread-600373][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:35:37,031 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:35:37,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-07-01 09:35:37,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-07-01 09:35:37,266 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:35:37,266 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:35:37,267 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:35:37,275 [DEBUG][       Thread-600373][   transport.py][1871] : EOF in transport thread
2025-07-01 09:35:38,605 [DEBUG][Thread-600375 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:35:47,277 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:35:47,278 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:35:47,278 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:35:47,280 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:35:47,636 [DEBUG][Thread-600376 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:35:47,760 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 35, 31), 9.86, 50.12, 0.0, 47.04, 9.24, 0, 0, 0, 2, 1, 0),)
2025-07-01 09:35:47,760 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:35:31
2025-07-01 09:35:47,839 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:35:47,843 [DEBUG][       Thread-600377][   transport.py][1871] : starting thread (client mode): 0x818f9d0
2025-07-01 09:35:47,843 [DEBUG][       Thread-600377][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:35:47,857 [DEBUG][       Thread-600377][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:35:47,857 [ INFO][       Thread-600377][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:35:47,861 [DEBUG][       Thread-600377][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:35:47,861 [DEBUG][       Thread-600377][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:35:47,861 [DEBUG][       Thread-600377][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:35:47,861 [DEBUG][       Thread-600377][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:35:47,861 [DEBUG][       Thread-600377][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:35:47,861 [DEBUG][       Thread-600377][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:35:47,861 [DEBUG][       Thread-600377][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:35:47,861 [DEBUG][       Thread-600377][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:35:47,861 [DEBUG][       Thread-600377][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:35:47,861 [DEBUG][       Thread-600377][   transport.py][1871] : client lang: <none>
2025-07-01 09:35:47,861 [DEBUG][       Thread-600377][   transport.py][1871] : server lang: <none>
2025-07-01 09:35:47,861 [DEBUG][       Thread-600377][   transport.py][1871] : kex follows: False
2025-07-01 09:35:47,861 [DEBUG][       Thread-600377][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:35:47,861 [DEBUG][       Thread-600377][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:35:47,861 [DEBUG][       Thread-600377][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:35:47,861 [DEBUG][       Thread-600377][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:35:47,861 [DEBUG][       Thread-600377][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:35:47,861 [DEBUG][       Thread-600377][   transport.py][1871] : Compression: none
2025-07-01 09:35:47,861 [DEBUG][       Thread-600377][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:35:47,877 [DEBUG][       Thread-600377][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:35:47,878 [DEBUG][       Thread-600377][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:35:47,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:35:47,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:35:47,879 [DEBUG][       Thread-600377][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:35:47,879 [DEBUG][       Thread-600377][   transport.py][1871] : userauth is OK
2025-07-01 09:35:47,904 [ INFO][       Thread-600377][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:35:47,905 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:35:48,527 [DEBUG][       Thread-600377][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:35:48,528 [DEBUG][       Thread-600377][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:35:48,569 [DEBUG][       Thread-600377][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:35:48,569 [DEBUG][       Thread-600377][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:35:48,572 [DEBUG][       Thread-600377][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:35:48,586 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:35:48,587 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:35:48,589 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:35:48,590 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:35:48,595 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:35:48,597 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:35:48,597 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:35:48,598 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:35:48,598 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.315920 -999.00   +9.10  38.71     54   +0.50 1 1 2 1 1   887    0 9.33 39.68 ----- 38.7 38.7 4.1 48.8 11.9 -23.2 11.1 -23.6 10.1 -22.8 11.0 -22.9
2025-07-01 09:35:48,598 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:35:48,598 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:35:48,598 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.315920
2025-07-01 09:35:48,598 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:35:48,599 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:35:48,599 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:35:48,599 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:35:48,599 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:35:48,599 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:35:31', tmtdew=9.86, humidity=50.12, cloud=0.0, wind=47.04, temperature=9.24, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=1, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:34:55.488', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:35:48,599 [DEBUG][       Thread-600377][   transport.py][1871] : EOF in transport thread
2025-07-01 09:35:48,679 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:35:52,173 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:35:52,174 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:35:56,656 [DEBUG][Thread-600380 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:36:05,676 [DEBUG][Thread-600381 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:36:14,699 [DEBUG][Thread-600382 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:36:20,839 [DEBUG][Thread-600383 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:36:23,726 [DEBUG][Thread-600384 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:36:32,747 [DEBUG][Thread-600385 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:36:41,766 [DEBUG][Thread-600386 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:36:50,788 [DEBUG][Thread-600387 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:36:52,311 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:36:52,312 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:36:59,811 [DEBUG][Thread-600388 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:37:08,828 [DEBUG][Thread-600389 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:37:17,850 [DEBUG][Thread-600390 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:37:20,892 [DEBUG][Thread-600391 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:37:26,877 [DEBUG][Thread-600392 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:37:35,899 [DEBUG][Thread-600393 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:37:44,921 [DEBUG][Thread-600394 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:37:52,451 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:37:52,452 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:37:53,942 [DEBUG][Thread-600395 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:37:58,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-07-01 09:38:02,964 [DEBUG][Thread-600396 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:38:08,299 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:38:08,299 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:38:08,299 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:38: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-07-01 09:38:08,791 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 37, 38), 9.88, 50.27, 0.0, 34.67, 9.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:38:08,791 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:37:38
2025-07-01 09:38:08,875 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:38:08,879 [DEBUG][       Thread-600397][   transport.py][1871] : starting thread (client mode): 0x81706a0
2025-07-01 09:38:08,879 [DEBUG][       Thread-600397][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:38:08,900 [DEBUG][       Thread-600397][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:38:08,900 [ INFO][       Thread-600397][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:38:08,904 [DEBUG][       Thread-600397][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:38:08,904 [DEBUG][       Thread-600397][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:38:08,904 [DEBUG][       Thread-600397][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:38:08,904 [DEBUG][       Thread-600397][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:38:08,904 [DEBUG][       Thread-600397][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:38:08,904 [DEBUG][       Thread-600397][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:38:08,904 [DEBUG][       Thread-600397][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:38:08,904 [DEBUG][       Thread-600397][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:38:08,904 [DEBUG][       Thread-600397][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:38:08,904 [DEBUG][       Thread-600397][   transport.py][1871] : client lang: <none>
2025-07-01 09:38:08,904 [DEBUG][       Thread-600397][   transport.py][1871] : server lang: <none>
2025-07-01 09:38:08,904 [DEBUG][       Thread-600397][   transport.py][1871] : kex follows: False
2025-07-01 09:38:08,904 [DEBUG][       Thread-600397][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:38:08,904 [DEBUG][       Thread-600397][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:38:08,904 [DEBUG][       Thread-600397][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:38:08,904 [DEBUG][       Thread-600397][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:38:08,904 [DEBUG][       Thread-600397][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:38:08,904 [DEBUG][       Thread-600397][   transport.py][1871] : Compression: none
2025-07-01 09:38:08,904 [DEBUG][       Thread-600397][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:38:08,920 [DEBUG][       Thread-600397][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:38:08,921 [DEBUG][       Thread-600397][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:38:08,921 [DEBUG][       Thread-600397][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:38:08,922 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:38:08,922 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:38:08,923 [DEBUG][       Thread-600397][   transport.py][1871] : userauth is OK
2025-07-01 09:38:08,936 [ INFO][       Thread-600397][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:38:08,937 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:38:09,541 [DEBUG][       Thread-600397][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:38:09,541 [DEBUG][       Thread-600397][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:38:09,585 [DEBUG][       Thread-600397][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:38:09,585 [DEBUG][       Thread-600397][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:38:09,588 [DEBUG][       Thread-600397][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:38:09,599 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:38:09,599 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:38:09,600 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:38:09,602 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:38:09,606 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:38:09,607 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:38:09,608 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:38:09,608 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:38:09,608 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.317656 -999.00   +9.30  31.26     54   +0.70 1 2 2 1 1   887    0 9.30 39.26 ----- 31.3 31.3 32.0 48.7 12.3 -23.2 11.3 -23.4 10.2 -22.5 11.2 -21.5
2025-07-01 09:38:09,608 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:38:09,608 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:38:09,608 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.317656
2025-07-01 09:38:09,609 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:38:09,609 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:38:09,609 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:38:09,610 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:38:09,610 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 09:38:09,610 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:37:38', tmtdew=9.88, humidity=50.27, cloud=0.0, wind=34.67, temperature=9.32, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:37:25.478', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:38:09,611 [DEBUG][       Thread-600397][   transport.py][1871] : EOF in transport thread
2025-07-01 09:38:09,694 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:38:09,709 [DEBUG][       Thread-600400][   transport.py][1871] : starting thread (client mode): 0x818de10
2025-07-01 09:38:09,709 [DEBUG][       Thread-600400][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:38:09,723 [DEBUG][       Thread-600400][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:38:09,724 [ INFO][       Thread-600400][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:38:09,731 [DEBUG][       Thread-600400][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:38:09,731 [DEBUG][       Thread-600400][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:38:09,731 [DEBUG][       Thread-600400][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:38:09,731 [DEBUG][       Thread-600400][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:38:09,731 [DEBUG][       Thread-600400][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:38:09,732 [DEBUG][       Thread-600400][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:38:09,732 [DEBUG][       Thread-600400][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:38:09,732 [DEBUG][       Thread-600400][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:38:09,732 [DEBUG][       Thread-600400][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:38:09,732 [DEBUG][       Thread-600400][   transport.py][1871] : client lang: <none>
2025-07-01 09:38:09,732 [DEBUG][       Thread-600400][   transport.py][1871] : server lang: <none>
2025-07-01 09:38:09,732 [DEBUG][       Thread-600400][   transport.py][1871] : kex follows: False
2025-07-01 09:38:09,732 [DEBUG][       Thread-600400][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:38:09,732 [DEBUG][       Thread-600400][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:38:09,732 [DEBUG][       Thread-600400][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:38:09,732 [DEBUG][       Thread-600400][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:38:09,732 [DEBUG][       Thread-600400][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:38:09,732 [DEBUG][       Thread-600400][   transport.py][1871] : Compression: none
2025-07-01 09:38:09,732 [DEBUG][       Thread-600400][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:38:09,790 [DEBUG][       Thread-600400][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:38:09,790 [DEBUG][       Thread-600400][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:38:09,791 [DEBUG][       Thread-600400][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:38:09,791 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:38:09,792 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:38:09,846 [DEBUG][       Thread-600400][   transport.py][1871] : userauth is OK
2025-07-01 09:38:09,846 [DEBUG][       Thread-600400][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:38:09,846 [DEBUG][       Thread-600400][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:38:09,846 [DEBUG][       Thread-600400][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:38:09,846 [DEBUG][       Thread-600400][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:38:09,865 [ INFO][       Thread-600400][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:38:09,865 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:38:09,865 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:38:10,849 [DEBUG][       Thread-600400][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:38:10,849 [DEBUG][       Thread-600400][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:38:10,899 [DEBUG][       Thread-600400][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:38:10,899 [DEBUG][       Thread-600400][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:38:10,908 [DEBUG][       Thread-600400][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:38:10,916 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:38:10,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-07-01 09:38:10,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-07-01 09:38:10,933 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:38:10,933 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:38:10,933 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:38:10,942 [DEBUG][       Thread-600400][   transport.py][1871] : EOF in transport thread
2025-07-01 09:38:11,982 [DEBUG][Thread-600402 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:38:20,940 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:38:20,940 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:38:20,940 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:38:20,940 [DEBUG][Thread-600403 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:38:20,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-07-01 09:38:21,016 [DEBUG][Thread-600404 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:38:21,430 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 38, 10), 9.93, 49.87, 0.0, 32.18, 9.34, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:38:21,430 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:38:10
2025-07-01 09:38:21,515 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:38:21,519 [DEBUG][       Thread-600405][   transport.py][1871] : starting thread (client mode): 0x81a6980
2025-07-01 09:38:21,519 [DEBUG][       Thread-600405][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:38:21,540 [DEBUG][       Thread-600405][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:38:21,540 [ INFO][       Thread-600405][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:38:21,544 [DEBUG][       Thread-600405][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:38:21,544 [DEBUG][       Thread-600405][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:38:21,544 [DEBUG][       Thread-600405][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:38:21,544 [DEBUG][       Thread-600405][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:38:21,544 [DEBUG][       Thread-600405][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:38:21,544 [DEBUG][       Thread-600405][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:38:21,544 [DEBUG][       Thread-600405][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:38:21,544 [DEBUG][       Thread-600405][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:38:21,544 [DEBUG][       Thread-600405][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:38:21,544 [DEBUG][       Thread-600405][   transport.py][1871] : client lang: <none>
2025-07-01 09:38:21,544 [DEBUG][       Thread-600405][   transport.py][1871] : server lang: <none>
2025-07-01 09:38:21,544 [DEBUG][       Thread-600405][   transport.py][1871] : kex follows: False
2025-07-01 09:38:21,544 [DEBUG][       Thread-600405][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:38:21,544 [DEBUG][       Thread-600405][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:38:21,544 [DEBUG][       Thread-600405][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:38:21,544 [DEBUG][       Thread-600405][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:38:21,544 [DEBUG][       Thread-600405][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:38:21,544 [DEBUG][       Thread-600405][   transport.py][1871] : Compression: none
2025-07-01 09:38:21,544 [DEBUG][       Thread-600405][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:38:21,561 [DEBUG][       Thread-600405][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:38:21,561 [DEBUG][       Thread-600405][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:38:21,562 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:38:21,562 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:38:21,562 [DEBUG][       Thread-600405][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:38:21,563 [DEBUG][       Thread-600405][   transport.py][1871] : userauth is OK
2025-07-01 09:38:21,576 [ INFO][       Thread-600405][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:38:21,577 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:38:22,237 [DEBUG][       Thread-600405][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:38:22,238 [DEBUG][       Thread-600405][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:38:22,281 [DEBUG][       Thread-600405][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:38:22,281 [DEBUG][       Thread-600405][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:38:22,284 [DEBUG][       Thread-600405][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:38:22,296 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:38:22,297 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:38:22,298 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:38:22,300 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:38:22,305 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:38:22,307 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:38:22,307 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:38:22,307 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:38:22,307 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.318003 -999.00   +9.30  36.02     54   +0.70 1 1 2 1 1   887    0 9.26 38.81 ----- 36.0 36.0 15.4 45.6 12.3 -23.9 11.3 -23.3 10.3 -22.8 11.3 -21.7
2025-07-01 09:38:22,308 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:38:22,308 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:38:22,308 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.318003
2025-07-01 09:38:22,308 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:38:22,309 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:38:22,309 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:38:22,309 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:38:22,309 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:38:22,309 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:38:10', tmtdew=9.93, humidity=49.87, cloud=0.0, wind=32.18, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:37:55.459', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:38:22,310 [DEBUG][       Thread-600405][   transport.py][1871] : EOF in transport thread
2025-07-01 09:38:22,392 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:38:22,405 [DEBUG][       Thread-600408][   transport.py][1871] : starting thread (client mode): 0x81047c0
2025-07-01 09:38:22,406 [DEBUG][       Thread-600408][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:38:22,427 [DEBUG][       Thread-600408][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:38:22,427 [ INFO][       Thread-600408][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:38:22,439 [DEBUG][       Thread-600408][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:38:22,439 [DEBUG][       Thread-600408][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:38:22,439 [DEBUG][       Thread-600408][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:38:22,439 [DEBUG][       Thread-600408][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:38:22,439 [DEBUG][       Thread-600408][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:38:22,440 [DEBUG][       Thread-600408][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:38:22,440 [DEBUG][       Thread-600408][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:38:22,440 [DEBUG][       Thread-600408][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:38:22,440 [DEBUG][       Thread-600408][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:38:22,440 [DEBUG][       Thread-600408][   transport.py][1871] : client lang: <none>
2025-07-01 09:38:22,440 [DEBUG][       Thread-600408][   transport.py][1871] : server lang: <none>
2025-07-01 09:38:22,440 [DEBUG][       Thread-600408][   transport.py][1871] : kex follows: False
2025-07-01 09:38:22,440 [DEBUG][       Thread-600408][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:38:22,440 [DEBUG][       Thread-600408][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:38:22,440 [DEBUG][       Thread-600408][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:38:22,440 [DEBUG][       Thread-600408][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:38:22,440 [DEBUG][       Thread-600408][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:38:22,440 [DEBUG][       Thread-600408][   transport.py][1871] : Compression: none
2025-07-01 09:38:22,440 [DEBUG][       Thread-600408][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:38:22,505 [DEBUG][       Thread-600408][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:38:22,505 [DEBUG][       Thread-600408][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:38:22,505 [DEBUG][       Thread-600408][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:38:22,505 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:38:22,505 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:38:22,583 [DEBUG][       Thread-600408][   transport.py][1871] : userauth is OK
2025-07-01 09:38:22,584 [DEBUG][       Thread-600408][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:38:22,584 [DEBUG][       Thread-600408][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:38:22,584 [DEBUG][       Thread-600408][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:38:22,584 [DEBUG][       Thread-600408][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:38:22,607 [ INFO][       Thread-600408][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:38:22,607 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:38:22,608 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:38:23,564 [DEBUG][       Thread-600408][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:38:23,564 [DEBUG][       Thread-600408][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:38:23,611 [DEBUG][       Thread-600408][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:38:23,612 [DEBUG][       Thread-600408][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:38:23,620 [DEBUG][       Thread-600408][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:38:23,628 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:38:23,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-07-01 09:38:23,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-07-01 09:38:23,644 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:38:23,644 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:38:23,644 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:38:23,652 [DEBUG][       Thread-600408][   transport.py][1871] : EOF in transport thread
2025-07-01 09:38:30,037 [DEBUG][Thread-600410 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:38:33,654 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:38:33,655 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:38:33,655 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:38:33,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-07-01 09:38:34,158 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 38, 10), 9.93, 49.87, 0.0, 32.18, 9.34, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:38:34,158 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:38:10
2025-07-01 09:38:34,242 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:38:34,247 [DEBUG][       Thread-600411][   transport.py][1871] : starting thread (client mode): 0x8104760
2025-07-01 09:38:34,247 [DEBUG][       Thread-600411][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:38:34,266 [DEBUG][       Thread-600411][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:38:34,266 [ INFO][       Thread-600411][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:38:34,269 [DEBUG][       Thread-600411][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:38:34,270 [DEBUG][       Thread-600411][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:38:34,270 [DEBUG][       Thread-600411][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:38:34,270 [DEBUG][       Thread-600411][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:38:34,270 [DEBUG][       Thread-600411][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:38:34,270 [DEBUG][       Thread-600411][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:38:34,270 [DEBUG][       Thread-600411][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:38:34,270 [DEBUG][       Thread-600411][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:38:34,270 [DEBUG][       Thread-600411][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:38:34,270 [DEBUG][       Thread-600411][   transport.py][1871] : client lang: <none>
2025-07-01 09:38:34,270 [DEBUG][       Thread-600411][   transport.py][1871] : server lang: <none>
2025-07-01 09:38:34,270 [DEBUG][       Thread-600411][   transport.py][1871] : kex follows: False
2025-07-01 09:38:34,270 [DEBUG][       Thread-600411][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:38:34,270 [DEBUG][       Thread-600411][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:38:34,270 [DEBUG][       Thread-600411][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:38:34,270 [DEBUG][       Thread-600411][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:38:34,270 [DEBUG][       Thread-600411][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:38:34,270 [DEBUG][       Thread-600411][   transport.py][1871] : Compression: none
2025-07-01 09:38:34,270 [DEBUG][       Thread-600411][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:38:34,285 [DEBUG][       Thread-600411][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:38:34,286 [DEBUG][       Thread-600411][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:38:34,286 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:38:34,287 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:38:34,287 [DEBUG][       Thread-600411][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:38:34,288 [DEBUG][       Thread-600411][   transport.py][1871] : userauth is OK
2025-07-01 09:38:34,313 [ INFO][       Thread-600411][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:38:34,313 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:38:34,984 [DEBUG][       Thread-600411][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:38:34,985 [DEBUG][       Thread-600411][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:38:35,029 [DEBUG][       Thread-600411][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:38:35,029 [DEBUG][       Thread-600411][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:38:35,032 [DEBUG][       Thread-600411][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:38:35,046 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:38:35,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:38:35,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:38:35,049 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:38:35,056 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:38:35,057 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:38:35,058 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:38:35,058 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:38:35,058 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.318003 -999.00   +9.30  36.02     54   +0.70 1 1 2 1 1   887    0 9.26 38.81 ----- 36.0 36.0 15.4 45.6 12.3 -23.9 11.3 -23.3 10.3 -22.8 11.3 -21.7
2025-07-01 09:38:35,058 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:38:35,058 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:38:35,059 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.318003
2025-07-01 09:38:35,059 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:38:35,060 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:38:35,060 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:38:35,060 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:38:35,060 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:38:35,060 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:38:10', tmtdew=9.93, humidity=49.87, cloud=0.0, wind=32.18, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:37:55.459', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:38:35,060 [DEBUG][       Thread-600411][   transport.py][1871] : EOF in transport thread
2025-07-01 09:38:35,143 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:38:35,156 [DEBUG][       Thread-600414][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 09:38:35,156 [DEBUG][       Thread-600414][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:38:35,172 [DEBUG][       Thread-600414][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:38:35,172 [ INFO][       Thread-600414][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:38:35,180 [DEBUG][       Thread-600414][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:38:35,180 [DEBUG][       Thread-600414][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:38:35,181 [DEBUG][       Thread-600414][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:38:35,181 [DEBUG][       Thread-600414][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:38:35,181 [DEBUG][       Thread-600414][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:38:35,181 [DEBUG][       Thread-600414][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:38:35,181 [DEBUG][       Thread-600414][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:38:35,181 [DEBUG][       Thread-600414][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:38:35,181 [DEBUG][       Thread-600414][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:38:35,181 [DEBUG][       Thread-600414][   transport.py][1871] : client lang: <none>
2025-07-01 09:38:35,181 [DEBUG][       Thread-600414][   transport.py][1871] : server lang: <none>
2025-07-01 09:38:35,181 [DEBUG][       Thread-600414][   transport.py][1871] : kex follows: False
2025-07-01 09:38:35,181 [DEBUG][       Thread-600414][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:38:35,181 [DEBUG][       Thread-600414][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:38:35,181 [DEBUG][       Thread-600414][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:38:35,181 [DEBUG][       Thread-600414][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:38:35,181 [DEBUG][       Thread-600414][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:38:35,181 [DEBUG][       Thread-600414][   transport.py][1871] : Compression: none
2025-07-01 09:38:35,181 [DEBUG][       Thread-600414][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:38:35,243 [DEBUG][       Thread-600414][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:38:35,243 [DEBUG][       Thread-600414][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:38:35,244 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:38:35,244 [DEBUG][       Thread-600414][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:38:35,245 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:38:35,301 [DEBUG][       Thread-600414][   transport.py][1871] : userauth is OK
2025-07-01 09:38:35,302 [DEBUG][       Thread-600414][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:38:35,302 [DEBUG][       Thread-600414][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:38:35,302 [DEBUG][       Thread-600414][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:38:35,302 [DEBUG][       Thread-600414][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:38:35,321 [ INFO][       Thread-600414][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:38:35,322 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:38:35,322 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:38:36,321 [DEBUG][       Thread-600414][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:38:36,321 [DEBUG][       Thread-600414][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:38:36,372 [DEBUG][       Thread-600414][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:38:36,372 [DEBUG][       Thread-600414][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:38:36,381 [DEBUG][       Thread-600414][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:38:36,389 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:38:36,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-07-01 09:38:36,397 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 09:38:36,405 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:38:36,405 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:38:36,405 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:38:36,412 [DEBUG][       Thread-600414][   transport.py][1871] : EOF in transport thread
2025-07-01 09:38:39,072 [DEBUG][Thread-600416 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:38:46,415 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:38:46,416 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:38:46,416 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:38:46,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-07-01 09:38:46,911 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 38, 42), 9.95, 49.81, 0.0, 36.43, 9.34, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:38:46,911 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:38:42
2025-07-01 09:38:46,996 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:38:47,000 [DEBUG][       Thread-600417][   transport.py][1871] : starting thread (client mode): 0x818faf0
2025-07-01 09:38:47,000 [DEBUG][       Thread-600417][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:38:47,018 [DEBUG][       Thread-600417][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:38:47,018 [ INFO][       Thread-600417][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:38:47,021 [DEBUG][       Thread-600417][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:38:47,021 [DEBUG][       Thread-600417][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:38:47,021 [DEBUG][       Thread-600417][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:38:47,021 [DEBUG][       Thread-600417][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:38:47,021 [DEBUG][       Thread-600417][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:38:47,021 [DEBUG][       Thread-600417][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:38:47,021 [DEBUG][       Thread-600417][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:38:47,021 [DEBUG][       Thread-600417][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:38:47,021 [DEBUG][       Thread-600417][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:38:47,021 [DEBUG][       Thread-600417][   transport.py][1871] : client lang: <none>
2025-07-01 09:38:47,021 [DEBUG][       Thread-600417][   transport.py][1871] : server lang: <none>
2025-07-01 09:38:47,021 [DEBUG][       Thread-600417][   transport.py][1871] : kex follows: False
2025-07-01 09:38:47,021 [DEBUG][       Thread-600417][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:38:47,021 [DEBUG][       Thread-600417][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:38:47,021 [DEBUG][       Thread-600417][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:38:47,021 [DEBUG][       Thread-600417][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:38:47,021 [DEBUG][       Thread-600417][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:38:47,021 [DEBUG][       Thread-600417][   transport.py][1871] : Compression: none
2025-07-01 09:38:47,021 [DEBUG][       Thread-600417][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:38:47,038 [DEBUG][       Thread-600417][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:38:47,038 [DEBUG][       Thread-600417][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:38:47,039 [DEBUG][       Thread-600417][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:38:47,039 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:38:47,039 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:38:47,040 [DEBUG][       Thread-600417][   transport.py][1871] : userauth is OK
2025-07-01 09:38:47,066 [ INFO][       Thread-600417][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:38:47,067 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:38:47,713 [DEBUG][       Thread-600417][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:38:47,713 [DEBUG][       Thread-600417][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:38:47,757 [DEBUG][       Thread-600417][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:38:47,757 [DEBUG][       Thread-600417][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:38:47,761 [DEBUG][       Thread-600417][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:38:47,772 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:38:47,772 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:38:47,774 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:38:47,776 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:38:47,781 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:38:47,783 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:38:47,783 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:38:47,784 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:38:47,784 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.318003 -999.00   +9.30  36.02     54   +0.70 1 1 2 1 1   887    0 9.26 38.81 ----- 36.0 36.0 15.4 45.6 12.3 -23.9 11.3 -23.3 10.3 -22.8 11.3 -21.7
2025-07-01 09:38:47,784 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:38:47,784 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:38:47,784 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.318003
2025-07-01 09:38:47,784 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:38:47,785 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:38:47,785 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:38:47,785 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:38:47,785 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:38:47,785 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:38:42', tmtdew=9.95, humidity=49.81, cloud=0.0, wind=36.43, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:37:55.459', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:38:47,786 [DEBUG][       Thread-600417][   transport.py][1871] : EOF in transport thread
2025-07-01 09:38:47,869 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:38:47,879 [DEBUG][       Thread-600420][   transport.py][1871] : starting thread (client mode): 0x81e7910
2025-07-01 09:38:47,880 [DEBUG][       Thread-600420][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:38:47,895 [DEBUG][       Thread-600420][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:38:47,895 [ INFO][       Thread-600420][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:38:47,903 [DEBUG][       Thread-600420][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:38:47,903 [DEBUG][       Thread-600420][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:38:47,903 [DEBUG][       Thread-600420][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:38:47,903 [DEBUG][       Thread-600420][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:38:47,903 [DEBUG][       Thread-600420][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:38:47,903 [DEBUG][       Thread-600420][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:38:47,903 [DEBUG][       Thread-600420][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:38:47,903 [DEBUG][       Thread-600420][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:38:47,903 [DEBUG][       Thread-600420][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:38:47,903 [DEBUG][       Thread-600420][   transport.py][1871] : client lang: <none>
2025-07-01 09:38:47,903 [DEBUG][       Thread-600420][   transport.py][1871] : server lang: <none>
2025-07-01 09:38:47,903 [DEBUG][       Thread-600420][   transport.py][1871] : kex follows: False
2025-07-01 09:38:47,903 [DEBUG][       Thread-600420][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:38:47,903 [DEBUG][       Thread-600420][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:38:47,904 [DEBUG][       Thread-600420][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:38:47,904 [DEBUG][       Thread-600420][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:38:47,904 [DEBUG][       Thread-600420][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:38:47,904 [DEBUG][       Thread-600420][   transport.py][1871] : Compression: none
2025-07-01 09:38:47,904 [DEBUG][       Thread-600420][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:38:47,961 [DEBUG][       Thread-600420][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:38:47,962 [DEBUG][       Thread-600420][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:38:47,962 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:38:47,963 [DEBUG][       Thread-600420][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:38:47,964 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:38:48,017 [DEBUG][       Thread-600420][   transport.py][1871] : userauth is OK
2025-07-01 09:38:48,018 [DEBUG][       Thread-600420][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:38:48,018 [DEBUG][       Thread-600420][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:38:48,018 [DEBUG][       Thread-600420][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:38:48,018 [DEBUG][       Thread-600420][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:38:48,036 [ INFO][       Thread-600420][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:38:48,037 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:38:48,037 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:38:48,092 [DEBUG][Thread-600422 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:38:49,053 [DEBUG][       Thread-600420][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:38:49,054 [DEBUG][       Thread-600420][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:38:49,107 [DEBUG][       Thread-600420][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:38:49,107 [DEBUG][       Thread-600420][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:38:49,117 [DEBUG][       Thread-600420][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:38:49,127 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:38:49,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-07-01 09:38:49,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-07-01 09:38:49,145 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:38:49,145 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:38:49,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:38:49,154 [DEBUG][       Thread-600420][   transport.py][1871] : EOF in transport thread
2025-07-01 09:38:52,590 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:38:52,591 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:38:57,137 [DEBUG][Thread-600423 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:38:59,156 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:38:59,156 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:38:59,156 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:38:59,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-07-01 09:38:59,649 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 38, 42), 9.95, 49.81, 0.0, 36.43, 9.34, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:38:59,649 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:38:42
2025-07-01 09:38:59,733 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:38:59,737 [DEBUG][       Thread-600424][   transport.py][1871] : starting thread (client mode): 0x818efe0
2025-07-01 09:38:59,737 [DEBUG][       Thread-600424][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:38:59,754 [DEBUG][       Thread-600424][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:38:59,754 [ INFO][       Thread-600424][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:38:59,757 [DEBUG][       Thread-600424][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:38:59,757 [DEBUG][       Thread-600424][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:38:59,757 [DEBUG][       Thread-600424][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:38:59,757 [DEBUG][       Thread-600424][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:38:59,757 [DEBUG][       Thread-600424][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:38:59,757 [DEBUG][       Thread-600424][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:38:59,757 [DEBUG][       Thread-600424][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:38:59,757 [DEBUG][       Thread-600424][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:38:59,757 [DEBUG][       Thread-600424][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:38:59,758 [DEBUG][       Thread-600424][   transport.py][1871] : client lang: <none>
2025-07-01 09:38:59,758 [DEBUG][       Thread-600424][   transport.py][1871] : server lang: <none>
2025-07-01 09:38:59,758 [DEBUG][       Thread-600424][   transport.py][1871] : kex follows: False
2025-07-01 09:38:59,758 [DEBUG][       Thread-600424][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:38:59,758 [DEBUG][       Thread-600424][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:38:59,758 [DEBUG][       Thread-600424][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:38:59,758 [DEBUG][       Thread-600424][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:38:59,758 [DEBUG][       Thread-600424][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:38:59,758 [DEBUG][       Thread-600424][   transport.py][1871] : Compression: none
2025-07-01 09:38:59,758 [DEBUG][       Thread-600424][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:38:59,768 [DEBUG][       Thread-600424][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:38:59,768 [DEBUG][       Thread-600424][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:38:59,769 [DEBUG][       Thread-600424][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:38:59,769 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:38:59,769 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:38:59,770 [DEBUG][       Thread-600424][   transport.py][1871] : userauth is OK
2025-07-01 09:38:59,794 [ INFO][       Thread-600424][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:38:59,795 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:39:00,457 [DEBUG][       Thread-600424][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:39:00,457 [DEBUG][       Thread-600424][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:39:00,501 [DEBUG][       Thread-600424][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:39:00,501 [DEBUG][       Thread-600424][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:39:00,504 [DEBUG][       Thread-600424][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:39:00,516 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:39:00,517 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:39:00,519 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:39:00,520 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:39:00,526 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:39:00,528 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:39:00,528 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:39:00,528 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:39:00,529 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.318350 -999.00   +9.30  46.48     55   +0.70 1 1 2 1 1   887    0 9.47 41.70 ----- 46.5 46.5 13.8 50.5 12.3 -23.9 11.3 -23.9 10.3 -22.9 11.3 -22.4
2025-07-01 09:39:00,529 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:39:00,529 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:39:00,529 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.318350
2025-07-01 09:39:00,529 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:39:00,530 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:39:00,530 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:39:00,530 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:39:00,530 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:39:00,530 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:38:42', tmtdew=9.95, humidity=49.81, cloud=0.0, wind=36.43, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:38:25.440', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:39:00,530 [DEBUG][       Thread-600424][   transport.py][1871] : EOF in transport thread
2025-07-01 09:39:00,614 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:39:00,625 [DEBUG][       Thread-600427][   transport.py][1871] : starting thread (client mode): 0x81a5000
2025-07-01 09:39:00,625 [DEBUG][       Thread-600427][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:39:00,641 [DEBUG][       Thread-600427][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:39:00,641 [ INFO][       Thread-600427][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:39:00,649 [DEBUG][       Thread-600427][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:39:00,649 [DEBUG][       Thread-600427][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:39:00,649 [DEBUG][       Thread-600427][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:39:00,649 [DEBUG][       Thread-600427][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:39:00,649 [DEBUG][       Thread-600427][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:39:00,649 [DEBUG][       Thread-600427][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:39:00,649 [DEBUG][       Thread-600427][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:39:00,649 [DEBUG][       Thread-600427][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:39:00,649 [DEBUG][       Thread-600427][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:39:00,649 [DEBUG][       Thread-600427][   transport.py][1871] : client lang: <none>
2025-07-01 09:39:00,649 [DEBUG][       Thread-600427][   transport.py][1871] : server lang: <none>
2025-07-01 09:39:00,649 [DEBUG][       Thread-600427][   transport.py][1871] : kex follows: False
2025-07-01 09:39:00,649 [DEBUG][       Thread-600427][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:39:00,649 [DEBUG][       Thread-600427][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:39:00,649 [DEBUG][       Thread-600427][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:39:00,650 [DEBUG][       Thread-600427][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:39:00,650 [DEBUG][       Thread-600427][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:39:00,650 [DEBUG][       Thread-600427][   transport.py][1871] : Compression: none
2025-07-01 09:39:00,650 [DEBUG][       Thread-600427][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:39:00,707 [DEBUG][       Thread-600427][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:39:00,707 [DEBUG][       Thread-600427][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:39:00,708 [DEBUG][       Thread-600427][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:39:00,708 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:39:00,709 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:39:00,766 [DEBUG][       Thread-600427][   transport.py][1871] : userauth is OK
2025-07-01 09:39:00,766 [DEBUG][       Thread-600427][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:39:00,766 [DEBUG][       Thread-600427][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:39:00,766 [DEBUG][       Thread-600427][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:39:00,766 [DEBUG][       Thread-600427][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:39:00,789 [ INFO][       Thread-600427][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:39:00,789 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:39:00,790 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:39:01,806 [DEBUG][       Thread-600427][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:39:01,806 [DEBUG][       Thread-600427][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:39:01,856 [DEBUG][       Thread-600427][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:39:01,856 [DEBUG][       Thread-600427][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:39:01,864 [DEBUG][       Thread-600427][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:39:01,872 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:39:01,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')
2025-07-01 09:39:01,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-07-01 09:39:01,893 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:39:01,893 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:39:01,893 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:39:01,901 [DEBUG][       Thread-600427][   transport.py][1871] : EOF in transport thread
2025-07-01 09:39:06,154 [DEBUG][Thread-600429 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:39:11,903 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:39:11,903 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:39:11,904 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:39:11,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-07-01 09:39:12,399 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 38, 42), 9.95, 49.81, 0.0, 36.43, 9.34, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:39:12,399 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:38:42
2025-07-01 09:39:12,484 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:39:12,488 [DEBUG][       Thread-600430][   transport.py][1871] : starting thread (client mode): 0x818f4f0
2025-07-01 09:39:12,493 [DEBUG][       Thread-600430][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:39:12,508 [DEBUG][       Thread-600430][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:39:12,508 [ INFO][       Thread-600430][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:39:12,509 [DEBUG][       Thread-600430][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:39:12,509 [DEBUG][       Thread-600430][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:39:12,509 [DEBUG][       Thread-600430][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:39:12,510 [DEBUG][       Thread-600430][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:39:12,510 [DEBUG][       Thread-600430][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:39:12,510 [DEBUG][       Thread-600430][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:39:12,510 [DEBUG][       Thread-600430][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:39:12,510 [DEBUG][       Thread-600430][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:39:12,510 [DEBUG][       Thread-600430][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:39:12,510 [DEBUG][       Thread-600430][   transport.py][1871] : client lang: <none>
2025-07-01 09:39:12,510 [DEBUG][       Thread-600430][   transport.py][1871] : server lang: <none>
2025-07-01 09:39:12,510 [DEBUG][       Thread-600430][   transport.py][1871] : kex follows: False
2025-07-01 09:39:12,510 [DEBUG][       Thread-600430][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:39:12,510 [DEBUG][       Thread-600430][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:39:12,510 [DEBUG][       Thread-600430][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:39:12,510 [DEBUG][       Thread-600430][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:39:12,510 [DEBUG][       Thread-600430][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:39:12,510 [DEBUG][       Thread-600430][   transport.py][1871] : Compression: none
2025-07-01 09:39:12,510 [DEBUG][       Thread-600430][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:39:12,518 [DEBUG][       Thread-600430][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:39:12,518 [DEBUG][       Thread-600430][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:39:12,518 [DEBUG][       Thread-600430][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:39:12,519 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:39:12,519 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:39:12,519 [DEBUG][       Thread-600430][   transport.py][1871] : userauth is OK
2025-07-01 09:39:12,543 [ INFO][       Thread-600430][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:39:12,544 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:39:13,211 [DEBUG][       Thread-600430][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:39:13,212 [DEBUG][       Thread-600430][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:39:13,253 [DEBUG][       Thread-600430][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:39:13,253 [DEBUG][       Thread-600430][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:39:13,257 [DEBUG][       Thread-600430][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:39:13,269 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:39:13,269 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:39:13,271 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:39:13,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:39:13,280 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:39:13,282 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:39:13,282 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:39:13,283 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:39:13,283 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.318350 -999.00   +9.30  46.48     55   +0.70 1 1 2 1 1   887    0 9.47 41.70 ----- 46.5 46.5 13.8 50.5 12.3 -23.9 11.3 -23.9 10.3 -22.9 11.3 -22.4
2025-07-01 09:39:13,283 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:39:13,283 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:39:13,283 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.318350
2025-07-01 09:39:13,283 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:39:13,284 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:39:13,284 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:39:13,284 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:39:13,284 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:39:13,284 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:38:42', tmtdew=9.95, humidity=49.81, cloud=0.0, wind=36.43, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:38:25.440', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:39:13,285 [DEBUG][       Thread-600430][   transport.py][1871] : EOF in transport thread
2025-07-01 09:39:13,368 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:39:13,377 [DEBUG][       Thread-600433][   transport.py][1871] : starting thread (client mode): 0x8107e50
2025-07-01 09:39:13,378 [DEBUG][       Thread-600433][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:39:13,393 [DEBUG][       Thread-600433][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:39:13,393 [ INFO][       Thread-600433][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:39:13,401 [DEBUG][       Thread-600433][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:39:13,401 [DEBUG][       Thread-600433][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:39:13,401 [DEBUG][       Thread-600433][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:39:13,401 [DEBUG][       Thread-600433][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:39:13,401 [DEBUG][       Thread-600433][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:39:13,401 [DEBUG][       Thread-600433][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:39:13,401 [DEBUG][       Thread-600433][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:39:13,401 [DEBUG][       Thread-600433][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:39:13,401 [DEBUG][       Thread-600433][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:39:13,401 [DEBUG][       Thread-600433][   transport.py][1871] : client lang: <none>
2025-07-01 09:39:13,401 [DEBUG][       Thread-600433][   transport.py][1871] : server lang: <none>
2025-07-01 09:39:13,402 [DEBUG][       Thread-600433][   transport.py][1871] : kex follows: False
2025-07-01 09:39:13,402 [DEBUG][       Thread-600433][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:39:13,402 [DEBUG][       Thread-600433][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:39:13,402 [DEBUG][       Thread-600433][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:39:13,402 [DEBUG][       Thread-600433][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:39:13,402 [DEBUG][       Thread-600433][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:39:13,402 [DEBUG][       Thread-600433][   transport.py][1871] : Compression: none
2025-07-01 09:39:13,402 [DEBUG][       Thread-600433][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:39:13,458 [DEBUG][       Thread-600433][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:39:13,458 [DEBUG][       Thread-600433][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:39:13,459 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:39:13,460 [DEBUG][       Thread-600433][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:39:13,460 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:39:13,518 [DEBUG][       Thread-600433][   transport.py][1871] : userauth is OK
2025-07-01 09:39:13,518 [DEBUG][       Thread-600433][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:39:13,518 [DEBUG][       Thread-600433][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:39:13,518 [DEBUG][       Thread-600433][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:39:13,518 [DEBUG][       Thread-600433][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:39:13,537 [ INFO][       Thread-600433][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:39:13,538 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:39:13,538 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:39:14,537 [DEBUG][       Thread-600433][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:39:14,537 [DEBUG][       Thread-600433][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:39:14,587 [DEBUG][       Thread-600433][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:39:14,587 [DEBUG][       Thread-600433][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:39:14,814 [DEBUG][       Thread-600433][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:39:14,822 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:39:14,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-07-01 09:39:14,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-07-01 09:39:14,839 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:39:14,839 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:39:14,839 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:39:14,846 [DEBUG][       Thread-600433][   transport.py][1871] : EOF in transport thread
2025-07-01 09:39:15,172 [DEBUG][Thread-600435 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:39:20,999 [DEBUG][Thread-600436 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:39:24,194 [DEBUG][Thread-600437 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:39:24,849 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:39:24,849 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:39:24,849 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:39:24,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-07-01 09:39:25,343 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 39, 14), 9.9, 49.86, 0.0, 37.7, 9.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:39:25,343 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:39:14
2025-07-01 09:39:25,426 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:39:25,430 [DEBUG][       Thread-600438][   transport.py][1871] : starting thread (client mode): 0x81e7340
2025-07-01 09:39:25,430 [DEBUG][       Thread-600438][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:39:25,441 [DEBUG][       Thread-600438][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:39:25,441 [ INFO][       Thread-600438][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:39:25,442 [DEBUG][       Thread-600438][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:39:25,442 [DEBUG][       Thread-600438][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:39:25,442 [DEBUG][       Thread-600438][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:39:25,442 [DEBUG][       Thread-600438][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:39:25,442 [DEBUG][       Thread-600438][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:39:25,442 [DEBUG][       Thread-600438][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:39:25,442 [DEBUG][       Thread-600438][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:39:25,442 [DEBUG][       Thread-600438][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:39:25,442 [DEBUG][       Thread-600438][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:39:25,442 [DEBUG][       Thread-600438][   transport.py][1871] : client lang: <none>
2025-07-01 09:39:25,442 [DEBUG][       Thread-600438][   transport.py][1871] : server lang: <none>
2025-07-01 09:39:25,442 [DEBUG][       Thread-600438][   transport.py][1871] : kex follows: False
2025-07-01 09:39:25,442 [DEBUG][       Thread-600438][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:39:25,442 [DEBUG][       Thread-600438][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:39:25,442 [DEBUG][       Thread-600438][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:39:25,442 [DEBUG][       Thread-600438][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:39:25,442 [DEBUG][       Thread-600438][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:39:25,442 [DEBUG][       Thread-600438][   transport.py][1871] : Compression: none
2025-07-01 09:39:25,442 [DEBUG][       Thread-600438][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:39:25,458 [DEBUG][       Thread-600438][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:39:25,458 [DEBUG][       Thread-600438][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:39:25,459 [DEBUG][       Thread-600438][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:39:25,459 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:39:25,459 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:39:25,460 [DEBUG][       Thread-600438][   transport.py][1871] : userauth is OK
2025-07-01 09:39:25,484 [ INFO][       Thread-600438][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:39:25,484 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:39:26,147 [DEBUG][       Thread-600438][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:39:26,147 [DEBUG][       Thread-600438][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:39:26,192 [DEBUG][       Thread-600438][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:39:26,192 [DEBUG][       Thread-600438][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:39:26,195 [DEBUG][       Thread-600438][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:39:26,208 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:39:26,208 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:39:26,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:39:26,211 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:39:26,214 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:39:26,215 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:39:26,215 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:39:26,215 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:39:26,215 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.318698 -999.00   +9.30  58.53     55   +0.70 1 1 2 1 1   887    0 9.46 41.75 ----- 58.5 58.5 16.7 67.5 12.3 -23.8 11.4 -23.5 10.4 -22.9 11.3 -21.8
2025-07-01 09:39:26,215 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:39:26,215 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:39:26,215 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.318698
2025-07-01 09:39:26,215 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:39:26,215 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:39:26,215 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:39:26,215 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:39:26,215 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:39:26,215 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:39:14', tmtdew=9.9, humidity=49.86, cloud=0.0, wind=37.7, temperature=9.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:38:55.507', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:39:26,216 [DEBUG][       Thread-600438][   transport.py][1871] : EOF in transport thread
2025-07-01 09:39:26,286 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:39:26,302 [DEBUG][       Thread-600441][   transport.py][1871] : starting thread (client mode): 0x81a75e0
2025-07-01 09:39:26,302 [DEBUG][       Thread-600441][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:39:26,317 [DEBUG][       Thread-600441][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:39:26,317 [ INFO][       Thread-600441][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:39:26,327 [DEBUG][       Thread-600441][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:39:26,327 [DEBUG][       Thread-600441][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:39:26,327 [DEBUG][       Thread-600441][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:39:26,327 [DEBUG][       Thread-600441][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:39:26,328 [DEBUG][       Thread-600441][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:39:26,328 [DEBUG][       Thread-600441][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:39:26,328 [DEBUG][       Thread-600441][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:39:26,328 [DEBUG][       Thread-600441][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:39:26,328 [DEBUG][       Thread-600441][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:39:26,328 [DEBUG][       Thread-600441][   transport.py][1871] : client lang: <none>
2025-07-01 09:39:26,328 [DEBUG][       Thread-600441][   transport.py][1871] : server lang: <none>
2025-07-01 09:39:26,328 [DEBUG][       Thread-600441][   transport.py][1871] : kex follows: False
2025-07-01 09:39:26,328 [DEBUG][       Thread-600441][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:39:26,328 [DEBUG][       Thread-600441][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:39:26,328 [DEBUG][       Thread-600441][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:39:26,328 [DEBUG][       Thread-600441][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:39:26,328 [DEBUG][       Thread-600441][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:39:26,328 [DEBUG][       Thread-600441][   transport.py][1871] : Compression: none
2025-07-01 09:39:26,328 [DEBUG][       Thread-600441][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:39:26,389 [DEBUG][       Thread-600441][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:39:26,390 [DEBUG][       Thread-600441][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:39:26,390 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:39:26,391 [DEBUG][       Thread-600441][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:39:26,392 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:39:26,451 [DEBUG][       Thread-600441][   transport.py][1871] : userauth is OK
2025-07-01 09:39:26,451 [DEBUG][       Thread-600441][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:39:26,451 [DEBUG][       Thread-600441][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:39:26,451 [DEBUG][       Thread-600441][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:39:26,451 [DEBUG][       Thread-600441][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:39:26,472 [ INFO][       Thread-600441][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:39:26,473 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:39:26,473 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:39:27,456 [DEBUG][       Thread-600441][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:39:27,456 [DEBUG][       Thread-600441][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:39:27,508 [DEBUG][       Thread-600441][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:39:27,509 [DEBUG][       Thread-600441][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:39:27,524 [DEBUG][       Thread-600441][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:39:27,536 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:39:27,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-07-01 09:39:27,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-07-01 09:39:27,560 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:39:27,560 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:39:27,561 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:39:27,572 [DEBUG][       Thread-600441][   transport.py][1871] : EOF in transport thread
2025-07-01 09:39:33,215 [DEBUG][Thread-600443 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:39:37,566 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:39:37,566 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:39:37,567 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:39:37,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-07-01 09:39:38,070 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 39, 14), 9.9, 49.86, 0.0, 37.7, 9.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:39:38,070 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:39:14
2025-07-01 09:39:38,153 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:39:38,157 [DEBUG][       Thread-600444][   transport.py][1871] : starting thread (client mode): 0x8171420
2025-07-01 09:39:38,157 [DEBUG][       Thread-600444][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:39:38,177 [DEBUG][       Thread-600444][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:39:38,177 [ INFO][       Thread-600444][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:39:38,180 [DEBUG][       Thread-600444][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:39:38,181 [DEBUG][       Thread-600444][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:39:38,181 [DEBUG][       Thread-600444][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:39:38,181 [DEBUG][       Thread-600444][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:39:38,181 [DEBUG][       Thread-600444][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:39:38,181 [DEBUG][       Thread-600444][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:39:38,181 [DEBUG][       Thread-600444][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:39:38,181 [DEBUG][       Thread-600444][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:39:38,181 [DEBUG][       Thread-600444][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:39:38,181 [DEBUG][       Thread-600444][   transport.py][1871] : client lang: <none>
2025-07-01 09:39:38,181 [DEBUG][       Thread-600444][   transport.py][1871] : server lang: <none>
2025-07-01 09:39:38,181 [DEBUG][       Thread-600444][   transport.py][1871] : kex follows: False
2025-07-01 09:39:38,181 [DEBUG][       Thread-600444][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:39:38,181 [DEBUG][       Thread-600444][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:39:38,181 [DEBUG][       Thread-600444][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:39:38,181 [DEBUG][       Thread-600444][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:39:38,181 [DEBUG][       Thread-600444][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:39:38,181 [DEBUG][       Thread-600444][   transport.py][1871] : Compression: none
2025-07-01 09:39:38,181 [DEBUG][       Thread-600444][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:39:38,199 [DEBUG][       Thread-600444][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:39:38,200 [DEBUG][       Thread-600444][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:39:38,200 [DEBUG][       Thread-600444][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:39:38,201 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:39:38,201 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:39:38,202 [DEBUG][       Thread-600444][   transport.py][1871] : userauth is OK
2025-07-01 09:39:38,215 [ INFO][       Thread-600444][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:39:38,215 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:39:38,981 [DEBUG][       Thread-600444][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:39:38,982 [DEBUG][       Thread-600444][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:39:39,025 [DEBUG][       Thread-600444][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:39:39,025 [DEBUG][       Thread-600444][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:39:39,028 [DEBUG][       Thread-600444][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:39:39,034 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:39:39,035 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:39:39,036 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:39:39,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:39:39,044 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:39:39,046 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:39:39,046 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:39:39,047 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:39:39,047 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.318698 -999.00   +9.30  58.53     55   +0.70 1 1 2 1 1   887    0 9.46 41.75 ----- 58.5 58.5 16.7 67.5 12.3 -23.8 11.4 -23.5 10.4 -22.9 11.3 -21.8
2025-07-01 09:39:39,047 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:39:39,047 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:39:39,047 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.318698
2025-07-01 09:39:39,048 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:39:39,048 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:39:39,049 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:39:39,049 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:39:39,049 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:39:39,049 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:39:14', tmtdew=9.9, humidity=49.86, cloud=0.0, wind=37.7, temperature=9.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:38:55.507', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:39:39,050 [DEBUG][       Thread-600444][   transport.py][1871] : EOF in transport thread
2025-07-01 09:39:39,133 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:39:39,143 [DEBUG][       Thread-600447][   transport.py][1871] : starting thread (client mode): 0x8107910
2025-07-01 09:39:39,143 [DEBUG][       Thread-600447][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:39:39,163 [DEBUG][       Thread-600447][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:39:39,163 [ INFO][       Thread-600447][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:39:39,171 [DEBUG][       Thread-600447][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:39:39,171 [DEBUG][       Thread-600447][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:39:39,171 [DEBUG][       Thread-600447][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:39:39,172 [DEBUG][       Thread-600447][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:39:39,172 [DEBUG][       Thread-600447][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:39:39,172 [DEBUG][       Thread-600447][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:39:39,172 [DEBUG][       Thread-600447][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:39:39,172 [DEBUG][       Thread-600447][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:39:39,172 [DEBUG][       Thread-600447][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:39:39,172 [DEBUG][       Thread-600447][   transport.py][1871] : client lang: <none>
2025-07-01 09:39:39,172 [DEBUG][       Thread-600447][   transport.py][1871] : server lang: <none>
2025-07-01 09:39:39,172 [DEBUG][       Thread-600447][   transport.py][1871] : kex follows: False
2025-07-01 09:39:39,172 [DEBUG][       Thread-600447][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:39:39,172 [DEBUG][       Thread-600447][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:39:39,172 [DEBUG][       Thread-600447][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:39:39,172 [DEBUG][       Thread-600447][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:39:39,172 [DEBUG][       Thread-600447][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:39:39,172 [DEBUG][       Thread-600447][   transport.py][1871] : Compression: none
2025-07-01 09:39:39,172 [DEBUG][       Thread-600447][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:39:39,229 [DEBUG][       Thread-600447][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:39:39,230 [DEBUG][       Thread-600447][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:39:39,230 [DEBUG][       Thread-600447][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:39:39,231 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:39:39,231 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:39:39,290 [DEBUG][       Thread-600447][   transport.py][1871] : userauth is OK
2025-07-01 09:39:39,290 [DEBUG][       Thread-600447][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:39:39,290 [DEBUG][       Thread-600447][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:39:39,290 [DEBUG][       Thread-600447][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:39:39,291 [DEBUG][       Thread-600447][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:39:39,310 [ INFO][       Thread-600447][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:39:39,311 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:39:39,311 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:39:40,297 [DEBUG][       Thread-600447][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:39:40,297 [DEBUG][       Thread-600447][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:39:40,348 [DEBUG][       Thread-600447][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:39:40,348 [DEBUG][       Thread-600447][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:39:40,358 [DEBUG][       Thread-600447][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:39:40,371 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:39:40,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-07-01 09:39:40,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-07-01 09:39:40,394 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:39:40,394 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:39:40,395 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:39:40,402 [DEBUG][       Thread-600447][   transport.py][1871] : EOF in transport thread
2025-07-01 09:39:42,245 [DEBUG][Thread-600449 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:39:50,404 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:39:50,404 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:39:50,404 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:39:50,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-07-01 09:39:50,894 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 39, 45), 9.92, 49.81, 0.0, 33.91, 9.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:39:50,894 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:39:45
2025-07-01 09:39:50,977 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:39:50,983 [DEBUG][       Thread-600450][   transport.py][1871] : starting thread (client mode): 0x81a64d0
2025-07-01 09:39:50,983 [DEBUG][       Thread-600450][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:39:51,003 [DEBUG][       Thread-600450][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:39:51,003 [ INFO][       Thread-600450][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:39:51,006 [DEBUG][       Thread-600450][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:39:51,006 [DEBUG][       Thread-600450][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:39:51,006 [DEBUG][       Thread-600450][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:39:51,006 [DEBUG][       Thread-600450][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:39:51,006 [DEBUG][       Thread-600450][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:39:51,006 [DEBUG][       Thread-600450][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:39:51,007 [DEBUG][       Thread-600450][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:39:51,007 [DEBUG][       Thread-600450][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:39:51,007 [DEBUG][       Thread-600450][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:39:51,007 [DEBUG][       Thread-600450][   transport.py][1871] : client lang: <none>
2025-07-01 09:39:51,007 [DEBUG][       Thread-600450][   transport.py][1871] : server lang: <none>
2025-07-01 09:39:51,007 [DEBUG][       Thread-600450][   transport.py][1871] : kex follows: False
2025-07-01 09:39:51,007 [DEBUG][       Thread-600450][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:39:51,007 [DEBUG][       Thread-600450][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:39:51,007 [DEBUG][       Thread-600450][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:39:51,007 [DEBUG][       Thread-600450][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:39:51,007 [DEBUG][       Thread-600450][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:39:51,007 [DEBUG][       Thread-600450][   transport.py][1871] : Compression: none
2025-07-01 09:39:51,007 [DEBUG][       Thread-600450][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:39:51,023 [DEBUG][       Thread-600450][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:39:51,023 [DEBUG][       Thread-600450][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:39:51,023 [DEBUG][       Thread-600450][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:39:51,023 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:39:51,023 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:39:51,068 [DEBUG][       Thread-600450][   transport.py][1871] : userauth is OK
2025-07-01 09:39:51,092 [ INFO][       Thread-600450][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:39:51,092 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:39:51,268 [DEBUG][Thread-600452 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:39:51,831 [DEBUG][       Thread-600450][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:39:51,831 [DEBUG][       Thread-600450][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:39:51,873 [DEBUG][       Thread-600450][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:39:51,873 [DEBUG][       Thread-600450][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:39:51,876 [DEBUG][       Thread-600450][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:39:51,888 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:39:51,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:39:51,890 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:39:51,892 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:39:51,897 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:39:51,899 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:39:51,899 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:39:51,900 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:39:51,900 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.318698 -999.00   +9.30  58.53     55   +0.70 1 1 2 1 1   887    0 9.46 41.75 ----- 58.5 58.5 16.7 67.5 12.3 -23.8 11.4 -23.5 10.4 -22.9 11.3 -21.8
2025-07-01 09:39:51,900 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:39:51,900 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:39:51,900 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.318698
2025-07-01 09:39:51,901 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:39:51,901 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:39:51,901 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:39:51,901 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:39:51,901 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:39:51,901 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:39:45', tmtdew=9.92, humidity=49.81, cloud=0.0, wind=33.91, temperature=9.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:38:55.507', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:39:51,902 [DEBUG][       Thread-600450][   transport.py][1871] : EOF in transport thread
2025-07-01 09:39:51,987 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:39:52,001 [DEBUG][       Thread-600454][   transport.py][1871] : starting thread (client mode): 0x8156830
2025-07-01 09:39:52,001 [DEBUG][       Thread-600454][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:39:52,018 [DEBUG][       Thread-600454][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:39:52,018 [ INFO][       Thread-600454][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:39:52,031 [DEBUG][       Thread-600454][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:39:52,032 [DEBUG][       Thread-600454][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:39:52,032 [DEBUG][       Thread-600454][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:39:52,032 [DEBUG][       Thread-600454][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:39:52,032 [DEBUG][       Thread-600454][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:39:52,032 [DEBUG][       Thread-600454][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:39:52,032 [DEBUG][       Thread-600454][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:39:52,032 [DEBUG][       Thread-600454][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:39:52,032 [DEBUG][       Thread-600454][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:39:52,032 [DEBUG][       Thread-600454][   transport.py][1871] : client lang: <none>
2025-07-01 09:39:52,032 [DEBUG][       Thread-600454][   transport.py][1871] : server lang: <none>
2025-07-01 09:39:52,032 [DEBUG][       Thread-600454][   transport.py][1871] : kex follows: False
2025-07-01 09:39:52,032 [DEBUG][       Thread-600454][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:39:52,032 [DEBUG][       Thread-600454][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:39:52,032 [DEBUG][       Thread-600454][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:39:52,033 [DEBUG][       Thread-600454][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:39:52,033 [DEBUG][       Thread-600454][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:39:52,033 [DEBUG][       Thread-600454][   transport.py][1871] : Compression: none
2025-07-01 09:39:52,033 [DEBUG][       Thread-600454][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:39:52,093 [DEBUG][       Thread-600454][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:39:52,094 [DEBUG][       Thread-600454][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:39:52,094 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:39:52,095 [DEBUG][       Thread-600454][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:39:52,095 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:39:52,150 [DEBUG][       Thread-600454][   transport.py][1871] : userauth is OK
2025-07-01 09:39:52,150 [DEBUG][       Thread-600454][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:39:52,150 [DEBUG][       Thread-600454][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:39:52,150 [DEBUG][       Thread-600454][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:39:52,150 [DEBUG][       Thread-600454][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:39:52,171 [ INFO][       Thread-600454][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:39:52,172 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:39:52,172 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:39:52,728 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:39:52,729 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:39:53,179 [DEBUG][       Thread-600454][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:39:53,180 [DEBUG][       Thread-600454][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:39:53,228 [DEBUG][       Thread-600454][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:39:53,228 [DEBUG][       Thread-600454][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:39:53,237 [DEBUG][       Thread-600454][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:39:53,246 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:39:53,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-07-01 09:39:53,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-07-01 09:39:53,263 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:39:53,264 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:39:53,264 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:39:53,272 [DEBUG][       Thread-600454][   transport.py][1871] : EOF in transport thread
2025-07-01 09:40:00,290 [DEBUG][Thread-600456 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:40:03,266 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:40:03,267 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:40:03,267 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:40:03,269 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:40:03,769 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 39, 45), 9.92, 49.81, 0.0, 33.91, 9.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:40:03,769 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:39:45
2025-07-01 09:40:03,852 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:40:03,856 [DEBUG][       Thread-600457][   transport.py][1871] : starting thread (client mode): 0x75a8ee0
2025-07-01 09:40:03,856 [DEBUG][       Thread-600457][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:40:03,876 [DEBUG][       Thread-600457][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:40:03,876 [ INFO][       Thread-600457][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:40:03,879 [DEBUG][       Thread-600457][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:40:03,880 [DEBUG][       Thread-600457][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:40:03,880 [DEBUG][       Thread-600457][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:40:03,880 [DEBUG][       Thread-600457][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:40:03,880 [DEBUG][       Thread-600457][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:40:03,880 [DEBUG][       Thread-600457][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:40:03,880 [DEBUG][       Thread-600457][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:40:03,880 [DEBUG][       Thread-600457][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:40:03,880 [DEBUG][       Thread-600457][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:40:03,880 [DEBUG][       Thread-600457][   transport.py][1871] : client lang: <none>
2025-07-01 09:40:03,880 [DEBUG][       Thread-600457][   transport.py][1871] : server lang: <none>
2025-07-01 09:40:03,880 [DEBUG][       Thread-600457][   transport.py][1871] : kex follows: False
2025-07-01 09:40:03,880 [DEBUG][       Thread-600457][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:40:03,880 [DEBUG][       Thread-600457][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:40:03,880 [DEBUG][       Thread-600457][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:40:03,880 [DEBUG][       Thread-600457][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:40:03,880 [DEBUG][       Thread-600457][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:40:03,880 [DEBUG][       Thread-600457][   transport.py][1871] : Compression: none
2025-07-01 09:40:03,880 [DEBUG][       Thread-600457][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:40:03,895 [DEBUG][       Thread-600457][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:40:03,895 [DEBUG][       Thread-600457][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:40:03,896 [DEBUG][       Thread-600457][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:40:03,896 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:40:03,896 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:40:03,897 [DEBUG][       Thread-600457][   transport.py][1871] : userauth is OK
2025-07-01 09:40:03,944 [ INFO][       Thread-600457][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:40:03,945 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:40:04,538 [DEBUG][       Thread-600457][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:40:04,538 [DEBUG][       Thread-600457][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:40:04,581 [DEBUG][       Thread-600457][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:40:04,581 [DEBUG][       Thread-600457][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:40:04,585 [DEBUG][       Thread-600457][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:40:04,600 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:40:04,600 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:40:04,602 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:40:04,604 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:40:04,609 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:40:04,611 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:40:04,612 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:40:04,612 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:40:04,613 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.319045 -999.00   +9.50  43.70     54   +0.80 1 2 2 1 1   887    0 9.51 41.83 ----- 43.7 43.7 23.7 52.5 12.4 -24.6 11.4 -23.2 10.4 -22.5 11.3 -22.4
2025-07-01 09:40:04,613 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:40:04,613 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:40:04,613 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.319045
2025-07-01 09:40:04,613 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:40:04,614 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:40:04,614 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:40:04,614 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:40:04,614 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 09:40:04,614 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:39:45', tmtdew=9.92, humidity=49.81, cloud=0.0, wind=33.91, temperature=9.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:39:25.488', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:40:04,614 [DEBUG][       Thread-600457][   transport.py][1871] : EOF in transport thread
2025-07-01 09:40:04,697 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:40:04,707 [DEBUG][       Thread-600460][   transport.py][1871] : starting thread (client mode): 0x8106230
2025-07-01 09:40:04,707 [DEBUG][       Thread-600460][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:40:04,722 [DEBUG][       Thread-600460][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:40:04,723 [ INFO][       Thread-600460][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:40:04,731 [DEBUG][       Thread-600460][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:40:04,731 [DEBUG][       Thread-600460][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:40:04,731 [DEBUG][       Thread-600460][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:40:04,731 [DEBUG][       Thread-600460][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:40:04,731 [DEBUG][       Thread-600460][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:40:04,731 [DEBUG][       Thread-600460][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:40:04,731 [DEBUG][       Thread-600460][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:40:04,731 [DEBUG][       Thread-600460][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:40:04,731 [DEBUG][       Thread-600460][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:40:04,731 [DEBUG][       Thread-600460][   transport.py][1871] : client lang: <none>
2025-07-01 09:40:04,731 [DEBUG][       Thread-600460][   transport.py][1871] : server lang: <none>
2025-07-01 09:40:04,731 [DEBUG][       Thread-600460][   transport.py][1871] : kex follows: False
2025-07-01 09:40:04,731 [DEBUG][       Thread-600460][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:40:04,732 [DEBUG][       Thread-600460][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:40:04,732 [DEBUG][       Thread-600460][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:40:04,732 [DEBUG][       Thread-600460][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:40:04,732 [DEBUG][       Thread-600460][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:40:04,732 [DEBUG][       Thread-600460][   transport.py][1871] : Compression: none
2025-07-01 09:40:04,732 [DEBUG][       Thread-600460][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:40:04,791 [DEBUG][       Thread-600460][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:40:04,792 [DEBUG][       Thread-600460][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:40:04,792 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:40:04,793 [DEBUG][       Thread-600460][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:40:04,794 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:40:04,850 [DEBUG][       Thread-600460][   transport.py][1871] : userauth is OK
2025-07-01 09:40:04,851 [DEBUG][       Thread-600460][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:40:04,851 [DEBUG][       Thread-600460][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:40:04,851 [DEBUG][       Thread-600460][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:40:04,851 [DEBUG][       Thread-600460][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:40:04,870 [ INFO][       Thread-600460][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:40:04,870 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:40:04,871 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:40:05,884 [DEBUG][       Thread-600460][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:40:05,884 [DEBUG][       Thread-600460][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:40:05,931 [DEBUG][       Thread-600460][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:40:05,931 [DEBUG][       Thread-600460][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:40:05,941 [DEBUG][       Thread-600460][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:40:05,951 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:40:05,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-07-01 09:40:05,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-07-01 09:40:05,968 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:40:05,969 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:40:05,969 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:40:05,979 [DEBUG][       Thread-600460][   transport.py][1871] : EOF in transport thread
2025-07-01 09:40:09,322 [DEBUG][Thread-600462 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:40:15,979 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:40:15,979 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:40:15,979 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:40:15,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-07-01 09:40:16,465 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 39, 45), 9.92, 49.81, 0.0, 33.91, 9.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:40:16,465 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:39:45
2025-07-01 09:40:16,550 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:40:16,555 [DEBUG][       Thread-600463][   transport.py][1871] : starting thread (client mode): 0x75ab760
2025-07-01 09:40:16,556 [DEBUG][       Thread-600463][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:40:16,579 [DEBUG][       Thread-600463][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:40:16,580 [ INFO][       Thread-600463][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:40:16,582 [DEBUG][       Thread-600463][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:40:16,582 [DEBUG][       Thread-600463][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:40:16,582 [DEBUG][       Thread-600463][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:40:16,582 [DEBUG][       Thread-600463][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:40:16,582 [DEBUG][       Thread-600463][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:40:16,582 [DEBUG][       Thread-600463][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:40:16,582 [DEBUG][       Thread-600463][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:40:16,582 [DEBUG][       Thread-600463][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:40:16,582 [DEBUG][       Thread-600463][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:40:16,583 [DEBUG][       Thread-600463][   transport.py][1871] : client lang: <none>
2025-07-01 09:40:16,583 [DEBUG][       Thread-600463][   transport.py][1871] : server lang: <none>
2025-07-01 09:40:16,583 [DEBUG][       Thread-600463][   transport.py][1871] : kex follows: False
2025-07-01 09:40:16,583 [DEBUG][       Thread-600463][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:40:16,583 [DEBUG][       Thread-600463][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:40:16,583 [DEBUG][       Thread-600463][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:40:16,583 [DEBUG][       Thread-600463][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:40:16,583 [DEBUG][       Thread-600463][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:40:16,583 [DEBUG][       Thread-600463][   transport.py][1871] : Compression: none
2025-07-01 09:40:16,583 [DEBUG][       Thread-600463][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:40:16,597 [DEBUG][       Thread-600463][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:40:16,597 [DEBUG][       Thread-600463][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:40:16,598 [DEBUG][       Thread-600463][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:40:16,598 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:40:16,598 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:40:16,599 [DEBUG][       Thread-600463][   transport.py][1871] : userauth is OK
2025-07-01 09:40:16,624 [ INFO][       Thread-600463][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:40:16,625 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:40:17,466 [DEBUG][       Thread-600463][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:40:17,466 [DEBUG][       Thread-600463][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:40:17,509 [DEBUG][       Thread-600463][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:40:17,509 [DEBUG][       Thread-600463][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:40:17,512 [DEBUG][       Thread-600463][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:40:17,526 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:40:17,526 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:40:17,528 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:40:17,530 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:40:17,535 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:40:17,537 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:40:17,537 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:40:17,538 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:40:17,538 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.319045 -999.00   +9.50  43.70     54   +0.80 1 2 2 1 1   887    0 9.51 41.83 ----- 43.7 43.7 23.7 52.5 12.4 -24.6 11.4 -23.2 10.4 -22.5 11.3 -22.4
2025-07-01 09:40:17,538 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:40:17,538 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:40:17,538 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.319045
2025-07-01 09:40:17,538 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:40:17,539 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:40:17,539 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:40:17,539 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:40:17,539 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 09:40:17,539 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:39:45', tmtdew=9.92, humidity=49.81, cloud=0.0, wind=33.91, temperature=9.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:39:25.488', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:40:17,539 [DEBUG][       Thread-600463][   transport.py][1871] : EOF in transport thread
2025-07-01 09:40:17,618 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:40:17,631 [DEBUG][       Thread-600466][   transport.py][1871] : starting thread (client mode): 0x818f5e0
2025-07-01 09:40:17,631 [DEBUG][       Thread-600466][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:40:17,647 [DEBUG][       Thread-600466][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:40:17,647 [ INFO][       Thread-600466][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:40:17,654 [DEBUG][       Thread-600466][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:40:17,654 [DEBUG][       Thread-600466][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:40:17,655 [DEBUG][       Thread-600466][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:40:17,655 [DEBUG][       Thread-600466][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:40:17,655 [DEBUG][       Thread-600466][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:40:17,655 [DEBUG][       Thread-600466][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:40:17,655 [DEBUG][       Thread-600466][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:40:17,655 [DEBUG][       Thread-600466][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:40:17,655 [DEBUG][       Thread-600466][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:40:17,655 [DEBUG][       Thread-600466][   transport.py][1871] : client lang: <none>
2025-07-01 09:40:17,655 [DEBUG][       Thread-600466][   transport.py][1871] : server lang: <none>
2025-07-01 09:40:17,655 [DEBUG][       Thread-600466][   transport.py][1871] : kex follows: False
2025-07-01 09:40:17,655 [DEBUG][       Thread-600466][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:40:17,655 [DEBUG][       Thread-600466][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:40:17,655 [DEBUG][       Thread-600466][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:40:17,655 [DEBUG][       Thread-600466][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:40:17,655 [DEBUG][       Thread-600466][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:40:17,655 [DEBUG][       Thread-600466][   transport.py][1871] : Compression: none
2025-07-01 09:40:17,656 [DEBUG][       Thread-600466][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:40:17,716 [DEBUG][       Thread-600466][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:40:17,716 [DEBUG][       Thread-600466][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:40:17,716 [DEBUG][       Thread-600466][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:40:17,716 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:40:17,716 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:40:17,773 [DEBUG][       Thread-600466][   transport.py][1871] : userauth is OK
2025-07-01 09:40:17,774 [DEBUG][       Thread-600466][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:40:17,774 [DEBUG][       Thread-600466][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:40:17,774 [DEBUG][       Thread-600466][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:40:17,774 [DEBUG][       Thread-600466][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:40:17,794 [ INFO][       Thread-600466][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:40:17,794 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:40:17,794 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:40:18,354 [DEBUG][Thread-600468 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:40:18,826 [DEBUG][       Thread-600466][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:40:18,826 [DEBUG][       Thread-600466][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:40:18,879 [DEBUG][       Thread-600466][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:40:18,879 [DEBUG][       Thread-600466][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:40:18,888 [DEBUG][       Thread-600466][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:40:18,896 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:40:18,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-07-01 09:40:18,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-07-01 09:40:18,912 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:40:18,912 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:40:18,912 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:40:18,920 [DEBUG][       Thread-600466][   transport.py][1871] : EOF in transport thread
2025-07-01 09:40:21,044 [DEBUG][Thread-600469 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:40:27,373 [DEBUG][Thread-600470 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:40:28,922 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:40:28,923 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:40:28,923 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:40:28,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-07-01 09:40:29,402 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 40, 17), 10.04, 49.41, 0.0, 33.86, 9.43, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:40:29,402 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:40:17
2025-07-01 09:40:29,486 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:40:29,492 [DEBUG][       Thread-600471][   transport.py][1871] : starting thread (client mode): 0x8154d30
2025-07-01 09:40:29,492 [DEBUG][       Thread-600471][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:40:29,513 [DEBUG][       Thread-600471][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:40:29,513 [ INFO][       Thread-600471][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:40:29,516 [DEBUG][       Thread-600471][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:40:29,516 [DEBUG][       Thread-600471][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:40:29,516 [DEBUG][       Thread-600471][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:40:29,516 [DEBUG][       Thread-600471][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:40:29,516 [DEBUG][       Thread-600471][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:40:29,516 [DEBUG][       Thread-600471][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:40:29,516 [DEBUG][       Thread-600471][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:40:29,516 [DEBUG][       Thread-600471][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:40:29,516 [DEBUG][       Thread-600471][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:40:29,516 [DEBUG][       Thread-600471][   transport.py][1871] : client lang: <none>
2025-07-01 09:40:29,516 [DEBUG][       Thread-600471][   transport.py][1871] : server lang: <none>
2025-07-01 09:40:29,516 [DEBUG][       Thread-600471][   transport.py][1871] : kex follows: False
2025-07-01 09:40:29,516 [DEBUG][       Thread-600471][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:40:29,516 [DEBUG][       Thread-600471][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:40:29,517 [DEBUG][       Thread-600471][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:40:29,517 [DEBUG][       Thread-600471][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:40:29,517 [DEBUG][       Thread-600471][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:40:29,517 [DEBUG][       Thread-600471][   transport.py][1871] : Compression: none
2025-07-01 09:40:29,517 [DEBUG][       Thread-600471][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:40:29,525 [DEBUG][       Thread-600471][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:40:29,526 [DEBUG][       Thread-600471][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:40:29,526 [DEBUG][       Thread-600471][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:40:29,526 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:40:29,527 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:40:29,527 [DEBUG][       Thread-600471][   transport.py][1871] : userauth is OK
2025-07-01 09:40:29,540 [ INFO][       Thread-600471][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:40:29,541 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:40:30,306 [DEBUG][       Thread-600471][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:40:30,307 [DEBUG][       Thread-600471][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:40:30,349 [DEBUG][       Thread-600471][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:40:30,349 [DEBUG][       Thread-600471][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:40:30,352 [DEBUG][       Thread-600471][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:40:30,362 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:40:30,362 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:40:30,363 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:40:30,365 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:40:30,369 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:40:30,371 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:40:30,371 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:40:30,372 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:40:30,372 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.319739 -999.00   +9.50  36.10     54   +0.70 1 1 2 1 1   887    0 9.52 43.59 ----- 36.1 36.1 23.0 46.8 12.6 -23.9 11.6 -23.3 10.5 -22.8 11.5 -21.7
2025-07-01 09:40:30,372 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:40:30,372 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:40:30,372 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.319739
2025-07-01 09:40:30,373 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:40:30,373 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:40:30,373 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:40:30,373 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:40:30,373 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:40:30,374 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:40:17', tmtdew=10.04, humidity=49.41, cloud=0.0, wind=33.86, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:40:25.450', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:40:30,375 [DEBUG][       Thread-600471][   transport.py][1871] : EOF in transport thread
2025-07-01 09:40:30,457 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:40:30,469 [DEBUG][       Thread-600474][   transport.py][1871] : starting thread (client mode): 0x8a65e70
2025-07-01 09:40:30,469 [DEBUG][       Thread-600474][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:40:30,485 [DEBUG][       Thread-600474][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:40:30,485 [ INFO][       Thread-600474][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:40:30,493 [DEBUG][       Thread-600474][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:40:30,493 [DEBUG][       Thread-600474][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:40:30,493 [DEBUG][       Thread-600474][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:40:30,493 [DEBUG][       Thread-600474][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:40:30,493 [DEBUG][       Thread-600474][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:40:30,493 [DEBUG][       Thread-600474][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:40:30,494 [DEBUG][       Thread-600474][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:40:30,494 [DEBUG][       Thread-600474][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:40:30,494 [DEBUG][       Thread-600474][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:40:30,494 [DEBUG][       Thread-600474][   transport.py][1871] : client lang: <none>
2025-07-01 09:40:30,494 [DEBUG][       Thread-600474][   transport.py][1871] : server lang: <none>
2025-07-01 09:40:30,494 [DEBUG][       Thread-600474][   transport.py][1871] : kex follows: False
2025-07-01 09:40:30,494 [DEBUG][       Thread-600474][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:40:30,494 [DEBUG][       Thread-600474][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:40:30,494 [DEBUG][       Thread-600474][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:40:30,494 [DEBUG][       Thread-600474][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:40:30,494 [DEBUG][       Thread-600474][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:40:30,494 [DEBUG][       Thread-600474][   transport.py][1871] : Compression: none
2025-07-01 09:40:30,494 [DEBUG][       Thread-600474][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:40:30,554 [DEBUG][       Thread-600474][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:40:30,555 [DEBUG][       Thread-600474][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:40:30,555 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:40:30,556 [DEBUG][       Thread-600474][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:40:30,557 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:40:30,610 [DEBUG][       Thread-600474][   transport.py][1871] : userauth is OK
2025-07-01 09:40:30,610 [DEBUG][       Thread-600474][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:40:30,611 [DEBUG][       Thread-600474][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:40:30,611 [DEBUG][       Thread-600474][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:40:30,611 [DEBUG][       Thread-600474][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:40:30,630 [ INFO][       Thread-600474][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:40:30,631 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:40:30,631 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:40:31,659 [DEBUG][       Thread-600474][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:40:31,660 [DEBUG][       Thread-600474][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:40:31,708 [DEBUG][       Thread-600474][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:40:31,708 [DEBUG][       Thread-600474][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:40:31,717 [DEBUG][       Thread-600474][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:40:31,726 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:40:31,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-07-01 09:40:31,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-07-01 09:40:31,744 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:40:31,745 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:40:31,745 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:40:31,753 [DEBUG][       Thread-600474][   transport.py][1871] : EOF in transport thread
2025-07-01 09:40:36,398 [DEBUG][Thread-600476 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:40:41,756 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:40:41,756 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:40:41,756 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:40:41,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-07-01 09:40:42,229 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 40, 17), 10.04, 49.41, 0.0, 33.86, 9.43, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:40:42,229 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:40:17
2025-07-01 09:40:42,313 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:40:42,317 [DEBUG][       Thread-600477][   transport.py][1871] : starting thread (client mode): 0x81e7880
2025-07-01 09:40:42,317 [DEBUG][       Thread-600477][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:40:42,337 [DEBUG][       Thread-600477][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:40:42,337 [ INFO][       Thread-600477][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:40:42,340 [DEBUG][       Thread-600477][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:40:42,340 [DEBUG][       Thread-600477][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:40:42,340 [DEBUG][       Thread-600477][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:40:42,340 [DEBUG][       Thread-600477][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:40:42,340 [DEBUG][       Thread-600477][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:40:42,340 [DEBUG][       Thread-600477][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:40:42,340 [DEBUG][       Thread-600477][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:40:42,340 [DEBUG][       Thread-600477][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:40:42,340 [DEBUG][       Thread-600477][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:40:42,340 [DEBUG][       Thread-600477][   transport.py][1871] : client lang: <none>
2025-07-01 09:40:42,340 [DEBUG][       Thread-600477][   transport.py][1871] : server lang: <none>
2025-07-01 09:40:42,340 [DEBUG][       Thread-600477][   transport.py][1871] : kex follows: False
2025-07-01 09:40:42,340 [DEBUG][       Thread-600477][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:40:42,340 [DEBUG][       Thread-600477][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:40:42,340 [DEBUG][       Thread-600477][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:40:42,340 [DEBUG][       Thread-600477][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:40:42,340 [DEBUG][       Thread-600477][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:40:42,340 [DEBUG][       Thread-600477][   transport.py][1871] : Compression: none
2025-07-01 09:40:42,340 [DEBUG][       Thread-600477][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:40:42,359 [DEBUG][       Thread-600477][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:40:42,359 [DEBUG][       Thread-600477][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:40:42,360 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:40:42,360 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:40:42,361 [DEBUG][       Thread-600477][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:40:42,361 [DEBUG][       Thread-600477][   transport.py][1871] : userauth is OK
2025-07-01 09:40:42,374 [ INFO][       Thread-600477][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:40:42,374 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:40:43,007 [DEBUG][       Thread-600477][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:40:43,007 [DEBUG][       Thread-600477][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:40:43,049 [DEBUG][       Thread-600477][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:40:43,049 [DEBUG][       Thread-600477][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:40:43,052 [DEBUG][       Thread-600477][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:40:43,065 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:40:43,065 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:40:43,067 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:40:43,068 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:40:43,072 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:40:43,073 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:40:43,074 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:40:43,074 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:40:43,074 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.319739 -999.00   +9.50  36.10     54   +0.70 1 1 2 1 1   887    0 9.52 43.59 ----- 36.1 36.1 23.0 46.8 12.6 -23.9 11.6 -23.3 10.5 -22.8 11.5 -21.7
2025-07-01 09:40:43,074 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:40:43,074 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:40:43,075 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.319739
2025-07-01 09:40:43,075 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:40:43,075 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:40:43,076 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:40:43,076 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:40:43,076 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:40:43,076 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:40:17', tmtdew=10.04, humidity=49.41, cloud=0.0, wind=33.86, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:40:25.450', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:40:43,077 [DEBUG][       Thread-600477][   transport.py][1871] : EOF in transport thread
2025-07-01 09:40:43,160 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:40:43,169 [DEBUG][       Thread-600480][   transport.py][1871] : starting thread (client mode): 0x818d4b0
2025-07-01 09:40:43,169 [DEBUG][       Thread-600480][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:40:43,184 [DEBUG][       Thread-600480][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:40:43,184 [ INFO][       Thread-600480][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:40:43,191 [DEBUG][       Thread-600480][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:40:43,191 [DEBUG][       Thread-600480][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:40:43,191 [DEBUG][       Thread-600480][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:40:43,191 [DEBUG][       Thread-600480][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:40:43,191 [DEBUG][       Thread-600480][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:40:43,191 [DEBUG][       Thread-600480][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:40:43,191 [DEBUG][       Thread-600480][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:40:43,191 [DEBUG][       Thread-600480][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:40:43,191 [DEBUG][       Thread-600480][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:40:43,191 [DEBUG][       Thread-600480][   transport.py][1871] : client lang: <none>
2025-07-01 09:40:43,191 [DEBUG][       Thread-600480][   transport.py][1871] : server lang: <none>
2025-07-01 09:40:43,191 [DEBUG][       Thread-600480][   transport.py][1871] : kex follows: False
2025-07-01 09:40:43,192 [DEBUG][       Thread-600480][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:40:43,192 [DEBUG][       Thread-600480][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:40:43,192 [DEBUG][       Thread-600480][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:40:43,192 [DEBUG][       Thread-600480][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:40:43,192 [DEBUG][       Thread-600480][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:40:43,192 [DEBUG][       Thread-600480][   transport.py][1871] : Compression: none
2025-07-01 09:40:43,192 [DEBUG][       Thread-600480][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:40:43,250 [DEBUG][       Thread-600480][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:40:43,250 [DEBUG][       Thread-600480][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:40:43,250 [DEBUG][       Thread-600480][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:40:43,251 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:40:43,251 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:40:43,306 [DEBUG][       Thread-600480][   transport.py][1871] : userauth is OK
2025-07-01 09:40:43,306 [DEBUG][       Thread-600480][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:40:43,306 [DEBUG][       Thread-600480][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:40:43,306 [DEBUG][       Thread-600480][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:40:43,306 [DEBUG][       Thread-600480][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:40:43,329 [ INFO][       Thread-600480][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:40:43,329 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:40:43,330 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:40:44,336 [DEBUG][       Thread-600480][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:40:44,336 [DEBUG][       Thread-600480][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:40:44,384 [DEBUG][       Thread-600480][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:40:44,384 [DEBUG][       Thread-600480][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:40:44,394 [DEBUG][       Thread-600480][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:40:44,403 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:40: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-07-01 09:40:44,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-07-01 09:40:44,421 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:40:44,421 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:40:44,422 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:40:44,430 [DEBUG][       Thread-600480][   transport.py][1871] : EOF in transport thread
2025-07-01 09:40:45,431 [DEBUG][Thread-600482 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:40:52,866 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:40:52,868 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:40:54,432 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:40:54,432 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:40:54,433 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:40:54,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-07-01 09:40:54,453 [DEBUG][Thread-600483 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:40:54,920 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 40, 48), 10.02, 49.51, 0.0, 41.43, 9.48, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:40:54,920 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:40:48
2025-07-01 09:40:55,005 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:40:55,009 [DEBUG][       Thread-600484][   transport.py][1871] : starting thread (client mode): 0x8170b80
2025-07-01 09:40:55,009 [DEBUG][       Thread-600484][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:40:55,030 [DEBUG][       Thread-600484][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:40:55,030 [ INFO][       Thread-600484][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:40:55,033 [DEBUG][       Thread-600484][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:40:55,033 [DEBUG][       Thread-600484][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:40:55,033 [DEBUG][       Thread-600484][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:40:55,033 [DEBUG][       Thread-600484][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:40:55,033 [DEBUG][       Thread-600484][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:40:55,033 [DEBUG][       Thread-600484][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:40:55,033 [DEBUG][       Thread-600484][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:40:55,033 [DEBUG][       Thread-600484][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:40:55,033 [DEBUG][       Thread-600484][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:40:55,033 [DEBUG][       Thread-600484][   transport.py][1871] : client lang: <none>
2025-07-01 09:40:55,033 [DEBUG][       Thread-600484][   transport.py][1871] : server lang: <none>
2025-07-01 09:40:55,033 [DEBUG][       Thread-600484][   transport.py][1871] : kex follows: False
2025-07-01 09:40:55,033 [DEBUG][       Thread-600484][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:40:55,033 [DEBUG][       Thread-600484][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:40:55,033 [DEBUG][       Thread-600484][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:40:55,033 [DEBUG][       Thread-600484][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:40:55,033 [DEBUG][       Thread-600484][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:40:55,033 [DEBUG][       Thread-600484][   transport.py][1871] : Compression: none
2025-07-01 09:40:55,033 [DEBUG][       Thread-600484][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:40:55,049 [DEBUG][       Thread-600484][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:40:55,049 [DEBUG][       Thread-600484][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:40:55,049 [DEBUG][       Thread-600484][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:40:55,049 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:40:55,049 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:40:55,050 [DEBUG][       Thread-600484][   transport.py][1871] : userauth is OK
2025-07-01 09:40:55,074 [ INFO][       Thread-600484][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:40:55,075 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:40:55,918 [DEBUG][       Thread-600484][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:40:55,918 [DEBUG][       Thread-600484][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:40:55,961 [DEBUG][       Thread-600484][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:40:55,961 [DEBUG][       Thread-600484][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:40:55,965 [DEBUG][       Thread-600484][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:40:55,978 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:40:55,979 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:40:55,980 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:40:55,982 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:40:55,988 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:40:55,990 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:40:55,990 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:40:55,991 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:40:55,991 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.319739 -999.00   +9.50  36.10     54   +0.70 1 1 2 1 1   887    0 9.52 43.59 ----- 36.1 36.1 23.0 46.8 12.6 -23.9 11.6 -23.3 10.5 -22.8 11.5 -21.7
2025-07-01 09:40:55,991 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:40:55,991 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:40:55,991 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.319739
2025-07-01 09:40:55,992 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:40:55,992 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:40:55,992 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:40:55,992 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:40:55,992 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:40:55,993 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:40:48', tmtdew=10.02, humidity=49.51, cloud=0.0, wind=41.43, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:40:25.450', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:40:55,994 [DEBUG][       Thread-600484][   transport.py][1871] : EOF in transport thread
2025-07-01 09:40:56,077 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:40:56,089 [DEBUG][       Thread-600487][   transport.py][1871] : starting thread (client mode): 0x83c8400
2025-07-01 09:40:56,089 [DEBUG][       Thread-600487][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:40:56,107 [DEBUG][       Thread-600487][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:40:56,107 [ INFO][       Thread-600487][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:40:56,114 [DEBUG][       Thread-600487][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:40:56,114 [DEBUG][       Thread-600487][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:40:56,115 [DEBUG][       Thread-600487][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:40:56,115 [DEBUG][       Thread-600487][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:40:56,115 [DEBUG][       Thread-600487][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:40:56,115 [DEBUG][       Thread-600487][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:40:56,115 [DEBUG][       Thread-600487][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:40:56,115 [DEBUG][       Thread-600487][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:40:56,115 [DEBUG][       Thread-600487][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:40:56,115 [DEBUG][       Thread-600487][   transport.py][1871] : client lang: <none>
2025-07-01 09:40:56,115 [DEBUG][       Thread-600487][   transport.py][1871] : server lang: <none>
2025-07-01 09:40:56,115 [DEBUG][       Thread-600487][   transport.py][1871] : kex follows: False
2025-07-01 09:40:56,115 [DEBUG][       Thread-600487][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:40:56,115 [DEBUG][       Thread-600487][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:40:56,115 [DEBUG][       Thread-600487][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:40:56,115 [DEBUG][       Thread-600487][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:40:56,115 [DEBUG][       Thread-600487][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:40:56,115 [DEBUG][       Thread-600487][   transport.py][1871] : Compression: none
2025-07-01 09:40:56,115 [DEBUG][       Thread-600487][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:40:56,180 [DEBUG][       Thread-600487][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:40:56,181 [DEBUG][       Thread-600487][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:40:56,181 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:40:56,182 [DEBUG][       Thread-600487][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:40:56,183 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:40:56,238 [DEBUG][       Thread-600487][   transport.py][1871] : userauth is OK
2025-07-01 09:40:56,239 [DEBUG][       Thread-600487][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:40:56,239 [DEBUG][       Thread-600487][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:40:56,239 [DEBUG][       Thread-600487][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:40:56,239 [DEBUG][       Thread-600487][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:40:56,260 [ INFO][       Thread-600487][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:40:56,261 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:40:56,261 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:40:57,289 [DEBUG][       Thread-600487][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:40:57,289 [DEBUG][       Thread-600487][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:40:57,339 [DEBUG][       Thread-600487][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:40:57,339 [DEBUG][       Thread-600487][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:40:57,348 [DEBUG][       Thread-600487][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:40:57,356 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:40:57,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-07-01 09:40:57,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-07-01 09:40:57,371 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:40:57,372 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:40:57,372 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:40:57,379 [DEBUG][       Thread-600487][   transport.py][1871] : EOF in transport thread
2025-07-01 09:41:03,471 [DEBUG][Thread-600489 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:41:07,380 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:41:07,380 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:41:07,380 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:41:07,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-07-01 09:41:07,857 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 40, 48), 10.02, 49.51, 0.0, 41.43, 9.48, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:41:07,857 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:40:48
2025-07-01 09:41:07,941 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:41:07,945 [DEBUG][       Thread-600490][   transport.py][1871] : starting thread (client mode): 0x8104040
2025-07-01 09:41:07,945 [DEBUG][       Thread-600490][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:41:07,966 [DEBUG][       Thread-600490][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:41:07,966 [ INFO][       Thread-600490][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:41:07,970 [DEBUG][       Thread-600490][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:41:07,970 [DEBUG][       Thread-600490][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:41:07,970 [DEBUG][       Thread-600490][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:41:07,970 [DEBUG][       Thread-600490][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:41:07,970 [DEBUG][       Thread-600490][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:41:07,970 [DEBUG][       Thread-600490][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:41:07,970 [DEBUG][       Thread-600490][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:41:07,970 [DEBUG][       Thread-600490][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:41:07,970 [DEBUG][       Thread-600490][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:41:07,970 [DEBUG][       Thread-600490][   transport.py][1871] : client lang: <none>
2025-07-01 09:41:07,970 [DEBUG][       Thread-600490][   transport.py][1871] : server lang: <none>
2025-07-01 09:41:07,970 [DEBUG][       Thread-600490][   transport.py][1871] : kex follows: False
2025-07-01 09:41:07,970 [DEBUG][       Thread-600490][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:41:07,970 [DEBUG][       Thread-600490][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:41:07,970 [DEBUG][       Thread-600490][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:41:07,970 [DEBUG][       Thread-600490][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:41:07,970 [DEBUG][       Thread-600490][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:41:07,970 [DEBUG][       Thread-600490][   transport.py][1871] : Compression: none
2025-07-01 09:41:07,970 [DEBUG][       Thread-600490][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:41:07,987 [DEBUG][       Thread-600490][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:41:07,987 [DEBUG][       Thread-600490][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:41:07,988 [DEBUG][       Thread-600490][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:41:07,988 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:41:07,988 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:41:07,989 [DEBUG][       Thread-600490][   transport.py][1871] : userauth is OK
2025-07-01 09:41:08,002 [ INFO][       Thread-600490][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:41:08,002 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:41:08,649 [DEBUG][       Thread-600490][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:41:08,649 [DEBUG][       Thread-600490][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:41:08,692 [DEBUG][       Thread-600490][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:41:08,693 [DEBUG][       Thread-600490][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:41:08,696 [DEBUG][       Thread-600490][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:41:08,709 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:41:08,710 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:41:08,711 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:41:08,712 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:41:08,717 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:41:08,718 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:41:08,718 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:41:08,719 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:41:08,719 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.320086 -999.00   +9.40  37.97     54   +0.60 1 1 2 1 1   887    0 9.50 40.90 ----- 38.0 38.0 18.6 68.0 12.6 -23.6 11.5 -24.1 10.6 -23.5 11.5 -21.8
2025-07-01 09:41:08,719 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:41:08,719 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:41:08,719 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.320086
2025-07-01 09:41:08,720 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:41:08,720 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:41:08,720 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:41:08,720 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:41:08,720 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:41:08,721 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:40:48', tmtdew=10.02, humidity=49.51, cloud=0.0, wind=41.43, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:40:55.430', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:41:08,722 [DEBUG][       Thread-600490][   transport.py][1871] : EOF in transport thread
2025-07-01 09:41:08,804 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:41:08,817 [DEBUG][       Thread-600493][   transport.py][1871] : starting thread (client mode): 0x81a67a0
2025-07-01 09:41:08,817 [DEBUG][       Thread-600493][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:41:08,837 [DEBUG][       Thread-600493][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:41:08,837 [ INFO][       Thread-600493][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:41:08,848 [DEBUG][       Thread-600493][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:41:08,848 [DEBUG][       Thread-600493][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:41:08,848 [DEBUG][       Thread-600493][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:41:08,848 [DEBUG][       Thread-600493][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:41:08,848 [DEBUG][       Thread-600493][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:41:08,848 [DEBUG][       Thread-600493][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:41:08,848 [DEBUG][       Thread-600493][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:41:08,848 [DEBUG][       Thread-600493][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:41:08,848 [DEBUG][       Thread-600493][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:41:08,848 [DEBUG][       Thread-600493][   transport.py][1871] : client lang: <none>
2025-07-01 09:41:08,848 [DEBUG][       Thread-600493][   transport.py][1871] : server lang: <none>
2025-07-01 09:41:08,849 [DEBUG][       Thread-600493][   transport.py][1871] : kex follows: False
2025-07-01 09:41:08,849 [DEBUG][       Thread-600493][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:41:08,849 [DEBUG][       Thread-600493][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:41:08,849 [DEBUG][       Thread-600493][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:41:08,849 [DEBUG][       Thread-600493][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:41:08,849 [DEBUG][       Thread-600493][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:41:08,849 [DEBUG][       Thread-600493][   transport.py][1871] : Compression: none
2025-07-01 09:41:08,849 [DEBUG][       Thread-600493][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:41:08,910 [DEBUG][       Thread-600493][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:41:08,910 [DEBUG][       Thread-600493][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:41:08,910 [DEBUG][       Thread-600493][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:41:08,910 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:41:08,910 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:41:08,970 [DEBUG][       Thread-600493][   transport.py][1871] : userauth is OK
2025-07-01 09:41:08,970 [DEBUG][       Thread-600493][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:41:08,970 [DEBUG][       Thread-600493][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:41:08,970 [DEBUG][       Thread-600493][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:41:08,970 [DEBUG][       Thread-600493][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:41:08,983 [ INFO][       Thread-600493][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:41:08,983 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:41:08,984 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:41:10,010 [DEBUG][       Thread-600493][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:41:10,010 [DEBUG][       Thread-600493][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:41:10,063 [DEBUG][       Thread-600493][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:41:10,064 [DEBUG][       Thread-600493][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:41:10,073 [DEBUG][       Thread-600493][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:41:10,082 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:41:10,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-07-01 09:41:10,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') -> 00000000
2025-07-01 09:41:10,101 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:41:10,101 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:41:10,102 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:41:10,110 [DEBUG][       Thread-600493][   transport.py][1871] : EOF in transport thread
2025-07-01 09:41:12,507 [DEBUG][Thread-600495 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:41:20,112 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:41:20,112 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:41:20,112 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:41:20,115 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:41:20,595 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 40, 48), 10.02, 49.51, 0.0, 41.43, 9.48, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:41:20,595 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:40:48
2025-07-01 09:41:20,680 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:41:20,684 [DEBUG][       Thread-600496][   transport.py][1871] : starting thread (client mode): 0x75a9420
2025-07-01 09:41:20,684 [DEBUG][       Thread-600496][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:41:20,703 [DEBUG][       Thread-600496][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:41:20,703 [ INFO][       Thread-600496][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:41:20,705 [DEBUG][       Thread-600496][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:41:20,705 [DEBUG][       Thread-600496][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:41:20,705 [DEBUG][       Thread-600496][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:41:20,705 [DEBUG][       Thread-600496][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:41:20,705 [DEBUG][       Thread-600496][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:41:20,705 [DEBUG][       Thread-600496][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:41:20,705 [DEBUG][       Thread-600496][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:41:20,705 [DEBUG][       Thread-600496][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:41:20,705 [DEBUG][       Thread-600496][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:41:20,705 [DEBUG][       Thread-600496][   transport.py][1871] : client lang: <none>
2025-07-01 09:41:20,705 [DEBUG][       Thread-600496][   transport.py][1871] : server lang: <none>
2025-07-01 09:41:20,705 [DEBUG][       Thread-600496][   transport.py][1871] : kex follows: False
2025-07-01 09:41:20,705 [DEBUG][       Thread-600496][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:41:20,705 [DEBUG][       Thread-600496][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:41:20,705 [DEBUG][       Thread-600496][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:41:20,705 [DEBUG][       Thread-600496][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:41:20,705 [DEBUG][       Thread-600496][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:41:20,705 [DEBUG][       Thread-600496][   transport.py][1871] : Compression: none
2025-07-01 09:41:20,705 [DEBUG][       Thread-600496][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:41:20,713 [DEBUG][       Thread-600496][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:41:20,714 [DEBUG][       Thread-600496][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:41:20,714 [DEBUG][       Thread-600496][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:41:20,714 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:41:20,714 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:41:20,716 [DEBUG][       Thread-600496][   transport.py][1871] : userauth is OK
2025-07-01 09:41:20,728 [ INFO][       Thread-600496][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:41:20,729 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:41:21,095 [DEBUG][Thread-600498 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:41:21,519 [DEBUG][       Thread-600496][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:41:21,519 [DEBUG][       Thread-600496][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:41:21,526 [DEBUG][Thread-600499 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:41:21,560 [DEBUG][       Thread-600496][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:41:21,560 [DEBUG][       Thread-600496][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:41:21,562 [DEBUG][       Thread-600496][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:41:21,574 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:41:21,574 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:41:21,576 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:41:21,576 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:41:21,578 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:41:21,579 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:41:21,579 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:41:21,579 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:41:21,579 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.320086 -999.00   +9.40  37.97     54   +0.60 1 1 2 1 1   887    0 9.50 40.90 ----- 38.0 38.0 18.6 68.0 12.6 -23.6 11.5 -24.1 10.6 -23.5 11.5 -21.8
2025-07-01 09:41:21,579 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:41:21,579 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:41:21,579 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.320086
2025-07-01 09:41:21,579 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:41:21,579 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:41:21,579 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:41:21,579 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:41:21,579 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:41:21,579 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:40:48', tmtdew=10.02, humidity=49.51, cloud=0.0, wind=41.43, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:40:55.430', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:41:21,580 [DEBUG][       Thread-600496][   transport.py][1871] : EOF in transport thread
2025-07-01 09:41:21,654 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:41:21,665 [DEBUG][       Thread-600501][   transport.py][1871] : starting thread (client mode): 0x8106d70
2025-07-01 09:41:21,665 [DEBUG][       Thread-600501][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:41:21,681 [DEBUG][       Thread-600501][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:41:21,681 [ INFO][       Thread-600501][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:41:21,688 [DEBUG][       Thread-600501][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:41:21,688 [DEBUG][       Thread-600501][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:41:21,688 [DEBUG][       Thread-600501][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:41:21,688 [DEBUG][       Thread-600501][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:41:21,688 [DEBUG][       Thread-600501][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:41:21,688 [DEBUG][       Thread-600501][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:41:21,688 [DEBUG][       Thread-600501][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:41:21,688 [DEBUG][       Thread-600501][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:41:21,688 [DEBUG][       Thread-600501][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:41:21,689 [DEBUG][       Thread-600501][   transport.py][1871] : client lang: <none>
2025-07-01 09:41:21,689 [DEBUG][       Thread-600501][   transport.py][1871] : server lang: <none>
2025-07-01 09:41:21,689 [DEBUG][       Thread-600501][   transport.py][1871] : kex follows: False
2025-07-01 09:41:21,689 [DEBUG][       Thread-600501][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:41:21,689 [DEBUG][       Thread-600501][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:41:21,689 [DEBUG][       Thread-600501][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:41:21,689 [DEBUG][       Thread-600501][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:41:21,689 [DEBUG][       Thread-600501][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:41:21,689 [DEBUG][       Thread-600501][   transport.py][1871] : Compression: none
2025-07-01 09:41:21,689 [DEBUG][       Thread-600501][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:41:21,745 [DEBUG][       Thread-600501][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:41:21,745 [DEBUG][       Thread-600501][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:41:21,745 [DEBUG][       Thread-600501][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:41:21,745 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:41:21,745 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:41:21,802 [DEBUG][       Thread-600501][   transport.py][1871] : userauth is OK
2025-07-01 09:41:21,802 [DEBUG][       Thread-600501][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:41:21,802 [DEBUG][       Thread-600501][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:41:21,802 [DEBUG][       Thread-600501][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:41:21,802 [DEBUG][       Thread-600501][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:41:21,823 [ INFO][       Thread-600501][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:41:21,823 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:41:21,823 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:41:22,828 [DEBUG][       Thread-600501][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:41:22,828 [DEBUG][       Thread-600501][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:41:22,879 [DEBUG][       Thread-600501][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:41:22,879 [DEBUG][       Thread-600501][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:41:22,888 [DEBUG][       Thread-600501][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:41:22,896 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:41: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')
2025-07-01 09:41:22,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-07-01 09:41:22,912 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:41:22,912 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:41:22,912 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:41:22,920 [DEBUG][       Thread-600501][   transport.py][1871] : EOF in transport thread
2025-07-01 09:41:30,549 [DEBUG][Thread-600503 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:41:32,916 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:41:32,916 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:41:32,916 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:41:32,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-07-01 09:41:33,391 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 41, 21), 10.05, 49.74, 0.0, 34.67, 9.48, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:41:33,391 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:41:21
2025-07-01 09:41:33,475 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:41:33,481 [DEBUG][       Thread-600504][   transport.py][1871] : starting thread (client mode): 0x75a9630
2025-07-01 09:41:33,481 [DEBUG][       Thread-600504][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:41:33,492 [DEBUG][       Thread-600504][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:41:33,492 [ INFO][       Thread-600504][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:41:33,494 [DEBUG][       Thread-600504][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:41:33,494 [DEBUG][       Thread-600504][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:41:33,494 [DEBUG][       Thread-600504][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:41:33,494 [DEBUG][       Thread-600504][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:41:33,494 [DEBUG][       Thread-600504][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:41:33,494 [DEBUG][       Thread-600504][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:41:33,494 [DEBUG][       Thread-600504][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:41:33,494 [DEBUG][       Thread-600504][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:41:33,494 [DEBUG][       Thread-600504][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:41:33,494 [DEBUG][       Thread-600504][   transport.py][1871] : client lang: <none>
2025-07-01 09:41:33,494 [DEBUG][       Thread-600504][   transport.py][1871] : server lang: <none>
2025-07-01 09:41:33,494 [DEBUG][       Thread-600504][   transport.py][1871] : kex follows: False
2025-07-01 09:41:33,494 [DEBUG][       Thread-600504][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:41:33,494 [DEBUG][       Thread-600504][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:41:33,494 [DEBUG][       Thread-600504][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:41:33,494 [DEBUG][       Thread-600504][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:41:33,494 [DEBUG][       Thread-600504][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:41:33,494 [DEBUG][       Thread-600504][   transport.py][1871] : Compression: none
2025-07-01 09:41:33,494 [DEBUG][       Thread-600504][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:41:33,507 [DEBUG][       Thread-600504][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:41:33,507 [DEBUG][       Thread-600504][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:41:33,508 [DEBUG][       Thread-600504][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:41:33,508 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:41:33,508 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:41:33,509 [DEBUG][       Thread-600504][   transport.py][1871] : userauth is OK
2025-07-01 09:41:33,522 [ INFO][       Thread-600504][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:41:33,523 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:41:34,333 [DEBUG][       Thread-600504][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:41:34,333 [DEBUG][       Thread-600504][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:41:34,377 [DEBUG][       Thread-600504][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:41:34,377 [DEBUG][       Thread-600504][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:41:34,381 [DEBUG][       Thread-600504][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:41:34,395 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:41:34,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:41:34,398 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:41:34,399 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:41:34,404 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:41:34,406 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:41:34,406 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:41:34,407 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:41:34,407 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.320086 -999.00   +9.40  37.97     54   +0.60 1 1 2 1 1   887    0 9.50 40.90 ----- 38.0 38.0 18.6 68.0 12.6 -23.6 11.5 -24.1 10.6 -23.5 11.5 -21.8
2025-07-01 09:41:34,407 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:41:34,407 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:41:34,407 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.320086
2025-07-01 09:41:34,408 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:41:34,408 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:41:34,408 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:41:34,408 [DEBUG][       Thread-600504][   transport.py][1871] : EOF in transport thread
2025-07-01 09:41:34,409 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:41:34,409 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:41:34,409 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:41:21', tmtdew=10.05, humidity=49.74, cloud=0.0, wind=34.67, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:40:55.430', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:41:34,492 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:41:34,510 [DEBUG][       Thread-600507][   transport.py][1871] : starting thread (client mode): 0x81e7760
2025-07-01 09:41:34,510 [DEBUG][       Thread-600507][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:41:34,524 [DEBUG][       Thread-600507][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:41:34,524 [ INFO][       Thread-600507][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:41:34,532 [DEBUG][       Thread-600507][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:41:34,532 [DEBUG][       Thread-600507][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:41:34,532 [DEBUG][       Thread-600507][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:41:34,532 [DEBUG][       Thread-600507][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:41:34,532 [DEBUG][       Thread-600507][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:41:34,532 [DEBUG][       Thread-600507][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:41:34,532 [DEBUG][       Thread-600507][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:41:34,532 [DEBUG][       Thread-600507][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:41:34,532 [DEBUG][       Thread-600507][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:41:34,532 [DEBUG][       Thread-600507][   transport.py][1871] : client lang: <none>
2025-07-01 09:41:34,532 [DEBUG][       Thread-600507][   transport.py][1871] : server lang: <none>
2025-07-01 09:41:34,532 [DEBUG][       Thread-600507][   transport.py][1871] : kex follows: False
2025-07-01 09:41:34,532 [DEBUG][       Thread-600507][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:41:34,533 [DEBUG][       Thread-600507][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:41:34,533 [DEBUG][       Thread-600507][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:41:34,533 [DEBUG][       Thread-600507][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:41:34,533 [DEBUG][       Thread-600507][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:41:34,533 [DEBUG][       Thread-600507][   transport.py][1871] : Compression: none
2025-07-01 09:41:34,533 [DEBUG][       Thread-600507][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:41:34,590 [DEBUG][       Thread-600507][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:41:34,590 [DEBUG][       Thread-600507][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:41:34,591 [DEBUG][       Thread-600507][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:41:34,591 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:41:34,592 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:41:34,647 [DEBUG][       Thread-600507][   transport.py][1871] : userauth is OK
2025-07-01 09:41:34,648 [DEBUG][       Thread-600507][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:41:34,648 [DEBUG][       Thread-600507][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:41:34,648 [DEBUG][       Thread-600507][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:41:34,648 [DEBUG][       Thread-600507][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:41:34,667 [ INFO][       Thread-600507][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:41:34,668 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:41:34,668 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:41:35,622 [DEBUG][       Thread-600507][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:41:35,623 [DEBUG][       Thread-600507][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:41:35,672 [DEBUG][       Thread-600507][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:41:35,672 [DEBUG][       Thread-600507][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:41:35,681 [DEBUG][       Thread-600507][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:41:35,690 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:41:35,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-07-01 09:41:35,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-07-01 09:41:35,707 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:41:35,707 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:41:35,708 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:41:35,715 [DEBUG][       Thread-600507][   transport.py][1871] : EOF in transport thread
2025-07-01 09:41:39,568 [DEBUG][Thread-600509 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:41:45,712 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:41:45,712 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:41:45,712 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:41: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-07-01 09:41:46,199 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 41, 21), 10.05, 49.74, 0.0, 34.67, 9.48, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:41:46,199 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:41:21
2025-07-01 09:41:46,286 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:41:46,289 [DEBUG][       Thread-600510][   transport.py][1871] : starting thread (client mode): 0x75a9c90
2025-07-01 09:41:46,289 [DEBUG][       Thread-600510][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:41:46,311 [DEBUG][       Thread-600510][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:41:46,311 [ INFO][       Thread-600510][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:41:46,315 [DEBUG][       Thread-600510][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:41:46,315 [DEBUG][       Thread-600510][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:41:46,315 [DEBUG][       Thread-600510][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:41:46,315 [DEBUG][       Thread-600510][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:41:46,315 [DEBUG][       Thread-600510][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:41:46,315 [DEBUG][       Thread-600510][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:41:46,315 [DEBUG][       Thread-600510][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:41:46,315 [DEBUG][       Thread-600510][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:41:46,315 [DEBUG][       Thread-600510][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:41:46,315 [DEBUG][       Thread-600510][   transport.py][1871] : client lang: <none>
2025-07-01 09:41:46,315 [DEBUG][       Thread-600510][   transport.py][1871] : server lang: <none>
2025-07-01 09:41:46,315 [DEBUG][       Thread-600510][   transport.py][1871] : kex follows: False
2025-07-01 09:41:46,315 [DEBUG][       Thread-600510][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:41:46,315 [DEBUG][       Thread-600510][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:41:46,315 [DEBUG][       Thread-600510][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:41:46,315 [DEBUG][       Thread-600510][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:41:46,315 [DEBUG][       Thread-600510][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:41:46,315 [DEBUG][       Thread-600510][   transport.py][1871] : Compression: none
2025-07-01 09:41:46,315 [DEBUG][       Thread-600510][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:41:46,330 [DEBUG][       Thread-600510][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:41:46,330 [DEBUG][       Thread-600510][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:41:46,330 [DEBUG][       Thread-600510][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:41:46,330 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:41:46,331 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:41:46,331 [DEBUG][       Thread-600510][   transport.py][1871] : userauth is OK
2025-07-01 09:41:46,356 [ INFO][       Thread-600510][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:41:46,357 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:41:47,017 [DEBUG][       Thread-600510][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:41:47,025 [DEBUG][       Thread-600510][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:41:47,060 [DEBUG][       Thread-600510][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:41:47,061 [DEBUG][       Thread-600510][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:41:47,064 [DEBUG][       Thread-600510][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:41:47,076 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:41:47,077 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:41:47,078 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:41:47,080 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:41:47,085 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:41:47,086 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:41:47,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:41:47,086 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:41:47,086 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.320434 -999.00   +9.50  34.76     54   +0.80 1 1 2 1 1   887    0 9.64 42.99 ----- 34.8 34.8 22.5 50.9 12.6 -22.7 11.6 -23.7 10.5 -22.7 11.5 -21.7
2025-07-01 09:41:47,086 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:41:47,086 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:41:47,086 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.320434
2025-07-01 09:41:47,086 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:41:47,086 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:41:47,086 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:41:47,086 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:41:47,086 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:41:47,087 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:41:21', tmtdew=10.05, humidity=49.74, cloud=0.0, wind=34.67, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:41:25.498', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:41:47,087 [DEBUG][       Thread-600510][   transport.py][1871] : EOF in transport thread
2025-07-01 09:41:47,171 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:41:47,181 [DEBUG][       Thread-600513][   transport.py][1871] : starting thread (client mode): 0x8106aa0
2025-07-01 09:41:47,181 [DEBUG][       Thread-600513][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:41:47,196 [DEBUG][       Thread-600513][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:41:47,196 [ INFO][       Thread-600513][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:41:47,204 [DEBUG][       Thread-600513][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:41:47,204 [DEBUG][       Thread-600513][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:41:47,204 [DEBUG][       Thread-600513][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:41:47,204 [DEBUG][       Thread-600513][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:41:47,205 [DEBUG][       Thread-600513][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:41:47,205 [DEBUG][       Thread-600513][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:41:47,205 [DEBUG][       Thread-600513][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:41:47,205 [DEBUG][       Thread-600513][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:41:47,205 [DEBUG][       Thread-600513][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:41:47,205 [DEBUG][       Thread-600513][   transport.py][1871] : client lang: <none>
2025-07-01 09:41:47,205 [DEBUG][       Thread-600513][   transport.py][1871] : server lang: <none>
2025-07-01 09:41:47,205 [DEBUG][       Thread-600513][   transport.py][1871] : kex follows: False
2025-07-01 09:41:47,205 [DEBUG][       Thread-600513][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:41:47,205 [DEBUG][       Thread-600513][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:41:47,205 [DEBUG][       Thread-600513][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:41:47,205 [DEBUG][       Thread-600513][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:41:47,205 [DEBUG][       Thread-600513][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:41:47,205 [DEBUG][       Thread-600513][   transport.py][1871] : Compression: none
2025-07-01 09:41:47,205 [DEBUG][       Thread-600513][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:41:47,265 [DEBUG][       Thread-600513][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:41:47,266 [DEBUG][       Thread-600513][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:41:47,266 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:41:47,267 [DEBUG][       Thread-600513][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:41:47,268 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:41:47,322 [DEBUG][       Thread-600513][   transport.py][1871] : userauth is OK
2025-07-01 09:41:47,322 [DEBUG][       Thread-600513][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:41:47,322 [DEBUG][       Thread-600513][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:41:47,322 [DEBUG][       Thread-600513][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:41:47,322 [DEBUG][       Thread-600513][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:41:47,344 [ INFO][       Thread-600513][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:41:47,345 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:41:47,345 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:41:48,350 [DEBUG][       Thread-600513][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:41:48,350 [DEBUG][       Thread-600513][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:41:48,400 [DEBUG][       Thread-600513][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:41:48,401 [DEBUG][       Thread-600513][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:41:48,410 [DEBUG][       Thread-600513][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:41:48,419 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:41:48,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-07-01 09:41:48,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-07-01 09:41:48,438 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:41:48,438 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:41:48,439 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:41:48,447 [DEBUG][       Thread-600513][   transport.py][1871] : EOF in transport thread
2025-07-01 09:41:48,594 [DEBUG][Thread-600515 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:41:53,006 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:41:53,007 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:41:57,618 [DEBUG][Thread-600516 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:41:58,449 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:41:58,449 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:41:58,450 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:41:58,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-07-01 09:41:58,921 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 41, 52), 10.06, 49.71, 0.0, 36.59, 9.51, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:41:58,921 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:41:52
2025-07-01 09:41:59,005 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:41:59,011 [DEBUG][       Thread-600517][   transport.py][1871] : starting thread (client mode): 0x81a5750
2025-07-01 09:41:59,011 [DEBUG][       Thread-600517][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:41:59,031 [DEBUG][       Thread-600517][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:41:59,031 [ INFO][       Thread-600517][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:41:59,034 [DEBUG][       Thread-600517][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:41:59,034 [DEBUG][       Thread-600517][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:41:59,034 [DEBUG][       Thread-600517][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:41:59,034 [DEBUG][       Thread-600517][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:41:59,034 [DEBUG][       Thread-600517][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:41:59,034 [DEBUG][       Thread-600517][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:41:59,034 [DEBUG][       Thread-600517][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:41:59,034 [DEBUG][       Thread-600517][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:41:59,034 [DEBUG][       Thread-600517][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:41:59,034 [DEBUG][       Thread-600517][   transport.py][1871] : client lang: <none>
2025-07-01 09:41:59,034 [DEBUG][       Thread-600517][   transport.py][1871] : server lang: <none>
2025-07-01 09:41:59,034 [DEBUG][       Thread-600517][   transport.py][1871] : kex follows: False
2025-07-01 09:41:59,034 [DEBUG][       Thread-600517][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:41:59,035 [DEBUG][       Thread-600517][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:41:59,035 [DEBUG][       Thread-600517][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:41:59,035 [DEBUG][       Thread-600517][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:41:59,035 [DEBUG][       Thread-600517][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:41:59,035 [DEBUG][       Thread-600517][   transport.py][1871] : Compression: none
2025-07-01 09:41:59,035 [DEBUG][       Thread-600517][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:41:59,052 [DEBUG][       Thread-600517][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:41:59,052 [DEBUG][       Thread-600517][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:41:59,053 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:41:59,053 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:41:59,054 [DEBUG][       Thread-600517][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:41:59,054 [DEBUG][       Thread-600517][   transport.py][1871] : userauth is OK
2025-07-01 09:41:59,079 [ INFO][       Thread-600517][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:41:59,080 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:41:59,671 [DEBUG][       Thread-600517][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:41:59,671 [DEBUG][       Thread-600517][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:41:59,713 [DEBUG][       Thread-600517][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:41:59,713 [DEBUG][       Thread-600517][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:41:59,715 [DEBUG][       Thread-600517][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:41:59,729 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:41:59,729 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:41:59,731 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:41:59,733 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:41:59,737 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:41:59,739 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:41:59,739 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:41:59,740 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:41:59,740 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.320434 -999.00   +9.50  34.76     54   +0.80 1 1 2 1 1   887    0 9.64 42.99 ----- 34.8 34.8 22.5 50.9 12.6 -22.7 11.6 -23.7 10.5 -22.7 11.5 -21.7
2025-07-01 09:41:59,740 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:41:59,740 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:41:59,741 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.320434
2025-07-01 09:41:59,741 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:41:59,742 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:41:59,742 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:41:59,742 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:41:59,742 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:41:59,742 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:41:52', tmtdew=10.06, humidity=49.71, cloud=0.0, wind=36.59, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:41:25.498', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:41:59,743 [DEBUG][       Thread-600517][   transport.py][1871] : EOF in transport thread
2025-07-01 09:41:59,827 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:41:59,838 [DEBUG][       Thread-600520][   transport.py][1871] : starting thread (client mode): 0x818ee30
2025-07-01 09:41:59,838 [DEBUG][       Thread-600520][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:41:59,860 [DEBUG][       Thread-600520][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:41:59,860 [ INFO][       Thread-600520][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:41:59,868 [DEBUG][       Thread-600520][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:41:59,868 [DEBUG][       Thread-600520][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:41:59,868 [DEBUG][       Thread-600520][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:41:59,868 [DEBUG][       Thread-600520][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:41:59,868 [DEBUG][       Thread-600520][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:41:59,868 [DEBUG][       Thread-600520][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:41:59,868 [DEBUG][       Thread-600520][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:41:59,868 [DEBUG][       Thread-600520][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:41:59,868 [DEBUG][       Thread-600520][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:41:59,868 [DEBUG][       Thread-600520][   transport.py][1871] : client lang: <none>
2025-07-01 09:41:59,868 [DEBUG][       Thread-600520][   transport.py][1871] : server lang: <none>
2025-07-01 09:41:59,869 [DEBUG][       Thread-600520][   transport.py][1871] : kex follows: False
2025-07-01 09:41:59,869 [DEBUG][       Thread-600520][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:41:59,869 [DEBUG][       Thread-600520][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:41:59,869 [DEBUG][       Thread-600520][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:41:59,869 [DEBUG][       Thread-600520][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:41:59,869 [DEBUG][       Thread-600520][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:41:59,869 [DEBUG][       Thread-600520][   transport.py][1871] : Compression: none
2025-07-01 09:41:59,869 [DEBUG][       Thread-600520][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:41:59,926 [DEBUG][       Thread-600520][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:41:59,926 [DEBUG][       Thread-600520][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:41:59,927 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:41:59,928 [DEBUG][       Thread-600520][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:41:59,928 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:41:59,983 [DEBUG][       Thread-600520][   transport.py][1871] : userauth is OK
2025-07-01 09:41:59,983 [DEBUG][       Thread-600520][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:41:59,984 [DEBUG][       Thread-600520][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:41:59,984 [DEBUG][       Thread-600520][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:41:59,984 [DEBUG][       Thread-600520][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:42:00,003 [ INFO][       Thread-600520][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:42:00,003 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:42:00,004 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:42:01,023 [DEBUG][       Thread-600520][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:42:01,024 [DEBUG][       Thread-600520][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:42:01,072 [DEBUG][       Thread-600520][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:42:01,072 [DEBUG][       Thread-600520][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:42:01,081 [DEBUG][       Thread-600520][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:42:01,091 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:42:01,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-07-01 09:42:01,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-07-01 09:42:01,109 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:42:01,110 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:42:01,110 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:42:01,124 [DEBUG][       Thread-600520][   transport.py][1871] : EOF in transport thread
2025-07-01 09:42:06,640 [DEBUG][Thread-600522 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:42:11,121 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:42:11,121 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:42:11,121 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:42:11,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-07-01 09:42:11,592 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 41, 52), 10.06, 49.71, 0.0, 36.59, 9.51, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:42:11,592 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:41:52
2025-07-01 09:42:11,675 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:42:11,679 [DEBUG][       Thread-600523][   transport.py][1871] : starting thread (client mode): 0x8170a00
2025-07-01 09:42:11,679 [DEBUG][       Thread-600523][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:42:11,699 [DEBUG][       Thread-600523][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:42:11,699 [ INFO][       Thread-600523][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:42:11,703 [DEBUG][       Thread-600523][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:42:11,703 [DEBUG][       Thread-600523][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:42:11,703 [DEBUG][       Thread-600523][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:42:11,703 [DEBUG][       Thread-600523][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:42:11,703 [DEBUG][       Thread-600523][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:42:11,703 [DEBUG][       Thread-600523][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:42:11,703 [DEBUG][       Thread-600523][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:42:11,703 [DEBUG][       Thread-600523][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:42:11,703 [DEBUG][       Thread-600523][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:42:11,703 [DEBUG][       Thread-600523][   transport.py][1871] : client lang: <none>
2025-07-01 09:42:11,703 [DEBUG][       Thread-600523][   transport.py][1871] : server lang: <none>
2025-07-01 09:42:11,703 [DEBUG][       Thread-600523][   transport.py][1871] : kex follows: False
2025-07-01 09:42:11,703 [DEBUG][       Thread-600523][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:42:11,703 [DEBUG][       Thread-600523][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:42:11,703 [DEBUG][       Thread-600523][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:42:11,703 [DEBUG][       Thread-600523][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:42:11,703 [DEBUG][       Thread-600523][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:42:11,703 [DEBUG][       Thread-600523][   transport.py][1871] : Compression: none
2025-07-01 09:42:11,703 [DEBUG][       Thread-600523][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:42:11,720 [DEBUG][       Thread-600523][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:42:11,720 [DEBUG][       Thread-600523][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:42:11,721 [DEBUG][       Thread-600523][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:42:11,721 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:42:11,721 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:42:11,722 [DEBUG][       Thread-600523][   transport.py][1871] : userauth is OK
2025-07-01 09:42:11,736 [ INFO][       Thread-600523][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:42:11,737 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:42:12,330 [DEBUG][       Thread-600523][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:42:12,330 [DEBUG][       Thread-600523][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:42:12,372 [DEBUG][       Thread-600523][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:42:12,373 [DEBUG][       Thread-600523][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:42:12,374 [DEBUG][       Thread-600523][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:42:12,382 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:42:12,383 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:42:12,384 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:42:12,385 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:42:12,390 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:42:12,391 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:42:12,391 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:42:12,392 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:42:12,392 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.320781 -999.00   +9.50  39.60     54   +0.70 1 1 2 1 1   887    0 9.63 42.80 ----- 39.6 39.6 16.5 55.4 12.6 -23.4 11.7 -24.1 10.6 -22.9 11.6 -21.7
2025-07-01 09:42:12,392 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:42:12,392 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:42:12,392 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.320781
2025-07-01 09:42:12,393 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:42:12,393 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:42:12,393 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:42:12,393 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:42:12,394 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:42:12,394 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:41:52', tmtdew=10.06, humidity=49.71, cloud=0.0, wind=36.59, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:41:55.478', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:42:12,395 [DEBUG][       Thread-600523][   transport.py][1871] : EOF in transport thread
2025-07-01 09:42:12,477 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:42:12,486 [DEBUG][       Thread-600526][   transport.py][1871] : starting thread (client mode): 0x818fca0
2025-07-01 09:42:12,486 [DEBUG][       Thread-600526][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:42:12,500 [DEBUG][       Thread-600526][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:42:12,500 [ INFO][       Thread-600526][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:42:12,508 [DEBUG][       Thread-600526][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:42:12,508 [DEBUG][       Thread-600526][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:42:12,508 [DEBUG][       Thread-600526][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:42:12,508 [DEBUG][       Thread-600526][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:42:12,508 [DEBUG][       Thread-600526][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:42:12,508 [DEBUG][       Thread-600526][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:42:12,508 [DEBUG][       Thread-600526][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:42:12,508 [DEBUG][       Thread-600526][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:42:12,508 [DEBUG][       Thread-600526][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:42:12,509 [DEBUG][       Thread-600526][   transport.py][1871] : client lang: <none>
2025-07-01 09:42:12,509 [DEBUG][       Thread-600526][   transport.py][1871] : server lang: <none>
2025-07-01 09:42:12,509 [DEBUG][       Thread-600526][   transport.py][1871] : kex follows: False
2025-07-01 09:42:12,509 [DEBUG][       Thread-600526][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:42:12,509 [DEBUG][       Thread-600526][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:42:12,509 [DEBUG][       Thread-600526][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:42:12,509 [DEBUG][       Thread-600526][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:42:12,509 [DEBUG][       Thread-600526][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:42:12,509 [DEBUG][       Thread-600526][   transport.py][1871] : Compression: none
2025-07-01 09:42:12,509 [DEBUG][       Thread-600526][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:42:12,565 [DEBUG][       Thread-600526][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:42:12,566 [DEBUG][       Thread-600526][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:42:12,566 [DEBUG][       Thread-600526][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:42:12,566 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:42:12,567 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:42:12,622 [DEBUG][       Thread-600526][   transport.py][1871] : userauth is OK
2025-07-01 09:42:12,622 [DEBUG][       Thread-600526][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:42:12,622 [DEBUG][       Thread-600526][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:42:12,622 [DEBUG][       Thread-600526][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:42:12,622 [DEBUG][       Thread-600526][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:42:12,640 [ INFO][       Thread-600526][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:42:12,641 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:42:12,641 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:42:13,624 [DEBUG][       Thread-600526][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:42:13,624 [DEBUG][       Thread-600526][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:42:13,671 [DEBUG][       Thread-600526][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:42:13,671 [DEBUG][       Thread-600526][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:42:13,680 [DEBUG][       Thread-600526][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:42:13,687 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:42:13,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-07-01 09:42:13,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') -> 00000000
2025-07-01 09:42:13,703 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:42:13,703 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:42:13,703 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:42:13,711 [DEBUG][       Thread-600526][   transport.py][1871] : EOF in transport thread
2025-07-01 09:42:15,680 [DEBUG][Thread-600528 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:42:21,148 [DEBUG][Thread-600529 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:42:23,712 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:42:23,712 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:42:23,712 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:42:23,713 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:42:24,186 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 41, 52), 10.06, 49.71, 0.0, 36.59, 9.51, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:42:24,186 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:41:52
2025-07-01 09:42:24,273 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:42:24,280 [DEBUG][       Thread-600530][   transport.py][1871] : starting thread (client mode): 0x75a9930
2025-07-01 09:42:24,280 [DEBUG][       Thread-600530][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:42:24,300 [DEBUG][       Thread-600530][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:42:24,300 [ INFO][       Thread-600530][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:42:24,302 [DEBUG][       Thread-600530][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:42:24,302 [DEBUG][       Thread-600530][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:42:24,302 [DEBUG][       Thread-600530][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:42:24,302 [DEBUG][       Thread-600530][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:42:24,302 [DEBUG][       Thread-600530][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:42:24,302 [DEBUG][       Thread-600530][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:42:24,302 [DEBUG][       Thread-600530][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:42:24,302 [DEBUG][       Thread-600530][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:42:24,302 [DEBUG][       Thread-600530][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:42:24,302 [DEBUG][       Thread-600530][   transport.py][1871] : client lang: <none>
2025-07-01 09:42:24,302 [DEBUG][       Thread-600530][   transport.py][1871] : server lang: <none>
2025-07-01 09:42:24,302 [DEBUG][       Thread-600530][   transport.py][1871] : kex follows: False
2025-07-01 09:42:24,302 [DEBUG][       Thread-600530][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:42:24,303 [DEBUG][       Thread-600530][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:42:24,303 [DEBUG][       Thread-600530][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:42:24,303 [DEBUG][       Thread-600530][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:42:24,303 [DEBUG][       Thread-600530][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:42:24,303 [DEBUG][       Thread-600530][   transport.py][1871] : Compression: none
2025-07-01 09:42:24,303 [DEBUG][       Thread-600530][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:42:24,316 [DEBUG][       Thread-600530][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:42:24,316 [DEBUG][       Thread-600530][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:42:24,317 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:42:24,317 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:42:24,318 [DEBUG][       Thread-600530][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:42:24,318 [DEBUG][       Thread-600530][   transport.py][1871] : userauth is OK
2025-07-01 09:42:24,342 [ INFO][       Thread-600530][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:42:24,343 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:42:24,702 [DEBUG][Thread-600532 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:42:24,989 [DEBUG][       Thread-600530][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:42:24,989 [DEBUG][       Thread-600530][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:42:25,037 [DEBUG][       Thread-600530][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:42:25,037 [DEBUG][       Thread-600530][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:42:25,040 [DEBUG][       Thread-600530][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:42:25,051 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:42:25,051 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:42:25,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:42:25,054 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:42:25,058 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:42:25,059 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:42:25,059 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:42:25,059 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:42:25,059 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.320781 -999.00   +9.50  39.60     54   +0.70 1 1 2 1 1   887    0 9.63 42.80 ----- 39.6 39.6 16.5 55.4 12.6 -23.4 11.7 -24.1 10.6 -22.9 11.6 -21.7
2025-07-01 09:42:25,059 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:42:25,059 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:42:25,059 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.320781
2025-07-01 09:42:25,059 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:42:25,059 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:42:25,059 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:42:25,059 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:42:25,059 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:42:25,059 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:41:52', tmtdew=10.06, humidity=49.71, cloud=0.0, wind=36.59, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:41:55.478', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:42:25,060 [DEBUG][       Thread-600530][   transport.py][1871] : EOF in transport thread
2025-07-01 09:42:25,134 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:42:25,148 [DEBUG][       Thread-600534][   transport.py][1871] : starting thread (client mode): 0x81e4970
2025-07-01 09:42:25,148 [DEBUG][       Thread-600534][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:42:25,167 [DEBUG][       Thread-600534][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:42:25,167 [ INFO][       Thread-600534][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:42:25,175 [DEBUG][       Thread-600534][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:42:25,175 [DEBUG][       Thread-600534][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:42:25,175 [DEBUG][       Thread-600534][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:42:25,175 [DEBUG][       Thread-600534][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:42:25,175 [DEBUG][       Thread-600534][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:42:25,175 [DEBUG][       Thread-600534][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:42:25,175 [DEBUG][       Thread-600534][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:42:25,175 [DEBUG][       Thread-600534][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:42:25,175 [DEBUG][       Thread-600534][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:42:25,175 [DEBUG][       Thread-600534][   transport.py][1871] : client lang: <none>
2025-07-01 09:42:25,175 [DEBUG][       Thread-600534][   transport.py][1871] : server lang: <none>
2025-07-01 09:42:25,175 [DEBUG][       Thread-600534][   transport.py][1871] : kex follows: False
2025-07-01 09:42:25,175 [DEBUG][       Thread-600534][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:42:25,175 [DEBUG][       Thread-600534][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:42:25,175 [DEBUG][       Thread-600534][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:42:25,175 [DEBUG][       Thread-600534][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:42:25,175 [DEBUG][       Thread-600534][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:42:25,175 [DEBUG][       Thread-600534][   transport.py][1871] : Compression: none
2025-07-01 09:42:25,175 [DEBUG][       Thread-600534][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:42:25,236 [DEBUG][       Thread-600534][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:42:25,236 [DEBUG][       Thread-600534][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:42:25,236 [DEBUG][       Thread-600534][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:42:25,236 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:42:25,236 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:42:25,294 [DEBUG][       Thread-600534][   transport.py][1871] : userauth is OK
2025-07-01 09:42:25,294 [DEBUG][       Thread-600534][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:42:25,294 [DEBUG][       Thread-600534][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:42:25,294 [DEBUG][       Thread-600534][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:42:25,294 [DEBUG][       Thread-600534][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:42:25,308 [ INFO][       Thread-600534][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:42:25,308 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:42:25,308 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:42:26,315 [DEBUG][       Thread-600534][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:42:26,315 [DEBUG][       Thread-600534][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:42:26,363 [DEBUG][       Thread-600534][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:42:26,363 [DEBUG][       Thread-600534][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:42:26,372 [DEBUG][       Thread-600534][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:42:26,380 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:42:26,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-07-01 09:42:26,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-07-01 09:42:26,396 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:42:26,396 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:42:26,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:42:26,404 [DEBUG][       Thread-600534][   transport.py][1871] : EOF in transport thread
2025-07-01 09:42:33,726 [DEBUG][Thread-600536 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:42:36,407 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:42:36,407 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:42:36,407 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:42:36,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-07-01 09:42:36,873 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 42, 24), 10.13, 49.24, 0.0, 44.64, 9.54, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:42:36,873 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:42:24
2025-07-01 09:42:36,960 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:42:36,964 [DEBUG][       Thread-600537][   transport.py][1871] : starting thread (client mode): 0x75aa410
2025-07-01 09:42:36,964 [DEBUG][       Thread-600537][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:42:36,985 [DEBUG][       Thread-600537][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:42:36,985 [ INFO][       Thread-600537][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:42:36,988 [DEBUG][       Thread-600537][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:42:36,989 [DEBUG][       Thread-600537][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:42:36,989 [DEBUG][       Thread-600537][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:42:36,989 [DEBUG][       Thread-600537][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:42:36,989 [DEBUG][       Thread-600537][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:42:36,989 [DEBUG][       Thread-600537][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:42:36,989 [DEBUG][       Thread-600537][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:42:36,989 [DEBUG][       Thread-600537][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:42:36,989 [DEBUG][       Thread-600537][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:42:36,989 [DEBUG][       Thread-600537][   transport.py][1871] : client lang: <none>
2025-07-01 09:42:36,989 [DEBUG][       Thread-600537][   transport.py][1871] : server lang: <none>
2025-07-01 09:42:36,989 [DEBUG][       Thread-600537][   transport.py][1871] : kex follows: False
2025-07-01 09:42:36,989 [DEBUG][       Thread-600537][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:42:36,989 [DEBUG][       Thread-600537][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:42:36,989 [DEBUG][       Thread-600537][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:42:36,989 [DEBUG][       Thread-600537][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:42:36,989 [DEBUG][       Thread-600537][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:42:36,989 [DEBUG][       Thread-600537][   transport.py][1871] : Compression: none
2025-07-01 09:42:36,989 [DEBUG][       Thread-600537][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:42:37,006 [DEBUG][       Thread-600537][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:42:37,006 [DEBUG][       Thread-600537][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:42:37,007 [DEBUG][       Thread-600537][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:42:37,007 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:42:37,007 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:42:37,009 [DEBUG][       Thread-600537][   transport.py][1871] : userauth is OK
2025-07-01 09:42:37,033 [ INFO][       Thread-600537][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:42:37,034 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:42:37,656 [DEBUG][       Thread-600537][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:42:37,656 [DEBUG][       Thread-600537][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:42:37,697 [DEBUG][       Thread-600537][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:42:37,697 [DEBUG][       Thread-600537][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:42:37,700 [DEBUG][       Thread-600537][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:42:37,714 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:42:37,714 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:42:37,716 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:42:37,718 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:42:37,724 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:42:37,726 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:42:37,726 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:42:37,727 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:42:37,727 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.320781 -999.00   +9.50  39.60     54   +0.70 1 1 2 1 1   887    0 9.63 42.80 ----- 39.6 39.6 16.5 55.4 12.6 -23.4 11.7 -24.1 10.6 -22.9 11.6 -21.7
2025-07-01 09:42:37,727 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:42:37,727 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:42:37,727 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.320781
2025-07-01 09:42:37,728 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:42:37,728 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:42:37,728 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:42:37,728 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:42:37,728 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:42:37,729 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:42:24', tmtdew=10.13, humidity=49.24, cloud=0.0, wind=44.64, temperature=9.54, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:41:55.478', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:42:37,730 [DEBUG][       Thread-600537][   transport.py][1871] : EOF in transport thread
2025-07-01 09:42:37,812 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:42:37,822 [DEBUG][       Thread-600540][   transport.py][1871] : starting thread (client mode): 0x83939d0
2025-07-01 09:42:37,822 [DEBUG][       Thread-600540][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:42:37,837 [DEBUG][       Thread-600540][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:42:37,837 [ INFO][       Thread-600540][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:42:37,845 [DEBUG][       Thread-600540][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:42:37,845 [DEBUG][       Thread-600540][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:42:37,845 [DEBUG][       Thread-600540][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:42:37,845 [DEBUG][       Thread-600540][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:42:37,845 [DEBUG][       Thread-600540][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:42:37,845 [DEBUG][       Thread-600540][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:42:37,845 [DEBUG][       Thread-600540][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:42:37,845 [DEBUG][       Thread-600540][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:42:37,845 [DEBUG][       Thread-600540][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:42:37,845 [DEBUG][       Thread-600540][   transport.py][1871] : client lang: <none>
2025-07-01 09:42:37,845 [DEBUG][       Thread-600540][   transport.py][1871] : server lang: <none>
2025-07-01 09:42:37,845 [DEBUG][       Thread-600540][   transport.py][1871] : kex follows: False
2025-07-01 09:42:37,845 [DEBUG][       Thread-600540][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:42:37,845 [DEBUG][       Thread-600540][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:42:37,845 [DEBUG][       Thread-600540][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:42:37,845 [DEBUG][       Thread-600540][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:42:37,845 [DEBUG][       Thread-600540][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:42:37,845 [DEBUG][       Thread-600540][   transport.py][1871] : Compression: none
2025-07-01 09:42:37,845 [DEBUG][       Thread-600540][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:42:37,902 [DEBUG][       Thread-600540][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:42:37,902 [DEBUG][       Thread-600540][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:42:37,903 [DEBUG][       Thread-600540][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:42:37,903 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:42:37,904 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:42:37,958 [DEBUG][       Thread-600540][   transport.py][1871] : userauth is OK
2025-07-01 09:42:37,959 [DEBUG][       Thread-600540][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:42:37,959 [DEBUG][       Thread-600540][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:42:37,959 [DEBUG][       Thread-600540][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:42:37,959 [DEBUG][       Thread-600540][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:42:37,977 [ INFO][       Thread-600540][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:42:37,978 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:42:37,978 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:42:38,980 [DEBUG][       Thread-600540][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:42:38,980 [DEBUG][       Thread-600540][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:42:39,028 [DEBUG][       Thread-600540][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:42:39,028 [DEBUG][       Thread-600540][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:42:39,037 [DEBUG][       Thread-600540][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:42:39,047 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:42:39,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-07-01 09:42:39,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-07-01 09:42:39,071 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:42:39,071 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:42:39,072 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:42:39,080 [DEBUG][       Thread-600540][   transport.py][1871] : EOF in transport thread
2025-07-01 09:42:42,748 [DEBUG][Thread-600542 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:42:49,076 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:42:49,076 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:42:49,076 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:42:49,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-07-01 09:42:49,547 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 42, 24), 10.13, 49.24, 0.0, 44.64, 9.54, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:42:49,547 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:42:24
2025-07-01 09:42:49,633 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:42:49,639 [DEBUG][       Thread-600543][   transport.py][1871] : starting thread (client mode): 0x75ab550
2025-07-01 09:42:49,639 [DEBUG][       Thread-600543][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:42:49,659 [DEBUG][       Thread-600543][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:42:49,660 [ INFO][       Thread-600543][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:42:49,663 [DEBUG][       Thread-600543][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:42:49,663 [DEBUG][       Thread-600543][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:42:49,663 [DEBUG][       Thread-600543][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:42:49,663 [DEBUG][       Thread-600543][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:42:49,663 [DEBUG][       Thread-600543][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:42:49,663 [DEBUG][       Thread-600543][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:42:49,663 [DEBUG][       Thread-600543][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:42:49,663 [DEBUG][       Thread-600543][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:42:49,663 [DEBUG][       Thread-600543][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:42:49,663 [DEBUG][       Thread-600543][   transport.py][1871] : client lang: <none>
2025-07-01 09:42:49,663 [DEBUG][       Thread-600543][   transport.py][1871] : server lang: <none>
2025-07-01 09:42:49,663 [DEBUG][       Thread-600543][   transport.py][1871] : kex follows: False
2025-07-01 09:42:49,663 [DEBUG][       Thread-600543][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:42:49,663 [DEBUG][       Thread-600543][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:42:49,663 [DEBUG][       Thread-600543][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:42:49,663 [DEBUG][       Thread-600543][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:42:49,663 [DEBUG][       Thread-600543][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:42:49,663 [DEBUG][       Thread-600543][   transport.py][1871] : Compression: none
2025-07-01 09:42:49,663 [DEBUG][       Thread-600543][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:42:49,680 [DEBUG][       Thread-600543][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:42:49,680 [DEBUG][       Thread-600543][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:42:49,681 [DEBUG][       Thread-600543][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:42:49,681 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:42:49,681 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:42:49,725 [DEBUG][       Thread-600543][   transport.py][1871] : userauth is OK
2025-07-01 09:42:49,749 [ INFO][       Thread-600543][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:42:49,750 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:42:50,403 [DEBUG][       Thread-600543][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:42:50,403 [DEBUG][       Thread-600543][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:42:50,445 [DEBUG][       Thread-600543][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:42:50,445 [DEBUG][       Thread-600543][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:42:50,448 [DEBUG][       Thread-600543][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:42:50,460 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:42:50,460 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:42:50,462 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:42:50,464 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:42:50,468 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:42:50,470 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:42:50,470 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:42:50,471 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:42:50,471 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.321128 -999.00   +9.50  43.21     53   +0.60 1 1 2 1 1   887    0 9.53 42.33 ----- 43.2 43.2 26.4 52.8 12.6 -23.3 11.7 -23.5 10.6 -23.0 11.6 -21.9
2025-07-01 09:42:50,471 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:42:50,471 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:42:50,471 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.321128
2025-07-01 09:42:50,471 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:42:50,472 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:42:50,472 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:42:50,472 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:42:50,472 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:42:50,472 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:42:24', tmtdew=10.13, humidity=49.24, cloud=0.0, wind=44.64, temperature=9.54, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:42:25.459', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:42:50,473 [DEBUG][       Thread-600543][   transport.py][1871] : EOF in transport thread
2025-07-01 09:42:50,557 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:42:50,570 [DEBUG][       Thread-600546][   transport.py][1871] : starting thread (client mode): 0x81700a0
2025-07-01 09:42:50,570 [DEBUG][       Thread-600546][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:42:50,589 [DEBUG][       Thread-600546][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:42:50,589 [ INFO][       Thread-600546][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:42:50,600 [DEBUG][       Thread-600546][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:42:50,600 [DEBUG][       Thread-600546][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:42:50,600 [DEBUG][       Thread-600546][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:42:50,600 [DEBUG][       Thread-600546][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:42:50,600 [DEBUG][       Thread-600546][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:42:50,600 [DEBUG][       Thread-600546][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:42:50,600 [DEBUG][       Thread-600546][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:42:50,600 [DEBUG][       Thread-600546][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:42:50,600 [DEBUG][       Thread-600546][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:42:50,600 [DEBUG][       Thread-600546][   transport.py][1871] : client lang: <none>
2025-07-01 09:42:50,600 [DEBUG][       Thread-600546][   transport.py][1871] : server lang: <none>
2025-07-01 09:42:50,600 [DEBUG][       Thread-600546][   transport.py][1871] : kex follows: False
2025-07-01 09:42:50,600 [DEBUG][       Thread-600546][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:42:50,601 [DEBUG][       Thread-600546][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:42:50,601 [DEBUG][       Thread-600546][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:42:50,601 [DEBUG][       Thread-600546][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:42:50,601 [DEBUG][       Thread-600546][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:42:50,601 [DEBUG][       Thread-600546][   transport.py][1871] : Compression: none
2025-07-01 09:42:50,601 [DEBUG][       Thread-600546][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:42:50,658 [DEBUG][       Thread-600546][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:42:50,659 [DEBUG][       Thread-600546][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:42:50,660 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:42:50,660 [DEBUG][       Thread-600546][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:42:50,661 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:42:50,721 [DEBUG][       Thread-600546][   transport.py][1871] : userauth is OK
2025-07-01 09:42:50,721 [DEBUG][       Thread-600546][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:42:50,721 [DEBUG][       Thread-600546][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:42:50,722 [DEBUG][       Thread-600546][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:42:50,722 [DEBUG][       Thread-600546][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:42:50,740 [ INFO][       Thread-600546][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:42:50,741 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:42:50,741 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:42:51,755 [DEBUG][       Thread-600546][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:42:51,755 [DEBUG][       Thread-600546][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:42:51,781 [DEBUG][Thread-600548 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:42:51,803 [DEBUG][       Thread-600546][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:42:51,803 [DEBUG][       Thread-600546][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:42:51,813 [DEBUG][       Thread-600546][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:42:51,822 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:42:51,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-07-01 09:42:51,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-07-01 09:42:51,841 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:42:51,841 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:42:51,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:42:51,852 [DEBUG][       Thread-600546][   transport.py][1871] : EOF in transport thread
2025-07-01 09:42:53,145 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:42:53,146 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:43:00,799 [DEBUG][Thread-600549 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:43:01,851 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:43:01,852 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:43:01,852 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:43:01,855 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:43:02,342 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 42, 56), 10.09, 49.37, 0.0, 44.39, 9.52, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:43:02,342 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:42:56
2025-07-01 09:43:02,429 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:43:02,433 [DEBUG][       Thread-600550][   transport.py][1871] : starting thread (client mode): 0x75a9b40
2025-07-01 09:43:02,433 [DEBUG][       Thread-600550][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:43:02,456 [DEBUG][       Thread-600550][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:43:02,456 [ INFO][       Thread-600550][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:43:02,459 [DEBUG][       Thread-600550][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:43:02,459 [DEBUG][       Thread-600550][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:43:02,459 [DEBUG][       Thread-600550][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:43:02,459 [DEBUG][       Thread-600550][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:43:02,459 [DEBUG][       Thread-600550][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:43:02,459 [DEBUG][       Thread-600550][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:43:02,459 [DEBUG][       Thread-600550][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:43:02,459 [DEBUG][       Thread-600550][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:43:02,459 [DEBUG][       Thread-600550][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:43:02,459 [DEBUG][       Thread-600550][   transport.py][1871] : client lang: <none>
2025-07-01 09:43:02,460 [DEBUG][       Thread-600550][   transport.py][1871] : server lang: <none>
2025-07-01 09:43:02,460 [DEBUG][       Thread-600550][   transport.py][1871] : kex follows: False
2025-07-01 09:43:02,460 [DEBUG][       Thread-600550][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:43:02,460 [DEBUG][       Thread-600550][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:43:02,460 [DEBUG][       Thread-600550][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:43:02,460 [DEBUG][       Thread-600550][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:43:02,460 [DEBUG][       Thread-600550][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:43:02,460 [DEBUG][       Thread-600550][   transport.py][1871] : Compression: none
2025-07-01 09:43:02,460 [DEBUG][       Thread-600550][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:43:02,479 [DEBUG][       Thread-600550][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:43:02,480 [DEBUG][       Thread-600550][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:43:02,481 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:43:02,481 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:43:02,481 [DEBUG][       Thread-600550][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:43:02,482 [DEBUG][       Thread-600550][   transport.py][1871] : userauth is OK
2025-07-01 09:43:02,495 [ INFO][       Thread-600550][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:43:02,496 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:43:03,147 [DEBUG][       Thread-600550][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:43:03,147 [DEBUG][       Thread-600550][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:43:03,189 [DEBUG][       Thread-600550][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:43:03,189 [DEBUG][       Thread-600550][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:43:03,191 [DEBUG][       Thread-600550][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:43:03,199 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:43:03,199 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:43:03,201 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:43:03,202 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:43:03,207 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:43:03,208 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:43:03,208 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:43:03,209 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:43:03,209 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.321128 -999.00   +9.50  43.21     53   +0.60 1 1 2 1 1   887    0 9.53 42.33 ----- 43.2 43.2 26.4 52.8 12.6 -23.3 11.7 -23.5 10.6 -23.0 11.6 -21.9
2025-07-01 09:43:03,209 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:43:03,209 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:43:03,209 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.321128
2025-07-01 09:43:03,210 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:43:03,210 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:43:03,210 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:43:03,211 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:43:03,211 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:43:03,211 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:42:56', tmtdew=10.09, humidity=49.37, cloud=0.0, wind=44.39, temperature=9.52, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:42:25.459', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:43:03,211 [DEBUG][       Thread-600550][   transport.py][1871] : EOF in transport thread
2025-07-01 09:43:03,294 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:43:03,303 [DEBUG][       Thread-600553][   transport.py][1871] : starting thread (client mode): 0x81574f0
2025-07-01 09:43:03,303 [DEBUG][       Thread-600553][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:43:03,318 [DEBUG][       Thread-600553][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:43:03,318 [ INFO][       Thread-600553][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:43:03,326 [DEBUG][       Thread-600553][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:43:03,326 [DEBUG][       Thread-600553][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:43:03,326 [DEBUG][       Thread-600553][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:43:03,326 [DEBUG][       Thread-600553][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:43:03,326 [DEBUG][       Thread-600553][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:43:03,326 [DEBUG][       Thread-600553][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:43:03,326 [DEBUG][       Thread-600553][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:43:03,326 [DEBUG][       Thread-600553][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:43:03,326 [DEBUG][       Thread-600553][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:43:03,326 [DEBUG][       Thread-600553][   transport.py][1871] : client lang: <none>
2025-07-01 09:43:03,326 [DEBUG][       Thread-600553][   transport.py][1871] : server lang: <none>
2025-07-01 09:43:03,326 [DEBUG][       Thread-600553][   transport.py][1871] : kex follows: False
2025-07-01 09:43:03,326 [DEBUG][       Thread-600553][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:43:03,326 [DEBUG][       Thread-600553][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:43:03,326 [DEBUG][       Thread-600553][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:43:03,326 [DEBUG][       Thread-600553][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:43:03,326 [DEBUG][       Thread-600553][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:43:03,327 [DEBUG][       Thread-600553][   transport.py][1871] : Compression: none
2025-07-01 09:43:03,327 [DEBUG][       Thread-600553][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:43:03,391 [DEBUG][       Thread-600553][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:43:03,391 [DEBUG][       Thread-600553][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:43:03,392 [DEBUG][       Thread-600553][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:43:03,392 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:43:03,393 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:43:03,451 [DEBUG][       Thread-600553][   transport.py][1871] : userauth is OK
2025-07-01 09:43:03,451 [DEBUG][       Thread-600553][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:43:03,451 [DEBUG][       Thread-600553][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:43:03,451 [DEBUG][       Thread-600553][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:43:03,451 [DEBUG][       Thread-600553][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:43:03,471 [ INFO][       Thread-600553][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:43:03,471 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:43:03,472 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:43:04,469 [DEBUG][       Thread-600553][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:43:04,469 [DEBUG][       Thread-600553][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:43:04,520 [DEBUG][       Thread-600553][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:43:04,520 [DEBUG][       Thread-600553][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:43:04,530 [DEBUG][       Thread-600553][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:43:04,540 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:43:04,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-07-01 09:43:04,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-07-01 09:43:04,559 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:43:04,559 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:43:04,560 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:43:04,568 [DEBUG][       Thread-600553][   transport.py][1871] : EOF in transport thread
2025-07-01 09:43:09,821 [DEBUG][Thread-600555 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:43:14,570 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:43:14,571 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:43:14,571 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:43:14,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-07-01 09:43:15,047 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 42, 56), 10.09, 49.37, 0.0, 44.39, 9.52, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:43:15,047 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:42:56
2025-07-01 09:43:15,133 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:43:15,139 [DEBUG][       Thread-600556][   transport.py][1871] : starting thread (client mode): 0x818ff70
2025-07-01 09:43:15,139 [DEBUG][       Thread-600556][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:43:15,160 [DEBUG][       Thread-600556][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:43:15,160 [ INFO][       Thread-600556][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:43:15,163 [DEBUG][       Thread-600556][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:43:15,163 [DEBUG][       Thread-600556][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:43:15,163 [DEBUG][       Thread-600556][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:43:15,163 [DEBUG][       Thread-600556][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:43:15,163 [DEBUG][       Thread-600556][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:43:15,163 [DEBUG][       Thread-600556][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:43:15,163 [DEBUG][       Thread-600556][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:43:15,163 [DEBUG][       Thread-600556][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:43:15,163 [DEBUG][       Thread-600556][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:43:15,164 [DEBUG][       Thread-600556][   transport.py][1871] : client lang: <none>
2025-07-01 09:43:15,164 [DEBUG][       Thread-600556][   transport.py][1871] : server lang: <none>
2025-07-01 09:43:15,164 [DEBUG][       Thread-600556][   transport.py][1871] : kex follows: False
2025-07-01 09:43:15,164 [DEBUG][       Thread-600556][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:43:15,164 [DEBUG][       Thread-600556][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:43:15,164 [DEBUG][       Thread-600556][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:43:15,164 [DEBUG][       Thread-600556][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:43:15,164 [DEBUG][       Thread-600556][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:43:15,164 [DEBUG][       Thread-600556][   transport.py][1871] : Compression: none
2025-07-01 09:43:15,164 [DEBUG][       Thread-600556][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:43:15,184 [DEBUG][       Thread-600556][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:43:15,185 [DEBUG][       Thread-600556][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:43:15,185 [DEBUG][       Thread-600556][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:43:15,186 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:43:15,186 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:43:15,187 [DEBUG][       Thread-600556][   transport.py][1871] : userauth is OK
2025-07-01 09:43:15,211 [ INFO][       Thread-600556][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:43:15,212 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:43:15,874 [DEBUG][       Thread-600556][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:43:15,874 [DEBUG][       Thread-600556][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:43:15,917 [DEBUG][       Thread-600556][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:43:15,917 [DEBUG][       Thread-600556][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:43:15,921 [DEBUG][       Thread-600556][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:43:15,933 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:43:15,934 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:43:15,936 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:43:15,938 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:43:15,943 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:43:15,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:43:15,945 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:43:15,946 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:43:15,946 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.321128 -999.00   +9.50  43.21     53   +0.60 1 1 2 1 1   887    0 9.53 42.33 ----- 43.2 43.2 26.4 52.8 12.6 -23.3 11.7 -23.5 10.6 -23.0 11.6 -21.9
2025-07-01 09:43:15,946 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:43:15,946 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:43:15,946 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.321128
2025-07-01 09:43:15,947 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:43:15,947 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:43:15,947 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:43:15,947 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:43:15,947 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:43:15,948 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:42:56', tmtdew=10.09, humidity=49.37, cloud=0.0, wind=44.39, temperature=9.52, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:42:25.459', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:43:15,949 [DEBUG][       Thread-600556][   transport.py][1871] : EOF in transport thread
2025-07-01 09:43:16,035 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:43:16,046 [DEBUG][       Thread-600559][   transport.py][1871] : starting thread (client mode): 0x81a78e0
2025-07-01 09:43:16,046 [DEBUG][       Thread-600559][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:43:16,061 [DEBUG][       Thread-600559][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:43:16,061 [ INFO][       Thread-600559][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:43:16,069 [DEBUG][       Thread-600559][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:43:16,069 [DEBUG][       Thread-600559][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:43:16,069 [DEBUG][       Thread-600559][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:43:16,069 [DEBUG][       Thread-600559][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:43:16,069 [DEBUG][       Thread-600559][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:43:16,069 [DEBUG][       Thread-600559][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:43:16,069 [DEBUG][       Thread-600559][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:43:16,069 [DEBUG][       Thread-600559][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:43:16,069 [DEBUG][       Thread-600559][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:43:16,069 [DEBUG][       Thread-600559][   transport.py][1871] : client lang: <none>
2025-07-01 09:43:16,070 [DEBUG][       Thread-600559][   transport.py][1871] : server lang: <none>
2025-07-01 09:43:16,070 [DEBUG][       Thread-600559][   transport.py][1871] : kex follows: False
2025-07-01 09:43:16,070 [DEBUG][       Thread-600559][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:43:16,070 [DEBUG][       Thread-600559][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:43:16,070 [DEBUG][       Thread-600559][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:43:16,070 [DEBUG][       Thread-600559][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:43:16,070 [DEBUG][       Thread-600559][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:43:16,070 [DEBUG][       Thread-600559][   transport.py][1871] : Compression: none
2025-07-01 09:43:16,070 [DEBUG][       Thread-600559][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:43:16,131 [DEBUG][       Thread-600559][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:43:16,131 [DEBUG][       Thread-600559][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:43:16,132 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:43:16,133 [DEBUG][       Thread-600559][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:43:16,133 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:43:16,186 [DEBUG][       Thread-600559][   transport.py][1871] : userauth is OK
2025-07-01 09:43:16,187 [DEBUG][       Thread-600559][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:43:16,187 [DEBUG][       Thread-600559][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:43:16,187 [DEBUG][       Thread-600559][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:43:16,187 [DEBUG][       Thread-600559][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:43:16,206 [ INFO][       Thread-600559][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:43:16,207 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:43:16,207 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:43:17,204 [DEBUG][       Thread-600559][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:43:17,205 [DEBUG][       Thread-600559][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:43:17,256 [DEBUG][       Thread-600559][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:43:17,256 [DEBUG][       Thread-600559][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:43:17,266 [DEBUG][       Thread-600559][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:43:17,275 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:43:17,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-07-01 09:43:17,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-07-01 09:43:17,293 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:43:17,293 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:43:17,294 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:43:17,302 [DEBUG][       Thread-600559][   transport.py][1871] : EOF in transport thread
2025-07-01 09:43:18,865 [DEBUG][Thread-600561 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:43:21,198 [DEBUG][Thread-600562 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:43:27,304 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:43:27,305 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:43:27,305 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:43:27,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-07-01 09:43:27,776 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 42, 56), 10.09, 49.37, 0.0, 44.39, 9.52, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:43:27,776 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:42:56
2025-07-01 09:43:27,863 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:43:27,869 [DEBUG][       Thread-600563][   transport.py][1871] : starting thread (client mode): 0x75aa6e0
2025-07-01 09:43:27,869 [DEBUG][       Thread-600563][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:43:27,886 [DEBUG][Thread-600564 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:43:27,889 [DEBUG][       Thread-600563][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:43:27,889 [ INFO][       Thread-600563][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:43:27,892 [DEBUG][       Thread-600563][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:43:27,892 [DEBUG][       Thread-600563][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:43:27,892 [DEBUG][       Thread-600563][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:43:27,892 [DEBUG][       Thread-600563][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:43:27,892 [DEBUG][       Thread-600563][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:43:27,892 [DEBUG][       Thread-600563][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:43:27,892 [DEBUG][       Thread-600563][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:43:27,892 [DEBUG][       Thread-600563][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:43:27,892 [DEBUG][       Thread-600563][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:43:27,892 [DEBUG][       Thread-600563][   transport.py][1871] : client lang: <none>
2025-07-01 09:43:27,892 [DEBUG][       Thread-600563][   transport.py][1871] : server lang: <none>
2025-07-01 09:43:27,892 [DEBUG][       Thread-600563][   transport.py][1871] : kex follows: False
2025-07-01 09:43:27,892 [DEBUG][       Thread-600563][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:43:27,892 [DEBUG][       Thread-600563][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:43:27,892 [DEBUG][       Thread-600563][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:43:27,892 [DEBUG][       Thread-600563][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:43:27,892 [DEBUG][       Thread-600563][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:43:27,892 [DEBUG][       Thread-600563][   transport.py][1871] : Compression: none
2025-07-01 09:43:27,892 [DEBUG][       Thread-600563][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:43:27,909 [DEBUG][       Thread-600563][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:43:27,909 [DEBUG][       Thread-600563][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:43:27,910 [DEBUG][       Thread-600563][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:43:27,910 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:43:27,910 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:43:27,911 [DEBUG][       Thread-600563][   transport.py][1871] : userauth is OK
2025-07-01 09:43:27,924 [ INFO][       Thread-600563][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:43:27,924 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:43:28,542 [DEBUG][       Thread-600563][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:43:28,542 [DEBUG][       Thread-600563][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:43:28,584 [DEBUG][       Thread-600563][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:43:28,585 [DEBUG][       Thread-600563][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:43:28,586 [DEBUG][       Thread-600563][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:43:28,598 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:43:28,598 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:43:28,599 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:43:28,600 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:43:28,602 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:43:28,603 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:43:28,603 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:43:28,603 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:43:28,603 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.321475 -999.00   +9.50  41.60     53   +0.60 1 1 2 1 1   887    0 9.75 46.45 ----- 41.6 41.6 24.1 60.0 12.6 -23.3 11.6 -24.7 10.6 -23.5 11.6 -22.3
2025-07-01 09:43:28,603 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:43:28,603 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:43:28,603 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.321475
2025-07-01 09:43:28,604 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:43:28,604 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:43:28,604 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:43:28,604 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:43:28,604 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:43:28,604 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:42:56', tmtdew=10.09, humidity=49.37, cloud=0.0, wind=44.39, temperature=9.52, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:42:55.440', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:43:28,604 [DEBUG][       Thread-600563][   transport.py][1871] : EOF in transport thread
2025-07-01 09:43:28,677 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:43:28,688 [DEBUG][       Thread-600567][   transport.py][1871] : starting thread (client mode): 0x81564d0
2025-07-01 09:43:28,689 [DEBUG][       Thread-600567][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:43:28,709 [DEBUG][       Thread-600567][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:43:28,709 [ INFO][       Thread-600567][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:43:28,717 [DEBUG][       Thread-600567][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:43:28,717 [DEBUG][       Thread-600567][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:43:28,717 [DEBUG][       Thread-600567][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:43:28,717 [DEBUG][       Thread-600567][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:43:28,717 [DEBUG][       Thread-600567][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:43:28,717 [DEBUG][       Thread-600567][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:43:28,717 [DEBUG][       Thread-600567][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:43:28,717 [DEBUG][       Thread-600567][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:43:28,717 [DEBUG][       Thread-600567][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:43:28,717 [DEBUG][       Thread-600567][   transport.py][1871] : client lang: <none>
2025-07-01 09:43:28,717 [DEBUG][       Thread-600567][   transport.py][1871] : server lang: <none>
2025-07-01 09:43:28,717 [DEBUG][       Thread-600567][   transport.py][1871] : kex follows: False
2025-07-01 09:43:28,717 [DEBUG][       Thread-600567][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:43:28,717 [DEBUG][       Thread-600567][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:43:28,717 [DEBUG][       Thread-600567][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:43:28,717 [DEBUG][       Thread-600567][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:43:28,717 [DEBUG][       Thread-600567][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:43:28,717 [DEBUG][       Thread-600567][   transport.py][1871] : Compression: none
2025-07-01 09:43:28,717 [DEBUG][       Thread-600567][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:43:28,777 [DEBUG][       Thread-600567][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:43:28,777 [DEBUG][       Thread-600567][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:43:28,777 [DEBUG][       Thread-600567][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:43:28,777 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:43:28,778 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:43:28,835 [DEBUG][       Thread-600567][   transport.py][1871] : userauth is OK
2025-07-01 09:43:28,835 [DEBUG][       Thread-600567][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:43:28,835 [DEBUG][       Thread-600567][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:43:28,835 [DEBUG][       Thread-600567][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:43:28,835 [DEBUG][       Thread-600567][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:43:28,855 [ INFO][       Thread-600567][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:43:28,855 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:43:28,855 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:43:29,865 [DEBUG][       Thread-600567][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:43:29,865 [DEBUG][       Thread-600567][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:43:29,915 [DEBUG][       Thread-600567][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:43:29,915 [DEBUG][       Thread-600567][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:43:29,929 [DEBUG][       Thread-600567][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:43:29,939 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:43:29,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-07-01 09:43: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-07-01 09:43:29,961 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:43:29,961 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:43:29,961 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:43:29,970 [DEBUG][       Thread-600567][   transport.py][1871] : EOF in transport thread
2025-07-01 09:43:36,905 [DEBUG][Thread-600569 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:43:39,972 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:43:39,972 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:43:39,972 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:43: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-07-01 09:43:40,446 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 43, 28), 10.08, 49.38, 0.0, 38.92, 9.48, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:43:40,446 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:43:28
2025-07-01 09:43:40,533 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:43:40,537 [DEBUG][       Thread-600570][   transport.py][1871] : starting thread (client mode): 0x8107f40
2025-07-01 09:43:40,537 [DEBUG][       Thread-600570][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:43:40,556 [DEBUG][       Thread-600570][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:43:40,556 [ INFO][       Thread-600570][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:43:40,558 [DEBUG][       Thread-600570][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:43:40,558 [DEBUG][       Thread-600570][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:43:40,558 [DEBUG][       Thread-600570][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:43:40,558 [DEBUG][       Thread-600570][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:43:40,558 [DEBUG][       Thread-600570][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:43:40,558 [DEBUG][       Thread-600570][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:43:40,558 [DEBUG][       Thread-600570][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:43:40,558 [DEBUG][       Thread-600570][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:43:40,558 [DEBUG][       Thread-600570][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:43:40,558 [DEBUG][       Thread-600570][   transport.py][1871] : client lang: <none>
2025-07-01 09:43:40,558 [DEBUG][       Thread-600570][   transport.py][1871] : server lang: <none>
2025-07-01 09:43:40,558 [DEBUG][       Thread-600570][   transport.py][1871] : kex follows: False
2025-07-01 09:43:40,558 [DEBUG][       Thread-600570][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:43:40,558 [DEBUG][       Thread-600570][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:43:40,558 [DEBUG][       Thread-600570][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:43:40,558 [DEBUG][       Thread-600570][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:43:40,558 [DEBUG][       Thread-600570][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:43:40,558 [DEBUG][       Thread-600570][   transport.py][1871] : Compression: none
2025-07-01 09:43:40,558 [DEBUG][       Thread-600570][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:43:40,571 [DEBUG][       Thread-600570][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:43:40,571 [DEBUG][       Thread-600570][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:43:40,572 [DEBUG][       Thread-600570][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:43:40,572 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:43:40,572 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:43:40,573 [DEBUG][       Thread-600570][   transport.py][1871] : userauth is OK
2025-07-01 09:43:40,598 [ INFO][       Thread-600570][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:43:40,599 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:43:41,228 [DEBUG][       Thread-600570][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:43:41,228 [DEBUG][       Thread-600570][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:43:41,269 [DEBUG][       Thread-600570][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:43:41,269 [DEBUG][       Thread-600570][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:43:41,271 [DEBUG][       Thread-600570][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:43:41,284 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:43:41,285 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:43:41,286 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:43:41,288 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:43:41,294 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:43:41,296 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:43:41,296 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:43:41,296 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:43:41,297 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.321475 -999.00   +9.50  41.60     53   +0.60 1 1 2 1 1   887    0 9.75 46.45 ----- 41.6 41.6 24.1 60.0 12.6 -23.3 11.6 -24.7 10.6 -23.5 11.6 -22.3
2025-07-01 09:43:41,297 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:43:41,297 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:43:41,297 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.321475
2025-07-01 09:43:41,297 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:43:41,298 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:43:41,298 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:43:41,298 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:43:41,298 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:43:41,298 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:43:28', tmtdew=10.08, humidity=49.38, cloud=0.0, wind=38.92, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:42:55.440', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:43:41,299 [DEBUG][       Thread-600570][   transport.py][1871] : EOF in transport thread
2025-07-01 09:43:41,381 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:43:41,391 [DEBUG][       Thread-600573][   transport.py][1871] : starting thread (client mode): 0x81a7a60
2025-07-01 09:43:41,391 [DEBUG][       Thread-600573][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:43:41,409 [DEBUG][       Thread-600573][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:43:41,409 [ INFO][       Thread-600573][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:43:41,417 [DEBUG][       Thread-600573][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:43:41,417 [DEBUG][       Thread-600573][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:43:41,417 [DEBUG][       Thread-600573][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:43:41,417 [DEBUG][       Thread-600573][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:43:41,417 [DEBUG][       Thread-600573][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:43:41,417 [DEBUG][       Thread-600573][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:43:41,417 [DEBUG][       Thread-600573][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:43:41,417 [DEBUG][       Thread-600573][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:43:41,417 [DEBUG][       Thread-600573][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:43:41,417 [DEBUG][       Thread-600573][   transport.py][1871] : client lang: <none>
2025-07-01 09:43:41,417 [DEBUG][       Thread-600573][   transport.py][1871] : server lang: <none>
2025-07-01 09:43:41,418 [DEBUG][       Thread-600573][   transport.py][1871] : kex follows: False
2025-07-01 09:43:41,418 [DEBUG][       Thread-600573][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:43:41,418 [DEBUG][       Thread-600573][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:43:41,418 [DEBUG][       Thread-600573][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:43:41,418 [DEBUG][       Thread-600573][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:43:41,418 [DEBUG][       Thread-600573][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:43:41,418 [DEBUG][       Thread-600573][   transport.py][1871] : Compression: none
2025-07-01 09:43:41,418 [DEBUG][       Thread-600573][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:43:41,473 [DEBUG][       Thread-600573][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:43:41,473 [DEBUG][       Thread-600573][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:43:41,473 [DEBUG][       Thread-600573][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:43:41,473 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:43:41,473 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:43:41,530 [DEBUG][       Thread-600573][   transport.py][1871] : userauth is OK
2025-07-01 09:43:41,530 [DEBUG][       Thread-600573][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:43:41,530 [DEBUG][       Thread-600573][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:43:41,530 [DEBUG][       Thread-600573][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:43:41,530 [DEBUG][       Thread-600573][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:43:41,546 [ INFO][       Thread-600573][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:43:41,546 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:43:41,547 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:43:42,508 [DEBUG][       Thread-600573][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:43:42,508 [DEBUG][       Thread-600573][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:43:42,556 [DEBUG][       Thread-600573][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:43:42,556 [DEBUG][       Thread-600573][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:43:42,565 [DEBUG][       Thread-600573][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:43:42,574 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:43:42,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-07-01 09:43:42,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-07-01 09:43:42,593 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:43:42,593 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:43:42,593 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:43:42,602 [DEBUG][       Thread-600573][   transport.py][1871] : EOF in transport thread
2025-07-01 09:43:45,927 [DEBUG][Thread-600575 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:43:52,596 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:43:52,596 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:43:52,596 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:43:52,599 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:43:53,065 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 43, 28), 10.08, 49.38, 0.0, 38.92, 9.48, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:43:53,065 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:43:28
2025-07-01 09:43:53,151 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:43:53,157 [DEBUG][       Thread-600576][   transport.py][1871] : starting thread (client mode): 0x8105690
2025-07-01 09:43:53,157 [DEBUG][       Thread-600576][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:43:53,178 [DEBUG][       Thread-600576][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:43:53,178 [ INFO][       Thread-600576][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:43:53,182 [DEBUG][       Thread-600576][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:43:53,182 [DEBUG][       Thread-600576][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:43:53,182 [DEBUG][       Thread-600576][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:43:53,182 [DEBUG][       Thread-600576][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:43:53,182 [DEBUG][       Thread-600576][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:43:53,182 [DEBUG][       Thread-600576][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:43:53,182 [DEBUG][       Thread-600576][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:43:53,182 [DEBUG][       Thread-600576][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:43:53,182 [DEBUG][       Thread-600576][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:43:53,182 [DEBUG][       Thread-600576][   transport.py][1871] : client lang: <none>
2025-07-01 09:43:53,182 [DEBUG][       Thread-600576][   transport.py][1871] : server lang: <none>
2025-07-01 09:43:53,182 [DEBUG][       Thread-600576][   transport.py][1871] : kex follows: False
2025-07-01 09:43:53,182 [DEBUG][       Thread-600576][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:43:53,182 [DEBUG][       Thread-600576][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:43:53,182 [DEBUG][       Thread-600576][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:43:53,183 [DEBUG][       Thread-600576][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:43:53,183 [DEBUG][       Thread-600576][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:43:53,183 [DEBUG][       Thread-600576][   transport.py][1871] : Compression: none
2025-07-01 09:43:53,183 [DEBUG][       Thread-600576][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:43:53,201 [DEBUG][       Thread-600576][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:43:53,202 [DEBUG][       Thread-600576][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:43:53,202 [DEBUG][       Thread-600576][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:43:53,202 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:43:53,203 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:43:53,204 [DEBUG][       Thread-600576][   transport.py][1871] : userauth is OK
2025-07-01 09:43:53,229 [ INFO][       Thread-600576][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:43:53,230 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:43:53,283 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:43:53,284 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:43:53,932 [DEBUG][       Thread-600576][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:43:53,932 [DEBUG][       Thread-600576][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:43:53,977 [DEBUG][       Thread-600576][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:43:53,977 [DEBUG][       Thread-600576][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:43:53,980 [DEBUG][       Thread-600576][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:43:53,990 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:43:53,990 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:43:53,992 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:43:53,993 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:43:53,997 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:43:53,999 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:43:53,999 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:43:53,999 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:43:53,999 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.321822 -999.00   +9.50  41.76     54   +0.70 1 1 2 1 1   887    0 9.81 44.19 ----- 41.8 41.8 21.8 56.0 12.6 -24.6 11.6 -23.5 10.6 -23.2 11.5 -24.1
2025-07-01 09:43:53,999 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:43:54,000 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:43:54,000 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.321822
2025-07-01 09:43:54,000 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:43:54,001 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:43:54,001 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:43:54,001 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:43:54,001 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:43:54,001 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:43:28', tmtdew=10.08, humidity=49.38, cloud=0.0, wind=38.92, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:43:25.421', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:43:54,002 [DEBUG][       Thread-600576][   transport.py][1871] : EOF in transport thread
2025-07-01 09:43:54,084 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:43:54,095 [DEBUG][       Thread-600579][   transport.py][1871] : starting thread (client mode): 0x81570d0
2025-07-01 09:43:54,095 [DEBUG][       Thread-600579][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:43:54,110 [DEBUG][       Thread-600579][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:43:54,110 [ INFO][       Thread-600579][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:43:54,118 [DEBUG][       Thread-600579][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:43:54,118 [DEBUG][       Thread-600579][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:43:54,118 [DEBUG][       Thread-600579][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:43:54,118 [DEBUG][       Thread-600579][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:43:54,118 [DEBUG][       Thread-600579][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:43:54,118 [DEBUG][       Thread-600579][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:43:54,118 [DEBUG][       Thread-600579][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:43:54,118 [DEBUG][       Thread-600579][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:43:54,118 [DEBUG][       Thread-600579][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:43:54,119 [DEBUG][       Thread-600579][   transport.py][1871] : client lang: <none>
2025-07-01 09:43:54,119 [DEBUG][       Thread-600579][   transport.py][1871] : server lang: <none>
2025-07-01 09:43:54,119 [DEBUG][       Thread-600579][   transport.py][1871] : kex follows: False
2025-07-01 09:43:54,119 [DEBUG][       Thread-600579][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:43:54,119 [DEBUG][       Thread-600579][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:43:54,119 [DEBUG][       Thread-600579][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:43:54,119 [DEBUG][       Thread-600579][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:43:54,119 [DEBUG][       Thread-600579][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:43:54,119 [DEBUG][       Thread-600579][   transport.py][1871] : Compression: none
2025-07-01 09:43:54,119 [DEBUG][       Thread-600579][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:43:54,179 [DEBUG][       Thread-600579][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:43:54,180 [DEBUG][       Thread-600579][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:43:54,180 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:43:54,181 [DEBUG][       Thread-600579][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:43:54,181 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:43:54,238 [DEBUG][       Thread-600579][   transport.py][1871] : userauth is OK
2025-07-01 09:43:54,238 [DEBUG][       Thread-600579][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:43:54,238 [DEBUG][       Thread-600579][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:43:54,239 [DEBUG][       Thread-600579][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:43:54,239 [DEBUG][       Thread-600579][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:43:54,258 [ INFO][       Thread-600579][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:43:54,258 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:43:54,258 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:43:54,972 [DEBUG][Thread-600581 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:43:55,283 [DEBUG][       Thread-600579][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:43:55,283 [DEBUG][       Thread-600579][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:43:55,334 [DEBUG][       Thread-600579][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:43:55,334 [DEBUG][       Thread-600579][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:43:55,343 [DEBUG][       Thread-600579][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:43:55,353 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:43:55,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-07-01 09:43:55,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-07-01 09:43:55,371 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:43:55,372 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:43:55,372 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:43:55,380 [DEBUG][       Thread-600579][   transport.py][1871] : EOF in transport thread
2025-07-01 09:44:03,993 [DEBUG][Thread-600582 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:44:05,380 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:44:05,380 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:44:05,380 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:44:05,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-07-01 09:44:05,855 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 43, 28), 10.08, 49.38, 0.0, 38.92, 9.48, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:44:05,855 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:43:28
2025-07-01 09:44:05,941 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:44:05,945 [DEBUG][       Thread-600583][   transport.py][1871] : starting thread (client mode): 0x8107b20
2025-07-01 09:44:05,945 [DEBUG][       Thread-600583][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:44:05,966 [DEBUG][       Thread-600583][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:44:05,966 [ INFO][       Thread-600583][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:44:05,969 [DEBUG][       Thread-600583][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:44:05,969 [DEBUG][       Thread-600583][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:44:05,969 [DEBUG][       Thread-600583][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:44:05,969 [DEBUG][       Thread-600583][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:44:05,969 [DEBUG][       Thread-600583][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:44:05,969 [DEBUG][       Thread-600583][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:44:05,969 [DEBUG][       Thread-600583][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:44:05,969 [DEBUG][       Thread-600583][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:44:05,970 [DEBUG][       Thread-600583][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:44:05,970 [DEBUG][       Thread-600583][   transport.py][1871] : client lang: <none>
2025-07-01 09:44:05,970 [DEBUG][       Thread-600583][   transport.py][1871] : server lang: <none>
2025-07-01 09:44:05,970 [DEBUG][       Thread-600583][   transport.py][1871] : kex follows: False
2025-07-01 09:44:05,970 [DEBUG][       Thread-600583][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:44:05,970 [DEBUG][       Thread-600583][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:44:05,970 [DEBUG][       Thread-600583][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:44:05,970 [DEBUG][       Thread-600583][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:44:05,970 [DEBUG][       Thread-600583][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:44:05,970 [DEBUG][       Thread-600583][   transport.py][1871] : Compression: none
2025-07-01 09:44:05,970 [DEBUG][       Thread-600583][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:44:05,987 [DEBUG][       Thread-600583][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:44:05,987 [DEBUG][       Thread-600583][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:44:05,988 [DEBUG][       Thread-600583][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:44:05,988 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:44:05,988 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:44:05,989 [DEBUG][       Thread-600583][   transport.py][1871] : userauth is OK
2025-07-01 09:44:06,002 [ INFO][       Thread-600583][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:44:06,003 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:44:06,620 [DEBUG][       Thread-600583][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:44:06,620 [DEBUG][       Thread-600583][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:44:06,661 [DEBUG][       Thread-600583][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:44:06,661 [DEBUG][       Thread-600583][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:44:06,665 [DEBUG][       Thread-600583][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:44:06,677 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:44:06,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:44:06,679 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:44:06,681 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:44:06,687 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:44:06,688 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:44:06,689 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:44:06,689 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:44:06,690 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.321822 -999.00   +9.50  41.76     54   +0.70 1 1 2 1 1   887    0 9.81 44.19 ----- 41.8 41.8 21.8 56.0 12.6 -24.6 11.6 -23.5 10.6 -23.2 11.5 -24.1
2025-07-01 09:44:06,690 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:44:06,690 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:44:06,690 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.321822
2025-07-01 09:44:06,690 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:44:06,691 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:44:06,691 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:44:06,691 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:44:06,691 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:44:06,691 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:43:28', tmtdew=10.08, humidity=49.38, cloud=0.0, wind=38.92, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:43:25.421', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:44:06,691 [DEBUG][       Thread-600583][   transport.py][1871] : EOF in transport thread
2025-07-01 09:44:06,775 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:44:06,784 [DEBUG][       Thread-600586][   transport.py][1871] : starting thread (client mode): 0x81e49d0
2025-07-01 09:44:06,784 [DEBUG][       Thread-600586][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:44:06,804 [DEBUG][       Thread-600586][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:44:06,804 [ INFO][       Thread-600586][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:44:06,812 [DEBUG][       Thread-600586][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:44:06,813 [DEBUG][       Thread-600586][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:44:06,813 [DEBUG][       Thread-600586][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:44:06,813 [DEBUG][       Thread-600586][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:44:06,813 [DEBUG][       Thread-600586][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:44:06,813 [DEBUG][       Thread-600586][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:44:06,813 [DEBUG][       Thread-600586][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:44:06,813 [DEBUG][       Thread-600586][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:44:06,813 [DEBUG][       Thread-600586][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:44:06,813 [DEBUG][       Thread-600586][   transport.py][1871] : client lang: <none>
2025-07-01 09:44:06,813 [DEBUG][       Thread-600586][   transport.py][1871] : server lang: <none>
2025-07-01 09:44:06,813 [DEBUG][       Thread-600586][   transport.py][1871] : kex follows: False
2025-07-01 09:44:06,813 [DEBUG][       Thread-600586][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:44:06,813 [DEBUG][       Thread-600586][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:44:06,813 [DEBUG][       Thread-600586][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:44:06,813 [DEBUG][       Thread-600586][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:44:06,813 [DEBUG][       Thread-600586][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:44:06,814 [DEBUG][       Thread-600586][   transport.py][1871] : Compression: none
2025-07-01 09:44:06,814 [DEBUG][       Thread-600586][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:44:06,876 [DEBUG][       Thread-600586][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:44:06,877 [DEBUG][       Thread-600586][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:44:06,877 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:44:06,878 [DEBUG][       Thread-600586][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:44:06,879 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:44:06,935 [DEBUG][       Thread-600586][   transport.py][1871] : userauth is OK
2025-07-01 09:44:06,935 [DEBUG][       Thread-600586][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:44:06,935 [DEBUG][       Thread-600586][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:44:06,935 [DEBUG][       Thread-600586][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:44:06,935 [DEBUG][       Thread-600586][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:44:06,956 [ INFO][       Thread-600586][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:44:06,957 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:44:06,957 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:44:07,982 [DEBUG][       Thread-600586][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:44:07,982 [DEBUG][       Thread-600586][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:44:08,034 [DEBUG][       Thread-600586][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:44:08,034 [DEBUG][       Thread-600586][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:44:08,045 [DEBUG][       Thread-600586][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:44:08,053 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:44:08,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-07-01 09:44:08,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') -> 00000000
2025-07-01 09:44:08,077 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:44:08,077 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:44:08,077 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:44:08,087 [DEBUG][       Thread-600586][   transport.py][1871] : EOF in transport thread
2025-07-01 09:44:13,013 [DEBUG][Thread-600588 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:44:18,087 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:44:18,087 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:44:18,087 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:44:18,090 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:44:18,571 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 43, 28), 10.08, 49.38, 0.0, 38.92, 9.48, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:44:18,571 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:43:28
2025-07-01 09:44:18,656 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:44:18,662 [DEBUG][       Thread-600589][   transport.py][1871] : starting thread (client mode): 0x82b1c00
2025-07-01 09:44:18,662 [DEBUG][       Thread-600589][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:44:18,684 [DEBUG][       Thread-600589][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:44:18,684 [ INFO][       Thread-600589][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:44:18,687 [DEBUG][       Thread-600589][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:44:18,687 [DEBUG][       Thread-600589][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:44:18,687 [DEBUG][       Thread-600589][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:44:18,687 [DEBUG][       Thread-600589][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:44:18,687 [DEBUG][       Thread-600589][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:44:18,687 [DEBUG][       Thread-600589][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:44:18,687 [DEBUG][       Thread-600589][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:44:18,687 [DEBUG][       Thread-600589][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:44:18,687 [DEBUG][       Thread-600589][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:44:18,687 [DEBUG][       Thread-600589][   transport.py][1871] : client lang: <none>
2025-07-01 09:44:18,687 [DEBUG][       Thread-600589][   transport.py][1871] : server lang: <none>
2025-07-01 09:44:18,687 [DEBUG][       Thread-600589][   transport.py][1871] : kex follows: False
2025-07-01 09:44:18,687 [DEBUG][       Thread-600589][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:44:18,687 [DEBUG][       Thread-600589][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:44:18,687 [DEBUG][       Thread-600589][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:44:18,687 [DEBUG][       Thread-600589][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:44:18,688 [DEBUG][       Thread-600589][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:44:18,688 [DEBUG][       Thread-600589][   transport.py][1871] : Compression: none
2025-07-01 09:44:18,688 [DEBUG][       Thread-600589][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:44:18,704 [DEBUG][       Thread-600589][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:44:18,705 [DEBUG][       Thread-600589][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:44:18,705 [DEBUG][       Thread-600589][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:44:18,706 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:44:18,706 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:44:18,707 [DEBUG][       Thread-600589][   transport.py][1871] : userauth is OK
2025-07-01 09:44:18,732 [ INFO][       Thread-600589][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:44:18,733 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:44:19,338 [DEBUG][       Thread-600589][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:44:19,338 [DEBUG][       Thread-600589][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:44:19,381 [DEBUG][       Thread-600589][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:44:19,381 [DEBUG][       Thread-600589][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:44:19,384 [DEBUG][       Thread-600589][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:44:19,396 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:44:19,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:44:19,398 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:44:19,400 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:44:19,406 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:44:19,408 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:44:19,408 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:44:19,408 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:44:19,409 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.321822 -999.00   +9.50  41.76     54   +0.70 1 1 2 1 1   887    0 9.81 44.19 ----- 41.8 41.8 21.8 56.0 12.6 -24.6 11.6 -23.5 10.6 -23.2 11.5 -24.1
2025-07-01 09:44:19,409 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:44:19,409 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:44:19,409 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.321822
2025-07-01 09:44:19,409 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:44:19,410 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:44:19,410 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:44:19,410 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:44:19,410 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:44:19,410 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:43:28', tmtdew=10.08, humidity=49.38, cloud=0.0, wind=38.92, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:43:25.421', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:44:19,411 [DEBUG][       Thread-600589][   transport.py][1871] : EOF in transport thread
2025-07-01 09:44:19,493 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:44:19,512 [DEBUG][       Thread-600592][   transport.py][1871] : starting thread (client mode): 0x8155720
2025-07-01 09:44:19,512 [DEBUG][       Thread-600592][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:44:19,533 [DEBUG][       Thread-600592][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:44:19,533 [ INFO][       Thread-600592][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:44:19,543 [DEBUG][       Thread-600592][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:44:19,543 [DEBUG][       Thread-600592][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:44:19,544 [DEBUG][       Thread-600592][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:44:19,544 [DEBUG][       Thread-600592][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:44:19,544 [DEBUG][       Thread-600592][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:44:19,544 [DEBUG][       Thread-600592][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:44:19,544 [DEBUG][       Thread-600592][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:44:19,544 [DEBUG][       Thread-600592][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:44:19,544 [DEBUG][       Thread-600592][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:44:19,544 [DEBUG][       Thread-600592][   transport.py][1871] : client lang: <none>
2025-07-01 09:44:19,544 [DEBUG][       Thread-600592][   transport.py][1871] : server lang: <none>
2025-07-01 09:44:19,544 [DEBUG][       Thread-600592][   transport.py][1871] : kex follows: False
2025-07-01 09:44:19,544 [DEBUG][       Thread-600592][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:44:19,544 [DEBUG][       Thread-600592][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:44:19,544 [DEBUG][       Thread-600592][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:44:19,544 [DEBUG][       Thread-600592][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:44:19,544 [DEBUG][       Thread-600592][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:44:19,545 [DEBUG][       Thread-600592][   transport.py][1871] : Compression: none
2025-07-01 09:44:19,545 [DEBUG][       Thread-600592][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:44:19,604 [DEBUG][       Thread-600592][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:44:19,604 [DEBUG][       Thread-600592][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:44:19,605 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:44:19,605 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:44:19,606 [DEBUG][       Thread-600592][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:44:19,667 [DEBUG][       Thread-600592][   transport.py][1871] : userauth is OK
2025-07-01 09:44:19,667 [DEBUG][       Thread-600592][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:44:19,667 [DEBUG][       Thread-600592][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:44:19,667 [DEBUG][       Thread-600592][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:44:19,668 [DEBUG][       Thread-600592][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:44:19,689 [ INFO][       Thread-600592][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:44:19,689 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:44:19,690 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:44:20,692 [DEBUG][       Thread-600592][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:44:20,693 [DEBUG][       Thread-600592][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:44:20,744 [DEBUG][       Thread-600592][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:44:20,744 [DEBUG][       Thread-600592][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:44:20,753 [DEBUG][       Thread-600592][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:44:20,766 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:44:20,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-07-01 09:44:20,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-07-01 09:44:20,784 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:44:20,785 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:44:20,785 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:44:20,793 [DEBUG][       Thread-600592][   transport.py][1871] : EOF in transport thread
2025-07-01 09:44:21,251 [DEBUG][Thread-600594 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:44:22,147 [DEBUG][Thread-600595 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:44:30,796 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:44:30,796 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:44:30,796 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:44:30,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-07-01 09:44:31,170 [DEBUG][Thread-600596 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:44:31,262 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 43, 28), 10.08, 49.38, 0.0, 38.92, 9.48, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:44:31,262 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:43:28
2025-07-01 09:44:31,349 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:44:31,353 [DEBUG][       Thread-600597][   transport.py][1871] : starting thread (client mode): 0x81e4460
2025-07-01 09:44:31,353 [DEBUG][       Thread-600597][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:44:31,374 [DEBUG][       Thread-600597][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:44:31,374 [ INFO][       Thread-600597][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:44:31,377 [DEBUG][       Thread-600597][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:44:31,378 [DEBUG][       Thread-600597][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:44:31,378 [DEBUG][       Thread-600597][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:44:31,378 [DEBUG][       Thread-600597][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:44:31,378 [DEBUG][       Thread-600597][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:44:31,378 [DEBUG][       Thread-600597][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:44:31,378 [DEBUG][       Thread-600597][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:44:31,378 [DEBUG][       Thread-600597][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:44:31,378 [DEBUG][       Thread-600597][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:44:31,378 [DEBUG][       Thread-600597][   transport.py][1871] : client lang: <none>
2025-07-01 09:44:31,378 [DEBUG][       Thread-600597][   transport.py][1871] : server lang: <none>
2025-07-01 09:44:31,378 [DEBUG][       Thread-600597][   transport.py][1871] : kex follows: False
2025-07-01 09:44:31,378 [DEBUG][       Thread-600597][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:44:31,378 [DEBUG][       Thread-600597][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:44:31,378 [DEBUG][       Thread-600597][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:44:31,378 [DEBUG][       Thread-600597][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:44:31,378 [DEBUG][       Thread-600597][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:44:31,378 [DEBUG][       Thread-600597][   transport.py][1871] : Compression: none
2025-07-01 09:44:31,378 [DEBUG][       Thread-600597][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:44:31,395 [DEBUG][       Thread-600597][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:44:31,395 [DEBUG][       Thread-600597][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:44:31,396 [DEBUG][       Thread-600597][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:44:31,396 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:44:31,396 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:44:31,397 [DEBUG][       Thread-600597][   transport.py][1871] : userauth is OK
2025-07-01 09:44:31,422 [ INFO][       Thread-600597][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:44:31,423 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:44:32,070 [DEBUG][       Thread-600597][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:44:32,070 [DEBUG][       Thread-600597][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:44:32,113 [DEBUG][       Thread-600597][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:44:32,113 [DEBUG][       Thread-600597][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:44:32,116 [DEBUG][       Thread-600597][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:44:32,128 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:44:32,129 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:44:32,131 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:44:32,132 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:44:32,137 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:44:32,139 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:44:32,139 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:44:32,140 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:44:32,140 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.322170 -999.00   +9.40  37.23     54   +0.60 1 1 2 1 1   887    0 9.81 46.36 ----- 37.2 37.2 19.0 49.1 12.6 -23.7 11.6 -24.7 10.7 -23.3 11.6 -22.1
2025-07-01 09:44:32,140 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:44:32,140 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:44:32,140 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.322170
2025-07-01 09:44:32,141 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:44:32,141 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:44:32,141 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:44:32,141 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:44:32,141 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:44:32,142 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:43:28', tmtdew=10.08, humidity=49.38, cloud=0.0, wind=38.92, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:43:55.488', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:44:32,143 [DEBUG][       Thread-600597][   transport.py][1871] : EOF in transport thread
2025-07-01 09:44:32,220 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:44:32,232 [DEBUG][       Thread-600600][   transport.py][1871] : starting thread (client mode): 0x83c8400
2025-07-01 09:44:32,232 [DEBUG][       Thread-600600][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:44:32,246 [DEBUG][       Thread-600600][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:44:32,246 [ INFO][       Thread-600600][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:44:32,256 [DEBUG][       Thread-600600][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:44:32,256 [DEBUG][       Thread-600600][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:44:32,256 [DEBUG][       Thread-600600][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:44:32,256 [DEBUG][       Thread-600600][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:44:32,256 [DEBUG][       Thread-600600][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:44:32,256 [DEBUG][       Thread-600600][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:44:32,256 [DEBUG][       Thread-600600][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:44:32,256 [DEBUG][       Thread-600600][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:44:32,256 [DEBUG][       Thread-600600][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:44:32,256 [DEBUG][       Thread-600600][   transport.py][1871] : client lang: <none>
2025-07-01 09:44:32,256 [DEBUG][       Thread-600600][   transport.py][1871] : server lang: <none>
2025-07-01 09:44:32,256 [DEBUG][       Thread-600600][   transport.py][1871] : kex follows: False
2025-07-01 09:44:32,256 [DEBUG][       Thread-600600][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:44:32,256 [DEBUG][       Thread-600600][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:44:32,256 [DEBUG][       Thread-600600][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:44:32,256 [DEBUG][       Thread-600600][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:44:32,256 [DEBUG][       Thread-600600][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:44:32,256 [DEBUG][       Thread-600600][   transport.py][1871] : Compression: none
2025-07-01 09:44:32,257 [DEBUG][       Thread-600600][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:44:32,313 [DEBUG][       Thread-600600][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:44:32,313 [DEBUG][       Thread-600600][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:44:32,313 [DEBUG][       Thread-600600][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:44:32,313 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:44:32,313 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:44:32,370 [DEBUG][       Thread-600600][   transport.py][1871] : userauth is OK
2025-07-01 09:44:32,370 [DEBUG][       Thread-600600][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:44:32,370 [DEBUG][       Thread-600600][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:44:32,370 [DEBUG][       Thread-600600][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:44:32,370 [DEBUG][       Thread-600600][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:44:32,384 [ INFO][       Thread-600600][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:44:32,384 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:44:32,384 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:44:33,412 [DEBUG][       Thread-600600][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:44:33,412 [DEBUG][       Thread-600600][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:44:33,463 [DEBUG][       Thread-600600][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:44:33,463 [DEBUG][       Thread-600600][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:44:33,472 [DEBUG][       Thread-600600][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:44:33,480 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:44:33,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-07-01 09:44:33,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-07-01 09:44:33,496 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:44:33,496 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:44:33,496 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:44:33,504 [DEBUG][       Thread-600600][   transport.py][1871] : EOF in transport thread
2025-07-01 09:44:40,189 [DEBUG][Thread-600602 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:44:43,506 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:44:43,507 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:44:43,507 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:44:43,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-07-01 09:44:43,976 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 44, 32), 10.03, 49.47, 0.0, 32.11, 9.46, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:44:43,976 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:44:32
2025-07-01 09:44:44,060 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:44:44,064 [DEBUG][       Thread-600603][   transport.py][1871] : starting thread (client mode): 0x82b1540
2025-07-01 09:44:44,064 [DEBUG][       Thread-600603][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:44:44,080 [DEBUG][       Thread-600603][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:44:44,080 [ INFO][       Thread-600603][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:44:44,083 [DEBUG][       Thread-600603][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:44:44,083 [DEBUG][       Thread-600603][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:44:44,083 [DEBUG][       Thread-600603][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:44:44,083 [DEBUG][       Thread-600603][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:44:44,083 [DEBUG][       Thread-600603][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:44:44,083 [DEBUG][       Thread-600603][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:44:44,083 [DEBUG][       Thread-600603][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:44:44,083 [DEBUG][       Thread-600603][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:44:44,083 [DEBUG][       Thread-600603][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:44:44,083 [DEBUG][       Thread-600603][   transport.py][1871] : client lang: <none>
2025-07-01 09:44:44,083 [DEBUG][       Thread-600603][   transport.py][1871] : server lang: <none>
2025-07-01 09:44:44,083 [DEBUG][       Thread-600603][   transport.py][1871] : kex follows: False
2025-07-01 09:44:44,083 [DEBUG][       Thread-600603][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:44:44,083 [DEBUG][       Thread-600603][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:44:44,083 [DEBUG][       Thread-600603][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:44:44,083 [DEBUG][       Thread-600603][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:44:44,083 [DEBUG][       Thread-600603][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:44:44,083 [DEBUG][       Thread-600603][   transport.py][1871] : Compression: none
2025-07-01 09:44:44,083 [DEBUG][       Thread-600603][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:44:44,097 [DEBUG][       Thread-600603][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:44:44,097 [DEBUG][       Thread-600603][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:44:44,098 [DEBUG][       Thread-600603][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:44:44,098 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:44:44,098 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:44:44,099 [DEBUG][       Thread-600603][   transport.py][1871] : userauth is OK
2025-07-01 09:44:44,111 [ INFO][       Thread-600603][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:44:44,111 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:44:44,754 [DEBUG][       Thread-600603][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:44:44,755 [DEBUG][       Thread-600603][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:44:44,797 [DEBUG][       Thread-600603][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:44:44,797 [DEBUG][       Thread-600603][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:44:44,800 [DEBUG][       Thread-600603][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:44:44,814 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:44:44,814 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:44:44,816 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:44:44,818 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:44:44,823 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:44:44,825 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:44:44,825 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:44:44,826 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:44:44,826 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.322170 -999.00   +9.40  37.23     54   +0.60 1 1 2 1 1   887    0 9.81 46.36 ----- 37.2 37.2 19.0 49.1 12.6 -23.7 11.6 -24.7 10.7 -23.3 11.6 -22.1
2025-07-01 09:44:44,826 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:44:44,826 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:44:44,826 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.322170
2025-07-01 09:44:44,827 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:44:44,827 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:44:44,827 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:44:44,827 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:44:44,827 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:44:44,827 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:44:32', tmtdew=10.03, humidity=49.47, cloud=0.0, wind=32.11, temperature=9.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:43:55.488', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:44:44,829 [DEBUG][       Thread-600603][   transport.py][1871] : EOF in transport thread
2025-07-01 09:44:44,921 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:44:44,931 [DEBUG][       Thread-600606][   transport.py][1871] : starting thread (client mode): 0x81a5270
2025-07-01 09:44:44,931 [DEBUG][       Thread-600606][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:44:44,946 [DEBUG][       Thread-600606][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:44:44,946 [ INFO][       Thread-600606][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:44:44,953 [DEBUG][       Thread-600606][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:44:44,954 [DEBUG][       Thread-600606][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:44:44,954 [DEBUG][       Thread-600606][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:44:44,954 [DEBUG][       Thread-600606][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:44:44,954 [DEBUG][       Thread-600606][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:44:44,954 [DEBUG][       Thread-600606][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:44:44,954 [DEBUG][       Thread-600606][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:44:44,954 [DEBUG][       Thread-600606][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:44:44,954 [DEBUG][       Thread-600606][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:44:44,954 [DEBUG][       Thread-600606][   transport.py][1871] : client lang: <none>
2025-07-01 09:44:44,954 [DEBUG][       Thread-600606][   transport.py][1871] : server lang: <none>
2025-07-01 09:44:44,954 [DEBUG][       Thread-600606][   transport.py][1871] : kex follows: False
2025-07-01 09:44:44,954 [DEBUG][       Thread-600606][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:44:44,954 [DEBUG][       Thread-600606][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:44:44,954 [DEBUG][       Thread-600606][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:44:44,954 [DEBUG][       Thread-600606][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:44:44,954 [DEBUG][       Thread-600606][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:44:44,954 [DEBUG][       Thread-600606][   transport.py][1871] : Compression: none
2025-07-01 09:44:44,954 [DEBUG][       Thread-600606][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:44:45,014 [DEBUG][       Thread-600606][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:44:45,014 [DEBUG][       Thread-600606][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:44:45,015 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:44:45,015 [DEBUG][       Thread-600606][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:44:45,016 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:44:45,070 [DEBUG][       Thread-600606][   transport.py][1871] : userauth is OK
2025-07-01 09:44:45,071 [DEBUG][       Thread-600606][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:44:45,071 [DEBUG][       Thread-600606][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:44:45,071 [DEBUG][       Thread-600606][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:44:45,071 [DEBUG][       Thread-600606][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:44:45,090 [ INFO][       Thread-600606][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:44:45,091 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:44:45,091 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:44:46,043 [DEBUG][       Thread-600606][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:44:46,044 [DEBUG][       Thread-600606][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:44:46,094 [DEBUG][       Thread-600606][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:44:46,094 [DEBUG][       Thread-600606][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:44:46,108 [DEBUG][       Thread-600606][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:44:46,118 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:44:46,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-07-01 09:44:46,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-07-01 09:44:46,137 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:44:46,138 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:44:46,138 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:44:46,146 [DEBUG][       Thread-600606][   transport.py][1871] : EOF in transport thread
2025-07-01 09:44:49,207 [DEBUG][Thread-600608 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:44:53,421 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:44:53,423 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:44:56,149 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:44:56,149 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:44:56,149 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:44:56,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-07-01 09:44:56,611 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 44, 32), 10.03, 49.47, 0.0, 32.11, 9.46, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:44:56,611 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:44:32
2025-07-01 09:44:56,697 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:44:56,700 [DEBUG][       Thread-600609][   transport.py][1871] : starting thread (client mode): 0x82b26b0
2025-07-01 09:44:56,700 [DEBUG][       Thread-600609][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:44:56,721 [DEBUG][       Thread-600609][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:44:56,721 [ INFO][       Thread-600609][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:44:56,725 [DEBUG][       Thread-600609][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:44:56,725 [DEBUG][       Thread-600609][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:44:56,725 [DEBUG][       Thread-600609][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:44:56,725 [DEBUG][       Thread-600609][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:44:56,725 [DEBUG][       Thread-600609][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:44:56,725 [DEBUG][       Thread-600609][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:44:56,725 [DEBUG][       Thread-600609][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:44:56,725 [DEBUG][       Thread-600609][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:44:56,725 [DEBUG][       Thread-600609][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:44:56,726 [DEBUG][       Thread-600609][   transport.py][1871] : client lang: <none>
2025-07-01 09:44:56,726 [DEBUG][       Thread-600609][   transport.py][1871] : server lang: <none>
2025-07-01 09:44:56,726 [DEBUG][       Thread-600609][   transport.py][1871] : kex follows: False
2025-07-01 09:44:56,726 [DEBUG][       Thread-600609][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:44:56,726 [DEBUG][       Thread-600609][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:44:56,726 [DEBUG][       Thread-600609][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:44:56,726 [DEBUG][       Thread-600609][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:44:56,726 [DEBUG][       Thread-600609][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:44:56,726 [DEBUG][       Thread-600609][   transport.py][1871] : Compression: none
2025-07-01 09:44:56,726 [DEBUG][       Thread-600609][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:44:56,744 [DEBUG][       Thread-600609][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:44:56,745 [DEBUG][       Thread-600609][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:44:56,746 [DEBUG][       Thread-600609][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:44:56,746 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:44:56,746 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:44:56,747 [DEBUG][       Thread-600609][   transport.py][1871] : userauth is OK
2025-07-01 09:44:56,761 [ INFO][       Thread-600609][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:44:56,761 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:44:57,414 [DEBUG][       Thread-600609][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:44:57,415 [DEBUG][       Thread-600609][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:44:57,457 [DEBUG][       Thread-600609][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:44:57,457 [DEBUG][       Thread-600609][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:44:57,461 [DEBUG][       Thread-600609][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:44:57,475 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:44:57,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:44:57,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:44:57,479 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:44:57,486 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:44:57,488 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:44:57,488 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:44:57,489 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:44:57,489 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.322170 -999.00   +9.40  37.23     54   +0.60 1 1 2 1 1   887    0 9.81 46.36 ----- 37.2 37.2 19.0 49.1 12.6 -23.7 11.6 -24.7 10.7 -23.3 11.6 -22.1
2025-07-01 09:44:57,489 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:44:57,489 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:44:57,489 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.322170
2025-07-01 09:44:57,490 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:44:57,490 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:44:57,490 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:44:57,490 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:44:57,490 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:44:57,491 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:44:32', tmtdew=10.03, humidity=49.47, cloud=0.0, wind=32.11, temperature=9.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:43:55.488', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:44:57,492 [DEBUG][       Thread-600609][   transport.py][1871] : EOF in transport thread
2025-07-01 09:44:57,563 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:44:57,574 [DEBUG][       Thread-600612][   transport.py][1871] : starting thread (client mode): 0x8157a00
2025-07-01 09:44:57,574 [DEBUG][       Thread-600612][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:44:57,590 [DEBUG][       Thread-600612][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:44:57,590 [ INFO][       Thread-600612][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:44:57,598 [DEBUG][       Thread-600612][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:44:57,598 [DEBUG][       Thread-600612][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:44:57,598 [DEBUG][       Thread-600612][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:44:57,598 [DEBUG][       Thread-600612][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:44:57,598 [DEBUG][       Thread-600612][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:44:57,598 [DEBUG][       Thread-600612][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:44:57,598 [DEBUG][       Thread-600612][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:44:57,598 [DEBUG][       Thread-600612][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:44:57,598 [DEBUG][       Thread-600612][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:44:57,598 [DEBUG][       Thread-600612][   transport.py][1871] : client lang: <none>
2025-07-01 09:44:57,598 [DEBUG][       Thread-600612][   transport.py][1871] : server lang: <none>
2025-07-01 09:44:57,598 [DEBUG][       Thread-600612][   transport.py][1871] : kex follows: False
2025-07-01 09:44:57,598 [DEBUG][       Thread-600612][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:44:57,598 [DEBUG][       Thread-600612][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:44:57,598 [DEBUG][       Thread-600612][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:44:57,598 [DEBUG][       Thread-600612][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:44:57,598 [DEBUG][       Thread-600612][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:44:57,598 [DEBUG][       Thread-600612][   transport.py][1871] : Compression: none
2025-07-01 09:44:57,599 [DEBUG][       Thread-600612][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:44:57,658 [DEBUG][       Thread-600612][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:44:57,658 [DEBUG][       Thread-600612][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:44:57,659 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:44:57,660 [DEBUG][       Thread-600612][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:44:57,660 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:44:57,719 [DEBUG][       Thread-600612][   transport.py][1871] : userauth is OK
2025-07-01 09:44:57,719 [DEBUG][       Thread-600612][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:44:57,720 [DEBUG][       Thread-600612][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:44:57,720 [DEBUG][       Thread-600612][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:44:57,720 [DEBUG][       Thread-600612][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:44:57,743 [ INFO][       Thread-600612][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:44:57,744 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:44:57,744 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:44:58,234 [DEBUG][Thread-600614 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:44:58,759 [DEBUG][       Thread-600612][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:44:58,759 [DEBUG][       Thread-600612][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:44:58,808 [DEBUG][       Thread-600612][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:44:58,808 [DEBUG][       Thread-600612][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:44:58,818 [DEBUG][       Thread-600612][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:44:58,826 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:44:58,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-07-01 09:44:58,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-07-01 09:44:58,843 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:44:58,843 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:44:58,844 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:44:58,852 [DEBUG][       Thread-600612][   transport.py][1871] : EOF in transport thread
2025-07-01 09:45:07,256 [DEBUG][Thread-600615 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:45:08,854 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:45:08,855 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:45:08,855 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:45:08,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-07-01 09:45:09,333 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 45, 3), 10.22, 48.8, 0.0, 34.23, 9.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:45:09,333 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:45:03
2025-07-01 09:45:09,419 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:45:09,423 [DEBUG][       Thread-600616][   transport.py][1871] : starting thread (client mode): 0x82b09a0
2025-07-01 09:45:09,423 [DEBUG][       Thread-600616][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:45:09,435 [DEBUG][       Thread-600616][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:45:09,435 [ INFO][       Thread-600616][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:45:09,438 [DEBUG][       Thread-600616][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:45:09,438 [DEBUG][       Thread-600616][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:45:09,438 [DEBUG][       Thread-600616][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:45:09,438 [DEBUG][       Thread-600616][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:45:09,438 [DEBUG][       Thread-600616][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:45:09,438 [DEBUG][       Thread-600616][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:45:09,438 [DEBUG][       Thread-600616][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:45:09,438 [DEBUG][       Thread-600616][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:45:09,438 [DEBUG][       Thread-600616][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:45:09,438 [DEBUG][       Thread-600616][   transport.py][1871] : client lang: <none>
2025-07-01 09:45:09,438 [DEBUG][       Thread-600616][   transport.py][1871] : server lang: <none>
2025-07-01 09:45:09,438 [DEBUG][       Thread-600616][   transport.py][1871] : kex follows: False
2025-07-01 09:45:09,438 [DEBUG][       Thread-600616][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:45:09,439 [DEBUG][       Thread-600616][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:45:09,439 [DEBUG][       Thread-600616][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:45:09,439 [DEBUG][       Thread-600616][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:45:09,439 [DEBUG][       Thread-600616][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:45:09,439 [DEBUG][       Thread-600616][   transport.py][1871] : Compression: none
2025-07-01 09:45:09,439 [DEBUG][       Thread-600616][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:45:09,455 [DEBUG][       Thread-600616][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:45:09,456 [DEBUG][       Thread-600616][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:45:09,456 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:45:09,456 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:45:09,457 [DEBUG][       Thread-600616][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:45:09,457 [DEBUG][       Thread-600616][   transport.py][1871] : userauth is OK
2025-07-01 09:45:09,482 [ INFO][       Thread-600616][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:45:09,483 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:45:10,136 [DEBUG][       Thread-600616][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:45:10,137 [DEBUG][       Thread-600616][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:45:10,181 [DEBUG][       Thread-600616][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:45:10,181 [DEBUG][       Thread-600616][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:45:10,185 [DEBUG][       Thread-600616][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:45:10,198 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:45:10,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:45:10,200 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:45:10,202 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:45:10,208 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:45:10,210 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:45:10,210 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:45:10,211 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:45:10,211 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.322864 -999.00   +9.50  41.36     54   +0.70 1 1 2 1 1   887    0 10.07 47.82 ----- 41.4 41.4 20.0 52.9 12.6 -22.8 11.5 -24.4 10.7 -23.5 11.6 -22.1
2025-07-01 09:45:10,211 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:45:10,211 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:45:10,211 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.322864
2025-07-01 09:45:10,212 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:45:10,212 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:45:10,212 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:45:10,212 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:45:10,212 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:45:10,213 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:45:03', tmtdew=10.22, humidity=48.8, cloud=0.0, wind=34.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:44:55.450', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:45:10,214 [DEBUG][       Thread-600616][   transport.py][1871] : EOF in transport thread
2025-07-01 09:45:10,296 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:45:10,306 [DEBUG][       Thread-600619][   transport.py][1871] : starting thread (client mode): 0x81a60b0
2025-07-01 09:45:10,306 [DEBUG][       Thread-600619][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:45:10,322 [DEBUG][       Thread-600619][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:45:10,322 [ INFO][       Thread-600619][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:45:10,330 [DEBUG][       Thread-600619][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:45:10,330 [DEBUG][       Thread-600619][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:45:10,330 [DEBUG][       Thread-600619][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:45:10,330 [DEBUG][       Thread-600619][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:45:10,330 [DEBUG][       Thread-600619][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:45:10,330 [DEBUG][       Thread-600619][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:45:10,331 [DEBUG][       Thread-600619][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:45:10,331 [DEBUG][       Thread-600619][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:45:10,331 [DEBUG][       Thread-600619][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:45:10,331 [DEBUG][       Thread-600619][   transport.py][1871] : client lang: <none>
2025-07-01 09:45:10,331 [DEBUG][       Thread-600619][   transport.py][1871] : server lang: <none>
2025-07-01 09:45:10,331 [DEBUG][       Thread-600619][   transport.py][1871] : kex follows: False
2025-07-01 09:45:10,331 [DEBUG][       Thread-600619][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:45:10,331 [DEBUG][       Thread-600619][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:45:10,331 [DEBUG][       Thread-600619][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:45:10,331 [DEBUG][       Thread-600619][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:45:10,331 [DEBUG][       Thread-600619][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:45:10,331 [DEBUG][       Thread-600619][   transport.py][1871] : Compression: none
2025-07-01 09:45:10,331 [DEBUG][       Thread-600619][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:45:10,392 [DEBUG][       Thread-600619][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:45:10,392 [DEBUG][       Thread-600619][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:45:10,393 [DEBUG][       Thread-600619][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:45:10,393 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:45:10,394 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:45:10,451 [DEBUG][       Thread-600619][   transport.py][1871] : userauth is OK
2025-07-01 09:45:10,451 [DEBUG][       Thread-600619][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:45:10,451 [DEBUG][       Thread-600619][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:45:10,451 [DEBUG][       Thread-600619][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:45:10,451 [DEBUG][       Thread-600619][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:45:10,471 [ INFO][       Thread-600619][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:45:10,471 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:45:10,471 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:45:11,501 [DEBUG][       Thread-600619][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:45:11,502 [DEBUG][       Thread-600619][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:45:11,551 [DEBUG][       Thread-600619][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:45:11,552 [DEBUG][       Thread-600619][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:45:11,562 [DEBUG][       Thread-600619][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:45:11,573 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:45:11,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-07-01 09:45:11,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-07-01 09:45:11,593 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:45:11,593 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:45:11,594 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:45:11,604 [DEBUG][       Thread-600619][   transport.py][1871] : EOF in transport thread
2025-07-01 09:45:16,278 [DEBUG][Thread-600621 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:45:21,302 [DEBUG][Thread-600622 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:45:21,604 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:45:21,604 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:45:21,604 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:45:21,607 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:45:22,082 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 45, 3), 10.22, 48.8, 0.0, 34.23, 9.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:45:22,083 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:45:03
2025-07-01 09:45:22,168 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:45:22,172 [DEBUG][       Thread-600623][   transport.py][1871] : starting thread (client mode): 0x82b2560
2025-07-01 09:45:22,172 [DEBUG][       Thread-600623][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:45:22,191 [DEBUG][       Thread-600623][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:45:22,191 [ INFO][       Thread-600623][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:45:22,194 [DEBUG][       Thread-600623][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:45:22,194 [DEBUG][       Thread-600623][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:45:22,194 [DEBUG][       Thread-600623][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:45:22,194 [DEBUG][       Thread-600623][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:45:22,194 [DEBUG][       Thread-600623][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:45:22,194 [DEBUG][       Thread-600623][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:45:22,194 [DEBUG][       Thread-600623][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:45:22,194 [DEBUG][       Thread-600623][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:45:22,194 [DEBUG][       Thread-600623][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:45:22,194 [DEBUG][       Thread-600623][   transport.py][1871] : client lang: <none>
2025-07-01 09:45:22,195 [DEBUG][       Thread-600623][   transport.py][1871] : server lang: <none>
2025-07-01 09:45:22,195 [DEBUG][       Thread-600623][   transport.py][1871] : kex follows: False
2025-07-01 09:45:22,195 [DEBUG][       Thread-600623][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:45:22,195 [DEBUG][       Thread-600623][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:45:22,195 [DEBUG][       Thread-600623][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:45:22,195 [DEBUG][       Thread-600623][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:45:22,195 [DEBUG][       Thread-600623][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:45:22,195 [DEBUG][       Thread-600623][   transport.py][1871] : Compression: none
2025-07-01 09:45:22,195 [DEBUG][       Thread-600623][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:45:22,210 [DEBUG][       Thread-600623][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:45:22,210 [DEBUG][       Thread-600623][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:45:22,211 [DEBUG][       Thread-600623][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:45:22,211 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:45:22,211 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:45:22,212 [DEBUG][       Thread-600623][   transport.py][1871] : userauth is OK
2025-07-01 09:45:22,240 [ INFO][       Thread-600623][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:45:22,241 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:45:22,882 [DEBUG][       Thread-600623][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:45:22,882 [DEBUG][       Thread-600623][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:45:22,925 [DEBUG][       Thread-600623][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:45:22,925 [DEBUG][       Thread-600623][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:45:22,928 [DEBUG][       Thread-600623][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:45:22,940 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:45:22,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:45:22,942 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:45:22,944 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:45:22,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:45:22,951 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:45:22,951 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:45:22,952 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:45:22,952 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.322864 -999.00   +9.50  41.36     54   +0.70 1 1 2 1 1   887    0 10.07 47.82 ----- 41.4 41.4 20.0 52.9 12.6 -22.8 11.5 -24.4 10.7 -23.5 11.6 -22.1
2025-07-01 09:45:22,952 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:45:22,952 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:45:22,952 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.322864
2025-07-01 09:45:22,953 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:45:22,953 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:45:22,953 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:45:22,953 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:45:22,953 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:45:22,954 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:45:03', tmtdew=10.22, humidity=48.8, cloud=0.0, wind=34.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:44:55.450', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:45:22,954 [DEBUG][       Thread-600623][   transport.py][1871] : EOF in transport thread
2025-07-01 09:45:23,037 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:45:23,225 [DEBUG][       Thread-600626][   transport.py][1871] : starting thread (client mode): 0x8154d30
2025-07-01 09:45:23,225 [DEBUG][       Thread-600626][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:45:23,240 [DEBUG][       Thread-600626][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:45:23,240 [ INFO][       Thread-600626][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:45:23,247 [DEBUG][       Thread-600626][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:45:23,247 [DEBUG][       Thread-600626][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:45:23,247 [DEBUG][       Thread-600626][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:45:23,248 [DEBUG][       Thread-600626][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:45:23,248 [DEBUG][       Thread-600626][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:45:23,248 [DEBUG][       Thread-600626][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:45:23,248 [DEBUG][       Thread-600626][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:45:23,248 [DEBUG][       Thread-600626][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:45:23,248 [DEBUG][       Thread-600626][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:45:23,248 [DEBUG][       Thread-600626][   transport.py][1871] : client lang: <none>
2025-07-01 09:45:23,248 [DEBUG][       Thread-600626][   transport.py][1871] : server lang: <none>
2025-07-01 09:45:23,248 [DEBUG][       Thread-600626][   transport.py][1871] : kex follows: False
2025-07-01 09:45:23,248 [DEBUG][       Thread-600626][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:45:23,248 [DEBUG][       Thread-600626][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:45:23,248 [DEBUG][       Thread-600626][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:45:23,248 [DEBUG][       Thread-600626][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:45:23,248 [DEBUG][       Thread-600626][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:45:23,249 [DEBUG][       Thread-600626][   transport.py][1871] : Compression: none
2025-07-01 09:45:23,249 [DEBUG][       Thread-600626][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:45:23,307 [DEBUG][       Thread-600626][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:45:23,308 [DEBUG][       Thread-600626][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:45:23,308 [DEBUG][       Thread-600626][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:45:23,308 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:45:23,309 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:45:23,363 [DEBUG][       Thread-600626][   transport.py][1871] : userauth is OK
2025-07-01 09:45:23,363 [DEBUG][       Thread-600626][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:45:23,363 [DEBUG][       Thread-600626][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:45:23,363 [DEBUG][       Thread-600626][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:45:23,363 [DEBUG][       Thread-600626][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:45:23,382 [ INFO][       Thread-600626][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:45:23,383 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:45:23,383 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:45:24,419 [DEBUG][       Thread-600626][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:45:24,419 [DEBUG][       Thread-600626][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:45:24,470 [DEBUG][       Thread-600626][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:45:24,470 [DEBUG][       Thread-600626][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:45:24,484 [DEBUG][       Thread-600626][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:45:24,499 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:45:24,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-07-01 09:45:24,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-07-01 09:45:24,530 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:45:24,531 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:45:24,531 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:45:24,543 [DEBUG][       Thread-600626][   transport.py][1871] : EOF in transport thread
2025-07-01 09:45:25,313 [DEBUG][Thread-600628 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:45:34,333 [DEBUG][Thread-600629 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:45:34,542 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:45:34,542 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:45:34,542 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:45:34,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-07-01 09:45:34,991 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 45, 3), 10.22, 48.8, 0.0, 34.23, 9.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:45:34,991 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:45:03
2025-07-01 09:45:35,077 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:45:35,081 [DEBUG][       Thread-600630][   transport.py][1871] : starting thread (client mode): 0x82b2770
2025-07-01 09:45:35,081 [DEBUG][       Thread-600630][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:45:35,096 [DEBUG][       Thread-600630][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:45:35,096 [ INFO][       Thread-600630][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:45:35,099 [DEBUG][       Thread-600630][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:45:35,099 [DEBUG][       Thread-600630][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:45:35,099 [DEBUG][       Thread-600630][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:45:35,099 [DEBUG][       Thread-600630][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:45:35,099 [DEBUG][       Thread-600630][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:45:35,099 [DEBUG][       Thread-600630][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:45:35,099 [DEBUG][       Thread-600630][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:45:35,099 [DEBUG][       Thread-600630][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:45:35,099 [DEBUG][       Thread-600630][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:45:35,099 [DEBUG][       Thread-600630][   transport.py][1871] : client lang: <none>
2025-07-01 09:45:35,099 [DEBUG][       Thread-600630][   transport.py][1871] : server lang: <none>
2025-07-01 09:45:35,099 [DEBUG][       Thread-600630][   transport.py][1871] : kex follows: False
2025-07-01 09:45:35,099 [DEBUG][       Thread-600630][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:45:35,099 [DEBUG][       Thread-600630][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:45:35,099 [DEBUG][       Thread-600630][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:45:35,099 [DEBUG][       Thread-600630][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:45:35,099 [DEBUG][       Thread-600630][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:45:35,099 [DEBUG][       Thread-600630][   transport.py][1871] : Compression: none
2025-07-01 09:45:35,099 [DEBUG][       Thread-600630][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:45:35,107 [DEBUG][       Thread-600630][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:45:35,107 [DEBUG][       Thread-600630][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:45:35,107 [DEBUG][       Thread-600630][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:45:35,107 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:45:35,108 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:45:35,111 [DEBUG][       Thread-600630][   transport.py][1871] : userauth is OK
2025-07-01 09:45:35,135 [ INFO][       Thread-600630][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:45:35,136 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:45:35,712 [DEBUG][       Thread-600630][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:45:35,712 [DEBUG][       Thread-600630][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:45:35,756 [DEBUG][       Thread-600630][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:45:35,756 [DEBUG][       Thread-600630][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:45:35,759 [DEBUG][       Thread-600630][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:45:35,770 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:45:35,770 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:45:35,771 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:45:35,772 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:45:35,775 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:45:35,775 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:45:35,775 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:45:35,776 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:45:35,776 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.323211 -999.00   +9.50  31.41     54   +0.70 1 1 2 1 1   887    0 10.00 49.88 ----- 31.4 31.4 20.2 52.3 12.6 -23.7 11.6 -23.8 10.6 -23.5 11.6 -21.8
2025-07-01 09:45:35,776 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:45:35,776 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:45:35,776 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.323211
2025-07-01 09:45:35,776 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:45:35,776 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:45:35,776 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:45:35,776 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:45:35,776 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:45:35,776 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:45:03', tmtdew=10.22, humidity=48.8, cloud=0.0, wind=34.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:45:25.430', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:45:35,777 [DEBUG][       Thread-600630][   transport.py][1871] : EOF in transport thread
2025-07-01 09:45:35,849 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:45:35,860 [DEBUG][       Thread-600633][   transport.py][1871] : starting thread (client mode): 0x81e7b20
2025-07-01 09:45:35,860 [DEBUG][       Thread-600633][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:45:35,876 [DEBUG][       Thread-600633][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:45:35,876 [ INFO][       Thread-600633][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:45:35,885 [DEBUG][       Thread-600633][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:45:35,885 [DEBUG][       Thread-600633][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:45:35,885 [DEBUG][       Thread-600633][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:45:35,885 [DEBUG][       Thread-600633][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:45:35,885 [DEBUG][       Thread-600633][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:45:35,885 [DEBUG][       Thread-600633][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:45:35,885 [DEBUG][       Thread-600633][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:45:35,885 [DEBUG][       Thread-600633][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:45:35,885 [DEBUG][       Thread-600633][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:45:35,885 [DEBUG][       Thread-600633][   transport.py][1871] : client lang: <none>
2025-07-01 09:45:35,885 [DEBUG][       Thread-600633][   transport.py][1871] : server lang: <none>
2025-07-01 09:45:35,885 [DEBUG][       Thread-600633][   transport.py][1871] : kex follows: False
2025-07-01 09:45:35,885 [DEBUG][       Thread-600633][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:45:35,885 [DEBUG][       Thread-600633][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:45:35,885 [DEBUG][       Thread-600633][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:45:35,885 [DEBUG][       Thread-600633][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:45:35,885 [DEBUG][       Thread-600633][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:45:35,885 [DEBUG][       Thread-600633][   transport.py][1871] : Compression: none
2025-07-01 09:45:35,885 [DEBUG][       Thread-600633][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:45:35,945 [DEBUG][       Thread-600633][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:45:35,945 [DEBUG][       Thread-600633][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:45:35,945 [DEBUG][       Thread-600633][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:45:35,945 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:45:35,946 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:45:36,002 [DEBUG][       Thread-600633][   transport.py][1871] : userauth is OK
2025-07-01 09:45:36,002 [DEBUG][       Thread-600633][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:45:36,002 [DEBUG][       Thread-600633][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:45:36,002 [DEBUG][       Thread-600633][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:45:36,002 [DEBUG][       Thread-600633][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:45:36,019 [ INFO][       Thread-600633][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:45:36,019 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:45:36,019 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:45:37,091 [DEBUG][       Thread-600633][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:45:37,091 [DEBUG][       Thread-600633][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:45:37,139 [DEBUG][       Thread-600633][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:45:37,139 [DEBUG][       Thread-600633][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:45:37,147 [DEBUG][       Thread-600633][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:45:37,155 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:45:37,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-07-01 09:45:37,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-07-01 09:45:37,171 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:45:37,171 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:45:37,171 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:45:37,184 [DEBUG][       Thread-600633][   transport.py][1871] : EOF in transport thread
2025-07-01 09:45:43,354 [DEBUG][Thread-600635 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:45:47,181 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:45:47,182 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:45:47,182 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:45:47,184 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:45:47,661 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 45, 35), 10.2, 49.08, 0.0, 43.03, 9.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:45:47,661 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:45:35
2025-07-01 09:45:47,745 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:45:47,749 [DEBUG][       Thread-600636][   transport.py][1871] : starting thread (client mode): 0x82b3310
2025-07-01 09:45:47,749 [DEBUG][       Thread-600636][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:45:47,769 [DEBUG][       Thread-600636][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:45:47,769 [ INFO][       Thread-600636][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:45:47,772 [DEBUG][       Thread-600636][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:45:47,772 [DEBUG][       Thread-600636][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:45:47,772 [DEBUG][       Thread-600636][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:45:47,772 [DEBUG][       Thread-600636][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:45:47,772 [DEBUG][       Thread-600636][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:45:47,772 [DEBUG][       Thread-600636][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:45:47,772 [DEBUG][       Thread-600636][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:45:47,772 [DEBUG][       Thread-600636][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:45:47,772 [DEBUG][       Thread-600636][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:45:47,772 [DEBUG][       Thread-600636][   transport.py][1871] : client lang: <none>
2025-07-01 09:45:47,772 [DEBUG][       Thread-600636][   transport.py][1871] : server lang: <none>
2025-07-01 09:45:47,772 [DEBUG][       Thread-600636][   transport.py][1871] : kex follows: False
2025-07-01 09:45:47,772 [DEBUG][       Thread-600636][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:45:47,772 [DEBUG][       Thread-600636][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:45:47,772 [DEBUG][       Thread-600636][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:45:47,772 [DEBUG][       Thread-600636][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:45:47,772 [DEBUG][       Thread-600636][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:45:47,772 [DEBUG][       Thread-600636][   transport.py][1871] : Compression: none
2025-07-01 09:45:47,772 [DEBUG][       Thread-600636][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:45:47,792 [DEBUG][       Thread-600636][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:45:47,792 [DEBUG][       Thread-600636][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:45:47,793 [DEBUG][       Thread-600636][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:45:47,793 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:45:47,793 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:45:47,794 [DEBUG][       Thread-600636][   transport.py][1871] : userauth is OK
2025-07-01 09:45:47,808 [ INFO][       Thread-600636][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:45:47,808 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:45:48,447 [DEBUG][       Thread-600636][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:45:48,447 [DEBUG][       Thread-600636][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:45:48,493 [DEBUG][       Thread-600636][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:45:48,493 [DEBUG][       Thread-600636][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:45:48,496 [DEBUG][       Thread-600636][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:45:48,509 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:45:48,510 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:45:48,512 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:45:48,514 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:45:48,519 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:45:48,521 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:45:48,521 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:45:48,522 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:45:48,522 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.323211 -999.00   +9.50  31.41     54   +0.70 1 1 2 1 1   887    0 10.00 49.88 ----- 31.4 31.4 20.2 52.3 12.6 -23.7 11.6 -23.8 10.6 -23.5 11.6 -21.8
2025-07-01 09:45:48,522 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:45:48,522 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:45:48,522 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.323211
2025-07-01 09:45:48,523 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:45:48,523 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:45:48,523 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:45:48,523 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:45:48,523 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:45:48,523 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:45:35', tmtdew=10.2, humidity=49.08, cloud=0.0, wind=43.03, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:45:25.430', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:45:48,524 [DEBUG][       Thread-600636][   transport.py][1871] : EOF in transport thread
2025-07-01 09:45:48,608 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:45:48,618 [DEBUG][       Thread-600639][   transport.py][1871] : starting thread (client mode): 0x8393b80
2025-07-01 09:45:48,618 [DEBUG][       Thread-600639][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:45:48,635 [DEBUG][       Thread-600639][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:45:48,635 [ INFO][       Thread-600639][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:45:48,643 [DEBUG][       Thread-600639][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:45:48,643 [DEBUG][       Thread-600639][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:45:48,643 [DEBUG][       Thread-600639][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:45:48,644 [DEBUG][       Thread-600639][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:45:48,644 [DEBUG][       Thread-600639][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:45:48,644 [DEBUG][       Thread-600639][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:45:48,644 [DEBUG][       Thread-600639][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:45:48,644 [DEBUG][       Thread-600639][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:45:48,644 [DEBUG][       Thread-600639][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:45:48,644 [DEBUG][       Thread-600639][   transport.py][1871] : client lang: <none>
2025-07-01 09:45:48,644 [DEBUG][       Thread-600639][   transport.py][1871] : server lang: <none>
2025-07-01 09:45:48,644 [DEBUG][       Thread-600639][   transport.py][1871] : kex follows: False
2025-07-01 09:45:48,644 [DEBUG][       Thread-600639][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:45:48,644 [DEBUG][       Thread-600639][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:45:48,644 [DEBUG][       Thread-600639][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:45:48,644 [DEBUG][       Thread-600639][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:45:48,644 [DEBUG][       Thread-600639][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:45:48,644 [DEBUG][       Thread-600639][   transport.py][1871] : Compression: none
2025-07-01 09:45:48,644 [DEBUG][       Thread-600639][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:45:48,703 [DEBUG][       Thread-600639][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:45:48,704 [DEBUG][       Thread-600639][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:45:48,705 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:45:48,705 [DEBUG][       Thread-600639][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:45:48,706 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:45:48,763 [DEBUG][       Thread-600639][   transport.py][1871] : userauth is OK
2025-07-01 09:45:48,763 [DEBUG][       Thread-600639][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:45:48,763 [DEBUG][       Thread-600639][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:45:48,763 [DEBUG][       Thread-600639][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:45:48,763 [DEBUG][       Thread-600639][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:45:48,781 [ INFO][       Thread-600639][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:45:48,782 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:45:48,782 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:45:49,794 [DEBUG][       Thread-600639][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:45:49,794 [DEBUG][       Thread-600639][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:45:49,844 [DEBUG][       Thread-600639][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:45:49,844 [DEBUG][       Thread-600639][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:45:49,854 [DEBUG][       Thread-600639][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:45:49,863 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:45:49,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-07-01 09:45:49,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-07-01 09:45:49,882 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:45:49,882 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:45:49,883 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:45:49,891 [DEBUG][       Thread-600639][   transport.py][1871] : EOF in transport thread
2025-07-01 09:45:52,378 [DEBUG][Thread-600641 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:45:53,561 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:45:53,563 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:45:59,893 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:45:59,894 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:45:59,894 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:45:59,897 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:46:00,370 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 45, 35), 10.2, 49.08, 0.0, 43.03, 9.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:46:00,371 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:45:35
2025-07-01 09:46:00,455 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:46:00,459 [DEBUG][       Thread-600642][   transport.py][1871] : starting thread (client mode): 0x81a40a0
2025-07-01 09:46:00,459 [DEBUG][       Thread-600642][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:46:00,480 [DEBUG][       Thread-600642][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:46:00,480 [ INFO][       Thread-600642][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:46:00,483 [DEBUG][       Thread-600642][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:46:00,484 [DEBUG][       Thread-600642][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:46:00,484 [DEBUG][       Thread-600642][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:46:00,484 [DEBUG][       Thread-600642][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:46:00,484 [DEBUG][       Thread-600642][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:46:00,484 [DEBUG][       Thread-600642][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:46:00,484 [DEBUG][       Thread-600642][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:46:00,484 [DEBUG][       Thread-600642][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:46:00,484 [DEBUG][       Thread-600642][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:46:00,484 [DEBUG][       Thread-600642][   transport.py][1871] : client lang: <none>
2025-07-01 09:46:00,484 [DEBUG][       Thread-600642][   transport.py][1871] : server lang: <none>
2025-07-01 09:46:00,484 [DEBUG][       Thread-600642][   transport.py][1871] : kex follows: False
2025-07-01 09:46:00,484 [DEBUG][       Thread-600642][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:46:00,484 [DEBUG][       Thread-600642][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:46:00,484 [DEBUG][       Thread-600642][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:46:00,484 [DEBUG][       Thread-600642][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:46:00,484 [DEBUG][       Thread-600642][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:46:00,484 [DEBUG][       Thread-600642][   transport.py][1871] : Compression: none
2025-07-01 09:46:00,484 [DEBUG][       Thread-600642][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:46:00,501 [DEBUG][       Thread-600642][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:46:00,502 [DEBUG][       Thread-600642][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:46:00,502 [DEBUG][       Thread-600642][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:46:00,502 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:46:00,503 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:46:00,504 [DEBUG][       Thread-600642][   transport.py][1871] : userauth is OK
2025-07-01 09:46:00,528 [ INFO][       Thread-600642][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:46:00,529 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:46:01,155 [DEBUG][       Thread-600642][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:46:01,155 [DEBUG][       Thread-600642][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:46:01,196 [DEBUG][       Thread-600642][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:46:01,196 [DEBUG][       Thread-600642][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:46:01,199 [DEBUG][       Thread-600642][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:46:01,212 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:46:01,213 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:46:01,214 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:46:01,216 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:46:01,220 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:46:01,222 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:46:01,222 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:46:01,223 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:46:01,223 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.323211 -999.00   +9.50  31.41     54   +0.70 1 1 2 1 1   887    0 10.00 49.88 ----- 31.4 31.4 20.2 52.3 12.6 -23.7 11.6 -23.8 10.6 -23.5 11.6 -21.8
2025-07-01 09:46:01,223 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:46:01,223 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:46:01,223 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.323211
2025-07-01 09:46:01,223 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:46:01,224 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:46:01,224 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:46:01,224 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:46:01,224 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:46:01,224 [DEBUG][       Thread-600642][   transport.py][1871] : EOF in transport thread
2025-07-01 09:46:01,224 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:45:35', tmtdew=10.2, humidity=49.08, cloud=0.0, wind=43.03, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:45:25.430', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:46:01,307 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:46:01,319 [DEBUG][       Thread-600645][   transport.py][1871] : starting thread (client mode): 0x81e4610
2025-07-01 09:46:01,319 [DEBUG][       Thread-600645][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:46:01,334 [DEBUG][       Thread-600645][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:46:01,334 [ INFO][       Thread-600645][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:46:01,343 [DEBUG][       Thread-600645][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:46:01,343 [DEBUG][       Thread-600645][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:46:01,344 [DEBUG][       Thread-600645][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:46:01,344 [DEBUG][       Thread-600645][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:46:01,344 [DEBUG][       Thread-600645][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:46:01,344 [DEBUG][       Thread-600645][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:46:01,344 [DEBUG][       Thread-600645][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:46:01,344 [DEBUG][       Thread-600645][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:46:01,344 [DEBUG][       Thread-600645][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:46:01,344 [DEBUG][       Thread-600645][   transport.py][1871] : client lang: <none>
2025-07-01 09:46:01,344 [DEBUG][       Thread-600645][   transport.py][1871] : server lang: <none>
2025-07-01 09:46:01,344 [DEBUG][       Thread-600645][   transport.py][1871] : kex follows: False
2025-07-01 09:46:01,344 [DEBUG][       Thread-600645][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:46:01,344 [DEBUG][       Thread-600645][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:46:01,344 [DEBUG][       Thread-600645][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:46:01,344 [DEBUG][       Thread-600645][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:46:01,344 [DEBUG][       Thread-600645][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:46:01,344 [DEBUG][       Thread-600645][   transport.py][1871] : Compression: none
2025-07-01 09:46:01,344 [DEBUG][       Thread-600645][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:46:01,406 [DEBUG][       Thread-600645][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:46:01,407 [DEBUG][       Thread-600645][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:46:01,407 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:46:01,408 [DEBUG][       Thread-600645][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:46:01,409 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:46:01,412 [DEBUG][Thread-600647 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:46:01,462 [DEBUG][       Thread-600645][   transport.py][1871] : userauth is OK
2025-07-01 09:46:01,462 [DEBUG][       Thread-600645][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:46:01,462 [DEBUG][       Thread-600645][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:46:01,462 [DEBUG][       Thread-600645][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:46:01,462 [DEBUG][       Thread-600645][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:46:01,476 [ INFO][       Thread-600645][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:46:01,476 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:46:01,477 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:46:02,487 [DEBUG][       Thread-600645][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:46:02,487 [DEBUG][       Thread-600645][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:46:02,536 [DEBUG][       Thread-600645][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:46:02,537 [DEBUG][       Thread-600645][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:46:02,556 [DEBUG][       Thread-600645][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:46:02,566 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:46:02,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')
2025-07-01 09:46:02,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-07-01 09:46:02,585 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:46:02,586 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:46:02,586 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:46:02,601 [DEBUG][       Thread-600645][   transport.py][1871] : EOF in transport thread
2025-07-01 09:46:10,433 [DEBUG][Thread-600648 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:46:12,597 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:46:12,597 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:46:12,597 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:46:12,600 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:46:13,079 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 46, 6), 10.15, 49.25, 0.0, 31.18, 9.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:46:13,080 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:46:06
2025-07-01 09:46:13,165 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:46:13,169 [DEBUG][       Thread-600649][   transport.py][1871] : starting thread (client mode): 0x82b2620
2025-07-01 09:46:13,169 [DEBUG][       Thread-600649][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:46:13,188 [DEBUG][       Thread-600649][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:46:13,188 [ INFO][       Thread-600649][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:46:13,191 [DEBUG][       Thread-600649][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:46:13,191 [DEBUG][       Thread-600649][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:46:13,191 [DEBUG][       Thread-600649][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:46:13,191 [DEBUG][       Thread-600649][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:46:13,191 [DEBUG][       Thread-600649][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:46:13,191 [DEBUG][       Thread-600649][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:46:13,191 [DEBUG][       Thread-600649][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:46:13,191 [DEBUG][       Thread-600649][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:46:13,192 [DEBUG][       Thread-600649][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:46:13,192 [DEBUG][       Thread-600649][   transport.py][1871] : client lang: <none>
2025-07-01 09:46:13,192 [DEBUG][       Thread-600649][   transport.py][1871] : server lang: <none>
2025-07-01 09:46:13,192 [DEBUG][       Thread-600649][   transport.py][1871] : kex follows: False
2025-07-01 09:46:13,192 [DEBUG][       Thread-600649][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:46:13,192 [DEBUG][       Thread-600649][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:46:13,192 [DEBUG][       Thread-600649][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:46:13,192 [DEBUG][       Thread-600649][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:46:13,192 [DEBUG][       Thread-600649][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:46:13,192 [DEBUG][       Thread-600649][   transport.py][1871] : Compression: none
2025-07-01 09:46:13,192 [DEBUG][       Thread-600649][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:46:13,200 [DEBUG][       Thread-600649][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:46:13,201 [DEBUG][       Thread-600649][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:46:13,201 [DEBUG][       Thread-600649][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:46:13,202 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:46:13,202 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:46:13,203 [DEBUG][       Thread-600649][   transport.py][1871] : userauth is OK
2025-07-01 09:46:13,228 [ INFO][       Thread-600649][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:46:13,228 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:46:13,866 [DEBUG][       Thread-600649][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:46:13,866 [DEBUG][       Thread-600649][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:46:13,909 [DEBUG][       Thread-600649][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:46:13,909 [DEBUG][       Thread-600649][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:46:13,911 [DEBUG][       Thread-600649][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:46:13,924 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:46:13,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:46:13,925 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:46:13,926 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:46:13,929 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:46:13,930 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:46:13,930 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:46:13,931 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:46:13,931 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.323558 -999.00   +9.50  33.96     54   +0.70 1 1 2 1 1   887    0 9.95 52.47 ----- 34.0 34.0 22.6 54.9 12.7 -23.1 11.7 -23.5 10.7 -22.8 11.6 -22.2
2025-07-01 09:46:13,931 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:46:13,931 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:46:13,931 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.323558
2025-07-01 09:46:13,931 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:46:13,931 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:46:13,931 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:46:13,931 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:46:13,931 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:46:13,931 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:46:06', tmtdew=10.15, humidity=49.25, cloud=0.0, wind=31.18, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:45:55.411', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:46:13,931 [DEBUG][       Thread-600649][   transport.py][1871] : EOF in transport thread
2025-07-01 09:46:14,003 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:46:14,013 [DEBUG][       Thread-600652][   transport.py][1871] : starting thread (client mode): 0x8a671f0
2025-07-01 09:46:14,014 [DEBUG][       Thread-600652][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:46:14,029 [DEBUG][       Thread-600652][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:46:14,029 [ INFO][       Thread-600652][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:46:14,037 [DEBUG][       Thread-600652][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:46:14,037 [DEBUG][       Thread-600652][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:46:14,037 [DEBUG][       Thread-600652][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:46:14,037 [DEBUG][       Thread-600652][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:46:14,037 [DEBUG][       Thread-600652][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:46:14,037 [DEBUG][       Thread-600652][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:46:14,037 [DEBUG][       Thread-600652][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:46:14,037 [DEBUG][       Thread-600652][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:46:14,037 [DEBUG][       Thread-600652][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:46:14,037 [DEBUG][       Thread-600652][   transport.py][1871] : client lang: <none>
2025-07-01 09:46:14,037 [DEBUG][       Thread-600652][   transport.py][1871] : server lang: <none>
2025-07-01 09:46:14,037 [DEBUG][       Thread-600652][   transport.py][1871] : kex follows: False
2025-07-01 09:46:14,037 [DEBUG][       Thread-600652][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:46:14,037 [DEBUG][       Thread-600652][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:46:14,037 [DEBUG][       Thread-600652][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:46:14,037 [DEBUG][       Thread-600652][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:46:14,037 [DEBUG][       Thread-600652][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:46:14,037 [DEBUG][       Thread-600652][   transport.py][1871] : Compression: none
2025-07-01 09:46:14,037 [DEBUG][       Thread-600652][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:46:14,094 [DEBUG][       Thread-600652][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:46:14,095 [DEBUG][       Thread-600652][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:46:14,095 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:46:14,096 [DEBUG][       Thread-600652][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:46:14,096 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:46:14,156 [DEBUG][       Thread-600652][   transport.py][1871] : userauth is OK
2025-07-01 09:46:14,157 [DEBUG][       Thread-600652][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:46:14,157 [DEBUG][       Thread-600652][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:46:14,157 [DEBUG][       Thread-600652][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:46:14,157 [DEBUG][       Thread-600652][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:46:14,176 [ INFO][       Thread-600652][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:46:14,177 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:46:14,177 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:46:15,220 [DEBUG][       Thread-600652][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:46:15,220 [DEBUG][       Thread-600652][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:46:15,268 [DEBUG][       Thread-600652][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:46:15,268 [DEBUG][       Thread-600652][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:46:15,278 [DEBUG][       Thread-600652][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:46:15,287 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:46:15,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-07-01 09:46:15,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-07-01 09:46:15,305 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:46:15,305 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:46:15,306 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:46:15,313 [DEBUG][       Thread-600652][   transport.py][1871] : EOF in transport thread
2025-07-01 09:46:19,455 [DEBUG][Thread-600654 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:46:21,351 [DEBUG][Thread-600655 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:46:25,313 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:46:25,313 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:46:25,313 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:46:25,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-07-01 09:46:25,804 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 46, 6), 10.15, 49.25, 0.0, 31.18, 9.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:46:25,805 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:46:06
2025-07-01 09:46:25,890 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:46:25,896 [DEBUG][       Thread-600656][   transport.py][1871] : starting thread (client mode): 0x75a96f0
2025-07-01 09:46:25,896 [DEBUG][       Thread-600656][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:46:25,917 [DEBUG][       Thread-600656][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:46:25,917 [ INFO][       Thread-600656][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:46:25,920 [DEBUG][       Thread-600656][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:46:25,920 [DEBUG][       Thread-600656][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:46:25,920 [DEBUG][       Thread-600656][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:46:25,920 [DEBUG][       Thread-600656][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:46:25,920 [DEBUG][       Thread-600656][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:46:25,921 [DEBUG][       Thread-600656][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:46:25,921 [DEBUG][       Thread-600656][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:46:25,921 [DEBUG][       Thread-600656][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:46:25,921 [DEBUG][       Thread-600656][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:46:25,921 [DEBUG][       Thread-600656][   transport.py][1871] : client lang: <none>
2025-07-01 09:46:25,921 [DEBUG][       Thread-600656][   transport.py][1871] : server lang: <none>
2025-07-01 09:46:25,921 [DEBUG][       Thread-600656][   transport.py][1871] : kex follows: False
2025-07-01 09:46:25,921 [DEBUG][       Thread-600656][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:46:25,921 [DEBUG][       Thread-600656][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:46:25,921 [DEBUG][       Thread-600656][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:46:25,921 [DEBUG][       Thread-600656][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:46:25,921 [DEBUG][       Thread-600656][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:46:25,921 [DEBUG][       Thread-600656][   transport.py][1871] : Compression: none
2025-07-01 09:46:25,921 [DEBUG][       Thread-600656][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:46:25,938 [DEBUG][       Thread-600656][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:46:25,939 [DEBUG][       Thread-600656][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:46:25,939 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:46:25,940 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:46:25,940 [DEBUG][       Thread-600656][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:46:25,941 [DEBUG][       Thread-600656][   transport.py][1871] : userauth is OK
2025-07-01 09:46:25,965 [ INFO][       Thread-600656][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:46:25,966 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:46:26,587 [DEBUG][       Thread-600656][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:46:26,588 [DEBUG][       Thread-600656][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:46:26,629 [DEBUG][       Thread-600656][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:46:26,629 [DEBUG][       Thread-600656][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:46:26,632 [DEBUG][       Thread-600656][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:46:26,646 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:46:26,646 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:46:26,648 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:46:26,649 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:46:26,654 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:46:26,656 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:46:26,656 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:46:26,656 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:46:26,657 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.323558 -999.00   +9.50  33.96     54   +0.70 1 1 2 1 1   887    0 9.95 52.47 ----- 34.0 34.0 22.6 54.9 12.7 -23.1 11.7 -23.5 10.7 -22.8 11.6 -22.2
2025-07-01 09:46:26,657 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:46:26,657 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:46:26,657 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.323558
2025-07-01 09:46:26,657 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:46:26,658 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:46:26,658 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:46:26,658 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:46:26,658 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:46:26,658 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:46:06', tmtdew=10.15, humidity=49.25, cloud=0.0, wind=31.18, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:45:55.411', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:46:26,658 [DEBUG][       Thread-600656][   transport.py][1871] : EOF in transport thread
2025-07-01 09:46:26,742 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:46:26,758 [DEBUG][       Thread-600659][   transport.py][1871] : starting thread (client mode): 0x82b3490
2025-07-01 09:46:26,758 [DEBUG][       Thread-600659][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:46:26,777 [DEBUG][       Thread-600659][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:46:26,778 [ INFO][       Thread-600659][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:46:26,791 [DEBUG][       Thread-600659][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:46:26,791 [DEBUG][       Thread-600659][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:46:26,791 [DEBUG][       Thread-600659][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:46:26,791 [DEBUG][       Thread-600659][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:46:26,791 [DEBUG][       Thread-600659][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:46:26,791 [DEBUG][       Thread-600659][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:46:26,791 [DEBUG][       Thread-600659][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:46:26,791 [DEBUG][       Thread-600659][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:46:26,791 [DEBUG][       Thread-600659][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:46:26,791 [DEBUG][       Thread-600659][   transport.py][1871] : client lang: <none>
2025-07-01 09:46:26,791 [DEBUG][       Thread-600659][   transport.py][1871] : server lang: <none>
2025-07-01 09:46:26,791 [DEBUG][       Thread-600659][   transport.py][1871] : kex follows: False
2025-07-01 09:46:26,792 [DEBUG][       Thread-600659][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:46:26,792 [DEBUG][       Thread-600659][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:46:26,792 [DEBUG][       Thread-600659][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:46:26,792 [DEBUG][       Thread-600659][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:46:26,792 [DEBUG][       Thread-600659][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:46:26,792 [DEBUG][       Thread-600659][   transport.py][1871] : Compression: none
2025-07-01 09:46:26,792 [DEBUG][       Thread-600659][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:46:26,858 [DEBUG][       Thread-600659][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:46:26,859 [DEBUG][       Thread-600659][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:46:26,860 [DEBUG][       Thread-600659][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:46:26,860 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:46:26,861 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:46:26,925 [DEBUG][       Thread-600659][   transport.py][1871] : userauth is OK
2025-07-01 09:46:26,925 [DEBUG][       Thread-600659][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:46:26,925 [DEBUG][       Thread-600659][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:46:26,925 [DEBUG][       Thread-600659][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:46:26,925 [DEBUG][       Thread-600659][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:46:26,951 [ INFO][       Thread-600659][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:46:26,951 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:46:26,952 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:46:28,018 [DEBUG][       Thread-600659][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:46:28,018 [DEBUG][       Thread-600659][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:46:28,072 [DEBUG][       Thread-600659][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:46:28,072 [DEBUG][       Thread-600659][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:46:28,089 [DEBUG][       Thread-600659][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:46:28,103 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:46:28,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-07-01 09:46: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-07-01 09:46:28,128 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:46:28,128 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:46:28,129 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:46:28,144 [DEBUG][       Thread-600659][   transport.py][1871] : EOF in transport thread
2025-07-01 09:46:28,492 [DEBUG][Thread-600661 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:46:37,511 [DEBUG][Thread-600662 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:46:38,134 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:46:38,134 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:46:38,134 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:46: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-07-01 09:46:38,627 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 46, 6), 10.15, 49.25, 0.0, 31.18, 9.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:46:38,627 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:46:06
2025-07-01 09:46:38,712 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:46:38,717 [DEBUG][       Thread-600663][   transport.py][1871] : starting thread (client mode): 0x75a8640
2025-07-01 09:46:38,717 [DEBUG][       Thread-600663][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:46:38,738 [DEBUG][       Thread-600663][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:46:38,738 [ INFO][       Thread-600663][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:46:38,742 [DEBUG][       Thread-600663][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:46:38,742 [DEBUG][       Thread-600663][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:46:38,742 [DEBUG][       Thread-600663][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:46:38,742 [DEBUG][       Thread-600663][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:46:38,742 [DEBUG][       Thread-600663][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:46:38,742 [DEBUG][       Thread-600663][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:46:38,742 [DEBUG][       Thread-600663][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:46:38,742 [DEBUG][       Thread-600663][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:46:38,742 [DEBUG][       Thread-600663][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:46:38,742 [DEBUG][       Thread-600663][   transport.py][1871] : client lang: <none>
2025-07-01 09:46:38,742 [DEBUG][       Thread-600663][   transport.py][1871] : server lang: <none>
2025-07-01 09:46:38,742 [DEBUG][       Thread-600663][   transport.py][1871] : kex follows: False
2025-07-01 09:46:38,742 [DEBUG][       Thread-600663][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:46:38,742 [DEBUG][       Thread-600663][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:46:38,742 [DEBUG][       Thread-600663][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:46:38,742 [DEBUG][       Thread-600663][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:46:38,742 [DEBUG][       Thread-600663][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:46:38,742 [DEBUG][       Thread-600663][   transport.py][1871] : Compression: none
2025-07-01 09:46:38,742 [DEBUG][       Thread-600663][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:46:38,757 [DEBUG][       Thread-600663][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:46:38,758 [DEBUG][       Thread-600663][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:46:38,758 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:46:38,758 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:46:38,759 [DEBUG][       Thread-600663][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:46:38,760 [DEBUG][       Thread-600663][   transport.py][1871] : userauth is OK
2025-07-01 09:46:38,786 [ INFO][       Thread-600663][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:46:38,786 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:46:39,383 [DEBUG][       Thread-600663][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:46:39,383 [DEBUG][       Thread-600663][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:46:39,424 [DEBUG][       Thread-600663][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:46:39,424 [DEBUG][       Thread-600663][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:46:39,427 [DEBUG][       Thread-600663][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:46:39,440 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:46:39,440 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:46:39,441 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:46:39,442 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:46:39,445 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:46:39,445 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:46:39,445 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:46:39,445 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:46:39,445 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.323558 -999.00   +9.50  33.96     54   +0.70 1 1 2 1 1   887    0 9.95 52.47 ----- 34.0 34.0 22.6 54.9 12.7 -23.1 11.7 -23.5 10.7 -22.8 11.6 -22.2
2025-07-01 09:46:39,445 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:46:39,445 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:46:39,445 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.323558
2025-07-01 09:46:39,446 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:46:39,446 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:46:39,446 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:46:39,446 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:46:39,446 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:46:39,446 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:46:06', tmtdew=10.15, humidity=49.25, cloud=0.0, wind=31.18, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:45:55.411', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:46:39,446 [DEBUG][       Thread-600663][   transport.py][1871] : EOF in transport thread
2025-07-01 09:46:39,520 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:46:39,530 [DEBUG][       Thread-600666][   transport.py][1871] : starting thread (client mode): 0x8104760
2025-07-01 09:46:39,530 [DEBUG][       Thread-600666][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:46:39,546 [DEBUG][       Thread-600666][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:46:39,546 [ INFO][       Thread-600666][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:46:39,553 [DEBUG][       Thread-600666][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:46:39,553 [DEBUG][       Thread-600666][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:46:39,553 [DEBUG][       Thread-600666][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:46:39,553 [DEBUG][       Thread-600666][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:46:39,553 [DEBUG][       Thread-600666][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:46:39,553 [DEBUG][       Thread-600666][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:46:39,553 [DEBUG][       Thread-600666][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:46:39,553 [DEBUG][       Thread-600666][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:46:39,554 [DEBUG][       Thread-600666][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:46:39,554 [DEBUG][       Thread-600666][   transport.py][1871] : client lang: <none>
2025-07-01 09:46:39,554 [DEBUG][       Thread-600666][   transport.py][1871] : server lang: <none>
2025-07-01 09:46:39,554 [DEBUG][       Thread-600666][   transport.py][1871] : kex follows: False
2025-07-01 09:46:39,554 [DEBUG][       Thread-600666][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:46:39,554 [DEBUG][       Thread-600666][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:46:39,554 [DEBUG][       Thread-600666][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:46:39,554 [DEBUG][       Thread-600666][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:46:39,554 [DEBUG][       Thread-600666][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:46:39,554 [DEBUG][       Thread-600666][   transport.py][1871] : Compression: none
2025-07-01 09:46:39,554 [DEBUG][       Thread-600666][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:46:39,609 [DEBUG][       Thread-600666][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:46:39,609 [DEBUG][       Thread-600666][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:46:39,609 [DEBUG][       Thread-600666][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:46:39,609 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:46:39,610 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:46:39,666 [DEBUG][       Thread-600666][   transport.py][1871] : userauth is OK
2025-07-01 09:46:39,666 [DEBUG][       Thread-600666][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:46:39,666 [DEBUG][       Thread-600666][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:46:39,666 [DEBUG][       Thread-600666][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:46:39,666 [DEBUG][       Thread-600666][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:46:39,681 [ INFO][       Thread-600666][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:46:39,681 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:46:39,681 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:46:40,689 [DEBUG][       Thread-600666][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:46:40,689 [DEBUG][       Thread-600666][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:46:40,743 [DEBUG][       Thread-600666][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:46:40,743 [DEBUG][       Thread-600666][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:46:40,752 [DEBUG][       Thread-600666][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:46:40,760 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:46:40,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-07-01 09:46:40,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-07-01 09:46:40,776 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:46:40,776 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:46:40,776 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:46:40,784 [DEBUG][       Thread-600666][   transport.py][1871] : EOF in transport thread
2025-07-01 09:46:46,528 [DEBUG][Thread-600668 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:46:50,787 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:46:50,787 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:46:50,787 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:46:50,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-07-01 09:46:51,270 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 46, 39), 10.14, 49.29, 0.0, 35.78, 9.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:46:51,270 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:46:39
2025-07-01 09:46:51,356 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:46:51,362 [DEBUG][       Thread-600669][   transport.py][1871] : starting thread (client mode): 0x75aa9b0
2025-07-01 09:46:51,362 [DEBUG][       Thread-600669][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:46:51,384 [DEBUG][       Thread-600669][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:46:51,384 [ INFO][       Thread-600669][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:46:51,387 [DEBUG][       Thread-600669][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:46:51,387 [DEBUG][       Thread-600669][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:46:51,387 [DEBUG][       Thread-600669][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:46:51,387 [DEBUG][       Thread-600669][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:46:51,387 [DEBUG][       Thread-600669][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:46:51,387 [DEBUG][       Thread-600669][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:46:51,387 [DEBUG][       Thread-600669][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:46:51,387 [DEBUG][       Thread-600669][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:46:51,387 [DEBUG][       Thread-600669][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:46:51,387 [DEBUG][       Thread-600669][   transport.py][1871] : client lang: <none>
2025-07-01 09:46:51,387 [DEBUG][       Thread-600669][   transport.py][1871] : server lang: <none>
2025-07-01 09:46:51,387 [DEBUG][       Thread-600669][   transport.py][1871] : kex follows: False
2025-07-01 09:46:51,387 [DEBUG][       Thread-600669][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:46:51,387 [DEBUG][       Thread-600669][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:46:51,387 [DEBUG][       Thread-600669][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:46:51,387 [DEBUG][       Thread-600669][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:46:51,387 [DEBUG][       Thread-600669][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:46:51,387 [DEBUG][       Thread-600669][   transport.py][1871] : Compression: none
2025-07-01 09:46:51,387 [DEBUG][       Thread-600669][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:46:51,405 [DEBUG][       Thread-600669][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:46:51,406 [DEBUG][       Thread-600669][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:46:51,406 [DEBUG][       Thread-600669][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:46:51,406 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:46:51,406 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:46:51,407 [DEBUG][       Thread-600669][   transport.py][1871] : userauth is OK
2025-07-01 09:46:51,432 [ INFO][       Thread-600669][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:46:51,433 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:46:52,070 [DEBUG][       Thread-600669][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:46:52,070 [DEBUG][       Thread-600669][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:46:52,113 [DEBUG][       Thread-600669][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:46:52,113 [DEBUG][       Thread-600669][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:46:52,117 [DEBUG][       Thread-600669][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:46:52,131 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:46:52,132 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:46:52,134 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:46:52,136 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:46:52,142 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:46:52,144 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:46:52,144 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:46:52,145 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:46:52,145 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.323906 -999.00   +9.50  43.69     54   +0.70 1 1 2 1 1   887    0 9.91 48.84 ----- 43.7 43.7 17.2 57.0 12.6 -24.2 11.7 -23.6 10.7 -23.1 11.6 -21.8
2025-07-01 09:46:52,145 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:46:52,145 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:46:52,145 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.323906
2025-07-01 09:46:52,145 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:46:52,146 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:46:52,146 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:46:52,146 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:46:52,146 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:46:52,146 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:46:39', tmtdew=10.14, humidity=49.29, cloud=0.0, wind=35.78, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:46:25.478', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:46:52,148 [DEBUG][       Thread-600669][   transport.py][1871] : EOF in transport thread
2025-07-01 09:46:52,223 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:46:52,235 [DEBUG][       Thread-600672][   transport.py][1871] : starting thread (client mode): 0x81e5390
2025-07-01 09:46:52,235 [DEBUG][       Thread-600672][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:46:52,250 [DEBUG][       Thread-600672][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:46:52,250 [ INFO][       Thread-600672][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:46:52,257 [DEBUG][       Thread-600672][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:46:52,257 [DEBUG][       Thread-600672][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:46:52,258 [DEBUG][       Thread-600672][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:46:52,258 [DEBUG][       Thread-600672][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:46:52,258 [DEBUG][       Thread-600672][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:46:52,258 [DEBUG][       Thread-600672][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:46:52,258 [DEBUG][       Thread-600672][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:46:52,258 [DEBUG][       Thread-600672][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:46:52,258 [DEBUG][       Thread-600672][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:46:52,258 [DEBUG][       Thread-600672][   transport.py][1871] : client lang: <none>
2025-07-01 09:46:52,258 [DEBUG][       Thread-600672][   transport.py][1871] : server lang: <none>
2025-07-01 09:46:52,258 [DEBUG][       Thread-600672][   transport.py][1871] : kex follows: False
2025-07-01 09:46:52,258 [DEBUG][       Thread-600672][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:46:52,258 [DEBUG][       Thread-600672][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:46:52,258 [DEBUG][       Thread-600672][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:46:52,258 [DEBUG][       Thread-600672][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:46:52,258 [DEBUG][       Thread-600672][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:46:52,258 [DEBUG][       Thread-600672][   transport.py][1871] : Compression: none
2025-07-01 09:46:52,258 [DEBUG][       Thread-600672][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:46:52,315 [DEBUG][       Thread-600672][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:46:52,316 [DEBUG][       Thread-600672][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:46:52,317 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:46:52,317 [DEBUG][       Thread-600672][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:46:52,318 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:46:52,379 [DEBUG][       Thread-600672][   transport.py][1871] : userauth is OK
2025-07-01 09:46:52,379 [DEBUG][       Thread-600672][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:46:52,379 [DEBUG][       Thread-600672][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:46:52,379 [DEBUG][       Thread-600672][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:46:52,379 [DEBUG][       Thread-600672][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:46:52,398 [ INFO][       Thread-600672][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:46:52,399 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:46:52,399 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:46:53,400 [DEBUG][       Thread-600672][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:46:53,400 [DEBUG][       Thread-600672][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:46:53,452 [DEBUG][       Thread-600672][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:46:53,452 [DEBUG][       Thread-600672][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:46:53,462 [DEBUG][       Thread-600672][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:46:53,471 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:46: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')
2025-07-01 09:46: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') -> 00000000
2025-07-01 09:46:53,489 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:46:53,490 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:46:53,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:46:53,503 [DEBUG][       Thread-600672][   transport.py][1871] : EOF in transport thread
2025-07-01 09:46:53,700 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:46:53,701 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:46:55,552 [DEBUG][Thread-600674 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:47:03,501 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:47:03,501 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:47:03,501 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:47:03,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-07-01 09:47:03,995 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 46, 39), 10.14, 49.29, 0.0, 35.78, 9.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:47:03,995 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:46:39
2025-07-01 09:47:04,079 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:47:04,083 [DEBUG][       Thread-600675][   transport.py][1871] : starting thread (client mode): 0x83939d0
2025-07-01 09:47:04,083 [DEBUG][       Thread-600675][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:47:04,109 [DEBUG][       Thread-600675][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:47:04,109 [ INFO][       Thread-600675][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:47:04,112 [DEBUG][       Thread-600675][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:47:04,112 [DEBUG][       Thread-600675][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:47:04,112 [DEBUG][       Thread-600675][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:47:04,112 [DEBUG][       Thread-600675][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:47:04,112 [DEBUG][       Thread-600675][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:47:04,112 [DEBUG][       Thread-600675][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:47:04,112 [DEBUG][       Thread-600675][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:47:04,112 [DEBUG][       Thread-600675][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:47:04,112 [DEBUG][       Thread-600675][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:47:04,112 [DEBUG][       Thread-600675][   transport.py][1871] : client lang: <none>
2025-07-01 09:47:04,112 [DEBUG][       Thread-600675][   transport.py][1871] : server lang: <none>
2025-07-01 09:47:04,112 [DEBUG][       Thread-600675][   transport.py][1871] : kex follows: False
2025-07-01 09:47:04,112 [DEBUG][       Thread-600675][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:47:04,113 [DEBUG][       Thread-600675][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:47:04,113 [DEBUG][       Thread-600675][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:47:04,113 [DEBUG][       Thread-600675][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:47:04,113 [DEBUG][       Thread-600675][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:47:04,113 [DEBUG][       Thread-600675][   transport.py][1871] : Compression: none
2025-07-01 09:47:04,113 [DEBUG][       Thread-600675][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:47:04,128 [DEBUG][       Thread-600675][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:47:04,129 [DEBUG][       Thread-600675][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:47:04,129 [DEBUG][       Thread-600675][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:47:04,130 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:47:04,130 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:47:04,131 [DEBUG][       Thread-600675][   transport.py][1871] : userauth is OK
2025-07-01 09:47:04,156 [ INFO][       Thread-600675][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:47:04,157 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:47:04,586 [DEBUG][Thread-600677 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:47:04,760 [DEBUG][       Thread-600675][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:47:04,761 [DEBUG][       Thread-600675][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:47:04,805 [DEBUG][       Thread-600675][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:47:04,805 [DEBUG][       Thread-600675][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:47:04,808 [DEBUG][       Thread-600675][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:47:04,821 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:47:04,822 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:47:04,824 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:47:04,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:47:04,831 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:47:04,833 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:47:04,833 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:47:04,834 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:47:04,834 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.323906 -999.00   +9.50  43.69     54   +0.70 1 1 2 1 1   887    0 9.91 48.84 ----- 43.7 43.7 17.2 57.0 12.6 -24.2 11.7 -23.6 10.7 -23.1 11.6 -21.8
2025-07-01 09:47:04,834 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:47:04,834 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:47:04,834 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.323906
2025-07-01 09:47:04,834 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:47:04,835 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:47:04,835 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:47:04,835 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:47:04,835 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:47:04,835 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:46:39', tmtdew=10.14, humidity=49.29, cloud=0.0, wind=35.78, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:46:25.478', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:47:04,836 [DEBUG][       Thread-600675][   transport.py][1871] : EOF in transport thread
2025-07-01 09:47:04,911 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:47:04,921 [DEBUG][       Thread-600679][   transport.py][1871] : starting thread (client mode): 0x83c8460
2025-07-01 09:47:04,921 [DEBUG][       Thread-600679][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:47:04,936 [DEBUG][       Thread-600679][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:47:04,936 [ INFO][       Thread-600679][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:47:04,948 [DEBUG][       Thread-600679][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:47:04,948 [DEBUG][       Thread-600679][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:47:04,948 [DEBUG][       Thread-600679][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:47:04,948 [DEBUG][       Thread-600679][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:47:04,948 [DEBUG][       Thread-600679][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:47:04,948 [DEBUG][       Thread-600679][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:47:04,948 [DEBUG][       Thread-600679][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:47:04,948 [DEBUG][       Thread-600679][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:47:04,948 [DEBUG][       Thread-600679][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:47:04,948 [DEBUG][       Thread-600679][   transport.py][1871] : client lang: <none>
2025-07-01 09:47:04,948 [DEBUG][       Thread-600679][   transport.py][1871] : server lang: <none>
2025-07-01 09:47:04,948 [DEBUG][       Thread-600679][   transport.py][1871] : kex follows: False
2025-07-01 09:47:04,948 [DEBUG][       Thread-600679][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:47:04,949 [DEBUG][       Thread-600679][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:47:04,949 [DEBUG][       Thread-600679][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:47:04,949 [DEBUG][       Thread-600679][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:47:04,949 [DEBUG][       Thread-600679][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:47:04,949 [DEBUG][       Thread-600679][   transport.py][1871] : Compression: none
2025-07-01 09:47:04,949 [DEBUG][       Thread-600679][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:47:05,007 [DEBUG][       Thread-600679][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:47:05,007 [DEBUG][       Thread-600679][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:47:05,008 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:47:05,008 [DEBUG][       Thread-600679][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:47:05,009 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:47:05,071 [DEBUG][       Thread-600679][   transport.py][1871] : userauth is OK
2025-07-01 09:47:05,072 [DEBUG][       Thread-600679][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:47:05,072 [DEBUG][       Thread-600679][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:47:05,072 [DEBUG][       Thread-600679][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:47:05,072 [DEBUG][       Thread-600679][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:47:05,092 [ INFO][       Thread-600679][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:47:05,092 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:47:05,093 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:47:06,150 [DEBUG][       Thread-600679][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:47:06,150 [DEBUG][       Thread-600679][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:47:06,200 [DEBUG][       Thread-600679][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:47:06,200 [DEBUG][       Thread-600679][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:47:06,209 [DEBUG][       Thread-600679][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:47:06,219 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:47:06,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')
2025-07-01 09:47:06,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-07-01 09:47:06,243 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:47:06,243 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:47:06,244 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:47:06,252 [DEBUG][       Thread-600679][   transport.py][1871] : EOF in transport thread
2025-07-01 09:47:13,607 [DEBUG][Thread-600681 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:47:16,254 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:47:16,254 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:47:16,254 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:47:16,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-07-01 09:47:16,735 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 47, 10), 10.21, 49.18, 0.0, 33.19, 9.77, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:47:16,735 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:47:10
2025-07-01 09:47:16,820 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:47:16,826 [DEBUG][       Thread-600682][   transport.py][1871] : starting thread (client mode): 0x82b3f70
2025-07-01 09:47:16,826 [DEBUG][       Thread-600682][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:47:16,848 [DEBUG][       Thread-600682][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:47:16,849 [ INFO][       Thread-600682][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:47:16,851 [DEBUG][       Thread-600682][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:47:16,851 [DEBUG][       Thread-600682][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:47:16,851 [DEBUG][       Thread-600682][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:47:16,851 [DEBUG][       Thread-600682][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:47:16,851 [DEBUG][       Thread-600682][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:47:16,851 [DEBUG][       Thread-600682][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:47:16,851 [DEBUG][       Thread-600682][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:47:16,851 [DEBUG][       Thread-600682][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:47:16,851 [DEBUG][       Thread-600682][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:47:16,851 [DEBUG][       Thread-600682][   transport.py][1871] : client lang: <none>
2025-07-01 09:47:16,851 [DEBUG][       Thread-600682][   transport.py][1871] : server lang: <none>
2025-07-01 09:47:16,851 [DEBUG][       Thread-600682][   transport.py][1871] : kex follows: False
2025-07-01 09:47:16,851 [DEBUG][       Thread-600682][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:47:16,851 [DEBUG][       Thread-600682][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:47:16,851 [DEBUG][       Thread-600682][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:47:16,852 [DEBUG][       Thread-600682][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:47:16,852 [DEBUG][       Thread-600682][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:47:16,852 [DEBUG][       Thread-600682][   transport.py][1871] : Compression: none
2025-07-01 09:47:16,852 [DEBUG][       Thread-600682][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:47:16,865 [DEBUG][       Thread-600682][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:47:16,866 [DEBUG][       Thread-600682][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:47:16,866 [DEBUG][       Thread-600682][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:47:16,866 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:47:16,867 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:47:16,868 [DEBUG][       Thread-600682][   transport.py][1871] : userauth is OK
2025-07-01 09:47:16,881 [ INFO][       Thread-600682][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:47:16,882 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:47:17,512 [DEBUG][       Thread-600682][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:47:17,512 [DEBUG][       Thread-600682][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:47:17,552 [DEBUG][       Thread-600682][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:47:17,552 [DEBUG][       Thread-600682][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:47:17,554 [DEBUG][       Thread-600682][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:47:17,565 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:47:17,565 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:47:17,566 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:47:17,567 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:47:17,569 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:47:17,570 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:47:17,570 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:47:17,570 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:47:17,571 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.323906 -999.00   +9.50  43.69     54   +0.70 1 1 2 1 1   887    0 9.91 48.84 ----- 43.7 43.7 17.2 57.0 12.6 -24.2 11.7 -23.6 10.7 -23.1 11.6 -21.8
2025-07-01 09:47:17,571 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:47:17,571 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:47:17,571 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.323906
2025-07-01 09:47:17,571 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:47:17,571 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:47:17,571 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:47:17,571 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:47:17,571 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:47:17,571 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:47:10', tmtdew=10.21, humidity=49.18, cloud=0.0, wind=33.19, temperature=9.77, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:46:25.478', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:47:17,571 [DEBUG][       Thread-600682][   transport.py][1871] : EOF in transport thread
2025-07-01 09:47:17,654 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:47:17,665 [DEBUG][       Thread-600685][   transport.py][1871] : starting thread (client mode): 0x81e5ed0
2025-07-01 09:47:17,665 [DEBUG][       Thread-600685][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:47:17,680 [DEBUG][       Thread-600685][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:47:17,680 [ INFO][       Thread-600685][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:47:17,688 [DEBUG][       Thread-600685][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:47:17,688 [DEBUG][       Thread-600685][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:47:17,688 [DEBUG][       Thread-600685][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:47:17,688 [DEBUG][       Thread-600685][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:47:17,688 [DEBUG][       Thread-600685][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:47:17,688 [DEBUG][       Thread-600685][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:47:17,689 [DEBUG][       Thread-600685][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:47:17,689 [DEBUG][       Thread-600685][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:47:17,689 [DEBUG][       Thread-600685][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:47:17,689 [DEBUG][       Thread-600685][   transport.py][1871] : client lang: <none>
2025-07-01 09:47:17,689 [DEBUG][       Thread-600685][   transport.py][1871] : server lang: <none>
2025-07-01 09:47:17,689 [DEBUG][       Thread-600685][   transport.py][1871] : kex follows: False
2025-07-01 09:47:17,689 [DEBUG][       Thread-600685][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:47:17,689 [DEBUG][       Thread-600685][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:47:17,689 [DEBUG][       Thread-600685][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:47:17,689 [DEBUG][       Thread-600685][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:47:17,689 [DEBUG][       Thread-600685][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:47:17,689 [DEBUG][       Thread-600685][   transport.py][1871] : Compression: none
2025-07-01 09:47:17,689 [DEBUG][       Thread-600685][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:47:17,748 [DEBUG][       Thread-600685][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:47:17,748 [DEBUG][       Thread-600685][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:47:17,749 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:47:17,750 [DEBUG][       Thread-600685][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:47:17,751 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:47:17,815 [DEBUG][       Thread-600685][   transport.py][1871] : userauth is OK
2025-07-01 09:47:17,815 [DEBUG][       Thread-600685][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:47:17,815 [DEBUG][       Thread-600685][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:47:17,815 [DEBUG][       Thread-600685][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:47:17,816 [DEBUG][       Thread-600685][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:47:17,839 [ INFO][       Thread-600685][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:47:17,840 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:47:17,840 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:47:18,856 [DEBUG][       Thread-600685][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:47:18,857 [DEBUG][       Thread-600685][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:47:18,904 [DEBUG][       Thread-600685][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:47:18,904 [DEBUG][       Thread-600685][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:47:18,915 [DEBUG][       Thread-600685][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:47:18,927 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:47:18,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-07-01 09:47:18,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-07-01 09:47:18,948 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:47:18,948 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:47:18,948 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:47:18,957 [DEBUG][       Thread-600685][   transport.py][1871] : EOF in transport thread
2025-07-01 09:47:21,402 [DEBUG][Thread-600687 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:47:22,627 [DEBUG][Thread-600688 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:47:28,959 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:47:28,959 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:47:28,959 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:47:28,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-07-01 09:47:29,457 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 47, 10), 10.21, 49.18, 0.0, 33.19, 9.77, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:47:29,457 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:47:10
2025-07-01 09:47:29,541 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:47:29,545 [DEBUG][       Thread-600689][   transport.py][1871] : starting thread (client mode): 0x8170c40
2025-07-01 09:47:29,545 [DEBUG][       Thread-600689][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:47:29,563 [DEBUG][       Thread-600689][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:47:29,563 [ INFO][       Thread-600689][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:47:29,566 [DEBUG][       Thread-600689][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:47:29,566 [DEBUG][       Thread-600689][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:47:29,566 [DEBUG][       Thread-600689][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:47:29,566 [DEBUG][       Thread-600689][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:47:29,566 [DEBUG][       Thread-600689][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:47:29,567 [DEBUG][       Thread-600689][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:47:29,567 [DEBUG][       Thread-600689][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:47:29,567 [DEBUG][       Thread-600689][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:47:29,567 [DEBUG][       Thread-600689][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:47:29,567 [DEBUG][       Thread-600689][   transport.py][1871] : client lang: <none>
2025-07-01 09:47:29,567 [DEBUG][       Thread-600689][   transport.py][1871] : server lang: <none>
2025-07-01 09:47:29,567 [DEBUG][       Thread-600689][   transport.py][1871] : kex follows: False
2025-07-01 09:47:29,567 [DEBUG][       Thread-600689][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:47:29,567 [DEBUG][       Thread-600689][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:47:29,567 [DEBUG][       Thread-600689][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:47:29,567 [DEBUG][       Thread-600689][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:47:29,567 [DEBUG][       Thread-600689][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:47:29,567 [DEBUG][       Thread-600689][   transport.py][1871] : Compression: none
2025-07-01 09:47:29,567 [DEBUG][       Thread-600689][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:47:29,582 [DEBUG][       Thread-600689][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:47:29,582 [DEBUG][       Thread-600689][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:47:29,583 [DEBUG][       Thread-600689][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:47:29,583 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:47:29,583 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:47:29,585 [DEBUG][       Thread-600689][   transport.py][1871] : userauth is OK
2025-07-01 09:47:29,598 [ INFO][       Thread-600689][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:47:29,599 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:47:30,232 [DEBUG][       Thread-600689][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:47:30,233 [DEBUG][       Thread-600689][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:47:30,277 [DEBUG][       Thread-600689][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:47:30,277 [DEBUG][       Thread-600689][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:47:30,280 [DEBUG][       Thread-600689][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:47:30,292 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:47:30,293 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:47:30,295 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:47:30,297 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:47:30,302 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:47:30,304 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:47:30,305 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:47:30,305 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:47:30,305 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.324253 -999.00   +9.50  41.67     54   +0.70 1 1 2 1 1   887    0 9.93 46.69 ----- 41.7 41.7 13.3 51.0 12.6 -23.6 11.7 -23.8 10.7 -23.0 11.7 -23.6
2025-07-01 09:47:30,305 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:47:30,306 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:47:30,306 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.324253
2025-07-01 09:47:30,306 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:47:30,307 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:47:30,307 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:47:30,307 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:47:30,307 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:47:30,307 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:47:10', tmtdew=10.21, humidity=49.18, cloud=0.0, wind=33.19, temperature=9.77, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:46:55.459', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:47:30,307 [DEBUG][       Thread-600689][   transport.py][1871] : EOF in transport thread
2025-07-01 09:47:30,391 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:47:30,403 [DEBUG][       Thread-600692][   transport.py][1871] : starting thread (client mode): 0x818fcd0
2025-07-01 09:47:30,403 [DEBUG][       Thread-600692][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:47:30,420 [DEBUG][       Thread-600692][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:47:30,420 [ INFO][       Thread-600692][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:47:30,428 [DEBUG][       Thread-600692][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:47:30,429 [DEBUG][       Thread-600692][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:47:30,429 [DEBUG][       Thread-600692][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:47:30,429 [DEBUG][       Thread-600692][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:47:30,429 [DEBUG][       Thread-600692][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:47:30,429 [DEBUG][       Thread-600692][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:47:30,429 [DEBUG][       Thread-600692][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:47:30,429 [DEBUG][       Thread-600692][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:47:30,429 [DEBUG][       Thread-600692][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:47:30,429 [DEBUG][       Thread-600692][   transport.py][1871] : client lang: <none>
2025-07-01 09:47:30,429 [DEBUG][       Thread-600692][   transport.py][1871] : server lang: <none>
2025-07-01 09:47:30,430 [DEBUG][       Thread-600692][   transport.py][1871] : kex follows: False
2025-07-01 09:47:30,430 [DEBUG][       Thread-600692][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:47:30,430 [DEBUG][       Thread-600692][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:47:30,430 [DEBUG][       Thread-600692][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:47:30,430 [DEBUG][       Thread-600692][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:47:30,430 [DEBUG][       Thread-600692][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:47:30,430 [DEBUG][       Thread-600692][   transport.py][1871] : Compression: none
2025-07-01 09:47:30,430 [DEBUG][       Thread-600692][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:47:30,488 [DEBUG][       Thread-600692][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:47:30,489 [DEBUG][       Thread-600692][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:47:30,490 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:47:30,491 [DEBUG][       Thread-600692][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:47:30,492 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:47:30,547 [DEBUG][       Thread-600692][   transport.py][1871] : userauth is OK
2025-07-01 09:47:30,547 [DEBUG][       Thread-600692][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:47:30,548 [DEBUG][       Thread-600692][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:47:30,548 [DEBUG][       Thread-600692][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:47:30,548 [DEBUG][       Thread-600692][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:47:30,579 [ INFO][       Thread-600692][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:47:30,580 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:47:30,580 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:47:31,588 [DEBUG][       Thread-600692][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:47:31,589 [DEBUG][       Thread-600692][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:47:31,636 [DEBUG][       Thread-600692][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:47:31,636 [DEBUG][       Thread-600692][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:47:31,645 [DEBUG][       Thread-600692][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:47:31,653 [DEBUG][Thread-600694 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:47:31,654 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:47:31,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-07-01 09:47:31,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') -> 00000000
2025-07-01 09:47:31,672 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:47:31,672 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:47:31,673 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:47:31,681 [DEBUG][       Thread-600692][   transport.py][1871] : EOF in transport thread
2025-07-01 09:47:40,675 [DEBUG][Thread-600695 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:47:41,683 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:47:41,683 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:47:41,684 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:47:41,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-07-01 09:47:42,173 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 47, 10), 10.21, 49.18, 0.0, 33.19, 9.77, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:47:42,173 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:47:10
2025-07-01 09:47:42,259 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:47:42,263 [DEBUG][       Thread-600696][   transport.py][1871] : starting thread (client mode): 0x75aba90
2025-07-01 09:47:42,263 [DEBUG][       Thread-600696][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:47:42,283 [DEBUG][       Thread-600696][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:47:42,283 [ INFO][       Thread-600696][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:47:42,287 [DEBUG][       Thread-600696][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:47:42,287 [DEBUG][       Thread-600696][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:47:42,287 [DEBUG][       Thread-600696][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:47:42,287 [DEBUG][       Thread-600696][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:47:42,287 [DEBUG][       Thread-600696][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:47:42,287 [DEBUG][       Thread-600696][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:47:42,287 [DEBUG][       Thread-600696][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:47:42,287 [DEBUG][       Thread-600696][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:47:42,287 [DEBUG][       Thread-600696][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:47:42,287 [DEBUG][       Thread-600696][   transport.py][1871] : client lang: <none>
2025-07-01 09:47:42,287 [DEBUG][       Thread-600696][   transport.py][1871] : server lang: <none>
2025-07-01 09:47:42,287 [DEBUG][       Thread-600696][   transport.py][1871] : kex follows: False
2025-07-01 09:47:42,287 [DEBUG][       Thread-600696][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:47:42,287 [DEBUG][       Thread-600696][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:47:42,287 [DEBUG][       Thread-600696][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:47:42,287 [DEBUG][       Thread-600696][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:47:42,287 [DEBUG][       Thread-600696][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:47:42,287 [DEBUG][       Thread-600696][   transport.py][1871] : Compression: none
2025-07-01 09:47:42,287 [DEBUG][       Thread-600696][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:47:42,303 [DEBUG][       Thread-600696][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:47:42,304 [DEBUG][       Thread-600696][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:47:42,304 [DEBUG][       Thread-600696][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:47:42,304 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:47:42,304 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:47:42,349 [DEBUG][       Thread-600696][   transport.py][1871] : userauth is OK
2025-07-01 09:47:42,374 [ INFO][       Thread-600696][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:47:42,375 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:47:43,006 [DEBUG][       Thread-600696][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:47:43,006 [DEBUG][       Thread-600696][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:47:43,048 [DEBUG][       Thread-600696][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:47:43,048 [DEBUG][       Thread-600696][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:47:43,051 [DEBUG][       Thread-600696][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:47:43,062 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:47:43,062 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:47:43,063 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:47:43,065 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:47:43,067 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:47:43,068 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:47:43,068 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:47:43,068 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:47:43,068 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.324253 -999.00   +9.50  41.67     54   +0.70 1 1 2 1 1   887    0 9.93 46.69 ----- 41.7 41.7 13.3 51.0 12.6 -23.6 11.7 -23.8 10.7 -23.0 11.7 -23.6
2025-07-01 09:47:43,068 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:47:43,068 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:47:43,068 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.324253
2025-07-01 09:47:43,068 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:47:43,069 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:47:43,069 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:47:43,069 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:47:43,069 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:47:43,069 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:47:10', tmtdew=10.21, humidity=49.18, cloud=0.0, wind=33.19, temperature=9.77, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:46:55.459', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:47:43,069 [DEBUG][       Thread-600696][   transport.py][1871] : EOF in transport thread
2025-07-01 09:47:43,142 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:47:43,152 [DEBUG][       Thread-600699][   transport.py][1871] : starting thread (client mode): 0x81736a0
2025-07-01 09:47:43,152 [DEBUG][       Thread-600699][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:47:43,168 [DEBUG][       Thread-600699][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:47:43,168 [ INFO][       Thread-600699][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:47:43,177 [DEBUG][       Thread-600699][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:47:43,177 [DEBUG][       Thread-600699][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:47:43,177 [DEBUG][       Thread-600699][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:47:43,177 [DEBUG][       Thread-600699][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:47:43,177 [DEBUG][       Thread-600699][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:47:43,177 [DEBUG][       Thread-600699][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:47:43,177 [DEBUG][       Thread-600699][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:47:43,177 [DEBUG][       Thread-600699][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:47:43,177 [DEBUG][       Thread-600699][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:47:43,177 [DEBUG][       Thread-600699][   transport.py][1871] : client lang: <none>
2025-07-01 09:47:43,177 [DEBUG][       Thread-600699][   transport.py][1871] : server lang: <none>
2025-07-01 09:47:43,177 [DEBUG][       Thread-600699][   transport.py][1871] : kex follows: False
2025-07-01 09:47:43,177 [DEBUG][       Thread-600699][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:47:43,177 [DEBUG][       Thread-600699][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:47:43,177 [DEBUG][       Thread-600699][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:47:43,177 [DEBUG][       Thread-600699][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:47:43,177 [DEBUG][       Thread-600699][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:47:43,177 [DEBUG][       Thread-600699][   transport.py][1871] : Compression: none
2025-07-01 09:47:43,177 [DEBUG][       Thread-600699][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:47:43,234 [DEBUG][       Thread-600699][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:47:43,234 [DEBUG][       Thread-600699][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:47:43,234 [DEBUG][       Thread-600699][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:47:43,234 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:47:43,234 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:47:43,291 [DEBUG][       Thread-600699][   transport.py][1871] : userauth is OK
2025-07-01 09:47:43,291 [DEBUG][       Thread-600699][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:47:43,291 [DEBUG][       Thread-600699][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:47:43,291 [DEBUG][       Thread-600699][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:47:43,291 [DEBUG][       Thread-600699][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:47:43,306 [ INFO][       Thread-600699][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:47:43,306 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:47:43,306 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:47:44,315 [DEBUG][       Thread-600699][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:47:44,315 [DEBUG][       Thread-600699][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:47:44,367 [DEBUG][       Thread-600699][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:47:44,367 [DEBUG][       Thread-600699][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:47:44,383 [DEBUG][       Thread-600699][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:47:44,391 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:47:44,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-07-01 09:47:44,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-07-01 09:47:44,406 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:47:44,406 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:47:44,406 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:47:44,414 [DEBUG][       Thread-600699][   transport.py][1871] : EOF in transport thread
2025-07-01 09:47:49,697 [DEBUG][Thread-600701 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:47:53,839 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:47:53,840 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:47:54,417 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:47:54,417 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:47:54,417 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:47:54,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-07-01 09:47:54,894 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 47, 42), 10.24, 49.07, 0.0, 34.9, 9.73, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:47:54,894 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:47:42
2025-07-01 09:47:54,979 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:47:54,983 [DEBUG][       Thread-600702][   transport.py][1871] : starting thread (client mode): 0x81732e0
2025-07-01 09:47:54,983 [DEBUG][       Thread-600702][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:47:55,002 [DEBUG][       Thread-600702][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:47:55,002 [ INFO][       Thread-600702][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:47:55,006 [DEBUG][       Thread-600702][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:47:55,006 [DEBUG][       Thread-600702][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:47:55,006 [DEBUG][       Thread-600702][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:47:55,006 [DEBUG][       Thread-600702][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:47:55,006 [DEBUG][       Thread-600702][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:47:55,006 [DEBUG][       Thread-600702][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:47:55,006 [DEBUG][       Thread-600702][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:47:55,006 [DEBUG][       Thread-600702][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:47:55,006 [DEBUG][       Thread-600702][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:47:55,006 [DEBUG][       Thread-600702][   transport.py][1871] : client lang: <none>
2025-07-01 09:47:55,006 [DEBUG][       Thread-600702][   transport.py][1871] : server lang: <none>
2025-07-01 09:47:55,006 [DEBUG][       Thread-600702][   transport.py][1871] : kex follows: False
2025-07-01 09:47:55,006 [DEBUG][       Thread-600702][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:47:55,006 [DEBUG][       Thread-600702][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:47:55,006 [DEBUG][       Thread-600702][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:47:55,006 [DEBUG][       Thread-600702][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:47:55,006 [DEBUG][       Thread-600702][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:47:55,006 [DEBUG][       Thread-600702][   transport.py][1871] : Compression: none
2025-07-01 09:47:55,007 [DEBUG][       Thread-600702][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:47:55,023 [DEBUG][       Thread-600702][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:47:55,023 [DEBUG][       Thread-600702][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:47:55,024 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:47:55,024 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:47:55,024 [DEBUG][       Thread-600702][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:47:55,025 [DEBUG][       Thread-600702][   transport.py][1871] : userauth is OK
2025-07-01 09:47:55,050 [ INFO][       Thread-600702][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:47:55,051 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:47:55,720 [DEBUG][       Thread-600702][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:47:55,721 [DEBUG][       Thread-600702][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:47:55,765 [DEBUG][       Thread-600702][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:47:55,765 [DEBUG][       Thread-600702][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:47:55,769 [DEBUG][       Thread-600702][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:47:55,782 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:47:55,783 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:47:55,785 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:47:55,786 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:47:55,792 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:47:55,794 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:47:55,794 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:47:55,795 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:47:55,795 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.324600 -999.00   +9.50  41.54     54   +0.70 1 1 2 1 1   887    0 9.91 45.14 ----- 41.5 41.5 21.2 58.0 12.6 -23.6 11.7 -24.1 10.8 -23.2 11.7 -22.2
2025-07-01 09:47:55,795 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:47:55,795 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:47:55,795 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.324600
2025-07-01 09:47:55,795 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:47:55,796 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:47:55,796 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:47:55,796 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:47:55,796 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:47:55,796 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:47:42', tmtdew=10.24, humidity=49.07, cloud=0.0, wind=34.9, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:47:25.440', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:47:55,797 [DEBUG][       Thread-600702][   transport.py][1871] : EOF in transport thread
2025-07-01 09:47:55,880 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:47:55,891 [DEBUG][       Thread-600705][   transport.py][1871] : starting thread (client mode): 0x8104dc0
2025-07-01 09:47:55,891 [DEBUG][       Thread-600705][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:47:55,906 [DEBUG][       Thread-600705][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:47:55,906 [ INFO][       Thread-600705][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:47:55,914 [DEBUG][       Thread-600705][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:47:55,914 [DEBUG][       Thread-600705][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:47:55,914 [DEBUG][       Thread-600705][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:47:55,914 [DEBUG][       Thread-600705][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:47:55,914 [DEBUG][       Thread-600705][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:47:55,914 [DEBUG][       Thread-600705][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:47:55,915 [DEBUG][       Thread-600705][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:47:55,915 [DEBUG][       Thread-600705][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:47:55,915 [DEBUG][       Thread-600705][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:47:55,915 [DEBUG][       Thread-600705][   transport.py][1871] : client lang: <none>
2025-07-01 09:47:55,915 [DEBUG][       Thread-600705][   transport.py][1871] : server lang: <none>
2025-07-01 09:47:55,915 [DEBUG][       Thread-600705][   transport.py][1871] : kex follows: False
2025-07-01 09:47:55,915 [DEBUG][       Thread-600705][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:47:55,915 [DEBUG][       Thread-600705][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:47:55,915 [DEBUG][       Thread-600705][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:47:55,915 [DEBUG][       Thread-600705][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:47:55,915 [DEBUG][       Thread-600705][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:47:55,915 [DEBUG][       Thread-600705][   transport.py][1871] : Compression: none
2025-07-01 09:47:55,915 [DEBUG][       Thread-600705][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:47:55,975 [DEBUG][       Thread-600705][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:47:55,975 [DEBUG][       Thread-600705][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:47:55,976 [DEBUG][       Thread-600705][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:47:55,976 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:47:55,977 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:47:56,031 [DEBUG][       Thread-600705][   transport.py][1871] : userauth is OK
2025-07-01 09:47:56,031 [DEBUG][       Thread-600705][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:47:56,031 [DEBUG][       Thread-600705][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:47:56,031 [DEBUG][       Thread-600705][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:47:56,031 [DEBUG][       Thread-600705][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:47:56,052 [ INFO][       Thread-600705][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:47:56,052 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:47:56,053 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:47:57,024 [DEBUG][       Thread-600705][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:47:57,025 [DEBUG][       Thread-600705][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:47:57,076 [DEBUG][       Thread-600705][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:47:57,076 [DEBUG][       Thread-600705][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:47:57,086 [DEBUG][       Thread-600705][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:47:57,095 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:47:57,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-07-01 09:47:57,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') -> 00000000
2025-07-01 09:47:57,114 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:47:57,114 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:47:57,115 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:47:57,123 [DEBUG][       Thread-600705][   transport.py][1871] : EOF in transport thread
2025-07-01 09:47:58,723 [DEBUG][Thread-600707 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:48:07,125 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:48:07,125 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:48:07,125 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:48:07,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-07-01 09:48:07,616 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 47, 42), 10.24, 49.07, 0.0, 34.9, 9.73, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:48:07,616 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:47:42
2025-07-01 09:48:07,702 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:48:07,706 [DEBUG][       Thread-600708][   transport.py][1871] : starting thread (client mode): 0x8171a80
2025-07-01 09:48:07,707 [DEBUG][       Thread-600708][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:48:07,727 [DEBUG][       Thread-600708][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:48:07,727 [ INFO][       Thread-600708][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:48:07,731 [DEBUG][       Thread-600708][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:48:07,731 [DEBUG][       Thread-600708][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:48:07,731 [DEBUG][       Thread-600708][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:48:07,731 [DEBUG][       Thread-600708][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:48:07,731 [DEBUG][       Thread-600708][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:48:07,731 [DEBUG][       Thread-600708][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:48:07,731 [DEBUG][       Thread-600708][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:48:07,731 [DEBUG][       Thread-600708][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:48:07,731 [DEBUG][       Thread-600708][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:48:07,731 [DEBUG][       Thread-600708][   transport.py][1871] : client lang: <none>
2025-07-01 09:48:07,731 [DEBUG][       Thread-600708][   transport.py][1871] : server lang: <none>
2025-07-01 09:48:07,731 [DEBUG][       Thread-600708][   transport.py][1871] : kex follows: False
2025-07-01 09:48:07,731 [DEBUG][       Thread-600708][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:48:07,731 [DEBUG][       Thread-600708][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:48:07,731 [DEBUG][       Thread-600708][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:48:07,731 [DEBUG][       Thread-600708][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:48:07,731 [DEBUG][       Thread-600708][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:48:07,732 [DEBUG][       Thread-600708][   transport.py][1871] : Compression: none
2025-07-01 09:48:07,732 [DEBUG][       Thread-600708][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:48:07,748 [DEBUG][       Thread-600708][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:48:07,749 [DEBUG][       Thread-600708][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:48:07,749 [DEBUG][       Thread-600708][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:48:07,749 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:48:07,749 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:48:07,751 [DEBUG][       Thread-600708][   transport.py][1871] : userauth is OK
2025-07-01 09:48:07,759 [DEBUG][Thread-600710 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:48:07,775 [ INFO][       Thread-600708][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:48:07,776 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:48:08,406 [DEBUG][       Thread-600708][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:48:08,406 [DEBUG][       Thread-600708][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:48:08,449 [DEBUG][       Thread-600708][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:48:08,449 [DEBUG][       Thread-600708][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:48:08,451 [DEBUG][       Thread-600708][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:48:08,464 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:48:08,464 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:48:08,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:48:08,467 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:48:08,470 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:48:08,472 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:48:08,472 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:48:08,472 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:48:08,472 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.324600 -999.00   +9.50  41.54     54   +0.70 1 1 2 1 1   887    0 9.91 45.14 ----- 41.5 41.5 21.2 58.0 12.6 -23.6 11.7 -24.1 10.8 -23.2 11.7 -22.2
2025-07-01 09:48:08,473 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:48:08,473 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:48:08,473 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.324600
2025-07-01 09:48:08,473 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:48:08,474 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:48:08,474 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:48:08,474 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:48:08,474 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:48:08,474 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:47:42', tmtdew=10.24, humidity=49.07, cloud=0.0, wind=34.9, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:47:25.440', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:48:08,474 [DEBUG][       Thread-600708][   transport.py][1871] : EOF in transport thread
2025-07-01 09:48:08,557 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:48:08,567 [DEBUG][       Thread-600712][   transport.py][1871] : starting thread (client mode): 0x81a73d0
2025-07-01 09:48:08,567 [DEBUG][       Thread-600712][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:48:08,582 [DEBUG][       Thread-600712][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:48:08,582 [ INFO][       Thread-600712][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:48:08,590 [DEBUG][       Thread-600712][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:48:08,590 [DEBUG][       Thread-600712][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:48:08,590 [DEBUG][       Thread-600712][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:48:08,590 [DEBUG][       Thread-600712][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:48:08,590 [DEBUG][       Thread-600712][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:48:08,590 [DEBUG][       Thread-600712][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:48:08,590 [DEBUG][       Thread-600712][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:48:08,590 [DEBUG][       Thread-600712][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:48:08,590 [DEBUG][       Thread-600712][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:48:08,590 [DEBUG][       Thread-600712][   transport.py][1871] : client lang: <none>
2025-07-01 09:48:08,590 [DEBUG][       Thread-600712][   transport.py][1871] : server lang: <none>
2025-07-01 09:48:08,590 [DEBUG][       Thread-600712][   transport.py][1871] : kex follows: False
2025-07-01 09:48:08,590 [DEBUG][       Thread-600712][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:48:08,590 [DEBUG][       Thread-600712][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:48:08,590 [DEBUG][       Thread-600712][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:48:08,590 [DEBUG][       Thread-600712][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:48:08,590 [DEBUG][       Thread-600712][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:48:08,590 [DEBUG][       Thread-600712][   transport.py][1871] : Compression: none
2025-07-01 09:48:08,590 [DEBUG][       Thread-600712][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:48:08,647 [DEBUG][       Thread-600712][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:48:08,647 [DEBUG][       Thread-600712][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:48:08,648 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:48:08,648 [DEBUG][       Thread-600712][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:48:08,649 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:48:08,707 [DEBUG][       Thread-600712][   transport.py][1871] : userauth is OK
2025-07-01 09:48:08,708 [DEBUG][       Thread-600712][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:48:08,708 [DEBUG][       Thread-600712][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:48:08,708 [DEBUG][       Thread-600712][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:48:08,708 [DEBUG][       Thread-600712][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:48:08,730 [ INFO][       Thread-600712][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:48:08,730 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:48:08,730 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:48:09,712 [DEBUG][       Thread-600712][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:48:09,713 [DEBUG][       Thread-600712][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:48:09,767 [DEBUG][       Thread-600712][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:48:09,767 [DEBUG][       Thread-600712][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:48:09,776 [DEBUG][       Thread-600712][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:48:09,786 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:48:09,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')
2025-07-01 09:48:09,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-07-01 09:48:09,804 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:48:09,804 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:48:09,805 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:48:09,813 [DEBUG][       Thread-600712][   transport.py][1871] : EOF in transport thread
2025-07-01 09:48:16,780 [DEBUG][Thread-600714 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:48:19,815 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:48:19,815 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:48:19,815 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:48:19,818 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:48:20,297 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 48, 14), 10.23, 49.11, 0.0, 41.44, 9.72, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:48:20,298 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:48:14
2025-07-01 09:48:20,382 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:48:20,386 [DEBUG][       Thread-600715][   transport.py][1871] : starting thread (client mode): 0x75a9c00
2025-07-01 09:48:20,386 [DEBUG][       Thread-600715][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:48:20,407 [DEBUG][       Thread-600715][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:48:20,407 [ INFO][       Thread-600715][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:48:20,410 [DEBUG][       Thread-600715][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:48:20,410 [DEBUG][       Thread-600715][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:48:20,410 [DEBUG][       Thread-600715][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:48:20,410 [DEBUG][       Thread-600715][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:48:20,410 [DEBUG][       Thread-600715][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:48:20,410 [DEBUG][       Thread-600715][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:48:20,410 [DEBUG][       Thread-600715][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:48:20,410 [DEBUG][       Thread-600715][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:48:20,410 [DEBUG][       Thread-600715][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:48:20,410 [DEBUG][       Thread-600715][   transport.py][1871] : client lang: <none>
2025-07-01 09:48:20,410 [DEBUG][       Thread-600715][   transport.py][1871] : server lang: <none>
2025-07-01 09:48:20,410 [DEBUG][       Thread-600715][   transport.py][1871] : kex follows: False
2025-07-01 09:48:20,410 [DEBUG][       Thread-600715][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:48:20,410 [DEBUG][       Thread-600715][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:48:20,410 [DEBUG][       Thread-600715][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:48:20,410 [DEBUG][       Thread-600715][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:48:20,410 [DEBUG][       Thread-600715][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:48:20,410 [DEBUG][       Thread-600715][   transport.py][1871] : Compression: none
2025-07-01 09:48:20,410 [DEBUG][       Thread-600715][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:48:20,427 [DEBUG][       Thread-600715][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:48:20,428 [DEBUG][       Thread-600715][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:48:20,429 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:48:20,429 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:48:20,429 [DEBUG][       Thread-600715][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:48:20,430 [DEBUG][       Thread-600715][   transport.py][1871] : userauth is OK
2025-07-01 09:48:20,442 [ INFO][       Thread-600715][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:48:20,443 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:48:21,034 [DEBUG][       Thread-600715][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:48:21,034 [DEBUG][       Thread-600715][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:48:21,077 [DEBUG][       Thread-600715][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:48:21,077 [DEBUG][       Thread-600715][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:48:21,080 [DEBUG][       Thread-600715][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:48:21,091 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:48:21,092 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:48:21,094 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:48:21,095 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:48:21,099 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:48:21,101 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:48:21,101 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:48:21,102 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:48:21,102 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.324600 -999.00   +9.50  41.54     54   +0.70 1 1 2 1 1   887    0 9.91 45.14 ----- 41.5 41.5 21.2 58.0 12.6 -23.6 11.7 -24.1 10.8 -23.2 11.7 -22.2
2025-07-01 09:48:21,102 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:48:21,102 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:48:21,102 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.324600
2025-07-01 09:48:21,102 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:48:21,103 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:48:21,103 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:48:21,103 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:48:21,103 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:48:21,103 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:48:14', tmtdew=10.23, humidity=49.11, cloud=0.0, wind=41.44, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:47:25.440', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:48:21,103 [DEBUG][       Thread-600715][   transport.py][1871] : EOF in transport thread
2025-07-01 09:48:21,187 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:48:21,196 [DEBUG][       Thread-600718][   transport.py][1871] : starting thread (client mode): 0x81075b0
2025-07-01 09:48:21,196 [DEBUG][       Thread-600718][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:48:21,212 [DEBUG][       Thread-600718][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:48:21,212 [ INFO][       Thread-600718][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:48:21,220 [DEBUG][       Thread-600718][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:48:21,220 [DEBUG][       Thread-600718][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:48:21,220 [DEBUG][       Thread-600718][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:48:21,220 [DEBUG][       Thread-600718][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:48:21,220 [DEBUG][       Thread-600718][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:48:21,220 [DEBUG][       Thread-600718][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:48:21,220 [DEBUG][       Thread-600718][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:48:21,220 [DEBUG][       Thread-600718][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:48:21,220 [DEBUG][       Thread-600718][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:48:21,220 [DEBUG][       Thread-600718][   transport.py][1871] : client lang: <none>
2025-07-01 09:48:21,220 [DEBUG][       Thread-600718][   transport.py][1871] : server lang: <none>
2025-07-01 09:48:21,220 [DEBUG][       Thread-600718][   transport.py][1871] : kex follows: False
2025-07-01 09:48:21,220 [DEBUG][       Thread-600718][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:48:21,220 [DEBUG][       Thread-600718][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:48:21,220 [DEBUG][       Thread-600718][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:48:21,220 [DEBUG][       Thread-600718][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:48:21,221 [DEBUG][       Thread-600718][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:48:21,221 [DEBUG][       Thread-600718][   transport.py][1871] : Compression: none
2025-07-01 09:48:21,221 [DEBUG][       Thread-600718][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:48:21,282 [DEBUG][       Thread-600718][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:48:21,282 [DEBUG][       Thread-600718][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:48:21,283 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:48:21,283 [DEBUG][       Thread-600718][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:48:21,284 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:48:21,338 [DEBUG][       Thread-600718][   transport.py][1871] : userauth is OK
2025-07-01 09:48:21,339 [DEBUG][       Thread-600718][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:48:21,339 [DEBUG][       Thread-600718][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:48:21,339 [DEBUG][       Thread-600718][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:48:21,339 [DEBUG][       Thread-600718][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:48:21,358 [ INFO][       Thread-600718][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:48:21,358 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:48:21,358 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:48:21,466 [DEBUG][Thread-600720 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:48:22,319 [DEBUG][       Thread-600718][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:48:22,319 [DEBUG][       Thread-600718][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:48:22,368 [DEBUG][       Thread-600718][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:48:22,368 [DEBUG][       Thread-600718][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:48:22,377 [DEBUG][       Thread-600718][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:48:22,385 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:48:22,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-07-01 09:48:22,393 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 09:48:22,401 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:48:22,401 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:48:22,401 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:48:22,409 [DEBUG][       Thread-600718][   transport.py][1871] : EOF in transport thread
2025-07-01 09:48:25,801 [DEBUG][Thread-600721 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:48:32,412 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:48:32,412 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:48:32,412 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:48:32,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-07-01 09:48:32,895 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 48, 14), 10.23, 49.11, 0.0, 41.44, 9.72, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:48:32,895 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:48:14
2025-07-01 09:48:32,980 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:48:32,984 [DEBUG][       Thread-600722][   transport.py][1871] : starting thread (client mode): 0x82b3b80
2025-07-01 09:48:32,984 [DEBUG][       Thread-600722][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:48:33,004 [DEBUG][       Thread-600722][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:48:33,004 [ INFO][       Thread-600722][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:48:33,006 [DEBUG][       Thread-600722][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:48:33,006 [DEBUG][       Thread-600722][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:48:33,006 [DEBUG][       Thread-600722][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:48:33,006 [DEBUG][       Thread-600722][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:48:33,006 [DEBUG][       Thread-600722][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:48:33,006 [DEBUG][       Thread-600722][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:48:33,006 [DEBUG][       Thread-600722][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:48:33,006 [DEBUG][       Thread-600722][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:48:33,006 [DEBUG][       Thread-600722][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:48:33,006 [DEBUG][       Thread-600722][   transport.py][1871] : client lang: <none>
2025-07-01 09:48:33,006 [DEBUG][       Thread-600722][   transport.py][1871] : server lang: <none>
2025-07-01 09:48:33,006 [DEBUG][       Thread-600722][   transport.py][1871] : kex follows: False
2025-07-01 09:48:33,006 [DEBUG][       Thread-600722][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:48:33,006 [DEBUG][       Thread-600722][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:48:33,006 [DEBUG][       Thread-600722][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:48:33,006 [DEBUG][       Thread-600722][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:48:33,006 [DEBUG][       Thread-600722][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:48:33,006 [DEBUG][       Thread-600722][   transport.py][1871] : Compression: none
2025-07-01 09:48:33,006 [DEBUG][       Thread-600722][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:48:33,015 [DEBUG][       Thread-600722][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:48:33,015 [DEBUG][       Thread-600722][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:48:33,015 [DEBUG][       Thread-600722][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:48:33,015 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:48:33,015 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:48:33,016 [DEBUG][       Thread-600722][   transport.py][1871] : userauth is OK
2025-07-01 09:48:33,029 [ INFO][       Thread-600722][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:48:33,030 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:48:33,678 [DEBUG][       Thread-600722][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:48:33,679 [DEBUG][       Thread-600722][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:48:33,721 [DEBUG][       Thread-600722][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:48:33,721 [DEBUG][       Thread-600722][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:48:33,725 [DEBUG][       Thread-600722][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:48:33,738 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:48:33,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:48:33,740 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:48:33,742 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:48:33,748 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:48:33,750 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:48:33,751 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:48:33,751 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:48:33,752 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.324947 -999.00   +9.50  32.02     54   +0.70 1 1 2 1 1   887    0 9.94 49.15 ----- 32.0 32.0 18.4 42.5 12.6 -23.3 11.7 -23.5 10.7 -23.1 11.6 -23.5
2025-07-01 09:48:33,752 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:48:33,752 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:48:33,752 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.324947
2025-07-01 09:48:33,752 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:48:33,753 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:48:33,753 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:48:33,753 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:48:33,753 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:48:33,753 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:48:14', tmtdew=10.23, humidity=49.11, cloud=0.0, wind=41.44, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:47:55.421', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:48:33,754 [DEBUG][       Thread-600722][   transport.py][1871] : EOF in transport thread
2025-07-01 09:48:33,848 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:48:33,860 [DEBUG][       Thread-600725][   transport.py][1871] : starting thread (client mode): 0x818fcd0
2025-07-01 09:48:33,860 [DEBUG][       Thread-600725][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:48:33,876 [DEBUG][       Thread-600725][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:48:33,876 [ INFO][       Thread-600725][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:48:33,884 [DEBUG][       Thread-600725][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:48:33,884 [DEBUG][       Thread-600725][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:48:33,884 [DEBUG][       Thread-600725][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:48:33,884 [DEBUG][       Thread-600725][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:48:33,884 [DEBUG][       Thread-600725][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:48:33,884 [DEBUG][       Thread-600725][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:48:33,884 [DEBUG][       Thread-600725][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:48:33,884 [DEBUG][       Thread-600725][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:48:33,884 [DEBUG][       Thread-600725][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:48:33,884 [DEBUG][       Thread-600725][   transport.py][1871] : client lang: <none>
2025-07-01 09:48:33,884 [DEBUG][       Thread-600725][   transport.py][1871] : server lang: <none>
2025-07-01 09:48:33,884 [DEBUG][       Thread-600725][   transport.py][1871] : kex follows: False
2025-07-01 09:48:33,884 [DEBUG][       Thread-600725][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:48:33,884 [DEBUG][       Thread-600725][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:48:33,885 [DEBUG][       Thread-600725][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:48:33,885 [DEBUG][       Thread-600725][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:48:33,885 [DEBUG][       Thread-600725][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:48:33,885 [DEBUG][       Thread-600725][   transport.py][1871] : Compression: none
2025-07-01 09:48:33,885 [DEBUG][       Thread-600725][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:48:33,943 [DEBUG][       Thread-600725][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:48:33,943 [DEBUG][       Thread-600725][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:48:33,944 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:48:33,945 [DEBUG][       Thread-600725][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:48:33,945 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:48:34,003 [DEBUG][       Thread-600725][   transport.py][1871] : userauth is OK
2025-07-01 09:48:34,003 [DEBUG][       Thread-600725][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:48:34,003 [DEBUG][       Thread-600725][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:48:34,004 [DEBUG][       Thread-600725][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:48:34,004 [DEBUG][       Thread-600725][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:48:34,020 [ INFO][       Thread-600725][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:48:34,020 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:48:34,020 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:48:34,843 [DEBUG][Thread-600727 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:48:35,045 [DEBUG][       Thread-600725][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:48:35,046 [DEBUG][       Thread-600725][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:48:35,096 [DEBUG][       Thread-600725][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:48:35,096 [DEBUG][       Thread-600725][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:48:35,105 [DEBUG][       Thread-600725][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:48:35,114 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:48:35,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-07-01 09:48:35,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-07-01 09:48:35,132 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:48:35,132 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:48:35,132 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:48:35,140 [DEBUG][       Thread-600725][   transport.py][1871] : EOF in transport thread
2025-07-01 09:48:43,863 [DEBUG][Thread-600728 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:48:45,140 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:48:45,140 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:48:45,141 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:48:45,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-07-01 09:48:45,624 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 48, 14), 10.23, 49.11, 0.0, 41.44, 9.72, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:48:45,624 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:48:14
2025-07-01 09:48:45,710 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:48:45,715 [DEBUG][       Thread-600729][   transport.py][1871] : starting thread (client mode): 0x75a8100
2025-07-01 09:48:45,715 [DEBUG][       Thread-600729][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:48:45,735 [DEBUG][       Thread-600729][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:48:45,735 [ INFO][       Thread-600729][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:48:45,738 [DEBUG][       Thread-600729][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:48:45,739 [DEBUG][       Thread-600729][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:48:45,739 [DEBUG][       Thread-600729][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:48:45,739 [DEBUG][       Thread-600729][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:48:45,739 [DEBUG][       Thread-600729][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:48:45,739 [DEBUG][       Thread-600729][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:48:45,739 [DEBUG][       Thread-600729][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:48:45,739 [DEBUG][       Thread-600729][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:48:45,739 [DEBUG][       Thread-600729][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:48:45,739 [DEBUG][       Thread-600729][   transport.py][1871] : client lang: <none>
2025-07-01 09:48:45,739 [DEBUG][       Thread-600729][   transport.py][1871] : server lang: <none>
2025-07-01 09:48:45,739 [DEBUG][       Thread-600729][   transport.py][1871] : kex follows: False
2025-07-01 09:48:45,739 [DEBUG][       Thread-600729][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:48:45,739 [DEBUG][       Thread-600729][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:48:45,739 [DEBUG][       Thread-600729][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:48:45,739 [DEBUG][       Thread-600729][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:48:45,739 [DEBUG][       Thread-600729][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:48:45,739 [DEBUG][       Thread-600729][   transport.py][1871] : Compression: none
2025-07-01 09:48:45,739 [DEBUG][       Thread-600729][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:48:45,754 [DEBUG][       Thread-600729][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:48:45,755 [DEBUG][       Thread-600729][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:48:45,755 [DEBUG][       Thread-600729][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:48:45,755 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:48:45,756 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:48:45,757 [DEBUG][       Thread-600729][   transport.py][1871] : userauth is OK
2025-07-01 09:48:45,782 [ INFO][       Thread-600729][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:48:45,783 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:48:46,377 [DEBUG][       Thread-600729][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:48:46,377 [DEBUG][       Thread-600729][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:48:46,420 [DEBUG][       Thread-600729][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:48:46,420 [DEBUG][       Thread-600729][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:48:46,423 [DEBUG][       Thread-600729][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:48:46,437 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:48:46,437 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:48:46,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:48:46,439 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:48:46,441 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:48:46,442 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:48:46,442 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:48:46,442 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:48:46,442 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.324947 -999.00   +9.50  32.02     54   +0.70 1 1 2 1 1   887    0 9.94 49.15 ----- 32.0 32.0 18.4 42.5 12.6 -23.3 11.7 -23.5 10.7 -23.1 11.6 -23.5
2025-07-01 09:48:46,442 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:48:46,442 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:48:46,442 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.324947
2025-07-01 09:48:46,442 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:48:46,443 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:48:46,443 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:48:46,443 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:48:46,443 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:48:46,443 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:48:14', tmtdew=10.23, humidity=49.11, cloud=0.0, wind=41.44, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:47:55.421', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:48:46,443 [DEBUG][       Thread-600729][   transport.py][1871] : EOF in transport thread
2025-07-01 09:48:46,516 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:48:46,525 [DEBUG][       Thread-600732][   transport.py][1871] : starting thread (client mode): 0x8106d70
2025-07-01 09:48:46,525 [DEBUG][       Thread-600732][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:48:46,539 [DEBUG][       Thread-600732][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:48:46,539 [ INFO][       Thread-600732][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:48:46,549 [DEBUG][       Thread-600732][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:48:46,549 [DEBUG][       Thread-600732][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:48:46,549 [DEBUG][       Thread-600732][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:48:46,549 [DEBUG][       Thread-600732][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:48:46,549 [DEBUG][       Thread-600732][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:48:46,549 [DEBUG][       Thread-600732][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:48:46,550 [DEBUG][       Thread-600732][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:48:46,550 [DEBUG][       Thread-600732][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:48:46,550 [DEBUG][       Thread-600732][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:48:46,550 [DEBUG][       Thread-600732][   transport.py][1871] : client lang: <none>
2025-07-01 09:48:46,550 [DEBUG][       Thread-600732][   transport.py][1871] : server lang: <none>
2025-07-01 09:48:46,550 [DEBUG][       Thread-600732][   transport.py][1871] : kex follows: False
2025-07-01 09:48:46,550 [DEBUG][       Thread-600732][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:48:46,550 [DEBUG][       Thread-600732][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:48:46,550 [DEBUG][       Thread-600732][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:48:46,550 [DEBUG][       Thread-600732][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:48:46,550 [DEBUG][       Thread-600732][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:48:46,550 [DEBUG][       Thread-600732][   transport.py][1871] : Compression: none
2025-07-01 09:48:46,550 [DEBUG][       Thread-600732][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:48:46,618 [DEBUG][       Thread-600732][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:48:46,618 [DEBUG][       Thread-600732][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:48:46,618 [DEBUG][       Thread-600732][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:48:46,618 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:48:46,618 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:48:46,675 [DEBUG][       Thread-600732][   transport.py][1871] : userauth is OK
2025-07-01 09:48:46,675 [DEBUG][       Thread-600732][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:48:46,675 [DEBUG][       Thread-600732][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:48:46,675 [DEBUG][       Thread-600732][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:48:46,675 [DEBUG][       Thread-600732][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:48:46,689 [ INFO][       Thread-600732][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:48:46,689 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:48:46,689 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:48:47,669 [DEBUG][       Thread-600732][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:48:47,669 [DEBUG][       Thread-600732][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:48:47,719 [DEBUG][       Thread-600732][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:48:47,719 [DEBUG][       Thread-600732][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:48:47,728 [DEBUG][       Thread-600732][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:48:47,736 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:48:47,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-07-01 09:48:47,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-07-01 09:48:47,753 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:48:47,753 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:48:47,754 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:48:47,762 [DEBUG][       Thread-600732][   transport.py][1871] : EOF in transport thread
2025-07-01 09:48:52,885 [DEBUG][Thread-600734 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:48:53,978 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:48:53,980 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:48:57,764 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:48:57,764 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:48:57,764 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:48:57,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-07-01 09:48:58,248 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 48, 46), 10.24, 49.07, 0.0, 40.16, 9.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:48:58,248 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:48:46
2025-07-01 09:48:58,334 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:48:58,339 [DEBUG][       Thread-600735][   transport.py][1871] : starting thread (client mode): 0x82b1540
2025-07-01 09:48:58,339 [DEBUG][       Thread-600735][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:48:58,359 [DEBUG][       Thread-600735][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:48:58,359 [ INFO][       Thread-600735][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:48:58,362 [DEBUG][       Thread-600735][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:48:58,362 [DEBUG][       Thread-600735][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:48:58,362 [DEBUG][       Thread-600735][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:48:58,362 [DEBUG][       Thread-600735][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:48:58,362 [DEBUG][       Thread-600735][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:48:58,362 [DEBUG][       Thread-600735][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:48:58,362 [DEBUG][       Thread-600735][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:48:58,362 [DEBUG][       Thread-600735][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:48:58,362 [DEBUG][       Thread-600735][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:48:58,362 [DEBUG][       Thread-600735][   transport.py][1871] : client lang: <none>
2025-07-01 09:48:58,362 [DEBUG][       Thread-600735][   transport.py][1871] : server lang: <none>
2025-07-01 09:48:58,362 [DEBUG][       Thread-600735][   transport.py][1871] : kex follows: False
2025-07-01 09:48:58,362 [DEBUG][       Thread-600735][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:48:58,362 [DEBUG][       Thread-600735][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:48:58,362 [DEBUG][       Thread-600735][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:48:58,362 [DEBUG][       Thread-600735][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:48:58,362 [DEBUG][       Thread-600735][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:48:58,362 [DEBUG][       Thread-600735][   transport.py][1871] : Compression: none
2025-07-01 09:48:58,362 [DEBUG][       Thread-600735][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:48:58,371 [DEBUG][       Thread-600735][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:48:58,371 [DEBUG][       Thread-600735][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:48:58,372 [DEBUG][       Thread-600735][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:48:58,372 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:48:58,372 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:48:58,375 [DEBUG][       Thread-600735][   transport.py][1871] : userauth is OK
2025-07-01 09:48:58,402 [ INFO][       Thread-600735][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:48:58,403 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:48:59,081 [DEBUG][       Thread-600735][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:48:59,081 [DEBUG][       Thread-600735][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:48:59,125 [DEBUG][       Thread-600735][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:48:59,125 [DEBUG][       Thread-600735][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:48:59,128 [DEBUG][       Thread-600735][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:48:59,141 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:48:59,142 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:48:59,144 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:48:59,145 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:48:59,151 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:48:59,152 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:48:59,153 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:48:59,153 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:48:59,153 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.324947 -999.00   +9.50  32.02     54   +0.70 1 1 2 1 1   887    0 9.94 49.15 ----- 32.0 32.0 18.4 42.5 12.6 -23.3 11.7 -23.5 10.7 -23.1 11.6 -23.5
2025-07-01 09:48:59,154 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:48:59,154 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:48:59,154 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.324947
2025-07-01 09:48:59,154 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:48:59,155 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:48:59,155 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:48:59,155 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:48:59,155 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:48:59,155 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:48:46', tmtdew=10.24, humidity=49.07, cloud=0.0, wind=40.16, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:47:55.421', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:48:59,155 [DEBUG][       Thread-600735][   transport.py][1871] : EOF in transport thread
2025-07-01 09:48:59,238 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:48:59,250 [DEBUG][       Thread-600738][   transport.py][1871] : starting thread (client mode): 0x818fd60
2025-07-01 09:48:59,250 [DEBUG][       Thread-600738][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:48:59,267 [DEBUG][       Thread-600738][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:48:59,267 [ INFO][       Thread-600738][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:48:59,279 [DEBUG][       Thread-600738][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:48:59,280 [DEBUG][       Thread-600738][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:48:59,280 [DEBUG][       Thread-600738][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:48:59,280 [DEBUG][       Thread-600738][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:48:59,280 [DEBUG][       Thread-600738][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:48:59,280 [DEBUG][       Thread-600738][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:48:59,280 [DEBUG][       Thread-600738][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:48:59,280 [DEBUG][       Thread-600738][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:48:59,280 [DEBUG][       Thread-600738][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:48:59,280 [DEBUG][       Thread-600738][   transport.py][1871] : client lang: <none>
2025-07-01 09:48:59,280 [DEBUG][       Thread-600738][   transport.py][1871] : server lang: <none>
2025-07-01 09:48:59,280 [DEBUG][       Thread-600738][   transport.py][1871] : kex follows: False
2025-07-01 09:48:59,280 [DEBUG][       Thread-600738][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:48:59,280 [DEBUG][       Thread-600738][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:48:59,281 [DEBUG][       Thread-600738][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:48:59,281 [DEBUG][       Thread-600738][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:48:59,281 [DEBUG][       Thread-600738][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:48:59,281 [DEBUG][       Thread-600738][   transport.py][1871] : Compression: none
2025-07-01 09:48:59,281 [DEBUG][       Thread-600738][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:48:59,341 [DEBUG][       Thread-600738][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:48:59,341 [DEBUG][       Thread-600738][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:48:59,342 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:48:59,343 [DEBUG][       Thread-600738][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:48:59,343 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:48:59,403 [DEBUG][       Thread-600738][   transport.py][1871] : userauth is OK
2025-07-01 09:48:59,404 [DEBUG][       Thread-600738][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:48:59,404 [DEBUG][       Thread-600738][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:48:59,404 [DEBUG][       Thread-600738][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:48:59,404 [DEBUG][       Thread-600738][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:48:59,423 [ INFO][       Thread-600738][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:48:59,423 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:48:59,424 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:49:00,427 [DEBUG][       Thread-600738][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:49:00,427 [DEBUG][       Thread-600738][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:49:00,476 [DEBUG][       Thread-600738][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:49:00,476 [DEBUG][       Thread-600738][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:49:00,486 [DEBUG][       Thread-600738][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:49:00,495 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:49:00,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-07-01 09:49:00,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-07-01 09:49:00,514 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:49:00,514 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:49:00,514 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:49:00,524 [DEBUG][       Thread-600738][   transport.py][1871] : EOF in transport thread
2025-07-01 09:49:01,908 [DEBUG][Thread-600740 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:49:10,525 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:49:10,525 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:49:10,525 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:49:10,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-07-01 09:49:10,940 [DEBUG][Thread-600741 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:49:10,997 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 48, 46), 10.24, 49.07, 0.0, 40.16, 9.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:49:10,997 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:48:46
2025-07-01 09:49:11,082 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:49:11,086 [DEBUG][       Thread-600742][   transport.py][1871] : starting thread (client mode): 0x8173250
2025-07-01 09:49:11,086 [DEBUG][       Thread-600742][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:49:11,106 [DEBUG][       Thread-600742][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:49:11,106 [ INFO][       Thread-600742][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:49:11,109 [DEBUG][       Thread-600742][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:49:11,109 [DEBUG][       Thread-600742][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:49:11,109 [DEBUG][       Thread-600742][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:49:11,109 [DEBUG][       Thread-600742][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:49:11,109 [DEBUG][       Thread-600742][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:49:11,109 [DEBUG][       Thread-600742][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:49:11,109 [DEBUG][       Thread-600742][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:49:11,109 [DEBUG][       Thread-600742][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:49:11,109 [DEBUG][       Thread-600742][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:49:11,109 [DEBUG][       Thread-600742][   transport.py][1871] : client lang: <none>
2025-07-01 09:49:11,109 [DEBUG][       Thread-600742][   transport.py][1871] : server lang: <none>
2025-07-01 09:49:11,109 [DEBUG][       Thread-600742][   transport.py][1871] : kex follows: False
2025-07-01 09:49:11,109 [DEBUG][       Thread-600742][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:49:11,109 [DEBUG][       Thread-600742][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:49:11,109 [DEBUG][       Thread-600742][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:49:11,109 [DEBUG][       Thread-600742][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:49:11,109 [DEBUG][       Thread-600742][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:49:11,109 [DEBUG][       Thread-600742][   transport.py][1871] : Compression: none
2025-07-01 09:49:11,109 [DEBUG][       Thread-600742][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:49:11,126 [DEBUG][       Thread-600742][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:49:11,126 [DEBUG][       Thread-600742][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:49:11,127 [DEBUG][       Thread-600742][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:49:11,127 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:49:11,127 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:49:11,128 [DEBUG][       Thread-600742][   transport.py][1871] : userauth is OK
2025-07-01 09:49:11,142 [ INFO][       Thread-600742][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:49:11,142 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:49:11,755 [DEBUG][       Thread-600742][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:49:11,756 [DEBUG][       Thread-600742][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:49:11,797 [DEBUG][       Thread-600742][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:49:11,797 [DEBUG][       Thread-600742][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:49:11,800 [DEBUG][       Thread-600742][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:49:11,814 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:49:11,814 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:49:11,816 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:49:11,818 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:49:11,824 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:49:11,826 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:49:11,826 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:49:11,827 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:49:11,827 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.325642 -999.00   +9.50  35.65     54   +0.80 1 1 2 1 1   887    0 9.92 49.97 ----- 35.6 35.6 26.5 43.0 12.6 -23.6 11.7 -24.1 10.7 -23.1 11.6 -22.2
2025-07-01 09:49:11,827 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:49:11,827 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:49:11,827 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.325642
2025-07-01 09:49:11,828 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:49:11,828 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:49:11,829 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:49:11,829 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:49:11,829 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:49:11,829 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:48:46', tmtdew=10.24, humidity=49.07, cloud=0.0, wind=40.16, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:48:55.469', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:49:11,829 [DEBUG][       Thread-600742][   transport.py][1871] : EOF in transport thread
2025-07-01 09:49:11,913 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:49:11,923 [DEBUG][       Thread-600745][   transport.py][1871] : starting thread (client mode): 0x81e58d0
2025-07-01 09:49:11,923 [DEBUG][       Thread-600745][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:49:11,938 [DEBUG][       Thread-600745][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:49:11,938 [ INFO][       Thread-600745][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:49:11,946 [DEBUG][       Thread-600745][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:49:11,946 [DEBUG][       Thread-600745][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:49:11,946 [DEBUG][       Thread-600745][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:49:11,946 [DEBUG][       Thread-600745][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:49:11,946 [DEBUG][       Thread-600745][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:49:11,946 [DEBUG][       Thread-600745][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:49:11,946 [DEBUG][       Thread-600745][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:49:11,946 [DEBUG][       Thread-600745][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:49:11,946 [DEBUG][       Thread-600745][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:49:11,946 [DEBUG][       Thread-600745][   transport.py][1871] : client lang: <none>
2025-07-01 09:49:11,946 [DEBUG][       Thread-600745][   transport.py][1871] : server lang: <none>
2025-07-01 09:49:11,946 [DEBUG][       Thread-600745][   transport.py][1871] : kex follows: False
2025-07-01 09:49:11,946 [DEBUG][       Thread-600745][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:49:11,946 [DEBUG][       Thread-600745][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:49:11,946 [DEBUG][       Thread-600745][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:49:11,947 [DEBUG][       Thread-600745][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:49:11,947 [DEBUG][       Thread-600745][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:49:11,947 [DEBUG][       Thread-600745][   transport.py][1871] : Compression: none
2025-07-01 09:49:11,947 [DEBUG][       Thread-600745][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:49:12,003 [DEBUG][       Thread-600745][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:49:12,004 [DEBUG][       Thread-600745][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:49:12,005 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:49:12,005 [DEBUG][       Thread-600745][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:49:12,006 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:49:12,061 [DEBUG][       Thread-600745][   transport.py][1871] : userauth is OK
2025-07-01 09:49:12,062 [DEBUG][       Thread-600745][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:49:12,062 [DEBUG][       Thread-600745][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:49:12,062 [DEBUG][       Thread-600745][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:49:12,062 [DEBUG][       Thread-600745][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:49:12,081 [ INFO][       Thread-600745][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:49:12,082 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:49:12,082 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:49:13,072 [DEBUG][       Thread-600745][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:49:13,073 [DEBUG][       Thread-600745][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:49:13,124 [DEBUG][       Thread-600745][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:49:13,124 [DEBUG][       Thread-600745][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:49:13,135 [DEBUG][       Thread-600745][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:49:13,146 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:49:13,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-07-01 09:49:13,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-07-01 09:49:13,163 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:49:13,163 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:49:13,164 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:49:13,172 [DEBUG][       Thread-600745][   transport.py][1871] : EOF in transport thread
2025-07-01 09:49:19,964 [DEBUG][Thread-600747 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:49:21,518 [DEBUG][Thread-600748 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:49:23,174 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:49:23,175 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:49:23,175 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:49:23,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-07-01 09:49:23,650 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 49, 18), 10.16, 49.08, 0.0, 30.77, 9.64, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:49:23,650 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:49:18
2025-07-01 09:49:23,735 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:49:23,739 [DEBUG][       Thread-600749][   transport.py][1871] : starting thread (client mode): 0x8172d10
2025-07-01 09:49:23,739 [DEBUG][       Thread-600749][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:49:23,760 [DEBUG][       Thread-600749][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:49:23,760 [ INFO][       Thread-600749][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:49:23,763 [DEBUG][       Thread-600749][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:49:23,763 [DEBUG][       Thread-600749][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:49:23,763 [DEBUG][       Thread-600749][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:49:23,763 [DEBUG][       Thread-600749][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:49:23,763 [DEBUG][       Thread-600749][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:49:23,763 [DEBUG][       Thread-600749][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:49:23,763 [DEBUG][       Thread-600749][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:49:23,763 [DEBUG][       Thread-600749][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:49:23,763 [DEBUG][       Thread-600749][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:49:23,764 [DEBUG][       Thread-600749][   transport.py][1871] : client lang: <none>
2025-07-01 09:49:23,764 [DEBUG][       Thread-600749][   transport.py][1871] : server lang: <none>
2025-07-01 09:49:23,764 [DEBUG][       Thread-600749][   transport.py][1871] : kex follows: False
2025-07-01 09:49:23,764 [DEBUG][       Thread-600749][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:49:23,764 [DEBUG][       Thread-600749][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:49:23,764 [DEBUG][       Thread-600749][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:49:23,764 [DEBUG][       Thread-600749][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:49:23,764 [DEBUG][       Thread-600749][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:49:23,764 [DEBUG][       Thread-600749][   transport.py][1871] : Compression: none
2025-07-01 09:49:23,764 [DEBUG][       Thread-600749][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:49:23,780 [DEBUG][       Thread-600749][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:49:23,780 [DEBUG][       Thread-600749][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:49:23,781 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:49:23,781 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:49:23,781 [DEBUG][       Thread-600749][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:49:23,782 [DEBUG][       Thread-600749][   transport.py][1871] : userauth is OK
2025-07-01 09:49:23,806 [ INFO][       Thread-600749][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:49:23,807 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:49:24,576 [DEBUG][       Thread-600749][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:49:24,577 [DEBUG][       Thread-600749][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:49:24,621 [DEBUG][       Thread-600749][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:49:24,621 [DEBUG][       Thread-600749][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:49:24,624 [DEBUG][       Thread-600749][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:49:24,637 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:49:24,637 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:49:24,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:49:24,641 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:49:24,646 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:49:24,648 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:49:24,648 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:49:24,649 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:49:24,649 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.325642 -999.00   +9.50  35.65     54   +0.80 1 1 2 1 1   887    0 9.92 49.97 ----- 35.6 35.6 26.5 43.0 12.6 -23.6 11.7 -24.1 10.7 -23.1 11.6 -22.2
2025-07-01 09:49:24,649 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:49:24,649 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:49:24,649 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.325642
2025-07-01 09:49:24,650 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:49:24,650 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:49:24,651 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:49:24,651 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:49:24,651 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:49:24,651 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:49:18', tmtdew=10.16, humidity=49.08, cloud=0.0, wind=30.77, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:48:55.469', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:49:24,651 [DEBUG][       Thread-600749][   transport.py][1871] : EOF in transport thread
2025-07-01 09:49:24,734 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:49:24,747 [DEBUG][       Thread-600752][   transport.py][1871] : starting thread (client mode): 0x818ff70
2025-07-01 09:49:24,747 [DEBUG][       Thread-600752][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:49:24,762 [DEBUG][       Thread-600752][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:49:24,762 [ INFO][       Thread-600752][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:49:24,774 [DEBUG][       Thread-600752][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:49:24,774 [DEBUG][       Thread-600752][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:49:24,774 [DEBUG][       Thread-600752][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:49:24,774 [DEBUG][       Thread-600752][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:49:24,774 [DEBUG][       Thread-600752][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:49:24,774 [DEBUG][       Thread-600752][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:49:24,774 [DEBUG][       Thread-600752][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:49:24,774 [DEBUG][       Thread-600752][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:49:24,774 [DEBUG][       Thread-600752][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:49:24,774 [DEBUG][       Thread-600752][   transport.py][1871] : client lang: <none>
2025-07-01 09:49:24,774 [DEBUG][       Thread-600752][   transport.py][1871] : server lang: <none>
2025-07-01 09:49:24,774 [DEBUG][       Thread-600752][   transport.py][1871] : kex follows: False
2025-07-01 09:49:24,775 [DEBUG][       Thread-600752][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:49:24,775 [DEBUG][       Thread-600752][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:49:24,775 [DEBUG][       Thread-600752][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:49:24,775 [DEBUG][       Thread-600752][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:49:24,775 [DEBUG][       Thread-600752][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:49:24,775 [DEBUG][       Thread-600752][   transport.py][1871] : Compression: none
2025-07-01 09:49:24,775 [DEBUG][       Thread-600752][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:49:24,833 [DEBUG][       Thread-600752][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:49:24,834 [DEBUG][       Thread-600752][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:49:24,834 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:49:24,835 [DEBUG][       Thread-600752][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:49:24,836 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:49:24,891 [DEBUG][       Thread-600752][   transport.py][1871] : userauth is OK
2025-07-01 09:49:24,891 [DEBUG][       Thread-600752][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:49:24,892 [DEBUG][       Thread-600752][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:49:24,892 [DEBUG][       Thread-600752][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:49:24,892 [DEBUG][       Thread-600752][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:49:24,914 [ INFO][       Thread-600752][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:49:24,914 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:49:24,914 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:49:25,961 [DEBUG][       Thread-600752][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:49:25,962 [DEBUG][       Thread-600752][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:49:26,012 [DEBUG][       Thread-600752][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:49:26,013 [DEBUG][       Thread-600752][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:49:26,022 [DEBUG][       Thread-600752][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:49:26,030 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:49:26,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-07-01 09:49:26,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-07-01 09:49:26,049 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:49:26,049 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:49:26,049 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:49:26,057 [DEBUG][       Thread-600752][   transport.py][1871] : EOF in transport thread
2025-07-01 09:49:28,985 [DEBUG][Thread-600754 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:49:36,060 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:49:36,060 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:49:36,060 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:49:36,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-07-01 09:49:36,541 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 49, 18), 10.16, 49.08, 0.0, 30.77, 9.64, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:49:36,542 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:49:18
2025-07-01 09:49:36,627 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:49:36,631 [DEBUG][       Thread-600755][   transport.py][1871] : starting thread (client mode): 0x82b2d10
2025-07-01 09:49:36,631 [DEBUG][       Thread-600755][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:49:36,650 [DEBUG][       Thread-600755][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:49:36,650 [ INFO][       Thread-600755][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:49:36,654 [DEBUG][       Thread-600755][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:49:36,654 [DEBUG][       Thread-600755][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:49:36,654 [DEBUG][       Thread-600755][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:49:36,654 [DEBUG][       Thread-600755][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:49:36,654 [DEBUG][       Thread-600755][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:49:36,654 [DEBUG][       Thread-600755][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:49:36,654 [DEBUG][       Thread-600755][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:49:36,654 [DEBUG][       Thread-600755][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:49:36,654 [DEBUG][       Thread-600755][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:49:36,654 [DEBUG][       Thread-600755][   transport.py][1871] : client lang: <none>
2025-07-01 09:49:36,654 [DEBUG][       Thread-600755][   transport.py][1871] : server lang: <none>
2025-07-01 09:49:36,654 [DEBUG][       Thread-600755][   transport.py][1871] : kex follows: False
2025-07-01 09:49:36,654 [DEBUG][       Thread-600755][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:49:36,654 [DEBUG][       Thread-600755][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:49:36,654 [DEBUG][       Thread-600755][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:49:36,654 [DEBUG][       Thread-600755][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:49:36,654 [DEBUG][       Thread-600755][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:49:36,654 [DEBUG][       Thread-600755][   transport.py][1871] : Compression: none
2025-07-01 09:49:36,654 [DEBUG][       Thread-600755][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:49:36,672 [DEBUG][       Thread-600755][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:49:36,672 [DEBUG][       Thread-600755][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:49:36,673 [DEBUG][       Thread-600755][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:49:36,673 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:49:36,673 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:49:36,674 [DEBUG][       Thread-600755][   transport.py][1871] : userauth is OK
2025-07-01 09:49:36,687 [ INFO][       Thread-600755][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:49:36,688 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:49:37,336 [DEBUG][       Thread-600755][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:49:37,337 [DEBUG][       Thread-600755][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:49:37,381 [DEBUG][       Thread-600755][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:49:37,381 [DEBUG][       Thread-600755][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:49:37,384 [DEBUG][       Thread-600755][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:49:37,394 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:49:37,395 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:49:37,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:49:37,398 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:49:37,402 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:49:37,404 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:49:37,404 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:49:37,405 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:49:37,405 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.325989 -999.00   +9.40  36.89     54   +0.60 1 1 2 1 1   887    0 9.94 48.72 ----- 36.9 36.9 28.2 52.1 12.6 -23.5 11.7 -24.6 10.7 -23.1 11.7 -22.3
2025-07-01 09:49:37,405 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:49:37,405 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:49:37,405 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.325989
2025-07-01 09:49:37,405 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:49:37,406 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:49:37,406 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:49:37,406 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:49:37,406 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:49:37,406 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:49:18', tmtdew=10.16, humidity=49.08, cloud=0.0, wind=30.77, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:49:25.450', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:49:37,407 [DEBUG][       Thread-600755][   transport.py][1871] : EOF in transport thread
2025-07-01 09:49:37,491 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:49:37,500 [DEBUG][       Thread-600758][   transport.py][1871] : starting thread (client mode): 0x81e7b20
2025-07-01 09:49:37,500 [DEBUG][       Thread-600758][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:49:37,515 [DEBUG][       Thread-600758][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:49:37,515 [ INFO][       Thread-600758][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:49:37,523 [DEBUG][       Thread-600758][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:49:37,523 [DEBUG][       Thread-600758][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:49:37,523 [DEBUG][       Thread-600758][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:49:37,523 [DEBUG][       Thread-600758][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:49:37,523 [DEBUG][       Thread-600758][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:49:37,523 [DEBUG][       Thread-600758][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:49:37,523 [DEBUG][       Thread-600758][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:49:37,523 [DEBUG][       Thread-600758][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:49:37,523 [DEBUG][       Thread-600758][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:49:37,523 [DEBUG][       Thread-600758][   transport.py][1871] : client lang: <none>
2025-07-01 09:49:37,523 [DEBUG][       Thread-600758][   transport.py][1871] : server lang: <none>
2025-07-01 09:49:37,523 [DEBUG][       Thread-600758][   transport.py][1871] : kex follows: False
2025-07-01 09:49:37,523 [DEBUG][       Thread-600758][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:49:37,523 [DEBUG][       Thread-600758][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:49:37,523 [DEBUG][       Thread-600758][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:49:37,524 [DEBUG][       Thread-600758][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:49:37,524 [DEBUG][       Thread-600758][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:49:37,524 [DEBUG][       Thread-600758][   transport.py][1871] : Compression: none
2025-07-01 09:49:37,524 [DEBUG][       Thread-600758][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:49:37,583 [DEBUG][       Thread-600758][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:49:37,583 [DEBUG][       Thread-600758][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:49:37,584 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:49:37,584 [DEBUG][       Thread-600758][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:49:37,585 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:49:37,647 [DEBUG][       Thread-600758][   transport.py][1871] : userauth is OK
2025-07-01 09:49:37,647 [DEBUG][       Thread-600758][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:49:37,647 [DEBUG][       Thread-600758][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:49:37,647 [DEBUG][       Thread-600758][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:49:37,647 [DEBUG][       Thread-600758][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:49:37,667 [ INFO][       Thread-600758][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:49:37,667 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:49:37,668 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:49:38,019 [DEBUG][Thread-600760 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:49:38,660 [DEBUG][       Thread-600758][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:49:38,660 [DEBUG][       Thread-600758][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:49:38,708 [DEBUG][       Thread-600758][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:49:38,708 [DEBUG][       Thread-600758][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:49:38,718 [DEBUG][       Thread-600758][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:49:38,727 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:49:38,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-07-01 09:49:38,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-07-01 09:49:38,745 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:49:38,745 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:49:38,745 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:49:38,753 [DEBUG][       Thread-600758][   transport.py][1871] : EOF in transport thread
2025-07-01 09:49:47,039 [DEBUG][Thread-600761 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:49:48,752 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:49:48,752 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:49:48,752 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:49:48,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-07-01 09:49:49,218 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 49, 18), 10.16, 49.08, 0.0, 30.77, 9.64, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:49:49,218 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:49:18
2025-07-01 09:49:49,302 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:49:49,306 [DEBUG][       Thread-600762][   transport.py][1871] : starting thread (client mode): 0x75ab940
2025-07-01 09:49:49,306 [DEBUG][       Thread-600762][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:49:49,328 [DEBUG][       Thread-600762][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:49:49,328 [ INFO][       Thread-600762][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:49:49,331 [DEBUG][       Thread-600762][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:49:49,331 [DEBUG][       Thread-600762][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:49:49,331 [DEBUG][       Thread-600762][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:49:49,331 [DEBUG][       Thread-600762][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:49:49,331 [DEBUG][       Thread-600762][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:49:49,331 [DEBUG][       Thread-600762][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:49:49,331 [DEBUG][       Thread-600762][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:49:49,331 [DEBUG][       Thread-600762][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:49:49,331 [DEBUG][       Thread-600762][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:49:49,331 [DEBUG][       Thread-600762][   transport.py][1871] : client lang: <none>
2025-07-01 09:49:49,331 [DEBUG][       Thread-600762][   transport.py][1871] : server lang: <none>
2025-07-01 09:49:49,331 [DEBUG][       Thread-600762][   transport.py][1871] : kex follows: False
2025-07-01 09:49:49,331 [DEBUG][       Thread-600762][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:49:49,331 [DEBUG][       Thread-600762][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:49:49,331 [DEBUG][       Thread-600762][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:49:49,331 [DEBUG][       Thread-600762][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:49:49,331 [DEBUG][       Thread-600762][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:49:49,331 [DEBUG][       Thread-600762][   transport.py][1871] : Compression: none
2025-07-01 09:49:49,331 [DEBUG][       Thread-600762][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:49:49,352 [DEBUG][       Thread-600762][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:49:49,353 [DEBUG][       Thread-600762][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:49:49,353 [DEBUG][       Thread-600762][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:49:49,354 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:49:49,354 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:49:49,355 [DEBUG][       Thread-600762][   transport.py][1871] : userauth is OK
2025-07-01 09:49:49,368 [ INFO][       Thread-600762][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:49:49,368 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:49:50,167 [DEBUG][       Thread-600762][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:49:50,167 [DEBUG][       Thread-600762][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:49:50,208 [DEBUG][       Thread-600762][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:49:50,209 [DEBUG][       Thread-600762][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:49:50,211 [DEBUG][       Thread-600762][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:49:50,233 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:49:50,233 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:49:50,234 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:49:50,235 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:49:50,239 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:49:50,240 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:49:50,240 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:49:50,240 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:49:50,241 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.325989 -999.00   +9.40  36.89     54   +0.60 1 1 2 1 1   887    0 9.94 48.72 ----- 36.9 36.9 28.2 52.1 12.6 -23.5 11.7 -24.6 10.7 -23.1 11.7 -22.3
2025-07-01 09:49:50,241 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:49:50,241 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:49:50,241 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.325989
2025-07-01 09:49:50,241 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:49:50,242 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:49:50,242 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:49:50,242 [DEBUG][       Thread-600762][   transport.py][1871] : EOF in transport thread
2025-07-01 09:49:50,242 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:49:50,242 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:49:50,243 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:49:18', tmtdew=10.16, humidity=49.08, cloud=0.0, wind=30.77, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:49:25.450', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:49:50,330 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:49:50,343 [DEBUG][       Thread-600765][   transport.py][1871] : starting thread (client mode): 0x81a5330
2025-07-01 09:49:50,343 [DEBUG][       Thread-600765][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:49:50,365 [DEBUG][       Thread-600765][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:49:50,365 [ INFO][       Thread-600765][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:49:50,375 [DEBUG][       Thread-600765][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:49:50,375 [DEBUG][       Thread-600765][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:49:50,375 [DEBUG][       Thread-600765][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:49:50,375 [DEBUG][       Thread-600765][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:49:50,375 [DEBUG][       Thread-600765][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:49:50,375 [DEBUG][       Thread-600765][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:49:50,375 [DEBUG][       Thread-600765][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:49:50,375 [DEBUG][       Thread-600765][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:49:50,375 [DEBUG][       Thread-600765][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:49:50,375 [DEBUG][       Thread-600765][   transport.py][1871] : client lang: <none>
2025-07-01 09:49:50,375 [DEBUG][       Thread-600765][   transport.py][1871] : server lang: <none>
2025-07-01 09:49:50,375 [DEBUG][       Thread-600765][   transport.py][1871] : kex follows: False
2025-07-01 09:49:50,375 [DEBUG][       Thread-600765][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:49:50,375 [DEBUG][       Thread-600765][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:49:50,375 [DEBUG][       Thread-600765][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:49:50,375 [DEBUG][       Thread-600765][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:49:50,375 [DEBUG][       Thread-600765][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:49:50,375 [DEBUG][       Thread-600765][   transport.py][1871] : Compression: none
2025-07-01 09:49:50,375 [DEBUG][       Thread-600765][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:49:50,433 [DEBUG][       Thread-600765][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:49:50,433 [DEBUG][       Thread-600765][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:49:50,433 [DEBUG][       Thread-600765][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:49:50,433 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:49:50,433 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:49:50,491 [DEBUG][       Thread-600765][   transport.py][1871] : userauth is OK
2025-07-01 09:49:50,491 [DEBUG][       Thread-600765][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:49:50,491 [DEBUG][       Thread-600765][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:49:50,491 [DEBUG][       Thread-600765][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:49:50,491 [DEBUG][       Thread-600765][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:49:50,506 [ INFO][       Thread-600765][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:49:50,506 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:49:50,506 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:49:51,536 [DEBUG][       Thread-600765][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:49:51,536 [DEBUG][       Thread-600765][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:49:51,583 [DEBUG][       Thread-600765][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:49:51,583 [DEBUG][       Thread-600765][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:49:51,592 [DEBUG][       Thread-600765][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:49:51,600 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:49:51,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-07-01 09:49:51,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-07-01 09:49:51,617 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:49:51,617 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:49:51,617 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:49:51,625 [DEBUG][       Thread-600765][   transport.py][1871] : EOF in transport thread
2025-07-01 09:49:54,120 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:49:54,121 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:49:56,058 [DEBUG][Thread-600767 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:50:01,622 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:50:01,622 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:50:01,622 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:50:01,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-07-01 09:50:02,099 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 49, 50), 10.14, 49.15, 0.0, 38.28, 9.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:50:02,099 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:49:50
2025-07-01 09:50:02,184 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:50:02,188 [DEBUG][       Thread-600768][   transport.py][1871] : starting thread (client mode): 0x82b33a0
2025-07-01 09:50:02,188 [DEBUG][       Thread-600768][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:50:02,210 [DEBUG][       Thread-600768][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:50:02,210 [ INFO][       Thread-600768][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:50:02,212 [DEBUG][       Thread-600768][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:50:02,212 [DEBUG][       Thread-600768][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:50:02,213 [DEBUG][       Thread-600768][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:50:02,213 [DEBUG][       Thread-600768][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:50:02,213 [DEBUG][       Thread-600768][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:50:02,213 [DEBUG][       Thread-600768][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:50:02,213 [DEBUG][       Thread-600768][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:50:02,213 [DEBUG][       Thread-600768][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:50:02,213 [DEBUG][       Thread-600768][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:50:02,213 [DEBUG][       Thread-600768][   transport.py][1871] : client lang: <none>
2025-07-01 09:50:02,213 [DEBUG][       Thread-600768][   transport.py][1871] : server lang: <none>
2025-07-01 09:50:02,213 [DEBUG][       Thread-600768][   transport.py][1871] : kex follows: False
2025-07-01 09:50:02,213 [DEBUG][       Thread-600768][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:50:02,213 [DEBUG][       Thread-600768][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:50:02,213 [DEBUG][       Thread-600768][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:50:02,213 [DEBUG][       Thread-600768][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:50:02,213 [DEBUG][       Thread-600768][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:50:02,213 [DEBUG][       Thread-600768][   transport.py][1871] : Compression: none
2025-07-01 09:50:02,213 [DEBUG][       Thread-600768][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:50:02,227 [DEBUG][       Thread-600768][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:50:02,228 [DEBUG][       Thread-600768][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:50:02,228 [DEBUG][       Thread-600768][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:50:02,229 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:50:02,229 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:50:02,230 [DEBUG][       Thread-600768][   transport.py][1871] : userauth is OK
2025-07-01 09:50:02,243 [ INFO][       Thread-600768][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:50:02,244 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:50:03,011 [DEBUG][       Thread-600768][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:50:03,011 [DEBUG][       Thread-600768][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:50:03,053 [DEBUG][       Thread-600768][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:50:03,053 [DEBUG][       Thread-600768][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:50:03,057 [DEBUG][       Thread-600768][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:50:03,071 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:50:03,072 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:50:03,074 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:50:03,076 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:50:03,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:50:03,084 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:50:03,084 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:50:03,085 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:50:03,085 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.325989 -999.00   +9.40  36.89     54   +0.60 1 1 2 1 1   887    0 9.94 48.72 ----- 36.9 36.9 28.2 52.1 12.6 -23.5 11.7 -24.6 10.7 -23.1 11.7 -22.3
2025-07-01 09:50:03,085 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:50:03,085 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:50:03,085 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.325989
2025-07-01 09:50:03,086 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:50:03,086 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:50:03,086 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:50:03,086 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:50:03,086 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:50:03,086 [DEBUG][       Thread-600768][   transport.py][1871] : EOF in transport thread
2025-07-01 09:50:03,087 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:49:50', tmtdew=10.14, humidity=49.15, cloud=0.0, wind=38.28, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:49:25.450', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:50:03,163 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:50:03,173 [DEBUG][       Thread-600771][   transport.py][1871] : starting thread (client mode): 0x8106b60
2025-07-01 09:50:03,173 [DEBUG][       Thread-600771][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:50:03,188 [DEBUG][       Thread-600771][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:50:03,188 [ INFO][       Thread-600771][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:50:03,196 [DEBUG][       Thread-600771][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:50:03,196 [DEBUG][       Thread-600771][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:50:03,196 [DEBUG][       Thread-600771][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:50:03,196 [DEBUG][       Thread-600771][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:50:03,196 [DEBUG][       Thread-600771][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:50:03,196 [DEBUG][       Thread-600771][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:50:03,196 [DEBUG][       Thread-600771][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:50:03,196 [DEBUG][       Thread-600771][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:50:03,196 [DEBUG][       Thread-600771][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:50:03,196 [DEBUG][       Thread-600771][   transport.py][1871] : client lang: <none>
2025-07-01 09:50:03,196 [DEBUG][       Thread-600771][   transport.py][1871] : server lang: <none>
2025-07-01 09:50:03,196 [DEBUG][       Thread-600771][   transport.py][1871] : kex follows: False
2025-07-01 09:50:03,196 [DEBUG][       Thread-600771][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:50:03,196 [DEBUG][       Thread-600771][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:50:03,197 [DEBUG][       Thread-600771][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:50:03,197 [DEBUG][       Thread-600771][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:50:03,197 [DEBUG][       Thread-600771][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:50:03,197 [DEBUG][       Thread-600771][   transport.py][1871] : Compression: none
2025-07-01 09:50:03,197 [DEBUG][       Thread-600771][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:50:03,260 [DEBUG][       Thread-600771][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:50:03,260 [DEBUG][       Thread-600771][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:50:03,261 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:50:03,261 [DEBUG][       Thread-600771][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:50:03,262 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:50:03,315 [DEBUG][       Thread-600771][   transport.py][1871] : userauth is OK
2025-07-01 09:50:03,316 [DEBUG][       Thread-600771][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:50:03,316 [DEBUG][       Thread-600771][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:50:03,316 [DEBUG][       Thread-600771][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:50:03,316 [DEBUG][       Thread-600771][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:50:03,335 [ INFO][       Thread-600771][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:50:03,335 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:50:03,335 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:50:04,378 [DEBUG][       Thread-600771][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:50:04,379 [DEBUG][       Thread-600771][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:50:04,428 [DEBUG][       Thread-600771][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:50:04,428 [DEBUG][       Thread-600771][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:50:04,437 [DEBUG][       Thread-600771][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:50:04,446 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:50:04,446 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 09:50:04,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-07-01 09:50:04,464 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:50:04,465 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:50:04,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:50:04,473 [DEBUG][       Thread-600771][   transport.py][1871] : EOF in transport thread
2025-07-01 09:50:05,077 [DEBUG][Thread-600773 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:50:14,109 [DEBUG][Thread-600774 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:50:14,476 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:50:14,476 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:50:14,476 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:50:14,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-07-01 09:50:14,958 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 49, 50), 10.14, 49.15, 0.0, 38.28, 9.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:50:14,958 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:49:50
2025-07-01 09:50:15,042 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:50:15,046 [DEBUG][       Thread-600775][   transport.py][1871] : starting thread (client mode): 0x75aa5c0
2025-07-01 09:50:15,046 [DEBUG][       Thread-600775][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:50:15,067 [DEBUG][       Thread-600775][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:50:15,067 [ INFO][       Thread-600775][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:50:15,070 [DEBUG][       Thread-600775][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:50:15,070 [DEBUG][       Thread-600775][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:50:15,070 [DEBUG][       Thread-600775][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:50:15,070 [DEBUG][       Thread-600775][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:50:15,070 [DEBUG][       Thread-600775][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:50:15,070 [DEBUG][       Thread-600775][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:50:15,070 [DEBUG][       Thread-600775][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:50:15,070 [DEBUG][       Thread-600775][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:50:15,070 [DEBUG][       Thread-600775][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:50:15,070 [DEBUG][       Thread-600775][   transport.py][1871] : client lang: <none>
2025-07-01 09:50:15,070 [DEBUG][       Thread-600775][   transport.py][1871] : server lang: <none>
2025-07-01 09:50:15,070 [DEBUG][       Thread-600775][   transport.py][1871] : kex follows: False
2025-07-01 09:50:15,070 [DEBUG][       Thread-600775][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:50:15,070 [DEBUG][       Thread-600775][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:50:15,070 [DEBUG][       Thread-600775][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:50:15,071 [DEBUG][       Thread-600775][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:50:15,071 [DEBUG][       Thread-600775][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:50:15,071 [DEBUG][       Thread-600775][   transport.py][1871] : Compression: none
2025-07-01 09:50:15,071 [DEBUG][       Thread-600775][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:50:15,087 [DEBUG][       Thread-600775][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:50:15,087 [DEBUG][       Thread-600775][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:50:15,088 [DEBUG][       Thread-600775][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:50:15,088 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:50:15,088 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:50:15,090 [DEBUG][       Thread-600775][   transport.py][1871] : userauth is OK
2025-07-01 09:50:15,104 [ INFO][       Thread-600775][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:50:15,105 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:50:15,764 [DEBUG][       Thread-600775][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:50:15,765 [DEBUG][       Thread-600775][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:50:15,813 [DEBUG][       Thread-600775][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:50:15,813 [DEBUG][       Thread-600775][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:50:15,816 [DEBUG][       Thread-600775][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:50:15,829 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:50:15,829 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:50:15,831 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:50:15,833 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:50:15,838 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:50:15,840 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:50:15,841 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:50:15,841 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:50:15,841 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.326336 -999.00   +9.40  40.18     54   +0.60 1 1 2 1 1   887    0 9.86 43.21 ----- 40.2 40.2 16.6 47.7 12.6 -24.7 11.7 -23.8 10.7 -23.0 11.6 -23.5
2025-07-01 09:50:15,841 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:50:15,841 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:50:15,841 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.326336
2025-07-01 09:50:15,842 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:50:15,842 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:50:15,843 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:50:15,843 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:50:15,843 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:50:15,843 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:49:50', tmtdew=10.14, humidity=49.15, cloud=0.0, wind=38.28, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:49:55.430', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:50:15,843 [DEBUG][       Thread-600775][   transport.py][1871] : EOF in transport thread
2025-07-01 09:50:15,926 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:50:15,938 [DEBUG][       Thread-600778][   transport.py][1871] : starting thread (client mode): 0x81a5330
2025-07-01 09:50:15,938 [DEBUG][       Thread-600778][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:50:15,952 [DEBUG][       Thread-600778][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:50:15,953 [ INFO][       Thread-600778][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:50:15,960 [DEBUG][       Thread-600778][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:50:15,961 [DEBUG][       Thread-600778][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:50:15,961 [DEBUG][       Thread-600778][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:50:15,961 [DEBUG][       Thread-600778][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:50:15,961 [DEBUG][       Thread-600778][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:50:15,961 [DEBUG][       Thread-600778][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:50:15,961 [DEBUG][       Thread-600778][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:50:15,961 [DEBUG][       Thread-600778][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:50:15,961 [DEBUG][       Thread-600778][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:50:15,961 [DEBUG][       Thread-600778][   transport.py][1871] : client lang: <none>
2025-07-01 09:50:15,961 [DEBUG][       Thread-600778][   transport.py][1871] : server lang: <none>
2025-07-01 09:50:15,961 [DEBUG][       Thread-600778][   transport.py][1871] : kex follows: False
2025-07-01 09:50:15,961 [DEBUG][       Thread-600778][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:50:15,961 [DEBUG][       Thread-600778][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:50:15,961 [DEBUG][       Thread-600778][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:50:15,961 [DEBUG][       Thread-600778][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:50:15,961 [DEBUG][       Thread-600778][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:50:15,961 [DEBUG][       Thread-600778][   transport.py][1871] : Compression: none
2025-07-01 09:50:15,961 [DEBUG][       Thread-600778][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:50:16,019 [DEBUG][       Thread-600778][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:50:16,019 [DEBUG][       Thread-600778][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:50:16,020 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:50:16,020 [DEBUG][       Thread-600778][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:50:16,021 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:50:16,075 [DEBUG][       Thread-600778][   transport.py][1871] : userauth is OK
2025-07-01 09:50:16,076 [DEBUG][       Thread-600778][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:50:16,076 [DEBUG][       Thread-600778][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:50:16,076 [DEBUG][       Thread-600778][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:50:16,076 [DEBUG][       Thread-600778][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:50:16,097 [ INFO][       Thread-600778][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:50:16,097 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:50:16,097 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:50:17,103 [DEBUG][       Thread-600778][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:50:17,103 [DEBUG][       Thread-600778][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:50:17,152 [DEBUG][       Thread-600778][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:50:17,152 [DEBUG][       Thread-600778][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:50:17,161 [DEBUG][       Thread-600778][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:50:17,169 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:50: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-07-01 09:50:17,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-07-01 09:50:17,187 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:50:17,187 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:50:17,188 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:50:17,195 [DEBUG][       Thread-600778][   transport.py][1871] : EOF in transport thread
2025-07-01 09:50:21,565 [DEBUG][Thread-600780 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:50:23,127 [DEBUG][Thread-600781 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:50:27,198 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:50:27,198 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:50:27,198 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:50:27,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-07-01 09:50:27,668 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 50, 21), 10.16, 49.21, 0.0, 39.61, 9.56, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:50:27,668 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:50:21
2025-07-01 09:50:27,753 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:50:27,760 [DEBUG][       Thread-600782][   transport.py][1871] : starting thread (client mode): 0x8171930
2025-07-01 09:50:27,760 [DEBUG][       Thread-600782][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:50:27,779 [DEBUG][       Thread-600782][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:50:27,779 [ INFO][       Thread-600782][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:50:27,783 [DEBUG][       Thread-600782][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:50:27,783 [DEBUG][       Thread-600782][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:50:27,783 [DEBUG][       Thread-600782][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:50:27,783 [DEBUG][       Thread-600782][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:50:27,783 [DEBUG][       Thread-600782][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:50:27,783 [DEBUG][       Thread-600782][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:50:27,783 [DEBUG][       Thread-600782][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:50:27,783 [DEBUG][       Thread-600782][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:50:27,783 [DEBUG][       Thread-600782][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:50:27,783 [DEBUG][       Thread-600782][   transport.py][1871] : client lang: <none>
2025-07-01 09:50:27,783 [DEBUG][       Thread-600782][   transport.py][1871] : server lang: <none>
2025-07-01 09:50:27,783 [DEBUG][       Thread-600782][   transport.py][1871] : kex follows: False
2025-07-01 09:50:27,783 [DEBUG][       Thread-600782][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:50:27,783 [DEBUG][       Thread-600782][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:50:27,783 [DEBUG][       Thread-600782][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:50:27,783 [DEBUG][       Thread-600782][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:50:27,783 [DEBUG][       Thread-600782][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:50:27,783 [DEBUG][       Thread-600782][   transport.py][1871] : Compression: none
2025-07-01 09:50:27,783 [DEBUG][       Thread-600782][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:50:27,798 [DEBUG][       Thread-600782][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:50:27,799 [DEBUG][       Thread-600782][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:50:27,799 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:50:27,799 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:50:27,800 [DEBUG][       Thread-600782][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:50:27,801 [DEBUG][       Thread-600782][   transport.py][1871] : userauth is OK
2025-07-01 09:50:27,825 [ INFO][       Thread-600782][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:50:27,826 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:50:28,596 [DEBUG][       Thread-600782][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:50:28,596 [DEBUG][       Thread-600782][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:50:28,637 [DEBUG][       Thread-600782][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:50:28,637 [DEBUG][       Thread-600782][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:50:28,640 [DEBUG][       Thread-600782][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:50:28,652 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:50:28,653 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:50:28,654 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:50:28,656 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:50:28,661 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:50:28,663 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:50:28,663 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:50:28,663 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:50:28,663 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.326336 -999.00   +9.40  40.18     54   +0.60 1 1 2 1 1   887    0 9.86 43.21 ----- 40.2 40.2 16.6 47.7 12.6 -24.7 11.7 -23.8 10.7 -23.0 11.6 -23.5
2025-07-01 09:50:28,664 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:50:28,664 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:50:28,664 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.326336
2025-07-01 09:50:28,664 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:50:28,665 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:50:28,665 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:50:28,665 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:50:28,665 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:50:28,665 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:50:21', tmtdew=10.16, humidity=49.21, cloud=0.0, wind=39.61, temperature=9.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:49:55.430', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:50:28,666 [DEBUG][       Thread-600782][   transport.py][1871] : EOF in transport thread
2025-07-01 09:50:28,748 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:50:28,760 [DEBUG][       Thread-600785][   transport.py][1871] : starting thread (client mode): 0x8155d20
2025-07-01 09:50:28,760 [DEBUG][       Thread-600785][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:50:28,775 [DEBUG][       Thread-600785][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:50:28,776 [ INFO][       Thread-600785][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:50:28,783 [DEBUG][       Thread-600785][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:50:28,783 [DEBUG][       Thread-600785][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:50:28,784 [DEBUG][       Thread-600785][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:50:28,784 [DEBUG][       Thread-600785][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:50:28,784 [DEBUG][       Thread-600785][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:50:28,784 [DEBUG][       Thread-600785][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:50:28,784 [DEBUG][       Thread-600785][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:50:28,784 [DEBUG][       Thread-600785][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:50:28,784 [DEBUG][       Thread-600785][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:50:28,784 [DEBUG][       Thread-600785][   transport.py][1871] : client lang: <none>
2025-07-01 09:50:28,784 [DEBUG][       Thread-600785][   transport.py][1871] : server lang: <none>
2025-07-01 09:50:28,784 [DEBUG][       Thread-600785][   transport.py][1871] : kex follows: False
2025-07-01 09:50:28,784 [DEBUG][       Thread-600785][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:50:28,784 [DEBUG][       Thread-600785][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:50:28,784 [DEBUG][       Thread-600785][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:50:28,784 [DEBUG][       Thread-600785][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:50:28,784 [DEBUG][       Thread-600785][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:50:28,784 [DEBUG][       Thread-600785][   transport.py][1871] : Compression: none
2025-07-01 09:50:28,784 [DEBUG][       Thread-600785][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:50:28,843 [DEBUG][       Thread-600785][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:50:28,844 [DEBUG][       Thread-600785][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:50:28,845 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:50:28,845 [DEBUG][       Thread-600785][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:50:28,846 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:50:28,900 [DEBUG][       Thread-600785][   transport.py][1871] : userauth is OK
2025-07-01 09:50:28,900 [DEBUG][       Thread-600785][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:50:28,901 [DEBUG][       Thread-600785][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:50:28,901 [DEBUG][       Thread-600785][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:50:28,901 [DEBUG][       Thread-600785][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:50:28,920 [ INFO][       Thread-600785][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:50:28,920 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:50:28,920 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:50:29,948 [DEBUG][       Thread-600785][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:50:29,948 [DEBUG][       Thread-600785][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:50:30,000 [DEBUG][       Thread-600785][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:50:30,000 [DEBUG][       Thread-600785][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:50:30,008 [DEBUG][       Thread-600785][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:50:30,016 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:50:30,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-07-01 09:50:30,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-07-01 09:50:30,032 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:50:30,032 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:50:30,033 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:50:30,040 [DEBUG][       Thread-600785][   transport.py][1871] : EOF in transport thread
2025-07-01 09:50:32,147 [DEBUG][Thread-600787 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:50:40,043 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:50:40,043 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:50:40,043 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:50:40,046 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:50:40,490 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 50, 21), 10.16, 49.21, 0.0, 39.61, 9.56, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:50:40,490 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:50:21
2025-07-01 09:50:40,575 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:50:40,579 [DEBUG][       Thread-600788][   transport.py][1871] : starting thread (client mode): 0x8173730
2025-07-01 09:50:40,579 [DEBUG][       Thread-600788][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:50:40,601 [DEBUG][       Thread-600788][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:50:40,601 [ INFO][       Thread-600788][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:50:40,602 [DEBUG][       Thread-600788][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:50:40,602 [DEBUG][       Thread-600788][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:50:40,602 [DEBUG][       Thread-600788][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:50:40,602 [DEBUG][       Thread-600788][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:50:40,602 [DEBUG][       Thread-600788][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:50:40,602 [DEBUG][       Thread-600788][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:50:40,602 [DEBUG][       Thread-600788][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:50:40,602 [DEBUG][       Thread-600788][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:50:40,602 [DEBUG][       Thread-600788][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:50:40,602 [DEBUG][       Thread-600788][   transport.py][1871] : client lang: <none>
2025-07-01 09:50:40,602 [DEBUG][       Thread-600788][   transport.py][1871] : server lang: <none>
2025-07-01 09:50:40,602 [DEBUG][       Thread-600788][   transport.py][1871] : kex follows: False
2025-07-01 09:50:40,602 [DEBUG][       Thread-600788][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:50:40,602 [DEBUG][       Thread-600788][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:50:40,602 [DEBUG][       Thread-600788][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:50:40,603 [DEBUG][       Thread-600788][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:50:40,603 [DEBUG][       Thread-600788][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:50:40,603 [DEBUG][       Thread-600788][   transport.py][1871] : Compression: none
2025-07-01 09:50:40,603 [DEBUG][       Thread-600788][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:50:40,611 [DEBUG][       Thread-600788][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:50:40,611 [DEBUG][       Thread-600788][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:50:40,611 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:50:40,611 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:50:40,612 [DEBUG][       Thread-600788][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:50:40,613 [DEBUG][       Thread-600788][   transport.py][1871] : userauth is OK
2025-07-01 09:50:40,625 [ INFO][       Thread-600788][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:50:40,626 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:50:41,183 [DEBUG][Thread-600790 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:50:41,225 [DEBUG][       Thread-600788][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:50:41,225 [DEBUG][       Thread-600788][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:50:41,268 [DEBUG][       Thread-600788][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:50:41,269 [DEBUG][       Thread-600788][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:50:41,271 [DEBUG][       Thread-600788][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:50:41,283 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:50:41,284 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:50:41,285 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:50:41,287 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:50:41,291 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:50:41,293 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:50:41,293 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:50:41,294 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:50:41,294 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.326683 -999.00   +9.30  38.44     54   +0.60 1 1 2 1 1   887    0 9.96 42.76 ----- 38.4 38.4 29.9 54.5 12.6 -23.6 11.6 -24.0 10.7 -22.7 11.6 -22.2
2025-07-01 09:50:41,294 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:50:41,294 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:50:41,294 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.326683
2025-07-01 09:50:41,294 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:50:41,295 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:50:41,295 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:50:41,295 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:50:41,295 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:50:41,295 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:50:21', tmtdew=10.16, humidity=49.21, cloud=0.0, wind=39.61, temperature=9.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:50:25.411', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:50:41,295 [DEBUG][       Thread-600788][   transport.py][1871] : EOF in transport thread
2025-07-01 09:50:41,378 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:50:41,389 [DEBUG][       Thread-600792][   transport.py][1871] : starting thread (client mode): 0x8171ed0
2025-07-01 09:50:41,389 [DEBUG][       Thread-600792][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:50:41,403 [DEBUG][       Thread-600792][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:50:41,404 [ INFO][       Thread-600792][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:50:41,411 [DEBUG][       Thread-600792][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:50:41,411 [DEBUG][       Thread-600792][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:50:41,411 [DEBUG][       Thread-600792][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:50:41,411 [DEBUG][       Thread-600792][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:50:41,411 [DEBUG][       Thread-600792][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:50:41,411 [DEBUG][       Thread-600792][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:50:41,411 [DEBUG][       Thread-600792][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:50:41,411 [DEBUG][       Thread-600792][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:50:41,411 [DEBUG][       Thread-600792][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:50:41,411 [DEBUG][       Thread-600792][   transport.py][1871] : client lang: <none>
2025-07-01 09:50:41,411 [DEBUG][       Thread-600792][   transport.py][1871] : server lang: <none>
2025-07-01 09:50:41,411 [DEBUG][       Thread-600792][   transport.py][1871] : kex follows: False
2025-07-01 09:50:41,411 [DEBUG][       Thread-600792][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:50:41,412 [DEBUG][       Thread-600792][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:50:41,412 [DEBUG][       Thread-600792][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:50:41,412 [DEBUG][       Thread-600792][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:50:41,412 [DEBUG][       Thread-600792][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:50:41,412 [DEBUG][       Thread-600792][   transport.py][1871] : Compression: none
2025-07-01 09:50:41,412 [DEBUG][       Thread-600792][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:50:41,472 [DEBUG][       Thread-600792][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:50:41,472 [DEBUG][       Thread-600792][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:50:41,473 [DEBUG][       Thread-600792][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:50:41,473 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:50:41,473 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:50:41,531 [DEBUG][       Thread-600792][   transport.py][1871] : userauth is OK
2025-07-01 09:50:41,531 [DEBUG][       Thread-600792][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:50:41,531 [DEBUG][       Thread-600792][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:50:41,531 [DEBUG][       Thread-600792][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:50:41,531 [DEBUG][       Thread-600792][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:50:41,551 [ INFO][       Thread-600792][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:50:41,551 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:50:41,551 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:50:42,540 [DEBUG][       Thread-600792][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:50:42,541 [DEBUG][       Thread-600792][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:50:42,596 [DEBUG][       Thread-600792][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:50:42,596 [DEBUG][       Thread-600792][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:50:42,606 [DEBUG][       Thread-600792][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:50:42,614 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:50:42,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-07-01 09:50:42,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-07-01 09:50:42,633 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:50:42,633 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:50:42,633 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:50:42,641 [DEBUG][       Thread-600792][   transport.py][1871] : EOF in transport thread
2025-07-01 09:50:50,205 [DEBUG][Thread-600794 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:50:52,644 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:50:52,644 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:50:52,644 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:50:52,647 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:50:53,110 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 50, 21), 10.16, 49.21, 0.0, 39.61, 9.56, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:50:53,110 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:50:21
2025-07-01 09:50:53,193 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:50:53,199 [DEBUG][       Thread-600795][   transport.py][1871] : starting thread (client mode): 0x75ab5b0
2025-07-01 09:50:53,199 [DEBUG][       Thread-600795][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:50:53,220 [DEBUG][       Thread-600795][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:50:53,220 [ INFO][       Thread-600795][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:50:53,223 [DEBUG][       Thread-600795][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:50:53,223 [DEBUG][       Thread-600795][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:50:53,223 [DEBUG][       Thread-600795][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:50:53,223 [DEBUG][       Thread-600795][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:50:53,223 [DEBUG][       Thread-600795][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:50:53,223 [DEBUG][       Thread-600795][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:50:53,223 [DEBUG][       Thread-600795][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:50:53,223 [DEBUG][       Thread-600795][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:50:53,223 [DEBUG][       Thread-600795][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:50:53,223 [DEBUG][       Thread-600795][   transport.py][1871] : client lang: <none>
2025-07-01 09:50:53,223 [DEBUG][       Thread-600795][   transport.py][1871] : server lang: <none>
2025-07-01 09:50:53,223 [DEBUG][       Thread-600795][   transport.py][1871] : kex follows: False
2025-07-01 09:50:53,223 [DEBUG][       Thread-600795][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:50:53,223 [DEBUG][       Thread-600795][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:50:53,223 [DEBUG][       Thread-600795][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:50:53,223 [DEBUG][       Thread-600795][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:50:53,223 [DEBUG][       Thread-600795][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:50:53,223 [DEBUG][       Thread-600795][   transport.py][1871] : Compression: none
2025-07-01 09:50:53,224 [DEBUG][       Thread-600795][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:50:53,241 [DEBUG][       Thread-600795][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:50:53,241 [DEBUG][       Thread-600795][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:50:53,242 [DEBUG][       Thread-600795][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:50:53,242 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:50:53,242 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:50:53,243 [DEBUG][       Thread-600795][   transport.py][1871] : userauth is OK
2025-07-01 09:50:53,268 [ INFO][       Thread-600795][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:50:53,268 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:50:53,906 [DEBUG][       Thread-600795][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:50:53,906 [DEBUG][       Thread-600795][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:50:53,948 [DEBUG][       Thread-600795][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:50:53,948 [DEBUG][       Thread-600795][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:50:53,950 [DEBUG][       Thread-600795][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:50:53,962 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:50:53,962 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:50:53,963 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:50:53,963 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:50:53,966 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:50:53,967 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:50:53,967 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:50:53,967 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:50:53,967 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.326683 -999.00   +9.30  38.44     54   +0.60 1 1 2 1 1   887    0 9.96 42.76 ----- 38.4 38.4 29.9 54.5 12.6 -23.6 11.6 -24.0 10.7 -22.7 11.6 -22.2
2025-07-01 09:50:53,967 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:50:53,967 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:50:53,967 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.326683
2025-07-01 09:50:53,967 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:50:53,967 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:50:53,967 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:50:53,967 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:50:53,967 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:50:53,967 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:50:21', tmtdew=10.16, humidity=49.21, cloud=0.0, wind=39.61, temperature=9.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:50:25.411', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:50:53,968 [DEBUG][       Thread-600795][   transport.py][1871] : EOF in transport thread
2025-07-01 09:50:54,042 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:50:54,054 [DEBUG][       Thread-600798][   transport.py][1871] : starting thread (client mode): 0x81a78e0
2025-07-01 09:50:54,055 [DEBUG][       Thread-600798][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:50:54,073 [DEBUG][       Thread-600798][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:50:54,073 [ INFO][       Thread-600798][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:50:54,084 [DEBUG][       Thread-600798][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:50:54,084 [DEBUG][       Thread-600798][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:50:54,084 [DEBUG][       Thread-600798][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:50:54,084 [DEBUG][       Thread-600798][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:50:54,084 [DEBUG][       Thread-600798][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:50:54,084 [DEBUG][       Thread-600798][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:50:54,084 [DEBUG][       Thread-600798][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:50:54,084 [DEBUG][       Thread-600798][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:50:54,084 [DEBUG][       Thread-600798][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:50:54,084 [DEBUG][       Thread-600798][   transport.py][1871] : client lang: <none>
2025-07-01 09:50:54,084 [DEBUG][       Thread-600798][   transport.py][1871] : server lang: <none>
2025-07-01 09:50:54,084 [DEBUG][       Thread-600798][   transport.py][1871] : kex follows: False
2025-07-01 09:50:54,084 [DEBUG][       Thread-600798][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:50:54,084 [DEBUG][       Thread-600798][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:50:54,084 [DEBUG][       Thread-600798][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:50:54,084 [DEBUG][       Thread-600798][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:50:54,085 [DEBUG][       Thread-600798][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:50:54,085 [DEBUG][       Thread-600798][   transport.py][1871] : Compression: none
2025-07-01 09:50:54,085 [DEBUG][       Thread-600798][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:50:54,142 [DEBUG][       Thread-600798][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:50:54,143 [DEBUG][       Thread-600798][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:50:54,143 [DEBUG][       Thread-600798][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:50:54,143 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:50:54,143 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:50:54,203 [DEBUG][       Thread-600798][   transport.py][1871] : userauth is OK
2025-07-01 09:50:54,203 [DEBUG][       Thread-600798][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:50:54,203 [DEBUG][       Thread-600798][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:50:54,203 [DEBUG][       Thread-600798][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:50:54,203 [DEBUG][       Thread-600798][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:50:54,217 [ INFO][       Thread-600798][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:50:54,218 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:50:54,218 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:50:54,258 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:50:54,259 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:50:55,289 [DEBUG][       Thread-600798][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:50:55,289 [DEBUG][       Thread-600798][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:50:55,340 [DEBUG][       Thread-600798][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:50:55,340 [DEBUG][       Thread-600798][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:50:55,349 [DEBUG][       Thread-600798][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:50:55,359 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:50:55,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-07-01 09:50:55,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-07-01 09:50:55,375 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:50:55,375 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:50:55,376 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:50:55,385 [DEBUG][       Thread-600798][   transport.py][1871] : EOF in transport thread
2025-07-01 09:50:59,227 [DEBUG][Thread-600800 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:51:05,386 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:51:05,386 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:51:05,386 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:51:05,389 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:51:05,871 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 50, 53), 10.13, 49.29, 0.0, 40.86, 9.57, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:51:05,871 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:50:53
2025-07-01 09:51:05,955 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:51:05,959 [DEBUG][       Thread-600801][   transport.py][1871] : starting thread (client mode): 0x818c850
2025-07-01 09:51:05,959 [DEBUG][       Thread-600801][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:51:05,976 [DEBUG][       Thread-600801][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:51:05,976 [ INFO][       Thread-600801][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:51:05,980 [DEBUG][       Thread-600801][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:51:05,980 [DEBUG][       Thread-600801][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:51:05,980 [DEBUG][       Thread-600801][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:51:05,980 [DEBUG][       Thread-600801][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:51:05,980 [DEBUG][       Thread-600801][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:51:05,980 [DEBUG][       Thread-600801][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:51:05,980 [DEBUG][       Thread-600801][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:51:05,980 [DEBUG][       Thread-600801][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:51:05,980 [DEBUG][       Thread-600801][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:51:05,980 [DEBUG][       Thread-600801][   transport.py][1871] : client lang: <none>
2025-07-01 09:51:05,980 [DEBUG][       Thread-600801][   transport.py][1871] : server lang: <none>
2025-07-01 09:51:05,980 [DEBUG][       Thread-600801][   transport.py][1871] : kex follows: False
2025-07-01 09:51:05,980 [DEBUG][       Thread-600801][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:51:05,980 [DEBUG][       Thread-600801][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:51:05,980 [DEBUG][       Thread-600801][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:51:05,980 [DEBUG][       Thread-600801][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:51:05,980 [DEBUG][       Thread-600801][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:51:05,980 [DEBUG][       Thread-600801][   transport.py][1871] : Compression: none
2025-07-01 09:51:05,980 [DEBUG][       Thread-600801][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:51:05,997 [DEBUG][       Thread-600801][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:51:05,997 [DEBUG][       Thread-600801][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:51:05,998 [DEBUG][       Thread-600801][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:51:05,998 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:51:05,998 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:51:06,000 [DEBUG][       Thread-600801][   transport.py][1871] : userauth is OK
2025-07-01 09:51:06,013 [ INFO][       Thread-600801][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:51:06,013 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:51:06,629 [DEBUG][       Thread-600801][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:51:06,630 [DEBUG][       Thread-600801][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:51:06,672 [DEBUG][       Thread-600801][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:51:06,673 [DEBUG][       Thread-600801][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:51:06,675 [DEBUG][       Thread-600801][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:51:06,689 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:51:06,690 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:51:06,691 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:51:06,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:51:06,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:51:06,698 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:51:06,699 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:51:06,699 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:51:06,699 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.326683 -999.00   +9.30  38.44     54   +0.60 1 1 2 1 1   887    0 9.96 42.76 ----- 38.4 38.4 29.9 54.5 12.6 -23.6 11.6 -24.0 10.7 -22.7 11.6 -22.2
2025-07-01 09:51:06,699 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:51:06,699 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:51:06,699 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.326683
2025-07-01 09:51:06,700 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:51:06,700 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:51:06,700 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:51:06,700 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:51:06,701 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:51:06,701 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:50:53', tmtdew=10.13, humidity=49.29, cloud=0.0, wind=40.86, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:50:25.411', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:51:06,702 [DEBUG][       Thread-600801][   transport.py][1871] : EOF in transport thread
2025-07-01 09:51:06,784 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:51:06,794 [DEBUG][       Thread-600804][   transport.py][1871] : starting thread (client mode): 0x82b1ff0
2025-07-01 09:51:06,794 [DEBUG][       Thread-600804][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:51:06,809 [DEBUG][       Thread-600804][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:51:06,809 [ INFO][       Thread-600804][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:51:06,817 [DEBUG][       Thread-600804][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:51:06,817 [DEBUG][       Thread-600804][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:51:06,817 [DEBUG][       Thread-600804][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:51:06,817 [DEBUG][       Thread-600804][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:51:06,817 [DEBUG][       Thread-600804][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:51:06,818 [DEBUG][       Thread-600804][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:51:06,818 [DEBUG][       Thread-600804][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:51:06,818 [DEBUG][       Thread-600804][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:51:06,818 [DEBUG][       Thread-600804][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:51:06,818 [DEBUG][       Thread-600804][   transport.py][1871] : client lang: <none>
2025-07-01 09:51:06,818 [DEBUG][       Thread-600804][   transport.py][1871] : server lang: <none>
2025-07-01 09:51:06,818 [DEBUG][       Thread-600804][   transport.py][1871] : kex follows: False
2025-07-01 09:51:06,818 [DEBUG][       Thread-600804][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:51:06,818 [DEBUG][       Thread-600804][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:51:06,818 [DEBUG][       Thread-600804][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:51:06,818 [DEBUG][       Thread-600804][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:51:06,818 [DEBUG][       Thread-600804][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:51:06,818 [DEBUG][       Thread-600804][   transport.py][1871] : Compression: none
2025-07-01 09:51:06,818 [DEBUG][       Thread-600804][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:51:06,875 [DEBUG][       Thread-600804][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:51:06,876 [DEBUG][       Thread-600804][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:51:06,876 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:51:06,877 [DEBUG][       Thread-600804][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:51:06,877 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:51:06,931 [DEBUG][       Thread-600804][   transport.py][1871] : userauth is OK
2025-07-01 09:51:06,932 [DEBUG][       Thread-600804][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:51:06,932 [DEBUG][       Thread-600804][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:51:06,932 [DEBUG][       Thread-600804][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:51:06,932 [DEBUG][       Thread-600804][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:51:06,950 [ INFO][       Thread-600804][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:51:06,951 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:51:06,951 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:51:07,931 [DEBUG][       Thread-600804][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:51:07,931 [DEBUG][       Thread-600804][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:51:07,980 [DEBUG][       Thread-600804][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:51:07,980 [DEBUG][       Thread-600804][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:51:07,990 [DEBUG][       Thread-600804][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:51:07,999 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:51:07,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')
2025-07-01 09:51:08,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') -> 00000000
2025-07-01 09:51:08,018 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:51:08,018 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:51:08,018 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:51:08,026 [DEBUG][       Thread-600804][   transport.py][1871] : EOF in transport thread
2025-07-01 09:51:08,248 [DEBUG][Thread-600806 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:51:17,280 [DEBUG][Thread-600807 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:51:18,022 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:51:18,023 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:51:18,023 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:51:18,026 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:51:18,496 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 50, 53), 10.13, 49.29, 0.0, 40.86, 9.57, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:51:18,496 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:50:53
2025-07-01 09:51:18,580 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:51:18,585 [DEBUG][       Thread-600808][   transport.py][1871] : starting thread (client mode): 0x82b3a30
2025-07-01 09:51:18,585 [DEBUG][       Thread-600808][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:51:18,606 [DEBUG][       Thread-600808][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:51:18,606 [ INFO][       Thread-600808][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:51:18,609 [DEBUG][       Thread-600808][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:51:18,609 [DEBUG][       Thread-600808][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:51:18,609 [DEBUG][       Thread-600808][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:51:18,609 [DEBUG][       Thread-600808][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:51:18,609 [DEBUG][       Thread-600808][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:51:18,609 [DEBUG][       Thread-600808][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:51:18,609 [DEBUG][       Thread-600808][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:51:18,609 [DEBUG][       Thread-600808][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:51:18,609 [DEBUG][       Thread-600808][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:51:18,609 [DEBUG][       Thread-600808][   transport.py][1871] : client lang: <none>
2025-07-01 09:51:18,609 [DEBUG][       Thread-600808][   transport.py][1871] : server lang: <none>
2025-07-01 09:51:18,609 [DEBUG][       Thread-600808][   transport.py][1871] : kex follows: False
2025-07-01 09:51:18,609 [DEBUG][       Thread-600808][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:51:18,609 [DEBUG][       Thread-600808][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:51:18,610 [DEBUG][       Thread-600808][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:51:18,610 [DEBUG][       Thread-600808][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:51:18,610 [DEBUG][       Thread-600808][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:51:18,610 [DEBUG][       Thread-600808][   transport.py][1871] : Compression: none
2025-07-01 09:51:18,610 [DEBUG][       Thread-600808][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:51:18,627 [DEBUG][       Thread-600808][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:51:18,627 [DEBUG][       Thread-600808][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:51:18,627 [DEBUG][       Thread-600808][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:51:18,628 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:51:18,628 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:51:18,629 [DEBUG][       Thread-600808][   transport.py][1871] : userauth is OK
2025-07-01 09:51:18,654 [ INFO][       Thread-600808][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:51:18,654 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:51:19,297 [DEBUG][       Thread-600808][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:51:19,298 [DEBUG][       Thread-600808][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:51:19,341 [DEBUG][       Thread-600808][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:51:19,341 [DEBUG][       Thread-600808][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:51:19,344 [DEBUG][       Thread-600808][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:51:19,356 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:51:19,356 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:51:19,358 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:51:19,360 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:51:19,366 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:51:19,368 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:51:19,368 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:51:19,369 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:51:19,369 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.327031 -999.00   +9.30  35.34     54   +0.70 1 1 2 1 1   887    0 9.94 42.42 ----- 35.3 35.3 20.7 52.9 12.6 -25.3 11.6 -24.9 10.7 -23.1 11.5 -23.4
2025-07-01 09:51:19,369 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:51:19,369 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:51:19,369 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.327031
2025-07-01 09:51:19,370 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:51:19,371 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:51:19,371 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:51:19,371 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:51:19,371 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:51:19,371 [DEBUG][       Thread-600808][   transport.py][1871] : EOF in transport thread
2025-07-01 09:51:19,371 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:50:53', tmtdew=10.13, humidity=49.29, cloud=0.0, wind=40.86, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:50:55.478', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:51:19,455 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:51:19,466 [DEBUG][       Thread-600811][   transport.py][1871] : starting thread (client mode): 0x81e7ca0
2025-07-01 09:51:19,466 [DEBUG][       Thread-600811][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:51:19,481 [DEBUG][       Thread-600811][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:51:19,481 [ INFO][       Thread-600811][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:51:19,488 [DEBUG][       Thread-600811][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:51:19,489 [DEBUG][       Thread-600811][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:51:19,489 [DEBUG][       Thread-600811][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:51:19,489 [DEBUG][       Thread-600811][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:51:19,489 [DEBUG][       Thread-600811][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:51:19,489 [DEBUG][       Thread-600811][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:51:19,489 [DEBUG][       Thread-600811][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:51:19,489 [DEBUG][       Thread-600811][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:51:19,489 [DEBUG][       Thread-600811][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:51:19,489 [DEBUG][       Thread-600811][   transport.py][1871] : client lang: <none>
2025-07-01 09:51:19,489 [DEBUG][       Thread-600811][   transport.py][1871] : server lang: <none>
2025-07-01 09:51:19,489 [DEBUG][       Thread-600811][   transport.py][1871] : kex follows: False
2025-07-01 09:51:19,489 [DEBUG][       Thread-600811][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:51:19,489 [DEBUG][       Thread-600811][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:51:19,489 [DEBUG][       Thread-600811][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:51:19,489 [DEBUG][       Thread-600811][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:51:19,489 [DEBUG][       Thread-600811][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:51:19,489 [DEBUG][       Thread-600811][   transport.py][1871] : Compression: none
2025-07-01 09:51:19,489 [DEBUG][       Thread-600811][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:51:19,547 [DEBUG][       Thread-600811][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:51:19,548 [DEBUG][       Thread-600811][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:51:19,548 [DEBUG][       Thread-600811][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:51:19,549 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:51:19,549 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:51:19,608 [DEBUG][       Thread-600811][   transport.py][1871] : userauth is OK
2025-07-01 09:51:19,608 [DEBUG][       Thread-600811][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:51:19,608 [DEBUG][       Thread-600811][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:51:19,608 [DEBUG][       Thread-600811][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:51:19,608 [DEBUG][       Thread-600811][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:51:19,627 [ INFO][       Thread-600811][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:51:19,627 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:51:19,627 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:51:20,653 [DEBUG][       Thread-600811][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:51:20,654 [DEBUG][       Thread-600811][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:51:20,704 [DEBUG][       Thread-600811][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:51:20,704 [DEBUG][       Thread-600811][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:51:20,713 [DEBUG][       Thread-600811][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:51:20,722 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:51:20,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-07-01 09:51:20,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-07-01 09:51:20,741 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:51:20,741 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:51:20,742 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:51:20,750 [DEBUG][       Thread-600811][   transport.py][1871] : EOF in transport thread
2025-07-01 09:51:21,616 [DEBUG][Thread-600813 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:51:26,298 [DEBUG][Thread-600814 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:51:30,752 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:51:30,752 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:51:30,752 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:51:30,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-07-01 09:51:31,240 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 51, 25), 10.11, 49.38, 0.0, 31.34, 9.55, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:51:31,240 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:51:25
2025-07-01 09:51:31,323 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:51:31,330 [DEBUG][       Thread-600815][   transport.py][1871] : starting thread (client mode): 0x8154a90
2025-07-01 09:51:31,331 [DEBUG][       Thread-600815][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:51:31,351 [DEBUG][       Thread-600815][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:51:31,351 [ INFO][       Thread-600815][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:51:31,355 [DEBUG][       Thread-600815][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:51:31,355 [DEBUG][       Thread-600815][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:51:31,355 [DEBUG][       Thread-600815][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:51:31,355 [DEBUG][       Thread-600815][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:51:31,355 [DEBUG][       Thread-600815][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:51:31,355 [DEBUG][       Thread-600815][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:51:31,355 [DEBUG][       Thread-600815][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:51:31,355 [DEBUG][       Thread-600815][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:51:31,355 [DEBUG][       Thread-600815][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:51:31,355 [DEBUG][       Thread-600815][   transport.py][1871] : client lang: <none>
2025-07-01 09:51:31,355 [DEBUG][       Thread-600815][   transport.py][1871] : server lang: <none>
2025-07-01 09:51:31,355 [DEBUG][       Thread-600815][   transport.py][1871] : kex follows: False
2025-07-01 09:51:31,355 [DEBUG][       Thread-600815][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:51:31,355 [DEBUG][       Thread-600815][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:51:31,355 [DEBUG][       Thread-600815][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:51:31,355 [DEBUG][       Thread-600815][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:51:31,355 [DEBUG][       Thread-600815][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:51:31,355 [DEBUG][       Thread-600815][   transport.py][1871] : Compression: none
2025-07-01 09:51:31,355 [DEBUG][       Thread-600815][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:51:31,367 [DEBUG][       Thread-600815][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:51:31,367 [DEBUG][       Thread-600815][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:51:31,368 [DEBUG][       Thread-600815][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:51:31,368 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:51:31,368 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:51:31,370 [DEBUG][       Thread-600815][   transport.py][1871] : userauth is OK
2025-07-01 09:51:31,395 [ INFO][       Thread-600815][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:51:31,395 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:51:32,014 [DEBUG][       Thread-600815][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:51:32,015 [DEBUG][       Thread-600815][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:51:32,057 [DEBUG][       Thread-600815][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:51:32,057 [DEBUG][       Thread-600815][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:51:32,061 [DEBUG][       Thread-600815][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:51:32,073 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:51:32,073 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:51:32,075 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:51:32,077 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:51:32,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:51:32,083 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:51:32,083 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:51:32,084 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:51:32,084 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.327031 -999.00   +9.30  35.34     54   +0.70 1 1 2 1 1   887    0 9.94 42.42 ----- 35.3 35.3 20.7 52.9 12.6 -25.3 11.6 -24.9 10.7 -23.1 11.5 -23.4
2025-07-01 09:51:32,084 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:51:32,084 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:51:32,085 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.327031
2025-07-01 09:51:32,085 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:51:32,086 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:51:32,086 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:51:32,086 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:51:32,086 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:51:32,086 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:51:25', tmtdew=10.11, humidity=49.38, cloud=0.0, wind=31.34, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:50:55.478', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:51:32,087 [DEBUG][       Thread-600815][   transport.py][1871] : EOF in transport thread
2025-07-01 09:51:32,170 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:51:32,182 [DEBUG][       Thread-600818][   transport.py][1871] : starting thread (client mode): 0x8393f40
2025-07-01 09:51:32,182 [DEBUG][       Thread-600818][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:51:32,196 [DEBUG][       Thread-600818][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:51:32,196 [ INFO][       Thread-600818][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:51:32,206 [DEBUG][       Thread-600818][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:51:32,206 [DEBUG][       Thread-600818][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:51:32,206 [DEBUG][       Thread-600818][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:51:32,206 [DEBUG][       Thread-600818][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:51:32,206 [DEBUG][       Thread-600818][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:51:32,206 [DEBUG][       Thread-600818][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:51:32,206 [DEBUG][       Thread-600818][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:51:32,206 [DEBUG][       Thread-600818][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:51:32,206 [DEBUG][       Thread-600818][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:51:32,207 [DEBUG][       Thread-600818][   transport.py][1871] : client lang: <none>
2025-07-01 09:51:32,207 [DEBUG][       Thread-600818][   transport.py][1871] : server lang: <none>
2025-07-01 09:51:32,207 [DEBUG][       Thread-600818][   transport.py][1871] : kex follows: False
2025-07-01 09:51:32,207 [DEBUG][       Thread-600818][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:51:32,207 [DEBUG][       Thread-600818][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:51:32,207 [DEBUG][       Thread-600818][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:51:32,207 [DEBUG][       Thread-600818][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:51:32,207 [DEBUG][       Thread-600818][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:51:32,207 [DEBUG][       Thread-600818][   transport.py][1871] : Compression: none
2025-07-01 09:51:32,207 [DEBUG][       Thread-600818][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:51:32,263 [DEBUG][       Thread-600818][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:51:32,264 [DEBUG][       Thread-600818][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:51:32,264 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:51:32,265 [DEBUG][       Thread-600818][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:51:32,265 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:51:32,319 [DEBUG][       Thread-600818][   transport.py][1871] : userauth is OK
2025-07-01 09:51:32,320 [DEBUG][       Thread-600818][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:51:32,320 [DEBUG][       Thread-600818][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:51:32,320 [DEBUG][       Thread-600818][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:51:32,320 [DEBUG][       Thread-600818][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:51:32,339 [ INFO][       Thread-600818][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:51:32,339 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:51:32,340 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:51:33,310 [DEBUG][       Thread-600818][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:51:33,310 [DEBUG][       Thread-600818][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:51:33,360 [DEBUG][       Thread-600818][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:51:33,360 [DEBUG][       Thread-600818][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:51:33,370 [DEBUG][       Thread-600818][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:51:33,379 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:51:33,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-07-01 09:51:33,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-07-01 09:51:33,397 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:51:33,397 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:51:33,397 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:51:33,405 [DEBUG][       Thread-600818][   transport.py][1871] : EOF in transport thread
2025-07-01 09:51:35,318 [DEBUG][Thread-600820 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:51:43,408 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:51:43,408 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:51:43,408 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:51:43,411 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:51:43,891 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 51, 25), 10.11, 49.38, 0.0, 31.34, 9.55, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:51:43,891 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:51:25
2025-07-01 09:51:43,976 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:51:43,980 [DEBUG][       Thread-600821][   transport.py][1871] : starting thread (client mode): 0x8156cb0
2025-07-01 09:51:43,980 [DEBUG][       Thread-600821][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:51:44,000 [DEBUG][       Thread-600821][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:51:44,000 [ INFO][       Thread-600821][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:51:44,003 [DEBUG][       Thread-600821][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:51:44,003 [DEBUG][       Thread-600821][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:51:44,003 [DEBUG][       Thread-600821][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:51:44,003 [DEBUG][       Thread-600821][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:51:44,003 [DEBUG][       Thread-600821][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:51:44,003 [DEBUG][       Thread-600821][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:51:44,003 [DEBUG][       Thread-600821][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:51:44,003 [DEBUG][       Thread-600821][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:51:44,003 [DEBUG][       Thread-600821][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:51:44,003 [DEBUG][       Thread-600821][   transport.py][1871] : client lang: <none>
2025-07-01 09:51:44,003 [DEBUG][       Thread-600821][   transport.py][1871] : server lang: <none>
2025-07-01 09:51:44,003 [DEBUG][       Thread-600821][   transport.py][1871] : kex follows: False
2025-07-01 09:51:44,003 [DEBUG][       Thread-600821][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:51:44,003 [DEBUG][       Thread-600821][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:51:44,003 [DEBUG][       Thread-600821][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:51:44,003 [DEBUG][       Thread-600821][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:51:44,003 [DEBUG][       Thread-600821][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:51:44,003 [DEBUG][       Thread-600821][   transport.py][1871] : Compression: none
2025-07-01 09:51:44,003 [DEBUG][       Thread-600821][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:51:44,020 [DEBUG][       Thread-600821][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:51:44,020 [DEBUG][       Thread-600821][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:51:44,021 [DEBUG][       Thread-600821][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:51:44,021 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:51:44,021 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:51:44,022 [DEBUG][       Thread-600821][   transport.py][1871] : userauth is OK
2025-07-01 09:51:44,046 [ INFO][       Thread-600821][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:51:44,047 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:51:44,353 [DEBUG][Thread-600823 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:51:44,655 [DEBUG][       Thread-600821][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:51:44,655 [DEBUG][       Thread-600821][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:51:44,697 [DEBUG][       Thread-600821][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:51:44,697 [DEBUG][       Thread-600821][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:51:44,700 [DEBUG][       Thread-600821][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:51:44,710 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:51:44,711 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:51:44,713 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:51:44,715 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:51:44,721 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:51:44,723 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:51:44,723 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:51:44,723 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:51:44,724 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.327031 -999.00   +9.30  35.34     54   +0.70 1 1 2 1 1   887    0 9.94 42.42 ----- 35.3 35.3 20.7 52.9 12.6 -25.3 11.6 -24.9 10.7 -23.1 11.5 -23.4
2025-07-01 09:51:44,724 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:51:44,724 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:51:44,724 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.327031
2025-07-01 09:51:44,724 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:51:44,725 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:51:44,725 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:51:44,725 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:51:44,725 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:51:44,725 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:51:25', tmtdew=10.11, humidity=49.38, cloud=0.0, wind=31.34, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:50:55.478', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:51:44,726 [DEBUG][       Thread-600821][   transport.py][1871] : EOF in transport thread
2025-07-01 09:51:44,809 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:51:44,818 [DEBUG][       Thread-600825][   transport.py][1871] : starting thread (client mode): 0x81a78e0
2025-07-01 09:51:44,818 [DEBUG][       Thread-600825][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:51:44,833 [DEBUG][       Thread-600825][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:51:44,833 [ INFO][       Thread-600825][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:51:44,841 [DEBUG][       Thread-600825][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:51:44,841 [DEBUG][       Thread-600825][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:51:44,841 [DEBUG][       Thread-600825][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:51:44,841 [DEBUG][       Thread-600825][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:51:44,841 [DEBUG][       Thread-600825][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:51:44,841 [DEBUG][       Thread-600825][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:51:44,841 [DEBUG][       Thread-600825][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:51:44,841 [DEBUG][       Thread-600825][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:51:44,841 [DEBUG][       Thread-600825][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:51:44,841 [DEBUG][       Thread-600825][   transport.py][1871] : client lang: <none>
2025-07-01 09:51:44,841 [DEBUG][       Thread-600825][   transport.py][1871] : server lang: <none>
2025-07-01 09:51:44,841 [DEBUG][       Thread-600825][   transport.py][1871] : kex follows: False
2025-07-01 09:51:44,841 [DEBUG][       Thread-600825][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:51:44,841 [DEBUG][       Thread-600825][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:51:44,841 [DEBUG][       Thread-600825][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:51:44,841 [DEBUG][       Thread-600825][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:51:44,841 [DEBUG][       Thread-600825][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:51:44,841 [DEBUG][       Thread-600825][   transport.py][1871] : Compression: none
2025-07-01 09:51:44,842 [DEBUG][       Thread-600825][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:51:44,898 [DEBUG][       Thread-600825][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:51:44,899 [DEBUG][       Thread-600825][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:51:44,899 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:51:44,900 [DEBUG][       Thread-600825][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:51:44,901 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:51:44,961 [DEBUG][       Thread-600825][   transport.py][1871] : userauth is OK
2025-07-01 09:51:44,961 [DEBUG][       Thread-600825][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:51:44,961 [DEBUG][       Thread-600825][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:51:44,961 [DEBUG][       Thread-600825][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:51:44,961 [DEBUG][       Thread-600825][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:51:44,980 [ INFO][       Thread-600825][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:51:44,980 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:51:44,981 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:51:45,995 [DEBUG][       Thread-600825][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:51:45,995 [DEBUG][       Thread-600825][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:51:46,045 [DEBUG][       Thread-600825][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:51:46,045 [DEBUG][       Thread-600825][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:51:46,058 [DEBUG][       Thread-600825][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:51:46,069 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:51:46,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-07-01 09:51: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') -> 00000000
2025-07-01 09:51:46,094 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:51:46,094 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:51:46,094 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:51:46,102 [DEBUG][       Thread-600825][   transport.py][1871] : EOF in transport thread
2025-07-01 09:51:53,371 [DEBUG][Thread-600827 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:51:54,396 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:51:54,397 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:51:56,104 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:51:56,105 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:51:56,105 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:51:56,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-07-01 09:51:56,591 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 51, 25), 10.11, 49.38, 0.0, 31.34, 9.55, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:51:56,591 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:51:25
2025-07-01 09:51:56,675 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:51:56,681 [DEBUG][       Thread-600828][   transport.py][1871] : starting thread (client mode): 0x81710f0
2025-07-01 09:51:56,681 [DEBUG][       Thread-600828][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:51:56,702 [DEBUG][       Thread-600828][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:51:56,702 [ INFO][       Thread-600828][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:51:56,705 [DEBUG][       Thread-600828][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:51:56,706 [DEBUG][       Thread-600828][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:51:56,706 [DEBUG][       Thread-600828][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:51:56,706 [DEBUG][       Thread-600828][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:51:56,706 [DEBUG][       Thread-600828][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:51:56,706 [DEBUG][       Thread-600828][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:51:56,706 [DEBUG][       Thread-600828][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:51:56,706 [DEBUG][       Thread-600828][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:51:56,706 [DEBUG][       Thread-600828][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:51:56,706 [DEBUG][       Thread-600828][   transport.py][1871] : client lang: <none>
2025-07-01 09:51:56,706 [DEBUG][       Thread-600828][   transport.py][1871] : server lang: <none>
2025-07-01 09:51:56,706 [DEBUG][       Thread-600828][   transport.py][1871] : kex follows: False
2025-07-01 09:51:56,706 [DEBUG][       Thread-600828][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:51:56,706 [DEBUG][       Thread-600828][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:51:56,706 [DEBUG][       Thread-600828][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:51:56,706 [DEBUG][       Thread-600828][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:51:56,706 [DEBUG][       Thread-600828][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:51:56,706 [DEBUG][       Thread-600828][   transport.py][1871] : Compression: none
2025-07-01 09:51:56,706 [DEBUG][       Thread-600828][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:51:56,722 [DEBUG][       Thread-600828][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:51:56,723 [DEBUG][       Thread-600828][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:51:56,723 [DEBUG][       Thread-600828][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:51:56,723 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:51:56,724 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:51:56,725 [DEBUG][       Thread-600828][   transport.py][1871] : userauth is OK
2025-07-01 09:51:56,739 [ INFO][       Thread-600828][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:51:56,740 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:51:57,388 [DEBUG][       Thread-600828][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:51:57,388 [DEBUG][       Thread-600828][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:51:57,429 [DEBUG][       Thread-600828][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:51:57,429 [DEBUG][       Thread-600828][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:51:57,432 [DEBUG][       Thread-600828][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:51:57,445 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:51:57,445 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:51:57,447 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:51:57,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:51:57,454 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:51:57,456 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:51:57,456 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:51:57,457 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:51:57,457 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.327378 -999.00   +9.40  38.92     54   +0.70 1 1 2 1 1   887    0 9.82 40.01 ----- 38.9 38.9 21.2 55.4 12.5 -23.5 11.6 -24.4 10.7 -23.3 11.6 -22.3
2025-07-01 09:51:57,457 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:51:57,457 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:51:57,457 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.327378
2025-07-01 09:51:57,458 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:51:57,459 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:51:57,459 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:51:57,459 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:51:57,459 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:51:57,459 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:51:25', tmtdew=10.11, humidity=49.38, cloud=0.0, wind=31.34, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:51:25.459', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:51:57,459 [DEBUG][       Thread-600828][   transport.py][1871] : EOF in transport thread
2025-07-01 09:51:57,542 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:51:57,557 [DEBUG][       Thread-600831][   transport.py][1871] : starting thread (client mode): 0x818d780
2025-07-01 09:51:57,557 [DEBUG][       Thread-600831][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:51:57,573 [DEBUG][       Thread-600831][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:51:57,573 [ INFO][       Thread-600831][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:51:57,581 [DEBUG][       Thread-600831][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:51:57,581 [DEBUG][       Thread-600831][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:51:57,581 [DEBUG][       Thread-600831][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:51:57,581 [DEBUG][       Thread-600831][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:51:57,582 [DEBUG][       Thread-600831][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:51:57,582 [DEBUG][       Thread-600831][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:51:57,582 [DEBUG][       Thread-600831][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:51:57,582 [DEBUG][       Thread-600831][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:51:57,582 [DEBUG][       Thread-600831][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:51:57,582 [DEBUG][       Thread-600831][   transport.py][1871] : client lang: <none>
2025-07-01 09:51:57,582 [DEBUG][       Thread-600831][   transport.py][1871] : server lang: <none>
2025-07-01 09:51:57,582 [DEBUG][       Thread-600831][   transport.py][1871] : kex follows: False
2025-07-01 09:51:57,582 [DEBUG][       Thread-600831][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:51:57,582 [DEBUG][       Thread-600831][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:51:57,582 [DEBUG][       Thread-600831][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:51:57,582 [DEBUG][       Thread-600831][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:51:57,582 [DEBUG][       Thread-600831][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:51:57,582 [DEBUG][       Thread-600831][   transport.py][1871] : Compression: none
2025-07-01 09:51:57,582 [DEBUG][       Thread-600831][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:51:57,639 [DEBUG][       Thread-600831][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:51:57,640 [DEBUG][       Thread-600831][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:51:57,640 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:51:57,641 [DEBUG][       Thread-600831][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:51:57,642 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:51:57,695 [DEBUG][       Thread-600831][   transport.py][1871] : userauth is OK
2025-07-01 09:51:57,695 [DEBUG][       Thread-600831][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:51:57,695 [DEBUG][       Thread-600831][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:51:57,695 [DEBUG][       Thread-600831][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:51:57,696 [DEBUG][       Thread-600831][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:51:57,717 [ INFO][       Thread-600831][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:51:57,718 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:51:57,718 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:51:58,742 [DEBUG][       Thread-600831][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:51:58,742 [DEBUG][       Thread-600831][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:51:58,792 [DEBUG][       Thread-600831][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:51:58,792 [DEBUG][       Thread-600831][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:51:58,801 [DEBUG][       Thread-600831][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:51:58,809 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:51:58,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-07-01 09:51:58,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-07-01 09:51:58,825 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:51:58,825 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:51:58,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:51:58,833 [DEBUG][       Thread-600831][   transport.py][1871] : EOF in transport thread
2025-07-01 09:52:02,391 [DEBUG][Thread-600833 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:52:08,835 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:52:08,836 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:52:08,836 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:52:08,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-07-01 09:52:09,303 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 51, 57), 10.13, 49.34, 0.0, 35.5, 9.62, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:52:09,303 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:51:57
2025-07-01 09:52:09,386 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:52:09,390 [DEBUG][       Thread-600834][   transport.py][1871] : starting thread (client mode): 0x82b1d20
2025-07-01 09:52:09,390 [DEBUG][       Thread-600834][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:52:09,412 [DEBUG][       Thread-600834][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:52:09,412 [ INFO][       Thread-600834][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:52:09,415 [DEBUG][       Thread-600834][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:52:09,415 [DEBUG][       Thread-600834][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:52:09,416 [DEBUG][       Thread-600834][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:52:09,416 [DEBUG][       Thread-600834][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:52:09,416 [DEBUG][       Thread-600834][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:52:09,416 [DEBUG][       Thread-600834][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:52:09,416 [DEBUG][       Thread-600834][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:52:09,416 [DEBUG][       Thread-600834][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:52:09,416 [DEBUG][       Thread-600834][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:52:09,416 [DEBUG][       Thread-600834][   transport.py][1871] : client lang: <none>
2025-07-01 09:52:09,416 [DEBUG][       Thread-600834][   transport.py][1871] : server lang: <none>
2025-07-01 09:52:09,416 [DEBUG][       Thread-600834][   transport.py][1871] : kex follows: False
2025-07-01 09:52:09,416 [DEBUG][       Thread-600834][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:52:09,416 [DEBUG][       Thread-600834][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:52:09,416 [DEBUG][       Thread-600834][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:52:09,416 [DEBUG][       Thread-600834][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:52:09,416 [DEBUG][       Thread-600834][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:52:09,416 [DEBUG][       Thread-600834][   transport.py][1871] : Compression: none
2025-07-01 09:52:09,416 [DEBUG][       Thread-600834][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:52:09,435 [DEBUG][       Thread-600834][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:52:09,435 [DEBUG][       Thread-600834][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:52:09,436 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:52:09,436 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:52:09,436 [DEBUG][       Thread-600834][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:52:09,437 [DEBUG][       Thread-600834][   transport.py][1871] : userauth is OK
2025-07-01 09:52:09,450 [ INFO][       Thread-600834][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:52:09,451 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:52:10,096 [DEBUG][       Thread-600834][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:52:10,097 [DEBUG][       Thread-600834][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:52:10,141 [DEBUG][       Thread-600834][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:52:10,141 [DEBUG][       Thread-600834][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:52:10,145 [DEBUG][       Thread-600834][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:52:10,157 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:52:10,157 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:52:10,159 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:52:10,161 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:52:10,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:52:10,168 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:52:10,168 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:52:10,169 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:52:10,169 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.327378 -999.00   +9.40  38.92     54   +0.70 1 1 2 1 1   887    0 9.82 40.01 ----- 38.9 38.9 21.2 55.4 12.5 -23.5 11.6 -24.4 10.7 -23.3 11.6 -22.3
2025-07-01 09:52:10,169 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:52:10,169 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:52:10,170 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.327378
2025-07-01 09:52:10,170 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:52:10,171 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:52:10,171 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:52:10,171 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:52:10,171 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:52:10,171 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:51:57', tmtdew=10.13, humidity=49.34, cloud=0.0, wind=35.5, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:51:25.459', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:52:10,171 [DEBUG][       Thread-600834][   transport.py][1871] : EOF in transport thread
2025-07-01 09:52:10,255 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:52:10,265 [DEBUG][       Thread-600837][   transport.py][1871] : starting thread (client mode): 0x75aa5c0
2025-07-01 09:52:10,265 [DEBUG][       Thread-600837][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:52:10,280 [DEBUG][       Thread-600837][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:52:10,280 [ INFO][       Thread-600837][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:52:10,288 [DEBUG][       Thread-600837][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:52:10,288 [DEBUG][       Thread-600837][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:52:10,288 [DEBUG][       Thread-600837][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:52:10,288 [DEBUG][       Thread-600837][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:52:10,288 [DEBUG][       Thread-600837][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:52:10,288 [DEBUG][       Thread-600837][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:52:10,288 [DEBUG][       Thread-600837][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:52:10,288 [DEBUG][       Thread-600837][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:52:10,288 [DEBUG][       Thread-600837][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:52:10,288 [DEBUG][       Thread-600837][   transport.py][1871] : client lang: <none>
2025-07-01 09:52:10,288 [DEBUG][       Thread-600837][   transport.py][1871] : server lang: <none>
2025-07-01 09:52:10,288 [DEBUG][       Thread-600837][   transport.py][1871] : kex follows: False
2025-07-01 09:52:10,288 [DEBUG][       Thread-600837][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:52:10,288 [DEBUG][       Thread-600837][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:52:10,289 [DEBUG][       Thread-600837][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:52:10,289 [DEBUG][       Thread-600837][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:52:10,289 [DEBUG][       Thread-600837][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:52:10,289 [DEBUG][       Thread-600837][   transport.py][1871] : Compression: none
2025-07-01 09:52:10,289 [DEBUG][       Thread-600837][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:52:10,347 [DEBUG][       Thread-600837][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:52:10,347 [DEBUG][       Thread-600837][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:52:10,348 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:52:10,348 [DEBUG][       Thread-600837][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:52:10,349 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:52:10,403 [DEBUG][       Thread-600837][   transport.py][1871] : userauth is OK
2025-07-01 09:52:10,403 [DEBUG][       Thread-600837][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:52:10,403 [DEBUG][       Thread-600837][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:52:10,404 [DEBUG][       Thread-600837][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:52:10,404 [DEBUG][       Thread-600837][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:52:10,422 [ INFO][       Thread-600837][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:52:10,423 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:52:10,423 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:52:11,413 [DEBUG][Thread-600839 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:52:11,449 [DEBUG][       Thread-600837][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:52:11,449 [DEBUG][       Thread-600837][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:52:11,500 [DEBUG][       Thread-600837][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:52:11,500 [DEBUG][       Thread-600837][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:52:11,509 [DEBUG][       Thread-600837][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:52:11,518 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:52:11,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-07-01 09:52:11,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-07-01 09:52:11,541 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:52:11,541 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:52:11,541 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:52:11,552 [DEBUG][       Thread-600837][   transport.py][1871] : EOF in transport thread
2025-07-01 09:52:20,447 [DEBUG][Thread-600840 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:52:21,552 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:52:21,552 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:52:21,552 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:52:21,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-07-01 09:52:21,662 [DEBUG][Thread-600841 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:52:22,033 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 51, 57), 10.13, 49.34, 0.0, 35.5, 9.62, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:52:22,033 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:51:57
2025-07-01 09:52:22,117 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:52:22,121 [DEBUG][       Thread-600842][   transport.py][1871] : starting thread (client mode): 0x75aae00
2025-07-01 09:52:22,121 [DEBUG][       Thread-600842][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:52:22,142 [DEBUG][       Thread-600842][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:52:22,142 [ INFO][       Thread-600842][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:52:22,145 [DEBUG][       Thread-600842][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:52:22,145 [DEBUG][       Thread-600842][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:52:22,145 [DEBUG][       Thread-600842][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:52:22,145 [DEBUG][       Thread-600842][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:52:22,145 [DEBUG][       Thread-600842][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:52:22,145 [DEBUG][       Thread-600842][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:52:22,145 [DEBUG][       Thread-600842][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:52:22,145 [DEBUG][       Thread-600842][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:52:22,145 [DEBUG][       Thread-600842][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:52:22,145 [DEBUG][       Thread-600842][   transport.py][1871] : client lang: <none>
2025-07-01 09:52:22,145 [DEBUG][       Thread-600842][   transport.py][1871] : server lang: <none>
2025-07-01 09:52:22,145 [DEBUG][       Thread-600842][   transport.py][1871] : kex follows: False
2025-07-01 09:52:22,145 [DEBUG][       Thread-600842][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:52:22,145 [DEBUG][       Thread-600842][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:52:22,145 [DEBUG][       Thread-600842][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:52:22,145 [DEBUG][       Thread-600842][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:52:22,145 [DEBUG][       Thread-600842][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:52:22,146 [DEBUG][       Thread-600842][   transport.py][1871] : Compression: none
2025-07-01 09:52:22,146 [DEBUG][       Thread-600842][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:52:22,162 [DEBUG][       Thread-600842][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:52:22,162 [DEBUG][       Thread-600842][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:52:22,163 [DEBUG][       Thread-600842][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:52:22,163 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:52:22,163 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:52:22,164 [DEBUG][       Thread-600842][   transport.py][1871] : userauth is OK
2025-07-01 09:52:22,178 [ INFO][       Thread-600842][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:52:22,178 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:52:22,779 [DEBUG][       Thread-600842][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:52:22,779 [DEBUG][       Thread-600842][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:52:22,821 [DEBUG][       Thread-600842][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:52:22,821 [DEBUG][       Thread-600842][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:52:22,824 [DEBUG][       Thread-600842][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:52:22,835 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:52:22,836 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:52:22,838 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:52:22,839 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:52:22,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:52:22,845 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:52:22,845 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:52:22,846 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:52:22,846 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.327378 -999.00   +9.40  38.92     54   +0.70 1 1 2 1 1   887    0 9.82 40.01 ----- 38.9 38.9 21.2 55.4 12.5 -23.5 11.6 -24.4 10.7 -23.3 11.6 -22.3
2025-07-01 09:52:22,846 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:52:22,846 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:52:22,846 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.327378
2025-07-01 09:52:22,847 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:52:22,847 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:52:22,847 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:52:22,847 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:52:22,847 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:52:22,848 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:51:57', tmtdew=10.13, humidity=49.34, cloud=0.0, wind=35.5, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:51:25.459', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:52:22,848 [DEBUG][       Thread-600842][   transport.py][1871] : EOF in transport thread
2025-07-01 09:52:22,931 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:52:22,943 [DEBUG][       Thread-600845][   transport.py][1871] : starting thread (client mode): 0x83c8400
2025-07-01 09:52:22,943 [DEBUG][       Thread-600845][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:52:22,959 [DEBUG][       Thread-600845][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:52:22,959 [ INFO][       Thread-600845][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:52:22,972 [DEBUG][       Thread-600845][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:52:22,972 [DEBUG][       Thread-600845][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:52:22,972 [DEBUG][       Thread-600845][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:52:22,972 [DEBUG][       Thread-600845][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:52:22,972 [DEBUG][       Thread-600845][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:52:22,972 [DEBUG][       Thread-600845][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:52:22,972 [DEBUG][       Thread-600845][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:52:22,972 [DEBUG][       Thread-600845][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:52:22,972 [DEBUG][       Thread-600845][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:52:22,972 [DEBUG][       Thread-600845][   transport.py][1871] : client lang: <none>
2025-07-01 09:52:22,972 [DEBUG][       Thread-600845][   transport.py][1871] : server lang: <none>
2025-07-01 09:52:22,973 [DEBUG][       Thread-600845][   transport.py][1871] : kex follows: False
2025-07-01 09:52:22,973 [DEBUG][       Thread-600845][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:52:22,973 [DEBUG][       Thread-600845][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:52:22,973 [DEBUG][       Thread-600845][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:52:22,973 [DEBUG][       Thread-600845][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:52:22,973 [DEBUG][       Thread-600845][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:52:22,973 [DEBUG][       Thread-600845][   transport.py][1871] : Compression: none
2025-07-01 09:52:22,973 [DEBUG][       Thread-600845][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:52:23,029 [DEBUG][       Thread-600845][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:52:23,030 [DEBUG][       Thread-600845][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:52:23,030 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:52:23,031 [DEBUG][       Thread-600845][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:52:23,031 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:52:23,087 [DEBUG][       Thread-600845][   transport.py][1871] : userauth is OK
2025-07-01 09:52:23,087 [DEBUG][       Thread-600845][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:52:23,088 [DEBUG][       Thread-600845][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:52:23,088 [DEBUG][       Thread-600845][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:52:23,088 [DEBUG][       Thread-600845][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:52:23,107 [ INFO][       Thread-600845][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:52:23,107 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:52:23,108 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:52:24,129 [DEBUG][       Thread-600845][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:52:24,129 [DEBUG][       Thread-600845][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:52:24,181 [DEBUG][       Thread-600845][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:52:24,181 [DEBUG][       Thread-600845][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:52:24,190 [DEBUG][       Thread-600845][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:52:24,200 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:52:24,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-07-01 09:52:24,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-07-01 09:52:24,231 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:52:24,231 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:52:24,232 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:52:24,240 [DEBUG][       Thread-600845][   transport.py][1871] : EOF in transport thread
2025-07-01 09:52:29,467 [DEBUG][Thread-600847 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:52:34,242 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:52:34,242 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:52:34,243 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:52:34,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-07-01 09:52:34,724 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 52, 29), 10.13, 49.21, 0.0, 41.16, 9.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:52:34,725 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:52:29
2025-07-01 09:52:34,809 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:52:34,815 [DEBUG][       Thread-600848][   transport.py][1871] : starting thread (client mode): 0x82b2b00
2025-07-01 09:52:34,815 [DEBUG][       Thread-600848][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:52:34,835 [DEBUG][       Thread-600848][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:52:34,835 [ INFO][       Thread-600848][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:52:34,837 [DEBUG][       Thread-600848][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:52:34,837 [DEBUG][       Thread-600848][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:52:34,837 [DEBUG][       Thread-600848][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:52:34,837 [DEBUG][       Thread-600848][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:52:34,837 [DEBUG][       Thread-600848][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:52:34,837 [DEBUG][       Thread-600848][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:52:34,837 [DEBUG][       Thread-600848][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:52:34,837 [DEBUG][       Thread-600848][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:52:34,837 [DEBUG][       Thread-600848][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:52:34,837 [DEBUG][       Thread-600848][   transport.py][1871] : client lang: <none>
2025-07-01 09:52:34,837 [DEBUG][       Thread-600848][   transport.py][1871] : server lang: <none>
2025-07-01 09:52:34,837 [DEBUG][       Thread-600848][   transport.py][1871] : kex follows: False
2025-07-01 09:52:34,837 [DEBUG][       Thread-600848][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:52:34,837 [DEBUG][       Thread-600848][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:52:34,837 [DEBUG][       Thread-600848][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:52:34,837 [DEBUG][       Thread-600848][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:52:34,837 [DEBUG][       Thread-600848][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:52:34,837 [DEBUG][       Thread-600848][   transport.py][1871] : Compression: none
2025-07-01 09:52:34,837 [DEBUG][       Thread-600848][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:52:34,857 [DEBUG][       Thread-600848][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:52:34,857 [DEBUG][       Thread-600848][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:52:34,858 [DEBUG][       Thread-600848][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:52:34,858 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:52:34,858 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:52:34,859 [DEBUG][       Thread-600848][   transport.py][1871] : userauth is OK
2025-07-01 09:52:34,884 [ INFO][       Thread-600848][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:52:34,885 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:52:35,541 [DEBUG][       Thread-600848][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:52:35,542 [DEBUG][       Thread-600848][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:52:35,585 [DEBUG][       Thread-600848][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:52:35,585 [DEBUG][       Thread-600848][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:52:35,589 [DEBUG][       Thread-600848][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:52:35,603 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:52:35,603 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:52:35,605 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:52:35,608 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:52:35,613 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:52:35,615 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:52:35,615 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:52:35,616 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:52:35,616 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.327725 -999.00   +9.30  35.11     54   +0.60 1 1 2 1 1   887    0 9.66 37.66 ----- 35.1 35.1 15.8 50.8 12.4 -24.0 11.5 -23.3 10.7 -22.9 11.5 -23.4
2025-07-01 09:52:35,616 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:52:35,616 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:52:35,616 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.327725
2025-07-01 09:52:35,617 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:52:35,617 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:52:35,618 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:52:35,618 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:52:35,618 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:52:35,618 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:52:29', tmtdew=10.13, humidity=49.21, cloud=0.0, wind=41.16, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:51:55.440', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:52:35,619 [DEBUG][       Thread-600848][   transport.py][1871] : EOF in transport thread
2025-07-01 09:52:35,701 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:52:35,713 [DEBUG][       Thread-600851][   transport.py][1871] : starting thread (client mode): 0x8106230
2025-07-01 09:52:35,713 [DEBUG][       Thread-600851][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:52:35,728 [DEBUG][       Thread-600851][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:52:35,728 [ INFO][       Thread-600851][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:52:35,736 [DEBUG][       Thread-600851][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:52:35,736 [DEBUG][       Thread-600851][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:52:35,736 [DEBUG][       Thread-600851][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:52:35,736 [DEBUG][       Thread-600851][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:52:35,736 [DEBUG][       Thread-600851][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:52:35,736 [DEBUG][       Thread-600851][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:52:35,736 [DEBUG][       Thread-600851][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:52:35,736 [DEBUG][       Thread-600851][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:52:35,736 [DEBUG][       Thread-600851][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:52:35,736 [DEBUG][       Thread-600851][   transport.py][1871] : client lang: <none>
2025-07-01 09:52:35,736 [DEBUG][       Thread-600851][   transport.py][1871] : server lang: <none>
2025-07-01 09:52:35,737 [DEBUG][       Thread-600851][   transport.py][1871] : kex follows: False
2025-07-01 09:52:35,737 [DEBUG][       Thread-600851][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:52:35,737 [DEBUG][       Thread-600851][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:52:35,737 [DEBUG][       Thread-600851][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:52:35,737 [DEBUG][       Thread-600851][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:52:35,737 [DEBUG][       Thread-600851][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:52:35,737 [DEBUG][       Thread-600851][   transport.py][1871] : Compression: none
2025-07-01 09:52:35,737 [DEBUG][       Thread-600851][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:52:35,800 [DEBUG][       Thread-600851][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:52:35,801 [DEBUG][       Thread-600851][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:52:35,801 [DEBUG][       Thread-600851][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:52:35,801 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:52:35,802 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:52:35,860 [DEBUG][       Thread-600851][   transport.py][1871] : userauth is OK
2025-07-01 09:52:35,860 [DEBUG][       Thread-600851][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:52:35,860 [DEBUG][       Thread-600851][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:52:35,860 [DEBUG][       Thread-600851][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:52:35,860 [DEBUG][       Thread-600851][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:52:35,879 [ INFO][       Thread-600851][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:52:35,879 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:52:35,880 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:52:36,906 [DEBUG][       Thread-600851][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:52:36,906 [DEBUG][       Thread-600851][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:52:36,956 [DEBUG][       Thread-600851][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:52:36,956 [DEBUG][       Thread-600851][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:52:36,970 [DEBUG][       Thread-600851][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:52:36,979 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:52:36,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-07-01 09:52:36,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-07-01 09:52:36,998 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:52:36,998 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:52:36,998 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:52:37,008 [DEBUG][       Thread-600851][   transport.py][1871] : EOF in transport thread
2025-07-01 09:52:38,487 [DEBUG][Thread-600853 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:52:47,002 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:52:47,002 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:52:47,002 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:52:47,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-07-01 09:52:47,483 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 52, 29), 10.13, 49.21, 0.0, 41.16, 9.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:52:47,483 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:52:29
2025-07-01 09:52:47,523 [DEBUG][Thread-600854 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:52:47,567 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:52:47,571 [DEBUG][       Thread-600855][   transport.py][1871] : starting thread (client mode): 0x75ab880
2025-07-01 09:52:47,571 [DEBUG][       Thread-600855][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:52:47,593 [DEBUG][       Thread-600855][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:52:47,593 [ INFO][       Thread-600855][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:52:47,595 [DEBUG][       Thread-600855][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:52:47,595 [DEBUG][       Thread-600855][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:52:47,595 [DEBUG][       Thread-600855][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:52:47,595 [DEBUG][       Thread-600855][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:52:47,595 [DEBUG][       Thread-600855][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:52:47,595 [DEBUG][       Thread-600855][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:52:47,595 [DEBUG][       Thread-600855][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:52:47,595 [DEBUG][       Thread-600855][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:52:47,595 [DEBUG][       Thread-600855][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:52:47,595 [DEBUG][       Thread-600855][   transport.py][1871] : client lang: <none>
2025-07-01 09:52:47,595 [DEBUG][       Thread-600855][   transport.py][1871] : server lang: <none>
2025-07-01 09:52:47,595 [DEBUG][       Thread-600855][   transport.py][1871] : kex follows: False
2025-07-01 09:52:47,595 [DEBUG][       Thread-600855][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:52:47,595 [DEBUG][       Thread-600855][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:52:47,595 [DEBUG][       Thread-600855][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:52:47,595 [DEBUG][       Thread-600855][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:52:47,595 [DEBUG][       Thread-600855][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:52:47,595 [DEBUG][       Thread-600855][   transport.py][1871] : Compression: none
2025-07-01 09:52:47,595 [DEBUG][       Thread-600855][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:52:47,611 [DEBUG][       Thread-600855][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:52:47,612 [DEBUG][       Thread-600855][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:52:47,612 [DEBUG][       Thread-600855][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:52:47,613 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:52:47,613 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:52:47,614 [DEBUG][       Thread-600855][   transport.py][1871] : userauth is OK
2025-07-01 09:52:47,627 [ INFO][       Thread-600855][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:52:47,628 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:52:48,288 [DEBUG][       Thread-600855][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:52:48,288 [DEBUG][       Thread-600855][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:52:48,329 [DEBUG][       Thread-600855][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:52:48,329 [DEBUG][       Thread-600855][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:52:48,333 [DEBUG][       Thread-600855][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:52:48,345 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:52:48,346 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:52:48,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:52:48,349 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:52:48,354 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:52:48,356 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:52:48,356 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:52:48,357 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:52:48,357 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.327725 -999.00   +9.30  35.11     54   +0.60 1 1 2 1 1   887    0 9.66 37.66 ----- 35.1 35.1 15.8 50.8 12.4 -24.0 11.5 -23.3 10.7 -22.9 11.5 -23.4
2025-07-01 09:52:48,357 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:52:48,357 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:52:48,357 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.327725
2025-07-01 09:52:48,358 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:52:48,358 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:52:48,358 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:52:48,358 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:52:48,358 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:52:48,358 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:52:29', tmtdew=10.13, humidity=49.21, cloud=0.0, wind=41.16, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:51:55.440', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:52:48,360 [DEBUG][       Thread-600855][   transport.py][1871] : EOF in transport thread
2025-07-01 09:52:48,442 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:52:48,451 [DEBUG][       Thread-600858][   transport.py][1871] : starting thread (client mode): 0x81a7430
2025-07-01 09:52:48,451 [DEBUG][       Thread-600858][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:52:48,466 [DEBUG][       Thread-600858][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:52:48,466 [ INFO][       Thread-600858][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:52:48,474 [DEBUG][       Thread-600858][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:52:48,474 [DEBUG][       Thread-600858][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:52:48,474 [DEBUG][       Thread-600858][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:52:48,474 [DEBUG][       Thread-600858][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:52:48,474 [DEBUG][       Thread-600858][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:52:48,474 [DEBUG][       Thread-600858][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:52:48,474 [DEBUG][       Thread-600858][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:52:48,474 [DEBUG][       Thread-600858][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:52:48,474 [DEBUG][       Thread-600858][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:52:48,474 [DEBUG][       Thread-600858][   transport.py][1871] : client lang: <none>
2025-07-01 09:52:48,474 [DEBUG][       Thread-600858][   transport.py][1871] : server lang: <none>
2025-07-01 09:52:48,474 [DEBUG][       Thread-600858][   transport.py][1871] : kex follows: False
2025-07-01 09:52:48,474 [DEBUG][       Thread-600858][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:52:48,474 [DEBUG][       Thread-600858][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:52:48,474 [DEBUG][       Thread-600858][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:52:48,474 [DEBUG][       Thread-600858][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:52:48,474 [DEBUG][       Thread-600858][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:52:48,474 [DEBUG][       Thread-600858][   transport.py][1871] : Compression: none
2025-07-01 09:52:48,474 [DEBUG][       Thread-600858][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:52:48,531 [DEBUG][       Thread-600858][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:52:48,531 [DEBUG][       Thread-600858][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:52:48,532 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:52:48,532 [DEBUG][       Thread-600858][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:52:48,533 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:52:48,593 [DEBUG][       Thread-600858][   transport.py][1871] : userauth is OK
2025-07-01 09:52:48,594 [DEBUG][       Thread-600858][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:52:48,594 [DEBUG][       Thread-600858][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:52:48,594 [DEBUG][       Thread-600858][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:52:48,594 [DEBUG][       Thread-600858][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:52:48,612 [ INFO][       Thread-600858][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:52:48,613 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:52:48,613 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:52:49,638 [DEBUG][       Thread-600858][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:52:49,638 [DEBUG][       Thread-600858][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:52:49,688 [DEBUG][       Thread-600858][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:52:49,688 [DEBUG][       Thread-600858][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:52:49,697 [DEBUG][       Thread-600858][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:52:49,706 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:52:49,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-07-01 09:52:49,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-07-01 09:52:49,725 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:52:49,725 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:52:49,726 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:52:49,734 [DEBUG][       Thread-600858][   transport.py][1871] : EOF in transport thread
2025-07-01 09:52:54,534 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:52:54,536 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:52:56,545 [DEBUG][Thread-600860 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:52:59,728 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:52:59,728 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:52:59,728 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:52:59,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-07-01 09:53:00,210 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 52, 29), 10.13, 49.21, 0.0, 41.16, 9.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:53:00,210 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:52:29
2025-07-01 09:53:00,293 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:53:00,299 [DEBUG][       Thread-600861][   transport.py][1871] : starting thread (client mode): 0x75aac80
2025-07-01 09:53:00,299 [DEBUG][       Thread-600861][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:53:00,312 [DEBUG][       Thread-600861][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:53:00,312 [ INFO][       Thread-600861][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:53:00,314 [DEBUG][       Thread-600861][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:53:00,314 [DEBUG][       Thread-600861][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:53:00,314 [DEBUG][       Thread-600861][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:53:00,314 [DEBUG][       Thread-600861][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:53:00,314 [DEBUG][       Thread-600861][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:53:00,314 [DEBUG][       Thread-600861][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:53:00,314 [DEBUG][       Thread-600861][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:53:00,314 [DEBUG][       Thread-600861][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:53:00,314 [DEBUG][       Thread-600861][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:53:00,314 [DEBUG][       Thread-600861][   transport.py][1871] : client lang: <none>
2025-07-01 09:53:00,314 [DEBUG][       Thread-600861][   transport.py][1871] : server lang: <none>
2025-07-01 09:53:00,314 [DEBUG][       Thread-600861][   transport.py][1871] : kex follows: False
2025-07-01 09:53:00,314 [DEBUG][       Thread-600861][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:53:00,314 [DEBUG][       Thread-600861][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:53:00,314 [DEBUG][       Thread-600861][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:53:00,314 [DEBUG][       Thread-600861][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:53:00,314 [DEBUG][       Thread-600861][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:53:00,314 [DEBUG][       Thread-600861][   transport.py][1871] : Compression: none
2025-07-01 09:53:00,314 [DEBUG][       Thread-600861][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:53:00,329 [DEBUG][       Thread-600861][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:53:00,329 [DEBUG][       Thread-600861][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:53:00,330 [DEBUG][       Thread-600861][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:53:00,330 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:53:00,330 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:53:00,331 [DEBUG][       Thread-600861][   transport.py][1871] : userauth is OK
2025-07-01 09:53:00,344 [ INFO][       Thread-600861][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:53:00,345 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:53:00,959 [DEBUG][       Thread-600861][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:53:00,959 [DEBUG][       Thread-600861][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:53:01,001 [DEBUG][       Thread-600861][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:53:01,001 [DEBUG][       Thread-600861][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:53:01,004 [DEBUG][       Thread-600861][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:53:01,016 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:53:01,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:53:01,018 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:53:01,020 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:53:01,025 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:53:01,027 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:53:01,027 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:53:01,027 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:53:01,028 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.328072 -999.00   +9.30  32.20     54   +0.60 1 1 2 1 1   887    0 9.57 34.71 ----- 32.2 32.2 18.5 53.7 12.4 -24.4 11.5 -24.8 10.7 -23.2 11.5 -22.3
2025-07-01 09:53:01,028 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:53:01,028 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:53:01,028 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.328072
2025-07-01 09:53:01,028 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:53:01,029 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:53:01,029 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:53:01,029 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:53:01,029 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:53:01,029 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:52:29', tmtdew=10.13, humidity=49.21, cloud=0.0, wind=41.16, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:52:25.421', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:53:01,030 [DEBUG][       Thread-600861][   transport.py][1871] : EOF in transport thread
2025-07-01 09:53:01,113 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:53:01,124 [DEBUG][       Thread-600864][   transport.py][1871] : starting thread (client mode): 0x81e6260
2025-07-01 09:53:01,124 [DEBUG][       Thread-600864][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:53:01,139 [DEBUG][       Thread-600864][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:53:01,139 [ INFO][       Thread-600864][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:53:01,147 [DEBUG][       Thread-600864][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:53:01,147 [DEBUG][       Thread-600864][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:53:01,147 [DEBUG][       Thread-600864][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:53:01,147 [DEBUG][       Thread-600864][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:53:01,147 [DEBUG][       Thread-600864][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:53:01,147 [DEBUG][       Thread-600864][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:53:01,147 [DEBUG][       Thread-600864][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:53:01,147 [DEBUG][       Thread-600864][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:53:01,147 [DEBUG][       Thread-600864][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:53:01,147 [DEBUG][       Thread-600864][   transport.py][1871] : client lang: <none>
2025-07-01 09:53:01,147 [DEBUG][       Thread-600864][   transport.py][1871] : server lang: <none>
2025-07-01 09:53:01,147 [DEBUG][       Thread-600864][   transport.py][1871] : kex follows: False
2025-07-01 09:53:01,147 [DEBUG][       Thread-600864][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:53:01,147 [DEBUG][       Thread-600864][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:53:01,147 [DEBUG][       Thread-600864][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:53:01,147 [DEBUG][       Thread-600864][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:53:01,147 [DEBUG][       Thread-600864][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:53:01,147 [DEBUG][       Thread-600864][   transport.py][1871] : Compression: none
2025-07-01 09:53:01,147 [DEBUG][       Thread-600864][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:53:01,203 [DEBUG][       Thread-600864][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:53:01,204 [DEBUG][       Thread-600864][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:53:01,204 [DEBUG][       Thread-600864][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:53:01,204 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:53:01,205 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:53:01,260 [DEBUG][       Thread-600864][   transport.py][1871] : userauth is OK
2025-07-01 09:53:01,260 [DEBUG][       Thread-600864][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:53:01,260 [DEBUG][       Thread-600864][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:53:01,260 [DEBUG][       Thread-600864][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:53:01,260 [DEBUG][       Thread-600864][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:53:01,279 [ INFO][       Thread-600864][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:53:01,279 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:53:01,280 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:53:02,296 [DEBUG][       Thread-600864][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:53:02,297 [DEBUG][       Thread-600864][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:53:02,347 [DEBUG][       Thread-600864][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:53:02,347 [DEBUG][       Thread-600864][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:53:02,356 [DEBUG][       Thread-600864][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:53:02,363 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:53:02,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')
2025-07-01 09:53:02,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-07-01 09:53:02,380 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:53:02,380 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:53:02,380 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:53:02,394 [DEBUG][       Thread-600864][   transport.py][1871] : EOF in transport thread
2025-07-01 09:53:05,569 [DEBUG][Thread-600866 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:53:12,388 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:53:12,388 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:53:12,388 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:53:12,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-07-01 09:53:12,872 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 53), 10.15, 49.14, 0.0, 42.94, 9.57, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:53:12,872 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:53:00
2025-07-01 09:53:12,956 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:53:12,960 [DEBUG][       Thread-600867][   transport.py][1871] : starting thread (client mode): 0x75aa1d0
2025-07-01 09:53:12,960 [DEBUG][       Thread-600867][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:53:12,975 [DEBUG][       Thread-600867][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:53:12,975 [ INFO][       Thread-600867][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:53:12,978 [DEBUG][       Thread-600867][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:53:12,978 [DEBUG][       Thread-600867][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:53:12,978 [DEBUG][       Thread-600867][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:53:12,978 [DEBUG][       Thread-600867][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:53:12,978 [DEBUG][       Thread-600867][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:53:12,978 [DEBUG][       Thread-600867][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:53:12,978 [DEBUG][       Thread-600867][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:53:12,978 [DEBUG][       Thread-600867][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:53:12,978 [DEBUG][       Thread-600867][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:53:12,978 [DEBUG][       Thread-600867][   transport.py][1871] : client lang: <none>
2025-07-01 09:53:12,978 [DEBUG][       Thread-600867][   transport.py][1871] : server lang: <none>
2025-07-01 09:53:12,978 [DEBUG][       Thread-600867][   transport.py][1871] : kex follows: False
2025-07-01 09:53:12,978 [DEBUG][       Thread-600867][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:53:12,978 [DEBUG][       Thread-600867][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:53:12,978 [DEBUG][       Thread-600867][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:53:12,978 [DEBUG][       Thread-600867][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:53:12,978 [DEBUG][       Thread-600867][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:53:12,978 [DEBUG][       Thread-600867][   transport.py][1871] : Compression: none
2025-07-01 09:53:12,978 [DEBUG][       Thread-600867][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:53:12,991 [DEBUG][       Thread-600867][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:53:12,992 [DEBUG][       Thread-600867][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:53:12,992 [DEBUG][       Thread-600867][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:53:12,992 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:53:12,992 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:53:12,993 [DEBUG][       Thread-600867][   transport.py][1871] : userauth is OK
2025-07-01 09:53:13,006 [ INFO][       Thread-600867][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:53:13,007 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:53:13,625 [DEBUG][       Thread-600867][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:53:13,625 [DEBUG][       Thread-600867][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:53:13,669 [DEBUG][       Thread-600867][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:53:13,669 [DEBUG][       Thread-600867][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:53:13,673 [DEBUG][       Thread-600867][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:53:13,685 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:53:13,685 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:53:13,687 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:53:13,689 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:53:13,695 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:53:13,697 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:53:13,698 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:53:13,698 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:53:13,698 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.328072 -999.00   +9.30  32.20     54   +0.60 1 1 2 1 1   887    0 9.57 34.71 ----- 32.2 32.2 18.5 53.7 12.4 -24.4 11.5 -24.8 10.7 -23.2 11.5 -22.3
2025-07-01 09:53:13,698 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:53:13,699 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:53:13,699 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.328072
2025-07-01 09:53:13,699 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:53:13,700 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:53:13,700 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:53:13,700 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:53:13,700 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:53:13,700 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:53:00', tmtdew=10.15, humidity=49.14, cloud=0.0, wind=42.94, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:52:25.421', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:53:13,701 [DEBUG][       Thread-600867][   transport.py][1871] : EOF in transport thread
2025-07-01 09:53:13,784 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:53:13,795 [DEBUG][       Thread-600870][   transport.py][1871] : starting thread (client mode): 0x81a48b0
2025-07-01 09:53:13,795 [DEBUG][       Thread-600870][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:53:13,816 [DEBUG][       Thread-600870][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:53:13,817 [ INFO][       Thread-600870][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:53:13,824 [DEBUG][       Thread-600870][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:53:13,824 [DEBUG][       Thread-600870][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:53:13,824 [DEBUG][       Thread-600870][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:53:13,824 [DEBUG][       Thread-600870][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:53:13,824 [DEBUG][       Thread-600870][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:53:13,825 [DEBUG][       Thread-600870][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:53:13,825 [DEBUG][       Thread-600870][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:53:13,825 [DEBUG][       Thread-600870][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:53:13,825 [DEBUG][       Thread-600870][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:53:13,825 [DEBUG][       Thread-600870][   transport.py][1871] : client lang: <none>
2025-07-01 09:53:13,825 [DEBUG][       Thread-600870][   transport.py][1871] : server lang: <none>
2025-07-01 09:53:13,825 [DEBUG][       Thread-600870][   transport.py][1871] : kex follows: False
2025-07-01 09:53:13,825 [DEBUG][       Thread-600870][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:53:13,825 [DEBUG][       Thread-600870][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:53:13,825 [DEBUG][       Thread-600870][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:53:13,825 [DEBUG][       Thread-600870][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:53:13,825 [DEBUG][       Thread-600870][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:53:13,825 [DEBUG][       Thread-600870][   transport.py][1871] : Compression: none
2025-07-01 09:53:13,825 [DEBUG][       Thread-600870][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:53:13,884 [DEBUG][       Thread-600870][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:53:13,884 [DEBUG][       Thread-600870][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:53:13,885 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:53:13,885 [DEBUG][       Thread-600870][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:53:13,886 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:53:13,947 [DEBUG][       Thread-600870][   transport.py][1871] : userauth is OK
2025-07-01 09:53:13,947 [DEBUG][       Thread-600870][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:53:13,947 [DEBUG][       Thread-600870][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:53:13,947 [DEBUG][       Thread-600870][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:53:13,947 [DEBUG][       Thread-600870][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:53:13,967 [ INFO][       Thread-600870][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:53:13,967 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:53:13,968 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:53:14,589 [DEBUG][Thread-600872 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:53:14,975 [DEBUG][       Thread-600870][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:53:14,975 [DEBUG][       Thread-600870][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:53:15,024 [DEBUG][       Thread-600870][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:53:15,024 [DEBUG][       Thread-600870][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:53:15,034 [DEBUG][       Thread-600870][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:53:15,042 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:53:15,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-07-01 09:53:15,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-07-01 09:53:15,065 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:53:15,065 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:53:15,065 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:53:15,080 [DEBUG][       Thread-600870][   transport.py][1871] : EOF in transport thread
2025-07-01 09:53:21,716 [DEBUG][Thread-600873 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:53:23,624 [DEBUG][Thread-600874 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:53:25,072 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:53:25,072 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:53:25,072 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:53:25,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-07-01 09:53:25,548 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 53), 10.15, 49.14, 0.0, 42.94, 9.57, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:53:25,548 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:53:00
2025-07-01 09:53:25,632 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:53:25,638 [DEBUG][       Thread-600875][   transport.py][1871] : starting thread (client mode): 0x75a9240
2025-07-01 09:53:25,639 [DEBUG][       Thread-600875][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:53:25,658 [DEBUG][       Thread-600875][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:53:25,658 [ INFO][       Thread-600875][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:53:25,661 [DEBUG][       Thread-600875][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:53:25,661 [DEBUG][       Thread-600875][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:53:25,662 [DEBUG][       Thread-600875][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:53:25,662 [DEBUG][       Thread-600875][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:53:25,662 [DEBUG][       Thread-600875][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:53:25,662 [DEBUG][       Thread-600875][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:53:25,662 [DEBUG][       Thread-600875][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:53:25,662 [DEBUG][       Thread-600875][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:53:25,662 [DEBUG][       Thread-600875][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:53:25,662 [DEBUG][       Thread-600875][   transport.py][1871] : client lang: <none>
2025-07-01 09:53:25,662 [DEBUG][       Thread-600875][   transport.py][1871] : server lang: <none>
2025-07-01 09:53:25,662 [DEBUG][       Thread-600875][   transport.py][1871] : kex follows: False
2025-07-01 09:53:25,662 [DEBUG][       Thread-600875][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:53:25,662 [DEBUG][       Thread-600875][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:53:25,662 [DEBUG][       Thread-600875][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:53:25,662 [DEBUG][       Thread-600875][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:53:25,663 [DEBUG][       Thread-600875][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:53:25,663 [DEBUG][       Thread-600875][   transport.py][1871] : Compression: none
2025-07-01 09:53:25,663 [DEBUG][       Thread-600875][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:53:25,680 [DEBUG][       Thread-600875][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:53:25,681 [DEBUG][       Thread-600875][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:53:25,682 [DEBUG][       Thread-600875][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:53:25,682 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:53:25,682 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:53:25,683 [DEBUG][       Thread-600875][   transport.py][1871] : userauth is OK
2025-07-01 09:53:25,697 [ INFO][       Thread-600875][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:53:25,697 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:53:26,285 [DEBUG][       Thread-600875][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:53:26,285 [DEBUG][       Thread-600875][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:53:26,329 [DEBUG][       Thread-600875][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:53:26,329 [DEBUG][       Thread-600875][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:53:26,333 [DEBUG][       Thread-600875][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:53:26,346 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:53:26,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:53:26,349 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:53:26,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:53:26,356 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:53:26,358 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:53:26,359 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:53:26,359 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:53:26,359 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.328072 -999.00   +9.30  32.20     54   +0.60 1 1 2 1 1   887    0 9.57 34.71 ----- 32.2 32.2 18.5 53.7 12.4 -24.4 11.5 -24.8 10.7 -23.2 11.5 -22.3
2025-07-01 09:53:26,359 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:53:26,359 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:53:26,360 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.328072
2025-07-01 09:53:26,360 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:53:26,361 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:53:26,361 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:53:26,361 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:53:26,361 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:53:26,361 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:53:00', tmtdew=10.15, humidity=49.14, cloud=0.0, wind=42.94, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:52:25.421', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:53:26,361 [DEBUG][       Thread-600875][   transport.py][1871] : EOF in transport thread
2025-07-01 09:53:26,449 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:53:26,463 [DEBUG][       Thread-600878][   transport.py][1871] : starting thread (client mode): 0x82b2200
2025-07-01 09:53:26,463 [DEBUG][       Thread-600878][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:53:26,479 [DEBUG][       Thread-600878][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:53:26,479 [ INFO][       Thread-600878][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:53:26,487 [DEBUG][       Thread-600878][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:53:26,487 [DEBUG][       Thread-600878][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:53:26,487 [DEBUG][       Thread-600878][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:53:26,487 [DEBUG][       Thread-600878][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:53:26,488 [DEBUG][       Thread-600878][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:53:26,488 [DEBUG][       Thread-600878][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:53:26,488 [DEBUG][       Thread-600878][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:53:26,488 [DEBUG][       Thread-600878][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:53:26,488 [DEBUG][       Thread-600878][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:53:26,488 [DEBUG][       Thread-600878][   transport.py][1871] : client lang: <none>
2025-07-01 09:53:26,488 [DEBUG][       Thread-600878][   transport.py][1871] : server lang: <none>
2025-07-01 09:53:26,488 [DEBUG][       Thread-600878][   transport.py][1871] : kex follows: False
2025-07-01 09:53:26,488 [DEBUG][       Thread-600878][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:53:26,488 [DEBUG][       Thread-600878][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:53:26,488 [DEBUG][       Thread-600878][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:53:26,488 [DEBUG][       Thread-600878][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:53:26,489 [DEBUG][       Thread-600878][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:53:26,489 [DEBUG][       Thread-600878][   transport.py][1871] : Compression: none
2025-07-01 09:53:26,489 [DEBUG][       Thread-600878][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:53:26,551 [DEBUG][       Thread-600878][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:53:26,552 [DEBUG][       Thread-600878][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:53:26,552 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:53:26,553 [DEBUG][       Thread-600878][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:53:26,553 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:53:26,607 [DEBUG][       Thread-600878][   transport.py][1871] : userauth is OK
2025-07-01 09:53:26,608 [DEBUG][       Thread-600878][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:53:26,608 [DEBUG][       Thread-600878][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:53:26,608 [DEBUG][       Thread-600878][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:53:26,608 [DEBUG][       Thread-600878][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:53:26,627 [ INFO][       Thread-600878][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:53:26,627 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:53:26,627 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:53:27,641 [DEBUG][       Thread-600878][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:53:27,641 [DEBUG][       Thread-600878][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:53:27,692 [DEBUG][       Thread-600878][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:53:27,693 [DEBUG][       Thread-600878][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:53:27,702 [DEBUG][       Thread-600878][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:53:27,711 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:53:27,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-07-01 09:53:27,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-07-01 09:53:27,733 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:53:27,733 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:53:27,734 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:53:27,749 [DEBUG][       Thread-600878][   transport.py][1871] : EOF in transport thread
2025-07-01 09:53:32,645 [DEBUG][Thread-600880 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:53:37,744 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:53:37,745 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:53:37,745 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:53:37,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-07-01 09:53:38,235 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 53, 32), 10.13, 49.2, 0.0, 30.73, 9.59, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:53:38,235 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:53:32
2025-07-01 09:53:38,318 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:53:38,322 [DEBUG][       Thread-600881][   transport.py][1871] : starting thread (client mode): 0x82b20b0
2025-07-01 09:53:38,322 [DEBUG][       Thread-600881][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:53:38,342 [DEBUG][       Thread-600881][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:53:38,342 [ INFO][       Thread-600881][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:53:38,344 [DEBUG][       Thread-600881][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:53:38,344 [DEBUG][       Thread-600881][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:53:38,344 [DEBUG][       Thread-600881][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:53:38,344 [DEBUG][       Thread-600881][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:53:38,344 [DEBUG][       Thread-600881][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:53:38,344 [DEBUG][       Thread-600881][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:53:38,344 [DEBUG][       Thread-600881][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:53:38,344 [DEBUG][       Thread-600881][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:53:38,344 [DEBUG][       Thread-600881][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:53:38,344 [DEBUG][       Thread-600881][   transport.py][1871] : client lang: <none>
2025-07-01 09:53:38,344 [DEBUG][       Thread-600881][   transport.py][1871] : server lang: <none>
2025-07-01 09:53:38,344 [DEBUG][       Thread-600881][   transport.py][1871] : kex follows: False
2025-07-01 09:53:38,344 [DEBUG][       Thread-600881][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:53:38,344 [DEBUG][       Thread-600881][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:53:38,344 [DEBUG][       Thread-600881][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:53:38,344 [DEBUG][       Thread-600881][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:53:38,344 [DEBUG][       Thread-600881][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:53:38,345 [DEBUG][       Thread-600881][   transport.py][1871] : Compression: none
2025-07-01 09:53:38,345 [DEBUG][       Thread-600881][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:53:38,354 [DEBUG][       Thread-600881][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:53:38,355 [DEBUG][       Thread-600881][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:53:38,355 [DEBUG][       Thread-600881][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:53:38,355 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:53:38,356 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:53:38,356 [DEBUG][       Thread-600881][   transport.py][1871] : userauth is OK
2025-07-01 09:53:38,370 [ INFO][       Thread-600881][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:53:38,370 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:53:39,030 [DEBUG][       Thread-600881][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:53:39,031 [DEBUG][       Thread-600881][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:53:39,073 [DEBUG][       Thread-600881][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:53:39,073 [DEBUG][       Thread-600881][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:53:39,077 [DEBUG][       Thread-600881][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:53:39,089 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:53:39,089 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:53:39,090 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:53:39,091 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:53:39,093 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:53:39,094 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:53:39,094 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:53:39,094 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:53:39,094 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.328767 -999.00   +9.40  42.67     54   +0.70 1 1 2 1 1   887    0 9.57 32.10 ----- 42.7 42.7 23.0 58.8 12.4 -24.0 11.5 -24.4 10.7 -23.0 11.5 -22.7
2025-07-01 09:53:39,094 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:53:39,094 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:53:39,094 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.328767
2025-07-01 09:53:39,094 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:53:39,095 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:53:39,095 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:53:39,095 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:53:39,095 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:53:39,095 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:53:32', tmtdew=10.13, humidity=49.2, cloud=0.0, wind=30.73, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:53:25.469', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:53:39,095 [DEBUG][       Thread-600881][   transport.py][1871] : EOF in transport thread
2025-07-01 09:53:39,167 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:53:39,176 [DEBUG][       Thread-600884][   transport.py][1871] : starting thread (client mode): 0x81a75e0
2025-07-01 09:53:39,176 [DEBUG][       Thread-600884][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:53:39,195 [DEBUG][       Thread-600884][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:53:39,195 [ INFO][       Thread-600884][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:53:39,202 [DEBUG][       Thread-600884][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:53:39,203 [DEBUG][       Thread-600884][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:53:39,203 [DEBUG][       Thread-600884][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:53:39,203 [DEBUG][       Thread-600884][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:53:39,203 [DEBUG][       Thread-600884][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:53:39,203 [DEBUG][       Thread-600884][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:53:39,203 [DEBUG][       Thread-600884][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:53:39,203 [DEBUG][       Thread-600884][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:53:39,203 [DEBUG][       Thread-600884][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:53:39,203 [DEBUG][       Thread-600884][   transport.py][1871] : client lang: <none>
2025-07-01 09:53:39,203 [DEBUG][       Thread-600884][   transport.py][1871] : server lang: <none>
2025-07-01 09:53:39,203 [DEBUG][       Thread-600884][   transport.py][1871] : kex follows: False
2025-07-01 09:53:39,203 [DEBUG][       Thread-600884][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:53:39,203 [DEBUG][       Thread-600884][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:53:39,203 [DEBUG][       Thread-600884][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:53:39,203 [DEBUG][       Thread-600884][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:53:39,203 [DEBUG][       Thread-600884][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:53:39,203 [DEBUG][       Thread-600884][   transport.py][1871] : Compression: none
2025-07-01 09:53:39,203 [DEBUG][       Thread-600884][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:53:39,259 [DEBUG][       Thread-600884][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:53:39,259 [DEBUG][       Thread-600884][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:53:39,260 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:53:39,261 [DEBUG][       Thread-600884][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:53:39,261 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:53:39,316 [DEBUG][       Thread-600884][   transport.py][1871] : userauth is OK
2025-07-01 09:53:39,316 [DEBUG][       Thread-600884][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:53:39,316 [DEBUG][       Thread-600884][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:53:39,316 [DEBUG][       Thread-600884][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:53:39,316 [DEBUG][       Thread-600884][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:53:39,336 [ INFO][       Thread-600884][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:53:39,336 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:53:39,337 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:53:40,350 [DEBUG][       Thread-600884][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:53:40,350 [DEBUG][       Thread-600884][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:53:40,402 [DEBUG][       Thread-600884][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:53:40,402 [DEBUG][       Thread-600884][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:53:40,414 [DEBUG][       Thread-600884][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:53:40,430 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:53:40,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-07-01 09:53:40,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-07-01 09:53:40,448 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:53:40,449 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:53:40,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:53:40,457 [DEBUG][       Thread-600884][   transport.py][1871] : EOF in transport thread
2025-07-01 09:53:41,666 [DEBUG][Thread-600886 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:53:50,460 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:53:50,460 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:53:50,460 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:53:50,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-07-01 09:53:50,697 [DEBUG][Thread-600887 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:53:50,933 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 53, 32), 10.13, 49.2, 0.0, 30.73, 9.59, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:53:50,933 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:53:32
2025-07-01 09:53:51,018 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:53:51,024 [DEBUG][       Thread-600888][   transport.py][1871] : starting thread (client mode): 0x82b2bf0
2025-07-01 09:53:51,024 [DEBUG][       Thread-600888][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:53:51,045 [DEBUG][       Thread-600888][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:53:51,045 [ INFO][       Thread-600888][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:53:51,048 [DEBUG][       Thread-600888][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:53:51,048 [DEBUG][       Thread-600888][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:53:51,048 [DEBUG][       Thread-600888][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:53:51,048 [DEBUG][       Thread-600888][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:53:51,048 [DEBUG][       Thread-600888][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:53:51,048 [DEBUG][       Thread-600888][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:53:51,048 [DEBUG][       Thread-600888][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:53:51,049 [DEBUG][       Thread-600888][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:53:51,049 [DEBUG][       Thread-600888][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:53:51,049 [DEBUG][       Thread-600888][   transport.py][1871] : client lang: <none>
2025-07-01 09:53:51,049 [DEBUG][       Thread-600888][   transport.py][1871] : server lang: <none>
2025-07-01 09:53:51,049 [DEBUG][       Thread-600888][   transport.py][1871] : kex follows: False
2025-07-01 09:53:51,049 [DEBUG][       Thread-600888][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:53:51,049 [DEBUG][       Thread-600888][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:53:51,049 [DEBUG][       Thread-600888][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:53:51,049 [DEBUG][       Thread-600888][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:53:51,049 [DEBUG][       Thread-600888][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:53:51,049 [DEBUG][       Thread-600888][   transport.py][1871] : Compression: none
2025-07-01 09:53:51,049 [DEBUG][       Thread-600888][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:53:51,068 [DEBUG][       Thread-600888][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:53:51,069 [DEBUG][       Thread-600888][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:53:51,069 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:53:51,069 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:53:51,070 [DEBUG][       Thread-600888][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:53:51,071 [DEBUG][       Thread-600888][   transport.py][1871] : userauth is OK
2025-07-01 09:53:51,095 [ INFO][       Thread-600888][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:53:51,096 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:53:51,707 [DEBUG][       Thread-600888][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:53:51,707 [DEBUG][       Thread-600888][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:53:51,749 [DEBUG][       Thread-600888][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:53:51,749 [DEBUG][       Thread-600888][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:53:51,753 [DEBUG][       Thread-600888][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:53:51,763 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:53:51,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:53:51,766 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:53:51,768 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:53:51,774 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:53:51,776 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:53:51,776 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:53:51,777 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:53:51,777 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.328767 -999.00   +9.40  42.67     54   +0.70 1 1 2 1 1   887    0 9.57 32.10 ----- 42.7 42.7 23.0 58.8 12.4 -24.0 11.5 -24.4 10.7 -23.0 11.5 -22.7
2025-07-01 09:53:51,777 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:53:51,777 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:53:51,777 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.328767
2025-07-01 09:53:51,777 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:53:51,778 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:53:51,778 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:53:51,778 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:53:51,778 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:53:51,778 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:53:32', tmtdew=10.13, humidity=49.2, cloud=0.0, wind=30.73, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:53:25.469', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:53:51,779 [DEBUG][       Thread-600888][   transport.py][1871] : EOF in transport thread
2025-07-01 09:53:51,864 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:53:51,943 [DEBUG][       Thread-600891][   transport.py][1871] : starting thread (client mode): 0x81e7880
2025-07-01 09:53:51,944 [DEBUG][       Thread-600891][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:53:52,020 [DEBUG][       Thread-600891][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:53:52,020 [ INFO][       Thread-600891][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:53:52,089 [DEBUG][       Thread-600891][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:53:52,089 [DEBUG][       Thread-600891][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:53:52,089 [DEBUG][       Thread-600891][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:53:52,089 [DEBUG][       Thread-600891][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:53:52,089 [DEBUG][       Thread-600891][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:53:52,089 [DEBUG][       Thread-600891][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:53:52,089 [DEBUG][       Thread-600891][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:53:52,089 [DEBUG][       Thread-600891][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:53:52,089 [DEBUG][       Thread-600891][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:53:52,090 [DEBUG][       Thread-600891][   transport.py][1871] : client lang: <none>
2025-07-01 09:53:52,090 [DEBUG][       Thread-600891][   transport.py][1871] : server lang: <none>
2025-07-01 09:53:52,090 [DEBUG][       Thread-600891][   transport.py][1871] : kex follows: False
2025-07-01 09:53:52,090 [DEBUG][       Thread-600891][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:53:52,090 [DEBUG][       Thread-600891][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:53:52,090 [DEBUG][       Thread-600891][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:53:52,090 [DEBUG][       Thread-600891][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:53:52,090 [DEBUG][       Thread-600891][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:53:52,090 [DEBUG][       Thread-600891][   transport.py][1871] : Compression: none
2025-07-01 09:53:52,090 [DEBUG][       Thread-600891][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:53:52,191 [DEBUG][       Thread-600891][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:53:52,191 [DEBUG][       Thread-600891][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:53:52,192 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:53:52,193 [DEBUG][       Thread-600891][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:53:52,193 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:53:52,298 [DEBUG][       Thread-600891][   transport.py][1871] : userauth is OK
2025-07-01 09:53:52,299 [DEBUG][       Thread-600891][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:53:52,299 [DEBUG][       Thread-600891][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:53:52,299 [DEBUG][       Thread-600891][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:53:52,299 [DEBUG][       Thread-600891][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:53:52,363 [ INFO][       Thread-600891][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:53:52,364 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:53:52,364 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:53:53,496 [DEBUG][       Thread-600891][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:53:53,497 [DEBUG][       Thread-600891][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:53:53,630 [DEBUG][       Thread-600891][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:53:53,630 [DEBUG][       Thread-600891][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:53:53,700 [DEBUG][       Thread-600891][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:53:53,784 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:53:53,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-07-01 09:53:53,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-07-01 09:53:53,939 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:53:53,939 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:53:53,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:53:54,012 [DEBUG][       Thread-600891][   transport.py][1871] : EOF in transport thread
2025-07-01 09:53:54,673 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:53:54,674 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:53:59,720 [DEBUG][Thread-600893 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:54:03,950 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:54:03,950 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:54:03,950 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:54:03,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-07-01 09:54:04,421 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 53, 32), 10.13, 49.2, 0.0, 30.73, 9.59, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:54:04,421 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:53:32
2025-07-01 09:54:04,505 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:54:04,509 [DEBUG][       Thread-600894][   transport.py][1871] : starting thread (client mode): 0x8156e00
2025-07-01 09:54:04,509 [DEBUG][       Thread-600894][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:54:04,528 [DEBUG][       Thread-600894][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:54:04,528 [ INFO][       Thread-600894][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:54:04,530 [DEBUG][       Thread-600894][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:54:04,530 [DEBUG][       Thread-600894][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:54:04,530 [DEBUG][       Thread-600894][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:54:04,530 [DEBUG][       Thread-600894][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:54:04,530 [DEBUG][       Thread-600894][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:54:04,530 [DEBUG][       Thread-600894][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:54:04,530 [DEBUG][       Thread-600894][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:54:04,530 [DEBUG][       Thread-600894][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:54:04,530 [DEBUG][       Thread-600894][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:54:04,530 [DEBUG][       Thread-600894][   transport.py][1871] : client lang: <none>
2025-07-01 09:54:04,530 [DEBUG][       Thread-600894][   transport.py][1871] : server lang: <none>
2025-07-01 09:54:04,530 [DEBUG][       Thread-600894][   transport.py][1871] : kex follows: False
2025-07-01 09:54:04,530 [DEBUG][       Thread-600894][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:54:04,530 [DEBUG][       Thread-600894][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:54:04,530 [DEBUG][       Thread-600894][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:54:04,530 [DEBUG][       Thread-600894][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:54:04,530 [DEBUG][       Thread-600894][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:54:04,530 [DEBUG][       Thread-600894][   transport.py][1871] : Compression: none
2025-07-01 09:54:04,530 [DEBUG][       Thread-600894][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:54:04,547 [DEBUG][       Thread-600894][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:54:04,548 [DEBUG][       Thread-600894][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:54:04,549 [DEBUG][       Thread-600894][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:54:04,549 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:54:04,549 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:54:04,550 [DEBUG][       Thread-600894][   transport.py][1871] : userauth is OK
2025-07-01 09:54:04,563 [ INFO][       Thread-600894][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:54:04,564 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:54:05,115 [DEBUG][       Thread-600894][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:54:05,115 [DEBUG][       Thread-600894][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:54:05,157 [DEBUG][       Thread-600894][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:54:05,157 [DEBUG][       Thread-600894][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:54:05,159 [DEBUG][       Thread-600894][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:54:05,166 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:54:05,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:54:05,167 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:54:05,168 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:54:05,171 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:54:05,172 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:54:05,172 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:54:05,172 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:54:05,172 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.329114 -999.00   +9.40  36.83     54   +0.70 1 1 2 1 1   887    0 9.51 29.80 ----- 36.8 36.8 26.9 45.0 12.4 -23.6 11.5 -24.5 10.7 -23.0 11.5 -22.1
2025-07-01 09:54:05,172 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:54:05,173 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:54:05,173 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.329114
2025-07-01 09:54:05,173 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:54:05,173 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:54:05,173 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:54:05,173 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:54:05,173 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:54:05,173 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:53:32', tmtdew=10.13, humidity=49.2, cloud=0.0, wind=30.73, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:53:55.450', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:54:05,173 [DEBUG][       Thread-600894][   transport.py][1871] : EOF in transport thread
2025-07-01 09:54:05,248 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:54:05,353 [DEBUG][       Thread-600897][   transport.py][1871] : starting thread (client mode): 0x8393f40
2025-07-01 09:54:05,353 [DEBUG][       Thread-600897][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:54:05,494 [DEBUG][       Thread-600897][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:54:05,494 [ INFO][       Thread-600897][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:54:05,593 [DEBUG][       Thread-600897][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:54:05,593 [DEBUG][       Thread-600897][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:54:05,594 [DEBUG][       Thread-600897][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:54:05,594 [DEBUG][       Thread-600897][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:54:05,594 [DEBUG][       Thread-600897][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:54:05,594 [DEBUG][       Thread-600897][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:54:05,594 [DEBUG][       Thread-600897][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:54:05,594 [DEBUG][       Thread-600897][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:54:05,594 [DEBUG][       Thread-600897][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:54:05,594 [DEBUG][       Thread-600897][   transport.py][1871] : client lang: <none>
2025-07-01 09:54:05,594 [DEBUG][       Thread-600897][   transport.py][1871] : server lang: <none>
2025-07-01 09:54:05,594 [DEBUG][       Thread-600897][   transport.py][1871] : kex follows: False
2025-07-01 09:54:05,594 [DEBUG][       Thread-600897][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:54:05,594 [DEBUG][       Thread-600897][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:54:05,594 [DEBUG][       Thread-600897][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:54:05,594 [DEBUG][       Thread-600897][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:54:05,594 [DEBUG][       Thread-600897][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:54:05,594 [DEBUG][       Thread-600897][   transport.py][1871] : Compression: none
2025-07-01 09:54:05,594 [DEBUG][       Thread-600897][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:54:05,756 [DEBUG][       Thread-600897][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:54:05,756 [DEBUG][       Thread-600897][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:54:05,756 [DEBUG][       Thread-600897][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:54:05,756 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:54:05,756 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:54:05,988 [DEBUG][       Thread-600897][   transport.py][1871] : userauth is OK
2025-07-01 09:54:05,988 [DEBUG][       Thread-600897][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:54:05,988 [DEBUG][       Thread-600897][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:54:05,988 [DEBUG][       Thread-600897][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:54:05,988 [DEBUG][       Thread-600897][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:54:06,088 [ INFO][       Thread-600897][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:54:06,088 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:54:06,088 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:54:07,155 [DEBUG][       Thread-600897][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:54:07,155 [DEBUG][       Thread-600897][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:54:07,283 [DEBUG][       Thread-600897][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:54:07,284 [DEBUG][       Thread-600897][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:54:07,377 [DEBUG][       Thread-600897][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:54:07,473 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:54: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-07-01 09:54:07,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') -> 00000000
2025-07-01 09:54:07,662 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:54:07,662 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:54:07,663 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:54:07,755 [DEBUG][       Thread-600897][   transport.py][1871] : EOF in transport thread
2025-07-01 09:54:08,743 [DEBUG][Thread-600899 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:54:17,673 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:54:17,673 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:54:17,674 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:54:17,676 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:54:17,763 [DEBUG][Thread-600900 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:54:18,154 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 54, 4), 10.07, 49.41, 0.0, 31.58, 9.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:54:18,154 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:54:04
2025-07-01 09:54:18,239 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:54:18,243 [DEBUG][       Thread-600901][   transport.py][1871] : starting thread (client mode): 0x8170850
2025-07-01 09:54:18,243 [DEBUG][       Thread-600901][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:54:18,264 [DEBUG][       Thread-600901][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:54:18,264 [ INFO][       Thread-600901][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:54:18,268 [DEBUG][       Thread-600901][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:54:18,268 [DEBUG][       Thread-600901][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:54:18,268 [DEBUG][       Thread-600901][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:54:18,268 [DEBUG][       Thread-600901][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:54:18,268 [DEBUG][       Thread-600901][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:54:18,268 [DEBUG][       Thread-600901][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:54:18,268 [DEBUG][       Thread-600901][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:54:18,268 [DEBUG][       Thread-600901][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:54:18,268 [DEBUG][       Thread-600901][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:54:18,268 [DEBUG][       Thread-600901][   transport.py][1871] : client lang: <none>
2025-07-01 09:54:18,268 [DEBUG][       Thread-600901][   transport.py][1871] : server lang: <none>
2025-07-01 09:54:18,268 [DEBUG][       Thread-600901][   transport.py][1871] : kex follows: False
2025-07-01 09:54:18,268 [DEBUG][       Thread-600901][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:54:18,269 [DEBUG][       Thread-600901][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:54:18,269 [DEBUG][       Thread-600901][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:54:18,269 [DEBUG][       Thread-600901][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:54:18,269 [DEBUG][       Thread-600901][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:54:18,269 [DEBUG][       Thread-600901][   transport.py][1871] : Compression: none
2025-07-01 09:54:18,269 [DEBUG][       Thread-600901][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:54:18,285 [DEBUG][       Thread-600901][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:54:18,286 [DEBUG][       Thread-600901][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:54:18,286 [DEBUG][       Thread-600901][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:54:18,286 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:54:18,286 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:54:18,288 [DEBUG][       Thread-600901][   transport.py][1871] : userauth is OK
2025-07-01 09:54:18,312 [ INFO][       Thread-600901][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:54:18,313 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:54:18,963 [DEBUG][       Thread-600901][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:54:18,963 [DEBUG][       Thread-600901][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:54:19,004 [DEBUG][       Thread-600901][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:54:19,005 [DEBUG][       Thread-600901][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:54:19,007 [DEBUG][       Thread-600901][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:54:19,018 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:54:19,018 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:54:19,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:54:19,020 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:54:19,022 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:54:19,023 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:54:19,023 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:54:19,023 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:54:19,023 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.329114 -999.00   +9.40  36.83     54   +0.70 1 1 2 1 1   887    0 9.51 29.80 ----- 36.8 36.8 26.9 45.0 12.4 -23.6 11.5 -24.5 10.7 -23.0 11.5 -22.1
2025-07-01 09:54:19,023 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:54:19,023 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:54:19,023 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.329114
2025-07-01 09:54:19,023 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:54:19,023 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:54:19,023 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:54:19,023 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:54:19,023 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:54:19,024 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:54:04', tmtdew=10.07, humidity=49.41, cloud=0.0, wind=31.58, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:53:55.450', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:54:19,024 [DEBUG][       Thread-600901][   transport.py][1871] : EOF in transport thread
2025-07-01 09:54:19,094 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:54:19,191 [DEBUG][       Thread-600904][   transport.py][1871] : starting thread (client mode): 0x81e7550
2025-07-01 09:54:19,191 [DEBUG][       Thread-600904][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:54:19,307 [DEBUG][       Thread-600904][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:54:19,307 [ INFO][       Thread-600904][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:54:19,413 [DEBUG][       Thread-600904][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:54:19,413 [DEBUG][       Thread-600904][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:54:19,413 [DEBUG][       Thread-600904][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:54:19,413 [DEBUG][       Thread-600904][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:54:19,414 [DEBUG][       Thread-600904][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:54:19,414 [DEBUG][       Thread-600904][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:54:19,414 [DEBUG][       Thread-600904][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:54:19,414 [DEBUG][       Thread-600904][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:54:19,414 [DEBUG][       Thread-600904][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:54:19,414 [DEBUG][       Thread-600904][   transport.py][1871] : client lang: <none>
2025-07-01 09:54:19,414 [DEBUG][       Thread-600904][   transport.py][1871] : server lang: <none>
2025-07-01 09:54:19,414 [DEBUG][       Thread-600904][   transport.py][1871] : kex follows: False
2025-07-01 09:54:19,414 [DEBUG][       Thread-600904][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:54:19,414 [DEBUG][       Thread-600904][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:54:19,414 [DEBUG][       Thread-600904][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:54:19,414 [DEBUG][       Thread-600904][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:54:19,414 [DEBUG][       Thread-600904][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:54:19,414 [DEBUG][       Thread-600904][   transport.py][1871] : Compression: none
2025-07-01 09:54:19,414 [DEBUG][       Thread-600904][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:54:19,733 [DEBUG][       Thread-600904][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:54:19,733 [DEBUG][       Thread-600904][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:54:19,734 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:54:19,735 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:54:19,735 [DEBUG][       Thread-600904][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:54:19,962 [DEBUG][       Thread-600904][   transport.py][1871] : userauth is OK
2025-07-01 09:54:19,962 [DEBUG][       Thread-600904][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:54:19,962 [DEBUG][       Thread-600904][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:54:19,963 [DEBUG][       Thread-600904][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:54:19,963 [DEBUG][       Thread-600904][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:54:20,076 [ INFO][       Thread-600904][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:54:20,076 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:54:20,077 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:54:21,178 [DEBUG][       Thread-600904][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:54:21,178 [DEBUG][       Thread-600904][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:54:21,302 [DEBUG][       Thread-600904][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:54:21,302 [DEBUG][       Thread-600904][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:54:21,399 [DEBUG][       Thread-600904][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:54:21,491 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:54:21,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-07-01 09:54:21,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-07-01 09:54:21,697 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:54:21,697 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:54:21,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:54:21,768 [DEBUG][Thread-600906 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:54:21,797 [DEBUG][       Thread-600904][   transport.py][1871] : EOF in transport thread
2025-07-01 09:54:26,781 [DEBUG][Thread-600907 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:54:31,708 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:54:31,708 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:54:31,708 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:54:31,711 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:54:32,159 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 54, 4), 10.07, 49.41, 0.0, 31.58, 9.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:54:32,159 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:54:04
2025-07-01 09:54:32,245 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:54:32,249 [DEBUG][       Thread-600908][   transport.py][1871] : starting thread (client mode): 0x8170130
2025-07-01 09:54:32,249 [DEBUG][       Thread-600908][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:54:32,272 [DEBUG][       Thread-600908][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:54:32,272 [ INFO][       Thread-600908][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:54:32,276 [DEBUG][       Thread-600908][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:54:32,276 [DEBUG][       Thread-600908][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:54:32,276 [DEBUG][       Thread-600908][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:54:32,276 [DEBUG][       Thread-600908][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:54:32,276 [DEBUG][       Thread-600908][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:54:32,276 [DEBUG][       Thread-600908][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:54:32,276 [DEBUG][       Thread-600908][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:54:32,276 [DEBUG][       Thread-600908][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:54:32,276 [DEBUG][       Thread-600908][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:54:32,277 [DEBUG][       Thread-600908][   transport.py][1871] : client lang: <none>
2025-07-01 09:54:32,277 [DEBUG][       Thread-600908][   transport.py][1871] : server lang: <none>
2025-07-01 09:54:32,277 [DEBUG][       Thread-600908][   transport.py][1871] : kex follows: False
2025-07-01 09:54:32,277 [DEBUG][       Thread-600908][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:54:32,277 [DEBUG][       Thread-600908][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:54:32,277 [DEBUG][       Thread-600908][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:54:32,277 [DEBUG][       Thread-600908][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:54:32,277 [DEBUG][       Thread-600908][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:54:32,277 [DEBUG][       Thread-600908][   transport.py][1871] : Compression: none
2025-07-01 09:54:32,277 [DEBUG][       Thread-600908][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:54:32,294 [DEBUG][       Thread-600908][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:54:32,294 [DEBUG][       Thread-600908][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:54:32,295 [DEBUG][       Thread-600908][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:54:32,295 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:54:32,295 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:54:32,296 [DEBUG][       Thread-600908][   transport.py][1871] : userauth is OK
2025-07-01 09:54:32,321 [ INFO][       Thread-600908][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:54:32,322 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:54:32,970 [DEBUG][       Thread-600908][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:54:32,971 [DEBUG][       Thread-600908][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:54:33,013 [DEBUG][       Thread-600908][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:54:33,013 [DEBUG][       Thread-600908][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:54:33,016 [DEBUG][       Thread-600908][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:54:33,028 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:54:33,029 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:54:33,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:54:33,033 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:54:33,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:54:33,040 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:54:33,041 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:54:33,041 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:54:33,041 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.329114 -999.00   +9.40  36.83     54   +0.70 1 1 2 1 1   887    0 9.51 29.80 ----- 36.8 36.8 26.9 45.0 12.4 -23.6 11.5 -24.5 10.7 -23.0 11.5 -22.1
2025-07-01 09:54:33,041 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:54:33,042 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:54:33,042 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.329114
2025-07-01 09:54:33,042 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:54:33,043 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:54:33,043 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:54:33,043 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:54:33,043 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:54:33,043 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:54:04', tmtdew=10.07, humidity=49.41, cloud=0.0, wind=31.58, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:53:55.450', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:54:33,043 [DEBUG][       Thread-600908][   transport.py][1871] : EOF in transport thread
2025-07-01 09:54:33,127 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:54:33,218 [DEBUG][       Thread-600911][   transport.py][1871] : starting thread (client mode): 0x8156e00
2025-07-01 09:54:33,219 [DEBUG][       Thread-600911][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:54:33,375 [DEBUG][       Thread-600911][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:54:33,375 [ INFO][       Thread-600911][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:54:33,446 [DEBUG][       Thread-600911][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:54:33,446 [DEBUG][       Thread-600911][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:54:33,447 [DEBUG][       Thread-600911][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:54:33,447 [DEBUG][       Thread-600911][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:54:33,447 [DEBUG][       Thread-600911][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:54:33,447 [DEBUG][       Thread-600911][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:54:33,447 [DEBUG][       Thread-600911][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:54:33,447 [DEBUG][       Thread-600911][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:54:33,447 [DEBUG][       Thread-600911][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:54:33,447 [DEBUG][       Thread-600911][   transport.py][1871] : client lang: <none>
2025-07-01 09:54:33,447 [DEBUG][       Thread-600911][   transport.py][1871] : server lang: <none>
2025-07-01 09:54:33,447 [DEBUG][       Thread-600911][   transport.py][1871] : kex follows: False
2025-07-01 09:54:33,447 [DEBUG][       Thread-600911][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:54:33,447 [DEBUG][       Thread-600911][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:54:33,447 [DEBUG][       Thread-600911][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:54:33,447 [DEBUG][       Thread-600911][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:54:33,447 [DEBUG][       Thread-600911][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:54:33,448 [DEBUG][       Thread-600911][   transport.py][1871] : Compression: none
2025-07-01 09:54:33,448 [DEBUG][       Thread-600911][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:54:33,504 [DEBUG][       Thread-600911][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:54:33,504 [DEBUG][       Thread-600911][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:54:33,505 [DEBUG][       Thread-600911][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:54:33,505 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:54:33,506 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:54:33,560 [DEBUG][       Thread-600911][   transport.py][1871] : userauth is OK
2025-07-01 09:54:33,560 [DEBUG][       Thread-600911][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:54:33,560 [DEBUG][       Thread-600911][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:54:33,560 [DEBUG][       Thread-600911][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:54:33,560 [DEBUG][       Thread-600911][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:54:33,580 [ INFO][       Thread-600911][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:54:33,580 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:54:33,581 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:54:34,609 [DEBUG][       Thread-600911][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:54:34,609 [DEBUG][       Thread-600911][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:54:34,660 [DEBUG][       Thread-600911][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:54:34,660 [DEBUG][       Thread-600911][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:54:34,669 [DEBUG][       Thread-600911][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:54:34,679 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:54:34,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-07-01 09:54:34,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-07-01 09:54:34,696 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:54:34,697 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:54:34,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:54:34,705 [DEBUG][       Thread-600911][   transport.py][1871] : EOF in transport thread
2025-07-01 09:54:35,823 [DEBUG][Thread-600913 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:54:44,708 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:54:44,708 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:54:44,708 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:54:44,711 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:54:44,843 [DEBUG][Thread-600914 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:54:45,187 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 54, 36), 10.07, 49.41, 0.0, 32.8, 9.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:54:45,187 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:54:36
2025-07-01 09:54:45,273 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:54:45,279 [DEBUG][       Thread-600915][   transport.py][1871] : starting thread (client mode): 0x75a9900
2025-07-01 09:54:45,280 [DEBUG][       Thread-600915][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:54:45,300 [DEBUG][       Thread-600915][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:54:45,300 [ INFO][       Thread-600915][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:54:45,303 [DEBUG][       Thread-600915][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:54:45,303 [DEBUG][       Thread-600915][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:54:45,303 [DEBUG][       Thread-600915][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:54:45,303 [DEBUG][       Thread-600915][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:54:45,303 [DEBUG][       Thread-600915][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:54:45,304 [DEBUG][       Thread-600915][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:54:45,304 [DEBUG][       Thread-600915][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:54:45,304 [DEBUG][       Thread-600915][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:54:45,304 [DEBUG][       Thread-600915][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:54:45,304 [DEBUG][       Thread-600915][   transport.py][1871] : client lang: <none>
2025-07-01 09:54:45,304 [DEBUG][       Thread-600915][   transport.py][1871] : server lang: <none>
2025-07-01 09:54:45,304 [DEBUG][       Thread-600915][   transport.py][1871] : kex follows: False
2025-07-01 09:54:45,304 [DEBUG][       Thread-600915][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:54:45,304 [DEBUG][       Thread-600915][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:54:45,304 [DEBUG][       Thread-600915][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:54:45,304 [DEBUG][       Thread-600915][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:54:45,304 [DEBUG][       Thread-600915][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:54:45,304 [DEBUG][       Thread-600915][   transport.py][1871] : Compression: none
2025-07-01 09:54:45,304 [DEBUG][       Thread-600915][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:54:45,321 [DEBUG][       Thread-600915][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:54:45,321 [DEBUG][       Thread-600915][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:54:45,322 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:54:45,322 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:54:45,323 [DEBUG][       Thread-600915][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:54:45,323 [DEBUG][       Thread-600915][   transport.py][1871] : userauth is OK
2025-07-01 09:54:45,348 [ INFO][       Thread-600915][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:54:45,348 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:54:45,936 [DEBUG][       Thread-600915][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:54:45,937 [DEBUG][       Thread-600915][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:54:45,981 [DEBUG][       Thread-600915][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:54:45,981 [DEBUG][       Thread-600915][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:54:45,984 [DEBUG][       Thread-600915][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:54:45,995 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:54:45,996 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:54:45,998 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:54:45,999 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:54:46,004 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:54:46,006 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:54:46,006 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:54:46,006 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:54:46,007 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.329461 -999.00   +9.40  39.84     54   +0.70 1 2 2 1 1   887    0 9.55 28.13 ----- 39.8 39.8 17.6 52.1 -999.0 -999.0 11.5 -24.1 10.7 -22.9 11.5 -22.5
2025-07-01 09:54:46,007 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:54:46,007 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:54:46,007 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.329461
2025-07-01 09:54:46,007 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:54:46,008 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:54:46,008 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:54:46,008 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:54:46,008 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 09:54:46,008 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:54:36', tmtdew=10.07, humidity=49.41, cloud=0.0, wind=32.8, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:54:25.430', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:54:46,009 [DEBUG][       Thread-600915][   transport.py][1871] : EOF in transport thread
2025-07-01 09:54:46,092 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:54:46,105 [DEBUG][       Thread-600918][   transport.py][1871] : starting thread (client mode): 0x8173f70
2025-07-01 09:54:46,105 [DEBUG][       Thread-600918][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:54:46,119 [DEBUG][       Thread-600918][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:54:46,119 [ INFO][       Thread-600918][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:54:46,127 [DEBUG][       Thread-600918][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:54:46,127 [DEBUG][       Thread-600918][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:54:46,127 [DEBUG][       Thread-600918][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:54:46,128 [DEBUG][       Thread-600918][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:54:46,128 [DEBUG][       Thread-600918][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:54:46,128 [DEBUG][       Thread-600918][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:54:46,128 [DEBUG][       Thread-600918][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:54:46,128 [DEBUG][       Thread-600918][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:54:46,128 [DEBUG][       Thread-600918][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:54:46,128 [DEBUG][       Thread-600918][   transport.py][1871] : client lang: <none>
2025-07-01 09:54:46,128 [DEBUG][       Thread-600918][   transport.py][1871] : server lang: <none>
2025-07-01 09:54:46,128 [DEBUG][       Thread-600918][   transport.py][1871] : kex follows: False
2025-07-01 09:54:46,128 [DEBUG][       Thread-600918][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:54:46,128 [DEBUG][       Thread-600918][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:54:46,128 [DEBUG][       Thread-600918][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:54:46,128 [DEBUG][       Thread-600918][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:54:46,128 [DEBUG][       Thread-600918][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:54:46,128 [DEBUG][       Thread-600918][   transport.py][1871] : Compression: none
2025-07-01 09:54:46,128 [DEBUG][       Thread-600918][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:54:46,184 [DEBUG][       Thread-600918][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:54:46,185 [DEBUG][       Thread-600918][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:54:46,185 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:54:46,186 [DEBUG][       Thread-600918][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:54:46,186 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:54:46,247 [DEBUG][       Thread-600918][   transport.py][1871] : userauth is OK
2025-07-01 09:54:46,247 [DEBUG][       Thread-600918][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:54:46,247 [DEBUG][       Thread-600918][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:54:46,247 [DEBUG][       Thread-600918][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:54:46,247 [DEBUG][       Thread-600918][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:54:46,268 [ INFO][       Thread-600918][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:54:46,268 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:54:46,268 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:54:47,262 [DEBUG][       Thread-600918][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:54:47,262 [DEBUG][       Thread-600918][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:54:47,312 [DEBUG][       Thread-600918][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:54:47,312 [DEBUG][       Thread-600918][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:54:47,325 [DEBUG][       Thread-600918][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:54:47,334 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:54:47,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-07-01 09:54:47,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-07-01 09:54:47,352 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:54:47,353 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:54:47,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:54:47,361 [DEBUG][       Thread-600918][   transport.py][1871] : EOF in transport thread
2025-07-01 09:54:53,863 [DEBUG][Thread-600920 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:54:54,812 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:54:54,813 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:54:57,357 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:54:57,358 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:54:57,358 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:54:57,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-07-01 09:54:57,829 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 54, 36), 10.07, 49.41, 0.0, 32.8, 9.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:54:57,829 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:54:36
2025-07-01 09:54:57,913 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:54:57,918 [DEBUG][       Thread-600921][   transport.py][1871] : starting thread (client mode): 0x82b14e0
2025-07-01 09:54:57,918 [DEBUG][       Thread-600921][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:54:57,934 [DEBUG][       Thread-600921][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:54:57,934 [ INFO][       Thread-600921][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:54:57,937 [DEBUG][       Thread-600921][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:54:57,937 [DEBUG][       Thread-600921][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:54:57,937 [DEBUG][       Thread-600921][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:54:57,937 [DEBUG][       Thread-600921][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:54:57,937 [DEBUG][       Thread-600921][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:54:57,937 [DEBUG][       Thread-600921][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:54:57,937 [DEBUG][       Thread-600921][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:54:57,937 [DEBUG][       Thread-600921][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:54:57,937 [DEBUG][       Thread-600921][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:54:57,937 [DEBUG][       Thread-600921][   transport.py][1871] : client lang: <none>
2025-07-01 09:54:57,937 [DEBUG][       Thread-600921][   transport.py][1871] : server lang: <none>
2025-07-01 09:54:57,937 [DEBUG][       Thread-600921][   transport.py][1871] : kex follows: False
2025-07-01 09:54:57,937 [DEBUG][       Thread-600921][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:54:57,937 [DEBUG][       Thread-600921][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:54:57,937 [DEBUG][       Thread-600921][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:54:57,937 [DEBUG][       Thread-600921][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:54:57,937 [DEBUG][       Thread-600921][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:54:57,937 [DEBUG][       Thread-600921][   transport.py][1871] : Compression: none
2025-07-01 09:54:57,937 [DEBUG][       Thread-600921][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:54:57,954 [DEBUG][       Thread-600921][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:54:57,955 [DEBUG][       Thread-600921][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:54:57,955 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:54:57,955 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:54:57,956 [DEBUG][       Thread-600921][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:54:57,956 [DEBUG][       Thread-600921][   transport.py][1871] : userauth is OK
2025-07-01 09:54:57,983 [ INFO][       Thread-600921][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:54:57,984 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:54:58,606 [DEBUG][       Thread-600921][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:54:58,606 [DEBUG][       Thread-600921][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:54:58,649 [DEBUG][       Thread-600921][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:54:58,649 [DEBUG][       Thread-600921][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:54:58,651 [DEBUG][       Thread-600921][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:54:58,663 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:54:58,663 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:54:58,665 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:54:58,666 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:54:58,669 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:54:58,670 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:54:58,670 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:54:58,670 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:54:58,670 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.329461 -999.00   +9.40  39.84     54   +0.70 1 2 2 1 1   887    0 9.55 28.13 ----- 39.8 39.8 17.6 52.1 -999.0 -999.0 11.5 -24.1 10.7 -22.9 11.5 -22.5
2025-07-01 09:54:58,670 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:54:58,670 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:54:58,670 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.329461
2025-07-01 09:54:58,670 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:54:58,670 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:54:58,670 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:54:58,670 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:54:58,670 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 09:54:58,670 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:54:36', tmtdew=10.07, humidity=49.41, cloud=0.0, wind=32.8, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:54:25.430', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:54:58,671 [DEBUG][       Thread-600921][   transport.py][1871] : EOF in transport thread
2025-07-01 09:54:58,741 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:54:58,751 [DEBUG][       Thread-600924][   transport.py][1871] : starting thread (client mode): 0x8a65e70
2025-07-01 09:54:58,751 [DEBUG][       Thread-600924][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:54:58,766 [DEBUG][       Thread-600924][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:54:58,766 [ INFO][       Thread-600924][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:54:58,773 [DEBUG][       Thread-600924][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:54:58,773 [DEBUG][       Thread-600924][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:54:58,773 [DEBUG][       Thread-600924][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:54:58,773 [DEBUG][       Thread-600924][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:54:58,773 [DEBUG][       Thread-600924][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:54:58,773 [DEBUG][       Thread-600924][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:54:58,773 [DEBUG][       Thread-600924][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:54:58,773 [DEBUG][       Thread-600924][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:54:58,773 [DEBUG][       Thread-600924][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:54:58,773 [DEBUG][       Thread-600924][   transport.py][1871] : client lang: <none>
2025-07-01 09:54:58,773 [DEBUG][       Thread-600924][   transport.py][1871] : server lang: <none>
2025-07-01 09:54:58,773 [DEBUG][       Thread-600924][   transport.py][1871] : kex follows: False
2025-07-01 09:54:58,773 [DEBUG][       Thread-600924][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:54:58,773 [DEBUG][       Thread-600924][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:54:58,773 [DEBUG][       Thread-600924][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:54:58,773 [DEBUG][       Thread-600924][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:54:58,773 [DEBUG][       Thread-600924][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:54:58,773 [DEBUG][       Thread-600924][   transport.py][1871] : Compression: none
2025-07-01 09:54:58,773 [DEBUG][       Thread-600924][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:54:58,832 [DEBUG][       Thread-600924][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:54:58,832 [DEBUG][       Thread-600924][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:54:58,833 [DEBUG][       Thread-600924][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:54:58,833 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:54:58,833 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:54:58,891 [DEBUG][       Thread-600924][   transport.py][1871] : userauth is OK
2025-07-01 09:54:58,892 [DEBUG][       Thread-600924][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:54:58,892 [DEBUG][       Thread-600924][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:54:58,892 [DEBUG][       Thread-600924][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:54:58,892 [DEBUG][       Thread-600924][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:54:58,906 [ INFO][       Thread-600924][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:54:58,906 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:54:58,907 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:54:59,938 [DEBUG][       Thread-600924][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:54:59,939 [DEBUG][       Thread-600924][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:54:59,988 [DEBUG][       Thread-600924][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:54:59,988 [DEBUG][       Thread-600924][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:54:59,998 [DEBUG][       Thread-600924][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:55:00,007 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:55:00,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-07-01 09:55:00,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-07-01 09:55:00,023 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:55:00,023 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:55:00,023 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:55:00,030 [DEBUG][       Thread-600924][   transport.py][1871] : EOF in transport thread
2025-07-01 09:55:02,885 [DEBUG][Thread-600926 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:55:10,033 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:55:10,033 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:55:10,033 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:55:10,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-07-01 09:55:10,532 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 54, 36), 10.07, 49.41, 0.0, 32.8, 9.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:55:10,532 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:54:36
2025-07-01 09:55:10,615 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:55:10,621 [DEBUG][       Thread-600927][   transport.py][1871] : starting thread (client mode): 0x75aad40
2025-07-01 09:55:10,621 [DEBUG][       Thread-600927][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:55:10,641 [DEBUG][       Thread-600927][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:55:10,641 [ INFO][       Thread-600927][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:55:10,645 [DEBUG][       Thread-600927][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:55:10,645 [DEBUG][       Thread-600927][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:55:10,645 [DEBUG][       Thread-600927][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:55:10,645 [DEBUG][       Thread-600927][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:55:10,645 [DEBUG][       Thread-600927][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:55:10,645 [DEBUG][       Thread-600927][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:55:10,645 [DEBUG][       Thread-600927][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:55:10,645 [DEBUG][       Thread-600927][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:55:10,645 [DEBUG][       Thread-600927][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:55:10,645 [DEBUG][       Thread-600927][   transport.py][1871] : client lang: <none>
2025-07-01 09:55:10,645 [DEBUG][       Thread-600927][   transport.py][1871] : server lang: <none>
2025-07-01 09:55:10,645 [DEBUG][       Thread-600927][   transport.py][1871] : kex follows: False
2025-07-01 09:55:10,645 [DEBUG][       Thread-600927][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:55:10,645 [DEBUG][       Thread-600927][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:55:10,645 [DEBUG][       Thread-600927][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:55:10,645 [DEBUG][       Thread-600927][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:55:10,645 [DEBUG][       Thread-600927][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:55:10,645 [DEBUG][       Thread-600927][   transport.py][1871] : Compression: none
2025-07-01 09:55:10,645 [DEBUG][       Thread-600927][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:55:10,662 [DEBUG][       Thread-600927][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:55:10,663 [DEBUG][       Thread-600927][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:55:10,663 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:55:10,663 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:55:10,664 [DEBUG][       Thread-600927][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:55:10,665 [DEBUG][       Thread-600927][   transport.py][1871] : userauth is OK
2025-07-01 09:55:10,678 [ INFO][       Thread-600927][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:55:10,678 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:55:11,309 [DEBUG][       Thread-600927][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:55:11,309 [DEBUG][       Thread-600927][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:55:11,352 [DEBUG][       Thread-600927][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:55:11,353 [DEBUG][       Thread-600927][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:55:11,355 [DEBUG][       Thread-600927][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:55:11,367 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:55:11,368 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:55:11,369 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:55:11,371 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:55:11,375 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:55:11,377 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:55:11,377 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:55:11,378 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:55:11,378 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.329461 -999.00   +9.40  39.84     54   +0.70 1 2 2 1 1   887    0 9.55 28.13 ----- 39.8 39.8 17.6 52.1 -999.0 -999.0 11.5 -24.1 10.7 -22.9 11.5 -22.5
2025-07-01 09:55:11,378 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:55:11,378 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:55:11,378 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.329461
2025-07-01 09:55:11,378 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:55:11,379 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:55:11,379 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:55:11,379 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:55:11,379 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 09:55:11,379 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:54:36', tmtdew=10.07, humidity=49.41, cloud=0.0, wind=32.8, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:54:25.430', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:55:11,380 [DEBUG][       Thread-600927][   transport.py][1871] : EOF in transport thread
2025-07-01 09:55:11,464 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:55:11,479 [DEBUG][       Thread-600930][   transport.py][1871] : starting thread (client mode): 0x81a50c0
2025-07-01 09:55:11,479 [DEBUG][       Thread-600930][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:55:11,499 [DEBUG][       Thread-600930][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:55:11,499 [ INFO][       Thread-600930][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:55:11,508 [DEBUG][       Thread-600930][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:55:11,508 [DEBUG][       Thread-600930][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:55:11,508 [DEBUG][       Thread-600930][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:55:11,508 [DEBUG][       Thread-600930][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:55:11,508 [DEBUG][       Thread-600930][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:55:11,508 [DEBUG][       Thread-600930][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:55:11,508 [DEBUG][       Thread-600930][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:55:11,508 [DEBUG][       Thread-600930][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:55:11,508 [DEBUG][       Thread-600930][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:55:11,508 [DEBUG][       Thread-600930][   transport.py][1871] : client lang: <none>
2025-07-01 09:55:11,508 [DEBUG][       Thread-600930][   transport.py][1871] : server lang: <none>
2025-07-01 09:55:11,509 [DEBUG][       Thread-600930][   transport.py][1871] : kex follows: False
2025-07-01 09:55:11,509 [DEBUG][       Thread-600930][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:55:11,509 [DEBUG][       Thread-600930][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:55:11,509 [DEBUG][       Thread-600930][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:55:11,509 [DEBUG][       Thread-600930][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:55:11,509 [DEBUG][       Thread-600930][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:55:11,509 [DEBUG][       Thread-600930][   transport.py][1871] : Compression: none
2025-07-01 09:55:11,509 [DEBUG][       Thread-600930][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:55:11,567 [DEBUG][       Thread-600930][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:55:11,567 [DEBUG][       Thread-600930][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:55:11,568 [DEBUG][       Thread-600930][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:55:11,568 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:55:11,569 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:55:11,623 [DEBUG][       Thread-600930][   transport.py][1871] : userauth is OK
2025-07-01 09:55:11,624 [DEBUG][       Thread-600930][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:55:11,624 [DEBUG][       Thread-600930][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:55:11,624 [DEBUG][       Thread-600930][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:55:11,624 [DEBUG][       Thread-600930][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:55:11,648 [ INFO][       Thread-600930][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:55:11,649 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:55:11,649 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:55:11,903 [DEBUG][Thread-600932 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:55:12,703 [DEBUG][       Thread-600930][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:55:12,703 [DEBUG][       Thread-600930][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:55:12,751 [DEBUG][       Thread-600930][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:55:12,752 [DEBUG][       Thread-600930][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:55:12,761 [DEBUG][       Thread-600930][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:55:12,769 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:55:12,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-07-01 09:55:12,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-07-01 09:55:12,788 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:55:12,789 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:55:12,789 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:55:12,798 [DEBUG][       Thread-600930][   transport.py][1871] : EOF in transport thread
2025-07-01 09:55:20,925 [DEBUG][Thread-600933 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:55:21,799 [DEBUG][Thread-600934 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:55:22,790 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:55:22,791 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:55:22,791 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:55:22,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-07-01 09:55:23,269 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 55, 8), 10.11, 49.27, 0.0, 34.37, 9.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:55:23,270 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:55:08
2025-07-01 09:55:23,355 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:55:23,362 [DEBUG][       Thread-600935][   transport.py][1871] : starting thread (client mode): 0x82b33d0
2025-07-01 09:55:23,362 [DEBUG][       Thread-600935][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:55:23,383 [DEBUG][       Thread-600935][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:55:23,383 [ INFO][       Thread-600935][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:55:23,387 [DEBUG][       Thread-600935][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:55:23,387 [DEBUG][       Thread-600935][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:55:23,387 [DEBUG][       Thread-600935][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:55:23,387 [DEBUG][       Thread-600935][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:55:23,387 [DEBUG][       Thread-600935][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:55:23,387 [DEBUG][       Thread-600935][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:55:23,387 [DEBUG][       Thread-600935][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:55:23,387 [DEBUG][       Thread-600935][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:55:23,387 [DEBUG][       Thread-600935][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:55:23,387 [DEBUG][       Thread-600935][   transport.py][1871] : client lang: <none>
2025-07-01 09:55:23,387 [DEBUG][       Thread-600935][   transport.py][1871] : server lang: <none>
2025-07-01 09:55:23,387 [DEBUG][       Thread-600935][   transport.py][1871] : kex follows: False
2025-07-01 09:55:23,387 [DEBUG][       Thread-600935][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:55:23,387 [DEBUG][       Thread-600935][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:55:23,387 [DEBUG][       Thread-600935][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:55:23,387 [DEBUG][       Thread-600935][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:55:23,387 [DEBUG][       Thread-600935][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:55:23,387 [DEBUG][       Thread-600935][   transport.py][1871] : Compression: none
2025-07-01 09:55:23,387 [DEBUG][       Thread-600935][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:55:23,405 [DEBUG][       Thread-600935][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:55:23,405 [DEBUG][       Thread-600935][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:55:23,406 [DEBUG][       Thread-600935][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:55:23,406 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:55:23,406 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:55:23,407 [DEBUG][       Thread-600935][   transport.py][1871] : userauth is OK
2025-07-01 09:55:23,420 [ INFO][       Thread-600935][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:55:23,421 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:55:24,051 [DEBUG][       Thread-600935][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:55:24,051 [DEBUG][       Thread-600935][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:55:24,093 [DEBUG][       Thread-600935][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:55:24,093 [DEBUG][       Thread-600935][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:55:24,096 [DEBUG][       Thread-600935][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:55:24,111 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:55:24,111 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:55:24,114 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:55:24,115 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:55:24,121 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:55:24,123 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:55:24,123 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:55:24,124 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:55:24,124 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.329808 -999.00   +9.40  49.53     54   +0.60 1 1 2 1 1   887    0 9.50 26.83 ----- 49.5 49.5 19.4 52.3 12.4 -23.7 11.5 -24.4 10.7 -22.7 11.5 -22.4
2025-07-01 09:55:24,124 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:55:24,124 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:55:24,124 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.329808
2025-07-01 09:55:24,124 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:55:24,125 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:55:24,125 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:55:24,125 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:55:24,125 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:55:24,125 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:55:08', tmtdew=10.11, humidity=49.27, cloud=0.0, wind=34.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:54:55.411', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:55:24,127 [DEBUG][       Thread-600935][   transport.py][1871] : EOF in transport thread
2025-07-01 09:55:24,209 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:55:24,222 [DEBUG][       Thread-600938][   transport.py][1871] : starting thread (client mode): 0x818e8f0
2025-07-01 09:55:24,222 [DEBUG][       Thread-600938][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:55:24,239 [DEBUG][       Thread-600938][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:55:24,239 [ INFO][       Thread-600938][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:55:24,248 [DEBUG][       Thread-600938][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:55:24,248 [DEBUG][       Thread-600938][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:55:24,249 [DEBUG][       Thread-600938][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:55:24,249 [DEBUG][       Thread-600938][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:55:24,249 [DEBUG][       Thread-600938][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:55:24,249 [DEBUG][       Thread-600938][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:55:24,249 [DEBUG][       Thread-600938][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:55:24,249 [DEBUG][       Thread-600938][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:55:24,249 [DEBUG][       Thread-600938][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:55:24,249 [DEBUG][       Thread-600938][   transport.py][1871] : client lang: <none>
2025-07-01 09:55:24,249 [DEBUG][       Thread-600938][   transport.py][1871] : server lang: <none>
2025-07-01 09:55:24,249 [DEBUG][       Thread-600938][   transport.py][1871] : kex follows: False
2025-07-01 09:55:24,249 [DEBUG][       Thread-600938][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:55:24,249 [DEBUG][       Thread-600938][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:55:24,249 [DEBUG][       Thread-600938][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:55:24,249 [DEBUG][       Thread-600938][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:55:24,249 [DEBUG][       Thread-600938][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:55:24,249 [DEBUG][       Thread-600938][   transport.py][1871] : Compression: none
2025-07-01 09:55:24,249 [DEBUG][       Thread-600938][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:55:24,309 [DEBUG][       Thread-600938][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:55:24,309 [DEBUG][       Thread-600938][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:55:24,310 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:55:24,310 [DEBUG][       Thread-600938][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:55:24,311 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:55:24,375 [DEBUG][       Thread-600938][   transport.py][1871] : userauth is OK
2025-07-01 09:55:24,375 [DEBUG][       Thread-600938][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:55:24,376 [DEBUG][       Thread-600938][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:55:24,376 [DEBUG][       Thread-600938][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:55:24,376 [DEBUG][       Thread-600938][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:55:24,395 [ INFO][       Thread-600938][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:55:24,395 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:55:24,395 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:55:25,428 [DEBUG][       Thread-600938][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:55:25,428 [DEBUG][       Thread-600938][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:55:25,476 [DEBUG][       Thread-600938][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:55:25,476 [DEBUG][       Thread-600938][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:55:25,485 [DEBUG][       Thread-600938][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:55:25,494 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:55:25,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')
2025-07-01 09:55:25,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-07-01 09:55:25,517 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:55:25,517 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:55:25,517 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:55:25,525 [DEBUG][       Thread-600938][   transport.py][1871] : EOF in transport thread
2025-07-01 09:55:29,947 [DEBUG][Thread-600940 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:55:35,524 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:55:35,524 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:55:35,524 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:55:35,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-07-01 09:55:36,008 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 55, 8), 10.11, 49.27, 0.0, 34.37, 9.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:55:36,008 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:55:08
2025-07-01 09:55:36,094 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:55:36,099 [DEBUG][       Thread-600941][   transport.py][1871] : starting thread (client mode): 0x82b1840
2025-07-01 09:55:36,099 [DEBUG][       Thread-600941][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:55:36,124 [DEBUG][       Thread-600941][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:55:36,124 [ INFO][       Thread-600941][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:55:36,128 [DEBUG][       Thread-600941][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:55:36,128 [DEBUG][       Thread-600941][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:55:36,128 [DEBUG][       Thread-600941][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:55:36,128 [DEBUG][       Thread-600941][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:55:36,128 [DEBUG][       Thread-600941][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:55:36,128 [DEBUG][       Thread-600941][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:55:36,128 [DEBUG][       Thread-600941][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:55:36,128 [DEBUG][       Thread-600941][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:55:36,129 [DEBUG][       Thread-600941][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:55:36,129 [DEBUG][       Thread-600941][   transport.py][1871] : client lang: <none>
2025-07-01 09:55:36,129 [DEBUG][       Thread-600941][   transport.py][1871] : server lang: <none>
2025-07-01 09:55:36,129 [DEBUG][       Thread-600941][   transport.py][1871] : kex follows: False
2025-07-01 09:55:36,129 [DEBUG][       Thread-600941][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:55:36,129 [DEBUG][       Thread-600941][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:55:36,129 [DEBUG][       Thread-600941][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:55:36,129 [DEBUG][       Thread-600941][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:55:36,129 [DEBUG][       Thread-600941][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:55:36,129 [DEBUG][       Thread-600941][   transport.py][1871] : Compression: none
2025-07-01 09:55:36,129 [DEBUG][       Thread-600941][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:55:36,145 [DEBUG][       Thread-600941][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:55:36,146 [DEBUG][       Thread-600941][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:55:36,146 [DEBUG][       Thread-600941][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:55:36,147 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:55:36,147 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:55:36,148 [DEBUG][       Thread-600941][   transport.py][1871] : userauth is OK
2025-07-01 09:55:36,164 [ INFO][       Thread-600941][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:55:36,165 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:55:36,813 [DEBUG][       Thread-600941][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:55:36,814 [DEBUG][       Thread-600941][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:55:36,857 [DEBUG][       Thread-600941][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:55:36,857 [DEBUG][       Thread-600941][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:55:36,861 [DEBUG][       Thread-600941][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:55:36,873 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:55:36,873 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:55:36,875 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:55:36,876 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:55:36,882 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:55:36,883 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:55:36,884 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:55:36,884 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:55:36,884 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.329808 -999.00   +9.40  49.53     54   +0.60 1 1 2 1 1   887    0 9.50 26.83 ----- 49.5 49.5 19.4 52.3 12.4 -23.7 11.5 -24.4 10.7 -22.7 11.5 -22.4
2025-07-01 09:55:36,884 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:55:36,884 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:55:36,885 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.329808
2025-07-01 09:55:36,885 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:55:36,885 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:55:36,886 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:55:36,886 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:55:36,886 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:55:36,886 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:55:08', tmtdew=10.11, humidity=49.27, cloud=0.0, wind=34.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:54:55.411', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:55:36,886 [DEBUG][       Thread-600941][   transport.py][1871] : EOF in transport thread
2025-07-01 09:55:36,969 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:55:36,979 [DEBUG][       Thread-600944][   transport.py][1871] : starting thread (client mode): 0x81709d0
2025-07-01 09:55:36,979 [DEBUG][       Thread-600944][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:55:36,997 [DEBUG][       Thread-600944][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:55:36,997 [ INFO][       Thread-600944][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:55:37,004 [DEBUG][       Thread-600944][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:55:37,004 [DEBUG][       Thread-600944][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:55:37,004 [DEBUG][       Thread-600944][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:55:37,004 [DEBUG][       Thread-600944][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:55:37,004 [DEBUG][       Thread-600944][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:55:37,004 [DEBUG][       Thread-600944][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:55:37,004 [DEBUG][       Thread-600944][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:55:37,004 [DEBUG][       Thread-600944][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:55:37,004 [DEBUG][       Thread-600944][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:55:37,004 [DEBUG][       Thread-600944][   transport.py][1871] : client lang: <none>
2025-07-01 09:55:37,004 [DEBUG][       Thread-600944][   transport.py][1871] : server lang: <none>
2025-07-01 09:55:37,004 [DEBUG][       Thread-600944][   transport.py][1871] : kex follows: False
2025-07-01 09:55:37,004 [DEBUG][       Thread-600944][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:55:37,004 [DEBUG][       Thread-600944][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:55:37,004 [DEBUG][       Thread-600944][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:55:37,005 [DEBUG][       Thread-600944][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:55:37,005 [DEBUG][       Thread-600944][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:55:37,005 [DEBUG][       Thread-600944][   transport.py][1871] : Compression: none
2025-07-01 09:55:37,005 [DEBUG][       Thread-600944][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:55:37,064 [DEBUG][       Thread-600944][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:55:37,065 [DEBUG][       Thread-600944][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:55:37,065 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:55:37,066 [DEBUG][       Thread-600944][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:55:37,067 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:55:37,119 [DEBUG][       Thread-600944][   transport.py][1871] : userauth is OK
2025-07-01 09:55:37,120 [DEBUG][       Thread-600944][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:55:37,120 [DEBUG][       Thread-600944][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:55:37,120 [DEBUG][       Thread-600944][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:55:37,121 [DEBUG][       Thread-600944][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:55:37,150 [ INFO][       Thread-600944][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:55:37,151 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:55:37,151 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:55:38,169 [DEBUG][       Thread-600944][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:55:38,169 [DEBUG][       Thread-600944][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:55:38,220 [DEBUG][       Thread-600944][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:55:38,220 [DEBUG][       Thread-600944][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:55:38,229 [DEBUG][       Thread-600944][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:55:38,239 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:55:38,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-07-01 09:55:38,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-07-01 09:55:38,257 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:55:38,257 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:55:38,258 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:55:38,266 [DEBUG][       Thread-600944][   transport.py][1871] : EOF in transport thread
2025-07-01 09:55:38,982 [DEBUG][Thread-600946 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:55:48,009 [DEBUG][Thread-600947 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:55:48,261 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:55:48,261 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:55:48,261 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:55:48,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-07-01 09:55:48,732 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 55, 40), 10.15, 49.25, 0.0, 37.39, 9.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:55:48,732 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:55:40
2025-07-01 09:55:48,817 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:55:48,821 [DEBUG][       Thread-600948][   transport.py][1871] : starting thread (client mode): 0x82b28f0
2025-07-01 09:55:48,821 [DEBUG][       Thread-600948][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:55:48,841 [DEBUG][       Thread-600948][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:55:48,841 [ INFO][       Thread-600948][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:55:48,844 [DEBUG][       Thread-600948][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:55:48,844 [DEBUG][       Thread-600948][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:55:48,844 [DEBUG][       Thread-600948][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:55:48,844 [DEBUG][       Thread-600948][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:55:48,844 [DEBUG][       Thread-600948][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:55:48,844 [DEBUG][       Thread-600948][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:55:48,844 [DEBUG][       Thread-600948][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:55:48,844 [DEBUG][       Thread-600948][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:55:48,844 [DEBUG][       Thread-600948][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:55:48,844 [DEBUG][       Thread-600948][   transport.py][1871] : client lang: <none>
2025-07-01 09:55:48,844 [DEBUG][       Thread-600948][   transport.py][1871] : server lang: <none>
2025-07-01 09:55:48,844 [DEBUG][       Thread-600948][   transport.py][1871] : kex follows: False
2025-07-01 09:55:48,844 [DEBUG][       Thread-600948][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:55:48,844 [DEBUG][       Thread-600948][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:55:48,844 [DEBUG][       Thread-600948][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:55:48,844 [DEBUG][       Thread-600948][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:55:48,844 [DEBUG][       Thread-600948][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:55:48,844 [DEBUG][       Thread-600948][   transport.py][1871] : Compression: none
2025-07-01 09:55:48,844 [DEBUG][       Thread-600948][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:55:48,857 [DEBUG][       Thread-600948][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:55:48,857 [DEBUG][       Thread-600948][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:55:48,858 [DEBUG][       Thread-600948][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:55:48,858 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:55:48,858 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:55:48,859 [DEBUG][       Thread-600948][   transport.py][1871] : userauth is OK
2025-07-01 09:55:48,883 [ INFO][       Thread-600948][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:55:48,884 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:55:49,494 [DEBUG][       Thread-600948][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:55:49,494 [DEBUG][       Thread-600948][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:55:49,537 [DEBUG][       Thread-600948][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:55:49,537 [DEBUG][       Thread-600948][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:55:49,539 [DEBUG][       Thread-600948][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:55:49,551 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:55:49,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:55:49,553 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:55:49,555 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:55:49,560 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:55:49,561 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:55:49,562 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:55:49,562 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:55:49,562 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.330155 -999.00   +9.40  31.04     54   +0.70 1 1 2 1 1   887    0 9.53 27.41 ----- 31.0 31.0 23.6 49.2 12.4 -23.8 11.5 -25.0 10.7 -22.9 11.5 -22.6
2025-07-01 09:55:49,562 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:55:49,563 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:55:49,563 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.330155
2025-07-01 09:55:49,563 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:55:49,564 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:55:49,564 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:55:49,564 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:55:49,564 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:55:49,564 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:55:40', tmtdew=10.15, humidity=49.25, cloud=0.0, wind=37.39, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:55:25.392', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:55:49,565 [DEBUG][       Thread-600948][   transport.py][1871] : EOF in transport thread
2025-07-01 09:55:49,647 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:55:49,659 [DEBUG][       Thread-600951][   transport.py][1871] : starting thread (client mode): 0x82b15d0
2025-07-01 09:55:49,659 [DEBUG][       Thread-600951][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:55:49,674 [DEBUG][       Thread-600951][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:55:49,674 [ INFO][       Thread-600951][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:55:49,681 [DEBUG][       Thread-600951][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:55:49,681 [DEBUG][       Thread-600951][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:55:49,682 [DEBUG][       Thread-600951][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:55:49,682 [DEBUG][       Thread-600951][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:55:49,682 [DEBUG][       Thread-600951][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:55:49,682 [DEBUG][       Thread-600951][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:55:49,682 [DEBUG][       Thread-600951][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:55:49,682 [DEBUG][       Thread-600951][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:55:49,682 [DEBUG][       Thread-600951][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:55:49,682 [DEBUG][       Thread-600951][   transport.py][1871] : client lang: <none>
2025-07-01 09:55:49,682 [DEBUG][       Thread-600951][   transport.py][1871] : server lang: <none>
2025-07-01 09:55:49,682 [DEBUG][       Thread-600951][   transport.py][1871] : kex follows: False
2025-07-01 09:55:49,682 [DEBUG][       Thread-600951][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:55:49,682 [DEBUG][       Thread-600951][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:55:49,682 [DEBUG][       Thread-600951][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:55:49,682 [DEBUG][       Thread-600951][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:55:49,682 [DEBUG][       Thread-600951][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:55:49,682 [DEBUG][       Thread-600951][   transport.py][1871] : Compression: none
2025-07-01 09:55:49,682 [DEBUG][       Thread-600951][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:55:49,743 [DEBUG][       Thread-600951][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:55:49,744 [DEBUG][       Thread-600951][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:55:49,744 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:55:49,745 [DEBUG][       Thread-600951][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:55:49,746 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:55:49,803 [DEBUG][       Thread-600951][   transport.py][1871] : userauth is OK
2025-07-01 09:55:49,803 [DEBUG][       Thread-600951][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:55:49,804 [DEBUG][       Thread-600951][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:55:49,804 [DEBUG][       Thread-600951][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:55:49,804 [DEBUG][       Thread-600951][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:55:49,822 [ INFO][       Thread-600951][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:55:49,822 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:55:49,822 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:55:50,871 [DEBUG][       Thread-600951][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:55:50,871 [DEBUG][       Thread-600951][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:55:50,926 [DEBUG][       Thread-600951][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:55:50,927 [DEBUG][       Thread-600951][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:55:50,938 [DEBUG][       Thread-600951][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:55:50,947 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:55:50,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-07-01 09:55:50,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-07-01 09:55:50,966 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:55:50,966 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:55:50,966 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:55:50,974 [DEBUG][       Thread-600951][   transport.py][1871] : EOF in transport thread
2025-07-01 09:55:54,951 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:55:54,952 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:55:57,030 [DEBUG][Thread-600953 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:56:00,977 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:56:00,977 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:56:00,977 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:56:00,980 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:56:01,457 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 55, 40), 10.15, 49.25, 0.0, 37.39, 9.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:56:01,457 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:55:40
2025-07-01 09:56:01,542 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:56:01,546 [DEBUG][       Thread-600954][   transport.py][1871] : starting thread (client mode): 0x8172740
2025-07-01 09:56:01,546 [DEBUG][       Thread-600954][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:56:01,565 [DEBUG][       Thread-600954][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:56:01,565 [ INFO][       Thread-600954][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:56:01,568 [DEBUG][       Thread-600954][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:56:01,568 [DEBUG][       Thread-600954][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:56:01,568 [DEBUG][       Thread-600954][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:56:01,568 [DEBUG][       Thread-600954][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:56:01,568 [DEBUG][       Thread-600954][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:56:01,568 [DEBUG][       Thread-600954][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:56:01,568 [DEBUG][       Thread-600954][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:56:01,568 [DEBUG][       Thread-600954][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:56:01,568 [DEBUG][       Thread-600954][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:56:01,568 [DEBUG][       Thread-600954][   transport.py][1871] : client lang: <none>
2025-07-01 09:56:01,568 [DEBUG][       Thread-600954][   transport.py][1871] : server lang: <none>
2025-07-01 09:56:01,568 [DEBUG][       Thread-600954][   transport.py][1871] : kex follows: False
2025-07-01 09:56:01,568 [DEBUG][       Thread-600954][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:56:01,568 [DEBUG][       Thread-600954][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:56:01,568 [DEBUG][       Thread-600954][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:56:01,568 [DEBUG][       Thread-600954][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:56:01,568 [DEBUG][       Thread-600954][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:56:01,568 [DEBUG][       Thread-600954][   transport.py][1871] : Compression: none
2025-07-01 09:56:01,568 [DEBUG][       Thread-600954][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:56:01,584 [DEBUG][       Thread-600954][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:56:01,584 [DEBUG][       Thread-600954][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:56:01,585 [DEBUG][       Thread-600954][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:56:01,585 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:56:01,585 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:56:01,586 [DEBUG][       Thread-600954][   transport.py][1871] : userauth is OK
2025-07-01 09:56:01,611 [ INFO][       Thread-600954][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:56:01,612 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:56:02,229 [DEBUG][       Thread-600954][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:56:02,229 [DEBUG][       Thread-600954][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:56:02,273 [DEBUG][       Thread-600954][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:56:02,273 [DEBUG][       Thread-600954][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:56:02,275 [DEBUG][       Thread-600954][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:56:02,286 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:56:02,286 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:56:02,288 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:56:02,289 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:56:02,292 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:56:02,293 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:56:02,293 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:56:02,293 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:56:02,293 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.330155 -999.00   +9.40  31.04     54   +0.70 1 1 2 1 1   887    0 9.53 27.41 ----- 31.0 31.0 23.6 49.2 12.4 -23.8 11.5 -25.0 10.7 -22.9 11.5 -22.6
2025-07-01 09:56:02,293 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:56:02,293 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:56:02,293 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.330155
2025-07-01 09:56:02,293 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:56:02,293 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:56:02,293 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:56:02,293 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:56:02,293 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:56:02,293 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:55:40', tmtdew=10.15, humidity=49.25, cloud=0.0, wind=37.39, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:55:25.392', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:56:02,294 [DEBUG][       Thread-600954][   transport.py][1871] : EOF in transport thread
2025-07-01 09:56:02,365 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:56:02,375 [DEBUG][       Thread-600957][   transport.py][1871] : starting thread (client mode): 0x8105f90
2025-07-01 09:56:02,375 [DEBUG][       Thread-600957][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:56:02,390 [DEBUG][       Thread-600957][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:56:02,390 [ INFO][       Thread-600957][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:56:02,398 [DEBUG][       Thread-600957][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:56:02,398 [DEBUG][       Thread-600957][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:56:02,398 [DEBUG][       Thread-600957][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:56:02,398 [DEBUG][       Thread-600957][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:56:02,398 [DEBUG][       Thread-600957][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:56:02,398 [DEBUG][       Thread-600957][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:56:02,398 [DEBUG][       Thread-600957][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:56:02,398 [DEBUG][       Thread-600957][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:56:02,398 [DEBUG][       Thread-600957][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:56:02,398 [DEBUG][       Thread-600957][   transport.py][1871] : client lang: <none>
2025-07-01 09:56:02,398 [DEBUG][       Thread-600957][   transport.py][1871] : server lang: <none>
2025-07-01 09:56:02,398 [DEBUG][       Thread-600957][   transport.py][1871] : kex follows: False
2025-07-01 09:56:02,398 [DEBUG][       Thread-600957][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:56:02,398 [DEBUG][       Thread-600957][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:56:02,398 [DEBUG][       Thread-600957][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:56:02,398 [DEBUG][       Thread-600957][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:56:02,398 [DEBUG][       Thread-600957][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:56:02,398 [DEBUG][       Thread-600957][   transport.py][1871] : Compression: none
2025-07-01 09:56:02,399 [DEBUG][       Thread-600957][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:56:02,455 [DEBUG][       Thread-600957][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:56:02,456 [DEBUG][       Thread-600957][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:56:02,456 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:56:02,457 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:56:02,457 [DEBUG][       Thread-600957][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:56:02,511 [DEBUG][       Thread-600957][   transport.py][1871] : userauth is OK
2025-07-01 09:56:02,512 [DEBUG][       Thread-600957][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:56:02,512 [DEBUG][       Thread-600957][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:56:02,512 [DEBUG][       Thread-600957][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:56:02,512 [DEBUG][       Thread-600957][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:56:02,536 [ INFO][       Thread-600957][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:56:02,537 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:56:02,537 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:56:03,572 [DEBUG][       Thread-600957][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:56:03,573 [DEBUG][       Thread-600957][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:56:03,624 [DEBUG][       Thread-600957][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:56:03,624 [DEBUG][       Thread-600957][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:56:03,633 [DEBUG][       Thread-600957][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:56:03,642 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:56:03,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-07-01 09:56:03,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-07-01 09:56:03,658 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:56:03,658 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:56:03,658 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:56:03,666 [DEBUG][       Thread-600957][   transport.py][1871] : EOF in transport thread
2025-07-01 09:56:06,072 [DEBUG][Thread-600959 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:56:13,668 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:56:13,668 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:56:13,668 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:56:13,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-07-01 09:56:14,161 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 55, 40), 10.15, 49.25, 0.0, 37.39, 9.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:56:14,161 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:55:40
2025-07-01 09:56:14,243 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:56:14,248 [DEBUG][       Thread-600960][   transport.py][1871] : starting thread (client mode): 0x81707c0
2025-07-01 09:56:14,248 [DEBUG][       Thread-600960][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:56:14,268 [DEBUG][       Thread-600960][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:56:14,268 [ INFO][       Thread-600960][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:56:14,271 [DEBUG][       Thread-600960][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:56:14,271 [DEBUG][       Thread-600960][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:56:14,271 [DEBUG][       Thread-600960][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:56:14,271 [DEBUG][       Thread-600960][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:56:14,271 [DEBUG][       Thread-600960][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:56:14,271 [DEBUG][       Thread-600960][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:56:14,271 [DEBUG][       Thread-600960][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:56:14,272 [DEBUG][       Thread-600960][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:56:14,272 [DEBUG][       Thread-600960][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:56:14,272 [DEBUG][       Thread-600960][   transport.py][1871] : client lang: <none>
2025-07-01 09:56:14,272 [DEBUG][       Thread-600960][   transport.py][1871] : server lang: <none>
2025-07-01 09:56:14,272 [DEBUG][       Thread-600960][   transport.py][1871] : kex follows: False
2025-07-01 09:56:14,272 [DEBUG][       Thread-600960][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:56:14,272 [DEBUG][       Thread-600960][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:56:14,272 [DEBUG][       Thread-600960][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:56:14,272 [DEBUG][       Thread-600960][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:56:14,272 [DEBUG][       Thread-600960][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:56:14,272 [DEBUG][       Thread-600960][   transport.py][1871] : Compression: none
2025-07-01 09:56:14,272 [DEBUG][       Thread-600960][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:56:14,290 [DEBUG][       Thread-600960][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:56:14,290 [DEBUG][       Thread-600960][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:56:14,291 [DEBUG][       Thread-600960][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:56:14,291 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:56:14,291 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:56:14,292 [DEBUG][       Thread-600960][   transport.py][1871] : userauth is OK
2025-07-01 09:56:14,317 [ INFO][       Thread-600960][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:56:14,317 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:56:14,927 [DEBUG][       Thread-600960][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:56:14,927 [DEBUG][       Thread-600960][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:56:14,969 [DEBUG][       Thread-600960][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:56:14,969 [DEBUG][       Thread-600960][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:56:14,973 [DEBUG][       Thread-600960][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:56:14,985 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:56:14,985 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:56:14,987 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:56:14,989 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:56:14,995 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:56:14,997 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:56:14,997 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:56:14,997 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:56:14,998 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.330155 -999.00   +9.40  31.04     54   +0.70 1 1 2 1 1   887    0 9.53 27.41 ----- 31.0 31.0 23.6 49.2 12.4 -23.8 11.5 -25.0 10.7 -22.9 11.5 -22.6
2025-07-01 09:56:14,998 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:56:14,998 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:56:14,998 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.330155
2025-07-01 09:56:14,998 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:56:14,999 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:56:14,999 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:56:14,999 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:56:14,999 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:56:14,999 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:55:40', tmtdew=10.15, humidity=49.25, cloud=0.0, wind=37.39, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:55:25.392', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:56:14,999 [DEBUG][       Thread-600960][   transport.py][1871] : EOF in transport thread
2025-07-01 09:56:15,083 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:56:15,091 [DEBUG][Thread-600963 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:56:15,094 [DEBUG][       Thread-600964][   transport.py][1871] : starting thread (client mode): 0x81a73d0
2025-07-01 09:56:15,094 [DEBUG][       Thread-600964][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:56:15,109 [DEBUG][       Thread-600964][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:56:15,109 [ INFO][       Thread-600964][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:56:15,116 [DEBUG][       Thread-600964][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:56:15,117 [DEBUG][       Thread-600964][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:56:15,117 [DEBUG][       Thread-600964][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:56:15,117 [DEBUG][       Thread-600964][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:56:15,117 [DEBUG][       Thread-600964][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:56:15,117 [DEBUG][       Thread-600964][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:56:15,117 [DEBUG][       Thread-600964][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:56:15,117 [DEBUG][       Thread-600964][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:56:15,117 [DEBUG][       Thread-600964][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:56:15,117 [DEBUG][       Thread-600964][   transport.py][1871] : client lang: <none>
2025-07-01 09:56:15,117 [DEBUG][       Thread-600964][   transport.py][1871] : server lang: <none>
2025-07-01 09:56:15,117 [DEBUG][       Thread-600964][   transport.py][1871] : kex follows: False
2025-07-01 09:56:15,117 [DEBUG][       Thread-600964][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:56:15,117 [DEBUG][       Thread-600964][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:56:15,117 [DEBUG][       Thread-600964][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:56:15,117 [DEBUG][       Thread-600964][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:56:15,117 [DEBUG][       Thread-600964][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:56:15,117 [DEBUG][       Thread-600964][   transport.py][1871] : Compression: none
2025-07-01 09:56:15,117 [DEBUG][       Thread-600964][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:56:15,175 [DEBUG][       Thread-600964][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:56:15,176 [DEBUG][       Thread-600964][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:56:15,176 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:56:15,177 [DEBUG][       Thread-600964][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:56:15,178 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:56:15,231 [DEBUG][       Thread-600964][   transport.py][1871] : userauth is OK
2025-07-01 09:56:15,231 [DEBUG][       Thread-600964][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:56:15,231 [DEBUG][       Thread-600964][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:56:15,231 [DEBUG][       Thread-600964][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:56:15,231 [DEBUG][       Thread-600964][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:56:15,245 [ INFO][       Thread-600964][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:56:15,245 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:56:15,245 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:56:16,266 [DEBUG][       Thread-600964][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:56:16,267 [DEBUG][       Thread-600964][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:56:16,316 [DEBUG][       Thread-600964][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:56:16,316 [DEBUG][       Thread-600964][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:56:16,325 [DEBUG][       Thread-600964][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:56:16,336 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:56:16,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-07-01 09:56:16,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-07-01 09:56:16,354 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:56:16,355 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:56:16,355 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:56:16,363 [DEBUG][       Thread-600964][   transport.py][1871] : EOF in transport thread
2025-07-01 09:56:21,849 [DEBUG][Thread-600966 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:56:24,110 [DEBUG][Thread-600967 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:56:26,365 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:56:26,366 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:56:26,366 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:56:26,369 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:56:26,852 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 56, 12), 10.16, 49.2, 0.0, 38.57, 9.56, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:56:26,852 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:56:12
2025-07-01 09:56:26,938 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:56:26,945 [DEBUG][       Thread-600968][   transport.py][1871] : starting thread (client mode): 0x75a8730
2025-07-01 09:56:26,945 [DEBUG][       Thread-600968][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:56:26,966 [DEBUG][       Thread-600968][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:56:26,966 [ INFO][       Thread-600968][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:56:26,969 [DEBUG][       Thread-600968][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:56:26,970 [DEBUG][       Thread-600968][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:56:26,970 [DEBUG][       Thread-600968][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:56:26,970 [DEBUG][       Thread-600968][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:56:26,970 [DEBUG][       Thread-600968][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:56:26,970 [DEBUG][       Thread-600968][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:56:26,970 [DEBUG][       Thread-600968][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:56:26,970 [DEBUG][       Thread-600968][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:56:26,970 [DEBUG][       Thread-600968][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:56:26,970 [DEBUG][       Thread-600968][   transport.py][1871] : client lang: <none>
2025-07-01 09:56:26,970 [DEBUG][       Thread-600968][   transport.py][1871] : server lang: <none>
2025-07-01 09:56:26,970 [DEBUG][       Thread-600968][   transport.py][1871] : kex follows: False
2025-07-01 09:56:26,970 [DEBUG][       Thread-600968][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:56:26,970 [DEBUG][       Thread-600968][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:56:26,970 [DEBUG][       Thread-600968][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:56:26,970 [DEBUG][       Thread-600968][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:56:26,970 [DEBUG][       Thread-600968][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:56:26,970 [DEBUG][       Thread-600968][   transport.py][1871] : Compression: none
2025-07-01 09:56:26,970 [DEBUG][       Thread-600968][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:56:26,988 [DEBUG][       Thread-600968][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:56:26,988 [DEBUG][       Thread-600968][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:56:26,988 [DEBUG][       Thread-600968][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:56:26,989 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:56:26,989 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:56:26,990 [DEBUG][       Thread-600968][   transport.py][1871] : userauth is OK
2025-07-01 09:56:27,015 [ INFO][       Thread-600968][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:56:27,016 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:56:27,648 [DEBUG][       Thread-600968][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:56:27,649 [DEBUG][       Thread-600968][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:56:27,693 [DEBUG][       Thread-600968][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:56:27,693 [DEBUG][       Thread-600968][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:56:27,697 [DEBUG][       Thread-600968][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:56:27,708 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:56:27,708 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:56:27,710 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:56:27,712 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:56:27,717 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:56:27,719 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:56:27,719 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:56:27,720 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:56:27,720 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.330503 -999.00   +9.40  34.25     54   +0.70 1 1 2 1 1   887    0 9.46 25.88 ----- 34.2 34.2 19.4 53.0 12.4 -24.0 11.5 -24.6 10.7 -22.8 11.5 -22.7
2025-07-01 09:56:27,720 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:56:27,720 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:56:27,720 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.330503
2025-07-01 09:56:27,721 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:56:27,721 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:56:27,722 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:56:27,722 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:56:27,722 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:56:27,722 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:56:12', tmtdew=10.16, humidity=49.2, cloud=0.0, wind=38.57, temperature=9.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:55:55.459', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:56:27,723 [DEBUG][       Thread-600968][   transport.py][1871] : EOF in transport thread
2025-07-01 09:56:27,805 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:56:27,817 [DEBUG][       Thread-600971][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 09:56:27,817 [DEBUG][       Thread-600971][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:56:27,832 [DEBUG][       Thread-600971][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:56:27,832 [ INFO][       Thread-600971][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:56:27,840 [DEBUG][       Thread-600971][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:56:27,840 [DEBUG][       Thread-600971][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:56:27,840 [DEBUG][       Thread-600971][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:56:27,840 [DEBUG][       Thread-600971][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:56:27,840 [DEBUG][       Thread-600971][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:56:27,840 [DEBUG][       Thread-600971][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:56:27,840 [DEBUG][       Thread-600971][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:56:27,840 [DEBUG][       Thread-600971][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:56:27,840 [DEBUG][       Thread-600971][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:56:27,840 [DEBUG][       Thread-600971][   transport.py][1871] : client lang: <none>
2025-07-01 09:56:27,840 [DEBUG][       Thread-600971][   transport.py][1871] : server lang: <none>
2025-07-01 09:56:27,840 [DEBUG][       Thread-600971][   transport.py][1871] : kex follows: False
2025-07-01 09:56:27,840 [DEBUG][       Thread-600971][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:56:27,840 [DEBUG][       Thread-600971][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:56:27,840 [DEBUG][       Thread-600971][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:56:27,841 [DEBUG][       Thread-600971][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:56:27,841 [DEBUG][       Thread-600971][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:56:27,841 [DEBUG][       Thread-600971][   transport.py][1871] : Compression: none
2025-07-01 09:56:27,841 [DEBUG][       Thread-600971][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:56:27,899 [DEBUG][       Thread-600971][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:56:27,900 [DEBUG][       Thread-600971][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:56:27,900 [DEBUG][       Thread-600971][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:56:27,900 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:56:27,901 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:56:27,958 [DEBUG][       Thread-600971][   transport.py][1871] : userauth is OK
2025-07-01 09:56:27,958 [DEBUG][       Thread-600971][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:56:27,958 [DEBUG][       Thread-600971][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:56:27,958 [DEBUG][       Thread-600971][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:56:27,958 [DEBUG][       Thread-600971][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:56:27,977 [ INFO][       Thread-600971][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:56:27,978 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:56:27,978 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:56:29,001 [DEBUG][       Thread-600971][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:56:29,002 [DEBUG][       Thread-600971][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:56:29,052 [DEBUG][       Thread-600971][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:56:29,052 [DEBUG][       Thread-600971][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:56:29,061 [DEBUG][       Thread-600971][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:56:29,070 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:56:29,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-07-01 09:56:29,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-07-01 09:56:29,088 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:56:29,088 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:56:29,089 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:56:29,096 [DEBUG][       Thread-600971][   transport.py][1871] : EOF in transport thread
2025-07-01 09:56:33,132 [DEBUG][Thread-600973 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:56:39,099 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:56:39,099 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:56:39,099 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:56:39,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-07-01 09:56:39,577 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 56, 12), 10.16, 49.2, 0.0, 38.57, 9.56, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:56:39,577 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:56:12
2025-07-01 09:56:39,661 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:56:39,665 [DEBUG][       Thread-600974][   transport.py][1871] : starting thread (client mode): 0x8172770
2025-07-01 09:56:39,665 [DEBUG][       Thread-600974][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:56:39,687 [DEBUG][       Thread-600974][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:56:39,687 [ INFO][       Thread-600974][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:56:39,690 [DEBUG][       Thread-600974][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:56:39,690 [DEBUG][       Thread-600974][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:56:39,691 [DEBUG][       Thread-600974][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:56:39,691 [DEBUG][       Thread-600974][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:56:39,691 [DEBUG][       Thread-600974][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:56:39,691 [DEBUG][       Thread-600974][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:56:39,691 [DEBUG][       Thread-600974][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:56:39,691 [DEBUG][       Thread-600974][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:56:39,691 [DEBUG][       Thread-600974][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:56:39,691 [DEBUG][       Thread-600974][   transport.py][1871] : client lang: <none>
2025-07-01 09:56:39,691 [DEBUG][       Thread-600974][   transport.py][1871] : server lang: <none>
2025-07-01 09:56:39,691 [DEBUG][       Thread-600974][   transport.py][1871] : kex follows: False
2025-07-01 09:56:39,691 [DEBUG][       Thread-600974][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:56:39,691 [DEBUG][       Thread-600974][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:56:39,691 [DEBUG][       Thread-600974][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:56:39,691 [DEBUG][       Thread-600974][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:56:39,691 [DEBUG][       Thread-600974][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:56:39,691 [DEBUG][       Thread-600974][   transport.py][1871] : Compression: none
2025-07-01 09:56:39,691 [DEBUG][       Thread-600974][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:56:39,706 [DEBUG][       Thread-600974][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:56:39,706 [DEBUG][       Thread-600974][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:56:39,706 [DEBUG][       Thread-600974][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:56:39,706 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:56:39,706 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:56:39,707 [DEBUG][       Thread-600974][   transport.py][1871] : userauth is OK
2025-07-01 09:56:39,731 [ INFO][       Thread-600974][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:56:39,731 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:56:40,363 [DEBUG][       Thread-600974][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:56:40,364 [DEBUG][       Thread-600974][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:56:40,405 [DEBUG][       Thread-600974][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:56:40,405 [DEBUG][       Thread-600974][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:56:40,408 [DEBUG][       Thread-600974][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:56:40,419 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:56:40,420 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:56:40,421 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:56:40,423 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:56:40,428 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:56:40,430 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:56:40,430 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:56:40,431 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:56:40,431 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.330503 -999.00   +9.40  34.25     54   +0.70 1 1 2 1 1   887    0 9.46 25.88 ----- 34.2 34.2 19.4 53.0 12.4 -24.0 11.5 -24.6 10.7 -22.8 11.5 -22.7
2025-07-01 09:56:40,431 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:56:40,431 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:56:40,431 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.330503
2025-07-01 09:56:40,432 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:56:40,432 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:56:40,432 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:56:40,432 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:56:40,432 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:56:40,433 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:56:12', tmtdew=10.16, humidity=49.2, cloud=0.0, wind=38.57, temperature=9.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:55:55.459', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:56:40,433 [DEBUG][       Thread-600974][   transport.py][1871] : EOF in transport thread
2025-07-01 09:56:40,516 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:56:40,526 [DEBUG][       Thread-600977][   transport.py][1871] : starting thread (client mode): 0x75abb20
2025-07-01 09:56:40,526 [DEBUG][       Thread-600977][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:56:40,541 [DEBUG][       Thread-600977][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:56:40,541 [ INFO][       Thread-600977][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:56:40,550 [DEBUG][       Thread-600977][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:56:40,551 [DEBUG][       Thread-600977][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:56:40,551 [DEBUG][       Thread-600977][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:56:40,551 [DEBUG][       Thread-600977][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:56:40,551 [DEBUG][       Thread-600977][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:56:40,551 [DEBUG][       Thread-600977][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:56:40,551 [DEBUG][       Thread-600977][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:56:40,551 [DEBUG][       Thread-600977][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:56:40,551 [DEBUG][       Thread-600977][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:56:40,551 [DEBUG][       Thread-600977][   transport.py][1871] : client lang: <none>
2025-07-01 09:56:40,551 [DEBUG][       Thread-600977][   transport.py][1871] : server lang: <none>
2025-07-01 09:56:40,551 [DEBUG][       Thread-600977][   transport.py][1871] : kex follows: False
2025-07-01 09:56:40,551 [DEBUG][       Thread-600977][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:56:40,551 [DEBUG][       Thread-600977][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:56:40,551 [DEBUG][       Thread-600977][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:56:40,551 [DEBUG][       Thread-600977][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:56:40,551 [DEBUG][       Thread-600977][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:56:40,551 [DEBUG][       Thread-600977][   transport.py][1871] : Compression: none
2025-07-01 09:56:40,551 [DEBUG][       Thread-600977][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:56:40,611 [DEBUG][       Thread-600977][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:56:40,611 [DEBUG][       Thread-600977][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:56:40,612 [DEBUG][       Thread-600977][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:56:40,612 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:56:40,613 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:56:40,667 [DEBUG][       Thread-600977][   transport.py][1871] : userauth is OK
2025-07-01 09:56:40,667 [DEBUG][       Thread-600977][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:56:40,667 [DEBUG][       Thread-600977][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:56:40,667 [DEBUG][       Thread-600977][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:56:40,667 [DEBUG][       Thread-600977][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:56:40,686 [ INFO][       Thread-600977][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:56:40,687 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:56:40,687 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:56:41,725 [DEBUG][       Thread-600977][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:56:41,725 [DEBUG][       Thread-600977][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:56:41,776 [DEBUG][       Thread-600977][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:56:41,776 [DEBUG][       Thread-600977][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:56:41,786 [DEBUG][       Thread-600977][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:56:41,795 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:56:41,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-07-01 09:56:41,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') -> 00000000
2025-07-01 09:56:41,814 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:56:41,814 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:56:41,815 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:56:41,823 [DEBUG][       Thread-600977][   transport.py][1871] : EOF in transport thread
2025-07-01 09:56:42,165 [DEBUG][Thread-600979 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:56:51,185 [DEBUG][Thread-600980 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:56:51,825 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:56:51,825 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:56:51,825 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:56:51,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-07-01 09:56:52,306 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 56, 44), 10.12, 49.34, 0.0, 35.66, 9.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:56:52,306 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:56:44
2025-07-01 09:56:52,391 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:56:52,397 [DEBUG][       Thread-600981][   transport.py][1871] : starting thread (client mode): 0x81709d0
2025-07-01 09:56:52,397 [DEBUG][       Thread-600981][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:56:52,419 [DEBUG][       Thread-600981][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:56:52,419 [ INFO][       Thread-600981][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:56:52,422 [DEBUG][       Thread-600981][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:56:52,422 [DEBUG][       Thread-600981][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:56:52,422 [DEBUG][       Thread-600981][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:56:52,422 [DEBUG][       Thread-600981][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:56:52,422 [DEBUG][       Thread-600981][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:56:52,422 [DEBUG][       Thread-600981][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:56:52,422 [DEBUG][       Thread-600981][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:56:52,422 [DEBUG][       Thread-600981][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:56:52,422 [DEBUG][       Thread-600981][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:56:52,422 [DEBUG][       Thread-600981][   transport.py][1871] : client lang: <none>
2025-07-01 09:56:52,422 [DEBUG][       Thread-600981][   transport.py][1871] : server lang: <none>
2025-07-01 09:56:52,422 [DEBUG][       Thread-600981][   transport.py][1871] : kex follows: False
2025-07-01 09:56:52,422 [DEBUG][       Thread-600981][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:56:52,423 [DEBUG][       Thread-600981][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:56:52,423 [DEBUG][       Thread-600981][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:56:52,423 [DEBUG][       Thread-600981][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:56:52,423 [DEBUG][       Thread-600981][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:56:52,423 [DEBUG][       Thread-600981][   transport.py][1871] : Compression: none
2025-07-01 09:56:52,423 [DEBUG][       Thread-600981][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:56:52,438 [DEBUG][       Thread-600981][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:56:52,438 [DEBUG][       Thread-600981][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:56:52,438 [DEBUG][       Thread-600981][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:56:52,438 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:56:52,438 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:56:52,439 [DEBUG][       Thread-600981][   transport.py][1871] : userauth is OK
2025-07-01 09:56:52,463 [ INFO][       Thread-600981][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:56:52,463 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:56:53,134 [DEBUG][       Thread-600981][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:56:53,135 [DEBUG][       Thread-600981][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:56:53,177 [DEBUG][       Thread-600981][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:56:53,177 [DEBUG][       Thread-600981][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:56:53,180 [DEBUG][       Thread-600981][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:56:53,192 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:56:53,193 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:56:53,195 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:56:53,197 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:56:53,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:56:53,205 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:56:53,205 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:56:53,206 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:56:53,206 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.330503 -999.00   +9.40  34.25     54   +0.70 1 1 2 1 1   887    0 9.46 25.88 ----- 34.2 34.2 19.4 53.0 12.4 -24.0 11.5 -24.6 10.7 -22.8 11.5 -22.7
2025-07-01 09:56:53,206 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:56:53,206 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:56:53,206 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.330503
2025-07-01 09:56:53,207 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:56:53,207 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:56:53,207 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:56:53,208 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:56:53,208 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:56:53,208 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:56:44', tmtdew=10.12, humidity=49.34, cloud=0.0, wind=35.66, temperature=9.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:55:55.459', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:56:53,208 [DEBUG][       Thread-600981][   transport.py][1871] : EOF in transport thread
2025-07-01 09:56:53,291 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:56:53,303 [DEBUG][       Thread-600984][   transport.py][1871] : starting thread (client mode): 0x818c5e0
2025-07-01 09:56:53,303 [DEBUG][       Thread-600984][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:56:53,318 [DEBUG][       Thread-600984][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:56:53,318 [ INFO][       Thread-600984][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:56:53,326 [DEBUG][       Thread-600984][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:56:53,326 [DEBUG][       Thread-600984][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:56:53,326 [DEBUG][       Thread-600984][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:56:53,326 [DEBUG][       Thread-600984][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:56:53,326 [DEBUG][       Thread-600984][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:56:53,326 [DEBUG][       Thread-600984][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:56:53,326 [DEBUG][       Thread-600984][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:56:53,326 [DEBUG][       Thread-600984][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:56:53,326 [DEBUG][       Thread-600984][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:56:53,326 [DEBUG][       Thread-600984][   transport.py][1871] : client lang: <none>
2025-07-01 09:56:53,326 [DEBUG][       Thread-600984][   transport.py][1871] : server lang: <none>
2025-07-01 09:56:53,326 [DEBUG][       Thread-600984][   transport.py][1871] : kex follows: False
2025-07-01 09:56:53,326 [DEBUG][       Thread-600984][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:56:53,326 [DEBUG][       Thread-600984][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:56:53,326 [DEBUG][       Thread-600984][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:56:53,326 [DEBUG][       Thread-600984][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:56:53,326 [DEBUG][       Thread-600984][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:56:53,326 [DEBUG][       Thread-600984][   transport.py][1871] : Compression: none
2025-07-01 09:56:53,327 [DEBUG][       Thread-600984][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:56:53,386 [DEBUG][       Thread-600984][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:56:53,387 [DEBUG][       Thread-600984][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:56:53,387 [DEBUG][       Thread-600984][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:56:53,387 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:56:53,388 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:56:53,443 [DEBUG][       Thread-600984][   transport.py][1871] : userauth is OK
2025-07-01 09:56:53,443 [DEBUG][       Thread-600984][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:56:53,443 [DEBUG][       Thread-600984][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:56:53,444 [DEBUG][       Thread-600984][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:56:53,444 [DEBUG][       Thread-600984][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:56:53,462 [ INFO][       Thread-600984][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:56:53,462 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:56:53,463 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:56:54,460 [DEBUG][       Thread-600984][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:56:54,460 [DEBUG][       Thread-600984][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:56:54,508 [DEBUG][       Thread-600984][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:56:54,508 [DEBUG][       Thread-600984][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:56:54,517 [DEBUG][       Thread-600984][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:56:54,526 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:56:54,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-07-01 09:56:54,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-07-01 09:56:54,545 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:56:54,545 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:56:54,545 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:56:54,553 [DEBUG][       Thread-600984][   transport.py][1871] : EOF in transport thread
2025-07-01 09:56:55,092 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:56:55,093 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:57:00,205 [DEBUG][Thread-600986 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:57:04,556 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:57:04,556 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:57:04,556 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:57:04,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-07-01 09:57:04,999 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 56, 44), 10.12, 49.34, 0.0, 35.66, 9.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:57:04,999 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:56:44
2025-07-01 09:57:05,084 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:57:05,087 [DEBUG][       Thread-600987][   transport.py][1871] : starting thread (client mode): 0x8170d90
2025-07-01 09:57:05,088 [DEBUG][       Thread-600987][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:57:05,109 [DEBUG][       Thread-600987][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:57:05,109 [ INFO][       Thread-600987][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:57:05,112 [DEBUG][       Thread-600987][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:57:05,112 [DEBUG][       Thread-600987][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:57:05,113 [DEBUG][       Thread-600987][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:57:05,113 [DEBUG][       Thread-600987][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:57:05,113 [DEBUG][       Thread-600987][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:57:05,113 [DEBUG][       Thread-600987][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:57:05,113 [DEBUG][       Thread-600987][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:57:05,113 [DEBUG][       Thread-600987][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:57:05,113 [DEBUG][       Thread-600987][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:57:05,113 [DEBUG][       Thread-600987][   transport.py][1871] : client lang: <none>
2025-07-01 09:57:05,113 [DEBUG][       Thread-600987][   transport.py][1871] : server lang: <none>
2025-07-01 09:57:05,113 [DEBUG][       Thread-600987][   transport.py][1871] : kex follows: False
2025-07-01 09:57:05,113 [DEBUG][       Thread-600987][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:57:05,113 [DEBUG][       Thread-600987][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:57:05,113 [DEBUG][       Thread-600987][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:57:05,113 [DEBUG][       Thread-600987][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:57:05,113 [DEBUG][       Thread-600987][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:57:05,113 [DEBUG][       Thread-600987][   transport.py][1871] : Compression: none
2025-07-01 09:57:05,113 [DEBUG][       Thread-600987][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:57:05,129 [DEBUG][       Thread-600987][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:57:05,130 [DEBUG][       Thread-600987][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:57:05,130 [DEBUG][       Thread-600987][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:57:05,130 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:57:05,130 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:57:05,131 [DEBUG][       Thread-600987][   transport.py][1871] : userauth is OK
2025-07-01 09:57:05,156 [ INFO][       Thread-600987][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:57:05,156 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:57:05,740 [DEBUG][       Thread-600987][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:57:05,740 [DEBUG][       Thread-600987][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:57:05,781 [DEBUG][       Thread-600987][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:57:05,781 [DEBUG][       Thread-600987][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:57:05,784 [DEBUG][       Thread-600987][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:57:05,798 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:57:05,799 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:57:05,801 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:57:05,803 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:57:05,808 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:57:05,810 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:57:05,810 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:57:05,811 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:57:05,811 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.330850 -999.00   +9.40  33.99     54   +0.70 1 1 2 1 1   887    0 9.28 22.52 ----- 34.0 34.0 25.9 48.1 12.3 -24.4 11.4 -24.5 10.7 -22.9 11.4 -22.7
2025-07-01 09:57:05,811 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:57:05,811 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:57:05,811 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.330850
2025-07-01 09:57:05,812 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:57:05,812 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:57:05,812 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:57:05,813 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:57:05,813 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:57:05,813 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:56:44', tmtdew=10.12, humidity=49.34, cloud=0.0, wind=35.66, temperature=9.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:56:25.440', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:57:05,814 [DEBUG][       Thread-600987][   transport.py][1871] : EOF in transport thread
2025-07-01 09:57:05,896 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:57:05,912 [DEBUG][       Thread-600990][   transport.py][1871] : starting thread (client mode): 0x8154f70
2025-07-01 09:57:05,912 [DEBUG][       Thread-600990][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:57:05,927 [DEBUG][       Thread-600990][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:57:05,927 [ INFO][       Thread-600990][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:57:05,935 [DEBUG][       Thread-600990][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:57:05,935 [DEBUG][       Thread-600990][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:57:05,935 [DEBUG][       Thread-600990][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:57:05,935 [DEBUG][       Thread-600990][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:57:05,935 [DEBUG][       Thread-600990][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:57:05,935 [DEBUG][       Thread-600990][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:57:05,935 [DEBUG][       Thread-600990][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:57:05,935 [DEBUG][       Thread-600990][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:57:05,935 [DEBUG][       Thread-600990][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:57:05,935 [DEBUG][       Thread-600990][   transport.py][1871] : client lang: <none>
2025-07-01 09:57:05,935 [DEBUG][       Thread-600990][   transport.py][1871] : server lang: <none>
2025-07-01 09:57:05,935 [DEBUG][       Thread-600990][   transport.py][1871] : kex follows: False
2025-07-01 09:57:05,935 [DEBUG][       Thread-600990][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:57:05,936 [DEBUG][       Thread-600990][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:57:05,936 [DEBUG][       Thread-600990][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:57:05,936 [DEBUG][       Thread-600990][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:57:05,936 [DEBUG][       Thread-600990][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:57:05,936 [DEBUG][       Thread-600990][   transport.py][1871] : Compression: none
2025-07-01 09:57:05,936 [DEBUG][       Thread-600990][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:57:05,995 [DEBUG][       Thread-600990][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:57:05,996 [DEBUG][       Thread-600990][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:57:05,997 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:57:05,997 [DEBUG][       Thread-600990][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:57:05,998 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:57:06,054 [DEBUG][       Thread-600990][   transport.py][1871] : userauth is OK
2025-07-01 09:57:06,054 [DEBUG][       Thread-600990][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:57:06,054 [DEBUG][       Thread-600990][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:57:06,054 [DEBUG][       Thread-600990][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:57:06,054 [DEBUG][       Thread-600990][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:57:06,072 [ INFO][       Thread-600990][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:57:06,073 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:57:06,073 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:57:07,131 [DEBUG][       Thread-600990][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:57:07,131 [DEBUG][       Thread-600990][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:57:07,183 [DEBUG][       Thread-600990][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:57:07,183 [DEBUG][       Thread-600990][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:57:07,194 [DEBUG][       Thread-600990][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:57:07,206 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:57:07,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-07-01 09:57:07,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-07-01 09:57:07,227 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:57:07,227 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:57:07,227 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:57:07,235 [DEBUG][       Thread-600990][   transport.py][1871] : EOF in transport thread
2025-07-01 09:57:09,244 [DEBUG][Thread-600992 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:57:17,236 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:57:17,236 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:57:17,236 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:57:17,237 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:57:17,740 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 56, 44), 10.12, 49.34, 0.0, 35.66, 9.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:57:17,740 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:56:44
2025-07-01 09:57:17,823 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:57:17,828 [DEBUG][       Thread-600993][   transport.py][1871] : starting thread (client mode): 0x8170a00
2025-07-01 09:57:17,828 [DEBUG][       Thread-600993][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:57:17,848 [DEBUG][       Thread-600993][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:57:17,848 [ INFO][       Thread-600993][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:57:17,852 [DEBUG][       Thread-600993][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:57:17,852 [DEBUG][       Thread-600993][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:57:17,852 [DEBUG][       Thread-600993][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:57:17,852 [DEBUG][       Thread-600993][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:57:17,852 [DEBUG][       Thread-600993][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:57:17,852 [DEBUG][       Thread-600993][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:57:17,852 [DEBUG][       Thread-600993][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:57:17,852 [DEBUG][       Thread-600993][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:57:17,852 [DEBUG][       Thread-600993][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:57:17,852 [DEBUG][       Thread-600993][   transport.py][1871] : client lang: <none>
2025-07-01 09:57:17,852 [DEBUG][       Thread-600993][   transport.py][1871] : server lang: <none>
2025-07-01 09:57:17,852 [DEBUG][       Thread-600993][   transport.py][1871] : kex follows: False
2025-07-01 09:57:17,852 [DEBUG][       Thread-600993][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:57:17,852 [DEBUG][       Thread-600993][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:57:17,852 [DEBUG][       Thread-600993][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:57:17,852 [DEBUG][       Thread-600993][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:57:17,852 [DEBUG][       Thread-600993][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:57:17,852 [DEBUG][       Thread-600993][   transport.py][1871] : Compression: none
2025-07-01 09:57:17,852 [DEBUG][       Thread-600993][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:57:17,870 [DEBUG][       Thread-600993][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:57:17,871 [DEBUG][       Thread-600993][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:57:17,871 [DEBUG][       Thread-600993][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:57:17,871 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:57:17,872 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:57:17,873 [DEBUG][       Thread-600993][   transport.py][1871] : userauth is OK
2025-07-01 09:57:17,886 [ INFO][       Thread-600993][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:57:17,886 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:57:18,266 [DEBUG][Thread-600995 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:57:18,497 [DEBUG][       Thread-600993][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:57:18,497 [DEBUG][       Thread-600993][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:57:18,541 [DEBUG][       Thread-600993][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:57:18,541 [DEBUG][       Thread-600993][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:57:18,544 [DEBUG][       Thread-600993][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:57:18,555 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:57:18,556 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:57:18,558 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:57:18,560 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:57:18,565 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:57:18,567 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:57:18,567 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:57:18,568 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:57:18,568 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.330850 -999.00   +9.40  33.99     54   +0.70 1 1 2 1 1   887    0 9.28 22.52 ----- 34.0 34.0 25.9 48.1 12.3 -24.4 11.4 -24.5 10.7 -22.9 11.4 -22.7
2025-07-01 09:57:18,568 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:57:18,568 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:57:18,568 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.330850
2025-07-01 09:57:18,569 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:57:18,569 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:57:18,569 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:57:18,569 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:57:18,569 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:57:18,570 [DEBUG][       Thread-600993][   transport.py][1871] : EOF in transport thread
2025-07-01 09:57:18,570 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:56:44', tmtdew=10.12, humidity=49.34, cloud=0.0, wind=35.66, temperature=9.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:56:25.440', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:57:18,654 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:57:18,666 [DEBUG][       Thread-600997][   transport.py][1871] : starting thread (client mode): 0x81048b0
2025-07-01 09:57:18,666 [DEBUG][       Thread-600997][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:57:18,681 [DEBUG][       Thread-600997][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:57:18,681 [ INFO][       Thread-600997][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:57:18,688 [DEBUG][       Thread-600997][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:57:18,688 [DEBUG][       Thread-600997][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:57:18,688 [DEBUG][       Thread-600997][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:57:18,688 [DEBUG][       Thread-600997][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:57:18,688 [DEBUG][       Thread-600997][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:57:18,688 [DEBUG][       Thread-600997][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:57:18,689 [DEBUG][       Thread-600997][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:57:18,689 [DEBUG][       Thread-600997][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:57:18,689 [DEBUG][       Thread-600997][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:57:18,689 [DEBUG][       Thread-600997][   transport.py][1871] : client lang: <none>
2025-07-01 09:57:18,689 [DEBUG][       Thread-600997][   transport.py][1871] : server lang: <none>
2025-07-01 09:57:18,689 [DEBUG][       Thread-600997][   transport.py][1871] : kex follows: False
2025-07-01 09:57:18,689 [DEBUG][       Thread-600997][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:57:18,689 [DEBUG][       Thread-600997][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:57:18,689 [DEBUG][       Thread-600997][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:57:18,689 [DEBUG][       Thread-600997][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:57:18,689 [DEBUG][       Thread-600997][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:57:18,689 [DEBUG][       Thread-600997][   transport.py][1871] : Compression: none
2025-07-01 09:57:18,689 [DEBUG][       Thread-600997][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:57:18,753 [DEBUG][       Thread-600997][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:57:18,753 [DEBUG][       Thread-600997][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:57:18,754 [DEBUG][       Thread-600997][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:57:18,754 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:57:18,755 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:57:18,811 [DEBUG][       Thread-600997][   transport.py][1871] : userauth is OK
2025-07-01 09:57:18,811 [DEBUG][       Thread-600997][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:57:18,811 [DEBUG][       Thread-600997][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:57:18,811 [DEBUG][       Thread-600997][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:57:18,811 [DEBUG][       Thread-600997][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:57:18,836 [ INFO][       Thread-600997][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:57:18,836 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:57:18,837 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:57:19,837 [DEBUG][       Thread-600997][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:57:19,837 [DEBUG][       Thread-600997][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:57:19,888 [DEBUG][       Thread-600997][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:57:19,888 [DEBUG][       Thread-600997][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:57:19,897 [DEBUG][       Thread-600997][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:57:19,906 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:57:19,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-07-01 09:57:19,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-07-01 09:57:19,930 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:57:19,930 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:57:19,931 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:57:19,941 [DEBUG][       Thread-600997][   transport.py][1871] : EOF in transport thread
2025-07-01 09:57:21,881 [DEBUG][Thread-600999 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:57:27,288 [DEBUG][Thread-601000 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:57:29,941 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:57:29,941 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:57:29,942 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:57:29,944 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:57:30,412 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 57, 15), 10.09, 49.32, 0.0, 45.03, 9.53, 0, 0, 0, 2, 1, 0),)
2025-07-01 09:57:30,412 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:57:15
2025-07-01 09:57:30,496 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:57:30,499 [DEBUG][       Thread-601001][   transport.py][1871] : starting thread (client mode): 0x75a8100
2025-07-01 09:57:30,500 [DEBUG][       Thread-601001][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:57:30,515 [DEBUG][       Thread-601001][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:57:30,515 [ INFO][       Thread-601001][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:57:30,517 [DEBUG][       Thread-601001][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:57:30,517 [DEBUG][       Thread-601001][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:57:30,517 [DEBUG][       Thread-601001][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:57:30,517 [DEBUG][       Thread-601001][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:57:30,517 [DEBUG][       Thread-601001][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:57:30,517 [DEBUG][       Thread-601001][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:57:30,517 [DEBUG][       Thread-601001][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:57:30,517 [DEBUG][       Thread-601001][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:57:30,517 [DEBUG][       Thread-601001][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:57:30,517 [DEBUG][       Thread-601001][   transport.py][1871] : client lang: <none>
2025-07-01 09:57:30,517 [DEBUG][       Thread-601001][   transport.py][1871] : server lang: <none>
2025-07-01 09:57:30,517 [DEBUG][       Thread-601001][   transport.py][1871] : kex follows: False
2025-07-01 09:57:30,517 [DEBUG][       Thread-601001][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:57:30,517 [DEBUG][       Thread-601001][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:57:30,517 [DEBUG][       Thread-601001][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:57:30,517 [DEBUG][       Thread-601001][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:57:30,517 [DEBUG][       Thread-601001][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:57:30,517 [DEBUG][       Thread-601001][   transport.py][1871] : Compression: none
2025-07-01 09:57:30,517 [DEBUG][       Thread-601001][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:57:30,531 [DEBUG][       Thread-601001][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:57:30,532 [DEBUG][       Thread-601001][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:57:30,532 [DEBUG][       Thread-601001][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:57:30,533 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:57:30,533 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:57:30,534 [DEBUG][       Thread-601001][   transport.py][1871] : userauth is OK
2025-07-01 09:57:30,547 [ INFO][       Thread-601001][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:57:30,547 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:57:31,171 [DEBUG][       Thread-601001][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:57:31,171 [DEBUG][       Thread-601001][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:57:31,213 [DEBUG][       Thread-601001][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:57:31,213 [DEBUG][       Thread-601001][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:57:31,217 [DEBUG][       Thread-601001][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:57:31,225 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:57:31,226 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:57:31,228 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:57:31,229 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:57:31,235 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:57:31,237 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:57:31,237 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:57:31,238 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:57:31,238 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.331544 -999.00   +9.40  33.15     54   +0.80 1 1 2 1 1   887    0 9.28 18.90 ----- 33.1 33.1 13.0 49.8 12.3 -23.7 11.4 -24.3 10.7 -22.8 11.5 -22.3
2025-07-01 09:57:31,238 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:57:31,238 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:57:31,238 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.331544
2025-07-01 09:57:31,239 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:57:31,239 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:57:31,239 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:57:31,239 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:57:31,239 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:57:31,239 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:57:15', tmtdew=10.09, humidity=49.32, cloud=0.0, wind=45.03, temperature=9.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=1, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:57:25.402', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:57:31,241 [DEBUG][       Thread-601001][   transport.py][1871] : EOF in transport thread
2025-07-01 09:57:31,322 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:57:31,334 [DEBUG][       Thread-601004][   transport.py][1871] : starting thread (client mode): 0x82b2dd0
2025-07-01 09:57:31,334 [DEBUG][       Thread-601004][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:57:31,350 [DEBUG][       Thread-601004][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:57:31,351 [ INFO][       Thread-601004][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:57:31,358 [DEBUG][       Thread-601004][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:57:31,358 [DEBUG][       Thread-601004][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:57:31,358 [DEBUG][       Thread-601004][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:57:31,358 [DEBUG][       Thread-601004][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:57:31,359 [DEBUG][       Thread-601004][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:57:31,359 [DEBUG][       Thread-601004][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:57:31,359 [DEBUG][       Thread-601004][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:57:31,359 [DEBUG][       Thread-601004][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:57:31,359 [DEBUG][       Thread-601004][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:57:31,359 [DEBUG][       Thread-601004][   transport.py][1871] : client lang: <none>
2025-07-01 09:57:31,359 [DEBUG][       Thread-601004][   transport.py][1871] : server lang: <none>
2025-07-01 09:57:31,359 [DEBUG][       Thread-601004][   transport.py][1871] : kex follows: False
2025-07-01 09:57:31,359 [DEBUG][       Thread-601004][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:57:31,359 [DEBUG][       Thread-601004][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:57:31,359 [DEBUG][       Thread-601004][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:57:31,359 [DEBUG][       Thread-601004][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:57:31,359 [DEBUG][       Thread-601004][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:57:31,359 [DEBUG][       Thread-601004][   transport.py][1871] : Compression: none
2025-07-01 09:57:31,359 [DEBUG][       Thread-601004][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:57:31,415 [DEBUG][       Thread-601004][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:57:31,415 [DEBUG][       Thread-601004][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:57:31,416 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:57:31,416 [DEBUG][       Thread-601004][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:57:31,417 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:57:31,471 [DEBUG][       Thread-601004][   transport.py][1871] : userauth is OK
2025-07-01 09:57:31,471 [DEBUG][       Thread-601004][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:57:31,471 [DEBUG][       Thread-601004][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:57:31,472 [DEBUG][       Thread-601004][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:57:31,472 [DEBUG][       Thread-601004][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:57:31,490 [ INFO][       Thread-601004][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:57:31,491 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:57:31,491 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:57:32,488 [DEBUG][       Thread-601004][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:57:32,488 [DEBUG][       Thread-601004][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:57:32,540 [DEBUG][       Thread-601004][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:57:32,540 [DEBUG][       Thread-601004][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:57:32,549 [DEBUG][       Thread-601004][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:57:32,558 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:57:32,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-07-01 09:57:32,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-07-01 09:57:32,574 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:57:32,574 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:57:32,574 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:57:32,582 [DEBUG][       Thread-601004][   transport.py][1871] : EOF in transport thread
2025-07-01 09:57:36,307 [DEBUG][Thread-601006 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:57:42,584 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:57:42,585 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:57:42,585 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:57:42,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-07-01 09:57:43,033 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 57, 15), 10.09, 49.32, 0.0, 45.03, 9.53, 0, 0, 0, 2, 1, 0),)
2025-07-01 09:57:43,033 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:57:15
2025-07-01 09:57:43,116 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:57:43,122 [DEBUG][       Thread-601007][   transport.py][1871] : starting thread (client mode): 0x8154ee0
2025-07-01 09:57:43,122 [DEBUG][       Thread-601007][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:57:43,142 [DEBUG][       Thread-601007][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:57:43,142 [ INFO][       Thread-601007][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:57:43,145 [DEBUG][       Thread-601007][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:57:43,146 [DEBUG][       Thread-601007][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:57:43,146 [DEBUG][       Thread-601007][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:57:43,146 [DEBUG][       Thread-601007][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:57:43,146 [DEBUG][       Thread-601007][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:57:43,146 [DEBUG][       Thread-601007][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:57:43,146 [DEBUG][       Thread-601007][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:57:43,146 [DEBUG][       Thread-601007][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:57:43,146 [DEBUG][       Thread-601007][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:57:43,146 [DEBUG][       Thread-601007][   transport.py][1871] : client lang: <none>
2025-07-01 09:57:43,146 [DEBUG][       Thread-601007][   transport.py][1871] : server lang: <none>
2025-07-01 09:57:43,146 [DEBUG][       Thread-601007][   transport.py][1871] : kex follows: False
2025-07-01 09:57:43,146 [DEBUG][       Thread-601007][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:57:43,146 [DEBUG][       Thread-601007][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:57:43,146 [DEBUG][       Thread-601007][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:57:43,146 [DEBUG][       Thread-601007][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:57:43,146 [DEBUG][       Thread-601007][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:57:43,146 [DEBUG][       Thread-601007][   transport.py][1871] : Compression: none
2025-07-01 09:57:43,146 [DEBUG][       Thread-601007][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:57:43,163 [DEBUG][       Thread-601007][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:57:43,164 [DEBUG][       Thread-601007][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:57:43,164 [DEBUG][       Thread-601007][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:57:43,164 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:57:43,165 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:57:43,166 [DEBUG][       Thread-601007][   transport.py][1871] : userauth is OK
2025-07-01 09:57:43,190 [ INFO][       Thread-601007][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:57:43,191 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:57:43,842 [DEBUG][       Thread-601007][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:57:43,842 [DEBUG][       Thread-601007][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:57:43,885 [DEBUG][       Thread-601007][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:57:43,885 [DEBUG][       Thread-601007][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:57:43,888 [DEBUG][       Thread-601007][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:57:43,898 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:57:43,898 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:57:43,900 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:57:43,902 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:57:43,907 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:57:43,909 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:57:43,909 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:57:43,910 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:57:43,910 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.331544 -999.00   +9.40  33.15     54   +0.80 1 1 2 1 1   887    0 9.28 18.90 ----- 33.1 33.1 13.0 49.8 12.3 -23.7 11.4 -24.3 10.7 -22.8 11.5 -22.3
2025-07-01 09:57:43,910 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:57:43,910 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:57:43,910 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.331544
2025-07-01 09:57:43,910 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:57:43,911 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:57:43,911 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:57:43,911 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:57:43,911 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:57:43,911 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:57:15', tmtdew=10.09, humidity=49.32, cloud=0.0, wind=45.03, temperature=9.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=1, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:57:25.402', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:57:43,911 [DEBUG][       Thread-601007][   transport.py][1871] : EOF in transport thread
2025-07-01 09:57:43,995 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:57:44,004 [DEBUG][       Thread-601010][   transport.py][1871] : starting thread (client mode): 0x818ff70
2025-07-01 09:57:44,005 [DEBUG][       Thread-601010][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:57:44,020 [DEBUG][       Thread-601010][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:57:44,020 [ INFO][       Thread-601010][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:57:44,029 [DEBUG][       Thread-601010][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:57:44,029 [DEBUG][       Thread-601010][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:57:44,029 [DEBUG][       Thread-601010][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:57:44,029 [DEBUG][       Thread-601010][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:57:44,029 [DEBUG][       Thread-601010][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:57:44,029 [DEBUG][       Thread-601010][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:57:44,029 [DEBUG][       Thread-601010][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:57:44,029 [DEBUG][       Thread-601010][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:57:44,029 [DEBUG][       Thread-601010][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:57:44,029 [DEBUG][       Thread-601010][   transport.py][1871] : client lang: <none>
2025-07-01 09:57:44,029 [DEBUG][       Thread-601010][   transport.py][1871] : server lang: <none>
2025-07-01 09:57:44,029 [DEBUG][       Thread-601010][   transport.py][1871] : kex follows: False
2025-07-01 09:57:44,029 [DEBUG][       Thread-601010][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:57:44,029 [DEBUG][       Thread-601010][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:57:44,029 [DEBUG][       Thread-601010][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:57:44,029 [DEBUG][       Thread-601010][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:57:44,030 [DEBUG][       Thread-601010][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:57:44,030 [DEBUG][       Thread-601010][   transport.py][1871] : Compression: none
2025-07-01 09:57:44,030 [DEBUG][       Thread-601010][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:57:44,093 [DEBUG][       Thread-601010][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:57:44,093 [DEBUG][       Thread-601010][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:57:44,094 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:57:44,094 [DEBUG][       Thread-601010][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:57:44,095 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:57:44,153 [DEBUG][       Thread-601010][   transport.py][1871] : userauth is OK
2025-07-01 09:57:44,153 [DEBUG][       Thread-601010][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:57:44,153 [DEBUG][       Thread-601010][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:57:44,153 [DEBUG][       Thread-601010][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:57:44,154 [DEBUG][       Thread-601010][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:57:44,177 [ INFO][       Thread-601010][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:57:44,178 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:57:44,178 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:57:45,193 [DEBUG][       Thread-601010][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:57:45,193 [DEBUG][       Thread-601010][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:57:45,244 [DEBUG][       Thread-601010][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:57:45,244 [DEBUG][       Thread-601010][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:57:45,253 [DEBUG][       Thread-601010][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:57:45,262 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:57:45,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-07-01 09:57:45,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-07-01 09:57:45,280 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:57:45,281 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:57:45,281 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:57:45,289 [DEBUG][       Thread-601010][   transport.py][1871] : EOF in transport thread
2025-07-01 09:57:45,343 [DEBUG][Thread-601012 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:57:54,363 [DEBUG][Thread-601013 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:57:55,231 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:57:55,232 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:57:55,292 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:57:55,292 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:57:55,292 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:57:55,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-07-01 09:57:55,785 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 57, 47), 10.06, 49.42, 0.0, 39.61, 9.5, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:57:55,785 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:57:47
2025-07-01 09:57:55,868 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:57:55,873 [DEBUG][       Thread-601014][   transport.py][1871] : starting thread (client mode): 0x82b1ab0
2025-07-01 09:57:55,873 [DEBUG][       Thread-601014][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:57:55,893 [DEBUG][       Thread-601014][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:57:55,893 [ INFO][       Thread-601014][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:57:55,897 [DEBUG][       Thread-601014][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:57:55,897 [DEBUG][       Thread-601014][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:57:55,897 [DEBUG][       Thread-601014][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:57:55,897 [DEBUG][       Thread-601014][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:57:55,897 [DEBUG][       Thread-601014][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:57:55,897 [DEBUG][       Thread-601014][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:57:55,897 [DEBUG][       Thread-601014][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:57:55,897 [DEBUG][       Thread-601014][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:57:55,897 [DEBUG][       Thread-601014][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:57:55,897 [DEBUG][       Thread-601014][   transport.py][1871] : client lang: <none>
2025-07-01 09:57:55,897 [DEBUG][       Thread-601014][   transport.py][1871] : server lang: <none>
2025-07-01 09:57:55,897 [DEBUG][       Thread-601014][   transport.py][1871] : kex follows: False
2025-07-01 09:57:55,897 [DEBUG][       Thread-601014][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:57:55,897 [DEBUG][       Thread-601014][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:57:55,897 [DEBUG][       Thread-601014][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:57:55,897 [DEBUG][       Thread-601014][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:57:55,897 [DEBUG][       Thread-601014][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:57:55,897 [DEBUG][       Thread-601014][   transport.py][1871] : Compression: none
2025-07-01 09:57:55,897 [DEBUG][       Thread-601014][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:57:55,914 [DEBUG][       Thread-601014][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:57:55,915 [DEBUG][       Thread-601014][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:57:55,915 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:57:55,915 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:57:55,916 [DEBUG][       Thread-601014][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:57:55,917 [DEBUG][       Thread-601014][   transport.py][1871] : userauth is OK
2025-07-01 09:57:55,930 [ INFO][       Thread-601014][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:57:55,931 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:57:56,545 [DEBUG][       Thread-601014][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:57:56,545 [DEBUG][       Thread-601014][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:57:56,589 [DEBUG][       Thread-601014][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:57:56,590 [DEBUG][       Thread-601014][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:57:56,593 [DEBUG][       Thread-601014][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:57:56,607 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:57:56,607 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:57:56,609 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:57:56,611 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:57:56,617 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:57:56,619 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:57:56,619 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:57:56,620 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:57:56,620 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.331544 -999.00   +9.40  33.15     54   +0.80 1 1 2 1 1   887    0 9.28 18.90 ----- 33.1 33.1 13.0 49.8 12.3 -23.7 11.4 -24.3 10.7 -22.8 11.5 -22.3
2025-07-01 09:57:56,620 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:57:56,620 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:57:56,620 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.331544
2025-07-01 09:57:56,621 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:57:56,621 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:57:56,621 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:57:56,621 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:57:56,622 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:57:56,622 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:57:47', tmtdew=10.06, humidity=49.42, cloud=0.0, wind=39.61, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:57:25.402', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:57:56,623 [DEBUG][       Thread-601014][   transport.py][1871] : EOF in transport thread
2025-07-01 09:57:56,699 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:57:56,711 [DEBUG][       Thread-601017][   transport.py][1871] : starting thread (client mode): 0x81a5330
2025-07-01 09:57:56,711 [DEBUG][       Thread-601017][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:57:56,726 [DEBUG][       Thread-601017][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:57:56,726 [ INFO][       Thread-601017][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:57:56,734 [DEBUG][       Thread-601017][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:57:56,734 [DEBUG][       Thread-601017][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:57:56,734 [DEBUG][       Thread-601017][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:57:56,734 [DEBUG][       Thread-601017][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:57:56,734 [DEBUG][       Thread-601017][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:57:56,734 [DEBUG][       Thread-601017][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:57:56,734 [DEBUG][       Thread-601017][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:57:56,734 [DEBUG][       Thread-601017][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:57:56,734 [DEBUG][       Thread-601017][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:57:56,734 [DEBUG][       Thread-601017][   transport.py][1871] : client lang: <none>
2025-07-01 09:57:56,734 [DEBUG][       Thread-601017][   transport.py][1871] : server lang: <none>
2025-07-01 09:57:56,734 [DEBUG][       Thread-601017][   transport.py][1871] : kex follows: False
2025-07-01 09:57:56,734 [DEBUG][       Thread-601017][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:57:56,734 [DEBUG][       Thread-601017][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:57:56,734 [DEBUG][       Thread-601017][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:57:56,734 [DEBUG][       Thread-601017][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:57:56,734 [DEBUG][       Thread-601017][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:57:56,734 [DEBUG][       Thread-601017][   transport.py][1871] : Compression: none
2025-07-01 09:57:56,734 [DEBUG][       Thread-601017][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:57:56,795 [DEBUG][       Thread-601017][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:57:56,795 [DEBUG][       Thread-601017][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:57:56,796 [DEBUG][       Thread-601017][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:57:56,796 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:57:56,797 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:57:56,854 [DEBUG][       Thread-601017][   transport.py][1871] : userauth is OK
2025-07-01 09:57:56,854 [DEBUG][       Thread-601017][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:57:56,854 [DEBUG][       Thread-601017][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:57:56,854 [DEBUG][       Thread-601017][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:57:56,854 [DEBUG][       Thread-601017][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:57:56,873 [ INFO][       Thread-601017][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:57:56,873 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:57:56,874 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:57:57,896 [DEBUG][       Thread-601017][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:57:57,896 [DEBUG][       Thread-601017][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:57:57,946 [DEBUG][       Thread-601017][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:57:57,946 [DEBUG][       Thread-601017][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:57:57,955 [DEBUG][       Thread-601017][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:57:57,965 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:57:57,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-07-01 09:57:57,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-07-01 09:57:57,986 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:57:57,987 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:57:57,987 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:57:57,995 [DEBUG][       Thread-601017][   transport.py][1871] : EOF in transport thread
2025-07-01 09:58:03,383 [DEBUG][Thread-601019 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:58:07,998 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:58:07,998 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:58:07,998 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:58:08,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-07-01 09:58:08,477 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 57, 47), 10.06, 49.42, 0.0, 39.61, 9.5, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:58:08,477 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:57:47
2025-07-01 09:58:08,561 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:58:08,564 [DEBUG][       Thread-601020][   transport.py][1871] : starting thread (client mode): 0x82b0b50
2025-07-01 09:58:08,564 [DEBUG][       Thread-601020][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:58:08,584 [DEBUG][       Thread-601020][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:58:08,584 [ INFO][       Thread-601020][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:58:08,587 [DEBUG][       Thread-601020][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:58:08,588 [DEBUG][       Thread-601020][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:58:08,588 [DEBUG][       Thread-601020][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:58:08,588 [DEBUG][       Thread-601020][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:58:08,588 [DEBUG][       Thread-601020][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:58:08,588 [DEBUG][       Thread-601020][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:58:08,588 [DEBUG][       Thread-601020][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:58:08,588 [DEBUG][       Thread-601020][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:58:08,588 [DEBUG][       Thread-601020][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:58:08,588 [DEBUG][       Thread-601020][   transport.py][1871] : client lang: <none>
2025-07-01 09:58:08,588 [DEBUG][       Thread-601020][   transport.py][1871] : server lang: <none>
2025-07-01 09:58:08,588 [DEBUG][       Thread-601020][   transport.py][1871] : kex follows: False
2025-07-01 09:58:08,588 [DEBUG][       Thread-601020][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:58:08,588 [DEBUG][       Thread-601020][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:58:08,588 [DEBUG][       Thread-601020][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:58:08,588 [DEBUG][       Thread-601020][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:58:08,588 [DEBUG][       Thread-601020][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:58:08,588 [DEBUG][       Thread-601020][   transport.py][1871] : Compression: none
2025-07-01 09:58:08,588 [DEBUG][       Thread-601020][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:58:08,603 [DEBUG][       Thread-601020][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:58:08,603 [DEBUG][       Thread-601020][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:58:08,603 [DEBUG][       Thread-601020][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:58:08,603 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:58:08,603 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:58:08,604 [DEBUG][       Thread-601020][   transport.py][1871] : userauth is OK
2025-07-01 09:58:08,618 [ INFO][       Thread-601020][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:58:08,618 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:58:09,262 [DEBUG][       Thread-601020][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:58:09,263 [DEBUG][       Thread-601020][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:58:09,305 [DEBUG][       Thread-601020][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:58:09,305 [DEBUG][       Thread-601020][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:58:09,309 [DEBUG][       Thread-601020][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:58:09,320 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:58:09,321 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:58:09,322 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:58:09,324 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:58:09,329 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:58:09,330 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:58:09,330 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:58:09,331 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:58:09,331 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.331891 -999.00   +9.40  31.60     54   +0.70 1 1 2 1 1   887    0 9.19 17.80 ----- 31.6 31.6 21.8 51.9 12.4 -23.7 11.5 -24.5 10.7 -23.1 11.5 -22.4
2025-07-01 09:58:09,331 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:58:09,331 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:58:09,331 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.331891
2025-07-01 09:58:09,332 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:58:09,332 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:58:09,333 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:58:09,333 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:58:09,333 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:58:09,333 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:57:47', tmtdew=10.06, humidity=49.42, cloud=0.0, wind=39.61, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:57:55.382', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:58:09,333 [DEBUG][       Thread-601020][   transport.py][1871] : EOF in transport thread
2025-07-01 09:58:09,416 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:58:09,426 [DEBUG][       Thread-601023][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 09:58:09,426 [DEBUG][       Thread-601023][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:58:09,440 [DEBUG][       Thread-601023][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:58:09,441 [ INFO][       Thread-601023][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:58:09,448 [DEBUG][       Thread-601023][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:58:09,448 [DEBUG][       Thread-601023][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:58:09,448 [DEBUG][       Thread-601023][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:58:09,448 [DEBUG][       Thread-601023][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:58:09,448 [DEBUG][       Thread-601023][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:58:09,448 [DEBUG][       Thread-601023][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:58:09,448 [DEBUG][       Thread-601023][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:58:09,448 [DEBUG][       Thread-601023][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:58:09,448 [DEBUG][       Thread-601023][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:58:09,448 [DEBUG][       Thread-601023][   transport.py][1871] : client lang: <none>
2025-07-01 09:58:09,448 [DEBUG][       Thread-601023][   transport.py][1871] : server lang: <none>
2025-07-01 09:58:09,448 [DEBUG][       Thread-601023][   transport.py][1871] : kex follows: False
2025-07-01 09:58:09,449 [DEBUG][       Thread-601023][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:58:09,449 [DEBUG][       Thread-601023][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:58:09,449 [DEBUG][       Thread-601023][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:58:09,449 [DEBUG][       Thread-601023][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:58:09,449 [DEBUG][       Thread-601023][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:58:09,449 [DEBUG][       Thread-601023][   transport.py][1871] : Compression: none
2025-07-01 09:58:09,449 [DEBUG][       Thread-601023][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:58:09,509 [DEBUG][       Thread-601023][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:58:09,510 [DEBUG][       Thread-601023][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:58:09,510 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:58:09,511 [DEBUG][       Thread-601023][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:58:09,511 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:58:09,567 [DEBUG][       Thread-601023][   transport.py][1871] : userauth is OK
2025-07-01 09:58:09,568 [DEBUG][       Thread-601023][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:58:09,568 [DEBUG][       Thread-601023][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:58:09,568 [DEBUG][       Thread-601023][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:58:09,568 [DEBUG][       Thread-601023][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:58:09,586 [ INFO][       Thread-601023][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:58:09,587 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:58:09,587 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:58:10,591 [DEBUG][       Thread-601023][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:58:10,591 [DEBUG][       Thread-601023][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:58:10,639 [DEBUG][       Thread-601023][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:58:10,639 [DEBUG][       Thread-601023][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:58:10,648 [DEBUG][       Thread-601023][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:58:10,656 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:58:10,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-07-01 09:58:10,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-07-01 09:58:10,675 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:58:10,675 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:58:10,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:58:10,683 [DEBUG][       Thread-601023][   transport.py][1871] : EOF in transport thread
2025-07-01 09:58:12,424 [DEBUG][Thread-601025 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:58:20,685 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:58:20,685 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:58:20,685 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:58:20,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-07-01 09:58:21,192 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 57, 47), 10.06, 49.42, 0.0, 39.61, 9.5, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:58:21,192 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:57:47
2025-07-01 09:58:21,284 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:58:21,290 [DEBUG][       Thread-601026][   transport.py][1871] : starting thread (client mode): 0x82b3be0
2025-07-01 09:58:21,290 [DEBUG][       Thread-601026][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:58:21,310 [DEBUG][       Thread-601026][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:58:21,310 [ INFO][       Thread-601026][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:58:21,313 [DEBUG][       Thread-601026][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:58:21,313 [DEBUG][       Thread-601026][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:58:21,313 [DEBUG][       Thread-601026][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:58:21,313 [DEBUG][       Thread-601026][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:58:21,313 [DEBUG][       Thread-601026][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:58:21,313 [DEBUG][       Thread-601026][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:58:21,313 [DEBUG][       Thread-601026][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:58:21,313 [DEBUG][       Thread-601026][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:58:21,313 [DEBUG][       Thread-601026][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:58:21,313 [DEBUG][       Thread-601026][   transport.py][1871] : client lang: <none>
2025-07-01 09:58:21,313 [DEBUG][       Thread-601026][   transport.py][1871] : server lang: <none>
2025-07-01 09:58:21,313 [DEBUG][       Thread-601026][   transport.py][1871] : kex follows: False
2025-07-01 09:58:21,313 [DEBUG][       Thread-601026][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:58:21,313 [DEBUG][       Thread-601026][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:58:21,313 [DEBUG][       Thread-601026][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:58:21,313 [DEBUG][       Thread-601026][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:58:21,313 [DEBUG][       Thread-601026][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:58:21,313 [DEBUG][       Thread-601026][   transport.py][1871] : Compression: none
2025-07-01 09:58:21,313 [DEBUG][       Thread-601026][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:58:21,328 [DEBUG][       Thread-601026][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:58:21,328 [DEBUG][       Thread-601026][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:58:21,328 [DEBUG][       Thread-601026][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:58:21,329 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:58:21,329 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:58:21,329 [DEBUG][       Thread-601026][   transport.py][1871] : userauth is OK
2025-07-01 09:58:21,342 [ INFO][       Thread-601026][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:58:21,342 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:58:21,442 [DEBUG][Thread-601028 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:58:21,912 [DEBUG][Thread-601029 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:58:21,973 [DEBUG][       Thread-601026][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:58:21,973 [DEBUG][       Thread-601026][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:58:22,017 [DEBUG][       Thread-601026][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:58:22,017 [DEBUG][       Thread-601026][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:58:22,020 [DEBUG][       Thread-601026][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:58:22,034 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:58:22,035 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:58:22,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:58:22,039 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:58:22,045 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:58:22,047 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:58:22,047 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:58:22,048 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:58:22,049 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.331891 -999.00   +9.40  31.60     54   +0.70 1 1 2 1 1   887    0 9.19 17.80 ----- 31.6 31.6 21.8 51.9 12.4 -23.7 11.5 -24.5 10.7 -23.1 11.5 -22.4
2025-07-01 09:58:22,049 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:58:22,049 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:58:22,049 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.331891
2025-07-01 09:58:22,050 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:58:22,050 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:58:22,050 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:58:22,050 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:58:22,051 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:58:22,051 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:57:47', tmtdew=10.06, humidity=49.42, cloud=0.0, wind=39.61, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:57:55.382', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:58:22,051 [DEBUG][       Thread-601026][   transport.py][1871] : EOF in transport thread
2025-07-01 09:58:22,131 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:58:22,144 [DEBUG][       Thread-601031][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 09:58:22,144 [DEBUG][       Thread-601031][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:58:22,159 [DEBUG][       Thread-601031][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:58:22,160 [ INFO][       Thread-601031][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:58:22,167 [DEBUG][       Thread-601031][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:58:22,168 [DEBUG][       Thread-601031][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:58:22,168 [DEBUG][       Thread-601031][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:58:22,168 [DEBUG][       Thread-601031][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:58:22,168 [DEBUG][       Thread-601031][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:58:22,168 [DEBUG][       Thread-601031][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:58:22,168 [DEBUG][       Thread-601031][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:58:22,168 [DEBUG][       Thread-601031][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:58:22,168 [DEBUG][       Thread-601031][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:58:22,168 [DEBUG][       Thread-601031][   transport.py][1871] : client lang: <none>
2025-07-01 09:58:22,168 [DEBUG][       Thread-601031][   transport.py][1871] : server lang: <none>
2025-07-01 09:58:22,168 [DEBUG][       Thread-601031][   transport.py][1871] : kex follows: False
2025-07-01 09:58:22,168 [DEBUG][       Thread-601031][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:58:22,168 [DEBUG][       Thread-601031][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:58:22,168 [DEBUG][       Thread-601031][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:58:22,168 [DEBUG][       Thread-601031][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:58:22,168 [DEBUG][       Thread-601031][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:58:22,168 [DEBUG][       Thread-601031][   transport.py][1871] : Compression: none
2025-07-01 09:58:22,168 [DEBUG][       Thread-601031][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:58:22,227 [DEBUG][       Thread-601031][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:58:22,228 [DEBUG][       Thread-601031][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:58:22,228 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:58:22,229 [DEBUG][       Thread-601031][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:58:22,230 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:58:22,292 [DEBUG][       Thread-601031][   transport.py][1871] : userauth is OK
2025-07-01 09:58:22,293 [DEBUG][       Thread-601031][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:58:22,293 [DEBUG][       Thread-601031][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:58:22,293 [DEBUG][       Thread-601031][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:58:22,293 [DEBUG][       Thread-601031][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:58:22,314 [ INFO][       Thread-601031][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:58:22,315 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:58:22,315 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:58:23,312 [DEBUG][       Thread-601031][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:58:23,312 [DEBUG][       Thread-601031][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:58:23,361 [DEBUG][       Thread-601031][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:58:23,361 [DEBUG][       Thread-601031][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:58:23,371 [DEBUG][       Thread-601031][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:58:23,383 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:58:23,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-07-01 09:58:23,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-07-01 09:58:23,409 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:58:23,409 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:58:23,410 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:58:23,418 [DEBUG][       Thread-601031][   transport.py][1871] : EOF in transport thread
2025-07-01 09:58:30,464 [DEBUG][Thread-601033 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:58:33,420 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:58:33,420 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:58:33,421 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:58: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-07-01 09:58:33,904 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 58, 19), 10.02, 49.8, 0.0, 39.2, 9.55, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:58:33,904 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:58:19
2025-07-01 09:58:33,990 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:58:33,994 [DEBUG][       Thread-601034][   transport.py][1871] : starting thread (client mode): 0x818d810
2025-07-01 09:58:33,994 [DEBUG][       Thread-601034][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:58:34,014 [DEBUG][       Thread-601034][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:58:34,014 [ INFO][       Thread-601034][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:58:34,017 [DEBUG][       Thread-601034][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:58:34,017 [DEBUG][       Thread-601034][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:58:34,017 [DEBUG][       Thread-601034][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:58:34,017 [DEBUG][       Thread-601034][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:58:34,017 [DEBUG][       Thread-601034][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:58:34,018 [DEBUG][       Thread-601034][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:58:34,018 [DEBUG][       Thread-601034][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:58:34,018 [DEBUG][       Thread-601034][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:58:34,018 [DEBUG][       Thread-601034][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:58:34,018 [DEBUG][       Thread-601034][   transport.py][1871] : client lang: <none>
2025-07-01 09:58:34,018 [DEBUG][       Thread-601034][   transport.py][1871] : server lang: <none>
2025-07-01 09:58:34,018 [DEBUG][       Thread-601034][   transport.py][1871] : kex follows: False
2025-07-01 09:58:34,018 [DEBUG][       Thread-601034][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:58:34,018 [DEBUG][       Thread-601034][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:58:34,018 [DEBUG][       Thread-601034][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:58:34,018 [DEBUG][       Thread-601034][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:58:34,018 [DEBUG][       Thread-601034][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:58:34,018 [DEBUG][       Thread-601034][   transport.py][1871] : Compression: none
2025-07-01 09:58:34,018 [DEBUG][       Thread-601034][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:58:34,035 [DEBUG][       Thread-601034][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:58:34,035 [DEBUG][       Thread-601034][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:58:34,036 [DEBUG][       Thread-601034][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:58:34,036 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:58:34,036 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:58:34,037 [DEBUG][       Thread-601034][   transport.py][1871] : userauth is OK
2025-07-01 09:58:34,052 [ INFO][       Thread-601034][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:58:34,053 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:58:34,704 [DEBUG][       Thread-601034][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:58:34,704 [DEBUG][       Thread-601034][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:58:34,745 [DEBUG][       Thread-601034][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:58:34,745 [DEBUG][       Thread-601034][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:58:34,749 [DEBUG][       Thread-601034][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:58:34,762 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:58:34,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:58:34,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:58:34,766 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:58:34,771 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:58:34,773 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:58:34,773 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:58:34,774 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:58:34,774 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.331891 -999.00   +9.40  31.60     54   +0.70 1 1 2 1 1   887    0 9.19 17.80 ----- 31.6 31.6 21.8 51.9 12.4 -23.7 11.5 -24.5 10.7 -23.1 11.5 -22.4
2025-07-01 09:58:34,774 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:58:34,774 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:58:34,774 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.331891
2025-07-01 09:58:34,775 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:58:34,775 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:58:34,776 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:58:34,776 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:58:34,776 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:58:34,776 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:58:19', tmtdew=10.02, humidity=49.8, cloud=0.0, wind=39.2, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:57:55.382', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:58:34,777 [DEBUG][       Thread-601034][   transport.py][1871] : EOF in transport thread
2025-07-01 09:58:34,861 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:58:34,873 [DEBUG][       Thread-601037][   transport.py][1871] : starting thread (client mode): 0x82b2bf0
2025-07-01 09:58:34,873 [DEBUG][       Thread-601037][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:58:34,887 [DEBUG][       Thread-601037][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:58:34,887 [ INFO][       Thread-601037][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:58:34,895 [DEBUG][       Thread-601037][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:58:34,895 [DEBUG][       Thread-601037][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:58:34,895 [DEBUG][       Thread-601037][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:58:34,895 [DEBUG][       Thread-601037][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:58:34,895 [DEBUG][       Thread-601037][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:58:34,895 [DEBUG][       Thread-601037][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:58:34,895 [DEBUG][       Thread-601037][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:58:34,895 [DEBUG][       Thread-601037][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:58:34,895 [DEBUG][       Thread-601037][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:58:34,895 [DEBUG][       Thread-601037][   transport.py][1871] : client lang: <none>
2025-07-01 09:58:34,895 [DEBUG][       Thread-601037][   transport.py][1871] : server lang: <none>
2025-07-01 09:58:34,895 [DEBUG][       Thread-601037][   transport.py][1871] : kex follows: False
2025-07-01 09:58:34,895 [DEBUG][       Thread-601037][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:58:34,895 [DEBUG][       Thread-601037][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:58:34,895 [DEBUG][       Thread-601037][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:58:34,895 [DEBUG][       Thread-601037][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:58:34,895 [DEBUG][       Thread-601037][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:58:34,895 [DEBUG][       Thread-601037][   transport.py][1871] : Compression: none
2025-07-01 09:58:34,895 [DEBUG][       Thread-601037][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:58:34,955 [DEBUG][       Thread-601037][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:58:34,955 [DEBUG][       Thread-601037][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:58:34,956 [DEBUG][       Thread-601037][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:58:34,956 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:58:34,957 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:58:35,011 [DEBUG][       Thread-601037][   transport.py][1871] : userauth is OK
2025-07-01 09:58:35,011 [DEBUG][       Thread-601037][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:58:35,011 [DEBUG][       Thread-601037][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:58:35,011 [DEBUG][       Thread-601037][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:58:35,011 [DEBUG][       Thread-601037][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:58:35,030 [ INFO][       Thread-601037][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:58:35,031 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:58:35,031 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:58:36,050 [DEBUG][       Thread-601037][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:58:36,050 [DEBUG][       Thread-601037][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:58:36,100 [DEBUG][       Thread-601037][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:58:36,100 [DEBUG][       Thread-601037][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:58:36,110 [DEBUG][       Thread-601037][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:58:36,119 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:58:36,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-07-01 09:58:36,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-07-01 09:58:36,137 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:58:36,137 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:58:36,138 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:58:36,146 [DEBUG][       Thread-601037][   transport.py][1871] : EOF in transport thread
2025-07-01 09:58:39,486 [DEBUG][Thread-601039 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:58:46,148 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:58:46,148 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:58:46,149 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:58:46,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-07-01 09:58:46,615 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 58, 19), 10.02, 49.8, 0.0, 39.2, 9.55, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:58:46,615 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:58:19
2025-07-01 09:58:46,700 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:58:46,704 [DEBUG][       Thread-601040][   transport.py][1871] : starting thread (client mode): 0x8172b90
2025-07-01 09:58:46,704 [DEBUG][       Thread-601040][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:58:46,725 [DEBUG][       Thread-601040][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:58:46,725 [ INFO][       Thread-601040][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:58:46,728 [DEBUG][       Thread-601040][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:58:46,728 [DEBUG][       Thread-601040][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:58:46,728 [DEBUG][       Thread-601040][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:58:46,728 [DEBUG][       Thread-601040][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:58:46,728 [DEBUG][       Thread-601040][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:58:46,728 [DEBUG][       Thread-601040][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:58:46,728 [DEBUG][       Thread-601040][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:58:46,728 [DEBUG][       Thread-601040][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:58:46,728 [DEBUG][       Thread-601040][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:58:46,728 [DEBUG][       Thread-601040][   transport.py][1871] : client lang: <none>
2025-07-01 09:58:46,728 [DEBUG][       Thread-601040][   transport.py][1871] : server lang: <none>
2025-07-01 09:58:46,728 [DEBUG][       Thread-601040][   transport.py][1871] : kex follows: False
2025-07-01 09:58:46,728 [DEBUG][       Thread-601040][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:58:46,728 [DEBUG][       Thread-601040][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:58:46,728 [DEBUG][       Thread-601040][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:58:46,728 [DEBUG][       Thread-601040][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:58:46,728 [DEBUG][       Thread-601040][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:58:46,729 [DEBUG][       Thread-601040][   transport.py][1871] : Compression: none
2025-07-01 09:58:46,729 [DEBUG][       Thread-601040][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:58:46,748 [DEBUG][       Thread-601040][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:58:46,748 [DEBUG][       Thread-601040][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:58:46,749 [DEBUG][       Thread-601040][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:58:46,749 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:58:46,749 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:58:46,750 [DEBUG][       Thread-601040][   transport.py][1871] : userauth is OK
2025-07-01 09:58:46,775 [ INFO][       Thread-601040][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:58:46,775 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:58:47,426 [DEBUG][       Thread-601040][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:58:47,426 [DEBUG][       Thread-601040][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:58:47,468 [DEBUG][       Thread-601040][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:58:47,468 [DEBUG][       Thread-601040][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:58:47,471 [DEBUG][       Thread-601040][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:58:47,485 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:58:47,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:58:47,486 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:58:47,486 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:58:47,489 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:58:47,490 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:58:47,490 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:58:47,490 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:58:47,490 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.332239 -999.00   +9.50  39.63     54   +0.80 1 1 2 1 1   887    0 9.22 17.91 ----- 39.6 39.6 14.9 45.7 12.4 -23.2 11.6 -23.9 10.8 -22.8 11.5 -22.7
2025-07-01 09:58:47,490 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:58:47,490 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:58:47,490 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.332239
2025-07-01 09:58:47,490 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:58:47,491 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:58:47,491 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:58:47,491 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:58:47,491 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:58:47,491 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:58:19', tmtdew=10.02, humidity=49.8, cloud=0.0, wind=39.2, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:58:25.450', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:58:47,491 [DEBUG][       Thread-601040][   transport.py][1871] : EOF in transport thread
2025-07-01 09:58:47,565 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:58:47,575 [DEBUG][       Thread-601043][   transport.py][1871] : starting thread (client mode): 0x8157a00
2025-07-01 09:58:47,575 [DEBUG][       Thread-601043][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:58:47,589 [DEBUG][       Thread-601043][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:58:47,589 [ INFO][       Thread-601043][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:58:47,597 [DEBUG][       Thread-601043][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:58:47,597 [DEBUG][       Thread-601043][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:58:47,597 [DEBUG][       Thread-601043][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:58:47,597 [DEBUG][       Thread-601043][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:58:47,597 [DEBUG][       Thread-601043][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:58:47,597 [DEBUG][       Thread-601043][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:58:47,597 [DEBUG][       Thread-601043][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:58:47,597 [DEBUG][       Thread-601043][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:58:47,597 [DEBUG][       Thread-601043][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:58:47,597 [DEBUG][       Thread-601043][   transport.py][1871] : client lang: <none>
2025-07-01 09:58:47,597 [DEBUG][       Thread-601043][   transport.py][1871] : server lang: <none>
2025-07-01 09:58:47,597 [DEBUG][       Thread-601043][   transport.py][1871] : kex follows: False
2025-07-01 09:58:47,597 [DEBUG][       Thread-601043][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:58:47,597 [DEBUG][       Thread-601043][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:58:47,597 [DEBUG][       Thread-601043][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:58:47,597 [DEBUG][       Thread-601043][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:58:47,597 [DEBUG][       Thread-601043][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:58:47,597 [DEBUG][       Thread-601043][   transport.py][1871] : Compression: none
2025-07-01 09:58:47,597 [DEBUG][       Thread-601043][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:58:47,655 [DEBUG][       Thread-601043][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:58:47,655 [DEBUG][       Thread-601043][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:58:47,655 [DEBUG][       Thread-601043][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:58:47,655 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:58:47,655 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:58:47,841 [DEBUG][       Thread-601043][   transport.py][1871] : userauth is OK
2025-07-01 09:58:47,841 [DEBUG][       Thread-601043][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:58:47,841 [DEBUG][       Thread-601043][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:58:47,841 [DEBUG][       Thread-601043][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:58:47,841 [DEBUG][       Thread-601043][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:58:47,950 [ INFO][       Thread-601043][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:58:47,950 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:58:47,950 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:58:48,515 [DEBUG][Thread-601045 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:58:48,973 [DEBUG][       Thread-601043][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:58:48,973 [DEBUG][       Thread-601043][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:58:49,106 [DEBUG][       Thread-601043][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:58:49,106 [DEBUG][       Thread-601043][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:58:49,276 [DEBUG][       Thread-601043][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:58:49,435 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:58:49,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-07-01 09:58:49,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-07-01 09:58:49,737 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:58:49,737 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:58:49,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:58:49,838 [DEBUG][       Thread-601043][   transport.py][1871] : EOF in transport thread
2025-07-01 09:58:55,369 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:58:55,370 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:58:57,532 [DEBUG][Thread-601046 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:58:59,748 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:58:59,748 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:58:59,748 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:58:59,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-07-01 09:59:00,218 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 58, 50), 10.09, 49.55, 0.0, 38.3, 9.57, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:59:00,218 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:58:50
2025-07-01 09:59:00,303 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:59:00,308 [DEBUG][       Thread-601047][   transport.py][1871] : starting thread (client mode): 0x75a8550
2025-07-01 09:59:00,308 [DEBUG][       Thread-601047][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:59:00,328 [DEBUG][       Thread-601047][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:59:00,329 [ INFO][       Thread-601047][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:59:00,332 [DEBUG][       Thread-601047][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:59:00,332 [DEBUG][       Thread-601047][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:59:00,332 [DEBUG][       Thread-601047][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:59:00,332 [DEBUG][       Thread-601047][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:59:00,332 [DEBUG][       Thread-601047][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:59:00,332 [DEBUG][       Thread-601047][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:59:00,332 [DEBUG][       Thread-601047][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:59:00,332 [DEBUG][       Thread-601047][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:59:00,332 [DEBUG][       Thread-601047][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:59:00,332 [DEBUG][       Thread-601047][   transport.py][1871] : client lang: <none>
2025-07-01 09:59:00,332 [DEBUG][       Thread-601047][   transport.py][1871] : server lang: <none>
2025-07-01 09:59:00,332 [DEBUG][       Thread-601047][   transport.py][1871] : kex follows: False
2025-07-01 09:59:00,332 [DEBUG][       Thread-601047][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:59:00,332 [DEBUG][       Thread-601047][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:59:00,332 [DEBUG][       Thread-601047][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:59:00,332 [DEBUG][       Thread-601047][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:59:00,332 [DEBUG][       Thread-601047][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:59:00,332 [DEBUG][       Thread-601047][   transport.py][1871] : Compression: none
2025-07-01 09:59:00,332 [DEBUG][       Thread-601047][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:59:00,349 [DEBUG][       Thread-601047][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:59:00,349 [DEBUG][       Thread-601047][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:59:00,350 [DEBUG][       Thread-601047][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:59:00,350 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:59:00,350 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:59:00,351 [DEBUG][       Thread-601047][   transport.py][1871] : userauth is OK
2025-07-01 09:59:00,364 [ INFO][       Thread-601047][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:59:00,365 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:59:01,014 [DEBUG][       Thread-601047][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:59:01,014 [DEBUG][       Thread-601047][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:59:01,057 [DEBUG][       Thread-601047][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:59:01,057 [DEBUG][       Thread-601047][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:59:01,061 [DEBUG][       Thread-601047][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:59:01,073 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:59:01,074 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:59:01,076 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:59:01,078 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:59:01,083 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:59:01,085 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:59:01,085 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:59:01,086 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:59:01,086 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.332239 -999.00   +9.50  39.63     54   +0.80 1 1 2 1 1   887    0 9.22 17.91 ----- 39.6 39.6 14.9 45.7 12.4 -23.2 11.6 -23.9 10.8 -22.8 11.5 -22.7
2025-07-01 09:59:01,086 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:59:01,086 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:59:01,086 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.332239
2025-07-01 09:59:01,087 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:59:01,087 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:59:01,087 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:59:01,088 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:59:01,088 [DEBUG][       Thread-601047][   transport.py][1871] : EOF in transport thread
2025-07-01 09:59:01,088 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:59:01,089 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:58:50', tmtdew=10.09, humidity=49.55, cloud=0.0, wind=38.3, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:58:25.450', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:59:01,164 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:59:01,175 [DEBUG][       Thread-601050][   transport.py][1871] : starting thread (client mode): 0x81e5840
2025-07-01 09:59:01,175 [DEBUG][       Thread-601050][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:59:01,191 [DEBUG][       Thread-601050][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:59:01,191 [ INFO][       Thread-601050][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:59:01,198 [DEBUG][       Thread-601050][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:59:01,198 [DEBUG][       Thread-601050][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:59:01,199 [DEBUG][       Thread-601050][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:59:01,199 [DEBUG][       Thread-601050][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:59:01,199 [DEBUG][       Thread-601050][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:59:01,199 [DEBUG][       Thread-601050][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:59:01,199 [DEBUG][       Thread-601050][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:59:01,199 [DEBUG][       Thread-601050][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:59:01,199 [DEBUG][       Thread-601050][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:59:01,199 [DEBUG][       Thread-601050][   transport.py][1871] : client lang: <none>
2025-07-01 09:59:01,199 [DEBUG][       Thread-601050][   transport.py][1871] : server lang: <none>
2025-07-01 09:59:01,199 [DEBUG][       Thread-601050][   transport.py][1871] : kex follows: False
2025-07-01 09:59:01,199 [DEBUG][       Thread-601050][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:59:01,199 [DEBUG][       Thread-601050][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:59:01,199 [DEBUG][       Thread-601050][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:59:01,199 [DEBUG][       Thread-601050][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:59:01,199 [DEBUG][       Thread-601050][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:59:01,199 [DEBUG][       Thread-601050][   transport.py][1871] : Compression: none
2025-07-01 09:59:01,199 [DEBUG][       Thread-601050][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:59:01,260 [DEBUG][       Thread-601050][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:59:01,260 [DEBUG][       Thread-601050][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:59:01,261 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:59:01,261 [DEBUG][       Thread-601050][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:59:01,262 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:59:01,318 [DEBUG][       Thread-601050][   transport.py][1871] : userauth is OK
2025-07-01 09:59:01,318 [DEBUG][       Thread-601050][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:59:01,318 [DEBUG][       Thread-601050][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:59:01,318 [DEBUG][       Thread-601050][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:59:01,318 [DEBUG][       Thread-601050][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:59:01,332 [ INFO][       Thread-601050][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:59:01,333 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:59:01,333 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:59:02,426 [DEBUG][       Thread-601050][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:59:02,426 [DEBUG][       Thread-601050][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:59:02,626 [DEBUG][       Thread-601050][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:59:02,626 [DEBUG][       Thread-601050][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:59:02,799 [DEBUG][       Thread-601050][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:59:02,899 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:59:02,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-07-01 09:59:03,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-07-01 09:59:03,190 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:59:03,190 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:59:03,191 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:59:03,290 [DEBUG][       Thread-601050][   transport.py][1871] : EOF in transport thread
2025-07-01 09:59:06,554 [DEBUG][Thread-601052 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:59:13,201 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:59:13,201 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:59:13,201 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:59:13,204 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 09:59:13,677 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 58, 50), 10.09, 49.55, 0.0, 38.3, 9.57, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:59:13,677 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:58:50
2025-07-01 09:59:13,762 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:59:13,766 [DEBUG][       Thread-601053][   transport.py][1871] : starting thread (client mode): 0x81048b0
2025-07-01 09:59:13,766 [DEBUG][       Thread-601053][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:59:13,786 [DEBUG][       Thread-601053][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:59:13,786 [ INFO][       Thread-601053][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:59:13,790 [DEBUG][       Thread-601053][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:59:13,790 [DEBUG][       Thread-601053][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:59:13,790 [DEBUG][       Thread-601053][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:59:13,790 [DEBUG][       Thread-601053][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:59:13,790 [DEBUG][       Thread-601053][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:59:13,790 [DEBUG][       Thread-601053][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:59:13,790 [DEBUG][       Thread-601053][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:59:13,790 [DEBUG][       Thread-601053][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:59:13,790 [DEBUG][       Thread-601053][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:59:13,790 [DEBUG][       Thread-601053][   transport.py][1871] : client lang: <none>
2025-07-01 09:59:13,790 [DEBUG][       Thread-601053][   transport.py][1871] : server lang: <none>
2025-07-01 09:59:13,790 [DEBUG][       Thread-601053][   transport.py][1871] : kex follows: False
2025-07-01 09:59:13,790 [DEBUG][       Thread-601053][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:59:13,790 [DEBUG][       Thread-601053][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:59:13,790 [DEBUG][       Thread-601053][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:59:13,790 [DEBUG][       Thread-601053][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:59:13,790 [DEBUG][       Thread-601053][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:59:13,790 [DEBUG][       Thread-601053][   transport.py][1871] : Compression: none
2025-07-01 09:59:13,790 [DEBUG][       Thread-601053][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:59:13,806 [DEBUG][       Thread-601053][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:59:13,807 [DEBUG][       Thread-601053][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:59:13,807 [DEBUG][       Thread-601053][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:59:13,808 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:59:13,808 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:59:13,809 [DEBUG][       Thread-601053][   transport.py][1871] : userauth is OK
2025-07-01 09:59:13,834 [ INFO][       Thread-601053][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:59:13,834 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:59:14,442 [DEBUG][       Thread-601053][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:59:14,442 [DEBUG][       Thread-601053][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:59:14,485 [DEBUG][       Thread-601053][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:59:14,485 [DEBUG][       Thread-601053][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:59:14,488 [DEBUG][       Thread-601053][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:59:14,500 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:59:14,500 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:59:14,502 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:59:14,503 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:59:14,508 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:59:14,510 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:59:14,510 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:59:14,511 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:59:14,511 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.332581 -999.00   +9.40  37.79     54   +0.70 1 1 2 1 1   887    0 9.33 15.54 ----- 37.8 37.8 27.8 52.2 12.5 -23.7 11.6 -24.2 10.7 -23.1 11.6 -22.6
2025-07-01 09:59:14,511 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:59:14,511 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:59:14,511 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.332581
2025-07-01 09:59:14,511 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:59:14,512 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:59:14,512 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:59:14,512 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:59:14,512 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:59:14,512 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:58:50', tmtdew=10.09, humidity=49.55, cloud=0.0, wind=38.3, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:58:54.998', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:59:14,513 [DEBUG][       Thread-601053][   transport.py][1871] : EOF in transport thread
2025-07-01 09:59:14,596 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:59:14,605 [DEBUG][       Thread-601056][   transport.py][1871] : starting thread (client mode): 0x818fac0
2025-07-01 09:59:14,605 [DEBUG][       Thread-601056][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:59:14,620 [DEBUG][       Thread-601056][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:59:14,620 [ INFO][       Thread-601056][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:59:14,627 [DEBUG][       Thread-601056][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:59:14,627 [DEBUG][       Thread-601056][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:59:14,627 [DEBUG][       Thread-601056][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:59:14,627 [DEBUG][       Thread-601056][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:59:14,627 [DEBUG][       Thread-601056][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:59:14,627 [DEBUG][       Thread-601056][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:59:14,627 [DEBUG][       Thread-601056][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:59:14,627 [DEBUG][       Thread-601056][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:59:14,627 [DEBUG][       Thread-601056][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:59:14,627 [DEBUG][       Thread-601056][   transport.py][1871] : client lang: <none>
2025-07-01 09:59:14,627 [DEBUG][       Thread-601056][   transport.py][1871] : server lang: <none>
2025-07-01 09:59:14,627 [DEBUG][       Thread-601056][   transport.py][1871] : kex follows: False
2025-07-01 09:59:14,627 [DEBUG][       Thread-601056][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:59:14,627 [DEBUG][       Thread-601056][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:59:14,627 [DEBUG][       Thread-601056][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:59:14,627 [DEBUG][       Thread-601056][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:59:14,627 [DEBUG][       Thread-601056][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:59:14,627 [DEBUG][       Thread-601056][   transport.py][1871] : Compression: none
2025-07-01 09:59:14,627 [DEBUG][       Thread-601056][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:59:14,685 [DEBUG][       Thread-601056][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:59:14,685 [DEBUG][       Thread-601056][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:59:14,685 [DEBUG][       Thread-601056][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:59:14,685 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:59:14,686 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:59:14,749 [DEBUG][       Thread-601056][   transport.py][1871] : userauth is OK
2025-07-01 09:59:14,749 [DEBUG][       Thread-601056][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:59:14,749 [DEBUG][       Thread-601056][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:59:14,749 [DEBUG][       Thread-601056][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:59:14,749 [DEBUG][       Thread-601056][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:59:14,764 [ INFO][       Thread-601056][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:59:14,764 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:59:14,764 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:59:15,588 [DEBUG][Thread-601058 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:59:15,811 [DEBUG][       Thread-601056][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:59:15,811 [DEBUG][       Thread-601056][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:59:15,866 [DEBUG][       Thread-601056][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:59:15,867 [DEBUG][       Thread-601056][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:59:15,883 [DEBUG][       Thread-601056][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:59:15,896 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:59:15,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-07-01 09:59:15,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-07-01 09:59:15,915 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:59:15,915 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:59:15,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:59:15,924 [DEBUG][       Thread-601056][   transport.py][1871] : EOF in transport thread
2025-07-01 09:59:21,944 [DEBUG][Thread-601059 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:59:24,609 [DEBUG][Thread-601060 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:59:25,926 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:59:25,926 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:59:25,926 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:59:25,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-07-01 09:59:26,443 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 59, 22), 10.13, 49.21, 0.0, 34.47, 9.62, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:59:26,443 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:59:22
2025-07-01 09:59:26,531 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:59:26,535 [DEBUG][       Thread-601061][   transport.py][1871] : starting thread (client mode): 0x8107910
2025-07-01 09:59:26,535 [DEBUG][       Thread-601061][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:59:26,557 [DEBUG][       Thread-601061][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:59:26,557 [ INFO][       Thread-601061][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:59:26,559 [DEBUG][       Thread-601061][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:59:26,559 [DEBUG][       Thread-601061][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:59:26,559 [DEBUG][       Thread-601061][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:59:26,559 [DEBUG][       Thread-601061][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:59:26,559 [DEBUG][       Thread-601061][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:59:26,559 [DEBUG][       Thread-601061][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:59:26,559 [DEBUG][       Thread-601061][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:59:26,559 [DEBUG][       Thread-601061][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:59:26,559 [DEBUG][       Thread-601061][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:59:26,559 [DEBUG][       Thread-601061][   transport.py][1871] : client lang: <none>
2025-07-01 09:59:26,559 [DEBUG][       Thread-601061][   transport.py][1871] : server lang: <none>
2025-07-01 09:59:26,559 [DEBUG][       Thread-601061][   transport.py][1871] : kex follows: False
2025-07-01 09:59:26,559 [DEBUG][       Thread-601061][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:59:26,559 [DEBUG][       Thread-601061][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:59:26,559 [DEBUG][       Thread-601061][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:59:26,559 [DEBUG][       Thread-601061][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:59:26,559 [DEBUG][       Thread-601061][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:59:26,559 [DEBUG][       Thread-601061][   transport.py][1871] : Compression: none
2025-07-01 09:59:26,559 [DEBUG][       Thread-601061][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:59:26,568 [DEBUG][       Thread-601061][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:59:26,568 [DEBUG][       Thread-601061][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:59:26,568 [DEBUG][       Thread-601061][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:59:26,568 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:59:26,568 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:59:26,569 [DEBUG][       Thread-601061][   transport.py][1871] : userauth is OK
2025-07-01 09:59:26,582 [ INFO][       Thread-601061][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:59:26,582 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:59:27,240 [DEBUG][       Thread-601061][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:59:27,241 [DEBUG][       Thread-601061][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:59:27,284 [DEBUG][       Thread-601061][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:59:27,284 [DEBUG][       Thread-601061][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:59:27,287 [DEBUG][       Thread-601061][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:59:27,298 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:59:27,299 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:59:27,300 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:59:27,300 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:59:27,303 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:59:27,304 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:59:27,304 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:59:27,304 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:59:27,304 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.332581 -999.00   +9.40  37.79     54   +0.70 1 1 2 1 1   887    0 9.33 15.54 ----- 37.8 37.8 27.8 52.2 12.5 -23.7 11.6 -24.2 10.7 -23.1 11.6 -22.6
2025-07-01 09:59:27,304 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:59:27,304 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:59:27,304 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.332581
2025-07-01 09:59:27,305 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:59:27,305 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:59:27,305 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:59:27,305 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:59:27,305 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:59:27,305 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:59:22', tmtdew=10.13, humidity=49.21, cloud=0.0, wind=34.47, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:58:54.998', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:59:27,305 [DEBUG][       Thread-601061][   transport.py][1871] : EOF in transport thread
2025-07-01 09:59:27,379 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:59:27,391 [DEBUG][       Thread-601064][   transport.py][1871] : starting thread (client mode): 0x82b3310
2025-07-01 09:59:27,391 [DEBUG][       Thread-601064][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:59:27,406 [DEBUG][       Thread-601064][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 09:59:27,406 [ INFO][       Thread-601064][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 09:59:27,413 [DEBUG][       Thread-601064][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:59:27,413 [DEBUG][       Thread-601064][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 09:59:27,413 [DEBUG][       Thread-601064][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:59:27,413 [DEBUG][       Thread-601064][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:59:27,413 [DEBUG][       Thread-601064][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:59:27,413 [DEBUG][       Thread-601064][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:59:27,413 [DEBUG][       Thread-601064][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:59:27,413 [DEBUG][       Thread-601064][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:59:27,413 [DEBUG][       Thread-601064][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:59:27,413 [DEBUG][       Thread-601064][   transport.py][1871] : client lang: <none>
2025-07-01 09:59:27,413 [DEBUG][       Thread-601064][   transport.py][1871] : server lang: <none>
2025-07-01 09:59:27,413 [DEBUG][       Thread-601064][   transport.py][1871] : kex follows: False
2025-07-01 09:59:27,413 [DEBUG][       Thread-601064][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:59:27,413 [DEBUG][       Thread-601064][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:59:27,413 [DEBUG][       Thread-601064][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:59:27,413 [DEBUG][       Thread-601064][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:59:27,413 [DEBUG][       Thread-601064][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:59:27,413 [DEBUG][       Thread-601064][   transport.py][1871] : Compression: none
2025-07-01 09:59:27,413 [DEBUG][       Thread-601064][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:59:27,469 [DEBUG][       Thread-601064][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:59:27,469 [DEBUG][       Thread-601064][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:59:27,470 [DEBUG][       Thread-601064][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 09:59:27,470 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 09:59:27,470 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 09:59:27,532 [DEBUG][       Thread-601064][   transport.py][1871] : userauth is OK
2025-07-01 09:59:27,532 [DEBUG][       Thread-601064][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 09:59:27,532 [DEBUG][       Thread-601064][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 09:59:27,532 [DEBUG][       Thread-601064][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 09:59:27,532 [DEBUG][       Thread-601064][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 09:59:27,546 [ INFO][       Thread-601064][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 09:59:27,546 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 09:59:27,546 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:59:28,571 [DEBUG][       Thread-601064][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:59:28,571 [DEBUG][       Thread-601064][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:59:28,621 [DEBUG][       Thread-601064][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:59:28,621 [DEBUG][       Thread-601064][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:59:28,630 [DEBUG][       Thread-601064][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:59:28,637 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:59:28,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-07-01 09:59:28,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-07-01 09:59:28,653 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:59:28,653 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:59:28,653 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:59:28,661 [DEBUG][       Thread-601064][   transport.py][1871] : EOF in transport thread
2025-07-01 09:59:33,630 [DEBUG][Thread-601066 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:59:38,656 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 09:59:38,656 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 09:59:38,656 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 09:59:38,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-07-01 09:59:39,146 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 9, 59, 22), 10.13, 49.21, 0.0, 34.47, 9.62, 0, 0, 0, 2, 0, 0),)
2025-07-01 09:59:39,146 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 09:59:22
2025-07-01 09:59:39,232 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 09:59:39,236 [DEBUG][       Thread-601067][   transport.py][1871] : starting thread (client mode): 0x8107940
2025-07-01 09:59:39,236 [DEBUG][       Thread-601067][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 09:59:39,255 [DEBUG][       Thread-601067][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 09:59:39,256 [ INFO][       Thread-601067][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 09:59:39,259 [DEBUG][       Thread-601067][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 09:59:39,259 [DEBUG][       Thread-601067][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 09:59:39,259 [DEBUG][       Thread-601067][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 09:59:39,259 [DEBUG][       Thread-601067][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:59:39,259 [DEBUG][       Thread-601067][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 09:59:39,259 [DEBUG][       Thread-601067][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:59:39,259 [DEBUG][       Thread-601067][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 09:59:39,259 [DEBUG][       Thread-601067][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 09:59:39,259 [DEBUG][       Thread-601067][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 09:59:39,259 [DEBUG][       Thread-601067][   transport.py][1871] : client lang: <none>
2025-07-01 09:59:39,259 [DEBUG][       Thread-601067][   transport.py][1871] : server lang: <none>
2025-07-01 09:59:39,259 [DEBUG][       Thread-601067][   transport.py][1871] : kex follows: False
2025-07-01 09:59:39,259 [DEBUG][       Thread-601067][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 09:59:39,259 [DEBUG][       Thread-601067][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 09:59:39,259 [DEBUG][       Thread-601067][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 09:59:39,259 [DEBUG][       Thread-601067][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 09:59:39,259 [DEBUG][       Thread-601067][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 09:59:39,259 [DEBUG][       Thread-601067][   transport.py][1871] : Compression: none
2025-07-01 09:59:39,259 [DEBUG][       Thread-601067][   transport.py][1871] : === End of kex handshake ===
2025-07-01 09:59:39,276 [DEBUG][       Thread-601067][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 09:59:39,276 [DEBUG][       Thread-601067][   transport.py][1871] : Switch to new keys ...
2025-07-01 09:59:39,277 [DEBUG][       Thread-601067][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 09:59:39,277 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 09:59:39,277 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 09:59:39,278 [DEBUG][       Thread-601067][   transport.py][1871] : userauth is OK
2025-07-01 09:59:39,291 [ INFO][       Thread-601067][   transport.py][1871] : Authentication (password) successful!
2025-07-01 09:59:39,292 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 09:59:39,909 [DEBUG][       Thread-601067][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 09:59:39,910 [DEBUG][       Thread-601067][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 09:59:39,953 [DEBUG][       Thread-601067][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 09:59:39,953 [DEBUG][       Thread-601067][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 09:59:39,956 [DEBUG][       Thread-601067][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 09:59:39,968 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 09:59:39,969 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 09:59:39,971 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 09:59:39,973 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 09:59:39,978 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 09:59:39,980 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 09:59:39,980 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 09:59:39,981 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 09:59:39,981 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.332581 -999.00   +9.40  37.79     54   +0.70 1 1 2 1 1   887    0 9.33 15.54 ----- 37.8 37.8 27.8 52.2 12.5 -23.7 11.6 -24.2 10.7 -23.1 11.6 -22.6
2025-07-01 09:59:39,981 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 09:59:39,981 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 09:59:39,981 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.332581
2025-07-01 09:59:39,982 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 09:59:39,982 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 09:59:39,982 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 09:59:39,982 [DEBUG][       Thread-601067][   transport.py][1871] : EOF in transport thread
2025-07-01 09:59:39,983 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 09:59:39,983 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 09:59:39,983 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T09:59:22', tmtdew=10.13, humidity=49.21, cloud=0.0, wind=34.47, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T07:58:54.998', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 09:59:40,067 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 09:59:42,666 [DEBUG][Thread-601070 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:59:51,693 [DEBUG][Thread-601071 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:59:55,508 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 09:59:55,509 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:00:00,716 [DEBUG][Thread-601072 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:00:09,737 [DEBUG][Thread-601073 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:00:18,763 [DEBUG][Thread-601074 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:00:21,977 [DEBUG][Thread-601075 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:00:27,783 [DEBUG][Thread-601076 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:00:36,806 [DEBUG][Thread-601077 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:00:45,825 [DEBUG][Thread-601078 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:00:54,847 [DEBUG][Thread-601079 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:00:55,648 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:00:55,649 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:01:03,870 [DEBUG][Thread-601080 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:01:12,892 [DEBUG][Thread-601081 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:01:21,914 [DEBUG][Thread-601082 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:01:22,003 [DEBUG][Thread-601083 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:01:30,934 [DEBUG][Thread-601084 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:01:39,956 [DEBUG][Thread-601085 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:01:48,979 [DEBUG][Thread-601086 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:01:49,844 [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-07-01 10:01:55,788 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:01:55,789 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:01:58,002 [DEBUG][Thread-601087 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:01:59,852 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:01:59,852 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:01:59,852 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:01:59,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-07-01 10:02:00,386 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 1, 30), 10.06, 49.65, 0.0, 32.5, 9.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:02:00,386 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:01:30
2025-07-01 10:02:00,477 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:02:00,483 [DEBUG][       Thread-601088][   transport.py][1871] : starting thread (client mode): 0x818e2f0
2025-07-01 10:02:00,483 [DEBUG][       Thread-601088][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:02:00,503 [DEBUG][       Thread-601088][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:02:00,503 [ INFO][       Thread-601088][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:02:00,505 [DEBUG][       Thread-601088][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:02:00,505 [DEBUG][       Thread-601088][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:02:00,505 [DEBUG][       Thread-601088][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:02:00,505 [DEBUG][       Thread-601088][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:02:00,505 [DEBUG][       Thread-601088][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:02:00,505 [DEBUG][       Thread-601088][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:02:00,505 [DEBUG][       Thread-601088][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:02:00,505 [DEBUG][       Thread-601088][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:02:00,505 [DEBUG][       Thread-601088][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:02:00,505 [DEBUG][       Thread-601088][   transport.py][1871] : client lang: <none>
2025-07-01 10:02:00,505 [DEBUG][       Thread-601088][   transport.py][1871] : server lang: <none>
2025-07-01 10:02:00,505 [DEBUG][       Thread-601088][   transport.py][1871] : kex follows: False
2025-07-01 10:02:00,505 [DEBUG][       Thread-601088][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:02:00,505 [DEBUG][       Thread-601088][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:02:00,505 [DEBUG][       Thread-601088][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:02:00,505 [DEBUG][       Thread-601088][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:02:00,505 [DEBUG][       Thread-601088][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:02:00,505 [DEBUG][       Thread-601088][   transport.py][1871] : Compression: none
2025-07-01 10:02:00,505 [DEBUG][       Thread-601088][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:02:00,518 [DEBUG][       Thread-601088][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:02:00,518 [DEBUG][       Thread-601088][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:02:00,518 [DEBUG][       Thread-601088][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:02:00,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:02:00,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:02:00,519 [DEBUG][       Thread-601088][   transport.py][1871] : userauth is OK
2025-07-01 10:02:00,531 [ INFO][       Thread-601088][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:02:00,531 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:02:01,131 [DEBUG][       Thread-601088][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:02:01,131 [DEBUG][       Thread-601088][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:02:01,172 [DEBUG][       Thread-601088][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:02:01,172 [DEBUG][       Thread-601088][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:02:01,175 [DEBUG][       Thread-601088][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:02:01,186 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:02:01,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:02:01,188 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:02:01,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:02:01,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:02:01,193 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:02:01,193 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:02:01,193 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:02:01,193 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.334669 -999.00   +9.50  36.52     54   +0.80 1 1 2 1 1   887    0 8.80 6.49 ----- 36.5 36.5 24.0 48.1 12.3 -25.2 11.5 -24.5 10.7 -23.1 11.5 -22.7
2025-07-01 10:02:01,193 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:02:01,193 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:02:01,193 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.334669
2025-07-01 10:02:01,193 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:02:01,193 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:02:01,193 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:02:01,193 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:02:01,193 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:02:01,194 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:01:30', tmtdew=10.06, humidity=49.65, cloud=0.0, wind=32.5, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:01:55.402', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:02:01,194 [DEBUG][       Thread-601088][   transport.py][1871] : EOF in transport thread
2025-07-01 10:02:01,268 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:02:01,280 [DEBUG][       Thread-601091][   transport.py][1871] : starting thread (client mode): 0x8154f70
2025-07-01 10:02:01,280 [DEBUG][       Thread-601091][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:02:01,294 [DEBUG][       Thread-601091][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:02:01,294 [ INFO][       Thread-601091][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:02:01,302 [DEBUG][       Thread-601091][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:02:01,302 [DEBUG][       Thread-601091][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:02:01,302 [DEBUG][       Thread-601091][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:02:01,302 [DEBUG][       Thread-601091][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:02:01,302 [DEBUG][       Thread-601091][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:02:01,302 [DEBUG][       Thread-601091][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:02:01,302 [DEBUG][       Thread-601091][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:02:01,302 [DEBUG][       Thread-601091][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:02:01,302 [DEBUG][       Thread-601091][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:02:01,302 [DEBUG][       Thread-601091][   transport.py][1871] : client lang: <none>
2025-07-01 10:02:01,302 [DEBUG][       Thread-601091][   transport.py][1871] : server lang: <none>
2025-07-01 10:02:01,302 [DEBUG][       Thread-601091][   transport.py][1871] : kex follows: False
2025-07-01 10:02:01,302 [DEBUG][       Thread-601091][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:02:01,302 [DEBUG][       Thread-601091][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:02:01,302 [DEBUG][       Thread-601091][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:02:01,302 [DEBUG][       Thread-601091][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:02:01,302 [DEBUG][       Thread-601091][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:02:01,302 [DEBUG][       Thread-601091][   transport.py][1871] : Compression: none
2025-07-01 10:02:01,302 [DEBUG][       Thread-601091][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:02:01,357 [DEBUG][       Thread-601091][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:02:01,357 [DEBUG][       Thread-601091][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:02:01,357 [DEBUG][       Thread-601091][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:02:01,357 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:02:01,357 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:02:01,414 [DEBUG][       Thread-601091][   transport.py][1871] : userauth is OK
2025-07-01 10:02:01,414 [DEBUG][       Thread-601091][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:02:01,414 [DEBUG][       Thread-601091][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:02:01,414 [DEBUG][       Thread-601091][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:02:01,414 [DEBUG][       Thread-601091][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:02:01,428 [ INFO][       Thread-601091][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:02:01,428 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:02:01,428 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:02:02,465 [DEBUG][       Thread-601091][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:02:02,465 [DEBUG][       Thread-601091][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:02:02,515 [DEBUG][       Thread-601091][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:02:02,515 [DEBUG][       Thread-601091][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:02:02,524 [DEBUG][       Thread-601091][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:02:02,532 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:02:02,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-07-01 10:02:02,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-07-01 10:02:02,567 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:02:02,567 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:02:02,567 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:02:02,578 [DEBUG][       Thread-601091][   transport.py][1871] : EOF in transport thread
2025-07-01 10:02:07,023 [DEBUG][Thread-601093 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:02:12,577 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:02:12,577 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:02:12,578 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:02:12,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-07-01 10:02:13,080 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 2, 2), 10.11, 49.5, 0.0, 37.1, 9.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:02:13,080 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:02:02
2025-07-01 10:02:13,166 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:02:13,170 [DEBUG][       Thread-601094][   transport.py][1871] : starting thread (client mode): 0x8171930
2025-07-01 10:02:13,170 [DEBUG][       Thread-601094][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:02:13,183 [DEBUG][       Thread-601094][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:02:13,183 [ INFO][       Thread-601094][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:02:13,186 [DEBUG][       Thread-601094][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:02:13,186 [DEBUG][       Thread-601094][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:02:13,186 [DEBUG][       Thread-601094][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:02:13,186 [DEBUG][       Thread-601094][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:02:13,186 [DEBUG][       Thread-601094][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:02:13,186 [DEBUG][       Thread-601094][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:02:13,186 [DEBUG][       Thread-601094][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:02:13,186 [DEBUG][       Thread-601094][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:02:13,186 [DEBUG][       Thread-601094][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:02:13,186 [DEBUG][       Thread-601094][   transport.py][1871] : client lang: <none>
2025-07-01 10:02:13,186 [DEBUG][       Thread-601094][   transport.py][1871] : server lang: <none>
2025-07-01 10:02:13,186 [DEBUG][       Thread-601094][   transport.py][1871] : kex follows: False
2025-07-01 10:02:13,186 [DEBUG][       Thread-601094][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:02:13,186 [DEBUG][       Thread-601094][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:02:13,186 [DEBUG][       Thread-601094][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:02:13,186 [DEBUG][       Thread-601094][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:02:13,187 [DEBUG][       Thread-601094][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:02:13,187 [DEBUG][       Thread-601094][   transport.py][1871] : Compression: none
2025-07-01 10:02:13,187 [DEBUG][       Thread-601094][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:02:13,205 [DEBUG][       Thread-601094][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:02:13,206 [DEBUG][       Thread-601094][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:02:13,206 [DEBUG][       Thread-601094][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:02:13,207 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:02:13,207 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:02:13,208 [DEBUG][       Thread-601094][   transport.py][1871] : userauth is OK
2025-07-01 10:02:13,221 [ INFO][       Thread-601094][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:02:13,221 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:02:14,039 [DEBUG][       Thread-601094][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:02:14,040 [DEBUG][       Thread-601094][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:02:14,081 [DEBUG][       Thread-601094][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:02:14,081 [DEBUG][       Thread-601094][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:02:14,085 [DEBUG][       Thread-601094][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:02:14,097 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:02:14,097 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:02:14,099 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:02:14,101 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:02:14,107 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:02:14,109 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:02:14,109 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:02:14,110 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:02:14,110 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.334669 -999.00   +9.50  36.52     54   +0.80 1 1 2 1 1   887    0 8.80 6.49 ----- 36.5 36.5 24.0 48.1 12.3 -25.2 11.5 -24.5 10.7 -23.1 11.5 -22.7
2025-07-01 10:02:14,110 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:02:14,110 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:02:14,110 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.334669
2025-07-01 10:02:14,111 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:02:14,111 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:02:14,111 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:02:14,111 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:02:14,111 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:02:14,112 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:02:02', tmtdew=10.11, humidity=49.5, cloud=0.0, wind=37.1, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:01:55.402', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:02:14,112 [DEBUG][       Thread-601094][   transport.py][1871] : EOF in transport thread
2025-07-01 10:02:14,196 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:02:14,209 [DEBUG][       Thread-601097][   transport.py][1871] : starting thread (client mode): 0x8393b80
2025-07-01 10:02:14,210 [DEBUG][       Thread-601097][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:02:14,227 [DEBUG][       Thread-601097][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:02:14,228 [ INFO][       Thread-601097][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:02:14,238 [DEBUG][       Thread-601097][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:02:14,238 [DEBUG][       Thread-601097][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:02:14,238 [DEBUG][       Thread-601097][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:02:14,238 [DEBUG][       Thread-601097][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:02:14,238 [DEBUG][       Thread-601097][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:02:14,238 [DEBUG][       Thread-601097][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:02:14,238 [DEBUG][       Thread-601097][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:02:14,239 [DEBUG][       Thread-601097][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:02:14,239 [DEBUG][       Thread-601097][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:02:14,239 [DEBUG][       Thread-601097][   transport.py][1871] : client lang: <none>
2025-07-01 10:02:14,239 [DEBUG][       Thread-601097][   transport.py][1871] : server lang: <none>
2025-07-01 10:02:14,239 [DEBUG][       Thread-601097][   transport.py][1871] : kex follows: False
2025-07-01 10:02:14,239 [DEBUG][       Thread-601097][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:02:14,239 [DEBUG][       Thread-601097][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:02:14,239 [DEBUG][       Thread-601097][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:02:14,239 [DEBUG][       Thread-601097][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:02:14,239 [DEBUG][       Thread-601097][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:02:14,239 [DEBUG][       Thread-601097][   transport.py][1871] : Compression: none
2025-07-01 10:02:14,239 [DEBUG][       Thread-601097][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:02:14,302 [DEBUG][       Thread-601097][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:02:14,302 [DEBUG][       Thread-601097][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:02:14,303 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:02:14,303 [DEBUG][       Thread-601097][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:02:14,304 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:02:14,359 [DEBUG][       Thread-601097][   transport.py][1871] : userauth is OK
2025-07-01 10:02:14,359 [DEBUG][       Thread-601097][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:02:14,359 [DEBUG][       Thread-601097][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:02:14,359 [DEBUG][       Thread-601097][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:02:14,359 [DEBUG][       Thread-601097][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:02:14,378 [ INFO][       Thread-601097][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:02:14,379 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:02:14,379 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:02:15,465 [DEBUG][       Thread-601097][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:02:15,465 [DEBUG][       Thread-601097][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:02:15,519 [DEBUG][       Thread-601097][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:02:15,519 [DEBUG][       Thread-601097][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:02:15,527 [DEBUG][       Thread-601097][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:02:15,536 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:02:15,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-07-01 10:02:15,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-07-01 10:02:15,552 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:02:15,553 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:02:15,553 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:02:15,560 [DEBUG][       Thread-601097][   transport.py][1871] : EOF in transport thread
2025-07-01 10:02:16,060 [DEBUG][Thread-601099 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:02:22,035 [DEBUG][Thread-601100 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:02:25,099 [DEBUG][Thread-601101 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:02:25,563 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:02:25,563 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:02:25,563 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:02:25,566 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:02:26,060 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 2, 2), 10.11, 49.5, 0.0, 37.1, 9.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:02:26,060 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:02:02
2025-07-01 10:02:26,146 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:02:26,152 [DEBUG][       Thread-601102][   transport.py][1871] : starting thread (client mode): 0x8173910
2025-07-01 10:02:26,152 [DEBUG][       Thread-601102][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:02:26,175 [DEBUG][       Thread-601102][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:02:26,175 [ INFO][       Thread-601102][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:02:26,178 [DEBUG][       Thread-601102][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:02:26,178 [DEBUG][       Thread-601102][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:02:26,178 [DEBUG][       Thread-601102][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:02:26,178 [DEBUG][       Thread-601102][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:02:26,178 [DEBUG][       Thread-601102][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:02:26,178 [DEBUG][       Thread-601102][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:02:26,178 [DEBUG][       Thread-601102][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:02:26,178 [DEBUG][       Thread-601102][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:02:26,178 [DEBUG][       Thread-601102][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:02:26,178 [DEBUG][       Thread-601102][   transport.py][1871] : client lang: <none>
2025-07-01 10:02:26,178 [DEBUG][       Thread-601102][   transport.py][1871] : server lang: <none>
2025-07-01 10:02:26,178 [DEBUG][       Thread-601102][   transport.py][1871] : kex follows: False
2025-07-01 10:02:26,178 [DEBUG][       Thread-601102][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:02:26,178 [DEBUG][       Thread-601102][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:02:26,178 [DEBUG][       Thread-601102][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:02:26,178 [DEBUG][       Thread-601102][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:02:26,179 [DEBUG][       Thread-601102][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:02:26,179 [DEBUG][       Thread-601102][   transport.py][1871] : Compression: none
2025-07-01 10:02:26,179 [DEBUG][       Thread-601102][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:02:26,196 [DEBUG][       Thread-601102][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:02:26,197 [DEBUG][       Thread-601102][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:02:26,197 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:02:26,197 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:02:26,198 [DEBUG][       Thread-601102][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:02:26,198 [DEBUG][       Thread-601102][   transport.py][1871] : userauth is OK
2025-07-01 10:02:26,222 [ INFO][       Thread-601102][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:02:26,223 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:02:26,999 [DEBUG][       Thread-601102][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:02:26,999 [DEBUG][       Thread-601102][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:02:27,041 [DEBUG][       Thread-601102][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:02:27,041 [DEBUG][       Thread-601102][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:02:27,045 [DEBUG][       Thread-601102][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:02:27,058 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:02:27,058 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:02:27,060 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:02:27,062 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:02:27,067 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:02:27,069 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:02:27,069 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:02:27,070 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:02:27,070 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.334669 -999.00   +9.50  36.52     54   +0.80 1 1 2 1 1   887    0 8.80 6.49 ----- 36.5 36.5 24.0 48.1 12.3 -25.2 11.5 -24.5 10.7 -23.1 11.5 -22.7
2025-07-01 10:02:27,070 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:02:27,070 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:02:27,070 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.334669
2025-07-01 10:02:27,071 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:02:27,071 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:02:27,072 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:02:27,072 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:02:27,072 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:02:27,072 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:02:02', tmtdew=10.11, humidity=49.5, cloud=0.0, wind=37.1, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:01:55.402', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:02:27,073 [DEBUG][       Thread-601102][   transport.py][1871] : EOF in transport thread
2025-07-01 10:02:27,155 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:02:27,170 [DEBUG][       Thread-601105][   transport.py][1871] : starting thread (client mode): 0x75a8460
2025-07-01 10:02:27,170 [DEBUG][       Thread-601105][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:02:27,186 [DEBUG][       Thread-601105][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:02:27,186 [ INFO][       Thread-601105][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:02:27,194 [DEBUG][       Thread-601105][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:02:27,194 [DEBUG][       Thread-601105][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:02:27,194 [DEBUG][       Thread-601105][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:02:27,194 [DEBUG][       Thread-601105][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:02:27,194 [DEBUG][       Thread-601105][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:02:27,194 [DEBUG][       Thread-601105][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:02:27,194 [DEBUG][       Thread-601105][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:02:27,194 [DEBUG][       Thread-601105][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:02:27,194 [DEBUG][       Thread-601105][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:02:27,194 [DEBUG][       Thread-601105][   transport.py][1871] : client lang: <none>
2025-07-01 10:02:27,194 [DEBUG][       Thread-601105][   transport.py][1871] : server lang: <none>
2025-07-01 10:02:27,194 [DEBUG][       Thread-601105][   transport.py][1871] : kex follows: False
2025-07-01 10:02:27,194 [DEBUG][       Thread-601105][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:02:27,195 [DEBUG][       Thread-601105][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:02:27,195 [DEBUG][       Thread-601105][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:02:27,195 [DEBUG][       Thread-601105][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:02:27,195 [DEBUG][       Thread-601105][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:02:27,195 [DEBUG][       Thread-601105][   transport.py][1871] : Compression: none
2025-07-01 10:02:27,195 [DEBUG][       Thread-601105][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:02:27,250 [DEBUG][       Thread-601105][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:02:27,251 [DEBUG][       Thread-601105][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:02:27,251 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:02:27,252 [DEBUG][       Thread-601105][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:02:27,253 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:02:27,307 [DEBUG][       Thread-601105][   transport.py][1871] : userauth is OK
2025-07-01 10:02:27,307 [DEBUG][       Thread-601105][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:02:27,308 [DEBUG][       Thread-601105][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:02:27,308 [DEBUG][       Thread-601105][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:02:27,308 [DEBUG][       Thread-601105][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:02:27,326 [ INFO][       Thread-601105][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:02:27,327 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:02:27,327 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:02:28,366 [DEBUG][       Thread-601105][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:02:28,366 [DEBUG][       Thread-601105][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:02:28,415 [DEBUG][       Thread-601105][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:02:28,415 [DEBUG][       Thread-601105][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:02:28,424 [DEBUG][       Thread-601105][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:02:28,432 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:02:28,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-07-01 10:02:28,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-07-01 10:02:28,451 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:02:28,451 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:02:28,451 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:02:28,464 [DEBUG][       Thread-601105][   transport.py][1871] : EOF in transport thread
2025-07-01 10:02:34,120 [DEBUG][Thread-601107 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:02:38,460 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:02:38,460 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:02:38,460 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:02:38,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-07-01 10:02:38,987 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 2, 34), 10.12, 49.22, 0.0, 37.16, 9.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:02:38,987 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:02:34
2025-07-01 10:02:39,074 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:02:39,078 [DEBUG][       Thread-601108][   transport.py][1871] : starting thread (client mode): 0x75ab610
2025-07-01 10:02:39,078 [DEBUG][       Thread-601108][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:02:39,099 [DEBUG][       Thread-601108][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:02:39,099 [ INFO][       Thread-601108][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:02:39,102 [DEBUG][       Thread-601108][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:02:39,103 [DEBUG][       Thread-601108][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:02:39,103 [DEBUG][       Thread-601108][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:02:39,103 [DEBUG][       Thread-601108][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:02:39,103 [DEBUG][       Thread-601108][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:02:39,103 [DEBUG][       Thread-601108][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:02:39,103 [DEBUG][       Thread-601108][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:02:39,103 [DEBUG][       Thread-601108][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:02:39,103 [DEBUG][       Thread-601108][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:02:39,103 [DEBUG][       Thread-601108][   transport.py][1871] : client lang: <none>
2025-07-01 10:02:39,103 [DEBUG][       Thread-601108][   transport.py][1871] : server lang: <none>
2025-07-01 10:02:39,103 [DEBUG][       Thread-601108][   transport.py][1871] : kex follows: False
2025-07-01 10:02:39,103 [DEBUG][       Thread-601108][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:02:39,103 [DEBUG][       Thread-601108][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:02:39,103 [DEBUG][       Thread-601108][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:02:39,103 [DEBUG][       Thread-601108][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:02:39,103 [DEBUG][       Thread-601108][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:02:39,103 [DEBUG][       Thread-601108][   transport.py][1871] : Compression: none
2025-07-01 10:02:39,103 [DEBUG][       Thread-601108][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:02:39,118 [DEBUG][       Thread-601108][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:02:39,118 [DEBUG][       Thread-601108][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:02:39,118 [DEBUG][       Thread-601108][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:02:39,118 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:02:39,119 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:02:39,119 [DEBUG][       Thread-601108][   transport.py][1871] : userauth is OK
2025-07-01 10:02:39,143 [ INFO][       Thread-601108][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:02:39,143 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:02:39,790 [DEBUG][       Thread-601108][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:02:39,791 [DEBUG][       Thread-601108][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:02:39,832 [DEBUG][       Thread-601108][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:02:39,832 [DEBUG][       Thread-601108][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:02:39,835 [DEBUG][       Thread-601108][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:02:39,848 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:02:39,848 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:02:39,849 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:02:39,850 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:02:39,853 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:02:39,854 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:02:39,854 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:02:39,854 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:02:39,854 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.335016 -999.00   +9.50  38.69     54   +0.80 1 1 2 1 1   887    0 9.02 4.94 ----- 38.7 38.7 27.9 52.7 12.3 -24.7 11.4 -24.9 10.7 -22.8 11.4 -23.8
2025-07-01 10:02:39,854 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:02:39,854 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:02:39,854 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.335016
2025-07-01 10:02:39,854 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:02:39,854 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:02:39,854 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:02:39,854 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:02:39,854 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:02:39,854 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:02:34', tmtdew=10.12, humidity=49.22, cloud=0.0, wind=37.16, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:02:25.382', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:02:39,855 [DEBUG][       Thread-601108][   transport.py][1871] : EOF in transport thread
2025-07-01 10:02:39,929 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:02:39,938 [DEBUG][       Thread-601111][   transport.py][1871] : starting thread (client mode): 0x8104b80
2025-07-01 10:02:39,938 [DEBUG][       Thread-601111][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:02:39,956 [DEBUG][       Thread-601111][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:02:39,956 [ INFO][       Thread-601111][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:02:39,963 [DEBUG][       Thread-601111][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:02:39,963 [DEBUG][       Thread-601111][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:02:39,963 [DEBUG][       Thread-601111][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:02:39,963 [DEBUG][       Thread-601111][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:02:39,963 [DEBUG][       Thread-601111][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:02:39,963 [DEBUG][       Thread-601111][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:02:39,963 [DEBUG][       Thread-601111][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:02:39,963 [DEBUG][       Thread-601111][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:02:39,963 [DEBUG][       Thread-601111][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:02:39,963 [DEBUG][       Thread-601111][   transport.py][1871] : client lang: <none>
2025-07-01 10:02:39,963 [DEBUG][       Thread-601111][   transport.py][1871] : server lang: <none>
2025-07-01 10:02:39,963 [DEBUG][       Thread-601111][   transport.py][1871] : kex follows: False
2025-07-01 10:02:39,963 [DEBUG][       Thread-601111][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:02:39,963 [DEBUG][       Thread-601111][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:02:39,964 [DEBUG][       Thread-601111][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:02:39,964 [DEBUG][       Thread-601111][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:02:39,964 [DEBUG][       Thread-601111][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:02:39,964 [DEBUG][       Thread-601111][   transport.py][1871] : Compression: none
2025-07-01 10:02:39,964 [DEBUG][       Thread-601111][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:02:40,026 [DEBUG][       Thread-601111][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:02:40,026 [DEBUG][       Thread-601111][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:02:40,026 [DEBUG][       Thread-601111][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:02:40,026 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:02:40,027 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:02:40,082 [DEBUG][       Thread-601111][   transport.py][1871] : userauth is OK
2025-07-01 10:02:40,082 [DEBUG][       Thread-601111][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:02:40,082 [DEBUG][       Thread-601111][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:02:40,082 [DEBUG][       Thread-601111][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:02:40,082 [DEBUG][       Thread-601111][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:02:40,096 [ INFO][       Thread-601111][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:02:40,097 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:02:40,097 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:02:41,130 [DEBUG][       Thread-601111][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:02:41,130 [DEBUG][       Thread-601111][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:02:41,181 [DEBUG][       Thread-601111][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:02:41,181 [DEBUG][       Thread-601111][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:02:41,193 [DEBUG][       Thread-601111][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:02:41,201 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:02:41,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-07-01 10:02:41,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-07-01 10:02:41,217 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:02:41,217 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:02:41,217 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:02:41,224 [DEBUG][       Thread-601111][   transport.py][1871] : EOF in transport thread
2025-07-01 10:02:43,139 [DEBUG][Thread-601113 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:02:51,227 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:02:51,227 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:02:51,228 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:02:51,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-07-01 10:02:51,733 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 2, 34), 10.12, 49.22, 0.0, 37.16, 9.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:02:51,733 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:02:34
2025-07-01 10:02:51,819 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:02:51,825 [DEBUG][       Thread-601114][   transport.py][1871] : starting thread (client mode): 0x75a8a00
2025-07-01 10:02:51,825 [DEBUG][       Thread-601114][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:02:51,845 [DEBUG][       Thread-601114][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:02:51,845 [ INFO][       Thread-601114][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:02:51,849 [DEBUG][       Thread-601114][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:02:51,849 [DEBUG][       Thread-601114][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:02:51,849 [DEBUG][       Thread-601114][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:02:51,849 [DEBUG][       Thread-601114][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:02:51,849 [DEBUG][       Thread-601114][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:02:51,849 [DEBUG][       Thread-601114][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:02:51,849 [DEBUG][       Thread-601114][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:02:51,849 [DEBUG][       Thread-601114][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:02:51,849 [DEBUG][       Thread-601114][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:02:51,849 [DEBUG][       Thread-601114][   transport.py][1871] : client lang: <none>
2025-07-01 10:02:51,849 [DEBUG][       Thread-601114][   transport.py][1871] : server lang: <none>
2025-07-01 10:02:51,849 [DEBUG][       Thread-601114][   transport.py][1871] : kex follows: False
2025-07-01 10:02:51,849 [DEBUG][       Thread-601114][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:02:51,849 [DEBUG][       Thread-601114][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:02:51,849 [DEBUG][       Thread-601114][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:02:51,849 [DEBUG][       Thread-601114][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:02:51,849 [DEBUG][       Thread-601114][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:02:51,850 [DEBUG][       Thread-601114][   transport.py][1871] : Compression: none
2025-07-01 10:02:51,850 [DEBUG][       Thread-601114][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:02:51,866 [DEBUG][       Thread-601114][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:02:51,867 [DEBUG][       Thread-601114][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:02:51,867 [DEBUG][       Thread-601114][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:02:51,868 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:02:51,868 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:02:51,869 [DEBUG][       Thread-601114][   transport.py][1871] : userauth is OK
2025-07-01 10:02:51,896 [ INFO][       Thread-601114][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:02:51,897 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:02:52,174 [DEBUG][Thread-601116 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:02:52,717 [DEBUG][       Thread-601114][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:02:52,717 [DEBUG][       Thread-601114][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:02:52,765 [DEBUG][       Thread-601114][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:02:52,765 [DEBUG][       Thread-601114][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:02:52,768 [DEBUG][       Thread-601114][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:02:52,783 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:02:52,784 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:02:52,785 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:02:52,787 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:02:52,792 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:02:52,794 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:02:52,794 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:02:52,795 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:02:52,795 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.335016 -999.00   +9.50  38.69     54   +0.80 1 1 2 1 1   887    0 9.02 4.94 ----- 38.7 38.7 27.9 52.7 12.3 -24.7 11.4 -24.9 10.7 -22.8 11.4 -23.8
2025-07-01 10:02:52,795 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:02:52,795 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:02:52,795 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.335016
2025-07-01 10:02:52,795 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:02:52,796 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:02:52,796 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:02:52,796 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:02:52,796 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:02:52,796 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:02:34', tmtdew=10.12, humidity=49.22, cloud=0.0, wind=37.16, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:02:25.382', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:02:52,797 [DEBUG][       Thread-601114][   transport.py][1871] : EOF in transport thread
2025-07-01 10:02:52,879 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:02:52,889 [DEBUG][       Thread-601118][   transport.py][1871] : starting thread (client mode): 0x81a7f10
2025-07-01 10:02:52,889 [DEBUG][       Thread-601118][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:02:52,907 [DEBUG][       Thread-601118][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:02:52,907 [ INFO][       Thread-601118][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:02:52,915 [DEBUG][       Thread-601118][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:02:52,915 [DEBUG][       Thread-601118][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:02:52,915 [DEBUG][       Thread-601118][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:02:52,915 [DEBUG][       Thread-601118][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:02:52,915 [DEBUG][       Thread-601118][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:02:52,915 [DEBUG][       Thread-601118][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:02:52,915 [DEBUG][       Thread-601118][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:02:52,915 [DEBUG][       Thread-601118][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:02:52,915 [DEBUG][       Thread-601118][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:02:52,915 [DEBUG][       Thread-601118][   transport.py][1871] : client lang: <none>
2025-07-01 10:02:52,915 [DEBUG][       Thread-601118][   transport.py][1871] : server lang: <none>
2025-07-01 10:02:52,915 [DEBUG][       Thread-601118][   transport.py][1871] : kex follows: False
2025-07-01 10:02:52,915 [DEBUG][       Thread-601118][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:02:52,915 [DEBUG][       Thread-601118][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:02:52,916 [DEBUG][       Thread-601118][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:02:52,916 [DEBUG][       Thread-601118][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:02:52,916 [DEBUG][       Thread-601118][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:02:52,916 [DEBUG][       Thread-601118][   transport.py][1871] : Compression: none
2025-07-01 10:02:52,916 [DEBUG][       Thread-601118][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:02:52,975 [DEBUG][       Thread-601118][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:02:52,975 [DEBUG][       Thread-601118][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:02:52,976 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:02:52,976 [DEBUG][       Thread-601118][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:02:52,977 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:02:53,036 [DEBUG][       Thread-601118][   transport.py][1871] : userauth is OK
2025-07-01 10:02:53,036 [DEBUG][       Thread-601118][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:02:53,037 [DEBUG][       Thread-601118][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:02:53,037 [DEBUG][       Thread-601118][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:02:53,037 [DEBUG][       Thread-601118][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:02:53,056 [ INFO][       Thread-601118][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:02:53,056 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:02:53,057 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:02:54,077 [DEBUG][       Thread-601118][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:02:54,077 [DEBUG][       Thread-601118][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:02:54,133 [DEBUG][       Thread-601118][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:02:54,133 [DEBUG][       Thread-601118][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:02:54,145 [DEBUG][       Thread-601118][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:02:54,156 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:02:54,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')
2025-07-01 10:02:54,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-07-01 10:02:54,175 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:02:54,175 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:02:54,176 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:02:54,183 [DEBUG][       Thread-601118][   transport.py][1871] : EOF in transport thread
2025-07-01 10:02:55,926 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:02:55,927 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:03:01,196 [DEBUG][Thread-601120 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:03:04,186 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:03:04,186 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:03:04,187 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:03:04,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-07-01 10:03:04,697 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 2, 34), 10.12, 49.22, 0.0, 37.16, 9.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:03:04,697 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:02:34
2025-07-01 10:03:04,783 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:03:04,787 [DEBUG][       Thread-601121][   transport.py][1871] : starting thread (client mode): 0x8171d20
2025-07-01 10:03:04,787 [DEBUG][       Thread-601121][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:03:04,810 [DEBUG][       Thread-601121][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:03:04,810 [ INFO][       Thread-601121][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:03:04,814 [DEBUG][       Thread-601121][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:03:04,814 [DEBUG][       Thread-601121][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:03:04,814 [DEBUG][       Thread-601121][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:03:04,814 [DEBUG][       Thread-601121][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:03:04,814 [DEBUG][       Thread-601121][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:03:04,814 [DEBUG][       Thread-601121][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:03:04,814 [DEBUG][       Thread-601121][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:03:04,814 [DEBUG][       Thread-601121][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:03:04,814 [DEBUG][       Thread-601121][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:03:04,814 [DEBUG][       Thread-601121][   transport.py][1871] : client lang: <none>
2025-07-01 10:03:04,814 [DEBUG][       Thread-601121][   transport.py][1871] : server lang: <none>
2025-07-01 10:03:04,814 [DEBUG][       Thread-601121][   transport.py][1871] : kex follows: False
2025-07-01 10:03:04,814 [DEBUG][       Thread-601121][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:03:04,814 [DEBUG][       Thread-601121][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:03:04,814 [DEBUG][       Thread-601121][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:03:04,814 [DEBUG][       Thread-601121][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:03:04,814 [DEBUG][       Thread-601121][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:03:04,814 [DEBUG][       Thread-601121][   transport.py][1871] : Compression: none
2025-07-01 10:03:04,814 [DEBUG][       Thread-601121][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:03:04,831 [DEBUG][       Thread-601121][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:03:04,831 [DEBUG][       Thread-601121][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:03:04,831 [DEBUG][       Thread-601121][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:03:04,832 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:03:04,832 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:03:04,833 [DEBUG][       Thread-601121][   transport.py][1871] : userauth is OK
2025-07-01 10:03:04,857 [ INFO][       Thread-601121][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:03:04,858 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:03:05,509 [DEBUG][       Thread-601121][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:03:05,509 [DEBUG][       Thread-601121][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:03:05,553 [DEBUG][       Thread-601121][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:03:05,553 [DEBUG][       Thread-601121][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:03:05,555 [DEBUG][       Thread-601121][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:03:05,567 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:03:05,567 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:03:05,569 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:03:05,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:03:05,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:03:05,577 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:03:05,577 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:03:05,578 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:03:05,578 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.335016 -999.00   +9.50  38.69     54   +0.80 1 1 2 1 1   887    0 9.02 4.94 ----- 38.7 38.7 27.9 52.7 12.3 -24.7 11.4 -24.9 10.7 -22.8 11.4 -23.8
2025-07-01 10:03:05,578 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:03:05,578 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:03:05,578 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.335016
2025-07-01 10:03:05,578 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:03:05,579 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:03:05,579 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:03:05,579 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:03:05,579 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:03:05,579 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:02:34', tmtdew=10.12, humidity=49.22, cloud=0.0, wind=37.16, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:02:25.382', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:03:05,580 [DEBUG][       Thread-601121][   transport.py][1871] : EOF in transport thread
2025-07-01 10:03:05,667 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:03:05,676 [DEBUG][       Thread-601124][   transport.py][1871] : starting thread (client mode): 0x81e7880
2025-07-01 10:03:05,676 [DEBUG][       Thread-601124][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:03:05,691 [DEBUG][       Thread-601124][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:03:05,691 [ INFO][       Thread-601124][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:03:05,699 [DEBUG][       Thread-601124][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:03:05,699 [DEBUG][       Thread-601124][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:03:05,699 [DEBUG][       Thread-601124][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:03:05,699 [DEBUG][       Thread-601124][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:03:05,699 [DEBUG][       Thread-601124][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:03:05,699 [DEBUG][       Thread-601124][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:03:05,699 [DEBUG][       Thread-601124][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:03:05,699 [DEBUG][       Thread-601124][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:03:05,699 [DEBUG][       Thread-601124][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:03:05,699 [DEBUG][       Thread-601124][   transport.py][1871] : client lang: <none>
2025-07-01 10:03:05,699 [DEBUG][       Thread-601124][   transport.py][1871] : server lang: <none>
2025-07-01 10:03:05,699 [DEBUG][       Thread-601124][   transport.py][1871] : kex follows: False
2025-07-01 10:03:05,699 [DEBUG][       Thread-601124][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:03:05,699 [DEBUG][       Thread-601124][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:03:05,699 [DEBUG][       Thread-601124][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:03:05,699 [DEBUG][       Thread-601124][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:03:05,699 [DEBUG][       Thread-601124][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:03:05,699 [DEBUG][       Thread-601124][   transport.py][1871] : Compression: none
2025-07-01 10:03:05,699 [DEBUG][       Thread-601124][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:03:05,758 [DEBUG][       Thread-601124][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:03:05,758 [DEBUG][       Thread-601124][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:03:05,758 [DEBUG][       Thread-601124][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:03:05,759 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:03:05,759 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:03:05,818 [DEBUG][       Thread-601124][   transport.py][1871] : userauth is OK
2025-07-01 10:03:05,818 [DEBUG][       Thread-601124][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:03:05,818 [DEBUG][       Thread-601124][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:03:05,818 [DEBUG][       Thread-601124][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:03:05,818 [DEBUG][       Thread-601124][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:03:05,837 [ INFO][       Thread-601124][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:03:05,837 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:03:05,838 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:03:06,854 [DEBUG][       Thread-601124][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:03:06,854 [DEBUG][       Thread-601124][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:03:06,906 [DEBUG][       Thread-601124][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:03:06,906 [DEBUG][       Thread-601124][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:03:06,914 [DEBUG][       Thread-601124][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:03:06,922 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:03:06,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-07-01 10:03:06,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-07-01 10:03:06,941 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:03:06,941 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:03:06,941 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:03:06,953 [DEBUG][       Thread-601124][   transport.py][1871] : EOF in transport thread
2025-07-01 10:03:10,216 [DEBUG][Thread-601126 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:03:16,948 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:03:16,948 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:03:16,948 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:03:16,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-07-01 10:03:17,451 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 3, 6), 10.11, 49.29, 0.0, 37.1, 9.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:03:17,451 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:03:06
2025-07-01 10:03:17,544 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:03:17,547 [DEBUG][       Thread-601127][   transport.py][1871] : starting thread (client mode): 0x81713c0
2025-07-01 10:03:17,548 [DEBUG][       Thread-601127][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:03:17,569 [DEBUG][       Thread-601127][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:03:17,569 [ INFO][       Thread-601127][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:03:17,572 [DEBUG][       Thread-601127][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:03:17,572 [DEBUG][       Thread-601127][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:03:17,572 [DEBUG][       Thread-601127][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:03:17,572 [DEBUG][       Thread-601127][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:03:17,572 [DEBUG][       Thread-601127][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:03:17,572 [DEBUG][       Thread-601127][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:03:17,572 [DEBUG][       Thread-601127][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:03:17,572 [DEBUG][       Thread-601127][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:03:17,572 [DEBUG][       Thread-601127][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:03:17,572 [DEBUG][       Thread-601127][   transport.py][1871] : client lang: <none>
2025-07-01 10:03:17,572 [DEBUG][       Thread-601127][   transport.py][1871] : server lang: <none>
2025-07-01 10:03:17,572 [DEBUG][       Thread-601127][   transport.py][1871] : kex follows: False
2025-07-01 10:03:17,572 [DEBUG][       Thread-601127][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:03:17,572 [DEBUG][       Thread-601127][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:03:17,572 [DEBUG][       Thread-601127][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:03:17,572 [DEBUG][       Thread-601127][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:03:17,572 [DEBUG][       Thread-601127][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:03:17,572 [DEBUG][       Thread-601127][   transport.py][1871] : Compression: none
2025-07-01 10:03:17,572 [DEBUG][       Thread-601127][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:03:17,588 [DEBUG][       Thread-601127][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:03:17,588 [DEBUG][       Thread-601127][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:03:17,589 [DEBUG][       Thread-601127][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:03:17,589 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:03:17,589 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:03:17,589 [DEBUG][       Thread-601127][   transport.py][1871] : userauth is OK
2025-07-01 10:03:17,635 [ INFO][       Thread-601127][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:03:17,636 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:03:18,284 [DEBUG][       Thread-601127][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:03:18,284 [DEBUG][       Thread-601127][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:03:18,328 [DEBUG][       Thread-601127][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:03:18,328 [DEBUG][       Thread-601127][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:03:18,330 [DEBUG][       Thread-601127][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:03:18,336 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:03:18,336 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:03:18,337 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:03:18,338 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:03:18,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:03:18,340 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:03:18,340 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:03:18,341 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:03:18,341 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.335364 -999.00   +9.50  38.89     54   +0.70 1 1 2 1 1   887    0 8.84 3.91 ----- 38.9 38.9 15.8 48.7 12.3 -24.2 11.4 -24.8 10.8 -22.9 11.5 -22.4
2025-07-01 10:03:18,341 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:03:18,341 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:03:18,341 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.335364
2025-07-01 10:03:18,341 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:03:18,341 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:03:18,341 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:03:18,341 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:03:18,341 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:03:18,341 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:03:06', tmtdew=10.11, humidity=49.29, cloud=0.0, wind=37.1, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:02:55.450', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:03:18,341 [DEBUG][       Thread-601127][   transport.py][1871] : EOF in transport thread
2025-07-01 10:03:18,413 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:03:18,424 [DEBUG][       Thread-601130][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 10:03:18,424 [DEBUG][       Thread-601130][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:03:18,439 [DEBUG][       Thread-601130][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:03:18,439 [ INFO][       Thread-601130][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:03:18,447 [DEBUG][       Thread-601130][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:03:18,447 [DEBUG][       Thread-601130][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:03:18,447 [DEBUG][       Thread-601130][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:03:18,447 [DEBUG][       Thread-601130][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:03:18,447 [DEBUG][       Thread-601130][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:03:18,447 [DEBUG][       Thread-601130][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:03:18,447 [DEBUG][       Thread-601130][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:03:18,447 [DEBUG][       Thread-601130][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:03:18,447 [DEBUG][       Thread-601130][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:03:18,447 [DEBUG][       Thread-601130][   transport.py][1871] : client lang: <none>
2025-07-01 10:03:18,447 [DEBUG][       Thread-601130][   transport.py][1871] : server lang: <none>
2025-07-01 10:03:18,447 [DEBUG][       Thread-601130][   transport.py][1871] : kex follows: False
2025-07-01 10:03:18,447 [DEBUG][       Thread-601130][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:03:18,447 [DEBUG][       Thread-601130][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:03:18,447 [DEBUG][       Thread-601130][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:03:18,447 [DEBUG][       Thread-601130][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:03:18,447 [DEBUG][       Thread-601130][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:03:18,447 [DEBUG][       Thread-601130][   transport.py][1871] : Compression: none
2025-07-01 10:03:18,447 [DEBUG][       Thread-601130][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:03:18,507 [DEBUG][       Thread-601130][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:03:18,507 [DEBUG][       Thread-601130][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:03:18,507 [DEBUG][       Thread-601130][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:03:18,507 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:03:18,507 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:03:18,562 [DEBUG][       Thread-601130][   transport.py][1871] : userauth is OK
2025-07-01 10:03:18,562 [DEBUG][       Thread-601130][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:03:18,562 [DEBUG][       Thread-601130][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:03:18,562 [DEBUG][       Thread-601130][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:03:18,562 [DEBUG][       Thread-601130][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:03:18,576 [ INFO][       Thread-601130][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:03:18,577 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:03:18,577 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:03:19,235 [DEBUG][Thread-601132 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:03:19,595 [DEBUG][       Thread-601130][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:03:19,595 [DEBUG][       Thread-601130][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:03:19,643 [DEBUG][       Thread-601130][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:03:19,643 [DEBUG][       Thread-601130][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:03:19,651 [DEBUG][       Thread-601130][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:03:19,659 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:03:19,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-07-01 10:03:19,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-07-01 10:03:19,675 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:03:19,675 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:03:19,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:03:19,683 [DEBUG][       Thread-601130][   transport.py][1871] : EOF in transport thread
2025-07-01 10:03:22,067 [DEBUG][Thread-601133 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:03:28,259 [DEBUG][Thread-601134 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:03:29,686 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:03:29,686 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:03:29,686 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:03:29,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-07-01 10:03:30,198 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 3, 6), 10.11, 49.29, 0.0, 37.1, 9.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:03:30,198 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:03:06
2025-07-01 10:03:30,283 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:03:30,289 [DEBUG][       Thread-601135][   transport.py][1871] : starting thread (client mode): 0x75ab940
2025-07-01 10:03:30,289 [DEBUG][       Thread-601135][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:03:30,309 [DEBUG][       Thread-601135][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:03:30,309 [ INFO][       Thread-601135][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:03:30,313 [DEBUG][       Thread-601135][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:03:30,313 [DEBUG][       Thread-601135][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:03:30,313 [DEBUG][       Thread-601135][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:03:30,313 [DEBUG][       Thread-601135][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:03:30,313 [DEBUG][       Thread-601135][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:03:30,313 [DEBUG][       Thread-601135][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:03:30,313 [DEBUG][       Thread-601135][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:03:30,313 [DEBUG][       Thread-601135][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:03:30,313 [DEBUG][       Thread-601135][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:03:30,313 [DEBUG][       Thread-601135][   transport.py][1871] : client lang: <none>
2025-07-01 10:03:30,313 [DEBUG][       Thread-601135][   transport.py][1871] : server lang: <none>
2025-07-01 10:03:30,313 [DEBUG][       Thread-601135][   transport.py][1871] : kex follows: False
2025-07-01 10:03:30,313 [DEBUG][       Thread-601135][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:03:30,313 [DEBUG][       Thread-601135][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:03:30,313 [DEBUG][       Thread-601135][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:03:30,313 [DEBUG][       Thread-601135][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:03:30,313 [DEBUG][       Thread-601135][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:03:30,313 [DEBUG][       Thread-601135][   transport.py][1871] : Compression: none
2025-07-01 10:03:30,313 [DEBUG][       Thread-601135][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:03:30,329 [DEBUG][       Thread-601135][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:03:30,330 [DEBUG][       Thread-601135][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:03:30,330 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:03:30,330 [DEBUG][       Thread-601135][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:03:30,331 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:03:30,332 [DEBUG][       Thread-601135][   transport.py][1871] : userauth is OK
2025-07-01 10:03:30,357 [ INFO][       Thread-601135][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:03:30,358 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:03:31,040 [DEBUG][       Thread-601135][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:03:31,040 [DEBUG][       Thread-601135][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:03:31,081 [DEBUG][       Thread-601135][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:03:31,081 [DEBUG][       Thread-601135][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:03:31,084 [DEBUG][       Thread-601135][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:03:31,096 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:03:31,096 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:03:31,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:03:31,099 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:03:31,104 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:03:31,106 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:03:31,106 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:03:31,107 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:03:31,107 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.335364 -999.00   +9.50  38.89     54   +0.70 1 1 2 1 1   887    0 8.84 3.91 ----- 38.9 38.9 15.8 48.7 12.3 -24.2 11.4 -24.8 10.8 -22.9 11.5 -22.4
2025-07-01 10:03:31,107 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:03:31,107 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:03:31,107 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.335364
2025-07-01 10:03:31,108 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:03:31,108 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:03:31,108 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:03:31,108 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:03:31,108 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:03:31,109 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:03:06', tmtdew=10.11, humidity=49.29, cloud=0.0, wind=37.1, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:02:55.450', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:03:31,109 [DEBUG][       Thread-601135][   transport.py][1871] : EOF in transport thread
2025-07-01 10:03:31,192 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:03:31,278 [DEBUG][       Thread-601138][   transport.py][1871] : starting thread (client mode): 0x818e8f0
2025-07-01 10:03:31,279 [DEBUG][       Thread-601138][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:03:31,442 [DEBUG][       Thread-601138][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:03:31,442 [ INFO][       Thread-601138][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:03:31,589 [DEBUG][       Thread-601138][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:03:31,589 [DEBUG][       Thread-601138][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:03:31,589 [DEBUG][       Thread-601138][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:03:31,589 [DEBUG][       Thread-601138][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:03:31,589 [DEBUG][       Thread-601138][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:03:31,589 [DEBUG][       Thread-601138][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:03:31,589 [DEBUG][       Thread-601138][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:03:31,589 [DEBUG][       Thread-601138][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:03:31,589 [DEBUG][       Thread-601138][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:03:31,589 [DEBUG][       Thread-601138][   transport.py][1871] : client lang: <none>
2025-07-01 10:03:31,589 [DEBUG][       Thread-601138][   transport.py][1871] : server lang: <none>
2025-07-01 10:03:31,590 [DEBUG][       Thread-601138][   transport.py][1871] : kex follows: False
2025-07-01 10:03:31,590 [DEBUG][       Thread-601138][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:03:31,590 [DEBUG][       Thread-601138][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:03:31,590 [DEBUG][       Thread-601138][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:03:31,590 [DEBUG][       Thread-601138][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:03:31,590 [DEBUG][       Thread-601138][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:03:31,590 [DEBUG][       Thread-601138][   transport.py][1871] : Compression: none
2025-07-01 10:03:31,590 [DEBUG][       Thread-601138][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:03:31,725 [DEBUG][       Thread-601138][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:03:31,726 [DEBUG][       Thread-601138][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:03:31,727 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:03:31,727 [DEBUG][       Thread-601138][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:03:31,728 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:03:32,007 [DEBUG][       Thread-601138][   transport.py][1871] : userauth is OK
2025-07-01 10:03:32,007 [DEBUG][       Thread-601138][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:03:32,007 [DEBUG][       Thread-601138][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:03:32,008 [DEBUG][       Thread-601138][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:03:32,008 [DEBUG][       Thread-601138][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:03:32,148 [ INFO][       Thread-601138][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:03:32,148 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:03:32,157 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:03:34,623 [DEBUG][       Thread-601138][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:03:34,624 [DEBUG][       Thread-601138][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:03:34,690 [DEBUG][       Thread-601138][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:03:34,690 [DEBUG][       Thread-601138][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:03:34,840 [DEBUG][       Thread-601138][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:03:35,010 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:03:35,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-07-01 10:03:35,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') -> 00000000
2025-07-01 10:03:35,327 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:03:35,327 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:03:35,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:03:35,427 [DEBUG][       Thread-601138][   transport.py][1871] : EOF in transport thread
2025-07-01 10:03:37,281 [DEBUG][Thread-601140 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:03:45,338 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:03:45,339 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:03:45,339 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:03:45,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-07-01 10:03:45,849 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 3, 37), 10.1, 49.31, 0.0, 36.86, 9.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:03:45,850 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:03:37
2025-07-01 10:03:45,934 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:03:45,938 [DEBUG][       Thread-601141][   transport.py][1871] : starting thread (client mode): 0x82b2bc0
2025-07-01 10:03:45,938 [DEBUG][       Thread-601141][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:03:45,959 [DEBUG][       Thread-601141][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:03:45,959 [ INFO][       Thread-601141][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:03:45,961 [DEBUG][       Thread-601141][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:03:45,961 [DEBUG][       Thread-601141][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:03:45,961 [DEBUG][       Thread-601141][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:03:45,961 [DEBUG][       Thread-601141][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:03:45,961 [DEBUG][       Thread-601141][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:03:45,961 [DEBUG][       Thread-601141][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:03:45,961 [DEBUG][       Thread-601141][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:03:45,961 [DEBUG][       Thread-601141][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:03:45,961 [DEBUG][       Thread-601141][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:03:45,961 [DEBUG][       Thread-601141][   transport.py][1871] : client lang: <none>
2025-07-01 10:03:45,961 [DEBUG][       Thread-601141][   transport.py][1871] : server lang: <none>
2025-07-01 10:03:45,961 [DEBUG][       Thread-601141][   transport.py][1871] : kex follows: False
2025-07-01 10:03:45,961 [DEBUG][       Thread-601141][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:03:45,961 [DEBUG][       Thread-601141][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:03:45,961 [DEBUG][       Thread-601141][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:03:45,961 [DEBUG][       Thread-601141][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:03:45,961 [DEBUG][       Thread-601141][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:03:45,961 [DEBUG][       Thread-601141][   transport.py][1871] : Compression: none
2025-07-01 10:03:45,961 [DEBUG][       Thread-601141][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:03:45,969 [DEBUG][       Thread-601141][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:03:45,970 [DEBUG][       Thread-601141][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:03:45,970 [DEBUG][       Thread-601141][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:03:45,970 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:03:45,970 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:03:45,971 [DEBUG][       Thread-601141][   transport.py][1871] : userauth is OK
2025-07-01 10:03:45,984 [ INFO][       Thread-601141][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:03:45,985 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:03:46,307 [DEBUG][Thread-601143 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:03:46,578 [DEBUG][       Thread-601141][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:03:46,578 [DEBUG][       Thread-601141][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:03:46,621 [DEBUG][       Thread-601141][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:03:46,621 [DEBUG][       Thread-601141][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:03:46,625 [DEBUG][       Thread-601141][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:03:46,639 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:03:46,640 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:03:46,641 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:03:46,643 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:03:46,648 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:03:46,650 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:03:46,650 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:03:46,651 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:03:46,651 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.335711 -999.00   +9.50  47.31     54   +0.70 1 1 2 1 1   887    0 8.66 3.33 ----- 47.3 47.3 23.8 55.0 12.3 -23.7 11.5 -23.9 10.8 -22.7 11.5 -22.6
2025-07-01 10:03:46,651 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:03:46,651 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:03:46,651 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.335711
2025-07-01 10:03:46,651 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:03:46,652 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:03:46,652 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:03:46,652 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:03:46,652 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:03:46,652 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:03:37', tmtdew=10.1, humidity=49.31, cloud=0.0, wind=36.86, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:03:25.430', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:03:46,653 [DEBUG][       Thread-601141][   transport.py][1871] : EOF in transport thread
2025-07-01 10:03:46,736 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:03:46,824 [DEBUG][       Thread-601145][   transport.py][1871] : starting thread (client mode): 0x8107430
2025-07-01 10:03:46,824 [DEBUG][       Thread-601145][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:03:46,930 [DEBUG][       Thread-601145][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:03:46,930 [ INFO][       Thread-601145][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:03:47,016 [DEBUG][       Thread-601145][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:03:47,016 [DEBUG][       Thread-601145][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:03:47,017 [DEBUG][       Thread-601145][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:03:47,017 [DEBUG][       Thread-601145][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:03:47,017 [DEBUG][       Thread-601145][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:03:47,017 [DEBUG][       Thread-601145][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:03:47,017 [DEBUG][       Thread-601145][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:03:47,017 [DEBUG][       Thread-601145][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:03:47,017 [DEBUG][       Thread-601145][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:03:47,017 [DEBUG][       Thread-601145][   transport.py][1871] : client lang: <none>
2025-07-01 10:03:47,017 [DEBUG][       Thread-601145][   transport.py][1871] : server lang: <none>
2025-07-01 10:03:47,017 [DEBUG][       Thread-601145][   transport.py][1871] : kex follows: False
2025-07-01 10:03:47,017 [DEBUG][       Thread-601145][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:03:47,017 [DEBUG][       Thread-601145][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:03:47,017 [DEBUG][       Thread-601145][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:03:47,017 [DEBUG][       Thread-601145][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:03:47,017 [DEBUG][       Thread-601145][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:03:47,018 [DEBUG][       Thread-601145][   transport.py][1871] : Compression: none
2025-07-01 10:03:47,018 [DEBUG][       Thread-601145][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:03:47,140 [DEBUG][       Thread-601145][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:03:47,140 [DEBUG][       Thread-601145][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:03:47,141 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:03:47,141 [DEBUG][       Thread-601145][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:03:47,142 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:03:47,352 [DEBUG][       Thread-601145][   transport.py][1871] : userauth is OK
2025-07-01 10:03:47,352 [DEBUG][       Thread-601145][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:03:47,352 [DEBUG][       Thread-601145][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:03:47,352 [DEBUG][       Thread-601145][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:03:47,352 [DEBUG][       Thread-601145][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:03:47,453 [ INFO][       Thread-601145][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:03:47,453 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:03:47,454 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:03:48,626 [DEBUG][       Thread-601145][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:03:48,626 [DEBUG][       Thread-601145][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:03:48,763 [DEBUG][       Thread-601145][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:03:48,763 [DEBUG][       Thread-601145][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:03:48,860 [DEBUG][       Thread-601145][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:03:48,944 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:03:48,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-07-01 10:03:49,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-07-01 10:03:49,122 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:03:49,122 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:03:49,123 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:03:49,222 [DEBUG][       Thread-601145][   transport.py][1871] : EOF in transport thread
2025-07-01 10:03:55,327 [DEBUG][Thread-601147 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:03:56,066 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:03:56,066 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:03:59,133 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:03:59,133 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:03:59,133 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:03:59,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-07-01 10:03:59,629 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 3, 37), 10.1, 49.31, 0.0, 36.86, 9.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:03:59,629 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:03:37
2025-07-01 10:03:59,715 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:03:59,719 [DEBUG][       Thread-601148][   transport.py][1871] : starting thread (client mode): 0x82b28c0
2025-07-01 10:03:59,719 [DEBUG][       Thread-601148][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:03:59,740 [DEBUG][       Thread-601148][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:03:59,740 [ INFO][       Thread-601148][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:03:59,741 [DEBUG][       Thread-601148][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:03:59,741 [DEBUG][       Thread-601148][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:03:59,741 [DEBUG][       Thread-601148][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:03:59,741 [DEBUG][       Thread-601148][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:03:59,741 [DEBUG][       Thread-601148][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:03:59,741 [DEBUG][       Thread-601148][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:03:59,742 [DEBUG][       Thread-601148][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:03:59,742 [DEBUG][       Thread-601148][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:03:59,742 [DEBUG][       Thread-601148][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:03:59,742 [DEBUG][       Thread-601148][   transport.py][1871] : client lang: <none>
2025-07-01 10:03:59,742 [DEBUG][       Thread-601148][   transport.py][1871] : server lang: <none>
2025-07-01 10:03:59,742 [DEBUG][       Thread-601148][   transport.py][1871] : kex follows: False
2025-07-01 10:03:59,742 [DEBUG][       Thread-601148][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:03:59,742 [DEBUG][       Thread-601148][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:03:59,742 [DEBUG][       Thread-601148][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:03:59,742 [DEBUG][       Thread-601148][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:03:59,742 [DEBUG][       Thread-601148][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:03:59,742 [DEBUG][       Thread-601148][   transport.py][1871] : Compression: none
2025-07-01 10:03:59,742 [DEBUG][       Thread-601148][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:03:59,750 [DEBUG][       Thread-601148][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:03:59,751 [DEBUG][       Thread-601148][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:03:59,751 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:03:59,751 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:03:59,752 [DEBUG][       Thread-601148][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:03:59,753 [DEBUG][       Thread-601148][   transport.py][1871] : userauth is OK
2025-07-01 10:03:59,765 [ INFO][       Thread-601148][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:03:59,766 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:04:00,370 [DEBUG][       Thread-601148][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:04:00,370 [DEBUG][       Thread-601148][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:04:00,413 [DEBUG][       Thread-601148][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:04:00,413 [DEBUG][       Thread-601148][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:04:00,416 [DEBUG][       Thread-601148][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:04:00,430 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:04:00,431 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:04:00,432 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:04:00,434 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:04:00,439 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:04:00,441 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:04:00,441 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:04:00,442 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:04:00,442 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.335711 -999.00   +9.50  47.31     54   +0.70 1 1 2 1 1   887    0 8.66 3.33 ----- 47.3 47.3 23.8 55.0 12.3 -23.7 11.5 -23.9 10.8 -22.7 11.5 -22.6
2025-07-01 10:04:00,442 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:04:00,442 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:04:00,442 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.335711
2025-07-01 10:04:00,443 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:04:00,443 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:04:00,443 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:04:00,443 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:04:00,443 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:04:00,444 [DEBUG][       Thread-601148][   transport.py][1871] : EOF in transport thread
2025-07-01 10:04:00,444 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:03:37', tmtdew=10.1, humidity=49.31, cloud=0.0, wind=36.86, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:03:25.430', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:04:00,531 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:04:00,588 [DEBUG][       Thread-601151][   transport.py][1871] : starting thread (client mode): 0x8393f40
2025-07-01 10:04:00,588 [DEBUG][       Thread-601151][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:04:00,709 [DEBUG][       Thread-601151][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:04:00,709 [ INFO][       Thread-601151][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:04:00,802 [DEBUG][       Thread-601151][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:04:00,802 [DEBUG][       Thread-601151][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:04:00,802 [DEBUG][       Thread-601151][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:04:00,802 [DEBUG][       Thread-601151][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:04:00,803 [DEBUG][       Thread-601151][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:04:00,803 [DEBUG][       Thread-601151][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:04:00,803 [DEBUG][       Thread-601151][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:04:00,803 [DEBUG][       Thread-601151][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:04:00,803 [DEBUG][       Thread-601151][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:04:00,803 [DEBUG][       Thread-601151][   transport.py][1871] : client lang: <none>
2025-07-01 10:04:00,803 [DEBUG][       Thread-601151][   transport.py][1871] : server lang: <none>
2025-07-01 10:04:00,803 [DEBUG][       Thread-601151][   transport.py][1871] : kex follows: False
2025-07-01 10:04:00,803 [DEBUG][       Thread-601151][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:04:00,803 [DEBUG][       Thread-601151][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:04:00,803 [DEBUG][       Thread-601151][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:04:00,803 [DEBUG][       Thread-601151][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:04:00,803 [DEBUG][       Thread-601151][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:04:00,804 [DEBUG][       Thread-601151][   transport.py][1871] : Compression: none
2025-07-01 10:04:00,804 [DEBUG][       Thread-601151][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:04:00,925 [DEBUG][       Thread-601151][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:04:00,926 [DEBUG][       Thread-601151][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:04:00,926 [DEBUG][       Thread-601151][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:04:00,926 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:04:00,927 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:04:01,131 [DEBUG][       Thread-601151][   transport.py][1871] : userauth is OK
2025-07-01 10:04:01,132 [DEBUG][       Thread-601151][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:04:01,132 [DEBUG][       Thread-601151][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:04:01,132 [DEBUG][       Thread-601151][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:04:01,132 [DEBUG][       Thread-601151][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:04:01,246 [ INFO][       Thread-601151][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:04:01,247 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:04:01,247 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:04:02,323 [DEBUG][       Thread-601151][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:04:02,324 [DEBUG][       Thread-601151][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:04:02,481 [DEBUG][       Thread-601151][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:04:02,481 [DEBUG][       Thread-601151][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:04:02,624 [DEBUG][       Thread-601151][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:04:02,712 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:04:02,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')
2025-07-01 10:04:02,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') -> 00000000
2025-07-01 10:04:02,995 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:04:02,996 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:04:02,996 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:04:03,095 [DEBUG][       Thread-601151][   transport.py][1871] : EOF in transport thread
2025-07-01 10:04:04,361 [DEBUG][Thread-601153 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:04:13,007 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:04:13,007 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:04:13,007 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:04:13,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-07-01 10:04:13,380 [DEBUG][Thread-601154 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:04:13,512 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 4, 9), 10.14, 49.18, 0.0, 44.36, 9.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:04:13,512 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:04:09
2025-07-01 10:04:13,597 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:04:13,601 [DEBUG][       Thread-601155][   transport.py][1871] : starting thread (client mode): 0x75a9930
2025-07-01 10:04:13,601 [DEBUG][       Thread-601155][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:04:13,622 [DEBUG][       Thread-601155][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:04:13,622 [ INFO][       Thread-601155][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:04:13,626 [DEBUG][       Thread-601155][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:04:13,626 [DEBUG][       Thread-601155][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:04:13,626 [DEBUG][       Thread-601155][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:04:13,626 [DEBUG][       Thread-601155][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:04:13,626 [DEBUG][       Thread-601155][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:04:13,626 [DEBUG][       Thread-601155][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:04:13,626 [DEBUG][       Thread-601155][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:04:13,626 [DEBUG][       Thread-601155][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:04:13,626 [DEBUG][       Thread-601155][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:04:13,626 [DEBUG][       Thread-601155][   transport.py][1871] : client lang: <none>
2025-07-01 10:04:13,626 [DEBUG][       Thread-601155][   transport.py][1871] : server lang: <none>
2025-07-01 10:04:13,626 [DEBUG][       Thread-601155][   transport.py][1871] : kex follows: False
2025-07-01 10:04:13,626 [DEBUG][       Thread-601155][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:04:13,626 [DEBUG][       Thread-601155][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:04:13,626 [DEBUG][       Thread-601155][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:04:13,626 [DEBUG][       Thread-601155][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:04:13,626 [DEBUG][       Thread-601155][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:04:13,626 [DEBUG][       Thread-601155][   transport.py][1871] : Compression: none
2025-07-01 10:04:13,626 [DEBUG][       Thread-601155][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:04:13,644 [DEBUG][       Thread-601155][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:04:13,644 [DEBUG][       Thread-601155][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:04:13,645 [DEBUG][       Thread-601155][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:04:13,645 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:04:13,645 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:04:13,646 [DEBUG][       Thread-601155][   transport.py][1871] : userauth is OK
2025-07-01 10:04:13,659 [ INFO][       Thread-601155][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:04:13,660 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:04:14,274 [DEBUG][       Thread-601155][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:04:14,274 [DEBUG][       Thread-601155][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:04:14,317 [DEBUG][       Thread-601155][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:04:14,317 [DEBUG][       Thread-601155][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:04:14,320 [DEBUG][       Thread-601155][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:04:14,331 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:04:14,332 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:04:14,333 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:04:14,335 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:04:14,339 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:04:14,340 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:04:14,340 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:04:14,341 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:04:14,341 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.335711 -999.00   +9.50  47.31     54   +0.70 1 1 2 1 1   887    0 8.66 3.33 ----- 47.3 47.3 23.8 55.0 12.3 -23.7 11.5 -23.9 10.8 -22.7 11.5 -22.6
2025-07-01 10:04:14,341 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:04:14,341 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:04:14,341 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.335711
2025-07-01 10:04:14,341 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:04:14,342 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:04:14,342 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:04:14,342 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:04:14,342 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:04:14,342 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:04:09', tmtdew=10.14, humidity=49.18, cloud=0.0, wind=44.36, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:03:25.430', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:04:14,343 [DEBUG][       Thread-601155][   transport.py][1871] : EOF in transport thread
2025-07-01 10:04:14,424 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:04:14,489 [DEBUG][       Thread-601158][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 10:04:14,489 [DEBUG][       Thread-601158][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:04:14,622 [DEBUG][       Thread-601158][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:04:14,622 [ INFO][       Thread-601158][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:04:14,689 [DEBUG][       Thread-601158][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:04:14,690 [DEBUG][       Thread-601158][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:04:14,690 [DEBUG][       Thread-601158][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:04:14,690 [DEBUG][       Thread-601158][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:04:14,690 [DEBUG][       Thread-601158][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:04:14,690 [DEBUG][       Thread-601158][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:04:14,690 [DEBUG][       Thread-601158][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:04:14,690 [DEBUG][       Thread-601158][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:04:14,690 [DEBUG][       Thread-601158][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:04:14,690 [DEBUG][       Thread-601158][   transport.py][1871] : client lang: <none>
2025-07-01 10:04:14,690 [DEBUG][       Thread-601158][   transport.py][1871] : server lang: <none>
2025-07-01 10:04:14,691 [DEBUG][       Thread-601158][   transport.py][1871] : kex follows: False
2025-07-01 10:04:14,691 [DEBUG][       Thread-601158][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:04:14,691 [DEBUG][       Thread-601158][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:04:14,691 [DEBUG][       Thread-601158][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:04:14,691 [DEBUG][       Thread-601158][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:04:14,691 [DEBUG][       Thread-601158][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:04:14,691 [DEBUG][       Thread-601158][   transport.py][1871] : Compression: none
2025-07-01 10:04:14,691 [DEBUG][       Thread-601158][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:04:14,857 [DEBUG][       Thread-601158][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:04:14,858 [DEBUG][       Thread-601158][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:04:14,858 [DEBUG][       Thread-601158][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:04:14,859 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:04:14,859 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:04:15,094 [DEBUG][       Thread-601158][   transport.py][1871] : userauth is OK
2025-07-01 10:04:15,095 [DEBUG][       Thread-601158][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:04:15,095 [DEBUG][       Thread-601158][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:04:15,095 [DEBUG][       Thread-601158][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:04:15,095 [DEBUG][       Thread-601158][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:04:15,166 [ INFO][       Thread-601158][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:04:15,166 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:04:15,167 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:04:16,342 [DEBUG][       Thread-601158][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:04:16,342 [DEBUG][       Thread-601158][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:04:16,484 [DEBUG][       Thread-601158][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:04:16,484 [DEBUG][       Thread-601158][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:04:16,537 [DEBUG][       Thread-601158][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:04:16,629 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:04:16,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-07-01 10:04:16,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-07-01 10:04:16,840 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:04:16,841 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:04:16,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:04:16,941 [DEBUG][       Thread-601158][   transport.py][1871] : EOF in transport thread
2025-07-01 10:04:22,117 [DEBUG][Thread-601160 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:04:22,402 [DEBUG][Thread-601161 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:04:26,852 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:04:26,852 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:04:26,852 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:04:26,855 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:04:27,354 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 4, 9), 10.14, 49.18, 0.0, 44.36, 9.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:04:27,354 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:04:09
2025-07-01 10:04:27,439 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:04:27,443 [DEBUG][       Thread-601162][   transport.py][1871] : starting thread (client mode): 0x75a9240
2025-07-01 10:04:27,443 [DEBUG][       Thread-601162][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:04:27,463 [DEBUG][       Thread-601162][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:04:27,463 [ INFO][       Thread-601162][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:04:27,466 [DEBUG][       Thread-601162][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:04:27,466 [DEBUG][       Thread-601162][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:04:27,467 [DEBUG][       Thread-601162][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:04:27,467 [DEBUG][       Thread-601162][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:04:27,467 [DEBUG][       Thread-601162][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:04:27,467 [DEBUG][       Thread-601162][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:04:27,467 [DEBUG][       Thread-601162][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:04:27,467 [DEBUG][       Thread-601162][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:04:27,467 [DEBUG][       Thread-601162][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:04:27,467 [DEBUG][       Thread-601162][   transport.py][1871] : client lang: <none>
2025-07-01 10:04:27,467 [DEBUG][       Thread-601162][   transport.py][1871] : server lang: <none>
2025-07-01 10:04:27,467 [DEBUG][       Thread-601162][   transport.py][1871] : kex follows: False
2025-07-01 10:04:27,467 [DEBUG][       Thread-601162][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:04:27,467 [DEBUG][       Thread-601162][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:04:27,467 [DEBUG][       Thread-601162][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:04:27,467 [DEBUG][       Thread-601162][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:04:27,467 [DEBUG][       Thread-601162][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:04:27,467 [DEBUG][       Thread-601162][   transport.py][1871] : Compression: none
2025-07-01 10:04:27,467 [DEBUG][       Thread-601162][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:04:27,483 [DEBUG][       Thread-601162][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:04:27,483 [DEBUG][       Thread-601162][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:04:27,483 [DEBUG][       Thread-601162][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:04:27,484 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:04:27,484 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:04:27,485 [DEBUG][       Thread-601162][   transport.py][1871] : userauth is OK
2025-07-01 10:04:27,498 [ INFO][       Thread-601162][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:04:27,499 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:04:28,126 [DEBUG][       Thread-601162][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:04:28,127 [DEBUG][       Thread-601162][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:04:28,169 [DEBUG][       Thread-601162][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:04:28,169 [DEBUG][       Thread-601162][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:04:28,171 [DEBUG][       Thread-601162][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:04:28,183 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:04:28,184 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:04:28,185 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:04:28,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:04:28,193 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:04:28,195 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:04:28,195 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:04:28,195 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:04:28,196 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.336058 -999.00   +9.50  41.33     54   +0.70 1 1 2 1 1   887    0 8.69 3.39 ----- 41.3 41.3 26.4 61.2 12.4 -24.0 11.5 -24.6 10.7 -23.4 11.5 -23.3
2025-07-01 10:04:28,196 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:04:28,196 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:04:28,196 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.336058
2025-07-01 10:04:28,196 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:04:28,197 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:04:28,197 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:04:28,197 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:04:28,197 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:04:28,197 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:04:09', tmtdew=10.14, humidity=49.18, cloud=0.0, wind=44.36, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:03:55.411', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:04:28,198 [DEBUG][       Thread-601162][   transport.py][1871] : EOF in transport thread
2025-07-01 10:04:28,281 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:04:28,338 [DEBUG][       Thread-601165][   transport.py][1871] : starting thread (client mode): 0x8172470
2025-07-01 10:04:28,339 [DEBUG][       Thread-601165][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:04:28,437 [DEBUG][       Thread-601165][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:04:28,437 [ INFO][       Thread-601165][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:04:28,515 [DEBUG][       Thread-601165][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:04:28,515 [DEBUG][       Thread-601165][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:04:28,515 [DEBUG][       Thread-601165][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:04:28,515 [DEBUG][       Thread-601165][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:04:28,515 [DEBUG][       Thread-601165][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:04:28,515 [DEBUG][       Thread-601165][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:04:28,515 [DEBUG][       Thread-601165][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:04:28,515 [DEBUG][       Thread-601165][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:04:28,515 [DEBUG][       Thread-601165][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:04:28,515 [DEBUG][       Thread-601165][   transport.py][1871] : client lang: <none>
2025-07-01 10:04:28,515 [DEBUG][       Thread-601165][   transport.py][1871] : server lang: <none>
2025-07-01 10:04:28,515 [DEBUG][       Thread-601165][   transport.py][1871] : kex follows: False
2025-07-01 10:04:28,515 [DEBUG][       Thread-601165][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:04:28,516 [DEBUG][       Thread-601165][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:04:28,516 [DEBUG][       Thread-601165][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:04:28,516 [DEBUG][       Thread-601165][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:04:28,516 [DEBUG][       Thread-601165][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:04:28,516 [DEBUG][       Thread-601165][   transport.py][1871] : Compression: none
2025-07-01 10:04:28,516 [DEBUG][       Thread-601165][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:04:28,631 [DEBUG][       Thread-601165][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:04:28,631 [DEBUG][       Thread-601165][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:04:28,632 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:04:28,633 [DEBUG][       Thread-601165][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:04:28,634 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:04:28,840 [DEBUG][       Thread-601165][   transport.py][1871] : userauth is OK
2025-07-01 10:04:28,841 [DEBUG][       Thread-601165][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:04:28,841 [DEBUG][       Thread-601165][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:04:28,841 [DEBUG][       Thread-601165][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:04:28,841 [DEBUG][       Thread-601165][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:04:28,912 [ INFO][       Thread-601165][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:04:28,913 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:04:28,913 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:04:30,031 [DEBUG][       Thread-601165][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:04:30,031 [DEBUG][       Thread-601165][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:04:30,172 [DEBUG][       Thread-601165][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:04:30,173 [DEBUG][       Thread-601165][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:04:30,266 [DEBUG][       Thread-601165][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:04:30,364 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:04:30,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')
2025-07-01 10:04:30,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-07-01 10:04:30,559 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:04:30,559 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:04:30,560 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:04:30,643 [DEBUG][       Thread-601165][   transport.py][1871] : EOF in transport thread
2025-07-01 10:04:31,436 [DEBUG][Thread-601167 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:04:40,455 [DEBUG][Thread-601168 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:04:40,570 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:04:40,571 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:04:40,571 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:04:40,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-07-01 10:04:41,082 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 4, 9), 10.14, 49.18, 0.0, 44.36, 9.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:04:41,082 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:04:09
2025-07-01 10:04:41,167 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:04:41,171 [DEBUG][       Thread-601169][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 10:04:41,171 [DEBUG][       Thread-601169][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:04:41,192 [DEBUG][       Thread-601169][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:04:41,192 [ INFO][       Thread-601169][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:04:41,195 [DEBUG][       Thread-601169][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:04:41,195 [DEBUG][       Thread-601169][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:04:41,195 [DEBUG][       Thread-601169][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:04:41,195 [DEBUG][       Thread-601169][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:04:41,195 [DEBUG][       Thread-601169][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:04:41,195 [DEBUG][       Thread-601169][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:04:41,195 [DEBUG][       Thread-601169][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:04:41,195 [DEBUG][       Thread-601169][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:04:41,195 [DEBUG][       Thread-601169][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:04:41,195 [DEBUG][       Thread-601169][   transport.py][1871] : client lang: <none>
2025-07-01 10:04:41,195 [DEBUG][       Thread-601169][   transport.py][1871] : server lang: <none>
2025-07-01 10:04:41,195 [DEBUG][       Thread-601169][   transport.py][1871] : kex follows: False
2025-07-01 10:04:41,195 [DEBUG][       Thread-601169][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:04:41,195 [DEBUG][       Thread-601169][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:04:41,196 [DEBUG][       Thread-601169][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:04:41,196 [DEBUG][       Thread-601169][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:04:41,196 [DEBUG][       Thread-601169][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:04:41,196 [DEBUG][       Thread-601169][   transport.py][1871] : Compression: none
2025-07-01 10:04:41,196 [DEBUG][       Thread-601169][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:04:41,215 [DEBUG][       Thread-601169][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:04:41,216 [DEBUG][       Thread-601169][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:04:41,216 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:04:41,216 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:04:41,217 [DEBUG][       Thread-601169][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:04:41,217 [DEBUG][       Thread-601169][   transport.py][1871] : userauth is OK
2025-07-01 10:04:41,230 [ INFO][       Thread-601169][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:04:41,231 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:04:41,884 [DEBUG][       Thread-601169][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:04:41,885 [DEBUG][       Thread-601169][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:04:41,929 [DEBUG][       Thread-601169][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:04:41,929 [DEBUG][       Thread-601169][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:04:41,931 [DEBUG][       Thread-601169][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:04:41,942 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:04:41,943 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:04:41,944 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:04:41,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:04:41,948 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:04:41,948 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:04:41,949 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:04:41,949 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:04:41,949 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.336058 -999.00   +9.50  41.33     54   +0.70 1 1 2 1 1   887    0 8.69 3.39 ----- 41.3 41.3 26.4 61.2 12.4 -24.0 11.5 -24.6 10.7 -23.4 11.5 -23.3
2025-07-01 10:04:41,949 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:04:41,949 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:04:41,949 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.336058
2025-07-01 10:04:41,949 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:04:41,949 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:04:41,949 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:04:41,949 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:04:41,949 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:04:41,949 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:04:09', tmtdew=10.14, humidity=49.18, cloud=0.0, wind=44.36, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:03:55.411', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:04:41,949 [DEBUG][       Thread-601169][   transport.py][1871] : EOF in transport thread
2025-07-01 10:04:42,024 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:04:42,138 [DEBUG][       Thread-601172][   transport.py][1871] : starting thread (client mode): 0x81075b0
2025-07-01 10:04:42,138 [DEBUG][       Thread-601172][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:04:42,262 [DEBUG][       Thread-601172][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:04:42,262 [ INFO][       Thread-601172][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:04:42,360 [DEBUG][       Thread-601172][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:04:42,360 [DEBUG][       Thread-601172][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:04:42,360 [DEBUG][       Thread-601172][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:04:42,360 [DEBUG][       Thread-601172][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:04:42,361 [DEBUG][       Thread-601172][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:04:42,361 [DEBUG][       Thread-601172][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:04:42,361 [DEBUG][       Thread-601172][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:04:42,361 [DEBUG][       Thread-601172][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:04:42,361 [DEBUG][       Thread-601172][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:04:42,361 [DEBUG][       Thread-601172][   transport.py][1871] : client lang: <none>
2025-07-01 10:04:42,361 [DEBUG][       Thread-601172][   transport.py][1871] : server lang: <none>
2025-07-01 10:04:42,361 [DEBUG][       Thread-601172][   transport.py][1871] : kex follows: False
2025-07-01 10:04:42,361 [DEBUG][       Thread-601172][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:04:42,361 [DEBUG][       Thread-601172][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:04:42,361 [DEBUG][       Thread-601172][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:04:42,361 [DEBUG][       Thread-601172][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:04:42,361 [DEBUG][       Thread-601172][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:04:42,361 [DEBUG][       Thread-601172][   transport.py][1871] : Compression: none
2025-07-01 10:04:42,361 [DEBUG][       Thread-601172][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:04:42,482 [DEBUG][       Thread-601172][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:04:42,483 [DEBUG][       Thread-601172][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:04:42,483 [DEBUG][       Thread-601172][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:04:42,483 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:04:42,483 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:04:42,667 [DEBUG][       Thread-601172][   transport.py][1871] : userauth is OK
2025-07-01 10:04:42,667 [DEBUG][       Thread-601172][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:04:42,667 [DEBUG][       Thread-601172][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:04:42,667 [DEBUG][       Thread-601172][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:04:42,667 [DEBUG][       Thread-601172][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:04:42,748 [ INFO][       Thread-601172][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:04:42,748 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:04:42,748 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:04:43,954 [DEBUG][       Thread-601172][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:04:43,954 [DEBUG][       Thread-601172][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:04:44,135 [DEBUG][       Thread-601172][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:04:44,135 [DEBUG][       Thread-601172][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:04:44,197 [DEBUG][       Thread-601172][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:04:44,291 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:04:44,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-07-01 10:04:44,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-07-01 10:04:44,491 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:04:44,492 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:04:44,492 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:04:44,592 [DEBUG][       Thread-601172][   transport.py][1871] : EOF in transport thread
2025-07-01 10:04:49,477 [DEBUG][Thread-601174 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:04:54,494 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:04:54,494 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:04:54,494 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:04:54,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-07-01 10:04:55,006 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 4, 41), 10.12, 49.25, 0.0, 41.27, 9.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:04:55,006 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:04:41
2025-07-01 10:04:55,090 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:04:55,094 [DEBUG][       Thread-601175][   transport.py][1871] : starting thread (client mode): 0x8170520
2025-07-01 10:04:55,094 [DEBUG][       Thread-601175][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:04:55,114 [DEBUG][       Thread-601175][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:04:55,114 [ INFO][       Thread-601175][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:04:55,117 [DEBUG][       Thread-601175][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:04:55,117 [DEBUG][       Thread-601175][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:04:55,117 [DEBUG][       Thread-601175][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:04:55,117 [DEBUG][       Thread-601175][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:04:55,117 [DEBUG][       Thread-601175][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:04:55,117 [DEBUG][       Thread-601175][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:04:55,117 [DEBUG][       Thread-601175][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:04:55,117 [DEBUG][       Thread-601175][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:04:55,117 [DEBUG][       Thread-601175][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:04:55,117 [DEBUG][       Thread-601175][   transport.py][1871] : client lang: <none>
2025-07-01 10:04:55,117 [DEBUG][       Thread-601175][   transport.py][1871] : server lang: <none>
2025-07-01 10:04:55,117 [DEBUG][       Thread-601175][   transport.py][1871] : kex follows: False
2025-07-01 10:04:55,117 [DEBUG][       Thread-601175][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:04:55,117 [DEBUG][       Thread-601175][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:04:55,117 [DEBUG][       Thread-601175][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:04:55,117 [DEBUG][       Thread-601175][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:04:55,117 [DEBUG][       Thread-601175][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:04:55,118 [DEBUG][       Thread-601175][   transport.py][1871] : Compression: none
2025-07-01 10:04:55,118 [DEBUG][       Thread-601175][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:04:55,133 [DEBUG][       Thread-601175][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:04:55,134 [DEBUG][       Thread-601175][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:04:55,134 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:04:55,135 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:04:55,135 [DEBUG][       Thread-601175][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:04:55,136 [DEBUG][       Thread-601175][   transport.py][1871] : userauth is OK
2025-07-01 10:04:55,160 [ INFO][       Thread-601175][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:04:55,160 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:04:55,784 [DEBUG][       Thread-601175][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:04:55,785 [DEBUG][       Thread-601175][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:04:55,829 [DEBUG][       Thread-601175][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:04:55,829 [DEBUG][       Thread-601175][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:04:55,833 [DEBUG][       Thread-601175][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:04:55,845 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:04:55,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:04:55,847 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:04:55,849 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:04:55,854 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:04:55,855 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:04:55,855 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:04:55,856 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:04:55,856 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.336405 -999.00   +9.50  36.09     54   +0.80 1 1 2 1 1   887    0 8.61 2.24 ----- 36.1 36.1 8.4 47.0 12.3 -23.7 11.5 -24.4 10.7 -23.0 11.5 -22.4
2025-07-01 10:04:55,856 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:04:55,856 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:04:55,856 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.336405
2025-07-01 10:04:55,857 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:04:55,857 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:04:55,858 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:04:55,858 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:04:55,858 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:04:55,858 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:04:41', tmtdew=10.12, humidity=49.25, cloud=0.0, wind=41.27, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:04:25.392', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:04:55,859 [DEBUG][       Thread-601175][   transport.py][1871] : EOF in transport thread
2025-07-01 10:04:55,941 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:04:55,987 [DEBUG][       Thread-601178][   transport.py][1871] : starting thread (client mode): 0x818e7a0
2025-07-01 10:04:55,987 [DEBUG][       Thread-601178][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:04:56,204 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:04:56,205 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:04:56,214 [DEBUG][       Thread-601178][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:04:56,214 [ INFO][       Thread-601178][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:04:56,274 [DEBUG][       Thread-601178][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:04:56,274 [DEBUG][       Thread-601178][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:04:56,274 [DEBUG][       Thread-601178][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:04:56,274 [DEBUG][       Thread-601178][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:04:56,275 [DEBUG][       Thread-601178][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:04:56,275 [DEBUG][       Thread-601178][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:04:56,275 [DEBUG][       Thread-601178][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:04:56,275 [DEBUG][       Thread-601178][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:04:56,275 [DEBUG][       Thread-601178][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:04:56,275 [DEBUG][       Thread-601178][   transport.py][1871] : client lang: <none>
2025-07-01 10:04:56,275 [DEBUG][       Thread-601178][   transport.py][1871] : server lang: <none>
2025-07-01 10:04:56,275 [DEBUG][       Thread-601178][   transport.py][1871] : kex follows: False
2025-07-01 10:04:56,275 [DEBUG][       Thread-601178][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:04:56,275 [DEBUG][       Thread-601178][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:04:56,275 [DEBUG][       Thread-601178][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:04:56,275 [DEBUG][       Thread-601178][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:04:56,276 [DEBUG][       Thread-601178][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:04:56,276 [DEBUG][       Thread-601178][   transport.py][1871] : Compression: none
2025-07-01 10:04:56,276 [DEBUG][       Thread-601178][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:04:56,486 [DEBUG][       Thread-601178][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:04:56,487 [DEBUG][       Thread-601178][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:04:56,487 [DEBUG][       Thread-601178][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:04:56,488 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:04:56,488 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:04:56,710 [DEBUG][       Thread-601178][   transport.py][1871] : userauth is OK
2025-07-01 10:04:56,710 [DEBUG][       Thread-601178][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:04:56,711 [DEBUG][       Thread-601178][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:04:56,711 [DEBUG][       Thread-601178][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:04:56,711 [DEBUG][       Thread-601178][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:04:56,784 [ INFO][       Thread-601178][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:04:56,785 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:04:56,785 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:04:57,947 [DEBUG][       Thread-601178][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:04:57,947 [DEBUG][       Thread-601178][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:04:58,037 [DEBUG][       Thread-601178][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:04:58,037 [DEBUG][       Thread-601178][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:04:58,111 [DEBUG][       Thread-601178][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:04:58,159 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:04:58,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-07-01 10:04:58,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-07-01 10:04:58,378 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:04:58,378 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:04:58,378 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:04:58,435 [DEBUG][       Thread-601178][   transport.py][1871] : EOF in transport thread
2025-07-01 10:04:58,505 [DEBUG][Thread-601180 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:05:07,538 [DEBUG][Thread-601181 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:05:08,387 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:05:08,387 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:05:08,387 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:05:08,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-07-01 10:05:08,896 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 4, 41), 10.12, 49.25, 0.0, 41.27, 9.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:05:08,896 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:04:41
2025-07-01 10:05:08,981 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:05:08,985 [DEBUG][       Thread-601182][   transport.py][1871] : starting thread (client mode): 0x82b28c0
2025-07-01 10:05:08,986 [DEBUG][       Thread-601182][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:05:09,002 [DEBUG][       Thread-601182][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:05:09,002 [ INFO][       Thread-601182][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:05:09,005 [DEBUG][       Thread-601182][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:05:09,005 [DEBUG][       Thread-601182][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:05:09,005 [DEBUG][       Thread-601182][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:05:09,005 [DEBUG][       Thread-601182][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:05:09,005 [DEBUG][       Thread-601182][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:05:09,005 [DEBUG][       Thread-601182][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:05:09,005 [DEBUG][       Thread-601182][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:05:09,005 [DEBUG][       Thread-601182][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:05:09,005 [DEBUG][       Thread-601182][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:05:09,005 [DEBUG][       Thread-601182][   transport.py][1871] : client lang: <none>
2025-07-01 10:05:09,005 [DEBUG][       Thread-601182][   transport.py][1871] : server lang: <none>
2025-07-01 10:05:09,005 [DEBUG][       Thread-601182][   transport.py][1871] : kex follows: False
2025-07-01 10:05:09,005 [DEBUG][       Thread-601182][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:05:09,005 [DEBUG][       Thread-601182][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:05:09,005 [DEBUG][       Thread-601182][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:05:09,005 [DEBUG][       Thread-601182][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:05:09,005 [DEBUG][       Thread-601182][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:05:09,005 [DEBUG][       Thread-601182][   transport.py][1871] : Compression: none
2025-07-01 10:05:09,005 [DEBUG][       Thread-601182][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:05:09,022 [DEBUG][       Thread-601182][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:05:09,023 [DEBUG][       Thread-601182][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:05:09,023 [DEBUG][       Thread-601182][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:05:09,023 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:05:09,023 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:05:09,024 [DEBUG][       Thread-601182][   transport.py][1871] : userauth is OK
2025-07-01 10:05:09,048 [ INFO][       Thread-601182][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:05:09,049 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:05:09,700 [DEBUG][       Thread-601182][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:05:09,700 [DEBUG][       Thread-601182][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:05:09,745 [DEBUG][       Thread-601182][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:05:09,745 [DEBUG][       Thread-601182][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:05:09,747 [DEBUG][       Thread-601182][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:05:09,760 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:05:09,760 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:05:09,762 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:05:09,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:05:09,766 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:05:09,767 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:05:09,767 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:05:09,767 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:05:09,768 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.336405 -999.00   +9.50  36.09     54   +0.80 1 1 2 1 1   887    0 8.61 2.24 ----- 36.1 36.1 8.4 47.0 12.3 -23.7 11.5 -24.4 10.7 -23.0 11.5 -22.4
2025-07-01 10:05:09,768 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:05:09,768 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:05:09,768 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.336405
2025-07-01 10:05:09,768 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:05:09,768 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:05:09,768 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:05:09,768 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:05:09,768 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:05:09,768 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:04:41', tmtdew=10.12, humidity=49.25, cloud=0.0, wind=41.27, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:04:25.392', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:05:09,769 [DEBUG][       Thread-601182][   transport.py][1871] : EOF in transport thread
2025-07-01 10:05:09,840 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:05:09,907 [DEBUG][       Thread-601185][   transport.py][1871] : starting thread (client mode): 0x818cdf0
2025-07-01 10:05:09,908 [DEBUG][       Thread-601185][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:05:10,017 [DEBUG][       Thread-601185][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:05:10,017 [ INFO][       Thread-601185][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:05:10,102 [DEBUG][       Thread-601185][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:05:10,102 [DEBUG][       Thread-601185][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:05:10,102 [DEBUG][       Thread-601185][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:05:10,102 [DEBUG][       Thread-601185][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:05:10,102 [DEBUG][       Thread-601185][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:05:10,102 [DEBUG][       Thread-601185][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:05:10,102 [DEBUG][       Thread-601185][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:05:10,102 [DEBUG][       Thread-601185][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:05:10,102 [DEBUG][       Thread-601185][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:05:10,102 [DEBUG][       Thread-601185][   transport.py][1871] : client lang: <none>
2025-07-01 10:05:10,102 [DEBUG][       Thread-601185][   transport.py][1871] : server lang: <none>
2025-07-01 10:05:10,102 [DEBUG][       Thread-601185][   transport.py][1871] : kex follows: False
2025-07-01 10:05:10,102 [DEBUG][       Thread-601185][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:05:10,103 [DEBUG][       Thread-601185][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:05:10,103 [DEBUG][       Thread-601185][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:05:10,103 [DEBUG][       Thread-601185][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:05:10,103 [DEBUG][       Thread-601185][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:05:10,103 [DEBUG][       Thread-601185][   transport.py][1871] : Compression: none
2025-07-01 10:05:10,103 [DEBUG][       Thread-601185][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:05:10,222 [DEBUG][       Thread-601185][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:05:10,222 [DEBUG][       Thread-601185][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:05:10,222 [DEBUG][       Thread-601185][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:05:10,222 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:05:10,222 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:05:10,482 [DEBUG][       Thread-601185][   transport.py][1871] : userauth is OK
2025-07-01 10:05:10,482 [DEBUG][       Thread-601185][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:05:10,482 [DEBUG][       Thread-601185][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:05:10,482 [DEBUG][       Thread-601185][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:05:10,483 [DEBUG][       Thread-601185][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:05:10,557 [ INFO][       Thread-601185][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:05:10,557 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:05:10,558 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:05:11,750 [DEBUG][       Thread-601185][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:05:11,750 [DEBUG][       Thread-601185][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:05:11,861 [DEBUG][       Thread-601185][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:05:11,861 [DEBUG][       Thread-601185][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:05:11,946 [DEBUG][       Thread-601185][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:05:12,028 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:05:12,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-07-01 10:05:12,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-07-01 10:05:12,185 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:05:12,185 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:05:12,186 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:05:12,285 [DEBUG][       Thread-601185][   transport.py][1871] : EOF in transport thread
2025-07-01 10:05:16,555 [DEBUG][Thread-601187 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:05:22,167 [DEBUG][Thread-601188 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:05:22,196 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:05:22,197 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:05:22,197 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:05:22,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-07-01 10:05:22,686 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 5, 12), 10.06, 49.47, 0.0, 34.51, 9.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:05:22,686 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:05:12
2025-07-01 10:05:22,770 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:05:22,775 [DEBUG][       Thread-601189][   transport.py][1871] : starting thread (client mode): 0x8170280
2025-07-01 10:05:22,775 [DEBUG][       Thread-601189][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:05:22,795 [DEBUG][       Thread-601189][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:05:22,795 [ INFO][       Thread-601189][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:05:22,798 [DEBUG][       Thread-601189][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:05:22,798 [DEBUG][       Thread-601189][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:05:22,798 [DEBUG][       Thread-601189][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:05:22,798 [DEBUG][       Thread-601189][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:05:22,798 [DEBUG][       Thread-601189][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:05:22,798 [DEBUG][       Thread-601189][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:05:22,798 [DEBUG][       Thread-601189][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:05:22,798 [DEBUG][       Thread-601189][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:05:22,798 [DEBUG][       Thread-601189][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:05:22,798 [DEBUG][       Thread-601189][   transport.py][1871] : client lang: <none>
2025-07-01 10:05:22,798 [DEBUG][       Thread-601189][   transport.py][1871] : server lang: <none>
2025-07-01 10:05:22,798 [DEBUG][       Thread-601189][   transport.py][1871] : kex follows: False
2025-07-01 10:05:22,799 [DEBUG][       Thread-601189][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:05:22,799 [DEBUG][       Thread-601189][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:05:22,799 [DEBUG][       Thread-601189][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:05:22,799 [DEBUG][       Thread-601189][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:05:22,799 [DEBUG][       Thread-601189][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:05:22,799 [DEBUG][       Thread-601189][   transport.py][1871] : Compression: none
2025-07-01 10:05:22,799 [DEBUG][       Thread-601189][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:05:22,811 [DEBUG][       Thread-601189][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:05:22,811 [DEBUG][       Thread-601189][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:05:22,812 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:05:22,812 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:05:22,813 [DEBUG][       Thread-601189][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:05:22,813 [DEBUG][       Thread-601189][   transport.py][1871] : userauth is OK
2025-07-01 10:05:22,826 [ INFO][       Thread-601189][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:05:22,827 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:05:23,403 [DEBUG][       Thread-601189][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:05:23,403 [DEBUG][       Thread-601189][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:05:23,445 [DEBUG][       Thread-601189][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:05:23,445 [DEBUG][       Thread-601189][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:05:23,448 [DEBUG][       Thread-601189][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:05:23,457 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:05:23,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:05:23,459 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:05:23,461 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:05:23,466 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:05:23,468 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:05:23,468 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:05:23,469 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:05:23,469 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.336752 -999.00   +9.40  52.96     54   +0.70 1 1 2 1 1   887    0 8.96 1.40 ----- 53.0 53.0 33.4 56.7 12.3 -23.8 11.4 -24.5 10.7 -22.3 11.4 -21.7
2025-07-01 10:05:23,469 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:05:23,469 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:05:23,469 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.336752
2025-07-01 10:05:23,470 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:05:23,470 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:05:23,470 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:05:23,471 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:05:23,471 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:05:23,471 [DEBUG][       Thread-601189][   transport.py][1871] : EOF in transport thread
2025-07-01 10:05:23,471 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:05:12', tmtdew=10.06, humidity=49.47, cloud=0.0, wind=34.51, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:04:55.373', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:05:23,548 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:05:23,641 [DEBUG][       Thread-601192][   transport.py][1871] : starting thread (client mode): 0x4701ec20
2025-07-01 10:05:23,642 [DEBUG][       Thread-601192][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:05:23,745 [DEBUG][       Thread-601192][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:05:23,745 [ INFO][       Thread-601192][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:05:23,825 [DEBUG][       Thread-601192][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:05:23,826 [DEBUG][       Thread-601192][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:05:23,826 [DEBUG][       Thread-601192][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:05:23,826 [DEBUG][       Thread-601192][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:05:23,826 [DEBUG][       Thread-601192][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:05:23,826 [DEBUG][       Thread-601192][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:05:23,826 [DEBUG][       Thread-601192][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:05:23,826 [DEBUG][       Thread-601192][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:05:23,826 [DEBUG][       Thread-601192][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:05:23,826 [DEBUG][       Thread-601192][   transport.py][1871] : client lang: <none>
2025-07-01 10:05:23,826 [DEBUG][       Thread-601192][   transport.py][1871] : server lang: <none>
2025-07-01 10:05:23,826 [DEBUG][       Thread-601192][   transport.py][1871] : kex follows: False
2025-07-01 10:05:23,827 [DEBUG][       Thread-601192][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:05:23,827 [DEBUG][       Thread-601192][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:05:23,827 [DEBUG][       Thread-601192][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:05:23,827 [DEBUG][       Thread-601192][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:05:23,827 [DEBUG][       Thread-601192][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:05:23,827 [DEBUG][       Thread-601192][   transport.py][1871] : Compression: none
2025-07-01 10:05:23,827 [DEBUG][       Thread-601192][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:05:24,091 [DEBUG][       Thread-601192][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:05:24,092 [DEBUG][       Thread-601192][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:05:24,092 [DEBUG][       Thread-601192][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:05:24,092 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:05:24,092 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:05:24,366 [DEBUG][       Thread-601192][   transport.py][1871] : userauth is OK
2025-07-01 10:05:24,366 [DEBUG][       Thread-601192][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:05:24,366 [DEBUG][       Thread-601192][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:05:24,366 [DEBUG][       Thread-601192][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:05:24,366 [DEBUG][       Thread-601192][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:05:24,447 [ INFO][       Thread-601192][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:05:24,448 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:05:24,448 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:05:25,577 [DEBUG][Thread-601194 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:05:25,583 [DEBUG][       Thread-601192][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:05:25,583 [DEBUG][       Thread-601192][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:05:25,690 [DEBUG][       Thread-601192][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:05:25,690 [DEBUG][       Thread-601192][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:05:25,769 [DEBUG][       Thread-601192][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:05:25,853 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:05:25,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')
2025-07-01 10:05:25,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-07-01 10:05:26,069 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:05:26,069 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:05:26,069 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:05:26,169 [DEBUG][       Thread-601192][   transport.py][1871] : EOF in transport thread
2025-07-01 10:05:34,611 [DEBUG][Thread-601195 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:05:36,080 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:05:36,080 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:05:36,080 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:05:36,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-07-01 10:05:36,576 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 5, 12), 10.06, 49.47, 0.0, 34.51, 9.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:05:36,576 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:05:12
2025-07-01 10:05:36,660 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:05:36,665 [DEBUG][       Thread-601196][   transport.py][1871] : starting thread (client mode): 0x81553c0
2025-07-01 10:05:36,665 [DEBUG][       Thread-601196][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:05:36,686 [DEBUG][       Thread-601196][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:05:36,686 [ INFO][       Thread-601196][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:05:36,689 [DEBUG][       Thread-601196][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:05:36,689 [DEBUG][       Thread-601196][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:05:36,689 [DEBUG][       Thread-601196][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:05:36,689 [DEBUG][       Thread-601196][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:05:36,689 [DEBUG][       Thread-601196][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:05:36,689 [DEBUG][       Thread-601196][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:05:36,689 [DEBUG][       Thread-601196][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:05:36,689 [DEBUG][       Thread-601196][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:05:36,689 [DEBUG][       Thread-601196][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:05:36,689 [DEBUG][       Thread-601196][   transport.py][1871] : client lang: <none>
2025-07-01 10:05:36,689 [DEBUG][       Thread-601196][   transport.py][1871] : server lang: <none>
2025-07-01 10:05:36,689 [DEBUG][       Thread-601196][   transport.py][1871] : kex follows: False
2025-07-01 10:05:36,689 [DEBUG][       Thread-601196][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:05:36,689 [DEBUG][       Thread-601196][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:05:36,689 [DEBUG][       Thread-601196][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:05:36,689 [DEBUG][       Thread-601196][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:05:36,689 [DEBUG][       Thread-601196][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:05:36,689 [DEBUG][       Thread-601196][   transport.py][1871] : Compression: none
2025-07-01 10:05:36,689 [DEBUG][       Thread-601196][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:05:36,707 [DEBUG][       Thread-601196][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:05:36,707 [DEBUG][       Thread-601196][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:05:36,707 [DEBUG][       Thread-601196][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:05:36,707 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:05:36,707 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:05:36,708 [DEBUG][       Thread-601196][   transport.py][1871] : userauth is OK
2025-07-01 10:05:36,721 [ INFO][       Thread-601196][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:05:36,721 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:05:37,343 [DEBUG][       Thread-601196][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:05:37,343 [DEBUG][       Thread-601196][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:05:37,389 [DEBUG][       Thread-601196][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:05:37,389 [DEBUG][       Thread-601196][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:05:37,392 [DEBUG][       Thread-601196][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:05:37,405 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:05:37,405 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:05:37,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:05:37,409 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:05:37,414 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:05:37,416 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:05:37,416 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:05:37,417 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:05:37,417 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.336752 -999.00   +9.40  52.96     54   +0.70 1 1 2 1 1   887    0 8.96 1.40 ----- 53.0 53.0 33.4 56.7 12.3 -23.8 11.4 -24.5 10.7 -22.3 11.4 -21.7
2025-07-01 10:05:37,417 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:05:37,417 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:05:37,417 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.336752
2025-07-01 10:05:37,417 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:05:37,418 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:05:37,418 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:05:37,418 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:05:37,418 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:05:37,418 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:05:12', tmtdew=10.06, humidity=49.47, cloud=0.0, wind=34.51, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:04:55.373', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:05:37,419 [DEBUG][       Thread-601196][   transport.py][1871] : EOF in transport thread
2025-07-01 10:05:37,495 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:05:37,994 [DEBUG][       Thread-601199][   transport.py][1871] : starting thread (client mode): 0x75aba90
2025-07-01 10:05:37,994 [DEBUG][       Thread-601199][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:05:38,201 [DEBUG][       Thread-601199][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:05:38,201 [ INFO][       Thread-601199][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:05:38,299 [DEBUG][       Thread-601199][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:05:38,299 [DEBUG][       Thread-601199][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:05:38,299 [DEBUG][       Thread-601199][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:05:38,299 [DEBUG][       Thread-601199][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:05:38,299 [DEBUG][       Thread-601199][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:05:38,299 [DEBUG][       Thread-601199][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:05:38,299 [DEBUG][       Thread-601199][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:05:38,299 [DEBUG][       Thread-601199][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:05:38,299 [DEBUG][       Thread-601199][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:05:38,299 [DEBUG][       Thread-601199][   transport.py][1871] : client lang: <none>
2025-07-01 10:05:38,299 [DEBUG][       Thread-601199][   transport.py][1871] : server lang: <none>
2025-07-01 10:05:38,299 [DEBUG][       Thread-601199][   transport.py][1871] : kex follows: False
2025-07-01 10:05:38,299 [DEBUG][       Thread-601199][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:05:38,299 [DEBUG][       Thread-601199][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:05:38,299 [DEBUG][       Thread-601199][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:05:38,299 [DEBUG][       Thread-601199][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:05:38,299 [DEBUG][       Thread-601199][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:05:38,299 [DEBUG][       Thread-601199][   transport.py][1871] : Compression: none
2025-07-01 10:05:38,299 [DEBUG][       Thread-601199][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:05:38,470 [DEBUG][       Thread-601199][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:05:38,470 [DEBUG][       Thread-601199][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:05:38,471 [DEBUG][       Thread-601199][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:05:38,471 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:05:38,472 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:05:38,682 [DEBUG][       Thread-601199][   transport.py][1871] : userauth is OK
2025-07-01 10:05:38,682 [DEBUG][       Thread-601199][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:05:38,682 [DEBUG][       Thread-601199][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:05:38,682 [DEBUG][       Thread-601199][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:05:38,683 [DEBUG][       Thread-601199][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:05:38,782 [ INFO][       Thread-601199][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:05:38,783 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:05:38,783 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:05:39,838 [DEBUG][       Thread-601199][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:05:39,839 [DEBUG][       Thread-601199][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:05:39,939 [DEBUG][       Thread-601199][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:05:39,939 [DEBUG][       Thread-601199][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:05:40,044 [DEBUG][       Thread-601199][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:05:40,153 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:05:40,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')
2025-07-01 10:05:40,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-07-01 10:05:40,350 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:05:40,350 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:05:40,350 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:05:40,441 [DEBUG][       Thread-601199][   transport.py][1871] : EOF in transport thread
2025-07-01 10:05:43,634 [DEBUG][Thread-601201 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:05:50,361 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:05:50,361 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:05:50,361 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:05:50,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-07-01 10:05:50,850 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 5, 44), 10.1, 49.34, 0.0, 32.01, 9.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:05:50,851 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:05:44
2025-07-01 10:05:50,934 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:05:50,938 [DEBUG][       Thread-601202][   transport.py][1871] : starting thread (client mode): 0x81574f0
2025-07-01 10:05:50,938 [DEBUG][       Thread-601202][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:05:50,961 [DEBUG][       Thread-601202][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:05:50,961 [ INFO][       Thread-601202][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:05:50,964 [DEBUG][       Thread-601202][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:05:50,964 [DEBUG][       Thread-601202][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:05:50,964 [DEBUG][       Thread-601202][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:05:50,964 [DEBUG][       Thread-601202][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:05:50,964 [DEBUG][       Thread-601202][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:05:50,964 [DEBUG][       Thread-601202][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:05:50,964 [DEBUG][       Thread-601202][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:05:50,964 [DEBUG][       Thread-601202][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:05:50,964 [DEBUG][       Thread-601202][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:05:50,964 [DEBUG][       Thread-601202][   transport.py][1871] : client lang: <none>
2025-07-01 10:05:50,964 [DEBUG][       Thread-601202][   transport.py][1871] : server lang: <none>
2025-07-01 10:05:50,964 [DEBUG][       Thread-601202][   transport.py][1871] : kex follows: False
2025-07-01 10:05:50,964 [DEBUG][       Thread-601202][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:05:50,964 [DEBUG][       Thread-601202][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:05:50,964 [DEBUG][       Thread-601202][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:05:50,964 [DEBUG][       Thread-601202][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:05:50,964 [DEBUG][       Thread-601202][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:05:50,964 [DEBUG][       Thread-601202][   transport.py][1871] : Compression: none
2025-07-01 10:05:50,964 [DEBUG][       Thread-601202][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:05:50,981 [DEBUG][       Thread-601202][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:05:50,982 [DEBUG][       Thread-601202][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:05:50,982 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:05:50,982 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:05:50,983 [DEBUG][       Thread-601202][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:05:50,984 [DEBUG][       Thread-601202][   transport.py][1871] : userauth is OK
2025-07-01 10:05:50,997 [ INFO][       Thread-601202][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:05:50,997 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:05:51,640 [DEBUG][       Thread-601202][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:05:51,641 [DEBUG][       Thread-601202][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:05:51,689 [DEBUG][       Thread-601202][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:05:51,689 [DEBUG][       Thread-601202][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:05:51,692 [DEBUG][       Thread-601202][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:05:51,703 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:05:51,704 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:05:51,705 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:05:51,707 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:05:51,711 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:05:51,713 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:05:51,713 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:05:51,713 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:05:51,713 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.336752 -999.00   +9.40  52.96     54   +0.70 1 1 2 1 1   887    0 8.96 1.40 ----- 53.0 53.0 33.4 56.7 12.3 -23.8 11.4 -24.5 10.7 -22.3 11.4 -21.7
2025-07-01 10:05:51,713 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:05:51,713 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:05:51,713 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.336752
2025-07-01 10:05:51,713 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:05:51,714 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:05:51,714 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:05:51,714 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:05:51,714 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:05:51,714 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:05:44', tmtdew=10.1, humidity=49.34, cloud=0.0, wind=32.01, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:04:55.373', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:05:51,714 [DEBUG][       Thread-601202][   transport.py][1871] : EOF in transport thread
2025-07-01 10:05:51,792 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:05:51,905 [DEBUG][       Thread-601205][   transport.py][1871] : starting thread (client mode): 0x81068f0
2025-07-01 10:05:51,905 [DEBUG][       Thread-601205][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:05:52,011 [DEBUG][       Thread-601205][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:05:52,012 [ INFO][       Thread-601205][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:05:52,170 [DEBUG][       Thread-601205][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:05:52,171 [DEBUG][       Thread-601205][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:05:52,171 [DEBUG][       Thread-601205][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:05:52,171 [DEBUG][       Thread-601205][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:05:52,171 [DEBUG][       Thread-601205][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:05:52,171 [DEBUG][       Thread-601205][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:05:52,171 [DEBUG][       Thread-601205][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:05:52,171 [DEBUG][       Thread-601205][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:05:52,171 [DEBUG][       Thread-601205][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:05:52,171 [DEBUG][       Thread-601205][   transport.py][1871] : client lang: <none>
2025-07-01 10:05:52,171 [DEBUG][       Thread-601205][   transport.py][1871] : server lang: <none>
2025-07-01 10:05:52,171 [DEBUG][       Thread-601205][   transport.py][1871] : kex follows: False
2025-07-01 10:05:52,171 [DEBUG][       Thread-601205][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:05:52,171 [DEBUG][       Thread-601205][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:05:52,171 [DEBUG][       Thread-601205][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:05:52,171 [DEBUG][       Thread-601205][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:05:52,171 [DEBUG][       Thread-601205][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:05:52,171 [DEBUG][       Thread-601205][   transport.py][1871] : Compression: none
2025-07-01 10:05:52,171 [DEBUG][       Thread-601205][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:05:52,303 [DEBUG][       Thread-601205][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:05:52,303 [DEBUG][       Thread-601205][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:05:52,304 [DEBUG][       Thread-601205][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:05:52,304 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:05:52,304 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:05:52,491 [DEBUG][       Thread-601205][   transport.py][1871] : userauth is OK
2025-07-01 10:05:52,491 [DEBUG][       Thread-601205][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:05:52,491 [DEBUG][       Thread-601205][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:05:52,491 [DEBUG][       Thread-601205][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:05:52,491 [DEBUG][       Thread-601205][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:05:52,599 [ INFO][       Thread-601205][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:05:52,600 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:05:52,600 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:05:52,652 [DEBUG][Thread-601207 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:05:53,655 [DEBUG][       Thread-601205][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:05:53,655 [DEBUG][       Thread-601205][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:05:53,793 [DEBUG][       Thread-601205][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:05:53,793 [DEBUG][       Thread-601205][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:05:53,890 [DEBUG][       Thread-601205][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:05:53,986 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:05:53,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-07-01 10:05:54,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-07-01 10:05:54,158 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:05:54,158 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:05:54,158 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:05:54,258 [DEBUG][       Thread-601205][   transport.py][1871] : EOF in transport thread
2025-07-01 10:05:56,343 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:05:56,345 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:06:01,686 [DEBUG][Thread-601208 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:06:04,168 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:06:04,168 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:06:04,168 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:06:04,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-07-01 10:06:04,653 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 5, 44), 10.1, 49.34, 0.0, 32.01, 9.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:06:04,653 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:05:44
2025-07-01 10:06:04,737 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:06:04,742 [DEBUG][       Thread-601209][   transport.py][1871] : starting thread (client mode): 0x8156020
2025-07-01 10:06:04,742 [DEBUG][       Thread-601209][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:06:04,762 [DEBUG][       Thread-601209][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:06:04,762 [ INFO][       Thread-601209][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:06:04,766 [DEBUG][       Thread-601209][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:06:04,766 [DEBUG][       Thread-601209][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:06:04,766 [DEBUG][       Thread-601209][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:06:04,766 [DEBUG][       Thread-601209][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:06:04,766 [DEBUG][       Thread-601209][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:06:04,766 [DEBUG][       Thread-601209][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:06:04,766 [DEBUG][       Thread-601209][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:06:04,766 [DEBUG][       Thread-601209][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:06:04,766 [DEBUG][       Thread-601209][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:06:04,766 [DEBUG][       Thread-601209][   transport.py][1871] : client lang: <none>
2025-07-01 10:06:04,766 [DEBUG][       Thread-601209][   transport.py][1871] : server lang: <none>
2025-07-01 10:06:04,766 [DEBUG][       Thread-601209][   transport.py][1871] : kex follows: False
2025-07-01 10:06:04,766 [DEBUG][       Thread-601209][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:06:04,766 [DEBUG][       Thread-601209][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:06:04,766 [DEBUG][       Thread-601209][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:06:04,766 [DEBUG][       Thread-601209][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:06:04,766 [DEBUG][       Thread-601209][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:06:04,766 [DEBUG][       Thread-601209][   transport.py][1871] : Compression: none
2025-07-01 10:06:04,766 [DEBUG][       Thread-601209][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:06:04,786 [DEBUG][       Thread-601209][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:06:04,787 [DEBUG][       Thread-601209][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:06:04,787 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:06:04,787 [DEBUG][       Thread-601209][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:06:04,787 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:06:04,789 [DEBUG][       Thread-601209][   transport.py][1871] : userauth is OK
2025-07-01 10:06:04,813 [ INFO][       Thread-601209][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:06:04,814 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:06:05,449 [DEBUG][       Thread-601209][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:06:05,449 [DEBUG][       Thread-601209][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:06:05,493 [DEBUG][       Thread-601209][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:06:05,493 [DEBUG][       Thread-601209][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:06:05,496 [DEBUG][       Thread-601209][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:06:05,509 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:06:05,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:06:05,511 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:06:05,513 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:06:05,519 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:06:05,520 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:06:05,520 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:06:05,521 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:06:05,521 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.337100 -999.00   +9.40  41.10     54   +0.70 1 1 2 1 1   887    0 8.65 1.11 ----- 41.1 41.1 39.8 56.2 12.3 -24.1 11.4 -23.7 10.7 -22.7 11.5 -22.0
2025-07-01 10:06:05,521 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:06:05,521 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:06:05,522 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.337100
2025-07-01 10:06:05,522 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:06:05,523 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:06:05,523 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:06:05,523 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:06:05,523 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:06:05,523 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:05:44', tmtdew=10.1, humidity=49.34, cloud=0.0, wind=32.01, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:05:25.440', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:06:05,523 [DEBUG][       Thread-601209][   transport.py][1871] : EOF in transport thread
2025-07-01 10:06:05,607 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:06:05,738 [DEBUG][       Thread-601212][   transport.py][1871] : starting thread (client mode): 0x75a8cd0
2025-07-01 10:06:05,738 [DEBUG][       Thread-601212][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:06:05,811 [DEBUG][       Thread-601212][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:06:05,811 [ INFO][       Thread-601212][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:06:05,898 [DEBUG][       Thread-601212][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:06:05,899 [DEBUG][       Thread-601212][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:06:05,899 [DEBUG][       Thread-601212][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:06:05,899 [DEBUG][       Thread-601212][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:06:05,899 [DEBUG][       Thread-601212][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:06:05,899 [DEBUG][       Thread-601212][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:06:05,899 [DEBUG][       Thread-601212][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:06:05,899 [DEBUG][       Thread-601212][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:06:05,899 [DEBUG][       Thread-601212][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:06:05,899 [DEBUG][       Thread-601212][   transport.py][1871] : client lang: <none>
2025-07-01 10:06:05,899 [DEBUG][       Thread-601212][   transport.py][1871] : server lang: <none>
2025-07-01 10:06:05,899 [DEBUG][       Thread-601212][   transport.py][1871] : kex follows: False
2025-07-01 10:06:05,899 [DEBUG][       Thread-601212][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:06:05,900 [DEBUG][       Thread-601212][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:06:05,900 [DEBUG][       Thread-601212][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:06:05,900 [DEBUG][       Thread-601212][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:06:05,900 [DEBUG][       Thread-601212][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:06:05,900 [DEBUG][       Thread-601212][   transport.py][1871] : Compression: none
2025-07-01 10:06:05,900 [DEBUG][       Thread-601212][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:06:06,028 [DEBUG][       Thread-601212][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:06:06,029 [DEBUG][       Thread-601212][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:06:06,029 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:06:06,030 [DEBUG][       Thread-601212][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:06:06,030 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:06:06,227 [DEBUG][       Thread-601212][   transport.py][1871] : userauth is OK
2025-07-01 10:06:06,227 [DEBUG][       Thread-601212][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:06:06,227 [DEBUG][       Thread-601212][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:06:06,227 [DEBUG][       Thread-601212][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:06:06,227 [DEBUG][       Thread-601212][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:06:06,331 [ INFO][       Thread-601212][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:06:06,331 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:06:06,331 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:06:07,420 [DEBUG][       Thread-601212][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:06:07,420 [DEBUG][       Thread-601212][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:06:07,569 [DEBUG][       Thread-601212][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:06:07,570 [DEBUG][       Thread-601212][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:06:07,670 [DEBUG][       Thread-601212][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:06:07,785 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:06:07,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-07-01 10:06:07,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-07-01 10:06:08,043 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:06:08,043 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:06:08,044 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:06:08,140 [DEBUG][       Thread-601212][   transport.py][1871] : EOF in transport thread
2025-07-01 10:06:10,709 [DEBUG][Thread-601214 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:06:18,054 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:06:18,054 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:06:18,054 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:06:18,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-07-01 10:06:18,556 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 5, 44), 10.1, 49.34, 0.0, 32.01, 9.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:06:18,556 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:05:44
2025-07-01 10:06:18,639 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:06:18,643 [DEBUG][       Thread-601215][   transport.py][1871] : starting thread (client mode): 0x82b2500
2025-07-01 10:06:18,643 [DEBUG][       Thread-601215][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:06:18,664 [DEBUG][       Thread-601215][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:06:18,664 [ INFO][       Thread-601215][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:06:18,667 [DEBUG][       Thread-601215][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:06:18,667 [DEBUG][       Thread-601215][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:06:18,667 [DEBUG][       Thread-601215][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:06:18,667 [DEBUG][       Thread-601215][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:06:18,667 [DEBUG][       Thread-601215][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:06:18,667 [DEBUG][       Thread-601215][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:06:18,667 [DEBUG][       Thread-601215][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:06:18,667 [DEBUG][       Thread-601215][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:06:18,667 [DEBUG][       Thread-601215][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:06:18,667 [DEBUG][       Thread-601215][   transport.py][1871] : client lang: <none>
2025-07-01 10:06:18,667 [DEBUG][       Thread-601215][   transport.py][1871] : server lang: <none>
2025-07-01 10:06:18,667 [DEBUG][       Thread-601215][   transport.py][1871] : kex follows: False
2025-07-01 10:06:18,667 [DEBUG][       Thread-601215][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:06:18,667 [DEBUG][       Thread-601215][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:06:18,667 [DEBUG][       Thread-601215][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:06:18,667 [DEBUG][       Thread-601215][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:06:18,667 [DEBUG][       Thread-601215][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:06:18,667 [DEBUG][       Thread-601215][   transport.py][1871] : Compression: none
2025-07-01 10:06:18,667 [DEBUG][       Thread-601215][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:06:18,684 [DEBUG][       Thread-601215][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:06:18,685 [DEBUG][       Thread-601215][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:06:18,686 [DEBUG][       Thread-601215][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:06:18,686 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:06:18,686 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:06:18,687 [DEBUG][       Thread-601215][   transport.py][1871] : userauth is OK
2025-07-01 10:06:18,701 [ INFO][       Thread-601215][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:06:18,701 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:06:19,353 [DEBUG][       Thread-601215][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:06:19,354 [DEBUG][       Thread-601215][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:06:19,397 [DEBUG][       Thread-601215][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:06:19,397 [DEBUG][       Thread-601215][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:06:19,400 [DEBUG][       Thread-601215][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:06:19,412 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:06:19,413 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:06:19,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:06:19,417 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:06:19,422 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:06:19,424 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:06:19,424 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:06:19,425 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:06:19,425 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.337100 -999.00   +9.40  41.10     54   +0.70 1 1 2 1 1   887    0 8.65 1.11 ----- 41.1 41.1 39.8 56.2 12.3 -24.1 11.4 -23.7 10.7 -22.7 11.5 -22.0
2025-07-01 10:06:19,425 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:06:19,425 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:06:19,425 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.337100
2025-07-01 10:06:19,426 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:06:19,426 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:06:19,426 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:06:19,426 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:06:19,426 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:06:19,427 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:05:44', tmtdew=10.1, humidity=49.34, cloud=0.0, wind=32.01, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:05:25.440', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:06:19,427 [DEBUG][       Thread-601215][   transport.py][1871] : EOF in transport thread
2025-07-01 10:06:19,510 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:06:19,720 [DEBUG][       Thread-601218][   transport.py][1871] : starting thread (client mode): 0x8105f90
2025-07-01 10:06:19,721 [DEBUG][       Thread-601218][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:06:19,730 [DEBUG][Thread-601219 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:06:19,817 [DEBUG][       Thread-601218][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:06:19,817 [ INFO][       Thread-601218][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:06:19,922 [DEBUG][       Thread-601218][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:06:19,922 [DEBUG][       Thread-601218][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:06:19,922 [DEBUG][       Thread-601218][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:06:19,922 [DEBUG][       Thread-601218][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:06:19,922 [DEBUG][       Thread-601218][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:06:19,922 [DEBUG][       Thread-601218][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:06:19,922 [DEBUG][       Thread-601218][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:06:19,922 [DEBUG][       Thread-601218][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:06:19,922 [DEBUG][       Thread-601218][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:06:19,922 [DEBUG][       Thread-601218][   transport.py][1871] : client lang: <none>
2025-07-01 10:06:19,923 [DEBUG][       Thread-601218][   transport.py][1871] : server lang: <none>
2025-07-01 10:06:19,923 [DEBUG][       Thread-601218][   transport.py][1871] : kex follows: False
2025-07-01 10:06:19,923 [DEBUG][       Thread-601218][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:06:19,923 [DEBUG][       Thread-601218][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:06:19,923 [DEBUG][       Thread-601218][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:06:19,923 [DEBUG][       Thread-601218][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:06:19,923 [DEBUG][       Thread-601218][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:06:19,923 [DEBUG][       Thread-601218][   transport.py][1871] : Compression: none
2025-07-01 10:06:19,923 [DEBUG][       Thread-601218][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:06:20,074 [DEBUG][       Thread-601218][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:06:20,075 [DEBUG][       Thread-601218][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:06:20,076 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:06:20,076 [DEBUG][       Thread-601218][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:06:20,077 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:06:20,397 [DEBUG][       Thread-601218][   transport.py][1871] : userauth is OK
2025-07-01 10:06:20,397 [DEBUG][       Thread-601218][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:06:20,397 [DEBUG][       Thread-601218][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:06:20,397 [DEBUG][       Thread-601218][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:06:20,398 [DEBUG][       Thread-601218][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:06:20,491 [ INFO][       Thread-601218][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:06:20,492 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:06:20,492 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:06:21,554 [DEBUG][       Thread-601218][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:06:21,554 [DEBUG][       Thread-601218][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:06:21,709 [DEBUG][       Thread-601218][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:06:21,709 [DEBUG][       Thread-601218][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:06:21,820 [DEBUG][       Thread-601218][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:06:21,926 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:06:21,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')
2025-07-01 10:06:22,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-07-01 10:06:22,142 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:06:22,142 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:06:22,143 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:06:22,208 [DEBUG][Thread-601221 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:06:22,242 [DEBUG][       Thread-601218][   transport.py][1871] : EOF in transport thread
2025-07-01 10:06:28,753 [DEBUG][Thread-601222 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:06:32,152 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:06:32,152 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:06:32,152 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:06:32,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-07-01 10:06:32,650 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 6, 16), 10.06, 49.35, 0.0, 37.95, 9.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:06:32,650 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:06:16
2025-07-01 10:06:32,738 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:06:32,743 [DEBUG][       Thread-601223][   transport.py][1871] : starting thread (client mode): 0x82b3610
2025-07-01 10:06:32,743 [DEBUG][       Thread-601223][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:06:32,764 [DEBUG][       Thread-601223][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:06:32,764 [ INFO][       Thread-601223][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:06:32,768 [DEBUG][       Thread-601223][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:06:32,768 [DEBUG][       Thread-601223][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:06:32,768 [DEBUG][       Thread-601223][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:06:32,768 [DEBUG][       Thread-601223][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:06:32,768 [DEBUG][       Thread-601223][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:06:32,768 [DEBUG][       Thread-601223][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:06:32,768 [DEBUG][       Thread-601223][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:06:32,768 [DEBUG][       Thread-601223][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:06:32,768 [DEBUG][       Thread-601223][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:06:32,768 [DEBUG][       Thread-601223][   transport.py][1871] : client lang: <none>
2025-07-01 10:06:32,768 [DEBUG][       Thread-601223][   transport.py][1871] : server lang: <none>
2025-07-01 10:06:32,768 [DEBUG][       Thread-601223][   transport.py][1871] : kex follows: False
2025-07-01 10:06:32,768 [DEBUG][       Thread-601223][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:06:32,768 [DEBUG][       Thread-601223][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:06:32,768 [DEBUG][       Thread-601223][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:06:32,768 [DEBUG][       Thread-601223][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:06:32,768 [DEBUG][       Thread-601223][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:06:32,768 [DEBUG][       Thread-601223][   transport.py][1871] : Compression: none
2025-07-01 10:06:32,768 [DEBUG][       Thread-601223][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:06:32,775 [DEBUG][       Thread-601223][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:06:32,775 [DEBUG][       Thread-601223][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:06:32,775 [DEBUG][       Thread-601223][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:06:32,775 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:06:32,775 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:06:32,775 [DEBUG][       Thread-601223][   transport.py][1871] : userauth is OK
2025-07-01 10:06:32,788 [ INFO][       Thread-601223][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:06:32,788 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:06:33,393 [DEBUG][       Thread-601223][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:06:33,393 [DEBUG][       Thread-601223][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:06:33,436 [DEBUG][       Thread-601223][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:06:33,436 [DEBUG][       Thread-601223][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:06:33,438 [DEBUG][       Thread-601223][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:06:33,449 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:06:33,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:06:33,450 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:06:33,450 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:06:33,452 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:06:33,453 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:06:33,453 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:06:33,453 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:06:33,453 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.337794 -999.00   +9.50  37.50     54   +0.80 1 1 2 1 1   887    0 8.63 -0.76 ----- 37.5 37.5 18.0 53.5 12.4 -23.1 11.5 -24.0 10.8 -22.3 11.6 -22.1
2025-07-01 10:06:33,453 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:06:33,453 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:06:33,453 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.337794
2025-07-01 10:06:33,453 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:06:33,453 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:06:33,453 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:06:33,453 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:06:33,453 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:06:33,453 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:06:16', tmtdew=10.06, humidity=49.35, cloud=0.0, wind=37.95, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:06:25.402', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:06:33,454 [DEBUG][       Thread-601223][   transport.py][1871] : EOF in transport thread
2025-07-01 10:06:33,527 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:06:33,596 [DEBUG][       Thread-601226][   transport.py][1871] : starting thread (client mode): 0x81704f0
2025-07-01 10:06:33,596 [DEBUG][       Thread-601226][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:06:33,720 [DEBUG][       Thread-601226][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:06:33,720 [ INFO][       Thread-601226][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:06:33,797 [DEBUG][       Thread-601226][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:06:33,797 [DEBUG][       Thread-601226][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:06:33,797 [DEBUG][       Thread-601226][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:06:33,797 [DEBUG][       Thread-601226][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:06:33,797 [DEBUG][       Thread-601226][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:06:33,797 [DEBUG][       Thread-601226][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:06:33,797 [DEBUG][       Thread-601226][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:06:33,797 [DEBUG][       Thread-601226][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:06:33,797 [DEBUG][       Thread-601226][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:06:33,797 [DEBUG][       Thread-601226][   transport.py][1871] : client lang: <none>
2025-07-01 10:06:33,797 [DEBUG][       Thread-601226][   transport.py][1871] : server lang: <none>
2025-07-01 10:06:33,797 [DEBUG][       Thread-601226][   transport.py][1871] : kex follows: False
2025-07-01 10:06:33,797 [DEBUG][       Thread-601226][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:06:33,797 [DEBUG][       Thread-601226][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:06:33,797 [DEBUG][       Thread-601226][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:06:33,797 [DEBUG][       Thread-601226][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:06:33,797 [DEBUG][       Thread-601226][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:06:33,797 [DEBUG][       Thread-601226][   transport.py][1871] : Compression: none
2025-07-01 10:06:33,797 [DEBUG][       Thread-601226][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:06:33,933 [DEBUG][       Thread-601226][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:06:33,933 [DEBUG][       Thread-601226][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:06:33,933 [DEBUG][       Thread-601226][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:06:33,933 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:06:33,933 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:06:34,157 [DEBUG][       Thread-601226][   transport.py][1871] : userauth is OK
2025-07-01 10:06:34,157 [DEBUG][       Thread-601226][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:06:34,157 [DEBUG][       Thread-601226][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:06:34,157 [DEBUG][       Thread-601226][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:06:34,157 [DEBUG][       Thread-601226][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:06:34,260 [ INFO][       Thread-601226][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:06:34,260 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:06:34,260 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:06:35,436 [DEBUG][       Thread-601226][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:06:35,437 [DEBUG][       Thread-601226][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:06:35,572 [DEBUG][       Thread-601226][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:06:35,572 [DEBUG][       Thread-601226][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:06:35,674 [DEBUG][       Thread-601226][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:06:35,766 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:06:35,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-07-01 10:06:35,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-07-01 10:06:35,963 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:06:35,963 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:06:35,964 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:06:36,039 [DEBUG][       Thread-601226][   transport.py][1871] : EOF in transport thread
2025-07-01 10:06:37,773 [DEBUG][Thread-601228 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:06:45,974 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:06:45,975 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:06:45,975 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:06:45,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-07-01 10:06:46,458 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 6, 16), 10.06, 49.35, 0.0, 37.95, 9.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:06:46,458 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:06:16
2025-07-01 10:06:46,541 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:06:46,545 [DEBUG][       Thread-601229][   transport.py][1871] : starting thread (client mode): 0x8170d00
2025-07-01 10:06:46,545 [DEBUG][       Thread-601229][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:06:46,567 [DEBUG][       Thread-601229][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:06:46,567 [ INFO][       Thread-601229][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:06:46,570 [DEBUG][       Thread-601229][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:06:46,571 [DEBUG][       Thread-601229][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:06:46,571 [DEBUG][       Thread-601229][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:06:46,571 [DEBUG][       Thread-601229][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:06:46,571 [DEBUG][       Thread-601229][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:06:46,571 [DEBUG][       Thread-601229][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:06:46,571 [DEBUG][       Thread-601229][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:06:46,571 [DEBUG][       Thread-601229][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:06:46,571 [DEBUG][       Thread-601229][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:06:46,571 [DEBUG][       Thread-601229][   transport.py][1871] : client lang: <none>
2025-07-01 10:06:46,571 [DEBUG][       Thread-601229][   transport.py][1871] : server lang: <none>
2025-07-01 10:06:46,571 [DEBUG][       Thread-601229][   transport.py][1871] : kex follows: False
2025-07-01 10:06:46,571 [DEBUG][       Thread-601229][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:06:46,571 [DEBUG][       Thread-601229][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:06:46,571 [DEBUG][       Thread-601229][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:06:46,571 [DEBUG][       Thread-601229][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:06:46,571 [DEBUG][       Thread-601229][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:06:46,571 [DEBUG][       Thread-601229][   transport.py][1871] : Compression: none
2025-07-01 10:06:46,571 [DEBUG][       Thread-601229][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:06:46,587 [DEBUG][       Thread-601229][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:06:46,587 [DEBUG][       Thread-601229][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:06:46,588 [DEBUG][       Thread-601229][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:06:46,588 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:06:46,588 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:06:46,589 [DEBUG][       Thread-601229][   transport.py][1871] : userauth is OK
2025-07-01 10:06:46,602 [ INFO][       Thread-601229][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:06:46,603 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:06:46,814 [DEBUG][Thread-601231 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:06:47,246 [DEBUG][       Thread-601229][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:06:47,246 [DEBUG][       Thread-601229][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:06:47,289 [DEBUG][       Thread-601229][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:06:47,289 [DEBUG][       Thread-601229][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:06:47,293 [DEBUG][       Thread-601229][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:06:47,305 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:06:47,306 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:06:47,307 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:06:47,309 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:06:47,314 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:06:47,316 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:06:47,317 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:06:47,317 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:06:47,317 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.337794 -999.00   +9.50  37.50     54   +0.80 1 1 2 1 1   887    0 8.63 -0.76 ----- 37.5 37.5 18.0 53.5 12.4 -23.1 11.5 -24.0 10.8 -22.3 11.6 -22.1
2025-07-01 10:06:47,317 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:06:47,317 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:06:47,318 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.337794
2025-07-01 10:06:47,318 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:06:47,319 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:06:47,319 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:06:47,319 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:06:47,319 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:06:47,319 [DEBUG][       Thread-601229][   transport.py][1871] : EOF in transport thread
2025-07-01 10:06:47,319 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:06:16', tmtdew=10.06, humidity=49.35, cloud=0.0, wind=37.95, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:06:25.402', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:06:47,403 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:06:47,495 [DEBUG][       Thread-601233][   transport.py][1871] : starting thread (client mode): 0x83939d0
2025-07-01 10:06:47,495 [DEBUG][       Thread-601233][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:06:47,597 [DEBUG][       Thread-601233][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:06:47,598 [ INFO][       Thread-601233][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:06:47,694 [DEBUG][       Thread-601233][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:06:47,694 [DEBUG][       Thread-601233][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:06:47,694 [DEBUG][       Thread-601233][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:06:47,695 [DEBUG][       Thread-601233][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:06:47,695 [DEBUG][       Thread-601233][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:06:47,695 [DEBUG][       Thread-601233][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:06:47,695 [DEBUG][       Thread-601233][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:06:47,695 [DEBUG][       Thread-601233][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:06:47,695 [DEBUG][       Thread-601233][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:06:47,695 [DEBUG][       Thread-601233][   transport.py][1871] : client lang: <none>
2025-07-01 10:06:47,695 [DEBUG][       Thread-601233][   transport.py][1871] : server lang: <none>
2025-07-01 10:06:47,695 [DEBUG][       Thread-601233][   transport.py][1871] : kex follows: False
2025-07-01 10:06:47,695 [DEBUG][       Thread-601233][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:06:47,695 [DEBUG][       Thread-601233][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:06:47,695 [DEBUG][       Thread-601233][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:06:47,695 [DEBUG][       Thread-601233][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:06:47,695 [DEBUG][       Thread-601233][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:06:47,695 [DEBUG][       Thread-601233][   transport.py][1871] : Compression: none
2025-07-01 10:06:47,696 [DEBUG][       Thread-601233][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:06:47,809 [DEBUG][       Thread-601233][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:06:47,810 [DEBUG][       Thread-601233][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:06:47,810 [DEBUG][       Thread-601233][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:06:47,811 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:06:47,811 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:06:48,032 [DEBUG][       Thread-601233][   transport.py][1871] : userauth is OK
2025-07-01 10:06:48,032 [DEBUG][       Thread-601233][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:06:48,032 [DEBUG][       Thread-601233][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:06:48,033 [DEBUG][       Thread-601233][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:06:48,033 [DEBUG][       Thread-601233][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:06:48,094 [ INFO][       Thread-601233][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:06:48,095 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:06:48,095 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:06:49,220 [DEBUG][       Thread-601233][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:06:49,220 [DEBUG][       Thread-601233][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:06:49,358 [DEBUG][       Thread-601233][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:06:49,358 [DEBUG][       Thread-601233][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:06:49,471 [DEBUG][       Thread-601233][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:06:49,580 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:06:49,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-07-01 10:06:49,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-07-01 10:06:49,776 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:06:49,776 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:06:49,776 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:06:49,876 [DEBUG][       Thread-601233][   transport.py][1871] : EOF in transport thread
2025-07-01 10:06:55,836 [DEBUG][Thread-601235 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:06:56,483 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:06:56,484 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:06:59,786 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:06:59,786 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:06:59,786 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:06:59,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-07-01 10:07:00,266 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 6, 48), 10.0, 49.57, 0.0, 35.06, 9.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:07:00,266 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:06:48
2025-07-01 10:07:00,349 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:07:00,363 [DEBUG][       Thread-601236][   transport.py][1871] : starting thread (client mode): 0x82b3910
2025-07-01 10:07:00,363 [DEBUG][       Thread-601236][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:07:00,379 [DEBUG][       Thread-601236][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:07:00,379 [ INFO][       Thread-601236][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:07:00,383 [DEBUG][       Thread-601236][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:07:00,383 [DEBUG][       Thread-601236][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:07:00,384 [DEBUG][       Thread-601236][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:07:00,384 [DEBUG][       Thread-601236][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:07:00,384 [DEBUG][       Thread-601236][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:07:00,384 [DEBUG][       Thread-601236][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:07:00,384 [DEBUG][       Thread-601236][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:07:00,384 [DEBUG][       Thread-601236][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:07:00,384 [DEBUG][       Thread-601236][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:07:00,384 [DEBUG][       Thread-601236][   transport.py][1871] : client lang: <none>
2025-07-01 10:07:00,384 [DEBUG][       Thread-601236][   transport.py][1871] : server lang: <none>
2025-07-01 10:07:00,384 [DEBUG][       Thread-601236][   transport.py][1871] : kex follows: False
2025-07-01 10:07:00,384 [DEBUG][       Thread-601236][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:07:00,384 [DEBUG][       Thread-601236][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:07:00,384 [DEBUG][       Thread-601236][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:07:00,384 [DEBUG][       Thread-601236][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:07:00,384 [DEBUG][       Thread-601236][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:07:00,384 [DEBUG][       Thread-601236][   transport.py][1871] : Compression: none
2025-07-01 10:07:00,384 [DEBUG][       Thread-601236][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:07:00,398 [DEBUG][       Thread-601236][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:07:00,398 [DEBUG][       Thread-601236][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:07:00,399 [DEBUG][       Thread-601236][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:07:00,399 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:07:00,399 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:07:00,400 [DEBUG][       Thread-601236][   transport.py][1871] : userauth is OK
2025-07-01 10:07:00,424 [ INFO][       Thread-601236][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:07:00,425 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:07:01,236 [DEBUG][       Thread-601236][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:07:01,237 [DEBUG][       Thread-601236][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:07:01,281 [DEBUG][       Thread-601236][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:07:01,281 [DEBUG][       Thread-601236][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:07:01,284 [DEBUG][       Thread-601236][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:07:01,297 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:07:01,297 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:07:01,299 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:07:01,301 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:07:01,306 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:07:01,308 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:07:01,309 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:07:01,309 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:07:01,309 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.337794 -999.00   +9.50  37.50     54   +0.80 1 1 2 1 1   887    0 8.63 -0.76 ----- 37.5 37.5 18.0 53.5 12.4 -23.1 11.5 -24.0 10.8 -22.3 11.6 -22.1
2025-07-01 10:07:01,309 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:07:01,310 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:07:01,310 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.337794
2025-07-01 10:07:01,310 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:07:01,311 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:07:01,311 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:07:01,311 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:07:01,311 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:07:01,311 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:06:48', tmtdew=10.0, humidity=49.57, cloud=0.0, wind=35.06, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:06:25.402', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:07:01,311 [DEBUG][       Thread-601236][   transport.py][1871] : EOF in transport thread
2025-07-01 10:07:01,387 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:07:01,489 [DEBUG][       Thread-601239][   transport.py][1871] : starting thread (client mode): 0x81a73d0
2025-07-01 10:07:01,489 [DEBUG][       Thread-601239][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:07:01,599 [DEBUG][       Thread-601239][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:07:01,599 [ INFO][       Thread-601239][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:07:01,690 [DEBUG][       Thread-601239][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:07:01,690 [DEBUG][       Thread-601239][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:07:01,690 [DEBUG][       Thread-601239][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:07:01,690 [DEBUG][       Thread-601239][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:07:01,690 [DEBUG][       Thread-601239][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:07:01,690 [DEBUG][       Thread-601239][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:07:01,691 [DEBUG][       Thread-601239][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:07:01,691 [DEBUG][       Thread-601239][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:07:01,691 [DEBUG][       Thread-601239][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:07:01,691 [DEBUG][       Thread-601239][   transport.py][1871] : client lang: <none>
2025-07-01 10:07:01,691 [DEBUG][       Thread-601239][   transport.py][1871] : server lang: <none>
2025-07-01 10:07:01,691 [DEBUG][       Thread-601239][   transport.py][1871] : kex follows: False
2025-07-01 10:07:01,691 [DEBUG][       Thread-601239][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:07:01,691 [DEBUG][       Thread-601239][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:07:01,691 [DEBUG][       Thread-601239][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:07:01,691 [DEBUG][       Thread-601239][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:07:01,691 [DEBUG][       Thread-601239][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:07:01,691 [DEBUG][       Thread-601239][   transport.py][1871] : Compression: none
2025-07-01 10:07:01,691 [DEBUG][       Thread-601239][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:07:01,848 [DEBUG][       Thread-601239][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:07:01,848 [DEBUG][       Thread-601239][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:07:01,849 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:07:01,849 [DEBUG][       Thread-601239][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:07:01,850 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:07:02,115 [DEBUG][       Thread-601239][   transport.py][1871] : userauth is OK
2025-07-01 10:07:02,115 [DEBUG][       Thread-601239][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:07:02,115 [DEBUG][       Thread-601239][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:07:02,115 [DEBUG][       Thread-601239][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:07:02,115 [DEBUG][       Thread-601239][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:07:02,213 [ INFO][       Thread-601239][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:07:02,213 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:07:02,214 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:07:03,300 [DEBUG][       Thread-601239][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:07:03,300 [DEBUG][       Thread-601239][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:07:03,395 [DEBUG][       Thread-601239][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:07:03,396 [DEBUG][       Thread-601239][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:07:03,476 [DEBUG][       Thread-601239][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:07:03,555 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:07:03,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-07-01 10:07:03,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-07-01 10:07:03,717 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:07:03,717 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:07:03,717 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:07:03,816 [DEBUG][       Thread-601239][   transport.py][1871] : EOF in transport thread
2025-07-01 10:07:04,859 [DEBUG][Thread-601241 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:07:13,728 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:07:13,728 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:07:13,728 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:07:13,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-07-01 10:07:13,890 [DEBUG][Thread-601242 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:07:14,205 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 6, 48), 10.0, 49.57, 0.0, 35.06, 9.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:07:14,205 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:06:48
2025-07-01 10:07:14,289 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:07:14,292 [DEBUG][       Thread-601243][   transport.py][1871] : starting thread (client mode): 0x82b17e0
2025-07-01 10:07:14,292 [DEBUG][       Thread-601243][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:07:14,313 [DEBUG][       Thread-601243][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:07:14,313 [ INFO][       Thread-601243][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:07:14,315 [DEBUG][       Thread-601243][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:07:14,315 [DEBUG][       Thread-601243][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:07:14,315 [DEBUG][       Thread-601243][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:07:14,315 [DEBUG][       Thread-601243][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:07:14,315 [DEBUG][       Thread-601243][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:07:14,315 [DEBUG][       Thread-601243][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:07:14,315 [DEBUG][       Thread-601243][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:07:14,315 [DEBUG][       Thread-601243][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:07:14,315 [DEBUG][       Thread-601243][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:07:14,315 [DEBUG][       Thread-601243][   transport.py][1871] : client lang: <none>
2025-07-01 10:07:14,315 [DEBUG][       Thread-601243][   transport.py][1871] : server lang: <none>
2025-07-01 10:07:14,315 [DEBUG][       Thread-601243][   transport.py][1871] : kex follows: False
2025-07-01 10:07:14,315 [DEBUG][       Thread-601243][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:07:14,315 [DEBUG][       Thread-601243][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:07:14,315 [DEBUG][       Thread-601243][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:07:14,315 [DEBUG][       Thread-601243][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:07:14,315 [DEBUG][       Thread-601243][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:07:14,315 [DEBUG][       Thread-601243][   transport.py][1871] : Compression: none
2025-07-01 10:07:14,315 [DEBUG][       Thread-601243][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:07:14,332 [DEBUG][       Thread-601243][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:07:14,332 [DEBUG][       Thread-601243][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:07:14,332 [DEBUG][       Thread-601243][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:07:14,333 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:07:14,333 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:07:14,334 [DEBUG][       Thread-601243][   transport.py][1871] : userauth is OK
2025-07-01 10:07:14,358 [ INFO][       Thread-601243][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:07:14,359 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:07:14,904 [DEBUG][       Thread-601243][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:07:14,905 [DEBUG][       Thread-601243][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:07:14,949 [DEBUG][       Thread-601243][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:07:14,949 [DEBUG][       Thread-601243][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:07:14,953 [DEBUG][       Thread-601243][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:07:14,965 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:07:14,965 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:07:14,969 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:07:14,973 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:07:14,978 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:07:14,980 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:07:14,980 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:07:14,981 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:07:14,981 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.338141 -999.00   +9.50  35.55     54   +0.80 1 1 2 1 1   887    0 8.62 -1.67 ----- 35.5 35.5 18.3 51.2 12.5 -23.5 11.6 -24.1 10.8 -22.2 11.7 -21.6
2025-07-01 10:07:14,981 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:07:14,981 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:07:14,981 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.338141
2025-07-01 10:07:14,982 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:07:14,982 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:07:14,982 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:07:14,983 [DEBUG][       Thread-601243][   transport.py][1871] : EOF in transport thread
2025-07-01 10:07:14,983 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:07:14,983 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:07:14,983 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:06:48', tmtdew=10.0, humidity=49.57, cloud=0.0, wind=35.06, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:06:55.382', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:07:15,066 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:07:15,177 [DEBUG][       Thread-601246][   transport.py][1871] : starting thread (client mode): 0x83c8460
2025-07-01 10:07:15,177 [DEBUG][       Thread-601246][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:07:15,240 [DEBUG][       Thread-601246][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:07:15,240 [ INFO][       Thread-601246][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:07:15,326 [DEBUG][       Thread-601246][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:07:15,326 [DEBUG][       Thread-601246][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:07:15,326 [DEBUG][       Thread-601246][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:07:15,326 [DEBUG][       Thread-601246][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:07:15,326 [DEBUG][       Thread-601246][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:07:15,326 [DEBUG][       Thread-601246][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:07:15,326 [DEBUG][       Thread-601246][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:07:15,326 [DEBUG][       Thread-601246][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:07:15,326 [DEBUG][       Thread-601246][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:07:15,326 [DEBUG][       Thread-601246][   transport.py][1871] : client lang: <none>
2025-07-01 10:07:15,327 [DEBUG][       Thread-601246][   transport.py][1871] : server lang: <none>
2025-07-01 10:07:15,327 [DEBUG][       Thread-601246][   transport.py][1871] : kex follows: False
2025-07-01 10:07:15,327 [DEBUG][       Thread-601246][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:07:15,327 [DEBUG][       Thread-601246][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:07:15,327 [DEBUG][       Thread-601246][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:07:15,327 [DEBUG][       Thread-601246][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:07:15,327 [DEBUG][       Thread-601246][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:07:15,327 [DEBUG][       Thread-601246][   transport.py][1871] : Compression: none
2025-07-01 10:07:15,327 [DEBUG][       Thread-601246][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:07:15,462 [DEBUG][       Thread-601246][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:07:15,462 [DEBUG][       Thread-601246][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:07:15,463 [DEBUG][       Thread-601246][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:07:15,463 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:07:15,464 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:07:15,675 [DEBUG][       Thread-601246][   transport.py][1871] : userauth is OK
2025-07-01 10:07:15,676 [DEBUG][       Thread-601246][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:07:15,676 [DEBUG][       Thread-601246][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:07:15,676 [DEBUG][       Thread-601246][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:07:15,676 [DEBUG][       Thread-601246][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:07:15,812 [ INFO][       Thread-601246][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:07:15,813 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:07:15,813 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:07:16,943 [DEBUG][       Thread-601246][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:07:16,943 [DEBUG][       Thread-601246][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:07:17,051 [DEBUG][       Thread-601246][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:07:17,051 [DEBUG][       Thread-601246][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:07:17,150 [DEBUG][       Thread-601246][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:07:17,262 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:07:17,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-07-01 10:07:17,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-07-01 10:07:17,544 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:07:17,544 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:07:17,545 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:07:17,644 [DEBUG][       Thread-601246][   transport.py][1871] : EOF in transport thread
2025-07-01 10:07:22,259 [DEBUG][Thread-601248 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:07:22,910 [DEBUG][Thread-601249 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:07:27,555 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:07:27,556 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:07:27,556 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:07:27,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-07-01 10:07:28,029 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 7, 20), 10.04, 49.55, 0.0, 39.95, 9.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:07:28,029 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:07:20
2025-07-01 10:07:28,112 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:07:28,117 [DEBUG][       Thread-601250][   transport.py][1871] : starting thread (client mode): 0x75a8d30
2025-07-01 10:07:28,117 [DEBUG][       Thread-601250][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:07:28,136 [DEBUG][       Thread-601250][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:07:28,136 [ INFO][       Thread-601250][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:07:28,139 [DEBUG][       Thread-601250][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:07:28,140 [DEBUG][       Thread-601250][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:07:28,140 [DEBUG][       Thread-601250][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:07:28,140 [DEBUG][       Thread-601250][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:07:28,140 [DEBUG][       Thread-601250][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:07:28,140 [DEBUG][       Thread-601250][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:07:28,140 [DEBUG][       Thread-601250][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:07:28,140 [DEBUG][       Thread-601250][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:07:28,140 [DEBUG][       Thread-601250][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:07:28,140 [DEBUG][       Thread-601250][   transport.py][1871] : client lang: <none>
2025-07-01 10:07:28,140 [DEBUG][       Thread-601250][   transport.py][1871] : server lang: <none>
2025-07-01 10:07:28,140 [DEBUG][       Thread-601250][   transport.py][1871] : kex follows: False
2025-07-01 10:07:28,140 [DEBUG][       Thread-601250][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:07:28,140 [DEBUG][       Thread-601250][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:07:28,140 [DEBUG][       Thread-601250][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:07:28,140 [DEBUG][       Thread-601250][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:07:28,140 [DEBUG][       Thread-601250][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:07:28,140 [DEBUG][       Thread-601250][   transport.py][1871] : Compression: none
2025-07-01 10:07:28,140 [DEBUG][       Thread-601250][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:07:28,148 [DEBUG][       Thread-601250][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:07:28,149 [DEBUG][       Thread-601250][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:07:28,149 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:07:28,149 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:07:28,150 [DEBUG][       Thread-601250][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:07:28,150 [DEBUG][       Thread-601250][   transport.py][1871] : userauth is OK
2025-07-01 10:07:28,163 [ INFO][       Thread-601250][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:07:28,163 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:07:28,828 [DEBUG][       Thread-601250][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:07:28,828 [DEBUG][       Thread-601250][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:07:28,869 [DEBUG][       Thread-601250][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:07:28,869 [DEBUG][       Thread-601250][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:07:28,872 [DEBUG][       Thread-601250][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:07:28,884 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:07:28,884 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:07:28,886 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:07:28,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:07:28,893 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:07:28,895 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:07:28,895 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:07:28,896 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:07:28,896 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.338141 -999.00   +9.50  35.55     54   +0.80 1 1 2 1 1   887    0 8.62 -1.67 ----- 35.5 35.5 18.3 51.2 12.5 -23.5 11.6 -24.1 10.8 -22.2 11.7 -21.6
2025-07-01 10:07:28,896 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:07:28,896 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:07:28,896 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.338141
2025-07-01 10:07:28,897 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:07:28,897 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:07:28,897 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:07:28,897 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:07:28,897 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:07:28,898 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:07:20', tmtdew=10.04, humidity=49.55, cloud=0.0, wind=39.95, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:06:55.382', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:07:28,898 [DEBUG][       Thread-601250][   transport.py][1871] : EOF in transport thread
2025-07-01 10:07:28,971 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:07:29,089 [DEBUG][       Thread-601253][   transport.py][1871] : starting thread (client mode): 0x81a4c40
2025-07-01 10:07:29,089 [DEBUG][       Thread-601253][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:07:29,224 [DEBUG][       Thread-601253][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:07:29,224 [ INFO][       Thread-601253][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:07:29,307 [DEBUG][       Thread-601253][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:07:29,307 [DEBUG][       Thread-601253][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:07:29,308 [DEBUG][       Thread-601253][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:07:29,308 [DEBUG][       Thread-601253][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:07:29,308 [DEBUG][       Thread-601253][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:07:29,308 [DEBUG][       Thread-601253][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:07:29,308 [DEBUG][       Thread-601253][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:07:29,308 [DEBUG][       Thread-601253][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:07:29,308 [DEBUG][       Thread-601253][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:07:29,308 [DEBUG][       Thread-601253][   transport.py][1871] : client lang: <none>
2025-07-01 10:07:29,308 [DEBUG][       Thread-601253][   transport.py][1871] : server lang: <none>
2025-07-01 10:07:29,308 [DEBUG][       Thread-601253][   transport.py][1871] : kex follows: False
2025-07-01 10:07:29,308 [DEBUG][       Thread-601253][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:07:29,308 [DEBUG][       Thread-601253][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:07:29,308 [DEBUG][       Thread-601253][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:07:29,308 [DEBUG][       Thread-601253][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:07:29,309 [DEBUG][       Thread-601253][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:07:29,309 [DEBUG][       Thread-601253][   transport.py][1871] : Compression: none
2025-07-01 10:07:29,309 [DEBUG][       Thread-601253][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:07:29,443 [DEBUG][       Thread-601253][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:07:29,444 [DEBUG][       Thread-601253][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:07:29,445 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:07:29,445 [DEBUG][       Thread-601253][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:07:29,446 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:07:29,721 [DEBUG][       Thread-601253][   transport.py][1871] : userauth is OK
2025-07-01 10:07:29,722 [DEBUG][       Thread-601253][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:07:29,722 [DEBUG][       Thread-601253][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:07:29,722 [DEBUG][       Thread-601253][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:07:29,722 [DEBUG][       Thread-601253][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:07:29,868 [ INFO][       Thread-601253][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:07:29,868 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:07:29,869 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:07:30,926 [DEBUG][       Thread-601253][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:07:30,926 [DEBUG][       Thread-601253][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:07:31,094 [DEBUG][       Thread-601253][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:07:31,094 [DEBUG][       Thread-601253][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:07:31,152 [DEBUG][       Thread-601253][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:07:31,264 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:07:31,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')
2025-07-01 10:07: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-07-01 10:07:31,458 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:07:31,458 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:07:31,459 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:07:31,553 [DEBUG][       Thread-601253][   transport.py][1871] : EOF in transport thread
2025-07-01 10:07:31,932 [DEBUG][Thread-601255 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:07:40,965 [DEBUG][Thread-601256 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:07:41,468 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:07:41,468 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:07:41,468 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:07:41,468 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:07:41,968 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 7, 20), 10.04, 49.55, 0.0, 39.95, 9.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:07:41,968 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:07:20
2025-07-01 10:07:42,051 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:07:42,055 [DEBUG][       Thread-601257][   transport.py][1871] : starting thread (client mode): 0x75ab070
2025-07-01 10:07:42,055 [DEBUG][       Thread-601257][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:07:42,068 [DEBUG][       Thread-601257][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:07:42,068 [ INFO][       Thread-601257][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:07:42,069 [DEBUG][       Thread-601257][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:07:42,069 [DEBUG][       Thread-601257][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:07:42,069 [DEBUG][       Thread-601257][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:07:42,069 [DEBUG][       Thread-601257][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:07:42,069 [DEBUG][       Thread-601257][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:07:42,069 [DEBUG][       Thread-601257][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:07:42,069 [DEBUG][       Thread-601257][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:07:42,069 [DEBUG][       Thread-601257][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:07:42,069 [DEBUG][       Thread-601257][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:07:42,069 [DEBUG][       Thread-601257][   transport.py][1871] : client lang: <none>
2025-07-01 10:07:42,069 [DEBUG][       Thread-601257][   transport.py][1871] : server lang: <none>
2025-07-01 10:07:42,069 [DEBUG][       Thread-601257][   transport.py][1871] : kex follows: False
2025-07-01 10:07:42,069 [DEBUG][       Thread-601257][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:07:42,069 [DEBUG][       Thread-601257][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:07:42,069 [DEBUG][       Thread-601257][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:07:42,069 [DEBUG][       Thread-601257][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:07:42,069 [DEBUG][       Thread-601257][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:07:42,069 [DEBUG][       Thread-601257][   transport.py][1871] : Compression: none
2025-07-01 10:07:42,069 [DEBUG][       Thread-601257][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:07:42,079 [DEBUG][       Thread-601257][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:07:42,079 [DEBUG][       Thread-601257][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:07:42,079 [DEBUG][       Thread-601257][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:07:42,079 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:07:42,079 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:07:42,080 [DEBUG][       Thread-601257][   transport.py][1871] : userauth is OK
2025-07-01 10:07:42,092 [ INFO][       Thread-601257][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:07:42,093 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:07:42,734 [DEBUG][       Thread-601257][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:07:42,734 [DEBUG][       Thread-601257][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:07:42,776 [DEBUG][       Thread-601257][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:07:42,777 [DEBUG][       Thread-601257][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:07:42,779 [DEBUG][       Thread-601257][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:07:42,792 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:07:42,792 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:07:42,793 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:07:42,794 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:07:42,796 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:07:42,797 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:07:42,797 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:07:42,798 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:07:42,798 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.338488 -999.00   +9.50  39.15     54   +0.80 1 2 2 1 1   887    0 8.75 -2.76 ----- 39.1 39.1 22.8 58.3 12.5 -23.6 11.6 -23.4 10.8 -21.9 11.7 -21.4
2025-07-01 10:07:42,798 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:07:42,798 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:07:42,798 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.338488
2025-07-01 10:07:42,798 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:07:42,798 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:07:42,798 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:07:42,798 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:07:42,798 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:07:42,798 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:07:20', tmtdew=10.04, humidity=49.55, cloud=0.0, wind=39.95, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:07:25.363', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:07:42,798 [DEBUG][       Thread-601257][   transport.py][1871] : EOF in transport thread
2025-07-01 10:07:42,870 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:07:43,261 [DEBUG][       Thread-601260][   transport.py][1871] : starting thread (client mode): 0x81570d0
2025-07-01 10:07:43,262 [DEBUG][       Thread-601260][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:07:43,671 [DEBUG][       Thread-601260][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:07:43,672 [ INFO][       Thread-601260][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:07:43,966 [DEBUG][       Thread-601260][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:07:43,966 [DEBUG][       Thread-601260][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:07:43,966 [DEBUG][       Thread-601260][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:07:43,966 [DEBUG][       Thread-601260][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:07:43,966 [DEBUG][       Thread-601260][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:07:43,966 [DEBUG][       Thread-601260][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:07:43,966 [DEBUG][       Thread-601260][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:07:43,966 [DEBUG][       Thread-601260][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:07:43,967 [DEBUG][       Thread-601260][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:07:43,967 [DEBUG][       Thread-601260][   transport.py][1871] : client lang: <none>
2025-07-01 10:07:43,967 [DEBUG][       Thread-601260][   transport.py][1871] : server lang: <none>
2025-07-01 10:07:43,967 [DEBUG][       Thread-601260][   transport.py][1871] : kex follows: False
2025-07-01 10:07:43,967 [DEBUG][       Thread-601260][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:07:43,967 [DEBUG][       Thread-601260][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:07:43,967 [DEBUG][       Thread-601260][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:07:43,967 [DEBUG][       Thread-601260][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:07:43,967 [DEBUG][       Thread-601260][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:07:43,967 [DEBUG][       Thread-601260][   transport.py][1871] : Compression: none
2025-07-01 10:07:43,967 [DEBUG][       Thread-601260][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:07:44,142 [DEBUG][       Thread-601260][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:07:44,143 [DEBUG][       Thread-601260][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:07:44,143 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:07:44,144 [DEBUG][       Thread-601260][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:07:44,145 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:07:44,500 [DEBUG][       Thread-601260][   transport.py][1871] : userauth is OK
2025-07-01 10:07:44,500 [DEBUG][       Thread-601260][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:07:44,500 [DEBUG][       Thread-601260][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:07:44,500 [DEBUG][       Thread-601260][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:07:44,500 [DEBUG][       Thread-601260][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:07:44,621 [ INFO][       Thread-601260][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:07:44,622 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:07:44,622 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:07:45,726 [DEBUG][       Thread-601260][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:07:45,726 [DEBUG][       Thread-601260][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:07:46,230 [DEBUG][       Thread-601260][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:07:46,231 [DEBUG][       Thread-601260][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:07:46,327 [DEBUG][       Thread-601260][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:07:46,498 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:07:46,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-07-01 10:07:46,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') -> 00000000
2025-07-01 10:07:46,642 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:07:46,643 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:07:46,643 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:07:46,742 [DEBUG][       Thread-601260][   transport.py][1871] : EOF in transport thread
2025-07-01 10:07:49,983 [DEBUG][Thread-601262 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:07:56,620 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:07:56,622 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:07:56,649 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:07:56,649 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:07:56,649 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:07:56,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-07-01 10:07:57,133 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 7, 52), 10.05, 49.51, 0.0, 38.98, 9.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:07:57,133 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:07:52
2025-07-01 10:07:57,217 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:07:57,221 [DEBUG][       Thread-601263][   transport.py][1871] : starting thread (client mode): 0x75ab880
2025-07-01 10:07:57,221 [DEBUG][       Thread-601263][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:07:57,241 [DEBUG][       Thread-601263][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:07:57,241 [ INFO][       Thread-601263][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:07:57,245 [DEBUG][       Thread-601263][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:07:57,245 [DEBUG][       Thread-601263][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:07:57,245 [DEBUG][       Thread-601263][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:07:57,245 [DEBUG][       Thread-601263][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:07:57,245 [DEBUG][       Thread-601263][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:07:57,245 [DEBUG][       Thread-601263][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:07:57,245 [DEBUG][       Thread-601263][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:07:57,245 [DEBUG][       Thread-601263][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:07:57,245 [DEBUG][       Thread-601263][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:07:57,245 [DEBUG][       Thread-601263][   transport.py][1871] : client lang: <none>
2025-07-01 10:07:57,245 [DEBUG][       Thread-601263][   transport.py][1871] : server lang: <none>
2025-07-01 10:07:57,245 [DEBUG][       Thread-601263][   transport.py][1871] : kex follows: False
2025-07-01 10:07:57,245 [DEBUG][       Thread-601263][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:07:57,245 [DEBUG][       Thread-601263][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:07:57,245 [DEBUG][       Thread-601263][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:07:57,245 [DEBUG][       Thread-601263][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:07:57,245 [DEBUG][       Thread-601263][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:07:57,245 [DEBUG][       Thread-601263][   transport.py][1871] : Compression: none
2025-07-01 10:07:57,245 [DEBUG][       Thread-601263][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:07:57,260 [DEBUG][       Thread-601263][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:07:57,261 [DEBUG][       Thread-601263][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:07:57,261 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:07:57,261 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:07:57,262 [DEBUG][       Thread-601263][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:07:57,262 [DEBUG][       Thread-601263][   transport.py][1871] : userauth is OK
2025-07-01 10:07:57,287 [ INFO][       Thread-601263][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:07:57,288 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:07:57,938 [DEBUG][       Thread-601263][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:07:57,938 [DEBUG][       Thread-601263][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:07:57,981 [DEBUG][       Thread-601263][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:07:57,981 [DEBUG][       Thread-601263][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:07:57,984 [DEBUG][       Thread-601263][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:07:57,998 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:07:57,999 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:07:58,001 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:07:58,002 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:07:58,008 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:07:58,009 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:07:58,009 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:07:58,010 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:07:58,010 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.338488 -999.00   +9.50  39.15     54   +0.80 1 2 2 1 1   887    0 8.75 -2.76 ----- 39.1 39.1 22.8 58.3 12.5 -23.6 11.6 -23.4 10.8 -21.9 11.7 -21.4
2025-07-01 10:07:58,010 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:07:58,010 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:07:58,010 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.338488
2025-07-01 10:07:58,011 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:07:58,011 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:07:58,011 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:07:58,011 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:07:58,011 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:07:58,012 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:07:52', tmtdew=10.05, humidity=49.51, cloud=0.0, wind=38.98, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:07:25.363', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:07:58,012 [DEBUG][       Thread-601263][   transport.py][1871] : EOF in transport thread
2025-07-01 10:07:58,098 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:07:58,187 [DEBUG][       Thread-601266][   transport.py][1871] : starting thread (client mode): 0x8170d60
2025-07-01 10:07:58,188 [DEBUG][       Thread-601266][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:07:58,301 [DEBUG][       Thread-601266][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:07:58,301 [ INFO][       Thread-601266][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:07:58,400 [DEBUG][       Thread-601266][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:07:58,400 [DEBUG][       Thread-601266][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:07:58,400 [DEBUG][       Thread-601266][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:07:58,400 [DEBUG][       Thread-601266][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:07:58,400 [DEBUG][       Thread-601266][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:07:58,400 [DEBUG][       Thread-601266][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:07:58,400 [DEBUG][       Thread-601266][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:07:58,400 [DEBUG][       Thread-601266][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:07:58,400 [DEBUG][       Thread-601266][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:07:58,400 [DEBUG][       Thread-601266][   transport.py][1871] : client lang: <none>
2025-07-01 10:07:58,400 [DEBUG][       Thread-601266][   transport.py][1871] : server lang: <none>
2025-07-01 10:07:58,400 [DEBUG][       Thread-601266][   transport.py][1871] : kex follows: False
2025-07-01 10:07:58,400 [DEBUG][       Thread-601266][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:07:58,400 [DEBUG][       Thread-601266][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:07:58,400 [DEBUG][       Thread-601266][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:07:58,400 [DEBUG][       Thread-601266][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:07:58,400 [DEBUG][       Thread-601266][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:07:58,400 [DEBUG][       Thread-601266][   transport.py][1871] : Compression: none
2025-07-01 10:07:58,400 [DEBUG][       Thread-601266][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:07:58,511 [DEBUG][       Thread-601266][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:07:58,511 [DEBUG][       Thread-601266][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:07:58,512 [DEBUG][       Thread-601266][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:07:58,512 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:07:58,513 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:07:58,714 [DEBUG][       Thread-601266][   transport.py][1871] : userauth is OK
2025-07-01 10:07:58,714 [DEBUG][       Thread-601266][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:07:58,714 [DEBUG][       Thread-601266][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:07:58,714 [DEBUG][       Thread-601266][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:07:58,714 [DEBUG][       Thread-601266][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:07:58,822 [ INFO][       Thread-601266][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:07:58,822 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:07:58,823 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:07:59,015 [DEBUG][Thread-601268 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:07:59,849 [DEBUG][       Thread-601266][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:07:59,850 [DEBUG][       Thread-601266][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:07:59,988 [DEBUG][       Thread-601266][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:07:59,989 [DEBUG][       Thread-601266][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:08:00,072 [DEBUG][       Thread-601266][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:08:00,172 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:08:00,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-07-01 10:08:00,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-07-01 10:08:00,355 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:08:00,355 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:08:00,356 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:08:00,455 [DEBUG][       Thread-601266][   transport.py][1871] : EOF in transport thread
2025-07-01 10:08:08,058 [DEBUG][Thread-601269 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:08:10,366 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:08:10,367 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:08:10,367 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:08:10,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-07-01 10:08:10,839 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 7, 52), 10.05, 49.51, 0.0, 38.98, 9.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:08:10,839 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:07:52
2025-07-01 10:08:10,923 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:08:10,928 [DEBUG][       Thread-601270][   transport.py][1871] : starting thread (client mode): 0x81706d0
2025-07-01 10:08:10,928 [DEBUG][       Thread-601270][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:08:10,950 [DEBUG][       Thread-601270][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:08:10,950 [ INFO][       Thread-601270][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:08:10,953 [DEBUG][       Thread-601270][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:08:10,953 [DEBUG][       Thread-601270][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:08:10,953 [DEBUG][       Thread-601270][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:08:10,953 [DEBUG][       Thread-601270][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:08:10,953 [DEBUG][       Thread-601270][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:08:10,953 [DEBUG][       Thread-601270][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:08:10,954 [DEBUG][       Thread-601270][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:08:10,954 [DEBUG][       Thread-601270][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:08:10,954 [DEBUG][       Thread-601270][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:08:10,954 [DEBUG][       Thread-601270][   transport.py][1871] : client lang: <none>
2025-07-01 10:08:10,954 [DEBUG][       Thread-601270][   transport.py][1871] : server lang: <none>
2025-07-01 10:08:10,954 [DEBUG][       Thread-601270][   transport.py][1871] : kex follows: False
2025-07-01 10:08:10,954 [DEBUG][       Thread-601270][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:08:10,954 [DEBUG][       Thread-601270][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:08:10,954 [DEBUG][       Thread-601270][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:08:10,954 [DEBUG][       Thread-601270][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:08:10,954 [DEBUG][       Thread-601270][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:08:10,954 [DEBUG][       Thread-601270][   transport.py][1871] : Compression: none
2025-07-01 10:08:10,954 [DEBUG][       Thread-601270][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:08:10,971 [DEBUG][       Thread-601270][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:08:10,972 [DEBUG][       Thread-601270][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:08:10,972 [DEBUG][       Thread-601270][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:08:10,973 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:08:10,973 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:08:10,974 [DEBUG][       Thread-601270][   transport.py][1871] : userauth is OK
2025-07-01 10:08:10,987 [ INFO][       Thread-601270][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:08:10,988 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:08:11,633 [DEBUG][       Thread-601270][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:08:11,634 [DEBUG][       Thread-601270][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:08:11,677 [DEBUG][       Thread-601270][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:08:11,677 [DEBUG][       Thread-601270][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:08:11,680 [DEBUG][       Thread-601270][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:08:11,692 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:08:11,693 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:08:11,695 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:08:11,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:08:11,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:08:11,704 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:08:11,705 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:08:11,705 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:08:11,705 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.338488 -999.00   +9.50  39.15     54   +0.80 1 2 2 1 1   887    0 8.75 -2.76 ----- 39.1 39.1 22.8 58.3 12.5 -23.6 11.6 -23.4 10.8 -21.9 11.7 -21.4
2025-07-01 10:08:11,705 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:08:11,706 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:08:11,706 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.338488
2025-07-01 10:08:11,706 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:08:11,707 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:08:11,707 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:08:11,707 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:08:11,707 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:08:11,707 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:07:52', tmtdew=10.05, humidity=49.51, cloud=0.0, wind=38.98, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:07:25.363', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:08:11,707 [DEBUG][       Thread-601270][   transport.py][1871] : EOF in transport thread
2025-07-01 10:08:11,791 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:08:12,182 [DEBUG][       Thread-601273][   transport.py][1871] : starting thread (client mode): 0x83c8460
2025-07-01 10:08:12,182 [DEBUG][       Thread-601273][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:08:12,226 [DEBUG][       Thread-601273][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:08:12,226 [ INFO][       Thread-601273][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:08:12,309 [DEBUG][       Thread-601273][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:08:12,309 [DEBUG][       Thread-601273][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:08:12,309 [DEBUG][       Thread-601273][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:08:12,309 [DEBUG][       Thread-601273][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:08:12,309 [DEBUG][       Thread-601273][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:08:12,309 [DEBUG][       Thread-601273][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:08:12,310 [DEBUG][       Thread-601273][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:08:12,310 [DEBUG][       Thread-601273][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:08:12,310 [DEBUG][       Thread-601273][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:08:12,310 [DEBUG][       Thread-601273][   transport.py][1871] : client lang: <none>
2025-07-01 10:08:12,310 [DEBUG][       Thread-601273][   transport.py][1871] : server lang: <none>
2025-07-01 10:08:12,310 [DEBUG][       Thread-601273][   transport.py][1871] : kex follows: False
2025-07-01 10:08:12,310 [DEBUG][       Thread-601273][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:08:12,310 [DEBUG][       Thread-601273][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:08:12,310 [DEBUG][       Thread-601273][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:08:12,310 [DEBUG][       Thread-601273][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:08:12,310 [DEBUG][       Thread-601273][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:08:12,310 [DEBUG][       Thread-601273][   transport.py][1871] : Compression: none
2025-07-01 10:08:12,311 [DEBUG][       Thread-601273][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:08:12,416 [DEBUG][       Thread-601273][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:08:12,417 [DEBUG][       Thread-601273][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:08:12,417 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:08:12,418 [DEBUG][       Thread-601273][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:08:12,419 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:08:12,665 [DEBUG][       Thread-601273][   transport.py][1871] : userauth is OK
2025-07-01 10:08:12,666 [DEBUG][       Thread-601273][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:08:12,666 [DEBUG][       Thread-601273][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:08:12,666 [DEBUG][       Thread-601273][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:08:12,666 [DEBUG][       Thread-601273][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:08:12,788 [ INFO][       Thread-601273][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:08:12,789 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:08:12,789 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:08:13,863 [DEBUG][       Thread-601273][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:08:13,863 [DEBUG][       Thread-601273][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:08:14,052 [DEBUG][       Thread-601273][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:08:14,052 [DEBUG][       Thread-601273][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:08:14,154 [DEBUG][       Thread-601273][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:08:14,254 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:08:14,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-07-01 10:08:14,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-07-01 10:08:14,457 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:08:14,457 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:08:14,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:08:14,557 [DEBUG][       Thread-601273][   transport.py][1871] : EOF in transport thread
2025-07-01 10:08:17,078 [DEBUG][Thread-601275 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:08:22,292 [DEBUG][Thread-601276 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:08:24,468 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:08:24,468 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:08:24,468 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:08:24,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-07-01 10:08:24,974 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 7, 52), 10.05, 49.51, 0.0, 38.98, 9.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:08:24,974 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:07:52
2025-07-01 10:08:25,069 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:08:25,072 [DEBUG][       Thread-601277][   transport.py][1871] : starting thread (client mode): 0x75a8cd0
2025-07-01 10:08:25,072 [DEBUG][       Thread-601277][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:08:25,093 [DEBUG][       Thread-601277][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:08:25,093 [ INFO][       Thread-601277][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:08:25,096 [DEBUG][       Thread-601277][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:08:25,096 [DEBUG][       Thread-601277][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:08:25,096 [DEBUG][       Thread-601277][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:08:25,096 [DEBUG][       Thread-601277][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:08:25,096 [DEBUG][       Thread-601277][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:08:25,096 [DEBUG][       Thread-601277][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:08:25,096 [DEBUG][       Thread-601277][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:08:25,096 [DEBUG][       Thread-601277][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:08:25,096 [DEBUG][       Thread-601277][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:08:25,096 [DEBUG][       Thread-601277][   transport.py][1871] : client lang: <none>
2025-07-01 10:08:25,096 [DEBUG][       Thread-601277][   transport.py][1871] : server lang: <none>
2025-07-01 10:08:25,096 [DEBUG][       Thread-601277][   transport.py][1871] : kex follows: False
2025-07-01 10:08:25,096 [DEBUG][       Thread-601277][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:08:25,096 [DEBUG][       Thread-601277][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:08:25,096 [DEBUG][       Thread-601277][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:08:25,096 [DEBUG][       Thread-601277][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:08:25,096 [DEBUG][       Thread-601277][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:08:25,096 [DEBUG][       Thread-601277][   transport.py][1871] : Compression: none
2025-07-01 10:08:25,096 [DEBUG][       Thread-601277][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:08:25,110 [DEBUG][       Thread-601277][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:08:25,110 [DEBUG][       Thread-601277][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:08:25,110 [DEBUG][       Thread-601277][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:08:25,110 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:08:25,110 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:08:25,111 [DEBUG][       Thread-601277][   transport.py][1871] : userauth is OK
2025-07-01 10:08:25,135 [ INFO][       Thread-601277][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:08:25,135 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:08:25,749 [DEBUG][       Thread-601277][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:08:25,749 [DEBUG][       Thread-601277][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:08:25,792 [DEBUG][       Thread-601277][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:08:25,793 [DEBUG][       Thread-601277][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:08:25,795 [DEBUG][       Thread-601277][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:08:25,808 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:08:25,808 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:08:25,809 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:08:25,810 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:08:25,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:08:25,814 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:08:25,814 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:08:25,814 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:08:25,814 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.338836 -999.00   +9.40  38.22     54   +0.80 1 1 2 1 1   887    0 8.65 -3.53 ----- 38.2 38.2 27.6 55.0 12.5 -24.0 11.5 -24.3 10.8 -22.5 11.6 -21.7
2025-07-01 10:08:25,814 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:08:25,814 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:08:25,814 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.338836
2025-07-01 10:08:25,814 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:08:25,814 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:08:25,814 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:08:25,814 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:08:25,814 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:08:25,814 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:07:52', tmtdew=10.05, humidity=49.51, cloud=0.0, wind=38.98, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:07:55.430', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:08:25,815 [DEBUG][       Thread-601277][   transport.py][1871] : EOF in transport thread
2025-07-01 10:08:25,886 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:08:26,004 [DEBUG][       Thread-601280][   transport.py][1871] : starting thread (client mode): 0x82b2080
2025-07-01 10:08:26,004 [DEBUG][       Thread-601280][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:08:26,095 [DEBUG][Thread-601281 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:08:26,100 [DEBUG][       Thread-601280][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:08:26,100 [ INFO][       Thread-601280][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:08:26,182 [DEBUG][       Thread-601280][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:08:26,182 [DEBUG][       Thread-601280][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:08:26,182 [DEBUG][       Thread-601280][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:08:26,182 [DEBUG][       Thread-601280][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:08:26,182 [DEBUG][       Thread-601280][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:08:26,182 [DEBUG][       Thread-601280][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:08:26,182 [DEBUG][       Thread-601280][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:08:26,182 [DEBUG][       Thread-601280][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:08:26,182 [DEBUG][       Thread-601280][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:08:26,182 [DEBUG][       Thread-601280][   transport.py][1871] : client lang: <none>
2025-07-01 10:08:26,182 [DEBUG][       Thread-601280][   transport.py][1871] : server lang: <none>
2025-07-01 10:08:26,182 [DEBUG][       Thread-601280][   transport.py][1871] : kex follows: False
2025-07-01 10:08:26,182 [DEBUG][       Thread-601280][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:08:26,182 [DEBUG][       Thread-601280][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:08:26,182 [DEBUG][       Thread-601280][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:08:26,182 [DEBUG][       Thread-601280][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:08:26,182 [DEBUG][       Thread-601280][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:08:26,182 [DEBUG][       Thread-601280][   transport.py][1871] : Compression: none
2025-07-01 10:08:26,182 [DEBUG][       Thread-601280][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:08:26,420 [DEBUG][       Thread-601280][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:08:26,420 [DEBUG][       Thread-601280][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:08:26,420 [DEBUG][       Thread-601280][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:08:26,420 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:08:26,421 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:08:26,602 [DEBUG][       Thread-601280][   transport.py][1871] : userauth is OK
2025-07-01 10:08:26,602 [DEBUG][       Thread-601280][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:08:26,602 [DEBUG][       Thread-601280][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:08:26,602 [DEBUG][       Thread-601280][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:08:26,602 [DEBUG][       Thread-601280][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:08:26,720 [ INFO][       Thread-601280][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:08:26,721 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:08:26,721 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:08:27,818 [DEBUG][       Thread-601280][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:08:27,818 [DEBUG][       Thread-601280][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:08:27,950 [DEBUG][       Thread-601280][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:08:27,950 [DEBUG][       Thread-601280][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:08:28,050 [DEBUG][       Thread-601280][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:08:28,146 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:08:28,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-07-01 10:08:28,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-07-01 10:08:28,339 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:08:28,339 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:08:28,339 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:08:28,405 [DEBUG][       Thread-601280][   transport.py][1871] : EOF in transport thread
2025-07-01 10:08:35,121 [DEBUG][Thread-601283 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:08:38,349 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:08:38,350 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:08:38,350 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:08:38,352 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:08:38,838 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 8, 23), 10.04, 49.45, 0.0, 25.53, 9.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:08:38,838 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:08:23
2025-07-01 10:08:38,923 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:08:38,927 [DEBUG][       Thread-601284][   transport.py][1871] : starting thread (client mode): 0x75a9900
2025-07-01 10:08:38,927 [DEBUG][       Thread-601284][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:08:38,948 [DEBUG][       Thread-601284][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:08:38,948 [ INFO][       Thread-601284][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:08:38,951 [DEBUG][       Thread-601284][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:08:38,951 [DEBUG][       Thread-601284][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:08:38,951 [DEBUG][       Thread-601284][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:08:38,951 [DEBUG][       Thread-601284][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:08:38,951 [DEBUG][       Thread-601284][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:08:38,951 [DEBUG][       Thread-601284][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:08:38,951 [DEBUG][       Thread-601284][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:08:38,951 [DEBUG][       Thread-601284][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:08:38,951 [DEBUG][       Thread-601284][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:08:38,951 [DEBUG][       Thread-601284][   transport.py][1871] : client lang: <none>
2025-07-01 10:08:38,951 [DEBUG][       Thread-601284][   transport.py][1871] : server lang: <none>
2025-07-01 10:08:38,951 [DEBUG][       Thread-601284][   transport.py][1871] : kex follows: False
2025-07-01 10:08:38,952 [DEBUG][       Thread-601284][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:08:38,952 [DEBUG][       Thread-601284][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:08:38,952 [DEBUG][       Thread-601284][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:08:38,952 [DEBUG][       Thread-601284][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:08:38,952 [DEBUG][       Thread-601284][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:08:38,952 [DEBUG][       Thread-601284][   transport.py][1871] : Compression: none
2025-07-01 10:08:38,952 [DEBUG][       Thread-601284][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:08:38,965 [DEBUG][       Thread-601284][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:08:38,965 [DEBUG][       Thread-601284][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:08:38,966 [DEBUG][       Thread-601284][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:08:38,966 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:08:38,966 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:08:38,967 [DEBUG][       Thread-601284][   transport.py][1871] : userauth is OK
2025-07-01 10:08:38,992 [ INFO][       Thread-601284][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:08:38,993 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:08:39,601 [DEBUG][       Thread-601284][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:08:39,601 [DEBUG][       Thread-601284][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:08:39,645 [DEBUG][       Thread-601284][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:08:39,645 [DEBUG][       Thread-601284][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:08:39,648 [DEBUG][       Thread-601284][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:08:39,660 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:08:39,660 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:08:39,662 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:08:39,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:08:39,670 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:08:39,671 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:08:39,671 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:08:39,672 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:08:39,672 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.338836 -999.00   +9.40  38.22     54   +0.80 1 1 2 1 1   887    0 8.65 -3.53 ----- 38.2 38.2 27.6 55.0 12.5 -24.0 11.5 -24.3 10.8 -22.5 11.6 -21.7
2025-07-01 10:08:39,672 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:08:39,672 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:08:39,672 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.338836
2025-07-01 10:08:39,673 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:08:39,673 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:08:39,674 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:08:39,674 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:08:39,674 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:08:39,674 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:08:23', tmtdew=10.04, humidity=49.45, cloud=0.0, wind=25.53, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:07:55.430', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:08:39,675 [DEBUG][       Thread-601284][   transport.py][1871] : EOF in transport thread
2025-07-01 10:08:39,757 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:08:39,829 [DEBUG][       Thread-601287][   transport.py][1871] : starting thread (client mode): 0x818d000
2025-07-01 10:08:39,829 [DEBUG][       Thread-601287][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:08:39,941 [DEBUG][       Thread-601287][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:08:39,941 [ INFO][       Thread-601287][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:08:40,054 [DEBUG][       Thread-601287][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:08:40,054 [DEBUG][       Thread-601287][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:08:40,054 [DEBUG][       Thread-601287][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:08:40,054 [DEBUG][       Thread-601287][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:08:40,054 [DEBUG][       Thread-601287][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:08:40,054 [DEBUG][       Thread-601287][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:08:40,054 [DEBUG][       Thread-601287][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:08:40,054 [DEBUG][       Thread-601287][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:08:40,054 [DEBUG][       Thread-601287][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:08:40,055 [DEBUG][       Thread-601287][   transport.py][1871] : client lang: <none>
2025-07-01 10:08:40,055 [DEBUG][       Thread-601287][   transport.py][1871] : server lang: <none>
2025-07-01 10:08:40,055 [DEBUG][       Thread-601287][   transport.py][1871] : kex follows: False
2025-07-01 10:08:40,055 [DEBUG][       Thread-601287][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:08:40,055 [DEBUG][       Thread-601287][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:08:40,055 [DEBUG][       Thread-601287][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:08:40,055 [DEBUG][       Thread-601287][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:08:40,055 [DEBUG][       Thread-601287][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:08:40,055 [DEBUG][       Thread-601287][   transport.py][1871] : Compression: none
2025-07-01 10:08:40,055 [DEBUG][       Thread-601287][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:08:40,194 [DEBUG][       Thread-601287][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:08:40,194 [DEBUG][       Thread-601287][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:08:40,195 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:08:40,196 [DEBUG][       Thread-601287][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:08:40,196 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:08:40,384 [DEBUG][       Thread-601287][   transport.py][1871] : userauth is OK
2025-07-01 10:08:40,384 [DEBUG][       Thread-601287][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:08:40,384 [DEBUG][       Thread-601287][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:08:40,384 [DEBUG][       Thread-601287][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:08:40,384 [DEBUG][       Thread-601287][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:08:40,452 [ INFO][       Thread-601287][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:08:40,453 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:08:40,453 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:08:41,486 [DEBUG][       Thread-601287][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:08:41,487 [DEBUG][       Thread-601287][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:08:41,619 [DEBUG][       Thread-601287][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:08:41,619 [DEBUG][       Thread-601287][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:08:41,717 [DEBUG][       Thread-601287][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:08:41,812 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:08:41,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-07-01 10:08:41,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-07-01 10:08:42,012 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:08:42,012 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:08:42,012 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:08:42,095 [DEBUG][       Thread-601287][   transport.py][1871] : EOF in transport thread
2025-07-01 10:08:44,143 [DEBUG][Thread-601289 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:08:52,023 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:08:52,023 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:08:52,023 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:08: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-07-01 10:08:52,507 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 8, 23), 10.04, 49.45, 0.0, 25.53, 9.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:08:52,507 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:08:23
2025-07-01 10:08:52,592 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:08:52,596 [DEBUG][       Thread-601290][   transport.py][1871] : starting thread (client mode): 0x75aa500
2025-07-01 10:08:52,596 [DEBUG][       Thread-601290][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:08:52,618 [DEBUG][       Thread-601290][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:08:52,618 [ INFO][       Thread-601290][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:08:52,621 [DEBUG][       Thread-601290][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:08:52,621 [DEBUG][       Thread-601290][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:08:52,621 [DEBUG][       Thread-601290][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:08:52,621 [DEBUG][       Thread-601290][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:08:52,621 [DEBUG][       Thread-601290][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:08:52,621 [DEBUG][       Thread-601290][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:08:52,621 [DEBUG][       Thread-601290][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:08:52,621 [DEBUG][       Thread-601290][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:08:52,621 [DEBUG][       Thread-601290][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:08:52,621 [DEBUG][       Thread-601290][   transport.py][1871] : client lang: <none>
2025-07-01 10:08:52,621 [DEBUG][       Thread-601290][   transport.py][1871] : server lang: <none>
2025-07-01 10:08:52,621 [DEBUG][       Thread-601290][   transport.py][1871] : kex follows: False
2025-07-01 10:08:52,621 [DEBUG][       Thread-601290][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:08:52,621 [DEBUG][       Thread-601290][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:08:52,621 [DEBUG][       Thread-601290][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:08:52,621 [DEBUG][       Thread-601290][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:08:52,621 [DEBUG][       Thread-601290][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:08:52,621 [DEBUG][       Thread-601290][   transport.py][1871] : Compression: none
2025-07-01 10:08:52,621 [DEBUG][       Thread-601290][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:08:52,640 [DEBUG][       Thread-601290][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:08:52,641 [DEBUG][       Thread-601290][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:08:52,641 [DEBUG][       Thread-601290][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:08:52,641 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:08:52,642 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:08:52,643 [DEBUG][       Thread-601290][   transport.py][1871] : userauth is OK
2025-07-01 10:08:52,667 [ INFO][       Thread-601290][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:08:52,668 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:08:53,176 [DEBUG][Thread-601292 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:08:53,304 [DEBUG][       Thread-601290][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:08:53,304 [DEBUG][       Thread-601290][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:08:53,345 [DEBUG][       Thread-601290][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:08:53,345 [DEBUG][       Thread-601290][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:08:53,348 [DEBUG][       Thread-601290][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:08:53,360 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:08:53,360 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:08:53,362 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:08:53,364 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:08:53,369 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:08:53,370 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:08:53,370 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:08:53,371 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:08:53,371 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.339183 -999.00   +9.50  35.40     55   +0.90 1 2 2 1 1   887    0 8.56 -4.79 ----- 35.4 35.4 30.7 46.5 12.5 -22.6 11.6 -23.1 10.9 -21.8 11.6 -20.9
2025-07-01 10:08:53,371 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:08:53,371 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:08:53,371 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.339183
2025-07-01 10:08:53,372 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:08:53,372 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:08:53,373 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:08:53,373 [DEBUG][       Thread-601290][   transport.py][1871] : EOF in transport thread
2025-07-01 10:08:53,373 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:08:53,373 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:08:53,374 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:08:23', tmtdew=10.04, humidity=49.45, cloud=0.0, wind=25.53, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:08:25.411', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:08:53,457 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:08:53,543 [DEBUG][       Thread-601294][   transport.py][1871] : starting thread (client mode): 0x83939d0
2025-07-01 10:08:53,543 [DEBUG][       Thread-601294][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:08:53,611 [DEBUG][       Thread-601294][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:08:53,611 [ INFO][       Thread-601294][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:08:53,677 [DEBUG][       Thread-601294][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:08:53,677 [DEBUG][       Thread-601294][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:08:53,677 [DEBUG][       Thread-601294][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:08:53,678 [DEBUG][       Thread-601294][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:08:53,678 [DEBUG][       Thread-601294][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:08:53,678 [DEBUG][       Thread-601294][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:08:53,678 [DEBUG][       Thread-601294][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:08:53,678 [DEBUG][       Thread-601294][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:08:53,678 [DEBUG][       Thread-601294][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:08:53,678 [DEBUG][       Thread-601294][   transport.py][1871] : client lang: <none>
2025-07-01 10:08:53,678 [DEBUG][       Thread-601294][   transport.py][1871] : server lang: <none>
2025-07-01 10:08:53,678 [DEBUG][       Thread-601294][   transport.py][1871] : kex follows: False
2025-07-01 10:08:53,678 [DEBUG][       Thread-601294][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:08:53,678 [DEBUG][       Thread-601294][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:08:53,678 [DEBUG][       Thread-601294][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:08:53,678 [DEBUG][       Thread-601294][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:08:53,678 [DEBUG][       Thread-601294][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:08:53,679 [DEBUG][       Thread-601294][   transport.py][1871] : Compression: none
2025-07-01 10:08:53,679 [DEBUG][       Thread-601294][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:08:53,792 [DEBUG][       Thread-601294][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:08:53,793 [DEBUG][       Thread-601294][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:08:53,794 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:08:53,794 [DEBUG][       Thread-601294][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:08:53,795 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:08:53,966 [DEBUG][       Thread-601294][   transport.py][1871] : userauth is OK
2025-07-01 10:08:53,966 [DEBUG][       Thread-601294][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:08:53,966 [DEBUG][       Thread-601294][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:08:53,966 [DEBUG][       Thread-601294][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:08:53,966 [DEBUG][       Thread-601294][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:08:54,071 [ INFO][       Thread-601294][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:08:54,072 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:08:54,072 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:08:55,156 [DEBUG][       Thread-601294][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:08:55,157 [DEBUG][       Thread-601294][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:08:55,231 [DEBUG][       Thread-601294][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:08:55,231 [DEBUG][       Thread-601294][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:08:55,341 [DEBUG][       Thread-601294][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:08:55,445 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:08:55,445 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 10:08:56,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-07-01 10:08:56,445 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:08:56,445 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:08:56,446 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:08:56,545 [DEBUG][       Thread-601294][   transport.py][1871] : EOF in transport thread
2025-07-01 10:08:56,759 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:08:56,760 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:09:02,197 [DEBUG][Thread-601296 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:09:06,452 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:09:06,452 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:09:06,452 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:09:06,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-07-01 10:09:06,936 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 8, 55), 10.05, 49.42, 0.0, 34.1, 9.72, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:09:06,936 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:08:55
2025-07-01 10:09:07,021 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:09:07,025 [DEBUG][       Thread-601297][   transport.py][1871] : starting thread (client mode): 0x75a9810
2025-07-01 10:09:07,025 [DEBUG][       Thread-601297][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:09:07,048 [DEBUG][       Thread-601297][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:09:07,048 [ INFO][       Thread-601297][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:09:07,051 [DEBUG][       Thread-601297][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:09:07,051 [DEBUG][       Thread-601297][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:09:07,051 [DEBUG][       Thread-601297][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:09:07,051 [DEBUG][       Thread-601297][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:09:07,051 [DEBUG][       Thread-601297][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:09:07,051 [DEBUG][       Thread-601297][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:09:07,051 [DEBUG][       Thread-601297][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:09:07,051 [DEBUG][       Thread-601297][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:09:07,051 [DEBUG][       Thread-601297][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:09:07,051 [DEBUG][       Thread-601297][   transport.py][1871] : client lang: <none>
2025-07-01 10:09:07,051 [DEBUG][       Thread-601297][   transport.py][1871] : server lang: <none>
2025-07-01 10:09:07,051 [DEBUG][       Thread-601297][   transport.py][1871] : kex follows: False
2025-07-01 10:09:07,051 [DEBUG][       Thread-601297][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:09:07,051 [DEBUG][       Thread-601297][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:09:07,051 [DEBUG][       Thread-601297][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:09:07,051 [DEBUG][       Thread-601297][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:09:07,051 [DEBUG][       Thread-601297][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:09:07,051 [DEBUG][       Thread-601297][   transport.py][1871] : Compression: none
2025-07-01 10:09:07,051 [DEBUG][       Thread-601297][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:09:07,066 [DEBUG][       Thread-601297][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:09:07,066 [DEBUG][       Thread-601297][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:09:07,066 [DEBUG][       Thread-601297][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:09:07,066 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:09:07,066 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:09:07,067 [DEBUG][       Thread-601297][   transport.py][1871] : userauth is OK
2025-07-01 10:09:07,091 [ INFO][       Thread-601297][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:09:07,091 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:09:07,722 [DEBUG][       Thread-601297][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:09:07,722 [DEBUG][       Thread-601297][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:09:07,765 [DEBUG][       Thread-601297][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:09:07,765 [DEBUG][       Thread-601297][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:09:07,769 [DEBUG][       Thread-601297][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:09:07,781 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:09:07,781 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:09:07,783 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:09:07,785 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:09:07,790 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:09:07,792 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:09:07,792 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:09:07,793 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:09:07,794 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.339183 -999.00   +9.50  35.40     55   +0.90 1 2 2 1 1   887    0 8.56 -4.79 ----- 35.4 35.4 30.7 46.5 12.5 -22.6 11.6 -23.1 10.9 -21.8 11.6 -20.9
2025-07-01 10:09:07,794 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:09:07,794 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:09:07,794 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.339183
2025-07-01 10:09:07,795 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:09:07,795 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:09:07,795 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:09:07,796 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:09:07,796 [DEBUG][       Thread-601297][   transport.py][1871] : EOF in transport thread
2025-07-01 10:09:07,796 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:09:07,797 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:08:55', tmtdew=10.05, humidity=49.42, cloud=0.0, wind=34.1, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:08:25.411', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:09:07,890 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:09:07,955 [DEBUG][       Thread-601300][   transport.py][1871] : starting thread (client mode): 0x81e5840
2025-07-01 10:09:07,955 [DEBUG][       Thread-601300][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:09:08,054 [DEBUG][       Thread-601300][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:09:08,055 [ INFO][       Thread-601300][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:09:08,171 [DEBUG][       Thread-601300][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:09:08,172 [DEBUG][       Thread-601300][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:09:08,172 [DEBUG][       Thread-601300][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:09:08,172 [DEBUG][       Thread-601300][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:09:08,172 [DEBUG][       Thread-601300][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:09:08,172 [DEBUG][       Thread-601300][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:09:08,172 [DEBUG][       Thread-601300][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:09:08,172 [DEBUG][       Thread-601300][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:09:08,172 [DEBUG][       Thread-601300][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:09:08,172 [DEBUG][       Thread-601300][   transport.py][1871] : client lang: <none>
2025-07-01 10:09:08,172 [DEBUG][       Thread-601300][   transport.py][1871] : server lang: <none>
2025-07-01 10:09:08,172 [DEBUG][       Thread-601300][   transport.py][1871] : kex follows: False
2025-07-01 10:09:08,172 [DEBUG][       Thread-601300][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:09:08,173 [DEBUG][       Thread-601300][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:09:08,173 [DEBUG][       Thread-601300][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:09:08,173 [DEBUG][       Thread-601300][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:09:08,173 [DEBUG][       Thread-601300][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:09:08,173 [DEBUG][       Thread-601300][   transport.py][1871] : Compression: none
2025-07-01 10:09:08,173 [DEBUG][       Thread-601300][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:09:08,288 [DEBUG][       Thread-601300][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:09:08,289 [DEBUG][       Thread-601300][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:09:08,290 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:09:08,290 [DEBUG][       Thread-601300][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:09:08,291 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:09:08,476 [DEBUG][       Thread-601300][   transport.py][1871] : userauth is OK
2025-07-01 10:09:08,476 [DEBUG][       Thread-601300][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:09:08,476 [DEBUG][       Thread-601300][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:09:08,476 [DEBUG][       Thread-601300][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:09:08,476 [DEBUG][       Thread-601300][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:09:08,569 [ INFO][       Thread-601300][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:09:08,570 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:09:08,570 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:09:09,606 [DEBUG][       Thread-601300][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:09:09,606 [DEBUG][       Thread-601300][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:09:09,697 [DEBUG][       Thread-601300][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:09:09,697 [DEBUG][       Thread-601300][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:09:09,831 [DEBUG][       Thread-601300][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:09:09,890 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:09:09,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-07-01 10:09:10,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-07-01 10:09:10,104 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:09:10,104 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:09:10,105 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:09:10,160 [DEBUG][       Thread-601300][   transport.py][1871] : EOF in transport thread
2025-07-01 10:09:11,237 [DEBUG][Thread-601302 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:09:20,115 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:09:20,115 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:09:20,115 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:09:20,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-07-01 10:09:20,279 [DEBUG][Thread-601303 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:09:20,605 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 8, 55), 10.05, 49.42, 0.0, 34.1, 9.72, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:09:20,605 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:08:55
2025-07-01 10:09:20,690 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:09:20,696 [DEBUG][       Thread-601304][   transport.py][1871] : starting thread (client mode): 0x75aaef0
2025-07-01 10:09:20,696 [DEBUG][       Thread-601304][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:09:20,715 [DEBUG][       Thread-601304][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:09:20,715 [ INFO][       Thread-601304][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:09:20,719 [DEBUG][       Thread-601304][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:09:20,719 [DEBUG][       Thread-601304][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:09:20,719 [DEBUG][       Thread-601304][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:09:20,719 [DEBUG][       Thread-601304][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:09:20,719 [DEBUG][       Thread-601304][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:09:20,719 [DEBUG][       Thread-601304][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:09:20,719 [DEBUG][       Thread-601304][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:09:20,719 [DEBUG][       Thread-601304][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:09:20,719 [DEBUG][       Thread-601304][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:09:20,719 [DEBUG][       Thread-601304][   transport.py][1871] : client lang: <none>
2025-07-01 10:09:20,719 [DEBUG][       Thread-601304][   transport.py][1871] : server lang: <none>
2025-07-01 10:09:20,719 [DEBUG][       Thread-601304][   transport.py][1871] : kex follows: False
2025-07-01 10:09:20,719 [DEBUG][       Thread-601304][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:09:20,719 [DEBUG][       Thread-601304][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:09:20,719 [DEBUG][       Thread-601304][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:09:20,719 [DEBUG][       Thread-601304][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:09:20,719 [DEBUG][       Thread-601304][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:09:20,719 [DEBUG][       Thread-601304][   transport.py][1871] : Compression: none
2025-07-01 10:09:20,719 [DEBUG][       Thread-601304][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:09:20,734 [DEBUG][       Thread-601304][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:09:20,734 [DEBUG][       Thread-601304][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:09:20,735 [DEBUG][       Thread-601304][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:09:20,735 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:09:20,735 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:09:20,736 [DEBUG][       Thread-601304][   transport.py][1871] : userauth is OK
2025-07-01 10:09:20,760 [ INFO][       Thread-601304][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:09:20,761 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:09:21,358 [DEBUG][       Thread-601304][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:09:21,358 [DEBUG][       Thread-601304][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:09:21,401 [DEBUG][       Thread-601304][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:09:21,401 [DEBUG][       Thread-601304][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:09:21,404 [DEBUG][       Thread-601304][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:09:21,417 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:09:21,417 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:09:21,419 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:09:21,420 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:09:21,425 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:09:21,426 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:09:21,426 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:09:21,427 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:09:21,427 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.339530 -999.00   +9.50  37.48     54   +0.80 1 1 2 1 1   887    0 8.51 -6.60 ----- 37.5 37.5 22.8 59.6 12.6 -23.0 11.6 -24.6 10.9 -21.9 11.7 -22.7
2025-07-01 10:09:21,427 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:09:21,427 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:09:21,427 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.339530
2025-07-01 10:09:21,428 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:09:21,428 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:09:21,429 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:09:21,429 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:09:21,429 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:09:21,429 [DEBUG][       Thread-601304][   transport.py][1871] : EOF in transport thread
2025-07-01 10:09:21,429 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:08:55', tmtdew=10.05, humidity=49.42, cloud=0.0, wind=34.1, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:08:55.392', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:09:21,512 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:09:21,598 [DEBUG][       Thread-601307][   transport.py][1871] : starting thread (client mode): 0x818c340
2025-07-01 10:09:21,598 [DEBUG][       Thread-601307][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:09:21,689 [DEBUG][       Thread-601307][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:09:21,689 [ INFO][       Thread-601307][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:09:21,781 [DEBUG][       Thread-601307][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:09:21,781 [DEBUG][       Thread-601307][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:09:21,781 [DEBUG][       Thread-601307][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:09:21,781 [DEBUG][       Thread-601307][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:09:21,781 [DEBUG][       Thread-601307][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:09:21,781 [DEBUG][       Thread-601307][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:09:21,781 [DEBUG][       Thread-601307][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:09:21,781 [DEBUG][       Thread-601307][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:09:21,781 [DEBUG][       Thread-601307][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:09:21,781 [DEBUG][       Thread-601307][   transport.py][1871] : client lang: <none>
2025-07-01 10:09:21,781 [DEBUG][       Thread-601307][   transport.py][1871] : server lang: <none>
2025-07-01 10:09:21,781 [DEBUG][       Thread-601307][   transport.py][1871] : kex follows: False
2025-07-01 10:09:21,781 [DEBUG][       Thread-601307][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:09:21,781 [DEBUG][       Thread-601307][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:09:21,782 [DEBUG][       Thread-601307][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:09:21,782 [DEBUG][       Thread-601307][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:09:21,782 [DEBUG][       Thread-601307][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:09:21,782 [DEBUG][       Thread-601307][   transport.py][1871] : Compression: none
2025-07-01 10:09:21,782 [DEBUG][       Thread-601307][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:09:21,898 [DEBUG][       Thread-601307][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:09:21,899 [DEBUG][       Thread-601307][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:09:21,899 [DEBUG][       Thread-601307][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:09:21,900 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:09:21,900 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:09:22,013 [DEBUG][       Thread-601307][   transport.py][1871] : userauth is OK
2025-07-01 10:09:22,013 [DEBUG][       Thread-601307][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:09:22,014 [DEBUG][       Thread-601307][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:09:22,014 [DEBUG][       Thread-601307][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:09:22,014 [DEBUG][       Thread-601307][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:09:22,073 [ INFO][       Thread-601307][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:09:22,074 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:09:22,074 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:09:22,324 [DEBUG][Thread-601309 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:09:23,065 [DEBUG][       Thread-601307][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:09:23,065 [DEBUG][       Thread-601307][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:09:23,230 [DEBUG][       Thread-601307][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:09:23,231 [DEBUG][       Thread-601307][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:09:23,388 [DEBUG][       Thread-601307][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:09:23,537 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:09:23,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-07-01 10:09: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-07-01 10:09:23,791 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:09:23,791 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:09:23,792 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:09:23,891 [DEBUG][       Thread-601307][   transport.py][1871] : EOF in transport thread
2025-07-01 10:09:29,297 [DEBUG][Thread-601310 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:09:33,802 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:09:33,803 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:09:33,803 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:09:33,806 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:09:34,297 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 9, 27), 10.1, 49.24, 0.0, 37.92, 9.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:09:34,297 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:09:27
2025-07-01 10:09:34,381 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:09:34,386 [DEBUG][       Thread-601311][   transport.py][1871] : starting thread (client mode): 0x8105f90
2025-07-01 10:09:34,386 [DEBUG][       Thread-601311][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:09:34,407 [DEBUG][       Thread-601311][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:09:34,407 [ INFO][       Thread-601311][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:09:34,411 [DEBUG][       Thread-601311][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:09:34,411 [DEBUG][       Thread-601311][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:09:34,411 [DEBUG][       Thread-601311][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:09:34,411 [DEBUG][       Thread-601311][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:09:34,411 [DEBUG][       Thread-601311][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:09:34,411 [DEBUG][       Thread-601311][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:09:34,411 [DEBUG][       Thread-601311][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:09:34,411 [DEBUG][       Thread-601311][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:09:34,411 [DEBUG][       Thread-601311][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:09:34,411 [DEBUG][       Thread-601311][   transport.py][1871] : client lang: <none>
2025-07-01 10:09:34,411 [DEBUG][       Thread-601311][   transport.py][1871] : server lang: <none>
2025-07-01 10:09:34,411 [DEBUG][       Thread-601311][   transport.py][1871] : kex follows: False
2025-07-01 10:09:34,411 [DEBUG][       Thread-601311][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:09:34,411 [DEBUG][       Thread-601311][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:09:34,411 [DEBUG][       Thread-601311][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:09:34,411 [DEBUG][       Thread-601311][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:09:34,411 [DEBUG][       Thread-601311][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:09:34,411 [DEBUG][       Thread-601311][   transport.py][1871] : Compression: none
2025-07-01 10:09:34,411 [DEBUG][       Thread-601311][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:09:34,426 [DEBUG][       Thread-601311][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:09:34,427 [DEBUG][       Thread-601311][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:09:34,427 [DEBUG][       Thread-601311][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:09:34,427 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:09:34,427 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:09:34,428 [DEBUG][       Thread-601311][   transport.py][1871] : userauth is OK
2025-07-01 10:09:34,456 [ INFO][       Thread-601311][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:09:34,456 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:09:35,126 [DEBUG][       Thread-601311][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:09:35,126 [DEBUG][       Thread-601311][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:09:35,169 [DEBUG][       Thread-601311][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:09:35,169 [DEBUG][       Thread-601311][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:09:35,173 [DEBUG][       Thread-601311][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:09:35,185 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:09:35,185 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:09:35,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:09:35,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:09:35,196 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:09:35,198 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:09:35,198 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:09:35,199 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:09:35,199 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.339530 -999.00   +9.50  37.48     54   +0.80 1 1 2 1 1   887    0 8.51 -6.60 ----- 37.5 37.5 22.8 59.6 12.6 -23.0 11.6 -24.6 10.9 -21.9 11.7 -22.7
2025-07-01 10:09:35,199 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:09:35,199 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:09:35,199 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.339530
2025-07-01 10:09:35,200 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:09:35,200 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:09:35,200 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:09:35,201 [DEBUG][       Thread-601311][   transport.py][1871] : EOF in transport thread
2025-07-01 10:09:35,201 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:09:35,201 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:09:35,202 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:09:27', tmtdew=10.1, humidity=49.24, cloud=0.0, wind=37.92, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:08:55.392', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:09:35,285 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:09:35,332 [DEBUG][       Thread-601314][   transport.py][1871] : starting thread (client mode): 0x8155d20
2025-07-01 10:09:35,333 [DEBUG][       Thread-601314][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:09:35,440 [DEBUG][       Thread-601314][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:09:35,440 [ INFO][       Thread-601314][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:09:35,536 [DEBUG][       Thread-601314][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:09:35,536 [DEBUG][       Thread-601314][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:09:35,536 [DEBUG][       Thread-601314][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:09:35,536 [DEBUG][       Thread-601314][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:09:35,536 [DEBUG][       Thread-601314][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:09:35,536 [DEBUG][       Thread-601314][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:09:35,536 [DEBUG][       Thread-601314][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:09:35,536 [DEBUG][       Thread-601314][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:09:35,536 [DEBUG][       Thread-601314][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:09:35,537 [DEBUG][       Thread-601314][   transport.py][1871] : client lang: <none>
2025-07-01 10:09:35,537 [DEBUG][       Thread-601314][   transport.py][1871] : server lang: <none>
2025-07-01 10:09:35,537 [DEBUG][       Thread-601314][   transport.py][1871] : kex follows: False
2025-07-01 10:09:35,537 [DEBUG][       Thread-601314][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:09:35,537 [DEBUG][       Thread-601314][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:09:35,537 [DEBUG][       Thread-601314][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:09:35,537 [DEBUG][       Thread-601314][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:09:35,537 [DEBUG][       Thread-601314][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:09:35,537 [DEBUG][       Thread-601314][   transport.py][1871] : Compression: none
2025-07-01 10:09:35,537 [DEBUG][       Thread-601314][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:09:35,645 [DEBUG][       Thread-601314][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:09:35,646 [DEBUG][       Thread-601314][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:09:35,646 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:09:35,647 [DEBUG][       Thread-601314][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:09:35,648 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:09:35,898 [DEBUG][       Thread-601314][   transport.py][1871] : userauth is OK
2025-07-01 10:09:35,899 [DEBUG][       Thread-601314][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:09:35,899 [DEBUG][       Thread-601314][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:09:35,899 [DEBUG][       Thread-601314][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:09:35,899 [DEBUG][       Thread-601314][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:09:36,026 [ INFO][       Thread-601314][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:09:36,026 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:09:36,027 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:09:37,062 [DEBUG][       Thread-601314][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:09:37,062 [DEBUG][       Thread-601314][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:09:37,201 [DEBUG][       Thread-601314][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:09:37,201 [DEBUG][       Thread-601314][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:09:37,298 [DEBUG][       Thread-601314][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:09:37,334 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:09:37,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-07-01 10:09:37,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-07-01 10:09:37,568 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:09:37,568 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:09:37,569 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:09:37,661 [DEBUG][       Thread-601314][   transport.py][1871] : EOF in transport thread
2025-07-01 10:09:38,325 [DEBUG][Thread-601316 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:09:47,355 [DEBUG][Thread-601317 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:09:47,576 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:09:47,576 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:09:47,576 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:09:47,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-07-01 10:09:48,056 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 9, 27), 10.1, 49.24, 0.0, 37.92, 9.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:09:48,056 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:09:27
2025-07-01 10:09:48,140 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:09:48,145 [DEBUG][       Thread-601318][   transport.py][1871] : starting thread (client mode): 0x81e7ca0
2025-07-01 10:09:48,145 [DEBUG][       Thread-601318][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:09:48,165 [DEBUG][       Thread-601318][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:09:48,166 [ INFO][       Thread-601318][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:09:48,169 [DEBUG][       Thread-601318][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:09:48,169 [DEBUG][       Thread-601318][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:09:48,169 [DEBUG][       Thread-601318][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:09:48,169 [DEBUG][       Thread-601318][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:09:48,169 [DEBUG][       Thread-601318][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:09:48,169 [DEBUG][       Thread-601318][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:09:48,169 [DEBUG][       Thread-601318][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:09:48,169 [DEBUG][       Thread-601318][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:09:48,169 [DEBUG][       Thread-601318][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:09:48,169 [DEBUG][       Thread-601318][   transport.py][1871] : client lang: <none>
2025-07-01 10:09:48,169 [DEBUG][       Thread-601318][   transport.py][1871] : server lang: <none>
2025-07-01 10:09:48,169 [DEBUG][       Thread-601318][   transport.py][1871] : kex follows: False
2025-07-01 10:09:48,169 [DEBUG][       Thread-601318][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:09:48,169 [DEBUG][       Thread-601318][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:09:48,169 [DEBUG][       Thread-601318][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:09:48,169 [DEBUG][       Thread-601318][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:09:48,169 [DEBUG][       Thread-601318][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:09:48,169 [DEBUG][       Thread-601318][   transport.py][1871] : Compression: none
2025-07-01 10:09:48,169 [DEBUG][       Thread-601318][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:09:48,189 [DEBUG][       Thread-601318][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:09:48,189 [DEBUG][       Thread-601318][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:09:48,189 [DEBUG][       Thread-601318][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:09:48,190 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:09:48,190 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:09:48,191 [DEBUG][       Thread-601318][   transport.py][1871] : userauth is OK
2025-07-01 10:09:48,204 [ INFO][       Thread-601318][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:09:48,205 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:09:48,815 [DEBUG][       Thread-601318][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:09:48,815 [DEBUG][       Thread-601318][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:09:48,857 [DEBUG][       Thread-601318][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:09:48,857 [DEBUG][       Thread-601318][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:09:48,861 [DEBUG][       Thread-601318][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:09:48,875 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:09:48,875 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:09:48,877 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:09:48,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:09:48,885 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:09:48,887 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:09:48,887 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:09:48,888 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:09:48,888 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.339530 -999.00   +9.50  37.48     54   +0.80 1 1 2 1 1   887    0 8.51 -6.60 ----- 37.5 37.5 22.8 59.6 12.6 -23.0 11.6 -24.6 10.9 -21.9 11.7 -22.7
2025-07-01 10:09:48,888 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:09:48,888 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:09:48,888 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.339530
2025-07-01 10:09:48,889 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:09:48,889 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:09:48,889 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:09:48,890 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:09:48,890 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:09:48,890 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:09:27', tmtdew=10.1, humidity=49.24, cloud=0.0, wind=37.92, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:08:55.392', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:09:48,891 [DEBUG][       Thread-601318][   transport.py][1871] : EOF in transport thread
2025-07-01 10:09:48,963 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:09:49,084 [DEBUG][       Thread-601321][   transport.py][1871] : starting thread (client mode): 0x82b1b10
2025-07-01 10:09:49,084 [DEBUG][       Thread-601321][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:09:49,169 [DEBUG][       Thread-601321][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:09:49,169 [ INFO][       Thread-601321][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:09:49,252 [DEBUG][       Thread-601321][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:09:49,252 [DEBUG][       Thread-601321][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:09:49,252 [DEBUG][       Thread-601321][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:09:49,253 [DEBUG][       Thread-601321][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:09:49,253 [DEBUG][       Thread-601321][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:09:49,253 [DEBUG][       Thread-601321][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:09:49,253 [DEBUG][       Thread-601321][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:09:49,253 [DEBUG][       Thread-601321][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:09:49,253 [DEBUG][       Thread-601321][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:09:49,253 [DEBUG][       Thread-601321][   transport.py][1871] : client lang: <none>
2025-07-01 10:09:49,253 [DEBUG][       Thread-601321][   transport.py][1871] : server lang: <none>
2025-07-01 10:09:49,253 [DEBUG][       Thread-601321][   transport.py][1871] : kex follows: False
2025-07-01 10:09:49,253 [DEBUG][       Thread-601321][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:09:49,253 [DEBUG][       Thread-601321][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:09:49,253 [DEBUG][       Thread-601321][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:09:49,254 [DEBUG][       Thread-601321][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:09:49,254 [DEBUG][       Thread-601321][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:09:49,254 [DEBUG][       Thread-601321][   transport.py][1871] : Compression: none
2025-07-01 10:09:49,254 [DEBUG][       Thread-601321][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:09:49,378 [DEBUG][       Thread-601321][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:09:49,379 [DEBUG][       Thread-601321][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:09:49,380 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:09:49,380 [DEBUG][       Thread-601321][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:09:49,381 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:09:49,660 [DEBUG][       Thread-601321][   transport.py][1871] : userauth is OK
2025-07-01 10:09:49,661 [DEBUG][       Thread-601321][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:09:49,661 [DEBUG][       Thread-601321][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:09:49,661 [DEBUG][       Thread-601321][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:09:49,661 [DEBUG][       Thread-601321][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:09:49,771 [ INFO][       Thread-601321][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:09:49,772 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:09:49,772 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:09:50,879 [DEBUG][       Thread-601321][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:09:50,879 [DEBUG][       Thread-601321][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:09:51,020 [DEBUG][       Thread-601321][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:09:51,021 [DEBUG][       Thread-601321][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:09:51,131 [DEBUG][       Thread-601321][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:09:51,221 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:09:51,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-07-01 10:09:51,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-07-01 10:09:51,420 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:09:51,420 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:09:51,421 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:09:51,520 [DEBUG][       Thread-601321][   transport.py][1871] : EOF in transport thread
2025-07-01 10:09:56,376 [DEBUG][Thread-601323 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:09:56,899 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:09:56,900 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:10:01,431 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:10:01,431 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:10:01,432 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:10:01,434 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:10:01,912 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 9, 59), 10.09, 49.25, 0.0, 41.67, 9.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:10:01,912 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:09:59
2025-07-01 10:10:01,994 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:10:01,998 [DEBUG][       Thread-601324][   transport.py][1871] : starting thread (client mode): 0x82b1ae0
2025-07-01 10:10:01,998 [DEBUG][       Thread-601324][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:10:02,011 [DEBUG][       Thread-601324][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:10:02,011 [ INFO][       Thread-601324][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:10:02,013 [DEBUG][       Thread-601324][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:10:02,013 [DEBUG][       Thread-601324][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:10:02,013 [DEBUG][       Thread-601324][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:10:02,013 [DEBUG][       Thread-601324][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:10:02,013 [DEBUG][       Thread-601324][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:10:02,013 [DEBUG][       Thread-601324][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:10:02,013 [DEBUG][       Thread-601324][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:10:02,013 [DEBUG][       Thread-601324][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:10:02,013 [DEBUG][       Thread-601324][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:10:02,013 [DEBUG][       Thread-601324][   transport.py][1871] : client lang: <none>
2025-07-01 10:10:02,013 [DEBUG][       Thread-601324][   transport.py][1871] : server lang: <none>
2025-07-01 10:10:02,013 [DEBUG][       Thread-601324][   transport.py][1871] : kex follows: False
2025-07-01 10:10:02,013 [DEBUG][       Thread-601324][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:10:02,013 [DEBUG][       Thread-601324][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:10:02,013 [DEBUG][       Thread-601324][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:10:02,013 [DEBUG][       Thread-601324][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:10:02,013 [DEBUG][       Thread-601324][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:10:02,013 [DEBUG][       Thread-601324][   transport.py][1871] : Compression: none
2025-07-01 10:10:02,013 [DEBUG][       Thread-601324][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:10:02,033 [DEBUG][       Thread-601324][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:10:02,033 [DEBUG][       Thread-601324][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:10:02,033 [DEBUG][       Thread-601324][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:10:02,034 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:10:02,034 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:10:02,035 [DEBUG][       Thread-601324][   transport.py][1871] : userauth is OK
2025-07-01 10:10:02,060 [ INFO][       Thread-601324][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:10:02,060 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:10:02,660 [DEBUG][       Thread-601324][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:10:02,660 [DEBUG][       Thread-601324][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:10:02,701 [DEBUG][       Thread-601324][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:10:02,701 [DEBUG][       Thread-601324][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:10:02,704 [DEBUG][       Thread-601324][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:10:02,715 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:10:02,716 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:10:02,717 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:10:02,719 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:10:02,724 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:10:02,726 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:10:02,726 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:10:02,727 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:10:02,727 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.339877 -999.00   +9.50  41.36     54   +0.80 1 2 2 1 1   887    0 8.59 -6.80 ----- 41.4 41.4 21.4 47.0 12.7 -22.8 11.7 -23.4 10.9 -21.5 11.8 -20.6
2025-07-01 10:10:02,727 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:10:02,727 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:10:02,727 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.339877
2025-07-01 10:10:02,728 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:10:02,728 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:10:02,728 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:10:02,728 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:10:02,728 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:10:02,728 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:09:59', tmtdew=10.09, humidity=49.25, cloud=0.0, wind=41.67, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:09:25.373', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:10:02,729 [DEBUG][       Thread-601324][   transport.py][1871] : EOF in transport thread
2025-07-01 10:10:02,812 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:10:03,144 [DEBUG][       Thread-601327][   transport.py][1871] : starting thread (client mode): 0x75aba60
2025-07-01 10:10:03,144 [DEBUG][       Thread-601327][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:10:03,700 [DEBUG][       Thread-601327][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:10:03,700 [ INFO][       Thread-601327][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:10:04,016 [DEBUG][       Thread-601327][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:10:04,016 [DEBUG][       Thread-601327][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:10:04,016 [DEBUG][       Thread-601327][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:10:04,016 [DEBUG][       Thread-601327][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:10:04,016 [DEBUG][       Thread-601327][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:10:04,016 [DEBUG][       Thread-601327][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:10:04,016 [DEBUG][       Thread-601327][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:10:04,016 [DEBUG][       Thread-601327][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:10:04,017 [DEBUG][       Thread-601327][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:10:04,017 [DEBUG][       Thread-601327][   transport.py][1871] : client lang: <none>
2025-07-01 10:10:04,017 [DEBUG][       Thread-601327][   transport.py][1871] : server lang: <none>
2025-07-01 10:10:04,017 [DEBUG][       Thread-601327][   transport.py][1871] : kex follows: False
2025-07-01 10:10:04,017 [DEBUG][       Thread-601327][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:10:04,017 [DEBUG][       Thread-601327][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:10:04,017 [DEBUG][       Thread-601327][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:10:04,017 [DEBUG][       Thread-601327][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:10:04,017 [DEBUG][       Thread-601327][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:10:04,017 [DEBUG][       Thread-601327][   transport.py][1871] : Compression: none
2025-07-01 10:10:04,017 [DEBUG][       Thread-601327][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:10:04,167 [DEBUG][       Thread-601327][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:10:04,168 [DEBUG][       Thread-601327][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:10:04,169 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:10:04,169 [DEBUG][       Thread-601327][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:10:04,170 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:10:04,414 [DEBUG][       Thread-601327][   transport.py][1871] : userauth is OK
2025-07-01 10:10:04,414 [DEBUG][       Thread-601327][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:10:04,414 [DEBUG][       Thread-601327][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:10:04,414 [DEBUG][       Thread-601327][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:10:04,414 [DEBUG][       Thread-601327][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:10:04,523 [ INFO][       Thread-601327][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:10:04,523 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:10:04,524 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:10:05,397 [DEBUG][Thread-601329 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:10:05,655 [DEBUG][       Thread-601327][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:10:05,655 [DEBUG][       Thread-601327][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:10:05,814 [DEBUG][       Thread-601327][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:10:05,815 [DEBUG][       Thread-601327][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:10:05,886 [DEBUG][       Thread-601327][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:10:05,990 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:10:05,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-07-01 10:10:06,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-07-01 10:10:06,541 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:10:06,541 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:10:06,542 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:10:06,641 [DEBUG][       Thread-601327][   transport.py][1871] : EOF in transport thread
2025-07-01 10:10:14,433 [DEBUG][Thread-601330 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:10:16,552 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:10:16,552 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:10:16,552 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:10:16,553 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:10:17,013 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 9, 59), 10.09, 49.25, 0.0, 41.67, 9.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:10:17,013 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:09:59
2025-07-01 10:10:17,096 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:10:17,101 [DEBUG][       Thread-601331][   transport.py][1871] : starting thread (client mode): 0x82b1690
2025-07-01 10:10:17,101 [DEBUG][       Thread-601331][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:10:17,119 [DEBUG][       Thread-601331][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:10:17,120 [ INFO][       Thread-601331][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:10:17,122 [DEBUG][       Thread-601331][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:10:17,122 [DEBUG][       Thread-601331][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:10:17,122 [DEBUG][       Thread-601331][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:10:17,122 [DEBUG][       Thread-601331][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:10:17,122 [DEBUG][       Thread-601331][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:10:17,122 [DEBUG][       Thread-601331][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:10:17,122 [DEBUG][       Thread-601331][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:10:17,122 [DEBUG][       Thread-601331][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:10:17,122 [DEBUG][       Thread-601331][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:10:17,122 [DEBUG][       Thread-601331][   transport.py][1871] : client lang: <none>
2025-07-01 10:10:17,122 [DEBUG][       Thread-601331][   transport.py][1871] : server lang: <none>
2025-07-01 10:10:17,122 [DEBUG][       Thread-601331][   transport.py][1871] : kex follows: False
2025-07-01 10:10:17,122 [DEBUG][       Thread-601331][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:10:17,122 [DEBUG][       Thread-601331][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:10:17,122 [DEBUG][       Thread-601331][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:10:17,122 [DEBUG][       Thread-601331][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:10:17,123 [DEBUG][       Thread-601331][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:10:17,123 [DEBUG][       Thread-601331][   transport.py][1871] : Compression: none
2025-07-01 10:10:17,123 [DEBUG][       Thread-601331][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:10:17,139 [DEBUG][       Thread-601331][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:10:17,140 [DEBUG][       Thread-601331][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:10:17,140 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:10:17,140 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:10:17,141 [DEBUG][       Thread-601331][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:10:17,141 [DEBUG][       Thread-601331][   transport.py][1871] : userauth is OK
2025-07-01 10:10:17,154 [ INFO][       Thread-601331][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:10:17,155 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:10:17,885 [DEBUG][       Thread-601331][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:10:17,885 [DEBUG][       Thread-601331][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:10:17,929 [DEBUG][       Thread-601331][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:10:17,929 [DEBUG][       Thread-601331][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:10:17,933 [DEBUG][       Thread-601331][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:10:17,940 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:10:17,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:10:17,944 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:10:17,946 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:10:17,951 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:10:17,953 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:10:17,953 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:10:17,954 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:10:17,954 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.339877 -999.00   +9.50  41.36     54   +0.80 1 2 2 1 1   887    0 8.59 -6.80 ----- 41.4 41.4 21.4 47.0 12.7 -22.8 11.7 -23.4 10.9 -21.5 11.8 -20.6
2025-07-01 10:10:17,954 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:10:17,954 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:10:17,954 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.339877
2025-07-01 10:10:17,954 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:10:17,955 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:10:17,955 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:10:17,955 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:10:17,955 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:10:17,955 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:09:59', tmtdew=10.09, humidity=49.25, cloud=0.0, wind=41.67, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:09:25.373', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:10:17,956 [DEBUG][       Thread-601331][   transport.py][1871] : EOF in transport thread
2025-07-01 10:10:18,041 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:10:18,123 [DEBUG][       Thread-601334][   transport.py][1871] : starting thread (client mode): 0x81a75e0
2025-07-01 10:10:18,124 [DEBUG][       Thread-601334][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:10:18,221 [DEBUG][       Thread-601334][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:10:18,221 [ INFO][       Thread-601334][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:10:18,320 [DEBUG][       Thread-601334][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:10:18,321 [DEBUG][       Thread-601334][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:10:18,321 [DEBUG][       Thread-601334][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:10:18,321 [DEBUG][       Thread-601334][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:10:18,321 [DEBUG][       Thread-601334][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:10:18,321 [DEBUG][       Thread-601334][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:10:18,321 [DEBUG][       Thread-601334][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:10:18,321 [DEBUG][       Thread-601334][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:10:18,321 [DEBUG][       Thread-601334][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:10:18,321 [DEBUG][       Thread-601334][   transport.py][1871] : client lang: <none>
2025-07-01 10:10:18,321 [DEBUG][       Thread-601334][   transport.py][1871] : server lang: <none>
2025-07-01 10:10:18,321 [DEBUG][       Thread-601334][   transport.py][1871] : kex follows: False
2025-07-01 10:10:18,321 [DEBUG][       Thread-601334][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:10:18,322 [DEBUG][       Thread-601334][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:10:18,322 [DEBUG][       Thread-601334][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:10:18,322 [DEBUG][       Thread-601334][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:10:18,322 [DEBUG][       Thread-601334][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:10:18,322 [DEBUG][       Thread-601334][   transport.py][1871] : Compression: none
2025-07-01 10:10:18,322 [DEBUG][       Thread-601334][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:10:18,482 [DEBUG][       Thread-601334][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:10:18,482 [DEBUG][       Thread-601334][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:10:18,482 [DEBUG][       Thread-601334][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:10:18,483 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:10:18,483 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:10:18,697 [DEBUG][       Thread-601334][   transport.py][1871] : userauth is OK
2025-07-01 10:10:18,698 [DEBUG][       Thread-601334][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:10:18,698 [DEBUG][       Thread-601334][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:10:18,698 [DEBUG][       Thread-601334][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:10:18,698 [DEBUG][       Thread-601334][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:10:18,903 [ INFO][       Thread-601334][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:10:18,904 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:10:18,904 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:10:19,998 [DEBUG][       Thread-601334][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:10:19,998 [DEBUG][       Thread-601334][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:10:20,084 [DEBUG][       Thread-601334][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:10:20,084 [DEBUG][       Thread-601334][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:10:20,170 [DEBUG][       Thread-601334][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:10:20,268 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:10:20,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-07-01 10:10:20,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-07-01 10:10:20,437 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:10:20,437 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:10:20,437 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:10:20,524 [DEBUG][       Thread-601334][   transport.py][1871] : EOF in transport thread
2025-07-01 10:10:22,350 [DEBUG][Thread-601336 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:10:23,451 [DEBUG][Thread-601337 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:10:30,447 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:10:30,447 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:10:30,448 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:10:30,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-07-01 10:10:30,899 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 9, 59), 10.09, 49.25, 0.0, 41.67, 9.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:10:30,900 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:09:59
2025-07-01 10:10:30,985 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:10:30,989 [DEBUG][       Thread-601338][   transport.py][1871] : starting thread (client mode): 0x82b3eb0
2025-07-01 10:10:30,989 [DEBUG][       Thread-601338][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:10:31,008 [DEBUG][       Thread-601338][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:10:31,008 [ INFO][       Thread-601338][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:10:31,011 [DEBUG][       Thread-601338][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:10:31,011 [DEBUG][       Thread-601338][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:10:31,011 [DEBUG][       Thread-601338][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:10:31,011 [DEBUG][       Thread-601338][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:10:31,011 [DEBUG][       Thread-601338][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:10:31,011 [DEBUG][       Thread-601338][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:10:31,011 [DEBUG][       Thread-601338][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:10:31,011 [DEBUG][       Thread-601338][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:10:31,011 [DEBUG][       Thread-601338][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:10:31,011 [DEBUG][       Thread-601338][   transport.py][1871] : client lang: <none>
2025-07-01 10:10:31,011 [DEBUG][       Thread-601338][   transport.py][1871] : server lang: <none>
2025-07-01 10:10:31,011 [DEBUG][       Thread-601338][   transport.py][1871] : kex follows: False
2025-07-01 10:10:31,011 [DEBUG][       Thread-601338][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:10:31,011 [DEBUG][       Thread-601338][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:10:31,011 [DEBUG][       Thread-601338][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:10:31,011 [DEBUG][       Thread-601338][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:10:31,011 [DEBUG][       Thread-601338][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:10:31,011 [DEBUG][       Thread-601338][   transport.py][1871] : Compression: none
2025-07-01 10:10:31,011 [DEBUG][       Thread-601338][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:10:31,032 [DEBUG][       Thread-601338][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:10:31,032 [DEBUG][       Thread-601338][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:10:31,033 [DEBUG][       Thread-601338][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:10:31,033 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:10:31,033 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:10:31,034 [DEBUG][       Thread-601338][   transport.py][1871] : userauth is OK
2025-07-01 10:10:31,047 [ INFO][       Thread-601338][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:10:31,048 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:10:31,630 [DEBUG][       Thread-601338][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:10:31,630 [DEBUG][       Thread-601338][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:10:31,672 [DEBUG][       Thread-601338][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:10:31,672 [DEBUG][       Thread-601338][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:10:31,674 [DEBUG][       Thread-601338][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:10:31,686 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:10:31,686 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:10:31,687 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:10:31,688 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:10:31,691 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:10:31,692 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:10:31,692 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:10:31,692 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:10:31,692 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.340572 -999.00   +9.50  44.24     54   +0.70 1 1 2 1 1   887    0 8.46 -6.16 ----- 44.2 44.2 23.0 51.6 12.7 -23.2 11.7 -24.1 10.9 -22.3 11.8 -21.8
2025-07-01 10:10:31,692 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:10:31,692 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:10:31,692 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.340572
2025-07-01 10:10:31,692 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:10:31,692 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:10:31,692 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:10:31,692 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:10:31,692 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:10:31,692 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:09:59', tmtdew=10.09, humidity=49.25, cloud=0.0, wind=41.67, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:10:25.421', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:10:31,693 [DEBUG][       Thread-601338][   transport.py][1871] : EOF in transport thread
2025-07-01 10:10:31,767 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:10:31,847 [DEBUG][       Thread-601341][   transport.py][1871] : starting thread (client mode): 0x8106470
2025-07-01 10:10:31,847 [DEBUG][       Thread-601341][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:10:32,008 [DEBUG][       Thread-601341][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:10:32,009 [ INFO][       Thread-601341][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:10:32,131 [DEBUG][       Thread-601341][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:10:32,131 [DEBUG][       Thread-601341][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:10:32,131 [DEBUG][       Thread-601341][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:10:32,131 [DEBUG][       Thread-601341][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:10:32,131 [DEBUG][       Thread-601341][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:10:32,131 [DEBUG][       Thread-601341][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:10:32,131 [DEBUG][       Thread-601341][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:10:32,131 [DEBUG][       Thread-601341][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:10:32,131 [DEBUG][       Thread-601341][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:10:32,131 [DEBUG][       Thread-601341][   transport.py][1871] : client lang: <none>
2025-07-01 10:10:32,131 [DEBUG][       Thread-601341][   transport.py][1871] : server lang: <none>
2025-07-01 10:10:32,131 [DEBUG][       Thread-601341][   transport.py][1871] : kex follows: False
2025-07-01 10:10:32,131 [DEBUG][       Thread-601341][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:10:32,131 [DEBUG][       Thread-601341][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:10:32,131 [DEBUG][       Thread-601341][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:10:32,131 [DEBUG][       Thread-601341][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:10:32,131 [DEBUG][       Thread-601341][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:10:32,131 [DEBUG][       Thread-601341][   transport.py][1871] : Compression: none
2025-07-01 10:10:32,131 [DEBUG][       Thread-601341][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:10:32,254 [DEBUG][       Thread-601341][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:10:32,254 [DEBUG][       Thread-601341][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:10:32,254 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:10:32,254 [DEBUG][       Thread-601341][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:10:32,254 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:10:32,450 [DEBUG][       Thread-601341][   transport.py][1871] : userauth is OK
2025-07-01 10:10:32,450 [DEBUG][       Thread-601341][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:10:32,450 [DEBUG][       Thread-601341][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:10:32,450 [DEBUG][       Thread-601341][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:10:32,450 [DEBUG][       Thread-601341][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:10:32,470 [DEBUG][Thread-601343 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:10:32,562 [ INFO][       Thread-601341][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:10:32,562 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:10:32,562 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:10:33,609 [DEBUG][       Thread-601341][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:10:33,610 [DEBUG][       Thread-601341][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:10:33,745 [DEBUG][       Thread-601341][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:10:33,746 [DEBUG][       Thread-601341][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:10:33,819 [DEBUG][       Thread-601341][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:10:33,925 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:10:33,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-07-01 10:10:34,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-07-01 10:10:34,179 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:10:34,180 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:10:34,180 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:10:34,230 [DEBUG][       Thread-601341][   transport.py][1871] : EOF in transport thread
2025-07-01 10:10:41,504 [DEBUG][Thread-601344 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:10:44,191 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:10:44,191 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:10:44,191 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:10:44,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-07-01 10:10:44,670 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 10, 31), 10.05, 49.4, 0.0, 37.99, 9.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:10:44,670 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:10:31
2025-07-01 10:10:44,755 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:10:44,759 [DEBUG][       Thread-601345][   transport.py][1871] : starting thread (client mode): 0x8172950
2025-07-01 10:10:44,759 [DEBUG][       Thread-601345][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:10:44,781 [DEBUG][       Thread-601345][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:10:44,781 [ INFO][       Thread-601345][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:10:44,784 [DEBUG][       Thread-601345][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:10:44,784 [DEBUG][       Thread-601345][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:10:44,784 [DEBUG][       Thread-601345][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:10:44,784 [DEBUG][       Thread-601345][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:10:44,784 [DEBUG][       Thread-601345][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:10:44,784 [DEBUG][       Thread-601345][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:10:44,784 [DEBUG][       Thread-601345][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:10:44,784 [DEBUG][       Thread-601345][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:10:44,784 [DEBUG][       Thread-601345][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:10:44,784 [DEBUG][       Thread-601345][   transport.py][1871] : client lang: <none>
2025-07-01 10:10:44,784 [DEBUG][       Thread-601345][   transport.py][1871] : server lang: <none>
2025-07-01 10:10:44,784 [DEBUG][       Thread-601345][   transport.py][1871] : kex follows: False
2025-07-01 10:10:44,784 [DEBUG][       Thread-601345][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:10:44,784 [DEBUG][       Thread-601345][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:10:44,785 [DEBUG][       Thread-601345][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:10:44,785 [DEBUG][       Thread-601345][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:10:44,785 [DEBUG][       Thread-601345][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:10:44,785 [DEBUG][       Thread-601345][   transport.py][1871] : Compression: none
2025-07-01 10:10:44,785 [DEBUG][       Thread-601345][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:10:44,803 [DEBUG][       Thread-601345][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:10:44,803 [DEBUG][       Thread-601345][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:10:44,804 [DEBUG][       Thread-601345][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:10:44,804 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:10:44,804 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:10:44,805 [DEBUG][       Thread-601345][   transport.py][1871] : userauth is OK
2025-07-01 10:10:44,831 [ INFO][       Thread-601345][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:10:44,832 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:10:45,435 [DEBUG][       Thread-601345][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:10:45,436 [DEBUG][       Thread-601345][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:10:45,477 [DEBUG][       Thread-601345][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:10:45,477 [DEBUG][       Thread-601345][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:10:45,480 [DEBUG][       Thread-601345][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:10:45,494 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:10:45,494 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:10:45,496 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:10:45,498 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:10:45,505 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:10:45,507 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:10:45,507 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:10:45,507 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:10:45,508 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.340572 -999.00   +9.50  44.24     54   +0.70 1 1 2 1 1   887    0 8.46 -6.16 ----- 44.2 44.2 23.0 51.6 12.7 -23.2 11.7 -24.1 10.9 -22.3 11.8 -21.8
2025-07-01 10:10:45,508 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:10:45,508 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:10:45,508 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.340572
2025-07-01 10:10:45,508 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:10:45,509 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:10:45,509 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:10:45,509 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:10:45,509 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:10:45,509 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:10:31', tmtdew=10.05, humidity=49.4, cloud=0.0, wind=37.99, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:10:25.421', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:10:45,510 [DEBUG][       Thread-601345][   transport.py][1871] : EOF in transport thread
2025-07-01 10:10:45,593 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:10:45,687 [DEBUG][       Thread-601348][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 10:10:45,688 [DEBUG][       Thread-601348][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:10:45,781 [DEBUG][       Thread-601348][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:10:45,782 [ INFO][       Thread-601348][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:10:45,873 [DEBUG][       Thread-601348][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:10:45,873 [DEBUG][       Thread-601348][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:10:45,874 [DEBUG][       Thread-601348][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:10:45,874 [DEBUG][       Thread-601348][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:10:45,874 [DEBUG][       Thread-601348][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:10:45,874 [DEBUG][       Thread-601348][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:10:45,874 [DEBUG][       Thread-601348][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:10:45,874 [DEBUG][       Thread-601348][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:10:45,874 [DEBUG][       Thread-601348][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:10:45,874 [DEBUG][       Thread-601348][   transport.py][1871] : client lang: <none>
2025-07-01 10:10:45,874 [DEBUG][       Thread-601348][   transport.py][1871] : server lang: <none>
2025-07-01 10:10:45,874 [DEBUG][       Thread-601348][   transport.py][1871] : kex follows: False
2025-07-01 10:10:45,874 [DEBUG][       Thread-601348][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:10:45,874 [DEBUG][       Thread-601348][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:10:45,874 [DEBUG][       Thread-601348][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:10:45,875 [DEBUG][       Thread-601348][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:10:45,875 [DEBUG][       Thread-601348][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:10:45,875 [DEBUG][       Thread-601348][   transport.py][1871] : Compression: none
2025-07-01 10:10:45,875 [DEBUG][       Thread-601348][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:10:46,040 [DEBUG][       Thread-601348][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:10:46,041 [DEBUG][       Thread-601348][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:10:46,041 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:10:46,042 [DEBUG][       Thread-601348][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:10:46,043 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:10:46,252 [DEBUG][       Thread-601348][   transport.py][1871] : userauth is OK
2025-07-01 10:10:46,253 [DEBUG][       Thread-601348][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:10:46,253 [DEBUG][       Thread-601348][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:10:46,253 [DEBUG][       Thread-601348][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:10:46,253 [DEBUG][       Thread-601348][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:10:46,358 [ INFO][       Thread-601348][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:10:46,359 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:10:46,359 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:10:47,457 [DEBUG][       Thread-601348][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:10:47,458 [DEBUG][       Thread-601348][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:10:47,643 [DEBUG][       Thread-601348][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:10:47,643 [DEBUG][       Thread-601348][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:10:47,706 [DEBUG][       Thread-601348][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:10:47,779 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:10:47,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')
2025-07-01 10:10:47,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-07-01 10:10:47,983 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:10:47,984 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:10:47,984 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:10:48,082 [DEBUG][       Thread-601348][   transport.py][1871] : EOF in transport thread
2025-07-01 10:10:50,526 [DEBUG][Thread-601350 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:10:57,039 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:10:57,040 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:10:57,992 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:10:57,992 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:10:57,992 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:10:57,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-07-01 10:10:58,477 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 10, 31), 10.05, 49.4, 0.0, 37.99, 9.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:10:58,477 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:10:31
2025-07-01 10:10:58,569 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:10:58,573 [DEBUG][       Thread-601351][   transport.py][1871] : starting thread (client mode): 0x82b1ae0
2025-07-01 10:10:58,573 [DEBUG][       Thread-601351][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:10:58,589 [DEBUG][       Thread-601351][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:10:58,589 [ INFO][       Thread-601351][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:10:58,592 [DEBUG][       Thread-601351][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:10:58,593 [DEBUG][       Thread-601351][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:10:58,593 [DEBUG][       Thread-601351][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:10:58,593 [DEBUG][       Thread-601351][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:10:58,593 [DEBUG][       Thread-601351][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:10:58,593 [DEBUG][       Thread-601351][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:10:58,593 [DEBUG][       Thread-601351][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:10:58,593 [DEBUG][       Thread-601351][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:10:58,593 [DEBUG][       Thread-601351][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:10:58,593 [DEBUG][       Thread-601351][   transport.py][1871] : client lang: <none>
2025-07-01 10:10:58,593 [DEBUG][       Thread-601351][   transport.py][1871] : server lang: <none>
2025-07-01 10:10:58,593 [DEBUG][       Thread-601351][   transport.py][1871] : kex follows: False
2025-07-01 10:10:58,593 [DEBUG][       Thread-601351][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:10:58,593 [DEBUG][       Thread-601351][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:10:58,593 [DEBUG][       Thread-601351][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:10:58,593 [DEBUG][       Thread-601351][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:10:58,593 [DEBUG][       Thread-601351][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:10:58,593 [DEBUG][       Thread-601351][   transport.py][1871] : Compression: none
2025-07-01 10:10:58,593 [DEBUG][       Thread-601351][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:10:58,610 [DEBUG][       Thread-601351][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:10:58,610 [DEBUG][       Thread-601351][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:10:58,610 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:10:58,610 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:10:58,610 [DEBUG][       Thread-601351][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:10:58,611 [DEBUG][       Thread-601351][   transport.py][1871] : userauth is OK
2025-07-01 10:10:58,623 [ INFO][       Thread-601351][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:10:58,623 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:10:59,274 [DEBUG][       Thread-601351][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:10:59,275 [DEBUG][       Thread-601351][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:10:59,316 [DEBUG][       Thread-601351][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:10:59,316 [DEBUG][       Thread-601351][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:10:59,319 [DEBUG][       Thread-601351][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:10:59,333 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:10:59,333 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:10:59,334 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:10:59,335 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:10:59,337 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:10:59,338 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:10:59,338 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:10:59,338 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:10:59,338 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.340572 -999.00   +9.50  44.24     54   +0.70 1 1 2 1 1   887    0 8.46 -6.16 ----- 44.2 44.2 23.0 51.6 12.7 -23.2 11.7 -24.1 10.9 -22.3 11.8 -21.8
2025-07-01 10:10:59,338 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:10:59,338 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:10:59,338 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.340572
2025-07-01 10:10:59,338 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:10:59,338 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:10:59,338 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:10:59,338 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:10:59,338 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:10:59,338 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:10:31', tmtdew=10.05, humidity=49.4, cloud=0.0, wind=37.99, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:10:25.421', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:10:59,339 [DEBUG][       Thread-601351][   transport.py][1871] : EOF in transport thread
2025-07-01 10:10:59,413 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:10:59,454 [DEBUG][       Thread-601354][   transport.py][1871] : starting thread (client mode): 0x8172290
2025-07-01 10:10:59,454 [DEBUG][       Thread-601354][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:10:59,555 [DEBUG][Thread-601355 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:10:59,577 [DEBUG][       Thread-601354][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:10:59,577 [ INFO][       Thread-601354][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:10:59,679 [DEBUG][       Thread-601354][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:10:59,679 [DEBUG][       Thread-601354][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:10:59,679 [DEBUG][       Thread-601354][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:10:59,679 [DEBUG][       Thread-601354][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:10:59,679 [DEBUG][       Thread-601354][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:10:59,679 [DEBUG][       Thread-601354][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:10:59,679 [DEBUG][       Thread-601354][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:10:59,679 [DEBUG][       Thread-601354][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:10:59,679 [DEBUG][       Thread-601354][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:10:59,679 [DEBUG][       Thread-601354][   transport.py][1871] : client lang: <none>
2025-07-01 10:10:59,679 [DEBUG][       Thread-601354][   transport.py][1871] : server lang: <none>
2025-07-01 10:10:59,679 [DEBUG][       Thread-601354][   transport.py][1871] : kex follows: False
2025-07-01 10:10:59,679 [DEBUG][       Thread-601354][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:10:59,679 [DEBUG][       Thread-601354][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:10:59,679 [DEBUG][       Thread-601354][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:10:59,679 [DEBUG][       Thread-601354][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:10:59,679 [DEBUG][       Thread-601354][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:10:59,679 [DEBUG][       Thread-601354][   transport.py][1871] : Compression: none
2025-07-01 10:10:59,679 [DEBUG][       Thread-601354][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:10:59,841 [DEBUG][       Thread-601354][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:10:59,841 [DEBUG][       Thread-601354][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:10:59,841 [DEBUG][       Thread-601354][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:10:59,841 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:10:59,841 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:11:00,076 [DEBUG][       Thread-601354][   transport.py][1871] : userauth is OK
2025-07-01 10:11:00,076 [DEBUG][       Thread-601354][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:11:00,076 [DEBUG][       Thread-601354][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:11:00,076 [DEBUG][       Thread-601354][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:11:00,076 [DEBUG][       Thread-601354][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:11:00,121 [ INFO][       Thread-601354][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:11:00,121 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:11:00,122 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:11:01,164 [DEBUG][       Thread-601354][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:11:01,164 [DEBUG][       Thread-601354][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:11:01,303 [DEBUG][       Thread-601354][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:11:01,303 [DEBUG][       Thread-601354][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:11:01,395 [DEBUG][       Thread-601354][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:11:01,489 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:11:01,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-07-01 10:11:01,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-07-01 10:11:01,697 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:11:01,697 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:11:01,698 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:11:01,797 [DEBUG][       Thread-601354][   transport.py][1871] : EOF in transport thread
2025-07-01 10:11:08,575 [DEBUG][Thread-601357 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:11:11,708 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:11:11,708 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:11:11,708 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:11:11,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-07-01 10:11:12,183 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 11, 2), 10.04, 49.43, 0.0, 33.13, 9.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:11:12,183 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:11:02
2025-07-01 10:11:12,269 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:11:12,273 [DEBUG][       Thread-601358][   transport.py][1871] : starting thread (client mode): 0x8171c00
2025-07-01 10:11:12,273 [DEBUG][       Thread-601358][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:11:12,294 [DEBUG][       Thread-601358][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:11:12,294 [ INFO][       Thread-601358][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:11:12,297 [DEBUG][       Thread-601358][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:11:12,297 [DEBUG][       Thread-601358][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:11:12,297 [DEBUG][       Thread-601358][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:11:12,297 [DEBUG][       Thread-601358][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:11:12,297 [DEBUG][       Thread-601358][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:11:12,298 [DEBUG][       Thread-601358][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:11:12,298 [DEBUG][       Thread-601358][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:11:12,298 [DEBUG][       Thread-601358][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:11:12,298 [DEBUG][       Thread-601358][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:11:12,298 [DEBUG][       Thread-601358][   transport.py][1871] : client lang: <none>
2025-07-01 10:11:12,298 [DEBUG][       Thread-601358][   transport.py][1871] : server lang: <none>
2025-07-01 10:11:12,298 [DEBUG][       Thread-601358][   transport.py][1871] : kex follows: False
2025-07-01 10:11:12,298 [DEBUG][       Thread-601358][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:11:12,298 [DEBUG][       Thread-601358][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:11:12,298 [DEBUG][       Thread-601358][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:11:12,298 [DEBUG][       Thread-601358][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:11:12,298 [DEBUG][       Thread-601358][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:11:12,298 [DEBUG][       Thread-601358][   transport.py][1871] : Compression: none
2025-07-01 10:11:12,298 [DEBUG][       Thread-601358][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:11:12,315 [DEBUG][       Thread-601358][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:11:12,315 [DEBUG][       Thread-601358][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:11:12,316 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:11:12,316 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:11:12,317 [DEBUG][       Thread-601358][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:11:12,317 [DEBUG][       Thread-601358][   transport.py][1871] : userauth is OK
2025-07-01 10:11:12,331 [ INFO][       Thread-601358][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:11:12,331 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:11:12,949 [DEBUG][       Thread-601358][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:11:12,949 [DEBUG][       Thread-601358][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:11:12,993 [DEBUG][       Thread-601358][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:11:12,993 [DEBUG][       Thread-601358][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:11:12,996 [DEBUG][       Thread-601358][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:11:13,008 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:11:13,008 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:11:13,010 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:11:13,012 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:11:13,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:11:13,019 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:11:13,019 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:11:13,020 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:11:13,020 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.340919 -999.00   +9.50  35.68     54   +0.80 1 1 2 1 1   887    0 8.39 -5.72 ----- 35.7 35.7 21.2 47.2 12.6 -22.7 11.7 -24.4 10.9 -21.9 11.7 -21.3
2025-07-01 10:11:13,020 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:11:13,020 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:11:13,020 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.340919
2025-07-01 10:11:13,021 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:11:13,021 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:11:13,021 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:11:13,021 [DEBUG][       Thread-601358][   transport.py][1871] : EOF in transport thread
2025-07-01 10:11:13,022 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:11:13,022 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:11:13,022 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:11:02', tmtdew=10.04, humidity=49.43, cloud=0.0, wind=33.13, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:10:55.402', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:11:13,105 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:11:17,594 [DEBUG][Thread-601361 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:11:22,407 [DEBUG][Thread-601362 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:11:26,620 [DEBUG][Thread-601363 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:11:35,639 [DEBUG][Thread-601364 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:11:44,657 [DEBUG][Thread-601365 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:11:53,680 [DEBUG][Thread-601366 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:11:57,176 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:11:57,178 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:12:02,705 [DEBUG][Thread-601367 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:12:11,728 [DEBUG][Thread-601368 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:12:20,750 [DEBUG][Thread-601369 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:12:22,455 [DEBUG][Thread-601370 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:12:29,776 [DEBUG][Thread-601371 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:12:38,796 [DEBUG][Thread-601372 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:12:47,817 [DEBUG][Thread-601373 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:12:56,837 [DEBUG][Thread-601374 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:12:57,315 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:12:57,316 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:13:05,859 [DEBUG][Thread-601375 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:13:14,880 [DEBUG][Thread-601376 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:13:22,068 [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-07-01 10:13:22,509 [DEBUG][Thread-601377 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:13:23,901 [DEBUG][Thread-601378 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:13:32,079 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:13:32,079 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:13:32,079 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:13:32,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-07-01 10:13:32,597 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 13, 9), 10.15, 49.17, 0.0, 34.78, 9.74, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:13:32,598 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:13:09
2025-07-01 10:13:32,686 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:13:32,691 [DEBUG][       Thread-601379][   transport.py][1871] : starting thread (client mode): 0x8172950
2025-07-01 10:13:32,691 [DEBUG][       Thread-601379][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:13:32,711 [DEBUG][       Thread-601379][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:13:32,711 [ INFO][       Thread-601379][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:13:32,712 [DEBUG][       Thread-601379][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:13:32,712 [DEBUG][       Thread-601379][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:13:32,712 [DEBUG][       Thread-601379][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:13:32,712 [DEBUG][       Thread-601379][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:13:32,712 [DEBUG][       Thread-601379][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:13:32,712 [DEBUG][       Thread-601379][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:13:32,712 [DEBUG][       Thread-601379][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:13:32,712 [DEBUG][       Thread-601379][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:13:32,712 [DEBUG][       Thread-601379][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:13:32,712 [DEBUG][       Thread-601379][   transport.py][1871] : client lang: <none>
2025-07-01 10:13:32,712 [DEBUG][       Thread-601379][   transport.py][1871] : server lang: <none>
2025-07-01 10:13:32,712 [DEBUG][       Thread-601379][   transport.py][1871] : kex follows: False
2025-07-01 10:13:32,712 [DEBUG][       Thread-601379][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:13:32,712 [DEBUG][       Thread-601379][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:13:32,712 [DEBUG][       Thread-601379][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:13:32,712 [DEBUG][       Thread-601379][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:13:32,712 [DEBUG][       Thread-601379][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:13:32,713 [DEBUG][       Thread-601379][   transport.py][1871] : Compression: none
2025-07-01 10:13:32,713 [DEBUG][       Thread-601379][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:13:32,721 [DEBUG][       Thread-601379][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:13:32,721 [DEBUG][       Thread-601379][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:13:32,721 [DEBUG][       Thread-601379][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:13:32,721 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:13:32,721 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:13:32,722 [DEBUG][       Thread-601379][   transport.py][1871] : userauth is OK
2025-07-01 10:13:32,745 [ INFO][       Thread-601379][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:13:32,746 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:13:32,919 [DEBUG][Thread-601381 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:13:33,575 [DEBUG][       Thread-601379][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:13:33,575 [DEBUG][       Thread-601379][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:13:33,616 [DEBUG][       Thread-601379][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:13:33,616 [DEBUG][       Thread-601379][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:13:33,619 [DEBUG][       Thread-601379][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:13:33,632 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:13:33,632 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:13:33,633 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:13:33,634 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:13:33,636 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:13:33,636 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:13:33,636 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:13:33,637 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:13:33,637 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.342308 -999.00   +9.50  42.88     54   +0.80 1 1 2 1 1   887    0 8.55 -3.60 ----- 42.9 42.9 24.6 57.2 12.6 -23.0 11.7 -23.9 11.0 -22.6 11.7 -22.3
2025-07-01 10:13:33,637 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:13:33,637 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:13:33,637 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.342308
2025-07-01 10:13:33,637 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:13:33,637 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:13:33,637 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:13:33,637 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:13:33,637 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:13:33,637 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:13:09', tmtdew=10.15, humidity=49.17, cloud=0.0, wind=34.78, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:12:55.411', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:13:33,637 [DEBUG][       Thread-601379][   transport.py][1871] : EOF in transport thread
2025-07-01 10:13:33,710 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:13:33,797 [DEBUG][       Thread-601383][   transport.py][1871] : starting thread (client mode): 0x8393b80
2025-07-01 10:13:33,797 [DEBUG][       Thread-601383][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:13:33,932 [DEBUG][       Thread-601383][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:13:33,932 [ INFO][       Thread-601383][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:13:34,024 [DEBUG][       Thread-601383][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:13:34,025 [DEBUG][       Thread-601383][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:13:34,025 [DEBUG][       Thread-601383][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:13:34,025 [DEBUG][       Thread-601383][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:13:34,025 [DEBUG][       Thread-601383][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:13:34,025 [DEBUG][       Thread-601383][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:13:34,025 [DEBUG][       Thread-601383][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:13:34,025 [DEBUG][       Thread-601383][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:13:34,025 [DEBUG][       Thread-601383][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:13:34,025 [DEBUG][       Thread-601383][   transport.py][1871] : client lang: <none>
2025-07-01 10:13:34,025 [DEBUG][       Thread-601383][   transport.py][1871] : server lang: <none>
2025-07-01 10:13:34,025 [DEBUG][       Thread-601383][   transport.py][1871] : kex follows: False
2025-07-01 10:13:34,025 [DEBUG][       Thread-601383][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:13:34,025 [DEBUG][       Thread-601383][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:13:34,025 [DEBUG][       Thread-601383][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:13:34,026 [DEBUG][       Thread-601383][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:13:34,026 [DEBUG][       Thread-601383][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:13:34,026 [DEBUG][       Thread-601383][   transport.py][1871] : Compression: none
2025-07-01 10:13:34,026 [DEBUG][       Thread-601383][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:13:34,143 [DEBUG][       Thread-601383][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:13:34,143 [DEBUG][       Thread-601383][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:13:34,144 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:13:34,144 [DEBUG][       Thread-601383][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:13:34,145 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:13:34,329 [DEBUG][       Thread-601383][   transport.py][1871] : userauth is OK
2025-07-01 10:13:34,329 [DEBUG][       Thread-601383][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:13:34,330 [DEBUG][       Thread-601383][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:13:34,330 [DEBUG][       Thread-601383][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:13:34,330 [DEBUG][       Thread-601383][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:13:34,424 [ INFO][       Thread-601383][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:13:34,424 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:13:34,425 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:13:35,491 [DEBUG][       Thread-601383][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:13:35,491 [DEBUG][       Thread-601383][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:13:35,615 [DEBUG][       Thread-601383][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:13:35,615 [DEBUG][       Thread-601383][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:13:35,703 [DEBUG][       Thread-601383][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:13:35,794 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:13:35,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-07-01 10:13:35,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-07-01 10:13:35,979 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:13:35,979 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:13:35,980 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:13:36,067 [DEBUG][       Thread-601383][   transport.py][1871] : EOF in transport thread
2025-07-01 10:13:41,938 [DEBUG][Thread-601385 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:13:45,984 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:13:45,984 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:13:45,984 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:13:45,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-07-01 10:13:46,492 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 13, 41), 10.13, 49.24, 0.0, 39.77, 9.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:13:46,492 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:13:41
2025-07-01 10:13:46,577 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:13:46,581 [DEBUG][       Thread-601386][   transport.py][1871] : starting thread (client mode): 0x75a8100
2025-07-01 10:13:46,581 [DEBUG][       Thread-601386][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:13:46,593 [DEBUG][       Thread-601386][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:13:46,593 [ INFO][       Thread-601386][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:13:46,596 [DEBUG][       Thread-601386][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:13:46,596 [DEBUG][       Thread-601386][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:13:46,596 [DEBUG][       Thread-601386][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:13:46,596 [DEBUG][       Thread-601386][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:13:46,596 [DEBUG][       Thread-601386][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:13:46,596 [DEBUG][       Thread-601386][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:13:46,596 [DEBUG][       Thread-601386][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:13:46,596 [DEBUG][       Thread-601386][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:13:46,596 [DEBUG][       Thread-601386][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:13:46,596 [DEBUG][       Thread-601386][   transport.py][1871] : client lang: <none>
2025-07-01 10:13:46,596 [DEBUG][       Thread-601386][   transport.py][1871] : server lang: <none>
2025-07-01 10:13:46,596 [DEBUG][       Thread-601386][   transport.py][1871] : kex follows: False
2025-07-01 10:13:46,596 [DEBUG][       Thread-601386][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:13:46,596 [DEBUG][       Thread-601386][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:13:46,596 [DEBUG][       Thread-601386][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:13:46,596 [DEBUG][       Thread-601386][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:13:46,596 [DEBUG][       Thread-601386][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:13:46,596 [DEBUG][       Thread-601386][   transport.py][1871] : Compression: none
2025-07-01 10:13:46,596 [DEBUG][       Thread-601386][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:13:46,612 [DEBUG][       Thread-601386][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:13:46,612 [DEBUG][       Thread-601386][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:13:46,613 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:13:46,613 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:13:46,613 [DEBUG][       Thread-601386][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:13:46,614 [DEBUG][       Thread-601386][   transport.py][1871] : userauth is OK
2025-07-01 10:13:46,627 [ INFO][       Thread-601386][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:13:46,627 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:13:47,414 [DEBUG][       Thread-601386][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:13:47,414 [DEBUG][       Thread-601386][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:13:47,457 [DEBUG][       Thread-601386][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:13:47,457 [DEBUG][       Thread-601386][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:13:47,461 [DEBUG][       Thread-601386][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:13:47,474 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:13:47,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:13:47,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:13:47,479 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:13:47,484 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:13:47,486 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:13:47,486 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:13:47,487 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:13:47,487 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.342308 -999.00   +9.50  42.88     54   +0.80 1 1 2 1 1   887    0 8.55 -3.60 ----- 42.9 42.9 24.6 57.2 12.6 -23.0 11.7 -23.9 11.0 -22.6 11.7 -22.3
2025-07-01 10:13:47,487 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:13:47,487 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:13:47,487 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.342308
2025-07-01 10:13:47,488 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:13:47,488 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:13:47,488 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:13:47,488 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:13:47,488 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:13:47,489 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:13:41', tmtdew=10.13, humidity=49.24, cloud=0.0, wind=39.77, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:12:55.411', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:13:47,490 [DEBUG][       Thread-601386][   transport.py][1871] : EOF in transport thread
2025-07-01 10:13:47,561 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:13:47,654 [DEBUG][       Thread-601389][   transport.py][1871] : starting thread (client mode): 0x8155d20
2025-07-01 10:13:47,655 [DEBUG][       Thread-601389][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:13:47,803 [DEBUG][       Thread-601389][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:13:47,803 [ INFO][       Thread-601389][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:13:47,911 [DEBUG][       Thread-601389][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:13:47,911 [DEBUG][       Thread-601389][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:13:47,911 [DEBUG][       Thread-601389][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:13:47,911 [DEBUG][       Thread-601389][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:13:47,911 [DEBUG][       Thread-601389][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:13:47,911 [DEBUG][       Thread-601389][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:13:47,911 [DEBUG][       Thread-601389][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:13:47,912 [DEBUG][       Thread-601389][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:13:47,912 [DEBUG][       Thread-601389][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:13:47,912 [DEBUG][       Thread-601389][   transport.py][1871] : client lang: <none>
2025-07-01 10:13:47,912 [DEBUG][       Thread-601389][   transport.py][1871] : server lang: <none>
2025-07-01 10:13:47,912 [DEBUG][       Thread-601389][   transport.py][1871] : kex follows: False
2025-07-01 10:13:47,912 [DEBUG][       Thread-601389][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:13:47,912 [DEBUG][       Thread-601389][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:13:47,912 [DEBUG][       Thread-601389][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:13:47,912 [DEBUG][       Thread-601389][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:13:47,912 [DEBUG][       Thread-601389][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:13:47,912 [DEBUG][       Thread-601389][   transport.py][1871] : Compression: none
2025-07-01 10:13:47,912 [DEBUG][       Thread-601389][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:13:48,054 [DEBUG][       Thread-601389][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:13:48,054 [DEBUG][       Thread-601389][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:13:48,055 [DEBUG][       Thread-601389][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:13:48,055 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:13:48,056 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:13:48,367 [DEBUG][       Thread-601389][   transport.py][1871] : userauth is OK
2025-07-01 10:13:48,367 [DEBUG][       Thread-601389][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:13:48,367 [DEBUG][       Thread-601389][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:13:48,367 [DEBUG][       Thread-601389][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:13:48,367 [DEBUG][       Thread-601389][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:13:48,468 [ INFO][       Thread-601389][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:13:48,469 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:13:48,469 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:13:49,543 [DEBUG][       Thread-601389][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:13:49,543 [DEBUG][       Thread-601389][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:13:49,684 [DEBUG][       Thread-601389][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:13:49,684 [DEBUG][       Thread-601389][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:13:49,808 [DEBUG][       Thread-601389][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:13:49,934 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:13:49,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-07-01 10:13:50,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-07-01 10:13:50,106 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:13:50,107 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:13:50,107 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:13:50,206 [DEBUG][       Thread-601389][   transport.py][1871] : EOF in transport thread
2025-07-01 10:13:50,965 [DEBUG][Thread-601391 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:13:57,455 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:13:57,456 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:14:00,008 [DEBUG][Thread-601392 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:14:00,117 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:14:00,118 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:14:00,118 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:14:00,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-07-01 10:14:00,617 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 13, 41), 10.13, 49.24, 0.0, 39.77, 9.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:14:00,618 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:13:41
2025-07-01 10:14:00,702 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:14:00,707 [DEBUG][       Thread-601393][   transport.py][1871] : starting thread (client mode): 0x8172350
2025-07-01 10:14:00,707 [DEBUG][       Thread-601393][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:14:00,729 [DEBUG][       Thread-601393][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:14:00,729 [ INFO][       Thread-601393][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:14:00,732 [DEBUG][       Thread-601393][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:14:00,732 [DEBUG][       Thread-601393][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:14:00,732 [DEBUG][       Thread-601393][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:14:00,732 [DEBUG][       Thread-601393][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:14:00,732 [DEBUG][       Thread-601393][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:14:00,732 [DEBUG][       Thread-601393][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:14:00,732 [DEBUG][       Thread-601393][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:14:00,732 [DEBUG][       Thread-601393][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:14:00,732 [DEBUG][       Thread-601393][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:14:00,732 [DEBUG][       Thread-601393][   transport.py][1871] : client lang: <none>
2025-07-01 10:14:00,732 [DEBUG][       Thread-601393][   transport.py][1871] : server lang: <none>
2025-07-01 10:14:00,732 [DEBUG][       Thread-601393][   transport.py][1871] : kex follows: False
2025-07-01 10:14:00,732 [DEBUG][       Thread-601393][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:14:00,732 [DEBUG][       Thread-601393][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:14:00,732 [DEBUG][       Thread-601393][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:14:00,732 [DEBUG][       Thread-601393][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:14:00,732 [DEBUG][       Thread-601393][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:14:00,732 [DEBUG][       Thread-601393][   transport.py][1871] : Compression: none
2025-07-01 10:14:00,732 [DEBUG][       Thread-601393][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:14:00,741 [DEBUG][       Thread-601393][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:14:00,741 [DEBUG][       Thread-601393][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:14:00,742 [DEBUG][       Thread-601393][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:14:00,742 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:14:00,742 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:14:00,743 [DEBUG][       Thread-601393][   transport.py][1871] : userauth is OK
2025-07-01 10:14:00,756 [ INFO][       Thread-601393][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:14:00,756 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:14:01,347 [DEBUG][       Thread-601393][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:14:01,347 [DEBUG][       Thread-601393][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:14:01,389 [DEBUG][       Thread-601393][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:14:01,389 [DEBUG][       Thread-601393][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:14:01,392 [DEBUG][       Thread-601393][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:14:01,406 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:14:01,406 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:14:01,408 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:14:01,411 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:14:01,416 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:14:01,418 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:14:01,418 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:14:01,419 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:14:01,419 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.342655 -999.00   +9.50  43.78     54   +0.80 1 2 2 1 1   887    0 8.59 -2.80 ----- 43.8 43.8 22.7 48.6 12.6 -22.7 11.7 -23.1 10.9 -21.9 11.7 -21.5
2025-07-01 10:14:01,419 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:14:01,419 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:14:01,419 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.342655
2025-07-01 10:14:01,420 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:14:01,420 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:14:01,420 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:14:01,420 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:14:01,420 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:14:01,421 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:13:41', tmtdew=10.13, humidity=49.24, cloud=0.0, wind=39.77, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:13:25.392', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:14:01,421 [DEBUG][       Thread-601393][   transport.py][1871] : EOF in transport thread
2025-07-01 10:14:01,508 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:14:01,650 [DEBUG][       Thread-601396][   transport.py][1871] : starting thread (client mode): 0x81a5270
2025-07-01 10:14:01,650 [DEBUG][       Thread-601396][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:14:01,722 [DEBUG][       Thread-601396][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:14:01,723 [ INFO][       Thread-601396][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:14:01,858 [DEBUG][       Thread-601396][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:14:01,858 [DEBUG][       Thread-601396][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:14:01,858 [DEBUG][       Thread-601396][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:14:01,858 [DEBUG][       Thread-601396][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:14:01,858 [DEBUG][       Thread-601396][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:14:01,858 [DEBUG][       Thread-601396][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:14:01,858 [DEBUG][       Thread-601396][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:14:01,858 [DEBUG][       Thread-601396][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:14:01,858 [DEBUG][       Thread-601396][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:14:01,858 [DEBUG][       Thread-601396][   transport.py][1871] : client lang: <none>
2025-07-01 10:14:01,858 [DEBUG][       Thread-601396][   transport.py][1871] : server lang: <none>
2025-07-01 10:14:01,858 [DEBUG][       Thread-601396][   transport.py][1871] : kex follows: False
2025-07-01 10:14:01,859 [DEBUG][       Thread-601396][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:14:01,859 [DEBUG][       Thread-601396][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:14:01,859 [DEBUG][       Thread-601396][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:14:01,859 [DEBUG][       Thread-601396][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:14:01,859 [DEBUG][       Thread-601396][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:14:01,859 [DEBUG][       Thread-601396][   transport.py][1871] : Compression: none
2025-07-01 10:14:01,859 [DEBUG][       Thread-601396][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:14:02,045 [DEBUG][       Thread-601396][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:14:02,045 [DEBUG][       Thread-601396][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:14:02,046 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:14:02,046 [DEBUG][       Thread-601396][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:14:02,047 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:14:02,315 [DEBUG][       Thread-601396][   transport.py][1871] : userauth is OK
2025-07-01 10:14:02,316 [DEBUG][       Thread-601396][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:14:02,316 [DEBUG][       Thread-601396][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:14:02,316 [DEBUG][       Thread-601396][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:14:02,316 [DEBUG][       Thread-601396][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:14:02,436 [ INFO][       Thread-601396][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:14:02,436 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:14:02,437 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:14:03,734 [DEBUG][       Thread-601396][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:14:03,735 [DEBUG][       Thread-601396][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:14:03,903 [DEBUG][       Thread-601396][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:14:03,903 [DEBUG][       Thread-601396][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:14:04,016 [DEBUG][       Thread-601396][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:14:04,117 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:14:04,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-07-01 10:14:04,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-07-01 10:14:04,321 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:14:04,322 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:14:04,322 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:14:04,422 [DEBUG][       Thread-601396][   transport.py][1871] : EOF in transport thread
2025-07-01 10:14:09,026 [DEBUG][Thread-601398 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:14:14,332 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:14:14,332 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:14:14,332 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:14:14,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-07-01 10:14:14,863 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 13, 41), 10.13, 49.24, 0.0, 39.77, 9.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:14:14,863 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:13:41
2025-07-01 10:14:14,954 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:14:14,958 [DEBUG][       Thread-601399][   transport.py][1871] : starting thread (client mode): 0x82b1d20
2025-07-01 10:14:14,958 [DEBUG][       Thread-601399][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:14:14,979 [DEBUG][       Thread-601399][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:14:14,979 [ INFO][       Thread-601399][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:14:14,982 [DEBUG][       Thread-601399][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:14:14,983 [DEBUG][       Thread-601399][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:14:14,983 [DEBUG][       Thread-601399][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:14:14,983 [DEBUG][       Thread-601399][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:14:14,983 [DEBUG][       Thread-601399][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:14:14,983 [DEBUG][       Thread-601399][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:14:14,983 [DEBUG][       Thread-601399][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:14:14,983 [DEBUG][       Thread-601399][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:14:14,983 [DEBUG][       Thread-601399][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:14:14,983 [DEBUG][       Thread-601399][   transport.py][1871] : client lang: <none>
2025-07-01 10:14:14,983 [DEBUG][       Thread-601399][   transport.py][1871] : server lang: <none>
2025-07-01 10:14:14,983 [DEBUG][       Thread-601399][   transport.py][1871] : kex follows: False
2025-07-01 10:14:14,983 [DEBUG][       Thread-601399][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:14:14,983 [DEBUG][       Thread-601399][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:14:14,983 [DEBUG][       Thread-601399][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:14:14,983 [DEBUG][       Thread-601399][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:14:14,983 [DEBUG][       Thread-601399][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:14:14,983 [DEBUG][       Thread-601399][   transport.py][1871] : Compression: none
2025-07-01 10:14:14,983 [DEBUG][       Thread-601399][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:14:14,998 [DEBUG][       Thread-601399][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:14:14,998 [DEBUG][       Thread-601399][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:14:14,998 [DEBUG][       Thread-601399][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:14:14,999 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:14:14,999 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:14:14,999 [DEBUG][       Thread-601399][   transport.py][1871] : userauth is OK
2025-07-01 10:14:15,011 [ INFO][       Thread-601399][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:14:15,012 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:14:15,669 [DEBUG][       Thread-601399][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:14:15,670 [DEBUG][       Thread-601399][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:14:15,713 [DEBUG][       Thread-601399][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:14:15,713 [DEBUG][       Thread-601399][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:14:15,717 [DEBUG][       Thread-601399][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:14:15,730 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:14:15,730 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:14:15,732 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:14:15,735 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:14:15,741 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:14:15,743 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:14:15,744 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:14:15,744 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:14:15,745 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.342655 -999.00   +9.50  43.78     54   +0.80 1 2 2 1 1   887    0 8.59 -2.80 ----- 43.8 43.8 22.7 48.6 12.6 -22.7 11.7 -23.1 10.9 -21.9 11.7 -21.5
2025-07-01 10:14:15,745 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:14:15,745 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:14:15,745 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.342655
2025-07-01 10:14:15,745 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:14:15,746 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:14:15,746 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:14:15,746 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:14:15,746 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:14:15,746 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:13:41', tmtdew=10.13, humidity=49.24, cloud=0.0, wind=39.77, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:13:25.392', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:14:15,747 [DEBUG][       Thread-601399][   transport.py][1871] : EOF in transport thread
2025-07-01 10:14:15,820 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:14:15,919 [DEBUG][       Thread-601402][   transport.py][1871] : starting thread (client mode): 0x8155660
2025-07-01 10:14:15,919 [DEBUG][       Thread-601402][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:14:16,021 [DEBUG][       Thread-601402][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:14:16,021 [ INFO][       Thread-601402][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:14:16,181 [DEBUG][       Thread-601402][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:14:16,182 [DEBUG][       Thread-601402][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:14:16,182 [DEBUG][       Thread-601402][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:14:16,182 [DEBUG][       Thread-601402][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:14:16,182 [DEBUG][       Thread-601402][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:14:16,182 [DEBUG][       Thread-601402][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:14:16,182 [DEBUG][       Thread-601402][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:14:16,182 [DEBUG][       Thread-601402][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:14:16,182 [DEBUG][       Thread-601402][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:14:16,182 [DEBUG][       Thread-601402][   transport.py][1871] : client lang: <none>
2025-07-01 10:14:16,182 [DEBUG][       Thread-601402][   transport.py][1871] : server lang: <none>
2025-07-01 10:14:16,182 [DEBUG][       Thread-601402][   transport.py][1871] : kex follows: False
2025-07-01 10:14:16,182 [DEBUG][       Thread-601402][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:14:16,183 [DEBUG][       Thread-601402][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:14:16,183 [DEBUG][       Thread-601402][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:14:16,183 [DEBUG][       Thread-601402][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:14:16,183 [DEBUG][       Thread-601402][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:14:16,183 [DEBUG][       Thread-601402][   transport.py][1871] : Compression: none
2025-07-01 10:14:16,183 [DEBUG][       Thread-601402][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:14:16,337 [DEBUG][       Thread-601402][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:14:16,337 [DEBUG][       Thread-601402][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:14:16,338 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:14:16,338 [DEBUG][       Thread-601402][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:14:16,339 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:14:16,604 [DEBUG][       Thread-601402][   transport.py][1871] : userauth is OK
2025-07-01 10:14:16,605 [DEBUG][       Thread-601402][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:14:16,605 [DEBUG][       Thread-601402][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:14:16,605 [DEBUG][       Thread-601402][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:14:16,605 [DEBUG][       Thread-601402][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:14:16,745 [ INFO][       Thread-601402][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:14:16,746 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:14:16,746 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:14:17,813 [DEBUG][       Thread-601402][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:14:17,813 [DEBUG][       Thread-601402][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:14:17,980 [DEBUG][       Thread-601402][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:14:17,980 [DEBUG][       Thread-601402][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:14:18,059 [DEBUG][Thread-601404 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:14:18,106 [DEBUG][       Thread-601402][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:14:18,191 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:14:18,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')
2025-07-01 10:14:18,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-07-01 10:14:18,344 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:14:18,344 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:14:18,345 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:14:18,441 [DEBUG][       Thread-601402][   transport.py][1871] : EOF in transport thread
2025-07-01 10:14:22,563 [DEBUG][Thread-601405 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:14:27,085 [DEBUG][Thread-601406 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:14:28,355 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:14:28,355 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:14:28,355 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:14:28,358 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:14:28,867 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 14, 13), 10.09, 49.28, 0.0, 35.25, 9.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:14:28,867 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:14:13
2025-07-01 10:14:28,952 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:14:28,956 [DEBUG][       Thread-601407][   transport.py][1871] : starting thread (client mode): 0x82b1660
2025-07-01 10:14:28,956 [DEBUG][       Thread-601407][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:14:28,966 [DEBUG][       Thread-601407][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:14:28,966 [ INFO][       Thread-601407][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:14:28,968 [DEBUG][       Thread-601407][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:14:28,968 [DEBUG][       Thread-601407][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:14:28,968 [DEBUG][       Thread-601407][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:14:28,968 [DEBUG][       Thread-601407][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:14:28,968 [DEBUG][       Thread-601407][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:14:28,968 [DEBUG][       Thread-601407][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:14:28,968 [DEBUG][       Thread-601407][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:14:28,968 [DEBUG][       Thread-601407][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:14:28,968 [DEBUG][       Thread-601407][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:14:28,968 [DEBUG][       Thread-601407][   transport.py][1871] : client lang: <none>
2025-07-01 10:14:28,968 [DEBUG][       Thread-601407][   transport.py][1871] : server lang: <none>
2025-07-01 10:14:28,968 [DEBUG][       Thread-601407][   transport.py][1871] : kex follows: False
2025-07-01 10:14:28,968 [DEBUG][       Thread-601407][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:14:28,968 [DEBUG][       Thread-601407][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:14:28,968 [DEBUG][       Thread-601407][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:14:28,968 [DEBUG][       Thread-601407][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:14:28,968 [DEBUG][       Thread-601407][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:14:28,968 [DEBUG][       Thread-601407][   transport.py][1871] : Compression: none
2025-07-01 10:14:28,968 [DEBUG][       Thread-601407][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:14:28,977 [DEBUG][       Thread-601407][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:14:28,978 [DEBUG][       Thread-601407][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:14:28,978 [DEBUG][       Thread-601407][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:14:28,978 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:14:28,978 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:14:28,979 [DEBUG][       Thread-601407][   transport.py][1871] : userauth is OK
2025-07-01 10:14:28,992 [ INFO][       Thread-601407][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:14:28,992 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:14:29,630 [DEBUG][       Thread-601407][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:14:29,630 [DEBUG][       Thread-601407][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:14:29,673 [DEBUG][       Thread-601407][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:14:29,673 [DEBUG][       Thread-601407][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:14:29,676 [DEBUG][       Thread-601407][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:14:29,688 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:14:29,688 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:14:29,690 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:14:29,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:14:29,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:14:29,698 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:14:29,698 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:14:29,698 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:14:29,699 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.343002 -999.00   +9.50  33.00     54   +0.80 1 2 2 1 1   887    0 8.58 -2.49 ----- 33.0 33.0 23.6 44.5 12.7 -22.3 11.7 -22.7 11.0 -21.3 11.8 -20.8
2025-07-01 10:14:29,699 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:14:29,699 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:14:29,699 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.343002
2025-07-01 10:14:29,699 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:14:29,700 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:14:29,700 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:14:29,700 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:14:29,700 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:14:29,700 [DEBUG][       Thread-601407][   transport.py][1871] : EOF in transport thread
2025-07-01 10:14:29,701 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:14:13', tmtdew=10.09, humidity=49.28, cloud=0.0, wind=35.25, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:13:55.373', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:14:29,784 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:14:29,900 [DEBUG][       Thread-601410][   transport.py][1871] : starting thread (client mode): 0x818c760
2025-07-01 10:14:29,901 [DEBUG][       Thread-601410][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:14:29,979 [DEBUG][       Thread-601410][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:14:29,979 [ INFO][       Thread-601410][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:14:30,041 [DEBUG][       Thread-601410][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:14:30,041 [DEBUG][       Thread-601410][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:14:30,042 [DEBUG][       Thread-601410][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:14:30,042 [DEBUG][       Thread-601410][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:14:30,042 [DEBUG][       Thread-601410][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:14:30,042 [DEBUG][       Thread-601410][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:14:30,042 [DEBUG][       Thread-601410][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:14:30,042 [DEBUG][       Thread-601410][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:14:30,042 [DEBUG][       Thread-601410][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:14:30,042 [DEBUG][       Thread-601410][   transport.py][1871] : client lang: <none>
2025-07-01 10:14:30,042 [DEBUG][       Thread-601410][   transport.py][1871] : server lang: <none>
2025-07-01 10:14:30,042 [DEBUG][       Thread-601410][   transport.py][1871] : kex follows: False
2025-07-01 10:14:30,042 [DEBUG][       Thread-601410][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:14:30,042 [DEBUG][       Thread-601410][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:14:30,042 [DEBUG][       Thread-601410][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:14:30,042 [DEBUG][       Thread-601410][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:14:30,043 [DEBUG][       Thread-601410][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:14:30,043 [DEBUG][       Thread-601410][   transport.py][1871] : Compression: none
2025-07-01 10:14:30,043 [DEBUG][       Thread-601410][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:14:30,527 [DEBUG][       Thread-601410][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:14:30,528 [DEBUG][       Thread-601410][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:14:30,528 [DEBUG][       Thread-601410][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:14:30,528 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:14:30,529 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:14:30,697 [DEBUG][       Thread-601410][   transport.py][1871] : userauth is OK
2025-07-01 10:14:30,697 [DEBUG][       Thread-601410][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:14:30,697 [DEBUG][       Thread-601410][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:14:30,697 [DEBUG][       Thread-601410][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:14:30,697 [DEBUG][       Thread-601410][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:14:30,900 [ INFO][       Thread-601410][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:14:30,900 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:14:30,901 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:14:31,964 [DEBUG][       Thread-601410][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:14:31,964 [DEBUG][       Thread-601410][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:14:32,151 [DEBUG][       Thread-601410][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:14:32,151 [DEBUG][       Thread-601410][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:14:32,266 [DEBUG][       Thread-601410][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:14:32,370 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:14:32,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-07-01 10:14:32,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-07-01 10:14:32,790 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:14:32,790 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:14:32,799 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:14:32,867 [DEBUG][       Thread-601410][   transport.py][1871] : EOF in transport thread
2025-07-01 10:14:36,109 [DEBUG][Thread-601412 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:14:42,809 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:14:42,810 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:14:42,810 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:14:42,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-07-01 10:14:43,303 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 14, 13), 10.09, 49.28, 0.0, 35.25, 9.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:14:43,304 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:14:13
2025-07-01 10:14:43,389 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:14:43,393 [DEBUG][       Thread-601413][   transport.py][1871] : starting thread (client mode): 0x82b20b0
2025-07-01 10:14:43,393 [DEBUG][       Thread-601413][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:14:43,414 [DEBUG][       Thread-601413][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:14:43,414 [ INFO][       Thread-601413][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:14:43,417 [DEBUG][       Thread-601413][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:14:43,418 [DEBUG][       Thread-601413][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:14:43,418 [DEBUG][       Thread-601413][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:14:43,418 [DEBUG][       Thread-601413][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:14:43,418 [DEBUG][       Thread-601413][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:14:43,418 [DEBUG][       Thread-601413][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:14:43,418 [DEBUG][       Thread-601413][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:14:43,418 [DEBUG][       Thread-601413][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:14:43,418 [DEBUG][       Thread-601413][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:14:43,418 [DEBUG][       Thread-601413][   transport.py][1871] : client lang: <none>
2025-07-01 10:14:43,418 [DEBUG][       Thread-601413][   transport.py][1871] : server lang: <none>
2025-07-01 10:14:43,418 [DEBUG][       Thread-601413][   transport.py][1871] : kex follows: False
2025-07-01 10:14:43,418 [DEBUG][       Thread-601413][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:14:43,418 [DEBUG][       Thread-601413][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:14:43,418 [DEBUG][       Thread-601413][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:14:43,418 [DEBUG][       Thread-601413][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:14:43,418 [DEBUG][       Thread-601413][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:14:43,418 [DEBUG][       Thread-601413][   transport.py][1871] : Compression: none
2025-07-01 10:14:43,418 [DEBUG][       Thread-601413][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:14:43,435 [DEBUG][       Thread-601413][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:14:43,435 [DEBUG][       Thread-601413][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:14:43,435 [DEBUG][       Thread-601413][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:14:43,436 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:14:43,436 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:14:43,437 [DEBUG][       Thread-601413][   transport.py][1871] : userauth is OK
2025-07-01 10:14:43,462 [ INFO][       Thread-601413][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:14:43,463 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:14:44,130 [DEBUG][       Thread-601413][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:14:44,130 [DEBUG][       Thread-601413][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:14:44,173 [DEBUG][       Thread-601413][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:14:44,173 [DEBUG][       Thread-601413][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:14:44,176 [DEBUG][       Thread-601413][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:14:44,187 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:14:44,188 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:14:44,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:14:44,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:14:44,197 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:14:44,199 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:14:44,199 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:14:44,199 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:14:44,200 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.343002 -999.00   +9.50  33.00     54   +0.80 1 2 2 1 1   887    0 8.58 -2.49 ----- 33.0 33.0 23.6 44.5 12.7 -22.3 11.7 -22.7 11.0 -21.3 11.8 -20.8
2025-07-01 10:14:44,200 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:14:44,200 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:14:44,200 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.343002
2025-07-01 10:14:44,200 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:14:44,201 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:14:44,201 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:14:44,201 [DEBUG][       Thread-601413][   transport.py][1871] : EOF in transport thread
2025-07-01 10:14:44,201 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:14:44,202 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:14:44,202 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:14:13', tmtdew=10.09, humidity=49.28, cloud=0.0, wind=35.25, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:13:55.373', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:14:44,289 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:14:44,356 [DEBUG][       Thread-601416][   transport.py][1871] : starting thread (client mode): 0x8156e00
2025-07-01 10:14:44,357 [DEBUG][       Thread-601416][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:14:44,464 [DEBUG][       Thread-601416][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:14:44,464 [ INFO][       Thread-601416][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:14:44,539 [DEBUG][       Thread-601416][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:14:44,539 [DEBUG][       Thread-601416][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:14:44,539 [DEBUG][       Thread-601416][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:14:44,539 [DEBUG][       Thread-601416][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:14:44,539 [DEBUG][       Thread-601416][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:14:44,539 [DEBUG][       Thread-601416][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:14:44,540 [DEBUG][       Thread-601416][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:14:44,540 [DEBUG][       Thread-601416][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:14:44,540 [DEBUG][       Thread-601416][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:14:44,540 [DEBUG][       Thread-601416][   transport.py][1871] : client lang: <none>
2025-07-01 10:14:44,540 [DEBUG][       Thread-601416][   transport.py][1871] : server lang: <none>
2025-07-01 10:14:44,540 [DEBUG][       Thread-601416][   transport.py][1871] : kex follows: False
2025-07-01 10:14:44,540 [DEBUG][       Thread-601416][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:14:44,540 [DEBUG][       Thread-601416][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:14:44,540 [DEBUG][       Thread-601416][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:14:44,541 [DEBUG][       Thread-601416][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:14:44,541 [DEBUG][       Thread-601416][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:14:44,541 [DEBUG][       Thread-601416][   transport.py][1871] : Compression: none
2025-07-01 10:14:44,541 [DEBUG][       Thread-601416][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:14:44,671 [DEBUG][       Thread-601416][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:14:44,672 [DEBUG][       Thread-601416][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:14:44,673 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:14:44,673 [DEBUG][       Thread-601416][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:14:44,674 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:14:44,882 [DEBUG][       Thread-601416][   transport.py][1871] : userauth is OK
2025-07-01 10:14:44,883 [DEBUG][       Thread-601416][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:14:44,883 [DEBUG][       Thread-601416][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:14:44,883 [DEBUG][       Thread-601416][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:14:44,883 [DEBUG][       Thread-601416][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:14:44,978 [ INFO][       Thread-601416][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:14:44,979 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:14:44,979 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:14:45,144 [DEBUG][Thread-601418 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:14:46,379 [DEBUG][       Thread-601416][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:14:46,379 [DEBUG][       Thread-601416][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:14:46,428 [DEBUG][       Thread-601416][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:14:46,428 [DEBUG][       Thread-601416][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:14:46,436 [DEBUG][       Thread-601416][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:14:46,444 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:14:46,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')
2025-07-01 10:14:46,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-07-01 10:14:46,460 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:14:46,460 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:14:46,460 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:14:46,468 [DEBUG][       Thread-601416][   transport.py][1871] : EOF in transport thread
2025-07-01 10:14:54,165 [DEBUG][Thread-601419 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:14:56,470 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:14:56,471 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:14:56,471 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:14:56,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-07-01 10:14:56,968 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 14, 44), 10.04, 49.42, 0.0, 31.53, 9.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:14:56,968 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:14:44
2025-07-01 10:14:57,054 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:14:57,058 [DEBUG][       Thread-601420][   transport.py][1871] : starting thread (client mode): 0x81e5840
2025-07-01 10:14:57,058 [DEBUG][       Thread-601420][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:14:57,079 [DEBUG][       Thread-601420][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:14:57,079 [ INFO][       Thread-601420][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:14:57,082 [DEBUG][       Thread-601420][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:14:57,082 [DEBUG][       Thread-601420][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:14:57,082 [DEBUG][       Thread-601420][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:14:57,082 [DEBUG][       Thread-601420][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:14:57,082 [DEBUG][       Thread-601420][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:14:57,082 [DEBUG][       Thread-601420][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:14:57,082 [DEBUG][       Thread-601420][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:14:57,082 [DEBUG][       Thread-601420][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:14:57,082 [DEBUG][       Thread-601420][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:14:57,082 [DEBUG][       Thread-601420][   transport.py][1871] : client lang: <none>
2025-07-01 10:14:57,082 [DEBUG][       Thread-601420][   transport.py][1871] : server lang: <none>
2025-07-01 10:14:57,082 [DEBUG][       Thread-601420][   transport.py][1871] : kex follows: False
2025-07-01 10:14:57,082 [DEBUG][       Thread-601420][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:14:57,082 [DEBUG][       Thread-601420][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:14:57,082 [DEBUG][       Thread-601420][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:14:57,082 [DEBUG][       Thread-601420][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:14:57,082 [DEBUG][       Thread-601420][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:14:57,083 [DEBUG][       Thread-601420][   transport.py][1871] : Compression: none
2025-07-01 10:14:57,083 [DEBUG][       Thread-601420][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:14:57,101 [DEBUG][       Thread-601420][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:14:57,101 [DEBUG][       Thread-601420][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:14:57,102 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:14:57,102 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:14:57,102 [DEBUG][       Thread-601420][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:14:57,103 [DEBUG][       Thread-601420][   transport.py][1871] : userauth is OK
2025-07-01 10:14:57,117 [ INFO][       Thread-601420][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:14:57,117 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:14:57,594 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:14:57,595 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:14:57,762 [DEBUG][       Thread-601420][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:14:57,763 [DEBUG][       Thread-601420][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:14:57,805 [DEBUG][       Thread-601420][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:14:57,805 [DEBUG][       Thread-601420][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:14:57,808 [DEBUG][       Thread-601420][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:14:57,822 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:14:57,822 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:14:57,824 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:14:57,826 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:14:57,832 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:14:57,835 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:14:57,835 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:14:57,835 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:14:57,836 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.343002 -999.00   +9.50  33.00     54   +0.80 1 2 2 1 1   887    0 8.58 -2.49 ----- 33.0 33.0 23.6 44.5 12.7 -22.3 11.7 -22.7 11.0 -21.3 11.8 -20.8
2025-07-01 10:14:57,836 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:14:57,836 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:14:57,836 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.343002
2025-07-01 10:14:57,836 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:14:57,837 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:14:57,837 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:14:57,837 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:14:57,837 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:14:57,837 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:14:44', tmtdew=10.04, humidity=49.42, cloud=0.0, wind=31.53, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:13:55.373', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:14:57,838 [DEBUG][       Thread-601420][   transport.py][1871] : EOF in transport thread
2025-07-01 10:14:57,921 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:14:57,935 [DEBUG][       Thread-601423][   transport.py][1871] : starting thread (client mode): 0x8106b60
2025-07-01 10:14:57,935 [DEBUG][       Thread-601423][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:14:57,950 [DEBUG][       Thread-601423][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:14:57,950 [ INFO][       Thread-601423][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:14:57,958 [DEBUG][       Thread-601423][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:14:57,958 [DEBUG][       Thread-601423][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:14:57,958 [DEBUG][       Thread-601423][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:14:57,958 [DEBUG][       Thread-601423][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:14:57,958 [DEBUG][       Thread-601423][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:14:57,958 [DEBUG][       Thread-601423][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:14:57,958 [DEBUG][       Thread-601423][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:14:57,958 [DEBUG][       Thread-601423][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:14:57,958 [DEBUG][       Thread-601423][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:14:57,958 [DEBUG][       Thread-601423][   transport.py][1871] : client lang: <none>
2025-07-01 10:14:57,958 [DEBUG][       Thread-601423][   transport.py][1871] : server lang: <none>
2025-07-01 10:14:57,958 [DEBUG][       Thread-601423][   transport.py][1871] : kex follows: False
2025-07-01 10:14:57,958 [DEBUG][       Thread-601423][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:14:57,958 [DEBUG][       Thread-601423][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:14:57,959 [DEBUG][       Thread-601423][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:14:57,959 [DEBUG][       Thread-601423][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:14:57,959 [DEBUG][       Thread-601423][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:14:57,959 [DEBUG][       Thread-601423][   transport.py][1871] : Compression: none
2025-07-01 10:14:57,959 [DEBUG][       Thread-601423][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:14:58,018 [DEBUG][       Thread-601423][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:14:58,018 [DEBUG][       Thread-601423][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:14:58,019 [DEBUG][       Thread-601423][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:14:58,019 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:14:58,020 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:14:58,079 [DEBUG][       Thread-601423][   transport.py][1871] : userauth is OK
2025-07-01 10:14:58,080 [DEBUG][       Thread-601423][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:14:58,080 [DEBUG][       Thread-601423][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:14:58,080 [DEBUG][       Thread-601423][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:14:58,080 [DEBUG][       Thread-601423][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:14:58,099 [ INFO][       Thread-601423][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:14:58,099 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:14:58,100 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:14:59,130 [DEBUG][       Thread-601423][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:14:59,130 [DEBUG][       Thread-601423][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:14:59,184 [DEBUG][       Thread-601423][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:14:59,184 [DEBUG][       Thread-601423][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:14:59,193 [DEBUG][       Thread-601423][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:14:59,202 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:14:59,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-07-01 10:14:59,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-07-01 10:14:59,221 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:14:59,221 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:14:59,221 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:14:59,230 [DEBUG][       Thread-601423][   transport.py][1871] : EOF in transport thread
2025-07-01 10:15:03,187 [DEBUG][Thread-601425 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:15:09,232 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:15:09,232 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:15:09,232 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:15:09,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-07-01 10:15:09,731 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 14, 44), 10.04, 49.42, 0.0, 31.53, 9.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:15:09,731 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:14:44
2025-07-01 10:15:09,815 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:15:09,819 [DEBUG][       Thread-601426][   transport.py][1871] : starting thread (client mode): 0x81725f0
2025-07-01 10:15:09,819 [DEBUG][       Thread-601426][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:15:09,840 [DEBUG][       Thread-601426][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:15:09,840 [ INFO][       Thread-601426][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:15:09,843 [DEBUG][       Thread-601426][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:15:09,843 [DEBUG][       Thread-601426][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:15:09,843 [DEBUG][       Thread-601426][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:15:09,843 [DEBUG][       Thread-601426][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:15:09,843 [DEBUG][       Thread-601426][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:15:09,843 [DEBUG][       Thread-601426][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:15:09,843 [DEBUG][       Thread-601426][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:15:09,844 [DEBUG][       Thread-601426][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:15:09,844 [DEBUG][       Thread-601426][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:15:09,844 [DEBUG][       Thread-601426][   transport.py][1871] : client lang: <none>
2025-07-01 10:15:09,844 [DEBUG][       Thread-601426][   transport.py][1871] : server lang: <none>
2025-07-01 10:15:09,844 [DEBUG][       Thread-601426][   transport.py][1871] : kex follows: False
2025-07-01 10:15:09,844 [DEBUG][       Thread-601426][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:15:09,844 [DEBUG][       Thread-601426][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:15:09,844 [DEBUG][       Thread-601426][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:15:09,844 [DEBUG][       Thread-601426][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:15:09,844 [DEBUG][       Thread-601426][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:15:09,844 [DEBUG][       Thread-601426][   transport.py][1871] : Compression: none
2025-07-01 10:15:09,844 [DEBUG][       Thread-601426][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:15:09,861 [DEBUG][       Thread-601426][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:15:09,861 [DEBUG][       Thread-601426][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:15:09,861 [DEBUG][       Thread-601426][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:15:09,862 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:15:09,862 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:15:09,863 [DEBUG][       Thread-601426][   transport.py][1871] : userauth is OK
2025-07-01 10:15:09,876 [ INFO][       Thread-601426][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:15:09,876 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:15:10,522 [DEBUG][       Thread-601426][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:15:10,522 [DEBUG][       Thread-601426][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:15:10,565 [DEBUG][       Thread-601426][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:15:10,565 [DEBUG][       Thread-601426][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:15:10,568 [DEBUG][       Thread-601426][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:15:10,580 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:15:10,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:15:10,583 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:15:10,585 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:15:10,591 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:15:10,593 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:15:10,593 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:15:10,594 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:15:10,594 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.343697 -999.00   +9.50  40.56     54   +0.80 1 2 2 1 1   887    0 8.65 -2.58 ----- 40.6 40.6 21.2 55.1 12.7 -22.5 11.8 -22.5 11.0 -21.6 11.8 -21.3
2025-07-01 10:15:10,594 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:15:10,594 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:15:10,594 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.343697
2025-07-01 10:15:10,594 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:15:10,595 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:15:10,595 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:15:10,595 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:15:10,595 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:15:10,595 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:14:44', tmtdew=10.04, humidity=49.42, cloud=0.0, wind=31.53, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:14:55.421', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:15:10,596 [DEBUG][       Thread-601426][   transport.py][1871] : EOF in transport thread
2025-07-01 10:15:10,676 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:15:12,219 [DEBUG][Thread-601429 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:15:21,239 [DEBUG][Thread-601430 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:15:22,595 [DEBUG][Thread-601431 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:15:30,261 [DEBUG][Thread-601432 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:15:39,284 [DEBUG][Thread-601433 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:15:48,307 [DEBUG][Thread-601434 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:15:57,328 [DEBUG][Thread-601435 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:15:57,733 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:15:57,734 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:16:06,347 [DEBUG][Thread-601436 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:16:15,368 [DEBUG][Thread-601437 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:16:22,638 [DEBUG][Thread-601438 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:16:24,391 [DEBUG][Thread-601439 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:16:33,413 [DEBUG][Thread-601440 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:16:42,433 [DEBUG][Thread-601441 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:16:51,452 [DEBUG][Thread-601442 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:16:57,873 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:16:57,874 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:17:00,473 [DEBUG][Thread-601443 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:17:09,495 [DEBUG][Thread-601444 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:17:18,514 [DEBUG][Thread-601445 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:17:19,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-07-01 10:17:22,666 [DEBUG][Thread-601446 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:17:27,535 [DEBUG][Thread-601447 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:17:29,646 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:17:29,647 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:17:29,647 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:17:29,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-07-01 10:17:30,169 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 17, 23), 10.02, 49.61, 0.0, 43.19, 9.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:17:30,169 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:17:23
2025-07-01 10:17:30,256 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:17:30,260 [DEBUG][       Thread-601448][   transport.py][1871] : starting thread (client mode): 0x81700a0
2025-07-01 10:17:30,260 [DEBUG][       Thread-601448][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:17:30,280 [DEBUG][       Thread-601448][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:17:30,280 [ INFO][       Thread-601448][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:17:30,283 [DEBUG][       Thread-601448][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:17:30,283 [DEBUG][       Thread-601448][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:17:30,283 [DEBUG][       Thread-601448][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:17:30,283 [DEBUG][       Thread-601448][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:17:30,283 [DEBUG][       Thread-601448][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:17:30,283 [DEBUG][       Thread-601448][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:17:30,284 [DEBUG][       Thread-601448][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:17:30,284 [DEBUG][       Thread-601448][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:17:30,284 [DEBUG][       Thread-601448][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:17:30,284 [DEBUG][       Thread-601448][   transport.py][1871] : client lang: <none>
2025-07-01 10:17:30,284 [DEBUG][       Thread-601448][   transport.py][1871] : server lang: <none>
2025-07-01 10:17:30,284 [DEBUG][       Thread-601448][   transport.py][1871] : kex follows: False
2025-07-01 10:17:30,284 [DEBUG][       Thread-601448][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:17:30,284 [DEBUG][       Thread-601448][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:17:30,284 [DEBUG][       Thread-601448][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:17:30,284 [DEBUG][       Thread-601448][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:17:30,284 [DEBUG][       Thread-601448][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:17:30,284 [DEBUG][       Thread-601448][   transport.py][1871] : Compression: none
2025-07-01 10:17:30,284 [DEBUG][       Thread-601448][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:17:30,292 [DEBUG][       Thread-601448][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:17:30,292 [DEBUG][       Thread-601448][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:17:30,293 [DEBUG][       Thread-601448][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:17:30,293 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:17:30,293 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:17:30,294 [DEBUG][       Thread-601448][   transport.py][1871] : userauth is OK
2025-07-01 10:17:30,318 [ INFO][       Thread-601448][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:17:30,319 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:17:30,900 [DEBUG][       Thread-601448][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:17:30,900 [DEBUG][       Thread-601448][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:17:30,941 [DEBUG][       Thread-601448][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:17:30,941 [DEBUG][       Thread-601448][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:17:30,943 [DEBUG][       Thread-601448][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:17:30,957 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:17:30,957 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:17:30,959 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:17:30,962 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:17:30,968 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:17:30,970 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:17:30,970 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:17:30,971 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:17:30,971 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.345085 -999.00   +9.50  40.96     54   +0.80 1 1 2 1 1   887    0 8.66 -1.76 ----- 41.0 41.0 18.7 50.5 12.6 -23.4 11.7 -23.9 11.0 -22.6 11.7 -21.9
2025-07-01 10:17:30,971 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:17:30,971 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:17:30,971 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.345085
2025-07-01 10:17:30,971 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:17:30,972 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:17:30,972 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:17:30,972 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:17:30,972 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:17:30,972 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:17:23', tmtdew=10.02, humidity=49.61, cloud=0.0, wind=43.19, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:16:55.344', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:17:30,973 [DEBUG][       Thread-601448][   transport.py][1871] : EOF in transport thread
2025-07-01 10:17:31,056 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:17:31,068 [DEBUG][       Thread-601451][   transport.py][1871] : starting thread (client mode): 0x82b18a0
2025-07-01 10:17:31,068 [DEBUG][       Thread-601451][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:17:31,084 [DEBUG][       Thread-601451][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:17:31,084 [ INFO][       Thread-601451][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:17:31,091 [DEBUG][       Thread-601451][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:17:31,092 [DEBUG][       Thread-601451][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:17:31,092 [DEBUG][       Thread-601451][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:17:31,092 [DEBUG][       Thread-601451][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:17:31,092 [DEBUG][       Thread-601451][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:17:31,092 [DEBUG][       Thread-601451][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:17:31,092 [DEBUG][       Thread-601451][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:17:31,092 [DEBUG][       Thread-601451][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:17:31,092 [DEBUG][       Thread-601451][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:17:31,092 [DEBUG][       Thread-601451][   transport.py][1871] : client lang: <none>
2025-07-01 10:17:31,092 [DEBUG][       Thread-601451][   transport.py][1871] : server lang: <none>
2025-07-01 10:17:31,092 [DEBUG][       Thread-601451][   transport.py][1871] : kex follows: False
2025-07-01 10:17:31,092 [DEBUG][       Thread-601451][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:17:31,092 [DEBUG][       Thread-601451][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:17:31,092 [DEBUG][       Thread-601451][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:17:31,092 [DEBUG][       Thread-601451][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:17:31,092 [DEBUG][       Thread-601451][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:17:31,093 [DEBUG][       Thread-601451][   transport.py][1871] : Compression: none
2025-07-01 10:17:31,093 [DEBUG][       Thread-601451][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:17:31,150 [DEBUG][       Thread-601451][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:17:31,151 [DEBUG][       Thread-601451][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:17:31,152 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:17:31,153 [DEBUG][       Thread-601451][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:17:31,153 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:17:31,209 [DEBUG][       Thread-601451][   transport.py][1871] : userauth is OK
2025-07-01 10:17:31,209 [DEBUG][       Thread-601451][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:17:31,210 [DEBUG][       Thread-601451][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:17:31,210 [DEBUG][       Thread-601451][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:17:31,210 [DEBUG][       Thread-601451][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:17:31,227 [ INFO][       Thread-601451][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:17:31,227 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:17:31,227 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:17:32,259 [DEBUG][       Thread-601451][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:17:32,260 [DEBUG][       Thread-601451][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:17:32,308 [DEBUG][       Thread-601451][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:17:32,308 [DEBUG][       Thread-601451][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:17:32,318 [DEBUG][       Thread-601451][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:17:32,328 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:17:32,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')
2025-07-01 10:17:32,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') -> 00000000
2025-07-01 10:17:32,346 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:17:32,346 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:17:32,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:17:32,355 [DEBUG][       Thread-601451][   transport.py][1871] : EOF in transport thread
2025-07-01 10:17:36,558 [DEBUG][Thread-601453 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:17:42,357 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:17:42,358 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:17:42,358 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:17:42,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-07-01 10:17:42,866 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 17, 23), 10.02, 49.61, 0.0, 43.19, 9.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:17:42,866 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:17:23
2025-07-01 10:17:42,953 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:17:42,957 [DEBUG][       Thread-601454][   transport.py][1871] : starting thread (client mode): 0x8104bb0
2025-07-01 10:17:42,957 [DEBUG][       Thread-601454][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:17:42,977 [DEBUG][       Thread-601454][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:17:42,977 [ INFO][       Thread-601454][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:17:42,978 [DEBUG][       Thread-601454][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:17:42,978 [DEBUG][       Thread-601454][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:17:42,978 [DEBUG][       Thread-601454][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:17:42,979 [DEBUG][       Thread-601454][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:17:42,979 [DEBUG][       Thread-601454][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:17:42,979 [DEBUG][       Thread-601454][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:17:42,979 [DEBUG][       Thread-601454][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:17:42,979 [DEBUG][       Thread-601454][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:17:42,979 [DEBUG][       Thread-601454][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:17:42,979 [DEBUG][       Thread-601454][   transport.py][1871] : client lang: <none>
2025-07-01 10:17:42,979 [DEBUG][       Thread-601454][   transport.py][1871] : server lang: <none>
2025-07-01 10:17:42,979 [DEBUG][       Thread-601454][   transport.py][1871] : kex follows: False
2025-07-01 10:17:42,979 [DEBUG][       Thread-601454][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:17:42,979 [DEBUG][       Thread-601454][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:17:42,979 [DEBUG][       Thread-601454][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:17:42,979 [DEBUG][       Thread-601454][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:17:42,979 [DEBUG][       Thread-601454][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:17:42,979 [DEBUG][       Thread-601454][   transport.py][1871] : Compression: none
2025-07-01 10:17:42,979 [DEBUG][       Thread-601454][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:17:42,992 [DEBUG][       Thread-601454][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:17:42,992 [DEBUG][       Thread-601454][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:17:42,993 [DEBUG][       Thread-601454][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:17:42,993 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:17:42,993 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:17:42,994 [DEBUG][       Thread-601454][   transport.py][1871] : userauth is OK
2025-07-01 10:17:43,019 [ INFO][       Thread-601454][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:17:43,020 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:17:43,834 [DEBUG][       Thread-601454][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:17:43,834 [DEBUG][       Thread-601454][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:17:43,877 [DEBUG][       Thread-601454][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:17:43,877 [DEBUG][       Thread-601454][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:17:43,880 [DEBUG][       Thread-601454][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:17:43,891 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:17:43,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:17:43,893 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:17:43,895 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:17:43,899 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:17:43,901 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:17:43,901 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:17:43,902 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:17:43,902 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.345085 -999.00   +9.50  40.96     54   +0.80 1 1 2 1 1   887    0 8.66 -1.76 ----- 41.0 41.0 18.7 50.5 12.6 -23.4 11.7 -23.9 11.0 -22.6 11.7 -21.9
2025-07-01 10:17:43,902 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:17:43,902 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:17:43,903 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.345085
2025-07-01 10:17:43,903 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:17:43,904 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:17:43,904 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:17:43,904 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:17:43,904 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:17:43,904 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:17:23', tmtdew=10.02, humidity=49.61, cloud=0.0, wind=43.19, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:16:55.344', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:17:43,905 [DEBUG][       Thread-601454][   transport.py][1871] : EOF in transport thread
2025-07-01 10:17:43,989 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:17:43,998 [DEBUG][       Thread-601457][   transport.py][1871] : starting thread (client mode): 0x8156320
2025-07-01 10:17:43,998 [DEBUG][       Thread-601457][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:17:44,015 [DEBUG][       Thread-601457][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:17:44,015 [ INFO][       Thread-601457][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:17:44,022 [DEBUG][       Thread-601457][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:17:44,022 [DEBUG][       Thread-601457][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:17:44,022 [DEBUG][       Thread-601457][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:17:44,022 [DEBUG][       Thread-601457][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:17:44,022 [DEBUG][       Thread-601457][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:17:44,022 [DEBUG][       Thread-601457][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:17:44,022 [DEBUG][       Thread-601457][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:17:44,022 [DEBUG][       Thread-601457][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:17:44,023 [DEBUG][       Thread-601457][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:17:44,023 [DEBUG][       Thread-601457][   transport.py][1871] : client lang: <none>
2025-07-01 10:17:44,023 [DEBUG][       Thread-601457][   transport.py][1871] : server lang: <none>
2025-07-01 10:17:44,023 [DEBUG][       Thread-601457][   transport.py][1871] : kex follows: False
2025-07-01 10:17:44,023 [DEBUG][       Thread-601457][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:17:44,023 [DEBUG][       Thread-601457][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:17:44,023 [DEBUG][       Thread-601457][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:17:44,023 [DEBUG][       Thread-601457][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:17:44,023 [DEBUG][       Thread-601457][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:17:44,023 [DEBUG][       Thread-601457][   transport.py][1871] : Compression: none
2025-07-01 10:17:44,023 [DEBUG][       Thread-601457][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:17:44,081 [DEBUG][       Thread-601457][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:17:44,081 [DEBUG][       Thread-601457][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:17:44,082 [DEBUG][       Thread-601457][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:17:44,082 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:17:44,083 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:17:44,137 [DEBUG][       Thread-601457][   transport.py][1871] : userauth is OK
2025-07-01 10:17:44,138 [DEBUG][       Thread-601457][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:17:44,138 [DEBUG][       Thread-601457][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:17:44,138 [DEBUG][       Thread-601457][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:17:44,138 [DEBUG][       Thread-601457][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:17:44,156 [ INFO][       Thread-601457][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:17:44,157 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:17:44,157 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:17:45,186 [DEBUG][       Thread-601457][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:17:45,186 [DEBUG][       Thread-601457][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:17:45,238 [DEBUG][       Thread-601457][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:17:45,239 [DEBUG][       Thread-601457][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:17:45,251 [DEBUG][       Thread-601457][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:17:45,261 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:17:45,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-07-01 10:17:45,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-07-01 10:17:45,279 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:17:45,279 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:17:45,280 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:17:45,288 [DEBUG][       Thread-601457][   transport.py][1871] : EOF in transport thread
2025-07-01 10:17:45,601 [DEBUG][Thread-601459 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:17:54,629 [DEBUG][Thread-601460 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:17:55,290 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:17:55,291 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:17:55,291 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:17:55,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-07-01 10:17:55,801 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 17, 23), 10.02, 49.61, 0.0, 43.19, 9.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:17:55,801 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:17:23
2025-07-01 10:17:55,888 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:17:55,893 [DEBUG][       Thread-601461][   transport.py][1871] : starting thread (client mode): 0x75ab730
2025-07-01 10:17:55,897 [DEBUG][       Thread-601461][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:17:55,915 [DEBUG][       Thread-601461][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:17:55,915 [ INFO][       Thread-601461][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:17:55,918 [DEBUG][       Thread-601461][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:17:55,918 [DEBUG][       Thread-601461][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:17:55,918 [DEBUG][       Thread-601461][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:17:55,918 [DEBUG][       Thread-601461][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:17:55,918 [DEBUG][       Thread-601461][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:17:55,918 [DEBUG][       Thread-601461][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:17:55,918 [DEBUG][       Thread-601461][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:17:55,918 [DEBUG][       Thread-601461][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:17:55,918 [DEBUG][       Thread-601461][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:17:55,918 [DEBUG][       Thread-601461][   transport.py][1871] : client lang: <none>
2025-07-01 10:17:55,918 [DEBUG][       Thread-601461][   transport.py][1871] : server lang: <none>
2025-07-01 10:17:55,918 [DEBUG][       Thread-601461][   transport.py][1871] : kex follows: False
2025-07-01 10:17:55,918 [DEBUG][       Thread-601461][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:17:55,918 [DEBUG][       Thread-601461][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:17:55,918 [DEBUG][       Thread-601461][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:17:55,918 [DEBUG][       Thread-601461][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:17:55,918 [DEBUG][       Thread-601461][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:17:55,918 [DEBUG][       Thread-601461][   transport.py][1871] : Compression: none
2025-07-01 10:17:55,918 [DEBUG][       Thread-601461][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:17:55,935 [DEBUG][       Thread-601461][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:17:55,935 [DEBUG][       Thread-601461][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:17:55,936 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:17:55,936 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:17:55,937 [DEBUG][       Thread-601461][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:17:55,977 [DEBUG][       Thread-601461][   transport.py][1871] : userauth is OK
2025-07-01 10:17:56,002 [ INFO][       Thread-601461][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:17:56,002 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:17:56,580 [DEBUG][       Thread-601461][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:17:56,581 [DEBUG][       Thread-601461][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:17:56,624 [DEBUG][       Thread-601461][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:17:56,624 [DEBUG][       Thread-601461][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:17:56,627 [DEBUG][       Thread-601461][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:17:56,638 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:17:56,638 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:17:56,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:17:56,640 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:17:56,642 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:17:56,643 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:17:56,643 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:17:56,643 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:17:56,643 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.345433 -999.00   +9.50  46.87     54   +0.80 1 2 2 1 1   887    0 8.63 -1.58 ----- 46.9 46.9 20.2 56.7 12.6 -22.1 11.7 -23.0 11.0 -22.2 11.7 -22.2
2025-07-01 10:17:56,643 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:17:56,643 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:17:56,643 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.345433
2025-07-01 10:17:56,643 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:17:56,644 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:17:56,644 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:17:56,644 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:17:56,644 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:17:56,644 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:17:23', tmtdew=10.02, humidity=49.61, cloud=0.0, wind=43.19, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:17:25.411', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:17:56,644 [DEBUG][       Thread-601461][   transport.py][1871] : EOF in transport thread
2025-07-01 10:17:56,718 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:17:56,729 [DEBUG][       Thread-601464][   transport.py][1871] : starting thread (client mode): 0x81a7970
2025-07-01 10:17:56,729 [DEBUG][       Thread-601464][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:17:56,747 [DEBUG][       Thread-601464][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:17:56,747 [ INFO][       Thread-601464][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:17:56,755 [DEBUG][       Thread-601464][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:17:56,755 [DEBUG][       Thread-601464][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:17:56,755 [DEBUG][       Thread-601464][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:17:56,755 [DEBUG][       Thread-601464][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:17:56,755 [DEBUG][       Thread-601464][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:17:56,755 [DEBUG][       Thread-601464][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:17:56,755 [DEBUG][       Thread-601464][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:17:56,755 [DEBUG][       Thread-601464][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:17:56,755 [DEBUG][       Thread-601464][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:17:56,755 [DEBUG][       Thread-601464][   transport.py][1871] : client lang: <none>
2025-07-01 10:17:56,755 [DEBUG][       Thread-601464][   transport.py][1871] : server lang: <none>
2025-07-01 10:17:56,755 [DEBUG][       Thread-601464][   transport.py][1871] : kex follows: False
2025-07-01 10:17:56,755 [DEBUG][       Thread-601464][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:17:56,755 [DEBUG][       Thread-601464][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:17:56,755 [DEBUG][       Thread-601464][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:17:56,755 [DEBUG][       Thread-601464][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:17:56,755 [DEBUG][       Thread-601464][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:17:56,755 [DEBUG][       Thread-601464][   transport.py][1871] : Compression: none
2025-07-01 10:17:56,755 [DEBUG][       Thread-601464][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:17:56,811 [DEBUG][       Thread-601464][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:17:56,812 [DEBUG][       Thread-601464][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:17:56,812 [DEBUG][       Thread-601464][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:17:56,812 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:17:56,812 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:17:56,870 [DEBUG][       Thread-601464][   transport.py][1871] : userauth is OK
2025-07-01 10:17:56,870 [DEBUG][       Thread-601464][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:17:56,870 [DEBUG][       Thread-601464][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:17:56,870 [DEBUG][       Thread-601464][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:17:56,870 [DEBUG][       Thread-601464][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:17:56,887 [ INFO][       Thread-601464][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:17:56,887 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:17:56,888 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:17:57,913 [DEBUG][       Thread-601464][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:17:57,913 [DEBUG][       Thread-601464][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:17:57,963 [DEBUG][       Thread-601464][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:17:57,963 [DEBUG][       Thread-601464][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:17:57,971 [DEBUG][       Thread-601464][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:17:57,979 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:17:57,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-07-01 10:17:57,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-07-01 10:17:57,995 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:17:57,995 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:17:57,995 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:17:58,003 [DEBUG][       Thread-601464][   transport.py][1871] : EOF in transport thread
2025-07-01 10:17:58,012 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:17:58,013 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:18:03,648 [DEBUG][Thread-601466 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:18:08,005 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:18:08,005 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:18:08,006 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:18: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-07-01 10:18:08,529 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 17, 56), 10.06, 49.49, 0.0, 43.81, 9.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:18:08,529 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:17:56
2025-07-01 10:18:08,616 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:18:08,620 [DEBUG][       Thread-601467][   transport.py][1871] : starting thread (client mode): 0x8170dc0
2025-07-01 10:18:08,620 [DEBUG][       Thread-601467][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:18:08,639 [DEBUG][       Thread-601467][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:18:08,639 [ INFO][       Thread-601467][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:18:08,642 [DEBUG][       Thread-601467][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:18:08,642 [DEBUG][       Thread-601467][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:18:08,642 [DEBUG][       Thread-601467][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:18:08,642 [DEBUG][       Thread-601467][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:18:08,642 [DEBUG][       Thread-601467][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:18:08,642 [DEBUG][       Thread-601467][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:18:08,642 [DEBUG][       Thread-601467][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:18:08,642 [DEBUG][       Thread-601467][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:18:08,642 [DEBUG][       Thread-601467][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:18:08,642 [DEBUG][       Thread-601467][   transport.py][1871] : client lang: <none>
2025-07-01 10:18:08,642 [DEBUG][       Thread-601467][   transport.py][1871] : server lang: <none>
2025-07-01 10:18:08,642 [DEBUG][       Thread-601467][   transport.py][1871] : kex follows: False
2025-07-01 10:18:08,642 [DEBUG][       Thread-601467][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:18:08,642 [DEBUG][       Thread-601467][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:18:08,642 [DEBUG][       Thread-601467][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:18:08,642 [DEBUG][       Thread-601467][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:18:08,642 [DEBUG][       Thread-601467][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:18:08,642 [DEBUG][       Thread-601467][   transport.py][1871] : Compression: none
2025-07-01 10:18:08,642 [DEBUG][       Thread-601467][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:18:08,657 [DEBUG][       Thread-601467][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:18:08,657 [DEBUG][       Thread-601467][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:18:08,658 [DEBUG][       Thread-601467][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:18:08,658 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:18:08,658 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:18:08,658 [DEBUG][       Thread-601467][   transport.py][1871] : userauth is OK
2025-07-01 10:18:08,683 [ INFO][       Thread-601467][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:18:08,683 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:18:09,491 [DEBUG][       Thread-601467][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:18:09,491 [DEBUG][       Thread-601467][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:18:09,533 [DEBUG][       Thread-601467][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:18:09,533 [DEBUG][       Thread-601467][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:18:09,535 [DEBUG][       Thread-601467][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:18:09,544 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:18:09,545 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:18:09,546 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:18:09,548 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:18:09,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:18:09,553 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:18:09,554 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:18:09,554 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:18:09,554 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.345433 -999.00   +9.50  46.87     54   +0.80 1 2 2 1 1   887    0 8.63 -1.58 ----- 46.9 46.9 20.2 56.7 12.6 -22.1 11.7 -23.0 11.0 -22.2 11.7 -22.2
2025-07-01 10:18:09,555 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:18:09,555 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:18:09,555 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.345433
2025-07-01 10:18:09,555 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:18:09,556 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:18:09,556 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:18:09,556 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:18:09,556 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:18:09,556 [DEBUG][       Thread-601467][   transport.py][1871] : EOF in transport thread
2025-07-01 10:18:09,556 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:17:56', tmtdew=10.06, humidity=49.49, cloud=0.0, wind=43.81, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:17:25.411', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:18:09,639 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:18:09,649 [DEBUG][       Thread-601470][   transport.py][1871] : starting thread (client mode): 0x81e58d0
2025-07-01 10:18:09,649 [DEBUG][       Thread-601470][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:18:09,664 [DEBUG][       Thread-601470][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:18:09,664 [ INFO][       Thread-601470][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:18:09,672 [DEBUG][       Thread-601470][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:18:09,672 [DEBUG][       Thread-601470][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:18:09,672 [DEBUG][       Thread-601470][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:18:09,672 [DEBUG][       Thread-601470][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:18:09,672 [DEBUG][       Thread-601470][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:18:09,672 [DEBUG][       Thread-601470][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:18:09,672 [DEBUG][       Thread-601470][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:18:09,672 [DEBUG][       Thread-601470][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:18:09,672 [DEBUG][       Thread-601470][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:18:09,672 [DEBUG][       Thread-601470][   transport.py][1871] : client lang: <none>
2025-07-01 10:18:09,672 [DEBUG][       Thread-601470][   transport.py][1871] : server lang: <none>
2025-07-01 10:18:09,672 [DEBUG][       Thread-601470][   transport.py][1871] : kex follows: False
2025-07-01 10:18:09,672 [DEBUG][       Thread-601470][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:18:09,672 [DEBUG][       Thread-601470][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:18:09,673 [DEBUG][       Thread-601470][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:18:09,673 [DEBUG][       Thread-601470][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:18:09,673 [DEBUG][       Thread-601470][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:18:09,673 [DEBUG][       Thread-601470][   transport.py][1871] : Compression: none
2025-07-01 10:18:09,673 [DEBUG][       Thread-601470][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:18:09,730 [DEBUG][       Thread-601470][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:18:09,731 [DEBUG][       Thread-601470][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:18:09,731 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:18:09,732 [DEBUG][       Thread-601470][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:18:09,732 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:18:09,752 [DEBUG][       Thread-601470][   transport.py][1871] : userauth is OK
2025-07-01 10:18:09,753 [DEBUG][       Thread-601470][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:18:09,753 [DEBUG][       Thread-601470][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:18:09,753 [DEBUG][       Thread-601470][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:18:09,753 [DEBUG][       Thread-601470][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:18:09,772 [ INFO][       Thread-601470][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:18:09,772 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:18:09,773 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:18:10,769 [DEBUG][       Thread-601470][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:18:10,769 [DEBUG][       Thread-601470][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:18:10,820 [DEBUG][       Thread-601470][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:18:10,820 [DEBUG][       Thread-601470][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:18:10,830 [DEBUG][       Thread-601470][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:18:10,839 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:18:10,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-07-01 10:18:10,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-07-01 10:18:10,857 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:18:10,857 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:18:10,857 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:18:10,865 [DEBUG][       Thread-601470][   transport.py][1871] : EOF in transport thread
2025-07-01 10:18:12,682 [DEBUG][Thread-601472 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:18:20,864 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:18:20,864 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:18:20,864 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:18:20,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-07-01 10:18:21,369 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 17, 56), 10.06, 49.49, 0.0, 43.81, 9.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:18:21,369 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:17:56
2025-07-01 10:18:21,456 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:18:21,460 [DEBUG][       Thread-601473][   transport.py][1871] : starting thread (client mode): 0x81e4730
2025-07-01 10:18:21,460 [DEBUG][       Thread-601473][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:18:21,480 [DEBUG][       Thread-601473][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:18:21,480 [ INFO][       Thread-601473][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:18:21,484 [DEBUG][       Thread-601473][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:18:21,484 [DEBUG][       Thread-601473][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:18:21,484 [DEBUG][       Thread-601473][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:18:21,484 [DEBUG][       Thread-601473][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:18:21,484 [DEBUG][       Thread-601473][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:18:21,484 [DEBUG][       Thread-601473][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:18:21,484 [DEBUG][       Thread-601473][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:18:21,484 [DEBUG][       Thread-601473][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:18:21,484 [DEBUG][       Thread-601473][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:18:21,484 [DEBUG][       Thread-601473][   transport.py][1871] : client lang: <none>
2025-07-01 10:18:21,484 [DEBUG][       Thread-601473][   transport.py][1871] : server lang: <none>
2025-07-01 10:18:21,484 [DEBUG][       Thread-601473][   transport.py][1871] : kex follows: False
2025-07-01 10:18:21,484 [DEBUG][       Thread-601473][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:18:21,484 [DEBUG][       Thread-601473][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:18:21,484 [DEBUG][       Thread-601473][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:18:21,484 [DEBUG][       Thread-601473][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:18:21,484 [DEBUG][       Thread-601473][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:18:21,484 [DEBUG][       Thread-601473][   transport.py][1871] : Compression: none
2025-07-01 10:18:21,484 [DEBUG][       Thread-601473][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:18:21,502 [DEBUG][       Thread-601473][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:18:21,502 [DEBUG][       Thread-601473][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:18:21,503 [DEBUG][       Thread-601473][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:18:21,503 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:18:21,503 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:18:21,504 [DEBUG][       Thread-601473][   transport.py][1871] : userauth is OK
2025-07-01 10:18:21,529 [ INFO][       Thread-601473][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:18:21,529 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:18:21,716 [DEBUG][Thread-601475 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:18:22,289 [DEBUG][       Thread-601473][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:18:22,289 [DEBUG][       Thread-601473][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:18:22,333 [DEBUG][       Thread-601473][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:18:22,333 [DEBUG][       Thread-601473][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:18:22,336 [DEBUG][       Thread-601473][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:18:22,347 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:18:22,348 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:18:22,349 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:18:22,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:18:22,355 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:18:22,356 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:18:22,357 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:18:22,357 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:18:22,357 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.345433 -999.00   +9.50  46.87     54   +0.80 1 2 2 1 1   887    0 8.63 -1.58 ----- 46.9 46.9 20.2 56.7 12.6 -22.1 11.7 -23.0 11.0 -22.2 11.7 -22.2
2025-07-01 10:18:22,357 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:18:22,357 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:18:22,358 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.345433
2025-07-01 10:18:22,358 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:18:22,358 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:18:22,359 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:18:22,359 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:18:22,359 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:18:22,359 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:17:56', tmtdew=10.06, humidity=49.49, cloud=0.0, wind=43.81, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:17:25.411', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:18:22,360 [DEBUG][       Thread-601473][   transport.py][1871] : EOF in transport thread
2025-07-01 10:18:22,442 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:18:22,453 [DEBUG][       Thread-601477][   transport.py][1871] : starting thread (client mode): 0x8106ef0
2025-07-01 10:18:22,453 [DEBUG][       Thread-601477][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:18:22,468 [DEBUG][       Thread-601477][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:18:22,468 [ INFO][       Thread-601477][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:18:22,475 [DEBUG][       Thread-601477][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:18:22,476 [DEBUG][       Thread-601477][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:18:22,476 [DEBUG][       Thread-601477][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:18:22,476 [DEBUG][       Thread-601477][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:18:22,476 [DEBUG][       Thread-601477][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:18:22,476 [DEBUG][       Thread-601477][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:18:22,476 [DEBUG][       Thread-601477][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:18:22,476 [DEBUG][       Thread-601477][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:18:22,476 [DEBUG][       Thread-601477][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:18:22,476 [DEBUG][       Thread-601477][   transport.py][1871] : client lang: <none>
2025-07-01 10:18:22,476 [DEBUG][       Thread-601477][   transport.py][1871] : server lang: <none>
2025-07-01 10:18:22,476 [DEBUG][       Thread-601477][   transport.py][1871] : kex follows: False
2025-07-01 10:18:22,476 [DEBUG][       Thread-601477][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:18:22,476 [DEBUG][       Thread-601477][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:18:22,476 [DEBUG][       Thread-601477][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:18:22,476 [DEBUG][       Thread-601477][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:18:22,476 [DEBUG][       Thread-601477][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:18:22,476 [DEBUG][       Thread-601477][   transport.py][1871] : Compression: none
2025-07-01 10:18:22,476 [DEBUG][       Thread-601477][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:18:22,532 [DEBUG][       Thread-601477][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:18:22,533 [DEBUG][       Thread-601477][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:18:22,533 [DEBUG][       Thread-601477][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:18:22,533 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:18:22,534 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:18:22,589 [DEBUG][       Thread-601477][   transport.py][1871] : userauth is OK
2025-07-01 10:18:22,589 [DEBUG][       Thread-601477][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:18:22,589 [DEBUG][       Thread-601477][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:18:22,589 [DEBUG][       Thread-601477][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:18:22,589 [DEBUG][       Thread-601477][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:18:22,607 [ INFO][       Thread-601477][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:18:22,608 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:18:22,608 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:18:22,709 [DEBUG][Thread-601479 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:18:23,608 [DEBUG][       Thread-601477][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:18:23,608 [DEBUG][       Thread-601477][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:18:23,655 [DEBUG][       Thread-601477][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:18:23,656 [DEBUG][       Thread-601477][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:18:23,664 [DEBUG][       Thread-601477][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:18:23,673 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:18:23,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')
2025-07-01 10:18:23,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-07-01 10:18:23,691 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:18:23,691 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:18:23,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:18:23,699 [DEBUG][       Thread-601477][   transport.py][1871] : EOF in transport thread
2025-07-01 10:18:30,738 [DEBUG][Thread-601480 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:18:33,702 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:18:33,702 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:18:33,702 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:18:33,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-07-01 10:18:34,207 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 18, 27), 9.99, 49.49, 0.0, 34.95, 9.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:18:34,207 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:18:27
2025-07-01 10:18:34,293 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:18:34,300 [DEBUG][       Thread-601481][   transport.py][1871] : starting thread (client mode): 0x82b2200
2025-07-01 10:18:34,300 [DEBUG][       Thread-601481][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:18:34,319 [DEBUG][       Thread-601481][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:18:34,320 [ INFO][       Thread-601481][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:18:34,323 [DEBUG][       Thread-601481][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:18:34,323 [DEBUG][       Thread-601481][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:18:34,323 [DEBUG][       Thread-601481][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:18:34,323 [DEBUG][       Thread-601481][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:18:34,323 [DEBUG][       Thread-601481][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:18:34,323 [DEBUG][       Thread-601481][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:18:34,323 [DEBUG][       Thread-601481][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:18:34,323 [DEBUG][       Thread-601481][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:18:34,323 [DEBUG][       Thread-601481][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:18:34,323 [DEBUG][       Thread-601481][   transport.py][1871] : client lang: <none>
2025-07-01 10:18:34,323 [DEBUG][       Thread-601481][   transport.py][1871] : server lang: <none>
2025-07-01 10:18:34,323 [DEBUG][       Thread-601481][   transport.py][1871] : kex follows: False
2025-07-01 10:18:34,323 [DEBUG][       Thread-601481][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:18:34,323 [DEBUG][       Thread-601481][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:18:34,323 [DEBUG][       Thread-601481][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:18:34,323 [DEBUG][       Thread-601481][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:18:34,323 [DEBUG][       Thread-601481][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:18:34,323 [DEBUG][       Thread-601481][   transport.py][1871] : Compression: none
2025-07-01 10:18:34,323 [DEBUG][       Thread-601481][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:18:34,340 [DEBUG][       Thread-601481][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:18:34,340 [DEBUG][       Thread-601481][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:18:34,341 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:18:34,341 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:18:34,341 [DEBUG][       Thread-601481][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:18:34,342 [DEBUG][       Thread-601481][   transport.py][1871] : userauth is OK
2025-07-01 10:18:34,366 [ INFO][       Thread-601481][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:18:34,367 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:18:35,011 [DEBUG][       Thread-601481][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:18:35,011 [DEBUG][       Thread-601481][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:18:35,052 [DEBUG][       Thread-601481][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:18:35,052 [DEBUG][       Thread-601481][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:18:35,055 [DEBUG][       Thread-601481][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:18:35,066 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:18:35,066 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:18:35,067 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:18:35,068 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:18:35,071 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:18:35,072 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:18:35,072 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:18:35,072 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:18:35,072 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.345780 -999.00   +9.50  43.85     54   +0.80 1 2 2 1 1   887    0 8.62 -1.02 ----- 43.9 43.9 17.6 52.7 12.5 -22.8 11.6 -23.5 11.0 -22.0 11.7 -22.9
2025-07-01 10:18:35,072 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:18:35,072 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:18:35,072 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.345780
2025-07-01 10:18:35,072 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:18:35,072 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:18:35,072 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:18:35,073 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:18:35,073 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:18:35,073 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:18:27', tmtdew=9.99, humidity=49.49, cloud=0.0, wind=34.95, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:17:55.392', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:18:35,073 [DEBUG][       Thread-601481][   transport.py][1871] : EOF in transport thread
2025-07-01 10:18:35,147 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:18:35,157 [DEBUG][       Thread-601484][   transport.py][1871] : starting thread (client mode): 0x818c5e0
2025-07-01 10:18:35,158 [DEBUG][       Thread-601484][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:18:35,173 [DEBUG][       Thread-601484][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:18:35,173 [ INFO][       Thread-601484][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:18:35,180 [DEBUG][       Thread-601484][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:18:35,180 [DEBUG][       Thread-601484][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:18:35,180 [DEBUG][       Thread-601484][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:18:35,180 [DEBUG][       Thread-601484][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:18:35,180 [DEBUG][       Thread-601484][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:18:35,180 [DEBUG][       Thread-601484][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:18:35,180 [DEBUG][       Thread-601484][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:18:35,180 [DEBUG][       Thread-601484][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:18:35,180 [DEBUG][       Thread-601484][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:18:35,180 [DEBUG][       Thread-601484][   transport.py][1871] : client lang: <none>
2025-07-01 10:18:35,180 [DEBUG][       Thread-601484][   transport.py][1871] : server lang: <none>
2025-07-01 10:18:35,180 [DEBUG][       Thread-601484][   transport.py][1871] : kex follows: False
2025-07-01 10:18:35,180 [DEBUG][       Thread-601484][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:18:35,180 [DEBUG][       Thread-601484][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:18:35,180 [DEBUG][       Thread-601484][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:18:35,180 [DEBUG][       Thread-601484][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:18:35,180 [DEBUG][       Thread-601484][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:18:35,180 [DEBUG][       Thread-601484][   transport.py][1871] : Compression: none
2025-07-01 10:18:35,180 [DEBUG][       Thread-601484][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:18:35,237 [DEBUG][       Thread-601484][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:18:35,238 [DEBUG][       Thread-601484][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:18:35,238 [DEBUG][       Thread-601484][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:18:35,238 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:18:35,238 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:18:35,294 [DEBUG][       Thread-601484][   transport.py][1871] : userauth is OK
2025-07-01 10:18:35,294 [DEBUG][       Thread-601484][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:18:35,294 [DEBUG][       Thread-601484][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:18:35,294 [DEBUG][       Thread-601484][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:18:35,294 [DEBUG][       Thread-601484][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:18:35,309 [ INFO][       Thread-601484][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:18:35,309 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:18:35,309 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:18:36,303 [DEBUG][       Thread-601484][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:18:36,303 [DEBUG][       Thread-601484][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:18:36,351 [DEBUG][       Thread-601484][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:18:36,351 [DEBUG][       Thread-601484][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:18:36,360 [DEBUG][       Thread-601484][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:18:36,368 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:18:36,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-07-01 10:18:36,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-07-01 10:18:36,384 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:18:36,384 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:18:36,384 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:18:36,391 [DEBUG][       Thread-601484][   transport.py][1871] : EOF in transport thread
2025-07-01 10:18:39,755 [DEBUG][Thread-601486 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:18:46,394 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:18:46,394 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:18:46,394 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:18:46,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-07-01 10:18:46,907 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 18, 27), 9.99, 49.49, 0.0, 34.95, 9.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:18:46,907 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:18:27
2025-07-01 10:18:46,994 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:18:46,998 [DEBUG][       Thread-601487][   transport.py][1871] : starting thread (client mode): 0x82b3dc0
2025-07-01 10:18:46,998 [DEBUG][       Thread-601487][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:18:47,016 [DEBUG][       Thread-601487][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:18:47,016 [ INFO][       Thread-601487][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:18:47,019 [DEBUG][       Thread-601487][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:18:47,019 [DEBUG][       Thread-601487][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:18:47,019 [DEBUG][       Thread-601487][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:18:47,019 [DEBUG][       Thread-601487][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:18:47,019 [DEBUG][       Thread-601487][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:18:47,019 [DEBUG][       Thread-601487][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:18:47,019 [DEBUG][       Thread-601487][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:18:47,019 [DEBUG][       Thread-601487][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:18:47,019 [DEBUG][       Thread-601487][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:18:47,019 [DEBUG][       Thread-601487][   transport.py][1871] : client lang: <none>
2025-07-01 10:18:47,020 [DEBUG][       Thread-601487][   transport.py][1871] : server lang: <none>
2025-07-01 10:18:47,020 [DEBUG][       Thread-601487][   transport.py][1871] : kex follows: False
2025-07-01 10:18:47,020 [DEBUG][       Thread-601487][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:18:47,020 [DEBUG][       Thread-601487][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:18:47,020 [DEBUG][       Thread-601487][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:18:47,020 [DEBUG][       Thread-601487][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:18:47,020 [DEBUG][       Thread-601487][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:18:47,020 [DEBUG][       Thread-601487][   transport.py][1871] : Compression: none
2025-07-01 10:18:47,020 [DEBUG][       Thread-601487][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:18:47,036 [DEBUG][       Thread-601487][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:18:47,037 [DEBUG][       Thread-601487][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:18:47,037 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:18:47,037 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:18:47,038 [DEBUG][       Thread-601487][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:18:47,039 [DEBUG][       Thread-601487][   transport.py][1871] : userauth is OK
2025-07-01 10:18:47,064 [ INFO][       Thread-601487][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:18:47,065 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:18:47,840 [DEBUG][       Thread-601487][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:18:47,840 [DEBUG][       Thread-601487][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:18:47,881 [DEBUG][       Thread-601487][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:18:47,881 [DEBUG][       Thread-601487][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:18:47,885 [DEBUG][       Thread-601487][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:18:47,898 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:18:47,899 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:18:47,900 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:18:47,902 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:18:47,907 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:18:47,908 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:18:47,909 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:18:47,909 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:18:47,909 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.345780 -999.00   +9.50  43.85     54   +0.80 1 2 2 1 1   887    0 8.62 -1.02 ----- 43.9 43.9 17.6 52.7 12.5 -22.8 11.6 -23.5 11.0 -22.0 11.7 -22.9
2025-07-01 10:18:47,910 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:18:47,910 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:18:47,910 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.345780
2025-07-01 10:18:47,910 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:18:47,911 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:18:47,911 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:18:47,911 [DEBUG][       Thread-601487][   transport.py][1871] : EOF in transport thread
2025-07-01 10:18:47,911 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:18:47,912 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:18:47,912 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:18:27', tmtdew=9.99, humidity=49.49, cloud=0.0, wind=34.95, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:17:55.392', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:18:47,995 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:18:48,004 [DEBUG][       Thread-601490][   transport.py][1871] : starting thread (client mode): 0x81e4460
2025-07-01 10:18:48,004 [DEBUG][       Thread-601490][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:18:48,020 [DEBUG][       Thread-601490][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:18:48,021 [ INFO][       Thread-601490][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:18:48,028 [DEBUG][       Thread-601490][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:18:48,028 [DEBUG][       Thread-601490][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:18:48,028 [DEBUG][       Thread-601490][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:18:48,028 [DEBUG][       Thread-601490][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:18:48,028 [DEBUG][       Thread-601490][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:18:48,028 [DEBUG][       Thread-601490][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:18:48,028 [DEBUG][       Thread-601490][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:18:48,028 [DEBUG][       Thread-601490][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:18:48,028 [DEBUG][       Thread-601490][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:18:48,028 [DEBUG][       Thread-601490][   transport.py][1871] : client lang: <none>
2025-07-01 10:18:48,029 [DEBUG][       Thread-601490][   transport.py][1871] : server lang: <none>
2025-07-01 10:18:48,029 [DEBUG][       Thread-601490][   transport.py][1871] : kex follows: False
2025-07-01 10:18:48,029 [DEBUG][       Thread-601490][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:18:48,029 [DEBUG][       Thread-601490][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:18:48,029 [DEBUG][       Thread-601490][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:18:48,029 [DEBUG][       Thread-601490][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:18:48,029 [DEBUG][       Thread-601490][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:18:48,029 [DEBUG][       Thread-601490][   transport.py][1871] : Compression: none
2025-07-01 10:18:48,029 [DEBUG][       Thread-601490][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:18:48,085 [DEBUG][       Thread-601490][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:18:48,086 [DEBUG][       Thread-601490][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:18:48,086 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:18:48,087 [DEBUG][       Thread-601490][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:18:48,088 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:18:48,143 [DEBUG][       Thread-601490][   transport.py][1871] : userauth is OK
2025-07-01 10:18:48,143 [DEBUG][       Thread-601490][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:18:48,143 [DEBUG][       Thread-601490][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:18:48,143 [DEBUG][       Thread-601490][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:18:48,143 [DEBUG][       Thread-601490][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:18:48,161 [ INFO][       Thread-601490][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:18:48,162 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:18:48,162 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:18:48,792 [DEBUG][Thread-601492 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:18:49,215 [DEBUG][       Thread-601490][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:18:49,215 [DEBUG][       Thread-601490][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:18:49,265 [DEBUG][       Thread-601490][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:18:49,266 [DEBUG][       Thread-601490][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:18:49,275 [DEBUG][       Thread-601490][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:18:49,285 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:18:49,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-07-01 10:18:49,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-07-01 10:18:49,309 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:18:49,310 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:18:49,310 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:18:49,322 [DEBUG][       Thread-601490][   transport.py][1871] : EOF in transport thread
2025-07-01 10:18:57,815 [DEBUG][Thread-601493 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:18:58,151 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:18:58,153 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:18:59,321 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:18:59,321 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:18:59,321 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:18:59,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-07-01 10:18:59,816 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 18, 27), 9.99, 49.49, 0.0, 34.95, 9.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:18:59,816 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:18:27
2025-07-01 10:18:59,905 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:18:59,910 [DEBUG][       Thread-601494][   transport.py][1871] : starting thread (client mode): 0x82b3730
2025-07-01 10:18:59,910 [DEBUG][       Thread-601494][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:18:59,926 [DEBUG][       Thread-601494][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:18:59,926 [ INFO][       Thread-601494][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:18:59,929 [DEBUG][       Thread-601494][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:18:59,929 [DEBUG][       Thread-601494][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:18:59,929 [DEBUG][       Thread-601494][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:18:59,929 [DEBUG][       Thread-601494][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:18:59,929 [DEBUG][       Thread-601494][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:18:59,929 [DEBUG][       Thread-601494][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:18:59,929 [DEBUG][       Thread-601494][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:18:59,929 [DEBUG][       Thread-601494][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:18:59,929 [DEBUG][       Thread-601494][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:18:59,929 [DEBUG][       Thread-601494][   transport.py][1871] : client lang: <none>
2025-07-01 10:18:59,929 [DEBUG][       Thread-601494][   transport.py][1871] : server lang: <none>
2025-07-01 10:18:59,929 [DEBUG][       Thread-601494][   transport.py][1871] : kex follows: False
2025-07-01 10:18:59,929 [DEBUG][       Thread-601494][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:18:59,929 [DEBUG][       Thread-601494][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:18:59,929 [DEBUG][       Thread-601494][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:18:59,929 [DEBUG][       Thread-601494][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:18:59,929 [DEBUG][       Thread-601494][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:18:59,929 [DEBUG][       Thread-601494][   transport.py][1871] : Compression: none
2025-07-01 10:18:59,929 [DEBUG][       Thread-601494][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:18:59,939 [DEBUG][       Thread-601494][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:18:59,939 [DEBUG][       Thread-601494][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:18:59,939 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:18:59,940 [DEBUG][       Thread-601494][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:18:59,940 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:18:59,940 [DEBUG][       Thread-601494][   transport.py][1871] : userauth is OK
2025-07-01 10:18:59,964 [ INFO][       Thread-601494][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:18:59,964 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:19:00,558 [DEBUG][       Thread-601494][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:19:00,558 [DEBUG][       Thread-601494][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:19:00,600 [DEBUG][       Thread-601494][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:19:00,600 [DEBUG][       Thread-601494][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:19:00,603 [DEBUG][       Thread-601494][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:19:00,614 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:19:00,615 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:19:00,615 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:19:00,616 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:19:00,618 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:19:00,619 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:19:00,619 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:19:00,619 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:19:00,619 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.346474 -999.00   +9.50  40.38     54   +0.80 1 2 2 1 1   887    0 8.65 -1.75 ----- 40.4 40.4 18.5 47.5 12.6 -22.0 11.7 -22.6 11.1 -22.2 11.8 -20.9
2025-07-01 10:19:00,619 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:19:00,619 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:19:00,619 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.346474
2025-07-01 10:19:00,620 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:19:00,620 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:19:00,620 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:19:00,620 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:19:00,620 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:19:00,620 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:18:27', tmtdew=9.99, humidity=49.49, cloud=0.0, wind=34.95, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:18:55.354', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:19:00,620 [DEBUG][       Thread-601494][   transport.py][1871] : EOF in transport thread
2025-07-01 10:19:00,694 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:19:00,703 [DEBUG][       Thread-601497][   transport.py][1871] : starting thread (client mode): 0x818d780
2025-07-01 10:19:00,703 [DEBUG][       Thread-601497][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:19:00,719 [DEBUG][       Thread-601497][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:19:00,719 [ INFO][       Thread-601497][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:19:00,726 [DEBUG][       Thread-601497][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:19:00,727 [DEBUG][       Thread-601497][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:19:00,727 [DEBUG][       Thread-601497][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:19:00,727 [DEBUG][       Thread-601497][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:19:00,727 [DEBUG][       Thread-601497][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:19:00,727 [DEBUG][       Thread-601497][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:19:00,727 [DEBUG][       Thread-601497][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:19:00,727 [DEBUG][       Thread-601497][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:19:00,727 [DEBUG][       Thread-601497][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:19:00,727 [DEBUG][       Thread-601497][   transport.py][1871] : client lang: <none>
2025-07-01 10:19:00,727 [DEBUG][       Thread-601497][   transport.py][1871] : server lang: <none>
2025-07-01 10:19:00,727 [DEBUG][       Thread-601497][   transport.py][1871] : kex follows: False
2025-07-01 10:19:00,727 [DEBUG][       Thread-601497][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:19:00,727 [DEBUG][       Thread-601497][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:19:00,727 [DEBUG][       Thread-601497][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:19:00,727 [DEBUG][       Thread-601497][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:19:00,727 [DEBUG][       Thread-601497][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:19:00,727 [DEBUG][       Thread-601497][   transport.py][1871] : Compression: none
2025-07-01 10:19:00,727 [DEBUG][       Thread-601497][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:19:00,784 [DEBUG][       Thread-601497][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:19:00,784 [DEBUG][       Thread-601497][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:19:00,784 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:19:00,784 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:19:00,784 [DEBUG][       Thread-601497][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:19:00,841 [DEBUG][       Thread-601497][   transport.py][1871] : userauth is OK
2025-07-01 10:19:00,841 [DEBUG][       Thread-601497][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:19:00,841 [DEBUG][       Thread-601497][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:19:00,841 [DEBUG][       Thread-601497][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:19:00,841 [DEBUG][       Thread-601497][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:19:00,855 [ INFO][       Thread-601497][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:19:00,855 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:19:00,855 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:19:01,878 [DEBUG][       Thread-601497][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:19:01,878 [DEBUG][       Thread-601497][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:19:01,929 [DEBUG][       Thread-601497][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:19:01,929 [DEBUG][       Thread-601497][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:19:01,940 [DEBUG][       Thread-601497][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:19:01,952 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:19:01,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-07-01 10:19:01,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-07-01 10:19:01,972 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:19:01,972 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:19:01,973 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:19:01,981 [DEBUG][       Thread-601497][   transport.py][1871] : EOF in transport thread
2025-07-01 10:19:06,837 [DEBUG][Thread-601499 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:19:11,983 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:19:11,984 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:19:11,984 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:19:11,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-07-01 10:19:12,495 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 18, 59), 9.97, 49.56, 0.0, 33.01, 9.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:19:12,495 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:18:59
2025-07-01 10:19:12,581 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:19:12,585 [DEBUG][       Thread-601500][   transport.py][1871] : starting thread (client mode): 0x82b2500
2025-07-01 10:19:12,586 [DEBUG][       Thread-601500][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:19:12,604 [DEBUG][       Thread-601500][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:19:12,605 [ INFO][       Thread-601500][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:19:12,608 [DEBUG][       Thread-601500][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:19:12,608 [DEBUG][       Thread-601500][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:19:12,608 [DEBUG][       Thread-601500][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:19:12,608 [DEBUG][       Thread-601500][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:19:12,608 [DEBUG][       Thread-601500][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:19:12,608 [DEBUG][       Thread-601500][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:19:12,608 [DEBUG][       Thread-601500][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:19:12,608 [DEBUG][       Thread-601500][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:19:12,608 [DEBUG][       Thread-601500][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:19:12,608 [DEBUG][       Thread-601500][   transport.py][1871] : client lang: <none>
2025-07-01 10:19:12,608 [DEBUG][       Thread-601500][   transport.py][1871] : server lang: <none>
2025-07-01 10:19:12,608 [DEBUG][       Thread-601500][   transport.py][1871] : kex follows: False
2025-07-01 10:19:12,608 [DEBUG][       Thread-601500][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:19:12,608 [DEBUG][       Thread-601500][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:19:12,608 [DEBUG][       Thread-601500][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:19:12,608 [DEBUG][       Thread-601500][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:19:12,608 [DEBUG][       Thread-601500][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:19:12,608 [DEBUG][       Thread-601500][   transport.py][1871] : Compression: none
2025-07-01 10:19:12,608 [DEBUG][       Thread-601500][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:19:12,632 [DEBUG][       Thread-601500][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:19:12,633 [DEBUG][       Thread-601500][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:19:12,633 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:19:12,633 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:19:12,634 [DEBUG][       Thread-601500][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:19:12,635 [DEBUG][       Thread-601500][   transport.py][1871] : userauth is OK
2025-07-01 10:19:12,659 [ INFO][       Thread-601500][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:19:12,660 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:19:13,444 [DEBUG][       Thread-601500][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:19:13,444 [DEBUG][       Thread-601500][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:19:13,484 [DEBUG][       Thread-601500][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:19:13,484 [DEBUG][       Thread-601500][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:19:13,487 [DEBUG][       Thread-601500][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:19:13,498 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:19:13,498 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:19:13,499 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:19:13,500 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:19:13,503 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:19:13,504 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:19:13,504 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:19:13,504 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:19:13,504 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.346474 -999.00   +9.50  40.38     54   +0.80 1 2 2 1 1   887    0 8.65 -1.75 ----- 40.4 40.4 18.5 47.5 12.6 -22.0 11.7 -22.6 11.1 -22.2 11.8 -20.9
2025-07-01 10:19:13,504 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:19:13,504 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:19:13,504 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.346474
2025-07-01 10:19:13,504 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:19:13,504 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:19:13,504 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:19:13,504 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:19:13,504 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:19:13,504 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:18:59', tmtdew=9.97, humidity=49.56, cloud=0.0, wind=33.01, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:18:55.354', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:19:13,505 [DEBUG][       Thread-601500][   transport.py][1871] : EOF in transport thread
2025-07-01 10:19:13,579 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:19:13,590 [DEBUG][       Thread-601503][   transport.py][1871] : starting thread (client mode): 0x81e7b20
2025-07-01 10:19:13,590 [DEBUG][       Thread-601503][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:19:13,606 [DEBUG][       Thread-601503][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:19:13,606 [ INFO][       Thread-601503][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:19:13,613 [DEBUG][       Thread-601503][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:19:13,613 [DEBUG][       Thread-601503][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:19:13,613 [DEBUG][       Thread-601503][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:19:13,613 [DEBUG][       Thread-601503][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:19:13,613 [DEBUG][       Thread-601503][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:19:13,613 [DEBUG][       Thread-601503][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:19:13,613 [DEBUG][       Thread-601503][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:19:13,613 [DEBUG][       Thread-601503][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:19:13,613 [DEBUG][       Thread-601503][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:19:13,613 [DEBUG][       Thread-601503][   transport.py][1871] : client lang: <none>
2025-07-01 10:19:13,613 [DEBUG][       Thread-601503][   transport.py][1871] : server lang: <none>
2025-07-01 10:19:13,613 [DEBUG][       Thread-601503][   transport.py][1871] : kex follows: False
2025-07-01 10:19:13,613 [DEBUG][       Thread-601503][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:19:13,613 [DEBUG][       Thread-601503][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:19:13,613 [DEBUG][       Thread-601503][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:19:13,613 [DEBUG][       Thread-601503][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:19:13,613 [DEBUG][       Thread-601503][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:19:13,613 [DEBUG][       Thread-601503][   transport.py][1871] : Compression: none
2025-07-01 10:19:13,613 [DEBUG][       Thread-601503][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:19:13,671 [DEBUG][       Thread-601503][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:19:13,672 [DEBUG][       Thread-601503][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:19:13,672 [DEBUG][       Thread-601503][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:19:13,672 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:19:13,672 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:19:13,729 [DEBUG][       Thread-601503][   transport.py][1871] : userauth is OK
2025-07-01 10:19:13,729 [DEBUG][       Thread-601503][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:19:13,729 [DEBUG][       Thread-601503][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:19:13,729 [DEBUG][       Thread-601503][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:19:13,729 [DEBUG][       Thread-601503][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:19:13,743 [ INFO][       Thread-601503][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:19:13,743 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:19:13,744 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:19:14,796 [DEBUG][       Thread-601503][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:19:14,796 [DEBUG][       Thread-601503][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:19:14,847 [DEBUG][       Thread-601503][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:19:14,847 [DEBUG][       Thread-601503][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:19:14,855 [DEBUG][       Thread-601503][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:19:14,863 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:19:14,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-07-01 10:19:14,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-07-01 10:19:14,879 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:19:14,879 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:19:14,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:19:14,886 [DEBUG][       Thread-601503][   transport.py][1871] : EOF in transport thread
2025-07-01 10:19:15,854 [DEBUG][Thread-601505 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:19:22,741 [DEBUG][Thread-601506 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:19:24,881 [DEBUG][Thread-601507 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:19:24,888 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:19:24,888 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:19:24,888 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:19:24,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-07-01 10:19:25,392 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 18, 59), 9.97, 49.56, 0.0, 33.01, 9.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:19:25,392 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:18:59
2025-07-01 10:19:25,479 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:19:25,484 [DEBUG][       Thread-601508][   transport.py][1871] : starting thread (client mode): 0x75a9f30
2025-07-01 10:19:25,484 [DEBUG][       Thread-601508][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:19:25,505 [DEBUG][       Thread-601508][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:19:25,505 [ INFO][       Thread-601508][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:19:25,508 [DEBUG][       Thread-601508][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:19:25,508 [DEBUG][       Thread-601508][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:19:25,508 [DEBUG][       Thread-601508][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:19:25,508 [DEBUG][       Thread-601508][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:19:25,508 [DEBUG][       Thread-601508][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:19:25,508 [DEBUG][       Thread-601508][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:19:25,508 [DEBUG][       Thread-601508][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:19:25,508 [DEBUG][       Thread-601508][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:19:25,508 [DEBUG][       Thread-601508][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:19:25,508 [DEBUG][       Thread-601508][   transport.py][1871] : client lang: <none>
2025-07-01 10:19:25,508 [DEBUG][       Thread-601508][   transport.py][1871] : server lang: <none>
2025-07-01 10:19:25,508 [DEBUG][       Thread-601508][   transport.py][1871] : kex follows: False
2025-07-01 10:19:25,508 [DEBUG][       Thread-601508][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:19:25,508 [DEBUG][       Thread-601508][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:19:25,508 [DEBUG][       Thread-601508][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:19:25,508 [DEBUG][       Thread-601508][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:19:25,508 [DEBUG][       Thread-601508][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:19:25,508 [DEBUG][       Thread-601508][   transport.py][1871] : Compression: none
2025-07-01 10:19:25,508 [DEBUG][       Thread-601508][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:19:25,516 [DEBUG][       Thread-601508][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:19:25,516 [DEBUG][       Thread-601508][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:19:25,516 [DEBUG][       Thread-601508][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:19:25,516 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:19:25,516 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:19:25,517 [DEBUG][       Thread-601508][   transport.py][1871] : userauth is OK
2025-07-01 10:19:25,530 [ INFO][       Thread-601508][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:19:25,530 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:19:26,160 [DEBUG][       Thread-601508][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:19:26,161 [DEBUG][       Thread-601508][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:19:26,205 [DEBUG][       Thread-601508][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:19:26,205 [DEBUG][       Thread-601508][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:19:26,208 [DEBUG][       Thread-601508][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:19:26,220 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:19:26,220 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:19:26,222 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:19:26,224 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:19:26,230 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:19:26,232 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:19:26,232 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:19:26,233 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:19:26,233 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.346474 -999.00   +9.50  40.38     54   +0.80 1 2 2 1 1   887    0 8.65 -1.75 ----- 40.4 40.4 18.5 47.5 12.6 -22.0 11.7 -22.6 11.1 -22.2 11.8 -20.9
2025-07-01 10:19:26,233 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:19:26,233 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:19:26,233 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.346474
2025-07-01 10:19:26,233 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:19:26,234 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:19:26,234 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:19:26,234 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:19:26,234 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:19:26,234 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:18:59', tmtdew=9.97, humidity=49.56, cloud=0.0, wind=33.01, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:18:55.354', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:19:26,235 [DEBUG][       Thread-601508][   transport.py][1871] : EOF in transport thread
2025-07-01 10:19:26,318 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:19:26,329 [DEBUG][       Thread-601511][   transport.py][1871] : starting thread (client mode): 0x81a60b0
2025-07-01 10:19:26,329 [DEBUG][       Thread-601511][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:19:26,344 [DEBUG][       Thread-601511][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:19:26,344 [ INFO][       Thread-601511][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:19:26,351 [DEBUG][       Thread-601511][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:19:26,351 [DEBUG][       Thread-601511][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:19:26,351 [DEBUG][       Thread-601511][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:19:26,352 [DEBUG][       Thread-601511][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:19:26,352 [DEBUG][       Thread-601511][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:19:26,352 [DEBUG][       Thread-601511][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:19:26,352 [DEBUG][       Thread-601511][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:19:26,352 [DEBUG][       Thread-601511][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:19:26,352 [DEBUG][       Thread-601511][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:19:26,352 [DEBUG][       Thread-601511][   transport.py][1871] : client lang: <none>
2025-07-01 10:19:26,352 [DEBUG][       Thread-601511][   transport.py][1871] : server lang: <none>
2025-07-01 10:19:26,352 [DEBUG][       Thread-601511][   transport.py][1871] : kex follows: False
2025-07-01 10:19:26,352 [DEBUG][       Thread-601511][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:19:26,352 [DEBUG][       Thread-601511][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:19:26,352 [DEBUG][       Thread-601511][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:19:26,352 [DEBUG][       Thread-601511][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:19:26,352 [DEBUG][       Thread-601511][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:19:26,352 [DEBUG][       Thread-601511][   transport.py][1871] : Compression: none
2025-07-01 10:19:26,352 [DEBUG][       Thread-601511][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:19:26,413 [DEBUG][       Thread-601511][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:19:26,413 [DEBUG][       Thread-601511][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:19:26,413 [DEBUG][       Thread-601511][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:19:26,413 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:19:26,414 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:19:26,469 [DEBUG][       Thread-601511][   transport.py][1871] : userauth is OK
2025-07-01 10:19:26,469 [DEBUG][       Thread-601511][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:19:26,469 [DEBUG][       Thread-601511][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:19:26,469 [DEBUG][       Thread-601511][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:19:26,469 [DEBUG][       Thread-601511][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:19:26,483 [ INFO][       Thread-601511][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:19:26,483 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:19:26,483 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:19:27,531 [DEBUG][       Thread-601511][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:19:27,531 [DEBUG][       Thread-601511][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:19:27,580 [DEBUG][       Thread-601511][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:19:27,580 [DEBUG][       Thread-601511][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:19:27,589 [DEBUG][       Thread-601511][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:19:27,598 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:19:27,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-07-01 10:19:27,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-07-01 10:19:27,617 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:19:27,617 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:19:27,617 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:19:27,625 [DEBUG][       Thread-601511][   transport.py][1871] : EOF in transport thread
2025-07-01 10:19:33,905 [DEBUG][Thread-601513 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:19:37,628 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:19:37,628 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:19:37,628 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:19:37,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-07-01 10:19:38,129 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 19, 30), 10.08, 49.31, 0.0, 39.45, 9.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:19:38,129 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:19:30
2025-07-01 10:19:38,214 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:19:38,221 [DEBUG][       Thread-601514][   transport.py][1871] : starting thread (client mode): 0x82b3a30
2025-07-01 10:19:38,221 [DEBUG][       Thread-601514][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:19:38,241 [DEBUG][       Thread-601514][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:19:38,242 [ INFO][       Thread-601514][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:19:38,245 [DEBUG][       Thread-601514][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:19:38,245 [DEBUG][       Thread-601514][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:19:38,245 [DEBUG][       Thread-601514][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:19:38,245 [DEBUG][       Thread-601514][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:19:38,245 [DEBUG][       Thread-601514][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:19:38,245 [DEBUG][       Thread-601514][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:19:38,245 [DEBUG][       Thread-601514][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:19:38,245 [DEBUG][       Thread-601514][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:19:38,245 [DEBUG][       Thread-601514][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:19:38,245 [DEBUG][       Thread-601514][   transport.py][1871] : client lang: <none>
2025-07-01 10:19:38,245 [DEBUG][       Thread-601514][   transport.py][1871] : server lang: <none>
2025-07-01 10:19:38,245 [DEBUG][       Thread-601514][   transport.py][1871] : kex follows: False
2025-07-01 10:19:38,245 [DEBUG][       Thread-601514][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:19:38,245 [DEBUG][       Thread-601514][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:19:38,245 [DEBUG][       Thread-601514][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:19:38,245 [DEBUG][       Thread-601514][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:19:38,245 [DEBUG][       Thread-601514][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:19:38,245 [DEBUG][       Thread-601514][   transport.py][1871] : Compression: none
2025-07-01 10:19:38,245 [DEBUG][       Thread-601514][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:19:38,263 [DEBUG][       Thread-601514][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:19:38,264 [DEBUG][       Thread-601514][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:19:38,264 [DEBUG][       Thread-601514][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:19:38,265 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:19:38,265 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:19:38,266 [DEBUG][       Thread-601514][   transport.py][1871] : userauth is OK
2025-07-01 10:19:38,290 [ INFO][       Thread-601514][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:19:38,291 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:19:38,948 [DEBUG][       Thread-601514][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:19:38,948 [DEBUG][       Thread-601514][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:19:38,989 [DEBUG][       Thread-601514][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:19:38,989 [DEBUG][       Thread-601514][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:19:38,992 [DEBUG][       Thread-601514][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:19:39,006 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:19:39,006 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:19:39,008 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:19:39,010 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:19:39,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:19:39,017 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:19:39,018 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:19:39,018 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:19:39,018 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.346821 -999.00   +9.50  35.21     54   +0.80 1 2 2 1 1   887    0 8.61 -1.70 ----- 35.2 35.2 35.0 54.4 12.6 -22.8 11.7 -23.6 11.0 -22.2 11.8 -22.2
2025-07-01 10:19:39,018 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:19:39,019 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:19:39,019 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.346821
2025-07-01 10:19:39,019 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:19:39,020 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:19:39,020 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:19:39,020 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:19:39,020 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:19:39,020 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:19:30', tmtdew=10.08, humidity=49.31, cloud=0.0, wind=39.45, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:19:25.334', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:19:39,021 [DEBUG][       Thread-601514][   transport.py][1871] : EOF in transport thread
2025-07-01 10:19:39,106 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:19:39,121 [DEBUG][       Thread-601517][   transport.py][1871] : starting thread (client mode): 0x81048e0
2025-07-01 10:19:39,121 [DEBUG][       Thread-601517][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:19:39,140 [DEBUG][       Thread-601517][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:19:39,140 [ INFO][       Thread-601517][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:19:39,148 [DEBUG][       Thread-601517][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:19:39,149 [DEBUG][       Thread-601517][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:19:39,149 [DEBUG][       Thread-601517][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:19:39,149 [DEBUG][       Thread-601517][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:19:39,149 [DEBUG][       Thread-601517][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:19:39,149 [DEBUG][       Thread-601517][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:19:39,149 [DEBUG][       Thread-601517][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:19:39,149 [DEBUG][       Thread-601517][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:19:39,149 [DEBUG][       Thread-601517][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:19:39,149 [DEBUG][       Thread-601517][   transport.py][1871] : client lang: <none>
2025-07-01 10:19:39,149 [DEBUG][       Thread-601517][   transport.py][1871] : server lang: <none>
2025-07-01 10:19:39,149 [DEBUG][       Thread-601517][   transport.py][1871] : kex follows: False
2025-07-01 10:19:39,149 [DEBUG][       Thread-601517][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:19:39,149 [DEBUG][       Thread-601517][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:19:39,149 [DEBUG][       Thread-601517][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:19:39,149 [DEBUG][       Thread-601517][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:19:39,150 [DEBUG][       Thread-601517][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:19:39,150 [DEBUG][       Thread-601517][   transport.py][1871] : Compression: none
2025-07-01 10:19:39,150 [DEBUG][       Thread-601517][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:19:39,213 [DEBUG][       Thread-601517][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:19:39,214 [DEBUG][       Thread-601517][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:19:39,214 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:19:39,215 [DEBUG][       Thread-601517][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:19:39,216 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:19:39,269 [DEBUG][       Thread-601517][   transport.py][1871] : userauth is OK
2025-07-01 10:19:39,269 [DEBUG][       Thread-601517][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:19:39,270 [DEBUG][       Thread-601517][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:19:39,270 [DEBUG][       Thread-601517][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:19:39,270 [DEBUG][       Thread-601517][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:19:39,289 [ INFO][       Thread-601517][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:19:39,289 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:19:39,290 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:19:40,295 [DEBUG][       Thread-601517][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:19:40,295 [DEBUG][       Thread-601517][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:19:40,345 [DEBUG][       Thread-601517][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:19:40,345 [DEBUG][       Thread-601517][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:19:40,358 [DEBUG][       Thread-601517][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:19:40,370 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:19:40,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-07-01 10:19:40,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') -> 00000000
2025-07-01 10:19:40,388 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:19:40,389 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:19:40,389 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:19:40,397 [DEBUG][       Thread-601517][   transport.py][1871] : EOF in transport thread
2025-07-01 10:19:42,927 [DEBUG][Thread-601519 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:19:50,400 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:19:50,400 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:19:50,400 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:19:50,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-07-01 10:19:50,915 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 19, 30), 10.08, 49.31, 0.0, 39.45, 9.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:19:50,915 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:19:30
2025-07-01 10:19:51,000 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:19:51,004 [DEBUG][       Thread-601520][   transport.py][1871] : starting thread (client mode): 0x75a8250
2025-07-01 10:19:51,004 [DEBUG][       Thread-601520][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:19:51,028 [DEBUG][       Thread-601520][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:19:51,029 [ INFO][       Thread-601520][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:19:51,031 [DEBUG][       Thread-601520][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:19:51,032 [DEBUG][       Thread-601520][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:19:51,032 [DEBUG][       Thread-601520][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:19:51,032 [DEBUG][       Thread-601520][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:19:51,032 [DEBUG][       Thread-601520][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:19:51,032 [DEBUG][       Thread-601520][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:19:51,032 [DEBUG][       Thread-601520][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:19:51,032 [DEBUG][       Thread-601520][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:19:51,032 [DEBUG][       Thread-601520][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:19:51,032 [DEBUG][       Thread-601520][   transport.py][1871] : client lang: <none>
2025-07-01 10:19:51,032 [DEBUG][       Thread-601520][   transport.py][1871] : server lang: <none>
2025-07-01 10:19:51,032 [DEBUG][       Thread-601520][   transport.py][1871] : kex follows: False
2025-07-01 10:19:51,032 [DEBUG][       Thread-601520][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:19:51,032 [DEBUG][       Thread-601520][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:19:51,032 [DEBUG][       Thread-601520][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:19:51,032 [DEBUG][       Thread-601520][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:19:51,032 [DEBUG][       Thread-601520][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:19:51,032 [DEBUG][       Thread-601520][   transport.py][1871] : Compression: none
2025-07-01 10:19:51,032 [DEBUG][       Thread-601520][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:19:51,049 [DEBUG][       Thread-601520][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:19:51,050 [DEBUG][       Thread-601520][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:19:51,050 [DEBUG][       Thread-601520][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:19:51,051 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:19:51,051 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:19:51,052 [DEBUG][       Thread-601520][   transport.py][1871] : userauth is OK
2025-07-01 10:19:51,099 [ INFO][       Thread-601520][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:19:51,099 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:19:51,751 [DEBUG][       Thread-601520][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:19:51,751 [DEBUG][       Thread-601520][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:19:51,793 [DEBUG][       Thread-601520][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:19:51,793 [DEBUG][       Thread-601520][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:19:51,796 [DEBUG][       Thread-601520][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:19:51,809 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:19:51,810 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:19:51,811 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:19:51,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:19:51,819 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:19:51,820 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:19:51,821 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:19:51,821 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:19:51,821 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.346821 -999.00   +9.50  35.21     54   +0.80 1 2 2 1 1   887    0 8.61 -1.70 ----- 35.2 35.2 35.0 54.4 12.6 -22.8 11.7 -23.6 11.0 -22.2 11.8 -22.2
2025-07-01 10:19:51,821 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:19:51,822 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:19:51,822 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.346821
2025-07-01 10:19:51,822 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:19:51,822 [DEBUG][       Thread-601520][   transport.py][1871] : EOF in transport thread
2025-07-01 10:19:51,823 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:19:51,823 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:19:51,824 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:19:51,824 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:19:51,824 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:19:30', tmtdew=10.08, humidity=49.31, cloud=0.0, wind=39.45, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:19:25.334', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:19:51,910 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:19:51,919 [DEBUG][       Thread-601523][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 10:19:51,919 [DEBUG][       Thread-601523][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:19:51,936 [DEBUG][       Thread-601523][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:19:51,936 [ INFO][       Thread-601523][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:19:51,944 [DEBUG][       Thread-601523][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:19:51,944 [DEBUG][       Thread-601523][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:19:51,944 [DEBUG][       Thread-601523][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:19:51,944 [DEBUG][       Thread-601523][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:19:51,944 [DEBUG][       Thread-601523][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:19:51,944 [DEBUG][       Thread-601523][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:19:51,944 [DEBUG][       Thread-601523][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:19:51,944 [DEBUG][       Thread-601523][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:19:51,944 [DEBUG][       Thread-601523][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:19:51,944 [DEBUG][       Thread-601523][   transport.py][1871] : client lang: <none>
2025-07-01 10:19:51,944 [DEBUG][       Thread-601523][   transport.py][1871] : server lang: <none>
2025-07-01 10:19:51,944 [DEBUG][       Thread-601523][   transport.py][1871] : kex follows: False
2025-07-01 10:19:51,944 [DEBUG][       Thread-601523][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:19:51,945 [DEBUG][       Thread-601523][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:19:51,945 [DEBUG][       Thread-601523][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:19:51,945 [DEBUG][       Thread-601523][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:19:51,945 [DEBUG][       Thread-601523][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:19:51,945 [DEBUG][       Thread-601523][   transport.py][1871] : Compression: none
2025-07-01 10:19:51,945 [DEBUG][       Thread-601523][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:19:51,960 [DEBUG][Thread-601525 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:19:52,001 [DEBUG][       Thread-601523][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:19:52,001 [DEBUG][       Thread-601523][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:19:52,002 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:19:52,003 [DEBUG][       Thread-601523][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:19:52,003 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:19:52,057 [DEBUG][       Thread-601523][   transport.py][1871] : userauth is OK
2025-07-01 10:19:52,057 [DEBUG][       Thread-601523][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:19:52,058 [DEBUG][       Thread-601523][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:19:52,058 [DEBUG][       Thread-601523][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:19:52,058 [DEBUG][       Thread-601523][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:19:52,076 [ INFO][       Thread-601523][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:19:52,077 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:19:52,077 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:19:53,091 [DEBUG][       Thread-601523][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:19:53,091 [DEBUG][       Thread-601523][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:19:53,140 [DEBUG][       Thread-601523][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:19:53,140 [DEBUG][       Thread-601523][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:19:53,150 [DEBUG][       Thread-601523][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:19:53,160 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:19:53,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-07-01 10:19:53,168 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 10:19:53,176 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:19:53,176 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:19:53,176 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:19:53,184 [DEBUG][       Thread-601523][   transport.py][1871] : EOF in transport thread
2025-07-01 10:19:58,290 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:19:58,291 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:20:00,980 [DEBUG][Thread-601526 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:20:03,187 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:20:03,187 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:20:03,187 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:20:03,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-07-01 10:20:03,699 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 19, 30), 10.08, 49.31, 0.0, 39.45, 9.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:20:03,699 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:19:30
2025-07-01 10:20:03,788 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:20:03,794 [DEBUG][       Thread-601527][   transport.py][1871] : starting thread (client mode): 0x75a8070
2025-07-01 10:20:03,795 [DEBUG][       Thread-601527][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:20:03,814 [DEBUG][       Thread-601527][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:20:03,814 [ INFO][       Thread-601527][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:20:03,816 [DEBUG][       Thread-601527][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:20:03,816 [DEBUG][       Thread-601527][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:20:03,816 [DEBUG][       Thread-601527][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:20:03,816 [DEBUG][       Thread-601527][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:20:03,816 [DEBUG][       Thread-601527][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:20:03,816 [DEBUG][       Thread-601527][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:20:03,816 [DEBUG][       Thread-601527][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:20:03,816 [DEBUG][       Thread-601527][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:20:03,816 [DEBUG][       Thread-601527][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:20:03,816 [DEBUG][       Thread-601527][   transport.py][1871] : client lang: <none>
2025-07-01 10:20:03,816 [DEBUG][       Thread-601527][   transport.py][1871] : server lang: <none>
2025-07-01 10:20:03,816 [DEBUG][       Thread-601527][   transport.py][1871] : kex follows: False
2025-07-01 10:20:03,816 [DEBUG][       Thread-601527][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:20:03,816 [DEBUG][       Thread-601527][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:20:03,816 [DEBUG][       Thread-601527][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:20:03,816 [DEBUG][       Thread-601527][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:20:03,816 [DEBUG][       Thread-601527][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:20:03,816 [DEBUG][       Thread-601527][   transport.py][1871] : Compression: none
2025-07-01 10:20:03,816 [DEBUG][       Thread-601527][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:20:03,824 [DEBUG][       Thread-601527][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:20:03,824 [DEBUG][       Thread-601527][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:20:03,824 [DEBUG][       Thread-601527][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:20:03,824 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:20:03,824 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:20:03,825 [DEBUG][       Thread-601527][   transport.py][1871] : userauth is OK
2025-07-01 10:20:03,849 [ INFO][       Thread-601527][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:20:03,850 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:20:04,513 [DEBUG][       Thread-601527][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:20:04,513 [DEBUG][       Thread-601527][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:20:04,556 [DEBUG][       Thread-601527][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:20:04,557 [DEBUG][       Thread-601527][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:20:04,559 [DEBUG][       Thread-601527][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:20:04,572 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:20:04,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:20:04,574 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:20:04,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:20:04,578 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:20:04,579 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:20:04,579 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:20:04,579 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:20:04,579 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.346821 -999.00   +9.50  35.21     54   +0.80 1 2 2 1 1   887    0 8.61 -1.70 ----- 35.2 35.2 35.0 54.4 12.6 -22.8 11.7 -23.6 11.0 -22.2 11.8 -22.2
2025-07-01 10:20:04,579 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:20:04,579 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:20:04,579 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.346821
2025-07-01 10:20:04,579 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:20:04,580 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:20:04,580 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:20:04,580 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:20:04,580 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:20:04,580 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:19:30', tmtdew=10.08, humidity=49.31, cloud=0.0, wind=39.45, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:19:25.334', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:20:04,580 [DEBUG][       Thread-601527][   transport.py][1871] : EOF in transport thread
2025-07-01 10:20:04,670 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:20:04,685 [DEBUG][       Thread-601530][   transport.py][1871] : starting thread (client mode): 0x81a5180
2025-07-01 10:20:04,685 [DEBUG][       Thread-601530][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:20:04,700 [DEBUG][       Thread-601530][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:20:04,700 [ INFO][       Thread-601530][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:20:04,709 [DEBUG][       Thread-601530][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:20:04,709 [DEBUG][       Thread-601530][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:20:04,709 [DEBUG][       Thread-601530][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:20:04,709 [DEBUG][       Thread-601530][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:20:04,709 [DEBUG][       Thread-601530][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:20:04,709 [DEBUG][       Thread-601530][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:20:04,709 [DEBUG][       Thread-601530][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:20:04,709 [DEBUG][       Thread-601530][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:20:04,709 [DEBUG][       Thread-601530][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:20:04,709 [DEBUG][       Thread-601530][   transport.py][1871] : client lang: <none>
2025-07-01 10:20:04,709 [DEBUG][       Thread-601530][   transport.py][1871] : server lang: <none>
2025-07-01 10:20:04,709 [DEBUG][       Thread-601530][   transport.py][1871] : kex follows: False
2025-07-01 10:20:04,709 [DEBUG][       Thread-601530][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:20:04,709 [DEBUG][       Thread-601530][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:20:04,709 [DEBUG][       Thread-601530][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:20:04,709 [DEBUG][       Thread-601530][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:20:04,709 [DEBUG][       Thread-601530][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:20:04,709 [DEBUG][       Thread-601530][   transport.py][1871] : Compression: none
2025-07-01 10:20:04,709 [DEBUG][       Thread-601530][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:20:04,766 [DEBUG][       Thread-601530][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:20:04,766 [DEBUG][       Thread-601530][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:20:04,766 [DEBUG][       Thread-601530][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:20:04,766 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:20:04,766 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:20:04,820 [DEBUG][       Thread-601530][   transport.py][1871] : userauth is OK
2025-07-01 10:20:04,821 [DEBUG][       Thread-601530][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:20:04,821 [DEBUG][       Thread-601530][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:20:04,821 [DEBUG][       Thread-601530][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:20:04,821 [DEBUG][       Thread-601530][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:20:04,835 [ INFO][       Thread-601530][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:20:04,835 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:20:04,835 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:20:05,869 [DEBUG][       Thread-601530][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:20:05,869 [DEBUG][       Thread-601530][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:20:05,920 [DEBUG][       Thread-601530][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:20:05,920 [DEBUG][       Thread-601530][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:20:05,930 [DEBUG][       Thread-601530][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:20:05,939 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:20:05,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-07-01 10:20:05,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-07-01 10:20:05,960 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:20:05,961 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:20:05,961 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:20:05,972 [DEBUG][       Thread-601530][   transport.py][1871] : EOF in transport thread
2025-07-01 10:20:10,000 [DEBUG][Thread-601532 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:20:15,972 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:20:15,972 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:20:15,972 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:20:15,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-07-01 10:20:16,468 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 20, 2), 10.01, 49.54, 0.0, 41.21, 9.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:20:16,468 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:20:02
2025-07-01 10:20:16,553 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:20:16,557 [DEBUG][       Thread-601533][   transport.py][1871] : starting thread (client mode): 0x75a9720
2025-07-01 10:20:16,557 [DEBUG][       Thread-601533][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:20:16,578 [DEBUG][       Thread-601533][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:20:16,578 [ INFO][       Thread-601533][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:20:16,580 [DEBUG][       Thread-601533][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:20:16,580 [DEBUG][       Thread-601533][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:20:16,580 [DEBUG][       Thread-601533][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:20:16,580 [DEBUG][       Thread-601533][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:20:16,580 [DEBUG][       Thread-601533][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:20:16,580 [DEBUG][       Thread-601533][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:20:16,580 [DEBUG][       Thread-601533][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:20:16,580 [DEBUG][       Thread-601533][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:20:16,580 [DEBUG][       Thread-601533][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:20:16,580 [DEBUG][       Thread-601533][   transport.py][1871] : client lang: <none>
2025-07-01 10:20:16,580 [DEBUG][       Thread-601533][   transport.py][1871] : server lang: <none>
2025-07-01 10:20:16,580 [DEBUG][       Thread-601533][   transport.py][1871] : kex follows: False
2025-07-01 10:20:16,580 [DEBUG][       Thread-601533][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:20:16,580 [DEBUG][       Thread-601533][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:20:16,580 [DEBUG][       Thread-601533][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:20:16,580 [DEBUG][       Thread-601533][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:20:16,580 [DEBUG][       Thread-601533][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:20:16,580 [DEBUG][       Thread-601533][   transport.py][1871] : Compression: none
2025-07-01 10:20:16,580 [DEBUG][       Thread-601533][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:20:16,596 [DEBUG][       Thread-601533][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:20:16,596 [DEBUG][       Thread-601533][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:20:16,597 [DEBUG][       Thread-601533][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:20:16,597 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:20:16,597 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:20:16,598 [DEBUG][       Thread-601533][   transport.py][1871] : userauth is OK
2025-07-01 10:20:16,611 [ INFO][       Thread-601533][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:20:16,611 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:20:17,257 [DEBUG][       Thread-601533][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:20:17,257 [DEBUG][       Thread-601533][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:20:17,301 [DEBUG][       Thread-601533][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:20:17,301 [DEBUG][       Thread-601533][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:20:17,304 [DEBUG][       Thread-601533][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:20:17,317 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:20:17,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:20:17,319 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:20:17,321 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:20:17,327 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:20:17,329 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:20:17,329 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:20:17,330 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:20:17,330 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.347169 -999.00   +9.50  37.47     54   +0.80 1 1 2 1 1   887    0 8.57 -1.26 ----- 37.5 37.5 21.0 50.3 12.6 -22.9 11.7 -23.5 11.0 -22.8 11.8 -21.8
2025-07-01 10:20:17,330 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:20:17,330 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:20:17,330 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.347169
2025-07-01 10:20:17,331 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:20:17,331 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:20:17,331 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:20:17,331 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:20:17,331 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:20:17,332 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:20:02', tmtdew=10.01, humidity=49.54, cloud=0.0, wind=41.21, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:19:55.402', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:20:17,333 [DEBUG][       Thread-601533][   transport.py][1871] : EOF in transport thread
2025-07-01 10:20:17,416 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:20:17,426 [DEBUG][       Thread-601536][   transport.py][1871] : starting thread (client mode): 0x8156cb0
2025-07-01 10:20:17,426 [DEBUG][       Thread-601536][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:20:17,441 [DEBUG][       Thread-601536][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:20:17,441 [ INFO][       Thread-601536][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:20:17,448 [DEBUG][       Thread-601536][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:20:17,448 [DEBUG][       Thread-601536][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:20:17,449 [DEBUG][       Thread-601536][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:20:17,449 [DEBUG][       Thread-601536][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:20:17,449 [DEBUG][       Thread-601536][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:20:17,449 [DEBUG][       Thread-601536][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:20:17,449 [DEBUG][       Thread-601536][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:20:17,449 [DEBUG][       Thread-601536][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:20:17,449 [DEBUG][       Thread-601536][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:20:17,449 [DEBUG][       Thread-601536][   transport.py][1871] : client lang: <none>
2025-07-01 10:20:17,449 [DEBUG][       Thread-601536][   transport.py][1871] : server lang: <none>
2025-07-01 10:20:17,449 [DEBUG][       Thread-601536][   transport.py][1871] : kex follows: False
2025-07-01 10:20:17,449 [DEBUG][       Thread-601536][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:20:17,449 [DEBUG][       Thread-601536][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:20:17,449 [DEBUG][       Thread-601536][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:20:17,449 [DEBUG][       Thread-601536][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:20:17,449 [DEBUG][       Thread-601536][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:20:17,449 [DEBUG][       Thread-601536][   transport.py][1871] : Compression: none
2025-07-01 10:20:17,449 [DEBUG][       Thread-601536][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:20:17,505 [DEBUG][       Thread-601536][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:20:17,506 [DEBUG][       Thread-601536][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:20:17,506 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:20:17,507 [DEBUG][       Thread-601536][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:20:17,508 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:20:17,561 [DEBUG][       Thread-601536][   transport.py][1871] : userauth is OK
2025-07-01 10:20:17,561 [DEBUG][       Thread-601536][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:20:17,561 [DEBUG][       Thread-601536][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:20:17,562 [DEBUG][       Thread-601536][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:20:17,562 [DEBUG][       Thread-601536][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:20:17,581 [ INFO][       Thread-601536][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:20:17,581 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:20:17,581 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:20:18,606 [DEBUG][       Thread-601536][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:20:18,606 [DEBUG][       Thread-601536][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:20:18,665 [DEBUG][       Thread-601536][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:20:18,665 [DEBUG][       Thread-601536][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:20:18,683 [DEBUG][       Thread-601536][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:20:18,700 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:20:18,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-07-01 10:20:18,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-07-01 10:20:18,733 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:20:18,733 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:20:18,734 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:20:18,749 [DEBUG][       Thread-601536][   transport.py][1871] : EOF in transport thread
2025-07-01 10:20:19,021 [DEBUG][Thread-601538 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:20:22,773 [DEBUG][Thread-601539 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:20:28,057 [DEBUG][Thread-601540 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:20:28,744 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:20:28,744 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:20:28,744 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:20:28,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-07-01 10:20:29,217 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 20, 2), 10.01, 49.54, 0.0, 41.21, 9.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:20:29,226 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:20:02
2025-07-01 10:20:29,310 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:20:29,314 [DEBUG][       Thread-601541][   transport.py][1871] : starting thread (client mode): 0x75ab2b0
2025-07-01 10:20:29,314 [DEBUG][       Thread-601541][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:20:29,335 [DEBUG][       Thread-601541][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:20:29,335 [ INFO][       Thread-601541][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:20:29,336 [DEBUG][       Thread-601541][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:20:29,336 [DEBUG][       Thread-601541][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:20:29,336 [DEBUG][       Thread-601541][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:20:29,336 [DEBUG][       Thread-601541][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:20:29,336 [DEBUG][       Thread-601541][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:20:29,337 [DEBUG][       Thread-601541][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:20:29,337 [DEBUG][       Thread-601541][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:20:29,337 [DEBUG][       Thread-601541][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:20:29,337 [DEBUG][       Thread-601541][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:20:29,337 [DEBUG][       Thread-601541][   transport.py][1871] : client lang: <none>
2025-07-01 10:20:29,337 [DEBUG][       Thread-601541][   transport.py][1871] : server lang: <none>
2025-07-01 10:20:29,337 [DEBUG][       Thread-601541][   transport.py][1871] : kex follows: False
2025-07-01 10:20:29,337 [DEBUG][       Thread-601541][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:20:29,337 [DEBUG][       Thread-601541][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:20:29,337 [DEBUG][       Thread-601541][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:20:29,337 [DEBUG][       Thread-601541][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:20:29,337 [DEBUG][       Thread-601541][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:20:29,337 [DEBUG][       Thread-601541][   transport.py][1871] : Compression: none
2025-07-01 10:20:29,337 [DEBUG][       Thread-601541][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:20:29,345 [DEBUG][       Thread-601541][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:20:29,346 [DEBUG][       Thread-601541][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:20:29,346 [DEBUG][       Thread-601541][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:20:29,346 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:20:29,347 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:20:29,348 [DEBUG][       Thread-601541][   transport.py][1871] : userauth is OK
2025-07-01 10:20:29,360 [ INFO][       Thread-601541][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:20:29,361 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:20:29,984 [DEBUG][       Thread-601541][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:20:29,984 [DEBUG][       Thread-601541][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:20:30,025 [DEBUG][       Thread-601541][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:20:30,025 [DEBUG][       Thread-601541][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:20:30,029 [DEBUG][       Thread-601541][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:20:30,040 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:20:30,041 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:20:30,043 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:20:30,045 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:20:30,050 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:20:30,052 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:20:30,052 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:20:30,052 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:20:30,053 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.347169 -999.00   +9.50  37.47     54   +0.80 1 1 2 1 1   887    0 8.57 -1.26 ----- 37.5 37.5 21.0 50.3 12.6 -22.9 11.7 -23.5 11.0 -22.8 11.8 -21.8
2025-07-01 10:20:30,053 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:20:30,053 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:20:30,053 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.347169
2025-07-01 10:20:30,053 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:20:30,054 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:20:30,054 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:20:30,054 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:20:30,054 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:20:30,054 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:20:02', tmtdew=10.01, humidity=49.54, cloud=0.0, wind=41.21, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:19:55.402', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:20:30,054 [DEBUG][       Thread-601541][   transport.py][1871] : EOF in transport thread
2025-07-01 10:20:30,137 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:20:30,149 [DEBUG][       Thread-601544][   transport.py][1871] : starting thread (client mode): 0x81a7f10
2025-07-01 10:20:30,149 [DEBUG][       Thread-601544][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:20:30,164 [DEBUG][       Thread-601544][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:20:30,164 [ INFO][       Thread-601544][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:20:30,172 [DEBUG][       Thread-601544][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:20:30,172 [DEBUG][       Thread-601544][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:20:30,172 [DEBUG][       Thread-601544][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:20:30,172 [DEBUG][       Thread-601544][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:20:30,172 [DEBUG][       Thread-601544][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:20:30,172 [DEBUG][       Thread-601544][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:20:30,172 [DEBUG][       Thread-601544][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:20:30,172 [DEBUG][       Thread-601544][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:20:30,172 [DEBUG][       Thread-601544][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:20:30,172 [DEBUG][       Thread-601544][   transport.py][1871] : client lang: <none>
2025-07-01 10:20:30,172 [DEBUG][       Thread-601544][   transport.py][1871] : server lang: <none>
2025-07-01 10:20:30,173 [DEBUG][       Thread-601544][   transport.py][1871] : kex follows: False
2025-07-01 10:20:30,173 [DEBUG][       Thread-601544][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:20:30,173 [DEBUG][       Thread-601544][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:20:30,173 [DEBUG][       Thread-601544][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:20:30,173 [DEBUG][       Thread-601544][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:20:30,173 [DEBUG][       Thread-601544][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:20:30,173 [DEBUG][       Thread-601544][   transport.py][1871] : Compression: none
2025-07-01 10:20:30,173 [DEBUG][       Thread-601544][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:20:30,242 [DEBUG][       Thread-601544][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:20:30,242 [DEBUG][       Thread-601544][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:20:30,243 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:20:30,243 [DEBUG][       Thread-601544][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:20:30,244 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:20:30,301 [DEBUG][       Thread-601544][   transport.py][1871] : userauth is OK
2025-07-01 10:20:30,301 [DEBUG][       Thread-601544][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:20:30,301 [DEBUG][       Thread-601544][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:20:30,301 [DEBUG][       Thread-601544][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:20:30,301 [DEBUG][       Thread-601544][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:20:30,320 [ INFO][       Thread-601544][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:20:30,320 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:20:30,321 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:20:31,390 [DEBUG][       Thread-601544][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:20:31,390 [DEBUG][       Thread-601544][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:20:31,439 [DEBUG][       Thread-601544][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:20:31,439 [DEBUG][       Thread-601544][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:20:31,448 [DEBUG][       Thread-601544][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:20:31,456 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:20:31,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-07-01 10:20:31,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-07-01 10:20:31,471 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:20:31,472 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:20:31,472 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:20:31,479 [DEBUG][       Thread-601544][   transport.py][1871] : EOF in transport thread
2025-07-01 10:20:37,076 [DEBUG][Thread-601546 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:20:41,482 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:20:41,482 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:20:41,482 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:20:41,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-07-01 10:20:41,967 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 20, 34), 10.04, 49.53, 0.0, 39.77, 9.74, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:20:41,967 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:20:34
2025-07-01 10:20:42,050 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:20:42,054 [DEBUG][       Thread-601547][   transport.py][1871] : starting thread (client mode): 0x8172470
2025-07-01 10:20:42,054 [DEBUG][       Thread-601547][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:20:42,071 [DEBUG][       Thread-601547][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:20:42,071 [ INFO][       Thread-601547][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:20:42,073 [DEBUG][       Thread-601547][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:20:42,073 [DEBUG][       Thread-601547][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:20:42,073 [DEBUG][       Thread-601547][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:20:42,073 [DEBUG][       Thread-601547][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:20:42,073 [DEBUG][       Thread-601547][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:20:42,073 [DEBUG][       Thread-601547][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:20:42,073 [DEBUG][       Thread-601547][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:20:42,073 [DEBUG][       Thread-601547][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:20:42,073 [DEBUG][       Thread-601547][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:20:42,073 [DEBUG][       Thread-601547][   transport.py][1871] : client lang: <none>
2025-07-01 10:20:42,073 [DEBUG][       Thread-601547][   transport.py][1871] : server lang: <none>
2025-07-01 10:20:42,073 [DEBUG][       Thread-601547][   transport.py][1871] : kex follows: False
2025-07-01 10:20:42,073 [DEBUG][       Thread-601547][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:20:42,073 [DEBUG][       Thread-601547][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:20:42,073 [DEBUG][       Thread-601547][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:20:42,073 [DEBUG][       Thread-601547][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:20:42,073 [DEBUG][       Thread-601547][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:20:42,073 [DEBUG][       Thread-601547][   transport.py][1871] : Compression: none
2025-07-01 10:20:42,073 [DEBUG][       Thread-601547][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:20:42,091 [DEBUG][       Thread-601547][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:20:42,091 [DEBUG][       Thread-601547][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:20:42,091 [DEBUG][       Thread-601547][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:20:42,092 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:20:42,092 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:20:42,093 [DEBUG][       Thread-601547][   transport.py][1871] : userauth is OK
2025-07-01 10:20:42,118 [ INFO][       Thread-601547][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:20:42,118 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:20:42,710 [DEBUG][       Thread-601547][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:20:42,710 [DEBUG][       Thread-601547][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:20:42,753 [DEBUG][       Thread-601547][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:20:42,753 [DEBUG][       Thread-601547][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:20:42,755 [DEBUG][       Thread-601547][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:20:42,766 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:20:42,767 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:20:42,768 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:20:42,770 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:20:42,775 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:20:42,776 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:20:42,776 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:20:42,777 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:20:42,777 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.347516 -999.00   +9.50  47.32     54   +0.80 1 1 2 1 1   887    0 8.60 -1.10 ----- 47.3 47.3 23.8 60.6 12.6 -22.8 11.7 -23.5 11.0 -22.8 11.8 -22.0
2025-07-01 10:20:42,777 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:20:42,777 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:20:42,777 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.347516
2025-07-01 10:20:42,778 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:20:42,778 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:20:42,779 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:20:42,779 [DEBUG][       Thread-601547][   transport.py][1871] : EOF in transport thread
2025-07-01 10:20:42,779 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:20:42,779 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:20:42,779 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:20:34', tmtdew=10.04, humidity=49.53, cloud=0.0, wind=39.77, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:20:25.382', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:20:42,863 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:20:42,876 [DEBUG][       Thread-601550][   transport.py][1871] : starting thread (client mode): 0x818e2f0
2025-07-01 10:20:42,876 [DEBUG][       Thread-601550][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:20:42,890 [DEBUG][       Thread-601550][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:20:42,890 [ INFO][       Thread-601550][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:20:42,898 [DEBUG][       Thread-601550][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:20:42,898 [DEBUG][       Thread-601550][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:20:42,898 [DEBUG][       Thread-601550][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:20:42,898 [DEBUG][       Thread-601550][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:20:42,898 [DEBUG][       Thread-601550][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:20:42,898 [DEBUG][       Thread-601550][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:20:42,898 [DEBUG][       Thread-601550][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:20:42,898 [DEBUG][       Thread-601550][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:20:42,898 [DEBUG][       Thread-601550][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:20:42,898 [DEBUG][       Thread-601550][   transport.py][1871] : client lang: <none>
2025-07-01 10:20:42,898 [DEBUG][       Thread-601550][   transport.py][1871] : server lang: <none>
2025-07-01 10:20:42,898 [DEBUG][       Thread-601550][   transport.py][1871] : kex follows: False
2025-07-01 10:20:42,898 [DEBUG][       Thread-601550][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:20:42,898 [DEBUG][       Thread-601550][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:20:42,898 [DEBUG][       Thread-601550][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:20:42,898 [DEBUG][       Thread-601550][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:20:42,898 [DEBUG][       Thread-601550][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:20:42,898 [DEBUG][       Thread-601550][   transport.py][1871] : Compression: none
2025-07-01 10:20:42,899 [DEBUG][       Thread-601550][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:20:42,961 [DEBUG][       Thread-601550][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:20:42,962 [DEBUG][       Thread-601550][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:20:42,962 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:20:42,963 [DEBUG][       Thread-601550][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:20:42,964 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:20:43,021 [DEBUG][       Thread-601550][   transport.py][1871] : userauth is OK
2025-07-01 10:20:43,021 [DEBUG][       Thread-601550][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:20:43,021 [DEBUG][       Thread-601550][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:20:43,022 [DEBUG][       Thread-601550][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:20:43,022 [DEBUG][       Thread-601550][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:20:43,040 [ INFO][       Thread-601550][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:20:43,041 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:20:43,041 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:20:44,031 [DEBUG][       Thread-601550][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:20:44,031 [DEBUG][       Thread-601550][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:20:44,079 [DEBUG][       Thread-601550][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:20:44,079 [DEBUG][       Thread-601550][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:20:44,093 [DEBUG][       Thread-601550][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:20:44,102 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:20:44,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-07-01 10:20:44,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') -> 00000000
2025-07-01 10:20:44,120 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:20:44,120 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:20:44,120 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:20:44,128 [DEBUG][       Thread-601550][   transport.py][1871] : EOF in transport thread
2025-07-01 10:20:46,098 [DEBUG][Thread-601552 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:20:54,128 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:20:54,128 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:20:54,128 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:20:54,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-07-01 10:20:54,614 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 20, 34), 10.04, 49.53, 0.0, 39.77, 9.74, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:20:54,614 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:20:34
2025-07-01 10:20:54,697 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:20:54,703 [DEBUG][       Thread-601553][   transport.py][1871] : starting thread (client mode): 0x75a9930
2025-07-01 10:20:54,703 [DEBUG][       Thread-601553][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:20:54,725 [DEBUG][       Thread-601553][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:20:54,725 [ INFO][       Thread-601553][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:20:54,728 [DEBUG][       Thread-601553][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:20:54,728 [DEBUG][       Thread-601553][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:20:54,728 [DEBUG][       Thread-601553][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:20:54,728 [DEBUG][       Thread-601553][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:20:54,729 [DEBUG][       Thread-601553][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:20:54,729 [DEBUG][       Thread-601553][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:20:54,729 [DEBUG][       Thread-601553][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:20:54,729 [DEBUG][       Thread-601553][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:20:54,729 [DEBUG][       Thread-601553][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:20:54,729 [DEBUG][       Thread-601553][   transport.py][1871] : client lang: <none>
2025-07-01 10:20:54,729 [DEBUG][       Thread-601553][   transport.py][1871] : server lang: <none>
2025-07-01 10:20:54,729 [DEBUG][       Thread-601553][   transport.py][1871] : kex follows: False
2025-07-01 10:20:54,729 [DEBUG][       Thread-601553][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:20:54,729 [DEBUG][       Thread-601553][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:20:54,729 [DEBUG][       Thread-601553][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:20:54,729 [DEBUG][       Thread-601553][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:20:54,729 [DEBUG][       Thread-601553][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:20:54,729 [DEBUG][       Thread-601553][   transport.py][1871] : Compression: none
2025-07-01 10:20:54,729 [DEBUG][       Thread-601553][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:20:54,746 [DEBUG][       Thread-601553][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:20:54,747 [DEBUG][       Thread-601553][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:20:54,747 [DEBUG][       Thread-601553][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:20:54,748 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:20:54,748 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:20:54,749 [DEBUG][       Thread-601553][   transport.py][1871] : userauth is OK
2025-07-01 10:20:54,763 [ INFO][       Thread-601553][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:20:54,763 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:20:55,129 [DEBUG][Thread-601555 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:20:55,398 [DEBUG][       Thread-601553][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:20:55,398 [DEBUG][       Thread-601553][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:20:55,441 [DEBUG][       Thread-601553][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:20:55,441 [DEBUG][       Thread-601553][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:20:55,444 [DEBUG][       Thread-601553][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:20:55,450 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:20:55,450 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:20:55,452 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:20:55,454 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:20:55,459 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:20:55,461 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:20:55,461 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:20:55,462 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:20:55,462 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.347516 -999.00   +9.50  47.32     54   +0.80 1 1 2 1 1   887    0 8.60 -1.10 ----- 47.3 47.3 23.8 60.6 12.6 -22.8 11.7 -23.5 11.0 -22.8 11.8 -22.0
2025-07-01 10:20:55,462 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:20:55,462 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:20:55,462 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.347516
2025-07-01 10:20:55,463 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:20:55,463 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:20:55,463 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:20:55,463 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:20:55,463 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:20:55,464 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:20:34', tmtdew=10.04, humidity=49.53, cloud=0.0, wind=39.77, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:20:25.382', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:20:55,465 [DEBUG][       Thread-601553][   transport.py][1871] : EOF in transport thread
2025-07-01 10:20:55,547 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:20:55,558 [DEBUG][       Thread-601557][   transport.py][1871] : starting thread (client mode): 0x818d9f0
2025-07-01 10:20:55,558 [DEBUG][       Thread-601557][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:20:55,573 [DEBUG][       Thread-601557][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:20:55,573 [ INFO][       Thread-601557][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:20:55,581 [DEBUG][       Thread-601557][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:20:55,581 [DEBUG][       Thread-601557][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:20:55,581 [DEBUG][       Thread-601557][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:20:55,581 [DEBUG][       Thread-601557][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:20:55,581 [DEBUG][       Thread-601557][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:20:55,581 [DEBUG][       Thread-601557][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:20:55,581 [DEBUG][       Thread-601557][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:20:55,581 [DEBUG][       Thread-601557][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:20:55,581 [DEBUG][       Thread-601557][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:20:55,581 [DEBUG][       Thread-601557][   transport.py][1871] : client lang: <none>
2025-07-01 10:20:55,581 [DEBUG][       Thread-601557][   transport.py][1871] : server lang: <none>
2025-07-01 10:20:55,581 [DEBUG][       Thread-601557][   transport.py][1871] : kex follows: False
2025-07-01 10:20:55,581 [DEBUG][       Thread-601557][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:20:55,581 [DEBUG][       Thread-601557][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:20:55,581 [DEBUG][       Thread-601557][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:20:55,582 [DEBUG][       Thread-601557][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:20:55,582 [DEBUG][       Thread-601557][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:20:55,582 [DEBUG][       Thread-601557][   transport.py][1871] : Compression: none
2025-07-01 10:20:55,582 [DEBUG][       Thread-601557][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:20:55,637 [DEBUG][       Thread-601557][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:20:55,638 [DEBUG][       Thread-601557][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:20:55,638 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:20:55,639 [DEBUG][       Thread-601557][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:20:55,639 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:20:55,693 [DEBUG][       Thread-601557][   transport.py][1871] : userauth is OK
2025-07-01 10:20:55,694 [DEBUG][       Thread-601557][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:20:55,694 [DEBUG][       Thread-601557][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:20:55,694 [DEBUG][       Thread-601557][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:20:55,694 [DEBUG][       Thread-601557][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:20:55,713 [ INFO][       Thread-601557][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:20:55,713 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:20:55,713 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:20:56,697 [DEBUG][       Thread-601557][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:20:56,697 [DEBUG][       Thread-601557][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:20:56,748 [DEBUG][       Thread-601557][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:20:56,748 [DEBUG][       Thread-601557][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:20:56,757 [DEBUG][       Thread-601557][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:20:56,767 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:20:56,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-07-01 10:20:56,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') -> 00000000
2025-07-01 10:20:56,789 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:20:56,790 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:20:56,790 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:20:56,799 [DEBUG][       Thread-601557][   transport.py][1871] : EOF in transport thread
2025-07-01 10:20:58,431 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:20:58,432 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:21:04,156 [DEBUG][Thread-601559 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:21:06,800 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:21:06,801 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:21:06,801 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:21:06,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-07-01 10:21:07,324 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 20, 34), 10.04, 49.53, 0.0, 39.77, 9.74, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:21:07,324 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:20:34
2025-07-01 10:21:07,412 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:21:07,416 [DEBUG][       Thread-601560][   transport.py][1871] : starting thread (client mode): 0x81712d0
2025-07-01 10:21:07,416 [DEBUG][       Thread-601560][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:21:07,438 [DEBUG][       Thread-601560][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:21:07,438 [ INFO][       Thread-601560][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:21:07,441 [DEBUG][       Thread-601560][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:21:07,441 [DEBUG][       Thread-601560][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:21:07,441 [DEBUG][       Thread-601560][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:21:07,441 [DEBUG][       Thread-601560][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:21:07,441 [DEBUG][       Thread-601560][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:21:07,441 [DEBUG][       Thread-601560][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:21:07,441 [DEBUG][       Thread-601560][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:21:07,441 [DEBUG][       Thread-601560][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:21:07,441 [DEBUG][       Thread-601560][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:21:07,442 [DEBUG][       Thread-601560][   transport.py][1871] : client lang: <none>
2025-07-01 10:21:07,442 [DEBUG][       Thread-601560][   transport.py][1871] : server lang: <none>
2025-07-01 10:21:07,442 [DEBUG][       Thread-601560][   transport.py][1871] : kex follows: False
2025-07-01 10:21:07,442 [DEBUG][       Thread-601560][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:21:07,442 [DEBUG][       Thread-601560][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:21:07,442 [DEBUG][       Thread-601560][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:21:07,442 [DEBUG][       Thread-601560][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:21:07,442 [DEBUG][       Thread-601560][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:21:07,442 [DEBUG][       Thread-601560][   transport.py][1871] : Compression: none
2025-07-01 10:21:07,442 [DEBUG][       Thread-601560][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:21:07,452 [DEBUG][       Thread-601560][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:21:07,452 [DEBUG][       Thread-601560][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:21:07,452 [DEBUG][       Thread-601560][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:21:07,452 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:21:07,452 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:21:07,453 [DEBUG][       Thread-601560][   transport.py][1871] : userauth is OK
2025-07-01 10:21:07,477 [ INFO][       Thread-601560][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:21:07,477 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:21:08,143 [DEBUG][       Thread-601560][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:21:08,143 [DEBUG][       Thread-601560][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:21:08,184 [DEBUG][       Thread-601560][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:21:08,184 [DEBUG][       Thread-601560][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:21:08,187 [DEBUG][       Thread-601560][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:21:08,198 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:21:08,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:21:08,199 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:21:08,200 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:21:08,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:21:08,204 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:21:08,204 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:21:08,204 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:21:08,204 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.347516 -999.00   +9.50  47.32     54   +0.80 1 1 2 1 1   887    0 8.60 -1.10 ----- 47.3 47.3 23.8 60.6 12.6 -22.8 11.7 -23.5 11.0 -22.8 11.8 -22.0
2025-07-01 10:21:08,204 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:21:08,204 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:21:08,204 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.347516
2025-07-01 10:21:08,204 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:21:08,204 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:21:08,204 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:21:08,204 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:21:08,204 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:21:08,204 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:20:34', tmtdew=10.04, humidity=49.53, cloud=0.0, wind=39.77, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:20:25.382', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:21:08,205 [DEBUG][       Thread-601560][   transport.py][1871] : EOF in transport thread
2025-07-01 10:21:08,279 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:21:08,288 [DEBUG][       Thread-601563][   transport.py][1871] : starting thread (client mode): 0x82b3400
2025-07-01 10:21:08,288 [DEBUG][       Thread-601563][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:21:08,306 [DEBUG][       Thread-601563][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:21:08,306 [ INFO][       Thread-601563][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:21:08,314 [DEBUG][       Thread-601563][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:21:08,314 [DEBUG][       Thread-601563][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:21:08,314 [DEBUG][       Thread-601563][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:21:08,314 [DEBUG][       Thread-601563][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:21:08,314 [DEBUG][       Thread-601563][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:21:08,314 [DEBUG][       Thread-601563][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:21:08,314 [DEBUG][       Thread-601563][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:21:08,314 [DEBUG][       Thread-601563][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:21:08,314 [DEBUG][       Thread-601563][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:21:08,314 [DEBUG][       Thread-601563][   transport.py][1871] : client lang: <none>
2025-07-01 10:21:08,314 [DEBUG][       Thread-601563][   transport.py][1871] : server lang: <none>
2025-07-01 10:21:08,314 [DEBUG][       Thread-601563][   transport.py][1871] : kex follows: False
2025-07-01 10:21:08,314 [DEBUG][       Thread-601563][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:21:08,314 [DEBUG][       Thread-601563][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:21:08,314 [DEBUG][       Thread-601563][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:21:08,314 [DEBUG][       Thread-601563][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:21:08,314 [DEBUG][       Thread-601563][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:21:08,314 [DEBUG][       Thread-601563][   transport.py][1871] : Compression: none
2025-07-01 10:21:08,314 [DEBUG][       Thread-601563][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:21:08,377 [DEBUG][       Thread-601563][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:21:08,377 [DEBUG][       Thread-601563][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:21:08,377 [DEBUG][       Thread-601563][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:21:08,377 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:21:08,378 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:21:08,433 [DEBUG][       Thread-601563][   transport.py][1871] : userauth is OK
2025-07-01 10:21:08,433 [DEBUG][       Thread-601563][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:21:08,433 [DEBUG][       Thread-601563][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:21:08,433 [DEBUG][       Thread-601563][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:21:08,433 [DEBUG][       Thread-601563][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:21:08,448 [ INFO][       Thread-601563][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:21:08,448 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:21:08,448 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:21:09,505 [DEBUG][       Thread-601563][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:21:09,505 [DEBUG][       Thread-601563][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:21:09,555 [DEBUG][       Thread-601563][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:21:09,555 [DEBUG][       Thread-601563][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:21:09,564 [DEBUG][       Thread-601563][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:21:09,572 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:21:09,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-07-01 10:21:09,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-07-01 10:21:09,589 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:21:09,589 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:21:09,589 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:21:09,598 [DEBUG][       Thread-601563][   transport.py][1871] : EOF in transport thread
2025-07-01 10:21:13,174 [DEBUG][Thread-601565 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:21:19,600 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:21:19,600 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:21:19,600 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:21:19,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-07-01 10:21:20,076 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 21, 6), 10.04, 49.53, 0.0, 35.67, 9.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:21:20,076 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:21:06
2025-07-01 10:21:20,160 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:21:20,166 [DEBUG][       Thread-601566][   transport.py][1871] : starting thread (client mode): 0x82b29e0
2025-07-01 10:21:20,166 [DEBUG][       Thread-601566][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:21:20,187 [DEBUG][       Thread-601566][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:21:20,187 [ INFO][       Thread-601566][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:21:20,190 [DEBUG][       Thread-601566][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:21:20,191 [DEBUG][       Thread-601566][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:21:20,191 [DEBUG][       Thread-601566][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:21:20,191 [DEBUG][       Thread-601566][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:21:20,191 [DEBUG][       Thread-601566][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:21:20,191 [DEBUG][       Thread-601566][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:21:20,191 [DEBUG][       Thread-601566][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:21:20,191 [DEBUG][       Thread-601566][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:21:20,191 [DEBUG][       Thread-601566][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:21:20,191 [DEBUG][       Thread-601566][   transport.py][1871] : client lang: <none>
2025-07-01 10:21:20,191 [DEBUG][       Thread-601566][   transport.py][1871] : server lang: <none>
2025-07-01 10:21:20,191 [DEBUG][       Thread-601566][   transport.py][1871] : kex follows: False
2025-07-01 10:21:20,192 [DEBUG][       Thread-601566][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:21:20,192 [DEBUG][       Thread-601566][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:21:20,192 [DEBUG][       Thread-601566][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:21:20,192 [DEBUG][       Thread-601566][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:21:20,192 [DEBUG][       Thread-601566][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:21:20,192 [DEBUG][       Thread-601566][   transport.py][1871] : Compression: none
2025-07-01 10:21:20,192 [DEBUG][       Thread-601566][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:21:20,209 [DEBUG][       Thread-601566][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:21:20,210 [DEBUG][       Thread-601566][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:21:20,210 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:21:20,211 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:21:20,211 [DEBUG][       Thread-601566][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:21:20,211 [DEBUG][       Thread-601566][   transport.py][1871] : userauth is OK
2025-07-01 10:21:20,224 [ INFO][       Thread-601566][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:21:20,225 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:21:20,864 [DEBUG][       Thread-601566][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:21:20,865 [DEBUG][       Thread-601566][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:21:20,909 [DEBUG][       Thread-601566][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:21:20,909 [DEBUG][       Thread-601566][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:21:20,912 [DEBUG][       Thread-601566][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:21:20,924 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:21:20,925 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:21:20,927 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:21:20,928 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:21:20,933 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:21:20,942 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:21:20,942 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:21:20,943 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:21:20,943 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.347863 -999.00   +9.50  27.40     54   +0.80 1 1 1 1 1   887    0 8.77 -1.19 ----- 27.4 27.4 10.7 52.1 12.5 -23.6 11.6 -23.8 11.0 -23.4 11.6 -22.8
2025-07-01 10:21:20,943 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:21:20,943 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:21:20,943 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.347863
2025-07-01 10:21:20,944 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:21:20,944 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:21:20,944 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:21:20,944 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:21:20,945 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:21:20,945 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:21:06', tmtdew=10.04, humidity=49.53, cloud=0.0, wind=35.67, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:20:55.363', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:21:20,945 [DEBUG][       Thread-601566][   transport.py][1871] : EOF in transport thread
2025-07-01 10:21:21,019 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:21:21,036 [DEBUG][       Thread-601569][   transport.py][1871] : starting thread (client mode): 0x81725f0
2025-07-01 10:21:21,036 [DEBUG][       Thread-601569][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:21:21,050 [DEBUG][       Thread-601569][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:21:21,050 [ INFO][       Thread-601569][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:21:21,058 [DEBUG][       Thread-601569][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:21:21,058 [DEBUG][       Thread-601569][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:21:21,058 [DEBUG][       Thread-601569][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:21:21,058 [DEBUG][       Thread-601569][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:21:21,058 [DEBUG][       Thread-601569][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:21:21,058 [DEBUG][       Thread-601569][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:21:21,058 [DEBUG][       Thread-601569][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:21:21,058 [DEBUG][       Thread-601569][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:21:21,058 [DEBUG][       Thread-601569][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:21:21,058 [DEBUG][       Thread-601569][   transport.py][1871] : client lang: <none>
2025-07-01 10:21:21,058 [DEBUG][       Thread-601569][   transport.py][1871] : server lang: <none>
2025-07-01 10:21:21,058 [DEBUG][       Thread-601569][   transport.py][1871] : kex follows: False
2025-07-01 10:21:21,058 [DEBUG][       Thread-601569][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:21:21,059 [DEBUG][       Thread-601569][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:21:21,059 [DEBUG][       Thread-601569][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:21:21,059 [DEBUG][       Thread-601569][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:21:21,059 [DEBUG][       Thread-601569][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:21:21,059 [DEBUG][       Thread-601569][   transport.py][1871] : Compression: none
2025-07-01 10:21:21,059 [DEBUG][       Thread-601569][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:21:21,121 [DEBUG][       Thread-601569][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:21:21,122 [DEBUG][       Thread-601569][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:21:21,122 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:21:21,123 [DEBUG][       Thread-601569][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:21:21,123 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:21:21,177 [DEBUG][       Thread-601569][   transport.py][1871] : userauth is OK
2025-07-01 10:21:21,177 [DEBUG][       Thread-601569][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:21:21,177 [DEBUG][       Thread-601569][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:21:21,177 [DEBUG][       Thread-601569][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:21:21,178 [DEBUG][       Thread-601569][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:21:21,196 [ INFO][       Thread-601569][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:21:21,196 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:21:21,197 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:21:22,192 [DEBUG][       Thread-601569][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:21:22,192 [DEBUG][       Thread-601569][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:21:22,194 [DEBUG][Thread-601571 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:21:22,240 [DEBUG][       Thread-601569][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:21:22,240 [DEBUG][       Thread-601569][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:21:22,252 [DEBUG][       Thread-601569][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:21:22,264 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:21:22,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-07-01 10:21:22,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-07-01 10:21:22,289 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:21:22,289 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:21:22,290 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:21:22,297 [DEBUG][       Thread-601569][   transport.py][1871] : EOF in transport thread
2025-07-01 10:21:22,806 [DEBUG][Thread-601572 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:21:31,233 [DEBUG][Thread-601573 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:21:32,295 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:21:32,295 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:21:32,295 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:21:32,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-07-01 10:21:32,779 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 21, 6), 10.04, 49.53, 0.0, 35.67, 9.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:21:32,779 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:21:06
2025-07-01 10:21:32,864 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:21:32,870 [DEBUG][       Thread-601574][   transport.py][1871] : starting thread (client mode): 0x82b09a0
2025-07-01 10:21:32,870 [DEBUG][       Thread-601574][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:21:32,890 [DEBUG][       Thread-601574][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:21:32,890 [ INFO][       Thread-601574][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:21:32,894 [DEBUG][       Thread-601574][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:21:32,894 [DEBUG][       Thread-601574][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:21:32,894 [DEBUG][       Thread-601574][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:21:32,894 [DEBUG][       Thread-601574][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:21:32,894 [DEBUG][       Thread-601574][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:21:32,894 [DEBUG][       Thread-601574][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:21:32,894 [DEBUG][       Thread-601574][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:21:32,894 [DEBUG][       Thread-601574][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:21:32,894 [DEBUG][       Thread-601574][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:21:32,894 [DEBUG][       Thread-601574][   transport.py][1871] : client lang: <none>
2025-07-01 10:21:32,894 [DEBUG][       Thread-601574][   transport.py][1871] : server lang: <none>
2025-07-01 10:21:32,894 [DEBUG][       Thread-601574][   transport.py][1871] : kex follows: False
2025-07-01 10:21:32,894 [DEBUG][       Thread-601574][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:21:32,894 [DEBUG][       Thread-601574][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:21:32,894 [DEBUG][       Thread-601574][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:21:32,894 [DEBUG][       Thread-601574][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:21:32,894 [DEBUG][       Thread-601574][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:21:32,894 [DEBUG][       Thread-601574][   transport.py][1871] : Compression: none
2025-07-01 10:21:32,894 [DEBUG][       Thread-601574][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:21:32,911 [DEBUG][       Thread-601574][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:21:32,911 [DEBUG][       Thread-601574][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:21:32,911 [DEBUG][       Thread-601574][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:21:32,912 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:21:32,912 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:21:32,913 [DEBUG][       Thread-601574][   transport.py][1871] : userauth is OK
2025-07-01 10:21:32,938 [ INFO][       Thread-601574][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:21:32,939 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:21:33,600 [DEBUG][       Thread-601574][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:21:33,601 [DEBUG][       Thread-601574][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:21:33,645 [DEBUG][       Thread-601574][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:21:33,645 [DEBUG][       Thread-601574][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:21:33,648 [DEBUG][       Thread-601574][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:21:33,660 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:21:33,660 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:21:33,662 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:21:33,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:21:33,669 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:21:33,671 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:21:33,672 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:21:33,672 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:21:33,672 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.347863 -999.00   +9.50  27.40     54   +0.80 1 1 1 1 1   887    0 8.77 -1.19 ----- 27.4 27.4 10.7 52.1 12.5 -23.6 11.6 -23.8 11.0 -23.4 11.6 -22.8
2025-07-01 10:21:33,672 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:21:33,672 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:21:33,672 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.347863
2025-07-01 10:21:33,673 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:21:33,673 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:21:33,674 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:21:33,674 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:21:33,674 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:21:33,674 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:21:06', tmtdew=10.04, humidity=49.53, cloud=0.0, wind=35.67, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:20:55.363', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:21:33,675 [DEBUG][       Thread-601574][   transport.py][1871] : EOF in transport thread
2025-07-01 10:21:33,757 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:21:33,772 [DEBUG][       Thread-601577][   transport.py][1871] : starting thread (client mode): 0x82b2b00
2025-07-01 10:21:33,772 [DEBUG][       Thread-601577][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:21:33,789 [DEBUG][       Thread-601577][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:21:33,789 [ INFO][       Thread-601577][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:21:33,796 [DEBUG][       Thread-601577][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:21:33,796 [DEBUG][       Thread-601577][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:21:33,796 [DEBUG][       Thread-601577][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:21:33,797 [DEBUG][       Thread-601577][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:21:33,797 [DEBUG][       Thread-601577][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:21:33,797 [DEBUG][       Thread-601577][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:21:33,797 [DEBUG][       Thread-601577][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:21:33,797 [DEBUG][       Thread-601577][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:21:33,797 [DEBUG][       Thread-601577][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:21:33,797 [DEBUG][       Thread-601577][   transport.py][1871] : client lang: <none>
2025-07-01 10:21:33,797 [DEBUG][       Thread-601577][   transport.py][1871] : server lang: <none>
2025-07-01 10:21:33,797 [DEBUG][       Thread-601577][   transport.py][1871] : kex follows: False
2025-07-01 10:21:33,797 [DEBUG][       Thread-601577][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:21:33,797 [DEBUG][       Thread-601577][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:21:33,797 [DEBUG][       Thread-601577][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:21:33,797 [DEBUG][       Thread-601577][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:21:33,797 [DEBUG][       Thread-601577][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:21:33,797 [DEBUG][       Thread-601577][   transport.py][1871] : Compression: none
2025-07-01 10:21:33,797 [DEBUG][       Thread-601577][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:21:33,853 [DEBUG][       Thread-601577][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:21:33,854 [DEBUG][       Thread-601577][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:21:33,854 [DEBUG][       Thread-601577][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:21:33,854 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:21:33,855 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:21:33,909 [DEBUG][       Thread-601577][   transport.py][1871] : userauth is OK
2025-07-01 10:21:33,909 [DEBUG][       Thread-601577][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:21:33,910 [DEBUG][       Thread-601577][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:21:33,910 [DEBUG][       Thread-601577][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:21:33,910 [DEBUG][       Thread-601577][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:21:33,929 [ INFO][       Thread-601577][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:21:33,929 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:21:33,930 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:21:35,040 [DEBUG][       Thread-601577][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:21:35,040 [DEBUG][       Thread-601577][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:21:35,088 [DEBUG][       Thread-601577][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:21:35,089 [DEBUG][       Thread-601577][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:21:35,098 [DEBUG][       Thread-601577][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:21:35,107 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:21:35,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-07-01 10:21:35,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-07-01 10:21:35,126 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:21:35,126 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:21:35,127 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:21:35,134 [DEBUG][       Thread-601577][   transport.py][1871] : EOF in transport thread
2025-07-01 10:21:40,252 [DEBUG][Thread-601579 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:21:45,137 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:21:45,138 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:21:45,138 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:21:45,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-07-01 10:21:45,617 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 21, 38), 9.98, 49.62, 0.0, 38.39, 9.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:21:45,618 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:21:38
2025-07-01 10:21:45,702 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:21:45,706 [DEBUG][       Thread-601580][   transport.py][1871] : starting thread (client mode): 0x81736d0
2025-07-01 10:21:45,706 [DEBUG][       Thread-601580][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:21:45,725 [DEBUG][       Thread-601580][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:21:45,725 [ INFO][       Thread-601580][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:21:45,729 [DEBUG][       Thread-601580][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:21:45,729 [DEBUG][       Thread-601580][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:21:45,729 [DEBUG][       Thread-601580][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:21:45,729 [DEBUG][       Thread-601580][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:21:45,729 [DEBUG][       Thread-601580][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:21:45,729 [DEBUG][       Thread-601580][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:21:45,729 [DEBUG][       Thread-601580][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:21:45,729 [DEBUG][       Thread-601580][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:21:45,729 [DEBUG][       Thread-601580][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:21:45,729 [DEBUG][       Thread-601580][   transport.py][1871] : client lang: <none>
2025-07-01 10:21:45,729 [DEBUG][       Thread-601580][   transport.py][1871] : server lang: <none>
2025-07-01 10:21:45,729 [DEBUG][       Thread-601580][   transport.py][1871] : kex follows: False
2025-07-01 10:21:45,729 [DEBUG][       Thread-601580][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:21:45,729 [DEBUG][       Thread-601580][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:21:45,729 [DEBUG][       Thread-601580][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:21:45,729 [DEBUG][       Thread-601580][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:21:45,729 [DEBUG][       Thread-601580][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:21:45,729 [DEBUG][       Thread-601580][   transport.py][1871] : Compression: none
2025-07-01 10:21:45,729 [DEBUG][       Thread-601580][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:21:45,745 [DEBUG][       Thread-601580][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:21:45,746 [DEBUG][       Thread-601580][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:21:45,746 [DEBUG][       Thread-601580][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:21:45,747 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:21:45,747 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:21:45,748 [DEBUG][       Thread-601580][   transport.py][1871] : userauth is OK
2025-07-01 10:21:45,761 [ INFO][       Thread-601580][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:21:45,761 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:21:46,440 [DEBUG][       Thread-601580][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:21:46,440 [DEBUG][       Thread-601580][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:21:46,484 [DEBUG][       Thread-601580][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:21:46,485 [DEBUG][       Thread-601580][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:21:46,487 [DEBUG][       Thread-601580][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:21:46,499 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:21:46,499 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:21:46,500 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:21:46,502 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:21:46,505 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:21:46,507 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:21:46,507 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:21:46,507 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:21:46,507 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.347863 -999.00   +9.50  27.40     54   +0.80 1 1 1 1 1   887    0 8.77 -1.19 ----- 27.4 27.4 10.7 52.1 12.5 -23.6 11.6 -23.8 11.0 -23.4 11.6 -22.8
2025-07-01 10:21:46,507 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:21:46,507 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:21:46,507 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.347863
2025-07-01 10:21:46,507 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:21:46,507 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:21:46,507 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:21:46,507 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:21:46,507 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:21:46,507 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:21:38', tmtdew=9.98, humidity=49.62, cloud=0.0, wind=38.39, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:20:55.363', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:21:46,508 [DEBUG][       Thread-601580][   transport.py][1871] : EOF in transport thread
2025-07-01 10:21:46,580 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:21:46,593 [DEBUG][       Thread-601583][   transport.py][1871] : starting thread (client mode): 0x8154f70
2025-07-01 10:21:46,593 [DEBUG][       Thread-601583][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:21:46,609 [DEBUG][       Thread-601583][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:21:46,609 [ INFO][       Thread-601583][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:21:46,620 [DEBUG][       Thread-601583][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:21:46,620 [DEBUG][       Thread-601583][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:21:46,620 [DEBUG][       Thread-601583][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:21:46,620 [DEBUG][       Thread-601583][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:21:46,620 [DEBUG][       Thread-601583][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:21:46,620 [DEBUG][       Thread-601583][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:21:46,620 [DEBUG][       Thread-601583][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:21:46,620 [DEBUG][       Thread-601583][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:21:46,620 [DEBUG][       Thread-601583][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:21:46,620 [DEBUG][       Thread-601583][   transport.py][1871] : client lang: <none>
2025-07-01 10:21:46,620 [DEBUG][       Thread-601583][   transport.py][1871] : server lang: <none>
2025-07-01 10:21:46,620 [DEBUG][       Thread-601583][   transport.py][1871] : kex follows: False
2025-07-01 10:21:46,620 [DEBUG][       Thread-601583][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:21:46,620 [DEBUG][       Thread-601583][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:21:46,620 [DEBUG][       Thread-601583][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:21:46,620 [DEBUG][       Thread-601583][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:21:46,620 [DEBUG][       Thread-601583][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:21:46,620 [DEBUG][       Thread-601583][   transport.py][1871] : Compression: none
2025-07-01 10:21:46,620 [DEBUG][       Thread-601583][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:21:46,676 [DEBUG][       Thread-601583][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:21:46,676 [DEBUG][       Thread-601583][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:21:46,676 [DEBUG][       Thread-601583][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:21:46,676 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:21:46,676 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:21:46,733 [DEBUG][       Thread-601583][   transport.py][1871] : userauth is OK
2025-07-01 10:21:46,733 [DEBUG][       Thread-601583][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:21:46,733 [DEBUG][       Thread-601583][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:21:46,733 [DEBUG][       Thread-601583][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:21:46,733 [DEBUG][       Thread-601583][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:21:46,750 [ INFO][       Thread-601583][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:21:46,750 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:21:46,750 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:21:47,834 [DEBUG][       Thread-601583][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:21:47,834 [DEBUG][       Thread-601583][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:21:47,883 [DEBUG][       Thread-601583][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:21:47,883 [DEBUG][       Thread-601583][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:21:47,895 [DEBUG][       Thread-601583][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:21:47,906 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:21: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')
2025-07-01 10:21:47,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') -> 00000000
2025-07-01 10:21:47,930 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:21:47,930 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:21:47,930 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:21:47,941 [DEBUG][       Thread-601583][   transport.py][1871] : EOF in transport thread
2025-07-01 10:21:49,269 [DEBUG][Thread-601585 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:21:57,940 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:21:57,941 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:21:57,941 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:21:57,944 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:21:58,293 [DEBUG][Thread-601586 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:21:58,391 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 21, 38), 9.98, 49.62, 0.0, 38.39, 9.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:21:58,391 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:21:38
2025-07-01 10:21:58,476 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:21:58,482 [DEBUG][       Thread-601587][   transport.py][1871] : starting thread (client mode): 0x8105960
2025-07-01 10:21:58,482 [DEBUG][       Thread-601587][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:21:58,502 [DEBUG][       Thread-601587][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:21:58,503 [ INFO][       Thread-601587][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:21:58,506 [DEBUG][       Thread-601587][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:21:58,506 [DEBUG][       Thread-601587][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:21:58,506 [DEBUG][       Thread-601587][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:21:58,506 [DEBUG][       Thread-601587][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:21:58,506 [DEBUG][       Thread-601587][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:21:58,506 [DEBUG][       Thread-601587][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:21:58,506 [DEBUG][       Thread-601587][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:21:58,506 [DEBUG][       Thread-601587][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:21:58,506 [DEBUG][       Thread-601587][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:21:58,506 [DEBUG][       Thread-601587][   transport.py][1871] : client lang: <none>
2025-07-01 10:21:58,506 [DEBUG][       Thread-601587][   transport.py][1871] : server lang: <none>
2025-07-01 10:21:58,506 [DEBUG][       Thread-601587][   transport.py][1871] : kex follows: False
2025-07-01 10:21:58,506 [DEBUG][       Thread-601587][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:21:58,506 [DEBUG][       Thread-601587][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:21:58,506 [DEBUG][       Thread-601587][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:21:58,506 [DEBUG][       Thread-601587][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:21:58,506 [DEBUG][       Thread-601587][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:21:58,506 [DEBUG][       Thread-601587][   transport.py][1871] : Compression: none
2025-07-01 10:21:58,506 [DEBUG][       Thread-601587][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:21:58,521 [DEBUG][       Thread-601587][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:21:58,522 [DEBUG][       Thread-601587][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:21:58,522 [DEBUG][       Thread-601587][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:21:58,523 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:21:58,523 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:21:58,524 [DEBUG][       Thread-601587][   transport.py][1871] : userauth is OK
2025-07-01 10:21:58,548 [ INFO][       Thread-601587][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:21:58,549 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:21:58,571 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:21:58,572 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:21:59,174 [DEBUG][       Thread-601587][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:21:59,175 [DEBUG][       Thread-601587][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:21:59,217 [DEBUG][       Thread-601587][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:21:59,217 [DEBUG][       Thread-601587][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:21:59,220 [DEBUG][       Thread-601587][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:21:59,232 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:21:59,233 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:21:59,234 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:21:59,236 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:21:59,242 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:21:59,243 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:21:59,243 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:21:59,244 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:21:59,244 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.348210 -999.00   +9.50  36.78     54   +0.90 1 1 2 1 1   887    0 8.77 -1.41 ----- 36.8 36.8 19.8 55.6 12.4 -23.1 11.6 -23.2 10.9 -23.0 11.6 -22.0
2025-07-01 10:21:59,244 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:21:59,244 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:21:59,244 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.348210
2025-07-01 10:21:59,245 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:21:59,245 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:21:59,246 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:21:59,246 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:21:59,246 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:21:59,246 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:21:38', tmtdew=9.98, humidity=49.62, cloud=0.0, wind=38.39, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:21:25.344', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:21:59,247 [DEBUG][       Thread-601587][   transport.py][1871] : EOF in transport thread
2025-07-01 10:21:59,330 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:21:59,342 [DEBUG][       Thread-601590][   transport.py][1871] : starting thread (client mode): 0x818d780
2025-07-01 10:21:59,343 [DEBUG][       Thread-601590][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:21:59,358 [DEBUG][       Thread-601590][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:21:59,359 [ INFO][       Thread-601590][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:21:59,372 [DEBUG][       Thread-601590][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:21:59,372 [DEBUG][       Thread-601590][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:21:59,372 [DEBUG][       Thread-601590][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:21:59,372 [DEBUG][       Thread-601590][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:21:59,372 [DEBUG][       Thread-601590][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:21:59,372 [DEBUG][       Thread-601590][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:21:59,372 [DEBUG][       Thread-601590][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:21:59,372 [DEBUG][       Thread-601590][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:21:59,372 [DEBUG][       Thread-601590][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:21:59,372 [DEBUG][       Thread-601590][   transport.py][1871] : client lang: <none>
2025-07-01 10:21:59,372 [DEBUG][       Thread-601590][   transport.py][1871] : server lang: <none>
2025-07-01 10:21:59,373 [DEBUG][       Thread-601590][   transport.py][1871] : kex follows: False
2025-07-01 10:21:59,373 [DEBUG][       Thread-601590][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:21:59,373 [DEBUG][       Thread-601590][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:21:59,373 [DEBUG][       Thread-601590][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:21:59,373 [DEBUG][       Thread-601590][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:21:59,373 [DEBUG][       Thread-601590][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:21:59,373 [DEBUG][       Thread-601590][   transport.py][1871] : Compression: none
2025-07-01 10:21:59,373 [DEBUG][       Thread-601590][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:21:59,425 [DEBUG][       Thread-601590][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:21:59,426 [DEBUG][       Thread-601590][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:21:59,426 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:21:59,427 [DEBUG][       Thread-601590][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:21:59,428 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:21:59,481 [DEBUG][       Thread-601590][   transport.py][1871] : userauth is OK
2025-07-01 10:21:59,481 [DEBUG][       Thread-601590][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:21:59,482 [DEBUG][       Thread-601590][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:21:59,482 [DEBUG][       Thread-601590][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:21:59,482 [DEBUG][       Thread-601590][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:21:59,501 [ INFO][       Thread-601590][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:21:59,501 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:21:59,502 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:22:00,527 [DEBUG][       Thread-601590][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:22:00,527 [DEBUG][       Thread-601590][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:22:00,576 [DEBUG][       Thread-601590][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:22:00,576 [DEBUG][       Thread-601590][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:22:00,585 [DEBUG][       Thread-601590][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:22:00,594 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:22:00,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-07-01 10:22:00,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-07-01 10:22:00,618 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:22:00,618 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:22:00,618 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:22:00,626 [DEBUG][       Thread-601590][   transport.py][1871] : EOF in transport thread
2025-07-01 10:22:07,315 [DEBUG][Thread-601592 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:22:10,628 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:22:10,628 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:22:10,628 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:22:10,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-07-01 10:22:11,124 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 21, 38), 9.98, 49.62, 0.0, 38.39, 9.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:22:11,124 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:21:38
2025-07-01 10:22:11,216 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:22:11,220 [DEBUG][       Thread-601593][   transport.py][1871] : starting thread (client mode): 0x82b3910
2025-07-01 10:22:11,220 [DEBUG][       Thread-601593][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:22:11,246 [DEBUG][       Thread-601593][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:22:11,246 [ INFO][       Thread-601593][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:22:11,249 [DEBUG][       Thread-601593][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:22:11,249 [DEBUG][       Thread-601593][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:22:11,250 [DEBUG][       Thread-601593][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:22:11,250 [DEBUG][       Thread-601593][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:22:11,250 [DEBUG][       Thread-601593][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:22:11,250 [DEBUG][       Thread-601593][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:22:11,250 [DEBUG][       Thread-601593][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:22:11,250 [DEBUG][       Thread-601593][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:22:11,250 [DEBUG][       Thread-601593][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:22:11,250 [DEBUG][       Thread-601593][   transport.py][1871] : client lang: <none>
2025-07-01 10:22:11,250 [DEBUG][       Thread-601593][   transport.py][1871] : server lang: <none>
2025-07-01 10:22:11,250 [DEBUG][       Thread-601593][   transport.py][1871] : kex follows: False
2025-07-01 10:22:11,250 [DEBUG][       Thread-601593][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:22:11,250 [DEBUG][       Thread-601593][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:22:11,250 [DEBUG][       Thread-601593][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:22:11,250 [DEBUG][       Thread-601593][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:22:11,250 [DEBUG][       Thread-601593][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:22:11,250 [DEBUG][       Thread-601593][   transport.py][1871] : Compression: none
2025-07-01 10:22:11,250 [DEBUG][       Thread-601593][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:22:11,263 [DEBUG][       Thread-601593][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:22:11,263 [DEBUG][       Thread-601593][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:22:11,264 [DEBUG][       Thread-601593][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:22:11,264 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:22:11,264 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:22:11,264 [DEBUG][       Thread-601593][   transport.py][1871] : userauth is OK
2025-07-01 10:22:11,288 [ INFO][       Thread-601593][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:22:11,289 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:22:11,940 [DEBUG][       Thread-601593][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:22:11,940 [DEBUG][       Thread-601593][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:22:11,984 [DEBUG][       Thread-601593][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:22:11,985 [DEBUG][       Thread-601593][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:22:11,987 [DEBUG][       Thread-601593][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:22:12,000 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:22:12,001 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:22:12,002 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:22:12,003 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:22:12,006 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:22:12,007 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:22:12,007 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:22:12,007 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:22:12,007 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.348210 -999.00   +9.50  36.78     54   +0.90 1 1 2 1 1   887    0 8.77 -1.41 ----- 36.8 36.8 19.8 55.6 12.4 -23.1 11.6 -23.2 10.9 -23.0 11.6 -22.0
2025-07-01 10:22:12,007 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:22:12,007 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:22:12,007 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.348210
2025-07-01 10:22:12,007 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:22:12,007 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:22:12,007 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:22:12,007 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:22:12,007 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:22:12,007 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:21:38', tmtdew=9.98, humidity=49.62, cloud=0.0, wind=38.39, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:21:25.344', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:22:12,008 [DEBUG][       Thread-601593][   transport.py][1871] : EOF in transport thread
2025-07-01 10:22:12,082 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:22:12,091 [DEBUG][       Thread-601596][   transport.py][1871] : starting thread (client mode): 0x75aba60
2025-07-01 10:22:12,091 [DEBUG][       Thread-601596][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:22:12,106 [DEBUG][       Thread-601596][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:22:12,106 [ INFO][       Thread-601596][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:22:12,114 [DEBUG][       Thread-601596][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:22:12,114 [DEBUG][       Thread-601596][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:22:12,114 [DEBUG][       Thread-601596][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:22:12,114 [DEBUG][       Thread-601596][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:22:12,114 [DEBUG][       Thread-601596][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:22:12,114 [DEBUG][       Thread-601596][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:22:12,114 [DEBUG][       Thread-601596][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:22:12,114 [DEBUG][       Thread-601596][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:22:12,114 [DEBUG][       Thread-601596][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:22:12,114 [DEBUG][       Thread-601596][   transport.py][1871] : client lang: <none>
2025-07-01 10:22:12,114 [DEBUG][       Thread-601596][   transport.py][1871] : server lang: <none>
2025-07-01 10:22:12,114 [DEBUG][       Thread-601596][   transport.py][1871] : kex follows: False
2025-07-01 10:22:12,114 [DEBUG][       Thread-601596][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:22:12,114 [DEBUG][       Thread-601596][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:22:12,114 [DEBUG][       Thread-601596][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:22:12,114 [DEBUG][       Thread-601596][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:22:12,114 [DEBUG][       Thread-601596][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:22:12,114 [DEBUG][       Thread-601596][   transport.py][1871] : Compression: none
2025-07-01 10:22:12,114 [DEBUG][       Thread-601596][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:22:12,171 [DEBUG][       Thread-601596][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:22:12,172 [DEBUG][       Thread-601596][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:22:12,172 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:22:12,172 [DEBUG][       Thread-601596][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:22:12,172 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:22:12,239 [DEBUG][       Thread-601596][   transport.py][1871] : userauth is OK
2025-07-01 10:22:12,239 [DEBUG][       Thread-601596][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:22:12,239 [DEBUG][       Thread-601596][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:22:12,239 [DEBUG][       Thread-601596][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:22:12,239 [DEBUG][       Thread-601596][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:22:12,259 [ INFO][       Thread-601596][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:22:12,260 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:22:12,260 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:22:13,234 [DEBUG][       Thread-601596][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:22:13,234 [DEBUG][       Thread-601596][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:22:13,284 [DEBUG][       Thread-601596][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:22:13,284 [DEBUG][       Thread-601596][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:22:13,294 [DEBUG][       Thread-601596][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:22:13,303 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:22:13,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')
2025-07-01 10:22:13,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-07-01 10:22:13,321 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:22:13,321 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:22:13,322 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:22:13,329 [DEBUG][       Thread-601596][   transport.py][1871] : EOF in transport thread
2025-07-01 10:22:16,339 [DEBUG][Thread-601598 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:22:22,850 [DEBUG][Thread-601599 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:22:23,332 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:22:23,332 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:22:23,332 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:22:23,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-07-01 10:22:23,798 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 22, 10), 9.96, 49.93, 0.0, 35.87, 9.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:22:23,798 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:22:10
2025-07-01 10:22:23,883 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:22:23,889 [DEBUG][       Thread-601600][   transport.py][1871] : starting thread (client mode): 0x75a9f90
2025-07-01 10:22:23,889 [DEBUG][       Thread-601600][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:22:23,909 [DEBUG][       Thread-601600][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:22:23,909 [ INFO][       Thread-601600][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:22:23,912 [DEBUG][       Thread-601600][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:22:23,912 [DEBUG][       Thread-601600][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:22:23,912 [DEBUG][       Thread-601600][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:22:23,912 [DEBUG][       Thread-601600][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:22:23,912 [DEBUG][       Thread-601600][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:22:23,912 [DEBUG][       Thread-601600][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:22:23,912 [DEBUG][       Thread-601600][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:22:23,912 [DEBUG][       Thread-601600][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:22:23,912 [DEBUG][       Thread-601600][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:22:23,912 [DEBUG][       Thread-601600][   transport.py][1871] : client lang: <none>
2025-07-01 10:22:23,912 [DEBUG][       Thread-601600][   transport.py][1871] : server lang: <none>
2025-07-01 10:22:23,912 [DEBUG][       Thread-601600][   transport.py][1871] : kex follows: False
2025-07-01 10:22:23,912 [DEBUG][       Thread-601600][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:22:23,912 [DEBUG][       Thread-601600][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:22:23,912 [DEBUG][       Thread-601600][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:22:23,912 [DEBUG][       Thread-601600][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:22:23,912 [DEBUG][       Thread-601600][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:22:23,912 [DEBUG][       Thread-601600][   transport.py][1871] : Compression: none
2025-07-01 10:22:23,912 [DEBUG][       Thread-601600][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:22:23,928 [DEBUG][       Thread-601600][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:22:23,928 [DEBUG][       Thread-601600][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:22:23,928 [DEBUG][       Thread-601600][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:22:23,928 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:22:23,928 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:22:23,929 [DEBUG][       Thread-601600][   transport.py][1871] : userauth is OK
2025-07-01 10:22:23,952 [ INFO][       Thread-601600][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:22:23,953 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:22:24,602 [DEBUG][       Thread-601600][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:22:24,602 [DEBUG][       Thread-601600][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:22:24,644 [DEBUG][       Thread-601600][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:22:24,644 [DEBUG][       Thread-601600][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:22:24,649 [DEBUG][       Thread-601600][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:22:24,661 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:22:24,662 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:22:24,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:22:24,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:22:24,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:22:24,678 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:22:24,678 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:22:24,678 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:22:24,678 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.348557 -999.00   +9.40  31.62     54   +0.80 1 1 2 1 1   887    0 8.58 -1.92 ----- 31.6 31.6 17.4 54.2 12.3 -25.0 11.5 -24.2 10.9 -23.5 11.5 -23.8
2025-07-01 10:22:24,678 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:22:24,678 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:22:24,678 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.348557
2025-07-01 10:22:24,678 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:22:24,678 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:22:24,678 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:22:24,678 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:22:24,678 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:22:24,678 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:22:10', tmtdew=9.96, humidity=49.93, cloud=0.0, wind=35.87, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:21:55.325', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:22:24,679 [DEBUG][       Thread-601600][   transport.py][1871] : EOF in transport thread
2025-07-01 10:22:24,753 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:22:25,362 [DEBUG][Thread-601603 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:22:34,386 [DEBUG][Thread-601604 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:22:43,405 [DEBUG][Thread-601605 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:22:52,426 [DEBUG][Thread-601606 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:22:58,710 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:22:58,711 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:23:01,449 [DEBUG][Thread-601607 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:23:10,470 [DEBUG][Thread-601608 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:23:19,490 [DEBUG][Thread-601609 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:23:22,899 [DEBUG][Thread-601610 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:23:28,513 [DEBUG][Thread-601611 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:23:37,537 [DEBUG][Thread-601612 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:23:46,554 [DEBUG][Thread-601613 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:23:55,577 [DEBUG][Thread-601614 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:23:58,849 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:23:58,850 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:24:04,598 [DEBUG][Thread-601615 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:24:13,620 [DEBUG][Thread-601616 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:24:22,639 [DEBUG][Thread-601617 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:24:22,931 [DEBUG][Thread-601618 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:24:31,663 [DEBUG][Thread-601619 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:24:33,812 [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-07-01 10:24:40,685 [DEBUG][Thread-601620 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:24:43,816 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:24:43,816 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:24:43,816 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:24:43,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-07-01 10:24:44,330 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 24, 17), 9.88, 50.07, 0.0, 44.34, 9.5, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:24:44,330 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:24:17
2025-07-01 10:24:44,415 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:24:44,420 [DEBUG][       Thread-601621][   transport.py][1871] : starting thread (client mode): 0x75a8640
2025-07-01 10:24:44,420 [DEBUG][       Thread-601621][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:24:44,440 [DEBUG][       Thread-601621][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:24:44,440 [ INFO][       Thread-601621][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:24:44,443 [DEBUG][       Thread-601621][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:24:44,443 [DEBUG][       Thread-601621][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:24:44,443 [DEBUG][       Thread-601621][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:24:44,443 [DEBUG][       Thread-601621][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:24:44,444 [DEBUG][       Thread-601621][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:24:44,444 [DEBUG][       Thread-601621][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:24:44,444 [DEBUG][       Thread-601621][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:24:44,444 [DEBUG][       Thread-601621][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:24:44,444 [DEBUG][       Thread-601621][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:24:44,444 [DEBUG][       Thread-601621][   transport.py][1871] : client lang: <none>
2025-07-01 10:24:44,444 [DEBUG][       Thread-601621][   transport.py][1871] : server lang: <none>
2025-07-01 10:24:44,444 [DEBUG][       Thread-601621][   transport.py][1871] : kex follows: False
2025-07-01 10:24:44,444 [DEBUG][       Thread-601621][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:24:44,444 [DEBUG][       Thread-601621][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:24:44,444 [DEBUG][       Thread-601621][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:24:44,444 [DEBUG][       Thread-601621][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:24:44,444 [DEBUG][       Thread-601621][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:24:44,444 [DEBUG][       Thread-601621][   transport.py][1871] : Compression: none
2025-07-01 10:24:44,444 [DEBUG][       Thread-601621][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:24:44,459 [DEBUG][       Thread-601621][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:24:44,460 [DEBUG][       Thread-601621][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:24:44,460 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:24:44,460 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:24:44,461 [DEBUG][       Thread-601621][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:24:44,461 [DEBUG][       Thread-601621][   transport.py][1871] : userauth is OK
2025-07-01 10:24:44,474 [ INFO][       Thread-601621][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:24:44,475 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:24:45,073 [DEBUG][       Thread-601621][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:24:45,073 [DEBUG][       Thread-601621][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:24:45,117 [DEBUG][       Thread-601621][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:24:45,117 [DEBUG][       Thread-601621][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:24:45,120 [DEBUG][       Thread-601621][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:24:45,133 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:24:45,133 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:24:45,135 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:24:45,137 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:24:45,142 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:24:45,144 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:24:45,144 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:24:45,144 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:24:45,145 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.350294 -999.00   +9.10  43.86     55   +0.60 1 1 2 1 1   887    0 8.42 -6.54 ----- 43.9 43.9 26.6 55.4 11.6 -24.7 11.0 -24.7 10.6 -24.1 11.1 -23.5
2025-07-01 10:24:45,145 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:24:45,145 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:24:45,145 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.350294
2025-07-01 10:24:45,145 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:24:45,146 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:24:45,146 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:24:45,146 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:24:45,146 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:24:45,146 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:24:17', tmtdew=9.88, humidity=50.07, cloud=0.0, wind=44.34, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:24:25.402', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:24:45,147 [DEBUG][       Thread-601621][   transport.py][1871] : EOF in transport thread
2025-07-01 10:24:45,230 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:24:45,248 [DEBUG][       Thread-601624][   transport.py][1871] : starting thread (client mode): 0x8172d70
2025-07-01 10:24:45,248 [DEBUG][       Thread-601624][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:24:45,264 [DEBUG][       Thread-601624][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:24:45,264 [ INFO][       Thread-601624][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:24:45,272 [DEBUG][       Thread-601624][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:24:45,272 [DEBUG][       Thread-601624][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:24:45,272 [DEBUG][       Thread-601624][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:24:45,272 [DEBUG][       Thread-601624][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:24:45,272 [DEBUG][       Thread-601624][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:24:45,272 [DEBUG][       Thread-601624][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:24:45,272 [DEBUG][       Thread-601624][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:24:45,272 [DEBUG][       Thread-601624][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:24:45,272 [DEBUG][       Thread-601624][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:24:45,272 [DEBUG][       Thread-601624][   transport.py][1871] : client lang: <none>
2025-07-01 10:24:45,272 [DEBUG][       Thread-601624][   transport.py][1871] : server lang: <none>
2025-07-01 10:24:45,272 [DEBUG][       Thread-601624][   transport.py][1871] : kex follows: False
2025-07-01 10:24:45,272 [DEBUG][       Thread-601624][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:24:45,273 [DEBUG][       Thread-601624][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:24:45,273 [DEBUG][       Thread-601624][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:24:45,273 [DEBUG][       Thread-601624][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:24:45,273 [DEBUG][       Thread-601624][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:24:45,273 [DEBUG][       Thread-601624][   transport.py][1871] : Compression: none
2025-07-01 10:24:45,273 [DEBUG][       Thread-601624][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:24:45,333 [DEBUG][       Thread-601624][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:24:45,334 [DEBUG][       Thread-601624][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:24:45,334 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:24:45,335 [DEBUG][       Thread-601624][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:24:45,336 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:24:45,390 [DEBUG][       Thread-601624][   transport.py][1871] : userauth is OK
2025-07-01 10:24:45,390 [DEBUG][       Thread-601624][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:24:45,390 [DEBUG][       Thread-601624][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:24:45,390 [DEBUG][       Thread-601624][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:24:45,390 [DEBUG][       Thread-601624][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:24:45,414 [ INFO][       Thread-601624][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:24:45,415 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:24:45,415 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:24:46,467 [DEBUG][       Thread-601624][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:24:46,467 [DEBUG][       Thread-601624][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:24:46,516 [DEBUG][       Thread-601624][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:24:46,516 [DEBUG][       Thread-601624][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:24:46,525 [DEBUG][       Thread-601624][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:24:46,534 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:24: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-07-01 10:24: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-07-01 10:24:46,558 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:24:46,558 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:24:46,559 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:24:46,567 [DEBUG][       Thread-601624][   transport.py][1871] : EOF in transport thread
2025-07-01 10:24:49,705 [DEBUG][Thread-601626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:24:56,569 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:24:56,569 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:24:56,570 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:24:56,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-07-01 10:24:57,065 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 24, 49), 9.85, 50.18, 0.0, 42.2, 9.47, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:24:57,065 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:24:49
2025-07-01 10:24:57,157 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:24:57,160 [DEBUG][       Thread-601627][   transport.py][1871] : starting thread (client mode): 0x8172230
2025-07-01 10:24:57,160 [DEBUG][       Thread-601627][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:24:57,181 [DEBUG][       Thread-601627][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:24:57,181 [ INFO][       Thread-601627][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:24:57,184 [DEBUG][       Thread-601627][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:24:57,184 [DEBUG][       Thread-601627][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:24:57,184 [DEBUG][       Thread-601627][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:24:57,184 [DEBUG][       Thread-601627][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:24:57,184 [DEBUG][       Thread-601627][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:24:57,184 [DEBUG][       Thread-601627][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:24:57,184 [DEBUG][       Thread-601627][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:24:57,184 [DEBUG][       Thread-601627][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:24:57,184 [DEBUG][       Thread-601627][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:24:57,184 [DEBUG][       Thread-601627][   transport.py][1871] : client lang: <none>
2025-07-01 10:24:57,184 [DEBUG][       Thread-601627][   transport.py][1871] : server lang: <none>
2025-07-01 10:24:57,184 [DEBUG][       Thread-601627][   transport.py][1871] : kex follows: False
2025-07-01 10:24:57,184 [DEBUG][       Thread-601627][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:24:57,184 [DEBUG][       Thread-601627][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:24:57,184 [DEBUG][       Thread-601627][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:24:57,184 [DEBUG][       Thread-601627][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:24:57,184 [DEBUG][       Thread-601627][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:24:57,184 [DEBUG][       Thread-601627][   transport.py][1871] : Compression: none
2025-07-01 10:24:57,184 [DEBUG][       Thread-601627][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:24:57,199 [DEBUG][       Thread-601627][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:24:57,199 [DEBUG][       Thread-601627][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:24:57,200 [DEBUG][       Thread-601627][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:24:57,200 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:24:57,200 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:24:57,200 [DEBUG][       Thread-601627][   transport.py][1871] : userauth is OK
2025-07-01 10:24:57,224 [ INFO][       Thread-601627][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:24:57,224 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:24:57,850 [DEBUG][       Thread-601627][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:24:57,850 [DEBUG][       Thread-601627][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:24:57,892 [DEBUG][       Thread-601627][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:24:57,893 [DEBUG][       Thread-601627][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:24:57,895 [DEBUG][       Thread-601627][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:24:57,908 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:24:57,908 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:24:57,909 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:24:57,910 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:24:57,913 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:24:57,914 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:24:57,914 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:24:57,914 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:24:57,914 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.350294 -999.00   +9.10  43.86     55   +0.60 1 1 2 1 1   887    0 8.42 -6.54 ----- 43.9 43.9 26.6 55.4 11.6 -24.7 11.0 -24.7 10.6 -24.1 11.1 -23.5
2025-07-01 10:24:57,914 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:24:57,914 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:24:57,914 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.350294
2025-07-01 10:24:57,914 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:24:57,914 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:24:57,914 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:24:57,914 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:24:57,914 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:24:57,914 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:24:49', tmtdew=9.85, humidity=50.18, cloud=0.0, wind=42.2, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:24:25.402', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:24:57,915 [DEBUG][       Thread-601627][   transport.py][1871] : EOF in transport thread
2025-07-01 10:24:57,988 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:24:57,998 [DEBUG][       Thread-601630][   transport.py][1871] : starting thread (client mode): 0x8154550
2025-07-01 10:24:57,998 [DEBUG][       Thread-601630][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:24:58,013 [DEBUG][       Thread-601630][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:24:58,013 [ INFO][       Thread-601630][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:24:58,021 [DEBUG][       Thread-601630][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:24:58,021 [DEBUG][       Thread-601630][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:24:58,021 [DEBUG][       Thread-601630][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:24:58,021 [DEBUG][       Thread-601630][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:24:58,021 [DEBUG][       Thread-601630][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:24:58,021 [DEBUG][       Thread-601630][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:24:58,021 [DEBUG][       Thread-601630][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:24:58,021 [DEBUG][       Thread-601630][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:24:58,021 [DEBUG][       Thread-601630][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:24:58,021 [DEBUG][       Thread-601630][   transport.py][1871] : client lang: <none>
2025-07-01 10:24:58,021 [DEBUG][       Thread-601630][   transport.py][1871] : server lang: <none>
2025-07-01 10:24:58,021 [DEBUG][       Thread-601630][   transport.py][1871] : kex follows: False
2025-07-01 10:24:58,021 [DEBUG][       Thread-601630][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:24:58,021 [DEBUG][       Thread-601630][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:24:58,021 [DEBUG][       Thread-601630][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:24:58,021 [DEBUG][       Thread-601630][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:24:58,021 [DEBUG][       Thread-601630][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:24:58,021 [DEBUG][       Thread-601630][   transport.py][1871] : Compression: none
2025-07-01 10:24:58,021 [DEBUG][       Thread-601630][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:24:58,075 [DEBUG][       Thread-601630][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:24:58,076 [DEBUG][       Thread-601630][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:24:58,076 [DEBUG][       Thread-601630][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:24:58,076 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:24:58,076 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:24:58,133 [DEBUG][       Thread-601630][   transport.py][1871] : userauth is OK
2025-07-01 10:24:58,133 [DEBUG][       Thread-601630][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:24:58,133 [DEBUG][       Thread-601630][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:24:58,133 [DEBUG][       Thread-601630][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:24:58,133 [DEBUG][       Thread-601630][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:24:58,148 [ INFO][       Thread-601630][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:24:58,148 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:24:58,148 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:24:58,727 [DEBUG][Thread-601632 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:24:58,987 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:24:58,987 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:24:59,205 [DEBUG][       Thread-601630][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:24:59,205 [DEBUG][       Thread-601630][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:24:59,262 [DEBUG][       Thread-601630][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:24:59,262 [DEBUG][       Thread-601630][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:24:59,278 [DEBUG][       Thread-601630][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:24:59,291 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:24:59,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-07-01 10:24:59,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-07-01 10:24:59,315 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:24:59,315 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:24:59,315 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:24:59,330 [DEBUG][       Thread-601630][   transport.py][1871] : EOF in transport thread
2025-07-01 10:25:07,751 [DEBUG][Thread-601633 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:25:09,319 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:25:09,319 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:25:09,319 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:25:09,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-07-01 10:25:09,824 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 24, 49), 9.85, 50.18, 0.0, 42.2, 9.47, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:25:09,824 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:24:49
2025-07-01 10:25:09,909 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:25:09,913 [DEBUG][       Thread-601634][   transport.py][1871] : starting thread (client mode): 0x818e2f0
2025-07-01 10:25:09,913 [DEBUG][       Thread-601634][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:25:09,933 [DEBUG][       Thread-601634][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:25:09,934 [ INFO][       Thread-601634][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:25:09,935 [DEBUG][       Thread-601634][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:25:09,935 [DEBUG][       Thread-601634][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:25:09,935 [DEBUG][       Thread-601634][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:25:09,935 [DEBUG][       Thread-601634][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:25:09,935 [DEBUG][       Thread-601634][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:25:09,935 [DEBUG][       Thread-601634][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:25:09,935 [DEBUG][       Thread-601634][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:25:09,935 [DEBUG][       Thread-601634][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:25:09,935 [DEBUG][       Thread-601634][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:25:09,935 [DEBUG][       Thread-601634][   transport.py][1871] : client lang: <none>
2025-07-01 10:25:09,935 [DEBUG][       Thread-601634][   transport.py][1871] : server lang: <none>
2025-07-01 10:25:09,935 [DEBUG][       Thread-601634][   transport.py][1871] : kex follows: False
2025-07-01 10:25:09,935 [DEBUG][       Thread-601634][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:25:09,935 [DEBUG][       Thread-601634][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:25:09,935 [DEBUG][       Thread-601634][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:25:09,935 [DEBUG][       Thread-601634][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:25:09,936 [DEBUG][       Thread-601634][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:25:09,936 [DEBUG][       Thread-601634][   transport.py][1871] : Compression: none
2025-07-01 10:25:09,936 [DEBUG][       Thread-601634][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:25:09,943 [DEBUG][       Thread-601634][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:25:09,944 [DEBUG][       Thread-601634][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:25:09,944 [DEBUG][       Thread-601634][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:25:09,944 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:25:09,945 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:25:09,946 [DEBUG][       Thread-601634][   transport.py][1871] : userauth is OK
2025-07-01 10:25:09,958 [ INFO][       Thread-601634][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:25:09,959 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:25:10,548 [DEBUG][       Thread-601634][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:25:10,548 [DEBUG][       Thread-601634][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:25:10,589 [DEBUG][       Thread-601634][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:25:10,589 [DEBUG][       Thread-601634][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:25:10,592 [DEBUG][       Thread-601634][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:25:10,604 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:25:10,604 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:25:10,606 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:25:10,607 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:25:10,612 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:25:10,614 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:25:10,614 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:25:10,614 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:25:10,615 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.350294 -999.00   +9.10  43.86     55   +0.60 1 1 2 1 1   887    0 8.42 -6.54 ----- 43.9 43.9 26.6 55.4 11.6 -24.7 11.0 -24.7 10.6 -24.1 11.1 -23.5
2025-07-01 10:25:10,615 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:25:10,615 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:25:10,615 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.350294
2025-07-01 10:25:10,615 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:25:10,616 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:25:10,616 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:25:10,616 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:25:10,616 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:25:10,616 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:24:49', tmtdew=9.85, humidity=50.18, cloud=0.0, wind=42.2, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:24:25.402', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:25:10,617 [DEBUG][       Thread-601634][   transport.py][1871] : EOF in transport thread
2025-07-01 10:25:10,701 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:25:10,712 [DEBUG][       Thread-601637][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 10:25:10,712 [DEBUG][       Thread-601637][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:25:10,727 [DEBUG][       Thread-601637][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:25:10,728 [ INFO][       Thread-601637][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:25:10,735 [DEBUG][       Thread-601637][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:25:10,736 [DEBUG][       Thread-601637][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:25:10,736 [DEBUG][       Thread-601637][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:25:10,736 [DEBUG][       Thread-601637][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:25:10,736 [DEBUG][       Thread-601637][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:25:10,736 [DEBUG][       Thread-601637][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:25:10,736 [DEBUG][       Thread-601637][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:25:10,736 [DEBUG][       Thread-601637][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:25:10,736 [DEBUG][       Thread-601637][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:25:10,736 [DEBUG][       Thread-601637][   transport.py][1871] : client lang: <none>
2025-07-01 10:25:10,736 [DEBUG][       Thread-601637][   transport.py][1871] : server lang: <none>
2025-07-01 10:25:10,736 [DEBUG][       Thread-601637][   transport.py][1871] : kex follows: False
2025-07-01 10:25:10,736 [DEBUG][       Thread-601637][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:25:10,736 [DEBUG][       Thread-601637][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:25:10,736 [DEBUG][       Thread-601637][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:25:10,736 [DEBUG][       Thread-601637][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:25:10,736 [DEBUG][       Thread-601637][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:25:10,736 [DEBUG][       Thread-601637][   transport.py][1871] : Compression: none
2025-07-01 10:25:10,736 [DEBUG][       Thread-601637][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:25:10,797 [DEBUG][       Thread-601637][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:25:10,798 [DEBUG][       Thread-601637][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:25:10,798 [DEBUG][       Thread-601637][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:25:10,798 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:25:10,799 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:25:10,853 [DEBUG][       Thread-601637][   transport.py][1871] : userauth is OK
2025-07-01 10:25:10,854 [DEBUG][       Thread-601637][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:25:10,854 [DEBUG][       Thread-601637][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:25:10,854 [DEBUG][       Thread-601637][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:25:10,854 [DEBUG][       Thread-601637][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:25:10,873 [ INFO][       Thread-601637][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:25:10,874 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:25:10,874 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:25:11,895 [DEBUG][       Thread-601637][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:25:11,895 [DEBUG][       Thread-601637][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:25:11,943 [DEBUG][       Thread-601637][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:25:11,944 [DEBUG][       Thread-601637][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:25:11,956 [DEBUG][       Thread-601637][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:25:11,968 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:25:11,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-07-01 10:25:11,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-07-01 10:25:11,987 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:25:11,987 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:25:11,987 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:25:11,994 [DEBUG][       Thread-601637][   transport.py][1871] : EOF in transport thread
2025-07-01 10:25:16,773 [DEBUG][Thread-601639 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:25:21,996 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:25:21,996 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:25:21,996 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:25:21,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-07-01 10:25:22,530 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 24, 49), 9.85, 50.18, 0.0, 42.2, 9.47, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:25:22,530 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:24:49
2025-07-01 10:25:22,621 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:25:22,625 [DEBUG][       Thread-601640][   transport.py][1871] : starting thread (client mode): 0x82b0be0
2025-07-01 10:25:22,625 [DEBUG][       Thread-601640][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:25:22,644 [DEBUG][       Thread-601640][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:25:22,644 [ INFO][       Thread-601640][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:25:22,645 [DEBUG][       Thread-601640][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:25:22,645 [DEBUG][       Thread-601640][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:25:22,645 [DEBUG][       Thread-601640][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:25:22,645 [DEBUG][       Thread-601640][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:25:22,645 [DEBUG][       Thread-601640][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:25:22,645 [DEBUG][       Thread-601640][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:25:22,645 [DEBUG][       Thread-601640][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:25:22,645 [DEBUG][       Thread-601640][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:25:22,645 [DEBUG][       Thread-601640][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:25:22,645 [DEBUG][       Thread-601640][   transport.py][1871] : client lang: <none>
2025-07-01 10:25:22,645 [DEBUG][       Thread-601640][   transport.py][1871] : server lang: <none>
2025-07-01 10:25:22,645 [DEBUG][       Thread-601640][   transport.py][1871] : kex follows: False
2025-07-01 10:25:22,645 [DEBUG][       Thread-601640][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:25:22,645 [DEBUG][       Thread-601640][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:25:22,645 [DEBUG][       Thread-601640][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:25:22,645 [DEBUG][       Thread-601640][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:25:22,645 [DEBUG][       Thread-601640][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:25:22,646 [DEBUG][       Thread-601640][   transport.py][1871] : Compression: none
2025-07-01 10:25:22,646 [DEBUG][       Thread-601640][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:25:22,657 [DEBUG][       Thread-601640][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:25:22,657 [DEBUG][       Thread-601640][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:25:22,657 [DEBUG][       Thread-601640][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:25:22,657 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:25:22,657 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:25:22,658 [DEBUG][       Thread-601640][   transport.py][1871] : userauth is OK
2025-07-01 10:25:22,681 [ INFO][       Thread-601640][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:25:22,682 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:25:22,978 [DEBUG][Thread-601642 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:25:23,315 [DEBUG][       Thread-601640][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:25:23,315 [DEBUG][       Thread-601640][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:25:23,357 [DEBUG][       Thread-601640][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:25:23,357 [DEBUG][       Thread-601640][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:25:23,360 [DEBUG][       Thread-601640][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:25:23,372 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:25:23,372 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:25:23,374 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:25:23,376 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:25:23,382 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:25:23,384 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:25:23,384 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:25:23,385 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:25:23,385 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.350641 -999.00   +9.10  30.28     56   +0.80 1 1 2 1 1   887    0 8.30 -7.93 ----- 30.3 30.3 31.8 52.0 11.5 -24.3 10.9 -24.4 10.5 -23.6 10.9 -23.1
2025-07-01 10:25:23,385 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:25:23,385 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:25:23,385 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.350641
2025-07-01 10:25:23,385 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:25:23,386 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:25:23,386 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:25:23,386 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:25:23,386 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:25:23,386 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:24:49', tmtdew=9.85, humidity=50.18, cloud=0.0, wind=42.2, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:24:55.382', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:25:23,387 [DEBUG][       Thread-601640][   transport.py][1871] : EOF in transport thread
2025-07-01 10:25:23,471 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:25:23,485 [DEBUG][       Thread-601644][   transport.py][1871] : starting thread (client mode): 0x81574f0
2025-07-01 10:25:23,485 [DEBUG][       Thread-601644][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:25:23,501 [DEBUG][       Thread-601644][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:25:23,502 [ INFO][       Thread-601644][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:25:23,511 [DEBUG][       Thread-601644][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:25:23,512 [DEBUG][       Thread-601644][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:25:23,512 [DEBUG][       Thread-601644][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:25:23,512 [DEBUG][       Thread-601644][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:25:23,512 [DEBUG][       Thread-601644][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:25:23,512 [DEBUG][       Thread-601644][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:25:23,512 [DEBUG][       Thread-601644][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:25:23,512 [DEBUG][       Thread-601644][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:25:23,512 [DEBUG][       Thread-601644][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:25:23,512 [DEBUG][       Thread-601644][   transport.py][1871] : client lang: <none>
2025-07-01 10:25:23,512 [DEBUG][       Thread-601644][   transport.py][1871] : server lang: <none>
2025-07-01 10:25:23,512 [DEBUG][       Thread-601644][   transport.py][1871] : kex follows: False
2025-07-01 10:25:23,512 [DEBUG][       Thread-601644][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:25:23,512 [DEBUG][       Thread-601644][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:25:23,512 [DEBUG][       Thread-601644][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:25:23,512 [DEBUG][       Thread-601644][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:25:23,512 [DEBUG][       Thread-601644][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:25:23,513 [DEBUG][       Thread-601644][   transport.py][1871] : Compression: none
2025-07-01 10:25:23,513 [DEBUG][       Thread-601644][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:25:23,573 [DEBUG][       Thread-601644][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:25:23,574 [DEBUG][       Thread-601644][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:25:23,574 [DEBUG][       Thread-601644][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:25:23,575 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:25:23,575 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:25:23,630 [DEBUG][       Thread-601644][   transport.py][1871] : userauth is OK
2025-07-01 10:25:23,631 [DEBUG][       Thread-601644][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:25:23,631 [DEBUG][       Thread-601644][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:25:23,631 [DEBUG][       Thread-601644][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:25:23,631 [DEBUG][       Thread-601644][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:25:23,650 [ INFO][       Thread-601644][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:25:23,651 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:25:23,651 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:25:24,681 [DEBUG][       Thread-601644][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:25:24,682 [DEBUG][       Thread-601644][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:25:24,739 [DEBUG][       Thread-601644][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:25:24,739 [DEBUG][       Thread-601644][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:25:24,756 [DEBUG][       Thread-601644][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:25:24,774 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:25:24,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-07-01 10:25:24,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-07-01 10:25:24,809 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:25:24,810 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:25:24,810 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:25:24,825 [DEBUG][       Thread-601644][   transport.py][1871] : EOF in transport thread
2025-07-01 10:25:25,797 [DEBUG][Thread-601646 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:25:34,820 [DEBUG][Thread-601647 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:25:34,820 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:25:34,821 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:25:34,821 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:25:34,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-07-01 10:25:35,304 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 25, 21), 9.72, 50.73, 0.0, 34.67, 9.45, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:25:35,304 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:25:21
2025-07-01 10:25:35,390 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:25:35,394 [DEBUG][       Thread-601648][   transport.py][1871] : starting thread (client mode): 0x82b2bc0
2025-07-01 10:25:35,394 [DEBUG][       Thread-601648][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:25:35,414 [DEBUG][       Thread-601648][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:25:35,414 [ INFO][       Thread-601648][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:25:35,417 [DEBUG][       Thread-601648][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:25:35,417 [DEBUG][       Thread-601648][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:25:35,417 [DEBUG][       Thread-601648][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:25:35,417 [DEBUG][       Thread-601648][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:25:35,417 [DEBUG][       Thread-601648][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:25:35,417 [DEBUG][       Thread-601648][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:25:35,417 [DEBUG][       Thread-601648][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:25:35,417 [DEBUG][       Thread-601648][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:25:35,417 [DEBUG][       Thread-601648][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:25:35,417 [DEBUG][       Thread-601648][   transport.py][1871] : client lang: <none>
2025-07-01 10:25:35,417 [DEBUG][       Thread-601648][   transport.py][1871] : server lang: <none>
2025-07-01 10:25:35,417 [DEBUG][       Thread-601648][   transport.py][1871] : kex follows: False
2025-07-01 10:25:35,417 [DEBUG][       Thread-601648][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:25:35,417 [DEBUG][       Thread-601648][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:25:35,417 [DEBUG][       Thread-601648][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:25:35,417 [DEBUG][       Thread-601648][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:25:35,417 [DEBUG][       Thread-601648][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:25:35,417 [DEBUG][       Thread-601648][   transport.py][1871] : Compression: none
2025-07-01 10:25:35,417 [DEBUG][       Thread-601648][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:25:35,426 [DEBUG][       Thread-601648][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:25:35,426 [DEBUG][       Thread-601648][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:25:35,426 [DEBUG][       Thread-601648][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:25:35,427 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:25:35,427 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:25:35,428 [DEBUG][       Thread-601648][   transport.py][1871] : userauth is OK
2025-07-01 10:25:35,441 [ INFO][       Thread-601648][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:25:35,441 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:25:36,033 [DEBUG][       Thread-601648][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:25:36,033 [DEBUG][       Thread-601648][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:25:36,076 [DEBUG][       Thread-601648][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:25:36,077 [DEBUG][       Thread-601648][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:25:36,079 [DEBUG][       Thread-601648][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:25:36,090 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:25:36,090 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:25:36,091 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:25:36,092 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:25:36,096 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:25:36,097 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:25:36,097 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:25:36,097 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:25:36,097 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.350641 -999.00   +9.10  30.28     56   +0.80 1 1 2 1 1   887    0 8.30 -7.93 ----- 30.3 30.3 31.8 52.0 11.5 -24.3 10.9 -24.4 10.5 -23.6 10.9 -23.1
2025-07-01 10:25:36,097 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:25:36,097 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:25:36,097 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.350641
2025-07-01 10:25:36,098 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:25:36,098 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:25:36,098 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:25:36,098 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:25:36,098 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:25:36,098 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:25:21', tmtdew=9.72, humidity=50.73, cloud=0.0, wind=34.67, temperature=9.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:24:55.382', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:25:36,099 [DEBUG][       Thread-601648][   transport.py][1871] : EOF in transport thread
2025-07-01 10:25:36,170 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:25:36,180 [DEBUG][       Thread-601651][   transport.py][1871] : starting thread (client mode): 0x8172bc0
2025-07-01 10:25:36,180 [DEBUG][       Thread-601651][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:25:36,194 [DEBUG][       Thread-601651][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:25:36,194 [ INFO][       Thread-601651][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:25:36,202 [DEBUG][       Thread-601651][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:25:36,202 [DEBUG][       Thread-601651][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:25:36,202 [DEBUG][       Thread-601651][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:25:36,202 [DEBUG][       Thread-601651][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:25:36,202 [DEBUG][       Thread-601651][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:25:36,202 [DEBUG][       Thread-601651][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:25:36,202 [DEBUG][       Thread-601651][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:25:36,202 [DEBUG][       Thread-601651][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:25:36,202 [DEBUG][       Thread-601651][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:25:36,202 [DEBUG][       Thread-601651][   transport.py][1871] : client lang: <none>
2025-07-01 10:25:36,202 [DEBUG][       Thread-601651][   transport.py][1871] : server lang: <none>
2025-07-01 10:25:36,202 [DEBUG][       Thread-601651][   transport.py][1871] : kex follows: False
2025-07-01 10:25:36,202 [DEBUG][       Thread-601651][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:25:36,202 [DEBUG][       Thread-601651][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:25:36,202 [DEBUG][       Thread-601651][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:25:36,202 [DEBUG][       Thread-601651][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:25:36,202 [DEBUG][       Thread-601651][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:25:36,202 [DEBUG][       Thread-601651][   transport.py][1871] : Compression: none
2025-07-01 10:25:36,202 [DEBUG][       Thread-601651][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:25:36,261 [DEBUG][       Thread-601651][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:25:36,261 [DEBUG][       Thread-601651][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:25:36,262 [DEBUG][       Thread-601651][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:25:36,262 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:25:36,262 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:25:36,317 [DEBUG][       Thread-601651][   transport.py][1871] : userauth is OK
2025-07-01 10:25:36,317 [DEBUG][       Thread-601651][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:25:36,317 [DEBUG][       Thread-601651][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:25:36,317 [DEBUG][       Thread-601651][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:25:36,317 [DEBUG][       Thread-601651][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:25:36,336 [ INFO][       Thread-601651][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:25:36,336 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:25:36,336 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:25:37,365 [DEBUG][       Thread-601651][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:25:37,365 [DEBUG][       Thread-601651][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:25:37,415 [DEBUG][       Thread-601651][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:25:37,415 [DEBUG][       Thread-601651][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:25:37,424 [DEBUG][       Thread-601651][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:25:37,431 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:25:37,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-07-01 10:25:37,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-07-01 10:25:37,448 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:25:37,448 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:25:37,448 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:25:37,455 [DEBUG][       Thread-601651][   transport.py][1871] : EOF in transport thread
2025-07-01 10:25:43,840 [DEBUG][Thread-601653 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:25:47,452 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:25:47,452 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:25:47,452 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:25:47,455 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:25:47,943 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 25, 21), 9.72, 50.73, 0.0, 34.67, 9.45, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:25:47,943 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:25:21
2025-07-01 10:25:48,029 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:25:48,033 [DEBUG][       Thread-601654][   transport.py][1871] : starting thread (client mode): 0x82b1f00
2025-07-01 10:25:48,033 [DEBUG][       Thread-601654][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:25:48,045 [DEBUG][       Thread-601654][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:25:48,045 [ INFO][       Thread-601654][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:25:48,047 [DEBUG][       Thread-601654][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:25:48,047 [DEBUG][       Thread-601654][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:25:48,047 [DEBUG][       Thread-601654][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:25:48,047 [DEBUG][       Thread-601654][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:25:48,047 [DEBUG][       Thread-601654][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:25:48,047 [DEBUG][       Thread-601654][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:25:48,047 [DEBUG][       Thread-601654][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:25:48,047 [DEBUG][       Thread-601654][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:25:48,047 [DEBUG][       Thread-601654][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:25:48,047 [DEBUG][       Thread-601654][   transport.py][1871] : client lang: <none>
2025-07-01 10:25:48,047 [DEBUG][       Thread-601654][   transport.py][1871] : server lang: <none>
2025-07-01 10:25:48,047 [DEBUG][       Thread-601654][   transport.py][1871] : kex follows: False
2025-07-01 10:25:48,047 [DEBUG][       Thread-601654][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:25:48,047 [DEBUG][       Thread-601654][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:25:48,047 [DEBUG][       Thread-601654][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:25:48,047 [DEBUG][       Thread-601654][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:25:48,047 [DEBUG][       Thread-601654][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:25:48,047 [DEBUG][       Thread-601654][   transport.py][1871] : Compression: none
2025-07-01 10:25:48,047 [DEBUG][       Thread-601654][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:25:48,057 [DEBUG][       Thread-601654][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:25:48,057 [DEBUG][       Thread-601654][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:25:48,057 [DEBUG][       Thread-601654][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:25:48,057 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:25:48,058 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:25:48,058 [DEBUG][       Thread-601654][   transport.py][1871] : userauth is OK
2025-07-01 10:25:48,071 [ INFO][       Thread-601654][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:25:48,072 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:25:48,637 [DEBUG][       Thread-601654][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:25:48,637 [DEBUG][       Thread-601654][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:25:48,681 [DEBUG][       Thread-601654][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:25:48,681 [DEBUG][       Thread-601654][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:25:48,684 [DEBUG][       Thread-601654][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:25:48,699 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:25:48,699 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:25:48,700 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:25:48,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:25:48,707 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:25:48,709 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:25:48,710 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:25:48,710 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:25:48,710 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.350988 -999.00   +9.10  35.73     56   +0.80 1 1 2 1 1   887    0 8.24 -10.57 ----- 35.7 35.7 19.7 49.7 11.4 -24.1 10.8 -24.3 10.4 -23.2 10.9 -24.0
2025-07-01 10:25:48,711 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:25:48,711 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:25:48,711 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.350988
2025-07-01 10:25:48,711 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:25:48,712 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:25:48,712 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:25:48,712 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:25:48,712 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:25:48,712 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:25:21', tmtdew=9.72, humidity=50.73, cloud=0.0, wind=34.67, temperature=9.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:25:25.363', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:25:48,713 [DEBUG][       Thread-601654][   transport.py][1871] : EOF in transport thread
2025-07-01 10:25:48,799 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:25:48,809 [DEBUG][       Thread-601657][   transport.py][1871] : starting thread (client mode): 0x8156320
2025-07-01 10:25:48,809 [DEBUG][       Thread-601657][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:25:48,824 [DEBUG][       Thread-601657][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:25:48,825 [ INFO][       Thread-601657][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:25:48,832 [DEBUG][       Thread-601657][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:25:48,832 [DEBUG][       Thread-601657][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:25:48,832 [DEBUG][       Thread-601657][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:25:48,832 [DEBUG][       Thread-601657][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:25:48,832 [DEBUG][       Thread-601657][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:25:48,833 [DEBUG][       Thread-601657][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:25:48,833 [DEBUG][       Thread-601657][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:25:48,833 [DEBUG][       Thread-601657][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:25:48,833 [DEBUG][       Thread-601657][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:25:48,833 [DEBUG][       Thread-601657][   transport.py][1871] : client lang: <none>
2025-07-01 10:25:48,833 [DEBUG][       Thread-601657][   transport.py][1871] : server lang: <none>
2025-07-01 10:25:48,833 [DEBUG][       Thread-601657][   transport.py][1871] : kex follows: False
2025-07-01 10:25:48,833 [DEBUG][       Thread-601657][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:25:48,833 [DEBUG][       Thread-601657][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:25:48,833 [DEBUG][       Thread-601657][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:25:48,833 [DEBUG][       Thread-601657][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:25:48,833 [DEBUG][       Thread-601657][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:25:48,833 [DEBUG][       Thread-601657][   transport.py][1871] : Compression: none
2025-07-01 10:25:48,833 [DEBUG][       Thread-601657][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:25:48,889 [DEBUG][       Thread-601657][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:25:48,890 [DEBUG][       Thread-601657][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:25:48,890 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:25:48,891 [DEBUG][       Thread-601657][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:25:48,891 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:25:48,945 [DEBUG][       Thread-601657][   transport.py][1871] : userauth is OK
2025-07-01 10:25:48,946 [DEBUG][       Thread-601657][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:25:48,946 [DEBUG][       Thread-601657][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:25:48,946 [DEBUG][       Thread-601657][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:25:48,946 [DEBUG][       Thread-601657][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:25:48,969 [ INFO][       Thread-601657][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:25:48,969 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:25:48,970 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:25:50,034 [DEBUG][       Thread-601657][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:25:50,034 [DEBUG][       Thread-601657][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:25:50,084 [DEBUG][       Thread-601657][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:25:50,084 [DEBUG][       Thread-601657][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:25:50,094 [DEBUG][       Thread-601657][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:25:50,106 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:25:50,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-07-01 10:25:50,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-07-01 10:25:50,127 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:25:50,128 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:25:50,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:25:50,136 [DEBUG][       Thread-601657][   transport.py][1871] : EOF in transport thread
2025-07-01 10:25:52,875 [DEBUG][Thread-601659 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:25:59,125 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:25:59,127 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:26:00,136 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:26:00,136 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:26:00,136 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:26:00,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-07-01 10:26:00,625 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 25, 52), 9.71, 50.75, 0.0, 34.65, 9.39, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:26:00,625 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:25:52
2025-07-01 10:26:00,710 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:26:00,716 [DEBUG][       Thread-601660][   transport.py][1871] : starting thread (client mode): 0x82b2dd0
2025-07-01 10:26:00,716 [DEBUG][       Thread-601660][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:26:00,736 [DEBUG][       Thread-601660][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:26:00,737 [ INFO][       Thread-601660][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:26:00,740 [DEBUG][       Thread-601660][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:26:00,740 [DEBUG][       Thread-601660][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:26:00,740 [DEBUG][       Thread-601660][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:26:00,740 [DEBUG][       Thread-601660][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:26:00,740 [DEBUG][       Thread-601660][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:26:00,740 [DEBUG][       Thread-601660][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:26:00,740 [DEBUG][       Thread-601660][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:26:00,740 [DEBUG][       Thread-601660][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:26:00,740 [DEBUG][       Thread-601660][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:26:00,740 [DEBUG][       Thread-601660][   transport.py][1871] : client lang: <none>
2025-07-01 10:26:00,740 [DEBUG][       Thread-601660][   transport.py][1871] : server lang: <none>
2025-07-01 10:26:00,740 [DEBUG][       Thread-601660][   transport.py][1871] : kex follows: False
2025-07-01 10:26:00,740 [DEBUG][       Thread-601660][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:26:00,740 [DEBUG][       Thread-601660][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:26:00,740 [DEBUG][       Thread-601660][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:26:00,740 [DEBUG][       Thread-601660][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:26:00,741 [DEBUG][       Thread-601660][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:26:00,741 [DEBUG][       Thread-601660][   transport.py][1871] : Compression: none
2025-07-01 10:26:00,741 [DEBUG][       Thread-601660][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:26:00,756 [DEBUG][       Thread-601660][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:26:00,757 [DEBUG][       Thread-601660][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:26:00,757 [DEBUG][       Thread-601660][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:26:00,757 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:26:00,758 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:26:00,759 [DEBUG][       Thread-601660][   transport.py][1871] : userauth is OK
2025-07-01 10:26:00,783 [ INFO][       Thread-601660][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:26:00,783 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:26:01,537 [DEBUG][       Thread-601660][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:26:01,538 [DEBUG][       Thread-601660][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:26:01,581 [DEBUG][       Thread-601660][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:26:01,581 [DEBUG][       Thread-601660][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:26:01,583 [DEBUG][       Thread-601660][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:26:01,595 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:26:01,596 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:26:01,597 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:26:01,599 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:26:01,605 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:26:01,607 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:26:01,607 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:26:01,608 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:26:01,608 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.350988 -999.00   +9.10  35.73     56   +0.80 1 1 2 1 1   887    0 8.24 -10.57 ----- 35.7 35.7 19.7 49.7 11.4 -24.1 10.8 -24.3 10.4 -23.2 10.9 -24.0
2025-07-01 10:26:01,608 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:26:01,608 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:26:01,608 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.350988
2025-07-01 10:26:01,609 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:26:01,609 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:26:01,609 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:26:01,609 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:26:01,609 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:26:01,610 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:25:52', tmtdew=9.71, humidity=50.75, cloud=0.0, wind=34.65, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:25:25.363', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:26:01,610 [DEBUG][       Thread-601660][   transport.py][1871] : EOF in transport thread
2025-07-01 10:26:01,693 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:26:01,702 [DEBUG][       Thread-601663][   transport.py][1871] : starting thread (client mode): 0x8106ef0
2025-07-01 10:26:01,702 [DEBUG][       Thread-601663][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:26:01,717 [DEBUG][       Thread-601663][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:26:01,718 [ INFO][       Thread-601663][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:26:01,725 [DEBUG][       Thread-601663][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:26:01,725 [DEBUG][       Thread-601663][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:26:01,725 [DEBUG][       Thread-601663][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:26:01,725 [DEBUG][       Thread-601663][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:26:01,725 [DEBUG][       Thread-601663][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:26:01,726 [DEBUG][       Thread-601663][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:26:01,726 [DEBUG][       Thread-601663][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:26:01,726 [DEBUG][       Thread-601663][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:26:01,726 [DEBUG][       Thread-601663][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:26:01,726 [DEBUG][       Thread-601663][   transport.py][1871] : client lang: <none>
2025-07-01 10:26:01,726 [DEBUG][       Thread-601663][   transport.py][1871] : server lang: <none>
2025-07-01 10:26:01,726 [DEBUG][       Thread-601663][   transport.py][1871] : kex follows: False
2025-07-01 10:26:01,726 [DEBUG][       Thread-601663][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:26:01,726 [DEBUG][       Thread-601663][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:26:01,726 [DEBUG][       Thread-601663][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:26:01,726 [DEBUG][       Thread-601663][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:26:01,726 [DEBUG][       Thread-601663][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:26:01,726 [DEBUG][       Thread-601663][   transport.py][1871] : Compression: none
2025-07-01 10:26:01,726 [DEBUG][       Thread-601663][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:26:01,784 [DEBUG][       Thread-601663][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:26:01,784 [DEBUG][       Thread-601663][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:26:01,784 [DEBUG][       Thread-601663][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:26:01,784 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:26:01,784 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:26:01,848 [DEBUG][       Thread-601663][   transport.py][1871] : userauth is OK
2025-07-01 10:26:01,848 [DEBUG][       Thread-601663][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:26:01,848 [DEBUG][       Thread-601663][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:26:01,848 [DEBUG][       Thread-601663][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:26:01,848 [DEBUG][       Thread-601663][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:26:01,863 [ INFO][       Thread-601663][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:26:01,863 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:26:01,863 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:26:01,895 [DEBUG][Thread-601665 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:26:02,902 [DEBUG][       Thread-601663][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:26:02,902 [DEBUG][       Thread-601663][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:26:02,954 [DEBUG][       Thread-601663][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:26:02,955 [DEBUG][       Thread-601663][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:26:02,964 [DEBUG][       Thread-601663][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:26:02,972 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:26:02,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')
2025-07-01 10:26:02,981 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 10:26:02,991 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:26:02,991 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:26:02,991 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:26:03,000 [DEBUG][       Thread-601663][   transport.py][1871] : EOF in transport thread
2025-07-01 10:26:10,929 [DEBUG][Thread-601666 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:26:13,002 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:26:13,002 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:26:13,002 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:26:13,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-07-01 10:26:13,490 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 25, 52), 9.71, 50.75, 0.0, 34.65, 9.39, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:26:13,490 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:25:52
2025-07-01 10:26:13,575 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:26:13,579 [DEBUG][       Thread-601667][   transport.py][1871] : starting thread (client mode): 0x75aa0e0
2025-07-01 10:26:13,579 [DEBUG][       Thread-601667][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:26:13,600 [DEBUG][       Thread-601667][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:26:13,600 [ INFO][       Thread-601667][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:26:13,604 [DEBUG][       Thread-601667][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:26:13,604 [DEBUG][       Thread-601667][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:26:13,604 [DEBUG][       Thread-601667][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:26:13,604 [DEBUG][       Thread-601667][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:26:13,604 [DEBUG][       Thread-601667][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:26:13,604 [DEBUG][       Thread-601667][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:26:13,604 [DEBUG][       Thread-601667][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:26:13,604 [DEBUG][       Thread-601667][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:26:13,604 [DEBUG][       Thread-601667][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:26:13,604 [DEBUG][       Thread-601667][   transport.py][1871] : client lang: <none>
2025-07-01 10:26:13,604 [DEBUG][       Thread-601667][   transport.py][1871] : server lang: <none>
2025-07-01 10:26:13,604 [DEBUG][       Thread-601667][   transport.py][1871] : kex follows: False
2025-07-01 10:26:13,604 [DEBUG][       Thread-601667][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:26:13,604 [DEBUG][       Thread-601667][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:26:13,604 [DEBUG][       Thread-601667][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:26:13,604 [DEBUG][       Thread-601667][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:26:13,604 [DEBUG][       Thread-601667][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:26:13,604 [DEBUG][       Thread-601667][   transport.py][1871] : Compression: none
2025-07-01 10:26:13,604 [DEBUG][       Thread-601667][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:26:13,621 [DEBUG][       Thread-601667][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:26:13,621 [DEBUG][       Thread-601667][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:26:13,622 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:26:13,622 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:26:13,622 [DEBUG][       Thread-601667][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:26:13,623 [DEBUG][       Thread-601667][   transport.py][1871] : userauth is OK
2025-07-01 10:26:13,636 [ INFO][       Thread-601667][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:26:13,636 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:26:14,405 [DEBUG][       Thread-601667][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:26:14,405 [DEBUG][       Thread-601667][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:26:14,448 [DEBUG][       Thread-601667][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:26:14,448 [DEBUG][       Thread-601667][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:26:14,451 [DEBUG][       Thread-601667][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:26:14,465 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:26:14,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:26:14,467 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:26:14,467 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:26:14,470 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:26:14,471 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:26:14,471 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:26:14,471 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:26:14,471 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.350988 -999.00   +9.10  35.73     56   +0.80 1 1 2 1 1   887    0 8.24 -10.57 ----- 35.7 35.7 19.7 49.7 11.4 -24.1 10.8 -24.3 10.4 -23.2 10.9 -24.0
2025-07-01 10:26:14,471 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:26:14,471 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:26:14,471 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.350988
2025-07-01 10:26:14,471 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:26:14,472 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:26:14,472 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:26:14,472 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:26:14,472 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:26:14,472 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:25:52', tmtdew=9.71, humidity=50.75, cloud=0.0, wind=34.65, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:25:25.363', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:26:14,472 [DEBUG][       Thread-601667][   transport.py][1871] : EOF in transport thread
2025-07-01 10:26:14,543 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:26:14,555 [DEBUG][       Thread-601670][   transport.py][1871] : starting thread (client mode): 0x8393f40
2025-07-01 10:26:14,555 [DEBUG][       Thread-601670][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:26:14,570 [DEBUG][       Thread-601670][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:26:14,570 [ INFO][       Thread-601670][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:26:14,577 [DEBUG][       Thread-601670][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:26:14,577 [DEBUG][       Thread-601670][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:26:14,577 [DEBUG][       Thread-601670][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:26:14,577 [DEBUG][       Thread-601670][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:26:14,577 [DEBUG][       Thread-601670][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:26:14,577 [DEBUG][       Thread-601670][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:26:14,577 [DEBUG][       Thread-601670][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:26:14,577 [DEBUG][       Thread-601670][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:26:14,577 [DEBUG][       Thread-601670][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:26:14,577 [DEBUG][       Thread-601670][   transport.py][1871] : client lang: <none>
2025-07-01 10:26:14,577 [DEBUG][       Thread-601670][   transport.py][1871] : server lang: <none>
2025-07-01 10:26:14,577 [DEBUG][       Thread-601670][   transport.py][1871] : kex follows: False
2025-07-01 10:26:14,577 [DEBUG][       Thread-601670][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:26:14,577 [DEBUG][       Thread-601670][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:26:14,577 [DEBUG][       Thread-601670][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:26:14,577 [DEBUG][       Thread-601670][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:26:14,577 [DEBUG][       Thread-601670][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:26:14,577 [DEBUG][       Thread-601670][   transport.py][1871] : Compression: none
2025-07-01 10:26:14,577 [DEBUG][       Thread-601670][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:26:14,640 [DEBUG][       Thread-601670][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:26:14,640 [DEBUG][       Thread-601670][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:26:14,640 [DEBUG][       Thread-601670][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:26:14,640 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:26:14,640 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:26:14,698 [DEBUG][       Thread-601670][   transport.py][1871] : userauth is OK
2025-07-01 10:26:14,698 [DEBUG][       Thread-601670][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:26:14,698 [DEBUG][       Thread-601670][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:26:14,698 [DEBUG][       Thread-601670][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:26:14,698 [DEBUG][       Thread-601670][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:26:14,712 [ INFO][       Thread-601670][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:26:14,712 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:26:14,712 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:26:15,750 [DEBUG][       Thread-601670][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:26:15,750 [DEBUG][       Thread-601670][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:26:15,799 [DEBUG][       Thread-601670][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:26:15,799 [DEBUG][       Thread-601670][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:26:15,807 [DEBUG][       Thread-601670][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:26:15,816 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:26:15,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-07-01 10:26:15,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-07-01 10:26:15,832 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:26:15,832 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:26:15,832 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:26:15,840 [DEBUG][       Thread-601670][   transport.py][1871] : EOF in transport thread
2025-07-01 10:26:19,949 [DEBUG][Thread-601672 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:26:23,031 [DEBUG][Thread-601673 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:26:25,840 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:26:25,840 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:26:25,840 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:26:25,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-07-01 10:26:26,349 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 25, 52), 9.71, 50.75, 0.0, 34.65, 9.39, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:26:26,349 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:25:52
2025-07-01 10:26:26,440 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:26:26,447 [DEBUG][       Thread-601674][   transport.py][1871] : starting thread (client mode): 0x8172980
2025-07-01 10:26:26,447 [DEBUG][       Thread-601674][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:26:26,468 [DEBUG][       Thread-601674][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:26:26,468 [ INFO][       Thread-601674][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:26:26,471 [DEBUG][       Thread-601674][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:26:26,471 [DEBUG][       Thread-601674][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:26:26,471 [DEBUG][       Thread-601674][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:26:26,471 [DEBUG][       Thread-601674][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:26:26,471 [DEBUG][       Thread-601674][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:26:26,471 [DEBUG][       Thread-601674][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:26:26,471 [DEBUG][       Thread-601674][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:26:26,471 [DEBUG][       Thread-601674][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:26:26,471 [DEBUG][       Thread-601674][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:26:26,471 [DEBUG][       Thread-601674][   transport.py][1871] : client lang: <none>
2025-07-01 10:26:26,471 [DEBUG][       Thread-601674][   transport.py][1871] : server lang: <none>
2025-07-01 10:26:26,471 [DEBUG][       Thread-601674][   transport.py][1871] : kex follows: False
2025-07-01 10:26:26,471 [DEBUG][       Thread-601674][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:26:26,471 [DEBUG][       Thread-601674][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:26:26,471 [DEBUG][       Thread-601674][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:26:26,471 [DEBUG][       Thread-601674][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:26:26,471 [DEBUG][       Thread-601674][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:26:26,471 [DEBUG][       Thread-601674][   transport.py][1871] : Compression: none
2025-07-01 10:26:26,471 [DEBUG][       Thread-601674][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:26:26,487 [DEBUG][       Thread-601674][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:26:26,487 [DEBUG][       Thread-601674][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:26:26,487 [DEBUG][       Thread-601674][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:26:26,487 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:26:26,487 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:26:26,488 [DEBUG][       Thread-601674][   transport.py][1871] : userauth is OK
2025-07-01 10:26:26,500 [ INFO][       Thread-601674][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:26:26,500 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:26:27,134 [DEBUG][       Thread-601674][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:26:27,135 [DEBUG][       Thread-601674][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:26:27,177 [DEBUG][       Thread-601674][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:26:27,177 [DEBUG][       Thread-601674][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:26:27,180 [DEBUG][       Thread-601674][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:26:27,192 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:26:27,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:26:27,197 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:26:27,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:26:27,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:26:27,205 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:26:27,205 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:26:27,206 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:26:27,206 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.351335 -999.00   +9.10  38.38     56   +0.80 1 1 2 1 1   887    0 8.42 -12.20 ----- 38.4 38.4 354.5 50.9 11.3 -23.9 10.8 -24.1 10.4 -23.5 10.8 -23.2
2025-07-01 10:26:27,206 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:26:27,206 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:26:27,206 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.351335
2025-07-01 10:26:27,207 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:26:27,208 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:26:27,208 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:26:27,208 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:26:27,208 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:26:27,208 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:25:52', tmtdew=9.71, humidity=50.75, cloud=0.0, wind=34.65, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:25:55.344', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:26:27,209 [DEBUG][       Thread-601674][   transport.py][1871] : EOF in transport thread
2025-07-01 10:26:27,294 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:26:27,305 [DEBUG][       Thread-601677][   transport.py][1871] : starting thread (client mode): 0x81a4c40
2025-07-01 10:26:27,305 [DEBUG][       Thread-601677][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:26:27,321 [DEBUG][       Thread-601677][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:26:27,321 [ INFO][       Thread-601677][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:26:27,330 [DEBUG][       Thread-601677][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:26:27,331 [DEBUG][       Thread-601677][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:26:27,331 [DEBUG][       Thread-601677][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:26:27,331 [DEBUG][       Thread-601677][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:26:27,331 [DEBUG][       Thread-601677][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:26:27,331 [DEBUG][       Thread-601677][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:26:27,331 [DEBUG][       Thread-601677][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:26:27,331 [DEBUG][       Thread-601677][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:26:27,331 [DEBUG][       Thread-601677][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:26:27,331 [DEBUG][       Thread-601677][   transport.py][1871] : client lang: <none>
2025-07-01 10:26:27,331 [DEBUG][       Thread-601677][   transport.py][1871] : server lang: <none>
2025-07-01 10:26:27,331 [DEBUG][       Thread-601677][   transport.py][1871] : kex follows: False
2025-07-01 10:26:27,331 [DEBUG][       Thread-601677][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:26:27,331 [DEBUG][       Thread-601677][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:26:27,331 [DEBUG][       Thread-601677][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:26:27,331 [DEBUG][       Thread-601677][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:26:27,331 [DEBUG][       Thread-601677][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:26:27,332 [DEBUG][       Thread-601677][   transport.py][1871] : Compression: none
2025-07-01 10:26:27,332 [DEBUG][       Thread-601677][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:26:27,395 [DEBUG][       Thread-601677][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:26:27,396 [DEBUG][       Thread-601677][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:26:27,396 [DEBUG][       Thread-601677][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:26:27,397 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:26:27,397 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:26:27,453 [DEBUG][       Thread-601677][   transport.py][1871] : userauth is OK
2025-07-01 10:26:27,454 [DEBUG][       Thread-601677][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:26:27,454 [DEBUG][       Thread-601677][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:26:27,454 [DEBUG][       Thread-601677][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:26:27,454 [DEBUG][       Thread-601677][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:26:27,475 [ INFO][       Thread-601677][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:26:27,475 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:26:27,476 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:26:28,532 [DEBUG][       Thread-601677][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:26:28,532 [DEBUG][       Thread-601677][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:26:28,582 [DEBUG][       Thread-601677][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:26:28,582 [DEBUG][       Thread-601677][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:26:28,596 [DEBUG][       Thread-601677][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:26:28,605 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:26:28,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-07-01 10:26:28,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') -> 00000000
2025-07-01 10:26:28,625 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:26:28,626 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:26:28,626 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:26:28,634 [DEBUG][       Thread-601677][   transport.py][1871] : EOF in transport thread
2025-07-01 10:26:28,972 [DEBUG][Thread-601679 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:26:37,994 [DEBUG][Thread-601680 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:26:38,637 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:26:38,637 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:26:38,637 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:26:38,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-07-01 10:26:39,122 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 26, 24), 9.65, 50.83, 0.0, 26.27, 9.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:26:39,122 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:26:24
2025-07-01 10:26:39,208 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:26:39,212 [DEBUG][       Thread-601681][   transport.py][1871] : starting thread (client mode): 0x75a86a0
2025-07-01 10:26:39,212 [DEBUG][       Thread-601681][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:26:39,232 [DEBUG][       Thread-601681][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:26:39,232 [ INFO][       Thread-601681][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:26:39,236 [DEBUG][       Thread-601681][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:26:39,236 [DEBUG][       Thread-601681][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:26:39,236 [DEBUG][       Thread-601681][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:26:39,236 [DEBUG][       Thread-601681][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:26:39,236 [DEBUG][       Thread-601681][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:26:39,236 [DEBUG][       Thread-601681][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:26:39,236 [DEBUG][       Thread-601681][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:26:39,236 [DEBUG][       Thread-601681][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:26:39,236 [DEBUG][       Thread-601681][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:26:39,236 [DEBUG][       Thread-601681][   transport.py][1871] : client lang: <none>
2025-07-01 10:26:39,236 [DEBUG][       Thread-601681][   transport.py][1871] : server lang: <none>
2025-07-01 10:26:39,236 [DEBUG][       Thread-601681][   transport.py][1871] : kex follows: False
2025-07-01 10:26:39,236 [DEBUG][       Thread-601681][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:26:39,236 [DEBUG][       Thread-601681][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:26:39,236 [DEBUG][       Thread-601681][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:26:39,236 [DEBUG][       Thread-601681][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:26:39,236 [DEBUG][       Thread-601681][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:26:39,236 [DEBUG][       Thread-601681][   transport.py][1871] : Compression: none
2025-07-01 10:26:39,236 [DEBUG][       Thread-601681][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:26:39,251 [DEBUG][       Thread-601681][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:26:39,252 [DEBUG][       Thread-601681][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:26:39,252 [DEBUG][       Thread-601681][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:26:39,252 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:26:39,252 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:26:39,253 [DEBUG][       Thread-601681][   transport.py][1871] : userauth is OK
2025-07-01 10:26:39,278 [ INFO][       Thread-601681][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:26:39,278 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:26:40,056 [DEBUG][       Thread-601681][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:26:40,056 [DEBUG][       Thread-601681][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:26:40,097 [DEBUG][       Thread-601681][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:26:40,097 [DEBUG][       Thread-601681][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:26:40,101 [DEBUG][       Thread-601681][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:26:40,113 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:26:40,113 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:26:40,115 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:26:40,117 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:26:40,122 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:26:40,124 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:26:40,124 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:26:40,125 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:26:40,125 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.351335 -999.00   +9.10  38.38     56   +0.80 1 1 2 1 1   887    0 8.42 -12.20 ----- 38.4 38.4 354.5 50.9 11.3 -23.9 10.8 -24.1 10.4 -23.5 10.8 -23.2
2025-07-01 10:26:40,125 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:26:40,125 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:26:40,125 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.351335
2025-07-01 10:26:40,126 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:26:40,126 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:26:40,126 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:26:40,127 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:26:40,127 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:26:40,127 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:26:24', tmtdew=9.65, humidity=50.83, cloud=0.0, wind=26.27, temperature=9.32, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:25:55.344', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:26:40,128 [DEBUG][       Thread-601681][   transport.py][1871] : EOF in transport thread
2025-07-01 10:26:40,213 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:26:40,223 [DEBUG][       Thread-601684][   transport.py][1871] : starting thread (client mode): 0x8107e50
2025-07-01 10:26:40,223 [DEBUG][       Thread-601684][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:26:40,237 [DEBUG][       Thread-601684][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:26:40,237 [ INFO][       Thread-601684][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:26:40,245 [DEBUG][       Thread-601684][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:26:40,245 [DEBUG][       Thread-601684][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:26:40,245 [DEBUG][       Thread-601684][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:26:40,245 [DEBUG][       Thread-601684][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:26:40,245 [DEBUG][       Thread-601684][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:26:40,245 [DEBUG][       Thread-601684][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:26:40,245 [DEBUG][       Thread-601684][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:26:40,245 [DEBUG][       Thread-601684][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:26:40,245 [DEBUG][       Thread-601684][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:26:40,245 [DEBUG][       Thread-601684][   transport.py][1871] : client lang: <none>
2025-07-01 10:26:40,245 [DEBUG][       Thread-601684][   transport.py][1871] : server lang: <none>
2025-07-01 10:26:40,245 [DEBUG][       Thread-601684][   transport.py][1871] : kex follows: False
2025-07-01 10:26:40,245 [DEBUG][       Thread-601684][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:26:40,246 [DEBUG][       Thread-601684][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:26:40,246 [DEBUG][       Thread-601684][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:26:40,246 [DEBUG][       Thread-601684][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:26:40,246 [DEBUG][       Thread-601684][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:26:40,246 [DEBUG][       Thread-601684][   transport.py][1871] : Compression: none
2025-07-01 10:26:40,246 [DEBUG][       Thread-601684][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:26:40,307 [DEBUG][       Thread-601684][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:26:40,308 [DEBUG][       Thread-601684][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:26:40,308 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:26:40,309 [DEBUG][       Thread-601684][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:26:40,309 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:26:40,365 [DEBUG][       Thread-601684][   transport.py][1871] : userauth is OK
2025-07-01 10:26:40,366 [DEBUG][       Thread-601684][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:26:40,366 [DEBUG][       Thread-601684][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:26:40,366 [DEBUG][       Thread-601684][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:26:40,366 [DEBUG][       Thread-601684][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:26:40,385 [ INFO][       Thread-601684][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:26:40,385 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:26:40,386 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:26:41,386 [DEBUG][       Thread-601684][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:26:41,387 [DEBUG][       Thread-601684][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:26:41,435 [DEBUG][       Thread-601684][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:26:41,436 [DEBUG][       Thread-601684][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:26:41,445 [DEBUG][       Thread-601684][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:26:41,453 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:26:41,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-07-01 10:26:41,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-07-01 10:26:41,471 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:26:41,471 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:26:41,472 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:26:41,480 [DEBUG][       Thread-601684][   transport.py][1871] : EOF in transport thread
2025-07-01 10:26:47,016 [DEBUG][Thread-601686 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:26:51,480 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:26:51,480 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:26:51,480 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:26:51,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-07-01 10:26:51,963 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 26, 24), 9.65, 50.83, 0.0, 26.27, 9.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:26:51,963 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:26:24
2025-07-01 10:26:52,051 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:26:52,056 [DEBUG][       Thread-601687][   transport.py][1871] : starting thread (client mode): 0x75abc10
2025-07-01 10:26:52,056 [DEBUG][       Thread-601687][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:26:52,077 [DEBUG][       Thread-601687][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:26:52,077 [ INFO][       Thread-601687][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:26:52,080 [DEBUG][       Thread-601687][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:26:52,080 [DEBUG][       Thread-601687][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:26:52,080 [DEBUG][       Thread-601687][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:26:52,080 [DEBUG][       Thread-601687][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:26:52,080 [DEBUG][       Thread-601687][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:26:52,080 [DEBUG][       Thread-601687][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:26:52,080 [DEBUG][       Thread-601687][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:26:52,080 [DEBUG][       Thread-601687][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:26:52,080 [DEBUG][       Thread-601687][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:26:52,080 [DEBUG][       Thread-601687][   transport.py][1871] : client lang: <none>
2025-07-01 10:26:52,080 [DEBUG][       Thread-601687][   transport.py][1871] : server lang: <none>
2025-07-01 10:26:52,080 [DEBUG][       Thread-601687][   transport.py][1871] : kex follows: False
2025-07-01 10:26:52,080 [DEBUG][       Thread-601687][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:26:52,080 [DEBUG][       Thread-601687][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:26:52,080 [DEBUG][       Thread-601687][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:26:52,080 [DEBUG][       Thread-601687][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:26:52,080 [DEBUG][       Thread-601687][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:26:52,080 [DEBUG][       Thread-601687][   transport.py][1871] : Compression: none
2025-07-01 10:26:52,080 [DEBUG][       Thread-601687][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:26:52,095 [DEBUG][       Thread-601687][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:26:52,095 [DEBUG][       Thread-601687][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:26:52,096 [DEBUG][       Thread-601687][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:26:52,096 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:26:52,096 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:26:52,096 [DEBUG][       Thread-601687][   transport.py][1871] : userauth is OK
2025-07-01 10:26:52,120 [ INFO][       Thread-601687][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:26:52,120 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:26:52,940 [DEBUG][       Thread-601687][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:26:52,940 [DEBUG][       Thread-601687][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:26:52,984 [DEBUG][       Thread-601687][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:26:52,984 [DEBUG][       Thread-601687][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:26:52,985 [DEBUG][       Thread-601687][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:26:52,997 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:26:52,997 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:26:52,998 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:26:52,998 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:26:53,001 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:26:53,001 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:26:53,001 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:26:53,002 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:26:53,002 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.351335 -999.00   +9.10  38.38     56   +0.80 1 1 2 1 1   887    0 8.42 -12.20 ----- 38.4 38.4 354.5 50.9 11.3 -23.9 10.8 -24.1 10.4 -23.5 10.8 -23.2
2025-07-01 10:26:53,002 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:26:53,002 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:26:53,002 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.351335
2025-07-01 10:26:53,002 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:26:53,002 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:26:53,002 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:26:53,002 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:26:53,002 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:26:53,002 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:26:24', tmtdew=9.65, humidity=50.83, cloud=0.0, wind=26.27, temperature=9.32, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:25:55.344', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:26:53,002 [DEBUG][       Thread-601687][   transport.py][1871] : EOF in transport thread
2025-07-01 10:26:53,077 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:26:53,086 [DEBUG][       Thread-601690][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 10:26:53,086 [DEBUG][       Thread-601690][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:26:53,101 [DEBUG][       Thread-601690][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:26:53,101 [ INFO][       Thread-601690][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:26:53,109 [DEBUG][       Thread-601690][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:26:53,109 [DEBUG][       Thread-601690][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:26:53,109 [DEBUG][       Thread-601690][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:26:53,109 [DEBUG][       Thread-601690][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:26:53,109 [DEBUG][       Thread-601690][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:26:53,109 [DEBUG][       Thread-601690][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:26:53,109 [DEBUG][       Thread-601690][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:26:53,109 [DEBUG][       Thread-601690][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:26:53,109 [DEBUG][       Thread-601690][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:26:53,109 [DEBUG][       Thread-601690][   transport.py][1871] : client lang: <none>
2025-07-01 10:26:53,109 [DEBUG][       Thread-601690][   transport.py][1871] : server lang: <none>
2025-07-01 10:26:53,109 [DEBUG][       Thread-601690][   transport.py][1871] : kex follows: False
2025-07-01 10:26:53,109 [DEBUG][       Thread-601690][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:26:53,109 [DEBUG][       Thread-601690][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:26:53,109 [DEBUG][       Thread-601690][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:26:53,109 [DEBUG][       Thread-601690][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:26:53,109 [DEBUG][       Thread-601690][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:26:53,109 [DEBUG][       Thread-601690][   transport.py][1871] : Compression: none
2025-07-01 10:26:53,109 [DEBUG][       Thread-601690][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:26:53,164 [DEBUG][       Thread-601690][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:26:53,164 [DEBUG][       Thread-601690][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:26:53,164 [DEBUG][       Thread-601690][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:26:53,164 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:26:53,164 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:26:53,221 [DEBUG][       Thread-601690][   transport.py][1871] : userauth is OK
2025-07-01 10:26:53,221 [DEBUG][       Thread-601690][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:26:53,221 [DEBUG][       Thread-601690][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:26:53,221 [DEBUG][       Thread-601690][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:26:53,221 [DEBUG][       Thread-601690][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:26:53,235 [ INFO][       Thread-601690][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:26:53,235 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:26:53,236 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:26:54,272 [DEBUG][       Thread-601690][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:26:54,272 [DEBUG][       Thread-601690][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:26:54,320 [DEBUG][       Thread-601690][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:26:54,320 [DEBUG][       Thread-601690][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:26:54,328 [DEBUG][       Thread-601690][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:26:54,336 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:26:54,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-07-01 10:26:54,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-07-01 10:26:54,354 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:26:54,354 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:26:54,355 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:26:54,363 [DEBUG][       Thread-601690][   transport.py][1871] : EOF in transport thread
2025-07-01 10:26:56,047 [DEBUG][Thread-601692 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:26:59,264 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:26:59,265 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:27:04,363 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:27:04,364 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:27:04,364 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:27:04,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-07-01 10:27:04,849 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 26, 56), 9.66, 50.82, 0.0, 39.73, 9.37, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:27:04,849 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:26:56
2025-07-01 10:27:04,934 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:27:04,938 [DEBUG][       Thread-601693][   transport.py][1871] : starting thread (client mode): 0x75aa0e0
2025-07-01 10:27:04,938 [DEBUG][       Thread-601693][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:27:04,959 [DEBUG][       Thread-601693][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:27:04,959 [ INFO][       Thread-601693][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:27:04,963 [DEBUG][       Thread-601693][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:27:04,963 [DEBUG][       Thread-601693][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:27:04,963 [DEBUG][       Thread-601693][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:27:04,963 [DEBUG][       Thread-601693][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:27:04,963 [DEBUG][       Thread-601693][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:27:04,963 [DEBUG][       Thread-601693][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:27:04,963 [DEBUG][       Thread-601693][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:27:04,963 [DEBUG][       Thread-601693][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:27:04,963 [DEBUG][       Thread-601693][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:27:04,963 [DEBUG][       Thread-601693][   transport.py][1871] : client lang: <none>
2025-07-01 10:27:04,963 [DEBUG][       Thread-601693][   transport.py][1871] : server lang: <none>
2025-07-01 10:27:04,963 [DEBUG][       Thread-601693][   transport.py][1871] : kex follows: False
2025-07-01 10:27:04,963 [DEBUG][       Thread-601693][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:27:04,963 [DEBUG][       Thread-601693][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:27:04,963 [DEBUG][       Thread-601693][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:27:04,963 [DEBUG][       Thread-601693][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:27:04,963 [DEBUG][       Thread-601693][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:27:04,963 [DEBUG][       Thread-601693][   transport.py][1871] : Compression: none
2025-07-01 10:27:04,963 [DEBUG][       Thread-601693][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:27:04,979 [DEBUG][       Thread-601693][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:27:04,980 [DEBUG][       Thread-601693][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:27:04,980 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:27:04,980 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:27:04,981 [DEBUG][       Thread-601693][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:27:04,982 [DEBUG][       Thread-601693][   transport.py][1871] : userauth is OK
2025-07-01 10:27:04,994 [ INFO][       Thread-601693][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:27:04,995 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:27:05,067 [DEBUG][Thread-601695 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:27:05,664 [DEBUG][       Thread-601693][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:27:05,664 [DEBUG][       Thread-601693][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:27:05,705 [DEBUG][       Thread-601693][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:27:05,705 [DEBUG][       Thread-601693][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:27:05,709 [DEBUG][       Thread-601693][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:27:05,720 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:27:05,721 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:27:05,723 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:27:05,724 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:27:05,730 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:27:05,731 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:27:05,732 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:27:05,732 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:27:05,732 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.351682 -999.00   +9.10  38.07     56   +0.80 1 2 2 1 1   887    0 8.17 -13.64 ----- 38.1 38.1 19.2 55.3 11.4 -22.4 10.8 -23.4 10.4 -22.6 10.9 -23.4
2025-07-01 10:27:05,733 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:27:05,733 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:27:05,733 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.351682
2025-07-01 10:27:05,733 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:27:05,734 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:27:05,734 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:27:05,734 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:27:05,734 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:27:05,734 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:26:56', tmtdew=9.66, humidity=50.82, cloud=0.0, wind=39.73, temperature=9.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:26:25.325', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:27:05,735 [DEBUG][       Thread-601693][   transport.py][1871] : EOF in transport thread
2025-07-01 10:27:05,818 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:27:05,827 [DEBUG][       Thread-601697][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 10:27:05,827 [DEBUG][       Thread-601697][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:27:05,843 [DEBUG][       Thread-601697][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:27:05,843 [ INFO][       Thread-601697][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:27:05,851 [DEBUG][       Thread-601697][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:27:05,851 [DEBUG][       Thread-601697][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:27:05,851 [DEBUG][       Thread-601697][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:27:05,851 [DEBUG][       Thread-601697][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:27:05,851 [DEBUG][       Thread-601697][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:27:05,851 [DEBUG][       Thread-601697][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:27:05,851 [DEBUG][       Thread-601697][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:27:05,851 [DEBUG][       Thread-601697][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:27:05,851 [DEBUG][       Thread-601697][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:27:05,851 [DEBUG][       Thread-601697][   transport.py][1871] : client lang: <none>
2025-07-01 10:27:05,851 [DEBUG][       Thread-601697][   transport.py][1871] : server lang: <none>
2025-07-01 10:27:05,851 [DEBUG][       Thread-601697][   transport.py][1871] : kex follows: False
2025-07-01 10:27:05,851 [DEBUG][       Thread-601697][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:27:05,851 [DEBUG][       Thread-601697][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:27:05,851 [DEBUG][       Thread-601697][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:27:05,851 [DEBUG][       Thread-601697][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:27:05,851 [DEBUG][       Thread-601697][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:27:05,852 [DEBUG][       Thread-601697][   transport.py][1871] : Compression: none
2025-07-01 10:27:05,852 [DEBUG][       Thread-601697][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:27:05,910 [DEBUG][       Thread-601697][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:27:05,911 [DEBUG][       Thread-601697][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:27:05,911 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:27:05,912 [DEBUG][       Thread-601697][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:27:05,913 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:27:05,975 [DEBUG][       Thread-601697][   transport.py][1871] : userauth is OK
2025-07-01 10:27:05,975 [DEBUG][       Thread-601697][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:27:05,975 [DEBUG][       Thread-601697][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:27:05,975 [DEBUG][       Thread-601697][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:27:05,975 [DEBUG][       Thread-601697][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:27:05,995 [ INFO][       Thread-601697][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:27:05,995 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:27:05,996 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:27:07,012 [DEBUG][       Thread-601697][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:27:07,013 [DEBUG][       Thread-601697][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:27:07,065 [DEBUG][       Thread-601697][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:27:07,065 [DEBUG][       Thread-601697][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:27:07,078 [DEBUG][       Thread-601697][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:27:07,087 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:27:07,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-07-01 10:27:07,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-07-01 10:27:07,105 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:27:07,106 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:27:07,106 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:27:07,117 [DEBUG][       Thread-601697][   transport.py][1871] : EOF in transport thread
2025-07-01 10:27:14,091 [DEBUG][Thread-601699 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:27:17,110 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:27:17,110 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:27:17,110 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:27:17,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-07-01 10:27:17,576 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 26, 56), 9.66, 50.82, 0.0, 39.73, 9.37, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:27:17,576 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:26:56
2025-07-01 10:27:17,662 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:27:17,666 [DEBUG][       Thread-601700][   transport.py][1871] : starting thread (client mode): 0x75a9c00
2025-07-01 10:27:17,666 [DEBUG][       Thread-601700][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:27:17,686 [DEBUG][       Thread-601700][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:27:17,686 [ INFO][       Thread-601700][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:27:17,689 [DEBUG][       Thread-601700][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:27:17,690 [DEBUG][       Thread-601700][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:27:17,690 [DEBUG][       Thread-601700][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:27:17,690 [DEBUG][       Thread-601700][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:27:17,690 [DEBUG][       Thread-601700][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:27:17,690 [DEBUG][       Thread-601700][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:27:17,690 [DEBUG][       Thread-601700][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:27:17,690 [DEBUG][       Thread-601700][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:27:17,690 [DEBUG][       Thread-601700][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:27:17,690 [DEBUG][       Thread-601700][   transport.py][1871] : client lang: <none>
2025-07-01 10:27:17,690 [DEBUG][       Thread-601700][   transport.py][1871] : server lang: <none>
2025-07-01 10:27:17,690 [DEBUG][       Thread-601700][   transport.py][1871] : kex follows: False
2025-07-01 10:27:17,690 [DEBUG][       Thread-601700][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:27:17,690 [DEBUG][       Thread-601700][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:27:17,690 [DEBUG][       Thread-601700][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:27:17,690 [DEBUG][       Thread-601700][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:27:17,690 [DEBUG][       Thread-601700][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:27:17,690 [DEBUG][       Thread-601700][   transport.py][1871] : Compression: none
2025-07-01 10:27:17,690 [DEBUG][       Thread-601700][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:27:17,707 [DEBUG][       Thread-601700][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:27:17,707 [DEBUG][       Thread-601700][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:27:17,708 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:27:17,708 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:27:17,708 [DEBUG][       Thread-601700][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:27:17,709 [DEBUG][       Thread-601700][   transport.py][1871] : userauth is OK
2025-07-01 10:27:17,722 [ INFO][       Thread-601700][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:27:17,723 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:27:18,555 [DEBUG][       Thread-601700][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:27:18,555 [DEBUG][       Thread-601700][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:27:18,597 [DEBUG][       Thread-601700][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:27:18,597 [DEBUG][       Thread-601700][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:27:18,600 [DEBUG][       Thread-601700][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:27:18,612 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:27:18,613 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:27:18,614 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:27:18,616 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:27:18,621 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:27:18,623 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:27:18,623 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:27:18,624 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:27:18,624 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.351682 -999.00   +9.10  38.07     56   +0.80 1 2 2 1 1   887    0 8.17 -13.64 ----- 38.1 38.1 19.2 55.3 11.4 -22.4 10.8 -23.4 10.4 -22.6 10.9 -23.4
2025-07-01 10:27:18,624 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:27:18,624 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:27:18,624 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.351682
2025-07-01 10:27:18,625 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:27:18,625 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:27:18,625 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:27:18,626 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:27:18,626 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:27:18,626 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:26:56', tmtdew=9.66, humidity=50.82, cloud=0.0, wind=39.73, temperature=9.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:26:25.325', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:27:18,627 [DEBUG][       Thread-601700][   transport.py][1871] : EOF in transport thread
2025-07-01 10:27:18,709 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:27:18,719 [DEBUG][       Thread-601703][   transport.py][1871] : starting thread (client mode): 0x8155d20
2025-07-01 10:27:18,719 [DEBUG][       Thread-601703][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:27:18,734 [DEBUG][       Thread-601703][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:27:18,734 [ INFO][       Thread-601703][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:27:18,742 [DEBUG][       Thread-601703][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:27:18,742 [DEBUG][       Thread-601703][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:27:18,742 [DEBUG][       Thread-601703][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:27:18,742 [DEBUG][       Thread-601703][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:27:18,742 [DEBUG][       Thread-601703][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:27:18,742 [DEBUG][       Thread-601703][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:27:18,742 [DEBUG][       Thread-601703][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:27:18,742 [DEBUG][       Thread-601703][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:27:18,742 [DEBUG][       Thread-601703][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:27:18,742 [DEBUG][       Thread-601703][   transport.py][1871] : client lang: <none>
2025-07-01 10:27:18,742 [DEBUG][       Thread-601703][   transport.py][1871] : server lang: <none>
2025-07-01 10:27:18,742 [DEBUG][       Thread-601703][   transport.py][1871] : kex follows: False
2025-07-01 10:27:18,742 [DEBUG][       Thread-601703][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:27:18,742 [DEBUG][       Thread-601703][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:27:18,743 [DEBUG][       Thread-601703][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:27:18,743 [DEBUG][       Thread-601703][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:27:18,743 [DEBUG][       Thread-601703][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:27:18,743 [DEBUG][       Thread-601703][   transport.py][1871] : Compression: none
2025-07-01 10:27:18,743 [DEBUG][       Thread-601703][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:27:18,801 [DEBUG][       Thread-601703][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:27:18,801 [DEBUG][       Thread-601703][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:27:18,802 [DEBUG][       Thread-601703][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:27:18,802 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:27:18,803 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:27:18,857 [DEBUG][       Thread-601703][   transport.py][1871] : userauth is OK
2025-07-01 10:27:18,858 [DEBUG][       Thread-601703][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:27:18,858 [DEBUG][       Thread-601703][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:27:18,858 [DEBUG][       Thread-601703][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:27:18,858 [DEBUG][       Thread-601703][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:27:18,877 [ INFO][       Thread-601703][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:27:18,877 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:27:18,878 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:27:19,900 [DEBUG][       Thread-601703][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:27:19,900 [DEBUG][       Thread-601703][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:27:19,948 [DEBUG][       Thread-601703][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:27:19,948 [DEBUG][       Thread-601703][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:27:19,958 [DEBUG][       Thread-601703][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:27:19,971 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:27:19,972 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 10:27:19,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-07-01 10:27:19,993 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:27:19,993 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:27:19,994 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:27:20,004 [DEBUG][       Thread-601703][   transport.py][1871] : EOF in transport thread
2025-07-01 10:27:23,082 [DEBUG][Thread-601705 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:27:23,125 [DEBUG][Thread-601706 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:27:30,004 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:27:30,004 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:27:30,004 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:27:30,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-07-01 10:27:30,515 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 26, 56), 9.66, 50.82, 0.0, 39.73, 9.37, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:27:30,515 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:26:56
2025-07-01 10:27:30,608 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:27:30,615 [DEBUG][       Thread-601707][   transport.py][1871] : starting thread (client mode): 0x75a87c0
2025-07-01 10:27:30,615 [DEBUG][       Thread-601707][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:27:30,630 [DEBUG][       Thread-601707][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:27:30,630 [ INFO][       Thread-601707][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:27:30,632 [DEBUG][       Thread-601707][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:27:30,632 [DEBUG][       Thread-601707][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:27:30,632 [DEBUG][       Thread-601707][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:27:30,632 [DEBUG][       Thread-601707][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:27:30,632 [DEBUG][       Thread-601707][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:27:30,632 [DEBUG][       Thread-601707][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:27:30,632 [DEBUG][       Thread-601707][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:27:30,632 [DEBUG][       Thread-601707][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:27:30,632 [DEBUG][       Thread-601707][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:27:30,632 [DEBUG][       Thread-601707][   transport.py][1871] : client lang: <none>
2025-07-01 10:27:30,632 [DEBUG][       Thread-601707][   transport.py][1871] : server lang: <none>
2025-07-01 10:27:30,632 [DEBUG][       Thread-601707][   transport.py][1871] : kex follows: False
2025-07-01 10:27:30,632 [DEBUG][       Thread-601707][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:27:30,632 [DEBUG][       Thread-601707][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:27:30,632 [DEBUG][       Thread-601707][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:27:30,632 [DEBUG][       Thread-601707][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:27:30,632 [DEBUG][       Thread-601707][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:27:30,632 [DEBUG][       Thread-601707][   transport.py][1871] : Compression: none
2025-07-01 10:27:30,632 [DEBUG][       Thread-601707][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:27:30,643 [DEBUG][       Thread-601707][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:27:30,643 [DEBUG][       Thread-601707][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:27:30,644 [DEBUG][       Thread-601707][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:27:30,644 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:27:30,644 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:27:30,644 [DEBUG][       Thread-601707][   transport.py][1871] : userauth is OK
2025-07-01 10:27:30,657 [ INFO][       Thread-601707][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:27:30,657 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:27:31,316 [DEBUG][       Thread-601707][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:27:31,316 [DEBUG][       Thread-601707][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:27:31,360 [DEBUG][       Thread-601707][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:27:31,360 [DEBUG][       Thread-601707][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:27:31,363 [DEBUG][       Thread-601707][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:27:31,374 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:27:31,374 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:27:31,375 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:27:31,376 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:27:31,378 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:27:31,379 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:27:31,379 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:27:31,379 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:27:31,379 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.352030 -999.00   +9.20  27.70     56   +1.00 1 2 1 1 1   887    0 8.24 -16.20 ----- 27.7 27.7 14.9 37.8 11.5 -22.3 10.9 -22.9 10.5 -22.4 10.9 -21.8
2025-07-01 10:27:31,379 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:27:31,379 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:27:31,379 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.352030
2025-07-01 10:27:31,379 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:27:31,379 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:27:31,379 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:27:31,379 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:27:31,379 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:27:31,379 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:26:56', tmtdew=9.66, humidity=50.82, cloud=0.0, wind=39.73, temperature=9.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:26:55.392', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:27:31,380 [DEBUG][       Thread-601707][   transport.py][1871] : EOF in transport thread
2025-07-01 10:27:31,454 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:27:31,464 [DEBUG][       Thread-601710][   transport.py][1871] : starting thread (client mode): 0x8170910
2025-07-01 10:27:31,464 [DEBUG][       Thread-601710][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:27:31,478 [DEBUG][       Thread-601710][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:27:31,478 [ INFO][       Thread-601710][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:27:31,486 [DEBUG][       Thread-601710][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:27:31,486 [DEBUG][       Thread-601710][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:27:31,486 [DEBUG][       Thread-601710][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:27:31,486 [DEBUG][       Thread-601710][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:27:31,486 [DEBUG][       Thread-601710][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:27:31,486 [DEBUG][       Thread-601710][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:27:31,486 [DEBUG][       Thread-601710][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:27:31,486 [DEBUG][       Thread-601710][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:27:31,486 [DEBUG][       Thread-601710][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:27:31,486 [DEBUG][       Thread-601710][   transport.py][1871] : client lang: <none>
2025-07-01 10:27:31,486 [DEBUG][       Thread-601710][   transport.py][1871] : server lang: <none>
2025-07-01 10:27:31,486 [DEBUG][       Thread-601710][   transport.py][1871] : kex follows: False
2025-07-01 10:27:31,486 [DEBUG][       Thread-601710][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:27:31,486 [DEBUG][       Thread-601710][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:27:31,486 [DEBUG][       Thread-601710][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:27:31,486 [DEBUG][       Thread-601710][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:27:31,486 [DEBUG][       Thread-601710][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:27:31,486 [DEBUG][       Thread-601710][   transport.py][1871] : Compression: none
2025-07-01 10:27:31,486 [DEBUG][       Thread-601710][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:27:31,543 [DEBUG][       Thread-601710][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:27:31,544 [DEBUG][       Thread-601710][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:27:31,544 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:27:31,544 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:27:31,544 [DEBUG][       Thread-601710][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:27:31,601 [DEBUG][       Thread-601710][   transport.py][1871] : userauth is OK
2025-07-01 10:27:31,601 [DEBUG][       Thread-601710][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:27:31,601 [DEBUG][       Thread-601710][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:27:31,601 [DEBUG][       Thread-601710][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:27:31,601 [DEBUG][       Thread-601710][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:27:31,615 [ INFO][       Thread-601710][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:27:31,615 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:27:31,615 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:27:32,144 [DEBUG][Thread-601712 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:27:32,625 [DEBUG][       Thread-601710][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:27:32,625 [DEBUG][       Thread-601710][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:27:32,675 [DEBUG][       Thread-601710][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:27:32,675 [DEBUG][       Thread-601710][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:27:32,687 [DEBUG][       Thread-601710][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:27:32,700 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:27:32,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-07-01 10:27:32,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-07-01 10:27:32,717 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:27:32,717 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:27:32,717 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:27:32,726 [DEBUG][       Thread-601710][   transport.py][1871] : EOF in transport thread
2025-07-01 10:27:41,164 [DEBUG][Thread-601713 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:27:42,727 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:27:42,727 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:27:42,727 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:27:42,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-07-01 10:27:43,211 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 27, 28), 9.65, 50.86, 0.0, 35.67, 9.46, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:27:43,211 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:27:28
2025-07-01 10:27:43,297 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:27:43,302 [DEBUG][       Thread-601714][   transport.py][1871] : starting thread (client mode): 0x8173640
2025-07-01 10:27:43,302 [DEBUG][       Thread-601714][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:27:43,323 [DEBUG][       Thread-601714][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:27:43,323 [ INFO][       Thread-601714][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:27:43,326 [DEBUG][       Thread-601714][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:27:43,326 [DEBUG][       Thread-601714][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:27:43,326 [DEBUG][       Thread-601714][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:27:43,327 [DEBUG][       Thread-601714][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:27:43,327 [DEBUG][       Thread-601714][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:27:43,327 [DEBUG][       Thread-601714][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:27:43,327 [DEBUG][       Thread-601714][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:27:43,327 [DEBUG][       Thread-601714][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:27:43,327 [DEBUG][       Thread-601714][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:27:43,327 [DEBUG][       Thread-601714][   transport.py][1871] : client lang: <none>
2025-07-01 10:27:43,327 [DEBUG][       Thread-601714][   transport.py][1871] : server lang: <none>
2025-07-01 10:27:43,327 [DEBUG][       Thread-601714][   transport.py][1871] : kex follows: False
2025-07-01 10:27:43,327 [DEBUG][       Thread-601714][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:27:43,327 [DEBUG][       Thread-601714][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:27:43,327 [DEBUG][       Thread-601714][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:27:43,327 [DEBUG][       Thread-601714][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:27:43,327 [DEBUG][       Thread-601714][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:27:43,327 [DEBUG][       Thread-601714][   transport.py][1871] : Compression: none
2025-07-01 10:27:43,327 [DEBUG][       Thread-601714][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:27:43,344 [DEBUG][       Thread-601714][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:27:43,344 [DEBUG][       Thread-601714][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:27:43,345 [DEBUG][       Thread-601714][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:27:43,345 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:27:43,345 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:27:43,346 [DEBUG][       Thread-601714][   transport.py][1871] : userauth is OK
2025-07-01 10:27:43,360 [ INFO][       Thread-601714][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:27:43,360 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:27:44,181 [DEBUG][       Thread-601714][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:27:44,181 [DEBUG][       Thread-601714][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:27:44,225 [DEBUG][       Thread-601714][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:27:44,225 [DEBUG][       Thread-601714][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:27:44,228 [DEBUG][       Thread-601714][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:27:44,242 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:27:44,243 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:27:44,244 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:27:44,246 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:27:44,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:27:44,252 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:27:44,253 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:27:44,253 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:27:44,253 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.352030 -999.00   +9.20  27.70     56   +1.00 1 2 1 1 1   887    0 8.24 -16.20 ----- 27.7 27.7 14.9 37.8 11.5 -22.3 10.9 -22.9 10.5 -22.4 10.9 -21.8
2025-07-01 10:27:44,254 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:27:44,254 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:27:44,254 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.352030
2025-07-01 10:27:44,254 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:27:44,255 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:27:44,255 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:27:44,255 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:27:44,255 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:27:44,255 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:27:28', tmtdew=9.65, humidity=50.86, cloud=0.0, wind=35.67, temperature=9.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:26:55.392', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:27:44,255 [DEBUG][       Thread-601714][   transport.py][1871] : EOF in transport thread
2025-07-01 10:27:44,338 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:27:44,349 [DEBUG][       Thread-601717][   transport.py][1871] : starting thread (client mode): 0x81a50c0
2025-07-01 10:27:44,349 [DEBUG][       Thread-601717][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:27:44,368 [DEBUG][       Thread-601717][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:27:44,368 [ INFO][       Thread-601717][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:27:44,376 [DEBUG][       Thread-601717][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:27:44,376 [DEBUG][       Thread-601717][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:27:44,376 [DEBUG][       Thread-601717][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:27:44,376 [DEBUG][       Thread-601717][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:27:44,376 [DEBUG][       Thread-601717][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:27:44,376 [DEBUG][       Thread-601717][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:27:44,376 [DEBUG][       Thread-601717][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:27:44,377 [DEBUG][       Thread-601717][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:27:44,377 [DEBUG][       Thread-601717][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:27:44,377 [DEBUG][       Thread-601717][   transport.py][1871] : client lang: <none>
2025-07-01 10:27:44,377 [DEBUG][       Thread-601717][   transport.py][1871] : server lang: <none>
2025-07-01 10:27:44,377 [DEBUG][       Thread-601717][   transport.py][1871] : kex follows: False
2025-07-01 10:27:44,377 [DEBUG][       Thread-601717][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:27:44,377 [DEBUG][       Thread-601717][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:27:44,377 [DEBUG][       Thread-601717][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:27:44,377 [DEBUG][       Thread-601717][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:27:44,377 [DEBUG][       Thread-601717][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:27:44,377 [DEBUG][       Thread-601717][   transport.py][1871] : Compression: none
2025-07-01 10:27:44,377 [DEBUG][       Thread-601717][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:27:44,434 [DEBUG][       Thread-601717][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:27:44,434 [DEBUG][       Thread-601717][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:27:44,435 [DEBUG][       Thread-601717][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:27:44,435 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:27:44,436 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:27:44,489 [DEBUG][       Thread-601717][   transport.py][1871] : userauth is OK
2025-07-01 10:27:44,489 [DEBUG][       Thread-601717][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:27:44,490 [DEBUG][       Thread-601717][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:27:44,490 [DEBUG][       Thread-601717][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:27:44,490 [DEBUG][       Thread-601717][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:27:44,513 [ INFO][       Thread-601717][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:27:44,513 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:27:44,513 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:27:45,487 [DEBUG][       Thread-601717][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:27:45,487 [DEBUG][       Thread-601717][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:27:45,541 [DEBUG][       Thread-601717][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:27:45,541 [DEBUG][       Thread-601717][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:27:45,554 [DEBUG][       Thread-601717][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:27:45,568 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:27:45,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-07-01 10:27:45,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-07-01 10:27:45,595 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:27:45,595 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:27:45,596 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:27:45,615 [DEBUG][       Thread-601717][   transport.py][1871] : EOF in transport thread
2025-07-01 10:27:50,188 [DEBUG][Thread-601719 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:27:55,606 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:27:55,607 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:27:55,607 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:27:55,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-07-01 10:27:56,072 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 27, 28), 9.65, 50.86, 0.0, 35.67, 9.46, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:27:56,072 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:27:28
2025-07-01 10:27:56,157 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:27:56,163 [DEBUG][       Thread-601720][   transport.py][1871] : starting thread (client mode): 0x75a8190
2025-07-01 10:27:56,163 [DEBUG][       Thread-601720][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:27:56,174 [DEBUG][       Thread-601720][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:27:56,174 [ INFO][       Thread-601720][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:27:56,175 [DEBUG][       Thread-601720][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:27:56,175 [DEBUG][       Thread-601720][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:27:56,175 [DEBUG][       Thread-601720][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:27:56,175 [DEBUG][       Thread-601720][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:27:56,175 [DEBUG][       Thread-601720][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:27:56,175 [DEBUG][       Thread-601720][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:27:56,175 [DEBUG][       Thread-601720][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:27:56,175 [DEBUG][       Thread-601720][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:27:56,175 [DEBUG][       Thread-601720][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:27:56,175 [DEBUG][       Thread-601720][   transport.py][1871] : client lang: <none>
2025-07-01 10:27:56,175 [DEBUG][       Thread-601720][   transport.py][1871] : server lang: <none>
2025-07-01 10:27:56,176 [DEBUG][       Thread-601720][   transport.py][1871] : kex follows: False
2025-07-01 10:27:56,176 [DEBUG][       Thread-601720][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:27:56,176 [DEBUG][       Thread-601720][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:27:56,176 [DEBUG][       Thread-601720][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:27:56,176 [DEBUG][       Thread-601720][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:27:56,176 [DEBUG][       Thread-601720][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:27:56,176 [DEBUG][       Thread-601720][   transport.py][1871] : Compression: none
2025-07-01 10:27:56,176 [DEBUG][       Thread-601720][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:27:56,186 [DEBUG][       Thread-601720][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:27:56,186 [DEBUG][       Thread-601720][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:27:56,186 [DEBUG][       Thread-601720][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:27:56,186 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:27:56,186 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:27:56,187 [DEBUG][       Thread-601720][   transport.py][1871] : userauth is OK
2025-07-01 10:27:56,200 [ INFO][       Thread-601720][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:27:56,200 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:27:56,966 [DEBUG][       Thread-601720][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:27:56,966 [DEBUG][       Thread-601720][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:27:57,012 [DEBUG][       Thread-601720][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:27:57,012 [DEBUG][       Thread-601720][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:27:57,014 [DEBUG][       Thread-601720][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:27:57,026 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:27:57,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:27:57,028 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:27:57,028 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:27:57,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:27:57,032 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:27:57,032 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:27:57,032 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:27:57,032 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.352030 -999.00   +9.20  27.70     56   +1.00 1 2 1 1 1   887    0 8.24 -16.20 ----- 27.7 27.7 14.9 37.8 11.5 -22.3 10.9 -22.9 10.5 -22.4 10.9 -21.8
2025-07-01 10:27:57,032 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:27:57,032 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:27:57,032 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.352030
2025-07-01 10:27:57,032 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:27:57,032 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:27:57,032 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:27:57,032 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:27:57,032 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:27:57,032 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:27:28', tmtdew=9.65, humidity=50.86, cloud=0.0, wind=35.67, temperature=9.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:26:55.392', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:27:57,033 [DEBUG][       Thread-601720][   transport.py][1871] : EOF in transport thread
2025-07-01 10:27:57,104 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:27:57,117 [DEBUG][       Thread-601723][   transport.py][1871] : starting thread (client mode): 0x82b1f00
2025-07-01 10:27:57,118 [DEBUG][       Thread-601723][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:27:57,135 [DEBUG][       Thread-601723][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:27:57,135 [ INFO][       Thread-601723][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:27:57,142 [DEBUG][       Thread-601723][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:27:57,143 [DEBUG][       Thread-601723][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:27:57,143 [DEBUG][       Thread-601723][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:27:57,143 [DEBUG][       Thread-601723][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:27:57,143 [DEBUG][       Thread-601723][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:27:57,143 [DEBUG][       Thread-601723][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:27:57,143 [DEBUG][       Thread-601723][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:27:57,143 [DEBUG][       Thread-601723][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:27:57,143 [DEBUG][       Thread-601723][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:27:57,143 [DEBUG][       Thread-601723][   transport.py][1871] : client lang: <none>
2025-07-01 10:27:57,143 [DEBUG][       Thread-601723][   transport.py][1871] : server lang: <none>
2025-07-01 10:27:57,143 [DEBUG][       Thread-601723][   transport.py][1871] : kex follows: False
2025-07-01 10:27:57,143 [DEBUG][       Thread-601723][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:27:57,143 [DEBUG][       Thread-601723][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:27:57,143 [DEBUG][       Thread-601723][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:27:57,143 [DEBUG][       Thread-601723][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:27:57,143 [DEBUG][       Thread-601723][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:27:57,144 [DEBUG][       Thread-601723][   transport.py][1871] : Compression: none
2025-07-01 10:27:57,144 [DEBUG][       Thread-601723][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:27:57,202 [DEBUG][       Thread-601723][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:27:57,202 [DEBUG][       Thread-601723][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:27:57,203 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:27:57,204 [DEBUG][       Thread-601723][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:27:57,204 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:27:57,261 [DEBUG][       Thread-601723][   transport.py][1871] : userauth is OK
2025-07-01 10:27:57,261 [DEBUG][       Thread-601723][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:27:57,261 [DEBUG][       Thread-601723][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:27:57,261 [DEBUG][       Thread-601723][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:27:57,262 [DEBUG][       Thread-601723][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:27:57,284 [ INFO][       Thread-601723][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:27:57,285 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:27:57,285 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:27:58,319 [DEBUG][       Thread-601723][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:27:58,320 [DEBUG][       Thread-601723][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:27:58,369 [DEBUG][       Thread-601723][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:27:58,369 [DEBUG][       Thread-601723][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:27:58,380 [DEBUG][       Thread-601723][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:27:58,388 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:27:58,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-07-01 10:27:58,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-07-01 10:27:58,406 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:27:58,406 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:27:58,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:27:58,416 [DEBUG][       Thread-601723][   transport.py][1871] : EOF in transport thread
2025-07-01 10:27:59,223 [DEBUG][Thread-601725 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:27:59,403 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:27:59,405 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:28:08,242 [DEBUG][Thread-601726 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:28:08,416 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:28:08,416 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:28:08,416 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:28:08,417 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:28:08,916 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 27, 28), 9.65, 50.86, 0.0, 35.67, 9.46, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:28:08,916 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:27:28
2025-07-01 10:28:09,007 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:28:09,011 [DEBUG][       Thread-601727][   transport.py][1871] : starting thread (client mode): 0x82b14e0
2025-07-01 10:28:09,011 [DEBUG][       Thread-601727][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:28:09,030 [DEBUG][       Thread-601727][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:28:09,030 [ INFO][       Thread-601727][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:28:09,034 [DEBUG][       Thread-601727][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:28:09,034 [DEBUG][       Thread-601727][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:28:09,034 [DEBUG][       Thread-601727][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:28:09,034 [DEBUG][       Thread-601727][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:28:09,034 [DEBUG][       Thread-601727][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:28:09,034 [DEBUG][       Thread-601727][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:28:09,034 [DEBUG][       Thread-601727][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:28:09,034 [DEBUG][       Thread-601727][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:28:09,034 [DEBUG][       Thread-601727][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:28:09,034 [DEBUG][       Thread-601727][   transport.py][1871] : client lang: <none>
2025-07-01 10:28:09,034 [DEBUG][       Thread-601727][   transport.py][1871] : server lang: <none>
2025-07-01 10:28:09,034 [DEBUG][       Thread-601727][   transport.py][1871] : kex follows: False
2025-07-01 10:28:09,034 [DEBUG][       Thread-601727][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:28:09,034 [DEBUG][       Thread-601727][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:28:09,034 [DEBUG][       Thread-601727][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:28:09,034 [DEBUG][       Thread-601727][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:28:09,034 [DEBUG][       Thread-601727][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:28:09,034 [DEBUG][       Thread-601727][   transport.py][1871] : Compression: none
2025-07-01 10:28:09,034 [DEBUG][       Thread-601727][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:28:09,048 [DEBUG][       Thread-601727][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:28:09,048 [DEBUG][       Thread-601727][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:28:09,049 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:28:09,049 [DEBUG][       Thread-601727][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:28:09,049 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:28:09,049 [DEBUG][       Thread-601727][   transport.py][1871] : userauth is OK
2025-07-01 10:28:09,062 [ INFO][       Thread-601727][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:28:09,062 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:28:09,685 [DEBUG][       Thread-601727][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:28:09,685 [DEBUG][       Thread-601727][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:28:09,728 [DEBUG][       Thread-601727][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:28:09,728 [DEBUG][       Thread-601727][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:28:09,731 [DEBUG][       Thread-601727][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:28:09,742 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:28:09,742 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:28:09,743 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:28:09,744 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:28:09,747 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:28:09,748 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:28:09,748 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:28:09,748 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:28:09,748 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.352724 -999.00   +9.20  42.40     55   +0.90 1 1 2 1 1   887    0 7.71 -22.38 ----- 42.4 42.4 30.0 59.7 11.4 -24.6 10.9 -24.7 10.4 -23.4 10.9 -24.0
2025-07-01 10:28:09,748 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:28:09,748 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:28:09,748 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.352724
2025-07-01 10:28:09,748 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:28:09,748 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:28:09,748 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:28:09,748 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:28:09,748 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:28:09,748 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:27:28', tmtdew=9.65, humidity=50.86, cloud=0.0, wind=35.67, temperature=9.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:27:55.354', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:28:09,749 [DEBUG][       Thread-601727][   transport.py][1871] : EOF in transport thread
2025-07-01 10:28:09,823 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:28:17,261 [DEBUG][Thread-601730 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:28:23,132 [DEBUG][Thread-601731 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:28:26,303 [DEBUG][Thread-601732 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:28:35,324 [DEBUG][Thread-601733 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:28:44,344 [DEBUG][Thread-601734 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:28:53,366 [DEBUG][Thread-601735 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:28:59,543 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:28:59,544 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:29:02,386 [DEBUG][Thread-601736 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:29:11,407 [DEBUG][Thread-601737 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:29:20,432 [DEBUG][Thread-601738 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:29:23,182 [DEBUG][Thread-601739 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:29:29,452 [DEBUG][Thread-601740 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:29:38,474 [DEBUG][Thread-601741 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:29:47,499 [DEBUG][Thread-601742 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:29:56,522 [DEBUG][Thread-601743 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:29:59,683 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:29:59,684 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:30:05,540 [DEBUG][Thread-601744 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:30:14,561 [DEBUG][Thread-601745 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:30:19,924 [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-07-01 10:30:23,235 [DEBUG][Thread-601746 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:30:23,585 [DEBUG][Thread-601747 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:30:29,935 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:30:29,935 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:30:29,935 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:30:29,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-07-01 10:30:30,451 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 30, 6), 9.68, 50.87, 0.0, 36.2, 9.43, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:30:30,451 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:30:06
2025-07-01 10:30:30,536 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:30:30,543 [DEBUG][       Thread-601748][   transport.py][1871] : starting thread (client mode): 0x82b2770
2025-07-01 10:30:30,543 [DEBUG][       Thread-601748][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:30:30,562 [DEBUG][       Thread-601748][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:30:30,562 [ INFO][       Thread-601748][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:30:30,565 [DEBUG][       Thread-601748][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:30:30,565 [DEBUG][       Thread-601748][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:30:30,565 [DEBUG][       Thread-601748][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:30:30,565 [DEBUG][       Thread-601748][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:30:30,565 [DEBUG][       Thread-601748][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:30:30,565 [DEBUG][       Thread-601748][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:30:30,565 [DEBUG][       Thread-601748][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:30:30,565 [DEBUG][       Thread-601748][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:30:30,565 [DEBUG][       Thread-601748][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:30:30,566 [DEBUG][       Thread-601748][   transport.py][1871] : client lang: <none>
2025-07-01 10:30:30,566 [DEBUG][       Thread-601748][   transport.py][1871] : server lang: <none>
2025-07-01 10:30:30,566 [DEBUG][       Thread-601748][   transport.py][1871] : kex follows: False
2025-07-01 10:30:30,566 [DEBUG][       Thread-601748][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:30:30,566 [DEBUG][       Thread-601748][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:30:30,566 [DEBUG][       Thread-601748][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:30:30,566 [DEBUG][       Thread-601748][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:30:30,566 [DEBUG][       Thread-601748][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:30:30,566 [DEBUG][       Thread-601748][   transport.py][1871] : Compression: none
2025-07-01 10:30:30,566 [DEBUG][       Thread-601748][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:30:30,584 [DEBUG][       Thread-601748][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:30:30,585 [DEBUG][       Thread-601748][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:30:30,585 [DEBUG][       Thread-601748][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:30:30,585 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:30:30,586 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:30:30,587 [DEBUG][       Thread-601748][   transport.py][1871] : userauth is OK
2025-07-01 10:30:30,611 [ INFO][       Thread-601748][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:30:30,612 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:30:31,246 [DEBUG][       Thread-601748][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:30:31,246 [DEBUG][       Thread-601748][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:30:31,289 [DEBUG][       Thread-601748][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:30:31,289 [DEBUG][       Thread-601748][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:30:31,292 [DEBUG][       Thread-601748][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:30:31,304 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:30:31,304 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:30:31,306 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:30:31,308 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:30:31,314 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:30:31,316 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:30:31,316 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:30:31,317 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:30:31,317 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.354113 -999.00   +9.10  34.14     56   +0.80 1 1 2 1 1   887    0 7.71 -25.89 ----- 34.1 34.1 17.3 42.8 11.4 -24.0 10.8 -23.8 10.4 -22.9 10.9 -22.8
2025-07-01 10:30:31,317 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:30:31,317 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:30:31,317 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.354113
2025-07-01 10:30:31,317 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:30:31,318 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:30:31,318 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:30:31,318 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:30:31,318 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:30:31,318 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:30:06', tmtdew=9.68, humidity=50.87, cloud=0.0, wind=36.2, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:29:55.363', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:30:31,319 [DEBUG][       Thread-601748][   transport.py][1871] : EOF in transport thread
2025-07-01 10:30:31,402 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:30:31,413 [DEBUG][       Thread-601751][   transport.py][1871] : starting thread (client mode): 0x81e7ca0
2025-07-01 10:30:31,413 [DEBUG][       Thread-601751][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:30:31,429 [DEBUG][       Thread-601751][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:30:31,429 [ INFO][       Thread-601751][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:30:31,437 [DEBUG][       Thread-601751][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:30:31,437 [DEBUG][       Thread-601751][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:30:31,438 [DEBUG][       Thread-601751][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:30:31,438 [DEBUG][       Thread-601751][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:30:31,438 [DEBUG][       Thread-601751][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:30:31,438 [DEBUG][       Thread-601751][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:30:31,438 [DEBUG][       Thread-601751][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:30:31,438 [DEBUG][       Thread-601751][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:30:31,438 [DEBUG][       Thread-601751][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:30:31,438 [DEBUG][       Thread-601751][   transport.py][1871] : client lang: <none>
2025-07-01 10:30:31,438 [DEBUG][       Thread-601751][   transport.py][1871] : server lang: <none>
2025-07-01 10:30:31,438 [DEBUG][       Thread-601751][   transport.py][1871] : kex follows: False
2025-07-01 10:30:31,438 [DEBUG][       Thread-601751][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:30:31,438 [DEBUG][       Thread-601751][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:30:31,438 [DEBUG][       Thread-601751][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:30:31,438 [DEBUG][       Thread-601751][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:30:31,438 [DEBUG][       Thread-601751][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:30:31,438 [DEBUG][       Thread-601751][   transport.py][1871] : Compression: none
2025-07-01 10:30:31,438 [DEBUG][       Thread-601751][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:30:31,497 [DEBUG][       Thread-601751][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:30:31,498 [DEBUG][       Thread-601751][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:30:31,498 [DEBUG][       Thread-601751][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:30:31,499 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:30:31,499 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:30:31,555 [DEBUG][       Thread-601751][   transport.py][1871] : userauth is OK
2025-07-01 10:30:31,555 [DEBUG][       Thread-601751][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:30:31,555 [DEBUG][       Thread-601751][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:30:31,556 [DEBUG][       Thread-601751][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:30:31,556 [DEBUG][       Thread-601751][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:30:31,577 [ INFO][       Thread-601751][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:30:31,578 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:30:31,578 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:30:32,601 [DEBUG][       Thread-601751][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:30:32,601 [DEBUG][       Thread-601751][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:30:32,606 [DEBUG][Thread-601753 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:30:32,651 [DEBUG][       Thread-601751][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:30:32,651 [DEBUG][       Thread-601751][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:30:32,660 [DEBUG][       Thread-601751][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:30:32,667 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:30: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')
2025-07-01 10:30:32,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-07-01 10:30:32,685 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:30:32,685 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:30:32,686 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:30:32,693 [DEBUG][       Thread-601751][   transport.py][1871] : EOF in transport thread
2025-07-01 10:30:41,637 [DEBUG][Thread-601754 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:30:42,692 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:30:42,692 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:30:42,692 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:30:42,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-07-01 10:30:43,228 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 30, 38), 9.66, 50.81, 0.0, 27.7, 9.41, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:30:43,228 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:30:38
2025-07-01 10:30:43,319 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:30:43,322 [DEBUG][       Thread-601755][   transport.py][1871] : starting thread (client mode): 0x82b3fd0
2025-07-01 10:30:43,322 [DEBUG][       Thread-601755][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:30:43,341 [DEBUG][       Thread-601755][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:30:43,341 [ INFO][       Thread-601755][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:30:43,345 [DEBUG][       Thread-601755][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:30:43,345 [DEBUG][       Thread-601755][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:30:43,345 [DEBUG][       Thread-601755][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:30:43,345 [DEBUG][       Thread-601755][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:30:43,345 [DEBUG][       Thread-601755][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:30:43,345 [DEBUG][       Thread-601755][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:30:43,345 [DEBUG][       Thread-601755][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:30:43,345 [DEBUG][       Thread-601755][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:30:43,345 [DEBUG][       Thread-601755][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:30:43,345 [DEBUG][       Thread-601755][   transport.py][1871] : client lang: <none>
2025-07-01 10:30:43,345 [DEBUG][       Thread-601755][   transport.py][1871] : server lang: <none>
2025-07-01 10:30:43,345 [DEBUG][       Thread-601755][   transport.py][1871] : kex follows: False
2025-07-01 10:30:43,345 [DEBUG][       Thread-601755][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:30:43,345 [DEBUG][       Thread-601755][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:30:43,345 [DEBUG][       Thread-601755][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:30:43,345 [DEBUG][       Thread-601755][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:30:43,345 [DEBUG][       Thread-601755][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:30:43,345 [DEBUG][       Thread-601755][   transport.py][1871] : Compression: none
2025-07-01 10:30:43,345 [DEBUG][       Thread-601755][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:30:43,360 [DEBUG][       Thread-601755][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:30:43,360 [DEBUG][       Thread-601755][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:30:43,360 [DEBUG][       Thread-601755][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:30:43,360 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:30:43,360 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:30:43,361 [DEBUG][       Thread-601755][   transport.py][1871] : userauth is OK
2025-07-01 10:30:43,385 [ INFO][       Thread-601755][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:30:43,385 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:30:44,035 [DEBUG][       Thread-601755][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:30:44,035 [DEBUG][       Thread-601755][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:30:44,076 [DEBUG][       Thread-601755][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:30:44,077 [DEBUG][       Thread-601755][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:30:44,079 [DEBUG][       Thread-601755][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:30:44,091 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:30:44,091 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:30:44,092 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:30:44,093 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:30:44,097 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:30:44,098 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:30:44,098 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:30:44,098 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:30:44,098 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.354113 -999.00   +9.10  34.14     56   +0.80 1 1 2 1 1   887    0 7.71 -25.89 ----- 34.1 34.1 17.3 42.8 11.4 -24.0 10.8 -23.8 10.4 -22.9 10.9 -22.8
2025-07-01 10:30:44,098 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:30:44,098 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:30:44,098 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.354113
2025-07-01 10:30:44,098 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:30:44,098 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:30:44,098 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:30:44,098 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:30:44,098 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:30:44,098 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:30:38', tmtdew=9.66, humidity=50.81, cloud=0.0, wind=27.7, temperature=9.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:29:55.363', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:30:44,099 [DEBUG][       Thread-601755][   transport.py][1871] : EOF in transport thread
2025-07-01 10:30:44,172 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:30:44,181 [DEBUG][       Thread-601758][   transport.py][1871] : starting thread (client mode): 0x8154970
2025-07-01 10:30:44,181 [DEBUG][       Thread-601758][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:30:44,196 [DEBUG][       Thread-601758][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:30:44,196 [ INFO][       Thread-601758][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:30:44,206 [DEBUG][       Thread-601758][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:30:44,206 [DEBUG][       Thread-601758][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:30:44,206 [DEBUG][       Thread-601758][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:30:44,206 [DEBUG][       Thread-601758][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:30:44,206 [DEBUG][       Thread-601758][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:30:44,206 [DEBUG][       Thread-601758][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:30:44,206 [DEBUG][       Thread-601758][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:30:44,206 [DEBUG][       Thread-601758][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:30:44,206 [DEBUG][       Thread-601758][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:30:44,206 [DEBUG][       Thread-601758][   transport.py][1871] : client lang: <none>
2025-07-01 10:30:44,206 [DEBUG][       Thread-601758][   transport.py][1871] : server lang: <none>
2025-07-01 10:30:44,206 [DEBUG][       Thread-601758][   transport.py][1871] : kex follows: False
2025-07-01 10:30:44,206 [DEBUG][       Thread-601758][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:30:44,206 [DEBUG][       Thread-601758][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:30:44,207 [DEBUG][       Thread-601758][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:30:44,207 [DEBUG][       Thread-601758][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:30:44,207 [DEBUG][       Thread-601758][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:30:44,207 [DEBUG][       Thread-601758][   transport.py][1871] : Compression: none
2025-07-01 10:30:44,207 [DEBUG][       Thread-601758][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:30:44,263 [DEBUG][       Thread-601758][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:30:44,264 [DEBUG][       Thread-601758][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:30:44,264 [DEBUG][       Thread-601758][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:30:44,264 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:30:44,264 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:30:44,321 [DEBUG][       Thread-601758][   transport.py][1871] : userauth is OK
2025-07-01 10:30:44,321 [DEBUG][       Thread-601758][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:30:44,321 [DEBUG][       Thread-601758][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:30:44,321 [DEBUG][       Thread-601758][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:30:44,321 [DEBUG][       Thread-601758][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:30:44,335 [ INFO][       Thread-601758][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:30:44,335 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:30:44,336 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:30:45,363 [DEBUG][       Thread-601758][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:30:45,363 [DEBUG][       Thread-601758][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:30:45,411 [DEBUG][       Thread-601758][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:30:45,411 [DEBUG][       Thread-601758][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:30:45,420 [DEBUG][       Thread-601758][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:30:45,428 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:30:45,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')
2025-07-01 10:30:45,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-07-01 10:30:45,444 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:30:45,444 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:30:45,445 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:30:45,453 [DEBUG][       Thread-601758][   transport.py][1871] : EOF in transport thread
2025-07-01 10:30:50,657 [DEBUG][Thread-601760 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:30:55,455 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:30:55,455 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:30:55,455 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:30:55,458 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:30:55,958 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 30, 38), 9.66, 50.81, 0.0, 27.7, 9.41, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:30:55,958 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:30:38
2025-07-01 10:30:56,043 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:30:56,049 [DEBUG][       Thread-601761][   transport.py][1871] : starting thread (client mode): 0x82b1570
2025-07-01 10:30:56,049 [DEBUG][       Thread-601761][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:30:56,069 [DEBUG][       Thread-601761][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:30:56,069 [ INFO][       Thread-601761][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:30:56,072 [DEBUG][       Thread-601761][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:30:56,072 [DEBUG][       Thread-601761][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:30:56,072 [DEBUG][       Thread-601761][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:30:56,072 [DEBUG][       Thread-601761][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:30:56,072 [DEBUG][       Thread-601761][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:30:56,072 [DEBUG][       Thread-601761][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:30:56,072 [DEBUG][       Thread-601761][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:30:56,072 [DEBUG][       Thread-601761][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:30:56,072 [DEBUG][       Thread-601761][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:30:56,072 [DEBUG][       Thread-601761][   transport.py][1871] : client lang: <none>
2025-07-01 10:30:56,072 [DEBUG][       Thread-601761][   transport.py][1871] : server lang: <none>
2025-07-01 10:30:56,072 [DEBUG][       Thread-601761][   transport.py][1871] : kex follows: False
2025-07-01 10:30:56,072 [DEBUG][       Thread-601761][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:30:56,073 [DEBUG][       Thread-601761][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:30:56,073 [DEBUG][       Thread-601761][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:30:56,073 [DEBUG][       Thread-601761][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:30:56,073 [DEBUG][       Thread-601761][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:30:56,073 [DEBUG][       Thread-601761][   transport.py][1871] : Compression: none
2025-07-01 10:30:56,073 [DEBUG][       Thread-601761][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:30:56,088 [DEBUG][       Thread-601761][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:30:56,088 [DEBUG][       Thread-601761][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:30:56,089 [DEBUG][       Thread-601761][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:30:56,089 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:30:56,089 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:30:56,090 [DEBUG][       Thread-601761][   transport.py][1871] : userauth is OK
2025-07-01 10:30:56,115 [ INFO][       Thread-601761][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:30:56,116 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:30:56,752 [DEBUG][       Thread-601761][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:30:56,752 [DEBUG][       Thread-601761][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:30:56,793 [DEBUG][       Thread-601761][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:30:56,793 [DEBUG][       Thread-601761][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:30:56,797 [DEBUG][       Thread-601761][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:30:56,808 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:30:56,808 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:30:56,810 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:30:56,812 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:30:56,817 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:30:56,819 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:30:56,819 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:30:56,819 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:30:56,820 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.354460 -999.00   +9.10  37.89     56   +0.90 1 1 2 1 1   887    0 7.85 -24.31 ----- 37.9 37.9 26.0 40.6 11.4 -23.7 10.8 -23.6 10.4 -22.5 10.9 -22.3
2025-07-01 10:30:56,820 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:30:56,820 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:30:56,820 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.354460
2025-07-01 10:30:56,820 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:30:56,821 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:30:56,821 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:30:56,821 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:30:56,821 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:30:56,821 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:30:38', tmtdew=9.66, humidity=50.81, cloud=0.0, wind=27.7, temperature=9.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:30:25.344', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:30:56,822 [DEBUG][       Thread-601761][   transport.py][1871] : EOF in transport thread
2025-07-01 10:30:56,905 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:30:56,915 [DEBUG][       Thread-601764][   transport.py][1871] : starting thread (client mode): 0x8393f40
2025-07-01 10:30:56,915 [DEBUG][       Thread-601764][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:30:56,930 [DEBUG][       Thread-601764][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:30:56,930 [ INFO][       Thread-601764][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:30:56,937 [DEBUG][       Thread-601764][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:30:56,938 [DEBUG][       Thread-601764][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:30:56,938 [DEBUG][       Thread-601764][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:30:56,938 [DEBUG][       Thread-601764][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:30:56,938 [DEBUG][       Thread-601764][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:30:56,938 [DEBUG][       Thread-601764][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:30:56,938 [DEBUG][       Thread-601764][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:30:56,938 [DEBUG][       Thread-601764][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:30:56,938 [DEBUG][       Thread-601764][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:30:56,938 [DEBUG][       Thread-601764][   transport.py][1871] : client lang: <none>
2025-07-01 10:30:56,938 [DEBUG][       Thread-601764][   transport.py][1871] : server lang: <none>
2025-07-01 10:30:56,938 [DEBUG][       Thread-601764][   transport.py][1871] : kex follows: False
2025-07-01 10:30:56,938 [DEBUG][       Thread-601764][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:30:56,938 [DEBUG][       Thread-601764][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:30:56,938 [DEBUG][       Thread-601764][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:30:56,938 [DEBUG][       Thread-601764][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:30:56,938 [DEBUG][       Thread-601764][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:30:56,938 [DEBUG][       Thread-601764][   transport.py][1871] : Compression: none
2025-07-01 10:30:56,938 [DEBUG][       Thread-601764][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:30:57,002 [DEBUG][       Thread-601764][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:30:57,002 [DEBUG][       Thread-601764][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:30:57,003 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:30:57,004 [DEBUG][       Thread-601764][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:30:57,004 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:30:57,069 [DEBUG][       Thread-601764][   transport.py][1871] : userauth is OK
2025-07-01 10:30:57,069 [DEBUG][       Thread-601764][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:30:57,069 [DEBUG][       Thread-601764][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:30:57,069 [DEBUG][       Thread-601764][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:30:57,069 [DEBUG][       Thread-601764][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:30:57,094 [ INFO][       Thread-601764][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:30:57,095 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:30:57,095 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:30:58,132 [DEBUG][       Thread-601764][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:30:58,133 [DEBUG][       Thread-601764][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:30:58,184 [DEBUG][       Thread-601764][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:30:58,184 [DEBUG][       Thread-601764][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:30:58,193 [DEBUG][       Thread-601764][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:30:58,202 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:30:58,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-07-01 10:30:58,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-07-01 10:30:58,219 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:30:58,220 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:30:58,220 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:30:58,230 [DEBUG][       Thread-601764][   transport.py][1871] : EOF in transport thread
2025-07-01 10:30:59,691 [DEBUG][Thread-601766 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:30:59,822 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:30:59,823 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:31:08,231 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:31:08,231 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:31:08,231 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:31:08,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-07-01 10:31:08,712 [DEBUG][Thread-601767 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:31:08,731 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 30, 38), 9.66, 50.81, 0.0, 27.7, 9.41, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:31:08,731 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:30:38
2025-07-01 10:31:08,816 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:31:08,820 [DEBUG][       Thread-601768][   transport.py][1871] : starting thread (client mode): 0x82b28f0
2025-07-01 10:31:08,820 [DEBUG][       Thread-601768][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:31:08,841 [DEBUG][       Thread-601768][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:31:08,841 [ INFO][       Thread-601768][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:31:08,845 [DEBUG][       Thread-601768][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:31:08,845 [DEBUG][       Thread-601768][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:31:08,845 [DEBUG][       Thread-601768][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:31:08,845 [DEBUG][       Thread-601768][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:31:08,845 [DEBUG][       Thread-601768][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:31:08,845 [DEBUG][       Thread-601768][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:31:08,845 [DEBUG][       Thread-601768][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:31:08,845 [DEBUG][       Thread-601768][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:31:08,845 [DEBUG][       Thread-601768][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:31:08,845 [DEBUG][       Thread-601768][   transport.py][1871] : client lang: <none>
2025-07-01 10:31:08,845 [DEBUG][       Thread-601768][   transport.py][1871] : server lang: <none>
2025-07-01 10:31:08,845 [DEBUG][       Thread-601768][   transport.py][1871] : kex follows: False
2025-07-01 10:31:08,845 [DEBUG][       Thread-601768][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:31:08,845 [DEBUG][       Thread-601768][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:31:08,845 [DEBUG][       Thread-601768][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:31:08,845 [DEBUG][       Thread-601768][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:31:08,845 [DEBUG][       Thread-601768][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:31:08,845 [DEBUG][       Thread-601768][   transport.py][1871] : Compression: none
2025-07-01 10:31:08,845 [DEBUG][       Thread-601768][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:31:08,863 [DEBUG][       Thread-601768][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:31:08,864 [DEBUG][       Thread-601768][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:31:08,864 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:31:08,864 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:31:08,865 [DEBUG][       Thread-601768][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:31:08,865 [DEBUG][       Thread-601768][   transport.py][1871] : userauth is OK
2025-07-01 10:31:08,878 [ INFO][       Thread-601768][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:31:08,879 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:31:09,525 [DEBUG][       Thread-601768][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:31:09,526 [DEBUG][       Thread-601768][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:31:09,573 [DEBUG][       Thread-601768][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:31:09,573 [DEBUG][       Thread-601768][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:31:09,576 [DEBUG][       Thread-601768][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:31:09,588 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:31:09,589 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:31:09,590 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:31:09,592 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:31:09,598 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:31:09,599 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:31:09,600 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:31:09,600 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:31:09,600 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.354460 -999.00   +9.10  37.89     56   +0.90 1 1 2 1 1   887    0 7.85 -24.31 ----- 37.9 37.9 26.0 40.6 11.4 -23.7 10.8 -23.6 10.4 -22.5 10.9 -22.3
2025-07-01 10:31:09,600 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:31:09,600 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:31:09,601 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.354460
2025-07-01 10:31:09,601 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:31:09,602 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:31:09,602 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:31:09,602 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:31:09,602 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:31:09,602 [DEBUG][       Thread-601768][   transport.py][1871] : EOF in transport thread
2025-07-01 10:31:09,602 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:30:38', tmtdew=9.66, humidity=50.81, cloud=0.0, wind=27.7, temperature=9.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:30:25.344', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:31:09,687 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:31:09,696 [DEBUG][       Thread-601771][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 10:31:09,696 [DEBUG][       Thread-601771][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:31:09,711 [DEBUG][       Thread-601771][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:31:09,712 [ INFO][       Thread-601771][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:31:09,719 [DEBUG][       Thread-601771][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:31:09,719 [DEBUG][       Thread-601771][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:31:09,720 [DEBUG][       Thread-601771][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:31:09,720 [DEBUG][       Thread-601771][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:31:09,720 [DEBUG][       Thread-601771][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:31:09,720 [DEBUG][       Thread-601771][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:31:09,720 [DEBUG][       Thread-601771][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:31:09,720 [DEBUG][       Thread-601771][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:31:09,720 [DEBUG][       Thread-601771][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:31:09,720 [DEBUG][       Thread-601771][   transport.py][1871] : client lang: <none>
2025-07-01 10:31:09,720 [DEBUG][       Thread-601771][   transport.py][1871] : server lang: <none>
2025-07-01 10:31:09,720 [DEBUG][       Thread-601771][   transport.py][1871] : kex follows: False
2025-07-01 10:31:09,720 [DEBUG][       Thread-601771][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:31:09,720 [DEBUG][       Thread-601771][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:31:09,720 [DEBUG][       Thread-601771][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:31:09,720 [DEBUG][       Thread-601771][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:31:09,720 [DEBUG][       Thread-601771][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:31:09,720 [DEBUG][       Thread-601771][   transport.py][1871] : Compression: none
2025-07-01 10:31:09,720 [DEBUG][       Thread-601771][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:31:09,777 [DEBUG][       Thread-601771][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:31:09,778 [DEBUG][       Thread-601771][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:31:09,787 [DEBUG][       Thread-601771][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:31:09,788 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:31:09,789 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:31:09,834 [DEBUG][       Thread-601771][   transport.py][1871] : userauth is OK
2025-07-01 10:31:09,834 [DEBUG][       Thread-601771][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:31:09,834 [DEBUG][       Thread-601771][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:31:09,834 [DEBUG][       Thread-601771][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:31:09,834 [DEBUG][       Thread-601771][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:31:09,853 [ INFO][       Thread-601771][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:31:09,854 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:31:09,854 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:31:10,833 [DEBUG][       Thread-601771][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:31:10,834 [DEBUG][       Thread-601771][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:31:10,884 [DEBUG][       Thread-601771][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:31:10,884 [DEBUG][       Thread-601771][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:31:10,892 [DEBUG][       Thread-601771][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:31:10,900 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:31:10,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-07-01 10:31:10,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-07-01 10:31:10,916 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:31:10,916 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:31:10,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:31:10,924 [DEBUG][       Thread-601771][   transport.py][1871] : EOF in transport thread
2025-07-01 10:31:17,732 [DEBUG][Thread-601773 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:31:20,926 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:31:20,926 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:31:20,926 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:31:20,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-07-01 10:31:21,472 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 31, 10), 9.69, 50.81, 0.0, 30.13, 9.39, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:31:21,472 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:31:10
2025-07-01 10:31:21,563 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:31:21,566 [DEBUG][       Thread-601774][   transport.py][1871] : starting thread (client mode): 0x82b1990
2025-07-01 10:31:21,566 [DEBUG][       Thread-601774][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:31:21,586 [DEBUG][       Thread-601774][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:31:21,586 [ INFO][       Thread-601774][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:31:21,589 [DEBUG][       Thread-601774][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:31:21,589 [DEBUG][       Thread-601774][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:31:21,589 [DEBUG][       Thread-601774][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:31:21,589 [DEBUG][       Thread-601774][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:31:21,589 [DEBUG][       Thread-601774][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:31:21,589 [DEBUG][       Thread-601774][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:31:21,589 [DEBUG][       Thread-601774][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:31:21,589 [DEBUG][       Thread-601774][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:31:21,589 [DEBUG][       Thread-601774][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:31:21,589 [DEBUG][       Thread-601774][   transport.py][1871] : client lang: <none>
2025-07-01 10:31:21,589 [DEBUG][       Thread-601774][   transport.py][1871] : server lang: <none>
2025-07-01 10:31:21,589 [DEBUG][       Thread-601774][   transport.py][1871] : kex follows: False
2025-07-01 10:31:21,589 [DEBUG][       Thread-601774][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:31:21,589 [DEBUG][       Thread-601774][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:31:21,589 [DEBUG][       Thread-601774][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:31:21,589 [DEBUG][       Thread-601774][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:31:21,589 [DEBUG][       Thread-601774][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:31:21,589 [DEBUG][       Thread-601774][   transport.py][1871] : Compression: none
2025-07-01 10:31:21,589 [DEBUG][       Thread-601774][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:31:21,601 [DEBUG][       Thread-601774][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:31:21,601 [DEBUG][       Thread-601774][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:31:21,601 [DEBUG][       Thread-601774][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:31:21,601 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:31:21,601 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:31:21,602 [DEBUG][       Thread-601774][   transport.py][1871] : userauth is OK
2025-07-01 10:31:21,616 [ INFO][       Thread-601774][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:31:21,616 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:31:22,269 [DEBUG][       Thread-601774][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:31:22,269 [DEBUG][       Thread-601774][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:31:22,312 [DEBUG][       Thread-601774][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:31:22,312 [DEBUG][       Thread-601774][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:31:22,313 [DEBUG][       Thread-601774][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:31:22,327 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:31:22,327 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:31:22,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:31:22,329 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:31:22,331 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:31:22,331 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:31:22,331 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:31:22,332 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:31:22,332 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.354460 -999.00   +9.10  37.89     56   +0.90 1 1 2 1 1   887    0 7.85 -24.31 ----- 37.9 37.9 26.0 40.6 11.4 -23.7 10.8 -23.6 10.4 -22.5 10.9 -22.3
2025-07-01 10:31:22,332 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:31:22,332 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:31:22,332 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.354460
2025-07-01 10:31:22,332 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:31:22,332 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:31:22,332 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:31:22,332 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:31:22,332 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:31:22,332 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:31:10', tmtdew=9.69, humidity=50.81, cloud=0.0, wind=30.13, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:30:25.344', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:31:22,332 [DEBUG][       Thread-601774][   transport.py][1871] : EOF in transport thread
2025-07-01 10:31:22,407 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:31:22,418 [DEBUG][       Thread-601777][   transport.py][1871] : starting thread (client mode): 0x8156cb0
2025-07-01 10:31:22,418 [DEBUG][       Thread-601777][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:31:22,433 [DEBUG][       Thread-601777][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:31:22,433 [ INFO][       Thread-601777][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:31:22,440 [DEBUG][       Thread-601777][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:31:22,440 [DEBUG][       Thread-601777][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:31:22,440 [DEBUG][       Thread-601777][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:31:22,440 [DEBUG][       Thread-601777][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:31:22,440 [DEBUG][       Thread-601777][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:31:22,440 [DEBUG][       Thread-601777][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:31:22,440 [DEBUG][       Thread-601777][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:31:22,440 [DEBUG][       Thread-601777][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:31:22,440 [DEBUG][       Thread-601777][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:31:22,440 [DEBUG][       Thread-601777][   transport.py][1871] : client lang: <none>
2025-07-01 10:31:22,440 [DEBUG][       Thread-601777][   transport.py][1871] : server lang: <none>
2025-07-01 10:31:22,440 [DEBUG][       Thread-601777][   transport.py][1871] : kex follows: False
2025-07-01 10:31:22,440 [DEBUG][       Thread-601777][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:31:22,440 [DEBUG][       Thread-601777][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:31:22,440 [DEBUG][       Thread-601777][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:31:22,440 [DEBUG][       Thread-601777][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:31:22,440 [DEBUG][       Thread-601777][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:31:22,440 [DEBUG][       Thread-601777][   transport.py][1871] : Compression: none
2025-07-01 10:31:22,440 [DEBUG][       Thread-601777][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:31:22,500 [DEBUG][       Thread-601777][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:31:22,500 [DEBUG][       Thread-601777][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:31:22,500 [DEBUG][       Thread-601777][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:31:22,500 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:31:22,500 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:31:22,557 [DEBUG][       Thread-601777][   transport.py][1871] : userauth is OK
2025-07-01 10:31:22,557 [DEBUG][       Thread-601777][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:31:22,557 [DEBUG][       Thread-601777][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:31:22,557 [DEBUG][       Thread-601777][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:31:22,557 [DEBUG][       Thread-601777][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:31:22,574 [ INFO][       Thread-601777][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:31:22,574 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:31:22,574 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:31:23,283 [DEBUG][Thread-601779 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:31:23,560 [DEBUG][       Thread-601777][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:31:23,560 [DEBUG][       Thread-601777][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:31:23,609 [DEBUG][       Thread-601777][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:31:23,609 [DEBUG][       Thread-601777][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:31:23,621 [DEBUG][       Thread-601777][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:31:23,634 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:31:23,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')
2025-07-01 10:31:23,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') -> 00000000
2025-07-01 10:31:23,650 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:31:23,650 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:31:23,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:31:23,658 [DEBUG][       Thread-601777][   transport.py][1871] : EOF in transport thread
2025-07-01 10:31:26,754 [DEBUG][Thread-601780 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:31:33,656 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:31:33,656 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:31:33,656 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:31:33,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-07-01 10:31:34,171 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 31, 10), 9.69, 50.81, 0.0, 30.13, 9.39, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:31:34,171 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:31:10
2025-07-01 10:31:34,258 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:31:34,263 [DEBUG][       Thread-601781][   transport.py][1871] : starting thread (client mode): 0x82b3640
2025-07-01 10:31:34,263 [DEBUG][       Thread-601781][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:31:34,283 [DEBUG][       Thread-601781][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:31:34,283 [ INFO][       Thread-601781][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:31:34,287 [DEBUG][       Thread-601781][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:31:34,287 [DEBUG][       Thread-601781][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:31:34,287 [DEBUG][       Thread-601781][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:31:34,287 [DEBUG][       Thread-601781][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:31:34,287 [DEBUG][       Thread-601781][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:31:34,287 [DEBUG][       Thread-601781][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:31:34,287 [DEBUG][       Thread-601781][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:31:34,287 [DEBUG][       Thread-601781][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:31:34,287 [DEBUG][       Thread-601781][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:31:34,287 [DEBUG][       Thread-601781][   transport.py][1871] : client lang: <none>
2025-07-01 10:31:34,287 [DEBUG][       Thread-601781][   transport.py][1871] : server lang: <none>
2025-07-01 10:31:34,287 [DEBUG][       Thread-601781][   transport.py][1871] : kex follows: False
2025-07-01 10:31:34,287 [DEBUG][       Thread-601781][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:31:34,287 [DEBUG][       Thread-601781][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:31:34,287 [DEBUG][       Thread-601781][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:31:34,287 [DEBUG][       Thread-601781][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:31:34,287 [DEBUG][       Thread-601781][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:31:34,287 [DEBUG][       Thread-601781][   transport.py][1871] : Compression: none
2025-07-01 10:31:34,287 [DEBUG][       Thread-601781][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:31:34,302 [DEBUG][       Thread-601781][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:31:34,302 [DEBUG][       Thread-601781][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:31:34,303 [DEBUG][       Thread-601781][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:31:34,303 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:31:34,303 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:31:34,304 [DEBUG][       Thread-601781][   transport.py][1871] : userauth is OK
2025-07-01 10:31:34,329 [ INFO][       Thread-601781][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:31:34,330 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:31:34,970 [DEBUG][       Thread-601781][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:31:34,970 [DEBUG][       Thread-601781][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:31:35,013 [DEBUG][       Thread-601781][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:31:35,013 [DEBUG][       Thread-601781][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:31:35,016 [DEBUG][       Thread-601781][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:31:35,030 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:31:35,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:31:35,033 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:31:35,035 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:31:35,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:31:35,042 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:31:35,043 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:31:35,043 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:31:35,043 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.354807 -999.00   +9.10  36.44     56   +0.80 1 1 2 1 1   887    0 7.73 -23.84 ----- 36.4 36.4 27.2 49.4 11.4 -23.2 10.8 -23.9 10.4 -22.9 10.9 -21.9
2025-07-01 10:31:35,043 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:31:35,043 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:31:35,044 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.354807
2025-07-01 10:31:35,044 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:31:35,044 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:31:35,045 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:31:35,045 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:31:35,045 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:31:35,045 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:31:10', tmtdew=9.69, humidity=50.81, cloud=0.0, wind=30.13, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:30:55.325', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:31:35,045 [DEBUG][       Thread-601781][   transport.py][1871] : EOF in transport thread
2025-07-01 10:31:35,128 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:31:35,138 [DEBUG][       Thread-601784][   transport.py][1871] : starting thread (client mode): 0x8106e30
2025-07-01 10:31:35,138 [DEBUG][       Thread-601784][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:31:35,153 [DEBUG][       Thread-601784][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:31:35,153 [ INFO][       Thread-601784][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:31:35,160 [DEBUG][       Thread-601784][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:31:35,160 [DEBUG][       Thread-601784][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:31:35,160 [DEBUG][       Thread-601784][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:31:35,160 [DEBUG][       Thread-601784][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:31:35,160 [DEBUG][       Thread-601784][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:31:35,160 [DEBUG][       Thread-601784][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:31:35,160 [DEBUG][       Thread-601784][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:31:35,160 [DEBUG][       Thread-601784][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:31:35,160 [DEBUG][       Thread-601784][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:31:35,160 [DEBUG][       Thread-601784][   transport.py][1871] : client lang: <none>
2025-07-01 10:31:35,160 [DEBUG][       Thread-601784][   transport.py][1871] : server lang: <none>
2025-07-01 10:31:35,160 [DEBUG][       Thread-601784][   transport.py][1871] : kex follows: False
2025-07-01 10:31:35,160 [DEBUG][       Thread-601784][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:31:35,160 [DEBUG][       Thread-601784][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:31:35,161 [DEBUG][       Thread-601784][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:31:35,161 [DEBUG][       Thread-601784][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:31:35,161 [DEBUG][       Thread-601784][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:31:35,161 [DEBUG][       Thread-601784][   transport.py][1871] : Compression: none
2025-07-01 10:31:35,161 [DEBUG][       Thread-601784][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:31:35,217 [DEBUG][       Thread-601784][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:31:35,218 [DEBUG][       Thread-601784][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:31:35,218 [DEBUG][       Thread-601784][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:31:35,219 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:31:35,219 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:31:35,278 [DEBUG][       Thread-601784][   transport.py][1871] : userauth is OK
2025-07-01 10:31:35,278 [DEBUG][       Thread-601784][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:31:35,278 [DEBUG][       Thread-601784][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:31:35,278 [DEBUG][       Thread-601784][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:31:35,278 [DEBUG][       Thread-601784][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:31:35,297 [ INFO][       Thread-601784][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:31:35,298 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:31:35,298 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:31:35,787 [DEBUG][Thread-601786 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:31:36,279 [DEBUG][       Thread-601784][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:31:36,280 [DEBUG][       Thread-601784][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:31:36,329 [DEBUG][       Thread-601784][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:31:36,330 [DEBUG][       Thread-601784][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:31:36,342 [DEBUG][       Thread-601784][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:31:36,351 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:31:36,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-07-01 10:31:36,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-07-01 10:31:36,378 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:31:36,379 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:31:36,379 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:31:36,386 [DEBUG][       Thread-601784][   transport.py][1871] : EOF in transport thread
2025-07-01 10:31:44,808 [DEBUG][Thread-601787 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:31:46,389 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:31:46,389 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:31:46,389 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:31:46,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-07-01 10:31:46,909 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 31, 42), 9.7, 50.8, 0.0, 33.63, 9.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:31:46,909 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:31:42
2025-07-01 10:31:46,996 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:31:47,000 [DEBUG][       Thread-601788][   transport.py][1871] : starting thread (client mode): 0x82b22c0
2025-07-01 10:31:47,000 [DEBUG][       Thread-601788][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:31:47,019 [DEBUG][       Thread-601788][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:31:47,019 [ INFO][       Thread-601788][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:31:47,022 [DEBUG][       Thread-601788][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:31:47,022 [DEBUG][       Thread-601788][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:31:47,022 [DEBUG][       Thread-601788][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:31:47,022 [DEBUG][       Thread-601788][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:31:47,022 [DEBUG][       Thread-601788][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:31:47,022 [DEBUG][       Thread-601788][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:31:47,022 [DEBUG][       Thread-601788][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:31:47,022 [DEBUG][       Thread-601788][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:31:47,022 [DEBUG][       Thread-601788][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:31:47,023 [DEBUG][       Thread-601788][   transport.py][1871] : client lang: <none>
2025-07-01 10:31:47,023 [DEBUG][       Thread-601788][   transport.py][1871] : server lang: <none>
2025-07-01 10:31:47,023 [DEBUG][       Thread-601788][   transport.py][1871] : kex follows: False
2025-07-01 10:31:47,023 [DEBUG][       Thread-601788][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:31:47,023 [DEBUG][       Thread-601788][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:31:47,023 [DEBUG][       Thread-601788][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:31:47,023 [DEBUG][       Thread-601788][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:31:47,023 [DEBUG][       Thread-601788][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:31:47,023 [DEBUG][       Thread-601788][   transport.py][1871] : Compression: none
2025-07-01 10:31:47,023 [DEBUG][       Thread-601788][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:31:47,040 [DEBUG][       Thread-601788][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:31:47,041 [DEBUG][       Thread-601788][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:31:47,041 [DEBUG][       Thread-601788][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:31:47,042 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:31:47,042 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:31:47,043 [DEBUG][       Thread-601788][   transport.py][1871] : userauth is OK
2025-07-01 10:31:47,068 [ INFO][       Thread-601788][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:31:47,068 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:31:47,747 [DEBUG][       Thread-601788][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:31:47,747 [DEBUG][       Thread-601788][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:31:47,789 [DEBUG][       Thread-601788][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:31:47,789 [DEBUG][       Thread-601788][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:31:47,792 [DEBUG][       Thread-601788][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:31:47,805 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:31:47,805 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:31:47,807 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:31:47,808 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:31:47,814 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:31:47,816 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:31:47,816 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:31:47,817 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:31:47,817 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.354807 -999.00   +9.10  36.44     56   +0.80 1 1 2 1 1   887    0 7.73 -23.84 ----- 36.4 36.4 27.2 49.4 11.4 -23.2 10.8 -23.9 10.4 -22.9 10.9 -21.9
2025-07-01 10:31:47,817 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:31:47,817 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:31:47,817 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.354807
2025-07-01 10:31:47,818 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:31:47,818 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:31:47,818 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:31:47,818 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:31:47,818 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:31:47,819 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:31:42', tmtdew=9.7, humidity=50.8, cloud=0.0, wind=33.63, temperature=9.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:30:55.325', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:31:47,819 [DEBUG][       Thread-601788][   transport.py][1871] : EOF in transport thread
2025-07-01 10:31:47,902 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:31:53,831 [DEBUG][Thread-601791 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:31:59,961 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:31:59,961 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:32:02,861 [DEBUG][Thread-601792 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:32:11,884 [DEBUG][Thread-601793 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:32:20,907 [DEBUG][Thread-601794 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:32:23,335 [DEBUG][Thread-601795 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:32:29,933 [DEBUG][Thread-601796 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:32:38,952 [DEBUG][Thread-601797 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:32:47,970 [DEBUG][Thread-601798 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:32:56,994 [DEBUG][Thread-601799 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:33:00,099 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:33:00,100 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:33:06,017 [DEBUG][Thread-601800 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:33:15,039 [DEBUG][Thread-601801 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:33:23,398 [DEBUG][Thread-601802 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:33:24,058 [DEBUG][Thread-601803 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:33:33,083 [DEBUG][Thread-601804 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:33:42,106 [DEBUG][Thread-601805 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:33:51,125 [DEBUG][Thread-601806 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:33:57,012 [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-07-01 10:34:00,145 [DEBUG][Thread-601807 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:34:00,238 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:34:00,239 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:34:07,020 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:34:07,020 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:34:07,020 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:34:07,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-07-01 10:34:07,552 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 33, 49), 9.73, 50.71, 0.0, 35.75, 9.51, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:34:07,552 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:33:49
2025-07-01 10:34:07,639 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:34:07,644 [DEBUG][       Thread-601808][   transport.py][1871] : starting thread (client mode): 0x82b3b80
2025-07-01 10:34:07,644 [DEBUG][       Thread-601808][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:34:07,665 [DEBUG][       Thread-601808][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:34:07,665 [ INFO][       Thread-601808][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:34:07,668 [DEBUG][       Thread-601808][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:34:07,668 [DEBUG][       Thread-601808][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:34:07,668 [DEBUG][       Thread-601808][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:34:07,668 [DEBUG][       Thread-601808][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:34:07,668 [DEBUG][       Thread-601808][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:34:07,668 [DEBUG][       Thread-601808][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:34:07,668 [DEBUG][       Thread-601808][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:34:07,668 [DEBUG][       Thread-601808][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:34:07,668 [DEBUG][       Thread-601808][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:34:07,668 [DEBUG][       Thread-601808][   transport.py][1871] : client lang: <none>
2025-07-01 10:34:07,668 [DEBUG][       Thread-601808][   transport.py][1871] : server lang: <none>
2025-07-01 10:34:07,668 [DEBUG][       Thread-601808][   transport.py][1871] : kex follows: False
2025-07-01 10:34:07,669 [DEBUG][       Thread-601808][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:34:07,669 [DEBUG][       Thread-601808][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:34:07,669 [DEBUG][       Thread-601808][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:34:07,669 [DEBUG][       Thread-601808][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:34:07,669 [DEBUG][       Thread-601808][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:34:07,669 [DEBUG][       Thread-601808][   transport.py][1871] : Compression: none
2025-07-01 10:34:07,669 [DEBUG][       Thread-601808][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:34:07,685 [DEBUG][       Thread-601808][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:34:07,686 [DEBUG][       Thread-601808][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:34:07,686 [DEBUG][       Thread-601808][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:34:07,687 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:34:07,687 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:34:07,688 [DEBUG][       Thread-601808][   transport.py][1871] : userauth is OK
2025-07-01 10:34:07,713 [ INFO][       Thread-601808][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:34:07,713 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:34:08,369 [DEBUG][       Thread-601808][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:34:08,369 [DEBUG][       Thread-601808][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:34:08,413 [DEBUG][       Thread-601808][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:34:08,413 [DEBUG][       Thread-601808][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:34:08,415 [DEBUG][       Thread-601808][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:34:08,428 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:34:08,428 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:34:08,429 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:34:08,430 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:34:08,434 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:34:08,435 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:34:08,435 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:34:08,435 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:34:08,435 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.356543 -999.00   +9.30  39.52     55   +1.00 1 2 2 1 1   887    0 7.80 -24.93 ----- 39.5 39.5 30.6 45.9 11.9 -23.0 11.1 -23.3 10.6 -22.1 11.2 -22.2
2025-07-01 10:34:08,435 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:34:08,435 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:34:08,435 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.356543
2025-07-01 10:34:08,435 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:34:08,435 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:34:08,435 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:34:08,435 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:34:08,435 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:34:08,436 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:33:49', tmtdew=9.73, humidity=50.71, cloud=0.0, wind=35.75, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:33:25.315', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:34:08,436 [DEBUG][       Thread-601808][   transport.py][1871] : EOF in transport thread
2025-07-01 10:34:08,507 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:34:09,172 [DEBUG][Thread-601811 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:34:18,216 [DEBUG][Thread-601812 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:34:23,454 [DEBUG][Thread-601813 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:34:27,240 [DEBUG][Thread-601814 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:34:36,258 [DEBUG][Thread-601815 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:34:45,277 [DEBUG][Thread-601816 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:34:54,298 [DEBUG][Thread-601817 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:35:00,376 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:35:00,378 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:35:03,318 [DEBUG][Thread-601818 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:35:12,337 [DEBUG][Thread-601819 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:35:21,355 [DEBUG][Thread-601820 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:35:23,502 [DEBUG][Thread-601821 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:35:30,377 [DEBUG][Thread-601822 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:35:39,399 [DEBUG][Thread-601823 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:35:48,419 [DEBUG][Thread-601824 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:35:57,437 [DEBUG][Thread-601825 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:36:00,515 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:36:00,516 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:36:06,458 [DEBUG][Thread-601826 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:36:15,480 [DEBUG][Thread-601827 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:36:18,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-07-01 10:36:23,550 [DEBUG][Thread-601828 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:36:24,501 [DEBUG][Thread-601829 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:36:28,332 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:36:28,332 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:36:28,332 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:36:28,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-07-01 10:36:28,854 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 35, 56), 9.55, 51.33, 0.0, 32.29, 9.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:36:28,854 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:35:56
2025-07-01 10:36:28,949 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:36:28,955 [DEBUG][       Thread-601830][   transport.py][1871] : starting thread (client mode): 0x81d8400
2025-07-01 10:36:28,955 [DEBUG][       Thread-601830][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:36:28,976 [DEBUG][       Thread-601830][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:36:28,976 [ INFO][       Thread-601830][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:36:28,979 [DEBUG][       Thread-601830][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:36:28,979 [DEBUG][       Thread-601830][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:36:28,979 [DEBUG][       Thread-601830][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:36:28,979 [DEBUG][       Thread-601830][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:36:28,979 [DEBUG][       Thread-601830][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:36:28,979 [DEBUG][       Thread-601830][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:36:28,979 [DEBUG][       Thread-601830][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:36:28,979 [DEBUG][       Thread-601830][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:36:28,979 [DEBUG][       Thread-601830][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:36:28,979 [DEBUG][       Thread-601830][   transport.py][1871] : client lang: <none>
2025-07-01 10:36:28,979 [DEBUG][       Thread-601830][   transport.py][1871] : server lang: <none>
2025-07-01 10:36:28,979 [DEBUG][       Thread-601830][   transport.py][1871] : kex follows: False
2025-07-01 10:36:28,979 [DEBUG][       Thread-601830][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:36:28,979 [DEBUG][       Thread-601830][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:36:28,979 [DEBUG][       Thread-601830][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:36:28,979 [DEBUG][       Thread-601830][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:36:28,979 [DEBUG][       Thread-601830][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:36:28,979 [DEBUG][       Thread-601830][   transport.py][1871] : Compression: none
2025-07-01 10:36:28,979 [DEBUG][       Thread-601830][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:36:28,994 [DEBUG][       Thread-601830][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:36:28,994 [DEBUG][       Thread-601830][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:36:28,994 [DEBUG][       Thread-601830][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:36:28,994 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:36:28,994 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:36:28,995 [DEBUG][       Thread-601830][   transport.py][1871] : userauth is OK
2025-07-01 10:36:29,007 [ INFO][       Thread-601830][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:36:29,008 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:36:29,791 [DEBUG][       Thread-601830][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:36:29,791 [DEBUG][       Thread-601830][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:36:29,832 [DEBUG][       Thread-601830][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:36:29,832 [DEBUG][       Thread-601830][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:36:29,835 [DEBUG][       Thread-601830][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:36:29,845 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:36:29,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:36:29,846 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:36:29,847 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:36:29,850 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:36:29,851 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:36:29,851 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:36:29,851 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:36:29,851 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.357932 -999.00   +9.40  25.95     56   +1.10 1 1 1 1 1   887    0 7.63 -25.59 ----- 25.9 25.9 22.7 47.0 11.8 -23.8 11.1 -24.0 10.6 -22.7 11.2 -22.4
2025-07-01 10:36:29,851 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:36:29,852 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:36:29,852 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.357932
2025-07-01 10:36:29,852 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:36:29,852 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:36:29,852 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:36:29,852 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:36:29,852 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:36:29,852 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:35:56', tmtdew=9.55, humidity=51.33, cloud=0.0, wind=32.29, temperature=9.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:35:25.325', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:36:29,853 [DEBUG][       Thread-601830][   transport.py][1871] : EOF in transport thread
2025-07-01 10:36:29,926 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:36:29,937 [DEBUG][       Thread-601833][   transport.py][1871] : starting thread (client mode): 0x81074f0
2025-07-01 10:36:29,937 [DEBUG][       Thread-601833][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:36:29,957 [DEBUG][       Thread-601833][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:36:29,957 [ INFO][       Thread-601833][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:36:29,965 [DEBUG][       Thread-601833][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:36:29,965 [DEBUG][       Thread-601833][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:36:29,965 [DEBUG][       Thread-601833][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:36:29,965 [DEBUG][       Thread-601833][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:36:29,965 [DEBUG][       Thread-601833][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:36:29,965 [DEBUG][       Thread-601833][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:36:29,965 [DEBUG][       Thread-601833][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:36:29,965 [DEBUG][       Thread-601833][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:36:29,965 [DEBUG][       Thread-601833][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:36:29,965 [DEBUG][       Thread-601833][   transport.py][1871] : client lang: <none>
2025-07-01 10:36:29,965 [DEBUG][       Thread-601833][   transport.py][1871] : server lang: <none>
2025-07-01 10:36:29,965 [DEBUG][       Thread-601833][   transport.py][1871] : kex follows: False
2025-07-01 10:36:29,965 [DEBUG][       Thread-601833][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:36:29,965 [DEBUG][       Thread-601833][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:36:29,965 [DEBUG][       Thread-601833][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:36:29,965 [DEBUG][       Thread-601833][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:36:29,965 [DEBUG][       Thread-601833][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:36:29,965 [DEBUG][       Thread-601833][   transport.py][1871] : Compression: none
2025-07-01 10:36:29,965 [DEBUG][       Thread-601833][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:36:30,021 [DEBUG][       Thread-601833][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:36:30,022 [DEBUG][       Thread-601833][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:36:30,022 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:36:30,022 [DEBUG][       Thread-601833][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:36:30,022 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:36:30,086 [DEBUG][       Thread-601833][   transport.py][1871] : userauth is OK
2025-07-01 10:36:30,086 [DEBUG][       Thread-601833][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:36:30,086 [DEBUG][       Thread-601833][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:36:30,087 [DEBUG][       Thread-601833][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:36:30,087 [DEBUG][       Thread-601833][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:36:30,101 [ INFO][       Thread-601833][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:36:30,101 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:36:30,101 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:36:31,141 [DEBUG][       Thread-601833][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:36:31,141 [DEBUG][       Thread-601833][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:36:31,191 [DEBUG][       Thread-601833][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:36:31,191 [DEBUG][       Thread-601833][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:36:31,199 [DEBUG][       Thread-601833][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:36:31,208 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:36:31,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-07-01 10:36:31,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-07-01 10:36:31,224 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:36:31,224 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:36:31,224 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:36:31,232 [DEBUG][       Thread-601833][   transport.py][1871] : EOF in transport thread
2025-07-01 10:36:33,520 [DEBUG][Thread-601835 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:36:41,234 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:36:41,234 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:36:41,234 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:36:41,237 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:36:41,745 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 36, 28), 9.59, 51.21, 0.0, 31.23, 9.43, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:36:41,745 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:36:28
2025-07-01 10:36:41,831 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:36:41,835 [DEBUG][       Thread-601836][   transport.py][1871] : starting thread (client mode): 0x8155d20
2025-07-01 10:36:41,835 [DEBUG][       Thread-601836][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:36:41,854 [DEBUG][       Thread-601836][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:36:41,854 [ INFO][       Thread-601836][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:36:41,858 [DEBUG][       Thread-601836][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:36:41,858 [DEBUG][       Thread-601836][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:36:41,858 [DEBUG][       Thread-601836][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:36:41,858 [DEBUG][       Thread-601836][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:36:41,858 [DEBUG][       Thread-601836][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:36:41,858 [DEBUG][       Thread-601836][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:36:41,858 [DEBUG][       Thread-601836][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:36:41,858 [DEBUG][       Thread-601836][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:36:41,858 [DEBUG][       Thread-601836][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:36:41,858 [DEBUG][       Thread-601836][   transport.py][1871] : client lang: <none>
2025-07-01 10:36:41,858 [DEBUG][       Thread-601836][   transport.py][1871] : server lang: <none>
2025-07-01 10:36:41,858 [DEBUG][       Thread-601836][   transport.py][1871] : kex follows: False
2025-07-01 10:36:41,858 [DEBUG][       Thread-601836][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:36:41,858 [DEBUG][       Thread-601836][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:36:41,858 [DEBUG][       Thread-601836][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:36:41,858 [DEBUG][       Thread-601836][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:36:41,858 [DEBUG][       Thread-601836][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:36:41,858 [DEBUG][       Thread-601836][   transport.py][1871] : Compression: none
2025-07-01 10:36:41,858 [DEBUG][       Thread-601836][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:36:41,874 [DEBUG][       Thread-601836][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:36:41,875 [DEBUG][       Thread-601836][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:36:41,875 [DEBUG][       Thread-601836][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:36:41,875 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:36:41,876 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:36:41,877 [DEBUG][       Thread-601836][   transport.py][1871] : userauth is OK
2025-07-01 10:36:41,890 [ INFO][       Thread-601836][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:36:41,891 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:36:42,482 [DEBUG][       Thread-601836][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:36:42,483 [DEBUG][       Thread-601836][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:36:42,525 [DEBUG][       Thread-601836][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:36:42,525 [DEBUG][       Thread-601836][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:36:42,528 [DEBUG][       Thread-601836][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:36:42,542 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:36:42,542 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:36:42,544 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:36:42,546 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:36:42,550 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:36:42,552 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:36:42,552 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:36:42,553 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:36:42,553 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.358627 -999.00   +9.40  30.96     55   +1.00 1 1 2 1 1   887    0 7.70 -25.93 ----- 31.0 31.0 34.4 51.3 11.8 -23.9 11.1 -24.0 10.6 -22.3 11.2 -22.8
2025-07-01 10:36:42,553 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:36:42,553 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:36:42,553 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.358627
2025-07-01 10:36:42,554 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:36:42,554 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:36:42,554 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:36:42,554 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:36:42,554 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:36:42,555 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:36:28', tmtdew=9.59, humidity=51.21, cloud=0.0, wind=31.23, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:36:25.373', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:36:42,556 [DEBUG][       Thread-601836][   transport.py][1871] : EOF in transport thread
2025-07-01 10:36:42,557 [DEBUG][Thread-601839 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:36:42,650 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:36:42,660 [DEBUG][       Thread-601840][   transport.py][1871] : starting thread (client mode): 0x818df30
2025-07-01 10:36:42,660 [DEBUG][       Thread-601840][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:36:42,675 [DEBUG][       Thread-601840][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:36:42,675 [ INFO][       Thread-601840][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:36:42,682 [DEBUG][       Thread-601840][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:36:42,683 [DEBUG][       Thread-601840][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:36:42,683 [DEBUG][       Thread-601840][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:36:42,683 [DEBUG][       Thread-601840][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:36:42,683 [DEBUG][       Thread-601840][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:36:42,683 [DEBUG][       Thread-601840][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:36:42,683 [DEBUG][       Thread-601840][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:36:42,683 [DEBUG][       Thread-601840][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:36:42,683 [DEBUG][       Thread-601840][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:36:42,683 [DEBUG][       Thread-601840][   transport.py][1871] : client lang: <none>
2025-07-01 10:36:42,683 [DEBUG][       Thread-601840][   transport.py][1871] : server lang: <none>
2025-07-01 10:36:42,683 [DEBUG][       Thread-601840][   transport.py][1871] : kex follows: False
2025-07-01 10:36:42,683 [DEBUG][       Thread-601840][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:36:42,683 [DEBUG][       Thread-601840][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:36:42,683 [DEBUG][       Thread-601840][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:36:42,683 [DEBUG][       Thread-601840][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:36:42,683 [DEBUG][       Thread-601840][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:36:42,683 [DEBUG][       Thread-601840][   transport.py][1871] : Compression: none
2025-07-01 10:36:42,683 [DEBUG][       Thread-601840][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:36:42,742 [DEBUG][       Thread-601840][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:36:42,742 [DEBUG][       Thread-601840][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:36:42,743 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:36:42,743 [DEBUG][       Thread-601840][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:36:42,744 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:36:42,798 [DEBUG][       Thread-601840][   transport.py][1871] : userauth is OK
2025-07-01 10:36:42,798 [DEBUG][       Thread-601840][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:36:42,798 [DEBUG][       Thread-601840][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:36:42,798 [DEBUG][       Thread-601840][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:36:42,799 [DEBUG][       Thread-601840][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:36:42,818 [ INFO][       Thread-601840][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:36:42,818 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:36:42,818 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:36:43,826 [DEBUG][       Thread-601840][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:36:43,826 [DEBUG][       Thread-601840][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:36:43,876 [DEBUG][       Thread-601840][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:36:43,876 [DEBUG][       Thread-601840][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:36:43,885 [DEBUG][       Thread-601840][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:36:43,896 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:36:43,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-07-01 10:36:43,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') -> 00000000
2025-07-01 10:36:43,914 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:36:43,915 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:36:43,915 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:36:43,924 [DEBUG][       Thread-601840][   transport.py][1871] : EOF in transport thread
2025-07-01 10:36:51,588 [DEBUG][Thread-601842 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:36:53,926 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:36:53,926 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:36:53,926 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:36:53,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-07-01 10:36:54,436 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 36, 28), 9.59, 51.21, 0.0, 31.23, 9.43, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:36:54,436 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:36:28
2025-07-01 10:36:54,523 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:36:54,529 [DEBUG][       Thread-601843][   transport.py][1871] : starting thread (client mode): 0x81705e0
2025-07-01 10:36:54,529 [DEBUG][       Thread-601843][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:36:54,549 [DEBUG][       Thread-601843][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:36:54,549 [ INFO][       Thread-601843][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:36:54,552 [DEBUG][       Thread-601843][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:36:54,552 [DEBUG][       Thread-601843][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:36:54,552 [DEBUG][       Thread-601843][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:36:54,553 [DEBUG][       Thread-601843][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:36:54,553 [DEBUG][       Thread-601843][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:36:54,553 [DEBUG][       Thread-601843][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:36:54,553 [DEBUG][       Thread-601843][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:36:54,553 [DEBUG][       Thread-601843][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:36:54,553 [DEBUG][       Thread-601843][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:36:54,553 [DEBUG][       Thread-601843][   transport.py][1871] : client lang: <none>
2025-07-01 10:36:54,553 [DEBUG][       Thread-601843][   transport.py][1871] : server lang: <none>
2025-07-01 10:36:54,553 [DEBUG][       Thread-601843][   transport.py][1871] : kex follows: False
2025-07-01 10:36:54,553 [DEBUG][       Thread-601843][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:36:54,553 [DEBUG][       Thread-601843][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:36:54,553 [DEBUG][       Thread-601843][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:36:54,553 [DEBUG][       Thread-601843][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:36:54,553 [DEBUG][       Thread-601843][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:36:54,553 [DEBUG][       Thread-601843][   transport.py][1871] : Compression: none
2025-07-01 10:36:54,553 [DEBUG][       Thread-601843][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:36:54,569 [DEBUG][       Thread-601843][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:36:54,570 [DEBUG][       Thread-601843][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:36:54,570 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:36:54,571 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:36:54,571 [DEBUG][       Thread-601843][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:36:54,572 [DEBUG][       Thread-601843][   transport.py][1871] : userauth is OK
2025-07-01 10:36:54,585 [ INFO][       Thread-601843][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:36:54,586 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:36:55,395 [DEBUG][       Thread-601843][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:36:55,395 [DEBUG][       Thread-601843][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:36:55,437 [DEBUG][       Thread-601843][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:36:55,437 [DEBUG][       Thread-601843][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:36:55,441 [DEBUG][       Thread-601843][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:36:55,455 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:36:55,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:36:55,458 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:36:55,460 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:36:55,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:36:55,467 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:36:55,467 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:36:55,468 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:36:55,468 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.358627 -999.00   +9.40  30.96     55   +1.00 1 1 2 1 1   887    0 7.70 -25.93 ----- 31.0 31.0 34.4 51.3 11.8 -23.9 11.1 -24.0 10.6 -22.3 11.2 -22.8
2025-07-01 10:36:55,468 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:36:55,468 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:36:55,468 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.358627
2025-07-01 10:36:55,468 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:36:55,469 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:36:55,469 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:36:55,469 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:36:55,469 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:36:55,470 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:36:28', tmtdew=9.59, humidity=51.21, cloud=0.0, wind=31.23, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:36:25.373', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:36:55,470 [DEBUG][       Thread-601843][   transport.py][1871] : EOF in transport thread
2025-07-01 10:36:55,553 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:36:55,563 [DEBUG][       Thread-601846][   transport.py][1871] : starting thread (client mode): 0x81a6e90
2025-07-01 10:36:55,563 [DEBUG][       Thread-601846][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:36:55,577 [DEBUG][       Thread-601846][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:36:55,577 [ INFO][       Thread-601846][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:36:55,585 [DEBUG][       Thread-601846][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:36:55,585 [DEBUG][       Thread-601846][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:36:55,585 [DEBUG][       Thread-601846][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:36:55,585 [DEBUG][       Thread-601846][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:36:55,585 [DEBUG][       Thread-601846][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:36:55,585 [DEBUG][       Thread-601846][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:36:55,585 [DEBUG][       Thread-601846][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:36:55,585 [DEBUG][       Thread-601846][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:36:55,585 [DEBUG][       Thread-601846][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:36:55,585 [DEBUG][       Thread-601846][   transport.py][1871] : client lang: <none>
2025-07-01 10:36:55,585 [DEBUG][       Thread-601846][   transport.py][1871] : server lang: <none>
2025-07-01 10:36:55,585 [DEBUG][       Thread-601846][   transport.py][1871] : kex follows: False
2025-07-01 10:36:55,585 [DEBUG][       Thread-601846][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:36:55,586 [DEBUG][       Thread-601846][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:36:55,586 [DEBUG][       Thread-601846][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:36:55,586 [DEBUG][       Thread-601846][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:36:55,586 [DEBUG][       Thread-601846][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:36:55,586 [DEBUG][       Thread-601846][   transport.py][1871] : Compression: none
2025-07-01 10:36:55,586 [DEBUG][       Thread-601846][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:36:55,640 [DEBUG][       Thread-601846][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:36:55,640 [DEBUG][       Thread-601846][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:36:55,640 [DEBUG][       Thread-601846][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:36:55,640 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:36:55,640 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:36:55,697 [DEBUG][       Thread-601846][   transport.py][1871] : userauth is OK
2025-07-01 10:36:55,697 [DEBUG][       Thread-601846][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:36:55,697 [DEBUG][       Thread-601846][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:36:55,697 [DEBUG][       Thread-601846][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:36:55,697 [DEBUG][       Thread-601846][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:36:55,711 [ INFO][       Thread-601846][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:36:55,711 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:36:55,711 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:36:56,704 [DEBUG][       Thread-601846][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:36:56,704 [DEBUG][       Thread-601846][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:36:56,756 [DEBUG][       Thread-601846][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:36:56,757 [DEBUG][       Thread-601846][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:36:56,768 [DEBUG][       Thread-601846][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:36:56,780 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:36:56,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-07-01 10:36:56,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-07-01 10:36:56,806 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:36:56,806 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:36:56,806 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:36:56,817 [DEBUG][       Thread-601846][   transport.py][1871] : EOF in transport thread
2025-07-01 10:37:00,608 [DEBUG][Thread-601848 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:37:00,654 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:37:00,654 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:37:06,816 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:37:06,816 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:37:06,816 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:37:06,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-07-01 10:37:07,334 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 36, 28), 9.59, 51.21, 0.0, 31.23, 9.43, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:37:07,334 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:36:28
2025-07-01 10:37:07,425 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:37:07,430 [DEBUG][       Thread-601849][   transport.py][1871] : starting thread (client mode): 0x8173910
2025-07-01 10:37:07,430 [DEBUG][       Thread-601849][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:37:07,448 [DEBUG][       Thread-601849][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:37:07,448 [ INFO][       Thread-601849][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:37:07,450 [DEBUG][       Thread-601849][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:37:07,450 [DEBUG][       Thread-601849][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:37:07,450 [DEBUG][       Thread-601849][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:37:07,450 [DEBUG][       Thread-601849][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:37:07,450 [DEBUG][       Thread-601849][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:37:07,450 [DEBUG][       Thread-601849][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:37:07,450 [DEBUG][       Thread-601849][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:37:07,450 [DEBUG][       Thread-601849][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:37:07,450 [DEBUG][       Thread-601849][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:37:07,450 [DEBUG][       Thread-601849][   transport.py][1871] : client lang: <none>
2025-07-01 10:37:07,450 [DEBUG][       Thread-601849][   transport.py][1871] : server lang: <none>
2025-07-01 10:37:07,450 [DEBUG][       Thread-601849][   transport.py][1871] : kex follows: False
2025-07-01 10:37:07,450 [DEBUG][       Thread-601849][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:37:07,450 [DEBUG][       Thread-601849][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:37:07,450 [DEBUG][       Thread-601849][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:37:07,450 [DEBUG][       Thread-601849][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:37:07,450 [DEBUG][       Thread-601849][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:37:07,450 [DEBUG][       Thread-601849][   transport.py][1871] : Compression: none
2025-07-01 10:37:07,450 [DEBUG][       Thread-601849][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:37:07,457 [DEBUG][       Thread-601849][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:37:07,457 [DEBUG][       Thread-601849][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:37:07,457 [DEBUG][       Thread-601849][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:37:07,457 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:37:07,457 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:37:07,458 [DEBUG][       Thread-601849][   transport.py][1871] : userauth is OK
2025-07-01 10:37:07,471 [ INFO][       Thread-601849][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:37:07,471 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:37:08,068 [DEBUG][       Thread-601849][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:37:08,068 [DEBUG][       Thread-601849][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:37:08,112 [DEBUG][       Thread-601849][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:37:08,113 [DEBUG][       Thread-601849][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:37:08,117 [DEBUG][       Thread-601849][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:37:08,128 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:37:08,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:37:08,129 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:37:08,130 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:37:08,133 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:37:08,134 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:37:08,134 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:37:08,134 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:37:08,134 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.358974 -999.00   +9.40  31.77     55   +1.00 1 2 2 1 1   887    0 7.63 -27.28 ----- 31.8 31.8 33.4 43.7 11.8 -23.4 11.1 -23.5 10.6 -22.2 11.3 -22.0
2025-07-01 10:37:08,134 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:37:08,134 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:37:08,134 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.358974
2025-07-01 10:37:08,134 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:37:08,134 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:37:08,134 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:37:08,134 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:37:08,134 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:37:08,134 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:36:28', tmtdew=9.59, humidity=51.21, cloud=0.0, wind=31.23, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:36:55.354', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:37:08,135 [DEBUG][       Thread-601849][   transport.py][1871] : EOF in transport thread
2025-07-01 10:37:08,209 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:37:08,218 [DEBUG][       Thread-601852][   transport.py][1871] : starting thread (client mode): 0x75ab7c0
2025-07-01 10:37:08,219 [DEBUG][       Thread-601852][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:37:08,239 [DEBUG][       Thread-601852][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:37:08,239 [ INFO][       Thread-601852][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:37:08,251 [DEBUG][       Thread-601852][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:37:08,251 [DEBUG][       Thread-601852][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:37:08,251 [DEBUG][       Thread-601852][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:37:08,251 [DEBUG][       Thread-601852][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:37:08,251 [DEBUG][       Thread-601852][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:37:08,251 [DEBUG][       Thread-601852][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:37:08,251 [DEBUG][       Thread-601852][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:37:08,251 [DEBUG][       Thread-601852][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:37:08,251 [DEBUG][       Thread-601852][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:37:08,251 [DEBUG][       Thread-601852][   transport.py][1871] : client lang: <none>
2025-07-01 10:37:08,251 [DEBUG][       Thread-601852][   transport.py][1871] : server lang: <none>
2025-07-01 10:37:08,251 [DEBUG][       Thread-601852][   transport.py][1871] : kex follows: False
2025-07-01 10:37:08,251 [DEBUG][       Thread-601852][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:37:08,251 [DEBUG][       Thread-601852][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:37:08,251 [DEBUG][       Thread-601852][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:37:08,251 [DEBUG][       Thread-601852][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:37:08,251 [DEBUG][       Thread-601852][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:37:08,251 [DEBUG][       Thread-601852][   transport.py][1871] : Compression: none
2025-07-01 10:37:08,251 [DEBUG][       Thread-601852][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:37:08,309 [DEBUG][       Thread-601852][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:37:08,309 [DEBUG][       Thread-601852][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:37:08,309 [DEBUG][       Thread-601852][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:37:08,309 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:37:08,310 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:37:08,372 [DEBUG][       Thread-601852][   transport.py][1871] : userauth is OK
2025-07-01 10:37:08,372 [DEBUG][       Thread-601852][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:37:08,372 [DEBUG][       Thread-601852][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:37:08,372 [DEBUG][       Thread-601852][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:37:08,372 [DEBUG][       Thread-601852][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:37:08,386 [ INFO][       Thread-601852][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:37:08,386 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:37:08,387 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:37:09,449 [DEBUG][       Thread-601852][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:37:09,449 [DEBUG][       Thread-601852][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:37:09,499 [DEBUG][       Thread-601852][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:37:09,499 [DEBUG][       Thread-601852][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:37:09,507 [DEBUG][       Thread-601852][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:37:09,515 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:37:09,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-07-01 10:37:09,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-07-01 10:37:09,531 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:37:09,531 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:37:09,531 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:37:09,539 [DEBUG][       Thread-601852][   transport.py][1871] : EOF in transport thread
2025-07-01 10:37:09,624 [DEBUG][Thread-601854 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:37:18,657 [DEBUG][Thread-601855 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:37:19,536 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:37:19,536 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:37:19,536 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:37:19,540 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:37:20,046 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 36, 28), 9.59, 51.21, 0.0, 31.23, 9.43, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:37:20,046 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:36:28
2025-07-01 10:37:20,131 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:37:20,136 [DEBUG][       Thread-601856][   transport.py][1871] : starting thread (client mode): 0x75a9fc0
2025-07-01 10:37:20,136 [DEBUG][       Thread-601856][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:37:20,151 [DEBUG][       Thread-601856][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:37:20,152 [ INFO][       Thread-601856][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:37:20,155 [DEBUG][       Thread-601856][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:37:20,155 [DEBUG][       Thread-601856][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:37:20,155 [DEBUG][       Thread-601856][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:37:20,155 [DEBUG][       Thread-601856][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:37:20,155 [DEBUG][       Thread-601856][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:37:20,155 [DEBUG][       Thread-601856][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:37:20,155 [DEBUG][       Thread-601856][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:37:20,155 [DEBUG][       Thread-601856][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:37:20,155 [DEBUG][       Thread-601856][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:37:20,155 [DEBUG][       Thread-601856][   transport.py][1871] : client lang: <none>
2025-07-01 10:37:20,155 [DEBUG][       Thread-601856][   transport.py][1871] : server lang: <none>
2025-07-01 10:37:20,155 [DEBUG][       Thread-601856][   transport.py][1871] : kex follows: False
2025-07-01 10:37:20,155 [DEBUG][       Thread-601856][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:37:20,155 [DEBUG][       Thread-601856][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:37:20,155 [DEBUG][       Thread-601856][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:37:20,155 [DEBUG][       Thread-601856][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:37:20,155 [DEBUG][       Thread-601856][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:37:20,155 [DEBUG][       Thread-601856][   transport.py][1871] : Compression: none
2025-07-01 10:37:20,155 [DEBUG][       Thread-601856][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:37:20,171 [DEBUG][       Thread-601856][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:37:20,171 [DEBUG][       Thread-601856][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:37:20,172 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:37:20,172 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:37:20,172 [DEBUG][       Thread-601856][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:37:20,173 [DEBUG][       Thread-601856][   transport.py][1871] : userauth is OK
2025-07-01 10:37:20,198 [ INFO][       Thread-601856][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:37:20,198 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:37:21,052 [DEBUG][       Thread-601856][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:37:21,052 [DEBUG][       Thread-601856][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:37:21,093 [DEBUG][       Thread-601856][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:37:21,093 [DEBUG][       Thread-601856][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:37:21,096 [DEBUG][       Thread-601856][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:37:21,110 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:37:21,110 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:37:21,112 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:37:21,113 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:37:21,118 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:37:21,120 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:37:21,120 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:37:21,121 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:37:21,121 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.358974 -999.00   +9.40  31.77     55   +1.00 1 2 2 1 1   887    0 7.63 -27.28 ----- 31.8 31.8 33.4 43.7 11.8 -23.4 11.1 -23.5 10.6 -22.2 11.3 -22.0
2025-07-01 10:37:21,121 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:37:21,121 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:37:21,121 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.358974
2025-07-01 10:37:21,122 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:37:21,122 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:37:21,122 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:37:21,122 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:37:21,123 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:37:21,123 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:36:28', tmtdew=9.59, humidity=51.21, cloud=0.0, wind=31.23, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:36:55.354', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:37:21,123 [DEBUG][       Thread-601856][   transport.py][1871] : EOF in transport thread
2025-07-01 10:37:21,206 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:37:21,226 [DEBUG][       Thread-601859][   transport.py][1871] : starting thread (client mode): 0x81e58d0
2025-07-01 10:37:21,227 [DEBUG][       Thread-601859][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:37:21,244 [DEBUG][       Thread-601859][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:37:21,244 [ INFO][       Thread-601859][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:37:21,254 [DEBUG][       Thread-601859][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:37:21,254 [DEBUG][       Thread-601859][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:37:21,254 [DEBUG][       Thread-601859][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:37:21,254 [DEBUG][       Thread-601859][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:37:21,254 [DEBUG][       Thread-601859][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:37:21,255 [DEBUG][       Thread-601859][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:37:21,255 [DEBUG][       Thread-601859][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:37:21,255 [DEBUG][       Thread-601859][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:37:21,255 [DEBUG][       Thread-601859][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:37:21,255 [DEBUG][       Thread-601859][   transport.py][1871] : client lang: <none>
2025-07-01 10:37:21,255 [DEBUG][       Thread-601859][   transport.py][1871] : server lang: <none>
2025-07-01 10:37:21,255 [DEBUG][       Thread-601859][   transport.py][1871] : kex follows: False
2025-07-01 10:37:21,255 [DEBUG][       Thread-601859][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:37:21,255 [DEBUG][       Thread-601859][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:37:21,255 [DEBUG][       Thread-601859][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:37:21,255 [DEBUG][       Thread-601859][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:37:21,255 [DEBUG][       Thread-601859][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:37:21,255 [DEBUG][       Thread-601859][   transport.py][1871] : Compression: none
2025-07-01 10:37:21,255 [DEBUG][       Thread-601859][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:37:21,315 [DEBUG][       Thread-601859][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:37:21,316 [DEBUG][       Thread-601859][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:37:21,316 [DEBUG][       Thread-601859][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:37:21,316 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:37:21,317 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:37:21,381 [DEBUG][       Thread-601859][   transport.py][1871] : userauth is OK
2025-07-01 10:37:21,381 [DEBUG][       Thread-601859][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:37:21,381 [DEBUG][       Thread-601859][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:37:21,381 [DEBUG][       Thread-601859][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:37:21,381 [DEBUG][       Thread-601859][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:37:21,400 [ INFO][       Thread-601859][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:37:21,400 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:37:21,400 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:37:22,394 [DEBUG][       Thread-601859][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:37:22,395 [DEBUG][       Thread-601859][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:37:22,447 [DEBUG][       Thread-601859][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:37:22,447 [DEBUG][       Thread-601859][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:37:22,463 [DEBUG][       Thread-601859][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:37:22,478 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:37:22,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-07-01 10:37:22,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-07-01 10:37:22,508 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:37:22,509 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:37:22,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:37:22,524 [DEBUG][       Thread-601859][   transport.py][1871] : EOF in transport thread
2025-07-01 10:37:23,602 [DEBUG][Thread-601861 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:37:27,678 [DEBUG][Thread-601862 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:37:32,516 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:37:32,516 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:37:32,516 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:37:32,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-07-01 10:37:33,048 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 36, 28), 9.59, 51.21, 0.0, 31.23, 9.43, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:37:33,048 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:36:28
2025-07-01 10:37:33,141 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:37:33,147 [DEBUG][       Thread-601863][   transport.py][1871] : starting thread (client mode): 0x75abd90
2025-07-01 10:37:33,147 [DEBUG][       Thread-601863][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:37:33,168 [DEBUG][       Thread-601863][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:37:33,168 [ INFO][       Thread-601863][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:37:33,171 [DEBUG][       Thread-601863][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:37:33,171 [DEBUG][       Thread-601863][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:37:33,171 [DEBUG][       Thread-601863][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:37:33,171 [DEBUG][       Thread-601863][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:37:33,171 [DEBUG][       Thread-601863][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:37:33,171 [DEBUG][       Thread-601863][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:37:33,171 [DEBUG][       Thread-601863][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:37:33,171 [DEBUG][       Thread-601863][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:37:33,171 [DEBUG][       Thread-601863][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:37:33,171 [DEBUG][       Thread-601863][   transport.py][1871] : client lang: <none>
2025-07-01 10:37:33,171 [DEBUG][       Thread-601863][   transport.py][1871] : server lang: <none>
2025-07-01 10:37:33,171 [DEBUG][       Thread-601863][   transport.py][1871] : kex follows: False
2025-07-01 10:37:33,171 [DEBUG][       Thread-601863][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:37:33,171 [DEBUG][       Thread-601863][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:37:33,171 [DEBUG][       Thread-601863][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:37:33,171 [DEBUG][       Thread-601863][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:37:33,171 [DEBUG][       Thread-601863][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:37:33,171 [DEBUG][       Thread-601863][   transport.py][1871] : Compression: none
2025-07-01 10:37:33,171 [DEBUG][       Thread-601863][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:37:33,180 [DEBUG][       Thread-601863][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:37:33,180 [DEBUG][       Thread-601863][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:37:33,180 [DEBUG][       Thread-601863][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:37:33,180 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:37:33,180 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:37:33,181 [DEBUG][       Thread-601863][   transport.py][1871] : userauth is OK
2025-07-01 10:37:33,205 [ INFO][       Thread-601863][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:37:33,205 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:37:34,039 [DEBUG][       Thread-601863][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:37:34,039 [DEBUG][       Thread-601863][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:37:34,081 [DEBUG][       Thread-601863][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:37:34,081 [DEBUG][       Thread-601863][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:37:34,084 [DEBUG][       Thread-601863][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:37:34,096 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:37:34,096 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:37:34,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:37:34,100 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:37:34,104 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:37:34,106 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:37:34,106 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:37:34,107 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:37:34,107 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.358974 -999.00   +9.40  31.77     55   +1.00 1 2 2 1 1   887    0 7.63 -27.28 ----- 31.8 31.8 33.4 43.7 11.8 -23.4 11.1 -23.5 10.6 -22.2 11.3 -22.0
2025-07-01 10:37:34,107 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:37:34,107 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:37:34,107 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.358974
2025-07-01 10:37:34,107 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:37:34,108 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:37:34,108 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:37:34,108 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:37:34,108 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:37:34,108 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:36:28', tmtdew=9.59, humidity=51.21, cloud=0.0, wind=31.23, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:36:55.354', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:37:34,109 [DEBUG][       Thread-601863][   transport.py][1871] : EOF in transport thread
2025-07-01 10:37:34,193 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:37:34,203 [DEBUG][       Thread-601866][   transport.py][1871] : starting thread (client mode): 0x8a65e70
2025-07-01 10:37:34,203 [DEBUG][       Thread-601866][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:37:34,221 [DEBUG][       Thread-601866][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:37:34,221 [ INFO][       Thread-601866][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:37:34,230 [DEBUG][       Thread-601866][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:37:34,231 [DEBUG][       Thread-601866][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:37:34,231 [DEBUG][       Thread-601866][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:37:34,231 [DEBUG][       Thread-601866][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:37:34,231 [DEBUG][       Thread-601866][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:37:34,231 [DEBUG][       Thread-601866][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:37:34,231 [DEBUG][       Thread-601866][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:37:34,231 [DEBUG][       Thread-601866][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:37:34,231 [DEBUG][       Thread-601866][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:37:34,231 [DEBUG][       Thread-601866][   transport.py][1871] : client lang: <none>
2025-07-01 10:37:34,231 [DEBUG][       Thread-601866][   transport.py][1871] : server lang: <none>
2025-07-01 10:37:34,231 [DEBUG][       Thread-601866][   transport.py][1871] : kex follows: False
2025-07-01 10:37:34,231 [DEBUG][       Thread-601866][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:37:34,231 [DEBUG][       Thread-601866][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:37:34,231 [DEBUG][       Thread-601866][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:37:34,231 [DEBUG][       Thread-601866][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:37:34,232 [DEBUG][       Thread-601866][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:37:34,232 [DEBUG][       Thread-601866][   transport.py][1871] : Compression: none
2025-07-01 10:37:34,232 [DEBUG][       Thread-601866][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:37:34,290 [DEBUG][       Thread-601866][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:37:34,290 [DEBUG][       Thread-601866][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:37:34,291 [DEBUG][       Thread-601866][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:37:34,291 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:37:34,292 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:37:34,346 [DEBUG][       Thread-601866][   transport.py][1871] : userauth is OK
2025-07-01 10:37:34,346 [DEBUG][       Thread-601866][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:37:34,346 [DEBUG][       Thread-601866][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:37:34,346 [DEBUG][       Thread-601866][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:37:34,347 [DEBUG][       Thread-601866][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:37:34,367 [ INFO][       Thread-601866][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:37:34,368 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:37:34,368 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:37:35,365 [DEBUG][       Thread-601866][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:37:35,365 [DEBUG][       Thread-601866][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:37:35,418 [DEBUG][       Thread-601866][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:37:35,419 [DEBUG][       Thread-601866][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:37:35,431 [DEBUG][       Thread-601866][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:37:35,440 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:37:35,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-07-01 10:37:35,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-07-01 10:37:35,458 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:37:35,458 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:37:35,459 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:37:35,467 [DEBUG][       Thread-601866][   transport.py][1871] : EOF in transport thread
2025-07-01 10:37:36,699 [DEBUG][Thread-601868 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:37:45,468 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:37:45,468 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:37:45,468 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:37:45,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-07-01 10:37:45,718 [DEBUG][Thread-601869 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:37:45,961 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 37, 31), 9.62, 51.24, 0.0, 35.55, 9.47, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:37:45,961 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:37:31
2025-07-01 10:37:46,053 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:37:46,057 [DEBUG][       Thread-601870][   transport.py][1871] : starting thread (client mode): 0x75a9660
2025-07-01 10:37:46,057 [DEBUG][       Thread-601870][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:37:46,078 [DEBUG][       Thread-601870][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:37:46,078 [ INFO][       Thread-601870][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:37:46,081 [DEBUG][       Thread-601870][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:37:46,081 [DEBUG][       Thread-601870][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:37:46,081 [DEBUG][       Thread-601870][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:37:46,081 [DEBUG][       Thread-601870][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:37:46,081 [DEBUG][       Thread-601870][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:37:46,081 [DEBUG][       Thread-601870][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:37:46,081 [DEBUG][       Thread-601870][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:37:46,081 [DEBUG][       Thread-601870][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:37:46,081 [DEBUG][       Thread-601870][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:37:46,081 [DEBUG][       Thread-601870][   transport.py][1871] : client lang: <none>
2025-07-01 10:37:46,081 [DEBUG][       Thread-601870][   transport.py][1871] : server lang: <none>
2025-07-01 10:37:46,081 [DEBUG][       Thread-601870][   transport.py][1871] : kex follows: False
2025-07-01 10:37:46,081 [DEBUG][       Thread-601870][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:37:46,081 [DEBUG][       Thread-601870][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:37:46,081 [DEBUG][       Thread-601870][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:37:46,081 [DEBUG][       Thread-601870][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:37:46,081 [DEBUG][       Thread-601870][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:37:46,081 [DEBUG][       Thread-601870][   transport.py][1871] : Compression: none
2025-07-01 10:37:46,081 [DEBUG][       Thread-601870][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:37:46,097 [DEBUG][       Thread-601870][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:37:46,097 [DEBUG][       Thread-601870][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:37:46,097 [DEBUG][       Thread-601870][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:37:46,098 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:37:46,098 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:37:46,098 [DEBUG][       Thread-601870][   transport.py][1871] : userauth is OK
2025-07-01 10:37:46,122 [ INFO][       Thread-601870][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:37:46,122 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:37:46,767 [DEBUG][       Thread-601870][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:37:46,767 [DEBUG][       Thread-601870][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:37:46,808 [DEBUG][       Thread-601870][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:37:46,808 [DEBUG][       Thread-601870][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:37:46,811 [DEBUG][       Thread-601870][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:37:46,825 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:37:46,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:37:46,826 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:37:46,826 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:37:46,829 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:37:46,830 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:37:46,830 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:37:46,830 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:37:46,830 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.359321 -999.00   +9.50  31.00     55   +1.10 1 2 2 1 1   887    0 7.52 -27.87 ----- 31.0 31.0 24.2 37.8 11.8 -23.5 11.2 -23.1 10.6 -22.6 11.2 -22.2
2025-07-01 10:37:46,830 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:37:46,830 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:37:46,830 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.359321
2025-07-01 10:37:46,830 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:37:46,830 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:37:46,830 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:37:46,830 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:37:46,830 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:37:46,830 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:37:31', tmtdew=9.62, humidity=51.24, cloud=0.0, wind=35.55, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:37:25.334', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:37:46,831 [DEBUG][       Thread-601870][   transport.py][1871] : EOF in transport thread
2025-07-01 10:37:46,904 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:37:46,914 [DEBUG][       Thread-601873][   transport.py][1871] : starting thread (client mode): 0x8393b80
2025-07-01 10:37:46,914 [DEBUG][       Thread-601873][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:37:46,928 [DEBUG][       Thread-601873][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:37:46,928 [ INFO][       Thread-601873][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:37:46,936 [DEBUG][       Thread-601873][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:37:46,936 [DEBUG][       Thread-601873][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:37:46,936 [DEBUG][       Thread-601873][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:37:46,936 [DEBUG][       Thread-601873][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:37:46,936 [DEBUG][       Thread-601873][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:37:46,936 [DEBUG][       Thread-601873][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:37:46,936 [DEBUG][       Thread-601873][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:37:46,936 [DEBUG][       Thread-601873][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:37:46,936 [DEBUG][       Thread-601873][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:37:46,936 [DEBUG][       Thread-601873][   transport.py][1871] : client lang: <none>
2025-07-01 10:37:46,936 [DEBUG][       Thread-601873][   transport.py][1871] : server lang: <none>
2025-07-01 10:37:46,936 [DEBUG][       Thread-601873][   transport.py][1871] : kex follows: False
2025-07-01 10:37:46,936 [DEBUG][       Thread-601873][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:37:46,936 [DEBUG][       Thread-601873][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:37:46,936 [DEBUG][       Thread-601873][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:37:46,936 [DEBUG][       Thread-601873][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:37:46,936 [DEBUG][       Thread-601873][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:37:46,936 [DEBUG][       Thread-601873][   transport.py][1871] : Compression: none
2025-07-01 10:37:46,936 [DEBUG][       Thread-601873][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:37:46,993 [DEBUG][       Thread-601873][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:37:46,993 [DEBUG][       Thread-601873][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:37:46,993 [DEBUG][       Thread-601873][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:37:46,993 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:37:46,993 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:37:47,054 [DEBUG][       Thread-601873][   transport.py][1871] : userauth is OK
2025-07-01 10:37:47,054 [DEBUG][       Thread-601873][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:37:47,054 [DEBUG][       Thread-601873][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:37:47,054 [DEBUG][       Thread-601873][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:37:47,055 [DEBUG][       Thread-601873][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:37:47,071 [ INFO][       Thread-601873][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:37:47,071 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:37:47,071 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:37:48,047 [DEBUG][       Thread-601873][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:37:48,047 [DEBUG][       Thread-601873][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:37:48,095 [DEBUG][       Thread-601873][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:37:48,095 [DEBUG][       Thread-601873][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:37:48,104 [DEBUG][       Thread-601873][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:37:48,111 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:37:48,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-07-01 10:37:48,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-07-01 10:37:48,128 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:37:48,128 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:37:48,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:37:48,135 [DEBUG][       Thread-601873][   transport.py][1871] : EOF in transport thread
2025-07-01 10:37:54,737 [DEBUG][Thread-601875 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:37:58,138 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:37:58,138 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:37:58,138 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:37:58,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-07-01 10:37:58,638 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 37, 31), 9.62, 51.24, 0.0, 35.55, 9.47, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:37:58,638 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:37:31
2025-07-01 10:37:58,723 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:37:58,729 [DEBUG][       Thread-601876][   transport.py][1871] : starting thread (client mode): 0x75a90f0
2025-07-01 10:37:58,729 [DEBUG][       Thread-601876][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:37:58,744 [DEBUG][       Thread-601876][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:37:58,744 [ INFO][       Thread-601876][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:37:58,746 [DEBUG][       Thread-601876][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:37:58,746 [DEBUG][       Thread-601876][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:37:58,746 [DEBUG][       Thread-601876][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:37:58,746 [DEBUG][       Thread-601876][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:37:58,746 [DEBUG][       Thread-601876][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:37:58,746 [DEBUG][       Thread-601876][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:37:58,746 [DEBUG][       Thread-601876][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:37:58,746 [DEBUG][       Thread-601876][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:37:58,746 [DEBUG][       Thread-601876][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:37:58,746 [DEBUG][       Thread-601876][   transport.py][1871] : client lang: <none>
2025-07-01 10:37:58,746 [DEBUG][       Thread-601876][   transport.py][1871] : server lang: <none>
2025-07-01 10:37:58,746 [DEBUG][       Thread-601876][   transport.py][1871] : kex follows: False
2025-07-01 10:37:58,746 [DEBUG][       Thread-601876][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:37:58,746 [DEBUG][       Thread-601876][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:37:58,746 [DEBUG][       Thread-601876][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:37:58,746 [DEBUG][       Thread-601876][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:37:58,746 [DEBUG][       Thread-601876][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:37:58,746 [DEBUG][       Thread-601876][   transport.py][1871] : Compression: none
2025-07-01 10:37:58,746 [DEBUG][       Thread-601876][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:37:58,754 [DEBUG][       Thread-601876][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:37:58,754 [DEBUG][       Thread-601876][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:37:58,754 [DEBUG][       Thread-601876][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:37:58,754 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:37:58,755 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:37:58,755 [DEBUG][       Thread-601876][   transport.py][1871] : userauth is OK
2025-07-01 10:37:58,768 [ INFO][       Thread-601876][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:37:58,768 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:37:59,623 [DEBUG][       Thread-601876][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:37:59,623 [DEBUG][       Thread-601876][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:37:59,665 [DEBUG][       Thread-601876][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:37:59,665 [DEBUG][       Thread-601876][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:37:59,669 [DEBUG][       Thread-601876][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:37:59,675 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:37:59,676 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:37:59,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:37:59,679 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:37:59,684 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:37:59,686 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:37:59,686 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:37:59,687 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:37:59,687 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.359321 -999.00   +9.50  31.00     55   +1.10 1 2 2 1 1   887    0 7.52 -27.87 ----- 31.0 31.0 24.2 37.8 11.8 -23.5 11.2 -23.1 10.6 -22.6 11.2 -22.2
2025-07-01 10:37:59,687 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:37:59,687 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:37:59,687 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.359321
2025-07-01 10:37:59,688 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:37:59,688 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:37:59,688 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:37:59,689 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:37:59,689 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:37:59,689 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:37:31', tmtdew=9.62, humidity=51.24, cloud=0.0, wind=35.55, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:37:25.334', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:37:59,690 [DEBUG][       Thread-601876][   transport.py][1871] : EOF in transport thread
2025-07-01 10:37:59,772 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:37:59,782 [DEBUG][       Thread-601879][   transport.py][1871] : starting thread (client mode): 0x818df30
2025-07-01 10:37:59,782 [DEBUG][       Thread-601879][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:37:59,797 [DEBUG][       Thread-601879][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:37:59,797 [ INFO][       Thread-601879][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:37:59,809 [DEBUG][       Thread-601879][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:37:59,809 [DEBUG][       Thread-601879][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:37:59,809 [DEBUG][       Thread-601879][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:37:59,809 [DEBUG][       Thread-601879][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:37:59,809 [DEBUG][       Thread-601879][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:37:59,809 [DEBUG][       Thread-601879][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:37:59,810 [DEBUG][       Thread-601879][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:37:59,810 [DEBUG][       Thread-601879][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:37:59,810 [DEBUG][       Thread-601879][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:37:59,810 [DEBUG][       Thread-601879][   transport.py][1871] : client lang: <none>
2025-07-01 10:37:59,810 [DEBUG][       Thread-601879][   transport.py][1871] : server lang: <none>
2025-07-01 10:37:59,810 [DEBUG][       Thread-601879][   transport.py][1871] : kex follows: False
2025-07-01 10:37:59,810 [DEBUG][       Thread-601879][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:37:59,810 [DEBUG][       Thread-601879][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:37:59,810 [DEBUG][       Thread-601879][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:37:59,810 [DEBUG][       Thread-601879][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:37:59,810 [DEBUG][       Thread-601879][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:37:59,810 [DEBUG][       Thread-601879][   transport.py][1871] : Compression: none
2025-07-01 10:37:59,810 [DEBUG][       Thread-601879][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:37:59,862 [DEBUG][       Thread-601879][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:37:59,862 [DEBUG][       Thread-601879][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:37:59,863 [DEBUG][       Thread-601879][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:37:59,863 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:37:59,864 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:37:59,918 [DEBUG][       Thread-601879][   transport.py][1871] : userauth is OK
2025-07-01 10:37:59,918 [DEBUG][       Thread-601879][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:37:59,918 [DEBUG][       Thread-601879][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:37:59,918 [DEBUG][       Thread-601879][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:37:59,918 [DEBUG][       Thread-601879][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:37:59,939 [ INFO][       Thread-601879][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:37:59,939 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:37:59,939 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:38:00,792 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:38:00,793 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:38:00,950 [DEBUG][       Thread-601879][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:38:00,950 [DEBUG][       Thread-601879][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:38:00,999 [DEBUG][       Thread-601879][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:38:00,999 [DEBUG][       Thread-601879][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:38:01,008 [DEBUG][       Thread-601879][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:38:01,020 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:38:01,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-07-01 10:38:01,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-07-01 10:38:01,037 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:38:01,037 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:38:01,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:38:01,045 [DEBUG][       Thread-601879][   transport.py][1871] : EOF in transport thread
2025-07-01 10:38:03,771 [DEBUG][Thread-601881 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:38:11,047 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:38:11,048 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:38:11,048 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:38:11,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-07-01 10:38:11,565 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 38, 3), 9.62, 51.22, 0.0, 32.75, 9.47, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:38:11,565 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:38:03
2025-07-01 10:38:11,649 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:38:11,653 [DEBUG][       Thread-601882][   transport.py][1871] : starting thread (client mode): 0x8172980
2025-07-01 10:38:11,654 [DEBUG][       Thread-601882][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:38:11,674 [DEBUG][       Thread-601882][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:38:11,674 [ INFO][       Thread-601882][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:38:11,678 [DEBUG][       Thread-601882][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:38:11,678 [DEBUG][       Thread-601882][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:38:11,678 [DEBUG][       Thread-601882][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:38:11,678 [DEBUG][       Thread-601882][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:38:11,678 [DEBUG][       Thread-601882][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:38:11,678 [DEBUG][       Thread-601882][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:38:11,678 [DEBUG][       Thread-601882][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:38:11,678 [DEBUG][       Thread-601882][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:38:11,678 [DEBUG][       Thread-601882][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:38:11,678 [DEBUG][       Thread-601882][   transport.py][1871] : client lang: <none>
2025-07-01 10:38:11,678 [DEBUG][       Thread-601882][   transport.py][1871] : server lang: <none>
2025-07-01 10:38:11,678 [DEBUG][       Thread-601882][   transport.py][1871] : kex follows: False
2025-07-01 10:38:11,678 [DEBUG][       Thread-601882][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:38:11,678 [DEBUG][       Thread-601882][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:38:11,678 [DEBUG][       Thread-601882][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:38:11,678 [DEBUG][       Thread-601882][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:38:11,678 [DEBUG][       Thread-601882][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:38:11,678 [DEBUG][       Thread-601882][   transport.py][1871] : Compression: none
2025-07-01 10:38:11,678 [DEBUG][       Thread-601882][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:38:11,694 [DEBUG][       Thread-601882][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:38:11,695 [DEBUG][       Thread-601882][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:38:11,695 [DEBUG][       Thread-601882][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:38:11,695 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:38:11,696 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:38:11,697 [DEBUG][       Thread-601882][   transport.py][1871] : userauth is OK
2025-07-01 10:38:11,721 [ INFO][       Thread-601882][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:38:11,722 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:38:12,366 [DEBUG][       Thread-601882][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:38:12,367 [DEBUG][       Thread-601882][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:38:12,409 [DEBUG][       Thread-601882][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:38:12,409 [DEBUG][       Thread-601882][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:38:12,412 [DEBUG][       Thread-601882][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:38:12,424 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:38:12,424 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:38:12,426 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:38:12,428 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:38:12,434 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:38:12,435 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:38:12,435 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:38:12,436 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:38:12,436 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.359321 -999.00   +9.50  31.00     55   +1.10 1 2 2 1 1   887    0 7.52 -27.87 ----- 31.0 31.0 24.2 37.8 11.8 -23.5 11.2 -23.1 10.6 -22.6 11.2 -22.2
2025-07-01 10:38:12,436 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:38:12,436 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:38:12,436 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.359321
2025-07-01 10:38:12,437 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:38:12,437 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:38:12,437 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:38:12,438 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:38:12,438 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:38:12,438 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:38:03', tmtdew=9.62, humidity=51.22, cloud=0.0, wind=32.75, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:37:25.334', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:38:12,439 [DEBUG][       Thread-601882][   transport.py][1871] : EOF in transport thread
2025-07-01 10:38:12,523 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:38:12,532 [DEBUG][       Thread-601885][   transport.py][1871] : starting thread (client mode): 0x82b34c0
2025-07-01 10:38:12,532 [DEBUG][       Thread-601885][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:38:12,547 [DEBUG][       Thread-601885][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:38:12,547 [ INFO][       Thread-601885][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:38:12,554 [DEBUG][       Thread-601885][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:38:12,554 [DEBUG][       Thread-601885][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:38:12,554 [DEBUG][       Thread-601885][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:38:12,554 [DEBUG][       Thread-601885][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:38:12,554 [DEBUG][       Thread-601885][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:38:12,554 [DEBUG][       Thread-601885][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:38:12,554 [DEBUG][       Thread-601885][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:38:12,554 [DEBUG][       Thread-601885][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:38:12,554 [DEBUG][       Thread-601885][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:38:12,554 [DEBUG][       Thread-601885][   transport.py][1871] : client lang: <none>
2025-07-01 10:38:12,554 [DEBUG][       Thread-601885][   transport.py][1871] : server lang: <none>
2025-07-01 10:38:12,554 [DEBUG][       Thread-601885][   transport.py][1871] : kex follows: False
2025-07-01 10:38:12,555 [DEBUG][       Thread-601885][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:38:12,555 [DEBUG][       Thread-601885][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:38:12,555 [DEBUG][       Thread-601885][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:38:12,555 [DEBUG][       Thread-601885][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:38:12,555 [DEBUG][       Thread-601885][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:38:12,555 [DEBUG][       Thread-601885][   transport.py][1871] : Compression: none
2025-07-01 10:38:12,555 [DEBUG][       Thread-601885][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:38:12,613 [DEBUG][       Thread-601885][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:38:12,614 [DEBUG][       Thread-601885][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:38:12,615 [DEBUG][       Thread-601885][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:38:12,615 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:38:12,615 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:38:12,670 [DEBUG][       Thread-601885][   transport.py][1871] : userauth is OK
2025-07-01 10:38:12,670 [DEBUG][       Thread-601885][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:38:12,670 [DEBUG][       Thread-601885][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:38:12,670 [DEBUG][       Thread-601885][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:38:12,670 [DEBUG][       Thread-601885][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:38:12,689 [ INFO][       Thread-601885][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:38:12,689 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:38:12,690 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:38:12,790 [DEBUG][Thread-601887 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:38:13,698 [DEBUG][       Thread-601885][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:38:13,699 [DEBUG][       Thread-601885][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:38:13,748 [DEBUG][       Thread-601885][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:38:13,748 [DEBUG][       Thread-601885][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:38:13,758 [DEBUG][       Thread-601885][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:38:13,772 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:38:13,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-07-01 10:38:13,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-07-01 10:38:13,790 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:38:13,790 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:38:13,790 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:38:13,798 [DEBUG][       Thread-601885][   transport.py][1871] : EOF in transport thread
2025-07-01 10:38:21,832 [DEBUG][Thread-601888 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:38:23,646 [DEBUG][Thread-601889 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:38:23,800 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:38:23,800 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:38:23,800 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:38:23,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-07-01 10:38:24,311 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 38, 3), 9.62, 51.22, 0.0, 32.75, 9.47, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:38:24,311 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:38:03
2025-07-01 10:38:24,401 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:38:24,407 [DEBUG][       Thread-601890][   transport.py][1871] : starting thread (client mode): 0x75ab070
2025-07-01 10:38:24,407 [DEBUG][       Thread-601890][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:38:24,427 [DEBUG][       Thread-601890][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:38:24,427 [ INFO][       Thread-601890][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:38:24,431 [DEBUG][       Thread-601890][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:38:24,431 [DEBUG][       Thread-601890][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:38:24,431 [DEBUG][       Thread-601890][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:38:24,431 [DEBUG][       Thread-601890][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:38:24,431 [DEBUG][       Thread-601890][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:38:24,431 [DEBUG][       Thread-601890][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:38:24,431 [DEBUG][       Thread-601890][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:38:24,431 [DEBUG][       Thread-601890][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:38:24,431 [DEBUG][       Thread-601890][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:38:24,431 [DEBUG][       Thread-601890][   transport.py][1871] : client lang: <none>
2025-07-01 10:38:24,431 [DEBUG][       Thread-601890][   transport.py][1871] : server lang: <none>
2025-07-01 10:38:24,431 [DEBUG][       Thread-601890][   transport.py][1871] : kex follows: False
2025-07-01 10:38:24,431 [DEBUG][       Thread-601890][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:38:24,431 [DEBUG][       Thread-601890][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:38:24,431 [DEBUG][       Thread-601890][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:38:24,431 [DEBUG][       Thread-601890][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:38:24,431 [DEBUG][       Thread-601890][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:38:24,431 [DEBUG][       Thread-601890][   transport.py][1871] : Compression: none
2025-07-01 10:38:24,431 [DEBUG][       Thread-601890][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:38:24,438 [DEBUG][       Thread-601890][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:38:24,438 [DEBUG][       Thread-601890][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:38:24,438 [DEBUG][       Thread-601890][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:38:24,438 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:38:24,438 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:38:24,438 [DEBUG][       Thread-601890][   transport.py][1871] : userauth is OK
2025-07-01 10:38:24,451 [ INFO][       Thread-601890][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:38:24,451 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:38:25,146 [DEBUG][       Thread-601890][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:38:25,146 [DEBUG][       Thread-601890][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:38:25,188 [DEBUG][       Thread-601890][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:38:25,188 [DEBUG][       Thread-601890][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:38:25,191 [DEBUG][       Thread-601890][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:38:25,203 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:38:25,204 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:38:25,204 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:38:25,205 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:38:25,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:38:25,210 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:38:25,210 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:38:25,210 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:38:25,210 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.359668 -999.00   +9.40  34.62     55   +1.10 1 1 2 1 1   887    0 7.58 -26.49 ----- 34.6 34.6 29.0 48.5 11.8 -23.7 11.1 -23.8 10.6 -22.5 11.2 -22.5
2025-07-01 10:38:25,210 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:38:25,210 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:38:25,210 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.359668
2025-07-01 10:38:25,210 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:38:25,210 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:38:25,210 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:38:25,210 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:38:25,210 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:38:25,210 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:38:03', tmtdew=9.62, humidity=51.22, cloud=0.0, wind=32.75, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:37:55.315', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:38:25,211 [DEBUG][       Thread-601890][   transport.py][1871] : EOF in transport thread
2025-07-01 10:38:25,284 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:38:25,296 [DEBUG][       Thread-601893][   transport.py][1871] : starting thread (client mode): 0x827ec50
2025-07-01 10:38:25,296 [DEBUG][       Thread-601893][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:38:25,312 [DEBUG][       Thread-601893][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:38:25,312 [ INFO][       Thread-601893][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:38:25,319 [DEBUG][       Thread-601893][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:38:25,319 [DEBUG][       Thread-601893][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:38:25,319 [DEBUG][       Thread-601893][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:38:25,319 [DEBUG][       Thread-601893][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:38:25,319 [DEBUG][       Thread-601893][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:38:25,319 [DEBUG][       Thread-601893][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:38:25,319 [DEBUG][       Thread-601893][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:38:25,319 [DEBUG][       Thread-601893][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:38:25,319 [DEBUG][       Thread-601893][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:38:25,320 [DEBUG][       Thread-601893][   transport.py][1871] : client lang: <none>
2025-07-01 10:38:25,320 [DEBUG][       Thread-601893][   transport.py][1871] : server lang: <none>
2025-07-01 10:38:25,320 [DEBUG][       Thread-601893][   transport.py][1871] : kex follows: False
2025-07-01 10:38:25,320 [DEBUG][       Thread-601893][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:38:25,320 [DEBUG][       Thread-601893][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:38:25,320 [DEBUG][       Thread-601893][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:38:25,320 [DEBUG][       Thread-601893][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:38:25,320 [DEBUG][       Thread-601893][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:38:25,320 [DEBUG][       Thread-601893][   transport.py][1871] : Compression: none
2025-07-01 10:38:25,320 [DEBUG][       Thread-601893][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:38:25,380 [DEBUG][       Thread-601893][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:38:25,380 [DEBUG][       Thread-601893][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:38:25,380 [DEBUG][       Thread-601893][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:38:25,381 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:38:25,381 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:38:25,437 [DEBUG][       Thread-601893][   transport.py][1871] : userauth is OK
2025-07-01 10:38:25,437 [DEBUG][       Thread-601893][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:38:25,437 [DEBUG][       Thread-601893][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:38:25,437 [DEBUG][       Thread-601893][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:38:25,437 [DEBUG][       Thread-601893][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:38:25,458 [ INFO][       Thread-601893][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:38:25,458 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:38:25,458 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:38:26,491 [DEBUG][       Thread-601893][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:38:26,491 [DEBUG][       Thread-601893][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:38:26,539 [DEBUG][       Thread-601893][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:38:26,539 [DEBUG][       Thread-601893][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:38:26,548 [DEBUG][       Thread-601893][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:38:26,556 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:38:26,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-07-01 10:38:26,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-07-01 10:38:26,571 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:38:26,572 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:38:26,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:38:26,579 [DEBUG][       Thread-601893][   transport.py][1871] : EOF in transport thread
2025-07-01 10:38:30,851 [DEBUG][Thread-601895 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:38:36,580 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:38:36,580 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:38:36,580 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:38:36,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-07-01 10:38:37,113 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 38, 3), 9.62, 51.22, 0.0, 32.75, 9.47, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:38:37,114 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:38:03
2025-07-01 10:38:37,203 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:38:37,207 [DEBUG][       Thread-601896][   transport.py][1871] : starting thread (client mode): 0x8104b80
2025-07-01 10:38:37,207 [DEBUG][       Thread-601896][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:38:37,228 [DEBUG][       Thread-601896][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:38:37,228 [ INFO][       Thread-601896][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:38:37,231 [DEBUG][       Thread-601896][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:38:37,231 [DEBUG][       Thread-601896][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:38:37,231 [DEBUG][       Thread-601896][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:38:37,231 [DEBUG][       Thread-601896][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:38:37,231 [DEBUG][       Thread-601896][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:38:37,231 [DEBUG][       Thread-601896][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:38:37,231 [DEBUG][       Thread-601896][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:38:37,231 [DEBUG][       Thread-601896][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:38:37,231 [DEBUG][       Thread-601896][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:38:37,231 [DEBUG][       Thread-601896][   transport.py][1871] : client lang: <none>
2025-07-01 10:38:37,231 [DEBUG][       Thread-601896][   transport.py][1871] : server lang: <none>
2025-07-01 10:38:37,231 [DEBUG][       Thread-601896][   transport.py][1871] : kex follows: False
2025-07-01 10:38:37,231 [DEBUG][       Thread-601896][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:38:37,231 [DEBUG][       Thread-601896][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:38:37,231 [DEBUG][       Thread-601896][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:38:37,231 [DEBUG][       Thread-601896][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:38:37,231 [DEBUG][       Thread-601896][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:38:37,231 [DEBUG][       Thread-601896][   transport.py][1871] : Compression: none
2025-07-01 10:38:37,231 [DEBUG][       Thread-601896][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:38:37,246 [DEBUG][       Thread-601896][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:38:37,247 [DEBUG][       Thread-601896][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:38:37,247 [DEBUG][       Thread-601896][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:38:37,247 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:38:37,247 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:38:37,247 [DEBUG][       Thread-601896][   transport.py][1871] : userauth is OK
2025-07-01 10:38:37,271 [ INFO][       Thread-601896][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:38:37,272 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:38:37,892 [DEBUG][       Thread-601896][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:38:37,893 [DEBUG][       Thread-601896][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:38:37,937 [DEBUG][       Thread-601896][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:38:37,937 [DEBUG][       Thread-601896][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:38:37,940 [DEBUG][       Thread-601896][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:38:37,953 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:38:37,953 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:38:37,955 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:38:37,957 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:38:37,962 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:38:37,964 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:38:37,964 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:38:37,965 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:38:37,965 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.359668 -999.00   +9.40  34.62     55   +1.10 1 1 2 1 1   887    0 7.58 -26.49 ----- 34.6 34.6 29.0 48.5 11.8 -23.7 11.1 -23.8 10.6 -22.5 11.2 -22.5
2025-07-01 10:38:37,965 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:38:37,965 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:38:37,965 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.359668
2025-07-01 10:38:37,966 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:38:37,966 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:38:37,966 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:38:37,966 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:38:37,967 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:38:37,967 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:38:03', tmtdew=9.62, humidity=51.22, cloud=0.0, wind=32.75, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:37:55.315', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:38:37,967 [DEBUG][       Thread-601896][   transport.py][1871] : EOF in transport thread
2025-07-01 10:38:38,050 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:38:38,063 [DEBUG][       Thread-601899][   transport.py][1871] : starting thread (client mode): 0x818e7a0
2025-07-01 10:38:38,063 [DEBUG][       Thread-601899][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:38:38,082 [DEBUG][       Thread-601899][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:38:38,082 [ INFO][       Thread-601899][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:38:38,091 [DEBUG][       Thread-601899][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:38:38,091 [DEBUG][       Thread-601899][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:38:38,091 [DEBUG][       Thread-601899][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:38:38,091 [DEBUG][       Thread-601899][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:38:38,091 [DEBUG][       Thread-601899][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:38:38,091 [DEBUG][       Thread-601899][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:38:38,091 [DEBUG][       Thread-601899][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:38:38,091 [DEBUG][       Thread-601899][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:38:38,091 [DEBUG][       Thread-601899][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:38:38,091 [DEBUG][       Thread-601899][   transport.py][1871] : client lang: <none>
2025-07-01 10:38:38,092 [DEBUG][       Thread-601899][   transport.py][1871] : server lang: <none>
2025-07-01 10:38:38,092 [DEBUG][       Thread-601899][   transport.py][1871] : kex follows: False
2025-07-01 10:38:38,092 [DEBUG][       Thread-601899][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:38:38,092 [DEBUG][       Thread-601899][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:38:38,092 [DEBUG][       Thread-601899][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:38:38,092 [DEBUG][       Thread-601899][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:38:38,092 [DEBUG][       Thread-601899][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:38:38,092 [DEBUG][       Thread-601899][   transport.py][1871] : Compression: none
2025-07-01 10:38:38,092 [DEBUG][       Thread-601899][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:38:38,158 [DEBUG][       Thread-601899][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:38:38,158 [DEBUG][       Thread-601899][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:38:38,159 [DEBUG][       Thread-601899][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:38:38,159 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:38:38,160 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:38:38,214 [DEBUG][       Thread-601899][   transport.py][1871] : userauth is OK
2025-07-01 10:38:38,214 [DEBUG][       Thread-601899][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:38:38,215 [DEBUG][       Thread-601899][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:38:38,215 [DEBUG][       Thread-601899][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:38:38,215 [DEBUG][       Thread-601899][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:38:38,234 [ INFO][       Thread-601899][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:38:38,234 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:38:38,234 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:38:39,244 [DEBUG][       Thread-601899][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:38:39,244 [DEBUG][       Thread-601899][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:38:39,299 [DEBUG][       Thread-601899][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:38:39,299 [DEBUG][       Thread-601899][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:38:39,310 [DEBUG][       Thread-601899][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:38:39,319 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:38:39,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-07-01 10:38: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-07-01 10:38:39,341 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:38:39,341 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:38:39,342 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:38:39,352 [DEBUG][       Thread-601899][   transport.py][1871] : EOF in transport thread
2025-07-01 10:38:39,884 [DEBUG][Thread-601901 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:38:48,905 [DEBUG][Thread-601902 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:38:49,352 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:38:49,353 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:38:49,353 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:38:49,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-07-01 10:38:49,868 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 38, 35), 9.61, 51.15, 0.0, 36.35, 9.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:38:49,868 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:38:35
2025-07-01 10:38:49,952 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:38:49,958 [DEBUG][       Thread-601903][   transport.py][1871] : starting thread (client mode): 0x82b32e0
2025-07-01 10:38:49,958 [DEBUG][       Thread-601903][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:38:49,973 [DEBUG][       Thread-601903][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:38:49,973 [ INFO][       Thread-601903][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:38:49,977 [DEBUG][       Thread-601903][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:38:49,977 [DEBUG][       Thread-601903][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:38:49,977 [DEBUG][       Thread-601903][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:38:49,977 [DEBUG][       Thread-601903][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:38:49,977 [DEBUG][       Thread-601903][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:38:49,977 [DEBUG][       Thread-601903][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:38:49,977 [DEBUG][       Thread-601903][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:38:49,977 [DEBUG][       Thread-601903][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:38:49,977 [DEBUG][       Thread-601903][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:38:49,977 [DEBUG][       Thread-601903][   transport.py][1871] : client lang: <none>
2025-07-01 10:38:49,977 [DEBUG][       Thread-601903][   transport.py][1871] : server lang: <none>
2025-07-01 10:38:49,977 [DEBUG][       Thread-601903][   transport.py][1871] : kex follows: False
2025-07-01 10:38:49,977 [DEBUG][       Thread-601903][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:38:49,977 [DEBUG][       Thread-601903][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:38:49,977 [DEBUG][       Thread-601903][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:38:49,977 [DEBUG][       Thread-601903][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:38:49,977 [DEBUG][       Thread-601903][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:38:49,977 [DEBUG][       Thread-601903][   transport.py][1871] : Compression: none
2025-07-01 10:38:49,977 [DEBUG][       Thread-601903][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:38:49,994 [DEBUG][       Thread-601903][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:38:49,994 [DEBUG][       Thread-601903][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:38:49,994 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:38:49,995 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:38:49,995 [DEBUG][       Thread-601903][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:38:49,996 [DEBUG][       Thread-601903][   transport.py][1871] : userauth is OK
2025-07-01 10:38:50,021 [ INFO][       Thread-601903][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:38:50,022 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:38:50,657 [DEBUG][       Thread-601903][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:38:50,657 [DEBUG][       Thread-601903][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:38:50,700 [DEBUG][       Thread-601903][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:38:50,701 [DEBUG][       Thread-601903][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:38:50,703 [DEBUG][       Thread-601903][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:38:50,717 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:38:50,717 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:38:50,719 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:38:50,720 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:38:50,724 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:38:50,726 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:38:50,726 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:38:50,727 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:38:50,727 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.360015 -999.00   +9.40  39.89     55   +1.00 1 2 2 1 1   887    0 7.60 -23.99 ----- 39.9 39.9 21.2 53.3 11.8 -23.4 11.1 -23.5 10.7 -22.2 11.2 -22.2
2025-07-01 10:38:50,727 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:38:50,727 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:38:50,727 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.360015
2025-07-01 10:38:50,727 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:38:50,728 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:38:50,728 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:38:50,728 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:38:50,728 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:38:50,728 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:38:35', tmtdew=9.61, humidity=51.15, cloud=0.0, wind=36.35, temperature=9.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:38:25.296', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:38:50,729 [DEBUG][       Thread-601903][   transport.py][1871] : EOF in transport thread
2025-07-01 10:38:50,812 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:38:50,821 [DEBUG][       Thread-601906][   transport.py][1871] : starting thread (client mode): 0x8a65e70
2025-07-01 10:38:50,821 [DEBUG][       Thread-601906][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:38:50,837 [DEBUG][       Thread-601906][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:38:50,837 [ INFO][       Thread-601906][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:38:50,845 [DEBUG][       Thread-601906][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:38:50,845 [DEBUG][       Thread-601906][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:38:50,845 [DEBUG][       Thread-601906][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:38:50,845 [DEBUG][       Thread-601906][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:38:50,845 [DEBUG][       Thread-601906][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:38:50,845 [DEBUG][       Thread-601906][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:38:50,845 [DEBUG][       Thread-601906][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:38:50,845 [DEBUG][       Thread-601906][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:38:50,845 [DEBUG][       Thread-601906][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:38:50,845 [DEBUG][       Thread-601906][   transport.py][1871] : client lang: <none>
2025-07-01 10:38:50,845 [DEBUG][       Thread-601906][   transport.py][1871] : server lang: <none>
2025-07-01 10:38:50,845 [DEBUG][       Thread-601906][   transport.py][1871] : kex follows: False
2025-07-01 10:38:50,845 [DEBUG][       Thread-601906][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:38:50,845 [DEBUG][       Thread-601906][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:38:50,845 [DEBUG][       Thread-601906][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:38:50,845 [DEBUG][       Thread-601906][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:38:50,845 [DEBUG][       Thread-601906][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:38:50,845 [DEBUG][       Thread-601906][   transport.py][1871] : Compression: none
2025-07-01 10:38:50,845 [DEBUG][       Thread-601906][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:38:50,904 [DEBUG][       Thread-601906][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:38:50,904 [DEBUG][       Thread-601906][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:38:50,904 [DEBUG][       Thread-601906][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:38:50,904 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:38:50,904 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:38:50,962 [DEBUG][       Thread-601906][   transport.py][1871] : userauth is OK
2025-07-01 10:38:50,962 [DEBUG][       Thread-601906][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:38:50,962 [DEBUG][       Thread-601906][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:38:50,962 [DEBUG][       Thread-601906][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:38:50,962 [DEBUG][       Thread-601906][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:38:50,982 [ INFO][       Thread-601906][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:38:50,982 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:38:50,982 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:38:52,011 [DEBUG][       Thread-601906][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:38:52,011 [DEBUG][       Thread-601906][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:38:52,063 [DEBUG][       Thread-601906][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:38:52,063 [DEBUG][       Thread-601906][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:38:52,073 [DEBUG][       Thread-601906][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:38:52,085 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:38:52,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')
2025-07-01 10:38:52,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-07-01 10:38:52,117 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:38:52,117 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:38:52,118 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:38:52,128 [DEBUG][       Thread-601906][   transport.py][1871] : EOF in transport thread
2025-07-01 10:38:57,925 [DEBUG][Thread-601908 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:39:00,931 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:39:00,932 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:39:02,128 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:39:02,128 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:39:02,128 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:39:02,129 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:39:02,644 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 38, 35), 9.61, 51.15, 0.0, 36.35, 9.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:39:02,644 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:38:35
2025-07-01 10:39:02,732 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:39:02,736 [DEBUG][       Thread-601909][   transport.py][1871] : starting thread (client mode): 0x82b39a0
2025-07-01 10:39:02,736 [DEBUG][       Thread-601909][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:39:02,756 [DEBUG][       Thread-601909][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:39:02,756 [ INFO][       Thread-601909][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:39:02,760 [DEBUG][       Thread-601909][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:39:02,760 [DEBUG][       Thread-601909][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:39:02,760 [DEBUG][       Thread-601909][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:39:02,760 [DEBUG][       Thread-601909][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:39:02,760 [DEBUG][       Thread-601909][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:39:02,760 [DEBUG][       Thread-601909][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:39:02,760 [DEBUG][       Thread-601909][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:39:02,760 [DEBUG][       Thread-601909][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:39:02,760 [DEBUG][       Thread-601909][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:39:02,760 [DEBUG][       Thread-601909][   transport.py][1871] : client lang: <none>
2025-07-01 10:39:02,760 [DEBUG][       Thread-601909][   transport.py][1871] : server lang: <none>
2025-07-01 10:39:02,760 [DEBUG][       Thread-601909][   transport.py][1871] : kex follows: False
2025-07-01 10:39:02,760 [DEBUG][       Thread-601909][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:39:02,760 [DEBUG][       Thread-601909][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:39:02,760 [DEBUG][       Thread-601909][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:39:02,760 [DEBUG][       Thread-601909][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:39:02,760 [DEBUG][       Thread-601909][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:39:02,760 [DEBUG][       Thread-601909][   transport.py][1871] : Compression: none
2025-07-01 10:39:02,760 [DEBUG][       Thread-601909][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:39:02,774 [DEBUG][       Thread-601909][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:39:02,774 [DEBUG][       Thread-601909][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:39:02,775 [DEBUG][       Thread-601909][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:39:02,775 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:39:02,775 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:39:02,775 [DEBUG][       Thread-601909][   transport.py][1871] : userauth is OK
2025-07-01 10:39:02,799 [ INFO][       Thread-601909][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:39:02,799 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:39:03,479 [DEBUG][       Thread-601909][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:39:03,479 [DEBUG][       Thread-601909][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:39:03,520 [DEBUG][       Thread-601909][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:39:03,520 [DEBUG][       Thread-601909][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:39:03,523 [DEBUG][       Thread-601909][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:39:03,535 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:39:03,535 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:39:03,536 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:39:03,537 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:39:03,540 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:39:03,541 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:39:03,541 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:39:03,541 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:39:03,541 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.360015 -999.00   +9.40  39.89     55   +1.00 1 2 2 1 1   887    0 7.60 -23.99 ----- 39.9 39.9 21.2 53.3 11.8 -23.4 11.1 -23.5 10.7 -22.2 11.2 -22.2
2025-07-01 10:39:03,541 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:39:03,541 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:39:03,541 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.360015
2025-07-01 10:39:03,542 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:39:03,542 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:39:03,542 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:39:03,542 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:39:03,542 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:39:03,542 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:38:35', tmtdew=9.61, humidity=51.15, cloud=0.0, wind=36.35, temperature=9.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:38:25.296', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:39:03,542 [DEBUG][       Thread-601909][   transport.py][1871] : EOF in transport thread
2025-07-01 10:39:03,615 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:39:03,625 [DEBUG][       Thread-601912][   transport.py][1871] : starting thread (client mode): 0x82b3a90
2025-07-01 10:39:03,625 [DEBUG][       Thread-601912][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:39:03,639 [DEBUG][       Thread-601912][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:39:03,639 [ INFO][       Thread-601912][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:39:03,647 [DEBUG][       Thread-601912][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:39:03,647 [DEBUG][       Thread-601912][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:39:03,647 [DEBUG][       Thread-601912][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:39:03,647 [DEBUG][       Thread-601912][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:39:03,647 [DEBUG][       Thread-601912][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:39:03,647 [DEBUG][       Thread-601912][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:39:03,647 [DEBUG][       Thread-601912][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:39:03,647 [DEBUG][       Thread-601912][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:39:03,647 [DEBUG][       Thread-601912][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:39:03,647 [DEBUG][       Thread-601912][   transport.py][1871] : client lang: <none>
2025-07-01 10:39:03,647 [DEBUG][       Thread-601912][   transport.py][1871] : server lang: <none>
2025-07-01 10:39:03,647 [DEBUG][       Thread-601912][   transport.py][1871] : kex follows: False
2025-07-01 10:39:03,647 [DEBUG][       Thread-601912][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:39:03,647 [DEBUG][       Thread-601912][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:39:03,647 [DEBUG][       Thread-601912][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:39:03,647 [DEBUG][       Thread-601912][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:39:03,647 [DEBUG][       Thread-601912][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:39:03,647 [DEBUG][       Thread-601912][   transport.py][1871] : Compression: none
2025-07-01 10:39:03,647 [DEBUG][       Thread-601912][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:39:03,708 [DEBUG][       Thread-601912][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:39:03,708 [DEBUG][       Thread-601912][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:39:03,709 [DEBUG][       Thread-601912][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:39:03,709 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:39:03,709 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:39:03,765 [DEBUG][       Thread-601912][   transport.py][1871] : userauth is OK
2025-07-01 10:39:03,765 [DEBUG][       Thread-601912][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:39:03,765 [DEBUG][       Thread-601912][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:39:03,765 [DEBUG][       Thread-601912][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:39:03,765 [DEBUG][       Thread-601912][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:39:03,779 [ INFO][       Thread-601912][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:39:03,779 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:39:03,780 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:39:04,771 [DEBUG][       Thread-601912][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:39:04,772 [DEBUG][       Thread-601912][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:39:04,819 [DEBUG][       Thread-601912][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:39:04,819 [DEBUG][       Thread-601912][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:39:04,828 [DEBUG][       Thread-601912][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:39:04,836 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:39:04,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-07-01 10:39:04,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-07-01 10:39:04,852 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:39:04,852 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:39:04,852 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:39:04,860 [DEBUG][       Thread-601912][   transport.py][1871] : EOF in transport thread
2025-07-01 10:39:06,957 [DEBUG][Thread-601914 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:39:14,862 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:39:14,863 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:39:14,863 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:39:14,866 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:39:15,370 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 39, 7), 9.57, 51.29, 0.0, 33.08, 9.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:39:15,370 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:39:07
2025-07-01 10:39:15,453 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:39:15,459 [DEBUG][       Thread-601915][   transport.py][1871] : starting thread (client mode): 0x8105f90
2025-07-01 10:39:15,459 [DEBUG][       Thread-601915][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:39:15,482 [DEBUG][       Thread-601915][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:39:15,482 [ INFO][       Thread-601915][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:39:15,484 [DEBUG][       Thread-601915][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:39:15,484 [DEBUG][       Thread-601915][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:39:15,484 [DEBUG][       Thread-601915][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:39:15,484 [DEBUG][       Thread-601915][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:39:15,484 [DEBUG][       Thread-601915][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:39:15,484 [DEBUG][       Thread-601915][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:39:15,484 [DEBUG][       Thread-601915][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:39:15,484 [DEBUG][       Thread-601915][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:39:15,484 [DEBUG][       Thread-601915][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:39:15,484 [DEBUG][       Thread-601915][   transport.py][1871] : client lang: <none>
2025-07-01 10:39:15,485 [DEBUG][       Thread-601915][   transport.py][1871] : server lang: <none>
2025-07-01 10:39:15,485 [DEBUG][       Thread-601915][   transport.py][1871] : kex follows: False
2025-07-01 10:39:15,485 [DEBUG][       Thread-601915][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:39:15,485 [DEBUG][       Thread-601915][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:39:15,485 [DEBUG][       Thread-601915][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:39:15,485 [DEBUG][       Thread-601915][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:39:15,485 [DEBUG][       Thread-601915][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:39:15,485 [DEBUG][       Thread-601915][   transport.py][1871] : Compression: none
2025-07-01 10:39:15,485 [DEBUG][       Thread-601915][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:39:15,499 [DEBUG][       Thread-601915][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:39:15,500 [DEBUG][       Thread-601915][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:39:15,500 [DEBUG][       Thread-601915][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:39:15,500 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:39:15,501 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:39:15,502 [DEBUG][       Thread-601915][   transport.py][1871] : userauth is OK
2025-07-01 10:39:15,527 [ INFO][       Thread-601915][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:39:15,527 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:39:15,978 [DEBUG][Thread-601917 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:39:16,127 [DEBUG][       Thread-601915][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:39:16,127 [DEBUG][       Thread-601915][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:39:16,169 [DEBUG][       Thread-601915][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:39:16,169 [DEBUG][       Thread-601915][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:39:16,172 [DEBUG][       Thread-601915][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:39:16,184 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:39:16,185 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:39:16,186 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:39:16,188 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:39:16,194 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:39:16,196 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:39:16,197 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:39:16,197 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:39:16,197 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.360015 -999.00   +9.40  39.89     55   +1.00 1 2 2 1 1   887    0 7.60 -23.99 ----- 39.9 39.9 21.2 53.3 11.8 -23.4 11.1 -23.5 10.7 -22.2 11.2 -22.2
2025-07-01 10:39:16,198 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:39:16,198 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:39:16,198 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.360015
2025-07-01 10:39:16,198 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:39:16,199 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:39:16,199 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:39:16,199 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:39:16,199 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:39:16,199 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:39:07', tmtdew=9.57, humidity=51.29, cloud=0.0, wind=33.08, temperature=9.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:38:25.296', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:39:16,199 [DEBUG][       Thread-601915][   transport.py][1871] : EOF in transport thread
2025-07-01 10:39:16,284 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:39:16,295 [DEBUG][       Thread-601919][   transport.py][1871] : starting thread (client mode): 0x81a73d0
2025-07-01 10:39:16,295 [DEBUG][       Thread-601919][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:39:16,318 [DEBUG][       Thread-601919][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:39:16,319 [ INFO][       Thread-601919][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:39:16,326 [DEBUG][       Thread-601919][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:39:16,327 [DEBUG][       Thread-601919][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:39:16,327 [DEBUG][       Thread-601919][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:39:16,327 [DEBUG][       Thread-601919][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:39:16,327 [DEBUG][       Thread-601919][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:39:16,327 [DEBUG][       Thread-601919][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:39:16,327 [DEBUG][       Thread-601919][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:39:16,327 [DEBUG][       Thread-601919][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:39:16,327 [DEBUG][       Thread-601919][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:39:16,327 [DEBUG][       Thread-601919][   transport.py][1871] : client lang: <none>
2025-07-01 10:39:16,327 [DEBUG][       Thread-601919][   transport.py][1871] : server lang: <none>
2025-07-01 10:39:16,327 [DEBUG][       Thread-601919][   transport.py][1871] : kex follows: False
2025-07-01 10:39:16,327 [DEBUG][       Thread-601919][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:39:16,327 [DEBUG][       Thread-601919][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:39:16,327 [DEBUG][       Thread-601919][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:39:16,327 [DEBUG][       Thread-601919][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:39:16,327 [DEBUG][       Thread-601919][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:39:16,327 [DEBUG][       Thread-601919][   transport.py][1871] : Compression: none
2025-07-01 10:39:16,328 [DEBUG][       Thread-601919][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:39:16,386 [DEBUG][       Thread-601919][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:39:16,386 [DEBUG][       Thread-601919][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:39:16,387 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:39:16,387 [DEBUG][       Thread-601919][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:39:16,388 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:39:16,442 [DEBUG][       Thread-601919][   transport.py][1871] : userauth is OK
2025-07-01 10:39:16,443 [DEBUG][       Thread-601919][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:39:16,443 [DEBUG][       Thread-601919][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:39:16,443 [DEBUG][       Thread-601919][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:39:16,443 [DEBUG][       Thread-601919][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:39:16,461 [ INFO][       Thread-601919][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:39:16,462 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:39:16,462 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:39:17,467 [DEBUG][       Thread-601919][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:39:17,467 [DEBUG][       Thread-601919][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:39:17,516 [DEBUG][       Thread-601919][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:39:17,516 [DEBUG][       Thread-601919][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:39:17,525 [DEBUG][       Thread-601919][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:39:17,534 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:39:17,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-07-01 10:39:17,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-07-01 10:39:17,553 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:39:17,553 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:39:17,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:39:17,562 [DEBUG][       Thread-601919][   transport.py][1871] : EOF in transport thread
2025-07-01 10:39:23,695 [DEBUG][Thread-601921 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:39:25,003 [DEBUG][Thread-601922 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:39:27,560 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:39:27,560 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:39:27,560 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:39:27,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-07-01 10:39:28,061 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 39, 7), 9.57, 51.29, 0.0, 33.08, 9.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:39:28,061 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:39:07
2025-07-01 10:39:28,144 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:39:28,150 [DEBUG][       Thread-601923][   transport.py][1871] : starting thread (client mode): 0x75aa1d0
2025-07-01 10:39:28,150 [DEBUG][       Thread-601923][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:39:28,172 [DEBUG][       Thread-601923][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:39:28,172 [ INFO][       Thread-601923][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:39:28,175 [DEBUG][       Thread-601923][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:39:28,175 [DEBUG][       Thread-601923][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:39:28,175 [DEBUG][       Thread-601923][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:39:28,175 [DEBUG][       Thread-601923][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:39:28,175 [DEBUG][       Thread-601923][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:39:28,175 [DEBUG][       Thread-601923][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:39:28,175 [DEBUG][       Thread-601923][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:39:28,175 [DEBUG][       Thread-601923][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:39:28,175 [DEBUG][       Thread-601923][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:39:28,175 [DEBUG][       Thread-601923][   transport.py][1871] : client lang: <none>
2025-07-01 10:39:28,175 [DEBUG][       Thread-601923][   transport.py][1871] : server lang: <none>
2025-07-01 10:39:28,175 [DEBUG][       Thread-601923][   transport.py][1871] : kex follows: False
2025-07-01 10:39:28,175 [DEBUG][       Thread-601923][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:39:28,175 [DEBUG][       Thread-601923][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:39:28,175 [DEBUG][       Thread-601923][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:39:28,175 [DEBUG][       Thread-601923][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:39:28,175 [DEBUG][       Thread-601923][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:39:28,175 [DEBUG][       Thread-601923][   transport.py][1871] : Compression: none
2025-07-01 10:39:28,175 [DEBUG][       Thread-601923][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:39:28,190 [DEBUG][       Thread-601923][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:39:28,190 [DEBUG][       Thread-601923][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:39:28,190 [DEBUG][       Thread-601923][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:39:28,190 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:39:28,190 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:39:28,190 [DEBUG][       Thread-601923][   transport.py][1871] : userauth is OK
2025-07-01 10:39:28,203 [ INFO][       Thread-601923][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:39:28,203 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:39:28,837 [DEBUG][       Thread-601923][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:39:28,837 [DEBUG][       Thread-601923][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:39:28,881 [DEBUG][       Thread-601923][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:39:28,881 [DEBUG][       Thread-601923][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:39:28,884 [DEBUG][       Thread-601923][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:39:28,895 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:39:28,896 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:39:28,897 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:39:28,899 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:39:28,905 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:39:28,906 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:39:28,906 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:39:28,907 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:39:28,907 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.360362 -999.00   +9.40  39.02     55   +1.00 1 2 2 1 1   887    0 7.87 -22.00 ----- 39.0 39.0 35.0 45.7 11.8 -23.8 11.1 -23.3 10.7 -22.1 11.3 -22.9
2025-07-01 10:39:28,907 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:39:28,907 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:39:28,907 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.360362
2025-07-01 10:39:28,908 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:39:28,908 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:39:28,909 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:39:28,909 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:39:28,909 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:39:28,909 [DEBUG][       Thread-601923][   transport.py][1871] : EOF in transport thread
2025-07-01 10:39:28,909 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:39:07', tmtdew=9.57, humidity=51.29, cloud=0.0, wind=33.08, temperature=9.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:38:55.277', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:39:28,993 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:39:29,009 [DEBUG][       Thread-601926][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 10:39:29,009 [DEBUG][       Thread-601926][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:39:29,032 [DEBUG][       Thread-601926][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:39:29,032 [ INFO][       Thread-601926][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:39:29,049 [DEBUG][       Thread-601926][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:39:29,049 [DEBUG][       Thread-601926][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:39:29,049 [DEBUG][       Thread-601926][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:39:29,049 [DEBUG][       Thread-601926][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:39:29,049 [DEBUG][       Thread-601926][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:39:29,049 [DEBUG][       Thread-601926][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:39:29,049 [DEBUG][       Thread-601926][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:39:29,049 [DEBUG][       Thread-601926][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:39:29,049 [DEBUG][       Thread-601926][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:39:29,049 [DEBUG][       Thread-601926][   transport.py][1871] : client lang: <none>
2025-07-01 10:39:29,049 [DEBUG][       Thread-601926][   transport.py][1871] : server lang: <none>
2025-07-01 10:39:29,049 [DEBUG][       Thread-601926][   transport.py][1871] : kex follows: False
2025-07-01 10:39:29,049 [DEBUG][       Thread-601926][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:39:29,050 [DEBUG][       Thread-601926][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:39:29,050 [DEBUG][       Thread-601926][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:39:29,050 [DEBUG][       Thread-601926][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:39:29,050 [DEBUG][       Thread-601926][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:39:29,050 [DEBUG][       Thread-601926][   transport.py][1871] : Compression: none
2025-07-01 10:39:29,050 [DEBUG][       Thread-601926][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:39:29,109 [DEBUG][       Thread-601926][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:39:29,110 [DEBUG][       Thread-601926][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:39:29,110 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:39:29,111 [DEBUG][       Thread-601926][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:39:29,112 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:39:29,190 [DEBUG][       Thread-601926][   transport.py][1871] : userauth is OK
2025-07-01 10:39:29,190 [DEBUG][       Thread-601926][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:39:29,190 [DEBUG][       Thread-601926][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:39:29,191 [DEBUG][       Thread-601926][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:39:29,191 [DEBUG][       Thread-601926][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:39:29,215 [ INFO][       Thread-601926][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:39:29,215 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:39:29,216 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:39:30,261 [DEBUG][       Thread-601926][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:39:30,262 [DEBUG][       Thread-601926][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:39:30,315 [DEBUG][       Thread-601926][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:39:30,315 [DEBUG][       Thread-601926][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:39:30,324 [DEBUG][       Thread-601926][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:39:30,333 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:39:30,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-07-01 10:39:30,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-07-01 10:39:30,351 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:39:30,352 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:39:30,352 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:39:30,364 [DEBUG][       Thread-601926][   transport.py][1871] : EOF in transport thread
2025-07-01 10:39:34,038 [DEBUG][Thread-601928 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:39:40,360 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:39:40,360 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:39:40,360 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:39:40,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-07-01 10:39:40,901 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 39, 7), 9.57, 51.29, 0.0, 33.08, 9.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:39:40,901 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:39:07
2025-07-01 10:39:40,989 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:39:40,993 [DEBUG][       Thread-601929][   transport.py][1871] : starting thread (client mode): 0x82b3b80
2025-07-01 10:39:40,993 [DEBUG][       Thread-601929][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:39:41,015 [DEBUG][       Thread-601929][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:39:41,015 [ INFO][       Thread-601929][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:39:41,018 [DEBUG][       Thread-601929][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:39:41,018 [DEBUG][       Thread-601929][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:39:41,018 [DEBUG][       Thread-601929][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:39:41,018 [DEBUG][       Thread-601929][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:39:41,018 [DEBUG][       Thread-601929][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:39:41,018 [DEBUG][       Thread-601929][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:39:41,018 [DEBUG][       Thread-601929][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:39:41,018 [DEBUG][       Thread-601929][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:39:41,018 [DEBUG][       Thread-601929][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:39:41,018 [DEBUG][       Thread-601929][   transport.py][1871] : client lang: <none>
2025-07-01 10:39:41,018 [DEBUG][       Thread-601929][   transport.py][1871] : server lang: <none>
2025-07-01 10:39:41,018 [DEBUG][       Thread-601929][   transport.py][1871] : kex follows: False
2025-07-01 10:39:41,018 [DEBUG][       Thread-601929][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:39:41,018 [DEBUG][       Thread-601929][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:39:41,018 [DEBUG][       Thread-601929][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:39:41,018 [DEBUG][       Thread-601929][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:39:41,018 [DEBUG][       Thread-601929][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:39:41,018 [DEBUG][       Thread-601929][   transport.py][1871] : Compression: none
2025-07-01 10:39:41,018 [DEBUG][       Thread-601929][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:39:41,033 [DEBUG][       Thread-601929][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:39:41,033 [DEBUG][       Thread-601929][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:39:41,033 [DEBUG][       Thread-601929][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:39:41,034 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:39:41,034 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:39:41,034 [DEBUG][       Thread-601929][   transport.py][1871] : userauth is OK
2025-07-01 10:39:41,059 [ INFO][       Thread-601929][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:39:41,059 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:39:41,690 [DEBUG][       Thread-601929][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:39:41,690 [DEBUG][       Thread-601929][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:39:41,732 [DEBUG][       Thread-601929][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:39:41,733 [DEBUG][       Thread-601929][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:39:41,735 [DEBUG][       Thread-601929][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:39:41,746 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:39:41,746 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:39:41,748 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:39:41,749 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:39:41,752 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:39:41,752 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:39:41,752 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:39:41,753 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:39:41,753 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.360362 -999.00   +9.40  39.02     55   +1.00 1 2 2 1 1   887    0 7.87 -22.00 ----- 39.0 39.0 35.0 45.7 11.8 -23.8 11.1 -23.3 10.7 -22.1 11.3 -22.9
2025-07-01 10:39:41,753 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:39:41,753 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:39:41,753 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.360362
2025-07-01 10:39:41,753 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:39:41,753 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:39:41,753 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:39:41,753 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:39:41,753 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:39:41,753 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:39:07', tmtdew=9.57, humidity=51.29, cloud=0.0, wind=33.08, temperature=9.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:38:55.277', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:39:41,754 [DEBUG][       Thread-601929][   transport.py][1871] : EOF in transport thread
2025-07-01 10:39:41,826 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:39:41,835 [DEBUG][       Thread-601932][   transport.py][1871] : starting thread (client mode): 0x81e7880
2025-07-01 10:39:41,835 [DEBUG][       Thread-601932][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:39:41,850 [DEBUG][       Thread-601932][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:39:41,850 [ INFO][       Thread-601932][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:39:41,858 [DEBUG][       Thread-601932][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:39:41,858 [DEBUG][       Thread-601932][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:39:41,858 [DEBUG][       Thread-601932][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:39:41,858 [DEBUG][       Thread-601932][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:39:41,858 [DEBUG][       Thread-601932][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:39:41,858 [DEBUG][       Thread-601932][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:39:41,858 [DEBUG][       Thread-601932][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:39:41,858 [DEBUG][       Thread-601932][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:39:41,858 [DEBUG][       Thread-601932][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:39:41,858 [DEBUG][       Thread-601932][   transport.py][1871] : client lang: <none>
2025-07-01 10:39:41,858 [DEBUG][       Thread-601932][   transport.py][1871] : server lang: <none>
2025-07-01 10:39:41,858 [DEBUG][       Thread-601932][   transport.py][1871] : kex follows: False
2025-07-01 10:39:41,858 [DEBUG][       Thread-601932][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:39:41,858 [DEBUG][       Thread-601932][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:39:41,858 [DEBUG][       Thread-601932][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:39:41,858 [DEBUG][       Thread-601932][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:39:41,858 [DEBUG][       Thread-601932][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:39:41,858 [DEBUG][       Thread-601932][   transport.py][1871] : Compression: none
2025-07-01 10:39:41,858 [DEBUG][       Thread-601932][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:39:41,919 [DEBUG][       Thread-601932][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:39:41,919 [DEBUG][       Thread-601932][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:39:41,919 [DEBUG][       Thread-601932][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:39:41,919 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:39:41,919 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:39:41,977 [DEBUG][       Thread-601932][   transport.py][1871] : userauth is OK
2025-07-01 10:39:41,977 [DEBUG][       Thread-601932][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:39:41,977 [DEBUG][       Thread-601932][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:39:41,977 [DEBUG][       Thread-601932][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:39:41,978 [DEBUG][       Thread-601932][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:39:41,991 [ INFO][       Thread-601932][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:39:41,991 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:39:41,992 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:39:43,007 [DEBUG][       Thread-601932][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:39:43,007 [DEBUG][       Thread-601932][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:39:43,055 [DEBUG][       Thread-601932][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:39:43,055 [DEBUG][       Thread-601932][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:39:43,055 [DEBUG][Thread-601934 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:39:43,063 [DEBUG][       Thread-601932][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:39:43,071 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:39:43,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-07-01 10:39:43,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-07-01 10:39:43,086 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:39:43,087 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:39:43,087 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:39:43,094 [DEBUG][       Thread-601932][   transport.py][1871] : EOF in transport thread
2025-07-01 10:39:52,077 [DEBUG][Thread-601935 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:39:53,097 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:39:53,097 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:39:53,097 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:39:53,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-07-01 10:39:53,578 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 39, 38), 9.58, 51.37, 0.0, 32.11, 9.46, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:39:53,579 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:39:38
2025-07-01 10:39:53,662 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:39:53,668 [DEBUG][       Thread-601936][   transport.py][1871] : starting thread (client mode): 0x75aa200
2025-07-01 10:39:53,668 [DEBUG][       Thread-601936][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:39:53,688 [DEBUG][       Thread-601936][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:39:53,688 [ INFO][       Thread-601936][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:39:53,691 [DEBUG][       Thread-601936][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:39:53,692 [DEBUG][       Thread-601936][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:39:53,692 [DEBUG][       Thread-601936][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:39:53,692 [DEBUG][       Thread-601936][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:39:53,692 [DEBUG][       Thread-601936][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:39:53,692 [DEBUG][       Thread-601936][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:39:53,692 [DEBUG][       Thread-601936][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:39:53,692 [DEBUG][       Thread-601936][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:39:53,692 [DEBUG][       Thread-601936][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:39:53,692 [DEBUG][       Thread-601936][   transport.py][1871] : client lang: <none>
2025-07-01 10:39:53,692 [DEBUG][       Thread-601936][   transport.py][1871] : server lang: <none>
2025-07-01 10:39:53,692 [DEBUG][       Thread-601936][   transport.py][1871] : kex follows: False
2025-07-01 10:39:53,692 [DEBUG][       Thread-601936][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:39:53,692 [DEBUG][       Thread-601936][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:39:53,692 [DEBUG][       Thread-601936][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:39:53,692 [DEBUG][       Thread-601936][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:39:53,692 [DEBUG][       Thread-601936][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:39:53,692 [DEBUG][       Thread-601936][   transport.py][1871] : Compression: none
2025-07-01 10:39:53,692 [DEBUG][       Thread-601936][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:39:53,700 [DEBUG][       Thread-601936][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:39:53,701 [DEBUG][       Thread-601936][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:39:53,701 [DEBUG][       Thread-601936][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:39:53,702 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:39:53,702 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:39:53,703 [DEBUG][       Thread-601936][   transport.py][1871] : userauth is OK
2025-07-01 10:39:53,716 [ INFO][       Thread-601936][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:39:53,717 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:39:54,295 [DEBUG][       Thread-601936][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:39:54,295 [DEBUG][       Thread-601936][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:39:54,337 [DEBUG][       Thread-601936][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:39:54,337 [DEBUG][       Thread-601936][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:39:54,341 [DEBUG][       Thread-601936][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:39:54,347 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:39:54,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:39:54,349 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:39:54,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:39:54,357 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:39:54,358 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:39:54,359 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:39:54,359 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:39:54,359 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.360362 -999.00   +9.40  39.02     55   +1.00 1 2 2 1 1   887    0 7.87 -22.00 ----- 39.0 39.0 35.0 45.7 11.8 -23.8 11.1 -23.3 10.7 -22.1 11.3 -22.9
2025-07-01 10:39:54,359 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:39:54,359 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:39:54,360 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.360362
2025-07-01 10:39:54,360 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:39:54,361 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:39:54,361 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:39:54,361 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:39:54,361 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:39:54,361 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:39:38', tmtdew=9.58, humidity=51.37, cloud=0.0, wind=32.11, temperature=9.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:38:55.277', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:39:54,362 [DEBUG][       Thread-601936][   transport.py][1871] : EOF in transport thread
2025-07-01 10:39:54,444 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:39:54,454 [DEBUG][       Thread-601939][   transport.py][1871] : starting thread (client mode): 0x81a5330
2025-07-01 10:39:54,454 [DEBUG][       Thread-601939][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:39:54,469 [DEBUG][       Thread-601939][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:39:54,470 [ INFO][       Thread-601939][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:39:54,477 [DEBUG][       Thread-601939][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:39:54,477 [DEBUG][       Thread-601939][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:39:54,477 [DEBUG][       Thread-601939][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:39:54,477 [DEBUG][       Thread-601939][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:39:54,477 [DEBUG][       Thread-601939][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:39:54,477 [DEBUG][       Thread-601939][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:39:54,478 [DEBUG][       Thread-601939][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:39:54,478 [DEBUG][       Thread-601939][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:39:54,478 [DEBUG][       Thread-601939][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:39:54,478 [DEBUG][       Thread-601939][   transport.py][1871] : client lang: <none>
2025-07-01 10:39:54,478 [DEBUG][       Thread-601939][   transport.py][1871] : server lang: <none>
2025-07-01 10:39:54,478 [DEBUG][       Thread-601939][   transport.py][1871] : kex follows: False
2025-07-01 10:39:54,478 [DEBUG][       Thread-601939][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:39:54,478 [DEBUG][       Thread-601939][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:39:54,478 [DEBUG][       Thread-601939][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:39:54,478 [DEBUG][       Thread-601939][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:39:54,478 [DEBUG][       Thread-601939][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:39:54,478 [DEBUG][       Thread-601939][   transport.py][1871] : Compression: none
2025-07-01 10:39:54,478 [DEBUG][       Thread-601939][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:39:54,538 [DEBUG][       Thread-601939][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:39:54,539 [DEBUG][       Thread-601939][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:39:54,539 [DEBUG][       Thread-601939][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:39:54,540 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:39:54,541 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:39:54,594 [DEBUG][       Thread-601939][   transport.py][1871] : userauth is OK
2025-07-01 10:39:54,594 [DEBUG][       Thread-601939][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:39:54,595 [DEBUG][       Thread-601939][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:39:54,595 [DEBUG][       Thread-601939][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:39:54,595 [DEBUG][       Thread-601939][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:39:54,613 [ INFO][       Thread-601939][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:39:54,614 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:39:54,614 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:39:55,600 [DEBUG][       Thread-601939][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:39:55,600 [DEBUG][       Thread-601939][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:39:55,648 [DEBUG][       Thread-601939][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:39:55,648 [DEBUG][       Thread-601939][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:39:55,657 [DEBUG][       Thread-601939][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:39:55,666 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:39:55,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-07-01 10:39:55,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-07-01 10:39:55,685 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:39:55,685 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:39:55,685 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:39:55,693 [DEBUG][       Thread-601939][   transport.py][1871] : EOF in transport thread
2025-07-01 10:40:01,069 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:40:01,070 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:40:01,097 [DEBUG][Thread-601941 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:40:05,696 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:40:05,696 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:40:05,696 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:40:05,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-07-01 10:40:06,179 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 39, 38), 9.58, 51.37, 0.0, 32.11, 9.46, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:40:06,179 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:39:38
2025-07-01 10:40:06,262 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:40:06,266 [DEBUG][       Thread-601942][   transport.py][1871] : starting thread (client mode): 0x75ab3d0
2025-07-01 10:40:06,266 [DEBUG][       Thread-601942][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:40:06,286 [DEBUG][       Thread-601942][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:40:06,286 [ INFO][       Thread-601942][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:40:06,290 [DEBUG][       Thread-601942][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:40:06,290 [DEBUG][       Thread-601942][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:40:06,290 [DEBUG][       Thread-601942][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:40:06,290 [DEBUG][       Thread-601942][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:40:06,290 [DEBUG][       Thread-601942][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:40:06,290 [DEBUG][       Thread-601942][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:40:06,290 [DEBUG][       Thread-601942][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:40:06,290 [DEBUG][       Thread-601942][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:40:06,290 [DEBUG][       Thread-601942][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:40:06,290 [DEBUG][       Thread-601942][   transport.py][1871] : client lang: <none>
2025-07-01 10:40:06,290 [DEBUG][       Thread-601942][   transport.py][1871] : server lang: <none>
2025-07-01 10:40:06,290 [DEBUG][       Thread-601942][   transport.py][1871] : kex follows: False
2025-07-01 10:40:06,290 [DEBUG][       Thread-601942][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:40:06,290 [DEBUG][       Thread-601942][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:40:06,290 [DEBUG][       Thread-601942][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:40:06,290 [DEBUG][       Thread-601942][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:40:06,290 [DEBUG][       Thread-601942][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:40:06,290 [DEBUG][       Thread-601942][   transport.py][1871] : Compression: none
2025-07-01 10:40:06,290 [DEBUG][       Thread-601942][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:40:06,308 [DEBUG][       Thread-601942][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:40:06,308 [DEBUG][       Thread-601942][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:40:06,309 [DEBUG][       Thread-601942][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:40:06,309 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:40:06,309 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:40:06,310 [DEBUG][       Thread-601942][   transport.py][1871] : userauth is OK
2025-07-01 10:40:06,323 [ INFO][       Thread-601942][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:40:06,323 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:40:06,955 [DEBUG][       Thread-601942][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:40:06,956 [DEBUG][       Thread-601942][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:40:06,997 [DEBUG][       Thread-601942][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:40:06,997 [DEBUG][       Thread-601942][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:40:07,001 [DEBUG][       Thread-601942][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:40:07,015 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:40:07,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:40:07,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:40:07,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:40:07,024 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:40:07,026 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:40:07,026 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:40:07,027 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:40:07,027 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.360710 -999.00   +9.40  36.95     55   +1.00 1 1 2 1 1   887    0 7.81 -21.74 ----- 37.0 37.0 39.0 49.9 11.9 -23.4 11.2 -23.5 10.7 -23.0 11.4 -22.2
2025-07-01 10:40:07,027 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:40:07,027 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:40:07,027 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.360710
2025-07-01 10:40:07,028 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:40:07,028 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:40:07,028 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:40:07,028 [DEBUG][       Thread-601942][   transport.py][1871] : EOF in transport thread
2025-07-01 10:40:07,029 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:40:07,029 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:40:07,029 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:39:38', tmtdew=9.58, humidity=51.37, cloud=0.0, wind=32.11, temperature=9.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:39:25.344', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:40:07,112 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:40:07,121 [DEBUG][       Thread-601945][   transport.py][1871] : starting thread (client mode): 0x818fd60
2025-07-01 10:40:07,121 [DEBUG][       Thread-601945][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:40:07,140 [DEBUG][       Thread-601945][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:40:07,140 [ INFO][       Thread-601945][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:40:07,148 [DEBUG][       Thread-601945][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:40:07,148 [DEBUG][       Thread-601945][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:40:07,148 [DEBUG][       Thread-601945][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:40:07,148 [DEBUG][       Thread-601945][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:40:07,149 [DEBUG][       Thread-601945][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:40:07,149 [DEBUG][       Thread-601945][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:40:07,149 [DEBUG][       Thread-601945][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:40:07,149 [DEBUG][       Thread-601945][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:40:07,149 [DEBUG][       Thread-601945][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:40:07,149 [DEBUG][       Thread-601945][   transport.py][1871] : client lang: <none>
2025-07-01 10:40:07,149 [DEBUG][       Thread-601945][   transport.py][1871] : server lang: <none>
2025-07-01 10:40:07,149 [DEBUG][       Thread-601945][   transport.py][1871] : kex follows: False
2025-07-01 10:40:07,149 [DEBUG][       Thread-601945][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:40:07,149 [DEBUG][       Thread-601945][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:40:07,149 [DEBUG][       Thread-601945][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:40:07,149 [DEBUG][       Thread-601945][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:40:07,149 [DEBUG][       Thread-601945][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:40:07,149 [DEBUG][       Thread-601945][   transport.py][1871] : Compression: none
2025-07-01 10:40:07,149 [DEBUG][       Thread-601945][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:40:07,206 [DEBUG][       Thread-601945][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:40:07,206 [DEBUG][       Thread-601945][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:40:07,207 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:40:07,207 [DEBUG][       Thread-601945][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:40:07,208 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:40:07,262 [DEBUG][       Thread-601945][   transport.py][1871] : userauth is OK
2025-07-01 10:40:07,262 [DEBUG][       Thread-601945][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:40:07,262 [DEBUG][       Thread-601945][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:40:07,262 [DEBUG][       Thread-601945][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:40:07,263 [DEBUG][       Thread-601945][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:40:07,281 [ INFO][       Thread-601945][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:40:07,282 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:40:07,282 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:40:08,282 [DEBUG][       Thread-601945][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:40:08,282 [DEBUG][       Thread-601945][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:40:08,332 [DEBUG][       Thread-601945][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:40:08,332 [DEBUG][       Thread-601945][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:40:08,341 [DEBUG][       Thread-601945][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:40:08,350 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:40:08,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-07-01 10:40:08,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-07-01 10:40:08,370 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:40:08,370 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:40:08,370 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:40:08,378 [DEBUG][       Thread-601945][   transport.py][1871] : EOF in transport thread
2025-07-01 10:40:10,121 [DEBUG][Thread-601947 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:40:18,381 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:40:18,381 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:40:18,381 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:40:18,384 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:40:18,905 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 40, 10), 9.59, 51.22, 0.0, 28.94, 9.49, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:40:18,905 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:40:10
2025-07-01 10:40:18,991 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:40:18,996 [DEBUG][       Thread-601948][   transport.py][1871] : starting thread (client mode): 0x75a8a00
2025-07-01 10:40:18,997 [DEBUG][       Thread-601948][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:40:19,024 [DEBUG][       Thread-601948][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:40:19,024 [ INFO][       Thread-601948][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:40:19,028 [DEBUG][       Thread-601948][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:40:19,028 [DEBUG][       Thread-601948][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:40:19,028 [DEBUG][       Thread-601948][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:40:19,028 [DEBUG][       Thread-601948][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:40:19,028 [DEBUG][       Thread-601948][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:40:19,028 [DEBUG][       Thread-601948][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:40:19,028 [DEBUG][       Thread-601948][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:40:19,028 [DEBUG][       Thread-601948][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:40:19,028 [DEBUG][       Thread-601948][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:40:19,028 [DEBUG][       Thread-601948][   transport.py][1871] : client lang: <none>
2025-07-01 10:40:19,028 [DEBUG][       Thread-601948][   transport.py][1871] : server lang: <none>
2025-07-01 10:40:19,028 [DEBUG][       Thread-601948][   transport.py][1871] : kex follows: False
2025-07-01 10:40:19,028 [DEBUG][       Thread-601948][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:40:19,028 [DEBUG][       Thread-601948][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:40:19,028 [DEBUG][       Thread-601948][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:40:19,028 [DEBUG][       Thread-601948][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:40:19,028 [DEBUG][       Thread-601948][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:40:19,028 [DEBUG][       Thread-601948][   transport.py][1871] : Compression: none
2025-07-01 10:40:19,028 [DEBUG][       Thread-601948][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:40:19,040 [DEBUG][       Thread-601948][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:40:19,040 [DEBUG][       Thread-601948][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:40:19,040 [DEBUG][       Thread-601948][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:40:19,040 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:40:19,040 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:40:19,041 [DEBUG][       Thread-601948][   transport.py][1871] : userauth is OK
2025-07-01 10:40:19,064 [ INFO][       Thread-601948][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:40:19,065 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:40:19,158 [DEBUG][Thread-601950 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:40:19,755 [DEBUG][       Thread-601948][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:40:19,755 [DEBUG][       Thread-601948][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:40:19,796 [DEBUG][       Thread-601948][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:40:19,796 [DEBUG][       Thread-601948][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:40:19,798 [DEBUG][       Thread-601948][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:40:19,814 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:40:19,814 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:40:19,815 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:40:19,816 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:40:19,819 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:40:19,820 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:40:19,820 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:40:19,820 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:40:19,820 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.360710 -999.00   +9.40  36.95     55   +1.00 1 1 2 1 1   887    0 7.81 -21.74 ----- 37.0 37.0 39.0 49.9 11.9 -23.4 11.2 -23.5 10.7 -23.0 11.4 -22.2
2025-07-01 10:40:19,820 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:40:19,820 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:40:19,820 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.360710
2025-07-01 10:40:19,820 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:40:19,820 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:40:19,820 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:40:19,820 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:40:19,820 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:40:19,820 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:40:10', tmtdew=9.59, humidity=51.22, cloud=0.0, wind=28.94, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:39:25.344', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:40:19,821 [DEBUG][       Thread-601948][   transport.py][1871] : EOF in transport thread
2025-07-01 10:40:19,892 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:40:19,903 [DEBUG][       Thread-601952][   transport.py][1871] : starting thread (client mode): 0x8393b80
2025-07-01 10:40:19,903 [DEBUG][       Thread-601952][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:40:19,922 [DEBUG][       Thread-601952][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:40:19,922 [ INFO][       Thread-601952][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:40:19,930 [DEBUG][       Thread-601952][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:40:19,930 [DEBUG][       Thread-601952][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:40:19,930 [DEBUG][       Thread-601952][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:40:19,930 [DEBUG][       Thread-601952][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:40:19,930 [DEBUG][       Thread-601952][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:40:19,930 [DEBUG][       Thread-601952][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:40:19,930 [DEBUG][       Thread-601952][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:40:19,930 [DEBUG][       Thread-601952][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:40:19,930 [DEBUG][       Thread-601952][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:40:19,930 [DEBUG][       Thread-601952][   transport.py][1871] : client lang: <none>
2025-07-01 10:40:19,930 [DEBUG][       Thread-601952][   transport.py][1871] : server lang: <none>
2025-07-01 10:40:19,930 [DEBUG][       Thread-601952][   transport.py][1871] : kex follows: False
2025-07-01 10:40:19,930 [DEBUG][       Thread-601952][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:40:19,930 [DEBUG][       Thread-601952][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:40:19,930 [DEBUG][       Thread-601952][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:40:19,930 [DEBUG][       Thread-601952][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:40:19,930 [DEBUG][       Thread-601952][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:40:19,930 [DEBUG][       Thread-601952][   transport.py][1871] : Compression: none
2025-07-01 10:40:19,930 [DEBUG][       Thread-601952][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:40:19,988 [DEBUG][       Thread-601952][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:40:19,988 [DEBUG][       Thread-601952][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:40:19,988 [DEBUG][       Thread-601952][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:40:19,988 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:40:19,989 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:40:20,045 [DEBUG][       Thread-601952][   transport.py][1871] : userauth is OK
2025-07-01 10:40:20,045 [DEBUG][       Thread-601952][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:40:20,045 [DEBUG][       Thread-601952][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:40:20,045 [DEBUG][       Thread-601952][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:40:20,045 [DEBUG][       Thread-601952][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:40:20,061 [ INFO][       Thread-601952][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:40:20,061 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:40:20,061 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:40:21,061 [DEBUG][       Thread-601952][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:40:21,061 [DEBUG][       Thread-601952][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:40:21,111 [DEBUG][       Thread-601952][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:40:21,111 [DEBUG][       Thread-601952][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:40:21,120 [DEBUG][       Thread-601952][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:40:21,128 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:40:21,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-07-01 10:40:21,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-07-01 10:40:21,143 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:40:21,144 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:40:21,144 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:40:21,151 [DEBUG][       Thread-601952][   transport.py][1871] : EOF in transport thread
2025-07-01 10:40:23,748 [DEBUG][Thread-601954 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:40:28,177 [DEBUG][Thread-601955 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:40:31,154 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:40:31,154 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:40:31,155 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:40:31,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-07-01 10:40:31,642 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 40, 10), 9.59, 51.22, 0.0, 28.94, 9.49, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:40:31,642 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:40:10
2025-07-01 10:40:31,727 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:40:31,731 [DEBUG][       Thread-601956][   transport.py][1871] : starting thread (client mode): 0x75ab370
2025-07-01 10:40:31,731 [DEBUG][       Thread-601956][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:40:31,746 [DEBUG][       Thread-601956][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:40:31,746 [ INFO][       Thread-601956][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:40:31,748 [DEBUG][       Thread-601956][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:40:31,748 [DEBUG][       Thread-601956][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:40:31,748 [DEBUG][       Thread-601956][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:40:31,748 [DEBUG][       Thread-601956][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:40:31,748 [DEBUG][       Thread-601956][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:40:31,748 [DEBUG][       Thread-601956][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:40:31,748 [DEBUG][       Thread-601956][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:40:31,748 [DEBUG][       Thread-601956][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:40:31,748 [DEBUG][       Thread-601956][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:40:31,748 [DEBUG][       Thread-601956][   transport.py][1871] : client lang: <none>
2025-07-01 10:40:31,748 [DEBUG][       Thread-601956][   transport.py][1871] : server lang: <none>
2025-07-01 10:40:31,748 [DEBUG][       Thread-601956][   transport.py][1871] : kex follows: False
2025-07-01 10:40:31,748 [DEBUG][       Thread-601956][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:40:31,748 [DEBUG][       Thread-601956][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:40:31,749 [DEBUG][       Thread-601956][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:40:31,749 [DEBUG][       Thread-601956][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:40:31,749 [DEBUG][       Thread-601956][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:40:31,749 [DEBUG][       Thread-601956][   transport.py][1871] : Compression: none
2025-07-01 10:40:31,749 [DEBUG][       Thread-601956][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:40:31,756 [DEBUG][       Thread-601956][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:40:31,756 [DEBUG][       Thread-601956][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:40:31,756 [DEBUG][       Thread-601956][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:40:31,757 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:40:31,757 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:40:31,758 [DEBUG][       Thread-601956][   transport.py][1871] : userauth is OK
2025-07-01 10:40:31,770 [ INFO][       Thread-601956][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:40:31,771 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:40:32,336 [DEBUG][       Thread-601956][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:40:32,336 [DEBUG][       Thread-601956][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:40:32,377 [DEBUG][       Thread-601956][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:40:32,377 [DEBUG][       Thread-601956][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:40:32,379 [DEBUG][       Thread-601956][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:40:32,388 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:40:32,388 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:40:32,390 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:40:32,391 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:40:32,397 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:40:32,398 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:40:32,399 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:40:32,399 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:40:32,400 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.361404 -999.00   +9.40  38.87     55   +1.00 1 1 2 1 1   887    0 7.85 -21.32 ----- 38.9 38.9 25.8 53.3 11.8 -24.7 11.2 -23.6 10.6 -23.2 11.3 -24.3
2025-07-01 10:40:32,400 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:40:32,400 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:40:32,400 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.361404
2025-07-01 10:40:32,400 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:40:32,401 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:40:32,401 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:40:32,401 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:40:32,401 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:40:32,401 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:40:10', tmtdew=9.59, humidity=51.22, cloud=0.0, wind=28.94, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:40:25.306', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:40:32,402 [DEBUG][       Thread-601956][   transport.py][1871] : EOF in transport thread
2025-07-01 10:40:32,485 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:40:32,495 [DEBUG][       Thread-601959][   transport.py][1871] : starting thread (client mode): 0x81e6500
2025-07-01 10:40:32,495 [DEBUG][       Thread-601959][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:40:32,510 [DEBUG][       Thread-601959][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:40:32,510 [ INFO][       Thread-601959][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:40:32,517 [DEBUG][       Thread-601959][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:40:32,517 [DEBUG][       Thread-601959][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:40:32,518 [DEBUG][       Thread-601959][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:40:32,518 [DEBUG][       Thread-601959][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:40:32,518 [DEBUG][       Thread-601959][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:40:32,518 [DEBUG][       Thread-601959][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:40:32,518 [DEBUG][       Thread-601959][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:40:32,518 [DEBUG][       Thread-601959][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:40:32,518 [DEBUG][       Thread-601959][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:40:32,518 [DEBUG][       Thread-601959][   transport.py][1871] : client lang: <none>
2025-07-01 10:40:32,518 [DEBUG][       Thread-601959][   transport.py][1871] : server lang: <none>
2025-07-01 10:40:32,518 [DEBUG][       Thread-601959][   transport.py][1871] : kex follows: False
2025-07-01 10:40:32,518 [DEBUG][       Thread-601959][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:40:32,518 [DEBUG][       Thread-601959][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:40:32,518 [DEBUG][       Thread-601959][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:40:32,518 [DEBUG][       Thread-601959][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:40:32,518 [DEBUG][       Thread-601959][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:40:32,518 [DEBUG][       Thread-601959][   transport.py][1871] : Compression: none
2025-07-01 10:40:32,518 [DEBUG][       Thread-601959][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:40:32,574 [DEBUG][       Thread-601959][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:40:32,575 [DEBUG][       Thread-601959][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:40:32,575 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:40:32,576 [DEBUG][       Thread-601959][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:40:32,576 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:40:32,630 [DEBUG][       Thread-601959][   transport.py][1871] : userauth is OK
2025-07-01 10:40:32,630 [DEBUG][       Thread-601959][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:40:32,630 [DEBUG][       Thread-601959][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:40:32,630 [DEBUG][       Thread-601959][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:40:32,630 [DEBUG][       Thread-601959][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:40:32,649 [ INFO][       Thread-601959][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:40:32,649 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:40:32,650 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:40:33,681 [DEBUG][       Thread-601959][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:40:33,681 [DEBUG][       Thread-601959][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:40:33,732 [DEBUG][       Thread-601959][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:40:33,732 [DEBUG][       Thread-601959][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:40:33,741 [DEBUG][       Thread-601959][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:40:33,750 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:40:33,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-07-01 10:40:33,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-07-01 10:40:33,768 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:40:33,769 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:40:33,769 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:40:33,777 [DEBUG][       Thread-601959][   transport.py][1871] : EOF in transport thread
2025-07-01 10:40:37,212 [DEBUG][Thread-601961 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:40:43,776 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:40:43,776 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:40:43,776 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:40:43,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-07-01 10:40:44,289 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 40, 10), 9.59, 51.22, 0.0, 28.94, 9.49, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:40:44,289 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:40:10
2025-07-01 10:40:44,378 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:40:44,381 [DEBUG][       Thread-601962][   transport.py][1871] : starting thread (client mode): 0x75a9660
2025-07-01 10:40:44,381 [DEBUG][       Thread-601962][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:40:44,402 [DEBUG][       Thread-601962][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:40:44,402 [ INFO][       Thread-601962][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:40:44,406 [DEBUG][       Thread-601962][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:40:44,406 [DEBUG][       Thread-601962][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:40:44,406 [DEBUG][       Thread-601962][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:40:44,406 [DEBUG][       Thread-601962][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:40:44,406 [DEBUG][       Thread-601962][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:40:44,406 [DEBUG][       Thread-601962][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:40:44,406 [DEBUG][       Thread-601962][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:40:44,406 [DEBUG][       Thread-601962][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:40:44,406 [DEBUG][       Thread-601962][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:40:44,406 [DEBUG][       Thread-601962][   transport.py][1871] : client lang: <none>
2025-07-01 10:40:44,406 [DEBUG][       Thread-601962][   transport.py][1871] : server lang: <none>
2025-07-01 10:40:44,406 [DEBUG][       Thread-601962][   transport.py][1871] : kex follows: False
2025-07-01 10:40:44,406 [DEBUG][       Thread-601962][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:40:44,406 [DEBUG][       Thread-601962][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:40:44,406 [DEBUG][       Thread-601962][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:40:44,406 [DEBUG][       Thread-601962][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:40:44,406 [DEBUG][       Thread-601962][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:40:44,406 [DEBUG][       Thread-601962][   transport.py][1871] : Compression: none
2025-07-01 10:40:44,406 [DEBUG][       Thread-601962][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:40:44,419 [DEBUG][       Thread-601962][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:40:44,419 [DEBUG][       Thread-601962][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:40:44,420 [DEBUG][       Thread-601962][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:40:44,420 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:40:44,420 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:40:44,420 [DEBUG][       Thread-601962][   transport.py][1871] : userauth is OK
2025-07-01 10:40:44,444 [ INFO][       Thread-601962][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:40:44,444 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:40:45,075 [DEBUG][       Thread-601962][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:40:45,075 [DEBUG][       Thread-601962][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:40:45,117 [DEBUG][       Thread-601962][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:40:45,117 [DEBUG][       Thread-601962][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:40:45,121 [DEBUG][       Thread-601962][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:40:45,132 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:40:45,132 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:40:45,134 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:40:45,136 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:40:45,142 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:40:45,144 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:40:45,144 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:40:45,145 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:40:45,145 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.361404 -999.00   +9.40  38.87     55   +1.00 1 1 2 1 1   887    0 7.85 -21.32 ----- 38.9 38.9 25.8 53.3 11.8 -24.7 11.2 -23.6 10.6 -23.2 11.3 -24.3
2025-07-01 10:40:45,145 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:40:45,145 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:40:45,145 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.361404
2025-07-01 10:40:45,146 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:40:45,146 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:40:45,146 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:40:45,146 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:40:45,146 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:40:45,147 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:40:10', tmtdew=9.59, humidity=51.22, cloud=0.0, wind=28.94, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:40:25.306', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:40:45,147 [DEBUG][       Thread-601962][   transport.py][1871] : EOF in transport thread
2025-07-01 10:40:45,230 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:40:45,239 [DEBUG][       Thread-601965][   transport.py][1871] : starting thread (client mode): 0x818d9f0
2025-07-01 10:40:45,240 [DEBUG][       Thread-601965][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:40:45,260 [DEBUG][       Thread-601965][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:40:45,260 [ INFO][       Thread-601965][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:40:45,273 [DEBUG][       Thread-601965][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:40:45,273 [DEBUG][       Thread-601965][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:40:45,273 [DEBUG][       Thread-601965][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:40:45,273 [DEBUG][       Thread-601965][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:40:45,273 [DEBUG][       Thread-601965][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:40:45,273 [DEBUG][       Thread-601965][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:40:45,274 [DEBUG][       Thread-601965][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:40:45,274 [DEBUG][       Thread-601965][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:40:45,274 [DEBUG][       Thread-601965][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:40:45,274 [DEBUG][       Thread-601965][   transport.py][1871] : client lang: <none>
2025-07-01 10:40:45,274 [DEBUG][       Thread-601965][   transport.py][1871] : server lang: <none>
2025-07-01 10:40:45,274 [DEBUG][       Thread-601965][   transport.py][1871] : kex follows: False
2025-07-01 10:40:45,274 [DEBUG][       Thread-601965][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:40:45,274 [DEBUG][       Thread-601965][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:40:45,274 [DEBUG][       Thread-601965][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:40:45,274 [DEBUG][       Thread-601965][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:40:45,274 [DEBUG][       Thread-601965][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:40:45,274 [DEBUG][       Thread-601965][   transport.py][1871] : Compression: none
2025-07-01 10:40:45,274 [DEBUG][       Thread-601965][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:40:45,326 [DEBUG][       Thread-601965][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:40:45,326 [DEBUG][       Thread-601965][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:40:45,327 [DEBUG][       Thread-601965][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:40:45,327 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:40:45,328 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:40:45,382 [DEBUG][       Thread-601965][   transport.py][1871] : userauth is OK
2025-07-01 10:40:45,383 [DEBUG][       Thread-601965][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:40:45,383 [DEBUG][       Thread-601965][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:40:45,383 [DEBUG][       Thread-601965][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:40:45,383 [DEBUG][       Thread-601965][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:40:45,404 [ INFO][       Thread-601965][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:40:45,404 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:40:45,405 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:40:46,233 [DEBUG][Thread-601967 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:40:46,425 [DEBUG][       Thread-601965][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:40:46,425 [DEBUG][       Thread-601965][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:40:46,476 [DEBUG][       Thread-601965][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:40:46,476 [DEBUG][       Thread-601965][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:40:46,485 [DEBUG][       Thread-601965][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:40:46,494 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:40:46,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')
2025-07-01 10:40:46,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-07-01 10:40:46,512 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:40:46,512 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:40:46,513 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:40:46,520 [DEBUG][       Thread-601965][   transport.py][1871] : EOF in transport thread
2025-07-01 10:40:55,256 [DEBUG][Thread-601968 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:40:56,522 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:40:56,522 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:40:56,522 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:40:56,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-07-01 10:40:57,037 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 40, 42), 9.64, 51.03, 0.0, 31.49, 9.45, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:40:57,037 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:40:42
2025-07-01 10:40:57,127 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:40:57,131 [DEBUG][       Thread-601969][   transport.py][1871] : starting thread (client mode): 0x8170130
2025-07-01 10:40:57,131 [DEBUG][       Thread-601969][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:40:57,152 [DEBUG][       Thread-601969][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:40:57,152 [ INFO][       Thread-601969][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:40:57,155 [DEBUG][       Thread-601969][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:40:57,155 [DEBUG][       Thread-601969][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:40:57,155 [DEBUG][       Thread-601969][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:40:57,155 [DEBUG][       Thread-601969][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:40:57,155 [DEBUG][       Thread-601969][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:40:57,155 [DEBUG][       Thread-601969][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:40:57,155 [DEBUG][       Thread-601969][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:40:57,155 [DEBUG][       Thread-601969][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:40:57,155 [DEBUG][       Thread-601969][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:40:57,155 [DEBUG][       Thread-601969][   transport.py][1871] : client lang: <none>
2025-07-01 10:40:57,155 [DEBUG][       Thread-601969][   transport.py][1871] : server lang: <none>
2025-07-01 10:40:57,155 [DEBUG][       Thread-601969][   transport.py][1871] : kex follows: False
2025-07-01 10:40:57,155 [DEBUG][       Thread-601969][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:40:57,155 [DEBUG][       Thread-601969][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:40:57,155 [DEBUG][       Thread-601969][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:40:57,155 [DEBUG][       Thread-601969][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:40:57,155 [DEBUG][       Thread-601969][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:40:57,155 [DEBUG][       Thread-601969][   transport.py][1871] : Compression: none
2025-07-01 10:40:57,155 [DEBUG][       Thread-601969][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:40:57,170 [DEBUG][       Thread-601969][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:40:57,170 [DEBUG][       Thread-601969][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:40:57,170 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:40:57,170 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:40:57,170 [DEBUG][       Thread-601969][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:40:57,171 [DEBUG][       Thread-601969][   transport.py][1871] : userauth is OK
2025-07-01 10:40:57,195 [ INFO][       Thread-601969][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:40:57,195 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:40:57,786 [DEBUG][       Thread-601969][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:40:57,786 [DEBUG][       Thread-601969][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:40:57,828 [DEBUG][       Thread-601969][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:40:57,828 [DEBUG][       Thread-601969][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:40:57,831 [DEBUG][       Thread-601969][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:40:57,842 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:40:57,842 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:40:57,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:40:57,844 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:40:57,846 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:40:57,847 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:40:57,847 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:40:57,847 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:40:57,847 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.361404 -999.00   +9.40  38.87     55   +1.00 1 1 2 1 1   887    0 7.85 -21.32 ----- 38.9 38.9 25.8 53.3 11.8 -24.7 11.2 -23.6 10.6 -23.2 11.3 -24.3
2025-07-01 10:40:57,847 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:40:57,847 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:40:57,847 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.361404
2025-07-01 10:40:57,847 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:40:57,847 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:40:57,848 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:40:57,848 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:40:57,848 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:40:57,848 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:40:42', tmtdew=9.64, humidity=51.03, cloud=0.0, wind=31.49, temperature=9.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:40:25.306', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:40:57,848 [DEBUG][       Thread-601969][   transport.py][1871] : EOF in transport thread
2025-07-01 10:40:57,923 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:40:57,935 [DEBUG][       Thread-601972][   transport.py][1871] : starting thread (client mode): 0x81a4c40
2025-07-01 10:40:57,935 [DEBUG][       Thread-601972][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:40:57,957 [DEBUG][       Thread-601972][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:40:57,957 [ INFO][       Thread-601972][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:40:57,967 [DEBUG][       Thread-601972][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:40:57,967 [DEBUG][       Thread-601972][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:40:57,967 [DEBUG][       Thread-601972][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:40:57,967 [DEBUG][       Thread-601972][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:40:57,967 [DEBUG][       Thread-601972][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:40:57,967 [DEBUG][       Thread-601972][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:40:57,967 [DEBUG][       Thread-601972][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:40:57,967 [DEBUG][       Thread-601972][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:40:57,967 [DEBUG][       Thread-601972][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:40:57,967 [DEBUG][       Thread-601972][   transport.py][1871] : client lang: <none>
2025-07-01 10:40:57,967 [DEBUG][       Thread-601972][   transport.py][1871] : server lang: <none>
2025-07-01 10:40:57,967 [DEBUG][       Thread-601972][   transport.py][1871] : kex follows: False
2025-07-01 10:40:57,967 [DEBUG][       Thread-601972][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:40:57,967 [DEBUG][       Thread-601972][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:40:57,967 [DEBUG][       Thread-601972][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:40:57,967 [DEBUG][       Thread-601972][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:40:57,967 [DEBUG][       Thread-601972][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:40:57,967 [DEBUG][       Thread-601972][   transport.py][1871] : Compression: none
2025-07-01 10:40:57,967 [DEBUG][       Thread-601972][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:40:58,025 [DEBUG][       Thread-601972][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:40:58,026 [DEBUG][       Thread-601972][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:40:58,026 [DEBUG][       Thread-601972][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:40:58,026 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:40:58,026 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:40:58,081 [DEBUG][       Thread-601972][   transport.py][1871] : userauth is OK
2025-07-01 10:40:58,081 [DEBUG][       Thread-601972][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:40:58,081 [DEBUG][       Thread-601972][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:40:58,081 [DEBUG][       Thread-601972][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:40:58,081 [DEBUG][       Thread-601972][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:40:58,096 [ INFO][       Thread-601972][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:40:58,096 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:40:58,096 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:40:59,112 [DEBUG][       Thread-601972][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:40:59,112 [DEBUG][       Thread-601972][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:40:59,163 [DEBUG][       Thread-601972][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:40:59,163 [DEBUG][       Thread-601972][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:40:59,172 [DEBUG][       Thread-601972][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:40:59,180 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:40:59,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')
2025-07-01 10:40:59,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-07-01 10:40:59,195 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:40:59,195 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:40:59,195 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:40:59,203 [DEBUG][       Thread-601972][   transport.py][1871] : EOF in transport thread
2025-07-01 10:41:01,208 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:41:01,208 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:41:04,276 [DEBUG][Thread-601974 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:41:09,206 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:41:09,206 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:41:09,206 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:41:09,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-07-01 10:41:09,683 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 40, 42), 9.64, 51.03, 0.0, 31.49, 9.45, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:41:09,684 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:40:42
2025-07-01 10:41:09,768 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:41:09,772 [DEBUG][       Thread-601975][   transport.py][1871] : starting thread (client mode): 0x75a8cd0
2025-07-01 10:41:09,772 [DEBUG][       Thread-601975][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:41:09,794 [DEBUG][       Thread-601975][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:41:09,794 [ INFO][       Thread-601975][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:41:09,797 [DEBUG][       Thread-601975][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:41:09,797 [DEBUG][       Thread-601975][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:41:09,797 [DEBUG][       Thread-601975][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:41:09,797 [DEBUG][       Thread-601975][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:41:09,797 [DEBUG][       Thread-601975][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:41:09,797 [DEBUG][       Thread-601975][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:41:09,797 [DEBUG][       Thread-601975][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:41:09,797 [DEBUG][       Thread-601975][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:41:09,797 [DEBUG][       Thread-601975][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:41:09,797 [DEBUG][       Thread-601975][   transport.py][1871] : client lang: <none>
2025-07-01 10:41:09,797 [DEBUG][       Thread-601975][   transport.py][1871] : server lang: <none>
2025-07-01 10:41:09,797 [DEBUG][       Thread-601975][   transport.py][1871] : kex follows: False
2025-07-01 10:41:09,797 [DEBUG][       Thread-601975][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:41:09,797 [DEBUG][       Thread-601975][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:41:09,798 [DEBUG][       Thread-601975][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:41:09,798 [DEBUG][       Thread-601975][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:41:09,798 [DEBUG][       Thread-601975][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:41:09,798 [DEBUG][       Thread-601975][   transport.py][1871] : Compression: none
2025-07-01 10:41:09,798 [DEBUG][       Thread-601975][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:41:09,814 [DEBUG][       Thread-601975][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:41:09,815 [DEBUG][       Thread-601975][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:41:09,816 [DEBUG][       Thread-601975][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:41:09,816 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:41:09,816 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:41:09,817 [DEBUG][       Thread-601975][   transport.py][1871] : userauth is OK
2025-07-01 10:41:09,831 [ INFO][       Thread-601975][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:41:09,831 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:41:10,460 [DEBUG][       Thread-601975][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:41:10,460 [DEBUG][       Thread-601975][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:41:10,501 [DEBUG][       Thread-601975][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:41:10,501 [DEBUG][       Thread-601975][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:41:10,505 [DEBUG][       Thread-601975][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:41:10,516 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:41:10,516 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:41:10,518 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:41:10,520 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:41:10,526 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:41:10,528 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:41:10,528 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:41:10,528 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:41:10,529 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.361751 -999.00   +9.40  27.06     56   +1.20 1 1 1 1 1   887    0 7.88 -20.16 ----- 27.1 27.1 21.2 37.3 11.8 -24.1 11.1 -24.3 10.6 -22.8 11.3 -22.8
2025-07-01 10:41:10,529 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:41:10,529 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:41:10,529 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.361751
2025-07-01 10:41:10,529 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:41:10,530 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:41:10,530 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:41:10,530 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:41:10,530 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:41:10,530 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:40:42', tmtdew=9.64, humidity=51.03, cloud=0.0, wind=31.49, temperature=9.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:40:55.286', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:41:10,531 [DEBUG][       Thread-601975][   transport.py][1871] : EOF in transport thread
2025-07-01 10:41:10,614 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:41:10,623 [DEBUG][       Thread-601978][   transport.py][1871] : starting thread (client mode): 0x82b3400
2025-07-01 10:41:10,623 [DEBUG][       Thread-601978][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:41:10,639 [DEBUG][       Thread-601978][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:41:10,639 [ INFO][       Thread-601978][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:41:10,647 [DEBUG][       Thread-601978][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:41:10,648 [DEBUG][       Thread-601978][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:41:10,648 [DEBUG][       Thread-601978][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:41:10,648 [DEBUG][       Thread-601978][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:41:10,648 [DEBUG][       Thread-601978][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:41:10,648 [DEBUG][       Thread-601978][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:41:10,648 [DEBUG][       Thread-601978][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:41:10,648 [DEBUG][       Thread-601978][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:41:10,648 [DEBUG][       Thread-601978][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:41:10,648 [DEBUG][       Thread-601978][   transport.py][1871] : client lang: <none>
2025-07-01 10:41:10,648 [DEBUG][       Thread-601978][   transport.py][1871] : server lang: <none>
2025-07-01 10:41:10,648 [DEBUG][       Thread-601978][   transport.py][1871] : kex follows: False
2025-07-01 10:41:10,648 [DEBUG][       Thread-601978][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:41:10,648 [DEBUG][       Thread-601978][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:41:10,648 [DEBUG][       Thread-601978][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:41:10,648 [DEBUG][       Thread-601978][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:41:10,648 [DEBUG][       Thread-601978][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:41:10,648 [DEBUG][       Thread-601978][   transport.py][1871] : Compression: none
2025-07-01 10:41:10,648 [DEBUG][       Thread-601978][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:41:10,706 [DEBUG][       Thread-601978][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:41:10,707 [DEBUG][       Thread-601978][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:41:10,708 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:41:10,708 [DEBUG][       Thread-601978][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:41:10,709 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:41:10,763 [DEBUG][       Thread-601978][   transport.py][1871] : userauth is OK
2025-07-01 10:41:10,763 [DEBUG][       Thread-601978][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:41:10,763 [DEBUG][       Thread-601978][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:41:10,763 [DEBUG][       Thread-601978][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:41:10,763 [DEBUG][       Thread-601978][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:41:10,783 [ INFO][       Thread-601978][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:41:10,783 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:41:10,784 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:41:11,798 [DEBUG][       Thread-601978][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:41:11,799 [DEBUG][       Thread-601978][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:41:11,848 [DEBUG][       Thread-601978][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:41:11,848 [DEBUG][       Thread-601978][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:41:11,858 [DEBUG][       Thread-601978][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:41:11,867 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:41: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')
2025-07-01 10:41:11,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-07-01 10:41:11,886 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:41:11,886 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:41:11,887 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:41:11,895 [DEBUG][       Thread-601978][   transport.py][1871] : EOF in transport thread
2025-07-01 10:41:13,312 [DEBUG][Thread-601980 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:41:21,897 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:41:21,897 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:41:21,897 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:41:21,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-07-01 10:41:22,330 [DEBUG][Thread-601981 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:41:22,370 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 41, 14), 9.62, 51.1, 0.0, 31.78, 9.41, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:41:22,370 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:41:14
2025-07-01 10:41:22,455 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:41:22,459 [DEBUG][       Thread-601982][   transport.py][1871] : starting thread (client mode): 0x82b2620
2025-07-01 10:41:22,459 [DEBUG][       Thread-601982][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:41:22,479 [DEBUG][       Thread-601982][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:41:22,479 [ INFO][       Thread-601982][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:41:22,483 [DEBUG][       Thread-601982][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:41:22,483 [DEBUG][       Thread-601982][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:41:22,483 [DEBUG][       Thread-601982][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:41:22,483 [DEBUG][       Thread-601982][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:41:22,483 [DEBUG][       Thread-601982][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:41:22,483 [DEBUG][       Thread-601982][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:41:22,483 [DEBUG][       Thread-601982][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:41:22,483 [DEBUG][       Thread-601982][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:41:22,483 [DEBUG][       Thread-601982][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:41:22,483 [DEBUG][       Thread-601982][   transport.py][1871] : client lang: <none>
2025-07-01 10:41:22,483 [DEBUG][       Thread-601982][   transport.py][1871] : server lang: <none>
2025-07-01 10:41:22,483 [DEBUG][       Thread-601982][   transport.py][1871] : kex follows: False
2025-07-01 10:41:22,483 [DEBUG][       Thread-601982][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:41:22,483 [DEBUG][       Thread-601982][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:41:22,483 [DEBUG][       Thread-601982][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:41:22,483 [DEBUG][       Thread-601982][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:41:22,483 [DEBUG][       Thread-601982][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:41:22,483 [DEBUG][       Thread-601982][   transport.py][1871] : Compression: none
2025-07-01 10:41:22,483 [DEBUG][       Thread-601982][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:41:22,500 [DEBUG][       Thread-601982][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:41:22,500 [DEBUG][       Thread-601982][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:41:22,501 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:41:22,501 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:41:22,501 [DEBUG][       Thread-601982][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:41:22,545 [DEBUG][       Thread-601982][   transport.py][1871] : userauth is OK
2025-07-01 10:41:22,569 [ INFO][       Thread-601982][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:41:22,570 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:41:23,224 [DEBUG][       Thread-601982][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:41:23,224 [DEBUG][       Thread-601982][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:41:23,265 [DEBUG][       Thread-601982][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:41:23,265 [DEBUG][       Thread-601982][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:41:23,268 [DEBUG][       Thread-601982][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:41:23,280 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:41:23,280 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:41:23,282 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:41:23,284 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:41:23,290 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:41:23,291 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:41:23,292 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:41:23,292 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:41:23,292 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.361751 -999.00   +9.40  27.06     56   +1.20 1 1 1 1 1   887    0 7.88 -20.16 ----- 27.1 27.1 21.2 37.3 11.8 -24.1 11.1 -24.3 10.6 -22.8 11.3 -22.8
2025-07-01 10:41:23,293 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:41:23,293 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:41:23,293 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.361751
2025-07-01 10:41:23,293 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:41:23,294 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:41:23,294 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:41:23,294 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:41:23,294 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:41:23,294 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:41:14', tmtdew=9.62, humidity=51.1, cloud=0.0, wind=31.78, temperature=9.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:40:55.286', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:41:23,294 [DEBUG][       Thread-601982][   transport.py][1871] : EOF in transport thread
2025-07-01 10:41:23,379 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:41:23,399 [DEBUG][       Thread-601985][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 10:41:23,399 [DEBUG][       Thread-601985][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:41:23,414 [DEBUG][       Thread-601985][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:41:23,414 [ INFO][       Thread-601985][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:41:23,423 [DEBUG][       Thread-601985][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:41:23,423 [DEBUG][       Thread-601985][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:41:23,423 [DEBUG][       Thread-601985][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:41:23,423 [DEBUG][       Thread-601985][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:41:23,423 [DEBUG][       Thread-601985][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:41:23,423 [DEBUG][       Thread-601985][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:41:23,423 [DEBUG][       Thread-601985][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:41:23,423 [DEBUG][       Thread-601985][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:41:23,423 [DEBUG][       Thread-601985][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:41:23,423 [DEBUG][       Thread-601985][   transport.py][1871] : client lang: <none>
2025-07-01 10:41:23,423 [DEBUG][       Thread-601985][   transport.py][1871] : server lang: <none>
2025-07-01 10:41:23,423 [DEBUG][       Thread-601985][   transport.py][1871] : kex follows: False
2025-07-01 10:41:23,423 [DEBUG][       Thread-601985][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:41:23,423 [DEBUG][       Thread-601985][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:41:23,423 [DEBUG][       Thread-601985][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:41:23,423 [DEBUG][       Thread-601985][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:41:23,423 [DEBUG][       Thread-601985][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:41:23,423 [DEBUG][       Thread-601985][   transport.py][1871] : Compression: none
2025-07-01 10:41:23,423 [DEBUG][       Thread-601985][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:41:23,481 [DEBUG][       Thread-601985][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:41:23,481 [DEBUG][       Thread-601985][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:41:23,481 [DEBUG][       Thread-601985][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:41:23,481 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:41:23,481 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:41:23,538 [DEBUG][       Thread-601985][   transport.py][1871] : userauth is OK
2025-07-01 10:41:23,538 [DEBUG][       Thread-601985][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:41:23,538 [DEBUG][       Thread-601985][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:41:23,539 [DEBUG][       Thread-601985][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:41:23,539 [DEBUG][       Thread-601985][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:41:23,558 [ INFO][       Thread-601985][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:41:23,558 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:41:23,559 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:41:23,799 [DEBUG][Thread-601987 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:41:24,564 [DEBUG][       Thread-601985][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:41:24,564 [DEBUG][       Thread-601985][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:41:24,616 [DEBUG][       Thread-601985][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:41:24,617 [DEBUG][       Thread-601985][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:41:24,628 [DEBUG][       Thread-601985][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:41:24,637 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:41:24,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')
2025-07-01 10:41:24,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-07-01 10:41:24,661 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:41:24,661 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:41:24,661 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:41:24,669 [DEBUG][       Thread-601985][   transport.py][1871] : EOF in transport thread
2025-07-01 10:41:31,349 [DEBUG][Thread-601988 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:41:34,671 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:41:34,671 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:41:34,672 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:41:34,674 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:41:35,174 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 41, 14), 9.62, 51.1, 0.0, 31.78, 9.41, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:41:35,174 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:41:14
2025-07-01 10:41:35,263 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:41:35,267 [DEBUG][       Thread-601989][   transport.py][1871] : starting thread (client mode): 0x82b2aa0
2025-07-01 10:41:35,267 [DEBUG][       Thread-601989][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:41:35,289 [DEBUG][       Thread-601989][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:41:35,289 [ INFO][       Thread-601989][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:41:35,292 [DEBUG][       Thread-601989][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:41:35,292 [DEBUG][       Thread-601989][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:41:35,292 [DEBUG][       Thread-601989][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:41:35,292 [DEBUG][       Thread-601989][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:41:35,292 [DEBUG][       Thread-601989][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:41:35,292 [DEBUG][       Thread-601989][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:41:35,292 [DEBUG][       Thread-601989][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:41:35,292 [DEBUG][       Thread-601989][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:41:35,292 [DEBUG][       Thread-601989][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:41:35,292 [DEBUG][       Thread-601989][   transport.py][1871] : client lang: <none>
2025-07-01 10:41:35,292 [DEBUG][       Thread-601989][   transport.py][1871] : server lang: <none>
2025-07-01 10:41:35,292 [DEBUG][       Thread-601989][   transport.py][1871] : kex follows: False
2025-07-01 10:41:35,292 [DEBUG][       Thread-601989][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:41:35,293 [DEBUG][       Thread-601989][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:41:35,293 [DEBUG][       Thread-601989][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:41:35,293 [DEBUG][       Thread-601989][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:41:35,293 [DEBUG][       Thread-601989][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:41:35,293 [DEBUG][       Thread-601989][   transport.py][1871] : Compression: none
2025-07-01 10:41:35,293 [DEBUG][       Thread-601989][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:41:35,306 [DEBUG][       Thread-601989][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:41:35,306 [DEBUG][       Thread-601989][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:41:35,306 [DEBUG][       Thread-601989][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:41:35,306 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:41:35,306 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:41:35,307 [DEBUG][       Thread-601989][   transport.py][1871] : userauth is OK
2025-07-01 10:41:35,332 [ INFO][       Thread-601989][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:41:35,332 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:41:35,981 [DEBUG][       Thread-601989][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:41:35,981 [DEBUG][       Thread-601989][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:41:36,024 [DEBUG][       Thread-601989][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:41:36,024 [DEBUG][       Thread-601989][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:41:36,027 [DEBUG][       Thread-601989][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:41:36,038 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:41:36,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:41:36,039 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:41:36,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:41:36,042 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:41:36,043 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:41:36,043 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:41:36,043 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:41:36,043 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.361751 -999.00   +9.40  27.06     56   +1.20 1 1 1 1 1   887    0 7.88 -20.16 ----- 27.1 27.1 21.2 37.3 11.8 -24.1 11.1 -24.3 10.6 -22.8 11.3 -22.8
2025-07-01 10:41:36,043 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:41:36,043 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:41:36,043 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.361751
2025-07-01 10:41:36,043 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:41:36,043 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:41:36,043 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:41:36,043 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:41:36,043 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:41:36,043 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:41:14', tmtdew=9.62, humidity=51.1, cloud=0.0, wind=31.78, temperature=9.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:40:55.286', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:41:36,044 [DEBUG][       Thread-601989][   transport.py][1871] : EOF in transport thread
2025-07-01 10:41:36,118 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:41:36,127 [DEBUG][       Thread-601992][   transport.py][1871] : starting thread (client mode): 0x818e740
2025-07-01 10:41:36,127 [DEBUG][       Thread-601992][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:41:36,143 [DEBUG][       Thread-601992][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:41:36,143 [ INFO][       Thread-601992][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:41:36,151 [DEBUG][       Thread-601992][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:41:36,151 [DEBUG][       Thread-601992][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:41:36,151 [DEBUG][       Thread-601992][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:41:36,151 [DEBUG][       Thread-601992][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:41:36,151 [DEBUG][       Thread-601992][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:41:36,151 [DEBUG][       Thread-601992][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:41:36,151 [DEBUG][       Thread-601992][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:41:36,151 [DEBUG][       Thread-601992][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:41:36,151 [DEBUG][       Thread-601992][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:41:36,151 [DEBUG][       Thread-601992][   transport.py][1871] : client lang: <none>
2025-07-01 10:41:36,151 [DEBUG][       Thread-601992][   transport.py][1871] : server lang: <none>
2025-07-01 10:41:36,151 [DEBUG][       Thread-601992][   transport.py][1871] : kex follows: False
2025-07-01 10:41:36,151 [DEBUG][       Thread-601992][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:41:36,152 [DEBUG][       Thread-601992][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:41:36,152 [DEBUG][       Thread-601992][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:41:36,152 [DEBUG][       Thread-601992][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:41:36,152 [DEBUG][       Thread-601992][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:41:36,152 [DEBUG][       Thread-601992][   transport.py][1871] : Compression: none
2025-07-01 10:41:36,152 [DEBUG][       Thread-601992][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:41:36,214 [DEBUG][       Thread-601992][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:41:36,214 [DEBUG][       Thread-601992][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:41:36,214 [DEBUG][       Thread-601992][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:41:36,214 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:41:36,214 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:41:36,269 [DEBUG][       Thread-601992][   transport.py][1871] : userauth is OK
2025-07-01 10:41:36,269 [DEBUG][       Thread-601992][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:41:36,269 [DEBUG][       Thread-601992][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:41:36,269 [DEBUG][       Thread-601992][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:41:36,269 [DEBUG][       Thread-601992][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:41:36,283 [ INFO][       Thread-601992][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:41:36,284 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:41:36,284 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:41:37,297 [DEBUG][       Thread-601992][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:41:37,297 [DEBUG][       Thread-601992][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:41:37,347 [DEBUG][       Thread-601992][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:41:37,347 [DEBUG][       Thread-601992][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:41:37,356 [DEBUG][       Thread-601992][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:41:37,364 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:41:37,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')
2025-07-01 10:41:37,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-07-01 10:41:37,380 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:41:37,380 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:41:37,380 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:41:37,388 [DEBUG][       Thread-601992][   transport.py][1871] : EOF in transport thread
2025-07-01 10:41:40,374 [DEBUG][Thread-601994 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:41:47,383 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:41:47,383 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:41:47,383 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:41:47,384 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:41:47,907 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 41, 14), 9.62, 51.1, 0.0, 31.78, 9.41, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:41:47,907 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:41:14
2025-07-01 10:41:47,998 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:41:48,002 [DEBUG][       Thread-601995][   transport.py][1871] : starting thread (client mode): 0x82b1a50
2025-07-01 10:41:48,002 [DEBUG][       Thread-601995][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:41:48,021 [DEBUG][       Thread-601995][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:41:48,021 [ INFO][       Thread-601995][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:41:48,023 [DEBUG][       Thread-601995][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:41:48,023 [DEBUG][       Thread-601995][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:41:48,023 [DEBUG][       Thread-601995][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:41:48,023 [DEBUG][       Thread-601995][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:41:48,023 [DEBUG][       Thread-601995][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:41:48,023 [DEBUG][       Thread-601995][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:41:48,023 [DEBUG][       Thread-601995][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:41:48,023 [DEBUG][       Thread-601995][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:41:48,023 [DEBUG][       Thread-601995][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:41:48,023 [DEBUG][       Thread-601995][   transport.py][1871] : client lang: <none>
2025-07-01 10:41:48,023 [DEBUG][       Thread-601995][   transport.py][1871] : server lang: <none>
2025-07-01 10:41:48,023 [DEBUG][       Thread-601995][   transport.py][1871] : kex follows: False
2025-07-01 10:41:48,023 [DEBUG][       Thread-601995][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:41:48,023 [DEBUG][       Thread-601995][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:41:48,023 [DEBUG][       Thread-601995][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:41:48,023 [DEBUG][       Thread-601995][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:41:48,023 [DEBUG][       Thread-601995][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:41:48,023 [DEBUG][       Thread-601995][   transport.py][1871] : Compression: none
2025-07-01 10:41:48,023 [DEBUG][       Thread-601995][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:41:48,039 [DEBUG][       Thread-601995][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:41:48,039 [DEBUG][       Thread-601995][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:41:48,039 [DEBUG][       Thread-601995][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:41:48,039 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:41:48,039 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:41:48,039 [DEBUG][       Thread-601995][   transport.py][1871] : userauth is OK
2025-07-01 10:41:48,064 [ INFO][       Thread-601995][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:41:48,064 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:41:48,648 [DEBUG][       Thread-601995][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:41:48,648 [DEBUG][       Thread-601995][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:41:48,689 [DEBUG][       Thread-601995][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:41:48,689 [DEBUG][       Thread-601995][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:41:48,693 [DEBUG][       Thread-601995][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:41:48,704 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:41:48,705 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:41:48,707 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:41:48,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:41:48,715 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:41:48,717 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:41:48,717 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:41:48,718 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:41:48,718 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.362099 -999.00   +9.30  28.88     56   +1.00 1 1 1 1 1   887    0 7.76 -20.58 ----- 28.9 28.9 30.0 40.2 11.7 -24.6 11.1 -24.5 10.6 -23.0 11.2 -23.1
2025-07-01 10:41:48,718 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:41:48,718 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:41:48,718 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.362099
2025-07-01 10:41:48,719 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:41:48,719 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:41:48,719 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:41:48,719 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:41:48,719 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:41:48,719 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:41:14', tmtdew=9.62, humidity=51.1, cloud=0.0, wind=31.78, temperature=9.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:41:25.354', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:41:48,720 [DEBUG][       Thread-601995][   transport.py][1871] : EOF in transport thread
2025-07-01 10:41:48,808 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:41:48,817 [DEBUG][       Thread-601998][   transport.py][1871] : starting thread (client mode): 0x81e4610
2025-07-01 10:41:48,817 [DEBUG][       Thread-601998][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:41:48,844 [DEBUG][       Thread-601998][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:41:48,844 [ INFO][       Thread-601998][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:41:48,852 [DEBUG][       Thread-601998][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:41:48,852 [DEBUG][       Thread-601998][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:41:48,852 [DEBUG][       Thread-601998][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:41:48,852 [DEBUG][       Thread-601998][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:41:48,852 [DEBUG][       Thread-601998][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:41:48,852 [DEBUG][       Thread-601998][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:41:48,852 [DEBUG][       Thread-601998][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:41:48,853 [DEBUG][       Thread-601998][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:41:48,853 [DEBUG][       Thread-601998][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:41:48,853 [DEBUG][       Thread-601998][   transport.py][1871] : client lang: <none>
2025-07-01 10:41:48,853 [DEBUG][       Thread-601998][   transport.py][1871] : server lang: <none>
2025-07-01 10:41:48,853 [DEBUG][       Thread-601998][   transport.py][1871] : kex follows: False
2025-07-01 10:41:48,853 [DEBUG][       Thread-601998][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:41:48,853 [DEBUG][       Thread-601998][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:41:48,853 [DEBUG][       Thread-601998][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:41:48,853 [DEBUG][       Thread-601998][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:41:48,853 [DEBUG][       Thread-601998][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:41:48,853 [DEBUG][       Thread-601998][   transport.py][1871] : Compression: none
2025-07-01 10:41:48,853 [DEBUG][       Thread-601998][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:41:48,910 [DEBUG][       Thread-601998][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:41:48,910 [DEBUG][       Thread-601998][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:41:48,911 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:41:48,911 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:41:48,912 [DEBUG][       Thread-601998][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:41:48,966 [DEBUG][       Thread-601998][   transport.py][1871] : userauth is OK
2025-07-01 10:41:48,966 [DEBUG][       Thread-601998][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:41:48,967 [DEBUG][       Thread-601998][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:41:48,967 [DEBUG][       Thread-601998][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:41:48,967 [DEBUG][       Thread-601998][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:41:48,985 [ INFO][       Thread-601998][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:41:48,986 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:41:48,986 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:41:49,402 [DEBUG][Thread-602000 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:41:49,987 [DEBUG][       Thread-601998][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:41:49,987 [DEBUG][       Thread-601998][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:41:50,036 [DEBUG][       Thread-601998][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:41:50,036 [DEBUG][       Thread-601998][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:41:50,045 [DEBUG][       Thread-601998][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:41:50,055 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:41:50,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-07-01 10:41:50,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-07-01 10:41:50,080 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:41:50,081 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:41:50,081 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:41:50,089 [DEBUG][       Thread-601998][   transport.py][1871] : EOF in transport thread
2025-07-01 10:41:58,425 [DEBUG][Thread-602001 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:42:00,092 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:42:00,092 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:42:00,092 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:42:00,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-07-01 10:42:00,575 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 41, 46), 9.58, 51.25, 0.0, 29.38, 9.43, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:42:00,575 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:41:46
2025-07-01 10:42:00,662 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:42:00,666 [DEBUG][       Thread-602002][   transport.py][1871] : starting thread (client mode): 0x82b1780
2025-07-01 10:42:00,666 [DEBUG][       Thread-602002][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:42:00,686 [DEBUG][       Thread-602002][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:42:00,686 [ INFO][       Thread-602002][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:42:00,690 [DEBUG][       Thread-602002][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:42:00,690 [DEBUG][       Thread-602002][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:42:00,690 [DEBUG][       Thread-602002][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:42:00,690 [DEBUG][       Thread-602002][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:42:00,690 [DEBUG][       Thread-602002][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:42:00,690 [DEBUG][       Thread-602002][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:42:00,690 [DEBUG][       Thread-602002][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:42:00,690 [DEBUG][       Thread-602002][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:42:00,690 [DEBUG][       Thread-602002][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:42:00,690 [DEBUG][       Thread-602002][   transport.py][1871] : client lang: <none>
2025-07-01 10:42:00,690 [DEBUG][       Thread-602002][   transport.py][1871] : server lang: <none>
2025-07-01 10:42:00,690 [DEBUG][       Thread-602002][   transport.py][1871] : kex follows: False
2025-07-01 10:42:00,690 [DEBUG][       Thread-602002][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:42:00,690 [DEBUG][       Thread-602002][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:42:00,690 [DEBUG][       Thread-602002][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:42:00,690 [DEBUG][       Thread-602002][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:42:00,690 [DEBUG][       Thread-602002][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:42:00,690 [DEBUG][       Thread-602002][   transport.py][1871] : Compression: none
2025-07-01 10:42:00,690 [DEBUG][       Thread-602002][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:42:00,698 [DEBUG][       Thread-602002][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:42:00,699 [DEBUG][       Thread-602002][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:42:00,699 [DEBUG][       Thread-602002][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:42:00,699 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:42:00,700 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:42:00,701 [DEBUG][       Thread-602002][   transport.py][1871] : userauth is OK
2025-07-01 10:42:00,725 [ INFO][       Thread-602002][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:42:00,726 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:42:01,270 [DEBUG][       Thread-602002][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:42:01,271 [DEBUG][       Thread-602002][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:42:01,313 [DEBUG][       Thread-602002][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:42:01,313 [DEBUG][       Thread-602002][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:42:01,315 [DEBUG][       Thread-602002][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:42:01,330 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:42:01,330 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:42:01,332 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:42:01,333 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:42:01,337 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:42:01,339 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:42:01,339 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:42:01,340 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:42:01,340 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.362099 -999.00   +9.30  28.88     56   +1.00 1 1 1 1 1   887    0 7.76 -20.58 ----- 28.9 28.9 30.0 40.2 11.7 -24.6 11.1 -24.5 10.6 -23.0 11.2 -23.1
2025-07-01 10:42:01,340 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:42:01,340 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:42:01,340 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.362099
2025-07-01 10:42:01,340 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:42:01,341 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:42:01,341 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:42:01,341 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:42:01,341 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:42:01,341 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:41:46', tmtdew=9.58, humidity=51.25, cloud=0.0, wind=29.38, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:41:25.354', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:42:01,342 [DEBUG][       Thread-602002][   transport.py][1871] : EOF in transport thread
2025-07-01 10:42:01,346 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:42:01,346 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:42:01,424 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:42:01,436 [DEBUG][       Thread-602005][   transport.py][1871] : starting thread (client mode): 0x8154f70
2025-07-01 10:42:01,436 [DEBUG][       Thread-602005][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:42:01,455 [DEBUG][       Thread-602005][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:42:01,455 [ INFO][       Thread-602005][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:42:01,462 [DEBUG][       Thread-602005][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:42:01,462 [DEBUG][       Thread-602005][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:42:01,462 [DEBUG][       Thread-602005][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:42:01,463 [DEBUG][       Thread-602005][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:42:01,463 [DEBUG][       Thread-602005][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:42:01,463 [DEBUG][       Thread-602005][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:42:01,463 [DEBUG][       Thread-602005][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:42:01,463 [DEBUG][       Thread-602005][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:42:01,463 [DEBUG][       Thread-602005][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:42:01,463 [DEBUG][       Thread-602005][   transport.py][1871] : client lang: <none>
2025-07-01 10:42:01,463 [DEBUG][       Thread-602005][   transport.py][1871] : server lang: <none>
2025-07-01 10:42:01,463 [DEBUG][       Thread-602005][   transport.py][1871] : kex follows: False
2025-07-01 10:42:01,463 [DEBUG][       Thread-602005][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:42:01,463 [DEBUG][       Thread-602005][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:42:01,463 [DEBUG][       Thread-602005][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:42:01,463 [DEBUG][       Thread-602005][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:42:01,463 [DEBUG][       Thread-602005][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:42:01,463 [DEBUG][       Thread-602005][   transport.py][1871] : Compression: none
2025-07-01 10:42:01,463 [DEBUG][       Thread-602005][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:42:01,522 [DEBUG][       Thread-602005][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:42:01,522 [DEBUG][       Thread-602005][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:42:01,523 [DEBUG][       Thread-602005][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:42:01,523 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:42:01,524 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:42:01,582 [DEBUG][       Thread-602005][   transport.py][1871] : userauth is OK
2025-07-01 10:42:01,582 [DEBUG][       Thread-602005][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:42:01,582 [DEBUG][       Thread-602005][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:42:01,582 [DEBUG][       Thread-602005][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:42:01,582 [DEBUG][       Thread-602005][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:42:01,601 [ INFO][       Thread-602005][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:42:01,601 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:42:01,602 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:42:02,631 [DEBUG][       Thread-602005][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:42:02,631 [DEBUG][       Thread-602005][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:42:02,680 [DEBUG][       Thread-602005][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:42:02,680 [DEBUG][       Thread-602005][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:42:02,689 [DEBUG][       Thread-602005][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:42:02,698 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:42:02,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')
2025-07-01 10:42:02,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') -> 00000000
2025-07-01 10:42:02,715 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:42:02,716 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:42:02,716 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:42:02,724 [DEBUG][       Thread-602005][   transport.py][1871] : EOF in transport thread
2025-07-01 10:42:07,449 [DEBUG][Thread-602007 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:42:12,724 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:42:12,724 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:42:12,724 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:42:12,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-07-01 10:42:13,203 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 41, 46), 9.58, 51.25, 0.0, 29.38, 9.43, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:42:13,203 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:41:46
2025-07-01 10:42:13,290 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:42:13,294 [DEBUG][       Thread-602008][   transport.py][1871] : starting thread (client mode): 0x75ab0a0
2025-07-01 10:42:13,294 [DEBUG][       Thread-602008][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:42:13,309 [DEBUG][       Thread-602008][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:42:13,309 [ INFO][       Thread-602008][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:42:13,312 [DEBUG][       Thread-602008][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:42:13,312 [DEBUG][       Thread-602008][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:42:13,312 [DEBUG][       Thread-602008][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:42:13,312 [DEBUG][       Thread-602008][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:42:13,312 [DEBUG][       Thread-602008][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:42:13,312 [DEBUG][       Thread-602008][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:42:13,312 [DEBUG][       Thread-602008][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:42:13,312 [DEBUG][       Thread-602008][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:42:13,312 [DEBUG][       Thread-602008][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:42:13,312 [DEBUG][       Thread-602008][   transport.py][1871] : client lang: <none>
2025-07-01 10:42:13,312 [DEBUG][       Thread-602008][   transport.py][1871] : server lang: <none>
2025-07-01 10:42:13,312 [DEBUG][       Thread-602008][   transport.py][1871] : kex follows: False
2025-07-01 10:42:13,312 [DEBUG][       Thread-602008][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:42:13,312 [DEBUG][       Thread-602008][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:42:13,313 [DEBUG][       Thread-602008][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:42:13,313 [DEBUG][       Thread-602008][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:42:13,313 [DEBUG][       Thread-602008][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:42:13,313 [DEBUG][       Thread-602008][   transport.py][1871] : Compression: none
2025-07-01 10:42:13,313 [DEBUG][       Thread-602008][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:42:13,329 [DEBUG][       Thread-602008][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:42:13,329 [DEBUG][       Thread-602008][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:42:13,330 [DEBUG][       Thread-602008][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:42:13,330 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:42:13,330 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:42:13,331 [DEBUG][       Thread-602008][   transport.py][1871] : userauth is OK
2025-07-01 10:42:13,346 [ INFO][       Thread-602008][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:42:13,346 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:42:13,958 [DEBUG][       Thread-602008][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:42:13,958 [DEBUG][       Thread-602008][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:42:14,000 [DEBUG][       Thread-602008][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:42:14,000 [DEBUG][       Thread-602008][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:42:14,002 [DEBUG][       Thread-602008][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:42:14,012 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:42:14,012 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:42:14,013 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:42:14,013 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:42:14,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:42:14,017 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:42:14,017 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:42:14,017 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:42:14,017 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.362446 -999.00   +9.30  21.61     56   +1.20 1 1 1 1 1   887    0 7.77 -22.00 ----- 21.6 21.6 23.6 34.2 11.8 -24.0 11.1 -23.7 10.6 -22.7 11.2 -23.0
2025-07-01 10:42:14,017 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:42:14,017 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:42:14,017 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.362446
2025-07-01 10:42:14,017 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:42:14,017 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:42:14,017 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:42:14,017 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:42:14,017 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:42:14,017 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:41:46', tmtdew=9.58, humidity=51.25, cloud=0.0, wind=29.38, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:41:55.334', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:42:14,018 [DEBUG][       Thread-602008][   transport.py][1871] : EOF in transport thread
2025-07-01 10:42:14,092 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:42:14,103 [DEBUG][       Thread-602011][   transport.py][1871] : starting thread (client mode): 0x83c8400
2025-07-01 10:42:14,103 [DEBUG][       Thread-602011][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:42:14,119 [DEBUG][       Thread-602011][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:42:14,119 [ INFO][       Thread-602011][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:42:14,126 [DEBUG][       Thread-602011][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:42:14,126 [DEBUG][       Thread-602011][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:42:14,126 [DEBUG][       Thread-602011][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:42:14,126 [DEBUG][       Thread-602011][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:42:14,126 [DEBUG][       Thread-602011][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:42:14,126 [DEBUG][       Thread-602011][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:42:14,126 [DEBUG][       Thread-602011][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:42:14,126 [DEBUG][       Thread-602011][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:42:14,126 [DEBUG][       Thread-602011][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:42:14,126 [DEBUG][       Thread-602011][   transport.py][1871] : client lang: <none>
2025-07-01 10:42:14,127 [DEBUG][       Thread-602011][   transport.py][1871] : server lang: <none>
2025-07-01 10:42:14,127 [DEBUG][       Thread-602011][   transport.py][1871] : kex follows: False
2025-07-01 10:42:14,127 [DEBUG][       Thread-602011][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:42:14,127 [DEBUG][       Thread-602011][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:42:14,127 [DEBUG][       Thread-602011][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:42:14,127 [DEBUG][       Thread-602011][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:42:14,127 [DEBUG][       Thread-602011][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:42:14,127 [DEBUG][       Thread-602011][   transport.py][1871] : Compression: none
2025-07-01 10:42:14,127 [DEBUG][       Thread-602011][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:42:14,186 [DEBUG][       Thread-602011][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:42:14,186 [DEBUG][       Thread-602011][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:42:14,186 [DEBUG][       Thread-602011][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:42:14,186 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:42:14,187 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:42:14,242 [DEBUG][       Thread-602011][   transport.py][1871] : userauth is OK
2025-07-01 10:42:14,242 [DEBUG][       Thread-602011][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:42:14,242 [DEBUG][       Thread-602011][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:42:14,242 [DEBUG][       Thread-602011][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:42:14,242 [DEBUG][       Thread-602011][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:42:14,258 [ INFO][       Thread-602011][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:42:14,258 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:42:14,258 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:42:15,259 [DEBUG][       Thread-602011][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:42:15,259 [DEBUG][       Thread-602011][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:42:15,307 [DEBUG][       Thread-602011][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:42:15,307 [DEBUG][       Thread-602011][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:42:15,316 [DEBUG][       Thread-602011][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:42:15,324 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:42:15,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-07-01 10:42:15,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-07-01 10:42:15,340 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:42:15,340 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:42:15,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:42:15,348 [DEBUG][       Thread-602011][   transport.py][1871] : EOF in transport thread
2025-07-01 10:42:16,480 [DEBUG][Thread-602013 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:42:23,855 [DEBUG][Thread-602014 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:42:25,351 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:42:25,351 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:42:25,351 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:42:25,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-07-01 10:42:25,502 [DEBUG][Thread-602015 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:42:25,824 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 42, 18), 9.51, 51.37, 0.0, 30.01, 9.37, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:42:25,824 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:42:18
2025-07-01 10:42:25,911 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:42:25,919 [DEBUG][       Thread-602016][   transport.py][1871] : starting thread (client mode): 0x82b3eb0
2025-07-01 10:42:25,919 [DEBUG][       Thread-602016][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:42:25,938 [DEBUG][       Thread-602016][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:42:25,938 [ INFO][       Thread-602016][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:42:25,942 [DEBUG][       Thread-602016][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:42:25,942 [DEBUG][       Thread-602016][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:42:25,942 [DEBUG][       Thread-602016][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:42:25,942 [DEBUG][       Thread-602016][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:42:25,942 [DEBUG][       Thread-602016][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:42:25,942 [DEBUG][       Thread-602016][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:42:25,942 [DEBUG][       Thread-602016][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:42:25,942 [DEBUG][       Thread-602016][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:42:25,942 [DEBUG][       Thread-602016][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:42:25,942 [DEBUG][       Thread-602016][   transport.py][1871] : client lang: <none>
2025-07-01 10:42:25,942 [DEBUG][       Thread-602016][   transport.py][1871] : server lang: <none>
2025-07-01 10:42:25,942 [DEBUG][       Thread-602016][   transport.py][1871] : kex follows: False
2025-07-01 10:42:25,942 [DEBUG][       Thread-602016][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:42:25,942 [DEBUG][       Thread-602016][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:42:25,942 [DEBUG][       Thread-602016][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:42:25,942 [DEBUG][       Thread-602016][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:42:25,942 [DEBUG][       Thread-602016][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:42:25,942 [DEBUG][       Thread-602016][   transport.py][1871] : Compression: none
2025-07-01 10:42:25,942 [DEBUG][       Thread-602016][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:42:25,959 [DEBUG][       Thread-602016][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:42:25,960 [DEBUG][       Thread-602016][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:42:25,960 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:42:25,960 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:42:25,961 [DEBUG][       Thread-602016][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:42:25,961 [DEBUG][       Thread-602016][   transport.py][1871] : userauth is OK
2025-07-01 10:42:25,986 [ INFO][       Thread-602016][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:42:25,987 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:42:26,640 [DEBUG][       Thread-602016][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:42:26,640 [DEBUG][       Thread-602016][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:42:26,681 [DEBUG][       Thread-602016][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:42:26,681 [DEBUG][       Thread-602016][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:42:26,684 [DEBUG][       Thread-602016][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:42:26,696 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:42:26,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:42:26,698 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:42:26,700 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:42:26,706 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:42:26,708 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:42:26,708 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:42:26,709 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:42:26,709 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.362446 -999.00   +9.30  21.61     56   +1.20 1 1 1 1 1   887    0 7.77 -22.00 ----- 21.6 21.6 23.6 34.2 11.8 -24.0 11.1 -23.7 10.6 -22.7 11.2 -23.0
2025-07-01 10:42:26,709 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:42:26,709 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:42:26,709 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.362446
2025-07-01 10:42:26,710 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:42:26,710 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:42:26,710 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:42:26,710 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:42:26,710 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:42:26,710 [DEBUG][       Thread-602016][   transport.py][1871] : EOF in transport thread
2025-07-01 10:42:26,711 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:42:18', tmtdew=9.51, humidity=51.37, cloud=0.0, wind=30.01, temperature=9.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:41:55.334', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:42:26,797 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:42:26,807 [DEBUG][       Thread-602019][   transport.py][1871] : starting thread (client mode): 0x8106230
2025-07-01 10:42:26,807 [DEBUG][       Thread-602019][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:42:26,822 [DEBUG][       Thread-602019][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:42:26,822 [ INFO][       Thread-602019][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:42:26,830 [DEBUG][       Thread-602019][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:42:26,830 [DEBUG][       Thread-602019][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:42:26,830 [DEBUG][       Thread-602019][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:42:26,830 [DEBUG][       Thread-602019][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:42:26,830 [DEBUG][       Thread-602019][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:42:26,830 [DEBUG][       Thread-602019][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:42:26,830 [DEBUG][       Thread-602019][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:42:26,830 [DEBUG][       Thread-602019][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:42:26,830 [DEBUG][       Thread-602019][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:42:26,830 [DEBUG][       Thread-602019][   transport.py][1871] : client lang: <none>
2025-07-01 10:42:26,830 [DEBUG][       Thread-602019][   transport.py][1871] : server lang: <none>
2025-07-01 10:42:26,830 [DEBUG][       Thread-602019][   transport.py][1871] : kex follows: False
2025-07-01 10:42:26,830 [DEBUG][       Thread-602019][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:42:26,830 [DEBUG][       Thread-602019][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:42:26,830 [DEBUG][       Thread-602019][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:42:26,830 [DEBUG][       Thread-602019][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:42:26,830 [DEBUG][       Thread-602019][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:42:26,830 [DEBUG][       Thread-602019][   transport.py][1871] : Compression: none
2025-07-01 10:42:26,830 [DEBUG][       Thread-602019][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:42:26,895 [DEBUG][       Thread-602019][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:42:26,896 [DEBUG][       Thread-602019][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:42:26,896 [DEBUG][       Thread-602019][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:42:26,897 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:42:26,897 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:42:26,959 [DEBUG][       Thread-602019][   transport.py][1871] : userauth is OK
2025-07-01 10:42:26,960 [DEBUG][       Thread-602019][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:42:26,960 [DEBUG][       Thread-602019][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:42:26,960 [DEBUG][       Thread-602019][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:42:26,960 [DEBUG][       Thread-602019][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:42:26,979 [ INFO][       Thread-602019][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:42:26,980 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:42:26,980 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:42:28,021 [DEBUG][       Thread-602019][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:42:28,021 [DEBUG][       Thread-602019][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:42:28,076 [DEBUG][       Thread-602019][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:42:28,076 [DEBUG][       Thread-602019][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:42:28,094 [DEBUG][       Thread-602019][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:42:28,108 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:42:28,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-07-01 10:42:28,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-07-01 10:42:28,127 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:42:28,128 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:42:28,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:42:28,136 [DEBUG][       Thread-602019][   transport.py][1871] : EOF in transport thread
2025-07-01 10:42:34,523 [DEBUG][Thread-602021 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:42:38,139 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:42:38,139 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:42:38,139 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:42:38,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-07-01 10:42:38,604 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 42, 18), 9.51, 51.37, 0.0, 30.01, 9.37, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:42:38,604 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:42:18
2025-07-01 10:42:38,691 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:42:38,695 [DEBUG][       Thread-602022][   transport.py][1871] : starting thread (client mode): 0x8170b80
2025-07-01 10:42:38,695 [DEBUG][       Thread-602022][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:42:38,716 [DEBUG][       Thread-602022][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:42:38,716 [ INFO][       Thread-602022][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:42:38,720 [DEBUG][       Thread-602022][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:42:38,720 [DEBUG][       Thread-602022][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:42:38,720 [DEBUG][       Thread-602022][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:42:38,720 [DEBUG][       Thread-602022][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:42:38,720 [DEBUG][       Thread-602022][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:42:38,720 [DEBUG][       Thread-602022][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:42:38,720 [DEBUG][       Thread-602022][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:42:38,720 [DEBUG][       Thread-602022][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:42:38,720 [DEBUG][       Thread-602022][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:42:38,720 [DEBUG][       Thread-602022][   transport.py][1871] : client lang: <none>
2025-07-01 10:42:38,720 [DEBUG][       Thread-602022][   transport.py][1871] : server lang: <none>
2025-07-01 10:42:38,720 [DEBUG][       Thread-602022][   transport.py][1871] : kex follows: False
2025-07-01 10:42:38,720 [DEBUG][       Thread-602022][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:42:38,720 [DEBUG][       Thread-602022][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:42:38,720 [DEBUG][       Thread-602022][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:42:38,720 [DEBUG][       Thread-602022][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:42:38,720 [DEBUG][       Thread-602022][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:42:38,720 [DEBUG][       Thread-602022][   transport.py][1871] : Compression: none
2025-07-01 10:42:38,721 [DEBUG][       Thread-602022][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:42:38,738 [DEBUG][       Thread-602022][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:42:38,738 [DEBUG][       Thread-602022][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:42:38,739 [DEBUG][       Thread-602022][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:42:38,739 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:42:38,739 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:42:38,740 [DEBUG][       Thread-602022][   transport.py][1871] : userauth is OK
2025-07-01 10:42:38,766 [ INFO][       Thread-602022][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:42:38,766 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:42:39,375 [DEBUG][       Thread-602022][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:42:39,375 [DEBUG][       Thread-602022][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:42:39,417 [DEBUG][       Thread-602022][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:42:39,417 [DEBUG][       Thread-602022][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:42:39,420 [DEBUG][       Thread-602022][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:42:39,434 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:42:39,435 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:42:39,437 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:42:39,439 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:42:39,444 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:42:39,446 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:42:39,447 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:42:39,447 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:42:39,447 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.362446 -999.00   +9.30  21.61     56   +1.20 1 1 1 1 1   887    0 7.77 -22.00 ----- 21.6 21.6 23.6 34.2 11.8 -24.0 11.1 -23.7 10.6 -22.7 11.2 -23.0
2025-07-01 10:42:39,447 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:42:39,447 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:42:39,448 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.362446
2025-07-01 10:42:39,448 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:42:39,449 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:42:39,449 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:42:39,449 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:42:39,449 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:42:39,449 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:42:18', tmtdew=9.51, humidity=51.37, cloud=0.0, wind=30.01, temperature=9.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:41:55.334', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:42:39,450 [DEBUG][       Thread-602022][   transport.py][1871] : EOF in transport thread
2025-07-01 10:42:39,535 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:42:39,545 [DEBUG][       Thread-602025][   transport.py][1871] : starting thread (client mode): 0x81a7f10
2025-07-01 10:42:39,545 [DEBUG][       Thread-602025][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:42:39,560 [DEBUG][       Thread-602025][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:42:39,560 [ INFO][       Thread-602025][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:42:39,567 [DEBUG][       Thread-602025][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:42:39,567 [DEBUG][       Thread-602025][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:42:39,567 [DEBUG][       Thread-602025][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:42:39,567 [DEBUG][       Thread-602025][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:42:39,567 [DEBUG][       Thread-602025][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:42:39,567 [DEBUG][       Thread-602025][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:42:39,568 [DEBUG][       Thread-602025][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:42:39,568 [DEBUG][       Thread-602025][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:42:39,568 [DEBUG][       Thread-602025][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:42:39,568 [DEBUG][       Thread-602025][   transport.py][1871] : client lang: <none>
2025-07-01 10:42:39,568 [DEBUG][       Thread-602025][   transport.py][1871] : server lang: <none>
2025-07-01 10:42:39,568 [DEBUG][       Thread-602025][   transport.py][1871] : kex follows: False
2025-07-01 10:42:39,568 [DEBUG][       Thread-602025][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:42:39,568 [DEBUG][       Thread-602025][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:42:39,568 [DEBUG][       Thread-602025][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:42:39,568 [DEBUG][       Thread-602025][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:42:39,568 [DEBUG][       Thread-602025][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:42:39,568 [DEBUG][       Thread-602025][   transport.py][1871] : Compression: none
2025-07-01 10:42:39,568 [DEBUG][       Thread-602025][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:42:39,626 [DEBUG][       Thread-602025][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:42:39,626 [DEBUG][       Thread-602025][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:42:39,627 [DEBUG][       Thread-602025][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:42:39,627 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:42:39,627 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:42:39,682 [DEBUG][       Thread-602025][   transport.py][1871] : userauth is OK
2025-07-01 10:42:39,682 [DEBUG][       Thread-602025][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:42:39,682 [DEBUG][       Thread-602025][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:42:39,682 [DEBUG][       Thread-602025][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:42:39,683 [DEBUG][       Thread-602025][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:42:39,701 [ INFO][       Thread-602025][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:42:39,702 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:42:39,702 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:42:40,699 [DEBUG][       Thread-602025][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:42:40,700 [DEBUG][       Thread-602025][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:42:40,753 [DEBUG][       Thread-602025][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:42:40,753 [DEBUG][       Thread-602025][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:42:40,765 [DEBUG][       Thread-602025][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:42:40,777 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:42:40,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-07-01 10:42: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-07-01 10:42:40,798 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:42:40,798 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:42:40,799 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:42:40,807 [DEBUG][       Thread-602025][   transport.py][1871] : EOF in transport thread
2025-07-01 10:42:43,557 [DEBUG][Thread-602027 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:42:50,809 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:42:50,809 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:42:50,809 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:42:50,810 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:42:51,312 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 42, 18), 9.51, 51.37, 0.0, 30.01, 9.37, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:42:51,312 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:42:18
2025-07-01 10:42:51,403 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:42:51,408 [DEBUG][       Thread-602028][   transport.py][1871] : starting thread (client mode): 0x82b30a0
2025-07-01 10:42:51,408 [DEBUG][       Thread-602028][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:42:51,428 [DEBUG][       Thread-602028][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:42:51,428 [ INFO][       Thread-602028][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:42:51,432 [DEBUG][       Thread-602028][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:42:51,432 [DEBUG][       Thread-602028][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:42:51,432 [DEBUG][       Thread-602028][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:42:51,432 [DEBUG][       Thread-602028][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:42:51,432 [DEBUG][       Thread-602028][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:42:51,432 [DEBUG][       Thread-602028][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:42:51,432 [DEBUG][       Thread-602028][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:42:51,432 [DEBUG][       Thread-602028][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:42:51,432 [DEBUG][       Thread-602028][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:42:51,432 [DEBUG][       Thread-602028][   transport.py][1871] : client lang: <none>
2025-07-01 10:42:51,432 [DEBUG][       Thread-602028][   transport.py][1871] : server lang: <none>
2025-07-01 10:42:51,432 [DEBUG][       Thread-602028][   transport.py][1871] : kex follows: False
2025-07-01 10:42:51,432 [DEBUG][       Thread-602028][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:42:51,432 [DEBUG][       Thread-602028][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:42:51,432 [DEBUG][       Thread-602028][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:42:51,432 [DEBUG][       Thread-602028][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:42:51,432 [DEBUG][       Thread-602028][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:42:51,432 [DEBUG][       Thread-602028][   transport.py][1871] : Compression: none
2025-07-01 10:42:51,432 [DEBUG][       Thread-602028][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:42:51,447 [DEBUG][       Thread-602028][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:42:51,447 [DEBUG][       Thread-602028][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:42:51,447 [DEBUG][       Thread-602028][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:42:51,447 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:42:51,447 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:42:51,448 [DEBUG][       Thread-602028][   transport.py][1871] : userauth is OK
2025-07-01 10:42:51,460 [ INFO][       Thread-602028][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:42:51,460 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:42:52,086 [DEBUG][       Thread-602028][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:42:52,086 [DEBUG][       Thread-602028][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:42:52,128 [DEBUG][       Thread-602028][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:42:52,129 [DEBUG][       Thread-602028][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:42:52,131 [DEBUG][       Thread-602028][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:42:52,144 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:42:52,144 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:42:52,145 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:42:52,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:42:52,150 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:42:52,151 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:42:52,151 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:42:52,151 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:42:52,151 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.362793 -999.00   +9.40  30.28     56   +1.20 1 1 2 1 1   887    0 7.65 -23.09 ----- 30.3 30.3 28.4 36.9 11.8 -23.9 11.1 -23.6 10.6 -22.8 11.2 -23.0
2025-07-01 10:42:52,151 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:42:52,151 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:42:52,151 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.362793
2025-07-01 10:42:52,151 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:42:52,151 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:42:52,151 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:42:52,151 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:42:52,151 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:42:52,151 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:42:18', tmtdew=9.51, humidity=51.37, cloud=0.0, wind=30.01, temperature=9.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:42:25.315', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:42:52,152 [DEBUG][       Thread-602028][   transport.py][1871] : EOF in transport thread
2025-07-01 10:42:52,226 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:42:52,235 [DEBUG][       Thread-602031][   transport.py][1871] : starting thread (client mode): 0x8172350
2025-07-01 10:42:52,236 [DEBUG][       Thread-602031][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:42:52,250 [DEBUG][       Thread-602031][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:42:52,250 [ INFO][       Thread-602031][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:42:52,258 [DEBUG][       Thread-602031][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:42:52,258 [DEBUG][       Thread-602031][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:42:52,258 [DEBUG][       Thread-602031][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:42:52,258 [DEBUG][       Thread-602031][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:42:52,258 [DEBUG][       Thread-602031][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:42:52,258 [DEBUG][       Thread-602031][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:42:52,258 [DEBUG][       Thread-602031][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:42:52,258 [DEBUG][       Thread-602031][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:42:52,258 [DEBUG][       Thread-602031][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:42:52,258 [DEBUG][       Thread-602031][   transport.py][1871] : client lang: <none>
2025-07-01 10:42:52,258 [DEBUG][       Thread-602031][   transport.py][1871] : server lang: <none>
2025-07-01 10:42:52,258 [DEBUG][       Thread-602031][   transport.py][1871] : kex follows: False
2025-07-01 10:42:52,258 [DEBUG][       Thread-602031][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:42:52,258 [DEBUG][       Thread-602031][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:42:52,258 [DEBUG][       Thread-602031][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:42:52,258 [DEBUG][       Thread-602031][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:42:52,258 [DEBUG][       Thread-602031][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:42:52,258 [DEBUG][       Thread-602031][   transport.py][1871] : Compression: none
2025-07-01 10:42:52,258 [DEBUG][       Thread-602031][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:42:52,321 [DEBUG][       Thread-602031][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:42:52,321 [DEBUG][       Thread-602031][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:42:52,321 [DEBUG][       Thread-602031][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:42:52,321 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:42:52,321 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:42:52,381 [DEBUG][       Thread-602031][   transport.py][1871] : userauth is OK
2025-07-01 10:42:52,382 [DEBUG][       Thread-602031][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:42:52,382 [DEBUG][       Thread-602031][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:42:52,382 [DEBUG][       Thread-602031][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:42:52,382 [DEBUG][       Thread-602031][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:42:52,397 [ INFO][       Thread-602031][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:42:52,397 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:42:52,398 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:42:52,577 [DEBUG][Thread-602033 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:42:53,490 [DEBUG][       Thread-602031][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:42:53,490 [DEBUG][       Thread-602031][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:42:53,539 [DEBUG][       Thread-602031][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:42:53,539 [DEBUG][       Thread-602031][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:42:53,548 [DEBUG][       Thread-602031][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:42:53,555 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:42:53,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-07-01 10:42:53,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-07-01 10:42:53,571 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:42:53,571 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:42:53,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:42:53,579 [DEBUG][       Thread-602031][   transport.py][1871] : EOF in transport thread
2025-07-01 10:43:01,484 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:43:01,485 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:43:01,596 [DEBUG][Thread-602034 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:43:03,576 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:43:03,576 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:43:03,576 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:43:03,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-07-01 10:43:04,059 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 42, 49), 9.53, 51.31, 0.0, 31.55, 9.35, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:43:04,059 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:42:49
2025-07-01 10:43:04,146 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:43:04,150 [DEBUG][       Thread-602035][   transport.py][1871] : starting thread (client mode): 0x82b1f60
2025-07-01 10:43:04,150 [DEBUG][       Thread-602035][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:43:04,171 [DEBUG][       Thread-602035][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:43:04,171 [ INFO][       Thread-602035][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:43:04,175 [DEBUG][       Thread-602035][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:43:04,176 [DEBUG][       Thread-602035][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:43:04,176 [DEBUG][       Thread-602035][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:43:04,176 [DEBUG][       Thread-602035][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:43:04,176 [DEBUG][       Thread-602035][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:43:04,176 [DEBUG][       Thread-602035][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:43:04,176 [DEBUG][       Thread-602035][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:43:04,176 [DEBUG][       Thread-602035][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:43:04,176 [DEBUG][       Thread-602035][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:43:04,176 [DEBUG][       Thread-602035][   transport.py][1871] : client lang: <none>
2025-07-01 10:43:04,176 [DEBUG][       Thread-602035][   transport.py][1871] : server lang: <none>
2025-07-01 10:43:04,176 [DEBUG][       Thread-602035][   transport.py][1871] : kex follows: False
2025-07-01 10:43:04,176 [DEBUG][       Thread-602035][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:43:04,176 [DEBUG][       Thread-602035][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:43:04,176 [DEBUG][       Thread-602035][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:43:04,176 [DEBUG][       Thread-602035][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:43:04,176 [DEBUG][       Thread-602035][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:43:04,176 [DEBUG][       Thread-602035][   transport.py][1871] : Compression: none
2025-07-01 10:43:04,176 [DEBUG][       Thread-602035][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:43:04,194 [DEBUG][       Thread-602035][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:43:04,194 [DEBUG][       Thread-602035][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:43:04,195 [DEBUG][       Thread-602035][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:43:04,195 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:43:04,195 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:43:04,196 [DEBUG][       Thread-602035][   transport.py][1871] : userauth is OK
2025-07-01 10:43:04,221 [ INFO][       Thread-602035][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:43:04,222 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:43:04,854 [DEBUG][       Thread-602035][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:43:04,855 [DEBUG][       Thread-602035][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:43:04,897 [DEBUG][       Thread-602035][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:43:04,897 [DEBUG][       Thread-602035][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:43:04,901 [DEBUG][       Thread-602035][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:43:04,912 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:43:04,913 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:43:04,915 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:43:04,917 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:43:04,923 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:43:04,925 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:43:04,925 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:43:04,926 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:43:04,926 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.362793 -999.00   +9.40  30.28     56   +1.20 1 1 2 1 1   887    0 7.65 -23.09 ----- 30.3 30.3 28.4 36.9 11.8 -23.9 11.1 -23.6 10.6 -22.8 11.2 -23.0
2025-07-01 10:43:04,926 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:43:04,926 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:43:04,926 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.362793
2025-07-01 10:43:04,927 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:43:04,927 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:43:04,927 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:43:04,927 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:43:04,927 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:43:04,928 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:42:49', tmtdew=9.53, humidity=51.31, cloud=0.0, wind=31.55, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:42:25.315', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:43:04,928 [DEBUG][       Thread-602035][   transport.py][1871] : EOF in transport thread
2025-07-01 10:43:05,011 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:43:05,022 [DEBUG][       Thread-602038][   transport.py][1871] : starting thread (client mode): 0x8393f40
2025-07-01 10:43:05,022 [DEBUG][       Thread-602038][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:43:05,039 [DEBUG][       Thread-602038][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:43:05,039 [ INFO][       Thread-602038][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:43:05,047 [DEBUG][       Thread-602038][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:43:05,047 [DEBUG][       Thread-602038][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:43:05,047 [DEBUG][       Thread-602038][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:43:05,047 [DEBUG][       Thread-602038][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:43:05,047 [DEBUG][       Thread-602038][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:43:05,047 [DEBUG][       Thread-602038][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:43:05,047 [DEBUG][       Thread-602038][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:43:05,047 [DEBUG][       Thread-602038][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:43:05,047 [DEBUG][       Thread-602038][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:43:05,047 [DEBUG][       Thread-602038][   transport.py][1871] : client lang: <none>
2025-07-01 10:43:05,048 [DEBUG][       Thread-602038][   transport.py][1871] : server lang: <none>
2025-07-01 10:43:05,048 [DEBUG][       Thread-602038][   transport.py][1871] : kex follows: False
2025-07-01 10:43:05,048 [DEBUG][       Thread-602038][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:43:05,048 [DEBUG][       Thread-602038][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:43:05,048 [DEBUG][       Thread-602038][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:43:05,048 [DEBUG][       Thread-602038][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:43:05,048 [DEBUG][       Thread-602038][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:43:05,048 [DEBUG][       Thread-602038][   transport.py][1871] : Compression: none
2025-07-01 10:43:05,048 [DEBUG][       Thread-602038][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:43:05,108 [DEBUG][       Thread-602038][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:43:05,109 [DEBUG][       Thread-602038][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:43:05,110 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:43:05,110 [DEBUG][       Thread-602038][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:43:05,111 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:43:05,166 [DEBUG][       Thread-602038][   transport.py][1871] : userauth is OK
2025-07-01 10:43:05,167 [DEBUG][       Thread-602038][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:43:05,167 [DEBUG][       Thread-602038][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:43:05,167 [DEBUG][       Thread-602038][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:43:05,167 [DEBUG][       Thread-602038][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:43:05,186 [ INFO][       Thread-602038][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:43:05,186 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:43:05,187 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:43:06,245 [DEBUG][       Thread-602038][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:43:06,245 [DEBUG][       Thread-602038][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:43:06,300 [DEBUG][       Thread-602038][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:43:06,301 [DEBUG][       Thread-602038][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:43:06,311 [DEBUG][       Thread-602038][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:43:06,322 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:43:06,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-07-01 10:43:06,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-07-01 10:43:06,340 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:43:06,340 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:43:06,341 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:43:06,349 [DEBUG][       Thread-602038][   transport.py][1871] : EOF in transport thread
2025-07-01 10:43:10,620 [DEBUG][Thread-602040 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:43:16,348 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:43:16,348 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:43:16,348 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:43:16,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-07-01 10:43:16,827 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 42, 49), 9.53, 51.31, 0.0, 31.55, 9.35, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:43:16,827 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:42:49
2025-07-01 10:43:16,914 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:43:16,919 [DEBUG][       Thread-602041][   transport.py][1871] : starting thread (client mode): 0x82b2d10
2025-07-01 10:43:16,919 [DEBUG][       Thread-602041][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:43:16,939 [DEBUG][       Thread-602041][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:43:16,939 [ INFO][       Thread-602041][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:43:16,942 [DEBUG][       Thread-602041][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:43:16,942 [DEBUG][       Thread-602041][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:43:16,942 [DEBUG][       Thread-602041][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:43:16,943 [DEBUG][       Thread-602041][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:43:16,943 [DEBUG][       Thread-602041][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:43:16,943 [DEBUG][       Thread-602041][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:43:16,943 [DEBUG][       Thread-602041][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:43:16,943 [DEBUG][       Thread-602041][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:43:16,943 [DEBUG][       Thread-602041][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:43:16,943 [DEBUG][       Thread-602041][   transport.py][1871] : client lang: <none>
2025-07-01 10:43:16,943 [DEBUG][       Thread-602041][   transport.py][1871] : server lang: <none>
2025-07-01 10:43:16,943 [DEBUG][       Thread-602041][   transport.py][1871] : kex follows: False
2025-07-01 10:43:16,943 [DEBUG][       Thread-602041][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:43:16,943 [DEBUG][       Thread-602041][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:43:16,943 [DEBUG][       Thread-602041][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:43:16,943 [DEBUG][       Thread-602041][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:43:16,943 [DEBUG][       Thread-602041][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:43:16,943 [DEBUG][       Thread-602041][   transport.py][1871] : Compression: none
2025-07-01 10:43:16,943 [DEBUG][       Thread-602041][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:43:16,961 [DEBUG][       Thread-602041][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:43:16,962 [DEBUG][       Thread-602041][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:43:16,962 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:43:16,962 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:43:16,963 [DEBUG][       Thread-602041][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:43:16,963 [DEBUG][       Thread-602041][   transport.py][1871] : userauth is OK
2025-07-01 10:43:16,988 [ INFO][       Thread-602041][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:43:16,989 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:43:17,639 [DEBUG][       Thread-602041][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:43:17,640 [DEBUG][       Thread-602041][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:43:17,681 [DEBUG][       Thread-602041][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:43:17,681 [DEBUG][       Thread-602041][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:43:17,684 [DEBUG][       Thread-602041][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:43:17,696 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:43:17,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:43:17,698 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:43:17,700 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:43:17,706 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:43:17,708 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:43:17,708 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:43:17,709 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:43:17,709 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.362793 -999.00   +9.40  30.28     56   +1.20 1 1 2 1 1   887    0 7.65 -23.09 ----- 30.3 30.3 28.4 36.9 11.8 -23.9 11.1 -23.6 10.6 -22.8 11.2 -23.0
2025-07-01 10:43:17,709 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:43:17,709 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:43:17,709 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.362793
2025-07-01 10:43:17,710 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:43:17,710 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:43:17,710 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:43:17,710 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:43:17,710 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:43:17,711 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:42:49', tmtdew=9.53, humidity=51.31, cloud=0.0, wind=31.55, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:42:25.315', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:43:17,712 [DEBUG][       Thread-602041][   transport.py][1871] : EOF in transport thread
2025-07-01 10:43:17,788 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:43:17,799 [DEBUG][       Thread-602044][   transport.py][1871] : starting thread (client mode): 0x818fac0
2025-07-01 10:43:17,799 [DEBUG][       Thread-602044][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:43:17,815 [DEBUG][       Thread-602044][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:43:17,815 [ INFO][       Thread-602044][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:43:17,822 [DEBUG][       Thread-602044][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:43:17,823 [DEBUG][       Thread-602044][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:43:17,823 [DEBUG][       Thread-602044][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:43:17,823 [DEBUG][       Thread-602044][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:43:17,823 [DEBUG][       Thread-602044][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:43:17,823 [DEBUG][       Thread-602044][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:43:17,823 [DEBUG][       Thread-602044][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:43:17,823 [DEBUG][       Thread-602044][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:43:17,823 [DEBUG][       Thread-602044][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:43:17,823 [DEBUG][       Thread-602044][   transport.py][1871] : client lang: <none>
2025-07-01 10:43:17,823 [DEBUG][       Thread-602044][   transport.py][1871] : server lang: <none>
2025-07-01 10:43:17,823 [DEBUG][       Thread-602044][   transport.py][1871] : kex follows: False
2025-07-01 10:43:17,823 [DEBUG][       Thread-602044][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:43:17,823 [DEBUG][       Thread-602044][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:43:17,823 [DEBUG][       Thread-602044][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:43:17,823 [DEBUG][       Thread-602044][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:43:17,823 [DEBUG][       Thread-602044][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:43:17,823 [DEBUG][       Thread-602044][   transport.py][1871] : Compression: none
2025-07-01 10:43:17,824 [DEBUG][       Thread-602044][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:43:17,888 [DEBUG][       Thread-602044][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:43:17,888 [DEBUG][       Thread-602044][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:43:17,889 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:43:17,889 [DEBUG][       Thread-602044][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:43:17,890 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:43:17,946 [DEBUG][       Thread-602044][   transport.py][1871] : userauth is OK
2025-07-01 10:43:17,946 [DEBUG][       Thread-602044][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:43:17,946 [DEBUG][       Thread-602044][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:43:17,947 [DEBUG][       Thread-602044][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:43:17,947 [DEBUG][       Thread-602044][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:43:17,967 [ INFO][       Thread-602044][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:43:17,968 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:43:17,968 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:43:18,958 [DEBUG][       Thread-602044][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:43:18,958 [DEBUG][       Thread-602044][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:43:19,008 [DEBUG][       Thread-602044][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:43:19,008 [DEBUG][       Thread-602044][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:43:19,017 [DEBUG][       Thread-602044][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:43:19,025 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:43:19,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-07-01 10:43: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') -> 00000000
2025-07-01 10:43:19,043 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:43:19,043 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:43:19,043 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:43:19,051 [DEBUG][       Thread-602044][   transport.py][1871] : EOF in transport thread
2025-07-01 10:43:19,662 [DEBUG][Thread-602046 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:43:23,906 [DEBUG][Thread-602047 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:43:28,685 [DEBUG][Thread-602048 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:43:29,052 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:43:29,052 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:43:29,052 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:43:29,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-07-01 10:43:29,520 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 43, 21), 9.44, 51.84, 0.0, 25.53, 9.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:43:29,520 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:43:21
2025-07-01 10:43:29,607 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:43:29,613 [DEBUG][       Thread-602049][   transport.py][1871] : starting thread (client mode): 0x82b39a0
2025-07-01 10:43:29,613 [DEBUG][       Thread-602049][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:43:29,633 [DEBUG][       Thread-602049][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:43:29,633 [ INFO][       Thread-602049][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:43:29,637 [DEBUG][       Thread-602049][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:43:29,637 [DEBUG][       Thread-602049][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:43:29,637 [DEBUG][       Thread-602049][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:43:29,637 [DEBUG][       Thread-602049][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:43:29,637 [DEBUG][       Thread-602049][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:43:29,637 [DEBUG][       Thread-602049][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:43:29,637 [DEBUG][       Thread-602049][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:43:29,637 [DEBUG][       Thread-602049][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:43:29,637 [DEBUG][       Thread-602049][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:43:29,637 [DEBUG][       Thread-602049][   transport.py][1871] : client lang: <none>
2025-07-01 10:43:29,637 [DEBUG][       Thread-602049][   transport.py][1871] : server lang: <none>
2025-07-01 10:43:29,637 [DEBUG][       Thread-602049][   transport.py][1871] : kex follows: False
2025-07-01 10:43:29,637 [DEBUG][       Thread-602049][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:43:29,637 [DEBUG][       Thread-602049][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:43:29,637 [DEBUG][       Thread-602049][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:43:29,637 [DEBUG][       Thread-602049][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:43:29,637 [DEBUG][       Thread-602049][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:43:29,637 [DEBUG][       Thread-602049][   transport.py][1871] : Compression: none
2025-07-01 10:43:29,637 [DEBUG][       Thread-602049][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:43:29,654 [DEBUG][       Thread-602049][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:43:29,655 [DEBUG][       Thread-602049][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:43:29,655 [DEBUG][       Thread-602049][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:43:29,656 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:43:29,656 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:43:29,657 [DEBUG][       Thread-602049][   transport.py][1871] : userauth is OK
2025-07-01 10:43:29,682 [ INFO][       Thread-602049][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:43:29,682 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:43:30,312 [DEBUG][       Thread-602049][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:43:30,312 [DEBUG][       Thread-602049][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:43:30,356 [DEBUG][       Thread-602049][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:43:30,356 [DEBUG][       Thread-602049][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:43:30,359 [DEBUG][       Thread-602049][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:43:30,371 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:43:30,371 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:43:30,373 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:43:30,374 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:43:30,377 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:43:30,378 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:43:30,378 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:43:30,378 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:43:30,378 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.363140 -999.00   +9.40  26.62     56   +1.20 1 1 1 1 1   887    0 7.59 -21.08 ----- 26.6 26.6 19.9 38.6 11.8 -23.4 11.2 -23.7 10.7 -22.9 11.3 -22.1
2025-07-01 10:43:30,378 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:43:30,378 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:43:30,378 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.363140
2025-07-01 10:43:30,378 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:43:30,378 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:43:30,378 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:43:30,378 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:43:30,378 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:43:30,378 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:43:21', tmtdew=9.44, humidity=51.84, cloud=0.0, wind=25.53, temperature=9.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:42:55.296', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:43:30,379 [DEBUG][       Thread-602049][   transport.py][1871] : EOF in transport thread
2025-07-01 10:43:30,453 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:43:30,464 [DEBUG][       Thread-602052][   transport.py][1871] : starting thread (client mode): 0x8154550
2025-07-01 10:43:30,465 [DEBUG][       Thread-602052][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:43:30,479 [DEBUG][       Thread-602052][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:43:30,479 [ INFO][       Thread-602052][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:43:30,493 [DEBUG][       Thread-602052][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:43:30,493 [DEBUG][       Thread-602052][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:43:30,493 [DEBUG][       Thread-602052][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:43:30,493 [DEBUG][       Thread-602052][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:43:30,493 [DEBUG][       Thread-602052][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:43:30,493 [DEBUG][       Thread-602052][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:43:30,493 [DEBUG][       Thread-602052][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:43:30,493 [DEBUG][       Thread-602052][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:43:30,493 [DEBUG][       Thread-602052][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:43:30,493 [DEBUG][       Thread-602052][   transport.py][1871] : client lang: <none>
2025-07-01 10:43:30,493 [DEBUG][       Thread-602052][   transport.py][1871] : server lang: <none>
2025-07-01 10:43:30,493 [DEBUG][       Thread-602052][   transport.py][1871] : kex follows: False
2025-07-01 10:43:30,493 [DEBUG][       Thread-602052][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:43:30,493 [DEBUG][       Thread-602052][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:43:30,493 [DEBUG][       Thread-602052][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:43:30,493 [DEBUG][       Thread-602052][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:43:30,493 [DEBUG][       Thread-602052][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:43:30,493 [DEBUG][       Thread-602052][   transport.py][1871] : Compression: none
2025-07-01 10:43:30,493 [DEBUG][       Thread-602052][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:43:30,548 [DEBUG][       Thread-602052][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:43:30,548 [DEBUG][       Thread-602052][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:43:30,548 [DEBUG][       Thread-602052][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:43:30,548 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:43:30,549 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:43:30,609 [DEBUG][       Thread-602052][   transport.py][1871] : userauth is OK
2025-07-01 10:43:30,610 [DEBUG][       Thread-602052][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:43:30,610 [DEBUG][       Thread-602052][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:43:30,610 [DEBUG][       Thread-602052][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:43:30,610 [DEBUG][       Thread-602052][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:43:30,623 [ INFO][       Thread-602052][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:43:30,623 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:43:30,623 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:43:31,618 [DEBUG][       Thread-602052][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:43:31,618 [DEBUG][       Thread-602052][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:43:31,667 [DEBUG][       Thread-602052][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:43:31,667 [DEBUG][       Thread-602052][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:43:31,676 [DEBUG][       Thread-602052][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:43:31,683 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:43: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')
2025-07-01 10:43:31,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-07-01 10:43:31,699 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:43:31,699 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:43:31,699 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:43:31,707 [DEBUG][       Thread-602052][   transport.py][1871] : EOF in transport thread
2025-07-01 10:43:37,706 [DEBUG][Thread-602054 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:43:41,710 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:43:41,710 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:43:41,710 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:43:41,713 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:43:42,161 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 43, 21), 9.44, 51.84, 0.0, 25.53, 9.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:43:42,161 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:43:21
2025-07-01 10:43:42,245 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:43:42,249 [DEBUG][       Thread-602055][   transport.py][1871] : starting thread (client mode): 0x75a91b0
2025-07-01 10:43:42,249 [DEBUG][       Thread-602055][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:43:42,269 [DEBUG][       Thread-602055][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:43:42,269 [ INFO][       Thread-602055][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:43:42,272 [DEBUG][       Thread-602055][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:43:42,272 [DEBUG][       Thread-602055][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:43:42,272 [DEBUG][       Thread-602055][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:43:42,272 [DEBUG][       Thread-602055][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:43:42,272 [DEBUG][       Thread-602055][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:43:42,272 [DEBUG][       Thread-602055][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:43:42,272 [DEBUG][       Thread-602055][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:43:42,273 [DEBUG][       Thread-602055][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:43:42,273 [DEBUG][       Thread-602055][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:43:42,273 [DEBUG][       Thread-602055][   transport.py][1871] : client lang: <none>
2025-07-01 10:43:42,273 [DEBUG][       Thread-602055][   transport.py][1871] : server lang: <none>
2025-07-01 10:43:42,273 [DEBUG][       Thread-602055][   transport.py][1871] : kex follows: False
2025-07-01 10:43:42,273 [DEBUG][       Thread-602055][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:43:42,273 [DEBUG][       Thread-602055][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:43:42,273 [DEBUG][       Thread-602055][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:43:42,273 [DEBUG][       Thread-602055][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:43:42,273 [DEBUG][       Thread-602055][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:43:42,273 [DEBUG][       Thread-602055][   transport.py][1871] : Compression: none
2025-07-01 10:43:42,273 [DEBUG][       Thread-602055][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:43:42,289 [DEBUG][       Thread-602055][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:43:42,289 [DEBUG][       Thread-602055][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:43:42,290 [DEBUG][       Thread-602055][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:43:42,290 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:43:42,290 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:43:42,291 [DEBUG][       Thread-602055][   transport.py][1871] : userauth is OK
2025-07-01 10:43:42,305 [ INFO][       Thread-602055][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:43:42,305 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:43:42,946 [DEBUG][       Thread-602055][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:43:42,946 [DEBUG][       Thread-602055][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:43:42,989 [DEBUG][       Thread-602055][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:43:42,989 [DEBUG][       Thread-602055][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:43:42,992 [DEBUG][       Thread-602055][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:43:43,006 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:43:43,006 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:43:43,008 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:43:43,010 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:43:43,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:43:43,017 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:43:43,017 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:43:43,017 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:43:43,018 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.363140 -999.00   +9.40  26.62     56   +1.20 1 1 1 1 1   887    0 7.59 -21.08 ----- 26.6 26.6 19.9 38.6 11.8 -23.4 11.2 -23.7 10.7 -22.9 11.3 -22.1
2025-07-01 10:43:43,018 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:43:43,018 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:43:43,018 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.363140
2025-07-01 10:43:43,018 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:43:43,019 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:43:43,019 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:43:43,019 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:43:43,019 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:43:43,019 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:43:21', tmtdew=9.44, humidity=51.84, cloud=0.0, wind=25.53, temperature=9.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:42:55.296', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:43:43,019 [DEBUG][       Thread-602055][   transport.py][1871] : EOF in transport thread
2025-07-01 10:43:43,103 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:43:43,119 [DEBUG][       Thread-602058][   transport.py][1871] : starting thread (client mode): 0x81e7550
2025-07-01 10:43:43,119 [DEBUG][       Thread-602058][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:43:43,141 [DEBUG][       Thread-602058][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:43:43,142 [ INFO][       Thread-602058][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:43:43,157 [DEBUG][       Thread-602058][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:43:43,157 [DEBUG][       Thread-602058][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:43:43,157 [DEBUG][       Thread-602058][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:43:43,157 [DEBUG][       Thread-602058][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:43:43,157 [DEBUG][       Thread-602058][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:43:43,157 [DEBUG][       Thread-602058][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:43:43,157 [DEBUG][       Thread-602058][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:43:43,157 [DEBUG][       Thread-602058][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:43:43,157 [DEBUG][       Thread-602058][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:43:43,157 [DEBUG][       Thread-602058][   transport.py][1871] : client lang: <none>
2025-07-01 10:43:43,157 [DEBUG][       Thread-602058][   transport.py][1871] : server lang: <none>
2025-07-01 10:43:43,157 [DEBUG][       Thread-602058][   transport.py][1871] : kex follows: False
2025-07-01 10:43:43,157 [DEBUG][       Thread-602058][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:43:43,157 [DEBUG][       Thread-602058][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:43:43,157 [DEBUG][       Thread-602058][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:43:43,157 [DEBUG][       Thread-602058][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:43:43,158 [DEBUG][       Thread-602058][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:43:43,158 [DEBUG][       Thread-602058][   transport.py][1871] : Compression: none
2025-07-01 10:43:43,158 [DEBUG][       Thread-602058][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:43:43,220 [DEBUG][       Thread-602058][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:43:43,221 [DEBUG][       Thread-602058][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:43:43,222 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:43:43,222 [DEBUG][       Thread-602058][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:43:43,223 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:43:43,291 [DEBUG][       Thread-602058][   transport.py][1871] : userauth is OK
2025-07-01 10:43:43,291 [DEBUG][       Thread-602058][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:43:43,291 [DEBUG][       Thread-602058][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:43:43,291 [DEBUG][       Thread-602058][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:43:43,291 [DEBUG][       Thread-602058][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:43:43,318 [ INFO][       Thread-602058][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:43:43,318 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:43:43,319 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:43:44,289 [DEBUG][       Thread-602058][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:43:44,290 [DEBUG][       Thread-602058][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:43:44,340 [DEBUG][       Thread-602058][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:43:44,340 [DEBUG][       Thread-602058][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:43:44,349 [DEBUG][       Thread-602058][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:43:44,359 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:43:44,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-07-01 10:43:44,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-07-01 10:43:44,377 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:43:44,377 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:43:44,378 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:43:44,386 [DEBUG][       Thread-602058][   transport.py][1871] : EOF in transport thread
2025-07-01 10:43:46,753 [DEBUG][Thread-602060 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:43:54,388 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:43:54,388 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:43:54,388 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:43:54,389 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:43:54,899 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 43, 21), 9.44, 51.84, 0.0, 25.53, 9.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:43:54,899 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:43:21
2025-07-01 10:43:54,989 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:43:54,993 [DEBUG][       Thread-602061][   transport.py][1871] : starting thread (client mode): 0x8173ca0
2025-07-01 10:43:54,993 [DEBUG][       Thread-602061][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:43:55,012 [DEBUG][       Thread-602061][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:43:55,012 [ INFO][       Thread-602061][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:43:55,015 [DEBUG][       Thread-602061][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:43:55,015 [DEBUG][       Thread-602061][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:43:55,015 [DEBUG][       Thread-602061][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:43:55,015 [DEBUG][       Thread-602061][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:43:55,015 [DEBUG][       Thread-602061][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:43:55,015 [DEBUG][       Thread-602061][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:43:55,015 [DEBUG][       Thread-602061][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:43:55,015 [DEBUG][       Thread-602061][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:43:55,015 [DEBUG][       Thread-602061][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:43:55,015 [DEBUG][       Thread-602061][   transport.py][1871] : client lang: <none>
2025-07-01 10:43:55,015 [DEBUG][       Thread-602061][   transport.py][1871] : server lang: <none>
2025-07-01 10:43:55,015 [DEBUG][       Thread-602061][   transport.py][1871] : kex follows: False
2025-07-01 10:43:55,015 [DEBUG][       Thread-602061][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:43:55,015 [DEBUG][       Thread-602061][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:43:55,015 [DEBUG][       Thread-602061][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:43:55,015 [DEBUG][       Thread-602061][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:43:55,015 [DEBUG][       Thread-602061][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:43:55,015 [DEBUG][       Thread-602061][   transport.py][1871] : Compression: none
2025-07-01 10:43:55,015 [DEBUG][       Thread-602061][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:43:55,022 [DEBUG][       Thread-602061][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:43:55,022 [DEBUG][       Thread-602061][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:43:55,022 [DEBUG][       Thread-602061][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:43:55,022 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:43:55,022 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:43:55,022 [DEBUG][       Thread-602061][   transport.py][1871] : userauth is OK
2025-07-01 10:43:55,035 [ INFO][       Thread-602061][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:43:55,035 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:43:55,681 [DEBUG][       Thread-602061][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:43:55,681 [DEBUG][       Thread-602061][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:43:55,725 [DEBUG][       Thread-602061][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:43:55,725 [DEBUG][       Thread-602061][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:43:55,729 [DEBUG][       Thread-602061][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:43:55,742 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:43:55,742 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:43:55,744 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:43:55,746 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:43:55,751 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:43:55,753 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:43:55,753 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:43:55,754 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:43:55,754 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.363487 -999.00   +9.40  26.16     56   +1.20 1 1 1 1 1   887    0 7.59 -21.71 ----- 26.2 26.2 27.0 39.5 11.9 -23.2 11.2 -23.5 10.7 -22.7 11.3 -21.9
2025-07-01 10:43:55,754 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:43:55,754 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:43:55,754 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.363487
2025-07-01 10:43:55,755 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:43:55,755 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:43:55,755 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:43:55,755 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:43:55,755 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:43:55,755 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:43:21', tmtdew=9.44, humidity=51.84, cloud=0.0, wind=25.53, temperature=9.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:43:25.277', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:43:55,757 [DEBUG][       Thread-602061][   transport.py][1871] : EOF in transport thread
2025-07-01 10:43:55,776 [DEBUG][Thread-602064 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:43:55,840 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:43:55,852 [DEBUG][       Thread-602065][   transport.py][1871] : starting thread (client mode): 0x827ec50
2025-07-01 10:43:55,852 [DEBUG][       Thread-602065][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:43:55,867 [DEBUG][       Thread-602065][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:43:55,867 [ INFO][       Thread-602065][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:43:55,874 [DEBUG][       Thread-602065][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:43:55,874 [DEBUG][       Thread-602065][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:43:55,874 [DEBUG][       Thread-602065][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:43:55,874 [DEBUG][       Thread-602065][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:43:55,874 [DEBUG][       Thread-602065][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:43:55,874 [DEBUG][       Thread-602065][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:43:55,875 [DEBUG][       Thread-602065][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:43:55,875 [DEBUG][       Thread-602065][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:43:55,875 [DEBUG][       Thread-602065][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:43:55,875 [DEBUG][       Thread-602065][   transport.py][1871] : client lang: <none>
2025-07-01 10:43:55,875 [DEBUG][       Thread-602065][   transport.py][1871] : server lang: <none>
2025-07-01 10:43:55,875 [DEBUG][       Thread-602065][   transport.py][1871] : kex follows: False
2025-07-01 10:43:55,875 [DEBUG][       Thread-602065][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:43:55,875 [DEBUG][       Thread-602065][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:43:55,875 [DEBUG][       Thread-602065][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:43:55,875 [DEBUG][       Thread-602065][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:43:55,875 [DEBUG][       Thread-602065][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:43:55,875 [DEBUG][       Thread-602065][   transport.py][1871] : Compression: none
2025-07-01 10:43:55,875 [DEBUG][       Thread-602065][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:43:55,933 [DEBUG][       Thread-602065][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:43:55,933 [DEBUG][       Thread-602065][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:43:55,933 [DEBUG][       Thread-602065][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:43:55,933 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:43:55,934 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:43:55,993 [DEBUG][       Thread-602065][   transport.py][1871] : userauth is OK
2025-07-01 10:43:55,993 [DEBUG][       Thread-602065][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:43:55,993 [DEBUG][       Thread-602065][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:43:55,993 [DEBUG][       Thread-602065][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:43:55,993 [DEBUG][       Thread-602065][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:43:56,016 [ INFO][       Thread-602065][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:43:56,016 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:43:56,017 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:43:57,031 [DEBUG][       Thread-602065][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:43:57,031 [DEBUG][       Thread-602065][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:43:57,080 [DEBUG][       Thread-602065][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:43:57,080 [DEBUG][       Thread-602065][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:43:57,098 [DEBUG][       Thread-602065][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:43:57,109 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:43:57,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-07-01 10:43:57,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-07-01 10:43:57,128 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:43:57,128 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:43:57,129 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:43:57,137 [DEBUG][       Thread-602065][   transport.py][1871] : EOF in transport thread
2025-07-01 10:44:01,622 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:44:01,623 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:44:04,797 [DEBUG][Thread-602067 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:44:07,139 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:44:07,140 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:44:07,140 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:44:07,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-07-01 10:44:07,607 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 43, 53), 9.45, 51.82, 0.0, 26.92, 9.45, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:44:07,607 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:43:53
2025-07-01 10:44:07,691 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:44:07,695 [DEBUG][       Thread-602068][   transport.py][1871] : starting thread (client mode): 0x75aa1a0
2025-07-01 10:44:07,695 [DEBUG][       Thread-602068][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:44:07,715 [DEBUG][       Thread-602068][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:44:07,715 [ INFO][       Thread-602068][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:44:07,718 [DEBUG][       Thread-602068][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:44:07,719 [DEBUG][       Thread-602068][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:44:07,719 [DEBUG][       Thread-602068][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:44:07,719 [DEBUG][       Thread-602068][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:44:07,719 [DEBUG][       Thread-602068][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:44:07,719 [DEBUG][       Thread-602068][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:44:07,719 [DEBUG][       Thread-602068][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:44:07,719 [DEBUG][       Thread-602068][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:44:07,719 [DEBUG][       Thread-602068][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:44:07,719 [DEBUG][       Thread-602068][   transport.py][1871] : client lang: <none>
2025-07-01 10:44:07,719 [DEBUG][       Thread-602068][   transport.py][1871] : server lang: <none>
2025-07-01 10:44:07,719 [DEBUG][       Thread-602068][   transport.py][1871] : kex follows: False
2025-07-01 10:44:07,719 [DEBUG][       Thread-602068][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:44:07,719 [DEBUG][       Thread-602068][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:44:07,719 [DEBUG][       Thread-602068][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:44:07,719 [DEBUG][       Thread-602068][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:44:07,719 [DEBUG][       Thread-602068][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:44:07,719 [DEBUG][       Thread-602068][   transport.py][1871] : Compression: none
2025-07-01 10:44:07,719 [DEBUG][       Thread-602068][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:44:07,737 [DEBUG][       Thread-602068][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:44:07,737 [DEBUG][       Thread-602068][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:44:07,738 [DEBUG][       Thread-602068][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:44:07,738 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:44:07,738 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:44:07,780 [DEBUG][       Thread-602068][   transport.py][1871] : userauth is OK
2025-07-01 10:44:07,805 [ INFO][       Thread-602068][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:44:07,806 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:44:08,446 [DEBUG][       Thread-602068][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:44:08,446 [DEBUG][       Thread-602068][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:44:08,489 [DEBUG][       Thread-602068][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:44:08,489 [DEBUG][       Thread-602068][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:44:08,491 [DEBUG][       Thread-602068][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:44:08,503 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:44:08,504 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:44:08,505 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:44:08,506 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:44:08,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:44:08,510 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:44:08,510 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:44:08,511 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:44:08,511 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.363487 -999.00   +9.40  26.16     56   +1.20 1 1 1 1 1   887    0 7.59 -21.71 ----- 26.2 26.2 27.0 39.5 11.9 -23.2 11.2 -23.5 10.7 -22.7 11.3 -21.9
2025-07-01 10:44:08,511 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:44:08,511 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:44:08,511 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.363487
2025-07-01 10:44:08,511 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:44:08,511 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:44:08,511 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:44:08,511 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:44:08,511 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:44:08,511 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:43:53', tmtdew=9.45, humidity=51.82, cloud=0.0, wind=26.92, temperature=9.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:43:25.277', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:44:08,512 [DEBUG][       Thread-602068][   transport.py][1871] : EOF in transport thread
2025-07-01 10:44:08,582 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:44:08,599 [DEBUG][       Thread-602071][   transport.py][1871] : starting thread (client mode): 0x82b28c0
2025-07-01 10:44:08,599 [DEBUG][       Thread-602071][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:44:08,615 [DEBUG][       Thread-602071][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:44:08,615 [ INFO][       Thread-602071][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:44:08,622 [DEBUG][       Thread-602071][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:44:08,622 [DEBUG][       Thread-602071][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:44:08,622 [DEBUG][       Thread-602071][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:44:08,622 [DEBUG][       Thread-602071][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:44:08,622 [DEBUG][       Thread-602071][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:44:08,623 [DEBUG][       Thread-602071][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:44:08,623 [DEBUG][       Thread-602071][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:44:08,623 [DEBUG][       Thread-602071][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:44:08,623 [DEBUG][       Thread-602071][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:44:08,623 [DEBUG][       Thread-602071][   transport.py][1871] : client lang: <none>
2025-07-01 10:44:08,623 [DEBUG][       Thread-602071][   transport.py][1871] : server lang: <none>
2025-07-01 10:44:08,623 [DEBUG][       Thread-602071][   transport.py][1871] : kex follows: False
2025-07-01 10:44:08,623 [DEBUG][       Thread-602071][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:44:08,623 [DEBUG][       Thread-602071][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:44:08,623 [DEBUG][       Thread-602071][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:44:08,623 [DEBUG][       Thread-602071][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:44:08,623 [DEBUG][       Thread-602071][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:44:08,623 [DEBUG][       Thread-602071][   transport.py][1871] : Compression: none
2025-07-01 10:44:08,623 [DEBUG][       Thread-602071][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:44:08,681 [DEBUG][       Thread-602071][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:44:08,682 [DEBUG][       Thread-602071][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:44:08,682 [DEBUG][       Thread-602071][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:44:08,683 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:44:08,683 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:44:08,737 [DEBUG][       Thread-602071][   transport.py][1871] : userauth is OK
2025-07-01 10:44:08,737 [DEBUG][       Thread-602071][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:44:08,737 [DEBUG][       Thread-602071][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:44:08,737 [DEBUG][       Thread-602071][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:44:08,737 [DEBUG][       Thread-602071][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:44:08,751 [ INFO][       Thread-602071][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:44:08,752 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:44:08,752 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:44:09,799 [DEBUG][       Thread-602071][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:44:09,799 [DEBUG][       Thread-602071][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:44:09,847 [DEBUG][       Thread-602071][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:44:09,847 [DEBUG][       Thread-602071][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:44:09,859 [DEBUG][       Thread-602071][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:44:09,867 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:44:09,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-07-01 10:44:09,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') -> 00000000
2025-07-01 10:44:09,884 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:44:09,884 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:44:09,885 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:44:09,892 [DEBUG][       Thread-602071][   transport.py][1871] : EOF in transport thread
2025-07-01 10:44:13,818 [DEBUG][Thread-602073 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:44:19,895 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:44:19,895 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:44:19,895 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:44:19,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-07-01 10:44:20,347 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 43, 53), 9.45, 51.82, 0.0, 26.92, 9.45, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:44:20,347 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:43:53
2025-07-01 10:44:20,430 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:44:20,434 [DEBUG][       Thread-602074][   transport.py][1871] : starting thread (client mode): 0x75a9900
2025-07-01 10:44:20,434 [DEBUG][       Thread-602074][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:44:20,455 [DEBUG][       Thread-602074][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:44:20,455 [ INFO][       Thread-602074][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:44:20,458 [DEBUG][       Thread-602074][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:44:20,458 [DEBUG][       Thread-602074][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:44:20,458 [DEBUG][       Thread-602074][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:44:20,458 [DEBUG][       Thread-602074][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:44:20,458 [DEBUG][       Thread-602074][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:44:20,458 [DEBUG][       Thread-602074][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:44:20,458 [DEBUG][       Thread-602074][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:44:20,458 [DEBUG][       Thread-602074][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:44:20,458 [DEBUG][       Thread-602074][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:44:20,458 [DEBUG][       Thread-602074][   transport.py][1871] : client lang: <none>
2025-07-01 10:44:20,458 [DEBUG][       Thread-602074][   transport.py][1871] : server lang: <none>
2025-07-01 10:44:20,458 [DEBUG][       Thread-602074][   transport.py][1871] : kex follows: False
2025-07-01 10:44:20,458 [DEBUG][       Thread-602074][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:44:20,458 [DEBUG][       Thread-602074][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:44:20,458 [DEBUG][       Thread-602074][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:44:20,458 [DEBUG][       Thread-602074][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:44:20,458 [DEBUG][       Thread-602074][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:44:20,458 [DEBUG][       Thread-602074][   transport.py][1871] : Compression: none
2025-07-01 10:44:20,458 [DEBUG][       Thread-602074][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:44:20,474 [DEBUG][       Thread-602074][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:44:20,475 [DEBUG][       Thread-602074][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:44:20,475 [DEBUG][       Thread-602074][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:44:20,476 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:44:20,476 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:44:20,477 [DEBUG][       Thread-602074][   transport.py][1871] : userauth is OK
2025-07-01 10:44:20,489 [ INFO][       Thread-602074][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:44:20,490 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:44:21,078 [DEBUG][       Thread-602074][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:44:21,079 [DEBUG][       Thread-602074][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:44:21,121 [DEBUG][       Thread-602074][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:44:21,121 [DEBUG][       Thread-602074][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:44:21,124 [DEBUG][       Thread-602074][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:44:21,135 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:44:21,135 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:44:21,137 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:44:21,139 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:44:21,144 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:44:21,146 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:44:21,146 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:44:21,147 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:44:21,147 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.363487 -999.00   +9.40  26.16     56   +1.20 1 1 1 1 1   887    0 7.59 -21.71 ----- 26.2 26.2 27.0 39.5 11.9 -23.2 11.2 -23.5 10.7 -22.7 11.3 -21.9
2025-07-01 10:44:21,147 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:44:21,147 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:44:21,147 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.363487
2025-07-01 10:44:21,148 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:44:21,148 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:44:21,148 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:44:21,148 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:44:21,148 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:44:21,148 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:43:53', tmtdew=9.45, humidity=51.82, cloud=0.0, wind=26.92, temperature=9.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:43:25.277', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:44:21,150 [DEBUG][       Thread-602074][   transport.py][1871] : EOF in transport thread
2025-07-01 10:44:21,232 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:44:21,243 [DEBUG][       Thread-602077][   transport.py][1871] : starting thread (client mode): 0x818c5e0
2025-07-01 10:44:21,243 [DEBUG][       Thread-602077][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:44:21,259 [DEBUG][       Thread-602077][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:44:21,259 [ INFO][       Thread-602077][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:44:21,267 [DEBUG][       Thread-602077][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:44:21,267 [DEBUG][       Thread-602077][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:44:21,267 [DEBUG][       Thread-602077][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:44:21,267 [DEBUG][       Thread-602077][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:44:21,267 [DEBUG][       Thread-602077][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:44:21,267 [DEBUG][       Thread-602077][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:44:21,267 [DEBUG][       Thread-602077][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:44:21,267 [DEBUG][       Thread-602077][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:44:21,267 [DEBUG][       Thread-602077][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:44:21,267 [DEBUG][       Thread-602077][   transport.py][1871] : client lang: <none>
2025-07-01 10:44:21,267 [DEBUG][       Thread-602077][   transport.py][1871] : server lang: <none>
2025-07-01 10:44:21,267 [DEBUG][       Thread-602077][   transport.py][1871] : kex follows: False
2025-07-01 10:44:21,267 [DEBUG][       Thread-602077][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:44:21,267 [DEBUG][       Thread-602077][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:44:21,267 [DEBUG][       Thread-602077][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:44:21,267 [DEBUG][       Thread-602077][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:44:21,267 [DEBUG][       Thread-602077][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:44:21,267 [DEBUG][       Thread-602077][   transport.py][1871] : Compression: none
2025-07-01 10:44:21,267 [DEBUG][       Thread-602077][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:44:21,326 [DEBUG][       Thread-602077][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:44:21,327 [DEBUG][       Thread-602077][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:44:21,327 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:44:21,328 [DEBUG][       Thread-602077][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:44:21,328 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:44:21,382 [DEBUG][       Thread-602077][   transport.py][1871] : userauth is OK
2025-07-01 10:44:21,382 [DEBUG][       Thread-602077][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:44:21,383 [DEBUG][       Thread-602077][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:44:21,383 [DEBUG][       Thread-602077][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:44:21,383 [DEBUG][       Thread-602077][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:44:21,404 [ INFO][       Thread-602077][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:44:21,404 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:44:21,405 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:44:22,438 [DEBUG][       Thread-602077][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:44:22,438 [DEBUG][       Thread-602077][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:44:22,488 [DEBUG][       Thread-602077][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:44:22,488 [DEBUG][       Thread-602077][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:44:22,497 [DEBUG][       Thread-602077][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:44:22,506 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:44:22,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-07-01 10:44: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-07-01 10:44:22,523 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:44:22,524 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:44:22,524 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:44:22,532 [DEBUG][       Thread-602077][   transport.py][1871] : EOF in transport thread
2025-07-01 10:44:22,862 [DEBUG][Thread-602079 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:44:23,956 [DEBUG][Thread-602080 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:44:31,884 [DEBUG][Thread-602081 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:44:32,535 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:44:32,535 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:44:32,535 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:44:32,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-07-01 10:44:33,026 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 44, 24), 9.55, 51.37, 0.0, 23.64, 9.56, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:44:33,026 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:44:24
2025-07-01 10:44:33,110 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:44:33,114 [DEBUG][       Thread-602082][   transport.py][1871] : starting thread (client mode): 0x75a8ac0
2025-07-01 10:44:33,114 [DEBUG][       Thread-602082][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:44:33,136 [DEBUG][       Thread-602082][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:44:33,136 [ INFO][       Thread-602082][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:44:33,139 [DEBUG][       Thread-602082][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:44:33,139 [DEBUG][       Thread-602082][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:44:33,139 [DEBUG][       Thread-602082][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:44:33,140 [DEBUG][       Thread-602082][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:44:33,140 [DEBUG][       Thread-602082][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:44:33,140 [DEBUG][       Thread-602082][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:44:33,140 [DEBUG][       Thread-602082][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:44:33,140 [DEBUG][       Thread-602082][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:44:33,140 [DEBUG][       Thread-602082][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:44:33,140 [DEBUG][       Thread-602082][   transport.py][1871] : client lang: <none>
2025-07-01 10:44:33,140 [DEBUG][       Thread-602082][   transport.py][1871] : server lang: <none>
2025-07-01 10:44:33,140 [DEBUG][       Thread-602082][   transport.py][1871] : kex follows: False
2025-07-01 10:44:33,140 [DEBUG][       Thread-602082][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:44:33,140 [DEBUG][       Thread-602082][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:44:33,140 [DEBUG][       Thread-602082][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:44:33,140 [DEBUG][       Thread-602082][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:44:33,140 [DEBUG][       Thread-602082][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:44:33,140 [DEBUG][       Thread-602082][   transport.py][1871] : Compression: none
2025-07-01 10:44:33,140 [DEBUG][       Thread-602082][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:44:33,157 [DEBUG][       Thread-602082][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:44:33,157 [DEBUG][       Thread-602082][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:44:33,158 [DEBUG][       Thread-602082][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:44:33,158 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:44:33,158 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:44:33,159 [DEBUG][       Thread-602082][   transport.py][1871] : userauth is OK
2025-07-01 10:44:33,184 [ INFO][       Thread-602082][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:44:33,185 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:44:33,842 [DEBUG][       Thread-602082][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:44:33,842 [DEBUG][       Thread-602082][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:44:33,885 [DEBUG][       Thread-602082][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:44:33,885 [DEBUG][       Thread-602082][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:44:33,888 [DEBUG][       Thread-602082][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:44:33,899 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:44:33,900 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:44:33,902 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:44:33,904 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:44:33,910 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:44:33,912 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:44:33,912 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:44:33,913 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:44:33,913 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.363835 -999.00   +9.50  32.90     56   +1.20 1 2 2 1 1   887    0 7.76 -20.67 ----- 32.9 32.9 26.4 42.0 12.0 -23.6 11.2 -23.2 10.7 -22.6 11.5 -22.0
2025-07-01 10:44:33,913 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:44:33,913 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:44:33,913 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.363835
2025-07-01 10:44:33,913 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:44:33,914 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:44:33,914 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:44:33,914 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:44:33,914 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:44:33,914 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:44:24', tmtdew=9.55, humidity=51.37, cloud=0.0, wind=23.64, temperature=9.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:43:55.344', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:44:33,915 [DEBUG][       Thread-602082][   transport.py][1871] : EOF in transport thread
2025-07-01 10:44:33,995 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:44:34,004 [DEBUG][       Thread-602085][   transport.py][1871] : starting thread (client mode): 0x8154d30
2025-07-01 10:44:34,004 [DEBUG][       Thread-602085][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:44:34,020 [DEBUG][       Thread-602085][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:44:34,020 [ INFO][       Thread-602085][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:44:34,027 [DEBUG][       Thread-602085][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:44:34,027 [DEBUG][       Thread-602085][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:44:34,027 [DEBUG][       Thread-602085][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:44:34,027 [DEBUG][       Thread-602085][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:44:34,028 [DEBUG][       Thread-602085][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:44:34,028 [DEBUG][       Thread-602085][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:44:34,028 [DEBUG][       Thread-602085][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:44:34,028 [DEBUG][       Thread-602085][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:44:34,028 [DEBUG][       Thread-602085][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:44:34,028 [DEBUG][       Thread-602085][   transport.py][1871] : client lang: <none>
2025-07-01 10:44:34,028 [DEBUG][       Thread-602085][   transport.py][1871] : server lang: <none>
2025-07-01 10:44:34,028 [DEBUG][       Thread-602085][   transport.py][1871] : kex follows: False
2025-07-01 10:44:34,028 [DEBUG][       Thread-602085][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:44:34,028 [DEBUG][       Thread-602085][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:44:34,028 [DEBUG][       Thread-602085][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:44:34,028 [DEBUG][       Thread-602085][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:44:34,028 [DEBUG][       Thread-602085][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:44:34,028 [DEBUG][       Thread-602085][   transport.py][1871] : Compression: none
2025-07-01 10:44:34,028 [DEBUG][       Thread-602085][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:44:34,087 [DEBUG][       Thread-602085][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:44:34,087 [DEBUG][       Thread-602085][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:44:34,088 [DEBUG][       Thread-602085][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:44:34,088 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:44:34,089 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:44:34,144 [DEBUG][       Thread-602085][   transport.py][1871] : userauth is OK
2025-07-01 10:44:34,144 [DEBUG][       Thread-602085][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:44:34,144 [DEBUG][       Thread-602085][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:44:34,145 [DEBUG][       Thread-602085][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:44:34,145 [DEBUG][       Thread-602085][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:44:34,164 [ INFO][       Thread-602085][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:44:34,164 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:44:34,164 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:44:35,188 [DEBUG][       Thread-602085][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:44:35,188 [DEBUG][       Thread-602085][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:44:35,236 [DEBUG][       Thread-602085][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:44:35,236 [DEBUG][       Thread-602085][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:44:35,245 [DEBUG][       Thread-602085][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:44:35,254 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:44:35,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-07-01 10:44:35,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-07-01 10:44:35,272 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:44:35,273 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:44:35,273 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:44:35,281 [DEBUG][       Thread-602085][   transport.py][1871] : EOF in transport thread
2025-07-01 10:44:40,906 [DEBUG][Thread-602087 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:44:45,283 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:44:45,284 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:44:45,284 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:44:45,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-07-01 10:44:45,759 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 44, 24), 9.55, 51.37, 0.0, 23.64, 9.56, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:44:45,759 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:44:24
2025-07-01 10:44:45,844 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:44:45,848 [DEBUG][       Thread-602088][   transport.py][1871] : starting thread (client mode): 0x75aa140
2025-07-01 10:44:45,848 [DEBUG][       Thread-602088][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:44:45,863 [DEBUG][       Thread-602088][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:44:45,863 [ INFO][       Thread-602088][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:44:45,866 [DEBUG][       Thread-602088][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:44:45,866 [DEBUG][       Thread-602088][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:44:45,866 [DEBUG][       Thread-602088][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:44:45,866 [DEBUG][       Thread-602088][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:44:45,866 [DEBUG][       Thread-602088][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:44:45,866 [DEBUG][       Thread-602088][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:44:45,866 [DEBUG][       Thread-602088][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:44:45,866 [DEBUG][       Thread-602088][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:44:45,866 [DEBUG][       Thread-602088][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:44:45,866 [DEBUG][       Thread-602088][   transport.py][1871] : client lang: <none>
2025-07-01 10:44:45,866 [DEBUG][       Thread-602088][   transport.py][1871] : server lang: <none>
2025-07-01 10:44:45,866 [DEBUG][       Thread-602088][   transport.py][1871] : kex follows: False
2025-07-01 10:44:45,866 [DEBUG][       Thread-602088][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:44:45,866 [DEBUG][       Thread-602088][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:44:45,866 [DEBUG][       Thread-602088][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:44:45,866 [DEBUG][       Thread-602088][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:44:45,866 [DEBUG][       Thread-602088][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:44:45,866 [DEBUG][       Thread-602088][   transport.py][1871] : Compression: none
2025-07-01 10:44:45,866 [DEBUG][       Thread-602088][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:44:45,880 [DEBUG][       Thread-602088][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:44:45,880 [DEBUG][       Thread-602088][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:44:45,881 [DEBUG][       Thread-602088][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:44:45,881 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:44:45,881 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:44:45,882 [DEBUG][       Thread-602088][   transport.py][1871] : userauth is OK
2025-07-01 10:44:45,906 [ INFO][       Thread-602088][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:44:45,907 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:44:46,519 [DEBUG][       Thread-602088][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:44:46,519 [DEBUG][       Thread-602088][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:44:46,561 [DEBUG][       Thread-602088][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:44:46,561 [DEBUG][       Thread-602088][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:44:46,564 [DEBUG][       Thread-602088][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:44:46,576 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:44:46,577 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:44:46,579 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:44:46,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:44:46,587 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:44:46,588 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:44:46,589 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:44:46,589 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:44:46,589 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.363835 -999.00   +9.50  32.90     56   +1.20 1 2 2 1 1   887    0 7.76 -20.67 ----- 32.9 32.9 26.4 42.0 12.0 -23.6 11.2 -23.2 10.7 -22.6 11.5 -22.0
2025-07-01 10:44:46,589 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:44:46,589 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:44:46,589 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.363835
2025-07-01 10:44:46,590 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:44:46,590 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:44:46,591 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:44:46,591 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:44:46,591 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:44:46,591 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:44:24', tmtdew=9.55, humidity=51.37, cloud=0.0, wind=23.64, temperature=9.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:43:55.344', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:44:46,591 [DEBUG][       Thread-602088][   transport.py][1871] : EOF in transport thread
2025-07-01 10:44:46,675 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:44:46,689 [DEBUG][       Thread-602091][   transport.py][1871] : starting thread (client mode): 0x82b1a20
2025-07-01 10:44:46,689 [DEBUG][       Thread-602091][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:44:46,704 [DEBUG][       Thread-602091][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:44:46,704 [ INFO][       Thread-602091][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:44:46,711 [DEBUG][       Thread-602091][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:44:46,711 [DEBUG][       Thread-602091][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:44:46,711 [DEBUG][       Thread-602091][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:44:46,711 [DEBUG][       Thread-602091][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:44:46,711 [DEBUG][       Thread-602091][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:44:46,711 [DEBUG][       Thread-602091][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:44:46,711 [DEBUG][       Thread-602091][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:44:46,711 [DEBUG][       Thread-602091][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:44:46,712 [DEBUG][       Thread-602091][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:44:46,712 [DEBUG][       Thread-602091][   transport.py][1871] : client lang: <none>
2025-07-01 10:44:46,712 [DEBUG][       Thread-602091][   transport.py][1871] : server lang: <none>
2025-07-01 10:44:46,712 [DEBUG][       Thread-602091][   transport.py][1871] : kex follows: False
2025-07-01 10:44:46,712 [DEBUG][       Thread-602091][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:44:46,712 [DEBUG][       Thread-602091][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:44:46,712 [DEBUG][       Thread-602091][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:44:46,712 [DEBUG][       Thread-602091][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:44:46,712 [DEBUG][       Thread-602091][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:44:46,712 [DEBUG][       Thread-602091][   transport.py][1871] : Compression: none
2025-07-01 10:44:46,712 [DEBUG][       Thread-602091][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:44:46,770 [DEBUG][       Thread-602091][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:44:46,771 [DEBUG][       Thread-602091][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:44:46,771 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:44:46,772 [DEBUG][       Thread-602091][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:44:46,772 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:44:46,826 [DEBUG][       Thread-602091][   transport.py][1871] : userauth is OK
2025-07-01 10:44:46,827 [DEBUG][       Thread-602091][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:44:46,827 [DEBUG][       Thread-602091][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:44:46,827 [DEBUG][       Thread-602091][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:44:46,827 [DEBUG][       Thread-602091][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:44:46,845 [ INFO][       Thread-602091][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:44:46,845 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:44:46,846 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:44:47,888 [DEBUG][       Thread-602091][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:44:47,888 [DEBUG][       Thread-602091][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:44:47,939 [DEBUG][       Thread-602091][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:44:47,939 [DEBUG][       Thread-602091][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:44:47,948 [DEBUG][       Thread-602091][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:44:47,955 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:44:47,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-07-01 10:44: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') -> 00000000
2025-07-01 10:44:47,971 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:44:47,971 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:44:47,971 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:44:47,979 [DEBUG][       Thread-602091][   transport.py][1871] : EOF in transport thread
2025-07-01 10:44:49,940 [DEBUG][Thread-602093 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:44:57,980 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:44:57,980 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:44:57,980 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:44:57,980 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:44:58,484 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 44, 24), 9.55, 51.37, 0.0, 23.64, 9.56, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:44:58,484 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:44:24
2025-07-01 10:44:58,573 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:44:58,578 [DEBUG][       Thread-602094][   transport.py][1871] : starting thread (client mode): 0x75a94e0
2025-07-01 10:44:58,578 [DEBUG][       Thread-602094][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:44:58,598 [DEBUG][       Thread-602094][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:44:58,598 [ INFO][       Thread-602094][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:44:58,601 [DEBUG][       Thread-602094][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:44:58,602 [DEBUG][       Thread-602094][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:44:58,602 [DEBUG][       Thread-602094][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:44:58,602 [DEBUG][       Thread-602094][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:44:58,602 [DEBUG][       Thread-602094][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:44:58,602 [DEBUG][       Thread-602094][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:44:58,602 [DEBUG][       Thread-602094][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:44:58,602 [DEBUG][       Thread-602094][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:44:58,602 [DEBUG][       Thread-602094][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:44:58,602 [DEBUG][       Thread-602094][   transport.py][1871] : client lang: <none>
2025-07-01 10:44:58,602 [DEBUG][       Thread-602094][   transport.py][1871] : server lang: <none>
2025-07-01 10:44:58,602 [DEBUG][       Thread-602094][   transport.py][1871] : kex follows: False
2025-07-01 10:44:58,602 [DEBUG][       Thread-602094][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:44:58,602 [DEBUG][       Thread-602094][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:44:58,602 [DEBUG][       Thread-602094][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:44:58,602 [DEBUG][       Thread-602094][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:44:58,602 [DEBUG][       Thread-602094][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:44:58,602 [DEBUG][       Thread-602094][   transport.py][1871] : Compression: none
2025-07-01 10:44:58,602 [DEBUG][       Thread-602094][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:44:58,618 [DEBUG][       Thread-602094][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:44:58,618 [DEBUG][       Thread-602094][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:44:58,618 [DEBUG][       Thread-602094][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:44:58,618 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:44:58,618 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:44:58,619 [DEBUG][       Thread-602094][   transport.py][1871] : userauth is OK
2025-07-01 10:44:58,643 [ INFO][       Thread-602094][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:44:58,643 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:44:58,960 [DEBUG][Thread-602096 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:44:59,273 [DEBUG][       Thread-602094][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:44:59,273 [DEBUG][       Thread-602094][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:44:59,317 [DEBUG][       Thread-602094][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:44:59,317 [DEBUG][       Thread-602094][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:44:59,320 [DEBUG][       Thread-602094][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:44:59,331 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:44:59,331 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:44:59,333 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:44:59,334 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:44:59,339 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:44:59,341 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:44:59,341 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:44:59,342 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:44:59,342 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.363835 -999.00   +9.50  32.90     56   +1.20 1 2 2 1 1   887    0 7.76 -20.67 ----- 32.9 32.9 26.4 42.0 12.0 -23.6 11.2 -23.2 10.7 -22.6 11.5 -22.0
2025-07-01 10:44:59,342 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:44:59,342 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:44:59,342 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.363835
2025-07-01 10:44:59,342 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:44:59,343 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:44:59,343 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:44:59,343 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:44:59,343 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:44:59,343 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:44:24', tmtdew=9.55, humidity=51.37, cloud=0.0, wind=23.64, temperature=9.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:43:55.344', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:44:59,343 [DEBUG][       Thread-602094][   transport.py][1871] : EOF in transport thread
2025-07-01 10:44:59,428 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:44:59,438 [DEBUG][       Thread-602098][   transport.py][1871] : starting thread (client mode): 0x8105f90
2025-07-01 10:44:59,438 [DEBUG][       Thread-602098][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:44:59,453 [DEBUG][       Thread-602098][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:44:59,453 [ INFO][       Thread-602098][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:44:59,460 [DEBUG][       Thread-602098][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:44:59,460 [DEBUG][       Thread-602098][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:44:59,460 [DEBUG][       Thread-602098][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:44:59,461 [DEBUG][       Thread-602098][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:44:59,461 [DEBUG][       Thread-602098][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:44:59,461 [DEBUG][       Thread-602098][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:44:59,461 [DEBUG][       Thread-602098][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:44:59,461 [DEBUG][       Thread-602098][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:44:59,461 [DEBUG][       Thread-602098][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:44:59,461 [DEBUG][       Thread-602098][   transport.py][1871] : client lang: <none>
2025-07-01 10:44:59,461 [DEBUG][       Thread-602098][   transport.py][1871] : server lang: <none>
2025-07-01 10:44:59,461 [DEBUG][       Thread-602098][   transport.py][1871] : kex follows: False
2025-07-01 10:44:59,461 [DEBUG][       Thread-602098][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:44:59,461 [DEBUG][       Thread-602098][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:44:59,461 [DEBUG][       Thread-602098][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:44:59,461 [DEBUG][       Thread-602098][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:44:59,461 [DEBUG][       Thread-602098][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:44:59,461 [DEBUG][       Thread-602098][   transport.py][1871] : Compression: none
2025-07-01 10:44:59,461 [DEBUG][       Thread-602098][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:44:59,518 [DEBUG][       Thread-602098][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:44:59,519 [DEBUG][       Thread-602098][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:44:59,519 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:44:59,520 [DEBUG][       Thread-602098][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:44:59,520 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:44:59,578 [DEBUG][       Thread-602098][   transport.py][1871] : userauth is OK
2025-07-01 10:44:59,578 [DEBUG][       Thread-602098][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:44:59,578 [DEBUG][       Thread-602098][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:44:59,578 [DEBUG][       Thread-602098][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:44:59,579 [DEBUG][       Thread-602098][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:44:59,601 [ INFO][       Thread-602098][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:44:59,601 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:44:59,602 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:45:00,636 [DEBUG][       Thread-602098][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:45:00,636 [DEBUG][       Thread-602098][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:45:00,684 [DEBUG][       Thread-602098][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:45:00,684 [DEBUG][       Thread-602098][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:45:00,693 [DEBUG][       Thread-602098][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:45:00,703 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:45:00,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-07-01 10:45:00,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-07-01 10:45:00,720 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:45:00,721 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:45:00,721 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:45:00,729 [DEBUG][       Thread-602098][   transport.py][1871] : EOF in transport thread
2025-07-01 10:45:01,762 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:45:01,763 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:45:07,981 [DEBUG][Thread-602100 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:45:10,731 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:45:10,732 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:45:10,732 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:45:10,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-07-01 10:45:11,200 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 44, 56), 9.56, 51.33, 0.0, 26.59, 9.56, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:45:11,200 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:44:56
2025-07-01 10:45:11,283 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:45:11,287 [DEBUG][       Thread-602101][   transport.py][1871] : starting thread (client mode): 0x8172470
2025-07-01 10:45:11,287 [DEBUG][       Thread-602101][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:45:11,308 [DEBUG][       Thread-602101][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:45:11,308 [ INFO][       Thread-602101][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:45:11,311 [DEBUG][       Thread-602101][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:45:11,312 [DEBUG][       Thread-602101][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:45:11,312 [DEBUG][       Thread-602101][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:45:11,312 [DEBUG][       Thread-602101][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:45:11,312 [DEBUG][       Thread-602101][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:45:11,312 [DEBUG][       Thread-602101][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:45:11,312 [DEBUG][       Thread-602101][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:45:11,312 [DEBUG][       Thread-602101][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:45:11,312 [DEBUG][       Thread-602101][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:45:11,312 [DEBUG][       Thread-602101][   transport.py][1871] : client lang: <none>
2025-07-01 10:45:11,312 [DEBUG][       Thread-602101][   transport.py][1871] : server lang: <none>
2025-07-01 10:45:11,312 [DEBUG][       Thread-602101][   transport.py][1871] : kex follows: False
2025-07-01 10:45:11,312 [DEBUG][       Thread-602101][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:45:11,312 [DEBUG][       Thread-602101][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:45:11,312 [DEBUG][       Thread-602101][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:45:11,312 [DEBUG][       Thread-602101][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:45:11,312 [DEBUG][       Thread-602101][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:45:11,312 [DEBUG][       Thread-602101][   transport.py][1871] : Compression: none
2025-07-01 10:45:11,312 [DEBUG][       Thread-602101][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:45:11,328 [DEBUG][       Thread-602101][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:45:11,328 [DEBUG][       Thread-602101][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:45:11,329 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:45:11,329 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:45:11,329 [DEBUG][       Thread-602101][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:45:11,330 [DEBUG][       Thread-602101][   transport.py][1871] : userauth is OK
2025-07-01 10:45:11,355 [ INFO][       Thread-602101][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:45:11,356 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:45:11,968 [DEBUG][       Thread-602101][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:45:11,968 [DEBUG][       Thread-602101][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:45:12,009 [DEBUG][       Thread-602101][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:45:12,009 [DEBUG][       Thread-602101][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:45:12,011 [DEBUG][       Thread-602101][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:45:12,023 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:45:12,023 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:45:12,025 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:45:12,026 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:45:12,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:45:12,033 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:45:12,033 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:45:12,034 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:45:12,034 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.364529 -999.00   +9.50  31.87     55   +1.10 1 1 2 1 1   887    0 7.84 -20.13 ----- 31.9 31.9 41.2 40.1 12.2 -23.5 11.4 -23.7 10.9 -22.9 11.5 -22.0
2025-07-01 10:45:12,034 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:45:12,034 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:45:12,034 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.364529
2025-07-01 10:45:12,034 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:45:12,035 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:45:12,035 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:45:12,035 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:45:12,035 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:45:12,035 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:44:56', tmtdew=9.56, humidity=51.33, cloud=0.0, wind=26.59, temperature=9.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:44:55.306', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:45:12,036 [DEBUG][       Thread-602101][   transport.py][1871] : EOF in transport thread
2025-07-01 10:45:12,120 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:45:12,136 [DEBUG][       Thread-602104][   transport.py][1871] : starting thread (client mode): 0x8154d30
2025-07-01 10:45:12,136 [DEBUG][       Thread-602104][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:45:12,153 [DEBUG][       Thread-602104][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:45:12,153 [ INFO][       Thread-602104][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:45:12,163 [DEBUG][       Thread-602104][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:45:12,163 [DEBUG][       Thread-602104][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:45:12,163 [DEBUG][       Thread-602104][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:45:12,163 [DEBUG][       Thread-602104][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:45:12,163 [DEBUG][       Thread-602104][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:45:12,163 [DEBUG][       Thread-602104][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:45:12,163 [DEBUG][       Thread-602104][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:45:12,163 [DEBUG][       Thread-602104][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:45:12,163 [DEBUG][       Thread-602104][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:45:12,163 [DEBUG][       Thread-602104][   transport.py][1871] : client lang: <none>
2025-07-01 10:45:12,163 [DEBUG][       Thread-602104][   transport.py][1871] : server lang: <none>
2025-07-01 10:45:12,164 [DEBUG][       Thread-602104][   transport.py][1871] : kex follows: False
2025-07-01 10:45:12,164 [DEBUG][       Thread-602104][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:45:12,164 [DEBUG][       Thread-602104][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:45:12,164 [DEBUG][       Thread-602104][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:45:12,164 [DEBUG][       Thread-602104][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:45:12,164 [DEBUG][       Thread-602104][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:45:12,164 [DEBUG][       Thread-602104][   transport.py][1871] : Compression: none
2025-07-01 10:45:12,164 [DEBUG][       Thread-602104][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:45:12,221 [DEBUG][       Thread-602104][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:45:12,222 [DEBUG][       Thread-602104][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:45:12,222 [DEBUG][       Thread-602104][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:45:12,222 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:45:12,223 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:45:12,289 [DEBUG][       Thread-602104][   transport.py][1871] : userauth is OK
2025-07-01 10:45:12,289 [DEBUG][       Thread-602104][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:45:12,289 [DEBUG][       Thread-602104][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:45:12,289 [DEBUG][       Thread-602104][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:45:12,289 [DEBUG][       Thread-602104][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:45:12,310 [ INFO][       Thread-602104][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:45:12,310 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:45:12,310 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:45:13,357 [DEBUG][       Thread-602104][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:45:13,357 [DEBUG][       Thread-602104][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:45:13,408 [DEBUG][       Thread-602104][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:45:13,408 [DEBUG][       Thread-602104][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:45:13,418 [DEBUG][       Thread-602104][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:45:13,430 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:45:13,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-07-01 10:45:13,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-07-01 10:45:13,449 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:45:13,449 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:45:13,450 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:45:13,458 [DEBUG][       Thread-602104][   transport.py][1871] : EOF in transport thread
2025-07-01 10:45:17,001 [DEBUG][Thread-602106 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:45:23,457 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:45:23,457 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:45:23,457 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:45:23,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-07-01 10:45:23,926 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 44, 56), 9.56, 51.33, 0.0, 26.59, 9.56, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:45:23,926 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:44:56
2025-07-01 10:45:24,001 [DEBUG][Thread-602107 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:45:24,008 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:45:24,015 [DEBUG][       Thread-602108][   transport.py][1871] : starting thread (client mode): 0x82b1de0
2025-07-01 10:45:24,015 [DEBUG][       Thread-602108][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:45:24,034 [DEBUG][       Thread-602108][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:45:24,034 [ INFO][       Thread-602108][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:45:24,036 [DEBUG][       Thread-602108][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:45:24,036 [DEBUG][       Thread-602108][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:45:24,036 [DEBUG][       Thread-602108][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:45:24,036 [DEBUG][       Thread-602108][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:45:24,036 [DEBUG][       Thread-602108][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:45:24,036 [DEBUG][       Thread-602108][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:45:24,036 [DEBUG][       Thread-602108][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:45:24,036 [DEBUG][       Thread-602108][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:45:24,036 [DEBUG][       Thread-602108][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:45:24,036 [DEBUG][       Thread-602108][   transport.py][1871] : client lang: <none>
2025-07-01 10:45:24,036 [DEBUG][       Thread-602108][   transport.py][1871] : server lang: <none>
2025-07-01 10:45:24,036 [DEBUG][       Thread-602108][   transport.py][1871] : kex follows: False
2025-07-01 10:45:24,036 [DEBUG][       Thread-602108][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:45:24,036 [DEBUG][       Thread-602108][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:45:24,036 [DEBUG][       Thread-602108][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:45:24,036 [DEBUG][       Thread-602108][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:45:24,036 [DEBUG][       Thread-602108][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:45:24,036 [DEBUG][       Thread-602108][   transport.py][1871] : Compression: none
2025-07-01 10:45:24,036 [DEBUG][       Thread-602108][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:45:24,048 [DEBUG][       Thread-602108][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:45:24,049 [DEBUG][       Thread-602108][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:45:24,049 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:45:24,049 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:45:24,050 [DEBUG][       Thread-602108][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:45:24,050 [DEBUG][       Thread-602108][   transport.py][1871] : userauth is OK
2025-07-01 10:45:24,063 [ INFO][       Thread-602108][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:45:24,063 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:45:24,810 [DEBUG][       Thread-602108][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:45:24,810 [DEBUG][       Thread-602108][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:45:24,853 [DEBUG][       Thread-602108][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:45:24,853 [DEBUG][       Thread-602108][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:45:24,856 [DEBUG][       Thread-602108][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:45:24,869 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:45:24,870 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:45:24,872 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:45:24,874 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:45:24,884 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:45:24,886 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:45:24,886 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:45:24,887 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:45:24,887 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.364529 -999.00   +9.50  31.87     55   +1.10 1 1 2 1 1   887    0 7.84 -20.13 ----- 31.9 31.9 41.2 40.1 12.2 -23.5 11.4 -23.7 10.9 -22.9 11.5 -22.0
2025-07-01 10:45:24,887 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:45:24,887 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:45:24,887 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.364529
2025-07-01 10:45:24,887 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:45:24,888 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:45:24,888 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:45:24,888 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:45:24,888 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:45:24,888 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:44:56', tmtdew=9.56, humidity=51.33, cloud=0.0, wind=26.59, temperature=9.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:44:55.306', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:45:24,889 [DEBUG][       Thread-602108][   transport.py][1871] : EOF in transport thread
2025-07-01 10:45:24,973 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:45:24,985 [DEBUG][       Thread-602111][   transport.py][1871] : starting thread (client mode): 0x8170af0
2025-07-01 10:45:24,985 [DEBUG][       Thread-602111][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:45:25,000 [DEBUG][       Thread-602111][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:45:25,000 [ INFO][       Thread-602111][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:45:25,007 [DEBUG][       Thread-602111][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:45:25,007 [DEBUG][       Thread-602111][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:45:25,007 [DEBUG][       Thread-602111][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:45:25,007 [DEBUG][       Thread-602111][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:45:25,007 [DEBUG][       Thread-602111][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:45:25,007 [DEBUG][       Thread-602111][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:45:25,007 [DEBUG][       Thread-602111][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:45:25,007 [DEBUG][       Thread-602111][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:45:25,007 [DEBUG][       Thread-602111][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:45:25,007 [DEBUG][       Thread-602111][   transport.py][1871] : client lang: <none>
2025-07-01 10:45:25,007 [DEBUG][       Thread-602111][   transport.py][1871] : server lang: <none>
2025-07-01 10:45:25,007 [DEBUG][       Thread-602111][   transport.py][1871] : kex follows: False
2025-07-01 10:45:25,008 [DEBUG][       Thread-602111][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:45:25,008 [DEBUG][       Thread-602111][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:45:25,008 [DEBUG][       Thread-602111][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:45:25,008 [DEBUG][       Thread-602111][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:45:25,008 [DEBUG][       Thread-602111][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:45:25,008 [DEBUG][       Thread-602111][   transport.py][1871] : Compression: none
2025-07-01 10:45:25,008 [DEBUG][       Thread-602111][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:45:25,065 [DEBUG][       Thread-602111][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:45:25,066 [DEBUG][       Thread-602111][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:45:25,066 [DEBUG][       Thread-602111][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:45:25,067 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:45:25,067 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:45:25,122 [DEBUG][       Thread-602111][   transport.py][1871] : userauth is OK
2025-07-01 10:45:25,123 [DEBUG][       Thread-602111][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:45:25,123 [DEBUG][       Thread-602111][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:45:25,123 [DEBUG][       Thread-602111][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:45:25,123 [DEBUG][       Thread-602111][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:45:25,140 [ INFO][       Thread-602111][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:45:25,140 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:45:25,141 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:45:26,026 [DEBUG][Thread-602113 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:45:26,165 [DEBUG][       Thread-602111][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:45:26,165 [DEBUG][       Thread-602111][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:45:26,215 [DEBUG][       Thread-602111][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:45:26,215 [DEBUG][       Thread-602111][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:45:26,224 [DEBUG][       Thread-602111][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:45:26,236 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:45:26,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-07-01 10:45:26,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-07-01 10:45:26,252 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:45:26,252 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:45:26,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:45:26,259 [DEBUG][       Thread-602111][   transport.py][1871] : EOF in transport thread
2025-07-01 10:45:35,045 [DEBUG][Thread-602114 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:45:36,262 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:45:36,262 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:45:36,262 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:45:36,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-07-01 10:45:36,735 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 45, 28), 9.64, 51.09, 0.0, 32.36, 9.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:45:36,735 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:45:28
2025-07-01 10:45:36,819 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:45:36,823 [DEBUG][       Thread-602115][   transport.py][1871] : starting thread (client mode): 0x82b13f0
2025-07-01 10:45:36,823 [DEBUG][       Thread-602115][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:45:36,839 [DEBUG][       Thread-602115][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:45:36,839 [ INFO][       Thread-602115][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:45:36,843 [DEBUG][       Thread-602115][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:45:36,843 [DEBUG][       Thread-602115][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:45:36,843 [DEBUG][       Thread-602115][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:45:36,843 [DEBUG][       Thread-602115][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:45:36,843 [DEBUG][       Thread-602115][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:45:36,843 [DEBUG][       Thread-602115][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:45:36,843 [DEBUG][       Thread-602115][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:45:36,843 [DEBUG][       Thread-602115][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:45:36,843 [DEBUG][       Thread-602115][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:45:36,843 [DEBUG][       Thread-602115][   transport.py][1871] : client lang: <none>
2025-07-01 10:45:36,843 [DEBUG][       Thread-602115][   transport.py][1871] : server lang: <none>
2025-07-01 10:45:36,843 [DEBUG][       Thread-602115][   transport.py][1871] : kex follows: False
2025-07-01 10:45:36,843 [DEBUG][       Thread-602115][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:45:36,843 [DEBUG][       Thread-602115][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:45:36,843 [DEBUG][       Thread-602115][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:45:36,843 [DEBUG][       Thread-602115][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:45:36,843 [DEBUG][       Thread-602115][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:45:36,843 [DEBUG][       Thread-602115][   transport.py][1871] : Compression: none
2025-07-01 10:45:36,843 [DEBUG][       Thread-602115][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:45:36,857 [DEBUG][       Thread-602115][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:45:36,857 [DEBUG][       Thread-602115][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:45:36,858 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:45:36,858 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:45:36,858 [DEBUG][       Thread-602115][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:45:36,900 [DEBUG][       Thread-602115][   transport.py][1871] : userauth is OK
2025-07-01 10:45:36,925 [ INFO][       Thread-602115][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:45:36,926 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:45:37,605 [DEBUG][       Thread-602115][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:45:37,606 [DEBUG][       Thread-602115][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:45:37,649 [DEBUG][       Thread-602115][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:45:37,649 [DEBUG][       Thread-602115][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:45:37,652 [DEBUG][       Thread-602115][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:45:37,660 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:45:37,660 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:45:37,662 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:45:37,663 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:45:37,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:45:37,670 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:45:37,670 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:45:37,671 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:45:37,671 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.364876 -999.00   +9.60  30.17     56   +1.30 1 1 2 1 1   887    0 7.75 -20.97 ----- 30.2 30.2 33.4 33.8 12.3 -23.7 11.5 -23.5 10.9 -22.6 11.7 -22.0
2025-07-01 10:45:37,671 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:45:37,671 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:45:37,671 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.364876
2025-07-01 10:45:37,672 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:45:37,672 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:45:37,672 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:45:37,672 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:45:37,672 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:45:37,673 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:45:28', tmtdew=9.64, humidity=51.09, cloud=0.0, wind=32.36, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:45:25.286', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:45:37,673 [DEBUG][       Thread-602115][   transport.py][1871] : EOF in transport thread
2025-07-01 10:45:37,757 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:45:37,769 [DEBUG][       Thread-602118][   transport.py][1871] : starting thread (client mode): 0x83939d0
2025-07-01 10:45:37,769 [DEBUG][       Thread-602118][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:45:37,785 [DEBUG][       Thread-602118][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:45:37,785 [ INFO][       Thread-602118][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:45:37,793 [DEBUG][       Thread-602118][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:45:37,793 [DEBUG][       Thread-602118][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:45:37,793 [DEBUG][       Thread-602118][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:45:37,793 [DEBUG][       Thread-602118][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:45:37,793 [DEBUG][       Thread-602118][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:45:37,793 [DEBUG][       Thread-602118][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:45:37,793 [DEBUG][       Thread-602118][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:45:37,793 [DEBUG][       Thread-602118][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:45:37,793 [DEBUG][       Thread-602118][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:45:37,793 [DEBUG][       Thread-602118][   transport.py][1871] : client lang: <none>
2025-07-01 10:45:37,794 [DEBUG][       Thread-602118][   transport.py][1871] : server lang: <none>
2025-07-01 10:45:37,794 [DEBUG][       Thread-602118][   transport.py][1871] : kex follows: False
2025-07-01 10:45:37,794 [DEBUG][       Thread-602118][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:45:37,794 [DEBUG][       Thread-602118][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:45:37,794 [DEBUG][       Thread-602118][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:45:37,794 [DEBUG][       Thread-602118][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:45:37,794 [DEBUG][       Thread-602118][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:45:37,794 [DEBUG][       Thread-602118][   transport.py][1871] : Compression: none
2025-07-01 10:45:37,794 [DEBUG][       Thread-602118][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:45:37,851 [DEBUG][       Thread-602118][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:45:37,851 [DEBUG][       Thread-602118][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:45:37,852 [DEBUG][       Thread-602118][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:45:37,852 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:45:37,853 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:45:37,907 [DEBUG][       Thread-602118][   transport.py][1871] : userauth is OK
2025-07-01 10:45:37,907 [DEBUG][       Thread-602118][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:45:37,907 [DEBUG][       Thread-602118][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:45:37,907 [DEBUG][       Thread-602118][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:45:37,907 [DEBUG][       Thread-602118][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:45:37,926 [ INFO][       Thread-602118][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:45:37,927 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:45:37,927 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:45:38,963 [DEBUG][       Thread-602118][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:45:38,963 [DEBUG][       Thread-602118][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:45:39,012 [DEBUG][       Thread-602118][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:45:39,012 [DEBUG][       Thread-602118][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:45:39,028 [DEBUG][       Thread-602118][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:45:39,038 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:45:39,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-07-01 10:45:39,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-07-01 10:45:39,055 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:45:39,056 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:45:39,056 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:45:39,064 [DEBUG][       Thread-602118][   transport.py][1871] : EOF in transport thread
2025-07-01 10:45:44,069 [DEBUG][Thread-602120 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:45:49,063 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:45:49,063 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:45:49,063 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:45:49,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-07-01 10:45:49,533 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 45, 28), 9.64, 51.09, 0.0, 32.36, 9.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:45:49,533 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:45:28
2025-07-01 10:45:49,618 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:45:49,624 [DEBUG][       Thread-602121][   transport.py][1871] : starting thread (client mode): 0x82b24d0
2025-07-01 10:45:49,624 [DEBUG][       Thread-602121][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:45:49,646 [DEBUG][       Thread-602121][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:45:49,646 [ INFO][       Thread-602121][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:45:49,650 [DEBUG][       Thread-602121][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:45:49,650 [DEBUG][       Thread-602121][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:45:49,650 [DEBUG][       Thread-602121][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:45:49,650 [DEBUG][       Thread-602121][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:45:49,650 [DEBUG][       Thread-602121][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:45:49,650 [DEBUG][       Thread-602121][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:45:49,650 [DEBUG][       Thread-602121][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:45:49,650 [DEBUG][       Thread-602121][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:45:49,650 [DEBUG][       Thread-602121][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:45:49,651 [DEBUG][       Thread-602121][   transport.py][1871] : client lang: <none>
2025-07-01 10:45:49,651 [DEBUG][       Thread-602121][   transport.py][1871] : server lang: <none>
2025-07-01 10:45:49,651 [DEBUG][       Thread-602121][   transport.py][1871] : kex follows: False
2025-07-01 10:45:49,651 [DEBUG][       Thread-602121][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:45:49,651 [DEBUG][       Thread-602121][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:45:49,651 [DEBUG][       Thread-602121][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:45:49,651 [DEBUG][       Thread-602121][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:45:49,651 [DEBUG][       Thread-602121][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:45:49,651 [DEBUG][       Thread-602121][   transport.py][1871] : Compression: none
2025-07-01 10:45:49,651 [DEBUG][       Thread-602121][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:45:49,670 [DEBUG][       Thread-602121][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:45:49,671 [DEBUG][       Thread-602121][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:45:49,671 [DEBUG][       Thread-602121][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:45:49,671 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:45:49,672 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:45:49,673 [DEBUG][       Thread-602121][   transport.py][1871] : userauth is OK
2025-07-01 10:45:49,697 [ INFO][       Thread-602121][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:45:49,698 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:45:50,514 [DEBUG][       Thread-602121][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:45:50,514 [DEBUG][       Thread-602121][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:45:50,557 [DEBUG][       Thread-602121][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:45:50,557 [DEBUG][       Thread-602121][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:45:50,562 [DEBUG][       Thread-602121][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:45:50,574 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:45:50,574 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:45:50,576 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:45:50,577 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:45:50,583 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:45:50,584 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:45:50,584 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:45:50,585 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:45:50,585 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.364876 -999.00   +9.60  30.17     56   +1.30 1 1 2 1 1   887    0 7.75 -20.97 ----- 30.2 30.2 33.4 33.8 12.3 -23.7 11.5 -23.5 10.9 -22.6 11.7 -22.0
2025-07-01 10:45:50,585 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:45:50,585 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:45:50,585 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.364876
2025-07-01 10:45:50,586 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:45:50,586 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:45:50,586 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:45:50,587 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:45:50,587 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:45:50,587 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:45:28', tmtdew=9.64, humidity=51.09, cloud=0.0, wind=32.36, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:45:25.286', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:45:50,587 [DEBUG][       Thread-602121][   transport.py][1871] : EOF in transport thread
2025-07-01 10:45:50,663 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:45:50,673 [DEBUG][       Thread-602124][   transport.py][1871] : starting thread (client mode): 0x82b16f0
2025-07-01 10:45:50,673 [DEBUG][       Thread-602124][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:45:50,688 [DEBUG][       Thread-602124][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:45:50,688 [ INFO][       Thread-602124][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:45:50,695 [DEBUG][       Thread-602124][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:45:50,695 [DEBUG][       Thread-602124][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:45:50,695 [DEBUG][       Thread-602124][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:45:50,695 [DEBUG][       Thread-602124][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:45:50,695 [DEBUG][       Thread-602124][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:45:50,695 [DEBUG][       Thread-602124][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:45:50,695 [DEBUG][       Thread-602124][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:45:50,695 [DEBUG][       Thread-602124][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:45:50,695 [DEBUG][       Thread-602124][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:45:50,695 [DEBUG][       Thread-602124][   transport.py][1871] : client lang: <none>
2025-07-01 10:45:50,696 [DEBUG][       Thread-602124][   transport.py][1871] : server lang: <none>
2025-07-01 10:45:50,696 [DEBUG][       Thread-602124][   transport.py][1871] : kex follows: False
2025-07-01 10:45:50,696 [DEBUG][       Thread-602124][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:45:50,696 [DEBUG][       Thread-602124][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:45:50,696 [DEBUG][       Thread-602124][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:45:50,696 [DEBUG][       Thread-602124][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:45:50,696 [DEBUG][       Thread-602124][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:45:50,696 [DEBUG][       Thread-602124][   transport.py][1871] : Compression: none
2025-07-01 10:45:50,696 [DEBUG][       Thread-602124][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:45:50,754 [DEBUG][       Thread-602124][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:45:50,755 [DEBUG][       Thread-602124][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:45:50,755 [DEBUG][       Thread-602124][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:45:50,755 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:45:50,756 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:45:50,810 [DEBUG][       Thread-602124][   transport.py][1871] : userauth is OK
2025-07-01 10:45:50,811 [DEBUG][       Thread-602124][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:45:50,811 [DEBUG][       Thread-602124][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:45:50,811 [DEBUG][       Thread-602124][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:45:50,811 [DEBUG][       Thread-602124][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:45:50,830 [ INFO][       Thread-602124][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:45:50,831 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:45:50,831 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:45:51,830 [DEBUG][       Thread-602124][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:45:51,830 [DEBUG][       Thread-602124][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:45:51,880 [DEBUG][       Thread-602124][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:45:51,880 [DEBUG][       Thread-602124][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:45:51,889 [DEBUG][       Thread-602124][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:45:51,899 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:45:51,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-07-01 10:45:51,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-07-01 10:45:51,917 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:45:51,917 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:45:51,918 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:45:51,926 [DEBUG][       Thread-602124][   transport.py][1871] : EOF in transport thread
2025-07-01 10:45:53,116 [DEBUG][Thread-602126 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:46:01,901 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:46:01,903 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:46:01,928 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:46:01,929 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:46:01,929 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:46:01,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-07-01 10:46:02,138 [DEBUG][Thread-602127 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:46:02,433 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 45, 28), 9.64, 51.09, 0.0, 32.36, 9.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:46:02,433 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:45:28
2025-07-01 10:46:02,523 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:46:02,527 [DEBUG][       Thread-602128][   transport.py][1871] : starting thread (client mode): 0x8170d90
2025-07-01 10:46:02,527 [DEBUG][       Thread-602128][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:46:02,548 [DEBUG][       Thread-602128][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:46:02,548 [ INFO][       Thread-602128][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:46:02,549 [DEBUG][       Thread-602128][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:46:02,549 [DEBUG][       Thread-602128][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:46:02,549 [DEBUG][       Thread-602128][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:46:02,549 [DEBUG][       Thread-602128][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:46:02,549 [DEBUG][       Thread-602128][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:46:02,549 [DEBUG][       Thread-602128][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:46:02,549 [DEBUG][       Thread-602128][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:46:02,549 [DEBUG][       Thread-602128][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:46:02,549 [DEBUG][       Thread-602128][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:46:02,549 [DEBUG][       Thread-602128][   transport.py][1871] : client lang: <none>
2025-07-01 10:46:02,549 [DEBUG][       Thread-602128][   transport.py][1871] : server lang: <none>
2025-07-01 10:46:02,549 [DEBUG][       Thread-602128][   transport.py][1871] : kex follows: False
2025-07-01 10:46:02,549 [DEBUG][       Thread-602128][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:46:02,549 [DEBUG][       Thread-602128][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:46:02,549 [DEBUG][       Thread-602128][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:46:02,549 [DEBUG][       Thread-602128][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:46:02,549 [DEBUG][       Thread-602128][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:46:02,549 [DEBUG][       Thread-602128][   transport.py][1871] : Compression: none
2025-07-01 10:46:02,549 [DEBUG][       Thread-602128][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:46:02,556 [DEBUG][       Thread-602128][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:46:02,556 [DEBUG][       Thread-602128][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:46:02,556 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:46:02,556 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:46:02,556 [DEBUG][       Thread-602128][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:46:02,557 [DEBUG][       Thread-602128][   transport.py][1871] : userauth is OK
2025-07-01 10:46:02,569 [ INFO][       Thread-602128][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:46:02,569 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:46:03,379 [DEBUG][       Thread-602128][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:46:03,379 [DEBUG][       Thread-602128][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:46:03,421 [DEBUG][       Thread-602128][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:46:03,421 [DEBUG][       Thread-602128][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:46:03,423 [DEBUG][       Thread-602128][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:46:03,435 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:46:03,435 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:46:03,436 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:46:03,436 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:46:03,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:46:03,439 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:46:03,439 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:46:03,439 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:46:03,439 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.364876 -999.00   +9.60  30.17     56   +1.30 1 1 2 1 1   887    0 7.75 -20.97 ----- 30.2 30.2 33.4 33.8 12.3 -23.7 11.5 -23.5 10.9 -22.6 11.7 -22.0
2025-07-01 10:46:03,439 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:46:03,439 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:46:03,439 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.364876
2025-07-01 10:46:03,439 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:46:03,440 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:46:03,440 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:46:03,440 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:46:03,440 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:46:03,440 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:45:28', tmtdew=9.64, humidity=51.09, cloud=0.0, wind=32.36, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:45:25.286', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:46:03,440 [DEBUG][       Thread-602128][   transport.py][1871] : EOF in transport thread
2025-07-01 10:46:03,514 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:46:03,523 [DEBUG][       Thread-602131][   transport.py][1871] : starting thread (client mode): 0x81e7640
2025-07-01 10:46:03,523 [DEBUG][       Thread-602131][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:46:03,537 [DEBUG][       Thread-602131][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:46:03,537 [ INFO][       Thread-602131][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:46:03,545 [DEBUG][       Thread-602131][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:46:03,545 [DEBUG][       Thread-602131][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:46:03,545 [DEBUG][       Thread-602131][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:46:03,545 [DEBUG][       Thread-602131][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:46:03,545 [DEBUG][       Thread-602131][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:46:03,545 [DEBUG][       Thread-602131][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:46:03,545 [DEBUG][       Thread-602131][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:46:03,545 [DEBUG][       Thread-602131][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:46:03,545 [DEBUG][       Thread-602131][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:46:03,545 [DEBUG][       Thread-602131][   transport.py][1871] : client lang: <none>
2025-07-01 10:46:03,545 [DEBUG][       Thread-602131][   transport.py][1871] : server lang: <none>
2025-07-01 10:46:03,545 [DEBUG][       Thread-602131][   transport.py][1871] : kex follows: False
2025-07-01 10:46:03,545 [DEBUG][       Thread-602131][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:46:03,545 [DEBUG][       Thread-602131][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:46:03,545 [DEBUG][       Thread-602131][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:46:03,545 [DEBUG][       Thread-602131][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:46:03,545 [DEBUG][       Thread-602131][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:46:03,545 [DEBUG][       Thread-602131][   transport.py][1871] : Compression: none
2025-07-01 10:46:03,545 [DEBUG][       Thread-602131][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:46:03,601 [DEBUG][       Thread-602131][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:46:03,602 [DEBUG][       Thread-602131][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:46:03,602 [DEBUG][       Thread-602131][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:46:03,602 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:46:03,602 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:46:03,657 [DEBUG][       Thread-602131][   transport.py][1871] : userauth is OK
2025-07-01 10:46:03,658 [DEBUG][       Thread-602131][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:46:03,658 [DEBUG][       Thread-602131][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:46:03,658 [DEBUG][       Thread-602131][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:46:03,658 [DEBUG][       Thread-602131][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:46:03,672 [ INFO][       Thread-602131][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:46:03,672 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:46:03,672 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:46:04,690 [DEBUG][       Thread-602131][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:46:04,690 [DEBUG][       Thread-602131][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:46:04,739 [DEBUG][       Thread-602131][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:46:04,739 [DEBUG][       Thread-602131][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:46:04,748 [DEBUG][       Thread-602131][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:46:04,757 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:46:04,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-07-01 10:46: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-07-01 10:46:04,784 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:46:04,784 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:46:04,784 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:46:04,794 [DEBUG][       Thread-602131][   transport.py][1871] : EOF in transport thread
2025-07-01 10:46:11,156 [DEBUG][Thread-602133 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:46:14,794 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:46:14,795 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:46:14,795 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:46: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-07-01 10:46:15,264 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 46), 9.63, 51.11, 0.0, 29.75, 9.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:46:15,264 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:46:00
2025-07-01 10:46:15,350 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:46:15,356 [DEBUG][       Thread-602134][   transport.py][1871] : starting thread (client mode): 0x8173a90
2025-07-01 10:46:15,356 [DEBUG][       Thread-602134][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:46:15,376 [DEBUG][       Thread-602134][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:46:15,377 [ INFO][       Thread-602134][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:46:15,380 [DEBUG][       Thread-602134][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:46:15,380 [DEBUG][       Thread-602134][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:46:15,380 [DEBUG][       Thread-602134][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:46:15,380 [DEBUG][       Thread-602134][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:46:15,380 [DEBUG][       Thread-602134][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:46:15,380 [DEBUG][       Thread-602134][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:46:15,380 [DEBUG][       Thread-602134][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:46:15,380 [DEBUG][       Thread-602134][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:46:15,380 [DEBUG][       Thread-602134][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:46:15,380 [DEBUG][       Thread-602134][   transport.py][1871] : client lang: <none>
2025-07-01 10:46:15,380 [DEBUG][       Thread-602134][   transport.py][1871] : server lang: <none>
2025-07-01 10:46:15,380 [DEBUG][       Thread-602134][   transport.py][1871] : kex follows: False
2025-07-01 10:46:15,380 [DEBUG][       Thread-602134][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:46:15,380 [DEBUG][       Thread-602134][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:46:15,380 [DEBUG][       Thread-602134][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:46:15,380 [DEBUG][       Thread-602134][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:46:15,380 [DEBUG][       Thread-602134][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:46:15,380 [DEBUG][       Thread-602134][   transport.py][1871] : Compression: none
2025-07-01 10:46:15,380 [DEBUG][       Thread-602134][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:46:15,395 [DEBUG][       Thread-602134][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:46:15,396 [DEBUG][       Thread-602134][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:46:15,396 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:46:15,396 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:46:15,397 [DEBUG][       Thread-602134][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:46:15,397 [DEBUG][       Thread-602134][   transport.py][1871] : userauth is OK
2025-07-01 10:46:15,422 [ INFO][       Thread-602134][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:46:15,423 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:46:16,121 [DEBUG][       Thread-602134][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:46:16,121 [DEBUG][       Thread-602134][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:46:16,165 [DEBUG][       Thread-602134][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:46:16,165 [DEBUG][       Thread-602134][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:46:16,167 [DEBUG][       Thread-602134][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:46:16,181 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:46:16,181 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:46:16,183 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:46:16,184 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:46:16,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:46:16,191 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:46:16,192 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:46:16,192 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:46:16,192 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.365224 -999.00   +9.60  35.38     55   +1.10 1 1 2 1 1   887    0 7.63 -22.94 ----- 35.4 35.4 5.2 42.1 12.3 -24.2 11.5 -24.1 10.9 -23.0 11.7 -22.2
2025-07-01 10:46:16,192 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:46:16,192 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:46:16,193 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.365224
2025-07-01 10:46:16,193 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:46:16,193 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:46:16,193 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:46:16,194 [DEBUG][       Thread-602134][   transport.py][1871] : EOF in transport thread
2025-07-01 10:46:16,194 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:46:16,194 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:46:16,195 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:46:00', tmtdew=9.63, humidity=51.11, cloud=0.0, wind=29.75, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:45:55.354', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:46:16,277 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:46:16,288 [DEBUG][       Thread-602137][   transport.py][1871] : starting thread (client mode): 0x75a94e0
2025-07-01 10:46:16,288 [DEBUG][       Thread-602137][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:46:16,308 [DEBUG][       Thread-602137][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:46:16,308 [ INFO][       Thread-602137][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:46:16,316 [DEBUG][       Thread-602137][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:46:16,316 [DEBUG][       Thread-602137][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:46:16,316 [DEBUG][       Thread-602137][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:46:16,316 [DEBUG][       Thread-602137][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:46:16,316 [DEBUG][       Thread-602137][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:46:16,316 [DEBUG][       Thread-602137][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:46:16,316 [DEBUG][       Thread-602137][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:46:16,316 [DEBUG][       Thread-602137][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:46:16,316 [DEBUG][       Thread-602137][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:46:16,316 [DEBUG][       Thread-602137][   transport.py][1871] : client lang: <none>
2025-07-01 10:46:16,316 [DEBUG][       Thread-602137][   transport.py][1871] : server lang: <none>
2025-07-01 10:46:16,316 [DEBUG][       Thread-602137][   transport.py][1871] : kex follows: False
2025-07-01 10:46:16,316 [DEBUG][       Thread-602137][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:46:16,316 [DEBUG][       Thread-602137][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:46:16,317 [DEBUG][       Thread-602137][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:46:16,317 [DEBUG][       Thread-602137][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:46:16,317 [DEBUG][       Thread-602137][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:46:16,317 [DEBUG][       Thread-602137][   transport.py][1871] : Compression: none
2025-07-01 10:46:16,317 [DEBUG][       Thread-602137][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:46:16,373 [DEBUG][       Thread-602137][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:46:16,374 [DEBUG][       Thread-602137][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:46:16,375 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:46:16,375 [DEBUG][       Thread-602137][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:46:16,376 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:46:16,430 [DEBUG][       Thread-602137][   transport.py][1871] : userauth is OK
2025-07-01 10:46:16,430 [DEBUG][       Thread-602137][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:46:16,431 [DEBUG][       Thread-602137][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:46:16,431 [DEBUG][       Thread-602137][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:46:16,431 [DEBUG][       Thread-602137][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:46:16,450 [ INFO][       Thread-602137][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:46:16,450 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:46:16,451 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:46:17,454 [DEBUG][       Thread-602137][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:46:17,454 [DEBUG][       Thread-602137][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:46:17,504 [DEBUG][       Thread-602137][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:46:17,504 [DEBUG][       Thread-602137][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:46:17,513 [DEBUG][       Thread-602137][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:46:17,522 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:46:17,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-07-01 10:46:17,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') -> 00000000
2025-07-01 10:46:17,544 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:46:17,545 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:46:17,545 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:46:17,557 [DEBUG][       Thread-602137][   transport.py][1871] : EOF in transport thread
2025-07-01 10:46:20,181 [DEBUG][Thread-602139 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:46:24,053 [DEBUG][Thread-602140 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:46:27,555 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:46:27,556 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:46:27,556 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:46:27,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-07-01 10:46:28,025 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 46), 9.63, 51.11, 0.0, 29.75, 9.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:46:28,025 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:46:00
2025-07-01 10:46:28,110 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:46:28,116 [DEBUG][       Thread-602141][   transport.py][1871] : starting thread (client mode): 0x75a8bb0
2025-07-01 10:46:28,116 [DEBUG][       Thread-602141][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:46:28,137 [DEBUG][       Thread-602141][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:46:28,137 [ INFO][       Thread-602141][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:46:28,140 [DEBUG][       Thread-602141][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:46:28,140 [DEBUG][       Thread-602141][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:46:28,140 [DEBUG][       Thread-602141][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:46:28,140 [DEBUG][       Thread-602141][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:46:28,140 [DEBUG][       Thread-602141][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:46:28,140 [DEBUG][       Thread-602141][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:46:28,140 [DEBUG][       Thread-602141][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:46:28,140 [DEBUG][       Thread-602141][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:46:28,140 [DEBUG][       Thread-602141][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:46:28,140 [DEBUG][       Thread-602141][   transport.py][1871] : client lang: <none>
2025-07-01 10:46:28,140 [DEBUG][       Thread-602141][   transport.py][1871] : server lang: <none>
2025-07-01 10:46:28,140 [DEBUG][       Thread-602141][   transport.py][1871] : kex follows: False
2025-07-01 10:46:28,140 [DEBUG][       Thread-602141][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:46:28,141 [DEBUG][       Thread-602141][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:46:28,141 [DEBUG][       Thread-602141][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:46:28,141 [DEBUG][       Thread-602141][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:46:28,141 [DEBUG][       Thread-602141][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:46:28,141 [DEBUG][       Thread-602141][   transport.py][1871] : Compression: none
2025-07-01 10:46:28,141 [DEBUG][       Thread-602141][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:46:28,157 [DEBUG][       Thread-602141][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:46:28,158 [DEBUG][       Thread-602141][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:46:28,158 [DEBUG][       Thread-602141][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:46:28,159 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:46:28,159 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:46:28,160 [DEBUG][       Thread-602141][   transport.py][1871] : userauth is OK
2025-07-01 10:46:28,173 [ INFO][       Thread-602141][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:46:28,174 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:46:28,965 [DEBUG][       Thread-602141][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:46:28,965 [DEBUG][       Thread-602141][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:46:29,009 [DEBUG][       Thread-602141][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:46:29,009 [DEBUG][       Thread-602141][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:46:29,011 [DEBUG][       Thread-602141][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:46:29,025 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:46:29,025 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:46:29,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:46:29,028 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:46:29,033 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:46:29,034 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:46:29,035 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:46:29,035 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:46:29,035 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.365224 -999.00   +9.60  35.38     55   +1.10 1 1 2 1 1   887    0 7.63 -22.94 ----- 35.4 35.4 5.2 42.1 12.3 -24.2 11.5 -24.1 10.9 -23.0 11.7 -22.2
2025-07-01 10:46:29,036 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:46:29,036 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:46:29,036 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.365224
2025-07-01 10:46:29,036 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:46:29,037 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:46:29,037 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:46:29,037 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:46:29,037 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:46:29,037 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:46:00', tmtdew=9.63, humidity=51.11, cloud=0.0, wind=29.75, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:45:55.354', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:46:29,038 [DEBUG][       Thread-602141][   transport.py][1871] : EOF in transport thread
2025-07-01 10:46:29,121 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:46:29,131 [DEBUG][       Thread-602144][   transport.py][1871] : starting thread (client mode): 0x8393b80
2025-07-01 10:46:29,131 [DEBUG][       Thread-602144][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:46:29,149 [DEBUG][       Thread-602144][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:46:29,149 [ INFO][       Thread-602144][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:46:29,157 [DEBUG][       Thread-602144][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:46:29,157 [DEBUG][       Thread-602144][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:46:29,157 [DEBUG][       Thread-602144][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:46:29,157 [DEBUG][       Thread-602144][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:46:29,157 [DEBUG][       Thread-602144][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:46:29,157 [DEBUG][       Thread-602144][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:46:29,157 [DEBUG][       Thread-602144][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:46:29,157 [DEBUG][       Thread-602144][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:46:29,157 [DEBUG][       Thread-602144][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:46:29,158 [DEBUG][       Thread-602144][   transport.py][1871] : client lang: <none>
2025-07-01 10:46:29,158 [DEBUG][       Thread-602144][   transport.py][1871] : server lang: <none>
2025-07-01 10:46:29,158 [DEBUG][       Thread-602144][   transport.py][1871] : kex follows: False
2025-07-01 10:46:29,158 [DEBUG][       Thread-602144][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:46:29,158 [DEBUG][       Thread-602144][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:46:29,158 [DEBUG][       Thread-602144][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:46:29,158 [DEBUG][       Thread-602144][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:46:29,158 [DEBUG][       Thread-602144][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:46:29,158 [DEBUG][       Thread-602144][   transport.py][1871] : Compression: none
2025-07-01 10:46:29,158 [DEBUG][       Thread-602144][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:46:29,215 [DEBUG][       Thread-602144][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:46:29,216 [DEBUG][       Thread-602144][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:46:29,217 [DEBUG][       Thread-602144][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:46:29,218 [DEBUG][Thread-602146 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:46:29,218 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:46:29,219 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:46:29,275 [DEBUG][       Thread-602144][   transport.py][1871] : userauth is OK
2025-07-01 10:46:29,275 [DEBUG][       Thread-602144][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:46:29,275 [DEBUG][       Thread-602144][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:46:29,275 [DEBUG][       Thread-602144][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:46:29,276 [DEBUG][       Thread-602144][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:46:29,295 [ INFO][       Thread-602144][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:46:29,296 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:46:29,296 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:46:30,351 [DEBUG][       Thread-602144][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:46:30,351 [DEBUG][       Thread-602144][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:46:30,400 [DEBUG][       Thread-602144][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:46:30,400 [DEBUG][       Thread-602144][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:46:30,409 [DEBUG][       Thread-602144][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:46:30,418 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:46:30,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-07-01 10:46: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-07-01 10:46:30,445 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:46:30,445 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:46:30,446 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:46:30,454 [DEBUG][       Thread-602144][   transport.py][1871] : EOF in transport thread
2025-07-01 10:46:38,239 [DEBUG][Thread-602147 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:46:40,456 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:46:40,456 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:46:40,457 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:46:40,459 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:46:40,927 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 46, 33), 9.66, 51.23, 0.0, 25.71, 9.74, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:46:40,927 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:46:33
2025-07-01 10:46:41,013 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:46:41,016 [DEBUG][       Thread-602148][   transport.py][1871] : starting thread (client mode): 0x8172fb0
2025-07-01 10:46:41,017 [DEBUG][       Thread-602148][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:46:41,037 [DEBUG][       Thread-602148][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:46:41,037 [ INFO][       Thread-602148][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:46:41,040 [DEBUG][       Thread-602148][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:46:41,040 [DEBUG][       Thread-602148][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:46:41,040 [DEBUG][       Thread-602148][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:46:41,040 [DEBUG][       Thread-602148][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:46:41,040 [DEBUG][       Thread-602148][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:46:41,040 [DEBUG][       Thread-602148][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:46:41,040 [DEBUG][       Thread-602148][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:46:41,040 [DEBUG][       Thread-602148][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:46:41,040 [DEBUG][       Thread-602148][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:46:41,040 [DEBUG][       Thread-602148][   transport.py][1871] : client lang: <none>
2025-07-01 10:46:41,040 [DEBUG][       Thread-602148][   transport.py][1871] : server lang: <none>
2025-07-01 10:46:41,040 [DEBUG][       Thread-602148][   transport.py][1871] : kex follows: False
2025-07-01 10:46:41,040 [DEBUG][       Thread-602148][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:46:41,040 [DEBUG][       Thread-602148][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:46:41,040 [DEBUG][       Thread-602148][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:46:41,040 [DEBUG][       Thread-602148][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:46:41,040 [DEBUG][       Thread-602148][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:46:41,040 [DEBUG][       Thread-602148][   transport.py][1871] : Compression: none
2025-07-01 10:46:41,040 [DEBUG][       Thread-602148][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:46:41,055 [DEBUG][       Thread-602148][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:46:41,056 [DEBUG][       Thread-602148][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:46:41,056 [DEBUG][       Thread-602148][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:46:41,056 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:46:41,056 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:46:41,056 [DEBUG][       Thread-602148][   transport.py][1871] : userauth is OK
2025-07-01 10:46:41,080 [ INFO][       Thread-602148][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:46:41,081 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:46:41,820 [DEBUG][       Thread-602148][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:46:41,820 [DEBUG][       Thread-602148][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:46:41,860 [DEBUG][       Thread-602148][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:46:41,860 [DEBUG][       Thread-602148][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:46:41,863 [DEBUG][       Thread-602148][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:46:41,875 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:46:41,875 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:46:41,876 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:46:41,877 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:46:41,880 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:46:41,881 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:46:41,881 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:46:41,881 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:46:41,881 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.365224 -999.00   +9.60  35.38     55   +1.10 1 1 2 1 1   887    0 7.63 -22.94 ----- 35.4 35.4 5.2 42.1 12.3 -24.2 11.5 -24.1 10.9 -23.0 11.7 -22.2
2025-07-01 10:46:41,881 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:46:41,881 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:46:41,881 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.365224
2025-07-01 10:46:41,881 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:46:41,881 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:46:41,881 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:46:41,881 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:46:41,881 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:46:41,881 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:46:33', tmtdew=9.66, humidity=51.23, cloud=0.0, wind=25.71, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:45:55.354', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:46:41,882 [DEBUG][       Thread-602148][   transport.py][1871] : EOF in transport thread
2025-07-01 10:46:41,954 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:46:41,964 [DEBUG][       Thread-602151][   transport.py][1871] : starting thread (client mode): 0x818c5e0
2025-07-01 10:46:41,964 [DEBUG][       Thread-602151][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:46:41,979 [DEBUG][       Thread-602151][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:46:41,979 [ INFO][       Thread-602151][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:46:41,986 [DEBUG][       Thread-602151][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:46:41,986 [DEBUG][       Thread-602151][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:46:41,986 [DEBUG][       Thread-602151][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:46:41,986 [DEBUG][       Thread-602151][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:46:41,986 [DEBUG][       Thread-602151][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:46:41,986 [DEBUG][       Thread-602151][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:46:41,986 [DEBUG][       Thread-602151][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:46:41,986 [DEBUG][       Thread-602151][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:46:41,986 [DEBUG][       Thread-602151][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:46:41,986 [DEBUG][       Thread-602151][   transport.py][1871] : client lang: <none>
2025-07-01 10:46:41,986 [DEBUG][       Thread-602151][   transport.py][1871] : server lang: <none>
2025-07-01 10:46:41,986 [DEBUG][       Thread-602151][   transport.py][1871] : kex follows: False
2025-07-01 10:46:41,986 [DEBUG][       Thread-602151][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:46:41,986 [DEBUG][       Thread-602151][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:46:41,986 [DEBUG][       Thread-602151][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:46:41,986 [DEBUG][       Thread-602151][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:46:41,986 [DEBUG][       Thread-602151][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:46:41,986 [DEBUG][       Thread-602151][   transport.py][1871] : Compression: none
2025-07-01 10:46:41,986 [DEBUG][       Thread-602151][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:46:42,045 [DEBUG][       Thread-602151][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:46:42,045 [DEBUG][       Thread-602151][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:46:42,045 [DEBUG][       Thread-602151][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:46:42,045 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:46:42,045 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:46:42,104 [DEBUG][       Thread-602151][   transport.py][1871] : userauth is OK
2025-07-01 10:46:42,104 [DEBUG][       Thread-602151][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:46:42,104 [DEBUG][       Thread-602151][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:46:42,104 [DEBUG][       Thread-602151][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:46:42,104 [DEBUG][       Thread-602151][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:46:42,118 [ INFO][       Thread-602151][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:46:42,118 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:46:42,118 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:46:43,097 [DEBUG][       Thread-602151][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:46:43,097 [DEBUG][       Thread-602151][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:46:43,147 [DEBUG][       Thread-602151][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:46:43,147 [DEBUG][       Thread-602151][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:46:43,155 [DEBUG][       Thread-602151][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:46:43,163 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:46:43,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-07-01 10:46:43,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') -> 00000000
2025-07-01 10:46:43,178 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:46:43,178 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:46:43,178 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:46:43,186 [DEBUG][       Thread-602151][   transport.py][1871] : EOF in transport thread
2025-07-01 10:46:47,256 [DEBUG][Thread-602153 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:46:53,189 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:46:53,189 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:46:53,189 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:46: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-07-01 10:46:53,639 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 46, 33), 9.66, 51.23, 0.0, 25.71, 9.74, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:46:53,639 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:46:33
2025-07-01 10:46:53,722 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:46:53,728 [DEBUG][       Thread-602154][   transport.py][1871] : starting thread (client mode): 0x8172470
2025-07-01 10:46:53,728 [DEBUG][       Thread-602154][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:46:53,748 [DEBUG][       Thread-602154][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:46:53,748 [ INFO][       Thread-602154][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:46:53,751 [DEBUG][       Thread-602154][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:46:53,751 [DEBUG][       Thread-602154][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:46:53,751 [DEBUG][       Thread-602154][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:46:53,751 [DEBUG][       Thread-602154][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:46:53,751 [DEBUG][       Thread-602154][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:46:53,751 [DEBUG][       Thread-602154][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:46:53,751 [DEBUG][       Thread-602154][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:46:53,751 [DEBUG][       Thread-602154][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:46:53,751 [DEBUG][       Thread-602154][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:46:53,751 [DEBUG][       Thread-602154][   transport.py][1871] : client lang: <none>
2025-07-01 10:46:53,751 [DEBUG][       Thread-602154][   transport.py][1871] : server lang: <none>
2025-07-01 10:46:53,751 [DEBUG][       Thread-602154][   transport.py][1871] : kex follows: False
2025-07-01 10:46:53,751 [DEBUG][       Thread-602154][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:46:53,752 [DEBUG][       Thread-602154][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:46:53,752 [DEBUG][       Thread-602154][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:46:53,752 [DEBUG][       Thread-602154][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:46:53,752 [DEBUG][       Thread-602154][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:46:53,752 [DEBUG][       Thread-602154][   transport.py][1871] : Compression: none
2025-07-01 10:46:53,752 [DEBUG][       Thread-602154][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:46:53,769 [DEBUG][       Thread-602154][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:46:53,769 [DEBUG][       Thread-602154][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:46:53,770 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:46:53,770 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:46:53,770 [DEBUG][       Thread-602154][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:46:53,771 [DEBUG][       Thread-602154][   transport.py][1871] : userauth is OK
2025-07-01 10:46:53,784 [ INFO][       Thread-602154][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:46:53,784 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:46:54,412 [DEBUG][       Thread-602154][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:46:54,412 [DEBUG][       Thread-602154][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:46:54,453 [DEBUG][       Thread-602154][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:46:54,454 [DEBUG][       Thread-602154][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:46:54,457 [DEBUG][       Thread-602154][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:46:54,470 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:46:54,471 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:46:54,473 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:46:54,474 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:46:54,479 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:46:54,481 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:46:54,481 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:46:54,482 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:46:54,482 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.365571 -999.00   +9.50  36.19     55   +1.00 1 1 2 1 1   887    0 7.49 -24.18 ----- 36.2 36.2 36.6 49.9 12.3 -24.3 11.5 -24.7 10.9 -22.7 11.7 -22.0
2025-07-01 10:46:54,482 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:46:54,482 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:46:54,482 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.365571
2025-07-01 10:46:54,483 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:46:54,483 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:46:54,484 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:46:54,484 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:46:54,484 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:46:54,484 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:46:33', tmtdew=9.66, humidity=51.23, cloud=0.0, wind=25.71, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:46:25.334', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:46:54,485 [DEBUG][       Thread-602154][   transport.py][1871] : EOF in transport thread
2025-07-01 10:46:54,567 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:46:54,578 [DEBUG][       Thread-602157][   transport.py][1871] : starting thread (client mode): 0x83939d0
2025-07-01 10:46:54,578 [DEBUG][       Thread-602157][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:46:54,592 [DEBUG][       Thread-602157][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:46:54,593 [ INFO][       Thread-602157][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:46:54,600 [DEBUG][       Thread-602157][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:46:54,600 [DEBUG][       Thread-602157][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:46:54,600 [DEBUG][       Thread-602157][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:46:54,600 [DEBUG][       Thread-602157][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:46:54,601 [DEBUG][       Thread-602157][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:46:54,601 [DEBUG][       Thread-602157][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:46:54,601 [DEBUG][       Thread-602157][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:46:54,601 [DEBUG][       Thread-602157][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:46:54,601 [DEBUG][       Thread-602157][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:46:54,601 [DEBUG][       Thread-602157][   transport.py][1871] : client lang: <none>
2025-07-01 10:46:54,601 [DEBUG][       Thread-602157][   transport.py][1871] : server lang: <none>
2025-07-01 10:46:54,601 [DEBUG][       Thread-602157][   transport.py][1871] : kex follows: False
2025-07-01 10:46:54,601 [DEBUG][       Thread-602157][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:46:54,601 [DEBUG][       Thread-602157][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:46:54,601 [DEBUG][       Thread-602157][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:46:54,601 [DEBUG][       Thread-602157][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:46:54,601 [DEBUG][       Thread-602157][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:46:54,601 [DEBUG][       Thread-602157][   transport.py][1871] : Compression: none
2025-07-01 10:46:54,601 [DEBUG][       Thread-602157][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:46:54,658 [DEBUG][       Thread-602157][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:46:54,659 [DEBUG][       Thread-602157][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:46:54,659 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:46:54,660 [DEBUG][       Thread-602157][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:46:54,660 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:46:54,714 [DEBUG][       Thread-602157][   transport.py][1871] : userauth is OK
2025-07-01 10:46:54,715 [DEBUG][       Thread-602157][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:46:54,715 [DEBUG][       Thread-602157][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:46:54,715 [DEBUG][       Thread-602157][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:46:54,715 [DEBUG][       Thread-602157][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:46:54,734 [ INFO][       Thread-602157][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:46:54,734 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:46:54,735 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:46:55,717 [DEBUG][       Thread-602157][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:46:55,717 [DEBUG][       Thread-602157][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:46:55,768 [DEBUG][       Thread-602157][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:46:55,768 [DEBUG][       Thread-602157][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:46:55,777 [DEBUG][       Thread-602157][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:46:55,786 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:46: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')
2025-07-01 10:46:55,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-07-01 10:46:55,808 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:46:55,808 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:46:55,808 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:46:55,820 [DEBUG][       Thread-602157][   transport.py][1871] : EOF in transport thread
2025-07-01 10:46:56,284 [DEBUG][Thread-602159 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:47:02,042 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:47:02,043 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:47:05,305 [DEBUG][Thread-602160 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:47:05,816 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:47:05,816 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:47:05,816 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:47:05,816 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:47:06,321 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 46, 33), 9.66, 51.23, 0.0, 25.71, 9.74, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:47:06,321 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:46:33
2025-07-01 10:47:06,412 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:47:06,416 [DEBUG][       Thread-602161][   transport.py][1871] : starting thread (client mode): 0x8171a20
2025-07-01 10:47:06,416 [DEBUG][       Thread-602161][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:47:06,435 [DEBUG][       Thread-602161][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:47:06,435 [ INFO][       Thread-602161][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:47:06,439 [DEBUG][       Thread-602161][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:47:06,439 [DEBUG][       Thread-602161][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:47:06,439 [DEBUG][       Thread-602161][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:47:06,439 [DEBUG][       Thread-602161][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:47:06,439 [DEBUG][       Thread-602161][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:47:06,439 [DEBUG][       Thread-602161][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:47:06,439 [DEBUG][       Thread-602161][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:47:06,439 [DEBUG][       Thread-602161][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:47:06,439 [DEBUG][       Thread-602161][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:47:06,439 [DEBUG][       Thread-602161][   transport.py][1871] : client lang: <none>
2025-07-01 10:47:06,439 [DEBUG][       Thread-602161][   transport.py][1871] : server lang: <none>
2025-07-01 10:47:06,439 [DEBUG][       Thread-602161][   transport.py][1871] : kex follows: False
2025-07-01 10:47:06,439 [DEBUG][       Thread-602161][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:47:06,439 [DEBUG][       Thread-602161][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:47:06,439 [DEBUG][       Thread-602161][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:47:06,439 [DEBUG][       Thread-602161][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:47:06,439 [DEBUG][       Thread-602161][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:47:06,439 [DEBUG][       Thread-602161][   transport.py][1871] : Compression: none
2025-07-01 10:47:06,439 [DEBUG][       Thread-602161][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:47:06,454 [DEBUG][       Thread-602161][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:47:06,454 [DEBUG][       Thread-602161][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:47:06,454 [DEBUG][       Thread-602161][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:47:06,454 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:47:06,454 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:47:06,455 [DEBUG][       Thread-602161][   transport.py][1871] : userauth is OK
2025-07-01 10:47:06,479 [ INFO][       Thread-602161][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:47:06,479 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:47:07,127 [DEBUG][       Thread-602161][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:47:07,127 [DEBUG][       Thread-602161][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:47:07,168 [DEBUG][       Thread-602161][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:47:07,168 [DEBUG][       Thread-602161][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:47:07,171 [DEBUG][       Thread-602161][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:47:07,184 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:47:07,184 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:47:07,185 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:47:07,186 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:47:07,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:47:07,190 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:47:07,190 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:47:07,191 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:47:07,191 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.365571 -999.00   +9.50  36.19     55   +1.00 1 1 2 1 1   887    0 7.49 -24.18 ----- 36.2 36.2 36.6 49.9 12.3 -24.3 11.5 -24.7 10.9 -22.7 11.7 -22.0
2025-07-01 10:47:07,191 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:47:07,191 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:47:07,191 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.365571
2025-07-01 10:47:07,191 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:47:07,191 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:47:07,191 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:47:07,191 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:47:07,191 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:47:07,191 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:46:33', tmtdew=9.66, humidity=51.23, cloud=0.0, wind=25.71, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:46:25.334', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:47:07,192 [DEBUG][       Thread-602161][   transport.py][1871] : EOF in transport thread
2025-07-01 10:47:07,266 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:47:07,279 [DEBUG][       Thread-602164][   transport.py][1871] : starting thread (client mode): 0x818e560
2025-07-01 10:47:07,279 [DEBUG][       Thread-602164][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:47:07,293 [DEBUG][       Thread-602164][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:47:07,293 [ INFO][       Thread-602164][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:47:07,301 [DEBUG][       Thread-602164][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:47:07,301 [DEBUG][       Thread-602164][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:47:07,301 [DEBUG][       Thread-602164][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:47:07,301 [DEBUG][       Thread-602164][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:47:07,301 [DEBUG][       Thread-602164][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:47:07,301 [DEBUG][       Thread-602164][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:47:07,301 [DEBUG][       Thread-602164][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:47:07,301 [DEBUG][       Thread-602164][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:47:07,301 [DEBUG][       Thread-602164][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:47:07,301 [DEBUG][       Thread-602164][   transport.py][1871] : client lang: <none>
2025-07-01 10:47:07,301 [DEBUG][       Thread-602164][   transport.py][1871] : server lang: <none>
2025-07-01 10:47:07,301 [DEBUG][       Thread-602164][   transport.py][1871] : kex follows: False
2025-07-01 10:47:07,301 [DEBUG][       Thread-602164][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:47:07,301 [DEBUG][       Thread-602164][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:47:07,301 [DEBUG][       Thread-602164][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:47:07,301 [DEBUG][       Thread-602164][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:47:07,301 [DEBUG][       Thread-602164][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:47:07,301 [DEBUG][       Thread-602164][   transport.py][1871] : Compression: none
2025-07-01 10:47:07,301 [DEBUG][       Thread-602164][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:47:07,357 [DEBUG][       Thread-602164][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:47:07,358 [DEBUG][       Thread-602164][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:47:07,358 [DEBUG][       Thread-602164][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:47:07,358 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:47:07,359 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:47:07,414 [DEBUG][       Thread-602164][   transport.py][1871] : userauth is OK
2025-07-01 10:47:07,414 [DEBUG][       Thread-602164][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:47:07,414 [DEBUG][       Thread-602164][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:47:07,414 [DEBUG][       Thread-602164][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:47:07,414 [DEBUG][       Thread-602164][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:47:07,432 [ INFO][       Thread-602164][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:47:07,432 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:47:07,433 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:47:08,436 [DEBUG][       Thread-602164][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:47:08,436 [DEBUG][       Thread-602164][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:47:08,483 [DEBUG][       Thread-602164][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:47:08,483 [DEBUG][       Thread-602164][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:47:08,491 [DEBUG][       Thread-602164][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:47:08,499 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:47:08,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-07-01 10:47: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') -> 00000000
2025-07-01 10:47:08,515 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:47:08,516 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:47:08,516 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:47:08,523 [DEBUG][       Thread-602164][   transport.py][1871] : EOF in transport thread
2025-07-01 10:47:14,326 [DEBUG][Thread-602166 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:47:18,526 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:47:18,526 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:47:18,526 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:47:18,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-07-01 10:47:19,004 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 47, 5), 9.73, 51.03, 0.0, 32.01, 9.81, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:47:19,004 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:47:05
2025-07-01 10:47:19,088 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:47:19,092 [DEBUG][       Thread-602167][   transport.py][1871] : starting thread (client mode): 0x81e5840
2025-07-01 10:47:19,092 [DEBUG][       Thread-602167][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:47:19,108 [DEBUG][       Thread-602167][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:47:19,108 [ INFO][       Thread-602167][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:47:19,111 [DEBUG][       Thread-602167][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:47:19,111 [DEBUG][       Thread-602167][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:47:19,111 [DEBUG][       Thread-602167][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:47:19,111 [DEBUG][       Thread-602167][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:47:19,111 [DEBUG][       Thread-602167][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:47:19,111 [DEBUG][       Thread-602167][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:47:19,111 [DEBUG][       Thread-602167][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:47:19,111 [DEBUG][       Thread-602167][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:47:19,111 [DEBUG][       Thread-602167][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:47:19,111 [DEBUG][       Thread-602167][   transport.py][1871] : client lang: <none>
2025-07-01 10:47:19,111 [DEBUG][       Thread-602167][   transport.py][1871] : server lang: <none>
2025-07-01 10:47:19,111 [DEBUG][       Thread-602167][   transport.py][1871] : kex follows: False
2025-07-01 10:47:19,111 [DEBUG][       Thread-602167][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:47:19,111 [DEBUG][       Thread-602167][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:47:19,111 [DEBUG][       Thread-602167][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:47:19,112 [DEBUG][       Thread-602167][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:47:19,112 [DEBUG][       Thread-602167][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:47:19,112 [DEBUG][       Thread-602167][   transport.py][1871] : Compression: none
2025-07-01 10:47:19,112 [DEBUG][       Thread-602167][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:47:19,126 [DEBUG][       Thread-602167][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:47:19,127 [DEBUG][       Thread-602167][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:47:19,127 [DEBUG][       Thread-602167][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:47:19,127 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:47:19,127 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:47:19,128 [DEBUG][       Thread-602167][   transport.py][1871] : userauth is OK
2025-07-01 10:47:19,153 [ INFO][       Thread-602167][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:47:19,154 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:47:19,828 [DEBUG][       Thread-602167][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:47:19,828 [DEBUG][       Thread-602167][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:47:19,869 [DEBUG][       Thread-602167][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:47:19,869 [DEBUG][       Thread-602167][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:47:19,872 [DEBUG][       Thread-602167][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:47:19,885 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:47:19,886 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:47:19,887 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:47:19,889 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:47:19,895 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:47:19,897 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:47:19,897 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:47:19,898 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:47:19,898 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.365918 -999.00   +9.50  35.20     56   +1.20 1 1 2 1 1   887    0 7.73 -22.75 ----- 35.2 35.2 28.8 42.2 12.4 -23.7 11.5 -23.9 11.0 -23.0 11.7 -22.0
2025-07-01 10:47:19,898 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:47:19,898 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:47:19,898 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.365918
2025-07-01 10:47:19,899 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:47:19,899 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:47:19,899 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:47:19,899 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:47:19,899 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:47:19,900 [DEBUG][       Thread-602167][   transport.py][1871] : EOF in transport thread
2025-07-01 10:47:19,900 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:47:05', tmtdew=9.73, humidity=51.03, cloud=0.0, wind=32.01, temperature=9.81, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:46:55.315', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:47:19,985 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:47:19,996 [DEBUG][       Thread-602170][   transport.py][1871] : starting thread (client mode): 0x8106470
2025-07-01 10:47:19,996 [DEBUG][       Thread-602170][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:47:20,011 [DEBUG][       Thread-602170][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:47:20,011 [ INFO][       Thread-602170][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:47:20,018 [DEBUG][       Thread-602170][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:47:20,019 [DEBUG][       Thread-602170][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:47:20,019 [DEBUG][       Thread-602170][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:47:20,019 [DEBUG][       Thread-602170][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:47:20,019 [DEBUG][       Thread-602170][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:47:20,019 [DEBUG][       Thread-602170][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:47:20,019 [DEBUG][       Thread-602170][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:47:20,019 [DEBUG][       Thread-602170][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:47:20,019 [DEBUG][       Thread-602170][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:47:20,019 [DEBUG][       Thread-602170][   transport.py][1871] : client lang: <none>
2025-07-01 10:47:20,019 [DEBUG][       Thread-602170][   transport.py][1871] : server lang: <none>
2025-07-01 10:47:20,019 [DEBUG][       Thread-602170][   transport.py][1871] : kex follows: False
2025-07-01 10:47:20,019 [DEBUG][       Thread-602170][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:47:20,019 [DEBUG][       Thread-602170][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:47:20,019 [DEBUG][       Thread-602170][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:47:20,019 [DEBUG][       Thread-602170][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:47:20,019 [DEBUG][       Thread-602170][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:47:20,019 [DEBUG][       Thread-602170][   transport.py][1871] : Compression: none
2025-07-01 10:47:20,019 [DEBUG][       Thread-602170][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:47:20,082 [DEBUG][       Thread-602170][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:47:20,082 [DEBUG][       Thread-602170][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:47:20,082 [DEBUG][       Thread-602170][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:47:20,082 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:47:20,082 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:47:20,138 [DEBUG][       Thread-602170][   transport.py][1871] : userauth is OK
2025-07-01 10:47:20,138 [DEBUG][       Thread-602170][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:47:20,138 [DEBUG][       Thread-602170][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:47:20,138 [DEBUG][       Thread-602170][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:47:20,138 [DEBUG][       Thread-602170][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:47:20,152 [ INFO][       Thread-602170][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:47:20,152 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:47:20,152 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:47:21,178 [DEBUG][       Thread-602170][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:47:21,178 [DEBUG][       Thread-602170][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:47:21,227 [DEBUG][       Thread-602170][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:47:21,227 [DEBUG][       Thread-602170][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:47:21,236 [DEBUG][       Thread-602170][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:47:21,244 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:47:21,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-07-01 10:47:21,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-07-01 10:47:21,260 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:47:21,260 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:47:21,260 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:47:21,268 [DEBUG][       Thread-602170][   transport.py][1871] : EOF in transport thread
2025-07-01 10:47:23,343 [DEBUG][Thread-602172 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:47:24,100 [DEBUG][Thread-602173 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:47:31,270 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:47:31,271 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:47:31,271 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:47:31,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-07-01 10:47:31,734 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 47, 5), 9.73, 51.03, 0.0, 32.01, 9.81, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:47:31,734 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:47:05
2025-07-01 10:47:31,818 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:47:31,825 [DEBUG][       Thread-602174][   transport.py][1871] : starting thread (client mode): 0x82b3a30
2025-07-01 10:47:31,825 [DEBUG][       Thread-602174][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:47:31,847 [DEBUG][       Thread-602174][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:47:31,847 [ INFO][       Thread-602174][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:47:31,850 [DEBUG][       Thread-602174][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:47:31,850 [DEBUG][       Thread-602174][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:47:31,851 [DEBUG][       Thread-602174][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:47:31,851 [DEBUG][       Thread-602174][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:47:31,851 [DEBUG][       Thread-602174][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:47:31,851 [DEBUG][       Thread-602174][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:47:31,851 [DEBUG][       Thread-602174][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:47:31,851 [DEBUG][       Thread-602174][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:47:31,851 [DEBUG][       Thread-602174][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:47:31,851 [DEBUG][       Thread-602174][   transport.py][1871] : client lang: <none>
2025-07-01 10:47:31,851 [DEBUG][       Thread-602174][   transport.py][1871] : server lang: <none>
2025-07-01 10:47:31,851 [DEBUG][       Thread-602174][   transport.py][1871] : kex follows: False
2025-07-01 10:47:31,851 [DEBUG][       Thread-602174][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:47:31,851 [DEBUG][       Thread-602174][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:47:31,851 [DEBUG][       Thread-602174][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:47:31,851 [DEBUG][       Thread-602174][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:47:31,851 [DEBUG][       Thread-602174][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:47:31,851 [DEBUG][       Thread-602174][   transport.py][1871] : Compression: none
2025-07-01 10:47:31,851 [DEBUG][       Thread-602174][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:47:31,868 [DEBUG][       Thread-602174][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:47:31,869 [DEBUG][       Thread-602174][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:47:31,869 [DEBUG][       Thread-602174][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:47:31,869 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:47:31,869 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:47:31,871 [DEBUG][       Thread-602174][   transport.py][1871] : userauth is OK
2025-07-01 10:47:31,895 [ INFO][       Thread-602174][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:47:31,896 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:47:32,367 [DEBUG][Thread-602176 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:47:32,551 [DEBUG][       Thread-602174][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:47:32,551 [DEBUG][       Thread-602174][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:47:32,593 [DEBUG][       Thread-602174][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:47:32,593 [DEBUG][       Thread-602174][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:47:32,596 [DEBUG][       Thread-602174][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:47:32,609 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:47:32,610 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:47:32,612 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:47:32,613 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:47:32,619 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:47:32,621 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:47:32,621 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:47:32,622 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:47:32,622 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.365918 -999.00   +9.50  35.20     56   +1.20 1 1 2 1 1   887    0 7.73 -22.75 ----- 35.2 35.2 28.8 42.2 12.4 -23.7 11.5 -23.9 11.0 -23.0 11.7 -22.0
2025-07-01 10:47:32,622 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:47:32,622 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:47:32,622 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.365918
2025-07-01 10:47:32,623 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:47:32,623 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:47:32,623 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:47:32,623 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:47:32,623 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:47:32,624 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:47:05', tmtdew=9.73, humidity=51.03, cloud=0.0, wind=32.01, temperature=9.81, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:46:55.315', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:47:32,625 [DEBUG][       Thread-602174][   transport.py][1871] : EOF in transport thread
2025-07-01 10:47:32,707 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:47:32,717 [DEBUG][       Thread-602178][   transport.py][1871] : starting thread (client mode): 0x81553c0
2025-07-01 10:47:32,717 [DEBUG][       Thread-602178][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:47:32,736 [DEBUG][       Thread-602178][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:47:32,736 [ INFO][       Thread-602178][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:47:32,745 [DEBUG][       Thread-602178][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:47:32,745 [DEBUG][       Thread-602178][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:47:32,745 [DEBUG][       Thread-602178][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:47:32,745 [DEBUG][       Thread-602178][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:47:32,745 [DEBUG][       Thread-602178][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:47:32,745 [DEBUG][       Thread-602178][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:47:32,746 [DEBUG][       Thread-602178][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:47:32,746 [DEBUG][       Thread-602178][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:47:32,746 [DEBUG][       Thread-602178][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:47:32,746 [DEBUG][       Thread-602178][   transport.py][1871] : client lang: <none>
2025-07-01 10:47:32,746 [DEBUG][       Thread-602178][   transport.py][1871] : server lang: <none>
2025-07-01 10:47:32,746 [DEBUG][       Thread-602178][   transport.py][1871] : kex follows: False
2025-07-01 10:47:32,746 [DEBUG][       Thread-602178][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:47:32,746 [DEBUG][       Thread-602178][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:47:32,746 [DEBUG][       Thread-602178][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:47:32,746 [DEBUG][       Thread-602178][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:47:32,746 [DEBUG][       Thread-602178][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:47:32,746 [DEBUG][       Thread-602178][   transport.py][1871] : Compression: none
2025-07-01 10:47:32,746 [DEBUG][       Thread-602178][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:47:32,808 [DEBUG][       Thread-602178][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:47:32,809 [DEBUG][       Thread-602178][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:47:32,809 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:47:32,810 [DEBUG][       Thread-602178][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:47:32,811 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:47:32,866 [DEBUG][       Thread-602178][   transport.py][1871] : userauth is OK
2025-07-01 10:47:32,867 [DEBUG][       Thread-602178][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:47:32,867 [DEBUG][       Thread-602178][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:47:32,867 [DEBUG][       Thread-602178][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:47:32,867 [DEBUG][       Thread-602178][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:47:32,887 [ INFO][       Thread-602178][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:47:32,887 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:47:32,888 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:47:33,952 [DEBUG][       Thread-602178][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:47:33,952 [DEBUG][       Thread-602178][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:47:34,000 [DEBUG][       Thread-602178][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:47:34,000 [DEBUG][       Thread-602178][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:47:34,009 [DEBUG][       Thread-602178][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:47:34,026 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:47:34,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-07-01 10:47:34,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-07-01 10:47:34,050 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:47:34,051 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:47:34,051 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:47:34,059 [DEBUG][       Thread-602178][   transport.py][1871] : EOF in transport thread
2025-07-01 10:47:41,388 [DEBUG][Thread-602180 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:47:44,062 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:47:44,062 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:47:44,062 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:47:44,065 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:47:44,553 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 47, 37), 9.78, 50.82, 0.0, 29.8, 9.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:47:44,553 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:47:37
2025-07-01 10:47:44,637 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:47:44,641 [DEBUG][       Thread-602181][   transport.py][1871] : starting thread (client mode): 0x8107940
2025-07-01 10:47:44,641 [DEBUG][       Thread-602181][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:47:44,660 [DEBUG][       Thread-602181][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:47:44,660 [ INFO][       Thread-602181][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:47:44,664 [DEBUG][       Thread-602181][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:47:44,664 [DEBUG][       Thread-602181][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:47:44,664 [DEBUG][       Thread-602181][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:47:44,664 [DEBUG][       Thread-602181][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:47:44,664 [DEBUG][       Thread-602181][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:47:44,664 [DEBUG][       Thread-602181][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:47:44,664 [DEBUG][       Thread-602181][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:47:44,664 [DEBUG][       Thread-602181][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:47:44,664 [DEBUG][       Thread-602181][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:47:44,664 [DEBUG][       Thread-602181][   transport.py][1871] : client lang: <none>
2025-07-01 10:47:44,664 [DEBUG][       Thread-602181][   transport.py][1871] : server lang: <none>
2025-07-01 10:47:44,664 [DEBUG][       Thread-602181][   transport.py][1871] : kex follows: False
2025-07-01 10:47:44,664 [DEBUG][       Thread-602181][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:47:44,665 [DEBUG][       Thread-602181][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:47:44,665 [DEBUG][       Thread-602181][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:47:44,665 [DEBUG][       Thread-602181][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:47:44,665 [DEBUG][       Thread-602181][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:47:44,665 [DEBUG][       Thread-602181][   transport.py][1871] : Compression: none
2025-07-01 10:47:44,665 [DEBUG][       Thread-602181][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:47:44,681 [DEBUG][       Thread-602181][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:47:44,682 [DEBUG][       Thread-602181][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:47:44,682 [DEBUG][       Thread-602181][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:47:44,683 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:47:44,683 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:47:44,684 [DEBUG][       Thread-602181][   transport.py][1871] : userauth is OK
2025-07-01 10:47:44,709 [ INFO][       Thread-602181][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:47:44,709 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:47:45,368 [DEBUG][       Thread-602181][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:47:45,368 [DEBUG][       Thread-602181][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:47:45,409 [DEBUG][       Thread-602181][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:47:45,409 [DEBUG][       Thread-602181][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:47:45,412 [DEBUG][       Thread-602181][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:47:45,424 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:47:45,425 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:47:45,427 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:47:45,429 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:47:45,435 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:47:45,437 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:47:45,437 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:47:45,438 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:47:45,438 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.365918 -999.00   +9.50  35.20     56   +1.20 1 1 2 1 1   887    0 7.73 -22.75 ----- 35.2 35.2 28.8 42.2 12.4 -23.7 11.5 -23.9 11.0 -23.0 11.7 -22.0
2025-07-01 10:47:45,438 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:47:45,438 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:47:45,438 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.365918
2025-07-01 10:47:45,439 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:47:45,439 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:47:45,439 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:47:45,439 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:47:45,439 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:47:45,440 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:47:37', tmtdew=9.78, humidity=50.82, cloud=0.0, wind=29.8, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:46:55.315', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:47:45,441 [DEBUG][       Thread-602181][   transport.py][1871] : EOF in transport thread
2025-07-01 10:47:45,523 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:47:45,533 [DEBUG][       Thread-602184][   transport.py][1871] : starting thread (client mode): 0x8173f70
2025-07-01 10:47:45,533 [DEBUG][       Thread-602184][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:47:45,548 [DEBUG][       Thread-602184][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:47:45,548 [ INFO][       Thread-602184][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:47:45,555 [DEBUG][       Thread-602184][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:47:45,555 [DEBUG][       Thread-602184][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:47:45,556 [DEBUG][       Thread-602184][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:47:45,556 [DEBUG][       Thread-602184][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:47:45,556 [DEBUG][       Thread-602184][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:47:45,556 [DEBUG][       Thread-602184][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:47:45,556 [DEBUG][       Thread-602184][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:47:45,556 [DEBUG][       Thread-602184][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:47:45,556 [DEBUG][       Thread-602184][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:47:45,556 [DEBUG][       Thread-602184][   transport.py][1871] : client lang: <none>
2025-07-01 10:47:45,556 [DEBUG][       Thread-602184][   transport.py][1871] : server lang: <none>
2025-07-01 10:47:45,556 [DEBUG][       Thread-602184][   transport.py][1871] : kex follows: False
2025-07-01 10:47:45,556 [DEBUG][       Thread-602184][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:47:45,556 [DEBUG][       Thread-602184][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:47:45,556 [DEBUG][       Thread-602184][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:47:45,556 [DEBUG][       Thread-602184][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:47:45,556 [DEBUG][       Thread-602184][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:47:45,556 [DEBUG][       Thread-602184][   transport.py][1871] : Compression: none
2025-07-01 10:47:45,556 [DEBUG][       Thread-602184][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:47:45,614 [DEBUG][       Thread-602184][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:47:45,614 [DEBUG][       Thread-602184][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:47:45,615 [DEBUG][       Thread-602184][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:47:45,615 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:47:45,616 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:47:45,670 [DEBUG][       Thread-602184][   transport.py][1871] : userauth is OK
2025-07-01 10:47:45,671 [DEBUG][       Thread-602184][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:47:45,671 [DEBUG][       Thread-602184][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:47:45,671 [DEBUG][       Thread-602184][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:47:45,671 [DEBUG][       Thread-602184][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:47:45,690 [ INFO][       Thread-602184][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:47:45,691 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:47:45,691 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:47:46,700 [DEBUG][       Thread-602184][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:47:46,700 [DEBUG][       Thread-602184][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:47:46,748 [DEBUG][       Thread-602184][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:47:46,748 [DEBUG][       Thread-602184][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:47:46,758 [DEBUG][       Thread-602184][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:47:46,767 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:47:46,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-07-01 10:47:46,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-07-01 10:47:46,792 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:47:46,792 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:47:46,793 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:47:46,800 [DEBUG][       Thread-602184][   transport.py][1871] : EOF in transport thread
2025-07-01 10:47:50,409 [DEBUG][Thread-602186 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:47:56,803 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:47:56,803 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:47:56,803 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:47:56,806 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:47:57,290 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 47, 37), 9.78, 50.82, 0.0, 29.8, 9.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:47:57,290 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:47:37
2025-07-01 10:47:57,374 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:47:57,379 [DEBUG][       Thread-602187][   transport.py][1871] : starting thread (client mode): 0x81716c0
2025-07-01 10:47:57,380 [DEBUG][       Thread-602187][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:47:57,400 [DEBUG][       Thread-602187][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:47:57,400 [ INFO][       Thread-602187][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:47:57,405 [DEBUG][       Thread-602187][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:47:57,405 [DEBUG][       Thread-602187][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:47:57,405 [DEBUG][       Thread-602187][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:47:57,405 [DEBUG][       Thread-602187][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:47:57,406 [DEBUG][       Thread-602187][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:47:57,406 [DEBUG][       Thread-602187][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:47:57,406 [DEBUG][       Thread-602187][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:47:57,406 [DEBUG][       Thread-602187][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:47:57,406 [DEBUG][       Thread-602187][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:47:57,406 [DEBUG][       Thread-602187][   transport.py][1871] : client lang: <none>
2025-07-01 10:47:57,406 [DEBUG][       Thread-602187][   transport.py][1871] : server lang: <none>
2025-07-01 10:47:57,406 [DEBUG][       Thread-602187][   transport.py][1871] : kex follows: False
2025-07-01 10:47:57,406 [DEBUG][       Thread-602187][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:47:57,406 [DEBUG][       Thread-602187][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:47:57,406 [DEBUG][       Thread-602187][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:47:57,406 [DEBUG][       Thread-602187][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:47:57,406 [DEBUG][       Thread-602187][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:47:57,406 [DEBUG][       Thread-602187][   transport.py][1871] : Compression: none
2025-07-01 10:47:57,406 [DEBUG][       Thread-602187][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:47:57,424 [DEBUG][       Thread-602187][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:47:57,424 [DEBUG][       Thread-602187][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:47:57,425 [DEBUG][       Thread-602187][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:47:57,425 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:47:57,425 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:47:57,426 [DEBUG][       Thread-602187][   transport.py][1871] : userauth is OK
2025-07-01 10:47:57,440 [ INFO][       Thread-602187][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:47:57,440 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:47:58,082 [DEBUG][       Thread-602187][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:47:58,082 [DEBUG][       Thread-602187][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:47:58,125 [DEBUG][       Thread-602187][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:47:58,125 [DEBUG][       Thread-602187][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:47:58,128 [DEBUG][       Thread-602187][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:47:58,142 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:47:58,142 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:47:58,144 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:47:58,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:47:58,150 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:47:58,152 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:47:58,153 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:47:58,153 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:47:58,153 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.366265 -999.00   +9.60  30.83     55   +1.20 1 1 2 1 1   887    0 7.78 -21.53 ----- 30.8 30.8 27.6 34.1 12.4 -23.6 11.6 -24.0 11.0 -22.9 11.7 -21.9
2025-07-01 10:47:58,153 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:47:58,154 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:47:58,154 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.366265
2025-07-01 10:47:58,154 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:47:58,155 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:47:58,155 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:47:58,155 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:47:58,155 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:47:58,155 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:47:37', tmtdew=9.78, humidity=50.82, cloud=0.0, wind=29.8, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:47:25.296', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:47:58,155 [DEBUG][       Thread-602187][   transport.py][1871] : EOF in transport thread
2025-07-01 10:47:58,229 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:47:58,240 [DEBUG][       Thread-602190][   transport.py][1871] : starting thread (client mode): 0x818e7a0
2025-07-01 10:47:58,240 [DEBUG][       Thread-602190][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:47:58,255 [DEBUG][       Thread-602190][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:47:58,256 [ INFO][       Thread-602190][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:47:58,263 [DEBUG][       Thread-602190][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:47:58,263 [DEBUG][       Thread-602190][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:47:58,263 [DEBUG][       Thread-602190][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:47:58,263 [DEBUG][       Thread-602190][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:47:58,263 [DEBUG][       Thread-602190][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:47:58,263 [DEBUG][       Thread-602190][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:47:58,263 [DEBUG][       Thread-602190][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:47:58,263 [DEBUG][       Thread-602190][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:47:58,263 [DEBUG][       Thread-602190][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:47:58,263 [DEBUG][       Thread-602190][   transport.py][1871] : client lang: <none>
2025-07-01 10:47:58,263 [DEBUG][       Thread-602190][   transport.py][1871] : server lang: <none>
2025-07-01 10:47:58,263 [DEBUG][       Thread-602190][   transport.py][1871] : kex follows: False
2025-07-01 10:47:58,263 [DEBUG][       Thread-602190][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:47:58,263 [DEBUG][       Thread-602190][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:47:58,263 [DEBUG][       Thread-602190][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:47:58,263 [DEBUG][       Thread-602190][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:47:58,263 [DEBUG][       Thread-602190][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:47:58,263 [DEBUG][       Thread-602190][   transport.py][1871] : Compression: none
2025-07-01 10:47:58,263 [DEBUG][       Thread-602190][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:47:58,322 [DEBUG][       Thread-602190][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:47:58,322 [DEBUG][       Thread-602190][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:47:58,323 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:47:58,323 [DEBUG][       Thread-602190][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:47:58,323 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:47:58,382 [DEBUG][       Thread-602190][   transport.py][1871] : userauth is OK
2025-07-01 10:47:58,382 [DEBUG][       Thread-602190][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:47:58,382 [DEBUG][       Thread-602190][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:47:58,382 [DEBUG][       Thread-602190][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:47:58,382 [DEBUG][       Thread-602190][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:47:58,401 [ INFO][       Thread-602190][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:47:58,402 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:47:58,402 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:47:59,442 [DEBUG][       Thread-602190][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:47:59,442 [DEBUG][       Thread-602190][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:47:59,447 [DEBUG][Thread-602192 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:47:59,491 [DEBUG][       Thread-602190][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:47:59,491 [DEBUG][       Thread-602190][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:47:59,500 [DEBUG][       Thread-602190][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:47:59,508 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:47:59,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')
2025-07-01 10:47:59,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-07-01 10:47:59,528 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:47:59,528 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:47:59,528 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:47:59,536 [DEBUG][       Thread-602190][   transport.py][1871] : EOF in transport thread
2025-07-01 10:48:02,180 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:48:02,180 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:48:08,465 [DEBUG][Thread-602193 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:48:09,536 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:48:09,536 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:48:09,536 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:48:09,536 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:48:10,046 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 47, 37), 9.78, 50.82, 0.0, 29.8, 9.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:48:10,046 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:47:37
2025-07-01 10:48:10,136 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:48:10,141 [DEBUG][       Thread-602194][   transport.py][1871] : starting thread (client mode): 0x8170850
2025-07-01 10:48:10,141 [DEBUG][       Thread-602194][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:48:10,161 [DEBUG][       Thread-602194][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:48:10,161 [ INFO][       Thread-602194][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:48:10,165 [DEBUG][       Thread-602194][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:48:10,165 [DEBUG][       Thread-602194][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:48:10,165 [DEBUG][       Thread-602194][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:48:10,165 [DEBUG][       Thread-602194][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:48:10,165 [DEBUG][       Thread-602194][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:48:10,165 [DEBUG][       Thread-602194][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:48:10,165 [DEBUG][       Thread-602194][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:48:10,165 [DEBUG][       Thread-602194][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:48:10,165 [DEBUG][       Thread-602194][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:48:10,165 [DEBUG][       Thread-602194][   transport.py][1871] : client lang: <none>
2025-07-01 10:48:10,165 [DEBUG][       Thread-602194][   transport.py][1871] : server lang: <none>
2025-07-01 10:48:10,165 [DEBUG][       Thread-602194][   transport.py][1871] : kex follows: False
2025-07-01 10:48:10,165 [DEBUG][       Thread-602194][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:48:10,165 [DEBUG][       Thread-602194][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:48:10,165 [DEBUG][       Thread-602194][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:48:10,165 [DEBUG][       Thread-602194][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:48:10,165 [DEBUG][       Thread-602194][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:48:10,165 [DEBUG][       Thread-602194][   transport.py][1871] : Compression: none
2025-07-01 10:48:10,165 [DEBUG][       Thread-602194][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:48:10,182 [DEBUG][       Thread-602194][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:48:10,182 [DEBUG][       Thread-602194][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:48:10,182 [DEBUG][       Thread-602194][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:48:10,182 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:48:10,182 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:48:10,183 [DEBUG][       Thread-602194][   transport.py][1871] : userauth is OK
2025-07-01 10:48:10,207 [ INFO][       Thread-602194][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:48:10,207 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:48:10,876 [DEBUG][       Thread-602194][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:48:10,876 [DEBUG][       Thread-602194][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:48:10,917 [DEBUG][       Thread-602194][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:48:10,917 [DEBUG][       Thread-602194][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:48:10,919 [DEBUG][       Thread-602194][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:48:10,933 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:48:10,933 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:48:10,934 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:48:10,935 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:48:10,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:48:10,939 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:48:10,939 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:48:10,940 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:48:10,940 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.366265 -999.00   +9.60  30.83     55   +1.20 1 1 2 1 1   887    0 7.78 -21.53 ----- 30.8 30.8 27.6 34.1 12.4 -23.6 11.6 -24.0 11.0 -22.9 11.7 -21.9
2025-07-01 10:48:10,940 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:48:10,940 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:48:10,940 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.366265
2025-07-01 10:48:10,940 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:48:10,940 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:48:10,940 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:48:10,940 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:48:10,940 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 10:48:10,940 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:47:37', tmtdew=9.78, humidity=50.82, cloud=0.0, wind=29.8, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:47:25.296', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:48:10,941 [DEBUG][       Thread-602194][   transport.py][1871] : EOF in transport thread
2025-07-01 10:48:11,023 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:48:17,484 [DEBUG][Thread-602197 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:48:24,150 [DEBUG][Thread-602198 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:48:26,509 [DEBUG][Thread-602199 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:48:35,535 [DEBUG][Thread-602200 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:48:44,555 [DEBUG][Thread-602201 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:48:53,577 [DEBUG][Thread-602202 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:49:02,319 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:49:02,320 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:49:02,599 [DEBUG][Thread-602203 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:49:11,619 [DEBUG][Thread-602204 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:49:20,639 [DEBUG][Thread-602205 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:49:24,201 [DEBUG][Thread-602206 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:49:29,664 [DEBUG][Thread-602207 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:49:38,689 [DEBUG][Thread-602208 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:49:47,713 [DEBUG][Thread-602209 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:49:56,731 [DEBUG][Thread-602210 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:50:02,458 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:50:02,459 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:50:05,753 [DEBUG][Thread-602211 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:50:14,776 [DEBUG][Thread-602212 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:50:20,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-07-01 10:50:23,799 [DEBUG][Thread-602213 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:50:24,253 [DEBUG][Thread-602214 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:50:30,063 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:50:30,063 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:50:30,063 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:50:30,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-07-01 10:50:30,568 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 50, 16), 9.64, 51.21, 0.0, 34.16, 9.79, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:50:30,568 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:50:16
2025-07-01 10:50:30,654 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:50:30,658 [DEBUG][       Thread-602215][   transport.py][1871] : starting thread (client mode): 0x82b2ce0
2025-07-01 10:50:30,658 [DEBUG][       Thread-602215][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:50:30,680 [DEBUG][       Thread-602215][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:50:30,680 [ INFO][       Thread-602215][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:50:30,683 [DEBUG][       Thread-602215][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:50:30,683 [DEBUG][       Thread-602215][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:50:30,683 [DEBUG][       Thread-602215][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:50:30,683 [DEBUG][       Thread-602215][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:50:30,683 [DEBUG][       Thread-602215][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:50:30,683 [DEBUG][       Thread-602215][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:50:30,683 [DEBUG][       Thread-602215][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:50:30,683 [DEBUG][       Thread-602215][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:50:30,683 [DEBUG][       Thread-602215][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:50:30,683 [DEBUG][       Thread-602215][   transport.py][1871] : client lang: <none>
2025-07-01 10:50:30,683 [DEBUG][       Thread-602215][   transport.py][1871] : server lang: <none>
2025-07-01 10:50:30,683 [DEBUG][       Thread-602215][   transport.py][1871] : kex follows: False
2025-07-01 10:50:30,683 [DEBUG][       Thread-602215][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:50:30,684 [DEBUG][       Thread-602215][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:50:30,684 [DEBUG][       Thread-602215][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:50:30,684 [DEBUG][       Thread-602215][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:50:30,684 [DEBUG][       Thread-602215][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:50:30,684 [DEBUG][       Thread-602215][   transport.py][1871] : Compression: none
2025-07-01 10:50:30,684 [DEBUG][       Thread-602215][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:50:30,701 [DEBUG][       Thread-602215][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:50:30,701 [DEBUG][       Thread-602215][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:50:30,701 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:50:30,702 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:50:30,702 [DEBUG][       Thread-602215][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:50:30,703 [DEBUG][       Thread-602215][   transport.py][1871] : userauth is OK
2025-07-01 10:50:30,716 [ INFO][       Thread-602215][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:50:30,716 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:50:31,337 [DEBUG][       Thread-602215][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:50:31,337 [DEBUG][       Thread-602215][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:50:31,380 [DEBUG][       Thread-602215][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:50:31,380 [DEBUG][       Thread-602215][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:50:31,383 [DEBUG][       Thread-602215][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:50:31,394 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:50:31,394 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:50:31,395 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:50:31,397 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:50:31,400 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:50:31,401 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:50:31,401 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:50:31,401 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:50:31,401 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.368001 -999.00   +9.50  34.69     55   +1.10 1 2 2 1 1   887    0 8.03 -10.80 ----- 34.7 34.7 23.4 38.7 12.7 -22.6 11.8 -23.1 11.2 -21.7 12.0 -20.7
2025-07-01 10:50:31,401 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:50:31,401 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:50:31,401 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.368001
2025-07-01 10:50:31,401 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:50:31,402 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:50:31,402 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:50:31,402 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:50:31,402 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:50:31,402 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:50:16', tmtdew=9.64, humidity=51.21, cloud=0.0, wind=34.16, temperature=9.79, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:49:55.286', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:50:31,402 [DEBUG][       Thread-602215][   transport.py][1871] : EOF in transport thread
2025-07-01 10:50:31,476 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:50:31,486 [DEBUG][       Thread-602218][   transport.py][1871] : starting thread (client mode): 0x827ec50
2025-07-01 10:50:31,486 [DEBUG][       Thread-602218][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:50:31,500 [DEBUG][       Thread-602218][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:50:31,501 [ INFO][       Thread-602218][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:50:31,508 [DEBUG][       Thread-602218][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:50:31,508 [DEBUG][       Thread-602218][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:50:31,508 [DEBUG][       Thread-602218][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:50:31,508 [DEBUG][       Thread-602218][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:50:31,508 [DEBUG][       Thread-602218][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:50:31,508 [DEBUG][       Thread-602218][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:50:31,508 [DEBUG][       Thread-602218][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:50:31,508 [DEBUG][       Thread-602218][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:50:31,508 [DEBUG][       Thread-602218][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:50:31,508 [DEBUG][       Thread-602218][   transport.py][1871] : client lang: <none>
2025-07-01 10:50:31,508 [DEBUG][       Thread-602218][   transport.py][1871] : server lang: <none>
2025-07-01 10:50:31,508 [DEBUG][       Thread-602218][   transport.py][1871] : kex follows: False
2025-07-01 10:50:31,508 [DEBUG][       Thread-602218][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:50:31,508 [DEBUG][       Thread-602218][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:50:31,508 [DEBUG][       Thread-602218][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:50:31,508 [DEBUG][       Thread-602218][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:50:31,508 [DEBUG][       Thread-602218][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:50:31,508 [DEBUG][       Thread-602218][   transport.py][1871] : Compression: none
2025-07-01 10:50:31,508 [DEBUG][       Thread-602218][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:50:31,565 [DEBUG][       Thread-602218][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:50:31,565 [DEBUG][       Thread-602218][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:50:31,565 [DEBUG][       Thread-602218][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:50:31,565 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:50:31,565 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:50:31,622 [DEBUG][       Thread-602218][   transport.py][1871] : userauth is OK
2025-07-01 10:50:31,622 [DEBUG][       Thread-602218][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:50:31,622 [DEBUG][       Thread-602218][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:50:31,622 [DEBUG][       Thread-602218][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:50:31,622 [DEBUG][       Thread-602218][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:50:31,636 [ INFO][       Thread-602218][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:50:31,636 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:50:31,636 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:50:32,638 [DEBUG][       Thread-602218][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:50:32,638 [DEBUG][       Thread-602218][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:50:32,687 [DEBUG][       Thread-602218][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:50:32,687 [DEBUG][       Thread-602218][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:50:32,696 [DEBUG][       Thread-602218][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:50:32,704 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:50:32,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-07-01 10:50:32,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-07-01 10:50:32,720 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:50:32,720 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:50:32,720 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:50:32,728 [DEBUG][       Thread-602218][   transport.py][1871] : EOF in transport thread
2025-07-01 10:50:32,818 [DEBUG][Thread-602220 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:50:41,843 [DEBUG][Thread-602221 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:50:42,730 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:50:42,731 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:50:42,731 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:50:42,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-07-01 10:50:43,217 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 50, 16), 9.64, 51.21, 0.0, 34.16, 9.79, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:50:43,218 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:50:16
2025-07-01 10:50:43,304 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:50:43,308 [DEBUG][       Thread-602222][   transport.py][1871] : starting thread (client mode): 0x81a5330
2025-07-01 10:50:43,309 [DEBUG][       Thread-602222][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:50:43,328 [DEBUG][       Thread-602222][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:50:43,328 [ INFO][       Thread-602222][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:50:43,331 [DEBUG][       Thread-602222][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:50:43,331 [DEBUG][       Thread-602222][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:50:43,331 [DEBUG][       Thread-602222][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:50:43,331 [DEBUG][       Thread-602222][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:50:43,331 [DEBUG][       Thread-602222][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:50:43,331 [DEBUG][       Thread-602222][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:50:43,331 [DEBUG][       Thread-602222][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:50:43,331 [DEBUG][       Thread-602222][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:50:43,331 [DEBUG][       Thread-602222][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:50:43,331 [DEBUG][       Thread-602222][   transport.py][1871] : client lang: <none>
2025-07-01 10:50:43,331 [DEBUG][       Thread-602222][   transport.py][1871] : server lang: <none>
2025-07-01 10:50:43,331 [DEBUG][       Thread-602222][   transport.py][1871] : kex follows: False
2025-07-01 10:50:43,331 [DEBUG][       Thread-602222][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:50:43,331 [DEBUG][       Thread-602222][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:50:43,331 [DEBUG][       Thread-602222][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:50:43,331 [DEBUG][       Thread-602222][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:50:43,331 [DEBUG][       Thread-602222][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:50:43,331 [DEBUG][       Thread-602222][   transport.py][1871] : Compression: none
2025-07-01 10:50:43,331 [DEBUG][       Thread-602222][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:50:43,345 [DEBUG][       Thread-602222][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:50:43,346 [DEBUG][       Thread-602222][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:50:43,346 [DEBUG][       Thread-602222][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:50:43,346 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:50:43,346 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:50:43,346 [DEBUG][       Thread-602222][   transport.py][1871] : userauth is OK
2025-07-01 10:50:43,370 [ INFO][       Thread-602222][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:50:43,370 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:50:43,994 [DEBUG][       Thread-602222][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:50:43,994 [DEBUG][       Thread-602222][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:50:44,037 [DEBUG][       Thread-602222][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:50:44,037 [DEBUG][       Thread-602222][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:50:44,040 [DEBUG][       Thread-602222][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:50:44,052 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:50:44,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:50:44,054 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:50:44,057 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:50:44,064 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:50:44,066 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:50:44,066 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:50:44,067 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:50:44,067 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.368348 -999.00   +9.80  35.65     56   +1.50 1 2 2 1 1   887    0 8.05 -8.06 ----- 35.6 35.6 25.0 44.7 12.9 -22.2 11.9 -23.1 11.3 -21.8 12.1 -20.2
2025-07-01 10:50:44,067 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:50:44,067 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:50:44,067 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.368348
2025-07-01 10:50:44,068 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:50:44,068 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:50:44,068 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:50:44,068 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:50:44,068 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:50:44,069 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:50:16', tmtdew=9.64, humidity=51.21, cloud=0.0, wind=34.16, temperature=9.79, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:50:25.267', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:50:44,069 [DEBUG][       Thread-602222][   transport.py][1871] : EOF in transport thread
2025-07-01 10:50:44,142 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:50:44,151 [DEBUG][       Thread-602225][   transport.py][1871] : starting thread (client mode): 0x82b2170
2025-07-01 10:50:44,151 [DEBUG][       Thread-602225][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:50:44,166 [DEBUG][       Thread-602225][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:50:44,166 [ INFO][       Thread-602225][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:50:44,173 [DEBUG][       Thread-602225][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:50:44,174 [DEBUG][       Thread-602225][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:50:44,174 [DEBUG][       Thread-602225][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:50:44,174 [DEBUG][       Thread-602225][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:50:44,174 [DEBUG][       Thread-602225][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:50:44,174 [DEBUG][       Thread-602225][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:50:44,174 [DEBUG][       Thread-602225][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:50:44,174 [DEBUG][       Thread-602225][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:50:44,174 [DEBUG][       Thread-602225][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:50:44,174 [DEBUG][       Thread-602225][   transport.py][1871] : client lang: <none>
2025-07-01 10:50:44,174 [DEBUG][       Thread-602225][   transport.py][1871] : server lang: <none>
2025-07-01 10:50:44,174 [DEBUG][       Thread-602225][   transport.py][1871] : kex follows: False
2025-07-01 10:50:44,174 [DEBUG][       Thread-602225][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:50:44,174 [DEBUG][       Thread-602225][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:50:44,174 [DEBUG][       Thread-602225][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:50:44,174 [DEBUG][       Thread-602225][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:50:44,174 [DEBUG][       Thread-602225][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:50:44,174 [DEBUG][       Thread-602225][   transport.py][1871] : Compression: none
2025-07-01 10:50:44,174 [DEBUG][       Thread-602225][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:50:44,230 [DEBUG][       Thread-602225][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:50:44,231 [DEBUG][       Thread-602225][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:50:44,232 [DEBUG][       Thread-602225][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:50:44,232 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:50:44,233 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:50:44,294 [DEBUG][       Thread-602225][   transport.py][1871] : userauth is OK
2025-07-01 10:50:44,294 [DEBUG][       Thread-602225][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:50:44,294 [DEBUG][       Thread-602225][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:50:44,294 [DEBUG][       Thread-602225][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:50:44,295 [DEBUG][       Thread-602225][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:50:44,313 [ INFO][       Thread-602225][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:50:44,314 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:50:44,314 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:50:45,305 [DEBUG][       Thread-602225][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:50:45,305 [DEBUG][       Thread-602225][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:50:45,356 [DEBUG][       Thread-602225][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:50:45,356 [DEBUG][       Thread-602225][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:50:45,366 [DEBUG][       Thread-602225][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:50:45,375 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:50:45,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-07-01 10:50:45,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-07-01 10:50:45,393 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:50:45,394 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:50:45,394 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:50:45,402 [DEBUG][       Thread-602225][   transport.py][1871] : EOF in transport thread
2025-07-01 10:50:50,864 [DEBUG][Thread-602227 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:50:55,396 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:50:55,397 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:50:55,397 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:50:55,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-07-01 10:50:55,884 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 50, 48), 9.64, 51.22, 0.0, 36.63, 9.79, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:50:55,884 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:50:48
2025-07-01 10:50:55,969 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:50:55,974 [DEBUG][       Thread-602228][   transport.py][1871] : starting thread (client mode): 0x75aa3b0
2025-07-01 10:50:55,974 [DEBUG][       Thread-602228][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:50:55,991 [DEBUG][       Thread-602228][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:50:55,991 [ INFO][       Thread-602228][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:50:55,995 [DEBUG][       Thread-602228][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:50:55,995 [DEBUG][       Thread-602228][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:50:55,995 [DEBUG][       Thread-602228][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:50:55,995 [DEBUG][       Thread-602228][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:50:55,995 [DEBUG][       Thread-602228][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:50:55,995 [DEBUG][       Thread-602228][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:50:55,995 [DEBUG][       Thread-602228][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:50:55,995 [DEBUG][       Thread-602228][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:50:55,995 [DEBUG][       Thread-602228][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:50:55,995 [DEBUG][       Thread-602228][   transport.py][1871] : client lang: <none>
2025-07-01 10:50:55,995 [DEBUG][       Thread-602228][   transport.py][1871] : server lang: <none>
2025-07-01 10:50:55,995 [DEBUG][       Thread-602228][   transport.py][1871] : kex follows: False
2025-07-01 10:50:55,995 [DEBUG][       Thread-602228][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:50:55,995 [DEBUG][       Thread-602228][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:50:55,995 [DEBUG][       Thread-602228][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:50:55,995 [DEBUG][       Thread-602228][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:50:55,995 [DEBUG][       Thread-602228][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:50:55,995 [DEBUG][       Thread-602228][   transport.py][1871] : Compression: none
2025-07-01 10:50:55,995 [DEBUG][       Thread-602228][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:50:56,010 [DEBUG][       Thread-602228][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:50:56,010 [DEBUG][       Thread-602228][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:50:56,011 [DEBUG][       Thread-602228][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:50:56,011 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:50:56,011 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:50:56,012 [DEBUG][       Thread-602228][   transport.py][1871] : userauth is OK
2025-07-01 10:50:56,025 [ INFO][       Thread-602228][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:50:56,026 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:50:56,667 [DEBUG][       Thread-602228][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:50:56,667 [DEBUG][       Thread-602228][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:50:56,709 [DEBUG][       Thread-602228][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:50:56,709 [DEBUG][       Thread-602228][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:50:56,712 [DEBUG][       Thread-602228][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:50:56,724 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:50:56,724 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:50:56,726 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:50:56,727 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:50:56,733 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:50:56,735 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:50:56,735 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:50:56,736 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:50:56,736 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.368348 -999.00   +9.80  35.65     56   +1.50 1 2 2 1 1   887    0 8.05 -8.06 ----- 35.6 35.6 25.0 44.7 12.9 -22.2 11.9 -23.1 11.3 -21.8 12.1 -20.2
2025-07-01 10:50:56,736 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:50:56,736 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:50:56,736 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.368348
2025-07-01 10:50:56,736 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:50:56,737 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:50:56,737 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:50:56,737 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:50:56,737 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:50:56,737 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:50:48', tmtdew=9.64, humidity=51.22, cloud=0.0, wind=36.63, temperature=9.79, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:50:25.267', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:50:56,738 [DEBUG][       Thread-602228][   transport.py][1871] : EOF in transport thread
2025-07-01 10:50:56,820 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:50:56,830 [DEBUG][       Thread-602231][   transport.py][1871] : starting thread (client mode): 0x818fd60
2025-07-01 10:50:56,830 [DEBUG][       Thread-602231][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:50:56,845 [DEBUG][       Thread-602231][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:50:56,845 [ INFO][       Thread-602231][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:50:56,853 [DEBUG][       Thread-602231][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:50:56,853 [DEBUG][       Thread-602231][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:50:56,854 [DEBUG][       Thread-602231][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:50:56,854 [DEBUG][       Thread-602231][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:50:56,854 [DEBUG][       Thread-602231][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:50:56,854 [DEBUG][       Thread-602231][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:50:56,854 [DEBUG][       Thread-602231][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:50:56,854 [DEBUG][       Thread-602231][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:50:56,854 [DEBUG][       Thread-602231][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:50:56,854 [DEBUG][       Thread-602231][   transport.py][1871] : client lang: <none>
2025-07-01 10:50:56,854 [DEBUG][       Thread-602231][   transport.py][1871] : server lang: <none>
2025-07-01 10:50:56,854 [DEBUG][       Thread-602231][   transport.py][1871] : kex follows: False
2025-07-01 10:50:56,854 [DEBUG][       Thread-602231][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:50:56,854 [DEBUG][       Thread-602231][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:50:56,854 [DEBUG][       Thread-602231][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:50:56,854 [DEBUG][       Thread-602231][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:50:56,854 [DEBUG][       Thread-602231][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:50:56,854 [DEBUG][       Thread-602231][   transport.py][1871] : Compression: none
2025-07-01 10:50:56,854 [DEBUG][       Thread-602231][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:50:56,910 [DEBUG][       Thread-602231][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:50:56,910 [DEBUG][       Thread-602231][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:50:56,911 [DEBUG][       Thread-602231][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:50:56,911 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:50:56,912 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:50:56,966 [DEBUG][       Thread-602231][   transport.py][1871] : userauth is OK
2025-07-01 10:50:56,967 [DEBUG][       Thread-602231][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:50:56,967 [DEBUG][       Thread-602231][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:50:56,967 [DEBUG][       Thread-602231][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:50:56,967 [DEBUG][       Thread-602231][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:50:56,985 [ INFO][       Thread-602231][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:50:56,986 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:50:56,986 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:50:57,973 [DEBUG][       Thread-602231][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:50:57,973 [DEBUG][       Thread-602231][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:50:58,024 [DEBUG][       Thread-602231][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:50:58,024 [DEBUG][       Thread-602231][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:50:58,033 [DEBUG][       Thread-602231][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:50:58,042 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:50:58,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-07-01 10:50:58,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-07-01 10:50:58,061 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:50:58,061 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:50:58,062 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:50:58,071 [DEBUG][       Thread-602231][   transport.py][1871] : EOF in transport thread
2025-07-01 10:50:59,886 [DEBUG][Thread-602233 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:51:02,605 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:51:02,606 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:51:08,072 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:51:08,072 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:51:08,072 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:51: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-07-01 10:51:08,573 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 50, 48), 9.64, 51.22, 0.0, 36.63, 9.79, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:51:08,573 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:50:48
2025-07-01 10:51:08,658 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:51:08,662 [DEBUG][       Thread-602234][   transport.py][1871] : starting thread (client mode): 0x75aace0
2025-07-01 10:51:08,662 [DEBUG][       Thread-602234][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:51:08,683 [DEBUG][       Thread-602234][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:51:08,683 [ INFO][       Thread-602234][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:51:08,686 [DEBUG][       Thread-602234][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:51:08,686 [DEBUG][       Thread-602234][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:51:08,686 [DEBUG][       Thread-602234][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:51:08,686 [DEBUG][       Thread-602234][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:51:08,686 [DEBUG][       Thread-602234][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:51:08,686 [DEBUG][       Thread-602234][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:51:08,686 [DEBUG][       Thread-602234][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:51:08,686 [DEBUG][       Thread-602234][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:51:08,686 [DEBUG][       Thread-602234][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:51:08,686 [DEBUG][       Thread-602234][   transport.py][1871] : client lang: <none>
2025-07-01 10:51:08,686 [DEBUG][       Thread-602234][   transport.py][1871] : server lang: <none>
2025-07-01 10:51:08,686 [DEBUG][       Thread-602234][   transport.py][1871] : kex follows: False
2025-07-01 10:51:08,686 [DEBUG][       Thread-602234][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:51:08,686 [DEBUG][       Thread-602234][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:51:08,686 [DEBUG][       Thread-602234][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:51:08,686 [DEBUG][       Thread-602234][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:51:08,686 [DEBUG][       Thread-602234][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:51:08,686 [DEBUG][       Thread-602234][   transport.py][1871] : Compression: none
2025-07-01 10:51:08,686 [DEBUG][       Thread-602234][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:51:08,694 [DEBUG][       Thread-602234][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:51:08,694 [DEBUG][       Thread-602234][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:51:08,694 [DEBUG][       Thread-602234][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:51:08,694 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:51:08,695 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:51:08,695 [DEBUG][       Thread-602234][   transport.py][1871] : userauth is OK
2025-07-01 10:51:08,719 [ INFO][       Thread-602234][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:51:08,720 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:51:08,930 [DEBUG][Thread-602236 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:51:09,347 [DEBUG][       Thread-602234][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:51:09,347 [DEBUG][       Thread-602234][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:51:09,389 [DEBUG][       Thread-602234][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:51:09,389 [DEBUG][       Thread-602234][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:51:09,392 [DEBUG][       Thread-602234][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:51:09,404 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:51:09,404 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:51:09,406 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:51:09,408 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:51:09,413 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:51:09,415 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:51:09,415 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:51:09,416 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:51:09,416 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.368348 -999.00   +9.80  35.65     56   +1.50 1 2 2 1 1   887    0 8.05 -8.06 ----- 35.6 35.6 25.0 44.7 12.9 -22.2 11.9 -23.1 11.3 -21.8 12.1 -20.2
2025-07-01 10:51:09,416 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:51:09,416 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:51:09,416 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.368348
2025-07-01 10:51:09,417 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:51:09,417 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:51:09,417 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:51:09,418 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:51:09,418 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:51:09,418 [DEBUG][       Thread-602234][   transport.py][1871] : EOF in transport thread
2025-07-01 10:51:09,418 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:50:48', tmtdew=9.64, humidity=51.22, cloud=0.0, wind=36.63, temperature=9.79, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:50:25.267', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:51:09,503 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:51:09,512 [DEBUG][       Thread-602238][   transport.py][1871] : starting thread (client mode): 0x8157a00
2025-07-01 10:51:09,512 [DEBUG][       Thread-602238][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:51:09,526 [DEBUG][       Thread-602238][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:51:09,527 [ INFO][       Thread-602238][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:51:09,534 [DEBUG][       Thread-602238][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:51:09,534 [DEBUG][       Thread-602238][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:51:09,534 [DEBUG][       Thread-602238][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:51:09,534 [DEBUG][       Thread-602238][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:51:09,534 [DEBUG][       Thread-602238][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:51:09,534 [DEBUG][       Thread-602238][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:51:09,534 [DEBUG][       Thread-602238][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:51:09,534 [DEBUG][       Thread-602238][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:51:09,534 [DEBUG][       Thread-602238][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:51:09,534 [DEBUG][       Thread-602238][   transport.py][1871] : client lang: <none>
2025-07-01 10:51:09,534 [DEBUG][       Thread-602238][   transport.py][1871] : server lang: <none>
2025-07-01 10:51:09,534 [DEBUG][       Thread-602238][   transport.py][1871] : kex follows: False
2025-07-01 10:51:09,534 [DEBUG][       Thread-602238][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:51:09,534 [DEBUG][       Thread-602238][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:51:09,534 [DEBUG][       Thread-602238][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:51:09,534 [DEBUG][       Thread-602238][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:51:09,534 [DEBUG][       Thread-602238][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:51:09,534 [DEBUG][       Thread-602238][   transport.py][1871] : Compression: none
2025-07-01 10:51:09,534 [DEBUG][       Thread-602238][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:51:09,589 [DEBUG][       Thread-602238][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:51:09,589 [DEBUG][       Thread-602238][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:51:09,589 [DEBUG][       Thread-602238][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:51:09,589 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:51:09,589 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:51:09,651 [DEBUG][       Thread-602238][   transport.py][1871] : userauth is OK
2025-07-01 10:51:09,651 [DEBUG][       Thread-602238][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:51:09,651 [DEBUG][       Thread-602238][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:51:09,651 [DEBUG][       Thread-602238][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:51:09,651 [DEBUG][       Thread-602238][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:51:09,665 [ INFO][       Thread-602238][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:51:09,665 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:51:09,666 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:51:10,681 [DEBUG][       Thread-602238][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:51:10,681 [DEBUG][       Thread-602238][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:51:10,731 [DEBUG][       Thread-602238][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:51:10,731 [DEBUG][       Thread-602238][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:51:10,740 [DEBUG][       Thread-602238][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:51:10,747 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:51:10,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-07-01 10:51:10,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-07-01 10:51:10,763 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:51:10,763 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:51:10,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:51:10,771 [DEBUG][       Thread-602238][   transport.py][1871] : EOF in transport thread
2025-07-01 10:51:17,952 [DEBUG][Thread-602240 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:51:20,772 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:51:20,772 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:51:20,772 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:51:20,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-07-01 10:51:21,289 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 50, 48), 9.64, 51.22, 0.0, 36.63, 9.79, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:51:21,289 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:50:48
2025-07-01 10:51:21,380 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:51:21,384 [DEBUG][       Thread-602241][   transport.py][1871] : starting thread (client mode): 0x8170850
2025-07-01 10:51:21,384 [DEBUG][       Thread-602241][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:51:21,404 [DEBUG][       Thread-602241][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:51:21,404 [ INFO][       Thread-602241][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:51:21,408 [DEBUG][       Thread-602241][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:51:21,408 [DEBUG][       Thread-602241][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:51:21,408 [DEBUG][       Thread-602241][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:51:21,408 [DEBUG][       Thread-602241][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:51:21,408 [DEBUG][       Thread-602241][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:51:21,408 [DEBUG][       Thread-602241][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:51:21,408 [DEBUG][       Thread-602241][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:51:21,408 [DEBUG][       Thread-602241][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:51:21,408 [DEBUG][       Thread-602241][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:51:21,408 [DEBUG][       Thread-602241][   transport.py][1871] : client lang: <none>
2025-07-01 10:51:21,408 [DEBUG][       Thread-602241][   transport.py][1871] : server lang: <none>
2025-07-01 10:51:21,408 [DEBUG][       Thread-602241][   transport.py][1871] : kex follows: False
2025-07-01 10:51:21,408 [DEBUG][       Thread-602241][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:51:21,408 [DEBUG][       Thread-602241][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:51:21,408 [DEBUG][       Thread-602241][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:51:21,408 [DEBUG][       Thread-602241][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:51:21,408 [DEBUG][       Thread-602241][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:51:21,408 [DEBUG][       Thread-602241][   transport.py][1871] : Compression: none
2025-07-01 10:51:21,408 [DEBUG][       Thread-602241][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:51:21,422 [DEBUG][       Thread-602241][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:51:21,422 [DEBUG][       Thread-602241][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:51:21,422 [DEBUG][       Thread-602241][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:51:21,422 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:51:21,422 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:51:21,423 [DEBUG][       Thread-602241][   transport.py][1871] : userauth is OK
2025-07-01 10:51:21,446 [ INFO][       Thread-602241][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:51:21,447 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:51:22,097 [DEBUG][       Thread-602241][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:51:22,097 [DEBUG][       Thread-602241][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:51:22,141 [DEBUG][       Thread-602241][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:51:22,141 [DEBUG][       Thread-602241][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:51:22,145 [DEBUG][       Thread-602241][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:51:22,155 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:51:22,156 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:51:22,158 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:51:22,159 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:51:22,165 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:51:22,167 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:51:22,167 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:51:22,168 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:51:22,168 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.368696 -999.00   +9.70  32.10     55   +1.30 1 2 2 1 1   887    0 8.16 -5.20 ----- 32.1 32.1 40.0 51.0 12.9 -21.9 11.9 -23.1 11.4 -21.3 12.2 -20.0
2025-07-01 10:51:22,168 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:51:22,168 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:51:22,168 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.368696
2025-07-01 10:51:22,169 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:51:22,169 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:51:22,169 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:51:22,169 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:51:22,169 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:51:22,170 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:50:48', tmtdew=9.64, humidity=51.22, cloud=0.0, wind=36.63, temperature=9.79, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:50:55.334', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:51:22,171 [DEBUG][       Thread-602241][   transport.py][1871] : EOF in transport thread
2025-07-01 10:51:22,253 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:51:22,264 [DEBUG][       Thread-602244][   transport.py][1871] : starting thread (client mode): 0x81e5390
2025-07-01 10:51:22,264 [DEBUG][       Thread-602244][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:51:22,279 [DEBUG][       Thread-602244][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:51:22,279 [ INFO][       Thread-602244][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:51:22,286 [DEBUG][       Thread-602244][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:51:22,287 [DEBUG][       Thread-602244][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:51:22,287 [DEBUG][       Thread-602244][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:51:22,287 [DEBUG][       Thread-602244][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:51:22,287 [DEBUG][       Thread-602244][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:51:22,287 [DEBUG][       Thread-602244][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:51:22,287 [DEBUG][       Thread-602244][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:51:22,287 [DEBUG][       Thread-602244][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:51:22,287 [DEBUG][       Thread-602244][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:51:22,287 [DEBUG][       Thread-602244][   transport.py][1871] : client lang: <none>
2025-07-01 10:51:22,287 [DEBUG][       Thread-602244][   transport.py][1871] : server lang: <none>
2025-07-01 10:51:22,287 [DEBUG][       Thread-602244][   transport.py][1871] : kex follows: False
2025-07-01 10:51:22,287 [DEBUG][       Thread-602244][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:51:22,287 [DEBUG][       Thread-602244][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:51:22,287 [DEBUG][       Thread-602244][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:51:22,287 [DEBUG][       Thread-602244][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:51:22,287 [DEBUG][       Thread-602244][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:51:22,287 [DEBUG][       Thread-602244][   transport.py][1871] : Compression: none
2025-07-01 10:51:22,287 [DEBUG][       Thread-602244][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:51:22,347 [DEBUG][       Thread-602244][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:51:22,347 [DEBUG][       Thread-602244][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:51:22,348 [DEBUG][       Thread-602244][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:51:22,348 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:51:22,349 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:51:22,407 [DEBUG][       Thread-602244][   transport.py][1871] : userauth is OK
2025-07-01 10:51:22,407 [DEBUG][       Thread-602244][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:51:22,407 [DEBUG][       Thread-602244][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:51:22,407 [DEBUG][       Thread-602244][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:51:22,407 [DEBUG][       Thread-602244][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:51:22,426 [ INFO][       Thread-602244][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:51:22,426 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:51:22,427 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:51:23,406 [DEBUG][       Thread-602244][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:51:23,406 [DEBUG][       Thread-602244][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:51:23,457 [DEBUG][       Thread-602244][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:51:23,458 [DEBUG][       Thread-602244][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:51:23,471 [DEBUG][       Thread-602244][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:51:23,480 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:51:23,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-07-01 10:51:23,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-07-01 10:51:23,498 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:51:23,498 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:51:23,499 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:51:23,507 [DEBUG][       Thread-602244][   transport.py][1871] : EOF in transport thread
2025-07-01 10:51:24,307 [DEBUG][Thread-602246 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:51:26,977 [DEBUG][Thread-602247 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:51:33,509 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:51:33,510 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:51:33,510 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:51:33,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-07-01 10:51:34,004 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 51, 19), 9.77, 50.66, 0.0, 28.58, 9.84, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:51:34,004 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:51:19
2025-07-01 10:51:34,089 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:51:34,093 [DEBUG][       Thread-602248][   transport.py][1871] : starting thread (client mode): 0x8171360
2025-07-01 10:51:34,094 [DEBUG][       Thread-602248][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:51:34,115 [DEBUG][       Thread-602248][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:51:34,115 [ INFO][       Thread-602248][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:51:34,118 [DEBUG][       Thread-602248][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:51:34,118 [DEBUG][       Thread-602248][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:51:34,118 [DEBUG][       Thread-602248][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:51:34,118 [DEBUG][       Thread-602248][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:51:34,118 [DEBUG][       Thread-602248][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:51:34,118 [DEBUG][       Thread-602248][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:51:34,118 [DEBUG][       Thread-602248][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:51:34,119 [DEBUG][       Thread-602248][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:51:34,119 [DEBUG][       Thread-602248][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:51:34,119 [DEBUG][       Thread-602248][   transport.py][1871] : client lang: <none>
2025-07-01 10:51:34,119 [DEBUG][       Thread-602248][   transport.py][1871] : server lang: <none>
2025-07-01 10:51:34,119 [DEBUG][       Thread-602248][   transport.py][1871] : kex follows: False
2025-07-01 10:51:34,119 [DEBUG][       Thread-602248][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:51:34,119 [DEBUG][       Thread-602248][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:51:34,119 [DEBUG][       Thread-602248][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:51:34,119 [DEBUG][       Thread-602248][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:51:34,119 [DEBUG][       Thread-602248][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:51:34,119 [DEBUG][       Thread-602248][   transport.py][1871] : Compression: none
2025-07-01 10:51:34,119 [DEBUG][       Thread-602248][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:51:34,127 [DEBUG][       Thread-602248][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:51:34,128 [DEBUG][       Thread-602248][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:51:34,128 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:51:34,129 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:51:34,129 [DEBUG][       Thread-602248][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:51:34,130 [DEBUG][       Thread-602248][   transport.py][1871] : userauth is OK
2025-07-01 10:51:34,143 [ INFO][       Thread-602248][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:51:34,143 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:51:34,767 [DEBUG][       Thread-602248][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:51:34,767 [DEBUG][       Thread-602248][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:51:34,809 [DEBUG][       Thread-602248][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:51:34,809 [DEBUG][       Thread-602248][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:51:34,812 [DEBUG][       Thread-602248][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:51:34,826 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:51:34,826 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:51:34,828 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:51:34,830 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:51:34,836 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:51:34,838 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:51:34,838 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:51:34,839 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:51:34,839 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.368696 -999.00   +9.70  32.10     55   +1.30 1 2 2 1 1   887    0 8.16 -5.20 ----- 32.1 32.1 40.0 51.0 12.9 -21.9 11.9 -23.1 11.4 -21.3 12.2 -20.0
2025-07-01 10:51:34,839 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:51:34,839 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:51:34,839 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.368696
2025-07-01 10:51:34,840 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:51:34,840 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:51:34,840 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:51:34,840 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:51:34,840 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:51:34,840 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:51:19', tmtdew=9.77, humidity=50.66, cloud=0.0, wind=28.58, temperature=9.84, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:50:55.334', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:51:34,841 [DEBUG][       Thread-602248][   transport.py][1871] : EOF in transport thread
2025-07-01 10:51:34,925 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:51:35,999 [DEBUG][Thread-602251 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:51:45,043 [DEBUG][Thread-602252 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:51:54,062 [DEBUG][Thread-602253 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:52:02,744 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:52:02,745 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:52:03,085 [DEBUG][Thread-602254 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:52:12,106 [DEBUG][Thread-602255 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:52:21,129 [DEBUG][Thread-602256 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:52:24,354 [DEBUG][Thread-602257 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:52:30,148 [DEBUG][Thread-602258 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:52:39,168 [DEBUG][Thread-602259 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:52:48,191 [DEBUG][Thread-602260 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:52:57,213 [DEBUG][Thread-602261 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:53:02,883 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:53:02,884 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:53:06,232 [DEBUG][Thread-602262 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:53:15,250 [DEBUG][Thread-602263 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:53:24,271 [DEBUG][Thread-602264 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:53:24,406 [DEBUG][Thread-602265 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:53:33,293 [DEBUG][Thread-602266 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:53:42,316 [DEBUG][Thread-602267 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:53:44,852 [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-07-01 10:53:51,337 [DEBUG][Thread-602268 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:53:54,862 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:53:54,863 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:53:54,863 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:53:54,866 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:53:55,386 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 53, 27), 9.79, 50.59, 0.0, 33.12, 9.87, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:53:55,387 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:53:27
2025-07-01 10:53:55,473 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:53:55,477 [DEBUG][       Thread-602269][   transport.py][1871] : starting thread (client mode): 0x8106d70
2025-07-01 10:53:55,477 [DEBUG][       Thread-602269][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:53:55,500 [DEBUG][       Thread-602269][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:53:55,500 [ INFO][       Thread-602269][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:53:55,504 [DEBUG][       Thread-602269][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:53:55,504 [DEBUG][       Thread-602269][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:53:55,504 [DEBUG][       Thread-602269][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:53:55,504 [DEBUG][       Thread-602269][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:53:55,504 [DEBUG][       Thread-602269][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:53:55,504 [DEBUG][       Thread-602269][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:53:55,504 [DEBUG][       Thread-602269][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:53:55,504 [DEBUG][       Thread-602269][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:53:55,504 [DEBUG][       Thread-602269][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:53:55,504 [DEBUG][       Thread-602269][   transport.py][1871] : client lang: <none>
2025-07-01 10:53:55,504 [DEBUG][       Thread-602269][   transport.py][1871] : server lang: <none>
2025-07-01 10:53:55,504 [DEBUG][       Thread-602269][   transport.py][1871] : kex follows: False
2025-07-01 10:53:55,504 [DEBUG][       Thread-602269][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:53:55,504 [DEBUG][       Thread-602269][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:53:55,505 [DEBUG][       Thread-602269][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:53:55,505 [DEBUG][       Thread-602269][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:53:55,505 [DEBUG][       Thread-602269][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:53:55,505 [DEBUG][       Thread-602269][   transport.py][1871] : Compression: none
2025-07-01 10:53:55,505 [DEBUG][       Thread-602269][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:53:55,522 [DEBUG][       Thread-602269][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:53:55,522 [DEBUG][       Thread-602269][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:53:55,523 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:53:55,523 [DEBUG][       Thread-602269][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:53:55,523 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:53:55,525 [DEBUG][       Thread-602269][   transport.py][1871] : userauth is OK
2025-07-01 10:53:55,549 [ INFO][       Thread-602269][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:53:55,550 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:53:56,168 [DEBUG][       Thread-602269][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:53:56,169 [DEBUG][       Thread-602269][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:53:56,213 [DEBUG][       Thread-602269][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:53:56,213 [DEBUG][       Thread-602269][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:53:56,216 [DEBUG][       Thread-602269][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:53:56,230 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:53:56,231 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:53:56,233 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:53:56,234 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:53:56,240 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:53:56,241 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:53:56,242 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:53:56,242 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:53:56,242 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.370432 -999.00   +9.50  41.78     55   +1.00 1 2 2 1 1   887    0 8.61 7.31 ----- 41.8 41.8 37.0 46.4 13.3 -21.2 12.2 -22.5 11.6 -21.2 12.5 -19.2
2025-07-01 10:53:56,242 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:53:56,243 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:53:56,243 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.370432
2025-07-01 10:53:56,243 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:53:56,243 [DEBUG][       Thread-602269][   transport.py][1871] : EOF in transport thread
2025-07-01 10:53:56,244 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:53:56,244 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:53:56,244 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:53:56,244 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:53:56,245 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:53:27', tmtdew=9.79, humidity=50.59, cloud=0.0, wind=33.12, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:53:25.325', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:53:56,329 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:54:00,359 [DEBUG][Thread-602272 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:54:03,022 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:54:03,023 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:54:09,383 [DEBUG][Thread-602273 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:54:18,403 [DEBUG][Thread-602274 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:54:24,454 [DEBUG][Thread-602275 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:54:27,425 [DEBUG][Thread-602276 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:54:36,447 [DEBUG][Thread-602277 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:54:45,468 [DEBUG][Thread-602278 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:54:54,491 [DEBUG][Thread-602279 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:55:03,161 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:55:03,162 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:55:03,509 [DEBUG][Thread-602280 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:55:12,529 [DEBUG][Thread-602281 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:55:21,550 [DEBUG][Thread-602282 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:55:24,514 [DEBUG][Thread-602283 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:55:30,575 [DEBUG][Thread-602284 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:55:39,593 [DEBUG][Thread-602285 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:55:48,613 [DEBUG][Thread-602286 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:55:57,638 [DEBUG][Thread-602287 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:56:03,301 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:56:03,302 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:56:06,164 [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-07-01 10:56:06,659 [DEBUG][Thread-602288 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:56:15,677 [DEBUG][Thread-602289 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:56:16,172 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:56:16,172 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:56:16,172 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:56:16,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-07-01 10:56:16,717 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 56, 5), 9.88, 50.34, 0.0, 38.09, 10.09, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:56:16,717 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:56:05
2025-07-01 10:56:16,809 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:56:16,814 [DEBUG][       Thread-602290][   transport.py][1871] : starting thread (client mode): 0x81d8190
2025-07-01 10:56:16,814 [DEBUG][       Thread-602290][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:56:16,831 [DEBUG][       Thread-602290][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:56:16,831 [ INFO][       Thread-602290][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:56:16,834 [DEBUG][       Thread-602290][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:56:16,834 [DEBUG][       Thread-602290][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:56:16,834 [DEBUG][       Thread-602290][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:56:16,834 [DEBUG][       Thread-602290][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:56:16,834 [DEBUG][       Thread-602290][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:56:16,834 [DEBUG][       Thread-602290][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:56:16,834 [DEBUG][       Thread-602290][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:56:16,834 [DEBUG][       Thread-602290][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:56:16,834 [DEBUG][       Thread-602290][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:56:16,834 [DEBUG][       Thread-602290][   transport.py][1871] : client lang: <none>
2025-07-01 10:56:16,834 [DEBUG][       Thread-602290][   transport.py][1871] : server lang: <none>
2025-07-01 10:56:16,834 [DEBUG][       Thread-602290][   transport.py][1871] : kex follows: False
2025-07-01 10:56:16,834 [DEBUG][       Thread-602290][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:56:16,834 [DEBUG][       Thread-602290][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:56:16,834 [DEBUG][       Thread-602290][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:56:16,834 [DEBUG][       Thread-602290][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:56:16,834 [DEBUG][       Thread-602290][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:56:16,834 [DEBUG][       Thread-602290][   transport.py][1871] : Compression: none
2025-07-01 10:56:16,834 [DEBUG][       Thread-602290][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:56:16,849 [DEBUG][       Thread-602290][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:56:16,849 [DEBUG][       Thread-602290][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:56:16,849 [DEBUG][       Thread-602290][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:56:16,849 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:56:16,849 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:56:16,850 [DEBUG][       Thread-602290][   transport.py][1871] : userauth is OK
2025-07-01 10:56:16,873 [ INFO][       Thread-602290][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:56:16,873 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:56:17,688 [DEBUG][       Thread-602290][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:56:17,688 [DEBUG][       Thread-602290][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:56:17,728 [DEBUG][       Thread-602290][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:56:17,729 [DEBUG][       Thread-602290][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:56:17,731 [DEBUG][       Thread-602290][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:56:17,742 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:56:17,742 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:56:17,744 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:56:17,745 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:56:17,748 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:56:17,749 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:56:17,749 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:56:17,749 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:56:17,749 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.371821 -999.00   +9.90  37.47     55   +1.40 1 2 2 1 1   887    0 8.71 12.68 ----- 37.5 37.5 31.4 49.2 13.6 -21.8 12.4 -22.5 11.8 -20.4 12.8 -19.2
2025-07-01 10:56:17,749 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:56:17,749 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:56:17,749 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.371821
2025-07-01 10:56:17,749 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:56:17,749 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:56:17,749 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:56:17,749 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:56:17,749 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:56:17,749 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:56:05', tmtdew=9.88, humidity=50.34, cloud=0.0, wind=38.09, temperature=10.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:55:25.334', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:56:17,750 [DEBUG][       Thread-602290][   transport.py][1871] : EOF in transport thread
2025-07-01 10:56:17,822 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:56:17,832 [DEBUG][       Thread-602293][   transport.py][1871] : starting thread (client mode): 0x818df30
2025-07-01 10:56:17,832 [DEBUG][       Thread-602293][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:56:17,847 [DEBUG][       Thread-602293][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:56:17,847 [ INFO][       Thread-602293][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:56:17,855 [DEBUG][       Thread-602293][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:56:17,855 [DEBUG][       Thread-602293][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:56:17,855 [DEBUG][       Thread-602293][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:56:17,855 [DEBUG][       Thread-602293][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:56:17,855 [DEBUG][       Thread-602293][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:56:17,855 [DEBUG][       Thread-602293][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:56:17,855 [DEBUG][       Thread-602293][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:56:17,855 [DEBUG][       Thread-602293][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:56:17,855 [DEBUG][       Thread-602293][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:56:17,855 [DEBUG][       Thread-602293][   transport.py][1871] : client lang: <none>
2025-07-01 10:56:17,855 [DEBUG][       Thread-602293][   transport.py][1871] : server lang: <none>
2025-07-01 10:56:17,855 [DEBUG][       Thread-602293][   transport.py][1871] : kex follows: False
2025-07-01 10:56:17,855 [DEBUG][       Thread-602293][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:56:17,855 [DEBUG][       Thread-602293][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:56:17,855 [DEBUG][       Thread-602293][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:56:17,855 [DEBUG][       Thread-602293][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:56:17,855 [DEBUG][       Thread-602293][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:56:17,855 [DEBUG][       Thread-602293][   transport.py][1871] : Compression: none
2025-07-01 10:56:17,855 [DEBUG][       Thread-602293][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:56:17,913 [DEBUG][       Thread-602293][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:56:17,913 [DEBUG][       Thread-602293][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:56:17,914 [DEBUG][       Thread-602293][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:56:17,914 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:56:17,914 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:56:17,970 [DEBUG][       Thread-602293][   transport.py][1871] : userauth is OK
2025-07-01 10:56:17,970 [DEBUG][       Thread-602293][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:56:17,970 [DEBUG][       Thread-602293][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:56:17,970 [DEBUG][       Thread-602293][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:56:17,970 [DEBUG][       Thread-602293][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:56:17,986 [ INFO][       Thread-602293][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:56:17,986 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:56:17,986 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:56:18,999 [DEBUG][       Thread-602293][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:56:18,999 [DEBUG][       Thread-602293][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:56:19,047 [DEBUG][       Thread-602293][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:56:19,047 [DEBUG][       Thread-602293][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:56:19,056 [DEBUG][       Thread-602293][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:56:19,064 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:56:19,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-07-01 10:56:19,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-07-01 10:56:19,096 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:56:19,096 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:56:19,096 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:56:19,105 [DEBUG][       Thread-602293][   transport.py][1871] : EOF in transport thread
2025-07-01 10:56:24,567 [DEBUG][Thread-602295 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:56:24,698 [DEBUG][Thread-602296 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:56:29,106 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:56:29,107 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:56:29,107 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:56:29,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-07-01 10:56:29,621 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 56, 5), 9.88, 50.34, 0.0, 38.09, 10.09, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:56:29,621 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:56:05
2025-07-01 10:56:29,708 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:56:29,714 [DEBUG][       Thread-602297][   transport.py][1871] : starting thread (client mode): 0x75ab730
2025-07-01 10:56:29,714 [DEBUG][       Thread-602297][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:56:29,729 [DEBUG][       Thread-602297][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:56:29,729 [ INFO][       Thread-602297][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:56:29,732 [DEBUG][       Thread-602297][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:56:29,732 [DEBUG][       Thread-602297][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:56:29,732 [DEBUG][       Thread-602297][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:56:29,732 [DEBUG][       Thread-602297][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:56:29,732 [DEBUG][       Thread-602297][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:56:29,732 [DEBUG][       Thread-602297][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:56:29,732 [DEBUG][       Thread-602297][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:56:29,732 [DEBUG][       Thread-602297][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:56:29,732 [DEBUG][       Thread-602297][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:56:29,732 [DEBUG][       Thread-602297][   transport.py][1871] : client lang: <none>
2025-07-01 10:56:29,732 [DEBUG][       Thread-602297][   transport.py][1871] : server lang: <none>
2025-07-01 10:56:29,732 [DEBUG][       Thread-602297][   transport.py][1871] : kex follows: False
2025-07-01 10:56:29,732 [DEBUG][       Thread-602297][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:56:29,732 [DEBUG][       Thread-602297][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:56:29,732 [DEBUG][       Thread-602297][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:56:29,732 [DEBUG][       Thread-602297][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:56:29,732 [DEBUG][       Thread-602297][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:56:29,732 [DEBUG][       Thread-602297][   transport.py][1871] : Compression: none
2025-07-01 10:56:29,732 [DEBUG][       Thread-602297][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:56:29,749 [DEBUG][       Thread-602297][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:56:29,750 [DEBUG][       Thread-602297][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:56:29,750 [DEBUG][       Thread-602297][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:56:29,751 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:56:29,751 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:56:29,752 [DEBUG][       Thread-602297][   transport.py][1871] : userauth is OK
2025-07-01 10:56:29,778 [ INFO][       Thread-602297][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:56:29,779 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:56:30,413 [DEBUG][       Thread-602297][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:56:30,413 [DEBUG][       Thread-602297][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:56:30,457 [DEBUG][       Thread-602297][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:56:30,457 [DEBUG][       Thread-602297][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:56:30,461 [DEBUG][       Thread-602297][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:56:30,472 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:56:30,472 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:56:30,474 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:56:30,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:56:30,481 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:56:30,483 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:56:30,483 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:56:30,484 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:56:30,484 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.372168 -999.00  +10.00  35.94     55   +1.40 1 2 2 1 1   887    0 8.68 11.68 ----- 35.9 35.9 43.2 42.9 13.7 -21.1 12.6 -22.1 11.9 -19.9 12.9 -18.9
2025-07-01 10:56:30,484 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:56:30,484 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:56:30,484 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.372168
2025-07-01 10:56:30,484 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:56:30,485 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:56:30,485 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:56:30,485 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:56:30,485 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:56:30,485 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:56:05', tmtdew=9.88, humidity=50.34, cloud=0.0, wind=38.09, temperature=10.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:55:55.315', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:56:30,486 [DEBUG][       Thread-602297][   transport.py][1871] : EOF in transport thread
2025-07-01 10:56:30,569 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:56:30,584 [DEBUG][       Thread-602300][   transport.py][1871] : starting thread (client mode): 0x8104b80
2025-07-01 10:56:30,584 [DEBUG][       Thread-602300][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:56:30,600 [DEBUG][       Thread-602300][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:56:30,600 [ INFO][       Thread-602300][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:56:30,607 [DEBUG][       Thread-602300][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:56:30,608 [DEBUG][       Thread-602300][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:56:30,608 [DEBUG][       Thread-602300][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:56:30,608 [DEBUG][       Thread-602300][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:56:30,608 [DEBUG][       Thread-602300][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:56:30,608 [DEBUG][       Thread-602300][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:56:30,608 [DEBUG][       Thread-602300][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:56:30,608 [DEBUG][       Thread-602300][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:56:30,608 [DEBUG][       Thread-602300][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:56:30,608 [DEBUG][       Thread-602300][   transport.py][1871] : client lang: <none>
2025-07-01 10:56:30,608 [DEBUG][       Thread-602300][   transport.py][1871] : server lang: <none>
2025-07-01 10:56:30,608 [DEBUG][       Thread-602300][   transport.py][1871] : kex follows: False
2025-07-01 10:56:30,608 [DEBUG][       Thread-602300][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:56:30,608 [DEBUG][       Thread-602300][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:56:30,609 [DEBUG][       Thread-602300][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:56:30,609 [DEBUG][       Thread-602300][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:56:30,609 [DEBUG][       Thread-602300][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:56:30,609 [DEBUG][       Thread-602300][   transport.py][1871] : Compression: none
2025-07-01 10:56:30,609 [DEBUG][       Thread-602300][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:56:30,667 [DEBUG][       Thread-602300][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:56:30,668 [DEBUG][       Thread-602300][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:56:30,668 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:56:30,669 [DEBUG][       Thread-602300][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:56:30,669 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:56:30,723 [DEBUG][       Thread-602300][   transport.py][1871] : userauth is OK
2025-07-01 10:56:30,723 [DEBUG][       Thread-602300][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:56:30,723 [DEBUG][       Thread-602300][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:56:30,723 [DEBUG][       Thread-602300][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:56:30,723 [DEBUG][       Thread-602300][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:56:30,742 [ INFO][       Thread-602300][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:56:30,743 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:56:30,743 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:56:31,737 [DEBUG][       Thread-602300][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:56:31,737 [DEBUG][       Thread-602300][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:56:31,788 [DEBUG][       Thread-602300][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:56:31,788 [DEBUG][       Thread-602300][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:56:31,798 [DEBUG][       Thread-602300][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:56:31,807 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:56:31,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-07-01 10:56:31,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-07-01 10:56:31,827 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:56:31,827 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:56:31,828 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:56:31,839 [DEBUG][       Thread-602300][   transport.py][1871] : EOF in transport thread
2025-07-01 10:56:33,732 [DEBUG][Thread-602302 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:56:41,836 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:56:41,836 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:56:41,836 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:56:41,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-07-01 10:56:42,339 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 56, 37), 9.85, 50.43, 0.0, 31.9, 10.13, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:56:42,339 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:56:37
2025-07-01 10:56:42,426 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:56:42,430 [DEBUG][       Thread-602303][   transport.py][1871] : starting thread (client mode): 0x8155720
2025-07-01 10:56:42,430 [DEBUG][       Thread-602303][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:56:42,451 [DEBUG][       Thread-602303][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:56:42,451 [ INFO][       Thread-602303][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:56:42,454 [DEBUG][       Thread-602303][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:56:42,454 [DEBUG][       Thread-602303][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:56:42,454 [DEBUG][       Thread-602303][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:56:42,454 [DEBUG][       Thread-602303][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:56:42,454 [DEBUG][       Thread-602303][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:56:42,454 [DEBUG][       Thread-602303][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:56:42,454 [DEBUG][       Thread-602303][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:56:42,454 [DEBUG][       Thread-602303][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:56:42,454 [DEBUG][       Thread-602303][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:56:42,454 [DEBUG][       Thread-602303][   transport.py][1871] : client lang: <none>
2025-07-01 10:56:42,454 [DEBUG][       Thread-602303][   transport.py][1871] : server lang: <none>
2025-07-01 10:56:42,454 [DEBUG][       Thread-602303][   transport.py][1871] : kex follows: False
2025-07-01 10:56:42,454 [DEBUG][       Thread-602303][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:56:42,454 [DEBUG][       Thread-602303][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:56:42,454 [DEBUG][       Thread-602303][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:56:42,454 [DEBUG][       Thread-602303][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:56:42,454 [DEBUG][       Thread-602303][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:56:42,454 [DEBUG][       Thread-602303][   transport.py][1871] : Compression: none
2025-07-01 10:56:42,454 [DEBUG][       Thread-602303][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:56:42,470 [DEBUG][       Thread-602303][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:56:42,470 [DEBUG][       Thread-602303][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:56:42,471 [DEBUG][       Thread-602303][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:56:42,471 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:56:42,471 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:56:42,472 [DEBUG][       Thread-602303][   transport.py][1871] : userauth is OK
2025-07-01 10:56:42,485 [ INFO][       Thread-602303][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:56:42,486 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:56:42,753 [DEBUG][Thread-602305 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:56:43,329 [DEBUG][       Thread-602303][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:56:43,329 [DEBUG][       Thread-602303][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:56:43,373 [DEBUG][       Thread-602303][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:56:43,373 [DEBUG][       Thread-602303][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:56:43,375 [DEBUG][       Thread-602303][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:56:43,387 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:56:43,387 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:56:43,389 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:56:43,391 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:56:43,395 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:56:43,397 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:56:43,397 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:56:43,398 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:56:43,398 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.372168 -999.00  +10.00  35.94     55   +1.40 1 2 2 1 1   887    0 8.68 11.68 ----- 35.9 35.9 43.2 42.9 13.7 -21.1 12.6 -22.1 11.9 -19.9 12.9 -18.9
2025-07-01 10:56:43,398 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:56:43,398 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:56:43,398 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.372168
2025-07-01 10:56:43,398 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:56:43,399 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:56:43,399 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:56:43,399 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:56:43,399 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:56:43,399 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:56:37', tmtdew=9.85, humidity=50.43, cloud=0.0, wind=31.9, temperature=10.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:55:55.315', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:56:43,399 [DEBUG][       Thread-602303][   transport.py][1871] : EOF in transport thread
2025-07-01 10:56:43,487 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:56:43,496 [DEBUG][       Thread-602307][   transport.py][1871] : starting thread (client mode): 0x827ec50
2025-07-01 10:56:43,496 [DEBUG][       Thread-602307][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:56:43,511 [DEBUG][       Thread-602307][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:56:43,511 [ INFO][       Thread-602307][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:56:43,519 [DEBUG][       Thread-602307][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:56:43,519 [DEBUG][       Thread-602307][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:56:43,519 [DEBUG][       Thread-602307][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:56:43,519 [DEBUG][       Thread-602307][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:56:43,519 [DEBUG][       Thread-602307][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:56:43,519 [DEBUG][       Thread-602307][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:56:43,519 [DEBUG][       Thread-602307][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:56:43,519 [DEBUG][       Thread-602307][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:56:43,519 [DEBUG][       Thread-602307][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:56:43,519 [DEBUG][       Thread-602307][   transport.py][1871] : client lang: <none>
2025-07-01 10:56:43,519 [DEBUG][       Thread-602307][   transport.py][1871] : server lang: <none>
2025-07-01 10:56:43,520 [DEBUG][       Thread-602307][   transport.py][1871] : kex follows: False
2025-07-01 10:56:43,520 [DEBUG][       Thread-602307][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:56:43,520 [DEBUG][       Thread-602307][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:56:43,520 [DEBUG][       Thread-602307][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:56:43,520 [DEBUG][       Thread-602307][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:56:43,520 [DEBUG][       Thread-602307][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:56:43,520 [DEBUG][       Thread-602307][   transport.py][1871] : Compression: none
2025-07-01 10:56:43,520 [DEBUG][       Thread-602307][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:56:43,579 [DEBUG][       Thread-602307][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:56:43,579 [DEBUG][       Thread-602307][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:56:43,580 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:56:43,581 [DEBUG][       Thread-602307][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:56:43,581 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:56:43,635 [DEBUG][       Thread-602307][   transport.py][1871] : userauth is OK
2025-07-01 10:56:43,635 [DEBUG][       Thread-602307][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:56:43,635 [DEBUG][       Thread-602307][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:56:43,635 [DEBUG][       Thread-602307][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:56:43,635 [DEBUG][       Thread-602307][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:56:43,654 [ INFO][       Thread-602307][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:56:43,654 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:56:43,655 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:56:44,691 [DEBUG][       Thread-602307][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:56:44,691 [DEBUG][       Thread-602307][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:56:44,740 [DEBUG][       Thread-602307][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:56:44,740 [DEBUG][       Thread-602307][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:56:44,749 [DEBUG][       Thread-602307][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:56:44,758 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:56:44,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-07-01 10:56:44,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-07-01 10:56:44,778 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:56:44,779 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:56:44,779 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:56:44,787 [DEBUG][       Thread-602307][   transport.py][1871] : EOF in transport thread
2025-07-01 10:56:51,773 [DEBUG][Thread-602309 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:56:54,790 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:56:54,790 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:56:54,790 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:56:54,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-07-01 10:56:55,324 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 56, 37), 9.85, 50.43, 0.0, 31.9, 10.13, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:56:55,324 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:56:37
2025-07-01 10:56:55,413 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:56:55,418 [DEBUG][       Thread-602310][   transport.py][1871] : starting thread (client mode): 0x75a94e0
2025-07-01 10:56:55,418 [DEBUG][       Thread-602310][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:56:55,439 [DEBUG][       Thread-602310][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:56:55,439 [ INFO][       Thread-602310][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:56:55,441 [DEBUG][       Thread-602310][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:56:55,441 [DEBUG][       Thread-602310][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:56:55,441 [DEBUG][       Thread-602310][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:56:55,441 [DEBUG][       Thread-602310][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:56:55,441 [DEBUG][       Thread-602310][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:56:55,441 [DEBUG][       Thread-602310][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:56:55,441 [DEBUG][       Thread-602310][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:56:55,441 [DEBUG][       Thread-602310][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:56:55,441 [DEBUG][       Thread-602310][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:56:55,441 [DEBUG][       Thread-602310][   transport.py][1871] : client lang: <none>
2025-07-01 10:56:55,441 [DEBUG][       Thread-602310][   transport.py][1871] : server lang: <none>
2025-07-01 10:56:55,441 [DEBUG][       Thread-602310][   transport.py][1871] : kex follows: False
2025-07-01 10:56:55,441 [DEBUG][       Thread-602310][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:56:55,441 [DEBUG][       Thread-602310][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:56:55,441 [DEBUG][       Thread-602310][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:56:55,441 [DEBUG][       Thread-602310][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:56:55,441 [DEBUG][       Thread-602310][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:56:55,441 [DEBUG][       Thread-602310][   transport.py][1871] : Compression: none
2025-07-01 10:56:55,441 [DEBUG][       Thread-602310][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:56:55,451 [DEBUG][       Thread-602310][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:56:55,451 [DEBUG][       Thread-602310][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:56:55,451 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:56:55,451 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:56:55,452 [DEBUG][       Thread-602310][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:56:55,452 [DEBUG][       Thread-602310][   transport.py][1871] : userauth is OK
2025-07-01 10:56:55,476 [ INFO][       Thread-602310][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:56:55,476 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:56:56,075 [DEBUG][       Thread-602310][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:56:56,075 [DEBUG][       Thread-602310][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:56:56,116 [DEBUG][       Thread-602310][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:56:56,116 [DEBUG][       Thread-602310][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:56:56,119 [DEBUG][       Thread-602310][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:56:56,131 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:56:56,131 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:56:56,132 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:56:56,133 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:56:56,135 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:56:56,136 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:56:56,136 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:56:56,136 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:56:56,136 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.372515 -999.00  +10.00  38.58     55   +1.50 1 2 2 1 1   887    0 8.89 11.93 ----- 38.6 38.6 21.4 44.0 13.8 -21.8 12.6 -22.1 12.0 -20.2 12.9 -19.7
2025-07-01 10:56:56,136 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:56:56,136 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:56:56,136 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.372515
2025-07-01 10:56:56,136 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:56:56,136 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:56:56,136 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:56:56,136 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:56:56,136 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:56:56,137 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:56:37', tmtdew=9.85, humidity=50.43, cloud=0.0, wind=31.9, temperature=10.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:56:25.296', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:56:56,137 [DEBUG][       Thread-602310][   transport.py][1871] : EOF in transport thread
2025-07-01 10:56:56,209 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:56:56,219 [DEBUG][       Thread-602313][   transport.py][1871] : starting thread (client mode): 0x83c8400
2025-07-01 10:56:56,219 [DEBUG][       Thread-602313][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:56:56,234 [DEBUG][       Thread-602313][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:56:56,234 [ INFO][       Thread-602313][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:56:56,242 [DEBUG][       Thread-602313][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:56:56,242 [DEBUG][       Thread-602313][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:56:56,242 [DEBUG][       Thread-602313][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:56:56,242 [DEBUG][       Thread-602313][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:56:56,242 [DEBUG][       Thread-602313][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:56:56,242 [DEBUG][       Thread-602313][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:56:56,242 [DEBUG][       Thread-602313][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:56:56,242 [DEBUG][       Thread-602313][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:56:56,242 [DEBUG][       Thread-602313][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:56:56,242 [DEBUG][       Thread-602313][   transport.py][1871] : client lang: <none>
2025-07-01 10:56:56,242 [DEBUG][       Thread-602313][   transport.py][1871] : server lang: <none>
2025-07-01 10:56:56,242 [DEBUG][       Thread-602313][   transport.py][1871] : kex follows: False
2025-07-01 10:56:56,242 [DEBUG][       Thread-602313][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:56:56,242 [DEBUG][       Thread-602313][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:56:56,242 [DEBUG][       Thread-602313][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:56:56,242 [DEBUG][       Thread-602313][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:56:56,242 [DEBUG][       Thread-602313][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:56:56,242 [DEBUG][       Thread-602313][   transport.py][1871] : Compression: none
2025-07-01 10:56:56,242 [DEBUG][       Thread-602313][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:56:56,300 [DEBUG][       Thread-602313][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:56:56,300 [DEBUG][       Thread-602313][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:56:56,300 [DEBUG][       Thread-602313][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:56:56,300 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:56:56,300 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:56:56,362 [DEBUG][       Thread-602313][   transport.py][1871] : userauth is OK
2025-07-01 10:56:56,362 [DEBUG][       Thread-602313][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:56:56,362 [DEBUG][       Thread-602313][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:56:56,362 [DEBUG][       Thread-602313][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:56:56,362 [DEBUG][       Thread-602313][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:56:56,377 [ INFO][       Thread-602313][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:56:56,377 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:56:56,377 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:56:57,405 [DEBUG][       Thread-602313][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:56:57,405 [DEBUG][       Thread-602313][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:56:57,455 [DEBUG][       Thread-602313][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:56:57,455 [DEBUG][       Thread-602313][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:56:57,464 [DEBUG][       Thread-602313][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:56:57,472 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:56:57,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-07-01 10:56:57,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-07-01 10:56:57,487 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:56:57,487 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:56:57,488 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:56:57,495 [DEBUG][       Thread-602313][   transport.py][1871] : EOF in transport thread
2025-07-01 10:57:00,796 [DEBUG][Thread-602315 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:57:03,441 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:57:03,442 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:57:07,498 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:57:07,498 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:57:07,498 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:57:07,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-07-01 10:57:08,016 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 56, 37), 9.85, 50.43, 0.0, 31.9, 10.13, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:57:08,016 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:56:37
2025-07-01 10:57:08,103 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:57:08,107 [DEBUG][       Thread-602316][   transport.py][1871] : starting thread (client mode): 0x82b2ce0
2025-07-01 10:57:08,107 [DEBUG][       Thread-602316][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:57:08,129 [DEBUG][       Thread-602316][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:57:08,129 [ INFO][       Thread-602316][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:57:08,132 [DEBUG][       Thread-602316][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:57:08,132 [DEBUG][       Thread-602316][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:57:08,133 [DEBUG][       Thread-602316][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:57:08,133 [DEBUG][       Thread-602316][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:57:08,133 [DEBUG][       Thread-602316][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:57:08,133 [DEBUG][       Thread-602316][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:57:08,133 [DEBUG][       Thread-602316][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:57:08,133 [DEBUG][       Thread-602316][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:57:08,133 [DEBUG][       Thread-602316][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:57:08,133 [DEBUG][       Thread-602316][   transport.py][1871] : client lang: <none>
2025-07-01 10:57:08,133 [DEBUG][       Thread-602316][   transport.py][1871] : server lang: <none>
2025-07-01 10:57:08,133 [DEBUG][       Thread-602316][   transport.py][1871] : kex follows: False
2025-07-01 10:57:08,133 [DEBUG][       Thread-602316][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:57:08,133 [DEBUG][       Thread-602316][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:57:08,133 [DEBUG][       Thread-602316][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:57:08,133 [DEBUG][       Thread-602316][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:57:08,133 [DEBUG][       Thread-602316][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:57:08,133 [DEBUG][       Thread-602316][   transport.py][1871] : Compression: none
2025-07-01 10:57:08,133 [DEBUG][       Thread-602316][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:57:08,150 [DEBUG][       Thread-602316][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:57:08,150 [DEBUG][       Thread-602316][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:57:08,151 [DEBUG][       Thread-602316][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:57:08,151 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:57:08,151 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:57:08,152 [DEBUG][       Thread-602316][   transport.py][1871] : userauth is OK
2025-07-01 10:57:08,179 [ INFO][       Thread-602316][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:57:08,180 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:57:08,846 [DEBUG][       Thread-602316][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:57:08,847 [DEBUG][       Thread-602316][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:57:08,888 [DEBUG][       Thread-602316][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:57:08,889 [DEBUG][       Thread-602316][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:57:08,891 [DEBUG][       Thread-602316][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:57:08,903 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:57:08,903 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:57:08,905 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:57:08,906 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:57:08,911 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:57:08,912 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:57:08,913 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:57:08,913 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:57:08,913 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.372515 -999.00  +10.00  38.58     55   +1.50 1 2 2 1 1   887    0 8.89 11.93 ----- 38.6 38.6 21.4 44.0 13.8 -21.8 12.6 -22.1 12.0 -20.2 12.9 -19.7
2025-07-01 10:57:08,913 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:57:08,913 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:57:08,913 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.372515
2025-07-01 10:57:08,914 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:57:08,914 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:57:08,914 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:57:08,915 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:57:08,915 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:57:08,915 [DEBUG][       Thread-602316][   transport.py][1871] : EOF in transport thread
2025-07-01 10:57:08,915 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:56:37', tmtdew=9.85, humidity=50.43, cloud=0.0, wind=31.9, temperature=10.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:56:25.296', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:57:08,998 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:57:09,013 [DEBUG][       Thread-602319][   transport.py][1871] : starting thread (client mode): 0x81a5330
2025-07-01 10:57:09,013 [DEBUG][       Thread-602319][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:57:09,030 [DEBUG][       Thread-602319][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:57:09,031 [ INFO][       Thread-602319][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:57:09,042 [DEBUG][       Thread-602319][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:57:09,042 [DEBUG][       Thread-602319][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:57:09,042 [DEBUG][       Thread-602319][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:57:09,042 [DEBUG][       Thread-602319][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:57:09,042 [DEBUG][       Thread-602319][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:57:09,042 [DEBUG][       Thread-602319][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:57:09,042 [DEBUG][       Thread-602319][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:57:09,043 [DEBUG][       Thread-602319][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:57:09,043 [DEBUG][       Thread-602319][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:57:09,043 [DEBUG][       Thread-602319][   transport.py][1871] : client lang: <none>
2025-07-01 10:57:09,043 [DEBUG][       Thread-602319][   transport.py][1871] : server lang: <none>
2025-07-01 10:57:09,043 [DEBUG][       Thread-602319][   transport.py][1871] : kex follows: False
2025-07-01 10:57:09,043 [DEBUG][       Thread-602319][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:57:09,043 [DEBUG][       Thread-602319][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:57:09,043 [DEBUG][       Thread-602319][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:57:09,043 [DEBUG][       Thread-602319][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:57:09,043 [DEBUG][       Thread-602319][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:57:09,043 [DEBUG][       Thread-602319][   transport.py][1871] : Compression: none
2025-07-01 10:57:09,043 [DEBUG][       Thread-602319][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:57:09,094 [DEBUG][       Thread-602319][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:57:09,095 [DEBUG][       Thread-602319][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:57:09,095 [DEBUG][       Thread-602319][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:57:09,096 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:57:09,096 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:57:09,150 [DEBUG][       Thread-602319][   transport.py][1871] : userauth is OK
2025-07-01 10:57:09,150 [DEBUG][       Thread-602319][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:57:09,151 [DEBUG][       Thread-602319][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:57:09,151 [DEBUG][       Thread-602319][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:57:09,151 [DEBUG][       Thread-602319][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:57:09,174 [ INFO][       Thread-602319][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:57:09,174 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:57:09,175 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:57:09,814 [DEBUG][Thread-602321 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:57:10,189 [DEBUG][       Thread-602319][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:57:10,189 [DEBUG][       Thread-602319][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:57:10,241 [DEBUG][       Thread-602319][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:57:10,241 [DEBUG][       Thread-602319][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:57:10,250 [DEBUG][       Thread-602319][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:57:10,258 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:57:10,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-07-01 10:57:10,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-07-01 10:57:10,280 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:57:10,280 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:57:10,280 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:57:10,288 [DEBUG][       Thread-602319][   transport.py][1871] : EOF in transport thread
2025-07-01 10:57:18,835 [DEBUG][Thread-602322 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:57:20,291 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:57:20,291 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:57:20,291 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:57:20,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-07-01 10:57:20,808 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 57, 8), 9.92, 50.1, 0.0, 36.35, 10.18, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:57:20,808 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:57:08
2025-07-01 10:57:20,894 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:57:20,899 [DEBUG][       Thread-602323][   transport.py][1871] : starting thread (client mode): 0x82b3310
2025-07-01 10:57:20,899 [DEBUG][       Thread-602323][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:57:20,919 [DEBUG][       Thread-602323][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:57:20,919 [ INFO][       Thread-602323][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:57:20,921 [DEBUG][       Thread-602323][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:57:20,921 [DEBUG][       Thread-602323][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:57:20,921 [DEBUG][       Thread-602323][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:57:20,921 [DEBUG][       Thread-602323][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:57:20,921 [DEBUG][       Thread-602323][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:57:20,921 [DEBUG][       Thread-602323][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:57:20,921 [DEBUG][       Thread-602323][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:57:20,921 [DEBUG][       Thread-602323][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:57:20,921 [DEBUG][       Thread-602323][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:57:20,921 [DEBUG][       Thread-602323][   transport.py][1871] : client lang: <none>
2025-07-01 10:57:20,921 [DEBUG][       Thread-602323][   transport.py][1871] : server lang: <none>
2025-07-01 10:57:20,921 [DEBUG][       Thread-602323][   transport.py][1871] : kex follows: False
2025-07-01 10:57:20,921 [DEBUG][       Thread-602323][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:57:20,921 [DEBUG][       Thread-602323][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:57:20,921 [DEBUG][       Thread-602323][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:57:20,921 [DEBUG][       Thread-602323][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:57:20,921 [DEBUG][       Thread-602323][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:57:20,921 [DEBUG][       Thread-602323][   transport.py][1871] : Compression: none
2025-07-01 10:57:20,921 [DEBUG][       Thread-602323][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:57:20,933 [DEBUG][       Thread-602323][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:57:20,934 [DEBUG][       Thread-602323][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:57:20,934 [DEBUG][       Thread-602323][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:57:20,934 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:57:20,934 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:57:20,935 [DEBUG][       Thread-602323][   transport.py][1871] : userauth is OK
2025-07-01 10:57:20,949 [ INFO][       Thread-602323][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:57:20,950 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:57:21,621 [DEBUG][       Thread-602323][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:57:21,621 [DEBUG][       Thread-602323][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:57:21,665 [DEBUG][       Thread-602323][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:57:21,665 [DEBUG][       Thread-602323][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:57:21,668 [DEBUG][       Thread-602323][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:57:21,679 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:57:21,680 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:57:21,681 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:57:21,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:57:21,688 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:57:21,689 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:57:21,690 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:57:21,690 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:57:21,690 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.372515 -999.00  +10.00  38.58     55   +1.50 1 2 2 1 1   887    0 8.89 11.93 ----- 38.6 38.6 21.4 44.0 13.8 -21.8 12.6 -22.1 12.0 -20.2 12.9 -19.7
2025-07-01 10:57:21,690 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:57:21,690 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:57:21,690 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.372515
2025-07-01 10:57:21,691 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:57:21,691 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:57:21,691 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:57:21,692 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:57:21,692 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:57:21,692 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:57:08', tmtdew=9.92, humidity=50.1, cloud=0.0, wind=36.35, temperature=10.18, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:56:25.296', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:57:21,693 [DEBUG][       Thread-602323][   transport.py][1871] : EOF in transport thread
2025-07-01 10:57:21,775 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:57:21,787 [DEBUG][       Thread-602326][   transport.py][1871] : starting thread (client mode): 0x81e6260
2025-07-01 10:57:21,787 [DEBUG][       Thread-602326][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:57:21,802 [DEBUG][       Thread-602326][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:57:21,802 [ INFO][       Thread-602326][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:57:21,813 [DEBUG][       Thread-602326][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:57:21,813 [DEBUG][       Thread-602326][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:57:21,813 [DEBUG][       Thread-602326][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:57:21,813 [DEBUG][       Thread-602326][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:57:21,813 [DEBUG][       Thread-602326][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:57:21,813 [DEBUG][       Thread-602326][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:57:21,813 [DEBUG][       Thread-602326][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:57:21,813 [DEBUG][       Thread-602326][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:57:21,813 [DEBUG][       Thread-602326][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:57:21,813 [DEBUG][       Thread-602326][   transport.py][1871] : client lang: <none>
2025-07-01 10:57:21,813 [DEBUG][       Thread-602326][   transport.py][1871] : server lang: <none>
2025-07-01 10:57:21,813 [DEBUG][       Thread-602326][   transport.py][1871] : kex follows: False
2025-07-01 10:57:21,813 [DEBUG][       Thread-602326][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:57:21,813 [DEBUG][       Thread-602326][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:57:21,813 [DEBUG][       Thread-602326][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:57:21,814 [DEBUG][       Thread-602326][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:57:21,814 [DEBUG][       Thread-602326][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:57:21,814 [DEBUG][       Thread-602326][   transport.py][1871] : Compression: none
2025-07-01 10:57:21,814 [DEBUG][       Thread-602326][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:57:21,869 [DEBUG][       Thread-602326][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:57:21,869 [DEBUG][       Thread-602326][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:57:21,869 [DEBUG][       Thread-602326][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:57:21,870 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:57:21,870 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:57:21,926 [DEBUG][       Thread-602326][   transport.py][1871] : userauth is OK
2025-07-01 10:57:21,926 [DEBUG][       Thread-602326][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:57:21,926 [DEBUG][       Thread-602326][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:57:21,927 [DEBUG][       Thread-602326][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:57:21,927 [DEBUG][       Thread-602326][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:57:21,945 [ INFO][       Thread-602326][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:57:21,945 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:57:21,946 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:57:22,942 [DEBUG][       Thread-602326][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:57:22,943 [DEBUG][       Thread-602326][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:57:22,991 [DEBUG][       Thread-602326][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:57:22,991 [DEBUG][       Thread-602326][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:57:23,000 [DEBUG][       Thread-602326][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:57:23,009 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:57:23,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')
2025-07-01 10:57:23,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-07-01 10:57:23,026 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:57:23,026 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:57:23,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:57:23,034 [DEBUG][       Thread-602326][   transport.py][1871] : EOF in transport thread
2025-07-01 10:57:24,617 [DEBUG][Thread-602328 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:57:27,856 [DEBUG][Thread-602329 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:57:33,037 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:57:33,037 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:57:33,037 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:57:33,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-07-01 10:57:33,565 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 57, 8), 9.92, 50.1, 0.0, 36.35, 10.18, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:57:33,565 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:57:08
2025-07-01 10:57:33,655 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:57:33,661 [DEBUG][       Thread-602330][   transport.py][1871] : starting thread (client mode): 0x82b3550
2025-07-01 10:57:33,661 [DEBUG][       Thread-602330][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:57:33,681 [DEBUG][       Thread-602330][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:57:33,681 [ INFO][       Thread-602330][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:57:33,684 [DEBUG][       Thread-602330][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:57:33,684 [DEBUG][       Thread-602330][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:57:33,684 [DEBUG][       Thread-602330][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:57:33,684 [DEBUG][       Thread-602330][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:57:33,684 [DEBUG][       Thread-602330][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:57:33,684 [DEBUG][       Thread-602330][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:57:33,684 [DEBUG][       Thread-602330][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:57:33,684 [DEBUG][       Thread-602330][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:57:33,684 [DEBUG][       Thread-602330][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:57:33,684 [DEBUG][       Thread-602330][   transport.py][1871] : client lang: <none>
2025-07-01 10:57:33,684 [DEBUG][       Thread-602330][   transport.py][1871] : server lang: <none>
2025-07-01 10:57:33,684 [DEBUG][       Thread-602330][   transport.py][1871] : kex follows: False
2025-07-01 10:57:33,684 [DEBUG][       Thread-602330][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:57:33,684 [DEBUG][       Thread-602330][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:57:33,684 [DEBUG][       Thread-602330][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:57:33,684 [DEBUG][       Thread-602330][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:57:33,684 [DEBUG][       Thread-602330][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:57:33,684 [DEBUG][       Thread-602330][   transport.py][1871] : Compression: none
2025-07-01 10:57:33,684 [DEBUG][       Thread-602330][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:57:33,700 [DEBUG][       Thread-602330][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:57:33,700 [DEBUG][       Thread-602330][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:57:33,700 [DEBUG][       Thread-602330][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:57:33,700 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:57:33,700 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:57:33,701 [DEBUG][       Thread-602330][   transport.py][1871] : userauth is OK
2025-07-01 10:57:33,725 [ INFO][       Thread-602330][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:57:33,726 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:57:34,370 [DEBUG][       Thread-602330][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:57:34,370 [DEBUG][       Thread-602330][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:57:34,412 [DEBUG][       Thread-602330][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:57:34,412 [DEBUG][       Thread-602330][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:57:34,415 [DEBUG][       Thread-602330][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:57:34,428 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:57:34,428 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:57:34,429 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:57:34,430 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:57:34,433 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:57:34,433 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:57:34,433 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:57:34,434 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:57:34,434 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.372862 -999.00  +10.10  36.84     54   +1.30 1 2 2 1 1   887    0 8.73 12.07 ----- 36.8 36.8 39.2 54.9 13.8 -21.2 12.7 -22.5 12.0 -19.8 13.0 -19.0
2025-07-01 10:57:34,434 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:57:34,434 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:57:34,434 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.372862
2025-07-01 10:57:34,434 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:57:34,434 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:57:34,434 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:57:34,434 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:57:34,434 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:57:34,434 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:57:08', tmtdew=9.92, humidity=50.1, cloud=0.0, wind=36.35, temperature=10.18, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:56:55.277', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:57:34,435 [DEBUG][       Thread-602330][   transport.py][1871] : EOF in transport thread
2025-07-01 10:57:34,507 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:57:34,518 [DEBUG][       Thread-602333][   transport.py][1871] : starting thread (client mode): 0x8107940
2025-07-01 10:57:34,518 [DEBUG][       Thread-602333][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:57:34,535 [DEBUG][       Thread-602333][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:57:34,535 [ INFO][       Thread-602333][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:57:34,543 [DEBUG][       Thread-602333][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:57:34,543 [DEBUG][       Thread-602333][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:57:34,543 [DEBUG][       Thread-602333][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:57:34,543 [DEBUG][       Thread-602333][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:57:34,543 [DEBUG][       Thread-602333][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:57:34,544 [DEBUG][       Thread-602333][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:57:34,544 [DEBUG][       Thread-602333][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:57:34,544 [DEBUG][       Thread-602333][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:57:34,544 [DEBUG][       Thread-602333][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:57:34,544 [DEBUG][       Thread-602333][   transport.py][1871] : client lang: <none>
2025-07-01 10:57:34,544 [DEBUG][       Thread-602333][   transport.py][1871] : server lang: <none>
2025-07-01 10:57:34,544 [DEBUG][       Thread-602333][   transport.py][1871] : kex follows: False
2025-07-01 10:57:34,544 [DEBUG][       Thread-602333][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:57:34,544 [DEBUG][       Thread-602333][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:57:34,544 [DEBUG][       Thread-602333][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:57:34,544 [DEBUG][       Thread-602333][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:57:34,544 [DEBUG][       Thread-602333][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:57:34,544 [DEBUG][       Thread-602333][   transport.py][1871] : Compression: none
2025-07-01 10:57:34,544 [DEBUG][       Thread-602333][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:57:34,611 [DEBUG][       Thread-602333][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:57:34,611 [DEBUG][       Thread-602333][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:57:34,611 [DEBUG][       Thread-602333][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:57:34,611 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:57:34,611 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:57:34,672 [DEBUG][       Thread-602333][   transport.py][1871] : userauth is OK
2025-07-01 10:57:34,672 [DEBUG][       Thread-602333][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:57:34,672 [DEBUG][       Thread-602333][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:57:34,672 [DEBUG][       Thread-602333][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:57:34,673 [DEBUG][       Thread-602333][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:57:34,687 [ INFO][       Thread-602333][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:57:34,687 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:57:34,687 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:57:35,720 [DEBUG][       Thread-602333][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:57:35,720 [DEBUG][       Thread-602333][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:57:35,774 [DEBUG][       Thread-602333][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:57:35,774 [DEBUG][       Thread-602333][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:57:35,785 [DEBUG][       Thread-602333][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:57:35,796 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:57:35,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-07-01 10:57:35,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') -> 00000000
2025-07-01 10:57:35,815 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:57:35,815 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:57:35,815 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:57:35,827 [DEBUG][       Thread-602333][   transport.py][1871] : EOF in transport thread
2025-07-01 10:57:36,895 [DEBUG][Thread-602335 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:57:45,823 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:57:45,823 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:57:45,823 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:57:45,826 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:57:45,914 [DEBUG][Thread-602336 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:57:46,321 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 57, 40), 9.97, 49.94, 0.0, 40.76, 10.2, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:57:46,321 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:57:40
2025-07-01 10:57:46,407 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:57:46,411 [DEBUG][       Thread-602337][   transport.py][1871] : starting thread (client mode): 0x82b2770
2025-07-01 10:57:46,412 [DEBUG][       Thread-602337][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:57:46,434 [DEBUG][       Thread-602337][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:57:46,434 [ INFO][       Thread-602337][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:57:46,438 [DEBUG][       Thread-602337][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:57:46,438 [DEBUG][       Thread-602337][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:57:46,438 [DEBUG][       Thread-602337][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:57:46,438 [DEBUG][       Thread-602337][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:57:46,438 [DEBUG][       Thread-602337][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:57:46,438 [DEBUG][       Thread-602337][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:57:46,438 [DEBUG][       Thread-602337][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:57:46,439 [DEBUG][       Thread-602337][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:57:46,439 [DEBUG][       Thread-602337][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:57:46,439 [DEBUG][       Thread-602337][   transport.py][1871] : client lang: <none>
2025-07-01 10:57:46,439 [DEBUG][       Thread-602337][   transport.py][1871] : server lang: <none>
2025-07-01 10:57:46,439 [DEBUG][       Thread-602337][   transport.py][1871] : kex follows: False
2025-07-01 10:57:46,439 [DEBUG][       Thread-602337][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:57:46,439 [DEBUG][       Thread-602337][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:57:46,439 [DEBUG][       Thread-602337][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:57:46,439 [DEBUG][       Thread-602337][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:57:46,439 [DEBUG][       Thread-602337][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:57:46,440 [DEBUG][       Thread-602337][   transport.py][1871] : Compression: none
2025-07-01 10:57:46,440 [DEBUG][       Thread-602337][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:57:46,457 [DEBUG][       Thread-602337][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:57:46,457 [DEBUG][       Thread-602337][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:57:46,457 [DEBUG][       Thread-602337][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:57:46,458 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:57:46,458 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:57:46,459 [DEBUG][       Thread-602337][   transport.py][1871] : userauth is OK
2025-07-01 10:57:46,472 [ INFO][       Thread-602337][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:57:46,473 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:57:47,134 [DEBUG][       Thread-602337][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:57:47,135 [DEBUG][       Thread-602337][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:57:47,176 [DEBUG][       Thread-602337][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:57:47,176 [DEBUG][       Thread-602337][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:57:47,179 [DEBUG][       Thread-602337][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:57:47,190 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:57:47,191 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:57:47,191 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:57:47,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:57:47,195 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:57:47,196 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:57:47,196 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:57:47,196 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:57:47,196 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.372862 -999.00  +10.10  36.84     54   +1.30 1 2 2 1 1   887    0 8.73 12.07 ----- 36.8 36.8 39.2 54.9 13.8 -21.2 12.7 -22.5 12.0 -19.8 13.0 -19.0
2025-07-01 10:57:47,196 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:57:47,196 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:57:47,196 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.372862
2025-07-01 10:57:47,197 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:57:47,197 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:57:47,197 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:57:47,197 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:57:47,197 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:57:47,197 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:57:40', tmtdew=9.97, humidity=49.94, cloud=0.0, wind=40.76, temperature=10.2, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:56:55.277', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:57:47,197 [DEBUG][       Thread-602337][   transport.py][1871] : EOF in transport thread
2025-07-01 10:57:47,269 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:57:47,278 [DEBUG][       Thread-602340][   transport.py][1871] : starting thread (client mode): 0x81e4610
2025-07-01 10:57:47,278 [DEBUG][       Thread-602340][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:57:47,299 [DEBUG][       Thread-602340][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:57:47,299 [ INFO][       Thread-602340][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:57:47,308 [DEBUG][       Thread-602340][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:57:47,308 [DEBUG][       Thread-602340][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:57:47,308 [DEBUG][       Thread-602340][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:57:47,309 [DEBUG][       Thread-602340][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:57:47,309 [DEBUG][       Thread-602340][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:57:47,309 [DEBUG][       Thread-602340][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:57:47,309 [DEBUG][       Thread-602340][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:57:47,309 [DEBUG][       Thread-602340][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:57:47,309 [DEBUG][       Thread-602340][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:57:47,309 [DEBUG][       Thread-602340][   transport.py][1871] : client lang: <none>
2025-07-01 10:57:47,309 [DEBUG][       Thread-602340][   transport.py][1871] : server lang: <none>
2025-07-01 10:57:47,309 [DEBUG][       Thread-602340][   transport.py][1871] : kex follows: False
2025-07-01 10:57:47,309 [DEBUG][       Thread-602340][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:57:47,309 [DEBUG][       Thread-602340][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:57:47,309 [DEBUG][       Thread-602340][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:57:47,309 [DEBUG][       Thread-602340][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:57:47,309 [DEBUG][       Thread-602340][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:57:47,309 [DEBUG][       Thread-602340][   transport.py][1871] : Compression: none
2025-07-01 10:57:47,309 [DEBUG][       Thread-602340][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:57:47,367 [DEBUG][       Thread-602340][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:57:47,368 [DEBUG][       Thread-602340][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:57:47,369 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:57:47,369 [DEBUG][       Thread-602340][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:57:47,370 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:57:47,423 [DEBUG][       Thread-602340][   transport.py][1871] : userauth is OK
2025-07-01 10:57:47,423 [DEBUG][       Thread-602340][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:57:47,423 [DEBUG][       Thread-602340][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:57:47,423 [DEBUG][       Thread-602340][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:57:47,423 [DEBUG][       Thread-602340][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:57:47,441 [ INFO][       Thread-602340][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:57:47,442 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:57:47,442 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:57:48,460 [DEBUG][       Thread-602340][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:57:48,461 [DEBUG][       Thread-602340][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:57:48,512 [DEBUG][       Thread-602340][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:57:48,513 [DEBUG][       Thread-602340][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:57:48,522 [DEBUG][       Thread-602340][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:57:48,531 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:57:48,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-07-01 10:57:48,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-07-01 10:57:48,557 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:57:48,558 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:57:48,558 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:57:48,569 [DEBUG][       Thread-602340][   transport.py][1871] : EOF in transport thread
2025-07-01 10:57:54,936 [DEBUG][Thread-602342 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:57:58,567 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:57:58,567 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:57:58,567 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:57:58,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-07-01 10:57:59,080 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 57, 40), 9.97, 49.94, 0.0, 40.76, 10.2, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:57:59,080 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:57:40
2025-07-01 10:57:59,166 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:57:59,172 [DEBUG][       Thread-602343][   transport.py][1871] : starting thread (client mode): 0x81732e0
2025-07-01 10:57:59,172 [DEBUG][       Thread-602343][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:57:59,191 [DEBUG][       Thread-602343][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:57:59,192 [ INFO][       Thread-602343][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:57:59,195 [DEBUG][       Thread-602343][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:57:59,195 [DEBUG][       Thread-602343][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:57:59,195 [DEBUG][       Thread-602343][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:57:59,195 [DEBUG][       Thread-602343][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:57:59,195 [DEBUG][       Thread-602343][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:57:59,195 [DEBUG][       Thread-602343][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:57:59,195 [DEBUG][       Thread-602343][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:57:59,195 [DEBUG][       Thread-602343][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:57:59,195 [DEBUG][       Thread-602343][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:57:59,195 [DEBUG][       Thread-602343][   transport.py][1871] : client lang: <none>
2025-07-01 10:57:59,195 [DEBUG][       Thread-602343][   transport.py][1871] : server lang: <none>
2025-07-01 10:57:59,195 [DEBUG][       Thread-602343][   transport.py][1871] : kex follows: False
2025-07-01 10:57:59,195 [DEBUG][       Thread-602343][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:57:59,195 [DEBUG][       Thread-602343][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:57:59,195 [DEBUG][       Thread-602343][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:57:59,195 [DEBUG][       Thread-602343][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:57:59,195 [DEBUG][       Thread-602343][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:57:59,195 [DEBUG][       Thread-602343][   transport.py][1871] : Compression: none
2025-07-01 10:57:59,195 [DEBUG][       Thread-602343][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:57:59,211 [DEBUG][       Thread-602343][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:57:59,211 [DEBUG][       Thread-602343][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:57:59,212 [DEBUG][       Thread-602343][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:57:59,212 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:57:59,212 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:57:59,213 [DEBUG][       Thread-602343][   transport.py][1871] : userauth is OK
2025-07-01 10:57:59,227 [ INFO][       Thread-602343][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:57:59,228 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:57:59,887 [DEBUG][       Thread-602343][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:57:59,887 [DEBUG][       Thread-602343][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:57:59,929 [DEBUG][       Thread-602343][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:57:59,929 [DEBUG][       Thread-602343][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:57:59,933 [DEBUG][       Thread-602343][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:57:59,944 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:57:59,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:57:59,947 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:57:59,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:57:59,954 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:57:59,956 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:57:59,956 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:57:59,957 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:57:59,957 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.372862 -999.00  +10.10  36.84     54   +1.30 1 2 2 1 1   887    0 8.73 12.07 ----- 36.8 36.8 39.2 54.9 13.8 -21.2 12.7 -22.5 12.0 -19.8 13.0 -19.0
2025-07-01 10:57:59,957 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:57:59,957 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:57:59,957 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.372862
2025-07-01 10:57:59,958 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:57:59,958 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:57:59,958 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:57:59,958 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:57:59,958 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:57:59,958 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:57:40', tmtdew=9.97, humidity=49.94, cloud=0.0, wind=40.76, temperature=10.2, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:56:55.277', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:57:59,959 [DEBUG][       Thread-602343][   transport.py][1871] : EOF in transport thread
2025-07-01 10:58:00,032 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:58:00,043 [DEBUG][       Thread-602346][   transport.py][1871] : starting thread (client mode): 0x83939d0
2025-07-01 10:58:00,043 [DEBUG][       Thread-602346][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:58:00,065 [DEBUG][       Thread-602346][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:58:00,065 [ INFO][       Thread-602346][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:58:00,074 [DEBUG][       Thread-602346][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:58:00,074 [DEBUG][       Thread-602346][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:58:00,074 [DEBUG][       Thread-602346][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:58:00,074 [DEBUG][       Thread-602346][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:58:00,075 [DEBUG][       Thread-602346][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:58:00,075 [DEBUG][       Thread-602346][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:58:00,075 [DEBUG][       Thread-602346][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:58:00,075 [DEBUG][       Thread-602346][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:58:00,075 [DEBUG][       Thread-602346][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:58:00,075 [DEBUG][       Thread-602346][   transport.py][1871] : client lang: <none>
2025-07-01 10:58:00,075 [DEBUG][       Thread-602346][   transport.py][1871] : server lang: <none>
2025-07-01 10:58:00,075 [DEBUG][       Thread-602346][   transport.py][1871] : kex follows: False
2025-07-01 10:58:00,075 [DEBUG][       Thread-602346][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:58:00,075 [DEBUG][       Thread-602346][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:58:00,075 [DEBUG][       Thread-602346][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:58:00,075 [DEBUG][       Thread-602346][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:58:00,075 [DEBUG][       Thread-602346][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:58:00,075 [DEBUG][       Thread-602346][   transport.py][1871] : Compression: none
2025-07-01 10:58:00,075 [DEBUG][       Thread-602346][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:58:00,133 [DEBUG][       Thread-602346][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:58:00,134 [DEBUG][       Thread-602346][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:58:00,135 [DEBUG][       Thread-602346][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:58:00,135 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:58:00,135 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:58:00,197 [DEBUG][       Thread-602346][   transport.py][1871] : userauth is OK
2025-07-01 10:58:00,197 [DEBUG][       Thread-602346][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:58:00,198 [DEBUG][       Thread-602346][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:58:00,198 [DEBUG][       Thread-602346][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:58:00,198 [DEBUG][       Thread-602346][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:58:00,217 [ INFO][       Thread-602346][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:58:00,217 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:58:00,217 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:58:01,237 [DEBUG][       Thread-602346][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:58:01,238 [DEBUG][       Thread-602346][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:58:01,289 [DEBUG][       Thread-602346][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:58:01,289 [DEBUG][       Thread-602346][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:58:01,309 [DEBUG][       Thread-602346][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:58:01,319 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:58:01,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-07-01 10:58:01,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-07-01 10:58:01,339 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:58:01,339 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:58:01,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:58:01,348 [DEBUG][       Thread-602346][   transport.py][1871] : EOF in transport thread
2025-07-01 10:58:03,580 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:58:03,581 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:58:03,970 [DEBUG][Thread-602348 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:58:11,350 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:58:11,350 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:58:11,351 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:58:11,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-07-01 10:58:11,883 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 57, 40), 9.97, 49.94, 0.0, 40.76, 10.2, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:58:11,883 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:57:40
2025-07-01 10:58:11,972 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:58:11,976 [DEBUG][       Thread-602349][   transport.py][1871] : starting thread (client mode): 0x75aae60
2025-07-01 10:58:11,976 [DEBUG][       Thread-602349][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:58:11,997 [DEBUG][       Thread-602349][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:58:11,997 [ INFO][       Thread-602349][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:58:12,000 [DEBUG][       Thread-602349][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:58:12,005 [DEBUG][       Thread-602349][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:58:12,006 [DEBUG][       Thread-602349][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:58:12,006 [DEBUG][       Thread-602349][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:58:12,006 [DEBUG][       Thread-602349][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:58:12,006 [DEBUG][       Thread-602349][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:58:12,006 [DEBUG][       Thread-602349][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:58:12,006 [DEBUG][       Thread-602349][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:58:12,006 [DEBUG][       Thread-602349][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:58:12,006 [DEBUG][       Thread-602349][   transport.py][1871] : client lang: <none>
2025-07-01 10:58:12,006 [DEBUG][       Thread-602349][   transport.py][1871] : server lang: <none>
2025-07-01 10:58:12,006 [DEBUG][       Thread-602349][   transport.py][1871] : kex follows: False
2025-07-01 10:58:12,006 [DEBUG][       Thread-602349][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:58:12,006 [DEBUG][       Thread-602349][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:58:12,006 [DEBUG][       Thread-602349][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:58:12,006 [DEBUG][       Thread-602349][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:58:12,006 [DEBUG][       Thread-602349][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:58:12,006 [DEBUG][       Thread-602349][   transport.py][1871] : Compression: none
2025-07-01 10:58:12,006 [DEBUG][       Thread-602349][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:58:12,021 [DEBUG][       Thread-602349][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:58:12,021 [DEBUG][       Thread-602349][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:58:12,021 [DEBUG][       Thread-602349][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:58:12,022 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:58:12,022 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:58:12,022 [DEBUG][       Thread-602349][   transport.py][1871] : userauth is OK
2025-07-01 10:58:12,046 [ INFO][       Thread-602349][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:58:12,047 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:58:12,646 [DEBUG][       Thread-602349][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:58:12,646 [DEBUG][       Thread-602349][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:58:12,688 [DEBUG][       Thread-602349][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:58:12,688 [DEBUG][       Thread-602349][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:58:12,690 [DEBUG][       Thread-602349][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:58:12,703 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:58:12,703 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:58:12,704 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:58:12,705 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:58:12,708 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:58:12,709 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:58:12,709 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:58:12,709 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:58:12,709 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.373557 -999.00  +10.20  35.34     55   +1.70 1 2 2 1 1   887    0 8.94 13.90 ----- 35.3 35.3 47.8 39.2 14.0 -20.8 12.9 -21.0 12.2 -20.1 13.2 -18.5
2025-07-01 10:58:12,709 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:58:12,709 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:58:12,709 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.373557
2025-07-01 10:58:12,709 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:58:12,710 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:58:12,710 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:58:12,710 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:58:12,710 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:58:12,710 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:57:40', tmtdew=9.97, humidity=49.94, cloud=0.0, wind=40.76, temperature=10.2, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:57:55.325', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:58:12,710 [DEBUG][       Thread-602349][   transport.py][1871] : EOF in transport thread
2025-07-01 10:58:12,783 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:58:12,792 [DEBUG][       Thread-602352][   transport.py][1871] : starting thread (client mode): 0x81a7970
2025-07-01 10:58:12,792 [DEBUG][       Thread-602352][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:58:12,814 [DEBUG][       Thread-602352][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:58:12,814 [ INFO][       Thread-602352][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:58:12,822 [DEBUG][       Thread-602352][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:58:12,822 [DEBUG][       Thread-602352][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:58:12,822 [DEBUG][       Thread-602352][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:58:12,822 [DEBUG][       Thread-602352][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:58:12,822 [DEBUG][       Thread-602352][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:58:12,822 [DEBUG][       Thread-602352][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:58:12,822 [DEBUG][       Thread-602352][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:58:12,822 [DEBUG][       Thread-602352][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:58:12,822 [DEBUG][       Thread-602352][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:58:12,822 [DEBUG][       Thread-602352][   transport.py][1871] : client lang: <none>
2025-07-01 10:58:12,822 [DEBUG][       Thread-602352][   transport.py][1871] : server lang: <none>
2025-07-01 10:58:12,822 [DEBUG][       Thread-602352][   transport.py][1871] : kex follows: False
2025-07-01 10:58:12,822 [DEBUG][       Thread-602352][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:58:12,822 [DEBUG][       Thread-602352][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:58:12,822 [DEBUG][       Thread-602352][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:58:12,822 [DEBUG][       Thread-602352][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:58:12,822 [DEBUG][       Thread-602352][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:58:12,822 [DEBUG][       Thread-602352][   transport.py][1871] : Compression: none
2025-07-01 10:58:12,822 [DEBUG][       Thread-602352][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:58:12,877 [DEBUG][       Thread-602352][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:58:12,878 [DEBUG][       Thread-602352][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:58:12,878 [DEBUG][       Thread-602352][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:58:12,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:58:12,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:58:12,934 [DEBUG][       Thread-602352][   transport.py][1871] : userauth is OK
2025-07-01 10:58:12,934 [DEBUG][       Thread-602352][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:58:12,934 [DEBUG][       Thread-602352][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:58:12,934 [DEBUG][       Thread-602352][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:58:12,934 [DEBUG][       Thread-602352][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:58:12,948 [ INFO][       Thread-602352][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:58:12,948 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:58:12,948 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:58:12,988 [DEBUG][Thread-602354 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:58:13,952 [DEBUG][       Thread-602352][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:58:13,952 [DEBUG][       Thread-602352][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:58:14,003 [DEBUG][       Thread-602352][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:58:14,003 [DEBUG][       Thread-602352][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:58:14,012 [DEBUG][       Thread-602352][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:58:14,020 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:58:14,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-07-01 10:58:14,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-07-01 10:58:14,036 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:58:14,036 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:58:14,036 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:58:14,044 [DEBUG][       Thread-602352][   transport.py][1871] : EOF in transport thread
2025-07-01 10:58:22,007 [DEBUG][Thread-602355 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:58:24,047 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:58:24,047 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:58:24,047 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:58:24,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-07-01 10:58:24,564 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 58, 12), 9.97, 49.93, 0.0, 34.44, 10.22, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:58:24,564 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:58:12
2025-07-01 10:58:24,648 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:58:24,653 [DEBUG][       Thread-602356][   transport.py][1871] : starting thread (client mode): 0x82b2d10
2025-07-01 10:58:24,653 [DEBUG][       Thread-602356][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:58:24,663 [DEBUG][Thread-602357 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:58:24,681 [DEBUG][       Thread-602356][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:58:24,681 [ INFO][       Thread-602356][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:58:24,685 [DEBUG][       Thread-602356][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:58:24,685 [DEBUG][       Thread-602356][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:58:24,685 [DEBUG][       Thread-602356][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:58:24,685 [DEBUG][       Thread-602356][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:58:24,685 [DEBUG][       Thread-602356][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:58:24,685 [DEBUG][       Thread-602356][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:58:24,685 [DEBUG][       Thread-602356][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:58:24,685 [DEBUG][       Thread-602356][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:58:24,685 [DEBUG][       Thread-602356][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:58:24,685 [DEBUG][       Thread-602356][   transport.py][1871] : client lang: <none>
2025-07-01 10:58:24,685 [DEBUG][       Thread-602356][   transport.py][1871] : server lang: <none>
2025-07-01 10:58:24,685 [DEBUG][       Thread-602356][   transport.py][1871] : kex follows: False
2025-07-01 10:58:24,685 [DEBUG][       Thread-602356][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:58:24,685 [DEBUG][       Thread-602356][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:58:24,685 [DEBUG][       Thread-602356][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:58:24,685 [DEBUG][       Thread-602356][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:58:24,685 [DEBUG][       Thread-602356][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:58:24,685 [DEBUG][       Thread-602356][   transport.py][1871] : Compression: none
2025-07-01 10:58:24,685 [DEBUG][       Thread-602356][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:58:24,702 [DEBUG][       Thread-602356][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:58:24,703 [DEBUG][       Thread-602356][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:58:24,703 [DEBUG][       Thread-602356][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:58:24,703 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:58:24,703 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:58:24,704 [DEBUG][       Thread-602356][   transport.py][1871] : userauth is OK
2025-07-01 10:58:24,717 [ INFO][       Thread-602356][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:58:24,718 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:58:25,366 [DEBUG][       Thread-602356][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:58:25,366 [DEBUG][       Thread-602356][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:58:25,409 [DEBUG][       Thread-602356][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:58:25,409 [DEBUG][       Thread-602356][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:58:25,412 [DEBUG][       Thread-602356][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:58:25,425 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:58:25,425 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:58:25,427 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:58:25,429 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:58:25,434 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:58:25,436 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:58:25,436 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:58:25,437 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:58:25,437 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.373557 -999.00  +10.20  35.34     55   +1.70 1 2 2 1 1   887    0 8.94 13.90 ----- 35.3 35.3 47.8 39.2 14.0 -20.8 12.9 -21.0 12.2 -20.1 13.2 -18.5
2025-07-01 10:58:25,437 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:58:25,437 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:58:25,437 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.373557
2025-07-01 10:58:25,437 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:58:25,438 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:58:25,438 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:58:25,438 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:58:25,438 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:58:25,438 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:58:12', tmtdew=9.97, humidity=49.93, cloud=0.0, wind=34.44, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:57:55.325', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:58:25,439 [DEBUG][       Thread-602356][   transport.py][1871] : EOF in transport thread
2025-07-01 10:58:25,522 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:58:25,532 [DEBUG][       Thread-602360][   transport.py][1871] : starting thread (client mode): 0x8393b80
2025-07-01 10:58:25,532 [DEBUG][       Thread-602360][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:58:25,546 [DEBUG][       Thread-602360][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:58:25,547 [ INFO][       Thread-602360][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:58:25,554 [DEBUG][       Thread-602360][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:58:25,554 [DEBUG][       Thread-602360][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:58:25,554 [DEBUG][       Thread-602360][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:58:25,554 [DEBUG][       Thread-602360][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:58:25,555 [DEBUG][       Thread-602360][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:58:25,555 [DEBUG][       Thread-602360][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:58:25,555 [DEBUG][       Thread-602360][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:58:25,555 [DEBUG][       Thread-602360][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:58:25,555 [DEBUG][       Thread-602360][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:58:25,555 [DEBUG][       Thread-602360][   transport.py][1871] : client lang: <none>
2025-07-01 10:58:25,555 [DEBUG][       Thread-602360][   transport.py][1871] : server lang: <none>
2025-07-01 10:58:25,555 [DEBUG][       Thread-602360][   transport.py][1871] : kex follows: False
2025-07-01 10:58:25,555 [DEBUG][       Thread-602360][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:58:25,555 [DEBUG][       Thread-602360][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:58:25,555 [DEBUG][       Thread-602360][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:58:25,555 [DEBUG][       Thread-602360][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:58:25,555 [DEBUG][       Thread-602360][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:58:25,555 [DEBUG][       Thread-602360][   transport.py][1871] : Compression: none
2025-07-01 10:58:25,555 [DEBUG][       Thread-602360][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:58:25,614 [DEBUG][       Thread-602360][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:58:25,615 [DEBUG][       Thread-602360][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:58:25,615 [DEBUG][       Thread-602360][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:58:25,616 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:58:25,617 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:58:25,676 [DEBUG][       Thread-602360][   transport.py][1871] : userauth is OK
2025-07-01 10:58:25,676 [DEBUG][       Thread-602360][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:58:25,676 [DEBUG][       Thread-602360][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:58:25,676 [DEBUG][       Thread-602360][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:58:25,676 [DEBUG][       Thread-602360][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:58:25,694 [ INFO][       Thread-602360][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:58:25,695 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:58:25,695 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:58:26,711 [DEBUG][       Thread-602360][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:58:26,712 [DEBUG][       Thread-602360][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:58:26,760 [DEBUG][       Thread-602360][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:58:26,760 [DEBUG][       Thread-602360][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:58:26,769 [DEBUG][       Thread-602360][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:58:26,778 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:58:26,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-07-01 10:58:26,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-07-01 10:58:26,796 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:58:26,797 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:58:26,797 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:58:26,805 [DEBUG][       Thread-602360][   transport.py][1871] : EOF in transport thread
2025-07-01 10:58:31,029 [DEBUG][Thread-602362 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:58:36,807 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:58:36,808 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:58:36,808 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:58:36,810 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 10:58:37,303 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 58, 12), 9.97, 49.93, 0.0, 34.44, 10.22, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:58:37,303 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:58:12
2025-07-01 10:58:37,387 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:58:37,391 [DEBUG][       Thread-602363][   transport.py][1871] : starting thread (client mode): 0x81d8910
2025-07-01 10:58:37,391 [DEBUG][       Thread-602363][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:58:37,407 [DEBUG][       Thread-602363][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:58:37,407 [ INFO][       Thread-602363][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:58:37,408 [DEBUG][       Thread-602363][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:58:37,408 [DEBUG][       Thread-602363][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:58:37,408 [DEBUG][       Thread-602363][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:58:37,408 [DEBUG][       Thread-602363][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:58:37,408 [DEBUG][       Thread-602363][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:58:37,408 [DEBUG][       Thread-602363][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:58:37,408 [DEBUG][       Thread-602363][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:58:37,408 [DEBUG][       Thread-602363][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:58:37,408 [DEBUG][       Thread-602363][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:58:37,408 [DEBUG][       Thread-602363][   transport.py][1871] : client lang: <none>
2025-07-01 10:58:37,408 [DEBUG][       Thread-602363][   transport.py][1871] : server lang: <none>
2025-07-01 10:58:37,408 [DEBUG][       Thread-602363][   transport.py][1871] : kex follows: False
2025-07-01 10:58:37,408 [DEBUG][       Thread-602363][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:58:37,408 [DEBUG][       Thread-602363][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:58:37,408 [DEBUG][       Thread-602363][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:58:37,408 [DEBUG][       Thread-602363][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:58:37,408 [DEBUG][       Thread-602363][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:58:37,408 [DEBUG][       Thread-602363][   transport.py][1871] : Compression: none
2025-07-01 10:58:37,408 [DEBUG][       Thread-602363][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:58:37,418 [DEBUG][       Thread-602363][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:58:37,419 [DEBUG][       Thread-602363][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:58:37,419 [DEBUG][       Thread-602363][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:58:37,419 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:58:37,419 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:58:37,420 [DEBUG][       Thread-602363][   transport.py][1871] : userauth is OK
2025-07-01 10:58:37,444 [ INFO][       Thread-602363][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:58:37,445 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:58:38,063 [DEBUG][       Thread-602363][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:58:38,064 [DEBUG][       Thread-602363][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:58:38,105 [DEBUG][       Thread-602363][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:58:38,105 [DEBUG][       Thread-602363][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:58:38,108 [DEBUG][       Thread-602363][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:58:38,118 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:58:38,118 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:58:38,120 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:58:38,122 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:58:38,127 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:58:38,128 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:58:38,129 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:58:38,129 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:58:38,129 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.373904 -999.00  +10.40  31.17     54   +1.70 1 2 2 1 1   887    0 8.82 15.46 ----- 31.2 31.2 51.0 40.5 14.1 -21.2 12.9 -21.8 12.2 -19.9 13.3 -18.7
2025-07-01 10:58:38,129 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:58:38,129 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:58:38,129 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.373904
2025-07-01 10:58:38,130 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:58:38,130 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:58:38,131 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:58:38,131 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:58:38,131 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:58:38,131 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:58:12', tmtdew=9.97, humidity=49.93, cloud=0.0, wind=34.44, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:58:25.306', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:58:38,132 [DEBUG][       Thread-602363][   transport.py][1871] : EOF in transport thread
2025-07-01 10:58:38,214 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:58:38,224 [DEBUG][       Thread-602366][   transport.py][1871] : starting thread (client mode): 0x818e650
2025-07-01 10:58:38,224 [DEBUG][       Thread-602366][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:58:38,239 [DEBUG][       Thread-602366][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:58:38,239 [ INFO][       Thread-602366][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:58:38,246 [DEBUG][       Thread-602366][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:58:38,247 [DEBUG][       Thread-602366][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:58:38,247 [DEBUG][       Thread-602366][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:58:38,247 [DEBUG][       Thread-602366][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:58:38,247 [DEBUG][       Thread-602366][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:58:38,247 [DEBUG][       Thread-602366][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:58:38,247 [DEBUG][       Thread-602366][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:58:38,247 [DEBUG][       Thread-602366][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:58:38,247 [DEBUG][       Thread-602366][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:58:38,247 [DEBUG][       Thread-602366][   transport.py][1871] : client lang: <none>
2025-07-01 10:58:38,247 [DEBUG][       Thread-602366][   transport.py][1871] : server lang: <none>
2025-07-01 10:58:38,247 [DEBUG][       Thread-602366][   transport.py][1871] : kex follows: False
2025-07-01 10:58:38,247 [DEBUG][       Thread-602366][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:58:38,247 [DEBUG][       Thread-602366][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:58:38,247 [DEBUG][       Thread-602366][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:58:38,247 [DEBUG][       Thread-602366][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:58:38,247 [DEBUG][       Thread-602366][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:58:38,247 [DEBUG][       Thread-602366][   transport.py][1871] : Compression: none
2025-07-01 10:58:38,247 [DEBUG][       Thread-602366][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:58:38,307 [DEBUG][       Thread-602366][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:58:38,308 [DEBUG][       Thread-602366][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:58:38,308 [DEBUG][       Thread-602366][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:58:38,308 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:58:38,309 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:58:38,363 [DEBUG][       Thread-602366][   transport.py][1871] : userauth is OK
2025-07-01 10:58:38,363 [DEBUG][       Thread-602366][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:58:38,363 [DEBUG][       Thread-602366][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:58:38,363 [DEBUG][       Thread-602366][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:58:38,363 [DEBUG][       Thread-602366][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:58:38,381 [ INFO][       Thread-602366][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:58:38,382 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:58:38,382 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:58:39,365 [DEBUG][       Thread-602366][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:58:39,365 [DEBUG][       Thread-602366][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:58:39,416 [DEBUG][       Thread-602366][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:58:39,416 [DEBUG][       Thread-602366][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:58:39,426 [DEBUG][       Thread-602366][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:58:39,436 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:58:39,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-07-01 10:58:39,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-07-01 10:58:39,459 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:58:39,459 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:58:39,459 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:58:39,471 [DEBUG][       Thread-602366][   transport.py][1871] : EOF in transport thread
2025-07-01 10:58:40,060 [DEBUG][Thread-602368 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:58:49,082 [DEBUG][Thread-602369 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:58:49,470 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:58:49,470 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:58:49,470 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:58:49,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-07-01 10:58:49,955 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 58, 44), 9.95, 50.01, 0.0, 38.2, 10.27, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:58:49,955 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:58:44
2025-07-01 10:58:50,038 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:58:50,044 [DEBUG][       Thread-602370][   transport.py][1871] : starting thread (client mode): 0x81db3a0
2025-07-01 10:58:50,044 [DEBUG][       Thread-602370][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:58:50,063 [DEBUG][       Thread-602370][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:58:50,063 [ INFO][       Thread-602370][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:58:50,066 [DEBUG][       Thread-602370][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:58:50,066 [DEBUG][       Thread-602370][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:58:50,066 [DEBUG][       Thread-602370][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:58:50,066 [DEBUG][       Thread-602370][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:58:50,066 [DEBUG][       Thread-602370][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:58:50,067 [DEBUG][       Thread-602370][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:58:50,067 [DEBUG][       Thread-602370][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:58:50,067 [DEBUG][       Thread-602370][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:58:50,067 [DEBUG][       Thread-602370][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:58:50,067 [DEBUG][       Thread-602370][   transport.py][1871] : client lang: <none>
2025-07-01 10:58:50,067 [DEBUG][       Thread-602370][   transport.py][1871] : server lang: <none>
2025-07-01 10:58:50,067 [DEBUG][       Thread-602370][   transport.py][1871] : kex follows: False
2025-07-01 10:58:50,067 [DEBUG][       Thread-602370][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:58:50,067 [DEBUG][       Thread-602370][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:58:50,067 [DEBUG][       Thread-602370][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:58:50,067 [DEBUG][       Thread-602370][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:58:50,067 [DEBUG][       Thread-602370][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:58:50,067 [DEBUG][       Thread-602370][   transport.py][1871] : Compression: none
2025-07-01 10:58:50,067 [DEBUG][       Thread-602370][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:58:50,076 [DEBUG][       Thread-602370][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:58:50,076 [DEBUG][       Thread-602370][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:58:50,077 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:58:50,077 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:58:50,078 [DEBUG][       Thread-602370][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:58:50,078 [DEBUG][       Thread-602370][   transport.py][1871] : userauth is OK
2025-07-01 10:58:50,102 [ INFO][       Thread-602370][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:58:50,102 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:58:50,740 [DEBUG][       Thread-602370][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:58:50,740 [DEBUG][       Thread-602370][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:58:50,784 [DEBUG][       Thread-602370][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:58:50,784 [DEBUG][       Thread-602370][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:58:50,787 [DEBUG][       Thread-602370][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:58:50,798 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:58:50,798 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:58:50,799 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:58:50,800 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:58:50,804 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:58:50,805 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:58:50,805 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:58:50,805 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:58:50,805 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.373904 -999.00  +10.40  31.17     54   +1.70 1 2 2 1 1   887    0 8.82 15.46 ----- 31.2 31.2 51.0 40.5 14.1 -21.2 12.9 -21.8 12.2 -19.9 13.3 -18.7
2025-07-01 10:58:50,805 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:58:50,805 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:58:50,805 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.373904
2025-07-01 10:58:50,806 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:58:50,806 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:58:50,806 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:58:50,806 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:58:50,806 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:58:50,806 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:58:44', tmtdew=9.95, humidity=50.01, cloud=0.0, wind=38.2, temperature=10.27, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:58:25.306', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:58:50,806 [DEBUG][       Thread-602370][   transport.py][1871] : EOF in transport thread
2025-07-01 10:58:50,898 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:58:50,914 [DEBUG][       Thread-602373][   transport.py][1871] : starting thread (client mode): 0x81e7cd0
2025-07-01 10:58:50,914 [DEBUG][       Thread-602373][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:58:50,933 [DEBUG][       Thread-602373][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:58:50,933 [ INFO][       Thread-602373][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:58:50,941 [DEBUG][       Thread-602373][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:58:50,941 [DEBUG][       Thread-602373][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:58:50,941 [DEBUG][       Thread-602373][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:58:50,941 [DEBUG][       Thread-602373][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:58:50,941 [DEBUG][       Thread-602373][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:58:50,941 [DEBUG][       Thread-602373][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:58:50,941 [DEBUG][       Thread-602373][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:58:50,941 [DEBUG][       Thread-602373][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:58:50,941 [DEBUG][       Thread-602373][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:58:50,941 [DEBUG][       Thread-602373][   transport.py][1871] : client lang: <none>
2025-07-01 10:58:50,941 [DEBUG][       Thread-602373][   transport.py][1871] : server lang: <none>
2025-07-01 10:58:50,941 [DEBUG][       Thread-602373][   transport.py][1871] : kex follows: False
2025-07-01 10:58:50,941 [DEBUG][       Thread-602373][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:58:50,941 [DEBUG][       Thread-602373][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:58:50,941 [DEBUG][       Thread-602373][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:58:50,941 [DEBUG][       Thread-602373][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:58:50,941 [DEBUG][       Thread-602373][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:58:50,941 [DEBUG][       Thread-602373][   transport.py][1871] : Compression: none
2025-07-01 10:58:50,941 [DEBUG][       Thread-602373][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:58:50,997 [DEBUG][       Thread-602373][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:58:50,997 [DEBUG][       Thread-602373][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:58:50,997 [DEBUG][       Thread-602373][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:58:50,997 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:58:50,998 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:58:51,058 [DEBUG][       Thread-602373][   transport.py][1871] : userauth is OK
2025-07-01 10:58:51,058 [DEBUG][       Thread-602373][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:58:51,058 [DEBUG][       Thread-602373][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:58:51,059 [DEBUG][       Thread-602373][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:58:51,059 [DEBUG][       Thread-602373][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:58:51,073 [ INFO][       Thread-602373][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:58:51,073 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:58:51,073 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:58:52,127 [DEBUG][       Thread-602373][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:58:52,127 [DEBUG][       Thread-602373][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:58:52,175 [DEBUG][       Thread-602373][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:58:52,175 [DEBUG][       Thread-602373][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:58:52,184 [DEBUG][       Thread-602373][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:58:52,192 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:58:52,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-07-01 10:58: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') -> 00000000
2025-07-01 10:58:52,207 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:58:52,207 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:58:52,208 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:58:52,215 [DEBUG][       Thread-602373][   transport.py][1871] : EOF in transport thread
2025-07-01 10:58:58,102 [DEBUG][Thread-602375 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:59:02,218 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:59:02,218 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:59:02,218 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:59:02,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-07-01 10:59:02,706 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 58, 44), 9.95, 50.01, 0.0, 38.2, 10.27, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:59:02,706 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:58:44
2025-07-01 10:59:02,788 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:59:02,792 [DEBUG][       Thread-602376][   transport.py][1871] : starting thread (client mode): 0x82b3310
2025-07-01 10:59:02,792 [DEBUG][       Thread-602376][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:59:02,812 [DEBUG][       Thread-602376][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:59:02,812 [ INFO][       Thread-602376][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:59:02,815 [DEBUG][       Thread-602376][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:59:02,815 [DEBUG][       Thread-602376][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:59:02,815 [DEBUG][       Thread-602376][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:59:02,815 [DEBUG][       Thread-602376][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:59:02,815 [DEBUG][       Thread-602376][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:59:02,815 [DEBUG][       Thread-602376][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:59:02,815 [DEBUG][       Thread-602376][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:59:02,815 [DEBUG][       Thread-602376][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:59:02,815 [DEBUG][       Thread-602376][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:59:02,816 [DEBUG][       Thread-602376][   transport.py][1871] : client lang: <none>
2025-07-01 10:59:02,816 [DEBUG][       Thread-602376][   transport.py][1871] : server lang: <none>
2025-07-01 10:59:02,816 [DEBUG][       Thread-602376][   transport.py][1871] : kex follows: False
2025-07-01 10:59:02,816 [DEBUG][       Thread-602376][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:59:02,816 [DEBUG][       Thread-602376][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:59:02,816 [DEBUG][       Thread-602376][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:59:02,816 [DEBUG][       Thread-602376][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:59:02,816 [DEBUG][       Thread-602376][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:59:02,816 [DEBUG][       Thread-602376][   transport.py][1871] : Compression: none
2025-07-01 10:59:02,816 [DEBUG][       Thread-602376][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:59:02,832 [DEBUG][       Thread-602376][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:59:02,832 [DEBUG][       Thread-602376][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:59:02,833 [DEBUG][       Thread-602376][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:59:02,833 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:59:02,833 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:59:02,834 [DEBUG][       Thread-602376][   transport.py][1871] : userauth is OK
2025-07-01 10:59:02,847 [ INFO][       Thread-602376][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:59:02,848 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:59:03,484 [DEBUG][       Thread-602376][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:59:03,484 [DEBUG][       Thread-602376][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:59:03,525 [DEBUG][       Thread-602376][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:59:03,525 [DEBUG][       Thread-602376][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:59:03,528 [DEBUG][       Thread-602376][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:59:03,540 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:59:03,540 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:59:03,542 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:59:03,544 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:59:03,551 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:59:03,553 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:59:03,553 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:59:03,554 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:59:03,554 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.373904 -999.00  +10.40  31.17     54   +1.70 1 2 2 1 1   887    0 8.82 15.46 ----- 31.2 31.2 51.0 40.5 14.1 -21.2 12.9 -21.8 12.2 -19.9 13.3 -18.7
2025-07-01 10:59:03,554 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:59:03,554 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:59:03,554 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.373904
2025-07-01 10:59:03,555 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:59:03,555 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:59:03,555 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:59:03,555 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:59:03,555 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:59:03,555 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:58:44', tmtdew=9.95, humidity=50.01, cloud=0.0, wind=38.2, temperature=10.27, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:58:25.306', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:59:03,556 [DEBUG][       Thread-602376][   transport.py][1871] : EOF in transport thread
2025-07-01 10:59:03,640 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:59:03,650 [DEBUG][       Thread-602379][   transport.py][1871] : starting thread (client mode): 0x818e2f0
2025-07-01 10:59:03,650 [DEBUG][       Thread-602379][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:59:03,668 [DEBUG][       Thread-602379][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:59:03,668 [ INFO][       Thread-602379][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:59:03,675 [DEBUG][       Thread-602379][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:59:03,675 [DEBUG][       Thread-602379][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:59:03,675 [DEBUG][       Thread-602379][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:59:03,676 [DEBUG][       Thread-602379][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:59:03,676 [DEBUG][       Thread-602379][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:59:03,676 [DEBUG][       Thread-602379][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:59:03,676 [DEBUG][       Thread-602379][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:59:03,676 [DEBUG][       Thread-602379][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:59:03,676 [DEBUG][       Thread-602379][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:59:03,676 [DEBUG][       Thread-602379][   transport.py][1871] : client lang: <none>
2025-07-01 10:59:03,676 [DEBUG][       Thread-602379][   transport.py][1871] : server lang: <none>
2025-07-01 10:59:03,676 [DEBUG][       Thread-602379][   transport.py][1871] : kex follows: False
2025-07-01 10:59:03,676 [DEBUG][       Thread-602379][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:59:03,676 [DEBUG][       Thread-602379][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:59:03,676 [DEBUG][       Thread-602379][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:59:03,676 [DEBUG][       Thread-602379][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:59:03,676 [DEBUG][       Thread-602379][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:59:03,676 [DEBUG][       Thread-602379][   transport.py][1871] : Compression: none
2025-07-01 10:59:03,676 [DEBUG][       Thread-602379][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:59:03,719 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:59:03,720 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:59:03,740 [DEBUG][       Thread-602379][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:59:03,740 [DEBUG][       Thread-602379][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:59:03,741 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:59:03,741 [DEBUG][       Thread-602379][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:59:03,742 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:59:03,799 [DEBUG][       Thread-602379][   transport.py][1871] : userauth is OK
2025-07-01 10:59:03,799 [DEBUG][       Thread-602379][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:59:03,799 [DEBUG][       Thread-602379][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:59:03,799 [DEBUG][       Thread-602379][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:59:03,799 [DEBUG][       Thread-602379][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:59:03,819 [ INFO][       Thread-602379][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:59:03,819 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:59:03,820 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:59:04,839 [DEBUG][       Thread-602379][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:59:04,839 [DEBUG][       Thread-602379][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:59:04,888 [DEBUG][       Thread-602379][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:59:04,888 [DEBUG][       Thread-602379][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:59:04,898 [DEBUG][       Thread-602379][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:59:04,907 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:59:04,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-07-01 10:59:04,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-07-01 10:59:04,924 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:59:04,925 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:59:04,925 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:59:04,933 [DEBUG][       Thread-602379][   transport.py][1871] : EOF in transport thread
2025-07-01 10:59:07,144 [DEBUG][Thread-602381 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:59:14,936 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:59:14,936 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:59:14,936 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:59:14,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-07-01 10:59:15,432 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 58, 44), 9.95, 50.01, 0.0, 38.2, 10.27, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:59:15,432 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:58:44
2025-07-01 10:59:15,515 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:59:15,521 [DEBUG][       Thread-602382][   transport.py][1871] : starting thread (client mode): 0x8106d70
2025-07-01 10:59:15,521 [DEBUG][       Thread-602382][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:59:15,544 [DEBUG][       Thread-602382][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:59:15,545 [ INFO][       Thread-602382][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:59:15,548 [DEBUG][       Thread-602382][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:59:15,549 [DEBUG][       Thread-602382][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:59:15,549 [DEBUG][       Thread-602382][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:59:15,549 [DEBUG][       Thread-602382][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:59:15,549 [DEBUG][       Thread-602382][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:59:15,549 [DEBUG][       Thread-602382][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:59:15,549 [DEBUG][       Thread-602382][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:59:15,549 [DEBUG][       Thread-602382][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:59:15,549 [DEBUG][       Thread-602382][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:59:15,549 [DEBUG][       Thread-602382][   transport.py][1871] : client lang: <none>
2025-07-01 10:59:15,549 [DEBUG][       Thread-602382][   transport.py][1871] : server lang: <none>
2025-07-01 10:59:15,549 [DEBUG][       Thread-602382][   transport.py][1871] : kex follows: False
2025-07-01 10:59:15,549 [DEBUG][       Thread-602382][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:59:15,549 [DEBUG][       Thread-602382][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:59:15,549 [DEBUG][       Thread-602382][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:59:15,549 [DEBUG][       Thread-602382][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:59:15,549 [DEBUG][       Thread-602382][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:59:15,549 [DEBUG][       Thread-602382][   transport.py][1871] : Compression: none
2025-07-01 10:59:15,549 [DEBUG][       Thread-602382][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:59:15,569 [DEBUG][       Thread-602382][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:59:15,570 [DEBUG][       Thread-602382][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:59:15,570 [DEBUG][       Thread-602382][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:59:15,571 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:59:15,571 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:59:15,572 [DEBUG][       Thread-602382][   transport.py][1871] : userauth is OK
2025-07-01 10:59:15,597 [ INFO][       Thread-602382][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:59:15,598 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:59:16,166 [DEBUG][Thread-602384 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:59:16,251 [DEBUG][       Thread-602382][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:59:16,252 [DEBUG][       Thread-602382][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:59:16,293 [DEBUG][       Thread-602382][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:59:16,293 [DEBUG][       Thread-602382][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:59:16,296 [DEBUG][       Thread-602382][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:59:16,310 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:59:16,311 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:59:16,313 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:59:16,315 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:59:16,321 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:59:16,322 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:59:16,323 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:59:16,323 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:59:16,323 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.374251 -999.00  +10.40  32.37     54   +1.60 1 2 2 1 1   887    0 9.02 16.11 ----- 32.4 32.4 45.8 40.9 14.1 -21.3 12.9 -21.3 12.2 -20.3 13.3 -19.2
2025-07-01 10:59:16,324 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:59:16,324 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:59:16,324 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.374251
2025-07-01 10:59:16,324 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:59:16,325 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:59:16,325 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:59:16,325 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:59:16,325 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:59:16,325 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:58:44', tmtdew=9.95, humidity=50.01, cloud=0.0, wind=38.2, temperature=10.27, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:58:55.286', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:59:16,326 [DEBUG][       Thread-602382][   transport.py][1871] : EOF in transport thread
2025-07-01 10:59:16,409 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:59:16,425 [DEBUG][       Thread-602386][   transport.py][1871] : starting thread (client mode): 0x8154970
2025-07-01 10:59:16,425 [DEBUG][       Thread-602386][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:59:16,441 [DEBUG][       Thread-602386][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:59:16,441 [ INFO][       Thread-602386][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:59:16,449 [DEBUG][       Thread-602386][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:59:16,449 [DEBUG][       Thread-602386][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:59:16,449 [DEBUG][       Thread-602386][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:59:16,449 [DEBUG][       Thread-602386][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:59:16,449 [DEBUG][       Thread-602386][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:59:16,449 [DEBUG][       Thread-602386][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:59:16,449 [DEBUG][       Thread-602386][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:59:16,449 [DEBUG][       Thread-602386][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:59:16,449 [DEBUG][       Thread-602386][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:59:16,449 [DEBUG][       Thread-602386][   transport.py][1871] : client lang: <none>
2025-07-01 10:59:16,449 [DEBUG][       Thread-602386][   transport.py][1871] : server lang: <none>
2025-07-01 10:59:16,449 [DEBUG][       Thread-602386][   transport.py][1871] : kex follows: False
2025-07-01 10:59:16,450 [DEBUG][       Thread-602386][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:59:16,450 [DEBUG][       Thread-602386][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:59:16,450 [DEBUG][       Thread-602386][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:59:16,450 [DEBUG][       Thread-602386][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:59:16,450 [DEBUG][       Thread-602386][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:59:16,450 [DEBUG][       Thread-602386][   transport.py][1871] : Compression: none
2025-07-01 10:59:16,450 [DEBUG][       Thread-602386][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:59:16,506 [DEBUG][       Thread-602386][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:59:16,507 [DEBUG][       Thread-602386][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:59:16,507 [DEBUG][       Thread-602386][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:59:16,508 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:59:16,509 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:59:16,562 [DEBUG][       Thread-602386][   transport.py][1871] : userauth is OK
2025-07-01 10:59:16,562 [DEBUG][       Thread-602386][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:59:16,562 [DEBUG][       Thread-602386][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:59:16,562 [DEBUG][       Thread-602386][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:59:16,562 [DEBUG][       Thread-602386][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:59:16,577 [ INFO][       Thread-602386][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:59:16,578 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:59:16,578 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:59:17,632 [DEBUG][       Thread-602386][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:59:17,632 [DEBUG][       Thread-602386][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:59:17,683 [DEBUG][       Thread-602386][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:59:17,683 [DEBUG][       Thread-602386][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:59:17,692 [DEBUG][       Thread-602386][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:59:17,700 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:59:17,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-07-01 10:59: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') -> 00000000
2025-07-01 10:59:17,715 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:59:17,715 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:59:17,715 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:59:17,723 [DEBUG][       Thread-602386][   transport.py][1871] : EOF in transport thread
2025-07-01 10:59:24,709 [DEBUG][Thread-602388 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:59:25,188 [DEBUG][Thread-602389 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:59:27,724 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:59:27,724 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:59:27,724 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:59:27,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-07-01 10:59:28,219 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 59, 16), 9.98, 49.91, 0.0, 29.66, 10.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:59:28,220 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:59:16
2025-07-01 10:59:28,302 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:59:28,307 [DEBUG][       Thread-602390][   transport.py][1871] : starting thread (client mode): 0x82b2bc0
2025-07-01 10:59:28,307 [DEBUG][       Thread-602390][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:59:28,323 [DEBUG][       Thread-602390][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:59:28,323 [ INFO][       Thread-602390][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:59:28,326 [DEBUG][       Thread-602390][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:59:28,326 [DEBUG][       Thread-602390][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:59:28,326 [DEBUG][       Thread-602390][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:59:28,326 [DEBUG][       Thread-602390][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:59:28,326 [DEBUG][       Thread-602390][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:59:28,326 [DEBUG][       Thread-602390][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:59:28,326 [DEBUG][       Thread-602390][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:59:28,326 [DEBUG][       Thread-602390][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:59:28,326 [DEBUG][       Thread-602390][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:59:28,326 [DEBUG][       Thread-602390][   transport.py][1871] : client lang: <none>
2025-07-01 10:59:28,326 [DEBUG][       Thread-602390][   transport.py][1871] : server lang: <none>
2025-07-01 10:59:28,326 [DEBUG][       Thread-602390][   transport.py][1871] : kex follows: False
2025-07-01 10:59:28,326 [DEBUG][       Thread-602390][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:59:28,327 [DEBUG][       Thread-602390][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:59:28,327 [DEBUG][       Thread-602390][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:59:28,327 [DEBUG][       Thread-602390][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:59:28,327 [DEBUG][       Thread-602390][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:59:28,327 [DEBUG][       Thread-602390][   transport.py][1871] : Compression: none
2025-07-01 10:59:28,327 [DEBUG][       Thread-602390][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:59:28,343 [DEBUG][       Thread-602390][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:59:28,343 [DEBUG][       Thread-602390][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:59:28,344 [DEBUG][       Thread-602390][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:59:28,344 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:59:28,344 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:59:28,345 [DEBUG][       Thread-602390][   transport.py][1871] : userauth is OK
2025-07-01 10:59:28,358 [ INFO][       Thread-602390][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:59:28,358 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:59:29,052 [DEBUG][       Thread-602390][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:59:29,052 [DEBUG][       Thread-602390][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:59:29,096 [DEBUG][       Thread-602390][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:59:29,096 [DEBUG][       Thread-602390][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:59:29,099 [DEBUG][       Thread-602390][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:59:29,111 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:59:29,111 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:59:29,112 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:59:29,113 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:59:29,116 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:59:29,117 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:59:29,117 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:59:29,117 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:59:29,117 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.374251 -999.00  +10.40  32.37     54   +1.60 1 2 2 1 1   887    0 9.02 16.11 ----- 32.4 32.4 45.8 40.9 14.1 -21.3 12.9 -21.3 12.2 -20.3 13.3 -19.2
2025-07-01 10:59:29,117 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:59:29,117 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:59:29,117 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.374251
2025-07-01 10:59:29,117 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:59:29,118 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:59:29,118 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:59:29,118 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:59:29,118 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:59:29,118 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:59:16', tmtdew=9.98, humidity=49.91, cloud=0.0, wind=29.66, temperature=10.32, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:58:55.286', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:59:29,118 [DEBUG][       Thread-602390][   transport.py][1871] : EOF in transport thread
2025-07-01 10:59:29,189 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:59:29,203 [DEBUG][       Thread-602393][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 10:59:29,204 [DEBUG][       Thread-602393][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:59:29,219 [DEBUG][       Thread-602393][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:59:29,219 [ INFO][       Thread-602393][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:59:29,230 [DEBUG][       Thread-602393][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:59:29,230 [DEBUG][       Thread-602393][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:59:29,230 [DEBUG][       Thread-602393][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:59:29,230 [DEBUG][       Thread-602393][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:59:29,230 [DEBUG][       Thread-602393][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:59:29,230 [DEBUG][       Thread-602393][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:59:29,230 [DEBUG][       Thread-602393][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:59:29,230 [DEBUG][       Thread-602393][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:59:29,230 [DEBUG][       Thread-602393][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:59:29,230 [DEBUG][       Thread-602393][   transport.py][1871] : client lang: <none>
2025-07-01 10:59:29,230 [DEBUG][       Thread-602393][   transport.py][1871] : server lang: <none>
2025-07-01 10:59:29,230 [DEBUG][       Thread-602393][   transport.py][1871] : kex follows: False
2025-07-01 10:59:29,230 [DEBUG][       Thread-602393][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:59:29,230 [DEBUG][       Thread-602393][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:59:29,230 [DEBUG][       Thread-602393][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:59:29,230 [DEBUG][       Thread-602393][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:59:29,230 [DEBUG][       Thread-602393][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:59:29,230 [DEBUG][       Thread-602393][   transport.py][1871] : Compression: none
2025-07-01 10:59:29,230 [DEBUG][       Thread-602393][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:59:29,286 [DEBUG][       Thread-602393][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:59:29,286 [DEBUG][       Thread-602393][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:59:29,286 [DEBUG][       Thread-602393][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:59:29,286 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:59:29,286 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:59:29,342 [DEBUG][       Thread-602393][   transport.py][1871] : userauth is OK
2025-07-01 10:59:29,342 [DEBUG][       Thread-602393][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:59:29,342 [DEBUG][       Thread-602393][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:59:29,342 [DEBUG][       Thread-602393][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:59:29,342 [DEBUG][       Thread-602393][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:59:29,361 [ INFO][       Thread-602393][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:59:29,361 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:59:29,361 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:59:30,378 [DEBUG][       Thread-602393][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:59:30,378 [DEBUG][       Thread-602393][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:59:30,427 [DEBUG][       Thread-602393][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:59:30,427 [DEBUG][       Thread-602393][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:59:30,435 [DEBUG][       Thread-602393][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:59:30,443 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:59: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')
2025-07-01 10:59:30,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-07-01 10:59:30,462 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:59:30,462 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:59:30,462 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:59:30,470 [DEBUG][       Thread-602393][   transport.py][1871] : EOF in transport thread
2025-07-01 10:59:34,207 [DEBUG][Thread-602395 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:59:40,472 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:59:40,472 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:59:40,472 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:59:40,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-07-01 10:59:40,953 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 59, 16), 9.98, 49.91, 0.0, 29.66, 10.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:59:40,953 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:59:16
2025-07-01 10:59:41,035 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:59:41,039 [DEBUG][       Thread-602396][   transport.py][1871] : starting thread (client mode): 0x81dae00
2025-07-01 10:59:41,039 [DEBUG][       Thread-602396][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:59:41,060 [DEBUG][       Thread-602396][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:59:41,060 [ INFO][       Thread-602396][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:59:41,064 [DEBUG][       Thread-602396][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:59:41,064 [DEBUG][       Thread-602396][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:59:41,064 [DEBUG][       Thread-602396][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:59:41,064 [DEBUG][       Thread-602396][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:59:41,064 [DEBUG][       Thread-602396][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:59:41,064 [DEBUG][       Thread-602396][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:59:41,064 [DEBUG][       Thread-602396][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:59:41,064 [DEBUG][       Thread-602396][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:59:41,064 [DEBUG][       Thread-602396][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:59:41,064 [DEBUG][       Thread-602396][   transport.py][1871] : client lang: <none>
2025-07-01 10:59:41,064 [DEBUG][       Thread-602396][   transport.py][1871] : server lang: <none>
2025-07-01 10:59:41,064 [DEBUG][       Thread-602396][   transport.py][1871] : kex follows: False
2025-07-01 10:59:41,064 [DEBUG][       Thread-602396][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:59:41,064 [DEBUG][       Thread-602396][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:59:41,064 [DEBUG][       Thread-602396][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:59:41,064 [DEBUG][       Thread-602396][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:59:41,064 [DEBUG][       Thread-602396][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:59:41,064 [DEBUG][       Thread-602396][   transport.py][1871] : Compression: none
2025-07-01 10:59:41,064 [DEBUG][       Thread-602396][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:59:41,081 [DEBUG][       Thread-602396][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:59:41,081 [DEBUG][       Thread-602396][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:59:41,082 [DEBUG][       Thread-602396][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:59:41,082 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:59:41,082 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:59:41,083 [DEBUG][       Thread-602396][   transport.py][1871] : userauth is OK
2025-07-01 10:59:41,107 [ INFO][       Thread-602396][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:59:41,108 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:59:41,783 [DEBUG][       Thread-602396][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:59:41,783 [DEBUG][       Thread-602396][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:59:41,825 [DEBUG][       Thread-602396][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:59:41,825 [DEBUG][       Thread-602396][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:59:41,829 [DEBUG][       Thread-602396][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:59:41,841 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:59:41,842 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:59:41,844 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:59:41,846 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:59:41,852 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:59:41,854 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:59:41,855 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:59:41,855 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:59:41,856 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.374251 -999.00  +10.40  32.37     54   +1.60 1 2 2 1 1   887    0 9.02 16.11 ----- 32.4 32.4 45.8 40.9 14.1 -21.3 12.9 -21.3 12.2 -20.3 13.3 -19.2
2025-07-01 10:59:41,856 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:59:41,856 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:59:41,856 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.374251
2025-07-01 10:59:41,856 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:59:41,857 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:59:41,857 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:59:41,857 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:59:41,857 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:59:41,857 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:59:16', tmtdew=9.98, humidity=49.91, cloud=0.0, wind=29.66, temperature=10.32, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:58:55.286', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:59:41,857 [DEBUG][       Thread-602396][   transport.py][1871] : EOF in transport thread
2025-07-01 10:59:41,941 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:59:41,950 [DEBUG][       Thread-602399][   transport.py][1871] : starting thread (client mode): 0x82b1a20
2025-07-01 10:59:41,950 [DEBUG][       Thread-602399][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:59:41,965 [DEBUG][       Thread-602399][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:59:41,965 [ INFO][       Thread-602399][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:59:41,972 [DEBUG][       Thread-602399][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:59:41,973 [DEBUG][       Thread-602399][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:59:41,973 [DEBUG][       Thread-602399][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:59:41,973 [DEBUG][       Thread-602399][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:59:41,973 [DEBUG][       Thread-602399][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:59:41,973 [DEBUG][       Thread-602399][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:59:41,973 [DEBUG][       Thread-602399][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:59:41,973 [DEBUG][       Thread-602399][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:59:41,973 [DEBUG][       Thread-602399][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:59:41,973 [DEBUG][       Thread-602399][   transport.py][1871] : client lang: <none>
2025-07-01 10:59:41,973 [DEBUG][       Thread-602399][   transport.py][1871] : server lang: <none>
2025-07-01 10:59:41,973 [DEBUG][       Thread-602399][   transport.py][1871] : kex follows: False
2025-07-01 10:59:41,973 [DEBUG][       Thread-602399][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:59:41,973 [DEBUG][       Thread-602399][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:59:41,973 [DEBUG][       Thread-602399][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:59:41,973 [DEBUG][       Thread-602399][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:59:41,973 [DEBUG][       Thread-602399][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:59:41,973 [DEBUG][       Thread-602399][   transport.py][1871] : Compression: none
2025-07-01 10:59:41,973 [DEBUG][       Thread-602399][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:59:42,032 [DEBUG][       Thread-602399][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:59:42,032 [DEBUG][       Thread-602399][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:59:42,033 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:59:42,033 [DEBUG][       Thread-602399][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:59:42,034 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:59:42,092 [DEBUG][       Thread-602399][   transport.py][1871] : userauth is OK
2025-07-01 10:59:42,093 [DEBUG][       Thread-602399][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:59:42,093 [DEBUG][       Thread-602399][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:59:42,093 [DEBUG][       Thread-602399][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:59:42,093 [DEBUG][       Thread-602399][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:59:42,112 [ INFO][       Thread-602399][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:59:42,112 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:59:42,113 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:59:43,116 [DEBUG][       Thread-602399][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:59:43,116 [DEBUG][       Thread-602399][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:59:43,164 [DEBUG][       Thread-602399][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:59:43,164 [DEBUG][       Thread-602399][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:59:43,173 [DEBUG][       Thread-602399][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:59:43,182 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:59:43,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-07-01 10:59:43,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-07-01 10:59:43,200 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:59:43,200 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:59:43,200 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:59:43,208 [DEBUG][       Thread-602399][   transport.py][1871] : EOF in transport thread
2025-07-01 10:59:43,251 [DEBUG][Thread-602401 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:59:52,273 [DEBUG][Thread-602402 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 10:59:53,211 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 10:59:53,211 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 10:59:53,211 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 10:59:53,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-07-01 10:59:53,702 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 59, 48), 9.97, 49.95, 0.0, 30.28, 10.35, 0, 0, 0, 2, 0, 0),)
2025-07-01 10:59:53,702 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:59:48
2025-07-01 10:59:53,785 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 10:59:53,790 [DEBUG][       Thread-602403][   transport.py][1871] : starting thread (client mode): 0x81dae00
2025-07-01 10:59:53,791 [DEBUG][       Thread-602403][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:59:53,812 [DEBUG][       Thread-602403][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 10:59:53,812 [ INFO][       Thread-602403][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 10:59:53,816 [DEBUG][       Thread-602403][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:59:53,816 [DEBUG][       Thread-602403][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 10:59:53,816 [DEBUG][       Thread-602403][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:59:53,816 [DEBUG][       Thread-602403][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:59:53,816 [DEBUG][       Thread-602403][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:59:53,816 [DEBUG][       Thread-602403][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:59:53,816 [DEBUG][       Thread-602403][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:59:53,816 [DEBUG][       Thread-602403][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:59:53,816 [DEBUG][       Thread-602403][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:59:53,816 [DEBUG][       Thread-602403][   transport.py][1871] : client lang: <none>
2025-07-01 10:59:53,816 [DEBUG][       Thread-602403][   transport.py][1871] : server lang: <none>
2025-07-01 10:59:53,817 [DEBUG][       Thread-602403][   transport.py][1871] : kex follows: False
2025-07-01 10:59:53,817 [DEBUG][       Thread-602403][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:59:53,817 [DEBUG][       Thread-602403][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:59:53,817 [DEBUG][       Thread-602403][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:59:53,817 [DEBUG][       Thread-602403][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:59:53,817 [DEBUG][       Thread-602403][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:59:53,817 [DEBUG][       Thread-602403][   transport.py][1871] : Compression: none
2025-07-01 10:59:53,817 [DEBUG][       Thread-602403][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:59:53,836 [DEBUG][       Thread-602403][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:59:53,837 [DEBUG][       Thread-602403][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:59:53,837 [DEBUG][       Thread-602403][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 10:59:53,837 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 10:59:53,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 10:59:53,839 [DEBUG][       Thread-602403][   transport.py][1871] : userauth is OK
2025-07-01 10:59:53,864 [ INFO][       Thread-602403][   transport.py][1871] : Authentication (password) successful!
2025-07-01 10:59:53,865 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:59:54,514 [DEBUG][       Thread-602403][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:59:54,515 [DEBUG][       Thread-602403][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:59:54,557 [DEBUG][       Thread-602403][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:59:54,557 [DEBUG][       Thread-602403][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:59:54,560 [DEBUG][       Thread-602403][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:59:54,573 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:59:54,573 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 10:59:54,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 10:59:54,577 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 10:59:54,584 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:59:54,586 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:59:54,586 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:59:54,587 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 10:59:54,587 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.374598 -999.00  +10.40  30.59     54   +1.70 1 2 2 1 1   887    0 9.09 17.26 ----- 30.6 30.6 46.4 46.3 14.1 -20.8 12.9 -21.2 12.3 -19.4 13.3 -18.7
2025-07-01 10:59:54,587 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 10:59:54,587 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 10:59:54,587 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.374598
2025-07-01 10:59:54,587 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 10:59:54,588 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 10:59:54,588 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 10:59:54,588 [DEBUG][       Thread-602403][   transport.py][1871] : EOF in transport thread
2025-07-01 10:59:54,588 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 10:59:54,589 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 10:59:54,589 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:59:48', tmtdew=9.97, humidity=49.95, cloud=0.0, wind=30.28, temperature=10.35, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:59:25.267', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 10:59:54,673 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 10:59:54,684 [DEBUG][       Thread-602406][   transport.py][1871] : starting thread (client mode): 0x81a64d0
2025-07-01 10:59:54,684 [DEBUG][       Thread-602406][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 10:59:54,700 [DEBUG][       Thread-602406][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 10:59:54,700 [ INFO][       Thread-602406][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 10:59:54,707 [DEBUG][       Thread-602406][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 10:59:54,708 [DEBUG][       Thread-602406][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 10:59:54,708 [DEBUG][       Thread-602406][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 10:59:54,708 [DEBUG][       Thread-602406][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:59:54,708 [DEBUG][       Thread-602406][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 10:59:54,708 [DEBUG][       Thread-602406][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:59:54,708 [DEBUG][       Thread-602406][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 10:59:54,708 [DEBUG][       Thread-602406][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 10:59:54,708 [DEBUG][       Thread-602406][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 10:59:54,708 [DEBUG][       Thread-602406][   transport.py][1871] : client lang: <none>
2025-07-01 10:59:54,708 [DEBUG][       Thread-602406][   transport.py][1871] : server lang: <none>
2025-07-01 10:59:54,708 [DEBUG][       Thread-602406][   transport.py][1871] : kex follows: False
2025-07-01 10:59:54,708 [DEBUG][       Thread-602406][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 10:59:54,708 [DEBUG][       Thread-602406][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 10:59:54,708 [DEBUG][       Thread-602406][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 10:59:54,708 [DEBUG][       Thread-602406][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 10:59:54,708 [DEBUG][       Thread-602406][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 10:59:54,708 [DEBUG][       Thread-602406][   transport.py][1871] : Compression: none
2025-07-01 10:59:54,709 [DEBUG][       Thread-602406][   transport.py][1871] : === End of kex handshake ===
2025-07-01 10:59:54,776 [DEBUG][       Thread-602406][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 10:59:54,777 [DEBUG][       Thread-602406][   transport.py][1871] : Switch to new keys ...
2025-07-01 10:59:54,777 [DEBUG][       Thread-602406][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 10:59:54,778 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 10:59:54,778 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 10:59:54,834 [DEBUG][       Thread-602406][   transport.py][1871] : userauth is OK
2025-07-01 10:59:54,834 [DEBUG][       Thread-602406][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 10:59:54,835 [DEBUG][       Thread-602406][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 10:59:54,835 [DEBUG][       Thread-602406][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 10:59:54,835 [DEBUG][       Thread-602406][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 10:59:54,849 [ INFO][       Thread-602406][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 10:59:54,849 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 10:59:54,849 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 10:59:55,839 [DEBUG][       Thread-602406][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 10:59:55,839 [DEBUG][       Thread-602406][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 10:59:55,888 [DEBUG][       Thread-602406][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 10:59:55,888 [DEBUG][       Thread-602406][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 10:59:55,897 [DEBUG][       Thread-602406][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 10:59:55,906 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 10:59:55,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-07-01 10:59: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-07-01 10:59:55,923 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 10:59:55,923 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 10:59:55,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 10:59:55,931 [DEBUG][       Thread-602406][   transport.py][1871] : EOF in transport thread
2025-07-01 11:00:01,295 [DEBUG][Thread-602408 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:00:03,859 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:00:03,860 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:00:05,932 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:00:05,932 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:00:05,933 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:00: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-07-01 11:00:06,411 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 59, 48), 9.97, 49.95, 0.0, 30.28, 10.35, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:00:06,411 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:59:48
2025-07-01 11:00:06,493 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:00:06,496 [DEBUG][       Thread-602409][   transport.py][1871] : starting thread (client mode): 0x81d9c00
2025-07-01 11:00:06,496 [DEBUG][       Thread-602409][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:00:06,517 [DEBUG][       Thread-602409][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:00:06,517 [ INFO][       Thread-602409][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:00:06,520 [DEBUG][       Thread-602409][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:00:06,520 [DEBUG][       Thread-602409][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:00:06,520 [DEBUG][       Thread-602409][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:00:06,521 [DEBUG][       Thread-602409][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:00:06,521 [DEBUG][       Thread-602409][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:00:06,521 [DEBUG][       Thread-602409][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:00:06,521 [DEBUG][       Thread-602409][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:00:06,521 [DEBUG][       Thread-602409][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:00:06,521 [DEBUG][       Thread-602409][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:00:06,521 [DEBUG][       Thread-602409][   transport.py][1871] : client lang: <none>
2025-07-01 11:00:06,521 [DEBUG][       Thread-602409][   transport.py][1871] : server lang: <none>
2025-07-01 11:00:06,521 [DEBUG][       Thread-602409][   transport.py][1871] : kex follows: False
2025-07-01 11:00:06,521 [DEBUG][       Thread-602409][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:00:06,521 [DEBUG][       Thread-602409][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:00:06,521 [DEBUG][       Thread-602409][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:00:06,521 [DEBUG][       Thread-602409][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:00:06,521 [DEBUG][       Thread-602409][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:00:06,521 [DEBUG][       Thread-602409][   transport.py][1871] : Compression: none
2025-07-01 11:00:06,521 [DEBUG][       Thread-602409][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:00:06,536 [DEBUG][       Thread-602409][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:00:06,536 [DEBUG][       Thread-602409][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:00:06,536 [DEBUG][       Thread-602409][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:00:06,537 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:00:06,537 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:00:06,538 [DEBUG][       Thread-602409][   transport.py][1871] : userauth is OK
2025-07-01 11:00:06,585 [ INFO][       Thread-602409][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:00:06,586 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:00:07,249 [DEBUG][       Thread-602409][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:00:07,249 [DEBUG][       Thread-602409][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:00:07,292 [DEBUG][       Thread-602409][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:00:07,292 [DEBUG][       Thread-602409][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:00:07,295 [DEBUG][       Thread-602409][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:00:07,306 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:00:07,306 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:00:07,307 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:00:07,308 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:00:07,311 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:00:07,312 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:00:07,312 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:00:07,313 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:00:07,313 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.374598 -999.00  +10.40  30.59     54   +1.70 1 2 2 1 1   887    0 9.09 17.26 ----- 30.6 30.6 46.4 46.3 14.1 -20.8 12.9 -21.2 12.3 -19.4 13.3 -18.7
2025-07-01 11:00:07,313 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:00:07,313 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:00:07,313 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.374598
2025-07-01 11:00:07,313 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:00:07,313 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:00:07,313 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:00:07,313 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:00:07,313 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:00:07,313 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:59:48', tmtdew=9.97, humidity=49.95, cloud=0.0, wind=30.28, temperature=10.35, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:59:25.267', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:00:07,314 [DEBUG][       Thread-602409][   transport.py][1871] : EOF in transport thread
2025-07-01 11:00:07,386 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:00:07,397 [DEBUG][       Thread-602412][   transport.py][1871] : starting thread (client mode): 0x8393b80
2025-07-01 11:00:07,397 [DEBUG][       Thread-602412][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:00:07,412 [DEBUG][       Thread-602412][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:00:07,412 [ INFO][       Thread-602412][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:00:07,420 [DEBUG][       Thread-602412][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:00:07,420 [DEBUG][       Thread-602412][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:00:07,420 [DEBUG][       Thread-602412][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:00:07,420 [DEBUG][       Thread-602412][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:00:07,420 [DEBUG][       Thread-602412][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:00:07,420 [DEBUG][       Thread-602412][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:00:07,420 [DEBUG][       Thread-602412][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:00:07,420 [DEBUG][       Thread-602412][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:00:07,420 [DEBUG][       Thread-602412][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:00:07,420 [DEBUG][       Thread-602412][   transport.py][1871] : client lang: <none>
2025-07-01 11:00:07,420 [DEBUG][       Thread-602412][   transport.py][1871] : server lang: <none>
2025-07-01 11:00:07,420 [DEBUG][       Thread-602412][   transport.py][1871] : kex follows: False
2025-07-01 11:00:07,420 [DEBUG][       Thread-602412][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:00:07,420 [DEBUG][       Thread-602412][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:00:07,421 [DEBUG][       Thread-602412][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:00:07,421 [DEBUG][       Thread-602412][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:00:07,421 [DEBUG][       Thread-602412][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:00:07,421 [DEBUG][       Thread-602412][   transport.py][1871] : Compression: none
2025-07-01 11:00:07,421 [DEBUG][       Thread-602412][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:00:07,480 [DEBUG][       Thread-602412][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:00:07,481 [DEBUG][       Thread-602412][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:00:07,482 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:00:07,482 [DEBUG][       Thread-602412][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:00:07,483 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:00:07,539 [DEBUG][       Thread-602412][   transport.py][1871] : userauth is OK
2025-07-01 11:00:07,540 [DEBUG][       Thread-602412][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:00:07,540 [DEBUG][       Thread-602412][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:00:07,540 [DEBUG][       Thread-602412][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:00:07,540 [DEBUG][       Thread-602412][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:00:07,559 [ INFO][       Thread-602412][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:00:07,560 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:00:07,560 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:00:08,607 [DEBUG][       Thread-602412][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:00:08,607 [DEBUG][       Thread-602412][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:00:08,655 [DEBUG][       Thread-602412][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:00:08,655 [DEBUG][       Thread-602412][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:00:08,664 [DEBUG][       Thread-602412][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:00:08,676 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:00:08,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-07-01 11:00:08,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-07-01 11:00:08,693 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:00:08,694 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:00:08,694 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:00:08,702 [DEBUG][       Thread-602412][   transport.py][1871] : EOF in transport thread
2025-07-01 11:00:10,326 [DEBUG][Thread-602414 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:00:18,704 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:00:18,705 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:00:18,705 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:00:18,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-07-01 11:00:19,196 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 10, 59, 48), 9.97, 49.95, 0.0, 30.28, 10.35, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:00:19,196 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 10:59:48
2025-07-01 11:00:19,279 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:00:19,285 [DEBUG][       Thread-602415][   transport.py][1871] : starting thread (client mode): 0x75a9660
2025-07-01 11:00:19,285 [DEBUG][       Thread-602415][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:00:19,302 [DEBUG][       Thread-602415][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:00:19,302 [ INFO][       Thread-602415][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:00:19,306 [DEBUG][       Thread-602415][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:00:19,306 [DEBUG][       Thread-602415][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:00:19,306 [DEBUG][       Thread-602415][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:00:19,306 [DEBUG][       Thread-602415][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:00:19,306 [DEBUG][       Thread-602415][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:00:19,306 [DEBUG][       Thread-602415][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:00:19,306 [DEBUG][       Thread-602415][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:00:19,306 [DEBUG][       Thread-602415][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:00:19,306 [DEBUG][       Thread-602415][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:00:19,306 [DEBUG][       Thread-602415][   transport.py][1871] : client lang: <none>
2025-07-01 11:00:19,306 [DEBUG][       Thread-602415][   transport.py][1871] : server lang: <none>
2025-07-01 11:00:19,306 [DEBUG][       Thread-602415][   transport.py][1871] : kex follows: False
2025-07-01 11:00:19,306 [DEBUG][       Thread-602415][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:00:19,306 [DEBUG][       Thread-602415][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:00:19,306 [DEBUG][       Thread-602415][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:00:19,306 [DEBUG][       Thread-602415][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:00:19,306 [DEBUG][       Thread-602415][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:00:19,306 [DEBUG][       Thread-602415][   transport.py][1871] : Compression: none
2025-07-01 11:00:19,306 [DEBUG][       Thread-602415][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:00:19,318 [DEBUG][       Thread-602415][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:00:19,319 [DEBUG][       Thread-602415][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:00:19,319 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:00:19,319 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:00:19,320 [DEBUG][       Thread-602415][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:00:19,320 [DEBUG][       Thread-602415][   transport.py][1871] : userauth is OK
2025-07-01 11:00:19,333 [ INFO][       Thread-602415][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:00:19,333 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:00:19,345 [DEBUG][Thread-602417 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:00:19,969 [DEBUG][       Thread-602415][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:00:19,970 [DEBUG][       Thread-602415][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:00:20,013 [DEBUG][       Thread-602415][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:00:20,013 [DEBUG][       Thread-602415][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:00:20,016 [DEBUG][       Thread-602415][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:00:20,022 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:00:20,023 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:00:20,025 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:00:20,026 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:00:20,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:00:20,033 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:00:20,033 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:00:20,034 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:00:20,034 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.374945 -999.00  +10.70  39.58     54   +2.00 1 2 2 1 1   887    0 8.86 16.95 ----- 39.6 39.6 23.8 45.4 14.2 -20.9 13.1 -20.7 12.5 -19.4 13.4 -18.5
2025-07-01 11:00:20,034 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:00:20,034 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:00:20,034 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.374945
2025-07-01 11:00:20,035 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:00:20,035 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:00:20,035 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:00:20,035 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:00:20,035 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:00:20,036 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T10:59:48', tmtdew=9.97, humidity=49.95, cloud=0.0, wind=30.28, temperature=10.35, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:59:55.248', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:00:20,037 [DEBUG][       Thread-602415][   transport.py][1871] : EOF in transport thread
2025-07-01 11:00:20,120 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:00:20,131 [DEBUG][       Thread-602419][   transport.py][1871] : starting thread (client mode): 0x81a64d0
2025-07-01 11:00:20,131 [DEBUG][       Thread-602419][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:00:20,151 [DEBUG][       Thread-602419][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:00:20,151 [ INFO][       Thread-602419][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:00:20,159 [DEBUG][       Thread-602419][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:00:20,159 [DEBUG][       Thread-602419][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:00:20,159 [DEBUG][       Thread-602419][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:00:20,159 [DEBUG][       Thread-602419][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:00:20,159 [DEBUG][       Thread-602419][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:00:20,159 [DEBUG][       Thread-602419][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:00:20,159 [DEBUG][       Thread-602419][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:00:20,159 [DEBUG][       Thread-602419][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:00:20,159 [DEBUG][       Thread-602419][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:00:20,159 [DEBUG][       Thread-602419][   transport.py][1871] : client lang: <none>
2025-07-01 11:00:20,159 [DEBUG][       Thread-602419][   transport.py][1871] : server lang: <none>
2025-07-01 11:00:20,159 [DEBUG][       Thread-602419][   transport.py][1871] : kex follows: False
2025-07-01 11:00:20,159 [DEBUG][       Thread-602419][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:00:20,159 [DEBUG][       Thread-602419][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:00:20,160 [DEBUG][       Thread-602419][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:00:20,160 [DEBUG][       Thread-602419][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:00:20,160 [DEBUG][       Thread-602419][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:00:20,160 [DEBUG][       Thread-602419][   transport.py][1871] : Compression: none
2025-07-01 11:00:20,160 [DEBUG][       Thread-602419][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:00:20,214 [DEBUG][       Thread-602419][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:00:20,215 [DEBUG][       Thread-602419][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:00:20,215 [DEBUG][       Thread-602419][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:00:20,215 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:00:20,216 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:00:20,270 [DEBUG][       Thread-602419][   transport.py][1871] : userauth is OK
2025-07-01 11:00:20,270 [DEBUG][       Thread-602419][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:00:20,270 [DEBUG][       Thread-602419][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:00:20,270 [DEBUG][       Thread-602419][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:00:20,270 [DEBUG][       Thread-602419][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:00:20,284 [ INFO][       Thread-602419][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:00:20,285 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:00:20,285 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:00:21,292 [DEBUG][       Thread-602419][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:00:21,292 [DEBUG][       Thread-602419][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:00:21,343 [DEBUG][       Thread-602419][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:00:21,343 [DEBUG][       Thread-602419][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:00:21,352 [DEBUG][       Thread-602419][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:00:21,360 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:00:21,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-07-01 11:00:21,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-07-01 11:00:21,376 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:00:21,376 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:00:21,376 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:00:21,385 [DEBUG][       Thread-602419][   transport.py][1871] : EOF in transport thread
2025-07-01 11:00:24,757 [DEBUG][Thread-602421 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:00:28,369 [DEBUG][Thread-602422 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:00:31,384 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:00:31,384 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:00:31,384 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:00:31,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-07-01 11:00:31,859 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 0, 19), 10.08, 49.8, 0.0, 36.66, 10.3, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:00:31,859 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:00:19
2025-07-01 11:00:31,942 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:00:31,946 [DEBUG][       Thread-602423][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 11:00:31,946 [DEBUG][       Thread-602423][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:00:31,967 [DEBUG][       Thread-602423][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:00:31,967 [ INFO][       Thread-602423][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:00:31,970 [DEBUG][       Thread-602423][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:00:31,970 [DEBUG][       Thread-602423][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:00:31,970 [DEBUG][       Thread-602423][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:00:31,970 [DEBUG][       Thread-602423][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:00:31,970 [DEBUG][       Thread-602423][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:00:31,970 [DEBUG][       Thread-602423][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:00:31,971 [DEBUG][       Thread-602423][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:00:31,971 [DEBUG][       Thread-602423][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:00:31,971 [DEBUG][       Thread-602423][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:00:31,971 [DEBUG][       Thread-602423][   transport.py][1871] : client lang: <none>
2025-07-01 11:00:31,971 [DEBUG][       Thread-602423][   transport.py][1871] : server lang: <none>
2025-07-01 11:00:31,971 [DEBUG][       Thread-602423][   transport.py][1871] : kex follows: False
2025-07-01 11:00:31,971 [DEBUG][       Thread-602423][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:00:31,971 [DEBUG][       Thread-602423][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:00:31,971 [DEBUG][       Thread-602423][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:00:31,971 [DEBUG][       Thread-602423][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:00:31,971 [DEBUG][       Thread-602423][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:00:31,971 [DEBUG][       Thread-602423][   transport.py][1871] : Compression: none
2025-07-01 11:00:31,971 [DEBUG][       Thread-602423][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:00:31,987 [DEBUG][       Thread-602423][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:00:31,987 [DEBUG][       Thread-602423][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:00:31,988 [DEBUG][       Thread-602423][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:00:31,988 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:00:31,988 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:00:31,989 [DEBUG][       Thread-602423][   transport.py][1871] : userauth is OK
2025-07-01 11:00:32,003 [ INFO][       Thread-602423][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:00:32,003 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:00:32,699 [DEBUG][       Thread-602423][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:00:32,699 [DEBUG][       Thread-602423][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:00:32,741 [DEBUG][       Thread-602423][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:00:32,741 [DEBUG][       Thread-602423][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:00:32,745 [DEBUG][       Thread-602423][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:00:32,756 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:00:32,757 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:00:32,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:00:32,760 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:00:32,766 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:00:32,767 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:00:32,767 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:00:32,768 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:00:32,768 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.374945 -999.00  +10.70  39.58     54   +2.00 1 2 2 1 1   887    0 8.86 16.95 ----- 39.6 39.6 23.8 45.4 14.2 -20.9 13.1 -20.7 12.5 -19.4 13.4 -18.5
2025-07-01 11:00:32,768 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:00:32,768 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:00:32,768 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.374945
2025-07-01 11:00:32,769 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:00:32,769 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:00:32,770 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:00:32,770 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:00:32,770 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:00:32,770 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:00:19', tmtdew=10.08, humidity=49.8, cloud=0.0, wind=36.66, temperature=10.3, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:59:55.248', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:00:32,771 [DEBUG][       Thread-602423][   transport.py][1871] : EOF in transport thread
2025-07-01 11:00:32,853 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:00:32,863 [DEBUG][       Thread-602426][   transport.py][1871] : starting thread (client mode): 0x82b2bf0
2025-07-01 11:00:32,863 [DEBUG][       Thread-602426][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:00:32,880 [DEBUG][       Thread-602426][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:00:32,881 [ INFO][       Thread-602426][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:00:32,891 [DEBUG][       Thread-602426][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:00:32,891 [DEBUG][       Thread-602426][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:00:32,891 [DEBUG][       Thread-602426][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:00:32,891 [DEBUG][       Thread-602426][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:00:32,891 [DEBUG][       Thread-602426][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:00:32,891 [DEBUG][       Thread-602426][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:00:32,891 [DEBUG][       Thread-602426][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:00:32,892 [DEBUG][       Thread-602426][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:00:32,892 [DEBUG][       Thread-602426][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:00:32,892 [DEBUG][       Thread-602426][   transport.py][1871] : client lang: <none>
2025-07-01 11:00:32,892 [DEBUG][       Thread-602426][   transport.py][1871] : server lang: <none>
2025-07-01 11:00:32,892 [DEBUG][       Thread-602426][   transport.py][1871] : kex follows: False
2025-07-01 11:00:32,892 [DEBUG][       Thread-602426][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:00:32,892 [DEBUG][       Thread-602426][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:00:32,892 [DEBUG][       Thread-602426][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:00:32,892 [DEBUG][       Thread-602426][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:00:32,892 [DEBUG][       Thread-602426][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:00:32,892 [DEBUG][       Thread-602426][   transport.py][1871] : Compression: none
2025-07-01 11:00:32,892 [DEBUG][       Thread-602426][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:00:32,947 [DEBUG][       Thread-602426][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:00:32,947 [DEBUG][       Thread-602426][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:00:32,948 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:00:32,949 [DEBUG][       Thread-602426][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:00:32,949 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:00:33,003 [DEBUG][       Thread-602426][   transport.py][1871] : userauth is OK
2025-07-01 11:00:33,003 [DEBUG][       Thread-602426][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:00:33,003 [DEBUG][       Thread-602426][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:00:33,003 [DEBUG][       Thread-602426][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:00:33,004 [DEBUG][       Thread-602426][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:00:33,023 [ INFO][       Thread-602426][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:00:33,024 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:00:33,024 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:00:34,021 [DEBUG][       Thread-602426][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:00:34,021 [DEBUG][       Thread-602426][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:00:34,072 [DEBUG][       Thread-602426][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:00:34,072 [DEBUG][       Thread-602426][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:00:34,091 [DEBUG][       Thread-602426][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:00:34,100 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:00: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')
2025-07-01 11:00:34,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-07-01 11:00:34,124 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:00:34,125 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:00:34,125 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:00:34,138 [DEBUG][       Thread-602426][   transport.py][1871] : EOF in transport thread
2025-07-01 11:00:37,391 [DEBUG][Thread-602428 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:00:44,136 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:00:44,136 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:00:44,136 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:00:44,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-07-01 11:00:44,620 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 0, 19), 10.08, 49.8, 0.0, 36.66, 10.3, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:00:44,620 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:00:19
2025-07-01 11:00:44,704 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:00:44,708 [DEBUG][       Thread-602429][   transport.py][1871] : starting thread (client mode): 0x82b2230
2025-07-01 11:00:44,708 [DEBUG][       Thread-602429][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:00:44,731 [DEBUG][       Thread-602429][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:00:44,731 [ INFO][       Thread-602429][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:00:44,735 [DEBUG][       Thread-602429][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:00:44,735 [DEBUG][       Thread-602429][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:00:44,735 [DEBUG][       Thread-602429][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:00:44,735 [DEBUG][       Thread-602429][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:00:44,735 [DEBUG][       Thread-602429][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:00:44,735 [DEBUG][       Thread-602429][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:00:44,735 [DEBUG][       Thread-602429][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:00:44,735 [DEBUG][       Thread-602429][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:00:44,735 [DEBUG][       Thread-602429][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:00:44,735 [DEBUG][       Thread-602429][   transport.py][1871] : client lang: <none>
2025-07-01 11:00:44,735 [DEBUG][       Thread-602429][   transport.py][1871] : server lang: <none>
2025-07-01 11:00:44,735 [DEBUG][       Thread-602429][   transport.py][1871] : kex follows: False
2025-07-01 11:00:44,735 [DEBUG][       Thread-602429][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:00:44,735 [DEBUG][       Thread-602429][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:00:44,735 [DEBUG][       Thread-602429][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:00:44,735 [DEBUG][       Thread-602429][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:00:44,735 [DEBUG][       Thread-602429][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:00:44,735 [DEBUG][       Thread-602429][   transport.py][1871] : Compression: none
2025-07-01 11:00:44,736 [DEBUG][       Thread-602429][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:00:44,748 [DEBUG][       Thread-602429][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:00:44,748 [DEBUG][       Thread-602429][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:00:44,748 [DEBUG][       Thread-602429][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:00:44,749 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:00:44,749 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:00:44,749 [DEBUG][       Thread-602429][   transport.py][1871] : userauth is OK
2025-07-01 11:00:44,773 [ INFO][       Thread-602429][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:00:44,773 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:00:45,430 [DEBUG][       Thread-602429][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:00:45,430 [DEBUG][       Thread-602429][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:00:45,473 [DEBUG][       Thread-602429][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:00:45,473 [DEBUG][       Thread-602429][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:00:45,476 [DEBUG][       Thread-602429][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:00:45,488 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:00:45,488 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:00:45,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:00:45,492 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:00:45,498 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:00:45,500 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:00:45,500 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:00:45,501 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:00:45,501 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.374945 -999.00  +10.70  39.58     54   +2.00 1 2 2 1 1   887    0 8.86 16.95 ----- 39.6 39.6 23.8 45.4 14.2 -20.9 13.1 -20.7 12.5 -19.4 13.4 -18.5
2025-07-01 11:00:45,501 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:00:45,501 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:00:45,501 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.374945
2025-07-01 11:00:45,502 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:00:45,502 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:00:45,502 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:00:45,503 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:00:45,503 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:00:45,503 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:00:19', tmtdew=10.08, humidity=49.8, cloud=0.0, wind=36.66, temperature=10.3, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T08:59:55.248', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:00:45,504 [DEBUG][       Thread-602429][   transport.py][1871] : EOF in transport thread
2025-07-01 11:00:45,587 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:00:45,600 [DEBUG][       Thread-602432][   transport.py][1871] : starting thread (client mode): 0x8156320
2025-07-01 11:00:45,600 [DEBUG][       Thread-602432][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:00:45,615 [DEBUG][       Thread-602432][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:00:45,615 [ INFO][       Thread-602432][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:00:45,622 [DEBUG][       Thread-602432][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:00:45,623 [DEBUG][       Thread-602432][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:00:45,623 [DEBUG][       Thread-602432][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:00:45,623 [DEBUG][       Thread-602432][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:00:45,623 [DEBUG][       Thread-602432][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:00:45,623 [DEBUG][       Thread-602432][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:00:45,623 [DEBUG][       Thread-602432][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:00:45,623 [DEBUG][       Thread-602432][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:00:45,623 [DEBUG][       Thread-602432][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:00:45,623 [DEBUG][       Thread-602432][   transport.py][1871] : client lang: <none>
2025-07-01 11:00:45,623 [DEBUG][       Thread-602432][   transport.py][1871] : server lang: <none>
2025-07-01 11:00:45,623 [DEBUG][       Thread-602432][   transport.py][1871] : kex follows: False
2025-07-01 11:00:45,623 [DEBUG][       Thread-602432][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:00:45,623 [DEBUG][       Thread-602432][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:00:45,623 [DEBUG][       Thread-602432][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:00:45,623 [DEBUG][       Thread-602432][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:00:45,623 [DEBUG][       Thread-602432][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:00:45,624 [DEBUG][       Thread-602432][   transport.py][1871] : Compression: none
2025-07-01 11:00:45,624 [DEBUG][       Thread-602432][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:00:45,687 [DEBUG][       Thread-602432][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:00:45,687 [DEBUG][       Thread-602432][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:00:45,688 [DEBUG][       Thread-602432][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:00:45,688 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:00:45,689 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:00:45,743 [DEBUG][       Thread-602432][   transport.py][1871] : userauth is OK
2025-07-01 11:00:45,743 [DEBUG][       Thread-602432][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:00:45,743 [DEBUG][       Thread-602432][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:00:45,743 [DEBUG][       Thread-602432][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:00:45,744 [DEBUG][       Thread-602432][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:00:45,762 [ INFO][       Thread-602432][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:00:45,763 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:00:45,763 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:00:46,424 [DEBUG][Thread-602434 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:00:46,784 [DEBUG][       Thread-602432][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:00:46,784 [DEBUG][       Thread-602432][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:00:46,832 [DEBUG][       Thread-602432][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:00:46,832 [DEBUG][       Thread-602432][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:00:46,841 [DEBUG][       Thread-602432][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:00:46,851 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:00:46,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-07-01 11:00:46,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') -> 00000000
2025-07-01 11:00:46,870 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:00:46,870 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:00:46,871 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:00:46,879 [DEBUG][       Thread-602432][   transport.py][1871] : EOF in transport thread
2025-07-01 11:00:55,444 [DEBUG][Thread-602435 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:00:56,881 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:00:56,881 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:00:56,882 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:00:56,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-07-01 11:00:57,373 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 0, 51), 10.07, 49.8, 0.0, 37.9, 10.24, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:00:57,373 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:00:51
2025-07-01 11:00:57,460 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:00:57,464 [DEBUG][       Thread-602436][   transport.py][1871] : starting thread (client mode): 0x75a8dc0
2025-07-01 11:00:57,464 [DEBUG][       Thread-602436][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:00:57,484 [DEBUG][       Thread-602436][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:00:57,484 [ INFO][       Thread-602436][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:00:57,488 [DEBUG][       Thread-602436][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:00:57,488 [DEBUG][       Thread-602436][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:00:57,488 [DEBUG][       Thread-602436][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:00:57,488 [DEBUG][       Thread-602436][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:00:57,488 [DEBUG][       Thread-602436][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:00:57,488 [DEBUG][       Thread-602436][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:00:57,488 [DEBUG][       Thread-602436][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:00:57,488 [DEBUG][       Thread-602436][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:00:57,488 [DEBUG][       Thread-602436][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:00:57,488 [DEBUG][       Thread-602436][   transport.py][1871] : client lang: <none>
2025-07-01 11:00:57,488 [DEBUG][       Thread-602436][   transport.py][1871] : server lang: <none>
2025-07-01 11:00:57,488 [DEBUG][       Thread-602436][   transport.py][1871] : kex follows: False
2025-07-01 11:00:57,488 [DEBUG][       Thread-602436][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:00:57,488 [DEBUG][       Thread-602436][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:00:57,488 [DEBUG][       Thread-602436][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:00:57,488 [DEBUG][       Thread-602436][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:00:57,488 [DEBUG][       Thread-602436][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:00:57,488 [DEBUG][       Thread-602436][   transport.py][1871] : Compression: none
2025-07-01 11:00:57,488 [DEBUG][       Thread-602436][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:00:57,506 [DEBUG][       Thread-602436][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:00:57,507 [DEBUG][       Thread-602436][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:00:57,507 [DEBUG][       Thread-602436][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:00:57,507 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:00:57,508 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:00:57,509 [DEBUG][       Thread-602436][   transport.py][1871] : userauth is OK
2025-07-01 11:00:57,534 [ INFO][       Thread-602436][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:00:57,534 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:00:58,170 [DEBUG][       Thread-602436][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:00:58,170 [DEBUG][       Thread-602436][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:00:58,213 [DEBUG][       Thread-602436][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:00:58,213 [DEBUG][       Thread-602436][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:00:58,216 [DEBUG][       Thread-602436][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:00:58,229 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:00:58,229 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:00:58,231 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:00:58,233 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:00:58,238 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:00:58,240 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:00:58,240 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:00:58,240 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:00:58,241 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.375293 -999.00  +10.60  35.01     53   +1.60 1 2 2 1 1   887    0 8.98 18.57 ----- 35.0 35.0 25.0 44.2 14.1 -20.8 13.1 -21.9 12.4 -19.4 13.3 -18.5
2025-07-01 11:00:58,241 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:00:58,241 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:00:58,241 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.375293
2025-07-01 11:00:58,241 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:00:58,242 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:00:58,242 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:00:58,242 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:00:58,242 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:00:58,242 [DEBUG][       Thread-602436][   transport.py][1871] : EOF in transport thread
2025-07-01 11:00:58,242 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:00:51', tmtdew=10.07, humidity=49.8, cloud=0.0, wind=37.9, temperature=10.24, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:00:25.315', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:00:58,326 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:00:58,336 [DEBUG][       Thread-602439][   transport.py][1871] : starting thread (client mode): 0x8104dc0
2025-07-01 11:00:58,336 [DEBUG][       Thread-602439][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:00:58,355 [DEBUG][       Thread-602439][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:00:58,355 [ INFO][       Thread-602439][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:00:58,362 [DEBUG][       Thread-602439][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:00:58,362 [DEBUG][       Thread-602439][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:00:58,363 [DEBUG][       Thread-602439][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:00:58,363 [DEBUG][       Thread-602439][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:00:58,363 [DEBUG][       Thread-602439][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:00:58,363 [DEBUG][       Thread-602439][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:00:58,363 [DEBUG][       Thread-602439][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:00:58,363 [DEBUG][       Thread-602439][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:00:58,363 [DEBUG][       Thread-602439][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:00:58,363 [DEBUG][       Thread-602439][   transport.py][1871] : client lang: <none>
2025-07-01 11:00:58,363 [DEBUG][       Thread-602439][   transport.py][1871] : server lang: <none>
2025-07-01 11:00:58,363 [DEBUG][       Thread-602439][   transport.py][1871] : kex follows: False
2025-07-01 11:00:58,363 [DEBUG][       Thread-602439][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:00:58,363 [DEBUG][       Thread-602439][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:00:58,363 [DEBUG][       Thread-602439][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:00:58,363 [DEBUG][       Thread-602439][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:00:58,363 [DEBUG][       Thread-602439][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:00:58,363 [DEBUG][       Thread-602439][   transport.py][1871] : Compression: none
2025-07-01 11:00:58,363 [DEBUG][       Thread-602439][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:00:58,427 [DEBUG][       Thread-602439][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:00:58,427 [DEBUG][       Thread-602439][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:00:58,428 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:00:58,428 [DEBUG][       Thread-602439][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:00:58,429 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:00:58,483 [DEBUG][       Thread-602439][   transport.py][1871] : userauth is OK
2025-07-01 11:00:58,483 [DEBUG][       Thread-602439][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:00:58,483 [DEBUG][       Thread-602439][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:00:58,483 [DEBUG][       Thread-602439][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:00:58,483 [DEBUG][       Thread-602439][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:00:58,502 [ INFO][       Thread-602439][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:00:58,502 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:00:58,503 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:00:59,523 [DEBUG][       Thread-602439][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:00:59,524 [DEBUG][       Thread-602439][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:00:59,572 [DEBUG][       Thread-602439][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:00:59,572 [DEBUG][       Thread-602439][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:00:59,582 [DEBUG][       Thread-602439][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:00:59,591 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:00:59,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-07-01 11:00:59,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-07-01 11:00:59,609 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:00:59,609 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:00:59,609 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:00:59,617 [DEBUG][       Thread-602439][   transport.py][1871] : EOF in transport thread
2025-07-01 11:01:03,997 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:01:03,998 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:01:04,467 [DEBUG][Thread-602441 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:01:09,620 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:01:09,620 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:01:09,620 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:01:09,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-07-01 11:01:10,087 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 0, 51), 10.07, 49.8, 0.0, 37.9, 10.24, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:01:10,087 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:00:51
2025-07-01 11:01:10,174 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:01:10,178 [DEBUG][       Thread-602442][   transport.py][1871] : starting thread (client mode): 0x81da440
2025-07-01 11:01:10,178 [DEBUG][       Thread-602442][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:01:10,198 [DEBUG][       Thread-602442][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:01:10,198 [ INFO][       Thread-602442][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:01:10,201 [DEBUG][       Thread-602442][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:01:10,201 [DEBUG][       Thread-602442][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:01:10,201 [DEBUG][       Thread-602442][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:01:10,201 [DEBUG][       Thread-602442][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:01:10,201 [DEBUG][       Thread-602442][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:01:10,201 [DEBUG][       Thread-602442][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:01:10,201 [DEBUG][       Thread-602442][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:01:10,201 [DEBUG][       Thread-602442][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:01:10,201 [DEBUG][       Thread-602442][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:01:10,201 [DEBUG][       Thread-602442][   transport.py][1871] : client lang: <none>
2025-07-01 11:01:10,201 [DEBUG][       Thread-602442][   transport.py][1871] : server lang: <none>
2025-07-01 11:01:10,202 [DEBUG][       Thread-602442][   transport.py][1871] : kex follows: False
2025-07-01 11:01:10,202 [DEBUG][       Thread-602442][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:01:10,202 [DEBUG][       Thread-602442][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:01:10,202 [DEBUG][       Thread-602442][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:01:10,202 [DEBUG][       Thread-602442][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:01:10,202 [DEBUG][       Thread-602442][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:01:10,202 [DEBUG][       Thread-602442][   transport.py][1871] : Compression: none
2025-07-01 11:01:10,202 [DEBUG][       Thread-602442][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:01:10,220 [DEBUG][       Thread-602442][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:01:10,220 [DEBUG][       Thread-602442][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:01:10,221 [DEBUG][       Thread-602442][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:01:10,221 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:01:10,221 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:01:10,222 [DEBUG][       Thread-602442][   transport.py][1871] : userauth is OK
2025-07-01 11:01:10,235 [ INFO][       Thread-602442][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:01:10,236 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:01:10,832 [DEBUG][       Thread-602442][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:01:10,832 [DEBUG][       Thread-602442][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:01:10,873 [DEBUG][       Thread-602442][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:01:10,873 [DEBUG][       Thread-602442][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:01:10,877 [DEBUG][       Thread-602442][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:01:10,890 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:01:10,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:01:10,893 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:01:10,894 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:01:10,900 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:01:10,902 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:01:10,902 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:01:10,902 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:01:10,903 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.375293 -999.00  +10.60  35.01     53   +1.60 1 2 2 1 1   887    0 8.98 18.57 ----- 35.0 35.0 25.0 44.2 14.1 -20.8 13.1 -21.9 12.4 -19.4 13.3 -18.5
2025-07-01 11:01:10,903 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:01:10,903 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:01:10,903 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.375293
2025-07-01 11:01:10,903 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:01:10,904 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:01:10,904 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:01:10,904 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:01:10,904 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:01:10,904 [DEBUG][       Thread-602442][   transport.py][1871] : EOF in transport thread
2025-07-01 11:01:10,904 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:00:51', tmtdew=10.07, humidity=49.8, cloud=0.0, wind=37.9, temperature=10.24, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:00:25.315', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:01:10,989 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:01:10,998 [DEBUG][       Thread-602445][   transport.py][1871] : starting thread (client mode): 0x8156020
2025-07-01 11:01:10,998 [DEBUG][       Thread-602445][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:01:11,016 [DEBUG][       Thread-602445][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:01:11,016 [ INFO][       Thread-602445][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:01:11,023 [DEBUG][       Thread-602445][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:01:11,023 [DEBUG][       Thread-602445][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:01:11,023 [DEBUG][       Thread-602445][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:01:11,023 [DEBUG][       Thread-602445][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:01:11,023 [DEBUG][       Thread-602445][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:01:11,023 [DEBUG][       Thread-602445][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:01:11,024 [DEBUG][       Thread-602445][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:01:11,024 [DEBUG][       Thread-602445][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:01:11,024 [DEBUG][       Thread-602445][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:01:11,024 [DEBUG][       Thread-602445][   transport.py][1871] : client lang: <none>
2025-07-01 11:01:11,024 [DEBUG][       Thread-602445][   transport.py][1871] : server lang: <none>
2025-07-01 11:01:11,024 [DEBUG][       Thread-602445][   transport.py][1871] : kex follows: False
2025-07-01 11:01:11,024 [DEBUG][       Thread-602445][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:01:11,024 [DEBUG][       Thread-602445][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:01:11,024 [DEBUG][       Thread-602445][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:01:11,024 [DEBUG][       Thread-602445][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:01:11,024 [DEBUG][       Thread-602445][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:01:11,024 [DEBUG][       Thread-602445][   transport.py][1871] : Compression: none
2025-07-01 11:01:11,024 [DEBUG][       Thread-602445][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:01:11,083 [DEBUG][       Thread-602445][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:01:11,084 [DEBUG][       Thread-602445][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:01:11,084 [DEBUG][       Thread-602445][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:01:11,085 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:01:11,085 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:01:11,151 [DEBUG][       Thread-602445][   transport.py][1871] : userauth is OK
2025-07-01 11:01:11,151 [DEBUG][       Thread-602445][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:01:11,151 [DEBUG][       Thread-602445][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:01:11,151 [DEBUG][       Thread-602445][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:01:11,151 [DEBUG][       Thread-602445][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:01:11,170 [ INFO][       Thread-602445][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:01:11,170 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:01:11,171 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:01:12,198 [DEBUG][       Thread-602445][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:01:12,198 [DEBUG][       Thread-602445][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:01:12,248 [DEBUG][       Thread-602445][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:01:12,248 [DEBUG][       Thread-602445][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:01:12,258 [DEBUG][       Thread-602445][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:01:12,267 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:01:12,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-07-01 11:01:12,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-07-01 11:01:12,287 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:01:12,288 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:01:12,288 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:01:12,296 [DEBUG][       Thread-602445][   transport.py][1871] : EOF in transport thread
2025-07-01 11:01:13,509 [DEBUG][Thread-602447 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:01:22,298 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:01:22,299 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:01:22,299 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:01:22,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-07-01 11:01:22,534 [DEBUG][Thread-602448 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:01:22,766 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 0, 51), 10.07, 49.8, 0.0, 37.9, 10.24, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:01:22,766 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:00:51
2025-07-01 11:01:22,852 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:01:22,856 [DEBUG][       Thread-602449][   transport.py][1871] : starting thread (client mode): 0x81da740
2025-07-01 11:01:22,856 [DEBUG][       Thread-602449][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:01:22,877 [DEBUG][       Thread-602449][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:01:22,877 [ INFO][       Thread-602449][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:01:22,879 [DEBUG][       Thread-602449][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:01:22,879 [DEBUG][       Thread-602449][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:01:22,879 [DEBUG][       Thread-602449][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:01:22,879 [DEBUG][       Thread-602449][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:01:22,879 [DEBUG][       Thread-602449][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:01:22,879 [DEBUG][       Thread-602449][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:01:22,879 [DEBUG][       Thread-602449][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:01:22,879 [DEBUG][       Thread-602449][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:01:22,879 [DEBUG][       Thread-602449][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:01:22,879 [DEBUG][       Thread-602449][   transport.py][1871] : client lang: <none>
2025-07-01 11:01:22,879 [DEBUG][       Thread-602449][   transport.py][1871] : server lang: <none>
2025-07-01 11:01:22,879 [DEBUG][       Thread-602449][   transport.py][1871] : kex follows: False
2025-07-01 11:01:22,879 [DEBUG][       Thread-602449][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:01:22,880 [DEBUG][       Thread-602449][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:01:22,880 [DEBUG][       Thread-602449][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:01:22,880 [DEBUG][       Thread-602449][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:01:22,880 [DEBUG][       Thread-602449][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:01:22,880 [DEBUG][       Thread-602449][   transport.py][1871] : Compression: none
2025-07-01 11:01:22,880 [DEBUG][       Thread-602449][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:01:22,899 [DEBUG][       Thread-602449][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:01:22,899 [DEBUG][       Thread-602449][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:01:22,900 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:01:22,900 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:01:22,901 [DEBUG][       Thread-602449][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:01:22,901 [DEBUG][       Thread-602449][   transport.py][1871] : userauth is OK
2025-07-01 11:01:22,914 [ INFO][       Thread-602449][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:01:22,914 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:01:23,541 [DEBUG][       Thread-602449][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:01:23,541 [DEBUG][       Thread-602449][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:01:23,585 [DEBUG][       Thread-602449][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:01:23,585 [DEBUG][       Thread-602449][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:01:23,588 [DEBUG][       Thread-602449][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:01:23,601 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:01:23,602 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:01:23,603 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:01:23,605 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:01:23,611 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:01:23,613 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:01:23,613 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:01:23,613 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:01:23,614 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.375293 -999.00  +10.60  35.01     53   +1.60 1 2 2 1 1   887    0 8.98 18.57 ----- 35.0 35.0 25.0 44.2 14.1 -20.8 13.1 -21.9 12.4 -19.4 13.3 -18.5
2025-07-01 11:01:23,614 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:01:23,614 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:01:23,614 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.375293
2025-07-01 11:01:23,614 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:01:23,615 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:01:23,615 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:01:23,615 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:01:23,615 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:01:23,615 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:00:51', tmtdew=10.07, humidity=49.8, cloud=0.0, wind=37.9, temperature=10.24, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:00:25.315', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:01:23,615 [DEBUG][       Thread-602449][   transport.py][1871] : EOF in transport thread
2025-07-01 11:01:23,700 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:01:23,710 [DEBUG][       Thread-602452][   transport.py][1871] : starting thread (client mode): 0x8104760
2025-07-01 11:01:23,710 [DEBUG][       Thread-602452][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:01:23,724 [DEBUG][       Thread-602452][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:01:23,724 [ INFO][       Thread-602452][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:01:23,731 [DEBUG][       Thread-602452][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:01:23,731 [DEBUG][       Thread-602452][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:01:23,731 [DEBUG][       Thread-602452][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:01:23,731 [DEBUG][       Thread-602452][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:01:23,731 [DEBUG][       Thread-602452][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:01:23,732 [DEBUG][       Thread-602452][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:01:23,732 [DEBUG][       Thread-602452][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:01:23,732 [DEBUG][       Thread-602452][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:01:23,732 [DEBUG][       Thread-602452][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:01:23,732 [DEBUG][       Thread-602452][   transport.py][1871] : client lang: <none>
2025-07-01 11:01:23,732 [DEBUG][       Thread-602452][   transport.py][1871] : server lang: <none>
2025-07-01 11:01:23,732 [DEBUG][       Thread-602452][   transport.py][1871] : kex follows: False
2025-07-01 11:01:23,732 [DEBUG][       Thread-602452][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:01:23,732 [DEBUG][       Thread-602452][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:01:23,732 [DEBUG][       Thread-602452][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:01:23,732 [DEBUG][       Thread-602452][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:01:23,732 [DEBUG][       Thread-602452][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:01:23,732 [DEBUG][       Thread-602452][   transport.py][1871] : Compression: none
2025-07-01 11:01:23,732 [DEBUG][       Thread-602452][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:01:23,791 [DEBUG][       Thread-602452][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:01:23,791 [DEBUG][       Thread-602452][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:01:23,792 [DEBUG][       Thread-602452][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:01:23,792 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:01:23,793 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:01:23,847 [DEBUG][       Thread-602452][   transport.py][1871] : userauth is OK
2025-07-01 11:01:23,847 [DEBUG][       Thread-602452][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:01:23,847 [DEBUG][       Thread-602452][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:01:23,847 [DEBUG][       Thread-602452][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:01:23,847 [DEBUG][       Thread-602452][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:01:23,866 [ INFO][       Thread-602452][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:01:23,867 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:01:23,867 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:01:24,802 [DEBUG][Thread-602454 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:01:24,855 [DEBUG][       Thread-602452][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:01:24,855 [DEBUG][       Thread-602452][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:01:24,907 [DEBUG][       Thread-602452][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:01:24,907 [DEBUG][       Thread-602452][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:01:24,918 [DEBUG][       Thread-602452][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:01:24,930 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:01:24,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-07-01 11:01:24,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-07-01 11:01:24,953 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:01:24,953 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:01:24,954 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:01:24,963 [DEBUG][       Thread-602452][   transport.py][1871] : EOF in transport thread
2025-07-01 11:01:31,553 [DEBUG][Thread-602455 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:01:34,964 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:01:34,964 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:01:34,964 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:01:34,967 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 11:01:35,432 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 1, 24), 9.98, 50.01, 0.0, 26.29, 10.3, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:01:35,433 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:01:24
2025-07-01 11:01:35,517 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:01:35,520 [DEBUG][       Thread-602456][   transport.py][1871] : starting thread (client mode): 0x81d9750
2025-07-01 11:01:35,521 [DEBUG][       Thread-602456][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:01:35,541 [DEBUG][       Thread-602456][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:01:35,541 [ INFO][       Thread-602456][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:01:35,544 [DEBUG][       Thread-602456][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:01:35,544 [DEBUG][       Thread-602456][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:01:35,544 [DEBUG][       Thread-602456][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:01:35,544 [DEBUG][       Thread-602456][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:01:35,544 [DEBUG][       Thread-602456][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:01:35,544 [DEBUG][       Thread-602456][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:01:35,545 [DEBUG][       Thread-602456][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:01:35,545 [DEBUG][       Thread-602456][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:01:35,545 [DEBUG][       Thread-602456][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:01:35,545 [DEBUG][       Thread-602456][   transport.py][1871] : client lang: <none>
2025-07-01 11:01:35,545 [DEBUG][       Thread-602456][   transport.py][1871] : server lang: <none>
2025-07-01 11:01:35,545 [DEBUG][       Thread-602456][   transport.py][1871] : kex follows: False
2025-07-01 11:01:35,545 [DEBUG][       Thread-602456][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:01:35,545 [DEBUG][       Thread-602456][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:01:35,545 [DEBUG][       Thread-602456][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:01:35,545 [DEBUG][       Thread-602456][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:01:35,545 [DEBUG][       Thread-602456][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:01:35,545 [DEBUG][       Thread-602456][   transport.py][1871] : Compression: none
2025-07-01 11:01:35,545 [DEBUG][       Thread-602456][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:01:35,562 [DEBUG][       Thread-602456][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:01:35,563 [DEBUG][       Thread-602456][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:01:35,563 [DEBUG][       Thread-602456][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:01:35,563 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:01:35,564 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:01:35,565 [DEBUG][       Thread-602456][   transport.py][1871] : userauth is OK
2025-07-01 11:01:35,578 [ INFO][       Thread-602456][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:01:35,578 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:01:36,164 [DEBUG][       Thread-602456][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:01:36,165 [DEBUG][       Thread-602456][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:01:36,209 [DEBUG][       Thread-602456][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:01:36,209 [DEBUG][       Thread-602456][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:01:36,213 [DEBUG][       Thread-602456][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:01:36,225 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:01:36,225 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:01:36,227 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:01:36,229 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:01:36,234 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:01:36,235 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:01:36,236 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:01:36,236 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:01:36,236 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.375640 -999.00  +10.60  32.85     54   +1.70 1 2 2 1 1   887    0 9.10 20.94 ----- 32.9 32.9 26.4 46.3 14.2 -20.0 13.1 -20.9 12.6 -18.1 13.4 -17.6
2025-07-01 11:01:36,236 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:01:36,236 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:01:36,237 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.375640
2025-07-01 11:01:36,237 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:01:36,238 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:01:36,238 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:01:36,238 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:01:36,238 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:01:36,238 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:01:24', tmtdew=9.98, humidity=50.01, cloud=0.0, wind=26.29, temperature=10.3, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:00:55.296', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:01:36,238 [DEBUG][       Thread-602456][   transport.py][1871] : EOF in transport thread
2025-07-01 11:01:36,322 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:01:36,334 [DEBUG][       Thread-602459][   transport.py][1871] : starting thread (client mode): 0x827ec50
2025-07-01 11:01:36,334 [DEBUG][       Thread-602459][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:01:36,349 [DEBUG][       Thread-602459][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:01:36,349 [ INFO][       Thread-602459][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:01:36,356 [DEBUG][       Thread-602459][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:01:36,356 [DEBUG][       Thread-602459][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:01:36,356 [DEBUG][       Thread-602459][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:01:36,356 [DEBUG][       Thread-602459][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:01:36,356 [DEBUG][       Thread-602459][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:01:36,356 [DEBUG][       Thread-602459][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:01:36,356 [DEBUG][       Thread-602459][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:01:36,356 [DEBUG][       Thread-602459][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:01:36,356 [DEBUG][       Thread-602459][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:01:36,356 [DEBUG][       Thread-602459][   transport.py][1871] : client lang: <none>
2025-07-01 11:01:36,356 [DEBUG][       Thread-602459][   transport.py][1871] : server lang: <none>
2025-07-01 11:01:36,356 [DEBUG][       Thread-602459][   transport.py][1871] : kex follows: False
2025-07-01 11:01:36,357 [DEBUG][       Thread-602459][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:01:36,357 [DEBUG][       Thread-602459][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:01:36,357 [DEBUG][       Thread-602459][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:01:36,357 [DEBUG][       Thread-602459][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:01:36,357 [DEBUG][       Thread-602459][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:01:36,357 [DEBUG][       Thread-602459][   transport.py][1871] : Compression: none
2025-07-01 11:01:36,357 [DEBUG][       Thread-602459][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:01:36,414 [DEBUG][       Thread-602459][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:01:36,414 [DEBUG][       Thread-602459][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:01:36,415 [DEBUG][       Thread-602459][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:01:36,415 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:01:36,415 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:01:36,474 [DEBUG][       Thread-602459][   transport.py][1871] : userauth is OK
2025-07-01 11:01:36,474 [DEBUG][       Thread-602459][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:01:36,474 [DEBUG][       Thread-602459][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:01:36,474 [DEBUG][       Thread-602459][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:01:36,474 [DEBUG][       Thread-602459][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:01:36,496 [ INFO][       Thread-602459][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:01:36,496 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:01:36,497 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:01:37,505 [DEBUG][       Thread-602459][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:01:37,506 [DEBUG][       Thread-602459][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:01:37,556 [DEBUG][       Thread-602459][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:01:37,556 [DEBUG][       Thread-602459][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:01:37,565 [DEBUG][       Thread-602459][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:01:37,573 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:01:37,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-07-01 11:01:37,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-07-01 11:01:37,589 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:01:37,589 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:01:37,589 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:01:37,596 [DEBUG][       Thread-602459][   transport.py][1871] : EOF in transport thread
2025-07-01 11:01:40,575 [DEBUG][Thread-602461 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:01:47,596 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:01:47,596 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:01:47,596 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:01:47,599 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 11:01:48,061 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 1, 24), 9.98, 50.01, 0.0, 26.29, 10.3, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:01:48,061 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:01:24
2025-07-01 11:01:48,146 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:01:48,150 [DEBUG][       Thread-602462][   transport.py][1871] : starting thread (client mode): 0x75a9570
2025-07-01 11:01:48,150 [DEBUG][       Thread-602462][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:01:48,170 [DEBUG][       Thread-602462][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:01:48,170 [ INFO][       Thread-602462][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:01:48,172 [DEBUG][       Thread-602462][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:01:48,172 [DEBUG][       Thread-602462][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:01:48,172 [DEBUG][       Thread-602462][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:01:48,172 [DEBUG][       Thread-602462][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:01:48,172 [DEBUG][       Thread-602462][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:01:48,172 [DEBUG][       Thread-602462][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:01:48,172 [DEBUG][       Thread-602462][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:01:48,172 [DEBUG][       Thread-602462][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:01:48,172 [DEBUG][       Thread-602462][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:01:48,172 [DEBUG][       Thread-602462][   transport.py][1871] : client lang: <none>
2025-07-01 11:01:48,172 [DEBUG][       Thread-602462][   transport.py][1871] : server lang: <none>
2025-07-01 11:01:48,172 [DEBUG][       Thread-602462][   transport.py][1871] : kex follows: False
2025-07-01 11:01:48,172 [DEBUG][       Thread-602462][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:01:48,172 [DEBUG][       Thread-602462][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:01:48,172 [DEBUG][       Thread-602462][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:01:48,172 [DEBUG][       Thread-602462][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:01:48,172 [DEBUG][       Thread-602462][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:01:48,172 [DEBUG][       Thread-602462][   transport.py][1871] : Compression: none
2025-07-01 11:01:48,172 [DEBUG][       Thread-602462][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:01:48,181 [DEBUG][       Thread-602462][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:01:48,182 [DEBUG][       Thread-602462][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:01:48,182 [DEBUG][       Thread-602462][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:01:48,182 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:01:48,182 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:01:48,183 [DEBUG][       Thread-602462][   transport.py][1871] : userauth is OK
2025-07-01 11:01:48,208 [ INFO][       Thread-602462][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:01:48,208 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:01:48,803 [DEBUG][       Thread-602462][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:01:48,803 [DEBUG][       Thread-602462][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:01:48,845 [DEBUG][       Thread-602462][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:01:48,845 [DEBUG][       Thread-602462][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:01:48,849 [DEBUG][       Thread-602462][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:01:48,861 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:01:48,861 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:01:48,863 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:01:48,865 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:01:48,871 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:01:48,873 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:01:48,873 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:01:48,874 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:01:48,874 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.375640 -999.00  +10.60  32.85     54   +1.70 1 2 2 1 1   887    0 9.10 20.94 ----- 32.9 32.9 26.4 46.3 14.2 -20.0 13.1 -20.9 12.6 -18.1 13.4 -17.6
2025-07-01 11:01:48,874 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:01:48,874 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:01:48,874 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.375640
2025-07-01 11:01:48,875 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:01:48,875 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:01:48,875 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:01:48,875 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:01:48,875 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:01:48,875 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:01:24', tmtdew=9.98, humidity=50.01, cloud=0.0, wind=26.29, temperature=10.3, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:00:55.296', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:01:48,876 [DEBUG][       Thread-602462][   transport.py][1871] : EOF in transport thread
2025-07-01 11:01:48,953 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:01:48,963 [DEBUG][       Thread-602465][   transport.py][1871] : starting thread (client mode): 0x81d8af0
2025-07-01 11:01:48,963 [DEBUG][       Thread-602465][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:01:48,978 [DEBUG][       Thread-602465][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:01:48,978 [ INFO][       Thread-602465][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:01:48,986 [DEBUG][       Thread-602465][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:01:48,986 [DEBUG][       Thread-602465][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:01:48,986 [DEBUG][       Thread-602465][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:01:48,986 [DEBUG][       Thread-602465][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:01:48,986 [DEBUG][       Thread-602465][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:01:48,986 [DEBUG][       Thread-602465][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:01:48,986 [DEBUG][       Thread-602465][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:01:48,986 [DEBUG][       Thread-602465][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:01:48,986 [DEBUG][       Thread-602465][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:01:48,986 [DEBUG][       Thread-602465][   transport.py][1871] : client lang: <none>
2025-07-01 11:01:48,986 [DEBUG][       Thread-602465][   transport.py][1871] : server lang: <none>
2025-07-01 11:01:48,986 [DEBUG][       Thread-602465][   transport.py][1871] : kex follows: False
2025-07-01 11:01:48,986 [DEBUG][       Thread-602465][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:01:48,986 [DEBUG][       Thread-602465][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:01:48,986 [DEBUG][       Thread-602465][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:01:48,987 [DEBUG][       Thread-602465][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:01:48,987 [DEBUG][       Thread-602465][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:01:48,987 [DEBUG][       Thread-602465][   transport.py][1871] : Compression: none
2025-07-01 11:01:48,987 [DEBUG][       Thread-602465][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:01:49,047 [DEBUG][       Thread-602465][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:01:49,047 [DEBUG][       Thread-602465][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:01:49,048 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:01:49,048 [DEBUG][       Thread-602465][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:01:49,049 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:01:49,103 [DEBUG][       Thread-602465][   transport.py][1871] : userauth is OK
2025-07-01 11:01:49,103 [DEBUG][       Thread-602465][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:01:49,103 [DEBUG][       Thread-602465][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:01:49,103 [DEBUG][       Thread-602465][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:01:49,103 [DEBUG][       Thread-602465][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:01:49,123 [ INFO][       Thread-602465][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:01:49,124 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:01:49,124 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:01:49,616 [DEBUG][Thread-602467 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:01:50,157 [DEBUG][       Thread-602465][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:01:50,157 [DEBUG][       Thread-602465][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:01:50,212 [DEBUG][       Thread-602465][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:01:50,212 [DEBUG][       Thread-602465][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:01:50,226 [DEBUG][       Thread-602465][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:01:50,240 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:01:50,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-07-01 11:01:50,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') -> 00000000
2025-07-01 11:01:50,267 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:01:50,268 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:01:50,268 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:01:50,283 [DEBUG][       Thread-602465][   transport.py][1871] : EOF in transport thread
2025-07-01 11:01:58,637 [DEBUG][Thread-602468 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:02:00,279 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:02:00,279 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:02:00,279 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:02:00,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-07-01 11:02:00,751 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 1, 56), 9.94, 50.14, 0.0, 26.64, 10.34, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:02:00,751 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:01:56
2025-07-01 11:02:00,836 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:02:00,841 [DEBUG][       Thread-602469][   transport.py][1871] : starting thread (client mode): 0x82b2230
2025-07-01 11:02:00,841 [DEBUG][       Thread-602469][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:02:00,860 [DEBUG][       Thread-602469][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:02:00,861 [ INFO][       Thread-602469][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:02:00,863 [DEBUG][       Thread-602469][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:02:00,863 [DEBUG][       Thread-602469][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:02:00,863 [DEBUG][       Thread-602469][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:02:00,863 [DEBUG][       Thread-602469][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:02:00,863 [DEBUG][       Thread-602469][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:02:00,863 [DEBUG][       Thread-602469][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:02:00,863 [DEBUG][       Thread-602469][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:02:00,863 [DEBUG][       Thread-602469][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:02:00,863 [DEBUG][       Thread-602469][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:02:00,863 [DEBUG][       Thread-602469][   transport.py][1871] : client lang: <none>
2025-07-01 11:02:00,863 [DEBUG][       Thread-602469][   transport.py][1871] : server lang: <none>
2025-07-01 11:02:00,863 [DEBUG][       Thread-602469][   transport.py][1871] : kex follows: False
2025-07-01 11:02:00,863 [DEBUG][       Thread-602469][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:02:00,863 [DEBUG][       Thread-602469][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:02:00,863 [DEBUG][       Thread-602469][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:02:00,863 [DEBUG][       Thread-602469][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:02:00,863 [DEBUG][       Thread-602469][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:02:00,863 [DEBUG][       Thread-602469][   transport.py][1871] : Compression: none
2025-07-01 11:02:00,863 [DEBUG][       Thread-602469][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:02:00,874 [DEBUG][       Thread-602469][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:02:00,875 [DEBUG][       Thread-602469][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:02:00,875 [DEBUG][       Thread-602469][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:02:00,875 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:02:00,876 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:02:00,877 [DEBUG][       Thread-602469][   transport.py][1871] : userauth is OK
2025-07-01 11:02:00,889 [ INFO][       Thread-602469][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:02:00,890 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:02:01,494 [DEBUG][       Thread-602469][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:02:01,494 [DEBUG][       Thread-602469][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:02:01,537 [DEBUG][       Thread-602469][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:02:01,537 [DEBUG][       Thread-602469][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:02:01,541 [DEBUG][       Thread-602469][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:02:01,553 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:02:01,553 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:02:01,556 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:02:01,558 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:02:01,563 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:02:01,564 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:02:01,565 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:02:01,565 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:02:01,565 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.376334 -999.00  +10.60  37.31     53   +1.50 1 2 2 1 1   887    0 9.20 24.51 ----- 37.3 37.3 41.7 46.7 14.2 -20.0 13.2 -21.3 12.6 -18.1 13.6 -17.7
2025-07-01 11:02:01,565 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:02:01,565 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:02:01,565 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.376334
2025-07-01 11:02:01,566 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:02:01,566 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:02:01,567 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:02:01,567 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:02:01,567 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:02:01,567 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:01:56', tmtdew=9.94, humidity=50.14, cloud=0.0, wind=26.64, temperature=10.34, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:01:55.258', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:02:01,567 [DEBUG][       Thread-602469][   transport.py][1871] : EOF in transport thread
2025-07-01 11:02:01,647 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:02:01,661 [DEBUG][       Thread-602472][   transport.py][1871] : starting thread (client mode): 0x81a5180
2025-07-01 11:02:01,661 [DEBUG][       Thread-602472][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:02:01,678 [DEBUG][       Thread-602472][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:02:01,678 [ INFO][       Thread-602472][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:02:01,685 [DEBUG][       Thread-602472][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:02:01,685 [DEBUG][       Thread-602472][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:02:01,685 [DEBUG][       Thread-602472][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:02:01,685 [DEBUG][       Thread-602472][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:02:01,685 [DEBUG][       Thread-602472][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:02:01,685 [DEBUG][       Thread-602472][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:02:01,685 [DEBUG][       Thread-602472][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:02:01,685 [DEBUG][       Thread-602472][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:02:01,685 [DEBUG][       Thread-602472][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:02:01,685 [DEBUG][       Thread-602472][   transport.py][1871] : client lang: <none>
2025-07-01 11:02:01,685 [DEBUG][       Thread-602472][   transport.py][1871] : server lang: <none>
2025-07-01 11:02:01,685 [DEBUG][       Thread-602472][   transport.py][1871] : kex follows: False
2025-07-01 11:02:01,685 [DEBUG][       Thread-602472][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:02:01,685 [DEBUG][       Thread-602472][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:02:01,685 [DEBUG][       Thread-602472][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:02:01,685 [DEBUG][       Thread-602472][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:02:01,685 [DEBUG][       Thread-602472][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:02:01,685 [DEBUG][       Thread-602472][   transport.py][1871] : Compression: none
2025-07-01 11:02:01,685 [DEBUG][       Thread-602472][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:02:01,743 [DEBUG][       Thread-602472][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:02:01,744 [DEBUG][       Thread-602472][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:02:01,744 [DEBUG][       Thread-602472][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:02:01,744 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:02:01,745 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:02:01,803 [DEBUG][       Thread-602472][   transport.py][1871] : userauth is OK
2025-07-01 11:02:01,803 [DEBUG][       Thread-602472][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:02:01,803 [DEBUG][       Thread-602472][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:02:01,803 [DEBUG][       Thread-602472][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:02:01,804 [DEBUG][       Thread-602472][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:02:01,823 [ INFO][       Thread-602472][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:02:01,823 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:02:01,824 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:02:02,845 [DEBUG][       Thread-602472][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:02:02,845 [DEBUG][       Thread-602472][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:02:02,896 [DEBUG][       Thread-602472][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:02:02,896 [DEBUG][       Thread-602472][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:02:02,905 [DEBUG][       Thread-602472][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:02:02,914 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:02:02,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-07-01 11:02:02,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-07-01 11:02:02,932 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:02:02,932 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:02:02,933 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:02:02,941 [DEBUG][       Thread-602472][   transport.py][1871] : EOF in transport thread
2025-07-01 11:02:04,137 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:02:04,138 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:02:07,656 [DEBUG][Thread-602474 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:02:12,943 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:02:12,944 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:02:12,944 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:02:12,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-07-01 11:02:13,395 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 1, 56), 9.94, 50.14, 0.0, 26.64, 10.34, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:02:13,395 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:01:56
2025-07-01 11:02:13,479 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:02:13,484 [DEBUG][       Thread-602475][   transport.py][1871] : starting thread (client mode): 0x75a8d60
2025-07-01 11:02:13,484 [DEBUG][       Thread-602475][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:02:13,504 [DEBUG][       Thread-602475][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:02:13,504 [ INFO][       Thread-602475][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:02:13,508 [DEBUG][       Thread-602475][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:02:13,508 [DEBUG][       Thread-602475][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:02:13,508 [DEBUG][       Thread-602475][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:02:13,508 [DEBUG][       Thread-602475][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:02:13,508 [DEBUG][       Thread-602475][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:02:13,508 [DEBUG][       Thread-602475][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:02:13,508 [DEBUG][       Thread-602475][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:02:13,508 [DEBUG][       Thread-602475][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:02:13,508 [DEBUG][       Thread-602475][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:02:13,508 [DEBUG][       Thread-602475][   transport.py][1871] : client lang: <none>
2025-07-01 11:02:13,508 [DEBUG][       Thread-602475][   transport.py][1871] : server lang: <none>
2025-07-01 11:02:13,508 [DEBUG][       Thread-602475][   transport.py][1871] : kex follows: False
2025-07-01 11:02:13,508 [DEBUG][       Thread-602475][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:02:13,508 [DEBUG][       Thread-602475][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:02:13,508 [DEBUG][       Thread-602475][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:02:13,508 [DEBUG][       Thread-602475][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:02:13,508 [DEBUG][       Thread-602475][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:02:13,508 [DEBUG][       Thread-602475][   transport.py][1871] : Compression: none
2025-07-01 11:02:13,508 [DEBUG][       Thread-602475][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:02:13,528 [DEBUG][       Thread-602475][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:02:13,529 [DEBUG][       Thread-602475][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:02:13,529 [DEBUG][       Thread-602475][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:02:13,529 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:02:13,530 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:02:13,531 [DEBUG][       Thread-602475][   transport.py][1871] : userauth is OK
2025-07-01 11:02:13,556 [ INFO][       Thread-602475][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:02:13,556 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:02:14,205 [DEBUG][       Thread-602475][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:02:14,205 [DEBUG][       Thread-602475][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:02:14,249 [DEBUG][       Thread-602475][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:02:14,249 [DEBUG][       Thread-602475][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:02:14,252 [DEBUG][       Thread-602475][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:02:14,259 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:02:14,260 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:02:14,261 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:02:14,263 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:02:14,269 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:02:14,271 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:02:14,271 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:02:14,272 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:02:14,272 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.376334 -999.00  +10.60  37.31     53   +1.50 1 2 2 1 1   887    0 9.20 24.51 ----- 37.3 37.3 41.7 46.7 14.2 -20.0 13.2 -21.3 12.6 -18.1 13.6 -17.7
2025-07-01 11:02:14,272 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:02:14,272 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:02:14,272 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.376334
2025-07-01 11:02:14,272 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:02:14,273 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:02:14,273 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:02:14,273 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:02:14,273 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:02:14,273 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:01:56', tmtdew=9.94, humidity=50.14, cloud=0.0, wind=26.64, temperature=10.34, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:01:55.258', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:02:14,274 [DEBUG][       Thread-602475][   transport.py][1871] : EOF in transport thread
2025-07-01 11:02:14,358 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:02:14,371 [DEBUG][       Thread-602478][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 11:02:14,371 [DEBUG][       Thread-602478][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:02:14,391 [DEBUG][       Thread-602478][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:02:14,391 [ INFO][       Thread-602478][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:02:14,399 [DEBUG][       Thread-602478][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:02:14,399 [DEBUG][       Thread-602478][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:02:14,399 [DEBUG][       Thread-602478][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:02:14,399 [DEBUG][       Thread-602478][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:02:14,399 [DEBUG][       Thread-602478][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:02:14,400 [DEBUG][       Thread-602478][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:02:14,400 [DEBUG][       Thread-602478][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:02:14,400 [DEBUG][       Thread-602478][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:02:14,400 [DEBUG][       Thread-602478][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:02:14,400 [DEBUG][       Thread-602478][   transport.py][1871] : client lang: <none>
2025-07-01 11:02:14,400 [DEBUG][       Thread-602478][   transport.py][1871] : server lang: <none>
2025-07-01 11:02:14,400 [DEBUG][       Thread-602478][   transport.py][1871] : kex follows: False
2025-07-01 11:02:14,400 [DEBUG][       Thread-602478][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:02:14,400 [DEBUG][       Thread-602478][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:02:14,400 [DEBUG][       Thread-602478][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:02:14,400 [DEBUG][       Thread-602478][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:02:14,400 [DEBUG][       Thread-602478][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:02:14,400 [DEBUG][       Thread-602478][   transport.py][1871] : Compression: none
2025-07-01 11:02:14,400 [DEBUG][       Thread-602478][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:02:14,465 [DEBUG][       Thread-602478][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:02:14,465 [DEBUG][       Thread-602478][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:02:14,466 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:02:14,467 [DEBUG][       Thread-602478][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:02:14,467 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:02:14,523 [DEBUG][       Thread-602478][   transport.py][1871] : userauth is OK
2025-07-01 11:02:14,523 [DEBUG][       Thread-602478][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:02:14,523 [DEBUG][       Thread-602478][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:02:14,523 [DEBUG][       Thread-602478][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:02:14,523 [DEBUG][       Thread-602478][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:02:14,542 [ INFO][       Thread-602478][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:02:14,543 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:02:14,543 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:02:15,593 [DEBUG][       Thread-602478][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:02:15,593 [DEBUG][       Thread-602478][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:02:15,644 [DEBUG][       Thread-602478][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:02:15,644 [DEBUG][       Thread-602478][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:02:15,653 [DEBUG][       Thread-602478][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:02:15,663 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:02:15,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-07-01 11:02:15,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-07-01 11:02:15,680 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:02:15,681 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:02:15,681 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:02:15,689 [DEBUG][       Thread-602478][   transport.py][1871] : EOF in transport thread
2025-07-01 11:02:16,690 [DEBUG][Thread-602480 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:02:24,854 [DEBUG][Thread-602481 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:02:25,692 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:02:25,692 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:02:25,692 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:02:25,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-07-01 11:02:25,713 [DEBUG][Thread-602482 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:02:26,161 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 1, 56), 9.94, 50.14, 0.0, 26.64, 10.34, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:02:26,161 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:01:56
2025-07-01 11:02:26,246 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:02:26,252 [DEBUG][       Thread-602483][   transport.py][1871] : starting thread (client mode): 0x81db220
2025-07-01 11:02:26,252 [DEBUG][       Thread-602483][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:02:26,273 [DEBUG][       Thread-602483][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:02:26,273 [ INFO][       Thread-602483][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:02:26,277 [DEBUG][       Thread-602483][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:02:26,277 [DEBUG][       Thread-602483][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:02:26,277 [DEBUG][       Thread-602483][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:02:26,277 [DEBUG][       Thread-602483][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:02:26,277 [DEBUG][       Thread-602483][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:02:26,277 [DEBUG][       Thread-602483][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:02:26,277 [DEBUG][       Thread-602483][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:02:26,277 [DEBUG][       Thread-602483][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:02:26,277 [DEBUG][       Thread-602483][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:02:26,277 [DEBUG][       Thread-602483][   transport.py][1871] : client lang: <none>
2025-07-01 11:02:26,277 [DEBUG][       Thread-602483][   transport.py][1871] : server lang: <none>
2025-07-01 11:02:26,277 [DEBUG][       Thread-602483][   transport.py][1871] : kex follows: False
2025-07-01 11:02:26,277 [DEBUG][       Thread-602483][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:02:26,277 [DEBUG][       Thread-602483][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:02:26,277 [DEBUG][       Thread-602483][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:02:26,277 [DEBUG][       Thread-602483][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:02:26,277 [DEBUG][       Thread-602483][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:02:26,277 [DEBUG][       Thread-602483][   transport.py][1871] : Compression: none
2025-07-01 11:02:26,277 [DEBUG][       Thread-602483][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:02:26,293 [DEBUG][       Thread-602483][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:02:26,294 [DEBUG][       Thread-602483][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:02:26,294 [DEBUG][       Thread-602483][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:02:26,295 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:02:26,295 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:02:26,296 [DEBUG][       Thread-602483][   transport.py][1871] : userauth is OK
2025-07-01 11:02:26,320 [ INFO][       Thread-602483][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:02:26,321 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:02:26,958 [DEBUG][       Thread-602483][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:02:26,958 [DEBUG][       Thread-602483][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:02:27,001 [DEBUG][       Thread-602483][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:02:27,001 [DEBUG][       Thread-602483][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:02:27,005 [DEBUG][       Thread-602483][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:02:27,019 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:02:27,020 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:02:27,022 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:02:27,024 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:02:27,029 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:02:27,032 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:02:27,032 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:02:27,032 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:02:27,033 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.376334 -999.00  +10.60  37.31     53   +1.50 1 2 2 1 1   887    0 9.20 24.51 ----- 37.3 37.3 41.7 46.7 14.2 -20.0 13.2 -21.3 12.6 -18.1 13.6 -17.7
2025-07-01 11:02:27,033 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:02:27,033 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:02:27,033 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.376334
2025-07-01 11:02:27,033 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:02:27,034 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:02:27,034 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:02:27,034 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:02:27,034 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:02:27,034 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:01:56', tmtdew=9.94, humidity=50.14, cloud=0.0, wind=26.64, temperature=10.34, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:01:55.258', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:02:27,035 [DEBUG][       Thread-602483][   transport.py][1871] : EOF in transport thread
2025-07-01 11:02:27,118 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:02:27,128 [DEBUG][       Thread-602486][   transport.py][1871] : starting thread (client mode): 0x75a8d30
2025-07-01 11:02:27,128 [DEBUG][       Thread-602486][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:02:27,143 [DEBUG][       Thread-602486][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:02:27,143 [ INFO][       Thread-602486][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:02:27,151 [DEBUG][       Thread-602486][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:02:27,151 [DEBUG][       Thread-602486][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:02:27,151 [DEBUG][       Thread-602486][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:02:27,151 [DEBUG][       Thread-602486][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:02:27,151 [DEBUG][       Thread-602486][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:02:27,151 [DEBUG][       Thread-602486][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:02:27,151 [DEBUG][       Thread-602486][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:02:27,151 [DEBUG][       Thread-602486][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:02:27,151 [DEBUG][       Thread-602486][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:02:27,151 [DEBUG][       Thread-602486][   transport.py][1871] : client lang: <none>
2025-07-01 11:02:27,151 [DEBUG][       Thread-602486][   transport.py][1871] : server lang: <none>
2025-07-01 11:02:27,152 [DEBUG][       Thread-602486][   transport.py][1871] : kex follows: False
2025-07-01 11:02:27,152 [DEBUG][       Thread-602486][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:02:27,152 [DEBUG][       Thread-602486][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:02:27,152 [DEBUG][       Thread-602486][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:02:27,152 [DEBUG][       Thread-602486][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:02:27,152 [DEBUG][       Thread-602486][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:02:27,152 [DEBUG][       Thread-602486][   transport.py][1871] : Compression: none
2025-07-01 11:02:27,152 [DEBUG][       Thread-602486][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:02:27,211 [DEBUG][       Thread-602486][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:02:27,211 [DEBUG][       Thread-602486][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:02:27,212 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:02:27,212 [DEBUG][       Thread-602486][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:02:27,213 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:02:27,267 [DEBUG][       Thread-602486][   transport.py][1871] : userauth is OK
2025-07-01 11:02:27,267 [DEBUG][       Thread-602486][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:02:27,267 [DEBUG][       Thread-602486][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:02:27,267 [DEBUG][       Thread-602486][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:02:27,267 [DEBUG][       Thread-602486][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:02:27,286 [ INFO][       Thread-602486][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:02:27,287 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:02:27,287 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:02:28,282 [DEBUG][       Thread-602486][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:02:28,282 [DEBUG][       Thread-602486][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:02:28,331 [DEBUG][       Thread-602486][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:02:28,332 [DEBUG][       Thread-602486][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:02:28,340 [DEBUG][       Thread-602486][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:02:28,347 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:02:28,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-07-01 11:02: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-07-01 11:02:28,363 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:02:28,363 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:02:28,363 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:02:28,371 [DEBUG][       Thread-602486][   transport.py][1871] : EOF in transport thread
2025-07-01 11:02:34,733 [DEBUG][Thread-602488 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:02:38,374 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:02:38,374 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:02:38,374 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:02: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-07-01 11:02:38,863 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 2, 28), 10.06, 49.89, 0.0, 35.41, 10.44, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:02:38,863 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:02:28
2025-07-01 11:02:38,948 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:02:38,953 [DEBUG][       Thread-602489][   transport.py][1871] : starting thread (client mode): 0x81e6260
2025-07-01 11:02:38,953 [DEBUG][       Thread-602489][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:02:38,974 [DEBUG][       Thread-602489][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:02:38,974 [ INFO][       Thread-602489][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:02:38,977 [DEBUG][       Thread-602489][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:02:38,977 [DEBUG][       Thread-602489][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:02:38,977 [DEBUG][       Thread-602489][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:02:38,977 [DEBUG][       Thread-602489][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:02:38,977 [DEBUG][       Thread-602489][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:02:38,977 [DEBUG][       Thread-602489][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:02:38,977 [DEBUG][       Thread-602489][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:02:38,977 [DEBUG][       Thread-602489][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:02:38,977 [DEBUG][       Thread-602489][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:02:38,977 [DEBUG][       Thread-602489][   transport.py][1871] : client lang: <none>
2025-07-01 11:02:38,977 [DEBUG][       Thread-602489][   transport.py][1871] : server lang: <none>
2025-07-01 11:02:38,977 [DEBUG][       Thread-602489][   transport.py][1871] : kex follows: False
2025-07-01 11:02:38,977 [DEBUG][       Thread-602489][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:02:38,977 [DEBUG][       Thread-602489][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:02:38,978 [DEBUG][       Thread-602489][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:02:38,978 [DEBUG][       Thread-602489][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:02:38,978 [DEBUG][       Thread-602489][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:02:38,978 [DEBUG][       Thread-602489][   transport.py][1871] : Compression: none
2025-07-01 11:02:38,978 [DEBUG][       Thread-602489][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:02:38,995 [DEBUG][       Thread-602489][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:02:38,995 [DEBUG][       Thread-602489][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:02:38,996 [DEBUG][       Thread-602489][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:02:38,996 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:02:38,996 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:02:38,997 [DEBUG][       Thread-602489][   transport.py][1871] : userauth is OK
2025-07-01 11:02:39,021 [ INFO][       Thread-602489][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:02:39,022 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:02:39,698 [DEBUG][       Thread-602489][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:02:39,699 [DEBUG][       Thread-602489][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:02:39,741 [DEBUG][       Thread-602489][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:02:39,741 [DEBUG][       Thread-602489][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:02:39,744 [DEBUG][       Thread-602489][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:02:39,756 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:02:39,756 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:02:39,758 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:02:39,760 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:02:39,766 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:02:39,768 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:02:39,768 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:02:39,769 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:02:39,769 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.376681 -999.00  +10.50  37.18     54   +1.70 1 2 2 1 1   887    0 9.27 23.96 ----- 37.2 37.2 35.0 42.7 14.3 -20.3 13.3 -21.9 12.6 -18.6 13.6 -18.1
2025-07-01 11:02:39,769 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:02:39,769 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:02:39,769 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.376681
2025-07-01 11:02:39,769 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:02:39,770 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:02:39,770 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:02:39,770 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:02:39,770 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:02:39,770 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:02:28', tmtdew=10.06, humidity=49.89, cloud=0.0, wind=35.41, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:02:25.238', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:02:39,771 [DEBUG][       Thread-602489][   transport.py][1871] : EOF in transport thread
2025-07-01 11:02:39,855 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:02:39,866 [DEBUG][       Thread-602492][   transport.py][1871] : starting thread (client mode): 0x818c760
2025-07-01 11:02:39,866 [DEBUG][       Thread-602492][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:02:39,881 [DEBUG][       Thread-602492][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:02:39,881 [ INFO][       Thread-602492][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:02:39,888 [DEBUG][       Thread-602492][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:02:39,888 [DEBUG][       Thread-602492][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:02:39,888 [DEBUG][       Thread-602492][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:02:39,888 [DEBUG][       Thread-602492][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:02:39,888 [DEBUG][       Thread-602492][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:02:39,888 [DEBUG][       Thread-602492][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:02:39,888 [DEBUG][       Thread-602492][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:02:39,888 [DEBUG][       Thread-602492][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:02:39,888 [DEBUG][       Thread-602492][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:02:39,888 [DEBUG][       Thread-602492][   transport.py][1871] : client lang: <none>
2025-07-01 11:02:39,888 [DEBUG][       Thread-602492][   transport.py][1871] : server lang: <none>
2025-07-01 11:02:39,888 [DEBUG][       Thread-602492][   transport.py][1871] : kex follows: False
2025-07-01 11:02:39,888 [DEBUG][       Thread-602492][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:02:39,888 [DEBUG][       Thread-602492][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:02:39,888 [DEBUG][       Thread-602492][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:02:39,888 [DEBUG][       Thread-602492][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:02:39,888 [DEBUG][       Thread-602492][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:02:39,888 [DEBUG][       Thread-602492][   transport.py][1871] : Compression: none
2025-07-01 11:02:39,888 [DEBUG][       Thread-602492][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:02:39,947 [DEBUG][       Thread-602492][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:02:39,948 [DEBUG][       Thread-602492][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:02:39,948 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:02:39,949 [DEBUG][       Thread-602492][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:02:39,949 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:02:40,003 [DEBUG][       Thread-602492][   transport.py][1871] : userauth is OK
2025-07-01 11:02:40,003 [DEBUG][       Thread-602492][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:02:40,003 [DEBUG][       Thread-602492][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:02:40,003 [DEBUG][       Thread-602492][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:02:40,003 [DEBUG][       Thread-602492][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:02:40,027 [ INFO][       Thread-602492][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:02:40,028 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:02:40,028 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:02:41,027 [DEBUG][       Thread-602492][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:02:41,027 [DEBUG][       Thread-602492][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:02:41,079 [DEBUG][       Thread-602492][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:02:41,079 [DEBUG][       Thread-602492][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:02:41,088 [DEBUG][       Thread-602492][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:02:41,097 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:02: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')
2025-07-01 11:02:41,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-07-01 11:02:41,117 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:02:41,117 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:02:41,117 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:02:41,132 [DEBUG][       Thread-602492][   transport.py][1871] : EOF in transport thread
2025-07-01 11:02:43,753 [DEBUG][Thread-602494 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:02:51,128 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:02:51,128 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:02:51,128 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:02:51,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-07-01 11:02:51,610 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 2, 28), 10.06, 49.89, 0.0, 35.41, 10.44, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:02:51,610 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:02:28
2025-07-01 11:02:51,694 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:02:51,700 [DEBUG][       Thread-602495][   transport.py][1871] : starting thread (client mode): 0x81e74c0
2025-07-01 11:02:51,700 [DEBUG][       Thread-602495][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:02:51,721 [DEBUG][       Thread-602495][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:02:51,721 [ INFO][       Thread-602495][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:02:51,724 [DEBUG][       Thread-602495][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:02:51,724 [DEBUG][       Thread-602495][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:02:51,724 [DEBUG][       Thread-602495][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:02:51,724 [DEBUG][       Thread-602495][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:02:51,724 [DEBUG][       Thread-602495][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:02:51,724 [DEBUG][       Thread-602495][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:02:51,724 [DEBUG][       Thread-602495][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:02:51,724 [DEBUG][       Thread-602495][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:02:51,724 [DEBUG][       Thread-602495][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:02:51,724 [DEBUG][       Thread-602495][   transport.py][1871] : client lang: <none>
2025-07-01 11:02:51,724 [DEBUG][       Thread-602495][   transport.py][1871] : server lang: <none>
2025-07-01 11:02:51,724 [DEBUG][       Thread-602495][   transport.py][1871] : kex follows: False
2025-07-01 11:02:51,724 [DEBUG][       Thread-602495][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:02:51,725 [DEBUG][       Thread-602495][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:02:51,725 [DEBUG][       Thread-602495][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:02:51,725 [DEBUG][       Thread-602495][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:02:51,725 [DEBUG][       Thread-602495][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:02:51,725 [DEBUG][       Thread-602495][   transport.py][1871] : Compression: none
2025-07-01 11:02:51,725 [DEBUG][       Thread-602495][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:02:51,744 [DEBUG][       Thread-602495][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:02:51,744 [DEBUG][       Thread-602495][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:02:51,745 [DEBUG][       Thread-602495][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:02:51,745 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:02:51,745 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:02:51,746 [DEBUG][       Thread-602495][   transport.py][1871] : userauth is OK
2025-07-01 11:02:51,771 [ INFO][       Thread-602495][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:02:51,772 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:02:52,404 [DEBUG][       Thread-602495][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:02:52,404 [DEBUG][       Thread-602495][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:02:52,449 [DEBUG][       Thread-602495][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:02:52,449 [DEBUG][       Thread-602495][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:02:52,452 [DEBUG][       Thread-602495][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:02:52,465 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:02:52,466 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:02:52,468 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:02:52,470 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:02:52,476 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:02:52,478 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:02:52,478 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:02:52,479 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:02:52,479 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.376681 -999.00  +10.50  37.18     54   +1.70 1 2 2 1 1   887    0 9.27 23.96 ----- 37.2 37.2 35.0 42.7 14.3 -20.3 13.3 -21.9 12.6 -18.6 13.6 -18.1
2025-07-01 11:02:52,479 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:02:52,479 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:02:52,479 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.376681
2025-07-01 11:02:52,480 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:02:52,480 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:02:52,480 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:02:52,480 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:02:52,480 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:02:52,481 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:02:28', tmtdew=10.06, humidity=49.89, cloud=0.0, wind=35.41, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:02:25.238', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:02:52,482 [DEBUG][       Thread-602495][   transport.py][1871] : EOF in transport thread
2025-07-01 11:02:52,565 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:02:52,575 [DEBUG][       Thread-602498][   transport.py][1871] : starting thread (client mode): 0x81e5390
2025-07-01 11:02:52,575 [DEBUG][       Thread-602498][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:02:52,590 [DEBUG][       Thread-602498][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:02:52,590 [ INFO][       Thread-602498][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:02:52,598 [DEBUG][       Thread-602498][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:02:52,598 [DEBUG][       Thread-602498][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:02:52,598 [DEBUG][       Thread-602498][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:02:52,598 [DEBUG][       Thread-602498][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:02:52,598 [DEBUG][       Thread-602498][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:02:52,598 [DEBUG][       Thread-602498][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:02:52,598 [DEBUG][       Thread-602498][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:02:52,599 [DEBUG][       Thread-602498][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:02:52,599 [DEBUG][       Thread-602498][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:02:52,599 [DEBUG][       Thread-602498][   transport.py][1871] : client lang: <none>
2025-07-01 11:02:52,599 [DEBUG][       Thread-602498][   transport.py][1871] : server lang: <none>
2025-07-01 11:02:52,599 [DEBUG][       Thread-602498][   transport.py][1871] : kex follows: False
2025-07-01 11:02:52,599 [DEBUG][       Thread-602498][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:02:52,599 [DEBUG][       Thread-602498][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:02:52,599 [DEBUG][       Thread-602498][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:02:52,599 [DEBUG][       Thread-602498][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:02:52,599 [DEBUG][       Thread-602498][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:02:52,599 [DEBUG][       Thread-602498][   transport.py][1871] : Compression: none
2025-07-01 11:02:52,599 [DEBUG][       Thread-602498][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:02:52,655 [DEBUG][       Thread-602498][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:02:52,656 [DEBUG][       Thread-602498][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:02:52,656 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:02:52,657 [DEBUG][       Thread-602498][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:02:52,657 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:02:52,711 [DEBUG][       Thread-602498][   transport.py][1871] : userauth is OK
2025-07-01 11:02:52,711 [DEBUG][       Thread-602498][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:02:52,711 [DEBUG][       Thread-602498][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:02:52,712 [DEBUG][       Thread-602498][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:02:52,712 [DEBUG][       Thread-602498][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:02:52,731 [ INFO][       Thread-602498][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:02:52,731 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:02:52,732 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:02:52,777 [DEBUG][Thread-602500 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:02:53,751 [DEBUG][       Thread-602498][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:02:53,752 [DEBUG][       Thread-602498][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:02:53,800 [DEBUG][       Thread-602498][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:02:53,800 [DEBUG][       Thread-602498][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:02:53,809 [DEBUG][       Thread-602498][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:02:53,818 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:02:53,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-07-01 11:02:53,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') -> 00000000
2025-07-01 11:02:53,836 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:02:53,837 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:02:53,837 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:02:53,845 [DEBUG][       Thread-602498][   transport.py][1871] : EOF in transport thread
2025-07-01 11:03:01,795 [DEBUG][Thread-602501 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:03:03,848 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:03:03,848 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:03:03,848 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:03:03,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-07-01 11:03:04,275 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:03:04,276 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:03:04,331 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 2, 28), 10.06, 49.89, 0.0, 35.41, 10.44, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:03:04,331 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:02:28
2025-07-01 11:03:04,415 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:03:04,419 [DEBUG][       Thread-602502][   transport.py][1871] : starting thread (client mode): 0x82b3910
2025-07-01 11:03:04,419 [DEBUG][       Thread-602502][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:03:04,439 [DEBUG][       Thread-602502][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:03:04,439 [ INFO][       Thread-602502][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:03:04,442 [DEBUG][       Thread-602502][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:03:04,442 [DEBUG][       Thread-602502][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:03:04,442 [DEBUG][       Thread-602502][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:03:04,442 [DEBUG][       Thread-602502][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:03:04,442 [DEBUG][       Thread-602502][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:03:04,443 [DEBUG][       Thread-602502][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:03:04,443 [DEBUG][       Thread-602502][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:03:04,443 [DEBUG][       Thread-602502][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:03:04,443 [DEBUG][       Thread-602502][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:03:04,443 [DEBUG][       Thread-602502][   transport.py][1871] : client lang: <none>
2025-07-01 11:03:04,443 [DEBUG][       Thread-602502][   transport.py][1871] : server lang: <none>
2025-07-01 11:03:04,443 [DEBUG][       Thread-602502][   transport.py][1871] : kex follows: False
2025-07-01 11:03:04,443 [DEBUG][       Thread-602502][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:03:04,443 [DEBUG][       Thread-602502][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:03:04,443 [DEBUG][       Thread-602502][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:03:04,443 [DEBUG][       Thread-602502][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:03:04,443 [DEBUG][       Thread-602502][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:03:04,443 [DEBUG][       Thread-602502][   transport.py][1871] : Compression: none
2025-07-01 11:03:04,443 [DEBUG][       Thread-602502][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:03:04,459 [DEBUG][       Thread-602502][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:03:04,460 [DEBUG][       Thread-602502][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:03:04,460 [DEBUG][       Thread-602502][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:03:04,460 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:03:04,461 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:03:04,504 [DEBUG][       Thread-602502][   transport.py][1871] : userauth is OK
2025-07-01 11:03:04,529 [ INFO][       Thread-602502][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:03:04,529 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:03:05,118 [DEBUG][       Thread-602502][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:03:05,118 [DEBUG][       Thread-602502][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:03:05,161 [DEBUG][       Thread-602502][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:03:05,161 [DEBUG][       Thread-602502][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:03:05,165 [DEBUG][       Thread-602502][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:03:05,178 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:03:05,179 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:03:05,181 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:03:05,183 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:03:05,188 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:03:05,190 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:03:05,190 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:03:05,191 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:03:05,191 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.376681 -999.00  +10.50  37.18     54   +1.70 1 2 2 1 1   887    0 9.27 23.96 ----- 37.2 37.2 35.0 42.7 14.3 -20.3 13.3 -21.9 12.6 -18.6 13.6 -18.1
2025-07-01 11:03:05,191 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:03:05,191 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:03:05,191 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.376681
2025-07-01 11:03:05,192 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:03:05,192 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:03:05,192 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:03:05,193 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:03:05,193 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:03:05,193 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:02:28', tmtdew=10.06, humidity=49.89, cloud=0.0, wind=35.41, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:02:25.238', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:03:05,194 [DEBUG][       Thread-602502][   transport.py][1871] : EOF in transport thread
2025-07-01 11:03:05,268 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:03:05,287 [DEBUG][       Thread-602505][   transport.py][1871] : starting thread (client mode): 0x818e2f0
2025-07-01 11:03:05,287 [DEBUG][       Thread-602505][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:03:05,304 [DEBUG][       Thread-602505][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:03:05,304 [ INFO][       Thread-602505][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:03:05,315 [DEBUG][       Thread-602505][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:03:05,315 [DEBUG][       Thread-602505][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:03:05,315 [DEBUG][       Thread-602505][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:03:05,315 [DEBUG][       Thread-602505][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:03:05,315 [DEBUG][       Thread-602505][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:03:05,315 [DEBUG][       Thread-602505][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:03:05,315 [DEBUG][       Thread-602505][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:03:05,315 [DEBUG][       Thread-602505][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:03:05,315 [DEBUG][       Thread-602505][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:03:05,315 [DEBUG][       Thread-602505][   transport.py][1871] : client lang: <none>
2025-07-01 11:03:05,315 [DEBUG][       Thread-602505][   transport.py][1871] : server lang: <none>
2025-07-01 11:03:05,315 [DEBUG][       Thread-602505][   transport.py][1871] : kex follows: False
2025-07-01 11:03:05,315 [DEBUG][       Thread-602505][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:03:05,316 [DEBUG][       Thread-602505][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:03:05,316 [DEBUG][       Thread-602505][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:03:05,316 [DEBUG][       Thread-602505][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:03:05,316 [DEBUG][       Thread-602505][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:03:05,316 [DEBUG][       Thread-602505][   transport.py][1871] : Compression: none
2025-07-01 11:03:05,316 [DEBUG][       Thread-602505][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:03:05,371 [DEBUG][       Thread-602505][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:03:05,371 [DEBUG][       Thread-602505][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:03:05,372 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:03:05,372 [DEBUG][       Thread-602505][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:03:05,373 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:03:05,432 [DEBUG][       Thread-602505][   transport.py][1871] : userauth is OK
2025-07-01 11:03:05,432 [DEBUG][       Thread-602505][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:03:05,433 [DEBUG][       Thread-602505][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:03:05,433 [DEBUG][       Thread-602505][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:03:05,433 [DEBUG][       Thread-602505][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:03:05,454 [ INFO][       Thread-602505][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:03:05,455 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:03:05,455 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:03:06,495 [DEBUG][       Thread-602505][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:03:06,495 [DEBUG][       Thread-602505][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:03:06,544 [DEBUG][       Thread-602505][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:03:06,544 [DEBUG][       Thread-602505][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:03:06,554 [DEBUG][       Thread-602505][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:03:06,563 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:03:06,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')
2025-07-01 11:03:06,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-07-01 11:03:06,582 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:03:06,582 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:03:06,582 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:03:06,593 [DEBUG][       Thread-602505][   transport.py][1871] : EOF in transport thread
2025-07-01 11:03:10,816 [DEBUG][Thread-602507 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:03:16,593 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:03:16,593 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:03:16,593 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:03:16,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-07-01 11:03:17,062 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 2, 28), 10.06, 49.89, 0.0, 35.41, 10.44, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:03:17,062 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:02:28
2025-07-01 11:03:17,147 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:03:17,153 [DEBUG][       Thread-602508][   transport.py][1871] : starting thread (client mode): 0x8106d70
2025-07-01 11:03:17,153 [DEBUG][       Thread-602508][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:03:17,171 [DEBUG][       Thread-602508][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:03:17,171 [ INFO][       Thread-602508][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:03:17,175 [DEBUG][       Thread-602508][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:03:17,175 [DEBUG][       Thread-602508][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:03:17,175 [DEBUG][       Thread-602508][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:03:17,175 [DEBUG][       Thread-602508][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:03:17,175 [DEBUG][       Thread-602508][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:03:17,175 [DEBUG][       Thread-602508][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:03:17,175 [DEBUG][       Thread-602508][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:03:17,175 [DEBUG][       Thread-602508][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:03:17,175 [DEBUG][       Thread-602508][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:03:17,175 [DEBUG][       Thread-602508][   transport.py][1871] : client lang: <none>
2025-07-01 11:03:17,175 [DEBUG][       Thread-602508][   transport.py][1871] : server lang: <none>
2025-07-01 11:03:17,175 [DEBUG][       Thread-602508][   transport.py][1871] : kex follows: False
2025-07-01 11:03:17,175 [DEBUG][       Thread-602508][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:03:17,175 [DEBUG][       Thread-602508][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:03:17,175 [DEBUG][       Thread-602508][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:03:17,175 [DEBUG][       Thread-602508][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:03:17,175 [DEBUG][       Thread-602508][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:03:17,175 [DEBUG][       Thread-602508][   transport.py][1871] : Compression: none
2025-07-01 11:03:17,175 [DEBUG][       Thread-602508][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:03:17,187 [DEBUG][       Thread-602508][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:03:17,187 [DEBUG][       Thread-602508][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:03:17,188 [DEBUG][       Thread-602508][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:03:17,188 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:03:17,188 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:03:17,188 [DEBUG][       Thread-602508][   transport.py][1871] : userauth is OK
2025-07-01 11:03:17,212 [ INFO][       Thread-602508][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:03:17,212 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:03:17,870 [DEBUG][       Thread-602508][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:03:17,870 [DEBUG][       Thread-602508][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:03:17,913 [DEBUG][       Thread-602508][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:03:17,913 [DEBUG][       Thread-602508][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:03:17,916 [DEBUG][       Thread-602508][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:03:17,929 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:03:17,930 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:03:17,931 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:03:17,933 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:03:17,938 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:03:17,939 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:03:17,939 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:03:17,940 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:03:17,940 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.377029 -999.00  +10.50  35.50     54   +1.60 1 2 2 1 1   887    0 9.23 25.31 ----- 35.5 35.5 29.0 47.5 14.2 -20.3 13.2 -21.3 12.7 -18.3 13.4 -18.2
2025-07-01 11:03:17,940 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:03:17,940 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:03:17,940 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.377029
2025-07-01 11:03:17,941 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:03:17,941 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:03:17,941 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:03:17,941 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:03:17,942 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:03:17,942 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:02:28', tmtdew=10.06, humidity=49.89, cloud=0.0, wind=35.41, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:02:55.306', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:03:17,943 [DEBUG][       Thread-602508][   transport.py][1871] : EOF in transport thread
2025-07-01 11:03:18,026 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:03:18,040 [DEBUG][       Thread-602511][   transport.py][1871] : starting thread (client mode): 0x827ec50
2025-07-01 11:03:18,040 [DEBUG][       Thread-602511][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:03:18,061 [DEBUG][       Thread-602511][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:03:18,061 [ INFO][       Thread-602511][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:03:18,068 [DEBUG][       Thread-602511][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:03:18,069 [DEBUG][       Thread-602511][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:03:18,069 [DEBUG][       Thread-602511][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:03:18,069 [DEBUG][       Thread-602511][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:03:18,069 [DEBUG][       Thread-602511][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:03:18,069 [DEBUG][       Thread-602511][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:03:18,069 [DEBUG][       Thread-602511][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:03:18,069 [DEBUG][       Thread-602511][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:03:18,069 [DEBUG][       Thread-602511][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:03:18,069 [DEBUG][       Thread-602511][   transport.py][1871] : client lang: <none>
2025-07-01 11:03:18,069 [DEBUG][       Thread-602511][   transport.py][1871] : server lang: <none>
2025-07-01 11:03:18,069 [DEBUG][       Thread-602511][   transport.py][1871] : kex follows: False
2025-07-01 11:03:18,069 [DEBUG][       Thread-602511][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:03:18,069 [DEBUG][       Thread-602511][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:03:18,069 [DEBUG][       Thread-602511][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:03:18,069 [DEBUG][       Thread-602511][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:03:18,069 [DEBUG][       Thread-602511][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:03:18,070 [DEBUG][       Thread-602511][   transport.py][1871] : Compression: none
2025-07-01 11:03:18,070 [DEBUG][       Thread-602511][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:03:18,128 [DEBUG][       Thread-602511][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:03:18,129 [DEBUG][       Thread-602511][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:03:18,129 [DEBUG][       Thread-602511][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:03:18,130 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:03:18,130 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:03:18,201 [DEBUG][       Thread-602511][   transport.py][1871] : userauth is OK
2025-07-01 11:03:18,201 [DEBUG][       Thread-602511][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:03:18,201 [DEBUG][       Thread-602511][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:03:18,201 [DEBUG][       Thread-602511][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:03:18,201 [DEBUG][       Thread-602511][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:03:18,220 [ INFO][       Thread-602511][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:03:18,221 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:03:18,221 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:03:19,209 [DEBUG][       Thread-602511][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:03:19,210 [DEBUG][       Thread-602511][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:03:19,260 [DEBUG][       Thread-602511][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:03:19,260 [DEBUG][       Thread-602511][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:03:19,269 [DEBUG][       Thread-602511][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:03:19,278 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:03:19,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')
2025-07-01 11:03:19,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') -> 00000000
2025-07-01 11:03:19,296 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:03:19,297 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:03:19,297 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:03:19,310 [DEBUG][       Thread-602511][   transport.py][1871] : EOF in transport thread
2025-07-01 11:03:19,839 [DEBUG][Thread-602513 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:03:24,902 [DEBUG][Thread-602514 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:03:28,861 [DEBUG][Thread-602515 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:03:29,308 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:03:29,308 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:03:29,308 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:03:29,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-07-01 11:03:29,760 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 2, 28), 10.06, 49.89, 0.0, 35.41, 10.44, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:03:29,760 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:02:28
2025-07-01 11:03:29,845 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:03:29,849 [DEBUG][       Thread-602516][   transport.py][1871] : starting thread (client mode): 0x82b2980
2025-07-01 11:03:29,849 [DEBUG][       Thread-602516][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:03:29,870 [DEBUG][       Thread-602516][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:03:29,870 [ INFO][       Thread-602516][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:03:29,873 [DEBUG][       Thread-602516][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:03:29,873 [DEBUG][       Thread-602516][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:03:29,873 [DEBUG][       Thread-602516][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:03:29,873 [DEBUG][       Thread-602516][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:03:29,873 [DEBUG][       Thread-602516][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:03:29,873 [DEBUG][       Thread-602516][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:03:29,873 [DEBUG][       Thread-602516][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:03:29,873 [DEBUG][       Thread-602516][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:03:29,873 [DEBUG][       Thread-602516][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:03:29,873 [DEBUG][       Thread-602516][   transport.py][1871] : client lang: <none>
2025-07-01 11:03:29,873 [DEBUG][       Thread-602516][   transport.py][1871] : server lang: <none>
2025-07-01 11:03:29,873 [DEBUG][       Thread-602516][   transport.py][1871] : kex follows: False
2025-07-01 11:03:29,873 [DEBUG][       Thread-602516][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:03:29,873 [DEBUG][       Thread-602516][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:03:29,874 [DEBUG][       Thread-602516][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:03:29,874 [DEBUG][       Thread-602516][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:03:29,874 [DEBUG][       Thread-602516][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:03:29,874 [DEBUG][       Thread-602516][   transport.py][1871] : Compression: none
2025-07-01 11:03:29,874 [DEBUG][       Thread-602516][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:03:29,890 [DEBUG][       Thread-602516][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:03:29,891 [DEBUG][       Thread-602516][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:03:29,891 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:03:29,891 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:03:29,892 [DEBUG][       Thread-602516][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:03:29,893 [DEBUG][       Thread-602516][   transport.py][1871] : userauth is OK
2025-07-01 11:03:29,918 [ INFO][       Thread-602516][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:03:29,918 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:03:30,589 [DEBUG][       Thread-602516][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:03:30,589 [DEBUG][       Thread-602516][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:03:30,632 [DEBUG][       Thread-602516][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:03:30,633 [DEBUG][       Thread-602516][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:03:30,636 [DEBUG][       Thread-602516][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:03:30,648 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:03:30,648 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:03:30,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:03:30,651 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:03:30,655 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:03:30,657 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:03:30,657 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:03:30,657 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:03:30,658 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.377029 -999.00  +10.50  35.50     54   +1.60 1 2 2 1 1   887    0 9.23 25.31 ----- 35.5 35.5 29.0 47.5 14.2 -20.3 13.2 -21.3 12.7 -18.3 13.4 -18.2
2025-07-01 11:03:30,658 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:03:30,658 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:03:30,658 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.377029
2025-07-01 11:03:30,658 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:03:30,659 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:03:30,659 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:03:30,659 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:03:30,659 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:03:30,659 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:02:28', tmtdew=10.06, humidity=49.89, cloud=0.0, wind=35.41, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:02:55.306', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:03:30,659 [DEBUG][       Thread-602516][   transport.py][1871] : EOF in transport thread
2025-07-01 11:03:30,741 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:03:37,881 [DEBUG][Thread-602519 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:03:46,905 [DEBUG][Thread-602520 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:03:55,927 [DEBUG][Thread-602521 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:04:04,414 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:04:04,414 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:04:04,945 [DEBUG][Thread-602522 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:04:13,969 [DEBUG][Thread-602523 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:04:22,990 [DEBUG][Thread-602524 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:04:24,949 [DEBUG][Thread-602525 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:04:32,012 [DEBUG][Thread-602526 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:04:41,029 [DEBUG][Thread-602527 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:04:50,052 [DEBUG][Thread-602528 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:04:59,074 [DEBUG][Thread-602529 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:05:04,552 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:05:04,553 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:05:08,093 [DEBUG][Thread-602530 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:05:17,112 [DEBUG][Thread-602531 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:05:24,999 [DEBUG][Thread-602532 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:05:26,131 [DEBUG][Thread-602533 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:05:35,151 [DEBUG][Thread-602534 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:05:39,604 [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-07-01 11:05:44,171 [DEBUG][Thread-602535 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:05:49,608 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:05:49,608 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:05:49,608 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:05:49,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-07-01 11:05:50,109 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 5, 38), 10.21, 49.49, 0.0, 31.04, 10.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:05:50,109 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:05:38
2025-07-01 11:05:50,192 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:05:50,197 [DEBUG][       Thread-602536][   transport.py][1871] : starting thread (client mode): 0x81d9810
2025-07-01 11:05:50,197 [DEBUG][       Thread-602536][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:05:50,217 [DEBUG][       Thread-602536][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:05:50,218 [ INFO][       Thread-602536][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:05:50,221 [DEBUG][       Thread-602536][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:05:50,221 [DEBUG][       Thread-602536][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:05:50,221 [DEBUG][       Thread-602536][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:05:50,221 [DEBUG][       Thread-602536][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:05:50,221 [DEBUG][       Thread-602536][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:05:50,221 [DEBUG][       Thread-602536][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:05:50,221 [DEBUG][       Thread-602536][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:05:50,221 [DEBUG][       Thread-602536][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:05:50,221 [DEBUG][       Thread-602536][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:05:50,221 [DEBUG][       Thread-602536][   transport.py][1871] : client lang: <none>
2025-07-01 11:05:50,221 [DEBUG][       Thread-602536][   transport.py][1871] : server lang: <none>
2025-07-01 11:05:50,221 [DEBUG][       Thread-602536][   transport.py][1871] : kex follows: False
2025-07-01 11:05:50,221 [DEBUG][       Thread-602536][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:05:50,221 [DEBUG][       Thread-602536][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:05:50,221 [DEBUG][       Thread-602536][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:05:50,221 [DEBUG][       Thread-602536][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:05:50,221 [DEBUG][       Thread-602536][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:05:50,221 [DEBUG][       Thread-602536][   transport.py][1871] : Compression: none
2025-07-01 11:05:50,222 [DEBUG][       Thread-602536][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:05:50,237 [DEBUG][       Thread-602536][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:05:50,237 [DEBUG][       Thread-602536][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:05:50,238 [DEBUG][       Thread-602536][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:05:50,238 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:05:50,238 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:05:50,239 [DEBUG][       Thread-602536][   transport.py][1871] : userauth is OK
2025-07-01 11:05:50,264 [ INFO][       Thread-602536][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:05:50,264 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:05:50,935 [DEBUG][       Thread-602536][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:05:50,935 [DEBUG][       Thread-602536][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:05:50,977 [DEBUG][       Thread-602536][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:05:50,977 [DEBUG][       Thread-602536][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:05:50,980 [DEBUG][       Thread-602536][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:05:50,993 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:05:50,994 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:05:50,996 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:05:50,998 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:05:51,004 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:05:51,006 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:05:51,006 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:05:51,007 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:05:51,007 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.378417 -999.00  +10.30  36.56     54   +1.40 1 2 2 1 1   887    0 9.42 31.20 ----- 36.6 36.6 45.2 47.8 14.0 -20.4 13.1 -20.7 12.4 -20.2 13.4 -17.9
2025-07-01 11:05:51,007 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:05:51,007 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:05:51,007 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.378417
2025-07-01 11:05:51,008 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:05:51,008 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:05:51,008 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:05:51,009 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:05:51,009 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:05:51,009 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:05:38', tmtdew=10.21, humidity=49.49, cloud=0.0, wind=31.04, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:04:55.229', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:05:51,010 [DEBUG][       Thread-602536][   transport.py][1871] : EOF in transport thread
2025-07-01 11:05:51,098 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:05:51,107 [DEBUG][       Thread-602539][   transport.py][1871] : starting thread (client mode): 0x82b3190
2025-07-01 11:05:51,107 [DEBUG][       Thread-602539][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:05:51,122 [DEBUG][       Thread-602539][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:05:51,123 [ INFO][       Thread-602539][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:05:51,130 [DEBUG][       Thread-602539][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:05:51,130 [DEBUG][       Thread-602539][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:05:51,130 [DEBUG][       Thread-602539][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:05:51,130 [DEBUG][       Thread-602539][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:05:51,130 [DEBUG][       Thread-602539][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:05:51,130 [DEBUG][       Thread-602539][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:05:51,130 [DEBUG][       Thread-602539][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:05:51,130 [DEBUG][       Thread-602539][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:05:51,130 [DEBUG][       Thread-602539][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:05:51,130 [DEBUG][       Thread-602539][   transport.py][1871] : client lang: <none>
2025-07-01 11:05:51,130 [DEBUG][       Thread-602539][   transport.py][1871] : server lang: <none>
2025-07-01 11:05:51,130 [DEBUG][       Thread-602539][   transport.py][1871] : kex follows: False
2025-07-01 11:05:51,130 [DEBUG][       Thread-602539][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:05:51,131 [DEBUG][       Thread-602539][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:05:51,131 [DEBUG][       Thread-602539][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:05:51,131 [DEBUG][       Thread-602539][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:05:51,131 [DEBUG][       Thread-602539][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:05:51,131 [DEBUG][       Thread-602539][   transport.py][1871] : Compression: none
2025-07-01 11:05:51,131 [DEBUG][       Thread-602539][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:05:51,189 [DEBUG][       Thread-602539][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:05:51,189 [DEBUG][       Thread-602539][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:05:51,189 [DEBUG][       Thread-602539][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:05:51,189 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:05:51,190 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:05:51,250 [DEBUG][       Thread-602539][   transport.py][1871] : userauth is OK
2025-07-01 11:05:51,250 [DEBUG][       Thread-602539][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:05:51,250 [DEBUG][       Thread-602539][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:05:51,251 [DEBUG][       Thread-602539][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:05:51,251 [DEBUG][       Thread-602539][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:05:51,280 [ INFO][       Thread-602539][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:05:51,280 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:05:51,281 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:05:52,281 [DEBUG][       Thread-602539][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:05:52,281 [DEBUG][       Thread-602539][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:05:52,332 [DEBUG][       Thread-602539][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:05:52,332 [DEBUG][       Thread-602539][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:05:52,341 [DEBUG][       Thread-602539][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:05:52,350 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:05:52,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-07-01 11:05:52,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-07-01 11:05:52,369 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:05:52,369 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:05:52,369 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:05:52,378 [DEBUG][       Thread-602539][   transport.py][1871] : EOF in transport thread
2025-07-01 11:05:53,194 [DEBUG][Thread-602541 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:06:02,223 [DEBUG][Thread-602542 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:06:02,380 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:06:02,380 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:06:02,380 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:06: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-07-01 11:06:02,886 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 5, 38), 10.21, 49.49, 0.0, 31.04, 10.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:06:02,886 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:05:38
2025-07-01 11:06:02,970 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:06:02,974 [DEBUG][       Thread-602543][   transport.py][1871] : starting thread (client mode): 0x82b2ce0
2025-07-01 11:06:02,974 [DEBUG][       Thread-602543][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:06:02,994 [DEBUG][       Thread-602543][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:06:02,994 [ INFO][       Thread-602543][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:06:02,998 [DEBUG][       Thread-602543][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:06:02,998 [DEBUG][       Thread-602543][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:06:02,998 [DEBUG][       Thread-602543][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:06:02,998 [DEBUG][       Thread-602543][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:06:02,998 [DEBUG][       Thread-602543][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:06:02,998 [DEBUG][       Thread-602543][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:06:02,998 [DEBUG][       Thread-602543][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:06:02,998 [DEBUG][       Thread-602543][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:06:02,998 [DEBUG][       Thread-602543][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:06:02,998 [DEBUG][       Thread-602543][   transport.py][1871] : client lang: <none>
2025-07-01 11:06:02,998 [DEBUG][       Thread-602543][   transport.py][1871] : server lang: <none>
2025-07-01 11:06:02,998 [DEBUG][       Thread-602543][   transport.py][1871] : kex follows: False
2025-07-01 11:06:02,998 [DEBUG][       Thread-602543][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:06:02,998 [DEBUG][       Thread-602543][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:06:02,998 [DEBUG][       Thread-602543][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:06:02,998 [DEBUG][       Thread-602543][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:06:02,998 [DEBUG][       Thread-602543][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:06:02,998 [DEBUG][       Thread-602543][   transport.py][1871] : Compression: none
2025-07-01 11:06:02,998 [DEBUG][       Thread-602543][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:06:03,015 [DEBUG][       Thread-602543][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:06:03,016 [DEBUG][       Thread-602543][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:06:03,016 [DEBUG][       Thread-602543][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:06:03,016 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:06:03,017 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:06:03,018 [DEBUG][       Thread-602543][   transport.py][1871] : userauth is OK
2025-07-01 11:06:03,032 [ INFO][       Thread-602543][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:06:03,032 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:06:03,645 [DEBUG][       Thread-602543][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:06:03,645 [DEBUG][       Thread-602543][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:06:03,689 [DEBUG][       Thread-602543][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:06:03,689 [DEBUG][       Thread-602543][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:06:03,692 [DEBUG][       Thread-602543][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:06:03,705 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:06:03,706 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:06:03,707 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:06:03,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:06:03,714 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:06:03,715 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:06:03,716 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:06:03,716 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:06:03,717 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.378765 -999.00  +10.10  33.01     54   +1.40 1 2 2 1 1   887    0 9.71 31.99 ----- 33.0 33.0 50.0 50.6 13.9 -19.5 13.0 -20.3 12.4 -17.9 13.3 -17.5
2025-07-01 11:06:03,717 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:06:03,717 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:06:03,717 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.378765
2025-07-01 11:06:03,717 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:06:03,718 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:06:03,718 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:06:03,718 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:06:03,718 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:06:03,718 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:05:38', tmtdew=10.21, humidity=49.49, cloud=0.0, wind=31.04, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:05:25.296', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:06:03,719 [DEBUG][       Thread-602543][   transport.py][1871] : EOF in transport thread
2025-07-01 11:06:03,801 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:06:03,811 [DEBUG][       Thread-602546][   transport.py][1871] : starting thread (client mode): 0x81a7f10
2025-07-01 11:06:03,811 [DEBUG][       Thread-602546][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:06:03,826 [DEBUG][       Thread-602546][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:06:03,827 [ INFO][       Thread-602546][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:06:03,834 [DEBUG][       Thread-602546][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:06:03,834 [DEBUG][       Thread-602546][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:06:03,834 [DEBUG][       Thread-602546][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:06:03,834 [DEBUG][       Thread-602546][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:06:03,834 [DEBUG][       Thread-602546][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:06:03,834 [DEBUG][       Thread-602546][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:06:03,834 [DEBUG][       Thread-602546][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:06:03,834 [DEBUG][       Thread-602546][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:06:03,835 [DEBUG][       Thread-602546][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:06:03,835 [DEBUG][       Thread-602546][   transport.py][1871] : client lang: <none>
2025-07-01 11:06:03,835 [DEBUG][       Thread-602546][   transport.py][1871] : server lang: <none>
2025-07-01 11:06:03,835 [DEBUG][       Thread-602546][   transport.py][1871] : kex follows: False
2025-07-01 11:06:03,835 [DEBUG][       Thread-602546][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:06:03,835 [DEBUG][       Thread-602546][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:06:03,835 [DEBUG][       Thread-602546][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:06:03,835 [DEBUG][       Thread-602546][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:06:03,835 [DEBUG][       Thread-602546][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:06:03,835 [DEBUG][       Thread-602546][   transport.py][1871] : Compression: none
2025-07-01 11:06:03,835 [DEBUG][       Thread-602546][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:06:03,891 [DEBUG][       Thread-602546][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:06:03,891 [DEBUG][       Thread-602546][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:06:03,891 [DEBUG][       Thread-602546][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:06:03,891 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:06:03,891 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:06:03,947 [DEBUG][       Thread-602546][   transport.py][1871] : userauth is OK
2025-07-01 11:06:03,947 [DEBUG][       Thread-602546][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:06:03,947 [DEBUG][       Thread-602546][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:06:03,948 [DEBUG][       Thread-602546][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:06:03,948 [DEBUG][       Thread-602546][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:06:03,967 [ INFO][       Thread-602546][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:06:03,968 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:06:03,968 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:06:04,693 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:06:04,694 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:06:04,994 [DEBUG][       Thread-602546][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:06:04,994 [DEBUG][       Thread-602546][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:06:05,044 [DEBUG][       Thread-602546][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:06:05,044 [DEBUG][       Thread-602546][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:06:05,057 [DEBUG][       Thread-602546][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:06:05,066 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:06:05,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-07-01 11:06:05,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-07-01 11:06:05,084 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:06:05,084 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:06:05,085 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:06:05,092 [DEBUG][       Thread-602546][   transport.py][1871] : EOF in transport thread
2025-07-01 11:06:11,242 [DEBUG][Thread-602548 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:06:15,089 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:06:15,089 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:06:15,089 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:06:15,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-07-01 11:06:15,590 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 6, 10), 10.24, 49.26, 0.0, 33.98, 10.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:06:15,590 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:06:10
2025-07-01 11:06:15,675 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:06:15,681 [DEBUG][       Thread-602549][   transport.py][1871] : starting thread (client mode): 0x81048b0
2025-07-01 11:06:15,681 [DEBUG][       Thread-602549][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:06:15,701 [DEBUG][       Thread-602549][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:06:15,701 [ INFO][       Thread-602549][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:06:15,704 [DEBUG][       Thread-602549][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:06:15,704 [DEBUG][       Thread-602549][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:06:15,704 [DEBUG][       Thread-602549][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:06:15,705 [DEBUG][       Thread-602549][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:06:15,705 [DEBUG][       Thread-602549][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:06:15,705 [DEBUG][       Thread-602549][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:06:15,705 [DEBUG][       Thread-602549][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:06:15,705 [DEBUG][       Thread-602549][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:06:15,705 [DEBUG][       Thread-602549][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:06:15,705 [DEBUG][       Thread-602549][   transport.py][1871] : client lang: <none>
2025-07-01 11:06:15,705 [DEBUG][       Thread-602549][   transport.py][1871] : server lang: <none>
2025-07-01 11:06:15,705 [DEBUG][       Thread-602549][   transport.py][1871] : kex follows: False
2025-07-01 11:06:15,705 [DEBUG][       Thread-602549][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:06:15,705 [DEBUG][       Thread-602549][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:06:15,705 [DEBUG][       Thread-602549][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:06:15,705 [DEBUG][       Thread-602549][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:06:15,705 [DEBUG][       Thread-602549][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:06:15,705 [DEBUG][       Thread-602549][   transport.py][1871] : Compression: none
2025-07-01 11:06:15,705 [DEBUG][       Thread-602549][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:06:15,721 [DEBUG][       Thread-602549][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:06:15,722 [DEBUG][       Thread-602549][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:06:15,722 [DEBUG][       Thread-602549][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:06:15,722 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:06:15,723 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:06:15,724 [DEBUG][       Thread-602549][   transport.py][1871] : userauth is OK
2025-07-01 11:06:15,748 [ INFO][       Thread-602549][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:06:15,749 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:06:16,412 [DEBUG][       Thread-602549][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:06:16,412 [DEBUG][       Thread-602549][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:06:16,457 [DEBUG][       Thread-602549][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:06:16,457 [DEBUG][       Thread-602549][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:06:16,460 [DEBUG][       Thread-602549][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:06:16,472 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:06:16,472 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:06:16,474 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:06:16,476 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:06:16,481 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:06:16,483 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:06:16,483 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:06:16,484 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:06:16,484 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.378765 -999.00  +10.10  33.01     54   +1.40 1 2 2 1 1   887    0 9.71 31.99 ----- 33.0 33.0 50.0 50.6 13.9 -19.5 13.0 -20.3 12.4 -17.9 13.3 -17.5
2025-07-01 11:06:16,484 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:06:16,484 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:06:16,484 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.378765
2025-07-01 11:06:16,485 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:06:16,485 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:06:16,485 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:06:16,485 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:06:16,485 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:06:16,486 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:06:10', tmtdew=10.24, humidity=49.26, cloud=0.0, wind=33.98, temperature=10.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:05:25.296', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:06:16,486 [DEBUG][       Thread-602549][   transport.py][1871] : EOF in transport thread
2025-07-01 11:06:16,569 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:06:16,580 [DEBUG][       Thread-602552][   transport.py][1871] : starting thread (client mode): 0x82b0c10
2025-07-01 11:06:16,580 [DEBUG][       Thread-602552][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:06:16,595 [DEBUG][       Thread-602552][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:06:16,595 [ INFO][       Thread-602552][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:06:16,603 [DEBUG][       Thread-602552][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:06:16,603 [DEBUG][       Thread-602552][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:06:16,603 [DEBUG][       Thread-602552][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:06:16,603 [DEBUG][       Thread-602552][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:06:16,603 [DEBUG][       Thread-602552][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:06:16,603 [DEBUG][       Thread-602552][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:06:16,603 [DEBUG][       Thread-602552][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:06:16,603 [DEBUG][       Thread-602552][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:06:16,603 [DEBUG][       Thread-602552][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:06:16,603 [DEBUG][       Thread-602552][   transport.py][1871] : client lang: <none>
2025-07-01 11:06:16,603 [DEBUG][       Thread-602552][   transport.py][1871] : server lang: <none>
2025-07-01 11:06:16,603 [DEBUG][       Thread-602552][   transport.py][1871] : kex follows: False
2025-07-01 11:06:16,603 [DEBUG][       Thread-602552][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:06:16,603 [DEBUG][       Thread-602552][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:06:16,603 [DEBUG][       Thread-602552][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:06:16,603 [DEBUG][       Thread-602552][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:06:16,603 [DEBUG][       Thread-602552][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:06:16,603 [DEBUG][       Thread-602552][   transport.py][1871] : Compression: none
2025-07-01 11:06:16,604 [DEBUG][       Thread-602552][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:06:16,662 [DEBUG][       Thread-602552][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:06:16,663 [DEBUG][       Thread-602552][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:06:16,663 [DEBUG][       Thread-602552][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:06:16,664 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:06:16,665 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:06:16,718 [DEBUG][       Thread-602552][   transport.py][1871] : userauth is OK
2025-07-01 11:06:16,719 [DEBUG][       Thread-602552][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:06:16,719 [DEBUG][       Thread-602552][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:06:16,719 [DEBUG][       Thread-602552][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:06:16,719 [DEBUG][       Thread-602552][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:06:16,737 [ INFO][       Thread-602552][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:06:16,738 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:06:16,738 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:06:17,765 [DEBUG][       Thread-602552][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:06:17,765 [DEBUG][       Thread-602552][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:06:17,819 [DEBUG][       Thread-602552][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:06:17,819 [DEBUG][       Thread-602552][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:06:17,830 [DEBUG][       Thread-602552][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:06:17,841 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:06:17,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-07-01 11:06:17,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-07-01 11:06:17,861 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:06:17,861 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:06:17,862 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:06:17,870 [DEBUG][       Thread-602552][   transport.py][1871] : EOF in transport thread
2025-07-01 11:06:20,262 [DEBUG][Thread-602554 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:06:25,049 [DEBUG][Thread-602555 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:06:27,872 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:06:27,872 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:06:27,872 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:06:27,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-07-01 11:06:28,371 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 6, 10), 10.24, 49.26, 0.0, 33.98, 10.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:06:28,371 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:06:10
2025-07-01 11:06:28,455 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:06:28,462 [DEBUG][       Thread-602556][   transport.py][1871] : starting thread (client mode): 0x82b2440
2025-07-01 11:06:28,462 [DEBUG][       Thread-602556][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:06:28,477 [DEBUG][       Thread-602556][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:06:28,477 [ INFO][       Thread-602556][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:06:28,480 [DEBUG][       Thread-602556][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:06:28,480 [DEBUG][       Thread-602556][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:06:28,480 [DEBUG][       Thread-602556][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:06:28,480 [DEBUG][       Thread-602556][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:06:28,480 [DEBUG][       Thread-602556][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:06:28,480 [DEBUG][       Thread-602556][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:06:28,480 [DEBUG][       Thread-602556][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:06:28,480 [DEBUG][       Thread-602556][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:06:28,480 [DEBUG][       Thread-602556][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:06:28,480 [DEBUG][       Thread-602556][   transport.py][1871] : client lang: <none>
2025-07-01 11:06:28,480 [DEBUG][       Thread-602556][   transport.py][1871] : server lang: <none>
2025-07-01 11:06:28,480 [DEBUG][       Thread-602556][   transport.py][1871] : kex follows: False
2025-07-01 11:06:28,480 [DEBUG][       Thread-602556][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:06:28,480 [DEBUG][       Thread-602556][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:06:28,480 [DEBUG][       Thread-602556][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:06:28,480 [DEBUG][       Thread-602556][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:06:28,480 [DEBUG][       Thread-602556][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:06:28,480 [DEBUG][       Thread-602556][   transport.py][1871] : Compression: none
2025-07-01 11:06:28,481 [DEBUG][       Thread-602556][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:06:28,500 [DEBUG][       Thread-602556][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:06:28,500 [DEBUG][       Thread-602556][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:06:28,500 [DEBUG][       Thread-602556][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:06:28,501 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:06:28,501 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:06:28,502 [DEBUG][       Thread-602556][   transport.py][1871] : userauth is OK
2025-07-01 11:06:28,526 [ INFO][       Thread-602556][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:06:28,527 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:06:29,163 [DEBUG][       Thread-602556][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:06:29,163 [DEBUG][       Thread-602556][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:06:29,205 [DEBUG][       Thread-602556][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:06:29,205 [DEBUG][       Thread-602556][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:06:29,209 [DEBUG][       Thread-602556][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:06:29,222 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:06:29,222 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:06:29,224 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:06:29,226 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:06:29,232 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:06:29,234 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:06:29,235 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:06:29,235 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:06:29,235 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.378765 -999.00  +10.10  33.01     54   +1.40 1 2 2 1 1   887    0 9.71 31.99 ----- 33.0 33.0 50.0 50.6 13.9 -19.5 13.0 -20.3 12.4 -17.9 13.3 -17.5
2025-07-01 11:06:29,235 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:06:29,235 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:06:29,236 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.378765
2025-07-01 11:06:29,236 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:06:29,237 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:06:29,237 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:06:29,237 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:06:29,237 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:06:29,237 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:06:10', tmtdew=10.24, humidity=49.26, cloud=0.0, wind=33.98, temperature=10.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:05:25.296', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:06:29,238 [DEBUG][       Thread-602556][   transport.py][1871] : EOF in transport thread
2025-07-01 11:06:29,301 [DEBUG][Thread-602559 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:06:29,322 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:06:29,332 [DEBUG][       Thread-602560][   transport.py][1871] : starting thread (client mode): 0x81075b0
2025-07-01 11:06:29,332 [DEBUG][       Thread-602560][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:06:29,348 [DEBUG][       Thread-602560][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:06:29,348 [ INFO][       Thread-602560][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:06:29,356 [DEBUG][       Thread-602560][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:06:29,356 [DEBUG][       Thread-602560][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:06:29,356 [DEBUG][       Thread-602560][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:06:29,356 [DEBUG][       Thread-602560][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:06:29,356 [DEBUG][       Thread-602560][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:06:29,356 [DEBUG][       Thread-602560][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:06:29,356 [DEBUG][       Thread-602560][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:06:29,356 [DEBUG][       Thread-602560][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:06:29,356 [DEBUG][       Thread-602560][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:06:29,356 [DEBUG][       Thread-602560][   transport.py][1871] : client lang: <none>
2025-07-01 11:06:29,356 [DEBUG][       Thread-602560][   transport.py][1871] : server lang: <none>
2025-07-01 11:06:29,356 [DEBUG][       Thread-602560][   transport.py][1871] : kex follows: False
2025-07-01 11:06:29,356 [DEBUG][       Thread-602560][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:06:29,357 [DEBUG][       Thread-602560][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:06:29,357 [DEBUG][       Thread-602560][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:06:29,357 [DEBUG][       Thread-602560][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:06:29,357 [DEBUG][       Thread-602560][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:06:29,357 [DEBUG][       Thread-602560][   transport.py][1871] : Compression: none
2025-07-01 11:06:29,357 [DEBUG][       Thread-602560][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:06:29,417 [DEBUG][       Thread-602560][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:06:29,417 [DEBUG][       Thread-602560][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:06:29,418 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:06:29,419 [DEBUG][       Thread-602560][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:06:29,419 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:06:29,475 [DEBUG][       Thread-602560][   transport.py][1871] : userauth is OK
2025-07-01 11:06:29,475 [DEBUG][       Thread-602560][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:06:29,475 [DEBUG][       Thread-602560][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:06:29,475 [DEBUG][       Thread-602560][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:06:29,475 [DEBUG][       Thread-602560][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:06:29,494 [ INFO][       Thread-602560][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:06:29,494 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:06:29,495 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:06:30,490 [DEBUG][       Thread-602560][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:06:30,490 [DEBUG][       Thread-602560][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:06:30,540 [DEBUG][       Thread-602560][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:06:30,540 [DEBUG][       Thread-602560][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:06:30,550 [DEBUG][       Thread-602560][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:06:30,559 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:06:30,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-07-01 11:06:30,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-07-01 11:06:30,580 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:06:30,580 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:06:30,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:06:30,590 [DEBUG][       Thread-602560][   transport.py][1871] : EOF in transport thread
2025-07-01 11:06:38,319 [DEBUG][Thread-602562 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:06:40,591 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:06:40,591 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:06:40,591 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:06:40,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-07-01 11:06:41,076 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 6, 10), 10.24, 49.26, 0.0, 33.98, 10.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:06:41,076 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:06:10
2025-07-01 11:06:41,160 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:06:41,163 [DEBUG][       Thread-602563][   transport.py][1871] : starting thread (client mode): 0x82b2080
2025-07-01 11:06:41,163 [DEBUG][       Thread-602563][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:06:41,187 [DEBUG][       Thread-602563][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:06:41,187 [ INFO][       Thread-602563][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:06:41,191 [DEBUG][       Thread-602563][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:06:41,196 [DEBUG][       Thread-602563][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:06:41,196 [DEBUG][       Thread-602563][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:06:41,197 [DEBUG][       Thread-602563][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:06:41,197 [DEBUG][       Thread-602563][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:06:41,197 [DEBUG][       Thread-602563][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:06:41,197 [DEBUG][       Thread-602563][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:06:41,197 [DEBUG][       Thread-602563][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:06:41,197 [DEBUG][       Thread-602563][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:06:41,197 [DEBUG][       Thread-602563][   transport.py][1871] : client lang: <none>
2025-07-01 11:06:41,197 [DEBUG][       Thread-602563][   transport.py][1871] : server lang: <none>
2025-07-01 11:06:41,197 [DEBUG][       Thread-602563][   transport.py][1871] : kex follows: False
2025-07-01 11:06:41,197 [DEBUG][       Thread-602563][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:06:41,197 [DEBUG][       Thread-602563][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:06:41,197 [DEBUG][       Thread-602563][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:06:41,197 [DEBUG][       Thread-602563][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:06:41,197 [DEBUG][       Thread-602563][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:06:41,197 [DEBUG][       Thread-602563][   transport.py][1871] : Compression: none
2025-07-01 11:06:41,197 [DEBUG][       Thread-602563][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:06:41,218 [DEBUG][       Thread-602563][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:06:41,218 [DEBUG][       Thread-602563][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:06:41,219 [DEBUG][       Thread-602563][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:06:41,219 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:06:41,219 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:06:41,260 [DEBUG][       Thread-602563][   transport.py][1871] : userauth is OK
2025-07-01 11:06:41,285 [ INFO][       Thread-602563][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:06:41,285 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:06:41,940 [DEBUG][       Thread-602563][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:06:41,940 [DEBUG][       Thread-602563][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:06:41,981 [DEBUG][       Thread-602563][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:06:41,981 [DEBUG][       Thread-602563][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:06:41,984 [DEBUG][       Thread-602563][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:06:41,995 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:06:41,996 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:06:41,997 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:06:41,999 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:06:42,004 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:06:42,006 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:06:42,006 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:06:42,006 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:06:42,007 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.379459 -999.00  +10.40  32.88     55   +1.80 1 2 2 1 1   887    0 9.63 31.39 ----- 32.9 32.9 36.8 37.3 14.1 -18.4 13.1 -19.0 12.5 -18.2 13.4 -16.9
2025-07-01 11:06:42,007 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:06:42,007 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:06:42,007 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.379459
2025-07-01 11:06:42,007 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:06:42,008 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:06:42,008 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:06:42,008 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:06:42,008 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:06:42,008 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:06:10', tmtdew=10.24, humidity=49.26, cloud=0.0, wind=33.98, temperature=10.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:06:25.258', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:06:42,009 [DEBUG][       Thread-602563][   transport.py][1871] : EOF in transport thread
2025-07-01 11:06:42,092 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:06:42,101 [DEBUG][       Thread-602566][   transport.py][1871] : starting thread (client mode): 0x81e5390
2025-07-01 11:06:42,101 [DEBUG][       Thread-602566][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:06:42,122 [DEBUG][       Thread-602566][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:06:42,122 [ INFO][       Thread-602566][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:06:42,129 [DEBUG][       Thread-602566][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:06:42,130 [DEBUG][       Thread-602566][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:06:42,130 [DEBUG][       Thread-602566][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:06:42,130 [DEBUG][       Thread-602566][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:06:42,130 [DEBUG][       Thread-602566][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:06:42,130 [DEBUG][       Thread-602566][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:06:42,130 [DEBUG][       Thread-602566][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:06:42,130 [DEBUG][       Thread-602566][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:06:42,130 [DEBUG][       Thread-602566][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:06:42,130 [DEBUG][       Thread-602566][   transport.py][1871] : client lang: <none>
2025-07-01 11:06:42,130 [DEBUG][       Thread-602566][   transport.py][1871] : server lang: <none>
2025-07-01 11:06:42,130 [DEBUG][       Thread-602566][   transport.py][1871] : kex follows: False
2025-07-01 11:06:42,130 [DEBUG][       Thread-602566][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:06:42,130 [DEBUG][       Thread-602566][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:06:42,130 [DEBUG][       Thread-602566][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:06:42,130 [DEBUG][       Thread-602566][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:06:42,130 [DEBUG][       Thread-602566][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:06:42,130 [DEBUG][       Thread-602566][   transport.py][1871] : Compression: none
2025-07-01 11:06:42,130 [DEBUG][       Thread-602566][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:06:42,186 [DEBUG][       Thread-602566][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:06:42,186 [DEBUG][       Thread-602566][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:06:42,187 [DEBUG][       Thread-602566][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:06:42,187 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:06:42,188 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:06:42,243 [DEBUG][       Thread-602566][   transport.py][1871] : userauth is OK
2025-07-01 11:06:42,243 [DEBUG][       Thread-602566][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:06:42,243 [DEBUG][       Thread-602566][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:06:42,243 [DEBUG][       Thread-602566][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:06:42,243 [DEBUG][       Thread-602566][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:06:42,262 [ INFO][       Thread-602566][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:06:42,263 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:06:42,263 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:06:43,274 [DEBUG][       Thread-602566][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:06:43,274 [DEBUG][       Thread-602566][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:06:43,323 [DEBUG][       Thread-602566][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:06:43,323 [DEBUG][       Thread-602566][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:06:43,332 [DEBUG][       Thread-602566][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:06:43,340 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:06:43,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-07-01 11:06: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') -> 00000000
2025-07-01 11:06:43,355 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:06:43,355 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:06:43,355 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:06:43,363 [DEBUG][       Thread-602566][   transport.py][1871] : EOF in transport thread
2025-07-01 11:06:47,339 [DEBUG][Thread-602568 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:06:53,364 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:06:53,364 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:06:53,364 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:06:53,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-07-01 11:06:53,865 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 6, 42), 10.25, 49.22, 0.0, 30.37, 10.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:06:53,865 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:06:42
2025-07-01 11:06:53,950 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:06:53,956 [DEBUG][       Thread-602569][   transport.py][1871] : starting thread (client mode): 0x82b15d0
2025-07-01 11:06:53,956 [DEBUG][       Thread-602569][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:06:53,977 [DEBUG][       Thread-602569][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:06:53,977 [ INFO][       Thread-602569][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:06:53,980 [DEBUG][       Thread-602569][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:06:53,980 [DEBUG][       Thread-602569][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:06:53,980 [DEBUG][       Thread-602569][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:06:53,980 [DEBUG][       Thread-602569][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:06:53,980 [DEBUG][       Thread-602569][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:06:53,980 [DEBUG][       Thread-602569][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:06:53,980 [DEBUG][       Thread-602569][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:06:53,980 [DEBUG][       Thread-602569][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:06:53,980 [DEBUG][       Thread-602569][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:06:53,980 [DEBUG][       Thread-602569][   transport.py][1871] : client lang: <none>
2025-07-01 11:06:53,980 [DEBUG][       Thread-602569][   transport.py][1871] : server lang: <none>
2025-07-01 11:06:53,981 [DEBUG][       Thread-602569][   transport.py][1871] : kex follows: False
2025-07-01 11:06:53,981 [DEBUG][       Thread-602569][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:06:53,981 [DEBUG][       Thread-602569][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:06:53,981 [DEBUG][       Thread-602569][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:06:53,981 [DEBUG][       Thread-602569][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:06:53,981 [DEBUG][       Thread-602569][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:06:53,981 [DEBUG][       Thread-602569][   transport.py][1871] : Compression: none
2025-07-01 11:06:53,981 [DEBUG][       Thread-602569][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:06:53,997 [DEBUG][       Thread-602569][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:06:53,998 [DEBUG][       Thread-602569][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:06:53,998 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:06:53,998 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:06:53,999 [DEBUG][       Thread-602569][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:06:53,999 [DEBUG][       Thread-602569][   transport.py][1871] : userauth is OK
2025-07-01 11:06:54,012 [ INFO][       Thread-602569][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:06:54,013 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:06:54,667 [DEBUG][       Thread-602569][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:06:54,667 [DEBUG][       Thread-602569][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:06:54,709 [DEBUG][       Thread-602569][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:06:54,709 [DEBUG][       Thread-602569][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:06:54,712 [DEBUG][       Thread-602569][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:06:54,726 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:06:54,727 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:06:54,728 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:06:54,730 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:06:54,737 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:06:54,739 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:06:54,739 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:06:54,739 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:06:54,740 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.379459 -999.00  +10.40  32.88     55   +1.80 1 2 2 1 1   887    0 9.63 31.39 ----- 32.9 32.9 36.8 37.3 14.1 -18.4 13.1 -19.0 12.5 -18.2 13.4 -16.9
2025-07-01 11:06:54,740 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:06:54,740 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:06:54,740 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.379459
2025-07-01 11:06:54,740 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:06:54,741 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:06:54,741 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:06:54,741 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:06:54,741 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:06:54,741 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:06:42', tmtdew=10.25, humidity=49.22, cloud=0.0, wind=30.37, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:06:25.258', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:06:54,742 [DEBUG][       Thread-602569][   transport.py][1871] : EOF in transport thread
2025-07-01 11:06:54,824 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:06:54,835 [DEBUG][       Thread-602572][   transport.py][1871] : starting thread (client mode): 0x81db850
2025-07-01 11:06:54,835 [DEBUG][       Thread-602572][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:06:54,852 [DEBUG][       Thread-602572][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:06:54,852 [ INFO][       Thread-602572][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:06:54,860 [DEBUG][       Thread-602572][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:06:54,860 [DEBUG][       Thread-602572][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:06:54,860 [DEBUG][       Thread-602572][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:06:54,860 [DEBUG][       Thread-602572][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:06:54,860 [DEBUG][       Thread-602572][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:06:54,860 [DEBUG][       Thread-602572][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:06:54,860 [DEBUG][       Thread-602572][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:06:54,860 [DEBUG][       Thread-602572][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:06:54,860 [DEBUG][       Thread-602572][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:06:54,860 [DEBUG][       Thread-602572][   transport.py][1871] : client lang: <none>
2025-07-01 11:06:54,860 [DEBUG][       Thread-602572][   transport.py][1871] : server lang: <none>
2025-07-01 11:06:54,860 [DEBUG][       Thread-602572][   transport.py][1871] : kex follows: False
2025-07-01 11:06:54,860 [DEBUG][       Thread-602572][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:06:54,860 [DEBUG][       Thread-602572][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:06:54,860 [DEBUG][       Thread-602572][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:06:54,860 [DEBUG][       Thread-602572][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:06:54,861 [DEBUG][       Thread-602572][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:06:54,861 [DEBUG][       Thread-602572][   transport.py][1871] : Compression: none
2025-07-01 11:06:54,861 [DEBUG][       Thread-602572][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:06:54,919 [DEBUG][       Thread-602572][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:06:54,919 [DEBUG][       Thread-602572][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:06:54,920 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:06:54,921 [DEBUG][       Thread-602572][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:06:54,921 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:06:54,976 [DEBUG][       Thread-602572][   transport.py][1871] : userauth is OK
2025-07-01 11:06:54,977 [DEBUG][       Thread-602572][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:06:54,977 [DEBUG][       Thread-602572][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:06:54,977 [DEBUG][       Thread-602572][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:06:54,977 [DEBUG][       Thread-602572][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:06:54,996 [ INFO][       Thread-602572][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:06:54,996 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:06:54,996 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:06:55,963 [DEBUG][       Thread-602572][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:06:55,964 [DEBUG][       Thread-602572][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:06:56,012 [DEBUG][       Thread-602572][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:06:56,012 [DEBUG][       Thread-602572][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:06:56,021 [DEBUG][       Thread-602572][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:06:56,031 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:06: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-07-01 11:06:56,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-07-01 11:06:56,049 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:06:56,049 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:06:56,049 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:06:56,057 [DEBUG][       Thread-602572][   transport.py][1871] : EOF in transport thread
2025-07-01 11:06:56,361 [DEBUG][Thread-602574 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:07:04,831 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:07:04,833 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:07:05,406 [DEBUG][Thread-602575 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:07:06,060 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:07:06,060 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:07:06,060 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:07:06,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-07-01 11:07:06,557 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 6, 42), 10.25, 49.22, 0.0, 30.37, 10.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:07:06,557 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:06:42
2025-07-01 11:07:06,641 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:07:06,644 [DEBUG][       Thread-602576][   transport.py][1871] : starting thread (client mode): 0x81e7550
2025-07-01 11:07:06,644 [DEBUG][       Thread-602576][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:07:06,658 [DEBUG][       Thread-602576][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:07:06,658 [ INFO][       Thread-602576][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:07:06,661 [DEBUG][       Thread-602576][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:07:06,662 [DEBUG][       Thread-602576][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:07:06,662 [DEBUG][       Thread-602576][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:07:06,662 [DEBUG][       Thread-602576][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:07:06,662 [DEBUG][       Thread-602576][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:07:06,662 [DEBUG][       Thread-602576][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:07:06,662 [DEBUG][       Thread-602576][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:07:06,662 [DEBUG][       Thread-602576][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:07:06,662 [DEBUG][       Thread-602576][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:07:06,662 [DEBUG][       Thread-602576][   transport.py][1871] : client lang: <none>
2025-07-01 11:07:06,662 [DEBUG][       Thread-602576][   transport.py][1871] : server lang: <none>
2025-07-01 11:07:06,662 [DEBUG][       Thread-602576][   transport.py][1871] : kex follows: False
2025-07-01 11:07:06,662 [DEBUG][       Thread-602576][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:07:06,662 [DEBUG][       Thread-602576][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:07:06,662 [DEBUG][       Thread-602576][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:07:06,662 [DEBUG][       Thread-602576][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:07:06,662 [DEBUG][       Thread-602576][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:07:06,662 [DEBUG][       Thread-602576][   transport.py][1871] : Compression: none
2025-07-01 11:07:06,662 [DEBUG][       Thread-602576][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:07:06,670 [DEBUG][       Thread-602576][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:07:06,670 [DEBUG][       Thread-602576][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:07:06,671 [DEBUG][       Thread-602576][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:07:06,671 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:07:06,671 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:07:06,672 [DEBUG][       Thread-602576][   transport.py][1871] : userauth is OK
2025-07-01 11:07:06,685 [ INFO][       Thread-602576][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:07:06,686 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:07:07,311 [DEBUG][       Thread-602576][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:07:07,312 [DEBUG][       Thread-602576][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:07:07,353 [DEBUG][       Thread-602576][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:07:07,353 [DEBUG][       Thread-602576][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:07:07,356 [DEBUG][       Thread-602576][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:07:07,369 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:07:07,370 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:07:07,372 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:07:07,373 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:07:07,378 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:07:07,380 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:07:07,380 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:07:07,381 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:07:07,381 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.379806 -999.00  +10.60  31.36     54   +1.90 1 2 2 1 1   887    0 9.36 29.50 ----- 31.4 31.4 44.8 39.5 14.2 -18.8 13.2 -19.0 12.6 -18.3 13.5 -17.0
2025-07-01 11:07:07,381 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:07:07,381 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:07:07,381 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.379806
2025-07-01 11:07:07,382 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:07:07,382 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:07:07,382 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:07:07,382 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:07:07,383 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:07:07,383 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:06:42', tmtdew=10.25, humidity=49.22, cloud=0.0, wind=30.37, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:06:55.238', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:07:07,383 [DEBUG][       Thread-602576][   transport.py][1871] : EOF in transport thread
2025-07-01 11:07:07,467 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:07:07,476 [DEBUG][       Thread-602579][   transport.py][1871] : starting thread (client mode): 0x81e7b20
2025-07-01 11:07:07,476 [DEBUG][       Thread-602579][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:07:07,491 [DEBUG][       Thread-602579][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:07:07,491 [ INFO][       Thread-602579][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:07:07,501 [DEBUG][       Thread-602579][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:07:07,501 [DEBUG][       Thread-602579][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:07:07,501 [DEBUG][       Thread-602579][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:07:07,501 [DEBUG][       Thread-602579][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:07:07,501 [DEBUG][       Thread-602579][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:07:07,501 [DEBUG][       Thread-602579][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:07:07,501 [DEBUG][       Thread-602579][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:07:07,501 [DEBUG][       Thread-602579][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:07:07,501 [DEBUG][       Thread-602579][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:07:07,501 [DEBUG][       Thread-602579][   transport.py][1871] : client lang: <none>
2025-07-01 11:07:07,501 [DEBUG][       Thread-602579][   transport.py][1871] : server lang: <none>
2025-07-01 11:07:07,501 [DEBUG][       Thread-602579][   transport.py][1871] : kex follows: False
2025-07-01 11:07:07,501 [DEBUG][       Thread-602579][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:07:07,501 [DEBUG][       Thread-602579][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:07:07,501 [DEBUG][       Thread-602579][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:07:07,501 [DEBUG][       Thread-602579][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:07:07,501 [DEBUG][       Thread-602579][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:07:07,501 [DEBUG][       Thread-602579][   transport.py][1871] : Compression: none
2025-07-01 11:07:07,501 [DEBUG][       Thread-602579][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:07:07,557 [DEBUG][       Thread-602579][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:07:07,557 [DEBUG][       Thread-602579][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:07:07,557 [DEBUG][       Thread-602579][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:07:07,557 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:07:07,557 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:07:07,614 [DEBUG][       Thread-602579][   transport.py][1871] : userauth is OK
2025-07-01 11:07:07,614 [DEBUG][       Thread-602579][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:07:07,614 [DEBUG][       Thread-602579][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:07:07,615 [DEBUG][       Thread-602579][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:07:07,615 [DEBUG][       Thread-602579][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:07:07,638 [ INFO][       Thread-602579][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:07:07,638 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:07:07,639 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:07:08,699 [DEBUG][       Thread-602579][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:07:08,699 [DEBUG][       Thread-602579][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:07:08,747 [DEBUG][       Thread-602579][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:07:08,747 [DEBUG][       Thread-602579][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:07:08,756 [DEBUG][       Thread-602579][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:07:08,769 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:07:08,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-07-01 11:07:08,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-07-01 11:07:08,793 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:07:08,793 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:07:08,793 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:07:08,806 [DEBUG][       Thread-602579][   transport.py][1871] : EOF in transport thread
2025-07-01 11:07:14,424 [DEBUG][Thread-602581 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:07:18,803 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:07:18,803 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:07:18,804 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:07:18,806 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 11:07:19,293 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 7, 14), 10.25, 49.22, 0.0, 32.06, 10.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:07:19,293 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:07:14
2025-07-01 11:07:19,376 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:07:19,381 [DEBUG][       Thread-602582][   transport.py][1871] : starting thread (client mode): 0x81d84c0
2025-07-01 11:07:19,381 [DEBUG][       Thread-602582][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:07:19,400 [DEBUG][       Thread-602582][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:07:19,400 [ INFO][       Thread-602582][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:07:19,403 [DEBUG][       Thread-602582][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:07:19,403 [DEBUG][       Thread-602582][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:07:19,403 [DEBUG][       Thread-602582][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:07:19,403 [DEBUG][       Thread-602582][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:07:19,403 [DEBUG][       Thread-602582][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:07:19,403 [DEBUG][       Thread-602582][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:07:19,403 [DEBUG][       Thread-602582][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:07:19,403 [DEBUG][       Thread-602582][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:07:19,403 [DEBUG][       Thread-602582][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:07:19,403 [DEBUG][       Thread-602582][   transport.py][1871] : client lang: <none>
2025-07-01 11:07:19,403 [DEBUG][       Thread-602582][   transport.py][1871] : server lang: <none>
2025-07-01 11:07:19,403 [DEBUG][       Thread-602582][   transport.py][1871] : kex follows: False
2025-07-01 11:07:19,403 [DEBUG][       Thread-602582][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:07:19,403 [DEBUG][       Thread-602582][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:07:19,403 [DEBUG][       Thread-602582][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:07:19,403 [DEBUG][       Thread-602582][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:07:19,403 [DEBUG][       Thread-602582][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:07:19,404 [DEBUG][       Thread-602582][   transport.py][1871] : Compression: none
2025-07-01 11:07:19,404 [DEBUG][       Thread-602582][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:07:19,420 [DEBUG][       Thread-602582][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:07:19,421 [DEBUG][       Thread-602582][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:07:19,421 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:07:19,421 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:07:19,422 [DEBUG][       Thread-602582][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:07:19,422 [DEBUG][       Thread-602582][   transport.py][1871] : userauth is OK
2025-07-01 11:07:19,447 [ INFO][       Thread-602582][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:07:19,447 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:07:20,088 [DEBUG][       Thread-602582][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:07:20,089 [DEBUG][       Thread-602582][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:07:20,133 [DEBUG][       Thread-602582][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:07:20,133 [DEBUG][       Thread-602582][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:07:20,137 [DEBUG][       Thread-602582][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:07:20,149 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:07:20,150 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:07:20,152 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:07:20,153 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:07:20,159 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:07:20,161 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:07:20,161 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:07:20,162 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:07:20,162 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.379806 -999.00  +10.60  31.36     54   +1.90 1 2 2 1 1   887    0 9.36 29.50 ----- 31.4 31.4 44.8 39.5 14.2 -18.8 13.2 -19.0 12.6 -18.3 13.5 -17.0
2025-07-01 11:07:20,162 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:07:20,162 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:07:20,162 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.379806
2025-07-01 11:07:20,163 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:07:20,163 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:07:20,163 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:07:20,163 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:07:20,163 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:07:20,164 [DEBUG][       Thread-602582][   transport.py][1871] : EOF in transport thread
2025-07-01 11:07:20,164 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:07:14', tmtdew=10.25, humidity=49.22, cloud=0.0, wind=32.06, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:06:55.238', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:07:20,247 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:07:23,445 [DEBUG][Thread-602585 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:07:25,102 [DEBUG][Thread-602586 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:07:32,477 [DEBUG][Thread-602587 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:07:41,497 [DEBUG][Thread-602588 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:07:50,518 [DEBUG][Thread-602589 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:07:59,538 [DEBUG][Thread-602590 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:08:04,970 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:08:04,971 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:08:08,560 [DEBUG][Thread-602591 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:08:17,584 [DEBUG][Thread-602592 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:08:25,152 [DEBUG][Thread-602593 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:08:26,606 [DEBUG][Thread-602594 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:08:35,625 [DEBUG][Thread-602595 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:08:44,647 [DEBUG][Thread-602596 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:08:53,668 [DEBUG][Thread-602597 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:09:02,688 [DEBUG][Thread-602598 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:09:05,111 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:09:05,112 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:09:11,707 [DEBUG][Thread-602599 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:09:20,728 [DEBUG][Thread-602600 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:09:25,204 [DEBUG][Thread-602601 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:09:28,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-07-01 11:09:29,750 [DEBUG][Thread-602602 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:09:38,772 [DEBUG][Thread-602603 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:09:38,991 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:09:38,991 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:09:38,991 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:09:38,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-07-01 11:09:39,510 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 9, 21), 10.16, 49.5, 0.0, 35.31, 10.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:09:39,511 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:09:21
2025-07-01 11:09:39,594 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:09:39,598 [DEBUG][       Thread-602604][   transport.py][1871] : starting thread (client mode): 0x81e5840
2025-07-01 11:09:39,598 [DEBUG][       Thread-602604][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:09:39,618 [DEBUG][       Thread-602604][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:09:39,618 [ INFO][       Thread-602604][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:09:39,622 [DEBUG][       Thread-602604][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:09:39,622 [DEBUG][       Thread-602604][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:09:39,622 [DEBUG][       Thread-602604][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:09:39,622 [DEBUG][       Thread-602604][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:09:39,622 [DEBUG][       Thread-602604][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:09:39,622 [DEBUG][       Thread-602604][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:09:39,622 [DEBUG][       Thread-602604][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:09:39,622 [DEBUG][       Thread-602604][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:09:39,622 [DEBUG][       Thread-602604][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:09:39,622 [DEBUG][       Thread-602604][   transport.py][1871] : client lang: <none>
2025-07-01 11:09:39,622 [DEBUG][       Thread-602604][   transport.py][1871] : server lang: <none>
2025-07-01 11:09:39,622 [DEBUG][       Thread-602604][   transport.py][1871] : kex follows: False
2025-07-01 11:09:39,622 [DEBUG][       Thread-602604][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:09:39,622 [DEBUG][       Thread-602604][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:09:39,622 [DEBUG][       Thread-602604][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:09:39,622 [DEBUG][       Thread-602604][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:09:39,622 [DEBUG][       Thread-602604][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:09:39,622 [DEBUG][       Thread-602604][   transport.py][1871] : Compression: none
2025-07-01 11:09:39,622 [DEBUG][       Thread-602604][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:09:39,643 [DEBUG][       Thread-602604][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:09:39,643 [DEBUG][       Thread-602604][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:09:39,644 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:09:39,644 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:09:39,645 [DEBUG][       Thread-602604][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:09:39,645 [DEBUG][       Thread-602604][   transport.py][1871] : userauth is OK
2025-07-01 11:09:39,669 [ INFO][       Thread-602604][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:09:39,670 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:09:40,368 [DEBUG][       Thread-602604][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:09:40,368 [DEBUG][       Thread-602604][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:09:40,409 [DEBUG][       Thread-602604][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:09:40,409 [DEBUG][       Thread-602604][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:09:40,412 [DEBUG][       Thread-602604][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:09:40,424 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:09:40,424 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:09:40,426 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:09:40,427 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:09:40,432 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:09:40,433 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:09:40,433 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:09:40,434 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:09:40,434 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.381195 -999.00  +10.80  40.22     53   +1.80 1 2 2 1 1   887    0 9.59 32.14 ----- 40.2 40.2 33.4 47.8 14.2 -19.5 13.3 -19.1 12.7 -18.5 13.5 -17.9
2025-07-01 11:09:40,434 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:09:40,434 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:09:40,434 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.381195
2025-07-01 11:09:40,435 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:09:40,435 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:09:40,435 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:09:40,435 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:09:40,435 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:09:40,435 [DEBUG][       Thread-602604][   transport.py][1871] : EOF in transport thread
2025-07-01 11:09:40,436 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:09:21', tmtdew=10.16, humidity=49.5, cloud=0.0, wind=35.31, temperature=10.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:08:55.248', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:09:40,519 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:09:40,529 [DEBUG][       Thread-602607][   transport.py][1871] : starting thread (client mode): 0x818eaa0
2025-07-01 11:09:40,529 [DEBUG][       Thread-602607][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:09:40,544 [DEBUG][       Thread-602607][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:09:40,544 [ INFO][       Thread-602607][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:09:40,551 [DEBUG][       Thread-602607][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:09:40,551 [DEBUG][       Thread-602607][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:09:40,551 [DEBUG][       Thread-602607][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:09:40,551 [DEBUG][       Thread-602607][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:09:40,551 [DEBUG][       Thread-602607][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:09:40,551 [DEBUG][       Thread-602607][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:09:40,551 [DEBUG][       Thread-602607][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:09:40,551 [DEBUG][       Thread-602607][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:09:40,551 [DEBUG][       Thread-602607][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:09:40,552 [DEBUG][       Thread-602607][   transport.py][1871] : client lang: <none>
2025-07-01 11:09:40,552 [DEBUG][       Thread-602607][   transport.py][1871] : server lang: <none>
2025-07-01 11:09:40,552 [DEBUG][       Thread-602607][   transport.py][1871] : kex follows: False
2025-07-01 11:09:40,552 [DEBUG][       Thread-602607][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:09:40,552 [DEBUG][       Thread-602607][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:09:40,552 [DEBUG][       Thread-602607][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:09:40,552 [DEBUG][       Thread-602607][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:09:40,552 [DEBUG][       Thread-602607][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:09:40,552 [DEBUG][       Thread-602607][   transport.py][1871] : Compression: none
2025-07-01 11:09:40,552 [DEBUG][       Thread-602607][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:09:40,617 [DEBUG][       Thread-602607][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:09:40,618 [DEBUG][       Thread-602607][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:09:40,618 [DEBUG][       Thread-602607][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:09:40,618 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:09:40,619 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:09:40,674 [DEBUG][       Thread-602607][   transport.py][1871] : userauth is OK
2025-07-01 11:09:40,674 [DEBUG][       Thread-602607][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:09:40,674 [DEBUG][       Thread-602607][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:09:40,674 [DEBUG][       Thread-602607][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:09:40,674 [DEBUG][       Thread-602607][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:09:40,693 [ INFO][       Thread-602607][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:09:40,693 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:09:40,693 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:09:41,672 [DEBUG][       Thread-602607][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:09:41,672 [DEBUG][       Thread-602607][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:09:41,723 [DEBUG][       Thread-602607][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:09:41,724 [DEBUG][       Thread-602607][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:09:41,732 [DEBUG][       Thread-602607][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:09:41,741 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:09: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')
2025-07-01 11:09:41,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-07-01 11:09:41,758 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:09:41,758 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:09:41,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:09:41,766 [DEBUG][       Thread-602607][   transport.py][1871] : EOF in transport thread
2025-07-01 11:09:47,790 [DEBUG][Thread-602609 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:09:51,769 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:09:51,769 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:09:51,769 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:09:51,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-07-01 11:09:52,275 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 9, 21), 10.16, 49.5, 0.0, 35.31, 10.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:09:52,275 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:09:21
2025-07-01 11:09:52,358 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:09:52,362 [DEBUG][       Thread-602610][   transport.py][1871] : starting thread (client mode): 0x81a75e0
2025-07-01 11:09:52,362 [DEBUG][       Thread-602610][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:09:52,383 [DEBUG][       Thread-602610][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:09:52,383 [ INFO][       Thread-602610][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:09:52,387 [DEBUG][       Thread-602610][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:09:52,387 [DEBUG][       Thread-602610][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:09:52,387 [DEBUG][       Thread-602610][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:09:52,387 [DEBUG][       Thread-602610][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:09:52,387 [DEBUG][       Thread-602610][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:09:52,387 [DEBUG][       Thread-602610][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:09:52,387 [DEBUG][       Thread-602610][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:09:52,387 [DEBUG][       Thread-602610][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:09:52,387 [DEBUG][       Thread-602610][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:09:52,387 [DEBUG][       Thread-602610][   transport.py][1871] : client lang: <none>
2025-07-01 11:09:52,387 [DEBUG][       Thread-602610][   transport.py][1871] : server lang: <none>
2025-07-01 11:09:52,387 [DEBUG][       Thread-602610][   transport.py][1871] : kex follows: False
2025-07-01 11:09:52,387 [DEBUG][       Thread-602610][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:09:52,387 [DEBUG][       Thread-602610][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:09:52,387 [DEBUG][       Thread-602610][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:09:52,387 [DEBUG][       Thread-602610][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:09:52,387 [DEBUG][       Thread-602610][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:09:52,388 [DEBUG][       Thread-602610][   transport.py][1871] : Compression: none
2025-07-01 11:09:52,388 [DEBUG][       Thread-602610][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:09:52,407 [DEBUG][       Thread-602610][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:09:52,408 [DEBUG][       Thread-602610][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:09:52,408 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:09:52,408 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:09:52,409 [DEBUG][       Thread-602610][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:09:52,410 [DEBUG][       Thread-602610][   transport.py][1871] : userauth is OK
2025-07-01 11:09:52,435 [ INFO][       Thread-602610][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:09:52,435 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:09:53,113 [DEBUG][       Thread-602610][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:09:53,114 [DEBUG][       Thread-602610][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:09:53,157 [DEBUG][       Thread-602610][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:09:53,157 [DEBUG][       Thread-602610][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:09:53,160 [DEBUG][       Thread-602610][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:09:53,174 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:09:53,174 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:09:53,176 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:09:53,178 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:09:53,183 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:09:53,185 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:09:53,185 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:09:53,186 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:09:53,186 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.381195 -999.00  +10.80  40.22     53   +1.80 1 2 2 1 1   887    0 9.59 32.14 ----- 40.2 40.2 33.4 47.8 14.2 -19.5 13.3 -19.1 12.7 -18.5 13.5 -17.9
2025-07-01 11:09:53,186 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:09:53,186 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:09:53,186 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.381195
2025-07-01 11:09:53,187 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:09:53,187 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:09:53,187 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:09:53,187 [DEBUG][       Thread-602610][   transport.py][1871] : EOF in transport thread
2025-07-01 11:09:53,188 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:09:53,188 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:09:53,188 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:09:21', tmtdew=10.16, humidity=49.5, cloud=0.0, wind=35.31, temperature=10.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:08:55.248', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:09:53,272 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:09:53,282 [DEBUG][       Thread-602613][   transport.py][1871] : starting thread (client mode): 0x8104760
2025-07-01 11:09:53,282 [DEBUG][       Thread-602613][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:09:53,297 [DEBUG][       Thread-602613][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:09:53,297 [ INFO][       Thread-602613][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:09:53,304 [DEBUG][       Thread-602613][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:09:53,305 [DEBUG][       Thread-602613][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:09:53,305 [DEBUG][       Thread-602613][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:09:53,305 [DEBUG][       Thread-602613][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:09:53,305 [DEBUG][       Thread-602613][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:09:53,305 [DEBUG][       Thread-602613][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:09:53,305 [DEBUG][       Thread-602613][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:09:53,305 [DEBUG][       Thread-602613][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:09:53,305 [DEBUG][       Thread-602613][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:09:53,305 [DEBUG][       Thread-602613][   transport.py][1871] : client lang: <none>
2025-07-01 11:09:53,305 [DEBUG][       Thread-602613][   transport.py][1871] : server lang: <none>
2025-07-01 11:09:53,305 [DEBUG][       Thread-602613][   transport.py][1871] : kex follows: False
2025-07-01 11:09:53,305 [DEBUG][       Thread-602613][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:09:53,305 [DEBUG][       Thread-602613][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:09:53,305 [DEBUG][       Thread-602613][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:09:53,305 [DEBUG][       Thread-602613][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:09:53,306 [DEBUG][       Thread-602613][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:09:53,306 [DEBUG][       Thread-602613][   transport.py][1871] : Compression: none
2025-07-01 11:09:53,306 [DEBUG][       Thread-602613][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:09:53,362 [DEBUG][       Thread-602613][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:09:53,362 [DEBUG][       Thread-602613][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:09:53,363 [DEBUG][       Thread-602613][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:09:53,363 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:09:53,363 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:09:53,422 [DEBUG][       Thread-602613][   transport.py][1871] : userauth is OK
2025-07-01 11:09:53,422 [DEBUG][       Thread-602613][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:09:53,422 [DEBUG][       Thread-602613][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:09:53,422 [DEBUG][       Thread-602613][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:09:53,422 [DEBUG][       Thread-602613][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:09:53,436 [ INFO][       Thread-602613][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:09:53,436 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:09:53,436 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:09:54,463 [DEBUG][       Thread-602613][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:09:54,464 [DEBUG][       Thread-602613][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:09:54,511 [DEBUG][       Thread-602613][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:09:54,511 [DEBUG][       Thread-602613][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:09:54,520 [DEBUG][       Thread-602613][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:09:54,528 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:09:54,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-07-01 11:09:54,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-07-01 11:09:54,544 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:09:54,544 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:09:54,544 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:09:54,551 [DEBUG][       Thread-602613][   transport.py][1871] : EOF in transport thread
2025-07-01 11:09:56,812 [DEBUG][Thread-602615 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:10:04,554 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:10:04,554 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:10:04,554 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:10:04,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-07-01 11:10:05,069 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 9, 52), 10.17, 49.49, 0.0, 32.41, 10.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:10:05,069 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:09:52
2025-07-01 11:10:05,154 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:10:05,158 [DEBUG][       Thread-602616][   transport.py][1871] : starting thread (client mode): 0x82b2140
2025-07-01 11:10:05,158 [DEBUG][       Thread-602616][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:10:05,188 [DEBUG][       Thread-602616][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:10:05,188 [ INFO][       Thread-602616][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:10:05,192 [DEBUG][       Thread-602616][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:10:05,192 [DEBUG][       Thread-602616][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:10:05,192 [DEBUG][       Thread-602616][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:10:05,192 [DEBUG][       Thread-602616][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:10:05,193 [DEBUG][       Thread-602616][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:10:05,193 [DEBUG][       Thread-602616][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:10:05,193 [DEBUG][       Thread-602616][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:10:05,193 [DEBUG][       Thread-602616][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:10:05,193 [DEBUG][       Thread-602616][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:10:05,193 [DEBUG][       Thread-602616][   transport.py][1871] : client lang: <none>
2025-07-01 11:10:05,193 [DEBUG][       Thread-602616][   transport.py][1871] : server lang: <none>
2025-07-01 11:10:05,193 [DEBUG][       Thread-602616][   transport.py][1871] : kex follows: False
2025-07-01 11:10:05,193 [DEBUG][       Thread-602616][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:10:05,193 [DEBUG][       Thread-602616][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:10:05,193 [DEBUG][       Thread-602616][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:10:05,193 [DEBUG][       Thread-602616][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:10:05,193 [DEBUG][       Thread-602616][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:10:05,193 [DEBUG][       Thread-602616][   transport.py][1871] : Compression: none
2025-07-01 11:10:05,193 [DEBUG][       Thread-602616][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:10:05,211 [DEBUG][       Thread-602616][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:10:05,211 [DEBUG][       Thread-602616][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:10:05,212 [DEBUG][       Thread-602616][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:10:05,212 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:10:05,212 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:10:05,213 [DEBUG][       Thread-602616][   transport.py][1871] : userauth is OK
2025-07-01 11:10:05,238 [ INFO][       Thread-602616][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:10:05,238 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:10:05,250 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:10:05,251 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:10:05,834 [DEBUG][Thread-602618 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:10:05,882 [DEBUG][       Thread-602616][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:10:05,883 [DEBUG][       Thread-602616][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:10:05,925 [DEBUG][       Thread-602616][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:10:05,925 [DEBUG][       Thread-602616][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:10:05,928 [DEBUG][       Thread-602616][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:10:05,940 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:10:05,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:10:05,942 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:10:05,943 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:10:05,948 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:10:05,949 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:10:05,949 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:10:05,950 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:10:05,950 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.381542 -999.00  +10.50  40.88     54   +1.70 1 2 2 1 1   887    0 9.74 33.51 ----- 40.9 40.9 38.4 46.9 14.2 -19.5 13.2 -19.4 12.7 -19.4 13.5 -17.8
2025-07-01 11:10:05,950 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:10:05,950 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:10:05,950 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.381542
2025-07-01 11:10:05,951 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:10:05,951 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:10:05,951 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:10:05,951 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:10:05,952 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:10:05,952 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:09:52', tmtdew=10.17, humidity=49.49, cloud=0.0, wind=32.41, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:09:25.229', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:10:05,952 [DEBUG][       Thread-602616][   transport.py][1871] : EOF in transport thread
2025-07-01 11:10:06,038 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:10:06,050 [DEBUG][       Thread-602620][   transport.py][1871] : starting thread (client mode): 0x83c8460
2025-07-01 11:10:06,050 [DEBUG][       Thread-602620][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:10:06,067 [DEBUG][       Thread-602620][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:10:06,067 [ INFO][       Thread-602620][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:10:06,075 [DEBUG][       Thread-602620][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:10:06,075 [DEBUG][       Thread-602620][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:10:06,075 [DEBUG][       Thread-602620][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:10:06,075 [DEBUG][       Thread-602620][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:10:06,075 [DEBUG][       Thread-602620][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:10:06,075 [DEBUG][       Thread-602620][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:10:06,075 [DEBUG][       Thread-602620][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:10:06,075 [DEBUG][       Thread-602620][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:10:06,075 [DEBUG][       Thread-602620][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:10:06,075 [DEBUG][       Thread-602620][   transport.py][1871] : client lang: <none>
2025-07-01 11:10:06,075 [DEBUG][       Thread-602620][   transport.py][1871] : server lang: <none>
2025-07-01 11:10:06,075 [DEBUG][       Thread-602620][   transport.py][1871] : kex follows: False
2025-07-01 11:10:06,075 [DEBUG][       Thread-602620][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:10:06,075 [DEBUG][       Thread-602620][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:10:06,076 [DEBUG][       Thread-602620][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:10:06,076 [DEBUG][       Thread-602620][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:10:06,076 [DEBUG][       Thread-602620][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:10:06,076 [DEBUG][       Thread-602620][   transport.py][1871] : Compression: none
2025-07-01 11:10:06,076 [DEBUG][       Thread-602620][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:10:06,134 [DEBUG][       Thread-602620][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:10:06,135 [DEBUG][       Thread-602620][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:10:06,136 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:10:06,136 [DEBUG][       Thread-602620][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:10:06,137 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:10:06,194 [DEBUG][       Thread-602620][   transport.py][1871] : userauth is OK
2025-07-01 11:10:06,195 [DEBUG][       Thread-602620][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:10:06,195 [DEBUG][       Thread-602620][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:10:06,195 [DEBUG][       Thread-602620][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:10:06,195 [DEBUG][       Thread-602620][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:10:06,217 [ INFO][       Thread-602620][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:10:06,217 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:10:06,217 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:10:07,204 [DEBUG][       Thread-602620][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:10:07,204 [DEBUG][       Thread-602620][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:10:07,252 [DEBUG][       Thread-602620][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:10:07,252 [DEBUG][       Thread-602620][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:10:07,261 [DEBUG][       Thread-602620][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:10:07,270 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:10:07,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-07-01 11:10:07,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-07-01 11:10:07,289 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:10:07,289 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:10:07,289 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:10:07,297 [DEBUG][       Thread-602620][   transport.py][1871] : EOF in transport thread
2025-07-01 11:10:14,858 [DEBUG][Thread-602622 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:10:17,300 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:10:17,300 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:10:17,300 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:10:17,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-07-01 11:10:17,817 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 9, 52), 10.17, 49.49, 0.0, 32.41, 10.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:10:17,817 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:09:52
2025-07-01 11:10:17,901 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:10:17,905 [DEBUG][       Thread-602623][   transport.py][1871] : starting thread (client mode): 0x75a9450
2025-07-01 11:10:17,905 [DEBUG][       Thread-602623][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:10:17,926 [DEBUG][       Thread-602623][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:10:17,926 [ INFO][       Thread-602623][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:10:17,929 [DEBUG][       Thread-602623][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:10:17,930 [DEBUG][       Thread-602623][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:10:17,930 [DEBUG][       Thread-602623][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:10:17,930 [DEBUG][       Thread-602623][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:10:17,930 [DEBUG][       Thread-602623][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:10:17,930 [DEBUG][       Thread-602623][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:10:17,930 [DEBUG][       Thread-602623][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:10:17,930 [DEBUG][       Thread-602623][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:10:17,930 [DEBUG][       Thread-602623][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:10:17,930 [DEBUG][       Thread-602623][   transport.py][1871] : client lang: <none>
2025-07-01 11:10:17,930 [DEBUG][       Thread-602623][   transport.py][1871] : server lang: <none>
2025-07-01 11:10:17,930 [DEBUG][       Thread-602623][   transport.py][1871] : kex follows: False
2025-07-01 11:10:17,930 [DEBUG][       Thread-602623][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:10:17,930 [DEBUG][       Thread-602623][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:10:17,930 [DEBUG][       Thread-602623][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:10:17,930 [DEBUG][       Thread-602623][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:10:17,930 [DEBUG][       Thread-602623][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:10:17,930 [DEBUG][       Thread-602623][   transport.py][1871] : Compression: none
2025-07-01 11:10:17,930 [DEBUG][       Thread-602623][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:10:17,947 [DEBUG][       Thread-602623][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:10:17,947 [DEBUG][       Thread-602623][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:10:17,948 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:10:17,948 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:10:17,949 [DEBUG][       Thread-602623][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:10:17,951 [DEBUG][       Thread-602623][   transport.py][1871] : userauth is OK
2025-07-01 11:10:17,975 [ INFO][       Thread-602623][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:10:17,976 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:10:18,646 [DEBUG][       Thread-602623][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:10:18,647 [DEBUG][       Thread-602623][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:10:18,689 [DEBUG][       Thread-602623][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:10:18,689 [DEBUG][       Thread-602623][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:10:18,693 [DEBUG][       Thread-602623][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:10:18,702 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:10:18,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:10:18,704 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:10:18,706 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:10:18,711 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:10:18,714 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:10:18,714 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:10:18,714 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:10:18,715 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.381542 -999.00  +10.50  40.88     54   +1.70 1 2 2 1 1   887    0 9.74 33.51 ----- 40.9 40.9 38.4 46.9 14.2 -19.5 13.2 -19.4 12.7 -19.4 13.5 -17.8
2025-07-01 11:10:18,715 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:10:18,715 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:10:18,715 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.381542
2025-07-01 11:10:18,715 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:10:18,716 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:10:18,716 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:10:18,716 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:10:18,716 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:10:18,716 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:09:52', tmtdew=10.17, humidity=49.49, cloud=0.0, wind=32.41, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:09:25.229', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:10:18,716 [DEBUG][       Thread-602623][   transport.py][1871] : EOF in transport thread
2025-07-01 11:10:18,800 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:10:18,809 [DEBUG][       Thread-602626][   transport.py][1871] : starting thread (client mode): 0x81553c0
2025-07-01 11:10:18,809 [DEBUG][       Thread-602626][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:10:18,825 [DEBUG][       Thread-602626][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:10:18,825 [ INFO][       Thread-602626][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:10:18,833 [DEBUG][       Thread-602626][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:10:18,833 [DEBUG][       Thread-602626][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:10:18,833 [DEBUG][       Thread-602626][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:10:18,833 [DEBUG][       Thread-602626][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:10:18,833 [DEBUG][       Thread-602626][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:10:18,833 [DEBUG][       Thread-602626][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:10:18,833 [DEBUG][       Thread-602626][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:10:18,833 [DEBUG][       Thread-602626][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:10:18,833 [DEBUG][       Thread-602626][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:10:18,833 [DEBUG][       Thread-602626][   transport.py][1871] : client lang: <none>
2025-07-01 11:10:18,833 [DEBUG][       Thread-602626][   transport.py][1871] : server lang: <none>
2025-07-01 11:10:18,833 [DEBUG][       Thread-602626][   transport.py][1871] : kex follows: False
2025-07-01 11:10:18,833 [DEBUG][       Thread-602626][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:10:18,834 [DEBUG][       Thread-602626][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:10:18,834 [DEBUG][       Thread-602626][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:10:18,834 [DEBUG][       Thread-602626][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:10:18,834 [DEBUG][       Thread-602626][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:10:18,834 [DEBUG][       Thread-602626][   transport.py][1871] : Compression: none
2025-07-01 11:10:18,834 [DEBUG][       Thread-602626][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:10:18,890 [DEBUG][       Thread-602626][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:10:18,890 [DEBUG][       Thread-602626][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:10:18,891 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:10:18,892 [DEBUG][       Thread-602626][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:10:18,892 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:10:18,946 [DEBUG][       Thread-602626][   transport.py][1871] : userauth is OK
2025-07-01 11:10:18,947 [DEBUG][       Thread-602626][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:10:18,947 [DEBUG][       Thread-602626][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:10:18,947 [DEBUG][       Thread-602626][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:10:18,947 [DEBUG][       Thread-602626][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:10:18,966 [ INFO][       Thread-602626][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:10:18,966 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:10:18,966 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:10:19,990 [DEBUG][       Thread-602626][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:10:19,990 [DEBUG][       Thread-602626][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:10:20,042 [DEBUG][       Thread-602626][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:10:20,042 [DEBUG][       Thread-602626][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:10:20,051 [DEBUG][       Thread-602626][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:10:20,060 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:10: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')
2025-07-01 11:10:20,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-07-01 11:10:20,078 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:10:20,079 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:10:20,079 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:10:20,087 [DEBUG][       Thread-602626][   transport.py][1871] : EOF in transport thread
2025-07-01 11:10:23,894 [DEBUG][Thread-602628 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:10:25,250 [DEBUG][Thread-602629 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:10:30,090 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:10:30,090 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:10:30,090 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:10:30,093 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 11:10:30,601 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 10, 24), 10.19, 49.51, 0.0, 30.54, 10.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:10:30,601 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:10:24
2025-07-01 11:10:30,686 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:10:30,691 [DEBUG][       Thread-602630][   transport.py][1871] : starting thread (client mode): 0x8155720
2025-07-01 11:10:30,691 [DEBUG][       Thread-602630][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:10:30,708 [DEBUG][       Thread-602630][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:10:30,708 [ INFO][       Thread-602630][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:10:30,711 [DEBUG][       Thread-602630][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:10:30,711 [DEBUG][       Thread-602630][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:10:30,711 [DEBUG][       Thread-602630][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:10:30,711 [DEBUG][       Thread-602630][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:10:30,711 [DEBUG][       Thread-602630][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:10:30,711 [DEBUG][       Thread-602630][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:10:30,711 [DEBUG][       Thread-602630][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:10:30,711 [DEBUG][       Thread-602630][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:10:30,711 [DEBUG][       Thread-602630][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:10:30,711 [DEBUG][       Thread-602630][   transport.py][1871] : client lang: <none>
2025-07-01 11:10:30,711 [DEBUG][       Thread-602630][   transport.py][1871] : server lang: <none>
2025-07-01 11:10:30,711 [DEBUG][       Thread-602630][   transport.py][1871] : kex follows: False
2025-07-01 11:10:30,711 [DEBUG][       Thread-602630][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:10:30,711 [DEBUG][       Thread-602630][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:10:30,712 [DEBUG][       Thread-602630][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:10:30,712 [DEBUG][       Thread-602630][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:10:30,712 [DEBUG][       Thread-602630][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:10:30,712 [DEBUG][       Thread-602630][   transport.py][1871] : Compression: none
2025-07-01 11:10:30,712 [DEBUG][       Thread-602630][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:10:30,734 [DEBUG][       Thread-602630][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:10:30,734 [DEBUG][       Thread-602630][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:10:30,735 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:10:30,735 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:10:30,735 [DEBUG][       Thread-602630][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:10:30,736 [DEBUG][       Thread-602630][   transport.py][1871] : userauth is OK
2025-07-01 11:10:30,760 [ INFO][       Thread-602630][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:10:30,760 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:10:31,343 [DEBUG][       Thread-602630][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:10:31,344 [DEBUG][       Thread-602630][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:10:31,385 [DEBUG][       Thread-602630][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:10:31,385 [DEBUG][       Thread-602630][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:10:31,388 [DEBUG][       Thread-602630][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:10:31,400 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:10:31,400 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:10:31,404 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:10:31,408 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:10:31,417 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:10:31,419 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:10:31,419 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:10:31,420 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:10:31,420 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.382237 -999.00  +10.60  40.36     54   +1.70 1 2 2 1 1   887    0 9.79 39.19 ----- 40.4 40.4 35.6 46.1 13.9 -20.9 13.1 -20.3 12.6 -19.9 13.4 -18.9
2025-07-01 11:10:31,420 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:10:31,420 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:10:31,420 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.382237
2025-07-01 11:10:31,421 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:10:31,421 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:10:31,421 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:10:31,421 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:10:31,422 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:10:31,422 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:10:24', tmtdew=10.19, humidity=49.51, cloud=0.0, wind=30.54, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:10:25.277', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:10:31,423 [DEBUG][       Thread-602630][   transport.py][1871] : EOF in transport thread
2025-07-01 11:10:31,506 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:10:31,515 [DEBUG][       Thread-602633][   transport.py][1871] : starting thread (client mode): 0x81da7d0
2025-07-01 11:10:31,515 [DEBUG][       Thread-602633][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:10:31,531 [DEBUG][       Thread-602633][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:10:31,531 [ INFO][       Thread-602633][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:10:31,539 [DEBUG][       Thread-602633][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:10:31,539 [DEBUG][       Thread-602633][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:10:31,540 [DEBUG][       Thread-602633][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:10:31,540 [DEBUG][       Thread-602633][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:10:31,540 [DEBUG][       Thread-602633][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:10:31,540 [DEBUG][       Thread-602633][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:10:31,540 [DEBUG][       Thread-602633][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:10:31,540 [DEBUG][       Thread-602633][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:10:31,540 [DEBUG][       Thread-602633][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:10:31,540 [DEBUG][       Thread-602633][   transport.py][1871] : client lang: <none>
2025-07-01 11:10:31,540 [DEBUG][       Thread-602633][   transport.py][1871] : server lang: <none>
2025-07-01 11:10:31,540 [DEBUG][       Thread-602633][   transport.py][1871] : kex follows: False
2025-07-01 11:10:31,540 [DEBUG][       Thread-602633][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:10:31,540 [DEBUG][       Thread-602633][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:10:31,540 [DEBUG][       Thread-602633][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:10:31,540 [DEBUG][       Thread-602633][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:10:31,540 [DEBUG][       Thread-602633][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:10:31,540 [DEBUG][       Thread-602633][   transport.py][1871] : Compression: none
2025-07-01 11:10:31,540 [DEBUG][       Thread-602633][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:10:31,599 [DEBUG][       Thread-602633][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:10:31,599 [DEBUG][       Thread-602633][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:10:31,600 [DEBUG][       Thread-602633][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:10:31,600 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:10:31,601 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:10:31,654 [DEBUG][       Thread-602633][   transport.py][1871] : userauth is OK
2025-07-01 11:10:31,654 [DEBUG][       Thread-602633][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:10:31,655 [DEBUG][       Thread-602633][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:10:31,655 [DEBUG][       Thread-602633][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:10:31,655 [DEBUG][       Thread-602633][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:10:31,675 [ INFO][       Thread-602633][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:10:31,676 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:10:31,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:10:32,675 [DEBUG][       Thread-602633][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:10:32,675 [DEBUG][       Thread-602633][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:10:32,724 [DEBUG][       Thread-602633][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:10:32,724 [DEBUG][       Thread-602633][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:10:32,733 [DEBUG][       Thread-602633][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:10:32,742 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:10: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-07-01 11:10:32,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-07-01 11:10:32,761 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:10:32,761 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:10:32,762 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:10:32,770 [DEBUG][       Thread-602633][   transport.py][1871] : EOF in transport thread
2025-07-01 11:10:32,912 [DEBUG][Thread-602635 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:10:41,938 [DEBUG][Thread-602636 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:10:42,772 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:10:42,772 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:10:42,773 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:10: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-07-01 11:10:43,269 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 10, 24), 10.19, 49.51, 0.0, 30.54, 10.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:10:43,269 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:10:24
2025-07-01 11:10:43,354 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:10:43,358 [DEBUG][       Thread-602637][   transport.py][1871] : starting thread (client mode): 0x81d9600
2025-07-01 11:10:43,358 [DEBUG][       Thread-602637][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:10:43,380 [DEBUG][       Thread-602637][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:10:43,380 [ INFO][       Thread-602637][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:10:43,383 [DEBUG][       Thread-602637][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:10:43,383 [DEBUG][       Thread-602637][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:10:43,383 [DEBUG][       Thread-602637][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:10:43,383 [DEBUG][       Thread-602637][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:10:43,383 [DEBUG][       Thread-602637][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:10:43,383 [DEBUG][       Thread-602637][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:10:43,383 [DEBUG][       Thread-602637][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:10:43,383 [DEBUG][       Thread-602637][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:10:43,383 [DEBUG][       Thread-602637][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:10:43,384 [DEBUG][       Thread-602637][   transport.py][1871] : client lang: <none>
2025-07-01 11:10:43,384 [DEBUG][       Thread-602637][   transport.py][1871] : server lang: <none>
2025-07-01 11:10:43,384 [DEBUG][       Thread-602637][   transport.py][1871] : kex follows: False
2025-07-01 11:10:43,384 [DEBUG][       Thread-602637][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:10:43,384 [DEBUG][       Thread-602637][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:10:43,384 [DEBUG][       Thread-602637][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:10:43,384 [DEBUG][       Thread-602637][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:10:43,384 [DEBUG][       Thread-602637][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:10:43,384 [DEBUG][       Thread-602637][   transport.py][1871] : Compression: none
2025-07-01 11:10:43,384 [DEBUG][       Thread-602637][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:10:43,400 [DEBUG][       Thread-602637][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:10:43,401 [DEBUG][       Thread-602637][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:10:43,402 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:10:43,402 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:10:43,402 [DEBUG][       Thread-602637][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:10:43,403 [DEBUG][       Thread-602637][   transport.py][1871] : userauth is OK
2025-07-01 11:10:43,416 [ INFO][       Thread-602637][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:10:43,417 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:10:44,073 [DEBUG][       Thread-602637][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:10:44,073 [DEBUG][       Thread-602637][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:10:44,117 [DEBUG][       Thread-602637][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:10:44,117 [DEBUG][       Thread-602637][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:10:44,120 [DEBUG][       Thread-602637][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:10:44,133 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:10:44,133 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:10:44,135 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:10:44,137 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:10:44,143 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:10:44,144 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:10:44,145 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:10:44,145 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:10:44,145 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.382237 -999.00  +10.60  40.36     54   +1.70 1 2 2 1 1   887    0 9.79 39.19 ----- 40.4 40.4 35.6 46.1 13.9 -20.9 13.1 -20.3 12.6 -19.9 13.4 -18.9
2025-07-01 11:10:44,145 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:10:44,146 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:10:44,146 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.382237
2025-07-01 11:10:44,146 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:10:44,147 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:10:44,147 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:10:44,147 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:10:44,147 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:10:44,147 [DEBUG][       Thread-602637][   transport.py][1871] : EOF in transport thread
2025-07-01 11:10:44,147 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:10:24', tmtdew=10.19, humidity=49.51, cloud=0.0, wind=30.54, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:10:25.277', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:10:44,231 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:10:44,240 [DEBUG][       Thread-602640][   transport.py][1871] : starting thread (client mode): 0x82b1990
2025-07-01 11:10:44,240 [DEBUG][       Thread-602640][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:10:44,255 [DEBUG][       Thread-602640][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:10:44,255 [ INFO][       Thread-602640][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:10:44,264 [DEBUG][       Thread-602640][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:10:44,264 [DEBUG][       Thread-602640][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:10:44,264 [DEBUG][       Thread-602640][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:10:44,264 [DEBUG][       Thread-602640][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:10:44,264 [DEBUG][       Thread-602640][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:10:44,264 [DEBUG][       Thread-602640][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:10:44,264 [DEBUG][       Thread-602640][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:10:44,265 [DEBUG][       Thread-602640][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:10:44,265 [DEBUG][       Thread-602640][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:10:44,265 [DEBUG][       Thread-602640][   transport.py][1871] : client lang: <none>
2025-07-01 11:10:44,265 [DEBUG][       Thread-602640][   transport.py][1871] : server lang: <none>
2025-07-01 11:10:44,265 [DEBUG][       Thread-602640][   transport.py][1871] : kex follows: False
2025-07-01 11:10:44,265 [DEBUG][       Thread-602640][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:10:44,265 [DEBUG][       Thread-602640][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:10:44,265 [DEBUG][       Thread-602640][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:10:44,265 [DEBUG][       Thread-602640][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:10:44,265 [DEBUG][       Thread-602640][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:10:44,265 [DEBUG][       Thread-602640][   transport.py][1871] : Compression: none
2025-07-01 11:10:44,265 [DEBUG][       Thread-602640][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:10:44,325 [DEBUG][       Thread-602640][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:10:44,326 [DEBUG][       Thread-602640][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:10:44,326 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:10:44,327 [DEBUG][       Thread-602640][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:10:44,328 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:10:44,386 [DEBUG][       Thread-602640][   transport.py][1871] : userauth is OK
2025-07-01 11:10:44,386 [DEBUG][       Thread-602640][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:10:44,386 [DEBUG][       Thread-602640][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:10:44,387 [DEBUG][       Thread-602640][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:10:44,387 [DEBUG][       Thread-602640][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:10:44,408 [ INFO][       Thread-602640][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:10:44,408 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:10:44,409 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:10:45,387 [DEBUG][       Thread-602640][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:10:45,387 [DEBUG][       Thread-602640][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:10:45,435 [DEBUG][       Thread-602640][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:10:45,435 [DEBUG][       Thread-602640][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:10:45,444 [DEBUG][       Thread-602640][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:10:45,452 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:10:45,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-07-01 11:10:45,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-07-01 11:10:45,468 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:10:45,468 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:10:45,468 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:10:45,476 [DEBUG][       Thread-602640][   transport.py][1871] : EOF in transport thread
2025-07-01 11:10:50,962 [DEBUG][Thread-602642 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:10:55,478 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:10:55,478 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:10:55,479 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:10:55,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-07-01 11:10:55,984 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 10, 24), 10.19, 49.51, 0.0, 30.54, 10.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:10:55,984 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:10:24
2025-07-01 11:10:56,070 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:10:56,074 [DEBUG][       Thread-602643][   transport.py][1871] : starting thread (client mode): 0x81d9b70
2025-07-01 11:10:56,074 [DEBUG][       Thread-602643][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:10:56,095 [DEBUG][       Thread-602643][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:10:56,095 [ INFO][       Thread-602643][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:10:56,098 [DEBUG][       Thread-602643][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:10:56,098 [DEBUG][       Thread-602643][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:10:56,098 [DEBUG][       Thread-602643][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:10:56,098 [DEBUG][       Thread-602643][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:10:56,098 [DEBUG][       Thread-602643][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:10:56,098 [DEBUG][       Thread-602643][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:10:56,098 [DEBUG][       Thread-602643][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:10:56,098 [DEBUG][       Thread-602643][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:10:56,098 [DEBUG][       Thread-602643][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:10:56,098 [DEBUG][       Thread-602643][   transport.py][1871] : client lang: <none>
2025-07-01 11:10:56,098 [DEBUG][       Thread-602643][   transport.py][1871] : server lang: <none>
2025-07-01 11:10:56,098 [DEBUG][       Thread-602643][   transport.py][1871] : kex follows: False
2025-07-01 11:10:56,098 [DEBUG][       Thread-602643][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:10:56,098 [DEBUG][       Thread-602643][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:10:56,098 [DEBUG][       Thread-602643][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:10:56,098 [DEBUG][       Thread-602643][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:10:56,099 [DEBUG][       Thread-602643][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:10:56,099 [DEBUG][       Thread-602643][   transport.py][1871] : Compression: none
2025-07-01 11:10:56,099 [DEBUG][       Thread-602643][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:10:56,114 [DEBUG][       Thread-602643][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:10:56,115 [DEBUG][       Thread-602643][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:10:56,115 [DEBUG][       Thread-602643][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:10:56,115 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:10:56,116 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:10:56,117 [DEBUG][       Thread-602643][   transport.py][1871] : userauth is OK
2025-07-01 11:10:56,142 [ INFO][       Thread-602643][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:10:56,142 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:10:56,801 [DEBUG][       Thread-602643][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:10:56,801 [DEBUG][       Thread-602643][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:10:56,845 [DEBUG][       Thread-602643][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:10:56,845 [DEBUG][       Thread-602643][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:10:56,848 [DEBUG][       Thread-602643][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:10:56,862 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:10:56,862 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:10:56,864 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:10:56,866 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:10:56,871 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:10:56,873 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:10:56,873 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:10:56,874 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:10:56,874 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.382237 -999.00  +10.60  40.36     54   +1.70 1 2 2 1 1   887    0 9.79 39.19 ----- 40.4 40.4 35.6 46.1 13.9 -20.9 13.1 -20.3 12.6 -19.9 13.4 -18.9
2025-07-01 11:10:56,874 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:10:56,874 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:10:56,874 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.382237
2025-07-01 11:10:56,875 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:10:56,875 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:10:56,875 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:10:56,875 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:10:56,875 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:10:56,876 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:10:24', tmtdew=10.19, humidity=49.51, cloud=0.0, wind=30.54, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:10:25.277', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:10:56,877 [DEBUG][       Thread-602643][   transport.py][1871] : EOF in transport thread
2025-07-01 11:10:56,960 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:10:56,983 [DEBUG][       Thread-602646][   transport.py][1871] : starting thread (client mode): 0x81068f0
2025-07-01 11:10:56,983 [DEBUG][       Thread-602646][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:10:57,003 [DEBUG][       Thread-602646][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:10:57,003 [ INFO][       Thread-602646][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:10:57,012 [DEBUG][       Thread-602646][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:10:57,012 [DEBUG][       Thread-602646][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:10:57,012 [DEBUG][       Thread-602646][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:10:57,012 [DEBUG][       Thread-602646][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:10:57,012 [DEBUG][       Thread-602646][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:10:57,012 [DEBUG][       Thread-602646][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:10:57,012 [DEBUG][       Thread-602646][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:10:57,012 [DEBUG][       Thread-602646][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:10:57,012 [DEBUG][       Thread-602646][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:10:57,012 [DEBUG][       Thread-602646][   transport.py][1871] : client lang: <none>
2025-07-01 11:10:57,012 [DEBUG][       Thread-602646][   transport.py][1871] : server lang: <none>
2025-07-01 11:10:57,012 [DEBUG][       Thread-602646][   transport.py][1871] : kex follows: False
2025-07-01 11:10:57,012 [DEBUG][       Thread-602646][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:10:57,012 [DEBUG][       Thread-602646][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:10:57,012 [DEBUG][       Thread-602646][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:10:57,012 [DEBUG][       Thread-602646][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:10:57,012 [DEBUG][       Thread-602646][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:10:57,012 [DEBUG][       Thread-602646][   transport.py][1871] : Compression: none
2025-07-01 11:10:57,012 [DEBUG][       Thread-602646][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:10:57,078 [DEBUG][       Thread-602646][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:10:57,078 [DEBUG][       Thread-602646][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:10:57,078 [DEBUG][       Thread-602646][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:10:57,079 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:10:57,079 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:10:57,135 [DEBUG][       Thread-602646][   transport.py][1871] : userauth is OK
2025-07-01 11:10:57,135 [DEBUG][       Thread-602646][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:10:57,136 [DEBUG][       Thread-602646][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:10:57,136 [DEBUG][       Thread-602646][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:10:57,136 [DEBUG][       Thread-602646][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:10:57,153 [ INFO][       Thread-602646][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:10:57,154 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:10:57,154 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:10:58,167 [DEBUG][       Thread-602646][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:10:58,167 [DEBUG][       Thread-602646][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:10:58,215 [DEBUG][       Thread-602646][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:10:58,215 [DEBUG][       Thread-602646][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:10:58,224 [DEBUG][       Thread-602646][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:10:58,232 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:10:58,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-07-01 11:10:58,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-07-01 11:10:58,247 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:10:58,247 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:10:58,248 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:10:58,255 [DEBUG][       Thread-602646][   transport.py][1871] : EOF in transport thread
2025-07-01 11:10:59,982 [DEBUG][Thread-602648 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:11:05,388 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:11:05,389 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:11:08,258 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:11:08,258 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:11:08,258 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:11:08,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-07-01 11:11:08,761 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 10, 56), 10.2, 49.48, 0.0, 35.11, 10.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:11:08,761 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:10:56
2025-07-01 11:11:08,844 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:11:08,848 [DEBUG][       Thread-602649][   transport.py][1871] : starting thread (client mode): 0x81dbac0
2025-07-01 11:11:08,848 [DEBUG][       Thread-602649][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:11:08,872 [DEBUG][       Thread-602649][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:11:08,872 [ INFO][       Thread-602649][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:11:08,876 [DEBUG][       Thread-602649][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:11:08,876 [DEBUG][       Thread-602649][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:11:08,876 [DEBUG][       Thread-602649][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:11:08,876 [DEBUG][       Thread-602649][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:11:08,876 [DEBUG][       Thread-602649][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:11:08,876 [DEBUG][       Thread-602649][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:11:08,876 [DEBUG][       Thread-602649][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:11:08,876 [DEBUG][       Thread-602649][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:11:08,876 [DEBUG][       Thread-602649][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:11:08,876 [DEBUG][       Thread-602649][   transport.py][1871] : client lang: <none>
2025-07-01 11:11:08,876 [DEBUG][       Thread-602649][   transport.py][1871] : server lang: <none>
2025-07-01 11:11:08,876 [DEBUG][       Thread-602649][   transport.py][1871] : kex follows: False
2025-07-01 11:11:08,876 [DEBUG][       Thread-602649][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:11:08,876 [DEBUG][       Thread-602649][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:11:08,876 [DEBUG][       Thread-602649][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:11:08,876 [DEBUG][       Thread-602649][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:11:08,877 [DEBUG][       Thread-602649][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:11:08,877 [DEBUG][       Thread-602649][   transport.py][1871] : Compression: none
2025-07-01 11:11:08,877 [DEBUG][       Thread-602649][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:11:08,895 [DEBUG][       Thread-602649][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:11:08,895 [DEBUG][       Thread-602649][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:11:08,896 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:11:08,896 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:11:08,897 [DEBUG][       Thread-602649][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:11:08,897 [DEBUG][       Thread-602649][   transport.py][1871] : userauth is OK
2025-07-01 11:11:08,922 [ INFO][       Thread-602649][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:11:08,922 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:11:09,001 [DEBUG][Thread-602651 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:11:09,548 [DEBUG][       Thread-602649][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:11:09,549 [DEBUG][       Thread-602649][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:11:09,593 [DEBUG][       Thread-602649][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:11:09,593 [DEBUG][       Thread-602649][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:11:09,597 [DEBUG][       Thread-602649][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:11:09,608 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:11:09,609 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:11:09,610 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:11:09,613 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:11:09,618 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:11:09,620 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:11:09,621 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:11:09,621 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:11:09,621 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.382584 -999.00  +10.50  41.86     54   +1.70 1 2 2 1 1   887    0 9.76 34.95 ----- 41.9 41.9 49.4 49.6 13.9 -20.2 13.1 -20.3 12.5 -19.7 13.3 -19.0
2025-07-01 11:11:09,621 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:11:09,622 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:11:09,622 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.382584
2025-07-01 11:11:09,622 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:11:09,623 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:11:09,623 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:11:09,623 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:11:09,623 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:11:09,623 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:10:56', tmtdew=10.2, humidity=49.48, cloud=0.0, wind=35.11, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:10:55.258', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:11:09,623 [DEBUG][       Thread-602649][   transport.py][1871] : EOF in transport thread
2025-07-01 11:11:09,707 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:11:09,716 [DEBUG][       Thread-602653][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 11:11:09,716 [DEBUG][       Thread-602653][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:11:09,732 [DEBUG][       Thread-602653][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:11:09,732 [ INFO][       Thread-602653][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:11:09,740 [DEBUG][       Thread-602653][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:11:09,740 [DEBUG][       Thread-602653][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:11:09,740 [DEBUG][       Thread-602653][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:11:09,740 [DEBUG][       Thread-602653][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:11:09,740 [DEBUG][       Thread-602653][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:11:09,740 [DEBUG][       Thread-602653][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:11:09,740 [DEBUG][       Thread-602653][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:11:09,740 [DEBUG][       Thread-602653][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:11:09,740 [DEBUG][       Thread-602653][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:11:09,740 [DEBUG][       Thread-602653][   transport.py][1871] : client lang: <none>
2025-07-01 11:11:09,740 [DEBUG][       Thread-602653][   transport.py][1871] : server lang: <none>
2025-07-01 11:11:09,740 [DEBUG][       Thread-602653][   transport.py][1871] : kex follows: False
2025-07-01 11:11:09,740 [DEBUG][       Thread-602653][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:11:09,740 [DEBUG][       Thread-602653][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:11:09,740 [DEBUG][       Thread-602653][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:11:09,740 [DEBUG][       Thread-602653][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:11:09,740 [DEBUG][       Thread-602653][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:11:09,740 [DEBUG][       Thread-602653][   transport.py][1871] : Compression: none
2025-07-01 11:11:09,741 [DEBUG][       Thread-602653][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:11:09,798 [DEBUG][       Thread-602653][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:11:09,799 [DEBUG][       Thread-602653][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:11:09,799 [DEBUG][       Thread-602653][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:11:09,800 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:11:09,800 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:11:09,855 [DEBUG][       Thread-602653][   transport.py][1871] : userauth is OK
2025-07-01 11:11:09,855 [DEBUG][       Thread-602653][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:11:09,855 [DEBUG][       Thread-602653][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:11:09,855 [DEBUG][       Thread-602653][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:11:09,855 [DEBUG][       Thread-602653][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:11:09,874 [ INFO][       Thread-602653][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:11:09,875 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:11:09,875 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:11:10,896 [DEBUG][       Thread-602653][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:11:10,896 [DEBUG][       Thread-602653][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:11:10,944 [DEBUG][       Thread-602653][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:11:10,944 [DEBUG][       Thread-602653][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:11:10,953 [DEBUG][       Thread-602653][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:11:10,962 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:11:10,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')
2025-07-01 11:11:10,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') -> 00000000
2025-07-01 11:11:10,980 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:11:10,980 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:11:10,981 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:11:10,989 [DEBUG][       Thread-602653][   transport.py][1871] : EOF in transport thread
2025-07-01 11:11:18,023 [DEBUG][Thread-602655 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:11:20,991 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:11:20,991 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:11:20,992 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:11:20,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-07-01 11:11:21,500 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 10, 56), 10.2, 49.48, 0.0, 35.11, 10.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:11:21,500 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:10:56
2025-07-01 11:11:21,581 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:11:21,584 [DEBUG][       Thread-602656][   transport.py][1871] : starting thread (client mode): 0x81d8be0
2025-07-01 11:11:21,584 [DEBUG][       Thread-602656][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:11:21,605 [DEBUG][       Thread-602656][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:11:21,605 [ INFO][       Thread-602656][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:11:21,608 [DEBUG][       Thread-602656][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:11:21,608 [DEBUG][       Thread-602656][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:11:21,608 [DEBUG][       Thread-602656][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:11:21,608 [DEBUG][       Thread-602656][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:11:21,608 [DEBUG][       Thread-602656][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:11:21,608 [DEBUG][       Thread-602656][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:11:21,608 [DEBUG][       Thread-602656][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:11:21,608 [DEBUG][       Thread-602656][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:11:21,608 [DEBUG][       Thread-602656][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:11:21,608 [DEBUG][       Thread-602656][   transport.py][1871] : client lang: <none>
2025-07-01 11:11:21,608 [DEBUG][       Thread-602656][   transport.py][1871] : server lang: <none>
2025-07-01 11:11:21,608 [DEBUG][       Thread-602656][   transport.py][1871] : kex follows: False
2025-07-01 11:11:21,608 [DEBUG][       Thread-602656][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:11:21,608 [DEBUG][       Thread-602656][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:11:21,608 [DEBUG][       Thread-602656][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:11:21,608 [DEBUG][       Thread-602656][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:11:21,608 [DEBUG][       Thread-602656][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:11:21,608 [DEBUG][       Thread-602656][   transport.py][1871] : Compression: none
2025-07-01 11:11:21,608 [DEBUG][       Thread-602656][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:11:21,626 [DEBUG][       Thread-602656][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:11:21,626 [DEBUG][       Thread-602656][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:11:21,627 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:11:21,627 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:11:21,627 [DEBUG][       Thread-602656][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:11:21,628 [DEBUG][       Thread-602656][   transport.py][1871] : userauth is OK
2025-07-01 11:11:21,652 [ INFO][       Thread-602656][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:11:21,653 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:11:22,266 [DEBUG][       Thread-602656][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:11:22,266 [DEBUG][       Thread-602656][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:11:22,313 [DEBUG][       Thread-602656][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:11:22,313 [DEBUG][       Thread-602656][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:11:22,316 [DEBUG][       Thread-602656][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:11:22,328 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:11:22,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:11:22,331 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:11:22,333 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:11:22,338 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:11:22,340 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:11:22,341 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:11:22,341 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:11:22,341 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.382584 -999.00  +10.50  41.86     54   +1.70 1 2 2 1 1   887    0 9.76 34.95 ----- 41.9 41.9 49.4 49.6 13.9 -20.2 13.1 -20.3 12.5 -19.7 13.3 -19.0
2025-07-01 11:11:22,342 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:11:22,342 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:11:22,342 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.382584
2025-07-01 11:11:22,342 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:11:22,343 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:11:22,343 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:11:22,343 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:11:22,343 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:11:22,343 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:10:56', tmtdew=10.2, humidity=49.48, cloud=0.0, wind=35.11, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:10:55.258', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:11:22,343 [DEBUG][       Thread-602656][   transport.py][1871] : EOF in transport thread
2025-07-01 11:11:22,427 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:11:22,438 [DEBUG][       Thread-602659][   transport.py][1871] : starting thread (client mode): 0x818e740
2025-07-01 11:11:22,438 [DEBUG][       Thread-602659][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:11:22,453 [DEBUG][       Thread-602659][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:11:22,453 [ INFO][       Thread-602659][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:11:22,462 [DEBUG][       Thread-602659][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:11:22,462 [DEBUG][       Thread-602659][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:11:22,462 [DEBUG][       Thread-602659][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:11:22,462 [DEBUG][       Thread-602659][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:11:22,462 [DEBUG][       Thread-602659][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:11:22,462 [DEBUG][       Thread-602659][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:11:22,462 [DEBUG][       Thread-602659][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:11:22,462 [DEBUG][       Thread-602659][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:11:22,462 [DEBUG][       Thread-602659][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:11:22,462 [DEBUG][       Thread-602659][   transport.py][1871] : client lang: <none>
2025-07-01 11:11:22,462 [DEBUG][       Thread-602659][   transport.py][1871] : server lang: <none>
2025-07-01 11:11:22,463 [DEBUG][       Thread-602659][   transport.py][1871] : kex follows: False
2025-07-01 11:11:22,463 [DEBUG][       Thread-602659][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:11:22,463 [DEBUG][       Thread-602659][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:11:22,463 [DEBUG][       Thread-602659][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:11:22,463 [DEBUG][       Thread-602659][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:11:22,463 [DEBUG][       Thread-602659][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:11:22,463 [DEBUG][       Thread-602659][   transport.py][1871] : Compression: none
2025-07-01 11:11:22,463 [DEBUG][       Thread-602659][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:11:22,518 [DEBUG][       Thread-602659][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:11:22,519 [DEBUG][       Thread-602659][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:11:22,519 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:11:22,519 [DEBUG][       Thread-602659][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:11:22,520 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:11:22,575 [DEBUG][       Thread-602659][   transport.py][1871] : userauth is OK
2025-07-01 11:11:22,575 [DEBUG][       Thread-602659][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:11:22,575 [DEBUG][       Thread-602659][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:11:22,575 [DEBUG][       Thread-602659][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:11:22,575 [DEBUG][       Thread-602659][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:11:22,594 [ INFO][       Thread-602659][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:11:22,594 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:11:22,595 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:11:23,583 [DEBUG][       Thread-602659][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:11:23,583 [DEBUG][       Thread-602659][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:11:23,639 [DEBUG][       Thread-602659][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:11:23,640 [DEBUG][       Thread-602659][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:11:23,649 [DEBUG][       Thread-602659][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:11:23,658 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:11:23,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-07-01 11:11:23,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-07-01 11:11:23,676 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:11:23,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:11:23,676 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:11:23,684 [DEBUG][       Thread-602659][   transport.py][1871] : EOF in transport thread
2025-07-01 11:11:25,301 [DEBUG][Thread-602661 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:11:27,058 [DEBUG][Thread-602662 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:11:33,687 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:11:33,687 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:11:33,687 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:11:33,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-07-01 11:11:34,202 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 11, 28), 10.16, 49.62, 0.0, 31.92, 10.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:11:34,202 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:11:28
2025-07-01 11:11:34,283 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:11:34,287 [DEBUG][       Thread-602663][   transport.py][1871] : starting thread (client mode): 0x81d81c0
2025-07-01 11:11:34,287 [DEBUG][       Thread-602663][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:11:34,308 [DEBUG][       Thread-602663][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:11:34,308 [ INFO][       Thread-602663][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:11:34,312 [DEBUG][       Thread-602663][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:11:34,312 [DEBUG][       Thread-602663][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:11:34,312 [DEBUG][       Thread-602663][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:11:34,312 [DEBUG][       Thread-602663][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:11:34,312 [DEBUG][       Thread-602663][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:11:34,312 [DEBUG][       Thread-602663][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:11:34,312 [DEBUG][       Thread-602663][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:11:34,312 [DEBUG][       Thread-602663][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:11:34,312 [DEBUG][       Thread-602663][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:11:34,312 [DEBUG][       Thread-602663][   transport.py][1871] : client lang: <none>
2025-07-01 11:11:34,312 [DEBUG][       Thread-602663][   transport.py][1871] : server lang: <none>
2025-07-01 11:11:34,312 [DEBUG][       Thread-602663][   transport.py][1871] : kex follows: False
2025-07-01 11:11:34,312 [DEBUG][       Thread-602663][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:11:34,312 [DEBUG][       Thread-602663][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:11:34,312 [DEBUG][       Thread-602663][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:11:34,312 [DEBUG][       Thread-602663][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:11:34,312 [DEBUG][       Thread-602663][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:11:34,312 [DEBUG][       Thread-602663][   transport.py][1871] : Compression: none
2025-07-01 11:11:34,312 [DEBUG][       Thread-602663][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:11:34,329 [DEBUG][       Thread-602663][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:11:34,329 [DEBUG][       Thread-602663][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:11:34,330 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:11:34,330 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:11:34,331 [DEBUG][       Thread-602663][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:11:34,331 [DEBUG][       Thread-602663][   transport.py][1871] : userauth is OK
2025-07-01 11:11:34,356 [ INFO][       Thread-602663][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:11:34,357 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:11:35,020 [DEBUG][       Thread-602663][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:11:35,020 [DEBUG][       Thread-602663][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:11:35,061 [DEBUG][       Thread-602663][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:11:35,061 [DEBUG][       Thread-602663][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:11:35,064 [DEBUG][       Thread-602663][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:11:35,078 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:11:35,079 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:11:35,081 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:11:35,083 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:11:35,089 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:11:35,091 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:11:35,091 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:11:35,092 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:11:35,092 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.382584 -999.00  +10.50  41.86     54   +1.70 1 2 2 1 1   887    0 9.76 34.95 ----- 41.9 41.9 49.4 49.6 13.9 -20.2 13.1 -20.3 12.5 -19.7 13.3 -19.0
2025-07-01 11:11:35,092 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:11:35,092 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:11:35,092 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.382584
2025-07-01 11:11:35,093 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:11:35,093 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:11:35,093 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:11:35,093 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:11:35,094 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:11:35,094 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:11:28', tmtdew=10.16, humidity=49.62, cloud=0.0, wind=31.92, temperature=10.61, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:10:55.258', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:11:35,095 [DEBUG][       Thread-602663][   transport.py][1871] : EOF in transport thread
2025-07-01 11:11:35,178 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:11:35,187 [DEBUG][       Thread-602666][   transport.py][1871] : starting thread (client mode): 0x75a8700
2025-07-01 11:11:35,187 [DEBUG][       Thread-602666][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:11:35,202 [DEBUG][       Thread-602666][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:11:35,202 [ INFO][       Thread-602666][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:11:35,210 [DEBUG][       Thread-602666][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:11:35,210 [DEBUG][       Thread-602666][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:11:35,210 [DEBUG][       Thread-602666][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:11:35,210 [DEBUG][       Thread-602666][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:11:35,210 [DEBUG][       Thread-602666][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:11:35,210 [DEBUG][       Thread-602666][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:11:35,210 [DEBUG][       Thread-602666][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:11:35,210 [DEBUG][       Thread-602666][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:11:35,210 [DEBUG][       Thread-602666][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:11:35,210 [DEBUG][       Thread-602666][   transport.py][1871] : client lang: <none>
2025-07-01 11:11:35,210 [DEBUG][       Thread-602666][   transport.py][1871] : server lang: <none>
2025-07-01 11:11:35,210 [DEBUG][       Thread-602666][   transport.py][1871] : kex follows: False
2025-07-01 11:11:35,210 [DEBUG][       Thread-602666][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:11:35,210 [DEBUG][       Thread-602666][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:11:35,210 [DEBUG][       Thread-602666][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:11:35,210 [DEBUG][       Thread-602666][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:11:35,210 [DEBUG][       Thread-602666][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:11:35,210 [DEBUG][       Thread-602666][   transport.py][1871] : Compression: none
2025-07-01 11:11:35,210 [DEBUG][       Thread-602666][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:11:35,264 [DEBUG][       Thread-602666][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:11:35,265 [DEBUG][       Thread-602666][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:11:35,265 [DEBUG][       Thread-602666][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:11:35,265 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:11:35,265 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:11:35,322 [DEBUG][       Thread-602666][   transport.py][1871] : userauth is OK
2025-07-01 11:11:35,323 [DEBUG][       Thread-602666][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:11:35,323 [DEBUG][       Thread-602666][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:11:35,323 [DEBUG][       Thread-602666][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:11:35,323 [DEBUG][       Thread-602666][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:11:35,342 [ INFO][       Thread-602666][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:11:35,342 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:11:35,343 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:11:36,079 [DEBUG][Thread-602668 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:11:36,341 [DEBUG][       Thread-602666][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:11:36,341 [DEBUG][       Thread-602666][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:11:36,391 [DEBUG][       Thread-602666][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:11:36,392 [DEBUG][       Thread-602666][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:11:36,401 [DEBUG][       Thread-602666][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:11:36,410 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:11:36,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-07-01 11:11:36,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-07-01 11:11:36,428 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:11:36,428 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:11:36,429 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:11:36,441 [DEBUG][       Thread-602666][   transport.py][1871] : EOF in transport thread
2025-07-01 11:11:45,109 [DEBUG][Thread-602669 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:11:46,439 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:11:46,440 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:11:46,440 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:11:46,443 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 11:11:46,939 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 11, 28), 10.16, 49.62, 0.0, 31.92, 10.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:11:46,939 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:11:28
2025-07-01 11:11:47,020 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:11:47,024 [DEBUG][       Thread-602670][   transport.py][1871] : starting thread (client mode): 0x75a9e40
2025-07-01 11:11:47,024 [DEBUG][       Thread-602670][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:11:47,044 [DEBUG][       Thread-602670][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:11:47,044 [ INFO][       Thread-602670][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:11:47,046 [DEBUG][       Thread-602670][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:11:47,046 [DEBUG][       Thread-602670][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:11:47,046 [DEBUG][       Thread-602670][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:11:47,046 [DEBUG][       Thread-602670][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:11:47,046 [DEBUG][       Thread-602670][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:11:47,046 [DEBUG][       Thread-602670][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:11:47,046 [DEBUG][       Thread-602670][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:11:47,046 [DEBUG][       Thread-602670][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:11:47,046 [DEBUG][       Thread-602670][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:11:47,046 [DEBUG][       Thread-602670][   transport.py][1871] : client lang: <none>
2025-07-01 11:11:47,046 [DEBUG][       Thread-602670][   transport.py][1871] : server lang: <none>
2025-07-01 11:11:47,046 [DEBUG][       Thread-602670][   transport.py][1871] : kex follows: False
2025-07-01 11:11:47,046 [DEBUG][       Thread-602670][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:11:47,046 [DEBUG][       Thread-602670][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:11:47,046 [DEBUG][       Thread-602670][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:11:47,046 [DEBUG][       Thread-602670][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:11:47,046 [DEBUG][       Thread-602670][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:11:47,046 [DEBUG][       Thread-602670][   transport.py][1871] : Compression: none
2025-07-01 11:11:47,046 [DEBUG][       Thread-602670][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:11:47,064 [DEBUG][       Thread-602670][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:11:47,064 [DEBUG][       Thread-602670][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:11:47,065 [DEBUG][       Thread-602670][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:11:47,065 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:11:47,065 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:11:47,066 [DEBUG][       Thread-602670][   transport.py][1871] : userauth is OK
2025-07-01 11:11:47,079 [ INFO][       Thread-602670][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:11:47,080 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:11:47,747 [DEBUG][       Thread-602670][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:11:47,747 [DEBUG][       Thread-602670][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:11:47,789 [DEBUG][       Thread-602670][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:11:47,789 [DEBUG][       Thread-602670][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:11:47,792 [DEBUG][       Thread-602670][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:11:47,804 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:11:47,804 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:11:47,806 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:11:47,808 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:11:47,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:11:47,815 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:11:47,815 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:11:47,816 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:11:47,816 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.382931 -999.00  +10.30  47.33     54   +1.50 1 2 2 1 1   887    0 9.76 37.53 ----- 47.3 47.3 44.2 56.1 13.6 -20.6 12.9 -20.9 12.5 -19.9 13.1 -19.3
2025-07-01 11:11:47,816 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:11:47,816 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:11:47,816 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.382931
2025-07-01 11:11:47,817 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:11:47,817 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:11:47,817 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:11:47,817 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:11:47,817 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:11:47,818 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:11:28', tmtdew=10.16, humidity=49.62, cloud=0.0, wind=31.92, temperature=10.61, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:11:25.238', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:11:47,819 [DEBUG][       Thread-602670][   transport.py][1871] : EOF in transport thread
2025-07-01 11:11:47,901 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:11:47,910 [DEBUG][       Thread-602673][   transport.py][1871] : starting thread (client mode): 0x81a73d0
2025-07-01 11:11:47,911 [DEBUG][       Thread-602673][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:11:47,927 [DEBUG][       Thread-602673][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:11:47,927 [ INFO][       Thread-602673][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:11:47,940 [DEBUG][       Thread-602673][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:11:47,940 [DEBUG][       Thread-602673][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:11:47,940 [DEBUG][       Thread-602673][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:11:47,940 [DEBUG][       Thread-602673][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:11:47,940 [DEBUG][       Thread-602673][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:11:47,940 [DEBUG][       Thread-602673][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:11:47,940 [DEBUG][       Thread-602673][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:11:47,940 [DEBUG][       Thread-602673][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:11:47,940 [DEBUG][       Thread-602673][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:11:47,940 [DEBUG][       Thread-602673][   transport.py][1871] : client lang: <none>
2025-07-01 11:11:47,941 [DEBUG][       Thread-602673][   transport.py][1871] : server lang: <none>
2025-07-01 11:11:47,941 [DEBUG][       Thread-602673][   transport.py][1871] : kex follows: False
2025-07-01 11:11:47,941 [DEBUG][       Thread-602673][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:11:47,941 [DEBUG][       Thread-602673][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:11:47,941 [DEBUG][       Thread-602673][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:11:47,941 [DEBUG][       Thread-602673][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:11:47,941 [DEBUG][       Thread-602673][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:11:47,941 [DEBUG][       Thread-602673][   transport.py][1871] : Compression: none
2025-07-01 11:11:47,941 [DEBUG][       Thread-602673][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:11:47,994 [DEBUG][       Thread-602673][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:11:47,995 [DEBUG][       Thread-602673][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:11:47,995 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:11:47,996 [DEBUG][       Thread-602673][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:11:47,997 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:11:48,051 [DEBUG][       Thread-602673][   transport.py][1871] : userauth is OK
2025-07-01 11:11:48,051 [DEBUG][       Thread-602673][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:11:48,051 [DEBUG][       Thread-602673][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:11:48,051 [DEBUG][       Thread-602673][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:11:48,051 [DEBUG][       Thread-602673][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:11:48,070 [ INFO][       Thread-602673][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:11:48,070 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:11:48,071 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:11:49,105 [DEBUG][       Thread-602673][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:11:49,105 [DEBUG][       Thread-602673][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:11:49,157 [DEBUG][       Thread-602673][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:11:49,157 [DEBUG][       Thread-602673][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:11:49,169 [DEBUG][       Thread-602673][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:11:49,179 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:11:49,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-07-01 11:11:49,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-07-01 11:11:49,204 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:11:49,205 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:11:49,205 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:11:49,213 [DEBUG][       Thread-602673][   transport.py][1871] : EOF in transport thread
2025-07-01 11:11:54,131 [DEBUG][Thread-602675 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:11:59,215 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:11:59,216 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:11:59,216 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:11:59,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-07-01 11:11:59,731 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 11, 28), 10.16, 49.62, 0.0, 31.92, 10.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:11:59,731 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:11:28
2025-07-01 11:11:59,812 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:11:59,817 [DEBUG][       Thread-602676][   transport.py][1871] : starting thread (client mode): 0x81d9b10
2025-07-01 11:11:59,817 [DEBUG][       Thread-602676][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:11:59,837 [DEBUG][       Thread-602676][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:11:59,837 [ INFO][       Thread-602676][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:11:59,840 [DEBUG][       Thread-602676][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:11:59,840 [DEBUG][       Thread-602676][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:11:59,841 [DEBUG][       Thread-602676][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:11:59,841 [DEBUG][       Thread-602676][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:11:59,841 [DEBUG][       Thread-602676][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:11:59,841 [DEBUG][       Thread-602676][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:11:59,841 [DEBUG][       Thread-602676][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:11:59,841 [DEBUG][       Thread-602676][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:11:59,841 [DEBUG][       Thread-602676][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:11:59,841 [DEBUG][       Thread-602676][   transport.py][1871] : client lang: <none>
2025-07-01 11:11:59,841 [DEBUG][       Thread-602676][   transport.py][1871] : server lang: <none>
2025-07-01 11:11:59,841 [DEBUG][       Thread-602676][   transport.py][1871] : kex follows: False
2025-07-01 11:11:59,841 [DEBUG][       Thread-602676][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:11:59,841 [DEBUG][       Thread-602676][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:11:59,841 [DEBUG][       Thread-602676][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:11:59,841 [DEBUG][       Thread-602676][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:11:59,841 [DEBUG][       Thread-602676][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:11:59,841 [DEBUG][       Thread-602676][   transport.py][1871] : Compression: none
2025-07-01 11:11:59,841 [DEBUG][       Thread-602676][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:11:59,858 [DEBUG][       Thread-602676][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:11:59,858 [DEBUG][       Thread-602676][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:11:59,859 [DEBUG][       Thread-602676][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:11:59,859 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:11:59,859 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:11:59,860 [DEBUG][       Thread-602676][   transport.py][1871] : userauth is OK
2025-07-01 11:11:59,908 [ INFO][       Thread-602676][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:11:59,909 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:12:00,567 [DEBUG][       Thread-602676][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:12:00,567 [DEBUG][       Thread-602676][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:12:00,609 [DEBUG][       Thread-602676][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:12:00,609 [DEBUG][       Thread-602676][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:12:00,611 [DEBUG][       Thread-602676][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:12:00,623 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:12:00,623 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:12:00,624 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:12:00,626 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:12:00,630 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:12:00,632 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:12:00,632 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:12:00,632 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:12:00,632 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.382931 -999.00  +10.30  47.33     54   +1.50 1 2 2 1 1   887    0 9.76 37.53 ----- 47.3 47.3 44.2 56.1 13.6 -20.6 12.9 -20.9 12.5 -19.9 13.1 -19.3
2025-07-01 11:12:00,632 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:12:00,632 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:12:00,632 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.382931
2025-07-01 11:12:00,633 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:12:00,633 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:12:00,633 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:12:00,633 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:12:00,633 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:12:00,633 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:11:28', tmtdew=10.16, humidity=49.62, cloud=0.0, wind=31.92, temperature=10.61, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:11:25.238', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:12:00,634 [DEBUG][       Thread-602676][   transport.py][1871] : EOF in transport thread
2025-07-01 11:12:00,713 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:12:00,723 [DEBUG][       Thread-602679][   transport.py][1871] : starting thread (client mode): 0x83939d0
2025-07-01 11:12:00,723 [DEBUG][       Thread-602679][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:12:00,739 [DEBUG][       Thread-602679][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:12:00,739 [ INFO][       Thread-602679][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:12:00,746 [DEBUG][       Thread-602679][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:12:00,746 [DEBUG][       Thread-602679][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:12:00,746 [DEBUG][       Thread-602679][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:12:00,746 [DEBUG][       Thread-602679][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:12:00,746 [DEBUG][       Thread-602679][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:12:00,746 [DEBUG][       Thread-602679][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:12:00,746 [DEBUG][       Thread-602679][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:12:00,746 [DEBUG][       Thread-602679][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:12:00,746 [DEBUG][       Thread-602679][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:12:00,746 [DEBUG][       Thread-602679][   transport.py][1871] : client lang: <none>
2025-07-01 11:12:00,746 [DEBUG][       Thread-602679][   transport.py][1871] : server lang: <none>
2025-07-01 11:12:00,746 [DEBUG][       Thread-602679][   transport.py][1871] : kex follows: False
2025-07-01 11:12:00,746 [DEBUG][       Thread-602679][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:12:00,746 [DEBUG][       Thread-602679][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:12:00,746 [DEBUG][       Thread-602679][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:12:00,746 [DEBUG][       Thread-602679][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:12:00,746 [DEBUG][       Thread-602679][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:12:00,746 [DEBUG][       Thread-602679][   transport.py][1871] : Compression: none
2025-07-01 11:12:00,746 [DEBUG][       Thread-602679][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:12:00,807 [DEBUG][       Thread-602679][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:12:00,807 [DEBUG][       Thread-602679][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:12:00,808 [DEBUG][       Thread-602679][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:12:00,808 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:12:00,808 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:12:00,871 [DEBUG][       Thread-602679][   transport.py][1871] : userauth is OK
2025-07-01 11:12:00,871 [DEBUG][       Thread-602679][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:12:00,871 [DEBUG][       Thread-602679][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:12:00,871 [DEBUG][       Thread-602679][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:12:00,871 [DEBUG][       Thread-602679][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:12:00,886 [ INFO][       Thread-602679][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:12:00,886 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:12:00,886 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:12:01,895 [DEBUG][       Thread-602679][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:12:01,895 [DEBUG][       Thread-602679][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:12:01,943 [DEBUG][       Thread-602679][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:12:01,943 [DEBUG][       Thread-602679][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:12:01,952 [DEBUG][       Thread-602679][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:12:01,959 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:12:01,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-07-01 11:12:01,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-07-01 11:12:01,975 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:12:01,975 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:12:01,975 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:12:01,983 [DEBUG][       Thread-602679][   transport.py][1871] : EOF in transport thread
2025-07-01 11:12:03,153 [DEBUG][Thread-602681 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:12:05,527 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:12:05,528 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:12:11,986 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:12:11,986 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:12:11,986 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:12:11,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-07-01 11:12:12,173 [DEBUG][Thread-602682 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:12:12,500 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 11, 28), 10.16, 49.62, 0.0, 31.92, 10.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:12:12,501 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:11:28
2025-07-01 11:12:12,584 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:12:12,587 [DEBUG][       Thread-602683][   transport.py][1871] : starting thread (client mode): 0x81da110
2025-07-01 11:12:12,587 [DEBUG][       Thread-602683][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:12:12,600 [DEBUG][       Thread-602683][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:12:12,600 [ INFO][       Thread-602683][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:12:12,603 [DEBUG][       Thread-602683][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:12:12,603 [DEBUG][       Thread-602683][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:12:12,603 [DEBUG][       Thread-602683][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:12:12,603 [DEBUG][       Thread-602683][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:12:12,603 [DEBUG][       Thread-602683][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:12:12,603 [DEBUG][       Thread-602683][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:12:12,603 [DEBUG][       Thread-602683][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:12:12,603 [DEBUG][       Thread-602683][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:12:12,603 [DEBUG][       Thread-602683][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:12:12,603 [DEBUG][       Thread-602683][   transport.py][1871] : client lang: <none>
2025-07-01 11:12:12,603 [DEBUG][       Thread-602683][   transport.py][1871] : server lang: <none>
2025-07-01 11:12:12,603 [DEBUG][       Thread-602683][   transport.py][1871] : kex follows: False
2025-07-01 11:12:12,603 [DEBUG][       Thread-602683][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:12:12,603 [DEBUG][       Thread-602683][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:12:12,603 [DEBUG][       Thread-602683][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:12:12,603 [DEBUG][       Thread-602683][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:12:12,603 [DEBUG][       Thread-602683][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:12:12,603 [DEBUG][       Thread-602683][   transport.py][1871] : Compression: none
2025-07-01 11:12:12,603 [DEBUG][       Thread-602683][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:12:12,620 [DEBUG][       Thread-602683][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:12:12,620 [DEBUG][       Thread-602683][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:12:12,620 [DEBUG][       Thread-602683][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:12:12,620 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:12:12,620 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:12:12,621 [DEBUG][       Thread-602683][   transport.py][1871] : userauth is OK
2025-07-01 11:12:12,633 [ INFO][       Thread-602683][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:12:12,633 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:12:13,307 [DEBUG][       Thread-602683][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:12:13,308 [DEBUG][       Thread-602683][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:12:13,349 [DEBUG][       Thread-602683][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:12:13,349 [DEBUG][       Thread-602683][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:12:13,353 [DEBUG][       Thread-602683][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:12:13,359 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:12:13,359 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:12:13,361 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:12:13,363 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:12:13,368 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:12:13,370 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:12:13,371 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:12:13,371 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:12:13,372 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.383278 -999.00  +10.30  34.39     54   +1.60 1 2 2 1 1   887    0 9.84 37.50 ----- 34.4 34.4 36.8 50.6 13.5 -20.1 12.8 -21.0 12.4 -20.3 13.0 -19.1
2025-07-01 11:12:13,372 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:12:13,372 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:12:13,372 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.383278
2025-07-01 11:12:13,373 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:12:13,373 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:12:13,373 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:12:13,373 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:12:13,373 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:12:13,374 [DEBUG][       Thread-602683][   transport.py][1871] : EOF in transport thread
2025-07-01 11:12:13,374 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:11:28', tmtdew=10.16, humidity=49.62, cloud=0.0, wind=31.92, temperature=10.61, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:11:55.219', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:12:13,459 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:12:13,470 [DEBUG][       Thread-602686][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 11:12:13,470 [DEBUG][       Thread-602686][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:12:13,486 [DEBUG][       Thread-602686][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:12:13,487 [ INFO][       Thread-602686][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:12:13,494 [DEBUG][       Thread-602686][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:12:13,495 [DEBUG][       Thread-602686][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:12:13,495 [DEBUG][       Thread-602686][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:12:13,495 [DEBUG][       Thread-602686][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:12:13,495 [DEBUG][       Thread-602686][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:12:13,495 [DEBUG][       Thread-602686][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:12:13,495 [DEBUG][       Thread-602686][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:12:13,495 [DEBUG][       Thread-602686][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:12:13,495 [DEBUG][       Thread-602686][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:12:13,495 [DEBUG][       Thread-602686][   transport.py][1871] : client lang: <none>
2025-07-01 11:12:13,495 [DEBUG][       Thread-602686][   transport.py][1871] : server lang: <none>
2025-07-01 11:12:13,495 [DEBUG][       Thread-602686][   transport.py][1871] : kex follows: False
2025-07-01 11:12:13,495 [DEBUG][       Thread-602686][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:12:13,495 [DEBUG][       Thread-602686][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:12:13,495 [DEBUG][       Thread-602686][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:12:13,495 [DEBUG][       Thread-602686][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:12:13,495 [DEBUG][       Thread-602686][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:12:13,495 [DEBUG][       Thread-602686][   transport.py][1871] : Compression: none
2025-07-01 11:12:13,495 [DEBUG][       Thread-602686][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:12:13,554 [DEBUG][       Thread-602686][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:12:13,555 [DEBUG][       Thread-602686][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:12:13,555 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:12:13,556 [DEBUG][       Thread-602686][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:12:13,557 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:12:13,612 [DEBUG][       Thread-602686][   transport.py][1871] : userauth is OK
2025-07-01 11:12:13,612 [DEBUG][       Thread-602686][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:12:13,613 [DEBUG][       Thread-602686][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:12:13,613 [DEBUG][       Thread-602686][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:12:13,613 [DEBUG][       Thread-602686][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:12:13,632 [ INFO][       Thread-602686][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:12:13,632 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:12:13,633 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:12:14,665 [DEBUG][       Thread-602686][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:12:14,665 [DEBUG][       Thread-602686][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:12:14,716 [DEBUG][       Thread-602686][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:12:14,716 [DEBUG][       Thread-602686][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:12:14,725 [DEBUG][       Thread-602686][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:12:14,734 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:12:14,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-07-01 11:12:14,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-07-01 11:12:14,754 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:12:14,754 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:12:14,754 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:12:14,762 [DEBUG][       Thread-602686][   transport.py][1871] : EOF in transport thread
2025-07-01 11:12:21,192 [DEBUG][Thread-602688 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:12:24,765 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:12:24,765 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:12:24,765 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:12:24,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-07-01 11:12:25,260 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 11, 28), 10.16, 49.62, 0.0, 31.92, 10.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:12:25,260 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:11:28
2025-07-01 11:12:25,343 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:12:25,346 [DEBUG][Thread-602689 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:12:25,347 [DEBUG][       Thread-602690][   transport.py][1871] : starting thread (client mode): 0x81d86d0
2025-07-01 11:12:25,347 [DEBUG][       Thread-602690][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:12:25,368 [DEBUG][       Thread-602690][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:12:25,369 [ INFO][       Thread-602690][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:12:25,372 [DEBUG][       Thread-602690][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:12:25,372 [DEBUG][       Thread-602690][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:12:25,372 [DEBUG][       Thread-602690][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:12:25,372 [DEBUG][       Thread-602690][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:12:25,372 [DEBUG][       Thread-602690][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:12:25,372 [DEBUG][       Thread-602690][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:12:25,372 [DEBUG][       Thread-602690][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:12:25,372 [DEBUG][       Thread-602690][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:12:25,372 [DEBUG][       Thread-602690][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:12:25,372 [DEBUG][       Thread-602690][   transport.py][1871] : client lang: <none>
2025-07-01 11:12:25,372 [DEBUG][       Thread-602690][   transport.py][1871] : server lang: <none>
2025-07-01 11:12:25,372 [DEBUG][       Thread-602690][   transport.py][1871] : kex follows: False
2025-07-01 11:12:25,372 [DEBUG][       Thread-602690][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:12:25,372 [DEBUG][       Thread-602690][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:12:25,372 [DEBUG][       Thread-602690][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:12:25,372 [DEBUG][       Thread-602690][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:12:25,372 [DEBUG][       Thread-602690][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:12:25,373 [DEBUG][       Thread-602690][   transport.py][1871] : Compression: none
2025-07-01 11:12:25,373 [DEBUG][       Thread-602690][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:12:25,389 [DEBUG][       Thread-602690][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:12:25,390 [DEBUG][       Thread-602690][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:12:25,390 [DEBUG][       Thread-602690][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:12:25,390 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:12:25,391 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:12:25,392 [DEBUG][       Thread-602690][   transport.py][1871] : userauth is OK
2025-07-01 11:12:25,416 [ INFO][       Thread-602690][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:12:25,416 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:12:26,094 [DEBUG][       Thread-602690][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:12:26,094 [DEBUG][       Thread-602690][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:12:26,137 [DEBUG][       Thread-602690][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:12:26,137 [DEBUG][       Thread-602690][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:12:26,140 [DEBUG][       Thread-602690][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:12:26,152 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:12:26,152 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:12:26,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:12:26,156 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:12:26,161 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:12:26,163 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:12:26,163 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:12:26,164 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:12:26,164 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.383278 -999.00  +10.30  34.39     54   +1.60 1 2 2 1 1   887    0 9.84 37.50 ----- 34.4 34.4 36.8 50.6 13.5 -20.1 12.8 -21.0 12.4 -20.3 13.0 -19.1
2025-07-01 11:12:26,164 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:12:26,164 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:12:26,164 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.383278
2025-07-01 11:12:26,165 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:12:26,165 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:12:26,166 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:12:26,166 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:12:26,166 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:12:26,166 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:11:28', tmtdew=10.16, humidity=49.62, cloud=0.0, wind=31.92, temperature=10.61, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:11:55.219', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:12:26,167 [DEBUG][       Thread-602690][   transport.py][1871] : EOF in transport thread
2025-07-01 11:12:26,249 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:12:26,264 [DEBUG][       Thread-602693][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 11:12:26,264 [DEBUG][       Thread-602693][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:12:26,283 [DEBUG][       Thread-602693][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:12:26,283 [ INFO][       Thread-602693][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:12:26,291 [DEBUG][       Thread-602693][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:12:26,291 [DEBUG][       Thread-602693][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:12:26,291 [DEBUG][       Thread-602693][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:12:26,291 [DEBUG][       Thread-602693][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:12:26,292 [DEBUG][       Thread-602693][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:12:26,292 [DEBUG][       Thread-602693][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:12:26,292 [DEBUG][       Thread-602693][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:12:26,292 [DEBUG][       Thread-602693][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:12:26,292 [DEBUG][       Thread-602693][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:12:26,292 [DEBUG][       Thread-602693][   transport.py][1871] : client lang: <none>
2025-07-01 11:12:26,292 [DEBUG][       Thread-602693][   transport.py][1871] : server lang: <none>
2025-07-01 11:12:26,292 [DEBUG][       Thread-602693][   transport.py][1871] : kex follows: False
2025-07-01 11:12:26,292 [DEBUG][       Thread-602693][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:12:26,292 [DEBUG][       Thread-602693][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:12:26,292 [DEBUG][       Thread-602693][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:12:26,292 [DEBUG][       Thread-602693][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:12:26,292 [DEBUG][       Thread-602693][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:12:26,292 [DEBUG][       Thread-602693][   transport.py][1871] : Compression: none
2025-07-01 11:12:26,292 [DEBUG][       Thread-602693][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:12:26,350 [DEBUG][       Thread-602693][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:12:26,351 [DEBUG][       Thread-602693][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:12:26,351 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:12:26,352 [DEBUG][       Thread-602693][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:12:26,353 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:12:26,410 [DEBUG][       Thread-602693][   transport.py][1871] : userauth is OK
2025-07-01 11:12:26,411 [DEBUG][       Thread-602693][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:12:26,411 [DEBUG][       Thread-602693][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:12:26,411 [DEBUG][       Thread-602693][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:12:26,411 [DEBUG][       Thread-602693][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:12:26,431 [ INFO][       Thread-602693][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:12:26,432 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:12:26,432 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:12:27,421 [DEBUG][       Thread-602693][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:12:27,421 [DEBUG][       Thread-602693][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:12:27,472 [DEBUG][       Thread-602693][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:12:27,472 [DEBUG][       Thread-602693][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:12:27,481 [DEBUG][       Thread-602693][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:12:27,490 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:12:27,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-07-01 11:12:27,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-07-01 11:12:27,509 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:12:27,509 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:12:27,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:12:27,518 [DEBUG][       Thread-602693][   transport.py][1871] : EOF in transport thread
2025-07-01 11:12:30,211 [DEBUG][Thread-602695 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:12:37,520 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:12:37,520 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:12:37,520 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:12:37,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-07-01 11:12:38,013 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 12, 32), 10.03, 49.71, 0.0, 37.79, 10.46, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:12:38,013 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:12:32
2025-07-01 11:12:38,097 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:12:38,100 [DEBUG][       Thread-602696][   transport.py][1871] : starting thread (client mode): 0x81d9ab0
2025-07-01 11:12:38,100 [DEBUG][       Thread-602696][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:12:38,120 [DEBUG][       Thread-602696][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:12:38,120 [ INFO][       Thread-602696][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:12:38,122 [DEBUG][       Thread-602696][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:12:38,122 [DEBUG][       Thread-602696][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:12:38,122 [DEBUG][       Thread-602696][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:12:38,122 [DEBUG][       Thread-602696][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:12:38,122 [DEBUG][       Thread-602696][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:12:38,122 [DEBUG][       Thread-602696][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:12:38,122 [DEBUG][       Thread-602696][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:12:38,122 [DEBUG][       Thread-602696][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:12:38,122 [DEBUG][       Thread-602696][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:12:38,122 [DEBUG][       Thread-602696][   transport.py][1871] : client lang: <none>
2025-07-01 11:12:38,122 [DEBUG][       Thread-602696][   transport.py][1871] : server lang: <none>
2025-07-01 11:12:38,122 [DEBUG][       Thread-602696][   transport.py][1871] : kex follows: False
2025-07-01 11:12:38,122 [DEBUG][       Thread-602696][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:12:38,122 [DEBUG][       Thread-602696][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:12:38,122 [DEBUG][       Thread-602696][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:12:38,122 [DEBUG][       Thread-602696][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:12:38,122 [DEBUG][       Thread-602696][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:12:38,122 [DEBUG][       Thread-602696][   transport.py][1871] : Compression: none
2025-07-01 11:12:38,122 [DEBUG][       Thread-602696][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:12:38,133 [DEBUG][       Thread-602696][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:12:38,133 [DEBUG][       Thread-602696][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:12:38,134 [DEBUG][       Thread-602696][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:12:38,134 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:12:38,134 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:12:38,135 [DEBUG][       Thread-602696][   transport.py][1871] : userauth is OK
2025-07-01 11:12:38,160 [ INFO][       Thread-602696][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:12:38,161 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:12:38,801 [DEBUG][       Thread-602696][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:12:38,802 [DEBUG][       Thread-602696][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:12:38,845 [DEBUG][       Thread-602696][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:12:38,845 [DEBUG][       Thread-602696][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:12:38,848 [DEBUG][       Thread-602696][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:12:38,861 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:12:38,861 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:12:38,863 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:12:38,865 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:12:38,871 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:12:38,873 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:12:38,873 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:12:38,874 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:12:38,874 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.383278 -999.00  +10.30  34.39     54   +1.60 1 2 2 1 1   887    0 9.84 37.50 ----- 34.4 34.4 36.8 50.6 13.5 -20.1 12.8 -21.0 12.4 -20.3 13.0 -19.1
2025-07-01 11:12:38,874 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:12:38,874 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:12:38,874 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.383278
2025-07-01 11:12:38,874 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:12:38,875 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:12:38,875 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:12:38,875 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:12:38,875 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:12:38,875 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:12:32', tmtdew=10.03, humidity=49.71, cloud=0.0, wind=37.79, temperature=10.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:11:55.219', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:12:38,876 [DEBUG][       Thread-602696][   transport.py][1871] : EOF in transport thread
2025-07-01 11:12:38,958 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:12:38,967 [DEBUG][       Thread-602699][   transport.py][1871] : starting thread (client mode): 0x81e7550
2025-07-01 11:12:38,967 [DEBUG][       Thread-602699][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:12:38,983 [DEBUG][       Thread-602699][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:12:38,983 [ INFO][       Thread-602699][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:12:38,990 [DEBUG][       Thread-602699][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:12:38,990 [DEBUG][       Thread-602699][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:12:38,990 [DEBUG][       Thread-602699][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:12:38,990 [DEBUG][       Thread-602699][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:12:38,990 [DEBUG][       Thread-602699][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:12:38,990 [DEBUG][       Thread-602699][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:12:38,990 [DEBUG][       Thread-602699][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:12:38,990 [DEBUG][       Thread-602699][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:12:38,990 [DEBUG][       Thread-602699][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:12:38,991 [DEBUG][       Thread-602699][   transport.py][1871] : client lang: <none>
2025-07-01 11:12:38,991 [DEBUG][       Thread-602699][   transport.py][1871] : server lang: <none>
2025-07-01 11:12:38,991 [DEBUG][       Thread-602699][   transport.py][1871] : kex follows: False
2025-07-01 11:12:38,991 [DEBUG][       Thread-602699][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:12:38,991 [DEBUG][       Thread-602699][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:12:38,991 [DEBUG][       Thread-602699][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:12:38,991 [DEBUG][       Thread-602699][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:12:38,991 [DEBUG][       Thread-602699][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:12:38,991 [DEBUG][       Thread-602699][   transport.py][1871] : Compression: none
2025-07-01 11:12:38,991 [DEBUG][       Thread-602699][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:12:39,054 [DEBUG][       Thread-602699][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:12:39,055 [DEBUG][       Thread-602699][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:12:39,056 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:12:39,056 [DEBUG][       Thread-602699][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:12:39,057 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:12:39,111 [DEBUG][       Thread-602699][   transport.py][1871] : userauth is OK
2025-07-01 11:12:39,111 [DEBUG][       Thread-602699][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:12:39,112 [DEBUG][       Thread-602699][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:12:39,112 [DEBUG][       Thread-602699][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:12:39,112 [DEBUG][       Thread-602699][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:12:39,131 [ INFO][       Thread-602699][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:12:39,132 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:12:39,132 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:12:39,238 [DEBUG][Thread-602701 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:12:40,136 [DEBUG][       Thread-602699][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:12:40,137 [DEBUG][       Thread-602699][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:12:40,188 [DEBUG][       Thread-602699][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:12:40,188 [DEBUG][       Thread-602699][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:12:40,197 [DEBUG][       Thread-602699][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:12:40,206 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:12:40,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-07-01 11:12:40,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-07-01 11:12:40,225 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:12:40,225 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:12:40,225 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:12:40,234 [DEBUG][       Thread-602699][   transport.py][1871] : EOF in transport thread
2025-07-01 11:12:48,283 [DEBUG][Thread-602702 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:12:50,236 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:12:50,236 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:12:50,236 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:12:50,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-07-01 11:12:50,744 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 12, 32), 10.03, 49.71, 0.0, 37.79, 10.46, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:12:50,744 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:12:32
2025-07-01 11:12:50,828 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:12:50,833 [DEBUG][       Thread-602703][   transport.py][1871] : starting thread (client mode): 0x81d8af0
2025-07-01 11:12:50,833 [DEBUG][       Thread-602703][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:12:50,853 [DEBUG][       Thread-602703][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:12:50,853 [ INFO][       Thread-602703][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:12:50,856 [DEBUG][       Thread-602703][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:12:50,856 [DEBUG][       Thread-602703][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:12:50,856 [DEBUG][       Thread-602703][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:12:50,856 [DEBUG][       Thread-602703][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:12:50,856 [DEBUG][       Thread-602703][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:12:50,856 [DEBUG][       Thread-602703][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:12:50,856 [DEBUG][       Thread-602703][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:12:50,856 [DEBUG][       Thread-602703][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:12:50,856 [DEBUG][       Thread-602703][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:12:50,856 [DEBUG][       Thread-602703][   transport.py][1871] : client lang: <none>
2025-07-01 11:12:50,856 [DEBUG][       Thread-602703][   transport.py][1871] : server lang: <none>
2025-07-01 11:12:50,856 [DEBUG][       Thread-602703][   transport.py][1871] : kex follows: False
2025-07-01 11:12:50,856 [DEBUG][       Thread-602703][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:12:50,856 [DEBUG][       Thread-602703][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:12:50,856 [DEBUG][       Thread-602703][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:12:50,856 [DEBUG][       Thread-602703][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:12:50,856 [DEBUG][       Thread-602703][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:12:50,856 [DEBUG][       Thread-602703][   transport.py][1871] : Compression: none
2025-07-01 11:12:50,857 [DEBUG][       Thread-602703][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:12:50,877 [DEBUG][       Thread-602703][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:12:50,877 [DEBUG][       Thread-602703][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:12:50,878 [DEBUG][       Thread-602703][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:12:50,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:12:50,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:12:50,879 [DEBUG][       Thread-602703][   transport.py][1871] : userauth is OK
2025-07-01 11:12:50,905 [ INFO][       Thread-602703][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:12:50,906 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:12:51,514 [DEBUG][       Thread-602703][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:12:51,514 [DEBUG][       Thread-602703][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:12:51,557 [DEBUG][       Thread-602703][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:12:51,557 [DEBUG][       Thread-602703][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:12:51,560 [DEBUG][       Thread-602703][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:12:51,572 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:12:51,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:12:51,574 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:12:51,576 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:12:51,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:12:51,583 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:12:51,583 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:12:51,584 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:12:51,584 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.383626 -999.00  +10.30  37.43     54   +1.60 1 2 2 1 1   887    0 9.79 34.24 ----- 37.4 37.4 44.4 56.2 13.4 -20.1 12.8 -21.1 12.3 -19.7 12.9 -19.2
2025-07-01 11:12:51,584 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:12:51,584 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:12:51,585 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.383626
2025-07-01 11:12:51,585 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:12:51,585 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:12:51,586 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:12:51,586 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:12:51,586 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:12:51,586 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:12:32', tmtdew=10.03, humidity=49.71, cloud=0.0, wind=37.79, temperature=10.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:12:25.286', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:12:51,586 [DEBUG][       Thread-602703][   transport.py][1871] : EOF in transport thread
2025-07-01 11:12:51,671 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:12:51,680 [DEBUG][       Thread-602706][   transport.py][1871] : starting thread (client mode): 0x82b3190
2025-07-01 11:12:51,680 [DEBUG][       Thread-602706][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:12:51,695 [DEBUG][       Thread-602706][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:12:51,695 [ INFO][       Thread-602706][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:12:51,702 [DEBUG][       Thread-602706][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:12:51,702 [DEBUG][       Thread-602706][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:12:51,702 [DEBUG][       Thread-602706][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:12:51,702 [DEBUG][       Thread-602706][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:12:51,703 [DEBUG][       Thread-602706][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:12:51,703 [DEBUG][       Thread-602706][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:12:51,703 [DEBUG][       Thread-602706][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:12:51,703 [DEBUG][       Thread-602706][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:12:51,703 [DEBUG][       Thread-602706][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:12:51,703 [DEBUG][       Thread-602706][   transport.py][1871] : client lang: <none>
2025-07-01 11:12:51,703 [DEBUG][       Thread-602706][   transport.py][1871] : server lang: <none>
2025-07-01 11:12:51,703 [DEBUG][       Thread-602706][   transport.py][1871] : kex follows: False
2025-07-01 11:12:51,703 [DEBUG][       Thread-602706][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:12:51,703 [DEBUG][       Thread-602706][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:12:51,703 [DEBUG][       Thread-602706][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:12:51,703 [DEBUG][       Thread-602706][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:12:51,703 [DEBUG][       Thread-602706][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:12:51,703 [DEBUG][       Thread-602706][   transport.py][1871] : Compression: none
2025-07-01 11:12:51,703 [DEBUG][       Thread-602706][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:12:51,761 [DEBUG][       Thread-602706][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:12:51,762 [DEBUG][       Thread-602706][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:12:51,762 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:12:51,763 [DEBUG][       Thread-602706][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:12:51,763 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:12:51,824 [DEBUG][       Thread-602706][   transport.py][1871] : userauth is OK
2025-07-01 11:12:51,824 [DEBUG][       Thread-602706][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:12:51,834 [DEBUG][       Thread-602706][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:12:51,834 [DEBUG][       Thread-602706][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:12:51,834 [DEBUG][       Thread-602706][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:12:51,853 [ INFO][       Thread-602706][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:12:51,854 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:12:51,854 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:12:52,821 [DEBUG][       Thread-602706][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:12:52,822 [DEBUG][       Thread-602706][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:12:52,872 [DEBUG][       Thread-602706][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:12:52,872 [DEBUG][       Thread-602706][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:12:52,881 [DEBUG][       Thread-602706][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:12:52,891 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:12:52,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-07-01 11:12:52,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') -> 00000000
2025-07-01 11:12:52,911 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:12:52,911 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:12:52,912 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:12:52,920 [DEBUG][       Thread-602706][   transport.py][1871] : EOF in transport thread
2025-07-01 11:12:57,305 [DEBUG][Thread-602708 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:13:02,920 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:13:02,920 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:13:02,920 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:13:02,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-07-01 11:13:03,412 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 12, 32), 10.03, 49.71, 0.0, 37.79, 10.46, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:13:03,412 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:12:32
2025-07-01 11:13:03,497 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:13:03,500 [DEBUG][       Thread-602709][   transport.py][1871] : starting thread (client mode): 0x81d8a30
2025-07-01 11:13:03,500 [DEBUG][       Thread-602709][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:13:03,521 [DEBUG][       Thread-602709][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:13:03,521 [ INFO][       Thread-602709][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:13:03,524 [DEBUG][       Thread-602709][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:13:03,524 [DEBUG][       Thread-602709][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:13:03,524 [DEBUG][       Thread-602709][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:13:03,524 [DEBUG][       Thread-602709][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:13:03,524 [DEBUG][       Thread-602709][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:13:03,524 [DEBUG][       Thread-602709][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:13:03,524 [DEBUG][       Thread-602709][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:13:03,524 [DEBUG][       Thread-602709][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:13:03,524 [DEBUG][       Thread-602709][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:13:03,524 [DEBUG][       Thread-602709][   transport.py][1871] : client lang: <none>
2025-07-01 11:13:03,524 [DEBUG][       Thread-602709][   transport.py][1871] : server lang: <none>
2025-07-01 11:13:03,524 [DEBUG][       Thread-602709][   transport.py][1871] : kex follows: False
2025-07-01 11:13:03,524 [DEBUG][       Thread-602709][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:13:03,524 [DEBUG][       Thread-602709][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:13:03,524 [DEBUG][       Thread-602709][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:13:03,524 [DEBUG][       Thread-602709][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:13:03,525 [DEBUG][       Thread-602709][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:13:03,525 [DEBUG][       Thread-602709][   transport.py][1871] : Compression: none
2025-07-01 11:13:03,525 [DEBUG][       Thread-602709][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:13:03,543 [DEBUG][       Thread-602709][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:13:03,543 [DEBUG][       Thread-602709][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:13:03,544 [DEBUG][       Thread-602709][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:13:03,544 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:13:03,544 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:13:03,545 [DEBUG][       Thread-602709][   transport.py][1871] : userauth is OK
2025-07-01 11:13:03,570 [ INFO][       Thread-602709][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:13:03,570 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:13:04,271 [DEBUG][       Thread-602709][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:13:04,272 [DEBUG][       Thread-602709][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:13:04,312 [DEBUG][       Thread-602709][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:13:04,312 [DEBUG][       Thread-602709][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:13:04,314 [DEBUG][       Thread-602709][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:13:04,325 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:13:04,325 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:13:04,326 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:13:04,327 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:13:04,330 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:13:04,331 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:13:04,331 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:13:04,331 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:13:04,331 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.383626 -999.00  +10.30  37.43     54   +1.60 1 2 2 1 1   887    0 9.79 34.24 ----- 37.4 37.4 44.4 56.2 13.4 -20.1 12.8 -21.1 12.3 -19.7 12.9 -19.2
2025-07-01 11:13:04,331 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:13:04,331 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:13:04,331 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.383626
2025-07-01 11:13:04,331 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:13:04,331 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:13:04,331 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:13:04,331 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:13:04,331 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:13:04,331 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:12:32', tmtdew=10.03, humidity=49.71, cloud=0.0, wind=37.79, temperature=10.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:12:25.286', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:13:04,332 [DEBUG][       Thread-602709][   transport.py][1871] : EOF in transport thread
2025-07-01 11:13:04,406 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:13:04,415 [DEBUG][       Thread-602712][   transport.py][1871] : starting thread (client mode): 0x8a671f0
2025-07-01 11:13:04,415 [DEBUG][       Thread-602712][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:13:04,435 [DEBUG][       Thread-602712][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:13:04,435 [ INFO][       Thread-602712][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:13:04,442 [DEBUG][       Thread-602712][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:13:04,442 [DEBUG][       Thread-602712][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:13:04,442 [DEBUG][       Thread-602712][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:13:04,442 [DEBUG][       Thread-602712][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:13:04,442 [DEBUG][       Thread-602712][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:13:04,442 [DEBUG][       Thread-602712][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:13:04,442 [DEBUG][       Thread-602712][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:13:04,442 [DEBUG][       Thread-602712][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:13:04,442 [DEBUG][       Thread-602712][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:13:04,442 [DEBUG][       Thread-602712][   transport.py][1871] : client lang: <none>
2025-07-01 11:13:04,442 [DEBUG][       Thread-602712][   transport.py][1871] : server lang: <none>
2025-07-01 11:13:04,442 [DEBUG][       Thread-602712][   transport.py][1871] : kex follows: False
2025-07-01 11:13:04,442 [DEBUG][       Thread-602712][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:13:04,442 [DEBUG][       Thread-602712][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:13:04,443 [DEBUG][       Thread-602712][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:13:04,443 [DEBUG][       Thread-602712][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:13:04,443 [DEBUG][       Thread-602712][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:13:04,443 [DEBUG][       Thread-602712][   transport.py][1871] : Compression: none
2025-07-01 11:13:04,443 [DEBUG][       Thread-602712][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:13:04,501 [DEBUG][       Thread-602712][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:13:04,502 [DEBUG][       Thread-602712][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:13:04,502 [DEBUG][       Thread-602712][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:13:04,502 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:13:04,502 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:13:04,558 [DEBUG][       Thread-602712][   transport.py][1871] : userauth is OK
2025-07-01 11:13:04,558 [DEBUG][       Thread-602712][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:13:04,558 [DEBUG][       Thread-602712][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:13:04,558 [DEBUG][       Thread-602712][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:13:04,558 [DEBUG][       Thread-602712][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:13:04,573 [ INFO][       Thread-602712][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:13:04,573 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:13:04,574 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:13:05,598 [DEBUG][       Thread-602712][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:13:05,598 [DEBUG][       Thread-602712][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:13:05,647 [DEBUG][       Thread-602712][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:13:05,647 [DEBUG][       Thread-602712][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:13:05,656 [DEBUG][       Thread-602712][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:13:05,663 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:13:05,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-07-01 11:13:05,666 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:13:05,666 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:13:05,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') -> 00000000
2025-07-01 11:13:05,679 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:13:05,679 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:13:05,679 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:13:05,687 [DEBUG][       Thread-602712][   transport.py][1871] : EOF in transport thread
2025-07-01 11:13:06,330 [DEBUG][Thread-602714 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:13:15,355 [DEBUG][Thread-602715 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:13:15,690 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:13:15,690 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:13:15,690 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:13: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-07-01 11:13:16,186 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 13, 3), 9.99, 49.87, 0.0, 28.27, 10.48, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:13:16,187 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:13:03
2025-07-01 11:13:16,270 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:13:16,276 [DEBUG][       Thread-602716][   transport.py][1871] : starting thread (client mode): 0x8106230
2025-07-01 11:13:16,276 [DEBUG][       Thread-602716][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:13:16,296 [DEBUG][       Thread-602716][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:13:16,296 [ INFO][       Thread-602716][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:13:16,300 [DEBUG][       Thread-602716][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:13:16,300 [DEBUG][       Thread-602716][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:13:16,300 [DEBUG][       Thread-602716][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:13:16,300 [DEBUG][       Thread-602716][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:13:16,300 [DEBUG][       Thread-602716][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:13:16,300 [DEBUG][       Thread-602716][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:13:16,300 [DEBUG][       Thread-602716][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:13:16,300 [DEBUG][       Thread-602716][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:13:16,300 [DEBUG][       Thread-602716][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:13:16,300 [DEBUG][       Thread-602716][   transport.py][1871] : client lang: <none>
2025-07-01 11:13:16,300 [DEBUG][       Thread-602716][   transport.py][1871] : server lang: <none>
2025-07-01 11:13:16,300 [DEBUG][       Thread-602716][   transport.py][1871] : kex follows: False
2025-07-01 11:13:16,300 [DEBUG][       Thread-602716][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:13:16,300 [DEBUG][       Thread-602716][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:13:16,300 [DEBUG][       Thread-602716][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:13:16,300 [DEBUG][       Thread-602716][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:13:16,300 [DEBUG][       Thread-602716][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:13:16,300 [DEBUG][       Thread-602716][   transport.py][1871] : Compression: none
2025-07-01 11:13:16,300 [DEBUG][       Thread-602716][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:13:16,316 [DEBUG][       Thread-602716][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:13:16,316 [DEBUG][       Thread-602716][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:13:16,317 [DEBUG][       Thread-602716][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:13:16,317 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:13:16,317 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:13:16,318 [DEBUG][       Thread-602716][   transport.py][1871] : userauth is OK
2025-07-01 11:13:16,343 [ INFO][       Thread-602716][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:13:16,343 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:13:17,116 [DEBUG][       Thread-602716][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:13:17,116 [DEBUG][       Thread-602716][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:13:17,157 [DEBUG][       Thread-602716][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:13:17,157 [DEBUG][       Thread-602716][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:13:17,160 [DEBUG][       Thread-602716][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:13:17,172 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:13:17,173 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:13:17,174 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:13:17,176 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:13:17,180 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:13:17,182 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:13:17,182 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:13:17,183 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:13:17,183 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.383626 -999.00  +10.30  37.43     54   +1.60 1 2 2 1 1   887    0 9.79 34.24 ----- 37.4 37.4 44.4 56.2 13.4 -20.1 12.8 -21.1 12.3 -19.7 12.9 -19.2
2025-07-01 11:13:17,183 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:13:17,183 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:13:17,183 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.383626
2025-07-01 11:13:17,184 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:13:17,184 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:13:17,184 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:13:17,184 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:13:17,184 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:13:17,185 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:13:03', tmtdew=9.99, humidity=49.87, cloud=0.0, wind=28.27, temperature=10.48, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:12:25.286', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:13:17,186 [DEBUG][       Thread-602716][   transport.py][1871] : EOF in transport thread
2025-07-01 11:13:17,268 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:13:17,279 [DEBUG][       Thread-602719][   transport.py][1871] : starting thread (client mode): 0x8a671f0
2025-07-01 11:13:17,279 [DEBUG][       Thread-602719][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:13:17,294 [DEBUG][       Thread-602719][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:13:17,294 [ INFO][       Thread-602719][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:13:17,302 [DEBUG][       Thread-602719][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:13:17,302 [DEBUG][       Thread-602719][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:13:17,302 [DEBUG][       Thread-602719][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:13:17,302 [DEBUG][       Thread-602719][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:13:17,302 [DEBUG][       Thread-602719][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:13:17,302 [DEBUG][       Thread-602719][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:13:17,302 [DEBUG][       Thread-602719][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:13:17,302 [DEBUG][       Thread-602719][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:13:17,302 [DEBUG][       Thread-602719][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:13:17,302 [DEBUG][       Thread-602719][   transport.py][1871] : client lang: <none>
2025-07-01 11:13:17,302 [DEBUG][       Thread-602719][   transport.py][1871] : server lang: <none>
2025-07-01 11:13:17,302 [DEBUG][       Thread-602719][   transport.py][1871] : kex follows: False
2025-07-01 11:13:17,302 [DEBUG][       Thread-602719][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:13:17,302 [DEBUG][       Thread-602719][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:13:17,302 [DEBUG][       Thread-602719][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:13:17,302 [DEBUG][       Thread-602719][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:13:17,302 [DEBUG][       Thread-602719][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:13:17,302 [DEBUG][       Thread-602719][   transport.py][1871] : Compression: none
2025-07-01 11:13:17,303 [DEBUG][       Thread-602719][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:13:17,358 [DEBUG][       Thread-602719][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:13:17,359 [DEBUG][       Thread-602719][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:13:17,360 [DEBUG][       Thread-602719][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:13:17,360 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:13:17,361 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:13:17,414 [DEBUG][       Thread-602719][   transport.py][1871] : userauth is OK
2025-07-01 11:13:17,414 [DEBUG][       Thread-602719][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:13:17,415 [DEBUG][       Thread-602719][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:13:17,415 [DEBUG][       Thread-602719][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:13:17,415 [DEBUG][       Thread-602719][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:13:17,433 [ INFO][       Thread-602719][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:13:17,434 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:13:17,434 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:13:18,417 [DEBUG][       Thread-602719][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:13:18,417 [DEBUG][       Thread-602719][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:13:18,468 [DEBUG][       Thread-602719][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:13:18,468 [DEBUG][       Thread-602719][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:13:18,477 [DEBUG][       Thread-602719][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:13:18,486 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:13:18,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-07-01 11:13:18,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-07-01 11:13:18,503 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:13:18,504 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:13:18,504 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:13:18,512 [DEBUG][       Thread-602719][   transport.py][1871] : EOF in transport thread
2025-07-01 11:13:24,379 [DEBUG][Thread-602721 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:13:25,397 [DEBUG][Thread-602722 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:13:28,515 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:13:28,515 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:13:28,515 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:13:28,518 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 11:13:29,007 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 13, 3), 9.99, 49.87, 0.0, 28.27, 10.48, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:13:29,007 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:13:03
2025-07-01 11:13:29,090 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:13:29,097 [DEBUG][       Thread-602723][   transport.py][1871] : starting thread (client mode): 0x81574f0
2025-07-01 11:13:29,097 [DEBUG][       Thread-602723][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:13:29,118 [DEBUG][       Thread-602723][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:13:29,118 [ INFO][       Thread-602723][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:13:29,122 [DEBUG][       Thread-602723][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:13:29,122 [DEBUG][       Thread-602723][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:13:29,122 [DEBUG][       Thread-602723][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:13:29,122 [DEBUG][       Thread-602723][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:13:29,122 [DEBUG][       Thread-602723][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:13:29,122 [DEBUG][       Thread-602723][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:13:29,122 [DEBUG][       Thread-602723][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:13:29,122 [DEBUG][       Thread-602723][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:13:29,122 [DEBUG][       Thread-602723][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:13:29,122 [DEBUG][       Thread-602723][   transport.py][1871] : client lang: <none>
2025-07-01 11:13:29,122 [DEBUG][       Thread-602723][   transport.py][1871] : server lang: <none>
2025-07-01 11:13:29,122 [DEBUG][       Thread-602723][   transport.py][1871] : kex follows: False
2025-07-01 11:13:29,122 [DEBUG][       Thread-602723][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:13:29,122 [DEBUG][       Thread-602723][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:13:29,122 [DEBUG][       Thread-602723][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:13:29,122 [DEBUG][       Thread-602723][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:13:29,122 [DEBUG][       Thread-602723][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:13:29,122 [DEBUG][       Thread-602723][   transport.py][1871] : Compression: none
2025-07-01 11:13:29,122 [DEBUG][       Thread-602723][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:13:29,135 [DEBUG][       Thread-602723][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:13:29,136 [DEBUG][       Thread-602723][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:13:29,136 [DEBUG][       Thread-602723][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:13:29,136 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:13:29,137 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:13:29,138 [DEBUG][       Thread-602723][   transport.py][1871] : userauth is OK
2025-07-01 11:13:29,162 [ INFO][       Thread-602723][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:13:29,162 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:13:29,754 [DEBUG][       Thread-602723][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:13:29,755 [DEBUG][       Thread-602723][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:13:29,797 [DEBUG][       Thread-602723][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:13:29,797 [DEBUG][       Thread-602723][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:13:29,800 [DEBUG][       Thread-602723][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:13:29,811 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:13:29,812 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:13:29,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:13:29,815 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:13:29,819 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:13:29,821 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:13:29,821 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:13:29,822 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:13:29,822 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.383973 -999.00  +10.30  35.96     55   +1.60 1 2 2 1 1   887    0 9.70 33.01 ----- 36.0 36.0 33.0 47.3 13.3 -20.5 12.7 -20.5 12.3 -19.9 12.8 -19.5
2025-07-01 11:13:29,822 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:13:29,822 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:13:29,822 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.383973
2025-07-01 11:13:29,823 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:13:29,823 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:13:29,823 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:13:29,823 [DEBUG][       Thread-602723][   transport.py][1871] : EOF in transport thread
2025-07-01 11:13:29,823 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:13:29,824 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:13:29,824 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:13:03', tmtdew=9.99, humidity=49.87, cloud=0.0, wind=28.27, temperature=10.48, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:12:55.267', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:13:29,903 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:13:29,913 [DEBUG][       Thread-602726][   transport.py][1871] : starting thread (client mode): 0x8106ef0
2025-07-01 11:13:29,913 [DEBUG][       Thread-602726][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:13:29,929 [DEBUG][       Thread-602726][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:13:29,929 [ INFO][       Thread-602726][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:13:29,936 [DEBUG][       Thread-602726][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:13:29,936 [DEBUG][       Thread-602726][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:13:29,936 [DEBUG][       Thread-602726][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:13:29,936 [DEBUG][       Thread-602726][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:13:29,936 [DEBUG][       Thread-602726][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:13:29,936 [DEBUG][       Thread-602726][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:13:29,936 [DEBUG][       Thread-602726][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:13:29,936 [DEBUG][       Thread-602726][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:13:29,937 [DEBUG][       Thread-602726][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:13:29,937 [DEBUG][       Thread-602726][   transport.py][1871] : client lang: <none>
2025-07-01 11:13:29,937 [DEBUG][       Thread-602726][   transport.py][1871] : server lang: <none>
2025-07-01 11:13:29,937 [DEBUG][       Thread-602726][   transport.py][1871] : kex follows: False
2025-07-01 11:13:29,937 [DEBUG][       Thread-602726][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:13:29,937 [DEBUG][       Thread-602726][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:13:29,937 [DEBUG][       Thread-602726][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:13:29,937 [DEBUG][       Thread-602726][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:13:29,937 [DEBUG][       Thread-602726][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:13:29,937 [DEBUG][       Thread-602726][   transport.py][1871] : Compression: none
2025-07-01 11:13:29,937 [DEBUG][       Thread-602726][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:13:29,999 [DEBUG][       Thread-602726][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:13:30,000 [DEBUG][       Thread-602726][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:13:30,000 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:13:30,001 [DEBUG][       Thread-602726][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:13:30,001 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:13:30,058 [DEBUG][       Thread-602726][   transport.py][1871] : userauth is OK
2025-07-01 11:13:30,059 [DEBUG][       Thread-602726][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:13:30,059 [DEBUG][       Thread-602726][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:13:30,059 [DEBUG][       Thread-602726][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:13:30,059 [DEBUG][       Thread-602726][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:13:30,078 [ INFO][       Thread-602726][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:13:30,079 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:13:30,079 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:13:31,116 [DEBUG][       Thread-602726][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:13:31,116 [DEBUG][       Thread-602726][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:13:31,164 [DEBUG][       Thread-602726][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:13:31,164 [DEBUG][       Thread-602726][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:13:31,173 [DEBUG][       Thread-602726][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:13:31,182 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:13:31,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-07-01 11:13:31,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-07-01 11:13:31,200 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:13:31,201 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:13:31,201 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:13:31,209 [DEBUG][       Thread-602726][   transport.py][1871] : EOF in transport thread
2025-07-01 11:13:33,412 [DEBUG][Thread-602728 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:13:41,212 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:13:41,212 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:13:41,212 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:13:41,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-07-01 11:13:41,708 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 13, 35), 9.93, 50.19, 0.0, 29.66, 10.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:13:41,708 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:13:35
2025-07-01 11:13:41,794 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:13:41,798 [DEBUG][       Thread-602729][   transport.py][1871] : starting thread (client mode): 0x82b35e0
2025-07-01 11:13:41,798 [DEBUG][       Thread-602729][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:13:41,818 [DEBUG][       Thread-602729][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:13:41,818 [ INFO][       Thread-602729][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:13:41,821 [DEBUG][       Thread-602729][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:13:41,821 [DEBUG][       Thread-602729][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:13:41,821 [DEBUG][       Thread-602729][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:13:41,821 [DEBUG][       Thread-602729][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:13:41,821 [DEBUG][       Thread-602729][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:13:41,821 [DEBUG][       Thread-602729][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:13:41,821 [DEBUG][       Thread-602729][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:13:41,821 [DEBUG][       Thread-602729][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:13:41,821 [DEBUG][       Thread-602729][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:13:41,821 [DEBUG][       Thread-602729][   transport.py][1871] : client lang: <none>
2025-07-01 11:13:41,821 [DEBUG][       Thread-602729][   transport.py][1871] : server lang: <none>
2025-07-01 11:13:41,821 [DEBUG][       Thread-602729][   transport.py][1871] : kex follows: False
2025-07-01 11:13:41,822 [DEBUG][       Thread-602729][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:13:41,822 [DEBUG][       Thread-602729][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:13:41,822 [DEBUG][       Thread-602729][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:13:41,822 [DEBUG][       Thread-602729][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:13:41,822 [DEBUG][       Thread-602729][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:13:41,822 [DEBUG][       Thread-602729][   transport.py][1871] : Compression: none
2025-07-01 11:13:41,822 [DEBUG][       Thread-602729][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:13:41,840 [DEBUG][       Thread-602729][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:13:41,841 [DEBUG][       Thread-602729][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:13:41,841 [DEBUG][       Thread-602729][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:13:41,841 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:13:41,841 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:13:41,842 [DEBUG][       Thread-602729][   transport.py][1871] : userauth is OK
2025-07-01 11:13:41,867 [ INFO][       Thread-602729][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:13:41,868 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:13:42,433 [DEBUG][Thread-602731 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:13:42,695 [DEBUG][       Thread-602729][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:13:42,695 [DEBUG][       Thread-602729][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:13:42,737 [DEBUG][       Thread-602729][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:13:42,737 [DEBUG][       Thread-602729][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:13:42,740 [DEBUG][       Thread-602729][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:13:42,744 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:13:42,745 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:13:42,746 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:13:42,748 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:13:42,753 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:13:42,754 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:13:42,754 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:13:42,755 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:13:42,755 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.383973 -999.00  +10.30  35.96     55   +1.60 1 2 2 1 1   887    0 9.70 33.01 ----- 36.0 36.0 33.0 47.3 13.3 -20.5 12.7 -20.5 12.3 -19.9 12.8 -19.5
2025-07-01 11:13:42,755 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:13:42,755 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:13:42,755 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.383973
2025-07-01 11:13:42,756 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:13:42,756 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:13:42,756 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:13:42,757 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:13:42,757 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:13:42,757 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:13:35', tmtdew=9.93, humidity=50.19, cloud=0.0, wind=29.66, temperature=10.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:12:55.267', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:13:42,758 [DEBUG][       Thread-602729][   transport.py][1871] : EOF in transport thread
2025-07-01 11:13:42,840 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:13:42,852 [DEBUG][       Thread-602733][   transport.py][1871] : starting thread (client mode): 0x75a83d0
2025-07-01 11:13:42,852 [DEBUG][       Thread-602733][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:13:42,872 [DEBUG][       Thread-602733][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:13:42,872 [ INFO][       Thread-602733][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:13:42,879 [DEBUG][       Thread-602733][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:13:42,879 [DEBUG][       Thread-602733][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:13:42,879 [DEBUG][       Thread-602733][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:13:42,879 [DEBUG][       Thread-602733][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:13:42,879 [DEBUG][       Thread-602733][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:13:42,880 [DEBUG][       Thread-602733][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:13:42,880 [DEBUG][       Thread-602733][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:13:42,880 [DEBUG][       Thread-602733][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:13:42,880 [DEBUG][       Thread-602733][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:13:42,880 [DEBUG][       Thread-602733][   transport.py][1871] : client lang: <none>
2025-07-01 11:13:42,880 [DEBUG][       Thread-602733][   transport.py][1871] : server lang: <none>
2025-07-01 11:13:42,880 [DEBUG][       Thread-602733][   transport.py][1871] : kex follows: False
2025-07-01 11:13:42,880 [DEBUG][       Thread-602733][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:13:42,880 [DEBUG][       Thread-602733][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:13:42,880 [DEBUG][       Thread-602733][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:13:42,880 [DEBUG][       Thread-602733][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:13:42,880 [DEBUG][       Thread-602733][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:13:42,880 [DEBUG][       Thread-602733][   transport.py][1871] : Compression: none
2025-07-01 11:13:42,880 [DEBUG][       Thread-602733][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:13:42,937 [DEBUG][       Thread-602733][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:13:42,937 [DEBUG][       Thread-602733][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:13:42,937 [DEBUG][       Thread-602733][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:13:42,937 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:13:42,937 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:13:42,994 [DEBUG][       Thread-602733][   transport.py][1871] : userauth is OK
2025-07-01 11:13:42,994 [DEBUG][       Thread-602733][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:13:42,995 [DEBUG][       Thread-602733][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:13:42,995 [DEBUG][       Thread-602733][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:13:42,995 [DEBUG][       Thread-602733][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:13:43,019 [ INFO][       Thread-602733][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:13:43,020 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:13:43,020 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:13:44,020 [DEBUG][       Thread-602733][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:13:44,021 [DEBUG][       Thread-602733][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:13:44,074 [DEBUG][       Thread-602733][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:13:44,075 [DEBUG][       Thread-602733][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:13:44,084 [DEBUG][       Thread-602733][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:13:44,093 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:13:44,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-07-01 11:13:44,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') -> 00000000
2025-07-01 11:13:44,120 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:13:44,120 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:13:44,120 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:13:44,128 [DEBUG][       Thread-602733][   transport.py][1871] : EOF in transport thread
2025-07-01 11:13:51,457 [DEBUG][Thread-602735 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:13:54,131 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:13:54,131 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:13:54,131 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:13:54,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-07-01 11:13:54,630 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 13, 35), 9.93, 50.19, 0.0, 29.66, 10.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:13:54,630 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:13:35
2025-07-01 11:13:54,715 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:13:54,721 [DEBUG][       Thread-602736][   transport.py][1871] : starting thread (client mode): 0x75a9b70
2025-07-01 11:13:54,721 [DEBUG][       Thread-602736][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:13:54,741 [DEBUG][       Thread-602736][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:13:54,741 [ INFO][       Thread-602736][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:13:54,743 [DEBUG][       Thread-602736][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:13:54,743 [DEBUG][       Thread-602736][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:13:54,743 [DEBUG][       Thread-602736][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:13:54,743 [DEBUG][       Thread-602736][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:13:54,743 [DEBUG][       Thread-602736][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:13:54,743 [DEBUG][       Thread-602736][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:13:54,743 [DEBUG][       Thread-602736][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:13:54,743 [DEBUG][       Thread-602736][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:13:54,743 [DEBUG][       Thread-602736][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:13:54,743 [DEBUG][       Thread-602736][   transport.py][1871] : client lang: <none>
2025-07-01 11:13:54,743 [DEBUG][       Thread-602736][   transport.py][1871] : server lang: <none>
2025-07-01 11:13:54,744 [DEBUG][       Thread-602736][   transport.py][1871] : kex follows: False
2025-07-01 11:13:54,744 [DEBUG][       Thread-602736][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:13:54,744 [DEBUG][       Thread-602736][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:13:54,744 [DEBUG][       Thread-602736][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:13:54,744 [DEBUG][       Thread-602736][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:13:54,744 [DEBUG][       Thread-602736][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:13:54,744 [DEBUG][       Thread-602736][   transport.py][1871] : Compression: none
2025-07-01 11:13:54,744 [DEBUG][       Thread-602736][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:13:54,758 [DEBUG][       Thread-602736][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:13:54,758 [DEBUG][       Thread-602736][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:13:54,759 [DEBUG][       Thread-602736][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:13:54,759 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:13:54,759 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:13:54,760 [DEBUG][       Thread-602736][   transport.py][1871] : userauth is OK
2025-07-01 11:13:54,774 [ INFO][       Thread-602736][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:13:54,774 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:13:55,403 [DEBUG][       Thread-602736][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:13:55,403 [DEBUG][       Thread-602736][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:13:55,445 [DEBUG][       Thread-602736][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:13:55,445 [DEBUG][       Thread-602736][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:13:55,448 [DEBUG][       Thread-602736][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:13:55,461 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:13:55,461 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:13:55,463 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:13:55,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:13:55,471 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:13:55,473 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:13:55,473 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:13:55,474 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:13:55,474 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.384320 -999.00  +10.30  38.13     55   +1.70 1 2 2 1 1   887    0 9.62 32.00 ----- 38.1 38.1 46.2 45.6 13.3 -20.5 12.7 -20.0 12.2 -20.6 12.8 -19.6
2025-07-01 11:13:55,474 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:13:55,474 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:13:55,474 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.384320
2025-07-01 11:13:55,474 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:13:55,475 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:13:55,475 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:13:55,475 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:13:55,475 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:13:55,475 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:13:35', tmtdew=9.93, humidity=50.19, cloud=0.0, wind=29.66, temperature=10.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:13:25.248', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:13:55,476 [DEBUG][       Thread-602736][   transport.py][1871] : EOF in transport thread
2025-07-01 11:13:55,559 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:13:55,569 [DEBUG][       Thread-602739][   transport.py][1871] : starting thread (client mode): 0x81d9330
2025-07-01 11:13:55,569 [DEBUG][       Thread-602739][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:13:55,588 [DEBUG][       Thread-602739][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:13:55,588 [ INFO][       Thread-602739][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:13:55,596 [DEBUG][       Thread-602739][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:13:55,596 [DEBUG][       Thread-602739][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:13:55,596 [DEBUG][       Thread-602739][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:13:55,596 [DEBUG][       Thread-602739][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:13:55,596 [DEBUG][       Thread-602739][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:13:55,596 [DEBUG][       Thread-602739][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:13:55,596 [DEBUG][       Thread-602739][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:13:55,596 [DEBUG][       Thread-602739][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:13:55,596 [DEBUG][       Thread-602739][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:13:55,596 [DEBUG][       Thread-602739][   transport.py][1871] : client lang: <none>
2025-07-01 11:13:55,597 [DEBUG][       Thread-602739][   transport.py][1871] : server lang: <none>
2025-07-01 11:13:55,597 [DEBUG][       Thread-602739][   transport.py][1871] : kex follows: False
2025-07-01 11:13:55,597 [DEBUG][       Thread-602739][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:13:55,597 [DEBUG][       Thread-602739][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:13:55,597 [DEBUG][       Thread-602739][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:13:55,597 [DEBUG][       Thread-602739][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:13:55,597 [DEBUG][       Thread-602739][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:13:55,597 [DEBUG][       Thread-602739][   transport.py][1871] : Compression: none
2025-07-01 11:13:55,597 [DEBUG][       Thread-602739][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:13:55,654 [DEBUG][       Thread-602739][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:13:55,655 [DEBUG][       Thread-602739][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:13:55,655 [DEBUG][       Thread-602739][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:13:55,656 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:13:55,656 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:13:55,710 [DEBUG][       Thread-602739][   transport.py][1871] : userauth is OK
2025-07-01 11:13:55,710 [DEBUG][       Thread-602739][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:13:55,710 [DEBUG][       Thread-602739][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:13:55,711 [DEBUG][       Thread-602739][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:13:55,711 [DEBUG][       Thread-602739][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:13:55,729 [ INFO][       Thread-602739][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:13:55,729 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:13:55,730 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:13:56,684 [DEBUG][       Thread-602739][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:13:56,684 [DEBUG][       Thread-602739][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:13:56,732 [DEBUG][       Thread-602739][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:13:56,732 [DEBUG][       Thread-602739][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:13:56,741 [DEBUG][       Thread-602739][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:13:56,750 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:13:56,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-07-01 11:13:56,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-07-01 11:13:56,768 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:13:56,768 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:13:56,769 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:13:56,777 [DEBUG][       Thread-602739][   transport.py][1871] : EOF in transport thread
2025-07-01 11:14:00,495 [DEBUG][Thread-602741 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:14:05,804 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:14:05,806 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:14:06,779 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:14:06,780 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:14:06,780 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:14:06,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-07-01 11:14:07,263 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 13, 35), 9.93, 50.19, 0.0, 29.66, 10.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:14:07,263 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:13:35
2025-07-01 11:14:07,347 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:14:07,351 [DEBUG][       Thread-602742][   transport.py][1871] : starting thread (client mode): 0x81db460
2025-07-01 11:14:07,351 [DEBUG][       Thread-602742][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:14:07,373 [DEBUG][       Thread-602742][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:14:07,373 [ INFO][       Thread-602742][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:14:07,377 [DEBUG][       Thread-602742][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:14:07,377 [DEBUG][       Thread-602742][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:14:07,377 [DEBUG][       Thread-602742][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:14:07,377 [DEBUG][       Thread-602742][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:14:07,377 [DEBUG][       Thread-602742][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:14:07,377 [DEBUG][       Thread-602742][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:14:07,377 [DEBUG][       Thread-602742][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:14:07,377 [DEBUG][       Thread-602742][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:14:07,377 [DEBUG][       Thread-602742][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:14:07,377 [DEBUG][       Thread-602742][   transport.py][1871] : client lang: <none>
2025-07-01 11:14:07,377 [DEBUG][       Thread-602742][   transport.py][1871] : server lang: <none>
2025-07-01 11:14:07,377 [DEBUG][       Thread-602742][   transport.py][1871] : kex follows: False
2025-07-01 11:14:07,377 [DEBUG][       Thread-602742][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:14:07,377 [DEBUG][       Thread-602742][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:14:07,377 [DEBUG][       Thread-602742][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:14:07,378 [DEBUG][       Thread-602742][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:14:07,378 [DEBUG][       Thread-602742][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:14:07,378 [DEBUG][       Thread-602742][   transport.py][1871] : Compression: none
2025-07-01 11:14:07,378 [DEBUG][       Thread-602742][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:14:07,389 [DEBUG][       Thread-602742][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:14:07,390 [DEBUG][       Thread-602742][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:14:07,390 [DEBUG][       Thread-602742][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:14:07,390 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:14:07,391 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:14:07,392 [DEBUG][       Thread-602742][   transport.py][1871] : userauth is OK
2025-07-01 11:14:07,417 [ INFO][       Thread-602742][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:14:07,418 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:14:08,246 [DEBUG][       Thread-602742][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:14:08,246 [DEBUG][       Thread-602742][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:14:08,288 [DEBUG][       Thread-602742][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:14:08,288 [DEBUG][       Thread-602742][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:14:08,291 [DEBUG][       Thread-602742][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:14:08,304 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:14:08,304 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:14:08,305 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:14:08,306 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:14:08,309 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:14:08,310 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:14:08,310 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:14:08,310 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:14:08,310 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.384320 -999.00  +10.30  38.13     55   +1.70 1 2 2 1 1   887    0 9.62 32.00 ----- 38.1 38.1 46.2 45.6 13.3 -20.5 12.7 -20.0 12.2 -20.6 12.8 -19.6
2025-07-01 11:14:08,310 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:14:08,310 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:14:08,310 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.384320
2025-07-01 11:14:08,310 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:14:08,311 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:14:08,311 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:14:08,311 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:14:08,311 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:14:08,311 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:13:35', tmtdew=9.93, humidity=50.19, cloud=0.0, wind=29.66, temperature=10.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:13:25.248', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:14:08,311 [DEBUG][       Thread-602742][   transport.py][1871] : EOF in transport thread
2025-07-01 11:14:08,386 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:14:08,395 [DEBUG][       Thread-602745][   transport.py][1871] : starting thread (client mode): 0x81a64d0
2025-07-01 11:14:08,395 [DEBUG][       Thread-602745][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:14:08,411 [DEBUG][       Thread-602745][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:14:08,411 [ INFO][       Thread-602745][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:14:08,419 [DEBUG][       Thread-602745][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:14:08,419 [DEBUG][       Thread-602745][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:14:08,419 [DEBUG][       Thread-602745][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:14:08,419 [DEBUG][       Thread-602745][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:14:08,419 [DEBUG][       Thread-602745][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:14:08,419 [DEBUG][       Thread-602745][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:14:08,419 [DEBUG][       Thread-602745][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:14:08,419 [DEBUG][       Thread-602745][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:14:08,419 [DEBUG][       Thread-602745][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:14:08,419 [DEBUG][       Thread-602745][   transport.py][1871] : client lang: <none>
2025-07-01 11:14:08,419 [DEBUG][       Thread-602745][   transport.py][1871] : server lang: <none>
2025-07-01 11:14:08,419 [DEBUG][       Thread-602745][   transport.py][1871] : kex follows: False
2025-07-01 11:14:08,419 [DEBUG][       Thread-602745][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:14:08,419 [DEBUG][       Thread-602745][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:14:08,419 [DEBUG][       Thread-602745][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:14:08,419 [DEBUG][       Thread-602745][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:14:08,419 [DEBUG][       Thread-602745][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:14:08,419 [DEBUG][       Thread-602745][   transport.py][1871] : Compression: none
2025-07-01 11:14:08,419 [DEBUG][       Thread-602745][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:14:08,481 [DEBUG][       Thread-602745][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:14:08,481 [DEBUG][       Thread-602745][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:14:08,481 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:14:08,481 [DEBUG][       Thread-602745][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:14:08,481 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:14:08,537 [DEBUG][       Thread-602745][   transport.py][1871] : userauth is OK
2025-07-01 11:14:08,538 [DEBUG][       Thread-602745][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:14:08,538 [DEBUG][       Thread-602745][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:14:08,538 [DEBUG][       Thread-602745][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:14:08,538 [DEBUG][       Thread-602745][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:14:08,551 [ INFO][       Thread-602745][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:14:08,551 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:14:08,552 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:14:09,517 [DEBUG][Thread-602747 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:14:09,524 [DEBUG][       Thread-602745][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:14:09,524 [DEBUG][       Thread-602745][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:14:09,571 [DEBUG][       Thread-602745][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:14:09,572 [DEBUG][       Thread-602745][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:14:09,581 [DEBUG][       Thread-602745][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:14:09,590 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:14:09,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-07-01 11:14:09,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-07-01 11:14:09,609 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:14:09,609 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:14:09,609 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:14:09,620 [DEBUG][       Thread-602745][   transport.py][1871] : EOF in transport thread
2025-07-01 11:14:18,536 [DEBUG][Thread-602748 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:14:19,620 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:14:19,620 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:14:19,620 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:14:19,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-07-01 11:14:20,107 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 14, 7), 9.94, 50.13, 0.0, 34.07, 10.52, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:14:20,107 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:14:07
2025-07-01 11:14:20,191 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:14:20,197 [DEBUG][       Thread-602749][   transport.py][1871] : starting thread (client mode): 0x75abc10
2025-07-01 11:14:20,197 [DEBUG][       Thread-602749][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:14:20,216 [DEBUG][       Thread-602749][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:14:20,216 [ INFO][       Thread-602749][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:14:20,219 [DEBUG][       Thread-602749][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:14:20,219 [DEBUG][       Thread-602749][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:14:20,219 [DEBUG][       Thread-602749][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:14:20,219 [DEBUG][       Thread-602749][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:14:20,219 [DEBUG][       Thread-602749][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:14:20,219 [DEBUG][       Thread-602749][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:14:20,219 [DEBUG][       Thread-602749][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:14:20,219 [DEBUG][       Thread-602749][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:14:20,219 [DEBUG][       Thread-602749][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:14:20,219 [DEBUG][       Thread-602749][   transport.py][1871] : client lang: <none>
2025-07-01 11:14:20,219 [DEBUG][       Thread-602749][   transport.py][1871] : server lang: <none>
2025-07-01 11:14:20,219 [DEBUG][       Thread-602749][   transport.py][1871] : kex follows: False
2025-07-01 11:14:20,219 [DEBUG][       Thread-602749][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:14:20,219 [DEBUG][       Thread-602749][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:14:20,219 [DEBUG][       Thread-602749][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:14:20,219 [DEBUG][       Thread-602749][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:14:20,219 [DEBUG][       Thread-602749][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:14:20,220 [DEBUG][       Thread-602749][   transport.py][1871] : Compression: none
2025-07-01 11:14:20,220 [DEBUG][       Thread-602749][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:14:20,234 [DEBUG][       Thread-602749][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:14:20,235 [DEBUG][       Thread-602749][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:14:20,235 [DEBUG][       Thread-602749][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:14:20,235 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:14:20,235 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:14:20,236 [DEBUG][       Thread-602749][   transport.py][1871] : userauth is OK
2025-07-01 11:14:20,260 [ INFO][       Thread-602749][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:14:20,260 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:14:21,051 [DEBUG][       Thread-602749][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:14:21,052 [DEBUG][       Thread-602749][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:14:21,093 [DEBUG][       Thread-602749][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:14:21,093 [DEBUG][       Thread-602749][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:14:21,096 [DEBUG][       Thread-602749][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:14:21,108 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:14:21,108 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:14:21,110 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:14:21,112 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:14:21,118 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:14:21,120 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:14:21,120 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:14:21,120 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:14:21,121 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.384320 -999.00  +10.30  38.13     55   +1.70 1 2 2 1 1   887    0 9.62 32.00 ----- 38.1 38.1 46.2 45.6 13.3 -20.5 12.7 -20.0 12.2 -20.6 12.8 -19.6
2025-07-01 11:14:21,121 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:14:21,121 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:14:21,121 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.384320
2025-07-01 11:14:21,121 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:14:21,122 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:14:21,122 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:14:21,122 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:14:21,122 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:14:21,122 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:14:07', tmtdew=9.94, humidity=50.13, cloud=0.0, wind=34.07, temperature=10.52, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:13:25.248', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:14:21,122 [DEBUG][       Thread-602749][   transport.py][1871] : EOF in transport thread
2025-07-01 11:14:21,207 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:14:21,218 [DEBUG][       Thread-602752][   transport.py][1871] : starting thread (client mode): 0x82b3d60
2025-07-01 11:14:21,218 [DEBUG][       Thread-602752][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:14:21,233 [DEBUG][       Thread-602752][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:14:21,234 [ INFO][       Thread-602752][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:14:21,241 [DEBUG][       Thread-602752][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:14:21,241 [DEBUG][       Thread-602752][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:14:21,241 [DEBUG][       Thread-602752][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:14:21,241 [DEBUG][       Thread-602752][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:14:21,241 [DEBUG][       Thread-602752][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:14:21,241 [DEBUG][       Thread-602752][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:14:21,241 [DEBUG][       Thread-602752][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:14:21,241 [DEBUG][       Thread-602752][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:14:21,241 [DEBUG][       Thread-602752][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:14:21,241 [DEBUG][       Thread-602752][   transport.py][1871] : client lang: <none>
2025-07-01 11:14:21,241 [DEBUG][       Thread-602752][   transport.py][1871] : server lang: <none>
2025-07-01 11:14:21,242 [DEBUG][       Thread-602752][   transport.py][1871] : kex follows: False
2025-07-01 11:14:21,242 [DEBUG][       Thread-602752][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:14:21,242 [DEBUG][       Thread-602752][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:14:21,242 [DEBUG][       Thread-602752][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:14:21,242 [DEBUG][       Thread-602752][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:14:21,242 [DEBUG][       Thread-602752][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:14:21,242 [DEBUG][       Thread-602752][   transport.py][1871] : Compression: none
2025-07-01 11:14:21,242 [DEBUG][       Thread-602752][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:14:21,304 [DEBUG][       Thread-602752][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:14:21,305 [DEBUG][       Thread-602752][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:14:21,305 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:14:21,306 [DEBUG][       Thread-602752][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:14:21,307 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:14:21,363 [DEBUG][       Thread-602752][   transport.py][1871] : userauth is OK
2025-07-01 11:14:21,363 [DEBUG][       Thread-602752][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:14:21,363 [DEBUG][       Thread-602752][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:14:21,363 [DEBUG][       Thread-602752][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:14:21,363 [DEBUG][       Thread-602752][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:14:21,382 [ INFO][       Thread-602752][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:14:21,382 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:14:21,383 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:14:22,416 [DEBUG][       Thread-602752][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:14:22,416 [DEBUG][       Thread-602752][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:14:22,464 [DEBUG][       Thread-602752][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:14:22,464 [DEBUG][       Thread-602752][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:14:22,473 [DEBUG][       Thread-602752][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:14:22,483 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:14:22,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-07-01 11:14:22,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-07-01 11:14:22,503 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:14:22,503 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:14:22,504 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:14:22,512 [DEBUG][       Thread-602752][   transport.py][1871] : EOF in transport thread
2025-07-01 11:14:25,448 [DEBUG][Thread-602754 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:14:27,559 [DEBUG][Thread-602755 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:14:32,514 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:14:32,514 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:14:32,514 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:14:32,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-07-01 11:14:33,002 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 14, 7), 9.94, 50.13, 0.0, 34.07, 10.52, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:14:33,002 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:14:07
2025-07-01 11:14:33,087 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:14:33,094 [DEBUG][       Thread-602756][   transport.py][1871] : starting thread (client mode): 0x82b24d0
2025-07-01 11:14:33,094 [DEBUG][       Thread-602756][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:14:33,116 [DEBUG][       Thread-602756][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:14:33,116 [ INFO][       Thread-602756][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:14:33,120 [DEBUG][       Thread-602756][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:14:33,120 [DEBUG][       Thread-602756][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:14:33,120 [DEBUG][       Thread-602756][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:14:33,120 [DEBUG][       Thread-602756][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:14:33,120 [DEBUG][       Thread-602756][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:14:33,120 [DEBUG][       Thread-602756][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:14:33,120 [DEBUG][       Thread-602756][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:14:33,120 [DEBUG][       Thread-602756][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:14:33,120 [DEBUG][       Thread-602756][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:14:33,120 [DEBUG][       Thread-602756][   transport.py][1871] : client lang: <none>
2025-07-01 11:14:33,120 [DEBUG][       Thread-602756][   transport.py][1871] : server lang: <none>
2025-07-01 11:14:33,120 [DEBUG][       Thread-602756][   transport.py][1871] : kex follows: False
2025-07-01 11:14:33,120 [DEBUG][       Thread-602756][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:14:33,120 [DEBUG][       Thread-602756][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:14:33,120 [DEBUG][       Thread-602756][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:14:33,120 [DEBUG][       Thread-602756][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:14:33,120 [DEBUG][       Thread-602756][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:14:33,120 [DEBUG][       Thread-602756][   transport.py][1871] : Compression: none
2025-07-01 11:14:33,120 [DEBUG][       Thread-602756][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:14:33,137 [DEBUG][       Thread-602756][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:14:33,137 [DEBUG][       Thread-602756][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:14:33,138 [DEBUG][       Thread-602756][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:14:33,138 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:14:33,138 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:14:33,139 [DEBUG][       Thread-602756][   transport.py][1871] : userauth is OK
2025-07-01 11:14:33,164 [ INFO][       Thread-602756][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:14:33,164 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:14:33,830 [DEBUG][       Thread-602756][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:14:33,830 [DEBUG][       Thread-602756][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:14:33,873 [DEBUG][       Thread-602756][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:14:33,873 [DEBUG][       Thread-602756][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:14:33,877 [DEBUG][       Thread-602756][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:14:33,888 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:14:33,889 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:14:33,890 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:14:33,892 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:14:33,898 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:14:33,900 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:14:33,900 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:14:33,901 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:14:33,901 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.384667 -999.00  +10.40  30.10     55   +1.80 1 2 2 1 1   887    0 9.51 28.22 ----- 30.1 30.1 40.6 37.0 13.3 -20.0 12.7 -20.8 12.2 -19.9 12.8 -19.2
2025-07-01 11:14:33,901 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:14:33,901 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:14:33,901 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.384667
2025-07-01 11:14:33,901 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:14:33,902 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:14:33,902 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:14:33,902 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:14:33,902 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:14:33,902 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:14:07', tmtdew=9.94, humidity=50.13, cloud=0.0, wind=34.07, temperature=10.52, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:13:55.229', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:14:33,904 [DEBUG][       Thread-602756][   transport.py][1871] : EOF in transport thread
2025-07-01 11:14:33,986 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:14:33,998 [DEBUG][       Thread-602759][   transport.py][1871] : starting thread (client mode): 0x8106230
2025-07-01 11:14:33,998 [DEBUG][       Thread-602759][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:14:34,014 [DEBUG][       Thread-602759][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:14:34,014 [ INFO][       Thread-602759][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:14:34,022 [DEBUG][       Thread-602759][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:14:34,022 [DEBUG][       Thread-602759][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:14:34,022 [DEBUG][       Thread-602759][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:14:34,022 [DEBUG][       Thread-602759][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:14:34,022 [DEBUG][       Thread-602759][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:14:34,022 [DEBUG][       Thread-602759][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:14:34,022 [DEBUG][       Thread-602759][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:14:34,022 [DEBUG][       Thread-602759][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:14:34,022 [DEBUG][       Thread-602759][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:14:34,022 [DEBUG][       Thread-602759][   transport.py][1871] : client lang: <none>
2025-07-01 11:14:34,022 [DEBUG][       Thread-602759][   transport.py][1871] : server lang: <none>
2025-07-01 11:14:34,022 [DEBUG][       Thread-602759][   transport.py][1871] : kex follows: False
2025-07-01 11:14:34,022 [DEBUG][       Thread-602759][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:14:34,022 [DEBUG][       Thread-602759][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:14:34,022 [DEBUG][       Thread-602759][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:14:34,023 [DEBUG][       Thread-602759][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:14:34,023 [DEBUG][       Thread-602759][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:14:34,023 [DEBUG][       Thread-602759][   transport.py][1871] : Compression: none
2025-07-01 11:14:34,023 [DEBUG][       Thread-602759][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:14:34,078 [DEBUG][       Thread-602759][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:14:34,079 [DEBUG][       Thread-602759][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:14:34,079 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:14:34,080 [DEBUG][       Thread-602759][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:14:34,080 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:14:34,135 [DEBUG][       Thread-602759][   transport.py][1871] : userauth is OK
2025-07-01 11:14:34,135 [DEBUG][       Thread-602759][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:14:34,135 [DEBUG][       Thread-602759][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:14:34,136 [DEBUG][       Thread-602759][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:14:34,136 [DEBUG][       Thread-602759][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:14:34,155 [ INFO][       Thread-602759][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:14:34,155 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:14:34,156 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:14:35,169 [DEBUG][       Thread-602759][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:14:35,169 [DEBUG][       Thread-602759][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:14:35,220 [DEBUG][       Thread-602759][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:14:35,220 [DEBUG][       Thread-602759][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:14:35,229 [DEBUG][       Thread-602759][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:14:35,238 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:14:35,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-07-01 11:14:35,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-07-01 11:14:35,257 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:14:35,257 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:14:35,257 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:14:35,265 [DEBUG][       Thread-602759][   transport.py][1871] : EOF in transport thread
2025-07-01 11:14:36,593 [DEBUG][Thread-602761 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:14:45,268 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:14:45,268 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:14:45,268 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:14:45,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-07-01 11:14:45,612 [DEBUG][Thread-602762 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:14:45,770 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 14, 38), 9.93, 50.17, 0.0, 35.59, 10.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:14:45,770 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:14:38
2025-07-01 11:14:45,854 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:14:45,858 [DEBUG][       Thread-602763][   transport.py][1871] : starting thread (client mode): 0x82b3520
2025-07-01 11:14:45,858 [DEBUG][       Thread-602763][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:14:45,878 [DEBUG][       Thread-602763][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:14:45,878 [ INFO][       Thread-602763][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:14:45,881 [DEBUG][       Thread-602763][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:14:45,881 [DEBUG][       Thread-602763][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:14:45,881 [DEBUG][       Thread-602763][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:14:45,881 [DEBUG][       Thread-602763][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:14:45,881 [DEBUG][       Thread-602763][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:14:45,882 [DEBUG][       Thread-602763][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:14:45,882 [DEBUG][       Thread-602763][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:14:45,882 [DEBUG][       Thread-602763][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:14:45,882 [DEBUG][       Thread-602763][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:14:45,882 [DEBUG][       Thread-602763][   transport.py][1871] : client lang: <none>
2025-07-01 11:14:45,882 [DEBUG][       Thread-602763][   transport.py][1871] : server lang: <none>
2025-07-01 11:14:45,882 [DEBUG][       Thread-602763][   transport.py][1871] : kex follows: False
2025-07-01 11:14:45,882 [DEBUG][       Thread-602763][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:14:45,882 [DEBUG][       Thread-602763][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:14:45,882 [DEBUG][       Thread-602763][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:14:45,882 [DEBUG][       Thread-602763][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:14:45,882 [DEBUG][       Thread-602763][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:14:45,882 [DEBUG][       Thread-602763][   transport.py][1871] : Compression: none
2025-07-01 11:14:45,882 [DEBUG][       Thread-602763][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:14:45,899 [DEBUG][       Thread-602763][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:14:45,899 [DEBUG][       Thread-602763][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:14:45,900 [DEBUG][       Thread-602763][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:14:45,900 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:14:45,900 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:14:45,901 [DEBUG][       Thread-602763][   transport.py][1871] : userauth is OK
2025-07-01 11:14:45,914 [ INFO][       Thread-602763][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:14:45,915 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:14:46,731 [DEBUG][       Thread-602763][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:14:46,731 [DEBUG][       Thread-602763][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:14:46,773 [DEBUG][       Thread-602763][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:14:46,773 [DEBUG][       Thread-602763][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:14:46,775 [DEBUG][       Thread-602763][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:14:46,790 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:14:46,790 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:14:46,792 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:14:46,793 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:14:46,797 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:14:46,799 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:14:46,799 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:14:46,800 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:14:46,800 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.384667 -999.00  +10.40  30.10     55   +1.80 1 2 2 1 1   887    0 9.51 28.22 ----- 30.1 30.1 40.6 37.0 13.3 -20.0 12.7 -20.8 12.2 -19.9 12.8 -19.2
2025-07-01 11:14:46,800 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:14:46,800 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:14:46,800 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.384667
2025-07-01 11:14:46,801 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:14:46,801 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:14:46,801 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:14:46,801 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:14:46,801 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:14:46,801 [DEBUG][       Thread-602763][   transport.py][1871] : EOF in transport thread
2025-07-01 11:14:46,802 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:14:38', tmtdew=9.93, humidity=50.17, cloud=0.0, wind=35.59, temperature=10.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:13:55.229', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:14:46,885 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:14:46,894 [DEBUG][       Thread-602766][   transport.py][1871] : starting thread (client mode): 0x8155720
2025-07-01 11:14:46,894 [DEBUG][       Thread-602766][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:14:46,909 [DEBUG][       Thread-602766][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:14:46,909 [ INFO][       Thread-602766][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:14:46,917 [DEBUG][       Thread-602766][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:14:46,917 [DEBUG][       Thread-602766][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:14:46,917 [DEBUG][       Thread-602766][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:14:46,917 [DEBUG][       Thread-602766][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:14:46,917 [DEBUG][       Thread-602766][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:14:46,917 [DEBUG][       Thread-602766][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:14:46,917 [DEBUG][       Thread-602766][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:14:46,917 [DEBUG][       Thread-602766][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:14:46,917 [DEBUG][       Thread-602766][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:14:46,917 [DEBUG][       Thread-602766][   transport.py][1871] : client lang: <none>
2025-07-01 11:14:46,917 [DEBUG][       Thread-602766][   transport.py][1871] : server lang: <none>
2025-07-01 11:14:46,917 [DEBUG][       Thread-602766][   transport.py][1871] : kex follows: False
2025-07-01 11:14:46,917 [DEBUG][       Thread-602766][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:14:46,917 [DEBUG][       Thread-602766][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:14:46,917 [DEBUG][       Thread-602766][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:14:46,917 [DEBUG][       Thread-602766][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:14:46,917 [DEBUG][       Thread-602766][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:14:46,917 [DEBUG][       Thread-602766][   transport.py][1871] : Compression: none
2025-07-01 11:14:46,917 [DEBUG][       Thread-602766][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:14:46,978 [DEBUG][       Thread-602766][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:14:46,979 [DEBUG][       Thread-602766][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:14:46,979 [DEBUG][       Thread-602766][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:14:46,980 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:14:46,980 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:14:47,034 [DEBUG][       Thread-602766][   transport.py][1871] : userauth is OK
2025-07-01 11:14:47,034 [DEBUG][       Thread-602766][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:14:47,034 [DEBUG][       Thread-602766][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:14:47,034 [DEBUG][       Thread-602766][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:14:47,034 [DEBUG][       Thread-602766][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:14:47,049 [ INFO][       Thread-602766][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:14:47,049 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:14:47,049 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:14:48,028 [DEBUG][       Thread-602766][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:14:48,028 [DEBUG][       Thread-602766][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:14:48,076 [DEBUG][       Thread-602766][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:14:48,076 [DEBUG][       Thread-602766][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:14:48,085 [DEBUG][       Thread-602766][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:14:48,094 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:14:48,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-07-01 11:14:48,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-07-01 11:14:48,112 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:14:48,113 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:14:48,113 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:14:48,121 [DEBUG][       Thread-602766][   transport.py][1871] : EOF in transport thread
2025-07-01 11:14:54,632 [DEBUG][Thread-602768 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:14:58,124 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:14:58,124 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:14:58,124 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:14:58,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-07-01 11:14:58,624 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 14, 38), 9.93, 50.17, 0.0, 35.59, 10.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:14:58,624 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:14:38
2025-07-01 11:14:58,708 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:14:58,714 [DEBUG][       Thread-602769][   transport.py][1871] : starting thread (client mode): 0x82b1ae0
2025-07-01 11:14:58,714 [DEBUG][       Thread-602769][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:14:58,729 [DEBUG][       Thread-602769][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:14:58,729 [ INFO][       Thread-602769][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:14:58,730 [DEBUG][       Thread-602769][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:14:58,730 [DEBUG][       Thread-602769][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:14:58,730 [DEBUG][       Thread-602769][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:14:58,730 [DEBUG][       Thread-602769][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:14:58,730 [DEBUG][       Thread-602769][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:14:58,730 [DEBUG][       Thread-602769][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:14:58,730 [DEBUG][       Thread-602769][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:14:58,730 [DEBUG][       Thread-602769][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:14:58,730 [DEBUG][       Thread-602769][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:14:58,730 [DEBUG][       Thread-602769][   transport.py][1871] : client lang: <none>
2025-07-01 11:14:58,730 [DEBUG][       Thread-602769][   transport.py][1871] : server lang: <none>
2025-07-01 11:14:58,730 [DEBUG][       Thread-602769][   transport.py][1871] : kex follows: False
2025-07-01 11:14:58,730 [DEBUG][       Thread-602769][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:14:58,730 [DEBUG][       Thread-602769][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:14:58,730 [DEBUG][       Thread-602769][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:14:58,730 [DEBUG][       Thread-602769][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:14:58,730 [DEBUG][       Thread-602769][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:14:58,730 [DEBUG][       Thread-602769][   transport.py][1871] : Compression: none
2025-07-01 11:14:58,730 [DEBUG][       Thread-602769][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:14:58,738 [DEBUG][       Thread-602769][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:14:58,738 [DEBUG][       Thread-602769][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:14:58,738 [DEBUG][       Thread-602769][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:14:58,739 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:14:58,739 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:14:58,739 [DEBUG][       Thread-602769][   transport.py][1871] : userauth is OK
2025-07-01 11:14:58,752 [ INFO][       Thread-602769][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:14:58,753 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:14:59,547 [DEBUG][       Thread-602769][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:14:59,547 [DEBUG][       Thread-602769][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:14:59,589 [DEBUG][       Thread-602769][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:14:59,589 [DEBUG][       Thread-602769][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:14:59,592 [DEBUG][       Thread-602769][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:14:59,603 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:14:59,604 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:14:59,606 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:14:59,607 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:14:59,613 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:14:59,614 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:14:59,615 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:14:59,615 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:14:59,616 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.384667 -999.00  +10.40  30.10     55   +1.80 1 2 2 1 1   887    0 9.51 28.22 ----- 30.1 30.1 40.6 37.0 13.3 -20.0 12.7 -20.8 12.2 -19.9 12.8 -19.2
2025-07-01 11:14:59,616 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:14:59,616 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:14:59,616 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.384667
2025-07-01 11:14:59,616 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:14:59,617 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:14:59,617 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:14:59,617 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:14:59,617 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:14:59,617 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:14:38', tmtdew=9.93, humidity=50.17, cloud=0.0, wind=35.59, temperature=10.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:13:55.229', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:14:59,618 [DEBUG][       Thread-602769][   transport.py][1871] : EOF in transport thread
2025-07-01 11:14:59,700 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:14:59,711 [DEBUG][       Thread-602772][   transport.py][1871] : starting thread (client mode): 0x818fa00
2025-07-01 11:14:59,711 [DEBUG][       Thread-602772][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:14:59,726 [DEBUG][       Thread-602772][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:14:59,727 [ INFO][       Thread-602772][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:14:59,734 [DEBUG][       Thread-602772][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:14:59,734 [DEBUG][       Thread-602772][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:14:59,734 [DEBUG][       Thread-602772][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:14:59,734 [DEBUG][       Thread-602772][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:14:59,734 [DEBUG][       Thread-602772][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:14:59,734 [DEBUG][       Thread-602772][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:14:59,734 [DEBUG][       Thread-602772][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:14:59,734 [DEBUG][       Thread-602772][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:14:59,734 [DEBUG][       Thread-602772][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:14:59,734 [DEBUG][       Thread-602772][   transport.py][1871] : client lang: <none>
2025-07-01 11:14:59,734 [DEBUG][       Thread-602772][   transport.py][1871] : server lang: <none>
2025-07-01 11:14:59,735 [DEBUG][       Thread-602772][   transport.py][1871] : kex follows: False
2025-07-01 11:14:59,735 [DEBUG][       Thread-602772][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:14:59,735 [DEBUG][       Thread-602772][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:14:59,735 [DEBUG][       Thread-602772][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:14:59,735 [DEBUG][       Thread-602772][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:14:59,735 [DEBUG][       Thread-602772][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:14:59,735 [DEBUG][       Thread-602772][   transport.py][1871] : Compression: none
2025-07-01 11:14:59,735 [DEBUG][       Thread-602772][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:14:59,795 [DEBUG][       Thread-602772][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:14:59,795 [DEBUG][       Thread-602772][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:14:59,796 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:14:59,796 [DEBUG][       Thread-602772][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:14:59,797 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:14:59,850 [DEBUG][       Thread-602772][   transport.py][1871] : userauth is OK
2025-07-01 11:14:59,850 [DEBUG][       Thread-602772][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:14:59,851 [DEBUG][       Thread-602772][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:14:59,851 [DEBUG][       Thread-602772][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:14:59,851 [DEBUG][       Thread-602772][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:14:59,870 [ INFO][       Thread-602772][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:14:59,870 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:14:59,871 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:15:00,864 [DEBUG][       Thread-602772][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:15:00,864 [DEBUG][       Thread-602772][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:15:00,912 [DEBUG][       Thread-602772][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:15:00,912 [DEBUG][       Thread-602772][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:15:00,921 [DEBUG][       Thread-602772][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:15:00,930 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:15:00,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-07-01 11:15:00,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-07-01 11:15:00,949 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:15:00,949 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:15:00,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:15:00,957 [DEBUG][       Thread-602772][   transport.py][1871] : EOF in transport thread
2025-07-01 11:15:03,655 [DEBUG][Thread-602774 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:15:05,945 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:15:05,946 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:15:10,960 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:15:10,960 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:15:10,960 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:15:10,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-07-01 11:15:11,482 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 14, 38), 9.93, 50.17, 0.0, 35.59, 10.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:15:11,482 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:14:38
2025-07-01 11:15:11,572 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:15:11,576 [DEBUG][       Thread-602775][   transport.py][1871] : starting thread (client mode): 0x82b3460
2025-07-01 11:15:11,576 [DEBUG][       Thread-602775][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:15:11,598 [DEBUG][       Thread-602775][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:15:11,598 [ INFO][       Thread-602775][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:15:11,601 [DEBUG][       Thread-602775][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:15:11,601 [DEBUG][       Thread-602775][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:15:11,601 [DEBUG][       Thread-602775][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:15:11,601 [DEBUG][       Thread-602775][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:15:11,601 [DEBUG][       Thread-602775][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:15:11,601 [DEBUG][       Thread-602775][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:15:11,601 [DEBUG][       Thread-602775][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:15:11,601 [DEBUG][       Thread-602775][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:15:11,601 [DEBUG][       Thread-602775][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:15:11,601 [DEBUG][       Thread-602775][   transport.py][1871] : client lang: <none>
2025-07-01 11:15:11,601 [DEBUG][       Thread-602775][   transport.py][1871] : server lang: <none>
2025-07-01 11:15:11,601 [DEBUG][       Thread-602775][   transport.py][1871] : kex follows: False
2025-07-01 11:15:11,601 [DEBUG][       Thread-602775][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:15:11,601 [DEBUG][       Thread-602775][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:15:11,601 [DEBUG][       Thread-602775][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:15:11,601 [DEBUG][       Thread-602775][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:15:11,601 [DEBUG][       Thread-602775][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:15:11,601 [DEBUG][       Thread-602775][   transport.py][1871] : Compression: none
2025-07-01 11:15:11,601 [DEBUG][       Thread-602775][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:15:11,608 [DEBUG][       Thread-602775][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:15:11,608 [DEBUG][       Thread-602775][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:15:11,608 [DEBUG][       Thread-602775][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:15:11,608 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:15:11,608 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:15:11,609 [DEBUG][       Thread-602775][   transport.py][1871] : userauth is OK
2025-07-01 11:15:11,622 [ INFO][       Thread-602775][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:15:11,622 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:15:12,253 [DEBUG][       Thread-602775][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:15:12,254 [DEBUG][       Thread-602775][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:15:12,296 [DEBUG][       Thread-602775][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:15:12,296 [DEBUG][       Thread-602775][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:15:12,298 [DEBUG][       Thread-602775][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:15:12,312 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:15:12,312 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:15:12,313 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:15:12,314 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:15:12,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:15:12,317 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:15:12,317 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:15:12,317 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:15:12,317 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.385362 -999.00  +10.50  26.14     55   +2.00 1 2 1 1 1   887    0 9.19 22.59 ----- 26.1 26.1 28.4 33.5 13.3 -20.7 12.7 -20.4 12.2 -20.6 12.8 -19.8
2025-07-01 11:15:12,317 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:15:12,318 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:15:12,318 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.385362
2025-07-01 11:15:12,318 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:15:12,318 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:15:12,318 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:15:12,318 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:15:12,318 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:15:12,318 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:14:38', tmtdew=9.93, humidity=50.17, cloud=0.0, wind=35.59, temperature=10.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:14:55.277', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:15:12,319 [DEBUG][       Thread-602775][   transport.py][1871] : EOF in transport thread
2025-07-01 11:15:12,393 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:15:12,402 [DEBUG][       Thread-602778][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 11:15:12,402 [DEBUG][       Thread-602778][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:15:12,420 [DEBUG][       Thread-602778][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:15:12,420 [ INFO][       Thread-602778][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:15:12,427 [DEBUG][       Thread-602778][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:15:12,427 [DEBUG][       Thread-602778][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:15:12,428 [DEBUG][       Thread-602778][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:15:12,428 [DEBUG][       Thread-602778][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:15:12,428 [DEBUG][       Thread-602778][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:15:12,428 [DEBUG][       Thread-602778][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:15:12,428 [DEBUG][       Thread-602778][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:15:12,428 [DEBUG][       Thread-602778][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:15:12,428 [DEBUG][       Thread-602778][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:15:12,428 [DEBUG][       Thread-602778][   transport.py][1871] : client lang: <none>
2025-07-01 11:15:12,428 [DEBUG][       Thread-602778][   transport.py][1871] : server lang: <none>
2025-07-01 11:15:12,428 [DEBUG][       Thread-602778][   transport.py][1871] : kex follows: False
2025-07-01 11:15:12,428 [DEBUG][       Thread-602778][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:15:12,428 [DEBUG][       Thread-602778][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:15:12,428 [DEBUG][       Thread-602778][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:15:12,428 [DEBUG][       Thread-602778][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:15:12,428 [DEBUG][       Thread-602778][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:15:12,428 [DEBUG][       Thread-602778][   transport.py][1871] : Compression: none
2025-07-01 11:15:12,428 [DEBUG][       Thread-602778][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:15:12,484 [DEBUG][       Thread-602778][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:15:12,485 [DEBUG][       Thread-602778][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:15:12,485 [DEBUG][       Thread-602778][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:15:12,485 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:15:12,485 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:15:12,542 [DEBUG][       Thread-602778][   transport.py][1871] : userauth is OK
2025-07-01 11:15:12,542 [DEBUG][       Thread-602778][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:15:12,542 [DEBUG][       Thread-602778][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:15:12,542 [DEBUG][       Thread-602778][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:15:12,542 [DEBUG][       Thread-602778][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:15:12,556 [ INFO][       Thread-602778][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:15:12,556 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:15:12,557 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:15:12,674 [DEBUG][Thread-602780 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:15:13,591 [DEBUG][       Thread-602778][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:15:13,592 [DEBUG][       Thread-602778][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:15:13,640 [DEBUG][       Thread-602778][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:15:13,640 [DEBUG][       Thread-602778][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:15:13,649 [DEBUG][       Thread-602778][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:15:13,658 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:15:13,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-07-01 11:15:13,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-07-01 11:15:13,676 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:15:13,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:15:13,676 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:15:13,684 [DEBUG][       Thread-602778][   transport.py][1871] : EOF in transport thread
2025-07-01 11:15:21,697 [DEBUG][Thread-602781 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:15:23,687 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:15:23,687 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:15:23,687 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:15:23,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-07-01 11:15:24,178 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 15, 10), 9.94, 50.03, 0.0, 35.52, 10.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:15:24,178 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:15:10
2025-07-01 11:15:24,263 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:15:24,267 [DEBUG][       Thread-602782][   transport.py][1871] : starting thread (client mode): 0x82b26e0
2025-07-01 11:15:24,267 [DEBUG][       Thread-602782][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:15:24,289 [DEBUG][       Thread-602782][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:15:24,289 [ INFO][       Thread-602782][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:15:24,293 [DEBUG][       Thread-602782][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:15:24,293 [DEBUG][       Thread-602782][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:15:24,293 [DEBUG][       Thread-602782][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:15:24,293 [DEBUG][       Thread-602782][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:15:24,293 [DEBUG][       Thread-602782][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:15:24,293 [DEBUG][       Thread-602782][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:15:24,293 [DEBUG][       Thread-602782][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:15:24,293 [DEBUG][       Thread-602782][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:15:24,293 [DEBUG][       Thread-602782][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:15:24,293 [DEBUG][       Thread-602782][   transport.py][1871] : client lang: <none>
2025-07-01 11:15:24,293 [DEBUG][       Thread-602782][   transport.py][1871] : server lang: <none>
2025-07-01 11:15:24,293 [DEBUG][       Thread-602782][   transport.py][1871] : kex follows: False
2025-07-01 11:15:24,293 [DEBUG][       Thread-602782][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:15:24,293 [DEBUG][       Thread-602782][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:15:24,293 [DEBUG][       Thread-602782][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:15:24,293 [DEBUG][       Thread-602782][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:15:24,293 [DEBUG][       Thread-602782][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:15:24,293 [DEBUG][       Thread-602782][   transport.py][1871] : Compression: none
2025-07-01 11:15:24,294 [DEBUG][       Thread-602782][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:15:24,311 [DEBUG][       Thread-602782][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:15:24,311 [DEBUG][       Thread-602782][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:15:24,312 [DEBUG][       Thread-602782][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:15:24,312 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:15:24,312 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:15:24,314 [DEBUG][       Thread-602782][   transport.py][1871] : userauth is OK
2025-07-01 11:15:24,327 [ INFO][       Thread-602782][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:15:24,328 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:15:24,985 [DEBUG][       Thread-602782][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:15:24,985 [DEBUG][       Thread-602782][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:15:25,033 [DEBUG][       Thread-602782][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:15:25,033 [DEBUG][       Thread-602782][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:15:25,036 [DEBUG][       Thread-602782][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:15:25,048 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:15:25,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:15:25,050 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:15:25,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:15:25,058 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:15:25,060 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:15:25,060 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:15:25,060 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:15:25,061 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.385362 -999.00  +10.50  26.14     55   +2.00 1 2 1 1 1   887    0 9.19 22.59 ----- 26.1 26.1 28.4 33.5 13.3 -20.7 12.7 -20.4 12.2 -20.6 12.8 -19.8
2025-07-01 11:15:25,061 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:15:25,061 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:15:25,061 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.385362
2025-07-01 11:15:25,061 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:15:25,062 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:15:25,062 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:15:25,062 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:15:25,062 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:15:25,062 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:15:10', tmtdew=9.94, humidity=50.03, cloud=0.0, wind=35.52, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:14:55.277', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:15:25,062 [DEBUG][       Thread-602782][   transport.py][1871] : EOF in transport thread
2025-07-01 11:15:25,146 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:15:25,155 [DEBUG][       Thread-602785][   transport.py][1871] : starting thread (client mode): 0x8171c90
2025-07-01 11:15:25,155 [DEBUG][       Thread-602785][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:15:25,172 [DEBUG][       Thread-602785][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:15:25,173 [ INFO][       Thread-602785][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:15:25,183 [DEBUG][       Thread-602785][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:15:25,183 [DEBUG][       Thread-602785][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:15:25,183 [DEBUG][       Thread-602785][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:15:25,184 [DEBUG][       Thread-602785][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:15:25,184 [DEBUG][       Thread-602785][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:15:25,184 [DEBUG][       Thread-602785][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:15:25,184 [DEBUG][       Thread-602785][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:15:25,184 [DEBUG][       Thread-602785][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:15:25,184 [DEBUG][       Thread-602785][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:15:25,184 [DEBUG][       Thread-602785][   transport.py][1871] : client lang: <none>
2025-07-01 11:15:25,184 [DEBUG][       Thread-602785][   transport.py][1871] : server lang: <none>
2025-07-01 11:15:25,184 [DEBUG][       Thread-602785][   transport.py][1871] : kex follows: False
2025-07-01 11:15:25,184 [DEBUG][       Thread-602785][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:15:25,184 [DEBUG][       Thread-602785][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:15:25,184 [DEBUG][       Thread-602785][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:15:25,184 [DEBUG][       Thread-602785][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:15:25,184 [DEBUG][       Thread-602785][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:15:25,184 [DEBUG][       Thread-602785][   transport.py][1871] : Compression: none
2025-07-01 11:15:25,184 [DEBUG][       Thread-602785][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:15:25,242 [DEBUG][       Thread-602785][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:15:25,242 [DEBUG][       Thread-602785][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:15:25,243 [DEBUG][       Thread-602785][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:15:25,243 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:15:25,244 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:15:25,300 [DEBUG][       Thread-602785][   transport.py][1871] : userauth is OK
2025-07-01 11:15:25,300 [DEBUG][       Thread-602785][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:15:25,301 [DEBUG][       Thread-602785][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:15:25,301 [DEBUG][       Thread-602785][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:15:25,301 [DEBUG][       Thread-602785][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:15:25,320 [ INFO][       Thread-602785][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:15:25,320 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:15:25,321 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:15:25,501 [DEBUG][Thread-602787 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:15:26,324 [DEBUG][       Thread-602785][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:15:26,324 [DEBUG][       Thread-602785][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:15:26,373 [DEBUG][       Thread-602785][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:15:26,373 [DEBUG][       Thread-602785][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:15:26,383 [DEBUG][       Thread-602785][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:15:26,394 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:15:26,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')
2025-07-01 11:15:26,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-07-01 11:15:26,416 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:15:26,416 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:15:26,417 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:15:26,428 [DEBUG][       Thread-602785][   transport.py][1871] : EOF in transport thread
2025-07-01 11:15:30,721 [DEBUG][Thread-602788 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:15:36,427 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:15:36,428 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:15:36,428 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:15:36,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-07-01 11:15:36,923 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 15, 10), 9.94, 50.03, 0.0, 35.52, 10.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:15:36,923 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:15:10
2025-07-01 11:15:37,009 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:15:37,013 [DEBUG][       Thread-602789][   transport.py][1871] : starting thread (client mode): 0x81da110
2025-07-01 11:15:37,013 [DEBUG][       Thread-602789][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:15:37,033 [DEBUG][       Thread-602789][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:15:37,033 [ INFO][       Thread-602789][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:15:37,035 [DEBUG][       Thread-602789][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:15:37,035 [DEBUG][       Thread-602789][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:15:37,035 [DEBUG][       Thread-602789][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:15:37,035 [DEBUG][       Thread-602789][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:15:37,035 [DEBUG][       Thread-602789][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:15:37,035 [DEBUG][       Thread-602789][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:15:37,035 [DEBUG][       Thread-602789][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:15:37,035 [DEBUG][       Thread-602789][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:15:37,035 [DEBUG][       Thread-602789][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:15:37,035 [DEBUG][       Thread-602789][   transport.py][1871] : client lang: <none>
2025-07-01 11:15:37,035 [DEBUG][       Thread-602789][   transport.py][1871] : server lang: <none>
2025-07-01 11:15:37,035 [DEBUG][       Thread-602789][   transport.py][1871] : kex follows: False
2025-07-01 11:15:37,035 [DEBUG][       Thread-602789][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:15:37,035 [DEBUG][       Thread-602789][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:15:37,036 [DEBUG][       Thread-602789][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:15:37,036 [DEBUG][       Thread-602789][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:15:37,036 [DEBUG][       Thread-602789][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:15:37,036 [DEBUG][       Thread-602789][   transport.py][1871] : Compression: none
2025-07-01 11:15:37,036 [DEBUG][       Thread-602789][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:15:37,044 [DEBUG][       Thread-602789][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:15:37,045 [DEBUG][       Thread-602789][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:15:37,045 [DEBUG][       Thread-602789][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:15:37,045 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:15:37,046 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:15:37,046 [DEBUG][       Thread-602789][   transport.py][1871] : userauth is OK
2025-07-01 11:15:37,071 [ INFO][       Thread-602789][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:15:37,072 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:15:37,680 [DEBUG][       Thread-602789][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:15:37,681 [DEBUG][       Thread-602789][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:15:37,725 [DEBUG][       Thread-602789][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:15:37,725 [DEBUG][       Thread-602789][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:15:37,728 [DEBUG][       Thread-602789][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:15:37,739 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:15:37,739 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:15:37,741 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:15:37,742 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:15:37,747 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:15:37,749 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:15:37,749 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:15:37,750 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:15:37,750 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.385709 -999.00  +10.50  26.65     55   +1.90 1 2 1 1 1   887    0 9.14 18.89 ----- 26.6 26.6 32.0 42.7 13.2 -20.7 12.6 -21.4 12.3 -20.0 12.8 -20.0
2025-07-01 11:15:37,750 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:15:37,750 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:15:37,750 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.385709
2025-07-01 11:15:37,751 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:15:37,751 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:15:37,751 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:15:37,751 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:15:37,752 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:15:37,752 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:15:10', tmtdew=9.94, humidity=50.03, cloud=0.0, wind=35.52, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:15:25.258', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:15:37,753 [DEBUG][       Thread-602789][   transport.py][1871] : EOF in transport thread
2025-07-01 11:15:37,833 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:15:37,843 [DEBUG][       Thread-602792][   transport.py][1871] : starting thread (client mode): 0x75ab5b0
2025-07-01 11:15:37,843 [DEBUG][       Thread-602792][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:15:37,858 [DEBUG][       Thread-602792][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:15:37,858 [ INFO][       Thread-602792][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:15:37,866 [DEBUG][       Thread-602792][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:15:37,866 [DEBUG][       Thread-602792][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:15:37,866 [DEBUG][       Thread-602792][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:15:37,866 [DEBUG][       Thread-602792][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:15:37,866 [DEBUG][       Thread-602792][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:15:37,866 [DEBUG][       Thread-602792][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:15:37,866 [DEBUG][       Thread-602792][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:15:37,866 [DEBUG][       Thread-602792][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:15:37,866 [DEBUG][       Thread-602792][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:15:37,866 [DEBUG][       Thread-602792][   transport.py][1871] : client lang: <none>
2025-07-01 11:15:37,866 [DEBUG][       Thread-602792][   transport.py][1871] : server lang: <none>
2025-07-01 11:15:37,866 [DEBUG][       Thread-602792][   transport.py][1871] : kex follows: False
2025-07-01 11:15:37,866 [DEBUG][       Thread-602792][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:15:37,866 [DEBUG][       Thread-602792][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:15:37,866 [DEBUG][       Thread-602792][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:15:37,866 [DEBUG][       Thread-602792][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:15:37,866 [DEBUG][       Thread-602792][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:15:37,866 [DEBUG][       Thread-602792][   transport.py][1871] : Compression: none
2025-07-01 11:15:37,866 [DEBUG][       Thread-602792][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:15:37,922 [DEBUG][       Thread-602792][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:15:37,922 [DEBUG][       Thread-602792][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:15:37,923 [DEBUG][       Thread-602792][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:15:37,923 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:15:37,923 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:15:37,978 [DEBUG][       Thread-602792][   transport.py][1871] : userauth is OK
2025-07-01 11:15:37,979 [DEBUG][       Thread-602792][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:15:37,979 [DEBUG][       Thread-602792][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:15:37,979 [DEBUG][       Thread-602792][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:15:37,979 [DEBUG][       Thread-602792][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:15:37,997 [ INFO][       Thread-602792][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:15:37,997 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:15:37,998 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:15:38,968 [DEBUG][       Thread-602792][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:15:38,968 [DEBUG][       Thread-602792][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:15:39,024 [DEBUG][       Thread-602792][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:15:39,024 [DEBUG][       Thread-602792][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:15:39,034 [DEBUG][       Thread-602792][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:15:39,043 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:15:39,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-07-01 11:15:39,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-07-01 11:15:39,061 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:15:39,061 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:15:39,061 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:15:39,069 [DEBUG][       Thread-602792][   transport.py][1871] : EOF in transport thread
2025-07-01 11:15:39,752 [DEBUG][Thread-602794 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:15:48,773 [DEBUG][Thread-602795 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:15:49,068 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:15:49,068 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:15:49,068 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:15:49,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-07-01 11:15:49,541 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 15, 42), 9.9, 50.16, 0.0, 37.18, 10.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:15:49,541 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:15:42
2025-07-01 11:15:49,626 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:15:49,630 [DEBUG][       Thread-602796][   transport.py][1871] : starting thread (client mode): 0x75a8070
2025-07-01 11:15:49,630 [DEBUG][       Thread-602796][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:15:49,650 [DEBUG][       Thread-602796][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:15:49,650 [ INFO][       Thread-602796][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:15:49,654 [DEBUG][       Thread-602796][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:15:49,654 [DEBUG][       Thread-602796][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:15:49,654 [DEBUG][       Thread-602796][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:15:49,654 [DEBUG][       Thread-602796][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:15:49,654 [DEBUG][       Thread-602796][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:15:49,654 [DEBUG][       Thread-602796][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:15:49,654 [DEBUG][       Thread-602796][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:15:49,654 [DEBUG][       Thread-602796][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:15:49,654 [DEBUG][       Thread-602796][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:15:49,654 [DEBUG][       Thread-602796][   transport.py][1871] : client lang: <none>
2025-07-01 11:15:49,654 [DEBUG][       Thread-602796][   transport.py][1871] : server lang: <none>
2025-07-01 11:15:49,654 [DEBUG][       Thread-602796][   transport.py][1871] : kex follows: False
2025-07-01 11:15:49,654 [DEBUG][       Thread-602796][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:15:49,654 [DEBUG][       Thread-602796][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:15:49,654 [DEBUG][       Thread-602796][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:15:49,654 [DEBUG][       Thread-602796][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:15:49,654 [DEBUG][       Thread-602796][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:15:49,654 [DEBUG][       Thread-602796][   transport.py][1871] : Compression: none
2025-07-01 11:15:49,654 [DEBUG][       Thread-602796][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:15:49,670 [DEBUG][       Thread-602796][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:15:49,670 [DEBUG][       Thread-602796][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:15:49,670 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:15:49,671 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:15:49,671 [DEBUG][       Thread-602796][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:15:49,671 [DEBUG][       Thread-602796][   transport.py][1871] : userauth is OK
2025-07-01 11:15:49,697 [ INFO][       Thread-602796][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:15:49,697 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:15:50,348 [DEBUG][       Thread-602796][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:15:50,348 [DEBUG][       Thread-602796][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:15:50,393 [DEBUG][       Thread-602796][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:15:50,393 [DEBUG][       Thread-602796][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:15:50,396 [DEBUG][       Thread-602796][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:15:50,407 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:15:50,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:15:50,409 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:15:50,411 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:15:50,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:15:50,417 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:15:50,417 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:15:50,418 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:15:50,418 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.385709 -999.00  +10.50  26.65     55   +1.90 1 2 1 1 1   887    0 9.14 18.89 ----- 26.6 26.6 32.0 42.7 13.2 -20.7 12.6 -21.4 12.3 -20.0 12.8 -20.0
2025-07-01 11:15:50,418 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:15:50,418 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:15:50,418 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.385709
2025-07-01 11:15:50,418 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:15:50,419 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:15:50,419 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:15:50,419 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:15:50,419 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:15:50,419 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:15:42', tmtdew=9.9, humidity=50.16, cloud=0.0, wind=37.18, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:15:25.258', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:15:50,419 [DEBUG][       Thread-602796][   transport.py][1871] : EOF in transport thread
2025-07-01 11:15:50,504 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:15:50,513 [DEBUG][       Thread-602799][   transport.py][1871] : starting thread (client mode): 0x81e7b20
2025-07-01 11:15:50,513 [DEBUG][       Thread-602799][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:15:50,529 [DEBUG][       Thread-602799][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:15:50,529 [ INFO][       Thread-602799][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:15:50,537 [DEBUG][       Thread-602799][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:15:50,537 [DEBUG][       Thread-602799][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:15:50,537 [DEBUG][       Thread-602799][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:15:50,537 [DEBUG][       Thread-602799][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:15:50,537 [DEBUG][       Thread-602799][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:15:50,537 [DEBUG][       Thread-602799][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:15:50,537 [DEBUG][       Thread-602799][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:15:50,537 [DEBUG][       Thread-602799][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:15:50,537 [DEBUG][       Thread-602799][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:15:50,537 [DEBUG][       Thread-602799][   transport.py][1871] : client lang: <none>
2025-07-01 11:15:50,537 [DEBUG][       Thread-602799][   transport.py][1871] : server lang: <none>
2025-07-01 11:15:50,537 [DEBUG][       Thread-602799][   transport.py][1871] : kex follows: False
2025-07-01 11:15:50,537 [DEBUG][       Thread-602799][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:15:50,537 [DEBUG][       Thread-602799][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:15:50,537 [DEBUG][       Thread-602799][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:15:50,537 [DEBUG][       Thread-602799][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:15:50,537 [DEBUG][       Thread-602799][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:15:50,537 [DEBUG][       Thread-602799][   transport.py][1871] : Compression: none
2025-07-01 11:15:50,537 [DEBUG][       Thread-602799][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:15:50,597 [DEBUG][       Thread-602799][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:15:50,598 [DEBUG][       Thread-602799][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:15:50,598 [DEBUG][       Thread-602799][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:15:50,598 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:15:50,599 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:15:50,654 [DEBUG][       Thread-602799][   transport.py][1871] : userauth is OK
2025-07-01 11:15:50,654 [DEBUG][       Thread-602799][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:15:50,654 [DEBUG][       Thread-602799][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:15:50,654 [DEBUG][       Thread-602799][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:15:50,654 [DEBUG][       Thread-602799][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:15:50,672 [ INFO][       Thread-602799][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:15:50,672 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:15:50,673 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:15:51,693 [DEBUG][       Thread-602799][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:15:51,693 [DEBUG][       Thread-602799][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:15:51,744 [DEBUG][       Thread-602799][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:15:51,744 [DEBUG][       Thread-602799][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:15:51,753 [DEBUG][       Thread-602799][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:15:51,762 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:15:51,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-07-01 11:15:51,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-07-01 11:15:51,780 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:15:51,780 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:15:51,780 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:15:51,788 [DEBUG][       Thread-602799][   transport.py][1871] : EOF in transport thread
2025-07-01 11:15:57,796 [DEBUG][Thread-602801 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:16:01,789 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:16:01,789 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:16:01,798 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:16:01,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-07-01 11:16:02,283 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 15, 42), 9.9, 50.16, 0.0, 37.18, 10.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:16:02,283 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:15:42
2025-07-01 11:16:02,368 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:16:02,373 [DEBUG][       Thread-602802][   transport.py][1871] : starting thread (client mode): 0x75ab610
2025-07-01 11:16:02,373 [DEBUG][       Thread-602802][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:16:02,393 [DEBUG][       Thread-602802][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:16:02,393 [ INFO][       Thread-602802][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:16:02,396 [DEBUG][       Thread-602802][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:16:02,396 [DEBUG][       Thread-602802][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:16:02,396 [DEBUG][       Thread-602802][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:16:02,396 [DEBUG][       Thread-602802][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:16:02,396 [DEBUG][       Thread-602802][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:16:02,396 [DEBUG][       Thread-602802][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:16:02,396 [DEBUG][       Thread-602802][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:16:02,396 [DEBUG][       Thread-602802][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:16:02,396 [DEBUG][       Thread-602802][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:16:02,396 [DEBUG][       Thread-602802][   transport.py][1871] : client lang: <none>
2025-07-01 11:16:02,396 [DEBUG][       Thread-602802][   transport.py][1871] : server lang: <none>
2025-07-01 11:16:02,397 [DEBUG][       Thread-602802][   transport.py][1871] : kex follows: False
2025-07-01 11:16:02,397 [DEBUG][       Thread-602802][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:16:02,397 [DEBUG][       Thread-602802][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:16:02,397 [DEBUG][       Thread-602802][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:16:02,397 [DEBUG][       Thread-602802][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:16:02,397 [DEBUG][       Thread-602802][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:16:02,397 [DEBUG][       Thread-602802][   transport.py][1871] : Compression: none
2025-07-01 11:16:02,397 [DEBUG][       Thread-602802][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:16:02,414 [DEBUG][       Thread-602802][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:16:02,415 [DEBUG][       Thread-602802][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:16:02,415 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:16:02,415 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:16:02,416 [DEBUG][       Thread-602802][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:16:02,417 [DEBUG][       Thread-602802][   transport.py][1871] : userauth is OK
2025-07-01 11:16:02,430 [ INFO][       Thread-602802][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:16:02,430 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:16:03,092 [DEBUG][       Thread-602802][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:16:03,092 [DEBUG][       Thread-602802][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:16:03,137 [DEBUG][       Thread-602802][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:16:03,137 [DEBUG][       Thread-602802][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:16:03,140 [DEBUG][       Thread-602802][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:16:03,151 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:16:03,151 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:16:03,153 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:16:03,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:16:03,159 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:16:03,161 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:16:03,161 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:16:03,161 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:16:03,162 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.385709 -999.00  +10.50  26.65     55   +1.90 1 2 1 1 1   887    0 9.14 18.89 ----- 26.6 26.6 32.0 42.7 13.2 -20.7 12.6 -21.4 12.3 -20.0 12.8 -20.0
2025-07-01 11:16:03,162 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:16:03,162 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:16:03,162 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.385709
2025-07-01 11:16:03,162 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:16:03,163 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:16:03,163 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:16:03,163 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:16:03,163 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:16:03,163 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:15:42', tmtdew=9.9, humidity=50.16, cloud=0.0, wind=37.18, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:15:25.258', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:16:03,163 [DEBUG][       Thread-602802][   transport.py][1871] : EOF in transport thread
2025-07-01 11:16:03,247 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:16:03,256 [DEBUG][       Thread-602805][   transport.py][1871] : starting thread (client mode): 0x8172950
2025-07-01 11:16:03,256 [DEBUG][       Thread-602805][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:16:03,271 [DEBUG][       Thread-602805][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:16:03,271 [ INFO][       Thread-602805][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:16:03,278 [DEBUG][       Thread-602805][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:16:03,278 [DEBUG][       Thread-602805][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:16:03,278 [DEBUG][       Thread-602805][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:16:03,279 [DEBUG][       Thread-602805][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:16:03,279 [DEBUG][       Thread-602805][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:16:03,279 [DEBUG][       Thread-602805][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:16:03,279 [DEBUG][       Thread-602805][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:16:03,279 [DEBUG][       Thread-602805][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:16:03,279 [DEBUG][       Thread-602805][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:16:03,279 [DEBUG][       Thread-602805][   transport.py][1871] : client lang: <none>
2025-07-01 11:16:03,279 [DEBUG][       Thread-602805][   transport.py][1871] : server lang: <none>
2025-07-01 11:16:03,279 [DEBUG][       Thread-602805][   transport.py][1871] : kex follows: False
2025-07-01 11:16:03,279 [DEBUG][       Thread-602805][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:16:03,279 [DEBUG][       Thread-602805][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:16:03,279 [DEBUG][       Thread-602805][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:16:03,279 [DEBUG][       Thread-602805][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:16:03,279 [DEBUG][       Thread-602805][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:16:03,279 [DEBUG][       Thread-602805][   transport.py][1871] : Compression: none
2025-07-01 11:16:03,279 [DEBUG][       Thread-602805][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:16:03,338 [DEBUG][       Thread-602805][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:16:03,338 [DEBUG][       Thread-602805][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:16:03,339 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:16:03,339 [DEBUG][       Thread-602805][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:16:03,340 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:16:03,394 [DEBUG][       Thread-602805][   transport.py][1871] : userauth is OK
2025-07-01 11:16:03,395 [DEBUG][       Thread-602805][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:16:03,395 [DEBUG][       Thread-602805][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:16:03,395 [DEBUG][       Thread-602805][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:16:03,395 [DEBUG][       Thread-602805][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:16:03,413 [ INFO][       Thread-602805][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:16:03,414 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:16:03,414 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:16:04,429 [DEBUG][       Thread-602805][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:16:04,429 [DEBUG][       Thread-602805][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:16:04,480 [DEBUG][       Thread-602805][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:16:04,480 [DEBUG][       Thread-602805][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:16:04,489 [DEBUG][       Thread-602805][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:16:04,498 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:16:04,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-07-01 11:16:04,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-07-01 11:16:04,517 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:16:04,517 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:16:04,518 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:16:04,526 [DEBUG][       Thread-602805][   transport.py][1871] : EOF in transport thread
2025-07-01 11:16:06,084 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:16:06,084 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:16:06,828 [DEBUG][Thread-602807 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:16:14,528 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:16:14,528 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:16:14,528 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:16:14,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-07-01 11:16:15,020 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 15, 42), 9.9, 50.16, 0.0, 37.18, 10.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:16:15,020 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:15:42
2025-07-01 11:16:15,111 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:16:15,115 [DEBUG][       Thread-602808][   transport.py][1871] : starting thread (client mode): 0x75a8220
2025-07-01 11:16:15,115 [DEBUG][       Thread-602808][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:16:15,136 [DEBUG][       Thread-602808][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:16:15,136 [ INFO][       Thread-602808][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:16:15,140 [DEBUG][       Thread-602808][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:16:15,140 [DEBUG][       Thread-602808][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:16:15,140 [DEBUG][       Thread-602808][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:16:15,140 [DEBUG][       Thread-602808][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:16:15,140 [DEBUG][       Thread-602808][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:16:15,140 [DEBUG][       Thread-602808][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:16:15,140 [DEBUG][       Thread-602808][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:16:15,140 [DEBUG][       Thread-602808][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:16:15,140 [DEBUG][       Thread-602808][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:16:15,140 [DEBUG][       Thread-602808][   transport.py][1871] : client lang: <none>
2025-07-01 11:16:15,140 [DEBUG][       Thread-602808][   transport.py][1871] : server lang: <none>
2025-07-01 11:16:15,140 [DEBUG][       Thread-602808][   transport.py][1871] : kex follows: False
2025-07-01 11:16:15,140 [DEBUG][       Thread-602808][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:16:15,140 [DEBUG][       Thread-602808][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:16:15,140 [DEBUG][       Thread-602808][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:16:15,140 [DEBUG][       Thread-602808][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:16:15,140 [DEBUG][       Thread-602808][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:16:15,140 [DEBUG][       Thread-602808][   transport.py][1871] : Compression: none
2025-07-01 11:16:15,140 [DEBUG][       Thread-602808][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:16:15,157 [DEBUG][       Thread-602808][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:16:15,157 [DEBUG][       Thread-602808][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:16:15,157 [DEBUG][       Thread-602808][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:16:15,157 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:16:15,157 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:16:15,158 [DEBUG][       Thread-602808][   transport.py][1871] : userauth is OK
2025-07-01 11:16:15,182 [ INFO][       Thread-602808][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:16:15,182 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:16:15,830 [DEBUG][       Thread-602808][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:16:15,830 [DEBUG][       Thread-602808][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:16:15,851 [DEBUG][Thread-602810 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:16:15,872 [DEBUG][       Thread-602808][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:16:15,872 [DEBUG][       Thread-602808][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:16:15,874 [DEBUG][       Thread-602808][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:16:15,887 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:16:15,887 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:16:15,889 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:16:15,890 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:16:15,893 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:16:15,893 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:16:15,893 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:16:15,894 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:16:15,894 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.386056 -999.00  +10.40  34.22     55   +1.80 1 2 2 1 1   887    0 9.21 16.55 ----- 34.2 34.2 38.0 48.5 13.2 -22.0 12.6 -20.8 12.2 -20.5 12.8 -20.5
2025-07-01 11:16:15,894 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:16:15,894 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:16:15,894 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.386056
2025-07-01 11:16:15,894 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:16:15,894 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:16:15,894 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:16:15,894 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:16:15,894 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:16:15,894 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:15:42', tmtdew=9.9, humidity=50.16, cloud=0.0, wind=37.18, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:15:55.238', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:16:15,894 [DEBUG][       Thread-602808][   transport.py][1871] : EOF in transport thread
2025-07-01 11:16:15,969 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:16:15,980 [DEBUG][       Thread-602812][   transport.py][1871] : starting thread (client mode): 0x82b24d0
2025-07-01 11:16:15,980 [DEBUG][       Thread-602812][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:16:15,995 [DEBUG][       Thread-602812][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:16:15,995 [ INFO][       Thread-602812][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:16:16,002 [DEBUG][       Thread-602812][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:16:16,002 [DEBUG][       Thread-602812][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:16:16,002 [DEBUG][       Thread-602812][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:16:16,002 [DEBUG][       Thread-602812][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:16:16,002 [DEBUG][       Thread-602812][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:16:16,002 [DEBUG][       Thread-602812][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:16:16,002 [DEBUG][       Thread-602812][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:16:16,002 [DEBUG][       Thread-602812][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:16:16,002 [DEBUG][       Thread-602812][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:16:16,002 [DEBUG][       Thread-602812][   transport.py][1871] : client lang: <none>
2025-07-01 11:16:16,002 [DEBUG][       Thread-602812][   transport.py][1871] : server lang: <none>
2025-07-01 11:16:16,002 [DEBUG][       Thread-602812][   transport.py][1871] : kex follows: False
2025-07-01 11:16:16,002 [DEBUG][       Thread-602812][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:16:16,002 [DEBUG][       Thread-602812][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:16:16,002 [DEBUG][       Thread-602812][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:16:16,002 [DEBUG][       Thread-602812][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:16:16,002 [DEBUG][       Thread-602812][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:16:16,002 [DEBUG][       Thread-602812][   transport.py][1871] : Compression: none
2025-07-01 11:16:16,002 [DEBUG][       Thread-602812][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:16:16,060 [DEBUG][       Thread-602812][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:16:16,060 [DEBUG][       Thread-602812][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:16:16,061 [DEBUG][       Thread-602812][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:16:16,061 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:16:16,061 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:16:16,124 [DEBUG][       Thread-602812][   transport.py][1871] : userauth is OK
2025-07-01 11:16:16,124 [DEBUG][       Thread-602812][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:16:16,124 [DEBUG][       Thread-602812][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:16:16,124 [DEBUG][       Thread-602812][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:16:16,124 [DEBUG][       Thread-602812][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:16:16,138 [ INFO][       Thread-602812][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:16:16,139 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:16:16,139 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:16:17,136 [DEBUG][       Thread-602812][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:16:17,136 [DEBUG][       Thread-602812][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:16:17,185 [DEBUG][       Thread-602812][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:16:17,185 [DEBUG][       Thread-602812][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:16:17,194 [DEBUG][       Thread-602812][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:16:17,203 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:16:17,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-07-01 11:16:17,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-07-01 11:16:17,222 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:16:17,222 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:16:17,222 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:16:17,232 [DEBUG][       Thread-602812][   transport.py][1871] : EOF in transport thread
2025-07-01 11:16:24,874 [DEBUG][Thread-602814 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:16:25,555 [DEBUG][Thread-602815 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:16:27,233 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:16:27,233 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:16:27,233 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:16:27,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-07-01 11:16:27,724 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 16, 14), 9.93, 50.18, 0.0, 31.34, 10.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:16:27,724 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:16:14
2025-07-01 11:16:27,810 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:16:27,816 [DEBUG][       Thread-602816][   transport.py][1871] : starting thread (client mode): 0x81716c0
2025-07-01 11:16:27,816 [DEBUG][       Thread-602816][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:16:27,836 [DEBUG][       Thread-602816][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:16:27,836 [ INFO][       Thread-602816][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:16:27,840 [DEBUG][       Thread-602816][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:16:27,840 [DEBUG][       Thread-602816][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:16:27,840 [DEBUG][       Thread-602816][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:16:27,840 [DEBUG][       Thread-602816][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:16:27,840 [DEBUG][       Thread-602816][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:16:27,840 [DEBUG][       Thread-602816][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:16:27,840 [DEBUG][       Thread-602816][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:16:27,840 [DEBUG][       Thread-602816][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:16:27,840 [DEBUG][       Thread-602816][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:16:27,840 [DEBUG][       Thread-602816][   transport.py][1871] : client lang: <none>
2025-07-01 11:16:27,840 [DEBUG][       Thread-602816][   transport.py][1871] : server lang: <none>
2025-07-01 11:16:27,840 [DEBUG][       Thread-602816][   transport.py][1871] : kex follows: False
2025-07-01 11:16:27,840 [DEBUG][       Thread-602816][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:16:27,840 [DEBUG][       Thread-602816][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:16:27,840 [DEBUG][       Thread-602816][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:16:27,840 [DEBUG][       Thread-602816][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:16:27,840 [DEBUG][       Thread-602816][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:16:27,840 [DEBUG][       Thread-602816][   transport.py][1871] : Compression: none
2025-07-01 11:16:27,840 [DEBUG][       Thread-602816][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:16:27,856 [DEBUG][       Thread-602816][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:16:27,856 [DEBUG][       Thread-602816][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:16:27,856 [DEBUG][       Thread-602816][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:16:27,856 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:16:27,856 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:16:27,857 [DEBUG][       Thread-602816][   transport.py][1871] : userauth is OK
2025-07-01 11:16:27,869 [ INFO][       Thread-602816][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:16:27,870 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:16:28,548 [DEBUG][       Thread-602816][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:16:28,549 [DEBUG][       Thread-602816][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:16:28,593 [DEBUG][       Thread-602816][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:16:28,593 [DEBUG][       Thread-602816][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:16:28,596 [DEBUG][       Thread-602816][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:16:28,608 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:16:28,608 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:16:28,610 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:16:28,612 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:16:28,618 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:16:28,620 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:16:28,620 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:16:28,621 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:16:28,621 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.386056 -999.00  +10.40  34.22     55   +1.80 1 2 2 1 1   887    0 9.21 16.55 ----- 34.2 34.2 38.0 48.5 13.2 -22.0 12.6 -20.8 12.2 -20.5 12.8 -20.5
2025-07-01 11:16:28,621 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:16:28,621 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:16:28,621 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.386056
2025-07-01 11:16:28,622 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:16:28,622 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:16:28,622 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:16:28,622 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:16:28,622 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:16:28,623 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:16:14', tmtdew=9.93, humidity=50.18, cloud=0.0, wind=31.34, temperature=10.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:15:55.238', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:16:28,624 [DEBUG][       Thread-602816][   transport.py][1871] : EOF in transport thread
2025-07-01 11:16:28,707 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:16:28,717 [DEBUG][       Thread-602819][   transport.py][1871] : starting thread (client mode): 0x818d9f0
2025-07-01 11:16:28,717 [DEBUG][       Thread-602819][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:16:28,732 [DEBUG][       Thread-602819][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:16:28,732 [ INFO][       Thread-602819][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:16:28,740 [DEBUG][       Thread-602819][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:16:28,740 [DEBUG][       Thread-602819][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:16:28,740 [DEBUG][       Thread-602819][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:16:28,740 [DEBUG][       Thread-602819][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:16:28,740 [DEBUG][       Thread-602819][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:16:28,740 [DEBUG][       Thread-602819][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:16:28,740 [DEBUG][       Thread-602819][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:16:28,740 [DEBUG][       Thread-602819][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:16:28,740 [DEBUG][       Thread-602819][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:16:28,740 [DEBUG][       Thread-602819][   transport.py][1871] : client lang: <none>
2025-07-01 11:16:28,740 [DEBUG][       Thread-602819][   transport.py][1871] : server lang: <none>
2025-07-01 11:16:28,740 [DEBUG][       Thread-602819][   transport.py][1871] : kex follows: False
2025-07-01 11:16:28,740 [DEBUG][       Thread-602819][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:16:28,741 [DEBUG][       Thread-602819][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:16:28,741 [DEBUG][       Thread-602819][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:16:28,741 [DEBUG][       Thread-602819][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:16:28,741 [DEBUG][       Thread-602819][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:16:28,741 [DEBUG][       Thread-602819][   transport.py][1871] : Compression: none
2025-07-01 11:16:28,741 [DEBUG][       Thread-602819][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:16:28,798 [DEBUG][       Thread-602819][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:16:28,799 [DEBUG][       Thread-602819][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:16:28,808 [DEBUG][       Thread-602819][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:16:28,809 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:16:28,809 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:16:28,858 [DEBUG][       Thread-602819][   transport.py][1871] : userauth is OK
2025-07-01 11:16:28,858 [DEBUG][       Thread-602819][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:16:28,859 [DEBUG][       Thread-602819][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:16:28,859 [DEBUG][       Thread-602819][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:16:28,859 [DEBUG][       Thread-602819][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:16:28,877 [ INFO][       Thread-602819][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:16:28,877 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:16:28,878 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:16:29,930 [DEBUG][       Thread-602819][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:16:29,930 [DEBUG][       Thread-602819][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:16:29,980 [DEBUG][       Thread-602819][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:16:29,980 [DEBUG][       Thread-602819][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:16:29,989 [DEBUG][       Thread-602819][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:16:29,998 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:16:29,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')
2025-07-01 11:16:30,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') -> 00000000
2025-07-01 11:16:30,017 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:16:30,017 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:16:30,018 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:16:30,026 [DEBUG][       Thread-602819][   transport.py][1871] : EOF in transport thread
2025-07-01 11:16:33,897 [DEBUG][Thread-602821 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:16:40,028 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:16:40,028 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:16:40,029 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:16:40,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-07-01 11:16:40,506 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 16, 14), 9.93, 50.18, 0.0, 31.34, 10.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:16:40,506 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:16:14
2025-07-01 11:16:40,591 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:16:40,595 [DEBUG][       Thread-602822][   transport.py][1871] : starting thread (client mode): 0x8173340
2025-07-01 11:16:40,595 [DEBUG][       Thread-602822][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:16:40,618 [DEBUG][       Thread-602822][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:16:40,618 [ INFO][       Thread-602822][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:16:40,622 [DEBUG][       Thread-602822][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:16:40,622 [DEBUG][       Thread-602822][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:16:40,622 [DEBUG][       Thread-602822][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:16:40,622 [DEBUG][       Thread-602822][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:16:40,622 [DEBUG][       Thread-602822][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:16:40,622 [DEBUG][       Thread-602822][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:16:40,622 [DEBUG][       Thread-602822][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:16:40,622 [DEBUG][       Thread-602822][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:16:40,622 [DEBUG][       Thread-602822][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:16:40,622 [DEBUG][       Thread-602822][   transport.py][1871] : client lang: <none>
2025-07-01 11:16:40,622 [DEBUG][       Thread-602822][   transport.py][1871] : server lang: <none>
2025-07-01 11:16:40,622 [DEBUG][       Thread-602822][   transport.py][1871] : kex follows: False
2025-07-01 11:16:40,622 [DEBUG][       Thread-602822][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:16:40,622 [DEBUG][       Thread-602822][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:16:40,622 [DEBUG][       Thread-602822][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:16:40,622 [DEBUG][       Thread-602822][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:16:40,622 [DEBUG][       Thread-602822][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:16:40,622 [DEBUG][       Thread-602822][   transport.py][1871] : Compression: none
2025-07-01 11:16:40,622 [DEBUG][       Thread-602822][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:16:40,631 [DEBUG][       Thread-602822][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:16:40,632 [DEBUG][       Thread-602822][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:16:40,632 [DEBUG][       Thread-602822][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:16:40,632 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:16:40,632 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:16:40,634 [DEBUG][       Thread-602822][   transport.py][1871] : userauth is OK
2025-07-01 11:16:40,647 [ INFO][       Thread-602822][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:16:40,647 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:16:41,329 [DEBUG][       Thread-602822][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:16:41,329 [DEBUG][       Thread-602822][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:16:41,373 [DEBUG][       Thread-602822][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:16:41,373 [DEBUG][       Thread-602822][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:16:41,376 [DEBUG][       Thread-602822][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:16:41,387 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:16:41,388 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:16:41,389 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:16:41,391 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:16:41,397 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:16:41,399 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:16:41,399 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:16:41,399 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:16:41,399 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.386056 -999.00  +10.40  34.22     55   +1.80 1 2 2 1 1   887    0 9.21 16.55 ----- 34.2 34.2 38.0 48.5 13.2 -22.0 12.6 -20.8 12.2 -20.5 12.8 -20.5
2025-07-01 11:16:41,399 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:16:41,400 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:16:41,400 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.386056
2025-07-01 11:16:41,400 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:16:41,401 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:16:41,401 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:16:41,401 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:16:41,401 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:16:41,401 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:16:14', tmtdew=9.93, humidity=50.18, cloud=0.0, wind=31.34, temperature=10.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:15:55.238', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:16:41,401 [DEBUG][       Thread-602822][   transport.py][1871] : EOF in transport thread
2025-07-01 11:16:41,484 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:16:41,496 [DEBUG][       Thread-602825][   transport.py][1871] : starting thread (client mode): 0x75a8910
2025-07-01 11:16:41,496 [DEBUG][       Thread-602825][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:16:41,513 [DEBUG][       Thread-602825][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:16:41,513 [ INFO][       Thread-602825][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:16:41,521 [DEBUG][       Thread-602825][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:16:41,521 [DEBUG][       Thread-602825][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:16:41,522 [DEBUG][       Thread-602825][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:16:41,522 [DEBUG][       Thread-602825][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:16:41,522 [DEBUG][       Thread-602825][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:16:41,522 [DEBUG][       Thread-602825][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:16:41,522 [DEBUG][       Thread-602825][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:16:41,522 [DEBUG][       Thread-602825][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:16:41,522 [DEBUG][       Thread-602825][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:16:41,522 [DEBUG][       Thread-602825][   transport.py][1871] : client lang: <none>
2025-07-01 11:16:41,522 [DEBUG][       Thread-602825][   transport.py][1871] : server lang: <none>
2025-07-01 11:16:41,522 [DEBUG][       Thread-602825][   transport.py][1871] : kex follows: False
2025-07-01 11:16:41,522 [DEBUG][       Thread-602825][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:16:41,522 [DEBUG][       Thread-602825][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:16:41,522 [DEBUG][       Thread-602825][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:16:41,522 [DEBUG][       Thread-602825][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:16:41,522 [DEBUG][       Thread-602825][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:16:41,522 [DEBUG][       Thread-602825][   transport.py][1871] : Compression: none
2025-07-01 11:16:41,522 [DEBUG][       Thread-602825][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:16:41,577 [DEBUG][       Thread-602825][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:16:41,578 [DEBUG][       Thread-602825][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:16:41,578 [DEBUG][       Thread-602825][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:16:41,579 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:16:41,579 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:16:41,634 [DEBUG][       Thread-602825][   transport.py][1871] : userauth is OK
2025-07-01 11:16:41,634 [DEBUG][       Thread-602825][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:16:41,634 [DEBUG][       Thread-602825][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:16:41,634 [DEBUG][       Thread-602825][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:16:41,634 [DEBUG][       Thread-602825][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:16:41,653 [ INFO][       Thread-602825][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:16:41,653 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:16:41,653 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:16:42,678 [DEBUG][       Thread-602825][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:16:42,678 [DEBUG][       Thread-602825][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:16:42,728 [DEBUG][       Thread-602825][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:16:42,728 [DEBUG][       Thread-602825][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:16:42,737 [DEBUG][       Thread-602825][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:16:42,747 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:16:42,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-07-01 11:16:42,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-07-01 11:16:42,764 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:16:42,765 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:16:42,765 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:16:42,773 [DEBUG][       Thread-602825][   transport.py][1871] : EOF in transport thread
2025-07-01 11:16:42,938 [DEBUG][Thread-602827 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:16:51,957 [DEBUG][Thread-602828 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:16:52,772 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:16:52,772 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:16:52,772 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:16:52,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-07-01 11:16:53,256 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 16, 46), 9.97, 50.04, 0.0, 36.1, 10.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:16:53,256 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:16:46
2025-07-01 11:16:53,342 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:16:53,347 [DEBUG][       Thread-602829][   transport.py][1871] : starting thread (client mode): 0x75a8550
2025-07-01 11:16:53,347 [DEBUG][       Thread-602829][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:16:53,368 [DEBUG][       Thread-602829][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:16:53,368 [ INFO][       Thread-602829][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:16:53,372 [DEBUG][       Thread-602829][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:16:53,372 [DEBUG][       Thread-602829][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:16:53,372 [DEBUG][       Thread-602829][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:16:53,372 [DEBUG][       Thread-602829][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:16:53,372 [DEBUG][       Thread-602829][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:16:53,372 [DEBUG][       Thread-602829][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:16:53,372 [DEBUG][       Thread-602829][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:16:53,372 [DEBUG][       Thread-602829][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:16:53,372 [DEBUG][       Thread-602829][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:16:53,372 [DEBUG][       Thread-602829][   transport.py][1871] : client lang: <none>
2025-07-01 11:16:53,372 [DEBUG][       Thread-602829][   transport.py][1871] : server lang: <none>
2025-07-01 11:16:53,372 [DEBUG][       Thread-602829][   transport.py][1871] : kex follows: False
2025-07-01 11:16:53,372 [DEBUG][       Thread-602829][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:16:53,373 [DEBUG][       Thread-602829][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:16:53,373 [DEBUG][       Thread-602829][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:16:53,373 [DEBUG][       Thread-602829][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:16:53,373 [DEBUG][       Thread-602829][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:16:53,373 [DEBUG][       Thread-602829][   transport.py][1871] : Compression: none
2025-07-01 11:16:53,373 [DEBUG][       Thread-602829][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:16:53,389 [DEBUG][       Thread-602829][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:16:53,390 [DEBUG][       Thread-602829][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:16:53,390 [DEBUG][       Thread-602829][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:16:53,391 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:16:53,391 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:16:53,392 [DEBUG][       Thread-602829][   transport.py][1871] : userauth is OK
2025-07-01 11:16:53,417 [ INFO][       Thread-602829][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:16:53,417 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:16:54,070 [DEBUG][       Thread-602829][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:16:54,070 [DEBUG][       Thread-602829][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:16:54,113 [DEBUG][       Thread-602829][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:16:54,113 [DEBUG][       Thread-602829][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:16:54,117 [DEBUG][       Thread-602829][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:16:54,130 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:16:54,130 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:16:54,132 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:16:54,134 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:16:54,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:16:54,142 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:16:54,142 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:16:54,143 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:16:54,143 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.386403 -999.00  +10.30  35.83     55   +1.80 1 2 2 1 1   887    0 9.15 14.46 ----- 35.8 35.8 47.4 43.8 13.1 -21.0 12.6 -20.8 12.2 -20.8 12.7 -20.1
2025-07-01 11:16:54,143 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:16:54,143 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:16:54,143 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.386403
2025-07-01 11:16:54,143 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:16:54,144 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:16:54,144 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:16:54,144 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:16:54,144 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:16:54,144 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:16:46', tmtdew=9.97, humidity=50.04, cloud=0.0, wind=36.1, temperature=10.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:16:25.219', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:16:54,145 [DEBUG][       Thread-602829][   transport.py][1871] : EOF in transport thread
2025-07-01 11:16:54,227 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:16:54,237 [DEBUG][       Thread-602832][   transport.py][1871] : starting thread (client mode): 0x81e7b20
2025-07-01 11:16:54,238 [DEBUG][       Thread-602832][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:16:54,258 [DEBUG][       Thread-602832][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:16:54,258 [ INFO][       Thread-602832][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:16:54,269 [DEBUG][       Thread-602832][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:16:54,269 [DEBUG][       Thread-602832][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:16:54,269 [DEBUG][       Thread-602832][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:16:54,269 [DEBUG][       Thread-602832][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:16:54,269 [DEBUG][       Thread-602832][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:16:54,269 [DEBUG][       Thread-602832][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:16:54,269 [DEBUG][       Thread-602832][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:16:54,270 [DEBUG][       Thread-602832][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:16:54,270 [DEBUG][       Thread-602832][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:16:54,270 [DEBUG][       Thread-602832][   transport.py][1871] : client lang: <none>
2025-07-01 11:16:54,270 [DEBUG][       Thread-602832][   transport.py][1871] : server lang: <none>
2025-07-01 11:16:54,270 [DEBUG][       Thread-602832][   transport.py][1871] : kex follows: False
2025-07-01 11:16:54,270 [DEBUG][       Thread-602832][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:16:54,270 [DEBUG][       Thread-602832][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:16:54,270 [DEBUG][       Thread-602832][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:16:54,270 [DEBUG][       Thread-602832][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:16:54,270 [DEBUG][       Thread-602832][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:16:54,270 [DEBUG][       Thread-602832][   transport.py][1871] : Compression: none
2025-07-01 11:16:54,270 [DEBUG][       Thread-602832][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:16:54,328 [DEBUG][       Thread-602832][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:16:54,328 [DEBUG][       Thread-602832][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:16:54,329 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:16:54,329 [DEBUG][       Thread-602832][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:16:54,330 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:16:54,386 [DEBUG][       Thread-602832][   transport.py][1871] : userauth is OK
2025-07-01 11:16:54,386 [DEBUG][       Thread-602832][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:16:54,387 [DEBUG][       Thread-602832][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:16:54,387 [DEBUG][       Thread-602832][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:16:54,387 [DEBUG][       Thread-602832][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:16:54,406 [ INFO][       Thread-602832][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:16:54,406 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:16:54,407 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:16:55,404 [DEBUG][       Thread-602832][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:16:55,405 [DEBUG][       Thread-602832][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:16:55,460 [DEBUG][       Thread-602832][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:16:55,460 [DEBUG][       Thread-602832][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:16:55,469 [DEBUG][       Thread-602832][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:16:55,478 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:16:55,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-07-01 11:16:55,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-07-01 11:16:55,496 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:16:55,496 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:16:55,497 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:16:55,504 [DEBUG][       Thread-602832][   transport.py][1871] : EOF in transport thread
2025-07-01 11:17:00,978 [DEBUG][Thread-602834 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:17:05,507 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:17:05,507 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:17:05,507 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:17:05,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-07-01 11:17:05,996 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 16, 46), 9.97, 50.04, 0.0, 36.1, 10.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:17:05,996 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:16:46
2025-07-01 11:17:06,081 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:17:06,085 [DEBUG][       Thread-602835][   transport.py][1871] : starting thread (client mode): 0x75a88e0
2025-07-01 11:17:06,085 [DEBUG][       Thread-602835][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:17:06,105 [DEBUG][       Thread-602835][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:17:06,105 [ INFO][       Thread-602835][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:17:06,109 [DEBUG][       Thread-602835][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:17:06,109 [DEBUG][       Thread-602835][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:17:06,109 [DEBUG][       Thread-602835][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:17:06,109 [DEBUG][       Thread-602835][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:17:06,109 [DEBUG][       Thread-602835][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:17:06,109 [DEBUG][       Thread-602835][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:17:06,109 [DEBUG][       Thread-602835][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:17:06,109 [DEBUG][       Thread-602835][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:17:06,109 [DEBUG][       Thread-602835][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:17:06,109 [DEBUG][       Thread-602835][   transport.py][1871] : client lang: <none>
2025-07-01 11:17:06,109 [DEBUG][       Thread-602835][   transport.py][1871] : server lang: <none>
2025-07-01 11:17:06,109 [DEBUG][       Thread-602835][   transport.py][1871] : kex follows: False
2025-07-01 11:17:06,109 [DEBUG][       Thread-602835][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:17:06,109 [DEBUG][       Thread-602835][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:17:06,109 [DEBUG][       Thread-602835][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:17:06,109 [DEBUG][       Thread-602835][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:17:06,109 [DEBUG][       Thread-602835][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:17:06,109 [DEBUG][       Thread-602835][   transport.py][1871] : Compression: none
2025-07-01 11:17:06,109 [DEBUG][       Thread-602835][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:17:06,117 [DEBUG][       Thread-602835][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:17:06,118 [DEBUG][       Thread-602835][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:17:06,118 [DEBUG][       Thread-602835][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:17:06,119 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:17:06,119 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:17:06,120 [DEBUG][       Thread-602835][   transport.py][1871] : userauth is OK
2025-07-01 11:17:06,145 [ INFO][       Thread-602835][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:17:06,146 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:17:06,222 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:17:06,223 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:17:06,788 [DEBUG][       Thread-602835][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:17:06,788 [DEBUG][       Thread-602835][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:17:06,829 [DEBUG][       Thread-602835][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:17:06,829 [DEBUG][       Thread-602835][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:17:06,832 [DEBUG][       Thread-602835][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:17:06,844 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:17:06,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:17:06,846 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:17:06,848 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:17:06,854 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:17:06,855 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:17:06,856 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:17:06,856 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:17:06,856 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.386403 -999.00  +10.30  35.83     55   +1.80 1 2 2 1 1   887    0 9.15 14.46 ----- 35.8 35.8 47.4 43.8 13.1 -21.0 12.6 -20.8 12.2 -20.8 12.7 -20.1
2025-07-01 11:17:06,857 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:17:06,857 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:17:06,857 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.386403
2025-07-01 11:17:06,857 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:17:06,858 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:17:06,858 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:17:06,858 [DEBUG][       Thread-602835][   transport.py][1871] : EOF in transport thread
2025-07-01 11:17:06,858 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:17:06,859 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:17:06,859 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:16:46', tmtdew=9.97, humidity=50.04, cloud=0.0, wind=36.1, temperature=10.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:16:25.219', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:17:06,943 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:17:06,952 [DEBUG][       Thread-602838][   transport.py][1871] : starting thread (client mode): 0x8155720
2025-07-01 11:17:06,952 [DEBUG][       Thread-602838][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:17:06,967 [DEBUG][       Thread-602838][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:17:06,967 [ INFO][       Thread-602838][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:17:06,975 [DEBUG][       Thread-602838][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:17:06,975 [DEBUG][       Thread-602838][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:17:06,975 [DEBUG][       Thread-602838][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:17:06,975 [DEBUG][       Thread-602838][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:17:06,975 [DEBUG][       Thread-602838][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:17:06,975 [DEBUG][       Thread-602838][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:17:06,975 [DEBUG][       Thread-602838][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:17:06,975 [DEBUG][       Thread-602838][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:17:06,975 [DEBUG][       Thread-602838][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:17:06,975 [DEBUG][       Thread-602838][   transport.py][1871] : client lang: <none>
2025-07-01 11:17:06,975 [DEBUG][       Thread-602838][   transport.py][1871] : server lang: <none>
2025-07-01 11:17:06,975 [DEBUG][       Thread-602838][   transport.py][1871] : kex follows: False
2025-07-01 11:17:06,975 [DEBUG][       Thread-602838][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:17:06,975 [DEBUG][       Thread-602838][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:17:06,975 [DEBUG][       Thread-602838][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:17:06,976 [DEBUG][       Thread-602838][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:17:06,976 [DEBUG][       Thread-602838][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:17:06,976 [DEBUG][       Thread-602838][   transport.py][1871] : Compression: none
2025-07-01 11:17:06,976 [DEBUG][       Thread-602838][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:17:07,034 [DEBUG][       Thread-602838][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:17:07,034 [DEBUG][       Thread-602838][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:17:07,035 [DEBUG][       Thread-602838][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:17:07,035 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:17:07,036 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:17:07,090 [DEBUG][       Thread-602838][   transport.py][1871] : userauth is OK
2025-07-01 11:17:07,090 [DEBUG][       Thread-602838][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:17:07,090 [DEBUG][       Thread-602838][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:17:07,090 [DEBUG][       Thread-602838][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:17:07,091 [DEBUG][       Thread-602838][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:17:07,109 [ INFO][       Thread-602838][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:17:07,110 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:17:07,110 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:17:08,147 [DEBUG][       Thread-602838][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:17:08,147 [DEBUG][       Thread-602838][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:17:08,196 [DEBUG][       Thread-602838][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:17:08,196 [DEBUG][       Thread-602838][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:17:08,205 [DEBUG][       Thread-602838][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:17:08,214 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:17:08,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-07-01 11:17:08,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-07-01 11:17:08,232 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:17:08,232 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:17:08,232 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:17:08,240 [DEBUG][       Thread-602838][   transport.py][1871] : EOF in transport thread
2025-07-01 11:17:10,018 [DEBUG][Thread-602840 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:17:18,240 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:17:18,240 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:17:18,240 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:17:18,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-07-01 11:17:18,741 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 16, 46), 9.97, 50.04, 0.0, 36.1, 10.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:17:18,741 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:16:46
2025-07-01 11:17:18,831 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:17:18,837 [DEBUG][       Thread-602841][   transport.py][1871] : starting thread (client mode): 0x82b1ba0
2025-07-01 11:17:18,837 [DEBUG][       Thread-602841][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:17:18,855 [DEBUG][       Thread-602841][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:17:18,855 [ INFO][       Thread-602841][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:17:18,858 [DEBUG][       Thread-602841][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:17:18,859 [DEBUG][       Thread-602841][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:17:18,859 [DEBUG][       Thread-602841][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:17:18,859 [DEBUG][       Thread-602841][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:17:18,859 [DEBUG][       Thread-602841][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:17:18,859 [DEBUG][       Thread-602841][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:17:18,859 [DEBUG][       Thread-602841][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:17:18,859 [DEBUG][       Thread-602841][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:17:18,859 [DEBUG][       Thread-602841][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:17:18,859 [DEBUG][       Thread-602841][   transport.py][1871] : client lang: <none>
2025-07-01 11:17:18,859 [DEBUG][       Thread-602841][   transport.py][1871] : server lang: <none>
2025-07-01 11:17:18,859 [DEBUG][       Thread-602841][   transport.py][1871] : kex follows: False
2025-07-01 11:17:18,859 [DEBUG][       Thread-602841][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:17:18,859 [DEBUG][       Thread-602841][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:17:18,859 [DEBUG][       Thread-602841][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:17:18,859 [DEBUG][       Thread-602841][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:17:18,859 [DEBUG][       Thread-602841][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:17:18,859 [DEBUG][       Thread-602841][   transport.py][1871] : Compression: none
2025-07-01 11:17:18,859 [DEBUG][       Thread-602841][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:17:18,865 [DEBUG][       Thread-602841][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:17:18,865 [DEBUG][       Thread-602841][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:17:18,865 [DEBUG][       Thread-602841][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:17:18,866 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:17:18,866 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:17:18,866 [DEBUG][       Thread-602841][   transport.py][1871] : userauth is OK
2025-07-01 11:17:18,890 [ INFO][       Thread-602841][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:17:18,890 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:17:19,036 [DEBUG][Thread-602843 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:17:19,530 [DEBUG][       Thread-602841][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:17:19,530 [DEBUG][       Thread-602841][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:17:19,572 [DEBUG][       Thread-602841][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:17:19,572 [DEBUG][       Thread-602841][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:17:19,576 [DEBUG][       Thread-602841][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:17:19,585 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:17:19,585 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:17:19,586 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:17:19,587 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:17:19,590 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:17:19,590 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:17:19,591 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:17:19,591 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:17:19,591 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.386750 -999.00  +10.30  37.37     55   +1.80 1 2 2 1 1   887    0 9.06 12.02 ----- 37.4 37.4 35.8 42.5 13.1 -20.6 12.6 -21.3 12.2 -20.8 12.8 -19.8
2025-07-01 11:17:19,591 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:17:19,591 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:17:19,591 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.386750
2025-07-01 11:17:19,591 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:17:19,591 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:17:19,591 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:17:19,591 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:17:19,591 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:17:19,591 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:16:46', tmtdew=9.97, humidity=50.04, cloud=0.0, wind=36.1, temperature=10.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:16:55.200', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:17:19,592 [DEBUG][       Thread-602841][   transport.py][1871] : EOF in transport thread
2025-07-01 11:17:19,665 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:17:19,675 [DEBUG][       Thread-602845][   transport.py][1871] : starting thread (client mode): 0x8a671f0
2025-07-01 11:17:19,676 [DEBUG][       Thread-602845][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:17:19,691 [DEBUG][       Thread-602845][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:17:19,691 [ INFO][       Thread-602845][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:17:19,698 [DEBUG][       Thread-602845][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:17:19,698 [DEBUG][       Thread-602845][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:17:19,698 [DEBUG][       Thread-602845][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:17:19,698 [DEBUG][       Thread-602845][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:17:19,698 [DEBUG][       Thread-602845][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:17:19,698 [DEBUG][       Thread-602845][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:17:19,698 [DEBUG][       Thread-602845][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:17:19,698 [DEBUG][       Thread-602845][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:17:19,698 [DEBUG][       Thread-602845][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:17:19,698 [DEBUG][       Thread-602845][   transport.py][1871] : client lang: <none>
2025-07-01 11:17:19,698 [DEBUG][       Thread-602845][   transport.py][1871] : server lang: <none>
2025-07-01 11:17:19,698 [DEBUG][       Thread-602845][   transport.py][1871] : kex follows: False
2025-07-01 11:17:19,698 [DEBUG][       Thread-602845][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:17:19,698 [DEBUG][       Thread-602845][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:17:19,698 [DEBUG][       Thread-602845][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:17:19,698 [DEBUG][       Thread-602845][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:17:19,698 [DEBUG][       Thread-602845][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:17:19,698 [DEBUG][       Thread-602845][   transport.py][1871] : Compression: none
2025-07-01 11:17:19,698 [DEBUG][       Thread-602845][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:17:19,756 [DEBUG][       Thread-602845][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:17:19,756 [DEBUG][       Thread-602845][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:17:19,756 [DEBUG][       Thread-602845][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:17:19,756 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:17:19,756 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:17:19,814 [DEBUG][       Thread-602845][   transport.py][1871] : userauth is OK
2025-07-01 11:17:19,814 [DEBUG][       Thread-602845][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:17:19,814 [DEBUG][       Thread-602845][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:17:19,814 [DEBUG][       Thread-602845][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:17:19,814 [DEBUG][       Thread-602845][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:17:19,828 [ INFO][       Thread-602845][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:17:19,828 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:17:19,828 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:17:20,861 [DEBUG][       Thread-602845][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:17:20,861 [DEBUG][       Thread-602845][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:17:20,912 [DEBUG][       Thread-602845][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:17:20,912 [DEBUG][       Thread-602845][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:17:20,922 [DEBUG][       Thread-602845][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:17:20,931 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:17:20,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-07-01 11:17:20,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-07-01 11:17:20,949 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:17:20,949 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:17:20,950 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:17:20,957 [DEBUG][       Thread-602845][   transport.py][1871] : EOF in transport thread
2025-07-01 11:17:25,606 [DEBUG][Thread-602847 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:17:28,057 [DEBUG][Thread-602848 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:17:30,960 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:17:30,960 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:17:30,960 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:17:30,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-07-01 11:17:31,446 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 17, 18), 9.88, 50.45, 0.0, 35.2, 10.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:17:31,446 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:17:18
2025-07-01 11:17:31,532 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:17:31,539 [DEBUG][       Thread-602849][   transport.py][1871] : starting thread (client mode): 0x82b3250
2025-07-01 11:17:31,539 [DEBUG][       Thread-602849][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:17:31,558 [DEBUG][       Thread-602849][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:17:31,558 [ INFO][       Thread-602849][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:17:31,561 [DEBUG][       Thread-602849][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:17:31,561 [DEBUG][       Thread-602849][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:17:31,561 [DEBUG][       Thread-602849][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:17:31,561 [DEBUG][       Thread-602849][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:17:31,561 [DEBUG][       Thread-602849][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:17:31,561 [DEBUG][       Thread-602849][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:17:31,561 [DEBUG][       Thread-602849][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:17:31,561 [DEBUG][       Thread-602849][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:17:31,561 [DEBUG][       Thread-602849][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:17:31,561 [DEBUG][       Thread-602849][   transport.py][1871] : client lang: <none>
2025-07-01 11:17:31,561 [DEBUG][       Thread-602849][   transport.py][1871] : server lang: <none>
2025-07-01 11:17:31,561 [DEBUG][       Thread-602849][   transport.py][1871] : kex follows: False
2025-07-01 11:17:31,561 [DEBUG][       Thread-602849][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:17:31,561 [DEBUG][       Thread-602849][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:17:31,561 [DEBUG][       Thread-602849][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:17:31,561 [DEBUG][       Thread-602849][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:17:31,561 [DEBUG][       Thread-602849][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:17:31,561 [DEBUG][       Thread-602849][   transport.py][1871] : Compression: none
2025-07-01 11:17:31,561 [DEBUG][       Thread-602849][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:17:31,578 [DEBUG][       Thread-602849][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:17:31,579 [DEBUG][       Thread-602849][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:17:31,579 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:17:31,579 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:17:31,580 [DEBUG][       Thread-602849][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:17:31,581 [DEBUG][       Thread-602849][   transport.py][1871] : userauth is OK
2025-07-01 11:17:31,607 [ INFO][       Thread-602849][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:17:31,608 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:17:32,255 [DEBUG][       Thread-602849][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:17:32,255 [DEBUG][       Thread-602849][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:17:32,297 [DEBUG][       Thread-602849][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:17:32,297 [DEBUG][       Thread-602849][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:17:32,301 [DEBUG][       Thread-602849][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:17:32,315 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:17:32,316 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:17:32,318 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:17:32,320 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:17:32,325 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:17:32,327 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:17:32,327 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:17:32,328 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:17:32,328 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.386750 -999.00  +10.30  37.37     55   +1.80 1 2 2 1 1   887    0 9.06 12.02 ----- 37.4 37.4 35.8 42.5 13.1 -20.6 12.6 -21.3 12.2 -20.8 12.8 -19.8
2025-07-01 11:17:32,328 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:17:32,328 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:17:32,328 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.386750
2025-07-01 11:17:32,329 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:17:32,329 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:17:32,329 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:17:32,330 [DEBUG][       Thread-602849][   transport.py][1871] : EOF in transport thread
2025-07-01 11:17:32,330 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:17:32,330 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:17:32,331 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:17:18', tmtdew=9.88, humidity=50.45, cloud=0.0, wind=35.2, temperature=10.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:16:55.200', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:17:32,413 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:17:32,423 [DEBUG][       Thread-602852][   transport.py][1871] : starting thread (client mode): 0x83c8460
2025-07-01 11:17:32,423 [DEBUG][       Thread-602852][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:17:32,439 [DEBUG][       Thread-602852][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:17:32,439 [ INFO][       Thread-602852][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:17:32,447 [DEBUG][       Thread-602852][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:17:32,447 [DEBUG][       Thread-602852][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:17:32,447 [DEBUG][       Thread-602852][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:17:32,447 [DEBUG][       Thread-602852][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:17:32,447 [DEBUG][       Thread-602852][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:17:32,447 [DEBUG][       Thread-602852][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:17:32,447 [DEBUG][       Thread-602852][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:17:32,447 [DEBUG][       Thread-602852][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:17:32,447 [DEBUG][       Thread-602852][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:17:32,447 [DEBUG][       Thread-602852][   transport.py][1871] : client lang: <none>
2025-07-01 11:17:32,447 [DEBUG][       Thread-602852][   transport.py][1871] : server lang: <none>
2025-07-01 11:17:32,447 [DEBUG][       Thread-602852][   transport.py][1871] : kex follows: False
2025-07-01 11:17:32,447 [DEBUG][       Thread-602852][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:17:32,447 [DEBUG][       Thread-602852][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:17:32,448 [DEBUG][       Thread-602852][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:17:32,448 [DEBUG][       Thread-602852][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:17:32,448 [DEBUG][       Thread-602852][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:17:32,448 [DEBUG][       Thread-602852][   transport.py][1871] : Compression: none
2025-07-01 11:17:32,448 [DEBUG][       Thread-602852][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:17:32,506 [DEBUG][       Thread-602852][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:17:32,507 [DEBUG][       Thread-602852][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:17:32,507 [DEBUG][       Thread-602852][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:17:32,508 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:17:32,508 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:17:32,562 [DEBUG][       Thread-602852][   transport.py][1871] : userauth is OK
2025-07-01 11:17:32,562 [DEBUG][       Thread-602852][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:17:32,563 [DEBUG][       Thread-602852][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:17:32,563 [DEBUG][       Thread-602852][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:17:32,563 [DEBUG][       Thread-602852][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:17:32,582 [ INFO][       Thread-602852][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:17:32,583 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:17:32,583 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:17:33,579 [DEBUG][       Thread-602852][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:17:33,579 [DEBUG][       Thread-602852][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:17:33,628 [DEBUG][       Thread-602852][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:17:33,628 [DEBUG][       Thread-602852][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:17:33,637 [DEBUG][       Thread-602852][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:17:33,646 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:17: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')
2025-07-01 11:17:33,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-07-01 11:17:33,664 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:17:33,664 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:17:33,665 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:17:33,673 [DEBUG][       Thread-602852][   transport.py][1871] : EOF in transport thread
2025-07-01 11:17:37,075 [DEBUG][Thread-602854 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:17:43,675 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:17:43,676 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:17:43,676 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:17:43,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-07-01 11:17:44,168 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 17, 18), 9.88, 50.45, 0.0, 35.2, 10.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:17:44,168 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:17:18
2025-07-01 11:17:44,253 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:17:44,257 [DEBUG][       Thread-602855][   transport.py][1871] : starting thread (client mode): 0x82b1660
2025-07-01 11:17:44,257 [DEBUG][       Thread-602855][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:17:44,279 [DEBUG][       Thread-602855][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:17:44,279 [ INFO][       Thread-602855][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:17:44,282 [DEBUG][       Thread-602855][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:17:44,282 [DEBUG][       Thread-602855][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:17:44,282 [DEBUG][       Thread-602855][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:17:44,282 [DEBUG][       Thread-602855][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:17:44,282 [DEBUG][       Thread-602855][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:17:44,282 [DEBUG][       Thread-602855][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:17:44,282 [DEBUG][       Thread-602855][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:17:44,282 [DEBUG][       Thread-602855][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:17:44,282 [DEBUG][       Thread-602855][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:17:44,282 [DEBUG][       Thread-602855][   transport.py][1871] : client lang: <none>
2025-07-01 11:17:44,282 [DEBUG][       Thread-602855][   transport.py][1871] : server lang: <none>
2025-07-01 11:17:44,282 [DEBUG][       Thread-602855][   transport.py][1871] : kex follows: False
2025-07-01 11:17:44,282 [DEBUG][       Thread-602855][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:17:44,282 [DEBUG][       Thread-602855][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:17:44,282 [DEBUG][       Thread-602855][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:17:44,282 [DEBUG][       Thread-602855][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:17:44,282 [DEBUG][       Thread-602855][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:17:44,282 [DEBUG][       Thread-602855][   transport.py][1871] : Compression: none
2025-07-01 11:17:44,282 [DEBUG][       Thread-602855][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:17:44,299 [DEBUG][       Thread-602855][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:17:44,299 [DEBUG][       Thread-602855][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:17:44,300 [DEBUG][       Thread-602855][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:17:44,300 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:17:44,300 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:17:44,301 [DEBUG][       Thread-602855][   transport.py][1871] : userauth is OK
2025-07-01 11:17:44,326 [ INFO][       Thread-602855][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:17:44,327 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:17:44,951 [DEBUG][       Thread-602855][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:17:44,951 [DEBUG][       Thread-602855][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:17:44,993 [DEBUG][       Thread-602855][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:17:44,993 [DEBUG][       Thread-602855][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:17:44,996 [DEBUG][       Thread-602855][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:17:45,008 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:17:45,009 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:17:45,011 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:17:45,013 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:17:45,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:17:45,021 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:17:45,021 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:17:45,022 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:17:45,022 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.386750 -999.00  +10.30  37.37     55   +1.80 1 2 2 1 1   887    0 9.06 12.02 ----- 37.4 37.4 35.8 42.5 13.1 -20.6 12.6 -21.3 12.2 -20.8 12.8 -19.8
2025-07-01 11:17:45,022 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:17:45,022 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:17:45,022 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.386750
2025-07-01 11:17:45,023 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:17:45,023 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:17:45,023 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:17:45,023 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:17:45,023 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:17:45,023 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:17:18', tmtdew=9.88, humidity=50.45, cloud=0.0, wind=35.2, temperature=10.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:16:55.200', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:17:45,024 [DEBUG][       Thread-602855][   transport.py][1871] : EOF in transport thread
2025-07-01 11:17:45,107 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:17:45,116 [DEBUG][       Thread-602858][   transport.py][1871] : starting thread (client mode): 0x818fd60
2025-07-01 11:17:45,116 [DEBUG][       Thread-602858][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:17:45,133 [DEBUG][       Thread-602858][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:17:45,133 [ INFO][       Thread-602858][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:17:45,145 [DEBUG][       Thread-602858][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:17:45,145 [DEBUG][       Thread-602858][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:17:45,145 [DEBUG][       Thread-602858][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:17:45,145 [DEBUG][       Thread-602858][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:17:45,145 [DEBUG][       Thread-602858][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:17:45,145 [DEBUG][       Thread-602858][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:17:45,145 [DEBUG][       Thread-602858][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:17:45,145 [DEBUG][       Thread-602858][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:17:45,145 [DEBUG][       Thread-602858][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:17:45,145 [DEBUG][       Thread-602858][   transport.py][1871] : client lang: <none>
2025-07-01 11:17:45,145 [DEBUG][       Thread-602858][   transport.py][1871] : server lang: <none>
2025-07-01 11:17:45,145 [DEBUG][       Thread-602858][   transport.py][1871] : kex follows: False
2025-07-01 11:17:45,145 [DEBUG][       Thread-602858][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:17:45,145 [DEBUG][       Thread-602858][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:17:45,146 [DEBUG][       Thread-602858][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:17:45,146 [DEBUG][       Thread-602858][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:17:45,146 [DEBUG][       Thread-602858][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:17:45,146 [DEBUG][       Thread-602858][   transport.py][1871] : Compression: none
2025-07-01 11:17:45,146 [DEBUG][       Thread-602858][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:17:45,198 [DEBUG][       Thread-602858][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:17:45,199 [DEBUG][       Thread-602858][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:17:45,199 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:17:45,200 [DEBUG][       Thread-602858][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:17:45,201 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:17:45,254 [DEBUG][       Thread-602858][   transport.py][1871] : userauth is OK
2025-07-01 11:17:45,254 [DEBUG][       Thread-602858][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:17:45,254 [DEBUG][       Thread-602858][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:17:45,255 [DEBUG][       Thread-602858][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:17:45,255 [DEBUG][       Thread-602858][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:17:45,273 [ INFO][       Thread-602858][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:17:45,273 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:17:45,274 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:17:46,116 [DEBUG][Thread-602860 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:17:46,251 [DEBUG][       Thread-602858][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:17:46,251 [DEBUG][       Thread-602858][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:17:46,303 [DEBUG][       Thread-602858][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:17:46,304 [DEBUG][       Thread-602858][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:17:46,315 [DEBUG][       Thread-602858][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:17:46,324 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:17:46,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-07-01 11:17:46,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') -> 00000000
2025-07-01 11:17:46,346 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:17:46,347 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:17:46,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:17:46,355 [DEBUG][       Thread-602858][   transport.py][1871] : EOF in transport thread
2025-07-01 11:17:55,137 [DEBUG][Thread-602861 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:17:56,358 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:17:56,358 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:17:56,358 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:17:56,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-07-01 11:17:56,834 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 17, 49), 9.85, 50.54, 0.0, 36.45, 10.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:17:56,834 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:17:49
2025-07-01 11:17:56,919 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:17:56,925 [DEBUG][       Thread-602862][   transport.py][1871] : starting thread (client mode): 0x8172950
2025-07-01 11:17:56,925 [DEBUG][       Thread-602862][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:17:56,947 [DEBUG][       Thread-602862][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:17:56,948 [ INFO][       Thread-602862][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:17:56,951 [DEBUG][       Thread-602862][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:17:56,951 [DEBUG][       Thread-602862][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:17:56,951 [DEBUG][       Thread-602862][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:17:56,951 [DEBUG][       Thread-602862][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:17:56,951 [DEBUG][       Thread-602862][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:17:56,951 [DEBUG][       Thread-602862][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:17:56,951 [DEBUG][       Thread-602862][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:17:56,951 [DEBUG][       Thread-602862][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:17:56,951 [DEBUG][       Thread-602862][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:17:56,952 [DEBUG][       Thread-602862][   transport.py][1871] : client lang: <none>
2025-07-01 11:17:56,952 [DEBUG][       Thread-602862][   transport.py][1871] : server lang: <none>
2025-07-01 11:17:56,952 [DEBUG][       Thread-602862][   transport.py][1871] : kex follows: False
2025-07-01 11:17:56,952 [DEBUG][       Thread-602862][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:17:56,952 [DEBUG][       Thread-602862][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:17:56,952 [DEBUG][       Thread-602862][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:17:56,952 [DEBUG][       Thread-602862][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:17:56,952 [DEBUG][       Thread-602862][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:17:56,952 [DEBUG][       Thread-602862][   transport.py][1871] : Compression: none
2025-07-01 11:17:56,952 [DEBUG][       Thread-602862][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:17:56,969 [DEBUG][       Thread-602862][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:17:56,970 [DEBUG][       Thread-602862][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:17:56,970 [DEBUG][       Thread-602862][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:17:56,970 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:17:56,971 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:17:56,972 [DEBUG][       Thread-602862][   transport.py][1871] : userauth is OK
2025-07-01 11:17:56,999 [ INFO][       Thread-602862][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:17:57,000 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:17:57,693 [DEBUG][       Thread-602862][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:17:57,693 [DEBUG][       Thread-602862][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:17:57,736 [DEBUG][       Thread-602862][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:17:57,737 [DEBUG][       Thread-602862][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:17:57,740 [DEBUG][       Thread-602862][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:17:57,752 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:17:57,752 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:17:57,754 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:17:57,756 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:17:57,762 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:17:57,764 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:17:57,764 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:17:57,764 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:17:57,764 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.387098 -999.00  +10.30  37.02     55   +1.80 1 2 2 1 1   887    0 8.85 9.70 ----- 37.0 37.0 45.2 43.2 13.2 -21.2 12.5 -20.8 12.1 -20.4 12.8 -20.4
2025-07-01 11:17:57,765 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:17:57,765 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:17:57,765 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.387098
2025-07-01 11:17:57,765 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:17:57,766 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:17:57,766 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:17:57,766 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:17:57,766 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:17:57,766 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:17:49', tmtdew=9.85, humidity=50.54, cloud=0.0, wind=36.45, temperature=10.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:17:25.267', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:17:57,766 [DEBUG][       Thread-602862][   transport.py][1871] : EOF in transport thread
2025-07-01 11:17:57,856 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:17:57,867 [DEBUG][       Thread-602865][   transport.py][1871] : starting thread (client mode): 0x81a7430
2025-07-01 11:17:57,867 [DEBUG][       Thread-602865][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:17:57,883 [DEBUG][       Thread-602865][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:17:57,883 [ INFO][       Thread-602865][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:17:57,891 [DEBUG][       Thread-602865][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:17:57,891 [DEBUG][       Thread-602865][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:17:57,891 [DEBUG][       Thread-602865][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:17:57,891 [DEBUG][       Thread-602865][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:17:57,891 [DEBUG][       Thread-602865][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:17:57,891 [DEBUG][       Thread-602865][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:17:57,891 [DEBUG][       Thread-602865][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:17:57,891 [DEBUG][       Thread-602865][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:17:57,891 [DEBUG][       Thread-602865][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:17:57,891 [DEBUG][       Thread-602865][   transport.py][1871] : client lang: <none>
2025-07-01 11:17:57,891 [DEBUG][       Thread-602865][   transport.py][1871] : server lang: <none>
2025-07-01 11:17:57,891 [DEBUG][       Thread-602865][   transport.py][1871] : kex follows: False
2025-07-01 11:17:57,891 [DEBUG][       Thread-602865][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:17:57,891 [DEBUG][       Thread-602865][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:17:57,891 [DEBUG][       Thread-602865][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:17:57,891 [DEBUG][       Thread-602865][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:17:57,891 [DEBUG][       Thread-602865][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:17:57,892 [DEBUG][       Thread-602865][   transport.py][1871] : Compression: none
2025-07-01 11:17:57,892 [DEBUG][       Thread-602865][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:17:57,950 [DEBUG][       Thread-602865][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:17:57,950 [DEBUG][       Thread-602865][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:17:57,951 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:17:57,952 [DEBUG][       Thread-602865][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:17:57,952 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:17:58,006 [DEBUG][       Thread-602865][   transport.py][1871] : userauth is OK
2025-07-01 11:17:58,006 [DEBUG][       Thread-602865][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:17:58,006 [DEBUG][       Thread-602865][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:17:58,006 [DEBUG][       Thread-602865][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:17:58,006 [DEBUG][       Thread-602865][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:17:58,026 [ INFO][       Thread-602865][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:17:58,026 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:17:58,026 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:17:59,019 [DEBUG][       Thread-602865][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:17:59,019 [DEBUG][       Thread-602865][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:17:59,075 [DEBUG][       Thread-602865][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:17:59,075 [DEBUG][       Thread-602865][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:17:59,084 [DEBUG][       Thread-602865][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:17:59,094 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:17:59,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-07-01 11:17:59,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') -> 00000000
2025-07-01 11:17:59,120 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:17:59,120 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:17:59,120 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:17:59,131 [DEBUG][       Thread-602865][   transport.py][1871] : EOF in transport thread
2025-07-01 11:18:04,159 [DEBUG][Thread-602867 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:18:06,360 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:18:06,361 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:18:09,128 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:18:09,128 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:18:09,128 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:18:09,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-07-01 11:18:09,612 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 17, 49), 9.85, 50.54, 0.0, 36.45, 10.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:18:09,612 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:17:49
2025-07-01 11:18:09,698 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:18:09,703 [DEBUG][       Thread-602868][   transport.py][1871] : starting thread (client mode): 0x8106b60
2025-07-01 11:18:09,703 [DEBUG][       Thread-602868][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:18:09,722 [DEBUG][       Thread-602868][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:18:09,722 [ INFO][       Thread-602868][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:18:09,726 [DEBUG][       Thread-602868][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:18:09,726 [DEBUG][       Thread-602868][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:18:09,726 [DEBUG][       Thread-602868][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:18:09,726 [DEBUG][       Thread-602868][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:18:09,726 [DEBUG][       Thread-602868][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:18:09,726 [DEBUG][       Thread-602868][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:18:09,726 [DEBUG][       Thread-602868][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:18:09,726 [DEBUG][       Thread-602868][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:18:09,726 [DEBUG][       Thread-602868][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:18:09,726 [DEBUG][       Thread-602868][   transport.py][1871] : client lang: <none>
2025-07-01 11:18:09,726 [DEBUG][       Thread-602868][   transport.py][1871] : server lang: <none>
2025-07-01 11:18:09,726 [DEBUG][       Thread-602868][   transport.py][1871] : kex follows: False
2025-07-01 11:18:09,726 [DEBUG][       Thread-602868][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:18:09,726 [DEBUG][       Thread-602868][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:18:09,726 [DEBUG][       Thread-602868][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:18:09,726 [DEBUG][       Thread-602868][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:18:09,726 [DEBUG][       Thread-602868][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:18:09,726 [DEBUG][       Thread-602868][   transport.py][1871] : Compression: none
2025-07-01 11:18:09,726 [DEBUG][       Thread-602868][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:18:09,742 [DEBUG][       Thread-602868][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:18:09,743 [DEBUG][       Thread-602868][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:18:09,743 [DEBUG][       Thread-602868][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:18:09,743 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:18:09,744 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:18:09,745 [DEBUG][       Thread-602868][   transport.py][1871] : userauth is OK
2025-07-01 11:18:09,769 [ INFO][       Thread-602868][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:18:09,769 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:18:10,411 [DEBUG][       Thread-602868][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:18:10,411 [DEBUG][       Thread-602868][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:18:10,453 [DEBUG][       Thread-602868][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:18:10,453 [DEBUG][       Thread-602868][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:18:10,456 [DEBUG][       Thread-602868][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:18:10,470 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:18:10,470 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:18:10,472 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:18:10,474 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:18:10,480 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:18:10,482 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:18:10,483 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:18:10,483 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:18:10,483 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.387098 -999.00  +10.30  37.02     55   +1.80 1 2 2 1 1   887    0 8.85 9.70 ----- 37.0 37.0 45.2 43.2 13.2 -21.2 12.5 -20.8 12.1 -20.4 12.8 -20.4
2025-07-01 11:18:10,484 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:18:10,484 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:18:10,484 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.387098
2025-07-01 11:18:10,484 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:18:10,485 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:18:10,485 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:18:10,485 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:18:10,485 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:18:10,485 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:17:49', tmtdew=9.85, humidity=50.54, cloud=0.0, wind=36.45, temperature=10.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:17:25.267', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:18:10,485 [DEBUG][       Thread-602868][   transport.py][1871] : EOF in transport thread
2025-07-01 11:18:10,570 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:18:10,579 [DEBUG][       Thread-602871][   transport.py][1871] : starting thread (client mode): 0x81e7880
2025-07-01 11:18:10,580 [DEBUG][       Thread-602871][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:18:10,595 [DEBUG][       Thread-602871][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:18:10,595 [ INFO][       Thread-602871][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:18:10,604 [DEBUG][       Thread-602871][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:18:10,604 [DEBUG][       Thread-602871][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:18:10,604 [DEBUG][       Thread-602871][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:18:10,604 [DEBUG][       Thread-602871][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:18:10,604 [DEBUG][       Thread-602871][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:18:10,604 [DEBUG][       Thread-602871][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:18:10,604 [DEBUG][       Thread-602871][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:18:10,604 [DEBUG][       Thread-602871][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:18:10,604 [DEBUG][       Thread-602871][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:18:10,604 [DEBUG][       Thread-602871][   transport.py][1871] : client lang: <none>
2025-07-01 11:18:10,604 [DEBUG][       Thread-602871][   transport.py][1871] : server lang: <none>
2025-07-01 11:18:10,604 [DEBUG][       Thread-602871][   transport.py][1871] : kex follows: False
2025-07-01 11:18:10,604 [DEBUG][       Thread-602871][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:18:10,604 [DEBUG][       Thread-602871][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:18:10,604 [DEBUG][       Thread-602871][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:18:10,604 [DEBUG][       Thread-602871][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:18:10,604 [DEBUG][       Thread-602871][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:18:10,604 [DEBUG][       Thread-602871][   transport.py][1871] : Compression: none
2025-07-01 11:18:10,604 [DEBUG][       Thread-602871][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:18:10,662 [DEBUG][       Thread-602871][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:18:10,662 [DEBUG][       Thread-602871][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:18:10,663 [DEBUG][       Thread-602871][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:18:10,663 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:18:10,664 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:18:10,718 [DEBUG][       Thread-602871][   transport.py][1871] : userauth is OK
2025-07-01 11:18:10,718 [DEBUG][       Thread-602871][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:18:10,718 [DEBUG][       Thread-602871][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:18:10,718 [DEBUG][       Thread-602871][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:18:10,719 [DEBUG][       Thread-602871][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:18:10,737 [ INFO][       Thread-602871][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:18:10,737 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:18:10,738 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:18:11,721 [DEBUG][       Thread-602871][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:18:11,721 [DEBUG][       Thread-602871][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:18:11,772 [DEBUG][       Thread-602871][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:18:11,772 [DEBUG][       Thread-602871][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:18:11,782 [DEBUG][       Thread-602871][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:18:11,791 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:18:11,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-07-01 11:18:11,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-07-01 11:18:11,809 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:18:11,810 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:18:11,810 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:18:11,818 [DEBUG][       Thread-602871][   transport.py][1871] : EOF in transport thread
2025-07-01 11:18:13,191 [DEBUG][Thread-602873 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:18:21,821 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:18:21,821 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:18:21,821 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:18:21,824 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 11:18:22,211 [DEBUG][Thread-602874 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:18:22,313 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 17, 49), 9.85, 50.54, 0.0, 36.45, 10.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:18:22,313 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:17:49
2025-07-01 11:18:22,403 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:18:22,407 [DEBUG][       Thread-602875][   transport.py][1871] : starting thread (client mode): 0x818ee30
2025-07-01 11:18:22,407 [DEBUG][       Thread-602875][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:18:22,427 [DEBUG][       Thread-602875][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:18:22,427 [ INFO][       Thread-602875][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:18:22,430 [DEBUG][       Thread-602875][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:18:22,430 [DEBUG][       Thread-602875][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:18:22,430 [DEBUG][       Thread-602875][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:18:22,430 [DEBUG][       Thread-602875][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:18:22,430 [DEBUG][       Thread-602875][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:18:22,430 [DEBUG][       Thread-602875][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:18:22,430 [DEBUG][       Thread-602875][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:18:22,430 [DEBUG][       Thread-602875][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:18:22,430 [DEBUG][       Thread-602875][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:18:22,430 [DEBUG][       Thread-602875][   transport.py][1871] : client lang: <none>
2025-07-01 11:18:22,430 [DEBUG][       Thread-602875][   transport.py][1871] : server lang: <none>
2025-07-01 11:18:22,430 [DEBUG][       Thread-602875][   transport.py][1871] : kex follows: False
2025-07-01 11:18:22,430 [DEBUG][       Thread-602875][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:18:22,430 [DEBUG][       Thread-602875][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:18:22,430 [DEBUG][       Thread-602875][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:18:22,430 [DEBUG][       Thread-602875][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:18:22,430 [DEBUG][       Thread-602875][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:18:22,430 [DEBUG][       Thread-602875][   transport.py][1871] : Compression: none
2025-07-01 11:18:22,430 [DEBUG][       Thread-602875][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:18:22,444 [DEBUG][       Thread-602875][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:18:22,444 [DEBUG][       Thread-602875][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:18:22,444 [DEBUG][       Thread-602875][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:18:22,444 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:18:22,444 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:18:22,444 [DEBUG][       Thread-602875][   transport.py][1871] : userauth is OK
2025-07-01 11:18:22,469 [ INFO][       Thread-602875][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:18:22,469 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:18:23,096 [DEBUG][       Thread-602875][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:18:23,096 [DEBUG][       Thread-602875][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:18:23,140 [DEBUG][       Thread-602875][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:18:23,140 [DEBUG][       Thread-602875][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:18:23,143 [DEBUG][       Thread-602875][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:18:23,154 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:18:23,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:18:23,155 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:18:23,156 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:18:23,159 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:18:23,160 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:18:23,160 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:18:23,160 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:18:23,160 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.387098 -999.00  +10.30  37.02     55   +1.80 1 2 2 1 1   887    0 8.85 9.70 ----- 37.0 37.0 45.2 43.2 13.2 -21.2 12.5 -20.8 12.1 -20.4 12.8 -20.4
2025-07-01 11:18:23,160 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:18:23,160 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:18:23,160 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.387098
2025-07-01 11:18:23,160 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:18:23,160 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:18:23,160 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:18:23,160 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:18:23,160 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:18:23,160 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:17:49', tmtdew=9.85, humidity=50.54, cloud=0.0, wind=36.45, temperature=10.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:17:25.267', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:18:23,161 [DEBUG][       Thread-602875][   transport.py][1871] : EOF in transport thread
2025-07-01 11:18:23,235 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:18:23,246 [DEBUG][       Thread-602878][   transport.py][1871] : starting thread (client mode): 0x82b32e0
2025-07-01 11:18:23,247 [DEBUG][       Thread-602878][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:18:23,268 [DEBUG][       Thread-602878][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:18:23,268 [ INFO][       Thread-602878][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:18:23,275 [DEBUG][       Thread-602878][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:18:23,276 [DEBUG][       Thread-602878][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:18:23,276 [DEBUG][       Thread-602878][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:18:23,276 [DEBUG][       Thread-602878][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:18:23,276 [DEBUG][       Thread-602878][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:18:23,276 [DEBUG][       Thread-602878][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:18:23,276 [DEBUG][       Thread-602878][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:18:23,276 [DEBUG][       Thread-602878][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:18:23,276 [DEBUG][       Thread-602878][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:18:23,276 [DEBUG][       Thread-602878][   transport.py][1871] : client lang: <none>
2025-07-01 11:18:23,276 [DEBUG][       Thread-602878][   transport.py][1871] : server lang: <none>
2025-07-01 11:18:23,276 [DEBUG][       Thread-602878][   transport.py][1871] : kex follows: False
2025-07-01 11:18:23,276 [DEBUG][       Thread-602878][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:18:23,276 [DEBUG][       Thread-602878][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:18:23,276 [DEBUG][       Thread-602878][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:18:23,276 [DEBUG][       Thread-602878][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:18:23,276 [DEBUG][       Thread-602878][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:18:23,276 [DEBUG][       Thread-602878][   transport.py][1871] : Compression: none
2025-07-01 11:18:23,276 [DEBUG][       Thread-602878][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:18:23,336 [DEBUG][       Thread-602878][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:18:23,336 [DEBUG][       Thread-602878][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:18:23,337 [DEBUG][       Thread-602878][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:18:23,337 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:18:23,337 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:18:23,395 [DEBUG][       Thread-602878][   transport.py][1871] : userauth is OK
2025-07-01 11:18:23,395 [DEBUG][       Thread-602878][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:18:23,395 [DEBUG][       Thread-602878][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:18:23,395 [DEBUG][       Thread-602878][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:18:23,395 [DEBUG][       Thread-602878][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:18:23,409 [ INFO][       Thread-602878][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:18:23,409 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:18:23,410 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:18:24,401 [DEBUG][       Thread-602878][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:18:24,401 [DEBUG][       Thread-602878][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:18:24,455 [DEBUG][       Thread-602878][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:18:24,455 [DEBUG][       Thread-602878][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:18:24,464 [DEBUG][       Thread-602878][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:18:24,474 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:18:24,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-07-01 11:18:24,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-07-01 11:18:24,492 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:18:24,492 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:18:24,493 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:18:24,501 [DEBUG][       Thread-602878][   transport.py][1871] : EOF in transport thread
2025-07-01 11:18:25,656 [DEBUG][Thread-602880 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:18:31,232 [DEBUG][Thread-602881 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:18:34,503 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:18:34,503 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:18:34,503 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:18:34,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-07-01 11:18:34,975 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 18, 21), 9.82, 50.66, 0.0, 36.98, 10.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:18:34,975 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:18:21
2025-07-01 11:18:35,060 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:18:35,064 [DEBUG][       Thread-602882][   transport.py][1871] : starting thread (client mode): 0x82b3340
2025-07-01 11:18:35,064 [DEBUG][       Thread-602882][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:18:35,083 [DEBUG][       Thread-602882][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:18:35,083 [ INFO][       Thread-602882][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:18:35,087 [DEBUG][       Thread-602882][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:18:35,087 [DEBUG][       Thread-602882][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:18:35,087 [DEBUG][       Thread-602882][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:18:35,087 [DEBUG][       Thread-602882][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:18:35,087 [DEBUG][       Thread-602882][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:18:35,087 [DEBUG][       Thread-602882][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:18:35,087 [DEBUG][       Thread-602882][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:18:35,087 [DEBUG][       Thread-602882][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:18:35,087 [DEBUG][       Thread-602882][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:18:35,087 [DEBUG][       Thread-602882][   transport.py][1871] : client lang: <none>
2025-07-01 11:18:35,087 [DEBUG][       Thread-602882][   transport.py][1871] : server lang: <none>
2025-07-01 11:18:35,087 [DEBUG][       Thread-602882][   transport.py][1871] : kex follows: False
2025-07-01 11:18:35,087 [DEBUG][       Thread-602882][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:18:35,087 [DEBUG][       Thread-602882][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:18:35,087 [DEBUG][       Thread-602882][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:18:35,087 [DEBUG][       Thread-602882][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:18:35,087 [DEBUG][       Thread-602882][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:18:35,087 [DEBUG][       Thread-602882][   transport.py][1871] : Compression: none
2025-07-01 11:18:35,087 [DEBUG][       Thread-602882][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:18:35,103 [DEBUG][       Thread-602882][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:18:35,104 [DEBUG][       Thread-602882][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:18:35,104 [DEBUG][       Thread-602882][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:18:35,104 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:18:35,105 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:18:35,106 [DEBUG][       Thread-602882][   transport.py][1871] : userauth is OK
2025-07-01 11:18:35,131 [ INFO][       Thread-602882][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:18:35,131 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:18:35,742 [DEBUG][       Thread-602882][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:18:35,742 [DEBUG][       Thread-602882][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:18:35,785 [DEBUG][       Thread-602882][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:18:35,785 [DEBUG][       Thread-602882][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:18:35,788 [DEBUG][       Thread-602882][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:18:35,801 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:18:35,801 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:18:35,803 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:18:35,805 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:18:35,811 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:18:35,812 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:18:35,813 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:18:35,813 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:18:35,813 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.387445 -999.00  +10.30  41.61     55   +1.80 1 2 2 1 1   887    0 8.94 8.43 ----- 41.6 41.6 47.2 45.2 13.2 -21.3 12.5 -21.1 12.1 -20.3 12.8 -20.4
2025-07-01 11:18:35,813 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:18:35,814 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:18:35,814 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.387445
2025-07-01 11:18:35,814 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:18:35,815 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:18:35,815 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:18:35,815 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:18:35,815 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:18:35,815 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:18:21', tmtdew=9.82, humidity=50.66, cloud=0.0, wind=36.98, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:17:55.248', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:18:35,815 [DEBUG][       Thread-602882][   transport.py][1871] : EOF in transport thread
2025-07-01 11:18:35,899 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:18:35,908 [DEBUG][       Thread-602885][   transport.py][1871] : starting thread (client mode): 0x81e4610
2025-07-01 11:18:35,908 [DEBUG][       Thread-602885][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:18:35,929 [DEBUG][       Thread-602885][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:18:35,929 [ INFO][       Thread-602885][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:18:35,937 [DEBUG][       Thread-602885][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:18:35,937 [DEBUG][       Thread-602885][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:18:35,937 [DEBUG][       Thread-602885][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:18:35,937 [DEBUG][       Thread-602885][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:18:35,937 [DEBUG][       Thread-602885][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:18:35,937 [DEBUG][       Thread-602885][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:18:35,937 [DEBUG][       Thread-602885][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:18:35,937 [DEBUG][       Thread-602885][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:18:35,937 [DEBUG][       Thread-602885][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:18:35,938 [DEBUG][       Thread-602885][   transport.py][1871] : client lang: <none>
2025-07-01 11:18:35,938 [DEBUG][       Thread-602885][   transport.py][1871] : server lang: <none>
2025-07-01 11:18:35,938 [DEBUG][       Thread-602885][   transport.py][1871] : kex follows: False
2025-07-01 11:18:35,938 [DEBUG][       Thread-602885][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:18:35,938 [DEBUG][       Thread-602885][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:18:35,938 [DEBUG][       Thread-602885][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:18:35,938 [DEBUG][       Thread-602885][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:18:35,938 [DEBUG][       Thread-602885][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:18:35,938 [DEBUG][       Thread-602885][   transport.py][1871] : Compression: none
2025-07-01 11:18:35,938 [DEBUG][       Thread-602885][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:18:35,994 [DEBUG][       Thread-602885][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:18:35,994 [DEBUG][       Thread-602885][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:18:35,995 [DEBUG][       Thread-602885][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:18:35,995 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:18:35,996 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:18:36,050 [DEBUG][       Thread-602885][   transport.py][1871] : userauth is OK
2025-07-01 11:18:36,050 [DEBUG][       Thread-602885][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:18:36,050 [DEBUG][       Thread-602885][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:18:36,051 [DEBUG][       Thread-602885][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:18:36,051 [DEBUG][       Thread-602885][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:18:36,075 [ INFO][       Thread-602885][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:18:36,075 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:18:36,076 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:18:37,068 [DEBUG][       Thread-602885][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:18:37,068 [DEBUG][       Thread-602885][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:18:37,116 [DEBUG][       Thread-602885][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:18:37,116 [DEBUG][       Thread-602885][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:18:37,125 [DEBUG][       Thread-602885][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:18:37,135 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:18:37,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-07-01 11:18:37,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-07-01 11:18:37,153 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:18:37,153 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:18:37,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:18:37,161 [DEBUG][       Thread-602885][   transport.py][1871] : EOF in transport thread
2025-07-01 11:18:40,253 [DEBUG][Thread-602887 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:18:47,164 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:18:47,164 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:18:47,164 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:18:47,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-07-01 11:18:47,633 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 18, 21), 9.82, 50.66, 0.0, 36.98, 10.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:18:47,633 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:18:21
2025-07-01 11:18:47,719 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:18:47,723 [DEBUG][       Thread-602888][   transport.py][1871] : starting thread (client mode): 0x82b3340
2025-07-01 11:18:47,723 [DEBUG][       Thread-602888][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:18:47,744 [DEBUG][       Thread-602888][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:18:47,744 [ INFO][       Thread-602888][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:18:47,747 [DEBUG][       Thread-602888][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:18:47,747 [DEBUG][       Thread-602888][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:18:47,747 [DEBUG][       Thread-602888][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:18:47,747 [DEBUG][       Thread-602888][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:18:47,747 [DEBUG][       Thread-602888][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:18:47,747 [DEBUG][       Thread-602888][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:18:47,747 [DEBUG][       Thread-602888][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:18:47,747 [DEBUG][       Thread-602888][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:18:47,747 [DEBUG][       Thread-602888][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:18:47,747 [DEBUG][       Thread-602888][   transport.py][1871] : client lang: <none>
2025-07-01 11:18:47,747 [DEBUG][       Thread-602888][   transport.py][1871] : server lang: <none>
2025-07-01 11:18:47,747 [DEBUG][       Thread-602888][   transport.py][1871] : kex follows: False
2025-07-01 11:18:47,747 [DEBUG][       Thread-602888][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:18:47,747 [DEBUG][       Thread-602888][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:18:47,747 [DEBUG][       Thread-602888][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:18:47,747 [DEBUG][       Thread-602888][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:18:47,747 [DEBUG][       Thread-602888][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:18:47,747 [DEBUG][       Thread-602888][   transport.py][1871] : Compression: none
2025-07-01 11:18:47,747 [DEBUG][       Thread-602888][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:18:47,762 [DEBUG][       Thread-602888][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:18:47,763 [DEBUG][       Thread-602888][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:18:47,763 [DEBUG][       Thread-602888][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:18:47,763 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:18:47,763 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:18:47,764 [DEBUG][       Thread-602888][   transport.py][1871] : userauth is OK
2025-07-01 11:18:47,787 [ INFO][       Thread-602888][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:18:47,788 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:18:48,421 [DEBUG][       Thread-602888][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:18:48,421 [DEBUG][       Thread-602888][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:18:48,465 [DEBUG][       Thread-602888][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:18:48,465 [DEBUG][       Thread-602888][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:18:48,469 [DEBUG][       Thread-602888][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:18:48,478 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:18:48,479 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:18:48,481 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:18:48,483 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:18:48,488 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:18:48,490 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:18:48,490 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:18:48,491 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:18:48,491 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.387445 -999.00  +10.30  41.61     55   +1.80 1 2 2 1 1   887    0 8.94 8.43 ----- 41.6 41.6 47.2 45.2 13.2 -21.3 12.5 -21.1 12.1 -20.3 12.8 -20.4
2025-07-01 11:18:48,491 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:18:48,491 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:18:48,491 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.387445
2025-07-01 11:18:48,492 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:18:48,492 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:18:48,493 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:18:48,493 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:18:48,493 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:18:48,493 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:18:21', tmtdew=9.82, humidity=50.66, cloud=0.0, wind=36.98, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:17:55.248', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:18:48,494 [DEBUG][       Thread-602888][   transport.py][1871] : EOF in transport thread
2025-07-01 11:18:48,577 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:18:48,586 [DEBUG][       Thread-602891][   transport.py][1871] : starting thread (client mode): 0x81074f0
2025-07-01 11:18:48,586 [DEBUG][       Thread-602891][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:18:48,601 [DEBUG][       Thread-602891][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:18:48,601 [ INFO][       Thread-602891][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:18:48,608 [DEBUG][       Thread-602891][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:18:48,609 [DEBUG][       Thread-602891][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:18:48,609 [DEBUG][       Thread-602891][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:18:48,609 [DEBUG][       Thread-602891][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:18:48,609 [DEBUG][       Thread-602891][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:18:48,609 [DEBUG][       Thread-602891][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:18:48,609 [DEBUG][       Thread-602891][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:18:48,609 [DEBUG][       Thread-602891][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:18:48,609 [DEBUG][       Thread-602891][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:18:48,609 [DEBUG][       Thread-602891][   transport.py][1871] : client lang: <none>
2025-07-01 11:18:48,609 [DEBUG][       Thread-602891][   transport.py][1871] : server lang: <none>
2025-07-01 11:18:48,609 [DEBUG][       Thread-602891][   transport.py][1871] : kex follows: False
2025-07-01 11:18:48,609 [DEBUG][       Thread-602891][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:18:48,609 [DEBUG][       Thread-602891][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:18:48,609 [DEBUG][       Thread-602891][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:18:48,609 [DEBUG][       Thread-602891][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:18:48,609 [DEBUG][       Thread-602891][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:18:48,609 [DEBUG][       Thread-602891][   transport.py][1871] : Compression: none
2025-07-01 11:18:48,609 [DEBUG][       Thread-602891][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:18:48,670 [DEBUG][       Thread-602891][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:18:48,671 [DEBUG][       Thread-602891][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:18:48,671 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:18:48,672 [DEBUG][       Thread-602891][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:18:48,672 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:18:48,726 [DEBUG][       Thread-602891][   transport.py][1871] : userauth is OK
2025-07-01 11:18:48,727 [DEBUG][       Thread-602891][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:18:48,727 [DEBUG][       Thread-602891][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:18:48,727 [DEBUG][       Thread-602891][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:18:48,727 [DEBUG][       Thread-602891][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:18:48,745 [ INFO][       Thread-602891][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:18:48,746 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:18:48,746 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:18:49,292 [DEBUG][Thread-602893 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:18:49,747 [DEBUG][       Thread-602891][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:18:49,747 [DEBUG][       Thread-602891][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:18:49,796 [DEBUG][       Thread-602891][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:18:49,796 [DEBUG][       Thread-602891][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:18:49,805 [DEBUG][       Thread-602891][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:18:49,816 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:18:49,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')
2025-07-01 11:18:49,832 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 11:18:49,842 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:18:49,842 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:18:49,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:18:49,851 [DEBUG][       Thread-602891][   transport.py][1871] : EOF in transport thread
2025-07-01 11:18:58,314 [DEBUG][Thread-602894 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:18:59,853 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:18:59,854 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:18:59,854 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:18:59,856 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 11:19:00,326 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 18, 53), 9.82, 50.66, 0.0, 34.88, 10.59, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:19:00,326 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:18:53
2025-07-01 11:19:00,412 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:19:00,416 [DEBUG][       Thread-602895][   transport.py][1871] : starting thread (client mode): 0x82b1ab0
2025-07-01 11:19:00,416 [DEBUG][       Thread-602895][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:19:00,437 [DEBUG][       Thread-602895][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:19:00,437 [ INFO][       Thread-602895][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:19:00,440 [DEBUG][       Thread-602895][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:19:00,440 [DEBUG][       Thread-602895][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:19:00,440 [DEBUG][       Thread-602895][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:19:00,440 [DEBUG][       Thread-602895][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:19:00,440 [DEBUG][       Thread-602895][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:19:00,440 [DEBUG][       Thread-602895][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:19:00,440 [DEBUG][       Thread-602895][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:19:00,440 [DEBUG][       Thread-602895][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:19:00,440 [DEBUG][       Thread-602895][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:19:00,440 [DEBUG][       Thread-602895][   transport.py][1871] : client lang: <none>
2025-07-01 11:19:00,440 [DEBUG][       Thread-602895][   transport.py][1871] : server lang: <none>
2025-07-01 11:19:00,440 [DEBUG][       Thread-602895][   transport.py][1871] : kex follows: False
2025-07-01 11:19:00,440 [DEBUG][       Thread-602895][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:19:00,440 [DEBUG][       Thread-602895][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:19:00,440 [DEBUG][       Thread-602895][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:19:00,440 [DEBUG][       Thread-602895][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:19:00,440 [DEBUG][       Thread-602895][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:19:00,440 [DEBUG][       Thread-602895][   transport.py][1871] : Compression: none
2025-07-01 11:19:00,441 [DEBUG][       Thread-602895][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:19:00,451 [DEBUG][       Thread-602895][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:19:00,451 [DEBUG][       Thread-602895][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:19:00,452 [DEBUG][       Thread-602895][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:19:00,452 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:19:00,452 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:19:00,453 [DEBUG][       Thread-602895][   transport.py][1871] : userauth is OK
2025-07-01 11:19:00,466 [ INFO][       Thread-602895][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:19:00,467 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:19:01,101 [DEBUG][       Thread-602895][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:19:01,101 [DEBUG][       Thread-602895][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:19:01,145 [DEBUG][       Thread-602895][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:19:01,145 [DEBUG][       Thread-602895][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:19:01,147 [DEBUG][       Thread-602895][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:19:01,157 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:19:01,157 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:19:01,159 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:19:01,160 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:19:01,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:19:01,168 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:19:01,168 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:19:01,169 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:19:01,169 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.388139 -999.00  +10.30  31.40     56   +1.90 1 2 2 1 1   887    0 8.75 3.93 ----- 31.4 31.4 46.0 39.9 13.2 -21.8 12.4 -21.1 12.1 -20.4 12.7 -20.0
2025-07-01 11:19:01,169 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:19:01,169 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:19:01,169 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.388139
2025-07-01 11:19:01,170 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:19:01,170 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:19:01,171 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:19:01,171 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:19:01,171 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:19:01,171 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:18:53', tmtdew=9.82, humidity=50.66, cloud=0.0, wind=34.88, temperature=10.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:18:55.210', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:19:01,172 [DEBUG][       Thread-602895][   transport.py][1871] : EOF in transport thread
2025-07-01 11:19:01,255 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:19:01,264 [DEBUG][       Thread-602898][   transport.py][1871] : starting thread (client mode): 0x81a7f10
2025-07-01 11:19:01,264 [DEBUG][       Thread-602898][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:19:01,279 [DEBUG][       Thread-602898][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:19:01,280 [ INFO][       Thread-602898][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:19:01,287 [DEBUG][       Thread-602898][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:19:01,288 [DEBUG][       Thread-602898][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:19:01,288 [DEBUG][       Thread-602898][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:19:01,288 [DEBUG][       Thread-602898][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:19:01,288 [DEBUG][       Thread-602898][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:19:01,288 [DEBUG][       Thread-602898][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:19:01,288 [DEBUG][       Thread-602898][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:19:01,288 [DEBUG][       Thread-602898][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:19:01,288 [DEBUG][       Thread-602898][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:19:01,288 [DEBUG][       Thread-602898][   transport.py][1871] : client lang: <none>
2025-07-01 11:19:01,288 [DEBUG][       Thread-602898][   transport.py][1871] : server lang: <none>
2025-07-01 11:19:01,288 [DEBUG][       Thread-602898][   transport.py][1871] : kex follows: False
2025-07-01 11:19:01,288 [DEBUG][       Thread-602898][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:19:01,288 [DEBUG][       Thread-602898][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:19:01,288 [DEBUG][       Thread-602898][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:19:01,288 [DEBUG][       Thread-602898][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:19:01,288 [DEBUG][       Thread-602898][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:19:01,288 [DEBUG][       Thread-602898][   transport.py][1871] : Compression: none
2025-07-01 11:19:01,288 [DEBUG][       Thread-602898][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:19:01,355 [DEBUG][       Thread-602898][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:19:01,355 [DEBUG][       Thread-602898][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:19:01,356 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:19:01,357 [DEBUG][       Thread-602898][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:19:01,357 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:19:01,418 [DEBUG][       Thread-602898][   transport.py][1871] : userauth is OK
2025-07-01 11:19:01,418 [DEBUG][       Thread-602898][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:19:01,419 [DEBUG][       Thread-602898][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:19:01,419 [DEBUG][       Thread-602898][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:19:01,419 [DEBUG][       Thread-602898][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:19:01,437 [ INFO][       Thread-602898][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:19:01,437 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:19:01,438 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:19:02,421 [DEBUG][       Thread-602898][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:19:02,421 [DEBUG][       Thread-602898][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:19:02,472 [DEBUG][       Thread-602898][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:19:02,472 [DEBUG][       Thread-602898][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:19:02,482 [DEBUG][       Thread-602898][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:19:02,491 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:19:02,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-07-01 11:19:02,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-07-01 11:19:02,509 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:19:02,509 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:19:02,510 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:19:02,518 [DEBUG][       Thread-602898][   transport.py][1871] : EOF in transport thread
2025-07-01 11:19:06,497 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:19:06,498 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:19:07,337 [DEBUG][Thread-602900 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:19:12,520 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:19:12,521 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:19:12,521 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:19:12,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-07-01 11:19:13,004 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 18, 53), 9.82, 50.66, 0.0, 34.88, 10.59, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:19:13,004 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:18:53
2025-07-01 11:19:13,089 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:19:13,093 [DEBUG][       Thread-602901][   transport.py][1871] : starting thread (client mode): 0x82b16c0
2025-07-01 11:19:13,093 [DEBUG][       Thread-602901][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:19:13,113 [DEBUG][       Thread-602901][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:19:13,114 [ INFO][       Thread-602901][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:19:13,117 [DEBUG][       Thread-602901][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:19:13,117 [DEBUG][       Thread-602901][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:19:13,117 [DEBUG][       Thread-602901][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:19:13,117 [DEBUG][       Thread-602901][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:19:13,117 [DEBUG][       Thread-602901][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:19:13,117 [DEBUG][       Thread-602901][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:19:13,117 [DEBUG][       Thread-602901][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:19:13,117 [DEBUG][       Thread-602901][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:19:13,117 [DEBUG][       Thread-602901][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:19:13,117 [DEBUG][       Thread-602901][   transport.py][1871] : client lang: <none>
2025-07-01 11:19:13,117 [DEBUG][       Thread-602901][   transport.py][1871] : server lang: <none>
2025-07-01 11:19:13,117 [DEBUG][       Thread-602901][   transport.py][1871] : kex follows: False
2025-07-01 11:19:13,117 [DEBUG][       Thread-602901][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:19:13,117 [DEBUG][       Thread-602901][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:19:13,117 [DEBUG][       Thread-602901][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:19:13,117 [DEBUG][       Thread-602901][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:19:13,117 [DEBUG][       Thread-602901][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:19:13,117 [DEBUG][       Thread-602901][   transport.py][1871] : Compression: none
2025-07-01 11:19:13,117 [DEBUG][       Thread-602901][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:19:13,137 [DEBUG][       Thread-602901][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:19:13,137 [DEBUG][       Thread-602901][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:19:13,138 [DEBUG][       Thread-602901][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:19:13,138 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:19:13,138 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:19:13,139 [DEBUG][       Thread-602901][   transport.py][1871] : userauth is OK
2025-07-01 11:19:13,164 [ INFO][       Thread-602901][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:19:13,165 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:19:13,808 [DEBUG][       Thread-602901][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:19:13,808 [DEBUG][       Thread-602901][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:19:13,853 [DEBUG][       Thread-602901][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:19:13,853 [DEBUG][       Thread-602901][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:19:13,856 [DEBUG][       Thread-602901][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:19:13,869 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:19:13,869 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:19:13,871 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:19:13,873 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:19:13,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:19:13,881 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:19:13,881 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:19:13,882 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:19:13,882 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.388139 -999.00  +10.30  31.40     56   +1.90 1 2 2 1 1   887    0 8.75 3.93 ----- 31.4 31.4 46.0 39.9 13.2 -21.8 12.4 -21.1 12.1 -20.4 12.7 -20.0
2025-07-01 11:19:13,882 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:19:13,882 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:19:13,882 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.388139
2025-07-01 11:19:13,883 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:19:13,883 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:19:13,884 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:19:13,884 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:19:13,884 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:19:13,884 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:18:53', tmtdew=9.82, humidity=50.66, cloud=0.0, wind=34.88, temperature=10.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:18:55.210', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:19:13,884 [DEBUG][       Thread-602901][   transport.py][1871] : EOF in transport thread
2025-07-01 11:19:13,963 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:19:13,973 [DEBUG][       Thread-602904][   transport.py][1871] : starting thread (client mode): 0x81e6500
2025-07-01 11:19:13,973 [DEBUG][       Thread-602904][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:19:13,991 [DEBUG][       Thread-602904][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:19:13,992 [ INFO][       Thread-602904][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:19:14,004 [DEBUG][       Thread-602904][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:19:14,005 [DEBUG][       Thread-602904][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:19:14,005 [DEBUG][       Thread-602904][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:19:14,005 [DEBUG][       Thread-602904][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:19:14,005 [DEBUG][       Thread-602904][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:19:14,005 [DEBUG][       Thread-602904][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:19:14,005 [DEBUG][       Thread-602904][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:19:14,005 [DEBUG][       Thread-602904][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:19:14,005 [DEBUG][       Thread-602904][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:19:14,005 [DEBUG][       Thread-602904][   transport.py][1871] : client lang: <none>
2025-07-01 11:19:14,005 [DEBUG][       Thread-602904][   transport.py][1871] : server lang: <none>
2025-07-01 11:19:14,005 [DEBUG][       Thread-602904][   transport.py][1871] : kex follows: False
2025-07-01 11:19:14,005 [DEBUG][       Thread-602904][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:19:14,005 [DEBUG][       Thread-602904][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:19:14,005 [DEBUG][       Thread-602904][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:19:14,006 [DEBUG][       Thread-602904][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:19:14,006 [DEBUG][       Thread-602904][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:19:14,006 [DEBUG][       Thread-602904][   transport.py][1871] : Compression: none
2025-07-01 11:19:14,006 [DEBUG][       Thread-602904][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:19:14,062 [DEBUG][       Thread-602904][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:19:14,062 [DEBUG][       Thread-602904][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:19:14,063 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:19:14,063 [DEBUG][       Thread-602904][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:19:14,064 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:19:14,118 [DEBUG][       Thread-602904][   transport.py][1871] : userauth is OK
2025-07-01 11:19:14,118 [DEBUG][       Thread-602904][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:19:14,119 [DEBUG][       Thread-602904][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:19:14,119 [DEBUG][       Thread-602904][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:19:14,119 [DEBUG][       Thread-602904][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:19:14,137 [ INFO][       Thread-602904][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:19:14,138 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:19:14,138 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:19:15,129 [DEBUG][       Thread-602904][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:19:15,130 [DEBUG][       Thread-602904][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:19:15,180 [DEBUG][       Thread-602904][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:19:15,180 [DEBUG][       Thread-602904][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:19:15,190 [DEBUG][       Thread-602904][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:19:15,199 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:19:15,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-07-01 11:19:15,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-07-01 11:19:15,217 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:19:15,217 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:19:15,218 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:19:15,225 [DEBUG][       Thread-602904][   transport.py][1871] : EOF in transport thread
2025-07-01 11:19:16,374 [DEBUG][Thread-602906 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:19:25,228 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:19:25,228 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:19:25,228 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:19:25,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-07-01 11:19:25,396 [DEBUG][Thread-602907 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:19:25,700 [DEBUG][Thread-602908 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:19:25,714 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 18, 53), 9.82, 50.66, 0.0, 34.88, 10.59, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:19:25,714 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:18:53
2025-07-01 11:19:25,803 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:19:25,809 [DEBUG][       Thread-602909][   transport.py][1871] : starting thread (client mode): 0x82b3880
2025-07-01 11:19:25,809 [DEBUG][       Thread-602909][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:19:25,830 [DEBUG][       Thread-602909][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:19:25,830 [ INFO][       Thread-602909][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:19:25,833 [DEBUG][       Thread-602909][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:19:25,833 [DEBUG][       Thread-602909][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:19:25,833 [DEBUG][       Thread-602909][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:19:25,833 [DEBUG][       Thread-602909][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:19:25,833 [DEBUG][       Thread-602909][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:19:25,834 [DEBUG][       Thread-602909][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:19:25,834 [DEBUG][       Thread-602909][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:19:25,834 [DEBUG][       Thread-602909][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:19:25,834 [DEBUG][       Thread-602909][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:19:25,834 [DEBUG][       Thread-602909][   transport.py][1871] : client lang: <none>
2025-07-01 11:19:25,834 [DEBUG][       Thread-602909][   transport.py][1871] : server lang: <none>
2025-07-01 11:19:25,834 [DEBUG][       Thread-602909][   transport.py][1871] : kex follows: False
2025-07-01 11:19:25,834 [DEBUG][       Thread-602909][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:19:25,834 [DEBUG][       Thread-602909][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:19:25,834 [DEBUG][       Thread-602909][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:19:25,834 [DEBUG][       Thread-602909][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:19:25,834 [DEBUG][       Thread-602909][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:19:25,834 [DEBUG][       Thread-602909][   transport.py][1871] : Compression: none
2025-07-01 11:19:25,834 [DEBUG][       Thread-602909][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:19:25,848 [DEBUG][       Thread-602909][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:19:25,848 [DEBUG][       Thread-602909][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:19:25,848 [DEBUG][       Thread-602909][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:19:25,848 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:19:25,848 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:19:25,849 [DEBUG][       Thread-602909][   transport.py][1871] : userauth is OK
2025-07-01 11:19:25,873 [ INFO][       Thread-602909][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:19:25,874 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:19:26,525 [DEBUG][       Thread-602909][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:19:26,525 [DEBUG][       Thread-602909][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:19:26,568 [DEBUG][       Thread-602909][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:19:26,568 [DEBUG][       Thread-602909][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:19:26,571 [DEBUG][       Thread-602909][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:19:26,576 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:19:26,577 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:19:26,578 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:19:26,579 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:19:26,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:19:26,582 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:19:26,582 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:19:26,582 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:19:26,583 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.388139 -999.00  +10.30  31.40     56   +1.90 1 2 2 1 1   887    0 8.75 3.93 ----- 31.4 31.4 46.0 39.9 13.2 -21.8 12.4 -21.1 12.1 -20.4 12.7 -20.0
2025-07-01 11:19:26,583 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:19:26,583 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:19:26,583 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.388139
2025-07-01 11:19:26,583 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:19:26,583 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:19:26,583 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:19:26,583 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:19:26,583 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:19:26,583 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:18:53', tmtdew=9.82, humidity=50.66, cloud=0.0, wind=34.88, temperature=10.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:18:55.210', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:19:26,583 [DEBUG][       Thread-602909][   transport.py][1871] : EOF in transport thread
2025-07-01 11:19:26,672 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:19:26,683 [DEBUG][       Thread-602912][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 11:19:26,684 [DEBUG][       Thread-602912][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:19:26,698 [DEBUG][       Thread-602912][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:19:26,698 [ INFO][       Thread-602912][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:19:26,705 [DEBUG][       Thread-602912][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:19:26,705 [DEBUG][       Thread-602912][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:19:26,705 [DEBUG][       Thread-602912][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:19:26,705 [DEBUG][       Thread-602912][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:19:26,705 [DEBUG][       Thread-602912][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:19:26,705 [DEBUG][       Thread-602912][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:19:26,705 [DEBUG][       Thread-602912][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:19:26,705 [DEBUG][       Thread-602912][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:19:26,705 [DEBUG][       Thread-602912][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:19:26,705 [DEBUG][       Thread-602912][   transport.py][1871] : client lang: <none>
2025-07-01 11:19:26,705 [DEBUG][       Thread-602912][   transport.py][1871] : server lang: <none>
2025-07-01 11:19:26,705 [DEBUG][       Thread-602912][   transport.py][1871] : kex follows: False
2025-07-01 11:19:26,705 [DEBUG][       Thread-602912][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:19:26,705 [DEBUG][       Thread-602912][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:19:26,705 [DEBUG][       Thread-602912][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:19:26,705 [DEBUG][       Thread-602912][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:19:26,705 [DEBUG][       Thread-602912][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:19:26,705 [DEBUG][       Thread-602912][   transport.py][1871] : Compression: none
2025-07-01 11:19:26,705 [DEBUG][       Thread-602912][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:19:26,760 [DEBUG][       Thread-602912][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:19:26,760 [DEBUG][       Thread-602912][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:19:26,760 [DEBUG][       Thread-602912][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:19:26,760 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:19:26,761 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:19:26,817 [DEBUG][       Thread-602912][   transport.py][1871] : userauth is OK
2025-07-01 11:19:26,817 [DEBUG][       Thread-602912][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:19:26,817 [DEBUG][       Thread-602912][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:19:26,817 [DEBUG][       Thread-602912][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:19:26,817 [DEBUG][       Thread-602912][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:19:26,832 [ INFO][       Thread-602912][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:19:26,832 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:19:26,832 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:19:27,877 [DEBUG][       Thread-602912][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:19:27,878 [DEBUG][       Thread-602912][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:19:27,928 [DEBUG][       Thread-602912][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:19:27,928 [DEBUG][       Thread-602912][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:19:27,937 [DEBUG][       Thread-602912][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:19:27,946 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:19:27,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-07-01 11:19:27,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-07-01 11:19:27,964 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:19:27,965 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:19:27,965 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:19:27,973 [DEBUG][       Thread-602912][   transport.py][1871] : EOF in transport thread
2025-07-01 11:19:34,418 [DEBUG][Thread-602914 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:19:37,972 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:19:37,972 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:19:37,972 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:19:37,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-07-01 11:19:38,457 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 19, 25), 9.86, 50.53, 0.0, 37.62, 10.59, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:19:38,457 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:19:25
2025-07-01 11:19:38,541 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:19:38,546 [DEBUG][       Thread-602915][   transport.py][1871] : starting thread (client mode): 0x81715a0
2025-07-01 11:19:38,546 [DEBUG][       Thread-602915][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:19:38,571 [DEBUG][       Thread-602915][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:19:38,571 [ INFO][       Thread-602915][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:19:38,575 [DEBUG][       Thread-602915][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:19:38,575 [DEBUG][       Thread-602915][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:19:38,575 [DEBUG][       Thread-602915][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:19:38,575 [DEBUG][       Thread-602915][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:19:38,575 [DEBUG][       Thread-602915][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:19:38,575 [DEBUG][       Thread-602915][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:19:38,575 [DEBUG][       Thread-602915][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:19:38,575 [DEBUG][       Thread-602915][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:19:38,575 [DEBUG][       Thread-602915][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:19:38,575 [DEBUG][       Thread-602915][   transport.py][1871] : client lang: <none>
2025-07-01 11:19:38,575 [DEBUG][       Thread-602915][   transport.py][1871] : server lang: <none>
2025-07-01 11:19:38,575 [DEBUG][       Thread-602915][   transport.py][1871] : kex follows: False
2025-07-01 11:19:38,575 [DEBUG][       Thread-602915][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:19:38,575 [DEBUG][       Thread-602915][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:19:38,575 [DEBUG][       Thread-602915][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:19:38,575 [DEBUG][       Thread-602915][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:19:38,575 [DEBUG][       Thread-602915][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:19:38,576 [DEBUG][       Thread-602915][   transport.py][1871] : Compression: none
2025-07-01 11:19:38,576 [DEBUG][       Thread-602915][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:19:38,594 [DEBUG][       Thread-602915][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:19:38,594 [DEBUG][       Thread-602915][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:19:38,595 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:19:38,595 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:19:38,596 [DEBUG][       Thread-602915][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:19:38,596 [DEBUG][       Thread-602915][   transport.py][1871] : userauth is OK
2025-07-01 11:19:38,620 [ INFO][       Thread-602915][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:19:38,621 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:19:39,260 [DEBUG][       Thread-602915][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:19:39,260 [DEBUG][       Thread-602915][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:19:39,301 [DEBUG][       Thread-602915][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:19:39,301 [DEBUG][       Thread-602915][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:19:39,304 [DEBUG][       Thread-602915][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:19:39,313 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:19:39,313 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:19:39,315 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:19:39,316 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:19:39,320 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:19:39,322 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:19:39,322 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:19:39,323 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:19:39,323 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.388487 -999.00  +10.30  32.99     56   +2.00 1 2 2 1 1   887    0 8.62 1.29 ----- 33.0 33.0 35.2 40.3 13.2 -21.8 12.5 -21.7 12.0 -21.0 12.7 -20.1
2025-07-01 11:19:39,323 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:19:39,323 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:19:39,323 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.388487
2025-07-01 11:19:39,323 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:19:39,324 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:19:39,324 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:19:39,324 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:19:39,324 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:19:39,324 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:19:25', tmtdew=9.86, humidity=50.53, cloud=0.0, wind=37.62, temperature=10.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:19:25.277', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:19:39,325 [DEBUG][       Thread-602915][   transport.py][1871] : EOF in transport thread
2025-07-01 11:19:39,408 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:19:39,417 [DEBUG][       Thread-602918][   transport.py][1871] : starting thread (client mode): 0x8107430
2025-07-01 11:19:39,417 [DEBUG][       Thread-602918][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:19:39,434 [DEBUG][       Thread-602918][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:19:39,434 [ INFO][       Thread-602918][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:19:39,441 [DEBUG][       Thread-602918][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:19:39,442 [DEBUG][       Thread-602918][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:19:39,442 [DEBUG][       Thread-602918][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:19:39,442 [DEBUG][       Thread-602918][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:19:39,442 [DEBUG][       Thread-602918][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:19:39,442 [DEBUG][       Thread-602918][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:19:39,442 [DEBUG][       Thread-602918][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:19:39,442 [DEBUG][       Thread-602918][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:19:39,442 [DEBUG][       Thread-602918][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:19:39,442 [DEBUG][       Thread-602918][   transport.py][1871] : client lang: <none>
2025-07-01 11:19:39,442 [DEBUG][       Thread-602918][   transport.py][1871] : server lang: <none>
2025-07-01 11:19:39,442 [DEBUG][       Thread-602918][   transport.py][1871] : kex follows: False
2025-07-01 11:19:39,442 [DEBUG][       Thread-602918][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:19:39,442 [DEBUG][       Thread-602918][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:19:39,442 [DEBUG][       Thread-602918][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:19:39,442 [DEBUG][       Thread-602918][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:19:39,442 [DEBUG][       Thread-602918][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:19:39,442 [DEBUG][       Thread-602918][   transport.py][1871] : Compression: none
2025-07-01 11:19:39,442 [DEBUG][       Thread-602918][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:19:39,498 [DEBUG][       Thread-602918][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:19:39,498 [DEBUG][       Thread-602918][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:19:39,499 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:19:39,500 [DEBUG][       Thread-602918][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:19:39,500 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:19:39,554 [DEBUG][       Thread-602918][   transport.py][1871] : userauth is OK
2025-07-01 11:19:39,554 [DEBUG][       Thread-602918][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:19:39,554 [DEBUG][       Thread-602918][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:19:39,555 [DEBUG][       Thread-602918][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:19:39,555 [DEBUG][       Thread-602918][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:19:39,573 [ INFO][       Thread-602918][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:19:39,574 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:19:39,574 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:19:40,579 [DEBUG][       Thread-602918][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:19:40,579 [DEBUG][       Thread-602918][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:19:40,628 [DEBUG][       Thread-602918][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:19:40,628 [DEBUG][       Thread-602918][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:19:40,637 [DEBUG][       Thread-602918][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:19:40,646 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:19:40,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')
2025-07-01 11:19:40,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-07-01 11:19:40,664 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:19:40,664 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:19:40,665 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:19:40,673 [DEBUG][       Thread-602918][   transport.py][1871] : EOF in transport thread
2025-07-01 11:19:43,442 [DEBUG][Thread-602920 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:19:50,675 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:19:50,676 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:19:50,676 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:19:50,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-07-01 11:19:51,160 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 19, 25), 9.86, 50.53, 0.0, 37.62, 10.59, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:19:51,160 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:19:25
2025-07-01 11:19:51,245 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:19:51,251 [DEBUG][       Thread-602921][   transport.py][1871] : starting thread (client mode): 0x82b0eb0
2025-07-01 11:19:51,251 [DEBUG][       Thread-602921][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:19:51,273 [DEBUG][       Thread-602921][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:19:51,273 [ INFO][       Thread-602921][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:19:51,276 [DEBUG][       Thread-602921][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:19:51,276 [DEBUG][       Thread-602921][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:19:51,276 [DEBUG][       Thread-602921][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:19:51,276 [DEBUG][       Thread-602921][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:19:51,277 [DEBUG][       Thread-602921][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:19:51,277 [DEBUG][       Thread-602921][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:19:51,277 [DEBUG][       Thread-602921][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:19:51,277 [DEBUG][       Thread-602921][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:19:51,277 [DEBUG][       Thread-602921][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:19:51,277 [DEBUG][       Thread-602921][   transport.py][1871] : client lang: <none>
2025-07-01 11:19:51,277 [DEBUG][       Thread-602921][   transport.py][1871] : server lang: <none>
2025-07-01 11:19:51,277 [DEBUG][       Thread-602921][   transport.py][1871] : kex follows: False
2025-07-01 11:19:51,277 [DEBUG][       Thread-602921][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:19:51,277 [DEBUG][       Thread-602921][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:19:51,277 [DEBUG][       Thread-602921][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:19:51,277 [DEBUG][       Thread-602921][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:19:51,277 [DEBUG][       Thread-602921][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:19:51,277 [DEBUG][       Thread-602921][   transport.py][1871] : Compression: none
2025-07-01 11:19:51,277 [DEBUG][       Thread-602921][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:19:51,295 [DEBUG][       Thread-602921][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:19:51,295 [DEBUG][       Thread-602921][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:19:51,296 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:19:51,296 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:19:51,296 [DEBUG][       Thread-602921][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:19:51,297 [DEBUG][       Thread-602921][   transport.py][1871] : userauth is OK
2025-07-01 11:19:51,321 [ INFO][       Thread-602921][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:19:51,322 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:19:51,958 [DEBUG][       Thread-602921][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:19:51,958 [DEBUG][       Thread-602921][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:19:52,001 [DEBUG][       Thread-602921][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:19:52,001 [DEBUG][       Thread-602921][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:19:52,004 [DEBUG][       Thread-602921][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:19:52,015 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:19:52,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:19:52,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:19:52,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:19:52,024 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:19:52,026 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:19:52,026 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:19:52,027 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:19:52,027 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.388487 -999.00  +10.30  32.99     56   +2.00 1 2 2 1 1   887    0 8.62 1.29 ----- 33.0 33.0 35.2 40.3 13.2 -21.8 12.5 -21.7 12.0 -21.0 12.7 -20.1
2025-07-01 11:19:52,027 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:19:52,027 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:19:52,027 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.388487
2025-07-01 11:19:52,027 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:19:52,028 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:19:52,028 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:19:52,028 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:19:52,028 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:19:52,028 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:19:25', tmtdew=9.86, humidity=50.53, cloud=0.0, wind=37.62, temperature=10.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:19:25.277', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:19:52,029 [DEBUG][       Thread-602921][   transport.py][1871] : EOF in transport thread
2025-07-01 11:19:52,112 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:19:52,123 [DEBUG][       Thread-602924][   transport.py][1871] : starting thread (client mode): 0x818d810
2025-07-01 11:19:52,123 [DEBUG][       Thread-602924][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:19:52,143 [DEBUG][       Thread-602924][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:19:52,143 [ INFO][       Thread-602924][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:19:52,151 [DEBUG][       Thread-602924][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:19:52,151 [DEBUG][       Thread-602924][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:19:52,151 [DEBUG][       Thread-602924][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:19:52,151 [DEBUG][       Thread-602924][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:19:52,151 [DEBUG][       Thread-602924][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:19:52,151 [DEBUG][       Thread-602924][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:19:52,151 [DEBUG][       Thread-602924][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:19:52,152 [DEBUG][       Thread-602924][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:19:52,152 [DEBUG][       Thread-602924][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:19:52,152 [DEBUG][       Thread-602924][   transport.py][1871] : client lang: <none>
2025-07-01 11:19:52,152 [DEBUG][       Thread-602924][   transport.py][1871] : server lang: <none>
2025-07-01 11:19:52,152 [DEBUG][       Thread-602924][   transport.py][1871] : kex follows: False
2025-07-01 11:19:52,152 [DEBUG][       Thread-602924][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:19:52,152 [DEBUG][       Thread-602924][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:19:52,152 [DEBUG][       Thread-602924][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:19:52,152 [DEBUG][       Thread-602924][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:19:52,152 [DEBUG][       Thread-602924][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:19:52,152 [DEBUG][       Thread-602924][   transport.py][1871] : Compression: none
2025-07-01 11:19:52,152 [DEBUG][       Thread-602924][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:19:52,209 [DEBUG][       Thread-602924][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:19:52,210 [DEBUG][       Thread-602924][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:19:52,210 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:19:52,211 [DEBUG][       Thread-602924][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:19:52,211 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:19:52,266 [DEBUG][       Thread-602924][   transport.py][1871] : userauth is OK
2025-07-01 11:19:52,266 [DEBUG][       Thread-602924][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:19:52,266 [DEBUG][       Thread-602924][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:19:52,266 [DEBUG][       Thread-602924][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:19:52,266 [DEBUG][       Thread-602924][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:19:52,285 [ INFO][       Thread-602924][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:19:52,286 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:19:52,286 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:19:52,472 [DEBUG][Thread-602926 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:19:53,277 [DEBUG][       Thread-602924][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:19:53,277 [DEBUG][       Thread-602924][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:19:53,327 [DEBUG][       Thread-602924][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:19:53,327 [DEBUG][       Thread-602924][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:19:53,336 [DEBUG][       Thread-602924][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:19:53,344 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:19: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')
2025-07-01 11:19:53,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-07-01 11:19:53,360 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:19:53,360 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:19:53,360 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:19:53,368 [DEBUG][       Thread-602924][   transport.py][1871] : EOF in transport thread
2025-07-01 11:20:01,491 [DEBUG][Thread-602927 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:20:03,368 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:20:03,368 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:20:03,368 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:20:03,369 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 11:20:03,850 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 19, 56), 9.86, 50.54, 0.0, 34.97, 10.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:20:03,851 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:19:56
2025-07-01 11:20:03,940 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:20:03,943 [DEBUG][       Thread-602928][   transport.py][1871] : starting thread (client mode): 0x75ab1f0
2025-07-01 11:20:03,943 [DEBUG][       Thread-602928][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:20:03,964 [DEBUG][       Thread-602928][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:20:03,964 [ INFO][       Thread-602928][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:20:03,967 [DEBUG][       Thread-602928][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:20:03,967 [DEBUG][       Thread-602928][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:20:03,967 [DEBUG][       Thread-602928][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:20:03,967 [DEBUG][       Thread-602928][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:20:03,967 [DEBUG][       Thread-602928][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:20:03,967 [DEBUG][       Thread-602928][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:20:03,967 [DEBUG][       Thread-602928][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:20:03,967 [DEBUG][       Thread-602928][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:20:03,967 [DEBUG][       Thread-602928][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:20:03,968 [DEBUG][       Thread-602928][   transport.py][1871] : client lang: <none>
2025-07-01 11:20:03,968 [DEBUG][       Thread-602928][   transport.py][1871] : server lang: <none>
2025-07-01 11:20:03,968 [DEBUG][       Thread-602928][   transport.py][1871] : kex follows: False
2025-07-01 11:20:03,968 [DEBUG][       Thread-602928][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:20:03,968 [DEBUG][       Thread-602928][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:20:03,968 [DEBUG][       Thread-602928][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:20:03,968 [DEBUG][       Thread-602928][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:20:03,968 [DEBUG][       Thread-602928][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:20:03,968 [DEBUG][       Thread-602928][   transport.py][1871] : Compression: none
2025-07-01 11:20:03,968 [DEBUG][       Thread-602928][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:20:03,983 [DEBUG][       Thread-602928][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:20:03,983 [DEBUG][       Thread-602928][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:20:03,983 [DEBUG][       Thread-602928][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:20:03,984 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:20:03,984 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:20:03,984 [DEBUG][       Thread-602928][   transport.py][1871] : userauth is OK
2025-07-01 11:20:04,008 [ INFO][       Thread-602928][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:20:04,009 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:20:04,660 [DEBUG][       Thread-602928][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:20:04,660 [DEBUG][       Thread-602928][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:20:04,708 [DEBUG][       Thread-602928][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:20:04,708 [DEBUG][       Thread-602928][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:20:04,710 [DEBUG][       Thread-602928][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:20:04,724 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:20:04,724 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:20:04,725 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:20:04,726 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:20:04,729 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:20:04,730 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:20:04,730 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:20:04,730 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:20:04,730 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.388487 -999.00  +10.30  32.99     56   +2.00 1 2 2 1 1   887    0 8.62 1.29 ----- 33.0 33.0 35.2 40.3 13.2 -21.8 12.5 -21.7 12.0 -21.0 12.7 -20.1
2025-07-01 11:20:04,730 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:20:04,730 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:20:04,730 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.388487
2025-07-01 11:20:04,730 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:20:04,730 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:20:04,730 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:20:04,730 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:20:04,730 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:20:04,730 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:19:56', tmtdew=9.86, humidity=50.54, cloud=0.0, wind=34.97, temperature=10.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:19:25.277', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:20:04,731 [DEBUG][       Thread-602928][   transport.py][1871] : EOF in transport thread
2025-07-01 11:20:04,803 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:20:04,812 [DEBUG][       Thread-602931][   transport.py][1871] : starting thread (client mode): 0x8156e00
2025-07-01 11:20:04,813 [DEBUG][       Thread-602931][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:20:04,828 [DEBUG][       Thread-602931][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:20:04,828 [ INFO][       Thread-602931][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:20:04,835 [DEBUG][       Thread-602931][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:20:04,835 [DEBUG][       Thread-602931][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:20:04,835 [DEBUG][       Thread-602931][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:20:04,835 [DEBUG][       Thread-602931][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:20:04,835 [DEBUG][       Thread-602931][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:20:04,835 [DEBUG][       Thread-602931][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:20:04,835 [DEBUG][       Thread-602931][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:20:04,835 [DEBUG][       Thread-602931][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:20:04,835 [DEBUG][       Thread-602931][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:20:04,835 [DEBUG][       Thread-602931][   transport.py][1871] : client lang: <none>
2025-07-01 11:20:04,835 [DEBUG][       Thread-602931][   transport.py][1871] : server lang: <none>
2025-07-01 11:20:04,835 [DEBUG][       Thread-602931][   transport.py][1871] : kex follows: False
2025-07-01 11:20:04,835 [DEBUG][       Thread-602931][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:20:04,835 [DEBUG][       Thread-602931][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:20:04,835 [DEBUG][       Thread-602931][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:20:04,835 [DEBUG][       Thread-602931][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:20:04,835 [DEBUG][       Thread-602931][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:20:04,835 [DEBUG][       Thread-602931][   transport.py][1871] : Compression: none
2025-07-01 11:20:04,835 [DEBUG][       Thread-602931][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:20:04,898 [DEBUG][       Thread-602931][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:20:04,898 [DEBUG][       Thread-602931][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:20:04,898 [DEBUG][       Thread-602931][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:20:04,899 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:20:04,899 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:20:04,954 [DEBUG][       Thread-602931][   transport.py][1871] : userauth is OK
2025-07-01 11:20:04,954 [DEBUG][       Thread-602931][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:20:04,954 [DEBUG][       Thread-602931][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:20:04,954 [DEBUG][       Thread-602931][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:20:04,954 [DEBUG][       Thread-602931][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:20:04,973 [ INFO][       Thread-602931][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:20:04,973 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:20:04,973 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:20:06,006 [DEBUG][       Thread-602931][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:20:06,006 [DEBUG][       Thread-602931][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:20:06,056 [DEBUG][       Thread-602931][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:20:06,056 [DEBUG][       Thread-602931][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:20:06,065 [DEBUG][       Thread-602931][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:20:06,076 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:20:06,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')
2025-07-01 11:20:06,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-07-01 11:20:06,094 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:20:06,094 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:20:06,095 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:20:06,103 [DEBUG][       Thread-602931][   transport.py][1871] : EOF in transport thread
2025-07-01 11:20:06,637 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:20:06,638 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:20:10,513 [DEBUG][Thread-602933 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:20:16,105 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:20:16,105 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:20:16,105 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:20:16,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-07-01 11:20:16,578 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 19, 56), 9.86, 50.54, 0.0, 34.97, 10.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:20:16,578 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:19:56
2025-07-01 11:20:16,672 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:20:16,677 [DEBUG][       Thread-602934][   transport.py][1871] : starting thread (client mode): 0x8155c30
2025-07-01 11:20:16,677 [DEBUG][       Thread-602934][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:20:16,699 [DEBUG][       Thread-602934][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:20:16,699 [ INFO][       Thread-602934][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:20:16,700 [DEBUG][       Thread-602934][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:20:16,701 [DEBUG][       Thread-602934][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:20:16,701 [DEBUG][       Thread-602934][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:20:16,701 [DEBUG][       Thread-602934][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:20:16,701 [DEBUG][       Thread-602934][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:20:16,701 [DEBUG][       Thread-602934][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:20:16,701 [DEBUG][       Thread-602934][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:20:16,701 [DEBUG][       Thread-602934][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:20:16,701 [DEBUG][       Thread-602934][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:20:16,701 [DEBUG][       Thread-602934][   transport.py][1871] : client lang: <none>
2025-07-01 11:20:16,701 [DEBUG][       Thread-602934][   transport.py][1871] : server lang: <none>
2025-07-01 11:20:16,701 [DEBUG][       Thread-602934][   transport.py][1871] : kex follows: False
2025-07-01 11:20:16,701 [DEBUG][       Thread-602934][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:20:16,701 [DEBUG][       Thread-602934][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:20:16,701 [DEBUG][       Thread-602934][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:20:16,701 [DEBUG][       Thread-602934][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:20:16,701 [DEBUG][       Thread-602934][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:20:16,701 [DEBUG][       Thread-602934][   transport.py][1871] : Compression: none
2025-07-01 11:20:16,701 [DEBUG][       Thread-602934][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:20:16,709 [DEBUG][       Thread-602934][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:20:16,710 [DEBUG][       Thread-602934][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:20:16,710 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:20:16,710 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:20:16,711 [DEBUG][       Thread-602934][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:20:16,711 [DEBUG][       Thread-602934][   transport.py][1871] : userauth is OK
2025-07-01 11:20:16,735 [ INFO][       Thread-602934][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:20:16,736 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:20:17,336 [DEBUG][       Thread-602934][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:20:17,336 [DEBUG][       Thread-602934][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:20:17,377 [DEBUG][       Thread-602934][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:20:17,377 [DEBUG][       Thread-602934][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:20:17,380 [DEBUG][       Thread-602934][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:20:17,392 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:20:17,392 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:20:17,394 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:20:17,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:20:17,401 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:20:17,403 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:20:17,403 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:20:17,403 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:20:17,404 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.388834 -999.00  +10.40  33.44     55   +1.90 1 2 2 1 1   887    0 8.75 -1.05 ----- 33.4 33.4 30.6 42.7 13.1 -21.6 12.5 -21.5 12.1 -20.4 12.7 -20.5
2025-07-01 11:20:17,404 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:20:17,404 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:20:17,404 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.388834
2025-07-01 11:20:17,404 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:20:17,405 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:20:17,405 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:20:17,405 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:20:17,405 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:20:17,405 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:19:56', tmtdew=9.86, humidity=50.54, cloud=0.0, wind=34.97, temperature=10.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:19:55.258', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:20:17,406 [DEBUG][       Thread-602934][   transport.py][1871] : EOF in transport thread
2025-07-01 11:20:17,489 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:20:17,501 [DEBUG][       Thread-602937][   transport.py][1871] : starting thread (client mode): 0x75a8d30
2025-07-01 11:20:17,501 [DEBUG][       Thread-602937][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:20:17,516 [DEBUG][       Thread-602937][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:20:17,516 [ INFO][       Thread-602937][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:20:17,523 [DEBUG][       Thread-602937][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:20:17,524 [DEBUG][       Thread-602937][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:20:17,524 [DEBUG][       Thread-602937][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:20:17,524 [DEBUG][       Thread-602937][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:20:17,524 [DEBUG][       Thread-602937][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:20:17,524 [DEBUG][       Thread-602937][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:20:17,524 [DEBUG][       Thread-602937][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:20:17,524 [DEBUG][       Thread-602937][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:20:17,524 [DEBUG][       Thread-602937][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:20:17,524 [DEBUG][       Thread-602937][   transport.py][1871] : client lang: <none>
2025-07-01 11:20:17,524 [DEBUG][       Thread-602937][   transport.py][1871] : server lang: <none>
2025-07-01 11:20:17,524 [DEBUG][       Thread-602937][   transport.py][1871] : kex follows: False
2025-07-01 11:20:17,524 [DEBUG][       Thread-602937][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:20:17,524 [DEBUG][       Thread-602937][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:20:17,524 [DEBUG][       Thread-602937][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:20:17,524 [DEBUG][       Thread-602937][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:20:17,524 [DEBUG][       Thread-602937][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:20:17,524 [DEBUG][       Thread-602937][   transport.py][1871] : Compression: none
2025-07-01 11:20:17,524 [DEBUG][       Thread-602937][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:20:17,586 [DEBUG][       Thread-602937][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:20:17,587 [DEBUG][       Thread-602937][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:20:17,587 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:20:17,588 [DEBUG][       Thread-602937][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:20:17,589 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:20:17,641 [DEBUG][       Thread-602937][   transport.py][1871] : userauth is OK
2025-07-01 11:20:17,642 [DEBUG][       Thread-602937][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:20:17,642 [DEBUG][       Thread-602937][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:20:17,642 [DEBUG][       Thread-602937][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:20:17,642 [DEBUG][       Thread-602937][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:20:17,656 [ INFO][       Thread-602937][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:20:17,656 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:20:17,657 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:20:18,634 [DEBUG][       Thread-602937][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:20:18,634 [DEBUG][       Thread-602937][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:20:18,684 [DEBUG][       Thread-602937][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:20:18,684 [DEBUG][       Thread-602937][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:20:18,695 [DEBUG][       Thread-602937][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:20:18,707 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:20:18,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-07-01 11:20:18,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-07-01 11:20:18,725 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:20:18,725 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:20:18,726 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:20:18,734 [DEBUG][       Thread-602937][   transport.py][1871] : EOF in transport thread
2025-07-01 11:20:19,558 [DEBUG][Thread-602939 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:20:25,755 [DEBUG][Thread-602940 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:20:28,582 [DEBUG][Thread-602941 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:20:28,736 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:20:28,737 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:20:28,737 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:20:28,740 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 11:20:29,206 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 19, 56), 9.86, 50.54, 0.0, 34.97, 10.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:20:29,206 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:19:56
2025-07-01 11:20:29,292 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:20:29,295 [DEBUG][       Thread-602942][   transport.py][1871] : starting thread (client mode): 0x82b1570
2025-07-01 11:20:29,295 [DEBUG][       Thread-602942][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:20:29,315 [DEBUG][       Thread-602942][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:20:29,315 [ INFO][       Thread-602942][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:20:29,319 [DEBUG][       Thread-602942][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:20:29,319 [DEBUG][       Thread-602942][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:20:29,319 [DEBUG][       Thread-602942][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:20:29,319 [DEBUG][       Thread-602942][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:20:29,319 [DEBUG][       Thread-602942][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:20:29,319 [DEBUG][       Thread-602942][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:20:29,319 [DEBUG][       Thread-602942][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:20:29,319 [DEBUG][       Thread-602942][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:20:29,319 [DEBUG][       Thread-602942][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:20:29,319 [DEBUG][       Thread-602942][   transport.py][1871] : client lang: <none>
2025-07-01 11:20:29,319 [DEBUG][       Thread-602942][   transport.py][1871] : server lang: <none>
2025-07-01 11:20:29,319 [DEBUG][       Thread-602942][   transport.py][1871] : kex follows: False
2025-07-01 11:20:29,319 [DEBUG][       Thread-602942][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:20:29,319 [DEBUG][       Thread-602942][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:20:29,319 [DEBUG][       Thread-602942][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:20:29,319 [DEBUG][       Thread-602942][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:20:29,319 [DEBUG][       Thread-602942][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:20:29,319 [DEBUG][       Thread-602942][   transport.py][1871] : Compression: none
2025-07-01 11:20:29,319 [DEBUG][       Thread-602942][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:20:29,332 [DEBUG][       Thread-602942][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:20:29,332 [DEBUG][       Thread-602942][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:20:29,333 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:20:29,333 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:20:29,333 [DEBUG][       Thread-602942][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:20:29,376 [DEBUG][       Thread-602942][   transport.py][1871] : userauth is OK
2025-07-01 11:20:29,400 [ INFO][       Thread-602942][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:20:29,400 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:20:30,071 [DEBUG][       Thread-602942][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:20:30,071 [DEBUG][       Thread-602942][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:20:30,113 [DEBUG][       Thread-602942][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:20:30,113 [DEBUG][       Thread-602942][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:20:30,115 [DEBUG][       Thread-602942][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:20:30,129 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:20:30,129 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:20:30,130 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:20:30,132 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:20:30,135 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:20:30,136 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:20:30,136 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:20:30,136 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:20:30,136 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.388834 -999.00  +10.40  33.44     55   +1.90 1 2 2 1 1   887    0 8.75 -1.05 ----- 33.4 33.4 30.6 42.7 13.1 -21.6 12.5 -21.5 12.1 -20.4 12.7 -20.5
2025-07-01 11:20:30,136 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:20:30,136 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:20:30,136 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.388834
2025-07-01 11:20:30,136 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:20:30,136 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:20:30,136 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:20:30,136 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:20:30,136 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:20:30,137 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:19:56', tmtdew=9.86, humidity=50.54, cloud=0.0, wind=34.97, temperature=10.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:19:55.258', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:20:30,137 [DEBUG][       Thread-602942][   transport.py][1871] : EOF in transport thread
2025-07-01 11:20:30,211 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:20:30,220 [DEBUG][       Thread-602945][   transport.py][1871] : starting thread (client mode): 0x8107760
2025-07-01 11:20:30,220 [DEBUG][       Thread-602945][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:20:30,235 [DEBUG][       Thread-602945][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:20:30,235 [ INFO][       Thread-602945][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:20:30,243 [DEBUG][       Thread-602945][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:20:30,243 [DEBUG][       Thread-602945][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:20:30,243 [DEBUG][       Thread-602945][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:20:30,243 [DEBUG][       Thread-602945][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:20:30,243 [DEBUG][       Thread-602945][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:20:30,243 [DEBUG][       Thread-602945][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:20:30,243 [DEBUG][       Thread-602945][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:20:30,243 [DEBUG][       Thread-602945][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:20:30,243 [DEBUG][       Thread-602945][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:20:30,243 [DEBUG][       Thread-602945][   transport.py][1871] : client lang: <none>
2025-07-01 11:20:30,243 [DEBUG][       Thread-602945][   transport.py][1871] : server lang: <none>
2025-07-01 11:20:30,243 [DEBUG][       Thread-602945][   transport.py][1871] : kex follows: False
2025-07-01 11:20:30,243 [DEBUG][       Thread-602945][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:20:30,243 [DEBUG][       Thread-602945][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:20:30,243 [DEBUG][       Thread-602945][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:20:30,243 [DEBUG][       Thread-602945][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:20:30,243 [DEBUG][       Thread-602945][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:20:30,243 [DEBUG][       Thread-602945][   transport.py][1871] : Compression: none
2025-07-01 11:20:30,243 [DEBUG][       Thread-602945][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:20:30,304 [DEBUG][       Thread-602945][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:20:30,304 [DEBUG][       Thread-602945][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:20:30,304 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:20:30,304 [DEBUG][       Thread-602945][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:20:30,304 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:20:30,361 [DEBUG][       Thread-602945][   transport.py][1871] : userauth is OK
2025-07-01 11:20:30,361 [DEBUG][       Thread-602945][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:20:30,361 [DEBUG][       Thread-602945][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:20:30,361 [DEBUG][       Thread-602945][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:20:30,361 [DEBUG][       Thread-602945][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:20:30,375 [ INFO][       Thread-602945][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:20:30,375 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:20:30,375 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:20:31,378 [DEBUG][       Thread-602945][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:20:31,378 [DEBUG][       Thread-602945][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:20:31,428 [DEBUG][       Thread-602945][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:20:31,428 [DEBUG][       Thread-602945][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:20:31,437 [DEBUG][       Thread-602945][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:20:31,446 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:20:31,446 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 11:20:31,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-07-01 11:20:31,464 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:20:31,464 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:20:31,464 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:20:31,472 [DEBUG][       Thread-602945][   transport.py][1871] : EOF in transport thread
2025-07-01 11:20:37,603 [DEBUG][Thread-602947 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:20:41,475 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:20:41,475 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:20:41,475 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:20:41,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-07-01 11:20:41,972 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 20, 28), 9.81, 50.72, 0.0, 36.93, 10.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:20:41,972 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:20:28
2025-07-01 11:20:42,058 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:20:42,061 [DEBUG][       Thread-602948][   transport.py][1871] : starting thread (client mode): 0x82b15d0
2025-07-01 11:20:42,061 [DEBUG][       Thread-602948][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:20:42,082 [DEBUG][       Thread-602948][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:20:42,082 [ INFO][       Thread-602948][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:20:42,083 [DEBUG][       Thread-602948][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:20:42,083 [DEBUG][       Thread-602948][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:20:42,083 [DEBUG][       Thread-602948][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:20:42,083 [DEBUG][       Thread-602948][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:20:42,083 [DEBUG][       Thread-602948][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:20:42,083 [DEBUG][       Thread-602948][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:20:42,083 [DEBUG][       Thread-602948][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:20:42,084 [DEBUG][       Thread-602948][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:20:42,084 [DEBUG][       Thread-602948][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:20:42,084 [DEBUG][       Thread-602948][   transport.py][1871] : client lang: <none>
2025-07-01 11:20:42,084 [DEBUG][       Thread-602948][   transport.py][1871] : server lang: <none>
2025-07-01 11:20:42,084 [DEBUG][       Thread-602948][   transport.py][1871] : kex follows: False
2025-07-01 11:20:42,084 [DEBUG][       Thread-602948][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:20:42,084 [DEBUG][       Thread-602948][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:20:42,084 [DEBUG][       Thread-602948][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:20:42,084 [DEBUG][       Thread-602948][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:20:42,084 [DEBUG][       Thread-602948][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:20:42,084 [DEBUG][       Thread-602948][   transport.py][1871] : Compression: none
2025-07-01 11:20:42,084 [DEBUG][       Thread-602948][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:20:42,092 [DEBUG][       Thread-602948][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:20:42,092 [DEBUG][       Thread-602948][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:20:42,092 [DEBUG][       Thread-602948][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:20:42,092 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:20:42,092 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:20:42,093 [DEBUG][       Thread-602948][   transport.py][1871] : userauth is OK
2025-07-01 11:20:42,106 [ INFO][       Thread-602948][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:20:42,106 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:20:42,715 [DEBUG][       Thread-602948][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:20:42,715 [DEBUG][       Thread-602948][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:20:42,756 [DEBUG][       Thread-602948][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:20:42,756 [DEBUG][       Thread-602948][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:20:42,758 [DEBUG][       Thread-602948][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:20:42,771 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:20:42,771 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:20:42,772 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:20:42,773 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:20:42,776 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:20:42,777 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:20:42,777 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:20:42,777 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:20:42,777 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.389181 -999.00  +10.40  40.80     55   +1.90 1 2 2 1 1   887    0 8.43 -3.19 ----- 40.8 40.8 44.8 48.1 13.1 -21.8 12.4 -21.7 12.1 -20.8 12.7 -20.6
2025-07-01 11:20:42,777 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:20:42,777 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:20:42,777 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.389181
2025-07-01 11:20:42,777 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:20:42,777 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:20:42,777 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:20:42,777 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:20:42,777 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:20:42,777 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:20:28', tmtdew=9.81, humidity=50.72, cloud=0.0, wind=36.93, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:20:25.238', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:20:42,778 [DEBUG][       Thread-602948][   transport.py][1871] : EOF in transport thread
2025-07-01 11:20:42,850 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:20:42,859 [DEBUG][       Thread-602951][   transport.py][1871] : starting thread (client mode): 0x81e6260
2025-07-01 11:20:42,859 [DEBUG][       Thread-602951][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:20:42,875 [DEBUG][       Thread-602951][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:20:42,875 [ INFO][       Thread-602951][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:20:42,882 [DEBUG][       Thread-602951][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:20:42,882 [DEBUG][       Thread-602951][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:20:42,882 [DEBUG][       Thread-602951][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:20:42,882 [DEBUG][       Thread-602951][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:20:42,882 [DEBUG][       Thread-602951][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:20:42,882 [DEBUG][       Thread-602951][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:20:42,882 [DEBUG][       Thread-602951][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:20:42,882 [DEBUG][       Thread-602951][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:20:42,882 [DEBUG][       Thread-602951][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:20:42,882 [DEBUG][       Thread-602951][   transport.py][1871] : client lang: <none>
2025-07-01 11:20:42,882 [DEBUG][       Thread-602951][   transport.py][1871] : server lang: <none>
2025-07-01 11:20:42,882 [DEBUG][       Thread-602951][   transport.py][1871] : kex follows: False
2025-07-01 11:20:42,882 [DEBUG][       Thread-602951][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:20:42,882 [DEBUG][       Thread-602951][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:20:42,882 [DEBUG][       Thread-602951][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:20:42,882 [DEBUG][       Thread-602951][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:20:42,882 [DEBUG][       Thread-602951][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:20:42,882 [DEBUG][       Thread-602951][   transport.py][1871] : Compression: none
2025-07-01 11:20:42,882 [DEBUG][       Thread-602951][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:20:42,940 [DEBUG][       Thread-602951][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:20:42,940 [DEBUG][       Thread-602951][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:20:42,941 [DEBUG][       Thread-602951][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:20:42,941 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:20:42,941 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:20:42,997 [DEBUG][       Thread-602951][   transport.py][1871] : userauth is OK
2025-07-01 11:20:42,997 [DEBUG][       Thread-602951][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:20:42,997 [DEBUG][       Thread-602951][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:20:42,997 [DEBUG][       Thread-602951][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:20:42,997 [DEBUG][       Thread-602951][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:20:43,011 [ INFO][       Thread-602951][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:20:43,011 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:20:43,011 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:20:44,022 [DEBUG][       Thread-602951][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:20:44,022 [DEBUG][       Thread-602951][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:20:44,072 [DEBUG][       Thread-602951][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:20:44,072 [DEBUG][       Thread-602951][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:20:44,081 [DEBUG][       Thread-602951][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:20:44,090 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:20:44,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-07-01 11:20: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-07-01 11:20:44,107 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:20:44,108 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:20:44,108 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:20:44,116 [DEBUG][       Thread-602951][   transport.py][1871] : EOF in transport thread
2025-07-01 11:20:46,623 [DEBUG][Thread-602953 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:20:54,119 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:20:54,119 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:20:54,119 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:20: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-07-01 11:20:54,596 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 20, 28), 9.81, 50.72, 0.0, 36.93, 10.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:20:54,596 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:20:28
2025-07-01 11:20:54,679 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:20:54,683 [DEBUG][       Thread-602954][   transport.py][1871] : starting thread (client mode): 0x8170b80
2025-07-01 11:20:54,683 [DEBUG][       Thread-602954][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:20:54,704 [DEBUG][       Thread-602954][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:20:54,705 [ INFO][       Thread-602954][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:20:54,708 [DEBUG][       Thread-602954][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:20:54,708 [DEBUG][       Thread-602954][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:20:54,708 [DEBUG][       Thread-602954][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:20:54,708 [DEBUG][       Thread-602954][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:20:54,708 [DEBUG][       Thread-602954][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:20:54,708 [DEBUG][       Thread-602954][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:20:54,708 [DEBUG][       Thread-602954][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:20:54,708 [DEBUG][       Thread-602954][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:20:54,708 [DEBUG][       Thread-602954][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:20:54,708 [DEBUG][       Thread-602954][   transport.py][1871] : client lang: <none>
2025-07-01 11:20:54,708 [DEBUG][       Thread-602954][   transport.py][1871] : server lang: <none>
2025-07-01 11:20:54,708 [DEBUG][       Thread-602954][   transport.py][1871] : kex follows: False
2025-07-01 11:20:54,708 [DEBUG][       Thread-602954][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:20:54,709 [DEBUG][       Thread-602954][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:20:54,709 [DEBUG][       Thread-602954][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:20:54,709 [DEBUG][       Thread-602954][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:20:54,709 [DEBUG][       Thread-602954][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:20:54,709 [DEBUG][       Thread-602954][   transport.py][1871] : Compression: none
2025-07-01 11:20:54,709 [DEBUG][       Thread-602954][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:20:54,725 [DEBUG][       Thread-602954][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:20:54,725 [DEBUG][       Thread-602954][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:20:54,726 [DEBUG][       Thread-602954][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:20:54,726 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:20:54,726 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:20:54,727 [DEBUG][       Thread-602954][   transport.py][1871] : userauth is OK
2025-07-01 11:20:54,752 [ INFO][       Thread-602954][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:20:54,752 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:20:55,340 [DEBUG][       Thread-602954][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:20:55,340 [DEBUG][       Thread-602954][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:20:55,381 [DEBUG][       Thread-602954][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:20:55,381 [DEBUG][       Thread-602954][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:20:55,384 [DEBUG][       Thread-602954][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:20:55,396 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:20:55,397 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:20:55,399 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:20:55,400 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:20:55,406 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:20:55,408 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:20:55,408 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:20:55,409 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:20:55,409 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.389181 -999.00  +10.40  40.80     55   +1.90 1 2 2 1 1   887    0 8.43 -3.19 ----- 40.8 40.8 44.8 48.1 13.1 -21.8 12.4 -21.7 12.1 -20.8 12.7 -20.6
2025-07-01 11:20:55,409 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:20:55,409 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:20:55,409 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.389181
2025-07-01 11:20:55,409 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:20:55,410 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:20:55,410 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:20:55,410 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:20:55,410 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:20:55,410 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:20:28', tmtdew=9.81, humidity=50.72, cloud=0.0, wind=36.93, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:20:25.238', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:20:55,411 [DEBUG][       Thread-602954][   transport.py][1871] : EOF in transport thread
2025-07-01 11:20:55,495 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:20:55,504 [DEBUG][       Thread-602957][   transport.py][1871] : starting thread (client mode): 0x81a5270
2025-07-01 11:20:55,505 [DEBUG][       Thread-602957][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:20:55,520 [DEBUG][       Thread-602957][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:20:55,520 [ INFO][       Thread-602957][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:20:55,527 [DEBUG][       Thread-602957][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:20:55,527 [DEBUG][       Thread-602957][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:20:55,527 [DEBUG][       Thread-602957][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:20:55,527 [DEBUG][       Thread-602957][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:20:55,527 [DEBUG][       Thread-602957][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:20:55,527 [DEBUG][       Thread-602957][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:20:55,527 [DEBUG][       Thread-602957][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:20:55,527 [DEBUG][       Thread-602957][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:20:55,527 [DEBUG][       Thread-602957][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:20:55,527 [DEBUG][       Thread-602957][   transport.py][1871] : client lang: <none>
2025-07-01 11:20:55,527 [DEBUG][       Thread-602957][   transport.py][1871] : server lang: <none>
2025-07-01 11:20:55,527 [DEBUG][       Thread-602957][   transport.py][1871] : kex follows: False
2025-07-01 11:20:55,527 [DEBUG][       Thread-602957][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:20:55,527 [DEBUG][       Thread-602957][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:20:55,527 [DEBUG][       Thread-602957][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:20:55,527 [DEBUG][       Thread-602957][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:20:55,527 [DEBUG][       Thread-602957][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:20:55,527 [DEBUG][       Thread-602957][   transport.py][1871] : Compression: none
2025-07-01 11:20:55,527 [DEBUG][       Thread-602957][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:20:55,584 [DEBUG][       Thread-602957][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:20:55,585 [DEBUG][       Thread-602957][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:20:55,585 [DEBUG][       Thread-602957][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:20:55,585 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:20:55,585 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:20:55,642 [DEBUG][       Thread-602957][   transport.py][1871] : userauth is OK
2025-07-01 11:20:55,642 [DEBUG][       Thread-602957][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:20:55,642 [DEBUG][       Thread-602957][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:20:55,642 [DEBUG][       Thread-602957][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:20:55,642 [DEBUG][       Thread-602957][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:20:55,661 [ INFO][       Thread-602957][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:20:55,661 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:20:55,662 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:20:55,665 [DEBUG][Thread-602959 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:20:56,640 [DEBUG][       Thread-602957][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:20:56,640 [DEBUG][       Thread-602957][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:20:56,688 [DEBUG][       Thread-602957][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:20:56,689 [DEBUG][       Thread-602957][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:20:56,698 [DEBUG][       Thread-602957][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:20:56,707 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:20:56,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-07-01 11:20:56,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-07-01 11:20:56,726 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:20:56,726 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:20:56,726 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:20:56,734 [DEBUG][       Thread-602957][   transport.py][1871] : EOF in transport thread
2025-07-01 11:21:04,688 [DEBUG][Thread-602960 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:21:06,737 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:21:06,737 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:21:06,737 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:21:06,740 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 11:21:06,775 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:21:06,776 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:21:07,223 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 21), 9.81, 50.69, 0.0, 34.97, 10.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:21:07,223 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:21:00
2025-07-01 11:21:07,307 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:21:07,311 [DEBUG][       Thread-602961][   transport.py][1871] : starting thread (client mode): 0x82b15d0
2025-07-01 11:21:07,311 [DEBUG][       Thread-602961][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:21:07,331 [DEBUG][       Thread-602961][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:21:07,331 [ INFO][       Thread-602961][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:21:07,334 [DEBUG][       Thread-602961][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:21:07,334 [DEBUG][       Thread-602961][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:21:07,334 [DEBUG][       Thread-602961][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:21:07,334 [DEBUG][       Thread-602961][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:21:07,334 [DEBUG][       Thread-602961][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:21:07,334 [DEBUG][       Thread-602961][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:21:07,334 [DEBUG][       Thread-602961][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:21:07,334 [DEBUG][       Thread-602961][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:21:07,334 [DEBUG][       Thread-602961][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:21:07,334 [DEBUG][       Thread-602961][   transport.py][1871] : client lang: <none>
2025-07-01 11:21:07,334 [DEBUG][       Thread-602961][   transport.py][1871] : server lang: <none>
2025-07-01 11:21:07,334 [DEBUG][       Thread-602961][   transport.py][1871] : kex follows: False
2025-07-01 11:21:07,334 [DEBUG][       Thread-602961][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:21:07,334 [DEBUG][       Thread-602961][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:21:07,335 [DEBUG][       Thread-602961][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:21:07,335 [DEBUG][       Thread-602961][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:21:07,335 [DEBUG][       Thread-602961][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:21:07,335 [DEBUG][       Thread-602961][   transport.py][1871] : Compression: none
2025-07-01 11:21:07,335 [DEBUG][       Thread-602961][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:21:07,351 [DEBUG][       Thread-602961][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:21:07,351 [DEBUG][       Thread-602961][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:21:07,352 [DEBUG][       Thread-602961][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:21:07,352 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:21:07,352 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:21:07,353 [DEBUG][       Thread-602961][   transport.py][1871] : userauth is OK
2025-07-01 11:21:07,378 [ INFO][       Thread-602961][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:21:07,379 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:21:08,037 [DEBUG][       Thread-602961][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:21:08,037 [DEBUG][       Thread-602961][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:21:08,081 [DEBUG][       Thread-602961][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:21:08,081 [DEBUG][       Thread-602961][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:21:08,084 [DEBUG][       Thread-602961][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:21:08,096 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:21:08,096 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:21:08,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:21:08,100 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:21:08,106 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:21:08,108 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:21:08,108 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:21:08,108 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:21:08,109 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.389181 -999.00  +10.40  40.80     55   +1.90 1 2 2 1 1   887    0 8.43 -3.19 ----- 40.8 40.8 44.8 48.1 13.1 -21.8 12.4 -21.7 12.1 -20.8 12.7 -20.6
2025-07-01 11:21:08,109 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:21:08,109 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:21:08,109 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.389181
2025-07-01 11:21:08,109 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:21:08,110 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:21:08,110 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:21:08,110 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:21:08,110 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:21:08,110 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:21:00', tmtdew=9.81, humidity=50.69, cloud=0.0, wind=34.97, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:20:25.238', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:21:08,111 [DEBUG][       Thread-602961][   transport.py][1871] : EOF in transport thread
2025-07-01 11:21:08,193 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:21:08,203 [DEBUG][       Thread-602964][   transport.py][1871] : starting thread (client mode): 0x8154a90
2025-07-01 11:21:08,204 [DEBUG][       Thread-602964][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:21:08,220 [DEBUG][       Thread-602964][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:21:08,220 [ INFO][       Thread-602964][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:21:08,228 [DEBUG][       Thread-602964][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:21:08,228 [DEBUG][       Thread-602964][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:21:08,228 [DEBUG][       Thread-602964][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:21:08,228 [DEBUG][       Thread-602964][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:21:08,228 [DEBUG][       Thread-602964][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:21:08,228 [DEBUG][       Thread-602964][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:21:08,228 [DEBUG][       Thread-602964][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:21:08,228 [DEBUG][       Thread-602964][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:21:08,228 [DEBUG][       Thread-602964][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:21:08,228 [DEBUG][       Thread-602964][   transport.py][1871] : client lang: <none>
2025-07-01 11:21:08,228 [DEBUG][       Thread-602964][   transport.py][1871] : server lang: <none>
2025-07-01 11:21:08,228 [DEBUG][       Thread-602964][   transport.py][1871] : kex follows: False
2025-07-01 11:21:08,228 [DEBUG][       Thread-602964][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:21:08,228 [DEBUG][       Thread-602964][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:21:08,228 [DEBUG][       Thread-602964][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:21:08,228 [DEBUG][       Thread-602964][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:21:08,228 [DEBUG][       Thread-602964][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:21:08,228 [DEBUG][       Thread-602964][   transport.py][1871] : Compression: none
2025-07-01 11:21:08,228 [DEBUG][       Thread-602964][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:21:08,292 [DEBUG][       Thread-602964][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:21:08,292 [DEBUG][       Thread-602964][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:21:08,293 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:21:08,294 [DEBUG][       Thread-602964][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:21:08,294 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:21:08,351 [DEBUG][       Thread-602964][   transport.py][1871] : userauth is OK
2025-07-01 11:21:08,352 [DEBUG][       Thread-602964][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:21:08,352 [DEBUG][       Thread-602964][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:21:08,352 [DEBUG][       Thread-602964][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:21:08,352 [DEBUG][       Thread-602964][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:21:08,371 [ INFO][       Thread-602964][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:21:08,371 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:21:08,371 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:21:09,377 [DEBUG][       Thread-602964][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:21:09,377 [DEBUG][       Thread-602964][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:21:09,427 [DEBUG][       Thread-602964][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:21:09,428 [DEBUG][       Thread-602964][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:21:09,436 [DEBUG][       Thread-602964][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:21:09,445 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:21:09,445 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 11:21:09,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-07-01 11:21:09,462 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:21:09,462 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:21:09,462 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:21:09,470 [DEBUG][       Thread-602964][   transport.py][1871] : EOF in transport thread
2025-07-01 11:21:13,710 [DEBUG][Thread-602966 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:21:19,473 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:21:19,473 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:21:19,473 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:21:19,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-07-01 11:21:19,957 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 21), 9.81, 50.69, 0.0, 34.97, 10.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:21:19,957 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:21:00
2025-07-01 11:21:20,043 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:21:20,047 [DEBUG][       Thread-602967][   transport.py][1871] : starting thread (client mode): 0x81712a0
2025-07-01 11:21:20,047 [DEBUG][       Thread-602967][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:21:20,067 [DEBUG][       Thread-602967][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:21:20,067 [ INFO][       Thread-602967][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:21:20,071 [DEBUG][       Thread-602967][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:21:20,071 [DEBUG][       Thread-602967][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:21:20,071 [DEBUG][       Thread-602967][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:21:20,071 [DEBUG][       Thread-602967][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:21:20,071 [DEBUG][       Thread-602967][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:21:20,071 [DEBUG][       Thread-602967][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:21:20,071 [DEBUG][       Thread-602967][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:21:20,071 [DEBUG][       Thread-602967][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:21:20,071 [DEBUG][       Thread-602967][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:21:20,071 [DEBUG][       Thread-602967][   transport.py][1871] : client lang: <none>
2025-07-01 11:21:20,071 [DEBUG][       Thread-602967][   transport.py][1871] : server lang: <none>
2025-07-01 11:21:20,071 [DEBUG][       Thread-602967][   transport.py][1871] : kex follows: False
2025-07-01 11:21:20,071 [DEBUG][       Thread-602967][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:21:20,071 [DEBUG][       Thread-602967][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:21:20,071 [DEBUG][       Thread-602967][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:21:20,071 [DEBUG][       Thread-602967][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:21:20,071 [DEBUG][       Thread-602967][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:21:20,071 [DEBUG][       Thread-602967][   transport.py][1871] : Compression: none
2025-07-01 11:21:20,071 [DEBUG][       Thread-602967][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:21:20,086 [DEBUG][       Thread-602967][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:21:20,086 [DEBUG][       Thread-602967][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:21:20,086 [DEBUG][       Thread-602967][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:21:20,086 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:21:20,086 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:21:20,086 [DEBUG][       Thread-602967][   transport.py][1871] : userauth is OK
2025-07-01 11:21:20,111 [ INFO][       Thread-602967][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:21:20,111 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:21:20,778 [DEBUG][       Thread-602967][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:21:20,778 [DEBUG][       Thread-602967][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:21:20,820 [DEBUG][       Thread-602967][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:21:20,820 [DEBUG][       Thread-602967][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:21:20,822 [DEBUG][       Thread-602967][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:21:20,836 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:21:20,836 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:21:20,837 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:21:20,838 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:21:20,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:21:20,842 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:21:20,842 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:21:20,842 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:21:20,842 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.389528 -999.00  +10.30  38.87     55   +1.80 1 2 2 1 1   887    0 8.66 -5.36 ----- 38.9 38.9 45.0 50.3 13.0 -21.7 12.4 -21.6 12.0 -20.8 12.7 -20.6
2025-07-01 11:21:20,842 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:21:20,842 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:21:20,842 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.389528
2025-07-01 11:21:20,842 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:21:20,842 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:21:20,842 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:21:20,842 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:21:20,842 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:21:20,842 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:21:00', tmtdew=9.81, humidity=50.69, cloud=0.0, wind=34.97, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:20:55.219', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:21:20,843 [DEBUG][       Thread-602967][   transport.py][1871] : EOF in transport thread
2025-07-01 11:21:20,915 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:21:20,926 [DEBUG][       Thread-602970][   transport.py][1871] : starting thread (client mode): 0x8154a90
2025-07-01 11:21:20,926 [DEBUG][       Thread-602970][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:21:20,941 [DEBUG][       Thread-602970][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:21:20,941 [ INFO][       Thread-602970][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:21:20,948 [DEBUG][       Thread-602970][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:21:20,948 [DEBUG][       Thread-602970][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:21:20,948 [DEBUG][       Thread-602970][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:21:20,948 [DEBUG][       Thread-602970][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:21:20,948 [DEBUG][       Thread-602970][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:21:20,948 [DEBUG][       Thread-602970][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:21:20,948 [DEBUG][       Thread-602970][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:21:20,948 [DEBUG][       Thread-602970][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:21:20,948 [DEBUG][       Thread-602970][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:21:20,948 [DEBUG][       Thread-602970][   transport.py][1871] : client lang: <none>
2025-07-01 11:21:20,948 [DEBUG][       Thread-602970][   transport.py][1871] : server lang: <none>
2025-07-01 11:21:20,948 [DEBUG][       Thread-602970][   transport.py][1871] : kex follows: False
2025-07-01 11:21:20,948 [DEBUG][       Thread-602970][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:21:20,948 [DEBUG][       Thread-602970][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:21:20,948 [DEBUG][       Thread-602970][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:21:20,948 [DEBUG][       Thread-602970][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:21:20,948 [DEBUG][       Thread-602970][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:21:20,948 [DEBUG][       Thread-602970][   transport.py][1871] : Compression: none
2025-07-01 11:21:20,948 [DEBUG][       Thread-602970][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:21:21,005 [DEBUG][       Thread-602970][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:21:21,005 [DEBUG][       Thread-602970][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:21:21,005 [DEBUG][       Thread-602970][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:21:21,005 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:21:21,005 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:21:21,061 [DEBUG][       Thread-602970][   transport.py][1871] : userauth is OK
2025-07-01 11:21:21,061 [DEBUG][       Thread-602970][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:21:21,061 [DEBUG][       Thread-602970][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:21:21,061 [DEBUG][       Thread-602970][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:21:21,061 [DEBUG][       Thread-602970][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:21:21,075 [ INFO][       Thread-602970][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:21:21,076 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:21:21,076 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:21:22,079 [DEBUG][       Thread-602970][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:21:22,080 [DEBUG][       Thread-602970][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:21:22,128 [DEBUG][       Thread-602970][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:21:22,128 [DEBUG][       Thread-602970][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:21:22,137 [DEBUG][       Thread-602970][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:21:22,146 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:21:22,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-07-01 11:21:22,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-07-01 11:21:22,164 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:21:22,165 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:21:22,165 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:21:22,173 [DEBUG][       Thread-602970][   transport.py][1871] : EOF in transport thread
2025-07-01 11:21:22,744 [DEBUG][Thread-602972 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:21:25,818 [DEBUG][Thread-602973 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:21:31,767 [DEBUG][Thread-602974 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:21:32,175 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:21:32,176 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:21:32,176 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:21:32,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-07-01 11:21:32,655 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 21), 9.81, 50.69, 0.0, 34.97, 10.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:21:32,655 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:21:00
2025-07-01 11:21:32,741 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:21:32,745 [DEBUG][       Thread-602975][   transport.py][1871] : starting thread (client mode): 0x8172e60
2025-07-01 11:21:32,745 [DEBUG][       Thread-602975][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:21:32,766 [DEBUG][       Thread-602975][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:21:32,766 [ INFO][       Thread-602975][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:21:32,770 [DEBUG][       Thread-602975][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:21:32,770 [DEBUG][       Thread-602975][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:21:32,770 [DEBUG][       Thread-602975][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:21:32,770 [DEBUG][       Thread-602975][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:21:32,770 [DEBUG][       Thread-602975][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:21:32,770 [DEBUG][       Thread-602975][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:21:32,770 [DEBUG][       Thread-602975][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:21:32,770 [DEBUG][       Thread-602975][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:21:32,770 [DEBUG][       Thread-602975][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:21:32,770 [DEBUG][       Thread-602975][   transport.py][1871] : client lang: <none>
2025-07-01 11:21:32,770 [DEBUG][       Thread-602975][   transport.py][1871] : server lang: <none>
2025-07-01 11:21:32,770 [DEBUG][       Thread-602975][   transport.py][1871] : kex follows: False
2025-07-01 11:21:32,770 [DEBUG][       Thread-602975][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:21:32,770 [DEBUG][       Thread-602975][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:21:32,770 [DEBUG][       Thread-602975][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:21:32,770 [DEBUG][       Thread-602975][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:21:32,770 [DEBUG][       Thread-602975][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:21:32,770 [DEBUG][       Thread-602975][   transport.py][1871] : Compression: none
2025-07-01 11:21:32,770 [DEBUG][       Thread-602975][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:21:32,787 [DEBUG][       Thread-602975][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:21:32,787 [DEBUG][       Thread-602975][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:21:32,787 [DEBUG][       Thread-602975][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:21:32,787 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:21:32,787 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:21:32,788 [DEBUG][       Thread-602975][   transport.py][1871] : userauth is OK
2025-07-01 11:21:32,801 [ INFO][       Thread-602975][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:21:32,801 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:21:33,435 [DEBUG][       Thread-602975][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:21:33,435 [DEBUG][       Thread-602975][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:21:33,480 [DEBUG][       Thread-602975][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:21:33,480 [DEBUG][       Thread-602975][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:21:33,483 [DEBUG][       Thread-602975][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:21:33,495 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:21:33,496 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:21:33,497 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:21:33,498 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:21:33,500 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:21:33,501 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:21:33,501 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:21:33,502 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:21:33,502 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.389528 -999.00  +10.30  38.87     55   +1.80 1 2 2 1 1   887    0 8.66 -5.36 ----- 38.9 38.9 45.0 50.3 13.0 -21.7 12.4 -21.6 12.0 -20.8 12.7 -20.6
2025-07-01 11:21:33,502 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:21:33,502 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:21:33,502 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.389528
2025-07-01 11:21:33,502 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:21:33,502 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:21:33,502 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:21:33,502 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:21:33,502 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:21:33,502 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:21:00', tmtdew=9.81, humidity=50.69, cloud=0.0, wind=34.97, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:20:55.219', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:21:33,503 [DEBUG][       Thread-602975][   transport.py][1871] : EOF in transport thread
2025-07-01 11:21:33,580 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:21:33,589 [DEBUG][       Thread-602978][   transport.py][1871] : starting thread (client mode): 0x8393b80
2025-07-01 11:21:33,589 [DEBUG][       Thread-602978][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:21:33,603 [DEBUG][       Thread-602978][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:21:33,603 [ INFO][       Thread-602978][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:21:33,611 [DEBUG][       Thread-602978][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:21:33,611 [DEBUG][       Thread-602978][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:21:33,611 [DEBUG][       Thread-602978][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:21:33,611 [DEBUG][       Thread-602978][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:21:33,611 [DEBUG][       Thread-602978][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:21:33,611 [DEBUG][       Thread-602978][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:21:33,611 [DEBUG][       Thread-602978][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:21:33,611 [DEBUG][       Thread-602978][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:21:33,611 [DEBUG][       Thread-602978][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:21:33,611 [DEBUG][       Thread-602978][   transport.py][1871] : client lang: <none>
2025-07-01 11:21:33,611 [DEBUG][       Thread-602978][   transport.py][1871] : server lang: <none>
2025-07-01 11:21:33,611 [DEBUG][       Thread-602978][   transport.py][1871] : kex follows: False
2025-07-01 11:21:33,611 [DEBUG][       Thread-602978][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:21:33,611 [DEBUG][       Thread-602978][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:21:33,611 [DEBUG][       Thread-602978][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:21:33,611 [DEBUG][       Thread-602978][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:21:33,611 [DEBUG][       Thread-602978][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:21:33,611 [DEBUG][       Thread-602978][   transport.py][1871] : Compression: none
2025-07-01 11:21:33,611 [DEBUG][       Thread-602978][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:21:33,672 [DEBUG][       Thread-602978][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:21:33,672 [DEBUG][       Thread-602978][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:21:33,672 [DEBUG][       Thread-602978][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:21:33,673 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:21:33,673 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:21:33,729 [DEBUG][       Thread-602978][   transport.py][1871] : userauth is OK
2025-07-01 11:21:33,729 [DEBUG][       Thread-602978][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:21:33,729 [DEBUG][       Thread-602978][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:21:33,729 [DEBUG][       Thread-602978][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:21:33,729 [DEBUG][       Thread-602978][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:21:33,744 [ INFO][       Thread-602978][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:21:33,744 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:21:33,744 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:21:34,725 [DEBUG][       Thread-602978][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:21:34,725 [DEBUG][       Thread-602978][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:21:34,776 [DEBUG][       Thread-602978][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:21:34,776 [DEBUG][       Thread-602978][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:21:34,785 [DEBUG][       Thread-602978][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:21:34,794 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:21:34,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-07-01 11:21: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') -> 00000000
2025-07-01 11:21:34,811 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:21:34,811 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:21:34,812 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:21:34,820 [DEBUG][       Thread-602978][   transport.py][1871] : EOF in transport thread
2025-07-01 11:21:40,789 [DEBUG][Thread-602980 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:21:44,822 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:21:44,822 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:21:44,823 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:21:44,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-07-01 11:21:45,291 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 21, 32), 9.9, 50.17, 0.0, 42.52, 10.62, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:21:45,291 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:21:32
2025-07-01 11:21:45,378 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:21:45,382 [DEBUG][       Thread-602981][   transport.py][1871] : starting thread (client mode): 0x81709a0
2025-07-01 11:21:45,382 [DEBUG][       Thread-602981][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:21:45,402 [DEBUG][       Thread-602981][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:21:45,402 [ INFO][       Thread-602981][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:21:45,405 [DEBUG][       Thread-602981][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:21:45,405 [DEBUG][       Thread-602981][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:21:45,405 [DEBUG][       Thread-602981][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:21:45,405 [DEBUG][       Thread-602981][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:21:45,405 [DEBUG][       Thread-602981][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:21:45,405 [DEBUG][       Thread-602981][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:21:45,405 [DEBUG][       Thread-602981][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:21:45,405 [DEBUG][       Thread-602981][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:21:45,405 [DEBUG][       Thread-602981][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:21:45,405 [DEBUG][       Thread-602981][   transport.py][1871] : client lang: <none>
2025-07-01 11:21:45,405 [DEBUG][       Thread-602981][   transport.py][1871] : server lang: <none>
2025-07-01 11:21:45,405 [DEBUG][       Thread-602981][   transport.py][1871] : kex follows: False
2025-07-01 11:21:45,405 [DEBUG][       Thread-602981][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:21:45,405 [DEBUG][       Thread-602981][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:21:45,405 [DEBUG][       Thread-602981][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:21:45,406 [DEBUG][       Thread-602981][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:21:45,406 [DEBUG][       Thread-602981][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:21:45,406 [DEBUG][       Thread-602981][   transport.py][1871] : Compression: none
2025-07-01 11:21:45,406 [DEBUG][       Thread-602981][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:21:45,420 [DEBUG][       Thread-602981][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:21:45,420 [DEBUG][       Thread-602981][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:21:45,420 [DEBUG][       Thread-602981][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:21:45,420 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:21:45,420 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:21:45,421 [DEBUG][       Thread-602981][   transport.py][1871] : userauth is OK
2025-07-01 11:21:45,445 [ INFO][       Thread-602981][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:21:45,445 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:21:46,068 [DEBUG][       Thread-602981][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:21:46,068 [DEBUG][       Thread-602981][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:21:46,109 [DEBUG][       Thread-602981][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:21:46,109 [DEBUG][       Thread-602981][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:21:46,112 [DEBUG][       Thread-602981][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:21:46,124 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:21:46,125 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:21:46,127 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:21:46,129 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:21:46,135 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:21:46,136 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:21:46,137 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:21:46,137 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:21:46,137 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.389528 -999.00  +10.30  38.87     55   +1.80 1 2 2 1 1   887    0 8.66 -5.36 ----- 38.9 38.9 45.0 50.3 13.0 -21.7 12.4 -21.6 12.0 -20.8 12.7 -20.6
2025-07-01 11:21:46,138 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:21:46,138 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:21:46,138 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.389528
2025-07-01 11:21:46,138 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:21:46,139 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:21:46,139 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:21:46,139 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:21:46,139 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:21:46,139 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:21:32', tmtdew=9.9, humidity=50.17, cloud=0.0, wind=42.52, temperature=10.62, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:20:55.219', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:21:46,139 [DEBUG][       Thread-602981][   transport.py][1871] : EOF in transport thread
2025-07-01 11:21:46,223 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:21:46,232 [DEBUG][       Thread-602984][   transport.py][1871] : starting thread (client mode): 0x81e4730
2025-07-01 11:21:46,232 [DEBUG][       Thread-602984][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:21:46,247 [DEBUG][       Thread-602984][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:21:46,247 [ INFO][       Thread-602984][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:21:46,255 [DEBUG][       Thread-602984][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:21:46,255 [DEBUG][       Thread-602984][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:21:46,255 [DEBUG][       Thread-602984][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:21:46,255 [DEBUG][       Thread-602984][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:21:46,255 [DEBUG][       Thread-602984][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:21:46,255 [DEBUG][       Thread-602984][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:21:46,256 [DEBUG][       Thread-602984][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:21:46,256 [DEBUG][       Thread-602984][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:21:46,256 [DEBUG][       Thread-602984][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:21:46,256 [DEBUG][       Thread-602984][   transport.py][1871] : client lang: <none>
2025-07-01 11:21:46,256 [DEBUG][       Thread-602984][   transport.py][1871] : server lang: <none>
2025-07-01 11:21:46,256 [DEBUG][       Thread-602984][   transport.py][1871] : kex follows: False
2025-07-01 11:21:46,256 [DEBUG][       Thread-602984][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:21:46,256 [DEBUG][       Thread-602984][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:21:46,256 [DEBUG][       Thread-602984][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:21:46,256 [DEBUG][       Thread-602984][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:21:46,256 [DEBUG][       Thread-602984][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:21:46,256 [DEBUG][       Thread-602984][   transport.py][1871] : Compression: none
2025-07-01 11:21:46,256 [DEBUG][       Thread-602984][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:21:46,320 [DEBUG][       Thread-602984][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:21:46,320 [DEBUG][       Thread-602984][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:21:46,321 [DEBUG][       Thread-602984][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:21:46,321 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:21:46,322 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:21:46,378 [DEBUG][       Thread-602984][   transport.py][1871] : userauth is OK
2025-07-01 11:21:46,378 [DEBUG][       Thread-602984][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:21:46,379 [DEBUG][       Thread-602984][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:21:46,379 [DEBUG][       Thread-602984][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:21:46,379 [DEBUG][       Thread-602984][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:21:46,398 [ INFO][       Thread-602984][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:21:46,399 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:21:46,399 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:21:47,407 [DEBUG][       Thread-602984][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:21:47,408 [DEBUG][       Thread-602984][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:21:47,457 [DEBUG][       Thread-602984][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:21:47,457 [DEBUG][       Thread-602984][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:21:47,467 [DEBUG][       Thread-602984][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:21:47,477 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:21:47,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-07-01 11:21:47,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-07-01 11:21:47,496 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:21:47,497 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:21:47,497 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:21:47,505 [DEBUG][       Thread-602984][   transport.py][1871] : EOF in transport thread
2025-07-01 11:21:49,811 [DEBUG][Thread-602986 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:21:57,504 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:21:57,504 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:21:57,504 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:21: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-07-01 11:21:57,999 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 21, 32), 9.9, 50.17, 0.0, 42.52, 10.62, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:21:57,999 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:21:32
2025-07-01 11:21:58,086 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:21:58,090 [DEBUG][       Thread-602987][   transport.py][1871] : starting thread (client mode): 0x81725f0
2025-07-01 11:21:58,090 [DEBUG][       Thread-602987][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:21:58,110 [DEBUG][       Thread-602987][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:21:58,111 [ INFO][       Thread-602987][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:21:58,114 [DEBUG][       Thread-602987][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:21:58,114 [DEBUG][       Thread-602987][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:21:58,114 [DEBUG][       Thread-602987][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:21:58,114 [DEBUG][       Thread-602987][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:21:58,114 [DEBUG][       Thread-602987][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:21:58,114 [DEBUG][       Thread-602987][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:21:58,114 [DEBUG][       Thread-602987][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:21:58,114 [DEBUG][       Thread-602987][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:21:58,114 [DEBUG][       Thread-602987][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:21:58,114 [DEBUG][       Thread-602987][   transport.py][1871] : client lang: <none>
2025-07-01 11:21:58,114 [DEBUG][       Thread-602987][   transport.py][1871] : server lang: <none>
2025-07-01 11:21:58,114 [DEBUG][       Thread-602987][   transport.py][1871] : kex follows: False
2025-07-01 11:21:58,114 [DEBUG][       Thread-602987][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:21:58,114 [DEBUG][       Thread-602987][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:21:58,114 [DEBUG][       Thread-602987][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:21:58,114 [DEBUG][       Thread-602987][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:21:58,114 [DEBUG][       Thread-602987][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:21:58,114 [DEBUG][       Thread-602987][   transport.py][1871] : Compression: none
2025-07-01 11:21:58,114 [DEBUG][       Thread-602987][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:21:58,127 [DEBUG][       Thread-602987][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:21:58,128 [DEBUG][       Thread-602987][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:21:58,128 [DEBUG][       Thread-602987][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:21:58,128 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:21:58,128 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:21:58,128 [DEBUG][       Thread-602987][   transport.py][1871] : userauth is OK
2025-07-01 11:21:58,153 [ INFO][       Thread-602987][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:21:58,153 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:21:58,801 [DEBUG][       Thread-602987][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:21:58,801 [DEBUG][       Thread-602987][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:21:58,844 [DEBUG][       Thread-602987][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:21:58,844 [DEBUG][       Thread-602987][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:21:58,846 [DEBUG][       Thread-602987][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:21:58,849 [DEBUG][Thread-602989 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:21:58,857 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:21:58,857 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:21:58,858 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:21:58,859 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:21:58,861 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:21:58,862 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:21:58,862 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:21:58,862 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:21:58,862 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.389875 -999.00  +10.30  31.41     55   +1.80 1 2 2 1 1   887    0 8.26 -7.51 ----- 31.4 31.4 41.8 39.7 12.9 -22.3 12.3 -21.8 11.9 -21.2 12.6 -20.8
2025-07-01 11:21:58,862 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:21:58,862 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:21:58,862 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.389875
2025-07-01 11:21:58,862 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:21:58,863 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:21:58,863 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:21:58,863 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:21:58,863 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:21:58,863 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:21:32', tmtdew=9.9, humidity=50.17, cloud=0.0, wind=42.52, temperature=10.62, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:21:25.200', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:21:58,863 [DEBUG][       Thread-602987][   transport.py][1871] : EOF in transport thread
2025-07-01 11:21:58,937 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:21:58,946 [DEBUG][       Thread-602991][   transport.py][1871] : starting thread (client mode): 0x81d9330
2025-07-01 11:21:58,946 [DEBUG][       Thread-602991][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:21:58,961 [DEBUG][       Thread-602991][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:21:58,961 [ INFO][       Thread-602991][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:21:58,972 [DEBUG][       Thread-602991][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:21:58,972 [DEBUG][       Thread-602991][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:21:58,972 [DEBUG][       Thread-602991][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:21:58,972 [DEBUG][       Thread-602991][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:21:58,972 [DEBUG][       Thread-602991][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:21:58,972 [DEBUG][       Thread-602991][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:21:58,972 [DEBUG][       Thread-602991][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:21:58,972 [DEBUG][       Thread-602991][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:21:58,972 [DEBUG][       Thread-602991][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:21:58,972 [DEBUG][       Thread-602991][   transport.py][1871] : client lang: <none>
2025-07-01 11:21:58,972 [DEBUG][       Thread-602991][   transport.py][1871] : server lang: <none>
2025-07-01 11:21:58,972 [DEBUG][       Thread-602991][   transport.py][1871] : kex follows: False
2025-07-01 11:21:58,972 [DEBUG][       Thread-602991][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:21:58,972 [DEBUG][       Thread-602991][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:21:58,972 [DEBUG][       Thread-602991][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:21:58,972 [DEBUG][       Thread-602991][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:21:58,972 [DEBUG][       Thread-602991][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:21:58,972 [DEBUG][       Thread-602991][   transport.py][1871] : Compression: none
2025-07-01 11:21:58,972 [DEBUG][       Thread-602991][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:21:59,028 [DEBUG][       Thread-602991][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:21:59,028 [DEBUG][       Thread-602991][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:21:59,028 [DEBUG][       Thread-602991][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:21:59,028 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:21:59,028 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:21:59,085 [DEBUG][       Thread-602991][   transport.py][1871] : userauth is OK
2025-07-01 11:21:59,085 [DEBUG][       Thread-602991][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:21:59,085 [DEBUG][       Thread-602991][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:21:59,085 [DEBUG][       Thread-602991][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:21:59,085 [DEBUG][       Thread-602991][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:21:59,102 [ INFO][       Thread-602991][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:21:59,102 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:21:59,102 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:22:00,064 [DEBUG][       Thread-602991][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:22:00,064 [DEBUG][       Thread-602991][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:22:00,115 [DEBUG][       Thread-602991][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:22:00,116 [DEBUG][       Thread-602991][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:22:00,124 [DEBUG][       Thread-602991][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:22:00,133 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:22:00,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-07-01 11:22:00,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') -> 00000000
2025-07-01 11:22:00,150 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:22:00,150 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:22:00,150 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:22:00,158 [DEBUG][       Thread-602991][   transport.py][1871] : EOF in transport thread
2025-07-01 11:22:06,914 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:22:06,915 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:22:07,868 [DEBUG][Thread-602993 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:22:10,158 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:22:10,159 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:22:10,159 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:22:10,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-07-01 11:22:10,649 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 22, 4), 9.9, 50.17, 0.0, 36.67, 10.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:22:10,649 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:22:04
2025-07-01 11:22:10,735 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:22:10,739 [DEBUG][       Thread-602994][   transport.py][1871] : starting thread (client mode): 0x81a64d0
2025-07-01 11:22:10,739 [DEBUG][       Thread-602994][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:22:10,759 [DEBUG][       Thread-602994][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:22:10,759 [ INFO][       Thread-602994][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:22:10,761 [DEBUG][       Thread-602994][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:22:10,761 [DEBUG][       Thread-602994][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:22:10,761 [DEBUG][       Thread-602994][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:22:10,761 [DEBUG][       Thread-602994][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:22:10,761 [DEBUG][       Thread-602994][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:22:10,761 [DEBUG][       Thread-602994][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:22:10,761 [DEBUG][       Thread-602994][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:22:10,761 [DEBUG][       Thread-602994][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:22:10,761 [DEBUG][       Thread-602994][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:22:10,761 [DEBUG][       Thread-602994][   transport.py][1871] : client lang: <none>
2025-07-01 11:22:10,761 [DEBUG][       Thread-602994][   transport.py][1871] : server lang: <none>
2025-07-01 11:22:10,761 [DEBUG][       Thread-602994][   transport.py][1871] : kex follows: False
2025-07-01 11:22:10,761 [DEBUG][       Thread-602994][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:22:10,761 [DEBUG][       Thread-602994][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:22:10,761 [DEBUG][       Thread-602994][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:22:10,762 [DEBUG][       Thread-602994][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:22:10,762 [DEBUG][       Thread-602994][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:22:10,762 [DEBUG][       Thread-602994][   transport.py][1871] : Compression: none
2025-07-01 11:22:10,762 [DEBUG][       Thread-602994][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:22:10,770 [DEBUG][       Thread-602994][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:22:10,770 [DEBUG][       Thread-602994][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:22:10,770 [DEBUG][       Thread-602994][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:22:10,771 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:22:10,771 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:22:10,772 [DEBUG][       Thread-602994][   transport.py][1871] : userauth is OK
2025-07-01 11:22:10,796 [ INFO][       Thread-602994][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:22:10,796 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:22:11,392 [DEBUG][       Thread-602994][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:22:11,393 [DEBUG][       Thread-602994][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:22:11,437 [DEBUG][       Thread-602994][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:22:11,437 [DEBUG][       Thread-602994][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:22:11,441 [DEBUG][       Thread-602994][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:22:11,454 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:22:11,454 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:22:11,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:22:11,458 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:22:11,464 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:22:11,465 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:22:11,465 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:22:11,465 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:22:11,465 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.389875 -999.00  +10.30  31.41     55   +1.80 1 2 2 1 1   887    0 8.26 -7.51 ----- 31.4 31.4 41.8 39.7 12.9 -22.3 12.3 -21.8 11.9 -21.2 12.6 -20.8
2025-07-01 11:22:11,465 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:22:11,465 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:22:11,465 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.389875
2025-07-01 11:22:11,465 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:22:11,466 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:22:11,466 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:22:11,466 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:22:11,466 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:22:11,466 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:22:04', tmtdew=9.9, humidity=50.17, cloud=0.0, wind=36.67, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:21:25.200', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:22:11,467 [DEBUG][       Thread-602994][   transport.py][1871] : EOF in transport thread
2025-07-01 11:22:11,550 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:22:11,559 [DEBUG][       Thread-602997][   transport.py][1871] : starting thread (client mode): 0x81e5390
2025-07-01 11:22:11,559 [DEBUG][       Thread-602997][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:22:11,574 [DEBUG][       Thread-602997][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:22:11,574 [ INFO][       Thread-602997][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:22:11,582 [DEBUG][       Thread-602997][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:22:11,582 [DEBUG][       Thread-602997][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:22:11,582 [DEBUG][       Thread-602997][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:22:11,582 [DEBUG][       Thread-602997][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:22:11,582 [DEBUG][       Thread-602997][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:22:11,582 [DEBUG][       Thread-602997][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:22:11,582 [DEBUG][       Thread-602997][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:22:11,582 [DEBUG][       Thread-602997][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:22:11,582 [DEBUG][       Thread-602997][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:22:11,582 [DEBUG][       Thread-602997][   transport.py][1871] : client lang: <none>
2025-07-01 11:22:11,582 [DEBUG][       Thread-602997][   transport.py][1871] : server lang: <none>
2025-07-01 11:22:11,582 [DEBUG][       Thread-602997][   transport.py][1871] : kex follows: False
2025-07-01 11:22:11,582 [DEBUG][       Thread-602997][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:22:11,582 [DEBUG][       Thread-602997][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:22:11,583 [DEBUG][       Thread-602997][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:22:11,583 [DEBUG][       Thread-602997][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:22:11,583 [DEBUG][       Thread-602997][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:22:11,583 [DEBUG][       Thread-602997][   transport.py][1871] : Compression: none
2025-07-01 11:22:11,583 [DEBUG][       Thread-602997][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:22:11,643 [DEBUG][       Thread-602997][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:22:11,644 [DEBUG][       Thread-602997][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:22:11,644 [DEBUG][       Thread-602997][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:22:11,645 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:22:11,645 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:22:11,702 [DEBUG][       Thread-602997][   transport.py][1871] : userauth is OK
2025-07-01 11:22:11,702 [DEBUG][       Thread-602997][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:22:11,702 [DEBUG][       Thread-602997][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:22:11,702 [DEBUG][       Thread-602997][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:22:11,702 [DEBUG][       Thread-602997][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:22:11,720 [ INFO][       Thread-602997][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:22:11,721 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:22:11,721 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:22:12,857 [DEBUG][       Thread-602997][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:22:12,857 [DEBUG][       Thread-602997][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:22:12,908 [DEBUG][       Thread-602997][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:22:12,908 [DEBUG][       Thread-602997][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:22:12,917 [DEBUG][       Thread-602997][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:22:12,926 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:22:12,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')
2025-07-01 11:22:12,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-07-01 11:22:12,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:22:12,945 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:22:12,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:22:12,954 [DEBUG][       Thread-602997][   transport.py][1871] : EOF in transport thread
2025-07-01 11:22:16,890 [DEBUG][Thread-602999 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:22:22,956 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:22:22,956 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:22:22,956 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:22:22,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-07-01 11:22:23,425 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 22, 4), 9.9, 50.17, 0.0, 36.67, 10.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:22:23,425 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:22:04
2025-07-01 11:22:23,511 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:22:23,517 [DEBUG][       Thread-603000][   transport.py][1871] : starting thread (client mode): 0x82b29b0
2025-07-01 11:22:23,517 [DEBUG][       Thread-603000][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:22:23,537 [DEBUG][       Thread-603000][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:22:23,537 [ INFO][       Thread-603000][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:22:23,539 [DEBUG][       Thread-603000][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:22:23,539 [DEBUG][       Thread-603000][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:22:23,539 [DEBUG][       Thread-603000][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:22:23,539 [DEBUG][       Thread-603000][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:22:23,539 [DEBUG][       Thread-603000][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:22:23,539 [DEBUG][       Thread-603000][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:22:23,539 [DEBUG][       Thread-603000][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:22:23,539 [DEBUG][       Thread-603000][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:22:23,539 [DEBUG][       Thread-603000][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:22:23,539 [DEBUG][       Thread-603000][   transport.py][1871] : client lang: <none>
2025-07-01 11:22:23,539 [DEBUG][       Thread-603000][   transport.py][1871] : server lang: <none>
2025-07-01 11:22:23,539 [DEBUG][       Thread-603000][   transport.py][1871] : kex follows: False
2025-07-01 11:22:23,539 [DEBUG][       Thread-603000][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:22:23,539 [DEBUG][       Thread-603000][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:22:23,539 [DEBUG][       Thread-603000][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:22:23,539 [DEBUG][       Thread-603000][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:22:23,539 [DEBUG][       Thread-603000][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:22:23,539 [DEBUG][       Thread-603000][   transport.py][1871] : Compression: none
2025-07-01 11:22:23,539 [DEBUG][       Thread-603000][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:22:23,549 [DEBUG][       Thread-603000][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:22:23,550 [DEBUG][       Thread-603000][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:22:23,550 [DEBUG][       Thread-603000][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:22:23,551 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:22:23,551 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:22:23,552 [DEBUG][       Thread-603000][   transport.py][1871] : userauth is OK
2025-07-01 11:22:23,576 [ INFO][       Thread-603000][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:22:23,577 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:22:24,210 [DEBUG][       Thread-603000][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:22:24,210 [DEBUG][       Thread-603000][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:22:24,253 [DEBUG][       Thread-603000][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:22:24,253 [DEBUG][       Thread-603000][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:22:24,256 [DEBUG][       Thread-603000][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:22:24,263 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:22:24,263 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:22:24,265 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:22:24,267 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:22:24,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:22:24,274 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:22:24,274 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:22:24,275 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:22:24,275 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.390223 -999.00  +10.30  38.87     56   +1.90 1 2 2 1 1   887    0 8.24 -10.78 ----- 38.9 38.9 38.0 45.7 12.9 -21.5 12.4 -21.5 11.9 -21.2 12.6 -20.6
2025-07-01 11:22:24,275 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:22:24,275 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:22:24,275 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.390223
2025-07-01 11:22:24,276 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:22:24,276 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:22:24,276 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:22:24,277 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:22:24,277 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:22:24,277 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:22:04', tmtdew=9.9, humidity=50.17, cloud=0.0, wind=36.67, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:21:55.267', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:22:24,277 [DEBUG][       Thread-603000][   transport.py][1871] : EOF in transport thread
2025-07-01 11:22:24,360 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:22:25,867 [DEBUG][Thread-603003 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:22:25,923 [DEBUG][Thread-603004 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:22:34,943 [DEBUG][Thread-603005 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:22:43,963 [DEBUG][Thread-603006 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:22:52,987 [DEBUG][Thread-603007 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:23:02,009 [DEBUG][Thread-603008 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:23:07,053 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:23:07,054 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:23:11,030 [DEBUG][Thread-603009 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:23:20,049 [DEBUG][Thread-603010 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:23:25,921 [DEBUG][Thread-603011 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:23:29,070 [DEBUG][Thread-603012 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:23:38,093 [DEBUG][Thread-603013 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:23:47,114 [DEBUG][Thread-603014 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:23:56,131 [DEBUG][Thread-603015 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:24:05,155 [DEBUG][Thread-603016 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:24:07,200 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:24:07,201 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:24:14,176 [DEBUG][Thread-603017 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:24:23,201 [DEBUG][Thread-603018 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:24:25,974 [DEBUG][Thread-603019 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:24:32,220 [DEBUG][Thread-603020 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:24:34,196 [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-07-01 11:24:41,239 [DEBUG][Thread-603021 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:24:44,206 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:24:44,207 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:24:44,207 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:24:44,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-07-01 11:24:44,744 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 24, 11), 9.73, 50.88, 0.0, 33.15, 10.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:24:44,744 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:24:11
2025-07-01 11:24:44,834 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:24:44,838 [DEBUG][       Thread-603022][   transport.py][1871] : starting thread (client mode): 0x8106470
2025-07-01 11:24:44,838 [DEBUG][       Thread-603022][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:24:44,859 [DEBUG][       Thread-603022][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:24:44,859 [ INFO][       Thread-603022][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:24:44,862 [DEBUG][       Thread-603022][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:24:44,862 [DEBUG][       Thread-603022][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:24:44,862 [DEBUG][       Thread-603022][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:24:44,862 [DEBUG][       Thread-603022][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:24:44,862 [DEBUG][       Thread-603022][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:24:44,862 [DEBUG][       Thread-603022][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:24:44,862 [DEBUG][       Thread-603022][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:24:44,862 [DEBUG][       Thread-603022][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:24:44,862 [DEBUG][       Thread-603022][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:24:44,862 [DEBUG][       Thread-603022][   transport.py][1871] : client lang: <none>
2025-07-01 11:24:44,862 [DEBUG][       Thread-603022][   transport.py][1871] : server lang: <none>
2025-07-01 11:24:44,862 [DEBUG][       Thread-603022][   transport.py][1871] : kex follows: False
2025-07-01 11:24:44,862 [DEBUG][       Thread-603022][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:24:44,862 [DEBUG][       Thread-603022][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:24:44,862 [DEBUG][       Thread-603022][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:24:44,862 [DEBUG][       Thread-603022][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:24:44,862 [DEBUG][       Thread-603022][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:24:44,862 [DEBUG][       Thread-603022][   transport.py][1871] : Compression: none
2025-07-01 11:24:44,862 [DEBUG][       Thread-603022][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:24:44,876 [DEBUG][       Thread-603022][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:24:44,876 [DEBUG][       Thread-603022][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:24:44,876 [DEBUG][       Thread-603022][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:24:44,876 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:24:44,876 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:24:44,877 [DEBUG][       Thread-603022][   transport.py][1871] : userauth is OK
2025-07-01 11:24:44,901 [ INFO][       Thread-603022][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:24:44,901 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:24:45,554 [DEBUG][       Thread-603022][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:24:45,555 [DEBUG][       Thread-603022][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:24:45,596 [DEBUG][       Thread-603022][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:24:45,596 [DEBUG][       Thread-603022][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:24:45,599 [DEBUG][       Thread-603022][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:24:45,612 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:24:45,612 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:24:45,613 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:24:45,614 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:24:45,617 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:24:45,618 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:24:45,618 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:24:45,618 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:24:45,618 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.391959 -999.00  +10.40  37.61     56   +2.00 1 2 2 1 1   887    0 7.68 -26.52 ----- 37.6 37.6 36.6 46.4 13.4 -20.5 12.6 -21.1 12.1 -19.5 12.9 -19.5
2025-07-01 11:24:45,618 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:24:45,618 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:24:45,618 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.391959
2025-07-01 11:24:45,618 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:24:45,618 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:24:45,618 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:24:45,618 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:24:45,618 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:24:45,618 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:24:11', tmtdew=9.73, humidity=50.88, cloud=0.0, wind=33.15, temperature=10.61, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:24:25.258', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:24:45,619 [DEBUG][       Thread-603022][   transport.py][1871] : EOF in transport thread
2025-07-01 11:24:45,694 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:24:45,706 [DEBUG][       Thread-603025][   transport.py][1871] : starting thread (client mode): 0x818ee30
2025-07-01 11:24:45,706 [DEBUG][       Thread-603025][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:24:45,721 [DEBUG][       Thread-603025][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:24:45,721 [ INFO][       Thread-603025][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:24:45,728 [DEBUG][       Thread-603025][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:24:45,728 [DEBUG][       Thread-603025][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:24:45,728 [DEBUG][       Thread-603025][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:24:45,728 [DEBUG][       Thread-603025][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:24:45,729 [DEBUG][       Thread-603025][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:24:45,729 [DEBUG][       Thread-603025][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:24:45,729 [DEBUG][       Thread-603025][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:24:45,729 [DEBUG][       Thread-603025][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:24:45,729 [DEBUG][       Thread-603025][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:24:45,729 [DEBUG][       Thread-603025][   transport.py][1871] : client lang: <none>
2025-07-01 11:24:45,729 [DEBUG][       Thread-603025][   transport.py][1871] : server lang: <none>
2025-07-01 11:24:45,729 [DEBUG][       Thread-603025][   transport.py][1871] : kex follows: False
2025-07-01 11:24:45,729 [DEBUG][       Thread-603025][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:24:45,729 [DEBUG][       Thread-603025][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:24:45,729 [DEBUG][       Thread-603025][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:24:45,729 [DEBUG][       Thread-603025][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:24:45,729 [DEBUG][       Thread-603025][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:24:45,729 [DEBUG][       Thread-603025][   transport.py][1871] : Compression: none
2025-07-01 11:24:45,729 [DEBUG][       Thread-603025][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:24:45,786 [DEBUG][       Thread-603025][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:24:45,787 [DEBUG][       Thread-603025][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:24:45,787 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:24:45,788 [DEBUG][       Thread-603025][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:24:45,789 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:24:45,846 [DEBUG][       Thread-603025][   transport.py][1871] : userauth is OK
2025-07-01 11:24:45,846 [DEBUG][       Thread-603025][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:24:45,846 [DEBUG][       Thread-603025][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:24:45,846 [DEBUG][       Thread-603025][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:24:45,846 [DEBUG][       Thread-603025][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:24:45,864 [ INFO][       Thread-603025][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:24:45,864 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:24:45,864 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:24:46,838 [DEBUG][       Thread-603025][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:24:46,839 [DEBUG][       Thread-603025][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:24:46,888 [DEBUG][       Thread-603025][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:24:46,888 [DEBUG][       Thread-603025][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:24:46,898 [DEBUG][       Thread-603025][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:24:46,907 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:24: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-07-01 11:24:46,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-07-01 11:24:46,928 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:24:46,929 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:24:46,929 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:24:46,937 [DEBUG][       Thread-603025][   transport.py][1871] : EOF in transport thread
2025-07-01 11:24:50,260 [DEBUG][Thread-603027 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:24:56,939 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:24:56,940 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:24:56,940 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:24:56,943 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 11:24:57,437 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 24, 43), 9.76, 50.75, 0.0, 34.93, 10.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:24:57,437 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:24:43
2025-07-01 11:24:57,523 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:24:57,527 [DEBUG][       Thread-603028][   transport.py][1871] : starting thread (client mode): 0x8172e30
2025-07-01 11:24:57,527 [DEBUG][       Thread-603028][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:24:57,548 [DEBUG][       Thread-603028][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:24:57,549 [ INFO][       Thread-603028][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:24:57,552 [DEBUG][       Thread-603028][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:24:57,552 [DEBUG][       Thread-603028][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:24:57,552 [DEBUG][       Thread-603028][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:24:57,552 [DEBUG][       Thread-603028][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:24:57,552 [DEBUG][       Thread-603028][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:24:57,552 [DEBUG][       Thread-603028][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:24:57,552 [DEBUG][       Thread-603028][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:24:57,552 [DEBUG][       Thread-603028][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:24:57,552 [DEBUG][       Thread-603028][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:24:57,552 [DEBUG][       Thread-603028][   transport.py][1871] : client lang: <none>
2025-07-01 11:24:57,552 [DEBUG][       Thread-603028][   transport.py][1871] : server lang: <none>
2025-07-01 11:24:57,552 [DEBUG][       Thread-603028][   transport.py][1871] : kex follows: False
2025-07-01 11:24:57,552 [DEBUG][       Thread-603028][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:24:57,552 [DEBUG][       Thread-603028][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:24:57,552 [DEBUG][       Thread-603028][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:24:57,552 [DEBUG][       Thread-603028][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:24:57,552 [DEBUG][       Thread-603028][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:24:57,552 [DEBUG][       Thread-603028][   transport.py][1871] : Compression: none
2025-07-01 11:24:57,553 [DEBUG][       Thread-603028][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:24:57,570 [DEBUG][       Thread-603028][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:24:57,571 [DEBUG][       Thread-603028][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:24:57,572 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:24:57,572 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:24:57,573 [DEBUG][       Thread-603028][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:24:57,573 [DEBUG][       Thread-603028][   transport.py][1871] : userauth is OK
2025-07-01 11:24:57,600 [ INFO][       Thread-603028][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:24:57,600 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:24:58,276 [DEBUG][       Thread-603028][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:24:58,276 [DEBUG][       Thread-603028][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:24:58,316 [DEBUG][       Thread-603028][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:24:58,316 [DEBUG][       Thread-603028][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:24:58,319 [DEBUG][       Thread-603028][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:24:58,331 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:24:58,331 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:24:58,332 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:24:58,334 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:24:58,337 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:24:58,338 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:24:58,338 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:24:58,338 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:24:58,338 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.391959 -999.00  +10.40  37.61     56   +2.00 1 2 2 1 1   887    0 7.68 -26.52 ----- 37.6 37.6 36.6 46.4 13.4 -20.5 12.6 -21.1 12.1 -19.5 12.9 -19.5
2025-07-01 11:24:58,338 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:24:58,338 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:24:58,338 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.391959
2025-07-01 11:24:58,339 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:24:58,339 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:24:58,339 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:24:58,339 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:24:58,339 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:24:58,339 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:24:43', tmtdew=9.76, humidity=50.75, cloud=0.0, wind=34.93, temperature=10.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:24:25.258', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:24:58,339 [DEBUG][       Thread-603028][   transport.py][1871] : EOF in transport thread
2025-07-01 11:24:58,411 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:24:58,422 [DEBUG][       Thread-603031][   transport.py][1871] : starting thread (client mode): 0x8154d30
2025-07-01 11:24:58,422 [DEBUG][       Thread-603031][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:24:58,437 [DEBUG][       Thread-603031][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:24:58,437 [ INFO][       Thread-603031][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:24:58,444 [DEBUG][       Thread-603031][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:24:58,445 [DEBUG][       Thread-603031][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:24:58,445 [DEBUG][       Thread-603031][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:24:58,445 [DEBUG][       Thread-603031][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:24:58,445 [DEBUG][       Thread-603031][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:24:58,445 [DEBUG][       Thread-603031][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:24:58,445 [DEBUG][       Thread-603031][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:24:58,445 [DEBUG][       Thread-603031][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:24:58,445 [DEBUG][       Thread-603031][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:24:58,445 [DEBUG][       Thread-603031][   transport.py][1871] : client lang: <none>
2025-07-01 11:24:58,445 [DEBUG][       Thread-603031][   transport.py][1871] : server lang: <none>
2025-07-01 11:24:58,445 [DEBUG][       Thread-603031][   transport.py][1871] : kex follows: False
2025-07-01 11:24:58,445 [DEBUG][       Thread-603031][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:24:58,445 [DEBUG][       Thread-603031][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:24:58,445 [DEBUG][       Thread-603031][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:24:58,445 [DEBUG][       Thread-603031][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:24:58,445 [DEBUG][       Thread-603031][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:24:58,445 [DEBUG][       Thread-603031][   transport.py][1871] : Compression: none
2025-07-01 11:24:58,445 [DEBUG][       Thread-603031][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:24:58,502 [DEBUG][       Thread-603031][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:24:58,502 [DEBUG][       Thread-603031][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:24:58,503 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:24:58,504 [DEBUG][       Thread-603031][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:24:58,504 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:24:58,558 [DEBUG][       Thread-603031][   transport.py][1871] : userauth is OK
2025-07-01 11:24:58,558 [DEBUG][       Thread-603031][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:24:58,558 [DEBUG][       Thread-603031][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:24:58,558 [DEBUG][       Thread-603031][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:24:58,559 [DEBUG][       Thread-603031][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:24:58,585 [ INFO][       Thread-603031][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:24:58,585 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:24:58,586 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:24:59,304 [DEBUG][Thread-603033 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:24:59,580 [DEBUG][       Thread-603031][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:24:59,581 [DEBUG][       Thread-603031][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:24:59,635 [DEBUG][       Thread-603031][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:24:59,636 [DEBUG][       Thread-603031][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:24:59,648 [DEBUG][       Thread-603031][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:24:59,657 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:24:59,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-07-01 11:24:59,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-07-01 11:24:59,675 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:24:59,675 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:24:59,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:24:59,683 [DEBUG][       Thread-603031][   transport.py][1871] : EOF in transport thread
2025-07-01 11:25:07,339 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:25:07,340 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:25:08,337 [DEBUG][Thread-603034 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:25:09,684 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:25:09,684 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:25:09,684 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:25:09,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-07-01 11:25:10,205 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 24, 43), 9.76, 50.75, 0.0, 34.93, 10.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:25:10,205 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:24:43
2025-07-01 11:25:10,299 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:25:10,303 [DEBUG][       Thread-603035][   transport.py][1871] : starting thread (client mode): 0x82b2680
2025-07-01 11:25:10,303 [DEBUG][       Thread-603035][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:25:10,323 [DEBUG][       Thread-603035][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:25:10,323 [ INFO][       Thread-603035][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:25:10,327 [DEBUG][       Thread-603035][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:25:10,327 [DEBUG][       Thread-603035][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:25:10,327 [DEBUG][       Thread-603035][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:25:10,327 [DEBUG][       Thread-603035][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:25:10,327 [DEBUG][       Thread-603035][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:25:10,327 [DEBUG][       Thread-603035][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:25:10,327 [DEBUG][       Thread-603035][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:25:10,327 [DEBUG][       Thread-603035][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:25:10,327 [DEBUG][       Thread-603035][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:25:10,327 [DEBUG][       Thread-603035][   transport.py][1871] : client lang: <none>
2025-07-01 11:25:10,327 [DEBUG][       Thread-603035][   transport.py][1871] : server lang: <none>
2025-07-01 11:25:10,327 [DEBUG][       Thread-603035][   transport.py][1871] : kex follows: False
2025-07-01 11:25:10,327 [DEBUG][       Thread-603035][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:25:10,327 [DEBUG][       Thread-603035][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:25:10,327 [DEBUG][       Thread-603035][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:25:10,327 [DEBUG][       Thread-603035][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:25:10,327 [DEBUG][       Thread-603035][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:25:10,327 [DEBUG][       Thread-603035][   transport.py][1871] : Compression: none
2025-07-01 11:25:10,327 [DEBUG][       Thread-603035][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:25:10,343 [DEBUG][       Thread-603035][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:25:10,343 [DEBUG][       Thread-603035][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:25:10,343 [DEBUG][       Thread-603035][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:25:10,343 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:25:10,343 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:25:10,384 [DEBUG][       Thread-603035][   transport.py][1871] : userauth is OK
2025-07-01 11:25:10,408 [ INFO][       Thread-603035][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:25:10,409 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:25:11,071 [DEBUG][       Thread-603035][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:25:11,071 [DEBUG][       Thread-603035][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:25:11,112 [DEBUG][       Thread-603035][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:25:11,112 [DEBUG][       Thread-603035][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:25:11,115 [DEBUG][       Thread-603035][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:25:11,127 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:25:11,127 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:25:11,129 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:25:11,129 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:25:11,132 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:25:11,133 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:25:11,133 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:25:11,133 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:25:11,133 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.391959 -999.00  +10.40  37.61     56   +2.00 1 2 2 1 1   887    0 7.68 -26.52 ----- 37.6 37.6 36.6 46.4 13.4 -20.5 12.6 -21.1 12.1 -19.5 12.9 -19.5
2025-07-01 11:25:11,133 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:25:11,133 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:25:11,133 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.391959
2025-07-01 11:25:11,133 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:25:11,133 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:25:11,133 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:25:11,133 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:25:11,133 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:25:11,133 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:24:43', tmtdew=9.76, humidity=50.75, cloud=0.0, wind=34.93, temperature=10.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:24:25.258', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:25:11,134 [DEBUG][       Thread-603035][   transport.py][1871] : EOF in transport thread
2025-07-01 11:25:11,208 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:25:11,219 [DEBUG][       Thread-603038][   transport.py][1871] : starting thread (client mode): 0x75a8a60
2025-07-01 11:25:11,219 [DEBUG][       Thread-603038][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:25:11,237 [DEBUG][       Thread-603038][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:25:11,237 [ INFO][       Thread-603038][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:25:11,244 [DEBUG][       Thread-603038][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:25:11,244 [DEBUG][       Thread-603038][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:25:11,244 [DEBUG][       Thread-603038][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:25:11,244 [DEBUG][       Thread-603038][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:25:11,244 [DEBUG][       Thread-603038][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:25:11,244 [DEBUG][       Thread-603038][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:25:11,244 [DEBUG][       Thread-603038][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:25:11,244 [DEBUG][       Thread-603038][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:25:11,244 [DEBUG][       Thread-603038][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:25:11,244 [DEBUG][       Thread-603038][   transport.py][1871] : client lang: <none>
2025-07-01 11:25:11,244 [DEBUG][       Thread-603038][   transport.py][1871] : server lang: <none>
2025-07-01 11:25:11,244 [DEBUG][       Thread-603038][   transport.py][1871] : kex follows: False
2025-07-01 11:25:11,244 [DEBUG][       Thread-603038][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:25:11,244 [DEBUG][       Thread-603038][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:25:11,244 [DEBUG][       Thread-603038][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:25:11,244 [DEBUG][       Thread-603038][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:25:11,244 [DEBUG][       Thread-603038][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:25:11,244 [DEBUG][       Thread-603038][   transport.py][1871] : Compression: none
2025-07-01 11:25:11,244 [DEBUG][       Thread-603038][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:25:11,300 [DEBUG][       Thread-603038][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:25:11,300 [DEBUG][       Thread-603038][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:25:11,300 [DEBUG][       Thread-603038][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:25:11,301 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:25:11,301 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:25:11,358 [DEBUG][       Thread-603038][   transport.py][1871] : userauth is OK
2025-07-01 11:25:11,358 [DEBUG][       Thread-603038][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:25:11,358 [DEBUG][       Thread-603038][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:25:11,358 [DEBUG][       Thread-603038][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:25:11,358 [DEBUG][       Thread-603038][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:25:11,372 [ INFO][       Thread-603038][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:25:11,372 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:25:11,372 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:25:12,401 [DEBUG][       Thread-603038][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:25:12,401 [DEBUG][       Thread-603038][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:25:12,453 [DEBUG][       Thread-603038][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:25:12,453 [DEBUG][       Thread-603038][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:25:12,462 [DEBUG][       Thread-603038][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:25:12,470 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:25: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-07-01 11:25: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-07-01 11:25:12,486 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:25:12,486 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:25:12,486 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:25:12,494 [DEBUG][       Thread-603038][   transport.py][1871] : EOF in transport thread
2025-07-01 11:25:17,353 [DEBUG][Thread-603040 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:25:22,497 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:25:22,497 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:25:22,497 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:25:22,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-07-01 11:25:23,001 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 25, 15), 9.65, 51.33, 0.0, 33.56, 10.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:25:23,001 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:25:15
2025-07-01 11:25:23,087 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:25:23,091 [DEBUG][       Thread-603041][   transport.py][1871] : starting thread (client mode): 0x8170a00
2025-07-01 11:25:23,091 [DEBUG][       Thread-603041][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:25:23,111 [DEBUG][       Thread-603041][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:25:23,111 [ INFO][       Thread-603041][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:25:23,113 [DEBUG][       Thread-603041][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:25:23,113 [DEBUG][       Thread-603041][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:25:23,113 [DEBUG][       Thread-603041][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:25:23,113 [DEBUG][       Thread-603041][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:25:23,113 [DEBUG][       Thread-603041][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:25:23,113 [DEBUG][       Thread-603041][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:25:23,113 [DEBUG][       Thread-603041][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:25:23,113 [DEBUG][       Thread-603041][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:25:23,113 [DEBUG][       Thread-603041][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:25:23,113 [DEBUG][       Thread-603041][   transport.py][1871] : client lang: <none>
2025-07-01 11:25:23,113 [DEBUG][       Thread-603041][   transport.py][1871] : server lang: <none>
2025-07-01 11:25:23,113 [DEBUG][       Thread-603041][   transport.py][1871] : kex follows: False
2025-07-01 11:25:23,113 [DEBUG][       Thread-603041][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:25:23,113 [DEBUG][       Thread-603041][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:25:23,113 [DEBUG][       Thread-603041][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:25:23,113 [DEBUG][       Thread-603041][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:25:23,113 [DEBUG][       Thread-603041][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:25:23,113 [DEBUG][       Thread-603041][   transport.py][1871] : Compression: none
2025-07-01 11:25:23,113 [DEBUG][       Thread-603041][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:25:23,130 [DEBUG][       Thread-603041][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:25:23,130 [DEBUG][       Thread-603041][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:25:23,131 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:25:23,131 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:25:23,132 [DEBUG][       Thread-603041][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:25:23,132 [DEBUG][       Thread-603041][   transport.py][1871] : userauth is OK
2025-07-01 11:25:23,145 [ INFO][       Thread-603041][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:25:23,145 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:25:23,711 [DEBUG][       Thread-603041][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:25:23,711 [DEBUG][       Thread-603041][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:25:23,753 [DEBUG][       Thread-603041][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:25:23,753 [DEBUG][       Thread-603041][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:25:23,756 [DEBUG][       Thread-603041][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:25:23,770 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:25:23,770 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:25:23,772 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:25:23,773 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:25:23,780 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:25:23,782 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:25:23,783 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:25:23,783 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:25:23,783 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.392306 -999.00  +10.40  41.35     56   +2.00 1 2 2 1 1   887    0 7.83 -28.45 ----- 41.4 41.4 38.1 55.7 13.5 -20.4 12.7 -21.3 12.2 -20.4 13.0 -19.2
2025-07-01 11:25:23,783 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:25:23,784 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:25:23,784 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.392306
2025-07-01 11:25:23,784 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:25:23,785 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:25:23,785 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:25:23,785 [DEBUG][       Thread-603041][   transport.py][1871] : EOF in transport thread
2025-07-01 11:25:23,785 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:25:23,786 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:25:23,786 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:25:15', tmtdew=9.65, humidity=51.33, cloud=0.0, wind=33.56, temperature=10.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:24:55.238', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:25:23,871 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:25:23,880 [DEBUG][       Thread-603044][   transport.py][1871] : starting thread (client mode): 0x8a65e70
2025-07-01 11:25:23,880 [DEBUG][       Thread-603044][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:25:23,894 [DEBUG][       Thread-603044][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:25:23,894 [ INFO][       Thread-603044][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:25:23,902 [DEBUG][       Thread-603044][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:25:23,902 [DEBUG][       Thread-603044][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:25:23,902 [DEBUG][       Thread-603044][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:25:23,902 [DEBUG][       Thread-603044][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:25:23,902 [DEBUG][       Thread-603044][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:25:23,902 [DEBUG][       Thread-603044][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:25:23,902 [DEBUG][       Thread-603044][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:25:23,902 [DEBUG][       Thread-603044][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:25:23,902 [DEBUG][       Thread-603044][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:25:23,902 [DEBUG][       Thread-603044][   transport.py][1871] : client lang: <none>
2025-07-01 11:25:23,902 [DEBUG][       Thread-603044][   transport.py][1871] : server lang: <none>
2025-07-01 11:25:23,902 [DEBUG][       Thread-603044][   transport.py][1871] : kex follows: False
2025-07-01 11:25:23,902 [DEBUG][       Thread-603044][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:25:23,902 [DEBUG][       Thread-603044][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:25:23,902 [DEBUG][       Thread-603044][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:25:23,902 [DEBUG][       Thread-603044][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:25:23,902 [DEBUG][       Thread-603044][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:25:23,902 [DEBUG][       Thread-603044][   transport.py][1871] : Compression: none
2025-07-01 11:25:23,902 [DEBUG][       Thread-603044][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:25:23,965 [DEBUG][       Thread-603044][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:25:23,966 [DEBUG][       Thread-603044][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:25:23,966 [DEBUG][       Thread-603044][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:25:23,967 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:25:23,967 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:25:24,023 [DEBUG][       Thread-603044][   transport.py][1871] : userauth is OK
2025-07-01 11:25:24,023 [DEBUG][       Thread-603044][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:25:24,023 [DEBUG][       Thread-603044][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:25:24,023 [DEBUG][       Thread-603044][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:25:24,023 [DEBUG][       Thread-603044][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:25:24,042 [ INFO][       Thread-603044][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:25:24,043 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:25:24,043 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:25:24,997 [DEBUG][       Thread-603044][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:25:24,998 [DEBUG][       Thread-603044][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:25:25,048 [DEBUG][       Thread-603044][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:25:25,048 [DEBUG][       Thread-603044][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:25:25,057 [DEBUG][       Thread-603044][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:25:25,066 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:25:25,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-07-01 11:25:25,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-07-01 11:25:25,085 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:25:25,085 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:25:25,085 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:25:25,093 [DEBUG][       Thread-603044][   transport.py][1871] : EOF in transport thread
2025-07-01 11:25:26,028 [DEBUG][Thread-603046 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:25:26,372 [DEBUG][Thread-603047 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:25:35,092 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:25:35,092 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:25:35,092 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:25:35,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-07-01 11:25:35,396 [DEBUG][Thread-603048 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:25:35,597 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 25, 15), 9.65, 51.33, 0.0, 33.56, 10.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:25:35,597 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:25:15
2025-07-01 11:25:35,683 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:25:35,687 [DEBUG][       Thread-603049][   transport.py][1871] : starting thread (client mode): 0x75aa200
2025-07-01 11:25:35,687 [DEBUG][       Thread-603049][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:25:35,708 [DEBUG][       Thread-603049][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:25:35,708 [ INFO][       Thread-603049][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:25:35,711 [DEBUG][       Thread-603049][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:25:35,711 [DEBUG][       Thread-603049][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:25:35,711 [DEBUG][       Thread-603049][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:25:35,711 [DEBUG][       Thread-603049][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:25:35,711 [DEBUG][       Thread-603049][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:25:35,711 [DEBUG][       Thread-603049][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:25:35,711 [DEBUG][       Thread-603049][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:25:35,711 [DEBUG][       Thread-603049][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:25:35,711 [DEBUG][       Thread-603049][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:25:35,711 [DEBUG][       Thread-603049][   transport.py][1871] : client lang: <none>
2025-07-01 11:25:35,711 [DEBUG][       Thread-603049][   transport.py][1871] : server lang: <none>
2025-07-01 11:25:35,711 [DEBUG][       Thread-603049][   transport.py][1871] : kex follows: False
2025-07-01 11:25:35,711 [DEBUG][       Thread-603049][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:25:35,711 [DEBUG][       Thread-603049][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:25:35,711 [DEBUG][       Thread-603049][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:25:35,711 [DEBUG][       Thread-603049][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:25:35,711 [DEBUG][       Thread-603049][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:25:35,711 [DEBUG][       Thread-603049][   transport.py][1871] : Compression: none
2025-07-01 11:25:35,711 [DEBUG][       Thread-603049][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:25:35,726 [DEBUG][       Thread-603049][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:25:35,726 [DEBUG][       Thread-603049][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:25:35,726 [DEBUG][       Thread-603049][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:25:35,726 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:25:35,726 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:25:35,768 [DEBUG][       Thread-603049][   transport.py][1871] : userauth is OK
2025-07-01 11:25:35,793 [ INFO][       Thread-603049][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:25:35,793 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:25:36,441 [DEBUG][       Thread-603049][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:25:36,441 [DEBUG][       Thread-603049][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:25:36,485 [DEBUG][       Thread-603049][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:25:36,485 [DEBUG][       Thread-603049][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:25:36,488 [DEBUG][       Thread-603049][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:25:36,502 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:25:36,503 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:25:36,505 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:25:36,506 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:25:36,512 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:25:36,514 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:25:36,514 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:25:36,515 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:25:36,515 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.392306 -999.00  +10.40  41.35     56   +2.00 1 2 2 1 1   887    0 7.83 -28.45 ----- 41.4 41.4 38.1 55.7 13.5 -20.4 12.7 -21.3 12.2 -20.4 13.0 -19.2
2025-07-01 11:25:36,515 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:25:36,515 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:25:36,515 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.392306
2025-07-01 11:25:36,515 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:25:36,516 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:25:36,516 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:25:36,516 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:25:36,516 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:25:36,516 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:25:15', tmtdew=9.65, humidity=51.33, cloud=0.0, wind=33.56, temperature=10.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:24:55.238', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:25:36,517 [DEBUG][       Thread-603049][   transport.py][1871] : EOF in transport thread
2025-07-01 11:25:36,600 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:25:36,609 [DEBUG][       Thread-603052][   transport.py][1871] : starting thread (client mode): 0x8172320
2025-07-01 11:25:36,609 [DEBUG][       Thread-603052][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:25:36,624 [DEBUG][       Thread-603052][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:25:36,624 [ INFO][       Thread-603052][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:25:36,631 [DEBUG][       Thread-603052][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:25:36,632 [DEBUG][       Thread-603052][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:25:36,632 [DEBUG][       Thread-603052][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:25:36,632 [DEBUG][       Thread-603052][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:25:36,632 [DEBUG][       Thread-603052][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:25:36,632 [DEBUG][       Thread-603052][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:25:36,632 [DEBUG][       Thread-603052][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:25:36,632 [DEBUG][       Thread-603052][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:25:36,632 [DEBUG][       Thread-603052][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:25:36,632 [DEBUG][       Thread-603052][   transport.py][1871] : client lang: <none>
2025-07-01 11:25:36,632 [DEBUG][       Thread-603052][   transport.py][1871] : server lang: <none>
2025-07-01 11:25:36,632 [DEBUG][       Thread-603052][   transport.py][1871] : kex follows: False
2025-07-01 11:25:36,632 [DEBUG][       Thread-603052][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:25:36,632 [DEBUG][       Thread-603052][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:25:36,632 [DEBUG][       Thread-603052][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:25:36,632 [DEBUG][       Thread-603052][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:25:36,632 [DEBUG][       Thread-603052][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:25:36,632 [DEBUG][       Thread-603052][   transport.py][1871] : Compression: none
2025-07-01 11:25:36,632 [DEBUG][       Thread-603052][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:25:36,690 [DEBUG][       Thread-603052][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:25:36,690 [DEBUG][       Thread-603052][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:25:36,691 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:25:36,691 [DEBUG][       Thread-603052][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:25:36,692 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:25:36,746 [DEBUG][       Thread-603052][   transport.py][1871] : userauth is OK
2025-07-01 11:25:36,746 [DEBUG][       Thread-603052][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:25:36,747 [DEBUG][       Thread-603052][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:25:36,747 [DEBUG][       Thread-603052][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:25:36,747 [DEBUG][       Thread-603052][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:25:36,765 [ INFO][       Thread-603052][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:25:36,766 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:25:36,766 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:25:37,755 [DEBUG][       Thread-603052][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:25:37,755 [DEBUG][       Thread-603052][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:25:37,804 [DEBUG][       Thread-603052][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:25:37,804 [DEBUG][       Thread-603052][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:25:37,813 [DEBUG][       Thread-603052][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:25:37,822 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:25:37,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')
2025-07-01 11:25:37,833 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 11:25:37,844 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:25:37,844 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:25:37,844 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:25:37,853 [DEBUG][       Thread-603052][   transport.py][1871] : EOF in transport thread
2025-07-01 11:25:44,416 [DEBUG][Thread-603054 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:25:47,852 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:25:47,852 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:25:47,852 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:25:47,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-07-01 11:25:48,413 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 25, 15), 9.65, 51.33, 0.0, 33.56, 10.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:25:48,414 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:25:15
2025-07-01 11:25:48,507 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:25:48,511 [DEBUG][       Thread-603055][   transport.py][1871] : starting thread (client mode): 0x75a8b80
2025-07-01 11:25:48,511 [DEBUG][       Thread-603055][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:25:48,533 [DEBUG][       Thread-603055][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:25:48,533 [ INFO][       Thread-603055][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:25:48,537 [DEBUG][       Thread-603055][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:25:48,537 [DEBUG][       Thread-603055][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:25:48,537 [DEBUG][       Thread-603055][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:25:48,537 [DEBUG][       Thread-603055][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:25:48,537 [DEBUG][       Thread-603055][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:25:48,537 [DEBUG][       Thread-603055][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:25:48,537 [DEBUG][       Thread-603055][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:25:48,537 [DEBUG][       Thread-603055][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:25:48,537 [DEBUG][       Thread-603055][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:25:48,537 [DEBUG][       Thread-603055][   transport.py][1871] : client lang: <none>
2025-07-01 11:25:48,537 [DEBUG][       Thread-603055][   transport.py][1871] : server lang: <none>
2025-07-01 11:25:48,537 [DEBUG][       Thread-603055][   transport.py][1871] : kex follows: False
2025-07-01 11:25:48,537 [DEBUG][       Thread-603055][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:25:48,537 [DEBUG][       Thread-603055][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:25:48,537 [DEBUG][       Thread-603055][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:25:48,537 [DEBUG][       Thread-603055][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:25:48,538 [DEBUG][       Thread-603055][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:25:48,538 [DEBUG][       Thread-603055][   transport.py][1871] : Compression: none
2025-07-01 11:25:48,538 [DEBUG][       Thread-603055][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:25:48,551 [DEBUG][       Thread-603055][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:25:48,551 [DEBUG][       Thread-603055][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:25:48,551 [DEBUG][       Thread-603055][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:25:48,551 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:25:48,551 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:25:48,552 [DEBUG][       Thread-603055][   transport.py][1871] : userauth is OK
2025-07-01 11:25:48,565 [ INFO][       Thread-603055][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:25:48,566 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:25:49,186 [DEBUG][       Thread-603055][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:25:49,186 [DEBUG][       Thread-603055][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:25:49,232 [DEBUG][       Thread-603055][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:25:49,232 [DEBUG][       Thread-603055][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:25:49,234 [DEBUG][       Thread-603055][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:25:49,246 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:25:49,246 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:25:49,246 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:25:49,247 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:25:49,249 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:25:49,250 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:25:49,250 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:25:49,250 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:25:49,250 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.392653 -999.00  +10.40  38.61     56   +2.00 1 2 2 1 1   887    0 7.72 -30.34 ----- 38.6 38.6 37.6 50.4 13.5 -20.8 12.8 -21.3 12.2 -19.5 13.1 -19.4
2025-07-01 11:25:49,250 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:25:49,250 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:25:49,250 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.392653
2025-07-01 11:25:49,251 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:25:49,251 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:25:49,251 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:25:49,251 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:25:49,251 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:25:49,251 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:25:15', tmtdew=9.65, humidity=51.33, cloud=0.0, wind=33.56, temperature=10.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:25:25.219', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:25:49,251 [DEBUG][       Thread-603055][   transport.py][1871] : EOF in transport thread
2025-07-01 11:25:49,326 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:25:49,338 [DEBUG][       Thread-603058][   transport.py][1871] : starting thread (client mode): 0x818e8f0
2025-07-01 11:25:49,338 [DEBUG][       Thread-603058][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:25:49,353 [DEBUG][       Thread-603058][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:25:49,353 [ INFO][       Thread-603058][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:25:49,360 [DEBUG][       Thread-603058][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:25:49,360 [DEBUG][       Thread-603058][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:25:49,360 [DEBUG][       Thread-603058][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:25:49,360 [DEBUG][       Thread-603058][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:25:49,360 [DEBUG][       Thread-603058][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:25:49,360 [DEBUG][       Thread-603058][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:25:49,360 [DEBUG][       Thread-603058][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:25:49,360 [DEBUG][       Thread-603058][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:25:49,360 [DEBUG][       Thread-603058][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:25:49,360 [DEBUG][       Thread-603058][   transport.py][1871] : client lang: <none>
2025-07-01 11:25:49,360 [DEBUG][       Thread-603058][   transport.py][1871] : server lang: <none>
2025-07-01 11:25:49,360 [DEBUG][       Thread-603058][   transport.py][1871] : kex follows: False
2025-07-01 11:25:49,361 [DEBUG][       Thread-603058][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:25:49,361 [DEBUG][       Thread-603058][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:25:49,361 [DEBUG][       Thread-603058][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:25:49,361 [DEBUG][       Thread-603058][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:25:49,361 [DEBUG][       Thread-603058][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:25:49,361 [DEBUG][       Thread-603058][   transport.py][1871] : Compression: none
2025-07-01 11:25:49,361 [DEBUG][       Thread-603058][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:25:49,416 [DEBUG][       Thread-603058][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:25:49,416 [DEBUG][       Thread-603058][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:25:49,416 [DEBUG][       Thread-603058][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:25:49,416 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:25:49,417 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:25:49,477 [DEBUG][       Thread-603058][   transport.py][1871] : userauth is OK
2025-07-01 11:25:49,477 [DEBUG][       Thread-603058][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:25:49,477 [DEBUG][       Thread-603058][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:25:49,477 [DEBUG][       Thread-603058][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:25:49,477 [DEBUG][       Thread-603058][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:25:49,492 [ INFO][       Thread-603058][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:25:49,492 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:25:49,492 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:25:50,482 [DEBUG][       Thread-603058][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:25:50,482 [DEBUG][       Thread-603058][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:25:50,531 [DEBUG][       Thread-603058][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:25:50,531 [DEBUG][       Thread-603058][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:25:50,540 [DEBUG][       Thread-603058][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:25:50,553 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:25:50,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')
2025-07-01 11:25:50,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-07-01 11:25:50,571 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:25:50,571 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:25:50,571 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:25:50,579 [DEBUG][       Thread-603058][   transport.py][1871] : EOF in transport thread
2025-07-01 11:25:53,435 [DEBUG][Thread-603060 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:26:00,581 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:26:00,581 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:26:00,581 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:26:00,582 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 11:26:01,072 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 25, 47), 9.71, 51.12, 0.0, 34.34, 10.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:26:01,072 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:25:47
2025-07-01 11:26:01,158 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:26:01,162 [DEBUG][       Thread-603061][   transport.py][1871] : starting thread (client mode): 0x75a87c0
2025-07-01 11:26:01,162 [DEBUG][       Thread-603061][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:26:01,183 [DEBUG][       Thread-603061][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:26:01,183 [ INFO][       Thread-603061][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:26:01,186 [DEBUG][       Thread-603061][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:26:01,186 [DEBUG][       Thread-603061][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:26:01,186 [DEBUG][       Thread-603061][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:26:01,186 [DEBUG][       Thread-603061][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:26:01,186 [DEBUG][       Thread-603061][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:26:01,186 [DEBUG][       Thread-603061][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:26:01,186 [DEBUG][       Thread-603061][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:26:01,186 [DEBUG][       Thread-603061][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:26:01,186 [DEBUG][       Thread-603061][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:26:01,187 [DEBUG][       Thread-603061][   transport.py][1871] : client lang: <none>
2025-07-01 11:26:01,187 [DEBUG][       Thread-603061][   transport.py][1871] : server lang: <none>
2025-07-01 11:26:01,187 [DEBUG][       Thread-603061][   transport.py][1871] : kex follows: False
2025-07-01 11:26:01,187 [DEBUG][       Thread-603061][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:26:01,187 [DEBUG][       Thread-603061][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:26:01,187 [DEBUG][       Thread-603061][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:26:01,187 [DEBUG][       Thread-603061][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:26:01,187 [DEBUG][       Thread-603061][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:26:01,187 [DEBUG][       Thread-603061][   transport.py][1871] : Compression: none
2025-07-01 11:26:01,187 [DEBUG][       Thread-603061][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:26:01,204 [DEBUG][       Thread-603061][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:26:01,204 [DEBUG][       Thread-603061][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:26:01,205 [DEBUG][       Thread-603061][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:26:01,205 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:26:01,205 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:26:01,206 [DEBUG][       Thread-603061][   transport.py][1871] : userauth is OK
2025-07-01 11:26:01,219 [ INFO][       Thread-603061][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:26:01,220 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:26:01,857 [DEBUG][       Thread-603061][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:26:01,858 [DEBUG][       Thread-603061][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:26:01,901 [DEBUG][       Thread-603061][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:26:01,901 [DEBUG][       Thread-603061][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:26:01,905 [DEBUG][       Thread-603061][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:26:01,917 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:26:01,918 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:26:01,920 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:26:01,922 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:26:01,928 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:26:01,930 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:26:01,931 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:26:01,931 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:26:01,932 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.392653 -999.00  +10.40  38.61     56   +2.00 1 2 2 1 1   887    0 7.72 -30.34 ----- 38.6 38.6 37.6 50.4 13.5 -20.8 12.8 -21.3 12.2 -19.5 13.1 -19.4
2025-07-01 11:26:01,932 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:26:01,932 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:26:01,932 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.392653
2025-07-01 11:26:01,932 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:26:01,933 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:26:01,933 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:26:01,933 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:26:01,933 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:26:01,933 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:25:47', tmtdew=9.71, humidity=51.12, cloud=0.0, wind=34.34, temperature=10.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:25:25.219', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:26:01,934 [DEBUG][       Thread-603061][   transport.py][1871] : EOF in transport thread
2025-07-01 11:26:02,017 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:26:02,027 [DEBUG][       Thread-603064][   transport.py][1871] : starting thread (client mode): 0x83c8400
2025-07-01 11:26:02,027 [DEBUG][       Thread-603064][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:26:02,043 [DEBUG][       Thread-603064][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:26:02,043 [ INFO][       Thread-603064][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:26:02,051 [DEBUG][       Thread-603064][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:26:02,051 [DEBUG][       Thread-603064][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:26:02,051 [DEBUG][       Thread-603064][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:26:02,051 [DEBUG][       Thread-603064][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:26:02,051 [DEBUG][       Thread-603064][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:26:02,051 [DEBUG][       Thread-603064][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:26:02,051 [DEBUG][       Thread-603064][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:26:02,051 [DEBUG][       Thread-603064][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:26:02,051 [DEBUG][       Thread-603064][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:26:02,051 [DEBUG][       Thread-603064][   transport.py][1871] : client lang: <none>
2025-07-01 11:26:02,051 [DEBUG][       Thread-603064][   transport.py][1871] : server lang: <none>
2025-07-01 11:26:02,051 [DEBUG][       Thread-603064][   transport.py][1871] : kex follows: False
2025-07-01 11:26:02,052 [DEBUG][       Thread-603064][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:26:02,052 [DEBUG][       Thread-603064][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:26:02,052 [DEBUG][       Thread-603064][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:26:02,052 [DEBUG][       Thread-603064][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:26:02,052 [DEBUG][       Thread-603064][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:26:02,052 [DEBUG][       Thread-603064][   transport.py][1871] : Compression: none
2025-07-01 11:26:02,052 [DEBUG][       Thread-603064][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:26:02,110 [DEBUG][       Thread-603064][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:26:02,110 [DEBUG][       Thread-603064][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:26:02,111 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:26:02,111 [DEBUG][       Thread-603064][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:26:02,112 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:26:02,166 [DEBUG][       Thread-603064][   transport.py][1871] : userauth is OK
2025-07-01 11:26:02,167 [DEBUG][       Thread-603064][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:26:02,167 [DEBUG][       Thread-603064][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:26:02,167 [DEBUG][       Thread-603064][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:26:02,167 [DEBUG][       Thread-603064][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:26:02,185 [ INFO][       Thread-603064][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:26:02,185 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:26:02,186 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:26:02,458 [DEBUG][Thread-603066 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:26:03,193 [DEBUG][       Thread-603064][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:26:03,194 [DEBUG][       Thread-603064][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:26:03,244 [DEBUG][       Thread-603064][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:26:03,244 [DEBUG][       Thread-603064][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:26:03,255 [DEBUG][       Thread-603064][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:26:03,266 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:26:03,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-07-01 11:26: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-07-01 11:26:03,284 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:26:03,284 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:26:03,285 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:26:03,293 [DEBUG][       Thread-603064][   transport.py][1871] : EOF in transport thread
2025-07-01 11:26:07,479 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:26:07,480 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:26:11,489 [DEBUG][Thread-603067 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:26:13,295 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:26:13,295 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:26:13,295 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:26:13,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-07-01 11:26:13,793 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 25, 47), 9.71, 51.12, 0.0, 34.34, 10.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:26:13,793 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:25:47
2025-07-01 11:26:13,879 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:26:13,883 [DEBUG][       Thread-603068][   transport.py][1871] : starting thread (client mode): 0x75a8b80
2025-07-01 11:26:13,883 [DEBUG][       Thread-603068][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:26:13,902 [DEBUG][       Thread-603068][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:26:13,903 [ INFO][       Thread-603068][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:26:13,906 [DEBUG][       Thread-603068][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:26:13,906 [DEBUG][       Thread-603068][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:26:13,906 [DEBUG][       Thread-603068][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:26:13,906 [DEBUG][       Thread-603068][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:26:13,906 [DEBUG][       Thread-603068][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:26:13,906 [DEBUG][       Thread-603068][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:26:13,906 [DEBUG][       Thread-603068][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:26:13,906 [DEBUG][       Thread-603068][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:26:13,906 [DEBUG][       Thread-603068][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:26:13,906 [DEBUG][       Thread-603068][   transport.py][1871] : client lang: <none>
2025-07-01 11:26:13,906 [DEBUG][       Thread-603068][   transport.py][1871] : server lang: <none>
2025-07-01 11:26:13,906 [DEBUG][       Thread-603068][   transport.py][1871] : kex follows: False
2025-07-01 11:26:13,906 [DEBUG][       Thread-603068][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:26:13,906 [DEBUG][       Thread-603068][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:26:13,906 [DEBUG][       Thread-603068][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:26:13,906 [DEBUG][       Thread-603068][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:26:13,906 [DEBUG][       Thread-603068][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:26:13,906 [DEBUG][       Thread-603068][   transport.py][1871] : Compression: none
2025-07-01 11:26:13,906 [DEBUG][       Thread-603068][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:26:13,921 [DEBUG][       Thread-603068][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:26:13,922 [DEBUG][       Thread-603068][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:26:13,922 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:26:13,922 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:26:13,923 [DEBUG][       Thread-603068][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:26:13,924 [DEBUG][       Thread-603068][   transport.py][1871] : userauth is OK
2025-07-01 11:26:13,936 [ INFO][       Thread-603068][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:26:13,937 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:26:14,550 [DEBUG][       Thread-603068][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:26:14,551 [DEBUG][       Thread-603068][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:26:14,593 [DEBUG][       Thread-603068][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:26:14,593 [DEBUG][       Thread-603068][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:26:14,596 [DEBUG][       Thread-603068][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:26:14,609 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:26:14,609 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:26:14,611 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:26:14,613 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:26:14,618 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:26:14,620 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:26:14,621 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:26:14,621 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:26:14,621 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.392653 -999.00  +10.40  38.61     56   +2.00 1 2 2 1 1   887    0 7.72 -30.34 ----- 38.6 38.6 37.6 50.4 13.5 -20.8 12.8 -21.3 12.2 -19.5 13.1 -19.4
2025-07-01 11:26:14,621 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:26:14,622 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:26:14,622 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.392653
2025-07-01 11:26:14,622 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:26:14,623 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:26:14,623 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:26:14,623 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:26:14,623 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:26:14,623 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:25:47', tmtdew=9.71, humidity=51.12, cloud=0.0, wind=34.34, temperature=10.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:25:25.219', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:26:14,623 [DEBUG][       Thread-603068][   transport.py][1871] : EOF in transport thread
2025-07-01 11:26:14,707 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:26:14,718 [DEBUG][       Thread-603071][   transport.py][1871] : starting thread (client mode): 0x818cdf0
2025-07-01 11:26:14,718 [DEBUG][       Thread-603071][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:26:14,735 [DEBUG][       Thread-603071][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:26:14,735 [ INFO][       Thread-603071][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:26:14,743 [DEBUG][       Thread-603071][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:26:14,743 [DEBUG][       Thread-603071][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:26:14,743 [DEBUG][       Thread-603071][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:26:14,743 [DEBUG][       Thread-603071][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:26:14,743 [DEBUG][       Thread-603071][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:26:14,743 [DEBUG][       Thread-603071][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:26:14,743 [DEBUG][       Thread-603071][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:26:14,743 [DEBUG][       Thread-603071][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:26:14,743 [DEBUG][       Thread-603071][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:26:14,743 [DEBUG][       Thread-603071][   transport.py][1871] : client lang: <none>
2025-07-01 11:26:14,743 [DEBUG][       Thread-603071][   transport.py][1871] : server lang: <none>
2025-07-01 11:26:14,743 [DEBUG][       Thread-603071][   transport.py][1871] : kex follows: False
2025-07-01 11:26:14,743 [DEBUG][       Thread-603071][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:26:14,743 [DEBUG][       Thread-603071][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:26:14,743 [DEBUG][       Thread-603071][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:26:14,743 [DEBUG][       Thread-603071][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:26:14,744 [DEBUG][       Thread-603071][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:26:14,744 [DEBUG][       Thread-603071][   transport.py][1871] : Compression: none
2025-07-01 11:26:14,744 [DEBUG][       Thread-603071][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:26:14,802 [DEBUG][       Thread-603071][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:26:14,802 [DEBUG][       Thread-603071][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:26:14,803 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:26:14,804 [DEBUG][       Thread-603071][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:26:14,804 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:26:14,862 [DEBUG][       Thread-603071][   transport.py][1871] : userauth is OK
2025-07-01 11:26:14,862 [DEBUG][       Thread-603071][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:26:14,862 [DEBUG][       Thread-603071][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:26:14,862 [DEBUG][       Thread-603071][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:26:14,863 [DEBUG][       Thread-603071][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:26:14,887 [ INFO][       Thread-603071][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:26:14,887 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:26:14,887 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:26:15,905 [DEBUG][       Thread-603071][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:26:15,905 [DEBUG][       Thread-603071][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:26:15,956 [DEBUG][       Thread-603071][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:26:15,956 [DEBUG][       Thread-603071][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:26:15,965 [DEBUG][       Thread-603071][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:26:15,974 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:26:15,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-07-01 11:26:15,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-07-01 11:26:15,992 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:26:15,993 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:26:15,993 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:26:16,001 [DEBUG][       Thread-603071][   transport.py][1871] : EOF in transport thread
2025-07-01 11:26:20,506 [DEBUG][Thread-603073 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:26:25,994 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:26:25,995 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:26:25,995 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:26:25,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-07-01 11:26:26,076 [DEBUG][Thread-603074 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:26:26,495 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 26, 19), 9.77, 51.01, 0.0, 33.75, 10.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:26:26,495 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:26:19
2025-07-01 11:26:26,585 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:26:26,591 [DEBUG][       Thread-603075][   transport.py][1871] : starting thread (client mode): 0x82b30a0
2025-07-01 11:26:26,591 [DEBUG][       Thread-603075][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:26:26,613 [DEBUG][       Thread-603075][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:26:26,613 [ INFO][       Thread-603075][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:26:26,616 [DEBUG][       Thread-603075][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:26:26,616 [DEBUG][       Thread-603075][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:26:26,617 [DEBUG][       Thread-603075][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:26:26,617 [DEBUG][       Thread-603075][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:26:26,617 [DEBUG][       Thread-603075][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:26:26,617 [DEBUG][       Thread-603075][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:26:26,617 [DEBUG][       Thread-603075][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:26:26,617 [DEBUG][       Thread-603075][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:26:26,617 [DEBUG][       Thread-603075][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:26:26,617 [DEBUG][       Thread-603075][   transport.py][1871] : client lang: <none>
2025-07-01 11:26:26,617 [DEBUG][       Thread-603075][   transport.py][1871] : server lang: <none>
2025-07-01 11:26:26,617 [DEBUG][       Thread-603075][   transport.py][1871] : kex follows: False
2025-07-01 11:26:26,617 [DEBUG][       Thread-603075][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:26:26,617 [DEBUG][       Thread-603075][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:26:26,617 [DEBUG][       Thread-603075][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:26:26,617 [DEBUG][       Thread-603075][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:26:26,617 [DEBUG][       Thread-603075][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:26:26,617 [DEBUG][       Thread-603075][   transport.py][1871] : Compression: none
2025-07-01 11:26:26,617 [DEBUG][       Thread-603075][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:26:26,631 [DEBUG][       Thread-603075][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:26:26,632 [DEBUG][       Thread-603075][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:26:26,632 [DEBUG][       Thread-603075][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:26:26,632 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:26:26,632 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:26:26,632 [DEBUG][       Thread-603075][   transport.py][1871] : userauth is OK
2025-07-01 11:26:26,645 [ INFO][       Thread-603075][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:26:26,645 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:26:27,302 [DEBUG][       Thread-603075][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:26:27,302 [DEBUG][       Thread-603075][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:26:27,344 [DEBUG][       Thread-603075][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:26:27,344 [DEBUG][       Thread-603075][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:26:27,347 [DEBUG][       Thread-603075][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:26:27,361 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:26:27,361 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:26:27,363 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:26:27,364 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:26:27,368 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:26:27,369 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:26:27,369 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:26:27,369 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:26:27,369 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.393000 -999.00  +10.40  45.50     55   +1.90 1 2 2 1 1   888    0 7.65 -31.08 ----- 45.5 45.5 48.4 55.1 13.7 -20.5 12.8 -21.7 12.3 -19.8 13.2 -19.3
2025-07-01 11:26:27,369 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:26:27,369 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:26:27,369 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.393000
2025-07-01 11:26:27,369 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:26:27,369 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:26:27,369 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:26:27,369 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:26:27,369 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:26:27,369 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:26:19', tmtdew=9.77, humidity=51.01, cloud=0.0, wind=33.75, temperature=10.65, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:25:55.200', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:26:27,370 [DEBUG][       Thread-603075][   transport.py][1871] : EOF in transport thread
2025-07-01 11:26:27,443 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:26:27,453 [DEBUG][       Thread-603078][   transport.py][1871] : starting thread (client mode): 0x8a65e70
2025-07-01 11:26:27,454 [DEBUG][       Thread-603078][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:26:27,468 [DEBUG][       Thread-603078][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:26:27,468 [ INFO][       Thread-603078][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:26:27,475 [DEBUG][       Thread-603078][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:26:27,476 [DEBUG][       Thread-603078][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:26:27,476 [DEBUG][       Thread-603078][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:26:27,476 [DEBUG][       Thread-603078][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:26:27,476 [DEBUG][       Thread-603078][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:26:27,476 [DEBUG][       Thread-603078][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:26:27,476 [DEBUG][       Thread-603078][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:26:27,476 [DEBUG][       Thread-603078][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:26:27,476 [DEBUG][       Thread-603078][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:26:27,476 [DEBUG][       Thread-603078][   transport.py][1871] : client lang: <none>
2025-07-01 11:26:27,476 [DEBUG][       Thread-603078][   transport.py][1871] : server lang: <none>
2025-07-01 11:26:27,476 [DEBUG][       Thread-603078][   transport.py][1871] : kex follows: False
2025-07-01 11:26:27,476 [DEBUG][       Thread-603078][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:26:27,476 [DEBUG][       Thread-603078][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:26:27,476 [DEBUG][       Thread-603078][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:26:27,476 [DEBUG][       Thread-603078][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:26:27,476 [DEBUG][       Thread-603078][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:26:27,476 [DEBUG][       Thread-603078][   transport.py][1871] : Compression: none
2025-07-01 11:26:27,476 [DEBUG][       Thread-603078][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:26:27,532 [DEBUG][       Thread-603078][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:26:27,532 [DEBUG][       Thread-603078][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:26:27,532 [DEBUG][       Thread-603078][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:26:27,532 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:26:27,533 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:26:27,589 [DEBUG][       Thread-603078][   transport.py][1871] : userauth is OK
2025-07-01 11:26:27,589 [DEBUG][       Thread-603078][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:26:27,589 [DEBUG][       Thread-603078][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:26:27,589 [DEBUG][       Thread-603078][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:26:27,589 [DEBUG][       Thread-603078][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:26:27,604 [ INFO][       Thread-603078][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:26:27,604 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:26:27,604 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:26:28,598 [DEBUG][       Thread-603078][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:26:28,598 [DEBUG][       Thread-603078][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:26:28,653 [DEBUG][       Thread-603078][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:26:28,653 [DEBUG][       Thread-603078][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:26:28,663 [DEBUG][       Thread-603078][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:26:28,671 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:26:28,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-07-01 11:26:28,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-07-01 11:26:28,689 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:26:28,689 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:26:28,689 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:26:28,700 [DEBUG][       Thread-603078][   transport.py][1871] : EOF in transport thread
2025-07-01 11:26:29,523 [DEBUG][Thread-603080 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:26:38,549 [DEBUG][Thread-603081 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:26:38,700 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:26:38,700 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:26:38,700 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:26:38,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-07-01 11:26:39,211 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 26, 19), 9.77, 51.01, 0.0, 33.75, 10.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:26:39,211 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:26:19
2025-07-01 11:26:39,294 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:26:39,298 [DEBUG][       Thread-603082][   transport.py][1871] : starting thread (client mode): 0x75aa140
2025-07-01 11:26:39,298 [DEBUG][       Thread-603082][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:26:39,319 [DEBUG][       Thread-603082][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:26:39,319 [ INFO][       Thread-603082][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:26:39,322 [DEBUG][       Thread-603082][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:26:39,322 [DEBUG][       Thread-603082][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:26:39,322 [DEBUG][       Thread-603082][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:26:39,322 [DEBUG][       Thread-603082][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:26:39,322 [DEBUG][       Thread-603082][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:26:39,322 [DEBUG][       Thread-603082][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:26:39,322 [DEBUG][       Thread-603082][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:26:39,322 [DEBUG][       Thread-603082][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:26:39,322 [DEBUG][       Thread-603082][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:26:39,322 [DEBUG][       Thread-603082][   transport.py][1871] : client lang: <none>
2025-07-01 11:26:39,322 [DEBUG][       Thread-603082][   transport.py][1871] : server lang: <none>
2025-07-01 11:26:39,322 [DEBUG][       Thread-603082][   transport.py][1871] : kex follows: False
2025-07-01 11:26:39,322 [DEBUG][       Thread-603082][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:26:39,322 [DEBUG][       Thread-603082][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:26:39,322 [DEBUG][       Thread-603082][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:26:39,322 [DEBUG][       Thread-603082][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:26:39,322 [DEBUG][       Thread-603082][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:26:39,322 [DEBUG][       Thread-603082][   transport.py][1871] : Compression: none
2025-07-01 11:26:39,322 [DEBUG][       Thread-603082][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:26:39,340 [DEBUG][       Thread-603082][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:26:39,340 [DEBUG][       Thread-603082][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:26:39,341 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:26:39,341 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:26:39,342 [DEBUG][       Thread-603082][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:26:39,342 [DEBUG][       Thread-603082][   transport.py][1871] : userauth is OK
2025-07-01 11:26:39,355 [ INFO][       Thread-603082][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:26:39,355 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:26:39,949 [DEBUG][       Thread-603082][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:26:39,949 [DEBUG][       Thread-603082][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:26:39,993 [DEBUG][       Thread-603082][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:26:39,993 [DEBUG][       Thread-603082][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:26:39,996 [DEBUG][       Thread-603082][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:26:40,007 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:26:40,008 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:26:40,010 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:26:40,011 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:26:40,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:26:40,018 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:26:40,018 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:26:40,019 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:26:40,019 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.393000 -999.00  +10.40  45.50     55   +1.90 1 2 2 1 1   888    0 7.65 -31.08 ----- 45.5 45.5 48.4 55.1 13.7 -20.5 12.8 -21.7 12.3 -19.8 13.2 -19.3
2025-07-01 11:26:40,019 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:26:40,019 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:26:40,019 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.393000
2025-07-01 11:26:40,019 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:26:40,020 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:26:40,020 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:26:40,020 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:26:40,020 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:26:40,020 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:26:19', tmtdew=9.77, humidity=51.01, cloud=0.0, wind=33.75, temperature=10.65, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:25:55.200', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:26:40,021 [DEBUG][       Thread-603082][   transport.py][1871] : EOF in transport thread
2025-07-01 11:26:40,103 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:26:40,113 [DEBUG][       Thread-603085][   transport.py][1871] : starting thread (client mode): 0x8393b80
2025-07-01 11:26:40,113 [DEBUG][       Thread-603085][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:26:40,129 [DEBUG][       Thread-603085][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:26:40,129 [ INFO][       Thread-603085][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:26:40,137 [DEBUG][       Thread-603085][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:26:40,137 [DEBUG][       Thread-603085][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:26:40,137 [DEBUG][       Thread-603085][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:26:40,137 [DEBUG][       Thread-603085][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:26:40,137 [DEBUG][       Thread-603085][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:26:40,137 [DEBUG][       Thread-603085][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:26:40,137 [DEBUG][       Thread-603085][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:26:40,137 [DEBUG][       Thread-603085][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:26:40,137 [DEBUG][       Thread-603085][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:26:40,137 [DEBUG][       Thread-603085][   transport.py][1871] : client lang: <none>
2025-07-01 11:26:40,137 [DEBUG][       Thread-603085][   transport.py][1871] : server lang: <none>
2025-07-01 11:26:40,137 [DEBUG][       Thread-603085][   transport.py][1871] : kex follows: False
2025-07-01 11:26:40,137 [DEBUG][       Thread-603085][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:26:40,138 [DEBUG][       Thread-603085][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:26:40,138 [DEBUG][       Thread-603085][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:26:40,138 [DEBUG][       Thread-603085][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:26:40,138 [DEBUG][       Thread-603085][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:26:40,138 [DEBUG][       Thread-603085][   transport.py][1871] : Compression: none
2025-07-01 11:26:40,138 [DEBUG][       Thread-603085][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:26:40,195 [DEBUG][       Thread-603085][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:26:40,196 [DEBUG][       Thread-603085][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:26:40,197 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:26:40,198 [DEBUG][       Thread-603085][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:26:40,199 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:26:40,254 [DEBUG][       Thread-603085][   transport.py][1871] : userauth is OK
2025-07-01 11:26:40,254 [DEBUG][       Thread-603085][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:26:40,254 [DEBUG][       Thread-603085][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:26:40,255 [DEBUG][       Thread-603085][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:26:40,255 [DEBUG][       Thread-603085][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:26:40,277 [ INFO][       Thread-603085][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:26:40,277 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:26:40,278 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:26:41,296 [DEBUG][       Thread-603085][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:26:41,296 [DEBUG][       Thread-603085][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:26:41,343 [DEBUG][       Thread-603085][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:26:41,344 [DEBUG][       Thread-603085][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:26:41,353 [DEBUG][       Thread-603085][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:26:41,361 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:26:41,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-07-01 11:26:41,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-07-01 11:26:41,378 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:26:41,378 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:26:41,378 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:26:41,386 [DEBUG][       Thread-603085][   transport.py][1871] : EOF in transport thread
2025-07-01 11:26:47,570 [DEBUG][Thread-603087 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:26:51,388 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:26:51,388 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:26:51,388 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:26:51,389 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 11:26:51,918 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 26, 19), 9.77, 51.01, 0.0, 33.75, 10.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:26:51,918 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:26:19
2025-07-01 11:26:52,029 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:26:52,035 [DEBUG][       Thread-603088][   transport.py][1871] : starting thread (client mode): 0x82b3670
2025-07-01 11:26:52,035 [DEBUG][       Thread-603088][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:26:52,057 [DEBUG][       Thread-603088][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:26:52,057 [ INFO][       Thread-603088][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:26:52,059 [DEBUG][       Thread-603088][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:26:52,059 [DEBUG][       Thread-603088][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:26:52,059 [DEBUG][       Thread-603088][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:26:52,059 [DEBUG][       Thread-603088][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:26:52,059 [DEBUG][       Thread-603088][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:26:52,059 [DEBUG][       Thread-603088][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:26:52,059 [DEBUG][       Thread-603088][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:26:52,059 [DEBUG][       Thread-603088][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:26:52,059 [DEBUG][       Thread-603088][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:26:52,059 [DEBUG][       Thread-603088][   transport.py][1871] : client lang: <none>
2025-07-01 11:26:52,059 [DEBUG][       Thread-603088][   transport.py][1871] : server lang: <none>
2025-07-01 11:26:52,059 [DEBUG][       Thread-603088][   transport.py][1871] : kex follows: False
2025-07-01 11:26:52,059 [DEBUG][       Thread-603088][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:26:52,059 [DEBUG][       Thread-603088][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:26:52,059 [DEBUG][       Thread-603088][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:26:52,059 [DEBUG][       Thread-603088][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:26:52,059 [DEBUG][       Thread-603088][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:26:52,059 [DEBUG][       Thread-603088][   transport.py][1871] : Compression: none
2025-07-01 11:26:52,059 [DEBUG][       Thread-603088][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:26:52,066 [DEBUG][       Thread-603088][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:26:52,066 [DEBUG][       Thread-603088][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:26:52,066 [DEBUG][       Thread-603088][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:26:52,066 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:26:52,066 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:26:52,067 [DEBUG][       Thread-603088][   transport.py][1871] : userauth is OK
2025-07-01 11:26:52,080 [ INFO][       Thread-603088][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:26:52,080 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:26:52,705 [DEBUG][       Thread-603088][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:26:52,705 [DEBUG][       Thread-603088][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:26:52,748 [DEBUG][       Thread-603088][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:26:52,748 [DEBUG][       Thread-603088][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:26:52,751 [DEBUG][       Thread-603088][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:26:52,764 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:26:52,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:26:52,765 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:26:52,767 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:26:52,771 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:26:52,771 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:26:52,771 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:26:52,771 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:26:52,771 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.393000 -999.00  +10.40  45.50     55   +1.90 1 2 2 1 1   888    0 7.65 -31.08 ----- 45.5 45.5 48.4 55.1 13.7 -20.5 12.8 -21.7 12.3 -19.8 13.2 -19.3
2025-07-01 11:26:52,771 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:26:52,771 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:26:52,771 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.393000
2025-07-01 11:26:52,772 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:26:52,772 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:26:52,772 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:26:52,772 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:26:52,772 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:26:52,772 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:26:19', tmtdew=9.77, humidity=51.01, cloud=0.0, wind=33.75, temperature=10.65, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:25:55.200', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:26:52,773 [DEBUG][       Thread-603088][   transport.py][1871] : EOF in transport thread
2025-07-01 11:26:52,843 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:26:52,853 [DEBUG][       Thread-603091][   transport.py][1871] : starting thread (client mode): 0x818df30
2025-07-01 11:26:52,853 [DEBUG][       Thread-603091][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:26:52,868 [DEBUG][       Thread-603091][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:26:52,868 [ INFO][       Thread-603091][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:26:52,875 [DEBUG][       Thread-603091][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:26:52,875 [DEBUG][       Thread-603091][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:26:52,875 [DEBUG][       Thread-603091][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:26:52,875 [DEBUG][       Thread-603091][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:26:52,876 [DEBUG][       Thread-603091][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:26:52,876 [DEBUG][       Thread-603091][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:26:52,876 [DEBUG][       Thread-603091][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:26:52,876 [DEBUG][       Thread-603091][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:26:52,876 [DEBUG][       Thread-603091][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:26:52,876 [DEBUG][       Thread-603091][   transport.py][1871] : client lang: <none>
2025-07-01 11:26:52,876 [DEBUG][       Thread-603091][   transport.py][1871] : server lang: <none>
2025-07-01 11:26:52,876 [DEBUG][       Thread-603091][   transport.py][1871] : kex follows: False
2025-07-01 11:26:52,876 [DEBUG][       Thread-603091][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:26:52,876 [DEBUG][       Thread-603091][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:26:52,876 [DEBUG][       Thread-603091][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:26:52,876 [DEBUG][       Thread-603091][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:26:52,876 [DEBUG][       Thread-603091][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:26:52,876 [DEBUG][       Thread-603091][   transport.py][1871] : Compression: none
2025-07-01 11:26:52,876 [DEBUG][       Thread-603091][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:26:52,933 [DEBUG][       Thread-603091][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:26:52,934 [DEBUG][       Thread-603091][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:26:52,935 [DEBUG][       Thread-603091][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:26:52,935 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:26:52,935 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:26:52,990 [DEBUG][       Thread-603091][   transport.py][1871] : userauth is OK
2025-07-01 11:26:52,990 [DEBUG][       Thread-603091][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:26:52,990 [DEBUG][       Thread-603091][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:26:52,990 [DEBUG][       Thread-603091][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:26:52,990 [DEBUG][       Thread-603091][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:26:53,014 [ INFO][       Thread-603091][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:26:53,015 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:26:53,015 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:26:53,991 [DEBUG][       Thread-603091][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:26:53,991 [DEBUG][       Thread-603091][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:26:54,039 [DEBUG][       Thread-603091][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:26:54,040 [DEBUG][       Thread-603091][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:26:54,049 [DEBUG][       Thread-603091][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:26:54,058 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:26:54,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-07-01 11:26:54,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-07-01 11:26:54,076 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:26:54,076 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:26:54,077 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:26:54,084 [DEBUG][       Thread-603091][   transport.py][1871] : EOF in transport thread
2025-07-01 11:26:56,590 [DEBUG][Thread-603093 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:27:04,084 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:27:04,084 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:27:04,084 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:27:04,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-07-01 11:27:04,623 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 26, 50), 9.78, 51.0, 0.0, 37.26, 10.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:27:04,623 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:26:50
2025-07-01 11:27:04,711 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:27:04,715 [DEBUG][       Thread-603094][   transport.py][1871] : starting thread (client mode): 0x82b1480
2025-07-01 11:27:04,715 [DEBUG][       Thread-603094][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:27:04,736 [DEBUG][       Thread-603094][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:27:04,736 [ INFO][       Thread-603094][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:27:04,739 [DEBUG][       Thread-603094][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:27:04,739 [DEBUG][       Thread-603094][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:27:04,739 [DEBUG][       Thread-603094][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:27:04,739 [DEBUG][       Thread-603094][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:27:04,739 [DEBUG][       Thread-603094][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:27:04,739 [DEBUG][       Thread-603094][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:27:04,739 [DEBUG][       Thread-603094][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:27:04,739 [DEBUG][       Thread-603094][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:27:04,739 [DEBUG][       Thread-603094][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:27:04,739 [DEBUG][       Thread-603094][   transport.py][1871] : client lang: <none>
2025-07-01 11:27:04,739 [DEBUG][       Thread-603094][   transport.py][1871] : server lang: <none>
2025-07-01 11:27:04,739 [DEBUG][       Thread-603094][   transport.py][1871] : kex follows: False
2025-07-01 11:27:04,739 [DEBUG][       Thread-603094][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:27:04,739 [DEBUG][       Thread-603094][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:27:04,739 [DEBUG][       Thread-603094][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:27:04,739 [DEBUG][       Thread-603094][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:27:04,739 [DEBUG][       Thread-603094][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:27:04,739 [DEBUG][       Thread-603094][   transport.py][1871] : Compression: none
2025-07-01 11:27:04,739 [DEBUG][       Thread-603094][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:27:04,756 [DEBUG][       Thread-603094][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:27:04,756 [DEBUG][       Thread-603094][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:27:04,756 [DEBUG][       Thread-603094][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:27:04,756 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:27:04,756 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:27:04,757 [DEBUG][       Thread-603094][   transport.py][1871] : userauth is OK
2025-07-01 11:27:04,781 [ INFO][       Thread-603094][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:27:04,781 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:27:05,442 [DEBUG][       Thread-603094][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:27:05,442 [DEBUG][       Thread-603094][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:27:05,484 [DEBUG][       Thread-603094][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:27:05,484 [DEBUG][       Thread-603094][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:27:05,487 [DEBUG][       Thread-603094][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:27:05,499 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:27:05,499 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:27:05,501 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:27:05,502 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:27:05,505 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:27:05,506 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:27:05,506 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:27:05,507 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:27:05,507 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.393348 -999.00  +10.30  44.79     56   +1.90 1 2 2 1 1   888    0 7.49 -35.89 ----- 44.8 44.8 43.2 50.6 13.7 -20.5 12.8 -21.5 12.3 -20.9 13.2 -19.4
2025-07-01 11:27:05,507 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:27:05,507 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:27:05,507 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.393348
2025-07-01 11:27:05,507 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:27:05,507 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:27:05,507 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:27:05,507 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:27:05,507 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:27:05,507 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:26:50', tmtdew=9.78, humidity=51.0, cloud=0.0, wind=37.26, temperature=10.65, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:26:25.267', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:27:05,508 [DEBUG][       Thread-603094][   transport.py][1871] : EOF in transport thread
2025-07-01 11:27:05,579 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:27:05,589 [DEBUG][       Thread-603097][   transport.py][1871] : starting thread (client mode): 0x81570d0
2025-07-01 11:27:05,589 [DEBUG][       Thread-603097][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:27:05,605 [DEBUG][       Thread-603097][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:27:05,605 [ INFO][       Thread-603097][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:27:05,609 [DEBUG][Thread-603099 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:27:05,612 [DEBUG][       Thread-603097][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:27:05,613 [DEBUG][       Thread-603097][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:27:05,613 [DEBUG][       Thread-603097][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:27:05,613 [DEBUG][       Thread-603097][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:27:05,613 [DEBUG][       Thread-603097][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:27:05,613 [DEBUG][       Thread-603097][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:27:05,613 [DEBUG][       Thread-603097][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:27:05,613 [DEBUG][       Thread-603097][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:27:05,613 [DEBUG][       Thread-603097][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:27:05,613 [DEBUG][       Thread-603097][   transport.py][1871] : client lang: <none>
2025-07-01 11:27:05,613 [DEBUG][       Thread-603097][   transport.py][1871] : server lang: <none>
2025-07-01 11:27:05,613 [DEBUG][       Thread-603097][   transport.py][1871] : kex follows: False
2025-07-01 11:27:05,613 [DEBUG][       Thread-603097][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:27:05,613 [DEBUG][       Thread-603097][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:27:05,613 [DEBUG][       Thread-603097][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:27:05,613 [DEBUG][       Thread-603097][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:27:05,613 [DEBUG][       Thread-603097][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:27:05,613 [DEBUG][       Thread-603097][   transport.py][1871] : Compression: none
2025-07-01 11:27:05,613 [DEBUG][       Thread-603097][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:27:05,669 [DEBUG][       Thread-603097][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:27:05,669 [DEBUG][       Thread-603097][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:27:05,669 [DEBUG][       Thread-603097][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:27:05,670 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:27:05,670 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:27:05,725 [DEBUG][       Thread-603097][   transport.py][1871] : userauth is OK
2025-07-01 11:27:05,725 [DEBUG][       Thread-603097][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:27:05,725 [DEBUG][       Thread-603097][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:27:05,725 [DEBUG][       Thread-603097][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:27:05,725 [DEBUG][       Thread-603097][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:27:05,739 [ INFO][       Thread-603097][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:27:05,740 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:27:05,740 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:27:06,775 [DEBUG][       Thread-603097][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:27:06,775 [DEBUG][       Thread-603097][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:27:06,826 [DEBUG][       Thread-603097][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:27:06,826 [DEBUG][       Thread-603097][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:27:06,836 [DEBUG][       Thread-603097][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:27:06,846 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:27:06,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-07-01 11:27:06,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-07-01 11:27:06,870 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:27:06,870 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:27:06,870 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:27:06,882 [DEBUG][       Thread-603097][   transport.py][1871] : EOF in transport thread
2025-07-01 11:27:07,618 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:27:07,619 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:27:14,633 [DEBUG][Thread-603100 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:27:16,880 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:27:16,881 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:27:16,881 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:27:16,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-07-01 11:27:17,385 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 26, 50), 9.78, 51.0, 0.0, 37.26, 10.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:27:17,385 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:26:50
2025-07-01 11:27:17,469 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:27:17,475 [DEBUG][       Thread-603101][   transport.py][1871] : starting thread (client mode): 0x82b15d0
2025-07-01 11:27:17,475 [DEBUG][       Thread-603101][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:27:17,495 [DEBUG][       Thread-603101][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:27:17,495 [ INFO][       Thread-603101][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:27:17,499 [DEBUG][       Thread-603101][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:27:17,499 [DEBUG][       Thread-603101][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:27:17,499 [DEBUG][       Thread-603101][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:27:17,499 [DEBUG][       Thread-603101][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:27:17,499 [DEBUG][       Thread-603101][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:27:17,499 [DEBUG][       Thread-603101][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:27:17,499 [DEBUG][       Thread-603101][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:27:17,499 [DEBUG][       Thread-603101][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:27:17,499 [DEBUG][       Thread-603101][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:27:17,499 [DEBUG][       Thread-603101][   transport.py][1871] : client lang: <none>
2025-07-01 11:27:17,499 [DEBUG][       Thread-603101][   transport.py][1871] : server lang: <none>
2025-07-01 11:27:17,499 [DEBUG][       Thread-603101][   transport.py][1871] : kex follows: False
2025-07-01 11:27:17,499 [DEBUG][       Thread-603101][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:27:17,499 [DEBUG][       Thread-603101][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:27:17,499 [DEBUG][       Thread-603101][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:27:17,499 [DEBUG][       Thread-603101][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:27:17,499 [DEBUG][       Thread-603101][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:27:17,499 [DEBUG][       Thread-603101][   transport.py][1871] : Compression: none
2025-07-01 11:27:17,499 [DEBUG][       Thread-603101][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:27:17,515 [DEBUG][       Thread-603101][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:27:17,516 [DEBUG][       Thread-603101][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:27:17,516 [DEBUG][       Thread-603101][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:27:17,516 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:27:17,517 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:27:17,518 [DEBUG][       Thread-603101][   transport.py][1871] : userauth is OK
2025-07-01 11:27:17,531 [ INFO][       Thread-603101][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:27:17,531 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:27:18,227 [DEBUG][       Thread-603101][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:27:18,227 [DEBUG][       Thread-603101][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:27:18,269 [DEBUG][       Thread-603101][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:27:18,269 [DEBUG][       Thread-603101][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:27:18,272 [DEBUG][       Thread-603101][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:27:18,286 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:27:18,286 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:27:18,288 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:27:18,290 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:27:18,296 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:27:18,298 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:27:18,298 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:27:18,298 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:27:18,299 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.393348 -999.00  +10.30  44.79     56   +1.90 1 2 2 1 1   888    0 7.49 -35.89 ----- 44.8 44.8 43.2 50.6 13.7 -20.5 12.8 -21.5 12.3 -20.9 13.2 -19.4
2025-07-01 11:27:18,299 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:27:18,299 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:27:18,299 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.393348
2025-07-01 11:27:18,299 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:27:18,300 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:27:18,300 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:27:18,300 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:27:18,300 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:27:18,300 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:26:50', tmtdew=9.78, humidity=51.0, cloud=0.0, wind=37.26, temperature=10.65, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:26:25.267', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:27:18,301 [DEBUG][       Thread-603101][   transport.py][1871] : EOF in transport thread
2025-07-01 11:27:18,384 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:27:18,397 [DEBUG][       Thread-603104][   transport.py][1871] : starting thread (client mode): 0x81a5180
2025-07-01 11:27:18,397 [DEBUG][       Thread-603104][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:27:18,412 [DEBUG][       Thread-603104][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:27:18,412 [ INFO][       Thread-603104][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:27:18,419 [DEBUG][       Thread-603104][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:27:18,419 [DEBUG][       Thread-603104][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:27:18,419 [DEBUG][       Thread-603104][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:27:18,419 [DEBUG][       Thread-603104][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:27:18,419 [DEBUG][       Thread-603104][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:27:18,419 [DEBUG][       Thread-603104][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:27:18,419 [DEBUG][       Thread-603104][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:27:18,419 [DEBUG][       Thread-603104][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:27:18,419 [DEBUG][       Thread-603104][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:27:18,419 [DEBUG][       Thread-603104][   transport.py][1871] : client lang: <none>
2025-07-01 11:27:18,419 [DEBUG][       Thread-603104][   transport.py][1871] : server lang: <none>
2025-07-01 11:27:18,419 [DEBUG][       Thread-603104][   transport.py][1871] : kex follows: False
2025-07-01 11:27:18,419 [DEBUG][       Thread-603104][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:27:18,419 [DEBUG][       Thread-603104][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:27:18,419 [DEBUG][       Thread-603104][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:27:18,419 [DEBUG][       Thread-603104][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:27:18,419 [DEBUG][       Thread-603104][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:27:18,419 [DEBUG][       Thread-603104][   transport.py][1871] : Compression: none
2025-07-01 11:27:18,419 [DEBUG][       Thread-603104][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:27:18,476 [DEBUG][       Thread-603104][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:27:18,476 [DEBUG][       Thread-603104][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:27:18,476 [DEBUG][       Thread-603104][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:27:18,477 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:27:18,477 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:27:18,534 [DEBUG][       Thread-603104][   transport.py][1871] : userauth is OK
2025-07-01 11:27:18,534 [DEBUG][       Thread-603104][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:27:18,534 [DEBUG][       Thread-603104][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:27:18,534 [DEBUG][       Thread-603104][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:27:18,534 [DEBUG][       Thread-603104][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:27:18,553 [ INFO][       Thread-603104][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:27:18,553 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:27:18,554 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:27:19,567 [DEBUG][       Thread-603104][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:27:19,567 [DEBUG][       Thread-603104][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:27:19,616 [DEBUG][       Thread-603104][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:27:19,616 [DEBUG][       Thread-603104][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:27:19,625 [DEBUG][       Thread-603104][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:27:19,634 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:27:19,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-07-01 11:27:19,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') -> 00000000
2025-07-01 11:27:19,653 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:27:19,653 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:27:19,653 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:27:19,663 [DEBUG][       Thread-603104][   transport.py][1871] : EOF in transport thread
2025-07-01 11:27:23,655 [DEBUG][Thread-603106 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:27:26,126 [DEBUG][Thread-603107 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:27:29,664 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:27:29,664 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:27:29,664 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:27:29,667 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 11:27:30,155 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 27, 22), 9.8, 50.71, 0.0, 33.5, 10.75, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:27:30,155 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:27:22
2025-07-01 11:27:30,239 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:27:30,245 [DEBUG][       Thread-603108][   transport.py][1871] : starting thread (client mode): 0x82b3e50
2025-07-01 11:27:30,245 [DEBUG][       Thread-603108][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:27:30,266 [DEBUG][       Thread-603108][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:27:30,266 [ INFO][       Thread-603108][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:27:30,269 [DEBUG][       Thread-603108][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:27:30,269 [DEBUG][       Thread-603108][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:27:30,269 [DEBUG][       Thread-603108][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:27:30,269 [DEBUG][       Thread-603108][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:27:30,269 [DEBUG][       Thread-603108][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:27:30,269 [DEBUG][       Thread-603108][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:27:30,269 [DEBUG][       Thread-603108][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:27:30,269 [DEBUG][       Thread-603108][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:27:30,269 [DEBUG][       Thread-603108][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:27:30,269 [DEBUG][       Thread-603108][   transport.py][1871] : client lang: <none>
2025-07-01 11:27:30,269 [DEBUG][       Thread-603108][   transport.py][1871] : server lang: <none>
2025-07-01 11:27:30,269 [DEBUG][       Thread-603108][   transport.py][1871] : kex follows: False
2025-07-01 11:27:30,269 [DEBUG][       Thread-603108][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:27:30,269 [DEBUG][       Thread-603108][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:27:30,269 [DEBUG][       Thread-603108][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:27:30,270 [DEBUG][       Thread-603108][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:27:30,270 [DEBUG][       Thread-603108][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:27:30,270 [DEBUG][       Thread-603108][   transport.py][1871] : Compression: none
2025-07-01 11:27:30,270 [DEBUG][       Thread-603108][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:27:30,286 [DEBUG][       Thread-603108][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:27:30,287 [DEBUG][       Thread-603108][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:27:30,287 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:27:30,287 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:27:30,288 [DEBUG][       Thread-603108][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:27:30,288 [DEBUG][       Thread-603108][   transport.py][1871] : userauth is OK
2025-07-01 11:27:30,313 [ INFO][       Thread-603108][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:27:30,314 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:27:30,944 [DEBUG][       Thread-603108][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:27:30,944 [DEBUG][       Thread-603108][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:27:30,989 [DEBUG][       Thread-603108][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:27:30,989 [DEBUG][       Thread-603108][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:27:30,992 [DEBUG][       Thread-603108][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:27:31,004 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:27:31,005 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:27:31,006 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:27:31,008 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:27:31,013 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:27:31,015 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:27:31,015 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:27:31,016 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:27:31,016 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.394042 -999.00  +10.70  33.94     55   +2.20 1 2 2 1 1   888    0 7.37 -44.06 ----- 33.9 33.9 33.0 43.0 14.0 -20.4 13.1 -21.0 12.6 -19.4 13.5 -19.1
2025-07-01 11:27:31,016 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:27:31,016 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:27:31,016 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.394042
2025-07-01 11:27:31,017 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:27:31,017 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:27:31,018 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:27:31,018 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:27:31,018 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:27:31,018 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:27:22', tmtdew=9.8, humidity=50.71, cloud=0.0, wind=33.5, temperature=10.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:27:25.229', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:27:31,019 [DEBUG][       Thread-603108][   transport.py][1871] : EOF in transport thread
2025-07-01 11:27:31,102 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:27:31,112 [DEBUG][       Thread-603111][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 11:27:31,112 [DEBUG][       Thread-603111][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:27:31,127 [DEBUG][       Thread-603111][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:27:31,127 [ INFO][       Thread-603111][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:27:31,135 [DEBUG][       Thread-603111][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:27:31,135 [DEBUG][       Thread-603111][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:27:31,135 [DEBUG][       Thread-603111][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:27:31,135 [DEBUG][       Thread-603111][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:27:31,135 [DEBUG][       Thread-603111][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:27:31,135 [DEBUG][       Thread-603111][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:27:31,135 [DEBUG][       Thread-603111][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:27:31,135 [DEBUG][       Thread-603111][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:27:31,135 [DEBUG][       Thread-603111][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:27:31,135 [DEBUG][       Thread-603111][   transport.py][1871] : client lang: <none>
2025-07-01 11:27:31,135 [DEBUG][       Thread-603111][   transport.py][1871] : server lang: <none>
2025-07-01 11:27:31,135 [DEBUG][       Thread-603111][   transport.py][1871] : kex follows: False
2025-07-01 11:27:31,135 [DEBUG][       Thread-603111][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:27:31,135 [DEBUG][       Thread-603111][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:27:31,135 [DEBUG][       Thread-603111][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:27:31,135 [DEBUG][       Thread-603111][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:27:31,135 [DEBUG][       Thread-603111][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:27:31,135 [DEBUG][       Thread-603111][   transport.py][1871] : Compression: none
2025-07-01 11:27:31,135 [DEBUG][       Thread-603111][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:27:31,194 [DEBUG][       Thread-603111][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:27:31,195 [DEBUG][       Thread-603111][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:27:31,195 [DEBUG][       Thread-603111][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:27:31,195 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:27:31,196 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:27:31,250 [DEBUG][       Thread-603111][   transport.py][1871] : userauth is OK
2025-07-01 11:27:31,250 [DEBUG][       Thread-603111][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:27:31,250 [DEBUG][       Thread-603111][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:27:31,250 [DEBUG][       Thread-603111][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:27:31,251 [DEBUG][       Thread-603111][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:27:31,269 [ INFO][       Thread-603111][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:27:31,269 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:27:31,270 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:27:32,268 [DEBUG][       Thread-603111][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:27:32,268 [DEBUG][       Thread-603111][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:27:32,320 [DEBUG][       Thread-603111][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:27:32,320 [DEBUG][       Thread-603111][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:27:32,329 [DEBUG][       Thread-603111][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:27:32,338 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:27:32,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-07-01 11:27:32,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') -> 00000000
2025-07-01 11:27:32,356 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:27:32,357 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:27:32,357 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:27:32,365 [DEBUG][       Thread-603111][   transport.py][1871] : EOF in transport thread
2025-07-01 11:27:32,676 [DEBUG][Thread-603113 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:27:41,709 [DEBUG][Thread-603114 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:27:42,358 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:27:42,358 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:27:42,359 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:27:42,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-07-01 11:27:42,855 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 27, 22), 9.8, 50.71, 0.0, 33.5, 10.75, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:27:42,855 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:27:22
2025-07-01 11:27:42,944 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:27:42,948 [DEBUG][       Thread-603115][   transport.py][1871] : starting thread (client mode): 0x75a94e0
2025-07-01 11:27:42,948 [DEBUG][       Thread-603115][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:27:42,969 [DEBUG][       Thread-603115][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:27:42,969 [ INFO][       Thread-603115][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:27:42,972 [DEBUG][       Thread-603115][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:27:42,972 [DEBUG][       Thread-603115][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:27:42,972 [DEBUG][       Thread-603115][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:27:42,972 [DEBUG][       Thread-603115][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:27:42,972 [DEBUG][       Thread-603115][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:27:42,972 [DEBUG][       Thread-603115][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:27:42,972 [DEBUG][       Thread-603115][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:27:42,972 [DEBUG][       Thread-603115][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:27:42,972 [DEBUG][       Thread-603115][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:27:42,972 [DEBUG][       Thread-603115][   transport.py][1871] : client lang: <none>
2025-07-01 11:27:42,972 [DEBUG][       Thread-603115][   transport.py][1871] : server lang: <none>
2025-07-01 11:27:42,972 [DEBUG][       Thread-603115][   transport.py][1871] : kex follows: False
2025-07-01 11:27:42,972 [DEBUG][       Thread-603115][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:27:42,972 [DEBUG][       Thread-603115][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:27:42,972 [DEBUG][       Thread-603115][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:27:42,972 [DEBUG][       Thread-603115][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:27:42,972 [DEBUG][       Thread-603115][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:27:42,972 [DEBUG][       Thread-603115][   transport.py][1871] : Compression: none
2025-07-01 11:27:42,972 [DEBUG][       Thread-603115][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:27:42,988 [DEBUG][       Thread-603115][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:27:42,988 [DEBUG][       Thread-603115][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:27:42,988 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:27:42,988 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:27:42,988 [DEBUG][       Thread-603115][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:27:42,989 [DEBUG][       Thread-603115][   transport.py][1871] : userauth is OK
2025-07-01 11:27:43,013 [ INFO][       Thread-603115][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:27:43,013 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:27:43,635 [DEBUG][       Thread-603115][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:27:43,635 [DEBUG][       Thread-603115][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:27:43,676 [DEBUG][       Thread-603115][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:27:43,676 [DEBUG][       Thread-603115][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:27:43,679 [DEBUG][       Thread-603115][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:27:43,690 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:27:43,690 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:27:43,691 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:27:43,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:27:43,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:27:43,696 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:27:43,697 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:27:43,697 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:27:43,697 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.394042 -999.00  +10.70  33.94     55   +2.20 1 2 2 1 1   888    0 7.37 -44.06 ----- 33.9 33.9 33.0 43.0 14.0 -20.4 13.1 -21.0 12.6 -19.4 13.5 -19.1
2025-07-01 11:27:43,697 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:27:43,697 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:27:43,697 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.394042
2025-07-01 11:27:43,697 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:27:43,697 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:27:43,697 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:27:43,697 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:27:43,697 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:27:43,697 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:27:22', tmtdew=9.8, humidity=50.71, cloud=0.0, wind=33.5, temperature=10.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:27:25.229', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:27:43,698 [DEBUG][       Thread-603115][   transport.py][1871] : EOF in transport thread
2025-07-01 11:27:43,770 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:27:43,779 [DEBUG][       Thread-603118][   transport.py][1871] : starting thread (client mode): 0x8106b60
2025-07-01 11:27:43,779 [DEBUG][       Thread-603118][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:27:43,794 [DEBUG][       Thread-603118][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:27:43,794 [ INFO][       Thread-603118][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:27:43,801 [DEBUG][       Thread-603118][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:27:43,801 [DEBUG][       Thread-603118][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:27:43,801 [DEBUG][       Thread-603118][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:27:43,801 [DEBUG][       Thread-603118][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:27:43,801 [DEBUG][       Thread-603118][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:27:43,802 [DEBUG][       Thread-603118][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:27:43,802 [DEBUG][       Thread-603118][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:27:43,802 [DEBUG][       Thread-603118][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:27:43,802 [DEBUG][       Thread-603118][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:27:43,802 [DEBUG][       Thread-603118][   transport.py][1871] : client lang: <none>
2025-07-01 11:27:43,802 [DEBUG][       Thread-603118][   transport.py][1871] : server lang: <none>
2025-07-01 11:27:43,802 [DEBUG][       Thread-603118][   transport.py][1871] : kex follows: False
2025-07-01 11:27:43,802 [DEBUG][       Thread-603118][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:27:43,802 [DEBUG][       Thread-603118][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:27:43,802 [DEBUG][       Thread-603118][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:27:43,802 [DEBUG][       Thread-603118][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:27:43,802 [DEBUG][       Thread-603118][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:27:43,802 [DEBUG][       Thread-603118][   transport.py][1871] : Compression: none
2025-07-01 11:27:43,802 [DEBUG][       Thread-603118][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:27:43,856 [DEBUG][       Thread-603118][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:27:43,856 [DEBUG][       Thread-603118][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:27:43,856 [DEBUG][       Thread-603118][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:27:43,856 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:27:43,856 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:27:43,913 [DEBUG][       Thread-603118][   transport.py][1871] : userauth is OK
2025-07-01 11:27:43,914 [DEBUG][       Thread-603118][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:27:43,914 [DEBUG][       Thread-603118][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:27:43,914 [DEBUG][       Thread-603118][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:27:43,914 [DEBUG][       Thread-603118][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:27:43,928 [ INFO][       Thread-603118][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:27:43,928 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:27:43,928 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:27:44,915 [DEBUG][       Thread-603118][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:27:44,915 [DEBUG][       Thread-603118][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:27:44,963 [DEBUG][       Thread-603118][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:27:44,963 [DEBUG][       Thread-603118][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:27:44,971 [DEBUG][       Thread-603118][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:27:44,979 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:27: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')
2025-07-01 11:27:44,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-07-01 11:27:44,995 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:27:44,995 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:27:44,995 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:27:45,003 [DEBUG][       Thread-603118][   transport.py][1871] : EOF in transport thread
2025-07-01 11:27:50,729 [DEBUG][Thread-603120 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:27:55,002 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:27:55,002 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:27:55,002 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:27:55,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-07-01 11:27:55,493 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 27, 22), 9.8, 50.71, 0.0, 33.5, 10.75, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:27:55,493 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:27:22
2025-07-01 11:27:55,577 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:27:55,581 [DEBUG][       Thread-603121][   transport.py][1871] : starting thread (client mode): 0x82b2f80
2025-07-01 11:27:55,581 [DEBUG][       Thread-603121][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:27:55,601 [DEBUG][       Thread-603121][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:27:55,601 [ INFO][       Thread-603121][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:27:55,604 [DEBUG][       Thread-603121][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:27:55,604 [DEBUG][       Thread-603121][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:27:55,604 [DEBUG][       Thread-603121][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:27:55,604 [DEBUG][       Thread-603121][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:27:55,604 [DEBUG][       Thread-603121][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:27:55,604 [DEBUG][       Thread-603121][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:27:55,604 [DEBUG][       Thread-603121][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:27:55,604 [DEBUG][       Thread-603121][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:27:55,604 [DEBUG][       Thread-603121][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:27:55,604 [DEBUG][       Thread-603121][   transport.py][1871] : client lang: <none>
2025-07-01 11:27:55,604 [DEBUG][       Thread-603121][   transport.py][1871] : server lang: <none>
2025-07-01 11:27:55,604 [DEBUG][       Thread-603121][   transport.py][1871] : kex follows: False
2025-07-01 11:27:55,604 [DEBUG][       Thread-603121][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:27:55,605 [DEBUG][       Thread-603121][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:27:55,605 [DEBUG][       Thread-603121][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:27:55,605 [DEBUG][       Thread-603121][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:27:55,605 [DEBUG][       Thread-603121][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:27:55,605 [DEBUG][       Thread-603121][   transport.py][1871] : Compression: none
2025-07-01 11:27:55,605 [DEBUG][       Thread-603121][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:27:55,613 [DEBUG][       Thread-603121][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:27:55,613 [DEBUG][       Thread-603121][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:27:55,614 [DEBUG][       Thread-603121][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:27:55,614 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:27:55,614 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:27:55,615 [DEBUG][       Thread-603121][   transport.py][1871] : userauth is OK
2025-07-01 11:27:55,640 [ INFO][       Thread-603121][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:27:55,641 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:27:56,274 [DEBUG][       Thread-603121][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:27:56,274 [DEBUG][       Thread-603121][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:27:56,316 [DEBUG][       Thread-603121][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:27:56,316 [DEBUG][       Thread-603121][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:27:56,319 [DEBUG][       Thread-603121][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:27:56,327 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:27:56,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:27:56,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:27:56,329 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:27:56,332 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:27:56,333 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:27:56,333 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:27:56,333 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:27:56,333 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.394042 -999.00  +10.70  33.94     55   +2.20 1 2 2 1 1   888    0 7.37 -44.06 ----- 33.9 33.9 33.0 43.0 14.0 -20.4 13.1 -21.0 12.6 -19.4 13.5 -19.1
2025-07-01 11:27:56,333 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:27:56,333 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:27:56,333 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.394042
2025-07-01 11:27:56,333 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:27:56,333 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:27:56,333 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:27:56,333 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:27:56,333 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:27:56,333 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:27:22', tmtdew=9.8, humidity=50.71, cloud=0.0, wind=33.5, temperature=10.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:27:25.229', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:27:56,334 [DEBUG][       Thread-603121][   transport.py][1871] : EOF in transport thread
2025-07-01 11:27:56,408 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:27:56,417 [DEBUG][       Thread-603124][   transport.py][1871] : starting thread (client mode): 0x8107940
2025-07-01 11:27:56,417 [DEBUG][       Thread-603124][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:27:56,432 [DEBUG][       Thread-603124][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:27:56,432 [ INFO][       Thread-603124][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:27:56,439 [DEBUG][       Thread-603124][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:27:56,439 [DEBUG][       Thread-603124][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:27:56,439 [DEBUG][       Thread-603124][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:27:56,439 [DEBUG][       Thread-603124][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:27:56,439 [DEBUG][       Thread-603124][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:27:56,439 [DEBUG][       Thread-603124][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:27:56,439 [DEBUG][       Thread-603124][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:27:56,439 [DEBUG][       Thread-603124][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:27:56,439 [DEBUG][       Thread-603124][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:27:56,439 [DEBUG][       Thread-603124][   transport.py][1871] : client lang: <none>
2025-07-01 11:27:56,439 [DEBUG][       Thread-603124][   transport.py][1871] : server lang: <none>
2025-07-01 11:27:56,439 [DEBUG][       Thread-603124][   transport.py][1871] : kex follows: False
2025-07-01 11:27:56,439 [DEBUG][       Thread-603124][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:27:56,439 [DEBUG][       Thread-603124][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:27:56,439 [DEBUG][       Thread-603124][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:27:56,439 [DEBUG][       Thread-603124][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:27:56,439 [DEBUG][       Thread-603124][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:27:56,439 [DEBUG][       Thread-603124][   transport.py][1871] : Compression: none
2025-07-01 11:27:56,439 [DEBUG][       Thread-603124][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:27:56,496 [DEBUG][       Thread-603124][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:27:56,496 [DEBUG][       Thread-603124][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:27:56,496 [DEBUG][       Thread-603124][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:27:56,496 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:27:56,497 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:27:56,554 [DEBUG][       Thread-603124][   transport.py][1871] : userauth is OK
2025-07-01 11:27:56,554 [DEBUG][       Thread-603124][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:27:56,554 [DEBUG][       Thread-603124][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:27:56,554 [DEBUG][       Thread-603124][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:27:56,554 [DEBUG][       Thread-603124][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:27:56,568 [ INFO][       Thread-603124][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:27:56,568 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:27:56,568 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:27:57,560 [DEBUG][       Thread-603124][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:27:57,561 [DEBUG][       Thread-603124][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:27:57,612 [DEBUG][       Thread-603124][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:27:57,612 [DEBUG][       Thread-603124][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:27:57,621 [DEBUG][       Thread-603124][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:27:57,630 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:27:57,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-07-01 11:27:57,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-07-01 11:27:57,648 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:27:57,648 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:27:57,648 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:27:57,656 [DEBUG][       Thread-603124][   transport.py][1871] : EOF in transport thread
2025-07-01 11:27:59,749 [DEBUG][Thread-603126 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:28:07,659 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:28:07,659 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:28:07,659 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:28:07,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-07-01 11:28:07,755 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:28:07,755 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:28:08,155 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 27, 54), 9.82, 50.63, 0.0, 30.7, 10.75, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:28:08,155 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:27:54
2025-07-01 11:28:08,239 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:28:08,242 [DEBUG][       Thread-603127][   transport.py][1871] : starting thread (client mode): 0x8172350
2025-07-01 11:28:08,243 [DEBUG][       Thread-603127][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:28:08,262 [DEBUG][       Thread-603127][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:28:08,262 [ INFO][       Thread-603127][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:28:08,265 [DEBUG][       Thread-603127][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:28:08,265 [DEBUG][       Thread-603127][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:28:08,265 [DEBUG][       Thread-603127][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:28:08,265 [DEBUG][       Thread-603127][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:28:08,265 [DEBUG][       Thread-603127][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:28:08,265 [DEBUG][       Thread-603127][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:28:08,265 [DEBUG][       Thread-603127][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:28:08,265 [DEBUG][       Thread-603127][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:28:08,265 [DEBUG][       Thread-603127][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:28:08,265 [DEBUG][       Thread-603127][   transport.py][1871] : client lang: <none>
2025-07-01 11:28:08,265 [DEBUG][       Thread-603127][   transport.py][1871] : server lang: <none>
2025-07-01 11:28:08,265 [DEBUG][       Thread-603127][   transport.py][1871] : kex follows: False
2025-07-01 11:28:08,265 [DEBUG][       Thread-603127][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:28:08,265 [DEBUG][       Thread-603127][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:28:08,265 [DEBUG][       Thread-603127][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:28:08,265 [DEBUG][       Thread-603127][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:28:08,265 [DEBUG][       Thread-603127][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:28:08,265 [DEBUG][       Thread-603127][   transport.py][1871] : Compression: none
2025-07-01 11:28:08,265 [DEBUG][       Thread-603127][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:28:08,281 [DEBUG][       Thread-603127][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:28:08,281 [DEBUG][       Thread-603127][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:28:08,281 [DEBUG][       Thread-603127][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:28:08,281 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:28:08,281 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:28:08,281 [DEBUG][       Thread-603127][   transport.py][1871] : userauth is OK
2025-07-01 11:28:08,294 [ INFO][       Thread-603127][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:28:08,294 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:28:08,769 [DEBUG][Thread-603129 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:28:08,933 [DEBUG][       Thread-603127][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:28:08,933 [DEBUG][       Thread-603127][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:28:08,977 [DEBUG][       Thread-603127][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:28:08,977 [DEBUG][       Thread-603127][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:28:08,980 [DEBUG][       Thread-603127][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:28:08,992 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:28:08,993 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:28:08,994 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:28:08,996 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:28:09,001 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:28:09,003 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:28:09,003 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:28:09,004 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:28:09,004 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.394389 -999.00  +10.90  40.23     55   +2.30 1 2 2 1 1   888    0 7.12 -47.41 ----- 40.2 40.2 29.2 49.0 14.2 -21.5 13.2 -22.1 12.6 -20.5 13.6 -20.1
2025-07-01 11:28:09,004 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:28:09,004 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:28:09,004 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.394389
2025-07-01 11:28:09,005 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:28:09,005 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:28:09,005 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:28:09,005 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:28:09,005 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:28:09,005 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:27:54', tmtdew=9.82, humidity=50.63, cloud=0.0, wind=30.7, temperature=10.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:27:55.210', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:28:09,006 [DEBUG][       Thread-603127][   transport.py][1871] : EOF in transport thread
2025-07-01 11:28:09,090 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:28:09,099 [DEBUG][       Thread-603131][   transport.py][1871] : starting thread (client mode): 0x8154a90
2025-07-01 11:28:09,099 [DEBUG][       Thread-603131][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:28:09,114 [DEBUG][       Thread-603131][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:28:09,114 [ INFO][       Thread-603131][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:28:09,121 [DEBUG][       Thread-603131][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:28:09,121 [DEBUG][       Thread-603131][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:28:09,122 [DEBUG][       Thread-603131][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:28:09,122 [DEBUG][       Thread-603131][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:28:09,122 [DEBUG][       Thread-603131][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:28:09,122 [DEBUG][       Thread-603131][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:28:09,122 [DEBUG][       Thread-603131][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:28:09,122 [DEBUG][       Thread-603131][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:28:09,122 [DEBUG][       Thread-603131][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:28:09,122 [DEBUG][       Thread-603131][   transport.py][1871] : client lang: <none>
2025-07-01 11:28:09,122 [DEBUG][       Thread-603131][   transport.py][1871] : server lang: <none>
2025-07-01 11:28:09,122 [DEBUG][       Thread-603131][   transport.py][1871] : kex follows: False
2025-07-01 11:28:09,122 [DEBUG][       Thread-603131][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:28:09,122 [DEBUG][       Thread-603131][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:28:09,122 [DEBUG][       Thread-603131][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:28:09,122 [DEBUG][       Thread-603131][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:28:09,122 [DEBUG][       Thread-603131][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:28:09,122 [DEBUG][       Thread-603131][   transport.py][1871] : Compression: none
2025-07-01 11:28:09,122 [DEBUG][       Thread-603131][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:28:09,177 [DEBUG][       Thread-603131][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:28:09,177 [DEBUG][       Thread-603131][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:28:09,178 [DEBUG][       Thread-603131][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:28:09,178 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:28:09,179 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:28:09,234 [DEBUG][       Thread-603131][   transport.py][1871] : userauth is OK
2025-07-01 11:28:09,234 [DEBUG][       Thread-603131][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:28:09,234 [DEBUG][       Thread-603131][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:28:09,234 [DEBUG][       Thread-603131][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:28:09,234 [DEBUG][       Thread-603131][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:28:09,253 [ INFO][       Thread-603131][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:28:09,253 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:28:09,253 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:28:10,223 [DEBUG][       Thread-603131][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:28:10,223 [DEBUG][       Thread-603131][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:28:10,272 [DEBUG][       Thread-603131][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:28:10,272 [DEBUG][       Thread-603131][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:28:10,281 [DEBUG][       Thread-603131][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:28:10,290 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:28:10,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-07-01 11:28:10,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-07-01 11:28:10,308 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:28:10,308 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:28:10,309 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:28:10,316 [DEBUG][       Thread-603131][   transport.py][1871] : EOF in transport thread
2025-07-01 11:28:17,788 [DEBUG][Thread-603133 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:28:20,319 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:28:20,319 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:28:20,319 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:28:20,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-07-01 11:28:20,838 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 27, 54), 9.82, 50.63, 0.0, 30.7, 10.75, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:28:20,838 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:27:54
2025-07-01 11:28:20,926 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:28:20,931 [DEBUG][       Thread-603134][   transport.py][1871] : starting thread (client mode): 0x81e6260
2025-07-01 11:28:20,931 [DEBUG][       Thread-603134][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:28:20,952 [DEBUG][       Thread-603134][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:28:20,952 [ INFO][       Thread-603134][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:28:20,955 [DEBUG][       Thread-603134][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:28:20,955 [DEBUG][       Thread-603134][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:28:20,955 [DEBUG][       Thread-603134][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:28:20,955 [DEBUG][       Thread-603134][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:28:20,955 [DEBUG][       Thread-603134][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:28:20,955 [DEBUG][       Thread-603134][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:28:20,955 [DEBUG][       Thread-603134][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:28:20,955 [DEBUG][       Thread-603134][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:28:20,955 [DEBUG][       Thread-603134][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:28:20,955 [DEBUG][       Thread-603134][   transport.py][1871] : client lang: <none>
2025-07-01 11:28:20,955 [DEBUG][       Thread-603134][   transport.py][1871] : server lang: <none>
2025-07-01 11:28:20,955 [DEBUG][       Thread-603134][   transport.py][1871] : kex follows: False
2025-07-01 11:28:20,955 [DEBUG][       Thread-603134][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:28:20,955 [DEBUG][       Thread-603134][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:28:20,955 [DEBUG][       Thread-603134][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:28:20,955 [DEBUG][       Thread-603134][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:28:20,955 [DEBUG][       Thread-603134][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:28:20,955 [DEBUG][       Thread-603134][   transport.py][1871] : Compression: none
2025-07-01 11:28:20,955 [DEBUG][       Thread-603134][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:28:20,970 [DEBUG][       Thread-603134][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:28:20,970 [DEBUG][       Thread-603134][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:28:20,970 [DEBUG][       Thread-603134][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:28:20,970 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:28:20,970 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:28:20,971 [DEBUG][       Thread-603134][   transport.py][1871] : userauth is OK
2025-07-01 11:28:20,995 [ INFO][       Thread-603134][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:28:20,995 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:28:21,677 [DEBUG][       Thread-603134][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:28:21,677 [DEBUG][       Thread-603134][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:28:21,721 [DEBUG][       Thread-603134][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:28:21,721 [DEBUG][       Thread-603134][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:28:21,723 [DEBUG][       Thread-603134][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:28:21,734 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:28:21,734 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:28:21,735 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:28:21,736 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:28:21,739 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:28:21,740 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:28:21,740 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:28:21,740 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:28:21,740 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.394389 -999.00  +10.90  40.23     55   +2.30 1 2 2 1 1   888    0 7.12 -47.41 ----- 40.2 40.2 29.2 49.0 14.2 -21.5 13.2 -22.1 12.6 -20.5 13.6 -20.1
2025-07-01 11:28:21,740 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:28:21,740 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:28:21,740 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.394389
2025-07-01 11:28:21,740 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:28:21,740 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:28:21,740 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:28:21,740 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:28:21,740 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:28:21,740 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:27:54', tmtdew=9.82, humidity=50.63, cloud=0.0, wind=30.7, temperature=10.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:27:55.210', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:28:21,741 [DEBUG][       Thread-603134][   transport.py][1871] : EOF in transport thread
2025-07-01 11:28:21,815 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:28:21,824 [DEBUG][       Thread-603137][   transport.py][1871] : starting thread (client mode): 0x75a8100
2025-07-01 11:28:21,824 [DEBUG][       Thread-603137][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:28:21,840 [DEBUG][       Thread-603137][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:28:21,840 [ INFO][       Thread-603137][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:28:21,847 [DEBUG][       Thread-603137][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:28:21,847 [DEBUG][       Thread-603137][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:28:21,847 [DEBUG][       Thread-603137][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:28:21,847 [DEBUG][       Thread-603137][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:28:21,847 [DEBUG][       Thread-603137][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:28:21,847 [DEBUG][       Thread-603137][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:28:21,847 [DEBUG][       Thread-603137][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:28:21,847 [DEBUG][       Thread-603137][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:28:21,847 [DEBUG][       Thread-603137][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:28:21,847 [DEBUG][       Thread-603137][   transport.py][1871] : client lang: <none>
2025-07-01 11:28:21,847 [DEBUG][       Thread-603137][   transport.py][1871] : server lang: <none>
2025-07-01 11:28:21,847 [DEBUG][       Thread-603137][   transport.py][1871] : kex follows: False
2025-07-01 11:28:21,847 [DEBUG][       Thread-603137][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:28:21,847 [DEBUG][       Thread-603137][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:28:21,847 [DEBUG][       Thread-603137][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:28:21,847 [DEBUG][       Thread-603137][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:28:21,847 [DEBUG][       Thread-603137][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:28:21,847 [DEBUG][       Thread-603137][   transport.py][1871] : Compression: none
2025-07-01 11:28:21,847 [DEBUG][       Thread-603137][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:28:21,904 [DEBUG][       Thread-603137][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:28:21,904 [DEBUG][       Thread-603137][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:28:21,904 [DEBUG][       Thread-603137][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:28:21,905 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:28:21,905 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:28:21,961 [DEBUG][       Thread-603137][   transport.py][1871] : userauth is OK
2025-07-01 11:28:21,962 [DEBUG][       Thread-603137][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:28:21,962 [DEBUG][       Thread-603137][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:28:21,962 [DEBUG][       Thread-603137][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:28:21,962 [DEBUG][       Thread-603137][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:28:21,977 [ INFO][       Thread-603137][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:28:21,977 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:28:21,977 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:28:22,972 [DEBUG][       Thread-603137][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:28:22,973 [DEBUG][       Thread-603137][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:28:23,025 [DEBUG][       Thread-603137][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:28:23,025 [DEBUG][       Thread-603137][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:28:23,034 [DEBUG][       Thread-603137][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:28:23,042 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:28:23,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-07-01 11:28:23,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-07-01 11:28:23,058 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:28:23,058 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:28:23,058 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:28:23,065 [DEBUG][       Thread-603137][   transport.py][1871] : EOF in transport thread
2025-07-01 11:28:26,177 [DEBUG][Thread-603139 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:28:26,821 [DEBUG][Thread-603140 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:28:33,068 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:28:33,068 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:28:33,068 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:28:33,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-07-01 11:28:33,569 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 28, 26), 9.87, 50.35, 0.0, 33.35, 10.74, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:28:33,570 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:28:26
2025-07-01 11:28:33,651 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:28:33,655 [DEBUG][       Thread-603141][   transport.py][1871] : starting thread (client mode): 0x81e4610
2025-07-01 11:28:33,655 [DEBUG][       Thread-603141][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:28:33,676 [DEBUG][       Thread-603141][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:28:33,676 [ INFO][       Thread-603141][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:28:33,680 [DEBUG][       Thread-603141][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:28:33,680 [DEBUG][       Thread-603141][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:28:33,680 [DEBUG][       Thread-603141][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:28:33,680 [DEBUG][       Thread-603141][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:28:33,680 [DEBUG][       Thread-603141][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:28:33,680 [DEBUG][       Thread-603141][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:28:33,680 [DEBUG][       Thread-603141][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:28:33,680 [DEBUG][       Thread-603141][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:28:33,680 [DEBUG][       Thread-603141][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:28:33,680 [DEBUG][       Thread-603141][   transport.py][1871] : client lang: <none>
2025-07-01 11:28:33,680 [DEBUG][       Thread-603141][   transport.py][1871] : server lang: <none>
2025-07-01 11:28:33,680 [DEBUG][       Thread-603141][   transport.py][1871] : kex follows: False
2025-07-01 11:28:33,680 [DEBUG][       Thread-603141][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:28:33,680 [DEBUG][       Thread-603141][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:28:33,680 [DEBUG][       Thread-603141][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:28:33,680 [DEBUG][       Thread-603141][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:28:33,680 [DEBUG][       Thread-603141][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:28:33,680 [DEBUG][       Thread-603141][   transport.py][1871] : Compression: none
2025-07-01 11:28:33,680 [DEBUG][       Thread-603141][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:28:33,697 [DEBUG][       Thread-603141][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:28:33,697 [DEBUG][       Thread-603141][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:28:33,698 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:28:33,698 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:28:33,699 [DEBUG][       Thread-603141][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:28:33,699 [DEBUG][       Thread-603141][   transport.py][1871] : userauth is OK
2025-07-01 11:28:33,724 [ INFO][       Thread-603141][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:28:33,725 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:28:34,409 [DEBUG][       Thread-603141][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:28:34,409 [DEBUG][       Thread-603141][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:28:34,453 [DEBUG][       Thread-603141][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:28:34,453 [DEBUG][       Thread-603141][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:28:34,456 [DEBUG][       Thread-603141][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:28:34,469 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:28:34,470 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:28:34,472 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:28:34,473 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:28:34,479 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:28:34,481 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:28:34,481 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:28:34,482 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:28:34,482 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.394389 -999.00  +10.90  40.23     55   +2.30 1 2 2 1 1   888    0 7.12 -47.41 ----- 40.2 40.2 29.2 49.0 14.2 -21.5 13.2 -22.1 12.6 -20.5 13.6 -20.1
2025-07-01 11:28:34,482 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:28:34,482 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:28:34,482 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.394389
2025-07-01 11:28:34,483 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:28:34,483 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:28:34,483 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:28:34,483 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:28:34,483 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:28:34,483 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:28:26', tmtdew=9.87, humidity=50.35, cloud=0.0, wind=33.35, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:27:55.210', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:28:34,484 [DEBUG][       Thread-603141][   transport.py][1871] : EOF in transport thread
2025-07-01 11:28:34,561 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:28:34,571 [DEBUG][       Thread-603144][   transport.py][1871] : starting thread (client mode): 0x8106d70
2025-07-01 11:28:34,571 [DEBUG][       Thread-603144][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:28:34,586 [DEBUG][       Thread-603144][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:28:34,586 [ INFO][       Thread-603144][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:28:34,594 [DEBUG][       Thread-603144][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:28:34,594 [DEBUG][       Thread-603144][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:28:34,594 [DEBUG][       Thread-603144][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:28:34,594 [DEBUG][       Thread-603144][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:28:34,594 [DEBUG][       Thread-603144][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:28:34,594 [DEBUG][       Thread-603144][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:28:34,594 [DEBUG][       Thread-603144][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:28:34,594 [DEBUG][       Thread-603144][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:28:34,594 [DEBUG][       Thread-603144][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:28:34,594 [DEBUG][       Thread-603144][   transport.py][1871] : client lang: <none>
2025-07-01 11:28:34,594 [DEBUG][       Thread-603144][   transport.py][1871] : server lang: <none>
2025-07-01 11:28:34,594 [DEBUG][       Thread-603144][   transport.py][1871] : kex follows: False
2025-07-01 11:28:34,594 [DEBUG][       Thread-603144][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:28:34,594 [DEBUG][       Thread-603144][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:28:34,595 [DEBUG][       Thread-603144][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:28:34,595 [DEBUG][       Thread-603144][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:28:34,595 [DEBUG][       Thread-603144][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:28:34,595 [DEBUG][       Thread-603144][   transport.py][1871] : Compression: none
2025-07-01 11:28:34,595 [DEBUG][       Thread-603144][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:28:34,654 [DEBUG][       Thread-603144][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:28:34,654 [DEBUG][       Thread-603144][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:28:34,655 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:28:34,656 [DEBUG][       Thread-603144][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:28:34,656 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:28:34,711 [DEBUG][       Thread-603144][   transport.py][1871] : userauth is OK
2025-07-01 11:28:34,712 [DEBUG][       Thread-603144][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:28:34,712 [DEBUG][       Thread-603144][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:28:34,712 [DEBUG][       Thread-603144][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:28:34,712 [DEBUG][       Thread-603144][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:28:34,734 [ INFO][       Thread-603144][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:28:34,735 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:28:34,735 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:28:35,729 [DEBUG][       Thread-603144][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:28:35,729 [DEBUG][       Thread-603144][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:28:35,784 [DEBUG][       Thread-603144][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:28:35,784 [DEBUG][       Thread-603144][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:28:35,794 [DEBUG][       Thread-603144][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:28:35,802 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:28:35,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-07-01 11:28:35,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-07-01 11:28:35,820 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:28:35,820 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:28:35,821 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:28:35,829 [DEBUG][       Thread-603144][   transport.py][1871] : EOF in transport thread
2025-07-01 11:28:35,842 [DEBUG][Thread-603146 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:28:44,877 [DEBUG][Thread-603147 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:28:45,831 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:28:45,831 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:28:45,832 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:28:45,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-07-01 11:28:46,324 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 28, 26), 9.87, 50.35, 0.0, 33.35, 10.74, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:28:46,324 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:28:26
2025-07-01 11:28:46,406 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:28:46,410 [DEBUG][       Thread-603148][   transport.py][1871] : starting thread (client mode): 0x8171d20
2025-07-01 11:28:46,411 [DEBUG][       Thread-603148][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:28:46,433 [DEBUG][       Thread-603148][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:28:46,433 [ INFO][       Thread-603148][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:28:46,437 [DEBUG][       Thread-603148][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:28:46,437 [DEBUG][       Thread-603148][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:28:46,437 [DEBUG][       Thread-603148][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:28:46,437 [DEBUG][       Thread-603148][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:28:46,437 [DEBUG][       Thread-603148][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:28:46,437 [DEBUG][       Thread-603148][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:28:46,437 [DEBUG][       Thread-603148][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:28:46,437 [DEBUG][       Thread-603148][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:28:46,437 [DEBUG][       Thread-603148][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:28:46,437 [DEBUG][       Thread-603148][   transport.py][1871] : client lang: <none>
2025-07-01 11:28:46,437 [DEBUG][       Thread-603148][   transport.py][1871] : server lang: <none>
2025-07-01 11:28:46,437 [DEBUG][       Thread-603148][   transport.py][1871] : kex follows: False
2025-07-01 11:28:46,437 [DEBUG][       Thread-603148][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:28:46,437 [DEBUG][       Thread-603148][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:28:46,437 [DEBUG][       Thread-603148][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:28:46,437 [DEBUG][       Thread-603148][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:28:46,437 [DEBUG][       Thread-603148][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:28:46,437 [DEBUG][       Thread-603148][   transport.py][1871] : Compression: none
2025-07-01 11:28:46,437 [DEBUG][       Thread-603148][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:28:46,454 [DEBUG][       Thread-603148][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:28:46,455 [DEBUG][       Thread-603148][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:28:46,455 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:28:46,455 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:28:46,456 [DEBUG][       Thread-603148][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:28:46,457 [DEBUG][       Thread-603148][   transport.py][1871] : userauth is OK
2025-07-01 11:28:46,470 [ INFO][       Thread-603148][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:28:46,471 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:28:47,100 [DEBUG][       Thread-603148][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:28:47,100 [DEBUG][       Thread-603148][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:28:47,141 [DEBUG][       Thread-603148][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:28:47,141 [DEBUG][       Thread-603148][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:28:47,144 [DEBUG][       Thread-603148][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:28:47,156 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:28:47,156 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:28:47,158 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:28:47,160 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:28:47,165 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:28:47,167 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:28:47,167 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:28:47,168 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:28:47,168 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.394736 -999.00  +10.80  33.03     55   +2.10 1 2 2 1 1   888    0 7.15 -48.65 ----- 33.0 33.0 32.8 49.9 14.1 -22.4 13.1 -22.3 12.6 -21.4 13.4 -21.1
2025-07-01 11:28:47,168 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:28:47,168 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:28:47,168 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.394736
2025-07-01 11:28:47,169 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:28:47,169 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:28:47,169 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:28:47,169 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:28:47,169 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:28:47,169 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:28:26', tmtdew=9.87, humidity=50.35, cloud=0.0, wind=33.35, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:28:25.190', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:28:47,171 [DEBUG][       Thread-603148][   transport.py][1871] : EOF in transport thread
2025-07-01 11:28:47,253 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:28:47,263 [DEBUG][       Thread-603151][   transport.py][1871] : starting thread (client mode): 0x8154f70
2025-07-01 11:28:47,263 [DEBUG][       Thread-603151][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:28:47,279 [DEBUG][       Thread-603151][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:28:47,279 [ INFO][       Thread-603151][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:28:47,287 [DEBUG][       Thread-603151][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:28:47,287 [DEBUG][       Thread-603151][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:28:47,287 [DEBUG][       Thread-603151][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:28:47,287 [DEBUG][       Thread-603151][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:28:47,287 [DEBUG][       Thread-603151][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:28:47,287 [DEBUG][       Thread-603151][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:28:47,287 [DEBUG][       Thread-603151][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:28:47,287 [DEBUG][       Thread-603151][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:28:47,287 [DEBUG][       Thread-603151][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:28:47,287 [DEBUG][       Thread-603151][   transport.py][1871] : client lang: <none>
2025-07-01 11:28:47,287 [DEBUG][       Thread-603151][   transport.py][1871] : server lang: <none>
2025-07-01 11:28:47,287 [DEBUG][       Thread-603151][   transport.py][1871] : kex follows: False
2025-07-01 11:28:47,287 [DEBUG][       Thread-603151][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:28:47,287 [DEBUG][       Thread-603151][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:28:47,287 [DEBUG][       Thread-603151][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:28:47,287 [DEBUG][       Thread-603151][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:28:47,287 [DEBUG][       Thread-603151][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:28:47,287 [DEBUG][       Thread-603151][   transport.py][1871] : Compression: none
2025-07-01 11:28:47,287 [DEBUG][       Thread-603151][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:28:47,350 [DEBUG][       Thread-603151][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:28:47,351 [DEBUG][       Thread-603151][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:28:47,351 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:28:47,352 [DEBUG][       Thread-603151][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:28:47,353 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:28:47,406 [DEBUG][       Thread-603151][   transport.py][1871] : userauth is OK
2025-07-01 11:28:47,406 [DEBUG][       Thread-603151][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:28:47,406 [DEBUG][       Thread-603151][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:28:47,407 [DEBUG][       Thread-603151][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:28:47,407 [DEBUG][       Thread-603151][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:28:47,425 [ INFO][       Thread-603151][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:28:47,426 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:28:47,426 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:28:48,440 [DEBUG][       Thread-603151][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:28:48,440 [DEBUG][       Thread-603151][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:28:48,488 [DEBUG][       Thread-603151][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:28:48,488 [DEBUG][       Thread-603151][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:28:48,497 [DEBUG][       Thread-603151][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:28:48,506 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:28:48,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-07-01 11:28:48,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-07-01 11:28:48,525 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:28:48,525 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:28:48,526 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:28:48,534 [DEBUG][       Thread-603151][   transport.py][1871] : EOF in transport thread
2025-07-01 11:28:53,900 [DEBUG][Thread-603153 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:28:58,536 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:28:58,536 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:28:58,536 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:28:58,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-07-01 11:28:59,043 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 28, 26), 9.87, 50.35, 0.0, 33.35, 10.74, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:28:59,043 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:28:26
2025-07-01 11:28:59,133 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:28:59,137 [DEBUG][       Thread-603154][   transport.py][1871] : starting thread (client mode): 0x8104dc0
2025-07-01 11:28:59,137 [DEBUG][       Thread-603154][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:28:59,155 [DEBUG][       Thread-603154][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:28:59,155 [ INFO][       Thread-603154][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:28:59,160 [DEBUG][       Thread-603154][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:28:59,160 [DEBUG][       Thread-603154][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:28:59,160 [DEBUG][       Thread-603154][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:28:59,160 [DEBUG][       Thread-603154][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:28:59,160 [DEBUG][       Thread-603154][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:28:59,160 [DEBUG][       Thread-603154][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:28:59,160 [DEBUG][       Thread-603154][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:28:59,160 [DEBUG][       Thread-603154][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:28:59,160 [DEBUG][       Thread-603154][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:28:59,160 [DEBUG][       Thread-603154][   transport.py][1871] : client lang: <none>
2025-07-01 11:28:59,160 [DEBUG][       Thread-603154][   transport.py][1871] : server lang: <none>
2025-07-01 11:28:59,160 [DEBUG][       Thread-603154][   transport.py][1871] : kex follows: False
2025-07-01 11:28:59,160 [DEBUG][       Thread-603154][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:28:59,160 [DEBUG][       Thread-603154][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:28:59,160 [DEBUG][       Thread-603154][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:28:59,160 [DEBUG][       Thread-603154][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:28:59,160 [DEBUG][       Thread-603154][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:28:59,160 [DEBUG][       Thread-603154][   transport.py][1871] : Compression: none
2025-07-01 11:28:59,160 [DEBUG][       Thread-603154][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:28:59,171 [DEBUG][       Thread-603154][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:28:59,171 [DEBUG][       Thread-603154][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:28:59,172 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:28:59,172 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:28:59,172 [DEBUG][       Thread-603154][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:28:59,172 [DEBUG][       Thread-603154][   transport.py][1871] : userauth is OK
2025-07-01 11:28:59,184 [ INFO][       Thread-603154][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:28:59,184 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:28:59,805 [DEBUG][       Thread-603154][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:28:59,805 [DEBUG][       Thread-603154][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:28:59,848 [DEBUG][       Thread-603154][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:28:59,848 [DEBUG][       Thread-603154][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:28:59,851 [DEBUG][       Thread-603154][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:28:59,859 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:28:59,859 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:28:59,860 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:28:59,860 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:28:59,862 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:28:59,863 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:28:59,863 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:28:59,863 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:28:59,863 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.394736 -999.00  +10.80  33.03     55   +2.10 1 2 2 1 1   888    0 7.15 -48.65 ----- 33.0 33.0 32.8 49.9 14.1 -22.4 13.1 -22.3 12.6 -21.4 13.4 -21.1
2025-07-01 11:28:59,863 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:28:59,863 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:28:59,863 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.394736
2025-07-01 11:28:59,863 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:28:59,863 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:28:59,863 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:28:59,863 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:28:59,863 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:28:59,863 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:28:26', tmtdew=9.87, humidity=50.35, cloud=0.0, wind=33.35, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:28:25.190', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:28:59,864 [DEBUG][       Thread-603154][   transport.py][1871] : EOF in transport thread
2025-07-01 11:28:59,938 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:28:59,948 [DEBUG][       Thread-603157][   transport.py][1871] : starting thread (client mode): 0x75a8d30
2025-07-01 11:28:59,948 [DEBUG][       Thread-603157][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:28:59,963 [DEBUG][       Thread-603157][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:28:59,963 [ INFO][       Thread-603157][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:28:59,970 [DEBUG][       Thread-603157][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:28:59,971 [DEBUG][       Thread-603157][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:28:59,971 [DEBUG][       Thread-603157][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:28:59,971 [DEBUG][       Thread-603157][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:28:59,971 [DEBUG][       Thread-603157][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:28:59,971 [DEBUG][       Thread-603157][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:28:59,971 [DEBUG][       Thread-603157][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:28:59,971 [DEBUG][       Thread-603157][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:28:59,971 [DEBUG][       Thread-603157][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:28:59,971 [DEBUG][       Thread-603157][   transport.py][1871] : client lang: <none>
2025-07-01 11:28:59,971 [DEBUG][       Thread-603157][   transport.py][1871] : server lang: <none>
2025-07-01 11:28:59,971 [DEBUG][       Thread-603157][   transport.py][1871] : kex follows: False
2025-07-01 11:28:59,971 [DEBUG][       Thread-603157][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:28:59,971 [DEBUG][       Thread-603157][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:28:59,971 [DEBUG][       Thread-603157][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:28:59,971 [DEBUG][       Thread-603157][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:28:59,971 [DEBUG][       Thread-603157][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:28:59,971 [DEBUG][       Thread-603157][   transport.py][1871] : Compression: none
2025-07-01 11:28:59,971 [DEBUG][       Thread-603157][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:29:00,033 [DEBUG][       Thread-603157][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:29:00,033 [DEBUG][       Thread-603157][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:29:00,033 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:29:00,034 [DEBUG][       Thread-603157][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:29:00,034 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:29:00,090 [DEBUG][       Thread-603157][   transport.py][1871] : userauth is OK
2025-07-01 11:29:00,090 [DEBUG][       Thread-603157][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:29:00,090 [DEBUG][       Thread-603157][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:29:00,090 [DEBUG][       Thread-603157][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:29:00,090 [DEBUG][       Thread-603157][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:29:00,104 [ INFO][       Thread-603157][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:29:00,104 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:29:00,104 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:29:01,102 [DEBUG][       Thread-603157][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:29:01,102 [DEBUG][       Thread-603157][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:29:01,151 [DEBUG][       Thread-603157][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:29:01,151 [DEBUG][       Thread-603157][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:29:01,160 [DEBUG][       Thread-603157][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:29:01,168 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:29:01,168 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 11:29:01,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-07-01 11:29:01,184 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:29:01,184 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:29:01,184 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:29:01,197 [DEBUG][       Thread-603157][   transport.py][1871] : EOF in transport thread
2025-07-01 11:29:02,918 [DEBUG][Thread-603159 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:29:07,893 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:29:07,895 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:29:11,194 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:29:11,194 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:29:11,194 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:29:11,198 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 11:29:11,689 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 28, 58), 9.81, 50.56, 0.0, 37.14, 10.76, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:29:11,689 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:28:58
2025-07-01 11:29:11,775 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:29:11,779 [DEBUG][       Thread-603160][   transport.py][1871] : starting thread (client mode): 0x75a88e0
2025-07-01 11:29:11,779 [DEBUG][       Thread-603160][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:29:11,799 [DEBUG][       Thread-603160][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:29:11,799 [ INFO][       Thread-603160][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:29:11,802 [DEBUG][       Thread-603160][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:29:11,803 [DEBUG][       Thread-603160][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:29:11,803 [DEBUG][       Thread-603160][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:29:11,803 [DEBUG][       Thread-603160][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:29:11,803 [DEBUG][       Thread-603160][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:29:11,803 [DEBUG][       Thread-603160][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:29:11,803 [DEBUG][       Thread-603160][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:29:11,803 [DEBUG][       Thread-603160][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:29:11,803 [DEBUG][       Thread-603160][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:29:11,803 [DEBUG][       Thread-603160][   transport.py][1871] : client lang: <none>
2025-07-01 11:29:11,803 [DEBUG][       Thread-603160][   transport.py][1871] : server lang: <none>
2025-07-01 11:29:11,803 [DEBUG][       Thread-603160][   transport.py][1871] : kex follows: False
2025-07-01 11:29:11,803 [DEBUG][       Thread-603160][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:29:11,803 [DEBUG][       Thread-603160][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:29:11,803 [DEBUG][       Thread-603160][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:29:11,803 [DEBUG][       Thread-603160][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:29:11,803 [DEBUG][       Thread-603160][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:29:11,803 [DEBUG][       Thread-603160][   transport.py][1871] : Compression: none
2025-07-01 11:29:11,803 [DEBUG][       Thread-603160][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:29:11,819 [DEBUG][       Thread-603160][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:29:11,820 [DEBUG][       Thread-603160][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:29:11,820 [DEBUG][       Thread-603160][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:29:11,820 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:29:11,820 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:29:11,821 [DEBUG][       Thread-603160][   transport.py][1871] : userauth is OK
2025-07-01 11:29:11,834 [ INFO][       Thread-603160][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:29:11,835 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:29:11,938 [DEBUG][Thread-603162 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:29:12,496 [DEBUG][       Thread-603160][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:29:12,497 [DEBUG][       Thread-603160][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:29:12,541 [DEBUG][       Thread-603160][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:29:12,541 [DEBUG][       Thread-603160][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:29:12,545 [DEBUG][       Thread-603160][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:29:12,556 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:29:12,557 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:29:12,559 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:29:12,561 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:29:12,566 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:29:12,568 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:29:12,568 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:29:12,569 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:29:12,569 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.395085 -999.00  +10.70  34.90     55   +2.10 1 2 2 1 1   888    0 7.28 -41.88 ----- 34.9 34.9 30.6 43.4 14.0 -22.4 13.1 -22.7 12.6 -21.2 13.4 -21.2
2025-07-01 11:29:12,569 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:29:12,569 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:29:12,569 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.395085
2025-07-01 11:29:12,570 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:29:12,570 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:29:12,570 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:29:12,570 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:29:12,570 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:29:12,571 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:28:58', tmtdew=9.81, humidity=50.56, cloud=0.0, wind=37.14, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:28:55.344', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:29:12,571 [DEBUG][       Thread-603160][   transport.py][1871] : EOF in transport thread
2025-07-01 11:29:12,654 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:29:12,664 [DEBUG][       Thread-603164][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 11:29:12,664 [DEBUG][       Thread-603164][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:29:12,680 [DEBUG][       Thread-603164][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:29:12,680 [ INFO][       Thread-603164][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:29:12,690 [DEBUG][       Thread-603164][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:29:12,690 [DEBUG][       Thread-603164][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:29:12,690 [DEBUG][       Thread-603164][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:29:12,690 [DEBUG][       Thread-603164][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:29:12,690 [DEBUG][       Thread-603164][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:29:12,690 [DEBUG][       Thread-603164][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:29:12,690 [DEBUG][       Thread-603164][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:29:12,690 [DEBUG][       Thread-603164][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:29:12,690 [DEBUG][       Thread-603164][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:29:12,690 [DEBUG][       Thread-603164][   transport.py][1871] : client lang: <none>
2025-07-01 11:29:12,690 [DEBUG][       Thread-603164][   transport.py][1871] : server lang: <none>
2025-07-01 11:29:12,690 [DEBUG][       Thread-603164][   transport.py][1871] : kex follows: False
2025-07-01 11:29:12,690 [DEBUG][       Thread-603164][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:29:12,690 [DEBUG][       Thread-603164][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:29:12,690 [DEBUG][       Thread-603164][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:29:12,691 [DEBUG][       Thread-603164][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:29:12,691 [DEBUG][       Thread-603164][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:29:12,691 [DEBUG][       Thread-603164][   transport.py][1871] : Compression: none
2025-07-01 11:29:12,691 [DEBUG][       Thread-603164][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:29:12,750 [DEBUG][       Thread-603164][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:29:12,751 [DEBUG][       Thread-603164][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:29:12,751 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:29:12,752 [DEBUG][       Thread-603164][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:29:12,752 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:29:12,808 [DEBUG][       Thread-603164][   transport.py][1871] : userauth is OK
2025-07-01 11:29:12,809 [DEBUG][       Thread-603164][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:29:12,809 [DEBUG][       Thread-603164][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:29:12,809 [DEBUG][       Thread-603164][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:29:12,809 [DEBUG][       Thread-603164][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:29:12,828 [ INFO][       Thread-603164][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:29:12,828 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:29:12,829 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:29:13,834 [DEBUG][       Thread-603164][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:29:13,835 [DEBUG][       Thread-603164][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:29:13,884 [DEBUG][       Thread-603164][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:29:13,884 [DEBUG][       Thread-603164][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:29:13,894 [DEBUG][       Thread-603164][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:29:13,903 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:29:13,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-07-01 11:29:13,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-07-01 11:29:13,920 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:29:13,921 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:29:13,921 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:29:13,929 [DEBUG][       Thread-603164][   transport.py][1871] : EOF in transport thread
2025-07-01 11:29:20,962 [DEBUG][Thread-603166 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:29:23,932 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:29:23,932 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:29:23,932 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:29:23,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-07-01 11:29:24,416 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 28, 58), 9.81, 50.56, 0.0, 37.14, 10.76, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:29:24,416 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:28:58
2025-07-01 11:29:24,501 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:29:24,507 [DEBUG][       Thread-603167][   transport.py][1871] : starting thread (client mode): 0x8156020
2025-07-01 11:29:24,507 [DEBUG][       Thread-603167][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:29:24,528 [DEBUG][       Thread-603167][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:29:24,528 [ INFO][       Thread-603167][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:29:24,531 [DEBUG][       Thread-603167][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:29:24,532 [DEBUG][       Thread-603167][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:29:24,532 [DEBUG][       Thread-603167][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:29:24,532 [DEBUG][       Thread-603167][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:29:24,532 [DEBUG][       Thread-603167][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:29:24,532 [DEBUG][       Thread-603167][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:29:24,532 [DEBUG][       Thread-603167][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:29:24,532 [DEBUG][       Thread-603167][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:29:24,532 [DEBUG][       Thread-603167][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:29:24,532 [DEBUG][       Thread-603167][   transport.py][1871] : client lang: <none>
2025-07-01 11:29:24,532 [DEBUG][       Thread-603167][   transport.py][1871] : server lang: <none>
2025-07-01 11:29:24,532 [DEBUG][       Thread-603167][   transport.py][1871] : kex follows: False
2025-07-01 11:29:24,532 [DEBUG][       Thread-603167][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:29:24,532 [DEBUG][       Thread-603167][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:29:24,532 [DEBUG][       Thread-603167][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:29:24,532 [DEBUG][       Thread-603167][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:29:24,532 [DEBUG][       Thread-603167][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:29:24,532 [DEBUG][       Thread-603167][   transport.py][1871] : Compression: none
2025-07-01 11:29:24,532 [DEBUG][       Thread-603167][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:29:24,549 [DEBUG][       Thread-603167][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:29:24,549 [DEBUG][       Thread-603167][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:29:24,550 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:29:24,550 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:29:24,550 [DEBUG][       Thread-603167][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:29:24,551 [DEBUG][       Thread-603167][   transport.py][1871] : userauth is OK
2025-07-01 11:29:24,575 [ INFO][       Thread-603167][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:29:24,576 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:29:25,241 [DEBUG][       Thread-603167][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:29:25,241 [DEBUG][       Thread-603167][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:29:25,285 [DEBUG][       Thread-603167][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:29:25,285 [DEBUG][       Thread-603167][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:29:25,288 [DEBUG][       Thread-603167][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:29:25,300 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:29:25,300 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:29:25,302 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:29:25,304 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:29:25,309 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:29:25,311 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:29:25,311 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:29:25,312 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:29:25,312 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.395085 -999.00  +10.70  34.90     55   +2.10 1 2 2 1 1   888    0 7.28 -41.88 ----- 34.9 34.9 30.6 43.4 14.0 -22.4 13.1 -22.7 12.6 -21.2 13.4 -21.2
2025-07-01 11:29:25,312 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:29:25,312 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:29:25,312 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.395085
2025-07-01 11:29:25,313 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:29:25,313 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:29:25,313 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:29:25,313 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:29:25,313 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:29:25,314 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:28:58', tmtdew=9.81, humidity=50.56, cloud=0.0, wind=37.14, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:28:55.344', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:29:25,314 [DEBUG][       Thread-603167][   transport.py][1871] : EOF in transport thread
2025-07-01 11:29:25,398 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:29:25,410 [DEBUG][       Thread-603170][   transport.py][1871] : starting thread (client mode): 0x81e7640
2025-07-01 11:29:25,410 [DEBUG][       Thread-603170][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:29:25,427 [DEBUG][       Thread-603170][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:29:25,427 [ INFO][       Thread-603170][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:29:25,436 [DEBUG][       Thread-603170][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:29:25,436 [DEBUG][       Thread-603170][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:29:25,436 [DEBUG][       Thread-603170][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:29:25,436 [DEBUG][       Thread-603170][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:29:25,436 [DEBUG][       Thread-603170][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:29:25,436 [DEBUG][       Thread-603170][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:29:25,436 [DEBUG][       Thread-603170][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:29:25,436 [DEBUG][       Thread-603170][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:29:25,436 [DEBUG][       Thread-603170][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:29:25,436 [DEBUG][       Thread-603170][   transport.py][1871] : client lang: <none>
2025-07-01 11:29:25,436 [DEBUG][       Thread-603170][   transport.py][1871] : server lang: <none>
2025-07-01 11:29:25,436 [DEBUG][       Thread-603170][   transport.py][1871] : kex follows: False
2025-07-01 11:29:25,436 [DEBUG][       Thread-603170][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:29:25,437 [DEBUG][       Thread-603170][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:29:25,437 [DEBUG][       Thread-603170][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:29:25,437 [DEBUG][       Thread-603170][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:29:25,437 [DEBUG][       Thread-603170][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:29:25,437 [DEBUG][       Thread-603170][   transport.py][1871] : Compression: none
2025-07-01 11:29:25,437 [DEBUG][       Thread-603170][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:29:25,498 [DEBUG][       Thread-603170][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:29:25,499 [DEBUG][       Thread-603170][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:29:25,499 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:29:25,500 [DEBUG][       Thread-603170][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:29:25,500 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:29:25,562 [DEBUG][       Thread-603170][   transport.py][1871] : userauth is OK
2025-07-01 11:29:25,562 [DEBUG][       Thread-603170][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:29:25,562 [DEBUG][       Thread-603170][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:29:25,562 [DEBUG][       Thread-603170][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:29:25,563 [DEBUG][       Thread-603170][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:29:25,581 [ INFO][       Thread-603170][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:29:25,582 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:29:25,582 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:29:26,238 [DEBUG][Thread-603172 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:29:26,600 [DEBUG][       Thread-603170][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:29:26,601 [DEBUG][       Thread-603170][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:29:26,652 [DEBUG][       Thread-603170][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:29:26,652 [DEBUG][       Thread-603170][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:29:26,662 [DEBUG][       Thread-603170][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:29:26,671 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:29:26,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-07-01 11:29:26,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-07-01 11:29:26,689 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:29:26,690 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:29:26,690 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:29:26,703 [DEBUG][       Thread-603170][   transport.py][1871] : EOF in transport thread
2025-07-01 11:29:29,996 [DEBUG][Thread-603173 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:29:36,699 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:29:36,699 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:29:36,699 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:29:36,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-07-01 11:29:37,189 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 29, 30), 9.82, 50.62, 0.0, 32.02, 10.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:29:37,189 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:29:30
2025-07-01 11:29:37,274 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:29:37,278 [DEBUG][       Thread-603174][   transport.py][1871] : starting thread (client mode): 0x82b3610
2025-07-01 11:29:37,278 [DEBUG][       Thread-603174][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:29:37,292 [DEBUG][       Thread-603174][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:29:37,292 [ INFO][       Thread-603174][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:29:37,295 [DEBUG][       Thread-603174][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:29:37,295 [DEBUG][       Thread-603174][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:29:37,295 [DEBUG][       Thread-603174][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:29:37,295 [DEBUG][       Thread-603174][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:29:37,295 [DEBUG][       Thread-603174][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:29:37,295 [DEBUG][       Thread-603174][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:29:37,295 [DEBUG][       Thread-603174][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:29:37,295 [DEBUG][       Thread-603174][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:29:37,296 [DEBUG][       Thread-603174][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:29:37,296 [DEBUG][       Thread-603174][   transport.py][1871] : client lang: <none>
2025-07-01 11:29:37,296 [DEBUG][       Thread-603174][   transport.py][1871] : server lang: <none>
2025-07-01 11:29:37,296 [DEBUG][       Thread-603174][   transport.py][1871] : kex follows: False
2025-07-01 11:29:37,296 [DEBUG][       Thread-603174][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:29:37,296 [DEBUG][       Thread-603174][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:29:37,296 [DEBUG][       Thread-603174][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:29:37,296 [DEBUG][       Thread-603174][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:29:37,296 [DEBUG][       Thread-603174][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:29:37,296 [DEBUG][       Thread-603174][   transport.py][1871] : Compression: none
2025-07-01 11:29:37,296 [DEBUG][       Thread-603174][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:29:37,313 [DEBUG][       Thread-603174][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:29:37,313 [DEBUG][       Thread-603174][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:29:37,313 [DEBUG][       Thread-603174][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:29:37,314 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:29:37,314 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:29:37,315 [DEBUG][       Thread-603174][   transport.py][1871] : userauth is OK
2025-07-01 11:29:37,339 [ INFO][       Thread-603174][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:29:37,340 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:29:37,953 [DEBUG][       Thread-603174][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:29:37,953 [DEBUG][       Thread-603174][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:29:37,996 [DEBUG][       Thread-603174][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:29:37,996 [DEBUG][       Thread-603174][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:29:37,999 [DEBUG][       Thread-603174][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:29:38,012 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:29:38,012 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:29:38,013 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:29:38,014 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:29:38,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:29:38,018 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:29:38,018 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:29:38,018 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:29:38,018 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.395085 -999.00  +10.70  34.90     55   +2.10 1 2 2 1 1   888    0 7.28 -41.88 ----- 34.9 34.9 30.6 43.4 14.0 -22.4 13.1 -22.7 12.6 -21.2 13.4 -21.2
2025-07-01 11:29:38,018 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:29:38,018 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:29:38,018 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.395085
2025-07-01 11:29:38,018 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:29:38,018 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:29:38,018 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:29:38,018 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:29:38,018 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:29:38,019 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:29:30', tmtdew=9.82, humidity=50.62, cloud=0.0, wind=32.02, temperature=10.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:28:55.344', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:29:38,019 [DEBUG][       Thread-603174][   transport.py][1871] : EOF in transport thread
2025-07-01 11:29:38,090 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:29:38,099 [DEBUG][       Thread-603177][   transport.py][1871] : starting thread (client mode): 0x81a48b0
2025-07-01 11:29:38,099 [DEBUG][       Thread-603177][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:29:38,114 [DEBUG][       Thread-603177][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:29:38,114 [ INFO][       Thread-603177][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:29:38,121 [DEBUG][       Thread-603177][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:29:38,121 [DEBUG][       Thread-603177][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:29:38,121 [DEBUG][       Thread-603177][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:29:38,121 [DEBUG][       Thread-603177][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:29:38,121 [DEBUG][       Thread-603177][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:29:38,121 [DEBUG][       Thread-603177][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:29:38,121 [DEBUG][       Thread-603177][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:29:38,121 [DEBUG][       Thread-603177][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:29:38,121 [DEBUG][       Thread-603177][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:29:38,121 [DEBUG][       Thread-603177][   transport.py][1871] : client lang: <none>
2025-07-01 11:29:38,121 [DEBUG][       Thread-603177][   transport.py][1871] : server lang: <none>
2025-07-01 11:29:38,121 [DEBUG][       Thread-603177][   transport.py][1871] : kex follows: False
2025-07-01 11:29:38,121 [DEBUG][       Thread-603177][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:29:38,121 [DEBUG][       Thread-603177][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:29:38,121 [DEBUG][       Thread-603177][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:29:38,121 [DEBUG][       Thread-603177][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:29:38,121 [DEBUG][       Thread-603177][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:29:38,121 [DEBUG][       Thread-603177][   transport.py][1871] : Compression: none
2025-07-01 11:29:38,121 [DEBUG][       Thread-603177][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:29:38,176 [DEBUG][       Thread-603177][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:29:38,176 [DEBUG][       Thread-603177][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:29:38,176 [DEBUG][       Thread-603177][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:29:38,177 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:29:38,177 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:29:38,233 [DEBUG][       Thread-603177][   transport.py][1871] : userauth is OK
2025-07-01 11:29:38,233 [DEBUG][       Thread-603177][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:29:38,234 [DEBUG][       Thread-603177][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:29:38,234 [DEBUG][       Thread-603177][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:29:38,234 [DEBUG][       Thread-603177][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:29:38,247 [ INFO][       Thread-603177][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:29:38,247 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:29:38,247 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:29:39,014 [DEBUG][Thread-603179 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:29:39,217 [DEBUG][       Thread-603177][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:29:39,217 [DEBUG][       Thread-603177][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:29:39,267 [DEBUG][       Thread-603177][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:29:39,267 [DEBUG][       Thread-603177][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:29:39,276 [DEBUG][       Thread-603177][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:29:39,284 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:29:39,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-07-01 11:29:39,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-07-01 11:29:39,299 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:29:39,299 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:29:39,299 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:29:39,307 [DEBUG][       Thread-603177][   transport.py][1871] : EOF in transport thread
2025-07-01 11:29:48,047 [DEBUG][Thread-603180 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:29:49,300 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:29:49,300 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:29:49,300 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:29:49,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-07-01 11:29:49,800 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 29, 30), 9.82, 50.62, 0.0, 32.02, 10.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:29:49,800 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:29:30
2025-07-01 11:29:49,887 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:29:49,892 [DEBUG][       Thread-603181][   transport.py][1871] : starting thread (client mode): 0x82b17e0
2025-07-01 11:29:49,892 [DEBUG][       Thread-603181][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:29:49,913 [DEBUG][       Thread-603181][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:29:49,913 [ INFO][       Thread-603181][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:29:49,916 [DEBUG][       Thread-603181][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:29:49,917 [DEBUG][       Thread-603181][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:29:49,917 [DEBUG][       Thread-603181][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:29:49,917 [DEBUG][       Thread-603181][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:29:49,917 [DEBUG][       Thread-603181][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:29:49,917 [DEBUG][       Thread-603181][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:29:49,917 [DEBUG][       Thread-603181][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:29:49,917 [DEBUG][       Thread-603181][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:29:49,917 [DEBUG][       Thread-603181][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:29:49,917 [DEBUG][       Thread-603181][   transport.py][1871] : client lang: <none>
2025-07-01 11:29:49,917 [DEBUG][       Thread-603181][   transport.py][1871] : server lang: <none>
2025-07-01 11:29:49,917 [DEBUG][       Thread-603181][   transport.py][1871] : kex follows: False
2025-07-01 11:29:49,917 [DEBUG][       Thread-603181][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:29:49,917 [DEBUG][       Thread-603181][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:29:49,917 [DEBUG][       Thread-603181][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:29:49,917 [DEBUG][       Thread-603181][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:29:49,917 [DEBUG][       Thread-603181][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:29:49,917 [DEBUG][       Thread-603181][   transport.py][1871] : Compression: none
2025-07-01 11:29:49,917 [DEBUG][       Thread-603181][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:29:49,934 [DEBUG][       Thread-603181][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:29:49,934 [DEBUG][       Thread-603181][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:29:49,935 [DEBUG][       Thread-603181][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:29:49,935 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:29:49,935 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:29:49,936 [DEBUG][       Thread-603181][   transport.py][1871] : userauth is OK
2025-07-01 11:29:49,960 [ INFO][       Thread-603181][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:29:49,961 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:29:50,607 [DEBUG][       Thread-603181][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:29:50,608 [DEBUG][       Thread-603181][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:29:50,649 [DEBUG][       Thread-603181][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:29:50,649 [DEBUG][       Thread-603181][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:29:50,653 [DEBUG][       Thread-603181][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:29:50,665 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:29:50,665 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:29:50,667 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:29:50,669 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:29:50,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:29:50,677 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:29:50,677 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:29:50,678 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:29:50,678 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.395431 -999.00  +10.70  28.64     55   +2.20 1 2 1 1 1   888    0 7.29 -41.19 ----- 28.6 28.6 31.4 39.0 13.9 -23.4 13.1 -22.2 12.6 -21.5 13.4 -21.7
2025-07-01 11:29:50,678 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:29:50,678 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:29:50,678 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.395431
2025-07-01 11:29:50,678 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:29:50,679 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:29:50,679 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:29:50,679 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:29:50,679 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:29:50,679 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:29:30', tmtdew=9.82, humidity=50.62, cloud=0.0, wind=32.02, temperature=10.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:29:25.238', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:29:50,679 [DEBUG][       Thread-603181][   transport.py][1871] : EOF in transport thread
2025-07-01 11:29:50,761 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:29:50,775 [DEBUG][       Thread-603184][   transport.py][1871] : starting thread (client mode): 0x8106b60
2025-07-01 11:29:50,775 [DEBUG][       Thread-603184][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:29:50,791 [DEBUG][       Thread-603184][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:29:50,791 [ INFO][       Thread-603184][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:29:50,799 [DEBUG][       Thread-603184][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:29:50,799 [DEBUG][       Thread-603184][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:29:50,799 [DEBUG][       Thread-603184][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:29:50,799 [DEBUG][       Thread-603184][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:29:50,799 [DEBUG][       Thread-603184][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:29:50,799 [DEBUG][       Thread-603184][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:29:50,799 [DEBUG][       Thread-603184][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:29:50,800 [DEBUG][       Thread-603184][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:29:50,800 [DEBUG][       Thread-603184][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:29:50,800 [DEBUG][       Thread-603184][   transport.py][1871] : client lang: <none>
2025-07-01 11:29:50,800 [DEBUG][       Thread-603184][   transport.py][1871] : server lang: <none>
2025-07-01 11:29:50,800 [DEBUG][       Thread-603184][   transport.py][1871] : kex follows: False
2025-07-01 11:29:50,800 [DEBUG][       Thread-603184][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:29:50,800 [DEBUG][       Thread-603184][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:29:50,800 [DEBUG][       Thread-603184][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:29:50,800 [DEBUG][       Thread-603184][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:29:50,800 [DEBUG][       Thread-603184][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:29:50,800 [DEBUG][       Thread-603184][   transport.py][1871] : Compression: none
2025-07-01 11:29:50,800 [DEBUG][       Thread-603184][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:29:50,859 [DEBUG][       Thread-603184][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:29:50,859 [DEBUG][       Thread-603184][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:29:50,860 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:29:50,860 [DEBUG][       Thread-603184][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:29:50,861 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:29:50,914 [DEBUG][       Thread-603184][   transport.py][1871] : userauth is OK
2025-07-01 11:29:50,914 [DEBUG][       Thread-603184][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:29:50,914 [DEBUG][       Thread-603184][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:29:50,914 [DEBUG][       Thread-603184][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:29:50,914 [DEBUG][       Thread-603184][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:29:50,928 [ INFO][       Thread-603184][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:29:50,928 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:29:50,928 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:29:51,931 [DEBUG][       Thread-603184][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:29:51,931 [DEBUG][       Thread-603184][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:29:51,980 [DEBUG][       Thread-603184][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:29:51,980 [DEBUG][       Thread-603184][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:29:51,994 [DEBUG][       Thread-603184][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:29:52,006 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:29:52,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-07-01 11:29:52,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-07-01 11:29:52,024 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:29:52,025 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:29:52,025 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:29:52,033 [DEBUG][       Thread-603184][   transport.py][1871] : EOF in transport thread
2025-07-01 11:29:57,069 [DEBUG][Thread-603186 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:30:02,032 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:30:02,032 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:30:02,032 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:30:02,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-07-01 11:30:02,515 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 29, 30), 9.82, 50.62, 0.0, 32.02, 10.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:30:02,515 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:29:30
2025-07-01 11:30:02,601 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:30:02,604 [DEBUG][       Thread-603187][   transport.py][1871] : starting thread (client mode): 0x82b29b0
2025-07-01 11:30:02,605 [DEBUG][       Thread-603187][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:30:02,625 [DEBUG][       Thread-603187][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:30:02,625 [ INFO][       Thread-603187][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:30:02,628 [DEBUG][       Thread-603187][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:30:02,628 [DEBUG][       Thread-603187][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:30:02,628 [DEBUG][       Thread-603187][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:30:02,628 [DEBUG][       Thread-603187][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:30:02,628 [DEBUG][       Thread-603187][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:30:02,628 [DEBUG][       Thread-603187][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:30:02,628 [DEBUG][       Thread-603187][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:30:02,628 [DEBUG][       Thread-603187][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:30:02,628 [DEBUG][       Thread-603187][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:30:02,628 [DEBUG][       Thread-603187][   transport.py][1871] : client lang: <none>
2025-07-01 11:30:02,628 [DEBUG][       Thread-603187][   transport.py][1871] : server lang: <none>
2025-07-01 11:30:02,628 [DEBUG][       Thread-603187][   transport.py][1871] : kex follows: False
2025-07-01 11:30:02,628 [DEBUG][       Thread-603187][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:30:02,628 [DEBUG][       Thread-603187][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:30:02,628 [DEBUG][       Thread-603187][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:30:02,628 [DEBUG][       Thread-603187][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:30:02,629 [DEBUG][       Thread-603187][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:30:02,629 [DEBUG][       Thread-603187][   transport.py][1871] : Compression: none
2025-07-01 11:30:02,629 [DEBUG][       Thread-603187][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:30:02,637 [DEBUG][       Thread-603187][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:30:02,637 [DEBUG][       Thread-603187][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:30:02,638 [DEBUG][       Thread-603187][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:30:02,638 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:30:02,638 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:30:02,639 [DEBUG][       Thread-603187][   transport.py][1871] : userauth is OK
2025-07-01 11:30:02,651 [ INFO][       Thread-603187][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:30:02,652 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:30:03,307 [DEBUG][       Thread-603187][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:30:03,307 [DEBUG][       Thread-603187][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:30:03,348 [DEBUG][       Thread-603187][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:30:03,348 [DEBUG][       Thread-603187][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:30:03,351 [DEBUG][       Thread-603187][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:30:03,364 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:30:03,364 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:30:03,365 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:30:03,366 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:30:03,368 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:30:03,369 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:30:03,369 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:30:03,369 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:30:03,369 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.395431 -999.00  +10.70  28.64     55   +2.20 1 2 1 1 1   888    0 7.29 -41.19 ----- 28.6 28.6 31.4 39.0 13.9 -23.4 13.1 -22.2 12.6 -21.5 13.4 -21.7
2025-07-01 11:30:03,369 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:30:03,369 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:30:03,369 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.395431
2025-07-01 11:30:03,369 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:30:03,369 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:30:03,369 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:30:03,369 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:30:03,369 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:30:03,369 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:29:30', tmtdew=9.82, humidity=50.62, cloud=0.0, wind=32.02, temperature=10.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:29:25.238', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:30:03,370 [DEBUG][       Thread-603187][   transport.py][1871] : EOF in transport thread
2025-07-01 11:30:03,444 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:30:03,455 [DEBUG][       Thread-603190][   transport.py][1871] : starting thread (client mode): 0x81a40a0
2025-07-01 11:30:03,455 [DEBUG][       Thread-603190][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:30:03,481 [DEBUG][       Thread-603190][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:30:03,481 [ INFO][       Thread-603190][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:30:03,488 [DEBUG][       Thread-603190][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:30:03,488 [DEBUG][       Thread-603190][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:30:03,488 [DEBUG][       Thread-603190][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:30:03,489 [DEBUG][       Thread-603190][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:30:03,489 [DEBUG][       Thread-603190][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:30:03,489 [DEBUG][       Thread-603190][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:30:03,489 [DEBUG][       Thread-603190][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:30:03,489 [DEBUG][       Thread-603190][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:30:03,489 [DEBUG][       Thread-603190][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:30:03,489 [DEBUG][       Thread-603190][   transport.py][1871] : client lang: <none>
2025-07-01 11:30:03,489 [DEBUG][       Thread-603190][   transport.py][1871] : server lang: <none>
2025-07-01 11:30:03,489 [DEBUG][       Thread-603190][   transport.py][1871] : kex follows: False
2025-07-01 11:30:03,489 [DEBUG][       Thread-603190][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:30:03,489 [DEBUG][       Thread-603190][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:30:03,489 [DEBUG][       Thread-603190][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:30:03,489 [DEBUG][       Thread-603190][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:30:03,489 [DEBUG][       Thread-603190][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:30:03,489 [DEBUG][       Thread-603190][   transport.py][1871] : Compression: none
2025-07-01 11:30:03,489 [DEBUG][       Thread-603190][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:30:03,548 [DEBUG][       Thread-603190][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:30:03,548 [DEBUG][       Thread-603190][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:30:03,548 [DEBUG][       Thread-603190][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:30:03,548 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:30:03,549 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:30:03,605 [DEBUG][       Thread-603190][   transport.py][1871] : userauth is OK
2025-07-01 11:30:03,606 [DEBUG][       Thread-603190][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:30:03,606 [DEBUG][       Thread-603190][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:30:03,606 [DEBUG][       Thread-603190][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:30:03,606 [DEBUG][       Thread-603190][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:30:03,619 [ INFO][       Thread-603190][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:30:03,620 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:30:03,620 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:30:04,606 [DEBUG][       Thread-603190][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:30:04,606 [DEBUG][       Thread-603190][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:30:04,660 [DEBUG][       Thread-603190][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:30:04,661 [DEBUG][       Thread-603190][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:30:04,670 [DEBUG][       Thread-603190][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:30:04,678 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:30:04,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-07-01 11:30:04,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-07-01 11:30:04,697 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:30:04,697 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:30:04,698 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:30:04,706 [DEBUG][       Thread-603190][   transport.py][1871] : EOF in transport thread
2025-07-01 11:30:06,093 [DEBUG][Thread-603192 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:30:08,033 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:30:08,034 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:30:14,708 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:30:14,708 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:30:14,708 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:30:14,711 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 11:30:15,114 [DEBUG][Thread-603193 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:30:15,190 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 30, 2), 9.78, 50.77, 0.0, 30.54, 10.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:30:15,190 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:30:02
2025-07-01 11:30:15,275 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:30:15,280 [DEBUG][       Thread-603194][   transport.py][1871] : starting thread (client mode): 0x75a9c00
2025-07-01 11:30:15,281 [DEBUG][       Thread-603194][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:30:15,301 [DEBUG][       Thread-603194][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:30:15,301 [ INFO][       Thread-603194][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:30:15,304 [DEBUG][       Thread-603194][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:30:15,304 [DEBUG][       Thread-603194][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:30:15,304 [DEBUG][       Thread-603194][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:30:15,304 [DEBUG][       Thread-603194][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:30:15,304 [DEBUG][       Thread-603194][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:30:15,304 [DEBUG][       Thread-603194][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:30:15,304 [DEBUG][       Thread-603194][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:30:15,304 [DEBUG][       Thread-603194][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:30:15,304 [DEBUG][       Thread-603194][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:30:15,304 [DEBUG][       Thread-603194][   transport.py][1871] : client lang: <none>
2025-07-01 11:30:15,304 [DEBUG][       Thread-603194][   transport.py][1871] : server lang: <none>
2025-07-01 11:30:15,304 [DEBUG][       Thread-603194][   transport.py][1871] : kex follows: False
2025-07-01 11:30:15,304 [DEBUG][       Thread-603194][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:30:15,305 [DEBUG][       Thread-603194][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:30:15,305 [DEBUG][       Thread-603194][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:30:15,305 [DEBUG][       Thread-603194][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:30:15,305 [DEBUG][       Thread-603194][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:30:15,305 [DEBUG][       Thread-603194][   transport.py][1871] : Compression: none
2025-07-01 11:30:15,305 [DEBUG][       Thread-603194][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:30:15,320 [DEBUG][       Thread-603194][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:30:15,321 [DEBUG][       Thread-603194][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:30:15,321 [DEBUG][       Thread-603194][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:30:15,322 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:30:15,322 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:30:15,323 [DEBUG][       Thread-603194][   transport.py][1871] : userauth is OK
2025-07-01 11:30:15,336 [ INFO][       Thread-603194][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:30:15,337 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:30:16,003 [DEBUG][       Thread-603194][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:30:16,003 [DEBUG][       Thread-603194][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:30:16,045 [DEBUG][       Thread-603194][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:30:16,045 [DEBUG][       Thread-603194][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:30:16,047 [DEBUG][       Thread-603194][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:30:16,058 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:30:16,058 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:30:16,059 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:30:16,061 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:30:16,063 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:30:16,064 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:30:16,064 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:30:16,064 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:30:16,064 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.395431 -999.00  +10.70  28.64     55   +2.20 1 2 1 1 1   888    0 7.29 -41.19 ----- 28.6 28.6 31.4 39.0 13.9 -23.4 13.1 -22.2 12.6 -21.5 13.4 -21.7
2025-07-01 11:30:16,064 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:30:16,064 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:30:16,064 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.395431
2025-07-01 11:30:16,064 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:30:16,065 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:30:16,065 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:30:16,065 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:30:16,065 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:30:16,065 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:30:02', tmtdew=9.78, humidity=50.77, cloud=0.0, wind=30.54, temperature=10.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:29:25.238', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:30:16,065 [DEBUG][       Thread-603194][   transport.py][1871] : EOF in transport thread
2025-07-01 11:30:16,139 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:30:16,150 [DEBUG][       Thread-603197][   transport.py][1871] : starting thread (client mode): 0x83c8400
2025-07-01 11:30:16,150 [DEBUG][       Thread-603197][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:30:16,165 [DEBUG][       Thread-603197][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:30:16,165 [ INFO][       Thread-603197][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:30:16,173 [DEBUG][       Thread-603197][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:30:16,173 [DEBUG][       Thread-603197][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:30:16,173 [DEBUG][       Thread-603197][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:30:16,173 [DEBUG][       Thread-603197][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:30:16,173 [DEBUG][       Thread-603197][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:30:16,173 [DEBUG][       Thread-603197][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:30:16,173 [DEBUG][       Thread-603197][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:30:16,173 [DEBUG][       Thread-603197][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:30:16,173 [DEBUG][       Thread-603197][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:30:16,173 [DEBUG][       Thread-603197][   transport.py][1871] : client lang: <none>
2025-07-01 11:30:16,173 [DEBUG][       Thread-603197][   transport.py][1871] : server lang: <none>
2025-07-01 11:30:16,173 [DEBUG][       Thread-603197][   transport.py][1871] : kex follows: False
2025-07-01 11:30:16,173 [DEBUG][       Thread-603197][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:30:16,173 [DEBUG][       Thread-603197][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:30:16,173 [DEBUG][       Thread-603197][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:30:16,173 [DEBUG][       Thread-603197][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:30:16,173 [DEBUG][       Thread-603197][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:30:16,173 [DEBUG][       Thread-603197][   transport.py][1871] : Compression: none
2025-07-01 11:30:16,173 [DEBUG][       Thread-603197][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:30:16,228 [DEBUG][       Thread-603197][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:30:16,228 [DEBUG][       Thread-603197][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:30:16,228 [DEBUG][       Thread-603197][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:30:16,228 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:30:16,228 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:30:16,285 [DEBUG][       Thread-603197][   transport.py][1871] : userauth is OK
2025-07-01 11:30:16,285 [DEBUG][       Thread-603197][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:30:16,285 [DEBUG][       Thread-603197][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:30:16,286 [DEBUG][       Thread-603197][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:30:16,286 [DEBUG][       Thread-603197][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:30:16,300 [ INFO][       Thread-603197][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:30:16,300 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:30:16,300 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:30:17,306 [DEBUG][       Thread-603197][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:30:17,306 [DEBUG][       Thread-603197][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:30:17,355 [DEBUG][       Thread-603197][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:30:17,355 [DEBUG][       Thread-603197][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:30:17,363 [DEBUG][       Thread-603197][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:30:17,371 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:30:17,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-07-01 11:30:17,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') -> 00000000
2025-07-01 11:30:17,387 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:30:17,387 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:30:17,387 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:30:17,394 [DEBUG][       Thread-603197][   transport.py][1871] : EOF in transport thread
2025-07-01 11:30:24,136 [DEBUG][Thread-603199 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:30:26,291 [DEBUG][Thread-603200 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:30:27,397 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:30:27,397 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:30:27,398 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:30:27,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-07-01 11:30:27,880 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 30, 2), 9.78, 50.77, 0.0, 30.54, 10.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:30:27,880 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:30:02
2025-07-01 11:30:27,967 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:30:27,971 [DEBUG][       Thread-603201][   transport.py][1871] : starting thread (client mode): 0x82b3490
2025-07-01 11:30:27,971 [DEBUG][       Thread-603201][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:30:27,991 [DEBUG][       Thread-603201][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:30:27,991 [ INFO][       Thread-603201][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:30:27,995 [DEBUG][       Thread-603201][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:30:27,995 [DEBUG][       Thread-603201][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:30:27,995 [DEBUG][       Thread-603201][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:30:27,995 [DEBUG][       Thread-603201][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:30:27,995 [DEBUG][       Thread-603201][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:30:27,995 [DEBUG][       Thread-603201][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:30:27,995 [DEBUG][       Thread-603201][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:30:27,995 [DEBUG][       Thread-603201][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:30:27,995 [DEBUG][       Thread-603201][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:30:27,995 [DEBUG][       Thread-603201][   transport.py][1871] : client lang: <none>
2025-07-01 11:30:27,995 [DEBUG][       Thread-603201][   transport.py][1871] : server lang: <none>
2025-07-01 11:30:27,995 [DEBUG][       Thread-603201][   transport.py][1871] : kex follows: False
2025-07-01 11:30:27,995 [DEBUG][       Thread-603201][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:30:27,995 [DEBUG][       Thread-603201][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:30:27,995 [DEBUG][       Thread-603201][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:30:27,995 [DEBUG][       Thread-603201][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:30:27,995 [DEBUG][       Thread-603201][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:30:27,995 [DEBUG][       Thread-603201][   transport.py][1871] : Compression: none
2025-07-01 11:30:27,995 [DEBUG][       Thread-603201][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:30:28,010 [DEBUG][       Thread-603201][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:30:28,011 [DEBUG][       Thread-603201][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:30:28,011 [DEBUG][       Thread-603201][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:30:28,012 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:30:28,012 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:30:28,053 [DEBUG][       Thread-603201][   transport.py][1871] : userauth is OK
2025-07-01 11:30:28,078 [ INFO][       Thread-603201][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:30:28,078 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:30:28,740 [DEBUG][       Thread-603201][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:30:28,741 [DEBUG][       Thread-603201][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:30:28,785 [DEBUG][       Thread-603201][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:30:28,785 [DEBUG][       Thread-603201][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:30:28,800 [DEBUG][       Thread-603201][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:30:28,813 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:30:28,814 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:30:28,816 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:30:28,817 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:30:28,824 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:30:28,826 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:30:28,826 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:30:28,827 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:30:28,827 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.395778 -999.00  +10.80  37.74     55   +2.10 1 2 2 1 1   888    0 7.19 -42.92 ----- 37.7 37.7 38.4 47.8 13.9 -23.2 13.0 -23.1 12.6 -21.7 13.3 -21.7
2025-07-01 11:30:28,827 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:30:28,827 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:30:28,827 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.395778
2025-07-01 11:30:28,828 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:30:28,828 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:30:28,828 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:30:28,828 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:30:28,828 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:30:28,829 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:30:02', tmtdew=9.78, humidity=50.77, cloud=0.0, wind=30.54, temperature=10.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:29:55.219', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:30:28,830 [DEBUG][       Thread-603201][   transport.py][1871] : EOF in transport thread
2025-07-01 11:30:28,912 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:30:28,923 [DEBUG][       Thread-603204][   transport.py][1871] : starting thread (client mode): 0x81e58d0
2025-07-01 11:30:28,923 [DEBUG][       Thread-603204][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:30:28,939 [DEBUG][       Thread-603204][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:30:28,939 [ INFO][       Thread-603204][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:30:28,947 [DEBUG][       Thread-603204][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:30:28,947 [DEBUG][       Thread-603204][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:30:28,947 [DEBUG][       Thread-603204][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:30:28,947 [DEBUG][       Thread-603204][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:30:28,947 [DEBUG][       Thread-603204][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:30:28,947 [DEBUG][       Thread-603204][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:30:28,947 [DEBUG][       Thread-603204][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:30:28,947 [DEBUG][       Thread-603204][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:30:28,947 [DEBUG][       Thread-603204][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:30:28,947 [DEBUG][       Thread-603204][   transport.py][1871] : client lang: <none>
2025-07-01 11:30:28,947 [DEBUG][       Thread-603204][   transport.py][1871] : server lang: <none>
2025-07-01 11:30:28,947 [DEBUG][       Thread-603204][   transport.py][1871] : kex follows: False
2025-07-01 11:30:28,947 [DEBUG][       Thread-603204][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:30:28,948 [DEBUG][       Thread-603204][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:30:28,948 [DEBUG][       Thread-603204][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:30:28,948 [DEBUG][       Thread-603204][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:30:28,948 [DEBUG][       Thread-603204][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:30:28,948 [DEBUG][       Thread-603204][   transport.py][1871] : Compression: none
2025-07-01 11:30:28,948 [DEBUG][       Thread-603204][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:30:29,005 [DEBUG][       Thread-603204][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:30:29,006 [DEBUG][       Thread-603204][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:30:29,006 [DEBUG][       Thread-603204][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:30:29,007 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:30:29,007 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:30:29,062 [DEBUG][       Thread-603204][   transport.py][1871] : userauth is OK
2025-07-01 11:30:29,063 [DEBUG][       Thread-603204][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:30:29,063 [DEBUG][       Thread-603204][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:30:29,063 [DEBUG][       Thread-603204][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:30:29,063 [DEBUG][       Thread-603204][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:30:29,082 [ INFO][       Thread-603204][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:30:29,082 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:30:29,083 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:30:30,104 [DEBUG][       Thread-603204][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:30:30,104 [DEBUG][       Thread-603204][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:30:30,152 [DEBUG][       Thread-603204][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:30:30,152 [DEBUG][       Thread-603204][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:30:30,161 [DEBUG][       Thread-603204][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:30:30,171 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:30:30,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-07-01 11:30:30,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-07-01 11:30:30,189 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:30:30,190 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:30:30,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:30:30,198 [DEBUG][       Thread-603204][   transport.py][1871] : EOF in transport thread
2025-07-01 11:30:33,171 [DEBUG][Thread-603206 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:30:40,197 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:30:40,197 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:30:40,197 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:30:40,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-07-01 11:30:40,678 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 30, 34), 9.79, 50.75, 0.0, 37.62, 10.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:30:40,678 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:30:34
2025-07-01 11:30:40,764 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:30:40,768 [DEBUG][       Thread-603207][   transport.py][1871] : starting thread (client mode): 0x75ab610
2025-07-01 11:30:40,768 [DEBUG][       Thread-603207][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:30:40,791 [DEBUG][       Thread-603207][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:30:40,791 [ INFO][       Thread-603207][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:30:40,795 [DEBUG][       Thread-603207][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:30:40,795 [DEBUG][       Thread-603207][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:30:40,795 [DEBUG][       Thread-603207][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:30:40,795 [DEBUG][       Thread-603207][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:30:40,795 [DEBUG][       Thread-603207][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:30:40,795 [DEBUG][       Thread-603207][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:30:40,795 [DEBUG][       Thread-603207][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:30:40,795 [DEBUG][       Thread-603207][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:30:40,795 [DEBUG][       Thread-603207][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:30:40,795 [DEBUG][       Thread-603207][   transport.py][1871] : client lang: <none>
2025-07-01 11:30:40,795 [DEBUG][       Thread-603207][   transport.py][1871] : server lang: <none>
2025-07-01 11:30:40,795 [DEBUG][       Thread-603207][   transport.py][1871] : kex follows: False
2025-07-01 11:30:40,795 [DEBUG][       Thread-603207][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:30:40,795 [DEBUG][       Thread-603207][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:30:40,795 [DEBUG][       Thread-603207][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:30:40,795 [DEBUG][       Thread-603207][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:30:40,795 [DEBUG][       Thread-603207][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:30:40,795 [DEBUG][       Thread-603207][   transport.py][1871] : Compression: none
2025-07-01 11:30:40,795 [DEBUG][       Thread-603207][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:30:40,810 [DEBUG][       Thread-603207][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:30:40,810 [DEBUG][       Thread-603207][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:30:40,810 [DEBUG][       Thread-603207][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:30:40,810 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:30:40,810 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:30:40,811 [DEBUG][       Thread-603207][   transport.py][1871] : userauth is OK
2025-07-01 11:30:40,835 [ INFO][       Thread-603207][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:30:40,836 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:30:41,478 [DEBUG][       Thread-603207][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:30:41,479 [DEBUG][       Thread-603207][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:30:41,521 [DEBUG][       Thread-603207][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:30:41,521 [DEBUG][       Thread-603207][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:30:41,524 [DEBUG][       Thread-603207][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:30:41,536 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:30:41,536 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:30:41,538 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:30:41,540 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:30:41,546 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:30:41,548 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:30:41,548 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:30:41,548 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:30:41,549 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.395778 -999.00  +10.80  37.74     55   +2.10 1 2 2 1 1   888    0 7.19 -42.92 ----- 37.7 37.7 38.4 47.8 13.9 -23.2 13.0 -23.1 12.6 -21.7 13.3 -21.7
2025-07-01 11:30:41,549 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:30:41,549 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:30:41,549 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.395778
2025-07-01 11:30:41,549 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:30:41,550 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:30:41,550 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:30:41,550 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:30:41,550 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:30:41,550 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:30:34', tmtdew=9.79, humidity=50.75, cloud=0.0, wind=37.62, temperature=10.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:29:55.219', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:30:41,551 [DEBUG][       Thread-603207][   transport.py][1871] : EOF in transport thread
2025-07-01 11:30:41,634 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:30:41,644 [DEBUG][       Thread-603210][   transport.py][1871] : starting thread (client mode): 0x81e5ed0
2025-07-01 11:30:41,644 [DEBUG][       Thread-603210][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:30:41,661 [DEBUG][       Thread-603210][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:30:41,661 [ INFO][       Thread-603210][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:30:41,668 [DEBUG][       Thread-603210][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:30:41,668 [DEBUG][       Thread-603210][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:30:41,668 [DEBUG][       Thread-603210][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:30:41,668 [DEBUG][       Thread-603210][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:30:41,669 [DEBUG][       Thread-603210][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:30:41,669 [DEBUG][       Thread-603210][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:30:41,669 [DEBUG][       Thread-603210][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:30:41,669 [DEBUG][       Thread-603210][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:30:41,669 [DEBUG][       Thread-603210][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:30:41,669 [DEBUG][       Thread-603210][   transport.py][1871] : client lang: <none>
2025-07-01 11:30:41,669 [DEBUG][       Thread-603210][   transport.py][1871] : server lang: <none>
2025-07-01 11:30:41,669 [DEBUG][       Thread-603210][   transport.py][1871] : kex follows: False
2025-07-01 11:30:41,669 [DEBUG][       Thread-603210][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:30:41,669 [DEBUG][       Thread-603210][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:30:41,669 [DEBUG][       Thread-603210][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:30:41,669 [DEBUG][       Thread-603210][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:30:41,669 [DEBUG][       Thread-603210][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:30:41,669 [DEBUG][       Thread-603210][   transport.py][1871] : Compression: none
2025-07-01 11:30:41,669 [DEBUG][       Thread-603210][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:30:41,725 [DEBUG][       Thread-603210][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:30:41,726 [DEBUG][       Thread-603210][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:30:41,726 [DEBUG][       Thread-603210][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:30:41,726 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:30:41,727 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:30:41,783 [DEBUG][       Thread-603210][   transport.py][1871] : userauth is OK
2025-07-01 11:30:41,783 [DEBUG][       Thread-603210][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:30:41,783 [DEBUG][       Thread-603210][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:30:41,784 [DEBUG][       Thread-603210][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:30:41,784 [DEBUG][       Thread-603210][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:30:41,805 [ INFO][       Thread-603210][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:30:41,805 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:30:41,805 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:30:42,192 [DEBUG][Thread-603212 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:30:42,784 [DEBUG][       Thread-603210][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:30:42,785 [DEBUG][       Thread-603210][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:30:42,836 [DEBUG][       Thread-603210][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:30:42,836 [DEBUG][       Thread-603210][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:30:42,845 [DEBUG][       Thread-603210][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:30:42,854 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:30:42,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-07-01 11:30:42,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-07-01 11:30:42,872 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:30:42,872 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:30:42,873 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:30:42,880 [DEBUG][       Thread-603210][   transport.py][1871] : EOF in transport thread
2025-07-01 11:30:51,236 [DEBUG][Thread-603213 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:30:52,883 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:30:52,883 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:30:52,883 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:30:52,886 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 11:30:53,364 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 30, 34), 9.79, 50.75, 0.0, 37.62, 10.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:30:53,364 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:30:34
2025-07-01 11:30:53,450 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:30:53,456 [DEBUG][       Thread-603214][   transport.py][1871] : starting thread (client mode): 0x75a8a00
2025-07-01 11:30:53,456 [DEBUG][       Thread-603214][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:30:53,467 [DEBUG][       Thread-603214][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:30:53,467 [ INFO][       Thread-603214][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:30:53,469 [DEBUG][       Thread-603214][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:30:53,469 [DEBUG][       Thread-603214][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:30:53,469 [DEBUG][       Thread-603214][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:30:53,469 [DEBUG][       Thread-603214][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:30:53,469 [DEBUG][       Thread-603214][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:30:53,469 [DEBUG][       Thread-603214][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:30:53,469 [DEBUG][       Thread-603214][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:30:53,469 [DEBUG][       Thread-603214][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:30:53,469 [DEBUG][       Thread-603214][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:30:53,469 [DEBUG][       Thread-603214][   transport.py][1871] : client lang: <none>
2025-07-01 11:30:53,469 [DEBUG][       Thread-603214][   transport.py][1871] : server lang: <none>
2025-07-01 11:30:53,469 [DEBUG][       Thread-603214][   transport.py][1871] : kex follows: False
2025-07-01 11:30:53,469 [DEBUG][       Thread-603214][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:30:53,469 [DEBUG][       Thread-603214][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:30:53,469 [DEBUG][       Thread-603214][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:30:53,469 [DEBUG][       Thread-603214][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:30:53,469 [DEBUG][       Thread-603214][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:30:53,469 [DEBUG][       Thread-603214][   transport.py][1871] : Compression: none
2025-07-01 11:30:53,469 [DEBUG][       Thread-603214][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:30:53,481 [DEBUG][       Thread-603214][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:30:53,481 [DEBUG][       Thread-603214][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:30:53,481 [DEBUG][       Thread-603214][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:30:53,482 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:30:53,482 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:30:53,483 [DEBUG][       Thread-603214][   transport.py][1871] : userauth is OK
2025-07-01 11:30:53,507 [ INFO][       Thread-603214][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:30:53,507 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:30:54,097 [DEBUG][       Thread-603214][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:30:54,097 [DEBUG][       Thread-603214][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:30:54,141 [DEBUG][       Thread-603214][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:30:54,141 [DEBUG][       Thread-603214][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:30:54,144 [DEBUG][       Thread-603214][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:30:54,154 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:30:54,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:30:54,156 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:30:54,157 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:30:54,161 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:30:54,164 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:30:54,164 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:30:54,165 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:30:54,165 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.396125 -999.00  +10.60  36.37     55   +2.00 1 2 2 1 1   888    0 7.31 -42.86 ----- 36.4 36.4 41.1 47.5 13.7 -23.8 12.9 -23.0 12.5 -22.3 13.2 -23.2
2025-07-01 11:30:54,165 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:30:54,165 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:30:54,165 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.396125
2025-07-01 11:30:54,166 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:30:54,166 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:30:54,166 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:30:54,166 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:30:54,166 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:30:54,166 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:30:34', tmtdew=9.79, humidity=50.75, cloud=0.0, wind=37.62, temperature=10.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:30:25.200', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:30:54,167 [DEBUG][       Thread-603214][   transport.py][1871] : EOF in transport thread
2025-07-01 11:30:54,248 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:30:54,259 [DEBUG][       Thread-603217][   transport.py][1871] : starting thread (client mode): 0x81e4460
2025-07-01 11:30:54,259 [DEBUG][       Thread-603217][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:30:54,279 [DEBUG][       Thread-603217][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:30:54,279 [ INFO][       Thread-603217][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:30:54,286 [DEBUG][       Thread-603217][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:30:54,287 [DEBUG][       Thread-603217][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:30:54,287 [DEBUG][       Thread-603217][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:30:54,287 [DEBUG][       Thread-603217][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:30:54,287 [DEBUG][       Thread-603217][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:30:54,287 [DEBUG][       Thread-603217][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:30:54,287 [DEBUG][       Thread-603217][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:30:54,287 [DEBUG][       Thread-603217][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:30:54,287 [DEBUG][       Thread-603217][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:30:54,287 [DEBUG][       Thread-603217][   transport.py][1871] : client lang: <none>
2025-07-01 11:30:54,287 [DEBUG][       Thread-603217][   transport.py][1871] : server lang: <none>
2025-07-01 11:30:54,287 [DEBUG][       Thread-603217][   transport.py][1871] : kex follows: False
2025-07-01 11:30:54,287 [DEBUG][       Thread-603217][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:30:54,287 [DEBUG][       Thread-603217][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:30:54,287 [DEBUG][       Thread-603217][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:30:54,287 [DEBUG][       Thread-603217][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:30:54,287 [DEBUG][       Thread-603217][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:30:54,288 [DEBUG][       Thread-603217][   transport.py][1871] : Compression: none
2025-07-01 11:30:54,288 [DEBUG][       Thread-603217][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:30:54,346 [DEBUG][       Thread-603217][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:30:54,346 [DEBUG][       Thread-603217][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:30:54,347 [DEBUG][       Thread-603217][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:30:54,347 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:30:54,348 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:30:54,402 [DEBUG][       Thread-603217][   transport.py][1871] : userauth is OK
2025-07-01 11:30:54,403 [DEBUG][       Thread-603217][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:30:54,403 [DEBUG][       Thread-603217][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:30:54,403 [DEBUG][       Thread-603217][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:30:54,403 [DEBUG][       Thread-603217][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:30:54,422 [ INFO][       Thread-603217][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:30:54,422 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:30:54,423 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:30:55,444 [DEBUG][       Thread-603217][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:30:55,444 [DEBUG][       Thread-603217][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:30:55,491 [DEBUG][       Thread-603217][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:30:55,491 [DEBUG][       Thread-603217][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:30:55,499 [DEBUG][       Thread-603217][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:30:55,507 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:30:55,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-07-01 11:30:55,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-07-01 11:30:55,523 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:30:55,523 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:30:55,523 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:30:55,530 [DEBUG][       Thread-603217][   transport.py][1871] : EOF in transport thread
2025-07-01 11:31:00,256 [DEBUG][Thread-603219 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:31:05,533 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:31:05,533 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:31:05,534 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:31:05,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-07-01 11:31:06,015 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 30, 34), 9.79, 50.75, 0.0, 37.62, 10.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:31:06,015 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:30:34
2025-07-01 11:31:06,101 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:31:06,105 [DEBUG][       Thread-603220][   transport.py][1871] : starting thread (client mode): 0x75aba60
2025-07-01 11:31:06,105 [DEBUG][       Thread-603220][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:31:06,125 [DEBUG][       Thread-603220][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:31:06,125 [ INFO][       Thread-603220][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:31:06,126 [DEBUG][       Thread-603220][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:31:06,126 [DEBUG][       Thread-603220][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:31:06,126 [DEBUG][       Thread-603220][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:31:06,126 [DEBUG][       Thread-603220][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:31:06,126 [DEBUG][       Thread-603220][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:31:06,126 [DEBUG][       Thread-603220][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:31:06,126 [DEBUG][       Thread-603220][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:31:06,126 [DEBUG][       Thread-603220][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:31:06,126 [DEBUG][       Thread-603220][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:31:06,126 [DEBUG][       Thread-603220][   transport.py][1871] : client lang: <none>
2025-07-01 11:31:06,126 [DEBUG][       Thread-603220][   transport.py][1871] : server lang: <none>
2025-07-01 11:31:06,126 [DEBUG][       Thread-603220][   transport.py][1871] : kex follows: False
2025-07-01 11:31:06,126 [DEBUG][       Thread-603220][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:31:06,126 [DEBUG][       Thread-603220][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:31:06,126 [DEBUG][       Thread-603220][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:31:06,126 [DEBUG][       Thread-603220][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:31:06,126 [DEBUG][       Thread-603220][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:31:06,126 [DEBUG][       Thread-603220][   transport.py][1871] : Compression: none
2025-07-01 11:31:06,126 [DEBUG][       Thread-603220][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:31:06,136 [DEBUG][       Thread-603220][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:31:06,137 [DEBUG][       Thread-603220][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:31:06,137 [DEBUG][       Thread-603220][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:31:06,137 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:31:06,138 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:31:06,138 [DEBUG][       Thread-603220][   transport.py][1871] : userauth is OK
2025-07-01 11:31:06,163 [ INFO][       Thread-603220][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:31:06,163 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:31:06,783 [DEBUG][       Thread-603220][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:31:06,783 [DEBUG][       Thread-603220][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:31:06,824 [DEBUG][       Thread-603220][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:31:06,825 [DEBUG][       Thread-603220][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:31:06,827 [DEBUG][       Thread-603220][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:31:06,838 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:31:06,838 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:31:06,840 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:31:06,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:31:06,844 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:31:06,845 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:31:06,845 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:31:06,845 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:31:06,845 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.396125 -999.00  +10.60  36.37     55   +2.00 1 2 2 1 1   888    0 7.31 -42.86 ----- 36.4 36.4 41.1 47.5 13.7 -23.8 12.9 -23.0 12.5 -22.3 13.2 -23.2
2025-07-01 11:31:06,845 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:31:06,845 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:31:06,845 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.396125
2025-07-01 11:31:06,845 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:31:06,846 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:31:06,846 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:31:06,846 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:31:06,846 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:31:06,846 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:30:34', tmtdew=9.79, humidity=50.75, cloud=0.0, wind=37.62, temperature=10.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:30:25.200', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:31:06,847 [DEBUG][       Thread-603220][   transport.py][1871] : EOF in transport thread
2025-07-01 11:31:06,920 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:31:06,929 [DEBUG][       Thread-603223][   transport.py][1871] : starting thread (client mode): 0x81729b0
2025-07-01 11:31:06,929 [DEBUG][       Thread-603223][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:31:06,945 [DEBUG][       Thread-603223][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:31:06,945 [ INFO][       Thread-603223][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:31:06,952 [DEBUG][       Thread-603223][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:31:06,952 [DEBUG][       Thread-603223][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:31:06,952 [DEBUG][       Thread-603223][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:31:06,952 [DEBUG][       Thread-603223][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:31:06,952 [DEBUG][       Thread-603223][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:31:06,952 [DEBUG][       Thread-603223][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:31:06,952 [DEBUG][       Thread-603223][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:31:06,952 [DEBUG][       Thread-603223][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:31:06,952 [DEBUG][       Thread-603223][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:31:06,952 [DEBUG][       Thread-603223][   transport.py][1871] : client lang: <none>
2025-07-01 11:31:06,952 [DEBUG][       Thread-603223][   transport.py][1871] : server lang: <none>
2025-07-01 11:31:06,952 [DEBUG][       Thread-603223][   transport.py][1871] : kex follows: False
2025-07-01 11:31:06,952 [DEBUG][       Thread-603223][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:31:06,952 [DEBUG][       Thread-603223][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:31:06,952 [DEBUG][       Thread-603223][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:31:06,952 [DEBUG][       Thread-603223][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:31:06,952 [DEBUG][       Thread-603223][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:31:06,952 [DEBUG][       Thread-603223][   transport.py][1871] : Compression: none
2025-07-01 11:31:06,952 [DEBUG][       Thread-603223][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:31:07,012 [DEBUG][       Thread-603223][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:31:07,013 [DEBUG][       Thread-603223][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:31:07,013 [DEBUG][       Thread-603223][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:31:07,013 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:31:07,013 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:31:07,069 [DEBUG][       Thread-603223][   transport.py][1871] : userauth is OK
2025-07-01 11:31:07,069 [DEBUG][       Thread-603223][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:31:07,070 [DEBUG][       Thread-603223][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:31:07,070 [DEBUG][       Thread-603223][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:31:07,070 [DEBUG][       Thread-603223][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:31:07,083 [ INFO][       Thread-603223][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:31:07,084 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:31:07,084 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:31:08,102 [DEBUG][       Thread-603223][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:31:08,103 [DEBUG][       Thread-603223][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:31:08,152 [DEBUG][       Thread-603223][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:31:08,152 [DEBUG][       Thread-603223][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:31:08,161 [DEBUG][       Thread-603223][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:31:08,170 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:31:08,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-07-01 11:31:08,173 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:31:08,174 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:31: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') -> 00000000
2025-07-01 11:31:08,188 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:31:08,188 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:31:08,188 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:31:08,196 [DEBUG][       Thread-603223][   transport.py][1871] : EOF in transport thread
2025-07-01 11:31:09,276 [DEBUG][Thread-603225 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:31:18,196 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:31:18,196 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:31:18,196 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:31:18,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-07-01 11:31:18,295 [DEBUG][Thread-603226 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:31:18,662 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 31, 6), 9.8, 50.7, 0.0, 43.26, 10.64, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:31:18,662 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:31:06
2025-07-01 11:31:18,748 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:31:18,752 [DEBUG][       Thread-603227][   transport.py][1871] : starting thread (client mode): 0x75a92a0
2025-07-01 11:31:18,752 [DEBUG][       Thread-603227][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:31:18,763 [DEBUG][       Thread-603227][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:31:18,763 [ INFO][       Thread-603227][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:31:18,766 [DEBUG][       Thread-603227][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:31:18,766 [DEBUG][       Thread-603227][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:31:18,766 [DEBUG][       Thread-603227][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:31:18,766 [DEBUG][       Thread-603227][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:31:18,767 [DEBUG][       Thread-603227][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:31:18,767 [DEBUG][       Thread-603227][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:31:18,767 [DEBUG][       Thread-603227][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:31:18,767 [DEBUG][       Thread-603227][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:31:18,767 [DEBUG][       Thread-603227][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:31:18,767 [DEBUG][       Thread-603227][   transport.py][1871] : client lang: <none>
2025-07-01 11:31:18,767 [DEBUG][       Thread-603227][   transport.py][1871] : server lang: <none>
2025-07-01 11:31:18,767 [DEBUG][       Thread-603227][   transport.py][1871] : kex follows: False
2025-07-01 11:31:18,767 [DEBUG][       Thread-603227][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:31:18,767 [DEBUG][       Thread-603227][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:31:18,767 [DEBUG][       Thread-603227][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:31:18,767 [DEBUG][       Thread-603227][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:31:18,767 [DEBUG][       Thread-603227][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:31:18,767 [DEBUG][       Thread-603227][   transport.py][1871] : Compression: none
2025-07-01 11:31:18,767 [DEBUG][       Thread-603227][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:31:18,780 [DEBUG][       Thread-603227][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:31:18,781 [DEBUG][       Thread-603227][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:31:18,781 [DEBUG][       Thread-603227][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:31:18,781 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:31:18,781 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:31:18,782 [DEBUG][       Thread-603227][   transport.py][1871] : userauth is OK
2025-07-01 11:31:18,795 [ INFO][       Thread-603227][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:31:18,795 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:31:19,380 [DEBUG][       Thread-603227][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:31:19,380 [DEBUG][       Thread-603227][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:31:19,421 [DEBUG][       Thread-603227][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:31:19,421 [DEBUG][       Thread-603227][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:31:19,423 [DEBUG][       Thread-603227][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:31:19,436 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:31:19,436 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:31:19,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:31:19,440 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:31:19,444 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:31:19,446 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:31:19,446 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:31:19,447 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:31:19,447 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.396125 -999.00  +10.60  36.37     55   +2.00 1 2 2 1 1   888    0 7.31 -42.86 ----- 36.4 36.4 41.1 47.5 13.7 -23.8 12.9 -23.0 12.5 -22.3 13.2 -23.2
2025-07-01 11:31:19,447 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:31:19,447 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:31:19,447 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.396125
2025-07-01 11:31:19,448 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:31:19,448 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:31:19,448 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:31:19,448 [DEBUG][       Thread-603227][   transport.py][1871] : EOF in transport thread
2025-07-01 11:31:19,449 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:31:19,449 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:31:19,449 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:31:06', tmtdew=9.8, humidity=50.7, cloud=0.0, wind=43.26, temperature=10.64, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:30:25.200', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:31:19,532 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:31:19,542 [DEBUG][       Thread-603230][   transport.py][1871] : starting thread (client mode): 0x8393f40
2025-07-01 11:31:19,543 [DEBUG][       Thread-603230][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:31:19,559 [DEBUG][       Thread-603230][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:31:19,559 [ INFO][       Thread-603230][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:31:19,568 [DEBUG][       Thread-603230][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:31:19,568 [DEBUG][       Thread-603230][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:31:19,568 [DEBUG][       Thread-603230][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:31:19,568 [DEBUG][       Thread-603230][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:31:19,568 [DEBUG][       Thread-603230][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:31:19,568 [DEBUG][       Thread-603230][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:31:19,568 [DEBUG][       Thread-603230][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:31:19,568 [DEBUG][       Thread-603230][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:31:19,569 [DEBUG][       Thread-603230][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:31:19,569 [DEBUG][       Thread-603230][   transport.py][1871] : client lang: <none>
2025-07-01 11:31:19,569 [DEBUG][       Thread-603230][   transport.py][1871] : server lang: <none>
2025-07-01 11:31:19,569 [DEBUG][       Thread-603230][   transport.py][1871] : kex follows: False
2025-07-01 11:31:19,569 [DEBUG][       Thread-603230][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:31:19,569 [DEBUG][       Thread-603230][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:31:19,569 [DEBUG][       Thread-603230][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:31:19,569 [DEBUG][       Thread-603230][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:31:19,569 [DEBUG][       Thread-603230][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:31:19,569 [DEBUG][       Thread-603230][   transport.py][1871] : Compression: none
2025-07-01 11:31:19,569 [DEBUG][       Thread-603230][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:31:19,628 [DEBUG][       Thread-603230][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:31:19,628 [DEBUG][       Thread-603230][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:31:19,629 [DEBUG][       Thread-603230][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:31:19,629 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:31:19,630 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:31:19,687 [DEBUG][       Thread-603230][   transport.py][1871] : userauth is OK
2025-07-01 11:31:19,688 [DEBUG][       Thread-603230][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:31:19,688 [DEBUG][       Thread-603230][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:31:19,688 [DEBUG][       Thread-603230][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:31:19,688 [DEBUG][       Thread-603230][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:31:19,706 [ INFO][       Thread-603230][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:31:19,707 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:31:19,707 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:31:20,708 [DEBUG][       Thread-603230][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:31:20,708 [DEBUG][       Thread-603230][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:31:20,756 [DEBUG][       Thread-603230][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:31:20,756 [DEBUG][       Thread-603230][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:31:20,765 [DEBUG][       Thread-603230][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:31:20,775 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:31:20,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-07-01 11:31:20,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') -> 00000000
2025-07-01 11:31:20,793 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:31:20,793 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:31:20,793 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:31:20,802 [DEBUG][       Thread-603230][   transport.py][1871] : EOF in transport thread
2025-07-01 11:31:26,344 [DEBUG][Thread-603232 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:31:27,318 [DEBUG][Thread-603233 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:31:30,800 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:31:30,800 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:31:30,800 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:31:30,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-07-01 11:31:31,271 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 31, 6), 9.8, 50.7, 0.0, 43.26, 10.64, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:31:31,272 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:31:06
2025-07-01 11:31:31,358 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:31:31,364 [DEBUG][       Thread-603234][   transport.py][1871] : starting thread (client mode): 0x81a48b0
2025-07-01 11:31:31,364 [DEBUG][       Thread-603234][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:31:31,384 [DEBUG][       Thread-603234][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:31:31,384 [ INFO][       Thread-603234][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:31:31,386 [DEBUG][       Thread-603234][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:31:31,386 [DEBUG][       Thread-603234][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:31:31,386 [DEBUG][       Thread-603234][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:31:31,386 [DEBUG][       Thread-603234][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:31:31,386 [DEBUG][       Thread-603234][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:31:31,386 [DEBUG][       Thread-603234][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:31:31,386 [DEBUG][       Thread-603234][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:31:31,386 [DEBUG][       Thread-603234][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:31:31,386 [DEBUG][       Thread-603234][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:31:31,386 [DEBUG][       Thread-603234][   transport.py][1871] : client lang: <none>
2025-07-01 11:31:31,386 [DEBUG][       Thread-603234][   transport.py][1871] : server lang: <none>
2025-07-01 11:31:31,386 [DEBUG][       Thread-603234][   transport.py][1871] : kex follows: False
2025-07-01 11:31:31,386 [DEBUG][       Thread-603234][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:31:31,386 [DEBUG][       Thread-603234][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:31:31,386 [DEBUG][       Thread-603234][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:31:31,386 [DEBUG][       Thread-603234][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:31:31,387 [DEBUG][       Thread-603234][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:31:31,387 [DEBUG][       Thread-603234][   transport.py][1871] : Compression: none
2025-07-01 11:31:31,387 [DEBUG][       Thread-603234][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:31:31,399 [DEBUG][       Thread-603234][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:31:31,400 [DEBUG][       Thread-603234][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:31:31,400 [DEBUG][       Thread-603234][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:31:31,400 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:31:31,400 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:31:31,401 [DEBUG][       Thread-603234][   transport.py][1871] : userauth is OK
2025-07-01 11:31:31,426 [ INFO][       Thread-603234][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:31:31,426 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:31:32,033 [DEBUG][       Thread-603234][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:31:32,034 [DEBUG][       Thread-603234][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:31:32,076 [DEBUG][       Thread-603234][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:31:32,077 [DEBUG][       Thread-603234][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:31:32,080 [DEBUG][       Thread-603234][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:31:32,086 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:31:32,086 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:31:32,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:31:32,090 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:31:32,095 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:31:32,097 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:31:32,097 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:31:32,098 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:31:32,098 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.396472 -999.00  +10.30  38.17     55   +1.80 1 2 2 1 1   888    0 7.55 -35.98 ----- 38.2 38.2 46.8 52.0 13.6 -23.9 12.8 -22.8 12.4 -22.8 13.1 -22.0
2025-07-01 11:31:32,098 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:31:32,098 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:31:32,098 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.396472
2025-07-01 11:31:32,099 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:31:32,099 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:31:32,099 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:31:32,099 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:31:32,100 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:31:32,100 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:31:06', tmtdew=9.8, humidity=50.7, cloud=0.0, wind=43.26, temperature=10.64, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:30:55.181', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:31:32,100 [DEBUG][       Thread-603234][   transport.py][1871] : EOF in transport thread
2025-07-01 11:31:32,185 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:31:32,194 [DEBUG][       Thread-603237][   transport.py][1871] : starting thread (client mode): 0x83c8400
2025-07-01 11:31:32,194 [DEBUG][       Thread-603237][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:31:32,210 [DEBUG][       Thread-603237][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:31:32,210 [ INFO][       Thread-603237][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:31:32,217 [DEBUG][       Thread-603237][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:31:32,218 [DEBUG][       Thread-603237][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:31:32,218 [DEBUG][       Thread-603237][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:31:32,218 [DEBUG][       Thread-603237][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:31:32,218 [DEBUG][       Thread-603237][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:31:32,218 [DEBUG][       Thread-603237][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:31:32,218 [DEBUG][       Thread-603237][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:31:32,218 [DEBUG][       Thread-603237][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:31:32,218 [DEBUG][       Thread-603237][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:31:32,218 [DEBUG][       Thread-603237][   transport.py][1871] : client lang: <none>
2025-07-01 11:31:32,218 [DEBUG][       Thread-603237][   transport.py][1871] : server lang: <none>
2025-07-01 11:31:32,218 [DEBUG][       Thread-603237][   transport.py][1871] : kex follows: False
2025-07-01 11:31:32,218 [DEBUG][       Thread-603237][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:31:32,218 [DEBUG][       Thread-603237][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:31:32,218 [DEBUG][       Thread-603237][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:31:32,218 [DEBUG][       Thread-603237][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:31:32,218 [DEBUG][       Thread-603237][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:31:32,218 [DEBUG][       Thread-603237][   transport.py][1871] : Compression: none
2025-07-01 11:31:32,218 [DEBUG][       Thread-603237][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:31:32,274 [DEBUG][       Thread-603237][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:31:32,274 [DEBUG][       Thread-603237][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:31:32,275 [DEBUG][       Thread-603237][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:31:32,275 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:31:32,276 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:31:32,332 [DEBUG][       Thread-603237][   transport.py][1871] : userauth is OK
2025-07-01 11:31:32,333 [DEBUG][       Thread-603237][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:31:32,333 [DEBUG][       Thread-603237][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:31:32,333 [DEBUG][       Thread-603237][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:31:32,333 [DEBUG][       Thread-603237][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:31:32,356 [ INFO][       Thread-603237][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:31:32,356 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:31:32,356 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:31:33,381 [DEBUG][       Thread-603237][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:31:33,381 [DEBUG][       Thread-603237][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:31:33,431 [DEBUG][       Thread-603237][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:31:33,431 [DEBUG][       Thread-603237][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:31:33,440 [DEBUG][       Thread-603237][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:31:33,448 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:31:33,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-07-01 11:31: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') -> 00000000
2025-07-01 11:31:33,463 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:31:33,463 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:31:33,463 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:31:33,471 [DEBUG][       Thread-603237][   transport.py][1871] : EOF in transport thread
2025-07-01 11:31:36,357 [DEBUG][Thread-603239 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:31:43,472 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:31:43,472 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:31:43,472 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:31:43,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-07-01 11:31:43,947 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 31, 37), 9.7, 51.15, 0.0, 37.62, 10.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:31:43,947 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:31:37
2025-07-01 11:31:44,033 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:31:44,037 [DEBUG][       Thread-603240][   transport.py][1871] : starting thread (client mode): 0x82b3e80
2025-07-01 11:31:44,037 [DEBUG][       Thread-603240][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:31:44,058 [DEBUG][       Thread-603240][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:31:44,059 [ INFO][       Thread-603240][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:31:44,062 [DEBUG][       Thread-603240][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:31:44,062 [DEBUG][       Thread-603240][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:31:44,062 [DEBUG][       Thread-603240][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:31:44,062 [DEBUG][       Thread-603240][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:31:44,062 [DEBUG][       Thread-603240][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:31:44,062 [DEBUG][       Thread-603240][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:31:44,062 [DEBUG][       Thread-603240][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:31:44,062 [DEBUG][       Thread-603240][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:31:44,062 [DEBUG][       Thread-603240][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:31:44,062 [DEBUG][       Thread-603240][   transport.py][1871] : client lang: <none>
2025-07-01 11:31:44,062 [DEBUG][       Thread-603240][   transport.py][1871] : server lang: <none>
2025-07-01 11:31:44,062 [DEBUG][       Thread-603240][   transport.py][1871] : kex follows: False
2025-07-01 11:31:44,062 [DEBUG][       Thread-603240][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:31:44,062 [DEBUG][       Thread-603240][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:31:44,062 [DEBUG][       Thread-603240][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:31:44,062 [DEBUG][       Thread-603240][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:31:44,062 [DEBUG][       Thread-603240][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:31:44,062 [DEBUG][       Thread-603240][   transport.py][1871] : Compression: none
2025-07-01 11:31:44,062 [DEBUG][       Thread-603240][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:31:44,070 [DEBUG][       Thread-603240][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:31:44,071 [DEBUG][       Thread-603240][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:31:44,071 [DEBUG][       Thread-603240][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:31:44,071 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:31:44,072 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:31:44,073 [DEBUG][       Thread-603240][   transport.py][1871] : userauth is OK
2025-07-01 11:31:44,085 [ INFO][       Thread-603240][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:31:44,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:31:44,866 [DEBUG][       Thread-603240][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:31:44,866 [DEBUG][       Thread-603240][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:31:44,909 [DEBUG][       Thread-603240][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:31:44,909 [DEBUG][       Thread-603240][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:31:44,912 [DEBUG][       Thread-603240][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:31:44,923 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:31:44,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:31:44,926 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:31:44,927 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:31:44,932 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:31:44,934 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:31:44,934 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:31:44,934 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:31:44,935 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.396472 -999.00  +10.30  38.17     55   +1.80 1 2 2 1 1   888    0 7.55 -35.98 ----- 38.2 38.2 46.8 52.0 13.6 -23.9 12.8 -22.8 12.4 -22.8 13.1 -22.0
2025-07-01 11:31:44,935 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:31:44,935 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:31:44,935 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.396472
2025-07-01 11:31:44,935 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:31:44,936 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:31:44,936 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:31:44,936 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:31:44,936 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:31:44,936 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:31:37', tmtdew=9.7, humidity=51.15, cloud=0.0, wind=37.62, temperature=10.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:30:55.181', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:31:44,938 [DEBUG][       Thread-603240][   transport.py][1871] : EOF in transport thread
2025-07-01 11:31:45,012 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:31:45,023 [DEBUG][       Thread-603243][   transport.py][1871] : starting thread (client mode): 0x818ee30
2025-07-01 11:31:45,023 [DEBUG][       Thread-603243][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:31:45,039 [DEBUG][       Thread-603243][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:31:45,039 [ INFO][       Thread-603243][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:31:45,046 [DEBUG][       Thread-603243][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:31:45,046 [DEBUG][       Thread-603243][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:31:45,046 [DEBUG][       Thread-603243][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:31:45,046 [DEBUG][       Thread-603243][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:31:45,046 [DEBUG][       Thread-603243][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:31:45,046 [DEBUG][       Thread-603243][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:31:45,046 [DEBUG][       Thread-603243][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:31:45,046 [DEBUG][       Thread-603243][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:31:45,047 [DEBUG][       Thread-603243][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:31:45,047 [DEBUG][       Thread-603243][   transport.py][1871] : client lang: <none>
2025-07-01 11:31:45,047 [DEBUG][       Thread-603243][   transport.py][1871] : server lang: <none>
2025-07-01 11:31:45,047 [DEBUG][       Thread-603243][   transport.py][1871] : kex follows: False
2025-07-01 11:31:45,047 [DEBUG][       Thread-603243][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:31:45,047 [DEBUG][       Thread-603243][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:31:45,047 [DEBUG][       Thread-603243][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:31:45,047 [DEBUG][       Thread-603243][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:31:45,047 [DEBUG][       Thread-603243][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:31:45,047 [DEBUG][       Thread-603243][   transport.py][1871] : Compression: none
2025-07-01 11:31:45,047 [DEBUG][       Thread-603243][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:31:45,106 [DEBUG][       Thread-603243][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:31:45,106 [DEBUG][       Thread-603243][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:31:45,107 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:31:45,107 [DEBUG][       Thread-603243][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:31:45,108 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:31:45,162 [DEBUG][       Thread-603243][   transport.py][1871] : userauth is OK
2025-07-01 11:31:45,162 [DEBUG][       Thread-603243][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:31:45,162 [DEBUG][       Thread-603243][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:31:45,162 [DEBUG][       Thread-603243][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:31:45,162 [DEBUG][       Thread-603243][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:31:45,183 [ INFO][       Thread-603243][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:31:45,184 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:31:45,184 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:31:45,378 [DEBUG][Thread-603245 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:31:46,199 [DEBUG][       Thread-603243][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:31:46,199 [DEBUG][       Thread-603243][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:31:46,248 [DEBUG][       Thread-603243][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:31:46,248 [DEBUG][       Thread-603243][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:31:46,257 [DEBUG][       Thread-603243][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:31:46,266 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:31:46,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-07-01 11:31:46,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-07-01 11:31:46,283 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:31:46,284 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:31:46,284 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:31:46,294 [DEBUG][       Thread-603243][   transport.py][1871] : EOF in transport thread
2025-07-01 11:31:54,421 [DEBUG][Thread-603246 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:31:56,293 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:31:56,293 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:31:56,294 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:31:56,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-07-01 11:31:56,774 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 31, 37), 9.7, 51.15, 0.0, 37.62, 10.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:31:56,774 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:31:37
2025-07-01 11:31:56,860 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:31:56,865 [DEBUG][       Thread-603247][   transport.py][1871] : starting thread (client mode): 0x81e4730
2025-07-01 11:31:56,866 [DEBUG][       Thread-603247][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:31:56,885 [DEBUG][       Thread-603247][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:31:56,885 [ INFO][       Thread-603247][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:31:56,888 [DEBUG][       Thread-603247][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:31:56,888 [DEBUG][       Thread-603247][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:31:56,889 [DEBUG][       Thread-603247][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:31:56,889 [DEBUG][       Thread-603247][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:31:56,889 [DEBUG][       Thread-603247][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:31:56,889 [DEBUG][       Thread-603247][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:31:56,889 [DEBUG][       Thread-603247][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:31:56,889 [DEBUG][       Thread-603247][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:31:56,889 [DEBUG][       Thread-603247][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:31:56,889 [DEBUG][       Thread-603247][   transport.py][1871] : client lang: <none>
2025-07-01 11:31:56,889 [DEBUG][       Thread-603247][   transport.py][1871] : server lang: <none>
2025-07-01 11:31:56,889 [DEBUG][       Thread-603247][   transport.py][1871] : kex follows: False
2025-07-01 11:31:56,889 [DEBUG][       Thread-603247][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:31:56,889 [DEBUG][       Thread-603247][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:31:56,889 [DEBUG][       Thread-603247][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:31:56,889 [DEBUG][       Thread-603247][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:31:56,889 [DEBUG][       Thread-603247][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:31:56,889 [DEBUG][       Thread-603247][   transport.py][1871] : Compression: none
2025-07-01 11:31:56,889 [DEBUG][       Thread-603247][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:31:56,907 [DEBUG][       Thread-603247][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:31:56,907 [DEBUG][       Thread-603247][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:31:56,907 [DEBUG][       Thread-603247][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:31:56,908 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:31:56,908 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:31:56,909 [DEBUG][       Thread-603247][   transport.py][1871] : userauth is OK
2025-07-01 11:31:56,934 [ INFO][       Thread-603247][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:31:56,934 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:31:57,756 [DEBUG][       Thread-603247][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:31:57,756 [DEBUG][       Thread-603247][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:31:57,797 [DEBUG][       Thread-603247][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:31:57,797 [DEBUG][       Thread-603247][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:31:57,801 [DEBUG][       Thread-603247][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:31:57,809 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:31:57,809 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:31:57,811 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:31:57,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:31:57,818 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:31:57,820 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:31:57,820 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:31:57,821 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:31:57,821 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.396472 -999.00  +10.30  38.17     55   +1.80 1 2 2 1 1   888    0 7.55 -35.98 ----- 38.2 38.2 46.8 52.0 13.6 -23.9 12.8 -22.8 12.4 -22.8 13.1 -22.0
2025-07-01 11:31:57,821 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:31:57,821 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:31:57,821 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.396472
2025-07-01 11:31:57,822 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:31:57,822 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:31:57,822 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:31:57,822 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:31:57,822 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:31:57,823 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:31:37', tmtdew=9.7, humidity=51.15, cloud=0.0, wind=37.62, temperature=10.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:30:55.181', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:31:57,824 [DEBUG][       Thread-603247][   transport.py][1871] : EOF in transport thread
2025-07-01 11:31:57,907 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:31:57,917 [DEBUG][       Thread-603250][   transport.py][1871] : starting thread (client mode): 0x8172830
2025-07-01 11:31:57,917 [DEBUG][       Thread-603250][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:31:57,933 [DEBUG][       Thread-603250][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:31:57,933 [ INFO][       Thread-603250][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:31:57,941 [DEBUG][       Thread-603250][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:31:57,941 [DEBUG][       Thread-603250][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:31:57,941 [DEBUG][       Thread-603250][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:31:57,941 [DEBUG][       Thread-603250][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:31:57,941 [DEBUG][       Thread-603250][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:31:57,941 [DEBUG][       Thread-603250][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:31:57,941 [DEBUG][       Thread-603250][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:31:57,941 [DEBUG][       Thread-603250][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:31:57,941 [DEBUG][       Thread-603250][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:31:57,941 [DEBUG][       Thread-603250][   transport.py][1871] : client lang: <none>
2025-07-01 11:31:57,941 [DEBUG][       Thread-603250][   transport.py][1871] : server lang: <none>
2025-07-01 11:31:57,941 [DEBUG][       Thread-603250][   transport.py][1871] : kex follows: False
2025-07-01 11:31:57,941 [DEBUG][       Thread-603250][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:31:57,941 [DEBUG][       Thread-603250][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:31:57,941 [DEBUG][       Thread-603250][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:31:57,941 [DEBUG][       Thread-603250][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:31:57,941 [DEBUG][       Thread-603250][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:31:57,941 [DEBUG][       Thread-603250][   transport.py][1871] : Compression: none
2025-07-01 11:31:57,941 [DEBUG][       Thread-603250][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:31:57,998 [DEBUG][       Thread-603250][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:31:57,998 [DEBUG][       Thread-603250][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:31:57,999 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:31:57,999 [DEBUG][       Thread-603250][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:31:58,000 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:31:58,057 [DEBUG][       Thread-603250][   transport.py][1871] : userauth is OK
2025-07-01 11:31:58,057 [DEBUG][       Thread-603250][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:31:58,057 [DEBUG][       Thread-603250][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:31:58,057 [DEBUG][       Thread-603250][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:31:58,057 [DEBUG][       Thread-603250][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:31:58,077 [ INFO][       Thread-603250][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:31:58,077 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:31:58,078 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:31:59,113 [DEBUG][       Thread-603250][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:31:59,113 [DEBUG][       Thread-603250][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:31:59,164 [DEBUG][       Thread-603250][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:31:59,164 [DEBUG][       Thread-603250][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:31:59,177 [DEBUG][       Thread-603250][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:31:59,186 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:31:59,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')
2025-07-01 11:31:59,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-07-01 11:31:59,206 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:31:59,206 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:31:59,206 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:31:59,214 [DEBUG][       Thread-603250][   transport.py][1871] : EOF in transport thread
2025-07-01 11:32:03,442 [DEBUG][Thread-603252 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:32:08,312 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:32:08,313 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:32:09,217 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:32:09,217 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:32:09,217 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:32:09,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-07-01 11:32:09,699 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 31, 37), 9.7, 51.15, 0.0, 37.62, 10.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:32:09,699 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:31:37
2025-07-01 11:32:09,786 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:32:09,790 [DEBUG][       Thread-603253][   transport.py][1871] : starting thread (client mode): 0x8170d90
2025-07-01 11:32:09,790 [DEBUG][       Thread-603253][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:32:09,810 [DEBUG][       Thread-603253][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:32:09,810 [ INFO][       Thread-603253][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:32:09,813 [DEBUG][       Thread-603253][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:32:09,819 [DEBUG][       Thread-603253][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:32:09,819 [DEBUG][       Thread-603253][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:32:09,819 [DEBUG][       Thread-603253][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:32:09,819 [DEBUG][       Thread-603253][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:32:09,819 [DEBUG][       Thread-603253][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:32:09,819 [DEBUG][       Thread-603253][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:32:09,819 [DEBUG][       Thread-603253][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:32:09,819 [DEBUG][       Thread-603253][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:32:09,819 [DEBUG][       Thread-603253][   transport.py][1871] : client lang: <none>
2025-07-01 11:32:09,819 [DEBUG][       Thread-603253][   transport.py][1871] : server lang: <none>
2025-07-01 11:32:09,819 [DEBUG][       Thread-603253][   transport.py][1871] : kex follows: False
2025-07-01 11:32:09,819 [DEBUG][       Thread-603253][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:32:09,820 [DEBUG][       Thread-603253][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:32:09,820 [DEBUG][       Thread-603253][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:32:09,820 [DEBUG][       Thread-603253][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:32:09,820 [DEBUG][       Thread-603253][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:32:09,820 [DEBUG][       Thread-603253][   transport.py][1871] : Compression: none
2025-07-01 11:32:09,820 [DEBUG][       Thread-603253][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:32:09,837 [DEBUG][       Thread-603253][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:32:09,838 [DEBUG][       Thread-603253][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:32:09,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:32:09,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:32:09,839 [DEBUG][       Thread-603253][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:32:09,840 [DEBUG][       Thread-603253][   transport.py][1871] : userauth is OK
2025-07-01 11:32:09,853 [ INFO][       Thread-603253][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:32:09,853 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:32:10,505 [DEBUG][       Thread-603253][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:32:10,505 [DEBUG][       Thread-603253][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:32:10,548 [DEBUG][       Thread-603253][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:32:10,549 [DEBUG][       Thread-603253][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:32:10,551 [DEBUG][       Thread-603253][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:32:10,565 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:32:10,565 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:32:10,566 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:32:10,567 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:32:10,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:32:10,570 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:32:10,570 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:32:10,571 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:32:10,571 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.397167 -999.00  +10.50  37.16     56   +2.10 1 2 2 1 1   888    0 7.51 -32.69 ----- 37.2 37.2 38.8 43.0 13.5 -23.6 12.7 -23.3 12.3 -22.0 13.0 -22.8
2025-07-01 11:32:10,571 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:32:10,571 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:32:10,571 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.397167
2025-07-01 11:32:10,571 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:32:10,571 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:32:10,571 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:32:10,571 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:32:10,571 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:32:10,571 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:31:37', tmtdew=9.7, humidity=51.15, cloud=0.0, wind=37.62, temperature=10.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:31:55.229', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:32:10,572 [DEBUG][       Thread-603253][   transport.py][1871] : EOF in transport thread
2025-07-01 11:32:10,646 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:32:10,660 [DEBUG][       Thread-603256][   transport.py][1871] : starting thread (client mode): 0x8156320
2025-07-01 11:32:10,661 [DEBUG][       Thread-603256][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:32:10,679 [DEBUG][       Thread-603256][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:32:10,679 [ INFO][       Thread-603256][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:32:10,686 [DEBUG][       Thread-603256][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:32:10,686 [DEBUG][       Thread-603256][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:32:10,686 [DEBUG][       Thread-603256][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:32:10,686 [DEBUG][       Thread-603256][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:32:10,686 [DEBUG][       Thread-603256][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:32:10,686 [DEBUG][       Thread-603256][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:32:10,686 [DEBUG][       Thread-603256][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:32:10,686 [DEBUG][       Thread-603256][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:32:10,686 [DEBUG][       Thread-603256][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:32:10,686 [DEBUG][       Thread-603256][   transport.py][1871] : client lang: <none>
2025-07-01 11:32:10,686 [DEBUG][       Thread-603256][   transport.py][1871] : server lang: <none>
2025-07-01 11:32:10,686 [DEBUG][       Thread-603256][   transport.py][1871] : kex follows: False
2025-07-01 11:32:10,686 [DEBUG][       Thread-603256][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:32:10,686 [DEBUG][       Thread-603256][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:32:10,686 [DEBUG][       Thread-603256][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:32:10,686 [DEBUG][       Thread-603256][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:32:10,686 [DEBUG][       Thread-603256][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:32:10,686 [DEBUG][       Thread-603256][   transport.py][1871] : Compression: none
2025-07-01 11:32:10,686 [DEBUG][       Thread-603256][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:32:10,748 [DEBUG][       Thread-603256][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:32:10,749 [DEBUG][       Thread-603256][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:32:10,749 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:32:10,749 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:32:10,749 [DEBUG][       Thread-603256][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:32:10,805 [DEBUG][       Thread-603256][   transport.py][1871] : userauth is OK
2025-07-01 11:32:10,805 [DEBUG][       Thread-603256][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:32:10,806 [DEBUG][       Thread-603256][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:32:10,806 [DEBUG][       Thread-603256][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:32:10,806 [DEBUG][       Thread-603256][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:32:10,820 [ INFO][       Thread-603256][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:32:10,820 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:32:10,820 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:32:11,858 [DEBUG][       Thread-603256][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:32:11,858 [DEBUG][       Thread-603256][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:32:11,907 [DEBUG][       Thread-603256][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:32:11,907 [DEBUG][       Thread-603256][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:32:11,915 [DEBUG][       Thread-603256][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:32:11,923 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:32:11,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-07-01 11:32:11,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-07-01 11:32:11,939 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:32:11,939 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:32:11,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:32:11,947 [DEBUG][       Thread-603256][   transport.py][1871] : EOF in transport thread
2025-07-01 11:32:12,460 [DEBUG][Thread-603258 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:32:21,480 [DEBUG][Thread-603259 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:32:21,949 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:32:21,950 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:32:21,950 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:32:21,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-07-01 11:32:22,401 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 32, 9), 9.68, 51.22, 0.0, 35.92, 10.64, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:32:22,401 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:32:09
2025-07-01 11:32:22,486 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:32:22,491 [DEBUG][       Thread-603260][   transport.py][1871] : starting thread (client mode): 0x81715a0
2025-07-01 11:32:22,491 [DEBUG][       Thread-603260][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:32:22,511 [DEBUG][       Thread-603260][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:32:22,511 [ INFO][       Thread-603260][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:32:22,514 [DEBUG][       Thread-603260][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:32:22,514 [DEBUG][       Thread-603260][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:32:22,514 [DEBUG][       Thread-603260][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:32:22,514 [DEBUG][       Thread-603260][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:32:22,514 [DEBUG][       Thread-603260][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:32:22,514 [DEBUG][       Thread-603260][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:32:22,514 [DEBUG][       Thread-603260][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:32:22,514 [DEBUG][       Thread-603260][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:32:22,514 [DEBUG][       Thread-603260][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:32:22,514 [DEBUG][       Thread-603260][   transport.py][1871] : client lang: <none>
2025-07-01 11:32:22,514 [DEBUG][       Thread-603260][   transport.py][1871] : server lang: <none>
2025-07-01 11:32:22,514 [DEBUG][       Thread-603260][   transport.py][1871] : kex follows: False
2025-07-01 11:32:22,514 [DEBUG][       Thread-603260][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:32:22,514 [DEBUG][       Thread-603260][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:32:22,514 [DEBUG][       Thread-603260][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:32:22,514 [DEBUG][       Thread-603260][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:32:22,514 [DEBUG][       Thread-603260][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:32:22,514 [DEBUG][       Thread-603260][   transport.py][1871] : Compression: none
2025-07-01 11:32:22,514 [DEBUG][       Thread-603260][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:32:22,531 [DEBUG][       Thread-603260][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:32:22,531 [DEBUG][       Thread-603260][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:32:22,532 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:32:22,532 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:32:22,532 [DEBUG][       Thread-603260][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:32:22,533 [DEBUG][       Thread-603260][   transport.py][1871] : userauth is OK
2025-07-01 11:32:22,546 [ INFO][       Thread-603260][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:32:22,547 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:32:23,376 [DEBUG][       Thread-603260][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:32:23,377 [DEBUG][       Thread-603260][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:32:23,421 [DEBUG][       Thread-603260][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:32:23,421 [DEBUG][       Thread-603260][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:32:23,425 [DEBUG][       Thread-603260][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:32:23,438 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:32:23,439 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:32:23,440 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:32:23,443 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:32:23,448 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:32:23,449 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:32:23,450 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:32:23,450 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:32:23,451 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.397167 -999.00  +10.50  37.16     56   +2.10 1 2 2 1 1   888    0 7.51 -32.69 ----- 37.2 37.2 38.8 43.0 13.5 -23.6 12.7 -23.3 12.3 -22.0 13.0 -22.8
2025-07-01 11:32:23,451 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:32:23,451 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:32:23,451 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.397167
2025-07-01 11:32:23,451 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:32:23,452 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:32:23,452 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:32:23,452 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:32:23,452 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:32:23,452 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:32:09', tmtdew=9.68, humidity=51.22, cloud=0.0, wind=35.92, temperature=10.64, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:31:55.229', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:32:23,453 [DEBUG][       Thread-603260][   transport.py][1871] : EOF in transport thread
2025-07-01 11:32:23,538 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:32:23,547 [DEBUG][       Thread-603263][   transport.py][1871] : starting thread (client mode): 0x81067a0
2025-07-01 11:32:23,547 [DEBUG][       Thread-603263][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:32:23,562 [DEBUG][       Thread-603263][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:32:23,562 [ INFO][       Thread-603263][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:32:23,576 [DEBUG][       Thread-603263][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:32:23,576 [DEBUG][       Thread-603263][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:32:23,576 [DEBUG][       Thread-603263][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:32:23,576 [DEBUG][       Thread-603263][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:32:23,577 [DEBUG][       Thread-603263][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:32:23,577 [DEBUG][       Thread-603263][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:32:23,577 [DEBUG][       Thread-603263][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:32:23,577 [DEBUG][       Thread-603263][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:32:23,577 [DEBUG][       Thread-603263][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:32:23,577 [DEBUG][       Thread-603263][   transport.py][1871] : client lang: <none>
2025-07-01 11:32:23,577 [DEBUG][       Thread-603263][   transport.py][1871] : server lang: <none>
2025-07-01 11:32:23,577 [DEBUG][       Thread-603263][   transport.py][1871] : kex follows: False
2025-07-01 11:32:23,577 [DEBUG][       Thread-603263][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:32:23,577 [DEBUG][       Thread-603263][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:32:23,577 [DEBUG][       Thread-603263][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:32:23,577 [DEBUG][       Thread-603263][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:32:23,577 [DEBUG][       Thread-603263][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:32:23,577 [DEBUG][       Thread-603263][   transport.py][1871] : Compression: none
2025-07-01 11:32:23,577 [DEBUG][       Thread-603263][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:32:23,636 [DEBUG][       Thread-603263][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:32:23,637 [DEBUG][       Thread-603263][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:32:23,637 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:32:23,638 [DEBUG][       Thread-603263][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:32:23,639 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:32:23,694 [DEBUG][       Thread-603263][   transport.py][1871] : userauth is OK
2025-07-01 11:32:23,694 [DEBUG][       Thread-603263][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:32:23,694 [DEBUG][       Thread-603263][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:32:23,695 [DEBUG][       Thread-603263][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:32:23,695 [DEBUG][       Thread-603263][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:32:23,714 [ INFO][       Thread-603263][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:32:23,714 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:32:23,715 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:32:24,713 [DEBUG][       Thread-603263][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:32:24,713 [DEBUG][       Thread-603263][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:32:24,764 [DEBUG][       Thread-603263][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:32:24,764 [DEBUG][       Thread-603263][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:32:24,773 [DEBUG][       Thread-603263][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:32:24,782 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:32:24,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')
2025-07-01 11:32:24,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-07-01 11:32:24,801 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:32:24,801 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:32:24,802 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:32:24,810 [DEBUG][       Thread-603263][   transport.py][1871] : EOF in transport thread
2025-07-01 11:32:26,405 [DEBUG][Thread-603265 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:32:30,502 [DEBUG][Thread-603266 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:32:34,804 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:32:34,805 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:32:34,805 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:32:34,808 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 11:32:35,290 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 32, 9), 9.68, 51.22, 0.0, 35.92, 10.64, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:32:35,290 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:32:09
2025-07-01 11:32:35,375 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:32:35,382 [DEBUG][       Thread-603267][   transport.py][1871] : starting thread (client mode): 0x81709a0
2025-07-01 11:32:35,382 [DEBUG][       Thread-603267][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:32:35,400 [DEBUG][       Thread-603267][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:32:35,401 [ INFO][       Thread-603267][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:32:35,402 [DEBUG][       Thread-603267][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:32:35,402 [DEBUG][       Thread-603267][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:32:35,402 [DEBUG][       Thread-603267][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:32:35,402 [DEBUG][       Thread-603267][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:32:35,402 [DEBUG][       Thread-603267][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:32:35,402 [DEBUG][       Thread-603267][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:32:35,402 [DEBUG][       Thread-603267][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:32:35,402 [DEBUG][       Thread-603267][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:32:35,402 [DEBUG][       Thread-603267][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:32:35,402 [DEBUG][       Thread-603267][   transport.py][1871] : client lang: <none>
2025-07-01 11:32:35,402 [DEBUG][       Thread-603267][   transport.py][1871] : server lang: <none>
2025-07-01 11:32:35,402 [DEBUG][       Thread-603267][   transport.py][1871] : kex follows: False
2025-07-01 11:32:35,402 [DEBUG][       Thread-603267][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:32:35,403 [DEBUG][       Thread-603267][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:32:35,403 [DEBUG][       Thread-603267][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:32:35,403 [DEBUG][       Thread-603267][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:32:35,403 [DEBUG][       Thread-603267][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:32:35,403 [DEBUG][       Thread-603267][   transport.py][1871] : Compression: none
2025-07-01 11:32:35,403 [DEBUG][       Thread-603267][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:32:35,417 [DEBUG][       Thread-603267][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:32:35,417 [DEBUG][       Thread-603267][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:32:35,418 [DEBUG][       Thread-603267][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:32:35,418 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:32:35,418 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:32:35,419 [DEBUG][       Thread-603267][   transport.py][1871] : userauth is OK
2025-07-01 11:32:35,433 [ INFO][       Thread-603267][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:32:35,433 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:32:36,024 [DEBUG][       Thread-603267][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:32:36,024 [DEBUG][       Thread-603267][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:32:36,065 [DEBUG][       Thread-603267][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:32:36,065 [DEBUG][       Thread-603267][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:32:36,067 [DEBUG][       Thread-603267][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:32:36,080 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:32:36,081 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:32:36,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:32:36,084 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:32:36,090 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:32:36,092 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:32:36,092 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:32:36,092 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:32:36,093 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.397514 -999.00  +10.40  38.12     56   +2.10 1 1 2 1 1   888    0 7.49 -31.85 ----- 38.1 38.1 39.6 47.7 13.3 -24.0 12.7 -23.1 12.2 -23.0 12.9 -22.6
2025-07-01 11:32:36,093 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:32:36,093 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:32:36,093 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.397514
2025-07-01 11:32:36,093 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:32:36,094 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:32:36,094 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:32:36,094 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:32:36,094 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 11:32:36,094 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:32:09', tmtdew=9.68, humidity=51.22, cloud=0.0, wind=35.92, temperature=10.64, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:32:25.210', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:32:36,095 [DEBUG][       Thread-603267][   transport.py][1871] : EOF in transport thread
2025-07-01 11:32:36,175 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:32:36,184 [DEBUG][       Thread-603270][   transport.py][1871] : starting thread (client mode): 0x8393f40
2025-07-01 11:32:36,184 [DEBUG][       Thread-603270][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:32:36,199 [DEBUG][       Thread-603270][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:32:36,199 [ INFO][       Thread-603270][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:32:36,206 [DEBUG][       Thread-603270][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:32:36,206 [DEBUG][       Thread-603270][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:32:36,206 [DEBUG][       Thread-603270][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:32:36,206 [DEBUG][       Thread-603270][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:32:36,206 [DEBUG][       Thread-603270][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:32:36,206 [DEBUG][       Thread-603270][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:32:36,207 [DEBUG][       Thread-603270][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:32:36,207 [DEBUG][       Thread-603270][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:32:36,207 [DEBUG][       Thread-603270][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:32:36,207 [DEBUG][       Thread-603270][   transport.py][1871] : client lang: <none>
2025-07-01 11:32:36,207 [DEBUG][       Thread-603270][   transport.py][1871] : server lang: <none>
2025-07-01 11:32:36,207 [DEBUG][       Thread-603270][   transport.py][1871] : kex follows: False
2025-07-01 11:32:36,207 [DEBUG][       Thread-603270][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:32:36,207 [DEBUG][       Thread-603270][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:32:36,207 [DEBUG][       Thread-603270][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:32:36,207 [DEBUG][       Thread-603270][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:32:36,207 [DEBUG][       Thread-603270][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:32:36,207 [DEBUG][       Thread-603270][   transport.py][1871] : Compression: none
2025-07-01 11:32:36,207 [DEBUG][       Thread-603270][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:32:36,265 [DEBUG][       Thread-603270][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:32:36,266 [DEBUG][       Thread-603270][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:32:36,266 [DEBUG][       Thread-603270][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:32:36,266 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:32:36,267 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:32:36,322 [DEBUG][       Thread-603270][   transport.py][1871] : userauth is OK
2025-07-01 11:32:36,322 [DEBUG][       Thread-603270][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:32:36,322 [DEBUG][       Thread-603270][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:32:36,322 [DEBUG][       Thread-603270][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:32:36,322 [DEBUG][       Thread-603270][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:32:36,341 [ INFO][       Thread-603270][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:32:36,342 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:32:36,342 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:32:37,306 [DEBUG][       Thread-603270][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:32:37,307 [DEBUG][       Thread-603270][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:32:37,359 [DEBUG][       Thread-603270][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:32:37,360 [DEBUG][       Thread-603270][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:32:37,369 [DEBUG][       Thread-603270][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:32:37,377 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:32: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-07-01 11:32:37,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-07-01 11:32:37,395 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:32:37,395 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:32:37,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:32:37,403 [DEBUG][       Thread-603270][   transport.py][1871] : EOF in transport thread
2025-07-01 11:32:39,547 [DEBUG][Thread-603272 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:32:47,406 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:32:47,406 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:32:47,406 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:32:47,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-07-01 11:32:47,886 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 32, 41), 9.66, 51.28, 0.0, 34.46, 10.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:32:47,887 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:32:41
2025-07-01 11:32:47,971 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:32:47,975 [DEBUG][       Thread-603273][   transport.py][1871] : starting thread (client mode): 0x8170760
2025-07-01 11:32:47,975 [DEBUG][       Thread-603273][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:32:47,986 [DEBUG][       Thread-603273][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:32:47,986 [ INFO][       Thread-603273][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:32:47,988 [DEBUG][       Thread-603273][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:32:47,988 [DEBUG][       Thread-603273][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:32:47,988 [DEBUG][       Thread-603273][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:32:47,988 [DEBUG][       Thread-603273][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:32:47,988 [DEBUG][       Thread-603273][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:32:47,988 [DEBUG][       Thread-603273][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:32:47,988 [DEBUG][       Thread-603273][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:32:47,988 [DEBUG][       Thread-603273][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:32:47,988 [DEBUG][       Thread-603273][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:32:47,988 [DEBUG][       Thread-603273][   transport.py][1871] : client lang: <none>
2025-07-01 11:32:47,988 [DEBUG][       Thread-603273][   transport.py][1871] : server lang: <none>
2025-07-01 11:32:47,988 [DEBUG][       Thread-603273][   transport.py][1871] : kex follows: False
2025-07-01 11:32:47,988 [DEBUG][       Thread-603273][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:32:47,988 [DEBUG][       Thread-603273][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:32:47,988 [DEBUG][       Thread-603273][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:32:47,988 [DEBUG][       Thread-603273][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:32:47,988 [DEBUG][       Thread-603273][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:32:47,988 [DEBUG][       Thread-603273][   transport.py][1871] : Compression: none
2025-07-01 11:32:47,988 [DEBUG][       Thread-603273][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:32:47,998 [DEBUG][       Thread-603273][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:32:47,998 [DEBUG][       Thread-603273][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:32:47,999 [DEBUG][       Thread-603273][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:32:47,999 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:32:47,999 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:32:48,000 [DEBUG][       Thread-603273][   transport.py][1871] : userauth is OK
2025-07-01 11:32:48,012 [ INFO][       Thread-603273][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:32:48,013 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:32:48,581 [DEBUG][Thread-603275 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:32:48,833 [DEBUG][       Thread-603273][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:32:48,833 [DEBUG][       Thread-603273][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:32:48,876 [DEBUG][       Thread-603273][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:32:48,877 [DEBUG][       Thread-603273][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:32:48,879 [DEBUG][       Thread-603273][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:32:48,893 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:32:48,893 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:32:48,894 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:32:48,894 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:32:48,897 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:32:48,897 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:32:48,897 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:32:48,898 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:32:48,898 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.397514 -999.00  +10.40  38.12     56   +2.10 1 1 2 1 1   888    0 7.49 -31.85 ----- 38.1 38.1 39.6 47.7 13.3 -24.0 12.7 -23.1 12.2 -23.0 12.9 -22.6
2025-07-01 11:32:48,898 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:32:48,898 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:32:48,898 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.397514
2025-07-01 11:32:48,898 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:32:48,898 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:32:48,898 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:32:48,898 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:32:48,898 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 11:32:48,898 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:32:41', tmtdew=9.66, humidity=51.28, cloud=0.0, wind=34.46, temperature=10.61, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:32:25.210', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:32:48,898 [DEBUG][       Thread-603273][   transport.py][1871] : EOF in transport thread
2025-07-01 11:32:48,971 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:32:48,985 [DEBUG][       Thread-603277][   transport.py][1871] : starting thread (client mode): 0x81075b0
2025-07-01 11:32:48,985 [DEBUG][       Thread-603277][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:32:49,002 [DEBUG][       Thread-603277][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:32:49,003 [ INFO][       Thread-603277][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:32:49,016 [DEBUG][       Thread-603277][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:32:49,016 [DEBUG][       Thread-603277][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:32:49,016 [DEBUG][       Thread-603277][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:32:49,016 [DEBUG][       Thread-603277][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:32:49,016 [DEBUG][       Thread-603277][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:32:49,016 [DEBUG][       Thread-603277][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:32:49,016 [DEBUG][       Thread-603277][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:32:49,016 [DEBUG][       Thread-603277][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:32:49,016 [DEBUG][       Thread-603277][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:32:49,016 [DEBUG][       Thread-603277][   transport.py][1871] : client lang: <none>
2025-07-01 11:32:49,016 [DEBUG][       Thread-603277][   transport.py][1871] : server lang: <none>
2025-07-01 11:32:49,016 [DEBUG][       Thread-603277][   transport.py][1871] : kex follows: False
2025-07-01 11:32:49,016 [DEBUG][       Thread-603277][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:32:49,016 [DEBUG][       Thread-603277][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:32:49,016 [DEBUG][       Thread-603277][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:32:49,016 [DEBUG][       Thread-603277][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:32:49,016 [DEBUG][       Thread-603277][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:32:49,016 [DEBUG][       Thread-603277][   transport.py][1871] : Compression: none
2025-07-01 11:32:49,016 [DEBUG][       Thread-603277][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:32:49,077 [DEBUG][       Thread-603277][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:32:49,078 [DEBUG][       Thread-603277][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:32:49,078 [DEBUG][       Thread-603277][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:32:49,078 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:32:49,078 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:32:49,140 [DEBUG][       Thread-603277][   transport.py][1871] : userauth is OK
2025-07-01 11:32:49,140 [DEBUG][       Thread-603277][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:32:49,140 [DEBUG][       Thread-603277][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:32:49,140 [DEBUG][       Thread-603277][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:32:49,140 [DEBUG][       Thread-603277][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:32:49,155 [ INFO][       Thread-603277][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:32:49,155 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:32:49,155 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:32:50,167 [DEBUG][       Thread-603277][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:32:50,167 [DEBUG][       Thread-603277][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:32:50,215 [DEBUG][       Thread-603277][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:32:50,215 [DEBUG][       Thread-603277][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:32:50,224 [DEBUG][       Thread-603277][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:32:50,232 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:32:50,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-07-01 11:32:50,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-07-01 11:32:50,247 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:32:50,248 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:32:50,248 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:32:50,255 [DEBUG][       Thread-603277][   transport.py][1871] : EOF in transport thread
2025-07-01 11:32:57,601 [DEBUG][Thread-603279 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:33:00,258 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:33:00,258 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:33:00,258 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:33:00,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-07-01 11:33:00,708 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 32, 41), 9.66, 51.28, 0.0, 34.46, 10.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:33:00,708 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:32:41
2025-07-01 11:33:00,792 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:33:00,798 [DEBUG][       Thread-603280][   transport.py][1871] : starting thread (client mode): 0x81d8040
2025-07-01 11:33:00,798 [DEBUG][       Thread-603280][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:33:00,818 [DEBUG][       Thread-603280][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:33:00,819 [ INFO][       Thread-603280][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:33:00,820 [DEBUG][       Thread-603280][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:33:00,821 [DEBUG][       Thread-603280][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:33:00,821 [DEBUG][       Thread-603280][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:33:00,821 [DEBUG][       Thread-603280][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:33:00,821 [DEBUG][       Thread-603280][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:33:00,821 [DEBUG][       Thread-603280][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:33:00,821 [DEBUG][       Thread-603280][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:33:00,821 [DEBUG][       Thread-603280][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:33:00,821 [DEBUG][       Thread-603280][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:33:00,821 [DEBUG][       Thread-603280][   transport.py][1871] : client lang: <none>
2025-07-01 11:33:00,821 [DEBUG][       Thread-603280][   transport.py][1871] : server lang: <none>
2025-07-01 11:33:00,821 [DEBUG][       Thread-603280][   transport.py][1871] : kex follows: False
2025-07-01 11:33:00,821 [DEBUG][       Thread-603280][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:33:00,821 [DEBUG][       Thread-603280][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:33:00,821 [DEBUG][       Thread-603280][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:33:00,821 [DEBUG][       Thread-603280][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:33:00,821 [DEBUG][       Thread-603280][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:33:00,821 [DEBUG][       Thread-603280][   transport.py][1871] : Compression: none
2025-07-01 11:33:00,821 [DEBUG][       Thread-603280][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:33:00,833 [DEBUG][       Thread-603280][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:33:00,833 [DEBUG][       Thread-603280][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:33:00,833 [DEBUG][       Thread-603280][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:33:00,833 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:33:00,833 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:33:00,834 [DEBUG][       Thread-603280][   transport.py][1871] : userauth is OK
2025-07-01 11:33:00,857 [ INFO][       Thread-603280][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:33:00,858 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:33:01,671 [DEBUG][       Thread-603280][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:33:01,671 [DEBUG][       Thread-603280][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:33:01,717 [DEBUG][       Thread-603280][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:33:01,717 [DEBUG][       Thread-603280][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:33:01,720 [DEBUG][       Thread-603280][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:33:01,733 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:33:01,733 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:33:01,735 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:33:01,737 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:33:01,741 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:33:01,743 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:33:01,743 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:33:01,744 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:33:01,744 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.397514 -999.00  +10.40  38.12     56   +2.10 1 1 2 1 1   888    0 7.49 -31.85 ----- 38.1 38.1 39.6 47.7 13.3 -24.0 12.7 -23.1 12.2 -23.0 12.9 -22.6
2025-07-01 11:33:01,744 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:33:01,744 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:33:01,744 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.397514
2025-07-01 11:33:01,745 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:33:01,745 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:33:01,746 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:33:01,746 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:33:01,746 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 11:33:01,746 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:32:41', tmtdew=9.66, humidity=51.28, cloud=0.0, wind=34.46, temperature=10.61, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:32:25.210', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:33:01,747 [DEBUG][       Thread-603280][   transport.py][1871] : EOF in transport thread
2025-07-01 11:33:01,829 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:33:01,839 [DEBUG][       Thread-603283][   transport.py][1871] : starting thread (client mode): 0x82b2980
2025-07-01 11:33:01,839 [DEBUG][       Thread-603283][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:33:01,859 [DEBUG][       Thread-603283][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:33:01,859 [ INFO][       Thread-603283][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:33:01,866 [DEBUG][       Thread-603283][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:33:01,866 [DEBUG][       Thread-603283][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:33:01,866 [DEBUG][       Thread-603283][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:33:01,866 [DEBUG][       Thread-603283][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:33:01,866 [DEBUG][       Thread-603283][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:33:01,866 [DEBUG][       Thread-603283][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:33:01,866 [DEBUG][       Thread-603283][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:33:01,866 [DEBUG][       Thread-603283][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:33:01,866 [DEBUG][       Thread-603283][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:33:01,866 [DEBUG][       Thread-603283][   transport.py][1871] : client lang: <none>
2025-07-01 11:33:01,866 [DEBUG][       Thread-603283][   transport.py][1871] : server lang: <none>
2025-07-01 11:33:01,866 [DEBUG][       Thread-603283][   transport.py][1871] : kex follows: False
2025-07-01 11:33:01,866 [DEBUG][       Thread-603283][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:33:01,866 [DEBUG][       Thread-603283][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:33:01,866 [DEBUG][       Thread-603283][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:33:01,866 [DEBUG][       Thread-603283][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:33:01,866 [DEBUG][       Thread-603283][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:33:01,866 [DEBUG][       Thread-603283][   transport.py][1871] : Compression: none
2025-07-01 11:33:01,866 [DEBUG][       Thread-603283][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:33:01,926 [DEBUG][       Thread-603283][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:33:01,926 [DEBUG][       Thread-603283][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:33:01,926 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:33:01,927 [DEBUG][       Thread-603283][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:33:01,927 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:33:01,982 [DEBUG][       Thread-603283][   transport.py][1871] : userauth is OK
2025-07-01 11:33:01,982 [DEBUG][       Thread-603283][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:33:01,982 [DEBUG][       Thread-603283][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:33:01,982 [DEBUG][       Thread-603283][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:33:01,982 [DEBUG][       Thread-603283][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:33:02,001 [ INFO][       Thread-603283][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:33:02,002 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:33:02,002 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:33:02,999 [DEBUG][       Thread-603283][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:33:02,999 [DEBUG][       Thread-603283][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:33:03,048 [DEBUG][       Thread-603283][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:33:03,049 [DEBUG][       Thread-603283][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:33:03,058 [DEBUG][       Thread-603283][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:33:03,067 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:33:03,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-07-01 11:33:03,078 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 11:33:03,087 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:33:03,088 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:33:03,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:33:03,096 [DEBUG][       Thread-603283][   transport.py][1871] : EOF in transport thread
2025-07-01 11:33:06,635 [DEBUG][Thread-603285 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:33:08,452 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:33:08,453 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:33:13,099 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:33:13,099 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:33:13,099 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:33:13,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-07-01 11:33:13,591 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 32, 41), 9.66, 51.28, 0.0, 34.46, 10.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:33:13,591 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:32:41
2025-07-01 11:33:13,683 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:33:13,687 [DEBUG][       Thread-603286][   transport.py][1871] : starting thread (client mode): 0x82b3430
2025-07-01 11:33:13,687 [DEBUG][       Thread-603286][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:33:13,708 [DEBUG][       Thread-603286][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:33:13,708 [ INFO][       Thread-603286][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:33:13,710 [DEBUG][       Thread-603286][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:33:13,710 [DEBUG][       Thread-603286][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:33:13,710 [DEBUG][       Thread-603286][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:33:13,710 [DEBUG][       Thread-603286][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:33:13,710 [DEBUG][       Thread-603286][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:33:13,710 [DEBUG][       Thread-603286][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:33:13,711 [DEBUG][       Thread-603286][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:33:13,711 [DEBUG][       Thread-603286][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:33:13,711 [DEBUG][       Thread-603286][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:33:13,711 [DEBUG][       Thread-603286][   transport.py][1871] : client lang: <none>
2025-07-01 11:33:13,711 [DEBUG][       Thread-603286][   transport.py][1871] : server lang: <none>
2025-07-01 11:33:13,711 [DEBUG][       Thread-603286][   transport.py][1871] : kex follows: False
2025-07-01 11:33:13,711 [DEBUG][       Thread-603286][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:33:13,711 [DEBUG][       Thread-603286][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:33:13,711 [DEBUG][       Thread-603286][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:33:13,711 [DEBUG][       Thread-603286][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:33:13,711 [DEBUG][       Thread-603286][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:33:13,711 [DEBUG][       Thread-603286][   transport.py][1871] : Compression: none
2025-07-01 11:33:13,711 [DEBUG][       Thread-603286][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:33:13,726 [DEBUG][       Thread-603286][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:33:13,726 [DEBUG][       Thread-603286][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:33:13,726 [DEBUG][       Thread-603286][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:33:13,726 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:33:13,726 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:33:13,727 [DEBUG][       Thread-603286][   transport.py][1871] : userauth is OK
2025-07-01 11:33:13,750 [ INFO][       Thread-603286][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:33:13,750 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:33:14,390 [DEBUG][       Thread-603286][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:33:14,397 [DEBUG][       Thread-603286][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:33:14,432 [DEBUG][       Thread-603286][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:33:14,432 [DEBUG][       Thread-603286][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:33:14,435 [DEBUG][       Thread-603286][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:33:14,447 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:33:14,447 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:33:14,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:33:14,450 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:33:14,453 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:33:14,454 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:33:14,454 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:33:14,454 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:33:14,454 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.397861 -999.00  +10.40  39.84     56   +2.10 1 2 2 1 1   888    0 7.55 -31.09 ----- 39.8 39.8 44.4 47.7 13.3 -23.3 12.6 -23.1 12.2 -22.4 12.9 -22.1
2025-07-01 11:33:14,454 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:33:14,454 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:33:14,454 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.397861
2025-07-01 11:33:14,454 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:33:14,454 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:33:14,454 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:33:14,454 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:33:14,454 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:33:14,454 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:32:41', tmtdew=9.66, humidity=51.28, cloud=0.0, wind=34.46, temperature=10.61, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:32:55.190', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:33:14,455 [DEBUG][       Thread-603286][   transport.py][1871] : EOF in transport thread
2025-07-01 11:33:14,529 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:33:14,540 [DEBUG][       Thread-603289][   transport.py][1871] : starting thread (client mode): 0x8106d70
2025-07-01 11:33:14,540 [DEBUG][       Thread-603289][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:33:14,557 [DEBUG][       Thread-603289][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:33:14,557 [ INFO][       Thread-603289][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:33:14,564 [DEBUG][       Thread-603289][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:33:14,564 [DEBUG][       Thread-603289][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:33:14,564 [DEBUG][       Thread-603289][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:33:14,564 [DEBUG][       Thread-603289][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:33:14,564 [DEBUG][       Thread-603289][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:33:14,564 [DEBUG][       Thread-603289][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:33:14,564 [DEBUG][       Thread-603289][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:33:14,564 [DEBUG][       Thread-603289][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:33:14,564 [DEBUG][       Thread-603289][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:33:14,564 [DEBUG][       Thread-603289][   transport.py][1871] : client lang: <none>
2025-07-01 11:33:14,564 [DEBUG][       Thread-603289][   transport.py][1871] : server lang: <none>
2025-07-01 11:33:14,564 [DEBUG][       Thread-603289][   transport.py][1871] : kex follows: False
2025-07-01 11:33:14,564 [DEBUG][       Thread-603289][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:33:14,564 [DEBUG][       Thread-603289][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:33:14,564 [DEBUG][       Thread-603289][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:33:14,564 [DEBUG][       Thread-603289][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:33:14,565 [DEBUG][       Thread-603289][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:33:14,565 [DEBUG][       Thread-603289][   transport.py][1871] : Compression: none
2025-07-01 11:33:14,565 [DEBUG][       Thread-603289][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:33:14,625 [DEBUG][       Thread-603289][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:33:14,625 [DEBUG][       Thread-603289][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:33:14,625 [DEBUG][       Thread-603289][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:33:14,625 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:33:14,625 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:33:14,683 [DEBUG][       Thread-603289][   transport.py][1871] : userauth is OK
2025-07-01 11:33:14,683 [DEBUG][       Thread-603289][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:33:14,683 [DEBUG][       Thread-603289][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:33:14,683 [DEBUG][       Thread-603289][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:33:14,683 [DEBUG][       Thread-603289][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:33:14,698 [ INFO][       Thread-603289][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:33:14,698 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:33:14,698 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:33:15,656 [DEBUG][Thread-603291 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:33:15,801 [DEBUG][       Thread-603289][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:33:15,801 [DEBUG][       Thread-603289][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:33:15,855 [DEBUG][       Thread-603289][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:33:15,855 [DEBUG][       Thread-603289][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:33:15,867 [DEBUG][       Thread-603289][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:33:15,879 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:33:15,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-07-01 11:33: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-07-01 11:33:15,904 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:33:15,904 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:33:15,904 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:33:15,912 [DEBUG][       Thread-603289][   transport.py][1871] : EOF in transport thread
2025-07-01 11:33:24,704 [DEBUG][Thread-603292 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:33:25,909 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:33:25,909 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:33:25,909 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:33:25,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-07-01 11:33:26,403 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 33, 13), 9.61, 51.34, 0.0, 37.07, 10.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:33:26,403 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:33:13
2025-07-01 11:33:26,454 [DEBUG][Thread-603293 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:33:26,487 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:33:26,494 [DEBUG][       Thread-603294][   transport.py][1871] : starting thread (client mode): 0x75a8bb0
2025-07-01 11:33:26,494 [DEBUG][       Thread-603294][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:33:26,515 [DEBUG][       Thread-603294][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:33:26,515 [ INFO][       Thread-603294][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:33:26,516 [DEBUG][       Thread-603294][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:33:26,516 [DEBUG][       Thread-603294][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:33:26,516 [DEBUG][       Thread-603294][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:33:26,516 [DEBUG][       Thread-603294][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:33:26,516 [DEBUG][       Thread-603294][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:33:26,516 [DEBUG][       Thread-603294][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:33:26,516 [DEBUG][       Thread-603294][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:33:26,516 [DEBUG][       Thread-603294][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:33:26,516 [DEBUG][       Thread-603294][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:33:26,516 [DEBUG][       Thread-603294][   transport.py][1871] : client lang: <none>
2025-07-01 11:33:26,516 [DEBUG][       Thread-603294][   transport.py][1871] : server lang: <none>
2025-07-01 11:33:26,517 [DEBUG][       Thread-603294][   transport.py][1871] : kex follows: False
2025-07-01 11:33:26,517 [DEBUG][       Thread-603294][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:33:26,517 [DEBUG][       Thread-603294][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:33:26,517 [DEBUG][       Thread-603294][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:33:26,517 [DEBUG][       Thread-603294][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:33:26,517 [DEBUG][       Thread-603294][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:33:26,517 [DEBUG][       Thread-603294][   transport.py][1871] : Compression: none
2025-07-01 11:33:26,517 [DEBUG][       Thread-603294][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:33:26,525 [DEBUG][       Thread-603294][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:33:26,525 [DEBUG][       Thread-603294][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:33:26,526 [DEBUG][       Thread-603294][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:33:26,526 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:33:26,526 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:33:26,527 [DEBUG][       Thread-603294][   transport.py][1871] : userauth is OK
2025-07-01 11:33:26,540 [ INFO][       Thread-603294][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:33:26,540 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:33:27,188 [DEBUG][       Thread-603294][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:33:27,188 [DEBUG][       Thread-603294][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:33:27,232 [DEBUG][       Thread-603294][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:33:27,232 [DEBUG][       Thread-603294][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:33:27,235 [DEBUG][       Thread-603294][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:33:27,248 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:33:27,249 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:33:27,250 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:33:27,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:33:27,253 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:33:27,254 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:33:27,254 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:33:27,254 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:33:27,254 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.397861 -999.00  +10.40  39.84     56   +2.10 1 2 2 1 1   888    0 7.55 -31.09 ----- 39.8 39.8 44.4 47.7 13.3 -23.3 12.6 -23.1 12.2 -22.4 12.9 -22.1
2025-07-01 11:33:27,254 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:33:27,254 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:33:27,254 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.397861
2025-07-01 11:33:27,254 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:33:27,254 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:33:27,254 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:33:27,254 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:33:27,254 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:33:27,254 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:33:13', tmtdew=9.61, humidity=51.34, cloud=0.0, wind=37.07, temperature=10.61, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:32:55.190', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:33:27,255 [DEBUG][       Thread-603294][   transport.py][1871] : EOF in transport thread
2025-07-01 11:33:27,329 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:33:27,341 [DEBUG][       Thread-603297][   transport.py][1871] : starting thread (client mode): 0x8154970
2025-07-01 11:33:27,341 [DEBUG][       Thread-603297][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:33:27,362 [DEBUG][       Thread-603297][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:33:27,362 [ INFO][       Thread-603297][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:33:27,373 [DEBUG][       Thread-603297][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:33:27,373 [DEBUG][       Thread-603297][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:33:27,373 [DEBUG][       Thread-603297][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:33:27,373 [DEBUG][       Thread-603297][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:33:27,373 [DEBUG][       Thread-603297][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:33:27,373 [DEBUG][       Thread-603297][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:33:27,373 [DEBUG][       Thread-603297][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:33:27,373 [DEBUG][       Thread-603297][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:33:27,373 [DEBUG][       Thread-603297][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:33:27,373 [DEBUG][       Thread-603297][   transport.py][1871] : client lang: <none>
2025-07-01 11:33:27,373 [DEBUG][       Thread-603297][   transport.py][1871] : server lang: <none>
2025-07-01 11:33:27,373 [DEBUG][       Thread-603297][   transport.py][1871] : kex follows: False
2025-07-01 11:33:27,373 [DEBUG][       Thread-603297][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:33:27,373 [DEBUG][       Thread-603297][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:33:27,373 [DEBUG][       Thread-603297][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:33:27,373 [DEBUG][       Thread-603297][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:33:27,373 [DEBUG][       Thread-603297][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:33:27,373 [DEBUG][       Thread-603297][   transport.py][1871] : Compression: none
2025-07-01 11:33:27,373 [DEBUG][       Thread-603297][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:33:27,432 [DEBUG][       Thread-603297][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:33:27,432 [DEBUG][       Thread-603297][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:33:27,432 [DEBUG][       Thread-603297][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:33:27,432 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:33:27,433 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:33:27,489 [DEBUG][       Thread-603297][   transport.py][1871] : userauth is OK
2025-07-01 11:33:27,490 [DEBUG][       Thread-603297][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:33:27,490 [DEBUG][       Thread-603297][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:33:27,490 [DEBUG][       Thread-603297][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:33:27,490 [DEBUG][       Thread-603297][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:33:27,504 [ INFO][       Thread-603297][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:33:27,504 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:33:27,504 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:33:28,492 [DEBUG][       Thread-603297][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:33:28,492 [DEBUG][       Thread-603297][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:33:28,539 [DEBUG][       Thread-603297][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:33:28,539 [DEBUG][       Thread-603297][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:33:28,547 [DEBUG][       Thread-603297][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:33:28,555 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:33:28,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-07-01 11:33:28,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-07-01 11:33:28,578 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:33:28,578 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:33:28,578 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:33:28,586 [DEBUG][       Thread-603297][   transport.py][1871] : EOF in transport thread
2025-07-01 11:33:33,724 [DEBUG][Thread-603299 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:33:38,588 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:33:38,589 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:33:38,589 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:33:38,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-07-01 11:33:39,062 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 33, 13), 9.61, 51.34, 0.0, 37.07, 10.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:33:39,062 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:33:13
2025-07-01 11:33:39,147 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:33:39,151 [DEBUG][       Thread-603300][   transport.py][1871] : starting thread (client mode): 0x75a9f90
2025-07-01 11:33:39,152 [DEBUG][       Thread-603300][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:33:39,175 [DEBUG][       Thread-603300][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:33:39,175 [ INFO][       Thread-603300][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:33:39,177 [DEBUG][       Thread-603300][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:33:39,177 [DEBUG][       Thread-603300][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:33:39,177 [DEBUG][       Thread-603300][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:33:39,177 [DEBUG][       Thread-603300][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:33:39,177 [DEBUG][       Thread-603300][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:33:39,177 [DEBUG][       Thread-603300][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:33:39,177 [DEBUG][       Thread-603300][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:33:39,177 [DEBUG][       Thread-603300][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:33:39,177 [DEBUG][       Thread-603300][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:33:39,177 [DEBUG][       Thread-603300][   transport.py][1871] : client lang: <none>
2025-07-01 11:33:39,178 [DEBUG][       Thread-603300][   transport.py][1871] : server lang: <none>
2025-07-01 11:33:39,178 [DEBUG][       Thread-603300][   transport.py][1871] : kex follows: False
2025-07-01 11:33:39,178 [DEBUG][       Thread-603300][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:33:39,178 [DEBUG][       Thread-603300][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:33:39,178 [DEBUG][       Thread-603300][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:33:39,178 [DEBUG][       Thread-603300][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:33:39,178 [DEBUG][       Thread-603300][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:33:39,178 [DEBUG][       Thread-603300][   transport.py][1871] : Compression: none
2025-07-01 11:33:39,178 [DEBUG][       Thread-603300][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:33:39,189 [DEBUG][       Thread-603300][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:33:39,190 [DEBUG][       Thread-603300][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:33:39,190 [DEBUG][       Thread-603300][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:33:39,190 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:33:39,191 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:33:39,192 [DEBUG][       Thread-603300][   transport.py][1871] : userauth is OK
2025-07-01 11:33:39,216 [ INFO][       Thread-603300][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:33:39,217 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:33:39,868 [DEBUG][       Thread-603300][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:33:39,868 [DEBUG][       Thread-603300][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:33:39,909 [DEBUG][       Thread-603300][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:33:39,909 [DEBUG][       Thread-603300][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:33:39,913 [DEBUG][       Thread-603300][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:33:39,924 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:33:39,925 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:33:39,926 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:33:39,928 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:33:39,933 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:33:39,935 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:33:39,935 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:33:39,936 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:33:39,936 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.397861 -999.00  +10.40  39.84     56   +2.10 1 2 2 1 1   888    0 7.55 -31.09 ----- 39.8 39.8 44.4 47.7 13.3 -23.3 12.6 -23.1 12.2 -22.4 12.9 -22.1
2025-07-01 11:33:39,936 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:33:39,936 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:33:39,936 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.397861
2025-07-01 11:33:39,937 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:33:39,937 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:33:39,937 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:33:39,938 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:33:39,938 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:33:39,938 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:33:13', tmtdew=9.61, humidity=51.34, cloud=0.0, wind=37.07, temperature=10.61, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:32:55.190', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:33:39,939 [DEBUG][       Thread-603300][   transport.py][1871] : EOF in transport thread
2025-07-01 11:33:40,021 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:33:40,031 [DEBUG][       Thread-603303][   transport.py][1871] : starting thread (client mode): 0x827ec50
2025-07-01 11:33:40,031 [DEBUG][       Thread-603303][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:33:40,046 [DEBUG][       Thread-603303][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:33:40,046 [ INFO][       Thread-603303][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:33:40,054 [DEBUG][       Thread-603303][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:33:40,054 [DEBUG][       Thread-603303][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:33:40,054 [DEBUG][       Thread-603303][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:33:40,054 [DEBUG][       Thread-603303][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:33:40,054 [DEBUG][       Thread-603303][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:33:40,054 [DEBUG][       Thread-603303][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:33:40,054 [DEBUG][       Thread-603303][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:33:40,054 [DEBUG][       Thread-603303][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:33:40,054 [DEBUG][       Thread-603303][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:33:40,054 [DEBUG][       Thread-603303][   transport.py][1871] : client lang: <none>
2025-07-01 11:33:40,054 [DEBUG][       Thread-603303][   transport.py][1871] : server lang: <none>
2025-07-01 11:33:40,054 [DEBUG][       Thread-603303][   transport.py][1871] : kex follows: False
2025-07-01 11:33:40,054 [DEBUG][       Thread-603303][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:33:40,054 [DEBUG][       Thread-603303][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:33:40,054 [DEBUG][       Thread-603303][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:33:40,054 [DEBUG][       Thread-603303][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:33:40,054 [DEBUG][       Thread-603303][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:33:40,054 [DEBUG][       Thread-603303][   transport.py][1871] : Compression: none
2025-07-01 11:33:40,054 [DEBUG][       Thread-603303][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:33:40,110 [DEBUG][       Thread-603303][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:33:40,111 [DEBUG][       Thread-603303][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:33:40,111 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:33:40,112 [DEBUG][       Thread-603303][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:33:40,113 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:33:40,166 [DEBUG][       Thread-603303][   transport.py][1871] : userauth is OK
2025-07-01 11:33:40,167 [DEBUG][       Thread-603303][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:33:40,167 [DEBUG][       Thread-603303][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:33:40,167 [DEBUG][       Thread-603303][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:33:40,167 [DEBUG][       Thread-603303][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:33:40,185 [ INFO][       Thread-603303][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:33:40,186 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:33:40,186 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:33:41,150 [DEBUG][       Thread-603303][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:33:41,150 [DEBUG][       Thread-603303][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:33:41,199 [DEBUG][       Thread-603303][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:33:41,200 [DEBUG][       Thread-603303][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:33:41,208 [DEBUG][       Thread-603303][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:33:41,218 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:33:41,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-07-01 11:33:41,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-07-01 11:33:41,237 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:33:41,237 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:33:41,238 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:33:41,247 [DEBUG][       Thread-603303][   transport.py][1871] : EOF in transport thread
2025-07-01 11:33:42,759 [DEBUG][Thread-603305 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:33:51,248 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:33:51,248 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:33:51,248 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:33:51,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-07-01 11:33:51,721 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 33, 45), 9.6, 51.37, 0.0, 38.22, 10.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:33:51,721 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:33:45
2025-07-01 11:33:51,778 [DEBUG][Thread-603306 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:33:51,805 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:33:51,811 [DEBUG][       Thread-603307][   transport.py][1871] : starting thread (client mode): 0x75abc10
2025-07-01 11:33:51,811 [DEBUG][       Thread-603307][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:33:51,833 [DEBUG][       Thread-603307][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:33:51,833 [ INFO][       Thread-603307][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:33:51,837 [DEBUG][       Thread-603307][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:33:51,837 [DEBUG][       Thread-603307][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:33:51,837 [DEBUG][       Thread-603307][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:33:51,837 [DEBUG][       Thread-603307][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:33:51,837 [DEBUG][       Thread-603307][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:33:51,837 [DEBUG][       Thread-603307][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:33:51,837 [DEBUG][       Thread-603307][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:33:51,837 [DEBUG][       Thread-603307][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:33:51,837 [DEBUG][       Thread-603307][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:33:51,837 [DEBUG][       Thread-603307][   transport.py][1871] : client lang: <none>
2025-07-01 11:33:51,837 [DEBUG][       Thread-603307][   transport.py][1871] : server lang: <none>
2025-07-01 11:33:51,837 [DEBUG][       Thread-603307][   transport.py][1871] : kex follows: False
2025-07-01 11:33:51,837 [DEBUG][       Thread-603307][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:33:51,837 [DEBUG][       Thread-603307][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:33:51,837 [DEBUG][       Thread-603307][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:33:51,837 [DEBUG][       Thread-603307][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:33:51,838 [DEBUG][       Thread-603307][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:33:51,838 [DEBUG][       Thread-603307][   transport.py][1871] : Compression: none
2025-07-01 11:33:51,838 [DEBUG][       Thread-603307][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:33:51,849 [DEBUG][       Thread-603307][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:33:51,849 [DEBUG][       Thread-603307][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:33:51,849 [DEBUG][       Thread-603307][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:33:51,850 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:33:51,850 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:33:51,851 [DEBUG][       Thread-603307][   transport.py][1871] : userauth is OK
2025-07-01 11:33:51,864 [ INFO][       Thread-603307][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:33:51,865 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:33:52,500 [DEBUG][       Thread-603307][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:33:52,500 [DEBUG][       Thread-603307][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:33:52,541 [DEBUG][       Thread-603307][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:33:52,541 [DEBUG][       Thread-603307][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:33:52,544 [DEBUG][       Thread-603307][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:33:52,556 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:33:52,556 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:33:52,558 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:33:52,560 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:33:52,566 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:33:52,568 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:33:52,568 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:33:52,569 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:33:52,569 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.398210 -999.00  +10.40  41.98     56   +2.10 1 2 2 1 1   888    0 7.75 -28.54 ----- 42.0 42.0 44.6 46.3 13.2 -23.4 12.6 -22.9 12.2 -21.9 12.8 -21.8
2025-07-01 11:33:52,569 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:33:52,569 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:33:52,569 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.398210
2025-07-01 11:33:52,569 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:33:52,570 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:33:52,570 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:33:52,570 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:33:52,570 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:33:52,570 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:33:45', tmtdew=9.6, humidity=51.37, cloud=0.0, wind=38.22, temperature=10.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:33:25.344', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:33:52,571 [DEBUG][       Thread-603307][   transport.py][1871] : EOF in transport thread
2025-07-01 11:33:52,654 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:33:52,665 [DEBUG][       Thread-603310][   transport.py][1871] : starting thread (client mode): 0x75a93f0
2025-07-01 11:33:52,665 [DEBUG][       Thread-603310][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:33:52,684 [DEBUG][       Thread-603310][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:33:52,684 [ INFO][       Thread-603310][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:33:52,692 [DEBUG][       Thread-603310][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:33:52,692 [DEBUG][       Thread-603310][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:33:52,692 [DEBUG][       Thread-603310][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:33:52,692 [DEBUG][       Thread-603310][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:33:52,692 [DEBUG][       Thread-603310][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:33:52,692 [DEBUG][       Thread-603310][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:33:52,692 [DEBUG][       Thread-603310][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:33:52,692 [DEBUG][       Thread-603310][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:33:52,692 [DEBUG][       Thread-603310][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:33:52,693 [DEBUG][       Thread-603310][   transport.py][1871] : client lang: <none>
2025-07-01 11:33:52,693 [DEBUG][       Thread-603310][   transport.py][1871] : server lang: <none>
2025-07-01 11:33:52,693 [DEBUG][       Thread-603310][   transport.py][1871] : kex follows: False
2025-07-01 11:33:52,693 [DEBUG][       Thread-603310][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:33:52,693 [DEBUG][       Thread-603310][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:33:52,693 [DEBUG][       Thread-603310][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:33:52,693 [DEBUG][       Thread-603310][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:33:52,693 [DEBUG][       Thread-603310][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:33:52,693 [DEBUG][       Thread-603310][   transport.py][1871] : Compression: none
2025-07-01 11:33:52,693 [DEBUG][       Thread-603310][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:33:52,750 [DEBUG][       Thread-603310][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:33:52,751 [DEBUG][       Thread-603310][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:33:52,751 [DEBUG][       Thread-603310][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:33:52,752 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:33:52,752 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:33:52,809 [DEBUG][       Thread-603310][   transport.py][1871] : userauth is OK
2025-07-01 11:33:52,809 [DEBUG][       Thread-603310][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:33:52,809 [DEBUG][       Thread-603310][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:33:52,809 [DEBUG][       Thread-603310][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:33:52,809 [DEBUG][       Thread-603310][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:33:52,833 [ INFO][       Thread-603310][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:33:52,834 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:33:52,834 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:33:53,822 [DEBUG][       Thread-603310][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:33:53,823 [DEBUG][       Thread-603310][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:33:53,878 [DEBUG][       Thread-603310][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:33:53,878 [DEBUG][       Thread-603310][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:33:53,887 [DEBUG][       Thread-603310][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:33:53,896 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:33:53,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-07-01 11:33:53,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') -> 00000000
2025-07-01 11:33:53,914 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:33:53,914 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:33:53,915 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:33:53,923 [DEBUG][       Thread-603310][   transport.py][1871] : EOF in transport thread
2025-07-01 11:34:00,800 [DEBUG][Thread-603312 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:34:03,925 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:34:03,925 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:34:03,925 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:34:03,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-07-01 11:34:04,425 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 33, 45), 9.6, 51.37, 0.0, 38.22, 10.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:34:04,425 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:33:45
2025-07-01 11:34:04,516 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:34:04,520 [DEBUG][       Thread-603313][   transport.py][1871] : starting thread (client mode): 0x82b3e80
2025-07-01 11:34:04,520 [DEBUG][       Thread-603313][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:34:04,541 [DEBUG][       Thread-603313][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:34:04,541 [ INFO][       Thread-603313][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:34:04,544 [DEBUG][       Thread-603313][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:34:04,544 [DEBUG][       Thread-603313][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:34:04,544 [DEBUG][       Thread-603313][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:34:04,544 [DEBUG][       Thread-603313][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:34:04,544 [DEBUG][       Thread-603313][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:34:04,544 [DEBUG][       Thread-603313][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:34:04,544 [DEBUG][       Thread-603313][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:34:04,544 [DEBUG][       Thread-603313][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:34:04,544 [DEBUG][       Thread-603313][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:34:04,544 [DEBUG][       Thread-603313][   transport.py][1871] : client lang: <none>
2025-07-01 11:34:04,544 [DEBUG][       Thread-603313][   transport.py][1871] : server lang: <none>
2025-07-01 11:34:04,544 [DEBUG][       Thread-603313][   transport.py][1871] : kex follows: False
2025-07-01 11:34:04,544 [DEBUG][       Thread-603313][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:34:04,544 [DEBUG][       Thread-603313][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:34:04,544 [DEBUG][       Thread-603313][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:34:04,544 [DEBUG][       Thread-603313][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:34:04,544 [DEBUG][       Thread-603313][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:34:04,544 [DEBUG][       Thread-603313][   transport.py][1871] : Compression: none
2025-07-01 11:34:04,544 [DEBUG][       Thread-603313][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:34:04,559 [DEBUG][       Thread-603313][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:34:04,559 [DEBUG][       Thread-603313][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:34:04,559 [DEBUG][       Thread-603313][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:34:04,559 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:34:04,559 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:34:04,560 [DEBUG][       Thread-603313][   transport.py][1871] : userauth is OK
2025-07-01 11:34:04,572 [ INFO][       Thread-603313][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:34:04,572 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:34:05,177 [DEBUG][       Thread-603313][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:34:05,177 [DEBUG][       Thread-603313][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:34:05,220 [DEBUG][       Thread-603313][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:34:05,221 [DEBUG][       Thread-603313][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:34:05,223 [DEBUG][       Thread-603313][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:34:05,231 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:34:05,231 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:34:05,233 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:34:05,234 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:34:05,236 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:34:05,237 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:34:05,237 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:34:05,237 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:34:05,237 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.398210 -999.00  +10.40  41.98     56   +2.10 1 2 2 1 1   888    0 7.75 -28.54 ----- 42.0 42.0 44.6 46.3 13.2 -23.4 12.6 -22.9 12.2 -21.9 12.8 -21.8
2025-07-01 11:34:05,237 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:34:05,237 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:34:05,237 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.398210
2025-07-01 11:34:05,237 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:34:05,237 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:34:05,237 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:34:05,237 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:34:05,237 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:34:05,237 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:33:45', tmtdew=9.6, humidity=51.37, cloud=0.0, wind=38.22, temperature=10.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:33:25.344', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:34:05,238 [DEBUG][       Thread-603313][   transport.py][1871] : EOF in transport thread
2025-07-01 11:34:05,312 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:34:05,321 [DEBUG][       Thread-603316][   transport.py][1871] : starting thread (client mode): 0x81a40a0
2025-07-01 11:34:05,322 [DEBUG][       Thread-603316][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:34:05,337 [DEBUG][       Thread-603316][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:34:05,337 [ INFO][       Thread-603316][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:34:05,345 [DEBUG][       Thread-603316][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:34:05,345 [DEBUG][       Thread-603316][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:34:05,345 [DEBUG][       Thread-603316][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:34:05,345 [DEBUG][       Thread-603316][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:34:05,345 [DEBUG][       Thread-603316][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:34:05,345 [DEBUG][       Thread-603316][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:34:05,345 [DEBUG][       Thread-603316][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:34:05,345 [DEBUG][       Thread-603316][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:34:05,345 [DEBUG][       Thread-603316][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:34:05,345 [DEBUG][       Thread-603316][   transport.py][1871] : client lang: <none>
2025-07-01 11:34:05,345 [DEBUG][       Thread-603316][   transport.py][1871] : server lang: <none>
2025-07-01 11:34:05,345 [DEBUG][       Thread-603316][   transport.py][1871] : kex follows: False
2025-07-01 11:34:05,345 [DEBUG][       Thread-603316][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:34:05,345 [DEBUG][       Thread-603316][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:34:05,345 [DEBUG][       Thread-603316][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:34:05,345 [DEBUG][       Thread-603316][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:34:05,345 [DEBUG][       Thread-603316][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:34:05,345 [DEBUG][       Thread-603316][   transport.py][1871] : Compression: none
2025-07-01 11:34:05,345 [DEBUG][       Thread-603316][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:34:05,400 [DEBUG][       Thread-603316][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:34:05,400 [DEBUG][       Thread-603316][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:34:05,401 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:34:05,401 [DEBUG][       Thread-603316][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:34:05,401 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:34:05,458 [DEBUG][       Thread-603316][   transport.py][1871] : userauth is OK
2025-07-01 11:34:05,458 [DEBUG][       Thread-603316][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:34:05,458 [DEBUG][       Thread-603316][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:34:05,458 [DEBUG][       Thread-603316][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:34:05,458 [DEBUG][       Thread-603316][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:34:05,472 [ INFO][       Thread-603316][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:34:05,472 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:34:05,472 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:34:06,506 [DEBUG][       Thread-603316][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:34:06,506 [DEBUG][       Thread-603316][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:34:06,555 [DEBUG][       Thread-603316][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:34:06,555 [DEBUG][       Thread-603316][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:34:06,564 [DEBUG][       Thread-603316][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:34:06,572 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:34:06,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-07-01 11:34:06,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-07-01 11:34:06,588 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:34:06,588 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:34:06,588 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:34:06,596 [DEBUG][       Thread-603316][   transport.py][1871] : EOF in transport thread
2025-07-01 11:34:08,590 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:34:08,591 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:34:09,837 [DEBUG][Thread-603318 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:34:16,596 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:34:16,596 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:34:16,596 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:34:16,599 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 11:34:17,046 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 33, 45), 9.6, 51.37, 0.0, 38.22, 10.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:34:17,046 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:33:45
2025-07-01 11:34:17,131 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:34:17,136 [DEBUG][       Thread-603319][   transport.py][1871] : starting thread (client mode): 0x82b09a0
2025-07-01 11:34:17,136 [DEBUG][       Thread-603319][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:34:17,156 [DEBUG][       Thread-603319][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:34:17,156 [ INFO][       Thread-603319][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:34:17,159 [DEBUG][       Thread-603319][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:34:17,159 [DEBUG][       Thread-603319][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:34:17,159 [DEBUG][       Thread-603319][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:34:17,159 [DEBUG][       Thread-603319][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:34:17,159 [DEBUG][       Thread-603319][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:34:17,159 [DEBUG][       Thread-603319][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:34:17,159 [DEBUG][       Thread-603319][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:34:17,159 [DEBUG][       Thread-603319][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:34:17,159 [DEBUG][       Thread-603319][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:34:17,159 [DEBUG][       Thread-603319][   transport.py][1871] : client lang: <none>
2025-07-01 11:34:17,159 [DEBUG][       Thread-603319][   transport.py][1871] : server lang: <none>
2025-07-01 11:34:17,159 [DEBUG][       Thread-603319][   transport.py][1871] : kex follows: False
2025-07-01 11:34:17,159 [DEBUG][       Thread-603319][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:34:17,159 [DEBUG][       Thread-603319][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:34:17,159 [DEBUG][       Thread-603319][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:34:17,159 [DEBUG][       Thread-603319][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:34:17,159 [DEBUG][       Thread-603319][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:34:17,159 [DEBUG][       Thread-603319][   transport.py][1871] : Compression: none
2025-07-01 11:34:17,159 [DEBUG][       Thread-603319][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:34:17,173 [DEBUG][       Thread-603319][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:34:17,173 [DEBUG][       Thread-603319][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:34:17,173 [DEBUG][       Thread-603319][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:34:17,173 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:34:17,174 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:34:17,174 [DEBUG][       Thread-603319][   transport.py][1871] : userauth is OK
2025-07-01 11:34:17,198 [ INFO][       Thread-603319][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:34:17,198 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:34:17,781 [DEBUG][       Thread-603319][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:34:17,781 [DEBUG][       Thread-603319][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:34:17,824 [DEBUG][       Thread-603319][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:34:17,824 [DEBUG][       Thread-603319][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:34:17,826 [DEBUG][       Thread-603319][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:34:17,834 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:34:17,834 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:34:17,835 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:34:17,835 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:34:17,838 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:34:17,838 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:34:17,838 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:34:17,838 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:34:17,838 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.398556 -999.00  +10.40  44.76     56   +2.10 1 2 2 1 1   888    0 7.72 -27.03 ----- 44.8 44.8 42.8 48.0 13.2 -22.4 12.7 -22.6 12.2 -21.7 12.8 -21.4
2025-07-01 11:34:17,838 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:34:17,838 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:34:17,838 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.398556
2025-07-01 11:34:17,838 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:34:17,839 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:34:17,839 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:34:17,839 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:34:17,839 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:34:17,839 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:33:45', tmtdew=9.6, humidity=51.37, cloud=0.0, wind=38.22, temperature=10.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:33:55.238', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:34:17,839 [DEBUG][       Thread-603319][   transport.py][1871] : EOF in transport thread
2025-07-01 11:34:17,913 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:34:17,923 [DEBUG][       Thread-603322][   transport.py][1871] : starting thread (client mode): 0x8172770
2025-07-01 11:34:17,923 [DEBUG][       Thread-603322][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:34:17,938 [DEBUG][       Thread-603322][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:34:17,938 [ INFO][       Thread-603322][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:34:17,946 [DEBUG][       Thread-603322][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:34:17,946 [DEBUG][       Thread-603322][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:34:17,946 [DEBUG][       Thread-603322][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:34:17,946 [DEBUG][       Thread-603322][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:34:17,946 [DEBUG][       Thread-603322][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:34:17,946 [DEBUG][       Thread-603322][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:34:17,946 [DEBUG][       Thread-603322][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:34:17,946 [DEBUG][       Thread-603322][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:34:17,946 [DEBUG][       Thread-603322][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:34:17,946 [DEBUG][       Thread-603322][   transport.py][1871] : client lang: <none>
2025-07-01 11:34:17,946 [DEBUG][       Thread-603322][   transport.py][1871] : server lang: <none>
2025-07-01 11:34:17,946 [DEBUG][       Thread-603322][   transport.py][1871] : kex follows: False
2025-07-01 11:34:17,946 [DEBUG][       Thread-603322][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:34:17,946 [DEBUG][       Thread-603322][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:34:17,946 [DEBUG][       Thread-603322][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:34:17,946 [DEBUG][       Thread-603322][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:34:17,946 [DEBUG][       Thread-603322][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:34:17,946 [DEBUG][       Thread-603322][   transport.py][1871] : Compression: none
2025-07-01 11:34:17,946 [DEBUG][       Thread-603322][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:34:18,004 [DEBUG][       Thread-603322][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:34:18,004 [DEBUG][       Thread-603322][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:34:18,004 [DEBUG][       Thread-603322][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:34:18,004 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:34:18,004 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:34:18,062 [DEBUG][       Thread-603322][   transport.py][1871] : userauth is OK
2025-07-01 11:34:18,062 [DEBUG][       Thread-603322][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:34:18,062 [DEBUG][       Thread-603322][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:34:18,062 [DEBUG][       Thread-603322][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:34:18,062 [DEBUG][       Thread-603322][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:34:18,076 [ INFO][       Thread-603322][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:34:18,076 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:34:18,076 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:34:18,860 [DEBUG][Thread-603324 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:34:19,077 [DEBUG][       Thread-603322][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:34:19,078 [DEBUG][       Thread-603322][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:34:19,128 [DEBUG][       Thread-603322][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:34:19,128 [DEBUG][       Thread-603322][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:34:19,138 [DEBUG][       Thread-603322][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:34:19,147 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:34:19,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-07-01 11:34:19,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-07-01 11:34:19,165 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:34:19,166 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:34:19,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:34:19,174 [DEBUG][       Thread-603322][   transport.py][1871] : EOF in transport thread
2025-07-01 11:34:26,508 [DEBUG][Thread-603325 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:34:27,885 [DEBUG][Thread-603326 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:34:29,177 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:34:29,177 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:34:29,177 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:34:29,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-07-01 11:34:29,657 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 34, 16), 9.62, 51.31, 0.0, 38.18, 10.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:34:29,657 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:34:16
2025-07-01 11:34:29,741 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:34:29,748 [DEBUG][       Thread-603327][   transport.py][1871] : starting thread (client mode): 0x8170760
2025-07-01 11:34:29,748 [DEBUG][       Thread-603327][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:34:29,767 [DEBUG][       Thread-603327][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:34:29,768 [ INFO][       Thread-603327][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:34:29,770 [DEBUG][       Thread-603327][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:34:29,771 [DEBUG][       Thread-603327][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:34:29,771 [DEBUG][       Thread-603327][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:34:29,771 [DEBUG][       Thread-603327][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:34:29,771 [DEBUG][       Thread-603327][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:34:29,771 [DEBUG][       Thread-603327][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:34:29,771 [DEBUG][       Thread-603327][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:34:29,771 [DEBUG][       Thread-603327][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:34:29,771 [DEBUG][       Thread-603327][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:34:29,771 [DEBUG][       Thread-603327][   transport.py][1871] : client lang: <none>
2025-07-01 11:34:29,771 [DEBUG][       Thread-603327][   transport.py][1871] : server lang: <none>
2025-07-01 11:34:29,771 [DEBUG][       Thread-603327][   transport.py][1871] : kex follows: False
2025-07-01 11:34:29,771 [DEBUG][       Thread-603327][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:34:29,771 [DEBUG][       Thread-603327][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:34:29,771 [DEBUG][       Thread-603327][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:34:29,771 [DEBUG][       Thread-603327][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:34:29,771 [DEBUG][       Thread-603327][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:34:29,771 [DEBUG][       Thread-603327][   transport.py][1871] : Compression: none
2025-07-01 11:34:29,771 [DEBUG][       Thread-603327][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:34:29,788 [DEBUG][       Thread-603327][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:34:29,788 [DEBUG][       Thread-603327][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:34:29,789 [DEBUG][       Thread-603327][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:34:29,789 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:34:29,789 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:34:29,790 [DEBUG][       Thread-603327][   transport.py][1871] : userauth is OK
2025-07-01 11:34:29,803 [ INFO][       Thread-603327][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:34:29,804 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:34:30,413 [DEBUG][       Thread-603327][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:34:30,413 [DEBUG][       Thread-603327][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:34:30,457 [DEBUG][       Thread-603327][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:34:30,457 [DEBUG][       Thread-603327][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:34:30,459 [DEBUG][       Thread-603327][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:34:30,473 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:34:30,473 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:34:30,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:34:30,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:34:30,482 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:34:30,484 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:34:30,484 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:34:30,485 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:34:30,485 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.398556 -999.00  +10.40  44.76     56   +2.10 1 2 2 1 1   888    0 7.72 -27.03 ----- 44.8 44.8 42.8 48.0 13.2 -22.4 12.7 -22.6 12.2 -21.7 12.8 -21.4
2025-07-01 11:34:30,485 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:34:30,485 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:34:30,485 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.398556
2025-07-01 11:34:30,486 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:34:30,486 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:34:30,486 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:34:30,486 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:34:30,487 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:34:30,487 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:34:16', tmtdew=9.62, humidity=51.31, cloud=0.0, wind=38.18, temperature=10.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:33:55.238', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:34:30,487 [DEBUG][       Thread-603327][   transport.py][1871] : EOF in transport thread
2025-07-01 11:34:30,573 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:34:30,583 [DEBUG][       Thread-603330][   transport.py][1871] : starting thread (client mode): 0x8105300
2025-07-01 11:34:30,583 [DEBUG][       Thread-603330][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:34:30,598 [DEBUG][       Thread-603330][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:34:30,599 [ INFO][       Thread-603330][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:34:30,607 [DEBUG][       Thread-603330][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:34:30,607 [DEBUG][       Thread-603330][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:34:30,607 [DEBUG][       Thread-603330][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:34:30,607 [DEBUG][       Thread-603330][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:34:30,608 [DEBUG][       Thread-603330][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:34:30,608 [DEBUG][       Thread-603330][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:34:30,608 [DEBUG][       Thread-603330][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:34:30,608 [DEBUG][       Thread-603330][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:34:30,608 [DEBUG][       Thread-603330][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:34:30,608 [DEBUG][       Thread-603330][   transport.py][1871] : client lang: <none>
2025-07-01 11:34:30,608 [DEBUG][       Thread-603330][   transport.py][1871] : server lang: <none>
2025-07-01 11:34:30,608 [DEBUG][       Thread-603330][   transport.py][1871] : kex follows: False
2025-07-01 11:34:30,608 [DEBUG][       Thread-603330][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:34:30,608 [DEBUG][       Thread-603330][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:34:30,608 [DEBUG][       Thread-603330][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:34:30,608 [DEBUG][       Thread-603330][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:34:30,608 [DEBUG][       Thread-603330][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:34:30,608 [DEBUG][       Thread-603330][   transport.py][1871] : Compression: none
2025-07-01 11:34:30,608 [DEBUG][       Thread-603330][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:34:30,670 [DEBUG][       Thread-603330][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:34:30,670 [DEBUG][       Thread-603330][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:34:30,671 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:34:30,672 [DEBUG][       Thread-603330][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:34:30,672 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:34:30,726 [DEBUG][       Thread-603330][   transport.py][1871] : userauth is OK
2025-07-01 11:34:30,727 [DEBUG][       Thread-603330][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:34:30,727 [DEBUG][       Thread-603330][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:34:30,727 [DEBUG][       Thread-603330][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:34:30,727 [DEBUG][       Thread-603330][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:34:30,745 [ INFO][       Thread-603330][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:34:30,746 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:34:30,746 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:34:31,744 [DEBUG][       Thread-603330][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:34:31,744 [DEBUG][       Thread-603330][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:34:31,792 [DEBUG][       Thread-603330][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:34:31,792 [DEBUG][       Thread-603330][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:34:31,801 [DEBUG][       Thread-603330][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:34:31,810 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:34:31,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')
2025-07-01 11:34:31,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-07-01 11:34:31,828 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:34:31,829 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:34:31,829 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:34:31,837 [DEBUG][       Thread-603330][   transport.py][1871] : EOF in transport thread
2025-07-01 11:34:36,907 [DEBUG][Thread-603332 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:34:41,840 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:34:41,840 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:34:41,840 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:34:41,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-07-01 11:34:42,303 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 34, 16), 9.62, 51.31, 0.0, 38.18, 10.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:34:42,303 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:34:16
2025-07-01 11:34:42,388 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:34:42,392 [DEBUG][       Thread-603333][   transport.py][1871] : starting thread (client mode): 0x82b29e0
2025-07-01 11:34:42,392 [DEBUG][       Thread-603333][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:34:42,412 [DEBUG][       Thread-603333][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:34:42,412 [ INFO][       Thread-603333][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:34:42,414 [DEBUG][       Thread-603333][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:34:42,414 [DEBUG][       Thread-603333][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:34:42,414 [DEBUG][       Thread-603333][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:34:42,414 [DEBUG][       Thread-603333][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:34:42,414 [DEBUG][       Thread-603333][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:34:42,414 [DEBUG][       Thread-603333][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:34:42,414 [DEBUG][       Thread-603333][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:34:42,414 [DEBUG][       Thread-603333][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:34:42,414 [DEBUG][       Thread-603333][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:34:42,414 [DEBUG][       Thread-603333][   transport.py][1871] : client lang: <none>
2025-07-01 11:34:42,414 [DEBUG][       Thread-603333][   transport.py][1871] : server lang: <none>
2025-07-01 11:34:42,414 [DEBUG][       Thread-603333][   transport.py][1871] : kex follows: False
2025-07-01 11:34:42,414 [DEBUG][       Thread-603333][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:34:42,414 [DEBUG][       Thread-603333][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:34:42,414 [DEBUG][       Thread-603333][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:34:42,414 [DEBUG][       Thread-603333][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:34:42,414 [DEBUG][       Thread-603333][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:34:42,414 [DEBUG][       Thread-603333][   transport.py][1871] : Compression: none
2025-07-01 11:34:42,414 [DEBUG][       Thread-603333][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:34:42,422 [DEBUG][       Thread-603333][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:34:42,422 [DEBUG][       Thread-603333][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:34:42,423 [DEBUG][       Thread-603333][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:34:42,423 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:34:42,423 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:34:42,424 [DEBUG][       Thread-603333][   transport.py][1871] : userauth is OK
2025-07-01 11:34:42,436 [ INFO][       Thread-603333][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:34:42,437 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:34:43,046 [DEBUG][       Thread-603333][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:34:43,046 [DEBUG][       Thread-603333][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:34:43,092 [DEBUG][       Thread-603333][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:34:43,092 [DEBUG][       Thread-603333][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:34:43,095 [DEBUG][       Thread-603333][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:34:43,107 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:34:43,108 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:34:43,108 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:34:43,109 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:34:43,112 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:34:43,113 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:34:43,113 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:34:43,113 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:34:43,113 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.398556 -999.00  +10.40  44.76     56   +2.10 1 2 2 1 1   888    0 7.72 -27.03 ----- 44.8 44.8 42.8 48.0 13.2 -22.4 12.7 -22.6 12.2 -21.7 12.8 -21.4
2025-07-01 11:34:43,113 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:34:43,113 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:34:43,113 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.398556
2025-07-01 11:34:43,113 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:34:43,113 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:34:43,113 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:34:43,113 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:34:43,113 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:34:43,113 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:34:16', tmtdew=9.62, humidity=51.31, cloud=0.0, wind=38.18, temperature=10.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:33:55.238', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:34:43,114 [DEBUG][       Thread-603333][   transport.py][1871] : EOF in transport thread
2025-07-01 11:34:43,188 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:34:43,198 [DEBUG][       Thread-603336][   transport.py][1871] : starting thread (client mode): 0x81a7f10
2025-07-01 11:34:43,198 [DEBUG][       Thread-603336][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:34:43,213 [DEBUG][       Thread-603336][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:34:43,213 [ INFO][       Thread-603336][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:34:43,222 [DEBUG][       Thread-603336][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:34:43,222 [DEBUG][       Thread-603336][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:34:43,222 [DEBUG][       Thread-603336][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:34:43,222 [DEBUG][       Thread-603336][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:34:43,222 [DEBUG][       Thread-603336][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:34:43,222 [DEBUG][       Thread-603336][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:34:43,222 [DEBUG][       Thread-603336][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:34:43,222 [DEBUG][       Thread-603336][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:34:43,222 [DEBUG][       Thread-603336][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:34:43,222 [DEBUG][       Thread-603336][   transport.py][1871] : client lang: <none>
2025-07-01 11:34:43,222 [DEBUG][       Thread-603336][   transport.py][1871] : server lang: <none>
2025-07-01 11:34:43,222 [DEBUG][       Thread-603336][   transport.py][1871] : kex follows: False
2025-07-01 11:34:43,222 [DEBUG][       Thread-603336][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:34:43,222 [DEBUG][       Thread-603336][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:34:43,222 [DEBUG][       Thread-603336][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:34:43,222 [DEBUG][       Thread-603336][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:34:43,222 [DEBUG][       Thread-603336][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:34:43,222 [DEBUG][       Thread-603336][   transport.py][1871] : Compression: none
2025-07-01 11:34:43,222 [DEBUG][       Thread-603336][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:34:43,284 [DEBUG][       Thread-603336][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:34:43,284 [DEBUG][       Thread-603336][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:34:43,284 [DEBUG][       Thread-603336][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:34:43,284 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:34:43,284 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:34:43,342 [DEBUG][       Thread-603336][   transport.py][1871] : userauth is OK
2025-07-01 11:34:43,342 [DEBUG][       Thread-603336][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:34:43,342 [DEBUG][       Thread-603336][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:34:43,342 [DEBUG][       Thread-603336][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:34:43,342 [DEBUG][       Thread-603336][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:34:43,358 [ INFO][       Thread-603336][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:34:43,358 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:34:43,358 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:34:44,375 [DEBUG][       Thread-603336][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:34:44,376 [DEBUG][       Thread-603336][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:34:44,423 [DEBUG][       Thread-603336][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:34:44,423 [DEBUG][       Thread-603336][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:34:44,432 [DEBUG][       Thread-603336][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:34:44,440 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:34:44,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-07-01 11:34:44,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-07-01 11:34:44,456 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:34:44,456 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:34:44,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:34:44,463 [DEBUG][       Thread-603336][   transport.py][1871] : EOF in transport thread
2025-07-01 11:34:45,938 [DEBUG][Thread-603338 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:34:54,462 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:34:54,462 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:34:54,462 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:34:54,465 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 11:34:54,948 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 34, 48), 9.68, 51.08, 0.0, 38.09, 10.62, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:34:54,948 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:34:48
2025-07-01 11:34:54,957 [DEBUG][Thread-603339 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:34:55,034 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:34:55,042 [DEBUG][       Thread-603340][   transport.py][1871] : starting thread (client mode): 0x82b1660
2025-07-01 11:34:55,042 [DEBUG][       Thread-603340][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:34:55,062 [DEBUG][       Thread-603340][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:34:55,062 [ INFO][       Thread-603340][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:34:55,066 [DEBUG][       Thread-603340][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:34:55,066 [DEBUG][       Thread-603340][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:34:55,066 [DEBUG][       Thread-603340][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:34:55,066 [DEBUG][       Thread-603340][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:34:55,066 [DEBUG][       Thread-603340][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:34:55,066 [DEBUG][       Thread-603340][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:34:55,066 [DEBUG][       Thread-603340][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:34:55,066 [DEBUG][       Thread-603340][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:34:55,066 [DEBUG][       Thread-603340][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:34:55,066 [DEBUG][       Thread-603340][   transport.py][1871] : client lang: <none>
2025-07-01 11:34:55,066 [DEBUG][       Thread-603340][   transport.py][1871] : server lang: <none>
2025-07-01 11:34:55,066 [DEBUG][       Thread-603340][   transport.py][1871] : kex follows: False
2025-07-01 11:34:55,066 [DEBUG][       Thread-603340][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:34:55,066 [DEBUG][       Thread-603340][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:34:55,066 [DEBUG][       Thread-603340][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:34:55,066 [DEBUG][       Thread-603340][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:34:55,066 [DEBUG][       Thread-603340][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:34:55,066 [DEBUG][       Thread-603340][   transport.py][1871] : Compression: none
2025-07-01 11:34:55,066 [DEBUG][       Thread-603340][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:34:55,083 [DEBUG][       Thread-603340][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:34:55,084 [DEBUG][       Thread-603340][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:34:55,084 [DEBUG][       Thread-603340][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:34:55,085 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:34:55,085 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:34:55,086 [DEBUG][       Thread-603340][   transport.py][1871] : userauth is OK
2025-07-01 11:34:55,111 [ INFO][       Thread-603340][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:34:55,111 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:34:55,733 [DEBUG][       Thread-603340][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:34:55,733 [DEBUG][       Thread-603340][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:34:55,777 [DEBUG][       Thread-603340][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:34:55,777 [DEBUG][       Thread-603340][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:34:55,779 [DEBUG][       Thread-603340][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:34:55,790 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:34:55,791 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:34:55,793 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:34:55,794 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:34:55,799 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:34:55,801 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:34:55,801 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:34:55,802 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:34:55,802 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.398903 -999.00  +10.40  35.73     56   +2.10 1 2 2 1 1   888    0 7.71 -24.76 ----- 35.7 35.7 34.8 53.9 -999.0 -999.0 12.8 -22.6 12.2 -21.7 12.9 -20.8
2025-07-01 11:34:55,802 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:34:55,802 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:34:55,802 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.398903
2025-07-01 11:34:55,803 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:34:55,803 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:34:55,803 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:34:55,803 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:34:55,803 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:34:55,804 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:34:48', tmtdew=9.68, humidity=51.08, cloud=0.0, wind=38.09, temperature=10.62, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:34:25.219', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:34:55,804 [DEBUG][       Thread-603340][   transport.py][1871] : EOF in transport thread
2025-07-01 11:34:55,888 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:34:55,898 [DEBUG][       Thread-603343][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 11:34:55,898 [DEBUG][       Thread-603343][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:34:55,913 [DEBUG][       Thread-603343][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:34:55,913 [ INFO][       Thread-603343][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:34:55,921 [DEBUG][       Thread-603343][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:34:55,921 [DEBUG][       Thread-603343][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:34:55,921 [DEBUG][       Thread-603343][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:34:55,921 [DEBUG][       Thread-603343][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:34:55,921 [DEBUG][       Thread-603343][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:34:55,921 [DEBUG][       Thread-603343][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:34:55,921 [DEBUG][       Thread-603343][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:34:55,921 [DEBUG][       Thread-603343][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:34:55,921 [DEBUG][       Thread-603343][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:34:55,921 [DEBUG][       Thread-603343][   transport.py][1871] : client lang: <none>
2025-07-01 11:34:55,921 [DEBUG][       Thread-603343][   transport.py][1871] : server lang: <none>
2025-07-01 11:34:55,921 [DEBUG][       Thread-603343][   transport.py][1871] : kex follows: False
2025-07-01 11:34:55,921 [DEBUG][       Thread-603343][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:34:55,921 [DEBUG][       Thread-603343][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:34:55,921 [DEBUG][       Thread-603343][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:34:55,921 [DEBUG][       Thread-603343][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:34:55,921 [DEBUG][       Thread-603343][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:34:55,921 [DEBUG][       Thread-603343][   transport.py][1871] : Compression: none
2025-07-01 11:34:55,921 [DEBUG][       Thread-603343][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:34:55,978 [DEBUG][       Thread-603343][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:34:55,978 [DEBUG][       Thread-603343][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:34:55,979 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:34:55,980 [DEBUG][       Thread-603343][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:34:55,980 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:34:56,034 [DEBUG][       Thread-603343][   transport.py][1871] : userauth is OK
2025-07-01 11:34:56,034 [DEBUG][       Thread-603343][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:34:56,034 [DEBUG][       Thread-603343][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:34:56,034 [DEBUG][       Thread-603343][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:34:56,034 [DEBUG][       Thread-603343][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:34:56,053 [ INFO][       Thread-603343][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:34:56,053 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:34:56,053 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:34:57,065 [DEBUG][       Thread-603343][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:34:57,065 [DEBUG][       Thread-603343][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:34:57,116 [DEBUG][       Thread-603343][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:34:57,116 [DEBUG][       Thread-603343][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:34:57,125 [DEBUG][       Thread-603343][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:34:57,134 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:34:57,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-07-01 11:34:57,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') -> 00000000
2025-07-01 11:34:57,152 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:34:57,153 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:34:57,153 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:34:57,161 [DEBUG][       Thread-603343][   transport.py][1871] : EOF in transport thread
2025-07-01 11:35:03,981 [DEBUG][Thread-603345 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:35:07,164 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:35:07,164 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:35:07,164 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:35:07,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-07-01 11:35:07,642 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 34, 48), 9.68, 51.08, 0.0, 38.09, 10.62, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:35:07,642 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:34:48
2025-07-01 11:35:07,726 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:35:07,730 [DEBUG][       Thread-603346][   transport.py][1871] : starting thread (client mode): 0x82b2140
2025-07-01 11:35:07,731 [DEBUG][       Thread-603346][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:35:07,751 [DEBUG][       Thread-603346][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:35:07,751 [ INFO][       Thread-603346][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:35:07,754 [DEBUG][       Thread-603346][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:35:07,755 [DEBUG][       Thread-603346][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:35:07,755 [DEBUG][       Thread-603346][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:35:07,755 [DEBUG][       Thread-603346][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:35:07,755 [DEBUG][       Thread-603346][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:35:07,755 [DEBUG][       Thread-603346][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:35:07,755 [DEBUG][       Thread-603346][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:35:07,755 [DEBUG][       Thread-603346][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:35:07,755 [DEBUG][       Thread-603346][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:35:07,755 [DEBUG][       Thread-603346][   transport.py][1871] : client lang: <none>
2025-07-01 11:35:07,755 [DEBUG][       Thread-603346][   transport.py][1871] : server lang: <none>
2025-07-01 11:35:07,755 [DEBUG][       Thread-603346][   transport.py][1871] : kex follows: False
2025-07-01 11:35:07,755 [DEBUG][       Thread-603346][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:35:07,755 [DEBUG][       Thread-603346][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:35:07,755 [DEBUG][       Thread-603346][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:35:07,755 [DEBUG][       Thread-603346][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:35:07,755 [DEBUG][       Thread-603346][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:35:07,755 [DEBUG][       Thread-603346][   transport.py][1871] : Compression: none
2025-07-01 11:35:07,755 [DEBUG][       Thread-603346][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:35:07,771 [DEBUG][       Thread-603346][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:35:07,771 [DEBUG][       Thread-603346][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:35:07,772 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:35:07,772 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:35:07,773 [DEBUG][       Thread-603346][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:35:07,773 [DEBUG][       Thread-603346][   transport.py][1871] : userauth is OK
2025-07-01 11:35:07,785 [ INFO][       Thread-603346][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:35:07,786 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:35:08,458 [DEBUG][       Thread-603346][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:35:08,458 [DEBUG][       Thread-603346][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:35:08,500 [DEBUG][       Thread-603346][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:35:08,500 [DEBUG][       Thread-603346][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:35:08,503 [DEBUG][       Thread-603346][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:35:08,515 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:35:08,515 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:35:08,516 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:35:08,517 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:35:08,520 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:35:08,521 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:35:08,521 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:35:08,521 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:35:08,521 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.398903 -999.00  +10.40  35.73     56   +2.10 1 2 2 1 1   888    0 7.71 -24.76 ----- 35.7 35.7 34.8 53.9 -999.0 -999.0 12.8 -22.6 12.2 -21.7 12.9 -20.8
2025-07-01 11:35:08,521 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:35:08,521 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:35:08,521 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.398903
2025-07-01 11:35:08,521 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:35:08,521 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:35:08,521 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:35:08,521 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:35:08,521 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:35:08,521 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:34:48', tmtdew=9.68, humidity=51.08, cloud=0.0, wind=38.09, temperature=10.62, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:34:25.219', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:35:08,522 [DEBUG][       Thread-603346][   transport.py][1871] : EOF in transport thread
2025-07-01 11:35:08,593 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:35:08,605 [DEBUG][       Thread-603349][   transport.py][1871] : starting thread (client mode): 0x82b35e0
2025-07-01 11:35:08,605 [DEBUG][       Thread-603349][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:35:08,620 [DEBUG][       Thread-603349][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:35:08,620 [ INFO][       Thread-603349][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:35:08,628 [DEBUG][       Thread-603349][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:35:08,628 [DEBUG][       Thread-603349][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:35:08,628 [DEBUG][       Thread-603349][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:35:08,628 [DEBUG][       Thread-603349][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:35:08,628 [DEBUG][       Thread-603349][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:35:08,628 [DEBUG][       Thread-603349][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:35:08,628 [DEBUG][       Thread-603349][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:35:08,628 [DEBUG][       Thread-603349][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:35:08,628 [DEBUG][       Thread-603349][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:35:08,629 [DEBUG][       Thread-603349][   transport.py][1871] : client lang: <none>
2025-07-01 11:35:08,629 [DEBUG][       Thread-603349][   transport.py][1871] : server lang: <none>
2025-07-01 11:35:08,629 [DEBUG][       Thread-603349][   transport.py][1871] : kex follows: False
2025-07-01 11:35:08,629 [DEBUG][       Thread-603349][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:35:08,629 [DEBUG][       Thread-603349][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:35:08,629 [DEBUG][       Thread-603349][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:35:08,629 [DEBUG][       Thread-603349][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:35:08,629 [DEBUG][       Thread-603349][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:35:08,629 [DEBUG][       Thread-603349][   transport.py][1871] : Compression: none
2025-07-01 11:35:08,629 [DEBUG][       Thread-603349][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:35:08,686 [DEBUG][       Thread-603349][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:35:08,686 [DEBUG][       Thread-603349][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:35:08,686 [DEBUG][       Thread-603349][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:35:08,687 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:35:08,687 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:35:08,728 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:35:08,730 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:35:08,742 [DEBUG][       Thread-603349][   transport.py][1871] : userauth is OK
2025-07-01 11:35:08,742 [DEBUG][       Thread-603349][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:35:08,742 [DEBUG][       Thread-603349][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:35:08,742 [DEBUG][       Thread-603349][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:35:08,742 [DEBUG][       Thread-603349][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:35:08,762 [ INFO][       Thread-603349][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:35:08,762 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:35:08,762 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:35:09,794 [DEBUG][       Thread-603349][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:35:09,794 [DEBUG][       Thread-603349][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:35:09,844 [DEBUG][       Thread-603349][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:35:09,844 [DEBUG][       Thread-603349][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:35:09,854 [DEBUG][       Thread-603349][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:35:09,863 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:35: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')
2025-07-01 11:35:09,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-07-01 11:35:09,881 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:35:09,882 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:35:09,882 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:35:09,890 [DEBUG][       Thread-603349][   transport.py][1871] : EOF in transport thread
2025-07-01 11:35:13,024 [DEBUG][Thread-603351 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:35:19,893 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:35:19,893 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:35:19,893 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:35:19,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-07-01 11:35:20,392 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 34, 48), 9.68, 51.08, 0.0, 38.09, 10.62, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:35:20,392 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:34:48
2025-07-01 11:35:20,477 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:35:20,482 [DEBUG][       Thread-603352][   transport.py][1871] : starting thread (client mode): 0x82b39a0
2025-07-01 11:35:20,482 [DEBUG][       Thread-603352][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:35:20,500 [DEBUG][       Thread-603352][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:35:20,500 [ INFO][       Thread-603352][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:35:20,503 [DEBUG][       Thread-603352][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:35:20,503 [DEBUG][       Thread-603352][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:35:20,503 [DEBUG][       Thread-603352][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:35:20,503 [DEBUG][       Thread-603352][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:35:20,503 [DEBUG][       Thread-603352][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:35:20,503 [DEBUG][       Thread-603352][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:35:20,503 [DEBUG][       Thread-603352][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:35:20,503 [DEBUG][       Thread-603352][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:35:20,503 [DEBUG][       Thread-603352][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:35:20,503 [DEBUG][       Thread-603352][   transport.py][1871] : client lang: <none>
2025-07-01 11:35:20,503 [DEBUG][       Thread-603352][   transport.py][1871] : server lang: <none>
2025-07-01 11:35:20,503 [DEBUG][       Thread-603352][   transport.py][1871] : kex follows: False
2025-07-01 11:35:20,503 [DEBUG][       Thread-603352][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:35:20,503 [DEBUG][       Thread-603352][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:35:20,503 [DEBUG][       Thread-603352][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:35:20,503 [DEBUG][       Thread-603352][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:35:20,503 [DEBUG][       Thread-603352][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:35:20,504 [DEBUG][       Thread-603352][   transport.py][1871] : Compression: none
2025-07-01 11:35:20,504 [DEBUG][       Thread-603352][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:35:20,520 [DEBUG][       Thread-603352][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:35:20,521 [DEBUG][       Thread-603352][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:35:20,521 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:35:20,521 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:35:20,522 [DEBUG][       Thread-603352][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:35:20,522 [DEBUG][       Thread-603352][   transport.py][1871] : userauth is OK
2025-07-01 11:35:20,535 [ INFO][       Thread-603352][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:35:20,535 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:35:21,171 [DEBUG][       Thread-603352][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:35:21,171 [DEBUG][       Thread-603352][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:35:21,212 [DEBUG][       Thread-603352][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:35:21,213 [DEBUG][       Thread-603352][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:35:21,215 [DEBUG][       Thread-603352][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:35:21,228 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:35:21,228 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:35:21,229 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:35:21,231 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:35:21,234 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:35:21,236 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:35:21,236 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:35:21,236 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:35:21,236 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.398903 -999.00  +10.40  35.73     56   +2.10 1 2 2 1 1   888    0 7.71 -24.76 ----- 35.7 35.7 34.8 53.9 -999.0 -999.0 12.8 -22.6 12.2 -21.7 12.9 -20.8
2025-07-01 11:35:21,236 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:35:21,236 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:35:21,236 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.398903
2025-07-01 11:35:21,236 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:35:21,236 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:35:21,236 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:35:21,236 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:35:21,237 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:35:21,237 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:34:48', tmtdew=9.68, humidity=51.08, cloud=0.0, wind=38.09, temperature=10.62, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:34:25.219', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:35:21,237 [DEBUG][       Thread-603352][   transport.py][1871] : EOF in transport thread
2025-07-01 11:35:21,330 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:35:21,340 [DEBUG][       Thread-603355][   transport.py][1871] : starting thread (client mode): 0x818d9f0
2025-07-01 11:35:21,340 [DEBUG][       Thread-603355][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:35:21,355 [DEBUG][       Thread-603355][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:35:21,355 [ INFO][       Thread-603355][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:35:21,362 [DEBUG][       Thread-603355][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:35:21,363 [DEBUG][       Thread-603355][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:35:21,363 [DEBUG][       Thread-603355][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:35:21,363 [DEBUG][       Thread-603355][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:35:21,363 [DEBUG][       Thread-603355][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:35:21,363 [DEBUG][       Thread-603355][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:35:21,363 [DEBUG][       Thread-603355][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:35:21,363 [DEBUG][       Thread-603355][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:35:21,363 [DEBUG][       Thread-603355][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:35:21,363 [DEBUG][       Thread-603355][   transport.py][1871] : client lang: <none>
2025-07-01 11:35:21,363 [DEBUG][       Thread-603355][   transport.py][1871] : server lang: <none>
2025-07-01 11:35:21,363 [DEBUG][       Thread-603355][   transport.py][1871] : kex follows: False
2025-07-01 11:35:21,363 [DEBUG][       Thread-603355][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:35:21,363 [DEBUG][       Thread-603355][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:35:21,363 [DEBUG][       Thread-603355][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:35:21,363 [DEBUG][       Thread-603355][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:35:21,363 [DEBUG][       Thread-603355][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:35:21,363 [DEBUG][       Thread-603355][   transport.py][1871] : Compression: none
2025-07-01 11:35:21,363 [DEBUG][       Thread-603355][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:35:21,421 [DEBUG][       Thread-603355][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:35:21,421 [DEBUG][       Thread-603355][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:35:21,421 [DEBUG][       Thread-603355][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:35:21,421 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:35:21,421 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:35:21,478 [DEBUG][       Thread-603355][   transport.py][1871] : userauth is OK
2025-07-01 11:35:21,478 [DEBUG][       Thread-603355][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:35:21,478 [DEBUG][       Thread-603355][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:35:21,478 [DEBUG][       Thread-603355][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:35:21,478 [DEBUG][       Thread-603355][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:35:21,492 [ INFO][       Thread-603355][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:35:21,492 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:35:21,492 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:35:22,045 [DEBUG][Thread-603357 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:35:22,491 [DEBUG][       Thread-603355][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:35:22,491 [DEBUG][       Thread-603355][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:35:22,539 [DEBUG][       Thread-603355][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:35:22,539 [DEBUG][       Thread-603355][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:35:22,548 [DEBUG][       Thread-603355][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:35:22,555 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:35:22,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-07-01 11:35:22,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-07-01 11:35:22,571 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:35:22,571 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:35:22,571 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:35:22,579 [DEBUG][       Thread-603355][   transport.py][1871] : EOF in transport thread
2025-07-01 11:35:26,558 [DEBUG][Thread-603358 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:35:31,066 [DEBUG][Thread-603359 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:35:32,582 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:35:32,582 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:35:32,582 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:35:32,585 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 11:35:33,056 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 35, 20), 9.76, 50.94, 0.0, 39.03, 10.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:35:33,056 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:35:20
2025-07-01 11:35:33,141 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:35:33,145 [DEBUG][       Thread-603360][   transport.py][1871] : starting thread (client mode): 0x75a94e0
2025-07-01 11:35:33,145 [DEBUG][       Thread-603360][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:35:33,167 [DEBUG][       Thread-603360][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:35:33,167 [ INFO][       Thread-603360][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:35:33,170 [DEBUG][       Thread-603360][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:35:33,171 [DEBUG][       Thread-603360][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:35:33,171 [DEBUG][       Thread-603360][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:35:33,171 [DEBUG][       Thread-603360][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:35:33,171 [DEBUG][       Thread-603360][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:35:33,171 [DEBUG][       Thread-603360][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:35:33,171 [DEBUG][       Thread-603360][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:35:33,171 [DEBUG][       Thread-603360][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:35:33,171 [DEBUG][       Thread-603360][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:35:33,171 [DEBUG][       Thread-603360][   transport.py][1871] : client lang: <none>
2025-07-01 11:35:33,171 [DEBUG][       Thread-603360][   transport.py][1871] : server lang: <none>
2025-07-01 11:35:33,171 [DEBUG][       Thread-603360][   transport.py][1871] : kex follows: False
2025-07-01 11:35:33,171 [DEBUG][       Thread-603360][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:35:33,171 [DEBUG][       Thread-603360][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:35:33,171 [DEBUG][       Thread-603360][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:35:33,171 [DEBUG][       Thread-603360][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:35:33,171 [DEBUG][       Thread-603360][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:35:33,171 [DEBUG][       Thread-603360][   transport.py][1871] : Compression: none
2025-07-01 11:35:33,171 [DEBUG][       Thread-603360][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:35:33,190 [DEBUG][       Thread-603360][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:35:33,191 [DEBUG][       Thread-603360][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:35:33,191 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:35:33,191 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:35:33,192 [DEBUG][       Thread-603360][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:35:33,192 [DEBUG][       Thread-603360][   transport.py][1871] : userauth is OK
2025-07-01 11:35:33,217 [ INFO][       Thread-603360][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:35:33,217 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:35:33,867 [DEBUG][       Thread-603360][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:35:33,867 [DEBUG][       Thread-603360][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:35:33,909 [DEBUG][       Thread-603360][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:35:33,909 [DEBUG][       Thread-603360][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:35:33,912 [DEBUG][       Thread-603360][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:35:33,924 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:35:33,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:35:33,926 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:35:33,928 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:35:33,933 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:35:33,935 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:35:33,935 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:35:33,936 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:35:33,936 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.399250 -999.00  +10.40  37.45     56   +2.00 1 2 2 1 1   888    0 7.78 -24.65 ----- 37.5 37.5 43.4 48.7 13.5 -21.7 12.8 -23.2 12.3 -21.2 13.1 -20.5
2025-07-01 11:35:33,936 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:35:33,936 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:35:33,936 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.399250
2025-07-01 11:35:33,937 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:35:33,937 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:35:33,938 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:35:33,938 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:35:33,938 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:35:33,938 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:35:20', tmtdew=9.76, humidity=50.94, cloud=0.0, wind=39.03, temperature=10.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:34:55.200', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:35:33,939 [DEBUG][       Thread-603360][   transport.py][1871] : EOF in transport thread
2025-07-01 11:35:34,022 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:35:34,034 [DEBUG][       Thread-603363][   transport.py][1871] : starting thread (client mode): 0x81550f0
2025-07-01 11:35:34,034 [DEBUG][       Thread-603363][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:35:34,049 [DEBUG][       Thread-603363][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:35:34,049 [ INFO][       Thread-603363][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:35:34,057 [DEBUG][       Thread-603363][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:35:34,057 [DEBUG][       Thread-603363][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:35:34,057 [DEBUG][       Thread-603363][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:35:34,057 [DEBUG][       Thread-603363][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:35:34,057 [DEBUG][       Thread-603363][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:35:34,057 [DEBUG][       Thread-603363][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:35:34,058 [DEBUG][       Thread-603363][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:35:34,058 [DEBUG][       Thread-603363][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:35:34,058 [DEBUG][       Thread-603363][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:35:34,058 [DEBUG][       Thread-603363][   transport.py][1871] : client lang: <none>
2025-07-01 11:35:34,058 [DEBUG][       Thread-603363][   transport.py][1871] : server lang: <none>
2025-07-01 11:35:34,058 [DEBUG][       Thread-603363][   transport.py][1871] : kex follows: False
2025-07-01 11:35:34,058 [DEBUG][       Thread-603363][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:35:34,058 [DEBUG][       Thread-603363][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:35:34,058 [DEBUG][       Thread-603363][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:35:34,058 [DEBUG][       Thread-603363][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:35:34,058 [DEBUG][       Thread-603363][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:35:34,058 [DEBUG][       Thread-603363][   transport.py][1871] : Compression: none
2025-07-01 11:35:34,058 [DEBUG][       Thread-603363][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:35:34,118 [DEBUG][       Thread-603363][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:35:34,118 [DEBUG][       Thread-603363][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:35:34,119 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:35:34,120 [DEBUG][       Thread-603363][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:35:34,120 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:35:34,174 [DEBUG][       Thread-603363][   transport.py][1871] : userauth is OK
2025-07-01 11:35:34,175 [DEBUG][       Thread-603363][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:35:34,175 [DEBUG][       Thread-603363][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:35:34,175 [DEBUG][       Thread-603363][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:35:34,175 [DEBUG][       Thread-603363][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:35:34,193 [ INFO][       Thread-603363][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:35:34,194 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:35:34,194 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:35:35,196 [DEBUG][       Thread-603363][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:35:35,196 [DEBUG][       Thread-603363][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:35:35,244 [DEBUG][       Thread-603363][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:35:35,244 [DEBUG][       Thread-603363][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:35:35,253 [DEBUG][       Thread-603363][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:35:35,263 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:35:35,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-07-01 11:35:35,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-07-01 11:35:35,281 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:35:35,281 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:35:35,281 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:35:35,289 [DEBUG][       Thread-603363][   transport.py][1871] : EOF in transport thread
2025-07-01 11:35:40,089 [DEBUG][Thread-603365 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:35:45,290 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:35:45,290 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:35:45,290 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:35:45,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-07-01 11:35:45,762 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 35, 20), 9.76, 50.94, 0.0, 39.03, 10.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:35:45,762 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:35:20
2025-07-01 11:35:45,847 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:35:45,851 [DEBUG][       Thread-603366][   transport.py][1871] : starting thread (client mode): 0x82b1450
2025-07-01 11:35:45,851 [DEBUG][       Thread-603366][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:35:45,871 [DEBUG][       Thread-603366][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:35:45,871 [ INFO][       Thread-603366][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:35:45,874 [DEBUG][       Thread-603366][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:35:45,875 [DEBUG][       Thread-603366][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:35:45,875 [DEBUG][       Thread-603366][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:35:45,875 [DEBUG][       Thread-603366][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:35:45,875 [DEBUG][       Thread-603366][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:35:45,875 [DEBUG][       Thread-603366][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:35:45,875 [DEBUG][       Thread-603366][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:35:45,875 [DEBUG][       Thread-603366][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:35:45,875 [DEBUG][       Thread-603366][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:35:45,875 [DEBUG][       Thread-603366][   transport.py][1871] : client lang: <none>
2025-07-01 11:35:45,875 [DEBUG][       Thread-603366][   transport.py][1871] : server lang: <none>
2025-07-01 11:35:45,875 [DEBUG][       Thread-603366][   transport.py][1871] : kex follows: False
2025-07-01 11:35:45,875 [DEBUG][       Thread-603366][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:35:45,875 [DEBUG][       Thread-603366][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:35:45,875 [DEBUG][       Thread-603366][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:35:45,875 [DEBUG][       Thread-603366][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:35:45,875 [DEBUG][       Thread-603366][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:35:45,875 [DEBUG][       Thread-603366][   transport.py][1871] : Compression: none
2025-07-01 11:35:45,875 [DEBUG][       Thread-603366][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:35:45,890 [DEBUG][       Thread-603366][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:35:45,891 [DEBUG][       Thread-603366][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:35:45,891 [DEBUG][       Thread-603366][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:35:45,891 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:35:45,891 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:35:45,891 [DEBUG][       Thread-603366][   transport.py][1871] : userauth is OK
2025-07-01 11:35:45,904 [ INFO][       Thread-603366][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:35:45,904 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:35:46,562 [DEBUG][       Thread-603366][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:35:46,562 [DEBUG][       Thread-603366][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:35:46,605 [DEBUG][       Thread-603366][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:35:46,605 [DEBUG][       Thread-603366][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:35:46,608 [DEBUG][       Thread-603366][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:35:46,622 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:35:46,622 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:35:46,624 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:35:46,626 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:35:46,631 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:35:46,633 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:35:46,634 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:35:46,634 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:35:46,634 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.399250 -999.00  +10.40  37.45     56   +2.00 1 2 2 1 1   888    0 7.78 -24.65 ----- 37.5 37.5 43.4 48.7 13.5 -21.7 12.8 -23.2 12.3 -21.2 13.1 -20.5
2025-07-01 11:35:46,634 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:35:46,634 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:35:46,635 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.399250
2025-07-01 11:35:46,635 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:35:46,636 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:35:46,636 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:35:46,636 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:35:46,636 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:35:46,636 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:35:20', tmtdew=9.76, humidity=50.94, cloud=0.0, wind=39.03, temperature=10.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:34:55.200', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:35:46,636 [DEBUG][       Thread-603366][   transport.py][1871] : EOF in transport thread
2025-07-01 11:35:46,721 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:35:46,730 [DEBUG][       Thread-603369][   transport.py][1871] : starting thread (client mode): 0x83939d0
2025-07-01 11:35:46,731 [DEBUG][       Thread-603369][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:35:46,746 [DEBUG][       Thread-603369][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:35:46,746 [ INFO][       Thread-603369][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:35:46,753 [DEBUG][       Thread-603369][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:35:46,754 [DEBUG][       Thread-603369][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:35:46,754 [DEBUG][       Thread-603369][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:35:46,754 [DEBUG][       Thread-603369][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:35:46,754 [DEBUG][       Thread-603369][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:35:46,754 [DEBUG][       Thread-603369][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:35:46,754 [DEBUG][       Thread-603369][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:35:46,754 [DEBUG][       Thread-603369][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:35:46,754 [DEBUG][       Thread-603369][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:35:46,754 [DEBUG][       Thread-603369][   transport.py][1871] : client lang: <none>
2025-07-01 11:35:46,754 [DEBUG][       Thread-603369][   transport.py][1871] : server lang: <none>
2025-07-01 11:35:46,754 [DEBUG][       Thread-603369][   transport.py][1871] : kex follows: False
2025-07-01 11:35:46,754 [DEBUG][       Thread-603369][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:35:46,754 [DEBUG][       Thread-603369][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:35:46,754 [DEBUG][       Thread-603369][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:35:46,754 [DEBUG][       Thread-603369][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:35:46,754 [DEBUG][       Thread-603369][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:35:46,754 [DEBUG][       Thread-603369][   transport.py][1871] : Compression: none
2025-07-01 11:35:46,754 [DEBUG][       Thread-603369][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:35:46,810 [DEBUG][       Thread-603369][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:35:46,811 [DEBUG][       Thread-603369][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:35:46,812 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:35:46,812 [DEBUG][       Thread-603369][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:35:46,813 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:35:46,873 [DEBUG][       Thread-603369][   transport.py][1871] : userauth is OK
2025-07-01 11:35:46,873 [DEBUG][       Thread-603369][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:35:46,873 [DEBUG][       Thread-603369][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:35:46,873 [DEBUG][       Thread-603369][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:35:46,873 [DEBUG][       Thread-603369][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:35:46,895 [ INFO][       Thread-603369][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:35:46,895 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:35:46,896 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:35:47,878 [DEBUG][       Thread-603369][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:35:47,878 [DEBUG][       Thread-603369][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:35:47,928 [DEBUG][       Thread-603369][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:35:47,928 [DEBUG][       Thread-603369][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:35:47,937 [DEBUG][       Thread-603369][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:35:47,947 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:35:47,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')
2025-07-01 11:35:47,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-07-01 11:35:47,965 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:35:47,966 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:35:47,966 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:35:47,974 [DEBUG][       Thread-603369][   transport.py][1871] : EOF in transport thread
2025-07-01 11:35:49,124 [DEBUG][Thread-603371 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:35:57,972 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:35:57,972 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:35:57,972 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:35:57,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-07-01 11:35:58,145 [DEBUG][Thread-603372 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:35:58,465 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 35, 52), 9.72, 51.08, 0.0, 40.3, 10.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:35:58,465 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:35:52
2025-07-01 11:35:58,551 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:35:58,555 [DEBUG][       Thread-603373][   transport.py][1871] : starting thread (client mode): 0x82b1660
2025-07-01 11:35:58,555 [DEBUG][       Thread-603373][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:35:58,576 [DEBUG][       Thread-603373][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:35:58,576 [ INFO][       Thread-603373][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:35:58,579 [DEBUG][       Thread-603373][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:35:58,579 [DEBUG][       Thread-603373][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:35:58,579 [DEBUG][       Thread-603373][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:35:58,579 [DEBUG][       Thread-603373][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:35:58,579 [DEBUG][       Thread-603373][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:35:58,579 [DEBUG][       Thread-603373][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:35:58,579 [DEBUG][       Thread-603373][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:35:58,579 [DEBUG][       Thread-603373][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:35:58,579 [DEBUG][       Thread-603373][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:35:58,579 [DEBUG][       Thread-603373][   transport.py][1871] : client lang: <none>
2025-07-01 11:35:58,579 [DEBUG][       Thread-603373][   transport.py][1871] : server lang: <none>
2025-07-01 11:35:58,579 [DEBUG][       Thread-603373][   transport.py][1871] : kex follows: False
2025-07-01 11:35:58,579 [DEBUG][       Thread-603373][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:35:58,579 [DEBUG][       Thread-603373][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:35:58,579 [DEBUG][       Thread-603373][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:35:58,579 [DEBUG][       Thread-603373][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:35:58,579 [DEBUG][       Thread-603373][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:35:58,579 [DEBUG][       Thread-603373][   transport.py][1871] : Compression: none
2025-07-01 11:35:58,579 [DEBUG][       Thread-603373][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:35:58,597 [DEBUG][       Thread-603373][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:35:58,598 [DEBUG][       Thread-603373][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:35:58,598 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:35:58,599 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:35:58,599 [DEBUG][       Thread-603373][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:35:58,599 [DEBUG][       Thread-603373][   transport.py][1871] : userauth is OK
2025-07-01 11:35:58,612 [ INFO][       Thread-603373][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:35:58,612 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:35:59,235 [DEBUG][       Thread-603373][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:35:59,236 [DEBUG][       Thread-603373][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:35:59,277 [DEBUG][       Thread-603373][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:35:59,277 [DEBUG][       Thread-603373][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:35:59,281 [DEBUG][       Thread-603373][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:35:59,293 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:35:59,294 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:35:59,295 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:35:59,297 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:35:59,302 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:35:59,304 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:35:59,304 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:35:59,305 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:35:59,305 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.399944 -999.00  +10.60  34.93     56   +2.10 1 2 2 1 1   888    0 7.70 -26.13 ----- 34.9 34.9 41.0 53.1 13.6 -22.3 12.9 -23.1 12.3 -22.0 13.2 -20.8
2025-07-01 11:35:59,305 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:35:59,305 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:35:59,305 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.399944
2025-07-01 11:35:59,306 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:35:59,306 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:35:59,306 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:35:59,306 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:35:59,307 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:35:59,307 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:35:52', tmtdew=9.72, humidity=51.08, cloud=0.0, wind=40.3, temperature=10.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:35:55.162', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:35:59,308 [DEBUG][       Thread-603373][   transport.py][1871] : EOF in transport thread
2025-07-01 11:35:59,390 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:35:59,402 [DEBUG][       Thread-603376][   transport.py][1871] : starting thread (client mode): 0x83939d0
2025-07-01 11:35:59,402 [DEBUG][       Thread-603376][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:35:59,417 [DEBUG][       Thread-603376][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:35:59,417 [ INFO][       Thread-603376][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:35:59,425 [DEBUG][       Thread-603376][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:35:59,425 [DEBUG][       Thread-603376][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:35:59,425 [DEBUG][       Thread-603376][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:35:59,425 [DEBUG][       Thread-603376][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:35:59,425 [DEBUG][       Thread-603376][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:35:59,425 [DEBUG][       Thread-603376][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:35:59,425 [DEBUG][       Thread-603376][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:35:59,425 [DEBUG][       Thread-603376][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:35:59,425 [DEBUG][       Thread-603376][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:35:59,425 [DEBUG][       Thread-603376][   transport.py][1871] : client lang: <none>
2025-07-01 11:35:59,425 [DEBUG][       Thread-603376][   transport.py][1871] : server lang: <none>
2025-07-01 11:35:59,425 [DEBUG][       Thread-603376][   transport.py][1871] : kex follows: False
2025-07-01 11:35:59,425 [DEBUG][       Thread-603376][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:35:59,425 [DEBUG][       Thread-603376][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:35:59,426 [DEBUG][       Thread-603376][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:35:59,426 [DEBUG][       Thread-603376][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:35:59,426 [DEBUG][       Thread-603376][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:35:59,426 [DEBUG][       Thread-603376][   transport.py][1871] : Compression: none
2025-07-01 11:35:59,426 [DEBUG][       Thread-603376][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:35:59,480 [DEBUG][       Thread-603376][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:35:59,481 [DEBUG][       Thread-603376][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:35:59,481 [DEBUG][       Thread-603376][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:35:59,481 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:35:59,481 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:35:59,537 [DEBUG][       Thread-603376][   transport.py][1871] : userauth is OK
2025-07-01 11:35:59,537 [DEBUG][       Thread-603376][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:35:59,537 [DEBUG][       Thread-603376][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:35:59,538 [DEBUG][       Thread-603376][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:35:59,538 [DEBUG][       Thread-603376][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:35:59,552 [ INFO][       Thread-603376][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:35:59,552 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:35:59,552 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:36:00,525 [DEBUG][       Thread-603376][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:36:00,525 [DEBUG][       Thread-603376][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:36:00,575 [DEBUG][       Thread-603376][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:36:00,575 [DEBUG][       Thread-603376][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:36:00,584 [DEBUG][       Thread-603376][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:36:00,591 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:36:00,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-07-01 11:36:00,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-07-01 11:36:00,607 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:36:00,607 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:36:00,607 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:36:00,615 [DEBUG][       Thread-603376][   transport.py][1871] : EOF in transport thread
2025-07-01 11:36:07,164 [DEBUG][Thread-603378 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:36:08,867 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:36:08,868 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:36:10,617 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:36:10,618 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:36:10,618 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:36:10,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-07-01 11:36:11,105 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 35, 52), 9.72, 51.08, 0.0, 40.3, 10.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:36:11,106 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:35:52
2025-07-01 11:36:11,190 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:36:11,194 [DEBUG][       Thread-603379][   transport.py][1871] : starting thread (client mode): 0x82b2290
2025-07-01 11:36:11,194 [DEBUG][       Thread-603379][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:36:11,225 [DEBUG][       Thread-603379][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:36:11,225 [ INFO][       Thread-603379][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:36:11,229 [DEBUG][       Thread-603379][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:36:11,229 [DEBUG][       Thread-603379][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:36:11,229 [DEBUG][       Thread-603379][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:36:11,229 [DEBUG][       Thread-603379][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:36:11,229 [DEBUG][       Thread-603379][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:36:11,229 [DEBUG][       Thread-603379][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:36:11,229 [DEBUG][       Thread-603379][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:36:11,229 [DEBUG][       Thread-603379][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:36:11,229 [DEBUG][       Thread-603379][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:36:11,229 [DEBUG][       Thread-603379][   transport.py][1871] : client lang: <none>
2025-07-01 11:36:11,229 [DEBUG][       Thread-603379][   transport.py][1871] : server lang: <none>
2025-07-01 11:36:11,229 [DEBUG][       Thread-603379][   transport.py][1871] : kex follows: False
2025-07-01 11:36:11,229 [DEBUG][       Thread-603379][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:36:11,229 [DEBUG][       Thread-603379][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:36:11,229 [DEBUG][       Thread-603379][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:36:11,229 [DEBUG][       Thread-603379][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:36:11,230 [DEBUG][       Thread-603379][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:36:11,230 [DEBUG][       Thread-603379][   transport.py][1871] : Compression: none
2025-07-01 11:36:11,230 [DEBUG][       Thread-603379][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:36:11,251 [DEBUG][       Thread-603379][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:36:11,252 [DEBUG][       Thread-603379][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:36:11,252 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:36:11,253 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:36:11,253 [DEBUG][       Thread-603379][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:36:11,254 [DEBUG][       Thread-603379][   transport.py][1871] : userauth is OK
2025-07-01 11:36:11,281 [ INFO][       Thread-603379][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:36:11,282 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:36:11,960 [DEBUG][       Thread-603379][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:36:11,960 [DEBUG][       Thread-603379][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:36:12,001 [DEBUG][       Thread-603379][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:36:12,001 [DEBUG][       Thread-603379][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:36:12,005 [DEBUG][       Thread-603379][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:36:12,019 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:36:12,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:36:12,021 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:36:12,023 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:36:12,029 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:36:12,031 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:36:12,031 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:36:12,032 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:36:12,032 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.399944 -999.00  +10.60  34.93     56   +2.10 1 2 2 1 1   888    0 7.70 -26.13 ----- 34.9 34.9 41.0 53.1 13.6 -22.3 12.9 -23.1 12.3 -22.0 13.2 -20.8
2025-07-01 11:36:12,032 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:36:12,032 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:36:12,032 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.399944
2025-07-01 11:36:12,032 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:36:12,033 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:36:12,033 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:36:12,033 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:36:12,033 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:36:12,033 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:35:52', tmtdew=9.72, humidity=51.08, cloud=0.0, wind=40.3, temperature=10.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:35:55.162', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:36:12,035 [DEBUG][       Thread-603379][   transport.py][1871] : EOF in transport thread
2025-07-01 11:36:12,117 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:36:12,127 [DEBUG][       Thread-603382][   transport.py][1871] : starting thread (client mode): 0x818e740
2025-07-01 11:36:12,127 [DEBUG][       Thread-603382][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:36:12,144 [DEBUG][       Thread-603382][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:36:12,144 [ INFO][       Thread-603382][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:36:12,151 [DEBUG][       Thread-603382][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:36:12,152 [DEBUG][       Thread-603382][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:36:12,152 [DEBUG][       Thread-603382][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:36:12,152 [DEBUG][       Thread-603382][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:36:12,152 [DEBUG][       Thread-603382][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:36:12,152 [DEBUG][       Thread-603382][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:36:12,152 [DEBUG][       Thread-603382][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:36:12,152 [DEBUG][       Thread-603382][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:36:12,152 [DEBUG][       Thread-603382][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:36:12,152 [DEBUG][       Thread-603382][   transport.py][1871] : client lang: <none>
2025-07-01 11:36:12,152 [DEBUG][       Thread-603382][   transport.py][1871] : server lang: <none>
2025-07-01 11:36:12,152 [DEBUG][       Thread-603382][   transport.py][1871] : kex follows: False
2025-07-01 11:36:12,152 [DEBUG][       Thread-603382][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:36:12,152 [DEBUG][       Thread-603382][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:36:12,152 [DEBUG][       Thread-603382][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:36:12,152 [DEBUG][       Thread-603382][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:36:12,152 [DEBUG][       Thread-603382][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:36:12,152 [DEBUG][       Thread-603382][   transport.py][1871] : Compression: none
2025-07-01 11:36:12,153 [DEBUG][       Thread-603382][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:36:12,216 [DEBUG][       Thread-603382][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:36:12,217 [DEBUG][       Thread-603382][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:36:12,226 [DEBUG][       Thread-603382][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:36:12,227 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:36:12,227 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:36:12,274 [DEBUG][       Thread-603382][   transport.py][1871] : userauth is OK
2025-07-01 11:36:12,274 [DEBUG][       Thread-603382][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:36:12,275 [DEBUG][       Thread-603382][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:36:12,275 [DEBUG][       Thread-603382][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:36:12,275 [DEBUG][       Thread-603382][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:36:12,302 [ INFO][       Thread-603382][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:36:12,303 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:36:12,303 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:36:13,346 [DEBUG][       Thread-603382][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:36:13,346 [DEBUG][       Thread-603382][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:36:13,396 [DEBUG][       Thread-603382][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:36:13,396 [DEBUG][       Thread-603382][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:36:13,406 [DEBUG][       Thread-603382][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:36:13,414 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:36:13,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')
2025-07-01 11:36:13,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') -> 00000000
2025-07-01 11:36:13,432 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:36:13,433 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:36:13,433 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:36:13,441 [DEBUG][       Thread-603382][   transport.py][1871] : EOF in transport thread
2025-07-01 11:36:16,197 [DEBUG][Thread-603384 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:36:23,444 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:36:23,444 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:36:23,444 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:36:23,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-07-01 11:36:23,923 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 35, 52), 9.72, 51.08, 0.0, 40.3, 10.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:36:23,924 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:35:52
2025-07-01 11:36:24,008 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:36:24,014 [DEBUG][       Thread-603385][   transport.py][1871] : starting thread (client mode): 0x82b2500
2025-07-01 11:36:24,014 [DEBUG][       Thread-603385][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:36:24,034 [DEBUG][       Thread-603385][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:36:24,034 [ INFO][       Thread-603385][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:36:24,038 [DEBUG][       Thread-603385][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:36:24,038 [DEBUG][       Thread-603385][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:36:24,038 [DEBUG][       Thread-603385][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:36:24,038 [DEBUG][       Thread-603385][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:36:24,038 [DEBUG][       Thread-603385][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:36:24,038 [DEBUG][       Thread-603385][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:36:24,038 [DEBUG][       Thread-603385][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:36:24,038 [DEBUG][       Thread-603385][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:36:24,038 [DEBUG][       Thread-603385][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:36:24,038 [DEBUG][       Thread-603385][   transport.py][1871] : client lang: <none>
2025-07-01 11:36:24,038 [DEBUG][       Thread-603385][   transport.py][1871] : server lang: <none>
2025-07-01 11:36:24,038 [DEBUG][       Thread-603385][   transport.py][1871] : kex follows: False
2025-07-01 11:36:24,038 [DEBUG][       Thread-603385][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:36:24,038 [DEBUG][       Thread-603385][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:36:24,038 [DEBUG][       Thread-603385][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:36:24,038 [DEBUG][       Thread-603385][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:36:24,038 [DEBUG][       Thread-603385][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:36:24,038 [DEBUG][       Thread-603385][   transport.py][1871] : Compression: none
2025-07-01 11:36:24,038 [DEBUG][       Thread-603385][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:36:24,054 [DEBUG][       Thread-603385][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:36:24,054 [DEBUG][       Thread-603385][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:36:24,055 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:36:24,055 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:36:24,055 [DEBUG][       Thread-603385][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:36:24,056 [DEBUG][       Thread-603385][   transport.py][1871] : userauth is OK
2025-07-01 11:36:24,081 [ INFO][       Thread-603385][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:36:24,081 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:36:24,736 [DEBUG][       Thread-603385][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:36:24,736 [DEBUG][       Thread-603385][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:36:24,780 [DEBUG][       Thread-603385][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:36:24,780 [DEBUG][       Thread-603385][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:36:24,783 [DEBUG][       Thread-603385][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:36:24,794 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:36:24,794 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:36:24,795 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:36:24,796 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:36:24,799 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:36:24,800 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:36:24,800 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:36:24,800 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:36:24,800 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.399944 -999.00  +10.60  34.93     56   +2.10 1 2 2 1 1   888    0 7.70 -26.13 ----- 34.9 34.9 41.0 53.1 13.6 -22.3 12.9 -23.1 12.3 -22.0 13.2 -20.8
2025-07-01 11:36:24,800 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:36:24,800 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:36:24,800 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.399944
2025-07-01 11:36:24,800 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:36:24,801 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:36:24,801 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:36:24,801 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:36:24,801 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:36:24,801 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:35:52', tmtdew=9.72, humidity=51.08, cloud=0.0, wind=40.3, temperature=10.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:35:55.162', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:36:24,801 [DEBUG][       Thread-603385][   transport.py][1871] : EOF in transport thread
2025-07-01 11:36:24,875 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:36:24,888 [DEBUG][       Thread-603388][   transport.py][1871] : starting thread (client mode): 0x81e6260
2025-07-01 11:36:24,888 [DEBUG][       Thread-603388][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:36:24,906 [DEBUG][       Thread-603388][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:36:24,906 [ INFO][       Thread-603388][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:36:24,916 [DEBUG][       Thread-603388][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:36:24,916 [DEBUG][       Thread-603388][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:36:24,916 [DEBUG][       Thread-603388][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:36:24,917 [DEBUG][       Thread-603388][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:36:24,917 [DEBUG][       Thread-603388][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:36:24,917 [DEBUG][       Thread-603388][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:36:24,917 [DEBUG][       Thread-603388][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:36:24,917 [DEBUG][       Thread-603388][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:36:24,917 [DEBUG][       Thread-603388][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:36:24,917 [DEBUG][       Thread-603388][   transport.py][1871] : client lang: <none>
2025-07-01 11:36:24,917 [DEBUG][       Thread-603388][   transport.py][1871] : server lang: <none>
2025-07-01 11:36:24,917 [DEBUG][       Thread-603388][   transport.py][1871] : kex follows: False
2025-07-01 11:36:24,917 [DEBUG][       Thread-603388][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:36:24,917 [DEBUG][       Thread-603388][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:36:24,917 [DEBUG][       Thread-603388][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:36:24,917 [DEBUG][       Thread-603388][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:36:24,917 [DEBUG][       Thread-603388][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:36:24,917 [DEBUG][       Thread-603388][   transport.py][1871] : Compression: none
2025-07-01 11:36:24,917 [DEBUG][       Thread-603388][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:36:24,968 [DEBUG][       Thread-603388][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:36:24,968 [DEBUG][       Thread-603388][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:36:24,968 [DEBUG][       Thread-603388][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:36:24,969 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:36:24,969 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:36:25,026 [DEBUG][       Thread-603388][   transport.py][1871] : userauth is OK
2025-07-01 11:36:25,026 [DEBUG][       Thread-603388][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:36:25,026 [DEBUG][       Thread-603388][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:36:25,026 [DEBUG][       Thread-603388][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:36:25,026 [DEBUG][       Thread-603388][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:36:25,040 [ INFO][       Thread-603388][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:36:25,040 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:36:25,040 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:36:25,218 [DEBUG][Thread-603390 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:36:26,140 [DEBUG][       Thread-603388][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:36:26,140 [DEBUG][       Thread-603388][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:36:26,188 [DEBUG][       Thread-603388][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:36:26,188 [DEBUG][       Thread-603388][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:36:26,198 [DEBUG][       Thread-603388][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:36:26,207 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:36:26,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-07-01 11:36:26,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-07-01 11:36:26,225 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:36:26,225 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:36:26,226 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:36:26,234 [DEBUG][       Thread-603388][   transport.py][1871] : EOF in transport thread
2025-07-01 11:36:26,608 [DEBUG][Thread-603391 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:36:34,237 [DEBUG][Thread-603392 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:36:36,236 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:36:36,237 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:36:36,237 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:36:36,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-07-01 11:36:36,707 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 36, 24), 9.72, 51.19, 0.0, 30.12, 10.88, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:36:36,707 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:36:24
2025-07-01 11:36:36,791 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:36:36,795 [DEBUG][       Thread-603393][   transport.py][1871] : starting thread (client mode): 0x82b2f80
2025-07-01 11:36:36,795 [DEBUG][       Thread-603393][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:36:36,816 [DEBUG][       Thread-603393][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:36:36,816 [ INFO][       Thread-603393][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:36:36,819 [DEBUG][       Thread-603393][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:36:36,819 [DEBUG][       Thread-603393][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:36:36,819 [DEBUG][       Thread-603393][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:36:36,819 [DEBUG][       Thread-603393][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:36:36,819 [DEBUG][       Thread-603393][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:36:36,819 [DEBUG][       Thread-603393][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:36:36,819 [DEBUG][       Thread-603393][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:36:36,819 [DEBUG][       Thread-603393][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:36:36,819 [DEBUG][       Thread-603393][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:36:36,819 [DEBUG][       Thread-603393][   transport.py][1871] : client lang: <none>
2025-07-01 11:36:36,819 [DEBUG][       Thread-603393][   transport.py][1871] : server lang: <none>
2025-07-01 11:36:36,819 [DEBUG][       Thread-603393][   transport.py][1871] : kex follows: False
2025-07-01 11:36:36,819 [DEBUG][       Thread-603393][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:36:36,819 [DEBUG][       Thread-603393][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:36:36,820 [DEBUG][       Thread-603393][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:36:36,820 [DEBUG][       Thread-603393][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:36:36,820 [DEBUG][       Thread-603393][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:36:36,820 [DEBUG][       Thread-603393][   transport.py][1871] : Compression: none
2025-07-01 11:36:36,820 [DEBUG][       Thread-603393][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:36:36,836 [DEBUG][       Thread-603393][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:36:36,837 [DEBUG][       Thread-603393][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:36:36,837 [DEBUG][       Thread-603393][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:36:36,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:36:36,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:36:36,839 [DEBUG][       Thread-603393][   transport.py][1871] : userauth is OK
2025-07-01 11:36:36,852 [ INFO][       Thread-603393][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:36:36,853 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:36:37,496 [DEBUG][       Thread-603393][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:36:37,497 [DEBUG][       Thread-603393][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:36:37,541 [DEBUG][       Thread-603393][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:36:37,541 [DEBUG][       Thread-603393][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:36:37,543 [DEBUG][       Thread-603393][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:36:37,555 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:36:37,555 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:36:37,556 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:36:37,557 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:36:37,560 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:36:37,562 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:36:37,562 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:36:37,562 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:36:37,562 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.400292 -999.00  +10.70  40.67     55   +2.30 1 2 2 1 1   888    0 7.64 -25.87 ----- 40.7 40.7 24.8 45.2 13.7 -21.7 12.9 -22.7 12.4 -21.4 13.2 -20.5
2025-07-01 11:36:37,562 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:36:37,562 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:36:37,562 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.400292
2025-07-01 11:36:37,562 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:36:37,562 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:36:37,562 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:36:37,562 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:36:37,562 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:36:37,562 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:36:24', tmtdew=9.72, humidity=51.19, cloud=0.0, wind=30.12, temperature=10.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:36:25.229', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:36:37,563 [DEBUG][       Thread-603393][   transport.py][1871] : EOF in transport thread
2025-07-01 11:36:37,636 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:36:37,646 [DEBUG][       Thread-603396][   transport.py][1871] : starting thread (client mode): 0x8104b80
2025-07-01 11:36:37,646 [DEBUG][       Thread-603396][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:36:37,661 [DEBUG][       Thread-603396][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:36:37,661 [ INFO][       Thread-603396][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:36:37,669 [DEBUG][       Thread-603396][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:36:37,669 [DEBUG][       Thread-603396][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:36:37,669 [DEBUG][       Thread-603396][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:36:37,669 [DEBUG][       Thread-603396][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:36:37,669 [DEBUG][       Thread-603396][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:36:37,669 [DEBUG][       Thread-603396][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:36:37,669 [DEBUG][       Thread-603396][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:36:37,670 [DEBUG][       Thread-603396][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:36:37,670 [DEBUG][       Thread-603396][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:36:37,670 [DEBUG][       Thread-603396][   transport.py][1871] : client lang: <none>
2025-07-01 11:36:37,670 [DEBUG][       Thread-603396][   transport.py][1871] : server lang: <none>
2025-07-01 11:36:37,670 [DEBUG][       Thread-603396][   transport.py][1871] : kex follows: False
2025-07-01 11:36:37,670 [DEBUG][       Thread-603396][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:36:37,670 [DEBUG][       Thread-603396][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:36:37,670 [DEBUG][       Thread-603396][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:36:37,670 [DEBUG][       Thread-603396][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:36:37,670 [DEBUG][       Thread-603396][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:36:37,670 [DEBUG][       Thread-603396][   transport.py][1871] : Compression: none
2025-07-01 11:36:37,670 [DEBUG][       Thread-603396][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:36:37,726 [DEBUG][       Thread-603396][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:36:37,727 [DEBUG][       Thread-603396][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:36:37,728 [DEBUG][       Thread-603396][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:36:37,728 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:36:37,729 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:36:37,782 [DEBUG][       Thread-603396][   transport.py][1871] : userauth is OK
2025-07-01 11:36:37,782 [DEBUG][       Thread-603396][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:36:37,783 [DEBUG][       Thread-603396][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:36:37,783 [DEBUG][       Thread-603396][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:36:37,783 [DEBUG][       Thread-603396][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:36:37,801 [ INFO][       Thread-603396][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:36:37,802 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:36:37,802 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:36:38,815 [DEBUG][       Thread-603396][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:36:38,815 [DEBUG][       Thread-603396][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:36:38,866 [DEBUG][       Thread-603396][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:36:38,866 [DEBUG][       Thread-603396][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:36:38,875 [DEBUG][       Thread-603396][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:36:38,883 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:36:38,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-07-01 11:36:38,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-07-01 11:36:38,899 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:36:38,899 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:36:38,899 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:36:38,906 [DEBUG][       Thread-603396][   transport.py][1871] : EOF in transport thread
2025-07-01 11:36:43,256 [DEBUG][Thread-603398 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:36:48,909 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:36:48,909 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:36:48,909 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:36:48,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-07-01 11:36:49,358 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 36, 24), 9.72, 51.19, 0.0, 30.12, 10.88, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:36:49,358 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:36:24
2025-07-01 11:36:49,443 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:36:49,447 [DEBUG][       Thread-603399][   transport.py][1871] : starting thread (client mode): 0x75aa2c0
2025-07-01 11:36:49,447 [DEBUG][       Thread-603399][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:36:49,467 [DEBUG][       Thread-603399][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:36:49,467 [ INFO][       Thread-603399][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:36:49,470 [DEBUG][       Thread-603399][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:36:49,471 [DEBUG][       Thread-603399][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:36:49,471 [DEBUG][       Thread-603399][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:36:49,471 [DEBUG][       Thread-603399][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:36:49,471 [DEBUG][       Thread-603399][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:36:49,471 [DEBUG][       Thread-603399][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:36:49,471 [DEBUG][       Thread-603399][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:36:49,471 [DEBUG][       Thread-603399][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:36:49,471 [DEBUG][       Thread-603399][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:36:49,471 [DEBUG][       Thread-603399][   transport.py][1871] : client lang: <none>
2025-07-01 11:36:49,471 [DEBUG][       Thread-603399][   transport.py][1871] : server lang: <none>
2025-07-01 11:36:49,471 [DEBUG][       Thread-603399][   transport.py][1871] : kex follows: False
2025-07-01 11:36:49,471 [DEBUG][       Thread-603399][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:36:49,471 [DEBUG][       Thread-603399][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:36:49,471 [DEBUG][       Thread-603399][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:36:49,471 [DEBUG][       Thread-603399][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:36:49,471 [DEBUG][       Thread-603399][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:36:49,471 [DEBUG][       Thread-603399][   transport.py][1871] : Compression: none
2025-07-01 11:36:49,471 [DEBUG][       Thread-603399][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:36:49,487 [DEBUG][       Thread-603399][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:36:49,487 [DEBUG][       Thread-603399][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:36:49,488 [DEBUG][       Thread-603399][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:36:49,488 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:36:49,488 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:36:49,489 [DEBUG][       Thread-603399][   transport.py][1871] : userauth is OK
2025-07-01 11:36:49,503 [ INFO][       Thread-603399][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:36:49,503 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:36:50,164 [DEBUG][       Thread-603399][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:36:50,164 [DEBUG][       Thread-603399][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:36:50,205 [DEBUG][       Thread-603399][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:36:50,205 [DEBUG][       Thread-603399][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:36:50,208 [DEBUG][       Thread-603399][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:36:50,222 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:36:50,222 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:36:50,224 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:36:50,226 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:36:50,231 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:36:50,233 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:36:50,233 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:36:50,234 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:36:50,234 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.400292 -999.00  +10.70  40.67     55   +2.30 1 2 2 1 1   888    0 7.64 -25.87 ----- 40.7 40.7 24.8 45.2 13.7 -21.7 12.9 -22.7 12.4 -21.4 13.2 -20.5
2025-07-01 11:36:50,234 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:36:50,234 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:36:50,234 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.400292
2025-07-01 11:36:50,234 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:36:50,235 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:36:50,235 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:36:50,235 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:36:50,235 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:36:50,235 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:36:24', tmtdew=9.72, humidity=51.19, cloud=0.0, wind=30.12, temperature=10.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:36:25.229', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:36:50,236 [DEBUG][       Thread-603399][   transport.py][1871] : EOF in transport thread
2025-07-01 11:36:50,319 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:36:50,328 [DEBUG][       Thread-603402][   transport.py][1871] : starting thread (client mode): 0x818e740
2025-07-01 11:36:50,328 [DEBUG][       Thread-603402][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:36:50,343 [DEBUG][       Thread-603402][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:36:50,343 [ INFO][       Thread-603402][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:36:50,351 [DEBUG][       Thread-603402][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:36:50,351 [DEBUG][       Thread-603402][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:36:50,351 [DEBUG][       Thread-603402][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:36:50,351 [DEBUG][       Thread-603402][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:36:50,351 [DEBUG][       Thread-603402][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:36:50,351 [DEBUG][       Thread-603402][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:36:50,351 [DEBUG][       Thread-603402][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:36:50,351 [DEBUG][       Thread-603402][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:36:50,351 [DEBUG][       Thread-603402][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:36:50,351 [DEBUG][       Thread-603402][   transport.py][1871] : client lang: <none>
2025-07-01 11:36:50,351 [DEBUG][       Thread-603402][   transport.py][1871] : server lang: <none>
2025-07-01 11:36:50,351 [DEBUG][       Thread-603402][   transport.py][1871] : kex follows: False
2025-07-01 11:36:50,351 [DEBUG][       Thread-603402][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:36:50,352 [DEBUG][       Thread-603402][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:36:50,352 [DEBUG][       Thread-603402][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:36:50,352 [DEBUG][       Thread-603402][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:36:50,352 [DEBUG][       Thread-603402][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:36:50,352 [DEBUG][       Thread-603402][   transport.py][1871] : Compression: none
2025-07-01 11:36:50,352 [DEBUG][       Thread-603402][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:36:50,410 [DEBUG][       Thread-603402][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:36:50,411 [DEBUG][       Thread-603402][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:36:50,411 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:36:50,412 [DEBUG][       Thread-603402][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:36:50,412 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:36:50,466 [DEBUG][       Thread-603402][   transport.py][1871] : userauth is OK
2025-07-01 11:36:50,466 [DEBUG][       Thread-603402][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:36:50,467 [DEBUG][       Thread-603402][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:36:50,467 [DEBUG][       Thread-603402][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:36:50,467 [DEBUG][       Thread-603402][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:36:50,486 [ INFO][       Thread-603402][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:36:50,486 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:36:50,487 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:36:51,532 [DEBUG][       Thread-603402][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:36:51,533 [DEBUG][       Thread-603402][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:36:51,584 [DEBUG][       Thread-603402][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:36:51,584 [DEBUG][       Thread-603402][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:36:51,596 [DEBUG][       Thread-603402][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:36:51,608 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:36:51,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-07-01 11:36:51,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') -> 00000000
2025-07-01 11:36:51,626 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:36:51,626 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:36:51,627 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:36:51,634 [DEBUG][       Thread-603402][   transport.py][1871] : EOF in transport thread
2025-07-01 11:36:52,296 [DEBUG][Thread-603404 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:37:01,317 [DEBUG][Thread-603405 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:37:01,637 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:37:01,637 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:37:01,637 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:37:01,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-07-01 11:37:02,115 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 36, 56), 9.73, 51.18, 0.0, 29.63, 10.92, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:37:02,115 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:36:56
2025-07-01 11:37:02,199 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:37:02,203 [DEBUG][       Thread-603406][   transport.py][1871] : starting thread (client mode): 0x82b2560
2025-07-01 11:37:02,203 [DEBUG][       Thread-603406][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:37:02,223 [DEBUG][       Thread-603406][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:37:02,223 [ INFO][       Thread-603406][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:37:02,226 [DEBUG][       Thread-603406][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:37:02,226 [DEBUG][       Thread-603406][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:37:02,226 [DEBUG][       Thread-603406][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:37:02,226 [DEBUG][       Thread-603406][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:37:02,226 [DEBUG][       Thread-603406][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:37:02,226 [DEBUG][       Thread-603406][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:37:02,226 [DEBUG][       Thread-603406][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:37:02,226 [DEBUG][       Thread-603406][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:37:02,227 [DEBUG][       Thread-603406][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:37:02,227 [DEBUG][       Thread-603406][   transport.py][1871] : client lang: <none>
2025-07-01 11:37:02,227 [DEBUG][       Thread-603406][   transport.py][1871] : server lang: <none>
2025-07-01 11:37:02,227 [DEBUG][       Thread-603406][   transport.py][1871] : kex follows: False
2025-07-01 11:37:02,227 [DEBUG][       Thread-603406][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:37:02,227 [DEBUG][       Thread-603406][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:37:02,227 [DEBUG][       Thread-603406][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:37:02,227 [DEBUG][       Thread-603406][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:37:02,227 [DEBUG][       Thread-603406][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:37:02,227 [DEBUG][       Thread-603406][   transport.py][1871] : Compression: none
2025-07-01 11:37:02,227 [DEBUG][       Thread-603406][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:37:02,243 [DEBUG][       Thread-603406][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:37:02,243 [DEBUG][       Thread-603406][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:37:02,243 [DEBUG][       Thread-603406][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:37:02,244 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:37:02,244 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:37:02,245 [DEBUG][       Thread-603406][   transport.py][1871] : userauth is OK
2025-07-01 11:37:02,270 [ INFO][       Thread-603406][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:37:02,271 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:37:02,932 [DEBUG][       Thread-603406][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:37:02,933 [DEBUG][       Thread-603406][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:37:02,977 [DEBUG][       Thread-603406][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:37:02,977 [DEBUG][       Thread-603406][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:37:02,981 [DEBUG][       Thread-603406][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:37:02,993 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:37:02,993 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:37:02,995 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:37:02,997 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:37:03,003 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:37:03,005 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:37:03,005 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:37:03,006 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:37:03,006 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.400292 -999.00  +10.70  40.67     55   +2.30 1 2 2 1 1   888    0 7.64 -25.87 ----- 40.7 40.7 24.8 45.2 13.7 -21.7 12.9 -22.7 12.4 -21.4 13.2 -20.5
2025-07-01 11:37:03,006 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:37:03,006 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:37:03,006 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.400292
2025-07-01 11:37:03,006 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:37:03,007 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:37:03,007 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:37:03,007 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:37:03,007 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:37:03,007 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:36:56', tmtdew=9.73, humidity=51.18, cloud=0.0, wind=29.63, temperature=10.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:36:25.229', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:37:03,008 [DEBUG][       Thread-603406][   transport.py][1871] : EOF in transport thread
2025-07-01 11:37:03,091 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:37:03,102 [DEBUG][       Thread-603409][   transport.py][1871] : starting thread (client mode): 0x81a5180
2025-07-01 11:37:03,102 [DEBUG][       Thread-603409][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:37:03,117 [DEBUG][       Thread-603409][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:37:03,117 [ INFO][       Thread-603409][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:37:03,126 [DEBUG][       Thread-603409][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:37:03,126 [DEBUG][       Thread-603409][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:37:03,126 [DEBUG][       Thread-603409][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:37:03,126 [DEBUG][       Thread-603409][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:37:03,126 [DEBUG][       Thread-603409][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:37:03,126 [DEBUG][       Thread-603409][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:37:03,126 [DEBUG][       Thread-603409][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:37:03,126 [DEBUG][       Thread-603409][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:37:03,126 [DEBUG][       Thread-603409][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:37:03,126 [DEBUG][       Thread-603409][   transport.py][1871] : client lang: <none>
2025-07-01 11:37:03,126 [DEBUG][       Thread-603409][   transport.py][1871] : server lang: <none>
2025-07-01 11:37:03,126 [DEBUG][       Thread-603409][   transport.py][1871] : kex follows: False
2025-07-01 11:37:03,126 [DEBUG][       Thread-603409][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:37:03,126 [DEBUG][       Thread-603409][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:37:03,126 [DEBUG][       Thread-603409][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:37:03,126 [DEBUG][       Thread-603409][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:37:03,127 [DEBUG][       Thread-603409][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:37:03,127 [DEBUG][       Thread-603409][   transport.py][1871] : Compression: none
2025-07-01 11:37:03,127 [DEBUG][       Thread-603409][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:37:03,187 [DEBUG][       Thread-603409][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:37:03,188 [DEBUG][       Thread-603409][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:37:03,188 [DEBUG][       Thread-603409][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:37:03,189 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:37:03,189 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:37:03,250 [DEBUG][       Thread-603409][   transport.py][1871] : userauth is OK
2025-07-01 11:37:03,250 [DEBUG][       Thread-603409][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:37:03,250 [DEBUG][       Thread-603409][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:37:03,250 [DEBUG][       Thread-603409][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:37:03,250 [DEBUG][       Thread-603409][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:37:03,270 [ INFO][       Thread-603409][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:37:03,270 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:37:03,270 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:37:04,260 [DEBUG][       Thread-603409][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:37:04,261 [DEBUG][       Thread-603409][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:37:04,315 [DEBUG][       Thread-603409][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:37:04,315 [DEBUG][       Thread-603409][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:37:04,327 [DEBUG][       Thread-603409][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:37:04,337 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:37:04,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-07-01 11:37:04,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-07-01 11:37:04,360 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:37:04,361 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:37:04,361 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:37:04,371 [DEBUG][       Thread-603409][   transport.py][1871] : EOF in transport thread
2025-07-01 11:37:09,006 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:37:09,007 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:37:10,340 [DEBUG][Thread-603411 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:37:14,368 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:37:14,368 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:37:14,368 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:37:14,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-07-01 11:37:14,831 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 36, 56), 9.73, 51.18, 0.0, 29.63, 10.92, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:37:14,831 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:36:56
2025-07-01 11:37:14,915 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:37:14,918 [DEBUG][       Thread-603412][   transport.py][1871] : starting thread (client mode): 0x75aa620
2025-07-01 11:37:14,918 [DEBUG][       Thread-603412][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:37:14,935 [DEBUG][       Thread-603412][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:37:14,936 [ INFO][       Thread-603412][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:37:14,940 [DEBUG][       Thread-603412][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:37:14,940 [DEBUG][       Thread-603412][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:37:14,940 [DEBUG][       Thread-603412][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:37:14,940 [DEBUG][       Thread-603412][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:37:14,940 [DEBUG][       Thread-603412][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:37:14,940 [DEBUG][       Thread-603412][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:37:14,940 [DEBUG][       Thread-603412][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:37:14,940 [DEBUG][       Thread-603412][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:37:14,940 [DEBUG][       Thread-603412][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:37:14,940 [DEBUG][       Thread-603412][   transport.py][1871] : client lang: <none>
2025-07-01 11:37:14,940 [DEBUG][       Thread-603412][   transport.py][1871] : server lang: <none>
2025-07-01 11:37:14,940 [DEBUG][       Thread-603412][   transport.py][1871] : kex follows: False
2025-07-01 11:37:14,940 [DEBUG][       Thread-603412][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:37:14,940 [DEBUG][       Thread-603412][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:37:14,940 [DEBUG][       Thread-603412][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:37:14,940 [DEBUG][       Thread-603412][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:37:14,940 [DEBUG][       Thread-603412][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:37:14,940 [DEBUG][       Thread-603412][   transport.py][1871] : Compression: none
2025-07-01 11:37:14,940 [DEBUG][       Thread-603412][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:37:14,958 [DEBUG][       Thread-603412][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:37:14,958 [DEBUG][       Thread-603412][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:37:14,959 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:37:14,959 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:37:14,959 [DEBUG][       Thread-603412][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:37:14,960 [DEBUG][       Thread-603412][   transport.py][1871] : userauth is OK
2025-07-01 11:37:14,985 [ INFO][       Thread-603412][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:37:14,986 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:37:15,646 [DEBUG][       Thread-603412][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:37:15,646 [DEBUG][       Thread-603412][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:37:15,689 [DEBUG][       Thread-603412][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:37:15,689 [DEBUG][       Thread-603412][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:37:15,692 [DEBUG][       Thread-603412][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:37:15,704 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:37:15,705 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:37:15,707 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:37:15,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:37:15,714 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:37:15,716 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:37:15,716 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:37:15,717 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:37:15,717 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.400639 -999.00  +10.70  36.85     55   +2.20 1 2 2 1 1   888    0 7.88 -23.65 ----- 36.9 36.9 38.6 48.2 13.8 -22.3 13.1 -22.7 12.5 -22.3 13.4 -20.8
2025-07-01 11:37:15,717 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:37:15,717 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:37:15,717 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.400639
2025-07-01 11:37:15,718 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:37:15,718 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:37:15,718 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:37:15,718 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:37:15,718 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:37:15,719 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:36:56', tmtdew=9.73, humidity=51.18, cloud=0.0, wind=29.63, temperature=10.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:36:55.210', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:37:15,720 [DEBUG][       Thread-603412][   transport.py][1871] : EOF in transport thread
2025-07-01 11:37:15,805 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:37:15,817 [DEBUG][       Thread-603415][   transport.py][1871] : starting thread (client mode): 0x8156320
2025-07-01 11:37:15,817 [DEBUG][       Thread-603415][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:37:15,836 [DEBUG][       Thread-603415][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:37:15,836 [ INFO][       Thread-603415][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:37:15,848 [DEBUG][       Thread-603415][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:37:15,848 [DEBUG][       Thread-603415][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:37:15,848 [DEBUG][       Thread-603415][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:37:15,848 [DEBUG][       Thread-603415][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:37:15,848 [DEBUG][       Thread-603415][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:37:15,848 [DEBUG][       Thread-603415][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:37:15,849 [DEBUG][       Thread-603415][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:37:15,849 [DEBUG][       Thread-603415][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:37:15,849 [DEBUG][       Thread-603415][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:37:15,849 [DEBUG][       Thread-603415][   transport.py][1871] : client lang: <none>
2025-07-01 11:37:15,849 [DEBUG][       Thread-603415][   transport.py][1871] : server lang: <none>
2025-07-01 11:37:15,849 [DEBUG][       Thread-603415][   transport.py][1871] : kex follows: False
2025-07-01 11:37:15,849 [DEBUG][       Thread-603415][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:37:15,849 [DEBUG][       Thread-603415][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:37:15,849 [DEBUG][       Thread-603415][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:37:15,849 [DEBUG][       Thread-603415][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:37:15,849 [DEBUG][       Thread-603415][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:37:15,849 [DEBUG][       Thread-603415][   transport.py][1871] : Compression: none
2025-07-01 11:37:15,849 [DEBUG][       Thread-603415][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:37:15,902 [DEBUG][       Thread-603415][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:37:15,903 [DEBUG][       Thread-603415][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:37:15,903 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:37:15,904 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:37:15,905 [DEBUG][       Thread-603415][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:37:15,958 [DEBUG][       Thread-603415][   transport.py][1871] : userauth is OK
2025-07-01 11:37:15,959 [DEBUG][       Thread-603415][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:37:15,959 [DEBUG][       Thread-603415][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:37:15,959 [DEBUG][       Thread-603415][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:37:15,959 [DEBUG][       Thread-603415][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:37:15,977 [ INFO][       Thread-603415][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:37:15,978 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:37:15,978 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:37:16,976 [DEBUG][       Thread-603415][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:37:16,976 [DEBUG][       Thread-603415][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:37:17,027 [DEBUG][       Thread-603415][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:37:17,027 [DEBUG][       Thread-603415][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:37:17,036 [DEBUG][       Thread-603415][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:37:17,044 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:37:17,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-07-01 11:37:17,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-07-01 11:37:17,060 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:37:17,060 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:37:17,060 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:37:17,068 [DEBUG][       Thread-603415][   transport.py][1871] : EOF in transport thread
2025-07-01 11:37:19,371 [DEBUG][Thread-603417 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:37:26,662 [DEBUG][Thread-603418 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:37:27,071 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:37:27,071 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:37:27,071 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:37:27,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-07-01 11:37:27,524 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 36, 56), 9.73, 51.18, 0.0, 29.63, 10.92, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:37:27,524 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:36:56
2025-07-01 11:37:27,608 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:37:27,614 [DEBUG][       Thread-603419][   transport.py][1871] : starting thread (client mode): 0x75a8280
2025-07-01 11:37:27,614 [DEBUG][       Thread-603419][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:37:27,635 [DEBUG][       Thread-603419][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:37:27,635 [ INFO][       Thread-603419][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:37:27,638 [DEBUG][       Thread-603419][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:37:27,639 [DEBUG][       Thread-603419][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:37:27,639 [DEBUG][       Thread-603419][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:37:27,639 [DEBUG][       Thread-603419][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:37:27,639 [DEBUG][       Thread-603419][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:37:27,639 [DEBUG][       Thread-603419][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:37:27,639 [DEBUG][       Thread-603419][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:37:27,639 [DEBUG][       Thread-603419][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:37:27,639 [DEBUG][       Thread-603419][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:37:27,639 [DEBUG][       Thread-603419][   transport.py][1871] : client lang: <none>
2025-07-01 11:37:27,639 [DEBUG][       Thread-603419][   transport.py][1871] : server lang: <none>
2025-07-01 11:37:27,639 [DEBUG][       Thread-603419][   transport.py][1871] : kex follows: False
2025-07-01 11:37:27,639 [DEBUG][       Thread-603419][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:37:27,639 [DEBUG][       Thread-603419][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:37:27,639 [DEBUG][       Thread-603419][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:37:27,639 [DEBUG][       Thread-603419][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:37:27,639 [DEBUG][       Thread-603419][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:37:27,639 [DEBUG][       Thread-603419][   transport.py][1871] : Compression: none
2025-07-01 11:37:27,639 [DEBUG][       Thread-603419][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:37:27,656 [DEBUG][       Thread-603419][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:37:27,657 [DEBUG][       Thread-603419][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:37:27,657 [DEBUG][       Thread-603419][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:37:27,657 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:37:27,658 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:37:27,659 [DEBUG][       Thread-603419][   transport.py][1871] : userauth is OK
2025-07-01 11:37:27,683 [ INFO][       Thread-603419][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:37:27,684 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:37:28,348 [DEBUG][       Thread-603419][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:37:28,348 [DEBUG][       Thread-603419][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:37:28,388 [DEBUG][       Thread-603419][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:37:28,388 [DEBUG][       Thread-603419][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:37:28,390 [DEBUG][Thread-603421 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:37:28,391 [DEBUG][       Thread-603419][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:37:28,404 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:37:28,404 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:37:28,405 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:37:28,406 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:37:28,408 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:37:28,409 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:37:28,409 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:37:28,409 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:37:28,409 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.400639 -999.00  +10.70  36.85     55   +2.20 1 2 2 1 1   888    0 7.88 -23.65 ----- 36.9 36.9 38.6 48.2 13.8 -22.3 13.1 -22.7 12.5 -22.3 13.4 -20.8
2025-07-01 11:37:28,409 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:37:28,409 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:37:28,409 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.400639
2025-07-01 11:37:28,410 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:37:28,410 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:37:28,410 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:37:28,410 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:37:28,410 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:37:28,410 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:36:56', tmtdew=9.73, humidity=51.18, cloud=0.0, wind=29.63, temperature=10.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:36:55.210', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:37:28,410 [DEBUG][       Thread-603419][   transport.py][1871] : EOF in transport thread
2025-07-01 11:37:28,483 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:37:28,493 [DEBUG][       Thread-603423][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 11:37:28,493 [DEBUG][       Thread-603423][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:37:28,508 [DEBUG][       Thread-603423][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:37:28,508 [ INFO][       Thread-603423][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:37:28,515 [DEBUG][       Thread-603423][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:37:28,515 [DEBUG][       Thread-603423][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:37:28,515 [DEBUG][       Thread-603423][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:37:28,515 [DEBUG][       Thread-603423][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:37:28,515 [DEBUG][       Thread-603423][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:37:28,515 [DEBUG][       Thread-603423][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:37:28,515 [DEBUG][       Thread-603423][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:37:28,515 [DEBUG][       Thread-603423][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:37:28,515 [DEBUG][       Thread-603423][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:37:28,515 [DEBUG][       Thread-603423][   transport.py][1871] : client lang: <none>
2025-07-01 11:37:28,515 [DEBUG][       Thread-603423][   transport.py][1871] : server lang: <none>
2025-07-01 11:37:28,515 [DEBUG][       Thread-603423][   transport.py][1871] : kex follows: False
2025-07-01 11:37:28,515 [DEBUG][       Thread-603423][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:37:28,515 [DEBUG][       Thread-603423][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:37:28,515 [DEBUG][       Thread-603423][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:37:28,515 [DEBUG][       Thread-603423][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:37:28,515 [DEBUG][       Thread-603423][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:37:28,515 [DEBUG][       Thread-603423][   transport.py][1871] : Compression: none
2025-07-01 11:37:28,515 [DEBUG][       Thread-603423][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:37:28,573 [DEBUG][       Thread-603423][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:37:28,573 [DEBUG][       Thread-603423][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:37:28,573 [DEBUG][       Thread-603423][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:37:28,573 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:37:28,573 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:37:28,634 [DEBUG][       Thread-603423][   transport.py][1871] : userauth is OK
2025-07-01 11:37:28,634 [DEBUG][       Thread-603423][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:37:28,634 [DEBUG][       Thread-603423][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:37:28,634 [DEBUG][       Thread-603423][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:37:28,634 [DEBUG][       Thread-603423][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:37:28,648 [ INFO][       Thread-603423][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:37:28,648 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:37:28,648 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:37:29,642 [DEBUG][       Thread-603423][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:37:29,642 [DEBUG][       Thread-603423][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:37:29,691 [DEBUG][       Thread-603423][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:37:29,692 [DEBUG][       Thread-603423][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:37:29,701 [DEBUG][       Thread-603423][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:37:29,709 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:37:29,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-07-01 11:37:29,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') -> 00000000
2025-07-01 11:37:29,727 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:37:29,727 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:37:29,727 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:37:29,735 [DEBUG][       Thread-603423][   transport.py][1871] : EOF in transport thread
2025-07-01 11:37:37,410 [DEBUG][Thread-603425 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:37:39,738 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:37:39,738 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:37:39,738 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:37:39,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-07-01 11:37:40,219 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 37, 27), 9.83, 50.63, 0.0, 33.68, 10.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:37:40,219 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:37:27
2025-07-01 11:37:40,303 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:37:40,307 [DEBUG][       Thread-603426][   transport.py][1871] : starting thread (client mode): 0x818eaa0
2025-07-01 11:37:40,307 [DEBUG][       Thread-603426][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:37:40,328 [DEBUG][       Thread-603426][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:37:40,328 [ INFO][       Thread-603426][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:37:40,330 [DEBUG][       Thread-603426][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:37:40,330 [DEBUG][       Thread-603426][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:37:40,330 [DEBUG][       Thread-603426][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:37:40,330 [DEBUG][       Thread-603426][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:37:40,330 [DEBUG][       Thread-603426][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:37:40,330 [DEBUG][       Thread-603426][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:37:40,330 [DEBUG][       Thread-603426][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:37:40,330 [DEBUG][       Thread-603426][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:37:40,330 [DEBUG][       Thread-603426][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:37:40,330 [DEBUG][       Thread-603426][   transport.py][1871] : client lang: <none>
2025-07-01 11:37:40,330 [DEBUG][       Thread-603426][   transport.py][1871] : server lang: <none>
2025-07-01 11:37:40,330 [DEBUG][       Thread-603426][   transport.py][1871] : kex follows: False
2025-07-01 11:37:40,330 [DEBUG][       Thread-603426][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:37:40,331 [DEBUG][       Thread-603426][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:37:40,331 [DEBUG][       Thread-603426][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:37:40,331 [DEBUG][       Thread-603426][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:37:40,331 [DEBUG][       Thread-603426][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:37:40,331 [DEBUG][       Thread-603426][   transport.py][1871] : Compression: none
2025-07-01 11:37:40,331 [DEBUG][       Thread-603426][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:37:40,346 [DEBUG][       Thread-603426][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:37:40,347 [DEBUG][       Thread-603426][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:37:40,347 [DEBUG][       Thread-603426][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:37:40,347 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:37:40,348 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:37:40,389 [DEBUG][       Thread-603426][   transport.py][1871] : userauth is OK
2025-07-01 11:37:40,414 [ INFO][       Thread-603426][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:37:40,414 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:37:41,099 [DEBUG][       Thread-603426][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:37:41,099 [DEBUG][       Thread-603426][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:37:41,141 [DEBUG][       Thread-603426][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:37:41,141 [DEBUG][       Thread-603426][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:37:41,144 [DEBUG][       Thread-603426][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:37:41,158 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:37:41,159 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:37:41,160 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:37:41,162 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:37:41,167 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:37:41,169 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:37:41,169 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:37:41,170 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:37:41,170 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.400987 -999.00  +10.70  41.92     55   +2.10 1 2 2 1 1   888    0 7.82 -20.88 ----- 41.9 41.9 45.2 50.1 14.0 -22.2 13.1 -23.2 12.6 -21.6 13.5 -21.6
2025-07-01 11:37:41,170 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:37:41,170 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:37:41,170 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.400987
2025-07-01 11:37:41,171 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:37:41,171 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:37:41,171 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:37:41,171 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:37:41,171 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:37:41,171 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:37:27', tmtdew=9.83, humidity=50.63, cloud=0.0, wind=33.68, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:37:25.277', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:37:41,172 [DEBUG][       Thread-603426][   transport.py][1871] : EOF in transport thread
2025-07-01 11:37:41,256 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:37:41,266 [DEBUG][       Thread-603429][   transport.py][1871] : starting thread (client mode): 0x81553c0
2025-07-01 11:37:41,266 [DEBUG][       Thread-603429][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:37:41,281 [DEBUG][       Thread-603429][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:37:41,281 [ INFO][       Thread-603429][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:37:41,288 [DEBUG][       Thread-603429][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:37:41,288 [DEBUG][       Thread-603429][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:37:41,288 [DEBUG][       Thread-603429][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:37:41,288 [DEBUG][       Thread-603429][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:37:41,288 [DEBUG][       Thread-603429][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:37:41,288 [DEBUG][       Thread-603429][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:37:41,288 [DEBUG][       Thread-603429][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:37:41,288 [DEBUG][       Thread-603429][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:37:41,288 [DEBUG][       Thread-603429][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:37:41,288 [DEBUG][       Thread-603429][   transport.py][1871] : client lang: <none>
2025-07-01 11:37:41,288 [DEBUG][       Thread-603429][   transport.py][1871] : server lang: <none>
2025-07-01 11:37:41,288 [DEBUG][       Thread-603429][   transport.py][1871] : kex follows: False
2025-07-01 11:37:41,288 [DEBUG][       Thread-603429][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:37:41,288 [DEBUG][       Thread-603429][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:37:41,289 [DEBUG][       Thread-603429][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:37:41,289 [DEBUG][       Thread-603429][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:37:41,289 [DEBUG][       Thread-603429][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:37:41,289 [DEBUG][       Thread-603429][   transport.py][1871] : Compression: none
2025-07-01 11:37:41,289 [DEBUG][       Thread-603429][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:37:41,346 [DEBUG][       Thread-603429][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:37:41,346 [DEBUG][       Thread-603429][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:37:41,347 [DEBUG][       Thread-603429][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:37:41,347 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:37:41,347 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:37:41,402 [DEBUG][       Thread-603429][   transport.py][1871] : userauth is OK
2025-07-01 11:37:41,402 [DEBUG][       Thread-603429][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:37:41,402 [DEBUG][       Thread-603429][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:37:41,402 [DEBUG][       Thread-603429][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:37:41,402 [DEBUG][       Thread-603429][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:37:41,421 [ INFO][       Thread-603429][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:37:41,422 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:37:41,422 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:37:42,399 [DEBUG][       Thread-603429][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:37:42,399 [DEBUG][       Thread-603429][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:37:42,447 [DEBUG][       Thread-603429][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:37:42,448 [DEBUG][       Thread-603429][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:37:42,457 [DEBUG][       Thread-603429][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:37:42,465 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:37:42,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-07-01 11:37:42,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-07-01 11:37:42,482 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:37:42,482 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:37:42,483 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:37:42,490 [DEBUG][       Thread-603429][   transport.py][1871] : EOF in transport thread
2025-07-01 11:37:46,432 [DEBUG][Thread-603431 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:37:52,493 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:37:52,493 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:37:52,494 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:37:52,496 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 11:37:52,973 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 37, 27), 9.83, 50.63, 0.0, 33.68, 10.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:37:52,973 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:37:27
2025-07-01 11:37:53,056 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:37:53,061 [DEBUG][       Thread-603432][   transport.py][1871] : starting thread (client mode): 0x75a8d60
2025-07-01 11:37:53,062 [DEBUG][       Thread-603432][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:37:53,083 [DEBUG][       Thread-603432][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:37:53,083 [ INFO][       Thread-603432][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:37:53,087 [DEBUG][       Thread-603432][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:37:53,087 [DEBUG][       Thread-603432][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:37:53,087 [DEBUG][       Thread-603432][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:37:53,087 [DEBUG][       Thread-603432][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:37:53,087 [DEBUG][       Thread-603432][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:37:53,087 [DEBUG][       Thread-603432][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:37:53,087 [DEBUG][       Thread-603432][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:37:53,087 [DEBUG][       Thread-603432][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:37:53,087 [DEBUG][       Thread-603432][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:37:53,087 [DEBUG][       Thread-603432][   transport.py][1871] : client lang: <none>
2025-07-01 11:37:53,087 [DEBUG][       Thread-603432][   transport.py][1871] : server lang: <none>
2025-07-01 11:37:53,087 [DEBUG][       Thread-603432][   transport.py][1871] : kex follows: False
2025-07-01 11:37:53,087 [DEBUG][       Thread-603432][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:37:53,087 [DEBUG][       Thread-603432][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:37:53,087 [DEBUG][       Thread-603432][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:37:53,087 [DEBUG][       Thread-603432][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:37:53,087 [DEBUG][       Thread-603432][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:37:53,087 [DEBUG][       Thread-603432][   transport.py][1871] : Compression: none
2025-07-01 11:37:53,087 [DEBUG][       Thread-603432][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:37:53,108 [DEBUG][       Thread-603432][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:37:53,108 [DEBUG][       Thread-603432][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:37:53,109 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:37:53,109 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:37:53,109 [DEBUG][       Thread-603432][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:37:53,110 [DEBUG][       Thread-603432][   transport.py][1871] : userauth is OK
2025-07-01 11:37:53,135 [ INFO][       Thread-603432][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:37:53,136 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:37:53,775 [DEBUG][       Thread-603432][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:37:53,775 [DEBUG][       Thread-603432][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:37:53,817 [DEBUG][       Thread-603432][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:37:53,817 [DEBUG][       Thread-603432][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:37:53,820 [DEBUG][       Thread-603432][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:37:53,825 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:37:53,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:37:53,827 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:37:53,829 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:37:53,833 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:37:53,835 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:37:53,836 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:37:53,836 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:37:53,836 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.400987 -999.00  +10.70  41.92     55   +2.10 1 2 2 1 1   888    0 7.82 -20.88 ----- 41.9 41.9 45.2 50.1 14.0 -22.2 13.1 -23.2 12.6 -21.6 13.5 -21.6
2025-07-01 11:37:53,836 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:37:53,836 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:37:53,837 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.400987
2025-07-01 11:37:53,837 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:37:53,838 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:37:53,838 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:37:53,838 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:37:53,838 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:37:53,838 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:37:27', tmtdew=9.83, humidity=50.63, cloud=0.0, wind=33.68, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:37:25.277', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:37:53,838 [DEBUG][       Thread-603432][   transport.py][1871] : EOF in transport thread
2025-07-01 11:37:53,921 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:37:53,931 [DEBUG][       Thread-603435][   transport.py][1871] : starting thread (client mode): 0x82b3fd0
2025-07-01 11:37:53,931 [DEBUG][       Thread-603435][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:37:53,947 [DEBUG][       Thread-603435][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:37:53,947 [ INFO][       Thread-603435][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:37:53,954 [DEBUG][       Thread-603435][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:37:53,954 [DEBUG][       Thread-603435][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:37:53,955 [DEBUG][       Thread-603435][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:37:53,955 [DEBUG][       Thread-603435][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:37:53,955 [DEBUG][       Thread-603435][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:37:53,955 [DEBUG][       Thread-603435][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:37:53,955 [DEBUG][       Thread-603435][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:37:53,955 [DEBUG][       Thread-603435][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:37:53,955 [DEBUG][       Thread-603435][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:37:53,955 [DEBUG][       Thread-603435][   transport.py][1871] : client lang: <none>
2025-07-01 11:37:53,955 [DEBUG][       Thread-603435][   transport.py][1871] : server lang: <none>
2025-07-01 11:37:53,955 [DEBUG][       Thread-603435][   transport.py][1871] : kex follows: False
2025-07-01 11:37:53,955 [DEBUG][       Thread-603435][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:37:53,955 [DEBUG][       Thread-603435][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:37:53,955 [DEBUG][       Thread-603435][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:37:53,955 [DEBUG][       Thread-603435][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:37:53,955 [DEBUG][       Thread-603435][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:37:53,955 [DEBUG][       Thread-603435][   transport.py][1871] : Compression: none
2025-07-01 11:37:53,955 [DEBUG][       Thread-603435][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:37:54,014 [DEBUG][       Thread-603435][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:37:54,015 [DEBUG][       Thread-603435][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:37:54,015 [DEBUG][       Thread-603435][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:37:54,015 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:37:54,016 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:37:54,075 [DEBUG][       Thread-603435][   transport.py][1871] : userauth is OK
2025-07-01 11:37:54,075 [DEBUG][       Thread-603435][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:37:54,075 [DEBUG][       Thread-603435][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:37:54,075 [DEBUG][       Thread-603435][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:37:54,075 [DEBUG][       Thread-603435][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:37:54,094 [ INFO][       Thread-603435][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:37:54,094 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:37:54,094 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:37:55,130 [DEBUG][       Thread-603435][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:37:55,130 [DEBUG][       Thread-603435][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:37:55,179 [DEBUG][       Thread-603435][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:37:55,179 [DEBUG][       Thread-603435][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:37:55,187 [DEBUG][       Thread-603435][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:37:55,195 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:37:55,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-07-01 11:37:55,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-07-01 11:37:55,211 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:37:55,211 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:37:55,211 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:37:55,218 [DEBUG][       Thread-603435][   transport.py][1871] : EOF in transport thread
2025-07-01 11:37:55,472 [DEBUG][Thread-603437 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:38:04,491 [DEBUG][Thread-603438 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:38:05,221 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:38:05,221 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:38:05,221 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:38:05,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-07-01 11:38:05,703 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 37, 59), 9.89, 50.46, 0.0, 39.01, 10.98, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:38:05,703 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:37:59
2025-07-01 11:38:05,787 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:38:05,792 [DEBUG][       Thread-603439][   transport.py][1871] : starting thread (client mode): 0x82b2f80
2025-07-01 11:38:05,792 [DEBUG][       Thread-603439][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:38:05,815 [DEBUG][       Thread-603439][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:38:05,815 [ INFO][       Thread-603439][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:38:05,821 [DEBUG][       Thread-603439][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:38:05,821 [DEBUG][       Thread-603439][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:38:05,822 [DEBUG][       Thread-603439][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:38:05,822 [DEBUG][       Thread-603439][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:38:05,822 [DEBUG][       Thread-603439][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:38:05,822 [DEBUG][       Thread-603439][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:38:05,822 [DEBUG][       Thread-603439][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:38:05,822 [DEBUG][       Thread-603439][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:38:05,822 [DEBUG][       Thread-603439][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:38:05,822 [DEBUG][       Thread-603439][   transport.py][1871] : client lang: <none>
2025-07-01 11:38:05,822 [DEBUG][       Thread-603439][   transport.py][1871] : server lang: <none>
2025-07-01 11:38:05,822 [DEBUG][       Thread-603439][   transport.py][1871] : kex follows: False
2025-07-01 11:38:05,822 [DEBUG][       Thread-603439][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:38:05,822 [DEBUG][       Thread-603439][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:38:05,822 [DEBUG][       Thread-603439][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:38:05,822 [DEBUG][       Thread-603439][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:38:05,822 [DEBUG][       Thread-603439][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:38:05,822 [DEBUG][       Thread-603439][   transport.py][1871] : Compression: none
2025-07-01 11:38:05,822 [DEBUG][       Thread-603439][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:38:05,838 [DEBUG][       Thread-603439][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:38:05,838 [DEBUG][       Thread-603439][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:38:05,838 [DEBUG][       Thread-603439][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:38:05,839 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:38:05,839 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:38:05,840 [DEBUG][       Thread-603439][   transport.py][1871] : userauth is OK
2025-07-01 11:38:05,864 [ INFO][       Thread-603439][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:38:05,865 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:38:06,566 [DEBUG][       Thread-603439][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:38:06,566 [DEBUG][       Thread-603439][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:38:06,609 [DEBUG][       Thread-603439][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:38:06,609 [DEBUG][       Thread-603439][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:38:06,612 [DEBUG][       Thread-603439][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:38:06,624 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:38:06,624 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:38:06,626 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:38:06,628 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:38:06,634 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:38:06,636 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:38:06,636 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:38:06,637 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:38:06,637 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.400987 -999.00  +10.70  41.92     55   +2.10 1 2 2 1 1   888    0 7.82 -20.88 ----- 41.9 41.9 45.2 50.1 14.0 -22.2 13.1 -23.2 12.6 -21.6 13.5 -21.6
2025-07-01 11:38:06,637 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:38:06,637 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:38:06,637 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.400987
2025-07-01 11:38:06,638 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:38:06,638 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:38:06,639 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:38:06,639 [DEBUG][       Thread-603439][   transport.py][1871] : EOF in transport thread
2025-07-01 11:38:06,639 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:38:06,639 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:38:06,639 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:37:59', tmtdew=9.89, humidity=50.46, cloud=0.0, wind=39.01, temperature=10.98, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:37:25.277', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:38:06,723 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:38:06,736 [DEBUG][       Thread-603442][   transport.py][1871] : starting thread (client mode): 0x81a78e0
2025-07-01 11:38:06,736 [DEBUG][       Thread-603442][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:38:06,756 [DEBUG][       Thread-603442][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:38:06,756 [ INFO][       Thread-603442][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:38:06,764 [DEBUG][       Thread-603442][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:38:06,764 [DEBUG][       Thread-603442][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:38:06,764 [DEBUG][       Thread-603442][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:38:06,765 [DEBUG][       Thread-603442][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:38:06,765 [DEBUG][       Thread-603442][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:38:06,765 [DEBUG][       Thread-603442][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:38:06,765 [DEBUG][       Thread-603442][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:38:06,765 [DEBUG][       Thread-603442][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:38:06,765 [DEBUG][       Thread-603442][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:38:06,765 [DEBUG][       Thread-603442][   transport.py][1871] : client lang: <none>
2025-07-01 11:38:06,765 [DEBUG][       Thread-603442][   transport.py][1871] : server lang: <none>
2025-07-01 11:38:06,765 [DEBUG][       Thread-603442][   transport.py][1871] : kex follows: False
2025-07-01 11:38:06,765 [DEBUG][       Thread-603442][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:38:06,765 [DEBUG][       Thread-603442][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:38:06,765 [DEBUG][       Thread-603442][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:38:06,765 [DEBUG][       Thread-603442][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:38:06,765 [DEBUG][       Thread-603442][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:38:06,765 [DEBUG][       Thread-603442][   transport.py][1871] : Compression: none
2025-07-01 11:38:06,765 [DEBUG][       Thread-603442][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:38:06,830 [DEBUG][       Thread-603442][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:38:06,831 [DEBUG][       Thread-603442][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:38:06,831 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:38:06,832 [DEBUG][       Thread-603442][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:38:06,833 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:38:06,890 [DEBUG][       Thread-603442][   transport.py][1871] : userauth is OK
2025-07-01 11:38:06,890 [DEBUG][       Thread-603442][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:38:06,890 [DEBUG][       Thread-603442][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:38:06,890 [DEBUG][       Thread-603442][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:38:06,890 [DEBUG][       Thread-603442][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:38:06,911 [ INFO][       Thread-603442][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:38:06,912 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:38:06,912 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:38:07,922 [DEBUG][       Thread-603442][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:38:07,922 [DEBUG][       Thread-603442][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:38:07,972 [DEBUG][       Thread-603442][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:38:07,972 [DEBUG][       Thread-603442][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:38:07,981 [DEBUG][       Thread-603442][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:38:07,990 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:38:07,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-07-01 11:38:07,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-07-01 11:38:08,017 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:38:08,017 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:38:08,018 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:38:08,025 [DEBUG][       Thread-603442][   transport.py][1871] : EOF in transport thread
2025-07-01 11:38:09,144 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:38:09,144 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:38:13,513 [DEBUG][Thread-603444 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:38:18,026 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:38:18,026 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:38:18,026 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:38:18,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-07-01 11:38:18,520 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 37, 59), 9.89, 50.46, 0.0, 39.01, 10.98, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:38:18,520 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:37:59
2025-07-01 11:38:18,606 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:38:18,611 [DEBUG][       Thread-603445][   transport.py][1871] : starting thread (client mode): 0x81a64d0
2025-07-01 11:38:18,611 [DEBUG][       Thread-603445][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:38:18,631 [DEBUG][       Thread-603445][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:38:18,631 [ INFO][       Thread-603445][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:38:18,634 [DEBUG][       Thread-603445][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:38:18,634 [DEBUG][       Thread-603445][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:38:18,634 [DEBUG][       Thread-603445][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:38:18,634 [DEBUG][       Thread-603445][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:38:18,634 [DEBUG][       Thread-603445][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:38:18,634 [DEBUG][       Thread-603445][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:38:18,634 [DEBUG][       Thread-603445][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:38:18,634 [DEBUG][       Thread-603445][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:38:18,634 [DEBUG][       Thread-603445][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:38:18,634 [DEBUG][       Thread-603445][   transport.py][1871] : client lang: <none>
2025-07-01 11:38:18,634 [DEBUG][       Thread-603445][   transport.py][1871] : server lang: <none>
2025-07-01 11:38:18,634 [DEBUG][       Thread-603445][   transport.py][1871] : kex follows: False
2025-07-01 11:38:18,634 [DEBUG][       Thread-603445][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:38:18,635 [DEBUG][       Thread-603445][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:38:18,635 [DEBUG][       Thread-603445][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:38:18,635 [DEBUG][       Thread-603445][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:38:18,635 [DEBUG][       Thread-603445][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:38:18,635 [DEBUG][       Thread-603445][   transport.py][1871] : Compression: none
2025-07-01 11:38:18,635 [DEBUG][       Thread-603445][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:38:18,652 [DEBUG][       Thread-603445][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:38:18,652 [DEBUG][       Thread-603445][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:38:18,653 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:38:18,653 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:38:18,654 [DEBUG][       Thread-603445][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:38:18,654 [DEBUG][       Thread-603445][   transport.py][1871] : userauth is OK
2025-07-01 11:38:18,678 [ INFO][       Thread-603445][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:38:18,679 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:38:19,358 [DEBUG][       Thread-603445][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:38:19,358 [DEBUG][       Thread-603445][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:38:19,401 [DEBUG][       Thread-603445][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:38:19,401 [DEBUG][       Thread-603445][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:38:19,403 [DEBUG][       Thread-603445][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:38:19,416 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:38:19,416 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:38:19,418 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:38:19,420 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:38:19,426 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:38:19,427 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:38:19,428 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:38:19,428 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:38:19,428 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.401334 -999.00  +10.90  31.14     55   +2.30 1 2 2 1 1   888    0 7.86 -19.51 ----- 31.1 31.1 42.2 42.0 14.0 -22.1 13.1 -22.7 12.6 -21.7 13.5 -20.9
2025-07-01 11:38:19,429 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:38:19,429 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:38:19,429 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.401334
2025-07-01 11:38:19,429 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:38:19,430 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:38:19,430 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:38:19,430 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:38:19,430 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:38:19,430 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:37:59', tmtdew=9.89, humidity=50.46, cloud=0.0, wind=39.01, temperature=10.98, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:37:55.258', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:38:19,431 [DEBUG][       Thread-603445][   transport.py][1871] : EOF in transport thread
2025-07-01 11:38:19,513 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:38:19,524 [DEBUG][       Thread-603448][   transport.py][1871] : starting thread (client mode): 0x81e5ed0
2025-07-01 11:38:19,525 [DEBUG][       Thread-603448][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:38:19,540 [DEBUG][       Thread-603448][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:38:19,540 [ INFO][       Thread-603448][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:38:19,550 [DEBUG][       Thread-603448][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:38:19,550 [DEBUG][       Thread-603448][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:38:19,550 [DEBUG][       Thread-603448][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:38:19,550 [DEBUG][       Thread-603448][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:38:19,550 [DEBUG][       Thread-603448][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:38:19,550 [DEBUG][       Thread-603448][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:38:19,550 [DEBUG][       Thread-603448][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:38:19,550 [DEBUG][       Thread-603448][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:38:19,550 [DEBUG][       Thread-603448][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:38:19,551 [DEBUG][       Thread-603448][   transport.py][1871] : client lang: <none>
2025-07-01 11:38:19,551 [DEBUG][       Thread-603448][   transport.py][1871] : server lang: <none>
2025-07-01 11:38:19,551 [DEBUG][       Thread-603448][   transport.py][1871] : kex follows: False
2025-07-01 11:38:19,551 [DEBUG][       Thread-603448][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:38:19,551 [DEBUG][       Thread-603448][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:38:19,551 [DEBUG][       Thread-603448][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:38:19,551 [DEBUG][       Thread-603448][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:38:19,551 [DEBUG][       Thread-603448][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:38:19,551 [DEBUG][       Thread-603448][   transport.py][1871] : Compression: none
2025-07-01 11:38:19,551 [DEBUG][       Thread-603448][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:38:19,607 [DEBUG][       Thread-603448][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:38:19,607 [DEBUG][       Thread-603448][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:38:19,608 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:38:19,608 [DEBUG][       Thread-603448][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:38:19,609 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:38:19,679 [DEBUG][       Thread-603448][   transport.py][1871] : userauth is OK
2025-07-01 11:38:19,679 [DEBUG][       Thread-603448][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:38:19,679 [DEBUG][       Thread-603448][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:38:19,679 [DEBUG][       Thread-603448][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:38:19,679 [DEBUG][       Thread-603448][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:38:19,700 [ INFO][       Thread-603448][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:38:19,700 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:38:19,700 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:38:20,767 [DEBUG][       Thread-603448][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:38:20,767 [DEBUG][       Thread-603448][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:38:20,818 [DEBUG][       Thread-603448][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:38:20,818 [DEBUG][       Thread-603448][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:38:20,841 [DEBUG][       Thread-603448][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:38:20,852 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:38:20,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')
2025-07-01 11:38: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') -> 00000000
2025-07-01 11:38:20,877 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:38:20,877 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:38:20,877 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:38:20,885 [DEBUG][       Thread-603448][   transport.py][1871] : EOF in transport thread
2025-07-01 11:38:22,544 [DEBUG][Thread-603450 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:38:26,714 [DEBUG][Thread-603451 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:38:30,884 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:38:30,884 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:38:30,884 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:38:30,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-07-01 11:38:31,358 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 37, 59), 9.89, 50.46, 0.0, 39.01, 10.98, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:38:31,359 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:37:59
2025-07-01 11:38:31,444 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:38:31,448 [DEBUG][       Thread-603452][   transport.py][1871] : starting thread (client mode): 0x82b39a0
2025-07-01 11:38:31,448 [DEBUG][       Thread-603452][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:38:31,469 [DEBUG][       Thread-603452][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:38:31,469 [ INFO][       Thread-603452][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:38:31,470 [DEBUG][       Thread-603452][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:38:31,471 [DEBUG][       Thread-603452][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:38:31,471 [DEBUG][       Thread-603452][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:38:31,471 [DEBUG][       Thread-603452][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:38:31,471 [DEBUG][       Thread-603452][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:38:31,471 [DEBUG][       Thread-603452][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:38:31,471 [DEBUG][       Thread-603452][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:38:31,471 [DEBUG][       Thread-603452][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:38:31,471 [DEBUG][       Thread-603452][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:38:31,471 [DEBUG][       Thread-603452][   transport.py][1871] : client lang: <none>
2025-07-01 11:38:31,471 [DEBUG][       Thread-603452][   transport.py][1871] : server lang: <none>
2025-07-01 11:38:31,471 [DEBUG][       Thread-603452][   transport.py][1871] : kex follows: False
2025-07-01 11:38:31,471 [DEBUG][       Thread-603452][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:38:31,471 [DEBUG][       Thread-603452][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:38:31,471 [DEBUG][       Thread-603452][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:38:31,471 [DEBUG][       Thread-603452][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:38:31,471 [DEBUG][       Thread-603452][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:38:31,471 [DEBUG][       Thread-603452][   transport.py][1871] : Compression: none
2025-07-01 11:38:31,471 [DEBUG][       Thread-603452][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:38:31,488 [DEBUG][       Thread-603452][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:38:31,489 [DEBUG][       Thread-603452][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:38:31,489 [DEBUG][       Thread-603452][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:38:31,490 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:38:31,490 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:38:31,491 [DEBUG][       Thread-603452][   transport.py][1871] : userauth is OK
2025-07-01 11:38:31,503 [ INFO][       Thread-603452][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:38:31,504 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:38:31,563 [DEBUG][Thread-603454 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:38:32,193 [DEBUG][       Thread-603452][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:38:32,194 [DEBUG][       Thread-603452][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:38:32,236 [DEBUG][       Thread-603452][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:38:32,236 [DEBUG][       Thread-603452][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:38:32,239 [DEBUG][       Thread-603452][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:38:32,251 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:38:32,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:38:32,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:38:32,253 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:38:32,256 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:38:32,256 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:38:32,257 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:38:32,257 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:38:32,257 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.401334 -999.00  +10.90  31.14     55   +2.30 1 2 2 1 1   888    0 7.86 -19.51 ----- 31.1 31.1 42.2 42.0 14.0 -22.1 13.1 -22.7 12.6 -21.7 13.5 -20.9
2025-07-01 11:38:32,257 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:38:32,257 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:38:32,257 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.401334
2025-07-01 11:38:32,257 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:38:32,257 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:38:32,257 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:38:32,257 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:38:32,257 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:38:32,257 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:37:59', tmtdew=9.89, humidity=50.46, cloud=0.0, wind=39.01, temperature=10.98, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:37:55.258', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:38:32,258 [DEBUG][       Thread-603452][   transport.py][1871] : EOF in transport thread
2025-07-01 11:38:32,332 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:38:32,341 [DEBUG][       Thread-603456][   transport.py][1871] : starting thread (client mode): 0x81a50c0
2025-07-01 11:38:32,341 [DEBUG][       Thread-603456][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:38:32,357 [DEBUG][       Thread-603456][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:38:32,357 [ INFO][       Thread-603456][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:38:32,364 [DEBUG][       Thread-603456][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:38:32,364 [DEBUG][       Thread-603456][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:38:32,364 [DEBUG][       Thread-603456][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:38:32,364 [DEBUG][       Thread-603456][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:38:32,364 [DEBUG][       Thread-603456][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:38:32,364 [DEBUG][       Thread-603456][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:38:32,364 [DEBUG][       Thread-603456][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:38:32,364 [DEBUG][       Thread-603456][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:38:32,364 [DEBUG][       Thread-603456][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:38:32,364 [DEBUG][       Thread-603456][   transport.py][1871] : client lang: <none>
2025-07-01 11:38:32,364 [DEBUG][       Thread-603456][   transport.py][1871] : server lang: <none>
2025-07-01 11:38:32,364 [DEBUG][       Thread-603456][   transport.py][1871] : kex follows: False
2025-07-01 11:38:32,364 [DEBUG][       Thread-603456][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:38:32,364 [DEBUG][       Thread-603456][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:38:32,364 [DEBUG][       Thread-603456][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:38:32,364 [DEBUG][       Thread-603456][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:38:32,364 [DEBUG][       Thread-603456][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:38:32,364 [DEBUG][       Thread-603456][   transport.py][1871] : Compression: none
2025-07-01 11:38:32,364 [DEBUG][       Thread-603456][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:38:32,421 [DEBUG][       Thread-603456][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:38:32,421 [DEBUG][       Thread-603456][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:38:32,421 [DEBUG][       Thread-603456][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:38:32,421 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:38:32,421 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:38:32,482 [DEBUG][       Thread-603456][   transport.py][1871] : userauth is OK
2025-07-01 11:38:32,482 [DEBUG][       Thread-603456][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:38:32,482 [DEBUG][       Thread-603456][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:38:32,482 [DEBUG][       Thread-603456][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:38:32,482 [DEBUG][       Thread-603456][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:38:32,497 [ INFO][       Thread-603456][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:38:32,497 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:38:32,497 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:38:33,560 [DEBUG][       Thread-603456][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:38:33,560 [DEBUG][       Thread-603456][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:38:33,607 [DEBUG][       Thread-603456][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:38:33,607 [DEBUG][       Thread-603456][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:38:33,619 [DEBUG][       Thread-603456][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:38:33,631 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:38:33,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-07-01 11:38:33,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-07-01 11:38:33,647 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:38:33,647 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:38:33,647 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:38:33,655 [DEBUG][       Thread-603456][   transport.py][1871] : EOF in transport thread
2025-07-01 11:38:40,581 [DEBUG][Thread-603458 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:38:43,648 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:38:43,649 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:38:43,649 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:38:43,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-07-01 11:38:44,130 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 38, 31), 9.96, 50.3, 0.0, 34.19, 10.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:38:44,130 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:38:31
2025-07-01 11:38:44,215 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:38:44,219 [DEBUG][       Thread-603459][   transport.py][1871] : starting thread (client mode): 0x82b3c10
2025-07-01 11:38:44,219 [DEBUG][       Thread-603459][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:38:44,238 [DEBUG][       Thread-603459][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:38:44,239 [ INFO][       Thread-603459][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:38:44,242 [DEBUG][       Thread-603459][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:38:44,242 [DEBUG][       Thread-603459][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:38:44,242 [DEBUG][       Thread-603459][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:38:44,242 [DEBUG][       Thread-603459][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:38:44,243 [DEBUG][       Thread-603459][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:38:44,243 [DEBUG][       Thread-603459][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:38:44,243 [DEBUG][       Thread-603459][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:38:44,243 [DEBUG][       Thread-603459][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:38:44,243 [DEBUG][       Thread-603459][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:38:44,243 [DEBUG][       Thread-603459][   transport.py][1871] : client lang: <none>
2025-07-01 11:38:44,243 [DEBUG][       Thread-603459][   transport.py][1871] : server lang: <none>
2025-07-01 11:38:44,243 [DEBUG][       Thread-603459][   transport.py][1871] : kex follows: False
2025-07-01 11:38:44,243 [DEBUG][       Thread-603459][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:38:44,243 [DEBUG][       Thread-603459][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:38:44,243 [DEBUG][       Thread-603459][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:38:44,243 [DEBUG][       Thread-603459][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:38:44,243 [DEBUG][       Thread-603459][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:38:44,243 [DEBUG][       Thread-603459][   transport.py][1871] : Compression: none
2025-07-01 11:38:44,243 [DEBUG][       Thread-603459][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:38:44,259 [DEBUG][       Thread-603459][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:38:44,259 [DEBUG][       Thread-603459][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:38:44,260 [DEBUG][       Thread-603459][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:38:44,260 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:38:44,260 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:38:44,261 [DEBUG][       Thread-603459][   transport.py][1871] : userauth is OK
2025-07-01 11:38:44,274 [ INFO][       Thread-603459][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:38:44,274 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:38:44,975 [DEBUG][       Thread-603459][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:38:44,976 [DEBUG][       Thread-603459][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:38:45,017 [DEBUG][       Thread-603459][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:38:45,017 [DEBUG][       Thread-603459][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:38:45,020 [DEBUG][       Thread-603459][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:38:45,033 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:38:45,034 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:38:45,035 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:38:45,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:38:45,043 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:38:45,045 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:38:45,045 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:38:45,046 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:38:45,046 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.401334 -999.00  +10.90  31.14     55   +2.30 1 2 2 1 1   888    0 7.86 -19.51 ----- 31.1 31.1 42.2 42.0 14.0 -22.1 13.1 -22.7 12.6 -21.7 13.5 -20.9
2025-07-01 11:38:45,046 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:38:45,046 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:38:45,046 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.401334
2025-07-01 11:38:45,046 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:38:45,047 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:38:45,047 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:38:45,047 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:38:45,047 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:38:45,047 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:38:31', tmtdew=9.96, humidity=50.3, cloud=0.0, wind=34.19, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:37:55.258', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:38:45,048 [DEBUG][       Thread-603459][   transport.py][1871] : EOF in transport thread
2025-07-01 11:38:45,131 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:38:45,140 [DEBUG][       Thread-603462][   transport.py][1871] : starting thread (client mode): 0x81713f0
2025-07-01 11:38:45,140 [DEBUG][       Thread-603462][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:38:45,156 [DEBUG][       Thread-603462][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:38:45,156 [ INFO][       Thread-603462][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:38:45,164 [DEBUG][       Thread-603462][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:38:45,164 [DEBUG][       Thread-603462][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:38:45,164 [DEBUG][       Thread-603462][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:38:45,164 [DEBUG][       Thread-603462][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:38:45,164 [DEBUG][       Thread-603462][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:38:45,164 [DEBUG][       Thread-603462][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:38:45,164 [DEBUG][       Thread-603462][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:38:45,165 [DEBUG][       Thread-603462][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:38:45,165 [DEBUG][       Thread-603462][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:38:45,165 [DEBUG][       Thread-603462][   transport.py][1871] : client lang: <none>
2025-07-01 11:38:45,165 [DEBUG][       Thread-603462][   transport.py][1871] : server lang: <none>
2025-07-01 11:38:45,165 [DEBUG][       Thread-603462][   transport.py][1871] : kex follows: False
2025-07-01 11:38:45,165 [DEBUG][       Thread-603462][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:38:45,165 [DEBUG][       Thread-603462][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:38:45,165 [DEBUG][       Thread-603462][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:38:45,165 [DEBUG][       Thread-603462][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:38:45,165 [DEBUG][       Thread-603462][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:38:45,165 [DEBUG][       Thread-603462][   transport.py][1871] : Compression: none
2025-07-01 11:38:45,165 [DEBUG][       Thread-603462][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:38:45,222 [DEBUG][       Thread-603462][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:38:45,223 [DEBUG][       Thread-603462][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:38:45,224 [DEBUG][       Thread-603462][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:38:45,224 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:38:45,225 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:38:45,279 [DEBUG][       Thread-603462][   transport.py][1871] : userauth is OK
2025-07-01 11:38:45,279 [DEBUG][       Thread-603462][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:38:45,279 [DEBUG][       Thread-603462][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:38:45,279 [DEBUG][       Thread-603462][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:38:45,279 [DEBUG][       Thread-603462][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:38:45,303 [ INFO][       Thread-603462][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:38:45,303 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:38:45,304 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:38:46,354 [DEBUG][       Thread-603462][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:38:46,354 [DEBUG][       Thread-603462][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:38:46,403 [DEBUG][       Thread-603462][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:38:46,403 [DEBUG][       Thread-603462][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:38:46,416 [DEBUG][       Thread-603462][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:38:46,424 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:38:46,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-07-01 11:38:46,433 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 11:38:46,441 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:38:46,441 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:38:46,441 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:38:46,449 [DEBUG][       Thread-603462][   transport.py][1871] : EOF in transport thread
2025-07-01 11:38:49,602 [DEBUG][Thread-603464 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:38:56,451 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:38:56,452 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:38:56,452 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:38:56,455 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 11:38:56,936 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 38, 31), 9.96, 50.3, 0.0, 34.19, 10.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:38:56,936 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:38:31
2025-07-01 11:38:57,021 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:38:57,027 [DEBUG][       Thread-603465][   transport.py][1871] : starting thread (client mode): 0x82b2f20
2025-07-01 11:38:57,027 [DEBUG][       Thread-603465][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:38:57,047 [DEBUG][       Thread-603465][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:38:57,047 [ INFO][       Thread-603465][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:38:57,050 [DEBUG][       Thread-603465][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:38:57,051 [DEBUG][       Thread-603465][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:38:57,051 [DEBUG][       Thread-603465][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:38:57,051 [DEBUG][       Thread-603465][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:38:57,051 [DEBUG][       Thread-603465][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:38:57,051 [DEBUG][       Thread-603465][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:38:57,051 [DEBUG][       Thread-603465][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:38:57,051 [DEBUG][       Thread-603465][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:38:57,051 [DEBUG][       Thread-603465][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:38:57,051 [DEBUG][       Thread-603465][   transport.py][1871] : client lang: <none>
2025-07-01 11:38:57,051 [DEBUG][       Thread-603465][   transport.py][1871] : server lang: <none>
2025-07-01 11:38:57,051 [DEBUG][       Thread-603465][   transport.py][1871] : kex follows: False
2025-07-01 11:38:57,051 [DEBUG][       Thread-603465][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:38:57,051 [DEBUG][       Thread-603465][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:38:57,051 [DEBUG][       Thread-603465][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:38:57,051 [DEBUG][       Thread-603465][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:38:57,051 [DEBUG][       Thread-603465][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:38:57,051 [DEBUG][       Thread-603465][   transport.py][1871] : Compression: none
2025-07-01 11:38:57,051 [DEBUG][       Thread-603465][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:38:57,067 [DEBUG][       Thread-603465][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:38:57,067 [DEBUG][       Thread-603465][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:38:57,067 [DEBUG][       Thread-603465][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:38:57,068 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:38:57,068 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:38:57,069 [DEBUG][       Thread-603465][   transport.py][1871] : userauth is OK
2025-07-01 11:38:57,094 [ INFO][       Thread-603465][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:38:57,095 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:38:57,756 [DEBUG][       Thread-603465][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:38:57,757 [DEBUG][       Thread-603465][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:38:57,801 [DEBUG][       Thread-603465][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:38:57,801 [DEBUG][       Thread-603465][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:38:57,804 [DEBUG][       Thread-603465][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:38:57,816 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:38:57,816 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:38:57,818 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:38:57,820 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:38:57,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:38:57,827 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:38:57,827 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:38:57,828 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:38:57,828 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.401681 -999.00  +11.00  35.99     55   +2.40 1 2 2 1 1   888    0 7.94 -16.30 ----- 36.0 36.0 43.0 38.9 14.1 -22.0 13.2 -22.7 12.7 -21.5 13.6 -20.8
2025-07-01 11:38:57,828 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:38:57,828 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:38:57,828 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.401681
2025-07-01 11:38:57,829 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:38:57,829 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:38:57,829 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:38:57,829 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:38:57,829 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:38:57,830 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:38:31', tmtdew=9.96, humidity=50.3, cloud=0.0, wind=34.19, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:38:25.238', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:38:57,831 [DEBUG][       Thread-603465][   transport.py][1871] : EOF in transport thread
2025-07-01 11:38:57,913 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:38:57,923 [DEBUG][       Thread-603468][   transport.py][1871] : starting thread (client mode): 0x81e5ed0
2025-07-01 11:38:57,923 [DEBUG][       Thread-603468][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:38:57,940 [DEBUG][       Thread-603468][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:38:57,940 [ INFO][       Thread-603468][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:38:57,954 [DEBUG][       Thread-603468][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:38:57,954 [DEBUG][       Thread-603468][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:38:57,954 [DEBUG][       Thread-603468][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:38:57,954 [DEBUG][       Thread-603468][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:38:57,954 [DEBUG][       Thread-603468][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:38:57,954 [DEBUG][       Thread-603468][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:38:57,954 [DEBUG][       Thread-603468][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:38:57,954 [DEBUG][       Thread-603468][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:38:57,955 [DEBUG][       Thread-603468][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:38:57,955 [DEBUG][       Thread-603468][   transport.py][1871] : client lang: <none>
2025-07-01 11:38:57,955 [DEBUG][       Thread-603468][   transport.py][1871] : server lang: <none>
2025-07-01 11:38:57,955 [DEBUG][       Thread-603468][   transport.py][1871] : kex follows: False
2025-07-01 11:38:57,955 [DEBUG][       Thread-603468][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:38:57,955 [DEBUG][       Thread-603468][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:38:57,955 [DEBUG][       Thread-603468][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:38:57,955 [DEBUG][       Thread-603468][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:38:57,955 [DEBUG][       Thread-603468][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:38:57,955 [DEBUG][       Thread-603468][   transport.py][1871] : Compression: none
2025-07-01 11:38:57,955 [DEBUG][       Thread-603468][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:38:58,007 [DEBUG][       Thread-603468][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:38:58,007 [DEBUG][       Thread-603468][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:38:58,008 [DEBUG][       Thread-603468][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:38:58,008 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:38:58,009 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:38:58,063 [DEBUG][       Thread-603468][   transport.py][1871] : userauth is OK
2025-07-01 11:38:58,063 [DEBUG][       Thread-603468][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:38:58,063 [DEBUG][       Thread-603468][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:38:58,064 [DEBUG][       Thread-603468][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:38:58,064 [DEBUG][       Thread-603468][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:38:58,082 [ INFO][       Thread-603468][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:38:58,083 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:38:58,083 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:38:58,629 [DEBUG][Thread-603470 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:38:59,061 [DEBUG][       Thread-603468][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:38:59,061 [DEBUG][       Thread-603468][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:38:59,113 [DEBUG][       Thread-603468][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:38:59,113 [DEBUG][       Thread-603468][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:38:59,124 [DEBUG][       Thread-603468][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:38:59,133 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:38:59,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-07-01 11:38:59,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-07-01 11:38:59,157 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:38:59,157 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:38:59,158 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:38:59,166 [DEBUG][       Thread-603468][   transport.py][1871] : EOF in transport thread
2025-07-01 11:39:07,649 [DEBUG][Thread-603471 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:39:09,168 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:39:09,168 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:39:09,168 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:39:09,169 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 11:39:09,282 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:39:09,283 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:39:09,643 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 39, 3), 9.91, 50.47, 0.0, 32.61, 10.91, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:39:09,643 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:39:03
2025-07-01 11:39:09,726 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:39:09,730 [DEBUG][       Thread-603472][   transport.py][1871] : starting thread (client mode): 0x82b2170
2025-07-01 11:39:09,730 [DEBUG][       Thread-603472][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:39:09,750 [DEBUG][       Thread-603472][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:39:09,750 [ INFO][       Thread-603472][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:39:09,751 [DEBUG][       Thread-603472][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:39:09,751 [DEBUG][       Thread-603472][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:39:09,751 [DEBUG][       Thread-603472][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:39:09,751 [DEBUG][       Thread-603472][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:39:09,751 [DEBUG][       Thread-603472][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:39:09,751 [DEBUG][       Thread-603472][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:39:09,751 [DEBUG][       Thread-603472][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:39:09,751 [DEBUG][       Thread-603472][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:39:09,751 [DEBUG][       Thread-603472][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:39:09,751 [DEBUG][       Thread-603472][   transport.py][1871] : client lang: <none>
2025-07-01 11:39:09,751 [DEBUG][       Thread-603472][   transport.py][1871] : server lang: <none>
2025-07-01 11:39:09,751 [DEBUG][       Thread-603472][   transport.py][1871] : kex follows: False
2025-07-01 11:39:09,751 [DEBUG][       Thread-603472][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:39:09,751 [DEBUG][       Thread-603472][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:39:09,751 [DEBUG][       Thread-603472][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:39:09,752 [DEBUG][       Thread-603472][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:39:09,752 [DEBUG][       Thread-603472][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:39:09,752 [DEBUG][       Thread-603472][   transport.py][1871] : Compression: none
2025-07-01 11:39:09,752 [DEBUG][       Thread-603472][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:39:09,760 [DEBUG][       Thread-603472][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:39:09,760 [DEBUG][       Thread-603472][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:39:09,760 [DEBUG][       Thread-603472][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:39:09,761 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:39:09,761 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:39:09,761 [DEBUG][       Thread-603472][   transport.py][1871] : userauth is OK
2025-07-01 11:39:09,786 [ INFO][       Thread-603472][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:39:09,787 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:39:10,475 [DEBUG][       Thread-603472][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:39:10,476 [DEBUG][       Thread-603472][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:39:10,516 [DEBUG][       Thread-603472][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:39:10,516 [DEBUG][       Thread-603472][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:39:10,519 [DEBUG][       Thread-603472][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:39:10,536 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:39:10,536 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:39:10,537 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:39:10,538 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:39:10,541 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:39:10,542 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:39:10,542 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:39:10,542 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:39:10,542 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.401681 -999.00  +11.00  35.99     55   +2.40 1 2 2 1 1   888    0 7.94 -16.30 ----- 36.0 36.0 43.0 38.9 14.1 -22.0 13.2 -22.7 12.7 -21.5 13.6 -20.8
2025-07-01 11:39:10,542 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:39:10,542 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:39:10,543 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.401681
2025-07-01 11:39:10,543 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:39:10,543 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:39:10,543 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:39:10,543 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:39:10,543 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:39:10,543 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:39:03', tmtdew=9.91, humidity=50.47, cloud=0.0, wind=32.61, temperature=10.91, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:38:25.238', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:39:10,544 [DEBUG][       Thread-603472][   transport.py][1871] : EOF in transport thread
2025-07-01 11:39:10,618 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:39:10,627 [DEBUG][       Thread-603475][   transport.py][1871] : starting thread (client mode): 0x818d000
2025-07-01 11:39:10,627 [DEBUG][       Thread-603475][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:39:10,650 [DEBUG][       Thread-603475][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:39:10,650 [ INFO][       Thread-603475][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:39:10,660 [DEBUG][       Thread-603475][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:39:10,660 [DEBUG][       Thread-603475][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:39:10,660 [DEBUG][       Thread-603475][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:39:10,660 [DEBUG][       Thread-603475][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:39:10,660 [DEBUG][       Thread-603475][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:39:10,660 [DEBUG][       Thread-603475][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:39:10,660 [DEBUG][       Thread-603475][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:39:10,660 [DEBUG][       Thread-603475][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:39:10,660 [DEBUG][       Thread-603475][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:39:10,660 [DEBUG][       Thread-603475][   transport.py][1871] : client lang: <none>
2025-07-01 11:39:10,660 [DEBUG][       Thread-603475][   transport.py][1871] : server lang: <none>
2025-07-01 11:39:10,660 [DEBUG][       Thread-603475][   transport.py][1871] : kex follows: False
2025-07-01 11:39:10,660 [DEBUG][       Thread-603475][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:39:10,660 [DEBUG][       Thread-603475][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:39:10,660 [DEBUG][       Thread-603475][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:39:10,660 [DEBUG][       Thread-603475][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:39:10,660 [DEBUG][       Thread-603475][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:39:10,660 [DEBUG][       Thread-603475][   transport.py][1871] : Compression: none
2025-07-01 11:39:10,660 [DEBUG][       Thread-603475][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:39:10,717 [DEBUG][       Thread-603475][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:39:10,717 [DEBUG][       Thread-603475][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:39:10,717 [DEBUG][       Thread-603475][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:39:10,717 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:39:10,717 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:39:10,774 [DEBUG][       Thread-603475][   transport.py][1871] : userauth is OK
2025-07-01 11:39:10,774 [DEBUG][       Thread-603475][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:39:10,774 [DEBUG][       Thread-603475][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:39:10,774 [DEBUG][       Thread-603475][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:39:10,774 [DEBUG][       Thread-603475][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:39:10,791 [ INFO][       Thread-603475][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:39:10,791 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:39:10,791 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:39:11,935 [DEBUG][       Thread-603475][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:39:11,935 [DEBUG][       Thread-603475][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:39:11,983 [DEBUG][       Thread-603475][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:39:11,983 [DEBUG][       Thread-603475][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:39:11,991 [DEBUG][       Thread-603475][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:39:11,999 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:39:11,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')
2025-07-01 11:39: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-07-01 11:39:12,027 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:39:12,027 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:39:12,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:39:12,035 [DEBUG][       Thread-603475][   transport.py][1871] : EOF in transport thread
2025-07-01 11:39:16,667 [DEBUG][Thread-603477 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:39:22,037 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:39:22,038 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:39:22,038 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:39:22,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-07-01 11:39:22,518 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 39, 3), 9.91, 50.47, 0.0, 32.61, 10.91, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:39:22,518 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:39:03
2025-07-01 11:39:22,600 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:39:22,604 [DEBUG][       Thread-603478][   transport.py][1871] : starting thread (client mode): 0x8171420
2025-07-01 11:39:22,604 [DEBUG][       Thread-603478][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:39:22,617 [DEBUG][       Thread-603478][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:39:22,618 [ INFO][       Thread-603478][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:39:22,619 [DEBUG][       Thread-603478][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:39:22,619 [DEBUG][       Thread-603478][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:39:22,619 [DEBUG][       Thread-603478][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:39:22,619 [DEBUG][       Thread-603478][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:39:22,619 [DEBUG][       Thread-603478][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:39:22,619 [DEBUG][       Thread-603478][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:39:22,619 [DEBUG][       Thread-603478][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:39:22,620 [DEBUG][       Thread-603478][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:39:22,620 [DEBUG][       Thread-603478][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:39:22,620 [DEBUG][       Thread-603478][   transport.py][1871] : client lang: <none>
2025-07-01 11:39:22,620 [DEBUG][       Thread-603478][   transport.py][1871] : server lang: <none>
2025-07-01 11:39:22,620 [DEBUG][       Thread-603478][   transport.py][1871] : kex follows: False
2025-07-01 11:39:22,620 [DEBUG][       Thread-603478][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:39:22,620 [DEBUG][       Thread-603478][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:39:22,620 [DEBUG][       Thread-603478][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:39:22,620 [DEBUG][       Thread-603478][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:39:22,620 [DEBUG][       Thread-603478][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:39:22,620 [DEBUG][       Thread-603478][   transport.py][1871] : Compression: none
2025-07-01 11:39:22,620 [DEBUG][       Thread-603478][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:39:22,633 [DEBUG][       Thread-603478][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:39:22,633 [DEBUG][       Thread-603478][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:39:22,633 [DEBUG][       Thread-603478][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:39:22,634 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:39:22,634 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:39:22,634 [DEBUG][       Thread-603478][   transport.py][1871] : userauth is OK
2025-07-01 11:39:22,659 [ INFO][       Thread-603478][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:39:22,660 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:39:23,316 [DEBUG][       Thread-603478][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:39:23,317 [DEBUG][       Thread-603478][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:39:23,361 [DEBUG][       Thread-603478][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:39:23,361 [DEBUG][       Thread-603478][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:39:23,364 [DEBUG][       Thread-603478][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:39:23,377 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:39:23,378 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:39:23,379 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:39:23,381 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:39:23,387 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:39:23,389 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:39:23,390 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:39:23,390 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:39:23,391 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.402028 -999.00  +11.00  36.77     54   +2.30 1 2 2 1 1   888    0 8.09 -13.15 ----- 36.8 36.8 39.8 47.8 14.1 -23.1 13.2 -23.3 12.8 -22.4 13.6 -22.2
2025-07-01 11:39:23,391 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:39:23,391 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:39:23,391 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.402028
2025-07-01 11:39:23,391 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:39:23,392 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:39:23,392 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:39:23,392 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:39:23,392 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:39:23,392 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:39:03', tmtdew=9.91, humidity=50.47, cloud=0.0, wind=32.61, temperature=10.91, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:38:55.219', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:39:23,392 [DEBUG][       Thread-603478][   transport.py][1871] : EOF in transport thread
2025-07-01 11:39:23,476 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:39:23,492 [DEBUG][       Thread-603481][   transport.py][1871] : starting thread (client mode): 0x82b2860
2025-07-01 11:39:23,492 [DEBUG][       Thread-603481][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:39:23,523 [DEBUG][       Thread-603481][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:39:23,524 [ INFO][       Thread-603481][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:39:23,531 [DEBUG][       Thread-603481][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:39:23,532 [DEBUG][       Thread-603481][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:39:23,532 [DEBUG][       Thread-603481][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:39:23,532 [DEBUG][       Thread-603481][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:39:23,532 [DEBUG][       Thread-603481][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:39:23,532 [DEBUG][       Thread-603481][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:39:23,532 [DEBUG][       Thread-603481][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:39:23,532 [DEBUG][       Thread-603481][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:39:23,532 [DEBUG][       Thread-603481][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:39:23,532 [DEBUG][       Thread-603481][   transport.py][1871] : client lang: <none>
2025-07-01 11:39:23,532 [DEBUG][       Thread-603481][   transport.py][1871] : server lang: <none>
2025-07-01 11:39:23,532 [DEBUG][       Thread-603481][   transport.py][1871] : kex follows: False
2025-07-01 11:39:23,532 [DEBUG][       Thread-603481][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:39:23,532 [DEBUG][       Thread-603481][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:39:23,532 [DEBUG][       Thread-603481][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:39:23,533 [DEBUG][       Thread-603481][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:39:23,533 [DEBUG][       Thread-603481][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:39:23,533 [DEBUG][       Thread-603481][   transport.py][1871] : Compression: none
2025-07-01 11:39:23,533 [DEBUG][       Thread-603481][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:39:23,590 [DEBUG][       Thread-603481][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:39:23,591 [DEBUG][       Thread-603481][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:39:23,592 [DEBUG][       Thread-603481][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:39:23,592 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:39:23,593 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:39:23,660 [DEBUG][       Thread-603481][   transport.py][1871] : userauth is OK
2025-07-01 11:39:23,660 [DEBUG][       Thread-603481][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:39:23,660 [DEBUG][       Thread-603481][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:39:23,660 [DEBUG][       Thread-603481][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:39:23,660 [DEBUG][       Thread-603481][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:39:23,679 [ INFO][       Thread-603481][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:39:23,680 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:39:23,680 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:39:24,679 [DEBUG][       Thread-603481][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:39:24,679 [DEBUG][       Thread-603481][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:39:24,736 [DEBUG][       Thread-603481][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:39:24,736 [DEBUG][       Thread-603481][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:39:24,755 [DEBUG][       Thread-603481][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:39:24,773 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:39:24,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-07-01 11:39:24,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') -> 00000000
2025-07-01 11:39:24,803 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:39:24,804 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:39:24,804 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:39:24,817 [DEBUG][       Thread-603481][   transport.py][1871] : EOF in transport thread
2025-07-01 11:39:25,704 [DEBUG][Thread-603483 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:39:26,764 [DEBUG][Thread-603484 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:39:34,726 [DEBUG][Thread-603485 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:39:34,814 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:39:34,815 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:39:34,815 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:39:34,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-07-01 11:39:35,306 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 39, 3), 9.91, 50.47, 0.0, 32.61, 10.91, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:39:35,306 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:39:03
2025-07-01 11:39:35,395 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:39:35,401 [DEBUG][       Thread-603486][   transport.py][1871] : starting thread (client mode): 0x75a8700
2025-07-01 11:39:35,401 [DEBUG][       Thread-603486][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:39:35,428 [DEBUG][       Thread-603486][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:39:35,428 [ INFO][       Thread-603486][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:39:35,432 [DEBUG][       Thread-603486][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:39:35,432 [DEBUG][       Thread-603486][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:39:35,432 [DEBUG][       Thread-603486][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:39:35,432 [DEBUG][       Thread-603486][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:39:35,432 [DEBUG][       Thread-603486][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:39:35,432 [DEBUG][       Thread-603486][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:39:35,432 [DEBUG][       Thread-603486][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:39:35,432 [DEBUG][       Thread-603486][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:39:35,432 [DEBUG][       Thread-603486][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:39:35,432 [DEBUG][       Thread-603486][   transport.py][1871] : client lang: <none>
2025-07-01 11:39:35,432 [DEBUG][       Thread-603486][   transport.py][1871] : server lang: <none>
2025-07-01 11:39:35,432 [DEBUG][       Thread-603486][   transport.py][1871] : kex follows: False
2025-07-01 11:39:35,432 [DEBUG][       Thread-603486][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:39:35,432 [DEBUG][       Thread-603486][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:39:35,432 [DEBUG][       Thread-603486][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:39:35,432 [DEBUG][       Thread-603486][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:39:35,432 [DEBUG][       Thread-603486][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:39:35,432 [DEBUG][       Thread-603486][   transport.py][1871] : Compression: none
2025-07-01 11:39:35,432 [DEBUG][       Thread-603486][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:39:35,448 [DEBUG][       Thread-603486][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:39:35,449 [DEBUG][       Thread-603486][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:39:35,449 [DEBUG][       Thread-603486][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:39:35,449 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:39:35,449 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:39:35,449 [DEBUG][       Thread-603486][   transport.py][1871] : userauth is OK
2025-07-01 11:39:35,473 [ INFO][       Thread-603486][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:39:35,473 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:39:36,101 [DEBUG][       Thread-603486][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:39:36,101 [DEBUG][       Thread-603486][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:39:36,144 [DEBUG][       Thread-603486][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:39:36,144 [DEBUG][       Thread-603486][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:39:36,147 [DEBUG][       Thread-603486][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:39:36,152 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:39:36,153 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:39:36,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:39:36,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:39:36,157 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:39:36,157 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:39:36,158 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:39:36,158 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:39:36,158 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.402028 -999.00  +11.00  36.77     54   +2.30 1 2 2 1 1   888    0 8.09 -13.15 ----- 36.8 36.8 39.8 47.8 14.1 -23.1 13.2 -23.3 12.8 -22.4 13.6 -22.2
2025-07-01 11:39:36,158 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:39:36,158 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:39:36,158 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.402028
2025-07-01 11:39:36,158 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:39:36,158 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:39:36,158 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:39:36,158 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:39:36,158 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:39:36,158 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:39:03', tmtdew=9.91, humidity=50.47, cloud=0.0, wind=32.61, temperature=10.91, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:38:55.219', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:39:36,159 [DEBUG][       Thread-603486][   transport.py][1871] : EOF in transport thread
2025-07-01 11:39:36,233 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:39:36,256 [DEBUG][       Thread-603489][   transport.py][1871] : starting thread (client mode): 0x81a75e0
2025-07-01 11:39:36,256 [DEBUG][       Thread-603489][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:39:36,277 [DEBUG][       Thread-603489][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:39:36,277 [ INFO][       Thread-603489][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:39:36,285 [DEBUG][       Thread-603489][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:39:36,285 [DEBUG][       Thread-603489][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:39:36,286 [DEBUG][       Thread-603489][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:39:36,286 [DEBUG][       Thread-603489][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:39:36,286 [DEBUG][       Thread-603489][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:39:36,286 [DEBUG][       Thread-603489][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:39:36,286 [DEBUG][       Thread-603489][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:39:36,286 [DEBUG][       Thread-603489][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:39:36,286 [DEBUG][       Thread-603489][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:39:36,286 [DEBUG][       Thread-603489][   transport.py][1871] : client lang: <none>
2025-07-01 11:39:36,286 [DEBUG][       Thread-603489][   transport.py][1871] : server lang: <none>
2025-07-01 11:39:36,286 [DEBUG][       Thread-603489][   transport.py][1871] : kex follows: False
2025-07-01 11:39:36,286 [DEBUG][       Thread-603489][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:39:36,286 [DEBUG][       Thread-603489][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:39:36,286 [DEBUG][       Thread-603489][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:39:36,286 [DEBUG][       Thread-603489][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:39:36,286 [DEBUG][       Thread-603489][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:39:36,286 [DEBUG][       Thread-603489][   transport.py][1871] : Compression: none
2025-07-01 11:39:36,286 [DEBUG][       Thread-603489][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:39:36,352 [DEBUG][       Thread-603489][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:39:36,352 [DEBUG][       Thread-603489][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:39:36,352 [DEBUG][       Thread-603489][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:39:36,352 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:39:36,353 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:39:36,418 [DEBUG][       Thread-603489][   transport.py][1871] : userauth is OK
2025-07-01 11:39:36,418 [DEBUG][       Thread-603489][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:39:36,418 [DEBUG][       Thread-603489][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:39:36,418 [DEBUG][       Thread-603489][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:39:36,418 [DEBUG][       Thread-603489][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:39:36,432 [ INFO][       Thread-603489][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:39:36,432 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:39:36,432 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:39:37,422 [DEBUG][       Thread-603489][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:39:37,423 [DEBUG][       Thread-603489][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:39:37,474 [DEBUG][       Thread-603489][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:39:37,474 [DEBUG][       Thread-603489][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:39:37,494 [DEBUG][       Thread-603489][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:39:37,503 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:39:37,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')
2025-07-01 11:39:37,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-07-01 11:39:37,531 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:39:37,531 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:39:37,531 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:39:37,539 [DEBUG][       Thread-603489][   transport.py][1871] : EOF in transport thread
2025-07-01 11:39:43,747 [DEBUG][Thread-603491 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:39:47,541 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:39:47,542 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:39:47,542 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:39:47,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-07-01 11:39:48,021 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 39, 35), 9.85, 50.69, 0.0, 28.25, 10.94, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:39:48,021 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:39:35
2025-07-01 11:39:48,104 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:39:48,108 [DEBUG][       Thread-603492][   transport.py][1871] : starting thread (client mode): 0x8172980
2025-07-01 11:39:48,108 [DEBUG][       Thread-603492][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:39:48,127 [DEBUG][       Thread-603492][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:39:48,127 [ INFO][       Thread-603492][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:39:48,130 [DEBUG][       Thread-603492][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:39:48,130 [DEBUG][       Thread-603492][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:39:48,130 [DEBUG][       Thread-603492][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:39:48,130 [DEBUG][       Thread-603492][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:39:48,130 [DEBUG][       Thread-603492][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:39:48,130 [DEBUG][       Thread-603492][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:39:48,130 [DEBUG][       Thread-603492][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:39:48,130 [DEBUG][       Thread-603492][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:39:48,130 [DEBUG][       Thread-603492][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:39:48,130 [DEBUG][       Thread-603492][   transport.py][1871] : client lang: <none>
2025-07-01 11:39:48,130 [DEBUG][       Thread-603492][   transport.py][1871] : server lang: <none>
2025-07-01 11:39:48,130 [DEBUG][       Thread-603492][   transport.py][1871] : kex follows: False
2025-07-01 11:39:48,130 [DEBUG][       Thread-603492][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:39:48,130 [DEBUG][       Thread-603492][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:39:48,130 [DEBUG][       Thread-603492][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:39:48,130 [DEBUG][       Thread-603492][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:39:48,131 [DEBUG][       Thread-603492][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:39:48,131 [DEBUG][       Thread-603492][   transport.py][1871] : Compression: none
2025-07-01 11:39:48,131 [DEBUG][       Thread-603492][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:39:48,147 [DEBUG][       Thread-603492][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:39:48,147 [DEBUG][       Thread-603492][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:39:48,148 [DEBUG][       Thread-603492][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:39:48,148 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:39:48,148 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:39:48,149 [DEBUG][       Thread-603492][   transport.py][1871] : userauth is OK
2025-07-01 11:39:48,173 [ INFO][       Thread-603492][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:39:48,174 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:39:48,881 [DEBUG][       Thread-603492][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:39:48,881 [DEBUG][       Thread-603492][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:39:48,924 [DEBUG][       Thread-603492][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:39:48,924 [DEBUG][       Thread-603492][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:39:48,927 [DEBUG][       Thread-603492][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:39:48,938 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:39:48,938 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:39:48,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:39:48,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:39:48,942 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:39:48,942 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:39:48,943 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:39:48,943 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:39:48,943 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.402028 -999.00  +11.00  36.77     54   +2.30 1 2 2 1 1   888    0 8.09 -13.15 ----- 36.8 36.8 39.8 47.8 14.1 -23.1 13.2 -23.3 12.8 -22.4 13.6 -22.2
2025-07-01 11:39:48,943 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:39:48,943 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:39:48,943 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.402028
2025-07-01 11:39:48,943 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:39:48,943 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:39:48,943 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:39:48,943 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:39:48,943 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:39:48,943 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:39:35', tmtdew=9.85, humidity=50.69, cloud=0.0, wind=28.25, temperature=10.94, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:38:55.219', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:39:48,943 [DEBUG][       Thread-603492][   transport.py][1871] : EOF in transport thread
2025-07-01 11:39:49,018 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:39:52,767 [DEBUG][Thread-603495 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:40:01,793 [DEBUG][Thread-603496 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:40:09,420 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:40:09,421 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:40:10,815 [DEBUG][Thread-603497 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:40:19,837 [DEBUG][Thread-603498 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:40:26,812 [DEBUG][Thread-603499 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:40:28,856 [DEBUG][Thread-603500 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:40:37,877 [DEBUG][Thread-603501 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:40:46,903 [DEBUG][Thread-603502 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:40:55,925 [DEBUG][Thread-603503 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:41:04,946 [DEBUG][Thread-603504 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:41:09,559 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:41:09,560 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:41:13,964 [DEBUG][Thread-603505 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:41:22,990 [DEBUG][Thread-603506 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:41:26,862 [DEBUG][Thread-603507 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:41:32,013 [DEBUG][Thread-603508 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:41:41,035 [DEBUG][Thread-603509 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:41:50,055 [DEBUG][Thread-603510 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:41:58,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-07-01 11:41:59,077 [DEBUG][Thread-603511 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:42:08,100 [DEBUG][Thread-603512 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:42:08,684 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:42:08,684 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:42:08,684 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:42:08,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-07-01 11:42:09,196 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 41, 42), 9.81, 50.88, 0.0, 41.82, 10.77, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:42:09,196 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:41:42
2025-07-01 11:42:09,281 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:42:09,285 [DEBUG][       Thread-603513][   transport.py][1871] : starting thread (client mode): 0x82b2410
2025-07-01 11:42:09,286 [DEBUG][       Thread-603513][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:42:09,307 [DEBUG][       Thread-603513][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:42:09,307 [ INFO][       Thread-603513][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:42:09,310 [DEBUG][       Thread-603513][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:42:09,310 [DEBUG][       Thread-603513][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:42:09,310 [DEBUG][       Thread-603513][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:42:09,310 [DEBUG][       Thread-603513][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:42:09,310 [DEBUG][       Thread-603513][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:42:09,310 [DEBUG][       Thread-603513][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:42:09,310 [DEBUG][       Thread-603513][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:42:09,310 [DEBUG][       Thread-603513][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:42:09,310 [DEBUG][       Thread-603513][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:42:09,310 [DEBUG][       Thread-603513][   transport.py][1871] : client lang: <none>
2025-07-01 11:42:09,310 [DEBUG][       Thread-603513][   transport.py][1871] : server lang: <none>
2025-07-01 11:42:09,310 [DEBUG][       Thread-603513][   transport.py][1871] : kex follows: False
2025-07-01 11:42:09,310 [DEBUG][       Thread-603513][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:42:09,311 [DEBUG][       Thread-603513][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:42:09,311 [DEBUG][       Thread-603513][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:42:09,311 [DEBUG][       Thread-603513][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:42:09,311 [DEBUG][       Thread-603513][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:42:09,311 [DEBUG][       Thread-603513][   transport.py][1871] : Compression: none
2025-07-01 11:42:09,311 [DEBUG][       Thread-603513][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:42:09,327 [DEBUG][       Thread-603513][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:42:09,327 [DEBUG][       Thread-603513][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:42:09,337 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:42:09,337 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:42:09,337 [DEBUG][       Thread-603513][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:42:09,339 [DEBUG][       Thread-603513][   transport.py][1871] : userauth is OK
2025-07-01 11:42:09,363 [ INFO][       Thread-603513][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:42:09,363 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:42:09,699 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:42:09,700 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:42:10,026 [DEBUG][       Thread-603513][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:42:10,026 [DEBUG][       Thread-603513][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:42:10,069 [DEBUG][       Thread-603513][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:42:10,069 [DEBUG][       Thread-603513][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:42:10,073 [DEBUG][       Thread-603513][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:42:10,084 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:42:10,084 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:42:10,087 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:42:10,089 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:42:10,102 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:42:10,104 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:42:10,104 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:42:10,105 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:42:10,105 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.403764 -999.00  +10.40  41.18     55   +2.00 1 1 2 1 1   888    0 8.55 -1.40 ----- 41.2 41.2 41.8 49.6 13.7 -24.8 12.9 -24.3 12.5 -23.0 13.2 -22.8
2025-07-01 11:42:10,105 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:42:10,105 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:42:10,105 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.403764
2025-07-01 11:42:10,106 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:42:10,106 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:42:10,106 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:42:10,106 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:42:10,107 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 11:42:10,107 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:41:42', tmtdew=9.81, humidity=50.88, cloud=0.0, wind=41.82, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:41:25.210', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:42:10,108 [DEBUG][       Thread-603513][   transport.py][1871] : EOF in transport thread
2025-07-01 11:42:10,191 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:42:10,203 [DEBUG][       Thread-603516][   transport.py][1871] : starting thread (client mode): 0x818d9f0
2025-07-01 11:42:10,203 [DEBUG][       Thread-603516][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:42:10,217 [DEBUG][       Thread-603516][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:42:10,218 [ INFO][       Thread-603516][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:42:10,225 [DEBUG][       Thread-603516][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:42:10,225 [DEBUG][       Thread-603516][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:42:10,225 [DEBUG][       Thread-603516][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:42:10,225 [DEBUG][       Thread-603516][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:42:10,225 [DEBUG][       Thread-603516][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:42:10,225 [DEBUG][       Thread-603516][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:42:10,226 [DEBUG][       Thread-603516][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:42:10,226 [DEBUG][       Thread-603516][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:42:10,226 [DEBUG][       Thread-603516][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:42:10,226 [DEBUG][       Thread-603516][   transport.py][1871] : client lang: <none>
2025-07-01 11:42:10,226 [DEBUG][       Thread-603516][   transport.py][1871] : server lang: <none>
2025-07-01 11:42:10,226 [DEBUG][       Thread-603516][   transport.py][1871] : kex follows: False
2025-07-01 11:42:10,226 [DEBUG][       Thread-603516][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:42:10,226 [DEBUG][       Thread-603516][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:42:10,226 [DEBUG][       Thread-603516][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:42:10,226 [DEBUG][       Thread-603516][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:42:10,226 [DEBUG][       Thread-603516][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:42:10,226 [DEBUG][       Thread-603516][   transport.py][1871] : Compression: none
2025-07-01 11:42:10,226 [DEBUG][       Thread-603516][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:42:10,283 [DEBUG][       Thread-603516][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:42:10,284 [DEBUG][       Thread-603516][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:42:10,284 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:42:10,285 [DEBUG][       Thread-603516][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:42:10,286 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:42:10,338 [DEBUG][       Thread-603516][   transport.py][1871] : userauth is OK
2025-07-01 11:42:10,339 [DEBUG][       Thread-603516][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:42:10,339 [DEBUG][       Thread-603516][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:42:10,339 [DEBUG][       Thread-603516][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:42:10,339 [DEBUG][       Thread-603516][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:42:10,359 [ INFO][       Thread-603516][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:42:10,359 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:42:10,360 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:42:11,375 [DEBUG][       Thread-603516][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:42:11,375 [DEBUG][       Thread-603516][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:42:11,424 [DEBUG][       Thread-603516][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:42:11,424 [DEBUG][       Thread-603516][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:42:11,434 [DEBUG][       Thread-603516][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:42:11,443 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:42:11,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-07-01 11:42:11,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-07-01 11:42:11,461 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:42:11,462 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:42:11,462 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:42:11,470 [DEBUG][       Thread-603516][   transport.py][1871] : EOF in transport thread
2025-07-01 11:42:17,121 [DEBUG][Thread-603518 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:42:21,473 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:42:21,473 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:42:21,473 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:42:21,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-07-01 11:42:21,992 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 42, 14), 9.78, 51.01, 0.0, 32.96, 10.77, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:42:21,992 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:42:14
2025-07-01 11:42:22,083 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:42:22,087 [DEBUG][       Thread-603519][   transport.py][1871] : starting thread (client mode): 0x81a7f10
2025-07-01 11:42:22,087 [DEBUG][       Thread-603519][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:42:22,112 [DEBUG][       Thread-603519][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:42:22,112 [ INFO][       Thread-603519][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:42:22,115 [DEBUG][       Thread-603519][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:42:22,115 [DEBUG][       Thread-603519][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:42:22,115 [DEBUG][       Thread-603519][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:42:22,115 [DEBUG][       Thread-603519][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:42:22,116 [DEBUG][       Thread-603519][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:42:22,116 [DEBUG][       Thread-603519][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:42:22,116 [DEBUG][       Thread-603519][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:42:22,116 [DEBUG][       Thread-603519][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:42:22,116 [DEBUG][       Thread-603519][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:42:22,116 [DEBUG][       Thread-603519][   transport.py][1871] : client lang: <none>
2025-07-01 11:42:22,116 [DEBUG][       Thread-603519][   transport.py][1871] : server lang: <none>
2025-07-01 11:42:22,116 [DEBUG][       Thread-603519][   transport.py][1871] : kex follows: False
2025-07-01 11:42:22,116 [DEBUG][       Thread-603519][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:42:22,116 [DEBUG][       Thread-603519][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:42:22,116 [DEBUG][       Thread-603519][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:42:22,116 [DEBUG][       Thread-603519][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:42:22,116 [DEBUG][       Thread-603519][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:42:22,116 [DEBUG][       Thread-603519][   transport.py][1871] : Compression: none
2025-07-01 11:42:22,116 [DEBUG][       Thread-603519][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:42:22,129 [DEBUG][       Thread-603519][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:42:22,129 [DEBUG][       Thread-603519][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:42:22,129 [DEBUG][       Thread-603519][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:42:22,129 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:42:22,129 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:42:22,130 [DEBUG][       Thread-603519][   transport.py][1871] : userauth is OK
2025-07-01 11:42:22,142 [ INFO][       Thread-603519][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:42:22,142 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:42:22,788 [DEBUG][       Thread-603519][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:42:22,788 [DEBUG][       Thread-603519][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:42:22,832 [DEBUG][       Thread-603519][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:42:22,833 [DEBUG][       Thread-603519][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:42:22,835 [DEBUG][       Thread-603519][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:42:22,848 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:42:22,848 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:42:22,849 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:42:22,849 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:42:22,852 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:42:22,853 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:42:22,853 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:42:22,854 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:42:22,854 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.404111 -999.00  +10.50  40.08     56   +2.10 1 1 2 1 1   888    0 8.33 -0.50 ----- 40.1 40.1 23.0 43.5 13.6 -24.0 12.8 -24.8 12.4 -22.8 13.1 -22.6
2025-07-01 11:42:22,854 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:42:22,854 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:42:22,854 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.404111
2025-07-01 11:42:22,854 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:42:22,854 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:42:22,854 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:42:22,854 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:42:22,854 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 11:42:22,854 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:42:14', tmtdew=9.78, humidity=51.01, cloud=0.0, wind=32.96, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:41:55.190', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:42:22,855 [DEBUG][       Thread-603519][   transport.py][1871] : EOF in transport thread
2025-07-01 11:42:22,928 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:42:26,163 [DEBUG][Thread-603522 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:42:26,916 [DEBUG][Thread-603523 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:42:35,188 [DEBUG][Thread-603524 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:42:44,213 [DEBUG][Thread-603525 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:42:53,236 [DEBUG][Thread-603526 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:43:02,256 [DEBUG][Thread-603527 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:43:09,839 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:43:09,840 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:43:11,276 [DEBUG][Thread-603528 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:43:20,298 [DEBUG][Thread-603529 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:43:26,967 [DEBUG][Thread-603530 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:43:29,322 [DEBUG][Thread-603531 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:43:38,343 [DEBUG][Thread-603532 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:43:47,363 [DEBUG][Thread-603533 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:43:56,386 [DEBUG][Thread-603534 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:44:05,407 [DEBUG][Thread-603535 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:44:09,978 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:44:09,980 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:44:14,430 [DEBUG][Thread-603536 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:44:23,450 [DEBUG][Thread-603537 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:44:27,017 [DEBUG][Thread-603538 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:44:32,276 [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-07-01 11:44:32,472 [DEBUG][Thread-603539 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:44:41,495 [DEBUG][Thread-603540 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:44:42,286 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:44:42,287 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:44:42,287 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:44:42,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-07-01 11:44:42,802 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 44, 21), 9.75, 50.97, 0.0, 30.28, 10.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:44:42,802 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:44:21
2025-07-01 11:44:42,887 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:44:42,891 [DEBUG][       Thread-603541][   transport.py][1871] : starting thread (client mode): 0x75a9480
2025-07-01 11:44:42,891 [DEBUG][       Thread-603541][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:44:42,910 [DEBUG][       Thread-603541][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:44:42,910 [ INFO][       Thread-603541][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:44:42,913 [DEBUG][       Thread-603541][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:44:42,913 [DEBUG][       Thread-603541][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:44:42,913 [DEBUG][       Thread-603541][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:44:42,913 [DEBUG][       Thread-603541][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:44:42,913 [DEBUG][       Thread-603541][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:44:42,913 [DEBUG][       Thread-603541][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:44:42,913 [DEBUG][       Thread-603541][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:44:42,913 [DEBUG][       Thread-603541][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:44:42,913 [DEBUG][       Thread-603541][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:44:42,913 [DEBUG][       Thread-603541][   transport.py][1871] : client lang: <none>
2025-07-01 11:44:42,913 [DEBUG][       Thread-603541][   transport.py][1871] : server lang: <none>
2025-07-01 11:44:42,913 [DEBUG][       Thread-603541][   transport.py][1871] : kex follows: False
2025-07-01 11:44:42,913 [DEBUG][       Thread-603541][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:44:42,913 [DEBUG][       Thread-603541][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:44:42,913 [DEBUG][       Thread-603541][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:44:42,913 [DEBUG][       Thread-603541][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:44:42,913 [DEBUG][       Thread-603541][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:44:42,913 [DEBUG][       Thread-603541][   transport.py][1871] : Compression: none
2025-07-01 11:44:42,913 [DEBUG][       Thread-603541][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:44:42,929 [DEBUG][       Thread-603541][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:44:42,929 [DEBUG][       Thread-603541][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:44:42,930 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:44:42,930 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:44:42,931 [DEBUG][       Thread-603541][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:44:42,931 [DEBUG][       Thread-603541][   transport.py][1871] : userauth is OK
2025-07-01 11:44:42,956 [ INFO][       Thread-603541][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:44:42,957 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:44:43,624 [DEBUG][       Thread-603541][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:44:43,624 [DEBUG][       Thread-603541][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:44:43,665 [DEBUG][       Thread-603541][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:44:43,665 [DEBUG][       Thread-603541][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:44:43,668 [DEBUG][       Thread-603541][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:44:43,680 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:44:43,680 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:44:43,682 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:44:43,684 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:44:43,689 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:44:43,691 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:44:43,691 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:44:43,692 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:44:43,692 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.405847 -999.00  +10.60  32.30     56   +2.30 1 2 2 1 1   888    0 8.40 1.21 ----- 32.3 32.3 48.8 37.0 13.6 -22.1 12.9 -22.7 12.4 -22.5 13.2 -20.9
2025-07-01 11:44:43,692 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:44:43,692 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:44:43,692 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.405847
2025-07-01 11:44:43,693 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:44:43,693 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:44:43,694 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:44:43,694 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:44:43,694 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:44:43,694 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:44:21', tmtdew=9.75, humidity=50.97, cloud=0.0, wind=30.28, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:44:25.181', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:44:43,695 [DEBUG][       Thread-603541][   transport.py][1871] : EOF in transport thread
2025-07-01 11:44:43,777 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:44:43,790 [DEBUG][       Thread-603544][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 11:44:43,790 [DEBUG][       Thread-603544][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:44:43,805 [DEBUG][       Thread-603544][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:44:43,805 [ INFO][       Thread-603544][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:44:43,813 [DEBUG][       Thread-603544][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:44:43,813 [DEBUG][       Thread-603544][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:44:43,813 [DEBUG][       Thread-603544][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:44:43,813 [DEBUG][       Thread-603544][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:44:43,813 [DEBUG][       Thread-603544][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:44:43,813 [DEBUG][       Thread-603544][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:44:43,813 [DEBUG][       Thread-603544][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:44:43,813 [DEBUG][       Thread-603544][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:44:43,813 [DEBUG][       Thread-603544][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:44:43,813 [DEBUG][       Thread-603544][   transport.py][1871] : client lang: <none>
2025-07-01 11:44:43,813 [DEBUG][       Thread-603544][   transport.py][1871] : server lang: <none>
2025-07-01 11:44:43,813 [DEBUG][       Thread-603544][   transport.py][1871] : kex follows: False
2025-07-01 11:44:43,813 [DEBUG][       Thread-603544][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:44:43,814 [DEBUG][       Thread-603544][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:44:43,814 [DEBUG][       Thread-603544][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:44:43,814 [DEBUG][       Thread-603544][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:44:43,814 [DEBUG][       Thread-603544][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:44:43,814 [DEBUG][       Thread-603544][   transport.py][1871] : Compression: none
2025-07-01 11:44:43,814 [DEBUG][       Thread-603544][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:44:43,870 [DEBUG][       Thread-603544][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:44:43,870 [DEBUG][       Thread-603544][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:44:43,870 [DEBUG][       Thread-603544][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:44:43,870 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:44:43,870 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:44:43,926 [DEBUG][       Thread-603544][   transport.py][1871] : userauth is OK
2025-07-01 11:44:43,926 [DEBUG][       Thread-603544][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:44:43,926 [DEBUG][       Thread-603544][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:44:43,926 [DEBUG][       Thread-603544][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:44:43,926 [DEBUG][       Thread-603544][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:44:43,945 [ INFO][       Thread-603544][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:44:43,945 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:44:43,946 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:44:44,936 [DEBUG][       Thread-603544][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:44:44,936 [DEBUG][       Thread-603544][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:44:44,984 [DEBUG][       Thread-603544][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:44:44,984 [DEBUG][       Thread-603544][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:44:44,993 [DEBUG][       Thread-603544][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:44:45,002 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:44:45,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-07-01 11:44: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-07-01 11:44:45,019 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:44:45,020 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:44:45,020 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:44:45,028 [DEBUG][       Thread-603544][   transport.py][1871] : EOF in transport thread
2025-07-01 11:44:50,520 [DEBUG][Thread-603546 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:44:55,030 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:44:55,031 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:44:55,031 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:44: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-07-01 11:44:55,543 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 44, 52), 9.76, 50.96, 0.0, 31.14, 10.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:44:55,543 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:44:52
2025-07-01 11:44:55,629 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:44:55,634 [DEBUG][       Thread-603547][   transport.py][1871] : starting thread (client mode): 0x8106d70
2025-07-01 11:44:55,634 [DEBUG][       Thread-603547][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:44:55,655 [DEBUG][       Thread-603547][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:44:55,655 [ INFO][       Thread-603547][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:44:55,658 [DEBUG][       Thread-603547][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:44:55,658 [DEBUG][       Thread-603547][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:44:55,658 [DEBUG][       Thread-603547][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:44:55,658 [DEBUG][       Thread-603547][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:44:55,659 [DEBUG][       Thread-603547][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:44:55,659 [DEBUG][       Thread-603547][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:44:55,659 [DEBUG][       Thread-603547][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:44:55,659 [DEBUG][       Thread-603547][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:44:55,659 [DEBUG][       Thread-603547][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:44:55,659 [DEBUG][       Thread-603547][   transport.py][1871] : client lang: <none>
2025-07-01 11:44:55,659 [DEBUG][       Thread-603547][   transport.py][1871] : server lang: <none>
2025-07-01 11:44:55,659 [DEBUG][       Thread-603547][   transport.py][1871] : kex follows: False
2025-07-01 11:44:55,659 [DEBUG][       Thread-603547][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:44:55,659 [DEBUG][       Thread-603547][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:44:55,659 [DEBUG][       Thread-603547][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:44:55,659 [DEBUG][       Thread-603547][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:44:55,659 [DEBUG][       Thread-603547][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:44:55,659 [DEBUG][       Thread-603547][   transport.py][1871] : Compression: none
2025-07-01 11:44:55,659 [DEBUG][       Thread-603547][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:44:55,677 [DEBUG][       Thread-603547][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:44:55,678 [DEBUG][       Thread-603547][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:44:55,678 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:44:55,678 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:44:55,679 [DEBUG][       Thread-603547][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:44:55,680 [DEBUG][       Thread-603547][   transport.py][1871] : userauth is OK
2025-07-01 11:44:55,704 [ INFO][       Thread-603547][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:44:55,704 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:44:56,344 [DEBUG][       Thread-603547][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:44:56,345 [DEBUG][       Thread-603547][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:44:56,389 [DEBUG][       Thread-603547][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:44:56,389 [DEBUG][       Thread-603547][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:44:56,393 [DEBUG][       Thread-603547][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:44:56,405 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:44:56,406 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:44:56,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:44:56,409 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:44:56,414 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:44:56,416 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:44:56,416 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:44:56,417 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:44:56,417 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.405847 -999.00  +10.60  32.30     56   +2.30 1 2 2 1 1   888    0 8.40 1.21 ----- 32.3 32.3 48.8 37.0 13.6 -22.1 12.9 -22.7 12.4 -22.5 13.2 -20.9
2025-07-01 11:44:56,417 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:44:56,417 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:44:56,417 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.405847
2025-07-01 11:44:56,418 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:44:56,418 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:44:56,418 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:44:56,419 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:44:56,419 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:44:56,419 [DEBUG][       Thread-603547][   transport.py][1871] : EOF in transport thread
2025-07-01 11:44:56,419 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:44:52', tmtdew=9.76, humidity=50.96, cloud=0.0, wind=31.14, temperature=10.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:44:25.181', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:44:56,502 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:44:56,512 [DEBUG][       Thread-603550][   transport.py][1871] : starting thread (client mode): 0x81e7b20
2025-07-01 11:44:56,512 [DEBUG][       Thread-603550][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:44:56,529 [DEBUG][       Thread-603550][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:44:56,529 [ INFO][       Thread-603550][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:44:56,536 [DEBUG][       Thread-603550][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:44:56,537 [DEBUG][       Thread-603550][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:44:56,537 [DEBUG][       Thread-603550][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:44:56,537 [DEBUG][       Thread-603550][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:44:56,537 [DEBUG][       Thread-603550][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:44:56,537 [DEBUG][       Thread-603550][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:44:56,537 [DEBUG][       Thread-603550][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:44:56,537 [DEBUG][       Thread-603550][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:44:56,537 [DEBUG][       Thread-603550][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:44:56,537 [DEBUG][       Thread-603550][   transport.py][1871] : client lang: <none>
2025-07-01 11:44:56,537 [DEBUG][       Thread-603550][   transport.py][1871] : server lang: <none>
2025-07-01 11:44:56,537 [DEBUG][       Thread-603550][   transport.py][1871] : kex follows: False
2025-07-01 11:44:56,537 [DEBUG][       Thread-603550][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:44:56,537 [DEBUG][       Thread-603550][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:44:56,537 [DEBUG][       Thread-603550][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:44:56,537 [DEBUG][       Thread-603550][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:44:56,537 [DEBUG][       Thread-603550][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:44:56,537 [DEBUG][       Thread-603550][   transport.py][1871] : Compression: none
2025-07-01 11:44:56,537 [DEBUG][       Thread-603550][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:44:56,598 [DEBUG][       Thread-603550][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:44:56,599 [DEBUG][       Thread-603550][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:44:56,600 [DEBUG][       Thread-603550][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:44:56,600 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:44:56,601 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:44:56,655 [DEBUG][       Thread-603550][   transport.py][1871] : userauth is OK
2025-07-01 11:44:56,655 [DEBUG][       Thread-603550][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:44:56,655 [DEBUG][       Thread-603550][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:44:56,655 [DEBUG][       Thread-603550][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:44:56,655 [DEBUG][       Thread-603550][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:44:56,674 [ INFO][       Thread-603550][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:44:56,675 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:44:56,675 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:44:57,734 [DEBUG][       Thread-603550][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:44:57,735 [DEBUG][       Thread-603550][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:44:57,784 [DEBUG][       Thread-603550][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:44:57,784 [DEBUG][       Thread-603550][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:44:57,793 [DEBUG][       Thread-603550][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:44:57,802 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:44:57,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-07-01 11:44: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') -> 00000000
2025-07-01 11:44:57,819 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:44:57,820 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:44:57,820 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:44:57,828 [DEBUG][       Thread-603550][   transport.py][1871] : EOF in transport thread
2025-07-01 11:44:59,549 [DEBUG][Thread-603552 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:45:07,825 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:45:07,826 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:45:07,826 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:45:07,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-07-01 11:45:08,324 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 44, 52), 9.76, 50.96, 0.0, 31.14, 10.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:45:08,324 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:44:52
2025-07-01 11:45:08,410 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:45:08,414 [DEBUG][       Thread-603553][   transport.py][1871] : starting thread (client mode): 0x75a8250
2025-07-01 11:45:08,414 [DEBUG][       Thread-603553][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:45:08,437 [DEBUG][       Thread-603553][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:45:08,437 [ INFO][       Thread-603553][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:45:08,439 [DEBUG][       Thread-603553][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:45:08,439 [DEBUG][       Thread-603553][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:45:08,439 [DEBUG][       Thread-603553][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:45:08,439 [DEBUG][       Thread-603553][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:45:08,439 [DEBUG][       Thread-603553][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:45:08,439 [DEBUG][       Thread-603553][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:45:08,440 [DEBUG][       Thread-603553][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:45:08,440 [DEBUG][       Thread-603553][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:45:08,440 [DEBUG][       Thread-603553][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:45:08,440 [DEBUG][       Thread-603553][   transport.py][1871] : client lang: <none>
2025-07-01 11:45:08,440 [DEBUG][       Thread-603553][   transport.py][1871] : server lang: <none>
2025-07-01 11:45:08,440 [DEBUG][       Thread-603553][   transport.py][1871] : kex follows: False
2025-07-01 11:45:08,440 [DEBUG][       Thread-603553][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:45:08,440 [DEBUG][       Thread-603553][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:45:08,440 [DEBUG][       Thread-603553][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:45:08,440 [DEBUG][       Thread-603553][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:45:08,440 [DEBUG][       Thread-603553][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:45:08,440 [DEBUG][       Thread-603553][   transport.py][1871] : Compression: none
2025-07-01 11:45:08,440 [DEBUG][       Thread-603553][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:45:08,455 [DEBUG][       Thread-603553][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:45:08,455 [DEBUG][       Thread-603553][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:45:08,455 [DEBUG][       Thread-603553][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:45:08,455 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:45:08,455 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:45:08,455 [DEBUG][       Thread-603553][   transport.py][1871] : userauth is OK
2025-07-01 11:45:08,479 [ INFO][       Thread-603553][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:45:08,479 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:45:08,581 [DEBUG][Thread-603555 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:45:09,139 [DEBUG][       Thread-603553][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:45:09,139 [DEBUG][       Thread-603553][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:45:09,184 [DEBUG][       Thread-603553][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:45:09,185 [DEBUG][       Thread-603553][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:45:09,188 [DEBUG][       Thread-603553][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:45:09,202 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:45:09,202 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:45:09,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:45:09,205 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:45:09,210 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:45:09,212 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:45:09,212 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:45:09,212 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:45:09,213 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.406194 -999.00  +10.80  35.32     56   +2.30 1 2 2 1 1   888    0 8.51 1.26 ----- 35.3 35.3 27.6 49.7 13.7 -22.3 12.9 -23.4 12.6 -21.8 13.3 -20.8
2025-07-01 11:45:09,213 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:45:09,213 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:45:09,213 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.406194
2025-07-01 11:45:09,213 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:45:09,214 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:45:09,214 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:45:09,214 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:45:09,214 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:45:09,214 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:44:52', tmtdew=9.76, humidity=50.96, cloud=0.0, wind=31.14, temperature=10.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:44:55.162', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:45:09,215 [DEBUG][       Thread-603553][   transport.py][1871] : EOF in transport thread
2025-07-01 11:45:09,298 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:45:09,309 [DEBUG][       Thread-603557][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 11:45:09,310 [DEBUG][       Thread-603557][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:45:09,324 [DEBUG][       Thread-603557][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:45:09,324 [ INFO][       Thread-603557][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:45:09,331 [DEBUG][       Thread-603557][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:45:09,332 [DEBUG][       Thread-603557][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:45:09,332 [DEBUG][       Thread-603557][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:45:09,332 [DEBUG][       Thread-603557][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:45:09,332 [DEBUG][       Thread-603557][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:45:09,332 [DEBUG][       Thread-603557][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:45:09,332 [DEBUG][       Thread-603557][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:45:09,332 [DEBUG][       Thread-603557][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:45:09,332 [DEBUG][       Thread-603557][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:45:09,332 [DEBUG][       Thread-603557][   transport.py][1871] : client lang: <none>
2025-07-01 11:45:09,332 [DEBUG][       Thread-603557][   transport.py][1871] : server lang: <none>
2025-07-01 11:45:09,332 [DEBUG][       Thread-603557][   transport.py][1871] : kex follows: False
2025-07-01 11:45:09,332 [DEBUG][       Thread-603557][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:45:09,332 [DEBUG][       Thread-603557][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:45:09,332 [DEBUG][       Thread-603557][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:45:09,332 [DEBUG][       Thread-603557][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:45:09,333 [DEBUG][       Thread-603557][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:45:09,333 [DEBUG][       Thread-603557][   transport.py][1871] : Compression: none
2025-07-01 11:45:09,333 [DEBUG][       Thread-603557][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:45:09,389 [DEBUG][       Thread-603557][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:45:09,389 [DEBUG][       Thread-603557][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:45:09,389 [DEBUG][       Thread-603557][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:45:09,389 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:45:09,389 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:45:09,446 [DEBUG][       Thread-603557][   transport.py][1871] : userauth is OK
2025-07-01 11:45:09,446 [DEBUG][       Thread-603557][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:45:09,446 [DEBUG][       Thread-603557][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:45:09,446 [DEBUG][       Thread-603557][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:45:09,446 [DEBUG][       Thread-603557][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:45:09,460 [ INFO][       Thread-603557][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:45:09,460 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:45:09,460 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:45:10,118 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:45:10,119 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:45:10,468 [DEBUG][       Thread-603557][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:45:10,468 [DEBUG][       Thread-603557][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:45:10,516 [DEBUG][       Thread-603557][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:45:10,516 [DEBUG][       Thread-603557][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:45:10,525 [DEBUG][       Thread-603557][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:45:10,534 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:45:10,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-07-01 11:45:10,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-07-01 11:45:10,552 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:45:10,552 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:45:10,553 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:45:10,561 [DEBUG][       Thread-603557][   transport.py][1871] : EOF in transport thread
2025-07-01 11:45:17,602 [DEBUG][Thread-603559 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:45:20,563 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:45:20,563 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:45:20,563 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:45:20,566 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 11:45:21,058 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 44, 52), 9.76, 50.96, 0.0, 31.14, 10.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:45:21,058 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:44:52
2025-07-01 11:45:21,143 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:45:21,147 [DEBUG][       Thread-603560][   transport.py][1871] : starting thread (client mode): 0x81729b0
2025-07-01 11:45:21,147 [DEBUG][       Thread-603560][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:45:21,169 [DEBUG][       Thread-603560][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:45:21,169 [ INFO][       Thread-603560][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:45:21,172 [DEBUG][       Thread-603560][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:45:21,172 [DEBUG][       Thread-603560][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:45:21,172 [DEBUG][       Thread-603560][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:45:21,172 [DEBUG][       Thread-603560][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:45:21,172 [DEBUG][       Thread-603560][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:45:21,172 [DEBUG][       Thread-603560][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:45:21,172 [DEBUG][       Thread-603560][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:45:21,172 [DEBUG][       Thread-603560][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:45:21,172 [DEBUG][       Thread-603560][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:45:21,172 [DEBUG][       Thread-603560][   transport.py][1871] : client lang: <none>
2025-07-01 11:45:21,172 [DEBUG][       Thread-603560][   transport.py][1871] : server lang: <none>
2025-07-01 11:45:21,172 [DEBUG][       Thread-603560][   transport.py][1871] : kex follows: False
2025-07-01 11:45:21,172 [DEBUG][       Thread-603560][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:45:21,172 [DEBUG][       Thread-603560][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:45:21,172 [DEBUG][       Thread-603560][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:45:21,172 [DEBUG][       Thread-603560][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:45:21,172 [DEBUG][       Thread-603560][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:45:21,172 [DEBUG][       Thread-603560][   transport.py][1871] : Compression: none
2025-07-01 11:45:21,172 [DEBUG][       Thread-603560][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:45:21,181 [DEBUG][       Thread-603560][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:45:21,181 [DEBUG][       Thread-603560][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:45:21,181 [DEBUG][       Thread-603560][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:45:21,182 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:45:21,182 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:45:21,183 [DEBUG][       Thread-603560][   transport.py][1871] : userauth is OK
2025-07-01 11:45:21,195 [ INFO][       Thread-603560][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:45:21,196 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:45:21,861 [DEBUG][       Thread-603560][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:45:21,861 [DEBUG][       Thread-603560][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:45:21,904 [DEBUG][       Thread-603560][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:45:21,904 [DEBUG][       Thread-603560][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:45:21,907 [DEBUG][       Thread-603560][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:45:21,919 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:45:21,919 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:45:21,920 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:45:21,921 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:45:21,923 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:45:21,923 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:45:21,923 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:45:21,924 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:45:21,924 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.406194 -999.00  +10.80  35.32     56   +2.30 1 2 2 1 1   888    0 8.51 1.26 ----- 35.3 35.3 27.6 49.7 13.7 -22.3 12.9 -23.4 12.6 -21.8 13.3 -20.8
2025-07-01 11:45:21,924 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:45:21,924 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:45:21,924 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.406194
2025-07-01 11:45:21,924 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:45:21,924 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:45:21,924 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:45:21,924 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:45:21,924 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:45:21,924 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:44:52', tmtdew=9.76, humidity=50.96, cloud=0.0, wind=31.14, temperature=10.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:44:55.162', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:45:21,924 [DEBUG][       Thread-603560][   transport.py][1871] : EOF in transport thread
2025-07-01 11:45:21,995 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:45:22,004 [DEBUG][       Thread-603563][   transport.py][1871] : starting thread (client mode): 0x82b17e0
2025-07-01 11:45:22,004 [DEBUG][       Thread-603563][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:45:22,019 [DEBUG][       Thread-603563][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:45:22,019 [ INFO][       Thread-603563][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:45:22,027 [DEBUG][       Thread-603563][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:45:22,027 [DEBUG][       Thread-603563][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:45:22,027 [DEBUG][       Thread-603563][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:45:22,027 [DEBUG][       Thread-603563][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:45:22,027 [DEBUG][       Thread-603563][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:45:22,027 [DEBUG][       Thread-603563][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:45:22,027 [DEBUG][       Thread-603563][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:45:22,027 [DEBUG][       Thread-603563][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:45:22,027 [DEBUG][       Thread-603563][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:45:22,027 [DEBUG][       Thread-603563][   transport.py][1871] : client lang: <none>
2025-07-01 11:45:22,027 [DEBUG][       Thread-603563][   transport.py][1871] : server lang: <none>
2025-07-01 11:45:22,027 [DEBUG][       Thread-603563][   transport.py][1871] : kex follows: False
2025-07-01 11:45:22,027 [DEBUG][       Thread-603563][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:45:22,027 [DEBUG][       Thread-603563][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:45:22,027 [DEBUG][       Thread-603563][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:45:22,027 [DEBUG][       Thread-603563][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:45:22,028 [DEBUG][       Thread-603563][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:45:22,028 [DEBUG][       Thread-603563][   transport.py][1871] : Compression: none
2025-07-01 11:45:22,028 [DEBUG][       Thread-603563][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:45:22,087 [DEBUG][       Thread-603563][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:45:22,088 [DEBUG][       Thread-603563][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:45:22,089 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:45:22,089 [DEBUG][       Thread-603563][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:45:22,090 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:45:22,146 [DEBUG][       Thread-603563][   transport.py][1871] : userauth is OK
2025-07-01 11:45:22,147 [DEBUG][       Thread-603563][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:45:22,147 [DEBUG][       Thread-603563][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:45:22,147 [DEBUG][       Thread-603563][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:45:22,147 [DEBUG][       Thread-603563][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:45:22,166 [ INFO][       Thread-603563][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:45:22,166 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:45:22,167 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:45:23,182 [DEBUG][       Thread-603563][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:45:23,182 [DEBUG][       Thread-603563][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:45:23,232 [DEBUG][       Thread-603563][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:45:23,232 [DEBUG][       Thread-603563][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:45:23,241 [DEBUG][       Thread-603563][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:45:23,250 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:45:23,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-07-01 11:45:23,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-07-01 11:45:23,269 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:45:23,269 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:45:23,269 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:45:23,278 [DEBUG][       Thread-603563][   transport.py][1871] : EOF in transport thread
2025-07-01 11:45:26,624 [DEBUG][Thread-603565 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:45:27,069 [DEBUG][Thread-603566 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:45:33,280 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:45:33,280 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:45:33,280 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:45:33,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-07-01 11:45:33,773 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 45, 24), 9.76, 50.95, 0.0, 28.72, 10.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:45:33,773 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:45:24
2025-07-01 11:45:33,858 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:45:33,863 [DEBUG][       Thread-603567][   transport.py][1871] : starting thread (client mode): 0x82b1db0
2025-07-01 11:45:33,863 [DEBUG][       Thread-603567][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:45:33,884 [DEBUG][       Thread-603567][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:45:33,884 [ INFO][       Thread-603567][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:45:33,887 [DEBUG][       Thread-603567][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:45:33,887 [DEBUG][       Thread-603567][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:45:33,887 [DEBUG][       Thread-603567][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:45:33,887 [DEBUG][       Thread-603567][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:45:33,887 [DEBUG][       Thread-603567][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:45:33,888 [DEBUG][       Thread-603567][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:45:33,888 [DEBUG][       Thread-603567][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:45:33,888 [DEBUG][       Thread-603567][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:45:33,888 [DEBUG][       Thread-603567][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:45:33,888 [DEBUG][       Thread-603567][   transport.py][1871] : client lang: <none>
2025-07-01 11:45:33,888 [DEBUG][       Thread-603567][   transport.py][1871] : server lang: <none>
2025-07-01 11:45:33,888 [DEBUG][       Thread-603567][   transport.py][1871] : kex follows: False
2025-07-01 11:45:33,888 [DEBUG][       Thread-603567][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:45:33,888 [DEBUG][       Thread-603567][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:45:33,888 [DEBUG][       Thread-603567][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:45:33,888 [DEBUG][       Thread-603567][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:45:33,888 [DEBUG][       Thread-603567][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:45:33,888 [DEBUG][       Thread-603567][   transport.py][1871] : Compression: none
2025-07-01 11:45:33,888 [DEBUG][       Thread-603567][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:45:33,904 [DEBUG][       Thread-603567][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:45:33,905 [DEBUG][       Thread-603567][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:45:33,905 [DEBUG][       Thread-603567][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:45:33,905 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:45:33,906 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:45:33,907 [DEBUG][       Thread-603567][   transport.py][1871] : userauth is OK
2025-07-01 11:45:33,932 [ INFO][       Thread-603567][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:45:33,933 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:45:34,601 [DEBUG][       Thread-603567][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:45:34,601 [DEBUG][       Thread-603567][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:45:34,645 [DEBUG][       Thread-603567][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:45:34,645 [DEBUG][       Thread-603567][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:45:34,648 [DEBUG][       Thread-603567][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:45:34,661 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:45:34,661 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:45:34,662 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:45:34,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:45:34,669 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:45:34,671 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:45:34,671 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:45:34,672 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:45:34,672 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.406194 -999.00  +10.80  35.32     56   +2.30 1 2 2 1 1   888    0 8.51 1.26 ----- 35.3 35.3 27.6 49.7 13.7 -22.3 12.9 -23.4 12.6 -21.8 13.3 -20.8
2025-07-01 11:45:34,672 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:45:34,672 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:45:34,672 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.406194
2025-07-01 11:45:34,672 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:45:34,673 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:45:34,673 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:45:34,673 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:45:34,673 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:45:34,673 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:45:24', tmtdew=9.76, humidity=50.95, cloud=0.0, wind=28.72, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:44:55.162', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:45:34,674 [DEBUG][       Thread-603567][   transport.py][1871] : EOF in transport thread
2025-07-01 11:45:34,757 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:45:34,769 [DEBUG][       Thread-603570][   transport.py][1871] : starting thread (client mode): 0x81e6260
2025-07-01 11:45:34,769 [DEBUG][       Thread-603570][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:45:34,784 [DEBUG][       Thread-603570][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:45:34,784 [ INFO][       Thread-603570][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:45:34,797 [DEBUG][       Thread-603570][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:45:34,797 [DEBUG][       Thread-603570][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:45:34,797 [DEBUG][       Thread-603570][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:45:34,798 [DEBUG][       Thread-603570][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:45:34,798 [DEBUG][       Thread-603570][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:45:34,798 [DEBUG][       Thread-603570][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:45:34,798 [DEBUG][       Thread-603570][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:45:34,798 [DEBUG][       Thread-603570][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:45:34,798 [DEBUG][       Thread-603570][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:45:34,798 [DEBUG][       Thread-603570][   transport.py][1871] : client lang: <none>
2025-07-01 11:45:34,798 [DEBUG][       Thread-603570][   transport.py][1871] : server lang: <none>
2025-07-01 11:45:34,798 [DEBUG][       Thread-603570][   transport.py][1871] : kex follows: False
2025-07-01 11:45:34,798 [DEBUG][       Thread-603570][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:45:34,798 [DEBUG][       Thread-603570][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:45:34,798 [DEBUG][       Thread-603570][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:45:34,798 [DEBUG][       Thread-603570][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:45:34,798 [DEBUG][       Thread-603570][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:45:34,798 [DEBUG][       Thread-603570][   transport.py][1871] : Compression: none
2025-07-01 11:45:34,798 [DEBUG][       Thread-603570][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:45:34,851 [DEBUG][       Thread-603570][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:45:34,851 [DEBUG][       Thread-603570][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:45:34,852 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:45:34,853 [DEBUG][       Thread-603570][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:45:34,853 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:45:34,911 [DEBUG][       Thread-603570][   transport.py][1871] : userauth is OK
2025-07-01 11:45:34,911 [DEBUG][       Thread-603570][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:45:34,911 [DEBUG][       Thread-603570][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:45:34,911 [DEBUG][       Thread-603570][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:45:34,911 [DEBUG][       Thread-603570][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:45:34,930 [ INFO][       Thread-603570][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:45:34,931 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:45:34,931 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:45:35,645 [DEBUG][Thread-603572 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:45:35,903 [DEBUG][       Thread-603570][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:45:35,903 [DEBUG][       Thread-603570][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:45:35,952 [DEBUG][       Thread-603570][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:45:35,952 [DEBUG][       Thread-603570][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:45:35,962 [DEBUG][       Thread-603570][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:45:35,971 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:45:35,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-07-01 11:45:35,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-07-01 11:45:35,988 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:45:35,989 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:45:35,989 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:45:35,997 [DEBUG][       Thread-603570][   transport.py][1871] : EOF in transport thread
2025-07-01 11:45:44,685 [DEBUG][Thread-603573 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:45:46,000 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:45:46,000 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:45:46,000 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:45:46,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-07-01 11:45:46,508 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 45, 24), 9.76, 50.95, 0.0, 28.72, 10.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:45:46,508 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:45:24
2025-07-01 11:45:46,594 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:45:46,598 [DEBUG][       Thread-603574][   transport.py][1871] : starting thread (client mode): 0x82b2590
2025-07-01 11:45:46,598 [DEBUG][       Thread-603574][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:45:46,617 [DEBUG][       Thread-603574][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:45:46,617 [ INFO][       Thread-603574][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:45:46,621 [DEBUG][       Thread-603574][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:45:46,621 [DEBUG][       Thread-603574][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:45:46,621 [DEBUG][       Thread-603574][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:45:46,621 [DEBUG][       Thread-603574][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:45:46,621 [DEBUG][       Thread-603574][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:45:46,621 [DEBUG][       Thread-603574][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:45:46,621 [DEBUG][       Thread-603574][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:45:46,621 [DEBUG][       Thread-603574][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:45:46,621 [DEBUG][       Thread-603574][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:45:46,621 [DEBUG][       Thread-603574][   transport.py][1871] : client lang: <none>
2025-07-01 11:45:46,621 [DEBUG][       Thread-603574][   transport.py][1871] : server lang: <none>
2025-07-01 11:45:46,621 [DEBUG][       Thread-603574][   transport.py][1871] : kex follows: False
2025-07-01 11:45:46,621 [DEBUG][       Thread-603574][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:45:46,621 [DEBUG][       Thread-603574][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:45:46,621 [DEBUG][       Thread-603574][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:45:46,621 [DEBUG][       Thread-603574][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:45:46,621 [DEBUG][       Thread-603574][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:45:46,621 [DEBUG][       Thread-603574][   transport.py][1871] : Compression: none
2025-07-01 11:45:46,621 [DEBUG][       Thread-603574][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:45:46,637 [DEBUG][       Thread-603574][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:45:46,637 [DEBUG][       Thread-603574][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:45:46,638 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:45:46,638 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:45:46,638 [DEBUG][       Thread-603574][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:45:46,639 [DEBUG][       Thread-603574][   transport.py][1871] : userauth is OK
2025-07-01 11:45:46,652 [ INFO][       Thread-603574][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:45:46,652 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:45:47,291 [DEBUG][       Thread-603574][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:45:47,291 [DEBUG][       Thread-603574][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:45:47,333 [DEBUG][       Thread-603574][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:45:47,333 [DEBUG][       Thread-603574][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:45:47,337 [DEBUG][       Thread-603574][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:45:47,349 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:45:47,349 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:45:47,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:45:47,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:45:47,358 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:45:47,360 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:45:47,361 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:45:47,361 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:45:47,361 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.406542 -999.00  +10.80  35.32     55   +2.30 1 1 2 1 1   888    0 8.51 1.74 ----- 35.3 35.3 32.4 44.1 13.8 -23.2 13.0 -24.0 12.5 -22.4 13.3 -21.6
2025-07-01 11:45:47,362 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:45:47,362 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:45:47,362 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.406542
2025-07-01 11:45:47,362 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:45:47,363 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:45:47,363 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:45:47,363 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:45:47,363 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 11:45:47,363 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:45:24', tmtdew=9.76, humidity=50.95, cloud=0.0, wind=28.72, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:45:25.229', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:45:47,363 [DEBUG][       Thread-603574][   transport.py][1871] : EOF in transport thread
2025-07-01 11:45:47,446 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:45:53,709 [DEBUG][Thread-603577 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:46:02,741 [DEBUG][Thread-603578 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:46:10,257 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:46:10,259 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:46:11,763 [DEBUG][Thread-603579 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:46:20,781 [DEBUG][Thread-603580 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:46:27,121 [DEBUG][Thread-603581 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:46:29,803 [DEBUG][Thread-603582 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:46:38,824 [DEBUG][Thread-603583 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:46:47,847 [DEBUG][Thread-603584 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:46:56,866 [DEBUG][Thread-603585 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:47:05,886 [DEBUG][Thread-603586 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:47:10,396 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:47:10,397 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:47:14,908 [DEBUG][Thread-603587 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:47:23,933 [DEBUG][Thread-603588 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:47:27,174 [DEBUG][Thread-603589 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:47:32,953 [DEBUG][Thread-603590 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:47:41,970 [DEBUG][Thread-603591 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:47:50,993 [DEBUG][Thread-603592 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:47:57,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-07-01 11:48:00,015 [DEBUG][Thread-603593 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:48:07,084 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:48:07,084 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:48:07,084 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:48:07,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-07-01 11:48:07,598 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 48, 3), 9.93, 50.37, 0.0, 33.51, 10.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:48:07,598 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:48:03
2025-07-01 11:48:07,683 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:48:07,688 [DEBUG][       Thread-603594][   transport.py][1871] : starting thread (client mode): 0x82b3ee0
2025-07-01 11:48:07,688 [DEBUG][       Thread-603594][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:48:07,705 [DEBUG][       Thread-603594][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:48:07,705 [ INFO][       Thread-603594][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:48:07,708 [DEBUG][       Thread-603594][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:48:07,708 [DEBUG][       Thread-603594][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:48:07,708 [DEBUG][       Thread-603594][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:48:07,708 [DEBUG][       Thread-603594][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:48:07,708 [DEBUG][       Thread-603594][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:48:07,708 [DEBUG][       Thread-603594][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:48:07,708 [DEBUG][       Thread-603594][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:48:07,708 [DEBUG][       Thread-603594][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:48:07,708 [DEBUG][       Thread-603594][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:48:07,708 [DEBUG][       Thread-603594][   transport.py][1871] : client lang: <none>
2025-07-01 11:48:07,708 [DEBUG][       Thread-603594][   transport.py][1871] : server lang: <none>
2025-07-01 11:48:07,708 [DEBUG][       Thread-603594][   transport.py][1871] : kex follows: False
2025-07-01 11:48:07,708 [DEBUG][       Thread-603594][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:48:07,708 [DEBUG][       Thread-603594][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:48:07,708 [DEBUG][       Thread-603594][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:48:07,708 [DEBUG][       Thread-603594][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:48:07,708 [DEBUG][       Thread-603594][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:48:07,708 [DEBUG][       Thread-603594][   transport.py][1871] : Compression: none
2025-07-01 11:48:07,708 [DEBUG][       Thread-603594][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:48:07,717 [DEBUG][       Thread-603594][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:48:07,717 [DEBUG][       Thread-603594][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:48:07,717 [DEBUG][       Thread-603594][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:48:07,717 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:48:07,717 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:48:07,718 [DEBUG][       Thread-603594][   transport.py][1871] : userauth is OK
2025-07-01 11:48:07,743 [ INFO][       Thread-603594][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:48:07,743 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:48:08,539 [DEBUG][       Thread-603594][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:48:08,539 [DEBUG][       Thread-603594][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:48:08,585 [DEBUG][       Thread-603594][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:48:08,585 [DEBUG][       Thread-603594][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:48:08,587 [DEBUG][       Thread-603594][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:48:08,601 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:48:08,601 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:48:08,603 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:48:08,605 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:48:08,610 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:48:08,612 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:48:08,612 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:48:08,612 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:48:08,613 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.407930 -999.00  +10.80  38.20     54   +2.10 1 1 2 1 1   888    0 8.59 6.11 ----- 38.2 38.2 41.6 43.9 13.9 -24.1 13.0 -24.8 12.6 -23.5 13.4 -22.2
2025-07-01 11:48:08,613 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:48:08,613 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:48:08,613 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.407930
2025-07-01 11:48:08,613 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:48:08,614 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:48:08,614 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:48:08,614 [DEBUG][       Thread-603594][   transport.py][1871] : EOF in transport thread
2025-07-01 11:48:08,614 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:48:08,615 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 11:48:08,615 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:48:03', tmtdew=9.93, humidity=50.37, cloud=0.0, wind=33.51, temperature=10.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:47:25.152', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:48:08,697 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:48:08,708 [DEBUG][       Thread-603597][   transport.py][1871] : starting thread (client mode): 0x81a5270
2025-07-01 11:48:08,708 [DEBUG][       Thread-603597][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:48:08,723 [DEBUG][       Thread-603597][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:48:08,723 [ INFO][       Thread-603597][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:48:08,731 [DEBUG][       Thread-603597][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:48:08,731 [DEBUG][       Thread-603597][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:48:08,732 [DEBUG][       Thread-603597][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:48:08,732 [DEBUG][       Thread-603597][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:48:08,732 [DEBUG][       Thread-603597][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:48:08,732 [DEBUG][       Thread-603597][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:48:08,732 [DEBUG][       Thread-603597][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:48:08,732 [DEBUG][       Thread-603597][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:48:08,732 [DEBUG][       Thread-603597][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:48:08,732 [DEBUG][       Thread-603597][   transport.py][1871] : client lang: <none>
2025-07-01 11:48:08,732 [DEBUG][       Thread-603597][   transport.py][1871] : server lang: <none>
2025-07-01 11:48:08,732 [DEBUG][       Thread-603597][   transport.py][1871] : kex follows: False
2025-07-01 11:48:08,732 [DEBUG][       Thread-603597][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:48:08,732 [DEBUG][       Thread-603597][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:48:08,732 [DEBUG][       Thread-603597][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:48:08,732 [DEBUG][       Thread-603597][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:48:08,732 [DEBUG][       Thread-603597][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:48:08,732 [DEBUG][       Thread-603597][   transport.py][1871] : Compression: none
2025-07-01 11:48:08,732 [DEBUG][       Thread-603597][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:48:08,791 [DEBUG][       Thread-603597][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:48:08,792 [DEBUG][       Thread-603597][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:48:08,792 [DEBUG][       Thread-603597][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:48:08,793 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:48:08,793 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:48:08,854 [DEBUG][       Thread-603597][   transport.py][1871] : userauth is OK
2025-07-01 11:48:08,854 [DEBUG][       Thread-603597][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:48:08,855 [DEBUG][       Thread-603597][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:48:08,855 [DEBUG][       Thread-603597][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:48:08,855 [DEBUG][       Thread-603597][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:48:08,874 [ INFO][       Thread-603597][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:48:08,874 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:48:08,874 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:48:09,035 [DEBUG][Thread-603599 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:48:09,871 [DEBUG][       Thread-603597][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:48:09,872 [DEBUG][       Thread-603597][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:48:09,920 [DEBUG][       Thread-603597][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:48:09,920 [DEBUG][       Thread-603597][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:48:09,929 [DEBUG][       Thread-603597][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:48:09,938 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:48:09,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-07-01 11:48:09,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-07-01 11:48:09,956 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:48:09,956 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:48:09,957 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:48:09,964 [DEBUG][       Thread-603597][   transport.py][1871] : EOF in transport thread
2025-07-01 11:48:10,535 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:48:10,536 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:48:18,066 [DEBUG][Thread-603600 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:48:19,967 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:48:19,967 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:48:19,967 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:48:19,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-07-01 11:48:20,476 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 48, 3), 9.93, 50.37, 0.0, 33.51, 10.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:48:20,476 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:48:03
2025-07-01 11:48:20,561 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:48:20,565 [DEBUG][       Thread-603601][   transport.py][1871] : starting thread (client mode): 0x82b33a0
2025-07-01 11:48:20,565 [DEBUG][       Thread-603601][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:48:20,585 [DEBUG][       Thread-603601][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:48:20,585 [ INFO][       Thread-603601][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:48:20,588 [DEBUG][       Thread-603601][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:48:20,588 [DEBUG][       Thread-603601][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:48:20,588 [DEBUG][       Thread-603601][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:48:20,588 [DEBUG][       Thread-603601][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:48:20,588 [DEBUG][       Thread-603601][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:48:20,588 [DEBUG][       Thread-603601][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:48:20,588 [DEBUG][       Thread-603601][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:48:20,588 [DEBUG][       Thread-603601][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:48:20,588 [DEBUG][       Thread-603601][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:48:20,588 [DEBUG][       Thread-603601][   transport.py][1871] : client lang: <none>
2025-07-01 11:48:20,588 [DEBUG][       Thread-603601][   transport.py][1871] : server lang: <none>
2025-07-01 11:48:20,588 [DEBUG][       Thread-603601][   transport.py][1871] : kex follows: False
2025-07-01 11:48:20,588 [DEBUG][       Thread-603601][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:48:20,589 [DEBUG][       Thread-603601][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:48:20,589 [DEBUG][       Thread-603601][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:48:20,589 [DEBUG][       Thread-603601][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:48:20,589 [DEBUG][       Thread-603601][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:48:20,589 [DEBUG][       Thread-603601][   transport.py][1871] : Compression: none
2025-07-01 11:48:20,589 [DEBUG][       Thread-603601][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:48:20,605 [DEBUG][       Thread-603601][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:48:20,605 [DEBUG][       Thread-603601][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:48:20,606 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:48:20,606 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:48:20,607 [DEBUG][       Thread-603601][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:48:20,607 [DEBUG][       Thread-603601][   transport.py][1871] : userauth is OK
2025-07-01 11:48:20,634 [ INFO][       Thread-603601][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:48:20,634 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:48:21,488 [DEBUG][       Thread-603601][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:48:21,489 [DEBUG][       Thread-603601][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:48:21,533 [DEBUG][       Thread-603601][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:48:21,533 [DEBUG][       Thread-603601][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:48:21,536 [DEBUG][       Thread-603601][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:48:21,548 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:48:21,548 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:48:21,550 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:48:21,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:48:21,556 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:48:21,558 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:48:21,558 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:48:21,559 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:48:21,559 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.407930 -999.00  +10.80  38.20     54   +2.10 1 1 2 1 1   888    0 8.59 6.11 ----- 38.2 38.2 41.6 43.9 13.9 -24.1 13.0 -24.8 12.6 -23.5 13.4 -22.2
2025-07-01 11:48:21,559 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:48:21,559 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:48:21,559 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.407930
2025-07-01 11:48:21,559 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:48:21,560 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:48:21,560 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:48:21,560 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:48:21,560 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 11:48:21,560 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:48:03', tmtdew=9.93, humidity=50.37, cloud=0.0, wind=33.51, temperature=10.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:47:25.152', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:48:21,561 [DEBUG][       Thread-603601][   transport.py][1871] : EOF in transport thread
2025-07-01 11:48:21,646 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:48:21,660 [DEBUG][       Thread-603604][   transport.py][1871] : starting thread (client mode): 0x81553c0
2025-07-01 11:48:21,660 [DEBUG][       Thread-603604][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:48:21,675 [DEBUG][       Thread-603604][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:48:21,675 [ INFO][       Thread-603604][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:48:21,682 [DEBUG][       Thread-603604][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:48:21,683 [DEBUG][       Thread-603604][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:48:21,683 [DEBUG][       Thread-603604][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:48:21,683 [DEBUG][       Thread-603604][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:48:21,683 [DEBUG][       Thread-603604][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:48:21,683 [DEBUG][       Thread-603604][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:48:21,683 [DEBUG][       Thread-603604][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:48:21,683 [DEBUG][       Thread-603604][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:48:21,683 [DEBUG][       Thread-603604][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:48:21,683 [DEBUG][       Thread-603604][   transport.py][1871] : client lang: <none>
2025-07-01 11:48:21,683 [DEBUG][       Thread-603604][   transport.py][1871] : server lang: <none>
2025-07-01 11:48:21,683 [DEBUG][       Thread-603604][   transport.py][1871] : kex follows: False
2025-07-01 11:48:21,683 [DEBUG][       Thread-603604][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:48:21,683 [DEBUG][       Thread-603604][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:48:21,683 [DEBUG][       Thread-603604][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:48:21,683 [DEBUG][       Thread-603604][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:48:21,683 [DEBUG][       Thread-603604][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:48:21,684 [DEBUG][       Thread-603604][   transport.py][1871] : Compression: none
2025-07-01 11:48:21,684 [DEBUG][       Thread-603604][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:48:21,748 [DEBUG][       Thread-603604][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:48:21,749 [DEBUG][       Thread-603604][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:48:21,750 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:48:21,750 [DEBUG][       Thread-603604][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:48:21,751 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:48:21,812 [DEBUG][       Thread-603604][   transport.py][1871] : userauth is OK
2025-07-01 11:48:21,812 [DEBUG][       Thread-603604][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:48:21,812 [DEBUG][       Thread-603604][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:48:21,812 [DEBUG][       Thread-603604][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:48:21,812 [DEBUG][       Thread-603604][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:48:21,831 [ INFO][       Thread-603604][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:48:21,832 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:48:21,832 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:48:22,828 [DEBUG][       Thread-603604][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:48:22,828 [DEBUG][       Thread-603604][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:48:22,876 [DEBUG][       Thread-603604][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:48:22,876 [DEBUG][       Thread-603604][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:48:22,885 [DEBUG][       Thread-603604][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:48:22,895 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:48:22,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-07-01 11:48:22,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-07-01 11:48:22,913 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:48:22,913 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:48:22,914 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:48:22,922 [DEBUG][       Thread-603604][   transport.py][1871] : EOF in transport thread
2025-07-01 11:48:27,087 [DEBUG][Thread-603606 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:48:27,226 [DEBUG][Thread-603607 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:48:32,924 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:48:32,925 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:48:32,925 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:48:32,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-07-01 11:48:33,417 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 48, 3), 9.93, 50.37, 0.0, 33.51, 10.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:48:33,417 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:48:03
2025-07-01 11:48:33,502 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:48:33,509 [DEBUG][       Thread-603608][   transport.py][1871] : starting thread (client mode): 0x82b0c10
2025-07-01 11:48:33,509 [DEBUG][       Thread-603608][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:48:33,528 [DEBUG][       Thread-603608][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:48:33,528 [ INFO][       Thread-603608][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:48:33,531 [DEBUG][       Thread-603608][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:48:33,532 [DEBUG][       Thread-603608][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:48:33,532 [DEBUG][       Thread-603608][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:48:33,532 [DEBUG][       Thread-603608][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:48:33,532 [DEBUG][       Thread-603608][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:48:33,532 [DEBUG][       Thread-603608][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:48:33,532 [DEBUG][       Thread-603608][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:48:33,532 [DEBUG][       Thread-603608][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:48:33,532 [DEBUG][       Thread-603608][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:48:33,532 [DEBUG][       Thread-603608][   transport.py][1871] : client lang: <none>
2025-07-01 11:48:33,532 [DEBUG][       Thread-603608][   transport.py][1871] : server lang: <none>
2025-07-01 11:48:33,532 [DEBUG][       Thread-603608][   transport.py][1871] : kex follows: False
2025-07-01 11:48:33,532 [DEBUG][       Thread-603608][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:48:33,532 [DEBUG][       Thread-603608][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:48:33,532 [DEBUG][       Thread-603608][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:48:33,532 [DEBUG][       Thread-603608][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:48:33,532 [DEBUG][       Thread-603608][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:48:33,532 [DEBUG][       Thread-603608][   transport.py][1871] : Compression: none
2025-07-01 11:48:33,532 [DEBUG][       Thread-603608][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:48:33,547 [DEBUG][       Thread-603608][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:48:33,548 [DEBUG][       Thread-603608][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:48:33,548 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:48:33,549 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:48:33,549 [DEBUG][       Thread-603608][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:48:33,550 [DEBUG][       Thread-603608][   transport.py][1871] : userauth is OK
2025-07-01 11:48:33,562 [ INFO][       Thread-603608][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:48:33,563 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:48:34,239 [DEBUG][       Thread-603608][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:48:34,239 [DEBUG][       Thread-603608][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:48:34,281 [DEBUG][       Thread-603608][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:48:34,281 [DEBUG][       Thread-603608][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:48:34,285 [DEBUG][       Thread-603608][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:48:34,296 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:48:34,297 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:48:34,299 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:48:34,301 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:48:34,307 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:48:34,309 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:48:34,309 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:48:34,310 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:48:34,310 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.408626 -999.00  +10.70  36.59     55   +2.20 1 2 2 1 1   888    0 8.79 9.31 ----- 36.6 36.6 46.6 44.9 -999.0 -999.0 13.1 -24.0 12.7 -22.0 13.5 -20.8
2025-07-01 11:48:34,310 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:48:34,310 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:48:34,310 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.408626
2025-07-01 11:48:34,311 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:48:34,311 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:48:34,311 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:48:34,311 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:48:34,311 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:48:34,312 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:48:03', tmtdew=9.93, humidity=50.37, cloud=0.0, wind=33.51, temperature=10.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:48:25.286', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:48:34,313 [DEBUG][       Thread-603608][   transport.py][1871] : EOF in transport thread
2025-07-01 11:48:34,395 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:48:34,406 [DEBUG][       Thread-603611][   transport.py][1871] : starting thread (client mode): 0x8106e30
2025-07-01 11:48:34,406 [DEBUG][       Thread-603611][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:48:34,423 [DEBUG][       Thread-603611][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:48:34,423 [ INFO][       Thread-603611][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:48:34,431 [DEBUG][       Thread-603611][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:48:34,431 [DEBUG][       Thread-603611][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:48:34,431 [DEBUG][       Thread-603611][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:48:34,431 [DEBUG][       Thread-603611][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:48:34,431 [DEBUG][       Thread-603611][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:48:34,431 [DEBUG][       Thread-603611][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:48:34,431 [DEBUG][       Thread-603611][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:48:34,431 [DEBUG][       Thread-603611][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:48:34,431 [DEBUG][       Thread-603611][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:48:34,431 [DEBUG][       Thread-603611][   transport.py][1871] : client lang: <none>
2025-07-01 11:48:34,431 [DEBUG][       Thread-603611][   transport.py][1871] : server lang: <none>
2025-07-01 11:48:34,431 [DEBUG][       Thread-603611][   transport.py][1871] : kex follows: False
2025-07-01 11:48:34,431 [DEBUG][       Thread-603611][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:48:34,431 [DEBUG][       Thread-603611][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:48:34,432 [DEBUG][       Thread-603611][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:48:34,432 [DEBUG][       Thread-603611][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:48:34,432 [DEBUG][       Thread-603611][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:48:34,432 [DEBUG][       Thread-603611][   transport.py][1871] : Compression: none
2025-07-01 11:48:34,432 [DEBUG][       Thread-603611][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:48:34,494 [DEBUG][       Thread-603611][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:48:34,495 [DEBUG][       Thread-603611][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:48:34,496 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:48:34,496 [DEBUG][       Thread-603611][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:48:34,497 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:48:34,551 [DEBUG][       Thread-603611][   transport.py][1871] : userauth is OK
2025-07-01 11:48:34,551 [DEBUG][       Thread-603611][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:48:34,551 [DEBUG][       Thread-603611][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:48:34,551 [DEBUG][       Thread-603611][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:48:34,551 [DEBUG][       Thread-603611][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:48:34,570 [ INFO][       Thread-603611][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:48:34,571 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:48:34,571 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:48:35,571 [DEBUG][       Thread-603611][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:48:35,571 [DEBUG][       Thread-603611][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:48:35,620 [DEBUG][       Thread-603611][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:48:35,620 [DEBUG][       Thread-603611][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:48:35,630 [DEBUG][       Thread-603611][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:48:35,639 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:48:35,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-07-01 11:48:35,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-07-01 11:48:35,662 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:48:35,663 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:48:35,663 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:48:35,671 [DEBUG][       Thread-603611][   transport.py][1871] : EOF in transport thread
2025-07-01 11:48:36,109 [DEBUG][Thread-603613 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:48:45,141 [DEBUG][Thread-603614 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:48:45,673 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:48:45,673 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:48:45,673 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:48:45,674 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 11:48:46,166 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 48, 35), 9.92, 50.43, 0.0, 36.52, 10.96, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:48:46,166 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:48:35
2025-07-01 11:48:46,250 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:48:46,254 [DEBUG][       Thread-603615][   transport.py][1871] : starting thread (client mode): 0x82b1de0
2025-07-01 11:48:46,254 [DEBUG][       Thread-603615][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:48:46,270 [DEBUG][       Thread-603615][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:48:46,270 [ INFO][       Thread-603615][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:48:46,273 [DEBUG][       Thread-603615][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:48:46,273 [DEBUG][       Thread-603615][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:48:46,273 [DEBUG][       Thread-603615][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:48:46,273 [DEBUG][       Thread-603615][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:48:46,273 [DEBUG][       Thread-603615][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:48:46,273 [DEBUG][       Thread-603615][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:48:46,273 [DEBUG][       Thread-603615][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:48:46,273 [DEBUG][       Thread-603615][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:48:46,273 [DEBUG][       Thread-603615][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:48:46,273 [DEBUG][       Thread-603615][   transport.py][1871] : client lang: <none>
2025-07-01 11:48:46,273 [DEBUG][       Thread-603615][   transport.py][1871] : server lang: <none>
2025-07-01 11:48:46,273 [DEBUG][       Thread-603615][   transport.py][1871] : kex follows: False
2025-07-01 11:48:46,273 [DEBUG][       Thread-603615][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:48:46,273 [DEBUG][       Thread-603615][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:48:46,273 [DEBUG][       Thread-603615][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:48:46,273 [DEBUG][       Thread-603615][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:48:46,273 [DEBUG][       Thread-603615][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:48:46,273 [DEBUG][       Thread-603615][   transport.py][1871] : Compression: none
2025-07-01 11:48:46,273 [DEBUG][       Thread-603615][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:48:46,289 [DEBUG][       Thread-603615][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:48:46,289 [DEBUG][       Thread-603615][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:48:46,290 [DEBUG][       Thread-603615][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:48:46,290 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:48:46,290 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:48:46,291 [DEBUG][       Thread-603615][   transport.py][1871] : userauth is OK
2025-07-01 11:48:46,316 [ INFO][       Thread-603615][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:48:46,316 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:48:47,109 [DEBUG][       Thread-603615][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:48:47,109 [DEBUG][       Thread-603615][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:48:47,153 [DEBUG][       Thread-603615][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:48:47,153 [DEBUG][       Thread-603615][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:48:47,157 [DEBUG][       Thread-603615][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:48:47,169 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:48:47,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:48:47,171 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:48:47,173 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:48:47,178 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:48:47,180 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:48:47,180 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:48:47,181 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:48:47,181 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.408626 -999.00  +10.70  36.59     55   +2.20 1 2 2 1 1   888    0 8.79 9.31 ----- 36.6 36.6 46.6 44.9 -999.0 -999.0 13.1 -24.0 12.7 -22.0 13.5 -20.8
2025-07-01 11:48:47,181 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:48:47,181 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:48:47,181 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.408626
2025-07-01 11:48:47,182 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:48:47,182 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:48:47,182 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:48:47,182 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:48:47,183 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:48:47,183 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:48:35', tmtdew=9.92, humidity=50.43, cloud=0.0, wind=36.52, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:48:25.286', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:48:47,183 [DEBUG][       Thread-603615][   transport.py][1871] : EOF in transport thread
2025-07-01 11:48:47,254 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:48:47,264 [DEBUG][       Thread-603618][   transport.py][1871] : starting thread (client mode): 0x818d9f0
2025-07-01 11:48:47,264 [DEBUG][       Thread-603618][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:48:47,279 [DEBUG][       Thread-603618][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:48:47,279 [ INFO][       Thread-603618][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:48:47,286 [DEBUG][       Thread-603618][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:48:47,286 [DEBUG][       Thread-603618][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:48:47,287 [DEBUG][       Thread-603618][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:48:47,287 [DEBUG][       Thread-603618][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:48:47,287 [DEBUG][       Thread-603618][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:48:47,287 [DEBUG][       Thread-603618][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:48:47,287 [DEBUG][       Thread-603618][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:48:47,287 [DEBUG][       Thread-603618][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:48:47,287 [DEBUG][       Thread-603618][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:48:47,287 [DEBUG][       Thread-603618][   transport.py][1871] : client lang: <none>
2025-07-01 11:48:47,287 [DEBUG][       Thread-603618][   transport.py][1871] : server lang: <none>
2025-07-01 11:48:47,287 [DEBUG][       Thread-603618][   transport.py][1871] : kex follows: False
2025-07-01 11:48:47,287 [DEBUG][       Thread-603618][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:48:47,287 [DEBUG][       Thread-603618][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:48:47,287 [DEBUG][       Thread-603618][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:48:47,287 [DEBUG][       Thread-603618][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:48:47,287 [DEBUG][       Thread-603618][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:48:47,287 [DEBUG][       Thread-603618][   transport.py][1871] : Compression: none
2025-07-01 11:48:47,287 [DEBUG][       Thread-603618][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:48:47,345 [DEBUG][       Thread-603618][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:48:47,345 [DEBUG][       Thread-603618][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:48:47,345 [DEBUG][       Thread-603618][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:48:47,345 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:48:47,346 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:48:47,402 [DEBUG][       Thread-603618][   transport.py][1871] : userauth is OK
2025-07-01 11:48:47,402 [DEBUG][       Thread-603618][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:48:47,402 [DEBUG][       Thread-603618][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:48:47,402 [DEBUG][       Thread-603618][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:48:47,402 [DEBUG][       Thread-603618][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:48:47,420 [ INFO][       Thread-603618][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:48:47,420 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:48:47,420 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:48:48,405 [DEBUG][       Thread-603618][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:48:48,405 [DEBUG][       Thread-603618][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:48:48,456 [DEBUG][       Thread-603618][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:48:48,456 [DEBUG][       Thread-603618][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:48:48,467 [DEBUG][       Thread-603618][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:48:48,476 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:48:48,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-07-01 11:48:48,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-07-01 11:48:48,497 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:48:48,498 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:48:48,498 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:48:48,508 [DEBUG][       Thread-603618][   transport.py][1871] : EOF in transport thread
2025-07-01 11:48:54,161 [DEBUG][Thread-603620 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:48:58,509 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:48:58,509 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:48:58,509 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:48:58,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-07-01 11:48:58,997 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 48, 35), 9.92, 50.43, 0.0, 36.52, 10.96, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:48:58,997 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:48:35
2025-07-01 11:48:59,082 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:48:59,087 [DEBUG][       Thread-603621][   transport.py][1871] : starting thread (client mode): 0x82b2ce0
2025-07-01 11:48:59,088 [DEBUG][       Thread-603621][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:48:59,108 [DEBUG][       Thread-603621][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:48:59,108 [ INFO][       Thread-603621][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:48:59,111 [DEBUG][       Thread-603621][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:48:59,111 [DEBUG][       Thread-603621][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:48:59,111 [DEBUG][       Thread-603621][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:48:59,111 [DEBUG][       Thread-603621][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:48:59,111 [DEBUG][       Thread-603621][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:48:59,111 [DEBUG][       Thread-603621][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:48:59,111 [DEBUG][       Thread-603621][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:48:59,111 [DEBUG][       Thread-603621][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:48:59,111 [DEBUG][       Thread-603621][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:48:59,111 [DEBUG][       Thread-603621][   transport.py][1871] : client lang: <none>
2025-07-01 11:48:59,111 [DEBUG][       Thread-603621][   transport.py][1871] : server lang: <none>
2025-07-01 11:48:59,111 [DEBUG][       Thread-603621][   transport.py][1871] : kex follows: False
2025-07-01 11:48:59,111 [DEBUG][       Thread-603621][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:48:59,111 [DEBUG][       Thread-603621][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:48:59,111 [DEBUG][       Thread-603621][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:48:59,111 [DEBUG][       Thread-603621][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:48:59,112 [DEBUG][       Thread-603621][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:48:59,112 [DEBUG][       Thread-603621][   transport.py][1871] : Compression: none
2025-07-01 11:48:59,112 [DEBUG][       Thread-603621][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:48:59,129 [DEBUG][       Thread-603621][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:48:59,130 [DEBUG][       Thread-603621][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:48:59,130 [DEBUG][       Thread-603621][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:48:59,131 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:48:59,131 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:48:59,173 [DEBUG][       Thread-603621][   transport.py][1871] : userauth is OK
2025-07-01 11:48:59,197 [ INFO][       Thread-603621][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:48:59,197 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:49:00,015 [DEBUG][       Thread-603621][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:49:00,015 [DEBUG][       Thread-603621][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:49:00,057 [DEBUG][       Thread-603621][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:49:00,057 [DEBUG][       Thread-603621][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:49:00,060 [DEBUG][       Thread-603621][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:49:00,074 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:49:00,074 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:49:00,076 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:49:00,078 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:49:00,084 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:49:00,086 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:49:00,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:49:00,086 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:49:00,087 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.408626 -999.00  +10.70  36.59     55   +2.20 1 2 2 1 1   888    0 8.79 9.31 ----- 36.6 36.6 46.6 44.9 -999.0 -999.0 13.1 -24.0 12.7 -22.0 13.5 -20.8
2025-07-01 11:49:00,087 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:49:00,087 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:49:00,087 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.408626
2025-07-01 11:49:00,087 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:49:00,088 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:49:00,088 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:49:00,088 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:49:00,088 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:49:00,088 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:48:35', tmtdew=9.92, humidity=50.43, cloud=0.0, wind=36.52, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:48:25.286', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:49:00,089 [DEBUG][       Thread-603621][   transport.py][1871] : EOF in transport thread
2025-07-01 11:49:00,171 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:49:00,181 [DEBUG][       Thread-603624][   transport.py][1871] : starting thread (client mode): 0x82b28f0
2025-07-01 11:49:00,181 [DEBUG][       Thread-603624][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:49:00,200 [DEBUG][       Thread-603624][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:49:00,200 [ INFO][       Thread-603624][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:49:00,207 [DEBUG][       Thread-603624][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:49:00,207 [DEBUG][       Thread-603624][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:49:00,208 [DEBUG][       Thread-603624][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:49:00,208 [DEBUG][       Thread-603624][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:49:00,208 [DEBUG][       Thread-603624][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:49:00,208 [DEBUG][       Thread-603624][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:49:00,208 [DEBUG][       Thread-603624][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:49:00,208 [DEBUG][       Thread-603624][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:49:00,208 [DEBUG][       Thread-603624][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:49:00,208 [DEBUG][       Thread-603624][   transport.py][1871] : client lang: <none>
2025-07-01 11:49:00,208 [DEBUG][       Thread-603624][   transport.py][1871] : server lang: <none>
2025-07-01 11:49:00,208 [DEBUG][       Thread-603624][   transport.py][1871] : kex follows: False
2025-07-01 11:49:00,208 [DEBUG][       Thread-603624][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:49:00,208 [DEBUG][       Thread-603624][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:49:00,208 [DEBUG][       Thread-603624][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:49:00,208 [DEBUG][       Thread-603624][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:49:00,208 [DEBUG][       Thread-603624][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:49:00,208 [DEBUG][       Thread-603624][   transport.py][1871] : Compression: none
2025-07-01 11:49:00,208 [DEBUG][       Thread-603624][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:49:00,267 [DEBUG][       Thread-603624][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:49:00,267 [DEBUG][       Thread-603624][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:49:00,268 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:49:00,268 [DEBUG][       Thread-603624][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:49:00,269 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:49:00,324 [DEBUG][       Thread-603624][   transport.py][1871] : userauth is OK
2025-07-01 11:49:00,325 [DEBUG][       Thread-603624][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:49:00,325 [DEBUG][       Thread-603624][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:49:00,325 [DEBUG][       Thread-603624][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:49:00,325 [DEBUG][       Thread-603624][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:49:00,344 [ INFO][       Thread-603624][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:49:00,344 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:49:00,344 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:49:01,346 [DEBUG][       Thread-603624][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:49:01,346 [DEBUG][       Thread-603624][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:49:01,398 [DEBUG][       Thread-603624][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:49:01,398 [DEBUG][       Thread-603624][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:49:01,407 [DEBUG][       Thread-603624][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:49:01,419 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:49:01,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-07-01 11:49:01,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-07-01 11:49:01,437 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:49:01,437 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:49:01,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:49:01,451 [DEBUG][       Thread-603624][   transport.py][1871] : EOF in transport thread
2025-07-01 11:49:03,194 [DEBUG][Thread-603626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:49:10,675 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:49:10,676 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:49:11,448 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:49:11,449 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:49:11,449 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:49:11,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-07-01 11:49:11,947 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 49, 7), 9.95, 50.31, 0.0, 36.45, 10.94, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:49:11,948 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:49:07
2025-07-01 11:49:12,031 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:49:12,035 [DEBUG][       Thread-603627][   transport.py][1871] : starting thread (client mode): 0x8104bb0
2025-07-01 11:49:12,035 [DEBUG][       Thread-603627][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:49:12,054 [DEBUG][       Thread-603627][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:49:12,054 [ INFO][       Thread-603627][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:49:12,056 [DEBUG][       Thread-603627][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:49:12,056 [DEBUG][       Thread-603627][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:49:12,056 [DEBUG][       Thread-603627][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:49:12,056 [DEBUG][       Thread-603627][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:49:12,056 [DEBUG][       Thread-603627][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:49:12,056 [DEBUG][       Thread-603627][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:49:12,056 [DEBUG][       Thread-603627][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:49:12,056 [DEBUG][       Thread-603627][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:49:12,056 [DEBUG][       Thread-603627][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:49:12,056 [DEBUG][       Thread-603627][   transport.py][1871] : client lang: <none>
2025-07-01 11:49:12,056 [DEBUG][       Thread-603627][   transport.py][1871] : server lang: <none>
2025-07-01 11:49:12,056 [DEBUG][       Thread-603627][   transport.py][1871] : kex follows: False
2025-07-01 11:49:12,056 [DEBUG][       Thread-603627][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:49:12,056 [DEBUG][       Thread-603627][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:49:12,056 [DEBUG][       Thread-603627][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:49:12,056 [DEBUG][       Thread-603627][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:49:12,056 [DEBUG][       Thread-603627][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:49:12,056 [DEBUG][       Thread-603627][   transport.py][1871] : Compression: none
2025-07-01 11:49:12,056 [DEBUG][       Thread-603627][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:49:12,074 [DEBUG][       Thread-603627][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:49:12,074 [DEBUG][       Thread-603627][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:49:12,075 [DEBUG][       Thread-603627][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:49:12,075 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:49:12,075 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:49:12,076 [DEBUG][       Thread-603627][   transport.py][1871] : userauth is OK
2025-07-01 11:49:12,100 [ INFO][       Thread-603627][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:49:12,101 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:49:12,215 [DEBUG][Thread-603629 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:49:12,755 [DEBUG][       Thread-603627][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:49:12,756 [DEBUG][       Thread-603627][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:49:12,797 [DEBUG][       Thread-603627][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:49:12,797 [DEBUG][       Thread-603627][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:49:12,800 [DEBUG][       Thread-603627][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:49:12,812 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:49:12,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:49:12,814 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:49:12,816 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:49:12,822 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:49:12,824 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:49:12,824 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:49:12,824 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:49:12,825 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.408972 -999.00  +10.90  32.07     55   +2.30 1 2 2 1 1   888    0 8.80 9.18 ----- 32.1 32.1 28.2 43.2 14.1 -22.4 13.2 -23.6 12.8 -21.5 13.6 -20.6
2025-07-01 11:49:12,825 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:49:12,825 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:49:12,825 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.408972
2025-07-01 11:49:12,825 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:49:12,826 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:49:12,826 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:49:12,826 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:49:12,826 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:49:12,826 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:49:07', tmtdew=9.95, humidity=50.31, cloud=0.0, wind=36.45, temperature=10.94, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:48:55.181', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:49:12,827 [DEBUG][       Thread-603627][   transport.py][1871] : EOF in transport thread
2025-07-01 11:49:12,918 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:49:12,927 [DEBUG][       Thread-603631][   transport.py][1871] : starting thread (client mode): 0x81d9840
2025-07-01 11:49:12,927 [DEBUG][       Thread-603631][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:49:12,943 [DEBUG][       Thread-603631][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:49:12,943 [ INFO][       Thread-603631][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:49:12,950 [DEBUG][       Thread-603631][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:49:12,951 [DEBUG][       Thread-603631][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:49:12,951 [DEBUG][       Thread-603631][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:49:12,951 [DEBUG][       Thread-603631][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:49:12,951 [DEBUG][       Thread-603631][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:49:12,951 [DEBUG][       Thread-603631][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:49:12,951 [DEBUG][       Thread-603631][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:49:12,951 [DEBUG][       Thread-603631][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:49:12,951 [DEBUG][       Thread-603631][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:49:12,951 [DEBUG][       Thread-603631][   transport.py][1871] : client lang: <none>
2025-07-01 11:49:12,951 [DEBUG][       Thread-603631][   transport.py][1871] : server lang: <none>
2025-07-01 11:49:12,951 [DEBUG][       Thread-603631][   transport.py][1871] : kex follows: False
2025-07-01 11:49:12,951 [DEBUG][       Thread-603631][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:49:12,951 [DEBUG][       Thread-603631][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:49:12,951 [DEBUG][       Thread-603631][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:49:12,951 [DEBUG][       Thread-603631][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:49:12,951 [DEBUG][       Thread-603631][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:49:12,951 [DEBUG][       Thread-603631][   transport.py][1871] : Compression: none
2025-07-01 11:49:12,951 [DEBUG][       Thread-603631][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:49:13,011 [DEBUG][       Thread-603631][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:49:13,011 [DEBUG][       Thread-603631][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:49:13,012 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:49:13,012 [DEBUG][       Thread-603631][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:49:13,013 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:49:13,067 [DEBUG][       Thread-603631][   transport.py][1871] : userauth is OK
2025-07-01 11:49:13,067 [DEBUG][       Thread-603631][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:49:13,067 [DEBUG][       Thread-603631][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:49:13,067 [DEBUG][       Thread-603631][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:49:13,067 [DEBUG][       Thread-603631][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:49:13,089 [ INFO][       Thread-603631][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:49:13,089 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:49:13,089 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:49:14,103 [DEBUG][       Thread-603631][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:49:14,104 [DEBUG][       Thread-603631][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:49:14,154 [DEBUG][       Thread-603631][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:49:14,154 [DEBUG][       Thread-603631][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:49:14,163 [DEBUG][       Thread-603631][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:49:14,176 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:49:14,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-07-01 11:49:14,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-07-01 11:49:14,194 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:49:14,194 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:49:14,194 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:49:14,202 [DEBUG][       Thread-603631][   transport.py][1871] : EOF in transport thread
2025-07-01 11:49:21,236 [DEBUG][Thread-603633 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:49:24,205 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:49:24,205 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:49:24,205 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:49:24,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-07-01 11:49:24,687 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 49, 7), 9.95, 50.31, 0.0, 36.45, 10.94, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:49:24,687 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:49:07
2025-07-01 11:49:24,773 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:49:24,779 [DEBUG][       Thread-603634][   transport.py][1871] : starting thread (client mode): 0x8170850
2025-07-01 11:49:24,779 [DEBUG][       Thread-603634][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:49:24,799 [DEBUG][       Thread-603634][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:49:24,799 [ INFO][       Thread-603634][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:49:24,802 [DEBUG][       Thread-603634][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:49:24,802 [DEBUG][       Thread-603634][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:49:24,802 [DEBUG][       Thread-603634][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:49:24,802 [DEBUG][       Thread-603634][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:49:24,803 [DEBUG][       Thread-603634][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:49:24,803 [DEBUG][       Thread-603634][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:49:24,803 [DEBUG][       Thread-603634][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:49:24,803 [DEBUG][       Thread-603634][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:49:24,803 [DEBUG][       Thread-603634][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:49:24,803 [DEBUG][       Thread-603634][   transport.py][1871] : client lang: <none>
2025-07-01 11:49:24,803 [DEBUG][       Thread-603634][   transport.py][1871] : server lang: <none>
2025-07-01 11:49:24,803 [DEBUG][       Thread-603634][   transport.py][1871] : kex follows: False
2025-07-01 11:49:24,803 [DEBUG][       Thread-603634][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:49:24,803 [DEBUG][       Thread-603634][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:49:24,803 [DEBUG][       Thread-603634][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:49:24,803 [DEBUG][       Thread-603634][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:49:24,803 [DEBUG][       Thread-603634][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:49:24,803 [DEBUG][       Thread-603634][   transport.py][1871] : Compression: none
2025-07-01 11:49:24,803 [DEBUG][       Thread-603634][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:49:24,819 [DEBUG][       Thread-603634][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:49:24,820 [DEBUG][       Thread-603634][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:49:24,820 [DEBUG][       Thread-603634][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:49:24,820 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:49:24,821 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:49:24,822 [DEBUG][       Thread-603634][   transport.py][1871] : userauth is OK
2025-07-01 11:49:24,835 [ INFO][       Thread-603634][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:49:24,836 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:49:25,588 [DEBUG][       Thread-603634][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:49:25,588 [DEBUG][       Thread-603634][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:49:25,629 [DEBUG][       Thread-603634][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:49:25,629 [DEBUG][       Thread-603634][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:49:25,633 [DEBUG][       Thread-603634][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:49:25,644 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:49:25,644 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:49:25,646 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:49:25,648 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:49:25,654 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:49:25,655 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:49:25,656 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:49:25,656 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:49:25,657 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.408972 -999.00  +10.90  32.07     55   +2.30 1 2 2 1 1   888    0 8.80 9.18 ----- 32.1 32.1 28.2 43.2 14.1 -22.4 13.2 -23.6 12.8 -21.5 13.6 -20.6
2025-07-01 11:49:25,657 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:49:25,657 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:49:25,657 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.408972
2025-07-01 11:49:25,657 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:49:25,658 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:49:25,658 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:49:25,658 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:49:25,658 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:49:25,658 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:49:07', tmtdew=9.95, humidity=50.31, cloud=0.0, wind=36.45, temperature=10.94, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:48:55.181', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:49:25,659 [DEBUG][       Thread-603634][   transport.py][1871] : EOF in transport thread
2025-07-01 11:49:25,742 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:49:25,752 [DEBUG][       Thread-603637][   transport.py][1871] : starting thread (client mode): 0x75abc10
2025-07-01 11:49:25,752 [DEBUG][       Thread-603637][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:49:25,771 [DEBUG][       Thread-603637][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:49:25,771 [ INFO][       Thread-603637][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:49:25,778 [DEBUG][       Thread-603637][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:49:25,779 [DEBUG][       Thread-603637][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:49:25,779 [DEBUG][       Thread-603637][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:49:25,779 [DEBUG][       Thread-603637][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:49:25,779 [DEBUG][       Thread-603637][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:49:25,779 [DEBUG][       Thread-603637][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:49:25,779 [DEBUG][       Thread-603637][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:49:25,779 [DEBUG][       Thread-603637][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:49:25,779 [DEBUG][       Thread-603637][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:49:25,779 [DEBUG][       Thread-603637][   transport.py][1871] : client lang: <none>
2025-07-01 11:49:25,779 [DEBUG][       Thread-603637][   transport.py][1871] : server lang: <none>
2025-07-01 11:49:25,779 [DEBUG][       Thread-603637][   transport.py][1871] : kex follows: False
2025-07-01 11:49:25,779 [DEBUG][       Thread-603637][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:49:25,779 [DEBUG][       Thread-603637][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:49:25,779 [DEBUG][       Thread-603637][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:49:25,779 [DEBUG][       Thread-603637][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:49:25,779 [DEBUG][       Thread-603637][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:49:25,779 [DEBUG][       Thread-603637][   transport.py][1871] : Compression: none
2025-07-01 11:49:25,779 [DEBUG][       Thread-603637][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:49:25,838 [DEBUG][       Thread-603637][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:49:25,839 [DEBUG][       Thread-603637][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:49:25,840 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:49:25,840 [DEBUG][       Thread-603637][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:49:25,841 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:49:25,895 [DEBUG][       Thread-603637][   transport.py][1871] : userauth is OK
2025-07-01 11:49:25,895 [DEBUG][       Thread-603637][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:49:25,896 [DEBUG][       Thread-603637][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:49:25,896 [DEBUG][       Thread-603637][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:49:25,896 [DEBUG][       Thread-603637][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:49:25,915 [ INFO][       Thread-603637][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:49:25,916 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:49:25,916 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:49:26,954 [DEBUG][       Thread-603637][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:49:26,954 [DEBUG][       Thread-603637][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:49:27,004 [DEBUG][       Thread-603637][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:49:27,004 [DEBUG][       Thread-603637][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:49:27,013 [DEBUG][       Thread-603637][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:49:27,022 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:49: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')
2025-07-01 11:49:27,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-07-01 11:49:27,044 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:49:27,045 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:49:27,045 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:49:27,055 [DEBUG][       Thread-603637][   transport.py][1871] : EOF in transport thread
2025-07-01 11:49:27,278 [DEBUG][Thread-603639 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:49:30,275 [DEBUG][Thread-603640 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:49:37,055 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:49:37,056 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:49:37,056 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:49:37,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-07-01 11:49:37,545 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 49, 7), 9.95, 50.31, 0.0, 36.45, 10.94, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:49:37,545 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:49:07
2025-07-01 11:49:37,629 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:49:37,633 [DEBUG][       Thread-603641][   transport.py][1871] : starting thread (client mode): 0x75aa260
2025-07-01 11:49:37,633 [DEBUG][       Thread-603641][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:49:37,657 [DEBUG][       Thread-603641][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:49:37,657 [ INFO][       Thread-603641][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:49:37,658 [DEBUG][       Thread-603641][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:49:37,658 [DEBUG][       Thread-603641][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:49:37,658 [DEBUG][       Thread-603641][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:49:37,658 [DEBUG][       Thread-603641][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:49:37,658 [DEBUG][       Thread-603641][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:49:37,658 [DEBUG][       Thread-603641][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:49:37,658 [DEBUG][       Thread-603641][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:49:37,658 [DEBUG][       Thread-603641][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:49:37,658 [DEBUG][       Thread-603641][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:49:37,658 [DEBUG][       Thread-603641][   transport.py][1871] : client lang: <none>
2025-07-01 11:49:37,658 [DEBUG][       Thread-603641][   transport.py][1871] : server lang: <none>
2025-07-01 11:49:37,658 [DEBUG][       Thread-603641][   transport.py][1871] : kex follows: False
2025-07-01 11:49:37,658 [DEBUG][       Thread-603641][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:49:37,659 [DEBUG][       Thread-603641][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:49:37,659 [DEBUG][       Thread-603641][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:49:37,659 [DEBUG][       Thread-603641][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:49:37,659 [DEBUG][       Thread-603641][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:49:37,659 [DEBUG][       Thread-603641][   transport.py][1871] : Compression: none
2025-07-01 11:49:37,659 [DEBUG][       Thread-603641][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:49:37,669 [DEBUG][       Thread-603641][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:49:37,670 [DEBUG][       Thread-603641][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:49:37,670 [DEBUG][       Thread-603641][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:49:37,670 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:49:37,671 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:49:37,672 [DEBUG][       Thread-603641][   transport.py][1871] : userauth is OK
2025-07-01 11:49:37,696 [ INFO][       Thread-603641][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:49:37,696 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:49:38,282 [DEBUG][       Thread-603641][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:49:38,282 [DEBUG][       Thread-603641][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:49:38,325 [DEBUG][       Thread-603641][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:49:38,325 [DEBUG][       Thread-603641][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:49:38,328 [DEBUG][       Thread-603641][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:49:38,333 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:49:38,334 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:49:38,336 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:49:38,338 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:49:38,343 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:49:38,346 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:49:38,346 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:49:38,347 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:49:38,347 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.409319 -999.00  +10.90  40.79     54   +2.20 1 2 2 1 1   888    0 8.89 9.51 ----- 40.8 40.8 42.6 52.4 14.2 -22.3 13.2 -24.2 12.8 -21.7 13.7 -20.9
2025-07-01 11:49:38,347 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:49:38,347 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:49:38,347 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.409319
2025-07-01 11:49:38,348 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:49:38,348 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:49:38,348 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:49:38,348 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:49:38,348 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:49:38,349 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:49:07', tmtdew=9.95, humidity=50.31, cloud=0.0, wind=36.45, temperature=10.94, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:49:25.162', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:49:38,350 [DEBUG][       Thread-603641][   transport.py][1871] : EOF in transport thread
2025-07-01 11:49:38,433 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:49:38,443 [DEBUG][       Thread-603644][   transport.py][1871] : starting thread (client mode): 0x818ee30
2025-07-01 11:49:38,443 [DEBUG][       Thread-603644][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:49:38,458 [DEBUG][       Thread-603644][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:49:38,459 [ INFO][       Thread-603644][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:49:38,466 [DEBUG][       Thread-603644][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:49:38,466 [DEBUG][       Thread-603644][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:49:38,466 [DEBUG][       Thread-603644][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:49:38,466 [DEBUG][       Thread-603644][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:49:38,466 [DEBUG][       Thread-603644][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:49:38,466 [DEBUG][       Thread-603644][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:49:38,466 [DEBUG][       Thread-603644][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:49:38,466 [DEBUG][       Thread-603644][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:49:38,467 [DEBUG][       Thread-603644][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:49:38,467 [DEBUG][       Thread-603644][   transport.py][1871] : client lang: <none>
2025-07-01 11:49:38,467 [DEBUG][       Thread-603644][   transport.py][1871] : server lang: <none>
2025-07-01 11:49:38,467 [DEBUG][       Thread-603644][   transport.py][1871] : kex follows: False
2025-07-01 11:49:38,467 [DEBUG][       Thread-603644][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:49:38,467 [DEBUG][       Thread-603644][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:49:38,467 [DEBUG][       Thread-603644][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:49:38,467 [DEBUG][       Thread-603644][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:49:38,467 [DEBUG][       Thread-603644][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:49:38,467 [DEBUG][       Thread-603644][   transport.py][1871] : Compression: none
2025-07-01 11:49:38,467 [DEBUG][       Thread-603644][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:49:38,526 [DEBUG][       Thread-603644][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:49:38,527 [DEBUG][       Thread-603644][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:49:38,528 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:49:38,529 [DEBUG][       Thread-603644][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:49:38,529 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:49:38,583 [DEBUG][       Thread-603644][   transport.py][1871] : userauth is OK
2025-07-01 11:49:38,583 [DEBUG][       Thread-603644][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:49:38,583 [DEBUG][       Thread-603644][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:49:38,583 [DEBUG][       Thread-603644][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:49:38,583 [DEBUG][       Thread-603644][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:49:38,602 [ INFO][       Thread-603644][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:49:38,603 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:49:38,603 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:49:39,294 [DEBUG][Thread-603646 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:49:39,621 [DEBUG][       Thread-603644][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:49:39,622 [DEBUG][       Thread-603644][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:49:39,671 [DEBUG][       Thread-603644][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:49:39,671 [DEBUG][       Thread-603644][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:49:39,680 [DEBUG][       Thread-603644][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:49:39,688 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:49: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')
2025-07-01 11:49:39,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-07-01 11:49:39,704 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:49:39,705 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:49:39,705 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:49:39,713 [DEBUG][       Thread-603644][   transport.py][1871] : EOF in transport thread
2025-07-01 11:49:48,315 [DEBUG][Thread-603647 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:49:49,712 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:49:49,712 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:49:49,712 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:49:49,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-07-01 11:49:50,208 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 49, 39), 9.91, 50.34, 0.0, 34.04, 10.97, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:49:50,208 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:49:39
2025-07-01 11:49:50,292 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:49:50,299 [DEBUG][       Thread-603648][   transport.py][1871] : starting thread (client mode): 0x75a8d30
2025-07-01 11:49:50,299 [DEBUG][       Thread-603648][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:49:50,321 [DEBUG][       Thread-603648][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:49:50,321 [ INFO][       Thread-603648][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:49:50,324 [DEBUG][       Thread-603648][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:49:50,325 [DEBUG][       Thread-603648][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:49:50,325 [DEBUG][       Thread-603648][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:49:50,325 [DEBUG][       Thread-603648][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:49:50,325 [DEBUG][       Thread-603648][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:49:50,325 [DEBUG][       Thread-603648][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:49:50,325 [DEBUG][       Thread-603648][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:49:50,325 [DEBUG][       Thread-603648][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:49:50,325 [DEBUG][       Thread-603648][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:49:50,325 [DEBUG][       Thread-603648][   transport.py][1871] : client lang: <none>
2025-07-01 11:49:50,325 [DEBUG][       Thread-603648][   transport.py][1871] : server lang: <none>
2025-07-01 11:49:50,325 [DEBUG][       Thread-603648][   transport.py][1871] : kex follows: False
2025-07-01 11:49:50,325 [DEBUG][       Thread-603648][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:49:50,325 [DEBUG][       Thread-603648][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:49:50,325 [DEBUG][       Thread-603648][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:49:50,325 [DEBUG][       Thread-603648][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:49:50,325 [DEBUG][       Thread-603648][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:49:50,325 [DEBUG][       Thread-603648][   transport.py][1871] : Compression: none
2025-07-01 11:49:50,325 [DEBUG][       Thread-603648][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:49:50,343 [DEBUG][       Thread-603648][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:49:50,343 [DEBUG][       Thread-603648][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:49:50,344 [DEBUG][       Thread-603648][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:49:50,344 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:49:50,344 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:49:50,346 [DEBUG][       Thread-603648][   transport.py][1871] : userauth is OK
2025-07-01 11:49:50,371 [ INFO][       Thread-603648][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:49:50,371 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:49:51,060 [DEBUG][       Thread-603648][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:49:51,061 [DEBUG][       Thread-603648][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:49:51,105 [DEBUG][       Thread-603648][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:49:51,105 [DEBUG][       Thread-603648][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:49:51,109 [DEBUG][       Thread-603648][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:49:51,124 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:49:51,124 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:49:51,126 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:49:51,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:49:51,134 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:49:51,136 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:49:51,137 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:49:51,137 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:49:51,137 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.409319 -999.00  +10.90  40.79     54   +2.20 1 2 2 1 1   888    0 8.89 9.51 ----- 40.8 40.8 42.6 52.4 14.2 -22.3 13.2 -24.2 12.8 -21.7 13.7 -20.9
2025-07-01 11:49:51,137 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:49:51,138 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:49:51,138 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.409319
2025-07-01 11:49:51,138 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:49:51,139 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:49:51,139 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:49:51,139 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:49:51,139 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:49:51,139 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:49:39', tmtdew=9.91, humidity=50.34, cloud=0.0, wind=34.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:49:25.162', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:49:51,139 [DEBUG][       Thread-603648][   transport.py][1871] : EOF in transport thread
2025-07-01 11:49:51,223 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:49:51,234 [DEBUG][       Thread-603651][   transport.py][1871] : starting thread (client mode): 0x82b3910
2025-07-01 11:49:51,234 [DEBUG][       Thread-603651][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:49:51,251 [DEBUG][       Thread-603651][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:49:51,251 [ INFO][       Thread-603651][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:49:51,259 [DEBUG][       Thread-603651][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:49:51,259 [DEBUG][       Thread-603651][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:49:51,259 [DEBUG][       Thread-603651][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:49:51,259 [DEBUG][       Thread-603651][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:49:51,259 [DEBUG][       Thread-603651][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:49:51,259 [DEBUG][       Thread-603651][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:49:51,259 [DEBUG][       Thread-603651][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:49:51,259 [DEBUG][       Thread-603651][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:49:51,259 [DEBUG][       Thread-603651][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:49:51,259 [DEBUG][       Thread-603651][   transport.py][1871] : client lang: <none>
2025-07-01 11:49:51,259 [DEBUG][       Thread-603651][   transport.py][1871] : server lang: <none>
2025-07-01 11:49:51,259 [DEBUG][       Thread-603651][   transport.py][1871] : kex follows: False
2025-07-01 11:49:51,259 [DEBUG][       Thread-603651][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:49:51,259 [DEBUG][       Thread-603651][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:49:51,259 [DEBUG][       Thread-603651][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:49:51,259 [DEBUG][       Thread-603651][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:49:51,259 [DEBUG][       Thread-603651][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:49:51,260 [DEBUG][       Thread-603651][   transport.py][1871] : Compression: none
2025-07-01 11:49:51,260 [DEBUG][       Thread-603651][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:49:51,325 [DEBUG][       Thread-603651][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:49:51,326 [DEBUG][       Thread-603651][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:49:51,326 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:49:51,327 [DEBUG][       Thread-603651][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:49:51,328 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:49:51,387 [DEBUG][       Thread-603651][   transport.py][1871] : userauth is OK
2025-07-01 11:49:51,387 [DEBUG][       Thread-603651][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:49:51,387 [DEBUG][       Thread-603651][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:49:51,387 [DEBUG][       Thread-603651][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:49:51,387 [DEBUG][       Thread-603651][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:49:51,407 [ INFO][       Thread-603651][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:49:51,407 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:49:51,408 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:49:52,452 [DEBUG][       Thread-603651][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:49:52,452 [DEBUG][       Thread-603651][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:49:52,500 [DEBUG][       Thread-603651][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:49:52,501 [DEBUG][       Thread-603651][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:49:52,510 [DEBUG][       Thread-603651][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:49:52,521 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:49:52,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-07-01 11:49:52,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') -> 00000000
2025-07-01 11:49:52,538 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:49:52,539 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:49:52,539 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:49:52,549 [DEBUG][       Thread-603651][   transport.py][1871] : EOF in transport thread
2025-07-01 11:49:57,338 [DEBUG][Thread-603653 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:50:02,548 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:50:02,548 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:50:02,548 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:50:02,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-07-01 11:50:03,055 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 49, 39), 9.91, 50.34, 0.0, 34.04, 10.97, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:50:03,055 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:49:39
2025-07-01 11:50:03,140 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:50:03,144 [DEBUG][       Thread-603654][   transport.py][1871] : starting thread (client mode): 0x75a8ac0
2025-07-01 11:50:03,144 [DEBUG][       Thread-603654][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:50:03,164 [DEBUG][       Thread-603654][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:50:03,164 [ INFO][       Thread-603654][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:50:03,168 [DEBUG][       Thread-603654][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:50:03,168 [DEBUG][       Thread-603654][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:50:03,168 [DEBUG][       Thread-603654][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:50:03,168 [DEBUG][       Thread-603654][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:50:03,168 [DEBUG][       Thread-603654][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:50:03,168 [DEBUG][       Thread-603654][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:50:03,168 [DEBUG][       Thread-603654][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:50:03,168 [DEBUG][       Thread-603654][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:50:03,168 [DEBUG][       Thread-603654][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:50:03,168 [DEBUG][       Thread-603654][   transport.py][1871] : client lang: <none>
2025-07-01 11:50:03,168 [DEBUG][       Thread-603654][   transport.py][1871] : server lang: <none>
2025-07-01 11:50:03,168 [DEBUG][       Thread-603654][   transport.py][1871] : kex follows: False
2025-07-01 11:50:03,168 [DEBUG][       Thread-603654][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:50:03,168 [DEBUG][       Thread-603654][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:50:03,168 [DEBUG][       Thread-603654][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:50:03,168 [DEBUG][       Thread-603654][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:50:03,168 [DEBUG][       Thread-603654][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:50:03,168 [DEBUG][       Thread-603654][   transport.py][1871] : Compression: none
2025-07-01 11:50:03,168 [DEBUG][       Thread-603654][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:50:03,184 [DEBUG][       Thread-603654][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:50:03,185 [DEBUG][       Thread-603654][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:50:03,185 [DEBUG][       Thread-603654][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:50:03,186 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:50:03,186 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:50:03,187 [DEBUG][       Thread-603654][   transport.py][1871] : userauth is OK
2025-07-01 11:50:03,199 [ INFO][       Thread-603654][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:50:03,200 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:50:04,343 [DEBUG][       Thread-603654][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:50:04,343 [DEBUG][       Thread-603654][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:50:04,385 [DEBUG][       Thread-603654][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:50:04,385 [DEBUG][       Thread-603654][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:50:04,388 [DEBUG][       Thread-603654][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:50:04,399 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:50:04,400 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:50:04,402 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:50:04,403 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:50:04,409 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:50:04,411 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:50:04,411 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:50:04,412 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:50:04,412 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.409319 -999.00  +10.90  40.79     54   +2.20 1 2 2 1 1   888    0 8.89 9.51 ----- 40.8 40.8 42.6 52.4 14.2 -22.3 13.2 -24.2 12.8 -21.7 13.7 -20.9
2025-07-01 11:50:04,412 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:50:04,412 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:50:04,412 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.409319
2025-07-01 11:50:04,413 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:50:04,413 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:50:04,413 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:50:04,413 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:50:04,413 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:50:04,414 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:49:39', tmtdew=9.91, humidity=50.34, cloud=0.0, wind=34.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:49:25.162', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:50:04,414 [DEBUG][       Thread-603654][   transport.py][1871] : EOF in transport thread
2025-07-01 11:50:04,497 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:50:04,509 [DEBUG][       Thread-603657][   transport.py][1871] : starting thread (client mode): 0x8106aa0
2025-07-01 11:50:04,509 [DEBUG][       Thread-603657][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:50:04,525 [DEBUG][       Thread-603657][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:50:04,525 [ INFO][       Thread-603657][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:50:04,532 [DEBUG][       Thread-603657][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:50:04,532 [DEBUG][       Thread-603657][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:50:04,532 [DEBUG][       Thread-603657][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:50:04,532 [DEBUG][       Thread-603657][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:50:04,532 [DEBUG][       Thread-603657][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:50:04,533 [DEBUG][       Thread-603657][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:50:04,533 [DEBUG][       Thread-603657][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:50:04,533 [DEBUG][       Thread-603657][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:50:04,533 [DEBUG][       Thread-603657][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:50:04,533 [DEBUG][       Thread-603657][   transport.py][1871] : client lang: <none>
2025-07-01 11:50:04,533 [DEBUG][       Thread-603657][   transport.py][1871] : server lang: <none>
2025-07-01 11:50:04,533 [DEBUG][       Thread-603657][   transport.py][1871] : kex follows: False
2025-07-01 11:50:04,533 [DEBUG][       Thread-603657][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:50:04,533 [DEBUG][       Thread-603657][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:50:04,533 [DEBUG][       Thread-603657][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:50:04,533 [DEBUG][       Thread-603657][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:50:04,533 [DEBUG][       Thread-603657][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:50:04,533 [DEBUG][       Thread-603657][   transport.py][1871] : Compression: none
2025-07-01 11:50:04,533 [DEBUG][       Thread-603657][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:50:04,591 [DEBUG][       Thread-603657][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:50:04,592 [DEBUG][       Thread-603657][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:50:04,592 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:50:04,593 [DEBUG][       Thread-603657][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:50:04,594 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:50:04,647 [DEBUG][       Thread-603657][   transport.py][1871] : userauth is OK
2025-07-01 11:50:04,647 [DEBUG][       Thread-603657][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:50:04,647 [DEBUG][       Thread-603657][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:50:04,647 [DEBUG][       Thread-603657][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:50:04,647 [DEBUG][       Thread-603657][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:50:04,666 [ INFO][       Thread-603657][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:50:04,666 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:50:04,666 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:50:05,735 [DEBUG][       Thread-603657][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:50:05,735 [DEBUG][       Thread-603657][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:50:05,784 [DEBUG][       Thread-603657][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:50:05,784 [DEBUG][       Thread-603657][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:50:05,793 [DEBUG][       Thread-603657][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:50:05,805 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:50:05,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-07-01 11:50:05,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-07-01 11:50:05,829 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:50:05,829 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:50:05,829 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:50:05,840 [DEBUG][       Thread-603657][   transport.py][1871] : EOF in transport thread
2025-07-01 11:50:06,370 [DEBUG][Thread-603659 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:50:10,814 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:50:10,815 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:50:15,389 [DEBUG][Thread-603660 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:50:15,839 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:50:15,839 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:50:15,839 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:50: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-07-01 11:50:16,336 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 50, 10), 9.97, 50.36, 0.0, 34.63, 11.08, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:50:16,337 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:50:10
2025-07-01 11:50:16,421 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:50:16,427 [DEBUG][       Thread-603661][   transport.py][1871] : starting thread (client mode): 0x75aa740
2025-07-01 11:50:16,427 [DEBUG][       Thread-603661][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:50:16,449 [DEBUG][       Thread-603661][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:50:16,449 [ INFO][       Thread-603661][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:50:16,452 [DEBUG][       Thread-603661][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:50:16,452 [DEBUG][       Thread-603661][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:50:16,453 [DEBUG][       Thread-603661][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:50:16,453 [DEBUG][       Thread-603661][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:50:16,453 [DEBUG][       Thread-603661][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:50:16,453 [DEBUG][       Thread-603661][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:50:16,453 [DEBUG][       Thread-603661][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:50:16,453 [DEBUG][       Thread-603661][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:50:16,453 [DEBUG][       Thread-603661][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:50:16,453 [DEBUG][       Thread-603661][   transport.py][1871] : client lang: <none>
2025-07-01 11:50:16,453 [DEBUG][       Thread-603661][   transport.py][1871] : server lang: <none>
2025-07-01 11:50:16,453 [DEBUG][       Thread-603661][   transport.py][1871] : kex follows: False
2025-07-01 11:50:16,453 [DEBUG][       Thread-603661][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:50:16,453 [DEBUG][       Thread-603661][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:50:16,453 [DEBUG][       Thread-603661][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:50:16,453 [DEBUG][       Thread-603661][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:50:16,453 [DEBUG][       Thread-603661][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:50:16,453 [DEBUG][       Thread-603661][   transport.py][1871] : Compression: none
2025-07-01 11:50:16,453 [DEBUG][       Thread-603661][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:50:16,470 [DEBUG][       Thread-603661][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:50:16,471 [DEBUG][       Thread-603661][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:50:16,471 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:50:16,471 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:50:16,472 [DEBUG][       Thread-603661][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:50:16,472 [DEBUG][       Thread-603661][   transport.py][1871] : userauth is OK
2025-07-01 11:50:16,497 [ INFO][       Thread-603661][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:50:16,498 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:50:17,128 [DEBUG][       Thread-603661][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:50:17,128 [DEBUG][       Thread-603661][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:50:17,169 [DEBUG][       Thread-603661][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:50:17,169 [DEBUG][       Thread-603661][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:50:17,172 [DEBUG][       Thread-603661][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:50:17,185 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:50:17,185 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:50:17,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:50:17,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:50:17,195 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:50:17,196 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:50:17,197 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:50:17,197 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:50:17,197 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.409666 -999.00  +10.90  33.91     55   +2.30 1 2 2 1 1   888    0 8.74 9.52 ----- 33.9 33.9 25.6 47.7 14.2 -22.5 13.3 -23.0 12.9 -21.6 13.8 -20.3
2025-07-01 11:50:17,197 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:50:17,198 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:50:17,198 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.409666
2025-07-01 11:50:17,198 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:50:17,199 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:50:17,199 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:50:17,199 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:50:17,199 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:50:17,199 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:50:10', tmtdew=9.97, humidity=50.36, cloud=0.0, wind=34.63, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:49:55.142', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:50:17,199 [DEBUG][       Thread-603661][   transport.py][1871] : EOF in transport thread
2025-07-01 11:50:17,283 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:50:24,414 [DEBUG][Thread-603664 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:50:27,330 [DEBUG][Thread-603665 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:50:33,459 [DEBUG][Thread-603666 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:50:42,481 [DEBUG][Thread-603667 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:50:51,501 [DEBUG][Thread-603668 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:51:00,524 [DEBUG][Thread-603669 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:51:09,546 [DEBUG][Thread-603670 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:51:10,954 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:51:10,955 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:51:18,568 [DEBUG][Thread-603671 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:51:27,385 [DEBUG][Thread-603672 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:51:27,590 [DEBUG][Thread-603673 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:51:36,612 [DEBUG][Thread-603674 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:51:45,633 [DEBUG][Thread-603675 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:51:54,653 [DEBUG][Thread-603676 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:52:03,672 [DEBUG][Thread-603677 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:52:11,093 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:52:11,095 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:52:12,694 [DEBUG][Thread-603678 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:52:21,716 [DEBUG][Thread-603679 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:52:27,412 [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-07-01 11:52:27,457 [DEBUG][Thread-603680 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:52:30,739 [DEBUG][Thread-603681 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:52:37,420 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:52:37,420 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:52:37,420 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:52:37,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-07-01 11:52:37,924 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 52, 18), 10.16, 49.79, 0.0, 33.91, 11.36, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:52:37,924 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:52:18
2025-07-01 11:52:38,008 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:52:38,012 [DEBUG][       Thread-603682][   transport.py][1871] : starting thread (client mode): 0x8173f70
2025-07-01 11:52:38,012 [DEBUG][       Thread-603682][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:52:38,033 [DEBUG][       Thread-603682][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:52:38,033 [ INFO][       Thread-603682][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:52:38,036 [DEBUG][       Thread-603682][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:52:38,036 [DEBUG][       Thread-603682][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:52:38,036 [DEBUG][       Thread-603682][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:52:38,036 [DEBUG][       Thread-603682][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:52:38,036 [DEBUG][       Thread-603682][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:52:38,036 [DEBUG][       Thread-603682][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:52:38,036 [DEBUG][       Thread-603682][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:52:38,036 [DEBUG][       Thread-603682][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:52:38,036 [DEBUG][       Thread-603682][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:52:38,036 [DEBUG][       Thread-603682][   transport.py][1871] : client lang: <none>
2025-07-01 11:52:38,036 [DEBUG][       Thread-603682][   transport.py][1871] : server lang: <none>
2025-07-01 11:52:38,036 [DEBUG][       Thread-603682][   transport.py][1871] : kex follows: False
2025-07-01 11:52:38,037 [DEBUG][       Thread-603682][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:52:38,037 [DEBUG][       Thread-603682][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:52:38,037 [DEBUG][       Thread-603682][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:52:38,037 [DEBUG][       Thread-603682][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:52:38,037 [DEBUG][       Thread-603682][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:52:38,037 [DEBUG][       Thread-603682][   transport.py][1871] : Compression: none
2025-07-01 11:52:38,037 [DEBUG][       Thread-603682][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:52:38,056 [DEBUG][       Thread-603682][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:52:38,056 [DEBUG][       Thread-603682][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:52:38,057 [DEBUG][       Thread-603682][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:52:38,057 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:52:38,057 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:52:38,058 [DEBUG][       Thread-603682][   transport.py][1871] : userauth is OK
2025-07-01 11:52:38,083 [ INFO][       Thread-603682][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:52:38,083 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:52:38,702 [DEBUG][       Thread-603682][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:52:38,702 [DEBUG][       Thread-603682][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:52:38,744 [DEBUG][       Thread-603682][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:52:38,744 [DEBUG][       Thread-603682][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:52:38,747 [DEBUG][       Thread-603682][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:52:38,758 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:52:38,758 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:52:38,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:52:38,761 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:52:38,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:52:38,765 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:52:38,765 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:52:38,765 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:52:38,765 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.411055 -999.00  +11.20  34.26     55   +2.50 1 2 2 1 1   888    0 8.81 13.60 ----- 34.3 34.3 28.6 48.7 14.7 -21.6 13.7 -22.8 13.2 -20.6 -999.0 -999.0
2025-07-01 11:52:38,765 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:52:38,765 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:52:38,765 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.411055
2025-07-01 11:52:38,766 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:52:38,766 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:52:38,766 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:52:38,766 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:52:38,766 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:52:38,766 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:52:18', tmtdew=10.16, humidity=49.79, cloud=0.0, wind=33.91, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:51:55.152', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:52:38,766 [DEBUG][       Thread-603682][   transport.py][1871] : EOF in transport thread
2025-07-01 11:52:38,842 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:52:38,851 [DEBUG][       Thread-603685][   transport.py][1871] : starting thread (client mode): 0x8157a00
2025-07-01 11:52:38,851 [DEBUG][       Thread-603685][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:52:38,871 [DEBUG][       Thread-603685][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:52:38,871 [ INFO][       Thread-603685][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:52:38,879 [DEBUG][       Thread-603685][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:52:38,879 [DEBUG][       Thread-603685][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:52:38,879 [DEBUG][       Thread-603685][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:52:38,879 [DEBUG][       Thread-603685][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:52:38,879 [DEBUG][       Thread-603685][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:52:38,879 [DEBUG][       Thread-603685][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:52:38,879 [DEBUG][       Thread-603685][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:52:38,879 [DEBUG][       Thread-603685][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:52:38,879 [DEBUG][       Thread-603685][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:52:38,879 [DEBUG][       Thread-603685][   transport.py][1871] : client lang: <none>
2025-07-01 11:52:38,879 [DEBUG][       Thread-603685][   transport.py][1871] : server lang: <none>
2025-07-01 11:52:38,879 [DEBUG][       Thread-603685][   transport.py][1871] : kex follows: False
2025-07-01 11:52:38,879 [DEBUG][       Thread-603685][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:52:38,879 [DEBUG][       Thread-603685][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:52:38,879 [DEBUG][       Thread-603685][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:52:38,879 [DEBUG][       Thread-603685][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:52:38,879 [DEBUG][       Thread-603685][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:52:38,879 [DEBUG][       Thread-603685][   transport.py][1871] : Compression: none
2025-07-01 11:52:38,879 [DEBUG][       Thread-603685][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:52:38,933 [DEBUG][       Thread-603685][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:52:38,933 [DEBUG][       Thread-603685][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:52:38,933 [DEBUG][       Thread-603685][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:52:38,933 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:52:38,933 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:52:38,990 [DEBUG][       Thread-603685][   transport.py][1871] : userauth is OK
2025-07-01 11:52:38,990 [DEBUG][       Thread-603685][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:52:38,990 [DEBUG][       Thread-603685][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:52:38,990 [DEBUG][       Thread-603685][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:52:38,990 [DEBUG][       Thread-603685][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:52:39,005 [ INFO][       Thread-603685][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:52:39,005 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:52:39,005 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:52:39,759 [DEBUG][Thread-603687 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:52:39,999 [DEBUG][       Thread-603685][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:52:40,000 [DEBUG][       Thread-603685][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:52:40,050 [DEBUG][       Thread-603685][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:52:40,050 [DEBUG][       Thread-603685][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:52:40,058 [DEBUG][       Thread-603685][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:52:40,067 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:52: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-07-01 11:52: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-07-01 11:52:40,087 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:52:40,087 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:52:40,087 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:52:40,095 [DEBUG][       Thread-603685][   transport.py][1871] : EOF in transport thread
2025-07-01 11:52:48,792 [DEBUG][Thread-603688 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:52:50,097 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:52:50,098 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:52:50,098 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:52:50,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-07-01 11:52:50,609 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 52, 18), 10.16, 49.79, 0.0, 33.91, 11.36, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:52:50,609 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:52:18
2025-07-01 11:52:50,696 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:52:50,700 [DEBUG][       Thread-603689][   transport.py][1871] : starting thread (client mode): 0x75aaef0
2025-07-01 11:52:50,700 [DEBUG][       Thread-603689][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:52:50,721 [DEBUG][       Thread-603689][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:52:50,721 [ INFO][       Thread-603689][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:52:50,724 [DEBUG][       Thread-603689][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:52:50,724 [DEBUG][       Thread-603689][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:52:50,724 [DEBUG][       Thread-603689][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:52:50,724 [DEBUG][       Thread-603689][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:52:50,724 [DEBUG][       Thread-603689][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:52:50,724 [DEBUG][       Thread-603689][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:52:50,724 [DEBUG][       Thread-603689][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:52:50,724 [DEBUG][       Thread-603689][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:52:50,724 [DEBUG][       Thread-603689][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:52:50,724 [DEBUG][       Thread-603689][   transport.py][1871] : client lang: <none>
2025-07-01 11:52:50,724 [DEBUG][       Thread-603689][   transport.py][1871] : server lang: <none>
2025-07-01 11:52:50,725 [DEBUG][       Thread-603689][   transport.py][1871] : kex follows: False
2025-07-01 11:52:50,725 [DEBUG][       Thread-603689][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:52:50,725 [DEBUG][       Thread-603689][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:52:50,725 [DEBUG][       Thread-603689][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:52:50,725 [DEBUG][       Thread-603689][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:52:50,725 [DEBUG][       Thread-603689][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:52:50,725 [DEBUG][       Thread-603689][   transport.py][1871] : Compression: none
2025-07-01 11:52:50,725 [DEBUG][       Thread-603689][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:52:50,740 [DEBUG][       Thread-603689][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:52:50,740 [DEBUG][       Thread-603689][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:52:50,740 [DEBUG][       Thread-603689][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:52:50,740 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:52:50,740 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:52:50,741 [DEBUG][       Thread-603689][   transport.py][1871] : userauth is OK
2025-07-01 11:52:50,765 [ INFO][       Thread-603689][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:52:50,765 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:52:51,377 [DEBUG][       Thread-603689][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:52:51,377 [DEBUG][       Thread-603689][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:52:51,420 [DEBUG][       Thread-603689][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:52:51,420 [DEBUG][       Thread-603689][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:52:51,422 [DEBUG][       Thread-603689][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:52:51,434 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:52:51,434 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:52:51,435 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:52:51,435 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:52:51,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:52:51,438 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:52:51,438 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:52:51,439 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:52:51,439 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.411055 -999.00  +11.20  34.26     55   +2.50 1 2 2 1 1   888    0 8.81 13.60 ----- 34.3 34.3 28.6 48.7 14.7 -21.6 13.7 -22.8 13.2 -20.6 -999.0 -999.0
2025-07-01 11:52:51,439 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:52:51,439 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:52:51,439 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.411055
2025-07-01 11:52:51,439 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:52:51,439 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:52:51,439 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:52:51,439 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:52:51,439 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:52:51,439 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:52:18', tmtdew=10.16, humidity=49.79, cloud=0.0, wind=33.91, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:51:55.152', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:52:51,440 [DEBUG][       Thread-603689][   transport.py][1871] : EOF in transport thread
2025-07-01 11:52:51,514 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:52:51,527 [DEBUG][       Thread-603692][   transport.py][1871] : starting thread (client mode): 0x8106b60
2025-07-01 11:52:51,527 [DEBUG][       Thread-603692][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:52:51,543 [DEBUG][       Thread-603692][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:52:51,543 [ INFO][       Thread-603692][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:52:51,550 [DEBUG][       Thread-603692][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:52:51,550 [DEBUG][       Thread-603692][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:52:51,550 [DEBUG][       Thread-603692][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:52:51,550 [DEBUG][       Thread-603692][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:52:51,550 [DEBUG][       Thread-603692][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:52:51,550 [DEBUG][       Thread-603692][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:52:51,550 [DEBUG][       Thread-603692][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:52:51,550 [DEBUG][       Thread-603692][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:52:51,550 [DEBUG][       Thread-603692][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:52:51,550 [DEBUG][       Thread-603692][   transport.py][1871] : client lang: <none>
2025-07-01 11:52:51,550 [DEBUG][       Thread-603692][   transport.py][1871] : server lang: <none>
2025-07-01 11:52:51,550 [DEBUG][       Thread-603692][   transport.py][1871] : kex follows: False
2025-07-01 11:52:51,550 [DEBUG][       Thread-603692][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:52:51,550 [DEBUG][       Thread-603692][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:52:51,550 [DEBUG][       Thread-603692][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:52:51,550 [DEBUG][       Thread-603692][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:52:51,550 [DEBUG][       Thread-603692][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:52:51,550 [DEBUG][       Thread-603692][   transport.py][1871] : Compression: none
2025-07-01 11:52:51,550 [DEBUG][       Thread-603692][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:52:51,605 [DEBUG][       Thread-603692][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:52:51,605 [DEBUG][       Thread-603692][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:52:51,605 [DEBUG][       Thread-603692][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:52:51,605 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:52:51,605 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:52:51,662 [DEBUG][       Thread-603692][   transport.py][1871] : userauth is OK
2025-07-01 11:52:51,662 [DEBUG][       Thread-603692][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:52:51,662 [DEBUG][       Thread-603692][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:52:51,662 [DEBUG][       Thread-603692][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:52:51,662 [DEBUG][       Thread-603692][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:52:51,677 [ INFO][       Thread-603692][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:52:51,677 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:52:51,677 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:52:52,714 [DEBUG][       Thread-603692][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:52:52,714 [DEBUG][       Thread-603692][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:52:52,764 [DEBUG][       Thread-603692][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:52:52,764 [DEBUG][       Thread-603692][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:52:52,773 [DEBUG][       Thread-603692][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:52:52,782 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:52:52,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')
2025-07-01 11:52:52,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-07-01 11:52:52,799 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:52:52,799 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:52:52,800 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:52:52,807 [DEBUG][       Thread-603692][   transport.py][1871] : EOF in transport thread
2025-07-01 11:52:57,812 [DEBUG][Thread-603694 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:53:02,804 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:53:02,804 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:53:02,804 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:53:02,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-07-01 11:53:03,310 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 52, 50), 10.25, 49.48, 0.0, 35.82, 11.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:53:03,310 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:52:50
2025-07-01 11:53:03,395 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:53:03,399 [DEBUG][       Thread-603695][   transport.py][1871] : starting thread (client mode): 0x8170100
2025-07-01 11:53:03,399 [DEBUG][       Thread-603695][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:53:03,419 [DEBUG][       Thread-603695][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:53:03,419 [ INFO][       Thread-603695][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:53:03,423 [DEBUG][       Thread-603695][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:53:03,423 [DEBUG][       Thread-603695][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:53:03,423 [DEBUG][       Thread-603695][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:53:03,423 [DEBUG][       Thread-603695][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:53:03,423 [DEBUG][       Thread-603695][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:53:03,423 [DEBUG][       Thread-603695][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:53:03,423 [DEBUG][       Thread-603695][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:53:03,423 [DEBUG][       Thread-603695][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:53:03,423 [DEBUG][       Thread-603695][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:53:03,423 [DEBUG][       Thread-603695][   transport.py][1871] : client lang: <none>
2025-07-01 11:53:03,423 [DEBUG][       Thread-603695][   transport.py][1871] : server lang: <none>
2025-07-01 11:53:03,423 [DEBUG][       Thread-603695][   transport.py][1871] : kex follows: False
2025-07-01 11:53:03,423 [DEBUG][       Thread-603695][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:53:03,423 [DEBUG][       Thread-603695][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:53:03,423 [DEBUG][       Thread-603695][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:53:03,423 [DEBUG][       Thread-603695][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:53:03,423 [DEBUG][       Thread-603695][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:53:03,423 [DEBUG][       Thread-603695][   transport.py][1871] : Compression: none
2025-07-01 11:53:03,423 [DEBUG][       Thread-603695][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:53:03,440 [DEBUG][       Thread-603695][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:53:03,440 [DEBUG][       Thread-603695][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:53:03,441 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:53:03,441 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:53:03,442 [DEBUG][       Thread-603695][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:53:03,442 [DEBUG][       Thread-603695][   transport.py][1871] : userauth is OK
2025-07-01 11:53:03,456 [ INFO][       Thread-603695][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:53:03,456 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:53:04,109 [DEBUG][       Thread-603695][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:53:04,109 [DEBUG][       Thread-603695][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:53:04,153 [DEBUG][       Thread-603695][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:53:04,153 [DEBUG][       Thread-603695][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:53:04,157 [DEBUG][       Thread-603695][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:53:04,168 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:53:04,168 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:53:04,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:53:04,172 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:53:04,178 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:53:04,180 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:53:04,180 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:53:04,181 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:53:04,181 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.411750 -999.00  +11.20  41.86     53   +2.20 1 2 2 1 1   888    0 9.04 14.92 ----- 41.9 41.9 45.6 48.3 14.8 -23.2 13.7 -23.4 13.3 -21.7 14.3 -21.1
2025-07-01 11:53:04,181 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:53:04,181 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:53:04,181 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.411750
2025-07-01 11:53:04,182 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:53:04,182 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:53:04,182 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:53:04,183 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:53:04,183 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:53:04,183 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:52:50', tmtdew=10.25, humidity=49.48, cloud=0.0, wind=35.82, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:52:55.200', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:53:04,184 [DEBUG][       Thread-603695][   transport.py][1871] : EOF in transport thread
2025-07-01 11:53:04,267 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:53:04,277 [DEBUG][       Thread-603698][   transport.py][1871] : starting thread (client mode): 0x818fac0
2025-07-01 11:53:04,277 [DEBUG][       Thread-603698][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:53:04,294 [DEBUG][       Thread-603698][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:53:04,294 [ INFO][       Thread-603698][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:53:04,303 [DEBUG][       Thread-603698][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:53:04,303 [DEBUG][       Thread-603698][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:53:04,303 [DEBUG][       Thread-603698][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:53:04,303 [DEBUG][       Thread-603698][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:53:04,303 [DEBUG][       Thread-603698][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:53:04,303 [DEBUG][       Thread-603698][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:53:04,303 [DEBUG][       Thread-603698][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:53:04,304 [DEBUG][       Thread-603698][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:53:04,304 [DEBUG][       Thread-603698][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:53:04,304 [DEBUG][       Thread-603698][   transport.py][1871] : client lang: <none>
2025-07-01 11:53:04,304 [DEBUG][       Thread-603698][   transport.py][1871] : server lang: <none>
2025-07-01 11:53:04,304 [DEBUG][       Thread-603698][   transport.py][1871] : kex follows: False
2025-07-01 11:53:04,304 [DEBUG][       Thread-603698][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:53:04,304 [DEBUG][       Thread-603698][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:53:04,304 [DEBUG][       Thread-603698][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:53:04,304 [DEBUG][       Thread-603698][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:53:04,304 [DEBUG][       Thread-603698][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:53:04,304 [DEBUG][       Thread-603698][   transport.py][1871] : Compression: none
2025-07-01 11:53:04,304 [DEBUG][       Thread-603698][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:53:04,369 [DEBUG][       Thread-603698][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:53:04,369 [DEBUG][       Thread-603698][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:53:04,370 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:53:04,370 [DEBUG][       Thread-603698][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:53:04,371 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:53:04,427 [DEBUG][       Thread-603698][   transport.py][1871] : userauth is OK
2025-07-01 11:53:04,427 [DEBUG][       Thread-603698][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:53:04,427 [DEBUG][       Thread-603698][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:53:04,427 [DEBUG][       Thread-603698][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:53:04,427 [DEBUG][       Thread-603698][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:53:04,447 [ INFO][       Thread-603698][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:53:04,448 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:53:04,448 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:53:05,466 [DEBUG][       Thread-603698][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:53:05,466 [DEBUG][       Thread-603698][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:53:05,516 [DEBUG][       Thread-603698][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:53:05,516 [DEBUG][       Thread-603698][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:53:05,525 [DEBUG][       Thread-603698][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:53:05,534 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:53: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-07-01 11:53:05,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-07-01 11:53:05,552 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:53:05,552 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:53:05,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:53:05,560 [DEBUG][       Thread-603698][   transport.py][1871] : EOF in transport thread
2025-07-01 11:53:06,835 [DEBUG][Thread-603700 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:53:11,233 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:53:11,234 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:53:15,563 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:53:15,563 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:53:15,563 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:53:15,566 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 11:53:15,868 [DEBUG][Thread-603701 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:53:16,070 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 52, 50), 10.25, 49.48, 0.0, 35.82, 11.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:53:16,070 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:52:50
2025-07-01 11:53:16,154 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:53:16,159 [DEBUG][       Thread-603702][   transport.py][1871] : starting thread (client mode): 0x82b17e0
2025-07-01 11:53:16,159 [DEBUG][       Thread-603702][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:53:16,181 [DEBUG][       Thread-603702][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:53:16,181 [ INFO][       Thread-603702][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:53:16,185 [DEBUG][       Thread-603702][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:53:16,185 [DEBUG][       Thread-603702][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:53:16,185 [DEBUG][       Thread-603702][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:53:16,185 [DEBUG][       Thread-603702][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:53:16,185 [DEBUG][       Thread-603702][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:53:16,185 [DEBUG][       Thread-603702][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:53:16,185 [DEBUG][       Thread-603702][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:53:16,185 [DEBUG][       Thread-603702][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:53:16,185 [DEBUG][       Thread-603702][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:53:16,185 [DEBUG][       Thread-603702][   transport.py][1871] : client lang: <none>
2025-07-01 11:53:16,185 [DEBUG][       Thread-603702][   transport.py][1871] : server lang: <none>
2025-07-01 11:53:16,185 [DEBUG][       Thread-603702][   transport.py][1871] : kex follows: False
2025-07-01 11:53:16,185 [DEBUG][       Thread-603702][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:53:16,186 [DEBUG][       Thread-603702][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:53:16,186 [DEBUG][       Thread-603702][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:53:16,186 [DEBUG][       Thread-603702][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:53:16,186 [DEBUG][       Thread-603702][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:53:16,186 [DEBUG][       Thread-603702][   transport.py][1871] : Compression: none
2025-07-01 11:53:16,186 [DEBUG][       Thread-603702][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:53:16,206 [DEBUG][       Thread-603702][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:53:16,206 [DEBUG][       Thread-603702][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:53:16,207 [DEBUG][       Thread-603702][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:53:16,207 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:53:16,207 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:53:16,208 [DEBUG][       Thread-603702][   transport.py][1871] : userauth is OK
2025-07-01 11:53:16,234 [ INFO][       Thread-603702][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:53:16,234 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:53:16,909 [DEBUG][       Thread-603702][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:53:16,910 [DEBUG][       Thread-603702][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:53:16,953 [DEBUG][       Thread-603702][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:53:16,953 [DEBUG][       Thread-603702][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:53:16,957 [DEBUG][       Thread-603702][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:53:16,970 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:53:16,970 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:53:16,981 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:53:16,983 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:53:16,988 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:53:16,990 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:53:16,990 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:53:16,991 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:53:16,991 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.411750 -999.00  +11.20  41.86     53   +2.20 1 2 2 1 1   888    0 9.04 14.92 ----- 41.9 41.9 45.6 48.3 14.8 -23.2 13.7 -23.4 13.3 -21.7 14.3 -21.1
2025-07-01 11:53:16,991 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:53:16,991 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:53:16,991 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.411750
2025-07-01 11:53:16,992 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:53:16,993 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:53:16,993 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:53:16,993 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:53:16,993 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:53:16,993 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:52:50', tmtdew=10.25, humidity=49.48, cloud=0.0, wind=35.82, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:52:55.200', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:53:16,994 [DEBUG][       Thread-603702][   transport.py][1871] : EOF in transport thread
2025-07-01 11:53:17,077 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:53:17,086 [DEBUG][       Thread-603705][   transport.py][1871] : starting thread (client mode): 0x81e5ed0
2025-07-01 11:53:17,086 [DEBUG][       Thread-603705][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:53:17,103 [DEBUG][       Thread-603705][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:53:17,103 [ INFO][       Thread-603705][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:53:17,111 [DEBUG][       Thread-603705][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:53:17,111 [DEBUG][       Thread-603705][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:53:17,111 [DEBUG][       Thread-603705][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:53:17,111 [DEBUG][       Thread-603705][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:53:17,111 [DEBUG][       Thread-603705][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:53:17,111 [DEBUG][       Thread-603705][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:53:17,111 [DEBUG][       Thread-603705][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:53:17,111 [DEBUG][       Thread-603705][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:53:17,111 [DEBUG][       Thread-603705][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:53:17,111 [DEBUG][       Thread-603705][   transport.py][1871] : client lang: <none>
2025-07-01 11:53:17,112 [DEBUG][       Thread-603705][   transport.py][1871] : server lang: <none>
2025-07-01 11:53:17,112 [DEBUG][       Thread-603705][   transport.py][1871] : kex follows: False
2025-07-01 11:53:17,112 [DEBUG][       Thread-603705][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:53:17,112 [DEBUG][       Thread-603705][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:53:17,112 [DEBUG][       Thread-603705][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:53:17,112 [DEBUG][       Thread-603705][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:53:17,112 [DEBUG][       Thread-603705][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:53:17,112 [DEBUG][       Thread-603705][   transport.py][1871] : Compression: none
2025-07-01 11:53:17,112 [DEBUG][       Thread-603705][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:53:17,171 [DEBUG][       Thread-603705][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:53:17,171 [DEBUG][       Thread-603705][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:53:17,172 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:53:17,172 [DEBUG][       Thread-603705][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:53:17,173 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:53:17,229 [DEBUG][       Thread-603705][   transport.py][1871] : userauth is OK
2025-07-01 11:53:17,229 [DEBUG][       Thread-603705][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:53:17,230 [DEBUG][       Thread-603705][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:53:17,230 [DEBUG][       Thread-603705][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:53:17,230 [DEBUG][       Thread-603705][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:53:17,247 [ INFO][       Thread-603705][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:53:17,248 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:53:17,248 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:53:18,234 [DEBUG][       Thread-603705][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:53:18,234 [DEBUG][       Thread-603705][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:53:18,298 [DEBUG][       Thread-603705][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:53:18,298 [DEBUG][       Thread-603705][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:53:18,309 [DEBUG][       Thread-603705][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:53:18,326 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:53:18,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-07-01 11:53:18,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-07-01 11:53:18,345 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:53:18,345 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:53:18,345 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:53:18,357 [DEBUG][       Thread-603705][   transport.py][1871] : EOF in transport thread
2025-07-01 11:53:24,888 [DEBUG][Thread-603707 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:53:27,514 [DEBUG][Thread-603708 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:53:28,355 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:53:28,355 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:53:28,356 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:53:28,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-07-01 11:53:28,847 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 53, 22), 10.16, 49.79, 0.0, 31.02, 11.34, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:53:28,847 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:53:22
2025-07-01 11:53:28,931 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:53:28,937 [DEBUG][       Thread-603709][   transport.py][1871] : starting thread (client mode): 0x8156020
2025-07-01 11:53:28,937 [DEBUG][       Thread-603709][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:53:28,957 [DEBUG][       Thread-603709][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:53:28,957 [ INFO][       Thread-603709][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:53:28,960 [DEBUG][       Thread-603709][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:53:28,960 [DEBUG][       Thread-603709][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:53:28,960 [DEBUG][       Thread-603709][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:53:28,960 [DEBUG][       Thread-603709][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:53:28,960 [DEBUG][       Thread-603709][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:53:28,960 [DEBUG][       Thread-603709][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:53:28,960 [DEBUG][       Thread-603709][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:53:28,960 [DEBUG][       Thread-603709][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:53:28,960 [DEBUG][       Thread-603709][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:53:28,961 [DEBUG][       Thread-603709][   transport.py][1871] : client lang: <none>
2025-07-01 11:53:28,961 [DEBUG][       Thread-603709][   transport.py][1871] : server lang: <none>
2025-07-01 11:53:28,961 [DEBUG][       Thread-603709][   transport.py][1871] : kex follows: False
2025-07-01 11:53:28,961 [DEBUG][       Thread-603709][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:53:28,961 [DEBUG][       Thread-603709][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:53:28,961 [DEBUG][       Thread-603709][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:53:28,961 [DEBUG][       Thread-603709][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:53:28,961 [DEBUG][       Thread-603709][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:53:28,961 [DEBUG][       Thread-603709][   transport.py][1871] : Compression: none
2025-07-01 11:53:28,961 [DEBUG][       Thread-603709][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:53:28,977 [DEBUG][       Thread-603709][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:53:28,977 [DEBUG][       Thread-603709][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:53:28,978 [DEBUG][       Thread-603709][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:53:28,978 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:53:28,978 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:53:28,979 [DEBUG][       Thread-603709][   transport.py][1871] : userauth is OK
2025-07-01 11:53:28,992 [ INFO][       Thread-603709][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:53:28,992 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:53:29,670 [DEBUG][       Thread-603709][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:53:29,670 [DEBUG][       Thread-603709][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:53:29,713 [DEBUG][       Thread-603709][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:53:29,713 [DEBUG][       Thread-603709][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:53:29,716 [DEBUG][       Thread-603709][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:53:29,728 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:53:29,729 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:53:29,730 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:53:29,732 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:53:29,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:53:29,740 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:53:29,740 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:53:29,741 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:53:29,741 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.411750 -999.00  +11.20  41.86     53   +2.20 1 2 2 1 1   888    0 9.04 14.92 ----- 41.9 41.9 45.6 48.3 14.8 -23.2 13.7 -23.4 13.3 -21.7 14.3 -21.1
2025-07-01 11:53:29,741 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:53:29,741 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:53:29,742 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.411750
2025-07-01 11:53:29,742 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:53:29,743 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:53:29,743 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:53:29,743 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:53:29,743 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:53:29,743 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:53:22', tmtdew=10.16, humidity=49.79, cloud=0.0, wind=31.02, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:52:55.200', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:53:29,743 [DEBUG][       Thread-603709][   transport.py][1871] : EOF in transport thread
2025-07-01 11:53:29,827 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:53:29,836 [DEBUG][       Thread-603712][   transport.py][1871] : starting thread (client mode): 0x75ab460
2025-07-01 11:53:29,836 [DEBUG][       Thread-603712][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:53:29,851 [DEBUG][       Thread-603712][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:53:29,852 [ INFO][       Thread-603712][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:53:29,859 [DEBUG][       Thread-603712][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:53:29,859 [DEBUG][       Thread-603712][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:53:29,859 [DEBUG][       Thread-603712][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:53:29,859 [DEBUG][       Thread-603712][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:53:29,859 [DEBUG][       Thread-603712][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:53:29,859 [DEBUG][       Thread-603712][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:53:29,859 [DEBUG][       Thread-603712][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:53:29,859 [DEBUG][       Thread-603712][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:53:29,859 [DEBUG][       Thread-603712][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:53:29,859 [DEBUG][       Thread-603712][   transport.py][1871] : client lang: <none>
2025-07-01 11:53:29,859 [DEBUG][       Thread-603712][   transport.py][1871] : server lang: <none>
2025-07-01 11:53:29,859 [DEBUG][       Thread-603712][   transport.py][1871] : kex follows: False
2025-07-01 11:53:29,860 [DEBUG][       Thread-603712][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:53:29,860 [DEBUG][       Thread-603712][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:53:29,860 [DEBUG][       Thread-603712][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:53:29,860 [DEBUG][       Thread-603712][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:53:29,860 [DEBUG][       Thread-603712][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:53:29,860 [DEBUG][       Thread-603712][   transport.py][1871] : Compression: none
2025-07-01 11:53:29,860 [DEBUG][       Thread-603712][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:53:29,919 [DEBUG][       Thread-603712][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:53:29,920 [DEBUG][       Thread-603712][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:53:29,920 [DEBUG][       Thread-603712][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:53:29,921 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:53:29,921 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:53:29,975 [DEBUG][       Thread-603712][   transport.py][1871] : userauth is OK
2025-07-01 11:53:29,975 [DEBUG][       Thread-603712][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:53:29,975 [DEBUG][       Thread-603712][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:53:29,975 [DEBUG][       Thread-603712][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:53:29,975 [DEBUG][       Thread-603712][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:53:29,994 [ INFO][       Thread-603712][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:53:29,995 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:53:29,995 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:53:31,018 [DEBUG][       Thread-603712][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:53:31,018 [DEBUG][       Thread-603712][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:53:31,068 [DEBUG][       Thread-603712][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:53:31,068 [DEBUG][       Thread-603712][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:53:31,078 [DEBUG][       Thread-603712][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:53:31,087 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:53:31,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-07-01 11:53:31,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-07-01 11:53:31,105 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:53:31,105 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:53:31,106 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:53:31,114 [DEBUG][       Thread-603712][   transport.py][1871] : EOF in transport thread
2025-07-01 11:53:33,910 [DEBUG][Thread-603714 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:53:41,116 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:53:41,117 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:53:41,117 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:53:41,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-07-01 11:53:41,606 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 53, 22), 10.16, 49.79, 0.0, 31.02, 11.34, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:53:41,606 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:53:22
2025-07-01 11:53:41,690 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:53:41,693 [DEBUG][       Thread-603715][   transport.py][1871] : starting thread (client mode): 0x8172710
2025-07-01 11:53:41,693 [DEBUG][       Thread-603715][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:53:41,705 [DEBUG][       Thread-603715][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:53:41,705 [ INFO][       Thread-603715][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:53:41,707 [DEBUG][       Thread-603715][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:53:41,707 [DEBUG][       Thread-603715][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:53:41,707 [DEBUG][       Thread-603715][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:53:41,707 [DEBUG][       Thread-603715][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:53:41,707 [DEBUG][       Thread-603715][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:53:41,707 [DEBUG][       Thread-603715][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:53:41,707 [DEBUG][       Thread-603715][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:53:41,707 [DEBUG][       Thread-603715][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:53:41,707 [DEBUG][       Thread-603715][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:53:41,707 [DEBUG][       Thread-603715][   transport.py][1871] : client lang: <none>
2025-07-01 11:53:41,707 [DEBUG][       Thread-603715][   transport.py][1871] : server lang: <none>
2025-07-01 11:53:41,707 [DEBUG][       Thread-603715][   transport.py][1871] : kex follows: False
2025-07-01 11:53:41,707 [DEBUG][       Thread-603715][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:53:41,707 [DEBUG][       Thread-603715][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:53:41,707 [DEBUG][       Thread-603715][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:53:41,707 [DEBUG][       Thread-603715][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:53:41,707 [DEBUG][       Thread-603715][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:53:41,707 [DEBUG][       Thread-603715][   transport.py][1871] : Compression: none
2025-07-01 11:53:41,707 [DEBUG][       Thread-603715][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:53:41,726 [DEBUG][       Thread-603715][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:53:41,727 [DEBUG][       Thread-603715][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:53:41,727 [DEBUG][       Thread-603715][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:53:41,727 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:53:41,728 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:53:41,729 [DEBUG][       Thread-603715][   transport.py][1871] : userauth is OK
2025-07-01 11:53:41,753 [ INFO][       Thread-603715][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:53:41,754 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:53:42,413 [DEBUG][       Thread-603715][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:53:42,414 [DEBUG][       Thread-603715][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:53:42,457 [DEBUG][       Thread-603715][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:53:42,457 [DEBUG][       Thread-603715][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:53:42,460 [DEBUG][       Thread-603715][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:53:42,473 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:53:42,473 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:53:42,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:53:42,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:53:42,482 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:53:42,484 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:53:42,485 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:53:42,485 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:53:42,485 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.412097 -999.00  +11.20  38.30     54   +2.30 1 2 2 1 1   888    0 8.99 16.82 ----- 38.3 38.3 43.6 46.1 14.8 -22.0 13.8 -23.2 13.3 -20.7 14.3 -20.2
2025-07-01 11:53:42,485 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:53:42,486 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:53:42,486 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.412097
2025-07-01 11:53:42,486 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:53:42,487 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:53:42,487 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:53:42,487 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:53:42,487 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:53:42,487 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:53:22', tmtdew=10.16, humidity=49.79, cloud=0.0, wind=31.02, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:53:25.181', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:53:42,487 [DEBUG][       Thread-603715][   transport.py][1871] : EOF in transport thread
2025-07-01 11:53:42,571 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:53:42,580 [DEBUG][       Thread-603718][   transport.py][1871] : starting thread (client mode): 0x818fd60
2025-07-01 11:53:42,580 [DEBUG][       Thread-603718][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:53:42,595 [DEBUG][       Thread-603718][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:53:42,595 [ INFO][       Thread-603718][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:53:42,602 [DEBUG][       Thread-603718][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:53:42,603 [DEBUG][       Thread-603718][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:53:42,603 [DEBUG][       Thread-603718][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:53:42,603 [DEBUG][       Thread-603718][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:53:42,603 [DEBUG][       Thread-603718][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:53:42,603 [DEBUG][       Thread-603718][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:53:42,603 [DEBUG][       Thread-603718][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:53:42,603 [DEBUG][       Thread-603718][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:53:42,603 [DEBUG][       Thread-603718][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:53:42,603 [DEBUG][       Thread-603718][   transport.py][1871] : client lang: <none>
2025-07-01 11:53:42,603 [DEBUG][       Thread-603718][   transport.py][1871] : server lang: <none>
2025-07-01 11:53:42,603 [DEBUG][       Thread-603718][   transport.py][1871] : kex follows: False
2025-07-01 11:53:42,603 [DEBUG][       Thread-603718][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:53:42,603 [DEBUG][       Thread-603718][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:53:42,603 [DEBUG][       Thread-603718][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:53:42,603 [DEBUG][       Thread-603718][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:53:42,603 [DEBUG][       Thread-603718][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:53:42,603 [DEBUG][       Thread-603718][   transport.py][1871] : Compression: none
2025-07-01 11:53:42,603 [DEBUG][       Thread-603718][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:53:42,663 [DEBUG][       Thread-603718][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:53:42,664 [DEBUG][       Thread-603718][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:53:42,664 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:53:42,665 [DEBUG][       Thread-603718][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:53:42,666 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:53:42,723 [DEBUG][       Thread-603718][   transport.py][1871] : userauth is OK
2025-07-01 11:53:42,723 [DEBUG][       Thread-603718][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:53:42,724 [DEBUG][       Thread-603718][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:53:42,724 [DEBUG][       Thread-603718][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:53:42,724 [DEBUG][       Thread-603718][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:53:42,747 [ INFO][       Thread-603718][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:53:42,747 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:53:42,747 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:53:42,945 [DEBUG][Thread-603720 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:53:43,738 [DEBUG][       Thread-603718][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:53:43,738 [DEBUG][       Thread-603718][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:53:43,789 [DEBUG][       Thread-603718][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:53:43,790 [DEBUG][       Thread-603718][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:53:43,799 [DEBUG][       Thread-603718][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:53:43,807 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:53: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-07-01 11:53:43,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-07-01 11:53:43,824 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:53:43,825 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:53:43,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:53:43,833 [DEBUG][       Thread-603718][   transport.py][1871] : EOF in transport thread
2025-07-01 11:53:51,966 [DEBUG][Thread-603721 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:53:53,836 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:53:53,836 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:53:53,836 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:53: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-07-01 11:53:54,385 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 53, 22), 10.16, 49.79, 0.0, 31.02, 11.34, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:53:54,385 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:53:22
2025-07-01 11:53:54,474 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:53:54,480 [DEBUG][       Thread-603722][   transport.py][1871] : starting thread (client mode): 0x8172290
2025-07-01 11:53:54,480 [DEBUG][       Thread-603722][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:53:54,500 [DEBUG][       Thread-603722][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:53:54,500 [ INFO][       Thread-603722][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:53:54,503 [DEBUG][       Thread-603722][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:53:54,503 [DEBUG][       Thread-603722][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:53:54,503 [DEBUG][       Thread-603722][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:53:54,503 [DEBUG][       Thread-603722][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:53:54,503 [DEBUG][       Thread-603722][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:53:54,503 [DEBUG][       Thread-603722][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:53:54,503 [DEBUG][       Thread-603722][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:53:54,503 [DEBUG][       Thread-603722][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:53:54,503 [DEBUG][       Thread-603722][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:53:54,503 [DEBUG][       Thread-603722][   transport.py][1871] : client lang: <none>
2025-07-01 11:53:54,503 [DEBUG][       Thread-603722][   transport.py][1871] : server lang: <none>
2025-07-01 11:53:54,503 [DEBUG][       Thread-603722][   transport.py][1871] : kex follows: False
2025-07-01 11:53:54,503 [DEBUG][       Thread-603722][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:53:54,503 [DEBUG][       Thread-603722][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:53:54,503 [DEBUG][       Thread-603722][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:53:54,503 [DEBUG][       Thread-603722][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:53:54,503 [DEBUG][       Thread-603722][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:53:54,503 [DEBUG][       Thread-603722][   transport.py][1871] : Compression: none
2025-07-01 11:53:54,503 [DEBUG][       Thread-603722][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:53:54,517 [DEBUG][       Thread-603722][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:53:54,517 [DEBUG][       Thread-603722][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:53:54,518 [DEBUG][       Thread-603722][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:53:54,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:53:54,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:53:54,519 [DEBUG][       Thread-603722][   transport.py][1871] : userauth is OK
2025-07-01 11:53:54,543 [ INFO][       Thread-603722][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:53:54,543 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:53:55,206 [DEBUG][       Thread-603722][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:53:55,206 [DEBUG][       Thread-603722][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:53:55,249 [DEBUG][       Thread-603722][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:53:55,249 [DEBUG][       Thread-603722][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:53:55,251 [DEBUG][       Thread-603722][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:53:55,263 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:53:55,263 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:53:55,264 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:53:55,265 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:53:55,267 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:53:55,268 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:53:55,268 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:53:55,268 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:53:55,268 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.412097 -999.00  +11.20  38.30     54   +2.30 1 2 2 1 1   888    0 8.99 16.82 ----- 38.3 38.3 43.6 46.1 14.8 -22.0 13.8 -23.2 13.3 -20.7 14.3 -20.2
2025-07-01 11:53:55,268 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:53:55,268 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:53:55,268 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.412097
2025-07-01 11:53:55,268 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:53:55,269 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:53:55,269 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:53:55,269 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:53:55,269 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:53:55,269 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:53:22', tmtdew=10.16, humidity=49.79, cloud=0.0, wind=31.02, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:53:25.181', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:53:55,270 [DEBUG][       Thread-603722][   transport.py][1871] : EOF in transport thread
2025-07-01 11:53:55,343 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:53:55,355 [DEBUG][       Thread-603725][   transport.py][1871] : starting thread (client mode): 0x8171360
2025-07-01 11:53:55,355 [DEBUG][       Thread-603725][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:53:55,371 [DEBUG][       Thread-603725][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:53:55,371 [ INFO][       Thread-603725][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:53:55,379 [DEBUG][       Thread-603725][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:53:55,379 [DEBUG][       Thread-603725][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:53:55,379 [DEBUG][       Thread-603725][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:53:55,379 [DEBUG][       Thread-603725][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:53:55,379 [DEBUG][       Thread-603725][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:53:55,379 [DEBUG][       Thread-603725][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:53:55,379 [DEBUG][       Thread-603725][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:53:55,379 [DEBUG][       Thread-603725][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:53:55,379 [DEBUG][       Thread-603725][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:53:55,379 [DEBUG][       Thread-603725][   transport.py][1871] : client lang: <none>
2025-07-01 11:53:55,379 [DEBUG][       Thread-603725][   transport.py][1871] : server lang: <none>
2025-07-01 11:53:55,379 [DEBUG][       Thread-603725][   transport.py][1871] : kex follows: False
2025-07-01 11:53:55,379 [DEBUG][       Thread-603725][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:53:55,379 [DEBUG][       Thread-603725][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:53:55,379 [DEBUG][       Thread-603725][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:53:55,379 [DEBUG][       Thread-603725][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:53:55,379 [DEBUG][       Thread-603725][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:53:55,379 [DEBUG][       Thread-603725][   transport.py][1871] : Compression: none
2025-07-01 11:53:55,379 [DEBUG][       Thread-603725][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:53:55,437 [DEBUG][       Thread-603725][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:53:55,437 [DEBUG][       Thread-603725][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:53:55,437 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:53:55,437 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:53:55,438 [DEBUG][       Thread-603725][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:53:55,497 [DEBUG][       Thread-603725][   transport.py][1871] : userauth is OK
2025-07-01 11:53:55,497 [DEBUG][       Thread-603725][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:53:55,497 [DEBUG][       Thread-603725][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:53:55,497 [DEBUG][       Thread-603725][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:53:55,497 [DEBUG][       Thread-603725][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:53:55,512 [ INFO][       Thread-603725][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:53:55,512 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:53:55,512 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:53:56,504 [DEBUG][       Thread-603725][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:53:56,504 [DEBUG][       Thread-603725][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:53:56,555 [DEBUG][       Thread-603725][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:53:56,555 [DEBUG][       Thread-603725][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:53:56,564 [DEBUG][       Thread-603725][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:53:56,572 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:53:56,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-07-01 11:53:56,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-07-01 11:53:56,588 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:53:56,588 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:53:56,588 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:53:56,596 [DEBUG][       Thread-603725][   transport.py][1871] : EOF in transport thread
2025-07-01 11:54:00,985 [DEBUG][Thread-603727 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:54:06,595 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:54:06,595 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:54:06,595 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:54:06,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-07-01 11:54:07,098 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 53, 53), 10.15, 49.82, 0.0, 29.18, 11.35, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:54:07,098 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:53:53
2025-07-01 11:54:07,182 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:54:07,186 [DEBUG][       Thread-603728][   transport.py][1871] : starting thread (client mode): 0x75aa0e0
2025-07-01 11:54:07,186 [DEBUG][       Thread-603728][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:54:07,207 [DEBUG][       Thread-603728][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:54:07,207 [ INFO][       Thread-603728][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:54:07,209 [DEBUG][       Thread-603728][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:54:07,209 [DEBUG][       Thread-603728][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:54:07,209 [DEBUG][       Thread-603728][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:54:07,209 [DEBUG][       Thread-603728][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:54:07,209 [DEBUG][       Thread-603728][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:54:07,209 [DEBUG][       Thread-603728][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:54:07,210 [DEBUG][       Thread-603728][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:54:07,210 [DEBUG][       Thread-603728][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:54:07,210 [DEBUG][       Thread-603728][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:54:07,210 [DEBUG][       Thread-603728][   transport.py][1871] : client lang: <none>
2025-07-01 11:54:07,210 [DEBUG][       Thread-603728][   transport.py][1871] : server lang: <none>
2025-07-01 11:54:07,210 [DEBUG][       Thread-603728][   transport.py][1871] : kex follows: False
2025-07-01 11:54:07,210 [DEBUG][       Thread-603728][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:54:07,210 [DEBUG][       Thread-603728][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:54:07,210 [DEBUG][       Thread-603728][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:54:07,210 [DEBUG][       Thread-603728][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:54:07,210 [DEBUG][       Thread-603728][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:54:07,210 [DEBUG][       Thread-603728][   transport.py][1871] : Compression: none
2025-07-01 11:54:07,210 [DEBUG][       Thread-603728][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:54:07,226 [DEBUG][       Thread-603728][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:54:07,226 [DEBUG][       Thread-603728][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:54:07,227 [DEBUG][       Thread-603728][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:54:07,227 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:54:07,227 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:54:07,228 [DEBUG][       Thread-603728][   transport.py][1871] : userauth is OK
2025-07-01 11:54:07,277 [ INFO][       Thread-603728][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:54:07,277 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:54:07,898 [DEBUG][       Thread-603728][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:54:07,899 [DEBUG][       Thread-603728][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:54:07,941 [DEBUG][       Thread-603728][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:54:07,941 [DEBUG][       Thread-603728][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:54:07,944 [DEBUG][       Thread-603728][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:54:07,958 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:54:07,958 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:54:07,959 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:54:07,960 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:54:07,964 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:54:07,965 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:54:07,965 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:54:07,965 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:54:07,965 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.412097 -999.00  +11.20  38.30     54   +2.30 1 2 2 1 1   888    0 8.99 16.82 ----- 38.3 38.3 43.6 46.1 14.8 -22.0 13.8 -23.2 13.3 -20.7 14.3 -20.2
2025-07-01 11:54:07,965 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:54:07,965 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:54:07,965 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.412097
2025-07-01 11:54:07,965 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:54:07,965 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:54:07,965 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:54:07,965 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:54:07,965 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:54:07,965 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:53:53', tmtdew=10.15, humidity=49.82, cloud=0.0, wind=29.18, temperature=11.35, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:53:25.181', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:54:07,966 [DEBUG][       Thread-603728][   transport.py][1871] : EOF in transport thread
2025-07-01 11:54:08,037 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:54:08,047 [DEBUG][       Thread-603731][   transport.py][1871] : starting thread (client mode): 0x818c850
2025-07-01 11:54:08,047 [DEBUG][       Thread-603731][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:54:08,062 [DEBUG][       Thread-603731][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:54:08,062 [ INFO][       Thread-603731][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:54:08,069 [DEBUG][       Thread-603731][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:54:08,069 [DEBUG][       Thread-603731][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:54:08,069 [DEBUG][       Thread-603731][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:54:08,069 [DEBUG][       Thread-603731][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:54:08,069 [DEBUG][       Thread-603731][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:54:08,069 [DEBUG][       Thread-603731][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:54:08,069 [DEBUG][       Thread-603731][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:54:08,069 [DEBUG][       Thread-603731][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:54:08,069 [DEBUG][       Thread-603731][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:54:08,069 [DEBUG][       Thread-603731][   transport.py][1871] : client lang: <none>
2025-07-01 11:54:08,069 [DEBUG][       Thread-603731][   transport.py][1871] : server lang: <none>
2025-07-01 11:54:08,069 [DEBUG][       Thread-603731][   transport.py][1871] : kex follows: False
2025-07-01 11:54:08,069 [DEBUG][       Thread-603731][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:54:08,069 [DEBUG][       Thread-603731][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:54:08,069 [DEBUG][       Thread-603731][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:54:08,069 [DEBUG][       Thread-603731][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:54:08,069 [DEBUG][       Thread-603731][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:54:08,069 [DEBUG][       Thread-603731][   transport.py][1871] : Compression: none
2025-07-01 11:54:08,069 [DEBUG][       Thread-603731][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:54:08,127 [DEBUG][       Thread-603731][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:54:08,128 [DEBUG][       Thread-603731][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:54:08,128 [DEBUG][       Thread-603731][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:54:08,128 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:54:08,129 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:54:08,187 [DEBUG][       Thread-603731][   transport.py][1871] : userauth is OK
2025-07-01 11:54:08,187 [DEBUG][       Thread-603731][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:54:08,187 [DEBUG][       Thread-603731][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:54:08,187 [DEBUG][       Thread-603731][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:54:08,187 [DEBUG][       Thread-603731][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:54:08,214 [ INFO][       Thread-603731][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:54:08,215 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:54:08,215 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:54:09,305 [DEBUG][       Thread-603731][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:54:09,305 [DEBUG][       Thread-603731][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:54:09,360 [DEBUG][       Thread-603731][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:54:09,361 [DEBUG][       Thread-603731][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:54:09,370 [DEBUG][       Thread-603731][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:54:09,380 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:54:09,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-07-01 11:54:09,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-07-01 11:54:09,398 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:54:09,399 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:54:09,399 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:54:09,407 [DEBUG][       Thread-603731][   transport.py][1871] : EOF in transport thread
2025-07-01 11:54:10,009 [DEBUG][Thread-603733 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:54:11,372 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:54:11,373 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:54:19,046 [DEBUG][Thread-603734 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:54:19,410 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:54:19,410 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:54:19,410 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:54:19,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-07-01 11:54:19,899 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 53, 53), 10.15, 49.82, 0.0, 29.18, 11.35, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:54:19,899 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:53:53
2025-07-01 11:54:19,984 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:54:19,990 [DEBUG][       Thread-603735][   transport.py][1871] : starting thread (client mode): 0x81db3a0
2025-07-01 11:54:19,990 [DEBUG][       Thread-603735][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:54:20,011 [DEBUG][       Thread-603735][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:54:20,011 [ INFO][       Thread-603735][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:54:20,014 [DEBUG][       Thread-603735][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:54:20,014 [DEBUG][       Thread-603735][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:54:20,014 [DEBUG][       Thread-603735][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:54:20,014 [DEBUG][       Thread-603735][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:54:20,014 [DEBUG][       Thread-603735][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:54:20,014 [DEBUG][       Thread-603735][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:54:20,014 [DEBUG][       Thread-603735][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:54:20,014 [DEBUG][       Thread-603735][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:54:20,014 [DEBUG][       Thread-603735][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:54:20,014 [DEBUG][       Thread-603735][   transport.py][1871] : client lang: <none>
2025-07-01 11:54:20,014 [DEBUG][       Thread-603735][   transport.py][1871] : server lang: <none>
2025-07-01 11:54:20,014 [DEBUG][       Thread-603735][   transport.py][1871] : kex follows: False
2025-07-01 11:54:20,014 [DEBUG][       Thread-603735][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:54:20,014 [DEBUG][       Thread-603735][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:54:20,014 [DEBUG][       Thread-603735][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:54:20,014 [DEBUG][       Thread-603735][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:54:20,014 [DEBUG][       Thread-603735][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:54:20,014 [DEBUG][       Thread-603735][   transport.py][1871] : Compression: none
2025-07-01 11:54:20,014 [DEBUG][       Thread-603735][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:54:20,031 [DEBUG][       Thread-603735][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:54:20,032 [DEBUG][       Thread-603735][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:54:20,032 [DEBUG][       Thread-603735][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:54:20,032 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:54:20,032 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:54:20,034 [DEBUG][       Thread-603735][   transport.py][1871] : userauth is OK
2025-07-01 11:54:20,058 [ INFO][       Thread-603735][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:54:20,058 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:54:20,782 [DEBUG][       Thread-603735][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:54:20,783 [DEBUG][       Thread-603735][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:54:20,825 [DEBUG][       Thread-603735][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:54:20,825 [DEBUG][       Thread-603735][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:54:20,829 [DEBUG][       Thread-603735][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:54:20,842 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:54:20,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:54:20,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:54:20,848 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:54:20,854 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:54:20,856 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:54:20,857 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:54:20,857 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:54:20,857 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.412444 -999.00  +11.30  29.94     54   +2.50 1 2 1 1 1   888    0 8.89 16.33 ----- 29.9 29.9 33.4 49.1 14.8 -22.1 13.8 -22.9 13.3 -21.1 14.4 -20.6
2025-07-01 11:54:20,857 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:54:20,858 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:54:20,858 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.412444
2025-07-01 11:54:20,858 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:54:20,859 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:54:20,859 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:54:20,859 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:54:20,859 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:54:20,859 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:53:53', tmtdew=10.15, humidity=49.82, cloud=0.0, wind=29.18, temperature=11.35, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:53:55.162', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:54:20,859 [DEBUG][       Thread-603735][   transport.py][1871] : EOF in transport thread
2025-07-01 11:54:20,939 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:54:20,950 [DEBUG][       Thread-603738][   transport.py][1871] : starting thread (client mode): 0x8a65e70
2025-07-01 11:54:20,950 [DEBUG][       Thread-603738][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:54:20,965 [DEBUG][       Thread-603738][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:54:20,965 [ INFO][       Thread-603738][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:54:20,973 [DEBUG][       Thread-603738][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:54:20,973 [DEBUG][       Thread-603738][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:54:20,973 [DEBUG][       Thread-603738][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:54:20,973 [DEBUG][       Thread-603738][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:54:20,973 [DEBUG][       Thread-603738][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:54:20,973 [DEBUG][       Thread-603738][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:54:20,973 [DEBUG][       Thread-603738][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:54:20,973 [DEBUG][       Thread-603738][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:54:20,973 [DEBUG][       Thread-603738][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:54:20,973 [DEBUG][       Thread-603738][   transport.py][1871] : client lang: <none>
2025-07-01 11:54:20,973 [DEBUG][       Thread-603738][   transport.py][1871] : server lang: <none>
2025-07-01 11:54:20,973 [DEBUG][       Thread-603738][   transport.py][1871] : kex follows: False
2025-07-01 11:54:20,974 [DEBUG][       Thread-603738][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:54:20,974 [DEBUG][       Thread-603738][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:54:20,974 [DEBUG][       Thread-603738][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:54:20,974 [DEBUG][       Thread-603738][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:54:20,974 [DEBUG][       Thread-603738][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:54:20,974 [DEBUG][       Thread-603738][   transport.py][1871] : Compression: none
2025-07-01 11:54:20,974 [DEBUG][       Thread-603738][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:54:21,031 [DEBUG][       Thread-603738][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:54:21,031 [DEBUG][       Thread-603738][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:54:21,032 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:54:21,032 [DEBUG][       Thread-603738][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:54:21,033 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:54:21,087 [DEBUG][       Thread-603738][   transport.py][1871] : userauth is OK
2025-07-01 11:54:21,088 [DEBUG][       Thread-603738][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:54:21,088 [DEBUG][       Thread-603738][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:54:21,088 [DEBUG][       Thread-603738][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:54:21,088 [DEBUG][       Thread-603738][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:54:21,106 [ INFO][       Thread-603738][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:54:21,107 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:54:21,107 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:54:22,091 [DEBUG][       Thread-603738][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:54:22,091 [DEBUG][       Thread-603738][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:54:22,140 [DEBUG][       Thread-603738][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:54:22,140 [DEBUG][       Thread-603738][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:54:22,149 [DEBUG][       Thread-603738][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:54:22,158 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:54:22,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-07-01 11:54:22,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-07-01 11:54:22,176 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:54:22,177 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:54:22,177 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:54:22,185 [DEBUG][       Thread-603738][   transport.py][1871] : EOF in transport thread
2025-07-01 11:54:27,566 [DEBUG][Thread-603740 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:54:28,070 [DEBUG][Thread-603741 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:54:32,188 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:54:32,188 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:54:32,188 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:54: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-07-01 11:54:32,679 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 54, 25), 10.25, 49.26, 0.0, 33.77, 11.4, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:54:32,679 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:54:25
2025-07-01 11:54:32,763 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:54:32,768 [DEBUG][       Thread-603742][   transport.py][1871] : starting thread (client mode): 0x75ab520
2025-07-01 11:54:32,768 [DEBUG][       Thread-603742][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:54:32,788 [DEBUG][       Thread-603742][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:54:32,788 [ INFO][       Thread-603742][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:54:32,792 [DEBUG][       Thread-603742][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:54:32,792 [DEBUG][       Thread-603742][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:54:32,792 [DEBUG][       Thread-603742][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:54:32,792 [DEBUG][       Thread-603742][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:54:32,792 [DEBUG][       Thread-603742][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:54:32,792 [DEBUG][       Thread-603742][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:54:32,792 [DEBUG][       Thread-603742][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:54:32,792 [DEBUG][       Thread-603742][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:54:32,792 [DEBUG][       Thread-603742][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:54:32,792 [DEBUG][       Thread-603742][   transport.py][1871] : client lang: <none>
2025-07-01 11:54:32,792 [DEBUG][       Thread-603742][   transport.py][1871] : server lang: <none>
2025-07-01 11:54:32,792 [DEBUG][       Thread-603742][   transport.py][1871] : kex follows: False
2025-07-01 11:54:32,792 [DEBUG][       Thread-603742][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:54:32,792 [DEBUG][       Thread-603742][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:54:32,792 [DEBUG][       Thread-603742][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:54:32,792 [DEBUG][       Thread-603742][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:54:32,792 [DEBUG][       Thread-603742][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:54:32,792 [DEBUG][       Thread-603742][   transport.py][1871] : Compression: none
2025-07-01 11:54:32,792 [DEBUG][       Thread-603742][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:54:32,808 [DEBUG][       Thread-603742][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:54:32,809 [DEBUG][       Thread-603742][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:54:32,809 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:54:32,809 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:54:32,810 [DEBUG][       Thread-603742][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:54:32,810 [DEBUG][       Thread-603742][   transport.py][1871] : userauth is OK
2025-07-01 11:54:32,823 [ INFO][       Thread-603742][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:54:32,823 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:54:33,478 [DEBUG][       Thread-603742][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:54:33,478 [DEBUG][       Thread-603742][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:54:33,520 [DEBUG][       Thread-603742][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:54:33,520 [DEBUG][       Thread-603742][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:54:33,523 [DEBUG][       Thread-603742][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:54:33,534 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:54:33,534 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:54:33,535 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:54:33,535 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:54:33,538 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:54:33,539 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:54:33,539 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:54:33,539 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:54:33,539 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.412444 -999.00  +11.30  29.94     54   +2.50 1 2 1 1 1   888    0 8.89 16.33 ----- 29.9 29.9 33.4 49.1 14.8 -22.1 13.8 -22.9 13.3 -21.1 14.4 -20.6
2025-07-01 11:54:33,539 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:54:33,539 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:54:33,539 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.412444
2025-07-01 11:54:33,539 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:54:33,539 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:54:33,539 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:54:33,539 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:54:33,539 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:54:33,539 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:54:25', tmtdew=10.25, humidity=49.26, cloud=0.0, wind=33.77, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:53:55.162', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:54:33,540 [DEBUG][       Thread-603742][   transport.py][1871] : EOF in transport thread
2025-07-01 11:54:33,614 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:54:33,629 [DEBUG][       Thread-603745][   transport.py][1871] : starting thread (client mode): 0x81e5390
2025-07-01 11:54:33,629 [DEBUG][       Thread-603745][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:54:33,646 [DEBUG][       Thread-603745][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:54:33,646 [ INFO][       Thread-603745][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:54:33,654 [DEBUG][       Thread-603745][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:54:33,654 [DEBUG][       Thread-603745][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:54:33,654 [DEBUG][       Thread-603745][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:54:33,654 [DEBUG][       Thread-603745][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:54:33,654 [DEBUG][       Thread-603745][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:54:33,654 [DEBUG][       Thread-603745][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:54:33,654 [DEBUG][       Thread-603745][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:54:33,654 [DEBUG][       Thread-603745][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:54:33,654 [DEBUG][       Thread-603745][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:54:33,654 [DEBUG][       Thread-603745][   transport.py][1871] : client lang: <none>
2025-07-01 11:54:33,654 [DEBUG][       Thread-603745][   transport.py][1871] : server lang: <none>
2025-07-01 11:54:33,654 [DEBUG][       Thread-603745][   transport.py][1871] : kex follows: False
2025-07-01 11:54:33,654 [DEBUG][       Thread-603745][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:54:33,654 [DEBUG][       Thread-603745][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:54:33,654 [DEBUG][       Thread-603745][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:54:33,654 [DEBUG][       Thread-603745][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:54:33,654 [DEBUG][       Thread-603745][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:54:33,654 [DEBUG][       Thread-603745][   transport.py][1871] : Compression: none
2025-07-01 11:54:33,654 [DEBUG][       Thread-603745][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:54:33,709 [DEBUG][       Thread-603745][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:54:33,710 [DEBUG][       Thread-603745][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:54:33,710 [DEBUG][       Thread-603745][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:54:33,710 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:54:33,710 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:54:33,766 [DEBUG][       Thread-603745][   transport.py][1871] : userauth is OK
2025-07-01 11:54:33,766 [DEBUG][       Thread-603745][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:54:33,766 [DEBUG][       Thread-603745][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:54:33,766 [DEBUG][       Thread-603745][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:54:33,766 [DEBUG][       Thread-603745][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:54:33,781 [ INFO][       Thread-603745][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:54:33,781 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:54:33,781 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:54:34,779 [DEBUG][       Thread-603745][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:54:34,780 [DEBUG][       Thread-603745][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:54:34,827 [DEBUG][       Thread-603745][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:54:34,827 [DEBUG][       Thread-603745][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:54:34,837 [DEBUG][       Thread-603745][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:54:34,846 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:54:34,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-07-01 11:54:34,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-07-01 11:54:34,867 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:54:34,867 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:54:34,867 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:54:34,874 [DEBUG][       Thread-603745][   transport.py][1871] : EOF in transport thread
2025-07-01 11:54:37,088 [DEBUG][Thread-603747 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:54:44,877 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:54:44,877 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:54:44,878 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:54:44,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-07-01 11:54:45,367 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 54, 25), 10.25, 49.26, 0.0, 33.77, 11.4, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:54:45,367 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:54:25
2025-07-01 11:54:45,451 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:54:45,455 [DEBUG][       Thread-603748][   transport.py][1871] : starting thread (client mode): 0x818e560
2025-07-01 11:54:45,455 [DEBUG][       Thread-603748][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:54:45,476 [DEBUG][       Thread-603748][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:54:45,476 [ INFO][       Thread-603748][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:54:45,479 [DEBUG][       Thread-603748][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:54:45,479 [DEBUG][       Thread-603748][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:54:45,479 [DEBUG][       Thread-603748][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:54:45,479 [DEBUG][       Thread-603748][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:54:45,479 [DEBUG][       Thread-603748][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:54:45,479 [DEBUG][       Thread-603748][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:54:45,479 [DEBUG][       Thread-603748][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:54:45,480 [DEBUG][       Thread-603748][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:54:45,480 [DEBUG][       Thread-603748][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:54:45,480 [DEBUG][       Thread-603748][   transport.py][1871] : client lang: <none>
2025-07-01 11:54:45,480 [DEBUG][       Thread-603748][   transport.py][1871] : server lang: <none>
2025-07-01 11:54:45,480 [DEBUG][       Thread-603748][   transport.py][1871] : kex follows: False
2025-07-01 11:54:45,480 [DEBUG][       Thread-603748][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:54:45,480 [DEBUG][       Thread-603748][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:54:45,480 [DEBUG][       Thread-603748][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:54:45,480 [DEBUG][       Thread-603748][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:54:45,480 [DEBUG][       Thread-603748][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:54:45,480 [DEBUG][       Thread-603748][   transport.py][1871] : Compression: none
2025-07-01 11:54:45,480 [DEBUG][       Thread-603748][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:54:45,496 [DEBUG][       Thread-603748][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:54:45,497 [DEBUG][       Thread-603748][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:54:45,497 [DEBUG][       Thread-603748][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:54:45,497 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:54:45,498 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:54:45,499 [DEBUG][       Thread-603748][   transport.py][1871] : userauth is OK
2025-07-01 11:54:45,511 [ INFO][       Thread-603748][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:54:45,512 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:54:46,098 [DEBUG][       Thread-603748][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:54:46,098 [DEBUG][       Thread-603748][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:54:46,124 [DEBUG][Thread-603750 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:54:46,145 [DEBUG][       Thread-603748][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:54:46,145 [DEBUG][       Thread-603748][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:54:46,149 [DEBUG][       Thread-603748][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:54:46,160 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:54:46,160 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:54:46,162 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:54:46,163 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:54:46,168 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:54:46,170 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:54:46,170 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:54:46,171 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:54:46,171 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.412791 -999.00  +11.20  40.08     54   +2.30 1 2 2 1 1   888    0 9.05 15.73 ----- 40.1 40.1 32.4 51.2 14.8 -23.1 13.7 -22.6 13.3 -22.0 14.3 -21.6
2025-07-01 11:54:46,171 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:54:46,171 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:54:46,171 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.412791
2025-07-01 11:54:46,172 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:54:46,172 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:54:46,173 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:54:46,173 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:54:46,173 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:54:46,173 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:54:25', tmtdew=10.25, humidity=49.26, cloud=0.0, wind=33.77, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:54:25.142', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:54:46,174 [DEBUG][       Thread-603748][   transport.py][1871] : EOF in transport thread
2025-07-01 11:54:46,256 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:54:46,265 [DEBUG][       Thread-603752][   transport.py][1871] : starting thread (client mode): 0x75a8e50
2025-07-01 11:54:46,266 [DEBUG][       Thread-603752][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:54:46,282 [DEBUG][       Thread-603752][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:54:46,282 [ INFO][       Thread-603752][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:54:46,290 [DEBUG][       Thread-603752][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:54:46,290 [DEBUG][       Thread-603752][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:54:46,290 [DEBUG][       Thread-603752][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:54:46,290 [DEBUG][       Thread-603752][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:54:46,290 [DEBUG][       Thread-603752][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:54:46,290 [DEBUG][       Thread-603752][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:54:46,290 [DEBUG][       Thread-603752][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:54:46,290 [DEBUG][       Thread-603752][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:54:46,290 [DEBUG][       Thread-603752][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:54:46,290 [DEBUG][       Thread-603752][   transport.py][1871] : client lang: <none>
2025-07-01 11:54:46,290 [DEBUG][       Thread-603752][   transport.py][1871] : server lang: <none>
2025-07-01 11:54:46,290 [DEBUG][       Thread-603752][   transport.py][1871] : kex follows: False
2025-07-01 11:54:46,290 [DEBUG][       Thread-603752][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:54:46,290 [DEBUG][       Thread-603752][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:54:46,290 [DEBUG][       Thread-603752][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:54:46,290 [DEBUG][       Thread-603752][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:54:46,291 [DEBUG][       Thread-603752][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:54:46,291 [DEBUG][       Thread-603752][   transport.py][1871] : Compression: none
2025-07-01 11:54:46,291 [DEBUG][       Thread-603752][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:54:46,347 [DEBUG][       Thread-603752][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:54:46,348 [DEBUG][       Thread-603752][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:54:46,348 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:54:46,349 [DEBUG][       Thread-603752][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:54:46,350 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:54:46,408 [DEBUG][       Thread-603752][   transport.py][1871] : userauth is OK
2025-07-01 11:54:46,408 [DEBUG][       Thread-603752][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:54:46,408 [DEBUG][       Thread-603752][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:54:46,409 [DEBUG][       Thread-603752][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:54:46,409 [DEBUG][       Thread-603752][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:54:46,434 [ INFO][       Thread-603752][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:54:46,434 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:54:46,435 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:54:47,437 [DEBUG][       Thread-603752][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:54:47,437 [DEBUG][       Thread-603752][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:54:47,487 [DEBUG][       Thread-603752][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:54:47,488 [DEBUG][       Thread-603752][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:54:47,496 [DEBUG][       Thread-603752][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:54:47,505 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:54:47,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')
2025-07-01 11:54:47,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-07-01 11:54:47,522 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:54:47,522 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:54:47,523 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:54:47,530 [DEBUG][       Thread-603752][   transport.py][1871] : EOF in transport thread
2025-07-01 11:54:55,149 [DEBUG][Thread-603754 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:54:57,532 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:54:57,532 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:54:57,532 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:54:57,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-07-01 11:54:58,011 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 54, 25), 10.25, 49.26, 0.0, 33.77, 11.4, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:54:58,011 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:54:25
2025-07-01 11:54:58,095 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:54:58,099 [DEBUG][       Thread-603755][   transport.py][1871] : starting thread (client mode): 0x818fa00
2025-07-01 11:54:58,099 [DEBUG][       Thread-603755][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:54:58,119 [DEBUG][       Thread-603755][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:54:58,119 [ INFO][       Thread-603755][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:54:58,122 [DEBUG][       Thread-603755][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:54:58,122 [DEBUG][       Thread-603755][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:54:58,122 [DEBUG][       Thread-603755][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:54:58,122 [DEBUG][       Thread-603755][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:54:58,122 [DEBUG][       Thread-603755][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:54:58,122 [DEBUG][       Thread-603755][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:54:58,122 [DEBUG][       Thread-603755][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:54:58,122 [DEBUG][       Thread-603755][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:54:58,122 [DEBUG][       Thread-603755][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:54:58,122 [DEBUG][       Thread-603755][   transport.py][1871] : client lang: <none>
2025-07-01 11:54:58,122 [DEBUG][       Thread-603755][   transport.py][1871] : server lang: <none>
2025-07-01 11:54:58,122 [DEBUG][       Thread-603755][   transport.py][1871] : kex follows: False
2025-07-01 11:54:58,122 [DEBUG][       Thread-603755][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:54:58,122 [DEBUG][       Thread-603755][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:54:58,122 [DEBUG][       Thread-603755][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:54:58,123 [DEBUG][       Thread-603755][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:54:58,123 [DEBUG][       Thread-603755][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:54:58,123 [DEBUG][       Thread-603755][   transport.py][1871] : Compression: none
2025-07-01 11:54:58,123 [DEBUG][       Thread-603755][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:54:58,140 [DEBUG][       Thread-603755][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:54:58,141 [DEBUG][       Thread-603755][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:54:58,141 [DEBUG][       Thread-603755][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:54:58,141 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:54:58,141 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:54:58,142 [DEBUG][       Thread-603755][   transport.py][1871] : userauth is OK
2025-07-01 11:54:58,155 [ INFO][       Thread-603755][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:54:58,156 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:54:58,808 [DEBUG][       Thread-603755][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:54:58,808 [DEBUG][       Thread-603755][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:54:58,852 [DEBUG][       Thread-603755][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:54:58,852 [DEBUG][       Thread-603755][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:54:58,855 [DEBUG][       Thread-603755][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:54:58,867 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:54:58,867 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:54:58,868 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:54:58,868 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:54:58,871 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:54:58,872 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:54:58,872 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:54:58,872 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:54:58,872 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.412791 -999.00  +11.20  40.08     54   +2.30 1 2 2 1 1   888    0 9.05 15.73 ----- 40.1 40.1 32.4 51.2 14.8 -23.1 13.7 -22.6 13.3 -22.0 14.3 -21.6
2025-07-01 11:54:58,872 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:54:58,872 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:54:58,872 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.412791
2025-07-01 11:54:58,872 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:54:58,872 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:54:58,872 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:54:58,872 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:54:58,872 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:54:58,872 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:54:25', tmtdew=10.25, humidity=49.26, cloud=0.0, wind=33.77, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:54:25.142', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:54:58,873 [DEBUG][       Thread-603755][   transport.py][1871] : EOF in transport thread
2025-07-01 11:54:58,947 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:54:58,957 [DEBUG][       Thread-603758][   transport.py][1871] : starting thread (client mode): 0x81a50c0
2025-07-01 11:54:58,957 [DEBUG][       Thread-603758][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:54:58,971 [DEBUG][       Thread-603758][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:54:58,972 [ INFO][       Thread-603758][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:54:58,979 [DEBUG][       Thread-603758][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:54:58,979 [DEBUG][       Thread-603758][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:54:58,979 [DEBUG][       Thread-603758][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:54:58,979 [DEBUG][       Thread-603758][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:54:58,979 [DEBUG][       Thread-603758][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:54:58,979 [DEBUG][       Thread-603758][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:54:58,979 [DEBUG][       Thread-603758][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:54:58,979 [DEBUG][       Thread-603758][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:54:58,979 [DEBUG][       Thread-603758][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:54:58,979 [DEBUG][       Thread-603758][   transport.py][1871] : client lang: <none>
2025-07-01 11:54:58,979 [DEBUG][       Thread-603758][   transport.py][1871] : server lang: <none>
2025-07-01 11:54:58,979 [DEBUG][       Thread-603758][   transport.py][1871] : kex follows: False
2025-07-01 11:54:58,979 [DEBUG][       Thread-603758][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:54:58,979 [DEBUG][       Thread-603758][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:54:58,979 [DEBUG][       Thread-603758][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:54:58,979 [DEBUG][       Thread-603758][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:54:58,979 [DEBUG][       Thread-603758][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:54:58,979 [DEBUG][       Thread-603758][   transport.py][1871] : Compression: none
2025-07-01 11:54:58,979 [DEBUG][       Thread-603758][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:54:59,037 [DEBUG][       Thread-603758][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:54:59,037 [DEBUG][       Thread-603758][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:54:59,037 [DEBUG][       Thread-603758][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:54:59,037 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:54:59,037 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:54:59,097 [DEBUG][       Thread-603758][   transport.py][1871] : userauth is OK
2025-07-01 11:54:59,098 [DEBUG][       Thread-603758][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:54:59,098 [DEBUG][       Thread-603758][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:54:59,098 [DEBUG][       Thread-603758][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:54:59,098 [DEBUG][       Thread-603758][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:54:59,115 [ INFO][       Thread-603758][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:54:59,115 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:54:59,116 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:55:00,078 [DEBUG][       Thread-603758][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:55:00,078 [DEBUG][       Thread-603758][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:55:00,128 [DEBUG][       Thread-603758][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:55:00,128 [DEBUG][       Thread-603758][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:55:00,138 [DEBUG][       Thread-603758][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:55:00,147 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:55:00,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-07-01 11:55:00,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-07-01 11:55:00,165 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:55:00,165 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:55:00,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:55:00,173 [DEBUG][       Thread-603758][   transport.py][1871] : EOF in transport thread
2025-07-01 11:55:04,169 [DEBUG][Thread-603760 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:55:10,176 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:55:10,176 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:55:10,176 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:55:10,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-07-01 11:55:10,671 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 54, 56), 10.26, 49.23, 0.0, 32.89, 11.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:55:10,671 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:54:56
2025-07-01 11:55:10,755 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:55:10,759 [DEBUG][       Thread-603761][   transport.py][1871] : starting thread (client mode): 0x81dbfd0
2025-07-01 11:55:10,759 [DEBUG][       Thread-603761][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:55:10,780 [DEBUG][       Thread-603761][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:55:10,780 [ INFO][       Thread-603761][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:55:10,783 [DEBUG][       Thread-603761][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:55:10,783 [DEBUG][       Thread-603761][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:55:10,783 [DEBUG][       Thread-603761][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:55:10,783 [DEBUG][       Thread-603761][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:55:10,783 [DEBUG][       Thread-603761][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:55:10,783 [DEBUG][       Thread-603761][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:55:10,783 [DEBUG][       Thread-603761][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:55:10,783 [DEBUG][       Thread-603761][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:55:10,783 [DEBUG][       Thread-603761][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:55:10,783 [DEBUG][       Thread-603761][   transport.py][1871] : client lang: <none>
2025-07-01 11:55:10,783 [DEBUG][       Thread-603761][   transport.py][1871] : server lang: <none>
2025-07-01 11:55:10,783 [DEBUG][       Thread-603761][   transport.py][1871] : kex follows: False
2025-07-01 11:55:10,783 [DEBUG][       Thread-603761][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:55:10,783 [DEBUG][       Thread-603761][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:55:10,783 [DEBUG][       Thread-603761][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:55:10,783 [DEBUG][       Thread-603761][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:55:10,783 [DEBUG][       Thread-603761][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:55:10,784 [DEBUG][       Thread-603761][   transport.py][1871] : Compression: none
2025-07-01 11:55:10,784 [DEBUG][       Thread-603761][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:55:10,799 [DEBUG][       Thread-603761][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:55:10,800 [DEBUG][       Thread-603761][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:55:10,800 [DEBUG][       Thread-603761][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:55:10,800 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:55:10,800 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:55:10,802 [DEBUG][       Thread-603761][   transport.py][1871] : userauth is OK
2025-07-01 11:55:10,827 [ INFO][       Thread-603761][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:55:10,827 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:55:11,492 [DEBUG][       Thread-603761][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:55:11,493 [DEBUG][       Thread-603761][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:55:11,511 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:55:11,512 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:55:11,537 [DEBUG][       Thread-603761][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:55:11,537 [DEBUG][       Thread-603761][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:55:11,540 [DEBUG][       Thread-603761][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:55:11,552 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:55:11,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:55:11,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:55:11,555 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:55:11,561 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:55:11,563 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:55:11,563 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:55:11,564 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:55:11,564 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.412791 -999.00  +11.20  40.08     54   +2.30 1 2 2 1 1   888    0 9.05 15.73 ----- 40.1 40.1 32.4 51.2 14.8 -23.1 13.7 -22.6 13.3 -22.0 14.3 -21.6
2025-07-01 11:55:11,564 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:55:11,564 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:55:11,564 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.412791
2025-07-01 11:55:11,565 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:55:11,565 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:55:11,565 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:55:11,565 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:55:11,565 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 11:55:11,565 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:54:56', tmtdew=10.26, humidity=49.23, cloud=0.0, wind=32.89, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:54:25.142', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:55:11,566 [DEBUG][       Thread-603761][   transport.py][1871] : EOF in transport thread
2025-07-01 11:55:11,649 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:55:11,659 [DEBUG][       Thread-603764][   transport.py][1871] : starting thread (client mode): 0x81da230
2025-07-01 11:55:11,659 [DEBUG][       Thread-603764][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:55:11,674 [DEBUG][       Thread-603764][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:55:11,674 [ INFO][       Thread-603764][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:55:11,681 [DEBUG][       Thread-603764][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:55:11,682 [DEBUG][       Thread-603764][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:55:11,682 [DEBUG][       Thread-603764][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:55:11,682 [DEBUG][       Thread-603764][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:55:11,682 [DEBUG][       Thread-603764][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:55:11,682 [DEBUG][       Thread-603764][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:55:11,682 [DEBUG][       Thread-603764][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:55:11,682 [DEBUG][       Thread-603764][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:55:11,682 [DEBUG][       Thread-603764][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:55:11,682 [DEBUG][       Thread-603764][   transport.py][1871] : client lang: <none>
2025-07-01 11:55:11,682 [DEBUG][       Thread-603764][   transport.py][1871] : server lang: <none>
2025-07-01 11:55:11,682 [DEBUG][       Thread-603764][   transport.py][1871] : kex follows: False
2025-07-01 11:55:11,682 [DEBUG][       Thread-603764][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:55:11,682 [DEBUG][       Thread-603764][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:55:11,682 [DEBUG][       Thread-603764][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:55:11,682 [DEBUG][       Thread-603764][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:55:11,682 [DEBUG][       Thread-603764][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:55:11,682 [DEBUG][       Thread-603764][   transport.py][1871] : Compression: none
2025-07-01 11:55:11,682 [DEBUG][       Thread-603764][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:55:11,739 [DEBUG][       Thread-603764][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:55:11,739 [DEBUG][       Thread-603764][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:55:11,740 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:55:11,741 [DEBUG][       Thread-603764][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:55:11,741 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:55:11,799 [DEBUG][       Thread-603764][   transport.py][1871] : userauth is OK
2025-07-01 11:55:11,799 [DEBUG][       Thread-603764][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:55:11,799 [DEBUG][       Thread-603764][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:55:11,799 [DEBUG][       Thread-603764][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:55:11,799 [DEBUG][       Thread-603764][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:55:11,819 [ INFO][       Thread-603764][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:55:11,819 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:55:11,820 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:55:12,828 [DEBUG][       Thread-603764][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:55:12,828 [DEBUG][       Thread-603764][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:55:12,879 [DEBUG][       Thread-603764][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:55:12,879 [DEBUG][       Thread-603764][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:55:12,888 [DEBUG][       Thread-603764][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:55:12,895 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:55:12,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-07-01 11:55:12,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-07-01 11:55:12,911 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:55:12,911 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:55:12,911 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:55:12,919 [DEBUG][       Thread-603764][   transport.py][1871] : EOF in transport thread
2025-07-01 11:55:13,188 [DEBUG][Thread-603766 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:55:22,222 [DEBUG][Thread-603767 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:55:22,922 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:55:22,922 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:55:22,922 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:55:22,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-07-01 11:55:23,417 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 54, 56), 10.26, 49.23, 0.0, 32.89, 11.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:55:23,417 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:54:56
2025-07-01 11:55:23,501 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:55:23,505 [DEBUG][       Thread-603768][   transport.py][1871] : starting thread (client mode): 0x8173910
2025-07-01 11:55:23,505 [DEBUG][       Thread-603768][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:55:23,529 [DEBUG][       Thread-603768][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:55:23,529 [ INFO][       Thread-603768][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:55:23,533 [DEBUG][       Thread-603768][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:55:23,533 [DEBUG][       Thread-603768][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:55:23,533 [DEBUG][       Thread-603768][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:55:23,533 [DEBUG][       Thread-603768][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:55:23,533 [DEBUG][       Thread-603768][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:55:23,533 [DEBUG][       Thread-603768][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:55:23,533 [DEBUG][       Thread-603768][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:55:23,533 [DEBUG][       Thread-603768][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:55:23,533 [DEBUG][       Thread-603768][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:55:23,533 [DEBUG][       Thread-603768][   transport.py][1871] : client lang: <none>
2025-07-01 11:55:23,533 [DEBUG][       Thread-603768][   transport.py][1871] : server lang: <none>
2025-07-01 11:55:23,533 [DEBUG][       Thread-603768][   transport.py][1871] : kex follows: False
2025-07-01 11:55:23,533 [DEBUG][       Thread-603768][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:55:23,533 [DEBUG][       Thread-603768][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:55:23,533 [DEBUG][       Thread-603768][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:55:23,533 [DEBUG][       Thread-603768][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:55:23,533 [DEBUG][       Thread-603768][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:55:23,534 [DEBUG][       Thread-603768][   transport.py][1871] : Compression: none
2025-07-01 11:55:23,534 [DEBUG][       Thread-603768][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:55:23,551 [DEBUG][       Thread-603768][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:55:23,551 [DEBUG][       Thread-603768][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:55:23,551 [DEBUG][       Thread-603768][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:55:23,552 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:55:23,552 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:55:23,553 [DEBUG][       Thread-603768][   transport.py][1871] : userauth is OK
2025-07-01 11:55:23,577 [ INFO][       Thread-603768][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:55:23,578 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:55:24,260 [DEBUG][       Thread-603768][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:55:24,260 [DEBUG][       Thread-603768][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:55:24,301 [DEBUG][       Thread-603768][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:55:24,301 [DEBUG][       Thread-603768][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:55:24,304 [DEBUG][       Thread-603768][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:55:24,317 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:55:24,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:55:24,319 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:55:24,321 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:55:24,326 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:55:24,328 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:55:24,328 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:55:24,329 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:55:24,329 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.413138 -999.00  +11.20  32.89     54   +2.30 1 1 2 1 1   888    0 9.01 17.56 ----- 32.9 32.9 33.6 49.8 14.7 -24.1 13.6 -24.1 13.3 -22.0 14.2 -22.6
2025-07-01 11:55:24,329 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:55:24,329 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:55:24,329 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.413138
2025-07-01 11:55:24,329 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:55:24,330 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:55:24,330 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:55:24,330 [DEBUG][       Thread-603768][   transport.py][1871] : EOF in transport thread
2025-07-01 11:55:24,330 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:55:24,331 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 11:55:24,331 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:54:56', tmtdew=10.26, humidity=49.23, cloud=0.0, wind=32.89, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:54:55.123', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:55:24,414 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:55:24,425 [DEBUG][       Thread-603771][   transport.py][1871] : starting thread (client mode): 0x8107e50
2025-07-01 11:55:24,425 [DEBUG][       Thread-603771][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:55:24,440 [DEBUG][       Thread-603771][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:55:24,440 [ INFO][       Thread-603771][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:55:24,448 [DEBUG][       Thread-603771][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:55:24,448 [DEBUG][       Thread-603771][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:55:24,448 [DEBUG][       Thread-603771][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:55:24,448 [DEBUG][       Thread-603771][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:55:24,448 [DEBUG][       Thread-603771][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:55:24,448 [DEBUG][       Thread-603771][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:55:24,448 [DEBUG][       Thread-603771][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:55:24,448 [DEBUG][       Thread-603771][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:55:24,448 [DEBUG][       Thread-603771][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:55:24,448 [DEBUG][       Thread-603771][   transport.py][1871] : client lang: <none>
2025-07-01 11:55:24,448 [DEBUG][       Thread-603771][   transport.py][1871] : server lang: <none>
2025-07-01 11:55:24,448 [DEBUG][       Thread-603771][   transport.py][1871] : kex follows: False
2025-07-01 11:55:24,448 [DEBUG][       Thread-603771][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:55:24,448 [DEBUG][       Thread-603771][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:55:24,448 [DEBUG][       Thread-603771][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:55:24,448 [DEBUG][       Thread-603771][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:55:24,448 [DEBUG][       Thread-603771][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:55:24,448 [DEBUG][       Thread-603771][   transport.py][1871] : Compression: none
2025-07-01 11:55:24,448 [DEBUG][       Thread-603771][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:55:24,514 [DEBUG][       Thread-603771][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:55:24,514 [DEBUG][       Thread-603771][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:55:24,515 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:55:24,515 [DEBUG][       Thread-603771][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:55:24,516 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:55:24,571 [DEBUG][       Thread-603771][   transport.py][1871] : userauth is OK
2025-07-01 11:55:24,571 [DEBUG][       Thread-603771][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:55:24,571 [DEBUG][       Thread-603771][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:55:24,571 [DEBUG][       Thread-603771][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:55:24,571 [DEBUG][       Thread-603771][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:55:24,590 [ INFO][       Thread-603771][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:55:24,591 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:55:24,591 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:55:25,585 [DEBUG][       Thread-603771][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:55:25,585 [DEBUG][       Thread-603771][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:55:25,636 [DEBUG][       Thread-603771][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:55:25,636 [DEBUG][       Thread-603771][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:55:25,645 [DEBUG][       Thread-603771][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:55:25,654 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:55:25,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-07-01 11:55:25,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') -> 00000000
2025-07-01 11:55:25,673 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:55:25,673 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:55:25,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:55:25,682 [DEBUG][       Thread-603771][   transport.py][1871] : EOF in transport thread
2025-07-01 11:55:27,614 [DEBUG][Thread-603773 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:55:31,242 [DEBUG][Thread-603774 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:55:35,684 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:55:35,685 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:55:35,685 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:55:35,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-07-01 11:55:36,165 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 55, 29), 10.27, 49.2, 0.0, 38.41, 11.34, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:55:36,165 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:55:29
2025-07-01 11:55:36,250 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:55:36,254 [DEBUG][       Thread-603775][   transport.py][1871] : starting thread (client mode): 0x82b2110
2025-07-01 11:55:36,254 [DEBUG][       Thread-603775][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:55:36,274 [DEBUG][       Thread-603775][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:55:36,274 [ INFO][       Thread-603775][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:55:36,275 [DEBUG][       Thread-603775][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:55:36,275 [DEBUG][       Thread-603775][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:55:36,276 [DEBUG][       Thread-603775][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:55:36,276 [DEBUG][       Thread-603775][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:55:36,276 [DEBUG][       Thread-603775][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:55:36,276 [DEBUG][       Thread-603775][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:55:36,276 [DEBUG][       Thread-603775][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:55:36,276 [DEBUG][       Thread-603775][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:55:36,276 [DEBUG][       Thread-603775][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:55:36,276 [DEBUG][       Thread-603775][   transport.py][1871] : client lang: <none>
2025-07-01 11:55:36,276 [DEBUG][       Thread-603775][   transport.py][1871] : server lang: <none>
2025-07-01 11:55:36,276 [DEBUG][       Thread-603775][   transport.py][1871] : kex follows: False
2025-07-01 11:55:36,276 [DEBUG][       Thread-603775][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:55:36,276 [DEBUG][       Thread-603775][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:55:36,276 [DEBUG][       Thread-603775][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:55:36,276 [DEBUG][       Thread-603775][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:55:36,276 [DEBUG][       Thread-603775][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:55:36,276 [DEBUG][       Thread-603775][   transport.py][1871] : Compression: none
2025-07-01 11:55:36,276 [DEBUG][       Thread-603775][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:55:36,293 [DEBUG][       Thread-603775][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:55:36,294 [DEBUG][       Thread-603775][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:55:36,294 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:55:36,295 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:55:36,295 [DEBUG][       Thread-603775][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:55:36,296 [DEBUG][       Thread-603775][   transport.py][1871] : userauth is OK
2025-07-01 11:55:36,320 [ INFO][       Thread-603775][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:55:36,321 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:55:36,960 [DEBUG][       Thread-603775][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:55:36,960 [DEBUG][       Thread-603775][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:55:37,001 [DEBUG][       Thread-603775][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:55:37,001 [DEBUG][       Thread-603775][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:55:37,005 [DEBUG][       Thread-603775][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:55:37,016 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:55:37,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:55:37,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:55:37,021 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:55:37,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:55:37,029 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:55:37,029 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:55:37,030 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:55:37,030 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.413138 -999.00  +11.20  32.89     54   +2.30 1 1 2 1 1   888    0 9.01 17.56 ----- 32.9 32.9 33.6 49.8 14.7 -24.1 13.6 -24.1 13.3 -22.0 14.2 -22.6
2025-07-01 11:55:37,030 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:55:37,030 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:55:37,030 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.413138
2025-07-01 11:55:37,031 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:55:37,031 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:55:37,032 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:55:37,032 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:55:37,032 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 11:55:37,032 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:55:29', tmtdew=10.27, humidity=49.2, cloud=0.0, wind=38.41, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:54:55.123', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:55:37,033 [DEBUG][       Thread-603775][   transport.py][1871] : EOF in transport thread
2025-07-01 11:55:37,116 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:55:37,125 [DEBUG][       Thread-603778][   transport.py][1871] : starting thread (client mode): 0x81a64d0
2025-07-01 11:55:37,126 [DEBUG][       Thread-603778][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:55:37,141 [DEBUG][       Thread-603778][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:55:37,142 [ INFO][       Thread-603778][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:55:37,150 [DEBUG][       Thread-603778][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:55:37,150 [DEBUG][       Thread-603778][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:55:37,150 [DEBUG][       Thread-603778][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:55:37,150 [DEBUG][       Thread-603778][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:55:37,150 [DEBUG][       Thread-603778][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:55:37,150 [DEBUG][       Thread-603778][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:55:37,150 [DEBUG][       Thread-603778][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:55:37,150 [DEBUG][       Thread-603778][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:55:37,150 [DEBUG][       Thread-603778][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:55:37,150 [DEBUG][       Thread-603778][   transport.py][1871] : client lang: <none>
2025-07-01 11:55:37,150 [DEBUG][       Thread-603778][   transport.py][1871] : server lang: <none>
2025-07-01 11:55:37,150 [DEBUG][       Thread-603778][   transport.py][1871] : kex follows: False
2025-07-01 11:55:37,150 [DEBUG][       Thread-603778][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:55:37,150 [DEBUG][       Thread-603778][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:55:37,150 [DEBUG][       Thread-603778][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:55:37,151 [DEBUG][       Thread-603778][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:55:37,151 [DEBUG][       Thread-603778][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:55:37,151 [DEBUG][       Thread-603778][   transport.py][1871] : Compression: none
2025-07-01 11:55:37,151 [DEBUG][       Thread-603778][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:55:37,206 [DEBUG][       Thread-603778][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:55:37,207 [DEBUG][       Thread-603778][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:55:37,208 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:55:37,208 [DEBUG][       Thread-603778][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:55:37,209 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:55:37,272 [DEBUG][       Thread-603778][   transport.py][1871] : userauth is OK
2025-07-01 11:55:37,272 [DEBUG][       Thread-603778][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:55:37,272 [DEBUG][       Thread-603778][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:55:37,272 [DEBUG][       Thread-603778][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:55:37,272 [DEBUG][       Thread-603778][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:55:37,291 [ INFO][       Thread-603778][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:55:37,291 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:55:37,292 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:55:38,310 [DEBUG][       Thread-603778][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:55:38,310 [DEBUG][       Thread-603778][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:55:38,359 [DEBUG][       Thread-603778][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:55:38,359 [DEBUG][       Thread-603778][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:55:38,367 [DEBUG][       Thread-603778][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:55:38,375 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:55:38,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-07-01 11:55:38,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-07-01 11:55:38,391 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:55:38,391 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:55:38,392 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:55:38,400 [DEBUG][       Thread-603778][   transport.py][1871] : EOF in transport thread
2025-07-01 11:55:40,267 [DEBUG][Thread-603780 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:55:48,400 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:55:48,400 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:55:48,400 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:55:48,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-07-01 11:55:48,895 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 55, 29), 10.27, 49.2, 0.0, 38.41, 11.34, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:55:48,895 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:55:29
2025-07-01 11:55:48,979 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:55:48,983 [DEBUG][       Thread-603781][   transport.py][1871] : starting thread (client mode): 0x8172ce0
2025-07-01 11:55:48,983 [DEBUG][       Thread-603781][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:55:49,005 [DEBUG][       Thread-603781][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:55:49,005 [ INFO][       Thread-603781][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:55:49,008 [DEBUG][       Thread-603781][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:55:49,008 [DEBUG][       Thread-603781][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:55:49,008 [DEBUG][       Thread-603781][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:55:49,008 [DEBUG][       Thread-603781][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:55:49,008 [DEBUG][       Thread-603781][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:55:49,008 [DEBUG][       Thread-603781][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:55:49,008 [DEBUG][       Thread-603781][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:55:49,008 [DEBUG][       Thread-603781][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:55:49,008 [DEBUG][       Thread-603781][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:55:49,008 [DEBUG][       Thread-603781][   transport.py][1871] : client lang: <none>
2025-07-01 11:55:49,008 [DEBUG][       Thread-603781][   transport.py][1871] : server lang: <none>
2025-07-01 11:55:49,008 [DEBUG][       Thread-603781][   transport.py][1871] : kex follows: False
2025-07-01 11:55:49,008 [DEBUG][       Thread-603781][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:55:49,008 [DEBUG][       Thread-603781][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:55:49,008 [DEBUG][       Thread-603781][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:55:49,008 [DEBUG][       Thread-603781][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:55:49,008 [DEBUG][       Thread-603781][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:55:49,008 [DEBUG][       Thread-603781][   transport.py][1871] : Compression: none
2025-07-01 11:55:49,008 [DEBUG][       Thread-603781][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:55:49,020 [DEBUG][       Thread-603781][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:55:49,020 [DEBUG][       Thread-603781][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:55:49,021 [DEBUG][       Thread-603781][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:55:49,021 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:55:49,021 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:55:49,022 [DEBUG][       Thread-603781][   transport.py][1871] : userauth is OK
2025-07-01 11:55:49,047 [ INFO][       Thread-603781][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:55:49,047 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:55:49,303 [DEBUG][Thread-603783 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:55:49,695 [DEBUG][       Thread-603781][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:55:49,695 [DEBUG][       Thread-603781][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:55:49,737 [DEBUG][       Thread-603781][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:55:49,737 [DEBUG][       Thread-603781][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:55:49,740 [DEBUG][       Thread-603781][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:55:49,752 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:55:49,752 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:55:49,754 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:55:49,756 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:55:49,762 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:55:49,764 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:55:49,764 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:55:49,765 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:55:49,765 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.413138 -999.00  +11.20  32.89     54   +2.30 1 1 2 1 1   888    0 9.01 17.56 ----- 32.9 32.9 33.6 49.8 14.7 -24.1 13.6 -24.1 13.3 -22.0 14.2 -22.6
2025-07-01 11:55:49,765 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:55:49,765 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:55:49,765 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.413138
2025-07-01 11:55:49,766 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:55:49,766 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:55:49,767 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:55:49,767 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:55:49,767 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 11:55:49,767 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:55:29', tmtdew=10.27, humidity=49.2, cloud=0.0, wind=38.41, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:54:55.123', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:55:49,768 [DEBUG][       Thread-603781][   transport.py][1871] : EOF in transport thread
2025-07-01 11:55:49,850 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:55:49,860 [DEBUG][       Thread-603785][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 11:55:49,860 [DEBUG][       Thread-603785][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:55:49,875 [DEBUG][       Thread-603785][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:55:49,875 [ INFO][       Thread-603785][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:55:49,882 [DEBUG][       Thread-603785][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:55:49,883 [DEBUG][       Thread-603785][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:55:49,883 [DEBUG][       Thread-603785][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:55:49,883 [DEBUG][       Thread-603785][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:55:49,883 [DEBUG][       Thread-603785][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:55:49,883 [DEBUG][       Thread-603785][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:55:49,883 [DEBUG][       Thread-603785][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:55:49,883 [DEBUG][       Thread-603785][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:55:49,883 [DEBUG][       Thread-603785][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:55:49,883 [DEBUG][       Thread-603785][   transport.py][1871] : client lang: <none>
2025-07-01 11:55:49,883 [DEBUG][       Thread-603785][   transport.py][1871] : server lang: <none>
2025-07-01 11:55:49,883 [DEBUG][       Thread-603785][   transport.py][1871] : kex follows: False
2025-07-01 11:55:49,883 [DEBUG][       Thread-603785][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:55:49,883 [DEBUG][       Thread-603785][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:55:49,883 [DEBUG][       Thread-603785][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:55:49,883 [DEBUG][       Thread-603785][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:55:49,883 [DEBUG][       Thread-603785][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:55:49,883 [DEBUG][       Thread-603785][   transport.py][1871] : Compression: none
2025-07-01 11:55:49,883 [DEBUG][       Thread-603785][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:55:49,943 [DEBUG][       Thread-603785][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:55:49,944 [DEBUG][       Thread-603785][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:55:49,944 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:55:49,945 [DEBUG][       Thread-603785][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:55:49,946 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:55:50,000 [DEBUG][       Thread-603785][   transport.py][1871] : userauth is OK
2025-07-01 11:55:50,000 [DEBUG][       Thread-603785][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:55:50,000 [DEBUG][       Thread-603785][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:55:50,000 [DEBUG][       Thread-603785][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:55:50,000 [DEBUG][       Thread-603785][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:55:50,019 [ INFO][       Thread-603785][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:55:50,020 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:55:50,020 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:55:51,013 [DEBUG][       Thread-603785][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:55:51,013 [DEBUG][       Thread-603785][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:55:51,063 [DEBUG][       Thread-603785][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:55:51,063 [DEBUG][       Thread-603785][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:55:51,072 [DEBUG][       Thread-603785][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:55:51,080 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:55:51,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-07-01 11:55:51,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-07-01 11:55:51,095 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:55:51,095 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:55:51,096 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:55:51,103 [DEBUG][       Thread-603785][   transport.py][1871] : EOF in transport thread
2025-07-01 11:55:58,324 [DEBUG][Thread-603787 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:56:01,106 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:56:01,106 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:56:01,106 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:56:01,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-07-01 11:56:01,596 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 55, 29), 10.27, 49.2, 0.0, 38.41, 11.34, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:56:01,596 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:55:29
2025-07-01 11:56:01,680 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:56:01,684 [DEBUG][       Thread-603788][   transport.py][1871] : starting thread (client mode): 0x82b3b80
2025-07-01 11:56:01,684 [DEBUG][       Thread-603788][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:56:01,706 [DEBUG][       Thread-603788][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:56:01,706 [ INFO][       Thread-603788][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:56:01,709 [DEBUG][       Thread-603788][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:56:01,709 [DEBUG][       Thread-603788][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:56:01,709 [DEBUG][       Thread-603788][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:56:01,709 [DEBUG][       Thread-603788][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:56:01,709 [DEBUG][       Thread-603788][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:56:01,709 [DEBUG][       Thread-603788][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:56:01,709 [DEBUG][       Thread-603788][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:56:01,709 [DEBUG][       Thread-603788][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:56:01,709 [DEBUG][       Thread-603788][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:56:01,709 [DEBUG][       Thread-603788][   transport.py][1871] : client lang: <none>
2025-07-01 11:56:01,709 [DEBUG][       Thread-603788][   transport.py][1871] : server lang: <none>
2025-07-01 11:56:01,709 [DEBUG][       Thread-603788][   transport.py][1871] : kex follows: False
2025-07-01 11:56:01,709 [DEBUG][       Thread-603788][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:56:01,709 [DEBUG][       Thread-603788][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:56:01,709 [DEBUG][       Thread-603788][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:56:01,709 [DEBUG][       Thread-603788][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:56:01,709 [DEBUG][       Thread-603788][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:56:01,709 [DEBUG][       Thread-603788][   transport.py][1871] : Compression: none
2025-07-01 11:56:01,709 [DEBUG][       Thread-603788][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:56:01,724 [DEBUG][       Thread-603788][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:56:01,724 [DEBUG][       Thread-603788][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:56:01,725 [DEBUG][       Thread-603788][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:56:01,725 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:56:01,725 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:56:01,725 [DEBUG][       Thread-603788][   transport.py][1871] : userauth is OK
2025-07-01 11:56:01,737 [ INFO][       Thread-603788][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:56:01,738 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:56:02,375 [DEBUG][       Thread-603788][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:56:02,375 [DEBUG][       Thread-603788][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:56:02,416 [DEBUG][       Thread-603788][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:56:02,417 [DEBUG][       Thread-603788][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:56:02,419 [DEBUG][       Thread-603788][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:56:02,433 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:56:02,433 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:56:02,434 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:56:02,435 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:56:02,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:56:02,439 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:56:02,439 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:56:02,439 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:56:02,439 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.413486 -999.00  +10.90  36.52     54   +2.00 1 1 2 1 1   888    0 9.25 17.86 ----- 36.5 36.5 41.8 44.7 14.5 -25.1 13.5 -24.5 13.2 -23.8 14.0 -23.8
2025-07-01 11:56:02,439 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:56:02,439 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:56:02,439 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.413486
2025-07-01 11:56:02,440 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:56:02,440 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:56:02,440 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:56:02,440 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:56:02,440 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 11:56:02,440 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:55:29', tmtdew=10.27, humidity=49.2, cloud=0.0, wind=38.41, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:55:25.190', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:56:02,441 [DEBUG][       Thread-603788][   transport.py][1871] : EOF in transport thread
2025-07-01 11:56:02,514 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:56:02,526 [DEBUG][       Thread-603791][   transport.py][1871] : starting thread (client mode): 0x75a9240
2025-07-01 11:56:02,526 [DEBUG][       Thread-603791][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:56:02,542 [DEBUG][       Thread-603791][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:56:02,542 [ INFO][       Thread-603791][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:56:02,550 [DEBUG][       Thread-603791][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:56:02,550 [DEBUG][       Thread-603791][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:56:02,550 [DEBUG][       Thread-603791][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:56:02,550 [DEBUG][       Thread-603791][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:56:02,550 [DEBUG][       Thread-603791][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:56:02,550 [DEBUG][       Thread-603791][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:56:02,550 [DEBUG][       Thread-603791][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:56:02,550 [DEBUG][       Thread-603791][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:56:02,550 [DEBUG][       Thread-603791][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:56:02,550 [DEBUG][       Thread-603791][   transport.py][1871] : client lang: <none>
2025-07-01 11:56:02,550 [DEBUG][       Thread-603791][   transport.py][1871] : server lang: <none>
2025-07-01 11:56:02,550 [DEBUG][       Thread-603791][   transport.py][1871] : kex follows: False
2025-07-01 11:56:02,550 [DEBUG][       Thread-603791][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:56:02,550 [DEBUG][       Thread-603791][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:56:02,550 [DEBUG][       Thread-603791][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:56:02,550 [DEBUG][       Thread-603791][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:56:02,550 [DEBUG][       Thread-603791][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:56:02,550 [DEBUG][       Thread-603791][   transport.py][1871] : Compression: none
2025-07-01 11:56:02,550 [DEBUG][       Thread-603791][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:56:02,611 [DEBUG][       Thread-603791][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:56:02,612 [DEBUG][       Thread-603791][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:56:02,612 [DEBUG][       Thread-603791][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:56:02,612 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:56:02,612 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:56:02,671 [DEBUG][       Thread-603791][   transport.py][1871] : userauth is OK
2025-07-01 11:56:02,671 [DEBUG][       Thread-603791][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:56:02,671 [DEBUG][       Thread-603791][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:56:02,671 [DEBUG][       Thread-603791][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:56:02,671 [DEBUG][       Thread-603791][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:56:02,690 [ INFO][       Thread-603791][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:56:02,690 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:56:02,690 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:56:03,749 [DEBUG][       Thread-603791][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:56:03,749 [DEBUG][       Thread-603791][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:56:03,808 [DEBUG][       Thread-603791][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:56:03,809 [DEBUG][       Thread-603791][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:56:03,821 [DEBUG][       Thread-603791][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:56:03,832 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:56:03,832 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 11:56:03,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-07-01 11:56:03,865 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:56:03,865 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:56:03,865 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:56:03,875 [DEBUG][       Thread-603791][   transport.py][1871] : EOF in transport thread
2025-07-01 11:56:07,346 [DEBUG][Thread-603793 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:56:11,650 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:56:11,651 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:56:13,868 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:56:13,868 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:56:13,868 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:56:13,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-07-01 11:56:14,346 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 56, 1), 10.19, 49.46, 0.0, 38.13, 11.25, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:56:14,346 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:56:01
2025-07-01 11:56:14,431 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:56:14,435 [DEBUG][       Thread-603794][   transport.py][1871] : starting thread (client mode): 0x82b3340
2025-07-01 11:56:14,435 [DEBUG][       Thread-603794][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:56:14,457 [DEBUG][       Thread-603794][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:56:14,457 [ INFO][       Thread-603794][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:56:14,460 [DEBUG][       Thread-603794][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:56:14,460 [DEBUG][       Thread-603794][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:56:14,460 [DEBUG][       Thread-603794][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:56:14,460 [DEBUG][       Thread-603794][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:56:14,460 [DEBUG][       Thread-603794][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:56:14,460 [DEBUG][       Thread-603794][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:56:14,460 [DEBUG][       Thread-603794][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:56:14,460 [DEBUG][       Thread-603794][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:56:14,460 [DEBUG][       Thread-603794][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:56:14,460 [DEBUG][       Thread-603794][   transport.py][1871] : client lang: <none>
2025-07-01 11:56:14,460 [DEBUG][       Thread-603794][   transport.py][1871] : server lang: <none>
2025-07-01 11:56:14,460 [DEBUG][       Thread-603794][   transport.py][1871] : kex follows: False
2025-07-01 11:56:14,460 [DEBUG][       Thread-603794][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:56:14,460 [DEBUG][       Thread-603794][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:56:14,460 [DEBUG][       Thread-603794][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:56:14,461 [DEBUG][       Thread-603794][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:56:14,461 [DEBUG][       Thread-603794][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:56:14,461 [DEBUG][       Thread-603794][   transport.py][1871] : Compression: none
2025-07-01 11:56:14,461 [DEBUG][       Thread-603794][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:56:14,477 [DEBUG][       Thread-603794][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:56:14,477 [DEBUG][       Thread-603794][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:56:14,478 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:56:14,478 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:56:14,479 [DEBUG][       Thread-603794][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:56:14,479 [DEBUG][       Thread-603794][   transport.py][1871] : userauth is OK
2025-07-01 11:56:14,492 [ INFO][       Thread-603794][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:56:14,493 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:56:15,120 [DEBUG][       Thread-603794][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:56:15,120 [DEBUG][       Thread-603794][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:56:15,161 [DEBUG][       Thread-603794][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:56:15,161 [DEBUG][       Thread-603794][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:56:15,164 [DEBUG][       Thread-603794][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:56:15,177 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:56:15,177 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:56:15,179 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:56:15,181 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:56:15,186 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:56:15,188 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:56:15,189 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:56:15,189 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:56:15,190 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.413486 -999.00  +10.90  36.52     54   +2.00 1 1 2 1 1   888    0 9.25 17.86 ----- 36.5 36.5 41.8 44.7 14.5 -25.1 13.5 -24.5 13.2 -23.8 14.0 -23.8
2025-07-01 11:56:15,190 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:56:15,190 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:56:15,190 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.413486
2025-07-01 11:56:15,190 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:56:15,191 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:56:15,191 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:56:15,191 [DEBUG][       Thread-603794][   transport.py][1871] : EOF in transport thread
2025-07-01 11:56:15,191 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:56:15,192 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 11:56:15,192 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:56:01', tmtdew=10.19, humidity=49.46, cloud=0.0, wind=38.13, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:55:25.190', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:56:15,275 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:56:15,286 [DEBUG][       Thread-603797][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 11:56:15,286 [DEBUG][       Thread-603797][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:56:15,301 [DEBUG][       Thread-603797][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:56:15,301 [ INFO][       Thread-603797][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:56:15,309 [DEBUG][       Thread-603797][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:56:15,309 [DEBUG][       Thread-603797][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:56:15,310 [DEBUG][       Thread-603797][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:56:15,310 [DEBUG][       Thread-603797][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:56:15,310 [DEBUG][       Thread-603797][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:56:15,310 [DEBUG][       Thread-603797][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:56:15,310 [DEBUG][       Thread-603797][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:56:15,310 [DEBUG][       Thread-603797][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:56:15,310 [DEBUG][       Thread-603797][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:56:15,310 [DEBUG][       Thread-603797][   transport.py][1871] : client lang: <none>
2025-07-01 11:56:15,310 [DEBUG][       Thread-603797][   transport.py][1871] : server lang: <none>
2025-07-01 11:56:15,310 [DEBUG][       Thread-603797][   transport.py][1871] : kex follows: False
2025-07-01 11:56:15,310 [DEBUG][       Thread-603797][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:56:15,310 [DEBUG][       Thread-603797][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:56:15,310 [DEBUG][       Thread-603797][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:56:15,310 [DEBUG][       Thread-603797][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:56:15,310 [DEBUG][       Thread-603797][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:56:15,310 [DEBUG][       Thread-603797][   transport.py][1871] : Compression: none
2025-07-01 11:56:15,310 [DEBUG][       Thread-603797][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:56:15,367 [DEBUG][       Thread-603797][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:56:15,367 [DEBUG][       Thread-603797][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:56:15,368 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:56:15,368 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:56:15,369 [DEBUG][       Thread-603797][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:56:15,424 [DEBUG][       Thread-603797][   transport.py][1871] : userauth is OK
2025-07-01 11:56:15,424 [DEBUG][       Thread-603797][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:56:15,424 [DEBUG][       Thread-603797][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:56:15,425 [DEBUG][       Thread-603797][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:56:15,425 [DEBUG][       Thread-603797][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:56:15,448 [ INFO][       Thread-603797][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:56:15,449 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:56:15,449 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:56:16,369 [DEBUG][Thread-603799 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:56:16,461 [DEBUG][       Thread-603797][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:56:16,461 [DEBUG][       Thread-603797][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:56:16,511 [DEBUG][       Thread-603797][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:56:16,511 [DEBUG][       Thread-603797][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:56:16,529 [DEBUG][       Thread-603797][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:56:16,538 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:56:16,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')
2025-07-01 11:56:16,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-07-01 11:56:16,555 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:56:16,555 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:56:16,555 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:56:16,563 [DEBUG][       Thread-603797][   transport.py][1871] : EOF in transport thread
2025-07-01 11:56:25,413 [DEBUG][Thread-603800 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:56:26,566 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:56:26,566 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:56:26,566 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:56:26,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-07-01 11:56:27,053 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 56, 1), 10.19, 49.46, 0.0, 38.13, 11.25, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:56:27,053 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:56:01
2025-07-01 11:56:27,137 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:56:27,141 [DEBUG][       Thread-603801][   transport.py][1871] : starting thread (client mode): 0x75a93f0
2025-07-01 11:56:27,141 [DEBUG][       Thread-603801][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:56:27,161 [DEBUG][       Thread-603801][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:56:27,161 [ INFO][       Thread-603801][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:56:27,164 [DEBUG][       Thread-603801][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:56:27,164 [DEBUG][       Thread-603801][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:56:27,164 [DEBUG][       Thread-603801][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:56:27,164 [DEBUG][       Thread-603801][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:56:27,164 [DEBUG][       Thread-603801][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:56:27,164 [DEBUG][       Thread-603801][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:56:27,164 [DEBUG][       Thread-603801][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:56:27,164 [DEBUG][       Thread-603801][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:56:27,164 [DEBUG][       Thread-603801][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:56:27,164 [DEBUG][       Thread-603801][   transport.py][1871] : client lang: <none>
2025-07-01 11:56:27,164 [DEBUG][       Thread-603801][   transport.py][1871] : server lang: <none>
2025-07-01 11:56:27,164 [DEBUG][       Thread-603801][   transport.py][1871] : kex follows: False
2025-07-01 11:56:27,164 [DEBUG][       Thread-603801][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:56:27,164 [DEBUG][       Thread-603801][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:56:27,164 [DEBUG][       Thread-603801][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:56:27,164 [DEBUG][       Thread-603801][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:56:27,164 [DEBUG][       Thread-603801][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:56:27,164 [DEBUG][       Thread-603801][   transport.py][1871] : Compression: none
2025-07-01 11:56:27,164 [DEBUG][       Thread-603801][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:56:27,178 [DEBUG][       Thread-603801][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:56:27,179 [DEBUG][       Thread-603801][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:56:27,179 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:56:27,180 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:56:27,180 [DEBUG][       Thread-603801][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:56:27,180 [DEBUG][       Thread-603801][   transport.py][1871] : userauth is OK
2025-07-01 11:56:27,204 [ INFO][       Thread-603801][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:56:27,205 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:56:27,663 [DEBUG][Thread-603803 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:56:27,808 [DEBUG][       Thread-603801][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:56:27,809 [DEBUG][       Thread-603801][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:56:27,853 [DEBUG][       Thread-603801][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:56:27,853 [DEBUG][       Thread-603801][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:56:27,856 [DEBUG][       Thread-603801][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:56:27,868 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:56:27,869 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:56:27,870 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:56:27,872 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:56:27,877 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:56:27,879 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:56:27,879 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:56:27,880 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:56:27,880 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.413833 -999.00  +10.80  33.57     55   +2.20 1 1 2 1 1   888    0 9.19 17.15 ----- 33.6 33.6 16.5 43.6 14.2 -25.8 13.4 -24.5 13.1 -24.1 13.8 -24.6
2025-07-01 11:56:27,880 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:56:27,880 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:56:27,880 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.413833
2025-07-01 11:56:27,880 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:56:27,881 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:56:27,881 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:56:27,881 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:56:27,881 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 11:56:27,881 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:56:01', tmtdew=10.19, humidity=49.46, cloud=0.0, wind=38.13, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:55:55.171', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:56:27,882 [DEBUG][       Thread-603801][   transport.py][1871] : EOF in transport thread
2025-07-01 11:56:27,959 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:56:27,969 [DEBUG][       Thread-603805][   transport.py][1871] : starting thread (client mode): 0x82b3be0
2025-07-01 11:56:27,969 [DEBUG][       Thread-603805][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:56:27,985 [DEBUG][       Thread-603805][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:56:27,985 [ INFO][       Thread-603805][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:56:27,997 [DEBUG][       Thread-603805][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:56:27,997 [DEBUG][       Thread-603805][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:56:27,997 [DEBUG][       Thread-603805][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:56:27,997 [DEBUG][       Thread-603805][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:56:27,998 [DEBUG][       Thread-603805][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:56:27,998 [DEBUG][       Thread-603805][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:56:27,998 [DEBUG][       Thread-603805][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:56:27,998 [DEBUG][       Thread-603805][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:56:27,998 [DEBUG][       Thread-603805][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:56:27,998 [DEBUG][       Thread-603805][   transport.py][1871] : client lang: <none>
2025-07-01 11:56:27,998 [DEBUG][       Thread-603805][   transport.py][1871] : server lang: <none>
2025-07-01 11:56:27,998 [DEBUG][       Thread-603805][   transport.py][1871] : kex follows: False
2025-07-01 11:56:27,998 [DEBUG][       Thread-603805][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:56:27,998 [DEBUG][       Thread-603805][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:56:27,998 [DEBUG][       Thread-603805][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:56:27,998 [DEBUG][       Thread-603805][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:56:27,998 [DEBUG][       Thread-603805][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:56:27,998 [DEBUG][       Thread-603805][   transport.py][1871] : Compression: none
2025-07-01 11:56:27,998 [DEBUG][       Thread-603805][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:56:28,057 [DEBUG][       Thread-603805][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:56:28,057 [DEBUG][       Thread-603805][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:56:28,058 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:56:28,058 [DEBUG][       Thread-603805][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:56:28,059 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:56:28,114 [DEBUG][       Thread-603805][   transport.py][1871] : userauth is OK
2025-07-01 11:56:28,114 [DEBUG][       Thread-603805][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:56:28,115 [DEBUG][       Thread-603805][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:56:28,115 [DEBUG][       Thread-603805][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:56:28,115 [DEBUG][       Thread-603805][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:56:28,131 [ INFO][       Thread-603805][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:56:28,131 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:56:28,131 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:56:29,127 [DEBUG][       Thread-603805][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:56:29,127 [DEBUG][       Thread-603805][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:56:29,175 [DEBUG][       Thread-603805][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:56:29,175 [DEBUG][       Thread-603805][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:56:29,183 [DEBUG][       Thread-603805][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:56:29,191 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:56:29,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')
2025-07-01 11:56:29,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-07-01 11:56:29,207 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:56:29,207 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:56:29,207 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:56:29,215 [DEBUG][       Thread-603805][   transport.py][1871] : EOF in transport thread
2025-07-01 11:56:34,432 [DEBUG][Thread-603807 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:56:39,218 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:56:39,218 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:56:39,218 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:56:39,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-07-01 11:56:39,691 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 56, 32), 10.05, 50.04, 0.0, 35.43, 11.07, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:56:39,691 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:56:32
2025-07-01 11:56:39,774 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:56:39,778 [DEBUG][       Thread-603808][   transport.py][1871] : starting thread (client mode): 0x75ab880
2025-07-01 11:56:39,778 [DEBUG][       Thread-603808][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:56:39,798 [DEBUG][       Thread-603808][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:56:39,798 [ INFO][       Thread-603808][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:56:39,802 [DEBUG][       Thread-603808][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:56:39,802 [DEBUG][       Thread-603808][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:56:39,802 [DEBUG][       Thread-603808][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:56:39,802 [DEBUG][       Thread-603808][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:56:39,802 [DEBUG][       Thread-603808][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:56:39,802 [DEBUG][       Thread-603808][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:56:39,802 [DEBUG][       Thread-603808][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:56:39,802 [DEBUG][       Thread-603808][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:56:39,802 [DEBUG][       Thread-603808][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:56:39,803 [DEBUG][       Thread-603808][   transport.py][1871] : client lang: <none>
2025-07-01 11:56:39,803 [DEBUG][       Thread-603808][   transport.py][1871] : server lang: <none>
2025-07-01 11:56:39,803 [DEBUG][       Thread-603808][   transport.py][1871] : kex follows: False
2025-07-01 11:56:39,803 [DEBUG][       Thread-603808][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:56:39,803 [DEBUG][       Thread-603808][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:56:39,803 [DEBUG][       Thread-603808][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:56:39,803 [DEBUG][       Thread-603808][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:56:39,803 [DEBUG][       Thread-603808][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:56:39,803 [DEBUG][       Thread-603808][   transport.py][1871] : Compression: none
2025-07-01 11:56:39,803 [DEBUG][       Thread-603808][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:56:39,817 [DEBUG][       Thread-603808][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:56:39,817 [DEBUG][       Thread-603808][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:56:39,817 [DEBUG][       Thread-603808][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:56:39,818 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:56:39,818 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:56:39,819 [DEBUG][       Thread-603808][   transport.py][1871] : userauth is OK
2025-07-01 11:56:39,832 [ INFO][       Thread-603808][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:56:39,833 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:56:40,489 [DEBUG][       Thread-603808][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:56:40,489 [DEBUG][       Thread-603808][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:56:40,533 [DEBUG][       Thread-603808][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:56:40,533 [DEBUG][       Thread-603808][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:56:40,537 [DEBUG][       Thread-603808][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:56:40,549 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:56:40,550 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:56:40,551 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:56:40,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:56:40,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:56:40,555 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:56:40,555 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:56:40,555 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:56:40,556 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.413833 -999.00  +10.80  33.57     55   +2.20 1 1 2 1 1   888    0 9.19 17.15 ----- 33.6 33.6 16.5 43.6 14.2 -25.8 13.4 -24.5 13.1 -24.1 13.8 -24.6
2025-07-01 11:56:40,556 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:56:40,556 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:56:40,556 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.413833
2025-07-01 11:56:40,556 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:56:40,556 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:56:40,556 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:56:40,556 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:56:40,556 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 11:56:40,556 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:56:32', tmtdew=10.05, humidity=50.04, cloud=0.0, wind=35.43, temperature=11.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:55:55.171', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:56:40,557 [DEBUG][       Thread-603808][   transport.py][1871] : EOF in transport thread
2025-07-01 11:56:40,628 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:56:40,637 [DEBUG][       Thread-603811][   transport.py][1871] : starting thread (client mode): 0x81a50c0
2025-07-01 11:56:40,638 [DEBUG][       Thread-603811][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:56:40,655 [DEBUG][       Thread-603811][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:56:40,655 [ INFO][       Thread-603811][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:56:40,663 [DEBUG][       Thread-603811][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:56:40,663 [DEBUG][       Thread-603811][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:56:40,663 [DEBUG][       Thread-603811][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:56:40,663 [DEBUG][       Thread-603811][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:56:40,663 [DEBUG][       Thread-603811][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:56:40,663 [DEBUG][       Thread-603811][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:56:40,663 [DEBUG][       Thread-603811][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:56:40,664 [DEBUG][       Thread-603811][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:56:40,664 [DEBUG][       Thread-603811][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:56:40,664 [DEBUG][       Thread-603811][   transport.py][1871] : client lang: <none>
2025-07-01 11:56:40,664 [DEBUG][       Thread-603811][   transport.py][1871] : server lang: <none>
2025-07-01 11:56:40,664 [DEBUG][       Thread-603811][   transport.py][1871] : kex follows: False
2025-07-01 11:56:40,664 [DEBUG][       Thread-603811][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:56:40,664 [DEBUG][       Thread-603811][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:56:40,664 [DEBUG][       Thread-603811][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:56:40,664 [DEBUG][       Thread-603811][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:56:40,664 [DEBUG][       Thread-603811][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:56:40,664 [DEBUG][       Thread-603811][   transport.py][1871] : Compression: none
2025-07-01 11:56:40,664 [DEBUG][       Thread-603811][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:56:40,723 [DEBUG][       Thread-603811][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:56:40,723 [DEBUG][       Thread-603811][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:56:40,724 [DEBUG][       Thread-603811][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:56:40,724 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:56:40,725 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:56:40,779 [DEBUG][       Thread-603811][   transport.py][1871] : userauth is OK
2025-07-01 11:56:40,779 [DEBUG][       Thread-603811][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:56:40,779 [DEBUG][       Thread-603811][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:56:40,779 [DEBUG][       Thread-603811][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:56:40,779 [DEBUG][       Thread-603811][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:56:40,800 [ INFO][       Thread-603811][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:56:40,800 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:56:40,801 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:56:41,809 [DEBUG][       Thread-603811][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:56:41,809 [DEBUG][       Thread-603811][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:56:41,860 [DEBUG][       Thread-603811][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:56:41,861 [DEBUG][       Thread-603811][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:56:41,870 [DEBUG][       Thread-603811][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:56:41,885 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:56:41,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-07-01 11:56:41,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-07-01 11:56:41,909 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:56:41,909 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:56:41,910 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:56:41,921 [DEBUG][       Thread-603811][   transport.py][1871] : EOF in transport thread
2025-07-01 11:56:43,452 [DEBUG][Thread-603813 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:56:51,920 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:56:51,920 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:56:51,920 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:56:51,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-07-01 11:56:52,403 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 56, 32), 10.05, 50.04, 0.0, 35.43, 11.07, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:56:52,403 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:56:32
2025-07-01 11:56:52,482 [DEBUG][Thread-603814 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:56:52,486 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:56:52,489 [DEBUG][       Thread-603815][   transport.py][1871] : starting thread (client mode): 0x8173c40
2025-07-01 11:56:52,489 [DEBUG][       Thread-603815][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:56:52,509 [DEBUG][       Thread-603815][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:56:52,509 [ INFO][       Thread-603815][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:56:52,513 [DEBUG][       Thread-603815][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:56:52,513 [DEBUG][       Thread-603815][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:56:52,513 [DEBUG][       Thread-603815][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:56:52,513 [DEBUG][       Thread-603815][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:56:52,513 [DEBUG][       Thread-603815][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:56:52,513 [DEBUG][       Thread-603815][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:56:52,513 [DEBUG][       Thread-603815][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:56:52,513 [DEBUG][       Thread-603815][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:56:52,513 [DEBUG][       Thread-603815][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:56:52,513 [DEBUG][       Thread-603815][   transport.py][1871] : client lang: <none>
2025-07-01 11:56:52,513 [DEBUG][       Thread-603815][   transport.py][1871] : server lang: <none>
2025-07-01 11:56:52,513 [DEBUG][       Thread-603815][   transport.py][1871] : kex follows: False
2025-07-01 11:56:52,513 [DEBUG][       Thread-603815][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:56:52,513 [DEBUG][       Thread-603815][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:56:52,513 [DEBUG][       Thread-603815][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:56:52,513 [DEBUG][       Thread-603815][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:56:52,513 [DEBUG][       Thread-603815][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:56:52,513 [DEBUG][       Thread-603815][   transport.py][1871] : Compression: none
2025-07-01 11:56:52,513 [DEBUG][       Thread-603815][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:56:52,530 [DEBUG][       Thread-603815][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:56:52,531 [DEBUG][       Thread-603815][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:56:52,531 [DEBUG][       Thread-603815][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:56:52,531 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:56:52,532 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:56:52,532 [DEBUG][       Thread-603815][   transport.py][1871] : userauth is OK
2025-07-01 11:56:52,557 [ INFO][       Thread-603815][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:56:52,557 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:56:53,193 [DEBUG][       Thread-603815][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:56:53,194 [DEBUG][       Thread-603815][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:56:53,237 [DEBUG][       Thread-603815][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:56:53,237 [DEBUG][       Thread-603815][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:56:53,240 [DEBUG][       Thread-603815][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:56:53,253 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:56:53,253 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:56:53,255 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:56:53,257 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:56:53,262 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:56:53,264 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:56:53,264 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:56:53,265 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:56:53,265 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.413833 -999.00  +10.80  33.57     55   +2.20 1 1 2 1 1   888    0 9.19 17.15 ----- 33.6 33.6 16.5 43.6 14.2 -25.8 13.4 -24.5 13.1 -24.1 13.8 -24.6
2025-07-01 11:56:53,265 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:56:53,265 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:56:53,266 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.413833
2025-07-01 11:56:53,266 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:56:53,267 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:56:53,267 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:56:53,267 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:56:53,267 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 11:56:53,267 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:56:32', tmtdew=10.05, humidity=50.04, cloud=0.0, wind=35.43, temperature=11.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:55:55.171', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:56:53,267 [DEBUG][       Thread-603815][   transport.py][1871] : EOF in transport thread
2025-07-01 11:56:53,351 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:56:53,365 [DEBUG][       Thread-603818][   transport.py][1871] : starting thread (client mode): 0x8157a00
2025-07-01 11:56:53,365 [DEBUG][       Thread-603818][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:56:53,379 [DEBUG][       Thread-603818][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:56:53,380 [ INFO][       Thread-603818][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:56:53,387 [DEBUG][       Thread-603818][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:56:53,388 [DEBUG][       Thread-603818][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:56:53,388 [DEBUG][       Thread-603818][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:56:53,388 [DEBUG][       Thread-603818][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:56:53,388 [DEBUG][       Thread-603818][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:56:53,388 [DEBUG][       Thread-603818][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:56:53,388 [DEBUG][       Thread-603818][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:56:53,388 [DEBUG][       Thread-603818][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:56:53,388 [DEBUG][       Thread-603818][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:56:53,388 [DEBUG][       Thread-603818][   transport.py][1871] : client lang: <none>
2025-07-01 11:56:53,388 [DEBUG][       Thread-603818][   transport.py][1871] : server lang: <none>
2025-07-01 11:56:53,388 [DEBUG][       Thread-603818][   transport.py][1871] : kex follows: False
2025-07-01 11:56:53,388 [DEBUG][       Thread-603818][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:56:53,388 [DEBUG][       Thread-603818][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:56:53,388 [DEBUG][       Thread-603818][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:56:53,388 [DEBUG][       Thread-603818][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:56:53,388 [DEBUG][       Thread-603818][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:56:53,389 [DEBUG][       Thread-603818][   transport.py][1871] : Compression: none
2025-07-01 11:56:53,389 [DEBUG][       Thread-603818][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:56:53,451 [DEBUG][       Thread-603818][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:56:53,451 [DEBUG][       Thread-603818][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:56:53,452 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:56:53,452 [DEBUG][       Thread-603818][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:56:53,453 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:56:53,507 [DEBUG][       Thread-603818][   transport.py][1871] : userauth is OK
2025-07-01 11:56:53,507 [DEBUG][       Thread-603818][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:56:53,508 [DEBUG][       Thread-603818][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:56:53,508 [DEBUG][       Thread-603818][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:56:53,508 [DEBUG][       Thread-603818][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:56:53,526 [ INFO][       Thread-603818][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:56:53,526 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:56:53,527 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:56:54,542 [DEBUG][       Thread-603818][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:56:54,542 [DEBUG][       Thread-603818][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:56:54,592 [DEBUG][       Thread-603818][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:56:54,592 [DEBUG][       Thread-603818][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:56:54,601 [DEBUG][       Thread-603818][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:56:54,610 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:56:54,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-07-01 11:56: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') -> 00000000
2025-07-01 11:56:54,629 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:56:54,629 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:56:54,629 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:56:54,637 [DEBUG][       Thread-603818][   transport.py][1871] : EOF in transport thread
2025-07-01 11:57:01,505 [DEBUG][Thread-603820 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:57:04,640 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:57:04,640 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:57:04,640 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:57:04,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-07-01 11:57:05,115 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 56, 32), 10.05, 50.04, 0.0, 35.43, 11.07, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:57:05,116 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:56:32
2025-07-01 11:57:05,199 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:57:05,204 [DEBUG][       Thread-603821][   transport.py][1871] : starting thread (client mode): 0x75ab610
2025-07-01 11:57:05,204 [DEBUG][       Thread-603821][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:57:05,224 [DEBUG][       Thread-603821][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:57:05,224 [ INFO][       Thread-603821][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:57:05,235 [DEBUG][       Thread-603821][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:57:05,235 [DEBUG][       Thread-603821][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:57:05,235 [DEBUG][       Thread-603821][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:57:05,235 [DEBUG][       Thread-603821][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:57:05,235 [DEBUG][       Thread-603821][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:57:05,235 [DEBUG][       Thread-603821][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:57:05,235 [DEBUG][       Thread-603821][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:57:05,235 [DEBUG][       Thread-603821][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:57:05,235 [DEBUG][       Thread-603821][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:57:05,235 [DEBUG][       Thread-603821][   transport.py][1871] : client lang: <none>
2025-07-01 11:57:05,235 [DEBUG][       Thread-603821][   transport.py][1871] : server lang: <none>
2025-07-01 11:57:05,235 [DEBUG][       Thread-603821][   transport.py][1871] : kex follows: False
2025-07-01 11:57:05,235 [DEBUG][       Thread-603821][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:57:05,235 [DEBUG][       Thread-603821][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:57:05,235 [DEBUG][       Thread-603821][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:57:05,236 [DEBUG][       Thread-603821][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:57:05,236 [DEBUG][       Thread-603821][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:57:05,236 [DEBUG][       Thread-603821][   transport.py][1871] : Compression: none
2025-07-01 11:57:05,236 [DEBUG][       Thread-603821][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:57:05,251 [DEBUG][       Thread-603821][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:57:05,251 [DEBUG][       Thread-603821][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:57:05,252 [DEBUG][       Thread-603821][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:57:05,252 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:57:05,252 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:57:05,252 [DEBUG][       Thread-603821][   transport.py][1871] : userauth is OK
2025-07-01 11:57:05,264 [ INFO][       Thread-603821][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:57:05,265 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:57:05,916 [DEBUG][       Thread-603821][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:57:05,916 [DEBUG][       Thread-603821][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:57:05,957 [DEBUG][       Thread-603821][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:57:05,957 [DEBUG][       Thread-603821][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:57:05,960 [DEBUG][       Thread-603821][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:57:05,973 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:57:05,973 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:57:05,975 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:57:05,976 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:57:05,979 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:57:05,980 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:57:05,980 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:57:05,980 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:57:05,980 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.414528 -999.00  +10.90  54.86     55   +2.30 1 1 2 1 1   888    0 9.08 16.29 ----- 54.9 54.9 41.8 60.5 14.1 -24.2 13.3 -24.3 13.0 -23.3 13.7 -23.1
2025-07-01 11:57:05,980 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:57:05,980 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:57:05,980 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.414528
2025-07-01 11:57:05,980 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:57:05,981 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:57:05,981 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:57:05,981 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:57:05,981 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 11:57:05,981 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:56:32', tmtdew=10.05, humidity=50.04, cloud=0.0, wind=35.43, temperature=11.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:56:55.219', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:57:05,981 [DEBUG][       Thread-603821][   transport.py][1871] : EOF in transport thread
2025-07-01 11:57:06,055 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:57:06,068 [DEBUG][       Thread-603824][   transport.py][1871] : starting thread (client mode): 0x81a40a0
2025-07-01 11:57:06,068 [DEBUG][       Thread-603824][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:57:06,083 [DEBUG][       Thread-603824][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:57:06,083 [ INFO][       Thread-603824][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:57:06,091 [DEBUG][       Thread-603824][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:57:06,091 [DEBUG][       Thread-603824][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:57:06,091 [DEBUG][       Thread-603824][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:57:06,091 [DEBUG][       Thread-603824][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:57:06,091 [DEBUG][       Thread-603824][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:57:06,091 [DEBUG][       Thread-603824][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:57:06,091 [DEBUG][       Thread-603824][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:57:06,091 [DEBUG][       Thread-603824][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:57:06,091 [DEBUG][       Thread-603824][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:57:06,091 [DEBUG][       Thread-603824][   transport.py][1871] : client lang: <none>
2025-07-01 11:57:06,091 [DEBUG][       Thread-603824][   transport.py][1871] : server lang: <none>
2025-07-01 11:57:06,091 [DEBUG][       Thread-603824][   transport.py][1871] : kex follows: False
2025-07-01 11:57:06,091 [DEBUG][       Thread-603824][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:57:06,091 [DEBUG][       Thread-603824][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:57:06,091 [DEBUG][       Thread-603824][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:57:06,091 [DEBUG][       Thread-603824][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:57:06,091 [DEBUG][       Thread-603824][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:57:06,091 [DEBUG][       Thread-603824][   transport.py][1871] : Compression: none
2025-07-01 11:57:06,091 [DEBUG][       Thread-603824][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:57:06,150 [DEBUG][       Thread-603824][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:57:06,150 [DEBUG][       Thread-603824][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:57:06,150 [DEBUG][       Thread-603824][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:57:06,150 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:57:06,150 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:57:06,206 [DEBUG][       Thread-603824][   transport.py][1871] : userauth is OK
2025-07-01 11:57:06,206 [DEBUG][       Thread-603824][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:57:06,206 [DEBUG][       Thread-603824][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:57:06,206 [DEBUG][       Thread-603824][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:57:06,207 [DEBUG][       Thread-603824][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:57:06,224 [ INFO][       Thread-603824][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:57:06,224 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:57:06,224 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:57:07,278 [DEBUG][       Thread-603824][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:57:07,278 [DEBUG][       Thread-603824][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:57:07,327 [DEBUG][       Thread-603824][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:57:07,328 [DEBUG][       Thread-603824][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:57:07,337 [DEBUG][       Thread-603824][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:57:07,346 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:57:07,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-07-01 11:57:07,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-07-01 11:57:07,365 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:57:07,365 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:57:07,366 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:57:07,374 [DEBUG][       Thread-603824][   transport.py][1871] : EOF in transport thread
2025-07-01 11:57:10,522 [DEBUG][Thread-603826 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:57:11,788 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:57:11,789 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:57:17,376 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:57:17,376 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:57:17,376 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:57:17,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-07-01 11:57:17,854 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 57, 4), 9.98, 50.26, 0.0, 36.31, 10.99, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:57:17,854 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:57:04
2025-07-01 11:57:17,938 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:57:17,941 [DEBUG][       Thread-603827][   transport.py][1871] : starting thread (client mode): 0x8173910
2025-07-01 11:57:17,941 [DEBUG][       Thread-603827][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:57:17,960 [DEBUG][       Thread-603827][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:57:17,960 [ INFO][       Thread-603827][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:57:17,962 [DEBUG][       Thread-603827][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:57:17,962 [DEBUG][       Thread-603827][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:57:17,963 [DEBUG][       Thread-603827][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:57:17,963 [DEBUG][       Thread-603827][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:57:17,963 [DEBUG][       Thread-603827][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:57:17,963 [DEBUG][       Thread-603827][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:57:17,963 [DEBUG][       Thread-603827][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:57:17,963 [DEBUG][       Thread-603827][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:57:17,963 [DEBUG][       Thread-603827][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:57:17,963 [DEBUG][       Thread-603827][   transport.py][1871] : client lang: <none>
2025-07-01 11:57:17,963 [DEBUG][       Thread-603827][   transport.py][1871] : server lang: <none>
2025-07-01 11:57:17,963 [DEBUG][       Thread-603827][   transport.py][1871] : kex follows: False
2025-07-01 11:57:17,963 [DEBUG][       Thread-603827][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:57:17,963 [DEBUG][       Thread-603827][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:57:17,963 [DEBUG][       Thread-603827][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:57:17,963 [DEBUG][       Thread-603827][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:57:17,963 [DEBUG][       Thread-603827][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:57:17,963 [DEBUG][       Thread-603827][   transport.py][1871] : Compression: none
2025-07-01 11:57:17,963 [DEBUG][       Thread-603827][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:57:17,969 [DEBUG][       Thread-603827][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:57:17,969 [DEBUG][       Thread-603827][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:57:17,969 [DEBUG][       Thread-603827][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:57:17,969 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:57:17,970 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:57:17,970 [DEBUG][       Thread-603827][   transport.py][1871] : userauth is OK
2025-07-01 11:57:17,983 [ INFO][       Thread-603827][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:57:17,983 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:57:18,621 [DEBUG][       Thread-603827][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:57:18,621 [DEBUG][       Thread-603827][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:57:18,665 [DEBUG][       Thread-603827][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:57:18,665 [DEBUG][       Thread-603827][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:57:18,668 [DEBUG][       Thread-603827][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:57:18,682 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:57:18,682 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:57:18,685 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:57:18,686 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:57:18,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:57:18,694 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:57:18,694 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:57:18,695 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:57:18,695 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.414528 -999.00  +10.90  54.86     55   +2.30 1 1 2 1 1   888    0 9.08 16.29 ----- 54.9 54.9 41.8 60.5 14.1 -24.2 13.3 -24.3 13.0 -23.3 13.7 -23.1
2025-07-01 11:57:18,695 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:57:18,695 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:57:18,695 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.414528
2025-07-01 11:57:18,696 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:57:18,696 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:57:18,696 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:57:18,696 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:57:18,697 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 11:57:18,697 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:57:04', tmtdew=9.98, humidity=50.26, cloud=0.0, wind=36.31, temperature=10.99, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:56:55.219', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:57:18,698 [DEBUG][       Thread-603827][   transport.py][1871] : EOF in transport thread
2025-07-01 11:57:18,781 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:57:18,792 [DEBUG][       Thread-603830][   transport.py][1871] : starting thread (client mode): 0x83939d0
2025-07-01 11:57:18,792 [DEBUG][       Thread-603830][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:57:18,808 [DEBUG][       Thread-603830][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:57:18,808 [ INFO][       Thread-603830][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:57:18,815 [DEBUG][       Thread-603830][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:57:18,815 [DEBUG][       Thread-603830][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:57:18,816 [DEBUG][       Thread-603830][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:57:18,816 [DEBUG][       Thread-603830][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:57:18,816 [DEBUG][       Thread-603830][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:57:18,816 [DEBUG][       Thread-603830][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:57:18,816 [DEBUG][       Thread-603830][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:57:18,816 [DEBUG][       Thread-603830][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:57:18,816 [DEBUG][       Thread-603830][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:57:18,816 [DEBUG][       Thread-603830][   transport.py][1871] : client lang: <none>
2025-07-01 11:57:18,816 [DEBUG][       Thread-603830][   transport.py][1871] : server lang: <none>
2025-07-01 11:57:18,816 [DEBUG][       Thread-603830][   transport.py][1871] : kex follows: False
2025-07-01 11:57:18,816 [DEBUG][       Thread-603830][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:57:18,816 [DEBUG][       Thread-603830][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:57:18,816 [DEBUG][       Thread-603830][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:57:18,816 [DEBUG][       Thread-603830][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:57:18,816 [DEBUG][       Thread-603830][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:57:18,816 [DEBUG][       Thread-603830][   transport.py][1871] : Compression: none
2025-07-01 11:57:18,816 [DEBUG][       Thread-603830][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:57:18,875 [DEBUG][       Thread-603830][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:57:18,876 [DEBUG][       Thread-603830][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:57:18,877 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:57:18,877 [DEBUG][       Thread-603830][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:57:18,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:57:18,931 [DEBUG][       Thread-603830][   transport.py][1871] : userauth is OK
2025-07-01 11:57:18,931 [DEBUG][       Thread-603830][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:57:18,932 [DEBUG][       Thread-603830][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:57:18,932 [DEBUG][       Thread-603830][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:57:18,932 [DEBUG][       Thread-603830][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:57:18,951 [ INFO][       Thread-603830][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:57:18,951 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:57:18,952 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:57:19,542 [DEBUG][Thread-603832 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:57:19,990 [DEBUG][       Thread-603830][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:57:19,990 [DEBUG][       Thread-603830][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:57:20,040 [DEBUG][       Thread-603830][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:57:20,040 [DEBUG][       Thread-603830][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:57:20,050 [DEBUG][       Thread-603830][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:57:20,060 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:57:20,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-07-01 11:57:20,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-07-01 11:57:20,078 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:57:20,078 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:57:20,078 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:57:20,086 [DEBUG][       Thread-603830][   transport.py][1871] : EOF in transport thread
2025-07-01 11:57:27,726 [DEBUG][Thread-603833 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:57:28,579 [DEBUG][Thread-603834 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:57:30,084 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:57:30,084 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:57:30,084 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:57:30,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-07-01 11:57:30,555 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 57, 4), 9.98, 50.26, 0.0, 36.31, 10.99, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:57:30,556 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:57:04
2025-07-01 11:57:30,639 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:57:30,643 [DEBUG][       Thread-603835][   transport.py][1871] : starting thread (client mode): 0x75a8a60
2025-07-01 11:57:30,643 [DEBUG][       Thread-603835][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:57:30,662 [DEBUG][       Thread-603835][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:57:30,662 [ INFO][       Thread-603835][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:57:30,665 [DEBUG][       Thread-603835][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:57:30,666 [DEBUG][       Thread-603835][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:57:30,666 [DEBUG][       Thread-603835][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:57:30,666 [DEBUG][       Thread-603835][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:57:30,666 [DEBUG][       Thread-603835][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:57:30,666 [DEBUG][       Thread-603835][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:57:30,666 [DEBUG][       Thread-603835][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:57:30,666 [DEBUG][       Thread-603835][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:57:30,666 [DEBUG][       Thread-603835][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:57:30,666 [DEBUG][       Thread-603835][   transport.py][1871] : client lang: <none>
2025-07-01 11:57:30,666 [DEBUG][       Thread-603835][   transport.py][1871] : server lang: <none>
2025-07-01 11:57:30,666 [DEBUG][       Thread-603835][   transport.py][1871] : kex follows: False
2025-07-01 11:57:30,666 [DEBUG][       Thread-603835][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:57:30,666 [DEBUG][       Thread-603835][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:57:30,666 [DEBUG][       Thread-603835][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:57:30,666 [DEBUG][       Thread-603835][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:57:30,666 [DEBUG][       Thread-603835][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:57:30,666 [DEBUG][       Thread-603835][   transport.py][1871] : Compression: none
2025-07-01 11:57:30,666 [DEBUG][       Thread-603835][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:57:30,685 [DEBUG][       Thread-603835][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:57:30,686 [DEBUG][       Thread-603835][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:57:30,686 [DEBUG][       Thread-603835][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:57:30,686 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:57:30,687 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:57:30,688 [DEBUG][       Thread-603835][   transport.py][1871] : userauth is OK
2025-07-01 11:57:30,712 [ INFO][       Thread-603835][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:57:30,712 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:57:31,350 [DEBUG][       Thread-603835][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:57:31,351 [DEBUG][       Thread-603835][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:57:31,393 [DEBUG][       Thread-603835][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:57:31,393 [DEBUG][       Thread-603835][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:57:31,396 [DEBUG][       Thread-603835][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:57:31,408 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:57:31,409 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:57:31,411 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:57:31,413 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:57:31,418 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:57:31,420 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:57:31,420 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:57:31,421 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:57:31,421 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.414528 -999.00  +10.90  54.86     55   +2.30 1 1 2 1 1   888    0 9.08 16.29 ----- 54.9 54.9 41.8 60.5 14.1 -24.2 13.3 -24.3 13.0 -23.3 13.7 -23.1
2025-07-01 11:57:31,421 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:57:31,421 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:57:31,421 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.414528
2025-07-01 11:57:31,422 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:57:31,422 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:57:31,422 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:57:31,422 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:57:31,422 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 11:57:31,422 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:57:04', tmtdew=9.98, humidity=50.26, cloud=0.0, wind=36.31, temperature=10.99, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:56:55.219', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:57:31,423 [DEBUG][       Thread-603835][   transport.py][1871] : EOF in transport thread
2025-07-01 11:57:31,506 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:57:31,516 [DEBUG][       Thread-603838][   transport.py][1871] : starting thread (client mode): 0x81db3a0
2025-07-01 11:57:31,516 [DEBUG][       Thread-603838][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:57:31,531 [DEBUG][       Thread-603838][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:57:31,531 [ INFO][       Thread-603838][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:57:31,539 [DEBUG][       Thread-603838][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:57:31,539 [DEBUG][       Thread-603838][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:57:31,539 [DEBUG][       Thread-603838][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:57:31,539 [DEBUG][       Thread-603838][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:57:31,539 [DEBUG][       Thread-603838][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:57:31,539 [DEBUG][       Thread-603838][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:57:31,540 [DEBUG][       Thread-603838][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:57:31,540 [DEBUG][       Thread-603838][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:57:31,540 [DEBUG][       Thread-603838][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:57:31,540 [DEBUG][       Thread-603838][   transport.py][1871] : client lang: <none>
2025-07-01 11:57:31,540 [DEBUG][       Thread-603838][   transport.py][1871] : server lang: <none>
2025-07-01 11:57:31,540 [DEBUG][       Thread-603838][   transport.py][1871] : kex follows: False
2025-07-01 11:57:31,540 [DEBUG][       Thread-603838][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:57:31,540 [DEBUG][       Thread-603838][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:57:31,540 [DEBUG][       Thread-603838][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:57:31,540 [DEBUG][       Thread-603838][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:57:31,540 [DEBUG][       Thread-603838][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:57:31,540 [DEBUG][       Thread-603838][   transport.py][1871] : Compression: none
2025-07-01 11:57:31,540 [DEBUG][       Thread-603838][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:57:31,599 [DEBUG][       Thread-603838][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:57:31,600 [DEBUG][       Thread-603838][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:57:31,601 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:57:31,602 [DEBUG][       Thread-603838][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:57:31,603 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:57:31,655 [DEBUG][       Thread-603838][   transport.py][1871] : userauth is OK
2025-07-01 11:57:31,655 [DEBUG][       Thread-603838][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:57:31,656 [DEBUG][       Thread-603838][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:57:31,656 [DEBUG][       Thread-603838][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:57:31,656 [DEBUG][       Thread-603838][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:57:31,677 [ INFO][       Thread-603838][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:57:31,678 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:57:31,678 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:57:32,670 [DEBUG][       Thread-603838][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:57:32,671 [DEBUG][       Thread-603838][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:57:32,720 [DEBUG][       Thread-603838][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:57:32,720 [DEBUG][       Thread-603838][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:57:32,729 [DEBUG][       Thread-603838][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:57:32,738 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:57:32,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-07-01 11:57: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') -> 00000000
2025-07-01 11:57:32,756 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:57:32,757 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:57:32,757 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:57:32,765 [DEBUG][       Thread-603838][   transport.py][1871] : EOF in transport thread
2025-07-01 11:57:37,599 [DEBUG][Thread-603840 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:57:42,768 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:57:42,768 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:57:42,768 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:57:42,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-07-01 11:57:43,253 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 57, 36), 9.9, 50.4, 0.0, 44.57, 10.97, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:57:43,254 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:57:36
2025-07-01 11:57:43,337 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:57:43,342 [DEBUG][       Thread-603841][   transport.py][1871] : starting thread (client mode): 0x81da4d0
2025-07-01 11:57:43,342 [DEBUG][       Thread-603841][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:57:43,359 [DEBUG][       Thread-603841][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:57:43,359 [ INFO][       Thread-603841][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:57:43,362 [DEBUG][       Thread-603841][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:57:43,362 [DEBUG][       Thread-603841][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:57:43,362 [DEBUG][       Thread-603841][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:57:43,362 [DEBUG][       Thread-603841][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:57:43,362 [DEBUG][       Thread-603841][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:57:43,362 [DEBUG][       Thread-603841][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:57:43,362 [DEBUG][       Thread-603841][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:57:43,362 [DEBUG][       Thread-603841][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:57:43,362 [DEBUG][       Thread-603841][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:57:43,362 [DEBUG][       Thread-603841][   transport.py][1871] : client lang: <none>
2025-07-01 11:57:43,362 [DEBUG][       Thread-603841][   transport.py][1871] : server lang: <none>
2025-07-01 11:57:43,362 [DEBUG][       Thread-603841][   transport.py][1871] : kex follows: False
2025-07-01 11:57:43,362 [DEBUG][       Thread-603841][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:57:43,363 [DEBUG][       Thread-603841][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:57:43,363 [DEBUG][       Thread-603841][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:57:43,363 [DEBUG][       Thread-603841][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:57:43,363 [DEBUG][       Thread-603841][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:57:43,363 [DEBUG][       Thread-603841][   transport.py][1871] : Compression: none
2025-07-01 11:57:43,363 [DEBUG][       Thread-603841][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:57:43,379 [DEBUG][       Thread-603841][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:57:43,379 [DEBUG][       Thread-603841][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:57:43,379 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:57:43,380 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:57:43,380 [DEBUG][       Thread-603841][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:57:43,381 [DEBUG][       Thread-603841][   transport.py][1871] : userauth is OK
2025-07-01 11:57:43,405 [ INFO][       Thread-603841][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:57:43,406 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:57:44,009 [DEBUG][       Thread-603841][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:57:44,010 [DEBUG][       Thread-603841][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:57:44,053 [DEBUG][       Thread-603841][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:57:44,053 [DEBUG][       Thread-603841][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:57:44,056 [DEBUG][       Thread-603841][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:57:44,069 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:57:44,070 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:57:44,071 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:57:44,073 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:57:44,079 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:57:44,080 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:57:44,081 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:57:44,081 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:57:44,081 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.414875 -999.00  +10.80  37.54     55   +2.20 1 1 2 1 1   888    0 9.08 15.01 ----- 37.5 37.5 40.2 53.1 14.0 -24.0 13.3 -23.8 -999.0 -999.0 13.6 -22.9
2025-07-01 11:57:44,082 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:57:44,082 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:57:44,082 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.414875
2025-07-01 11:57:44,082 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:57:44,083 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:57:44,083 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:57:44,083 [DEBUG][       Thread-603841][   transport.py][1871] : EOF in transport thread
2025-07-01 11:57:44,083 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:57:44,083 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 11:57:44,084 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:57:36', tmtdew=9.9, humidity=50.4, cloud=0.0, wind=44.57, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:57:25.200', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:57:44,156 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:57:44,166 [DEBUG][       Thread-603844][   transport.py][1871] : starting thread (client mode): 0x818e740
2025-07-01 11:57:44,166 [DEBUG][       Thread-603844][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:57:44,186 [DEBUG][       Thread-603844][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:57:44,186 [ INFO][       Thread-603844][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:57:44,193 [DEBUG][       Thread-603844][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:57:44,193 [DEBUG][       Thread-603844][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:57:44,193 [DEBUG][       Thread-603844][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:57:44,193 [DEBUG][       Thread-603844][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:57:44,193 [DEBUG][       Thread-603844][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:57:44,193 [DEBUG][       Thread-603844][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:57:44,193 [DEBUG][       Thread-603844][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:57:44,193 [DEBUG][       Thread-603844][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:57:44,193 [DEBUG][       Thread-603844][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:57:44,193 [DEBUG][       Thread-603844][   transport.py][1871] : client lang: <none>
2025-07-01 11:57:44,193 [DEBUG][       Thread-603844][   transport.py][1871] : server lang: <none>
2025-07-01 11:57:44,193 [DEBUG][       Thread-603844][   transport.py][1871] : kex follows: False
2025-07-01 11:57:44,194 [DEBUG][       Thread-603844][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:57:44,194 [DEBUG][       Thread-603844][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:57:44,194 [DEBUG][       Thread-603844][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:57:44,194 [DEBUG][       Thread-603844][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:57:44,194 [DEBUG][       Thread-603844][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:57:44,194 [DEBUG][       Thread-603844][   transport.py][1871] : Compression: none
2025-07-01 11:57:44,194 [DEBUG][       Thread-603844][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:57:44,251 [DEBUG][       Thread-603844][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:57:44,252 [DEBUG][       Thread-603844][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:57:44,252 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:57:44,253 [DEBUG][       Thread-603844][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:57:44,253 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:57:44,307 [DEBUG][       Thread-603844][   transport.py][1871] : userauth is OK
2025-07-01 11:57:44,308 [DEBUG][       Thread-603844][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:57:44,308 [DEBUG][       Thread-603844][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:57:44,308 [DEBUG][       Thread-603844][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:57:44,308 [DEBUG][       Thread-603844][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:57:44,326 [ INFO][       Thread-603844][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:57:44,327 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:57:44,327 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:57:45,312 [DEBUG][       Thread-603844][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:57:45,312 [DEBUG][       Thread-603844][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:57:45,363 [DEBUG][       Thread-603844][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:57:45,363 [DEBUG][       Thread-603844][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:57:45,372 [DEBUG][       Thread-603844][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:57:45,380 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:57:45,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-07-01 11:57: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') -> 00000000
2025-07-01 11:57:45,396 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:57:45,396 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:57:45,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:57:45,404 [DEBUG][       Thread-603844][   transport.py][1871] : EOF in transport thread
2025-07-01 11:57:46,616 [DEBUG][Thread-603846 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:57:55,406 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:57:55,406 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:57:55,407 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:57:55,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-07-01 11:57:55,639 [DEBUG][Thread-603847 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:57:55,878 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 57, 36), 9.9, 50.4, 0.0, 44.57, 10.97, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:57:55,878 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:57:36
2025-07-01 11:57:55,964 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:57:55,970 [DEBUG][       Thread-603848][   transport.py][1871] : starting thread (client mode): 0x81db580
2025-07-01 11:57:55,970 [DEBUG][       Thread-603848][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:57:55,991 [DEBUG][       Thread-603848][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:57:55,991 [ INFO][       Thread-603848][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:57:55,994 [DEBUG][       Thread-603848][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:57:55,994 [DEBUG][       Thread-603848][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:57:55,994 [DEBUG][       Thread-603848][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:57:55,994 [DEBUG][       Thread-603848][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:57:55,994 [DEBUG][       Thread-603848][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:57:55,994 [DEBUG][       Thread-603848][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:57:55,994 [DEBUG][       Thread-603848][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:57:55,994 [DEBUG][       Thread-603848][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:57:55,994 [DEBUG][       Thread-603848][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:57:55,995 [DEBUG][       Thread-603848][   transport.py][1871] : client lang: <none>
2025-07-01 11:57:55,995 [DEBUG][       Thread-603848][   transport.py][1871] : server lang: <none>
2025-07-01 11:57:55,995 [DEBUG][       Thread-603848][   transport.py][1871] : kex follows: False
2025-07-01 11:57:55,995 [DEBUG][       Thread-603848][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:57:55,995 [DEBUG][       Thread-603848][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:57:55,995 [DEBUG][       Thread-603848][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:57:55,995 [DEBUG][       Thread-603848][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:57:55,995 [DEBUG][       Thread-603848][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:57:55,995 [DEBUG][       Thread-603848][   transport.py][1871] : Compression: none
2025-07-01 11:57:55,995 [DEBUG][       Thread-603848][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:57:56,012 [DEBUG][       Thread-603848][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:57:56,013 [DEBUG][       Thread-603848][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:57:56,013 [DEBUG][       Thread-603848][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:57:56,014 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:57:56,014 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:57:56,015 [DEBUG][       Thread-603848][   transport.py][1871] : userauth is OK
2025-07-01 11:57:56,040 [ INFO][       Thread-603848][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:57:56,040 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:57:56,819 [DEBUG][       Thread-603848][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:57:56,819 [DEBUG][       Thread-603848][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:57:56,861 [DEBUG][       Thread-603848][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:57:56,861 [DEBUG][       Thread-603848][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:57:56,866 [DEBUG][       Thread-603848][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:57:56,878 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:57:56,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:57:56,880 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:57:56,882 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:57:56,887 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:57:56,889 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:57:56,889 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:57:56,890 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:57:56,890 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.414875 -999.00  +10.80  37.54     55   +2.20 1 1 2 1 1   888    0 9.08 15.01 ----- 37.5 37.5 40.2 53.1 14.0 -24.0 13.3 -23.8 -999.0 -999.0 13.6 -22.9
2025-07-01 11:57:56,890 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:57:56,890 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:57:56,890 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.414875
2025-07-01 11:57:56,890 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:57:56,891 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:57:56,891 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:57:56,891 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:57:56,891 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 11:57:56,891 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:57:36', tmtdew=9.9, humidity=50.4, cloud=0.0, wind=44.57, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:57:25.200', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:57:56,892 [DEBUG][       Thread-603848][   transport.py][1871] : EOF in transport thread
2025-07-01 11:57:56,975 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:57:56,985 [DEBUG][       Thread-603851][   transport.py][1871] : starting thread (client mode): 0x81a7f10
2025-07-01 11:57:56,985 [DEBUG][       Thread-603851][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:57:57,002 [DEBUG][       Thread-603851][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:57:57,002 [ INFO][       Thread-603851][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:57:57,011 [DEBUG][       Thread-603851][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:57:57,011 [DEBUG][       Thread-603851][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:57:57,011 [DEBUG][       Thread-603851][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:57:57,011 [DEBUG][       Thread-603851][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:57:57,011 [DEBUG][       Thread-603851][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:57:57,011 [DEBUG][       Thread-603851][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:57:57,011 [DEBUG][       Thread-603851][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:57:57,011 [DEBUG][       Thread-603851][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:57:57,011 [DEBUG][       Thread-603851][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:57:57,011 [DEBUG][       Thread-603851][   transport.py][1871] : client lang: <none>
2025-07-01 11:57:57,011 [DEBUG][       Thread-603851][   transport.py][1871] : server lang: <none>
2025-07-01 11:57:57,011 [DEBUG][       Thread-603851][   transport.py][1871] : kex follows: False
2025-07-01 11:57:57,012 [DEBUG][       Thread-603851][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:57:57,012 [DEBUG][       Thread-603851][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:57:57,012 [DEBUG][       Thread-603851][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:57:57,012 [DEBUG][       Thread-603851][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:57:57,012 [DEBUG][       Thread-603851][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:57:57,012 [DEBUG][       Thread-603851][   transport.py][1871] : Compression: none
2025-07-01 11:57:57,012 [DEBUG][       Thread-603851][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:57:57,067 [DEBUG][       Thread-603851][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:57:57,067 [DEBUG][       Thread-603851][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:57:57,068 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:57:57,069 [DEBUG][       Thread-603851][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:57:57,069 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:57:57,123 [DEBUG][       Thread-603851][   transport.py][1871] : userauth is OK
2025-07-01 11:57:57,123 [DEBUG][       Thread-603851][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:57:57,123 [DEBUG][       Thread-603851][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:57:57,124 [DEBUG][       Thread-603851][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:57:57,124 [DEBUG][       Thread-603851][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:57:57,143 [ INFO][       Thread-603851][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:57:57,143 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:57:57,144 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:57:58,152 [DEBUG][       Thread-603851][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:57:58,152 [DEBUG][       Thread-603851][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:57:58,201 [DEBUG][       Thread-603851][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:57:58,201 [DEBUG][       Thread-603851][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:57:58,213 [DEBUG][       Thread-603851][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:57:58,224 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:57:58,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')
2025-07-01 11:57:58,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-07-01 11:57:58,244 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:57:58,244 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:57:58,244 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:57:58,255 [DEBUG][       Thread-603851][   transport.py][1871] : EOF in transport thread
2025-07-01 11:58:04,658 [DEBUG][Thread-603853 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:58:08,252 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:58:08,252 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:58:08,252 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:58:08,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-07-01 11:58:08,732 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 57, 36), 9.9, 50.4, 0.0, 44.57, 10.97, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:58:08,732 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:57:36
2025-07-01 11:58:08,818 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:58:08,821 [DEBUG][       Thread-603854][   transport.py][1871] : starting thread (client mode): 0x8155c30
2025-07-01 11:58:08,821 [DEBUG][       Thread-603854][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:58:08,841 [DEBUG][       Thread-603854][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:58:08,841 [ INFO][       Thread-603854][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:58:08,842 [DEBUG][       Thread-603854][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:58:08,843 [DEBUG][       Thread-603854][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:58:08,843 [DEBUG][       Thread-603854][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:58:08,843 [DEBUG][       Thread-603854][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:58:08,843 [DEBUG][       Thread-603854][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:58:08,843 [DEBUG][       Thread-603854][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:58:08,843 [DEBUG][       Thread-603854][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:58:08,843 [DEBUG][       Thread-603854][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:58:08,843 [DEBUG][       Thread-603854][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:58:08,843 [DEBUG][       Thread-603854][   transport.py][1871] : client lang: <none>
2025-07-01 11:58:08,843 [DEBUG][       Thread-603854][   transport.py][1871] : server lang: <none>
2025-07-01 11:58:08,843 [DEBUG][       Thread-603854][   transport.py][1871] : kex follows: False
2025-07-01 11:58:08,843 [DEBUG][       Thread-603854][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:58:08,843 [DEBUG][       Thread-603854][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:58:08,843 [DEBUG][       Thread-603854][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:58:08,843 [DEBUG][       Thread-603854][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:58:08,843 [DEBUG][       Thread-603854][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:58:08,843 [DEBUG][       Thread-603854][   transport.py][1871] : Compression: none
2025-07-01 11:58:08,843 [DEBUG][       Thread-603854][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:58:08,851 [DEBUG][       Thread-603854][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:58:08,851 [DEBUG][       Thread-603854][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:58:08,851 [DEBUG][       Thread-603854][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:58:08,851 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:58:08,852 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:58:08,852 [DEBUG][       Thread-603854][   transport.py][1871] : userauth is OK
2025-07-01 11:58:08,865 [ INFO][       Thread-603854][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:58:08,866 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:58:09,472 [DEBUG][       Thread-603854][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:58:09,472 [DEBUG][       Thread-603854][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:58:09,516 [DEBUG][       Thread-603854][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:58:09,516 [DEBUG][       Thread-603854][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:58:09,518 [DEBUG][       Thread-603854][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:58:09,537 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:58:09,537 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:58:09,538 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:58:09,538 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:58:09,540 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:58:09,541 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:58:09,541 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:58:09,541 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:58:09,541 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.415223 -999.00  +10.80  44.02     55   +2.20 1 1 2 1 1   888    0 9.10 15.72 ----- 44.0 44.0 21.0 50.6 14.1 -23.2 13.3 -24.6 13.0 -22.5 13.7 -22.4
2025-07-01 11:58:09,541 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:58:09,541 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:58:09,541 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.415223
2025-07-01 11:58:09,541 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:58:09,541 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:58:09,541 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:58:09,541 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:58:09,541 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 11:58:09,541 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:57:36', tmtdew=9.9, humidity=50.4, cloud=0.0, wind=44.57, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:57:55.267', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:58:09,543 [DEBUG][       Thread-603854][   transport.py][1871] : EOF in transport thread
2025-07-01 11:58:09,616 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:58:09,625 [DEBUG][       Thread-603857][   transport.py][1871] : starting thread (client mode): 0x818df30
2025-07-01 11:58:09,625 [DEBUG][       Thread-603857][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:58:09,640 [DEBUG][       Thread-603857][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:58:09,640 [ INFO][       Thread-603857][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:58:09,648 [DEBUG][       Thread-603857][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:58:09,648 [DEBUG][       Thread-603857][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:58:09,648 [DEBUG][       Thread-603857][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:58:09,648 [DEBUG][       Thread-603857][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:58:09,648 [DEBUG][       Thread-603857][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:58:09,648 [DEBUG][       Thread-603857][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:58:09,648 [DEBUG][       Thread-603857][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:58:09,648 [DEBUG][       Thread-603857][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:58:09,648 [DEBUG][       Thread-603857][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:58:09,648 [DEBUG][       Thread-603857][   transport.py][1871] : client lang: <none>
2025-07-01 11:58:09,648 [DEBUG][       Thread-603857][   transport.py][1871] : server lang: <none>
2025-07-01 11:58:09,648 [DEBUG][       Thread-603857][   transport.py][1871] : kex follows: False
2025-07-01 11:58:09,648 [DEBUG][       Thread-603857][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:58:09,648 [DEBUG][       Thread-603857][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:58:09,648 [DEBUG][       Thread-603857][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:58:09,648 [DEBUG][       Thread-603857][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:58:09,648 [DEBUG][       Thread-603857][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:58:09,648 [DEBUG][       Thread-603857][   transport.py][1871] : Compression: none
2025-07-01 11:58:09,648 [DEBUG][       Thread-603857][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:58:09,706 [DEBUG][       Thread-603857][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:58:09,706 [DEBUG][       Thread-603857][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:58:09,707 [DEBUG][       Thread-603857][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:58:09,707 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:58:09,707 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:58:09,762 [DEBUG][       Thread-603857][   transport.py][1871] : userauth is OK
2025-07-01 11:58:09,762 [DEBUG][       Thread-603857][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:58:09,762 [DEBUG][       Thread-603857][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:58:09,762 [DEBUG][       Thread-603857][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:58:09,763 [DEBUG][       Thread-603857][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:58:09,776 [ INFO][       Thread-603857][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:58:09,777 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:58:09,777 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:58:10,744 [DEBUG][       Thread-603857][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:58:10,744 [DEBUG][       Thread-603857][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:58:10,792 [DEBUG][       Thread-603857][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:58:10,792 [DEBUG][       Thread-603857][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:58:10,801 [DEBUG][       Thread-603857][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:58:10,810 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:58:10,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')
2025-07-01 11:58:10,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-07-01 11:58:10,826 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:58:10,826 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:58:10,826 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:58:10,833 [DEBUG][       Thread-603857][   transport.py][1871] : EOF in transport thread
2025-07-01 11:58:11,926 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:58:11,928 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:58:13,678 [DEBUG][Thread-603859 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:58:20,836 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:58:20,836 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:58:20,836 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:58:20,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-07-01 11:58:21,301 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 58, 8), 9.87, 50.51, 0.0, 45.61, 10.93, 0, 0, 0, 2, 1, 0),)
2025-07-01 11:58:21,301 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:58:08
2025-07-01 11:58:21,387 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:58:21,392 [DEBUG][       Thread-603860][   transport.py][1871] : starting thread (client mode): 0x82b2dd0
2025-07-01 11:58:21,392 [DEBUG][       Thread-603860][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:58:21,413 [DEBUG][       Thread-603860][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:58:21,413 [ INFO][       Thread-603860][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:58:21,416 [DEBUG][       Thread-603860][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:58:21,416 [DEBUG][       Thread-603860][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:58:21,416 [DEBUG][       Thread-603860][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:58:21,416 [DEBUG][       Thread-603860][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:58:21,416 [DEBUG][       Thread-603860][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:58:21,416 [DEBUG][       Thread-603860][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:58:21,416 [DEBUG][       Thread-603860][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:58:21,416 [DEBUG][       Thread-603860][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:58:21,416 [DEBUG][       Thread-603860][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:58:21,416 [DEBUG][       Thread-603860][   transport.py][1871] : client lang: <none>
2025-07-01 11:58:21,416 [DEBUG][       Thread-603860][   transport.py][1871] : server lang: <none>
2025-07-01 11:58:21,416 [DEBUG][       Thread-603860][   transport.py][1871] : kex follows: False
2025-07-01 11:58:21,416 [DEBUG][       Thread-603860][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:58:21,416 [DEBUG][       Thread-603860][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:58:21,416 [DEBUG][       Thread-603860][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:58:21,416 [DEBUG][       Thread-603860][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:58:21,416 [DEBUG][       Thread-603860][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:58:21,416 [DEBUG][       Thread-603860][   transport.py][1871] : Compression: none
2025-07-01 11:58:21,416 [DEBUG][       Thread-603860][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:58:21,435 [DEBUG][       Thread-603860][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:58:21,436 [DEBUG][       Thread-603860][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:58:21,436 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:58:21,436 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:58:21,437 [DEBUG][       Thread-603860][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:58:21,438 [DEBUG][       Thread-603860][   transport.py][1871] : userauth is OK
2025-07-01 11:58:21,463 [ INFO][       Thread-603860][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:58:21,464 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:58:22,276 [DEBUG][       Thread-603860][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:58:22,277 [DEBUG][       Thread-603860][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:58:22,321 [DEBUG][       Thread-603860][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:58:22,321 [DEBUG][       Thread-603860][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:58:22,325 [DEBUG][       Thread-603860][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:58:22,338 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:58:22,339 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:58:22,341 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:58:22,343 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:58:22,349 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:58:22,351 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:58:22,351 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:58:22,352 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:58:22,352 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.415223 -999.00  +10.80  44.02     55   +2.20 1 1 2 1 1   888    0 9.10 15.72 ----- 44.0 44.0 21.0 50.6 14.1 -23.2 13.3 -24.6 13.0 -22.5 13.7 -22.4
2025-07-01 11:58:22,352 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:58:22,352 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:58:22,352 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.415223
2025-07-01 11:58:22,353 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:58:22,353 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:58:22,353 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:58:22,353 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:58:22,354 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 11:58:22,354 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:58:08', tmtdew=9.87, humidity=50.51, cloud=0.0, wind=45.61, temperature=10.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=1, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:57:55.267', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:58:22,355 [DEBUG][       Thread-603860][   transport.py][1871] : EOF in transport thread
2025-07-01 11:58:22,437 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:58:22,451 [DEBUG][       Thread-603863][   transport.py][1871] : starting thread (client mode): 0x8393f40
2025-07-01 11:58:22,451 [DEBUG][       Thread-603863][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:58:22,465 [DEBUG][       Thread-603863][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:58:22,465 [ INFO][       Thread-603863][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:58:22,473 [DEBUG][       Thread-603863][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:58:22,473 [DEBUG][       Thread-603863][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:58:22,473 [DEBUG][       Thread-603863][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:58:22,474 [DEBUG][       Thread-603863][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:58:22,474 [DEBUG][       Thread-603863][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:58:22,474 [DEBUG][       Thread-603863][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:58:22,474 [DEBUG][       Thread-603863][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:58:22,474 [DEBUG][       Thread-603863][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:58:22,474 [DEBUG][       Thread-603863][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:58:22,474 [DEBUG][       Thread-603863][   transport.py][1871] : client lang: <none>
2025-07-01 11:58:22,474 [DEBUG][       Thread-603863][   transport.py][1871] : server lang: <none>
2025-07-01 11:58:22,474 [DEBUG][       Thread-603863][   transport.py][1871] : kex follows: False
2025-07-01 11:58:22,474 [DEBUG][       Thread-603863][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:58:22,474 [DEBUG][       Thread-603863][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:58:22,474 [DEBUG][       Thread-603863][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:58:22,474 [DEBUG][       Thread-603863][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:58:22,474 [DEBUG][       Thread-603863][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:58:22,474 [DEBUG][       Thread-603863][   transport.py][1871] : Compression: none
2025-07-01 11:58:22,474 [DEBUG][       Thread-603863][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:58:22,531 [DEBUG][       Thread-603863][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:58:22,531 [DEBUG][       Thread-603863][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:58:22,532 [DEBUG][       Thread-603863][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:58:22,532 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:58:22,533 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:58:22,587 [DEBUG][       Thread-603863][   transport.py][1871] : userauth is OK
2025-07-01 11:58:22,587 [DEBUG][       Thread-603863][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:58:22,587 [DEBUG][       Thread-603863][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:58:22,588 [DEBUG][       Thread-603863][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:58:22,588 [DEBUG][       Thread-603863][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:58:22,607 [ INFO][       Thread-603863][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:58:22,608 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:58:22,608 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:58:22,702 [DEBUG][Thread-603865 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:58:23,600 [DEBUG][       Thread-603863][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:58:23,601 [DEBUG][       Thread-603863][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:58:23,651 [DEBUG][       Thread-603863][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:58:23,651 [DEBUG][       Thread-603863][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:58:23,660 [DEBUG][       Thread-603863][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:58:23,673 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:58:23,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')
2025-07-01 11:58: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-07-01 11:58:23,689 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:58:23,689 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:58:23,689 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:58:23,697 [DEBUG][       Thread-603863][   transport.py][1871] : EOF in transport thread
2025-07-01 11:58:27,779 [DEBUG][Thread-603866 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:58:31,737 [DEBUG][Thread-603867 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:58:33,696 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:58:33,696 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:58:33,696 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:58:33,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-07-01 11:58:34,175 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 58, 8), 9.87, 50.51, 0.0, 45.61, 10.93, 0, 0, 0, 2, 1, 0),)
2025-07-01 11:58:34,175 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:58:08
2025-07-01 11:58:34,261 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:58:34,268 [DEBUG][       Thread-603868][   transport.py][1871] : starting thread (client mode): 0x8106b60
2025-07-01 11:58:34,268 [DEBUG][       Thread-603868][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:58:34,290 [DEBUG][       Thread-603868][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:58:34,290 [ INFO][       Thread-603868][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:58:34,292 [DEBUG][       Thread-603868][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:58:34,293 [DEBUG][       Thread-603868][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:58:34,293 [DEBUG][       Thread-603868][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:58:34,293 [DEBUG][       Thread-603868][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:58:34,293 [DEBUG][       Thread-603868][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:58:34,293 [DEBUG][       Thread-603868][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:58:34,293 [DEBUG][       Thread-603868][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:58:34,293 [DEBUG][       Thread-603868][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:58:34,293 [DEBUG][       Thread-603868][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:58:34,293 [DEBUG][       Thread-603868][   transport.py][1871] : client lang: <none>
2025-07-01 11:58:34,293 [DEBUG][       Thread-603868][   transport.py][1871] : server lang: <none>
2025-07-01 11:58:34,293 [DEBUG][       Thread-603868][   transport.py][1871] : kex follows: False
2025-07-01 11:58:34,293 [DEBUG][       Thread-603868][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:58:34,293 [DEBUG][       Thread-603868][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:58:34,293 [DEBUG][       Thread-603868][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:58:34,293 [DEBUG][       Thread-603868][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:58:34,293 [DEBUG][       Thread-603868][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:58:34,293 [DEBUG][       Thread-603868][   transport.py][1871] : Compression: none
2025-07-01 11:58:34,293 [DEBUG][       Thread-603868][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:58:34,314 [DEBUG][       Thread-603868][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:58:34,314 [DEBUG][       Thread-603868][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:58:34,315 [DEBUG][       Thread-603868][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:58:34,315 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:58:34,315 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:58:34,317 [DEBUG][       Thread-603868][   transport.py][1871] : userauth is OK
2025-07-01 11:58:34,341 [ INFO][       Thread-603868][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:58:34,342 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:58:35,205 [DEBUG][       Thread-603868][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:58:35,206 [DEBUG][       Thread-603868][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:58:35,249 [DEBUG][       Thread-603868][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:58:35,249 [DEBUG][       Thread-603868][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:58:35,252 [DEBUG][       Thread-603868][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:58:35,263 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:58:35,264 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:58:35,265 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:58:35,267 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:58:35,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:58:35,274 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:58:35,274 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:58:35,275 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:58:35,275 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.415223 -999.00  +10.80  44.02     55   +2.20 1 1 2 1 1   888    0 9.10 15.72 ----- 44.0 44.0 21.0 50.6 14.1 -23.2 13.3 -24.6 13.0 -22.5 13.7 -22.4
2025-07-01 11:58:35,275 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:58:35,275 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:58:35,275 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.415223
2025-07-01 11:58:35,275 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:58:35,276 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:58:35,276 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:58:35,276 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:58:35,276 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 11:58:35,277 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:58:08', tmtdew=9.87, humidity=50.51, cloud=0.0, wind=45.61, temperature=10.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=1, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:57:55.267', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:58:35,278 [DEBUG][       Thread-603868][   transport.py][1871] : EOF in transport thread
2025-07-01 11:58:35,365 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:58:35,375 [DEBUG][       Thread-603871][   transport.py][1871] : starting thread (client mode): 0x8a671f0
2025-07-01 11:58:35,375 [DEBUG][       Thread-603871][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:58:35,390 [DEBUG][       Thread-603871][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:58:35,390 [ INFO][       Thread-603871][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:58:35,398 [DEBUG][       Thread-603871][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:58:35,398 [DEBUG][       Thread-603871][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:58:35,398 [DEBUG][       Thread-603871][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:58:35,398 [DEBUG][       Thread-603871][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:58:35,398 [DEBUG][       Thread-603871][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:58:35,398 [DEBUG][       Thread-603871][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:58:35,398 [DEBUG][       Thread-603871][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:58:35,398 [DEBUG][       Thread-603871][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:58:35,398 [DEBUG][       Thread-603871][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:58:35,398 [DEBUG][       Thread-603871][   transport.py][1871] : client lang: <none>
2025-07-01 11:58:35,398 [DEBUG][       Thread-603871][   transport.py][1871] : server lang: <none>
2025-07-01 11:58:35,398 [DEBUG][       Thread-603871][   transport.py][1871] : kex follows: False
2025-07-01 11:58:35,399 [DEBUG][       Thread-603871][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:58:35,399 [DEBUG][       Thread-603871][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:58:35,399 [DEBUG][       Thread-603871][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:58:35,399 [DEBUG][       Thread-603871][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:58:35,399 [DEBUG][       Thread-603871][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:58:35,399 [DEBUG][       Thread-603871][   transport.py][1871] : Compression: none
2025-07-01 11:58:35,399 [DEBUG][       Thread-603871][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:58:35,456 [DEBUG][       Thread-603871][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:58:35,456 [DEBUG][       Thread-603871][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:58:35,457 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:58:35,458 [DEBUG][       Thread-603871][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:58:35,458 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:58:35,515 [DEBUG][       Thread-603871][   transport.py][1871] : userauth is OK
2025-07-01 11:58:35,516 [DEBUG][       Thread-603871][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:58:35,516 [DEBUG][       Thread-603871][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:58:35,516 [DEBUG][       Thread-603871][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:58:35,516 [DEBUG][       Thread-603871][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:58:35,534 [ INFO][       Thread-603871][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:58:35,535 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:58:35,535 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:58:36,532 [DEBUG][       Thread-603871][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:58:36,532 [DEBUG][       Thread-603871][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:58:36,580 [DEBUG][       Thread-603871][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:58:36,580 [DEBUG][       Thread-603871][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:58:36,589 [DEBUG][       Thread-603871][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:58:36,598 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:58:36,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')
2025-07-01 11:58:36,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-07-01 11:58:36,625 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:58:36,625 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:58:36,626 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:58:36,634 [DEBUG][       Thread-603871][   transport.py][1871] : EOF in transport thread
2025-07-01 11:58:40,756 [DEBUG][Thread-603873 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:58:46,636 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:58:46,637 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:58:46,637 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:58:46,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-07-01 11:58:47,116 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 58, 40), 9.83, 50.66, 0.0, 35.76, 10.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:58:47,116 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:58:40
2025-07-01 11:58:47,203 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:58:47,207 [DEBUG][       Thread-603874][   transport.py][1871] : starting thread (client mode): 0x82b22c0
2025-07-01 11:58:47,207 [DEBUG][       Thread-603874][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:58:47,227 [DEBUG][       Thread-603874][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:58:47,227 [ INFO][       Thread-603874][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:58:47,231 [DEBUG][       Thread-603874][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:58:47,231 [DEBUG][       Thread-603874][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:58:47,231 [DEBUG][       Thread-603874][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:58:47,231 [DEBUG][       Thread-603874][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:58:47,231 [DEBUG][       Thread-603874][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:58:47,231 [DEBUG][       Thread-603874][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:58:47,231 [DEBUG][       Thread-603874][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:58:47,231 [DEBUG][       Thread-603874][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:58:47,231 [DEBUG][       Thread-603874][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:58:47,231 [DEBUG][       Thread-603874][   transport.py][1871] : client lang: <none>
2025-07-01 11:58:47,231 [DEBUG][       Thread-603874][   transport.py][1871] : server lang: <none>
2025-07-01 11:58:47,231 [DEBUG][       Thread-603874][   transport.py][1871] : kex follows: False
2025-07-01 11:58:47,231 [DEBUG][       Thread-603874][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:58:47,231 [DEBUG][       Thread-603874][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:58:47,231 [DEBUG][       Thread-603874][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:58:47,231 [DEBUG][       Thread-603874][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:58:47,231 [DEBUG][       Thread-603874][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:58:47,231 [DEBUG][       Thread-603874][   transport.py][1871] : Compression: none
2025-07-01 11:58:47,231 [DEBUG][       Thread-603874][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:58:47,248 [DEBUG][       Thread-603874][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:58:47,248 [DEBUG][       Thread-603874][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:58:47,249 [DEBUG][       Thread-603874][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:58:47,249 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:58:47,249 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:58:47,250 [DEBUG][       Thread-603874][   transport.py][1871] : userauth is OK
2025-07-01 11:58:47,263 [ INFO][       Thread-603874][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:58:47,263 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:58:47,939 [DEBUG][       Thread-603874][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:58:47,940 [DEBUG][       Thread-603874][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:58:47,981 [DEBUG][       Thread-603874][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:58:47,981 [DEBUG][       Thread-603874][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:58:47,983 [DEBUG][       Thread-603874][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:58:47,997 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:58:47,997 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:58:47,999 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:58:48,000 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:58:48,006 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:58:48,008 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:58:48,008 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:58:48,009 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:58:48,009 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.415569 -999.00  +10.80  42.70     55   +2.20 1 1 2 1 1   888    0 9.07 15.08 ----- 42.7 42.7 22.4 52.3 14.1 -23.0 13.3 -23.9 13.0 -23.1 13.7 -21.8
2025-07-01 11:58:48,009 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:58:48,009 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:58:48,010 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.415569
2025-07-01 11:58:48,010 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:58:48,011 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:58:48,011 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:58:48,011 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:58:48,011 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 11:58:48,011 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:58:40', tmtdew=9.83, humidity=50.66, cloud=0.0, wind=35.76, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:58:25.162', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:58:48,011 [DEBUG][       Thread-603874][   transport.py][1871] : EOF in transport thread
2025-07-01 11:58:48,095 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:58:48,104 [DEBUG][       Thread-603877][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 11:58:48,104 [DEBUG][       Thread-603877][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:58:48,118 [DEBUG][       Thread-603877][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:58:48,118 [ INFO][       Thread-603877][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:58:48,125 [DEBUG][       Thread-603877][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:58:48,125 [DEBUG][       Thread-603877][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:58:48,125 [DEBUG][       Thread-603877][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:58:48,125 [DEBUG][       Thread-603877][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:58:48,126 [DEBUG][       Thread-603877][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:58:48,126 [DEBUG][       Thread-603877][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:58:48,126 [DEBUG][       Thread-603877][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:58:48,126 [DEBUG][       Thread-603877][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:58:48,126 [DEBUG][       Thread-603877][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:58:48,126 [DEBUG][       Thread-603877][   transport.py][1871] : client lang: <none>
2025-07-01 11:58:48,126 [DEBUG][       Thread-603877][   transport.py][1871] : server lang: <none>
2025-07-01 11:58:48,126 [DEBUG][       Thread-603877][   transport.py][1871] : kex follows: False
2025-07-01 11:58:48,126 [DEBUG][       Thread-603877][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:58:48,126 [DEBUG][       Thread-603877][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:58:48,126 [DEBUG][       Thread-603877][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:58:48,126 [DEBUG][       Thread-603877][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:58:48,126 [DEBUG][       Thread-603877][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:58:48,126 [DEBUG][       Thread-603877][   transport.py][1871] : Compression: none
2025-07-01 11:58:48,126 [DEBUG][       Thread-603877][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:58:48,181 [DEBUG][       Thread-603877][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:58:48,182 [DEBUG][       Thread-603877][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:58:48,182 [DEBUG][       Thread-603877][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:58:48,182 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:58:48,182 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:58:48,238 [DEBUG][       Thread-603877][   transport.py][1871] : userauth is OK
2025-07-01 11:58:48,239 [DEBUG][       Thread-603877][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:58:48,239 [DEBUG][       Thread-603877][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:58:48,239 [DEBUG][       Thread-603877][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:58:48,239 [DEBUG][       Thread-603877][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:58:48,252 [ INFO][       Thread-603877][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:58:48,253 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:58:48,253 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:58:49,276 [DEBUG][       Thread-603877][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:58:49,276 [DEBUG][       Thread-603877][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:58:49,324 [DEBUG][       Thread-603877][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:58:49,324 [DEBUG][       Thread-603877][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:58:49,333 [DEBUG][       Thread-603877][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:58:49,343 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:58:49,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-07-01 11:58:49,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') -> 00000000
2025-07-01 11:58:49,366 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:58:49,367 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:58:49,367 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:58:49,375 [DEBUG][       Thread-603877][   transport.py][1871] : EOF in transport thread
2025-07-01 11:58:49,776 [DEBUG][Thread-603879 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:58:58,809 [DEBUG][Thread-603880 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:58:59,378 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:58:59,378 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:58:59,378 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:58:59,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-07-01 11:58:59,856 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 58, 40), 9.83, 50.66, 0.0, 35.76, 10.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:58:59,856 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:58:40
2025-07-01 11:58:59,942 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:58:59,947 [DEBUG][       Thread-603881][   transport.py][1871] : starting thread (client mode): 0x82b22f0
2025-07-01 11:58:59,947 [DEBUG][       Thread-603881][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:58:59,967 [DEBUG][       Thread-603881][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:58:59,967 [ INFO][       Thread-603881][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:58:59,970 [DEBUG][       Thread-603881][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:58:59,970 [DEBUG][       Thread-603881][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:58:59,970 [DEBUG][       Thread-603881][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:58:59,971 [DEBUG][       Thread-603881][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:58:59,971 [DEBUG][       Thread-603881][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:58:59,971 [DEBUG][       Thread-603881][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:58:59,971 [DEBUG][       Thread-603881][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:58:59,971 [DEBUG][       Thread-603881][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:58:59,971 [DEBUG][       Thread-603881][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:58:59,971 [DEBUG][       Thread-603881][   transport.py][1871] : client lang: <none>
2025-07-01 11:58:59,971 [DEBUG][       Thread-603881][   transport.py][1871] : server lang: <none>
2025-07-01 11:58:59,971 [DEBUG][       Thread-603881][   transport.py][1871] : kex follows: False
2025-07-01 11:58:59,971 [DEBUG][       Thread-603881][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:58:59,971 [DEBUG][       Thread-603881][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:58:59,971 [DEBUG][       Thread-603881][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:58:59,971 [DEBUG][       Thread-603881][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:58:59,971 [DEBUG][       Thread-603881][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:58:59,971 [DEBUG][       Thread-603881][   transport.py][1871] : Compression: none
2025-07-01 11:58:59,971 [DEBUG][       Thread-603881][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:58:59,987 [DEBUG][       Thread-603881][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:58:59,988 [DEBUG][       Thread-603881][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:58:59,988 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:58:59,989 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:58:59,989 [DEBUG][       Thread-603881][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:58:59,989 [DEBUG][       Thread-603881][   transport.py][1871] : userauth is OK
2025-07-01 11:59:00,014 [ INFO][       Thread-603881][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:59:00,015 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:59:00,766 [DEBUG][       Thread-603881][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:59:00,766 [DEBUG][       Thread-603881][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:59:00,809 [DEBUG][       Thread-603881][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:59:00,809 [DEBUG][       Thread-603881][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:59:00,812 [DEBUG][       Thread-603881][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:59:00,822 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:59:00,823 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:59:00,824 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:59:00,826 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:59:00,832 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:59:00,834 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:59:00,834 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:59:00,834 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:59:00,835 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.415569 -999.00  +10.80  42.70     55   +2.20 1 1 2 1 1   888    0 9.07 15.08 ----- 42.7 42.7 22.4 52.3 14.1 -23.0 13.3 -23.9 13.0 -23.1 13.7 -21.8
2025-07-01 11:59:00,835 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:59:00,835 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:59:00,835 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.415569
2025-07-01 11:59:00,835 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:59:00,836 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:59:00,836 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:59:00,836 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:59:00,836 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 11:59:00,836 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:58:40', tmtdew=9.83, humidity=50.66, cloud=0.0, wind=35.76, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:58:25.162', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:59:00,836 [DEBUG][       Thread-603881][   transport.py][1871] : EOF in transport thread
2025-07-01 11:59:00,919 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:59:00,930 [DEBUG][       Thread-603884][   transport.py][1871] : starting thread (client mode): 0x818d000
2025-07-01 11:59:00,930 [DEBUG][       Thread-603884][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:59:00,947 [DEBUG][       Thread-603884][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:59:00,947 [ INFO][       Thread-603884][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:59:00,957 [DEBUG][       Thread-603884][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:59:00,957 [DEBUG][       Thread-603884][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:59:00,957 [DEBUG][       Thread-603884][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:59:00,957 [DEBUG][       Thread-603884][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:59:00,957 [DEBUG][       Thread-603884][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:59:00,957 [DEBUG][       Thread-603884][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:59:00,957 [DEBUG][       Thread-603884][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:59:00,957 [DEBUG][       Thread-603884][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:59:00,957 [DEBUG][       Thread-603884][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:59:00,957 [DEBUG][       Thread-603884][   transport.py][1871] : client lang: <none>
2025-07-01 11:59:00,957 [DEBUG][       Thread-603884][   transport.py][1871] : server lang: <none>
2025-07-01 11:59:00,957 [DEBUG][       Thread-603884][   transport.py][1871] : kex follows: False
2025-07-01 11:59:00,957 [DEBUG][       Thread-603884][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:59:00,958 [DEBUG][       Thread-603884][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:59:00,958 [DEBUG][       Thread-603884][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:59:00,958 [DEBUG][       Thread-603884][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:59:00,958 [DEBUG][       Thread-603884][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:59:00,958 [DEBUG][       Thread-603884][   transport.py][1871] : Compression: none
2025-07-01 11:59:00,958 [DEBUG][       Thread-603884][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:59:01,015 [DEBUG][       Thread-603884][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:59:01,015 [DEBUG][       Thread-603884][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:59:01,016 [DEBUG][       Thread-603884][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:59:01,016 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:59:01,017 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:59:01,072 [DEBUG][       Thread-603884][   transport.py][1871] : userauth is OK
2025-07-01 11:59:01,072 [DEBUG][       Thread-603884][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:59:01,073 [DEBUG][       Thread-603884][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:59:01,073 [DEBUG][       Thread-603884][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:59:01,073 [DEBUG][       Thread-603884][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:59:01,097 [ INFO][       Thread-603884][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:59:01,097 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:59:01,098 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:59:02,117 [DEBUG][       Thread-603884][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:59:02,117 [DEBUG][       Thread-603884][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:59:02,172 [DEBUG][       Thread-603884][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:59:02,172 [DEBUG][       Thread-603884][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:59:02,182 [DEBUG][       Thread-603884][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:59:02,190 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:59:02,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-07-01 11:59:02,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-07-01 11:59:02,206 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:59:02,206 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:59:02,206 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:59:02,214 [DEBUG][       Thread-603884][   transport.py][1871] : EOF in transport thread
2025-07-01 11:59:07,829 [DEBUG][Thread-603886 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:59:12,067 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:59:12,068 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:59:12,208 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:59:12,208 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:59:12,208 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:59:12,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-07-01 11:59:12,712 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 58, 40), 9.83, 50.66, 0.0, 35.76, 10.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:59:12,712 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:58:40
2025-07-01 11:59:12,805 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:59:12,809 [DEBUG][       Thread-603887][   transport.py][1871] : starting thread (client mode): 0x82b3250
2025-07-01 11:59:12,809 [DEBUG][       Thread-603887][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:59:12,831 [DEBUG][       Thread-603887][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:59:12,831 [ INFO][       Thread-603887][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:59:12,835 [DEBUG][       Thread-603887][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:59:12,835 [DEBUG][       Thread-603887][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:59:12,835 [DEBUG][       Thread-603887][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:59:12,835 [DEBUG][       Thread-603887][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:59:12,835 [DEBUG][       Thread-603887][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:59:12,835 [DEBUG][       Thread-603887][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:59:12,835 [DEBUG][       Thread-603887][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:59:12,835 [DEBUG][       Thread-603887][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:59:12,835 [DEBUG][       Thread-603887][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:59:12,835 [DEBUG][       Thread-603887][   transport.py][1871] : client lang: <none>
2025-07-01 11:59:12,835 [DEBUG][       Thread-603887][   transport.py][1871] : server lang: <none>
2025-07-01 11:59:12,835 [DEBUG][       Thread-603887][   transport.py][1871] : kex follows: False
2025-07-01 11:59:12,835 [DEBUG][       Thread-603887][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:59:12,835 [DEBUG][       Thread-603887][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:59:12,835 [DEBUG][       Thread-603887][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:59:12,835 [DEBUG][       Thread-603887][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:59:12,835 [DEBUG][       Thread-603887][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:59:12,835 [DEBUG][       Thread-603887][   transport.py][1871] : Compression: none
2025-07-01 11:59:12,835 [DEBUG][       Thread-603887][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:59:12,850 [DEBUG][       Thread-603887][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:59:12,850 [DEBUG][       Thread-603887][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:59:12,850 [DEBUG][       Thread-603887][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:59:12,850 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:59:12,850 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:59:12,851 [DEBUG][       Thread-603887][   transport.py][1871] : userauth is OK
2025-07-01 11:59:12,875 [ INFO][       Thread-603887][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:59:12,875 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:59:13,681 [DEBUG][       Thread-603887][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:59:13,682 [DEBUG][       Thread-603887][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:59:13,729 [DEBUG][       Thread-603887][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:59:13,729 [DEBUG][       Thread-603887][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:59:13,731 [DEBUG][       Thread-603887][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:59:13,742 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:59:13,742 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:59:13,743 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:59:13,744 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:59:13,747 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:59:13,748 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:59:13,748 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:59:13,748 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:59:13,748 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.415569 -999.00  +10.80  42.70     55   +2.20 1 1 2 1 1   888    0 9.07 15.08 ----- 42.7 42.7 22.4 52.3 14.1 -23.0 13.3 -23.9 13.0 -23.1 13.7 -21.8
2025-07-01 11:59:13,748 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:59:13,748 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:59:13,748 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.415569
2025-07-01 11:59:13,748 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:59:13,749 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:59:13,749 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:59:13,749 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:59:13,749 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 11:59:13,749 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:58:40', tmtdew=9.83, humidity=50.66, cloud=0.0, wind=35.76, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:58:25.162', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:59:13,749 [DEBUG][       Thread-603887][   transport.py][1871] : EOF in transport thread
2025-07-01 11:59:13,823 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:59:13,832 [DEBUG][       Thread-603890][   transport.py][1871] : starting thread (client mode): 0x81e6500
2025-07-01 11:59:13,832 [DEBUG][       Thread-603890][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:59:13,847 [DEBUG][       Thread-603890][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 11:59:13,847 [ INFO][       Thread-603890][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 11:59:13,857 [DEBUG][       Thread-603890][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:59:13,857 [DEBUG][       Thread-603890][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 11:59:13,857 [DEBUG][       Thread-603890][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:59:13,857 [DEBUG][       Thread-603890][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:59:13,857 [DEBUG][       Thread-603890][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:59:13,857 [DEBUG][       Thread-603890][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:59:13,857 [DEBUG][       Thread-603890][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:59:13,857 [DEBUG][       Thread-603890][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:59:13,857 [DEBUG][       Thread-603890][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:59:13,857 [DEBUG][       Thread-603890][   transport.py][1871] : client lang: <none>
2025-07-01 11:59:13,857 [DEBUG][       Thread-603890][   transport.py][1871] : server lang: <none>
2025-07-01 11:59:13,857 [DEBUG][       Thread-603890][   transport.py][1871] : kex follows: False
2025-07-01 11:59:13,857 [DEBUG][       Thread-603890][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:59:13,857 [DEBUG][       Thread-603890][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:59:13,857 [DEBUG][       Thread-603890][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:59:13,857 [DEBUG][       Thread-603890][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:59:13,857 [DEBUG][       Thread-603890][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:59:13,857 [DEBUG][       Thread-603890][   transport.py][1871] : Compression: none
2025-07-01 11:59:13,857 [DEBUG][       Thread-603890][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:59:13,914 [DEBUG][       Thread-603890][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:59:13,914 [DEBUG][       Thread-603890][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:59:13,914 [DEBUG][       Thread-603890][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 11:59:13,914 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 11:59:13,914 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 11:59:13,971 [DEBUG][       Thread-603890][   transport.py][1871] : userauth is OK
2025-07-01 11:59:13,971 [DEBUG][       Thread-603890][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 11:59:13,971 [DEBUG][       Thread-603890][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 11:59:13,971 [DEBUG][       Thread-603890][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 11:59:13,971 [DEBUG][       Thread-603890][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 11:59:13,986 [ INFO][       Thread-603890][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 11:59:13,986 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 11:59:13,986 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:59:14,959 [DEBUG][       Thread-603890][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:59:14,959 [DEBUG][       Thread-603890][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:59:15,008 [DEBUG][       Thread-603890][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:59:15,008 [DEBUG][       Thread-603890][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:59:15,017 [DEBUG][       Thread-603890][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:59:15,026 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:59:15,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-07-01 11:59:15,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-07-01 11:59:15,044 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:59:15,045 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:59:15,045 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:59:15,055 [DEBUG][       Thread-603890][   transport.py][1871] : EOF in transport thread
2025-07-01 11:59:16,850 [DEBUG][Thread-603892 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:59:25,055 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 11:59:25,056 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 11:59:25,056 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 11:59:25,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-07-01 11:59:25,522 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 11, 59, 12), 9.9, 50.53, 0.0, 33.7, 11.04, 0, 0, 0, 2, 0, 0),)
2025-07-01 11:59:25,522 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 11:59:12
2025-07-01 11:59:25,609 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 11:59:25,615 [DEBUG][       Thread-603893][   transport.py][1871] : starting thread (client mode): 0x81d9c90
2025-07-01 11:59:25,615 [DEBUG][       Thread-603893][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 11:59:25,641 [DEBUG][       Thread-603893][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 11:59:25,641 [ INFO][       Thread-603893][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 11:59:25,645 [DEBUG][       Thread-603893][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 11:59:25,645 [DEBUG][       Thread-603893][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 11:59:25,645 [DEBUG][       Thread-603893][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 11:59:25,645 [DEBUG][       Thread-603893][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:59:25,645 [DEBUG][       Thread-603893][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 11:59:25,645 [DEBUG][       Thread-603893][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:59:25,645 [DEBUG][       Thread-603893][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 11:59:25,645 [DEBUG][       Thread-603893][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 11:59:25,645 [DEBUG][       Thread-603893][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 11:59:25,645 [DEBUG][       Thread-603893][   transport.py][1871] : client lang: <none>
2025-07-01 11:59:25,645 [DEBUG][       Thread-603893][   transport.py][1871] : server lang: <none>
2025-07-01 11:59:25,645 [DEBUG][       Thread-603893][   transport.py][1871] : kex follows: False
2025-07-01 11:59:25,645 [DEBUG][       Thread-603893][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 11:59:25,645 [DEBUG][       Thread-603893][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 11:59:25,645 [DEBUG][       Thread-603893][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 11:59:25,645 [DEBUG][       Thread-603893][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 11:59:25,645 [DEBUG][       Thread-603893][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 11:59:25,645 [DEBUG][       Thread-603893][   transport.py][1871] : Compression: none
2025-07-01 11:59:25,645 [DEBUG][       Thread-603893][   transport.py][1871] : === End of kex handshake ===
2025-07-01 11:59:25,661 [DEBUG][       Thread-603893][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 11:59:25,661 [DEBUG][       Thread-603893][   transport.py][1871] : Switch to new keys ...
2025-07-01 11:59:25,661 [DEBUG][       Thread-603893][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 11:59:25,661 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 11:59:25,661 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 11:59:25,662 [DEBUG][       Thread-603893][   transport.py][1871] : userauth is OK
2025-07-01 11:59:25,686 [ INFO][       Thread-603893][   transport.py][1871] : Authentication (password) successful!
2025-07-01 11:59:25,687 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 11:59:25,875 [DEBUG][Thread-603895 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:59:26,317 [DEBUG][       Thread-603893][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 11:59:26,318 [DEBUG][       Thread-603893][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 11:59:26,361 [DEBUG][       Thread-603893][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 11:59:26,361 [DEBUG][       Thread-603893][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 11:59:26,364 [DEBUG][       Thread-603893][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 11:59:26,376 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 11:59:26,376 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 11:59:26,378 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 11:59:26,386 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 11:59:26,392 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 11:59:26,394 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 11:59:26,394 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 11:59:26,394 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 11:59:26,395 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.415916 -999.00  +10.90  39.75     55   +2.40 1 1 2 1 1   888    0 9.12 15.93 ----- 39.8 39.8 45.4 47.5 14.1 -23.6 13.3 -23.5 13.0 -23.0 13.7 -22.2
2025-07-01 11:59:26,395 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 11:59:26,395 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 11:59:26,395 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.415916
2025-07-01 11:59:26,395 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 11:59:26,396 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 11:59:26,396 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 11:59:26,396 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 11:59:26,396 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 11:59:26,396 [DEBUG][       Thread-603893][   transport.py][1871] : EOF in transport thread
2025-07-01 11:59:26,397 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T11:59:12', tmtdew=9.9, humidity=50.53, cloud=0.0, wind=33.7, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T09:58:55.142', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 11:59:26,482 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 11:59:27,829 [DEBUG][Thread-603897 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:59:34,895 [DEBUG][Thread-603898 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:59:43,916 [DEBUG][Thread-603899 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 11:59:52,937 [DEBUG][Thread-603900 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:00:01,958 [DEBUG][Thread-603901 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:00:10,981 [DEBUG][Thread-603902 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:00:12,205 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:00:12,206 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:00:20,000 [DEBUG][Thread-603903 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:00:27,873 [DEBUG][Thread-603904 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:00:29,021 [DEBUG][Thread-603905 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:00:38,044 [DEBUG][Thread-603906 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:00:47,066 [DEBUG][Thread-603907 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:00:56,087 [DEBUG][Thread-603908 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:01:05,108 [DEBUG][Thread-603909 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:01:12,351 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:01:12,352 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:01:14,131 [DEBUG][Thread-603910 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:01:23,155 [DEBUG][Thread-603911 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:01:27,925 [DEBUG][Thread-603912 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:01:32,177 [DEBUG][Thread-603913 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:01:36,276 [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-07-01 12:01:41,197 [DEBUG][Thread-603914 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:01:46,286 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:01:46,286 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:01:46,287 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:01:46,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-07-01 12:01:46,774 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 1, 18), 9.92, 50.47, 0.0, 41.32, 11.15, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:01:46,774 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:01:18
2025-07-01 12:01:46,860 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:01:46,863 [DEBUG][       Thread-603915][   transport.py][1871] : starting thread (client mode): 0x81c8c40
2025-07-01 12:01:46,863 [DEBUG][       Thread-603915][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:01:46,884 [DEBUG][       Thread-603915][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:01:46,884 [ INFO][       Thread-603915][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:01:46,887 [DEBUG][       Thread-603915][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:01:46,887 [DEBUG][       Thread-603915][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:01:46,887 [DEBUG][       Thread-603915][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:01:46,887 [DEBUG][       Thread-603915][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:01:46,887 [DEBUG][       Thread-603915][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:01:46,887 [DEBUG][       Thread-603915][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:01:46,887 [DEBUG][       Thread-603915][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:01:46,887 [DEBUG][       Thread-603915][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:01:46,888 [DEBUG][       Thread-603915][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:01:46,888 [DEBUG][       Thread-603915][   transport.py][1871] : client lang: <none>
2025-07-01 12:01:46,888 [DEBUG][       Thread-603915][   transport.py][1871] : server lang: <none>
2025-07-01 12:01:46,888 [DEBUG][       Thread-603915][   transport.py][1871] : kex follows: False
2025-07-01 12:01:46,888 [DEBUG][       Thread-603915][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:01:46,888 [DEBUG][       Thread-603915][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:01:46,888 [DEBUG][       Thread-603915][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:01:46,888 [DEBUG][       Thread-603915][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:01:46,888 [DEBUG][       Thread-603915][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:01:46,888 [DEBUG][       Thread-603915][   transport.py][1871] : Compression: none
2025-07-01 12:01:46,888 [DEBUG][       Thread-603915][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:01:46,906 [DEBUG][       Thread-603915][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:01:46,907 [DEBUG][       Thread-603915][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:01:46,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:01:46,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:01:46,908 [DEBUG][       Thread-603915][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:01:46,909 [DEBUG][       Thread-603915][   transport.py][1871] : userauth is OK
2025-07-01 12:01:46,922 [ INFO][       Thread-603915][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:01:46,923 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:01:47,536 [DEBUG][       Thread-603915][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:01:47,537 [DEBUG][       Thread-603915][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:01:47,581 [DEBUG][       Thread-603915][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:01:47,581 [DEBUG][       Thread-603915][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:01:47,585 [DEBUG][       Thread-603915][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:01:47,598 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:01:47,598 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:01:47,600 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:01:47,602 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:01:47,608 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:01:47,609 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:01:47,610 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:01:47,610 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:01:47,610 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.417652 -999.00  +11.00  38.10     54   +2.30 1 1 2 1 1   888    0 9.19 18.06 ----- 38.1 38.1 36.2 48.5 14.3 -25.9 13.4 -25.0 13.0 -24.9 13.9 -23.6
2025-07-01 12:01:47,610 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:01:47,611 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:01:47,611 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.417652
2025-07-01 12:01:47,611 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:01:47,612 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:01:47,612 [DEBUG][       Thread-603915][   transport.py][1871] : EOF in transport thread
2025-07-01 12:01:47,612 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:01:47,613 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:01:47,613 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:01:47,613 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:01:18', tmtdew=9.92, humidity=50.47, cloud=0.0, wind=41.32, temperature=11.15, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:01:25.133', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:01:47,707 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:01:47,716 [DEBUG][       Thread-603918][   transport.py][1871] : starting thread (client mode): 0x82b3be0
2025-07-01 12:01:47,716 [DEBUG][       Thread-603918][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:01:47,732 [DEBUG][       Thread-603918][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:01:47,732 [ INFO][       Thread-603918][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:01:47,739 [DEBUG][       Thread-603918][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:01:47,739 [DEBUG][       Thread-603918][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:01:47,739 [DEBUG][       Thread-603918][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:01:47,739 [DEBUG][       Thread-603918][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:01:47,739 [DEBUG][       Thread-603918][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:01:47,739 [DEBUG][       Thread-603918][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:01:47,739 [DEBUG][       Thread-603918][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:01:47,739 [DEBUG][       Thread-603918][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:01:47,740 [DEBUG][       Thread-603918][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:01:47,740 [DEBUG][       Thread-603918][   transport.py][1871] : client lang: <none>
2025-07-01 12:01:47,740 [DEBUG][       Thread-603918][   transport.py][1871] : server lang: <none>
2025-07-01 12:01:47,740 [DEBUG][       Thread-603918][   transport.py][1871] : kex follows: False
2025-07-01 12:01:47,740 [DEBUG][       Thread-603918][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:01:47,740 [DEBUG][       Thread-603918][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:01:47,740 [DEBUG][       Thread-603918][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:01:47,740 [DEBUG][       Thread-603918][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:01:47,740 [DEBUG][       Thread-603918][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:01:47,740 [DEBUG][       Thread-603918][   transport.py][1871] : Compression: none
2025-07-01 12:01:47,740 [DEBUG][       Thread-603918][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:01:47,799 [DEBUG][       Thread-603918][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:01:47,800 [DEBUG][       Thread-603918][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:01:47,800 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:01:47,801 [DEBUG][       Thread-603918][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:01:47,802 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:01:47,855 [DEBUG][       Thread-603918][   transport.py][1871] : userauth is OK
2025-07-01 12:01:47,855 [DEBUG][       Thread-603918][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:01:47,855 [DEBUG][       Thread-603918][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:01:47,856 [DEBUG][       Thread-603918][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:01:47,856 [DEBUG][       Thread-603918][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:01:47,874 [ INFO][       Thread-603918][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:01:47,874 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:01:47,875 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:01:48,887 [DEBUG][       Thread-603918][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:01:48,888 [DEBUG][       Thread-603918][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:01:48,936 [DEBUG][       Thread-603918][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:01:48,936 [DEBUG][       Thread-603918][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:01:48,945 [DEBUG][       Thread-603918][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:01:48,954 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:01:48,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-07-01 12:01:48,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-07-01 12:01:48,972 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:01:48,972 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:01:48,972 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:01:48,980 [DEBUG][       Thread-603918][   transport.py][1871] : EOF in transport thread
2025-07-01 12:01:50,220 [DEBUG][Thread-603920 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:01:58,980 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:01:58,980 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:01:58,980 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:01:58,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-07-01 12:01:59,260 [DEBUG][Thread-603921 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:01:59,470 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 1, 50), 9.95, 50.36, 0.0, 46.7, 11.13, 0, 0, 0, 2, 1, 0),)
2025-07-01 12:01:59,470 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:01:50
2025-07-01 12:01:59,556 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:01:59,560 [DEBUG][       Thread-603922][   transport.py][1871] : starting thread (client mode): 0x818ffa0
2025-07-01 12:01:59,560 [DEBUG][       Thread-603922][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:01:59,580 [DEBUG][       Thread-603922][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:01:59,580 [ INFO][       Thread-603922][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:01:59,584 [DEBUG][       Thread-603922][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:01:59,584 [DEBUG][       Thread-603922][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:01:59,584 [DEBUG][       Thread-603922][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:01:59,584 [DEBUG][       Thread-603922][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:01:59,584 [DEBUG][       Thread-603922][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:01:59,584 [DEBUG][       Thread-603922][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:01:59,584 [DEBUG][       Thread-603922][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:01:59,584 [DEBUG][       Thread-603922][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:01:59,584 [DEBUG][       Thread-603922][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:01:59,584 [DEBUG][       Thread-603922][   transport.py][1871] : client lang: <none>
2025-07-01 12:01:59,584 [DEBUG][       Thread-603922][   transport.py][1871] : server lang: <none>
2025-07-01 12:01:59,584 [DEBUG][       Thread-603922][   transport.py][1871] : kex follows: False
2025-07-01 12:01:59,584 [DEBUG][       Thread-603922][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:01:59,584 [DEBUG][       Thread-603922][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:01:59,584 [DEBUG][       Thread-603922][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:01:59,584 [DEBUG][       Thread-603922][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:01:59,584 [DEBUG][       Thread-603922][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:01:59,584 [DEBUG][       Thread-603922][   transport.py][1871] : Compression: none
2025-07-01 12:01:59,584 [DEBUG][       Thread-603922][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:01:59,601 [DEBUG][       Thread-603922][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:01:59,601 [DEBUG][       Thread-603922][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:01:59,602 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:01:59,602 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:01:59,602 [DEBUG][       Thread-603922][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:01:59,645 [DEBUG][       Thread-603922][   transport.py][1871] : userauth is OK
2025-07-01 12:01:59,670 [ INFO][       Thread-603922][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:01:59,670 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:02:00,308 [DEBUG][       Thread-603922][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:02:00,309 [DEBUG][       Thread-603922][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:02:00,353 [DEBUG][       Thread-603922][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:02:00,353 [DEBUG][       Thread-603922][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:02:00,357 [DEBUG][       Thread-603922][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:02:00,370 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:02:00,371 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:02:00,373 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:02:00,375 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:02:00,381 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:02:00,383 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:02:00,384 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:02:00,384 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:02:00,384 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.417652 -999.00  +11.00  38.10     54   +2.30 1 1 2 1 1   888    0 9.19 18.06 ----- 38.1 38.1 36.2 48.5 14.3 -25.9 13.4 -25.0 13.0 -24.9 13.9 -23.6
2025-07-01 12:02:00,385 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:02:00,385 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:02:00,385 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.417652
2025-07-01 12:02:00,385 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:02:00,386 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:02:00,386 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:02:00,386 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:02:00,386 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:02:00,386 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:01:50', tmtdew=9.95, humidity=50.36, cloud=0.0, wind=46.7, temperature=11.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=1, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:01:25.133', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:02:00,387 [DEBUG][       Thread-603922][   transport.py][1871] : EOF in transport thread
2025-07-01 12:02:00,471 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:02:00,481 [DEBUG][       Thread-603925][   transport.py][1871] : starting thread (client mode): 0x4701ec20
2025-07-01 12:02:00,481 [DEBUG][       Thread-603925][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:02:00,500 [DEBUG][       Thread-603925][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:02:00,500 [ INFO][       Thread-603925][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:02:00,507 [DEBUG][       Thread-603925][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:02:00,508 [DEBUG][       Thread-603925][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:02:00,508 [DEBUG][       Thread-603925][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:02:00,508 [DEBUG][       Thread-603925][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:02:00,508 [DEBUG][       Thread-603925][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:02:00,508 [DEBUG][       Thread-603925][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:02:00,508 [DEBUG][       Thread-603925][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:02:00,508 [DEBUG][       Thread-603925][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:02:00,508 [DEBUG][       Thread-603925][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:02:00,508 [DEBUG][       Thread-603925][   transport.py][1871] : client lang: <none>
2025-07-01 12:02:00,508 [DEBUG][       Thread-603925][   transport.py][1871] : server lang: <none>
2025-07-01 12:02:00,508 [DEBUG][       Thread-603925][   transport.py][1871] : kex follows: False
2025-07-01 12:02:00,508 [DEBUG][       Thread-603925][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:02:00,508 [DEBUG][       Thread-603925][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:02:00,508 [DEBUG][       Thread-603925][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:02:00,508 [DEBUG][       Thread-603925][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:02:00,509 [DEBUG][       Thread-603925][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:02:00,509 [DEBUG][       Thread-603925][   transport.py][1871] : Compression: none
2025-07-01 12:02:00,509 [DEBUG][       Thread-603925][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:02:00,567 [DEBUG][       Thread-603925][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:02:00,568 [DEBUG][       Thread-603925][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:02:00,568 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:02:00,569 [DEBUG][       Thread-603925][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:02:00,570 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:02:00,623 [DEBUG][       Thread-603925][   transport.py][1871] : userauth is OK
2025-07-01 12:02:00,623 [DEBUG][       Thread-603925][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:02:00,624 [DEBUG][       Thread-603925][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:02:00,624 [DEBUG][       Thread-603925][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:02:00,624 [DEBUG][       Thread-603925][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:02:00,643 [ INFO][       Thread-603925][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:02:00,643 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:02:00,643 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:02:01,650 [DEBUG][       Thread-603925][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:02:01,650 [DEBUG][       Thread-603925][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:02:01,700 [DEBUG][       Thread-603925][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:02:01,700 [DEBUG][       Thread-603925][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:02:01,711 [DEBUG][       Thread-603925][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:02:01,726 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:02:01,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-07-01 12:02:01,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-07-01 12:02:01,752 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:02:01,752 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:02:01,753 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:02:01,760 [DEBUG][       Thread-603925][   transport.py][1871] : EOF in transport thread
2025-07-01 12:02:08,280 [DEBUG][Thread-603927 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:02:11,758 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:02:11,758 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:02:11,758 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:02:11,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-07-01 12:02:12,258 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 1, 50), 9.95, 50.36, 0.0, 46.7, 11.13, 0, 0, 0, 2, 1, 0),)
2025-07-01 12:02:12,259 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:01:50
2025-07-01 12:02:12,345 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:02:12,349 [DEBUG][       Thread-603928][   transport.py][1871] : starting thread (client mode): 0x81700a0
2025-07-01 12:02:12,349 [DEBUG][       Thread-603928][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:02:12,370 [DEBUG][       Thread-603928][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:02:12,370 [ INFO][       Thread-603928][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:02:12,373 [DEBUG][       Thread-603928][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:02:12,373 [DEBUG][       Thread-603928][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:02:12,373 [DEBUG][       Thread-603928][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:02:12,373 [DEBUG][       Thread-603928][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:02:12,373 [DEBUG][       Thread-603928][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:02:12,373 [DEBUG][       Thread-603928][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:02:12,373 [DEBUG][       Thread-603928][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:02:12,373 [DEBUG][       Thread-603928][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:02:12,373 [DEBUG][       Thread-603928][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:02:12,373 [DEBUG][       Thread-603928][   transport.py][1871] : client lang: <none>
2025-07-01 12:02:12,373 [DEBUG][       Thread-603928][   transport.py][1871] : server lang: <none>
2025-07-01 12:02:12,373 [DEBUG][       Thread-603928][   transport.py][1871] : kex follows: False
2025-07-01 12:02:12,373 [DEBUG][       Thread-603928][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:02:12,373 [DEBUG][       Thread-603928][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:02:12,373 [DEBUG][       Thread-603928][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:02:12,373 [DEBUG][       Thread-603928][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:02:12,373 [DEBUG][       Thread-603928][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:02:12,373 [DEBUG][       Thread-603928][   transport.py][1871] : Compression: none
2025-07-01 12:02:12,374 [DEBUG][       Thread-603928][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:02:12,392 [DEBUG][       Thread-603928][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:02:12,393 [DEBUG][       Thread-603928][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:02:12,393 [DEBUG][       Thread-603928][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:02:12,393 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:02:12,394 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:02:12,395 [DEBUG][       Thread-603928][   transport.py][1871] : userauth is OK
2025-07-01 12:02:12,408 [ INFO][       Thread-603928][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:02:12,408 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:02:12,490 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:02:12,492 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:02:13,035 [DEBUG][       Thread-603928][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:02:13,036 [DEBUG][       Thread-603928][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:02:13,077 [DEBUG][       Thread-603928][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:02:13,077 [DEBUG][       Thread-603928][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:02:13,080 [DEBUG][       Thread-603928][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:02:13,094 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:02:13,094 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:02:13,096 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:02:13,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:02:13,103 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:02:13,105 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:02:13,106 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:02:13,106 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:02:13,106 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.418000 -999.00  +11.10  36.48     55   +2.40 1 1 2 1 1   888    0 9.03 18.04 ----- 36.5 36.5 20.9 51.7 14.2 -24.7 13.4 -24.7 13.0 -23.7 13.9 -23.5
2025-07-01 12:02:13,106 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:02:13,107 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:02:13,107 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.418000
2025-07-01 12:02:13,107 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:02:13,108 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:02:13,108 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:02:13,108 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:02:13,108 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:02:13,108 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:01:50', tmtdew=9.95, humidity=50.36, cloud=0.0, wind=46.7, temperature=11.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=1, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:01:55.200', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:02:13,109 [DEBUG][       Thread-603928][   transport.py][1871] : EOF in transport thread
2025-07-01 12:02:13,195 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:02:13,208 [DEBUG][       Thread-603931][   transport.py][1871] : starting thread (client mode): 0x81d8250
2025-07-01 12:02:13,208 [DEBUG][       Thread-603931][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:02:13,223 [DEBUG][       Thread-603931][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:02:13,223 [ INFO][       Thread-603931][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:02:13,230 [DEBUG][       Thread-603931][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:02:13,231 [DEBUG][       Thread-603931][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:02:13,231 [DEBUG][       Thread-603931][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:02:13,231 [DEBUG][       Thread-603931][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:02:13,231 [DEBUG][       Thread-603931][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:02:13,231 [DEBUG][       Thread-603931][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:02:13,231 [DEBUG][       Thread-603931][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:02:13,231 [DEBUG][       Thread-603931][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:02:13,231 [DEBUG][       Thread-603931][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:02:13,231 [DEBUG][       Thread-603931][   transport.py][1871] : client lang: <none>
2025-07-01 12:02:13,231 [DEBUG][       Thread-603931][   transport.py][1871] : server lang: <none>
2025-07-01 12:02:13,231 [DEBUG][       Thread-603931][   transport.py][1871] : kex follows: False
2025-07-01 12:02:13,231 [DEBUG][       Thread-603931][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:02:13,231 [DEBUG][       Thread-603931][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:02:13,231 [DEBUG][       Thread-603931][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:02:13,231 [DEBUG][       Thread-603931][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:02:13,231 [DEBUG][       Thread-603931][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:02:13,231 [DEBUG][       Thread-603931][   transport.py][1871] : Compression: none
2025-07-01 12:02:13,231 [DEBUG][       Thread-603931][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:02:13,287 [DEBUG][       Thread-603931][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:02:13,287 [DEBUG][       Thread-603931][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:02:13,288 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:02:13,289 [DEBUG][       Thread-603931][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:02:13,289 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:02:13,344 [DEBUG][       Thread-603931][   transport.py][1871] : userauth is OK
2025-07-01 12:02:13,344 [DEBUG][       Thread-603931][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:02:13,344 [DEBUG][       Thread-603931][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:02:13,344 [DEBUG][       Thread-603931][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:02:13,344 [DEBUG][       Thread-603931][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:02:13,363 [ INFO][       Thread-603931][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:02:13,364 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:02:13,364 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:02:14,399 [DEBUG][       Thread-603931][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:02:14,399 [DEBUG][       Thread-603931][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:02:14,453 [DEBUG][       Thread-603931][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:02:14,453 [DEBUG][       Thread-603931][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:02:14,461 [DEBUG][       Thread-603931][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:02:14,469 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:02:14,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-07-01 12:02:14,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-07-01 12:02:14,485 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:02:14,485 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:02:14,486 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:02:14,493 [DEBUG][       Thread-603931][   transport.py][1871] : EOF in transport thread
2025-07-01 12:02:17,309 [DEBUG][Thread-603933 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:02:24,496 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:02:24,496 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:02:24,496 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:02:24,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-07-01 12:02:25,002 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 1, 50), 9.95, 50.36, 0.0, 46.7, 11.13, 0, 0, 0, 2, 1, 0),)
2025-07-01 12:02:25,002 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:01:50
2025-07-01 12:02:25,087 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:02:25,091 [DEBUG][       Thread-603934][   transport.py][1871] : starting thread (client mode): 0x81dab30
2025-07-01 12:02:25,091 [DEBUG][       Thread-603934][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:02:25,111 [DEBUG][       Thread-603934][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:02:25,111 [ INFO][       Thread-603934][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:02:25,113 [DEBUG][       Thread-603934][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:02:25,113 [DEBUG][       Thread-603934][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:02:25,113 [DEBUG][       Thread-603934][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:02:25,113 [DEBUG][       Thread-603934][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:02:25,113 [DEBUG][       Thread-603934][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:02:25,113 [DEBUG][       Thread-603934][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:02:25,113 [DEBUG][       Thread-603934][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:02:25,113 [DEBUG][       Thread-603934][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:02:25,113 [DEBUG][       Thread-603934][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:02:25,113 [DEBUG][       Thread-603934][   transport.py][1871] : client lang: <none>
2025-07-01 12:02:25,113 [DEBUG][       Thread-603934][   transport.py][1871] : server lang: <none>
2025-07-01 12:02:25,113 [DEBUG][       Thread-603934][   transport.py][1871] : kex follows: False
2025-07-01 12:02:25,113 [DEBUG][       Thread-603934][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:02:25,113 [DEBUG][       Thread-603934][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:02:25,113 [DEBUG][       Thread-603934][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:02:25,113 [DEBUG][       Thread-603934][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:02:25,113 [DEBUG][       Thread-603934][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:02:25,113 [DEBUG][       Thread-603934][   transport.py][1871] : Compression: none
2025-07-01 12:02:25,113 [DEBUG][       Thread-603934][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:02:25,126 [DEBUG][       Thread-603934][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:02:25,127 [DEBUG][       Thread-603934][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:02:25,127 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:02:25,127 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:02:25,128 [DEBUG][       Thread-603934][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:02:25,128 [DEBUG][       Thread-603934][   transport.py][1871] : userauth is OK
2025-07-01 12:02:25,153 [ INFO][       Thread-603934][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:02:25,153 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:02:25,784 [DEBUG][       Thread-603934][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:02:25,785 [DEBUG][       Thread-603934][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:02:25,829 [DEBUG][       Thread-603934][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:02:25,829 [DEBUG][       Thread-603934][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:02:25,832 [DEBUG][       Thread-603934][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:02:25,846 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:02:25,846 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:02:25,848 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:02:25,849 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:02:25,855 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:02:25,856 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:02:25,857 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:02:25,857 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:02:25,857 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.418000 -999.00  +11.10  36.48     55   +2.40 1 1 2 1 1   888    0 9.03 18.04 ----- 36.5 36.5 20.9 51.7 14.2 -24.7 13.4 -24.7 13.0 -23.7 13.9 -23.5
2025-07-01 12:02:25,857 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:02:25,857 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:02:25,858 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.418000
2025-07-01 12:02:25,858 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:02:25,859 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:02:25,859 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:02:25,859 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:02:25,859 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:02:25,859 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:01:50', tmtdew=9.95, humidity=50.36, cloud=0.0, wind=46.7, temperature=11.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=1, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:01:55.200', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:02:25,859 [DEBUG][       Thread-603934][   transport.py][1871] : EOF in transport thread
2025-07-01 12:02:25,944 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:02:25,956 [DEBUG][       Thread-603937][   transport.py][1871] : starting thread (client mode): 0x82b33a0
2025-07-01 12:02:25,956 [DEBUG][       Thread-603937][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:02:25,971 [DEBUG][       Thread-603937][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:02:25,971 [ INFO][       Thread-603937][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:02:25,979 [DEBUG][       Thread-603937][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:02:25,979 [DEBUG][       Thread-603937][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:02:25,979 [DEBUG][       Thread-603937][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:02:25,979 [DEBUG][       Thread-603937][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:02:25,979 [DEBUG][       Thread-603937][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:02:25,979 [DEBUG][       Thread-603937][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:02:25,979 [DEBUG][       Thread-603937][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:02:25,979 [DEBUG][       Thread-603937][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:02:25,979 [DEBUG][       Thread-603937][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:02:25,979 [DEBUG][       Thread-603937][   transport.py][1871] : client lang: <none>
2025-07-01 12:02:25,980 [DEBUG][       Thread-603937][   transport.py][1871] : server lang: <none>
2025-07-01 12:02:25,980 [DEBUG][       Thread-603937][   transport.py][1871] : kex follows: False
2025-07-01 12:02:25,980 [DEBUG][       Thread-603937][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:02:25,980 [DEBUG][       Thread-603937][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:02:25,980 [DEBUG][       Thread-603937][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:02:25,980 [DEBUG][       Thread-603937][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:02:25,980 [DEBUG][       Thread-603937][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:02:25,980 [DEBUG][       Thread-603937][   transport.py][1871] : Compression: none
2025-07-01 12:02:25,980 [DEBUG][       Thread-603937][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:02:26,039 [DEBUG][       Thread-603937][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:02:26,039 [DEBUG][       Thread-603937][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:02:26,040 [DEBUG][       Thread-603937][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:02:26,040 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:02:26,041 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:02:26,099 [DEBUG][       Thread-603937][   transport.py][1871] : userauth is OK
2025-07-01 12:02:26,100 [DEBUG][       Thread-603937][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:02:26,100 [DEBUG][       Thread-603937][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:02:26,100 [DEBUG][       Thread-603937][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:02:26,100 [DEBUG][       Thread-603937][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:02:26,119 [ INFO][       Thread-603937][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:02:26,119 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:02:26,120 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:02:26,330 [DEBUG][Thread-603939 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:02:27,137 [DEBUG][       Thread-603937][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:02:27,137 [DEBUG][       Thread-603937][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:02:27,191 [DEBUG][       Thread-603937][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:02:27,191 [DEBUG][       Thread-603937][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:02:27,202 [DEBUG][       Thread-603937][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:02:27,211 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:02:27,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-07-01 12:02:27,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-07-01 12:02:27,230 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:02:27,230 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:02:27,230 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:02:27,238 [DEBUG][       Thread-603937][   transport.py][1871] : EOF in transport thread
2025-07-01 12:02:27,975 [DEBUG][Thread-603940 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:02:35,355 [DEBUG][Thread-603941 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:02:37,238 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:02:37,239 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:02:37,239 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:02:37,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-07-01 12:02:37,724 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 2, 22), 9.91, 50.61, 0.0, 43.88, 11.09, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:02:37,724 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:02:22
2025-07-01 12:02:37,810 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:02:37,814 [DEBUG][       Thread-603942][   transport.py][1871] : starting thread (client mode): 0x82b2530
2025-07-01 12:02:37,814 [DEBUG][       Thread-603942][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:02:37,835 [DEBUG][       Thread-603942][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:02:37,835 [ INFO][       Thread-603942][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:02:37,839 [DEBUG][       Thread-603942][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:02:37,839 [DEBUG][       Thread-603942][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:02:37,839 [DEBUG][       Thread-603942][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:02:37,839 [DEBUG][       Thread-603942][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:02:37,839 [DEBUG][       Thread-603942][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:02:37,839 [DEBUG][       Thread-603942][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:02:37,839 [DEBUG][       Thread-603942][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:02:37,839 [DEBUG][       Thread-603942][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:02:37,839 [DEBUG][       Thread-603942][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:02:37,839 [DEBUG][       Thread-603942][   transport.py][1871] : client lang: <none>
2025-07-01 12:02:37,839 [DEBUG][       Thread-603942][   transport.py][1871] : server lang: <none>
2025-07-01 12:02:37,839 [DEBUG][       Thread-603942][   transport.py][1871] : kex follows: False
2025-07-01 12:02:37,839 [DEBUG][       Thread-603942][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:02:37,839 [DEBUG][       Thread-603942][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:02:37,839 [DEBUG][       Thread-603942][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:02:37,839 [DEBUG][       Thread-603942][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:02:37,839 [DEBUG][       Thread-603942][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:02:37,839 [DEBUG][       Thread-603942][   transport.py][1871] : Compression: none
2025-07-01 12:02:37,839 [DEBUG][       Thread-603942][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:02:37,856 [DEBUG][       Thread-603942][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:02:37,857 [DEBUG][       Thread-603942][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:02:37,857 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:02:37,858 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:02:37,858 [DEBUG][       Thread-603942][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:02:37,859 [DEBUG][       Thread-603942][   transport.py][1871] : userauth is OK
2025-07-01 12:02:37,884 [ INFO][       Thread-603942][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:02:37,884 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:02:38,475 [DEBUG][       Thread-603942][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:02:38,476 [DEBUG][       Thread-603942][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:02:38,517 [DEBUG][       Thread-603942][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:02:38,517 [DEBUG][       Thread-603942][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:02:38,520 [DEBUG][       Thread-603942][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:02:38,533 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:02:38,533 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:02:38,535 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:02:38,537 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:02:38,543 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:02:38,545 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:02:38,545 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:02:38,546 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:02:38,546 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.418000 -999.00  +11.10  36.48     55   +2.40 1 1 2 1 1   888    0 9.03 18.04 ----- 36.5 36.5 20.9 51.7 14.2 -24.7 13.4 -24.7 13.0 -23.7 13.9 -23.5
2025-07-01 12:02:38,546 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:02:38,546 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:02:38,546 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.418000
2025-07-01 12:02:38,547 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:02:38,547 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:02:38,547 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:02:38,547 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:02:38,547 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:02:38,547 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:02:22', tmtdew=9.91, humidity=50.61, cloud=0.0, wind=43.88, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:01:55.200', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:02:38,548 [DEBUG][       Thread-603942][   transport.py][1871] : EOF in transport thread
2025-07-01 12:02:38,629 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:02:38,638 [DEBUG][       Thread-603945][   transport.py][1871] : starting thread (client mode): 0x8105ae0
2025-07-01 12:02:38,638 [DEBUG][       Thread-603945][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:02:38,653 [DEBUG][       Thread-603945][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:02:38,653 [ INFO][       Thread-603945][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:02:38,660 [DEBUG][       Thread-603945][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:02:38,660 [DEBUG][       Thread-603945][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:02:38,660 [DEBUG][       Thread-603945][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:02:38,660 [DEBUG][       Thread-603945][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:02:38,660 [DEBUG][       Thread-603945][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:02:38,660 [DEBUG][       Thread-603945][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:02:38,660 [DEBUG][       Thread-603945][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:02:38,660 [DEBUG][       Thread-603945][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:02:38,660 [DEBUG][       Thread-603945][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:02:38,660 [DEBUG][       Thread-603945][   transport.py][1871] : client lang: <none>
2025-07-01 12:02:38,660 [DEBUG][       Thread-603945][   transport.py][1871] : server lang: <none>
2025-07-01 12:02:38,660 [DEBUG][       Thread-603945][   transport.py][1871] : kex follows: False
2025-07-01 12:02:38,660 [DEBUG][       Thread-603945][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:02:38,660 [DEBUG][       Thread-603945][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:02:38,660 [DEBUG][       Thread-603945][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:02:38,660 [DEBUG][       Thread-603945][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:02:38,660 [DEBUG][       Thread-603945][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:02:38,660 [DEBUG][       Thread-603945][   transport.py][1871] : Compression: none
2025-07-01 12:02:38,660 [DEBUG][       Thread-603945][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:02:38,719 [DEBUG][       Thread-603945][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:02:38,719 [DEBUG][       Thread-603945][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:02:38,720 [DEBUG][       Thread-603945][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:02:38,720 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:02:38,721 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:02:38,775 [DEBUG][       Thread-603945][   transport.py][1871] : userauth is OK
2025-07-01 12:02:38,776 [DEBUG][       Thread-603945][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:02:38,776 [DEBUG][       Thread-603945][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:02:38,776 [DEBUG][       Thread-603945][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:02:38,776 [DEBUG][       Thread-603945][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:02:38,794 [ INFO][       Thread-603945][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:02:38,795 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:02:38,795 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:02:39,765 [DEBUG][       Thread-603945][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:02:39,765 [DEBUG][       Thread-603945][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:02:39,816 [DEBUG][       Thread-603945][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:02:39,816 [DEBUG][       Thread-603945][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:02:39,825 [DEBUG][       Thread-603945][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:02:39,834 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:02:39,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-07-01 12:02:39,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-07-01 12:02:39,852 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:02:39,853 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:02:39,853 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:02:39,861 [DEBUG][       Thread-603945][   transport.py][1871] : EOF in transport thread
2025-07-01 12:02:44,377 [DEBUG][Thread-603947 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:02:49,864 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:02:49,864 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:02:49,864 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:02:49,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-07-01 12:02:50,360 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 2, 22), 9.91, 50.61, 0.0, 43.88, 11.09, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:02:50,360 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:02:22
2025-07-01 12:02:50,446 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:02:50,450 [DEBUG][       Thread-603948][   transport.py][1871] : starting thread (client mode): 0x82b3670
2025-07-01 12:02:50,450 [DEBUG][       Thread-603948][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:02:50,471 [DEBUG][       Thread-603948][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:02:50,472 [ INFO][       Thread-603948][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:02:50,475 [DEBUG][       Thread-603948][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:02:50,475 [DEBUG][       Thread-603948][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:02:50,475 [DEBUG][       Thread-603948][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:02:50,475 [DEBUG][       Thread-603948][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:02:50,475 [DEBUG][       Thread-603948][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:02:50,475 [DEBUG][       Thread-603948][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:02:50,475 [DEBUG][       Thread-603948][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:02:50,475 [DEBUG][       Thread-603948][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:02:50,475 [DEBUG][       Thread-603948][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:02:50,475 [DEBUG][       Thread-603948][   transport.py][1871] : client lang: <none>
2025-07-01 12:02:50,475 [DEBUG][       Thread-603948][   transport.py][1871] : server lang: <none>
2025-07-01 12:02:50,475 [DEBUG][       Thread-603948][   transport.py][1871] : kex follows: False
2025-07-01 12:02:50,475 [DEBUG][       Thread-603948][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:02:50,475 [DEBUG][       Thread-603948][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:02:50,475 [DEBUG][       Thread-603948][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:02:50,475 [DEBUG][       Thread-603948][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:02:50,475 [DEBUG][       Thread-603948][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:02:50,475 [DEBUG][       Thread-603948][   transport.py][1871] : Compression: none
2025-07-01 12:02:50,475 [DEBUG][       Thread-603948][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:02:50,494 [DEBUG][       Thread-603948][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:02:50,495 [DEBUG][       Thread-603948][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:02:50,495 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:02:50,495 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:02:50,496 [DEBUG][       Thread-603948][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:02:50,496 [DEBUG][       Thread-603948][   transport.py][1871] : userauth is OK
2025-07-01 12:02:50,521 [ INFO][       Thread-603948][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:02:50,521 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:02:51,165 [DEBUG][       Thread-603948][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:02:51,165 [DEBUG][       Thread-603948][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:02:51,209 [DEBUG][       Thread-603948][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:02:51,209 [DEBUG][       Thread-603948][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:02:51,212 [DEBUG][       Thread-603948][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:02:51,224 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:02:51,224 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:02:51,226 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:02:51,227 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:02:51,232 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:02:51,234 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:02:51,234 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:02:51,235 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:02:51,235 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.418347 -999.00  +11.00  43.05     54   +2.20 1 1 2 1 1   888    0 9.29 18.28 ----- 43.0 43.0 42.8 50.3 14.3 -25.6 13.3 -26.1 13.0 -24.2 13.8 -24.5
2025-07-01 12:02:51,235 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:02:51,235 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:02:51,235 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.418347
2025-07-01 12:02:51,236 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:02:51,236 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:02:51,236 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:02:51,237 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:02:51,237 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:02:51,237 [DEBUG][       Thread-603948][   transport.py][1871] : EOF in transport thread
2025-07-01 12:02:51,237 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:02:22', tmtdew=9.91, humidity=50.61, cloud=0.0, wind=43.88, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:02:25.181', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:02:51,322 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:02:53,408 [DEBUG][Thread-603951 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:03:02,426 [DEBUG][Thread-603952 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:03:11,451 [DEBUG][Thread-603953 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:03:12,629 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:03:12,631 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:03:20,474 [DEBUG][Thread-603954 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:03:28,021 [DEBUG][Thread-603955 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:03:29,495 [DEBUG][Thread-603956 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:03:38,515 [DEBUG][Thread-603957 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:03:47,539 [DEBUG][Thread-603958 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:03:56,561 [DEBUG][Thread-603959 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:04:05,583 [DEBUG][Thread-603960 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:04:12,767 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:04:12,768 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:04:14,604 [DEBUG][Thread-603961 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:04:23,630 [DEBUG][Thread-603962 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:04:28,053 [DEBUG][Thread-603963 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:04:32,650 [DEBUG][Thread-603964 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:04:41,671 [DEBUG][Thread-603965 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:04:50,689 [DEBUG][Thread-603966 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:04:59,712 [DEBUG][Thread-603967 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:05:01,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-07-01 12:05:08,734 [DEBUG][Thread-603968 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:05:11,087 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:05:11,087 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:05:11,087 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:05:11,090 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:05:11,597 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 5, 2), 9.91, 50.61, 0.0, 40.03, 11.08, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:05:11,597 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:05:02
2025-07-01 12:05:11,681 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:05:11,686 [DEBUG][       Thread-603969][   transport.py][1871] : starting thread (client mode): 0x82b2140
2025-07-01 12:05:11,686 [DEBUG][       Thread-603969][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:05:11,707 [DEBUG][       Thread-603969][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:05:11,707 [ INFO][       Thread-603969][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:05:11,710 [DEBUG][       Thread-603969][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:05:11,711 [DEBUG][       Thread-603969][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:05:11,711 [DEBUG][       Thread-603969][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:05:11,711 [DEBUG][       Thread-603969][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:05:11,711 [DEBUG][       Thread-603969][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:05:11,711 [DEBUG][       Thread-603969][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:05:11,711 [DEBUG][       Thread-603969][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:05:11,711 [DEBUG][       Thread-603969][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:05:11,711 [DEBUG][       Thread-603969][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:05:11,711 [DEBUG][       Thread-603969][   transport.py][1871] : client lang: <none>
2025-07-01 12:05:11,711 [DEBUG][       Thread-603969][   transport.py][1871] : server lang: <none>
2025-07-01 12:05:11,711 [DEBUG][       Thread-603969][   transport.py][1871] : kex follows: False
2025-07-01 12:05:11,711 [DEBUG][       Thread-603969][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:05:11,711 [DEBUG][       Thread-603969][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:05:11,711 [DEBUG][       Thread-603969][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:05:11,711 [DEBUG][       Thread-603969][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:05:11,711 [DEBUG][       Thread-603969][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:05:11,711 [DEBUG][       Thread-603969][   transport.py][1871] : Compression: none
2025-07-01 12:05:11,711 [DEBUG][       Thread-603969][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:05:11,720 [DEBUG][       Thread-603969][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:05:11,720 [DEBUG][       Thread-603969][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:05:11,721 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:05:11,721 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:05:11,721 [DEBUG][       Thread-603969][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:05:11,722 [DEBUG][       Thread-603969][   transport.py][1871] : userauth is OK
2025-07-01 12:05:11,735 [ INFO][       Thread-603969][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:05:11,736 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:05:12,416 [DEBUG][       Thread-603969][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:05:12,417 [DEBUG][       Thread-603969][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:05:12,461 [DEBUG][       Thread-603969][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:05:12,461 [DEBUG][       Thread-603969][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:05:12,464 [DEBUG][       Thread-603969][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:05:12,477 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:05:12,486 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:05:12,488 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:05:12,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:05:12,496 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:05:12,498 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:05:12,498 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:05:12,499 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:05:12,499 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.419736 -999.00  +10.80  36.45     55   +2.30 1 1 2 1 1   888    0 8.93 11.00 ----- 36.5 36.5 34.4 46.9 13.8 -25.3 13.1 -26.0 12.8 -24.0 13.5 -23.4
2025-07-01 12:05:12,499 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:05:12,499 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:05:12,499 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.419736
2025-07-01 12:05:12,499 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:05:12,500 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:05:12,500 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:05:12,500 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:05:12,500 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:05:12,500 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:05:02', tmtdew=9.91, humidity=50.61, cloud=0.0, wind=40.03, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:04:25.190', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:05:12,501 [DEBUG][       Thread-603969][   transport.py][1871] : EOF in transport thread
2025-07-01 12:05:12,584 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:05:12,594 [DEBUG][       Thread-603972][   transport.py][1871] : starting thread (client mode): 0x8157a00
2025-07-01 12:05:12,594 [DEBUG][       Thread-603972][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:05:12,610 [DEBUG][       Thread-603972][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:05:12,610 [ INFO][       Thread-603972][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:05:12,618 [DEBUG][       Thread-603972][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:05:12,618 [DEBUG][       Thread-603972][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:05:12,618 [DEBUG][       Thread-603972][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:05:12,618 [DEBUG][       Thread-603972][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:05:12,618 [DEBUG][       Thread-603972][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:05:12,618 [DEBUG][       Thread-603972][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:05:12,618 [DEBUG][       Thread-603972][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:05:12,618 [DEBUG][       Thread-603972][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:05:12,618 [DEBUG][       Thread-603972][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:05:12,618 [DEBUG][       Thread-603972][   transport.py][1871] : client lang: <none>
2025-07-01 12:05:12,618 [DEBUG][       Thread-603972][   transport.py][1871] : server lang: <none>
2025-07-01 12:05:12,618 [DEBUG][       Thread-603972][   transport.py][1871] : kex follows: False
2025-07-01 12:05:12,618 [DEBUG][       Thread-603972][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:05:12,618 [DEBUG][       Thread-603972][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:05:12,618 [DEBUG][       Thread-603972][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:05:12,618 [DEBUG][       Thread-603972][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:05:12,619 [DEBUG][       Thread-603972][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:05:12,619 [DEBUG][       Thread-603972][   transport.py][1871] : Compression: none
2025-07-01 12:05:12,619 [DEBUG][       Thread-603972][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:05:12,680 [DEBUG][       Thread-603972][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:05:12,680 [DEBUG][       Thread-603972][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:05:12,681 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:05:12,682 [DEBUG][       Thread-603972][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:05:12,682 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:05:12,739 [DEBUG][       Thread-603972][   transport.py][1871] : userauth is OK
2025-07-01 12:05:12,740 [DEBUG][       Thread-603972][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:05:12,740 [DEBUG][       Thread-603972][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:05:12,740 [DEBUG][       Thread-603972][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:05:12,740 [DEBUG][       Thread-603972][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:05:12,758 [ INFO][       Thread-603972][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:05:12,759 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:05:12,759 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:05:12,906 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:05:12,907 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:05:13,766 [DEBUG][       Thread-603972][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:05:13,766 [DEBUG][       Thread-603972][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:05:13,816 [DEBUG][       Thread-603972][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:05:13,816 [DEBUG][       Thread-603972][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:05:13,826 [DEBUG][       Thread-603972][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:05:13,834 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:05:13,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-07-01 12:05:13,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-07-01 12:05:13,854 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:05:13,854 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:05:13,855 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:05:13,869 [DEBUG][       Thread-603972][   transport.py][1871] : EOF in transport thread
2025-07-01 12:05:17,756 [DEBUG][Thread-603974 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:05:23,865 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:05:23,865 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:05:23,866 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:05:23,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-07-01 12:05:24,383 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 5, 2), 9.91, 50.61, 0.0, 40.03, 11.08, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:05:24,383 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:05:02
2025-07-01 12:05:24,468 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:05:24,472 [DEBUG][       Thread-603975][   transport.py][1871] : starting thread (client mode): 0x82b3c10
2025-07-01 12:05:24,472 [DEBUG][       Thread-603975][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:05:24,492 [DEBUG][       Thread-603975][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:05:24,493 [ INFO][       Thread-603975][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:05:24,496 [DEBUG][       Thread-603975][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:05:24,496 [DEBUG][       Thread-603975][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:05:24,496 [DEBUG][       Thread-603975][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:05:24,496 [DEBUG][       Thread-603975][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:05:24,496 [DEBUG][       Thread-603975][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:05:24,496 [DEBUG][       Thread-603975][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:05:24,496 [DEBUG][       Thread-603975][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:05:24,496 [DEBUG][       Thread-603975][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:05:24,496 [DEBUG][       Thread-603975][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:05:24,496 [DEBUG][       Thread-603975][   transport.py][1871] : client lang: <none>
2025-07-01 12:05:24,496 [DEBUG][       Thread-603975][   transport.py][1871] : server lang: <none>
2025-07-01 12:05:24,496 [DEBUG][       Thread-603975][   transport.py][1871] : kex follows: False
2025-07-01 12:05:24,496 [DEBUG][       Thread-603975][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:05:24,496 [DEBUG][       Thread-603975][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:05:24,496 [DEBUG][       Thread-603975][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:05:24,496 [DEBUG][       Thread-603975][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:05:24,496 [DEBUG][       Thread-603975][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:05:24,496 [DEBUG][       Thread-603975][   transport.py][1871] : Compression: none
2025-07-01 12:05:24,496 [DEBUG][       Thread-603975][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:05:24,515 [DEBUG][       Thread-603975][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:05:24,516 [DEBUG][       Thread-603975][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:05:24,516 [DEBUG][       Thread-603975][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:05:24,517 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:05:24,517 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:05:24,518 [DEBUG][       Thread-603975][   transport.py][1871] : userauth is OK
2025-07-01 12:05:24,531 [ INFO][       Thread-603975][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:05:24,531 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:05:25,165 [DEBUG][       Thread-603975][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:05:25,166 [DEBUG][       Thread-603975][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:05:25,213 [DEBUG][       Thread-603975][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:05:25,213 [DEBUG][       Thread-603975][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:05:25,217 [DEBUG][       Thread-603975][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:05:25,238 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:05:25,238 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:05:25,241 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:05:25,243 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:05:25,249 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:05:25,251 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:05:25,252 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:05:25,252 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:05:25,253 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.419736 -999.00  +10.80  36.45     55   +2.30 1 1 2 1 1   888    0 8.93 11.00 ----- 36.5 36.5 34.4 46.9 13.8 -25.3 13.1 -26.0 12.8 -24.0 13.5 -23.4
2025-07-01 12:05:25,253 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:05:25,253 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:05:25,253 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.419736
2025-07-01 12:05:25,253 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:05:25,254 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:05:25,254 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:05:25,254 [DEBUG][       Thread-603975][   transport.py][1871] : EOF in transport thread
2025-07-01 12:05:25,254 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:05:25,255 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:05:25,255 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:05:02', tmtdew=9.91, humidity=50.61, cloud=0.0, wind=40.03, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:04:25.190', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:05:25,338 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:05:25,352 [DEBUG][       Thread-603978][   transport.py][1871] : starting thread (client mode): 0x81a5270
2025-07-01 12:05:25,352 [DEBUG][       Thread-603978][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:05:25,367 [DEBUG][       Thread-603978][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:05:25,367 [ INFO][       Thread-603978][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:05:25,374 [DEBUG][       Thread-603978][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:05:25,375 [DEBUG][       Thread-603978][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:05:25,375 [DEBUG][       Thread-603978][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:05:25,375 [DEBUG][       Thread-603978][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:05:25,375 [DEBUG][       Thread-603978][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:05:25,375 [DEBUG][       Thread-603978][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:05:25,375 [DEBUG][       Thread-603978][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:05:25,375 [DEBUG][       Thread-603978][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:05:25,375 [DEBUG][       Thread-603978][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:05:25,375 [DEBUG][       Thread-603978][   transport.py][1871] : client lang: <none>
2025-07-01 12:05:25,375 [DEBUG][       Thread-603978][   transport.py][1871] : server lang: <none>
2025-07-01 12:05:25,375 [DEBUG][       Thread-603978][   transport.py][1871] : kex follows: False
2025-07-01 12:05:25,375 [DEBUG][       Thread-603978][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:05:25,375 [DEBUG][       Thread-603978][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:05:25,375 [DEBUG][       Thread-603978][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:05:25,375 [DEBUG][       Thread-603978][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:05:25,375 [DEBUG][       Thread-603978][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:05:25,375 [DEBUG][       Thread-603978][   transport.py][1871] : Compression: none
2025-07-01 12:05:25,375 [DEBUG][       Thread-603978][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:05:25,435 [DEBUG][       Thread-603978][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:05:25,435 [DEBUG][       Thread-603978][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:05:25,436 [DEBUG][       Thread-603978][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:05:25,436 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:05:25,436 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:05:25,495 [DEBUG][       Thread-603978][   transport.py][1871] : userauth is OK
2025-07-01 12:05:25,496 [DEBUG][       Thread-603978][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:05:25,496 [DEBUG][       Thread-603978][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:05:25,496 [DEBUG][       Thread-603978][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:05:25,496 [DEBUG][       Thread-603978][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:05:25,514 [ INFO][       Thread-603978][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:05:25,515 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:05:25,515 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:05:26,537 [DEBUG][       Thread-603978][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:05:26,537 [DEBUG][       Thread-603978][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:05:26,587 [DEBUG][       Thread-603978][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:05:26,587 [DEBUG][       Thread-603978][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:05:26,597 [DEBUG][       Thread-603978][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:05:26,609 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:05:26,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-07-01 12:05:26,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-07-01 12:05:26,632 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:05:26,632 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:05:26,632 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:05:26,640 [DEBUG][       Thread-603978][   transport.py][1871] : EOF in transport thread
2025-07-01 12:05:26,788 [DEBUG][Thread-603980 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:05:28,101 [DEBUG][Thread-603981 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:05:35,806 [DEBUG][Thread-603982 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:05:36,640 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:05:36,640 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:05:36,640 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:05:36,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-07-01 12:05:37,154 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 5, 33), 9.76, 51.12, 0.0, 37.1, 11.04, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:05:37,154 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:05:33
2025-07-01 12:05:37,241 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:05:37,245 [DEBUG][       Thread-603983][   transport.py][1871] : starting thread (client mode): 0x82b2b00
2025-07-01 12:05:37,245 [DEBUG][       Thread-603983][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:05:37,265 [DEBUG][       Thread-603983][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:05:37,265 [ INFO][       Thread-603983][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:05:37,268 [DEBUG][       Thread-603983][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:05:37,268 [DEBUG][       Thread-603983][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:05:37,268 [DEBUG][       Thread-603983][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:05:37,268 [DEBUG][       Thread-603983][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:05:37,268 [DEBUG][       Thread-603983][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:05:37,268 [DEBUG][       Thread-603983][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:05:37,268 [DEBUG][       Thread-603983][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:05:37,268 [DEBUG][       Thread-603983][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:05:37,268 [DEBUG][       Thread-603983][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:05:37,268 [DEBUG][       Thread-603983][   transport.py][1871] : client lang: <none>
2025-07-01 12:05:37,268 [DEBUG][       Thread-603983][   transport.py][1871] : server lang: <none>
2025-07-01 12:05:37,268 [DEBUG][       Thread-603983][   transport.py][1871] : kex follows: False
2025-07-01 12:05:37,268 [DEBUG][       Thread-603983][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:05:37,268 [DEBUG][       Thread-603983][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:05:37,268 [DEBUG][       Thread-603983][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:05:37,268 [DEBUG][       Thread-603983][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:05:37,268 [DEBUG][       Thread-603983][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:05:37,268 [DEBUG][       Thread-603983][   transport.py][1871] : Compression: none
2025-07-01 12:05:37,268 [DEBUG][       Thread-603983][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:05:37,287 [DEBUG][       Thread-603983][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:05:37,287 [DEBUG][       Thread-603983][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:05:37,288 [DEBUG][       Thread-603983][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:05:37,288 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:05:37,288 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:05:37,289 [DEBUG][       Thread-603983][   transport.py][1871] : userauth is OK
2025-07-01 12:05:37,314 [ INFO][       Thread-603983][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:05:37,315 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:05:37,980 [DEBUG][       Thread-603983][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:05:37,980 [DEBUG][       Thread-603983][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:05:38,020 [DEBUG][       Thread-603983][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:05:38,021 [DEBUG][       Thread-603983][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:05:38,024 [DEBUG][       Thread-603983][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:05:38,037 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:05:38,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:05:38,039 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:05:38,041 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:05:38,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:05:38,048 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:05:38,048 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:05:38,049 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:05:38,049 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.420430 -999.00  +10.90  36.03     56   +2.50 1 1 2 1 1   888    0 8.81 6.93 ----- 36.0 36.0 34.2 48.2 13.7 -25.1 13.1 -25.2 12.7 -24.0 13.4 -23.2
2025-07-01 12:05:38,049 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:05:38,049 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:05:38,049 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.420430
2025-07-01 12:05:38,050 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:05:38,050 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:05:38,050 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:05:38,050 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:05:38,050 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:05:38,051 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:05:33', tmtdew=9.76, humidity=51.12, cloud=0.0, wind=37.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:05:25.152', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:05:38,052 [DEBUG][       Thread-603983][   transport.py][1871] : EOF in transport thread
2025-07-01 12:05:38,134 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:05:38,144 [DEBUG][       Thread-603986][   transport.py][1871] : starting thread (client mode): 0x81e4f10
2025-07-01 12:05:38,144 [DEBUG][       Thread-603986][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:05:38,158 [DEBUG][       Thread-603986][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:05:38,159 [ INFO][       Thread-603986][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:05:38,166 [DEBUG][       Thread-603986][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:05:38,166 [DEBUG][       Thread-603986][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:05:38,167 [DEBUG][       Thread-603986][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:05:38,167 [DEBUG][       Thread-603986][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:05:38,167 [DEBUG][       Thread-603986][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:05:38,167 [DEBUG][       Thread-603986][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:05:38,167 [DEBUG][       Thread-603986][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:05:38,167 [DEBUG][       Thread-603986][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:05:38,167 [DEBUG][       Thread-603986][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:05:38,167 [DEBUG][       Thread-603986][   transport.py][1871] : client lang: <none>
2025-07-01 12:05:38,167 [DEBUG][       Thread-603986][   transport.py][1871] : server lang: <none>
2025-07-01 12:05:38,167 [DEBUG][       Thread-603986][   transport.py][1871] : kex follows: False
2025-07-01 12:05:38,167 [DEBUG][       Thread-603986][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:05:38,167 [DEBUG][       Thread-603986][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:05:38,167 [DEBUG][       Thread-603986][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:05:38,167 [DEBUG][       Thread-603986][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:05:38,167 [DEBUG][       Thread-603986][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:05:38,167 [DEBUG][       Thread-603986][   transport.py][1871] : Compression: none
2025-07-01 12:05:38,167 [DEBUG][       Thread-603986][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:05:38,224 [DEBUG][       Thread-603986][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:05:38,224 [DEBUG][       Thread-603986][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:05:38,225 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:05:38,225 [DEBUG][       Thread-603986][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:05:38,226 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:05:38,279 [DEBUG][       Thread-603986][   transport.py][1871] : userauth is OK
2025-07-01 12:05:38,279 [DEBUG][       Thread-603986][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:05:38,279 [DEBUG][       Thread-603986][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:05:38,279 [DEBUG][       Thread-603986][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:05:38,279 [DEBUG][       Thread-603986][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:05:38,299 [ INFO][       Thread-603986][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:05:38,300 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:05:38,300 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:05:39,265 [DEBUG][       Thread-603986][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:05:39,265 [DEBUG][       Thread-603986][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:05:39,318 [DEBUG][       Thread-603986][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:05:39,318 [DEBUG][       Thread-603986][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:05:39,334 [DEBUG][       Thread-603986][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:05:39,343 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:05:39,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-07-01 12:05:39,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-07-01 12:05:39,362 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:05:39,362 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:05:39,363 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:05:39,371 [DEBUG][       Thread-603986][   transport.py][1871] : EOF in transport thread
2025-07-01 12:05:44,826 [DEBUG][Thread-603988 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:05:49,373 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:05:49,374 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:05:49,374 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:05:49,376 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:05:49,885 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 5, 33), 9.76, 51.12, 0.0, 37.1, 11.04, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:05:49,885 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:05:33
2025-07-01 12:05:49,971 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:05:49,975 [DEBUG][       Thread-603989][   transport.py][1871] : starting thread (client mode): 0x82b22f0
2025-07-01 12:05:49,975 [DEBUG][       Thread-603989][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:05:49,991 [DEBUG][       Thread-603989][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:05:49,991 [ INFO][       Thread-603989][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:05:49,993 [DEBUG][       Thread-603989][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:05:49,993 [DEBUG][       Thread-603989][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:05:49,993 [DEBUG][       Thread-603989][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:05:49,993 [DEBUG][       Thread-603989][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:05:49,993 [DEBUG][       Thread-603989][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:05:49,993 [DEBUG][       Thread-603989][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:05:49,993 [DEBUG][       Thread-603989][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:05:49,993 [DEBUG][       Thread-603989][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:05:49,993 [DEBUG][       Thread-603989][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:05:49,993 [DEBUG][       Thread-603989][   transport.py][1871] : client lang: <none>
2025-07-01 12:05:49,993 [DEBUG][       Thread-603989][   transport.py][1871] : server lang: <none>
2025-07-01 12:05:49,993 [DEBUG][       Thread-603989][   transport.py][1871] : kex follows: False
2025-07-01 12:05:49,993 [DEBUG][       Thread-603989][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:05:49,993 [DEBUG][       Thread-603989][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:05:49,993 [DEBUG][       Thread-603989][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:05:49,993 [DEBUG][       Thread-603989][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:05:49,993 [DEBUG][       Thread-603989][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:05:49,993 [DEBUG][       Thread-603989][   transport.py][1871] : Compression: none
2025-07-01 12:05:49,993 [DEBUG][       Thread-603989][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:05:50,010 [DEBUG][       Thread-603989][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:05:50,010 [DEBUG][       Thread-603989][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:05:50,011 [DEBUG][       Thread-603989][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:05:50,011 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:05:50,011 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:05:50,012 [DEBUG][       Thread-603989][   transport.py][1871] : userauth is OK
2025-07-01 12:05:50,037 [ INFO][       Thread-603989][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:05:50,037 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:05:50,677 [DEBUG][       Thread-603989][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:05:50,677 [DEBUG][       Thread-603989][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:05:50,721 [DEBUG][       Thread-603989][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:05:50,721 [DEBUG][       Thread-603989][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:05:50,725 [DEBUG][       Thread-603989][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:05:50,737 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:05:50,737 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:05:50,739 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:05:50,741 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:05:50,747 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:05:50,749 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:05:50,749 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:05:50,749 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:05:50,750 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.420430 -999.00  +10.90  36.03     56   +2.50 1 1 2 1 1   888    0 8.81 6.93 ----- 36.0 36.0 34.2 48.2 13.7 -25.1 13.1 -25.2 12.7 -24.0 13.4 -23.2
2025-07-01 12:05:50,750 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:05:50,750 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:05:50,750 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.420430
2025-07-01 12:05:50,750 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:05:50,751 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:05:50,751 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:05:50,751 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:05:50,751 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:05:50,751 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:05:33', tmtdew=9.76, humidity=51.12, cloud=0.0, wind=37.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:05:25.152', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:05:50,751 [DEBUG][       Thread-603989][   transport.py][1871] : EOF in transport thread
2025-07-01 12:05:50,835 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:05:50,844 [DEBUG][       Thread-603992][   transport.py][1871] : starting thread (client mode): 0x818ffa0
2025-07-01 12:05:50,844 [DEBUG][       Thread-603992][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:05:50,860 [DEBUG][       Thread-603992][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:05:50,861 [ INFO][       Thread-603992][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:05:50,869 [DEBUG][       Thread-603992][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:05:50,869 [DEBUG][       Thread-603992][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:05:50,869 [DEBUG][       Thread-603992][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:05:50,869 [DEBUG][       Thread-603992][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:05:50,869 [DEBUG][       Thread-603992][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:05:50,870 [DEBUG][       Thread-603992][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:05:50,870 [DEBUG][       Thread-603992][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:05:50,870 [DEBUG][       Thread-603992][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:05:50,870 [DEBUG][       Thread-603992][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:05:50,870 [DEBUG][       Thread-603992][   transport.py][1871] : client lang: <none>
2025-07-01 12:05:50,870 [DEBUG][       Thread-603992][   transport.py][1871] : server lang: <none>
2025-07-01 12:05:50,870 [DEBUG][       Thread-603992][   transport.py][1871] : kex follows: False
2025-07-01 12:05:50,870 [DEBUG][       Thread-603992][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:05:50,870 [DEBUG][       Thread-603992][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:05:50,871 [DEBUG][       Thread-603992][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:05:50,871 [DEBUG][       Thread-603992][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:05:50,871 [DEBUG][       Thread-603992][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:05:50,871 [DEBUG][       Thread-603992][   transport.py][1871] : Compression: none
2025-07-01 12:05:50,871 [DEBUG][       Thread-603992][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:05:50,928 [DEBUG][       Thread-603992][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:05:50,928 [DEBUG][       Thread-603992][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:05:50,929 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:05:50,930 [DEBUG][       Thread-603992][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:05:50,931 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:05:50,984 [DEBUG][       Thread-603992][   transport.py][1871] : userauth is OK
2025-07-01 12:05:50,984 [DEBUG][       Thread-603992][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:05:50,984 [DEBUG][       Thread-603992][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:05:50,984 [DEBUG][       Thread-603992][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:05:50,984 [DEBUG][       Thread-603992][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:05:51,018 [ INFO][       Thread-603992][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:05:51,019 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:05:51,019 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:05:52,056 [DEBUG][       Thread-603992][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:05:52,057 [DEBUG][       Thread-603992][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:05:52,108 [DEBUG][       Thread-603992][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:05:52,108 [DEBUG][       Thread-603992][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:05:52,117 [DEBUG][       Thread-603992][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:05:52,127 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:05:52,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-07-01 12:05:52,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-07-01 12:05:52,145 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:05:52,145 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:05:52,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:05:52,154 [DEBUG][       Thread-603992][   transport.py][1871] : EOF in transport thread
2025-07-01 12:05:53,858 [DEBUG][Thread-603994 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:06:02,148 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:06:02,148 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:06:02,148 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:06:02,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-07-01 12:06:02,657 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 5, 33), 9.76, 51.12, 0.0, 37.1, 11.04, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:06:02,657 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:05:33
2025-07-01 12:06:02,744 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:06:02,748 [DEBUG][       Thread-603995][   transport.py][1871] : starting thread (client mode): 0x82b2ce0
2025-07-01 12:06:02,748 [DEBUG][       Thread-603995][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:06:02,764 [DEBUG][       Thread-603995][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:06:02,764 [ INFO][       Thread-603995][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:06:02,767 [DEBUG][       Thread-603995][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:06:02,768 [DEBUG][       Thread-603995][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:06:02,768 [DEBUG][       Thread-603995][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:06:02,768 [DEBUG][       Thread-603995][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:06:02,768 [DEBUG][       Thread-603995][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:06:02,768 [DEBUG][       Thread-603995][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:06:02,768 [DEBUG][       Thread-603995][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:06:02,768 [DEBUG][       Thread-603995][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:06:02,768 [DEBUG][       Thread-603995][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:06:02,768 [DEBUG][       Thread-603995][   transport.py][1871] : client lang: <none>
2025-07-01 12:06:02,768 [DEBUG][       Thread-603995][   transport.py][1871] : server lang: <none>
2025-07-01 12:06:02,768 [DEBUG][       Thread-603995][   transport.py][1871] : kex follows: False
2025-07-01 12:06:02,768 [DEBUG][       Thread-603995][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:06:02,768 [DEBUG][       Thread-603995][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:06:02,768 [DEBUG][       Thread-603995][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:06:02,768 [DEBUG][       Thread-603995][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:06:02,768 [DEBUG][       Thread-603995][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:06:02,768 [DEBUG][       Thread-603995][   transport.py][1871] : Compression: none
2025-07-01 12:06:02,768 [DEBUG][       Thread-603995][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:06:02,785 [DEBUG][       Thread-603995][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:06:02,785 [DEBUG][       Thread-603995][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:06:02,786 [DEBUG][       Thread-603995][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:06:02,786 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:06:02,786 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:06:02,787 [DEBUG][       Thread-603995][   transport.py][1871] : userauth is OK
2025-07-01 12:06:02,800 [ INFO][       Thread-603995][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:06:02,800 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:06:02,879 [DEBUG][Thread-603997 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:06:03,425 [DEBUG][       Thread-603995][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:06:03,425 [DEBUG][       Thread-603995][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:06:03,469 [DEBUG][       Thread-603995][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:06:03,469 [DEBUG][       Thread-603995][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:06:03,473 [DEBUG][       Thread-603995][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:06:03,485 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:06:03,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:06:03,487 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:06:03,489 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:06:03,494 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:06:03,496 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:06:03,496 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:06:03,497 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:06:03,497 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.420430 -999.00  +10.90  36.03     56   +2.50 1 1 2 1 1   888    0 8.81 6.93 ----- 36.0 36.0 34.2 48.2 13.7 -25.1 13.1 -25.2 12.7 -24.0 13.4 -23.2
2025-07-01 12:06:03,497 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:06:03,497 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:06:03,497 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.420430
2025-07-01 12:06:03,498 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:06:03,498 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:06:03,498 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:06:03,498 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:06:03,498 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:06:03,499 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:05:33', tmtdew=9.76, humidity=51.12, cloud=0.0, wind=37.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:05:25.152', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:06:03,500 [DEBUG][       Thread-603995][   transport.py][1871] : EOF in transport thread
2025-07-01 12:06:03,582 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:06:03,591 [DEBUG][       Thread-603999][   transport.py][1871] : starting thread (client mode): 0x83c8700
2025-07-01 12:06:03,591 [DEBUG][       Thread-603999][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:06:03,606 [DEBUG][       Thread-603999][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:06:03,606 [ INFO][       Thread-603999][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:06:03,619 [DEBUG][       Thread-603999][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:06:03,619 [DEBUG][       Thread-603999][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:06:03,619 [DEBUG][       Thread-603999][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:06:03,619 [DEBUG][       Thread-603999][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:06:03,619 [DEBUG][       Thread-603999][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:06:03,619 [DEBUG][       Thread-603999][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:06:03,619 [DEBUG][       Thread-603999][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:06:03,619 [DEBUG][       Thread-603999][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:06:03,619 [DEBUG][       Thread-603999][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:06:03,619 [DEBUG][       Thread-603999][   transport.py][1871] : client lang: <none>
2025-07-01 12:06:03,619 [DEBUG][       Thread-603999][   transport.py][1871] : server lang: <none>
2025-07-01 12:06:03,619 [DEBUG][       Thread-603999][   transport.py][1871] : kex follows: False
2025-07-01 12:06:03,619 [DEBUG][       Thread-603999][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:06:03,620 [DEBUG][       Thread-603999][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:06:03,620 [DEBUG][       Thread-603999][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:06:03,620 [DEBUG][       Thread-603999][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:06:03,620 [DEBUG][       Thread-603999][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:06:03,620 [DEBUG][       Thread-603999][   transport.py][1871] : Compression: none
2025-07-01 12:06:03,620 [DEBUG][       Thread-603999][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:06:03,676 [DEBUG][       Thread-603999][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:06:03,676 [DEBUG][       Thread-603999][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:06:03,677 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:06:03,678 [DEBUG][       Thread-603999][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:06:03,678 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:06:03,731 [DEBUG][       Thread-603999][   transport.py][1871] : userauth is OK
2025-07-01 12:06:03,731 [DEBUG][       Thread-603999][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:06:03,732 [DEBUG][       Thread-603999][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:06:03,732 [DEBUG][       Thread-603999][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:06:03,732 [DEBUG][       Thread-603999][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:06:03,751 [ INFO][       Thread-603999][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:06:03,752 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:06:03,752 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:06:04,748 [DEBUG][       Thread-603999][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:06:04,749 [DEBUG][       Thread-603999][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:06:04,799 [DEBUG][       Thread-603999][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:06:04,799 [DEBUG][       Thread-603999][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:06:04,808 [DEBUG][       Thread-603999][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:06:04,822 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:06:04,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-07-01 12:06:04,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-07-01 12:06:04,845 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:06:04,845 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:06:04,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:06:04,853 [DEBUG][       Thread-603999][   transport.py][1871] : EOF in transport thread
2025-07-01 12:06:11,897 [DEBUG][Thread-604001 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:06:13,044 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:06:13,045 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:06:14,855 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:06:14,855 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:06:14,855 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:06:14,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-07-01 12:06:15,370 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 6, 5), 9.74, 51.17, 0.0, 30.97, 11.08, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:06:15,370 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:06:05
2025-07-01 12:06:15,457 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:06:15,460 [DEBUG][       Thread-604002][   transport.py][1871] : starting thread (client mode): 0x82b0b50
2025-07-01 12:06:15,460 [DEBUG][       Thread-604002][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:06:15,480 [DEBUG][       Thread-604002][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:06:15,480 [ INFO][       Thread-604002][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:06:15,483 [DEBUG][       Thread-604002][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:06:15,483 [DEBUG][       Thread-604002][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:06:15,483 [DEBUG][       Thread-604002][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:06:15,484 [DEBUG][       Thread-604002][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:06:15,484 [DEBUG][       Thread-604002][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:06:15,484 [DEBUG][       Thread-604002][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:06:15,484 [DEBUG][       Thread-604002][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:06:15,484 [DEBUG][       Thread-604002][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:06:15,484 [DEBUG][       Thread-604002][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:06:15,484 [DEBUG][       Thread-604002][   transport.py][1871] : client lang: <none>
2025-07-01 12:06:15,484 [DEBUG][       Thread-604002][   transport.py][1871] : server lang: <none>
2025-07-01 12:06:15,484 [DEBUG][       Thread-604002][   transport.py][1871] : kex follows: False
2025-07-01 12:06:15,484 [DEBUG][       Thread-604002][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:06:15,484 [DEBUG][       Thread-604002][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:06:15,484 [DEBUG][       Thread-604002][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:06:15,484 [DEBUG][       Thread-604002][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:06:15,484 [DEBUG][       Thread-604002][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:06:15,484 [DEBUG][       Thread-604002][   transport.py][1871] : Compression: none
2025-07-01 12:06:15,484 [DEBUG][       Thread-604002][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:06:15,500 [DEBUG][       Thread-604002][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:06:15,501 [DEBUG][       Thread-604002][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:06:15,501 [DEBUG][       Thread-604002][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:06:15,501 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:06:15,502 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:06:15,503 [DEBUG][       Thread-604002][   transport.py][1871] : userauth is OK
2025-07-01 12:06:15,517 [ INFO][       Thread-604002][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:06:15,518 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:06:16,119 [DEBUG][       Thread-604002][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:06:16,120 [DEBUG][       Thread-604002][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:06:16,161 [DEBUG][       Thread-604002][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:06:16,161 [DEBUG][       Thread-604002][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:06:16,164 [DEBUG][       Thread-604002][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:06:16,176 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:06:16,177 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:06:16,178 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:06:16,180 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:06:16,184 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:06:16,186 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:06:16,186 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:06:16,187 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:06:16,187 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.420777 -999.00  +11.00  38.67     55   +2.50 1 1 2 1 1   888    0 8.73 5.33 ----- 38.7 38.7 29.2 46.2 13.8 -24.0 13.1 -24.4 12.8 -23.1 13.5 -22.7
2025-07-01 12:06:16,187 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:06:16,187 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:06:16,187 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.420777
2025-07-01 12:06:16,188 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:06:16,188 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:06:16,188 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:06:16,189 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:06:16,189 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:06:16,189 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:06:05', tmtdew=9.74, humidity=51.17, cloud=0.0, wind=30.97, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:05:55.133', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:06:16,189 [DEBUG][       Thread-604002][   transport.py][1871] : EOF in transport thread
2025-07-01 12:06:16,273 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:06:16,284 [DEBUG][       Thread-604005][   transport.py][1871] : starting thread (client mode): 0x818e560
2025-07-01 12:06:16,284 [DEBUG][       Thread-604005][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:06:16,299 [DEBUG][       Thread-604005][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:06:16,299 [ INFO][       Thread-604005][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:06:16,306 [DEBUG][       Thread-604005][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:06:16,307 [DEBUG][       Thread-604005][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:06:16,307 [DEBUG][       Thread-604005][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:06:16,307 [DEBUG][       Thread-604005][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:06:16,307 [DEBUG][       Thread-604005][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:06:16,307 [DEBUG][       Thread-604005][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:06:16,307 [DEBUG][       Thread-604005][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:06:16,307 [DEBUG][       Thread-604005][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:06:16,307 [DEBUG][       Thread-604005][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:06:16,307 [DEBUG][       Thread-604005][   transport.py][1871] : client lang: <none>
2025-07-01 12:06:16,307 [DEBUG][       Thread-604005][   transport.py][1871] : server lang: <none>
2025-07-01 12:06:16,307 [DEBUG][       Thread-604005][   transport.py][1871] : kex follows: False
2025-07-01 12:06:16,307 [DEBUG][       Thread-604005][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:06:16,307 [DEBUG][       Thread-604005][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:06:16,307 [DEBUG][       Thread-604005][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:06:16,307 [DEBUG][       Thread-604005][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:06:16,307 [DEBUG][       Thread-604005][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:06:16,307 [DEBUG][       Thread-604005][   transport.py][1871] : Compression: none
2025-07-01 12:06:16,308 [DEBUG][       Thread-604005][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:06:16,363 [DEBUG][       Thread-604005][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:06:16,363 [DEBUG][       Thread-604005][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:06:16,364 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:06:16,364 [DEBUG][       Thread-604005][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:06:16,365 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:06:16,419 [DEBUG][       Thread-604005][   transport.py][1871] : userauth is OK
2025-07-01 12:06:16,419 [DEBUG][       Thread-604005][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:06:16,419 [DEBUG][       Thread-604005][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:06:16,419 [DEBUG][       Thread-604005][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:06:16,419 [DEBUG][       Thread-604005][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:06:16,438 [ INFO][       Thread-604005][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:06:16,438 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:06:16,439 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:06:17,380 [DEBUG][       Thread-604005][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:06:17,380 [DEBUG][       Thread-604005][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:06:17,430 [DEBUG][       Thread-604005][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:06:17,430 [DEBUG][       Thread-604005][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:06:17,442 [DEBUG][       Thread-604005][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:06:17,451 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:06:17,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-07-01 12:06:17,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-07-01 12:06:17,470 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:06:17,471 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:06:17,471 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:06:17,488 [DEBUG][       Thread-604005][   transport.py][1871] : EOF in transport thread
2025-07-01 12:06:20,920 [DEBUG][Thread-604007 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:06:27,482 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:06:27,482 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:06:27,482 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:06:27,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-07-01 12:06:27,992 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 6, 5), 9.74, 51.17, 0.0, 30.97, 11.08, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:06:27,992 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:06:05
2025-07-01 12:06:28,078 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:06:28,085 [DEBUG][       Thread-604008][   transport.py][1871] : starting thread (client mode): 0x82b15d0
2025-07-01 12:06:28,085 [DEBUG][       Thread-604008][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:06:28,107 [DEBUG][       Thread-604008][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:06:28,107 [ INFO][       Thread-604008][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:06:28,110 [DEBUG][       Thread-604008][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:06:28,111 [DEBUG][       Thread-604008][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:06:28,111 [DEBUG][       Thread-604008][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:06:28,111 [DEBUG][       Thread-604008][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:06:28,111 [DEBUG][       Thread-604008][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:06:28,111 [DEBUG][       Thread-604008][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:06:28,111 [DEBUG][       Thread-604008][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:06:28,111 [DEBUG][       Thread-604008][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:06:28,111 [DEBUG][       Thread-604008][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:06:28,111 [DEBUG][       Thread-604008][   transport.py][1871] : client lang: <none>
2025-07-01 12:06:28,111 [DEBUG][       Thread-604008][   transport.py][1871] : server lang: <none>
2025-07-01 12:06:28,111 [DEBUG][       Thread-604008][   transport.py][1871] : kex follows: False
2025-07-01 12:06:28,111 [DEBUG][       Thread-604008][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:06:28,111 [DEBUG][       Thread-604008][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:06:28,111 [DEBUG][       Thread-604008][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:06:28,111 [DEBUG][       Thread-604008][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:06:28,111 [DEBUG][       Thread-604008][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:06:28,111 [DEBUG][       Thread-604008][   transport.py][1871] : Compression: none
2025-07-01 12:06:28,111 [DEBUG][       Thread-604008][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:06:28,128 [DEBUG][       Thread-604008][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:06:28,128 [DEBUG][       Thread-604008][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:06:28,128 [DEBUG][       Thread-604008][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:06:28,128 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:06:28,128 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:06:28,129 [DEBUG][       Thread-604008][   transport.py][1871] : userauth is OK
2025-07-01 12:06:28,154 [ INFO][       Thread-604008][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:06:28,154 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:06:28,155 [DEBUG][Thread-604010 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:06:28,905 [DEBUG][       Thread-604008][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:06:28,905 [DEBUG][       Thread-604008][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:06:28,949 [DEBUG][       Thread-604008][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:06:28,949 [DEBUG][       Thread-604008][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:06:28,952 [DEBUG][       Thread-604008][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:06:28,966 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:06:28,966 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:06:28,967 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:06:28,968 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:06:28,971 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:06:28,972 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:06:28,972 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:06:28,972 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:06:28,972 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.420777 -999.00  +11.00  38.67     55   +2.50 1 1 2 1 1   888    0 8.73 5.33 ----- 38.7 38.7 29.2 46.2 13.8 -24.0 13.1 -24.4 12.8 -23.1 13.5 -22.7
2025-07-01 12:06:28,972 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:06:28,972 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:06:28,972 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.420777
2025-07-01 12:06:28,972 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:06:28,972 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:06:28,972 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:06:28,972 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:06:28,972 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:06:28,972 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:06:05', tmtdew=9.74, humidity=51.17, cloud=0.0, wind=30.97, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:05:55.133', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:06:28,973 [DEBUG][       Thread-604008][   transport.py][1871] : EOF in transport thread
2025-07-01 12:06:29,044 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:06:29,054 [DEBUG][       Thread-604012][   transport.py][1871] : starting thread (client mode): 0x8172bc0
2025-07-01 12:06:29,054 [DEBUG][       Thread-604012][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:06:29,069 [DEBUG][       Thread-604012][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:06:29,069 [ INFO][       Thread-604012][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:06:29,076 [DEBUG][       Thread-604012][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:06:29,076 [DEBUG][       Thread-604012][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:06:29,076 [DEBUG][       Thread-604012][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:06:29,076 [DEBUG][       Thread-604012][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:06:29,076 [DEBUG][       Thread-604012][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:06:29,076 [DEBUG][       Thread-604012][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:06:29,076 [DEBUG][       Thread-604012][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:06:29,076 [DEBUG][       Thread-604012][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:06:29,076 [DEBUG][       Thread-604012][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:06:29,076 [DEBUG][       Thread-604012][   transport.py][1871] : client lang: <none>
2025-07-01 12:06:29,076 [DEBUG][       Thread-604012][   transport.py][1871] : server lang: <none>
2025-07-01 12:06:29,076 [DEBUG][       Thread-604012][   transport.py][1871] : kex follows: False
2025-07-01 12:06:29,076 [DEBUG][       Thread-604012][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:06:29,076 [DEBUG][       Thread-604012][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:06:29,076 [DEBUG][       Thread-604012][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:06:29,077 [DEBUG][       Thread-604012][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:06:29,077 [DEBUG][       Thread-604012][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:06:29,077 [DEBUG][       Thread-604012][   transport.py][1871] : Compression: none
2025-07-01 12:06:29,077 [DEBUG][       Thread-604012][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:06:29,135 [DEBUG][       Thread-604012][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:06:29,135 [DEBUG][       Thread-604012][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:06:29,136 [DEBUG][       Thread-604012][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:06:29,136 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:06:29,136 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:06:29,192 [DEBUG][       Thread-604012][   transport.py][1871] : userauth is OK
2025-07-01 12:06:29,192 [DEBUG][       Thread-604012][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:06:29,192 [DEBUG][       Thread-604012][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:06:29,192 [DEBUG][       Thread-604012][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:06:29,192 [DEBUG][       Thread-604012][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:06:29,215 [ INFO][       Thread-604012][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:06:29,216 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:06:29,216 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:06:29,955 [DEBUG][Thread-604014 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:06:30,193 [DEBUG][       Thread-604012][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:06:30,193 [DEBUG][       Thread-604012][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:06:30,244 [DEBUG][       Thread-604012][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:06:30,244 [DEBUG][       Thread-604012][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:06:30,253 [DEBUG][       Thread-604012][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:06:30,262 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:06:30,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-07-01 12:06:30,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-07-01 12:06:30,281 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:06:30,281 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:06:30,282 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:06:30,290 [DEBUG][       Thread-604012][   transport.py][1871] : EOF in transport thread
2025-07-01 12:06:38,980 [DEBUG][Thread-604015 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:06:40,292 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:06:40,292 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:06:40,292 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:06:40,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-07-01 12:06:40,803 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 6, 37), 9.82, 50.83, 0.0, 36.59, 11.13, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:06:40,803 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:06:37
2025-07-01 12:06:40,890 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:06:40,894 [DEBUG][       Thread-604016][   transport.py][1871] : starting thread (client mode): 0x8105f90
2025-07-01 12:06:40,894 [DEBUG][       Thread-604016][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:06:40,915 [DEBUG][       Thread-604016][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:06:40,915 [ INFO][       Thread-604016][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:06:40,917 [DEBUG][       Thread-604016][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:06:40,917 [DEBUG][       Thread-604016][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:06:40,917 [DEBUG][       Thread-604016][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:06:40,917 [DEBUG][       Thread-604016][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:06:40,917 [DEBUG][       Thread-604016][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:06:40,917 [DEBUG][       Thread-604016][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:06:40,917 [DEBUG][       Thread-604016][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:06:40,917 [DEBUG][       Thread-604016][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:06:40,917 [DEBUG][       Thread-604016][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:06:40,917 [DEBUG][       Thread-604016][   transport.py][1871] : client lang: <none>
2025-07-01 12:06:40,917 [DEBUG][       Thread-604016][   transport.py][1871] : server lang: <none>
2025-07-01 12:06:40,917 [DEBUG][       Thread-604016][   transport.py][1871] : kex follows: False
2025-07-01 12:06:40,917 [DEBUG][       Thread-604016][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:06:40,917 [DEBUG][       Thread-604016][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:06:40,917 [DEBUG][       Thread-604016][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:06:40,917 [DEBUG][       Thread-604016][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:06:40,917 [DEBUG][       Thread-604016][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:06:40,917 [DEBUG][       Thread-604016][   transport.py][1871] : Compression: none
2025-07-01 12:06:40,917 [DEBUG][       Thread-604016][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:06:40,928 [DEBUG][       Thread-604016][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:06:40,928 [DEBUG][       Thread-604016][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:06:40,928 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:06:40,929 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:06:40,929 [DEBUG][       Thread-604016][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:06:40,929 [DEBUG][       Thread-604016][   transport.py][1871] : userauth is OK
2025-07-01 12:06:40,954 [ INFO][       Thread-604016][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:06:40,954 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:06:41,588 [DEBUG][       Thread-604016][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:06:41,589 [DEBUG][       Thread-604016][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:06:41,633 [DEBUG][       Thread-604016][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:06:41,633 [DEBUG][       Thread-604016][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:06:41,636 [DEBUG][       Thread-604016][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:06:41,647 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:06:41,647 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:06:41,649 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:06:41,651 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:06:41,656 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:06:41,658 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:06:41,658 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:06:41,658 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:06:41,658 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.421124 -999.00  +11.00  46.58     55   +2.40 1 1 2 1 1   888    0 8.79 4.77 ----- 46.6 46.6 28.4 57.9 13.9 -23.8 13.1 -25.3 12.9 -23.1 13.6 -23.3
2025-07-01 12:06:41,658 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:06:41,659 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:06:41,659 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.421124
2025-07-01 12:06:41,659 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:06:41,659 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:06:41,660 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:06:41,660 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:06:41,660 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:06:41,660 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:06:37', tmtdew=9.82, humidity=50.83, cloud=0.0, wind=36.59, temperature=11.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:06:25.114', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:06:41,661 [DEBUG][       Thread-604016][   transport.py][1871] : EOF in transport thread
2025-07-01 12:06:41,745 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:06:41,755 [DEBUG][       Thread-604019][   transport.py][1871] : starting thread (client mode): 0x8a671f0
2025-07-01 12:06:41,755 [DEBUG][       Thread-604019][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:06:41,770 [DEBUG][       Thread-604019][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:06:41,770 [ INFO][       Thread-604019][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:06:41,778 [DEBUG][       Thread-604019][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:06:41,778 [DEBUG][       Thread-604019][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:06:41,778 [DEBUG][       Thread-604019][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:06:41,778 [DEBUG][       Thread-604019][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:06:41,778 [DEBUG][       Thread-604019][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:06:41,778 [DEBUG][       Thread-604019][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:06:41,778 [DEBUG][       Thread-604019][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:06:41,778 [DEBUG][       Thread-604019][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:06:41,778 [DEBUG][       Thread-604019][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:06:41,778 [DEBUG][       Thread-604019][   transport.py][1871] : client lang: <none>
2025-07-01 12:06:41,778 [DEBUG][       Thread-604019][   transport.py][1871] : server lang: <none>
2025-07-01 12:06:41,779 [DEBUG][       Thread-604019][   transport.py][1871] : kex follows: False
2025-07-01 12:06:41,779 [DEBUG][       Thread-604019][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:06:41,779 [DEBUG][       Thread-604019][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:06:41,779 [DEBUG][       Thread-604019][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:06:41,779 [DEBUG][       Thread-604019][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:06:41,779 [DEBUG][       Thread-604019][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:06:41,779 [DEBUG][       Thread-604019][   transport.py][1871] : Compression: none
2025-07-01 12:06:41,779 [DEBUG][       Thread-604019][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:06:41,835 [DEBUG][       Thread-604019][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:06:41,836 [DEBUG][       Thread-604019][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:06:41,836 [DEBUG][       Thread-604019][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:06:41,837 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:06:41,837 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:06:41,897 [DEBUG][       Thread-604019][   transport.py][1871] : userauth is OK
2025-07-01 12:06:41,898 [DEBUG][       Thread-604019][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:06:41,898 [DEBUG][       Thread-604019][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:06:41,898 [DEBUG][       Thread-604019][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:06:41,898 [DEBUG][       Thread-604019][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:06:41,916 [ INFO][       Thread-604019][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:06:41,917 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:06:41,917 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:06:42,901 [DEBUG][       Thread-604019][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:06:42,902 [DEBUG][       Thread-604019][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:06:42,952 [DEBUG][       Thread-604019][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:06:42,952 [DEBUG][       Thread-604019][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:06:42,961 [DEBUG][       Thread-604019][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:06:42,970 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:06:42,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-07-01 12:06:42,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-07-01 12:06:42,989 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:06:42,989 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:06:42,990 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:06:42,998 [DEBUG][       Thread-604019][   transport.py][1871] : EOF in transport thread
2025-07-01 12:06:47,999 [DEBUG][Thread-604021 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:06:52,991 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:06:52,991 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:06:52,991 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:06:52,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-07-01 12:06:53,498 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 6, 37), 9.82, 50.83, 0.0, 36.59, 11.13, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:06:53,498 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:06:37
2025-07-01 12:06:53,584 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:06:53,590 [DEBUG][       Thread-604022][   transport.py][1871] : starting thread (client mode): 0x8172830
2025-07-01 12:06:53,590 [DEBUG][       Thread-604022][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:06:53,611 [DEBUG][       Thread-604022][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:06:53,611 [ INFO][       Thread-604022][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:06:53,614 [DEBUG][       Thread-604022][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:06:53,614 [DEBUG][       Thread-604022][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:06:53,614 [DEBUG][       Thread-604022][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:06:53,614 [DEBUG][       Thread-604022][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:06:53,614 [DEBUG][       Thread-604022][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:06:53,614 [DEBUG][       Thread-604022][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:06:53,614 [DEBUG][       Thread-604022][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:06:53,614 [DEBUG][       Thread-604022][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:06:53,614 [DEBUG][       Thread-604022][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:06:53,614 [DEBUG][       Thread-604022][   transport.py][1871] : client lang: <none>
2025-07-01 12:06:53,614 [DEBUG][       Thread-604022][   transport.py][1871] : server lang: <none>
2025-07-01 12:06:53,615 [DEBUG][       Thread-604022][   transport.py][1871] : kex follows: False
2025-07-01 12:06:53,615 [DEBUG][       Thread-604022][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:06:53,615 [DEBUG][       Thread-604022][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:06:53,615 [DEBUG][       Thread-604022][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:06:53,615 [DEBUG][       Thread-604022][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:06:53,615 [DEBUG][       Thread-604022][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:06:53,615 [DEBUG][       Thread-604022][   transport.py][1871] : Compression: none
2025-07-01 12:06:53,615 [DEBUG][       Thread-604022][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:06:53,632 [DEBUG][       Thread-604022][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:06:53,632 [DEBUG][       Thread-604022][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:06:53,633 [DEBUG][       Thread-604022][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:06:53,633 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:06:53,633 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:06:53,634 [DEBUG][       Thread-604022][   transport.py][1871] : userauth is OK
2025-07-01 12:06:53,647 [ INFO][       Thread-604022][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:06:53,648 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:06:54,464 [DEBUG][       Thread-604022][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:06:54,465 [DEBUG][       Thread-604022][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:06:54,509 [DEBUG][       Thread-604022][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:06:54,509 [DEBUG][       Thread-604022][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:06:54,513 [DEBUG][       Thread-604022][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:06:54,524 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:06:54,524 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:06:54,526 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:06:54,528 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:06:54,534 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:06:54,536 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:06:54,536 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:06:54,537 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:06:54,537 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.421124 -999.00  +11.00  46.58     55   +2.40 1 1 2 1 1   888    0 8.79 4.77 ----- 46.6 46.6 28.4 57.9 13.9 -23.8 13.1 -25.3 12.9 -23.1 13.6 -23.3
2025-07-01 12:06:54,537 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:06:54,537 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:06:54,537 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.421124
2025-07-01 12:06:54,538 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:06:54,538 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:06:54,538 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:06:54,538 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:06:54,539 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:06:54,539 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:06:37', tmtdew=9.82, humidity=50.83, cloud=0.0, wind=36.59, temperature=11.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:06:25.114', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:06:54,540 [DEBUG][       Thread-604022][   transport.py][1871] : EOF in transport thread
2025-07-01 12:06:54,622 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:06:54,633 [DEBUG][       Thread-604025][   transport.py][1871] : starting thread (client mode): 0x8a671f0
2025-07-01 12:06:54,633 [DEBUG][       Thread-604025][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:06:54,648 [DEBUG][       Thread-604025][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:06:54,648 [ INFO][       Thread-604025][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:06:54,660 [DEBUG][       Thread-604025][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:06:54,660 [DEBUG][       Thread-604025][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:06:54,660 [DEBUG][       Thread-604025][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:06:54,660 [DEBUG][       Thread-604025][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:06:54,660 [DEBUG][       Thread-604025][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:06:54,660 [DEBUG][       Thread-604025][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:06:54,660 [DEBUG][       Thread-604025][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:06:54,660 [DEBUG][       Thread-604025][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:06:54,660 [DEBUG][       Thread-604025][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:06:54,660 [DEBUG][       Thread-604025][   transport.py][1871] : client lang: <none>
2025-07-01 12:06:54,660 [DEBUG][       Thread-604025][   transport.py][1871] : server lang: <none>
2025-07-01 12:06:54,660 [DEBUG][       Thread-604025][   transport.py][1871] : kex follows: False
2025-07-01 12:06:54,661 [DEBUG][       Thread-604025][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:06:54,661 [DEBUG][       Thread-604025][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:06:54,661 [DEBUG][       Thread-604025][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:06:54,661 [DEBUG][       Thread-604025][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:06:54,661 [DEBUG][       Thread-604025][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:06:54,661 [DEBUG][       Thread-604025][   transport.py][1871] : Compression: none
2025-07-01 12:06:54,661 [DEBUG][       Thread-604025][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:06:54,715 [DEBUG][       Thread-604025][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:06:54,716 [DEBUG][       Thread-604025][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:06:54,716 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:06:54,717 [DEBUG][       Thread-604025][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:06:54,718 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:06:54,776 [DEBUG][       Thread-604025][   transport.py][1871] : userauth is OK
2025-07-01 12:06:54,776 [DEBUG][       Thread-604025][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:06:54,776 [DEBUG][       Thread-604025][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:06:54,776 [DEBUG][       Thread-604025][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:06:54,776 [DEBUG][       Thread-604025][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:06:54,795 [ INFO][       Thread-604025][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:06:54,795 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:06:54,796 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:06:55,783 [DEBUG][       Thread-604025][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:06:55,783 [DEBUG][       Thread-604025][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:06:55,832 [DEBUG][       Thread-604025][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:06:55,832 [DEBUG][       Thread-604025][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:06:55,841 [DEBUG][       Thread-604025][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:06:55,850 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:06:55,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-07-01 12:06:55,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') -> 00000000
2025-07-01 12:06:55,869 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:06:55,869 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:06:55,870 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:06:55,878 [DEBUG][       Thread-604025][   transport.py][1871] : EOF in transport thread
2025-07-01 12:06:57,039 [DEBUG][Thread-604027 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:07:05,876 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:07:05,876 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:07:05,876 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:07:05,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-07-01 12:07:06,058 [DEBUG][Thread-604028 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:07:06,366 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 6, 37), 9.82, 50.83, 0.0, 36.59, 11.13, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:07:06,366 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:06:37
2025-07-01 12:07:06,453 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:07:06,457 [DEBUG][       Thread-604029][   transport.py][1871] : starting thread (client mode): 0x8170a00
2025-07-01 12:07:06,457 [DEBUG][       Thread-604029][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:07:06,477 [DEBUG][       Thread-604029][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:07:06,477 [ INFO][       Thread-604029][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:07:06,478 [DEBUG][       Thread-604029][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:07:06,478 [DEBUG][       Thread-604029][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:07:06,478 [DEBUG][       Thread-604029][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:07:06,478 [DEBUG][       Thread-604029][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:07:06,478 [DEBUG][       Thread-604029][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:07:06,478 [DEBUG][       Thread-604029][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:07:06,478 [DEBUG][       Thread-604029][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:07:06,478 [DEBUG][       Thread-604029][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:07:06,478 [DEBUG][       Thread-604029][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:07:06,478 [DEBUG][       Thread-604029][   transport.py][1871] : client lang: <none>
2025-07-01 12:07:06,478 [DEBUG][       Thread-604029][   transport.py][1871] : server lang: <none>
2025-07-01 12:07:06,478 [DEBUG][       Thread-604029][   transport.py][1871] : kex follows: False
2025-07-01 12:07:06,478 [DEBUG][       Thread-604029][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:07:06,478 [DEBUG][       Thread-604029][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:07:06,478 [DEBUG][       Thread-604029][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:07:06,479 [DEBUG][       Thread-604029][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:07:06,479 [DEBUG][       Thread-604029][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:07:06,479 [DEBUG][       Thread-604029][   transport.py][1871] : Compression: none
2025-07-01 12:07:06,479 [DEBUG][       Thread-604029][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:07:06,487 [DEBUG][       Thread-604029][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:07:06,487 [DEBUG][       Thread-604029][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:07:06,487 [DEBUG][       Thread-604029][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:07:06,487 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:07:06,488 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:07:06,489 [DEBUG][       Thread-604029][   transport.py][1871] : userauth is OK
2025-07-01 12:07:06,501 [ INFO][       Thread-604029][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:07:06,502 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:07:07,294 [DEBUG][       Thread-604029][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:07:07,294 [DEBUG][       Thread-604029][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:07:07,336 [DEBUG][       Thread-604029][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:07:07,337 [DEBUG][       Thread-604029][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:07:07,339 [DEBUG][       Thread-604029][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:07:07,352 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:07:07,352 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:07:07,354 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:07:07,355 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:07:07,360 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:07:07,361 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:07:07,361 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:07:07,362 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:07:07,362 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.421124 -999.00  +11.00  46.58     55   +2.40 1 1 2 1 1   888    0 8.79 4.77 ----- 46.6 46.6 28.4 57.9 13.9 -23.8 13.1 -25.3 12.9 -23.1 13.6 -23.3
2025-07-01 12:07:07,362 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:07:07,362 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:07:07,362 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.421124
2025-07-01 12:07:07,363 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:07:07,363 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:07:07,363 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:07:07,363 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:07:07,363 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:07:07,363 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:06:37', tmtdew=9.82, humidity=50.83, cloud=0.0, wind=36.59, temperature=11.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:06:25.114', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:07:07,364 [DEBUG][       Thread-604029][   transport.py][1871] : EOF in transport thread
2025-07-01 12:07:07,447 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:07:07,456 [DEBUG][       Thread-604032][   transport.py][1871] : starting thread (client mode): 0x83c82e0
2025-07-01 12:07:07,456 [DEBUG][       Thread-604032][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:07:07,471 [DEBUG][       Thread-604032][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:07:07,471 [ INFO][       Thread-604032][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:07:07,478 [DEBUG][       Thread-604032][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:07:07,478 [DEBUG][       Thread-604032][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:07:07,478 [DEBUG][       Thread-604032][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:07:07,478 [DEBUG][       Thread-604032][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:07:07,478 [DEBUG][       Thread-604032][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:07:07,478 [DEBUG][       Thread-604032][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:07:07,479 [DEBUG][       Thread-604032][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:07:07,479 [DEBUG][       Thread-604032][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:07:07,479 [DEBUG][       Thread-604032][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:07:07,479 [DEBUG][       Thread-604032][   transport.py][1871] : client lang: <none>
2025-07-01 12:07:07,479 [DEBUG][       Thread-604032][   transport.py][1871] : server lang: <none>
2025-07-01 12:07:07,479 [DEBUG][       Thread-604032][   transport.py][1871] : kex follows: False
2025-07-01 12:07:07,479 [DEBUG][       Thread-604032][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:07:07,479 [DEBUG][       Thread-604032][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:07:07,479 [DEBUG][       Thread-604032][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:07:07,479 [DEBUG][       Thread-604032][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:07:07,479 [DEBUG][       Thread-604032][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:07:07,479 [DEBUG][       Thread-604032][   transport.py][1871] : Compression: none
2025-07-01 12:07:07,479 [DEBUG][       Thread-604032][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:07:07,539 [DEBUG][       Thread-604032][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:07:07,540 [DEBUG][       Thread-604032][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:07:07,540 [DEBUG][       Thread-604032][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:07:07,540 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:07:07,541 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:07:07,595 [DEBUG][       Thread-604032][   transport.py][1871] : userauth is OK
2025-07-01 12:07:07,595 [DEBUG][       Thread-604032][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:07:07,595 [DEBUG][       Thread-604032][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:07:07,595 [DEBUG][       Thread-604032][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:07:07,595 [DEBUG][       Thread-604032][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:07:07,617 [ INFO][       Thread-604032][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:07:07,618 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:07:07,618 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:07:08,683 [DEBUG][       Thread-604032][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:07:08,684 [DEBUG][       Thread-604032][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:07:08,735 [DEBUG][       Thread-604032][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:07:08,735 [DEBUG][       Thread-604032][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:07:08,744 [DEBUG][       Thread-604032][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:07:08,752 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:07:08,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-07-01 12:07:08,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-07-01 12:07:08,769 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:07:08,769 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:07:08,770 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:07:08,777 [DEBUG][       Thread-604032][   transport.py][1871] : EOF in transport thread
2025-07-01 12:07:13,184 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:07:13,185 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:07:15,078 [DEBUG][Thread-604034 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:07:18,771 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:07:18,771 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:07:18,771 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:07:18,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-07-01 12:07:19,256 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 7, 8), 9.9, 50.67, 0.0, 35.02, 11.17, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:07:19,256 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:07:08
2025-07-01 12:07:19,343 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:07:19,349 [DEBUG][       Thread-604035][   transport.py][1871] : starting thread (client mode): 0x8171c90
2025-07-01 12:07:19,349 [DEBUG][       Thread-604035][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:07:19,368 [DEBUG][       Thread-604035][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:07:19,368 [ INFO][       Thread-604035][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:07:19,371 [DEBUG][       Thread-604035][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:07:19,372 [DEBUG][       Thread-604035][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:07:19,372 [DEBUG][       Thread-604035][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:07:19,372 [DEBUG][       Thread-604035][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:07:19,372 [DEBUG][       Thread-604035][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:07:19,372 [DEBUG][       Thread-604035][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:07:19,372 [DEBUG][       Thread-604035][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:07:19,372 [DEBUG][       Thread-604035][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:07:19,372 [DEBUG][       Thread-604035][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:07:19,372 [DEBUG][       Thread-604035][   transport.py][1871] : client lang: <none>
2025-07-01 12:07:19,372 [DEBUG][       Thread-604035][   transport.py][1871] : server lang: <none>
2025-07-01 12:07:19,372 [DEBUG][       Thread-604035][   transport.py][1871] : kex follows: False
2025-07-01 12:07:19,372 [DEBUG][       Thread-604035][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:07:19,372 [DEBUG][       Thread-604035][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:07:19,372 [DEBUG][       Thread-604035][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:07:19,372 [DEBUG][       Thread-604035][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:07:19,372 [DEBUG][       Thread-604035][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:07:19,372 [DEBUG][       Thread-604035][   transport.py][1871] : Compression: none
2025-07-01 12:07:19,372 [DEBUG][       Thread-604035][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:07:19,389 [DEBUG][       Thread-604035][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:07:19,390 [DEBUG][       Thread-604035][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:07:19,390 [DEBUG][       Thread-604035][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:07:19,391 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:07:19,391 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:07:19,392 [DEBUG][       Thread-604035][   transport.py][1871] : userauth is OK
2025-07-01 12:07:19,405 [ INFO][       Thread-604035][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:07:19,405 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:07:20,062 [DEBUG][       Thread-604035][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:07:20,062 [DEBUG][       Thread-604035][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:07:20,105 [DEBUG][       Thread-604035][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:07:20,105 [DEBUG][       Thread-604035][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:07:20,108 [DEBUG][       Thread-604035][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:07:20,123 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:07:20,124 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:07:20,125 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:07:20,127 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:07:20,132 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:07:20,134 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:07:20,134 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:07:20,135 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:07:20,135 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.421472 -999.00  +11.00  35.82     55   +2.40 1 1 2 1 1   888    0 8.82 4.79 ----- 35.8 35.8 42.0 52.0 14.0 -23.4 13.2 -24.0 12.9 -22.8 13.6 -21.8
2025-07-01 12:07:20,135 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:07:20,135 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:07:20,135 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.421472
2025-07-01 12:07:20,136 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:07:20,136 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:07:20,137 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:07:20,137 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:07:20,137 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:07:20,137 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:07:08', tmtdew=9.9, humidity=50.67, cloud=0.0, wind=35.02, temperature=11.17, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:06:55.181', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:07:20,138 [DEBUG][       Thread-604035][   transport.py][1871] : EOF in transport thread
2025-07-01 12:07:20,220 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:07:20,235 [DEBUG][       Thread-604038][   transport.py][1871] : starting thread (client mode): 0x8171510
2025-07-01 12:07:20,235 [DEBUG][       Thread-604038][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:07:20,251 [DEBUG][       Thread-604038][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:07:20,252 [ INFO][       Thread-604038][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:07:20,259 [DEBUG][       Thread-604038][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:07:20,259 [DEBUG][       Thread-604038][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:07:20,259 [DEBUG][       Thread-604038][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:07:20,259 [DEBUG][       Thread-604038][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:07:20,259 [DEBUG][       Thread-604038][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:07:20,259 [DEBUG][       Thread-604038][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:07:20,259 [DEBUG][       Thread-604038][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:07:20,259 [DEBUG][       Thread-604038][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:07:20,260 [DEBUG][       Thread-604038][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:07:20,260 [DEBUG][       Thread-604038][   transport.py][1871] : client lang: <none>
2025-07-01 12:07:20,260 [DEBUG][       Thread-604038][   transport.py][1871] : server lang: <none>
2025-07-01 12:07:20,260 [DEBUG][       Thread-604038][   transport.py][1871] : kex follows: False
2025-07-01 12:07:20,260 [DEBUG][       Thread-604038][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:07:20,260 [DEBUG][       Thread-604038][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:07:20,260 [DEBUG][       Thread-604038][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:07:20,260 [DEBUG][       Thread-604038][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:07:20,260 [DEBUG][       Thread-604038][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:07:20,260 [DEBUG][       Thread-604038][   transport.py][1871] : Compression: none
2025-07-01 12:07:20,260 [DEBUG][       Thread-604038][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:07:20,327 [DEBUG][       Thread-604038][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:07:20,328 [DEBUG][       Thread-604038][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:07:20,328 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:07:20,329 [DEBUG][       Thread-604038][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:07:20,329 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:07:20,383 [DEBUG][       Thread-604038][   transport.py][1871] : userauth is OK
2025-07-01 12:07:20,384 [DEBUG][       Thread-604038][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:07:20,384 [DEBUG][       Thread-604038][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:07:20,384 [DEBUG][       Thread-604038][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:07:20,384 [DEBUG][       Thread-604038][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:07:20,404 [ INFO][       Thread-604038][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:07:20,405 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:07:20,405 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:07:21,430 [DEBUG][       Thread-604038][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:07:21,431 [DEBUG][       Thread-604038][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:07:21,487 [DEBUG][       Thread-604038][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:07:21,487 [DEBUG][       Thread-604038][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:07:21,499 [DEBUG][       Thread-604038][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:07:21,512 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:07:21,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-07-01 12:07: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-07-01 12:07:21,531 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:07:21,531 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:07:21,531 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:07:21,539 [DEBUG][       Thread-604038][   transport.py][1871] : EOF in transport thread
2025-07-01 12:07:24,100 [DEBUG][Thread-604040 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:07:28,203 [DEBUG][Thread-604041 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:07:31,534 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:07:31,534 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:07:31,534 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:07:31,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-07-01 12:07:32,033 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 7, 8), 9.9, 50.67, 0.0, 35.02, 11.17, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:07:32,033 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:07:08
2025-07-01 12:07:32,119 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:07:32,126 [DEBUG][       Thread-604042][   transport.py][1871] : starting thread (client mode): 0x82b1690
2025-07-01 12:07:32,126 [DEBUG][       Thread-604042][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:07:32,147 [DEBUG][       Thread-604042][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:07:32,147 [ INFO][       Thread-604042][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:07:32,150 [DEBUG][       Thread-604042][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:07:32,150 [DEBUG][       Thread-604042][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:07:32,150 [DEBUG][       Thread-604042][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:07:32,150 [DEBUG][       Thread-604042][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:07:32,150 [DEBUG][       Thread-604042][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:07:32,150 [DEBUG][       Thread-604042][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:07:32,150 [DEBUG][       Thread-604042][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:07:32,150 [DEBUG][       Thread-604042][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:07:32,150 [DEBUG][       Thread-604042][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:07:32,150 [DEBUG][       Thread-604042][   transport.py][1871] : client lang: <none>
2025-07-01 12:07:32,150 [DEBUG][       Thread-604042][   transport.py][1871] : server lang: <none>
2025-07-01 12:07:32,150 [DEBUG][       Thread-604042][   transport.py][1871] : kex follows: False
2025-07-01 12:07:32,150 [DEBUG][       Thread-604042][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:07:32,150 [DEBUG][       Thread-604042][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:07:32,150 [DEBUG][       Thread-604042][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:07:32,150 [DEBUG][       Thread-604042][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:07:32,150 [DEBUG][       Thread-604042][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:07:32,150 [DEBUG][       Thread-604042][   transport.py][1871] : Compression: none
2025-07-01 12:07:32,150 [DEBUG][       Thread-604042][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:07:32,169 [DEBUG][       Thread-604042][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:07:32,170 [DEBUG][       Thread-604042][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:07:32,170 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:07:32,170 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:07:32,171 [DEBUG][       Thread-604042][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:07:32,171 [DEBUG][       Thread-604042][   transport.py][1871] : userauth is OK
2025-07-01 12:07:32,196 [ INFO][       Thread-604042][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:07:32,196 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:07:32,978 [DEBUG][       Thread-604042][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:07:32,978 [DEBUG][       Thread-604042][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:07:33,021 [DEBUG][       Thread-604042][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:07:33,021 [DEBUG][       Thread-604042][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:07:33,025 [DEBUG][       Thread-604042][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:07:33,036 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:07:33,036 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:07:33,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:07:33,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:07:33,045 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:07:33,047 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:07:33,047 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:07:33,048 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:07:33,048 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.421472 -999.00  +11.00  35.82     55   +2.40 1 1 2 1 1   888    0 8.82 4.79 ----- 35.8 35.8 42.0 52.0 14.0 -23.4 13.2 -24.0 12.9 -22.8 13.6 -21.8
2025-07-01 12:07:33,048 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:07:33,048 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:07:33,048 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.421472
2025-07-01 12:07:33,049 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:07:33,049 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:07:33,049 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:07:33,049 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:07:33,050 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:07:33,050 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:07:08', tmtdew=9.9, humidity=50.67, cloud=0.0, wind=35.02, temperature=11.17, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:06:55.181', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:07:33,050 [DEBUG][       Thread-604042][   transport.py][1871] : EOF in transport thread
2025-07-01 12:07:33,122 [DEBUG][Thread-604045 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:07:33,133 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:07:33,145 [DEBUG][       Thread-604046][   transport.py][1871] : starting thread (client mode): 0x8155720
2025-07-01 12:07:33,145 [DEBUG][       Thread-604046][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:07:33,160 [DEBUG][       Thread-604046][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:07:33,160 [ INFO][       Thread-604046][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:07:33,168 [DEBUG][       Thread-604046][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:07:33,168 [DEBUG][       Thread-604046][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:07:33,168 [DEBUG][       Thread-604046][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:07:33,168 [DEBUG][       Thread-604046][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:07:33,168 [DEBUG][       Thread-604046][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:07:33,168 [DEBUG][       Thread-604046][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:07:33,168 [DEBUG][       Thread-604046][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:07:33,168 [DEBUG][       Thread-604046][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:07:33,168 [DEBUG][       Thread-604046][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:07:33,168 [DEBUG][       Thread-604046][   transport.py][1871] : client lang: <none>
2025-07-01 12:07:33,168 [DEBUG][       Thread-604046][   transport.py][1871] : server lang: <none>
2025-07-01 12:07:33,168 [DEBUG][       Thread-604046][   transport.py][1871] : kex follows: False
2025-07-01 12:07:33,168 [DEBUG][       Thread-604046][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:07:33,168 [DEBUG][       Thread-604046][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:07:33,168 [DEBUG][       Thread-604046][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:07:33,169 [DEBUG][       Thread-604046][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:07:33,169 [DEBUG][       Thread-604046][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:07:33,169 [DEBUG][       Thread-604046][   transport.py][1871] : Compression: none
2025-07-01 12:07:33,169 [DEBUG][       Thread-604046][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:07:33,232 [DEBUG][       Thread-604046][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:07:33,232 [DEBUG][       Thread-604046][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:07:33,233 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:07:33,234 [DEBUG][       Thread-604046][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:07:33,234 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:07:33,287 [DEBUG][       Thread-604046][   transport.py][1871] : userauth is OK
2025-07-01 12:07:33,288 [DEBUG][       Thread-604046][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:07:33,288 [DEBUG][       Thread-604046][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:07:33,288 [DEBUG][       Thread-604046][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:07:33,288 [DEBUG][       Thread-604046][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:07:33,306 [ INFO][       Thread-604046][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:07:33,306 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:07:33,307 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:07:34,267 [DEBUG][       Thread-604046][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:07:34,267 [DEBUG][       Thread-604046][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:07:34,315 [DEBUG][       Thread-604046][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:07:34,315 [DEBUG][       Thread-604046][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:07:34,324 [DEBUG][       Thread-604046][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:07:34,332 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:07:34,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-07-01 12:07:34,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-07-01 12:07:34,348 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:07:34,348 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:07:34,348 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:07:34,356 [DEBUG][       Thread-604046][   transport.py][1871] : EOF in transport thread
2025-07-01 12:07:42,141 [DEBUG][Thread-604048 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:07:44,359 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:07:44,359 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:07:44,359 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:07:44,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-07-01 12:07:44,858 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 7, 40), 9.91, 50.63, 0.0, 39.45, 11.14, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:07:44,858 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:07:40
2025-07-01 12:07:44,945 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:07:44,949 [DEBUG][       Thread-604049][   transport.py][1871] : starting thread (client mode): 0x82b3c10
2025-07-01 12:07:44,950 [DEBUG][       Thread-604049][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:07:44,965 [DEBUG][       Thread-604049][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:07:44,965 [ INFO][       Thread-604049][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:07:44,968 [DEBUG][       Thread-604049][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:07:44,968 [DEBUG][       Thread-604049][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:07:44,968 [DEBUG][       Thread-604049][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:07:44,968 [DEBUG][       Thread-604049][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:07:44,968 [DEBUG][       Thread-604049][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:07:44,968 [DEBUG][       Thread-604049][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:07:44,968 [DEBUG][       Thread-604049][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:07:44,968 [DEBUG][       Thread-604049][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:07:44,968 [DEBUG][       Thread-604049][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:07:44,968 [DEBUG][       Thread-604049][   transport.py][1871] : client lang: <none>
2025-07-01 12:07:44,969 [DEBUG][       Thread-604049][   transport.py][1871] : server lang: <none>
2025-07-01 12:07:44,969 [DEBUG][       Thread-604049][   transport.py][1871] : kex follows: False
2025-07-01 12:07:44,969 [DEBUG][       Thread-604049][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:07:44,969 [DEBUG][       Thread-604049][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:07:44,969 [DEBUG][       Thread-604049][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:07:44,969 [DEBUG][       Thread-604049][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:07:44,969 [DEBUG][       Thread-604049][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:07:44,969 [DEBUG][       Thread-604049][   transport.py][1871] : Compression: none
2025-07-01 12:07:44,969 [DEBUG][       Thread-604049][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:07:44,982 [DEBUG][       Thread-604049][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:07:44,983 [DEBUG][       Thread-604049][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:07:44,983 [DEBUG][       Thread-604049][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:07:44,984 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:07:44,984 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:07:44,985 [DEBUG][       Thread-604049][   transport.py][1871] : userauth is OK
2025-07-01 12:07:45,010 [ INFO][       Thread-604049][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:07:45,010 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:07:45,771 [DEBUG][       Thread-604049][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:07:45,772 [DEBUG][       Thread-604049][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:07:45,813 [DEBUG][       Thread-604049][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:07:45,813 [DEBUG][       Thread-604049][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:07:45,816 [DEBUG][       Thread-604049][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:07:45,834 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:07:45,835 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:07:45,839 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:07:45,844 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:07:45,851 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:07:45,853 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:07:45,854 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:07:45,854 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:07:45,855 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.421472 -999.00  +11.00  35.82     55   +2.40 1 1 2 1 1   888    0 8.82 4.79 ----- 35.8 35.8 42.0 52.0 14.0 -23.4 13.2 -24.0 12.9 -22.8 13.6 -21.8
2025-07-01 12:07:45,855 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:07:45,855 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:07:45,855 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.421472
2025-07-01 12:07:45,855 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:07:45,856 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:07:45,856 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:07:45,856 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:07:45,856 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:07:45,856 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:07:40', tmtdew=9.91, humidity=50.63, cloud=0.0, wind=39.45, temperature=11.14, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:06:55.181', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:07:45,857 [DEBUG][       Thread-604049][   transport.py][1871] : EOF in transport thread
2025-07-01 12:07:45,941 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:07:45,950 [DEBUG][       Thread-604052][   transport.py][1871] : starting thread (client mode): 0x81e4730
2025-07-01 12:07:45,950 [DEBUG][       Thread-604052][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:07:45,965 [DEBUG][       Thread-604052][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:07:45,965 [ INFO][       Thread-604052][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:07:45,973 [DEBUG][       Thread-604052][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:07:45,973 [DEBUG][       Thread-604052][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:07:45,974 [DEBUG][       Thread-604052][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:07:45,974 [DEBUG][       Thread-604052][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:07:45,974 [DEBUG][       Thread-604052][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:07:45,974 [DEBUG][       Thread-604052][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:07:45,974 [DEBUG][       Thread-604052][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:07:45,974 [DEBUG][       Thread-604052][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:07:45,974 [DEBUG][       Thread-604052][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:07:45,974 [DEBUG][       Thread-604052][   transport.py][1871] : client lang: <none>
2025-07-01 12:07:45,974 [DEBUG][       Thread-604052][   transport.py][1871] : server lang: <none>
2025-07-01 12:07:45,974 [DEBUG][       Thread-604052][   transport.py][1871] : kex follows: False
2025-07-01 12:07:45,974 [DEBUG][       Thread-604052][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:07:45,974 [DEBUG][       Thread-604052][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:07:45,974 [DEBUG][       Thread-604052][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:07:45,974 [DEBUG][       Thread-604052][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:07:45,974 [DEBUG][       Thread-604052][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:07:45,974 [DEBUG][       Thread-604052][   transport.py][1871] : Compression: none
2025-07-01 12:07:45,974 [DEBUG][       Thread-604052][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:07:46,032 [DEBUG][       Thread-604052][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:07:46,032 [DEBUG][       Thread-604052][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:07:46,033 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:07:46,033 [DEBUG][       Thread-604052][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:07:46,034 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:07:46,087 [DEBUG][       Thread-604052][   transport.py][1871] : userauth is OK
2025-07-01 12:07:46,088 [DEBUG][       Thread-604052][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:07:46,088 [DEBUG][       Thread-604052][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:07:46,088 [DEBUG][       Thread-604052][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:07:46,088 [DEBUG][       Thread-604052][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:07:46,108 [ INFO][       Thread-604052][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:07:46,108 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:07:46,109 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:07:47,097 [DEBUG][       Thread-604052][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:07:47,097 [DEBUG][       Thread-604052][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:07:47,149 [DEBUG][       Thread-604052][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:07:47,149 [DEBUG][       Thread-604052][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:07:47,158 [DEBUG][       Thread-604052][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:07:47,167 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:07:47,168 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 12:07:47,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-07-01 12:07:47,186 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:07:47,186 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:07:47,186 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:07:47,194 [DEBUG][       Thread-604052][   transport.py][1871] : EOF in transport thread
2025-07-01 12:07:51,163 [DEBUG][Thread-604054 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:07:57,187 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:07:57,188 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:07:57,188 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:07:57,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-07-01 12:07:57,684 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 7, 40), 9.91, 50.63, 0.0, 39.45, 11.14, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:07:57,684 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:07:40
2025-07-01 12:07:57,771 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:07:57,776 [DEBUG][       Thread-604055][   transport.py][1871] : starting thread (client mode): 0x81da2f0
2025-07-01 12:07:57,776 [DEBUG][       Thread-604055][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:07:57,796 [DEBUG][       Thread-604055][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:07:57,796 [ INFO][       Thread-604055][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:07:57,799 [DEBUG][       Thread-604055][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:07:57,799 [DEBUG][       Thread-604055][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:07:57,799 [DEBUG][       Thread-604055][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:07:57,799 [DEBUG][       Thread-604055][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:07:57,799 [DEBUG][       Thread-604055][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:07:57,799 [DEBUG][       Thread-604055][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:07:57,799 [DEBUG][       Thread-604055][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:07:57,799 [DEBUG][       Thread-604055][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:07:57,799 [DEBUG][       Thread-604055][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:07:57,799 [DEBUG][       Thread-604055][   transport.py][1871] : client lang: <none>
2025-07-01 12:07:57,799 [DEBUG][       Thread-604055][   transport.py][1871] : server lang: <none>
2025-07-01 12:07:57,799 [DEBUG][       Thread-604055][   transport.py][1871] : kex follows: False
2025-07-01 12:07:57,799 [DEBUG][       Thread-604055][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:07:57,799 [DEBUG][       Thread-604055][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:07:57,799 [DEBUG][       Thread-604055][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:07:57,799 [DEBUG][       Thread-604055][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:07:57,799 [DEBUG][       Thread-604055][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:07:57,799 [DEBUG][       Thread-604055][   transport.py][1871] : Compression: none
2025-07-01 12:07:57,799 [DEBUG][       Thread-604055][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:07:57,812 [DEBUG][       Thread-604055][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:07:57,813 [DEBUG][       Thread-604055][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:07:57,813 [DEBUG][       Thread-604055][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:07:57,813 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:07:57,813 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:07:57,857 [DEBUG][       Thread-604055][   transport.py][1871] : userauth is OK
2025-07-01 12:07:57,882 [ INFO][       Thread-604055][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:07:57,882 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:07:58,543 [DEBUG][       Thread-604055][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:07:58,543 [DEBUG][       Thread-604055][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:07:58,585 [DEBUG][       Thread-604055][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:07:58,585 [DEBUG][       Thread-604055][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:07:58,588 [DEBUG][       Thread-604055][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:07:58,601 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:07:58,602 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:07:58,604 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:07:58,606 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:07:58,611 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:07:58,613 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:07:58,613 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:07:58,614 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:07:58,614 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.421819 -999.00  +11.20  37.44     55   +2.50 1 1 2 1 1   888    0 8.78 4.09 ----- 37.4 37.4 33.1 47.7 14.1 -23.4 13.2 -25.1 13.0 -23.0 13.8 -21.4
2025-07-01 12:07:58,614 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:07:58,614 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:07:58,614 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.421819
2025-07-01 12:07:58,615 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:07:58,615 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:07:58,615 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:07:58,616 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:07:58,616 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:07:58,616 [DEBUG][       Thread-604055][   transport.py][1871] : EOF in transport thread
2025-07-01 12:07:58,616 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:07:40', tmtdew=9.91, humidity=50.63, cloud=0.0, wind=39.45, temperature=11.14, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:07:25.162', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:07:58,702 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:07:58,714 [DEBUG][       Thread-604058][   transport.py][1871] : starting thread (client mode): 0x83c8460
2025-07-01 12:07:58,714 [DEBUG][       Thread-604058][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:07:58,730 [DEBUG][       Thread-604058][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:07:58,730 [ INFO][       Thread-604058][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:07:58,737 [DEBUG][       Thread-604058][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:07:58,737 [DEBUG][       Thread-604058][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:07:58,738 [DEBUG][       Thread-604058][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:07:58,738 [DEBUG][       Thread-604058][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:07:58,738 [DEBUG][       Thread-604058][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:07:58,738 [DEBUG][       Thread-604058][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:07:58,738 [DEBUG][       Thread-604058][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:07:58,738 [DEBUG][       Thread-604058][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:07:58,738 [DEBUG][       Thread-604058][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:07:58,738 [DEBUG][       Thread-604058][   transport.py][1871] : client lang: <none>
2025-07-01 12:07:58,738 [DEBUG][       Thread-604058][   transport.py][1871] : server lang: <none>
2025-07-01 12:07:58,738 [DEBUG][       Thread-604058][   transport.py][1871] : kex follows: False
2025-07-01 12:07:58,738 [DEBUG][       Thread-604058][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:07:58,738 [DEBUG][       Thread-604058][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:07:58,738 [DEBUG][       Thread-604058][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:07:58,738 [DEBUG][       Thread-604058][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:07:58,738 [DEBUG][       Thread-604058][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:07:58,738 [DEBUG][       Thread-604058][   transport.py][1871] : Compression: none
2025-07-01 12:07:58,738 [DEBUG][       Thread-604058][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:07:58,795 [DEBUG][       Thread-604058][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:07:58,796 [DEBUG][       Thread-604058][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:07:58,796 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:07:58,797 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:07:58,797 [DEBUG][       Thread-604058][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:07:58,851 [DEBUG][       Thread-604058][   transport.py][1871] : userauth is OK
2025-07-01 12:07:58,851 [DEBUG][       Thread-604058][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:07:58,852 [DEBUG][       Thread-604058][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:07:58,852 [DEBUG][       Thread-604058][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:07:58,852 [DEBUG][       Thread-604058][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:07:58,871 [ INFO][       Thread-604058][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:07:58,871 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:07:58,871 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:07:59,843 [DEBUG][       Thread-604058][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:07:59,843 [DEBUG][       Thread-604058][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:07:59,892 [DEBUG][       Thread-604058][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:07:59,892 [DEBUG][       Thread-604058][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:07:59,902 [DEBUG][       Thread-604058][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:07:59,911 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:07:59,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-07-01 12:07:59,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-07-01 12:07:59,929 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:07:59,929 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:07:59,930 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:07:59,938 [DEBUG][       Thread-604058][   transport.py][1871] : EOF in transport thread
2025-07-01 12:08:00,195 [DEBUG][Thread-604060 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:08:09,214 [DEBUG][Thread-604061 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:08:09,940 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:08:09,941 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:08:09,941 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:08:09,944 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:08:10,431 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 7, 40), 9.91, 50.63, 0.0, 39.45, 11.14, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:08:10,432 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:07:40
2025-07-01 12:08:10,517 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:08:10,521 [DEBUG][       Thread-604062][   transport.py][1871] : starting thread (client mode): 0x81e71c0
2025-07-01 12:08:10,522 [DEBUG][       Thread-604062][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:08:10,546 [DEBUG][       Thread-604062][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:08:10,546 [ INFO][       Thread-604062][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:08:10,550 [DEBUG][       Thread-604062][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:08:10,550 [DEBUG][       Thread-604062][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:08:10,550 [DEBUG][       Thread-604062][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:08:10,550 [DEBUG][       Thread-604062][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:08:10,550 [DEBUG][       Thread-604062][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:08:10,550 [DEBUG][       Thread-604062][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:08:10,550 [DEBUG][       Thread-604062][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:08:10,550 [DEBUG][       Thread-604062][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:08:10,550 [DEBUG][       Thread-604062][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:08:10,550 [DEBUG][       Thread-604062][   transport.py][1871] : client lang: <none>
2025-07-01 12:08:10,550 [DEBUG][       Thread-604062][   transport.py][1871] : server lang: <none>
2025-07-01 12:08:10,550 [DEBUG][       Thread-604062][   transport.py][1871] : kex follows: False
2025-07-01 12:08:10,550 [DEBUG][       Thread-604062][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:08:10,551 [DEBUG][       Thread-604062][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:08:10,551 [DEBUG][       Thread-604062][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:08:10,551 [DEBUG][       Thread-604062][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:08:10,551 [DEBUG][       Thread-604062][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:08:10,551 [DEBUG][       Thread-604062][   transport.py][1871] : Compression: none
2025-07-01 12:08:10,551 [DEBUG][       Thread-604062][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:08:10,568 [DEBUG][       Thread-604062][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:08:10,568 [DEBUG][       Thread-604062][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:08:10,569 [DEBUG][       Thread-604062][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:08:10,569 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:08:10,569 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:08:10,570 [DEBUG][       Thread-604062][   transport.py][1871] : userauth is OK
2025-07-01 12:08:10,600 [ INFO][       Thread-604062][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:08:10,600 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:08:11,259 [DEBUG][       Thread-604062][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:08:11,259 [DEBUG][       Thread-604062][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:08:11,301 [DEBUG][       Thread-604062][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:08:11,301 [DEBUG][       Thread-604062][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:08:11,305 [DEBUG][       Thread-604062][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:08:11,317 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:08:11,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:08:11,319 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:08:11,321 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:08:11,326 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:08:11,328 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:08:11,329 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:08:11,329 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:08:11,329 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.421819 -999.00  +11.20  37.44     55   +2.50 1 1 2 1 1   888    0 8.78 4.09 ----- 37.4 37.4 33.1 47.7 14.1 -23.4 13.2 -25.1 13.0 -23.0 13.8 -21.4
2025-07-01 12:08:11,330 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:08:11,330 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:08:11,330 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.421819
2025-07-01 12:08:11,330 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:08:11,331 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:08:11,331 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:08:11,331 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:08:11,331 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:08:11,331 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:07:40', tmtdew=9.91, humidity=50.63, cloud=0.0, wind=39.45, temperature=11.14, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:07:25.162', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:08:11,331 [DEBUG][       Thread-604062][   transport.py][1871] : EOF in transport thread
2025-07-01 12:08:11,414 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:08:11,424 [DEBUG][       Thread-604065][   transport.py][1871] : starting thread (client mode): 0x81daf50
2025-07-01 12:08:11,424 [DEBUG][       Thread-604065][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:08:11,439 [DEBUG][       Thread-604065][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:08:11,439 [ INFO][       Thread-604065][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:08:11,447 [DEBUG][       Thread-604065][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:08:11,447 [DEBUG][       Thread-604065][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:08:11,447 [DEBUG][       Thread-604065][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:08:11,447 [DEBUG][       Thread-604065][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:08:11,447 [DEBUG][       Thread-604065][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:08:11,447 [DEBUG][       Thread-604065][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:08:11,447 [DEBUG][       Thread-604065][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:08:11,447 [DEBUG][       Thread-604065][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:08:11,447 [DEBUG][       Thread-604065][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:08:11,447 [DEBUG][       Thread-604065][   transport.py][1871] : client lang: <none>
2025-07-01 12:08:11,447 [DEBUG][       Thread-604065][   transport.py][1871] : server lang: <none>
2025-07-01 12:08:11,447 [DEBUG][       Thread-604065][   transport.py][1871] : kex follows: False
2025-07-01 12:08:11,447 [DEBUG][       Thread-604065][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:08:11,447 [DEBUG][       Thread-604065][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:08:11,447 [DEBUG][       Thread-604065][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:08:11,447 [DEBUG][       Thread-604065][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:08:11,447 [DEBUG][       Thread-604065][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:08:11,447 [DEBUG][       Thread-604065][   transport.py][1871] : Compression: none
2025-07-01 12:08:11,448 [DEBUG][       Thread-604065][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:08:11,503 [DEBUG][       Thread-604065][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:08:11,504 [DEBUG][       Thread-604065][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:08:11,504 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:08:11,505 [DEBUG][       Thread-604065][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:08:11,505 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:08:11,559 [DEBUG][       Thread-604065][   transport.py][1871] : userauth is OK
2025-07-01 12:08:11,560 [DEBUG][       Thread-604065][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:08:11,560 [DEBUG][       Thread-604065][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:08:11,560 [DEBUG][       Thread-604065][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:08:11,560 [DEBUG][       Thread-604065][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:08:11,579 [ INFO][       Thread-604065][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:08:11,579 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:08:11,580 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:08:12,551 [DEBUG][       Thread-604065][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:08:12,551 [DEBUG][       Thread-604065][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:08:12,600 [DEBUG][       Thread-604065][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:08:12,600 [DEBUG][       Thread-604065][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:08:12,609 [DEBUG][       Thread-604065][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:08:12,618 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:08:12,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-07-01 12:08:12,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-07-01 12:08:12,636 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:08:12,637 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:08:12,637 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:08:12,645 [DEBUG][       Thread-604065][   transport.py][1871] : EOF in transport thread
2025-07-01 12:08:13,321 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:08:13,322 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:08:18,235 [DEBUG][Thread-604067 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:08:22,648 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:08:22,648 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:08:22,648 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:08:22,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-07-01 12:08:23,129 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 8, 12), 9.89, 50.73, 0.0, 40.78, 11.22, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:08:23,129 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:08:12
2025-07-01 12:08:23,214 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:08:23,219 [DEBUG][       Thread-604068][   transport.py][1871] : starting thread (client mode): 0x82b2b00
2025-07-01 12:08:23,219 [DEBUG][       Thread-604068][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:08:23,238 [DEBUG][       Thread-604068][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:08:23,239 [ INFO][       Thread-604068][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:08:23,242 [DEBUG][       Thread-604068][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:08:23,242 [DEBUG][       Thread-604068][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:08:23,242 [DEBUG][       Thread-604068][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:08:23,242 [DEBUG][       Thread-604068][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:08:23,242 [DEBUG][       Thread-604068][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:08:23,242 [DEBUG][       Thread-604068][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:08:23,242 [DEBUG][       Thread-604068][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:08:23,242 [DEBUG][       Thread-604068][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:08:23,242 [DEBUG][       Thread-604068][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:08:23,242 [DEBUG][       Thread-604068][   transport.py][1871] : client lang: <none>
2025-07-01 12:08:23,242 [DEBUG][       Thread-604068][   transport.py][1871] : server lang: <none>
2025-07-01 12:08:23,242 [DEBUG][       Thread-604068][   transport.py][1871] : kex follows: False
2025-07-01 12:08:23,242 [DEBUG][       Thread-604068][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:08:23,242 [DEBUG][       Thread-604068][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:08:23,242 [DEBUG][       Thread-604068][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:08:23,242 [DEBUG][       Thread-604068][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:08:23,242 [DEBUG][       Thread-604068][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:08:23,242 [DEBUG][       Thread-604068][   transport.py][1871] : Compression: none
2025-07-01 12:08:23,242 [DEBUG][       Thread-604068][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:08:23,260 [DEBUG][       Thread-604068][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:08:23,260 [DEBUG][       Thread-604068][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:08:23,261 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:08:23,261 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:08:23,261 [DEBUG][       Thread-604068][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:08:23,262 [DEBUG][       Thread-604068][   transport.py][1871] : userauth is OK
2025-07-01 12:08:23,275 [ INFO][       Thread-604068][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:08:23,276 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:08:23,920 [DEBUG][       Thread-604068][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:08:23,920 [DEBUG][       Thread-604068][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:08:23,961 [DEBUG][       Thread-604068][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:08:23,961 [DEBUG][       Thread-604068][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:08:23,964 [DEBUG][       Thread-604068][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:08:23,977 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:08:23,978 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:08:23,980 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:08:23,982 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:08:23,987 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:08:23,989 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:08:23,990 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:08:23,990 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:08:23,990 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.422166 -999.00  +11.10  42.52     55   +2.40 1 1 2 1 1   888    0 8.86 4.47 ----- 42.5 42.5 20.6 53.2 14.2 -24.1 13.3 -25.2 13.0 -23.3 13.8 -21.9
2025-07-01 12:08:23,991 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:08:23,991 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:08:23,991 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.422166
2025-07-01 12:08:23,991 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:08:23,992 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:08:23,992 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:08:23,992 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:08:23,992 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:08:23,992 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:08:12', tmtdew=9.89, humidity=50.73, cloud=0.0, wind=40.78, temperature=11.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:07:55.142', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:08:23,992 [DEBUG][       Thread-604068][   transport.py][1871] : EOF in transport thread
2025-07-01 12:08:24,076 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:08:24,087 [DEBUG][       Thread-604071][   transport.py][1871] : starting thread (client mode): 0x818c760
2025-07-01 12:08:24,087 [DEBUG][       Thread-604071][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:08:24,109 [DEBUG][       Thread-604071][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:08:24,109 [ INFO][       Thread-604071][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:08:24,117 [DEBUG][       Thread-604071][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:08:24,117 [DEBUG][       Thread-604071][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:08:24,117 [DEBUG][       Thread-604071][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:08:24,117 [DEBUG][       Thread-604071][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:08:24,117 [DEBUG][       Thread-604071][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:08:24,117 [DEBUG][       Thread-604071][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:08:24,117 [DEBUG][       Thread-604071][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:08:24,117 [DEBUG][       Thread-604071][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:08:24,118 [DEBUG][       Thread-604071][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:08:24,118 [DEBUG][       Thread-604071][   transport.py][1871] : client lang: <none>
2025-07-01 12:08:24,118 [DEBUG][       Thread-604071][   transport.py][1871] : server lang: <none>
2025-07-01 12:08:24,118 [DEBUG][       Thread-604071][   transport.py][1871] : kex follows: False
2025-07-01 12:08:24,118 [DEBUG][       Thread-604071][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:08:24,118 [DEBUG][       Thread-604071][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:08:24,118 [DEBUG][       Thread-604071][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:08:24,118 [DEBUG][       Thread-604071][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:08:24,118 [DEBUG][       Thread-604071][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:08:24,118 [DEBUG][       Thread-604071][   transport.py][1871] : Compression: none
2025-07-01 12:08:24,118 [DEBUG][       Thread-604071][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:08:24,174 [DEBUG][       Thread-604071][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:08:24,174 [DEBUG][       Thread-604071][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:08:24,174 [DEBUG][       Thread-604071][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:08:24,174 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:08:24,174 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:08:24,236 [DEBUG][       Thread-604071][   transport.py][1871] : userauth is OK
2025-07-01 12:08:24,236 [DEBUG][       Thread-604071][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:08:24,236 [DEBUG][       Thread-604071][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:08:24,236 [DEBUG][       Thread-604071][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:08:24,236 [DEBUG][       Thread-604071][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:08:24,251 [ INFO][       Thread-604071][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:08:24,251 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:08:24,252 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:08:25,255 [DEBUG][       Thread-604071][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:08:25,256 [DEBUG][       Thread-604071][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:08:25,303 [DEBUG][       Thread-604071][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:08:25,304 [DEBUG][       Thread-604071][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:08:25,315 [DEBUG][       Thread-604071][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:08:25,323 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:08:25,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-07-01 12:08:25,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-07-01 12:08:25,341 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:08:25,341 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:08:25,342 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:08:25,350 [DEBUG][       Thread-604071][   transport.py][1871] : EOF in transport thread
2025-07-01 12:08:27,256 [DEBUG][Thread-604073 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:08:28,257 [DEBUG][Thread-604074 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:08:35,352 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:08:35,352 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:08:35,352 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:08:35,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-07-01 12:08:35,846 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 8, 12), 9.89, 50.73, 0.0, 40.78, 11.22, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:08:35,846 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:08:12
2025-07-01 12:08:35,932 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:08:35,936 [DEBUG][       Thread-604075][   transport.py][1871] : starting thread (client mode): 0x82b2410
2025-07-01 12:08:35,936 [DEBUG][       Thread-604075][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:08:35,956 [DEBUG][       Thread-604075][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:08:35,957 [ INFO][       Thread-604075][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:08:35,960 [DEBUG][       Thread-604075][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:08:35,960 [DEBUG][       Thread-604075][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:08:35,960 [DEBUG][       Thread-604075][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:08:35,960 [DEBUG][       Thread-604075][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:08:35,960 [DEBUG][       Thread-604075][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:08:35,960 [DEBUG][       Thread-604075][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:08:35,960 [DEBUG][       Thread-604075][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:08:35,960 [DEBUG][       Thread-604075][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:08:35,960 [DEBUG][       Thread-604075][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:08:35,960 [DEBUG][       Thread-604075][   transport.py][1871] : client lang: <none>
2025-07-01 12:08:35,960 [DEBUG][       Thread-604075][   transport.py][1871] : server lang: <none>
2025-07-01 12:08:35,960 [DEBUG][       Thread-604075][   transport.py][1871] : kex follows: False
2025-07-01 12:08:35,960 [DEBUG][       Thread-604075][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:08:35,960 [DEBUG][       Thread-604075][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:08:35,960 [DEBUG][       Thread-604075][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:08:35,960 [DEBUG][       Thread-604075][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:08:35,960 [DEBUG][       Thread-604075][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:08:35,960 [DEBUG][       Thread-604075][   transport.py][1871] : Compression: none
2025-07-01 12:08:35,960 [DEBUG][       Thread-604075][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:08:35,978 [DEBUG][       Thread-604075][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:08:35,978 [DEBUG][       Thread-604075][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:08:35,979 [DEBUG][       Thread-604075][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:08:35,979 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:08:35,979 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:08:36,021 [DEBUG][       Thread-604075][   transport.py][1871] : userauth is OK
2025-07-01 12:08:36,046 [ INFO][       Thread-604075][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:08:36,047 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:08:36,292 [DEBUG][Thread-604077 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:08:36,664 [DEBUG][       Thread-604075][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:08:36,664 [DEBUG][       Thread-604075][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:08:36,705 [DEBUG][       Thread-604075][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:08:36,705 [DEBUG][       Thread-604075][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:08:36,707 [DEBUG][       Thread-604075][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:08:36,719 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:08:36,719 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:08:36,720 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:08:36,721 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:08:36,725 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:08:36,726 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:08:36,726 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:08:36,726 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:08:36,726 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.422166 -999.00  +11.10  42.52     55   +2.40 1 1 2 1 1   888    0 8.86 4.47 ----- 42.5 42.5 20.6 53.2 14.2 -24.1 13.3 -25.2 13.0 -23.3 13.8 -21.9
2025-07-01 12:08:36,726 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:08:36,726 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:08:36,726 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.422166
2025-07-01 12:08:36,727 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:08:36,727 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:08:36,727 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:08:36,727 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:08:36,727 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:08:36,727 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:08:12', tmtdew=9.89, humidity=50.73, cloud=0.0, wind=40.78, temperature=11.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:07:55.142', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:08:36,727 [DEBUG][       Thread-604075][   transport.py][1871] : EOF in transport thread
2025-07-01 12:08:36,809 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:08:36,818 [DEBUG][       Thread-604079][   transport.py][1871] : starting thread (client mode): 0x8393f40
2025-07-01 12:08:36,818 [DEBUG][       Thread-604079][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:08:36,834 [DEBUG][       Thread-604079][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:08:36,834 [ INFO][       Thread-604079][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:08:36,841 [DEBUG][       Thread-604079][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:08:36,841 [DEBUG][       Thread-604079][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:08:36,841 [DEBUG][       Thread-604079][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:08:36,841 [DEBUG][       Thread-604079][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:08:36,841 [DEBUG][       Thread-604079][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:08:36,841 [DEBUG][       Thread-604079][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:08:36,841 [DEBUG][       Thread-604079][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:08:36,841 [DEBUG][       Thread-604079][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:08:36,842 [DEBUG][       Thread-604079][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:08:36,842 [DEBUG][       Thread-604079][   transport.py][1871] : client lang: <none>
2025-07-01 12:08:36,842 [DEBUG][       Thread-604079][   transport.py][1871] : server lang: <none>
2025-07-01 12:08:36,842 [DEBUG][       Thread-604079][   transport.py][1871] : kex follows: False
2025-07-01 12:08:36,842 [DEBUG][       Thread-604079][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:08:36,842 [DEBUG][       Thread-604079][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:08:36,842 [DEBUG][       Thread-604079][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:08:36,842 [DEBUG][       Thread-604079][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:08:36,842 [DEBUG][       Thread-604079][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:08:36,842 [DEBUG][       Thread-604079][   transport.py][1871] : Compression: none
2025-07-01 12:08:36,842 [DEBUG][       Thread-604079][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:08:36,907 [DEBUG][       Thread-604079][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:08:36,907 [DEBUG][       Thread-604079][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:08:36,908 [DEBUG][       Thread-604079][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:08:36,908 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:08:36,909 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:08:36,964 [DEBUG][       Thread-604079][   transport.py][1871] : userauth is OK
2025-07-01 12:08:36,964 [DEBUG][       Thread-604079][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:08:36,964 [DEBUG][       Thread-604079][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:08:36,964 [DEBUG][       Thread-604079][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:08:36,964 [DEBUG][       Thread-604079][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:08:36,983 [ INFO][       Thread-604079][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:08:36,983 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:08:36,984 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:08:37,949 [DEBUG][       Thread-604079][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:08:37,950 [DEBUG][       Thread-604079][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:08:38,000 [DEBUG][       Thread-604079][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:08:38,000 [DEBUG][       Thread-604079][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:08:38,009 [DEBUG][       Thread-604079][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:08:38,018 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:08:38,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-07-01 12:08:38,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-07-01 12:08:38,036 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:08:38,036 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:08:38,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:08:38,044 [DEBUG][       Thread-604079][   transport.py][1871] : EOF in transport thread
2025-07-01 12:08:45,309 [DEBUG][Thread-604081 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:08:48,047 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:08:48,047 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:08:48,047 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:08:48,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-07-01 12:08:48,540 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 8, 44), 9.96, 50.46, 0.0, 42.35, 11.24, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:08:48,540 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:08:44
2025-07-01 12:08:48,623 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:08:48,627 [DEBUG][       Thread-604082][   transport.py][1871] : starting thread (client mode): 0x81e7880
2025-07-01 12:08:48,627 [DEBUG][       Thread-604082][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:08:48,647 [DEBUG][       Thread-604082][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:08:48,648 [ INFO][       Thread-604082][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:08:48,651 [DEBUG][       Thread-604082][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:08:48,651 [DEBUG][       Thread-604082][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:08:48,651 [DEBUG][       Thread-604082][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:08:48,651 [DEBUG][       Thread-604082][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:08:48,651 [DEBUG][       Thread-604082][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:08:48,651 [DEBUG][       Thread-604082][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:08:48,651 [DEBUG][       Thread-604082][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:08:48,651 [DEBUG][       Thread-604082][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:08:48,651 [DEBUG][       Thread-604082][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:08:48,651 [DEBUG][       Thread-604082][   transport.py][1871] : client lang: <none>
2025-07-01 12:08:48,651 [DEBUG][       Thread-604082][   transport.py][1871] : server lang: <none>
2025-07-01 12:08:48,651 [DEBUG][       Thread-604082][   transport.py][1871] : kex follows: False
2025-07-01 12:08:48,651 [DEBUG][       Thread-604082][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:08:48,651 [DEBUG][       Thread-604082][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:08:48,651 [DEBUG][       Thread-604082][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:08:48,651 [DEBUG][       Thread-604082][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:08:48,651 [DEBUG][       Thread-604082][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:08:48,651 [DEBUG][       Thread-604082][   transport.py][1871] : Compression: none
2025-07-01 12:08:48,651 [DEBUG][       Thread-604082][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:08:48,668 [DEBUG][       Thread-604082][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:08:48,669 [DEBUG][       Thread-604082][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:08:48,669 [DEBUG][       Thread-604082][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:08:48,669 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:08:48,670 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:08:48,671 [DEBUG][       Thread-604082][   transport.py][1871] : userauth is OK
2025-07-01 12:08:48,698 [ INFO][       Thread-604082][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:08:48,699 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:08:49,310 [DEBUG][       Thread-604082][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:08:49,310 [DEBUG][       Thread-604082][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:08:49,353 [DEBUG][       Thread-604082][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:08:49,353 [DEBUG][       Thread-604082][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:08:49,356 [DEBUG][       Thread-604082][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:08:49,369 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:08:49,370 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:08:49,372 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:08:49,374 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:08:49,379 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:08:49,381 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:08:49,381 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:08:49,382 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:08:49,382 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.422166 -999.00  +11.10  42.52     55   +2.40 1 1 2 1 1   888    0 8.86 4.47 ----- 42.5 42.5 20.6 53.2 14.2 -24.1 13.3 -25.2 13.0 -23.3 13.8 -21.9
2025-07-01 12:08:49,382 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:08:49,382 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:08:49,382 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.422166
2025-07-01 12:08:49,383 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:08:49,383 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:08:49,384 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:08:49,384 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:08:49,384 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:08:49,384 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:08:44', tmtdew=9.96, humidity=50.46, cloud=0.0, wind=42.35, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:07:55.142', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:08:49,385 [DEBUG][       Thread-604082][   transport.py][1871] : EOF in transport thread
2025-07-01 12:08:49,467 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:08:49,477 [DEBUG][       Thread-604085][   transport.py][1871] : starting thread (client mode): 0x81d82b0
2025-07-01 12:08:49,477 [DEBUG][       Thread-604085][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:08:49,495 [DEBUG][       Thread-604085][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:08:49,495 [ INFO][       Thread-604085][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:08:49,504 [DEBUG][       Thread-604085][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:08:49,504 [DEBUG][       Thread-604085][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:08:49,504 [DEBUG][       Thread-604085][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:08:49,504 [DEBUG][       Thread-604085][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:08:49,505 [DEBUG][       Thread-604085][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:08:49,505 [DEBUG][       Thread-604085][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:08:49,505 [DEBUG][       Thread-604085][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:08:49,505 [DEBUG][       Thread-604085][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:08:49,505 [DEBUG][       Thread-604085][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:08:49,505 [DEBUG][       Thread-604085][   transport.py][1871] : client lang: <none>
2025-07-01 12:08:49,505 [DEBUG][       Thread-604085][   transport.py][1871] : server lang: <none>
2025-07-01 12:08:49,505 [DEBUG][       Thread-604085][   transport.py][1871] : kex follows: False
2025-07-01 12:08:49,505 [DEBUG][       Thread-604085][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:08:49,505 [DEBUG][       Thread-604085][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:08:49,505 [DEBUG][       Thread-604085][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:08:49,505 [DEBUG][       Thread-604085][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:08:49,505 [DEBUG][       Thread-604085][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:08:49,505 [DEBUG][       Thread-604085][   transport.py][1871] : Compression: none
2025-07-01 12:08:49,505 [DEBUG][       Thread-604085][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:08:49,563 [DEBUG][       Thread-604085][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:08:49,564 [DEBUG][       Thread-604085][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:08:49,565 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:08:49,565 [DEBUG][       Thread-604085][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:08:49,566 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:08:49,620 [DEBUG][       Thread-604085][   transport.py][1871] : userauth is OK
2025-07-01 12:08:49,620 [DEBUG][       Thread-604085][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:08:49,620 [DEBUG][       Thread-604085][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:08:49,620 [DEBUG][       Thread-604085][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:08:49,620 [DEBUG][       Thread-604085][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:08:49,639 [ INFO][       Thread-604085][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:08:49,640 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:08:49,640 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:08:50,668 [DEBUG][       Thread-604085][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:08:50,669 [DEBUG][       Thread-604085][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:08:50,720 [DEBUG][       Thread-604085][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:08:50,720 [DEBUG][       Thread-604085][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:08:50,729 [DEBUG][       Thread-604085][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:08:50,738 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:08:50,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-07-01 12:08:50,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-07-01 12:08:50,762 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:08:50,762 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:08:50,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:08:50,772 [DEBUG][       Thread-604085][   transport.py][1871] : EOF in transport thread
2025-07-01 12:08:54,329 [DEBUG][Thread-604087 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:09:00,773 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:09:00,773 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:09:00,773 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:09:00,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-07-01 12:09:01,259 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 8, 44), 9.96, 50.46, 0.0, 42.35, 11.24, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:09:01,260 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:08:44
2025-07-01 12:09:01,345 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:09:01,349 [DEBUG][       Thread-604088][   transport.py][1871] : starting thread (client mode): 0x81d9630
2025-07-01 12:09:01,349 [DEBUG][       Thread-604088][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:09:01,372 [DEBUG][       Thread-604088][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:09:01,372 [ INFO][       Thread-604088][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:09:01,375 [DEBUG][       Thread-604088][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:09:01,375 [DEBUG][       Thread-604088][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:09:01,375 [DEBUG][       Thread-604088][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:09:01,375 [DEBUG][       Thread-604088][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:09:01,375 [DEBUG][       Thread-604088][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:09:01,375 [DEBUG][       Thread-604088][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:09:01,375 [DEBUG][       Thread-604088][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:09:01,375 [DEBUG][       Thread-604088][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:09:01,375 [DEBUG][       Thread-604088][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:09:01,375 [DEBUG][       Thread-604088][   transport.py][1871] : client lang: <none>
2025-07-01 12:09:01,375 [DEBUG][       Thread-604088][   transport.py][1871] : server lang: <none>
2025-07-01 12:09:01,376 [DEBUG][       Thread-604088][   transport.py][1871] : kex follows: False
2025-07-01 12:09:01,376 [DEBUG][       Thread-604088][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:09:01,376 [DEBUG][       Thread-604088][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:09:01,376 [DEBUG][       Thread-604088][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:09:01,376 [DEBUG][       Thread-604088][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:09:01,376 [DEBUG][       Thread-604088][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:09:01,376 [DEBUG][       Thread-604088][   transport.py][1871] : Compression: none
2025-07-01 12:09:01,376 [DEBUG][       Thread-604088][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:09:01,392 [DEBUG][       Thread-604088][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:09:01,393 [DEBUG][       Thread-604088][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:09:01,393 [DEBUG][       Thread-604088][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:09:01,393 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:09:01,394 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:09:01,395 [DEBUG][       Thread-604088][   transport.py][1871] : userauth is OK
2025-07-01 12:09:01,420 [ INFO][       Thread-604088][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:09:01,421 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:09:02,078 [DEBUG][       Thread-604088][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:09:02,078 [DEBUG][       Thread-604088][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:09:02,121 [DEBUG][       Thread-604088][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:09:02,121 [DEBUG][       Thread-604088][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:09:02,125 [DEBUG][       Thread-604088][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:09:02,136 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:09:02,137 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:09:02,138 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:09:02,141 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:09:02,147 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:09:02,149 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:09:02,149 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:09:02,150 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:09:02,150 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.422513 -999.00  +11.10  43.51     54   +2.30 1 1 2 1 1   888    0 8.79 4.94 ----- 43.5 43.5 13.1 52.3 14.2 -24.4 13.3 -24.9 13.0 -23.5 13.8 -22.8
2025-07-01 12:09:02,150 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:09:02,150 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:09:02,150 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.422513
2025-07-01 12:09:02,150 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:09:02,151 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:09:02,151 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:09:02,151 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:09:02,151 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:09:02,151 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:08:44', tmtdew=9.96, humidity=50.46, cloud=0.0, wind=42.35, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:08:25.123', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:09:02,152 [DEBUG][       Thread-604088][   transport.py][1871] : EOF in transport thread
2025-07-01 12:09:02,236 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:09:02,246 [DEBUG][       Thread-604091][   transport.py][1871] : starting thread (client mode): 0x83c82e0
2025-07-01 12:09:02,246 [DEBUG][       Thread-604091][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:09:02,262 [DEBUG][       Thread-604091][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:09:02,263 [ INFO][       Thread-604091][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:09:02,270 [DEBUG][       Thread-604091][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:09:02,270 [DEBUG][       Thread-604091][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:09:02,270 [DEBUG][       Thread-604091][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:09:02,271 [DEBUG][       Thread-604091][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:09:02,271 [DEBUG][       Thread-604091][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:09:02,271 [DEBUG][       Thread-604091][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:09:02,271 [DEBUG][       Thread-604091][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:09:02,271 [DEBUG][       Thread-604091][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:09:02,271 [DEBUG][       Thread-604091][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:09:02,271 [DEBUG][       Thread-604091][   transport.py][1871] : client lang: <none>
2025-07-01 12:09:02,271 [DEBUG][       Thread-604091][   transport.py][1871] : server lang: <none>
2025-07-01 12:09:02,271 [DEBUG][       Thread-604091][   transport.py][1871] : kex follows: False
2025-07-01 12:09:02,271 [DEBUG][       Thread-604091][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:09:02,272 [DEBUG][       Thread-604091][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:09:02,272 [DEBUG][       Thread-604091][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:09:02,272 [DEBUG][       Thread-604091][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:09:02,272 [DEBUG][       Thread-604091][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:09:02,272 [DEBUG][       Thread-604091][   transport.py][1871] : Compression: none
2025-07-01 12:09:02,272 [DEBUG][       Thread-604091][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:09:02,328 [DEBUG][       Thread-604091][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:09:02,329 [DEBUG][       Thread-604091][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:09:02,330 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:09:02,331 [DEBUG][       Thread-604091][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:09:02,331 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:09:02,387 [DEBUG][       Thread-604091][   transport.py][1871] : userauth is OK
2025-07-01 12:09:02,388 [DEBUG][       Thread-604091][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:09:02,388 [DEBUG][       Thread-604091][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:09:02,388 [DEBUG][       Thread-604091][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:09:02,388 [DEBUG][       Thread-604091][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:09:02,420 [ INFO][       Thread-604091][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:09:02,421 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:09:02,421 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:09:03,373 [DEBUG][Thread-604093 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:09:03,400 [DEBUG][       Thread-604091][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:09:03,401 [DEBUG][       Thread-604091][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:09:03,452 [DEBUG][       Thread-604091][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:09:03,452 [DEBUG][       Thread-604091][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:09:03,462 [DEBUG][       Thread-604091][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:09:03,471 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:09:03,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-07-01 12:09: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') -> 00000000
2025-07-01 12:09:03,490 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:09:03,490 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:09:03,491 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:09:03,499 [DEBUG][       Thread-604091][   transport.py][1871] : EOF in transport thread
2025-07-01 12:09:12,394 [DEBUG][Thread-604094 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:09:13,459 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:09:13,460 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:09:13,501 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:09:13,501 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:09:13,501 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:09:13,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-07-01 12:09:13,990 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 8, 44), 9.96, 50.46, 0.0, 42.35, 11.24, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:09:13,990 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:08:44
2025-07-01 12:09:14,075 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:09:14,079 [DEBUG][       Thread-604095][   transport.py][1871] : starting thread (client mode): 0x81d87f0
2025-07-01 12:09:14,079 [DEBUG][       Thread-604095][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:09:14,091 [DEBUG][       Thread-604095][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:09:14,091 [ INFO][       Thread-604095][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:09:14,094 [DEBUG][       Thread-604095][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:09:14,094 [DEBUG][       Thread-604095][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:09:14,095 [DEBUG][       Thread-604095][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:09:14,095 [DEBUG][       Thread-604095][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:09:14,095 [DEBUG][       Thread-604095][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:09:14,095 [DEBUG][       Thread-604095][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:09:14,095 [DEBUG][       Thread-604095][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:09:14,095 [DEBUG][       Thread-604095][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:09:14,095 [DEBUG][       Thread-604095][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:09:14,095 [DEBUG][       Thread-604095][   transport.py][1871] : client lang: <none>
2025-07-01 12:09:14,095 [DEBUG][       Thread-604095][   transport.py][1871] : server lang: <none>
2025-07-01 12:09:14,095 [DEBUG][       Thread-604095][   transport.py][1871] : kex follows: False
2025-07-01 12:09:14,095 [DEBUG][       Thread-604095][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:09:14,095 [DEBUG][       Thread-604095][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:09:14,095 [DEBUG][       Thread-604095][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:09:14,095 [DEBUG][       Thread-604095][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:09:14,095 [DEBUG][       Thread-604095][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:09:14,095 [DEBUG][       Thread-604095][   transport.py][1871] : Compression: none
2025-07-01 12:09:14,095 [DEBUG][       Thread-604095][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:09:14,112 [DEBUG][       Thread-604095][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:09:14,112 [DEBUG][       Thread-604095][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:09:14,113 [DEBUG][       Thread-604095][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:09:14,113 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:09:14,113 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:09:14,114 [DEBUG][       Thread-604095][   transport.py][1871] : userauth is OK
2025-07-01 12:09:14,127 [ INFO][       Thread-604095][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:09:14,127 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:09:14,783 [DEBUG][       Thread-604095][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:09:14,783 [DEBUG][       Thread-604095][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:09:14,824 [DEBUG][       Thread-604095][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:09:14,825 [DEBUG][       Thread-604095][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:09:14,827 [DEBUG][       Thread-604095][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:09:14,840 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:09:14,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:09:14,842 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:09:14,844 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:09:14,848 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:09:14,850 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:09:14,850 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:09:14,851 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:09:14,851 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.422513 -999.00  +11.10  43.51     54   +2.30 1 1 2 1 1   888    0 8.79 4.94 ----- 43.5 43.5 13.1 52.3 14.2 -24.4 13.3 -24.9 13.0 -23.5 13.8 -22.8
2025-07-01 12:09:14,851 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:09:14,851 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:09:14,851 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.422513
2025-07-01 12:09:14,851 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:09:14,852 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:09:14,852 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:09:14,852 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:09:14,852 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:09:14,852 [DEBUG][       Thread-604095][   transport.py][1871] : EOF in transport thread
2025-07-01 12:09:14,853 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:08:44', tmtdew=9.96, humidity=50.46, cloud=0.0, wind=42.35, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:08:25.123', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:09:14,937 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:09:14,947 [DEBUG][       Thread-604098][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 12:09:14,948 [DEBUG][       Thread-604098][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:09:14,963 [DEBUG][       Thread-604098][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:09:14,963 [ INFO][       Thread-604098][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:09:14,971 [DEBUG][       Thread-604098][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:09:14,971 [DEBUG][       Thread-604098][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:09:14,971 [DEBUG][       Thread-604098][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:09:14,971 [DEBUG][       Thread-604098][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:09:14,972 [DEBUG][       Thread-604098][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:09:14,972 [DEBUG][       Thread-604098][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:09:14,972 [DEBUG][       Thread-604098][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:09:14,972 [DEBUG][       Thread-604098][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:09:14,972 [DEBUG][       Thread-604098][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:09:14,972 [DEBUG][       Thread-604098][   transport.py][1871] : client lang: <none>
2025-07-01 12:09:14,972 [DEBUG][       Thread-604098][   transport.py][1871] : server lang: <none>
2025-07-01 12:09:14,972 [DEBUG][       Thread-604098][   transport.py][1871] : kex follows: False
2025-07-01 12:09:14,972 [DEBUG][       Thread-604098][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:09:14,972 [DEBUG][       Thread-604098][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:09:14,972 [DEBUG][       Thread-604098][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:09:14,972 [DEBUG][       Thread-604098][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:09:14,972 [DEBUG][       Thread-604098][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:09:14,972 [DEBUG][       Thread-604098][   transport.py][1871] : Compression: none
2025-07-01 12:09:14,972 [DEBUG][       Thread-604098][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:09:15,029 [DEBUG][       Thread-604098][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:09:15,029 [DEBUG][       Thread-604098][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:09:15,030 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:09:15,030 [DEBUG][       Thread-604098][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:09:15,031 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:09:15,087 [DEBUG][       Thread-604098][   transport.py][1871] : userauth is OK
2025-07-01 12:09:15,087 [DEBUG][       Thread-604098][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:09:15,087 [DEBUG][       Thread-604098][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:09:15,087 [DEBUG][       Thread-604098][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:09:15,087 [DEBUG][       Thread-604098][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:09:15,104 [ INFO][       Thread-604098][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:09:15,104 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:09:15,104 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:09:16,089 [DEBUG][       Thread-604098][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:09:16,090 [DEBUG][       Thread-604098][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:09:16,140 [DEBUG][       Thread-604098][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:09:16,140 [DEBUG][       Thread-604098][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:09:16,149 [DEBUG][       Thread-604098][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:09:16,158 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:09: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-07-01 12:09:16,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-07-01 12:09:16,177 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:09:16,177 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:09:16,178 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:09:16,186 [DEBUG][       Thread-604098][   transport.py][1871] : EOF in transport thread
2025-07-01 12:09:21,411 [DEBUG][Thread-604100 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:09:26,188 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:09:26,188 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:09:26,198 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:09:26,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-07-01 12:09:26,694 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 9, 16), 9.99, 50.05, 0.0, 35.31, 11.28, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:09:26,694 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:09:16
2025-07-01 12:09:26,778 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:09:26,784 [DEBUG][       Thread-604101][   transport.py][1871] : starting thread (client mode): 0x8106d70
2025-07-01 12:09:26,784 [DEBUG][       Thread-604101][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:09:26,805 [DEBUG][       Thread-604101][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:09:26,805 [ INFO][       Thread-604101][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:09:26,807 [DEBUG][       Thread-604101][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:09:26,807 [DEBUG][       Thread-604101][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:09:26,807 [DEBUG][       Thread-604101][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:09:26,807 [DEBUG][       Thread-604101][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:09:26,807 [DEBUG][       Thread-604101][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:09:26,807 [DEBUG][       Thread-604101][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:09:26,807 [DEBUG][       Thread-604101][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:09:26,807 [DEBUG][       Thread-604101][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:09:26,807 [DEBUG][       Thread-604101][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:09:26,807 [DEBUG][       Thread-604101][   transport.py][1871] : client lang: <none>
2025-07-01 12:09:26,807 [DEBUG][       Thread-604101][   transport.py][1871] : server lang: <none>
2025-07-01 12:09:26,807 [DEBUG][       Thread-604101][   transport.py][1871] : kex follows: False
2025-07-01 12:09:26,807 [DEBUG][       Thread-604101][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:09:26,807 [DEBUG][       Thread-604101][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:09:26,807 [DEBUG][       Thread-604101][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:09:26,807 [DEBUG][       Thread-604101][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:09:26,807 [DEBUG][       Thread-604101][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:09:26,807 [DEBUG][       Thread-604101][   transport.py][1871] : Compression: none
2025-07-01 12:09:26,808 [DEBUG][       Thread-604101][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:09:26,826 [DEBUG][       Thread-604101][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:09:26,826 [DEBUG][       Thread-604101][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:09:26,827 [DEBUG][       Thread-604101][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:09:26,827 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:09:26,827 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:09:26,828 [DEBUG][       Thread-604101][   transport.py][1871] : userauth is OK
2025-07-01 12:09:26,853 [ INFO][       Thread-604101][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:09:26,854 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:09:27,456 [DEBUG][       Thread-604101][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:09:27,456 [DEBUG][       Thread-604101][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:09:27,497 [DEBUG][       Thread-604101][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:09:27,497 [DEBUG][       Thread-604101][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:09:27,500 [DEBUG][       Thread-604101][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:09:27,515 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:09:27,515 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:09:27,517 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:09:27,520 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:09:27,525 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:09:27,527 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:09:27,528 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:09:27,528 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:09:27,528 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.422860 -999.00  +11.20  39.60     55   +2.60 1 1 2 1 1   888    0 8.57 5.55 ----- 39.6 39.6 50.4 46.2 14.3 -23.3 13.4 -24.4 13.1 -22.4 13.9 -21.5
2025-07-01 12:09:27,529 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:09:27,529 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:09:27,529 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.422860
2025-07-01 12:09:27,529 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:09:27,530 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:09:27,530 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:09:27,530 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:09:27,530 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:09:27,530 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:09:16', tmtdew=9.99, humidity=50.05, cloud=0.0, wind=35.31, temperature=11.28, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:08:55.104', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:09:27,531 [DEBUG][       Thread-604101][   transport.py][1871] : EOF in transport thread
2025-07-01 12:09:27,615 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:09:27,626 [DEBUG][       Thread-604104][   transport.py][1871] : starting thread (client mode): 0x83c82e0
2025-07-01 12:09:27,626 [DEBUG][       Thread-604104][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:09:27,644 [DEBUG][       Thread-604104][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:09:27,645 [ INFO][       Thread-604104][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:09:27,654 [DEBUG][       Thread-604104][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:09:27,654 [DEBUG][       Thread-604104][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:09:27,654 [DEBUG][       Thread-604104][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:09:27,654 [DEBUG][       Thread-604104][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:09:27,654 [DEBUG][       Thread-604104][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:09:27,654 [DEBUG][       Thread-604104][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:09:27,654 [DEBUG][       Thread-604104][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:09:27,654 [DEBUG][       Thread-604104][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:09:27,654 [DEBUG][       Thread-604104][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:09:27,655 [DEBUG][       Thread-604104][   transport.py][1871] : client lang: <none>
2025-07-01 12:09:27,655 [DEBUG][       Thread-604104][   transport.py][1871] : server lang: <none>
2025-07-01 12:09:27,655 [DEBUG][       Thread-604104][   transport.py][1871] : kex follows: False
2025-07-01 12:09:27,655 [DEBUG][       Thread-604104][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:09:27,655 [DEBUG][       Thread-604104][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:09:27,655 [DEBUG][       Thread-604104][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:09:27,655 [DEBUG][       Thread-604104][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:09:27,655 [DEBUG][       Thread-604104][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:09:27,655 [DEBUG][       Thread-604104][   transport.py][1871] : Compression: none
2025-07-01 12:09:27,655 [DEBUG][       Thread-604104][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:09:27,716 [DEBUG][       Thread-604104][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:09:27,717 [DEBUG][       Thread-604104][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:09:27,717 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:09:27,718 [DEBUG][       Thread-604104][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:09:27,719 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:09:27,775 [DEBUG][       Thread-604104][   transport.py][1871] : userauth is OK
2025-07-01 12:09:27,776 [DEBUG][       Thread-604104][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:09:27,776 [DEBUG][       Thread-604104][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:09:27,776 [DEBUG][       Thread-604104][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:09:27,776 [DEBUG][       Thread-604104][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:09:27,794 [ INFO][       Thread-604104][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:09:27,795 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:09:27,795 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:09:28,311 [DEBUG][Thread-604106 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:09:28,775 [DEBUG][       Thread-604104][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:09:28,775 [DEBUG][       Thread-604104][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:09:28,824 [DEBUG][       Thread-604104][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:09:28,824 [DEBUG][       Thread-604104][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:09:28,833 [DEBUG][       Thread-604104][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:09:28,846 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:09:28,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-07-01 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-07-01 12:09:28,868 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:09:28,868 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:09:28,869 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:09:28,877 [DEBUG][       Thread-604104][   transport.py][1871] : EOF in transport thread
2025-07-01 12:09:30,434 [DEBUG][Thread-604107 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:09:38,876 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:09:38,876 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:09:38,876 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:09:38,877 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:09:39,343 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 9, 16), 9.99, 50.05, 0.0, 35.31, 11.28, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:09:39,343 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:09:16
2025-07-01 12:09:39,426 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:09:39,430 [DEBUG][       Thread-604108][   transport.py][1871] : starting thread (client mode): 0x8104760
2025-07-01 12:09:39,430 [DEBUG][       Thread-604108][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:09:39,451 [DEBUG][       Thread-604108][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:09:39,451 [ INFO][       Thread-604108][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:09:39,455 [DEBUG][       Thread-604108][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:09:39,455 [DEBUG][       Thread-604108][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:09:39,455 [DEBUG][       Thread-604108][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:09:39,455 [DEBUG][       Thread-604108][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:09:39,455 [DEBUG][       Thread-604108][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:09:39,455 [DEBUG][       Thread-604108][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:09:39,455 [DEBUG][       Thread-604108][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:09:39,455 [DEBUG][       Thread-604108][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:09:39,455 [DEBUG][       Thread-604108][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:09:39,455 [DEBUG][       Thread-604108][   transport.py][1871] : client lang: <none>
2025-07-01 12:09:39,455 [DEBUG][       Thread-604108][   transport.py][1871] : server lang: <none>
2025-07-01 12:09:39,455 [DEBUG][       Thread-604108][   transport.py][1871] : kex follows: False
2025-07-01 12:09:39,455 [DEBUG][       Thread-604108][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:09:39,455 [DEBUG][       Thread-604108][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:09:39,455 [DEBUG][       Thread-604108][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:09:39,455 [DEBUG][       Thread-604108][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:09:39,455 [DEBUG][       Thread-604108][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:09:39,455 [DEBUG][       Thread-604108][   transport.py][1871] : Compression: none
2025-07-01 12:09:39,455 [DEBUG][       Thread-604108][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:09:39,472 [DEBUG][       Thread-604108][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:09:39,472 [DEBUG][       Thread-604108][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:09:39,473 [DEBUG][       Thread-604108][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:09:39,473 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:09:39,473 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:09:39,474 [DEBUG][       Thread-604108][   transport.py][1871] : userauth is OK
2025-07-01 12:09:39,477 [DEBUG][Thread-604110 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:09:39,488 [ INFO][       Thread-604108][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:09:39,489 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:09:40,076 [DEBUG][       Thread-604108][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:09:40,077 [DEBUG][       Thread-604108][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:09:40,121 [DEBUG][       Thread-604108][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:09:40,121 [DEBUG][       Thread-604108][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:09:40,124 [DEBUG][       Thread-604108][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:09:40,137 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:09:40,137 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:09:40,139 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:09:40,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:09:40,145 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:09:40,147 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:09:40,147 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:09:40,148 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:09:40,148 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.422860 -999.00  +11.20  39.60     55   +2.60 1 1 2 1 1   888    0 8.57 5.55 ----- 39.6 39.6 50.4 46.2 14.3 -23.3 13.4 -24.4 13.1 -22.4 13.9 -21.5
2025-07-01 12:09:40,148 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:09:40,148 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:09:40,148 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.422860
2025-07-01 12:09:40,149 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:09:40,149 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:09:40,149 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:09:40,149 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:09:40,149 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:09:40,150 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:09:16', tmtdew=9.99, humidity=50.05, cloud=0.0, wind=35.31, temperature=11.28, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:08:55.104', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:09:40,150 [DEBUG][       Thread-604108][   transport.py][1871] : EOF in transport thread
2025-07-01 12:09:40,233 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:09:40,242 [DEBUG][       Thread-604112][   transport.py][1871] : starting thread (client mode): 0x81e6500
2025-07-01 12:09:40,243 [DEBUG][       Thread-604112][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:09:40,257 [DEBUG][       Thread-604112][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:09:40,258 [ INFO][       Thread-604112][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:09:40,271 [DEBUG][       Thread-604112][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:09:40,272 [DEBUG][       Thread-604112][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:09:40,272 [DEBUG][       Thread-604112][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:09:40,272 [DEBUG][       Thread-604112][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:09:40,272 [DEBUG][       Thread-604112][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:09:40,272 [DEBUG][       Thread-604112][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:09:40,272 [DEBUG][       Thread-604112][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:09:40,272 [DEBUG][       Thread-604112][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:09:40,272 [DEBUG][       Thread-604112][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:09:40,272 [DEBUG][       Thread-604112][   transport.py][1871] : client lang: <none>
2025-07-01 12:09:40,272 [DEBUG][       Thread-604112][   transport.py][1871] : server lang: <none>
2025-07-01 12:09:40,272 [DEBUG][       Thread-604112][   transport.py][1871] : kex follows: False
2025-07-01 12:09:40,272 [DEBUG][       Thread-604112][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:09:40,272 [DEBUG][       Thread-604112][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:09:40,272 [DEBUG][       Thread-604112][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:09:40,273 [DEBUG][       Thread-604112][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:09:40,273 [DEBUG][       Thread-604112][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:09:40,273 [DEBUG][       Thread-604112][   transport.py][1871] : Compression: none
2025-07-01 12:09:40,273 [DEBUG][       Thread-604112][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:09:40,329 [DEBUG][       Thread-604112][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:09:40,329 [DEBUG][       Thread-604112][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:09:40,330 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:09:40,330 [DEBUG][       Thread-604112][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:09:40,331 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:09:40,387 [DEBUG][       Thread-604112][   transport.py][1871] : userauth is OK
2025-07-01 12:09:40,387 [DEBUG][       Thread-604112][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:09:40,388 [DEBUG][       Thread-604112][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:09:40,388 [DEBUG][       Thread-604112][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:09:40,388 [DEBUG][       Thread-604112][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:09:40,406 [ INFO][       Thread-604112][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:09:40,407 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:09:40,407 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:09:41,361 [DEBUG][       Thread-604112][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:09:41,361 [DEBUG][       Thread-604112][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:09:41,411 [DEBUG][       Thread-604112][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:09:41,411 [DEBUG][       Thread-604112][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:09:41,420 [DEBUG][       Thread-604112][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:09:41,434 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:09:41,434 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 12:09: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') -> 00000000
2025-07-01 12:09:41,456 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:09:41,456 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:09:41,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:09:41,464 [DEBUG][       Thread-604112][   transport.py][1871] : EOF in transport thread
2025-07-01 12:09:48,499 [DEBUG][Thread-604114 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:09:51,467 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:09:51,467 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:09:51,467 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:09:51,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-07-01 12:09:51,941 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 9, 48), 9.99, 50.04, 0.0, 38.78, 11.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:09:51,941 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:09:48
2025-07-01 12:09:52,025 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:09:52,031 [DEBUG][       Thread-604115][   transport.py][1871] : starting thread (client mode): 0x8105960
2025-07-01 12:09:52,031 [DEBUG][       Thread-604115][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:09:52,053 [DEBUG][       Thread-604115][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:09:52,053 [ INFO][       Thread-604115][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:09:52,057 [DEBUG][       Thread-604115][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:09:52,057 [DEBUG][       Thread-604115][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:09:52,057 [DEBUG][       Thread-604115][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:09:52,057 [DEBUG][       Thread-604115][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:09:52,057 [DEBUG][       Thread-604115][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:09:52,057 [DEBUG][       Thread-604115][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:09:52,057 [DEBUG][       Thread-604115][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:09:52,057 [DEBUG][       Thread-604115][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:09:52,057 [DEBUG][       Thread-604115][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:09:52,057 [DEBUG][       Thread-604115][   transport.py][1871] : client lang: <none>
2025-07-01 12:09:52,057 [DEBUG][       Thread-604115][   transport.py][1871] : server lang: <none>
2025-07-01 12:09:52,057 [DEBUG][       Thread-604115][   transport.py][1871] : kex follows: False
2025-07-01 12:09:52,057 [DEBUG][       Thread-604115][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:09:52,057 [DEBUG][       Thread-604115][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:09:52,057 [DEBUG][       Thread-604115][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:09:52,057 [DEBUG][       Thread-604115][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:09:52,057 [DEBUG][       Thread-604115][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:09:52,057 [DEBUG][       Thread-604115][   transport.py][1871] : Compression: none
2025-07-01 12:09:52,057 [DEBUG][       Thread-604115][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:09:52,074 [DEBUG][       Thread-604115][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:09:52,074 [DEBUG][       Thread-604115][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:09:52,074 [DEBUG][       Thread-604115][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:09:52,074 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:09:52,074 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:09:52,075 [DEBUG][       Thread-604115][   transport.py][1871] : userauth is OK
2025-07-01 12:09:52,099 [ INFO][       Thread-604115][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:09:52,100 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:09:52,725 [DEBUG][       Thread-604115][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:09:52,725 [DEBUG][       Thread-604115][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:09:52,769 [DEBUG][       Thread-604115][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:09:52,769 [DEBUG][       Thread-604115][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:09:52,772 [DEBUG][       Thread-604115][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:09:52,786 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:09:52,787 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:09:52,788 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:09:52,790 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:09:52,796 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:09:52,798 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:09:52,799 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:09:52,799 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:09:52,799 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.422860 -999.00  +11.20  39.60     55   +2.60 1 1 2 1 1   888    0 8.57 5.55 ----- 39.6 39.6 50.4 46.2 14.3 -23.3 13.4 -24.4 13.1 -22.4 13.9 -21.5
2025-07-01 12:09:52,799 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:09:52,800 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:09:52,800 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.422860
2025-07-01 12:09:52,800 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:09:52,801 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:09:52,801 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:09:52,801 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:09:52,801 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:09:52,801 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:09:48', tmtdew=9.99, humidity=50.04, cloud=0.0, wind=38.78, temperature=11.32, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:08:55.104', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:09:52,801 [DEBUG][       Thread-604115][   transport.py][1871] : EOF in transport thread
2025-07-01 12:09:52,884 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:09:52,894 [DEBUG][       Thread-604118][   transport.py][1871] : starting thread (client mode): 0x818d000
2025-07-01 12:09:52,894 [DEBUG][       Thread-604118][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:09:52,910 [DEBUG][       Thread-604118][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:09:52,910 [ INFO][       Thread-604118][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:09:52,917 [DEBUG][       Thread-604118][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:09:52,917 [DEBUG][       Thread-604118][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:09:52,917 [DEBUG][       Thread-604118][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:09:52,917 [DEBUG][       Thread-604118][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:09:52,917 [DEBUG][       Thread-604118][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:09:52,917 [DEBUG][       Thread-604118][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:09:52,917 [DEBUG][       Thread-604118][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:09:52,918 [DEBUG][       Thread-604118][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:09:52,918 [DEBUG][       Thread-604118][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:09:52,918 [DEBUG][       Thread-604118][   transport.py][1871] : client lang: <none>
2025-07-01 12:09:52,918 [DEBUG][       Thread-604118][   transport.py][1871] : server lang: <none>
2025-07-01 12:09:52,918 [DEBUG][       Thread-604118][   transport.py][1871] : kex follows: False
2025-07-01 12:09:52,918 [DEBUG][       Thread-604118][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:09:52,918 [DEBUG][       Thread-604118][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:09:52,918 [DEBUG][       Thread-604118][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:09:52,918 [DEBUG][       Thread-604118][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:09:52,918 [DEBUG][       Thread-604118][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:09:52,918 [DEBUG][       Thread-604118][   transport.py][1871] : Compression: none
2025-07-01 12:09:52,918 [DEBUG][       Thread-604118][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:09:52,975 [DEBUG][       Thread-604118][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:09:52,976 [DEBUG][       Thread-604118][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:09:52,977 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:09:52,977 [DEBUG][       Thread-604118][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:09:52,978 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:09:53,036 [DEBUG][       Thread-604118][   transport.py][1871] : userauth is OK
2025-07-01 12:09:53,036 [DEBUG][       Thread-604118][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:09:53,036 [DEBUG][       Thread-604118][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:09:53,036 [DEBUG][       Thread-604118][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:09:53,036 [DEBUG][       Thread-604118][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:09:53,055 [ INFO][       Thread-604118][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:09:53,055 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:09:53,056 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:09:54,095 [DEBUG][       Thread-604118][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:09:54,095 [DEBUG][       Thread-604118][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:09:54,144 [DEBUG][       Thread-604118][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:09:54,144 [DEBUG][       Thread-604118][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:09:54,153 [DEBUG][       Thread-604118][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:09:54,162 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:09:54,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-07-01 12:09:54,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-07-01 12:09:54,187 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:09:54,187 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:09:54,188 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:09:54,196 [DEBUG][       Thread-604118][   transport.py][1871] : EOF in transport thread
2025-07-01 12:09:57,517 [DEBUG][Thread-604120 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:10:04,198 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:10:04,198 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:10:04,199 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:10:04,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-07-01 12:10:04,686 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 9, 48), 9.99, 50.04, 0.0, 38.78, 11.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:10:04,686 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:09:48
2025-07-01 12:10:04,769 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:10:04,773 [DEBUG][       Thread-604121][   transport.py][1871] : starting thread (client mode): 0x82b2170
2025-07-01 12:10:04,773 [DEBUG][       Thread-604121][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:10:04,792 [DEBUG][       Thread-604121][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:10:04,792 [ INFO][       Thread-604121][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:10:04,795 [DEBUG][       Thread-604121][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:10:04,795 [DEBUG][       Thread-604121][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:10:04,795 [DEBUG][       Thread-604121][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:10:04,795 [DEBUG][       Thread-604121][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:10:04,795 [DEBUG][       Thread-604121][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:10:04,795 [DEBUG][       Thread-604121][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:10:04,795 [DEBUG][       Thread-604121][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:10:04,795 [DEBUG][       Thread-604121][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:10:04,795 [DEBUG][       Thread-604121][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:10:04,795 [DEBUG][       Thread-604121][   transport.py][1871] : client lang: <none>
2025-07-01 12:10:04,795 [DEBUG][       Thread-604121][   transport.py][1871] : server lang: <none>
2025-07-01 12:10:04,795 [DEBUG][       Thread-604121][   transport.py][1871] : kex follows: False
2025-07-01 12:10:04,795 [DEBUG][       Thread-604121][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:10:04,796 [DEBUG][       Thread-604121][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:10:04,796 [DEBUG][       Thread-604121][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:10:04,796 [DEBUG][       Thread-604121][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:10:04,796 [DEBUG][       Thread-604121][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:10:04,796 [DEBUG][       Thread-604121][   transport.py][1871] : Compression: none
2025-07-01 12:10:04,796 [DEBUG][       Thread-604121][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:10:04,811 [DEBUG][       Thread-604121][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:10:04,811 [DEBUG][       Thread-604121][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:10:04,812 [DEBUG][       Thread-604121][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:10:04,812 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:10:04,812 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:10:04,813 [DEBUG][       Thread-604121][   transport.py][1871] : userauth is OK
2025-07-01 12:10:04,838 [ INFO][       Thread-604121][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:10:04,839 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:10:05,490 [DEBUG][       Thread-604121][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:10:05,491 [DEBUG][       Thread-604121][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:10:05,533 [DEBUG][       Thread-604121][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:10:05,533 [DEBUG][       Thread-604121][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:10:05,537 [DEBUG][       Thread-604121][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:10:05,550 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:10:05,550 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:10:05,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:10:05,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:10:05,559 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:10:05,561 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:10:05,561 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:10:05,562 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:10:05,562 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.423555 -999.00  +11.30  29.82     55   +2.60 1 1 1 1 1   888    0 8.93 7.72 ----- 29.8 29.8 26.4 49.1 14.3 -24.0 13.4 -24.5 13.1 -23.3 13.9 -22.2
2025-07-01 12:10:05,562 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:10:05,562 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:10:05,562 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.423555
2025-07-01 12:10:05,563 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:10:05,563 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:10:05,563 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:10:05,563 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:10:05,563 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:10:05,564 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:09:48', tmtdew=9.99, humidity=50.04, cloud=0.0, wind=38.78, temperature=11.32, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:09:55.152', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:10:05,565 [DEBUG][       Thread-604121][   transport.py][1871] : EOF in transport thread
2025-07-01 12:10:05,647 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:10:05,656 [DEBUG][       Thread-604124][   transport.py][1871] : starting thread (client mode): 0x81e7a90
2025-07-01 12:10:05,656 [DEBUG][       Thread-604124][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:10:05,672 [DEBUG][       Thread-604124][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:10:05,672 [ INFO][       Thread-604124][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:10:05,680 [DEBUG][       Thread-604124][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:10:05,680 [DEBUG][       Thread-604124][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:10:05,680 [DEBUG][       Thread-604124][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:10:05,680 [DEBUG][       Thread-604124][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:10:05,680 [DEBUG][       Thread-604124][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:10:05,680 [DEBUG][       Thread-604124][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:10:05,680 [DEBUG][       Thread-604124][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:10:05,680 [DEBUG][       Thread-604124][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:10:05,680 [DEBUG][       Thread-604124][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:10:05,680 [DEBUG][       Thread-604124][   transport.py][1871] : client lang: <none>
2025-07-01 12:10:05,680 [DEBUG][       Thread-604124][   transport.py][1871] : server lang: <none>
2025-07-01 12:10:05,680 [DEBUG][       Thread-604124][   transport.py][1871] : kex follows: False
2025-07-01 12:10:05,680 [DEBUG][       Thread-604124][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:10:05,680 [DEBUG][       Thread-604124][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:10:05,680 [DEBUG][       Thread-604124][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:10:05,680 [DEBUG][       Thread-604124][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:10:05,680 [DEBUG][       Thread-604124][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:10:05,680 [DEBUG][       Thread-604124][   transport.py][1871] : Compression: none
2025-07-01 12:10:05,680 [DEBUG][       Thread-604124][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:10:05,746 [DEBUG][       Thread-604124][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:10:05,746 [DEBUG][       Thread-604124][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:10:05,747 [DEBUG][       Thread-604124][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:10:05,747 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:10:05,748 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:10:05,807 [DEBUG][       Thread-604124][   transport.py][1871] : userauth is OK
2025-07-01 12:10:05,808 [DEBUG][       Thread-604124][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:10:05,808 [DEBUG][       Thread-604124][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:10:05,808 [DEBUG][       Thread-604124][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:10:05,808 [DEBUG][       Thread-604124][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:10:05,830 [ INFO][       Thread-604124][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:10:05,830 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:10:05,830 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:10:06,549 [DEBUG][Thread-604126 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:10:06,852 [DEBUG][       Thread-604124][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:10:06,852 [DEBUG][       Thread-604124][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:10:06,900 [DEBUG][       Thread-604124][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:10:06,900 [DEBUG][       Thread-604124][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:10:06,908 [DEBUG][       Thread-604124][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:10:06,916 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:10:06,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-07-01 12:10:06,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-07-01 12:10:06,932 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:10:06,932 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:10:06,932 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:10:06,940 [DEBUG][       Thread-604124][   transport.py][1871] : EOF in transport thread
2025-07-01 12:10:13,600 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:10:13,601 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:10:15,572 [DEBUG][Thread-604127 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:10:16,943 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:10:16,943 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:10:16,943 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:10:16,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-07-01 12:10:17,423 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 9, 48), 9.99, 50.04, 0.0, 38.78, 11.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:10:17,424 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:09:48
2025-07-01 12:10:17,507 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:10:17,511 [DEBUG][       Thread-604128][   transport.py][1871] : starting thread (client mode): 0x81db7c0
2025-07-01 12:10:17,512 [DEBUG][       Thread-604128][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:10:17,532 [DEBUG][       Thread-604128][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:10:17,532 [ INFO][       Thread-604128][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:10:17,535 [DEBUG][       Thread-604128][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:10:17,535 [DEBUG][       Thread-604128][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:10:17,535 [DEBUG][       Thread-604128][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:10:17,535 [DEBUG][       Thread-604128][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:10:17,535 [DEBUG][       Thread-604128][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:10:17,535 [DEBUG][       Thread-604128][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:10:17,535 [DEBUG][       Thread-604128][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:10:17,535 [DEBUG][       Thread-604128][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:10:17,535 [DEBUG][       Thread-604128][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:10:17,535 [DEBUG][       Thread-604128][   transport.py][1871] : client lang: <none>
2025-07-01 12:10:17,535 [DEBUG][       Thread-604128][   transport.py][1871] : server lang: <none>
2025-07-01 12:10:17,535 [DEBUG][       Thread-604128][   transport.py][1871] : kex follows: False
2025-07-01 12:10:17,535 [DEBUG][       Thread-604128][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:10:17,535 [DEBUG][       Thread-604128][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:10:17,535 [DEBUG][       Thread-604128][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:10:17,535 [DEBUG][       Thread-604128][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:10:17,535 [DEBUG][       Thread-604128][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:10:17,535 [DEBUG][       Thread-604128][   transport.py][1871] : Compression: none
2025-07-01 12:10:17,535 [DEBUG][       Thread-604128][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:10:17,552 [DEBUG][       Thread-604128][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:10:17,552 [DEBUG][       Thread-604128][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:10:17,553 [DEBUG][       Thread-604128][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:10:17,553 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:10:17,553 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:10:17,554 [DEBUG][       Thread-604128][   transport.py][1871] : userauth is OK
2025-07-01 12:10:17,578 [ INFO][       Thread-604128][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:10:17,579 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:10:18,252 [DEBUG][       Thread-604128][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:10:18,253 [DEBUG][       Thread-604128][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:10:18,297 [DEBUG][       Thread-604128][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:10:18,297 [DEBUG][       Thread-604128][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:10:18,300 [DEBUG][       Thread-604128][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:10:18,312 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:10:18,312 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:10:18,314 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:10:18,315 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:10:18,320 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:10:18,322 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:10:18,322 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:10:18,322 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:10:18,322 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.423555 -999.00  +11.30  29.82     55   +2.60 1 1 1 1 1   888    0 8.93 7.72 ----- 29.8 29.8 26.4 49.1 14.3 -24.0 13.4 -24.5 13.1 -23.3 13.9 -22.2
2025-07-01 12:10:18,323 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:10:18,323 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:10:18,323 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.423555
2025-07-01 12:10:18,323 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:10:18,324 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:10:18,324 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:10:18,324 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:10:18,324 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:10:18,324 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:09:48', tmtdew=9.99, humidity=50.04, cloud=0.0, wind=38.78, temperature=11.32, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:09:55.152', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:10:18,325 [DEBUG][       Thread-604128][   transport.py][1871] : EOF in transport thread
2025-07-01 12:10:18,407 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:10:18,419 [DEBUG][       Thread-604131][   transport.py][1871] : starting thread (client mode): 0x8155c30
2025-07-01 12:10:18,419 [DEBUG][       Thread-604131][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:10:18,434 [DEBUG][       Thread-604131][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:10:18,434 [ INFO][       Thread-604131][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:10:18,441 [DEBUG][       Thread-604131][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:10:18,442 [DEBUG][       Thread-604131][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:10:18,442 [DEBUG][       Thread-604131][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:10:18,442 [DEBUG][       Thread-604131][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:10:18,442 [DEBUG][       Thread-604131][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:10:18,442 [DEBUG][       Thread-604131][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:10:18,442 [DEBUG][       Thread-604131][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:10:18,442 [DEBUG][       Thread-604131][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:10:18,442 [DEBUG][       Thread-604131][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:10:18,442 [DEBUG][       Thread-604131][   transport.py][1871] : client lang: <none>
2025-07-01 12:10:18,442 [DEBUG][       Thread-604131][   transport.py][1871] : server lang: <none>
2025-07-01 12:10:18,442 [DEBUG][       Thread-604131][   transport.py][1871] : kex follows: False
2025-07-01 12:10:18,442 [DEBUG][       Thread-604131][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:10:18,442 [DEBUG][       Thread-604131][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:10:18,442 [DEBUG][       Thread-604131][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:10:18,442 [DEBUG][       Thread-604131][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:10:18,442 [DEBUG][       Thread-604131][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:10:18,442 [DEBUG][       Thread-604131][   transport.py][1871] : Compression: none
2025-07-01 12:10:18,442 [DEBUG][       Thread-604131][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:10:18,499 [DEBUG][       Thread-604131][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:10:18,500 [DEBUG][       Thread-604131][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:10:18,500 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:10:18,501 [DEBUG][       Thread-604131][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:10:18,501 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:10:18,555 [DEBUG][       Thread-604131][   transport.py][1871] : userauth is OK
2025-07-01 12:10:18,555 [DEBUG][       Thread-604131][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:10:18,555 [DEBUG][       Thread-604131][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:10:18,556 [DEBUG][       Thread-604131][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:10:18,556 [DEBUG][       Thread-604131][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:10:18,575 [ INFO][       Thread-604131][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:10:18,575 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:10:18,575 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:10:19,552 [DEBUG][       Thread-604131][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:10:19,553 [DEBUG][       Thread-604131][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:10:19,604 [DEBUG][       Thread-604131][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:10:19,604 [DEBUG][       Thread-604131][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:10:19,613 [DEBUG][       Thread-604131][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:10:19,623 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:10:19,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-07-01 12:10:19,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-07-01 12:10:19,640 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:10:19,641 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:10:19,641 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:10:19,649 [DEBUG][       Thread-604131][   transport.py][1871] : EOF in transport thread
2025-07-01 12:10:24,596 [DEBUG][Thread-604133 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:10:28,359 [DEBUG][Thread-604134 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:10:29,652 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:10:29,652 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:10:29,652 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:10:29,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-07-01 12:10:30,143 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 10, 19), 10.04, 49.89, 0.0, 28.35, 11.34, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:10:30,143 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:10:19
2025-07-01 12:10:30,227 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:10:30,234 [DEBUG][       Thread-604135][   transport.py][1871] : starting thread (client mode): 0x82b1990
2025-07-01 12:10:30,234 [DEBUG][       Thread-604135][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:10:30,253 [DEBUG][       Thread-604135][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:10:30,253 [ INFO][       Thread-604135][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:10:30,257 [DEBUG][       Thread-604135][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:10:30,257 [DEBUG][       Thread-604135][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:10:30,257 [DEBUG][       Thread-604135][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:10:30,257 [DEBUG][       Thread-604135][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:10:30,257 [DEBUG][       Thread-604135][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:10:30,257 [DEBUG][       Thread-604135][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:10:30,257 [DEBUG][       Thread-604135][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:10:30,257 [DEBUG][       Thread-604135][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:10:30,257 [DEBUG][       Thread-604135][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:10:30,257 [DEBUG][       Thread-604135][   transport.py][1871] : client lang: <none>
2025-07-01 12:10:30,257 [DEBUG][       Thread-604135][   transport.py][1871] : server lang: <none>
2025-07-01 12:10:30,257 [DEBUG][       Thread-604135][   transport.py][1871] : kex follows: False
2025-07-01 12:10:30,257 [DEBUG][       Thread-604135][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:10:30,257 [DEBUG][       Thread-604135][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:10:30,257 [DEBUG][       Thread-604135][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:10:30,257 [DEBUG][       Thread-604135][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:10:30,257 [DEBUG][       Thread-604135][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:10:30,257 [DEBUG][       Thread-604135][   transport.py][1871] : Compression: none
2025-07-01 12:10:30,257 [DEBUG][       Thread-604135][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:10:30,273 [DEBUG][       Thread-604135][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:10:30,274 [DEBUG][       Thread-604135][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:10:30,274 [DEBUG][       Thread-604135][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:10:30,274 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:10:30,275 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:10:30,276 [DEBUG][       Thread-604135][   transport.py][1871] : userauth is OK
2025-07-01 12:10:30,300 [ INFO][       Thread-604135][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:10:30,301 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:10:30,924 [DEBUG][       Thread-604135][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:10:30,924 [DEBUG][       Thread-604135][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:10:30,969 [DEBUG][       Thread-604135][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:10:30,969 [DEBUG][       Thread-604135][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:10:30,972 [DEBUG][       Thread-604135][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:10:30,984 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:10:30,985 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:10:30,986 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:10:30,988 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:10:30,994 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:10:30,996 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:10:30,996 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:10:30,997 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:10:30,997 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.423555 -999.00  +11.30  29.82     55   +2.60 1 1 1 1 1   888    0 8.93 7.72 ----- 29.8 29.8 26.4 49.1 14.3 -24.0 13.4 -24.5 13.1 -23.3 13.9 -22.2
2025-07-01 12:10:30,997 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:10:30,997 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:10:30,997 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.423555
2025-07-01 12:10:30,997 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:10:30,998 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:10:30,998 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:10:30,998 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:10:30,998 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:10:30,998 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:10:19', tmtdew=10.04, humidity=49.89, cloud=0.0, wind=28.35, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:09:55.152', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:10:30,999 [DEBUG][       Thread-604135][   transport.py][1871] : EOF in transport thread
2025-07-01 12:10:31,082 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:10:31,092 [DEBUG][       Thread-604138][   transport.py][1871] : starting thread (client mode): 0x8393f40
2025-07-01 12:10:31,092 [DEBUG][       Thread-604138][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:10:31,109 [DEBUG][       Thread-604138][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:10:31,109 [ INFO][       Thread-604138][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:10:31,116 [DEBUG][       Thread-604138][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:10:31,116 [DEBUG][       Thread-604138][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:10:31,116 [DEBUG][       Thread-604138][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:10:31,117 [DEBUG][       Thread-604138][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:10:31,117 [DEBUG][       Thread-604138][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:10:31,117 [DEBUG][       Thread-604138][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:10:31,117 [DEBUG][       Thread-604138][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:10:31,117 [DEBUG][       Thread-604138][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:10:31,117 [DEBUG][       Thread-604138][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:10:31,117 [DEBUG][       Thread-604138][   transport.py][1871] : client lang: <none>
2025-07-01 12:10:31,117 [DEBUG][       Thread-604138][   transport.py][1871] : server lang: <none>
2025-07-01 12:10:31,117 [DEBUG][       Thread-604138][   transport.py][1871] : kex follows: False
2025-07-01 12:10:31,117 [DEBUG][       Thread-604138][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:10:31,117 [DEBUG][       Thread-604138][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:10:31,117 [DEBUG][       Thread-604138][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:10:31,117 [DEBUG][       Thread-604138][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:10:31,117 [DEBUG][       Thread-604138][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:10:31,117 [DEBUG][       Thread-604138][   transport.py][1871] : Compression: none
2025-07-01 12:10:31,117 [DEBUG][       Thread-604138][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:10:31,177 [DEBUG][       Thread-604138][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:10:31,178 [DEBUG][       Thread-604138][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:10:31,178 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:10:31,179 [DEBUG][       Thread-604138][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:10:31,179 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:10:31,235 [DEBUG][       Thread-604138][   transport.py][1871] : userauth is OK
2025-07-01 12:10:31,236 [DEBUG][       Thread-604138][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:10:31,236 [DEBUG][       Thread-604138][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:10:31,236 [DEBUG][       Thread-604138][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:10:31,236 [DEBUG][       Thread-604138][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:10:31,255 [ INFO][       Thread-604138][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:10:31,255 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:10:31,256 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:10:32,263 [DEBUG][       Thread-604138][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:10:32,263 [DEBUG][       Thread-604138][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:10:32,312 [DEBUG][       Thread-604138][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:10:32,312 [DEBUG][       Thread-604138][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:10:32,321 [DEBUG][       Thread-604138][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:10:32,331 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:10: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-07-01 12:10:32,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-07-01 12:10:32,352 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:10:32,352 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:10:32,352 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:10:32,361 [DEBUG][       Thread-604138][   transport.py][1871] : EOF in transport thread
2025-07-01 12:10:33,615 [DEBUG][Thread-604140 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:10:42,363 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:10:42,363 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:10:42,363 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:10:42,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-07-01 12:10:42,637 [DEBUG][Thread-604141 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:10:42,851 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 10, 19), 10.04, 49.89, 0.0, 28.35, 11.34, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:10:42,851 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:10:19
2025-07-01 12:10:42,936 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:10:42,940 [DEBUG][       Thread-604142][   transport.py][1871] : starting thread (client mode): 0x8170610
2025-07-01 12:10:42,940 [DEBUG][       Thread-604142][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:10:42,960 [DEBUG][       Thread-604142][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:10:42,960 [ INFO][       Thread-604142][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:10:42,963 [DEBUG][       Thread-604142][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:10:42,963 [DEBUG][       Thread-604142][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:10:42,963 [DEBUG][       Thread-604142][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:10:42,963 [DEBUG][       Thread-604142][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:10:42,963 [DEBUG][       Thread-604142][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:10:42,963 [DEBUG][       Thread-604142][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:10:42,963 [DEBUG][       Thread-604142][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:10:42,963 [DEBUG][       Thread-604142][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:10:42,963 [DEBUG][       Thread-604142][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:10:42,964 [DEBUG][       Thread-604142][   transport.py][1871] : client lang: <none>
2025-07-01 12:10:42,964 [DEBUG][       Thread-604142][   transport.py][1871] : server lang: <none>
2025-07-01 12:10:42,964 [DEBUG][       Thread-604142][   transport.py][1871] : kex follows: False
2025-07-01 12:10:42,964 [DEBUG][       Thread-604142][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:10:42,964 [DEBUG][       Thread-604142][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:10:42,964 [DEBUG][       Thread-604142][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:10:42,964 [DEBUG][       Thread-604142][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:10:42,964 [DEBUG][       Thread-604142][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:10:42,964 [DEBUG][       Thread-604142][   transport.py][1871] : Compression: none
2025-07-01 12:10:42,964 [DEBUG][       Thread-604142][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:10:42,979 [DEBUG][       Thread-604142][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:10:42,979 [DEBUG][       Thread-604142][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:10:42,980 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:10:42,980 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:10:42,980 [DEBUG][       Thread-604142][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:10:43,022 [DEBUG][       Thread-604142][   transport.py][1871] : userauth is OK
2025-07-01 12:10:43,046 [ INFO][       Thread-604142][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:10:43,046 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:10:43,711 [DEBUG][       Thread-604142][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:10:43,711 [DEBUG][       Thread-604142][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:10:43,753 [DEBUG][       Thread-604142][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:10:43,753 [DEBUG][       Thread-604142][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:10:43,764 [DEBUG][       Thread-604142][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:10:43,775 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:10:43,776 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:10:43,777 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:10:43,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:10:43,783 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:10:43,784 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:10:43,784 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:10:43,785 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:10:43,785 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.423902 -999.00  +11.20  39.41     54   +2.40 1 1 2 1 1   888    0 8.93 8.17 ----- 39.4 39.4 46.2 50.2 14.3 -23.9 13.4 -25.3 13.1 -23.1 14.0 -22.3
2025-07-01 12:10:43,785 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:10:43,785 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:10:43,785 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.423902
2025-07-01 12:10:43,786 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:10:43,786 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:10:43,786 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:10:43,786 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:10:43,786 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:10:43,786 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:10:19', tmtdew=10.04, humidity=49.89, cloud=0.0, wind=28.35, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:10:25.133', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:10:43,787 [DEBUG][       Thread-604142][   transport.py][1871] : EOF in transport thread
2025-07-01 12:10:43,864 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:10:43,873 [DEBUG][       Thread-604145][   transport.py][1871] : starting thread (client mode): 0x83c8400
2025-07-01 12:10:43,873 [DEBUG][       Thread-604145][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:10:43,887 [DEBUG][       Thread-604145][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:10:43,887 [ INFO][       Thread-604145][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:10:43,895 [DEBUG][       Thread-604145][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:10:43,895 [DEBUG][       Thread-604145][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:10:43,895 [DEBUG][       Thread-604145][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:10:43,895 [DEBUG][       Thread-604145][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:10:43,895 [DEBUG][       Thread-604145][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:10:43,895 [DEBUG][       Thread-604145][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:10:43,895 [DEBUG][       Thread-604145][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:10:43,895 [DEBUG][       Thread-604145][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:10:43,895 [DEBUG][       Thread-604145][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:10:43,895 [DEBUG][       Thread-604145][   transport.py][1871] : client lang: <none>
2025-07-01 12:10:43,895 [DEBUG][       Thread-604145][   transport.py][1871] : server lang: <none>
2025-07-01 12:10:43,895 [DEBUG][       Thread-604145][   transport.py][1871] : kex follows: False
2025-07-01 12:10:43,895 [DEBUG][       Thread-604145][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:10:43,895 [DEBUG][       Thread-604145][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:10:43,896 [DEBUG][       Thread-604145][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:10:43,896 [DEBUG][       Thread-604145][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:10:43,896 [DEBUG][       Thread-604145][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:10:43,896 [DEBUG][       Thread-604145][   transport.py][1871] : Compression: none
2025-07-01 12:10:43,896 [DEBUG][       Thread-604145][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:10:43,952 [DEBUG][       Thread-604145][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:10:43,952 [DEBUG][       Thread-604145][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:10:43,953 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:10:43,953 [DEBUG][       Thread-604145][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:10:43,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:10:44,011 [DEBUG][       Thread-604145][   transport.py][1871] : userauth is OK
2025-07-01 12:10:44,012 [DEBUG][       Thread-604145][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:10:44,012 [DEBUG][       Thread-604145][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:10:44,012 [DEBUG][       Thread-604145][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:10:44,012 [DEBUG][       Thread-604145][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:10:44,035 [ INFO][       Thread-604145][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:10:44,035 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:10:44,036 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:10:44,995 [DEBUG][       Thread-604145][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:10:44,995 [DEBUG][       Thread-604145][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:10:45,044 [DEBUG][       Thread-604145][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:10:45,044 [DEBUG][       Thread-604145][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:10:45,053 [DEBUG][       Thread-604145][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:10:45,062 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:10:45,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-07-01 12:10: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-07-01 12:10:45,081 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:10:45,081 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:10:45,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:10:45,089 [DEBUG][       Thread-604145][   transport.py][1871] : EOF in transport thread
2025-07-01 12:10:51,658 [DEBUG][Thread-604147 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:10:55,092 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:10:55,092 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:10:55,092 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:10:55,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-07-01 12:10:55,558 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 10, 51), 9.98, 50.07, 0.0, 33.38, 11.26, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:10:55,559 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:10:51
2025-07-01 12:10:55,644 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:10:55,650 [DEBUG][       Thread-604148][   transport.py][1871] : starting thread (client mode): 0x75a8280
2025-07-01 12:10:55,650 [DEBUG][       Thread-604148][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:10:55,670 [DEBUG][       Thread-604148][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:10:55,670 [ INFO][       Thread-604148][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:10:55,674 [DEBUG][       Thread-604148][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:10:55,674 [DEBUG][       Thread-604148][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:10:55,674 [DEBUG][       Thread-604148][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:10:55,674 [DEBUG][       Thread-604148][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:10:55,674 [DEBUG][       Thread-604148][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:10:55,674 [DEBUG][       Thread-604148][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:10:55,674 [DEBUG][       Thread-604148][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:10:55,674 [DEBUG][       Thread-604148][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:10:55,674 [DEBUG][       Thread-604148][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:10:55,674 [DEBUG][       Thread-604148][   transport.py][1871] : client lang: <none>
2025-07-01 12:10:55,674 [DEBUG][       Thread-604148][   transport.py][1871] : server lang: <none>
2025-07-01 12:10:55,674 [DEBUG][       Thread-604148][   transport.py][1871] : kex follows: False
2025-07-01 12:10:55,674 [DEBUG][       Thread-604148][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:10:55,674 [DEBUG][       Thread-604148][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:10:55,674 [DEBUG][       Thread-604148][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:10:55,674 [DEBUG][       Thread-604148][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:10:55,674 [DEBUG][       Thread-604148][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:10:55,674 [DEBUG][       Thread-604148][   transport.py][1871] : Compression: none
2025-07-01 12:10:55,674 [DEBUG][       Thread-604148][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:10:55,691 [DEBUG][       Thread-604148][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:10:55,692 [DEBUG][       Thread-604148][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:10:55,692 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:10:55,692 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:10:55,693 [DEBUG][       Thread-604148][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:10:55,693 [DEBUG][       Thread-604148][   transport.py][1871] : userauth is OK
2025-07-01 12:10:55,706 [ INFO][       Thread-604148][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:10:55,706 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:10:56,342 [DEBUG][       Thread-604148][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:10:56,342 [DEBUG][       Thread-604148][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:10:56,385 [DEBUG][       Thread-604148][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:10:56,385 [DEBUG][       Thread-604148][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:10:56,388 [DEBUG][       Thread-604148][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:10:56,401 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:10:56,401 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:10:56,403 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:10:56,405 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:10:56,411 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:10:56,413 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:10:56,413 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:10:56,414 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:10:56,414 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.423902 -999.00  +11.20  39.41     54   +2.40 1 1 2 1 1   888    0 8.93 8.17 ----- 39.4 39.4 46.2 50.2 14.3 -23.9 13.4 -25.3 13.1 -23.1 14.0 -22.3
2025-07-01 12:10:56,414 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:10:56,414 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:10:56,414 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.423902
2025-07-01 12:10:56,415 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:10:56,415 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:10:56,415 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:10:56,415 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:10:56,415 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:10:56,416 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:10:51', tmtdew=9.98, humidity=50.07, cloud=0.0, wind=33.38, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:10:25.133', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:10:56,417 [DEBUG][       Thread-604148][   transport.py][1871] : EOF in transport thread
2025-07-01 12:10:56,499 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:10:56,509 [DEBUG][       Thread-604151][   transport.py][1871] : starting thread (client mode): 0x83c8460
2025-07-01 12:10:56,509 [DEBUG][       Thread-604151][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:10:56,527 [DEBUG][       Thread-604151][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:10:56,527 [ INFO][       Thread-604151][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:10:56,535 [DEBUG][       Thread-604151][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:10:56,535 [DEBUG][       Thread-604151][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:10:56,535 [DEBUG][       Thread-604151][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:10:56,535 [DEBUG][       Thread-604151][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:10:56,535 [DEBUG][       Thread-604151][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:10:56,535 [DEBUG][       Thread-604151][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:10:56,535 [DEBUG][       Thread-604151][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:10:56,535 [DEBUG][       Thread-604151][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:10:56,535 [DEBUG][       Thread-604151][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:10:56,535 [DEBUG][       Thread-604151][   transport.py][1871] : client lang: <none>
2025-07-01 12:10:56,535 [DEBUG][       Thread-604151][   transport.py][1871] : server lang: <none>
2025-07-01 12:10:56,535 [DEBUG][       Thread-604151][   transport.py][1871] : kex follows: False
2025-07-01 12:10:56,536 [DEBUG][       Thread-604151][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:10:56,536 [DEBUG][       Thread-604151][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:10:56,536 [DEBUG][       Thread-604151][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:10:56,536 [DEBUG][       Thread-604151][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:10:56,536 [DEBUG][       Thread-604151][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:10:56,536 [DEBUG][       Thread-604151][   transport.py][1871] : Compression: none
2025-07-01 12:10:56,536 [DEBUG][       Thread-604151][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:10:56,595 [DEBUG][       Thread-604151][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:10:56,596 [DEBUG][       Thread-604151][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:10:56,597 [DEBUG][       Thread-604151][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:10:56,597 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:10:56,598 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:10:56,651 [DEBUG][       Thread-604151][   transport.py][1871] : userauth is OK
2025-07-01 12:10:56,652 [DEBUG][       Thread-604151][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:10:56,652 [DEBUG][       Thread-604151][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:10:56,652 [DEBUG][       Thread-604151][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:10:56,652 [DEBUG][       Thread-604151][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:10:56,670 [ INFO][       Thread-604151][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:10:56,670 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:10:56,670 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:10:57,647 [DEBUG][       Thread-604151][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:10:57,647 [DEBUG][       Thread-604151][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:10:57,696 [DEBUG][       Thread-604151][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:10:57,696 [DEBUG][       Thread-604151][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:10:57,705 [DEBUG][       Thread-604151][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:10:57,714 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:10:57,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-07-01 12:10:57,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-07-01 12:10:57,733 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:10:57,733 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:10:57,734 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:10:57,741 [DEBUG][       Thread-604151][   transport.py][1871] : EOF in transport thread
2025-07-01 12:11:00,679 [DEBUG][Thread-604153 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:11:07,744 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:11:07,744 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:11:07,744 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:11:07,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-07-01 12:11:08,222 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 10, 51), 9.98, 50.07, 0.0, 33.38, 11.26, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:11:08,222 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:10:51
2025-07-01 12:11:08,308 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:11:08,312 [DEBUG][       Thread-604154][   transport.py][1871] : starting thread (client mode): 0x75a8d30
2025-07-01 12:11:08,312 [DEBUG][       Thread-604154][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:11:08,332 [DEBUG][       Thread-604154][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:11:08,332 [ INFO][       Thread-604154][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:11:08,336 [DEBUG][       Thread-604154][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:11:08,336 [DEBUG][       Thread-604154][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:11:08,336 [DEBUG][       Thread-604154][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:11:08,336 [DEBUG][       Thread-604154][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:11:08,336 [DEBUG][       Thread-604154][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:11:08,336 [DEBUG][       Thread-604154][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:11:08,336 [DEBUG][       Thread-604154][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:11:08,336 [DEBUG][       Thread-604154][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:11:08,336 [DEBUG][       Thread-604154][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:11:08,336 [DEBUG][       Thread-604154][   transport.py][1871] : client lang: <none>
2025-07-01 12:11:08,336 [DEBUG][       Thread-604154][   transport.py][1871] : server lang: <none>
2025-07-01 12:11:08,336 [DEBUG][       Thread-604154][   transport.py][1871] : kex follows: False
2025-07-01 12:11:08,336 [DEBUG][       Thread-604154][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:11:08,336 [DEBUG][       Thread-604154][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:11:08,336 [DEBUG][       Thread-604154][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:11:08,336 [DEBUG][       Thread-604154][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:11:08,336 [DEBUG][       Thread-604154][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:11:08,336 [DEBUG][       Thread-604154][   transport.py][1871] : Compression: none
2025-07-01 12:11:08,336 [DEBUG][       Thread-604154][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:11:08,353 [DEBUG][       Thread-604154][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:11:08,354 [DEBUG][       Thread-604154][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:11:08,354 [DEBUG][       Thread-604154][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:11:08,354 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:11:08,355 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:11:08,398 [DEBUG][       Thread-604154][   transport.py][1871] : userauth is OK
2025-07-01 12:11:08,422 [ INFO][       Thread-604154][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:11:08,423 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:11:09,031 [DEBUG][       Thread-604154][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:11:09,032 [DEBUG][       Thread-604154][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:11:09,073 [DEBUG][       Thread-604154][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:11:09,073 [DEBUG][       Thread-604154][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:11:09,076 [DEBUG][       Thread-604154][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:11:09,088 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:11:09,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:11:09,090 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:11:09,092 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:11:09,097 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:11:09,099 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:11:09,099 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:11:09,100 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:11:09,100 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.423902 -999.00  +11.20  39.41     54   +2.40 1 1 2 1 1   888    0 8.93 8.17 ----- 39.4 39.4 46.2 50.2 14.3 -23.9 13.4 -25.3 13.1 -23.1 14.0 -22.3
2025-07-01 12:11:09,100 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:11:09,100 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:11:09,100 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.423902
2025-07-01 12:11:09,101 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:11:09,101 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:11:09,101 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:11:09,101 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:11:09,101 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:11:09,101 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:10:51', tmtdew=9.98, humidity=50.07, cloud=0.0, wind=33.38, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:10:25.133', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:11:09,102 [DEBUG][       Thread-604154][   transport.py][1871] : EOF in transport thread
2025-07-01 12:11:09,185 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:11:09,195 [DEBUG][       Thread-604157][   transport.py][1871] : starting thread (client mode): 0x8105f90
2025-07-01 12:11:09,195 [DEBUG][       Thread-604157][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:11:09,210 [DEBUG][       Thread-604157][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:11:09,210 [ INFO][       Thread-604157][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:11:09,218 [DEBUG][       Thread-604157][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:11:09,218 [DEBUG][       Thread-604157][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:11:09,218 [DEBUG][       Thread-604157][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:11:09,218 [DEBUG][       Thread-604157][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:11:09,218 [DEBUG][       Thread-604157][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:11:09,218 [DEBUG][       Thread-604157][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:11:09,218 [DEBUG][       Thread-604157][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:11:09,218 [DEBUG][       Thread-604157][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:11:09,218 [DEBUG][       Thread-604157][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:11:09,218 [DEBUG][       Thread-604157][   transport.py][1871] : client lang: <none>
2025-07-01 12:11:09,218 [DEBUG][       Thread-604157][   transport.py][1871] : server lang: <none>
2025-07-01 12:11:09,218 [DEBUG][       Thread-604157][   transport.py][1871] : kex follows: False
2025-07-01 12:11:09,218 [DEBUG][       Thread-604157][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:11:09,218 [DEBUG][       Thread-604157][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:11:09,218 [DEBUG][       Thread-604157][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:11:09,218 [DEBUG][       Thread-604157][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:11:09,218 [DEBUG][       Thread-604157][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:11:09,218 [DEBUG][       Thread-604157][   transport.py][1871] : Compression: none
2025-07-01 12:11:09,218 [DEBUG][       Thread-604157][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:11:09,280 [DEBUG][       Thread-604157][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:11:09,280 [DEBUG][       Thread-604157][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:11:09,281 [DEBUG][       Thread-604157][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:11:09,281 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:11:09,282 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:11:09,340 [DEBUG][       Thread-604157][   transport.py][1871] : userauth is OK
2025-07-01 12:11:09,340 [DEBUG][       Thread-604157][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:11:09,340 [DEBUG][       Thread-604157][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:11:09,340 [DEBUG][       Thread-604157][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:11:09,340 [DEBUG][       Thread-604157][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:11:09,360 [ INFO][       Thread-604157][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:11:09,360 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:11:09,361 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:11:09,714 [DEBUG][Thread-604159 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:11:10,350 [DEBUG][       Thread-604157][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:11:10,350 [DEBUG][       Thread-604157][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:11:10,400 [DEBUG][       Thread-604157][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:11:10,400 [DEBUG][       Thread-604157][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:11:10,409 [DEBUG][       Thread-604157][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:11:10,419 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:11:10,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-07-01 12:11:10,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-07-01 12:11:10,437 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:11:10,437 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:11:10,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:11:10,446 [DEBUG][       Thread-604157][   transport.py][1871] : EOF in transport thread
2025-07-01 12:11:13,738 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:11:13,739 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:11:18,735 [DEBUG][Thread-604160 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:11:20,448 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:11:20,449 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:11:20,449 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:11:20,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-07-01 12:11:20,928 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 10, 51), 9.98, 50.07, 0.0, 33.38, 11.26, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:11:20,928 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:10:51
2025-07-01 12:11:21,014 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:11:21,019 [DEBUG][       Thread-604161][   transport.py][1871] : starting thread (client mode): 0x75a8100
2025-07-01 12:11:21,020 [DEBUG][       Thread-604161][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:11:21,040 [DEBUG][       Thread-604161][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:11:21,040 [ INFO][       Thread-604161][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:11:21,043 [DEBUG][       Thread-604161][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:11:21,043 [DEBUG][       Thread-604161][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:11:21,043 [DEBUG][       Thread-604161][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:11:21,043 [DEBUG][       Thread-604161][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:11:21,043 [DEBUG][       Thread-604161][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:11:21,043 [DEBUG][       Thread-604161][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:11:21,043 [DEBUG][       Thread-604161][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:11:21,043 [DEBUG][       Thread-604161][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:11:21,043 [DEBUG][       Thread-604161][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:11:21,043 [DEBUG][       Thread-604161][   transport.py][1871] : client lang: <none>
2025-07-01 12:11:21,043 [DEBUG][       Thread-604161][   transport.py][1871] : server lang: <none>
2025-07-01 12:11:21,043 [DEBUG][       Thread-604161][   transport.py][1871] : kex follows: False
2025-07-01 12:11:21,043 [DEBUG][       Thread-604161][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:11:21,043 [DEBUG][       Thread-604161][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:11:21,043 [DEBUG][       Thread-604161][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:11:21,043 [DEBUG][       Thread-604161][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:11:21,043 [DEBUG][       Thread-604161][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:11:21,044 [DEBUG][       Thread-604161][   transport.py][1871] : Compression: none
2025-07-01 12:11:21,044 [DEBUG][       Thread-604161][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:11:21,057 [DEBUG][       Thread-604161][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:11:21,058 [DEBUG][       Thread-604161][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:11:21,058 [DEBUG][       Thread-604161][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:11:21,058 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:11:21,059 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:11:21,060 [DEBUG][       Thread-604161][   transport.py][1871] : userauth is OK
2025-07-01 12:11:21,073 [ INFO][       Thread-604161][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:11:21,074 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:11:21,709 [DEBUG][       Thread-604161][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:11:21,710 [DEBUG][       Thread-604161][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:11:21,753 [DEBUG][       Thread-604161][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:11:21,753 [DEBUG][       Thread-604161][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:11:21,756 [DEBUG][       Thread-604161][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:11:21,769 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:11:21,770 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:11:21,772 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:11:21,773 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:11:21,780 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:11:21,781 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:11:21,782 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:11:21,782 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:11:21,782 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.424249 -999.00  +11.10  40.21     55   +2.50 1 1 2 1 1   888    0 8.89 8.67 ----- 40.2 40.2 45.0 45.0 14.2 -24.4 13.4 -25.0 13.0 -23.2 13.9 -22.5
2025-07-01 12:11:21,782 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:11:21,783 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:11:21,783 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.424249
2025-07-01 12:11:21,783 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:11:21,783 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:11:21,784 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:11:21,784 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:11:21,784 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:11:21,784 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:10:51', tmtdew=9.98, humidity=50.07, cloud=0.0, wind=33.38, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:10:55.114', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:11:21,785 [DEBUG][       Thread-604161][   transport.py][1871] : EOF in transport thread
2025-07-01 12:11:21,867 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:11:21,879 [DEBUG][       Thread-604164][   transport.py][1871] : starting thread (client mode): 0x818e8f0
2025-07-01 12:11:21,879 [DEBUG][       Thread-604164][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:11:21,893 [DEBUG][       Thread-604164][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:11:21,893 [ INFO][       Thread-604164][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:11:21,901 [DEBUG][       Thread-604164][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:11:21,901 [DEBUG][       Thread-604164][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:11:21,901 [DEBUG][       Thread-604164][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:11:21,901 [DEBUG][       Thread-604164][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:11:21,901 [DEBUG][       Thread-604164][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:11:21,901 [DEBUG][       Thread-604164][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:11:21,901 [DEBUG][       Thread-604164][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:11:21,901 [DEBUG][       Thread-604164][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:11:21,901 [DEBUG][       Thread-604164][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:11:21,901 [DEBUG][       Thread-604164][   transport.py][1871] : client lang: <none>
2025-07-01 12:11:21,901 [DEBUG][       Thread-604164][   transport.py][1871] : server lang: <none>
2025-07-01 12:11:21,901 [DEBUG][       Thread-604164][   transport.py][1871] : kex follows: False
2025-07-01 12:11:21,901 [DEBUG][       Thread-604164][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:11:21,901 [DEBUG][       Thread-604164][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:11:21,902 [DEBUG][       Thread-604164][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:11:21,902 [DEBUG][       Thread-604164][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:11:21,902 [DEBUG][       Thread-604164][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:11:21,902 [DEBUG][       Thread-604164][   transport.py][1871] : Compression: none
2025-07-01 12:11:21,902 [DEBUG][       Thread-604164][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:11:21,959 [DEBUG][       Thread-604164][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:11:21,960 [DEBUG][       Thread-604164][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:11:21,960 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:11:21,961 [DEBUG][       Thread-604164][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:11:21,962 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:11:22,015 [DEBUG][       Thread-604164][   transport.py][1871] : userauth is OK
2025-07-01 12:11:22,016 [DEBUG][       Thread-604164][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:11:22,016 [DEBUG][       Thread-604164][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:11:22,016 [DEBUG][       Thread-604164][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:11:22,016 [DEBUG][       Thread-604164][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:11:22,038 [ INFO][       Thread-604164][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:11:22,039 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:11:22,039 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:11:23,015 [DEBUG][       Thread-604164][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:11:23,016 [DEBUG][       Thread-604164][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:11:23,064 [DEBUG][       Thread-604164][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:11:23,064 [DEBUG][       Thread-604164][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:11:23,073 [DEBUG][       Thread-604164][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:11:23,082 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:11:23,083 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 12:11:23,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-07-01 12:11:23,105 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:11:23,106 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:11:23,106 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:11:23,114 [DEBUG][       Thread-604164][   transport.py][1871] : EOF in transport thread
2025-07-01 12:11:27,756 [DEBUG][Thread-604166 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:11:28,411 [DEBUG][Thread-604167 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:11:33,117 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:11:33,117 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:11:33,126 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:11:33,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-07-01 12:11:33,602 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 11, 23), 9.98, 50.17, 0.0, 30.06, 11.36, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:11:33,602 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:11:23
2025-07-01 12:11:33,688 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:11:33,692 [DEBUG][       Thread-604168][   transport.py][1871] : starting thread (client mode): 0x82b3490
2025-07-01 12:11:33,692 [DEBUG][       Thread-604168][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:11:33,713 [DEBUG][       Thread-604168][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:11:33,713 [ INFO][       Thread-604168][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:11:33,716 [DEBUG][       Thread-604168][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:11:33,716 [DEBUG][       Thread-604168][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:11:33,716 [DEBUG][       Thread-604168][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:11:33,716 [DEBUG][       Thread-604168][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:11:33,716 [DEBUG][       Thread-604168][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:11:33,716 [DEBUG][       Thread-604168][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:11:33,716 [DEBUG][       Thread-604168][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:11:33,716 [DEBUG][       Thread-604168][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:11:33,716 [DEBUG][       Thread-604168][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:11:33,716 [DEBUG][       Thread-604168][   transport.py][1871] : client lang: <none>
2025-07-01 12:11:33,716 [DEBUG][       Thread-604168][   transport.py][1871] : server lang: <none>
2025-07-01 12:11:33,716 [DEBUG][       Thread-604168][   transport.py][1871] : kex follows: False
2025-07-01 12:11:33,716 [DEBUG][       Thread-604168][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:11:33,716 [DEBUG][       Thread-604168][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:11:33,716 [DEBUG][       Thread-604168][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:11:33,716 [DEBUG][       Thread-604168][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:11:33,717 [DEBUG][       Thread-604168][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:11:33,717 [DEBUG][       Thread-604168][   transport.py][1871] : Compression: none
2025-07-01 12:11:33,717 [DEBUG][       Thread-604168][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:11:33,733 [DEBUG][       Thread-604168][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:11:33,733 [DEBUG][       Thread-604168][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:11:33,733 [DEBUG][       Thread-604168][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:11:33,734 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:11:33,734 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:11:33,735 [DEBUG][       Thread-604168][   transport.py][1871] : userauth is OK
2025-07-01 12:11:33,748 [ INFO][       Thread-604168][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:11:33,748 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:11:34,358 [DEBUG][       Thread-604168][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:11:34,359 [DEBUG][       Thread-604168][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:11:34,405 [DEBUG][       Thread-604168][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:11:34,405 [DEBUG][       Thread-604168][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:11:34,409 [DEBUG][       Thread-604168][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:11:34,422 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:11:34,423 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:11:34,425 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:11:34,427 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:11:34,432 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:11:34,434 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:11:34,435 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:11:34,435 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:11:34,435 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.424249 -999.00  +11.10  40.21     55   +2.50 1 1 2 1 1   888    0 8.89 8.67 ----- 40.2 40.2 45.0 45.0 14.2 -24.4 13.4 -25.0 13.0 -23.2 13.9 -22.5
2025-07-01 12:11:34,436 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:11:34,436 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:11:34,436 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.424249
2025-07-01 12:11:34,436 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:11:34,437 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:11:34,437 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:11:34,437 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:11:34,437 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:11:34,437 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:11:23', tmtdew=9.98, humidity=50.17, cloud=0.0, wind=30.06, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:10:55.114', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:11:34,438 [DEBUG][       Thread-604168][   transport.py][1871] : EOF in transport thread
2025-07-01 12:11:34,523 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:11:34,532 [DEBUG][       Thread-604171][   transport.py][1871] : starting thread (client mode): 0x83c8400
2025-07-01 12:11:34,533 [DEBUG][       Thread-604171][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:11:34,548 [DEBUG][       Thread-604171][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:11:34,548 [ INFO][       Thread-604171][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:11:34,556 [DEBUG][       Thread-604171][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:11:34,556 [DEBUG][       Thread-604171][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:11:34,556 [DEBUG][       Thread-604171][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:11:34,556 [DEBUG][       Thread-604171][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:11:34,556 [DEBUG][       Thread-604171][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:11:34,556 [DEBUG][       Thread-604171][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:11:34,556 [DEBUG][       Thread-604171][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:11:34,556 [DEBUG][       Thread-604171][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:11:34,556 [DEBUG][       Thread-604171][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:11:34,556 [DEBUG][       Thread-604171][   transport.py][1871] : client lang: <none>
2025-07-01 12:11:34,556 [DEBUG][       Thread-604171][   transport.py][1871] : server lang: <none>
2025-07-01 12:11:34,556 [DEBUG][       Thread-604171][   transport.py][1871] : kex follows: False
2025-07-01 12:11:34,556 [DEBUG][       Thread-604171][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:11:34,556 [DEBUG][       Thread-604171][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:11:34,556 [DEBUG][       Thread-604171][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:11:34,556 [DEBUG][       Thread-604171][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:11:34,556 [DEBUG][       Thread-604171][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:11:34,556 [DEBUG][       Thread-604171][   transport.py][1871] : Compression: none
2025-07-01 12:11:34,556 [DEBUG][       Thread-604171][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:11:34,616 [DEBUG][       Thread-604171][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:11:34,616 [DEBUG][       Thread-604171][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:11:34,617 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:11:34,617 [DEBUG][       Thread-604171][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:11:34,618 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:11:34,671 [DEBUG][       Thread-604171][   transport.py][1871] : userauth is OK
2025-07-01 12:11:34,672 [DEBUG][       Thread-604171][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:11:34,672 [DEBUG][       Thread-604171][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:11:34,672 [DEBUG][       Thread-604171][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:11:34,672 [DEBUG][       Thread-604171][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:11:34,692 [ INFO][       Thread-604171][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:11:34,692 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:11:34,693 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:11:35,722 [DEBUG][       Thread-604171][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:11:35,722 [DEBUG][       Thread-604171][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:11:35,772 [DEBUG][       Thread-604171][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:11:35,772 [DEBUG][       Thread-604171][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:11:35,781 [DEBUG][       Thread-604171][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:11:35,790 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:11:35,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-07-01 12:11:35,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-07-01 12:11:35,808 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:11:35,809 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:11:35,809 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:11:35,817 [DEBUG][       Thread-604171][   transport.py][1871] : EOF in transport thread
2025-07-01 12:11:36,777 [DEBUG][Thread-604173 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:11:45,807 [DEBUG][Thread-604174 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:11:45,816 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:11:45,816 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:11:45,816 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:11:45,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-07-01 12:11:46,264 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 11, 23), 9.98, 50.17, 0.0, 30.06, 11.36, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:11:46,264 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:11:23
2025-07-01 12:11:46,350 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:11:46,355 [DEBUG][       Thread-604175][   transport.py][1871] : starting thread (client mode): 0x75aac80
2025-07-01 12:11:46,355 [DEBUG][       Thread-604175][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:11:46,368 [DEBUG][       Thread-604175][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:11:46,368 [ INFO][       Thread-604175][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:11:46,371 [DEBUG][       Thread-604175][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:11:46,371 [DEBUG][       Thread-604175][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:11:46,371 [DEBUG][       Thread-604175][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:11:46,371 [DEBUG][       Thread-604175][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:11:46,371 [DEBUG][       Thread-604175][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:11:46,371 [DEBUG][       Thread-604175][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:11:46,371 [DEBUG][       Thread-604175][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:11:46,371 [DEBUG][       Thread-604175][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:11:46,371 [DEBUG][       Thread-604175][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:11:46,371 [DEBUG][       Thread-604175][   transport.py][1871] : client lang: <none>
2025-07-01 12:11:46,371 [DEBUG][       Thread-604175][   transport.py][1871] : server lang: <none>
2025-07-01 12:11:46,371 [DEBUG][       Thread-604175][   transport.py][1871] : kex follows: False
2025-07-01 12:11:46,371 [DEBUG][       Thread-604175][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:11:46,371 [DEBUG][       Thread-604175][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:11:46,371 [DEBUG][       Thread-604175][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:11:46,371 [DEBUG][       Thread-604175][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:11:46,371 [DEBUG][       Thread-604175][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:11:46,371 [DEBUG][       Thread-604175][   transport.py][1871] : Compression: none
2025-07-01 12:11:46,371 [DEBUG][       Thread-604175][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:11:46,388 [DEBUG][       Thread-604175][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:11:46,388 [DEBUG][       Thread-604175][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:11:46,388 [DEBUG][       Thread-604175][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:11:46,389 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:11:46,389 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:11:46,390 [DEBUG][       Thread-604175][   transport.py][1871] : userauth is OK
2025-07-01 12:11:46,414 [ INFO][       Thread-604175][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:11:46,415 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:11:47,061 [DEBUG][       Thread-604175][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:11:47,061 [DEBUG][       Thread-604175][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:11:47,105 [DEBUG][       Thread-604175][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:11:47,105 [DEBUG][       Thread-604175][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:11:47,108 [DEBUG][       Thread-604175][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:11:47,122 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:11:47,123 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:11:47,124 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:11:47,127 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:11:47,133 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:11:47,135 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:11:47,135 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:11:47,136 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:11:47,136 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.424597 -999.00  +11.10  33.10     55   +2.40 1 1 2 1 1   888    0 9.15 10.26 ----- 33.1 33.1 45.6 48.9 14.4 -23.1 13.5 -23.8 13.2 -22.3 14.1 -21.1
2025-07-01 12:11:47,136 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:11:47,136 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:11:47,136 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.424597
2025-07-01 12:11:47,137 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:11:47,137 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:11:47,137 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:11:47,137 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:11:47,137 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:11:47,138 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:11:23', tmtdew=9.98, humidity=50.17, cloud=0.0, wind=30.06, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:11:25.181', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:11:47,138 [DEBUG][       Thread-604175][   transport.py][1871] : EOF in transport thread
2025-07-01 12:11:47,221 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:11:47,230 [DEBUG][       Thread-604178][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 12:11:47,231 [DEBUG][       Thread-604178][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:11:47,246 [DEBUG][       Thread-604178][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:11:47,246 [ INFO][       Thread-604178][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:11:47,253 [DEBUG][       Thread-604178][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:11:47,254 [DEBUG][       Thread-604178][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:11:47,254 [DEBUG][       Thread-604178][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:11:47,254 [DEBUG][       Thread-604178][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:11:47,254 [DEBUG][       Thread-604178][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:11:47,254 [DEBUG][       Thread-604178][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:11:47,254 [DEBUG][       Thread-604178][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:11:47,254 [DEBUG][       Thread-604178][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:11:47,254 [DEBUG][       Thread-604178][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:11:47,254 [DEBUG][       Thread-604178][   transport.py][1871] : client lang: <none>
2025-07-01 12:11:47,254 [DEBUG][       Thread-604178][   transport.py][1871] : server lang: <none>
2025-07-01 12:11:47,254 [DEBUG][       Thread-604178][   transport.py][1871] : kex follows: False
2025-07-01 12:11:47,254 [DEBUG][       Thread-604178][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:11:47,254 [DEBUG][       Thread-604178][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:11:47,254 [DEBUG][       Thread-604178][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:11:47,254 [DEBUG][       Thread-604178][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:11:47,254 [DEBUG][       Thread-604178][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:11:47,254 [DEBUG][       Thread-604178][   transport.py][1871] : Compression: none
2025-07-01 12:11:47,254 [DEBUG][       Thread-604178][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:11:47,312 [DEBUG][       Thread-604178][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:11:47,312 [DEBUG][       Thread-604178][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:11:47,313 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:11:47,314 [DEBUG][       Thread-604178][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:11:47,314 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:11:47,368 [DEBUG][       Thread-604178][   transport.py][1871] : userauth is OK
2025-07-01 12:11:47,368 [DEBUG][       Thread-604178][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:11:47,368 [DEBUG][       Thread-604178][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:11:47,368 [DEBUG][       Thread-604178][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:11:47,368 [DEBUG][       Thread-604178][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:11:47,386 [ INFO][       Thread-604178][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:11:47,387 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:11:47,387 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:11:48,368 [DEBUG][       Thread-604178][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:11:48,368 [DEBUG][       Thread-604178][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:11:48,416 [DEBUG][       Thread-604178][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:11:48,416 [DEBUG][       Thread-604178][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:11:48,425 [DEBUG][       Thread-604178][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:11:48,434 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:11:48,434 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 12:11:48,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-07-01 12:11:48,452 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:11:48,453 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:11:48,453 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:11:48,465 [DEBUG][       Thread-604178][   transport.py][1871] : EOF in transport thread
2025-07-01 12:11:54,829 [DEBUG][Thread-604180 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:11:58,464 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:11:58,464 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:11:58,464 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:11:58,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-07-01 12:11:58,937 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 11, 54), 9.97, 50.23, 0.0, 31.18, 11.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:11:58,937 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:11:54
2025-07-01 12:11:59,023 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:11:59,027 [DEBUG][       Thread-604181][   transport.py][1871] : starting thread (client mode): 0x81d8910
2025-07-01 12:11:59,027 [DEBUG][       Thread-604181][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:11:59,047 [DEBUG][       Thread-604181][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:11:59,047 [ INFO][       Thread-604181][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:11:59,050 [DEBUG][       Thread-604181][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:11:59,051 [DEBUG][       Thread-604181][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:11:59,051 [DEBUG][       Thread-604181][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:11:59,051 [DEBUG][       Thread-604181][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:11:59,051 [DEBUG][       Thread-604181][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:11:59,051 [DEBUG][       Thread-604181][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:11:59,051 [DEBUG][       Thread-604181][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:11:59,051 [DEBUG][       Thread-604181][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:11:59,051 [DEBUG][       Thread-604181][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:11:59,051 [DEBUG][       Thread-604181][   transport.py][1871] : client lang: <none>
2025-07-01 12:11:59,051 [DEBUG][       Thread-604181][   transport.py][1871] : server lang: <none>
2025-07-01 12:11:59,051 [DEBUG][       Thread-604181][   transport.py][1871] : kex follows: False
2025-07-01 12:11:59,051 [DEBUG][       Thread-604181][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:11:59,051 [DEBUG][       Thread-604181][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:11:59,051 [DEBUG][       Thread-604181][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:11:59,051 [DEBUG][       Thread-604181][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:11:59,051 [DEBUG][       Thread-604181][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:11:59,051 [DEBUG][       Thread-604181][   transport.py][1871] : Compression: none
2025-07-01 12:11:59,051 [DEBUG][       Thread-604181][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:11:59,068 [DEBUG][       Thread-604181][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:11:59,069 [DEBUG][       Thread-604181][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:11:59,069 [DEBUG][       Thread-604181][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:11:59,070 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:11:59,070 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:11:59,071 [DEBUG][       Thread-604181][   transport.py][1871] : userauth is OK
2025-07-01 12:11:59,084 [ INFO][       Thread-604181][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:11:59,084 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:11:59,732 [DEBUG][       Thread-604181][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:11:59,732 [DEBUG][       Thread-604181][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:11:59,773 [DEBUG][       Thread-604181][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:11:59,773 [DEBUG][       Thread-604181][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:11:59,776 [DEBUG][       Thread-604181][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:11:59,787 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:11:59,788 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:11:59,790 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:11:59,792 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:11:59,797 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:11:59,800 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:11:59,800 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:11:59,800 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:11:59,801 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.424597 -999.00  +11.10  33.10     55   +2.40 1 1 2 1 1   888    0 9.15 10.26 ----- 33.1 33.1 45.6 48.9 14.4 -23.1 13.5 -23.8 13.2 -22.3 14.1 -21.1
2025-07-01 12:11:59,801 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:11:59,801 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:11:59,801 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.424597
2025-07-01 12:11:59,801 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:11:59,802 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:11:59,802 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:11:59,802 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:11:59,802 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:11:59,802 [DEBUG][       Thread-604181][   transport.py][1871] : EOF in transport thread
2025-07-01 12:11:59,803 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:11:54', tmtdew=9.97, humidity=50.23, cloud=0.0, wind=31.18, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:11:25.181', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:11:59,886 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:11:59,896 [DEBUG][       Thread-604184][   transport.py][1871] : starting thread (client mode): 0x81a7970
2025-07-01 12:11:59,896 [DEBUG][       Thread-604184][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:11:59,911 [DEBUG][       Thread-604184][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:11:59,911 [ INFO][       Thread-604184][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:11:59,919 [DEBUG][       Thread-604184][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:11:59,919 [DEBUG][       Thread-604184][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:11:59,919 [DEBUG][       Thread-604184][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:11:59,919 [DEBUG][       Thread-604184][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:11:59,919 [DEBUG][       Thread-604184][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:11:59,919 [DEBUG][       Thread-604184][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:11:59,919 [DEBUG][       Thread-604184][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:11:59,919 [DEBUG][       Thread-604184][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:11:59,919 [DEBUG][       Thread-604184][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:11:59,919 [DEBUG][       Thread-604184][   transport.py][1871] : client lang: <none>
2025-07-01 12:11:59,919 [DEBUG][       Thread-604184][   transport.py][1871] : server lang: <none>
2025-07-01 12:11:59,919 [DEBUG][       Thread-604184][   transport.py][1871] : kex follows: False
2025-07-01 12:11:59,919 [DEBUG][       Thread-604184][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:11:59,919 [DEBUG][       Thread-604184][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:11:59,919 [DEBUG][       Thread-604184][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:11:59,919 [DEBUG][       Thread-604184][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:11:59,919 [DEBUG][       Thread-604184][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:11:59,919 [DEBUG][       Thread-604184][   transport.py][1871] : Compression: none
2025-07-01 12:11:59,919 [DEBUG][       Thread-604184][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:11:59,976 [DEBUG][       Thread-604184][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:11:59,977 [DEBUG][       Thread-604184][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:11:59,977 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:11:59,978 [DEBUG][       Thread-604184][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:11:59,979 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:12:00,032 [DEBUG][       Thread-604184][   transport.py][1871] : userauth is OK
2025-07-01 12:12:00,033 [DEBUG][       Thread-604184][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:12:00,033 [DEBUG][       Thread-604184][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:12:00,033 [DEBUG][       Thread-604184][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:12:00,033 [DEBUG][       Thread-604184][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:12:00,054 [ INFO][       Thread-604184][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:12:00,055 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:12:00,055 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:12:01,036 [DEBUG][       Thread-604184][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:12:01,037 [DEBUG][       Thread-604184][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:12:01,088 [DEBUG][       Thread-604184][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:12:01,088 [DEBUG][       Thread-604184][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:12:01,097 [DEBUG][       Thread-604184][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:12:01,106 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:12:01,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-07-01 12:12:01,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-07-01 12:12:01,125 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:12:01,125 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:12:01,126 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:12:01,134 [DEBUG][       Thread-604184][   transport.py][1871] : EOF in transport thread
2025-07-01 12:12:03,856 [DEBUG][Thread-604186 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:12:11,136 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:12:11,136 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:12:11,136 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:12:11,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-07-01 12:12:11,607 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 11, 54), 9.97, 50.23, 0.0, 31.18, 11.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:12:11,607 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:11:54
2025-07-01 12:12:11,692 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:12:11,696 [DEBUG][       Thread-604187][   transport.py][1871] : starting thread (client mode): 0x81d98d0
2025-07-01 12:12:11,696 [DEBUG][       Thread-604187][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:12:11,717 [DEBUG][       Thread-604187][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:12:11,717 [ INFO][       Thread-604187][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:12:11,720 [DEBUG][       Thread-604187][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:12:11,720 [DEBUG][       Thread-604187][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:12:11,720 [DEBUG][       Thread-604187][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:12:11,720 [DEBUG][       Thread-604187][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:12:11,720 [DEBUG][       Thread-604187][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:12:11,720 [DEBUG][       Thread-604187][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:12:11,720 [DEBUG][       Thread-604187][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:12:11,720 [DEBUG][       Thread-604187][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:12:11,721 [DEBUG][       Thread-604187][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:12:11,721 [DEBUG][       Thread-604187][   transport.py][1871] : client lang: <none>
2025-07-01 12:12:11,721 [DEBUG][       Thread-604187][   transport.py][1871] : server lang: <none>
2025-07-01 12:12:11,721 [DEBUG][       Thread-604187][   transport.py][1871] : kex follows: False
2025-07-01 12:12:11,721 [DEBUG][       Thread-604187][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:12:11,721 [DEBUG][       Thread-604187][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:12:11,721 [DEBUG][       Thread-604187][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:12:11,721 [DEBUG][       Thread-604187][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:12:11,721 [DEBUG][       Thread-604187][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:12:11,721 [DEBUG][       Thread-604187][   transport.py][1871] : Compression: none
2025-07-01 12:12:11,721 [DEBUG][       Thread-604187][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:12:11,738 [DEBUG][       Thread-604187][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:12:11,738 [DEBUG][       Thread-604187][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:12:11,739 [DEBUG][       Thread-604187][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:12:11,739 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:12:11,739 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:12:11,740 [DEBUG][       Thread-604187][   transport.py][1871] : userauth is OK
2025-07-01 12:12:11,765 [ INFO][       Thread-604187][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:12:11,766 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:12:12,400 [DEBUG][       Thread-604187][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:12:12,401 [DEBUG][       Thread-604187][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:12:12,441 [DEBUG][       Thread-604187][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:12:12,441 [DEBUG][       Thread-604187][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:12:12,445 [DEBUG][       Thread-604187][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:12:12,457 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:12:12,458 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:12:12,463 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:12:12,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:12:12,471 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:12:12,473 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:12:12,473 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:12:12,474 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:12:12,474 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.424597 -999.00  +11.10  33.10     55   +2.40 1 1 2 1 1   888    0 9.15 10.26 ----- 33.1 33.1 45.6 48.9 14.4 -23.1 13.5 -23.8 13.2 -22.3 14.1 -21.1
2025-07-01 12:12:12,474 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:12:12,474 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:12:12,474 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.424597
2025-07-01 12:12:12,475 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:12:12,475 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:12:12,475 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:12:12,476 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:12:12,476 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:12:12,476 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:11:54', tmtdew=9.97, humidity=50.23, cloud=0.0, wind=31.18, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:11:25.181', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:12:12,477 [DEBUG][       Thread-604187][   transport.py][1871] : EOF in transport thread
2025-07-01 12:12:12,559 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:12:12,569 [DEBUG][       Thread-604190][   transport.py][1871] : starting thread (client mode): 0x81068f0
2025-07-01 12:12:12,569 [DEBUG][       Thread-604190][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:12:12,589 [DEBUG][       Thread-604190][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:12:12,589 [ INFO][       Thread-604190][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:12:12,596 [DEBUG][       Thread-604190][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:12:12,597 [DEBUG][       Thread-604190][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:12:12,597 [DEBUG][       Thread-604190][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:12:12,597 [DEBUG][       Thread-604190][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:12:12,597 [DEBUG][       Thread-604190][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:12:12,597 [DEBUG][       Thread-604190][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:12:12,597 [DEBUG][       Thread-604190][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:12:12,597 [DEBUG][       Thread-604190][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:12:12,597 [DEBUG][       Thread-604190][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:12:12,597 [DEBUG][       Thread-604190][   transport.py][1871] : client lang: <none>
2025-07-01 12:12:12,597 [DEBUG][       Thread-604190][   transport.py][1871] : server lang: <none>
2025-07-01 12:12:12,597 [DEBUG][       Thread-604190][   transport.py][1871] : kex follows: False
2025-07-01 12:12:12,597 [DEBUG][       Thread-604190][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:12:12,597 [DEBUG][       Thread-604190][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:12:12,597 [DEBUG][       Thread-604190][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:12:12,597 [DEBUG][       Thread-604190][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:12:12,597 [DEBUG][       Thread-604190][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:12:12,597 [DEBUG][       Thread-604190][   transport.py][1871] : Compression: none
2025-07-01 12:12:12,598 [DEBUG][       Thread-604190][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:12:12,657 [DEBUG][       Thread-604190][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:12:12,658 [DEBUG][       Thread-604190][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:12:12,659 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:12:12,659 [DEBUG][       Thread-604190][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:12:12,660 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:12:12,713 [DEBUG][       Thread-604190][   transport.py][1871] : userauth is OK
2025-07-01 12:12:12,714 [DEBUG][       Thread-604190][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:12:12,714 [DEBUG][       Thread-604190][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:12:12,714 [DEBUG][       Thread-604190][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:12:12,714 [DEBUG][       Thread-604190][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:12:12,733 [ INFO][       Thread-604190][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:12:12,733 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:12:12,734 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:12:12,900 [DEBUG][Thread-604192 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:12:13,734 [DEBUG][       Thread-604190][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:12:13,735 [DEBUG][       Thread-604190][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:12:13,792 [DEBUG][       Thread-604190][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:12:13,792 [DEBUG][       Thread-604190][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:12:13,802 [DEBUG][       Thread-604190][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:12:13,811 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:12:13,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-07-01 12:12:13,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-07-01 12:12:13,835 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:12:13,835 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:12:13,835 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:12:13,847 [DEBUG][       Thread-604190][   transport.py][1871] : EOF in transport thread
2025-07-01 12:12:13,877 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:12:13,878 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:12:21,918 [DEBUG][Thread-604193 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:12:23,844 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:12:23,844 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:12:23,844 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:12:23,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-07-01 12:12:24,320 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 11, 54), 9.97, 50.23, 0.0, 31.18, 11.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:12:24,320 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:11:54
2025-07-01 12:12:24,406 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:12:24,414 [DEBUG][       Thread-604194][   transport.py][1871] : starting thread (client mode): 0x81d88e0
2025-07-01 12:12:24,414 [DEBUG][       Thread-604194][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:12:24,436 [DEBUG][       Thread-604194][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:12:24,437 [ INFO][       Thread-604194][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:12:24,441 [DEBUG][       Thread-604194][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:12:24,441 [DEBUG][       Thread-604194][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:12:24,441 [DEBUG][       Thread-604194][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:12:24,441 [DEBUG][       Thread-604194][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:12:24,441 [DEBUG][       Thread-604194][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:12:24,441 [DEBUG][       Thread-604194][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:12:24,441 [DEBUG][       Thread-604194][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:12:24,441 [DEBUG][       Thread-604194][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:12:24,441 [DEBUG][       Thread-604194][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:12:24,441 [DEBUG][       Thread-604194][   transport.py][1871] : client lang: <none>
2025-07-01 12:12:24,441 [DEBUG][       Thread-604194][   transport.py][1871] : server lang: <none>
2025-07-01 12:12:24,441 [DEBUG][       Thread-604194][   transport.py][1871] : kex follows: False
2025-07-01 12:12:24,441 [DEBUG][       Thread-604194][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:12:24,441 [DEBUG][       Thread-604194][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:12:24,441 [DEBUG][       Thread-604194][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:12:24,441 [DEBUG][       Thread-604194][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:12:24,441 [DEBUG][       Thread-604194][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:12:24,441 [DEBUG][       Thread-604194][   transport.py][1871] : Compression: none
2025-07-01 12:12:24,441 [DEBUG][       Thread-604194][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:12:24,458 [DEBUG][       Thread-604194][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:12:24,459 [DEBUG][       Thread-604194][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:12:24,459 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:12:24,459 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:12:24,460 [DEBUG][       Thread-604194][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:12:24,461 [DEBUG][       Thread-604194][   transport.py][1871] : userauth is OK
2025-07-01 12:12:24,486 [ INFO][       Thread-604194][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:12:24,487 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:12:25,106 [DEBUG][       Thread-604194][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:12:25,107 [DEBUG][       Thread-604194][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:12:25,149 [DEBUG][       Thread-604194][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:12:25,149 [DEBUG][       Thread-604194][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:12:25,153 [DEBUG][       Thread-604194][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:12:25,165 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:12:25,165 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:12:25,167 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:12:25,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:12:25,176 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:12:25,178 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:12:25,178 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:12:25,179 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:12:25,179 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.424944 -999.00  +11.40  37.02     55   +2.80 1 1 2 1 1   888    0 8.82 7.75 ----- 37.0 37.0 22.4 50.3 14.5 -23.3 13.6 -23.9 13.2 -22.2 14.2 -22.2
2025-07-01 12:12:25,179 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:12:25,179 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:12:25,179 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.424944
2025-07-01 12:12:25,180 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:12:25,180 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:12:25,180 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:12:25,181 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:12:25,181 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:12:25,181 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:11:54', tmtdew=9.97, humidity=50.23, cloud=0.0, wind=31.18, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:11:55.162', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:12:25,182 [DEBUG][       Thread-604194][   transport.py][1871] : EOF in transport thread
2025-07-01 12:12:25,264 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:12:25,276 [DEBUG][       Thread-604197][   transport.py][1871] : starting thread (client mode): 0x818e7a0
2025-07-01 12:12:25,276 [DEBUG][       Thread-604197][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:12:25,296 [DEBUG][       Thread-604197][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:12:25,296 [ INFO][       Thread-604197][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:12:25,304 [DEBUG][       Thread-604197][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:12:25,304 [DEBUG][       Thread-604197][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:12:25,304 [DEBUG][       Thread-604197][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:12:25,304 [DEBUG][       Thread-604197][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:12:25,304 [DEBUG][       Thread-604197][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:12:25,304 [DEBUG][       Thread-604197][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:12:25,304 [DEBUG][       Thread-604197][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:12:25,304 [DEBUG][       Thread-604197][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:12:25,304 [DEBUG][       Thread-604197][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:12:25,304 [DEBUG][       Thread-604197][   transport.py][1871] : client lang: <none>
2025-07-01 12:12:25,304 [DEBUG][       Thread-604197][   transport.py][1871] : server lang: <none>
2025-07-01 12:12:25,304 [DEBUG][       Thread-604197][   transport.py][1871] : kex follows: False
2025-07-01 12:12:25,304 [DEBUG][       Thread-604197][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:12:25,305 [DEBUG][       Thread-604197][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:12:25,305 [DEBUG][       Thread-604197][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:12:25,305 [DEBUG][       Thread-604197][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:12:25,305 [DEBUG][       Thread-604197][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:12:25,305 [DEBUG][       Thread-604197][   transport.py][1871] : Compression: none
2025-07-01 12:12:25,305 [DEBUG][       Thread-604197][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:12:25,362 [DEBUG][       Thread-604197][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:12:25,362 [DEBUG][       Thread-604197][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:12:25,363 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:12:25,363 [DEBUG][       Thread-604197][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:12:25,364 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:12:25,418 [DEBUG][       Thread-604197][   transport.py][1871] : userauth is OK
2025-07-01 12:12:25,418 [DEBUG][       Thread-604197][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:12:25,419 [DEBUG][       Thread-604197][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:12:25,419 [DEBUG][       Thread-604197][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:12:25,419 [DEBUG][       Thread-604197][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:12:25,438 [ INFO][       Thread-604197][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:12:25,439 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:12:25,439 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:12:26,453 [DEBUG][       Thread-604197][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:12:26,453 [DEBUG][       Thread-604197][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:12:26,504 [DEBUG][       Thread-604197][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:12:26,504 [DEBUG][       Thread-604197][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:12:26,514 [DEBUG][       Thread-604197][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:12:26,523 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:12:26,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-07-01 12:12:26,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-07-01 12:12:26,541 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:12:26,542 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:12:26,542 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:12:26,550 [DEBUG][       Thread-604197][   transport.py][1871] : EOF in transport thread
2025-07-01 12:12:28,440 [DEBUG][Thread-604199 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:12:30,936 [DEBUG][Thread-604200 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:12:36,553 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:12:36,553 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:12:36,553 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:12:36,556 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:12:37,043 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 12, 26), 10.1, 50.03, 0.0, 34.32, 11.44, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:12:37,043 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:12:26
2025-07-01 12:12:37,129 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:12:37,134 [DEBUG][       Thread-604201][   transport.py][1871] : starting thread (client mode): 0x81db7c0
2025-07-01 12:12:37,134 [DEBUG][       Thread-604201][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:12:37,148 [DEBUG][       Thread-604201][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:12:37,148 [ INFO][       Thread-604201][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:12:37,151 [DEBUG][       Thread-604201][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:12:37,152 [DEBUG][       Thread-604201][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:12:37,152 [DEBUG][       Thread-604201][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:12:37,152 [DEBUG][       Thread-604201][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:12:37,152 [DEBUG][       Thread-604201][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:12:37,152 [DEBUG][       Thread-604201][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:12:37,152 [DEBUG][       Thread-604201][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:12:37,152 [DEBUG][       Thread-604201][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:12:37,152 [DEBUG][       Thread-604201][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:12:37,152 [DEBUG][       Thread-604201][   transport.py][1871] : client lang: <none>
2025-07-01 12:12:37,152 [DEBUG][       Thread-604201][   transport.py][1871] : server lang: <none>
2025-07-01 12:12:37,152 [DEBUG][       Thread-604201][   transport.py][1871] : kex follows: False
2025-07-01 12:12:37,152 [DEBUG][       Thread-604201][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:12:37,152 [DEBUG][       Thread-604201][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:12:37,152 [DEBUG][       Thread-604201][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:12:37,152 [DEBUG][       Thread-604201][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:12:37,152 [DEBUG][       Thread-604201][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:12:37,152 [DEBUG][       Thread-604201][   transport.py][1871] : Compression: none
2025-07-01 12:12:37,152 [DEBUG][       Thread-604201][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:12:37,168 [DEBUG][       Thread-604201][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:12:37,168 [DEBUG][       Thread-604201][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:12:37,169 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:12:37,169 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:12:37,169 [DEBUG][       Thread-604201][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:12:37,170 [DEBUG][       Thread-604201][   transport.py][1871] : userauth is OK
2025-07-01 12:12:37,183 [ INFO][       Thread-604201][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:12:37,183 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:12:37,824 [DEBUG][       Thread-604201][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:12:37,824 [DEBUG][       Thread-604201][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:12:37,865 [DEBUG][       Thread-604201][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:12:37,865 [DEBUG][       Thread-604201][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:12:37,868 [DEBUG][       Thread-604201][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:12:37,881 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:12:37,882 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:12:37,883 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:12:37,885 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:12:37,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:12:37,893 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:12:37,893 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:12:37,894 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:12:37,894 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.424944 -999.00  +11.40  37.02     55   +2.80 1 1 2 1 1   888    0 8.82 7.75 ----- 37.0 37.0 22.4 50.3 14.5 -23.3 13.6 -23.9 13.2 -22.2 14.2 -22.2
2025-07-01 12:12:37,894 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:12:37,894 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:12:37,894 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.424944
2025-07-01 12:12:37,895 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:12:37,895 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:12:37,895 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:12:37,895 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:12:37,895 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:12:37,895 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:12:26', tmtdew=10.1, humidity=50.03, cloud=0.0, wind=34.32, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:11:55.162', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:12:37,896 [DEBUG][       Thread-604201][   transport.py][1871] : EOF in transport thread
2025-07-01 12:12:37,985 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:12:37,994 [DEBUG][       Thread-604204][   transport.py][1871] : starting thread (client mode): 0x8106e30
2025-07-01 12:12:37,995 [DEBUG][       Thread-604204][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:12:38,009 [DEBUG][       Thread-604204][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:12:38,009 [ INFO][       Thread-604204][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:12:38,017 [DEBUG][       Thread-604204][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:12:38,017 [DEBUG][       Thread-604204][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:12:38,017 [DEBUG][       Thread-604204][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:12:38,017 [DEBUG][       Thread-604204][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:12:38,017 [DEBUG][       Thread-604204][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:12:38,017 [DEBUG][       Thread-604204][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:12:38,017 [DEBUG][       Thread-604204][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:12:38,017 [DEBUG][       Thread-604204][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:12:38,017 [DEBUG][       Thread-604204][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:12:38,017 [DEBUG][       Thread-604204][   transport.py][1871] : client lang: <none>
2025-07-01 12:12:38,017 [DEBUG][       Thread-604204][   transport.py][1871] : server lang: <none>
2025-07-01 12:12:38,017 [DEBUG][       Thread-604204][   transport.py][1871] : kex follows: False
2025-07-01 12:12:38,017 [DEBUG][       Thread-604204][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:12:38,017 [DEBUG][       Thread-604204][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:12:38,017 [DEBUG][       Thread-604204][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:12:38,018 [DEBUG][       Thread-604204][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:12:38,018 [DEBUG][       Thread-604204][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:12:38,018 [DEBUG][       Thread-604204][   transport.py][1871] : Compression: none
2025-07-01 12:12:38,018 [DEBUG][       Thread-604204][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:12:38,075 [DEBUG][       Thread-604204][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:12:38,075 [DEBUG][       Thread-604204][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:12:38,076 [DEBUG][       Thread-604204][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:12:38,076 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:12:38,077 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:12:38,132 [DEBUG][       Thread-604204][   transport.py][1871] : userauth is OK
2025-07-01 12:12:38,133 [DEBUG][       Thread-604204][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:12:38,133 [DEBUG][       Thread-604204][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:12:38,133 [DEBUG][       Thread-604204][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:12:38,133 [DEBUG][       Thread-604204][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:12:38,152 [ INFO][       Thread-604204][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:12:38,152 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:12:38,152 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:12:39,109 [DEBUG][       Thread-604204][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:12:39,110 [DEBUG][       Thread-604204][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:12:39,160 [DEBUG][       Thread-604204][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:12:39,160 [DEBUG][       Thread-604204][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:12:39,170 [DEBUG][       Thread-604204][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:12:39,181 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:12:39,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-07-01 12:12:39,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-07-01 12:12:39,201 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:12:39,201 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:12:39,201 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:12:39,210 [DEBUG][       Thread-604204][   transport.py][1871] : EOF in transport thread
2025-07-01 12:12:39,959 [DEBUG][Thread-604206 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:12:48,998 [DEBUG][Thread-604207 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:12:49,212 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:12:49,212 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:12:49,212 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:12:49,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-07-01 12:12:49,684 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 12, 26), 10.1, 50.03, 0.0, 34.32, 11.44, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:12:49,684 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:12:26
2025-07-01 12:12:49,771 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:12:49,776 [DEBUG][       Thread-604208][   transport.py][1871] : starting thread (client mode): 0x81e58d0
2025-07-01 12:12:49,776 [DEBUG][       Thread-604208][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:12:49,796 [DEBUG][       Thread-604208][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:12:49,796 [ INFO][       Thread-604208][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:12:49,799 [DEBUG][       Thread-604208][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:12:49,799 [DEBUG][       Thread-604208][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:12:49,799 [DEBUG][       Thread-604208][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:12:49,799 [DEBUG][       Thread-604208][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:12:49,799 [DEBUG][       Thread-604208][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:12:49,799 [DEBUG][       Thread-604208][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:12:49,799 [DEBUG][       Thread-604208][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:12:49,799 [DEBUG][       Thread-604208][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:12:49,799 [DEBUG][       Thread-604208][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:12:49,800 [DEBUG][       Thread-604208][   transport.py][1871] : client lang: <none>
2025-07-01 12:12:49,800 [DEBUG][       Thread-604208][   transport.py][1871] : server lang: <none>
2025-07-01 12:12:49,800 [DEBUG][       Thread-604208][   transport.py][1871] : kex follows: False
2025-07-01 12:12:49,800 [DEBUG][       Thread-604208][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:12:49,800 [DEBUG][       Thread-604208][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:12:49,800 [DEBUG][       Thread-604208][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:12:49,800 [DEBUG][       Thread-604208][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:12:49,800 [DEBUG][       Thread-604208][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:12:49,800 [DEBUG][       Thread-604208][   transport.py][1871] : Compression: none
2025-07-01 12:12:49,800 [DEBUG][       Thread-604208][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:12:49,818 [DEBUG][       Thread-604208][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:12:49,818 [DEBUG][       Thread-604208][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:12:49,819 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:12:49,819 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:12:49,819 [DEBUG][       Thread-604208][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:12:49,820 [DEBUG][       Thread-604208][   transport.py][1871] : userauth is OK
2025-07-01 12:12:49,845 [ INFO][       Thread-604208][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:12:49,845 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:12:50,481 [DEBUG][       Thread-604208][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:12:50,481 [DEBUG][       Thread-604208][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:12:50,525 [DEBUG][       Thread-604208][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:12:50,525 [DEBUG][       Thread-604208][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:12:50,528 [DEBUG][       Thread-604208][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:12:50,535 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:12:50,535 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:12:50,537 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:12:50,539 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:12:50,545 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:12:50,547 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:12:50,547 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:12:50,548 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:12:50,548 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.424944 -999.00  +11.40  37.02     55   +2.80 1 1 2 1 1   888    0 8.82 7.75 ----- 37.0 37.0 22.4 50.3 14.5 -23.3 13.6 -23.9 13.2 -22.2 14.2 -22.2
2025-07-01 12:12:50,548 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:12:50,548 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:12:50,548 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.424944
2025-07-01 12:12:50,548 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:12:50,549 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:12:50,549 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:12:50,549 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:12:50,549 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:12:50,549 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:12:26', tmtdew=10.1, humidity=50.03, cloud=0.0, wind=34.32, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:11:55.162', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:12:50,550 [DEBUG][       Thread-604208][   transport.py][1871] : EOF in transport thread
2025-07-01 12:12:50,632 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:12:50,654 [DEBUG][       Thread-604211][   transport.py][1871] : starting thread (client mode): 0x75aa6e0
2025-07-01 12:12:50,654 [DEBUG][       Thread-604211][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:12:50,674 [DEBUG][       Thread-604211][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:12:50,674 [ INFO][       Thread-604211][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:12:50,684 [DEBUG][       Thread-604211][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:12:50,684 [DEBUG][       Thread-604211][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:12:50,684 [DEBUG][       Thread-604211][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:12:50,684 [DEBUG][       Thread-604211][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:12:50,684 [DEBUG][       Thread-604211][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:12:50,684 [DEBUG][       Thread-604211][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:12:50,685 [DEBUG][       Thread-604211][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:12:50,685 [DEBUG][       Thread-604211][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:12:50,685 [DEBUG][       Thread-604211][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:12:50,685 [DEBUG][       Thread-604211][   transport.py][1871] : client lang: <none>
2025-07-01 12:12:50,685 [DEBUG][       Thread-604211][   transport.py][1871] : server lang: <none>
2025-07-01 12:12:50,685 [DEBUG][       Thread-604211][   transport.py][1871] : kex follows: False
2025-07-01 12:12:50,685 [DEBUG][       Thread-604211][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:12:50,685 [DEBUG][       Thread-604211][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:12:50,685 [DEBUG][       Thread-604211][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:12:50,685 [DEBUG][       Thread-604211][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:12:50,685 [DEBUG][       Thread-604211][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:12:50,685 [DEBUG][       Thread-604211][   transport.py][1871] : Compression: none
2025-07-01 12:12:50,685 [DEBUG][       Thread-604211][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:12:50,744 [DEBUG][       Thread-604211][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:12:50,745 [DEBUG][       Thread-604211][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:12:50,745 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:12:50,746 [DEBUG][       Thread-604211][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:12:50,746 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:12:50,806 [DEBUG][       Thread-604211][   transport.py][1871] : userauth is OK
2025-07-01 12:12:50,807 [DEBUG][       Thread-604211][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:12:50,807 [DEBUG][       Thread-604211][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:12:50,807 [DEBUG][       Thread-604211][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:12:50,807 [DEBUG][       Thread-604211][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:12:50,826 [ INFO][       Thread-604211][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:12:50,827 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:12:50,827 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:12:51,819 [DEBUG][       Thread-604211][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:12:51,819 [DEBUG][       Thread-604211][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:12:51,874 [DEBUG][       Thread-604211][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:12:51,874 [DEBUG][       Thread-604211][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:12:51,883 [DEBUG][       Thread-604211][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:12:51,899 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:12:51,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-07-01 12:12:51,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-07-01 12:12:51,915 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:12:51,915 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:12:51,915 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:12:51,923 [DEBUG][       Thread-604211][   transport.py][1871] : EOF in transport thread
2025-07-01 12:12:58,021 [DEBUG][Thread-604213 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:13:01,925 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:13:01,925 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:13:01,925 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:13:01,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-07-01 12:13:02,399 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 12, 58), 10.12, 49.98, 0.0, 37.37, 11.48, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:13:02,399 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:12:58
2025-07-01 12:13:02,485 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:13:02,490 [DEBUG][       Thread-604214][   transport.py][1871] : starting thread (client mode): 0x82b25c0
2025-07-01 12:13:02,490 [DEBUG][       Thread-604214][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:13:02,506 [DEBUG][       Thread-604214][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:13:02,507 [ INFO][       Thread-604214][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:13:02,510 [DEBUG][       Thread-604214][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:13:02,510 [DEBUG][       Thread-604214][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:13:02,510 [DEBUG][       Thread-604214][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:13:02,510 [DEBUG][       Thread-604214][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:13:02,510 [DEBUG][       Thread-604214][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:13:02,510 [DEBUG][       Thread-604214][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:13:02,510 [DEBUG][       Thread-604214][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:13:02,510 [DEBUG][       Thread-604214][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:13:02,510 [DEBUG][       Thread-604214][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:13:02,510 [DEBUG][       Thread-604214][   transport.py][1871] : client lang: <none>
2025-07-01 12:13:02,510 [DEBUG][       Thread-604214][   transport.py][1871] : server lang: <none>
2025-07-01 12:13:02,510 [DEBUG][       Thread-604214][   transport.py][1871] : kex follows: False
2025-07-01 12:13:02,510 [DEBUG][       Thread-604214][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:13:02,510 [DEBUG][       Thread-604214][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:13:02,510 [DEBUG][       Thread-604214][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:13:02,510 [DEBUG][       Thread-604214][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:13:02,510 [DEBUG][       Thread-604214][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:13:02,510 [DEBUG][       Thread-604214][   transport.py][1871] : Compression: none
2025-07-01 12:13:02,510 [DEBUG][       Thread-604214][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:13:02,525 [DEBUG][       Thread-604214][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:13:02,525 [DEBUG][       Thread-604214][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:13:02,525 [DEBUG][       Thread-604214][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:13:02,525 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:13:02,525 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:13:02,527 [DEBUG][       Thread-604214][   transport.py][1871] : userauth is OK
2025-07-01 12:13:02,552 [ INFO][       Thread-604214][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:13:02,552 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:13:03,205 [DEBUG][       Thread-604214][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:13:03,205 [DEBUG][       Thread-604214][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:13:03,249 [DEBUG][       Thread-604214][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:13:03,249 [DEBUG][       Thread-604214][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:13:03,253 [DEBUG][       Thread-604214][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:13:03,266 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:13:03,266 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:13:03,268 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:13:03,270 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:13:03,276 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:13:03,278 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:13:03,278 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:13:03,278 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:13:03,279 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.425292 -999.00  +11.50  40.91     54   +2.60 1 1 2 1 1   888    0 8.83 6.85 ----- 40.9 40.9 27.8 56.3 14.6 -23.3 13.6 -25.0 13.3 -22.2 14.2 -22.3
2025-07-01 12:13:03,279 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:13:03,279 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:13:03,279 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.425292
2025-07-01 12:13:03,279 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:13:03,280 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:13:03,280 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:13:03,280 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:13:03,280 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:13:03,280 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:12:58', tmtdew=10.12, humidity=49.98, cloud=0.0, wind=37.37, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:12:25.229', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:13:03,281 [DEBUG][       Thread-604214][   transport.py][1871] : EOF in transport thread
2025-07-01 12:13:03,365 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:13:03,375 [DEBUG][       Thread-604217][   transport.py][1871] : starting thread (client mode): 0x75aa1a0
2025-07-01 12:13:03,375 [DEBUG][       Thread-604217][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:13:03,390 [DEBUG][       Thread-604217][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:13:03,390 [ INFO][       Thread-604217][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:13:03,397 [DEBUG][       Thread-604217][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:13:03,397 [DEBUG][       Thread-604217][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:13:03,397 [DEBUG][       Thread-604217][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:13:03,397 [DEBUG][       Thread-604217][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:13:03,397 [DEBUG][       Thread-604217][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:13:03,397 [DEBUG][       Thread-604217][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:13:03,398 [DEBUG][       Thread-604217][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:13:03,398 [DEBUG][       Thread-604217][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:13:03,398 [DEBUG][       Thread-604217][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:13:03,398 [DEBUG][       Thread-604217][   transport.py][1871] : client lang: <none>
2025-07-01 12:13:03,398 [DEBUG][       Thread-604217][   transport.py][1871] : server lang: <none>
2025-07-01 12:13:03,398 [DEBUG][       Thread-604217][   transport.py][1871] : kex follows: False
2025-07-01 12:13:03,398 [DEBUG][       Thread-604217][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:13:03,398 [DEBUG][       Thread-604217][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:13:03,398 [DEBUG][       Thread-604217][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:13:03,398 [DEBUG][       Thread-604217][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:13:03,398 [DEBUG][       Thread-604217][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:13:03,398 [DEBUG][       Thread-604217][   transport.py][1871] : Compression: none
2025-07-01 12:13:03,398 [DEBUG][       Thread-604217][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:13:03,461 [DEBUG][       Thread-604217][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:13:03,461 [DEBUG][       Thread-604217][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:13:03,462 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:13:03,463 [DEBUG][       Thread-604217][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:13:03,463 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:13:03,524 [DEBUG][       Thread-604217][   transport.py][1871] : userauth is OK
2025-07-01 12:13:03,524 [DEBUG][       Thread-604217][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:13:03,524 [DEBUG][       Thread-604217][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:13:03,525 [DEBUG][       Thread-604217][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:13:03,525 [DEBUG][       Thread-604217][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:13:03,543 [ INFO][       Thread-604217][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:13:03,543 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:13:03,544 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:13:04,550 [DEBUG][       Thread-604217][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:13:04,550 [DEBUG][       Thread-604217][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:13:04,600 [DEBUG][       Thread-604217][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:13:04,600 [DEBUG][       Thread-604217][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:13:04,614 [DEBUG][       Thread-604217][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:13:04,629 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:13:04,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-07-01 12:13:04,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-07-01 12:13:04,659 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:13:04,659 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:13:04,659 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:13:04,667 [DEBUG][       Thread-604217][   transport.py][1871] : EOF in transport thread
2025-07-01 12:13:07,041 [DEBUG][Thread-604219 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:13:14,016 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:13:14,017 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:13:14,670 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:13:14,670 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:13:14,670 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:13:14,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-07-01 12:13:15,139 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 12, 58), 10.12, 49.98, 0.0, 37.37, 11.48, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:13:15,139 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:12:58
2025-07-01 12:13:15,220 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:13:15,233 [DEBUG][       Thread-604220][   transport.py][1871] : starting thread (client mode): 0x8154940
2025-07-01 12:13:15,233 [DEBUG][       Thread-604220][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:13:15,253 [DEBUG][       Thread-604220][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:13:15,254 [ INFO][       Thread-604220][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:13:15,257 [DEBUG][       Thread-604220][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:13:15,257 [DEBUG][       Thread-604220][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:13:15,257 [DEBUG][       Thread-604220][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:13:15,257 [DEBUG][       Thread-604220][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:13:15,257 [DEBUG][       Thread-604220][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:13:15,257 [DEBUG][       Thread-604220][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:13:15,257 [DEBUG][       Thread-604220][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:13:15,257 [DEBUG][       Thread-604220][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:13:15,257 [DEBUG][       Thread-604220][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:13:15,257 [DEBUG][       Thread-604220][   transport.py][1871] : client lang: <none>
2025-07-01 12:13:15,257 [DEBUG][       Thread-604220][   transport.py][1871] : server lang: <none>
2025-07-01 12:13:15,257 [DEBUG][       Thread-604220][   transport.py][1871] : kex follows: False
2025-07-01 12:13:15,257 [DEBUG][       Thread-604220][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:13:15,257 [DEBUG][       Thread-604220][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:13:15,257 [DEBUG][       Thread-604220][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:13:15,257 [DEBUG][       Thread-604220][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:13:15,258 [DEBUG][       Thread-604220][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:13:15,258 [DEBUG][       Thread-604220][   transport.py][1871] : Compression: none
2025-07-01 12:13:15,258 [DEBUG][       Thread-604220][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:13:15,276 [DEBUG][       Thread-604220][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:13:15,276 [DEBUG][       Thread-604220][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:13:15,277 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:13:15,277 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:13:15,277 [DEBUG][       Thread-604220][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:13:15,278 [DEBUG][       Thread-604220][   transport.py][1871] : userauth is OK
2025-07-01 12:13:15,290 [ INFO][       Thread-604220][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:13:15,291 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:13:15,925 [DEBUG][       Thread-604220][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:13:15,926 [DEBUG][       Thread-604220][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:13:15,968 [DEBUG][       Thread-604220][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:13:15,968 [DEBUG][       Thread-604220][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:13:15,971 [DEBUG][       Thread-604220][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:13:15,984 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:13:15,984 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:13:15,986 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:13:15,987 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:13:15,992 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:13:15,993 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:13:15,993 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:13:15,994 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:13:15,994 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.425292 -999.00  +11.50  40.91     54   +2.60 1 1 2 1 1   888    0 8.83 6.85 ----- 40.9 40.9 27.8 56.3 14.6 -23.3 13.6 -25.0 13.3 -22.2 14.2 -22.3
2025-07-01 12:13:15,994 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:13:15,994 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:13:15,994 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.425292
2025-07-01 12:13:15,995 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:13:15,995 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:13:15,995 [DEBUG][       Thread-604220][   transport.py][1871] : EOF in transport thread
2025-07-01 12:13:15,995 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:13:15,996 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:13:15,996 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:13:15,996 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:12:58', tmtdew=10.12, humidity=49.98, cloud=0.0, wind=37.37, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:12:25.229', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:13:16,072 [DEBUG][Thread-604223 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:13:16,093 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:13:16,103 [DEBUG][       Thread-604224][   transport.py][1871] : starting thread (client mode): 0x83c8880
2025-07-01 12:13:16,103 [DEBUG][       Thread-604224][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:13:16,118 [DEBUG][       Thread-604224][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:13:16,118 [ INFO][       Thread-604224][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:13:16,125 [DEBUG][       Thread-604224][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:13:16,126 [DEBUG][       Thread-604224][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:13:16,126 [DEBUG][       Thread-604224][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:13:16,126 [DEBUG][       Thread-604224][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:13:16,126 [DEBUG][       Thread-604224][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:13:16,126 [DEBUG][       Thread-604224][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:13:16,126 [DEBUG][       Thread-604224][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:13:16,126 [DEBUG][       Thread-604224][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:13:16,126 [DEBUG][       Thread-604224][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:13:16,126 [DEBUG][       Thread-604224][   transport.py][1871] : client lang: <none>
2025-07-01 12:13:16,126 [DEBUG][       Thread-604224][   transport.py][1871] : server lang: <none>
2025-07-01 12:13:16,126 [DEBUG][       Thread-604224][   transport.py][1871] : kex follows: False
2025-07-01 12:13:16,126 [DEBUG][       Thread-604224][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:13:16,126 [DEBUG][       Thread-604224][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:13:16,126 [DEBUG][       Thread-604224][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:13:16,126 [DEBUG][       Thread-604224][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:13:16,126 [DEBUG][       Thread-604224][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:13:16,126 [DEBUG][       Thread-604224][   transport.py][1871] : Compression: none
2025-07-01 12:13:16,126 [DEBUG][       Thread-604224][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:13:16,184 [DEBUG][       Thread-604224][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:13:16,184 [DEBUG][       Thread-604224][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:13:16,185 [DEBUG][       Thread-604224][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:13:16,185 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:13:16,185 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:13:16,240 [DEBUG][       Thread-604224][   transport.py][1871] : userauth is OK
2025-07-01 12:13:16,240 [DEBUG][       Thread-604224][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:13:16,240 [DEBUG][       Thread-604224][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:13:16,241 [DEBUG][       Thread-604224][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:13:16,241 [DEBUG][       Thread-604224][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:13:16,259 [ INFO][       Thread-604224][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:13:16,260 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:13:16,260 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:13:17,252 [DEBUG][       Thread-604224][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:13:17,252 [DEBUG][       Thread-604224][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:13:17,304 [DEBUG][       Thread-604224][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:13:17,304 [DEBUG][       Thread-604224][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:13:17,315 [DEBUG][       Thread-604224][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:13:17,328 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:13:17,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')
2025-07-01 12:13:17,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') -> 00000000
2025-07-01 12:13:17,346 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:13:17,346 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:13:17,346 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:13:17,354 [DEBUG][       Thread-604224][   transport.py][1871] : EOF in transport thread
2025-07-01 12:13:25,094 [DEBUG][Thread-604226 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:13:27,357 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:13:27,357 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:13:27,357 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:13:27,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-07-01 12:13:27,827 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 12, 58), 10.12, 49.98, 0.0, 37.37, 11.48, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:13:27,827 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:12:58
2025-07-01 12:13:27,909 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:13:27,915 [DEBUG][       Thread-604227][   transport.py][1871] : starting thread (client mode): 0x8154ac0
2025-07-01 12:13:27,916 [DEBUG][       Thread-604227][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:13:27,937 [DEBUG][       Thread-604227][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:13:27,937 [ INFO][       Thread-604227][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:13:27,939 [DEBUG][       Thread-604227][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:13:27,939 [DEBUG][       Thread-604227][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:13:27,939 [DEBUG][       Thread-604227][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:13:27,939 [DEBUG][       Thread-604227][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:13:27,939 [DEBUG][       Thread-604227][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:13:27,939 [DEBUG][       Thread-604227][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:13:27,939 [DEBUG][       Thread-604227][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:13:27,939 [DEBUG][       Thread-604227][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:13:27,939 [DEBUG][       Thread-604227][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:13:27,939 [DEBUG][       Thread-604227][   transport.py][1871] : client lang: <none>
2025-07-01 12:13:27,939 [DEBUG][       Thread-604227][   transport.py][1871] : server lang: <none>
2025-07-01 12:13:27,939 [DEBUG][       Thread-604227][   transport.py][1871] : kex follows: False
2025-07-01 12:13:27,939 [DEBUG][       Thread-604227][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:13:27,939 [DEBUG][       Thread-604227][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:13:27,939 [DEBUG][       Thread-604227][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:13:27,940 [DEBUG][       Thread-604227][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:13:27,940 [DEBUG][       Thread-604227][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:13:27,940 [DEBUG][       Thread-604227][   transport.py][1871] : Compression: none
2025-07-01 12:13:27,940 [DEBUG][       Thread-604227][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:13:27,953 [DEBUG][       Thread-604227][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:13:27,953 [DEBUG][       Thread-604227][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:13:27,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:13:27,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:13:27,954 [DEBUG][       Thread-604227][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:13:27,955 [DEBUG][       Thread-604227][   transport.py][1871] : userauth is OK
2025-07-01 12:13:27,968 [ INFO][       Thread-604227][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:13:27,969 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:13:28,489 [DEBUG][Thread-604229 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:13:28,566 [DEBUG][       Thread-604227][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:13:28,566 [DEBUG][       Thread-604227][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:13:28,609 [DEBUG][       Thread-604227][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:13:28,609 [DEBUG][       Thread-604227][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:13:28,612 [DEBUG][       Thread-604227][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:13:28,625 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:13:28,625 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:13:28,627 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:13:28,629 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:13:28,634 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:13:28,635 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:13:28,635 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:13:28,636 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:13:28,636 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.425638 -999.00  +11.40  37.31     54   +2.50 1 1 2 1 1   888    0 9.01 7.22 ----- 37.3 37.3 43.2 49.9 14.6 -24.4 13.6 -24.7 13.3 -22.9 14.2 -21.8
2025-07-01 12:13:28,636 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:13:28,636 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:13:28,636 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.425638
2025-07-01 12:13:28,637 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:13:28,637 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:13:28,637 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:13:28,638 [DEBUG][       Thread-604227][   transport.py][1871] : EOF in transport thread
2025-07-01 12:13:28,638 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:13:28,638 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:13:28,639 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:12:58', tmtdew=10.12, humidity=49.98, cloud=0.0, wind=37.37, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:12:55.123', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:13:28,721 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:13:28,733 [DEBUG][       Thread-604231][   transport.py][1871] : starting thread (client mode): 0x8156b30
2025-07-01 12:13:28,734 [DEBUG][       Thread-604231][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:13:28,750 [DEBUG][       Thread-604231][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:13:28,750 [ INFO][       Thread-604231][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:13:28,757 [DEBUG][       Thread-604231][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:13:28,758 [DEBUG][       Thread-604231][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:13:28,758 [DEBUG][       Thread-604231][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:13:28,758 [DEBUG][       Thread-604231][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:13:28,758 [DEBUG][       Thread-604231][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:13:28,758 [DEBUG][       Thread-604231][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:13:28,758 [DEBUG][       Thread-604231][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:13:28,758 [DEBUG][       Thread-604231][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:13:28,758 [DEBUG][       Thread-604231][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:13:28,758 [DEBUG][       Thread-604231][   transport.py][1871] : client lang: <none>
2025-07-01 12:13:28,758 [DEBUG][       Thread-604231][   transport.py][1871] : server lang: <none>
2025-07-01 12:13:28,758 [DEBUG][       Thread-604231][   transport.py][1871] : kex follows: False
2025-07-01 12:13:28,758 [DEBUG][       Thread-604231][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:13:28,758 [DEBUG][       Thread-604231][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:13:28,758 [DEBUG][       Thread-604231][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:13:28,758 [DEBUG][       Thread-604231][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:13:28,759 [DEBUG][       Thread-604231][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:13:28,759 [DEBUG][       Thread-604231][   transport.py][1871] : Compression: none
2025-07-01 12:13:28,759 [DEBUG][       Thread-604231][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:13:28,817 [DEBUG][       Thread-604231][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:13:28,818 [DEBUG][       Thread-604231][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:13:28,818 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:13:28,819 [DEBUG][       Thread-604231][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:13:28,820 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:13:28,875 [DEBUG][       Thread-604231][   transport.py][1871] : userauth is OK
2025-07-01 12:13:28,875 [DEBUG][       Thread-604231][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:13:28,875 [DEBUG][       Thread-604231][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:13:28,876 [DEBUG][       Thread-604231][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:13:28,876 [DEBUG][       Thread-604231][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:13:28,895 [ INFO][       Thread-604231][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:13:28,895 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:13:28,895 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:13:29,924 [DEBUG][       Thread-604231][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:13:29,924 [DEBUG][       Thread-604231][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:13:29,972 [DEBUG][       Thread-604231][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:13:29,972 [DEBUG][       Thread-604231][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:13:29,983 [DEBUG][       Thread-604231][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:13:29,992 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:13:29,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-07-01 12:13:30,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-07-01 12:13:30,011 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:13:30,011 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:13:30,011 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:13:30,019 [DEBUG][       Thread-604231][   transport.py][1871] : EOF in transport thread
2025-07-01 12:13:34,115 [DEBUG][Thread-604233 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:13:40,020 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:13:40,020 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:13:40,020 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:13:40,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-07-01 12:13:40,511 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 13, 31), 10.11, 49.89, 0.0, 31.95, 11.49, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:13:40,511 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:13:31
2025-07-01 12:13:40,597 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:13:40,601 [DEBUG][       Thread-604234][   transport.py][1871] : starting thread (client mode): 0x8157c70
2025-07-01 12:13:40,601 [DEBUG][       Thread-604234][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:13:40,622 [DEBUG][       Thread-604234][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:13:40,622 [ INFO][       Thread-604234][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:13:40,625 [DEBUG][       Thread-604234][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:13:40,626 [DEBUG][       Thread-604234][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:13:40,626 [DEBUG][       Thread-604234][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:13:40,626 [DEBUG][       Thread-604234][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:13:40,626 [DEBUG][       Thread-604234][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:13:40,626 [DEBUG][       Thread-604234][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:13:40,626 [DEBUG][       Thread-604234][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:13:40,626 [DEBUG][       Thread-604234][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:13:40,626 [DEBUG][       Thread-604234][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:13:40,626 [DEBUG][       Thread-604234][   transport.py][1871] : client lang: <none>
2025-07-01 12:13:40,626 [DEBUG][       Thread-604234][   transport.py][1871] : server lang: <none>
2025-07-01 12:13:40,626 [DEBUG][       Thread-604234][   transport.py][1871] : kex follows: False
2025-07-01 12:13:40,626 [DEBUG][       Thread-604234][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:13:40,626 [DEBUG][       Thread-604234][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:13:40,626 [DEBUG][       Thread-604234][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:13:40,626 [DEBUG][       Thread-604234][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:13:40,626 [DEBUG][       Thread-604234][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:13:40,626 [DEBUG][       Thread-604234][   transport.py][1871] : Compression: none
2025-07-01 12:13:40,626 [DEBUG][       Thread-604234][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:13:40,643 [DEBUG][       Thread-604234][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:13:40,643 [DEBUG][       Thread-604234][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:13:40,643 [DEBUG][       Thread-604234][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:13:40,643 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:13:40,643 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:13:40,644 [DEBUG][       Thread-604234][   transport.py][1871] : userauth is OK
2025-07-01 12:13:40,656 [ INFO][       Thread-604234][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:13:40,657 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:13:41,291 [DEBUG][       Thread-604234][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:13:41,291 [DEBUG][       Thread-604234][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:13:41,333 [DEBUG][       Thread-604234][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:13:41,333 [DEBUG][       Thread-604234][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:13:41,336 [DEBUG][       Thread-604234][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:13:41,349 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:13:41,349 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:13:41,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:13:41,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:13:41,358 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:13:41,360 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:13:41,360 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:13:41,361 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:13:41,361 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.425638 -999.00  +11.40  37.31     54   +2.50 1 1 2 1 1   888    0 9.01 7.22 ----- 37.3 37.3 43.2 49.9 14.6 -24.4 13.6 -24.7 13.3 -22.9 14.2 -21.8
2025-07-01 12:13:41,361 [DEBUG][       Thread-604234][   transport.py][1871] : EOF in transport thread
2025-07-01 12:13:41,361 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:13:41,362 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:13:41,362 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.425638
2025-07-01 12:13:41,363 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:13:41,363 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:13:41,363 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:13:41,364 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:13:41,364 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:13:41,364 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:13:31', tmtdew=10.11, humidity=49.89, cloud=0.0, wind=31.95, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:12:55.123', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:13:41,452 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:13:41,461 [DEBUG][       Thread-604237][   transport.py][1871] : starting thread (client mode): 0x83c8880
2025-07-01 12:13:41,461 [DEBUG][       Thread-604237][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:13:41,477 [DEBUG][       Thread-604237][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:13:41,477 [ INFO][       Thread-604237][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:13:41,484 [DEBUG][       Thread-604237][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:13:41,484 [DEBUG][       Thread-604237][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:13:41,484 [DEBUG][       Thread-604237][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:13:41,484 [DEBUG][       Thread-604237][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:13:41,484 [DEBUG][       Thread-604237][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:13:41,484 [DEBUG][       Thread-604237][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:13:41,484 [DEBUG][       Thread-604237][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:13:41,484 [DEBUG][       Thread-604237][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:13:41,484 [DEBUG][       Thread-604237][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:13:41,484 [DEBUG][       Thread-604237][   transport.py][1871] : client lang: <none>
2025-07-01 12:13:41,484 [DEBUG][       Thread-604237][   transport.py][1871] : server lang: <none>
2025-07-01 12:13:41,484 [DEBUG][       Thread-604237][   transport.py][1871] : kex follows: False
2025-07-01 12:13:41,485 [DEBUG][       Thread-604237][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:13:41,485 [DEBUG][       Thread-604237][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:13:41,485 [DEBUG][       Thread-604237][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:13:41,485 [DEBUG][       Thread-604237][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:13:41,485 [DEBUG][       Thread-604237][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:13:41,485 [DEBUG][       Thread-604237][   transport.py][1871] : Compression: none
2025-07-01 12:13:41,485 [DEBUG][       Thread-604237][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:13:41,541 [DEBUG][       Thread-604237][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:13:41,542 [DEBUG][       Thread-604237][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:13:41,542 [DEBUG][       Thread-604237][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:13:41,543 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:13:41,543 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:13:41,598 [DEBUG][       Thread-604237][   transport.py][1871] : userauth is OK
2025-07-01 12:13:41,598 [DEBUG][       Thread-604237][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:13:41,598 [DEBUG][       Thread-604237][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:13:41,598 [DEBUG][       Thread-604237][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:13:41,598 [DEBUG][       Thread-604237][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:13:41,618 [ INFO][       Thread-604237][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:13:41,618 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:13:41,619 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:13:42,633 [DEBUG][       Thread-604237][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:13:42,633 [DEBUG][       Thread-604237][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:13:42,684 [DEBUG][       Thread-604237][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:13:42,685 [DEBUG][       Thread-604237][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:13:42,694 [DEBUG][       Thread-604237][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:13:42,704 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:13:42,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-07-01 12:13:42,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-07-01 12:13:42,723 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:13:42,723 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:13:42,723 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:13:42,734 [DEBUG][       Thread-604237][   transport.py][1871] : EOF in transport thread
2025-07-01 12:13:43,134 [DEBUG][Thread-604239 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:13:52,178 [DEBUG][Thread-604240 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:13:52,733 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:13:52,734 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:13:52,734 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:13:52,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-07-01 12:13:53,225 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 13, 31), 10.11, 49.89, 0.0, 31.95, 11.49, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:13:53,225 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:13:31
2025-07-01 12:13:53,307 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:13:53,313 [DEBUG][       Thread-604241][   transport.py][1871] : starting thread (client mode): 0x8106200
2025-07-01 12:13:53,313 [DEBUG][       Thread-604241][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:13:53,332 [DEBUG][       Thread-604241][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:13:53,332 [ INFO][       Thread-604241][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:13:53,336 [DEBUG][       Thread-604241][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:13:53,336 [DEBUG][       Thread-604241][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:13:53,336 [DEBUG][       Thread-604241][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:13:53,336 [DEBUG][       Thread-604241][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:13:53,336 [DEBUG][       Thread-604241][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:13:53,336 [DEBUG][       Thread-604241][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:13:53,336 [DEBUG][       Thread-604241][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:13:53,336 [DEBUG][       Thread-604241][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:13:53,336 [DEBUG][       Thread-604241][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:13:53,336 [DEBUG][       Thread-604241][   transport.py][1871] : client lang: <none>
2025-07-01 12:13:53,336 [DEBUG][       Thread-604241][   transport.py][1871] : server lang: <none>
2025-07-01 12:13:53,336 [DEBUG][       Thread-604241][   transport.py][1871] : kex follows: False
2025-07-01 12:13:53,336 [DEBUG][       Thread-604241][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:13:53,336 [DEBUG][       Thread-604241][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:13:53,336 [DEBUG][       Thread-604241][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:13:53,336 [DEBUG][       Thread-604241][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:13:53,336 [DEBUG][       Thread-604241][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:13:53,336 [DEBUG][       Thread-604241][   transport.py][1871] : Compression: none
2025-07-01 12:13:53,336 [DEBUG][       Thread-604241][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:13:53,352 [DEBUG][       Thread-604241][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:13:53,352 [DEBUG][       Thread-604241][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:13:53,353 [DEBUG][       Thread-604241][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:13:53,353 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:13:53,353 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:13:53,355 [DEBUG][       Thread-604241][   transport.py][1871] : userauth is OK
2025-07-01 12:13:53,367 [ INFO][       Thread-604241][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:13:53,368 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:13:53,980 [DEBUG][       Thread-604241][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:13:53,980 [DEBUG][       Thread-604241][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:13:54,021 [DEBUG][       Thread-604241][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:13:54,021 [DEBUG][       Thread-604241][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:13:54,024 [DEBUG][       Thread-604241][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:13:54,032 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:13:54,033 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:13:54,034 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:13:54,036 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:13:54,042 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:13:54,044 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:13:54,044 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:13:54,045 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:13:54,045 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.425638 -999.00  +11.40  37.31     54   +2.50 1 1 2 1 1   888    0 9.01 7.22 ----- 37.3 37.3 43.2 49.9 14.6 -24.4 13.6 -24.7 13.3 -22.9 14.2 -21.8
2025-07-01 12:13:54,045 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:13:54,045 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:13:54,045 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.425638
2025-07-01 12:13:54,045 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:13:54,046 [DEBUG][       Thread-604241][   transport.py][1871] : EOF in transport thread
2025-07-01 12:13:54,046 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:13:54,047 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:13:54,047 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:13:54,047 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:13:54,047 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:13:31', tmtdew=10.11, humidity=49.89, cloud=0.0, wind=31.95, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:12:55.123', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:13:54,130 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:13:54,141 [DEBUG][       Thread-604244][   transport.py][1871] : starting thread (client mode): 0x81566b0
2025-07-01 12:13:54,141 [DEBUG][       Thread-604244][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:13:54,158 [DEBUG][       Thread-604244][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:13:54,158 [ INFO][       Thread-604244][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:13:54,166 [DEBUG][       Thread-604244][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:13:54,166 [DEBUG][       Thread-604244][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:13:54,166 [DEBUG][       Thread-604244][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:13:54,166 [DEBUG][       Thread-604244][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:13:54,166 [DEBUG][       Thread-604244][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:13:54,166 [DEBUG][       Thread-604244][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:13:54,166 [DEBUG][       Thread-604244][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:13:54,166 [DEBUG][       Thread-604244][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:13:54,166 [DEBUG][       Thread-604244][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:13:54,166 [DEBUG][       Thread-604244][   transport.py][1871] : client lang: <none>
2025-07-01 12:13:54,166 [DEBUG][       Thread-604244][   transport.py][1871] : server lang: <none>
2025-07-01 12:13:54,166 [DEBUG][       Thread-604244][   transport.py][1871] : kex follows: False
2025-07-01 12:13:54,166 [DEBUG][       Thread-604244][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:13:54,166 [DEBUG][       Thread-604244][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:13:54,166 [DEBUG][       Thread-604244][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:13:54,166 [DEBUG][       Thread-604244][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:13:54,166 [DEBUG][       Thread-604244][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:13:54,166 [DEBUG][       Thread-604244][   transport.py][1871] : Compression: none
2025-07-01 12:13:54,166 [DEBUG][       Thread-604244][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:13:54,221 [DEBUG][       Thread-604244][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:13:54,221 [DEBUG][       Thread-604244][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:13:54,221 [DEBUG][       Thread-604244][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:13:54,221 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:13:54,222 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:13:54,282 [DEBUG][       Thread-604244][   transport.py][1871] : userauth is OK
2025-07-01 12:13:54,282 [DEBUG][       Thread-604244][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:13:54,282 [DEBUG][       Thread-604244][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:13:54,282 [DEBUG][       Thread-604244][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:13:54,282 [DEBUG][       Thread-604244][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:13:54,301 [ INFO][       Thread-604244][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:13:54,302 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:13:54,302 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:13:55,320 [DEBUG][       Thread-604244][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:13:55,321 [DEBUG][       Thread-604244][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:13:55,372 [DEBUG][       Thread-604244][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:13:55,372 [DEBUG][       Thread-604244][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:13:55,385 [DEBUG][       Thread-604244][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:13:55,394 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:13:55,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')
2025-07-01 12:13:55,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') -> 00000000
2025-07-01 12:13:55,412 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:13:55,412 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:13:55,413 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:13:55,420 [DEBUG][       Thread-604244][   transport.py][1871] : EOF in transport thread
2025-07-01 12:14:01,200 [DEBUG][Thread-604246 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:14:05,423 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:14:05,423 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:14:05,423 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:14:05,426 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:14:05,904 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 14, 2), 10.1, 49.92, 0.0, 31.48, 11.43, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:14:05,904 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:14:02
2025-07-01 12:14:05,986 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:14:05,990 [DEBUG][       Thread-604247][   transport.py][1871] : starting thread (client mode): 0x81042e0
2025-07-01 12:14:05,990 [DEBUG][       Thread-604247][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:14:06,012 [DEBUG][       Thread-604247][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:14:06,012 [ INFO][       Thread-604247][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:14:06,015 [DEBUG][       Thread-604247][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:14:06,015 [DEBUG][       Thread-604247][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:14:06,015 [DEBUG][       Thread-604247][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:14:06,015 [DEBUG][       Thread-604247][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:14:06,015 [DEBUG][       Thread-604247][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:14:06,015 [DEBUG][       Thread-604247][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:14:06,015 [DEBUG][       Thread-604247][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:14:06,015 [DEBUG][       Thread-604247][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:14:06,015 [DEBUG][       Thread-604247][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:14:06,015 [DEBUG][       Thread-604247][   transport.py][1871] : client lang: <none>
2025-07-01 12:14:06,015 [DEBUG][       Thread-604247][   transport.py][1871] : server lang: <none>
2025-07-01 12:14:06,015 [DEBUG][       Thread-604247][   transport.py][1871] : kex follows: False
2025-07-01 12:14:06,015 [DEBUG][       Thread-604247][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:14:06,015 [DEBUG][       Thread-604247][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:14:06,015 [DEBUG][       Thread-604247][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:14:06,015 [DEBUG][       Thread-604247][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:14:06,016 [DEBUG][       Thread-604247][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:14:06,016 [DEBUG][       Thread-604247][   transport.py][1871] : Compression: none
2025-07-01 12:14:06,016 [DEBUG][       Thread-604247][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:14:06,032 [DEBUG][       Thread-604247][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:14:06,032 [DEBUG][       Thread-604247][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:14:06,033 [DEBUG][       Thread-604247][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:14:06,033 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:14:06,033 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:14:06,034 [DEBUG][       Thread-604247][   transport.py][1871] : userauth is OK
2025-07-01 12:14:06,060 [ INFO][       Thread-604247][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:14:06,060 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:14:06,701 [DEBUG][       Thread-604247][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:14:06,702 [DEBUG][       Thread-604247][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:14:06,745 [DEBUG][       Thread-604247][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:14:06,745 [DEBUG][       Thread-604247][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:14:06,748 [DEBUG][       Thread-604247][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:14:06,762 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:14:06,762 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:14:06,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:14:06,766 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:14:06,771 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:14:06,773 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:14:06,773 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:14:06,774 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:14:06,774 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.426332 -999.00  +11.20  32.00     55   +2.60 1 1 2 1 1   888    0 8.94 5.86 ----- 32.0 32.0 26.6 43.3 14.3 -24.4 13.5 -23.9 13.2 -22.7 14.1 -22.8
2025-07-01 12:14:06,774 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:14:06,774 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:14:06,774 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.426332
2025-07-01 12:14:06,775 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:14:06,775 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:14:06,776 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:14:06,776 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:14:06,776 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:14:06,776 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:14:02', tmtdew=10.1, humidity=49.92, cloud=0.0, wind=31.48, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:13:55.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:14:06,777 [DEBUG][       Thread-604247][   transport.py][1871] : EOF in transport thread
2025-07-01 12:14:06,860 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:14:06,870 [DEBUG][       Thread-604250][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 12:14:06,870 [DEBUG][       Thread-604250][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:14:06,887 [DEBUG][       Thread-604250][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:14:06,887 [ INFO][       Thread-604250][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:14:06,895 [DEBUG][       Thread-604250][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:14:06,895 [DEBUG][       Thread-604250][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:14:06,895 [DEBUG][       Thread-604250][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:14:06,895 [DEBUG][       Thread-604250][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:14:06,895 [DEBUG][       Thread-604250][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:14:06,895 [DEBUG][       Thread-604250][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:14:06,895 [DEBUG][       Thread-604250][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:14:06,895 [DEBUG][       Thread-604250][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:14:06,895 [DEBUG][       Thread-604250][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:14:06,895 [DEBUG][       Thread-604250][   transport.py][1871] : client lang: <none>
2025-07-01 12:14:06,895 [DEBUG][       Thread-604250][   transport.py][1871] : server lang: <none>
2025-07-01 12:14:06,895 [DEBUG][       Thread-604250][   transport.py][1871] : kex follows: False
2025-07-01 12:14:06,895 [DEBUG][       Thread-604250][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:14:06,895 [DEBUG][       Thread-604250][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:14:06,896 [DEBUG][       Thread-604250][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:14:06,896 [DEBUG][       Thread-604250][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:14:06,896 [DEBUG][       Thread-604250][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:14:06,896 [DEBUG][       Thread-604250][   transport.py][1871] : Compression: none
2025-07-01 12:14:06,896 [DEBUG][       Thread-604250][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:14:06,951 [DEBUG][       Thread-604250][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:14:06,952 [DEBUG][       Thread-604250][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:14:06,953 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:14:06,953 [DEBUG][       Thread-604250][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:14:06,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:14:07,007 [DEBUG][       Thread-604250][   transport.py][1871] : userauth is OK
2025-07-01 12:14:07,008 [DEBUG][       Thread-604250][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:14:07,008 [DEBUG][       Thread-604250][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:14:07,008 [DEBUG][       Thread-604250][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:14:07,008 [DEBUG][       Thread-604250][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:14:07,027 [ INFO][       Thread-604250][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:14:07,028 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:14:07,028 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:14:08,039 [DEBUG][       Thread-604250][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:14:08,039 [DEBUG][       Thread-604250][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:14:08,088 [DEBUG][       Thread-604250][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:14:08,088 [DEBUG][       Thread-604250][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:14:08,099 [DEBUG][       Thread-604250][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:14:08,107 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:14:08,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-07-01 12:14:08,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-07-01 12:14:08,127 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:14:08,127 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:14:08,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:14:08,136 [DEBUG][       Thread-604250][   transport.py][1871] : EOF in transport thread
2025-07-01 12:14:10,221 [DEBUG][Thread-604252 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:14:14,157 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:14:14,157 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:14:18,136 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:14:18,136 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:14:18,136 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:14:18,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-07-01 12:14:18,629 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 14, 2), 10.1, 49.92, 0.0, 31.48, 11.43, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:14:18,629 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:14:02
2025-07-01 12:14:18,712 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:14:18,717 [DEBUG][       Thread-604253][   transport.py][1871] : starting thread (client mode): 0x81073d0
2025-07-01 12:14:18,717 [DEBUG][       Thread-604253][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:14:18,737 [DEBUG][       Thread-604253][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:14:18,737 [ INFO][       Thread-604253][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:14:18,741 [DEBUG][       Thread-604253][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:14:18,741 [DEBUG][       Thread-604253][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:14:18,741 [DEBUG][       Thread-604253][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:14:18,741 [DEBUG][       Thread-604253][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:14:18,741 [DEBUG][       Thread-604253][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:14:18,741 [DEBUG][       Thread-604253][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:14:18,741 [DEBUG][       Thread-604253][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:14:18,741 [DEBUG][       Thread-604253][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:14:18,741 [DEBUG][       Thread-604253][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:14:18,741 [DEBUG][       Thread-604253][   transport.py][1871] : client lang: <none>
2025-07-01 12:14:18,741 [DEBUG][       Thread-604253][   transport.py][1871] : server lang: <none>
2025-07-01 12:14:18,741 [DEBUG][       Thread-604253][   transport.py][1871] : kex follows: False
2025-07-01 12:14:18,741 [DEBUG][       Thread-604253][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:14:18,741 [DEBUG][       Thread-604253][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:14:18,741 [DEBUG][       Thread-604253][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:14:18,741 [DEBUG][       Thread-604253][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:14:18,741 [DEBUG][       Thread-604253][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:14:18,741 [DEBUG][       Thread-604253][   transport.py][1871] : Compression: none
2025-07-01 12:14:18,741 [DEBUG][       Thread-604253][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:14:18,757 [DEBUG][       Thread-604253][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:14:18,758 [DEBUG][       Thread-604253][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:14:18,758 [DEBUG][       Thread-604253][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:14:18,758 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:14:18,759 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:14:18,760 [DEBUG][       Thread-604253][   transport.py][1871] : userauth is OK
2025-07-01 12:14:18,773 [ INFO][       Thread-604253][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:14:18,773 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:14:19,262 [DEBUG][Thread-604255 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:14:19,419 [DEBUG][       Thread-604253][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:14:19,419 [DEBUG][       Thread-604253][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:14:19,461 [DEBUG][       Thread-604253][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:14:19,461 [DEBUG][       Thread-604253][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:14:19,464 [DEBUG][       Thread-604253][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:14:19,476 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:14:19,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:14:19,479 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:14:19,480 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:14:19,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:14:19,487 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:14:19,487 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:14:19,488 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:14:19,488 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.426332 -999.00  +11.20  32.00     55   +2.60 1 1 2 1 1   888    0 8.94 5.86 ----- 32.0 32.0 26.6 43.3 14.3 -24.4 13.5 -23.9 13.2 -22.7 14.1 -22.8
2025-07-01 12:14:19,488 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:14:19,489 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:14:19,489 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.426332
2025-07-01 12:14:19,489 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:14:19,490 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:14:19,490 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:14:19,490 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:14:19,490 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:14:19,490 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:14:02', tmtdew=10.1, humidity=49.92, cloud=0.0, wind=31.48, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:13:55.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:14:19,491 [DEBUG][       Thread-604253][   transport.py][1871] : EOF in transport thread
2025-07-01 12:14:19,573 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:14:19,585 [DEBUG][       Thread-604257][   transport.py][1871] : starting thread (client mode): 0x83c82e0
2025-07-01 12:14:19,585 [DEBUG][       Thread-604257][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:14:19,600 [DEBUG][       Thread-604257][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:14:19,600 [ INFO][       Thread-604257][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:14:19,607 [DEBUG][       Thread-604257][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:14:19,608 [DEBUG][       Thread-604257][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:14:19,608 [DEBUG][       Thread-604257][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:14:19,608 [DEBUG][       Thread-604257][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:14:19,608 [DEBUG][       Thread-604257][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:14:19,608 [DEBUG][       Thread-604257][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:14:19,608 [DEBUG][       Thread-604257][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:14:19,608 [DEBUG][       Thread-604257][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:14:19,608 [DEBUG][       Thread-604257][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:14:19,608 [DEBUG][       Thread-604257][   transport.py][1871] : client lang: <none>
2025-07-01 12:14:19,608 [DEBUG][       Thread-604257][   transport.py][1871] : server lang: <none>
2025-07-01 12:14:19,608 [DEBUG][       Thread-604257][   transport.py][1871] : kex follows: False
2025-07-01 12:14:19,608 [DEBUG][       Thread-604257][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:14:19,608 [DEBUG][       Thread-604257][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:14:19,608 [DEBUG][       Thread-604257][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:14:19,608 [DEBUG][       Thread-604257][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:14:19,608 [DEBUG][       Thread-604257][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:14:19,608 [DEBUG][       Thread-604257][   transport.py][1871] : Compression: none
2025-07-01 12:14:19,608 [DEBUG][       Thread-604257][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:14:19,668 [DEBUG][       Thread-604257][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:14:19,669 [DEBUG][       Thread-604257][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:14:19,669 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:14:19,670 [DEBUG][       Thread-604257][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:14:19,670 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:14:19,724 [DEBUG][       Thread-604257][   transport.py][1871] : userauth is OK
2025-07-01 12:14:19,724 [DEBUG][       Thread-604257][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:14:19,725 [DEBUG][       Thread-604257][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:14:19,725 [DEBUG][       Thread-604257][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:14:19,725 [DEBUG][       Thread-604257][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:14:19,743 [ INFO][       Thread-604257][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:14:19,744 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:14:19,744 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:14:20,770 [DEBUG][       Thread-604257][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:14:20,771 [DEBUG][       Thread-604257][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:14:20,820 [DEBUG][       Thread-604257][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:14:20,820 [DEBUG][       Thread-604257][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:14:20,829 [DEBUG][       Thread-604257][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:14:20,838 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:14:20,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-07-01 12:14:20,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-07-01 12:14:20,856 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:14:20,857 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:14:20,857 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:14:20,865 [DEBUG][       Thread-604257][   transport.py][1871] : EOF in transport thread
2025-07-01 12:14:28,284 [DEBUG][Thread-604259 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:14:28,541 [DEBUG][Thread-604260 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:14:30,867 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:14:30,868 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:14:30,868 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:14:30,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-07-01 12:14:31,360 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 14, 2), 10.1, 49.92, 0.0, 31.48, 11.43, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:14:31,360 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:14:02
2025-07-01 12:14:31,442 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:14:31,446 [DEBUG][       Thread-604261][   transport.py][1871] : starting thread (client mode): 0x81546d0
2025-07-01 12:14:31,446 [DEBUG][       Thread-604261][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:14:31,465 [DEBUG][       Thread-604261][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:14:31,465 [ INFO][       Thread-604261][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:14:31,468 [DEBUG][       Thread-604261][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:14:31,468 [DEBUG][       Thread-604261][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:14:31,468 [DEBUG][       Thread-604261][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:14:31,468 [DEBUG][       Thread-604261][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:14:31,468 [DEBUG][       Thread-604261][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:14:31,468 [DEBUG][       Thread-604261][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:14:31,468 [DEBUG][       Thread-604261][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:14:31,468 [DEBUG][       Thread-604261][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:14:31,468 [DEBUG][       Thread-604261][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:14:31,468 [DEBUG][       Thread-604261][   transport.py][1871] : client lang: <none>
2025-07-01 12:14:31,468 [DEBUG][       Thread-604261][   transport.py][1871] : server lang: <none>
2025-07-01 12:14:31,468 [DEBUG][       Thread-604261][   transport.py][1871] : kex follows: False
2025-07-01 12:14:31,469 [DEBUG][       Thread-604261][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:14:31,469 [DEBUG][       Thread-604261][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:14:31,469 [DEBUG][       Thread-604261][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:14:31,469 [DEBUG][       Thread-604261][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:14:31,469 [DEBUG][       Thread-604261][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:14:31,469 [DEBUG][       Thread-604261][   transport.py][1871] : Compression: none
2025-07-01 12:14:31,469 [DEBUG][       Thread-604261][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:14:31,483 [DEBUG][       Thread-604261][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:14:31,483 [DEBUG][       Thread-604261][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:14:31,483 [DEBUG][       Thread-604261][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:14:31,483 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:14:31,483 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:14:31,483 [DEBUG][       Thread-604261][   transport.py][1871] : userauth is OK
2025-07-01 12:14:31,496 [ INFO][       Thread-604261][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:14:31,496 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:14:32,128 [DEBUG][       Thread-604261][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:14:32,128 [DEBUG][       Thread-604261][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:14:32,169 [DEBUG][       Thread-604261][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:14:32,169 [DEBUG][       Thread-604261][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:14:32,172 [DEBUG][       Thread-604261][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:14:32,184 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:14:32,185 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:14:32,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:14:32,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:14:32,194 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:14:32,197 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:14:32,197 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:14:32,197 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:14:32,198 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.426332 -999.00  +11.20  32.00     55   +2.60 1 1 2 1 1   888    0 8.94 5.86 ----- 32.0 32.0 26.6 43.3 14.3 -24.4 13.5 -23.9 13.2 -22.7 14.1 -22.8
2025-07-01 12:14:32,198 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:14:32,198 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:14:32,198 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.426332
2025-07-01 12:14:32,198 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:14:32,199 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:14:32,199 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:14:32,199 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:14:32,199 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:14:32,199 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:14:02', tmtdew=10.1, humidity=49.92, cloud=0.0, wind=31.48, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:13:55.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:14:32,199 [DEBUG][       Thread-604261][   transport.py][1871] : EOF in transport thread
2025-07-01 12:14:32,283 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:14:32,294 [DEBUG][       Thread-604264][   transport.py][1871] : starting thread (client mode): 0x8104070
2025-07-01 12:14:32,294 [DEBUG][       Thread-604264][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:14:32,309 [DEBUG][       Thread-604264][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:14:32,309 [ INFO][       Thread-604264][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:14:32,316 [DEBUG][       Thread-604264][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:14:32,317 [DEBUG][       Thread-604264][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:14:32,317 [DEBUG][       Thread-604264][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:14:32,317 [DEBUG][       Thread-604264][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:14:32,317 [DEBUG][       Thread-604264][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:14:32,317 [DEBUG][       Thread-604264][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:14:32,317 [DEBUG][       Thread-604264][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:14:32,317 [DEBUG][       Thread-604264][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:14:32,317 [DEBUG][       Thread-604264][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:14:32,317 [DEBUG][       Thread-604264][   transport.py][1871] : client lang: <none>
2025-07-01 12:14:32,317 [DEBUG][       Thread-604264][   transport.py][1871] : server lang: <none>
2025-07-01 12:14:32,317 [DEBUG][       Thread-604264][   transport.py][1871] : kex follows: False
2025-07-01 12:14:32,317 [DEBUG][       Thread-604264][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:14:32,317 [DEBUG][       Thread-604264][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:14:32,317 [DEBUG][       Thread-604264][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:14:32,317 [DEBUG][       Thread-604264][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:14:32,317 [DEBUG][       Thread-604264][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:14:32,317 [DEBUG][       Thread-604264][   transport.py][1871] : Compression: none
2025-07-01 12:14:32,317 [DEBUG][       Thread-604264][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:14:32,375 [DEBUG][       Thread-604264][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:14:32,376 [DEBUG][       Thread-604264][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:14:32,376 [DEBUG][       Thread-604264][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:14:32,377 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:14:32,377 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:14:32,433 [DEBUG][       Thread-604264][   transport.py][1871] : userauth is OK
2025-07-01 12:14:32,433 [DEBUG][       Thread-604264][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:14:32,433 [DEBUG][       Thread-604264][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:14:32,433 [DEBUG][       Thread-604264][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:14:32,433 [DEBUG][       Thread-604264][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:14:32,452 [ INFO][       Thread-604264][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:14:32,453 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:14:32,453 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:14:33,473 [DEBUG][       Thread-604264][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:14:33,473 [DEBUG][       Thread-604264][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:14:33,524 [DEBUG][       Thread-604264][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:14:33,524 [DEBUG][       Thread-604264][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:14:33,533 [DEBUG][       Thread-604264][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:14:33,542 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:14: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-07-01 12:14:33,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-07-01 12:14:33,559 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:14:33,560 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:14:33,560 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:14:33,568 [DEBUG][       Thread-604264][   transport.py][1871] : EOF in transport thread
2025-07-01 12:14:37,306 [DEBUG][Thread-604266 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:14:43,570 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:14:43,571 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:14:43,571 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:14:43,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-07-01 12:14:44,059 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 14, 34), 10.06, 50.14, 0.0, 33.88, 11.44, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:14:44,059 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:14:34
2025-07-01 12:14:44,142 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:14:44,146 [DEBUG][       Thread-604267][   transport.py][1871] : starting thread (client mode): 0x8105db0
2025-07-01 12:14:44,146 [DEBUG][       Thread-604267][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:14:44,166 [DEBUG][       Thread-604267][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:14:44,167 [ INFO][       Thread-604267][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:14:44,168 [DEBUG][       Thread-604267][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:14:44,168 [DEBUG][       Thread-604267][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:14:44,168 [DEBUG][       Thread-604267][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:14:44,168 [DEBUG][       Thread-604267][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:14:44,168 [DEBUG][       Thread-604267][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:14:44,168 [DEBUG][       Thread-604267][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:14:44,168 [DEBUG][       Thread-604267][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:14:44,168 [DEBUG][       Thread-604267][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:14:44,168 [DEBUG][       Thread-604267][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:14:44,168 [DEBUG][       Thread-604267][   transport.py][1871] : client lang: <none>
2025-07-01 12:14:44,168 [DEBUG][       Thread-604267][   transport.py][1871] : server lang: <none>
2025-07-01 12:14:44,168 [DEBUG][       Thread-604267][   transport.py][1871] : kex follows: False
2025-07-01 12:14:44,168 [DEBUG][       Thread-604267][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:14:44,168 [DEBUG][       Thread-604267][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:14:44,168 [DEBUG][       Thread-604267][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:14:44,168 [DEBUG][       Thread-604267][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:14:44,168 [DEBUG][       Thread-604267][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:14:44,168 [DEBUG][       Thread-604267][   transport.py][1871] : Compression: none
2025-07-01 12:14:44,168 [DEBUG][       Thread-604267][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:14:44,183 [DEBUG][       Thread-604267][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:14:44,183 [DEBUG][       Thread-604267][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:14:44,184 [DEBUG][       Thread-604267][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:14:44,184 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:14:44,184 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:14:44,185 [DEBUG][       Thread-604267][   transport.py][1871] : userauth is OK
2025-07-01 12:14:44,210 [ INFO][       Thread-604267][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:14:44,211 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:14:44,866 [DEBUG][       Thread-604267][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:14:44,867 [DEBUG][       Thread-604267][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:14:44,913 [DEBUG][       Thread-604267][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:14:44,913 [DEBUG][       Thread-604267][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:14:44,916 [DEBUG][       Thread-604267][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:14:44,928 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:14:44,928 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:14:44,930 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:14:44,932 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:14:44,937 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:14:44,939 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:14:44,939 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:14:44,940 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:14:44,940 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.426680 -999.00  +11.40  38.48     54   +2.70 1 1 2 1 1   888    0 8.78 4.66 ----- 38.5 38.5 32.2 45.1 14.5 -23.7 13.6 -24.7 13.3 -22.2 14.2 -21.8
2025-07-01 12:14:44,940 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:14:44,940 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:14:44,940 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.426680
2025-07-01 12:14:44,941 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:14:44,941 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:14:44,941 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:14:44,942 [DEBUG][       Thread-604267][   transport.py][1871] : EOF in transport thread
2025-07-01 12:14:44,942 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:14:44,942 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:14:44,943 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:14:34', tmtdew=10.06, humidity=50.14, cloud=0.0, wind=33.88, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:14:25.152', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:14:45,025 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:14:45,038 [DEBUG][       Thread-604270][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 12:14:45,038 [DEBUG][       Thread-604270][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:14:45,057 [DEBUG][       Thread-604270][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:14:45,057 [ INFO][       Thread-604270][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:14:45,069 [DEBUG][       Thread-604270][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:14:45,069 [DEBUG][       Thread-604270][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:14:45,069 [DEBUG][       Thread-604270][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:14:45,069 [DEBUG][       Thread-604270][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:14:45,069 [DEBUG][       Thread-604270][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:14:45,069 [DEBUG][       Thread-604270][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:14:45,069 [DEBUG][       Thread-604270][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:14:45,069 [DEBUG][       Thread-604270][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:14:45,069 [DEBUG][       Thread-604270][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:14:45,070 [DEBUG][       Thread-604270][   transport.py][1871] : client lang: <none>
2025-07-01 12:14:45,070 [DEBUG][       Thread-604270][   transport.py][1871] : server lang: <none>
2025-07-01 12:14:45,070 [DEBUG][       Thread-604270][   transport.py][1871] : kex follows: False
2025-07-01 12:14:45,070 [DEBUG][       Thread-604270][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:14:45,070 [DEBUG][       Thread-604270][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:14:45,070 [DEBUG][       Thread-604270][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:14:45,070 [DEBUG][       Thread-604270][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:14:45,070 [DEBUG][       Thread-604270][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:14:45,070 [DEBUG][       Thread-604270][   transport.py][1871] : Compression: none
2025-07-01 12:14:45,070 [DEBUG][       Thread-604270][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:14:45,125 [DEBUG][       Thread-604270][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:14:45,125 [DEBUG][       Thread-604270][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:14:45,126 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:14:45,126 [DEBUG][       Thread-604270][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:14:45,127 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:14:45,182 [DEBUG][       Thread-604270][   transport.py][1871] : userauth is OK
2025-07-01 12:14:45,182 [DEBUG][       Thread-604270][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:14:45,182 [DEBUG][       Thread-604270][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:14:45,182 [DEBUG][       Thread-604270][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:14:45,182 [DEBUG][       Thread-604270][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:14:45,203 [ INFO][       Thread-604270][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:14:45,203 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:14:45,204 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:14:46,216 [DEBUG][       Thread-604270][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:14:46,216 [DEBUG][       Thread-604270][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:14:46,263 [DEBUG][       Thread-604270][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:14:46,264 [DEBUG][       Thread-604270][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:14:46,272 [DEBUG][       Thread-604270][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:14:46,281 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:14:46,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')
2025-07-01 12:14:46,289 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 12:14:46,298 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:14:46,298 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:14:46,299 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:14:46,306 [DEBUG][       Thread-604270][   transport.py][1871] : EOF in transport thread
2025-07-01 12:14:46,328 [DEBUG][Thread-604272 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:14:55,355 [DEBUG][Thread-604273 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:14:56,308 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:14:56,308 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:14:56,308 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:14:56,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-07-01 12:14:56,787 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 14, 34), 10.06, 50.14, 0.0, 33.88, 11.44, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:14:56,787 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:14:34
2025-07-01 12:14:56,870 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:14:56,875 [DEBUG][       Thread-604274][   transport.py][1871] : starting thread (client mode): 0x8154e50
2025-07-01 12:14:56,875 [DEBUG][       Thread-604274][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:14:56,895 [DEBUG][       Thread-604274][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:14:56,895 [ INFO][       Thread-604274][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:14:56,898 [DEBUG][       Thread-604274][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:14:56,898 [DEBUG][       Thread-604274][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:14:56,898 [DEBUG][       Thread-604274][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:14:56,898 [DEBUG][       Thread-604274][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:14:56,898 [DEBUG][       Thread-604274][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:14:56,898 [DEBUG][       Thread-604274][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:14:56,898 [DEBUG][       Thread-604274][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:14:56,898 [DEBUG][       Thread-604274][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:14:56,898 [DEBUG][       Thread-604274][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:14:56,898 [DEBUG][       Thread-604274][   transport.py][1871] : client lang: <none>
2025-07-01 12:14:56,898 [DEBUG][       Thread-604274][   transport.py][1871] : server lang: <none>
2025-07-01 12:14:56,899 [DEBUG][       Thread-604274][   transport.py][1871] : kex follows: False
2025-07-01 12:14:56,899 [DEBUG][       Thread-604274][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:14:56,899 [DEBUG][       Thread-604274][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:14:56,899 [DEBUG][       Thread-604274][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:14:56,899 [DEBUG][       Thread-604274][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:14:56,899 [DEBUG][       Thread-604274][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:14:56,899 [DEBUG][       Thread-604274][   transport.py][1871] : Compression: none
2025-07-01 12:14:56,899 [DEBUG][       Thread-604274][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:14:56,908 [DEBUG][       Thread-604274][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:14:56,908 [DEBUG][       Thread-604274][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:14:56,909 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:14:56,909 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:14:56,909 [DEBUG][       Thread-604274][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:14:56,910 [DEBUG][       Thread-604274][   transport.py][1871] : userauth is OK
2025-07-01 12:14:56,934 [ INFO][       Thread-604274][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:14:56,935 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:14:57,555 [DEBUG][       Thread-604274][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:14:57,555 [DEBUG][       Thread-604274][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:14:57,597 [DEBUG][       Thread-604274][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:14:57,597 [DEBUG][       Thread-604274][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:14:57,600 [DEBUG][       Thread-604274][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:14:57,612 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:14:57,612 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:14:57,614 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:14:57,616 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:14:57,623 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:14:57,625 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:14:57,625 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:14:57,626 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:14:57,626 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.426680 -999.00  +11.40  38.48     54   +2.70 1 1 2 1 1   888    0 8.78 4.66 ----- 38.5 38.5 32.2 45.1 14.5 -23.7 13.6 -24.7 13.3 -22.2 14.2 -21.8
2025-07-01 12:14:57,626 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:14:57,626 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:14:57,626 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.426680
2025-07-01 12:14:57,626 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:14:57,627 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:14:57,627 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:14:57,627 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:14:57,627 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:14:57,627 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:14:34', tmtdew=10.06, humidity=50.14, cloud=0.0, wind=33.88, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:14:25.152', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:14:57,627 [DEBUG][       Thread-604274][   transport.py][1871] : EOF in transport thread
2025-07-01 12:14:57,711 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:14:57,720 [DEBUG][       Thread-604277][   transport.py][1871] : starting thread (client mode): 0x8106830
2025-07-01 12:14:57,720 [DEBUG][       Thread-604277][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:14:57,736 [DEBUG][       Thread-604277][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:14:57,736 [ INFO][       Thread-604277][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:14:57,743 [DEBUG][       Thread-604277][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:14:57,743 [DEBUG][       Thread-604277][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:14:57,743 [DEBUG][       Thread-604277][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:14:57,743 [DEBUG][       Thread-604277][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:14:57,743 [DEBUG][       Thread-604277][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:14:57,743 [DEBUG][       Thread-604277][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:14:57,743 [DEBUG][       Thread-604277][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:14:57,743 [DEBUG][       Thread-604277][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:14:57,744 [DEBUG][       Thread-604277][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:14:57,744 [DEBUG][       Thread-604277][   transport.py][1871] : client lang: <none>
2025-07-01 12:14:57,744 [DEBUG][       Thread-604277][   transport.py][1871] : server lang: <none>
2025-07-01 12:14:57,744 [DEBUG][       Thread-604277][   transport.py][1871] : kex follows: False
2025-07-01 12:14:57,744 [DEBUG][       Thread-604277][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:14:57,744 [DEBUG][       Thread-604277][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:14:57,744 [DEBUG][       Thread-604277][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:14:57,744 [DEBUG][       Thread-604277][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:14:57,744 [DEBUG][       Thread-604277][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:14:57,744 [DEBUG][       Thread-604277][   transport.py][1871] : Compression: none
2025-07-01 12:14:57,744 [DEBUG][       Thread-604277][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:14:57,801 [DEBUG][       Thread-604277][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:14:57,802 [DEBUG][       Thread-604277][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:14:57,803 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:14:57,803 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:14:57,804 [DEBUG][       Thread-604277][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:14:57,858 [DEBUG][       Thread-604277][   transport.py][1871] : userauth is OK
2025-07-01 12:14:57,858 [DEBUG][       Thread-604277][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:14:57,858 [DEBUG][       Thread-604277][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:14:57,858 [DEBUG][       Thread-604277][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:14:57,858 [DEBUG][       Thread-604277][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:14:57,878 [ INFO][       Thread-604277][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:14:57,878 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:14:57,879 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:14:58,878 [DEBUG][       Thread-604277][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:14:58,878 [DEBUG][       Thread-604277][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:14:58,931 [DEBUG][       Thread-604277][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:14:58,931 [DEBUG][       Thread-604277][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:14:58,941 [DEBUG][       Thread-604277][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:14:58,949 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:14:58,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-07-01 12:14:58,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') -> 00000000
2025-07-01 12:14:58,967 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:14:58,968 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:14:58,968 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:14:58,976 [DEBUG][       Thread-604277][   transport.py][1871] : EOF in transport thread
2025-07-01 12:15:04,375 [DEBUG][Thread-604279 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:15:08,978 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:15:08,979 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:15:08,979 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:15:08,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-07-01 12:15:09,470 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 15, 6), 10.04, 50.22, 0.0, 35.34, 11.43, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:15:09,470 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:15:06
2025-07-01 12:15:09,554 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:15:09,557 [DEBUG][       Thread-604280][   transport.py][1871] : starting thread (client mode): 0x8157190
2025-07-01 12:15:09,557 [DEBUG][       Thread-604280][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:15:09,578 [DEBUG][       Thread-604280][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:15:09,578 [ INFO][       Thread-604280][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:15:09,581 [DEBUG][       Thread-604280][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:15:09,581 [DEBUG][       Thread-604280][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:15:09,581 [DEBUG][       Thread-604280][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:15:09,581 [DEBUG][       Thread-604280][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:15:09,581 [DEBUG][       Thread-604280][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:15:09,581 [DEBUG][       Thread-604280][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:15:09,581 [DEBUG][       Thread-604280][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:15:09,581 [DEBUG][       Thread-604280][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:15:09,581 [DEBUG][       Thread-604280][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:15:09,581 [DEBUG][       Thread-604280][   transport.py][1871] : client lang: <none>
2025-07-01 12:15:09,581 [DEBUG][       Thread-604280][   transport.py][1871] : server lang: <none>
2025-07-01 12:15:09,581 [DEBUG][       Thread-604280][   transport.py][1871] : kex follows: False
2025-07-01 12:15:09,581 [DEBUG][       Thread-604280][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:15:09,581 [DEBUG][       Thread-604280][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:15:09,581 [DEBUG][       Thread-604280][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:15:09,581 [DEBUG][       Thread-604280][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:15:09,581 [DEBUG][       Thread-604280][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:15:09,581 [DEBUG][       Thread-604280][   transport.py][1871] : Compression: none
2025-07-01 12:15:09,581 [DEBUG][       Thread-604280][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:15:09,600 [DEBUG][       Thread-604280][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:15:09,601 [DEBUG][       Thread-604280][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:15:09,601 [DEBUG][       Thread-604280][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:15:09,602 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:15:09,602 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:15:09,603 [DEBUG][       Thread-604280][   transport.py][1871] : userauth is OK
2025-07-01 12:15:09,627 [ INFO][       Thread-604280][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:15:09,628 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:15:10,188 [DEBUG][       Thread-604280][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:15:10,188 [DEBUG][       Thread-604280][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:15:10,229 [DEBUG][       Thread-604280][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:15:10,229 [DEBUG][       Thread-604280][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:15:10,232 [DEBUG][       Thread-604280][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:15:10,237 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:15:10,238 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:15:10,240 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:15:10,241 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:15:10,247 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:15:10,249 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:15:10,249 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:15:10,249 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:15:10,250 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.427027 -999.00  +11.40  42.62     54   +2.50 1 1 2 1 1   888    0 8.80 3.75 ----- 42.6 42.6 44.6 46.7 14.6 -23.4 13.6 -24.8 13.4 -22.1 14.2 -21.6
2025-07-01 12:15:10,250 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:15:10,250 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:15:10,250 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.427027
2025-07-01 12:15:10,250 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:15:10,251 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:15:10,251 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:15:10,251 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:15:10,251 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:15:10,251 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:15:06', tmtdew=10.04, humidity=50.22, cloud=0.0, wind=35.34, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:14:55.133', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:15:10,251 [DEBUG][       Thread-604280][   transport.py][1871] : EOF in transport thread
2025-07-01 12:15:10,335 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:15:10,346 [DEBUG][       Thread-604283][   transport.py][1871] : starting thread (client mode): 0x83c81f0
2025-07-01 12:15:10,346 [DEBUG][       Thread-604283][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:15:10,365 [DEBUG][       Thread-604283][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:15:10,365 [ INFO][       Thread-604283][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:15:10,374 [DEBUG][       Thread-604283][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:15:10,374 [DEBUG][       Thread-604283][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:15:10,374 [DEBUG][       Thread-604283][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:15:10,375 [DEBUG][       Thread-604283][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:15:10,375 [DEBUG][       Thread-604283][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:15:10,375 [DEBUG][       Thread-604283][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:15:10,375 [DEBUG][       Thread-604283][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:15:10,375 [DEBUG][       Thread-604283][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:15:10,375 [DEBUG][       Thread-604283][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:15:10,375 [DEBUG][       Thread-604283][   transport.py][1871] : client lang: <none>
2025-07-01 12:15:10,375 [DEBUG][       Thread-604283][   transport.py][1871] : server lang: <none>
2025-07-01 12:15:10,375 [DEBUG][       Thread-604283][   transport.py][1871] : kex follows: False
2025-07-01 12:15:10,375 [DEBUG][       Thread-604283][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:15:10,375 [DEBUG][       Thread-604283][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:15:10,375 [DEBUG][       Thread-604283][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:15:10,375 [DEBUG][       Thread-604283][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:15:10,375 [DEBUG][       Thread-604283][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:15:10,375 [DEBUG][       Thread-604283][   transport.py][1871] : Compression: none
2025-07-01 12:15:10,375 [DEBUG][       Thread-604283][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:15:10,435 [DEBUG][       Thread-604283][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:15:10,435 [DEBUG][       Thread-604283][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:15:10,436 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:15:10,436 [DEBUG][       Thread-604283][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:15:10,437 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:15:10,490 [DEBUG][       Thread-604283][   transport.py][1871] : userauth is OK
2025-07-01 12:15:10,491 [DEBUG][       Thread-604283][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:15:10,491 [DEBUG][       Thread-604283][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:15:10,491 [DEBUG][       Thread-604283][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:15:10,491 [DEBUG][       Thread-604283][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:15:10,510 [ INFO][       Thread-604283][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:15:10,511 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:15:10,511 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:15:11,495 [DEBUG][       Thread-604283][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:15:11,495 [DEBUG][       Thread-604283][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:15:11,544 [DEBUG][       Thread-604283][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:15:11,544 [DEBUG][       Thread-604283][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:15:11,554 [DEBUG][       Thread-604283][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:15:11,563 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:15:11,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')
2025-07-01 12:15:11,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-07-01 12:15:11,581 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:15:11,582 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:15:11,582 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:15:11,590 [DEBUG][       Thread-604283][   transport.py][1871] : EOF in transport thread
2025-07-01 12:15:13,395 [DEBUG][Thread-604285 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:15:14,295 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:15:14,296 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:15:21,592 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:15:21,592 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:15:21,592 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:15:21,595 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:15:22,078 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 15, 6), 10.04, 50.22, 0.0, 35.34, 11.43, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:15:22,078 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:15:06
2025-07-01 12:15:22,161 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:15:22,167 [DEBUG][       Thread-604286][   transport.py][1871] : starting thread (client mode): 0x8106740
2025-07-01 12:15:22,167 [DEBUG][       Thread-604286][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:15:22,179 [DEBUG][       Thread-604286][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:15:22,179 [ INFO][       Thread-604286][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:15:22,182 [DEBUG][       Thread-604286][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:15:22,182 [DEBUG][       Thread-604286][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:15:22,182 [DEBUG][       Thread-604286][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:15:22,182 [DEBUG][       Thread-604286][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:15:22,182 [DEBUG][       Thread-604286][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:15:22,182 [DEBUG][       Thread-604286][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:15:22,182 [DEBUG][       Thread-604286][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:15:22,182 [DEBUG][       Thread-604286][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:15:22,182 [DEBUG][       Thread-604286][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:15:22,182 [DEBUG][       Thread-604286][   transport.py][1871] : client lang: <none>
2025-07-01 12:15:22,182 [DEBUG][       Thread-604286][   transport.py][1871] : server lang: <none>
2025-07-01 12:15:22,182 [DEBUG][       Thread-604286][   transport.py][1871] : kex follows: False
2025-07-01 12:15:22,182 [DEBUG][       Thread-604286][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:15:22,182 [DEBUG][       Thread-604286][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:15:22,182 [DEBUG][       Thread-604286][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:15:22,182 [DEBUG][       Thread-604286][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:15:22,182 [DEBUG][       Thread-604286][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:15:22,182 [DEBUG][       Thread-604286][   transport.py][1871] : Compression: none
2025-07-01 12:15:22,182 [DEBUG][       Thread-604286][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:15:22,199 [DEBUG][       Thread-604286][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:15:22,199 [DEBUG][       Thread-604286][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:15:22,200 [DEBUG][       Thread-604286][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:15:22,200 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:15:22,200 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:15:22,201 [DEBUG][       Thread-604286][   transport.py][1871] : userauth is OK
2025-07-01 12:15:22,226 [ INFO][       Thread-604286][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:15:22,226 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:15:22,429 [DEBUG][Thread-604288 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:15:23,366 [DEBUG][       Thread-604286][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:15:23,367 [DEBUG][       Thread-604286][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:15:23,409 [DEBUG][       Thread-604286][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:15:23,409 [DEBUG][       Thread-604286][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:15:23,412 [DEBUG][       Thread-604286][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:15:23,425 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:15:23,425 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:15:23,427 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:15:23,428 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:15:23,433 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:15:23,435 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:15:23,435 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:15:23,436 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:15:23,436 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.427027 -999.00  +11.40  42.62     54   +2.50 1 1 2 1 1   888    0 8.80 3.75 ----- 42.6 42.6 44.6 46.7 14.6 -23.4 13.6 -24.8 13.4 -22.1 14.2 -21.6
2025-07-01 12:15:23,436 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:15:23,436 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:15:23,437 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.427027
2025-07-01 12:15:23,437 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:15:23,438 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:15:23,438 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:15:23,438 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:15:23,438 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:15:23,438 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:15:06', tmtdew=10.04, humidity=50.22, cloud=0.0, wind=35.34, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:14:55.133', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:15:23,438 [DEBUG][       Thread-604286][   transport.py][1871] : EOF in transport thread
2025-07-01 12:15:23,522 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:15:23,533 [DEBUG][       Thread-604290][   transport.py][1871] : starting thread (client mode): 0x8107b50
2025-07-01 12:15:23,533 [DEBUG][       Thread-604290][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:15:23,548 [DEBUG][       Thread-604290][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:15:23,548 [ INFO][       Thread-604290][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:15:23,556 [DEBUG][       Thread-604290][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:15:23,556 [DEBUG][       Thread-604290][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:15:23,556 [DEBUG][       Thread-604290][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:15:23,556 [DEBUG][       Thread-604290][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:15:23,556 [DEBUG][       Thread-604290][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:15:23,556 [DEBUG][       Thread-604290][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:15:23,556 [DEBUG][       Thread-604290][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:15:23,556 [DEBUG][       Thread-604290][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:15:23,556 [DEBUG][       Thread-604290][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:15:23,556 [DEBUG][       Thread-604290][   transport.py][1871] : client lang: <none>
2025-07-01 12:15:23,556 [DEBUG][       Thread-604290][   transport.py][1871] : server lang: <none>
2025-07-01 12:15:23,556 [DEBUG][       Thread-604290][   transport.py][1871] : kex follows: False
2025-07-01 12:15:23,556 [DEBUG][       Thread-604290][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:15:23,556 [DEBUG][       Thread-604290][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:15:23,556 [DEBUG][       Thread-604290][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:15:23,556 [DEBUG][       Thread-604290][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:15:23,556 [DEBUG][       Thread-604290][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:15:23,556 [DEBUG][       Thread-604290][   transport.py][1871] : Compression: none
2025-07-01 12:15:23,556 [DEBUG][       Thread-604290][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:15:23,613 [DEBUG][       Thread-604290][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:15:23,613 [DEBUG][       Thread-604290][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:15:23,613 [DEBUG][       Thread-604290][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:15:23,614 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:15:23,614 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:15:23,671 [DEBUG][       Thread-604290][   transport.py][1871] : userauth is OK
2025-07-01 12:15:23,671 [DEBUG][       Thread-604290][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:15:23,671 [DEBUG][       Thread-604290][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:15:23,671 [DEBUG][       Thread-604290][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:15:23,671 [DEBUG][       Thread-604290][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:15:23,691 [ INFO][       Thread-604290][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:15:23,691 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:15:23,692 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:15:24,690 [DEBUG][       Thread-604290][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:15:24,691 [DEBUG][       Thread-604290][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:15:24,740 [DEBUG][       Thread-604290][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:15:24,740 [DEBUG][       Thread-604290][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:15:24,749 [DEBUG][       Thread-604290][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:15:24,758 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:15:24,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-07-01 12:15: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-07-01 12:15:24,776 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:15:24,776 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:15:24,777 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:15:24,784 [DEBUG][       Thread-604290][   transport.py][1871] : EOF in transport thread
2025-07-01 12:15:28,592 [DEBUG][Thread-604292 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:15:31,448 [DEBUG][Thread-604293 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:15:34,784 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:15:34,784 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:15:34,784 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:15:34,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-07-01 12:15:35,249 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 15, 6), 10.04, 50.22, 0.0, 35.34, 11.43, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:15:35,249 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:15:06
2025-07-01 12:15:35,332 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:15:35,338 [DEBUG][       Thread-604294][   transport.py][1871] : starting thread (client mode): 0x81074f0
2025-07-01 12:15:35,338 [DEBUG][       Thread-604294][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:15:35,358 [DEBUG][       Thread-604294][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:15:35,358 [ INFO][       Thread-604294][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:15:35,362 [DEBUG][       Thread-604294][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:15:35,362 [DEBUG][       Thread-604294][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:15:35,362 [DEBUG][       Thread-604294][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:15:35,362 [DEBUG][       Thread-604294][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:15:35,362 [DEBUG][       Thread-604294][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:15:35,362 [DEBUG][       Thread-604294][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:15:35,362 [DEBUG][       Thread-604294][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:15:35,362 [DEBUG][       Thread-604294][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:15:35,362 [DEBUG][       Thread-604294][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:15:35,362 [DEBUG][       Thread-604294][   transport.py][1871] : client lang: <none>
2025-07-01 12:15:35,362 [DEBUG][       Thread-604294][   transport.py][1871] : server lang: <none>
2025-07-01 12:15:35,362 [DEBUG][       Thread-604294][   transport.py][1871] : kex follows: False
2025-07-01 12:15:35,362 [DEBUG][       Thread-604294][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:15:35,362 [DEBUG][       Thread-604294][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:15:35,362 [DEBUG][       Thread-604294][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:15:35,362 [DEBUG][       Thread-604294][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:15:35,362 [DEBUG][       Thread-604294][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:15:35,362 [DEBUG][       Thread-604294][   transport.py][1871] : Compression: none
2025-07-01 12:15:35,362 [DEBUG][       Thread-604294][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:15:35,378 [DEBUG][       Thread-604294][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:15:35,378 [DEBUG][       Thread-604294][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:15:35,379 [DEBUG][       Thread-604294][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:15:35,379 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:15:35,379 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:15:35,381 [DEBUG][       Thread-604294][   transport.py][1871] : userauth is OK
2025-07-01 12:15:35,407 [ INFO][       Thread-604294][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:15:35,408 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:15:36,173 [DEBUG][       Thread-604294][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:15:36,173 [DEBUG][       Thread-604294][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:15:36,217 [DEBUG][       Thread-604294][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:15:36,217 [DEBUG][       Thread-604294][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:15:36,220 [DEBUG][       Thread-604294][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:15:36,224 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:15:36,225 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:15:36,226 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:15:36,228 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:15:36,233 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:15:36,235 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:15:36,235 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:15:36,236 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:15:36,236 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.427027 -999.00  +11.40  42.62     54   +2.50 1 1 2 1 1   888    0 8.80 3.75 ----- 42.6 42.6 44.6 46.7 14.6 -23.4 13.6 -24.8 13.4 -22.1 14.2 -21.6
2025-07-01 12:15:36,236 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:15:36,236 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:15:36,236 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.427027
2025-07-01 12:15:36,237 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:15:36,237 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:15:36,238 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:15:36,238 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:15:36,238 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:15:36,238 [DEBUG][       Thread-604294][   transport.py][1871] : EOF in transport thread
2025-07-01 12:15:36,238 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:15:06', tmtdew=10.04, humidity=50.22, cloud=0.0, wind=35.34, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:14:55.133', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:15:36,316 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:15:36,325 [DEBUG][       Thread-604297][   transport.py][1871] : starting thread (client mode): 0x827ec50
2025-07-01 12:15:36,325 [DEBUG][       Thread-604297][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:15:36,341 [DEBUG][       Thread-604297][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:15:36,341 [ INFO][       Thread-604297][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:15:36,348 [DEBUG][       Thread-604297][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:15:36,349 [DEBUG][       Thread-604297][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:15:36,349 [DEBUG][       Thread-604297][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:15:36,349 [DEBUG][       Thread-604297][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:15:36,349 [DEBUG][       Thread-604297][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:15:36,349 [DEBUG][       Thread-604297][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:15:36,349 [DEBUG][       Thread-604297][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:15:36,349 [DEBUG][       Thread-604297][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:15:36,349 [DEBUG][       Thread-604297][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:15:36,349 [DEBUG][       Thread-604297][   transport.py][1871] : client lang: <none>
2025-07-01 12:15:36,349 [DEBUG][       Thread-604297][   transport.py][1871] : server lang: <none>
2025-07-01 12:15:36,349 [DEBUG][       Thread-604297][   transport.py][1871] : kex follows: False
2025-07-01 12:15:36,349 [DEBUG][       Thread-604297][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:15:36,349 [DEBUG][       Thread-604297][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:15:36,349 [DEBUG][       Thread-604297][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:15:36,349 [DEBUG][       Thread-604297][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:15:36,349 [DEBUG][       Thread-604297][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:15:36,349 [DEBUG][       Thread-604297][   transport.py][1871] : Compression: none
2025-07-01 12:15:36,349 [DEBUG][       Thread-604297][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:15:36,407 [DEBUG][       Thread-604297][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:15:36,408 [DEBUG][       Thread-604297][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:15:36,408 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:15:36,409 [DEBUG][       Thread-604297][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:15:36,410 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:15:36,466 [DEBUG][       Thread-604297][   transport.py][1871] : userauth is OK
2025-07-01 12:15:36,466 [DEBUG][       Thread-604297][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:15:36,476 [DEBUG][       Thread-604297][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:15:36,476 [DEBUG][       Thread-604297][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:15:36,476 [DEBUG][       Thread-604297][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:15:36,496 [ INFO][       Thread-604297][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:15:36,496 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:15:36,497 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:15:37,488 [DEBUG][       Thread-604297][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:15:37,489 [DEBUG][       Thread-604297][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:15:37,540 [DEBUG][       Thread-604297][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:15:37,540 [DEBUG][       Thread-604297][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:15:37,549 [DEBUG][       Thread-604297][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:15:37,558 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:15:37,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-07-01 12:15:37,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-07-01 12:15:37,577 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:15:37,577 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:15:37,578 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:15:37,586 [DEBUG][       Thread-604297][   transport.py][1871] : EOF in transport thread
2025-07-01 12:15:40,473 [DEBUG][Thread-604299 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:15:47,588 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:15:47,588 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:15:47,588 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:15:47,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-07-01 12:15:48,072 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 15, 38), 10.12, 49.93, 0.0, 38.2, 11.48, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:15:48,072 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:15:38
2025-07-01 12:15:48,155 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:15:48,159 [DEBUG][       Thread-604300][   transport.py][1871] : starting thread (client mode): 0x81046d0
2025-07-01 12:15:48,164 [DEBUG][       Thread-604300][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:15:48,181 [DEBUG][       Thread-604300][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:15:48,181 [ INFO][       Thread-604300][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:15:48,184 [DEBUG][       Thread-604300][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:15:48,184 [DEBUG][       Thread-604300][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:15:48,184 [DEBUG][       Thread-604300][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:15:48,184 [DEBUG][       Thread-604300][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:15:48,184 [DEBUG][       Thread-604300][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:15:48,184 [DEBUG][       Thread-604300][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:15:48,184 [DEBUG][       Thread-604300][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:15:48,184 [DEBUG][       Thread-604300][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:15:48,184 [DEBUG][       Thread-604300][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:15:48,184 [DEBUG][       Thread-604300][   transport.py][1871] : client lang: <none>
2025-07-01 12:15:48,184 [DEBUG][       Thread-604300][   transport.py][1871] : server lang: <none>
2025-07-01 12:15:48,184 [DEBUG][       Thread-604300][   transport.py][1871] : kex follows: False
2025-07-01 12:15:48,184 [DEBUG][       Thread-604300][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:15:48,184 [DEBUG][       Thread-604300][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:15:48,184 [DEBUG][       Thread-604300][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:15:48,184 [DEBUG][       Thread-604300][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:15:48,184 [DEBUG][       Thread-604300][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:15:48,185 [DEBUG][       Thread-604300][   transport.py][1871] : Compression: none
2025-07-01 12:15:48,185 [DEBUG][       Thread-604300][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:15:48,200 [DEBUG][       Thread-604300][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:15:48,201 [DEBUG][       Thread-604300][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:15:48,201 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:15:48,202 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:15:48,202 [DEBUG][       Thread-604300][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:15:48,203 [DEBUG][       Thread-604300][   transport.py][1871] : userauth is OK
2025-07-01 12:15:48,226 [ INFO][       Thread-604300][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:15:48,227 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:15:48,854 [DEBUG][       Thread-604300][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:15:48,855 [DEBUG][       Thread-604300][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:15:48,897 [DEBUG][       Thread-604300][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:15:48,897 [DEBUG][       Thread-604300][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:15:48,901 [DEBUG][       Thread-604300][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:15:48,912 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:15:48,913 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:15:48,915 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:15:48,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:15:48,921 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:15:48,924 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:15:48,924 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:15:48,925 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:15:48,925 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.427374 -999.00  +11.40  36.62     54   +2.60 1 2 2 1 1   888    0 8.87 3.63 ----- 36.6 36.6 44.2 47.8 14.7 -23.3 13.7 -23.9 13.4 -21.9 14.3 -21.5
2025-07-01 12:15:48,925 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:15:48,925 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:15:48,925 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.427374
2025-07-01 12:15:48,926 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:15:48,926 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:15:48,926 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:15:48,926 [DEBUG][       Thread-604300][   transport.py][1871] : EOF in transport thread
2025-07-01 12:15:48,927 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:15:48,927 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 12:15:48,927 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:15:38', tmtdew=10.12, humidity=49.93, cloud=0.0, wind=38.2, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:15:25.114', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:15:49,017 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:15:49,027 [DEBUG][       Thread-604303][   transport.py][1871] : starting thread (client mode): 0x8105cf0
2025-07-01 12:15:49,027 [DEBUG][       Thread-604303][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:15:49,042 [DEBUG][       Thread-604303][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:15:49,042 [ INFO][       Thread-604303][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:15:49,050 [DEBUG][       Thread-604303][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:15:49,050 [DEBUG][       Thread-604303][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:15:49,050 [DEBUG][       Thread-604303][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:15:49,051 [DEBUG][       Thread-604303][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:15:49,051 [DEBUG][       Thread-604303][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:15:49,051 [DEBUG][       Thread-604303][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:15:49,051 [DEBUG][       Thread-604303][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:15:49,051 [DEBUG][       Thread-604303][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:15:49,051 [DEBUG][       Thread-604303][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:15:49,051 [DEBUG][       Thread-604303][   transport.py][1871] : client lang: <none>
2025-07-01 12:15:49,051 [DEBUG][       Thread-604303][   transport.py][1871] : server lang: <none>
2025-07-01 12:15:49,051 [DEBUG][       Thread-604303][   transport.py][1871] : kex follows: False
2025-07-01 12:15:49,051 [DEBUG][       Thread-604303][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:15:49,051 [DEBUG][       Thread-604303][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:15:49,051 [DEBUG][       Thread-604303][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:15:49,051 [DEBUG][       Thread-604303][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:15:49,051 [DEBUG][       Thread-604303][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:15:49,051 [DEBUG][       Thread-604303][   transport.py][1871] : Compression: none
2025-07-01 12:15:49,051 [DEBUG][       Thread-604303][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:15:49,112 [DEBUG][       Thread-604303][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:15:49,112 [DEBUG][       Thread-604303][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:15:49,113 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:15:49,113 [DEBUG][       Thread-604303][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:15:49,114 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:15:49,168 [DEBUG][       Thread-604303][   transport.py][1871] : userauth is OK
2025-07-01 12:15:49,168 [DEBUG][       Thread-604303][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:15:49,168 [DEBUG][       Thread-604303][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:15:49,169 [DEBUG][       Thread-604303][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:15:49,169 [DEBUG][       Thread-604303][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:15:49,193 [ INFO][       Thread-604303][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:15:49,193 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:15:49,193 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:15:49,494 [DEBUG][Thread-604305 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:15:50,208 [DEBUG][       Thread-604303][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:15:50,208 [DEBUG][       Thread-604303][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:15:50,256 [DEBUG][       Thread-604303][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:15:50,256 [DEBUG][       Thread-604303][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:15:50,265 [DEBUG][       Thread-604303][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:15:50,274 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:15:50,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-07-01 12:15:50,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-07-01 12:15:50,296 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:15:50,296 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:15:50,297 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:15:50,306 [DEBUG][       Thread-604303][   transport.py][1871] : EOF in transport thread
2025-07-01 12:15:58,529 [DEBUG][Thread-604306 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:16:00,307 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:16:00,307 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:16:00,307 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:16:00,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-07-01 12:16:00,791 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 15, 38), 10.12, 49.93, 0.0, 38.2, 11.48, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:16:00,791 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:15:38
2025-07-01 12:16:00,874 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:16:00,880 [DEBUG][       Thread-604307][   transport.py][1871] : starting thread (client mode): 0x81079a0
2025-07-01 12:16:00,880 [DEBUG][       Thread-604307][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:16:00,903 [DEBUG][       Thread-604307][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:16:00,903 [ INFO][       Thread-604307][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:16:00,907 [DEBUG][       Thread-604307][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:16:00,907 [DEBUG][       Thread-604307][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:16:00,907 [DEBUG][       Thread-604307][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:16:00,907 [DEBUG][       Thread-604307][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:16:00,907 [DEBUG][       Thread-604307][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:16:00,907 [DEBUG][       Thread-604307][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:16:00,907 [DEBUG][       Thread-604307][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:16:00,907 [DEBUG][       Thread-604307][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:16:00,907 [DEBUG][       Thread-604307][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:16:00,907 [DEBUG][       Thread-604307][   transport.py][1871] : client lang: <none>
2025-07-01 12:16:00,907 [DEBUG][       Thread-604307][   transport.py][1871] : server lang: <none>
2025-07-01 12:16:00,907 [DEBUG][       Thread-604307][   transport.py][1871] : kex follows: False
2025-07-01 12:16:00,907 [DEBUG][       Thread-604307][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:16:00,907 [DEBUG][       Thread-604307][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:16:00,907 [DEBUG][       Thread-604307][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:16:00,907 [DEBUG][       Thread-604307][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:16:00,908 [DEBUG][       Thread-604307][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:16:00,908 [DEBUG][       Thread-604307][   transport.py][1871] : Compression: none
2025-07-01 12:16:00,908 [DEBUG][       Thread-604307][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:16:00,926 [DEBUG][       Thread-604307][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:16:00,926 [DEBUG][       Thread-604307][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:16:00,927 [DEBUG][       Thread-604307][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:16:00,927 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:16:00,927 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:16:00,928 [DEBUG][       Thread-604307][   transport.py][1871] : userauth is OK
2025-07-01 12:16:00,953 [ INFO][       Thread-604307][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:16:00,953 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:16:01,703 [DEBUG][       Thread-604307][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:16:01,704 [DEBUG][       Thread-604307][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:16:01,744 [DEBUG][       Thread-604307][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:16:01,744 [DEBUG][       Thread-604307][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:16:01,749 [DEBUG][       Thread-604307][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:16:01,764 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:16:01,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:16:01,765 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:16:01,765 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:16:01,767 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:16:01,768 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:16:01,768 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:16:01,768 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:16:01,768 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.427374 -999.00  +11.40  36.62     54   +2.60 1 2 2 1 1   888    0 8.87 3.63 ----- 36.6 36.6 44.2 47.8 14.7 -23.3 13.7 -23.9 13.4 -21.9 14.3 -21.5
2025-07-01 12:16:01,768 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:16:01,768 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:16:01,769 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.427374
2025-07-01 12:16:01,769 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:16:01,769 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:16:01,769 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:16:01,769 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:16:01,769 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 12:16:01,769 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:15:38', tmtdew=10.12, humidity=49.93, cloud=0.0, wind=38.2, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:15:25.114', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:16:01,769 [DEBUG][       Thread-604307][   transport.py][1871] : EOF in transport thread
2025-07-01 12:16:01,841 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:16:01,850 [DEBUG][       Thread-604310][   transport.py][1871] : starting thread (client mode): 0x8156770
2025-07-01 12:16:01,850 [DEBUG][       Thread-604310][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:16:01,864 [DEBUG][       Thread-604310][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:16:01,864 [ INFO][       Thread-604310][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:16:01,872 [DEBUG][       Thread-604310][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:16:01,872 [DEBUG][       Thread-604310][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:16:01,872 [DEBUG][       Thread-604310][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:16:01,872 [DEBUG][       Thread-604310][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:16:01,872 [DEBUG][       Thread-604310][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:16:01,872 [DEBUG][       Thread-604310][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:16:01,872 [DEBUG][       Thread-604310][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:16:01,872 [DEBUG][       Thread-604310][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:16:01,872 [DEBUG][       Thread-604310][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:16:01,872 [DEBUG][       Thread-604310][   transport.py][1871] : client lang: <none>
2025-07-01 12:16:01,872 [DEBUG][       Thread-604310][   transport.py][1871] : server lang: <none>
2025-07-01 12:16:01,872 [DEBUG][       Thread-604310][   transport.py][1871] : kex follows: False
2025-07-01 12:16:01,872 [DEBUG][       Thread-604310][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:16:01,872 [DEBUG][       Thread-604310][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:16:01,872 [DEBUG][       Thread-604310][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:16:01,872 [DEBUG][       Thread-604310][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:16:01,872 [DEBUG][       Thread-604310][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:16:01,872 [DEBUG][       Thread-604310][   transport.py][1871] : Compression: none
2025-07-01 12:16:01,872 [DEBUG][       Thread-604310][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:16:01,928 [DEBUG][       Thread-604310][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:16:01,928 [DEBUG][       Thread-604310][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:16:01,929 [DEBUG][       Thread-604310][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:16:01,929 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:16:01,930 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:16:01,984 [DEBUG][       Thread-604310][   transport.py][1871] : userauth is OK
2025-07-01 12:16:01,984 [DEBUG][       Thread-604310][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:16:01,984 [DEBUG][       Thread-604310][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:16:01,985 [DEBUG][       Thread-604310][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:16:01,985 [DEBUG][       Thread-604310][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:16:02,004 [ INFO][       Thread-604310][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:16:02,004 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:16:02,005 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:16:02,974 [DEBUG][       Thread-604310][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:16:02,974 [DEBUG][       Thread-604310][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:16:03,023 [DEBUG][       Thread-604310][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:16:03,024 [DEBUG][       Thread-604310][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:16:03,033 [DEBUG][       Thread-604310][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:16:03,042 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:16:03,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-07-01 12:16:03,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-07-01 12:16:03,060 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:16:03,060 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:16:03,061 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:16:03,069 [DEBUG][       Thread-604310][   transport.py][1871] : EOF in transport thread
2025-07-01 12:16:07,551 [DEBUG][Thread-604312 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:16:13,070 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:16:13,070 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:16:13,070 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:16:13,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-07-01 12:16:13,555 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 16, 10), 10.01, 50.13, 0.0, 29.32, 11.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:16:13,555 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:16:10
2025-07-01 12:16:13,643 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:16:13,646 [DEBUG][       Thread-604313][   transport.py][1871] : starting thread (client mode): 0x81069b0
2025-07-01 12:16:13,646 [DEBUG][       Thread-604313][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:16:13,666 [DEBUG][       Thread-604313][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:16:13,666 [ INFO][       Thread-604313][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:16:13,670 [DEBUG][       Thread-604313][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:16:13,670 [DEBUG][       Thread-604313][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:16:13,670 [DEBUG][       Thread-604313][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:16:13,670 [DEBUG][       Thread-604313][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:16:13,670 [DEBUG][       Thread-604313][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:16:13,670 [DEBUG][       Thread-604313][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:16:13,670 [DEBUG][       Thread-604313][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:16:13,670 [DEBUG][       Thread-604313][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:16:13,670 [DEBUG][       Thread-604313][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:16:13,670 [DEBUG][       Thread-604313][   transport.py][1871] : client lang: <none>
2025-07-01 12:16:13,670 [DEBUG][       Thread-604313][   transport.py][1871] : server lang: <none>
2025-07-01 12:16:13,670 [DEBUG][       Thread-604313][   transport.py][1871] : kex follows: False
2025-07-01 12:16:13,670 [DEBUG][       Thread-604313][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:16:13,670 [DEBUG][       Thread-604313][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:16:13,670 [DEBUG][       Thread-604313][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:16:13,670 [DEBUG][       Thread-604313][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:16:13,670 [DEBUG][       Thread-604313][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:16:13,670 [DEBUG][       Thread-604313][   transport.py][1871] : Compression: none
2025-07-01 12:16:13,670 [DEBUG][       Thread-604313][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:16:13,687 [DEBUG][       Thread-604313][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:16:13,687 [DEBUG][       Thread-604313][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:16:13,687 [DEBUG][       Thread-604313][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:16:13,687 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:16:13,687 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:16:13,688 [DEBUG][       Thread-604313][   transport.py][1871] : userauth is OK
2025-07-01 12:16:13,700 [ INFO][       Thread-604313][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:16:13,700 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:16:14,434 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:16:14,436 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:16:14,462 [DEBUG][       Thread-604313][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:16:14,463 [DEBUG][       Thread-604313][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:16:14,504 [DEBUG][       Thread-604313][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:16:14,505 [DEBUG][       Thread-604313][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:16:14,507 [DEBUG][       Thread-604313][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:16:14,521 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:16:14,522 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:16:14,524 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:16:14,525 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:16:14,531 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:16:14,532 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:16:14,532 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:16:14,533 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:16:14,533 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.427374 -999.00  +11.40  36.62     54   +2.60 1 2 2 1 1   888    0 8.87 3.63 ----- 36.6 36.6 44.2 47.8 14.7 -23.3 13.7 -23.9 13.4 -21.9 14.3 -21.5
2025-07-01 12:16:14,533 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:16:14,533 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:16:14,533 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.427374
2025-07-01 12:16:14,534 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:16:14,534 [DEBUG][       Thread-604313][   transport.py][1871] : EOF in transport thread
2025-07-01 12:16:14,535 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:16:14,535 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:16:14,535 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:16:14,536 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 12:16:14,536 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:16:10', tmtdew=10.01, humidity=50.13, cloud=0.0, wind=29.32, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:15:25.114', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:16:14,620 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:16:14,631 [DEBUG][       Thread-604316][   transport.py][1871] : starting thread (client mode): 0x83c8220
2025-07-01 12:16:14,631 [DEBUG][       Thread-604316][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:16:14,646 [DEBUG][       Thread-604316][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:16:14,646 [ INFO][       Thread-604316][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:16:14,654 [DEBUG][       Thread-604316][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:16:14,654 [DEBUG][       Thread-604316][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:16:14,654 [DEBUG][       Thread-604316][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:16:14,654 [DEBUG][       Thread-604316][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:16:14,654 [DEBUG][       Thread-604316][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:16:14,654 [DEBUG][       Thread-604316][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:16:14,654 [DEBUG][       Thread-604316][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:16:14,654 [DEBUG][       Thread-604316][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:16:14,654 [DEBUG][       Thread-604316][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:16:14,654 [DEBUG][       Thread-604316][   transport.py][1871] : client lang: <none>
2025-07-01 12:16:14,654 [DEBUG][       Thread-604316][   transport.py][1871] : server lang: <none>
2025-07-01 12:16:14,654 [DEBUG][       Thread-604316][   transport.py][1871] : kex follows: False
2025-07-01 12:16:14,654 [DEBUG][       Thread-604316][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:16:14,654 [DEBUG][       Thread-604316][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:16:14,654 [DEBUG][       Thread-604316][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:16:14,654 [DEBUG][       Thread-604316][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:16:14,654 [DEBUG][       Thread-604316][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:16:14,655 [DEBUG][       Thread-604316][   transport.py][1871] : Compression: none
2025-07-01 12:16:14,655 [DEBUG][       Thread-604316][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:16:14,712 [DEBUG][       Thread-604316][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:16:14,713 [DEBUG][       Thread-604316][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:16:14,713 [DEBUG][       Thread-604316][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:16:14,713 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:16:14,714 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:16:14,769 [DEBUG][       Thread-604316][   transport.py][1871] : userauth is OK
2025-07-01 12:16:14,770 [DEBUG][       Thread-604316][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:16:14,770 [DEBUG][       Thread-604316][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:16:14,770 [DEBUG][       Thread-604316][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:16:14,770 [DEBUG][       Thread-604316][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:16:14,788 [ INFO][       Thread-604316][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:16:14,789 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:16:14,789 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:16:15,778 [DEBUG][       Thread-604316][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:16:15,778 [DEBUG][       Thread-604316][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:16:15,827 [DEBUG][       Thread-604316][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:16:15,828 [DEBUG][       Thread-604316][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:16:15,837 [DEBUG][       Thread-604316][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:16:15,845 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:16:15,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-07-01 12:16:15,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-07-01 12:16:15,862 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:16:15,863 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:16:15,863 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:16:15,871 [DEBUG][       Thread-604316][   transport.py][1871] : EOF in transport thread
2025-07-01 12:16:16,570 [DEBUG][Thread-604318 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:16:25,608 [DEBUG][Thread-604319 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:16:25,874 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:16:25,874 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:16:25,874 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:16:25,877 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:16:26,334 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 16, 10), 10.01, 50.13, 0.0, 29.32, 11.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:16:26,334 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:16:10
2025-07-01 12:16:26,419 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:16:26,424 [DEBUG][       Thread-604320][   transport.py][1871] : starting thread (client mode): 0x8106aa0
2025-07-01 12:16:26,424 [DEBUG][       Thread-604320][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:16:26,443 [DEBUG][       Thread-604320][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:16:26,443 [ INFO][       Thread-604320][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:16:26,447 [DEBUG][       Thread-604320][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:16:26,447 [DEBUG][       Thread-604320][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:16:26,447 [DEBUG][       Thread-604320][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:16:26,447 [DEBUG][       Thread-604320][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:16:26,447 [DEBUG][       Thread-604320][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:16:26,447 [DEBUG][       Thread-604320][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:16:26,447 [DEBUG][       Thread-604320][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:16:26,447 [DEBUG][       Thread-604320][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:16:26,447 [DEBUG][       Thread-604320][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:16:26,447 [DEBUG][       Thread-604320][   transport.py][1871] : client lang: <none>
2025-07-01 12:16:26,447 [DEBUG][       Thread-604320][   transport.py][1871] : server lang: <none>
2025-07-01 12:16:26,447 [DEBUG][       Thread-604320][   transport.py][1871] : kex follows: False
2025-07-01 12:16:26,447 [DEBUG][       Thread-604320][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:16:26,447 [DEBUG][       Thread-604320][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:16:26,448 [DEBUG][       Thread-604320][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:16:26,448 [DEBUG][       Thread-604320][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:16:26,448 [DEBUG][       Thread-604320][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:16:26,448 [DEBUG][       Thread-604320][   transport.py][1871] : Compression: none
2025-07-01 12:16:26,448 [DEBUG][       Thread-604320][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:16:26,464 [DEBUG][       Thread-604320][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:16:26,465 [DEBUG][       Thread-604320][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:16:26,465 [DEBUG][       Thread-604320][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:16:26,465 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:16:26,465 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:16:26,466 [DEBUG][       Thread-604320][   transport.py][1871] : userauth is OK
2025-07-01 12:16:26,479 [ INFO][       Thread-604320][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:16:26,479 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:16:27,111 [DEBUG][       Thread-604320][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:16:27,111 [DEBUG][       Thread-604320][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:16:27,153 [DEBUG][       Thread-604320][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:16:27,153 [DEBUG][       Thread-604320][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:16:27,156 [DEBUG][       Thread-604320][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:16:27,168 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:16:27,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:16:27,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:16:27,173 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:16:27,179 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:16:27,181 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:16:27,181 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:16:27,182 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:16:27,182 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.427721 -999.00  +11.40  33.68     54   +2.60 1 1 2 1 1   888    0 8.89 3.62 ----- 33.7 33.7 37.7 48.4 14.6 -23.3 13.8 -24.0 13.4 -22.3 14.3 -21.6
2025-07-01 12:16:27,182 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:16:27,182 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:16:27,182 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.427721
2025-07-01 12:16:27,183 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:16:27,183 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:16:27,184 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:16:27,184 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:16:27,184 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:16:27,184 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:16:10', tmtdew=10.01, humidity=50.13, cloud=0.0, wind=29.32, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:15:55.094', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:16:27,185 [DEBUG][       Thread-604320][   transport.py][1871] : EOF in transport thread
2025-07-01 12:16:27,267 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:16:27,281 [DEBUG][       Thread-604323][   transport.py][1871] : starting thread (client mode): 0x8156d70
2025-07-01 12:16:27,281 [DEBUG][       Thread-604323][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:16:27,296 [DEBUG][       Thread-604323][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:16:27,296 [ INFO][       Thread-604323][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:16:27,310 [DEBUG][       Thread-604323][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:16:27,311 [DEBUG][       Thread-604323][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:16:27,311 [DEBUG][       Thread-604323][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:16:27,311 [DEBUG][       Thread-604323][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:16:27,311 [DEBUG][       Thread-604323][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:16:27,311 [DEBUG][       Thread-604323][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:16:27,311 [DEBUG][       Thread-604323][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:16:27,311 [DEBUG][       Thread-604323][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:16:27,311 [DEBUG][       Thread-604323][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:16:27,311 [DEBUG][       Thread-604323][   transport.py][1871] : client lang: <none>
2025-07-01 12:16:27,311 [DEBUG][       Thread-604323][   transport.py][1871] : server lang: <none>
2025-07-01 12:16:27,311 [DEBUG][       Thread-604323][   transport.py][1871] : kex follows: False
2025-07-01 12:16:27,311 [DEBUG][       Thread-604323][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:16:27,311 [DEBUG][       Thread-604323][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:16:27,311 [DEBUG][       Thread-604323][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:16:27,311 [DEBUG][       Thread-604323][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:16:27,312 [DEBUG][       Thread-604323][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:16:27,312 [DEBUG][       Thread-604323][   transport.py][1871] : Compression: none
2025-07-01 12:16:27,312 [DEBUG][       Thread-604323][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:16:27,369 [DEBUG][       Thread-604323][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:16:27,370 [DEBUG][       Thread-604323][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:16:27,371 [DEBUG][       Thread-604323][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:16:27,371 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:16:27,371 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:16:27,425 [DEBUG][       Thread-604323][   transport.py][1871] : userauth is OK
2025-07-01 12:16:27,426 [DEBUG][       Thread-604323][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:16:27,426 [DEBUG][       Thread-604323][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:16:27,426 [DEBUG][       Thread-604323][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:16:27,426 [DEBUG][       Thread-604323][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:16:27,445 [ INFO][       Thread-604323][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:16:27,446 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:16:27,446 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:16:28,448 [DEBUG][       Thread-604323][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:16:28,449 [DEBUG][       Thread-604323][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:16:28,500 [DEBUG][       Thread-604323][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:16:28,500 [DEBUG][       Thread-604323][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:16:28,512 [DEBUG][       Thread-604323][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:16:28,534 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:16:28,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-07-01 12:16:28,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-07-01 12:16:28,553 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:16:28,553 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:16:28,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:16:28,562 [DEBUG][       Thread-604323][   transport.py][1871] : EOF in transport thread
2025-07-01 12:16:28,643 [DEBUG][Thread-604325 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:16:34,631 [DEBUG][Thread-604326 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:16:38,564 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:16:38,564 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:16:38,564 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:16:38,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-07-01 12:16:39,046 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 16, 10), 10.01, 50.13, 0.0, 29.32, 11.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:16:39,046 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:16:10
2025-07-01 12:16:39,130 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:16:39,134 [DEBUG][       Thread-604327][   transport.py][1871] : starting thread (client mode): 0x8105210
2025-07-01 12:16:39,134 [DEBUG][       Thread-604327][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:16:39,154 [DEBUG][       Thread-604327][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:16:39,154 [ INFO][       Thread-604327][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:16:39,157 [DEBUG][       Thread-604327][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:16:39,157 [DEBUG][       Thread-604327][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:16:39,157 [DEBUG][       Thread-604327][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:16:39,157 [DEBUG][       Thread-604327][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:16:39,157 [DEBUG][       Thread-604327][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:16:39,157 [DEBUG][       Thread-604327][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:16:39,157 [DEBUG][       Thread-604327][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:16:39,157 [DEBUG][       Thread-604327][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:16:39,157 [DEBUG][       Thread-604327][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:16:39,157 [DEBUG][       Thread-604327][   transport.py][1871] : client lang: <none>
2025-07-01 12:16:39,157 [DEBUG][       Thread-604327][   transport.py][1871] : server lang: <none>
2025-07-01 12:16:39,157 [DEBUG][       Thread-604327][   transport.py][1871] : kex follows: False
2025-07-01 12:16:39,157 [DEBUG][       Thread-604327][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:16:39,157 [DEBUG][       Thread-604327][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:16:39,157 [DEBUG][       Thread-604327][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:16:39,157 [DEBUG][       Thread-604327][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:16:39,158 [DEBUG][       Thread-604327][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:16:39,158 [DEBUG][       Thread-604327][   transport.py][1871] : Compression: none
2025-07-01 12:16:39,158 [DEBUG][       Thread-604327][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:16:39,173 [DEBUG][       Thread-604327][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:16:39,173 [DEBUG][       Thread-604327][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:16:39,173 [DEBUG][       Thread-604327][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:16:39,173 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:16:39,173 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:16:39,174 [DEBUG][       Thread-604327][   transport.py][1871] : userauth is OK
2025-07-01 12:16:39,186 [ INFO][       Thread-604327][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:16:39,186 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:16:39,996 [DEBUG][       Thread-604327][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:16:39,996 [DEBUG][       Thread-604327][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:16:40,037 [DEBUG][       Thread-604327][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:16:40,037 [DEBUG][       Thread-604327][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:16:40,040 [DEBUG][       Thread-604327][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:16:40,054 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:16:40,054 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:16:40,056 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:16:40,058 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:16:40,064 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:16:40,066 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:16:40,066 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:16:40,066 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:16:40,067 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.427721 -999.00  +11.40  33.68     54   +2.60 1 1 2 1 1   888    0 8.89 3.62 ----- 33.7 33.7 37.7 48.4 14.6 -23.3 13.8 -24.0 13.4 -22.3 14.3 -21.6
2025-07-01 12:16:40,067 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:16:40,067 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:16:40,067 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.427721
2025-07-01 12:16:40,067 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:16:40,068 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:16:40,068 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:16:40,068 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:16:40,068 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:16:40,068 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:16:10', tmtdew=10.01, humidity=50.13, cloud=0.0, wind=29.32, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:15:55.094', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:16:40,069 [DEBUG][       Thread-604327][   transport.py][1871] : EOF in transport thread
2025-07-01 12:16:40,152 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:16:40,161 [DEBUG][       Thread-604330][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 12:16:40,161 [DEBUG][       Thread-604330][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:16:40,176 [DEBUG][       Thread-604330][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:16:40,176 [ INFO][       Thread-604330][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:16:40,184 [DEBUG][       Thread-604330][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:16:40,184 [DEBUG][       Thread-604330][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:16:40,184 [DEBUG][       Thread-604330][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:16:40,184 [DEBUG][       Thread-604330][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:16:40,184 [DEBUG][       Thread-604330][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:16:40,184 [DEBUG][       Thread-604330][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:16:40,184 [DEBUG][       Thread-604330][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:16:40,184 [DEBUG][       Thread-604330][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:16:40,184 [DEBUG][       Thread-604330][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:16:40,184 [DEBUG][       Thread-604330][   transport.py][1871] : client lang: <none>
2025-07-01 12:16:40,184 [DEBUG][       Thread-604330][   transport.py][1871] : server lang: <none>
2025-07-01 12:16:40,184 [DEBUG][       Thread-604330][   transport.py][1871] : kex follows: False
2025-07-01 12:16:40,184 [DEBUG][       Thread-604330][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:16:40,184 [DEBUG][       Thread-604330][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:16:40,185 [DEBUG][       Thread-604330][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:16:40,185 [DEBUG][       Thread-604330][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:16:40,185 [DEBUG][       Thread-604330][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:16:40,185 [DEBUG][       Thread-604330][   transport.py][1871] : Compression: none
2025-07-01 12:16:40,185 [DEBUG][       Thread-604330][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:16:40,242 [DEBUG][       Thread-604330][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:16:40,242 [DEBUG][       Thread-604330][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:16:40,243 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:16:40,243 [DEBUG][       Thread-604330][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:16:40,244 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:16:40,298 [DEBUG][       Thread-604330][   transport.py][1871] : userauth is OK
2025-07-01 12:16:40,298 [DEBUG][       Thread-604330][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:16:40,298 [DEBUG][       Thread-604330][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:16:40,298 [DEBUG][       Thread-604330][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:16:40,299 [DEBUG][       Thread-604330][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:16:40,317 [ INFO][       Thread-604330][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:16:40,318 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:16:40,318 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:16:41,264 [DEBUG][       Thread-604330][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:16:41,264 [DEBUG][       Thread-604330][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:16:41,311 [DEBUG][       Thread-604330][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:16:41,312 [DEBUG][       Thread-604330][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:16:41,320 [DEBUG][       Thread-604330][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:16:41,329 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:16:41,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-07-01 12:16:41,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-07-01 12:16:41,346 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:16:41,347 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:16:41,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:16:41,355 [DEBUG][       Thread-604330][   transport.py][1871] : EOF in transport thread
2025-07-01 12:16:43,662 [DEBUG][Thread-604332 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:16:51,356 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:16:51,356 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:16:51,356 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:16:51,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-07-01 12:16:51,835 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 16, 42), 10.09, 49.86, 0.0, 33.24, 11.57, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:16:51,835 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:16:42
2025-07-01 12:16:51,925 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:16:51,931 [DEBUG][       Thread-604333][   transport.py][1871] : starting thread (client mode): 0x8156500
2025-07-01 12:16:51,931 [DEBUG][       Thread-604333][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:16:51,950 [DEBUG][       Thread-604333][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:16:51,951 [ INFO][       Thread-604333][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:16:51,954 [DEBUG][       Thread-604333][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:16:51,954 [DEBUG][       Thread-604333][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:16:51,954 [DEBUG][       Thread-604333][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:16:51,954 [DEBUG][       Thread-604333][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:16:51,954 [DEBUG][       Thread-604333][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:16:51,954 [DEBUG][       Thread-604333][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:16:51,954 [DEBUG][       Thread-604333][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:16:51,954 [DEBUG][       Thread-604333][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:16:51,954 [DEBUG][       Thread-604333][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:16:51,954 [DEBUG][       Thread-604333][   transport.py][1871] : client lang: <none>
2025-07-01 12:16:51,954 [DEBUG][       Thread-604333][   transport.py][1871] : server lang: <none>
2025-07-01 12:16:51,954 [DEBUG][       Thread-604333][   transport.py][1871] : kex follows: False
2025-07-01 12:16:51,954 [DEBUG][       Thread-604333][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:16:51,954 [DEBUG][       Thread-604333][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:16:51,954 [DEBUG][       Thread-604333][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:16:51,954 [DEBUG][       Thread-604333][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:16:51,954 [DEBUG][       Thread-604333][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:16:51,954 [DEBUG][       Thread-604333][   transport.py][1871] : Compression: none
2025-07-01 12:16:51,954 [DEBUG][       Thread-604333][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:16:51,968 [DEBUG][       Thread-604333][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:16:51,968 [DEBUG][       Thread-604333][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:16:51,968 [DEBUG][       Thread-604333][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:16:51,968 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:16:51,968 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:16:51,969 [DEBUG][       Thread-604333][   transport.py][1871] : userauth is OK
2025-07-01 12:16:51,981 [ INFO][       Thread-604333][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:16:51,982 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:16:52,594 [DEBUG][       Thread-604333][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:16:52,594 [DEBUG][       Thread-604333][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:16:52,636 [DEBUG][       Thread-604333][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:16:52,636 [DEBUG][       Thread-604333][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:16:52,638 [DEBUG][       Thread-604333][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:16:52,650 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:16:52,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:16:52,651 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:16:52,652 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:16:52,654 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:16:52,655 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:16:52,655 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:16:52,655 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:16:52,655 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.428069 -999.00  +11.50  33.47     54   +2.70 1 1 2 1 1   888    0 8.91 3.70 ----- 33.5 33.5 47.4 40.1 14.8 -23.8 13.8 -24.3 13.5 -22.0 14.4 -21.9
2025-07-01 12:16:52,655 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:16:52,655 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:16:52,656 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.428069
2025-07-01 12:16:52,656 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:16:52,656 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:16:52,656 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:16:52,656 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:16:52,656 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:16:52,656 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:16:42', tmtdew=10.09, humidity=49.86, cloud=0.0, wind=33.24, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:16:25.162', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:16:52,656 [DEBUG][       Thread-604333][   transport.py][1871] : EOF in transport thread
2025-07-01 12:16:52,678 [DEBUG][Thread-604336 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:16:52,730 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:16:52,741 [DEBUG][       Thread-604337][   transport.py][1871] : starting thread (client mode): 0x8a671f0
2025-07-01 12:16:52,741 [DEBUG][       Thread-604337][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:16:52,756 [DEBUG][       Thread-604337][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:16:52,756 [ INFO][       Thread-604337][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:16:52,765 [DEBUG][       Thread-604337][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:16:52,765 [DEBUG][       Thread-604337][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:16:52,765 [DEBUG][       Thread-604337][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:16:52,765 [DEBUG][       Thread-604337][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:16:52,765 [DEBUG][       Thread-604337][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:16:52,765 [DEBUG][       Thread-604337][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:16:52,765 [DEBUG][       Thread-604337][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:16:52,765 [DEBUG][       Thread-604337][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:16:52,765 [DEBUG][       Thread-604337][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:16:52,765 [DEBUG][       Thread-604337][   transport.py][1871] : client lang: <none>
2025-07-01 12:16:52,765 [DEBUG][       Thread-604337][   transport.py][1871] : server lang: <none>
2025-07-01 12:16:52,765 [DEBUG][       Thread-604337][   transport.py][1871] : kex follows: False
2025-07-01 12:16:52,765 [DEBUG][       Thread-604337][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:16:52,765 [DEBUG][       Thread-604337][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:16:52,765 [DEBUG][       Thread-604337][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:16:52,766 [DEBUG][       Thread-604337][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:16:52,766 [DEBUG][       Thread-604337][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:16:52,766 [DEBUG][       Thread-604337][   transport.py][1871] : Compression: none
2025-07-01 12:16:52,766 [DEBUG][       Thread-604337][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:16:52,823 [DEBUG][       Thread-604337][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:16:52,824 [DEBUG][       Thread-604337][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:16:52,825 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:16:52,825 [DEBUG][       Thread-604337][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:16:52,826 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:16:52,883 [DEBUG][       Thread-604337][   transport.py][1871] : userauth is OK
2025-07-01 12:16:52,883 [DEBUG][       Thread-604337][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:16:52,883 [DEBUG][       Thread-604337][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:16:52,883 [DEBUG][       Thread-604337][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:16:52,884 [DEBUG][       Thread-604337][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:16:52,904 [ INFO][       Thread-604337][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:16:52,904 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:16:52,905 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:16:53,914 [DEBUG][       Thread-604337][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:16:53,915 [DEBUG][       Thread-604337][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:16:53,964 [DEBUG][       Thread-604337][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:16:53,964 [DEBUG][       Thread-604337][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:16:53,974 [DEBUG][       Thread-604337][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:16:53,983 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:16:53,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-07-01 12:16:53,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-07-01 12:16:54,003 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:16:54,004 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:16:54,004 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:16:54,012 [DEBUG][       Thread-604337][   transport.py][1871] : EOF in transport thread
2025-07-01 12:17:01,705 [DEBUG][Thread-604339 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:17:04,015 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:17:04,015 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:17:04,015 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:17:04,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-07-01 12:17:04,489 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 16, 42), 10.09, 49.86, 0.0, 33.24, 11.57, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:17:04,489 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:16:42
2025-07-01 12:17:04,574 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:17:04,577 [DEBUG][       Thread-604340][   transport.py][1871] : starting thread (client mode): 0x8104a00
2025-07-01 12:17:04,578 [DEBUG][       Thread-604340][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:17:04,599 [DEBUG][       Thread-604340][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:17:04,600 [ INFO][       Thread-604340][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:17:04,603 [DEBUG][       Thread-604340][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:17:04,603 [DEBUG][       Thread-604340][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:17:04,603 [DEBUG][       Thread-604340][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:17:04,603 [DEBUG][       Thread-604340][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:17:04,603 [DEBUG][       Thread-604340][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:17:04,603 [DEBUG][       Thread-604340][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:17:04,603 [DEBUG][       Thread-604340][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:17:04,603 [DEBUG][       Thread-604340][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:17:04,603 [DEBUG][       Thread-604340][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:17:04,603 [DEBUG][       Thread-604340][   transport.py][1871] : client lang: <none>
2025-07-01 12:17:04,603 [DEBUG][       Thread-604340][   transport.py][1871] : server lang: <none>
2025-07-01 12:17:04,603 [DEBUG][       Thread-604340][   transport.py][1871] : kex follows: False
2025-07-01 12:17:04,603 [DEBUG][       Thread-604340][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:17:04,603 [DEBUG][       Thread-604340][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:17:04,603 [DEBUG][       Thread-604340][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:17:04,603 [DEBUG][       Thread-604340][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:17:04,603 [DEBUG][       Thread-604340][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:17:04,603 [DEBUG][       Thread-604340][   transport.py][1871] : Compression: none
2025-07-01 12:17:04,603 [DEBUG][       Thread-604340][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:17:04,620 [DEBUG][       Thread-604340][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:17:04,621 [DEBUG][       Thread-604340][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:17:04,621 [DEBUG][       Thread-604340][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:17:04,622 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:17:04,622 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:17:04,623 [DEBUG][       Thread-604340][   transport.py][1871] : userauth is OK
2025-07-01 12:17:04,647 [ INFO][       Thread-604340][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:17:04,648 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:17:05,467 [DEBUG][       Thread-604340][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:17:05,467 [DEBUG][       Thread-604340][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:17:05,509 [DEBUG][       Thread-604340][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:17:05,509 [DEBUG][       Thread-604340][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:17:05,513 [DEBUG][       Thread-604340][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:17:05,524 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:17:05,524 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:17:05,527 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:17:05,528 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:17:05,535 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:17:05,537 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:17:05,537 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:17:05,537 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:17:05,538 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.428069 -999.00  +11.50  33.47     54   +2.70 1 1 2 1 1   888    0 8.91 3.70 ----- 33.5 33.5 47.4 40.1 14.8 -23.8 13.8 -24.3 13.5 -22.0 14.4 -21.9
2025-07-01 12:17:05,538 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:17:05,538 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:17:05,538 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.428069
2025-07-01 12:17:05,538 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:17:05,539 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:17:05,539 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:17:05,539 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:17:05,539 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:17:05,539 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:16:42', tmtdew=10.09, humidity=49.86, cloud=0.0, wind=33.24, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:16:25.162', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:17:05,539 [DEBUG][       Thread-604340][   transport.py][1871] : EOF in transport thread
2025-07-01 12:17:05,623 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:17:05,632 [DEBUG][       Thread-604343][   transport.py][1871] : starting thread (client mode): 0x83c86a0
2025-07-01 12:17:05,632 [DEBUG][       Thread-604343][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:17:05,647 [DEBUG][       Thread-604343][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:17:05,647 [ INFO][       Thread-604343][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:17:05,655 [DEBUG][       Thread-604343][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:17:05,655 [DEBUG][       Thread-604343][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:17:05,655 [DEBUG][       Thread-604343][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:17:05,655 [DEBUG][       Thread-604343][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:17:05,655 [DEBUG][       Thread-604343][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:17:05,655 [DEBUG][       Thread-604343][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:17:05,655 [DEBUG][       Thread-604343][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:17:05,655 [DEBUG][       Thread-604343][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:17:05,655 [DEBUG][       Thread-604343][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:17:05,655 [DEBUG][       Thread-604343][   transport.py][1871] : client lang: <none>
2025-07-01 12:17:05,655 [DEBUG][       Thread-604343][   transport.py][1871] : server lang: <none>
2025-07-01 12:17:05,655 [DEBUG][       Thread-604343][   transport.py][1871] : kex follows: False
2025-07-01 12:17:05,655 [DEBUG][       Thread-604343][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:17:05,655 [DEBUG][       Thread-604343][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:17:05,655 [DEBUG][       Thread-604343][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:17:05,655 [DEBUG][       Thread-604343][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:17:05,655 [DEBUG][       Thread-604343][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:17:05,655 [DEBUG][       Thread-604343][   transport.py][1871] : Compression: none
2025-07-01 12:17:05,655 [DEBUG][       Thread-604343][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:17:05,715 [DEBUG][       Thread-604343][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:17:05,715 [DEBUG][       Thread-604343][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:17:05,716 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:17:05,716 [DEBUG][       Thread-604343][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:17:05,717 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:17:05,771 [DEBUG][       Thread-604343][   transport.py][1871] : userauth is OK
2025-07-01 12:17:05,771 [DEBUG][       Thread-604343][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:17:05,771 [DEBUG][       Thread-604343][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:17:05,771 [DEBUG][       Thread-604343][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:17:05,771 [DEBUG][       Thread-604343][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:17:05,790 [ INFO][       Thread-604343][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:17:05,790 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:17:05,791 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:17:06,787 [DEBUG][       Thread-604343][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:17:06,787 [DEBUG][       Thread-604343][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:17:06,836 [DEBUG][       Thread-604343][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:17:06,836 [DEBUG][       Thread-604343][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:17:06,845 [DEBUG][       Thread-604343][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:17:06,854 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:17:06,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-07-01 12:17:06,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-07-01 12:17:06,872 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:17:06,873 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:17:06,873 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:17:06,881 [DEBUG][       Thread-604343][   transport.py][1871] : EOF in transport thread
2025-07-01 12:17:10,726 [DEBUG][Thread-604345 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:17:14,572 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:17:14,573 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:17:16,884 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:17:16,884 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:17:16,884 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:17:16,887 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:17:17,375 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 17, 13), 10.2, 49.61, 0.0, 35.94, 11.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:17:17,375 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:17:13
2025-07-01 12:17:17,460 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:17:17,466 [DEBUG][       Thread-604346][   transport.py][1871] : starting thread (client mode): 0x8156890
2025-07-01 12:17:17,466 [DEBUG][       Thread-604346][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:17:17,488 [DEBUG][       Thread-604346][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:17:17,488 [ INFO][       Thread-604346][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:17:17,491 [DEBUG][       Thread-604346][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:17:17,491 [DEBUG][       Thread-604346][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:17:17,491 [DEBUG][       Thread-604346][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:17:17,492 [DEBUG][       Thread-604346][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:17:17,492 [DEBUG][       Thread-604346][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:17:17,492 [DEBUG][       Thread-604346][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:17:17,492 [DEBUG][       Thread-604346][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:17:17,492 [DEBUG][       Thread-604346][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:17:17,492 [DEBUG][       Thread-604346][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:17:17,492 [DEBUG][       Thread-604346][   transport.py][1871] : client lang: <none>
2025-07-01 12:17:17,492 [DEBUG][       Thread-604346][   transport.py][1871] : server lang: <none>
2025-07-01 12:17:17,492 [DEBUG][       Thread-604346][   transport.py][1871] : kex follows: False
2025-07-01 12:17:17,492 [DEBUG][       Thread-604346][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:17:17,492 [DEBUG][       Thread-604346][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:17:17,492 [DEBUG][       Thread-604346][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:17:17,492 [DEBUG][       Thread-604346][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:17:17,492 [DEBUG][       Thread-604346][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:17:17,492 [DEBUG][       Thread-604346][   transport.py][1871] : Compression: none
2025-07-01 12:17:17,492 [DEBUG][       Thread-604346][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:17:17,505 [DEBUG][       Thread-604346][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:17:17,505 [DEBUG][       Thread-604346][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:17:17,506 [DEBUG][       Thread-604346][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:17:17,506 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:17:17,506 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:17:17,508 [DEBUG][       Thread-604346][   transport.py][1871] : userauth is OK
2025-07-01 12:17:17,521 [ INFO][       Thread-604346][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:17:17,522 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:17:18,137 [DEBUG][       Thread-604346][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:17:18,137 [DEBUG][       Thread-604346][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:17:18,181 [DEBUG][       Thread-604346][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:17:18,181 [DEBUG][       Thread-604346][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:17:18,184 [DEBUG][       Thread-604346][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:17:18,196 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:17:18,196 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:17:18,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:17:18,200 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:17:18,206 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:17:18,208 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:17:18,208 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:17:18,209 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:17:18,209 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.428069 -999.00  +11.50  33.47     54   +2.70 1 1 2 1 1   888    0 8.91 3.70 ----- 33.5 33.5 47.4 40.1 14.8 -23.8 13.8 -24.3 13.5 -22.0 14.4 -21.9
2025-07-01 12:17:18,209 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:17:18,209 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:17:18,209 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.428069
2025-07-01 12:17:18,210 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:17:18,211 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:17:18,211 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:17:18,211 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:17:18,211 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:17:18,211 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:17:13', tmtdew=10.2, humidity=49.61, cloud=0.0, wind=35.94, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:16:25.162', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:17:18,211 [DEBUG][       Thread-604346][   transport.py][1871] : EOF in transport thread
2025-07-01 12:17:18,295 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:17:18,310 [DEBUG][       Thread-604349][   transport.py][1871] : starting thread (client mode): 0x8106860
2025-07-01 12:17:18,310 [DEBUG][       Thread-604349][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:17:18,326 [DEBUG][       Thread-604349][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:17:18,326 [ INFO][       Thread-604349][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:17:18,333 [DEBUG][       Thread-604349][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:17:18,334 [DEBUG][       Thread-604349][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:17:18,334 [DEBUG][       Thread-604349][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:17:18,334 [DEBUG][       Thread-604349][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:17:18,334 [DEBUG][       Thread-604349][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:17:18,334 [DEBUG][       Thread-604349][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:17:18,334 [DEBUG][       Thread-604349][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:17:18,334 [DEBUG][       Thread-604349][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:17:18,334 [DEBUG][       Thread-604349][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:17:18,334 [DEBUG][       Thread-604349][   transport.py][1871] : client lang: <none>
2025-07-01 12:17:18,334 [DEBUG][       Thread-604349][   transport.py][1871] : server lang: <none>
2025-07-01 12:17:18,334 [DEBUG][       Thread-604349][   transport.py][1871] : kex follows: False
2025-07-01 12:17:18,334 [DEBUG][       Thread-604349][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:17:18,334 [DEBUG][       Thread-604349][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:17:18,334 [DEBUG][       Thread-604349][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:17:18,334 [DEBUG][       Thread-604349][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:17:18,334 [DEBUG][       Thread-604349][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:17:18,335 [DEBUG][       Thread-604349][   transport.py][1871] : Compression: none
2025-07-01 12:17:18,335 [DEBUG][       Thread-604349][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:17:18,395 [DEBUG][       Thread-604349][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:17:18,396 [DEBUG][       Thread-604349][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:17:18,396 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:17:18,397 [DEBUG][       Thread-604349][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:17:18,398 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:17:18,451 [DEBUG][       Thread-604349][   transport.py][1871] : userauth is OK
2025-07-01 12:17:18,451 [DEBUG][       Thread-604349][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:17:18,451 [DEBUG][       Thread-604349][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:17:18,452 [DEBUG][       Thread-604349][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:17:18,452 [DEBUG][       Thread-604349][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:17:18,470 [ INFO][       Thread-604349][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:17:18,470 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:17:18,471 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:17:19,465 [DEBUG][       Thread-604349][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:17:19,466 [DEBUG][       Thread-604349][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:17:19,516 [DEBUG][       Thread-604349][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:17:19,516 [DEBUG][       Thread-604349][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:17:19,525 [DEBUG][       Thread-604349][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:17:19,535 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:17:19,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-07-01 12:17:19,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-07-01 12:17:19,554 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:17:19,554 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:17:19,555 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:17:19,562 [DEBUG][       Thread-604349][   transport.py][1871] : EOF in transport thread
2025-07-01 12:17:19,745 [DEBUG][Thread-604351 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:17:28,686 [DEBUG][Thread-604352 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:17:28,773 [DEBUG][Thread-604353 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:17:29,564 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:17:29,564 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:17:29,564 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:17:29,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-07-01 12:17:30,059 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 17, 13), 10.2, 49.61, 0.0, 35.94, 11.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:17:30,059 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:17:13
2025-07-01 12:17:30,147 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:17:30,153 [DEBUG][       Thread-604354][   transport.py][1871] : starting thread (client mode): 0x8157520
2025-07-01 12:17:30,153 [DEBUG][       Thread-604354][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:17:30,176 [DEBUG][       Thread-604354][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:17:30,176 [ INFO][       Thread-604354][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:17:30,180 [DEBUG][       Thread-604354][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:17:30,180 [DEBUG][       Thread-604354][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:17:30,180 [DEBUG][       Thread-604354][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:17:30,180 [DEBUG][       Thread-604354][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:17:30,180 [DEBUG][       Thread-604354][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:17:30,180 [DEBUG][       Thread-604354][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:17:30,180 [DEBUG][       Thread-604354][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:17:30,180 [DEBUG][       Thread-604354][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:17:30,180 [DEBUG][       Thread-604354][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:17:30,180 [DEBUG][       Thread-604354][   transport.py][1871] : client lang: <none>
2025-07-01 12:17:30,180 [DEBUG][       Thread-604354][   transport.py][1871] : server lang: <none>
2025-07-01 12:17:30,180 [DEBUG][       Thread-604354][   transport.py][1871] : kex follows: False
2025-07-01 12:17:30,180 [DEBUG][       Thread-604354][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:17:30,180 [DEBUG][       Thread-604354][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:17:30,180 [DEBUG][       Thread-604354][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:17:30,180 [DEBUG][       Thread-604354][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:17:30,180 [DEBUG][       Thread-604354][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:17:30,180 [DEBUG][       Thread-604354][   transport.py][1871] : Compression: none
2025-07-01 12:17:30,180 [DEBUG][       Thread-604354][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:17:30,196 [DEBUG][       Thread-604354][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:17:30,196 [DEBUG][       Thread-604354][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:17:30,196 [DEBUG][       Thread-604354][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:17:30,196 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:17:30,196 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:17:30,197 [DEBUG][       Thread-604354][   transport.py][1871] : userauth is OK
2025-07-01 12:17:30,209 [ INFO][       Thread-604354][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:17:30,209 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:17:30,854 [DEBUG][       Thread-604354][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:17:30,854 [DEBUG][       Thread-604354][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:17:30,896 [DEBUG][       Thread-604354][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:17:30,896 [DEBUG][       Thread-604354][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:17:30,899 [DEBUG][       Thread-604354][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:17:30,912 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:17:30,913 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:17:30,913 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:17:30,914 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:17:30,917 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:17:30,917 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:17:30,917 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:17:30,918 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:17:30,918 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.428416 -999.00  +11.80  33.72     54   +3.00 1 1 2 1 1   888    0 8.77 3.55 ----- 33.7 33.7 42.5 39.2 14.8 -23.6 13.9 -24.0 13.6 -22.1 14.5 -21.8
2025-07-01 12:17:30,918 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:17:30,918 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:17:30,918 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.428416
2025-07-01 12:17:30,918 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:17:30,918 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:17:30,918 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:17:30,918 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:17:30,918 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:17:30,918 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:17:13', tmtdew=10.2, humidity=49.61, cloud=0.0, wind=35.94, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:16:55.142', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:17:30,918 [DEBUG][       Thread-604354][   transport.py][1871] : EOF in transport thread
2025-07-01 12:17:30,990 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:17:31,002 [DEBUG][       Thread-604357][   transport.py][1871] : starting thread (client mode): 0x83c8220
2025-07-01 12:17:31,002 [DEBUG][       Thread-604357][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:17:31,018 [DEBUG][       Thread-604357][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:17:31,018 [ INFO][       Thread-604357][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:17:31,025 [DEBUG][       Thread-604357][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:17:31,025 [DEBUG][       Thread-604357][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:17:31,025 [DEBUG][       Thread-604357][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:17:31,025 [DEBUG][       Thread-604357][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:17:31,025 [DEBUG][       Thread-604357][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:17:31,025 [DEBUG][       Thread-604357][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:17:31,025 [DEBUG][       Thread-604357][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:17:31,025 [DEBUG][       Thread-604357][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:17:31,025 [DEBUG][       Thread-604357][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:17:31,025 [DEBUG][       Thread-604357][   transport.py][1871] : client lang: <none>
2025-07-01 12:17:31,025 [DEBUG][       Thread-604357][   transport.py][1871] : server lang: <none>
2025-07-01 12:17:31,025 [DEBUG][       Thread-604357][   transport.py][1871] : kex follows: False
2025-07-01 12:17:31,025 [DEBUG][       Thread-604357][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:17:31,025 [DEBUG][       Thread-604357][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:17:31,026 [DEBUG][       Thread-604357][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:17:31,026 [DEBUG][       Thread-604357][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:17:31,026 [DEBUG][       Thread-604357][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:17:31,026 [DEBUG][       Thread-604357][   transport.py][1871] : Compression: none
2025-07-01 12:17:31,026 [DEBUG][       Thread-604357][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:17:31,083 [DEBUG][       Thread-604357][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:17:31,083 [DEBUG][       Thread-604357][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:17:31,083 [DEBUG][       Thread-604357][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:17:31,084 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:17:31,084 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:17:31,144 [DEBUG][       Thread-604357][   transport.py][1871] : userauth is OK
2025-07-01 12:17:31,145 [DEBUG][       Thread-604357][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:17:31,145 [DEBUG][       Thread-604357][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:17:31,145 [DEBUG][       Thread-604357][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:17:31,145 [DEBUG][       Thread-604357][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:17:31,163 [ INFO][       Thread-604357][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:17:31,164 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:17:31,164 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:17:32,186 [DEBUG][       Thread-604357][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:17:32,186 [DEBUG][       Thread-604357][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:17:32,241 [DEBUG][       Thread-604357][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:17:32,241 [DEBUG][       Thread-604357][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:17:32,264 [DEBUG][       Thread-604357][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:17:32,273 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:17:32,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-07-01 12:17:32,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-07-01 12:17:32,291 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:17:32,292 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:17:32,292 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:17:32,300 [DEBUG][       Thread-604357][   transport.py][1871] : EOF in transport thread
2025-07-01 12:17:37,792 [DEBUG][Thread-604359 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:17:42,299 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:17:42,300 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:17:42,300 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:17:42,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-07-01 12:17:42,786 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 17, 13), 10.2, 49.61, 0.0, 35.94, 11.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:17:42,786 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:17:13
2025-07-01 12:17:42,871 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:17:42,875 [DEBUG][       Thread-604360][   transport.py][1871] : starting thread (client mode): 0x81544c0
2025-07-01 12:17:42,875 [DEBUG][       Thread-604360][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:17:42,896 [DEBUG][       Thread-604360][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:17:42,896 [ INFO][       Thread-604360][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:17:42,899 [DEBUG][       Thread-604360][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:17:42,899 [DEBUG][       Thread-604360][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:17:42,900 [DEBUG][       Thread-604360][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:17:42,900 [DEBUG][       Thread-604360][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:17:42,900 [DEBUG][       Thread-604360][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:17:42,900 [DEBUG][       Thread-604360][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:17:42,900 [DEBUG][       Thread-604360][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:17:42,900 [DEBUG][       Thread-604360][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:17:42,900 [DEBUG][       Thread-604360][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:17:42,900 [DEBUG][       Thread-604360][   transport.py][1871] : client lang: <none>
2025-07-01 12:17:42,900 [DEBUG][       Thread-604360][   transport.py][1871] : server lang: <none>
2025-07-01 12:17:42,900 [DEBUG][       Thread-604360][   transport.py][1871] : kex follows: False
2025-07-01 12:17:42,900 [DEBUG][       Thread-604360][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:17:42,900 [DEBUG][       Thread-604360][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:17:42,900 [DEBUG][       Thread-604360][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:17:42,900 [DEBUG][       Thread-604360][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:17:42,900 [DEBUG][       Thread-604360][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:17:42,900 [DEBUG][       Thread-604360][   transport.py][1871] : Compression: none
2025-07-01 12:17:42,900 [DEBUG][       Thread-604360][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:17:42,917 [DEBUG][       Thread-604360][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:17:42,917 [DEBUG][       Thread-604360][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:17:42,917 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:17:42,918 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:17:42,918 [DEBUG][       Thread-604360][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:17:42,919 [DEBUG][       Thread-604360][   transport.py][1871] : userauth is OK
2025-07-01 12:17:42,933 [ INFO][       Thread-604360][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:17:42,933 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:17:43,570 [DEBUG][       Thread-604360][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:17:43,571 [DEBUG][       Thread-604360][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:17:43,612 [DEBUG][       Thread-604360][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:17:43,612 [DEBUG][       Thread-604360][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:17:43,615 [DEBUG][       Thread-604360][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:17:43,627 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:17:43,627 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:17:43,629 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:17:43,630 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:17:43,635 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:17:43,637 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:17:43,637 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:17:43,637 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:17:43,637 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.428416 -999.00  +11.80  33.72     54   +3.00 1 1 2 1 1   888    0 8.77 3.55 ----- 33.7 33.7 42.5 39.2 14.8 -23.6 13.9 -24.0 13.6 -22.1 14.5 -21.8
2025-07-01 12:17:43,637 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:17:43,638 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:17:43,638 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.428416
2025-07-01 12:17:43,638 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:17:43,638 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:17:43,639 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:17:43,639 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:17:43,639 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:17:43,639 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:17:13', tmtdew=10.2, humidity=49.61, cloud=0.0, wind=35.94, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:16:55.142', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:17:43,639 [DEBUG][       Thread-604360][   transport.py][1871] : EOF in transport thread
2025-07-01 12:17:43,727 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:17:43,737 [DEBUG][       Thread-604363][   transport.py][1871] : starting thread (client mode): 0x8105db0
2025-07-01 12:17:43,737 [DEBUG][       Thread-604363][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:17:43,751 [DEBUG][       Thread-604363][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:17:43,752 [ INFO][       Thread-604363][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:17:43,759 [DEBUG][       Thread-604363][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:17:43,759 [DEBUG][       Thread-604363][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:17:43,759 [DEBUG][       Thread-604363][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:17:43,759 [DEBUG][       Thread-604363][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:17:43,759 [DEBUG][       Thread-604363][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:17:43,759 [DEBUG][       Thread-604363][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:17:43,759 [DEBUG][       Thread-604363][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:17:43,759 [DEBUG][       Thread-604363][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:17:43,759 [DEBUG][       Thread-604363][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:17:43,759 [DEBUG][       Thread-604363][   transport.py][1871] : client lang: <none>
2025-07-01 12:17:43,759 [DEBUG][       Thread-604363][   transport.py][1871] : server lang: <none>
2025-07-01 12:17:43,759 [DEBUG][       Thread-604363][   transport.py][1871] : kex follows: False
2025-07-01 12:17:43,759 [DEBUG][       Thread-604363][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:17:43,759 [DEBUG][       Thread-604363][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:17:43,759 [DEBUG][       Thread-604363][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:17:43,759 [DEBUG][       Thread-604363][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:17:43,759 [DEBUG][       Thread-604363][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:17:43,759 [DEBUG][       Thread-604363][   transport.py][1871] : Compression: none
2025-07-01 12:17:43,759 [DEBUG][       Thread-604363][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:17:43,815 [DEBUG][       Thread-604363][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:17:43,816 [DEBUG][       Thread-604363][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:17:43,816 [DEBUG][       Thread-604363][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:17:43,816 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:17:43,817 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:17:43,872 [DEBUG][       Thread-604363][   transport.py][1871] : userauth is OK
2025-07-01 12:17:43,873 [DEBUG][       Thread-604363][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:17:43,873 [DEBUG][       Thread-604363][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:17:43,873 [DEBUG][       Thread-604363][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:17:43,873 [DEBUG][       Thread-604363][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:17:43,892 [ INFO][       Thread-604363][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:17:43,893 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:17:43,893 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:17:44,902 [DEBUG][       Thread-604363][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:17:44,902 [DEBUG][       Thread-604363][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:17:44,952 [DEBUG][       Thread-604363][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:17:44,952 [DEBUG][       Thread-604363][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:17:44,962 [DEBUG][       Thread-604363][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:17:44,971 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:17:44,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-07-01 12:17:44,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-07-01 12:17:44,989 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:17:44,989 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:17:44,990 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:17:44,998 [DEBUG][       Thread-604363][   transport.py][1871] : EOF in transport thread
2025-07-01 12:17:46,811 [DEBUG][Thread-604365 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:17:55,000 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:17:55,001 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:17:55,001 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:17:55,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-07-01 12:17:55,478 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 17, 45), 10.25, 49.41, 0.0, 32.99, 11.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:17:55,479 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:17:45
2025-07-01 12:17:55,563 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:17:55,569 [DEBUG][       Thread-604366][   transport.py][1871] : starting thread (client mode): 0x8155060
2025-07-01 12:17:55,569 [DEBUG][       Thread-604366][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:17:55,590 [DEBUG][       Thread-604366][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:17:55,590 [ INFO][       Thread-604366][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:17:55,593 [DEBUG][       Thread-604366][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:17:55,593 [DEBUG][       Thread-604366][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:17:55,594 [DEBUG][       Thread-604366][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:17:55,594 [DEBUG][       Thread-604366][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:17:55,594 [DEBUG][       Thread-604366][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:17:55,594 [DEBUG][       Thread-604366][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:17:55,594 [DEBUG][       Thread-604366][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:17:55,594 [DEBUG][       Thread-604366][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:17:55,594 [DEBUG][       Thread-604366][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:17:55,594 [DEBUG][       Thread-604366][   transport.py][1871] : client lang: <none>
2025-07-01 12:17:55,594 [DEBUG][       Thread-604366][   transport.py][1871] : server lang: <none>
2025-07-01 12:17:55,594 [DEBUG][       Thread-604366][   transport.py][1871] : kex follows: False
2025-07-01 12:17:55,594 [DEBUG][       Thread-604366][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:17:55,594 [DEBUG][       Thread-604366][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:17:55,594 [DEBUG][       Thread-604366][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:17:55,594 [DEBUG][       Thread-604366][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:17:55,594 [DEBUG][       Thread-604366][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:17:55,594 [DEBUG][       Thread-604366][   transport.py][1871] : Compression: none
2025-07-01 12:17:55,594 [DEBUG][       Thread-604366][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:17:55,610 [DEBUG][       Thread-604366][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:17:55,611 [DEBUG][       Thread-604366][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:17:55,611 [DEBUG][       Thread-604366][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:17:55,611 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:17:55,612 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:17:55,613 [DEBUG][       Thread-604366][   transport.py][1871] : userauth is OK
2025-07-01 12:17:55,638 [ INFO][       Thread-604366][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:17:55,639 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:17:55,830 [DEBUG][Thread-604368 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:17:56,288 [DEBUG][       Thread-604366][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:17:56,288 [DEBUG][       Thread-604366][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:17:56,332 [DEBUG][       Thread-604366][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:17:56,333 [DEBUG][       Thread-604366][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:17:56,335 [DEBUG][       Thread-604366][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:17:56,350 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:17:56,350 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:17:56,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:17:56,354 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:17:56,359 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:17:56,361 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:17:56,361 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:17:56,362 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:17:56,362 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.428416 -999.00  +11.80  33.72     54   +3.00 1 1 2 1 1   888    0 8.77 3.55 ----- 33.7 33.7 42.5 39.2 14.8 -23.6 13.9 -24.0 13.6 -22.1 14.5 -21.8
2025-07-01 12:17:56,362 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:17:56,362 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:17:56,362 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.428416
2025-07-01 12:17:56,362 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:17:56,363 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:17:56,363 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:17:56,363 [DEBUG][       Thread-604366][   transport.py][1871] : EOF in transport thread
2025-07-01 12:17:56,363 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:17:56,364 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:17:56,364 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:17:45', tmtdew=10.25, humidity=49.41, cloud=0.0, wind=32.99, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:16:55.142', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:17:56,447 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:17:56,458 [DEBUG][       Thread-604370][   transport.py][1871] : starting thread (client mode): 0x83c81f0
2025-07-01 12:17:56,458 [DEBUG][       Thread-604370][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:17:56,474 [DEBUG][       Thread-604370][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:17:56,474 [ INFO][       Thread-604370][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:17:56,481 [DEBUG][       Thread-604370][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:17:56,481 [DEBUG][       Thread-604370][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:17:56,481 [DEBUG][       Thread-604370][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:17:56,481 [DEBUG][       Thread-604370][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:17:56,481 [DEBUG][       Thread-604370][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:17:56,481 [DEBUG][       Thread-604370][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:17:56,481 [DEBUG][       Thread-604370][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:17:56,481 [DEBUG][       Thread-604370][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:17:56,481 [DEBUG][       Thread-604370][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:17:56,481 [DEBUG][       Thread-604370][   transport.py][1871] : client lang: <none>
2025-07-01 12:17:56,481 [DEBUG][       Thread-604370][   transport.py][1871] : server lang: <none>
2025-07-01 12:17:56,481 [DEBUG][       Thread-604370][   transport.py][1871] : kex follows: False
2025-07-01 12:17:56,481 [DEBUG][       Thread-604370][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:17:56,481 [DEBUG][       Thread-604370][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:17:56,482 [DEBUG][       Thread-604370][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:17:56,482 [DEBUG][       Thread-604370][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:17:56,482 [DEBUG][       Thread-604370][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:17:56,482 [DEBUG][       Thread-604370][   transport.py][1871] : Compression: none
2025-07-01 12:17:56,482 [DEBUG][       Thread-604370][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:17:56,540 [DEBUG][       Thread-604370][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:17:56,540 [DEBUG][       Thread-604370][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:17:56,541 [DEBUG][       Thread-604370][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:17:56,541 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:17:56,542 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:17:56,596 [DEBUG][       Thread-604370][   transport.py][1871] : userauth is OK
2025-07-01 12:17:56,596 [DEBUG][       Thread-604370][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:17:56,596 [DEBUG][       Thread-604370][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:17:56,596 [DEBUG][       Thread-604370][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:17:56,596 [DEBUG][       Thread-604370][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:17:56,616 [ INFO][       Thread-604370][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:17:56,616 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:17:56,616 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:17:57,587 [DEBUG][       Thread-604370][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:17:57,588 [DEBUG][       Thread-604370][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:17:57,636 [DEBUG][       Thread-604370][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:17:57,636 [DEBUG][       Thread-604370][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:17:57,646 [DEBUG][       Thread-604370][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:17:57,655 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:17:57,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-07-01 12:17:57,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-07-01 12:17:57,673 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:17:57,673 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:17:57,673 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:17:57,681 [DEBUG][       Thread-604370][   transport.py][1871] : EOF in transport thread
2025-07-01 12:18:04,857 [DEBUG][Thread-604372 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:18:07,680 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:18:07,680 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:18:07,680 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:18:07,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-07-01 12:18:08,181 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 17, 45), 10.25, 49.41, 0.0, 32.99, 11.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:18:08,181 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:17:45
2025-07-01 12:18:08,271 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:18:08,275 [DEBUG][       Thread-604373][   transport.py][1871] : starting thread (client mode): 0x81562f0
2025-07-01 12:18:08,275 [DEBUG][       Thread-604373][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:18:08,295 [DEBUG][       Thread-604373][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:18:08,295 [ INFO][       Thread-604373][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:18:08,297 [DEBUG][       Thread-604373][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:18:08,297 [DEBUG][       Thread-604373][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:18:08,297 [DEBUG][       Thread-604373][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:18:08,297 [DEBUG][       Thread-604373][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:18:08,297 [DEBUG][       Thread-604373][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:18:08,297 [DEBUG][       Thread-604373][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:18:08,297 [DEBUG][       Thread-604373][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:18:08,297 [DEBUG][       Thread-604373][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:18:08,297 [DEBUG][       Thread-604373][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:18:08,297 [DEBUG][       Thread-604373][   transport.py][1871] : client lang: <none>
2025-07-01 12:18:08,297 [DEBUG][       Thread-604373][   transport.py][1871] : server lang: <none>
2025-07-01 12:18:08,297 [DEBUG][       Thread-604373][   transport.py][1871] : kex follows: False
2025-07-01 12:18:08,297 [DEBUG][       Thread-604373][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:18:08,297 [DEBUG][       Thread-604373][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:18:08,297 [DEBUG][       Thread-604373][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:18:08,297 [DEBUG][       Thread-604373][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:18:08,297 [DEBUG][       Thread-604373][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:18:08,297 [DEBUG][       Thread-604373][   transport.py][1871] : Compression: none
2025-07-01 12:18:08,297 [DEBUG][       Thread-604373][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:18:08,304 [DEBUG][       Thread-604373][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:18:08,304 [DEBUG][       Thread-604373][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:18:08,304 [DEBUG][       Thread-604373][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:18:08,305 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:18:08,305 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:18:08,305 [DEBUG][       Thread-604373][   transport.py][1871] : userauth is OK
2025-07-01 12:18:08,329 [ INFO][       Thread-604373][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:18:08,330 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:18:08,987 [DEBUG][       Thread-604373][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:18:08,987 [DEBUG][       Thread-604373][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:18:09,029 [DEBUG][       Thread-604373][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:18:09,029 [DEBUG][       Thread-604373][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:18:09,031 [DEBUG][       Thread-604373][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:18:09,043 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:18:09,043 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:18:09,044 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:18:09,045 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:18:09,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:18:09,049 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:18:09,049 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:18:09,049 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:18:09,049 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.429110 -999.00  +11.70  38.28     53   +2.50 1 1 2 1 1   888    0 8.89 7.08 ----- 38.3 38.3 25.2 50.2 14.8 -23.8 13.9 -25.0 13.7 -22.4 14.6 -22.7
2025-07-01 12:18:09,049 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:18:09,049 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:18:09,049 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.429110
2025-07-01 12:18:09,049 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:18:09,050 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:18:09,050 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:18:09,050 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:18:09,050 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:18:09,050 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:17:45', tmtdew=10.25, humidity=49.41, cloud=0.0, wind=32.99, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:17:55.104', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:18:09,050 [DEBUG][       Thread-604373][   transport.py][1871] : EOF in transport thread
2025-07-01 12:18:09,122 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:18:09,131 [DEBUG][       Thread-604376][   transport.py][1871] : starting thread (client mode): 0x8104e80
2025-07-01 12:18:09,131 [DEBUG][       Thread-604376][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:18:09,146 [DEBUG][       Thread-604376][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:18:09,146 [ INFO][       Thread-604376][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:18:09,158 [DEBUG][       Thread-604376][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:18:09,158 [DEBUG][       Thread-604376][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:18:09,158 [DEBUG][       Thread-604376][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:18:09,158 [DEBUG][       Thread-604376][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:18:09,158 [DEBUG][       Thread-604376][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:18:09,158 [DEBUG][       Thread-604376][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:18:09,158 [DEBUG][       Thread-604376][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:18:09,158 [DEBUG][       Thread-604376][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:18:09,158 [DEBUG][       Thread-604376][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:18:09,158 [DEBUG][       Thread-604376][   transport.py][1871] : client lang: <none>
2025-07-01 12:18:09,158 [DEBUG][       Thread-604376][   transport.py][1871] : server lang: <none>
2025-07-01 12:18:09,158 [DEBUG][       Thread-604376][   transport.py][1871] : kex follows: False
2025-07-01 12:18:09,158 [DEBUG][       Thread-604376][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:18:09,158 [DEBUG][       Thread-604376][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:18:09,158 [DEBUG][       Thread-604376][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:18:09,158 [DEBUG][       Thread-604376][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:18:09,158 [DEBUG][       Thread-604376][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:18:09,158 [DEBUG][       Thread-604376][   transport.py][1871] : Compression: none
2025-07-01 12:18:09,158 [DEBUG][       Thread-604376][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:18:09,211 [DEBUG][       Thread-604376][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:18:09,212 [DEBUG][       Thread-604376][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:18:09,212 [DEBUG][       Thread-604376][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:18:09,212 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:18:09,212 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:18:09,268 [DEBUG][       Thread-604376][   transport.py][1871] : userauth is OK
2025-07-01 12:18:09,269 [DEBUG][       Thread-604376][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:18:09,269 [DEBUG][       Thread-604376][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:18:09,269 [DEBUG][       Thread-604376][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:18:09,269 [DEBUG][       Thread-604376][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:18:09,287 [ INFO][       Thread-604376][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:18:09,287 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:18:09,287 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:18:10,296 [DEBUG][       Thread-604376][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:18:10,296 [DEBUG][       Thread-604376][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:18:10,349 [DEBUG][       Thread-604376][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:18:10,350 [DEBUG][       Thread-604376][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:18:10,360 [DEBUG][       Thread-604376][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:18:10,371 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:18:10,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-07-01 12:18:10,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-07-01 12:18:10,389 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:18:10,390 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:18:10,390 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:18:10,398 [DEBUG][       Thread-604376][   transport.py][1871] : EOF in transport thread
2025-07-01 12:18:13,898 [DEBUG][Thread-604378 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:18:14,710 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:18:14,712 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:18:20,401 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:18:20,401 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:18:20,401 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:18:20,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-07-01 12:18:20,887 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 18, 17), 10.36, 49.19, 0.0, 31.86, 11.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:18:20,887 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:18:17
2025-07-01 12:18:20,973 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:18:20,979 [DEBUG][       Thread-604379][   transport.py][1871] : starting thread (client mode): 0x81076d0
2025-07-01 12:18:20,979 [DEBUG][       Thread-604379][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:18:20,998 [DEBUG][       Thread-604379][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:18:20,998 [ INFO][       Thread-604379][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:18:21,001 [DEBUG][       Thread-604379][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:18:21,002 [DEBUG][       Thread-604379][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:18:21,002 [DEBUG][       Thread-604379][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:18:21,002 [DEBUG][       Thread-604379][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:18:21,002 [DEBUG][       Thread-604379][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:18:21,002 [DEBUG][       Thread-604379][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:18:21,002 [DEBUG][       Thread-604379][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:18:21,002 [DEBUG][       Thread-604379][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:18:21,002 [DEBUG][       Thread-604379][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:18:21,002 [DEBUG][       Thread-604379][   transport.py][1871] : client lang: <none>
2025-07-01 12:18:21,002 [DEBUG][       Thread-604379][   transport.py][1871] : server lang: <none>
2025-07-01 12:18:21,002 [DEBUG][       Thread-604379][   transport.py][1871] : kex follows: False
2025-07-01 12:18:21,002 [DEBUG][       Thread-604379][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:18:21,002 [DEBUG][       Thread-604379][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:18:21,002 [DEBUG][       Thread-604379][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:18:21,002 [DEBUG][       Thread-604379][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:18:21,002 [DEBUG][       Thread-604379][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:18:21,002 [DEBUG][       Thread-604379][   transport.py][1871] : Compression: none
2025-07-01 12:18:21,002 [DEBUG][       Thread-604379][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:18:21,018 [DEBUG][       Thread-604379][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:18:21,019 [DEBUG][       Thread-604379][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:18:21,019 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:18:21,019 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:18:21,020 [DEBUG][       Thread-604379][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:18:21,020 [DEBUG][       Thread-604379][   transport.py][1871] : userauth is OK
2025-07-01 12:18:21,033 [ INFO][       Thread-604379][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:18:21,034 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:18:21,712 [DEBUG][       Thread-604379][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:18:21,712 [DEBUG][       Thread-604379][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:18:21,753 [DEBUG][       Thread-604379][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:18:21,753 [DEBUG][       Thread-604379][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:18:21,756 [DEBUG][       Thread-604379][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:18:21,769 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:18:21,769 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:18:21,771 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:18:21,774 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:18:21,779 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:18:21,781 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:18:21,781 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:18:21,782 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:18:21,782 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.429110 -999.00  +11.70  38.28     53   +2.50 1 1 2 1 1   888    0 8.89 7.08 ----- 38.3 38.3 25.2 50.2 14.8 -23.8 13.9 -25.0 13.7 -22.4 14.6 -22.7
2025-07-01 12:18:21,782 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:18:21,783 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:18:21,783 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.429110
2025-07-01 12:18:21,783 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:18:21,784 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:18:21,784 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:18:21,784 [DEBUG][       Thread-604379][   transport.py][1871] : EOF in transport thread
2025-07-01 12:18:21,784 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:18:21,785 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:18:21,785 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:18:17', tmtdew=10.36, humidity=49.19, cloud=0.0, wind=31.86, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:17:55.104', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:18:21,868 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:18:21,879 [DEBUG][       Thread-604382][   transport.py][1871] : starting thread (client mode): 0x827ec50
2025-07-01 12:18:21,880 [DEBUG][       Thread-604382][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:18:21,894 [DEBUG][       Thread-604382][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:18:21,894 [ INFO][       Thread-604382][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:18:21,901 [DEBUG][       Thread-604382][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:18:21,901 [DEBUG][       Thread-604382][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:18:21,901 [DEBUG][       Thread-604382][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:18:21,901 [DEBUG][       Thread-604382][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:18:21,901 [DEBUG][       Thread-604382][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:18:21,901 [DEBUG][       Thread-604382][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:18:21,901 [DEBUG][       Thread-604382][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:18:21,901 [DEBUG][       Thread-604382][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:18:21,901 [DEBUG][       Thread-604382][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:18:21,901 [DEBUG][       Thread-604382][   transport.py][1871] : client lang: <none>
2025-07-01 12:18:21,901 [DEBUG][       Thread-604382][   transport.py][1871] : server lang: <none>
2025-07-01 12:18:21,901 [DEBUG][       Thread-604382][   transport.py][1871] : kex follows: False
2025-07-01 12:18:21,901 [DEBUG][       Thread-604382][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:18:21,901 [DEBUG][       Thread-604382][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:18:21,901 [DEBUG][       Thread-604382][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:18:21,901 [DEBUG][       Thread-604382][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:18:21,901 [DEBUG][       Thread-604382][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:18:21,901 [DEBUG][       Thread-604382][   transport.py][1871] : Compression: none
2025-07-01 12:18:21,901 [DEBUG][       Thread-604382][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:18:21,961 [DEBUG][       Thread-604382][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:18:21,961 [DEBUG][       Thread-604382][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:18:21,961 [DEBUG][       Thread-604382][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:18:21,961 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:18:21,961 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:18:22,020 [DEBUG][       Thread-604382][   transport.py][1871] : userauth is OK
2025-07-01 12:18:22,020 [DEBUG][       Thread-604382][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:18:22,020 [DEBUG][       Thread-604382][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:18:22,021 [DEBUG][       Thread-604382][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:18:22,021 [DEBUG][       Thread-604382][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:18:22,040 [ INFO][       Thread-604382][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:18:22,040 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:18:22,041 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:18:22,919 [DEBUG][Thread-604384 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:18:23,058 [DEBUG][       Thread-604382][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:18:23,058 [DEBUG][       Thread-604382][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:18:23,108 [DEBUG][       Thread-604382][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:18:23,108 [DEBUG][       Thread-604382][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:18:23,118 [DEBUG][       Thread-604382][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:18:23,128 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:18:23,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')
2025-07-01 12:18: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-07-01 12:18:23,150 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:18:23,150 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:18:23,151 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:18:23,159 [DEBUG][       Thread-604382][   transport.py][1871] : EOF in transport thread
2025-07-01 12:18:28,736 [DEBUG][Thread-604385 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:18:31,963 [DEBUG][Thread-604386 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:18:33,162 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:18:33,162 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:18:33,162 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:18:33,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-07-01 12:18:33,645 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 18, 17), 10.36, 49.19, 0.0, 31.86, 11.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:18:33,645 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:18:17
2025-07-01 12:18:33,730 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:18:33,736 [DEBUG][       Thread-604387][   transport.py][1871] : starting thread (client mode): 0x81553f0
2025-07-01 12:18:33,736 [DEBUG][       Thread-604387][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:18:33,754 [DEBUG][       Thread-604387][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:18:33,754 [ INFO][       Thread-604387][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:18:33,755 [DEBUG][       Thread-604387][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:18:33,755 [DEBUG][       Thread-604387][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:18:33,755 [DEBUG][       Thread-604387][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:18:33,755 [DEBUG][       Thread-604387][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:18:33,755 [DEBUG][       Thread-604387][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:18:33,755 [DEBUG][       Thread-604387][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:18:33,755 [DEBUG][       Thread-604387][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:18:33,755 [DEBUG][       Thread-604387][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:18:33,755 [DEBUG][       Thread-604387][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:18:33,755 [DEBUG][       Thread-604387][   transport.py][1871] : client lang: <none>
2025-07-01 12:18:33,755 [DEBUG][       Thread-604387][   transport.py][1871] : server lang: <none>
2025-07-01 12:18:33,755 [DEBUG][       Thread-604387][   transport.py][1871] : kex follows: False
2025-07-01 12:18:33,755 [DEBUG][       Thread-604387][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:18:33,756 [DEBUG][       Thread-604387][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:18:33,756 [DEBUG][       Thread-604387][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:18:33,756 [DEBUG][       Thread-604387][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:18:33,756 [DEBUG][       Thread-604387][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:18:33,756 [DEBUG][       Thread-604387][   transport.py][1871] : Compression: none
2025-07-01 12:18:33,756 [DEBUG][       Thread-604387][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:18:33,765 [DEBUG][       Thread-604387][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:18:33,765 [DEBUG][       Thread-604387][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:18:33,766 [DEBUG][       Thread-604387][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:18:33,766 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:18:33,766 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:18:33,767 [DEBUG][       Thread-604387][   transport.py][1871] : userauth is OK
2025-07-01 12:18:33,781 [ INFO][       Thread-604387][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:18:33,781 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:18:34,352 [DEBUG][       Thread-604387][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:18:34,352 [DEBUG][       Thread-604387][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:18:34,397 [DEBUG][       Thread-604387][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:18:34,397 [DEBUG][       Thread-604387][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:18:34,398 [DEBUG][       Thread-604387][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:18:34,412 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:18:34,412 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:18:34,413 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:18:34,414 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:18:34,416 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:18:34,417 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:18:34,417 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:18:34,418 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:18:34,418 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.429457 -999.00  +11.70  28.27     53   +2.60 1 2 1 1 1   888    0 8.85 8.29 ----- 28.3 28.3 34.6 37.2 14.8 -23.7 14.0 -23.6 13.7 -22.2 14.5 -22.3
2025-07-01 12:18:34,418 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:18:34,418 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:18:34,418 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.429457
2025-07-01 12:18:34,418 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:18:34,418 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:18:34,418 [DEBUG][       Thread-604387][   transport.py][1871] : EOF in transport thread
2025-07-01 12:18:34,418 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:18:34,418 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:18:34,418 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 12:18:34,418 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:18:17', tmtdew=10.36, humidity=49.19, cloud=0.0, wind=31.86, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:18:25.085', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:18:34,490 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:18:34,502 [DEBUG][       Thread-604390][   transport.py][1871] : starting thread (client mode): 0x83c8220
2025-07-01 12:18:34,502 [DEBUG][       Thread-604390][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:18:34,518 [DEBUG][       Thread-604390][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:18:34,518 [ INFO][       Thread-604390][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:18:34,525 [DEBUG][       Thread-604390][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:18:34,525 [DEBUG][       Thread-604390][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:18:34,526 [DEBUG][       Thread-604390][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:18:34,526 [DEBUG][       Thread-604390][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:18:34,526 [DEBUG][       Thread-604390][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:18:34,526 [DEBUG][       Thread-604390][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:18:34,526 [DEBUG][       Thread-604390][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:18:34,526 [DEBUG][       Thread-604390][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:18:34,526 [DEBUG][       Thread-604390][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:18:34,526 [DEBUG][       Thread-604390][   transport.py][1871] : client lang: <none>
2025-07-01 12:18:34,526 [DEBUG][       Thread-604390][   transport.py][1871] : server lang: <none>
2025-07-01 12:18:34,526 [DEBUG][       Thread-604390][   transport.py][1871] : kex follows: False
2025-07-01 12:18:34,526 [DEBUG][       Thread-604390][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:18:34,526 [DEBUG][       Thread-604390][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:18:34,526 [DEBUG][       Thread-604390][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:18:34,526 [DEBUG][       Thread-604390][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:18:34,526 [DEBUG][       Thread-604390][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:18:34,526 [DEBUG][       Thread-604390][   transport.py][1871] : Compression: none
2025-07-01 12:18:34,526 [DEBUG][       Thread-604390][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:18:34,582 [DEBUG][       Thread-604390][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:18:34,583 [DEBUG][       Thread-604390][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:18:34,583 [DEBUG][       Thread-604390][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:18:34,583 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:18:34,584 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:18:34,638 [DEBUG][       Thread-604390][   transport.py][1871] : userauth is OK
2025-07-01 12:18:34,638 [DEBUG][       Thread-604390][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:18:34,638 [DEBUG][       Thread-604390][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:18:34,638 [DEBUG][       Thread-604390][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:18:34,638 [DEBUG][       Thread-604390][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:18:34,657 [ INFO][       Thread-604390][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:18:34,657 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:18:34,658 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:18:35,649 [DEBUG][       Thread-604390][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:18:35,649 [DEBUG][       Thread-604390][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:18:35,700 [DEBUG][       Thread-604390][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:18:35,700 [DEBUG][       Thread-604390][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:18:35,709 [DEBUG][       Thread-604390][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:18:35,718 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:18:35,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-07-01 12:18:35,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-07-01 12:18:35,737 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:18:35,737 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:18:35,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:18:35,745 [DEBUG][       Thread-604390][   transport.py][1871] : EOF in transport thread
2025-07-01 12:18:40,986 [DEBUG][Thread-604392 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:18:45,748 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:18:45,748 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:18:45,748 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:18:45,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-07-01 12:18:46,242 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 18, 17), 10.36, 49.19, 0.0, 31.86, 11.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:18:46,242 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:18:17
2025-07-01 12:18:46,329 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:18:46,333 [DEBUG][       Thread-604393][   transport.py][1871] : starting thread (client mode): 0x82b1f00
2025-07-01 12:18:46,333 [DEBUG][       Thread-604393][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:18:46,357 [DEBUG][       Thread-604393][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:18:46,357 [ INFO][       Thread-604393][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:18:46,361 [DEBUG][       Thread-604393][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:18:46,361 [DEBUG][       Thread-604393][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:18:46,361 [DEBUG][       Thread-604393][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:18:46,361 [DEBUG][       Thread-604393][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:18:46,361 [DEBUG][       Thread-604393][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:18:46,361 [DEBUG][       Thread-604393][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:18:46,361 [DEBUG][       Thread-604393][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:18:46,361 [DEBUG][       Thread-604393][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:18:46,361 [DEBUG][       Thread-604393][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:18:46,361 [DEBUG][       Thread-604393][   transport.py][1871] : client lang: <none>
2025-07-01 12:18:46,361 [DEBUG][       Thread-604393][   transport.py][1871] : server lang: <none>
2025-07-01 12:18:46,361 [DEBUG][       Thread-604393][   transport.py][1871] : kex follows: False
2025-07-01 12:18:46,361 [DEBUG][       Thread-604393][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:18:46,361 [DEBUG][       Thread-604393][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:18:46,361 [DEBUG][       Thread-604393][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:18:46,361 [DEBUG][       Thread-604393][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:18:46,361 [DEBUG][       Thread-604393][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:18:46,361 [DEBUG][       Thread-604393][   transport.py][1871] : Compression: none
2025-07-01 12:18:46,361 [DEBUG][       Thread-604393][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:18:46,375 [DEBUG][       Thread-604393][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:18:46,376 [DEBUG][       Thread-604393][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:18:46,376 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:18:46,376 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:18:46,376 [DEBUG][       Thread-604393][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:18:46,376 [DEBUG][       Thread-604393][   transport.py][1871] : userauth is OK
2025-07-01 12:18:46,389 [ INFO][       Thread-604393][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:18:46,389 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:18:47,030 [DEBUG][       Thread-604393][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:18:47,030 [DEBUG][       Thread-604393][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:18:47,072 [DEBUG][       Thread-604393][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:18:47,073 [DEBUG][       Thread-604393][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:18:47,075 [DEBUG][       Thread-604393][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:18:47,087 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:18:47,087 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:18:47,089 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:18:47,090 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:18:47,093 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:18:47,096 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:18:47,096 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:18:47,096 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:18:47,097 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.429457 -999.00  +11.70  28.27     53   +2.60 1 2 1 1 1   888    0 8.85 8.29 ----- 28.3 28.3 34.6 37.2 14.8 -23.7 14.0 -23.6 13.7 -22.2 14.5 -22.3
2025-07-01 12:18:47,097 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:18:47,097 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:18:47,097 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.429457
2025-07-01 12:18:47,097 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:18:47,097 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:18:47,097 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:18:47,097 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:18:47,097 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 12:18:47,097 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:18:17', tmtdew=10.36, humidity=49.19, cloud=0.0, wind=31.86, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:18:25.085', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:18:47,098 [DEBUG][       Thread-604393][   transport.py][1871] : EOF in transport thread
2025-07-01 12:18:47,169 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:18:47,178 [DEBUG][       Thread-604396][   transport.py][1871] : starting thread (client mode): 0x8157190
2025-07-01 12:18:47,178 [DEBUG][       Thread-604396][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:18:47,193 [DEBUG][       Thread-604396][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:18:47,193 [ INFO][       Thread-604396][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:18:47,201 [DEBUG][       Thread-604396][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:18:47,201 [DEBUG][       Thread-604396][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:18:47,201 [DEBUG][       Thread-604396][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:18:47,201 [DEBUG][       Thread-604396][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:18:47,201 [DEBUG][       Thread-604396][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:18:47,201 [DEBUG][       Thread-604396][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:18:47,201 [DEBUG][       Thread-604396][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:18:47,201 [DEBUG][       Thread-604396][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:18:47,201 [DEBUG][       Thread-604396][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:18:47,201 [DEBUG][       Thread-604396][   transport.py][1871] : client lang: <none>
2025-07-01 12:18:47,201 [DEBUG][       Thread-604396][   transport.py][1871] : server lang: <none>
2025-07-01 12:18:47,201 [DEBUG][       Thread-604396][   transport.py][1871] : kex follows: False
2025-07-01 12:18:47,201 [DEBUG][       Thread-604396][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:18:47,201 [DEBUG][       Thread-604396][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:18:47,201 [DEBUG][       Thread-604396][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:18:47,201 [DEBUG][       Thread-604396][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:18:47,201 [DEBUG][       Thread-604396][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:18:47,201 [DEBUG][       Thread-604396][   transport.py][1871] : Compression: none
2025-07-01 12:18:47,201 [DEBUG][       Thread-604396][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:18:47,256 [DEBUG][       Thread-604396][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:18:47,257 [DEBUG][       Thread-604396][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:18:47,257 [DEBUG][       Thread-604396][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:18:47,257 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:18:47,257 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:18:47,318 [DEBUG][       Thread-604396][   transport.py][1871] : userauth is OK
2025-07-01 12:18:47,318 [DEBUG][       Thread-604396][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:18:47,318 [DEBUG][       Thread-604396][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:18:47,318 [DEBUG][       Thread-604396][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:18:47,318 [DEBUG][       Thread-604396][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:18:47,332 [ INFO][       Thread-604396][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:18:47,332 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:18:47,332 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:18:48,377 [DEBUG][       Thread-604396][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:18:48,377 [DEBUG][       Thread-604396][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:18:48,428 [DEBUG][       Thread-604396][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:18:48,428 [DEBUG][       Thread-604396][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:18:48,438 [DEBUG][       Thread-604396][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:18:48,446 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:18:48,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-07-01 12:18:48,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-07-01 12:18:48,464 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:18:48,465 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:18:48,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:18:48,473 [DEBUG][       Thread-604396][   transport.py][1871] : EOF in transport thread
2025-07-01 12:18:50,007 [DEBUG][Thread-604398 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:18:58,475 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:18:58,476 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:18:58,476 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:18:58,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-07-01 12:18:58,954 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 18, 49), 10.38, 49.11, 0.0, 36.19, 11.64, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:18:58,954 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:18:49
2025-07-01 12:18:59,026 [DEBUG][Thread-604399 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:18:59,039 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:18:59,045 [DEBUG][       Thread-604400][   transport.py][1871] : starting thread (client mode): 0x82b33d0
2025-07-01 12:18:59,045 [DEBUG][       Thread-604400][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:18:59,067 [DEBUG][       Thread-604400][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:18:59,067 [ INFO][       Thread-604400][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:18:59,071 [DEBUG][       Thread-604400][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:18:59,071 [DEBUG][       Thread-604400][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:18:59,071 [DEBUG][       Thread-604400][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:18:59,071 [DEBUG][       Thread-604400][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:18:59,071 [DEBUG][       Thread-604400][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:18:59,071 [DEBUG][       Thread-604400][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:18:59,071 [DEBUG][       Thread-604400][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:18:59,071 [DEBUG][       Thread-604400][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:18:59,071 [DEBUG][       Thread-604400][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:18:59,071 [DEBUG][       Thread-604400][   transport.py][1871] : client lang: <none>
2025-07-01 12:18:59,071 [DEBUG][       Thread-604400][   transport.py][1871] : server lang: <none>
2025-07-01 12:18:59,071 [DEBUG][       Thread-604400][   transport.py][1871] : kex follows: False
2025-07-01 12:18:59,071 [DEBUG][       Thread-604400][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:18:59,071 [DEBUG][       Thread-604400][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:18:59,071 [DEBUG][       Thread-604400][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:18:59,071 [DEBUG][       Thread-604400][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:18:59,071 [DEBUG][       Thread-604400][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:18:59,071 [DEBUG][       Thread-604400][   transport.py][1871] : Compression: none
2025-07-01 12:18:59,071 [DEBUG][       Thread-604400][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:18:59,087 [DEBUG][       Thread-604400][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:18:59,088 [DEBUG][       Thread-604400][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:18:59,088 [DEBUG][       Thread-604400][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:18:59,088 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:18:59,088 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:18:59,089 [DEBUG][       Thread-604400][   transport.py][1871] : userauth is OK
2025-07-01 12:18:59,113 [ INFO][       Thread-604400][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:18:59,114 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:18:59,757 [DEBUG][       Thread-604400][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:18:59,757 [DEBUG][       Thread-604400][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:18:59,801 [DEBUG][       Thread-604400][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:18:59,801 [DEBUG][       Thread-604400][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:18:59,804 [DEBUG][       Thread-604400][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:18:59,817 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:18:59,818 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:18:59,820 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:18:59,822 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:18:59,827 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:18:59,829 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:18:59,829 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:18:59,830 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:18:59,830 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.429457 -999.00  +11.70  28.27     53   +2.60 1 2 1 1 1   888    0 8.85 8.29 ----- 28.3 28.3 34.6 37.2 14.8 -23.7 14.0 -23.6 13.7 -22.2 14.5 -22.3
2025-07-01 12:18:59,830 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:18:59,830 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:18:59,831 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.429457
2025-07-01 12:18:59,831 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:18:59,831 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:18:59,832 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:18:59,832 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:18:59,832 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 12:18:59,832 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:18:49', tmtdew=10.38, humidity=49.11, cloud=0.0, wind=36.19, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:18:25.085', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:18:59,833 [DEBUG][       Thread-604400][   transport.py][1871] : EOF in transport thread
2025-07-01 12:18:59,916 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:18:59,933 [DEBUG][       Thread-604403][   transport.py][1871] : starting thread (client mode): 0x8154d60
2025-07-01 12:18:59,933 [DEBUG][       Thread-604403][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:18:59,948 [DEBUG][       Thread-604403][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:18:59,948 [ INFO][       Thread-604403][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:18:59,956 [DEBUG][       Thread-604403][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:18:59,956 [DEBUG][       Thread-604403][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:18:59,956 [DEBUG][       Thread-604403][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:18:59,956 [DEBUG][       Thread-604403][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:18:59,956 [DEBUG][       Thread-604403][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:18:59,956 [DEBUG][       Thread-604403][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:18:59,956 [DEBUG][       Thread-604403][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:18:59,956 [DEBUG][       Thread-604403][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:18:59,956 [DEBUG][       Thread-604403][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:18:59,956 [DEBUG][       Thread-604403][   transport.py][1871] : client lang: <none>
2025-07-01 12:18:59,956 [DEBUG][       Thread-604403][   transport.py][1871] : server lang: <none>
2025-07-01 12:18:59,956 [DEBUG][       Thread-604403][   transport.py][1871] : kex follows: False
2025-07-01 12:18:59,956 [DEBUG][       Thread-604403][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:18:59,956 [DEBUG][       Thread-604403][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:18:59,957 [DEBUG][       Thread-604403][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:18:59,957 [DEBUG][       Thread-604403][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:18:59,957 [DEBUG][       Thread-604403][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:18:59,957 [DEBUG][       Thread-604403][   transport.py][1871] : Compression: none
2025-07-01 12:18:59,957 [DEBUG][       Thread-604403][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:19:00,015 [DEBUG][       Thread-604403][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:19:00,015 [DEBUG][       Thread-604403][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:19:00,016 [DEBUG][       Thread-604403][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:19:00,016 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:19:00,017 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:19:00,076 [DEBUG][       Thread-604403][   transport.py][1871] : userauth is OK
2025-07-01 12:19:00,076 [DEBUG][       Thread-604403][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:19:00,077 [DEBUG][       Thread-604403][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:19:00,077 [DEBUG][       Thread-604403][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:19:00,077 [DEBUG][       Thread-604403][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:19:00,101 [ INFO][       Thread-604403][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:19:00,102 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:19:00,102 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:19:01,095 [DEBUG][       Thread-604403][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:19:01,095 [DEBUG][       Thread-604403][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:19:01,144 [DEBUG][       Thread-604403][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:19:01,144 [DEBUG][       Thread-604403][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:19:01,162 [DEBUG][       Thread-604403][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:19:01,173 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:19:01,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-07-01 12:19:01,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-07-01 12:19:01,197 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:19:01,197 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:19:01,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:19:01,210 [DEBUG][       Thread-604403][   transport.py][1871] : EOF in transport thread
2025-07-01 12:19:08,048 [DEBUG][Thread-604405 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:19:11,208 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:19:11,208 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:19:11,208 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:19:11,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-07-01 12:19:11,682 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 18, 49), 10.38, 49.11, 0.0, 36.19, 11.64, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:19:11,682 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:18:49
2025-07-01 12:19:11,769 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:19:11,773 [DEBUG][       Thread-604406][   transport.py][1871] : starting thread (client mode): 0x82b2110
2025-07-01 12:19:11,773 [DEBUG][       Thread-604406][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:19:11,793 [DEBUG][       Thread-604406][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:19:11,793 [ INFO][       Thread-604406][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:19:11,796 [DEBUG][       Thread-604406][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:19:11,796 [DEBUG][       Thread-604406][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:19:11,796 [DEBUG][       Thread-604406][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:19:11,796 [DEBUG][       Thread-604406][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:19:11,796 [DEBUG][       Thread-604406][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:19:11,796 [DEBUG][       Thread-604406][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:19:11,796 [DEBUG][       Thread-604406][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:19:11,796 [DEBUG][       Thread-604406][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:19:11,796 [DEBUG][       Thread-604406][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:19:11,796 [DEBUG][       Thread-604406][   transport.py][1871] : client lang: <none>
2025-07-01 12:19:11,796 [DEBUG][       Thread-604406][   transport.py][1871] : server lang: <none>
2025-07-01 12:19:11,796 [DEBUG][       Thread-604406][   transport.py][1871] : kex follows: False
2025-07-01 12:19:11,796 [DEBUG][       Thread-604406][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:19:11,796 [DEBUG][       Thread-604406][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:19:11,796 [DEBUG][       Thread-604406][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:19:11,796 [DEBUG][       Thread-604406][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:19:11,796 [DEBUG][       Thread-604406][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:19:11,797 [DEBUG][       Thread-604406][   transport.py][1871] : Compression: none
2025-07-01 12:19:11,797 [DEBUG][       Thread-604406][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:19:11,813 [DEBUG][       Thread-604406][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:19:11,813 [DEBUG][       Thread-604406][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:19:11,814 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:19:11,814 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:19:11,814 [DEBUG][       Thread-604406][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:19:11,815 [DEBUG][       Thread-604406][   transport.py][1871] : userauth is OK
2025-07-01 12:19:11,828 [ INFO][       Thread-604406][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:19:11,829 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:19:12,486 [DEBUG][       Thread-604406][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:19:12,486 [DEBUG][       Thread-604406][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:19:12,529 [DEBUG][       Thread-604406][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:19:12,529 [DEBUG][       Thread-604406][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:19:12,532 [DEBUG][       Thread-604406][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:19:12,545 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:19:12,545 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:19:12,547 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:19:12,549 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:19:12,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:19:12,555 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:19:12,556 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:19:12,556 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:19:12,556 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.429805 -999.00  +11.80  44.40     53   +2.60 1 1 2 1 1   888    0 8.97 8.99 ----- 44.4 44.4 41.4 48.2 14.9 -24.5 14.0 -24.8 13.7 -22.9 14.7 -22.8
2025-07-01 12:19:12,557 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:19:12,557 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:19:12,557 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.429805
2025-07-01 12:19:12,557 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:19:12,558 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:19:12,558 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:19:12,558 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:19:12,558 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:19:12,558 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:18:49', tmtdew=10.38, humidity=49.11, cloud=0.0, wind=36.19, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:18:55.152', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:19:12,558 [DEBUG][       Thread-604406][   transport.py][1871] : EOF in transport thread
2025-07-01 12:19:12,642 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:19:12,652 [DEBUG][       Thread-604409][   transport.py][1871] : starting thread (client mode): 0x83c84f0
2025-07-01 12:19:12,652 [DEBUG][       Thread-604409][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:19:12,669 [DEBUG][       Thread-604409][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:19:12,669 [ INFO][       Thread-604409][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:19:12,676 [DEBUG][       Thread-604409][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:19:12,677 [DEBUG][       Thread-604409][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:19:12,677 [DEBUG][       Thread-604409][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:19:12,677 [DEBUG][       Thread-604409][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:19:12,677 [DEBUG][       Thread-604409][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:19:12,677 [DEBUG][       Thread-604409][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:19:12,677 [DEBUG][       Thread-604409][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:19:12,677 [DEBUG][       Thread-604409][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:19:12,677 [DEBUG][       Thread-604409][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:19:12,677 [DEBUG][       Thread-604409][   transport.py][1871] : client lang: <none>
2025-07-01 12:19:12,677 [DEBUG][       Thread-604409][   transport.py][1871] : server lang: <none>
2025-07-01 12:19:12,677 [DEBUG][       Thread-604409][   transport.py][1871] : kex follows: False
2025-07-01 12:19:12,677 [DEBUG][       Thread-604409][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:19:12,677 [DEBUG][       Thread-604409][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:19:12,677 [DEBUG][       Thread-604409][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:19:12,677 [DEBUG][       Thread-604409][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:19:12,677 [DEBUG][       Thread-604409][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:19:12,677 [DEBUG][       Thread-604409][   transport.py][1871] : Compression: none
2025-07-01 12:19:12,677 [DEBUG][       Thread-604409][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:19:12,735 [DEBUG][       Thread-604409][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:19:12,735 [DEBUG][       Thread-604409][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:19:12,736 [DEBUG][       Thread-604409][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:19:12,736 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:19:12,737 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:19:12,791 [DEBUG][       Thread-604409][   transport.py][1871] : userauth is OK
2025-07-01 12:19:12,791 [DEBUG][       Thread-604409][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:19:12,792 [DEBUG][       Thread-604409][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:19:12,792 [DEBUG][       Thread-604409][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:19:12,792 [DEBUG][       Thread-604409][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:19:12,811 [ INFO][       Thread-604409][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:19:12,811 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:19:12,812 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:19:13,840 [DEBUG][       Thread-604409][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:19:13,840 [DEBUG][       Thread-604409][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:19:13,888 [DEBUG][       Thread-604409][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:19:13,888 [DEBUG][       Thread-604409][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:19:13,907 [DEBUG][       Thread-604409][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:19:13,916 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:19:13,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-07-01 12:19:13,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-07-01 12:19:13,934 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:19:13,935 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:19:13,935 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:19:13,943 [DEBUG][       Thread-604409][   transport.py][1871] : EOF in transport thread
2025-07-01 12:19:14,851 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:19:14,852 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:19:17,083 [DEBUG][Thread-604411 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:19:23,944 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:19:23,944 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:19:23,944 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:19:23,944 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:19:24,447 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 19, 21), 10.33, 49.15, 0.0, 42.43, 11.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:19:24,447 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:19:21
2025-07-01 12:19:24,536 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:19:24,542 [DEBUG][       Thread-604412][   transport.py][1871] : starting thread (client mode): 0x8155c90
2025-07-01 12:19:24,542 [DEBUG][       Thread-604412][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:19:24,562 [DEBUG][       Thread-604412][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:19:24,562 [ INFO][       Thread-604412][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:19:24,565 [DEBUG][       Thread-604412][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:19:24,565 [DEBUG][       Thread-604412][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:19:24,565 [DEBUG][       Thread-604412][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:19:24,565 [DEBUG][       Thread-604412][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:19:24,565 [DEBUG][       Thread-604412][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:19:24,565 [DEBUG][       Thread-604412][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:19:24,565 [DEBUG][       Thread-604412][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:19:24,565 [DEBUG][       Thread-604412][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:19:24,565 [DEBUG][       Thread-604412][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:19:24,565 [DEBUG][       Thread-604412][   transport.py][1871] : client lang: <none>
2025-07-01 12:19:24,565 [DEBUG][       Thread-604412][   transport.py][1871] : server lang: <none>
2025-07-01 12:19:24,565 [DEBUG][       Thread-604412][   transport.py][1871] : kex follows: False
2025-07-01 12:19:24,565 [DEBUG][       Thread-604412][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:19:24,565 [DEBUG][       Thread-604412][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:19:24,565 [DEBUG][       Thread-604412][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:19:24,565 [DEBUG][       Thread-604412][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:19:24,565 [DEBUG][       Thread-604412][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:19:24,565 [DEBUG][       Thread-604412][   transport.py][1871] : Compression: none
2025-07-01 12:19:24,565 [DEBUG][       Thread-604412][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:19:24,580 [DEBUG][       Thread-604412][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:19:24,581 [DEBUG][       Thread-604412][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:19:24,581 [DEBUG][       Thread-604412][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:19:24,581 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:19:24,581 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:19:24,582 [DEBUG][       Thread-604412][   transport.py][1871] : userauth is OK
2025-07-01 12:19:24,605 [ INFO][       Thread-604412][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:19:24,606 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:19:25,223 [DEBUG][       Thread-604412][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:19:25,223 [DEBUG][       Thread-604412][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:19:25,264 [DEBUG][       Thread-604412][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:19:25,264 [DEBUG][       Thread-604412][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:19:25,267 [DEBUG][       Thread-604412][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:19:25,281 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:19:25,281 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:19:25,282 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:19:25,282 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:19:25,285 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:19:25,286 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:19:25,286 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:19:25,286 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:19:25,286 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.429805 -999.00  +11.80  44.40     53   +2.60 1 1 2 1 1   888    0 8.97 8.99 ----- 44.4 44.4 41.4 48.2 14.9 -24.5 14.0 -24.8 13.7 -22.9 14.7 -22.8
2025-07-01 12:19:25,286 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:19:25,286 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:19:25,286 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.429805
2025-07-01 12:19:25,286 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:19:25,286 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:19:25,286 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:19:25,286 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:19:25,286 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:19:25,286 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:19:21', tmtdew=10.33, humidity=49.15, cloud=0.0, wind=42.43, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:18:55.152', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:19:25,287 [DEBUG][       Thread-604412][   transport.py][1871] : EOF in transport thread
2025-07-01 12:19:25,359 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:19:25,373 [DEBUG][       Thread-604415][   transport.py][1871] : starting thread (client mode): 0x82b2d70
2025-07-01 12:19:25,373 [DEBUG][       Thread-604415][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:19:25,388 [DEBUG][       Thread-604415][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:19:25,388 [ INFO][       Thread-604415][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:19:25,395 [DEBUG][       Thread-604415][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:19:25,395 [DEBUG][       Thread-604415][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:19:25,395 [DEBUG][       Thread-604415][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:19:25,395 [DEBUG][       Thread-604415][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:19:25,395 [DEBUG][       Thread-604415][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:19:25,395 [DEBUG][       Thread-604415][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:19:25,395 [DEBUG][       Thread-604415][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:19:25,395 [DEBUG][       Thread-604415][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:19:25,395 [DEBUG][       Thread-604415][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:19:25,395 [DEBUG][       Thread-604415][   transport.py][1871] : client lang: <none>
2025-07-01 12:19:25,395 [DEBUG][       Thread-604415][   transport.py][1871] : server lang: <none>
2025-07-01 12:19:25,395 [DEBUG][       Thread-604415][   transport.py][1871] : kex follows: False
2025-07-01 12:19:25,395 [DEBUG][       Thread-604415][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:19:25,395 [DEBUG][       Thread-604415][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:19:25,395 [DEBUG][       Thread-604415][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:19:25,395 [DEBUG][       Thread-604415][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:19:25,395 [DEBUG][       Thread-604415][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:19:25,395 [DEBUG][       Thread-604415][   transport.py][1871] : Compression: none
2025-07-01 12:19:25,395 [DEBUG][       Thread-604415][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:19:25,449 [DEBUG][       Thread-604415][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:19:25,449 [DEBUG][       Thread-604415][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:19:25,450 [DEBUG][       Thread-604415][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:19:25,450 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:19:25,450 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:19:25,508 [DEBUG][       Thread-604415][   transport.py][1871] : userauth is OK
2025-07-01 12:19:25,508 [DEBUG][       Thread-604415][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:19:25,508 [DEBUG][       Thread-604415][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:19:25,508 [DEBUG][       Thread-604415][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:19:25,508 [DEBUG][       Thread-604415][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:19:25,524 [ INFO][       Thread-604415][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:19:25,524 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:19:25,524 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:19:26,115 [DEBUG][Thread-604417 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:19:26,590 [DEBUG][       Thread-604415][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:19:26,590 [DEBUG][       Thread-604415][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:19:26,640 [DEBUG][       Thread-604415][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:19:26,640 [DEBUG][       Thread-604415][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:19:26,649 [DEBUG][       Thread-604415][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:19:26,657 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:19:26,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-07-01 12:19:26,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-07-01 12:19:26,676 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:19:26,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:19:26,676 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:19:26,686 [DEBUG][       Thread-604415][   transport.py][1871] : EOF in transport thread
2025-07-01 12:19:28,789 [DEBUG][Thread-604418 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:19:35,141 [DEBUG][Thread-604419 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:19:36,686 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:19:36,687 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:19:36,687 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:19:36,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-07-01 12:19:37,157 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 19, 21), 10.33, 49.15, 0.0, 42.43, 11.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:19:37,157 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:19:21
2025-07-01 12:19:37,241 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:19:37,247 [DEBUG][       Thread-604420][   transport.py][1871] : starting thread (client mode): 0x82b24a0
2025-07-01 12:19:37,247 [DEBUG][       Thread-604420][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:19:37,266 [DEBUG][       Thread-604420][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:19:37,266 [ INFO][       Thread-604420][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:19:37,269 [DEBUG][       Thread-604420][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:19:37,269 [DEBUG][       Thread-604420][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:19:37,269 [DEBUG][       Thread-604420][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:19:37,269 [DEBUG][       Thread-604420][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:19:37,269 [DEBUG][       Thread-604420][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:19:37,269 [DEBUG][       Thread-604420][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:19:37,269 [DEBUG][       Thread-604420][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:19:37,269 [DEBUG][       Thread-604420][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:19:37,269 [DEBUG][       Thread-604420][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:19:37,269 [DEBUG][       Thread-604420][   transport.py][1871] : client lang: <none>
2025-07-01 12:19:37,269 [DEBUG][       Thread-604420][   transport.py][1871] : server lang: <none>
2025-07-01 12:19:37,269 [DEBUG][       Thread-604420][   transport.py][1871] : kex follows: False
2025-07-01 12:19:37,269 [DEBUG][       Thread-604420][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:19:37,269 [DEBUG][       Thread-604420][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:19:37,269 [DEBUG][       Thread-604420][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:19:37,269 [DEBUG][       Thread-604420][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:19:37,269 [DEBUG][       Thread-604420][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:19:37,269 [DEBUG][       Thread-604420][   transport.py][1871] : Compression: none
2025-07-01 12:19:37,269 [DEBUG][       Thread-604420][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:19:37,278 [DEBUG][       Thread-604420][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:19:37,278 [DEBUG][       Thread-604420][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:19:37,279 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:19:37,279 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:19:37,279 [DEBUG][       Thread-604420][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:19:37,280 [DEBUG][       Thread-604420][   transport.py][1871] : userauth is OK
2025-07-01 12:19:37,292 [ INFO][       Thread-604420][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:19:37,293 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:19:37,970 [DEBUG][       Thread-604420][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:19:37,970 [DEBUG][       Thread-604420][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:19:38,013 [DEBUG][       Thread-604420][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:19:38,013 [DEBUG][       Thread-604420][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:19:38,016 [DEBUG][       Thread-604420][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:19:38,027 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:19:38,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:19:38,029 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:19:38,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:19:38,036 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:19:38,038 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:19:38,038 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:19:38,039 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:19:38,039 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.429805 -999.00  +11.80  44.40     53   +2.60 1 1 2 1 1   888    0 8.97 8.99 ----- 44.4 44.4 41.4 48.2 14.9 -24.5 14.0 -24.8 13.7 -22.9 14.7 -22.8
2025-07-01 12:19:38,039 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:19:38,039 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:19:38,039 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.429805
2025-07-01 12:19:38,040 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:19:38,040 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:19:38,040 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:19:38,040 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:19:38,040 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:19:38,040 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:19:21', tmtdew=10.33, humidity=49.15, cloud=0.0, wind=42.43, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:18:55.152', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:19:38,042 [DEBUG][       Thread-604420][   transport.py][1871] : EOF in transport thread
2025-07-01 12:19:38,124 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:19:38,133 [DEBUG][       Thread-604423][   transport.py][1871] : starting thread (client mode): 0x83c8490
2025-07-01 12:19:38,133 [DEBUG][       Thread-604423][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:19:38,148 [DEBUG][       Thread-604423][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:19:38,148 [ INFO][       Thread-604423][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:19:38,156 [DEBUG][       Thread-604423][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:19:38,156 [DEBUG][       Thread-604423][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:19:38,156 [DEBUG][       Thread-604423][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:19:38,156 [DEBUG][       Thread-604423][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:19:38,156 [DEBUG][       Thread-604423][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:19:38,156 [DEBUG][       Thread-604423][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:19:38,156 [DEBUG][       Thread-604423][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:19:38,156 [DEBUG][       Thread-604423][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:19:38,156 [DEBUG][       Thread-604423][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:19:38,156 [DEBUG][       Thread-604423][   transport.py][1871] : client lang: <none>
2025-07-01 12:19:38,156 [DEBUG][       Thread-604423][   transport.py][1871] : server lang: <none>
2025-07-01 12:19:38,156 [DEBUG][       Thread-604423][   transport.py][1871] : kex follows: False
2025-07-01 12:19:38,156 [DEBUG][       Thread-604423][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:19:38,156 [DEBUG][       Thread-604423][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:19:38,156 [DEBUG][       Thread-604423][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:19:38,156 [DEBUG][       Thread-604423][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:19:38,156 [DEBUG][       Thread-604423][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:19:38,156 [DEBUG][       Thread-604423][   transport.py][1871] : Compression: none
2025-07-01 12:19:38,156 [DEBUG][       Thread-604423][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:19:38,216 [DEBUG][       Thread-604423][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:19:38,216 [DEBUG][       Thread-604423][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:19:38,217 [DEBUG][       Thread-604423][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:19:38,217 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:19:38,218 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:19:38,280 [DEBUG][       Thread-604423][   transport.py][1871] : userauth is OK
2025-07-01 12:19:38,280 [DEBUG][       Thread-604423][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:19:38,280 [DEBUG][       Thread-604423][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:19:38,280 [DEBUG][       Thread-604423][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:19:38,280 [DEBUG][       Thread-604423][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:19:38,298 [ INFO][       Thread-604423][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:19:38,299 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:19:38,299 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:19:39,296 [DEBUG][       Thread-604423][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:19:39,296 [DEBUG][       Thread-604423][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:19:39,344 [DEBUG][       Thread-604423][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:19:39,344 [DEBUG][       Thread-604423][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:19:39,354 [DEBUG][       Thread-604423][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:19:39,362 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:19: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-07-01 12:19:39,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-07-01 12:19:39,381 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:19:39,381 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:19:39,382 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:19:39,390 [DEBUG][       Thread-604423][   transport.py][1871] : EOF in transport thread
2025-07-01 12:19:44,163 [DEBUG][Thread-604425 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:19:49,392 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:19:49,392 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:19:49,393 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:19:49,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-07-01 12:19:49,867 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 19, 21), 10.33, 49.15, 0.0, 42.43, 11.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:19:49,867 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:19:21
2025-07-01 12:19:49,951 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:19:49,957 [DEBUG][       Thread-604426][   transport.py][1871] : starting thread (client mode): 0x82b1540
2025-07-01 12:19:49,957 [DEBUG][       Thread-604426][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:19:49,977 [DEBUG][       Thread-604426][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:19:49,977 [ INFO][       Thread-604426][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:19:49,980 [DEBUG][       Thread-604426][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:19:49,980 [DEBUG][       Thread-604426][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:19:49,980 [DEBUG][       Thread-604426][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:19:49,980 [DEBUG][       Thread-604426][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:19:49,980 [DEBUG][       Thread-604426][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:19:49,980 [DEBUG][       Thread-604426][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:19:49,980 [DEBUG][       Thread-604426][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:19:49,980 [DEBUG][       Thread-604426][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:19:49,980 [DEBUG][       Thread-604426][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:19:49,980 [DEBUG][       Thread-604426][   transport.py][1871] : client lang: <none>
2025-07-01 12:19:49,980 [DEBUG][       Thread-604426][   transport.py][1871] : server lang: <none>
2025-07-01 12:19:49,980 [DEBUG][       Thread-604426][   transport.py][1871] : kex follows: False
2025-07-01 12:19:49,980 [DEBUG][       Thread-604426][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:19:49,980 [DEBUG][       Thread-604426][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:19:49,980 [DEBUG][       Thread-604426][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:19:49,980 [DEBUG][       Thread-604426][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:19:49,980 [DEBUG][       Thread-604426][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:19:49,981 [DEBUG][       Thread-604426][   transport.py][1871] : Compression: none
2025-07-01 12:19:49,981 [DEBUG][       Thread-604426][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:19:49,997 [DEBUG][       Thread-604426][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:19:49,997 [DEBUG][       Thread-604426][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:19:49,998 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:19:49,998 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:19:49,998 [DEBUG][       Thread-604426][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:19:49,999 [DEBUG][       Thread-604426][   transport.py][1871] : userauth is OK
2025-07-01 12:19:50,024 [ INFO][       Thread-604426][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:19:50,025 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:19:50,684 [DEBUG][       Thread-604426][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:19:50,684 [DEBUG][       Thread-604426][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:19:50,729 [DEBUG][       Thread-604426][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:19:50,729 [DEBUG][       Thread-604426][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:19:50,732 [DEBUG][       Thread-604426][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:19:50,747 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:19:50,747 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:19:50,750 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:19:50,751 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:19:50,757 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:19:50,759 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:19:50,759 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:19:50,759 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:19:50,760 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.430152 -999.00  +11.60  40.00     53   +2.40 1 1 2 1 1   888    0 9.10 10.46 ----- 40.0 40.0 46.2 54.8 14.8 -24.7 13.9 -24.8 13.7 -23.1 14.5 -23.1
2025-07-01 12:19:50,760 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:19:50,760 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:19:50,760 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.430152
2025-07-01 12:19:50,760 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:19:50,761 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:19:50,761 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:19:50,761 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:19:50,761 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:19:50,761 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:19:21', tmtdew=10.33, humidity=49.15, cloud=0.0, wind=42.43, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:19:25.133', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:19:50,762 [DEBUG][       Thread-604426][   transport.py][1871] : EOF in transport thread
2025-07-01 12:19:50,845 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:19:50,856 [DEBUG][       Thread-604429][   transport.py][1871] : starting thread (client mode): 0x8106b00
2025-07-01 12:19:50,856 [DEBUG][       Thread-604429][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:19:50,871 [DEBUG][       Thread-604429][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:19:50,871 [ INFO][       Thread-604429][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:19:50,879 [DEBUG][       Thread-604429][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:19:50,879 [DEBUG][       Thread-604429][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:19:50,879 [DEBUG][       Thread-604429][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:19:50,879 [DEBUG][       Thread-604429][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:19:50,879 [DEBUG][       Thread-604429][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:19:50,879 [DEBUG][       Thread-604429][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:19:50,879 [DEBUG][       Thread-604429][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:19:50,879 [DEBUG][       Thread-604429][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:19:50,879 [DEBUG][       Thread-604429][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:19:50,879 [DEBUG][       Thread-604429][   transport.py][1871] : client lang: <none>
2025-07-01 12:19:50,879 [DEBUG][       Thread-604429][   transport.py][1871] : server lang: <none>
2025-07-01 12:19:50,879 [DEBUG][       Thread-604429][   transport.py][1871] : kex follows: False
2025-07-01 12:19:50,880 [DEBUG][       Thread-604429][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:19:50,880 [DEBUG][       Thread-604429][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:19:50,880 [DEBUG][       Thread-604429][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:19:50,880 [DEBUG][       Thread-604429][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:19:50,880 [DEBUG][       Thread-604429][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:19:50,880 [DEBUG][       Thread-604429][   transport.py][1871] : Compression: none
2025-07-01 12:19:50,880 [DEBUG][       Thread-604429][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:19:50,936 [DEBUG][       Thread-604429][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:19:50,937 [DEBUG][       Thread-604429][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:19:50,937 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:19:50,938 [DEBUG][       Thread-604429][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:19:50,938 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:19:50,992 [DEBUG][       Thread-604429][   transport.py][1871] : userauth is OK
2025-07-01 12:19:50,993 [DEBUG][       Thread-604429][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:19:50,993 [DEBUG][       Thread-604429][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:19:50,993 [DEBUG][       Thread-604429][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:19:50,993 [DEBUG][       Thread-604429][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:19:51,012 [ INFO][       Thread-604429][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:19:51,012 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:19:51,013 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:19:52,038 [DEBUG][       Thread-604429][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:19:52,038 [DEBUG][       Thread-604429][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:19:52,088 [DEBUG][       Thread-604429][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:19:52,088 [DEBUG][       Thread-604429][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:19:52,099 [DEBUG][       Thread-604429][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:19:52,107 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:19:52,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-07-01 12:19:52,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-07-01 12:19:52,127 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:19:52,127 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:19:52,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:19:52,135 [DEBUG][       Thread-604429][   transport.py][1871] : EOF in transport thread
2025-07-01 12:19:53,185 [DEBUG][Thread-604431 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:20:02,136 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:20:02,136 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:20:02,136 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:20:02,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-07-01 12:20:02,206 [DEBUG][Thread-604432 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:20:02,621 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 19, 53), 10.25, 49.42, 0.0, 35.55, 11.64, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:20:02,621 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:19:53
2025-07-01 12:20:02,711 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:20:02,715 [DEBUG][       Thread-604433][   transport.py][1871] : starting thread (client mode): 0x82b09d0
2025-07-01 12:20:02,715 [DEBUG][       Thread-604433][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:20:02,735 [DEBUG][       Thread-604433][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:20:02,735 [ INFO][       Thread-604433][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:20:02,738 [DEBUG][       Thread-604433][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:20:02,738 [DEBUG][       Thread-604433][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:20:02,738 [DEBUG][       Thread-604433][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:20:02,738 [DEBUG][       Thread-604433][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:20:02,738 [DEBUG][       Thread-604433][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:20:02,738 [DEBUG][       Thread-604433][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:20:02,738 [DEBUG][       Thread-604433][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:20:02,738 [DEBUG][       Thread-604433][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:20:02,738 [DEBUG][       Thread-604433][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:20:02,738 [DEBUG][       Thread-604433][   transport.py][1871] : client lang: <none>
2025-07-01 12:20:02,738 [DEBUG][       Thread-604433][   transport.py][1871] : server lang: <none>
2025-07-01 12:20:02,738 [DEBUG][       Thread-604433][   transport.py][1871] : kex follows: False
2025-07-01 12:20:02,738 [DEBUG][       Thread-604433][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:20:02,738 [DEBUG][       Thread-604433][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:20:02,738 [DEBUG][       Thread-604433][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:20:02,738 [DEBUG][       Thread-604433][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:20:02,738 [DEBUG][       Thread-604433][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:20:02,738 [DEBUG][       Thread-604433][   transport.py][1871] : Compression: none
2025-07-01 12:20:02,738 [DEBUG][       Thread-604433][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:20:02,755 [DEBUG][       Thread-604433][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:20:02,755 [DEBUG][       Thread-604433][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:20:02,755 [DEBUG][       Thread-604433][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:20:02,755 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:20:02,755 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:20:02,756 [DEBUG][       Thread-604433][   transport.py][1871] : userauth is OK
2025-07-01 12:20:02,779 [ INFO][       Thread-604433][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:20:02,780 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:20:03,417 [DEBUG][       Thread-604433][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:20:03,417 [DEBUG][       Thread-604433][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:20:03,460 [DEBUG][       Thread-604433][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:20:03,460 [DEBUG][       Thread-604433][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:20:03,462 [DEBUG][       Thread-604433][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:20:03,474 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:20:03,474 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:20:03,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:20:03,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:20:03,478 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:20:03,479 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:20:03,479 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:20:03,479 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:20:03,479 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.430152 -999.00  +11.60  40.00     53   +2.40 1 1 2 1 1   888    0 9.10 10.46 ----- 40.0 40.0 46.2 54.8 14.8 -24.7 13.9 -24.8 13.7 -23.1 14.5 -23.1
2025-07-01 12:20:03,479 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:20:03,479 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:20:03,479 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.430152
2025-07-01 12:20:03,480 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:20:03,480 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:20:03,480 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:20:03,480 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:20:03,480 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:20:03,480 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:19:53', tmtdew=10.25, humidity=49.42, cloud=0.0, wind=35.55, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:19:25.133', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:20:03,480 [DEBUG][       Thread-604433][   transport.py][1871] : EOF in transport thread
2025-07-01 12:20:03,554 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:20:03,564 [DEBUG][       Thread-604436][   transport.py][1871] : starting thread (client mode): 0x83c86a0
2025-07-01 12:20:03,564 [DEBUG][       Thread-604436][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:20:03,579 [DEBUG][       Thread-604436][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:20:03,579 [ INFO][       Thread-604436][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:20:03,586 [DEBUG][       Thread-604436][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:20:03,586 [DEBUG][       Thread-604436][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:20:03,587 [DEBUG][       Thread-604436][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:20:03,587 [DEBUG][       Thread-604436][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:20:03,587 [DEBUG][       Thread-604436][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:20:03,587 [DEBUG][       Thread-604436][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:20:03,587 [DEBUG][       Thread-604436][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:20:03,587 [DEBUG][       Thread-604436][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:20:03,587 [DEBUG][       Thread-604436][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:20:03,587 [DEBUG][       Thread-604436][   transport.py][1871] : client lang: <none>
2025-07-01 12:20:03,587 [DEBUG][       Thread-604436][   transport.py][1871] : server lang: <none>
2025-07-01 12:20:03,587 [DEBUG][       Thread-604436][   transport.py][1871] : kex follows: False
2025-07-01 12:20:03,587 [DEBUG][       Thread-604436][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:20:03,587 [DEBUG][       Thread-604436][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:20:03,587 [DEBUG][       Thread-604436][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:20:03,587 [DEBUG][       Thread-604436][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:20:03,587 [DEBUG][       Thread-604436][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:20:03,587 [DEBUG][       Thread-604436][   transport.py][1871] : Compression: none
2025-07-01 12:20:03,587 [DEBUG][       Thread-604436][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:20:03,648 [DEBUG][       Thread-604436][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:20:03,648 [DEBUG][       Thread-604436][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:20:03,648 [DEBUG][       Thread-604436][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:20:03,648 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:20:03,648 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:20:03,704 [DEBUG][       Thread-604436][   transport.py][1871] : userauth is OK
2025-07-01 12:20:03,704 [DEBUG][       Thread-604436][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:20:03,704 [DEBUG][       Thread-604436][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:20:03,704 [DEBUG][       Thread-604436][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:20:03,704 [DEBUG][       Thread-604436][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:20:03,718 [ INFO][       Thread-604436][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:20:03,718 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:20:03,719 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:20:04,739 [DEBUG][       Thread-604436][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:20:04,739 [DEBUG][       Thread-604436][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:20:04,787 [DEBUG][       Thread-604436][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:20:04,787 [DEBUG][       Thread-604436][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:20:04,796 [DEBUG][       Thread-604436][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:20:04,804 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:20:04,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-07-01 12:20:04,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-07-01 12:20:04,820 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:20:04,820 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:20:04,821 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:20:04,828 [DEBUG][       Thread-604436][   transport.py][1871] : EOF in transport thread
2025-07-01 12:20:11,225 [DEBUG][Thread-604438 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:20:14,831 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:20:14,831 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:20:14,831 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:20:14,834 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:20:14,989 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:20:14,989 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:20:15,313 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 19, 53), 10.25, 49.42, 0.0, 35.55, 11.64, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:20:15,313 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:19:53
2025-07-01 12:20:15,397 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:20:15,403 [DEBUG][       Thread-604439][   transport.py][1871] : starting thread (client mode): 0x8154f40
2025-07-01 12:20:15,403 [DEBUG][       Thread-604439][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:20:15,423 [DEBUG][       Thread-604439][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:20:15,423 [ INFO][       Thread-604439][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:20:15,427 [DEBUG][       Thread-604439][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:20:15,427 [DEBUG][       Thread-604439][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:20:15,427 [DEBUG][       Thread-604439][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:20:15,427 [DEBUG][       Thread-604439][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:20:15,427 [DEBUG][       Thread-604439][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:20:15,427 [DEBUG][       Thread-604439][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:20:15,427 [DEBUG][       Thread-604439][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:20:15,427 [DEBUG][       Thread-604439][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:20:15,427 [DEBUG][       Thread-604439][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:20:15,427 [DEBUG][       Thread-604439][   transport.py][1871] : client lang: <none>
2025-07-01 12:20:15,427 [DEBUG][       Thread-604439][   transport.py][1871] : server lang: <none>
2025-07-01 12:20:15,427 [DEBUG][       Thread-604439][   transport.py][1871] : kex follows: False
2025-07-01 12:20:15,427 [DEBUG][       Thread-604439][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:20:15,427 [DEBUG][       Thread-604439][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:20:15,427 [DEBUG][       Thread-604439][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:20:15,427 [DEBUG][       Thread-604439][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:20:15,427 [DEBUG][       Thread-604439][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:20:15,427 [DEBUG][       Thread-604439][   transport.py][1871] : Compression: none
2025-07-01 12:20:15,427 [DEBUG][       Thread-604439][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:20:15,446 [DEBUG][       Thread-604439][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:20:15,446 [DEBUG][       Thread-604439][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:20:15,447 [DEBUG][       Thread-604439][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:20:15,447 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:20:15,447 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:20:15,448 [DEBUG][       Thread-604439][   transport.py][1871] : userauth is OK
2025-07-01 12:20:15,461 [ INFO][       Thread-604439][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:20:15,462 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:20:16,018 [DEBUG][       Thread-604439][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:20:16,018 [DEBUG][       Thread-604439][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:20:16,061 [DEBUG][       Thread-604439][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:20:16,061 [DEBUG][       Thread-604439][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:20:16,064 [DEBUG][       Thread-604439][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:20:16,077 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:20:16,078 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:20:16,080 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:20:16,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:20:16,087 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:20:16,089 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:20:16,089 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:20:16,090 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:20:16,090 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.430499 -999.00  +11.60  31.34     53   +2.50 1 1 2 1 1   888    0 9.22 12.41 ----- 31.3 31.3 35.8 43.1 14.8 -24.7 13.9 -24.6 13.6 -23.1 14.4 -23.1
2025-07-01 12:20:16,090 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:20:16,090 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:20:16,090 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.430499
2025-07-01 12:20:16,091 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:20:16,091 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:20:16,091 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:20:16,091 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:20:16,091 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:20:16,092 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:19:53', tmtdew=10.25, humidity=49.42, cloud=0.0, wind=35.55, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:19:55.114', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:20:16,092 [DEBUG][       Thread-604439][   transport.py][1871] : EOF in transport thread
2025-07-01 12:20:16,175 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:20:16,187 [DEBUG][       Thread-604442][   transport.py][1871] : starting thread (client mode): 0x8106da0
2025-07-01 12:20:16,187 [DEBUG][       Thread-604442][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:20:16,202 [DEBUG][       Thread-604442][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:20:16,203 [ INFO][       Thread-604442][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:20:16,210 [DEBUG][       Thread-604442][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:20:16,210 [DEBUG][       Thread-604442][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:20:16,211 [DEBUG][       Thread-604442][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:20:16,211 [DEBUG][       Thread-604442][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:20:16,211 [DEBUG][       Thread-604442][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:20:16,211 [DEBUG][       Thread-604442][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:20:16,211 [DEBUG][       Thread-604442][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:20:16,211 [DEBUG][       Thread-604442][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:20:16,211 [DEBUG][       Thread-604442][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:20:16,211 [DEBUG][       Thread-604442][   transport.py][1871] : client lang: <none>
2025-07-01 12:20:16,211 [DEBUG][       Thread-604442][   transport.py][1871] : server lang: <none>
2025-07-01 12:20:16,211 [DEBUG][       Thread-604442][   transport.py][1871] : kex follows: False
2025-07-01 12:20:16,211 [DEBUG][       Thread-604442][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:20:16,211 [DEBUG][       Thread-604442][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:20:16,211 [DEBUG][       Thread-604442][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:20:16,211 [DEBUG][       Thread-604442][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:20:16,211 [DEBUG][       Thread-604442][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:20:16,211 [DEBUG][       Thread-604442][   transport.py][1871] : Compression: none
2025-07-01 12:20:16,211 [DEBUG][       Thread-604442][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:20:16,273 [DEBUG][       Thread-604442][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:20:16,274 [DEBUG][       Thread-604442][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:20:16,274 [DEBUG][       Thread-604442][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:20:16,274 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:20:16,275 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:20:16,337 [DEBUG][       Thread-604442][   transport.py][1871] : userauth is OK
2025-07-01 12:20:16,337 [DEBUG][       Thread-604442][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:20:16,337 [DEBUG][       Thread-604442][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:20:16,338 [DEBUG][       Thread-604442][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:20:16,338 [DEBUG][       Thread-604442][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:20:16,358 [ INFO][       Thread-604442][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:20:16,359 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:20:16,359 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:20:17,433 [DEBUG][       Thread-604442][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:20:17,433 [DEBUG][       Thread-604442][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:20:17,484 [DEBUG][       Thread-604442][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:20:17,484 [DEBUG][       Thread-604442][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:20:17,493 [DEBUG][       Thread-604442][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:20:17,502 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:20:17,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-07-01 12:20:17,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-07-01 12:20:17,521 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:20:17,522 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:20:17,522 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:20:17,530 [DEBUG][       Thread-604442][   transport.py][1871] : EOF in transport thread
2025-07-01 12:20:20,267 [DEBUG][Thread-604444 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:20:27,524 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:20:27,524 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:20:27,524 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:20:27,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-07-01 12:20:28,009 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 20, 24), 10.32, 49.3, 0.0, 30.52, 11.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:20:28,009 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:20:24
2025-07-01 12:20:28,093 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:20:28,099 [DEBUG][       Thread-604445][   transport.py][1871] : starting thread (client mode): 0x8157700
2025-07-01 12:20:28,099 [DEBUG][       Thread-604445][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:20:28,123 [DEBUG][       Thread-604445][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:20:28,124 [ INFO][       Thread-604445][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:20:28,127 [DEBUG][       Thread-604445][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:20:28,127 [DEBUG][       Thread-604445][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:20:28,127 [DEBUG][       Thread-604445][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:20:28,127 [DEBUG][       Thread-604445][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:20:28,127 [DEBUG][       Thread-604445][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:20:28,128 [DEBUG][       Thread-604445][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:20:28,128 [DEBUG][       Thread-604445][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:20:28,128 [DEBUG][       Thread-604445][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:20:28,128 [DEBUG][       Thread-604445][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:20:28,128 [DEBUG][       Thread-604445][   transport.py][1871] : client lang: <none>
2025-07-01 12:20:28,128 [DEBUG][       Thread-604445][   transport.py][1871] : server lang: <none>
2025-07-01 12:20:28,128 [DEBUG][       Thread-604445][   transport.py][1871] : kex follows: False
2025-07-01 12:20:28,128 [DEBUG][       Thread-604445][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:20:28,128 [DEBUG][       Thread-604445][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:20:28,128 [DEBUG][       Thread-604445][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:20:28,128 [DEBUG][       Thread-604445][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:20:28,128 [DEBUG][       Thread-604445][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:20:28,128 [DEBUG][       Thread-604445][   transport.py][1871] : Compression: none
2025-07-01 12:20:28,128 [DEBUG][       Thread-604445][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:20:28,137 [DEBUG][       Thread-604445][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:20:28,138 [DEBUG][       Thread-604445][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:20:28,138 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:20:28,139 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:20:28,139 [DEBUG][       Thread-604445][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:20:28,140 [DEBUG][       Thread-604445][   transport.py][1871] : userauth is OK
2025-07-01 12:20:28,153 [ INFO][       Thread-604445][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:20:28,154 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:20:28,811 [DEBUG][       Thread-604445][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:20:28,811 [DEBUG][       Thread-604445][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:20:28,824 [DEBUG][Thread-604447 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:20:28,853 [DEBUG][       Thread-604445][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:20:28,853 [DEBUG][       Thread-604445][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:20:28,856 [DEBUG][       Thread-604445][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:20:28,869 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:20:28,869 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:20:28,871 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:20:28,873 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:20:28,878 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:20:28,880 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:20:28,880 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:20:28,881 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:20:28,881 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.430499 -999.00  +11.60  31.34     53   +2.50 1 1 2 1 1   888    0 9.22 12.41 ----- 31.3 31.3 35.8 43.1 14.8 -24.7 13.9 -24.6 13.6 -23.1 14.4 -23.1
2025-07-01 12:20:28,881 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:20:28,881 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:20:28,881 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.430499
2025-07-01 12:20:28,882 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:20:28,882 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:20:28,882 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:20:28,882 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:20:28,882 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:20:28,882 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:20:24', tmtdew=10.32, humidity=49.3, cloud=0.0, wind=30.52, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:19:55.114', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:20:28,883 [DEBUG][       Thread-604445][   transport.py][1871] : EOF in transport thread
2025-07-01 12:20:28,964 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:20:28,976 [DEBUG][       Thread-604449][   transport.py][1871] : starting thread (client mode): 0x83c8220
2025-07-01 12:20:28,976 [DEBUG][       Thread-604449][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:20:28,991 [DEBUG][       Thread-604449][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:20:28,991 [ INFO][       Thread-604449][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:20:28,999 [DEBUG][       Thread-604449][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:20:28,999 [DEBUG][       Thread-604449][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:20:28,999 [DEBUG][       Thread-604449][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:20:28,999 [DEBUG][       Thread-604449][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:20:28,999 [DEBUG][       Thread-604449][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:20:28,999 [DEBUG][       Thread-604449][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:20:29,000 [DEBUG][       Thread-604449][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:20:29,000 [DEBUG][       Thread-604449][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:20:29,000 [DEBUG][       Thread-604449][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:20:29,000 [DEBUG][       Thread-604449][   transport.py][1871] : client lang: <none>
2025-07-01 12:20:29,000 [DEBUG][       Thread-604449][   transport.py][1871] : server lang: <none>
2025-07-01 12:20:29,000 [DEBUG][       Thread-604449][   transport.py][1871] : kex follows: False
2025-07-01 12:20:29,000 [DEBUG][       Thread-604449][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:20:29,000 [DEBUG][       Thread-604449][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:20:29,000 [DEBUG][       Thread-604449][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:20:29,000 [DEBUG][       Thread-604449][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:20:29,000 [DEBUG][       Thread-604449][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:20:29,000 [DEBUG][       Thread-604449][   transport.py][1871] : Compression: none
2025-07-01 12:20:29,000 [DEBUG][       Thread-604449][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:20:29,057 [DEBUG][       Thread-604449][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:20:29,058 [DEBUG][       Thread-604449][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:20:29,058 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:20:29,059 [DEBUG][       Thread-604449][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:20:29,059 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:20:29,119 [DEBUG][       Thread-604449][   transport.py][1871] : userauth is OK
2025-07-01 12:20:29,119 [DEBUG][       Thread-604449][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:20:29,119 [DEBUG][       Thread-604449][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:20:29,120 [DEBUG][       Thread-604449][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:20:29,120 [DEBUG][       Thread-604449][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:20:29,138 [ INFO][       Thread-604449][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:20:29,139 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:20:29,139 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:20:29,287 [DEBUG][Thread-604451 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:20:30,139 [DEBUG][       Thread-604449][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:20:30,140 [DEBUG][       Thread-604449][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:20:30,188 [DEBUG][       Thread-604449][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:20:30,188 [DEBUG][       Thread-604449][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:20:30,198 [DEBUG][       Thread-604449][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:20:30,206 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:20:30,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-07-01 12:20:30,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-07-01 12:20:30,224 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:20:30,224 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:20:30,225 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:20:30,232 [DEBUG][       Thread-604449][   transport.py][1871] : EOF in transport thread
2025-07-01 12:20:38,319 [DEBUG][Thread-604452 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:20:40,235 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:20:40,235 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:20:40,235 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:20:40,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-07-01 12:20:40,745 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 20, 24), 10.32, 49.3, 0.0, 30.52, 11.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:20:40,745 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:20:24
2025-07-01 12:20:40,834 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:20:40,838 [DEBUG][       Thread-604453][   transport.py][1871] : starting thread (client mode): 0x82b26b0
2025-07-01 12:20:40,838 [DEBUG][       Thread-604453][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:20:40,858 [DEBUG][       Thread-604453][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:20:40,858 [ INFO][       Thread-604453][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:20:40,862 [DEBUG][       Thread-604453][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:20:40,862 [DEBUG][       Thread-604453][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:20:40,862 [DEBUG][       Thread-604453][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:20:40,862 [DEBUG][       Thread-604453][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:20:40,862 [DEBUG][       Thread-604453][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:20:40,862 [DEBUG][       Thread-604453][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:20:40,862 [DEBUG][       Thread-604453][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:20:40,862 [DEBUG][       Thread-604453][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:20:40,862 [DEBUG][       Thread-604453][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:20:40,862 [DEBUG][       Thread-604453][   transport.py][1871] : client lang: <none>
2025-07-01 12:20:40,862 [DEBUG][       Thread-604453][   transport.py][1871] : server lang: <none>
2025-07-01 12:20:40,862 [DEBUG][       Thread-604453][   transport.py][1871] : kex follows: False
2025-07-01 12:20:40,862 [DEBUG][       Thread-604453][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:20:40,862 [DEBUG][       Thread-604453][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:20:40,862 [DEBUG][       Thread-604453][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:20:40,862 [DEBUG][       Thread-604453][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:20:40,862 [DEBUG][       Thread-604453][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:20:40,862 [DEBUG][       Thread-604453][   transport.py][1871] : Compression: none
2025-07-01 12:20:40,862 [DEBUG][       Thread-604453][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:20:40,878 [DEBUG][       Thread-604453][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:20:40,878 [DEBUG][       Thread-604453][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:20:40,879 [DEBUG][       Thread-604453][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:20:40,879 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:20:40,879 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:20:40,879 [DEBUG][       Thread-604453][   transport.py][1871] : userauth is OK
2025-07-01 12:20:40,903 [ INFO][       Thread-604453][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:20:40,904 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:20:41,562 [DEBUG][       Thread-604453][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:20:41,562 [DEBUG][       Thread-604453][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:20:41,604 [DEBUG][       Thread-604453][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:20:41,604 [DEBUG][       Thread-604453][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:20:41,606 [DEBUG][       Thread-604453][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:20:41,618 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:20:41,618 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:20:41,619 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:20:41,620 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:20:41,623 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:20:41,624 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:20:41,624 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:20:41,624 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:20:41,624 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.430499 -999.00  +11.60  31.34     53   +2.50 1 1 2 1 1   888    0 9.22 12.41 ----- 31.3 31.3 35.8 43.1 14.8 -24.7 13.9 -24.6 13.6 -23.1 14.4 -23.1
2025-07-01 12:20:41,624 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:20:41,624 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:20:41,624 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.430499
2025-07-01 12:20:41,624 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:20:41,624 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:20:41,624 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:20:41,624 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:20:41,624 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:20:41,624 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:20:24', tmtdew=10.32, humidity=49.3, cloud=0.0, wind=30.52, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:19:55.114', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:20:41,625 [DEBUG][       Thread-604453][   transport.py][1871] : EOF in transport thread
2025-07-01 12:20:41,699 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:20:41,708 [DEBUG][       Thread-604456][   transport.py][1871] : starting thread (client mode): 0x8157f70
2025-07-01 12:20:41,708 [DEBUG][       Thread-604456][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:20:41,723 [DEBUG][       Thread-604456][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:20:41,723 [ INFO][       Thread-604456][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:20:41,730 [DEBUG][       Thread-604456][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:20:41,730 [DEBUG][       Thread-604456][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:20:41,730 [DEBUG][       Thread-604456][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:20:41,730 [DEBUG][       Thread-604456][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:20:41,730 [DEBUG][       Thread-604456][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:20:41,730 [DEBUG][       Thread-604456][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:20:41,730 [DEBUG][       Thread-604456][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:20:41,730 [DEBUG][       Thread-604456][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:20:41,730 [DEBUG][       Thread-604456][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:20:41,730 [DEBUG][       Thread-604456][   transport.py][1871] : client lang: <none>
2025-07-01 12:20:41,730 [DEBUG][       Thread-604456][   transport.py][1871] : server lang: <none>
2025-07-01 12:20:41,730 [DEBUG][       Thread-604456][   transport.py][1871] : kex follows: False
2025-07-01 12:20:41,730 [DEBUG][       Thread-604456][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:20:41,731 [DEBUG][       Thread-604456][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:20:41,731 [DEBUG][       Thread-604456][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:20:41,731 [DEBUG][       Thread-604456][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:20:41,731 [DEBUG][       Thread-604456][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:20:41,731 [DEBUG][       Thread-604456][   transport.py][1871] : Compression: none
2025-07-01 12:20:41,731 [DEBUG][       Thread-604456][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:20:41,788 [DEBUG][       Thread-604456][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:20:41,788 [DEBUG][       Thread-604456][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:20:41,788 [DEBUG][       Thread-604456][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:20:41,788 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:20:41,789 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:20:41,845 [DEBUG][       Thread-604456][   transport.py][1871] : userauth is OK
2025-07-01 12:20:41,845 [DEBUG][       Thread-604456][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:20:41,845 [DEBUG][       Thread-604456][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:20:41,845 [DEBUG][       Thread-604456][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:20:41,845 [DEBUG][       Thread-604456][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:20:41,861 [ INFO][       Thread-604456][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:20:41,861 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:20:41,862 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:20:42,895 [DEBUG][       Thread-604456][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:20:42,895 [DEBUG][       Thread-604456][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:20:42,943 [DEBUG][       Thread-604456][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:20:42,943 [DEBUG][       Thread-604456][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:20:42,951 [DEBUG][       Thread-604456][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:20:42,959 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:20:42,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-07-01 12:20:42,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-07-01 12:20:42,975 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:20:42,975 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:20:42,975 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:20:42,983 [DEBUG][       Thread-604456][   transport.py][1871] : EOF in transport thread
2025-07-01 12:20:47,341 [DEBUG][Thread-604458 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:20:52,985 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:20:52,985 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:20:52,986 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:20:52,988 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:20:53,468 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 20, 24), 10.32, 49.3, 0.0, 30.52, 11.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:20:53,468 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:20:24
2025-07-01 12:20:53,552 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:20:53,558 [DEBUG][       Thread-604459][   transport.py][1871] : starting thread (client mode): 0x8104df0
2025-07-01 12:20:53,558 [DEBUG][       Thread-604459][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:20:53,578 [DEBUG][       Thread-604459][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:20:53,578 [ INFO][       Thread-604459][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:20:53,582 [DEBUG][       Thread-604459][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:20:53,582 [DEBUG][       Thread-604459][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:20:53,582 [DEBUG][       Thread-604459][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:20:53,582 [DEBUG][       Thread-604459][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:20:53,582 [DEBUG][       Thread-604459][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:20:53,582 [DEBUG][       Thread-604459][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:20:53,582 [DEBUG][       Thread-604459][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:20:53,582 [DEBUG][       Thread-604459][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:20:53,582 [DEBUG][       Thread-604459][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:20:53,582 [DEBUG][       Thread-604459][   transport.py][1871] : client lang: <none>
2025-07-01 12:20:53,582 [DEBUG][       Thread-604459][   transport.py][1871] : server lang: <none>
2025-07-01 12:20:53,582 [DEBUG][       Thread-604459][   transport.py][1871] : kex follows: False
2025-07-01 12:20:53,582 [DEBUG][       Thread-604459][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:20:53,582 [DEBUG][       Thread-604459][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:20:53,582 [DEBUG][       Thread-604459][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:20:53,582 [DEBUG][       Thread-604459][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:20:53,582 [DEBUG][       Thread-604459][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:20:53,582 [DEBUG][       Thread-604459][   transport.py][1871] : Compression: none
2025-07-01 12:20:53,582 [DEBUG][       Thread-604459][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:20:53,597 [DEBUG][       Thread-604459][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:20:53,598 [DEBUG][       Thread-604459][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:20:53,598 [DEBUG][       Thread-604459][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:20:53,598 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:20:53,598 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:20:53,600 [DEBUG][       Thread-604459][   transport.py][1871] : userauth is OK
2025-07-01 12:20:53,625 [ INFO][       Thread-604459][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:20:53,626 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:20:54,223 [DEBUG][       Thread-604459][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:20:54,223 [DEBUG][       Thread-604459][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:20:54,265 [DEBUG][       Thread-604459][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:20:54,265 [DEBUG][       Thread-604459][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:20:54,267 [DEBUG][       Thread-604459][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:20:54,279 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:20:54,279 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:20:54,281 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:20:54,282 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:20:54,287 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:20:54,288 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:20:54,289 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:20:54,289 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:20:54,290 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.430846 -999.00  +11.70  34.77     54   +2.70 1 1 2 1 1   888    0 9.02 12.54 ----- 34.8 34.8 25.6 42.7 14.8 -24.5 13.9 -24.1 13.6 -23.3 14.4 -23.0
2025-07-01 12:20:54,290 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:20:54,290 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:20:54,290 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.430846
2025-07-01 12:20:54,290 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:20:54,291 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:20:54,291 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:20:54,291 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:20:54,291 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:20:54,291 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:20:24', tmtdew=10.32, humidity=49.3, cloud=0.0, wind=30.52, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:20:25.094', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:20:54,291 [DEBUG][       Thread-604459][   transport.py][1871] : EOF in transport thread
2025-07-01 12:20:54,375 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:20:54,386 [DEBUG][       Thread-604462][   transport.py][1871] : starting thread (client mode): 0x8a65e70
2025-07-01 12:20:54,386 [DEBUG][       Thread-604462][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:20:54,401 [DEBUG][       Thread-604462][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:20:54,401 [ INFO][       Thread-604462][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:20:54,409 [DEBUG][       Thread-604462][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:20:54,409 [DEBUG][       Thread-604462][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:20:54,409 [DEBUG][       Thread-604462][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:20:54,409 [DEBUG][       Thread-604462][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:20:54,409 [DEBUG][       Thread-604462][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:20:54,409 [DEBUG][       Thread-604462][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:20:54,409 [DEBUG][       Thread-604462][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:20:54,409 [DEBUG][       Thread-604462][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:20:54,409 [DEBUG][       Thread-604462][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:20:54,409 [DEBUG][       Thread-604462][   transport.py][1871] : client lang: <none>
2025-07-01 12:20:54,409 [DEBUG][       Thread-604462][   transport.py][1871] : server lang: <none>
2025-07-01 12:20:54,409 [DEBUG][       Thread-604462][   transport.py][1871] : kex follows: False
2025-07-01 12:20:54,409 [DEBUG][       Thread-604462][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:20:54,409 [DEBUG][       Thread-604462][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:20:54,409 [DEBUG][       Thread-604462][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:20:54,409 [DEBUG][       Thread-604462][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:20:54,409 [DEBUG][       Thread-604462][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:20:54,409 [DEBUG][       Thread-604462][   transport.py][1871] : Compression: none
2025-07-01 12:20:54,409 [DEBUG][       Thread-604462][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:20:54,464 [DEBUG][       Thread-604462][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:20:54,464 [DEBUG][       Thread-604462][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:20:54,464 [DEBUG][       Thread-604462][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:20:54,465 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:20:54,465 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:20:54,522 [DEBUG][       Thread-604462][   transport.py][1871] : userauth is OK
2025-07-01 12:20:54,522 [DEBUG][       Thread-604462][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:20:54,522 [DEBUG][       Thread-604462][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:20:54,523 [DEBUG][       Thread-604462][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:20:54,523 [DEBUG][       Thread-604462][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:20:54,542 [ INFO][       Thread-604462][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:20:54,542 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:20:54,543 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:20:55,517 [DEBUG][       Thread-604462][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:20:55,517 [DEBUG][       Thread-604462][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:20:55,567 [DEBUG][       Thread-604462][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:20:55,568 [DEBUG][       Thread-604462][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:20:55,577 [DEBUG][       Thread-604462][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:20:55,586 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:20:55,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-07-01 12:20:55,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') -> 00000000
2025-07-01 12:20:55,604 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:20:55,604 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:20:55,605 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:20:55,613 [DEBUG][       Thread-604462][   transport.py][1871] : EOF in transport thread
2025-07-01 12:20:56,363 [DEBUG][Thread-604464 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:21:05,390 [DEBUG][Thread-604465 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:21:05,612 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:21:05,612 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:21:05,612 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:21:05,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-07-01 12:21:06,105 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 20, 56), 10.24, 49.57, 0.0, 31.79, 11.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:21:06,105 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:20:56
2025-07-01 12:21:06,188 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:21:06,192 [DEBUG][       Thread-604466][   transport.py][1871] : starting thread (client mode): 0x82b2170
2025-07-01 12:21:06,192 [DEBUG][       Thread-604466][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:21:06,212 [DEBUG][       Thread-604466][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:21:06,212 [ INFO][       Thread-604466][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:21:06,215 [DEBUG][       Thread-604466][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:21:06,215 [DEBUG][       Thread-604466][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:21:06,216 [DEBUG][       Thread-604466][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:21:06,216 [DEBUG][       Thread-604466][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:21:06,216 [DEBUG][       Thread-604466][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:21:06,216 [DEBUG][       Thread-604466][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:21:06,216 [DEBUG][       Thread-604466][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:21:06,216 [DEBUG][       Thread-604466][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:21:06,216 [DEBUG][       Thread-604466][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:21:06,216 [DEBUG][       Thread-604466][   transport.py][1871] : client lang: <none>
2025-07-01 12:21:06,216 [DEBUG][       Thread-604466][   transport.py][1871] : server lang: <none>
2025-07-01 12:21:06,216 [DEBUG][       Thread-604466][   transport.py][1871] : kex follows: False
2025-07-01 12:21:06,216 [DEBUG][       Thread-604466][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:21:06,216 [DEBUG][       Thread-604466][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:21:06,216 [DEBUG][       Thread-604466][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:21:06,216 [DEBUG][       Thread-604466][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:21:06,216 [DEBUG][       Thread-604466][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:21:06,216 [DEBUG][       Thread-604466][   transport.py][1871] : Compression: none
2025-07-01 12:21:06,216 [DEBUG][       Thread-604466][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:21:06,233 [DEBUG][       Thread-604466][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:21:06,233 [DEBUG][       Thread-604466][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:21:06,234 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:21:06,234 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:21:06,235 [DEBUG][       Thread-604466][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:21:06,235 [DEBUG][       Thread-604466][   transport.py][1871] : userauth is OK
2025-07-01 12:21:06,249 [ INFO][       Thread-604466][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:21:06,250 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:21:06,880 [DEBUG][       Thread-604466][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:21:06,880 [DEBUG][       Thread-604466][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:21:06,924 [DEBUG][       Thread-604466][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:21:06,924 [DEBUG][       Thread-604466][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:21:06,927 [DEBUG][       Thread-604466][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:21:06,938 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:21:06,938 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:21:06,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:21:06,941 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:21:06,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:21:06,946 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:21:06,946 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:21:06,947 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:21:06,947 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.430846 -999.00  +11.70  34.77     54   +2.70 1 1 2 1 1   888    0 9.02 12.54 ----- 34.8 34.8 25.6 42.7 14.8 -24.5 13.9 -24.1 13.6 -23.3 14.4 -23.0
2025-07-01 12:21:06,947 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:21:06,947 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:21:06,947 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.430846
2025-07-01 12:21:06,947 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:21:06,947 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:21:06,948 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:21:06,948 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:21:06,948 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:21:06,948 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:20:56', tmtdew=10.24, humidity=49.57, cloud=0.0, wind=31.79, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:20:25.094', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:21:06,949 [DEBUG][       Thread-604466][   transport.py][1871] : EOF in transport thread
2025-07-01 12:21:07,031 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:21:07,048 [DEBUG][       Thread-604469][   transport.py][1871] : starting thread (client mode): 0x8155030
2025-07-01 12:21:07,048 [DEBUG][       Thread-604469][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:21:07,067 [DEBUG][       Thread-604469][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:21:07,067 [ INFO][       Thread-604469][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:21:07,074 [DEBUG][       Thread-604469][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:21:07,075 [DEBUG][       Thread-604469][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:21:07,075 [DEBUG][       Thread-604469][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:21:07,075 [DEBUG][       Thread-604469][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:21:07,075 [DEBUG][       Thread-604469][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:21:07,075 [DEBUG][       Thread-604469][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:21:07,075 [DEBUG][       Thread-604469][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:21:07,075 [DEBUG][       Thread-604469][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:21:07,075 [DEBUG][       Thread-604469][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:21:07,075 [DEBUG][       Thread-604469][   transport.py][1871] : client lang: <none>
2025-07-01 12:21:07,075 [DEBUG][       Thread-604469][   transport.py][1871] : server lang: <none>
2025-07-01 12:21:07,075 [DEBUG][       Thread-604469][   transport.py][1871] : kex follows: False
2025-07-01 12:21:07,075 [DEBUG][       Thread-604469][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:21:07,075 [DEBUG][       Thread-604469][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:21:07,075 [DEBUG][       Thread-604469][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:21:07,076 [DEBUG][       Thread-604469][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:21:07,076 [DEBUG][       Thread-604469][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:21:07,076 [DEBUG][       Thread-604469][   transport.py][1871] : Compression: none
2025-07-01 12:21:07,076 [DEBUG][       Thread-604469][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:21:07,134 [DEBUG][       Thread-604469][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:21:07,135 [DEBUG][       Thread-604469][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:21:07,136 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:21:07,136 [DEBUG][       Thread-604469][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:21:07,137 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:21:07,190 [DEBUG][       Thread-604469][   transport.py][1871] : userauth is OK
2025-07-01 12:21:07,191 [DEBUG][       Thread-604469][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:21:07,191 [DEBUG][       Thread-604469][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:21:07,191 [DEBUG][       Thread-604469][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:21:07,191 [DEBUG][       Thread-604469][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:21:07,212 [ INFO][       Thread-604469][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:21:07,213 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:21:07,213 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:21:08,214 [DEBUG][       Thread-604469][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:21:08,215 [DEBUG][       Thread-604469][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:21:08,264 [DEBUG][       Thread-604469][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:21:08,264 [DEBUG][       Thread-604469][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:21:08,273 [DEBUG][       Thread-604469][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:21:08,281 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:21:08,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-07-01 12:21:08,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') -> 00000000
2025-07-01 12:21:08,300 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:21:08,300 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:21:08,300 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:21:08,309 [DEBUG][       Thread-604469][   transport.py][1871] : EOF in transport thread
2025-07-01 12:21:14,412 [DEBUG][Thread-604471 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:21:15,127 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:21:15,128 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:21:18,303 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:21:18,303 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:21:18,303 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:21:18,304 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:21:18,816 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 20, 56), 10.24, 49.57, 0.0, 31.79, 11.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:21:18,816 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:20:56
2025-07-01 12:21:18,901 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:21:18,906 [DEBUG][       Thread-604472][   transport.py][1871] : starting thread (client mode): 0x82b34c0
2025-07-01 12:21:18,906 [DEBUG][       Thread-604472][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:21:18,927 [DEBUG][       Thread-604472][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:21:18,927 [ INFO][       Thread-604472][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:21:18,930 [DEBUG][       Thread-604472][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:21:18,930 [DEBUG][       Thread-604472][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:21:18,930 [DEBUG][       Thread-604472][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:21:18,930 [DEBUG][       Thread-604472][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:21:18,930 [DEBUG][       Thread-604472][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:21:18,930 [DEBUG][       Thread-604472][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:21:18,930 [DEBUG][       Thread-604472][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:21:18,930 [DEBUG][       Thread-604472][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:21:18,930 [DEBUG][       Thread-604472][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:21:18,930 [DEBUG][       Thread-604472][   transport.py][1871] : client lang: <none>
2025-07-01 12:21:18,930 [DEBUG][       Thread-604472][   transport.py][1871] : server lang: <none>
2025-07-01 12:21:18,930 [DEBUG][       Thread-604472][   transport.py][1871] : kex follows: False
2025-07-01 12:21:18,930 [DEBUG][       Thread-604472][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:21:18,930 [DEBUG][       Thread-604472][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:21:18,930 [DEBUG][       Thread-604472][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:21:18,930 [DEBUG][       Thread-604472][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:21:18,930 [DEBUG][       Thread-604472][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:21:18,930 [DEBUG][       Thread-604472][   transport.py][1871] : Compression: none
2025-07-01 12:21:18,930 [DEBUG][       Thread-604472][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:21:18,946 [DEBUG][       Thread-604472][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:21:18,946 [DEBUG][       Thread-604472][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:21:18,946 [DEBUG][       Thread-604472][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:21:18,946 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:21:18,946 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:21:18,947 [DEBUG][       Thread-604472][   transport.py][1871] : userauth is OK
2025-07-01 12:21:18,971 [ INFO][       Thread-604472][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:21:18,971 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:21:19,625 [DEBUG][       Thread-604472][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:21:19,625 [DEBUG][       Thread-604472][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:21:19,668 [DEBUG][       Thread-604472][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:21:19,668 [DEBUG][       Thread-604472][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:21:19,671 [DEBUG][       Thread-604472][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:21:19,682 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:21:19,682 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:21:19,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:21:19,684 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:21:19,687 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:21:19,688 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:21:19,688 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:21:19,688 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:21:19,688 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.430846 -999.00  +11.70  34.77     54   +2.70 1 1 2 1 1   888    0 9.02 12.54 ----- 34.8 34.8 25.6 42.7 14.8 -24.5 13.9 -24.1 13.6 -23.3 14.4 -23.0
2025-07-01 12:21:19,688 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:21:19,688 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:21:19,688 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.430846
2025-07-01 12:21:19,689 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:21:19,689 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:21:19,689 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:21:19,689 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:21:19,689 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:21:19,689 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:20:56', tmtdew=10.24, humidity=49.57, cloud=0.0, wind=31.79, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:20:25.094', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:21:19,689 [DEBUG][       Thread-604472][   transport.py][1871] : EOF in transport thread
2025-07-01 12:21:19,763 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:21:19,773 [DEBUG][       Thread-604475][   transport.py][1871] : starting thread (client mode): 0x83c8220
2025-07-01 12:21:19,773 [DEBUG][       Thread-604475][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:21:19,789 [DEBUG][       Thread-604475][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:21:19,790 [ INFO][       Thread-604475][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:21:19,797 [DEBUG][       Thread-604475][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:21:19,797 [DEBUG][       Thread-604475][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:21:19,797 [DEBUG][       Thread-604475][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:21:19,797 [DEBUG][       Thread-604475][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:21:19,797 [DEBUG][       Thread-604475][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:21:19,797 [DEBUG][       Thread-604475][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:21:19,797 [DEBUG][       Thread-604475][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:21:19,797 [DEBUG][       Thread-604475][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:21:19,797 [DEBUG][       Thread-604475][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:21:19,797 [DEBUG][       Thread-604475][   transport.py][1871] : client lang: <none>
2025-07-01 12:21:19,797 [DEBUG][       Thread-604475][   transport.py][1871] : server lang: <none>
2025-07-01 12:21:19,797 [DEBUG][       Thread-604475][   transport.py][1871] : kex follows: False
2025-07-01 12:21:19,797 [DEBUG][       Thread-604475][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:21:19,797 [DEBUG][       Thread-604475][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:21:19,797 [DEBUG][       Thread-604475][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:21:19,797 [DEBUG][       Thread-604475][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:21:19,797 [DEBUG][       Thread-604475][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:21:19,797 [DEBUG][       Thread-604475][   transport.py][1871] : Compression: none
2025-07-01 12:21:19,797 [DEBUG][       Thread-604475][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:21:19,853 [DEBUG][       Thread-604475][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:21:19,853 [DEBUG][       Thread-604475][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:21:19,853 [DEBUG][       Thread-604475][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:21:19,853 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:21:19,853 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:21:19,910 [DEBUG][       Thread-604475][   transport.py][1871] : userauth is OK
2025-07-01 12:21:19,910 [DEBUG][       Thread-604475][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:21:19,910 [DEBUG][       Thread-604475][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:21:19,910 [DEBUG][       Thread-604475][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:21:19,910 [DEBUG][       Thread-604475][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:21:19,924 [ INFO][       Thread-604475][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:21:19,924 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:21:19,924 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:21:20,909 [DEBUG][       Thread-604475][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:21:20,909 [DEBUG][       Thread-604475][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:21:20,959 [DEBUG][       Thread-604475][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:21:20,959 [DEBUG][       Thread-604475][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:21:20,968 [DEBUG][       Thread-604475][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:21:20,976 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:21:20,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-07-01 12:21:20,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-07-01 12:21:20,991 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:21:20,991 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:21:20,992 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:21:20,999 [DEBUG][       Thread-604475][   transport.py][1871] : EOF in transport thread
2025-07-01 12:21:23,447 [DEBUG][Thread-604477 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:21:28,872 [DEBUG][Thread-604478 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:21:30,996 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:21:30,996 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:21:30,996 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:21:30,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-07-01 12:21:31,477 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 21, 28), 10.33, 49.3, 0.0, 31.21, 11.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:21:31,477 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:21:28
2025-07-01 12:21:31,568 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:21:31,572 [DEBUG][       Thread-604479][   transport.py][1871] : starting thread (client mode): 0x82b25f0
2025-07-01 12:21:31,572 [DEBUG][       Thread-604479][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:21:31,592 [DEBUG][       Thread-604479][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:21:31,592 [ INFO][       Thread-604479][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:21:31,595 [DEBUG][       Thread-604479][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:21:31,595 [DEBUG][       Thread-604479][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:21:31,595 [DEBUG][       Thread-604479][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:21:31,596 [DEBUG][       Thread-604479][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:21:31,596 [DEBUG][       Thread-604479][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:21:31,596 [DEBUG][       Thread-604479][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:21:31,596 [DEBUG][       Thread-604479][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:21:31,596 [DEBUG][       Thread-604479][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:21:31,596 [DEBUG][       Thread-604479][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:21:31,596 [DEBUG][       Thread-604479][   transport.py][1871] : client lang: <none>
2025-07-01 12:21:31,596 [DEBUG][       Thread-604479][   transport.py][1871] : server lang: <none>
2025-07-01 12:21:31,596 [DEBUG][       Thread-604479][   transport.py][1871] : kex follows: False
2025-07-01 12:21:31,596 [DEBUG][       Thread-604479][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:21:31,596 [DEBUG][       Thread-604479][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:21:31,596 [DEBUG][       Thread-604479][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:21:31,596 [DEBUG][       Thread-604479][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:21:31,596 [DEBUG][       Thread-604479][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:21:31,596 [DEBUG][       Thread-604479][   transport.py][1871] : Compression: none
2025-07-01 12:21:31,596 [DEBUG][       Thread-604479][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:21:31,612 [DEBUG][       Thread-604479][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:21:31,612 [DEBUG][       Thread-604479][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:21:31,613 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:21:31,613 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:21:31,613 [DEBUG][       Thread-604479][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:21:31,654 [DEBUG][       Thread-604479][   transport.py][1871] : userauth is OK
2025-07-01 12:21:31,679 [ INFO][       Thread-604479][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:21:31,679 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:21:32,328 [DEBUG][       Thread-604479][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:21:32,328 [DEBUG][       Thread-604479][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:21:32,369 [DEBUG][       Thread-604479][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:21:32,369 [DEBUG][       Thread-604479][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:21:32,373 [DEBUG][       Thread-604479][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:21:32,384 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:21:32,384 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:21:32,386 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:21:32,388 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:21:32,394 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:21:32,396 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:21:32,396 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:21:32,397 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:21:32,397 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.431194 -999.00  +11.60  41.75     53   +2.50 1 1 2 1 1   888    0 9.18 14.91 ----- 41.8 41.8 34.4 55.4 14.8 -24.7 13.9 -24.8 13.7 -23.6 14.4 -24.0
2025-07-01 12:21:32,397 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:21:32,397 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:21:32,397 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.431194
2025-07-01 12:21:32,398 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:21:32,398 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:21:32,398 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:21:32,398 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:21:32,398 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:21:32,398 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:21:28', tmtdew=10.33, humidity=49.3, cloud=0.0, wind=31.21, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:20:55.162', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:21:32,399 [DEBUG][       Thread-604479][   transport.py][1871] : EOF in transport thread
2025-07-01 12:21:32,466 [DEBUG][Thread-604482 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:21:32,484 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:21:32,503 [DEBUG][       Thread-604483][   transport.py][1871] : starting thread (client mode): 0x827d9f0
2025-07-01 12:21:32,503 [DEBUG][       Thread-604483][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:21:32,522 [DEBUG][       Thread-604483][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:21:32,523 [ INFO][       Thread-604483][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:21:32,530 [DEBUG][       Thread-604483][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:21:32,530 [DEBUG][       Thread-604483][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:21:32,530 [DEBUG][       Thread-604483][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:21:32,531 [DEBUG][       Thread-604483][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:21:32,531 [DEBUG][       Thread-604483][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:21:32,531 [DEBUG][       Thread-604483][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:21:32,531 [DEBUG][       Thread-604483][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:21:32,531 [DEBUG][       Thread-604483][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:21:32,531 [DEBUG][       Thread-604483][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:21:32,531 [DEBUG][       Thread-604483][   transport.py][1871] : client lang: <none>
2025-07-01 12:21:32,531 [DEBUG][       Thread-604483][   transport.py][1871] : server lang: <none>
2025-07-01 12:21:32,531 [DEBUG][       Thread-604483][   transport.py][1871] : kex follows: False
2025-07-01 12:21:32,531 [DEBUG][       Thread-604483][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:21:32,531 [DEBUG][       Thread-604483][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:21:32,531 [DEBUG][       Thread-604483][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:21:32,531 [DEBUG][       Thread-604483][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:21:32,531 [DEBUG][       Thread-604483][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:21:32,531 [DEBUG][       Thread-604483][   transport.py][1871] : Compression: none
2025-07-01 12:21:32,531 [DEBUG][       Thread-604483][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:21:32,588 [DEBUG][       Thread-604483][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:21:32,588 [DEBUG][       Thread-604483][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:21:32,589 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:21:32,589 [DEBUG][       Thread-604483][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:21:32,590 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:21:32,644 [DEBUG][       Thread-604483][   transport.py][1871] : userauth is OK
2025-07-01 12:21:32,645 [DEBUG][       Thread-604483][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:21:32,645 [DEBUG][       Thread-604483][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:21:32,645 [DEBUG][       Thread-604483][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:21:32,645 [DEBUG][       Thread-604483][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:21:32,664 [ INFO][       Thread-604483][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:21:32,664 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:21:32,665 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:21:33,700 [DEBUG][       Thread-604483][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:21:33,700 [DEBUG][       Thread-604483][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:21:33,748 [DEBUG][       Thread-604483][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:21:33,748 [DEBUG][       Thread-604483][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:21:33,757 [DEBUG][       Thread-604483][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:21:33,766 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:21:33,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-07-01 12:21:33,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-07-01 12:21:33,784 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:21:33,784 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:21:33,784 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:21:33,792 [DEBUG][       Thread-604483][   transport.py][1871] : EOF in transport thread
2025-07-01 12:21:41,491 [DEBUG][Thread-604485 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:21:43,792 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:21:43,792 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:21:43,792 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:21:43,793 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:21:44,280 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 21, 28), 10.33, 49.3, 0.0, 31.21, 11.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:21:44,280 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:21:28
2025-07-01 12:21:44,360 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:21:44,364 [DEBUG][       Thread-604486][   transport.py][1871] : starting thread (client mode): 0x818c430
2025-07-01 12:21:44,364 [DEBUG][       Thread-604486][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:21:44,385 [DEBUG][       Thread-604486][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:21:44,385 [ INFO][       Thread-604486][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:21:44,389 [DEBUG][       Thread-604486][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:21:44,389 [DEBUG][       Thread-604486][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:21:44,389 [DEBUG][       Thread-604486][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:21:44,389 [DEBUG][       Thread-604486][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:21:44,389 [DEBUG][       Thread-604486][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:21:44,389 [DEBUG][       Thread-604486][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:21:44,389 [DEBUG][       Thread-604486][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:21:44,389 [DEBUG][       Thread-604486][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:21:44,389 [DEBUG][       Thread-604486][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:21:44,389 [DEBUG][       Thread-604486][   transport.py][1871] : client lang: <none>
2025-07-01 12:21:44,389 [DEBUG][       Thread-604486][   transport.py][1871] : server lang: <none>
2025-07-01 12:21:44,389 [DEBUG][       Thread-604486][   transport.py][1871] : kex follows: False
2025-07-01 12:21:44,389 [DEBUG][       Thread-604486][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:21:44,389 [DEBUG][       Thread-604486][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:21:44,389 [DEBUG][       Thread-604486][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:21:44,389 [DEBUG][       Thread-604486][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:21:44,389 [DEBUG][       Thread-604486][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:21:44,389 [DEBUG][       Thread-604486][   transport.py][1871] : Compression: none
2025-07-01 12:21:44,389 [DEBUG][       Thread-604486][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:21:44,405 [DEBUG][       Thread-604486][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:21:44,406 [DEBUG][       Thread-604486][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:21:44,406 [DEBUG][       Thread-604486][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:21:44,406 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:21:44,407 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:21:44,407 [DEBUG][       Thread-604486][   transport.py][1871] : userauth is OK
2025-07-01 12:21:44,432 [ INFO][       Thread-604486][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:21:44,433 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:21:45,069 [DEBUG][       Thread-604486][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:21:45,069 [DEBUG][       Thread-604486][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:21:45,113 [DEBUG][       Thread-604486][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:21:45,113 [DEBUG][       Thread-604486][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:21:45,116 [DEBUG][       Thread-604486][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:21:45,128 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:21:45,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:21:45,130 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:21:45,132 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:21:45,137 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:21:45,139 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:21:45,139 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:21:45,139 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:21:45,140 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.431194 -999.00  +11.60  41.75     53   +2.50 1 1 2 1 1   888    0 9.18 14.91 ----- 41.8 41.8 34.4 55.4 14.8 -24.7 13.9 -24.8 13.7 -23.6 14.4 -24.0
2025-07-01 12:21:45,140 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:21:45,140 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:21:45,140 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.431194
2025-07-01 12:21:45,140 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:21:45,141 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:21:45,141 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:21:45,141 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:21:45,141 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:21:45,141 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:21:28', tmtdew=10.33, humidity=49.3, cloud=0.0, wind=31.21, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:20:55.162', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:21:45,142 [DEBUG][       Thread-604486][   transport.py][1871] : EOF in transport thread
2025-07-01 12:21:45,225 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:21:45,234 [DEBUG][       Thread-604489][   transport.py][1871] : starting thread (client mode): 0x827d9f0
2025-07-01 12:21:45,234 [DEBUG][       Thread-604489][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:21:45,249 [DEBUG][       Thread-604489][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:21:45,249 [ INFO][       Thread-604489][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:21:45,257 [DEBUG][       Thread-604489][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:21:45,257 [DEBUG][       Thread-604489][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:21:45,257 [DEBUG][       Thread-604489][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:21:45,257 [DEBUG][       Thread-604489][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:21:45,257 [DEBUG][       Thread-604489][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:21:45,257 [DEBUG][       Thread-604489][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:21:45,257 [DEBUG][       Thread-604489][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:21:45,257 [DEBUG][       Thread-604489][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:21:45,257 [DEBUG][       Thread-604489][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:21:45,257 [DEBUG][       Thread-604489][   transport.py][1871] : client lang: <none>
2025-07-01 12:21:45,257 [DEBUG][       Thread-604489][   transport.py][1871] : server lang: <none>
2025-07-01 12:21:45,257 [DEBUG][       Thread-604489][   transport.py][1871] : kex follows: False
2025-07-01 12:21:45,257 [DEBUG][       Thread-604489][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:21:45,257 [DEBUG][       Thread-604489][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:21:45,258 [DEBUG][       Thread-604489][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:21:45,258 [DEBUG][       Thread-604489][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:21:45,258 [DEBUG][       Thread-604489][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:21:45,258 [DEBUG][       Thread-604489][   transport.py][1871] : Compression: none
2025-07-01 12:21:45,258 [DEBUG][       Thread-604489][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:21:45,315 [DEBUG][       Thread-604489][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:21:45,316 [DEBUG][       Thread-604489][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:21:45,316 [DEBUG][       Thread-604489][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:21:45,317 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:21:45,317 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:21:45,371 [DEBUG][       Thread-604489][   transport.py][1871] : userauth is OK
2025-07-01 12:21:45,371 [DEBUG][       Thread-604489][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:21:45,371 [DEBUG][       Thread-604489][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:21:45,372 [DEBUG][       Thread-604489][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:21:45,372 [DEBUG][       Thread-604489][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:21:45,391 [ INFO][       Thread-604489][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:21:45,391 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:21:45,391 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:21:46,400 [DEBUG][       Thread-604489][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:21:46,400 [DEBUG][       Thread-604489][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:21:46,447 [DEBUG][       Thread-604489][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:21:46,447 [DEBUG][       Thread-604489][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:21:46,456 [DEBUG][       Thread-604489][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:21:46,464 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:21:46,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-07-01 12:21:46,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-07-01 12:21:46,481 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:21:46,482 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:21:46,482 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:21:46,489 [DEBUG][       Thread-604489][   transport.py][1871] : EOF in transport thread
2025-07-01 12:21:50,510 [DEBUG][Thread-604491 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:21:56,492 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:21:56,493 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:21:56,493 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:21:56,496 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:21:57,019 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 21, 28), 10.33, 49.3, 0.0, 31.21, 11.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:21:57,019 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:21:28
2025-07-01 12:21:57,102 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:21:57,106 [DEBUG][       Thread-604492][   transport.py][1871] : starting thread (client mode): 0x81073a0
2025-07-01 12:21:57,106 [DEBUG][       Thread-604492][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:21:57,126 [DEBUG][       Thread-604492][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:21:57,126 [ INFO][       Thread-604492][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:21:57,130 [DEBUG][       Thread-604492][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:21:57,130 [DEBUG][       Thread-604492][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:21:57,130 [DEBUG][       Thread-604492][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:21:57,130 [DEBUG][       Thread-604492][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:21:57,130 [DEBUG][       Thread-604492][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:21:57,130 [DEBUG][       Thread-604492][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:21:57,130 [DEBUG][       Thread-604492][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:21:57,130 [DEBUG][       Thread-604492][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:21:57,130 [DEBUG][       Thread-604492][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:21:57,130 [DEBUG][       Thread-604492][   transport.py][1871] : client lang: <none>
2025-07-01 12:21:57,130 [DEBUG][       Thread-604492][   transport.py][1871] : server lang: <none>
2025-07-01 12:21:57,130 [DEBUG][       Thread-604492][   transport.py][1871] : kex follows: False
2025-07-01 12:21:57,130 [DEBUG][       Thread-604492][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:21:57,130 [DEBUG][       Thread-604492][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:21:57,130 [DEBUG][       Thread-604492][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:21:57,130 [DEBUG][       Thread-604492][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:21:57,130 [DEBUG][       Thread-604492][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:21:57,130 [DEBUG][       Thread-604492][   transport.py][1871] : Compression: none
2025-07-01 12:21:57,130 [DEBUG][       Thread-604492][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:21:57,137 [DEBUG][       Thread-604492][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:21:57,137 [DEBUG][       Thread-604492][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:21:57,137 [DEBUG][       Thread-604492][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:21:57,137 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:21:57,137 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:21:57,138 [DEBUG][       Thread-604492][   transport.py][1871] : userauth is OK
2025-07-01 12:21:57,150 [ INFO][       Thread-604492][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:21:57,150 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:21:57,764 [DEBUG][       Thread-604492][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:21:57,764 [DEBUG][       Thread-604492][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:21:57,808 [DEBUG][       Thread-604492][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:21:57,808 [DEBUG][       Thread-604492][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:21:57,811 [DEBUG][       Thread-604492][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:21:57,823 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:21:57,823 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:21:57,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:21:57,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:21:57,828 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:21:57,829 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:21:57,829 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:21:57,829 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:21:57,829 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.431541 -999.00  +11.60  37.74     53   +2.50 1 1 2 1 1   888    0 9.36 16.07 ----- 37.7 37.7 36.2 47.7 14.8 -24.5 13.9 -24.2 13.6 -23.7 14.5 -22.7
2025-07-01 12:21:57,829 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:21:57,829 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:21:57,829 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.431541
2025-07-01 12:21:57,830 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:21:57,830 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:21:57,830 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:21:57,830 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:21:57,830 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:21:57,830 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:21:28', tmtdew=10.33, humidity=49.3, cloud=0.0, wind=31.21, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:21:25.142', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:21:57,831 [DEBUG][       Thread-604492][   transport.py][1871] : EOF in transport thread
2025-07-01 12:21:57,905 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:21:57,918 [DEBUG][       Thread-604495][   transport.py][1871] : starting thread (client mode): 0x8155420
2025-07-01 12:21:57,918 [DEBUG][       Thread-604495][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:21:57,934 [DEBUG][       Thread-604495][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:21:57,934 [ INFO][       Thread-604495][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:21:57,942 [DEBUG][       Thread-604495][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:21:57,942 [DEBUG][       Thread-604495][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:21:57,942 [DEBUG][       Thread-604495][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:21:57,942 [DEBUG][       Thread-604495][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:21:57,942 [DEBUG][       Thread-604495][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:21:57,942 [DEBUG][       Thread-604495][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:21:57,942 [DEBUG][       Thread-604495][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:21:57,942 [DEBUG][       Thread-604495][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:21:57,942 [DEBUG][       Thread-604495][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:21:57,942 [DEBUG][       Thread-604495][   transport.py][1871] : client lang: <none>
2025-07-01 12:21:57,942 [DEBUG][       Thread-604495][   transport.py][1871] : server lang: <none>
2025-07-01 12:21:57,942 [DEBUG][       Thread-604495][   transport.py][1871] : kex follows: False
2025-07-01 12:21:57,942 [DEBUG][       Thread-604495][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:21:57,942 [DEBUG][       Thread-604495][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:21:57,942 [DEBUG][       Thread-604495][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:21:57,942 [DEBUG][       Thread-604495][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:21:57,942 [DEBUG][       Thread-604495][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:21:57,942 [DEBUG][       Thread-604495][   transport.py][1871] : Compression: none
2025-07-01 12:21:57,942 [DEBUG][       Thread-604495][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:21:57,998 [DEBUG][       Thread-604495][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:21:57,998 [DEBUG][       Thread-604495][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:21:57,998 [DEBUG][       Thread-604495][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:21:57,998 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:21:57,998 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:21:58,055 [DEBUG][       Thread-604495][   transport.py][1871] : userauth is OK
2025-07-01 12:21:58,055 [DEBUG][       Thread-604495][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:21:58,055 [DEBUG][       Thread-604495][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:21:58,055 [DEBUG][       Thread-604495][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:21:58,055 [DEBUG][       Thread-604495][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:21:58,069 [ INFO][       Thread-604495][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:21:58,070 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:21:58,070 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:21:59,090 [DEBUG][       Thread-604495][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:21:59,090 [DEBUG][       Thread-604495][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:21:59,139 [DEBUG][       Thread-604495][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:21:59,139 [DEBUG][       Thread-604495][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:21:59,148 [DEBUG][       Thread-604495][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:21:59,156 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:21:59,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')
2025-07-01 12:21:59,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-07-01 12:21:59,172 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:21:59,172 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:21:59,172 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:21:59,180 [DEBUG][       Thread-604495][   transport.py][1871] : EOF in transport thread
2025-07-01 12:21:59,527 [DEBUG][Thread-604497 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:22:08,545 [DEBUG][Thread-604498 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:22:09,180 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:22:09,180 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:22:09,180 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:22:09,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-07-01 12:22:09,654 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 21, 28), 10.33, 49.3, 0.0, 31.21, 11.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:22:09,655 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:21:28
2025-07-01 12:22:09,739 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:22:09,743 [DEBUG][       Thread-604499][   transport.py][1871] : starting thread (client mode): 0x81572b0
2025-07-01 12:22:09,743 [DEBUG][       Thread-604499][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:22:09,765 [DEBUG][       Thread-604499][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:22:09,765 [ INFO][       Thread-604499][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:22:09,766 [DEBUG][       Thread-604499][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:22:09,766 [DEBUG][       Thread-604499][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:22:09,766 [DEBUG][       Thread-604499][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:22:09,767 [DEBUG][       Thread-604499][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:22:09,767 [DEBUG][       Thread-604499][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:22:09,767 [DEBUG][       Thread-604499][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:22:09,767 [DEBUG][       Thread-604499][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:22:09,767 [DEBUG][       Thread-604499][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:22:09,767 [DEBUG][       Thread-604499][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:22:09,767 [DEBUG][       Thread-604499][   transport.py][1871] : client lang: <none>
2025-07-01 12:22:09,767 [DEBUG][       Thread-604499][   transport.py][1871] : server lang: <none>
2025-07-01 12:22:09,767 [DEBUG][       Thread-604499][   transport.py][1871] : kex follows: False
2025-07-01 12:22:09,767 [DEBUG][       Thread-604499][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:22:09,767 [DEBUG][       Thread-604499][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:22:09,767 [DEBUG][       Thread-604499][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:22:09,767 [DEBUG][       Thread-604499][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:22:09,767 [DEBUG][       Thread-604499][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:22:09,767 [DEBUG][       Thread-604499][   transport.py][1871] : Compression: none
2025-07-01 12:22:09,767 [DEBUG][       Thread-604499][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:22:09,785 [DEBUG][       Thread-604499][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:22:09,786 [DEBUG][       Thread-604499][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:22:09,786 [DEBUG][       Thread-604499][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:22:09,787 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:22:09,787 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:22:09,788 [DEBUG][       Thread-604499][   transport.py][1871] : userauth is OK
2025-07-01 12:22:09,802 [ INFO][       Thread-604499][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:22:09,802 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:22:10,413 [DEBUG][       Thread-604499][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:22:10,413 [DEBUG][       Thread-604499][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:22:10,457 [DEBUG][       Thread-604499][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:22:10,457 [DEBUG][       Thread-604499][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:22:10,460 [DEBUG][       Thread-604499][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:22:10,471 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:22:10,472 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:22:10,474 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:22:10,476 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:22:10,482 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:22:10,484 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:22:10,484 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:22:10,485 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:22:10,485 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.431541 -999.00  +11.60  37.74     53   +2.50 1 1 2 1 1   888    0 9.36 16.07 ----- 37.7 37.7 36.2 47.7 14.8 -24.5 13.9 -24.2 13.6 -23.7 14.5 -22.7
2025-07-01 12:22:10,485 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:22:10,485 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:22:10,485 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.431541
2025-07-01 12:22:10,486 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:22:10,486 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:22:10,486 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:22:10,486 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:22:10,486 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:22:10,486 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:21:28', tmtdew=10.33, humidity=49.3, cloud=0.0, wind=31.21, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:21:25.142', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:22:10,487 [DEBUG][       Thread-604499][   transport.py][1871] : EOF in transport thread
2025-07-01 12:22:10,570 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:22:15,267 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:22:15,269 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:22:17,566 [DEBUG][Thread-604502 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:22:26,589 [DEBUG][Thread-604503 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:22:28,922 [DEBUG][Thread-604504 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:22:35,609 [DEBUG][Thread-604505 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:22:44,629 [DEBUG][Thread-604506 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:22:53,650 [DEBUG][Thread-604507 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:23:02,673 [DEBUG][Thread-604508 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:23:11,694 [DEBUG][Thread-604509 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:23:15,407 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:23:15,408 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:23:20,711 [DEBUG][Thread-604510 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:23:28,975 [DEBUG][Thread-604511 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:23:29,731 [DEBUG][Thread-604512 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:23:38,751 [DEBUG][Thread-604513 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:23:47,775 [DEBUG][Thread-604514 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:23:56,795 [DEBUG][Thread-604515 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:24:05,817 [DEBUG][Thread-604516 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:24:14,839 [DEBUG][Thread-604517 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:24:15,545 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:24:15,547 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:24:20,244 [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-07-01 12:24:23,863 [DEBUG][Thread-604518 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:24:29,023 [DEBUG][Thread-604519 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:24:30,248 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:24:30,248 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:24:30,248 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:24:30,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-07-01 12:24:30,774 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 24, 7), 10.48, 48.59, 0.0, 34.6, 11.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:24:30,774 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:24:07
2025-07-01 12:24:30,864 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:24:30,868 [DEBUG][       Thread-604520][   transport.py][1871] : starting thread (client mode): 0x81558d0
2025-07-01 12:24:30,868 [DEBUG][       Thread-604520][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:24:30,889 [DEBUG][       Thread-604520][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:24:30,889 [ INFO][       Thread-604520][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:24:30,891 [DEBUG][       Thread-604520][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:24:30,891 [DEBUG][       Thread-604520][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:24:30,891 [DEBUG][       Thread-604520][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:24:30,891 [DEBUG][       Thread-604520][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:24:30,892 [DEBUG][       Thread-604520][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:24:30,892 [DEBUG][       Thread-604520][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:24:30,892 [DEBUG][       Thread-604520][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:24:30,892 [DEBUG][       Thread-604520][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:24:30,892 [DEBUG][       Thread-604520][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:24:30,892 [DEBUG][       Thread-604520][   transport.py][1871] : client lang: <none>
2025-07-01 12:24:30,892 [DEBUG][       Thread-604520][   transport.py][1871] : server lang: <none>
2025-07-01 12:24:30,892 [DEBUG][       Thread-604520][   transport.py][1871] : kex follows: False
2025-07-01 12:24:30,892 [DEBUG][       Thread-604520][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:24:30,892 [DEBUG][       Thread-604520][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:24:30,892 [DEBUG][       Thread-604520][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:24:30,892 [DEBUG][       Thread-604520][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:24:30,892 [DEBUG][       Thread-604520][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:24:30,892 [DEBUG][       Thread-604520][   transport.py][1871] : Compression: none
2025-07-01 12:24:30,892 [DEBUG][       Thread-604520][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:24:30,910 [DEBUG][       Thread-604520][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:24:30,910 [DEBUG][       Thread-604520][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:24:30,910 [DEBUG][       Thread-604520][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:24:30,910 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:24:30,910 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:24:30,911 [DEBUG][       Thread-604520][   transport.py][1871] : userauth is OK
2025-07-01 12:24:30,935 [ INFO][       Thread-604520][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:24:30,935 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:24:31,612 [DEBUG][       Thread-604520][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:24:31,613 [DEBUG][       Thread-604520][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:24:31,656 [DEBUG][       Thread-604520][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:24:31,656 [DEBUG][       Thread-604520][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:24:31,659 [DEBUG][       Thread-604520][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:24:31,672 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:24:31,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:24:31,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:24:31,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:24:31,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:24:31,678 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:24:31,678 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:24:31,678 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:24:31,678 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.433277 -999.00  +12.10  37.80     52   +2.60 1 1 2 1 1   888    0 9.68 25.85 ----- 37.8 37.8 12.0 44.6 15.2 -24.3 14.2 -25.5 14.0 -23.4 14.9 -25.6
2025-07-01 12:24:31,678 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:24:31,678 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:24:31,678 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.433277
2025-07-01 12:24:31,679 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:24:31,679 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:24:31,679 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:24:31,679 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:24:31,679 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:24:31,679 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:24:07', tmtdew=10.48, humidity=48.59, cloud=0.0, wind=34.6, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:23:55.133', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:24:31,680 [DEBUG][       Thread-604520][   transport.py][1871] : EOF in transport thread
2025-07-01 12:24:31,753 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:24:31,765 [DEBUG][       Thread-604523][   transport.py][1871] : starting thread (client mode): 0x82b3c70
2025-07-01 12:24:31,765 [DEBUG][       Thread-604523][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:24:31,781 [DEBUG][       Thread-604523][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:24:31,781 [ INFO][       Thread-604523][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:24:31,788 [DEBUG][       Thread-604523][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:24:31,788 [DEBUG][       Thread-604523][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:24:31,788 [DEBUG][       Thread-604523][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:24:31,788 [DEBUG][       Thread-604523][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:24:31,788 [DEBUG][       Thread-604523][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:24:31,788 [DEBUG][       Thread-604523][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:24:31,788 [DEBUG][       Thread-604523][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:24:31,789 [DEBUG][       Thread-604523][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:24:31,789 [DEBUG][       Thread-604523][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:24:31,789 [DEBUG][       Thread-604523][   transport.py][1871] : client lang: <none>
2025-07-01 12:24:31,789 [DEBUG][       Thread-604523][   transport.py][1871] : server lang: <none>
2025-07-01 12:24:31,789 [DEBUG][       Thread-604523][   transport.py][1871] : kex follows: False
2025-07-01 12:24:31,789 [DEBUG][       Thread-604523][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:24:31,789 [DEBUG][       Thread-604523][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:24:31,789 [DEBUG][       Thread-604523][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:24:31,789 [DEBUG][       Thread-604523][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:24:31,789 [DEBUG][       Thread-604523][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:24:31,789 [DEBUG][       Thread-604523][   transport.py][1871] : Compression: none
2025-07-01 12:24:31,789 [DEBUG][       Thread-604523][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:24:31,845 [DEBUG][       Thread-604523][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:24:31,846 [DEBUG][       Thread-604523][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:24:31,846 [DEBUG][       Thread-604523][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:24:31,846 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:24:31,846 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:24:31,903 [DEBUG][       Thread-604523][   transport.py][1871] : userauth is OK
2025-07-01 12:24:31,903 [DEBUG][       Thread-604523][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:24:31,903 [DEBUG][       Thread-604523][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:24:31,903 [DEBUG][       Thread-604523][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:24:31,903 [DEBUG][       Thread-604523][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:24:31,917 [ INFO][       Thread-604523][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:24:31,917 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:24:31,917 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:24:32,881 [DEBUG][Thread-604525 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:24:32,940 [DEBUG][       Thread-604523][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:24:32,940 [DEBUG][       Thread-604523][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:24:32,991 [DEBUG][       Thread-604523][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:24:32,991 [DEBUG][       Thread-604523][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:24:33,000 [DEBUG][       Thread-604523][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:24:33,008 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:24:33,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-07-01 12:24:33,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-07-01 12:24:33,023 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:24:33,024 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:24:33,024 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:24:33,031 [DEBUG][       Thread-604523][   transport.py][1871] : EOF in transport thread
2025-07-01 12:24:41,914 [DEBUG][Thread-604526 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:24:43,034 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:24:43,034 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:24:43,034 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:24:43,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-07-01 12:24:43,536 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 24, 38), 10.61, 48.28, 0.0, 37.47, 11.96, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:24:43,536 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:24:38
2025-07-01 12:24:43,622 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:24:43,626 [DEBUG][       Thread-604527][   transport.py][1871] : starting thread (client mode): 0x82b28f0
2025-07-01 12:24:43,626 [DEBUG][       Thread-604527][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:24:43,645 [DEBUG][       Thread-604527][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:24:43,645 [ INFO][       Thread-604527][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:24:43,649 [DEBUG][       Thread-604527][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:24:43,649 [DEBUG][       Thread-604527][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:24:43,649 [DEBUG][       Thread-604527][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:24:43,649 [DEBUG][       Thread-604527][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:24:43,649 [DEBUG][       Thread-604527][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:24:43,649 [DEBUG][       Thread-604527][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:24:43,649 [DEBUG][       Thread-604527][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:24:43,649 [DEBUG][       Thread-604527][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:24:43,649 [DEBUG][       Thread-604527][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:24:43,649 [DEBUG][       Thread-604527][   transport.py][1871] : client lang: <none>
2025-07-01 12:24:43,649 [DEBUG][       Thread-604527][   transport.py][1871] : server lang: <none>
2025-07-01 12:24:43,649 [DEBUG][       Thread-604527][   transport.py][1871] : kex follows: False
2025-07-01 12:24:43,649 [DEBUG][       Thread-604527][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:24:43,649 [DEBUG][       Thread-604527][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:24:43,649 [DEBUG][       Thread-604527][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:24:43,649 [DEBUG][       Thread-604527][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:24:43,649 [DEBUG][       Thread-604527][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:24:43,649 [DEBUG][       Thread-604527][   transport.py][1871] : Compression: none
2025-07-01 12:24:43,649 [DEBUG][       Thread-604527][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:24:43,666 [DEBUG][       Thread-604527][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:24:43,666 [DEBUG][       Thread-604527][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:24:43,667 [DEBUG][       Thread-604527][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:24:43,667 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:24:43,667 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:24:43,668 [DEBUG][       Thread-604527][   transport.py][1871] : userauth is OK
2025-07-01 12:24:43,692 [ INFO][       Thread-604527][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:24:43,693 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:24:44,425 [DEBUG][       Thread-604527][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:24:44,425 [DEBUG][       Thread-604527][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:24:44,469 [DEBUG][       Thread-604527][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:24:44,469 [DEBUG][       Thread-604527][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:24:44,475 [DEBUG][       Thread-604527][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:24:44,486 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:24:44,487 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:24:44,488 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:24:44,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:24:44,495 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:24:44,496 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:24:44,496 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:24:44,497 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:24:44,497 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.433277 -999.00  +12.10  37.80     52   +2.60 1 1 2 1 1   888    0 9.68 25.85 ----- 37.8 37.8 12.0 44.6 15.2 -24.3 14.2 -25.5 14.0 -23.4 14.9 -25.6
2025-07-01 12:24:44,497 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:24:44,497 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:24:44,497 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.433277
2025-07-01 12:24:44,498 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:24:44,498 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:24:44,498 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:24:44,499 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:24:44,499 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:24:44,499 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:24:38', tmtdew=10.61, humidity=48.28, cloud=0.0, wind=37.47, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:23:55.133', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:24:44,499 [DEBUG][       Thread-604527][   transport.py][1871] : EOF in transport thread
2025-07-01 12:24:44,582 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:24:44,591 [DEBUG][       Thread-604530][   transport.py][1871] : starting thread (client mode): 0x827d9f0
2025-07-01 12:24:44,591 [DEBUG][       Thread-604530][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:24:44,606 [DEBUG][       Thread-604530][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:24:44,606 [ INFO][       Thread-604530][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:24:44,614 [DEBUG][       Thread-604530][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:24:44,614 [DEBUG][       Thread-604530][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:24:44,614 [DEBUG][       Thread-604530][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:24:44,614 [DEBUG][       Thread-604530][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:24:44,614 [DEBUG][       Thread-604530][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:24:44,614 [DEBUG][       Thread-604530][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:24:44,614 [DEBUG][       Thread-604530][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:24:44,614 [DEBUG][       Thread-604530][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:24:44,614 [DEBUG][       Thread-604530][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:24:44,614 [DEBUG][       Thread-604530][   transport.py][1871] : client lang: <none>
2025-07-01 12:24:44,614 [DEBUG][       Thread-604530][   transport.py][1871] : server lang: <none>
2025-07-01 12:24:44,614 [DEBUG][       Thread-604530][   transport.py][1871] : kex follows: False
2025-07-01 12:24:44,614 [DEBUG][       Thread-604530][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:24:44,615 [DEBUG][       Thread-604530][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:24:44,615 [DEBUG][       Thread-604530][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:24:44,615 [DEBUG][       Thread-604530][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:24:44,615 [DEBUG][       Thread-604530][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:24:44,615 [DEBUG][       Thread-604530][   transport.py][1871] : Compression: none
2025-07-01 12:24:44,615 [DEBUG][       Thread-604530][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:24:44,674 [DEBUG][       Thread-604530][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:24:44,674 [DEBUG][       Thread-604530][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:24:44,675 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:24:44,676 [DEBUG][       Thread-604530][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:24:44,676 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:24:44,731 [DEBUG][       Thread-604530][   transport.py][1871] : userauth is OK
2025-07-01 12:24:44,731 [DEBUG][       Thread-604530][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:24:44,731 [DEBUG][       Thread-604530][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:24:44,732 [DEBUG][       Thread-604530][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:24:44,732 [DEBUG][       Thread-604530][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:24:44,747 [ INFO][       Thread-604530][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:24:44,747 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:24:44,747 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:24:45,719 [DEBUG][       Thread-604530][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:24:45,720 [DEBUG][       Thread-604530][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:24:45,768 [DEBUG][       Thread-604530][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:24:45,768 [DEBUG][       Thread-604530][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:24:45,777 [DEBUG][       Thread-604530][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:24:45,786 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:24:45,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')
2025-07-01 12:24:45,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-07-01 12:24:45,804 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:24:45,804 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:24:45,804 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:24:45,812 [DEBUG][       Thread-604530][   transport.py][1871] : EOF in transport thread
2025-07-01 12:24:50,935 [DEBUG][Thread-604532 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:24:55,814 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:24:55,814 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:24:55,815 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:24:55,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-07-01 12:24:56,315 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 24, 38), 10.61, 48.28, 0.0, 37.47, 11.96, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:24:56,315 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:24:38
2025-07-01 12:24:56,401 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:24:56,406 [DEBUG][       Thread-604533][   transport.py][1871] : starting thread (client mode): 0x81073a0
2025-07-01 12:24:56,406 [DEBUG][       Thread-604533][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:24:56,426 [DEBUG][       Thread-604533][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:24:56,427 [ INFO][       Thread-604533][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:24:56,428 [DEBUG][       Thread-604533][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:24:56,428 [DEBUG][       Thread-604533][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:24:56,428 [DEBUG][       Thread-604533][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:24:56,428 [DEBUG][       Thread-604533][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:24:56,428 [DEBUG][       Thread-604533][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:24:56,428 [DEBUG][       Thread-604533][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:24:56,428 [DEBUG][       Thread-604533][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:24:56,428 [DEBUG][       Thread-604533][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:24:56,428 [DEBUG][       Thread-604533][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:24:56,428 [DEBUG][       Thread-604533][   transport.py][1871] : client lang: <none>
2025-07-01 12:24:56,428 [DEBUG][       Thread-604533][   transport.py][1871] : server lang: <none>
2025-07-01 12:24:56,428 [DEBUG][       Thread-604533][   transport.py][1871] : kex follows: False
2025-07-01 12:24:56,428 [DEBUG][       Thread-604533][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:24:56,428 [DEBUG][       Thread-604533][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:24:56,429 [DEBUG][       Thread-604533][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:24:56,429 [DEBUG][       Thread-604533][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:24:56,429 [DEBUG][       Thread-604533][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:24:56,429 [DEBUG][       Thread-604533][   transport.py][1871] : Compression: none
2025-07-01 12:24:56,429 [DEBUG][       Thread-604533][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:24:56,446 [DEBUG][       Thread-604533][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:24:56,447 [DEBUG][       Thread-604533][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:24:56,447 [DEBUG][       Thread-604533][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:24:56,447 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:24:56,448 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:24:56,449 [DEBUG][       Thread-604533][   transport.py][1871] : userauth is OK
2025-07-01 12:24:56,474 [ INFO][       Thread-604533][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:24:56,474 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:24:57,049 [DEBUG][       Thread-604533][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:24:57,050 [DEBUG][       Thread-604533][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:24:57,093 [DEBUG][       Thread-604533][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:24:57,093 [DEBUG][       Thread-604533][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:24:57,097 [DEBUG][       Thread-604533][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:24:57,108 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:24:57,109 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:24:57,110 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:24:57,112 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:24:57,118 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:24:57,119 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:24:57,119 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:24:57,120 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:24:57,120 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.433624 -999.00  +12.10  32.12     52   +2.80 1 1 2 1 1   888    0 9.70 29.38 ----- 32.1 32.1 24.4 44.9 15.2 -24.5 14.3 -25.0 14.1 -23.6 14.9 -24.6
2025-07-01 12:24:57,120 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:24:57,120 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:24:57,121 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.433624
2025-07-01 12:24:57,121 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:24:57,122 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:24:57,122 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:24:57,122 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:24:57,122 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:24:57,122 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:24:38', tmtdew=10.61, humidity=48.28, cloud=0.0, wind=37.47, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:24:25.114', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:24:57,123 [DEBUG][       Thread-604533][   transport.py][1871] : EOF in transport thread
2025-07-01 12:24:57,206 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:24:57,217 [DEBUG][       Thread-604536][   transport.py][1871] : starting thread (client mode): 0x81572b0
2025-07-01 12:24:57,217 [DEBUG][       Thread-604536][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:24:57,232 [DEBUG][       Thread-604536][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:24:57,232 [ INFO][       Thread-604536][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:24:57,240 [DEBUG][       Thread-604536][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:24:57,240 [DEBUG][       Thread-604536][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:24:57,240 [DEBUG][       Thread-604536][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:24:57,240 [DEBUG][       Thread-604536][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:24:57,240 [DEBUG][       Thread-604536][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:24:57,240 [DEBUG][       Thread-604536][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:24:57,240 [DEBUG][       Thread-604536][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:24:57,240 [DEBUG][       Thread-604536][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:24:57,240 [DEBUG][       Thread-604536][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:24:57,240 [DEBUG][       Thread-604536][   transport.py][1871] : client lang: <none>
2025-07-01 12:24:57,240 [DEBUG][       Thread-604536][   transport.py][1871] : server lang: <none>
2025-07-01 12:24:57,240 [DEBUG][       Thread-604536][   transport.py][1871] : kex follows: False
2025-07-01 12:24:57,240 [DEBUG][       Thread-604536][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:24:57,240 [DEBUG][       Thread-604536][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:24:57,240 [DEBUG][       Thread-604536][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:24:57,240 [DEBUG][       Thread-604536][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:24:57,240 [DEBUG][       Thread-604536][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:24:57,240 [DEBUG][       Thread-604536][   transport.py][1871] : Compression: none
2025-07-01 12:24:57,240 [DEBUG][       Thread-604536][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:24:57,298 [DEBUG][       Thread-604536][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:24:57,298 [DEBUG][       Thread-604536][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:24:57,298 [DEBUG][       Thread-604536][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:24:57,298 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:24:57,299 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:24:57,356 [DEBUG][       Thread-604536][   transport.py][1871] : userauth is OK
2025-07-01 12:24:57,356 [DEBUG][       Thread-604536][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:24:57,356 [DEBUG][       Thread-604536][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:24:57,356 [DEBUG][       Thread-604536][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:24:57,356 [DEBUG][       Thread-604536][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:24:57,375 [ INFO][       Thread-604536][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:24:57,375 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:24:57,376 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:24:58,371 [DEBUG][       Thread-604536][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:24:58,372 [DEBUG][       Thread-604536][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:24:58,420 [DEBUG][       Thread-604536][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:24:58,420 [DEBUG][       Thread-604536][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:24:58,429 [DEBUG][       Thread-604536][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:24:58,438 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:24:58,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-07-01 12:24:58,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-07-01 12:24:58,456 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:24:58,456 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:24:58,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:24:58,465 [DEBUG][       Thread-604536][   transport.py][1871] : EOF in transport thread
2025-07-01 12:24:59,968 [DEBUG][Thread-604538 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:25:08,467 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:25:08,467 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:25:08,467 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:25:08,468 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:25:08,964 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 24, 38), 10.61, 48.28, 0.0, 37.47, 11.96, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:25:08,964 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:24:38
2025-07-01 12:25:08,989 [DEBUG][Thread-604539 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:25:09,057 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:25:09,061 [DEBUG][       Thread-604540][   transport.py][1871] : starting thread (client mode): 0x8154ac0
2025-07-01 12:25:09,061 [DEBUG][       Thread-604540][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:25:09,081 [DEBUG][       Thread-604540][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:25:09,082 [ INFO][       Thread-604540][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:25:09,085 [DEBUG][       Thread-604540][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:25:09,085 [DEBUG][       Thread-604540][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:25:09,085 [DEBUG][       Thread-604540][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:25:09,085 [DEBUG][       Thread-604540][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:25:09,085 [DEBUG][       Thread-604540][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:25:09,085 [DEBUG][       Thread-604540][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:25:09,085 [DEBUG][       Thread-604540][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:25:09,085 [DEBUG][       Thread-604540][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:25:09,085 [DEBUG][       Thread-604540][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:25:09,085 [DEBUG][       Thread-604540][   transport.py][1871] : client lang: <none>
2025-07-01 12:25:09,085 [DEBUG][       Thread-604540][   transport.py][1871] : server lang: <none>
2025-07-01 12:25:09,085 [DEBUG][       Thread-604540][   transport.py][1871] : kex follows: False
2025-07-01 12:25:09,085 [DEBUG][       Thread-604540][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:25:09,085 [DEBUG][       Thread-604540][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:25:09,085 [DEBUG][       Thread-604540][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:25:09,085 [DEBUG][       Thread-604540][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:25:09,085 [DEBUG][       Thread-604540][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:25:09,085 [DEBUG][       Thread-604540][   transport.py][1871] : Compression: none
2025-07-01 12:25:09,085 [DEBUG][       Thread-604540][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:25:09,099 [DEBUG][       Thread-604540][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:25:09,099 [DEBUG][       Thread-604540][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:25:09,099 [DEBUG][       Thread-604540][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:25:09,099 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:25:09,100 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:25:09,100 [DEBUG][       Thread-604540][   transport.py][1871] : userauth is OK
2025-07-01 12:25:09,112 [ INFO][       Thread-604540][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:25:09,113 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:25:09,887 [DEBUG][       Thread-604540][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:25:09,887 [DEBUG][       Thread-604540][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:25:09,928 [DEBUG][       Thread-604540][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:25:09,928 [DEBUG][       Thread-604540][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:25:09,931 [DEBUG][       Thread-604540][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:25:09,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:25:09,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:25:09,946 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:25:09,947 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:25:09,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:25:09,950 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:25:09,950 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:25:09,950 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:25:09,950 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.433624 -999.00  +12.10  32.12     52   +2.80 1 1 2 1 1   888    0 9.70 29.38 ----- 32.1 32.1 24.4 44.9 15.2 -24.5 14.3 -25.0 14.1 -23.6 14.9 -24.6
2025-07-01 12:25:09,950 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:25:09,950 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:25:09,950 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.433624
2025-07-01 12:25:09,950 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:25:09,950 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:25:09,950 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:25:09,950 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:25:09,950 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:25:09,950 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:24:38', tmtdew=10.61, humidity=48.28, cloud=0.0, wind=37.47, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:24:25.114', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:25:09,951 [DEBUG][       Thread-604540][   transport.py][1871] : EOF in transport thread
2025-07-01 12:25:10,025 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:25:10,034 [DEBUG][       Thread-604543][   transport.py][1871] : starting thread (client mode): 0x83c8220
2025-07-01 12:25:10,034 [DEBUG][       Thread-604543][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:25:10,049 [DEBUG][       Thread-604543][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:25:10,049 [ INFO][       Thread-604543][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:25:10,056 [DEBUG][       Thread-604543][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:25:10,057 [DEBUG][       Thread-604543][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:25:10,057 [DEBUG][       Thread-604543][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:25:10,057 [DEBUG][       Thread-604543][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:25:10,057 [DEBUG][       Thread-604543][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:25:10,057 [DEBUG][       Thread-604543][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:25:10,057 [DEBUG][       Thread-604543][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:25:10,057 [DEBUG][       Thread-604543][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:25:10,057 [DEBUG][       Thread-604543][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:25:10,057 [DEBUG][       Thread-604543][   transport.py][1871] : client lang: <none>
2025-07-01 12:25:10,057 [DEBUG][       Thread-604543][   transport.py][1871] : server lang: <none>
2025-07-01 12:25:10,057 [DEBUG][       Thread-604543][   transport.py][1871] : kex follows: False
2025-07-01 12:25:10,057 [DEBUG][       Thread-604543][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:25:10,057 [DEBUG][       Thread-604543][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:25:10,057 [DEBUG][       Thread-604543][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:25:10,057 [DEBUG][       Thread-604543][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:25:10,057 [DEBUG][       Thread-604543][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:25:10,057 [DEBUG][       Thread-604543][   transport.py][1871] : Compression: none
2025-07-01 12:25:10,057 [DEBUG][       Thread-604543][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:25:10,114 [DEBUG][       Thread-604543][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:25:10,114 [DEBUG][       Thread-604543][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:25:10,114 [DEBUG][       Thread-604543][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:25:10,114 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:25:10,114 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:25:10,171 [DEBUG][       Thread-604543][   transport.py][1871] : userauth is OK
2025-07-01 12:25:10,171 [DEBUG][       Thread-604543][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:25:10,171 [DEBUG][       Thread-604543][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:25:10,171 [DEBUG][       Thread-604543][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:25:10,171 [DEBUG][       Thread-604543][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:25:10,185 [ INFO][       Thread-604543][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:25:10,186 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:25:10,186 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:25:11,215 [DEBUG][       Thread-604543][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:25:11,215 [DEBUG][       Thread-604543][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:25:11,263 [DEBUG][       Thread-604543][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:25:11,263 [DEBUG][       Thread-604543][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:25:11,271 [DEBUG][       Thread-604543][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:25:11,279 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:25:11,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')
2025-07-01 12:25:11,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') -> 00000000
2025-07-01 12:25:11,294 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:25:11,294 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:25:11,294 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:25:11,301 [DEBUG][       Thread-604543][   transport.py][1871] : EOF in transport thread
2025-07-01 12:25:15,684 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:25:15,686 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:25:18,008 [DEBUG][Thread-604545 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:25:21,304 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:25:21,305 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:25:21,313 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:25:21,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-07-01 12:25:21,803 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 25, 10), 10.7, 48.17, 0.0, 32.5, 12.12, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:25:21,803 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:25:10
2025-07-01 12:25:21,888 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:25:21,894 [DEBUG][       Thread-604546][   transport.py][1871] : starting thread (client mode): 0x8157f70
2025-07-01 12:25:21,894 [DEBUG][       Thread-604546][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:25:21,911 [DEBUG][       Thread-604546][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:25:21,911 [ INFO][       Thread-604546][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:25:21,915 [DEBUG][       Thread-604546][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:25:21,915 [DEBUG][       Thread-604546][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:25:21,915 [DEBUG][       Thread-604546][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:25:21,915 [DEBUG][       Thread-604546][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:25:21,915 [DEBUG][       Thread-604546][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:25:21,915 [DEBUG][       Thread-604546][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:25:21,915 [DEBUG][       Thread-604546][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:25:21,915 [DEBUG][       Thread-604546][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:25:21,915 [DEBUG][       Thread-604546][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:25:21,915 [DEBUG][       Thread-604546][   transport.py][1871] : client lang: <none>
2025-07-01 12:25:21,915 [DEBUG][       Thread-604546][   transport.py][1871] : server lang: <none>
2025-07-01 12:25:21,915 [DEBUG][       Thread-604546][   transport.py][1871] : kex follows: False
2025-07-01 12:25:21,915 [DEBUG][       Thread-604546][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:25:21,915 [DEBUG][       Thread-604546][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:25:21,915 [DEBUG][       Thread-604546][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:25:21,915 [DEBUG][       Thread-604546][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:25:21,915 [DEBUG][       Thread-604546][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:25:21,915 [DEBUG][       Thread-604546][   transport.py][1871] : Compression: none
2025-07-01 12:25:21,915 [DEBUG][       Thread-604546][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:25:21,929 [DEBUG][       Thread-604546][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:25:21,929 [DEBUG][       Thread-604546][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:25:21,930 [DEBUG][       Thread-604546][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:25:21,930 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:25:21,930 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:25:21,931 [DEBUG][       Thread-604546][   transport.py][1871] : userauth is OK
2025-07-01 12:25:21,956 [ INFO][       Thread-604546][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:25:21,956 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:25:22,541 [DEBUG][       Thread-604546][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:25:22,541 [DEBUG][       Thread-604546][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:25:22,585 [DEBUG][       Thread-604546][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:25:22,585 [DEBUG][       Thread-604546][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:25:22,588 [DEBUG][       Thread-604546][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:25:22,599 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:25:22,599 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:25:22,601 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:25:22,602 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:25:22,607 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:25:22,609 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:25:22,609 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:25:22,610 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:25:22,610 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.433971 -999.00  +12.20  43.11     53   +2.90 1 1 2 1 1   888    0 9.83 33.14 ----- 43.1 43.1 35.6 48.5 15.4 -23.8 14.3 -24.7 14.1 -23.7 15.1 -22.1
2025-07-01 12:25:22,610 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:25:22,610 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:25:22,610 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.433971
2025-07-01 12:25:22,611 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:25:22,611 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:25:22,611 [DEBUG][       Thread-604546][   transport.py][1871] : EOF in transport thread
2025-07-01 12:25:22,612 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:25:22,612 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:25:22,612 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:25:22,612 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:25:10', tmtdew=10.7, humidity=48.17, cloud=0.0, wind=32.5, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:24:55.094', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:25:22,696 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:25:22,707 [DEBUG][       Thread-604549][   transport.py][1871] : starting thread (client mode): 0x82b2980
2025-07-01 12:25:22,707 [DEBUG][       Thread-604549][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:25:22,726 [DEBUG][       Thread-604549][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:25:22,726 [ INFO][       Thread-604549][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:25:22,733 [DEBUG][       Thread-604549][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:25:22,734 [DEBUG][       Thread-604549][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:25:22,734 [DEBUG][       Thread-604549][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:25:22,734 [DEBUG][       Thread-604549][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:25:22,734 [DEBUG][       Thread-604549][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:25:22,734 [DEBUG][       Thread-604549][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:25:22,734 [DEBUG][       Thread-604549][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:25:22,734 [DEBUG][       Thread-604549][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:25:22,734 [DEBUG][       Thread-604549][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:25:22,734 [DEBUG][       Thread-604549][   transport.py][1871] : client lang: <none>
2025-07-01 12:25:22,734 [DEBUG][       Thread-604549][   transport.py][1871] : server lang: <none>
2025-07-01 12:25:22,734 [DEBUG][       Thread-604549][   transport.py][1871] : kex follows: False
2025-07-01 12:25:22,734 [DEBUG][       Thread-604549][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:25:22,734 [DEBUG][       Thread-604549][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:25:22,734 [DEBUG][       Thread-604549][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:25:22,734 [DEBUG][       Thread-604549][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:25:22,735 [DEBUG][       Thread-604549][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:25:22,735 [DEBUG][       Thread-604549][   transport.py][1871] : Compression: none
2025-07-01 12:25:22,735 [DEBUG][       Thread-604549][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:25:22,792 [DEBUG][       Thread-604549][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:25:22,793 [DEBUG][       Thread-604549][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:25:22,793 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:25:22,794 [DEBUG][       Thread-604549][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:25:22,795 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:25:22,849 [DEBUG][       Thread-604549][   transport.py][1871] : userauth is OK
2025-07-01 12:25:22,849 [DEBUG][       Thread-604549][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:25:22,849 [DEBUG][       Thread-604549][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:25:22,849 [DEBUG][       Thread-604549][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:25:22,849 [DEBUG][       Thread-604549][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:25:22,869 [ INFO][       Thread-604549][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:25:22,869 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:25:22,870 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:25:23,843 [DEBUG][       Thread-604549][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:25:23,843 [DEBUG][       Thread-604549][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:25:23,892 [DEBUG][       Thread-604549][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:25:23,892 [DEBUG][       Thread-604549][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:25:23,901 [DEBUG][       Thread-604549][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:25:23,910 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:25:23,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-07-01 12:25:23,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-07-01 12:25:23,928 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:25:23,929 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:25:23,929 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:25:23,937 [DEBUG][       Thread-604549][   transport.py][1871] : EOF in transport thread
2025-07-01 12:25:27,031 [DEBUG][Thread-604551 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:25:29,076 [DEBUG][Thread-604552 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:25:33,936 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:25:33,936 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:25:33,936 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:25:33,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-07-01 12:25:34,435 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 25, 10), 10.7, 48.17, 0.0, 32.5, 12.12, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:25:34,435 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:25:10
2025-07-01 12:25:34,521 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:25:34,528 [DEBUG][       Thread-604553][   transport.py][1871] : starting thread (client mode): 0x8155510
2025-07-01 12:25:34,528 [DEBUG][       Thread-604553][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:25:34,547 [DEBUG][       Thread-604553][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:25:34,547 [ INFO][       Thread-604553][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:25:34,550 [DEBUG][       Thread-604553][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:25:34,550 [DEBUG][       Thread-604553][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:25:34,550 [DEBUG][       Thread-604553][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:25:34,550 [DEBUG][       Thread-604553][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:25:34,550 [DEBUG][       Thread-604553][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:25:34,550 [DEBUG][       Thread-604553][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:25:34,550 [DEBUG][       Thread-604553][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:25:34,550 [DEBUG][       Thread-604553][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:25:34,550 [DEBUG][       Thread-604553][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:25:34,550 [DEBUG][       Thread-604553][   transport.py][1871] : client lang: <none>
2025-07-01 12:25:34,550 [DEBUG][       Thread-604553][   transport.py][1871] : server lang: <none>
2025-07-01 12:25:34,550 [DEBUG][       Thread-604553][   transport.py][1871] : kex follows: False
2025-07-01 12:25:34,550 [DEBUG][       Thread-604553][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:25:34,550 [DEBUG][       Thread-604553][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:25:34,550 [DEBUG][       Thread-604553][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:25:34,550 [DEBUG][       Thread-604553][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:25:34,551 [DEBUG][       Thread-604553][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:25:34,551 [DEBUG][       Thread-604553][   transport.py][1871] : Compression: none
2025-07-01 12:25:34,551 [DEBUG][       Thread-604553][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:25:34,568 [DEBUG][       Thread-604553][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:25:34,568 [DEBUG][       Thread-604553][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:25:34,568 [DEBUG][       Thread-604553][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:25:34,568 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:25:34,568 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:25:34,569 [DEBUG][       Thread-604553][   transport.py][1871] : userauth is OK
2025-07-01 12:25:34,592 [ INFO][       Thread-604553][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:25:34,592 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:25:35,459 [DEBUG][       Thread-604553][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:25:35,459 [DEBUG][       Thread-604553][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:25:35,500 [DEBUG][       Thread-604553][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:25:35,501 [DEBUG][       Thread-604553][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:25:35,503 [DEBUG][       Thread-604553][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:25:35,514 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:25:35,515 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:25:35,516 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:25:35,518 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:25:35,523 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:25:35,524 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:25:35,524 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:25:35,525 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:25:35,525 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.433971 -999.00  +12.20  43.11     53   +2.90 1 1 2 1 1   888    0 9.83 33.14 ----- 43.1 43.1 35.6 48.5 15.4 -23.8 14.3 -24.7 14.1 -23.7 15.1 -22.1
2025-07-01 12:25:35,525 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:25:35,525 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:25:35,525 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.433971
2025-07-01 12:25:35,526 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:25:35,526 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:25:35,526 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:25:35,526 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:25:35,526 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:25:35,526 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:25:10', tmtdew=10.7, humidity=48.17, cloud=0.0, wind=32.5, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:24:55.094', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:25:35,527 [DEBUG][       Thread-604553][   transport.py][1871] : EOF in transport thread
2025-07-01 12:25:35,616 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:25:35,628 [DEBUG][       Thread-604556][   transport.py][1871] : starting thread (client mode): 0x8155c60
2025-07-01 12:25:35,628 [DEBUG][       Thread-604556][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:25:35,644 [DEBUG][       Thread-604556][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:25:35,644 [ INFO][       Thread-604556][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:25:35,651 [DEBUG][       Thread-604556][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:25:35,651 [DEBUG][       Thread-604556][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:25:35,651 [DEBUG][       Thread-604556][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:25:35,651 [DEBUG][       Thread-604556][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:25:35,651 [DEBUG][       Thread-604556][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:25:35,651 [DEBUG][       Thread-604556][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:25:35,651 [DEBUG][       Thread-604556][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:25:35,651 [DEBUG][       Thread-604556][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:25:35,651 [DEBUG][       Thread-604556][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:25:35,651 [DEBUG][       Thread-604556][   transport.py][1871] : client lang: <none>
2025-07-01 12:25:35,651 [DEBUG][       Thread-604556][   transport.py][1871] : server lang: <none>
2025-07-01 12:25:35,651 [DEBUG][       Thread-604556][   transport.py][1871] : kex follows: False
2025-07-01 12:25:35,651 [DEBUG][       Thread-604556][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:25:35,651 [DEBUG][       Thread-604556][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:25:35,651 [DEBUG][       Thread-604556][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:25:35,651 [DEBUG][       Thread-604556][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:25:35,651 [DEBUG][       Thread-604556][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:25:35,651 [DEBUG][       Thread-604556][   transport.py][1871] : Compression: none
2025-07-01 12:25:35,651 [DEBUG][       Thread-604556][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:25:35,707 [DEBUG][       Thread-604556][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:25:35,707 [DEBUG][       Thread-604556][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:25:35,708 [DEBUG][       Thread-604556][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:25:35,708 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:25:35,708 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:25:35,764 [DEBUG][       Thread-604556][   transport.py][1871] : userauth is OK
2025-07-01 12:25:35,765 [DEBUG][       Thread-604556][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:25:35,765 [DEBUG][       Thread-604556][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:25:35,765 [DEBUG][       Thread-604556][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:25:35,765 [DEBUG][       Thread-604556][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:25:35,784 [ INFO][       Thread-604556][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:25:35,784 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:25:35,785 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:25:36,064 [DEBUG][Thread-604558 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:25:36,807 [DEBUG][       Thread-604556][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:25:36,807 [DEBUG][       Thread-604556][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:25:36,856 [DEBUG][       Thread-604556][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:25:36,856 [DEBUG][       Thread-604556][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:25:36,870 [DEBUG][       Thread-604556][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:25:36,882 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:25:36,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-07-01 12:25:36,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-07-01 12:25:36,904 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:25:36,904 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:25:36,905 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:25:36,912 [DEBUG][       Thread-604556][   transport.py][1871] : EOF in transport thread
2025-07-01 12:25:45,085 [DEBUG][Thread-604559 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:25:46,912 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:25:46,912 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:25:46,912 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:25:46,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-07-01 12:25:47,419 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 25, 42), 10.72, 48.08, 0.0, 29.64, 12.08, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:25:47,419 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:25:42
2025-07-01 12:25:47,511 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:25:47,515 [DEBUG][       Thread-604560][   transport.py][1871] : starting thread (client mode): 0x81570a0
2025-07-01 12:25:47,515 [DEBUG][       Thread-604560][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:25:47,535 [DEBUG][       Thread-604560][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:25:47,535 [ INFO][       Thread-604560][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:25:47,538 [DEBUG][       Thread-604560][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:25:47,538 [DEBUG][       Thread-604560][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:25:47,538 [DEBUG][       Thread-604560][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:25:47,538 [DEBUG][       Thread-604560][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:25:47,538 [DEBUG][       Thread-604560][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:25:47,538 [DEBUG][       Thread-604560][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:25:47,538 [DEBUG][       Thread-604560][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:25:47,538 [DEBUG][       Thread-604560][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:25:47,538 [DEBUG][       Thread-604560][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:25:47,538 [DEBUG][       Thread-604560][   transport.py][1871] : client lang: <none>
2025-07-01 12:25:47,538 [DEBUG][       Thread-604560][   transport.py][1871] : server lang: <none>
2025-07-01 12:25:47,538 [DEBUG][       Thread-604560][   transport.py][1871] : kex follows: False
2025-07-01 12:25:47,538 [DEBUG][       Thread-604560][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:25:47,538 [DEBUG][       Thread-604560][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:25:47,538 [DEBUG][       Thread-604560][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:25:47,538 [DEBUG][       Thread-604560][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:25:47,538 [DEBUG][       Thread-604560][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:25:47,538 [DEBUG][       Thread-604560][   transport.py][1871] : Compression: none
2025-07-01 12:25:47,538 [DEBUG][       Thread-604560][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:25:47,553 [DEBUG][       Thread-604560][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:25:47,553 [DEBUG][       Thread-604560][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:25:47,553 [DEBUG][       Thread-604560][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:25:47,554 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:25:47,554 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:25:47,554 [DEBUG][       Thread-604560][   transport.py][1871] : userauth is OK
2025-07-01 12:25:47,577 [ INFO][       Thread-604560][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:25:47,578 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:25:48,381 [DEBUG][       Thread-604560][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:25:48,381 [DEBUG][       Thread-604560][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:25:48,424 [DEBUG][       Thread-604560][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:25:48,424 [DEBUG][       Thread-604560][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:25:48,427 [DEBUG][       Thread-604560][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:25:48,438 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:25:48,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:25:48,439 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:25:48,440 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:25:48,443 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:25:48,444 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:25:48,445 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:25:48,445 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:25:48,445 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.433971 -999.00  +12.20  43.11     53   +2.90 1 1 2 1 1   888    0 9.83 33.14 ----- 43.1 43.1 35.6 48.5 15.4 -23.8 14.3 -24.7 14.1 -23.7 15.1 -22.1
2025-07-01 12:25:48,445 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:25:48,445 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:25:48,445 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.433971
2025-07-01 12:25:48,445 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:25:48,445 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:25:48,445 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:25:48,445 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:25:48,445 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:25:48,445 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:25:42', tmtdew=10.72, humidity=48.08, cloud=0.0, wind=29.64, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:24:55.094', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:25:48,446 [DEBUG][       Thread-604560][   transport.py][1871] : EOF in transport thread
2025-07-01 12:25:48,520 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:25:48,529 [DEBUG][       Thread-604563][   transport.py][1871] : starting thread (client mode): 0x83c8490
2025-07-01 12:25:48,529 [DEBUG][       Thread-604563][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:25:48,548 [DEBUG][       Thread-604563][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:25:48,548 [ INFO][       Thread-604563][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:25:48,556 [DEBUG][       Thread-604563][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:25:48,556 [DEBUG][       Thread-604563][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:25:48,556 [DEBUG][       Thread-604563][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:25:48,556 [DEBUG][       Thread-604563][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:25:48,556 [DEBUG][       Thread-604563][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:25:48,556 [DEBUG][       Thread-604563][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:25:48,556 [DEBUG][       Thread-604563][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:25:48,556 [DEBUG][       Thread-604563][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:25:48,556 [DEBUG][       Thread-604563][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:25:48,556 [DEBUG][       Thread-604563][   transport.py][1871] : client lang: <none>
2025-07-01 12:25:48,556 [DEBUG][       Thread-604563][   transport.py][1871] : server lang: <none>
2025-07-01 12:25:48,556 [DEBUG][       Thread-604563][   transport.py][1871] : kex follows: False
2025-07-01 12:25:48,556 [DEBUG][       Thread-604563][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:25:48,556 [DEBUG][       Thread-604563][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:25:48,556 [DEBUG][       Thread-604563][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:25:48,556 [DEBUG][       Thread-604563][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:25:48,556 [DEBUG][       Thread-604563][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:25:48,556 [DEBUG][       Thread-604563][   transport.py][1871] : Compression: none
2025-07-01 12:25:48,556 [DEBUG][       Thread-604563][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:25:48,613 [DEBUG][       Thread-604563][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:25:48,613 [DEBUG][       Thread-604563][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:25:48,613 [DEBUG][       Thread-604563][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:25:48,613 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:25:48,613 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:25:48,670 [DEBUG][       Thread-604563][   transport.py][1871] : userauth is OK
2025-07-01 12:25:48,670 [DEBUG][       Thread-604563][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:25:48,670 [DEBUG][       Thread-604563][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:25:48,670 [DEBUG][       Thread-604563][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:25:48,670 [DEBUG][       Thread-604563][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:25:48,684 [ INFO][       Thread-604563][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:25:48,684 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:25:48,684 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:25:49,682 [DEBUG][       Thread-604563][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:25:49,682 [DEBUG][       Thread-604563][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:25:49,731 [DEBUG][       Thread-604563][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:25:49,731 [DEBUG][       Thread-604563][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:25:49,739 [DEBUG][       Thread-604563][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:25:49,747 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:25:49,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-07-01 12:25: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') -> 00000000
2025-07-01 12:25:49,763 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:25:49,763 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:25:49,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:25:49,771 [DEBUG][       Thread-604563][   transport.py][1871] : EOF in transport thread
2025-07-01 12:25:54,107 [DEBUG][Thread-604565 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:25:59,774 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:25:59,774 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:25:59,774 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:25:59,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-07-01 12:26:00,265 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 25, 42), 10.72, 48.08, 0.0, 29.64, 12.08, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:26:00,265 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:25:42
2025-07-01 12:26:00,352 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:26:00,358 [DEBUG][       Thread-604566][   transport.py][1871] : starting thread (client mode): 0x8104670
2025-07-01 12:26:00,358 [DEBUG][       Thread-604566][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:26:00,380 [DEBUG][       Thread-604566][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:26:00,380 [ INFO][       Thread-604566][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:26:00,383 [DEBUG][       Thread-604566][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:26:00,383 [DEBUG][       Thread-604566][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:26:00,383 [DEBUG][       Thread-604566][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:26:00,383 [DEBUG][       Thread-604566][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:26:00,383 [DEBUG][       Thread-604566][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:26:00,383 [DEBUG][       Thread-604566][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:26:00,383 [DEBUG][       Thread-604566][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:26:00,383 [DEBUG][       Thread-604566][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:26:00,383 [DEBUG][       Thread-604566][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:26:00,383 [DEBUG][       Thread-604566][   transport.py][1871] : client lang: <none>
2025-07-01 12:26:00,383 [DEBUG][       Thread-604566][   transport.py][1871] : server lang: <none>
2025-07-01 12:26:00,383 [DEBUG][       Thread-604566][   transport.py][1871] : kex follows: False
2025-07-01 12:26:00,383 [DEBUG][       Thread-604566][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:26:00,383 [DEBUG][       Thread-604566][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:26:00,383 [DEBUG][       Thread-604566][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:26:00,383 [DEBUG][       Thread-604566][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:26:00,383 [DEBUG][       Thread-604566][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:26:00,383 [DEBUG][       Thread-604566][   transport.py][1871] : Compression: none
2025-07-01 12:26:00,383 [DEBUG][       Thread-604566][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:26:00,400 [DEBUG][       Thread-604566][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:26:00,401 [DEBUG][       Thread-604566][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:26:00,401 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:26:00,401 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:26:00,402 [DEBUG][       Thread-604566][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:26:00,403 [DEBUG][       Thread-604566][   transport.py][1871] : userauth is OK
2025-07-01 12:26:00,427 [ INFO][       Thread-604566][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:26:00,428 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:26:01,068 [DEBUG][       Thread-604566][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:26:01,068 [DEBUG][       Thread-604566][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:26:01,109 [DEBUG][       Thread-604566][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:26:01,109 [DEBUG][       Thread-604566][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:26:01,112 [DEBUG][       Thread-604566][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:26:01,125 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:26:01,125 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:26:01,127 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:26:01,129 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:26:01,135 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:26:01,137 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:26:01,137 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:26:01,138 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:26:01,138 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.434318 -999.00  +12.40  31.15     53   +3.10 1 1 2 1 1   888    0 9.94 35.26 ----- 31.1 31.1 43.6 38.6 15.5 -24.0 14.4 -23.7 14.2 -22.6 15.2 -21.6
2025-07-01 12:26:01,138 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:26:01,138 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:26:01,138 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.434318
2025-07-01 12:26:01,139 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:26:01,139 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:26:01,139 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:26:01,139 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:26:01,139 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:26:01,140 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:25:42', tmtdew=10.72, humidity=48.08, cloud=0.0, wind=29.64, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:25:25.075', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:26:01,141 [DEBUG][       Thread-604566][   transport.py][1871] : EOF in transport thread
2025-07-01 12:26:01,223 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:26:01,234 [DEBUG][       Thread-604569][   transport.py][1871] : starting thread (client mode): 0x8157730
2025-07-01 12:26:01,234 [DEBUG][       Thread-604569][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:26:01,251 [DEBUG][       Thread-604569][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:26:01,251 [ INFO][       Thread-604569][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:26:01,259 [DEBUG][       Thread-604569][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:26:01,259 [DEBUG][       Thread-604569][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:26:01,259 [DEBUG][       Thread-604569][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:26:01,259 [DEBUG][       Thread-604569][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:26:01,259 [DEBUG][       Thread-604569][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:26:01,259 [DEBUG][       Thread-604569][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:26:01,259 [DEBUG][       Thread-604569][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:26:01,259 [DEBUG][       Thread-604569][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:26:01,259 [DEBUG][       Thread-604569][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:26:01,259 [DEBUG][       Thread-604569][   transport.py][1871] : client lang: <none>
2025-07-01 12:26:01,259 [DEBUG][       Thread-604569][   transport.py][1871] : server lang: <none>
2025-07-01 12:26:01,259 [DEBUG][       Thread-604569][   transport.py][1871] : kex follows: False
2025-07-01 12:26:01,259 [DEBUG][       Thread-604569][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:26:01,259 [DEBUG][       Thread-604569][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:26:01,259 [DEBUG][       Thread-604569][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:26:01,260 [DEBUG][       Thread-604569][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:26:01,260 [DEBUG][       Thread-604569][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:26:01,260 [DEBUG][       Thread-604569][   transport.py][1871] : Compression: none
2025-07-01 12:26:01,260 [DEBUG][       Thread-604569][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:26:01,317 [DEBUG][       Thread-604569][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:26:01,317 [DEBUG][       Thread-604569][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:26:01,318 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:26:01,319 [DEBUG][       Thread-604569][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:26:01,319 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:26:01,373 [DEBUG][       Thread-604569][   transport.py][1871] : userauth is OK
2025-07-01 12:26:01,373 [DEBUG][       Thread-604569][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:26:01,373 [DEBUG][       Thread-604569][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:26:01,373 [DEBUG][       Thread-604569][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:26:01,373 [DEBUG][       Thread-604569][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:26:01,392 [ INFO][       Thread-604569][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:26:01,392 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:26:01,393 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:26:02,398 [DEBUG][       Thread-604569][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:26:02,399 [DEBUG][       Thread-604569][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:26:02,448 [DEBUG][       Thread-604569][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:26:02,448 [DEBUG][       Thread-604569][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:26:02,457 [DEBUG][       Thread-604569][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:26:02,466 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:26:02,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-07-01 12:26: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-07-01 12:26:02,484 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:26:02,485 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:26:02,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:26:02,493 [DEBUG][       Thread-604569][   transport.py][1871] : EOF in transport thread
2025-07-01 12:26:03,144 [DEBUG][Thread-604571 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:26:12,166 [DEBUG][Thread-604572 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:26:12,496 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:26:12,496 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:26:12,496 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:26:12,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-07-01 12:26:12,996 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 25, 42), 10.72, 48.08, 0.0, 29.64, 12.08, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:26:12,996 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:25:42
2025-07-01 12:26:13,083 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:26:13,087 [DEBUG][       Thread-604573][   transport.py][1871] : starting thread (client mode): 0x8156a70
2025-07-01 12:26:13,087 [DEBUG][       Thread-604573][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:26:13,107 [DEBUG][       Thread-604573][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:26:13,107 [ INFO][       Thread-604573][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:26:13,111 [DEBUG][       Thread-604573][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:26:13,111 [DEBUG][       Thread-604573][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:26:13,111 [DEBUG][       Thread-604573][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:26:13,111 [DEBUG][       Thread-604573][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:26:13,111 [DEBUG][       Thread-604573][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:26:13,111 [DEBUG][       Thread-604573][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:26:13,111 [DEBUG][       Thread-604573][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:26:13,111 [DEBUG][       Thread-604573][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:26:13,111 [DEBUG][       Thread-604573][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:26:13,111 [DEBUG][       Thread-604573][   transport.py][1871] : client lang: <none>
2025-07-01 12:26:13,111 [DEBUG][       Thread-604573][   transport.py][1871] : server lang: <none>
2025-07-01 12:26:13,111 [DEBUG][       Thread-604573][   transport.py][1871] : kex follows: False
2025-07-01 12:26:13,111 [DEBUG][       Thread-604573][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:26:13,111 [DEBUG][       Thread-604573][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:26:13,111 [DEBUG][       Thread-604573][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:26:13,111 [DEBUG][       Thread-604573][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:26:13,111 [DEBUG][       Thread-604573][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:26:13,111 [DEBUG][       Thread-604573][   transport.py][1871] : Compression: none
2025-07-01 12:26:13,111 [DEBUG][       Thread-604573][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:26:13,130 [DEBUG][       Thread-604573][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:26:13,130 [DEBUG][       Thread-604573][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:26:13,131 [DEBUG][       Thread-604573][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:26:13,131 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:26:13,131 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:26:13,133 [DEBUG][       Thread-604573][   transport.py][1871] : userauth is OK
2025-07-01 12:26:13,157 [ INFO][       Thread-604573][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:26:13,158 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:26:14,017 [DEBUG][       Thread-604573][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:26:14,017 [DEBUG][       Thread-604573][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:26:14,061 [DEBUG][       Thread-604573][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:26:14,061 [DEBUG][       Thread-604573][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:26:14,064 [DEBUG][       Thread-604573][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:26:14,076 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:26:14,076 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:26:14,078 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:26:14,080 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:26:14,086 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:26:14,088 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:26:14,088 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:26:14,089 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:26:14,089 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.434318 -999.00  +12.40  31.15     53   +3.10 1 1 2 1 1   888    0 9.94 35.26 ----- 31.1 31.1 43.6 38.6 15.5 -24.0 14.4 -23.7 14.2 -22.6 15.2 -21.6
2025-07-01 12:26:14,089 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:26:14,089 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:26:14,089 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.434318
2025-07-01 12:26:14,090 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:26:14,090 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:26:14,090 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:26:14,090 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:26:14,090 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:26:14,090 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:25:42', tmtdew=10.72, humidity=48.08, cloud=0.0, wind=29.64, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:25:25.075', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:26:14,092 [DEBUG][       Thread-604573][   transport.py][1871] : EOF in transport thread
2025-07-01 12:26:14,168 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:26:14,178 [DEBUG][       Thread-604576][   transport.py][1871] : starting thread (client mode): 0x81049d0
2025-07-01 12:26:14,178 [DEBUG][       Thread-604576][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:26:14,193 [DEBUG][       Thread-604576][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:26:14,194 [ INFO][       Thread-604576][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:26:14,201 [DEBUG][       Thread-604576][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:26:14,201 [DEBUG][       Thread-604576][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:26:14,201 [DEBUG][       Thread-604576][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:26:14,201 [DEBUG][       Thread-604576][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:26:14,201 [DEBUG][       Thread-604576][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:26:14,201 [DEBUG][       Thread-604576][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:26:14,201 [DEBUG][       Thread-604576][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:26:14,201 [DEBUG][       Thread-604576][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:26:14,202 [DEBUG][       Thread-604576][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:26:14,202 [DEBUG][       Thread-604576][   transport.py][1871] : client lang: <none>
2025-07-01 12:26:14,202 [DEBUG][       Thread-604576][   transport.py][1871] : server lang: <none>
2025-07-01 12:26:14,202 [DEBUG][       Thread-604576][   transport.py][1871] : kex follows: False
2025-07-01 12:26:14,202 [DEBUG][       Thread-604576][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:26:14,202 [DEBUG][       Thread-604576][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:26:14,202 [DEBUG][       Thread-604576][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:26:14,202 [DEBUG][       Thread-604576][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:26:14,202 [DEBUG][       Thread-604576][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:26:14,202 [DEBUG][       Thread-604576][   transport.py][1871] : Compression: none
2025-07-01 12:26:14,202 [DEBUG][       Thread-604576][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:26:14,261 [DEBUG][       Thread-604576][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:26:14,262 [DEBUG][       Thread-604576][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:26:14,262 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:26:14,263 [DEBUG][       Thread-604576][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:26:14,263 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:26:14,322 [DEBUG][       Thread-604576][   transport.py][1871] : userauth is OK
2025-07-01 12:26:14,322 [DEBUG][       Thread-604576][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:26:14,322 [DEBUG][       Thread-604576][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:26:14,322 [DEBUG][       Thread-604576][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:26:14,322 [DEBUG][       Thread-604576][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:26:14,340 [ INFO][       Thread-604576][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:26:14,341 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:26:14,341 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:26:15,375 [DEBUG][       Thread-604576][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:26:15,375 [DEBUG][       Thread-604576][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:26:15,423 [DEBUG][       Thread-604576][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:26:15,423 [DEBUG][       Thread-604576][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:26:15,432 [DEBUG][       Thread-604576][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:26:15,440 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:26:15,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-07-01 12:26:15,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-07-01 12:26:15,455 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:26:15,455 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:26:15,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:26:15,467 [DEBUG][       Thread-604576][   transport.py][1871] : EOF in transport thread
2025-07-01 12:26:15,823 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:26:15,824 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:26:21,186 [DEBUG][Thread-604578 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:26:25,464 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:26:25,464 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:26:25,464 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:26:25,465 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:26:25,988 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 26, 14), 10.7, 47.92, 0.0, 33.38, 12.08, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:26:25,988 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:26:14
2025-07-01 12:26:26,079 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:26:26,084 [DEBUG][       Thread-604579][   transport.py][1871] : starting thread (client mode): 0x81056f0
2025-07-01 12:26:26,084 [DEBUG][       Thread-604579][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:26:26,105 [DEBUG][       Thread-604579][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:26:26,105 [ INFO][       Thread-604579][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:26:26,108 [DEBUG][       Thread-604579][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:26:26,108 [DEBUG][       Thread-604579][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:26:26,108 [DEBUG][       Thread-604579][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:26:26,108 [DEBUG][       Thread-604579][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:26:26,108 [DEBUG][       Thread-604579][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:26:26,108 [DEBUG][       Thread-604579][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:26:26,108 [DEBUG][       Thread-604579][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:26:26,108 [DEBUG][       Thread-604579][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:26:26,108 [DEBUG][       Thread-604579][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:26:26,108 [DEBUG][       Thread-604579][   transport.py][1871] : client lang: <none>
2025-07-01 12:26:26,108 [DEBUG][       Thread-604579][   transport.py][1871] : server lang: <none>
2025-07-01 12:26:26,108 [DEBUG][       Thread-604579][   transport.py][1871] : kex follows: False
2025-07-01 12:26:26,108 [DEBUG][       Thread-604579][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:26:26,108 [DEBUG][       Thread-604579][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:26:26,108 [DEBUG][       Thread-604579][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:26:26,108 [DEBUG][       Thread-604579][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:26:26,108 [DEBUG][       Thread-604579][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:26:26,108 [DEBUG][       Thread-604579][   transport.py][1871] : Compression: none
2025-07-01 12:26:26,108 [DEBUG][       Thread-604579][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:26:26,123 [DEBUG][       Thread-604579][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:26:26,123 [DEBUG][       Thread-604579][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:26:26,123 [DEBUG][       Thread-604579][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:26:26,123 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:26:26,123 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:26:26,124 [DEBUG][       Thread-604579][   transport.py][1871] : userauth is OK
2025-07-01 12:26:26,147 [ INFO][       Thread-604579][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:26:26,148 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:26:26,957 [DEBUG][       Thread-604579][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:26:26,957 [DEBUG][       Thread-604579][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:26:27,000 [DEBUG][       Thread-604579][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:26:27,000 [DEBUG][       Thread-604579][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:26:27,002 [DEBUG][       Thread-604579][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:26:27,011 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:26:27,012 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:26:27,012 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:26:27,013 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:26:27,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:26:27,016 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:26:27,016 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:26:27,016 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:26:27,016 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.434318 -999.00  +12.40  31.15     53   +3.10 1 1 2 1 1   888    0 9.94 35.26 ----- 31.1 31.1 43.6 38.6 15.5 -24.0 14.4 -23.7 14.2 -22.6 15.2 -21.6
2025-07-01 12:26:27,016 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:26:27,016 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:26:27,016 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.434318
2025-07-01 12:26:27,017 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:26:27,017 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:26:27,017 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:26:27,017 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:26:27,017 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:26:27,017 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:26:14', tmtdew=10.7, humidity=47.92, cloud=0.0, wind=33.38, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:25:25.075', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:26:27,017 [DEBUG][       Thread-604579][   transport.py][1871] : EOF in transport thread
2025-07-01 12:26:27,089 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:26:27,100 [DEBUG][       Thread-604582][   transport.py][1871] : starting thread (client mode): 0x83c84f0
2025-07-01 12:26:27,100 [DEBUG][       Thread-604582][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:26:27,115 [DEBUG][       Thread-604582][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:26:27,115 [ INFO][       Thread-604582][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:26:27,123 [DEBUG][       Thread-604582][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:26:27,123 [DEBUG][       Thread-604582][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:26:27,123 [DEBUG][       Thread-604582][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:26:27,123 [DEBUG][       Thread-604582][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:26:27,123 [DEBUG][       Thread-604582][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:26:27,123 [DEBUG][       Thread-604582][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:26:27,123 [DEBUG][       Thread-604582][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:26:27,123 [DEBUG][       Thread-604582][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:26:27,123 [DEBUG][       Thread-604582][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:26:27,123 [DEBUG][       Thread-604582][   transport.py][1871] : client lang: <none>
2025-07-01 12:26:27,123 [DEBUG][       Thread-604582][   transport.py][1871] : server lang: <none>
2025-07-01 12:26:27,123 [DEBUG][       Thread-604582][   transport.py][1871] : kex follows: False
2025-07-01 12:26:27,123 [DEBUG][       Thread-604582][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:26:27,123 [DEBUG][       Thread-604582][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:26:27,123 [DEBUG][       Thread-604582][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:26:27,123 [DEBUG][       Thread-604582][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:26:27,123 [DEBUG][       Thread-604582][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:26:27,123 [DEBUG][       Thread-604582][   transport.py][1871] : Compression: none
2025-07-01 12:26:27,123 [DEBUG][       Thread-604582][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:26:27,180 [DEBUG][       Thread-604582][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:26:27,180 [DEBUG][       Thread-604582][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:26:27,180 [DEBUG][       Thread-604582][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:26:27,180 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:26:27,180 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:26:27,242 [DEBUG][       Thread-604582][   transport.py][1871] : userauth is OK
2025-07-01 12:26:27,242 [DEBUG][       Thread-604582][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:26:27,242 [DEBUG][       Thread-604582][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:26:27,242 [DEBUG][       Thread-604582][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:26:27,242 [DEBUG][       Thread-604582][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:26:27,260 [ INFO][       Thread-604582][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:26:27,260 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:26:27,260 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:26:28,259 [DEBUG][       Thread-604582][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:26:28,259 [DEBUG][       Thread-604582][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:26:28,307 [DEBUG][       Thread-604582][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:26:28,307 [DEBUG][       Thread-604582][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:26:28,315 [DEBUG][       Thread-604582][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:26:28,324 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:26:28,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-07-01 12:26:28,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-07-01 12:26:28,340 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:26:28,340 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:26:28,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:26:28,348 [DEBUG][       Thread-604582][   transport.py][1871] : EOF in transport thread
2025-07-01 12:26:29,147 [DEBUG][Thread-604584 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:26:30,206 [DEBUG][Thread-604585 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:26:38,343 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:26:38,344 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:26:38,344 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:26:38,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-07-01 12:26:38,843 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 26, 14), 10.7, 47.92, 0.0, 33.38, 12.08, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:26:38,843 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:26:14
2025-07-01 12:26:38,930 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:26:38,934 [DEBUG][       Thread-604586][   transport.py][1871] : starting thread (client mode): 0x818df30
2025-07-01 12:26:38,934 [DEBUG][       Thread-604586][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:26:38,956 [DEBUG][       Thread-604586][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:26:38,956 [ INFO][       Thread-604586][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:26:38,959 [DEBUG][       Thread-604586][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:26:38,959 [DEBUG][       Thread-604586][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:26:38,960 [DEBUG][       Thread-604586][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:26:38,960 [DEBUG][       Thread-604586][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:26:38,960 [DEBUG][       Thread-604586][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:26:38,960 [DEBUG][       Thread-604586][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:26:38,960 [DEBUG][       Thread-604586][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:26:38,960 [DEBUG][       Thread-604586][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:26:38,960 [DEBUG][       Thread-604586][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:26:38,960 [DEBUG][       Thread-604586][   transport.py][1871] : client lang: <none>
2025-07-01 12:26:38,960 [DEBUG][       Thread-604586][   transport.py][1871] : server lang: <none>
2025-07-01 12:26:38,960 [DEBUG][       Thread-604586][   transport.py][1871] : kex follows: False
2025-07-01 12:26:38,960 [DEBUG][       Thread-604586][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:26:38,960 [DEBUG][       Thread-604586][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:26:38,960 [DEBUG][       Thread-604586][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:26:38,960 [DEBUG][       Thread-604586][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:26:38,960 [DEBUG][       Thread-604586][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:26:38,960 [DEBUG][       Thread-604586][   transport.py][1871] : Compression: none
2025-07-01 12:26:38,960 [DEBUG][       Thread-604586][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:26:38,979 [DEBUG][       Thread-604586][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:26:38,979 [DEBUG][       Thread-604586][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:26:38,980 [DEBUG][       Thread-604586][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:26:38,980 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:26:38,980 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:26:38,982 [DEBUG][       Thread-604586][   transport.py][1871] : userauth is OK
2025-07-01 12:26:39,006 [ INFO][       Thread-604586][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:26:39,007 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:26:39,240 [DEBUG][Thread-604588 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:26:39,645 [DEBUG][       Thread-604586][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:26:39,645 [DEBUG][       Thread-604586][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:26:39,689 [DEBUG][       Thread-604586][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:26:39,689 [DEBUG][       Thread-604586][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:26:39,692 [DEBUG][       Thread-604586][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:26:39,706 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:26:39,706 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:26:39,708 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:26:39,710 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:26:39,715 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:26:39,717 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:26:39,717 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:26:39,717 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:26:39,718 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.435013 -999.00  +12.50  27.22     52   +3.10 1 1 1 1 1   888    0 10.15 36.10 ----- 27.2 27.2 41.5 41.7 15.7 -23.6 14.6 -23.8 14.4 -22.6 15.4 -21.7
2025-07-01 12:26:39,718 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:26:39,718 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:26:39,718 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.435013
2025-07-01 12:26:39,718 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:26:39,719 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:26:39,719 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:26:39,719 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:26:39,719 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:26:39,719 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:26:14', tmtdew=10.7, humidity=47.92, cloud=0.0, wind=33.38, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:26:25.123', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:26:39,719 [DEBUG][       Thread-604586][   transport.py][1871] : EOF in transport thread
2025-07-01 12:26:39,804 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:26:39,813 [DEBUG][       Thread-604590][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 12:26:39,813 [DEBUG][       Thread-604590][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:26:39,835 [DEBUG][       Thread-604590][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:26:39,836 [ INFO][       Thread-604590][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:26:39,848 [DEBUG][       Thread-604590][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:26:39,848 [DEBUG][       Thread-604590][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:26:39,849 [DEBUG][       Thread-604590][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:26:39,849 [DEBUG][       Thread-604590][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:26:39,849 [DEBUG][       Thread-604590][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:26:39,849 [DEBUG][       Thread-604590][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:26:39,849 [DEBUG][       Thread-604590][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:26:39,849 [DEBUG][       Thread-604590][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:26:39,849 [DEBUG][       Thread-604590][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:26:39,849 [DEBUG][       Thread-604590][   transport.py][1871] : client lang: <none>
2025-07-01 12:26:39,849 [DEBUG][       Thread-604590][   transport.py][1871] : server lang: <none>
2025-07-01 12:26:39,849 [DEBUG][       Thread-604590][   transport.py][1871] : kex follows: False
2025-07-01 12:26:39,849 [DEBUG][       Thread-604590][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:26:39,849 [DEBUG][       Thread-604590][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:26:39,849 [DEBUG][       Thread-604590][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:26:39,849 [DEBUG][       Thread-604590][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:26:39,849 [DEBUG][       Thread-604590][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:26:39,849 [DEBUG][       Thread-604590][   transport.py][1871] : Compression: none
2025-07-01 12:26:39,850 [DEBUG][       Thread-604590][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:26:39,907 [DEBUG][       Thread-604590][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:26:39,907 [DEBUG][       Thread-604590][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:26:39,908 [DEBUG][       Thread-604590][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:26:39,908 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:26:39,909 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:26:39,965 [DEBUG][       Thread-604590][   transport.py][1871] : userauth is OK
2025-07-01 12:26:39,965 [DEBUG][       Thread-604590][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:26:39,965 [DEBUG][       Thread-604590][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:26:39,965 [DEBUG][       Thread-604590][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:26:39,965 [DEBUG][       Thread-604590][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:26:39,979 [ INFO][       Thread-604590][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:26:39,979 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:26:39,979 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:26:40,995 [DEBUG][       Thread-604590][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:26:40,995 [DEBUG][       Thread-604590][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:26:41,045 [DEBUG][       Thread-604590][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:26:41,045 [DEBUG][       Thread-604590][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:26:41,057 [DEBUG][       Thread-604590][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:26:41,066 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:26:41,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-07-01 12:26:41,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-07-01 12:26:41,089 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:26:41,089 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:26:41,090 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:26:41,100 [DEBUG][       Thread-604590][   transport.py][1871] : EOF in transport thread
2025-07-01 12:26:48,261 [DEBUG][Thread-604592 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:26:51,100 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:26:51,101 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:26:51,101 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:26:51,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-07-01 12:26:51,590 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 26, 46), 10.65, 48.06, 0.0, 34.53, 12.04, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:26:51,590 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:26:46
2025-07-01 12:26:51,676 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:26:51,682 [DEBUG][       Thread-604593][   transport.py][1871] : starting thread (client mode): 0x818fb20
2025-07-01 12:26:51,682 [DEBUG][       Thread-604593][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:26:51,703 [DEBUG][       Thread-604593][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:26:51,703 [ INFO][       Thread-604593][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:26:51,708 [DEBUG][       Thread-604593][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:26:51,708 [DEBUG][       Thread-604593][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:26:51,708 [DEBUG][       Thread-604593][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:26:51,708 [DEBUG][       Thread-604593][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:26:51,708 [DEBUG][       Thread-604593][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:26:51,708 [DEBUG][       Thread-604593][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:26:51,708 [DEBUG][       Thread-604593][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:26:51,708 [DEBUG][       Thread-604593][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:26:51,708 [DEBUG][       Thread-604593][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:26:51,708 [DEBUG][       Thread-604593][   transport.py][1871] : client lang: <none>
2025-07-01 12:26:51,708 [DEBUG][       Thread-604593][   transport.py][1871] : server lang: <none>
2025-07-01 12:26:51,708 [DEBUG][       Thread-604593][   transport.py][1871] : kex follows: False
2025-07-01 12:26:51,708 [DEBUG][       Thread-604593][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:26:51,708 [DEBUG][       Thread-604593][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:26:51,708 [DEBUG][       Thread-604593][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:26:51,709 [DEBUG][       Thread-604593][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:26:51,709 [DEBUG][       Thread-604593][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:26:51,709 [DEBUG][       Thread-604593][   transport.py][1871] : Compression: none
2025-07-01 12:26:51,709 [DEBUG][       Thread-604593][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:26:51,725 [DEBUG][       Thread-604593][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:26:51,726 [DEBUG][       Thread-604593][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:26:51,726 [DEBUG][       Thread-604593][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:26:51,727 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:26:51,727 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:26:51,728 [DEBUG][       Thread-604593][   transport.py][1871] : userauth is OK
2025-07-01 12:26:51,753 [ INFO][       Thread-604593][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:26:51,754 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:26:52,445 [DEBUG][       Thread-604593][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:26:52,445 [DEBUG][       Thread-604593][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:26:52,489 [DEBUG][       Thread-604593][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:26:52,489 [DEBUG][       Thread-604593][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:26:52,491 [DEBUG][       Thread-604593][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:26:52,504 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:26:52,504 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:26:52,506 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:26:52,507 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:26:52,512 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:26:52,514 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:26:52,514 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:26:52,514 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:26:52,515 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.435013 -999.00  +12.50  27.22     52   +3.10 1 1 1 1 1   888    0 10.15 36.10 ----- 27.2 27.2 41.5 41.7 15.7 -23.6 14.6 -23.8 14.4 -22.6 15.4 -21.7
2025-07-01 12:26:52,515 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:26:52,515 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:26:52,515 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.435013
2025-07-01 12:26:52,515 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:26:52,516 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:26:52,516 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:26:52,516 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:26:52,516 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:26:52,516 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:26:46', tmtdew=10.65, humidity=48.06, cloud=0.0, wind=34.53, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:26:25.123', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:26:52,517 [DEBUG][       Thread-604593][   transport.py][1871] : EOF in transport thread
2025-07-01 12:26:52,601 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:26:52,612 [DEBUG][       Thread-604596][   transport.py][1871] : starting thread (client mode): 0x8154370
2025-07-01 12:26:52,612 [DEBUG][       Thread-604596][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:26:52,627 [DEBUG][       Thread-604596][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:26:52,627 [ INFO][       Thread-604596][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:26:52,640 [DEBUG][       Thread-604596][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:26:52,640 [DEBUG][       Thread-604596][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:26:52,640 [DEBUG][       Thread-604596][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:26:52,640 [DEBUG][       Thread-604596][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:26:52,640 [DEBUG][       Thread-604596][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:26:52,640 [DEBUG][       Thread-604596][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:26:52,640 [DEBUG][       Thread-604596][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:26:52,640 [DEBUG][       Thread-604596][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:26:52,640 [DEBUG][       Thread-604596][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:26:52,641 [DEBUG][       Thread-604596][   transport.py][1871] : client lang: <none>
2025-07-01 12:26:52,641 [DEBUG][       Thread-604596][   transport.py][1871] : server lang: <none>
2025-07-01 12:26:52,641 [DEBUG][       Thread-604596][   transport.py][1871] : kex follows: False
2025-07-01 12:26:52,641 [DEBUG][       Thread-604596][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:26:52,641 [DEBUG][       Thread-604596][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:26:52,641 [DEBUG][       Thread-604596][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:26:52,641 [DEBUG][       Thread-604596][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:26:52,641 [DEBUG][       Thread-604596][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:26:52,641 [DEBUG][       Thread-604596][   transport.py][1871] : Compression: none
2025-07-01 12:26:52,641 [DEBUG][       Thread-604596][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:26:52,694 [DEBUG][       Thread-604596][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:26:52,695 [DEBUG][       Thread-604596][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:26:52,696 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:26:52,696 [DEBUG][       Thread-604596][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:26:52,697 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:26:52,762 [DEBUG][       Thread-604596][   transport.py][1871] : userauth is OK
2025-07-01 12:26:52,762 [DEBUG][       Thread-604596][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:26:52,762 [DEBUG][       Thread-604596][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:26:52,762 [DEBUG][       Thread-604596][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:26:52,762 [DEBUG][       Thread-604596][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:26:52,781 [ INFO][       Thread-604596][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:26:52,782 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:26:52,782 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:26:53,836 [DEBUG][       Thread-604596][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:26:53,836 [DEBUG][       Thread-604596][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:26:53,884 [DEBUG][       Thread-604596][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:26:53,884 [DEBUG][       Thread-604596][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:26:53,894 [DEBUG][       Thread-604596][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:26:53,903 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:26: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-07-01 12:26: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-07-01 12:26:53,925 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:26:53,925 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:26:53,926 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:26:53,934 [DEBUG][       Thread-604596][   transport.py][1871] : EOF in transport thread
2025-07-01 12:26:57,282 [DEBUG][Thread-604598 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:27:03,936 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:27:03,936 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:27:03,936 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:27:03,937 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:27:04,451 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 26, 46), 10.65, 48.06, 0.0, 34.53, 12.04, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:27:04,451 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:26:46
2025-07-01 12:27:04,539 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:27:04,542 [DEBUG][       Thread-604599][   transport.py][1871] : starting thread (client mode): 0x8155cc0
2025-07-01 12:27:04,543 [DEBUG][       Thread-604599][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:27:04,563 [DEBUG][       Thread-604599][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:27:04,563 [ INFO][       Thread-604599][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:27:04,566 [DEBUG][       Thread-604599][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:27:04,566 [DEBUG][       Thread-604599][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:27:04,566 [DEBUG][       Thread-604599][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:27:04,566 [DEBUG][       Thread-604599][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:27:04,566 [DEBUG][       Thread-604599][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:27:04,566 [DEBUG][       Thread-604599][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:27:04,566 [DEBUG][       Thread-604599][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:27:04,566 [DEBUG][       Thread-604599][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:27:04,566 [DEBUG][       Thread-604599][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:27:04,566 [DEBUG][       Thread-604599][   transport.py][1871] : client lang: <none>
2025-07-01 12:27:04,566 [DEBUG][       Thread-604599][   transport.py][1871] : server lang: <none>
2025-07-01 12:27:04,566 [DEBUG][       Thread-604599][   transport.py][1871] : kex follows: False
2025-07-01 12:27:04,566 [DEBUG][       Thread-604599][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:27:04,566 [DEBUG][       Thread-604599][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:27:04,566 [DEBUG][       Thread-604599][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:27:04,566 [DEBUG][       Thread-604599][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:27:04,566 [DEBUG][       Thread-604599][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:27:04,566 [DEBUG][       Thread-604599][   transport.py][1871] : Compression: none
2025-07-01 12:27:04,567 [DEBUG][       Thread-604599][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:27:04,582 [DEBUG][       Thread-604599][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:27:04,582 [DEBUG][       Thread-604599][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:27:04,582 [DEBUG][       Thread-604599][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:27:04,582 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:27:04,582 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:27:04,583 [DEBUG][       Thread-604599][   transport.py][1871] : userauth is OK
2025-07-01 12:27:04,595 [ INFO][       Thread-604599][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:27:04,596 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:27:05,273 [DEBUG][       Thread-604599][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:27:05,273 [DEBUG][       Thread-604599][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:27:05,316 [DEBUG][       Thread-604599][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:27:05,316 [DEBUG][       Thread-604599][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:27:05,318 [DEBUG][       Thread-604599][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:27:05,325 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:27:05,325 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:27:05,326 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:27:05,327 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:27:05,329 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:27:05,330 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:27:05,330 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:27:05,330 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:27:05,330 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.435360 -999.00  +12.80  26.55     52   +3.20 1 1 1 1 1   888    0 9.93 37.27 ----- 26.6 26.6 16.0 36.2 15.8 -23.8 14.8 -24.4 14.5 -22.9 15.5 -22.6
2025-07-01 12:27:05,330 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:27:05,330 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:27:05,330 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.435360
2025-07-01 12:27:05,330 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:27:05,330 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:27:05,330 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:27:05,330 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:27:05,330 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:27:05,330 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:26:46', tmtdew=10.65, humidity=48.06, cloud=0.0, wind=34.53, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:26:55.104', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:27:05,330 [DEBUG][       Thread-604599][   transport.py][1871] : EOF in transport thread
2025-07-01 12:27:05,402 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:27:05,411 [DEBUG][       Thread-604602][   transport.py][1871] : starting thread (client mode): 0x818f160
2025-07-01 12:27:05,411 [DEBUG][       Thread-604602][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:27:05,430 [DEBUG][       Thread-604602][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:27:05,430 [ INFO][       Thread-604602][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:27:05,442 [DEBUG][       Thread-604602][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:27:05,442 [DEBUG][       Thread-604602][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:27:05,442 [DEBUG][       Thread-604602][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:27:05,442 [DEBUG][       Thread-604602][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:27:05,442 [DEBUG][       Thread-604602][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:27:05,442 [DEBUG][       Thread-604602][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:27:05,442 [DEBUG][       Thread-604602][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:27:05,442 [DEBUG][       Thread-604602][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:27:05,442 [DEBUG][       Thread-604602][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:27:05,442 [DEBUG][       Thread-604602][   transport.py][1871] : client lang: <none>
2025-07-01 12:27:05,442 [DEBUG][       Thread-604602][   transport.py][1871] : server lang: <none>
2025-07-01 12:27:05,442 [DEBUG][       Thread-604602][   transport.py][1871] : kex follows: False
2025-07-01 12:27:05,442 [DEBUG][       Thread-604602][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:27:05,442 [DEBUG][       Thread-604602][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:27:05,442 [DEBUG][       Thread-604602][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:27:05,442 [DEBUG][       Thread-604602][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:27:05,442 [DEBUG][       Thread-604602][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:27:05,442 [DEBUG][       Thread-604602][   transport.py][1871] : Compression: none
2025-07-01 12:27:05,442 [DEBUG][       Thread-604602][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:27:05,500 [DEBUG][       Thread-604602][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:27:05,500 [DEBUG][       Thread-604602][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:27:05,501 [DEBUG][       Thread-604602][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:27:05,501 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:27:05,501 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:27:05,557 [DEBUG][       Thread-604602][   transport.py][1871] : userauth is OK
2025-07-01 12:27:05,557 [DEBUG][       Thread-604602][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:27:05,557 [DEBUG][       Thread-604602][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:27:05,557 [DEBUG][       Thread-604602][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:27:05,557 [DEBUG][       Thread-604602][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:27:05,572 [ INFO][       Thread-604602][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:27:05,572 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:27:05,572 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:27:06,322 [DEBUG][Thread-604604 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:27:06,561 [DEBUG][       Thread-604602][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:27:06,561 [DEBUG][       Thread-604602][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:27:06,611 [DEBUG][       Thread-604602][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:27:06,611 [DEBUG][       Thread-604602][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:27:06,620 [DEBUG][       Thread-604602][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:27:06,628 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:27:06,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-07-01 12:27:06,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-07-01 12:27:06,644 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:27:06,644 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:27:06,644 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:27:06,652 [DEBUG][       Thread-604602][   transport.py][1871] : EOF in transport thread
2025-07-01 12:27:15,341 [DEBUG][Thread-604605 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:27:15,961 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:27:15,963 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:27:16,654 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:27:16,654 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:27:16,655 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:27:16,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-07-01 12:27:17,152 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 26, 46), 10.65, 48.06, 0.0, 34.53, 12.04, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:27:17,152 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:26:46
2025-07-01 12:27:17,239 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:27:17,245 [DEBUG][       Thread-604606][   transport.py][1871] : starting thread (client mode): 0x82b31f0
2025-07-01 12:27:17,245 [DEBUG][       Thread-604606][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:27:17,266 [DEBUG][       Thread-604606][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:27:17,266 [ INFO][       Thread-604606][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:27:17,269 [DEBUG][       Thread-604606][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:27:17,269 [DEBUG][       Thread-604606][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:27:17,269 [DEBUG][       Thread-604606][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:27:17,269 [DEBUG][       Thread-604606][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:27:17,269 [DEBUG][       Thread-604606][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:27:17,269 [DEBUG][       Thread-604606][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:27:17,269 [DEBUG][       Thread-604606][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:27:17,269 [DEBUG][       Thread-604606][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:27:17,269 [DEBUG][       Thread-604606][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:27:17,269 [DEBUG][       Thread-604606][   transport.py][1871] : client lang: <none>
2025-07-01 12:27:17,269 [DEBUG][       Thread-604606][   transport.py][1871] : server lang: <none>
2025-07-01 12:27:17,269 [DEBUG][       Thread-604606][   transport.py][1871] : kex follows: False
2025-07-01 12:27:17,269 [DEBUG][       Thread-604606][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:27:17,269 [DEBUG][       Thread-604606][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:27:17,269 [DEBUG][       Thread-604606][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:27:17,270 [DEBUG][       Thread-604606][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:27:17,270 [DEBUG][       Thread-604606][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:27:17,270 [DEBUG][       Thread-604606][   transport.py][1871] : Compression: none
2025-07-01 12:27:17,270 [DEBUG][       Thread-604606][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:27:17,284 [DEBUG][       Thread-604606][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:27:17,284 [DEBUG][       Thread-604606][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:27:17,285 [DEBUG][       Thread-604606][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:27:17,285 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:27:17,285 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:27:17,285 [DEBUG][       Thread-604606][   transport.py][1871] : userauth is OK
2025-07-01 12:27:17,309 [ INFO][       Thread-604606][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:27:17,309 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:27:17,983 [DEBUG][       Thread-604606][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:27:17,983 [DEBUG][       Thread-604606][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:27:18,025 [DEBUG][       Thread-604606][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:27:18,025 [DEBUG][       Thread-604606][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:27:18,027 [DEBUG][       Thread-604606][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:27:18,039 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:27:18,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:27:18,041 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:27:18,043 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:27:18,047 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:27:18,049 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:27:18,049 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:27:18,050 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:27:18,050 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.435360 -999.00  +12.80  26.55     52   +3.20 1 1 1 1 1   888    0 9.93 37.27 ----- 26.6 26.6 16.0 36.2 15.8 -23.8 14.8 -24.4 14.5 -22.9 15.5 -22.6
2025-07-01 12:27:18,050 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:27:18,050 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:27:18,050 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.435360
2025-07-01 12:27:18,050 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:27:18,051 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:27:18,051 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:27:18,051 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:27:18,051 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:27:18,051 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:26:46', tmtdew=10.65, humidity=48.06, cloud=0.0, wind=34.53, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:26:55.104', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:27:18,051 [DEBUG][       Thread-604606][   transport.py][1871] : EOF in transport thread
2025-07-01 12:27:18,135 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:27:18,145 [DEBUG][       Thread-604609][   transport.py][1871] : starting thread (client mode): 0x83c82e0
2025-07-01 12:27:18,145 [DEBUG][       Thread-604609][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:27:18,161 [DEBUG][       Thread-604609][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:27:18,161 [ INFO][       Thread-604609][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:27:18,169 [DEBUG][       Thread-604609][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:27:18,169 [DEBUG][       Thread-604609][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:27:18,169 [DEBUG][       Thread-604609][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:27:18,169 [DEBUG][       Thread-604609][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:27:18,169 [DEBUG][       Thread-604609][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:27:18,169 [DEBUG][       Thread-604609][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:27:18,169 [DEBUG][       Thread-604609][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:27:18,169 [DEBUG][       Thread-604609][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:27:18,169 [DEBUG][       Thread-604609][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:27:18,169 [DEBUG][       Thread-604609][   transport.py][1871] : client lang: <none>
2025-07-01 12:27:18,170 [DEBUG][       Thread-604609][   transport.py][1871] : server lang: <none>
2025-07-01 12:27:18,170 [DEBUG][       Thread-604609][   transport.py][1871] : kex follows: False
2025-07-01 12:27:18,170 [DEBUG][       Thread-604609][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:27:18,170 [DEBUG][       Thread-604609][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:27:18,170 [DEBUG][       Thread-604609][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:27:18,170 [DEBUG][       Thread-604609][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:27:18,170 [DEBUG][       Thread-604609][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:27:18,170 [DEBUG][       Thread-604609][   transport.py][1871] : Compression: none
2025-07-01 12:27:18,170 [DEBUG][       Thread-604609][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:27:18,226 [DEBUG][       Thread-604609][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:27:18,226 [DEBUG][       Thread-604609][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:27:18,227 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:27:18,227 [DEBUG][       Thread-604609][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:27:18,228 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:27:18,282 [DEBUG][       Thread-604609][   transport.py][1871] : userauth is OK
2025-07-01 12:27:18,282 [DEBUG][       Thread-604609][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:27:18,282 [DEBUG][       Thread-604609][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:27:18,282 [DEBUG][       Thread-604609][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:27:18,283 [DEBUG][       Thread-604609][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:27:18,301 [ INFO][       Thread-604609][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:27:18,301 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:27:18,301 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:27:19,337 [DEBUG][       Thread-604609][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:27:19,337 [DEBUG][       Thread-604609][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:27:19,387 [DEBUG][       Thread-604609][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:27:19,387 [DEBUG][       Thread-604609][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:27:19,396 [DEBUG][       Thread-604609][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:27:19,404 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:27:19,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-07-01 12:27:19,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-07-01 12:27:19,420 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:27:19,420 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:27:19,420 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:27:19,428 [DEBUG][       Thread-604609][   transport.py][1871] : EOF in transport thread
2025-07-01 12:27:24,365 [DEBUG][Thread-604611 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:27:29,201 [DEBUG][Thread-604612 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:27:29,428 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:27:29,428 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:27:29,428 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:27:29,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-07-01 12:27:29,927 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 27, 18), 10.75, 47.73, 0.0, 29.38, 12.11, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:27:29,927 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:27:18
2025-07-01 12:27:30,013 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:27:30,019 [DEBUG][       Thread-604613][   transport.py][1871] : starting thread (client mode): 0x8155840
2025-07-01 12:27:30,019 [DEBUG][       Thread-604613][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:27:30,039 [DEBUG][       Thread-604613][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:27:30,039 [ INFO][       Thread-604613][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:27:30,042 [DEBUG][       Thread-604613][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:27:30,042 [DEBUG][       Thread-604613][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:27:30,042 [DEBUG][       Thread-604613][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:27:30,042 [DEBUG][       Thread-604613][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:27:30,043 [DEBUG][       Thread-604613][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:27:30,043 [DEBUG][       Thread-604613][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:27:30,043 [DEBUG][       Thread-604613][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:27:30,043 [DEBUG][       Thread-604613][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:27:30,043 [DEBUG][       Thread-604613][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:27:30,043 [DEBUG][       Thread-604613][   transport.py][1871] : client lang: <none>
2025-07-01 12:27:30,043 [DEBUG][       Thread-604613][   transport.py][1871] : server lang: <none>
2025-07-01 12:27:30,043 [DEBUG][       Thread-604613][   transport.py][1871] : kex follows: False
2025-07-01 12:27:30,043 [DEBUG][       Thread-604613][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:27:30,043 [DEBUG][       Thread-604613][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:27:30,043 [DEBUG][       Thread-604613][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:27:30,043 [DEBUG][       Thread-604613][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:27:30,043 [DEBUG][       Thread-604613][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:27:30,043 [DEBUG][       Thread-604613][   transport.py][1871] : Compression: none
2025-07-01 12:27:30,043 [DEBUG][       Thread-604613][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:27:30,059 [DEBUG][       Thread-604613][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:27:30,059 [DEBUG][       Thread-604613][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:27:30,060 [DEBUG][       Thread-604613][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:27:30,060 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:27:30,060 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:27:30,061 [DEBUG][       Thread-604613][   transport.py][1871] : userauth is OK
2025-07-01 12:27:30,075 [ INFO][       Thread-604613][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:27:30,075 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:27:30,726 [DEBUG][       Thread-604613][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:27:30,727 [DEBUG][       Thread-604613][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:27:30,769 [DEBUG][       Thread-604613][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:27:30,769 [DEBUG][       Thread-604613][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:27:30,772 [DEBUG][       Thread-604613][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:27:30,785 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:27:30,785 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:27:30,787 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:27:30,789 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:27:30,795 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:27:30,797 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:27:30,797 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:27:30,798 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:27:30,798 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.435360 -999.00  +12.80  26.55     52   +3.20 1 1 1 1 1   888    0 9.93 37.27 ----- 26.6 26.6 16.0 36.2 15.8 -23.8 14.8 -24.4 14.5 -22.9 15.5 -22.6
2025-07-01 12:27:30,798 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:27:30,798 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:27:30,798 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.435360
2025-07-01 12:27:30,798 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:27:30,799 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:27:30,799 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:27:30,799 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:27:30,799 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:27:30,799 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:27:18', tmtdew=10.75, humidity=47.73, cloud=0.0, wind=29.38, temperature=12.11, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:26:55.104', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:27:30,800 [DEBUG][       Thread-604613][   transport.py][1871] : EOF in transport thread
2025-07-01 12:27:30,883 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:27:30,895 [DEBUG][       Thread-604616][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 12:27:30,895 [DEBUG][       Thread-604616][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:27:30,910 [DEBUG][       Thread-604616][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:27:30,910 [ INFO][       Thread-604616][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:27:30,918 [DEBUG][       Thread-604616][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:27:30,918 [DEBUG][       Thread-604616][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:27:30,918 [DEBUG][       Thread-604616][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:27:30,918 [DEBUG][       Thread-604616][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:27:30,918 [DEBUG][       Thread-604616][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:27:30,918 [DEBUG][       Thread-604616][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:27:30,918 [DEBUG][       Thread-604616][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:27:30,918 [DEBUG][       Thread-604616][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:27:30,918 [DEBUG][       Thread-604616][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:27:30,918 [DEBUG][       Thread-604616][   transport.py][1871] : client lang: <none>
2025-07-01 12:27:30,918 [DEBUG][       Thread-604616][   transport.py][1871] : server lang: <none>
2025-07-01 12:27:30,918 [DEBUG][       Thread-604616][   transport.py][1871] : kex follows: False
2025-07-01 12:27:30,918 [DEBUG][       Thread-604616][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:27:30,919 [DEBUG][       Thread-604616][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:27:30,919 [DEBUG][       Thread-604616][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:27:30,919 [DEBUG][       Thread-604616][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:27:30,919 [DEBUG][       Thread-604616][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:27:30,919 [DEBUG][       Thread-604616][   transport.py][1871] : Compression: none
2025-07-01 12:27:30,919 [DEBUG][       Thread-604616][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:27:30,974 [DEBUG][       Thread-604616][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:27:30,975 [DEBUG][       Thread-604616][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:27:30,975 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:27:30,976 [DEBUG][       Thread-604616][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:27:30,977 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:27:31,030 [DEBUG][       Thread-604616][   transport.py][1871] : userauth is OK
2025-07-01 12:27:31,030 [DEBUG][       Thread-604616][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:27:31,030 [DEBUG][       Thread-604616][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:27:31,031 [DEBUG][       Thread-604616][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:27:31,031 [DEBUG][       Thread-604616][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:27:31,050 [ INFO][       Thread-604616][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:27:31,050 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:27:31,051 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:27:32,065 [DEBUG][       Thread-604616][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:27:32,065 [DEBUG][       Thread-604616][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:27:32,116 [DEBUG][       Thread-604616][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:27:32,116 [DEBUG][       Thread-604616][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:27:32,126 [DEBUG][       Thread-604616][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:27:32,137 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:27:32,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-07-01 12:27:32,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-07-01 12:27:32,156 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:27:32,156 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:27:32,157 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:27:32,165 [DEBUG][       Thread-604616][   transport.py][1871] : EOF in transport thread
2025-07-01 12:27:33,387 [DEBUG][Thread-604618 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:27:42,167 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:27:42,167 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:27:42,167 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:27:42,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-07-01 12:27:42,427 [DEBUG][Thread-604619 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:27:42,687 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 27, 18), 10.75, 47.73, 0.0, 29.38, 12.11, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:27:42,687 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:27:18
2025-07-01 12:27:42,775 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:27:42,779 [DEBUG][       Thread-604620][   transport.py][1871] : starting thread (client mode): 0x8155c60
2025-07-01 12:27:42,779 [DEBUG][       Thread-604620][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:27:42,800 [DEBUG][       Thread-604620][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:27:42,800 [ INFO][       Thread-604620][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:27:42,804 [DEBUG][       Thread-604620][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:27:42,804 [DEBUG][       Thread-604620][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:27:42,804 [DEBUG][       Thread-604620][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:27:42,804 [DEBUG][       Thread-604620][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:27:42,804 [DEBUG][       Thread-604620][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:27:42,804 [DEBUG][       Thread-604620][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:27:42,804 [DEBUG][       Thread-604620][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:27:42,804 [DEBUG][       Thread-604620][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:27:42,804 [DEBUG][       Thread-604620][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:27:42,804 [DEBUG][       Thread-604620][   transport.py][1871] : client lang: <none>
2025-07-01 12:27:42,804 [DEBUG][       Thread-604620][   transport.py][1871] : server lang: <none>
2025-07-01 12:27:42,804 [DEBUG][       Thread-604620][   transport.py][1871] : kex follows: False
2025-07-01 12:27:42,804 [DEBUG][       Thread-604620][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:27:42,804 [DEBUG][       Thread-604620][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:27:42,804 [DEBUG][       Thread-604620][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:27:42,804 [DEBUG][       Thread-604620][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:27:42,804 [DEBUG][       Thread-604620][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:27:42,804 [DEBUG][       Thread-604620][   transport.py][1871] : Compression: none
2025-07-01 12:27:42,804 [DEBUG][       Thread-604620][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:27:42,823 [DEBUG][       Thread-604620][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:27:42,823 [DEBUG][       Thread-604620][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:27:42,824 [DEBUG][       Thread-604620][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:27:42,824 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:27:42,824 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:27:42,824 [DEBUG][       Thread-604620][   transport.py][1871] : userauth is OK
2025-07-01 12:27:42,849 [ INFO][       Thread-604620][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:27:42,849 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:27:43,516 [DEBUG][       Thread-604620][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:27:43,516 [DEBUG][       Thread-604620][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:27:43,556 [DEBUG][       Thread-604620][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:27:43,557 [DEBUG][       Thread-604620][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:27:43,559 [DEBUG][       Thread-604620][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:27:43,571 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:27:43,571 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:27:43,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:27:43,573 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:27:43,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:27:43,576 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:27:43,576 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:27:43,576 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:27:43,576 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.435707 -999.00  +12.70  33.12     51   +2.90 1 1 2 1 1   888    0 10.11 40.91 ----- 33.1 33.1 41.4 42.3 15.9 -24.7 14.8 -25.1 14.5 -24.1 15.6 -22.5
2025-07-01 12:27:43,576 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:27:43,576 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:27:43,576 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.435707
2025-07-01 12:27:43,576 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:27:43,577 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:27:43,577 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:27:43,577 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:27:43,577 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:27:43,577 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:27:18', tmtdew=10.75, humidity=47.73, cloud=0.0, wind=29.38, temperature=12.11, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:27:25.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:27:43,577 [DEBUG][       Thread-604620][   transport.py][1871] : EOF in transport thread
2025-07-01 12:27:43,649 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:27:43,661 [DEBUG][       Thread-604623][   transport.py][1871] : starting thread (client mode): 0x83c82e0
2025-07-01 12:27:43,661 [DEBUG][       Thread-604623][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:27:43,678 [DEBUG][       Thread-604623][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:27:43,678 [ INFO][       Thread-604623][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:27:43,686 [DEBUG][       Thread-604623][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:27:43,686 [DEBUG][       Thread-604623][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:27:43,686 [DEBUG][       Thread-604623][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:27:43,686 [DEBUG][       Thread-604623][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:27:43,686 [DEBUG][       Thread-604623][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:27:43,686 [DEBUG][       Thread-604623][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:27:43,686 [DEBUG][       Thread-604623][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:27:43,686 [DEBUG][       Thread-604623][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:27:43,686 [DEBUG][       Thread-604623][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:27:43,686 [DEBUG][       Thread-604623][   transport.py][1871] : client lang: <none>
2025-07-01 12:27:43,686 [DEBUG][       Thread-604623][   transport.py][1871] : server lang: <none>
2025-07-01 12:27:43,686 [DEBUG][       Thread-604623][   transport.py][1871] : kex follows: False
2025-07-01 12:27:43,686 [DEBUG][       Thread-604623][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:27:43,686 [DEBUG][       Thread-604623][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:27:43,686 [DEBUG][       Thread-604623][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:27:43,686 [DEBUG][       Thread-604623][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:27:43,686 [DEBUG][       Thread-604623][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:27:43,686 [DEBUG][       Thread-604623][   transport.py][1871] : Compression: none
2025-07-01 12:27:43,686 [DEBUG][       Thread-604623][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:27:43,740 [DEBUG][       Thread-604623][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:27:43,741 [DEBUG][       Thread-604623][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:27:43,741 [DEBUG][       Thread-604623][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:27:43,741 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:27:43,741 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:27:43,798 [DEBUG][       Thread-604623][   transport.py][1871] : userauth is OK
2025-07-01 12:27:43,798 [DEBUG][       Thread-604623][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:27:43,798 [DEBUG][       Thread-604623][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:27:43,798 [DEBUG][       Thread-604623][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:27:43,798 [DEBUG][       Thread-604623][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:27:43,813 [ INFO][       Thread-604623][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:27:43,813 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:27:43,813 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:27:44,805 [DEBUG][       Thread-604623][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:27:44,805 [DEBUG][       Thread-604623][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:27:44,855 [DEBUG][       Thread-604623][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:27:44,855 [DEBUG][       Thread-604623][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:27:44,864 [DEBUG][       Thread-604623][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:27:44,874 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:27:44,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')
2025-07-01 12:27: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') -> 00000000
2025-07-01 12:27:44,890 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:27:44,890 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:27:44,890 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:27:44,898 [DEBUG][       Thread-604623][   transport.py][1871] : EOF in transport thread
2025-07-01 12:27:51,444 [DEBUG][Thread-604625 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:27:54,900 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:27:54,900 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:27:54,901 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:27:54,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-07-01 12:27:55,400 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 27, 50), 10.76, 47.74, 0.0, 30.86, 12.18, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:27:55,400 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:27:50
2025-07-01 12:27:55,486 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:27:55,492 [DEBUG][       Thread-604626][   transport.py][1871] : starting thread (client mode): 0x81540a0
2025-07-01 12:27:55,492 [DEBUG][       Thread-604626][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:27:55,516 [DEBUG][       Thread-604626][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:27:55,516 [ INFO][       Thread-604626][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:27:55,521 [DEBUG][       Thread-604626][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:27:55,521 [DEBUG][       Thread-604626][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:27:55,521 [DEBUG][       Thread-604626][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:27:55,521 [DEBUG][       Thread-604626][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:27:55,521 [DEBUG][       Thread-604626][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:27:55,521 [DEBUG][       Thread-604626][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:27:55,521 [DEBUG][       Thread-604626][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:27:55,521 [DEBUG][       Thread-604626][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:27:55,521 [DEBUG][       Thread-604626][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:27:55,521 [DEBUG][       Thread-604626][   transport.py][1871] : client lang: <none>
2025-07-01 12:27:55,521 [DEBUG][       Thread-604626][   transport.py][1871] : server lang: <none>
2025-07-01 12:27:55,521 [DEBUG][       Thread-604626][   transport.py][1871] : kex follows: False
2025-07-01 12:27:55,521 [DEBUG][       Thread-604626][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:27:55,521 [DEBUG][       Thread-604626][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:27:55,522 [DEBUG][       Thread-604626][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:27:55,522 [DEBUG][       Thread-604626][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:27:55,522 [DEBUG][       Thread-604626][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:27:55,522 [DEBUG][       Thread-604626][   transport.py][1871] : Compression: none
2025-07-01 12:27:55,522 [DEBUG][       Thread-604626][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:27:55,544 [DEBUG][       Thread-604626][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:27:55,544 [DEBUG][       Thread-604626][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:27:55,545 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:27:55,545 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:27:55,546 [DEBUG][       Thread-604626][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:27:55,546 [DEBUG][       Thread-604626][   transport.py][1871] : userauth is OK
2025-07-01 12:27:55,571 [ INFO][       Thread-604626][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:27:55,571 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:27:56,288 [DEBUG][       Thread-604626][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:27:56,288 [DEBUG][       Thread-604626][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:27:56,329 [DEBUG][       Thread-604626][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:27:56,329 [DEBUG][       Thread-604626][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:27:56,332 [DEBUG][       Thread-604626][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:27:56,345 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:27:56,346 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:27:56,348 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:27:56,349 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:27:56,355 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:27:56,357 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:27:56,357 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:27:56,358 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:27:56,358 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.435707 -999.00  +12.70  33.12     51   +2.90 1 1 2 1 1   888    0 10.11 40.91 ----- 33.1 33.1 41.4 42.3 15.9 -24.7 14.8 -25.1 14.5 -24.1 15.6 -22.5
2025-07-01 12:27:56,358 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:27:56,358 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:27:56,358 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.435707
2025-07-01 12:27:56,358 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:27:56,359 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:27:56,359 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:27:56,359 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:27:56,359 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:27:56,359 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:27:50', tmtdew=10.76, humidity=47.74, cloud=0.0, wind=30.86, temperature=12.18, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:27:25.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:27:56,359 [DEBUG][       Thread-604626][   transport.py][1871] : EOF in transport thread
2025-07-01 12:27:56,442 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:27:56,454 [DEBUG][       Thread-604629][   transport.py][1871] : starting thread (client mode): 0x82b2d70
2025-07-01 12:27:56,454 [DEBUG][       Thread-604629][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:27:56,473 [DEBUG][       Thread-604629][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:27:56,474 [ INFO][       Thread-604629][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:27:56,484 [DEBUG][       Thread-604629][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:27:56,485 [DEBUG][       Thread-604629][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:27:56,485 [DEBUG][       Thread-604629][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:27:56,485 [DEBUG][       Thread-604629][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:27:56,485 [DEBUG][       Thread-604629][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:27:56,485 [DEBUG][       Thread-604629][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:27:56,485 [DEBUG][       Thread-604629][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:27:56,485 [DEBUG][       Thread-604629][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:27:56,485 [DEBUG][       Thread-604629][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:27:56,485 [DEBUG][       Thread-604629][   transport.py][1871] : client lang: <none>
2025-07-01 12:27:56,485 [DEBUG][       Thread-604629][   transport.py][1871] : server lang: <none>
2025-07-01 12:27:56,485 [DEBUG][       Thread-604629][   transport.py][1871] : kex follows: False
2025-07-01 12:27:56,485 [DEBUG][       Thread-604629][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:27:56,485 [DEBUG][       Thread-604629][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:27:56,485 [DEBUG][       Thread-604629][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:27:56,485 [DEBUG][       Thread-604629][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:27:56,485 [DEBUG][       Thread-604629][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:27:56,486 [DEBUG][       Thread-604629][   transport.py][1871] : Compression: none
2025-07-01 12:27:56,486 [DEBUG][       Thread-604629][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:27:56,543 [DEBUG][       Thread-604629][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:27:56,544 [DEBUG][       Thread-604629][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:27:56,544 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:27:56,545 [DEBUG][       Thread-604629][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:27:56,546 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:27:56,599 [DEBUG][       Thread-604629][   transport.py][1871] : userauth is OK
2025-07-01 12:27:56,599 [DEBUG][       Thread-604629][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:27:56,599 [DEBUG][       Thread-604629][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:27:56,599 [DEBUG][       Thread-604629][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:27:56,599 [DEBUG][       Thread-604629][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:27:56,618 [ INFO][       Thread-604629][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:27:56,619 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:27:56,619 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:27:57,648 [DEBUG][       Thread-604629][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:27:57,648 [DEBUG][       Thread-604629][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:27:57,696 [DEBUG][       Thread-604629][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:27:57,696 [DEBUG][       Thread-604629][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:27:57,706 [DEBUG][       Thread-604629][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:27:57,715 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:27:57,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-07-01 12:27:57,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-07-01 12:27:57,733 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:27:57,733 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:27:57,734 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:27:57,742 [DEBUG][       Thread-604629][   transport.py][1871] : EOF in transport thread
2025-07-01 12:28:00,465 [DEBUG][Thread-604631 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:28:07,744 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:28:07,744 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:28:07,745 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:28:07,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-07-01 12:28:08,239 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 27, 50), 10.76, 47.74, 0.0, 30.86, 12.18, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:28:08,239 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:27:50
2025-07-01 12:28:08,324 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:28:08,328 [DEBUG][       Thread-604632][   transport.py][1871] : starting thread (client mode): 0x81557b0
2025-07-01 12:28:08,329 [DEBUG][       Thread-604632][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:28:08,349 [DEBUG][       Thread-604632][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:28:08,349 [ INFO][       Thread-604632][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:28:08,353 [DEBUG][       Thread-604632][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:28:08,353 [DEBUG][       Thread-604632][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:28:08,353 [DEBUG][       Thread-604632][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:28:08,353 [DEBUG][       Thread-604632][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:28:08,353 [DEBUG][       Thread-604632][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:28:08,353 [DEBUG][       Thread-604632][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:28:08,353 [DEBUG][       Thread-604632][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:28:08,353 [DEBUG][       Thread-604632][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:28:08,353 [DEBUG][       Thread-604632][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:28:08,353 [DEBUG][       Thread-604632][   transport.py][1871] : client lang: <none>
2025-07-01 12:28:08,353 [DEBUG][       Thread-604632][   transport.py][1871] : server lang: <none>
2025-07-01 12:28:08,353 [DEBUG][       Thread-604632][   transport.py][1871] : kex follows: False
2025-07-01 12:28:08,353 [DEBUG][       Thread-604632][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:28:08,353 [DEBUG][       Thread-604632][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:28:08,353 [DEBUG][       Thread-604632][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:28:08,353 [DEBUG][       Thread-604632][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:28:08,353 [DEBUG][       Thread-604632][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:28:08,353 [DEBUG][       Thread-604632][   transport.py][1871] : Compression: none
2025-07-01 12:28:08,353 [DEBUG][       Thread-604632][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:28:08,371 [DEBUG][       Thread-604632][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:28:08,371 [DEBUG][       Thread-604632][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:28:08,372 [DEBUG][       Thread-604632][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:28:08,372 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:28:08,372 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:28:08,374 [DEBUG][       Thread-604632][   transport.py][1871] : userauth is OK
2025-07-01 12:28:08,399 [ INFO][       Thread-604632][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:28:08,400 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:28:09,065 [DEBUG][       Thread-604632][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:28:09,065 [DEBUG][       Thread-604632][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:28:09,109 [DEBUG][       Thread-604632][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:28:09,109 [DEBUG][       Thread-604632][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:28:09,112 [DEBUG][       Thread-604632][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:28:09,124 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:28:09,124 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:28:09,126 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:28:09,127 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:28:09,132 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:28:09,134 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:28:09,134 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:28:09,135 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:28:09,135 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.435707 -999.00  +12.70  33.12     51   +2.90 1 1 2 1 1   888    0 10.11 40.91 ----- 33.1 33.1 41.4 42.3 15.9 -24.7 14.8 -25.1 14.5 -24.1 15.6 -22.5
2025-07-01 12:28:09,135 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:28:09,135 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:28:09,135 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.435707
2025-07-01 12:28:09,135 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:28:09,136 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:28:09,136 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:28:09,136 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:28:09,136 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:28:09,136 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:27:50', tmtdew=10.76, humidity=47.74, cloud=0.0, wind=30.86, temperature=12.18, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:27:25.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:28:09,137 [DEBUG][       Thread-604632][   transport.py][1871] : EOF in transport thread
2025-07-01 12:28:09,221 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:28:09,230 [DEBUG][       Thread-604635][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 12:28:09,231 [DEBUG][       Thread-604635][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:28:09,245 [DEBUG][       Thread-604635][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:28:09,245 [ INFO][       Thread-604635][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:28:09,253 [DEBUG][       Thread-604635][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:28:09,253 [DEBUG][       Thread-604635][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:28:09,253 [DEBUG][       Thread-604635][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:28:09,253 [DEBUG][       Thread-604635][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:28:09,253 [DEBUG][       Thread-604635][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:28:09,253 [DEBUG][       Thread-604635][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:28:09,253 [DEBUG][       Thread-604635][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:28:09,253 [DEBUG][       Thread-604635][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:28:09,253 [DEBUG][       Thread-604635][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:28:09,253 [DEBUG][       Thread-604635][   transport.py][1871] : client lang: <none>
2025-07-01 12:28:09,253 [DEBUG][       Thread-604635][   transport.py][1871] : server lang: <none>
2025-07-01 12:28:09,253 [DEBUG][       Thread-604635][   transport.py][1871] : kex follows: False
2025-07-01 12:28:09,253 [DEBUG][       Thread-604635][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:28:09,253 [DEBUG][       Thread-604635][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:28:09,253 [DEBUG][       Thread-604635][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:28:09,254 [DEBUG][       Thread-604635][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:28:09,254 [DEBUG][       Thread-604635][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:28:09,254 [DEBUG][       Thread-604635][   transport.py][1871] : Compression: none
2025-07-01 12:28:09,254 [DEBUG][       Thread-604635][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:28:09,311 [DEBUG][       Thread-604635][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:28:09,312 [DEBUG][       Thread-604635][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:28:09,313 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:28:09,314 [DEBUG][       Thread-604635][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:28:09,314 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:28:09,367 [DEBUG][       Thread-604635][   transport.py][1871] : userauth is OK
2025-07-01 12:28:09,368 [DEBUG][       Thread-604635][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:28:09,368 [DEBUG][       Thread-604635][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:28:09,368 [DEBUG][       Thread-604635][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:28:09,368 [DEBUG][       Thread-604635][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:28:09,388 [ INFO][       Thread-604635][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:28:09,388 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:28:09,389 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:28:09,507 [DEBUG][Thread-604637 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:28:10,374 [DEBUG][       Thread-604635][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:28:10,374 [DEBUG][       Thread-604635][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:28:10,423 [DEBUG][       Thread-604635][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:28:10,424 [DEBUG][       Thread-604635][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:28:10,433 [DEBUG][       Thread-604635][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:28:10,441 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:28:10,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-07-01 12:28:10,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-07-01 12:28:10,459 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:28:10,460 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:28:10,460 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:28:10,468 [DEBUG][       Thread-604635][   transport.py][1871] : EOF in transport thread
2025-07-01 12:28:16,100 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:28:16,101 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:28:18,529 [DEBUG][Thread-604638 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:28:20,470 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:28:20,470 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:28:20,470 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:28:20,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-07-01 12:28:20,981 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 27, 50), 10.76, 47.74, 0.0, 30.86, 12.18, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:28:20,981 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:27:50
2025-07-01 12:28:21,068 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:28:21,073 [DEBUG][       Thread-604639][   transport.py][1871] : starting thread (client mode): 0x8156530
2025-07-01 12:28:21,073 [DEBUG][       Thread-604639][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:28:21,094 [DEBUG][       Thread-604639][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:28:21,094 [ INFO][       Thread-604639][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:28:21,097 [DEBUG][       Thread-604639][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:28:21,097 [DEBUG][       Thread-604639][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:28:21,097 [DEBUG][       Thread-604639][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:28:21,097 [DEBUG][       Thread-604639][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:28:21,097 [DEBUG][       Thread-604639][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:28:21,097 [DEBUG][       Thread-604639][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:28:21,097 [DEBUG][       Thread-604639][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:28:21,097 [DEBUG][       Thread-604639][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:28:21,097 [DEBUG][       Thread-604639][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:28:21,097 [DEBUG][       Thread-604639][   transport.py][1871] : client lang: <none>
2025-07-01 12:28:21,097 [DEBUG][       Thread-604639][   transport.py][1871] : server lang: <none>
2025-07-01 12:28:21,097 [DEBUG][       Thread-604639][   transport.py][1871] : kex follows: False
2025-07-01 12:28:21,097 [DEBUG][       Thread-604639][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:28:21,097 [DEBUG][       Thread-604639][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:28:21,097 [DEBUG][       Thread-604639][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:28:21,097 [DEBUG][       Thread-604639][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:28:21,097 [DEBUG][       Thread-604639][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:28:21,097 [DEBUG][       Thread-604639][   transport.py][1871] : Compression: none
2025-07-01 12:28:21,097 [DEBUG][       Thread-604639][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:28:21,113 [DEBUG][       Thread-604639][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:28:21,113 [DEBUG][       Thread-604639][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:28:21,113 [DEBUG][       Thread-604639][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:28:21,113 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:28:21,113 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:28:21,114 [DEBUG][       Thread-604639][   transport.py][1871] : userauth is OK
2025-07-01 12:28:21,137 [ INFO][       Thread-604639][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:28:21,138 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:28:21,768 [DEBUG][       Thread-604639][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:28:21,768 [DEBUG][       Thread-604639][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:28:21,808 [DEBUG][       Thread-604639][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:28:21,808 [DEBUG][       Thread-604639][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:28:21,810 [DEBUG][       Thread-604639][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:28:21,824 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:28:21,824 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:28:21,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:28:21,826 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:28:21,828 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:28:21,829 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:28:21,829 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:28:21,829 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:28:21,829 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.436054 -999.00  +12.40  44.91     51   +2.70 1 1 2 1 1   888    0 10.27 40.12 ----- 44.9 44.9 53.0 53.8 15.9 -25.1 14.8 -26.6 14.5 -24.7 15.6 -23.2
2025-07-01 12:28:21,829 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:28:21,829 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:28:21,829 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.436054
2025-07-01 12:28:21,829 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:28:21,829 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:28:21,830 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:28:21,830 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:28:21,830 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:28:21,830 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:27:50', tmtdew=10.76, humidity=47.74, cloud=0.0, wind=30.86, temperature=12.18, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:27:55.066', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:28:21,830 [DEBUG][       Thread-604639][   transport.py][1871] : EOF in transport thread
2025-07-01 12:28:21,903 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:28:21,913 [DEBUG][       Thread-604642][   transport.py][1871] : starting thread (client mode): 0x8104fa0
2025-07-01 12:28:21,913 [DEBUG][       Thread-604642][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:28:21,929 [DEBUG][       Thread-604642][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:28:21,929 [ INFO][       Thread-604642][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:28:21,936 [DEBUG][       Thread-604642][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:28:21,936 [DEBUG][       Thread-604642][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:28:21,936 [DEBUG][       Thread-604642][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:28:21,936 [DEBUG][       Thread-604642][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:28:21,936 [DEBUG][       Thread-604642][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:28:21,936 [DEBUG][       Thread-604642][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:28:21,936 [DEBUG][       Thread-604642][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:28:21,936 [DEBUG][       Thread-604642][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:28:21,936 [DEBUG][       Thread-604642][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:28:21,936 [DEBUG][       Thread-604642][   transport.py][1871] : client lang: <none>
2025-07-01 12:28:21,936 [DEBUG][       Thread-604642][   transport.py][1871] : server lang: <none>
2025-07-01 12:28:21,936 [DEBUG][       Thread-604642][   transport.py][1871] : kex follows: False
2025-07-01 12:28:21,936 [DEBUG][       Thread-604642][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:28:21,936 [DEBUG][       Thread-604642][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:28:21,936 [DEBUG][       Thread-604642][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:28:21,936 [DEBUG][       Thread-604642][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:28:21,936 [DEBUG][       Thread-604642][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:28:21,936 [DEBUG][       Thread-604642][   transport.py][1871] : Compression: none
2025-07-01 12:28:21,936 [DEBUG][       Thread-604642][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:28:21,993 [DEBUG][       Thread-604642][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:28:21,993 [DEBUG][       Thread-604642][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:28:21,993 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:28:21,993 [DEBUG][       Thread-604642][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:28:21,993 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:28:22,051 [DEBUG][       Thread-604642][   transport.py][1871] : userauth is OK
2025-07-01 12:28:22,051 [DEBUG][       Thread-604642][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:28:22,051 [DEBUG][       Thread-604642][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:28:22,051 [DEBUG][       Thread-604642][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:28:22,051 [DEBUG][       Thread-604642][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:28:22,065 [ INFO][       Thread-604642][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:28:22,065 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:28:22,065 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:28:23,056 [DEBUG][       Thread-604642][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:28:23,056 [DEBUG][       Thread-604642][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:28:23,103 [DEBUG][       Thread-604642][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:28:23,103 [DEBUG][       Thread-604642][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:28:23,112 [DEBUG][       Thread-604642][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:28:23,120 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:28:23,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-07-01 12:28:23,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-07-01 12:28:23,138 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:28:23,138 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:28:23,138 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:28:23,146 [DEBUG][       Thread-604642][   transport.py][1871] : EOF in transport thread
2025-07-01 12:28:27,552 [DEBUG][Thread-604644 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:28:29,245 [DEBUG][Thread-604645 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:28:33,148 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:28:33,148 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:28:33,149 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:28:33,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-07-01 12:28:33,633 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 28, 21), 10.74, 48.04, 0.0, 33.56, 12.29, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:28:33,633 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:28:21
2025-07-01 12:28:33,719 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:28:33,724 [DEBUG][       Thread-604646][   transport.py][1871] : starting thread (client mode): 0x8104850
2025-07-01 12:28:33,724 [DEBUG][       Thread-604646][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:28:33,744 [DEBUG][       Thread-604646][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:28:33,744 [ INFO][       Thread-604646][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:28:33,747 [DEBUG][       Thread-604646][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:28:33,747 [DEBUG][       Thread-604646][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:28:33,747 [DEBUG][       Thread-604646][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:28:33,747 [DEBUG][       Thread-604646][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:28:33,747 [DEBUG][       Thread-604646][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:28:33,747 [DEBUG][       Thread-604646][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:28:33,747 [DEBUG][       Thread-604646][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:28:33,747 [DEBUG][       Thread-604646][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:28:33,747 [DEBUG][       Thread-604646][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:28:33,747 [DEBUG][       Thread-604646][   transport.py][1871] : client lang: <none>
2025-07-01 12:28:33,747 [DEBUG][       Thread-604646][   transport.py][1871] : server lang: <none>
2025-07-01 12:28:33,748 [DEBUG][       Thread-604646][   transport.py][1871] : kex follows: False
2025-07-01 12:28:33,748 [DEBUG][       Thread-604646][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:28:33,748 [DEBUG][       Thread-604646][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:28:33,748 [DEBUG][       Thread-604646][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:28:33,748 [DEBUG][       Thread-604646][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:28:33,748 [DEBUG][       Thread-604646][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:28:33,748 [DEBUG][       Thread-604646][   transport.py][1871] : Compression: none
2025-07-01 12:28:33,748 [DEBUG][       Thread-604646][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:28:33,765 [DEBUG][       Thread-604646][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:28:33,765 [DEBUG][       Thread-604646][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:28:33,766 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:28:33,766 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:28:33,766 [DEBUG][       Thread-604646][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:28:33,767 [DEBUG][       Thread-604646][   transport.py][1871] : userauth is OK
2025-07-01 12:28:33,791 [ INFO][       Thread-604646][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:28:33,792 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:28:34,467 [DEBUG][       Thread-604646][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:28:34,467 [DEBUG][       Thread-604646][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:28:34,509 [DEBUG][       Thread-604646][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:28:34,509 [DEBUG][       Thread-604646][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:28:34,512 [DEBUG][       Thread-604646][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:28:34,525 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:28:34,525 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:28:34,527 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:28:34,530 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:28:34,536 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:28:34,538 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:28:34,538 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:28:34,539 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:28:34,539 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.436054 -999.00  +12.40  44.91     51   +2.70 1 1 2 1 1   888    0 10.27 40.12 ----- 44.9 44.9 53.0 53.8 15.9 -25.1 14.8 -26.6 14.5 -24.7 15.6 -23.2
2025-07-01 12:28:34,539 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:28:34,539 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:28:34,539 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.436054
2025-07-01 12:28:34,539 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:28:34,540 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:28:34,540 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:28:34,540 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:28:34,540 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:28:34,540 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:28:21', tmtdew=10.74, humidity=48.04, cloud=0.0, wind=33.56, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:27:55.066', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:28:34,541 [DEBUG][       Thread-604646][   transport.py][1871] : EOF in transport thread
2025-07-01 12:28:34,624 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:28:34,636 [DEBUG][       Thread-604649][   transport.py][1871] : starting thread (client mode): 0x8156a40
2025-07-01 12:28:34,636 [DEBUG][       Thread-604649][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:28:34,652 [DEBUG][       Thread-604649][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:28:34,652 [ INFO][       Thread-604649][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:28:34,659 [DEBUG][       Thread-604649][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:28:34,659 [DEBUG][       Thread-604649][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:28:34,659 [DEBUG][       Thread-604649][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:28:34,659 [DEBUG][       Thread-604649][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:28:34,659 [DEBUG][       Thread-604649][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:28:34,659 [DEBUG][       Thread-604649][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:28:34,659 [DEBUG][       Thread-604649][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:28:34,659 [DEBUG][       Thread-604649][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:28:34,659 [DEBUG][       Thread-604649][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:28:34,660 [DEBUG][       Thread-604649][   transport.py][1871] : client lang: <none>
2025-07-01 12:28:34,660 [DEBUG][       Thread-604649][   transport.py][1871] : server lang: <none>
2025-07-01 12:28:34,660 [DEBUG][       Thread-604649][   transport.py][1871] : kex follows: False
2025-07-01 12:28:34,660 [DEBUG][       Thread-604649][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:28:34,660 [DEBUG][       Thread-604649][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:28:34,660 [DEBUG][       Thread-604649][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:28:34,660 [DEBUG][       Thread-604649][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:28:34,660 [DEBUG][       Thread-604649][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:28:34,660 [DEBUG][       Thread-604649][   transport.py][1871] : Compression: none
2025-07-01 12:28:34,660 [DEBUG][       Thread-604649][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:28:34,719 [DEBUG][       Thread-604649][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:28:34,720 [DEBUG][       Thread-604649][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:28:34,720 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:28:34,721 [DEBUG][       Thread-604649][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:28:34,722 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:28:34,775 [DEBUG][       Thread-604649][   transport.py][1871] : userauth is OK
2025-07-01 12:28:34,776 [DEBUG][       Thread-604649][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:28:34,776 [DEBUG][       Thread-604649][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:28:34,776 [DEBUG][       Thread-604649][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:28:34,776 [DEBUG][       Thread-604649][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:28:34,795 [ INFO][       Thread-604649][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:28:34,795 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:28:34,796 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:28:35,821 [DEBUG][       Thread-604649][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:28:35,822 [DEBUG][       Thread-604649][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:28:35,872 [DEBUG][       Thread-604649][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:28:35,872 [DEBUG][       Thread-604649][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:28:35,881 [DEBUG][       Thread-604649][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:28:35,891 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:28:35,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-07-01 12:28:35,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-07-01 12:28:35,909 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:28:35,909 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:28:35,910 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:28:35,918 [DEBUG][       Thread-604649][   transport.py][1871] : EOF in transport thread
2025-07-01 12:28:36,575 [DEBUG][Thread-604651 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:28:45,619 [DEBUG][Thread-604652 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:28:45,920 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:28:45,921 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:28:45,921 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:28:45,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-07-01 12:28:46,418 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 28, 21), 10.74, 48.04, 0.0, 33.56, 12.29, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:28:46,418 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:28:21
2025-07-01 12:28:46,503 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:28:46,507 [DEBUG][       Thread-604653][   transport.py][1871] : starting thread (client mode): 0x8156a40
2025-07-01 12:28:46,507 [DEBUG][       Thread-604653][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:28:46,525 [DEBUG][       Thread-604653][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:28:46,525 [ INFO][       Thread-604653][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:28:46,528 [DEBUG][       Thread-604653][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:28:46,528 [DEBUG][       Thread-604653][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:28:46,528 [DEBUG][       Thread-604653][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:28:46,528 [DEBUG][       Thread-604653][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:28:46,528 [DEBUG][       Thread-604653][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:28:46,528 [DEBUG][       Thread-604653][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:28:46,528 [DEBUG][       Thread-604653][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:28:46,528 [DEBUG][       Thread-604653][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:28:46,528 [DEBUG][       Thread-604653][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:28:46,528 [DEBUG][       Thread-604653][   transport.py][1871] : client lang: <none>
2025-07-01 12:28:46,528 [DEBUG][       Thread-604653][   transport.py][1871] : server lang: <none>
2025-07-01 12:28:46,528 [DEBUG][       Thread-604653][   transport.py][1871] : kex follows: False
2025-07-01 12:28:46,528 [DEBUG][       Thread-604653][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:28:46,528 [DEBUG][       Thread-604653][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:28:46,528 [DEBUG][       Thread-604653][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:28:46,528 [DEBUG][       Thread-604653][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:28:46,528 [DEBUG][       Thread-604653][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:28:46,528 [DEBUG][       Thread-604653][   transport.py][1871] : Compression: none
2025-07-01 12:28:46,528 [DEBUG][       Thread-604653][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:28:46,542 [DEBUG][       Thread-604653][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:28:46,542 [DEBUG][       Thread-604653][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:28:46,543 [DEBUG][       Thread-604653][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:28:46,543 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:28:46,543 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:28:46,544 [DEBUG][       Thread-604653][   transport.py][1871] : userauth is OK
2025-07-01 12:28:46,557 [ INFO][       Thread-604653][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:28:46,558 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:28:47,138 [DEBUG][       Thread-604653][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:28:47,138 [DEBUG][       Thread-604653][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:28:47,181 [DEBUG][       Thread-604653][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:28:47,181 [DEBUG][       Thread-604653][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:28:47,184 [DEBUG][       Thread-604653][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:28:47,190 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:28:47,191 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:28:47,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:28:47,194 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:28:47,199 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:28:47,200 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:28:47,200 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:28:47,201 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:28:47,201 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.436402 -999.00  +12.40  42.90     52   +2.90 1 1 2 1 1   888    0 10.45 43.55 ----- 42.9 42.9 31.0 56.2 15.9 -24.9 14.8 -25.0 14.6 -23.8 15.7 -22.5
2025-07-01 12:28:47,201 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:28:47,201 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:28:47,201 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.436402
2025-07-01 12:28:47,202 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:28:47,202 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:28:47,203 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:28:47,203 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:28:47,203 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:28:47,203 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:28:21', tmtdew=10.74, humidity=48.04, cloud=0.0, wind=33.56, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:28:25.133', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:28:47,204 [DEBUG][       Thread-604653][   transport.py][1871] : EOF in transport thread
2025-07-01 12:28:47,285 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:28:47,295 [DEBUG][       Thread-604656][   transport.py][1871] : starting thread (client mode): 0x818e320
2025-07-01 12:28:47,295 [DEBUG][       Thread-604656][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:28:47,310 [DEBUG][       Thread-604656][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:28:47,310 [ INFO][       Thread-604656][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:28:47,318 [DEBUG][       Thread-604656][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:28:47,318 [DEBUG][       Thread-604656][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:28:47,318 [DEBUG][       Thread-604656][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:28:47,318 [DEBUG][       Thread-604656][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:28:47,318 [DEBUG][       Thread-604656][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:28:47,318 [DEBUG][       Thread-604656][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:28:47,318 [DEBUG][       Thread-604656][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:28:47,318 [DEBUG][       Thread-604656][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:28:47,318 [DEBUG][       Thread-604656][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:28:47,318 [DEBUG][       Thread-604656][   transport.py][1871] : client lang: <none>
2025-07-01 12:28:47,318 [DEBUG][       Thread-604656][   transport.py][1871] : server lang: <none>
2025-07-01 12:28:47,318 [DEBUG][       Thread-604656][   transport.py][1871] : kex follows: False
2025-07-01 12:28:47,318 [DEBUG][       Thread-604656][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:28:47,318 [DEBUG][       Thread-604656][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:28:47,318 [DEBUG][       Thread-604656][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:28:47,318 [DEBUG][       Thread-604656][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:28:47,318 [DEBUG][       Thread-604656][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:28:47,318 [DEBUG][       Thread-604656][   transport.py][1871] : Compression: none
2025-07-01 12:28:47,319 [DEBUG][       Thread-604656][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:28:47,376 [DEBUG][       Thread-604656][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:28:47,377 [DEBUG][       Thread-604656][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:28:47,377 [DEBUG][       Thread-604656][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:28:47,378 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:28:47,378 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:28:47,436 [DEBUG][       Thread-604656][   transport.py][1871] : userauth is OK
2025-07-01 12:28:47,436 [DEBUG][       Thread-604656][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:28:47,436 [DEBUG][       Thread-604656][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:28:47,436 [DEBUG][       Thread-604656][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:28:47,436 [DEBUG][       Thread-604656][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:28:47,455 [ INFO][       Thread-604656][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:28:47,456 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:28:47,456 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:28:48,482 [DEBUG][       Thread-604656][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:28:48,482 [DEBUG][       Thread-604656][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:28:48,534 [DEBUG][       Thread-604656][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:28:48,534 [DEBUG][       Thread-604656][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:28:48,544 [DEBUG][       Thread-604656][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:28:48,553 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:28:48,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')
2025-07-01 12:28:48,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-07-01 12:28:48,571 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:28:48,571 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:28:48,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:28:48,579 [DEBUG][       Thread-604656][   transport.py][1871] : EOF in transport thread
2025-07-01 12:28:54,638 [DEBUG][Thread-604658 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:28:58,580 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:28:58,580 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:28:58,580 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:28:58,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-07-01 12:28:59,091 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 28, 53), 10.75, 48.0, 0.0, 36.52, 12.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:28:59,091 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:28:53
2025-07-01 12:28:59,181 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:28:59,185 [DEBUG][       Thread-604659][   transport.py][1871] : starting thread (client mode): 0x818cc10
2025-07-01 12:28:59,185 [DEBUG][       Thread-604659][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:28:59,206 [DEBUG][       Thread-604659][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:28:59,206 [ INFO][       Thread-604659][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:28:59,209 [DEBUG][       Thread-604659][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:28:59,209 [DEBUG][       Thread-604659][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:28:59,209 [DEBUG][       Thread-604659][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:28:59,209 [DEBUG][       Thread-604659][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:28:59,209 [DEBUG][       Thread-604659][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:28:59,209 [DEBUG][       Thread-604659][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:28:59,209 [DEBUG][       Thread-604659][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:28:59,209 [DEBUG][       Thread-604659][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:28:59,209 [DEBUG][       Thread-604659][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:28:59,209 [DEBUG][       Thread-604659][   transport.py][1871] : client lang: <none>
2025-07-01 12:28:59,209 [DEBUG][       Thread-604659][   transport.py][1871] : server lang: <none>
2025-07-01 12:28:59,209 [DEBUG][       Thread-604659][   transport.py][1871] : kex follows: False
2025-07-01 12:28:59,209 [DEBUG][       Thread-604659][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:28:59,209 [DEBUG][       Thread-604659][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:28:59,209 [DEBUG][       Thread-604659][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:28:59,209 [DEBUG][       Thread-604659][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:28:59,209 [DEBUG][       Thread-604659][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:28:59,209 [DEBUG][       Thread-604659][   transport.py][1871] : Compression: none
2025-07-01 12:28:59,209 [DEBUG][       Thread-604659][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:28:59,225 [DEBUG][       Thread-604659][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:28:59,225 [DEBUG][       Thread-604659][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:28:59,225 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:28:59,225 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:28:59,225 [DEBUG][       Thread-604659][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:28:59,226 [DEBUG][       Thread-604659][   transport.py][1871] : userauth is OK
2025-07-01 12:28:59,250 [ INFO][       Thread-604659][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:28:59,250 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:28:59,924 [DEBUG][       Thread-604659][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:28:59,924 [DEBUG][       Thread-604659][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:28:59,968 [DEBUG][       Thread-604659][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:28:59,968 [DEBUG][       Thread-604659][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:28:59,970 [DEBUG][       Thread-604659][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:28:59,982 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:28:59,982 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:28:59,983 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:28:59,984 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:28:59,987 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:28:59,988 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:28:59,988 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:28:59,988 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:28:59,988 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.436402 -999.00  +12.40  42.90     52   +2.90 1 1 2 1 1   888    0 10.45 43.55 ----- 42.9 42.9 31.0 56.2 15.9 -24.9 14.8 -25.0 14.6 -23.8 15.7 -22.5
2025-07-01 12:28:59,988 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:28:59,988 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:28:59,988 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.436402
2025-07-01 12:28:59,988 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:28:59,988 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:28:59,988 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:28:59,988 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:28:59,988 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:28:59,988 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:28:53', tmtdew=10.75, humidity=48.0, cloud=0.0, wind=36.52, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:28:25.133', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:28:59,989 [DEBUG][       Thread-604659][   transport.py][1871] : EOF in transport thread
2025-07-01 12:29:00,065 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:29:00,076 [DEBUG][       Thread-604662][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 12:29:00,076 [DEBUG][       Thread-604662][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:29:00,092 [DEBUG][       Thread-604662][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:29:00,092 [ INFO][       Thread-604662][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:29:00,100 [DEBUG][       Thread-604662][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:29:00,100 [DEBUG][       Thread-604662][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:29:00,100 [DEBUG][       Thread-604662][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:29:00,100 [DEBUG][       Thread-604662][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:29:00,100 [DEBUG][       Thread-604662][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:29:00,100 [DEBUG][       Thread-604662][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:29:00,100 [DEBUG][       Thread-604662][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:29:00,100 [DEBUG][       Thread-604662][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:29:00,100 [DEBUG][       Thread-604662][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:29:00,100 [DEBUG][       Thread-604662][   transport.py][1871] : client lang: <none>
2025-07-01 12:29:00,100 [DEBUG][       Thread-604662][   transport.py][1871] : server lang: <none>
2025-07-01 12:29:00,100 [DEBUG][       Thread-604662][   transport.py][1871] : kex follows: False
2025-07-01 12:29:00,100 [DEBUG][       Thread-604662][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:29:00,100 [DEBUG][       Thread-604662][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:29:00,100 [DEBUG][       Thread-604662][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:29:00,100 [DEBUG][       Thread-604662][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:29:00,100 [DEBUG][       Thread-604662][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:29:00,100 [DEBUG][       Thread-604662][   transport.py][1871] : Compression: none
2025-07-01 12:29:00,100 [DEBUG][       Thread-604662][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:29:00,158 [DEBUG][       Thread-604662][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:29:00,158 [DEBUG][       Thread-604662][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:29:00,159 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:29:00,159 [DEBUG][       Thread-604662][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:29:00,159 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:29:00,223 [DEBUG][       Thread-604662][   transport.py][1871] : userauth is OK
2025-07-01 12:29:00,223 [DEBUG][       Thread-604662][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:29:00,223 [DEBUG][       Thread-604662][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:29:00,223 [DEBUG][       Thread-604662][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:29:00,223 [DEBUG][       Thread-604662][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:29:00,238 [ INFO][       Thread-604662][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:29:00,239 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:29:00,239 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:29:01,319 [DEBUG][       Thread-604662][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:29:01,319 [DEBUG][       Thread-604662][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:29:01,367 [DEBUG][       Thread-604662][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:29:01,367 [DEBUG][       Thread-604662][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:29:01,376 [DEBUG][       Thread-604662][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:29:01,384 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:29: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')
2025-07-01 12:29:01,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-07-01 12:29:01,400 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:29:01,400 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:29:01,400 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:29:01,407 [DEBUG][       Thread-604662][   transport.py][1871] : EOF in transport thread
2025-07-01 12:29:03,658 [DEBUG][Thread-604664 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:29:11,408 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:29:11,408 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:29:11,408 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:29:11,411 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:29:11,913 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 28, 53), 10.75, 48.0, 0.0, 36.52, 12.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:29:11,914 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:28:53
2025-07-01 12:29:12,000 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:29:12,005 [DEBUG][       Thread-604665][   transport.py][1871] : starting thread (client mode): 0x818fb20
2025-07-01 12:29:12,005 [DEBUG][       Thread-604665][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:29:12,020 [DEBUG][       Thread-604665][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:29:12,020 [ INFO][       Thread-604665][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:29:12,023 [DEBUG][       Thread-604665][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:29:12,024 [DEBUG][       Thread-604665][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:29:12,024 [DEBUG][       Thread-604665][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:29:12,024 [DEBUG][       Thread-604665][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:29:12,024 [DEBUG][       Thread-604665][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:29:12,024 [DEBUG][       Thread-604665][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:29:12,024 [DEBUG][       Thread-604665][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:29:12,024 [DEBUG][       Thread-604665][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:29:12,024 [DEBUG][       Thread-604665][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:29:12,024 [DEBUG][       Thread-604665][   transport.py][1871] : client lang: <none>
2025-07-01 12:29:12,024 [DEBUG][       Thread-604665][   transport.py][1871] : server lang: <none>
2025-07-01 12:29:12,024 [DEBUG][       Thread-604665][   transport.py][1871] : kex follows: False
2025-07-01 12:29:12,024 [DEBUG][       Thread-604665][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:29:12,024 [DEBUG][       Thread-604665][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:29:12,024 [DEBUG][       Thread-604665][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:29:12,024 [DEBUG][       Thread-604665][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:29:12,024 [DEBUG][       Thread-604665][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:29:12,024 [DEBUG][       Thread-604665][   transport.py][1871] : Compression: none
2025-07-01 12:29:12,024 [DEBUG][       Thread-604665][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:29:12,041 [DEBUG][       Thread-604665][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:29:12,042 [DEBUG][       Thread-604665][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:29:12,042 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:29:12,042 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:29:12,043 [DEBUG][       Thread-604665][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:29:12,086 [DEBUG][       Thread-604665][   transport.py][1871] : userauth is OK
2025-07-01 12:29:12,110 [ INFO][       Thread-604665][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:29:12,111 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:29:12,706 [DEBUG][Thread-604667 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:29:12,765 [DEBUG][       Thread-604665][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:29:12,765 [DEBUG][       Thread-604665][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:29:12,809 [DEBUG][       Thread-604665][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:29:12,809 [DEBUG][       Thread-604665][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:29:12,812 [DEBUG][       Thread-604665][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:29:12,825 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:29:12,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:29:12,827 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:29:12,829 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:29:12,834 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:29:12,836 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:29:12,836 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:29:12,837 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:29:12,837 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.436402 -999.00  +12.40  42.90     52   +2.90 1 1 2 1 1   888    0 10.45 43.55 ----- 42.9 42.9 31.0 56.2 15.9 -24.9 14.8 -25.0 14.6 -23.8 15.7 -22.5
2025-07-01 12:29:12,837 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:29:12,837 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:29:12,837 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.436402
2025-07-01 12:29:12,838 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:29:12,838 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:29:12,839 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:29:12,839 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:29:12,839 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:29:12,839 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:28:53', tmtdew=10.75, humidity=48.0, cloud=0.0, wind=36.52, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:28:25.133', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:29:12,839 [DEBUG][       Thread-604665][   transport.py][1871] : EOF in transport thread
2025-07-01 12:29:12,913 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:29:12,922 [DEBUG][       Thread-604669][   transport.py][1871] : starting thread (client mode): 0x81570a0
2025-07-01 12:29:12,922 [DEBUG][       Thread-604669][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:29:12,937 [DEBUG][       Thread-604669][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:29:12,937 [ INFO][       Thread-604669][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:29:12,944 [DEBUG][       Thread-604669][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:29:12,945 [DEBUG][       Thread-604669][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:29:12,945 [DEBUG][       Thread-604669][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:29:12,945 [DEBUG][       Thread-604669][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:29:12,945 [DEBUG][       Thread-604669][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:29:12,945 [DEBUG][       Thread-604669][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:29:12,945 [DEBUG][       Thread-604669][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:29:12,945 [DEBUG][       Thread-604669][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:29:12,945 [DEBUG][       Thread-604669][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:29:12,945 [DEBUG][       Thread-604669][   transport.py][1871] : client lang: <none>
2025-07-01 12:29:12,945 [DEBUG][       Thread-604669][   transport.py][1871] : server lang: <none>
2025-07-01 12:29:12,945 [DEBUG][       Thread-604669][   transport.py][1871] : kex follows: False
2025-07-01 12:29:12,945 [DEBUG][       Thread-604669][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:29:12,945 [DEBUG][       Thread-604669][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:29:12,945 [DEBUG][       Thread-604669][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:29:12,945 [DEBUG][       Thread-604669][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:29:12,945 [DEBUG][       Thread-604669][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:29:12,945 [DEBUG][       Thread-604669][   transport.py][1871] : Compression: none
2025-07-01 12:29:12,945 [DEBUG][       Thread-604669][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:29:13,010 [DEBUG][       Thread-604669][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:29:13,010 [DEBUG][       Thread-604669][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:29:13,011 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:29:13,012 [DEBUG][       Thread-604669][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:29:13,012 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:29:13,068 [DEBUG][       Thread-604669][   transport.py][1871] : userauth is OK
2025-07-01 12:29:13,068 [DEBUG][       Thread-604669][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:29:13,069 [DEBUG][       Thread-604669][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:29:13,069 [DEBUG][       Thread-604669][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:29:13,069 [DEBUG][       Thread-604669][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:29:13,087 [ INFO][       Thread-604669][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:29:13,087 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:29:13,088 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:29:14,129 [DEBUG][       Thread-604669][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:29:14,129 [DEBUG][       Thread-604669][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:29:14,180 [DEBUG][       Thread-604669][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:29:14,180 [DEBUG][       Thread-604669][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:29:14,189 [DEBUG][       Thread-604669][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:29:14,198 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:29:14,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-07-01 12:29:14,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-07-01 12:29:14,215 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:29:14,216 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:29:14,216 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:29:14,224 [DEBUG][       Thread-604669][   transport.py][1871] : EOF in transport thread
2025-07-01 12:29:16,238 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:29:16,239 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:29:21,731 [DEBUG][Thread-604671 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:29:24,226 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:29:24,227 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:29:24,227 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:29:24,230 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:29:24,714 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 28, 53), 10.75, 48.0, 0.0, 36.52, 12.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:29:24,714 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:28:53
2025-07-01 12:29:24,801 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:29:24,807 [DEBUG][       Thread-604672][   transport.py][1871] : starting thread (client mode): 0x818d090
2025-07-01 12:29:24,807 [DEBUG][       Thread-604672][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:29:24,828 [DEBUG][       Thread-604672][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:29:24,828 [ INFO][       Thread-604672][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:29:24,832 [DEBUG][       Thread-604672][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:29:24,832 [DEBUG][       Thread-604672][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:29:24,832 [DEBUG][       Thread-604672][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:29:24,832 [DEBUG][       Thread-604672][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:29:24,832 [DEBUG][       Thread-604672][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:29:24,832 [DEBUG][       Thread-604672][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:29:24,832 [DEBUG][       Thread-604672][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:29:24,832 [DEBUG][       Thread-604672][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:29:24,832 [DEBUG][       Thread-604672][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:29:24,832 [DEBUG][       Thread-604672][   transport.py][1871] : client lang: <none>
2025-07-01 12:29:24,832 [DEBUG][       Thread-604672][   transport.py][1871] : server lang: <none>
2025-07-01 12:29:24,832 [DEBUG][       Thread-604672][   transport.py][1871] : kex follows: False
2025-07-01 12:29:24,832 [DEBUG][       Thread-604672][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:29:24,832 [DEBUG][       Thread-604672][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:29:24,832 [DEBUG][       Thread-604672][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:29:24,832 [DEBUG][       Thread-604672][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:29:24,832 [DEBUG][       Thread-604672][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:29:24,833 [DEBUG][       Thread-604672][   transport.py][1871] : Compression: none
2025-07-01 12:29:24,833 [DEBUG][       Thread-604672][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:29:24,850 [DEBUG][       Thread-604672][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:29:24,851 [DEBUG][       Thread-604672][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:29:24,851 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:29:24,851 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:29:24,852 [DEBUG][       Thread-604672][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:29:24,852 [DEBUG][       Thread-604672][   transport.py][1871] : userauth is OK
2025-07-01 12:29:24,865 [ INFO][       Thread-604672][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:29:24,866 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:29:25,485 [DEBUG][       Thread-604672][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:29:25,485 [DEBUG][       Thread-604672][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:29:25,529 [DEBUG][       Thread-604672][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:29:25,529 [DEBUG][       Thread-604672][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:29:25,532 [DEBUG][       Thread-604672][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:29:25,545 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:29:25,546 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:29:25,547 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:29:25,549 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:29:25,553 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:29:25,554 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:29:25,554 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:29:25,555 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:29:25,555 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.436749 -999.00  +12.40  42.48     52   +2.90 1 1 2 1 1   888    0 10.30 45.57 ----- 42.5 42.5 41.0 48.8 15.9 -25.1 14.8 -25.4 14.6 -23.5 15.6 -22.4
2025-07-01 12:29:25,555 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:29:25,555 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:29:25,555 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.436749
2025-07-01 12:29:25,556 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:29:25,556 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:29:25,556 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:29:25,556 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:29:25,556 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:29:25,557 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:28:53', tmtdew=10.75, humidity=48.0, cloud=0.0, wind=36.52, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:28:55.114', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:29:25,558 [DEBUG][       Thread-604672][   transport.py][1871] : EOF in transport thread
2025-07-01 12:29:25,645 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:29:25,656 [DEBUG][       Thread-604675][   transport.py][1871] : starting thread (client mode): 0x82b1f60
2025-07-01 12:29:25,656 [DEBUG][       Thread-604675][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:29:25,671 [DEBUG][       Thread-604675][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:29:25,671 [ INFO][       Thread-604675][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:29:25,681 [DEBUG][       Thread-604675][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:29:25,681 [DEBUG][       Thread-604675][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:29:25,681 [DEBUG][       Thread-604675][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:29:25,681 [DEBUG][       Thread-604675][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:29:25,681 [DEBUG][       Thread-604675][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:29:25,681 [DEBUG][       Thread-604675][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:29:25,681 [DEBUG][       Thread-604675][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:29:25,681 [DEBUG][       Thread-604675][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:29:25,681 [DEBUG][       Thread-604675][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:29:25,681 [DEBUG][       Thread-604675][   transport.py][1871] : client lang: <none>
2025-07-01 12:29:25,681 [DEBUG][       Thread-604675][   transport.py][1871] : server lang: <none>
2025-07-01 12:29:25,681 [DEBUG][       Thread-604675][   transport.py][1871] : kex follows: False
2025-07-01 12:29:25,681 [DEBUG][       Thread-604675][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:29:25,681 [DEBUG][       Thread-604675][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:29:25,681 [DEBUG][       Thread-604675][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:29:25,681 [DEBUG][       Thread-604675][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:29:25,681 [DEBUG][       Thread-604675][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:29:25,681 [DEBUG][       Thread-604675][   transport.py][1871] : Compression: none
2025-07-01 12:29:25,681 [DEBUG][       Thread-604675][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:29:25,742 [DEBUG][       Thread-604675][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:29:25,743 [DEBUG][       Thread-604675][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:29:25,743 [DEBUG][       Thread-604675][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:29:25,743 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:29:25,743 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:29:25,800 [DEBUG][       Thread-604675][   transport.py][1871] : userauth is OK
2025-07-01 12:29:25,800 [DEBUG][       Thread-604675][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:29:25,800 [DEBUG][       Thread-604675][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:29:25,800 [DEBUG][       Thread-604675][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:29:25,800 [DEBUG][       Thread-604675][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:29:25,814 [ INFO][       Thread-604675][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:29:25,814 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:29:25,814 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:29:26,923 [DEBUG][       Thread-604675][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:29:26,923 [DEBUG][       Thread-604675][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:29:26,971 [DEBUG][       Thread-604675][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:29:26,971 [DEBUG][       Thread-604675][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:29:26,980 [DEBUG][       Thread-604675][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:29:26,988 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:29:26,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')
2025-07-01 12:29:26,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-07-01 12:29:27,004 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:29:27,004 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:29:27,004 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:29:27,012 [DEBUG][       Thread-604675][   transport.py][1871] : EOF in transport thread
2025-07-01 12:29:29,296 [DEBUG][Thread-604677 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:29:30,754 [DEBUG][Thread-604678 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:29:37,012 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:29:37,012 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:29:37,012 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:29:37,012 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:29:37,519 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 29, 24), 10.86, 47.44, 0.0, 32.82, 12.36, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:29:37,519 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:29:24
2025-07-01 12:29:37,610 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:29:37,614 [DEBUG][       Thread-604679][   transport.py][1871] : starting thread (client mode): 0x82b33d0
2025-07-01 12:29:37,614 [DEBUG][       Thread-604679][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:29:37,633 [DEBUG][       Thread-604679][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:29:37,633 [ INFO][       Thread-604679][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:29:37,636 [DEBUG][       Thread-604679][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:29:37,636 [DEBUG][       Thread-604679][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:29:37,636 [DEBUG][       Thread-604679][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:29:37,636 [DEBUG][       Thread-604679][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:29:37,636 [DEBUG][       Thread-604679][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:29:37,636 [DEBUG][       Thread-604679][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:29:37,636 [DEBUG][       Thread-604679][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:29:37,636 [DEBUG][       Thread-604679][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:29:37,636 [DEBUG][       Thread-604679][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:29:37,636 [DEBUG][       Thread-604679][   transport.py][1871] : client lang: <none>
2025-07-01 12:29:37,636 [DEBUG][       Thread-604679][   transport.py][1871] : server lang: <none>
2025-07-01 12:29:37,636 [DEBUG][       Thread-604679][   transport.py][1871] : kex follows: False
2025-07-01 12:29:37,636 [DEBUG][       Thread-604679][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:29:37,636 [DEBUG][       Thread-604679][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:29:37,636 [DEBUG][       Thread-604679][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:29:37,636 [DEBUG][       Thread-604679][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:29:37,636 [DEBUG][       Thread-604679][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:29:37,636 [DEBUG][       Thread-604679][   transport.py][1871] : Compression: none
2025-07-01 12:29:37,636 [DEBUG][       Thread-604679][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:29:37,651 [DEBUG][       Thread-604679][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:29:37,651 [DEBUG][       Thread-604679][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:29:37,651 [DEBUG][       Thread-604679][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:29:37,651 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:29:37,651 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:29:37,652 [DEBUG][       Thread-604679][   transport.py][1871] : userauth is OK
2025-07-01 12:29:37,664 [ INFO][       Thread-604679][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:29:37,665 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:29:38,306 [DEBUG][       Thread-604679][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:29:38,306 [DEBUG][       Thread-604679][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:29:38,348 [DEBUG][       Thread-604679][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:29:38,349 [DEBUG][       Thread-604679][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:29:38,351 [DEBUG][       Thread-604679][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:29:38,362 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:29:38,362 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:29:38,364 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:29:38,365 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:29:38,369 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:29:38,371 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:29:38,371 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:29:38,371 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:29:38,371 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.436749 -999.00  +12.40  42.48     52   +2.90 1 1 2 1 1   888    0 10.30 45.57 ----- 42.5 42.5 41.0 48.8 15.9 -25.1 14.8 -25.4 14.6 -23.5 15.6 -22.4
2025-07-01 12:29:38,371 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:29:38,371 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:29:38,371 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.436749
2025-07-01 12:29:38,371 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:29:38,372 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:29:38,372 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:29:38,372 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:29:38,372 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:29:38,372 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:29:24', tmtdew=10.86, humidity=47.44, cloud=0.0, wind=32.82, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:28:55.114', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:29:38,372 [DEBUG][       Thread-604679][   transport.py][1871] : EOF in transport thread
2025-07-01 12:29:38,447 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:29:38,459 [DEBUG][       Thread-604682][   transport.py][1871] : starting thread (client mode): 0x8105ea0
2025-07-01 12:29:38,459 [DEBUG][       Thread-604682][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:29:38,480 [DEBUG][       Thread-604682][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:29:38,480 [ INFO][       Thread-604682][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:29:38,488 [DEBUG][       Thread-604682][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:29:38,488 [DEBUG][       Thread-604682][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:29:38,488 [DEBUG][       Thread-604682][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:29:38,488 [DEBUG][       Thread-604682][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:29:38,488 [DEBUG][       Thread-604682][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:29:38,488 [DEBUG][       Thread-604682][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:29:38,488 [DEBUG][       Thread-604682][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:29:38,488 [DEBUG][       Thread-604682][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:29:38,488 [DEBUG][       Thread-604682][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:29:38,488 [DEBUG][       Thread-604682][   transport.py][1871] : client lang: <none>
2025-07-01 12:29:38,488 [DEBUG][       Thread-604682][   transport.py][1871] : server lang: <none>
2025-07-01 12:29:38,488 [DEBUG][       Thread-604682][   transport.py][1871] : kex follows: False
2025-07-01 12:29:38,488 [DEBUG][       Thread-604682][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:29:38,488 [DEBUG][       Thread-604682][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:29:38,488 [DEBUG][       Thread-604682][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:29:38,488 [DEBUG][       Thread-604682][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:29:38,488 [DEBUG][       Thread-604682][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:29:38,488 [DEBUG][       Thread-604682][   transport.py][1871] : Compression: none
2025-07-01 12:29:38,488 [DEBUG][       Thread-604682][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:29:38,542 [DEBUG][       Thread-604682][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:29:38,542 [DEBUG][       Thread-604682][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:29:38,543 [DEBUG][       Thread-604682][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:29:38,543 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:29:38,543 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:29:38,600 [DEBUG][       Thread-604682][   transport.py][1871] : userauth is OK
2025-07-01 12:29:38,600 [DEBUG][       Thread-604682][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:29:38,600 [DEBUG][       Thread-604682][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:29:38,600 [DEBUG][       Thread-604682][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:29:38,600 [DEBUG][       Thread-604682][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:29:38,614 [ INFO][       Thread-604682][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:29:38,614 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:29:38,614 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:29:39,625 [DEBUG][       Thread-604682][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:29:39,626 [DEBUG][       Thread-604682][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:29:39,675 [DEBUG][       Thread-604682][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:29:39,675 [DEBUG][       Thread-604682][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:29:39,684 [DEBUG][       Thread-604682][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:29:39,691 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:29: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')
2025-07-01 12:29:39,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-07-01 12:29:39,707 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:29:39,707 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:29:39,707 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:29:39,715 [DEBUG][       Thread-604682][   transport.py][1871] : EOF in transport thread
2025-07-01 12:29:39,773 [DEBUG][Thread-604684 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:29:48,807 [DEBUG][Thread-604685 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:29:49,718 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:29:49,718 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:29:49,718 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:29:49,721 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:29:50,219 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 29, 24), 10.86, 47.44, 0.0, 32.82, 12.36, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:29:50,219 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:29:24
2025-07-01 12:29:50,306 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:29:50,311 [DEBUG][       Thread-604686][   transport.py][1871] : starting thread (client mode): 0x8104580
2025-07-01 12:29:50,311 [DEBUG][       Thread-604686][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:29:50,332 [DEBUG][       Thread-604686][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:29:50,332 [ INFO][       Thread-604686][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:29:50,335 [DEBUG][       Thread-604686][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:29:50,335 [DEBUG][       Thread-604686][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:29:50,335 [DEBUG][       Thread-604686][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:29:50,335 [DEBUG][       Thread-604686][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:29:50,335 [DEBUG][       Thread-604686][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:29:50,335 [DEBUG][       Thread-604686][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:29:50,335 [DEBUG][       Thread-604686][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:29:50,335 [DEBUG][       Thread-604686][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:29:50,335 [DEBUG][       Thread-604686][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:29:50,335 [DEBUG][       Thread-604686][   transport.py][1871] : client lang: <none>
2025-07-01 12:29:50,335 [DEBUG][       Thread-604686][   transport.py][1871] : server lang: <none>
2025-07-01 12:29:50,335 [DEBUG][       Thread-604686][   transport.py][1871] : kex follows: False
2025-07-01 12:29:50,335 [DEBUG][       Thread-604686][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:29:50,335 [DEBUG][       Thread-604686][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:29:50,336 [DEBUG][       Thread-604686][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:29:50,336 [DEBUG][       Thread-604686][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:29:50,336 [DEBUG][       Thread-604686][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:29:50,336 [DEBUG][       Thread-604686][   transport.py][1871] : Compression: none
2025-07-01 12:29:50,336 [DEBUG][       Thread-604686][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:29:50,352 [DEBUG][       Thread-604686][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:29:50,353 [DEBUG][       Thread-604686][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:29:50,353 [DEBUG][       Thread-604686][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:29:50,354 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:29:50,354 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:29:50,355 [DEBUG][       Thread-604686][   transport.py][1871] : userauth is OK
2025-07-01 12:29:50,368 [ INFO][       Thread-604686][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:29:50,368 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:29:51,010 [DEBUG][       Thread-604686][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:29:51,011 [DEBUG][       Thread-604686][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:29:51,053 [DEBUG][       Thread-604686][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:29:51,053 [DEBUG][       Thread-604686][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:29:51,057 [DEBUG][       Thread-604686][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:29:51,071 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:29:51,071 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:29:51,073 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:29:51,076 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:29:51,081 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:29:51,083 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:29:51,084 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:29:51,084 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:29:51,085 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.436749 -999.00  +12.40  42.48     52   +2.90 1 1 2 1 1   888    0 10.30 45.57 ----- 42.5 42.5 41.0 48.8 15.9 -25.1 14.8 -25.4 14.6 -23.5 15.6 -22.4
2025-07-01 12:29:51,085 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:29:51,085 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:29:51,085 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.436749
2025-07-01 12:29:51,085 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:29:51,086 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:29:51,086 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:29:51,086 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:29:51,086 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:29:51,086 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:29:24', tmtdew=10.86, humidity=47.44, cloud=0.0, wind=32.82, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:28:55.114', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:29:51,087 [DEBUG][       Thread-604686][   transport.py][1871] : EOF in transport thread
2025-07-01 12:29:51,169 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:29:51,181 [DEBUG][       Thread-604689][   transport.py][1871] : starting thread (client mode): 0x8156f20
2025-07-01 12:29:51,181 [DEBUG][       Thread-604689][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:29:51,197 [DEBUG][       Thread-604689][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:29:51,197 [ INFO][       Thread-604689][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:29:51,204 [DEBUG][       Thread-604689][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:29:51,204 [DEBUG][       Thread-604689][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:29:51,205 [DEBUG][       Thread-604689][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:29:51,205 [DEBUG][       Thread-604689][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:29:51,205 [DEBUG][       Thread-604689][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:29:51,205 [DEBUG][       Thread-604689][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:29:51,205 [DEBUG][       Thread-604689][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:29:51,205 [DEBUG][       Thread-604689][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:29:51,205 [DEBUG][       Thread-604689][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:29:51,205 [DEBUG][       Thread-604689][   transport.py][1871] : client lang: <none>
2025-07-01 12:29:51,205 [DEBUG][       Thread-604689][   transport.py][1871] : server lang: <none>
2025-07-01 12:29:51,205 [DEBUG][       Thread-604689][   transport.py][1871] : kex follows: False
2025-07-01 12:29:51,205 [DEBUG][       Thread-604689][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:29:51,205 [DEBUG][       Thread-604689][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:29:51,205 [DEBUG][       Thread-604689][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:29:51,205 [DEBUG][       Thread-604689][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:29:51,205 [DEBUG][       Thread-604689][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:29:51,205 [DEBUG][       Thread-604689][   transport.py][1871] : Compression: none
2025-07-01 12:29:51,205 [DEBUG][       Thread-604689][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:29:51,268 [DEBUG][       Thread-604689][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:29:51,269 [DEBUG][       Thread-604689][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:29:51,270 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:29:51,270 [DEBUG][       Thread-604689][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:29:51,271 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:29:51,324 [DEBUG][       Thread-604689][   transport.py][1871] : userauth is OK
2025-07-01 12:29:51,325 [DEBUG][       Thread-604689][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:29:51,325 [DEBUG][       Thread-604689][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:29:51,325 [DEBUG][       Thread-604689][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:29:51,325 [DEBUG][       Thread-604689][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:29:51,344 [ INFO][       Thread-604689][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:29:51,344 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:29:51,345 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:29:52,400 [DEBUG][       Thread-604689][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:29:52,400 [DEBUG][       Thread-604689][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:29:52,448 [DEBUG][       Thread-604689][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:29:52,448 [DEBUG][       Thread-604689][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:29:52,460 [DEBUG][       Thread-604689][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:29:52,469 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:29:52,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-07-01 12:29:52,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-07-01 12:29:52,487 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:29:52,487 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:29:52,487 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:29:52,495 [DEBUG][       Thread-604689][   transport.py][1871] : EOF in transport thread
2025-07-01 12:29:57,826 [DEBUG][Thread-604691 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:30:02,488 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:30:02,488 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:30:02,488 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:30:02,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-07-01 12:30:02,974 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 29, 56), 10.84, 47.51, 0.0, 32.46, 12.39, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:30:02,974 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:29:56
2025-07-01 12:30:03,062 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:30:03,066 [DEBUG][       Thread-604692][   transport.py][1871] : starting thread (client mode): 0x8156980
2025-07-01 12:30:03,066 [DEBUG][       Thread-604692][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:30:03,081 [DEBUG][       Thread-604692][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:30:03,081 [ INFO][       Thread-604692][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:30:03,085 [DEBUG][       Thread-604692][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:30:03,085 [DEBUG][       Thread-604692][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:30:03,085 [DEBUG][       Thread-604692][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:30:03,085 [DEBUG][       Thread-604692][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:30:03,085 [DEBUG][       Thread-604692][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:30:03,085 [DEBUG][       Thread-604692][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:30:03,085 [DEBUG][       Thread-604692][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:30:03,085 [DEBUG][       Thread-604692][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:30:03,085 [DEBUG][       Thread-604692][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:30:03,085 [DEBUG][       Thread-604692][   transport.py][1871] : client lang: <none>
2025-07-01 12:30:03,085 [DEBUG][       Thread-604692][   transport.py][1871] : server lang: <none>
2025-07-01 12:30:03,085 [DEBUG][       Thread-604692][   transport.py][1871] : kex follows: False
2025-07-01 12:30:03,085 [DEBUG][       Thread-604692][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:30:03,085 [DEBUG][       Thread-604692][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:30:03,085 [DEBUG][       Thread-604692][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:30:03,085 [DEBUG][       Thread-604692][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:30:03,085 [DEBUG][       Thread-604692][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:30:03,085 [DEBUG][       Thread-604692][   transport.py][1871] : Compression: none
2025-07-01 12:30:03,085 [DEBUG][       Thread-604692][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:30:03,102 [DEBUG][       Thread-604692][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:30:03,103 [DEBUG][       Thread-604692][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:30:03,103 [DEBUG][       Thread-604692][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:30:03,103 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:30:03,103 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:30:03,104 [DEBUG][       Thread-604692][   transport.py][1871] : userauth is OK
2025-07-01 12:30:03,117 [ INFO][       Thread-604692][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:30:03,117 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:30:03,745 [DEBUG][       Thread-604692][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:30:03,746 [DEBUG][       Thread-604692][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:30:03,789 [DEBUG][       Thread-604692][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:30:03,789 [DEBUG][       Thread-604692][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:30:03,792 [DEBUG][       Thread-604692][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:30:03,804 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:30:03,805 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:30:03,806 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:30:03,808 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:30:03,811 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:30:03,813 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:30:03,813 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:30:03,814 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:30:03,814 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.437096 -999.00  +12.40  37.02     52   +2.80 1 1 2 1 1   888    0 10.30 44.46 ----- 37.0 37.0 29.8 56.3 15.9 -24.8 14.8 -25.2 14.6 -23.1 15.6 -22.4
2025-07-01 12:30:03,814 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:30:03,814 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:30:03,814 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.437096
2025-07-01 12:30:03,815 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:30:03,815 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:30:03,816 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:30:03,816 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:30:03,816 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:30:03,816 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:29:56', tmtdew=10.84, humidity=47.51, cloud=0.0, wind=32.46, temperature=12.39, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:29:25.094', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:30:03,816 [DEBUG][       Thread-604692][   transport.py][1871] : EOF in transport thread
2025-07-01 12:30:03,900 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:30:03,909 [DEBUG][       Thread-604695][   transport.py][1871] : starting thread (client mode): 0x81048e0
2025-07-01 12:30:03,909 [DEBUG][       Thread-604695][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:30:03,925 [DEBUG][       Thread-604695][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:30:03,925 [ INFO][       Thread-604695][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:30:03,934 [DEBUG][       Thread-604695][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:30:03,934 [DEBUG][       Thread-604695][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:30:03,934 [DEBUG][       Thread-604695][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:30:03,934 [DEBUG][       Thread-604695][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:30:03,934 [DEBUG][       Thread-604695][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:30:03,934 [DEBUG][       Thread-604695][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:30:03,934 [DEBUG][       Thread-604695][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:30:03,934 [DEBUG][       Thread-604695][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:30:03,934 [DEBUG][       Thread-604695][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:30:03,934 [DEBUG][       Thread-604695][   transport.py][1871] : client lang: <none>
2025-07-01 12:30:03,934 [DEBUG][       Thread-604695][   transport.py][1871] : server lang: <none>
2025-07-01 12:30:03,934 [DEBUG][       Thread-604695][   transport.py][1871] : kex follows: False
2025-07-01 12:30:03,934 [DEBUG][       Thread-604695][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:30:03,934 [DEBUG][       Thread-604695][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:30:03,934 [DEBUG][       Thread-604695][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:30:03,934 [DEBUG][       Thread-604695][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:30:03,934 [DEBUG][       Thread-604695][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:30:03,934 [DEBUG][       Thread-604695][   transport.py][1871] : Compression: none
2025-07-01 12:30:03,934 [DEBUG][       Thread-604695][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:30:03,993 [DEBUG][       Thread-604695][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:30:03,994 [DEBUG][       Thread-604695][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:30:03,994 [DEBUG][       Thread-604695][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:30:03,994 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:30:03,995 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:30:04,054 [DEBUG][       Thread-604695][   transport.py][1871] : userauth is OK
2025-07-01 12:30:04,054 [DEBUG][       Thread-604695][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:30:04,054 [DEBUG][       Thread-604695][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:30:04,054 [DEBUG][       Thread-604695][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:30:04,054 [DEBUG][       Thread-604695][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:30:04,069 [ INFO][       Thread-604695][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:30:04,069 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:30:04,069 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:30:05,142 [DEBUG][       Thread-604695][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:30:05,142 [DEBUG][       Thread-604695][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:30:05,193 [DEBUG][       Thread-604695][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:30:05,193 [DEBUG][       Thread-604695][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:30:05,205 [DEBUG][       Thread-604695][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:30:05,214 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:30:05,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-07-01 12:30:05,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-07-01 12:30:05,232 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:30:05,232 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:30:05,233 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:30:05,241 [DEBUG][       Thread-604695][   transport.py][1871] : EOF in transport thread
2025-07-01 12:30:06,846 [DEBUG][Thread-604697 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:30:15,240 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:30:15,240 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:30:15,240 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:30:15,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-07-01 12:30:15,751 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 29, 56), 10.84, 47.51, 0.0, 32.46, 12.39, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:30:15,751 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:29:56
2025-07-01 12:30:15,842 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:30:15,846 [DEBUG][       Thread-604698][   transport.py][1871] : starting thread (client mode): 0x81e46d0
2025-07-01 12:30:15,847 [DEBUG][       Thread-604698][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:30:15,868 [DEBUG][       Thread-604698][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:30:15,868 [ INFO][       Thread-604698][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:30:15,872 [DEBUG][       Thread-604698][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:30:15,872 [DEBUG][       Thread-604698][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:30:15,872 [DEBUG][       Thread-604698][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:30:15,872 [DEBUG][       Thread-604698][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:30:15,872 [DEBUG][       Thread-604698][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:30:15,872 [DEBUG][       Thread-604698][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:30:15,872 [DEBUG][       Thread-604698][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:30:15,872 [DEBUG][       Thread-604698][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:30:15,872 [DEBUG][       Thread-604698][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:30:15,872 [DEBUG][       Thread-604698][   transport.py][1871] : client lang: <none>
2025-07-01 12:30:15,872 [DEBUG][       Thread-604698][   transport.py][1871] : server lang: <none>
2025-07-01 12:30:15,872 [DEBUG][       Thread-604698][   transport.py][1871] : kex follows: False
2025-07-01 12:30:15,872 [DEBUG][       Thread-604698][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:30:15,872 [DEBUG][       Thread-604698][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:30:15,872 [DEBUG][       Thread-604698][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:30:15,872 [DEBUG][       Thread-604698][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:30:15,872 [DEBUG][       Thread-604698][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:30:15,872 [DEBUG][       Thread-604698][   transport.py][1871] : Compression: none
2025-07-01 12:30:15,872 [DEBUG][       Thread-604698][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:30:15,885 [DEBUG][Thread-604700 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:30:15,887 [DEBUG][       Thread-604698][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:30:15,887 [DEBUG][       Thread-604698][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:30:15,887 [DEBUG][       Thread-604698][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:30:15,887 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:30:15,887 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:30:15,888 [DEBUG][       Thread-604698][   transport.py][1871] : userauth is OK
2025-07-01 12:30:15,914 [ INFO][       Thread-604698][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:30:15,914 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:30:16,377 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:30:16,377 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:30:16,564 [DEBUG][       Thread-604698][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:30:16,564 [DEBUG][       Thread-604698][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:30:16,608 [DEBUG][       Thread-604698][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:30:16,608 [DEBUG][       Thread-604698][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:30:16,611 [DEBUG][       Thread-604698][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:30:16,625 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:30:16,625 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:30:16,626 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:30:16,627 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:30:16,629 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:30:16,630 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:30:16,630 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:30:16,630 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:30:16,630 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.437096 -999.00  +12.40  37.02     52   +2.80 1 1 2 1 1   888    0 10.30 44.46 ----- 37.0 37.0 29.8 56.3 15.9 -24.8 14.8 -25.2 14.6 -23.1 15.6 -22.4
2025-07-01 12:30:16,630 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:30:16,630 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:30:16,630 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.437096
2025-07-01 12:30:16,631 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:30:16,631 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:30:16,631 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:30:16,631 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:30:16,631 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:30:16,631 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:29:56', tmtdew=10.84, humidity=47.51, cloud=0.0, wind=32.46, temperature=12.39, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:29:25.094', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:30:16,631 [DEBUG][       Thread-604698][   transport.py][1871] : EOF in transport thread
2025-07-01 12:30:16,703 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:30:16,716 [DEBUG][       Thread-604702][   transport.py][1871] : starting thread (client mode): 0x818df30
2025-07-01 12:30:16,716 [DEBUG][       Thread-604702][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:30:16,733 [DEBUG][       Thread-604702][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:30:16,733 [ INFO][       Thread-604702][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:30:16,740 [DEBUG][       Thread-604702][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:30:16,740 [DEBUG][       Thread-604702][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:30:16,740 [DEBUG][       Thread-604702][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:30:16,740 [DEBUG][       Thread-604702][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:30:16,740 [DEBUG][       Thread-604702][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:30:16,740 [DEBUG][       Thread-604702][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:30:16,740 [DEBUG][       Thread-604702][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:30:16,740 [DEBUG][       Thread-604702][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:30:16,740 [DEBUG][       Thread-604702][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:30:16,740 [DEBUG][       Thread-604702][   transport.py][1871] : client lang: <none>
2025-07-01 12:30:16,740 [DEBUG][       Thread-604702][   transport.py][1871] : server lang: <none>
2025-07-01 12:30:16,740 [DEBUG][       Thread-604702][   transport.py][1871] : kex follows: False
2025-07-01 12:30:16,740 [DEBUG][       Thread-604702][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:30:16,740 [DEBUG][       Thread-604702][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:30:16,740 [DEBUG][       Thread-604702][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:30:16,740 [DEBUG][       Thread-604702][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:30:16,740 [DEBUG][       Thread-604702][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:30:16,740 [DEBUG][       Thread-604702][   transport.py][1871] : Compression: none
2025-07-01 12:30:16,740 [DEBUG][       Thread-604702][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:30:16,796 [DEBUG][       Thread-604702][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:30:16,796 [DEBUG][       Thread-604702][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:30:16,796 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:30:16,796 [DEBUG][       Thread-604702][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:30:16,796 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:30:16,853 [DEBUG][       Thread-604702][   transport.py][1871] : userauth is OK
2025-07-01 12:30:16,853 [DEBUG][       Thread-604702][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:30:16,853 [DEBUG][       Thread-604702][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:30:16,853 [DEBUG][       Thread-604702][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:30:16,853 [DEBUG][       Thread-604702][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:30:16,867 [ INFO][       Thread-604702][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:30:16,867 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:30:16,867 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:30:17,903 [DEBUG][       Thread-604702][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:30:17,903 [DEBUG][       Thread-604702][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:30:17,951 [DEBUG][       Thread-604702][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:30:17,951 [DEBUG][       Thread-604702][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:30:17,960 [DEBUG][       Thread-604702][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:30:17,968 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:30:17,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-07-01 12:30:17,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-07-01 12:30:17,983 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:30:17,983 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:30:17,983 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:30:17,991 [DEBUG][       Thread-604702][   transport.py][1871] : EOF in transport thread
2025-07-01 12:30:24,909 [DEBUG][Thread-604704 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:30:27,992 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:30:27,992 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:30:27,992 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:30:27,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-07-01 12:30:28,486 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 29, 56), 10.84, 47.51, 0.0, 32.46, 12.39, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:30:28,486 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:29:56
2025-07-01 12:30:28,572 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:30:28,579 [DEBUG][       Thread-604705][   transport.py][1871] : starting thread (client mode): 0x81e7580
2025-07-01 12:30:28,579 [DEBUG][       Thread-604705][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:30:28,597 [DEBUG][       Thread-604705][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:30:28,597 [ INFO][       Thread-604705][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:30:28,601 [DEBUG][       Thread-604705][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:30:28,601 [DEBUG][       Thread-604705][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:30:28,601 [DEBUG][       Thread-604705][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:30:28,601 [DEBUG][       Thread-604705][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:30:28,601 [DEBUG][       Thread-604705][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:30:28,601 [DEBUG][       Thread-604705][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:30:28,601 [DEBUG][       Thread-604705][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:30:28,601 [DEBUG][       Thread-604705][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:30:28,601 [DEBUG][       Thread-604705][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:30:28,601 [DEBUG][       Thread-604705][   transport.py][1871] : client lang: <none>
2025-07-01 12:30:28,601 [DEBUG][       Thread-604705][   transport.py][1871] : server lang: <none>
2025-07-01 12:30:28,601 [DEBUG][       Thread-604705][   transport.py][1871] : kex follows: False
2025-07-01 12:30:28,601 [DEBUG][       Thread-604705][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:30:28,601 [DEBUG][       Thread-604705][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:30:28,601 [DEBUG][       Thread-604705][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:30:28,601 [DEBUG][       Thread-604705][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:30:28,601 [DEBUG][       Thread-604705][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:30:28,601 [DEBUG][       Thread-604705][   transport.py][1871] : Compression: none
2025-07-01 12:30:28,601 [DEBUG][       Thread-604705][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:30:28,617 [DEBUG][       Thread-604705][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:30:28,617 [DEBUG][       Thread-604705][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:30:28,618 [DEBUG][       Thread-604705][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:30:28,618 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:30:28,618 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:30:28,619 [DEBUG][       Thread-604705][   transport.py][1871] : userauth is OK
2025-07-01 12:30:28,643 [ INFO][       Thread-604705][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:30:28,644 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:30:29,222 [DEBUG][       Thread-604705][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:30:29,222 [DEBUG][       Thread-604705][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:30:29,269 [DEBUG][       Thread-604705][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:30:29,269 [DEBUG][       Thread-604705][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:30:29,271 [DEBUG][       Thread-604705][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:30:29,282 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:30:29,282 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:30:29,283 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:30:29,283 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:30:29,286 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:30:29,287 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:30:29,287 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:30:29,287 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:30:29,287 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.437443 -999.00  +12.50  38.12     52   +2.90 1 1 2 1 1   888    0 10.41 48.40 ----- 38.1 38.1 33.4 49.6 16.0 -24.8 14.9 -26.0 14.7 -23.0 15.7 -22.1
2025-07-01 12:30:29,287 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:30:29,287 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:30:29,287 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.437443
2025-07-01 12:30:29,288 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:30:29,288 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:30:29,288 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:30:29,288 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:30:29,288 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:30:29,288 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:29:56', tmtdew=10.84, humidity=47.51, cloud=0.0, wind=32.46, temperature=12.39, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:29:55.075', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:30:29,288 [DEBUG][       Thread-604705][   transport.py][1871] : EOF in transport thread
2025-07-01 12:30:29,347 [DEBUG][Thread-604708 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:30:29,362 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:30:29,374 [DEBUG][       Thread-604709][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 12:30:29,374 [DEBUG][       Thread-604709][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:30:29,392 [DEBUG][       Thread-604709][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:30:29,392 [ INFO][       Thread-604709][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:30:29,399 [DEBUG][       Thread-604709][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:30:29,400 [DEBUG][       Thread-604709][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:30:29,400 [DEBUG][       Thread-604709][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:30:29,400 [DEBUG][       Thread-604709][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:30:29,400 [DEBUG][       Thread-604709][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:30:29,400 [DEBUG][       Thread-604709][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:30:29,400 [DEBUG][       Thread-604709][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:30:29,400 [DEBUG][       Thread-604709][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:30:29,400 [DEBUG][       Thread-604709][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:30:29,400 [DEBUG][       Thread-604709][   transport.py][1871] : client lang: <none>
2025-07-01 12:30:29,400 [DEBUG][       Thread-604709][   transport.py][1871] : server lang: <none>
2025-07-01 12:30:29,400 [DEBUG][       Thread-604709][   transport.py][1871] : kex follows: False
2025-07-01 12:30:29,400 [DEBUG][       Thread-604709][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:30:29,400 [DEBUG][       Thread-604709][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:30:29,400 [DEBUG][       Thread-604709][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:30:29,400 [DEBUG][       Thread-604709][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:30:29,400 [DEBUG][       Thread-604709][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:30:29,400 [DEBUG][       Thread-604709][   transport.py][1871] : Compression: none
2025-07-01 12:30:29,400 [DEBUG][       Thread-604709][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:30:29,457 [DEBUG][       Thread-604709][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:30:29,457 [DEBUG][       Thread-604709][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:30:29,457 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:30:29,457 [DEBUG][       Thread-604709][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:30:29,457 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:30:29,513 [DEBUG][       Thread-604709][   transport.py][1871] : userauth is OK
2025-07-01 12:30:29,513 [DEBUG][       Thread-604709][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:30:29,513 [DEBUG][       Thread-604709][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:30:29,513 [DEBUG][       Thread-604709][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:30:29,513 [DEBUG][       Thread-604709][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:30:29,528 [ INFO][       Thread-604709][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:30:29,528 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:30:29,528 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:30:30,592 [DEBUG][       Thread-604709][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:30:30,592 [DEBUG][       Thread-604709][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:30:30,639 [DEBUG][       Thread-604709][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:30:30,639 [DEBUG][       Thread-604709][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:30:30,648 [DEBUG][       Thread-604709][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:30:30,656 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:30:30,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-07-01 12:30:30,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-07-01 12:30:30,673 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:30:30,673 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:30:30,673 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:30:30,681 [DEBUG][       Thread-604709][   transport.py][1871] : EOF in transport thread
2025-07-01 12:30:33,930 [DEBUG][Thread-604711 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:30:40,674 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:30:40,674 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:30:40,675 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:30:40,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-07-01 12:30:41,169 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 30, 28), 10.94, 47.19, 0.0, 41.78, 12.37, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:30:41,169 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:30:28
2025-07-01 12:30:41,253 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:30:41,257 [DEBUG][       Thread-604712][   transport.py][1871] : starting thread (client mode): 0x8106140
2025-07-01 12:30:41,257 [DEBUG][       Thread-604712][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:30:41,278 [DEBUG][       Thread-604712][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:30:41,278 [ INFO][       Thread-604712][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:30:41,282 [DEBUG][       Thread-604712][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:30:41,282 [DEBUG][       Thread-604712][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:30:41,282 [DEBUG][       Thread-604712][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:30:41,282 [DEBUG][       Thread-604712][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:30:41,282 [DEBUG][       Thread-604712][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:30:41,282 [DEBUG][       Thread-604712][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:30:41,282 [DEBUG][       Thread-604712][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:30:41,282 [DEBUG][       Thread-604712][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:30:41,282 [DEBUG][       Thread-604712][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:30:41,282 [DEBUG][       Thread-604712][   transport.py][1871] : client lang: <none>
2025-07-01 12:30:41,282 [DEBUG][       Thread-604712][   transport.py][1871] : server lang: <none>
2025-07-01 12:30:41,282 [DEBUG][       Thread-604712][   transport.py][1871] : kex follows: False
2025-07-01 12:30:41,282 [DEBUG][       Thread-604712][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:30:41,282 [DEBUG][       Thread-604712][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:30:41,282 [DEBUG][       Thread-604712][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:30:41,282 [DEBUG][       Thread-604712][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:30:41,282 [DEBUG][       Thread-604712][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:30:41,282 [DEBUG][       Thread-604712][   transport.py][1871] : Compression: none
2025-07-01 12:30:41,282 [DEBUG][       Thread-604712][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:30:41,299 [DEBUG][       Thread-604712][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:30:41,300 [DEBUG][       Thread-604712][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:30:41,300 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:30:41,301 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:30:41,301 [DEBUG][       Thread-604712][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:30:41,302 [DEBUG][       Thread-604712][   transport.py][1871] : userauth is OK
2025-07-01 12:30:41,326 [ INFO][       Thread-604712][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:30:41,327 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:30:41,966 [DEBUG][       Thread-604712][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:30:41,966 [DEBUG][       Thread-604712][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:30:42,009 [DEBUG][       Thread-604712][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:30:42,009 [DEBUG][       Thread-604712][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:30:42,013 [DEBUG][       Thread-604712][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:30:42,026 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:30:42,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:30:42,029 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:30:42,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:30:42,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:30:42,039 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:30:42,039 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:30:42,040 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:30:42,040 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.437443 -999.00  +12.50  38.12     52   +2.90 1 1 2 1 1   888    0 10.41 48.40 ----- 38.1 38.1 33.4 49.6 16.0 -24.8 14.9 -26.0 14.7 -23.0 15.7 -22.1
2025-07-01 12:30:42,040 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:30:42,040 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:30:42,040 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.437443
2025-07-01 12:30:42,041 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:30:42,041 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:30:42,041 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:30:42,041 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:30:42,041 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:30:42,042 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:30:28', tmtdew=10.94, humidity=47.19, cloud=0.0, wind=41.78, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:29:55.075', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:30:42,043 [DEBUG][       Thread-604712][   transport.py][1871] : EOF in transport thread
2025-07-01 12:30:42,125 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:30:42,137 [DEBUG][       Thread-604715][   transport.py][1871] : starting thread (client mode): 0x8154b20
2025-07-01 12:30:42,137 [DEBUG][       Thread-604715][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:30:42,156 [DEBUG][       Thread-604715][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:30:42,156 [ INFO][       Thread-604715][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:30:42,164 [DEBUG][       Thread-604715][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:30:42,164 [DEBUG][       Thread-604715][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:30:42,164 [DEBUG][       Thread-604715][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:30:42,164 [DEBUG][       Thread-604715][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:30:42,165 [DEBUG][       Thread-604715][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:30:42,165 [DEBUG][       Thread-604715][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:30:42,165 [DEBUG][       Thread-604715][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:30:42,165 [DEBUG][       Thread-604715][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:30:42,165 [DEBUG][       Thread-604715][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:30:42,165 [DEBUG][       Thread-604715][   transport.py][1871] : client lang: <none>
2025-07-01 12:30:42,165 [DEBUG][       Thread-604715][   transport.py][1871] : server lang: <none>
2025-07-01 12:30:42,165 [DEBUG][       Thread-604715][   transport.py][1871] : kex follows: False
2025-07-01 12:30:42,165 [DEBUG][       Thread-604715][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:30:42,165 [DEBUG][       Thread-604715][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:30:42,165 [DEBUG][       Thread-604715][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:30:42,165 [DEBUG][       Thread-604715][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:30:42,165 [DEBUG][       Thread-604715][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:30:42,165 [DEBUG][       Thread-604715][   transport.py][1871] : Compression: none
2025-07-01 12:30:42,165 [DEBUG][       Thread-604715][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:30:42,220 [DEBUG][       Thread-604715][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:30:42,221 [DEBUG][       Thread-604715][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:30:42,222 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:30:42,222 [DEBUG][       Thread-604715][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:30:42,223 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:30:42,278 [DEBUG][       Thread-604715][   transport.py][1871] : userauth is OK
2025-07-01 12:30:42,279 [DEBUG][       Thread-604715][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:30:42,279 [DEBUG][       Thread-604715][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:30:42,279 [DEBUG][       Thread-604715][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:30:42,279 [DEBUG][       Thread-604715][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:30:42,297 [ INFO][       Thread-604715][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:30:42,297 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:30:42,298 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:30:42,952 [DEBUG][Thread-604717 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:30:43,280 [DEBUG][       Thread-604715][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:30:43,281 [DEBUG][       Thread-604715][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:30:43,333 [DEBUG][       Thread-604715][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:30:43,334 [DEBUG][       Thread-604715][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:30:43,344 [DEBUG][       Thread-604715][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:30:43,353 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:30:43,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-07-01 12:30:43,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') -> 00000000
2025-07-01 12:30:43,380 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:30:43,380 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:30:43,381 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:30:43,395 [DEBUG][       Thread-604715][   transport.py][1871] : EOF in transport thread
2025-07-01 12:30:51,995 [DEBUG][Thread-604718 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:30:53,388 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:30:53,388 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:30:53,388 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:30:53,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-07-01 12:30:53,900 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 30, 28), 10.94, 47.19, 0.0, 41.78, 12.37, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:30:53,901 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:30:28
2025-07-01 12:30:53,987 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:30:53,993 [DEBUG][       Thread-604719][   transport.py][1871] : starting thread (client mode): 0x82b2830
2025-07-01 12:30:53,993 [DEBUG][       Thread-604719][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:30:54,013 [DEBUG][       Thread-604719][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:30:54,013 [ INFO][       Thread-604719][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:30:54,017 [DEBUG][       Thread-604719][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:30:54,017 [DEBUG][       Thread-604719][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:30:54,017 [DEBUG][       Thread-604719][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:30:54,017 [DEBUG][       Thread-604719][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:30:54,017 [DEBUG][       Thread-604719][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:30:54,017 [DEBUG][       Thread-604719][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:30:54,017 [DEBUG][       Thread-604719][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:30:54,017 [DEBUG][       Thread-604719][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:30:54,017 [DEBUG][       Thread-604719][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:30:54,017 [DEBUG][       Thread-604719][   transport.py][1871] : client lang: <none>
2025-07-01 12:30:54,017 [DEBUG][       Thread-604719][   transport.py][1871] : server lang: <none>
2025-07-01 12:30:54,017 [DEBUG][       Thread-604719][   transport.py][1871] : kex follows: False
2025-07-01 12:30:54,017 [DEBUG][       Thread-604719][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:30:54,017 [DEBUG][       Thread-604719][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:30:54,017 [DEBUG][       Thread-604719][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:30:54,017 [DEBUG][       Thread-604719][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:30:54,017 [DEBUG][       Thread-604719][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:30:54,017 [DEBUG][       Thread-604719][   transport.py][1871] : Compression: none
2025-07-01 12:30:54,017 [DEBUG][       Thread-604719][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:30:54,032 [DEBUG][       Thread-604719][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:30:54,033 [DEBUG][       Thread-604719][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:30:54,033 [DEBUG][       Thread-604719][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:30:54,033 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:30:54,033 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:30:54,034 [DEBUG][       Thread-604719][   transport.py][1871] : userauth is OK
2025-07-01 12:30:54,058 [ INFO][       Thread-604719][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:30:54,058 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:30:54,676 [DEBUG][       Thread-604719][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:30:54,676 [DEBUG][       Thread-604719][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:30:54,720 [DEBUG][       Thread-604719][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:30:54,721 [DEBUG][       Thread-604719][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:30:54,723 [DEBUG][       Thread-604719][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:30:54,734 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:30:54,734 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:30:54,736 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:30:54,737 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:30:54,741 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:30:54,748 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:30:54,749 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:30:54,749 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:30:54,749 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.437443 -999.00  +12.50  38.12     52   +2.90 1 1 2 1 1   888    0 10.41 48.40 ----- 38.1 38.1 33.4 49.6 16.0 -24.8 14.9 -26.0 14.7 -23.0 15.7 -22.1
2025-07-01 12:30:54,749 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:30:54,749 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:30:54,749 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.437443
2025-07-01 12:30:54,749 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:30:54,749 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:30:54,749 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:30:54,749 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:30:54,749 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:30:54,749 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:30:28', tmtdew=10.94, humidity=47.19, cloud=0.0, wind=41.78, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:29:55.075', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:30:54,750 [DEBUG][       Thread-604719][   transport.py][1871] : EOF in transport thread
2025-07-01 12:30:54,821 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:30:54,832 [DEBUG][       Thread-604722][   transport.py][1871] : starting thread (client mode): 0x8105930
2025-07-01 12:30:54,832 [DEBUG][       Thread-604722][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:30:54,847 [DEBUG][       Thread-604722][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:30:54,847 [ INFO][       Thread-604722][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:30:54,854 [DEBUG][       Thread-604722][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:30:54,854 [DEBUG][       Thread-604722][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:30:54,854 [DEBUG][       Thread-604722][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:30:54,854 [DEBUG][       Thread-604722][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:30:54,854 [DEBUG][       Thread-604722][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:30:54,854 [DEBUG][       Thread-604722][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:30:54,854 [DEBUG][       Thread-604722][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:30:54,854 [DEBUG][       Thread-604722][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:30:54,854 [DEBUG][       Thread-604722][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:30:54,854 [DEBUG][       Thread-604722][   transport.py][1871] : client lang: <none>
2025-07-01 12:30:54,854 [DEBUG][       Thread-604722][   transport.py][1871] : server lang: <none>
2025-07-01 12:30:54,854 [DEBUG][       Thread-604722][   transport.py][1871] : kex follows: False
2025-07-01 12:30:54,854 [DEBUG][       Thread-604722][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:30:54,854 [DEBUG][       Thread-604722][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:30:54,854 [DEBUG][       Thread-604722][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:30:54,854 [DEBUG][       Thread-604722][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:30:54,854 [DEBUG][       Thread-604722][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:30:54,854 [DEBUG][       Thread-604722][   transport.py][1871] : Compression: none
2025-07-01 12:30:54,854 [DEBUG][       Thread-604722][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:30:54,915 [DEBUG][       Thread-604722][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:30:54,915 [DEBUG][       Thread-604722][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:30:54,915 [DEBUG][       Thread-604722][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:30:54,915 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:30:54,916 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:30:54,977 [DEBUG][       Thread-604722][   transport.py][1871] : userauth is OK
2025-07-01 12:30:54,977 [DEBUG][       Thread-604722][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:30:54,977 [DEBUG][       Thread-604722][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:30:54,977 [DEBUG][       Thread-604722][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:30:54,977 [DEBUG][       Thread-604722][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:30:54,991 [ INFO][       Thread-604722][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:30:54,991 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:30:54,991 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:30:55,998 [DEBUG][       Thread-604722][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:30:55,998 [DEBUG][       Thread-604722][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:30:56,047 [DEBUG][       Thread-604722][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:30:56,047 [DEBUG][       Thread-604722][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:30:56,055 [DEBUG][       Thread-604722][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:30:56,063 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:30:56,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-07-01 12:30:56,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-07-01 12:30:56,079 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:30:56,079 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:30:56,079 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:30:56,087 [DEBUG][       Thread-604722][   transport.py][1871] : EOF in transport thread
2025-07-01 12:31:01,013 [DEBUG][Thread-604724 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:31:06,088 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:31:06,089 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:31:06,089 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:31:06,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-07-01 12:31:06,570 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 31), 10.94, 47.19, 0.0, 39.94, 12.36, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:31:06,570 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:31:00
2025-07-01 12:31:06,655 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:31:06,659 [DEBUG][       Thread-604725][   transport.py][1871] : starting thread (client mode): 0x8106770
2025-07-01 12:31:06,659 [DEBUG][       Thread-604725][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:31:06,680 [DEBUG][       Thread-604725][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:31:06,680 [ INFO][       Thread-604725][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:31:06,683 [DEBUG][       Thread-604725][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:31:06,683 [DEBUG][       Thread-604725][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:31:06,683 [DEBUG][       Thread-604725][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:31:06,683 [DEBUG][       Thread-604725][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:31:06,683 [DEBUG][       Thread-604725][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:31:06,683 [DEBUG][       Thread-604725][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:31:06,684 [DEBUG][       Thread-604725][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:31:06,684 [DEBUG][       Thread-604725][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:31:06,684 [DEBUG][       Thread-604725][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:31:06,684 [DEBUG][       Thread-604725][   transport.py][1871] : client lang: <none>
2025-07-01 12:31:06,684 [DEBUG][       Thread-604725][   transport.py][1871] : server lang: <none>
2025-07-01 12:31:06,684 [DEBUG][       Thread-604725][   transport.py][1871] : kex follows: False
2025-07-01 12:31:06,684 [DEBUG][       Thread-604725][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:31:06,684 [DEBUG][       Thread-604725][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:31:06,684 [DEBUG][       Thread-604725][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:31:06,684 [DEBUG][       Thread-604725][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:31:06,684 [DEBUG][       Thread-604725][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:31:06,684 [DEBUG][       Thread-604725][   transport.py][1871] : Compression: none
2025-07-01 12:31:06,684 [DEBUG][       Thread-604725][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:31:06,701 [DEBUG][       Thread-604725][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:31:06,702 [DEBUG][       Thread-604725][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:31:06,702 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:31:06,702 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:31:06,703 [DEBUG][       Thread-604725][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:31:06,703 [DEBUG][       Thread-604725][   transport.py][1871] : userauth is OK
2025-07-01 12:31:06,731 [ INFO][       Thread-604725][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:31:06,731 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:31:07,369 [DEBUG][       Thread-604725][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:31:07,369 [DEBUG][       Thread-604725][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:31:07,413 [DEBUG][       Thread-604725][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:31:07,413 [DEBUG][       Thread-604725][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:31:07,417 [DEBUG][       Thread-604725][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:31:07,429 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:31:07,430 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:31:07,432 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:31:07,434 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:31:07,441 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:31:07,443 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:31:07,443 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:31:07,444 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:31:07,444 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.438138 -999.00  +12.50  40.78     51   +2.80 1 1 2 1 1   888    0 10.58 56.24 ----- 40.8 40.8 42.0 45.4 16.0 -24.2 14.9 -25.3 14.7 -22.9 15.7 -21.9
2025-07-01 12:31:07,444 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:31:07,444 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:31:07,444 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.438138
2025-07-01 12:31:07,445 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:31:07,445 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:31:07,445 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:31:07,445 [DEBUG][       Thread-604725][   transport.py][1871] : EOF in transport thread
2025-07-01 12:31:07,446 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:31:07,446 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:31:07,446 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:31:00', tmtdew=10.94, humidity=47.19, cloud=0.0, wind=39.94, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:30:55.123', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:31:07,529 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:31:07,539 [DEBUG][       Thread-604728][   transport.py][1871] : starting thread (client mode): 0x83c8490
2025-07-01 12:31:07,539 [DEBUG][       Thread-604728][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:31:07,553 [DEBUG][       Thread-604728][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:31:07,554 [ INFO][       Thread-604728][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:31:07,561 [DEBUG][       Thread-604728][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:31:07,561 [DEBUG][       Thread-604728][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:31:07,561 [DEBUG][       Thread-604728][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:31:07,562 [DEBUG][       Thread-604728][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:31:07,562 [DEBUG][       Thread-604728][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:31:07,562 [DEBUG][       Thread-604728][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:31:07,562 [DEBUG][       Thread-604728][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:31:07,562 [DEBUG][       Thread-604728][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:31:07,562 [DEBUG][       Thread-604728][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:31:07,562 [DEBUG][       Thread-604728][   transport.py][1871] : client lang: <none>
2025-07-01 12:31:07,562 [DEBUG][       Thread-604728][   transport.py][1871] : server lang: <none>
2025-07-01 12:31:07,562 [DEBUG][       Thread-604728][   transport.py][1871] : kex follows: False
2025-07-01 12:31:07,562 [DEBUG][       Thread-604728][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:31:07,562 [DEBUG][       Thread-604728][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:31:07,562 [DEBUG][       Thread-604728][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:31:07,562 [DEBUG][       Thread-604728][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:31:07,562 [DEBUG][       Thread-604728][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:31:07,562 [DEBUG][       Thread-604728][   transport.py][1871] : Compression: none
2025-07-01 12:31:07,562 [DEBUG][       Thread-604728][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:31:07,626 [DEBUG][       Thread-604728][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:31:07,626 [DEBUG][       Thread-604728][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:31:07,627 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:31:07,627 [DEBUG][       Thread-604728][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:31:07,628 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:31:07,685 [DEBUG][       Thread-604728][   transport.py][1871] : userauth is OK
2025-07-01 12:31:07,685 [DEBUG][       Thread-604728][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:31:07,685 [DEBUG][       Thread-604728][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:31:07,685 [DEBUG][       Thread-604728][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:31:07,685 [DEBUG][       Thread-604728][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:31:07,702 [ INFO][       Thread-604728][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:31:07,702 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:31:07,702 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:31:08,750 [DEBUG][       Thread-604728][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:31:08,750 [DEBUG][       Thread-604728][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:31:08,803 [DEBUG][       Thread-604728][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:31:08,804 [DEBUG][       Thread-604728][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:31:08,812 [DEBUG][       Thread-604728][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:31:08,821 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:31:08,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-07-01 12:31:08,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-07-01 12:31:08,838 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:31:08,839 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:31:08,839 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:31:08,853 [DEBUG][       Thread-604728][   transport.py][1871] : EOF in transport thread
2025-07-01 12:31:10,033 [DEBUG][Thread-604730 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:31:16,515 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:31:16,517 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:31:18,850 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:31:18,850 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:31:18,850 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:31:18,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-07-01 12:31:19,064 [DEBUG][Thread-604731 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:31:19,343 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 31), 10.94, 47.19, 0.0, 39.94, 12.36, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:31:19,343 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:31:00
2025-07-01 12:31:19,429 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:31:19,433 [DEBUG][       Thread-604732][   transport.py][1871] : starting thread (client mode): 0x81e4760
2025-07-01 12:31:19,433 [DEBUG][       Thread-604732][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:31:19,453 [DEBUG][       Thread-604732][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:31:19,453 [ INFO][       Thread-604732][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:31:19,456 [DEBUG][       Thread-604732][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:31:19,456 [DEBUG][       Thread-604732][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:31:19,456 [DEBUG][       Thread-604732][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:31:19,456 [DEBUG][       Thread-604732][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:31:19,456 [DEBUG][       Thread-604732][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:31:19,456 [DEBUG][       Thread-604732][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:31:19,456 [DEBUG][       Thread-604732][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:31:19,456 [DEBUG][       Thread-604732][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:31:19,456 [DEBUG][       Thread-604732][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:31:19,456 [DEBUG][       Thread-604732][   transport.py][1871] : client lang: <none>
2025-07-01 12:31:19,456 [DEBUG][       Thread-604732][   transport.py][1871] : server lang: <none>
2025-07-01 12:31:19,456 [DEBUG][       Thread-604732][   transport.py][1871] : kex follows: False
2025-07-01 12:31:19,456 [DEBUG][       Thread-604732][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:31:19,456 [DEBUG][       Thread-604732][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:31:19,456 [DEBUG][       Thread-604732][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:31:19,456 [DEBUG][       Thread-604732][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:31:19,456 [DEBUG][       Thread-604732][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:31:19,456 [DEBUG][       Thread-604732][   transport.py][1871] : Compression: none
2025-07-01 12:31:19,456 [DEBUG][       Thread-604732][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:31:19,466 [DEBUG][       Thread-604732][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:31:19,466 [DEBUG][       Thread-604732][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:31:19,467 [DEBUG][       Thread-604732][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:31:19,467 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:31:19,467 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:31:19,468 [DEBUG][       Thread-604732][   transport.py][1871] : userauth is OK
2025-07-01 12:31:19,481 [ INFO][       Thread-604732][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:31:19,481 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:31:20,099 [DEBUG][       Thread-604732][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:31:20,099 [DEBUG][       Thread-604732][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:31:20,140 [DEBUG][       Thread-604732][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:31:20,140 [DEBUG][       Thread-604732][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:31:20,143 [DEBUG][       Thread-604732][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:31:20,155 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:31:20,155 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:31:20,156 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:31:20,157 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:31:20,159 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:31:20,160 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:31:20,160 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:31:20,160 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:31:20,160 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.438138 -999.00  +12.50  40.78     51   +2.80 1 1 2 1 1   888    0 10.58 56.24 ----- 40.8 40.8 42.0 45.4 16.0 -24.2 14.9 -25.3 14.7 -22.9 15.7 -21.9
2025-07-01 12:31:20,160 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:31:20,160 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:31:20,160 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.438138
2025-07-01 12:31:20,160 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:31:20,160 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:31:20,160 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:31:20,160 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:31:20,160 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:31:20,160 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:31:00', tmtdew=10.94, humidity=47.19, cloud=0.0, wind=39.94, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:30:55.123', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:31:20,161 [DEBUG][       Thread-604732][   transport.py][1871] : EOF in transport thread
2025-07-01 12:31:20,232 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:31:20,243 [DEBUG][       Thread-604735][   transport.py][1871] : starting thread (client mode): 0x827d9f0
2025-07-01 12:31:20,243 [DEBUG][       Thread-604735][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:31:20,258 [DEBUG][       Thread-604735][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:31:20,258 [ INFO][       Thread-604735][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:31:20,265 [DEBUG][       Thread-604735][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:31:20,266 [DEBUG][       Thread-604735][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:31:20,266 [DEBUG][       Thread-604735][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:31:20,266 [DEBUG][       Thread-604735][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:31:20,266 [DEBUG][       Thread-604735][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:31:20,266 [DEBUG][       Thread-604735][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:31:20,266 [DEBUG][       Thread-604735][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:31:20,266 [DEBUG][       Thread-604735][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:31:20,266 [DEBUG][       Thread-604735][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:31:20,266 [DEBUG][       Thread-604735][   transport.py][1871] : client lang: <none>
2025-07-01 12:31:20,266 [DEBUG][       Thread-604735][   transport.py][1871] : server lang: <none>
2025-07-01 12:31:20,266 [DEBUG][       Thread-604735][   transport.py][1871] : kex follows: False
2025-07-01 12:31:20,266 [DEBUG][       Thread-604735][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:31:20,266 [DEBUG][       Thread-604735][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:31:20,266 [DEBUG][       Thread-604735][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:31:20,266 [DEBUG][       Thread-604735][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:31:20,266 [DEBUG][       Thread-604735][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:31:20,266 [DEBUG][       Thread-604735][   transport.py][1871] : Compression: none
2025-07-01 12:31:20,266 [DEBUG][       Thread-604735][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:31:20,325 [DEBUG][       Thread-604735][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:31:20,325 [DEBUG][       Thread-604735][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:31:20,326 [DEBUG][       Thread-604735][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:31:20,326 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:31:20,326 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:31:20,382 [DEBUG][       Thread-604735][   transport.py][1871] : userauth is OK
2025-07-01 12:31:20,382 [DEBUG][       Thread-604735][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:31:20,382 [DEBUG][       Thread-604735][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:31:20,382 [DEBUG][       Thread-604735][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:31:20,383 [DEBUG][       Thread-604735][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:31:20,401 [ INFO][       Thread-604735][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:31:20,402 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:31:20,402 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:31:21,435 [DEBUG][       Thread-604735][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:31:21,435 [DEBUG][       Thread-604735][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:31:21,484 [DEBUG][       Thread-604735][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:31:21,484 [DEBUG][       Thread-604735][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:31:21,493 [DEBUG][       Thread-604735][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:31:21,502 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:31:21,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-07-01 12:31:21,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-07-01 12:31:21,519 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:31:21,520 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:31:21,529 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:31:21,537 [DEBUG][       Thread-604735][   transport.py][1871] : EOF in transport thread
2025-07-01 12:31:28,086 [DEBUG][Thread-604737 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:31:29,399 [DEBUG][Thread-604738 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:31:31,536 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:31:31,536 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:31:31,536 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:31:31,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-07-01 12:31:32,048 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 31), 10.94, 47.19, 0.0, 39.94, 12.36, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:31:32,048 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:31:00
2025-07-01 12:31:32,135 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:31:32,139 [DEBUG][       Thread-604739][   transport.py][1871] : starting thread (client mode): 0x81e67d0
2025-07-01 12:31:32,139 [DEBUG][       Thread-604739][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:31:32,159 [DEBUG][       Thread-604739][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:31:32,159 [ INFO][       Thread-604739][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:31:32,162 [DEBUG][       Thread-604739][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:31:32,162 [DEBUG][       Thread-604739][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:31:32,162 [DEBUG][       Thread-604739][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:31:32,162 [DEBUG][       Thread-604739][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:31:32,162 [DEBUG][       Thread-604739][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:31:32,162 [DEBUG][       Thread-604739][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:31:32,162 [DEBUG][       Thread-604739][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:31:32,162 [DEBUG][       Thread-604739][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:31:32,162 [DEBUG][       Thread-604739][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:31:32,162 [DEBUG][       Thread-604739][   transport.py][1871] : client lang: <none>
2025-07-01 12:31:32,162 [DEBUG][       Thread-604739][   transport.py][1871] : server lang: <none>
2025-07-01 12:31:32,162 [DEBUG][       Thread-604739][   transport.py][1871] : kex follows: False
2025-07-01 12:31:32,162 [DEBUG][       Thread-604739][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:31:32,162 [DEBUG][       Thread-604739][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:31:32,162 [DEBUG][       Thread-604739][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:31:32,162 [DEBUG][       Thread-604739][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:31:32,162 [DEBUG][       Thread-604739][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:31:32,162 [DEBUG][       Thread-604739][   transport.py][1871] : Compression: none
2025-07-01 12:31:32,162 [DEBUG][       Thread-604739][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:31:32,177 [DEBUG][       Thread-604739][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:31:32,177 [DEBUG][       Thread-604739][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:31:32,177 [DEBUG][       Thread-604739][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:31:32,177 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:31:32,177 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:31:32,178 [DEBUG][       Thread-604739][   transport.py][1871] : userauth is OK
2025-07-01 12:31:32,203 [ INFO][       Thread-604739][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:31:32,203 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:31:32,868 [DEBUG][       Thread-604739][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:31:32,868 [DEBUG][       Thread-604739][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:31:32,908 [DEBUG][       Thread-604739][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:31:32,909 [DEBUG][       Thread-604739][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:31:32,911 [DEBUG][       Thread-604739][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:31:32,924 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:31:32,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:31:32,925 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:31:32,927 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:31:32,929 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:31:32,930 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:31:32,930 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:31:32,931 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:31:32,931 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.438138 -999.00  +12.50  40.78     51   +2.80 1 1 2 1 1   888    0 10.58 56.24 ----- 40.8 40.8 42.0 45.4 16.0 -24.2 14.9 -25.3 14.7 -22.9 15.7 -21.9
2025-07-01 12:31:32,931 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:31:32,931 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:31:32,931 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.438138
2025-07-01 12:31:32,931 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:31:32,931 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:31:32,931 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:31:32,931 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:31:32,931 [DEBUG][       Thread-604739][   transport.py][1871] : EOF in transport thread
2025-07-01 12:31:32,931 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:31:32,931 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:31:00', tmtdew=10.94, humidity=47.19, cloud=0.0, wind=39.94, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:30:55.123', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:31:33,006 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:31:33,018 [DEBUG][       Thread-604742][   transport.py][1871] : starting thread (client mode): 0x82b2470
2025-07-01 12:31:33,018 [DEBUG][       Thread-604742][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:31:33,034 [DEBUG][       Thread-604742][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:31:33,034 [ INFO][       Thread-604742][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:31:33,041 [DEBUG][       Thread-604742][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:31:33,041 [DEBUG][       Thread-604742][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:31:33,041 [DEBUG][       Thread-604742][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:31:33,041 [DEBUG][       Thread-604742][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:31:33,041 [DEBUG][       Thread-604742][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:31:33,041 [DEBUG][       Thread-604742][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:31:33,041 [DEBUG][       Thread-604742][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:31:33,041 [DEBUG][       Thread-604742][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:31:33,041 [DEBUG][       Thread-604742][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:31:33,041 [DEBUG][       Thread-604742][   transport.py][1871] : client lang: <none>
2025-07-01 12:31:33,041 [DEBUG][       Thread-604742][   transport.py][1871] : server lang: <none>
2025-07-01 12:31:33,041 [DEBUG][       Thread-604742][   transport.py][1871] : kex follows: False
2025-07-01 12:31:33,041 [DEBUG][       Thread-604742][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:31:33,041 [DEBUG][       Thread-604742][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:31:33,041 [DEBUG][       Thread-604742][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:31:33,041 [DEBUG][       Thread-604742][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:31:33,041 [DEBUG][       Thread-604742][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:31:33,041 [DEBUG][       Thread-604742][   transport.py][1871] : Compression: none
2025-07-01 12:31:33,041 [DEBUG][       Thread-604742][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:31:33,096 [DEBUG][       Thread-604742][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:31:33,096 [DEBUG][       Thread-604742][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:31:33,097 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:31:33,097 [DEBUG][       Thread-604742][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:31:33,097 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:31:33,153 [DEBUG][       Thread-604742][   transport.py][1871] : userauth is OK
2025-07-01 12:31:33,153 [DEBUG][       Thread-604742][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:31:33,154 [DEBUG][       Thread-604742][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:31:33,154 [DEBUG][       Thread-604742][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:31:33,154 [DEBUG][       Thread-604742][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:31:33,168 [ INFO][       Thread-604742][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:31:33,168 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:31:33,168 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:31:34,225 [DEBUG][       Thread-604742][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:31:34,225 [DEBUG][       Thread-604742][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:31:34,275 [DEBUG][       Thread-604742][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:31:34,275 [DEBUG][       Thread-604742][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:31:34,284 [DEBUG][       Thread-604742][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:31:34,292 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:31:34,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-07-01 12:31:34,300 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 12:31:34,308 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:31:34,308 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:31:34,308 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:31:34,316 [DEBUG][       Thread-604742][   transport.py][1871] : EOF in transport thread
2025-07-01 12:31:37,107 [DEBUG][Thread-604744 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:31:44,318 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:31:44,319 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:31:44,319 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:31:44,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-07-01 12:31:44,808 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 31, 32), 10.88, 47.26, 0.0, 36.38, 12.31, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:31:44,809 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:31:32
2025-07-01 12:31:44,895 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:31:44,899 [DEBUG][       Thread-604745][   transport.py][1871] : starting thread (client mode): 0x81e5c30
2025-07-01 12:31:44,899 [DEBUG][       Thread-604745][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:31:44,921 [DEBUG][       Thread-604745][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:31:44,921 [ INFO][       Thread-604745][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:31:44,924 [DEBUG][       Thread-604745][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:31:44,924 [DEBUG][       Thread-604745][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:31:44,924 [DEBUG][       Thread-604745][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:31:44,925 [DEBUG][       Thread-604745][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:31:44,925 [DEBUG][       Thread-604745][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:31:44,925 [DEBUG][       Thread-604745][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:31:44,925 [DEBUG][       Thread-604745][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:31:44,925 [DEBUG][       Thread-604745][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:31:44,925 [DEBUG][       Thread-604745][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:31:44,925 [DEBUG][       Thread-604745][   transport.py][1871] : client lang: <none>
2025-07-01 12:31:44,925 [DEBUG][       Thread-604745][   transport.py][1871] : server lang: <none>
2025-07-01 12:31:44,925 [DEBUG][       Thread-604745][   transport.py][1871] : kex follows: False
2025-07-01 12:31:44,925 [DEBUG][       Thread-604745][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:31:44,925 [DEBUG][       Thread-604745][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:31:44,925 [DEBUG][       Thread-604745][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:31:44,925 [DEBUG][       Thread-604745][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:31:44,925 [DEBUG][       Thread-604745][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:31:44,925 [DEBUG][       Thread-604745][   transport.py][1871] : Compression: none
2025-07-01 12:31:44,925 [DEBUG][       Thread-604745][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:31:44,941 [DEBUG][       Thread-604745][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:31:44,941 [DEBUG][       Thread-604745][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:31:44,942 [DEBUG][       Thread-604745][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:31:44,942 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:31:44,942 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:31:44,943 [DEBUG][       Thread-604745][   transport.py][1871] : userauth is OK
2025-07-01 12:31:44,956 [ INFO][       Thread-604745][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:31:44,957 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:31:45,606 [DEBUG][       Thread-604745][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:31:45,607 [DEBUG][       Thread-604745][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:31:45,649 [DEBUG][       Thread-604745][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:31:45,649 [DEBUG][       Thread-604745][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:31:45,653 [DEBUG][       Thread-604745][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:31:45,664 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:31:45,665 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:31:45,666 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:31:45,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:31:45,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:31:45,676 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:31:45,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:31:45,677 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:31:45,677 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.438485 -999.00  +12.40  43.24     51   +2.50 1 1 2 1 1   888    0 10.77 55.02 ----- 43.2 43.2 44.8 54.7 16.0 -24.7 14.9 -24.8 14.7 -23.8 15.7 -22.1
2025-07-01 12:31:45,677 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:31:45,677 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:31:45,677 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.438485
2025-07-01 12:31:45,678 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:31:45,678 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:31:45,678 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:31:45,679 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:31:45,679 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:31:45,679 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:31:32', tmtdew=10.88, humidity=47.26, cloud=0.0, wind=36.38, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:31:25.104', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:31:45,680 [DEBUG][       Thread-604745][   transport.py][1871] : EOF in transport thread
2025-07-01 12:31:45,763 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:31:45,772 [DEBUG][       Thread-604748][   transport.py][1871] : starting thread (client mode): 0x8154e50
2025-07-01 12:31:45,772 [DEBUG][       Thread-604748][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:31:45,789 [DEBUG][       Thread-604748][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:31:45,789 [ INFO][       Thread-604748][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:31:45,796 [DEBUG][       Thread-604748][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:31:45,796 [DEBUG][       Thread-604748][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:31:45,796 [DEBUG][       Thread-604748][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:31:45,797 [DEBUG][       Thread-604748][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:31:45,797 [DEBUG][       Thread-604748][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:31:45,797 [DEBUG][       Thread-604748][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:31:45,797 [DEBUG][       Thread-604748][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:31:45,797 [DEBUG][       Thread-604748][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:31:45,797 [DEBUG][       Thread-604748][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:31:45,797 [DEBUG][       Thread-604748][   transport.py][1871] : client lang: <none>
2025-07-01 12:31:45,797 [DEBUG][       Thread-604748][   transport.py][1871] : server lang: <none>
2025-07-01 12:31:45,797 [DEBUG][       Thread-604748][   transport.py][1871] : kex follows: False
2025-07-01 12:31:45,797 [DEBUG][       Thread-604748][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:31:45,797 [DEBUG][       Thread-604748][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:31:45,797 [DEBUG][       Thread-604748][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:31:45,797 [DEBUG][       Thread-604748][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:31:45,797 [DEBUG][       Thread-604748][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:31:45,797 [DEBUG][       Thread-604748][   transport.py][1871] : Compression: none
2025-07-01 12:31:45,797 [DEBUG][       Thread-604748][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:31:45,855 [DEBUG][       Thread-604748][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:31:45,855 [DEBUG][       Thread-604748][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:31:45,856 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:31:45,857 [DEBUG][       Thread-604748][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:31:45,857 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:31:45,910 [DEBUG][       Thread-604748][   transport.py][1871] : userauth is OK
2025-07-01 12:31:45,911 [DEBUG][       Thread-604748][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:31:45,911 [DEBUG][       Thread-604748][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:31:45,911 [DEBUG][       Thread-604748][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:31:45,911 [DEBUG][       Thread-604748][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:31:45,931 [ INFO][       Thread-604748][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:31:45,931 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:31:45,932 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:31:46,131 [DEBUG][Thread-604750 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:31:46,982 [DEBUG][       Thread-604748][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:31:46,982 [DEBUG][       Thread-604748][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:31:47,032 [DEBUG][       Thread-604748][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:31:47,032 [DEBUG][       Thread-604748][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:31:47,041 [DEBUG][       Thread-604748][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:31:47,055 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:31:47,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-07-01 12:31:47,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-07-01 12:31:47,078 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:31:47,079 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:31:47,079 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:31:47,087 [DEBUG][       Thread-604748][   transport.py][1871] : EOF in transport thread
2025-07-01 12:31:55,168 [DEBUG][Thread-604751 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:31:57,089 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:31:57,090 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:31:57,090 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:31:57,093 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:31:57,563 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 31, 32), 10.88, 47.26, 0.0, 36.38, 12.31, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:31:57,563 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:31:32
2025-07-01 12:31:57,647 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:31:57,652 [DEBUG][       Thread-604752][   transport.py][1871] : starting thread (client mode): 0x82b3a90
2025-07-01 12:31:57,652 [DEBUG][       Thread-604752][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:31:57,673 [DEBUG][       Thread-604752][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:31:57,673 [ INFO][       Thread-604752][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:31:57,677 [DEBUG][       Thread-604752][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:31:57,677 [DEBUG][       Thread-604752][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:31:57,677 [DEBUG][       Thread-604752][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:31:57,677 [DEBUG][       Thread-604752][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:31:57,677 [DEBUG][       Thread-604752][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:31:57,677 [DEBUG][       Thread-604752][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:31:57,677 [DEBUG][       Thread-604752][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:31:57,677 [DEBUG][       Thread-604752][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:31:57,677 [DEBUG][       Thread-604752][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:31:57,677 [DEBUG][       Thread-604752][   transport.py][1871] : client lang: <none>
2025-07-01 12:31:57,677 [DEBUG][       Thread-604752][   transport.py][1871] : server lang: <none>
2025-07-01 12:31:57,677 [DEBUG][       Thread-604752][   transport.py][1871] : kex follows: False
2025-07-01 12:31:57,677 [DEBUG][       Thread-604752][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:31:57,677 [DEBUG][       Thread-604752][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:31:57,677 [DEBUG][       Thread-604752][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:31:57,677 [DEBUG][       Thread-604752][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:31:57,677 [DEBUG][       Thread-604752][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:31:57,677 [DEBUG][       Thread-604752][   transport.py][1871] : Compression: none
2025-07-01 12:31:57,677 [DEBUG][       Thread-604752][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:31:57,692 [DEBUG][       Thread-604752][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:31:57,693 [DEBUG][       Thread-604752][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:31:57,693 [DEBUG][       Thread-604752][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:31:57,693 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:31:57,693 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:31:57,694 [DEBUG][       Thread-604752][   transport.py][1871] : userauth is OK
2025-07-01 12:31:57,719 [ INFO][       Thread-604752][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:31:57,720 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:31:58,412 [DEBUG][       Thread-604752][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:31:58,413 [DEBUG][       Thread-604752][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:31:58,457 [DEBUG][       Thread-604752][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:31:58,457 [DEBUG][       Thread-604752][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:31:58,460 [DEBUG][       Thread-604752][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:31:58,472 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:31:58,472 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:31:58,474 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:31:58,476 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:31:58,482 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:31:58,484 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:31:58,484 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:31:58,484 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:31:58,485 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.438485 -999.00  +12.40  43.24     51   +2.50 1 1 2 1 1   888    0 10.77 55.02 ----- 43.2 43.2 44.8 54.7 16.0 -24.7 14.9 -24.8 14.7 -23.8 15.7 -22.1
2025-07-01 12:31:58,485 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:31:58,485 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:31:58,485 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.438485
2025-07-01 12:31:58,485 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:31:58,486 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:31:58,486 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:31:58,486 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:31:58,486 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:31:58,486 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:31:32', tmtdew=10.88, humidity=47.26, cloud=0.0, wind=36.38, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:31:25.104', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:31:58,487 [DEBUG][       Thread-604752][   transport.py][1871] : EOF in transport thread
2025-07-01 12:31:58,570 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:31:58,581 [DEBUG][       Thread-604755][   transport.py][1871] : starting thread (client mode): 0x81e6cb0
2025-07-01 12:31:58,581 [DEBUG][       Thread-604755][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:31:58,597 [DEBUG][       Thread-604755][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:31:58,597 [ INFO][       Thread-604755][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:31:58,604 [DEBUG][       Thread-604755][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:31:58,604 [DEBUG][       Thread-604755][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:31:58,604 [DEBUG][       Thread-604755][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:31:58,604 [DEBUG][       Thread-604755][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:31:58,604 [DEBUG][       Thread-604755][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:31:58,605 [DEBUG][       Thread-604755][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:31:58,605 [DEBUG][       Thread-604755][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:31:58,605 [DEBUG][       Thread-604755][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:31:58,605 [DEBUG][       Thread-604755][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:31:58,605 [DEBUG][       Thread-604755][   transport.py][1871] : client lang: <none>
2025-07-01 12:31:58,605 [DEBUG][       Thread-604755][   transport.py][1871] : server lang: <none>
2025-07-01 12:31:58,605 [DEBUG][       Thread-604755][   transport.py][1871] : kex follows: False
2025-07-01 12:31:58,605 [DEBUG][       Thread-604755][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:31:58,605 [DEBUG][       Thread-604755][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:31:58,605 [DEBUG][       Thread-604755][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:31:58,605 [DEBUG][       Thread-604755][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:31:58,605 [DEBUG][       Thread-604755][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:31:58,605 [DEBUG][       Thread-604755][   transport.py][1871] : Compression: none
2025-07-01 12:31:58,605 [DEBUG][       Thread-604755][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:31:58,662 [DEBUG][       Thread-604755][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:31:58,663 [DEBUG][       Thread-604755][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:31:58,663 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:31:58,664 [DEBUG][       Thread-604755][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:31:58,665 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:31:58,719 [DEBUG][       Thread-604755][   transport.py][1871] : userauth is OK
2025-07-01 12:31:58,719 [DEBUG][       Thread-604755][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:31:58,719 [DEBUG][       Thread-604755][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:31:58,719 [DEBUG][       Thread-604755][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:31:58,719 [DEBUG][       Thread-604755][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:31:58,738 [ INFO][       Thread-604755][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:31:58,739 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:31:58,739 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:31:59,790 [DEBUG][       Thread-604755][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:31:59,790 [DEBUG][       Thread-604755][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:31:59,840 [DEBUG][       Thread-604755][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:31:59,840 [DEBUG][       Thread-604755][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:31:59,849 [DEBUG][       Thread-604755][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:31:59,858 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:31:59,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-07-01 12:31:59,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-07-01 12:31:59,876 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:31:59,876 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:31:59,876 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:31:59,884 [DEBUG][       Thread-604755][   transport.py][1871] : EOF in transport thread
2025-07-01 12:32:04,191 [DEBUG][Thread-604757 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:32:09,884 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:32:09,884 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:32:09,884 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:32:09,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-07-01 12:32:10,375 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 32, 4), 10.95, 47.07, 0.0, 35.11, 12.35, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:32:10,375 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:32:04
2025-07-01 12:32:10,466 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:32:10,470 [DEBUG][       Thread-604758][   transport.py][1871] : starting thread (client mode): 0x818f520
2025-07-01 12:32:10,470 [DEBUG][       Thread-604758][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:32:10,490 [DEBUG][       Thread-604758][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:32:10,490 [ INFO][       Thread-604758][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:32:10,492 [DEBUG][       Thread-604758][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:32:10,492 [DEBUG][       Thread-604758][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:32:10,492 [DEBUG][       Thread-604758][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:32:10,492 [DEBUG][       Thread-604758][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:32:10,492 [DEBUG][       Thread-604758][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:32:10,493 [DEBUG][       Thread-604758][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:32:10,493 [DEBUG][       Thread-604758][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:32:10,493 [DEBUG][       Thread-604758][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:32:10,493 [DEBUG][       Thread-604758][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:32:10,493 [DEBUG][       Thread-604758][   transport.py][1871] : client lang: <none>
2025-07-01 12:32:10,493 [DEBUG][       Thread-604758][   transport.py][1871] : server lang: <none>
2025-07-01 12:32:10,493 [DEBUG][       Thread-604758][   transport.py][1871] : kex follows: False
2025-07-01 12:32:10,493 [DEBUG][       Thread-604758][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:32:10,493 [DEBUG][       Thread-604758][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:32:10,493 [DEBUG][       Thread-604758][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:32:10,493 [DEBUG][       Thread-604758][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:32:10,493 [DEBUG][       Thread-604758][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:32:10,493 [DEBUG][       Thread-604758][   transport.py][1871] : Compression: none
2025-07-01 12:32:10,493 [DEBUG][       Thread-604758][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:32:10,506 [DEBUG][       Thread-604758][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:32:10,506 [DEBUG][       Thread-604758][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:32:10,507 [DEBUG][       Thread-604758][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:32:10,507 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:32:10,507 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:32:10,507 [DEBUG][       Thread-604758][   transport.py][1871] : userauth is OK
2025-07-01 12:32:10,520 [ INFO][       Thread-604758][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:32:10,520 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:32:11,146 [DEBUG][       Thread-604758][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:32:11,146 [DEBUG][       Thread-604758][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:32:11,188 [DEBUG][       Thread-604758][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:32:11,188 [DEBUG][       Thread-604758][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:32:11,190 [DEBUG][       Thread-604758][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:32:11,201 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:32:11,201 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:32:11,202 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:32:11,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:32:11,205 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:32:11,206 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:32:11,206 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:32:11,206 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:32:11,206 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.438832 -999.00  +12.50  32.25     51   +2.80 1 1 2 1 1   888    0 10.75 57.83 ----- 32.2 32.2 40.6 38.4 16.0 -23.9 14.9 -24.4 14.8 -22.5 15.8 -22.0
2025-07-01 12:32:11,206 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:32:11,206 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:32:11,206 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.438832
2025-07-01 12:32:11,206 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:32:11,207 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:32:11,207 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:32:11,207 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:32:11,207 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:32:11,207 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:32:04', tmtdew=10.95, humidity=47.07, cloud=0.0, wind=35.11, temperature=12.35, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:31:55.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:32:11,207 [DEBUG][       Thread-604758][   transport.py][1871] : EOF in transport thread
2025-07-01 12:32:11,281 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:32:11,293 [DEBUG][       Thread-604761][   transport.py][1871] : starting thread (client mode): 0x81e51b0
2025-07-01 12:32:11,293 [DEBUG][       Thread-604761][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:32:11,308 [DEBUG][       Thread-604761][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:32:11,308 [ INFO][       Thread-604761][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:32:11,315 [DEBUG][       Thread-604761][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:32:11,315 [DEBUG][       Thread-604761][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:32:11,315 [DEBUG][       Thread-604761][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:32:11,315 [DEBUG][       Thread-604761][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:32:11,315 [DEBUG][       Thread-604761][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:32:11,315 [DEBUG][       Thread-604761][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:32:11,315 [DEBUG][       Thread-604761][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:32:11,315 [DEBUG][       Thread-604761][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:32:11,315 [DEBUG][       Thread-604761][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:32:11,315 [DEBUG][       Thread-604761][   transport.py][1871] : client lang: <none>
2025-07-01 12:32:11,315 [DEBUG][       Thread-604761][   transport.py][1871] : server lang: <none>
2025-07-01 12:32:11,315 [DEBUG][       Thread-604761][   transport.py][1871] : kex follows: False
2025-07-01 12:32:11,315 [DEBUG][       Thread-604761][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:32:11,315 [DEBUG][       Thread-604761][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:32:11,315 [DEBUG][       Thread-604761][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:32:11,315 [DEBUG][       Thread-604761][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:32:11,316 [DEBUG][       Thread-604761][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:32:11,316 [DEBUG][       Thread-604761][   transport.py][1871] : Compression: none
2025-07-01 12:32:11,316 [DEBUG][       Thread-604761][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:32:11,373 [DEBUG][       Thread-604761][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:32:11,373 [DEBUG][       Thread-604761][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:32:11,373 [DEBUG][       Thread-604761][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:32:11,373 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:32:11,373 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:32:11,430 [DEBUG][       Thread-604761][   transport.py][1871] : userauth is OK
2025-07-01 12:32:11,430 [DEBUG][       Thread-604761][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:32:11,430 [DEBUG][       Thread-604761][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:32:11,430 [DEBUG][       Thread-604761][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:32:11,430 [DEBUG][       Thread-604761][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:32:11,444 [ INFO][       Thread-604761][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:32:11,444 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:32:11,444 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:32:12,472 [DEBUG][       Thread-604761][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:32:12,472 [DEBUG][       Thread-604761][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:32:12,521 [DEBUG][       Thread-604761][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:32:12,521 [DEBUG][       Thread-604761][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:32:12,530 [DEBUG][       Thread-604761][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:32:12,538 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:32:12,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')
2025-07-01 12:32:12,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-07-01 12:32:12,554 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:32:12,554 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:32:12,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:32:12,562 [DEBUG][       Thread-604761][   transport.py][1871] : EOF in transport thread
2025-07-01 12:32:13,210 [DEBUG][Thread-604763 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:32:16,655 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:32:16,656 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:32:22,245 [DEBUG][Thread-604764 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:32:22,564 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:32:22,564 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:32:22,564 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:32:22,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-07-01 12:32:23,059 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 32, 4), 10.95, 47.07, 0.0, 35.11, 12.35, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:32:23,059 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:32:04
2025-07-01 12:32:23,144 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:32:23,148 [DEBUG][       Thread-604765][   transport.py][1871] : starting thread (client mode): 0x81572b0
2025-07-01 12:32:23,148 [DEBUG][       Thread-604765][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:32:23,170 [DEBUG][       Thread-604765][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:32:23,170 [ INFO][       Thread-604765][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:32:23,173 [DEBUG][       Thread-604765][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:32:23,174 [DEBUG][       Thread-604765][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:32:23,174 [DEBUG][       Thread-604765][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:32:23,174 [DEBUG][       Thread-604765][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:32:23,174 [DEBUG][       Thread-604765][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:32:23,174 [DEBUG][       Thread-604765][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:32:23,174 [DEBUG][       Thread-604765][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:32:23,174 [DEBUG][       Thread-604765][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:32:23,174 [DEBUG][       Thread-604765][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:32:23,174 [DEBUG][       Thread-604765][   transport.py][1871] : client lang: <none>
2025-07-01 12:32:23,174 [DEBUG][       Thread-604765][   transport.py][1871] : server lang: <none>
2025-07-01 12:32:23,174 [DEBUG][       Thread-604765][   transport.py][1871] : kex follows: False
2025-07-01 12:32:23,174 [DEBUG][       Thread-604765][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:32:23,174 [DEBUG][       Thread-604765][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:32:23,174 [DEBUG][       Thread-604765][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:32:23,174 [DEBUG][       Thread-604765][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:32:23,174 [DEBUG][       Thread-604765][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:32:23,174 [DEBUG][       Thread-604765][   transport.py][1871] : Compression: none
2025-07-01 12:32:23,174 [DEBUG][       Thread-604765][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:32:23,191 [DEBUG][       Thread-604765][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:32:23,191 [DEBUG][       Thread-604765][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:32:23,192 [DEBUG][       Thread-604765][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:32:23,192 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:32:23,192 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:32:23,193 [DEBUG][       Thread-604765][   transport.py][1871] : userauth is OK
2025-07-01 12:32:23,218 [ INFO][       Thread-604765][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:32:23,218 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:32:23,915 [DEBUG][       Thread-604765][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:32:23,915 [DEBUG][       Thread-604765][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:32:23,957 [DEBUG][       Thread-604765][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:32:23,957 [DEBUG][       Thread-604765][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:32:23,959 [DEBUG][       Thread-604765][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:32:23,971 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:32:23,972 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:32:23,974 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:32:23,976 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:32:23,982 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:32:23,984 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:32:23,985 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:32:23,985 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:32:23,986 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.438832 -999.00  +12.50  32.25     51   +2.80 1 1 2 1 1   888    0 10.75 57.83 ----- 32.2 32.2 40.6 38.4 16.0 -23.9 14.9 -24.4 14.8 -22.5 15.8 -22.0
2025-07-01 12:32:23,986 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:32:23,986 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:32:23,986 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.438832
2025-07-01 12:32:23,986 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:32:23,987 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:32:23,987 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:32:23,987 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:32:23,987 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:32:23,987 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:32:04', tmtdew=10.95, humidity=47.07, cloud=0.0, wind=35.11, temperature=12.35, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:31:55.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:32:23,988 [DEBUG][       Thread-604765][   transport.py][1871] : EOF in transport thread
2025-07-01 12:32:24,072 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:32:24,084 [DEBUG][       Thread-604768][   transport.py][1871] : starting thread (client mode): 0x83c8490
2025-07-01 12:32:24,084 [DEBUG][       Thread-604768][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:32:24,100 [DEBUG][       Thread-604768][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:32:24,100 [ INFO][       Thread-604768][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:32:24,107 [DEBUG][       Thread-604768][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:32:24,107 [DEBUG][       Thread-604768][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:32:24,108 [DEBUG][       Thread-604768][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:32:24,108 [DEBUG][       Thread-604768][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:32:24,108 [DEBUG][       Thread-604768][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:32:24,108 [DEBUG][       Thread-604768][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:32:24,108 [DEBUG][       Thread-604768][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:32:24,108 [DEBUG][       Thread-604768][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:32:24,108 [DEBUG][       Thread-604768][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:32:24,108 [DEBUG][       Thread-604768][   transport.py][1871] : client lang: <none>
2025-07-01 12:32:24,108 [DEBUG][       Thread-604768][   transport.py][1871] : server lang: <none>
2025-07-01 12:32:24,108 [DEBUG][       Thread-604768][   transport.py][1871] : kex follows: False
2025-07-01 12:32:24,108 [DEBUG][       Thread-604768][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:32:24,108 [DEBUG][       Thread-604768][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:32:24,108 [DEBUG][       Thread-604768][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:32:24,108 [DEBUG][       Thread-604768][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:32:24,108 [DEBUG][       Thread-604768][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:32:24,108 [DEBUG][       Thread-604768][   transport.py][1871] : Compression: none
2025-07-01 12:32:24,108 [DEBUG][       Thread-604768][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:32:24,167 [DEBUG][       Thread-604768][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:32:24,167 [DEBUG][       Thread-604768][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:32:24,168 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:32:24,169 [DEBUG][       Thread-604768][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:32:24,169 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:32:24,223 [DEBUG][       Thread-604768][   transport.py][1871] : userauth is OK
2025-07-01 12:32:24,223 [DEBUG][       Thread-604768][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:32:24,223 [DEBUG][       Thread-604768][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:32:24,224 [DEBUG][       Thread-604768][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:32:24,224 [DEBUG][       Thread-604768][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:32:24,242 [ INFO][       Thread-604768][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:32:24,243 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:32:24,243 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:32:25,226 [DEBUG][       Thread-604768][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:32:25,227 [DEBUG][       Thread-604768][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:32:25,276 [DEBUG][       Thread-604768][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:32:25,276 [DEBUG][       Thread-604768][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:32:25,285 [DEBUG][       Thread-604768][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:32:25,294 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:32:25,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-07-01 12:32:25,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-07-01 12:32:25,312 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:32:25,312 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:32:25,313 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:32:25,321 [DEBUG][       Thread-604768][   transport.py][1871] : EOF in transport thread
2025-07-01 12:32:29,449 [DEBUG][Thread-604770 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:32:31,267 [DEBUG][Thread-604771 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:32:35,323 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:32:35,324 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:32:35,324 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:32:35,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-07-01 12:32:35,799 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 32, 4), 10.95, 47.07, 0.0, 35.11, 12.35, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:32:35,800 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:32:04
2025-07-01 12:32:35,885 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:32:35,889 [DEBUG][       Thread-604772][   transport.py][1871] : starting thread (client mode): 0x75ab640
2025-07-01 12:32:35,889 [DEBUG][       Thread-604772][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:32:35,909 [DEBUG][       Thread-604772][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:32:35,909 [ INFO][       Thread-604772][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:32:35,913 [DEBUG][       Thread-604772][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:32:35,913 [DEBUG][       Thread-604772][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:32:35,913 [DEBUG][       Thread-604772][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:32:35,913 [DEBUG][       Thread-604772][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:32:35,913 [DEBUG][       Thread-604772][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:32:35,913 [DEBUG][       Thread-604772][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:32:35,913 [DEBUG][       Thread-604772][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:32:35,913 [DEBUG][       Thread-604772][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:32:35,913 [DEBUG][       Thread-604772][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:32:35,913 [DEBUG][       Thread-604772][   transport.py][1871] : client lang: <none>
2025-07-01 12:32:35,913 [DEBUG][       Thread-604772][   transport.py][1871] : server lang: <none>
2025-07-01 12:32:35,913 [DEBUG][       Thread-604772][   transport.py][1871] : kex follows: False
2025-07-01 12:32:35,913 [DEBUG][       Thread-604772][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:32:35,913 [DEBUG][       Thread-604772][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:32:35,913 [DEBUG][       Thread-604772][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:32:35,913 [DEBUG][       Thread-604772][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:32:35,913 [DEBUG][       Thread-604772][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:32:35,913 [DEBUG][       Thread-604772][   transport.py][1871] : Compression: none
2025-07-01 12:32:35,913 [DEBUG][       Thread-604772][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:32:35,930 [DEBUG][       Thread-604772][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:32:35,930 [DEBUG][       Thread-604772][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:32:35,931 [DEBUG][       Thread-604772][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:32:35,931 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:32:35,931 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:32:35,933 [DEBUG][       Thread-604772][   transport.py][1871] : userauth is OK
2025-07-01 12:32:35,957 [ INFO][       Thread-604772][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:32:35,958 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:32:36,599 [DEBUG][       Thread-604772][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:32:36,599 [DEBUG][       Thread-604772][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:32:36,640 [DEBUG][       Thread-604772][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:32:36,640 [DEBUG][       Thread-604772][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:32:36,643 [DEBUG][       Thread-604772][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:32:36,654 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:32:36,654 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:32:36,655 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:32:36,656 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:32:36,659 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:32:36,660 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:32:36,660 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:32:36,660 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:32:36,660 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.438832 -999.00  +12.50  32.25     51   +2.80 1 1 2 1 1   888    0 10.75 57.83 ----- 32.2 32.2 40.6 38.4 16.0 -23.9 14.9 -24.4 14.8 -22.5 15.8 -22.0
2025-07-01 12:32:36,660 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:32:36,660 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:32:36,660 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.438832
2025-07-01 12:32:36,660 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:32:36,660 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:32:36,660 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:32:36,660 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:32:36,660 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:32:36,660 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:32:04', tmtdew=10.95, humidity=47.07, cloud=0.0, wind=35.11, temperature=12.35, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:31:55.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:32:36,661 [DEBUG][       Thread-604772][   transport.py][1871] : EOF in transport thread
2025-07-01 12:32:36,735 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:32:36,748 [DEBUG][       Thread-604775][   transport.py][1871] : starting thread (client mode): 0x83939d0
2025-07-01 12:32:36,748 [DEBUG][       Thread-604775][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:32:36,764 [DEBUG][       Thread-604775][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:32:36,764 [ INFO][       Thread-604775][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:32:36,771 [DEBUG][       Thread-604775][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:32:36,771 [DEBUG][       Thread-604775][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:32:36,771 [DEBUG][       Thread-604775][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:32:36,771 [DEBUG][       Thread-604775][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:32:36,771 [DEBUG][       Thread-604775][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:32:36,771 [DEBUG][       Thread-604775][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:32:36,771 [DEBUG][       Thread-604775][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:32:36,771 [DEBUG][       Thread-604775][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:32:36,771 [DEBUG][       Thread-604775][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:32:36,771 [DEBUG][       Thread-604775][   transport.py][1871] : client lang: <none>
2025-07-01 12:32:36,771 [DEBUG][       Thread-604775][   transport.py][1871] : server lang: <none>
2025-07-01 12:32:36,771 [DEBUG][       Thread-604775][   transport.py][1871] : kex follows: False
2025-07-01 12:32:36,771 [DEBUG][       Thread-604775][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:32:36,771 [DEBUG][       Thread-604775][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:32:36,771 [DEBUG][       Thread-604775][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:32:36,771 [DEBUG][       Thread-604775][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:32:36,771 [DEBUG][       Thread-604775][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:32:36,771 [DEBUG][       Thread-604775][   transport.py][1871] : Compression: none
2025-07-01 12:32:36,771 [DEBUG][       Thread-604775][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:32:36,829 [DEBUG][       Thread-604775][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:32:36,829 [DEBUG][       Thread-604775][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:32:36,829 [DEBUG][       Thread-604775][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:32:36,829 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:32:36,829 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:32:36,898 [DEBUG][       Thread-604775][   transport.py][1871] : userauth is OK
2025-07-01 12:32:36,899 [DEBUG][       Thread-604775][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:32:36,899 [DEBUG][       Thread-604775][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:32:36,899 [DEBUG][       Thread-604775][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:32:36,899 [DEBUG][       Thread-604775][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:32:36,913 [ INFO][       Thread-604775][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:32:36,913 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:32:36,913 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:32:37,973 [DEBUG][       Thread-604775][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:32:37,973 [DEBUG][       Thread-604775][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:32:38,025 [DEBUG][       Thread-604775][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:32:38,025 [DEBUG][       Thread-604775][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:32:38,034 [DEBUG][       Thread-604775][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:32:38,042 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:32:38,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-07-01 12:32:38,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-07-01 12:32:38,058 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:32:38,058 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:32:38,058 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:32:38,066 [DEBUG][       Thread-604775][   transport.py][1871] : EOF in transport thread
2025-07-01 12:32:40,288 [DEBUG][Thread-604777 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:32:48,068 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:32:48,068 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:32:48,068 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:32:48,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-07-01 12:32:48,576 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 32, 36), 10.99, 47.02, 0.0, 37.32, 12.37, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:32:48,577 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:32:36
2025-07-01 12:32:48,667 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:32:48,671 [DEBUG][       Thread-604778][   transport.py][1871] : starting thread (client mode): 0x81047c0
2025-07-01 12:32:48,671 [DEBUG][       Thread-604778][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:32:48,691 [DEBUG][       Thread-604778][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:32:48,691 [ INFO][       Thread-604778][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:32:48,695 [DEBUG][       Thread-604778][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:32:48,695 [DEBUG][       Thread-604778][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:32:48,695 [DEBUG][       Thread-604778][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:32:48,695 [DEBUG][       Thread-604778][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:32:48,695 [DEBUG][       Thread-604778][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:32:48,695 [DEBUG][       Thread-604778][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:32:48,695 [DEBUG][       Thread-604778][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:32:48,695 [DEBUG][       Thread-604778][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:32:48,695 [DEBUG][       Thread-604778][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:32:48,695 [DEBUG][       Thread-604778][   transport.py][1871] : client lang: <none>
2025-07-01 12:32:48,695 [DEBUG][       Thread-604778][   transport.py][1871] : server lang: <none>
2025-07-01 12:32:48,695 [DEBUG][       Thread-604778][   transport.py][1871] : kex follows: False
2025-07-01 12:32:48,695 [DEBUG][       Thread-604778][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:32:48,695 [DEBUG][       Thread-604778][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:32:48,695 [DEBUG][       Thread-604778][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:32:48,695 [DEBUG][       Thread-604778][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:32:48,695 [DEBUG][       Thread-604778][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:32:48,695 [DEBUG][       Thread-604778][   transport.py][1871] : Compression: none
2025-07-01 12:32:48,695 [DEBUG][       Thread-604778][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:32:48,710 [DEBUG][       Thread-604778][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:32:48,710 [DEBUG][       Thread-604778][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:32:48,710 [DEBUG][       Thread-604778][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:32:48,710 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:32:48,710 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:32:48,711 [DEBUG][       Thread-604778][   transport.py][1871] : userauth is OK
2025-07-01 12:32:48,723 [ INFO][       Thread-604778][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:32:48,723 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:32:49,309 [DEBUG][Thread-604780 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:32:49,366 [DEBUG][       Thread-604778][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:32:49,366 [DEBUG][       Thread-604778][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:32:49,409 [DEBUG][       Thread-604778][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:32:49,409 [DEBUG][       Thread-604778][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:32:49,411 [DEBUG][       Thread-604778][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:32:49,426 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:32:49,426 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:32:49,427 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:32:49,428 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:32:49,432 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:32:49,433 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:32:49,433 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:32:49,433 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:32:49,433 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.439179 -999.00  +12.50  33.40     52   +2.90 1 1 2 1 1   888    0 10.63 58.54 ----- 33.4 33.4 43.3 45.6 16.0 -24.1 15.0 -24.7 14.8 -22.7 15.8 -23.0
2025-07-01 12:32:49,433 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:32:49,433 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:32:49,433 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.439179
2025-07-01 12:32:49,433 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:32:49,433 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:32:49,433 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:32:49,433 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:32:49,433 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:32:49,433 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:32:36', tmtdew=10.99, humidity=47.02, cloud=0.0, wind=37.32, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:32:25.066', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:32:49,434 [DEBUG][       Thread-604778][   transport.py][1871] : EOF in transport thread
2025-07-01 12:32:49,507 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:32:49,518 [DEBUG][       Thread-604782][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 12:32:49,518 [DEBUG][       Thread-604782][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:32:49,538 [DEBUG][       Thread-604782][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:32:49,538 [ INFO][       Thread-604782][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:32:49,549 [DEBUG][       Thread-604782][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:32:49,549 [DEBUG][       Thread-604782][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:32:49,549 [DEBUG][       Thread-604782][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:32:49,549 [DEBUG][       Thread-604782][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:32:49,549 [DEBUG][       Thread-604782][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:32:49,549 [DEBUG][       Thread-604782][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:32:49,549 [DEBUG][       Thread-604782][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:32:49,549 [DEBUG][       Thread-604782][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:32:49,549 [DEBUG][       Thread-604782][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:32:49,549 [DEBUG][       Thread-604782][   transport.py][1871] : client lang: <none>
2025-07-01 12:32:49,549 [DEBUG][       Thread-604782][   transport.py][1871] : server lang: <none>
2025-07-01 12:32:49,549 [DEBUG][       Thread-604782][   transport.py][1871] : kex follows: False
2025-07-01 12:32:49,549 [DEBUG][       Thread-604782][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:32:49,549 [DEBUG][       Thread-604782][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:32:49,549 [DEBUG][       Thread-604782][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:32:49,549 [DEBUG][       Thread-604782][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:32:49,549 [DEBUG][       Thread-604782][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:32:49,549 [DEBUG][       Thread-604782][   transport.py][1871] : Compression: none
2025-07-01 12:32:49,549 [DEBUG][       Thread-604782][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:32:49,608 [DEBUG][       Thread-604782][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:32:49,608 [DEBUG][       Thread-604782][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:32:49,608 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:32:49,608 [DEBUG][       Thread-604782][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:32:49,609 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:32:49,667 [DEBUG][       Thread-604782][   transport.py][1871] : userauth is OK
2025-07-01 12:32:49,667 [DEBUG][       Thread-604782][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:32:49,667 [DEBUG][       Thread-604782][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:32:49,667 [DEBUG][       Thread-604782][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:32:49,667 [DEBUG][       Thread-604782][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:32:49,684 [ INFO][       Thread-604782][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:32:49,684 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:32:49,684 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:32:50,738 [DEBUG][       Thread-604782][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:32:50,738 [DEBUG][       Thread-604782][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:32:50,787 [DEBUG][       Thread-604782][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:32:50,787 [DEBUG][       Thread-604782][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:32:50,795 [DEBUG][       Thread-604782][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:32:50,803 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:32:50,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-07-01 12:32:50,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-07-01 12:32:50,819 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:32:50,819 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:32:50,819 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:32:50,828 [DEBUG][       Thread-604782][   transport.py][1871] : EOF in transport thread
2025-07-01 12:32:58,328 [DEBUG][Thread-604784 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:33:00,830 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:33:00,830 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:33:00,830 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:33:00,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-07-01 12:33:01,320 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 32, 36), 10.99, 47.02, 0.0, 37.32, 12.37, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:33:01,320 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:32:36
2025-07-01 12:33:01,404 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:33:01,410 [DEBUG][       Thread-604785][   transport.py][1871] : starting thread (client mode): 0x8104220
2025-07-01 12:33:01,410 [DEBUG][       Thread-604785][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:33:01,431 [DEBUG][       Thread-604785][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:33:01,431 [ INFO][       Thread-604785][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:33:01,434 [DEBUG][       Thread-604785][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:33:01,434 [DEBUG][       Thread-604785][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:33:01,434 [DEBUG][       Thread-604785][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:33:01,434 [DEBUG][       Thread-604785][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:33:01,435 [DEBUG][       Thread-604785][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:33:01,435 [DEBUG][       Thread-604785][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:33:01,435 [DEBUG][       Thread-604785][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:33:01,435 [DEBUG][       Thread-604785][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:33:01,435 [DEBUG][       Thread-604785][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:33:01,435 [DEBUG][       Thread-604785][   transport.py][1871] : client lang: <none>
2025-07-01 12:33:01,435 [DEBUG][       Thread-604785][   transport.py][1871] : server lang: <none>
2025-07-01 12:33:01,435 [DEBUG][       Thread-604785][   transport.py][1871] : kex follows: False
2025-07-01 12:33:01,435 [DEBUG][       Thread-604785][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:33:01,435 [DEBUG][       Thread-604785][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:33:01,435 [DEBUG][       Thread-604785][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:33:01,435 [DEBUG][       Thread-604785][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:33:01,435 [DEBUG][       Thread-604785][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:33:01,435 [DEBUG][       Thread-604785][   transport.py][1871] : Compression: none
2025-07-01 12:33:01,435 [DEBUG][       Thread-604785][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:33:01,452 [DEBUG][       Thread-604785][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:33:01,453 [DEBUG][       Thread-604785][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:33:01,453 [DEBUG][       Thread-604785][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:33:01,454 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:33:01,454 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:33:01,455 [DEBUG][       Thread-604785][   transport.py][1871] : userauth is OK
2025-07-01 12:33:01,479 [ INFO][       Thread-604785][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:33:01,480 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:33:02,141 [DEBUG][       Thread-604785][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:33:02,141 [DEBUG][       Thread-604785][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:33:02,185 [DEBUG][       Thread-604785][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:33:02,185 [DEBUG][       Thread-604785][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:33:02,188 [DEBUG][       Thread-604785][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:33:02,200 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:33:02,200 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:33:02,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:33:02,205 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:33:02,211 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:33:02,213 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:33:02,213 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:33:02,214 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:33:02,214 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.439179 -999.00  +12.50  33.40     52   +2.90 1 1 2 1 1   888    0 10.63 58.54 ----- 33.4 33.4 43.3 45.6 16.0 -24.1 15.0 -24.7 14.8 -22.7 15.8 -23.0
2025-07-01 12:33:02,214 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:33:02,214 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:33:02,214 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.439179
2025-07-01 12:33:02,215 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:33:02,215 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:33:02,215 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:33:02,215 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:33:02,215 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:33:02,215 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:32:36', tmtdew=10.99, humidity=47.02, cloud=0.0, wind=37.32, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:32:25.066', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:33:02,216 [DEBUG][       Thread-604785][   transport.py][1871] : EOF in transport thread
2025-07-01 12:33:02,300 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:33:02,309 [DEBUG][       Thread-604788][   transport.py][1871] : starting thread (client mode): 0x8393a60
2025-07-01 12:33:02,309 [DEBUG][       Thread-604788][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:33:02,323 [DEBUG][       Thread-604788][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:33:02,323 [ INFO][       Thread-604788][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:33:02,331 [DEBUG][       Thread-604788][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:33:02,331 [DEBUG][       Thread-604788][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:33:02,331 [DEBUG][       Thread-604788][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:33:02,331 [DEBUG][       Thread-604788][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:33:02,331 [DEBUG][       Thread-604788][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:33:02,331 [DEBUG][       Thread-604788][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:33:02,331 [DEBUG][       Thread-604788][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:33:02,331 [DEBUG][       Thread-604788][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:33:02,331 [DEBUG][       Thread-604788][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:33:02,331 [DEBUG][       Thread-604788][   transport.py][1871] : client lang: <none>
2025-07-01 12:33:02,331 [DEBUG][       Thread-604788][   transport.py][1871] : server lang: <none>
2025-07-01 12:33:02,331 [DEBUG][       Thread-604788][   transport.py][1871] : kex follows: False
2025-07-01 12:33:02,331 [DEBUG][       Thread-604788][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:33:02,331 [DEBUG][       Thread-604788][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:33:02,331 [DEBUG][       Thread-604788][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:33:02,331 [DEBUG][       Thread-604788][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:33:02,331 [DEBUG][       Thread-604788][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:33:02,331 [DEBUG][       Thread-604788][   transport.py][1871] : Compression: none
2025-07-01 12:33:02,331 [DEBUG][       Thread-604788][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:33:02,392 [DEBUG][       Thread-604788][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:33:02,392 [DEBUG][       Thread-604788][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:33:02,393 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:33:02,393 [DEBUG][       Thread-604788][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:33:02,394 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:33:02,447 [DEBUG][       Thread-604788][   transport.py][1871] : userauth is OK
2025-07-01 12:33:02,447 [DEBUG][       Thread-604788][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:33:02,448 [DEBUG][       Thread-604788][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:33:02,448 [DEBUG][       Thread-604788][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:33:02,448 [DEBUG][       Thread-604788][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:33:02,466 [ INFO][       Thread-604788][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:33:02,466 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:33:02,467 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:33:03,554 [DEBUG][       Thread-604788][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:33:03,554 [DEBUG][       Thread-604788][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:33:03,604 [DEBUG][       Thread-604788][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:33:03,604 [DEBUG][       Thread-604788][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:33:03,613 [DEBUG][       Thread-604788][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:33:03,622 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:33: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-07-01 12:33:03,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-07-01 12:33:03,641 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:33:03,641 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:33:03,642 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:33:03,658 [DEBUG][       Thread-604788][   transport.py][1871] : EOF in transport thread
2025-07-01 12:33:07,363 [DEBUG][Thread-604790 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:33:13,652 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:33:13,652 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:33:13,652 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:33:13,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-07-01 12:33:14,141 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 33, 7), 10.83, 47.53, 0.0, 33.47, 12.37, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:33:14,141 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:33:07
2025-07-01 12:33:14,225 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:33:14,229 [DEBUG][       Thread-604791][   transport.py][1871] : starting thread (client mode): 0x818ea70
2025-07-01 12:33:14,229 [DEBUG][       Thread-604791][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:33:14,250 [DEBUG][       Thread-604791][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:33:14,250 [ INFO][       Thread-604791][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:33:14,254 [DEBUG][       Thread-604791][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:33:14,254 [DEBUG][       Thread-604791][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:33:14,254 [DEBUG][       Thread-604791][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:33:14,254 [DEBUG][       Thread-604791][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:33:14,254 [DEBUG][       Thread-604791][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:33:14,254 [DEBUG][       Thread-604791][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:33:14,254 [DEBUG][       Thread-604791][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:33:14,254 [DEBUG][       Thread-604791][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:33:14,254 [DEBUG][       Thread-604791][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:33:14,254 [DEBUG][       Thread-604791][   transport.py][1871] : client lang: <none>
2025-07-01 12:33:14,254 [DEBUG][       Thread-604791][   transport.py][1871] : server lang: <none>
2025-07-01 12:33:14,254 [DEBUG][       Thread-604791][   transport.py][1871] : kex follows: False
2025-07-01 12:33:14,254 [DEBUG][       Thread-604791][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:33:14,254 [DEBUG][       Thread-604791][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:33:14,254 [DEBUG][       Thread-604791][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:33:14,254 [DEBUG][       Thread-604791][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:33:14,254 [DEBUG][       Thread-604791][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:33:14,255 [DEBUG][       Thread-604791][   transport.py][1871] : Compression: none
2025-07-01 12:33:14,255 [DEBUG][       Thread-604791][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:33:14,272 [DEBUG][       Thread-604791][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:33:14,272 [DEBUG][       Thread-604791][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:33:14,273 [DEBUG][       Thread-604791][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:33:14,273 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:33:14,273 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:33:14,275 [DEBUG][       Thread-604791][   transport.py][1871] : userauth is OK
2025-07-01 12:33:14,299 [ INFO][       Thread-604791][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:33:14,300 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:33:14,940 [DEBUG][       Thread-604791][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:33:14,941 [DEBUG][       Thread-604791][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:33:14,985 [DEBUG][       Thread-604791][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:33:14,985 [DEBUG][       Thread-604791][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:33:14,989 [DEBUG][       Thread-604791][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:33:15,002 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:33:15,002 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:33:15,004 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:33:15,006 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:33:15,012 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:33:15,014 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:33:15,014 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:33:15,015 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:33:15,015 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.439179 -999.00  +12.50  33.40     52   +2.90 1 1 2 1 1   888    0 10.63 58.54 ----- 33.4 33.4 43.3 45.6 16.0 -24.1 15.0 -24.7 14.8 -22.7 15.8 -23.0
2025-07-01 12:33:15,015 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:33:15,016 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:33:15,016 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.439179
2025-07-01 12:33:15,016 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:33:15,017 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:33:15,017 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:33:15,017 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:33:15,017 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:33:15,017 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:33:07', tmtdew=10.83, humidity=47.53, cloud=0.0, wind=33.47, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:32:25.066', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:33:15,017 [DEBUG][       Thread-604791][   transport.py][1871] : EOF in transport thread
2025-07-01 12:33:15,102 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:33:16,390 [DEBUG][Thread-604794 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:33:16,795 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:33:16,796 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:33:25,436 [DEBUG][Thread-604795 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:33:29,495 [DEBUG][Thread-604796 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:33:34,459 [DEBUG][Thread-604797 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:33:43,481 [DEBUG][Thread-604798 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:33:52,502 [DEBUG][Thread-604799 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:34:01,524 [DEBUG][Thread-604800 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:34:10,544 [DEBUG][Thread-604801 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:34:16,934 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:34:16,936 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:34:19,565 [DEBUG][Thread-604802 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:34:28,591 [DEBUG][Thread-604803 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:34:29,550 [DEBUG][Thread-604804 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:34:37,613 [DEBUG][Thread-604805 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:34:46,631 [DEBUG][Thread-604806 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:34:55,652 [DEBUG][Thread-604807 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:35:04,674 [DEBUG][Thread-604808 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:35:13,695 [DEBUG][Thread-604809 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:35:17,073 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:35:17,074 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:35:22,711 [DEBUG][Thread-604810 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:35:23,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-07-01 12:35:29,582 [DEBUG][Thread-604811 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:35:31,731 [DEBUG][Thread-604812 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:35:33,806 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:35:33,807 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:35:33,807 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:35:33,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-07-01 12:35:34,319 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 35, 15), 11.14, 46.63, 0.0, 30.88, 12.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:35:34,319 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:35:15
2025-07-01 12:35:34,404 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:35:34,411 [DEBUG][       Thread-604813][   transport.py][1871] : starting thread (client mode): 0x818e350
2025-07-01 12:35:34,411 [DEBUG][       Thread-604813][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:35:34,430 [DEBUG][       Thread-604813][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:35:34,430 [ INFO][       Thread-604813][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:35:34,433 [DEBUG][       Thread-604813][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:35:34,434 [DEBUG][       Thread-604813][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:35:34,434 [DEBUG][       Thread-604813][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:35:34,434 [DEBUG][       Thread-604813][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:35:34,434 [DEBUG][       Thread-604813][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:35:34,434 [DEBUG][       Thread-604813][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:35:34,434 [DEBUG][       Thread-604813][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:35:34,434 [DEBUG][       Thread-604813][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:35:34,434 [DEBUG][       Thread-604813][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:35:34,434 [DEBUG][       Thread-604813][   transport.py][1871] : client lang: <none>
2025-07-01 12:35:34,434 [DEBUG][       Thread-604813][   transport.py][1871] : server lang: <none>
2025-07-01 12:35:34,434 [DEBUG][       Thread-604813][   transport.py][1871] : kex follows: False
2025-07-01 12:35:34,434 [DEBUG][       Thread-604813][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:35:34,434 [DEBUG][       Thread-604813][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:35:34,434 [DEBUG][       Thread-604813][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:35:34,434 [DEBUG][       Thread-604813][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:35:34,434 [DEBUG][       Thread-604813][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:35:34,434 [DEBUG][       Thread-604813][   transport.py][1871] : Compression: none
2025-07-01 12:35:34,434 [DEBUG][       Thread-604813][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:35:34,451 [DEBUG][       Thread-604813][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:35:34,452 [DEBUG][       Thread-604813][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:35:34,452 [DEBUG][       Thread-604813][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:35:34,452 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:35:34,452 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:35:34,453 [DEBUG][       Thread-604813][   transport.py][1871] : userauth is OK
2025-07-01 12:35:34,467 [ INFO][       Thread-604813][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:35:34,467 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:35:35,123 [DEBUG][       Thread-604813][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:35:35,124 [DEBUG][       Thread-604813][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:35:35,165 [DEBUG][       Thread-604813][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:35:35,165 [DEBUG][       Thread-604813][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:35:35,168 [DEBUG][       Thread-604813][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:35:35,181 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:35:35,182 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:35:35,183 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:35:35,186 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:35:35,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:35:35,193 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:35:35,194 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:35:35,194 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:35:35,194 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.441263 -999.00  +12.60  37.17     52   +3.00 1 1 2 1 1   888    0 11.37 70.73 ----- 37.2 37.2 30.0 42.2 16.1 -24.4 15.1 -24.4 14.9 -22.5 15.8 -21.9
2025-07-01 12:35:35,194 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:35:35,195 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:35:35,195 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.441263
2025-07-01 12:35:35,195 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:35:35,196 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:35:35,196 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:35:35,196 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:35:35,196 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:35:35,196 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:35:15', tmtdew=11.14, humidity=46.63, cloud=0.0, wind=30.88, temperature=12.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:35:25.123', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:35:35,196 [DEBUG][       Thread-604813][   transport.py][1871] : EOF in transport thread
2025-07-01 12:35:35,280 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:35:35,291 [DEBUG][       Thread-604816][   transport.py][1871] : starting thread (client mode): 0x82b2d70
2025-07-01 12:35:35,292 [DEBUG][       Thread-604816][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:35:35,307 [DEBUG][       Thread-604816][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:35:35,308 [ INFO][       Thread-604816][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:35:35,316 [DEBUG][       Thread-604816][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:35:35,317 [DEBUG][       Thread-604816][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:35:35,317 [DEBUG][       Thread-604816][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:35:35,317 [DEBUG][       Thread-604816][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:35:35,317 [DEBUG][       Thread-604816][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:35:35,317 [DEBUG][       Thread-604816][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:35:35,317 [DEBUG][       Thread-604816][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:35:35,317 [DEBUG][       Thread-604816][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:35:35,317 [DEBUG][       Thread-604816][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:35:35,317 [DEBUG][       Thread-604816][   transport.py][1871] : client lang: <none>
2025-07-01 12:35:35,317 [DEBUG][       Thread-604816][   transport.py][1871] : server lang: <none>
2025-07-01 12:35:35,317 [DEBUG][       Thread-604816][   transport.py][1871] : kex follows: False
2025-07-01 12:35:35,317 [DEBUG][       Thread-604816][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:35:35,317 [DEBUG][       Thread-604816][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:35:35,317 [DEBUG][       Thread-604816][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:35:35,317 [DEBUG][       Thread-604816][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:35:35,318 [DEBUG][       Thread-604816][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:35:35,318 [DEBUG][       Thread-604816][   transport.py][1871] : Compression: none
2025-07-01 12:35:35,318 [DEBUG][       Thread-604816][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:35:35,377 [DEBUG][       Thread-604816][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:35:35,378 [DEBUG][       Thread-604816][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:35:35,378 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:35:35,379 [DEBUG][       Thread-604816][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:35:35,380 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:35:35,439 [DEBUG][       Thread-604816][   transport.py][1871] : userauth is OK
2025-07-01 12:35:35,442 [DEBUG][       Thread-604816][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:35:35,442 [DEBUG][       Thread-604816][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:35:35,442 [DEBUG][       Thread-604816][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:35:35,442 [DEBUG][       Thread-604816][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:35:35,456 [ INFO][       Thread-604816][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:35:35,456 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:35:35,456 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:35:36,452 [DEBUG][       Thread-604816][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:35:36,452 [DEBUG][       Thread-604816][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:35:36,500 [DEBUG][       Thread-604816][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:35:36,500 [DEBUG][       Thread-604816][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:35:36,510 [DEBUG][       Thread-604816][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:35:36,519 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:35: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-07-01 12:35:36,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-07-01 12:35:36,540 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:35:36,540 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:35:36,541 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:35:36,549 [DEBUG][       Thread-604816][   transport.py][1871] : EOF in transport thread
2025-07-01 12:35:40,755 [DEBUG][Thread-604818 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:35:46,551 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:35:46,551 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:35:46,552 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:35:46,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-07-01 12:35:47,061 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 35, 15), 11.14, 46.63, 0.0, 30.88, 12.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:35:47,061 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:35:15
2025-07-01 12:35:47,147 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:35:47,151 [DEBUG][       Thread-604819][   transport.py][1871] : starting thread (client mode): 0x8106e90
2025-07-01 12:35:47,151 [DEBUG][       Thread-604819][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:35:47,171 [DEBUG][       Thread-604819][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:35:47,171 [ INFO][       Thread-604819][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:35:47,174 [DEBUG][       Thread-604819][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:35:47,174 [DEBUG][       Thread-604819][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:35:47,174 [DEBUG][       Thread-604819][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:35:47,174 [DEBUG][       Thread-604819][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:35:47,174 [DEBUG][       Thread-604819][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:35:47,174 [DEBUG][       Thread-604819][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:35:47,174 [DEBUG][       Thread-604819][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:35:47,175 [DEBUG][       Thread-604819][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:35:47,175 [DEBUG][       Thread-604819][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:35:47,175 [DEBUG][       Thread-604819][   transport.py][1871] : client lang: <none>
2025-07-01 12:35:47,175 [DEBUG][       Thread-604819][   transport.py][1871] : server lang: <none>
2025-07-01 12:35:47,175 [DEBUG][       Thread-604819][   transport.py][1871] : kex follows: False
2025-07-01 12:35:47,175 [DEBUG][       Thread-604819][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:35:47,175 [DEBUG][       Thread-604819][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:35:47,175 [DEBUG][       Thread-604819][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:35:47,175 [DEBUG][       Thread-604819][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:35:47,175 [DEBUG][       Thread-604819][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:35:47,175 [DEBUG][       Thread-604819][   transport.py][1871] : Compression: none
2025-07-01 12:35:47,175 [DEBUG][       Thread-604819][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:35:47,191 [DEBUG][       Thread-604819][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:35:47,192 [DEBUG][       Thread-604819][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:35:47,192 [DEBUG][       Thread-604819][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:35:47,192 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:35:47,193 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:35:47,194 [DEBUG][       Thread-604819][   transport.py][1871] : userauth is OK
2025-07-01 12:35:47,207 [ INFO][       Thread-604819][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:35:47,208 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:35:47,863 [DEBUG][       Thread-604819][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:35:47,863 [DEBUG][       Thread-604819][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:35:47,905 [DEBUG][       Thread-604819][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:35:47,905 [DEBUG][       Thread-604819][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:35:47,907 [DEBUG][       Thread-604819][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:35:47,919 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:35:47,919 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:35:47,920 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:35:47,921 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:35:47,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:35:47,925 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:35:47,925 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:35:47,925 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:35:47,925 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.441263 -999.00  +12.60  37.17     52   +3.00 1 1 2 1 1   888    0 11.37 70.73 ----- 37.2 37.2 30.0 42.2 16.1 -24.4 15.1 -24.4 14.9 -22.5 15.8 -21.9
2025-07-01 12:35:47,926 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:35:47,926 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:35:47,926 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.441263
2025-07-01 12:35:47,926 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:35:47,926 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:35:47,926 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:35:47,926 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:35:47,926 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:35:47,926 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:35:15', tmtdew=11.14, humidity=46.63, cloud=0.0, wind=30.88, temperature=12.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:35:25.123', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:35:47,926 [DEBUG][       Thread-604819][   transport.py][1871] : EOF in transport thread
2025-07-01 12:35:47,999 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:35:48,008 [DEBUG][       Thread-604822][   transport.py][1871] : starting thread (client mode): 0x83c8070
2025-07-01 12:35:48,008 [DEBUG][       Thread-604822][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:35:48,028 [DEBUG][       Thread-604822][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:35:48,028 [ INFO][       Thread-604822][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:35:48,036 [DEBUG][       Thread-604822][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:35:48,036 [DEBUG][       Thread-604822][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:35:48,036 [DEBUG][       Thread-604822][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:35:48,036 [DEBUG][       Thread-604822][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:35:48,036 [DEBUG][       Thread-604822][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:35:48,036 [DEBUG][       Thread-604822][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:35:48,036 [DEBUG][       Thread-604822][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:35:48,036 [DEBUG][       Thread-604822][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:35:48,036 [DEBUG][       Thread-604822][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:35:48,036 [DEBUG][       Thread-604822][   transport.py][1871] : client lang: <none>
2025-07-01 12:35:48,036 [DEBUG][       Thread-604822][   transport.py][1871] : server lang: <none>
2025-07-01 12:35:48,036 [DEBUG][       Thread-604822][   transport.py][1871] : kex follows: False
2025-07-01 12:35:48,036 [DEBUG][       Thread-604822][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:35:48,036 [DEBUG][       Thread-604822][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:35:48,036 [DEBUG][       Thread-604822][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:35:48,036 [DEBUG][       Thread-604822][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:35:48,036 [DEBUG][       Thread-604822][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:35:48,036 [DEBUG][       Thread-604822][   transport.py][1871] : Compression: none
2025-07-01 12:35:48,036 [DEBUG][       Thread-604822][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:35:48,095 [DEBUG][       Thread-604822][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:35:48,095 [DEBUG][       Thread-604822][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:35:48,095 [DEBUG][       Thread-604822][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:35:48,095 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:35:48,095 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:35:48,153 [DEBUG][       Thread-604822][   transport.py][1871] : userauth is OK
2025-07-01 12:35:48,153 [DEBUG][       Thread-604822][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:35:48,153 [DEBUG][       Thread-604822][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:35:48,153 [DEBUG][       Thread-604822][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:35:48,153 [DEBUG][       Thread-604822][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:35:48,167 [ INFO][       Thread-604822][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:35:48,167 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:35:48,167 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:35:49,172 [DEBUG][       Thread-604822][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:35:49,172 [DEBUG][       Thread-604822][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:35:49,223 [DEBUG][       Thread-604822][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:35:49,223 [DEBUG][       Thread-604822][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:35:49,232 [DEBUG][       Thread-604822][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:35:49,240 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:35:49,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-07-01 12:35:49,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-07-01 12:35:49,255 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:35:49,255 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:35:49,255 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:35:49,263 [DEBUG][       Thread-604822][   transport.py][1871] : EOF in transport thread
2025-07-01 12:35:49,797 [DEBUG][Thread-604824 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:35:58,818 [DEBUG][Thread-604825 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:35:59,264 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:35:59,264 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:35:59,264 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:35:59,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-07-01 12:35:59,769 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 35, 47), 11.17, 46.55, 0.0, 30.29, 12.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:35:59,769 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:35:47
2025-07-01 12:35:59,858 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:35:59,864 [DEBUG][       Thread-604826][   transport.py][1871] : starting thread (client mode): 0x81e42b0
2025-07-01 12:35:59,864 [DEBUG][       Thread-604826][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:35:59,884 [DEBUG][       Thread-604826][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:35:59,884 [ INFO][       Thread-604826][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:35:59,887 [DEBUG][       Thread-604826][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:35:59,887 [DEBUG][       Thread-604826][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:35:59,887 [DEBUG][       Thread-604826][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:35:59,887 [DEBUG][       Thread-604826][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:35:59,887 [DEBUG][       Thread-604826][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:35:59,887 [DEBUG][       Thread-604826][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:35:59,887 [DEBUG][       Thread-604826][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:35:59,887 [DEBUG][       Thread-604826][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:35:59,887 [DEBUG][       Thread-604826][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:35:59,887 [DEBUG][       Thread-604826][   transport.py][1871] : client lang: <none>
2025-07-01 12:35:59,887 [DEBUG][       Thread-604826][   transport.py][1871] : server lang: <none>
2025-07-01 12:35:59,887 [DEBUG][       Thread-604826][   transport.py][1871] : kex follows: False
2025-07-01 12:35:59,887 [DEBUG][       Thread-604826][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:35:59,887 [DEBUG][       Thread-604826][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:35:59,887 [DEBUG][       Thread-604826][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:35:59,887 [DEBUG][       Thread-604826][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:35:59,887 [DEBUG][       Thread-604826][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:35:59,887 [DEBUG][       Thread-604826][   transport.py][1871] : Compression: none
2025-07-01 12:35:59,887 [DEBUG][       Thread-604826][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:35:59,903 [DEBUG][       Thread-604826][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:35:59,903 [DEBUG][       Thread-604826][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:35:59,903 [DEBUG][       Thread-604826][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:35:59,903 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:35:59,903 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:35:59,904 [DEBUG][       Thread-604826][   transport.py][1871] : userauth is OK
2025-07-01 12:35:59,916 [ INFO][       Thread-604826][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:35:59,916 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:36:00,519 [DEBUG][       Thread-604826][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:36:00,520 [DEBUG][       Thread-604826][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:36:00,560 [DEBUG][       Thread-604826][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:36:00,560 [DEBUG][       Thread-604826][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:36:00,563 [DEBUG][       Thread-604826][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:36:00,576 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:36:00,576 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:36:00,578 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:36:00,579 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:36:00,582 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:36:00,583 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:36:00,584 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:36:00,584 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:36:00,584 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.441263 -999.00  +12.60  37.17     52   +3.00 1 1 2 1 1   888    0 11.37 70.73 ----- 37.2 37.2 30.0 42.2 16.1 -24.4 15.1 -24.4 14.9 -22.5 15.8 -21.9
2025-07-01 12:36:00,584 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:36:00,584 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:36:00,584 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.441263
2025-07-01 12:36:00,584 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:36:00,584 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:36:00,584 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:36:00,584 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:36:00,584 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:36:00,584 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:35:47', tmtdew=11.17, humidity=46.55, cloud=0.0, wind=30.29, temperature=12.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:35:25.123', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:36:00,585 [DEBUG][       Thread-604826][   transport.py][1871] : EOF in transport thread
2025-07-01 12:36:00,659 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:36:00,670 [DEBUG][       Thread-604829][   transport.py][1871] : starting thread (client mode): 0x83c8070
2025-07-01 12:36:00,670 [DEBUG][       Thread-604829][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:36:00,686 [DEBUG][       Thread-604829][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:36:00,686 [ INFO][       Thread-604829][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:36:00,694 [DEBUG][       Thread-604829][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:36:00,694 [DEBUG][       Thread-604829][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:36:00,694 [DEBUG][       Thread-604829][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:36:00,694 [DEBUG][       Thread-604829][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:36:00,694 [DEBUG][       Thread-604829][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:36:00,694 [DEBUG][       Thread-604829][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:36:00,694 [DEBUG][       Thread-604829][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:36:00,694 [DEBUG][       Thread-604829][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:36:00,694 [DEBUG][       Thread-604829][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:36:00,694 [DEBUG][       Thread-604829][   transport.py][1871] : client lang: <none>
2025-07-01 12:36:00,694 [DEBUG][       Thread-604829][   transport.py][1871] : server lang: <none>
2025-07-01 12:36:00,694 [DEBUG][       Thread-604829][   transport.py][1871] : kex follows: False
2025-07-01 12:36:00,694 [DEBUG][       Thread-604829][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:36:00,694 [DEBUG][       Thread-604829][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:36:00,694 [DEBUG][       Thread-604829][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:36:00,694 [DEBUG][       Thread-604829][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:36:00,694 [DEBUG][       Thread-604829][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:36:00,694 [DEBUG][       Thread-604829][   transport.py][1871] : Compression: none
2025-07-01 12:36:00,694 [DEBUG][       Thread-604829][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:36:00,752 [DEBUG][       Thread-604829][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:36:00,752 [DEBUG][       Thread-604829][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:36:00,752 [DEBUG][       Thread-604829][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:36:00,752 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:36:00,752 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:36:00,809 [DEBUG][       Thread-604829][   transport.py][1871] : userauth is OK
2025-07-01 12:36:00,809 [DEBUG][       Thread-604829][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:36:00,809 [DEBUG][       Thread-604829][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:36:00,809 [DEBUG][       Thread-604829][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:36:00,809 [DEBUG][       Thread-604829][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:36:00,824 [ INFO][       Thread-604829][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:36:00,824 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:36:00,824 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:36:01,849 [DEBUG][       Thread-604829][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:36:01,849 [DEBUG][       Thread-604829][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:36:01,904 [DEBUG][       Thread-604829][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:36:01,904 [DEBUG][       Thread-604829][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:36:01,912 [DEBUG][       Thread-604829][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:36:01,924 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:36:01,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-07-01 12:36:01,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-07-01 12:36:01,940 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:36:01,940 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:36:01,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:36:01,949 [DEBUG][       Thread-604829][   transport.py][1871] : EOF in transport thread
2025-07-01 12:36:07,838 [DEBUG][Thread-604831 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:36:11,951 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:36:11,951 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:36:11,951 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:36:11,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-07-01 12:36:12,441 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 35, 47), 11.17, 46.55, 0.0, 30.29, 12.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:36:12,441 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:35:47
2025-07-01 12:36:12,529 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:36:12,533 [DEBUG][       Thread-604832][   transport.py][1871] : starting thread (client mode): 0x8107850
2025-07-01 12:36:12,533 [DEBUG][       Thread-604832][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:36:12,554 [DEBUG][       Thread-604832][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:36:12,554 [ INFO][       Thread-604832][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:36:12,557 [DEBUG][       Thread-604832][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:36:12,557 [DEBUG][       Thread-604832][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:36:12,557 [DEBUG][       Thread-604832][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:36:12,557 [DEBUG][       Thread-604832][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:36:12,557 [DEBUG][       Thread-604832][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:36:12,557 [DEBUG][       Thread-604832][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:36:12,557 [DEBUG][       Thread-604832][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:36:12,557 [DEBUG][       Thread-604832][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:36:12,557 [DEBUG][       Thread-604832][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:36:12,557 [DEBUG][       Thread-604832][   transport.py][1871] : client lang: <none>
2025-07-01 12:36:12,557 [DEBUG][       Thread-604832][   transport.py][1871] : server lang: <none>
2025-07-01 12:36:12,557 [DEBUG][       Thread-604832][   transport.py][1871] : kex follows: False
2025-07-01 12:36:12,557 [DEBUG][       Thread-604832][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:36:12,557 [DEBUG][       Thread-604832][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:36:12,557 [DEBUG][       Thread-604832][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:36:12,557 [DEBUG][       Thread-604832][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:36:12,557 [DEBUG][       Thread-604832][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:36:12,558 [DEBUG][       Thread-604832][   transport.py][1871] : Compression: none
2025-07-01 12:36:12,558 [DEBUG][       Thread-604832][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:36:12,576 [DEBUG][       Thread-604832][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:36:12,577 [DEBUG][       Thread-604832][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:36:12,577 [DEBUG][       Thread-604832][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:36:12,577 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:36:12,578 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:36:12,579 [DEBUG][       Thread-604832][   transport.py][1871] : userauth is OK
2025-07-01 12:36:12,591 [ INFO][       Thread-604832][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:36:12,592 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:36:13,272 [DEBUG][       Thread-604832][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:36:13,273 [DEBUG][       Thread-604832][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:36:13,317 [DEBUG][       Thread-604832][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:36:13,317 [DEBUG][       Thread-604832][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:36:13,321 [DEBUG][       Thread-604832][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:36:13,332 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:36:13,333 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:36:13,335 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:36:13,337 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:36:13,342 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:36:13,344 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:36:13,344 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:36:13,345 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:36:13,345 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.441610 -999.00  +12.60  35.94     51   +2.90 1 1 2 1 1   888    0 11.57 69.87 ----- 35.9 35.9 41.4 49.2 16.1 -24.3 15.0 -24.6 14.8 -22.9 15.8 -22.0
2025-07-01 12:36:13,345 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:36:13,345 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:36:13,345 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.441610
2025-07-01 12:36:13,346 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:36:13,346 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:36:13,346 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:36:13,346 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:36:13,347 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:36:13,347 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:35:47', tmtdew=11.17, humidity=46.55, cloud=0.0, wind=30.29, temperature=12.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:35:55.104', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:36:13,348 [DEBUG][       Thread-604832][   transport.py][1871] : EOF in transport thread
2025-07-01 12:36:13,437 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:36:13,446 [DEBUG][       Thread-604835][   transport.py][1871] : starting thread (client mode): 0x8393790
2025-07-01 12:36:13,446 [DEBUG][       Thread-604835][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:36:13,462 [DEBUG][       Thread-604835][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:36:13,462 [ INFO][       Thread-604835][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:36:13,469 [DEBUG][       Thread-604835][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:36:13,470 [DEBUG][       Thread-604835][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:36:13,470 [DEBUG][       Thread-604835][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:36:13,470 [DEBUG][       Thread-604835][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:36:13,470 [DEBUG][       Thread-604835][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:36:13,470 [DEBUG][       Thread-604835][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:36:13,470 [DEBUG][       Thread-604835][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:36:13,470 [DEBUG][       Thread-604835][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:36:13,470 [DEBUG][       Thread-604835][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:36:13,470 [DEBUG][       Thread-604835][   transport.py][1871] : client lang: <none>
2025-07-01 12:36:13,470 [DEBUG][       Thread-604835][   transport.py][1871] : server lang: <none>
2025-07-01 12:36:13,470 [DEBUG][       Thread-604835][   transport.py][1871] : kex follows: False
2025-07-01 12:36:13,470 [DEBUG][       Thread-604835][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:36:13,470 [DEBUG][       Thread-604835][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:36:13,470 [DEBUG][       Thread-604835][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:36:13,470 [DEBUG][       Thread-604835][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:36:13,470 [DEBUG][       Thread-604835][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:36:13,470 [DEBUG][       Thread-604835][   transport.py][1871] : Compression: none
2025-07-01 12:36:13,470 [DEBUG][       Thread-604835][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:36:13,527 [DEBUG][       Thread-604835][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:36:13,528 [DEBUG][       Thread-604835][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:36:13,528 [DEBUG][       Thread-604835][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:36:13,529 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:36:13,529 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:36:13,586 [DEBUG][       Thread-604835][   transport.py][1871] : userauth is OK
2025-07-01 12:36:13,586 [DEBUG][       Thread-604835][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:36:13,586 [DEBUG][       Thread-604835][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:36:13,586 [DEBUG][       Thread-604835][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:36:13,586 [DEBUG][       Thread-604835][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:36:13,604 [ INFO][       Thread-604835][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:36:13,605 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:36:13,605 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:36:14,626 [DEBUG][       Thread-604835][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:36:14,627 [DEBUG][       Thread-604835][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:36:14,676 [DEBUG][       Thread-604835][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:36:14,676 [DEBUG][       Thread-604835][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:36:14,686 [DEBUG][       Thread-604835][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:36:14,695 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:36:14,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-07-01 12:36:14,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-07-01 12:36:14,712 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:36:14,713 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:36:14,713 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:36:14,721 [DEBUG][       Thread-604835][   transport.py][1871] : EOF in transport thread
2025-07-01 12:36:16,880 [DEBUG][Thread-604837 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:36:17,212 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:36:17,214 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:36:24,724 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:36:24,724 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:36:24,724 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:36:24,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-07-01 12:36:25,231 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 36, 19), 11.12, 46.7, 0.0, 38.57, 12.73, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:36:25,231 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:36:19
2025-07-01 12:36:25,318 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:36:25,325 [DEBUG][       Thread-604838][   transport.py][1871] : starting thread (client mode): 0x75a8fd0
2025-07-01 12:36:25,325 [DEBUG][       Thread-604838][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:36:25,346 [DEBUG][       Thread-604838][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:36:25,346 [ INFO][       Thread-604838][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:36:25,349 [DEBUG][       Thread-604838][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:36:25,349 [DEBUG][       Thread-604838][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:36:25,349 [DEBUG][       Thread-604838][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:36:25,349 [DEBUG][       Thread-604838][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:36:25,350 [DEBUG][       Thread-604838][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:36:25,350 [DEBUG][       Thread-604838][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:36:25,350 [DEBUG][       Thread-604838][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:36:25,350 [DEBUG][       Thread-604838][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:36:25,350 [DEBUG][       Thread-604838][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:36:25,350 [DEBUG][       Thread-604838][   transport.py][1871] : client lang: <none>
2025-07-01 12:36:25,350 [DEBUG][       Thread-604838][   transport.py][1871] : server lang: <none>
2025-07-01 12:36:25,350 [DEBUG][       Thread-604838][   transport.py][1871] : kex follows: False
2025-07-01 12:36:25,350 [DEBUG][       Thread-604838][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:36:25,350 [DEBUG][       Thread-604838][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:36:25,350 [DEBUG][       Thread-604838][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:36:25,350 [DEBUG][       Thread-604838][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:36:25,350 [DEBUG][       Thread-604838][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:36:25,350 [DEBUG][       Thread-604838][   transport.py][1871] : Compression: none
2025-07-01 12:36:25,350 [DEBUG][       Thread-604838][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:36:25,367 [DEBUG][       Thread-604838][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:36:25,367 [DEBUG][       Thread-604838][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:36:25,368 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:36:25,368 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:36:25,368 [DEBUG][       Thread-604838][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:36:25,369 [DEBUG][       Thread-604838][   transport.py][1871] : userauth is OK
2025-07-01 12:36:25,394 [ INFO][       Thread-604838][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:36:25,394 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:36:25,903 [DEBUG][Thread-604840 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:36:25,990 [DEBUG][       Thread-604838][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:36:25,990 [DEBUG][       Thread-604838][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:36:26,033 [DEBUG][       Thread-604838][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:36:26,033 [DEBUG][       Thread-604838][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:36:26,036 [DEBUG][       Thread-604838][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:36:26,050 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:36:26,050 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:36:26,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:36:26,054 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:36:26,060 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:36:26,062 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:36:26,062 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:36:26,063 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:36:26,063 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.441610 -999.00  +12.60  35.94     51   +2.90 1 1 2 1 1   888    0 11.57 69.87 ----- 35.9 35.9 41.4 49.2 16.1 -24.3 15.0 -24.6 14.8 -22.9 15.8 -22.0
2025-07-01 12:36:26,063 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:36:26,063 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:36:26,063 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.441610
2025-07-01 12:36:26,064 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:36:26,064 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:36:26,065 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:36:26,065 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:36:26,065 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:36:26,065 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:36:19', tmtdew=11.12, humidity=46.7, cloud=0.0, wind=38.57, temperature=12.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:35:55.104', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:36:26,066 [DEBUG][       Thread-604838][   transport.py][1871] : EOF in transport thread
2025-07-01 12:36:26,148 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:36:26,160 [DEBUG][       Thread-604842][   transport.py][1871] : starting thread (client mode): 0x8106050
2025-07-01 12:36:26,160 [DEBUG][       Thread-604842][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:36:26,175 [DEBUG][       Thread-604842][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:36:26,175 [ INFO][       Thread-604842][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:36:26,183 [DEBUG][       Thread-604842][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:36:26,183 [DEBUG][       Thread-604842][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:36:26,183 [DEBUG][       Thread-604842][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:36:26,183 [DEBUG][       Thread-604842][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:36:26,183 [DEBUG][       Thread-604842][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:36:26,183 [DEBUG][       Thread-604842][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:36:26,183 [DEBUG][       Thread-604842][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:36:26,183 [DEBUG][       Thread-604842][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:36:26,183 [DEBUG][       Thread-604842][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:36:26,183 [DEBUG][       Thread-604842][   transport.py][1871] : client lang: <none>
2025-07-01 12:36:26,183 [DEBUG][       Thread-604842][   transport.py][1871] : server lang: <none>
2025-07-01 12:36:26,183 [DEBUG][       Thread-604842][   transport.py][1871] : kex follows: False
2025-07-01 12:36:26,183 [DEBUG][       Thread-604842][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:36:26,184 [DEBUG][       Thread-604842][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:36:26,184 [DEBUG][       Thread-604842][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:36:26,184 [DEBUG][       Thread-604842][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:36:26,184 [DEBUG][       Thread-604842][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:36:26,184 [DEBUG][       Thread-604842][   transport.py][1871] : Compression: none
2025-07-01 12:36:26,184 [DEBUG][       Thread-604842][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:36:26,242 [DEBUG][       Thread-604842][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:36:26,242 [DEBUG][       Thread-604842][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:36:26,243 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:36:26,243 [DEBUG][       Thread-604842][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:36:26,244 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:36:26,306 [DEBUG][       Thread-604842][   transport.py][1871] : userauth is OK
2025-07-01 12:36:26,306 [DEBUG][       Thread-604842][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:36:26,306 [DEBUG][       Thread-604842][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:36:26,306 [DEBUG][       Thread-604842][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:36:26,306 [DEBUG][       Thread-604842][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:36:26,325 [ INFO][       Thread-604842][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:36:26,326 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:36:26,326 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:36:27,335 [DEBUG][       Thread-604842][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:36:27,335 [DEBUG][       Thread-604842][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:36:27,383 [DEBUG][       Thread-604842][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:36:27,383 [DEBUG][       Thread-604842][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:36:27,392 [DEBUG][       Thread-604842][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:36:27,400 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:36:27,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')
2025-07-01 12:36:27,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-07-01 12:36:27,421 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:36:27,421 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:36:27,421 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:36:27,429 [DEBUG][       Thread-604842][   transport.py][1871] : EOF in transport thread
2025-07-01 12:36:29,614 [DEBUG][Thread-604844 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:36:34,924 [DEBUG][Thread-604845 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:36:37,431 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:36:37,432 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:36:37,432 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:36:37,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-07-01 12:36:37,926 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 36, 19), 11.12, 46.7, 0.0, 38.57, 12.73, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:36:37,926 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:36:19
2025-07-01 12:36:38,012 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:36:38,016 [DEBUG][       Thread-604846][   transport.py][1871] : starting thread (client mode): 0x75ab7f0
2025-07-01 12:36:38,016 [DEBUG][       Thread-604846][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:36:38,037 [DEBUG][       Thread-604846][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:36:38,037 [ INFO][       Thread-604846][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:36:38,041 [DEBUG][       Thread-604846][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:36:38,041 [DEBUG][       Thread-604846][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:36:38,041 [DEBUG][       Thread-604846][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:36:38,041 [DEBUG][       Thread-604846][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:36:38,041 [DEBUG][       Thread-604846][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:36:38,041 [DEBUG][       Thread-604846][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:36:38,041 [DEBUG][       Thread-604846][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:36:38,041 [DEBUG][       Thread-604846][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:36:38,041 [DEBUG][       Thread-604846][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:36:38,041 [DEBUG][       Thread-604846][   transport.py][1871] : client lang: <none>
2025-07-01 12:36:38,041 [DEBUG][       Thread-604846][   transport.py][1871] : server lang: <none>
2025-07-01 12:36:38,041 [DEBUG][       Thread-604846][   transport.py][1871] : kex follows: False
2025-07-01 12:36:38,041 [DEBUG][       Thread-604846][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:36:38,041 [DEBUG][       Thread-604846][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:36:38,041 [DEBUG][       Thread-604846][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:36:38,041 [DEBUG][       Thread-604846][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:36:38,041 [DEBUG][       Thread-604846][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:36:38,041 [DEBUG][       Thread-604846][   transport.py][1871] : Compression: none
2025-07-01 12:36:38,041 [DEBUG][       Thread-604846][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:36:38,058 [DEBUG][       Thread-604846][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:36:38,058 [DEBUG][       Thread-604846][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:36:38,059 [DEBUG][       Thread-604846][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:36:38,059 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:36:38,059 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:36:38,060 [DEBUG][       Thread-604846][   transport.py][1871] : userauth is OK
2025-07-01 12:36:38,086 [ INFO][       Thread-604846][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:36:38,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:36:38,710 [DEBUG][       Thread-604846][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:36:38,710 [DEBUG][       Thread-604846][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:36:38,752 [DEBUG][       Thread-604846][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:36:38,752 [DEBUG][       Thread-604846][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:36:38,755 [DEBUG][       Thread-604846][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:36:38,766 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:36:38,766 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:36:38,767 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:36:38,768 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:36:38,771 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:36:38,772 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:36:38,772 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:36:38,773 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:36:38,773 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.441610 -999.00  +12.60  35.94     51   +2.90 1 1 2 1 1   888    0 11.57 69.87 ----- 35.9 35.9 41.4 49.2 16.1 -24.3 15.0 -24.6 14.8 -22.9 15.8 -22.0
2025-07-01 12:36:38,773 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:36:38,773 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:36:38,773 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.441610
2025-07-01 12:36:38,773 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:36:38,773 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:36:38,773 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:36:38,773 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:36:38,773 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:36:38,773 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:36:19', tmtdew=11.12, humidity=46.7, cloud=0.0, wind=38.57, temperature=12.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:35:55.104', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:36:38,774 [DEBUG][       Thread-604846][   transport.py][1871] : EOF in transport thread
2025-07-01 12:36:38,845 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:36:38,862 [DEBUG][       Thread-604849][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 12:36:38,862 [DEBUG][       Thread-604849][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:36:38,877 [DEBUG][       Thread-604849][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:36:38,877 [ INFO][       Thread-604849][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:36:38,884 [DEBUG][       Thread-604849][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:36:38,884 [DEBUG][       Thread-604849][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:36:38,884 [DEBUG][       Thread-604849][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:36:38,884 [DEBUG][       Thread-604849][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:36:38,884 [DEBUG][       Thread-604849][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:36:38,884 [DEBUG][       Thread-604849][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:36:38,884 [DEBUG][       Thread-604849][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:36:38,884 [DEBUG][       Thread-604849][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:36:38,884 [DEBUG][       Thread-604849][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:36:38,884 [DEBUG][       Thread-604849][   transport.py][1871] : client lang: <none>
2025-07-01 12:36:38,884 [DEBUG][       Thread-604849][   transport.py][1871] : server lang: <none>
2025-07-01 12:36:38,884 [DEBUG][       Thread-604849][   transport.py][1871] : kex follows: False
2025-07-01 12:36:38,884 [DEBUG][       Thread-604849][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:36:38,884 [DEBUG][       Thread-604849][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:36:38,884 [DEBUG][       Thread-604849][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:36:38,884 [DEBUG][       Thread-604849][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:36:38,884 [DEBUG][       Thread-604849][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:36:38,884 [DEBUG][       Thread-604849][   transport.py][1871] : Compression: none
2025-07-01 12:36:38,884 [DEBUG][       Thread-604849][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:36:38,941 [DEBUG][       Thread-604849][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:36:38,941 [DEBUG][       Thread-604849][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:36:38,941 [DEBUG][       Thread-604849][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:36:38,941 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:36:38,941 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:36:39,002 [DEBUG][       Thread-604849][   transport.py][1871] : userauth is OK
2025-07-01 12:36:39,002 [DEBUG][       Thread-604849][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:36:39,002 [DEBUG][       Thread-604849][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:36:39,002 [DEBUG][       Thread-604849][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:36:39,002 [DEBUG][       Thread-604849][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:36:39,016 [ INFO][       Thread-604849][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:36:39,016 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:36:39,016 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:36:40,008 [DEBUG][       Thread-604849][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:36:40,009 [DEBUG][       Thread-604849][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:36:40,059 [DEBUG][       Thread-604849][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:36:40,059 [DEBUG][       Thread-604849][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:36:40,068 [DEBUG][       Thread-604849][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:36:40,076 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:36: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')
2025-07-01 12:36: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') -> 00000000
2025-07-01 12:36:40,091 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:36:40,092 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:36:40,092 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:36:40,099 [DEBUG][       Thread-604849][   transport.py][1871] : EOF in transport thread
2025-07-01 12:36:43,945 [DEBUG][Thread-604851 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:36:50,102 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:36:50,102 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:36:50,102 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:36:50,105 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:36:50,595 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 36, 19), 11.12, 46.7, 0.0, 38.57, 12.73, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:36:50,595 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:36:19
2025-07-01 12:36:50,681 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:36:50,687 [DEBUG][       Thread-604852][   transport.py][1871] : starting thread (client mode): 0x8107850
2025-07-01 12:36:50,687 [DEBUG][       Thread-604852][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:36:50,707 [DEBUG][       Thread-604852][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:36:50,707 [ INFO][       Thread-604852][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:36:50,711 [DEBUG][       Thread-604852][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:36:50,711 [DEBUG][       Thread-604852][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:36:50,711 [DEBUG][       Thread-604852][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:36:50,711 [DEBUG][       Thread-604852][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:36:50,711 [DEBUG][       Thread-604852][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:36:50,711 [DEBUG][       Thread-604852][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:36:50,711 [DEBUG][       Thread-604852][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:36:50,711 [DEBUG][       Thread-604852][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:36:50,711 [DEBUG][       Thread-604852][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:36:50,711 [DEBUG][       Thread-604852][   transport.py][1871] : client lang: <none>
2025-07-01 12:36:50,711 [DEBUG][       Thread-604852][   transport.py][1871] : server lang: <none>
2025-07-01 12:36:50,711 [DEBUG][       Thread-604852][   transport.py][1871] : kex follows: False
2025-07-01 12:36:50,711 [DEBUG][       Thread-604852][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:36:50,711 [DEBUG][       Thread-604852][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:36:50,711 [DEBUG][       Thread-604852][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:36:50,711 [DEBUG][       Thread-604852][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:36:50,711 [DEBUG][       Thread-604852][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:36:50,711 [DEBUG][       Thread-604852][   transport.py][1871] : Compression: none
2025-07-01 12:36:50,711 [DEBUG][       Thread-604852][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:36:50,727 [DEBUG][       Thread-604852][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:36:50,728 [DEBUG][       Thread-604852][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:36:50,728 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:36:50,728 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:36:50,729 [DEBUG][       Thread-604852][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:36:50,730 [DEBUG][       Thread-604852][   transport.py][1871] : userauth is OK
2025-07-01 12:36:50,743 [ INFO][       Thread-604852][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:36:50,744 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:36:51,388 [DEBUG][       Thread-604852][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:36:51,388 [DEBUG][       Thread-604852][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:36:51,432 [DEBUG][       Thread-604852][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:36:51,432 [DEBUG][       Thread-604852][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:36:51,434 [DEBUG][       Thread-604852][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:36:51,452 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:36:51,453 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:36:51,454 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:36:51,455 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:36:51,458 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:36:51,459 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:36:51,459 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:36:51,459 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:36:51,459 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.441957 -999.00  +12.60  38.79     52   +3.00 1 1 2 1 1   888    0 11.69 72.13 ----- 38.8 38.8 42.8 43.9 16.0 -24.5 15.1 -24.2 14.9 -22.5 15.8 -22.7
2025-07-01 12:36:51,459 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:36:51,459 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:36:51,459 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.441957
2025-07-01 12:36:51,459 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:36:51,459 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:36:51,459 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:36:51,459 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:36:51,459 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:36:51,459 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:36:19', tmtdew=11.12, humidity=46.7, cloud=0.0, wind=38.57, temperature=12.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:36:25.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:36:51,460 [DEBUG][       Thread-604852][   transport.py][1871] : EOF in transport thread
2025-07-01 12:36:51,533 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:36:51,544 [DEBUG][       Thread-604855][   transport.py][1871] : starting thread (client mode): 0x81e51b0
2025-07-01 12:36:51,544 [DEBUG][       Thread-604855][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:36:51,563 [DEBUG][       Thread-604855][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:36:51,563 [ INFO][       Thread-604855][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:36:51,570 [DEBUG][       Thread-604855][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:36:51,570 [DEBUG][       Thread-604855][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:36:51,570 [DEBUG][       Thread-604855][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:36:51,570 [DEBUG][       Thread-604855][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:36:51,570 [DEBUG][       Thread-604855][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:36:51,570 [DEBUG][       Thread-604855][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:36:51,570 [DEBUG][       Thread-604855][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:36:51,570 [DEBUG][       Thread-604855][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:36:51,570 [DEBUG][       Thread-604855][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:36:51,570 [DEBUG][       Thread-604855][   transport.py][1871] : client lang: <none>
2025-07-01 12:36:51,570 [DEBUG][       Thread-604855][   transport.py][1871] : server lang: <none>
2025-07-01 12:36:51,570 [DEBUG][       Thread-604855][   transport.py][1871] : kex follows: False
2025-07-01 12:36:51,570 [DEBUG][       Thread-604855][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:36:51,570 [DEBUG][       Thread-604855][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:36:51,570 [DEBUG][       Thread-604855][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:36:51,570 [DEBUG][       Thread-604855][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:36:51,570 [DEBUG][       Thread-604855][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:36:51,570 [DEBUG][       Thread-604855][   transport.py][1871] : Compression: none
2025-07-01 12:36:51,570 [DEBUG][       Thread-604855][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:36:51,633 [DEBUG][       Thread-604855][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:36:51,633 [DEBUG][       Thread-604855][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:36:51,633 [DEBUG][       Thread-604855][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:36:51,633 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:36:51,633 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:36:51,689 [DEBUG][       Thread-604855][   transport.py][1871] : userauth is OK
2025-07-01 12:36:51,689 [DEBUG][       Thread-604855][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:36:51,690 [DEBUG][       Thread-604855][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:36:51,690 [DEBUG][       Thread-604855][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:36:51,690 [DEBUG][       Thread-604855][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:36:51,704 [ INFO][       Thread-604855][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:36:51,705 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:36:51,705 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:36:52,744 [DEBUG][       Thread-604855][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:36:52,744 [DEBUG][       Thread-604855][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:36:52,795 [DEBUG][       Thread-604855][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:36:52,795 [DEBUG][       Thread-604855][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:36:52,803 [DEBUG][       Thread-604855][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:36:52,811 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:36:52,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-07-01 12:36:52,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-07-01 12:36:52,827 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:36:52,827 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:36:52,827 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:36:52,836 [DEBUG][       Thread-604855][   transport.py][1871] : EOF in transport thread
2025-07-01 12:36:52,965 [DEBUG][Thread-604857 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:37:01,988 [DEBUG][Thread-604858 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:37:02,836 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:37:02,836 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:37:02,836 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:37:02,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-07-01 12:37:03,327 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 36, 50), 11.09, 46.8, 0.0, 37.28, 12.75, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:37:03,327 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:36:50
2025-07-01 12:37:03,414 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:37:03,418 [DEBUG][       Thread-604859][   transport.py][1871] : starting thread (client mode): 0x81e7f40
2025-07-01 12:37:03,418 [DEBUG][       Thread-604859][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:37:03,433 [DEBUG][       Thread-604859][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:37:03,433 [ INFO][       Thread-604859][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:37:03,436 [DEBUG][       Thread-604859][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:37:03,436 [DEBUG][       Thread-604859][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:37:03,436 [DEBUG][       Thread-604859][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:37:03,436 [DEBUG][       Thread-604859][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:37:03,436 [DEBUG][       Thread-604859][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:37:03,436 [DEBUG][       Thread-604859][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:37:03,436 [DEBUG][       Thread-604859][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:37:03,436 [DEBUG][       Thread-604859][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:37:03,437 [DEBUG][       Thread-604859][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:37:03,437 [DEBUG][       Thread-604859][   transport.py][1871] : client lang: <none>
2025-07-01 12:37:03,437 [DEBUG][       Thread-604859][   transport.py][1871] : server lang: <none>
2025-07-01 12:37:03,437 [DEBUG][       Thread-604859][   transport.py][1871] : kex follows: False
2025-07-01 12:37:03,437 [DEBUG][       Thread-604859][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:37:03,437 [DEBUG][       Thread-604859][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:37:03,437 [DEBUG][       Thread-604859][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:37:03,437 [DEBUG][       Thread-604859][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:37:03,437 [DEBUG][       Thread-604859][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:37:03,437 [DEBUG][       Thread-604859][   transport.py][1871] : Compression: none
2025-07-01 12:37:03,437 [DEBUG][       Thread-604859][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:37:03,461 [DEBUG][       Thread-604859][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:37:03,461 [DEBUG][       Thread-604859][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:37:03,462 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:37:03,462 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:37:03,462 [DEBUG][       Thread-604859][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:37:03,464 [DEBUG][       Thread-604859][   transport.py][1871] : userauth is OK
2025-07-01 12:37:03,488 [ INFO][       Thread-604859][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:37:03,489 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:37:04,176 [DEBUG][       Thread-604859][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:37:04,176 [DEBUG][       Thread-604859][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:37:04,217 [DEBUG][       Thread-604859][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:37:04,217 [DEBUG][       Thread-604859][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:37:04,220 [DEBUG][       Thread-604859][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:37:04,233 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:37:04,233 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:37:04,235 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:37:04,237 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:37:04,243 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:37:04,245 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:37:04,245 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:37:04,246 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:37:04,246 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.441957 -999.00  +12.60  38.79     52   +3.00 1 1 2 1 1   888    0 11.69 72.13 ----- 38.8 38.8 42.8 43.9 16.0 -24.5 15.1 -24.2 14.9 -22.5 15.8 -22.7
2025-07-01 12:37:04,246 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:37:04,246 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:37:04,247 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.441957
2025-07-01 12:37:04,247 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:37:04,248 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:37:04,248 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:37:04,248 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:37:04,248 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:37:04,248 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:36:50', tmtdew=11.09, humidity=46.8, cloud=0.0, wind=37.28, temperature=12.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:36:25.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:37:04,250 [DEBUG][       Thread-604859][   transport.py][1871] : EOF in transport thread
2025-07-01 12:37:04,324 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:37:04,335 [DEBUG][       Thread-604862][   transport.py][1871] : starting thread (client mode): 0x818d9f0
2025-07-01 12:37:04,335 [DEBUG][       Thread-604862][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:37:04,349 [DEBUG][       Thread-604862][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:37:04,349 [ INFO][       Thread-604862][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:37:04,358 [DEBUG][       Thread-604862][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:37:04,358 [DEBUG][       Thread-604862][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:37:04,358 [DEBUG][       Thread-604862][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:37:04,358 [DEBUG][       Thread-604862][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:37:04,358 [DEBUG][       Thread-604862][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:37:04,358 [DEBUG][       Thread-604862][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:37:04,358 [DEBUG][       Thread-604862][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:37:04,358 [DEBUG][       Thread-604862][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:37:04,358 [DEBUG][       Thread-604862][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:37:04,358 [DEBUG][       Thread-604862][   transport.py][1871] : client lang: <none>
2025-07-01 12:37:04,358 [DEBUG][       Thread-604862][   transport.py][1871] : server lang: <none>
2025-07-01 12:37:04,358 [DEBUG][       Thread-604862][   transport.py][1871] : kex follows: False
2025-07-01 12:37:04,358 [DEBUG][       Thread-604862][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:37:04,358 [DEBUG][       Thread-604862][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:37:04,358 [DEBUG][       Thread-604862][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:37:04,358 [DEBUG][       Thread-604862][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:37:04,358 [DEBUG][       Thread-604862][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:37:04,358 [DEBUG][       Thread-604862][   transport.py][1871] : Compression: none
2025-07-01 12:37:04,358 [DEBUG][       Thread-604862][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:37:04,422 [DEBUG][       Thread-604862][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:37:04,422 [DEBUG][       Thread-604862][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:37:04,423 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:37:04,424 [DEBUG][       Thread-604862][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:37:04,424 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:37:04,478 [DEBUG][       Thread-604862][   transport.py][1871] : userauth is OK
2025-07-01 12:37:04,479 [DEBUG][       Thread-604862][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:37:04,479 [DEBUG][       Thread-604862][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:37:04,479 [DEBUG][       Thread-604862][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:37:04,479 [DEBUG][       Thread-604862][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:37:04,498 [ INFO][       Thread-604862][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:37:04,498 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:37:04,499 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:37:05,511 [DEBUG][       Thread-604862][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:37:05,511 [DEBUG][       Thread-604862][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:37:05,560 [DEBUG][       Thread-604862][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:37:05,560 [DEBUG][       Thread-604862][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:37:05,569 [DEBUG][       Thread-604862][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:37:05,578 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:37:05,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-07-01 12:37:05,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-07-01 12:37:05,597 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:37:05,597 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:37:05,598 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:37:05,606 [DEBUG][       Thread-604862][   transport.py][1871] : EOF in transport thread
2025-07-01 12:37:11,010 [DEBUG][Thread-604864 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:37:15,608 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:37:15,608 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:37:15,608 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:37:15,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-07-01 12:37:16,112 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 36, 50), 11.09, 46.8, 0.0, 37.28, 12.75, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:37:16,112 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:36:50
2025-07-01 12:37:16,198 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:37:16,204 [DEBUG][       Thread-604865][   transport.py][1871] : starting thread (client mode): 0x818f010
2025-07-01 12:37:16,204 [DEBUG][       Thread-604865][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:37:16,224 [DEBUG][       Thread-604865][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:37:16,224 [ INFO][       Thread-604865][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:37:16,226 [DEBUG][       Thread-604865][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:37:16,226 [DEBUG][       Thread-604865][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:37:16,226 [DEBUG][       Thread-604865][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:37:16,226 [DEBUG][       Thread-604865][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:37:16,226 [DEBUG][       Thread-604865][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:37:16,226 [DEBUG][       Thread-604865][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:37:16,226 [DEBUG][       Thread-604865][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:37:16,226 [DEBUG][       Thread-604865][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:37:16,226 [DEBUG][       Thread-604865][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:37:16,226 [DEBUG][       Thread-604865][   transport.py][1871] : client lang: <none>
2025-07-01 12:37:16,226 [DEBUG][       Thread-604865][   transport.py][1871] : server lang: <none>
2025-07-01 12:37:16,226 [DEBUG][       Thread-604865][   transport.py][1871] : kex follows: False
2025-07-01 12:37:16,226 [DEBUG][       Thread-604865][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:37:16,226 [DEBUG][       Thread-604865][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:37:16,226 [DEBUG][       Thread-604865][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:37:16,226 [DEBUG][       Thread-604865][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:37:16,226 [DEBUG][       Thread-604865][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:37:16,226 [DEBUG][       Thread-604865][   transport.py][1871] : Compression: none
2025-07-01 12:37:16,226 [DEBUG][       Thread-604865][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:37:16,253 [DEBUG][       Thread-604865][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:37:16,253 [DEBUG][       Thread-604865][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:37:16,254 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:37:16,254 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:37:16,254 [DEBUG][       Thread-604865][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:37:16,255 [DEBUG][       Thread-604865][   transport.py][1871] : userauth is OK
2025-07-01 12:37:16,268 [ INFO][       Thread-604865][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:37:16,269 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:37:16,861 [DEBUG][       Thread-604865][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:37:16,862 [DEBUG][       Thread-604865][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:37:16,904 [DEBUG][       Thread-604865][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:37:16,905 [DEBUG][       Thread-604865][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:37:16,907 [DEBUG][       Thread-604865][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:37:16,920 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:37:16,920 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:37:16,921 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:37:16,922 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:37:16,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:37:16,925 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:37:16,925 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:37:16,925 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:37:16,925 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.442304 -999.00  +12.60  38.03     52   +3.00 1 1 2 1 1   888    0 11.61 75.84 ----- 38.0 38.0 45.4 46.1 16.0 -24.5 15.0 -24.8 14.9 -22.2 15.8 -22.0
2025-07-01 12:37:16,925 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:37:16,925 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:37:16,925 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.442304
2025-07-01 12:37:16,926 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:37:16,926 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:37:16,926 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:37:16,926 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:37:16,926 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:37:16,926 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:36:50', tmtdew=11.09, humidity=46.8, cloud=0.0, wind=37.28, temperature=12.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:36:55.066', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:37:16,926 [DEBUG][       Thread-604865][   transport.py][1871] : EOF in transport thread
2025-07-01 12:37:17,000 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:37:17,011 [DEBUG][       Thread-604868][   transport.py][1871] : starting thread (client mode): 0x8a65e70
2025-07-01 12:37:17,011 [DEBUG][       Thread-604868][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:37:17,027 [DEBUG][       Thread-604868][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:37:17,027 [ INFO][       Thread-604868][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:37:17,034 [DEBUG][       Thread-604868][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:37:17,034 [DEBUG][       Thread-604868][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:37:17,034 [DEBUG][       Thread-604868][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:37:17,034 [DEBUG][       Thread-604868][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:37:17,034 [DEBUG][       Thread-604868][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:37:17,034 [DEBUG][       Thread-604868][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:37:17,034 [DEBUG][       Thread-604868][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:37:17,034 [DEBUG][       Thread-604868][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:37:17,034 [DEBUG][       Thread-604868][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:37:17,034 [DEBUG][       Thread-604868][   transport.py][1871] : client lang: <none>
2025-07-01 12:37:17,034 [DEBUG][       Thread-604868][   transport.py][1871] : server lang: <none>
2025-07-01 12:37:17,034 [DEBUG][       Thread-604868][   transport.py][1871] : kex follows: False
2025-07-01 12:37:17,034 [DEBUG][       Thread-604868][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:37:17,034 [DEBUG][       Thread-604868][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:37:17,034 [DEBUG][       Thread-604868][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:37:17,034 [DEBUG][       Thread-604868][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:37:17,034 [DEBUG][       Thread-604868][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:37:17,034 [DEBUG][       Thread-604868][   transport.py][1871] : Compression: none
2025-07-01 12:37:17,034 [DEBUG][       Thread-604868][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:37:17,093 [DEBUG][       Thread-604868][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:37:17,093 [DEBUG][       Thread-604868][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:37:17,093 [DEBUG][       Thread-604868][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:37:17,093 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:37:17,093 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:37:17,150 [DEBUG][       Thread-604868][   transport.py][1871] : userauth is OK
2025-07-01 12:37:17,150 [DEBUG][       Thread-604868][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:37:17,150 [DEBUG][       Thread-604868][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:37:17,150 [DEBUG][       Thread-604868][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:37:17,150 [DEBUG][       Thread-604868][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:37:17,175 [ INFO][       Thread-604868][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:37:17,175 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:37:17,175 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:37:17,351 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:37:17,352 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:37:18,161 [DEBUG][       Thread-604868][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:37:18,161 [DEBUG][       Thread-604868][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:37:18,211 [DEBUG][       Thread-604868][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:37:18,211 [DEBUG][       Thread-604868][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:37:18,220 [DEBUG][       Thread-604868][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:37:18,228 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:37:18,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-07-01 12:37:18,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-07-01 12:37:18,244 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:37:18,244 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:37:18,244 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:37:18,252 [DEBUG][       Thread-604868][   transport.py][1871] : EOF in transport thread
2025-07-01 12:37:20,040 [DEBUG][Thread-604870 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:37:28,254 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:37:28,255 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:37:28,255 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:37:28,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-07-01 12:37:28,745 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 37, 22), 11.12, 46.7, 0.0, 33.91, 12.75, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:37:28,745 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:37:22
2025-07-01 12:37:28,832 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:37:28,838 [DEBUG][       Thread-604871][   transport.py][1871] : starting thread (client mode): 0x81e4d30
2025-07-01 12:37:28,838 [DEBUG][       Thread-604871][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:37:28,858 [DEBUG][       Thread-604871][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:37:28,858 [ INFO][       Thread-604871][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:37:28,860 [DEBUG][       Thread-604871][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:37:28,860 [DEBUG][       Thread-604871][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:37:28,860 [DEBUG][       Thread-604871][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:37:28,860 [DEBUG][       Thread-604871][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:37:28,860 [DEBUG][       Thread-604871][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:37:28,860 [DEBUG][       Thread-604871][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:37:28,860 [DEBUG][       Thread-604871][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:37:28,860 [DEBUG][       Thread-604871][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:37:28,860 [DEBUG][       Thread-604871][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:37:28,860 [DEBUG][       Thread-604871][   transport.py][1871] : client lang: <none>
2025-07-01 12:37:28,860 [DEBUG][       Thread-604871][   transport.py][1871] : server lang: <none>
2025-07-01 12:37:28,860 [DEBUG][       Thread-604871][   transport.py][1871] : kex follows: False
2025-07-01 12:37:28,860 [DEBUG][       Thread-604871][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:37:28,860 [DEBUG][       Thread-604871][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:37:28,860 [DEBUG][       Thread-604871][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:37:28,860 [DEBUG][       Thread-604871][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:37:28,860 [DEBUG][       Thread-604871][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:37:28,860 [DEBUG][       Thread-604871][   transport.py][1871] : Compression: none
2025-07-01 12:37:28,860 [DEBUG][       Thread-604871][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:37:28,868 [DEBUG][       Thread-604871][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:37:28,868 [DEBUG][       Thread-604871][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:37:28,869 [DEBUG][       Thread-604871][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:37:28,869 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:37:28,869 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:37:28,870 [DEBUG][       Thread-604871][   transport.py][1871] : userauth is OK
2025-07-01 12:37:28,883 [ INFO][       Thread-604871][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:37:28,883 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:37:29,060 [DEBUG][Thread-604873 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:37:29,553 [DEBUG][       Thread-604871][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:37:29,554 [DEBUG][       Thread-604871][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:37:29,601 [DEBUG][       Thread-604871][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:37:29,601 [DEBUG][       Thread-604871][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:37:29,605 [DEBUG][       Thread-604871][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:37:29,617 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:37:29,617 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:37:29,619 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:37:29,621 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:37:29,625 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:37:29,627 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:37:29,627 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:37:29,628 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:37:29,628 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.442304 -999.00  +12.60  38.03     52   +3.00 1 1 2 1 1   888    0 11.61 75.84 ----- 38.0 38.0 45.4 46.1 16.0 -24.5 15.0 -24.8 14.9 -22.2 15.8 -22.0
2025-07-01 12:37:29,628 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:37:29,628 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:37:29,628 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.442304
2025-07-01 12:37:29,629 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:37:29,629 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:37:29,630 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:37:29,630 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:37:29,630 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:37:29,630 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:37:22', tmtdew=11.12, humidity=46.7, cloud=0.0, wind=33.91, temperature=12.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:36:55.066', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:37:29,631 [DEBUG][       Thread-604871][   transport.py][1871] : EOF in transport thread
2025-07-01 12:37:29,662 [DEBUG][Thread-604875 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:37:29,708 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:37:29,720 [DEBUG][       Thread-604876][   transport.py][1871] : starting thread (client mode): 0x8155330
2025-07-01 12:37:29,720 [DEBUG][       Thread-604876][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:37:29,736 [DEBUG][       Thread-604876][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:37:29,736 [ INFO][       Thread-604876][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:37:29,744 [DEBUG][       Thread-604876][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:37:29,744 [DEBUG][       Thread-604876][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:37:29,744 [DEBUG][       Thread-604876][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:37:29,744 [DEBUG][       Thread-604876][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:37:29,744 [DEBUG][       Thread-604876][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:37:29,744 [DEBUG][       Thread-604876][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:37:29,744 [DEBUG][       Thread-604876][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:37:29,744 [DEBUG][       Thread-604876][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:37:29,745 [DEBUG][       Thread-604876][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:37:29,745 [DEBUG][       Thread-604876][   transport.py][1871] : client lang: <none>
2025-07-01 12:37:29,745 [DEBUG][       Thread-604876][   transport.py][1871] : server lang: <none>
2025-07-01 12:37:29,745 [DEBUG][       Thread-604876][   transport.py][1871] : kex follows: False
2025-07-01 12:37:29,745 [DEBUG][       Thread-604876][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:37:29,745 [DEBUG][       Thread-604876][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:37:29,745 [DEBUG][       Thread-604876][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:37:29,745 [DEBUG][       Thread-604876][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:37:29,745 [DEBUG][       Thread-604876][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:37:29,745 [DEBUG][       Thread-604876][   transport.py][1871] : Compression: none
2025-07-01 12:37:29,745 [DEBUG][       Thread-604876][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:37:29,802 [DEBUG][       Thread-604876][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:37:29,803 [DEBUG][       Thread-604876][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:37:29,803 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:37:29,804 [DEBUG][       Thread-604876][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:37:29,805 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:37:29,862 [DEBUG][       Thread-604876][   transport.py][1871] : userauth is OK
2025-07-01 12:37:29,863 [DEBUG][       Thread-604876][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:37:29,863 [DEBUG][       Thread-604876][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:37:29,863 [DEBUG][       Thread-604876][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:37:29,863 [DEBUG][       Thread-604876][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:37:29,882 [ INFO][       Thread-604876][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:37:29,882 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:37:29,883 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:37:30,914 [DEBUG][       Thread-604876][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:37:30,914 [DEBUG][       Thread-604876][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:37:30,967 [DEBUG][       Thread-604876][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:37:30,967 [DEBUG][       Thread-604876][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:37:30,980 [DEBUG][       Thread-604876][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:37:30,992 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:37:30,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-07-01 12:37:31,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-07-01 12:37:31,012 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:37:31,012 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:37:31,013 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:37:31,023 [DEBUG][       Thread-604876][   transport.py][1871] : EOF in transport thread
2025-07-01 12:37:38,084 [DEBUG][Thread-604878 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:37:41,023 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:37:41,023 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:37:41,023 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:37: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-07-01 12:37:41,506 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 37, 22), 11.12, 46.7, 0.0, 33.91, 12.75, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:37:41,507 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:37:22
2025-07-01 12:37:41,592 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:37:41,596 [DEBUG][       Thread-604879][   transport.py][1871] : starting thread (client mode): 0x75a8c40
2025-07-01 12:37:41,596 [DEBUG][       Thread-604879][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:37:41,619 [DEBUG][       Thread-604879][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:37:41,619 [ INFO][       Thread-604879][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:37:41,623 [DEBUG][       Thread-604879][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:37:41,623 [DEBUG][       Thread-604879][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:37:41,623 [DEBUG][       Thread-604879][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:37:41,623 [DEBUG][       Thread-604879][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:37:41,623 [DEBUG][       Thread-604879][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:37:41,623 [DEBUG][       Thread-604879][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:37:41,623 [DEBUG][       Thread-604879][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:37:41,623 [DEBUG][       Thread-604879][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:37:41,623 [DEBUG][       Thread-604879][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:37:41,623 [DEBUG][       Thread-604879][   transport.py][1871] : client lang: <none>
2025-07-01 12:37:41,624 [DEBUG][       Thread-604879][   transport.py][1871] : server lang: <none>
2025-07-01 12:37:41,624 [DEBUG][       Thread-604879][   transport.py][1871] : kex follows: False
2025-07-01 12:37:41,624 [DEBUG][       Thread-604879][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:37:41,624 [DEBUG][       Thread-604879][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:37:41,624 [DEBUG][       Thread-604879][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:37:41,624 [DEBUG][       Thread-604879][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:37:41,624 [DEBUG][       Thread-604879][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:37:41,624 [DEBUG][       Thread-604879][   transport.py][1871] : Compression: none
2025-07-01 12:37:41,624 [DEBUG][       Thread-604879][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:37:41,642 [DEBUG][       Thread-604879][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:37:41,643 [DEBUG][       Thread-604879][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:37:41,643 [DEBUG][       Thread-604879][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:37:41,644 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:37:41,644 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:37:41,645 [DEBUG][       Thread-604879][   transport.py][1871] : userauth is OK
2025-07-01 12:37:41,669 [ INFO][       Thread-604879][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:37:41,670 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:37:42,337 [DEBUG][       Thread-604879][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:37:42,338 [DEBUG][       Thread-604879][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:37:42,381 [DEBUG][       Thread-604879][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:37:42,381 [DEBUG][       Thread-604879][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:37:42,384 [DEBUG][       Thread-604879][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:37:42,397 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:37:42,397 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:37:42,399 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:37:42,401 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:37:42,408 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:37:42,410 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:37:42,410 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:37:42,411 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:37:42,411 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.442304 -999.00  +12.60  38.03     52   +3.00 1 1 2 1 1   888    0 11.61 75.84 ----- 38.0 38.0 45.4 46.1 16.0 -24.5 15.0 -24.8 14.9 -22.2 15.8 -22.0
2025-07-01 12:37:42,411 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:37:42,411 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:37:42,411 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.442304
2025-07-01 12:37:42,411 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:37:42,412 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:37:42,412 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:37:42,412 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:37:42,412 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:37:42,412 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:37:22', tmtdew=11.12, humidity=46.7, cloud=0.0, wind=33.91, temperature=12.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:36:55.066', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:37:42,413 [DEBUG][       Thread-604879][   transport.py][1871] : EOF in transport thread
2025-07-01 12:37:42,496 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:37:42,508 [DEBUG][       Thread-604882][   transport.py][1871] : starting thread (client mode): 0x83c8190
2025-07-01 12:37:42,508 [DEBUG][       Thread-604882][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:37:42,523 [DEBUG][       Thread-604882][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:37:42,523 [ INFO][       Thread-604882][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:37:42,531 [DEBUG][       Thread-604882][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:37:42,532 [DEBUG][       Thread-604882][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:37:42,532 [DEBUG][       Thread-604882][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:37:42,532 [DEBUG][       Thread-604882][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:37:42,532 [DEBUG][       Thread-604882][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:37:42,532 [DEBUG][       Thread-604882][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:37:42,532 [DEBUG][       Thread-604882][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:37:42,532 [DEBUG][       Thread-604882][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:37:42,532 [DEBUG][       Thread-604882][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:37:42,532 [DEBUG][       Thread-604882][   transport.py][1871] : client lang: <none>
2025-07-01 12:37:42,532 [DEBUG][       Thread-604882][   transport.py][1871] : server lang: <none>
2025-07-01 12:37:42,532 [DEBUG][       Thread-604882][   transport.py][1871] : kex follows: False
2025-07-01 12:37:42,532 [DEBUG][       Thread-604882][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:37:42,532 [DEBUG][       Thread-604882][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:37:42,532 [DEBUG][       Thread-604882][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:37:42,532 [DEBUG][       Thread-604882][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:37:42,532 [DEBUG][       Thread-604882][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:37:42,532 [DEBUG][       Thread-604882][   transport.py][1871] : Compression: none
2025-07-01 12:37:42,532 [DEBUG][       Thread-604882][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:37:42,591 [DEBUG][       Thread-604882][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:37:42,591 [DEBUG][       Thread-604882][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:37:42,592 [DEBUG][       Thread-604882][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:37:42,592 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:37:42,593 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:37:42,647 [DEBUG][       Thread-604882][   transport.py][1871] : userauth is OK
2025-07-01 12:37:42,647 [DEBUG][       Thread-604882][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:37:42,647 [DEBUG][       Thread-604882][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:37:42,647 [DEBUG][       Thread-604882][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:37:42,647 [DEBUG][       Thread-604882][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:37:42,667 [ INFO][       Thread-604882][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:37:42,668 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:37:42,668 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:37:43,691 [DEBUG][       Thread-604882][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:37:43,691 [DEBUG][       Thread-604882][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:37:43,740 [DEBUG][       Thread-604882][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:37:43,740 [DEBUG][       Thread-604882][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:37:43,749 [DEBUG][       Thread-604882][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:37:43,757 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:37:43,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-07-01 12:37:43,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') -> 00000000
2025-07-01 12:37:43,774 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:37:43,774 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:37:43,775 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:37:43,782 [DEBUG][       Thread-604882][   transport.py][1871] : EOF in transport thread
2025-07-01 12:37:47,117 [DEBUG][Thread-604884 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:37:53,784 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:37:53,784 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:37:53,784 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:37:53,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-07-01 12:37:54,287 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 37, 22), 11.12, 46.7, 0.0, 33.91, 12.75, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:37:54,288 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:37:22
2025-07-01 12:37:54,381 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:37:54,387 [DEBUG][       Thread-604885][   transport.py][1871] : starting thread (client mode): 0x75aa560
2025-07-01 12:37:54,387 [DEBUG][       Thread-604885][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:37:54,408 [DEBUG][       Thread-604885][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:37:54,408 [ INFO][       Thread-604885][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:37:54,411 [DEBUG][       Thread-604885][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:37:54,411 [DEBUG][       Thread-604885][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:37:54,411 [DEBUG][       Thread-604885][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:37:54,411 [DEBUG][       Thread-604885][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:37:54,411 [DEBUG][       Thread-604885][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:37:54,411 [DEBUG][       Thread-604885][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:37:54,411 [DEBUG][       Thread-604885][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:37:54,411 [DEBUG][       Thread-604885][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:37:54,411 [DEBUG][       Thread-604885][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:37:54,411 [DEBUG][       Thread-604885][   transport.py][1871] : client lang: <none>
2025-07-01 12:37:54,411 [DEBUG][       Thread-604885][   transport.py][1871] : server lang: <none>
2025-07-01 12:37:54,411 [DEBUG][       Thread-604885][   transport.py][1871] : kex follows: False
2025-07-01 12:37:54,411 [DEBUG][       Thread-604885][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:37:54,411 [DEBUG][       Thread-604885][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:37:54,411 [DEBUG][       Thread-604885][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:37:54,411 [DEBUG][       Thread-604885][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:37:54,412 [DEBUG][       Thread-604885][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:37:54,412 [DEBUG][       Thread-604885][   transport.py][1871] : Compression: none
2025-07-01 12:37:54,412 [DEBUG][       Thread-604885][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:37:54,420 [DEBUG][       Thread-604885][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:37:54,420 [DEBUG][       Thread-604885][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:37:54,420 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:37:54,420 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:37:54,420 [DEBUG][       Thread-604885][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:37:54,421 [DEBUG][       Thread-604885][   transport.py][1871] : userauth is OK
2025-07-01 12:37:54,433 [ INFO][       Thread-604885][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:37:54,434 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:37:55,085 [DEBUG][       Thread-604885][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:37:55,085 [DEBUG][       Thread-604885][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:37:55,128 [DEBUG][       Thread-604885][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:37:55,128 [DEBUG][       Thread-604885][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:37:55,131 [DEBUG][       Thread-604885][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:37:55,143 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:37:55,143 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:37:55,144 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:37:55,145 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:37:55,148 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:37:55,149 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:37:55,149 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:37:55,150 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:37:55,150 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.442651 -999.00  +12.60  35.95     51   +3.00 1 1 2 1 1   888    0 11.25 70.91 ----- 36.0 36.0 33.6 49.8 15.9 -24.7 15.0 -24.1 14.8 -22.8 15.7 -22.5
2025-07-01 12:37:55,150 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:37:55,150 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:37:55,150 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.442651
2025-07-01 12:37:55,150 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:37:55,150 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:37:55,150 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:37:55,150 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:37:55,150 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:37:55,150 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:37:22', tmtdew=11.12, humidity=46.7, cloud=0.0, wind=33.91, temperature=12.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:37:25.046', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:37:55,151 [DEBUG][       Thread-604885][   transport.py][1871] : EOF in transport thread
2025-07-01 12:37:55,229 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:37:55,240 [DEBUG][       Thread-604888][   transport.py][1871] : starting thread (client mode): 0x8393910
2025-07-01 12:37:55,240 [DEBUG][       Thread-604888][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:37:55,255 [DEBUG][       Thread-604888][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:37:55,255 [ INFO][       Thread-604888][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:37:55,263 [DEBUG][       Thread-604888][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:37:55,263 [DEBUG][       Thread-604888][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:37:55,263 [DEBUG][       Thread-604888][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:37:55,263 [DEBUG][       Thread-604888][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:37:55,263 [DEBUG][       Thread-604888][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:37:55,263 [DEBUG][       Thread-604888][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:37:55,263 [DEBUG][       Thread-604888][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:37:55,263 [DEBUG][       Thread-604888][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:37:55,263 [DEBUG][       Thread-604888][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:37:55,263 [DEBUG][       Thread-604888][   transport.py][1871] : client lang: <none>
2025-07-01 12:37:55,263 [DEBUG][       Thread-604888][   transport.py][1871] : server lang: <none>
2025-07-01 12:37:55,263 [DEBUG][       Thread-604888][   transport.py][1871] : kex follows: False
2025-07-01 12:37:55,263 [DEBUG][       Thread-604888][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:37:55,263 [DEBUG][       Thread-604888][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:37:55,263 [DEBUG][       Thread-604888][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:37:55,263 [DEBUG][       Thread-604888][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:37:55,263 [DEBUG][       Thread-604888][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:37:55,263 [DEBUG][       Thread-604888][   transport.py][1871] : Compression: none
2025-07-01 12:37:55,263 [DEBUG][       Thread-604888][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:37:55,323 [DEBUG][       Thread-604888][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:37:55,323 [DEBUG][       Thread-604888][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:37:55,323 [DEBUG][       Thread-604888][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:37:55,323 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:37:55,323 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:37:55,379 [DEBUG][       Thread-604888][   transport.py][1871] : userauth is OK
2025-07-01 12:37:55,379 [DEBUG][       Thread-604888][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:37:55,379 [DEBUG][       Thread-604888][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:37:55,379 [DEBUG][       Thread-604888][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:37:55,379 [DEBUG][       Thread-604888][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:37:55,393 [ INFO][       Thread-604888][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:37:55,393 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:37:55,393 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:37:56,134 [DEBUG][Thread-604890 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:37:56,385 [DEBUG][       Thread-604888][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:37:56,385 [DEBUG][       Thread-604888][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:37:56,435 [DEBUG][       Thread-604888][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:37:56,435 [DEBUG][       Thread-604888][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:37:56,444 [DEBUG][       Thread-604888][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:37:56,452 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:37:56,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-07-01 12:37:56,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-07-01 12:37:56,468 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:37:56,468 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:37:56,469 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:37:56,476 [DEBUG][       Thread-604888][   transport.py][1871] : EOF in transport thread
2025-07-01 12:38:05,154 [DEBUG][Thread-604891 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:38:06,479 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:38:06,479 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:38:06,479 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:38: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-07-01 12:38:06,960 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 37, 54), 11.1, 46.76, 0.0, 32.32, 12.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:38:06,960 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:37:54
2025-07-01 12:38:07,046 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:38:07,050 [DEBUG][       Thread-604892][   transport.py][1871] : starting thread (client mode): 0x81071f0
2025-07-01 12:38:07,050 [DEBUG][       Thread-604892][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:38:07,071 [DEBUG][       Thread-604892][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:38:07,071 [ INFO][       Thread-604892][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:38:07,074 [DEBUG][       Thread-604892][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:38:07,074 [DEBUG][       Thread-604892][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:38:07,074 [DEBUG][       Thread-604892][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:38:07,074 [DEBUG][       Thread-604892][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:38:07,074 [DEBUG][       Thread-604892][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:38:07,074 [DEBUG][       Thread-604892][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:38:07,074 [DEBUG][       Thread-604892][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:38:07,074 [DEBUG][       Thread-604892][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:38:07,074 [DEBUG][       Thread-604892][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:38:07,074 [DEBUG][       Thread-604892][   transport.py][1871] : client lang: <none>
2025-07-01 12:38:07,074 [DEBUG][       Thread-604892][   transport.py][1871] : server lang: <none>
2025-07-01 12:38:07,074 [DEBUG][       Thread-604892][   transport.py][1871] : kex follows: False
2025-07-01 12:38:07,075 [DEBUG][       Thread-604892][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:38:07,075 [DEBUG][       Thread-604892][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:38:07,075 [DEBUG][       Thread-604892][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:38:07,075 [DEBUG][       Thread-604892][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:38:07,075 [DEBUG][       Thread-604892][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:38:07,075 [DEBUG][       Thread-604892][   transport.py][1871] : Compression: none
2025-07-01 12:38:07,075 [DEBUG][       Thread-604892][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:38:07,091 [DEBUG][       Thread-604892][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:38:07,092 [DEBUG][       Thread-604892][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:38:07,092 [DEBUG][       Thread-604892][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:38:07,092 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:38:07,093 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:38:07,094 [DEBUG][       Thread-604892][   transport.py][1871] : userauth is OK
2025-07-01 12:38:07,118 [ INFO][       Thread-604892][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:38:07,118 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:38:07,724 [DEBUG][       Thread-604892][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:38:07,724 [DEBUG][       Thread-604892][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:38:07,765 [DEBUG][       Thread-604892][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:38:07,765 [DEBUG][       Thread-604892][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:38:07,768 [DEBUG][       Thread-604892][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:38:07,781 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:38:07,782 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:38:07,783 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:38:07,786 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:38:07,792 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:38:07,793 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:38:07,794 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:38:07,794 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:38:07,794 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.442651 -999.00  +12.60  35.95     51   +3.00 1 1 2 1 1   888    0 11.25 70.91 ----- 36.0 36.0 33.6 49.8 15.9 -24.7 15.0 -24.1 14.8 -22.8 15.7 -22.5
2025-07-01 12:38:07,795 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:38:07,795 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:38:07,795 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.442651
2025-07-01 12:38:07,795 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:38:07,796 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:38:07,796 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:38:07,796 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:38:07,796 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:38:07,796 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:37:54', tmtdew=11.1, humidity=46.76, cloud=0.0, wind=32.32, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:37:25.046', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:38:07,796 [DEBUG][       Thread-604892][   transport.py][1871] : EOF in transport thread
2025-07-01 12:38:07,880 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:38:07,889 [DEBUG][       Thread-604895][   transport.py][1871] : starting thread (client mode): 0x83c8190
2025-07-01 12:38:07,889 [DEBUG][       Thread-604895][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:38:07,905 [DEBUG][       Thread-604895][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:38:07,905 [ INFO][       Thread-604895][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:38:07,912 [DEBUG][       Thread-604895][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:38:07,912 [DEBUG][       Thread-604895][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:38:07,912 [DEBUG][       Thread-604895][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:38:07,912 [DEBUG][       Thread-604895][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:38:07,912 [DEBUG][       Thread-604895][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:38:07,912 [DEBUG][       Thread-604895][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:38:07,912 [DEBUG][       Thread-604895][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:38:07,912 [DEBUG][       Thread-604895][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:38:07,912 [DEBUG][       Thread-604895][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:38:07,912 [DEBUG][       Thread-604895][   transport.py][1871] : client lang: <none>
2025-07-01 12:38:07,912 [DEBUG][       Thread-604895][   transport.py][1871] : server lang: <none>
2025-07-01 12:38:07,912 [DEBUG][       Thread-604895][   transport.py][1871] : kex follows: False
2025-07-01 12:38:07,912 [DEBUG][       Thread-604895][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:38:07,912 [DEBUG][       Thread-604895][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:38:07,912 [DEBUG][       Thread-604895][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:38:07,912 [DEBUG][       Thread-604895][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:38:07,912 [DEBUG][       Thread-604895][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:38:07,912 [DEBUG][       Thread-604895][   transport.py][1871] : Compression: none
2025-07-01 12:38:07,912 [DEBUG][       Thread-604895][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:38:07,969 [DEBUG][       Thread-604895][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:38:07,969 [DEBUG][       Thread-604895][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:38:07,969 [DEBUG][       Thread-604895][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:38:07,969 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:38:07,969 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:38:08,026 [DEBUG][       Thread-604895][   transport.py][1871] : userauth is OK
2025-07-01 12:38:08,026 [DEBUG][       Thread-604895][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:38:08,026 [DEBUG][       Thread-604895][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:38:08,026 [DEBUG][       Thread-604895][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:38:08,026 [DEBUG][       Thread-604895][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:38:08,040 [ INFO][       Thread-604895][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:38:08,041 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:38:08,041 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:38:09,081 [DEBUG][       Thread-604895][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:38:09,081 [DEBUG][       Thread-604895][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:38:09,131 [DEBUG][       Thread-604895][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:38:09,132 [DEBUG][       Thread-604895][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:38:09,141 [DEBUG][       Thread-604895][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:38:09,149 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:38:09,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-07-01 12:38:09,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-07-01 12:38:09,167 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:38:09,167 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:38:09,167 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:38:09,175 [DEBUG][       Thread-604895][   transport.py][1871] : EOF in transport thread
2025-07-01 12:38:14,175 [DEBUG][Thread-604897 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:38:17,491 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:38:17,492 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:38:19,175 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:38:19,175 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:38:19,176 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:38:19,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-07-01 12:38:19,660 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 37, 54), 11.1, 46.76, 0.0, 32.32, 12.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:38:19,660 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:37:54
2025-07-01 12:38:19,746 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:38:19,752 [DEBUG][       Thread-604898][   transport.py][1871] : starting thread (client mode): 0x818dff0
2025-07-01 12:38:19,752 [DEBUG][       Thread-604898][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:38:19,773 [DEBUG][       Thread-604898][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:38:19,773 [ INFO][       Thread-604898][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:38:19,777 [DEBUG][       Thread-604898][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:38:19,777 [DEBUG][       Thread-604898][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:38:19,777 [DEBUG][       Thread-604898][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:38:19,777 [DEBUG][       Thread-604898][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:38:19,777 [DEBUG][       Thread-604898][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:38:19,777 [DEBUG][       Thread-604898][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:38:19,777 [DEBUG][       Thread-604898][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:38:19,777 [DEBUG][       Thread-604898][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:38:19,777 [DEBUG][       Thread-604898][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:38:19,777 [DEBUG][       Thread-604898][   transport.py][1871] : client lang: <none>
2025-07-01 12:38:19,777 [DEBUG][       Thread-604898][   transport.py][1871] : server lang: <none>
2025-07-01 12:38:19,777 [DEBUG][       Thread-604898][   transport.py][1871] : kex follows: False
2025-07-01 12:38:19,777 [DEBUG][       Thread-604898][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:38:19,777 [DEBUG][       Thread-604898][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:38:19,777 [DEBUG][       Thread-604898][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:38:19,777 [DEBUG][       Thread-604898][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:38:19,777 [DEBUG][       Thread-604898][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:38:19,778 [DEBUG][       Thread-604898][   transport.py][1871] : Compression: none
2025-07-01 12:38:19,778 [DEBUG][       Thread-604898][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:38:19,789 [DEBUG][       Thread-604898][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:38:19,790 [DEBUG][       Thread-604898][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:38:19,790 [DEBUG][       Thread-604898][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:38:19,791 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:38:19,791 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:38:19,792 [DEBUG][       Thread-604898][   transport.py][1871] : userauth is OK
2025-07-01 12:38:19,805 [ INFO][       Thread-604898][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:38:19,805 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:38:20,449 [DEBUG][       Thread-604898][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:38:20,449 [DEBUG][       Thread-604898][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:38:20,493 [DEBUG][       Thread-604898][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:38:20,493 [DEBUG][       Thread-604898][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:38:20,495 [DEBUG][       Thread-604898][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:38:20,507 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:38:20,507 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:38:20,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:38:20,510 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:38:20,515 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:38:20,516 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:38:20,516 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:38:20,517 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:38:20,517 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.442651 -999.00  +12.60  35.95     51   +3.00 1 1 2 1 1   888    0 11.25 70.91 ----- 36.0 36.0 33.6 49.8 15.9 -24.7 15.0 -24.1 14.8 -22.8 15.7 -22.5
2025-07-01 12:38:20,517 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:38:20,517 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:38:20,517 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.442651
2025-07-01 12:38:20,518 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:38:20,518 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:38:20,518 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:38:20,518 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:38:20,518 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:38:20,519 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:37:54', tmtdew=11.1, humidity=46.76, cloud=0.0, wind=32.32, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:37:25.046', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:38:20,519 [DEBUG][       Thread-604898][   transport.py][1871] : EOF in transport thread
2025-07-01 12:38:20,602 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:38:20,613 [DEBUG][       Thread-604901][   transport.py][1871] : starting thread (client mode): 0x82b1fc0
2025-07-01 12:38:20,613 [DEBUG][       Thread-604901][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:38:20,628 [DEBUG][       Thread-604901][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:38:20,628 [ INFO][       Thread-604901][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:38:20,636 [DEBUG][       Thread-604901][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:38:20,636 [DEBUG][       Thread-604901][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:38:20,636 [DEBUG][       Thread-604901][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:38:20,636 [DEBUG][       Thread-604901][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:38:20,636 [DEBUG][       Thread-604901][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:38:20,636 [DEBUG][       Thread-604901][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:38:20,636 [DEBUG][       Thread-604901][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:38:20,636 [DEBUG][       Thread-604901][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:38:20,636 [DEBUG][       Thread-604901][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:38:20,636 [DEBUG][       Thread-604901][   transport.py][1871] : client lang: <none>
2025-07-01 12:38:20,636 [DEBUG][       Thread-604901][   transport.py][1871] : server lang: <none>
2025-07-01 12:38:20,636 [DEBUG][       Thread-604901][   transport.py][1871] : kex follows: False
2025-07-01 12:38:20,636 [DEBUG][       Thread-604901][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:38:20,637 [DEBUG][       Thread-604901][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:38:20,637 [DEBUG][       Thread-604901][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:38:20,637 [DEBUG][       Thread-604901][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:38:20,637 [DEBUG][       Thread-604901][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:38:20,637 [DEBUG][       Thread-604901][   transport.py][1871] : Compression: none
2025-07-01 12:38:20,637 [DEBUG][       Thread-604901][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:38:20,695 [DEBUG][       Thread-604901][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:38:20,695 [DEBUG][       Thread-604901][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:38:20,696 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:38:20,697 [DEBUG][       Thread-604901][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:38:20,697 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:38:20,751 [DEBUG][       Thread-604901][   transport.py][1871] : userauth is OK
2025-07-01 12:38:20,751 [DEBUG][       Thread-604901][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:38:20,751 [DEBUG][       Thread-604901][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:38:20,752 [DEBUG][       Thread-604901][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:38:20,752 [DEBUG][       Thread-604901][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:38:20,770 [ INFO][       Thread-604901][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:38:20,771 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:38:20,771 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:38:21,772 [DEBUG][       Thread-604901][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:38:21,772 [DEBUG][       Thread-604901][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:38:21,820 [DEBUG][       Thread-604901][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:38:21,820 [DEBUG][       Thread-604901][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:38:21,830 [DEBUG][       Thread-604901][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:38:21,839 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:38:21,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-07-01 12:38:21,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-07-01 12:38:21,857 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:38:21,857 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:38:21,858 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:38:21,867 [DEBUG][       Thread-604901][   transport.py][1871] : EOF in transport thread
2025-07-01 12:38:23,203 [DEBUG][Thread-604903 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:38:29,720 [DEBUG][Thread-604904 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:38:31,868 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:38:31,868 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:38:31,869 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:38:31,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-07-01 12:38:32,222 [DEBUG][Thread-604905 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:38:32,344 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 38, 26), 11.2, 46.32, 0.0, 33.84, 12.62, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:38:32,344 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:38:26
2025-07-01 12:38:32,431 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:38:32,435 [DEBUG][       Thread-604906][   transport.py][1871] : starting thread (client mode): 0x82b15d0
2025-07-01 12:38:32,435 [DEBUG][       Thread-604906][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:38:32,456 [DEBUG][       Thread-604906][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:38:32,456 [ INFO][       Thread-604906][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:38:32,460 [DEBUG][       Thread-604906][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:38:32,460 [DEBUG][       Thread-604906][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:38:32,460 [DEBUG][       Thread-604906][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:38:32,460 [DEBUG][       Thread-604906][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:38:32,460 [DEBUG][       Thread-604906][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:38:32,460 [DEBUG][       Thread-604906][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:38:32,460 [DEBUG][       Thread-604906][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:38:32,460 [DEBUG][       Thread-604906][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:38:32,460 [DEBUG][       Thread-604906][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:38:32,460 [DEBUG][       Thread-604906][   transport.py][1871] : client lang: <none>
2025-07-01 12:38:32,460 [DEBUG][       Thread-604906][   transport.py][1871] : server lang: <none>
2025-07-01 12:38:32,460 [DEBUG][       Thread-604906][   transport.py][1871] : kex follows: False
2025-07-01 12:38:32,460 [DEBUG][       Thread-604906][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:38:32,460 [DEBUG][       Thread-604906][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:38:32,460 [DEBUG][       Thread-604906][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:38:32,460 [DEBUG][       Thread-604906][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:38:32,460 [DEBUG][       Thread-604906][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:38:32,461 [DEBUG][       Thread-604906][   transport.py][1871] : Compression: none
2025-07-01 12:38:32,461 [DEBUG][       Thread-604906][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:38:32,476 [DEBUG][       Thread-604906][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:38:32,476 [DEBUG][       Thread-604906][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:38:32,477 [DEBUG][       Thread-604906][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:38:32,477 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:38:32,477 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:38:32,478 [DEBUG][       Thread-604906][   transport.py][1871] : userauth is OK
2025-07-01 12:38:32,491 [ INFO][       Thread-604906][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:38:32,492 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:38:33,130 [DEBUG][       Thread-604906][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:38:33,130 [DEBUG][       Thread-604906][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:38:33,172 [DEBUG][       Thread-604906][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:38:33,172 [DEBUG][       Thread-604906][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:38:33,175 [DEBUG][       Thread-604906][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:38:33,186 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:38:33,186 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:38:33,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:38:33,188 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:38:33,191 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:38:33,192 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:38:33,192 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:38:33,192 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:38:33,192 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.442999 -999.00  +12.30  41.16     50   +2.50 1 1 2 1 1   888    0 11.57 75.52 ----- 41.2 41.2 42.0 53.3 15.8 -25.6 14.9 -24.8 14.6 -24.2 15.6 -22.9
2025-07-01 12:38:33,192 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:38:33,192 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:38:33,192 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.442999
2025-07-01 12:38:33,192 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:38:33,192 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:38:33,192 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:38:33,193 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:38:33,193 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:38:33,193 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:38:26', tmtdew=11.2, humidity=46.32, cloud=0.0, wind=33.84, temperature=12.62, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:37:55.114', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:38:33,193 [DEBUG][       Thread-604906][   transport.py][1871] : EOF in transport thread
2025-07-01 12:38:33,264 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:38:33,276 [DEBUG][       Thread-604909][   transport.py][1871] : starting thread (client mode): 0x47398550
2025-07-01 12:38:33,276 [DEBUG][       Thread-604909][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:38:33,292 [DEBUG][       Thread-604909][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:38:33,293 [ INFO][       Thread-604909][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:38:33,300 [DEBUG][       Thread-604909][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:38:33,300 [DEBUG][       Thread-604909][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:38:33,300 [DEBUG][       Thread-604909][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:38:33,300 [DEBUG][       Thread-604909][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:38:33,300 [DEBUG][       Thread-604909][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:38:33,300 [DEBUG][       Thread-604909][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:38:33,300 [DEBUG][       Thread-604909][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:38:33,300 [DEBUG][       Thread-604909][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:38:33,300 [DEBUG][       Thread-604909][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:38:33,300 [DEBUG][       Thread-604909][   transport.py][1871] : client lang: <none>
2025-07-01 12:38:33,300 [DEBUG][       Thread-604909][   transport.py][1871] : server lang: <none>
2025-07-01 12:38:33,300 [DEBUG][       Thread-604909][   transport.py][1871] : kex follows: False
2025-07-01 12:38:33,300 [DEBUG][       Thread-604909][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:38:33,300 [DEBUG][       Thread-604909][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:38:33,300 [DEBUG][       Thread-604909][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:38:33,300 [DEBUG][       Thread-604909][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:38:33,300 [DEBUG][       Thread-604909][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:38:33,300 [DEBUG][       Thread-604909][   transport.py][1871] : Compression: none
2025-07-01 12:38:33,300 [DEBUG][       Thread-604909][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:38:33,358 [DEBUG][       Thread-604909][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:38:33,358 [DEBUG][       Thread-604909][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:38:33,358 [DEBUG][       Thread-604909][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:38:33,358 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:38:33,358 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:38:33,415 [DEBUG][       Thread-604909][   transport.py][1871] : userauth is OK
2025-07-01 12:38:33,415 [DEBUG][       Thread-604909][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:38:33,415 [DEBUG][       Thread-604909][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:38:33,415 [DEBUG][       Thread-604909][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:38:33,415 [DEBUG][       Thread-604909][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:38:33,429 [ INFO][       Thread-604909][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:38:33,430 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:38:33,430 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:38:34,454 [DEBUG][       Thread-604909][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:38:34,454 [DEBUG][       Thread-604909][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:38:34,503 [DEBUG][       Thread-604909][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:38:34,503 [DEBUG][       Thread-604909][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:38:34,512 [DEBUG][       Thread-604909][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:38:34,520 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:38:34,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-07-01 12:38:34,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-07-01 12:38:34,535 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:38:34,536 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:38:34,536 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:38:34,543 [DEBUG][       Thread-604909][   transport.py][1871] : EOF in transport thread
2025-07-01 12:38:41,240 [DEBUG][Thread-604911 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:38:44,546 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:38:44,546 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:38:44,546 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:38:44,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-07-01 12:38:45,030 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 38, 26), 11.2, 46.32, 0.0, 33.84, 12.62, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:38:45,030 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:38:26
2025-07-01 12:38:45,117 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:38:45,121 [DEBUG][       Thread-604912][   transport.py][1871] : starting thread (client mode): 0x75a8490
2025-07-01 12:38:45,121 [DEBUG][       Thread-604912][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:38:45,142 [DEBUG][       Thread-604912][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:38:45,142 [ INFO][       Thread-604912][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:38:45,145 [DEBUG][       Thread-604912][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:38:45,145 [DEBUG][       Thread-604912][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:38:45,145 [DEBUG][       Thread-604912][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:38:45,145 [DEBUG][       Thread-604912][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:38:45,145 [DEBUG][       Thread-604912][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:38:45,146 [DEBUG][       Thread-604912][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:38:45,146 [DEBUG][       Thread-604912][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:38:45,146 [DEBUG][       Thread-604912][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:38:45,146 [DEBUG][       Thread-604912][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:38:45,146 [DEBUG][       Thread-604912][   transport.py][1871] : client lang: <none>
2025-07-01 12:38:45,146 [DEBUG][       Thread-604912][   transport.py][1871] : server lang: <none>
2025-07-01 12:38:45,146 [DEBUG][       Thread-604912][   transport.py][1871] : kex follows: False
2025-07-01 12:38:45,146 [DEBUG][       Thread-604912][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:38:45,146 [DEBUG][       Thread-604912][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:38:45,146 [DEBUG][       Thread-604912][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:38:45,146 [DEBUG][       Thread-604912][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:38:45,146 [DEBUG][       Thread-604912][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:38:45,146 [DEBUG][       Thread-604912][   transport.py][1871] : Compression: none
2025-07-01 12:38:45,146 [DEBUG][       Thread-604912][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:38:45,164 [DEBUG][       Thread-604912][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:38:45,164 [DEBUG][       Thread-604912][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:38:45,165 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:38:45,165 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:38:45,165 [DEBUG][       Thread-604912][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:38:45,166 [DEBUG][       Thread-604912][   transport.py][1871] : userauth is OK
2025-07-01 12:38:45,191 [ INFO][       Thread-604912][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:38:45,192 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:38:45,856 [DEBUG][       Thread-604912][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:38:45,856 [DEBUG][       Thread-604912][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:38:45,897 [DEBUG][       Thread-604912][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:38:45,897 [DEBUG][       Thread-604912][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:38:45,901 [DEBUG][       Thread-604912][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:38:45,914 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:38:45,915 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:38:45,917 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:38:45,918 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:38:45,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:38:45,926 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:38:45,926 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:38:45,927 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:38:45,927 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.442999 -999.00  +12.30  41.16     50   +2.50 1 1 2 1 1   888    0 11.57 75.52 ----- 41.2 41.2 42.0 53.3 15.8 -25.6 14.9 -24.8 14.6 -24.2 15.6 -22.9
2025-07-01 12:38:45,927 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:38:45,927 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:38:45,928 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.442999
2025-07-01 12:38:45,928 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:38:45,929 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:38:45,929 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:38:45,929 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:38:45,929 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:38:45,929 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:38:26', tmtdew=11.2, humidity=46.32, cloud=0.0, wind=33.84, temperature=12.62, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:37:55.114', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:38:45,929 [DEBUG][       Thread-604912][   transport.py][1871] : EOF in transport thread
2025-07-01 12:38:46,013 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:38:46,023 [DEBUG][       Thread-604915][   transport.py][1871] : starting thread (client mode): 0x81064d0
2025-07-01 12:38:46,023 [DEBUG][       Thread-604915][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:38:46,038 [DEBUG][       Thread-604915][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:38:46,038 [ INFO][       Thread-604915][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:38:46,046 [DEBUG][       Thread-604915][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:38:46,046 [DEBUG][       Thread-604915][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:38:46,046 [DEBUG][       Thread-604915][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:38:46,046 [DEBUG][       Thread-604915][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:38:46,046 [DEBUG][       Thread-604915][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:38:46,046 [DEBUG][       Thread-604915][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:38:46,046 [DEBUG][       Thread-604915][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:38:46,046 [DEBUG][       Thread-604915][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:38:46,046 [DEBUG][       Thread-604915][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:38:46,046 [DEBUG][       Thread-604915][   transport.py][1871] : client lang: <none>
2025-07-01 12:38:46,046 [DEBUG][       Thread-604915][   transport.py][1871] : server lang: <none>
2025-07-01 12:38:46,046 [DEBUG][       Thread-604915][   transport.py][1871] : kex follows: False
2025-07-01 12:38:46,046 [DEBUG][       Thread-604915][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:38:46,046 [DEBUG][       Thread-604915][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:38:46,047 [DEBUG][       Thread-604915][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:38:46,047 [DEBUG][       Thread-604915][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:38:46,047 [DEBUG][       Thread-604915][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:38:46,047 [DEBUG][       Thread-604915][   transport.py][1871] : Compression: none
2025-07-01 12:38:46,047 [DEBUG][       Thread-604915][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:38:46,106 [DEBUG][       Thread-604915][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:38:46,106 [DEBUG][       Thread-604915][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:38:46,107 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:38:46,108 [DEBUG][       Thread-604915][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:38:46,108 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:38:46,169 [DEBUG][       Thread-604915][   transport.py][1871] : userauth is OK
2025-07-01 12:38:46,169 [DEBUG][       Thread-604915][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:38:46,170 [DEBUG][       Thread-604915][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:38:46,170 [DEBUG][       Thread-604915][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:38:46,170 [DEBUG][       Thread-604915][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:38:46,189 [ INFO][       Thread-604915][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:38:46,189 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:38:46,189 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:38:47,238 [DEBUG][       Thread-604915][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:38:47,238 [DEBUG][       Thread-604915][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:38:47,288 [DEBUG][       Thread-604915][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:38:47,288 [DEBUG][       Thread-604915][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:38:47,297 [DEBUG][       Thread-604915][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:38:47,307 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:38: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-07-01 12:38: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-07-01 12:38:47,331 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:38:47,331 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:38:47,332 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:38:47,340 [DEBUG][       Thread-604915][   transport.py][1871] : EOF in transport thread
2025-07-01 12:38:50,274 [DEBUG][Thread-604917 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:38:57,342 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:38:57,342 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:38:57,342 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:38:57,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-07-01 12:38:57,821 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 38, 26), 11.2, 46.32, 0.0, 33.84, 12.62, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:38:57,821 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:38:26
2025-07-01 12:38:57,907 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:38:57,911 [DEBUG][       Thread-604918][   transport.py][1871] : starting thread (client mode): 0x75aa470
2025-07-01 12:38:57,911 [DEBUG][       Thread-604918][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:38:57,925 [DEBUG][       Thread-604918][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:38:57,925 [ INFO][       Thread-604918][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:38:57,926 [DEBUG][       Thread-604918][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:38:57,926 [DEBUG][       Thread-604918][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:38:57,926 [DEBUG][       Thread-604918][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:38:57,926 [DEBUG][       Thread-604918][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:38:57,927 [DEBUG][       Thread-604918][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:38:57,927 [DEBUG][       Thread-604918][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:38:57,927 [DEBUG][       Thread-604918][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:38:57,927 [DEBUG][       Thread-604918][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:38:57,927 [DEBUG][       Thread-604918][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:38:57,927 [DEBUG][       Thread-604918][   transport.py][1871] : client lang: <none>
2025-07-01 12:38:57,927 [DEBUG][       Thread-604918][   transport.py][1871] : server lang: <none>
2025-07-01 12:38:57,927 [DEBUG][       Thread-604918][   transport.py][1871] : kex follows: False
2025-07-01 12:38:57,927 [DEBUG][       Thread-604918][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:38:57,927 [DEBUG][       Thread-604918][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:38:57,927 [DEBUG][       Thread-604918][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:38:57,927 [DEBUG][       Thread-604918][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:38:57,927 [DEBUG][       Thread-604918][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:38:57,927 [DEBUG][       Thread-604918][   transport.py][1871] : Compression: none
2025-07-01 12:38:57,927 [DEBUG][       Thread-604918][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:38:57,934 [DEBUG][       Thread-604918][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:38:57,934 [DEBUG][       Thread-604918][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:38:57,934 [DEBUG][       Thread-604918][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:38:57,935 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:38:57,935 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:38:57,935 [DEBUG][       Thread-604918][   transport.py][1871] : userauth is OK
2025-07-01 12:38:57,960 [ INFO][       Thread-604918][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:38:57,960 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:38:58,611 [DEBUG][       Thread-604918][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:38:58,611 [DEBUG][       Thread-604918][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:38:58,652 [DEBUG][       Thread-604918][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:38:58,652 [DEBUG][       Thread-604918][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:38:58,654 [DEBUG][       Thread-604918][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:38:58,667 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:38:58,667 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:38:58,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:38:58,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:38:58,671 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:38:58,671 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:38:58,671 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:38:58,671 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:38:58,671 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.443346 -999.00  +12.40  49.28     52   +2.80 1 1 2 1 1   888    0 11.50 68.60 ----- 49.3 49.3 46.6 52.7 15.7 -25.2 14.9 -26.1 14.7 -24.1 15.6 -23.1
2025-07-01 12:38:58,671 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:38:58,671 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:38:58,671 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.443346
2025-07-01 12:38:58,672 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:38:58,672 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:38:58,672 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:38:58,672 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:38:58,672 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:38:58,672 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:38:26', tmtdew=11.2, humidity=46.32, cloud=0.0, wind=33.84, temperature=12.62, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:38:25.094', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:38:58,672 [DEBUG][       Thread-604918][   transport.py][1871] : EOF in transport thread
2025-07-01 12:38:58,746 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:38:58,758 [DEBUG][       Thread-604921][   transport.py][1871] : starting thread (client mode): 0x83c84f0
2025-07-01 12:38:58,758 [DEBUG][       Thread-604921][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:38:58,772 [DEBUG][       Thread-604921][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:38:58,772 [ INFO][       Thread-604921][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:38:58,780 [DEBUG][       Thread-604921][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:38:58,780 [DEBUG][       Thread-604921][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:38:58,780 [DEBUG][       Thread-604921][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:38:58,780 [DEBUG][       Thread-604921][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:38:58,780 [DEBUG][       Thread-604921][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:38:58,780 [DEBUG][       Thread-604921][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:38:58,780 [DEBUG][       Thread-604921][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:38:58,781 [DEBUG][       Thread-604921][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:38:58,781 [DEBUG][       Thread-604921][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:38:58,781 [DEBUG][       Thread-604921][   transport.py][1871] : client lang: <none>
2025-07-01 12:38:58,781 [DEBUG][       Thread-604921][   transport.py][1871] : server lang: <none>
2025-07-01 12:38:58,781 [DEBUG][       Thread-604921][   transport.py][1871] : kex follows: False
2025-07-01 12:38:58,781 [DEBUG][       Thread-604921][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:38:58,781 [DEBUG][       Thread-604921][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:38:58,781 [DEBUG][       Thread-604921][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:38:58,781 [DEBUG][       Thread-604921][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:38:58,781 [DEBUG][       Thread-604921][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:38:58,781 [DEBUG][       Thread-604921][   transport.py][1871] : Compression: none
2025-07-01 12:38:58,781 [DEBUG][       Thread-604921][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:38:58,838 [DEBUG][       Thread-604921][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:38:58,838 [DEBUG][       Thread-604921][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:38:58,838 [DEBUG][       Thread-604921][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:38:58,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:38:58,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:38:58,895 [DEBUG][       Thread-604921][   transport.py][1871] : userauth is OK
2025-07-01 12:38:58,895 [DEBUG][       Thread-604921][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:38:58,895 [DEBUG][       Thread-604921][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:38:58,895 [DEBUG][       Thread-604921][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:38:58,895 [DEBUG][       Thread-604921][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:38:58,909 [ INFO][       Thread-604921][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:38:58,909 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:38:58,910 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:38:59,293 [DEBUG][Thread-604923 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:39:00,032 [DEBUG][       Thread-604921][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:39:00,032 [DEBUG][       Thread-604921][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:39:00,083 [DEBUG][       Thread-604921][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:39:00,083 [DEBUG][       Thread-604921][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:39:00,092 [DEBUG][       Thread-604921][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:39:00,100 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:39:00,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-07-01 12:39:00,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-07-01 12:39:00,115 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:39:00,116 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:39:00,116 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:39:00,124 [DEBUG][       Thread-604921][   transport.py][1871] : EOF in transport thread
2025-07-01 12:39:08,314 [DEBUG][Thread-604924 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:39:10,126 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:39:10,126 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:39:10,126 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:39:10,129 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:39:10,611 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 38, 58), 11.16, 46.44, 0.0, 35.66, 12.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:39:10,611 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:38:58
2025-07-01 12:39:10,697 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:39:10,701 [DEBUG][       Thread-604925][   transport.py][1871] : starting thread (client mode): 0x75a89a0
2025-07-01 12:39:10,701 [DEBUG][       Thread-604925][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:39:10,721 [DEBUG][       Thread-604925][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:39:10,721 [ INFO][       Thread-604925][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:39:10,725 [DEBUG][       Thread-604925][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:39:10,725 [DEBUG][       Thread-604925][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:39:10,725 [DEBUG][       Thread-604925][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:39:10,725 [DEBUG][       Thread-604925][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:39:10,725 [DEBUG][       Thread-604925][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:39:10,725 [DEBUG][       Thread-604925][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:39:10,725 [DEBUG][       Thread-604925][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:39:10,725 [DEBUG][       Thread-604925][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:39:10,725 [DEBUG][       Thread-604925][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:39:10,725 [DEBUG][       Thread-604925][   transport.py][1871] : client lang: <none>
2025-07-01 12:39:10,725 [DEBUG][       Thread-604925][   transport.py][1871] : server lang: <none>
2025-07-01 12:39:10,725 [DEBUG][       Thread-604925][   transport.py][1871] : kex follows: False
2025-07-01 12:39:10,725 [DEBUG][       Thread-604925][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:39:10,725 [DEBUG][       Thread-604925][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:39:10,725 [DEBUG][       Thread-604925][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:39:10,725 [DEBUG][       Thread-604925][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:39:10,725 [DEBUG][       Thread-604925][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:39:10,725 [DEBUG][       Thread-604925][   transport.py][1871] : Compression: none
2025-07-01 12:39:10,725 [DEBUG][       Thread-604925][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:39:10,738 [DEBUG][       Thread-604925][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:39:10,738 [DEBUG][       Thread-604925][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:39:10,739 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:39:10,739 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:39:10,739 [DEBUG][       Thread-604925][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:39:10,740 [DEBUG][       Thread-604925][   transport.py][1871] : userauth is OK
2025-07-01 12:39:10,764 [ INFO][       Thread-604925][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:39:10,765 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:39:11,434 [DEBUG][       Thread-604925][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:39:11,434 [DEBUG][       Thread-604925][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:39:11,476 [DEBUG][       Thread-604925][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:39:11,476 [DEBUG][       Thread-604925][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:39:11,479 [DEBUG][       Thread-604925][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:39:11,491 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:39:11,491 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:39:11,492 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:39:11,493 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:39:11,495 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:39:11,496 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:39:11,496 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:39:11,496 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:39:11,496 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.443346 -999.00  +12.40  49.28     52   +2.80 1 1 2 1 1   888    0 11.50 68.60 ----- 49.3 49.3 46.6 52.7 15.7 -25.2 14.9 -26.1 14.7 -24.1 15.6 -23.1
2025-07-01 12:39:11,496 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:39:11,496 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:39:11,496 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.443346
2025-07-01 12:39:11,496 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:39:11,497 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:39:11,497 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:39:11,497 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:39:11,497 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:39:11,497 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:38:58', tmtdew=11.16, humidity=46.44, cloud=0.0, wind=35.66, temperature=12.65, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:38:25.094', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:39:11,497 [DEBUG][       Thread-604925][   transport.py][1871] : EOF in transport thread
2025-07-01 12:39:11,569 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:39:11,578 [DEBUG][       Thread-604928][   transport.py][1871] : starting thread (client mode): 0x83c8520
2025-07-01 12:39:11,578 [DEBUG][       Thread-604928][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:39:11,593 [DEBUG][       Thread-604928][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:39:11,593 [ INFO][       Thread-604928][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:39:11,600 [DEBUG][       Thread-604928][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:39:11,600 [DEBUG][       Thread-604928][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:39:11,600 [DEBUG][       Thread-604928][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:39:11,601 [DEBUG][       Thread-604928][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:39:11,601 [DEBUG][       Thread-604928][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:39:11,601 [DEBUG][       Thread-604928][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:39:11,601 [DEBUG][       Thread-604928][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:39:11,601 [DEBUG][       Thread-604928][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:39:11,601 [DEBUG][       Thread-604928][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:39:11,601 [DEBUG][       Thread-604928][   transport.py][1871] : client lang: <none>
2025-07-01 12:39:11,601 [DEBUG][       Thread-604928][   transport.py][1871] : server lang: <none>
2025-07-01 12:39:11,601 [DEBUG][       Thread-604928][   transport.py][1871] : kex follows: False
2025-07-01 12:39:11,601 [DEBUG][       Thread-604928][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:39:11,601 [DEBUG][       Thread-604928][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:39:11,601 [DEBUG][       Thread-604928][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:39:11,601 [DEBUG][       Thread-604928][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:39:11,601 [DEBUG][       Thread-604928][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:39:11,601 [DEBUG][       Thread-604928][   transport.py][1871] : Compression: none
2025-07-01 12:39:11,601 [DEBUG][       Thread-604928][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:39:11,658 [DEBUG][       Thread-604928][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:39:11,658 [DEBUG][       Thread-604928][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:39:11,659 [DEBUG][       Thread-604928][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:39:11,659 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:39:11,659 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:39:11,716 [DEBUG][       Thread-604928][   transport.py][1871] : userauth is OK
2025-07-01 12:39:11,716 [DEBUG][       Thread-604928][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:39:11,716 [DEBUG][       Thread-604928][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:39:11,716 [DEBUG][       Thread-604928][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:39:11,716 [DEBUG][       Thread-604928][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:39:11,730 [ INFO][       Thread-604928][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:39:11,730 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:39:11,730 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:39:12,804 [DEBUG][       Thread-604928][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:39:12,804 [DEBUG][       Thread-604928][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:39:12,855 [DEBUG][       Thread-604928][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:39:12,855 [DEBUG][       Thread-604928][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:39:12,864 [DEBUG][       Thread-604928][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:39:12,872 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:39:12,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')
2025-07-01 12:39:12,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-07-01 12:39:12,888 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:39:12,888 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:39:12,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:39:12,895 [DEBUG][       Thread-604928][   transport.py][1871] : EOF in transport thread
2025-07-01 12:39:17,333 [DEBUG][Thread-604930 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:39:17,631 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:39:17,632 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:39:22,898 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:39:22,898 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:39:22,898 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:39:22,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-07-01 12:39:23,368 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 38, 58), 11.16, 46.44, 0.0, 35.66, 12.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:39:23,368 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:38:58
2025-07-01 12:39:23,454 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:39:23,460 [DEBUG][       Thread-604931][   transport.py][1871] : starting thread (client mode): 0x8104910
2025-07-01 12:39:23,460 [DEBUG][       Thread-604931][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:39:23,481 [DEBUG][       Thread-604931][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:39:23,482 [ INFO][       Thread-604931][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:39:23,483 [DEBUG][       Thread-604931][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:39:23,483 [DEBUG][       Thread-604931][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:39:23,483 [DEBUG][       Thread-604931][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:39:23,483 [DEBUG][       Thread-604931][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:39:23,483 [DEBUG][       Thread-604931][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:39:23,483 [DEBUG][       Thread-604931][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:39:23,483 [DEBUG][       Thread-604931][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:39:23,483 [DEBUG][       Thread-604931][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:39:23,483 [DEBUG][       Thread-604931][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:39:23,483 [DEBUG][       Thread-604931][   transport.py][1871] : client lang: <none>
2025-07-01 12:39:23,483 [DEBUG][       Thread-604931][   transport.py][1871] : server lang: <none>
2025-07-01 12:39:23,483 [DEBUG][       Thread-604931][   transport.py][1871] : kex follows: False
2025-07-01 12:39:23,483 [DEBUG][       Thread-604931][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:39:23,483 [DEBUG][       Thread-604931][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:39:23,483 [DEBUG][       Thread-604931][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:39:23,483 [DEBUG][       Thread-604931][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:39:23,484 [DEBUG][       Thread-604931][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:39:23,484 [DEBUG][       Thread-604931][   transport.py][1871] : Compression: none
2025-07-01 12:39:23,484 [DEBUG][       Thread-604931][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:39:23,493 [DEBUG][       Thread-604931][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:39:23,493 [DEBUG][       Thread-604931][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:39:23,494 [DEBUG][       Thread-604931][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:39:23,494 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:39:23,494 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:39:23,495 [DEBUG][       Thread-604931][   transport.py][1871] : userauth is OK
2025-07-01 12:39:23,508 [ INFO][       Thread-604931][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:39:23,509 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:39:24,142 [DEBUG][       Thread-604931][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:39:24,142 [DEBUG][       Thread-604931][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:39:24,185 [DEBUG][       Thread-604931][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:39:24,185 [DEBUG][       Thread-604931][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:39:24,188 [DEBUG][       Thread-604931][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:39:24,201 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:39:24,201 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:39:24,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:39:24,205 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:39:24,210 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:39:24,212 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:39:24,212 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:39:24,213 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:39:24,213 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.443346 -999.00  +12.40  49.28     52   +2.80 1 1 2 1 1   888    0 11.50 68.60 ----- 49.3 49.3 46.6 52.7 15.7 -25.2 14.9 -26.1 14.7 -24.1 15.6 -23.1
2025-07-01 12:39:24,213 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:39:24,213 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:39:24,213 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.443346
2025-07-01 12:39:24,214 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:39:24,214 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:39:24,214 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:39:24,215 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:39:24,215 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:39:24,215 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:38:58', tmtdew=11.16, humidity=46.44, cloud=0.0, wind=35.66, temperature=12.65, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:38:25.094', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:39:24,215 [DEBUG][       Thread-604931][   transport.py][1871] : EOF in transport thread
2025-07-01 12:39:24,298 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:39:24,311 [DEBUG][       Thread-604934][   transport.py][1871] : starting thread (client mode): 0x818ea70
2025-07-01 12:39:24,311 [DEBUG][       Thread-604934][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:39:24,327 [DEBUG][       Thread-604934][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:39:24,327 [ INFO][       Thread-604934][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:39:24,334 [DEBUG][       Thread-604934][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:39:24,334 [DEBUG][       Thread-604934][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:39:24,334 [DEBUG][       Thread-604934][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:39:24,334 [DEBUG][       Thread-604934][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:39:24,334 [DEBUG][       Thread-604934][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:39:24,334 [DEBUG][       Thread-604934][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:39:24,334 [DEBUG][       Thread-604934][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:39:24,334 [DEBUG][       Thread-604934][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:39:24,335 [DEBUG][       Thread-604934][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:39:24,335 [DEBUG][       Thread-604934][   transport.py][1871] : client lang: <none>
2025-07-01 12:39:24,335 [DEBUG][       Thread-604934][   transport.py][1871] : server lang: <none>
2025-07-01 12:39:24,335 [DEBUG][       Thread-604934][   transport.py][1871] : kex follows: False
2025-07-01 12:39:24,335 [DEBUG][       Thread-604934][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:39:24,335 [DEBUG][       Thread-604934][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:39:24,335 [DEBUG][       Thread-604934][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:39:24,335 [DEBUG][       Thread-604934][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:39:24,335 [DEBUG][       Thread-604934][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:39:24,335 [DEBUG][       Thread-604934][   transport.py][1871] : Compression: none
2025-07-01 12:39:24,335 [DEBUG][       Thread-604934][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:39:24,401 [DEBUG][       Thread-604934][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:39:24,401 [DEBUG][       Thread-604934][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:39:24,402 [DEBUG][       Thread-604934][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:39:24,402 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:39:24,403 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:39:24,467 [DEBUG][       Thread-604934][   transport.py][1871] : userauth is OK
2025-07-01 12:39:24,467 [DEBUG][       Thread-604934][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:39:24,467 [DEBUG][       Thread-604934][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:39:24,467 [DEBUG][       Thread-604934][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:39:24,467 [DEBUG][       Thread-604934][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:39:24,488 [ INFO][       Thread-604934][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:39:24,489 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:39:24,489 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:39:25,543 [DEBUG][       Thread-604934][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:39:25,544 [DEBUG][       Thread-604934][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:39:25,592 [DEBUG][       Thread-604934][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:39:25,592 [DEBUG][       Thread-604934][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:39:25,602 [DEBUG][       Thread-604934][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:39:25,610 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:39:25,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-07-01 12:39:25,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-07-01 12:39:25,638 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:39:25,639 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:39:25,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:39:25,647 [DEBUG][       Thread-604934][   transport.py][1871] : EOF in transport thread
2025-07-01 12:39:26,371 [DEBUG][Thread-604936 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:39:29,776 [DEBUG][Thread-604937 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:39:35,392 [DEBUG][Thread-604938 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:39:35,650 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:39:35,650 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:39:35,650 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:39:35,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-07-01 12:39:36,134 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 39, 30), 11.02, 46.91, 0.0, 32.08, 12.55, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:39:36,134 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:39:30
2025-07-01 12:39:36,221 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:39:36,225 [DEBUG][       Thread-604939][   transport.py][1871] : starting thread (client mode): 0x818f6d0
2025-07-01 12:39:36,225 [DEBUG][       Thread-604939][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:39:36,245 [DEBUG][       Thread-604939][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:39:36,245 [ INFO][       Thread-604939][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:39:36,247 [DEBUG][       Thread-604939][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:39:36,247 [DEBUG][       Thread-604939][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:39:36,247 [DEBUG][       Thread-604939][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:39:36,247 [DEBUG][       Thread-604939][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:39:36,247 [DEBUG][       Thread-604939][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:39:36,247 [DEBUG][       Thread-604939][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:39:36,247 [DEBUG][       Thread-604939][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:39:36,247 [DEBUG][       Thread-604939][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:39:36,247 [DEBUG][       Thread-604939][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:39:36,247 [DEBUG][       Thread-604939][   transport.py][1871] : client lang: <none>
2025-07-01 12:39:36,247 [DEBUG][       Thread-604939][   transport.py][1871] : server lang: <none>
2025-07-01 12:39:36,247 [DEBUG][       Thread-604939][   transport.py][1871] : kex follows: False
2025-07-01 12:39:36,247 [DEBUG][       Thread-604939][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:39:36,247 [DEBUG][       Thread-604939][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:39:36,247 [DEBUG][       Thread-604939][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:39:36,247 [DEBUG][       Thread-604939][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:39:36,247 [DEBUG][       Thread-604939][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:39:36,247 [DEBUG][       Thread-604939][   transport.py][1871] : Compression: none
2025-07-01 12:39:36,248 [DEBUG][       Thread-604939][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:39:36,264 [DEBUG][       Thread-604939][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:39:36,265 [DEBUG][       Thread-604939][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:39:36,265 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:39:36,265 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:39:36,266 [DEBUG][       Thread-604939][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:39:36,266 [DEBUG][       Thread-604939][   transport.py][1871] : userauth is OK
2025-07-01 12:39:36,292 [ INFO][       Thread-604939][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:39:36,292 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:39:36,894 [DEBUG][       Thread-604939][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:39:36,894 [DEBUG][       Thread-604939][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:39:36,937 [DEBUG][       Thread-604939][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:39:36,937 [DEBUG][       Thread-604939][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:39:36,940 [DEBUG][       Thread-604939][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:39:36,954 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:39:36,954 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:39:36,956 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:39:36,958 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:39:36,963 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:39:36,964 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:39:36,965 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:39:36,965 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:39:36,965 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.444040 -999.00  +12.20  31.85     52   +2.70 1 1 2 1 1   888    0 11.16 63.68 ----- 31.9 31.9 10.5 43.6 15.4 -25.1 14.7 -25.0 14.5 -24.0 15.1 -23.7
2025-07-01 12:39:36,966 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:39:36,966 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:39:36,966 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.444040
2025-07-01 12:39:36,966 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:39:36,967 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:39:36,967 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:39:36,967 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:39:36,967 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:39:36,967 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:39:30', tmtdew=11.02, humidity=46.91, cloud=0.0, wind=32.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:39:25.056', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:39:36,967 [DEBUG][       Thread-604939][   transport.py][1871] : EOF in transport thread
2025-07-01 12:39:37,051 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:39:37,060 [DEBUG][       Thread-604942][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 12:39:37,060 [DEBUG][       Thread-604942][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:39:37,075 [DEBUG][       Thread-604942][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:39:37,076 [ INFO][       Thread-604942][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:39:37,083 [DEBUG][       Thread-604942][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:39:37,083 [DEBUG][       Thread-604942][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:39:37,083 [DEBUG][       Thread-604942][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:39:37,083 [DEBUG][       Thread-604942][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:39:37,083 [DEBUG][       Thread-604942][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:39:37,083 [DEBUG][       Thread-604942][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:39:37,084 [DEBUG][       Thread-604942][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:39:37,084 [DEBUG][       Thread-604942][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:39:37,084 [DEBUG][       Thread-604942][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:39:37,084 [DEBUG][       Thread-604942][   transport.py][1871] : client lang: <none>
2025-07-01 12:39:37,084 [DEBUG][       Thread-604942][   transport.py][1871] : server lang: <none>
2025-07-01 12:39:37,084 [DEBUG][       Thread-604942][   transport.py][1871] : kex follows: False
2025-07-01 12:39:37,084 [DEBUG][       Thread-604942][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:39:37,084 [DEBUG][       Thread-604942][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:39:37,084 [DEBUG][       Thread-604942][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:39:37,084 [DEBUG][       Thread-604942][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:39:37,084 [DEBUG][       Thread-604942][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:39:37,084 [DEBUG][       Thread-604942][   transport.py][1871] : Compression: none
2025-07-01 12:39:37,084 [DEBUG][       Thread-604942][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:39:37,147 [DEBUG][       Thread-604942][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:39:37,148 [DEBUG][       Thread-604942][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:39:37,148 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:39:37,149 [DEBUG][       Thread-604942][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:39:37,150 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:39:37,204 [DEBUG][       Thread-604942][   transport.py][1871] : userauth is OK
2025-07-01 12:39:37,204 [DEBUG][       Thread-604942][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:39:37,204 [DEBUG][       Thread-604942][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:39:37,204 [DEBUG][       Thread-604942][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:39:37,204 [DEBUG][       Thread-604942][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:39:37,228 [ INFO][       Thread-604942][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:39:37,228 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:39:37,229 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:39:38,254 [DEBUG][       Thread-604942][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:39:38,254 [DEBUG][       Thread-604942][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:39:38,303 [DEBUG][       Thread-604942][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:39:38,304 [DEBUG][       Thread-604942][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:39:38,312 [DEBUG][       Thread-604942][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:39:38,321 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:39:38,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-07-01 12:39:38,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') -> 00000000
2025-07-01 12:39:38,339 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:39:38,340 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:39:38,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:39:38,348 [DEBUG][       Thread-604942][   transport.py][1871] : EOF in transport thread
2025-07-01 12:39:44,411 [DEBUG][Thread-604944 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:39:48,348 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:39:48,348 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:39:48,348 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:39:48,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-07-01 12:39:48,840 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 39, 30), 11.02, 46.91, 0.0, 32.08, 12.55, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:39:48,840 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:39:30
2025-07-01 12:39:48,928 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:39:48,932 [DEBUG][       Thread-604945][   transport.py][1871] : starting thread (client mode): 0x82b25f0
2025-07-01 12:39:48,932 [DEBUG][       Thread-604945][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:39:48,952 [DEBUG][       Thread-604945][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:39:48,952 [ INFO][       Thread-604945][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:39:48,956 [DEBUG][       Thread-604945][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:39:48,956 [DEBUG][       Thread-604945][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:39:48,956 [DEBUG][       Thread-604945][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:39:48,957 [DEBUG][       Thread-604945][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:39:48,957 [DEBUG][       Thread-604945][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:39:48,957 [DEBUG][       Thread-604945][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:39:48,957 [DEBUG][       Thread-604945][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:39:48,957 [DEBUG][       Thread-604945][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:39:48,957 [DEBUG][       Thread-604945][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:39:48,957 [DEBUG][       Thread-604945][   transport.py][1871] : client lang: <none>
2025-07-01 12:39:48,957 [DEBUG][       Thread-604945][   transport.py][1871] : server lang: <none>
2025-07-01 12:39:48,957 [DEBUG][       Thread-604945][   transport.py][1871] : kex follows: False
2025-07-01 12:39:48,957 [DEBUG][       Thread-604945][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:39:48,957 [DEBUG][       Thread-604945][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:39:48,957 [DEBUG][       Thread-604945][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:39:48,957 [DEBUG][       Thread-604945][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:39:48,957 [DEBUG][       Thread-604945][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:39:48,957 [DEBUG][       Thread-604945][   transport.py][1871] : Compression: none
2025-07-01 12:39:48,957 [DEBUG][       Thread-604945][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:39:48,969 [DEBUG][       Thread-604945][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:39:48,969 [DEBUG][       Thread-604945][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:39:48,969 [DEBUG][       Thread-604945][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:39:48,969 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:39:48,969 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:39:48,970 [DEBUG][       Thread-604945][   transport.py][1871] : userauth is OK
2025-07-01 12:39:48,982 [ INFO][       Thread-604945][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:39:48,982 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:39:49,616 [DEBUG][       Thread-604945][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:39:49,616 [DEBUG][       Thread-604945][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:39:49,661 [DEBUG][       Thread-604945][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:39:49,661 [DEBUG][       Thread-604945][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:39:49,663 [DEBUG][       Thread-604945][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:39:49,676 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:39:49,676 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:39:49,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:39:49,678 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:39:49,681 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:39:49,682 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:39:49,682 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:39:49,682 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:39:49,682 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.444040 -999.00  +12.20  31.85     52   +2.70 1 1 2 1 1   888    0 11.16 63.68 ----- 31.9 31.9 10.5 43.6 15.4 -25.1 14.7 -25.0 14.5 -24.0 15.1 -23.7
2025-07-01 12:39:49,682 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:39:49,682 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:39:49,682 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.444040
2025-07-01 12:39:49,682 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:39:49,682 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:39:49,682 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:39:49,683 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:39:49,683 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:39:49,683 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:39:30', tmtdew=11.02, humidity=46.91, cloud=0.0, wind=32.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:39:25.056', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:39:49,683 [DEBUG][       Thread-604945][   transport.py][1871] : EOF in transport thread
2025-07-01 12:39:49,754 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:39:49,765 [DEBUG][       Thread-604948][   transport.py][1871] : starting thread (client mode): 0x75a9330
2025-07-01 12:39:49,766 [DEBUG][       Thread-604948][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:39:49,782 [DEBUG][       Thread-604948][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:39:49,782 [ INFO][       Thread-604948][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:39:49,790 [DEBUG][       Thread-604948][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:39:49,790 [DEBUG][       Thread-604948][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:39:49,790 [DEBUG][       Thread-604948][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:39:49,790 [DEBUG][       Thread-604948][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:39:49,790 [DEBUG][       Thread-604948][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:39:49,790 [DEBUG][       Thread-604948][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:39:49,790 [DEBUG][       Thread-604948][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:39:49,790 [DEBUG][       Thread-604948][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:39:49,790 [DEBUG][       Thread-604948][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:39:49,790 [DEBUG][       Thread-604948][   transport.py][1871] : client lang: <none>
2025-07-01 12:39:49,790 [DEBUG][       Thread-604948][   transport.py][1871] : server lang: <none>
2025-07-01 12:39:49,790 [DEBUG][       Thread-604948][   transport.py][1871] : kex follows: False
2025-07-01 12:39:49,790 [DEBUG][       Thread-604948][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:39:49,790 [DEBUG][       Thread-604948][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:39:49,790 [DEBUG][       Thread-604948][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:39:49,790 [DEBUG][       Thread-604948][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:39:49,790 [DEBUG][       Thread-604948][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:39:49,790 [DEBUG][       Thread-604948][   transport.py][1871] : Compression: none
2025-07-01 12:39:49,790 [DEBUG][       Thread-604948][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:39:49,846 [DEBUG][       Thread-604948][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:39:49,846 [DEBUG][       Thread-604948][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:39:49,846 [DEBUG][       Thread-604948][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:39:49,846 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:39:49,847 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:39:49,905 [DEBUG][       Thread-604948][   transport.py][1871] : userauth is OK
2025-07-01 12:39:49,906 [DEBUG][       Thread-604948][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:39:49,906 [DEBUG][       Thread-604948][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:39:49,906 [DEBUG][       Thread-604948][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:39:49,906 [DEBUG][       Thread-604948][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:39:49,920 [ INFO][       Thread-604948][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:39:49,920 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:39:49,920 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:39:50,948 [DEBUG][       Thread-604948][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:39:50,948 [DEBUG][       Thread-604948][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:39:50,999 [DEBUG][       Thread-604948][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:39:50,999 [DEBUG][       Thread-604948][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:39:51,008 [DEBUG][       Thread-604948][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:39:51,016 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:39:51,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-07-01 12:39:51,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-07-01 12:39:51,032 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:39:51,032 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:39:51,032 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:39:51,040 [DEBUG][       Thread-604948][   transport.py][1871] : EOF in transport thread
2025-07-01 12:39:53,435 [DEBUG][Thread-604950 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:40:01,043 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:40:01,043 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:40:01,043 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:40:01,046 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:40:01,496 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 39, 30), 11.02, 46.91, 0.0, 32.08, 12.55, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:40:01,496 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:39:30
2025-07-01 12:40:01,582 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:40:01,586 [DEBUG][       Thread-604951][   transport.py][1871] : starting thread (client mode): 0x75ab790
2025-07-01 12:40:01,586 [DEBUG][       Thread-604951][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:40:01,597 [DEBUG][       Thread-604951][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:40:01,597 [ INFO][       Thread-604951][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:40:01,598 [DEBUG][       Thread-604951][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:40:01,598 [DEBUG][       Thread-604951][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:40:01,598 [DEBUG][       Thread-604951][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:40:01,599 [DEBUG][       Thread-604951][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:40:01,599 [DEBUG][       Thread-604951][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:40:01,599 [DEBUG][       Thread-604951][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:40:01,599 [DEBUG][       Thread-604951][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:40:01,599 [DEBUG][       Thread-604951][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:40:01,599 [DEBUG][       Thread-604951][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:40:01,599 [DEBUG][       Thread-604951][   transport.py][1871] : client lang: <none>
2025-07-01 12:40:01,599 [DEBUG][       Thread-604951][   transport.py][1871] : server lang: <none>
2025-07-01 12:40:01,599 [DEBUG][       Thread-604951][   transport.py][1871] : kex follows: False
2025-07-01 12:40:01,599 [DEBUG][       Thread-604951][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:40:01,599 [DEBUG][       Thread-604951][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:40:01,599 [DEBUG][       Thread-604951][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:40:01,599 [DEBUG][       Thread-604951][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:40:01,599 [DEBUG][       Thread-604951][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:40:01,599 [DEBUG][       Thread-604951][   transport.py][1871] : Compression: none
2025-07-01 12:40:01,599 [DEBUG][       Thread-604951][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:40:01,606 [DEBUG][       Thread-604951][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:40:01,606 [DEBUG][       Thread-604951][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:40:01,606 [DEBUG][       Thread-604951][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:40:01,607 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:40:01,607 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:40:01,607 [DEBUG][       Thread-604951][   transport.py][1871] : userauth is OK
2025-07-01 12:40:01,619 [ INFO][       Thread-604951][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:40:01,620 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:40:02,212 [DEBUG][       Thread-604951][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:40:02,212 [DEBUG][       Thread-604951][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:40:02,252 [DEBUG][       Thread-604951][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:40:02,252 [DEBUG][       Thread-604951][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:40:02,254 [DEBUG][       Thread-604951][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:40:02,266 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:40:02,266 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:40:02,267 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:40:02,268 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:40:02,270 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:40:02,271 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:40:02,271 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:40:02,271 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:40:02,271 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.444040 -999.00  +12.20  31.85     52   +2.70 1 1 2 1 1   888    0 11.16 63.68 ----- 31.9 31.9 10.5 43.6 15.4 -25.1 14.7 -25.0 14.5 -24.0 15.1 -23.7
2025-07-01 12:40:02,271 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:40:02,271 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:40:02,271 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.444040
2025-07-01 12:40:02,271 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:40:02,271 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:40:02,271 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:40:02,271 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:40:02,271 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:40:02,271 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:39:30', tmtdew=11.02, humidity=46.91, cloud=0.0, wind=32.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:39:25.056', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:40:02,271 [DEBUG][       Thread-604951][   transport.py][1871] : EOF in transport thread
2025-07-01 12:40:02,346 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:40:02,360 [DEBUG][       Thread-604954][   transport.py][1871] : starting thread (client mode): 0x83c8730
2025-07-01 12:40:02,361 [DEBUG][       Thread-604954][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:40:02,375 [DEBUG][       Thread-604954][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:40:02,375 [ INFO][       Thread-604954][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:40:02,385 [DEBUG][       Thread-604954][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:40:02,386 [DEBUG][       Thread-604954][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:40:02,386 [DEBUG][       Thread-604954][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:40:02,386 [DEBUG][       Thread-604954][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:40:02,386 [DEBUG][       Thread-604954][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:40:02,386 [DEBUG][       Thread-604954][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:40:02,386 [DEBUG][       Thread-604954][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:40:02,386 [DEBUG][       Thread-604954][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:40:02,386 [DEBUG][       Thread-604954][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:40:02,386 [DEBUG][       Thread-604954][   transport.py][1871] : client lang: <none>
2025-07-01 12:40:02,386 [DEBUG][       Thread-604954][   transport.py][1871] : server lang: <none>
2025-07-01 12:40:02,386 [DEBUG][       Thread-604954][   transport.py][1871] : kex follows: False
2025-07-01 12:40:02,386 [DEBUG][       Thread-604954][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:40:02,386 [DEBUG][       Thread-604954][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:40:02,386 [DEBUG][       Thread-604954][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:40:02,386 [DEBUG][       Thread-604954][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:40:02,386 [DEBUG][       Thread-604954][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:40:02,386 [DEBUG][       Thread-604954][   transport.py][1871] : Compression: none
2025-07-01 12:40:02,386 [DEBUG][       Thread-604954][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:40:02,443 [DEBUG][       Thread-604954][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:40:02,443 [DEBUG][       Thread-604954][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:40:02,443 [DEBUG][       Thread-604954][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:40:02,443 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:40:02,443 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:40:02,453 [DEBUG][Thread-604956 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:40:02,503 [DEBUG][       Thread-604954][   transport.py][1871] : userauth is OK
2025-07-01 12:40:02,503 [DEBUG][       Thread-604954][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:40:02,503 [DEBUG][       Thread-604954][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:40:02,503 [DEBUG][       Thread-604954][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:40:02,503 [DEBUG][       Thread-604954][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:40:02,523 [ INFO][       Thread-604954][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:40:02,523 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:40:02,523 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:40:03,550 [DEBUG][       Thread-604954][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:40:03,550 [DEBUG][       Thread-604954][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:40:03,599 [DEBUG][       Thread-604954][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:40:03,599 [DEBUG][       Thread-604954][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:40:03,608 [DEBUG][       Thread-604954][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:40:03,616 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:40:03,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-07-01 12:40:03,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-07-01 12:40:03,632 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:40:03,632 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:40:03,632 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:40:03,640 [DEBUG][       Thread-604954][   transport.py][1871] : EOF in transport thread
2025-07-01 12:40:11,473 [DEBUG][Thread-604957 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:40:13,640 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:40:13,640 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:40:13,640 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:40:13,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-07-01 12:40:14,109 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 40, 1), 11.01, 46.94, 0.0, 34.39, 12.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:40:14,109 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:40:01
2025-07-01 12:40:14,195 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:40:14,199 [DEBUG][       Thread-604958][   transport.py][1871] : starting thread (client mode): 0x75a8e20
2025-07-01 12:40:14,199 [DEBUG][       Thread-604958][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:40:14,221 [DEBUG][       Thread-604958][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:40:14,221 [ INFO][       Thread-604958][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:40:14,224 [DEBUG][       Thread-604958][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:40:14,224 [DEBUG][       Thread-604958][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:40:14,224 [DEBUG][       Thread-604958][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:40:14,224 [DEBUG][       Thread-604958][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:40:14,224 [DEBUG][       Thread-604958][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:40:14,224 [DEBUG][       Thread-604958][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:40:14,224 [DEBUG][       Thread-604958][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:40:14,224 [DEBUG][       Thread-604958][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:40:14,225 [DEBUG][       Thread-604958][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:40:14,225 [DEBUG][       Thread-604958][   transport.py][1871] : client lang: <none>
2025-07-01 12:40:14,225 [DEBUG][       Thread-604958][   transport.py][1871] : server lang: <none>
2025-07-01 12:40:14,225 [DEBUG][       Thread-604958][   transport.py][1871] : kex follows: False
2025-07-01 12:40:14,225 [DEBUG][       Thread-604958][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:40:14,225 [DEBUG][       Thread-604958][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:40:14,225 [DEBUG][       Thread-604958][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:40:14,225 [DEBUG][       Thread-604958][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:40:14,225 [DEBUG][       Thread-604958][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:40:14,225 [DEBUG][       Thread-604958][   transport.py][1871] : Compression: none
2025-07-01 12:40:14,225 [DEBUG][       Thread-604958][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:40:14,241 [DEBUG][       Thread-604958][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:40:14,242 [DEBUG][       Thread-604958][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:40:14,242 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:40:14,242 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:40:14,243 [DEBUG][       Thread-604958][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:40:14,243 [DEBUG][       Thread-604958][   transport.py][1871] : userauth is OK
2025-07-01 12:40:14,256 [ INFO][       Thread-604958][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:40:14,257 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:40:14,910 [DEBUG][       Thread-604958][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:40:14,911 [DEBUG][       Thread-604958][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:40:14,953 [DEBUG][       Thread-604958][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:40:14,953 [DEBUG][       Thread-604958][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:40:14,956 [DEBUG][       Thread-604958][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:40:14,970 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:40:14,970 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:40:14,972 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:40:14,973 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:40:14,979 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:40:14,980 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:40:14,981 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:40:14,981 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:40:14,981 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.444387 -999.00  +12.10  45.24     52   +2.50 1 1 2 1 1   888    0 11.37 63.79 ----- 45.2 45.2 25.0 52.6 15.3 -24.3 14.5 -25.1 14.4 -24.1 15.1 -25.0
2025-07-01 12:40:14,982 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:40:14,982 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:40:14,982 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.444387
2025-07-01 12:40:14,982 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:40:14,983 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:40:14,983 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:40:14,983 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:40:14,983 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:40:14,983 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:40:01', tmtdew=11.01, humidity=46.94, cloud=0.0, wind=34.39, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:39:55.037', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:40:14,983 [DEBUG][       Thread-604958][   transport.py][1871] : EOF in transport thread
2025-07-01 12:40:15,067 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:40:15,078 [DEBUG][       Thread-604961][   transport.py][1871] : starting thread (client mode): 0x827ec50
2025-07-01 12:40:15,078 [DEBUG][       Thread-604961][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:40:15,093 [DEBUG][       Thread-604961][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:40:15,093 [ INFO][       Thread-604961][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:40:15,102 [DEBUG][       Thread-604961][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:40:15,102 [DEBUG][       Thread-604961][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:40:15,102 [DEBUG][       Thread-604961][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:40:15,102 [DEBUG][       Thread-604961][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:40:15,102 [DEBUG][       Thread-604961][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:40:15,102 [DEBUG][       Thread-604961][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:40:15,102 [DEBUG][       Thread-604961][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:40:15,102 [DEBUG][       Thread-604961][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:40:15,102 [DEBUG][       Thread-604961][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:40:15,102 [DEBUG][       Thread-604961][   transport.py][1871] : client lang: <none>
2025-07-01 12:40:15,102 [DEBUG][       Thread-604961][   transport.py][1871] : server lang: <none>
2025-07-01 12:40:15,102 [DEBUG][       Thread-604961][   transport.py][1871] : kex follows: False
2025-07-01 12:40:15,102 [DEBUG][       Thread-604961][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:40:15,102 [DEBUG][       Thread-604961][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:40:15,102 [DEBUG][       Thread-604961][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:40:15,102 [DEBUG][       Thread-604961][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:40:15,102 [DEBUG][       Thread-604961][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:40:15,103 [DEBUG][       Thread-604961][   transport.py][1871] : Compression: none
2025-07-01 12:40:15,103 [DEBUG][       Thread-604961][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:40:15,163 [DEBUG][       Thread-604961][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:40:15,163 [DEBUG][       Thread-604961][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:40:15,164 [DEBUG][       Thread-604961][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:40:15,164 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:40:15,165 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:40:15,221 [DEBUG][       Thread-604961][   transport.py][1871] : userauth is OK
2025-07-01 12:40:15,221 [DEBUG][       Thread-604961][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:40:15,221 [DEBUG][       Thread-604961][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:40:15,221 [DEBUG][       Thread-604961][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:40:15,221 [DEBUG][       Thread-604961][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:40:15,243 [ INFO][       Thread-604961][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:40:15,243 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:40:15,243 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:40:16,241 [DEBUG][       Thread-604961][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:40:16,242 [DEBUG][       Thread-604961][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:40:16,292 [DEBUG][       Thread-604961][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:40:16,292 [DEBUG][       Thread-604961][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:40:16,310 [DEBUG][       Thread-604961][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:40:16,319 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:40:16,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-07-01 12:40:16,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-07-01 12:40:16,337 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:40:16,338 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:40:16,338 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:40:16,346 [DEBUG][       Thread-604961][   transport.py][1871] : EOF in transport thread
2025-07-01 12:40:17,770 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:40:17,772 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:40:20,496 [DEBUG][Thread-604963 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:40:26,349 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:40:26,349 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:40:26,349 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:40:26,352 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:40:26,838 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 40, 1), 11.01, 46.94, 0.0, 34.39, 12.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:40:26,838 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:40:01
2025-07-01 12:40:26,930 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:40:26,936 [DEBUG][       Thread-604964][   transport.py][1871] : starting thread (client mode): 0x75a91e0
2025-07-01 12:40:26,936 [DEBUG][       Thread-604964][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:40:26,957 [DEBUG][       Thread-604964][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:40:26,957 [ INFO][       Thread-604964][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:40:26,960 [DEBUG][       Thread-604964][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:40:26,960 [DEBUG][       Thread-604964][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:40:26,960 [DEBUG][       Thread-604964][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:40:26,960 [DEBUG][       Thread-604964][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:40:26,960 [DEBUG][       Thread-604964][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:40:26,960 [DEBUG][       Thread-604964][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:40:26,960 [DEBUG][       Thread-604964][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:40:26,960 [DEBUG][       Thread-604964][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:40:26,960 [DEBUG][       Thread-604964][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:40:26,960 [DEBUG][       Thread-604964][   transport.py][1871] : client lang: <none>
2025-07-01 12:40:26,960 [DEBUG][       Thread-604964][   transport.py][1871] : server lang: <none>
2025-07-01 12:40:26,960 [DEBUG][       Thread-604964][   transport.py][1871] : kex follows: False
2025-07-01 12:40:26,960 [DEBUG][       Thread-604964][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:40:26,960 [DEBUG][       Thread-604964][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:40:26,960 [DEBUG][       Thread-604964][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:40:26,960 [DEBUG][       Thread-604964][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:40:26,960 [DEBUG][       Thread-604964][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:40:26,960 [DEBUG][       Thread-604964][   transport.py][1871] : Compression: none
2025-07-01 12:40:26,960 [DEBUG][       Thread-604964][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:40:26,974 [DEBUG][       Thread-604964][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:40:26,974 [DEBUG][       Thread-604964][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:40:26,974 [DEBUG][       Thread-604964][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:40:26,974 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:40:26,974 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:40:26,975 [DEBUG][       Thread-604964][   transport.py][1871] : userauth is OK
2025-07-01 12:40:26,999 [ INFO][       Thread-604964][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:40:26,999 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:40:27,678 [DEBUG][       Thread-604964][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:40:27,678 [DEBUG][       Thread-604964][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:40:27,720 [DEBUG][       Thread-604964][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:40:27,721 [DEBUG][       Thread-604964][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:40:27,723 [DEBUG][       Thread-604964][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:40:27,735 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:40:27,735 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:40:27,736 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:40:27,737 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:40:27,741 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:40:27,742 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:40:27,742 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:40:27,742 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:40:27,742 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.444387 -999.00  +12.10  45.24     52   +2.50 1 1 2 1 1   888    0 11.37 63.79 ----- 45.2 45.2 25.0 52.6 15.3 -24.3 14.5 -25.1 14.4 -24.1 15.1 -25.0
2025-07-01 12:40:27,742 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:40:27,742 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:40:27,742 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.444387
2025-07-01 12:40:27,742 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:40:27,742 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:40:27,742 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:40:27,742 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:40:27,742 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:40:27,742 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:40:01', tmtdew=11.01, humidity=46.94, cloud=0.0, wind=34.39, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:39:55.037', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:40:27,743 [DEBUG][       Thread-604964][   transport.py][1871] : EOF in transport thread
2025-07-01 12:40:27,817 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:40:27,828 [DEBUG][       Thread-604967][   transport.py][1871] : starting thread (client mode): 0x82b24a0
2025-07-01 12:40:27,828 [DEBUG][       Thread-604967][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:40:27,842 [DEBUG][       Thread-604967][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:40:27,843 [ INFO][       Thread-604967][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:40:27,850 [DEBUG][       Thread-604967][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:40:27,850 [DEBUG][       Thread-604967][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:40:27,850 [DEBUG][       Thread-604967][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:40:27,850 [DEBUG][       Thread-604967][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:40:27,850 [DEBUG][       Thread-604967][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:40:27,850 [DEBUG][       Thread-604967][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:40:27,850 [DEBUG][       Thread-604967][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:40:27,850 [DEBUG][       Thread-604967][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:40:27,850 [DEBUG][       Thread-604967][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:40:27,850 [DEBUG][       Thread-604967][   transport.py][1871] : client lang: <none>
2025-07-01 12:40:27,850 [DEBUG][       Thread-604967][   transport.py][1871] : server lang: <none>
2025-07-01 12:40:27,850 [DEBUG][       Thread-604967][   transport.py][1871] : kex follows: False
2025-07-01 12:40:27,850 [DEBUG][       Thread-604967][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:40:27,850 [DEBUG][       Thread-604967][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:40:27,850 [DEBUG][       Thread-604967][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:40:27,850 [DEBUG][       Thread-604967][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:40:27,850 [DEBUG][       Thread-604967][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:40:27,850 [DEBUG][       Thread-604967][   transport.py][1871] : Compression: none
2025-07-01 12:40:27,850 [DEBUG][       Thread-604967][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:40:27,907 [DEBUG][       Thread-604967][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:40:27,907 [DEBUG][       Thread-604967][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:40:27,907 [DEBUG][       Thread-604967][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:40:27,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:40:27,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:40:27,964 [DEBUG][       Thread-604967][   transport.py][1871] : userauth is OK
2025-07-01 12:40:27,964 [DEBUG][       Thread-604967][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:40:27,964 [DEBUG][       Thread-604967][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:40:27,964 [DEBUG][       Thread-604967][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:40:27,964 [DEBUG][       Thread-604967][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:40:27,979 [ INFO][       Thread-604967][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:40:27,979 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:40:27,979 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:40:29,001 [DEBUG][       Thread-604967][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:40:29,001 [DEBUG][       Thread-604967][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:40:29,053 [DEBUG][       Thread-604967][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:40:29,053 [DEBUG][       Thread-604967][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:40:29,062 [DEBUG][       Thread-604967][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:40:29,070 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:40:29,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-07-01 12:40:29,078 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 12:40:29,086 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:40:29,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:40:29,086 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:40:29,094 [DEBUG][       Thread-604967][   transport.py][1871] : EOF in transport thread
2025-07-01 12:40:29,538 [DEBUG][Thread-604969 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:40:29,822 [DEBUG][Thread-604970 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:40:38,557 [DEBUG][Thread-604971 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:40:39,097 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:40:39,097 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:40:39,097 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:40:39,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-07-01 12:40:39,572 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 40, 33), 10.95, 47.27, 0.0, 35.73, 12.46, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:40:39,572 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:40:33
2025-07-01 12:40:39,657 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:40:39,661 [DEBUG][       Thread-604972][   transport.py][1871] : starting thread (client mode): 0x75abf70
2025-07-01 12:40:39,661 [DEBUG][       Thread-604972][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:40:39,683 [DEBUG][       Thread-604972][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:40:39,683 [ INFO][       Thread-604972][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:40:39,686 [DEBUG][       Thread-604972][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:40:39,687 [DEBUG][       Thread-604972][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:40:39,687 [DEBUG][       Thread-604972][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:40:39,687 [DEBUG][       Thread-604972][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:40:39,687 [DEBUG][       Thread-604972][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:40:39,687 [DEBUG][       Thread-604972][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:40:39,687 [DEBUG][       Thread-604972][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:40:39,687 [DEBUG][       Thread-604972][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:40:39,687 [DEBUG][       Thread-604972][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:40:39,687 [DEBUG][       Thread-604972][   transport.py][1871] : client lang: <none>
2025-07-01 12:40:39,687 [DEBUG][       Thread-604972][   transport.py][1871] : server lang: <none>
2025-07-01 12:40:39,687 [DEBUG][       Thread-604972][   transport.py][1871] : kex follows: False
2025-07-01 12:40:39,687 [DEBUG][       Thread-604972][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:40:39,687 [DEBUG][       Thread-604972][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:40:39,687 [DEBUG][       Thread-604972][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:40:39,687 [DEBUG][       Thread-604972][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:40:39,687 [DEBUG][       Thread-604972][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:40:39,687 [DEBUG][       Thread-604972][   transport.py][1871] : Compression: none
2025-07-01 12:40:39,687 [DEBUG][       Thread-604972][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:40:39,704 [DEBUG][       Thread-604972][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:40:39,705 [DEBUG][       Thread-604972][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:40:39,705 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:40:39,705 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:40:39,706 [DEBUG][       Thread-604972][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:40:39,707 [DEBUG][       Thread-604972][   transport.py][1871] : userauth is OK
2025-07-01 12:40:39,719 [ INFO][       Thread-604972][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:40:39,720 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:40:40,352 [DEBUG][       Thread-604972][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:40:40,352 [DEBUG][       Thread-604972][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:40:40,393 [DEBUG][       Thread-604972][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:40:40,393 [DEBUG][       Thread-604972][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:40:40,395 [DEBUG][       Thread-604972][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:40:40,405 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:40:40,406 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:40:40,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:40:40,409 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:40:40,414 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:40:40,416 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:40:40,416 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:40:40,417 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:40:40,417 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.444735 -999.00  +12.10  34.63     52   +2.70 1 1 2 1 1   888    0 10.96 50.79 ----- 35.4 34.6 47.6 48.2 15.2 -25.7 14.5 -24.2 14.3 -23.5 15.1 -22.2
2025-07-01 12:40:40,417 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:40:40,417 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:40:40,417 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.444735
2025-07-01 12:40:40,418 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:40:40,418 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:40:40,418 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:40:40,419 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:40:40,419 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:40:40,419 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:40:33', tmtdew=10.95, humidity=47.27, cloud=0.0, wind=35.73, temperature=12.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:40:25.104', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:40:40,419 [DEBUG][       Thread-604972][   transport.py][1871] : EOF in transport thread
2025-07-01 12:40:40,491 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:40:40,500 [DEBUG][       Thread-604975][   transport.py][1871] : starting thread (client mode): 0x818f6d0
2025-07-01 12:40:40,500 [DEBUG][       Thread-604975][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:40:40,517 [DEBUG][       Thread-604975][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:40:40,517 [ INFO][       Thread-604975][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:40:40,525 [DEBUG][       Thread-604975][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:40:40,525 [DEBUG][       Thread-604975][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:40:40,525 [DEBUG][       Thread-604975][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:40:40,525 [DEBUG][       Thread-604975][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:40:40,525 [DEBUG][       Thread-604975][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:40:40,525 [DEBUG][       Thread-604975][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:40:40,525 [DEBUG][       Thread-604975][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:40:40,525 [DEBUG][       Thread-604975][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:40:40,525 [DEBUG][       Thread-604975][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:40:40,525 [DEBUG][       Thread-604975][   transport.py][1871] : client lang: <none>
2025-07-01 12:40:40,525 [DEBUG][       Thread-604975][   transport.py][1871] : server lang: <none>
2025-07-01 12:40:40,525 [DEBUG][       Thread-604975][   transport.py][1871] : kex follows: False
2025-07-01 12:40:40,525 [DEBUG][       Thread-604975][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:40:40,525 [DEBUG][       Thread-604975][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:40:40,525 [DEBUG][       Thread-604975][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:40:40,525 [DEBUG][       Thread-604975][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:40:40,525 [DEBUG][       Thread-604975][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:40:40,525 [DEBUG][       Thread-604975][   transport.py][1871] : Compression: none
2025-07-01 12:40:40,525 [DEBUG][       Thread-604975][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:40:40,585 [DEBUG][       Thread-604975][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:40:40,586 [DEBUG][       Thread-604975][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:40:40,586 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:40:40,587 [DEBUG][       Thread-604975][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:40:40,587 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:40:40,641 [DEBUG][       Thread-604975][   transport.py][1871] : userauth is OK
2025-07-01 12:40:40,641 [DEBUG][       Thread-604975][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:40:40,641 [DEBUG][       Thread-604975][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:40:40,641 [DEBUG][       Thread-604975][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:40:40,641 [DEBUG][       Thread-604975][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:40:40,661 [ INFO][       Thread-604975][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:40:40,662 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:40:40,662 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:40:41,679 [DEBUG][       Thread-604975][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:40:41,680 [DEBUG][       Thread-604975][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:40:41,732 [DEBUG][       Thread-604975][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:40:41,732 [DEBUG][       Thread-604975][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:40:41,744 [DEBUG][       Thread-604975][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:40:41,756 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:40:41,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-07-01 12:40:41,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') -> 00000000
2025-07-01 12:40:41,775 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:40:41,775 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:40:41,775 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:40:41,784 [DEBUG][       Thread-604975][   transport.py][1871] : EOF in transport thread
2025-07-01 12:40:47,579 [DEBUG][Thread-604977 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:40:51,776 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:40:51,776 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:40:51,776 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:40:51,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-07-01 12:40:52,257 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 40, 33), 10.95, 47.27, 0.0, 35.73, 12.46, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:40:52,257 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:40:33
2025-07-01 12:40:52,342 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:40:52,348 [DEBUG][       Thread-604978][   transport.py][1871] : starting thread (client mode): 0x81e7a60
2025-07-01 12:40:52,348 [DEBUG][       Thread-604978][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:40:52,372 [DEBUG][       Thread-604978][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:40:52,372 [ INFO][       Thread-604978][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:40:52,376 [DEBUG][       Thread-604978][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:40:52,376 [DEBUG][       Thread-604978][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:40:52,376 [DEBUG][       Thread-604978][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:40:52,376 [DEBUG][       Thread-604978][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:40:52,376 [DEBUG][       Thread-604978][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:40:52,376 [DEBUG][       Thread-604978][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:40:52,376 [DEBUG][       Thread-604978][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:40:52,376 [DEBUG][       Thread-604978][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:40:52,376 [DEBUG][       Thread-604978][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:40:52,376 [DEBUG][       Thread-604978][   transport.py][1871] : client lang: <none>
2025-07-01 12:40:52,376 [DEBUG][       Thread-604978][   transport.py][1871] : server lang: <none>
2025-07-01 12:40:52,376 [DEBUG][       Thread-604978][   transport.py][1871] : kex follows: False
2025-07-01 12:40:52,377 [DEBUG][       Thread-604978][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:40:52,377 [DEBUG][       Thread-604978][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:40:52,377 [DEBUG][       Thread-604978][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:40:52,377 [DEBUG][       Thread-604978][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:40:52,377 [DEBUG][       Thread-604978][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:40:52,377 [DEBUG][       Thread-604978][   transport.py][1871] : Compression: none
2025-07-01 12:40:52,377 [DEBUG][       Thread-604978][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:40:52,396 [DEBUG][       Thread-604978][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:40:52,396 [DEBUG][       Thread-604978][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:40:52,397 [DEBUG][       Thread-604978][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:40:52,397 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:40:52,397 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:40:52,398 [DEBUG][       Thread-604978][   transport.py][1871] : userauth is OK
2025-07-01 12:40:52,423 [ INFO][       Thread-604978][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:40:52,424 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:40:53,097 [DEBUG][       Thread-604978][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:40:53,098 [DEBUG][       Thread-604978][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:40:53,141 [DEBUG][       Thread-604978][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:40:53,141 [DEBUG][       Thread-604978][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:40:53,144 [DEBUG][       Thread-604978][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:40:53,152 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:40:53,152 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:40:53,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:40:53,156 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:40:53,162 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:40:53,164 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:40:53,165 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:40:53,165 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:40:53,165 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.444735 -999.00  +12.10  34.63     52   +2.70 1 1 2 1 1   888    0 10.96 50.79 ----- 35.4 34.6 47.6 48.2 15.2 -25.7 14.5 -24.2 14.3 -23.5 15.1 -22.2
2025-07-01 12:40:53,166 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:40:53,166 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:40:53,166 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.444735
2025-07-01 12:40:53,166 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:40:53,167 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:40:53,167 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:40:53,167 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:40:53,167 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:40:53,167 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:40:33', tmtdew=10.95, humidity=47.27, cloud=0.0, wind=35.73, temperature=12.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:40:25.104', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:40:53,167 [DEBUG][       Thread-604978][   transport.py][1871] : EOF in transport thread
2025-07-01 12:40:53,251 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:40:53,262 [DEBUG][       Thread-604981][   transport.py][1871] : starting thread (client mode): 0x827d540
2025-07-01 12:40:53,262 [DEBUG][       Thread-604981][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:40:53,277 [DEBUG][       Thread-604981][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:40:53,278 [ INFO][       Thread-604981][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:40:53,285 [DEBUG][       Thread-604981][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:40:53,285 [DEBUG][       Thread-604981][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:40:53,286 [DEBUG][       Thread-604981][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:40:53,286 [DEBUG][       Thread-604981][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:40:53,286 [DEBUG][       Thread-604981][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:40:53,286 [DEBUG][       Thread-604981][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:40:53,286 [DEBUG][       Thread-604981][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:40:53,286 [DEBUG][       Thread-604981][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:40:53,286 [DEBUG][       Thread-604981][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:40:53,286 [DEBUG][       Thread-604981][   transport.py][1871] : client lang: <none>
2025-07-01 12:40:53,286 [DEBUG][       Thread-604981][   transport.py][1871] : server lang: <none>
2025-07-01 12:40:53,286 [DEBUG][       Thread-604981][   transport.py][1871] : kex follows: False
2025-07-01 12:40:53,286 [DEBUG][       Thread-604981][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:40:53,286 [DEBUG][       Thread-604981][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:40:53,286 [DEBUG][       Thread-604981][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:40:53,286 [DEBUG][       Thread-604981][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:40:53,286 [DEBUG][       Thread-604981][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:40:53,286 [DEBUG][       Thread-604981][   transport.py][1871] : Compression: none
2025-07-01 12:40:53,286 [DEBUG][       Thread-604981][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:40:53,345 [DEBUG][       Thread-604981][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:40:53,345 [DEBUG][       Thread-604981][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:40:53,346 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:40:53,347 [DEBUG][       Thread-604981][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:40:53,347 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:40:53,401 [DEBUG][       Thread-604981][   transport.py][1871] : userauth is OK
2025-07-01 12:40:53,401 [DEBUG][       Thread-604981][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:40:53,401 [DEBUG][       Thread-604981][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:40:53,401 [DEBUG][       Thread-604981][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:40:53,402 [DEBUG][       Thread-604981][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:40:53,421 [ INFO][       Thread-604981][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:40:53,421 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:40:53,422 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:40:54,466 [DEBUG][       Thread-604981][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:40:54,466 [DEBUG][       Thread-604981][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:40:54,516 [DEBUG][       Thread-604981][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:40:54,516 [DEBUG][       Thread-604981][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:40:54,525 [DEBUG][       Thread-604981][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:40:54,535 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:40:54,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-07-01 12:40:54,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-07-01 12:40:54,552 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:40:54,553 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:40:54,553 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:40:54,561 [DEBUG][       Thread-604981][   transport.py][1871] : EOF in transport thread
2025-07-01 12:40:56,625 [DEBUG][Thread-604983 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:41:04,560 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:41:04,560 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:41:04,560 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:41:04,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-07-01 12:41:05,059 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 40, 33), 10.95, 47.27, 0.0, 35.73, 12.46, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:41:05,059 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:40:33
2025-07-01 12:41:05,149 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:41:05,153 [DEBUG][       Thread-604984][   transport.py][1871] : starting thread (client mode): 0x8107d00
2025-07-01 12:41:05,153 [DEBUG][       Thread-604984][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:41:05,174 [DEBUG][       Thread-604984][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:41:05,174 [ INFO][       Thread-604984][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:41:05,177 [DEBUG][       Thread-604984][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:41:05,177 [DEBUG][       Thread-604984][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:41:05,177 [DEBUG][       Thread-604984][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:41:05,177 [DEBUG][       Thread-604984][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:41:05,177 [DEBUG][       Thread-604984][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:41:05,177 [DEBUG][       Thread-604984][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:41:05,177 [DEBUG][       Thread-604984][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:41:05,177 [DEBUG][       Thread-604984][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:41:05,177 [DEBUG][       Thread-604984][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:41:05,177 [DEBUG][       Thread-604984][   transport.py][1871] : client lang: <none>
2025-07-01 12:41:05,177 [DEBUG][       Thread-604984][   transport.py][1871] : server lang: <none>
2025-07-01 12:41:05,177 [DEBUG][       Thread-604984][   transport.py][1871] : kex follows: False
2025-07-01 12:41:05,177 [DEBUG][       Thread-604984][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:41:05,177 [DEBUG][       Thread-604984][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:41:05,177 [DEBUG][       Thread-604984][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:41:05,177 [DEBUG][       Thread-604984][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:41:05,177 [DEBUG][       Thread-604984][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:41:05,177 [DEBUG][       Thread-604984][   transport.py][1871] : Compression: none
2025-07-01 12:41:05,177 [DEBUG][       Thread-604984][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:41:05,192 [DEBUG][       Thread-604984][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:41:05,192 [DEBUG][       Thread-604984][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:41:05,192 [DEBUG][       Thread-604984][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:41:05,192 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:41:05,192 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:41:05,193 [DEBUG][       Thread-604984][   transport.py][1871] : userauth is OK
2025-07-01 12:41:05,205 [ INFO][       Thread-604984][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:41:05,206 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:41:05,645 [DEBUG][Thread-604986 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:41:05,830 [DEBUG][       Thread-604984][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:41:05,830 [DEBUG][       Thread-604984][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:41:05,872 [DEBUG][       Thread-604984][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:41:05,873 [DEBUG][       Thread-604984][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:41:05,875 [DEBUG][       Thread-604984][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:41:05,887 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:41:05,887 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:41:05,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:41:05,889 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:41:05,892 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:41:05,893 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:41:05,893 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:41:05,893 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:41:05,893 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.444735 -999.00  +12.10  34.63     52   +2.70 1 1 2 1 1   888    0 10.96 50.79 ----- 35.4 34.6 47.6 48.2 15.2 -25.7 14.5 -24.2 14.3 -23.5 15.1 -22.2
2025-07-01 12:41:05,893 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:41:05,893 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:41:05,894 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.444735
2025-07-01 12:41:05,894 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:41:05,894 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:41:05,894 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:41:05,894 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:41:05,894 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:41:05,894 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:40:33', tmtdew=10.95, humidity=47.27, cloud=0.0, wind=35.73, temperature=12.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:40:25.104', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:41:05,895 [DEBUG][       Thread-604984][   transport.py][1871] : EOF in transport thread
2025-07-01 12:41:05,968 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:41:05,978 [DEBUG][       Thread-604988][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 12:41:05,978 [DEBUG][       Thread-604988][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:41:05,993 [DEBUG][       Thread-604988][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:41:05,993 [ INFO][       Thread-604988][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:41:06,001 [DEBUG][       Thread-604988][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:41:06,001 [DEBUG][       Thread-604988][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:41:06,001 [DEBUG][       Thread-604988][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:41:06,001 [DEBUG][       Thread-604988][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:41:06,001 [DEBUG][       Thread-604988][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:41:06,001 [DEBUG][       Thread-604988][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:41:06,001 [DEBUG][       Thread-604988][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:41:06,001 [DEBUG][       Thread-604988][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:41:06,001 [DEBUG][       Thread-604988][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:41:06,001 [DEBUG][       Thread-604988][   transport.py][1871] : client lang: <none>
2025-07-01 12:41:06,001 [DEBUG][       Thread-604988][   transport.py][1871] : server lang: <none>
2025-07-01 12:41:06,001 [DEBUG][       Thread-604988][   transport.py][1871] : kex follows: False
2025-07-01 12:41:06,001 [DEBUG][       Thread-604988][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:41:06,001 [DEBUG][       Thread-604988][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:41:06,001 [DEBUG][       Thread-604988][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:41:06,001 [DEBUG][       Thread-604988][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:41:06,001 [DEBUG][       Thread-604988][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:41:06,001 [DEBUG][       Thread-604988][   transport.py][1871] : Compression: none
2025-07-01 12:41:06,001 [DEBUG][       Thread-604988][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:41:06,064 [DEBUG][       Thread-604988][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:41:06,064 [DEBUG][       Thread-604988][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:41:06,065 [DEBUG][       Thread-604988][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:41:06,065 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:41:06,065 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:41:06,121 [DEBUG][       Thread-604988][   transport.py][1871] : userauth is OK
2025-07-01 12:41:06,121 [DEBUG][       Thread-604988][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:41:06,121 [DEBUG][       Thread-604988][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:41:06,121 [DEBUG][       Thread-604988][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:41:06,121 [DEBUG][       Thread-604988][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:41:06,136 [ INFO][       Thread-604988][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:41:06,137 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:41:06,137 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:41:07,189 [DEBUG][       Thread-604988][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:41:07,189 [DEBUG][       Thread-604988][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:41:07,239 [DEBUG][       Thread-604988][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:41:07,239 [DEBUG][       Thread-604988][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:41:07,248 [DEBUG][       Thread-604988][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:41:07,255 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:41:07,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-07-01 12:41:07,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-07-01 12:41:07,271 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:41:07,271 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:41:07,271 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:41:07,279 [DEBUG][       Thread-604988][   transport.py][1871] : EOF in transport thread
2025-07-01 12:41:14,662 [DEBUG][Thread-604990 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:41:17,281 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:41:17,282 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:41:17,282 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:41:17,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-07-01 12:41:17,754 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 41, 5), 10.95, 47.24, 0.0, 27.14, 12.46, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:41:17,754 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:41:05
2025-07-01 12:41:17,840 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:41:17,845 [DEBUG][       Thread-604991][   transport.py][1871] : starting thread (client mode): 0x81d8850
2025-07-01 12:41:17,846 [DEBUG][       Thread-604991][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:41:17,865 [DEBUG][       Thread-604991][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:41:17,865 [ INFO][       Thread-604991][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:41:17,869 [DEBUG][       Thread-604991][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:41:17,869 [DEBUG][       Thread-604991][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:41:17,869 [DEBUG][       Thread-604991][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:41:17,869 [DEBUG][       Thread-604991][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:41:17,869 [DEBUG][       Thread-604991][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:41:17,869 [DEBUG][       Thread-604991][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:41:17,869 [DEBUG][       Thread-604991][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:41:17,869 [DEBUG][       Thread-604991][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:41:17,869 [DEBUG][       Thread-604991][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:41:17,869 [DEBUG][       Thread-604991][   transport.py][1871] : client lang: <none>
2025-07-01 12:41:17,869 [DEBUG][       Thread-604991][   transport.py][1871] : server lang: <none>
2025-07-01 12:41:17,869 [DEBUG][       Thread-604991][   transport.py][1871] : kex follows: False
2025-07-01 12:41:17,869 [DEBUG][       Thread-604991][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:41:17,869 [DEBUG][       Thread-604991][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:41:17,869 [DEBUG][       Thread-604991][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:41:17,869 [DEBUG][       Thread-604991][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:41:17,869 [DEBUG][       Thread-604991][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:41:17,869 [DEBUG][       Thread-604991][   transport.py][1871] : Compression: none
2025-07-01 12:41:17,869 [DEBUG][       Thread-604991][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:41:17,885 [DEBUG][       Thread-604991][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:41:17,885 [DEBUG][       Thread-604991][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:41:17,885 [DEBUG][       Thread-604991][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:41:17,885 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:41:17,885 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:41:17,886 [DEBUG][       Thread-604991][   transport.py][1871] : userauth is OK
2025-07-01 12:41:17,899 [ INFO][       Thread-604991][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:41:17,900 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:41:17,910 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:41:17,911 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:41:18,575 [DEBUG][       Thread-604991][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:41:18,576 [DEBUG][       Thread-604991][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:41:18,617 [DEBUG][       Thread-604991][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:41:18,617 [DEBUG][       Thread-604991][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:41:18,620 [DEBUG][       Thread-604991][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:41:18,627 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:41:18,627 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:41:18,629 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:41:18,630 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:41:18,634 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:41:18,636 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:41:18,636 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:41:18,637 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:41:18,637 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.445082 -999.00  +12.30  30.04     52   +2.90 1 1 2 1 1   888    0 10.75 46.28 ----- 30.0 30.0 4.5 40.5 15.3 -24.2 14.6 -24.3 14.4 -23.1 15.1 -22.4
2025-07-01 12:41:18,637 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:41:18,637 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:41:18,637 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.445082
2025-07-01 12:41:18,638 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:41:18,638 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:41:18,638 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:41:18,638 [DEBUG][       Thread-604991][   transport.py][1871] : EOF in transport thread
2025-07-01 12:41:18,638 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:41:18,639 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:41:18,639 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:41:05', tmtdew=10.95, humidity=47.24, cloud=0.0, wind=27.14, temperature=12.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:40:55.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:41:18,722 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:41:18,733 [DEBUG][       Thread-604994][   transport.py][1871] : starting thread (client mode): 0x8155b10
2025-07-01 12:41:18,733 [DEBUG][       Thread-604994][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:41:18,748 [DEBUG][       Thread-604994][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:41:18,748 [ INFO][       Thread-604994][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:41:18,756 [DEBUG][       Thread-604994][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:41:18,756 [DEBUG][       Thread-604994][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:41:18,756 [DEBUG][       Thread-604994][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:41:18,756 [DEBUG][       Thread-604994][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:41:18,756 [DEBUG][       Thread-604994][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:41:18,756 [DEBUG][       Thread-604994][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:41:18,756 [DEBUG][       Thread-604994][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:41:18,756 [DEBUG][       Thread-604994][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:41:18,756 [DEBUG][       Thread-604994][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:41:18,756 [DEBUG][       Thread-604994][   transport.py][1871] : client lang: <none>
2025-07-01 12:41:18,756 [DEBUG][       Thread-604994][   transport.py][1871] : server lang: <none>
2025-07-01 12:41:18,756 [DEBUG][       Thread-604994][   transport.py][1871] : kex follows: False
2025-07-01 12:41:18,756 [DEBUG][       Thread-604994][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:41:18,756 [DEBUG][       Thread-604994][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:41:18,756 [DEBUG][       Thread-604994][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:41:18,756 [DEBUG][       Thread-604994][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:41:18,756 [DEBUG][       Thread-604994][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:41:18,756 [DEBUG][       Thread-604994][   transport.py][1871] : Compression: none
2025-07-01 12:41:18,756 [DEBUG][       Thread-604994][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:41:18,813 [DEBUG][       Thread-604994][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:41:18,814 [DEBUG][       Thread-604994][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:41:18,814 [DEBUG][       Thread-604994][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:41:18,814 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:41:18,815 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:41:18,869 [DEBUG][       Thread-604994][   transport.py][1871] : userauth is OK
2025-07-01 12:41:18,869 [DEBUG][       Thread-604994][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:41:18,870 [DEBUG][       Thread-604994][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:41:18,870 [DEBUG][       Thread-604994][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:41:18,870 [DEBUG][       Thread-604994][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:41:18,889 [ INFO][       Thread-604994][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:41:18,889 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:41:18,890 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:41:19,945 [DEBUG][       Thread-604994][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:41:19,945 [DEBUG][       Thread-604994][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:41:19,996 [DEBUG][       Thread-604994][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:41:19,996 [DEBUG][       Thread-604994][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:41:20,006 [DEBUG][       Thread-604994][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:41:20,014 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:41:20,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-07-01 12:41: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') -> 00000000
2025-07-01 12:41:20,033 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:41:20,033 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:41:20,033 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:41:20,041 [DEBUG][       Thread-604994][   transport.py][1871] : EOF in transport thread
2025-07-01 12:41:23,687 [DEBUG][Thread-604996 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:41:29,873 [DEBUG][Thread-604997 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:41:30,044 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:41:30,044 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:41:30,044 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:41:30,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-07-01 12:41:30,526 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 41, 5), 10.95, 47.24, 0.0, 27.14, 12.46, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:41:30,526 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:41:05
2025-07-01 12:41:30,610 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:41:30,615 [DEBUG][       Thread-604998][   transport.py][1871] : starting thread (client mode): 0x818f160
2025-07-01 12:41:30,615 [DEBUG][       Thread-604998][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:41:30,635 [DEBUG][       Thread-604998][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:41:30,635 [ INFO][       Thread-604998][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:41:30,639 [DEBUG][       Thread-604998][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:41:30,639 [DEBUG][       Thread-604998][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:41:30,639 [DEBUG][       Thread-604998][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:41:30,639 [DEBUG][       Thread-604998][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:41:30,639 [DEBUG][       Thread-604998][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:41:30,639 [DEBUG][       Thread-604998][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:41:30,639 [DEBUG][       Thread-604998][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:41:30,639 [DEBUG][       Thread-604998][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:41:30,639 [DEBUG][       Thread-604998][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:41:30,639 [DEBUG][       Thread-604998][   transport.py][1871] : client lang: <none>
2025-07-01 12:41:30,639 [DEBUG][       Thread-604998][   transport.py][1871] : server lang: <none>
2025-07-01 12:41:30,639 [DEBUG][       Thread-604998][   transport.py][1871] : kex follows: False
2025-07-01 12:41:30,640 [DEBUG][       Thread-604998][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:41:30,640 [DEBUG][       Thread-604998][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:41:30,640 [DEBUG][       Thread-604998][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:41:30,640 [DEBUG][       Thread-604998][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:41:30,640 [DEBUG][       Thread-604998][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:41:30,640 [DEBUG][       Thread-604998][   transport.py][1871] : Compression: none
2025-07-01 12:41:30,640 [DEBUG][       Thread-604998][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:41:30,658 [DEBUG][       Thread-604998][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:41:30,658 [DEBUG][       Thread-604998][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:41:30,658 [DEBUG][       Thread-604998][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:41:30,659 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:41:30,659 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:41:30,660 [DEBUG][       Thread-604998][   transport.py][1871] : userauth is OK
2025-07-01 12:41:30,674 [ INFO][       Thread-604998][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:41:30,674 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:41:31,324 [DEBUG][       Thread-604998][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:41:31,324 [DEBUG][       Thread-604998][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:41:31,365 [DEBUG][       Thread-604998][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:41:31,365 [DEBUG][       Thread-604998][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:41:31,368 [DEBUG][       Thread-604998][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:41:31,374 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:41:31,375 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:41:31,377 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:41:31,379 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:41:31,384 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:41:31,386 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:41:31,387 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:41:31,387 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:41:31,387 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.445082 -999.00  +12.30  30.04     52   +2.90 1 1 2 1 1   888    0 10.75 46.28 ----- 30.0 30.0 4.5 40.5 15.3 -24.2 14.6 -24.3 14.4 -23.1 15.1 -22.4
2025-07-01 12:41:31,387 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:41:31,388 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:41:31,388 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.445082
2025-07-01 12:41:31,388 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:41:31,389 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:41:31,389 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:41:31,389 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:41:31,389 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:41:31,389 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:41:05', tmtdew=10.95, humidity=47.24, cloud=0.0, wind=27.14, temperature=12.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:40:55.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:41:31,390 [DEBUG][       Thread-604998][   transport.py][1871] : EOF in transport thread
2025-07-01 12:41:31,472 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:41:31,484 [DEBUG][       Thread-605001][   transport.py][1871] : starting thread (client mode): 0x81e7f70
2025-07-01 12:41:31,484 [DEBUG][       Thread-605001][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:41:31,499 [DEBUG][       Thread-605001][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:41:31,499 [ INFO][       Thread-605001][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:41:31,507 [DEBUG][       Thread-605001][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:41:31,507 [DEBUG][       Thread-605001][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:41:31,507 [DEBUG][       Thread-605001][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:41:31,507 [DEBUG][       Thread-605001][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:41:31,507 [DEBUG][       Thread-605001][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:41:31,507 [DEBUG][       Thread-605001][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:41:31,507 [DEBUG][       Thread-605001][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:41:31,507 [DEBUG][       Thread-605001][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:41:31,508 [DEBUG][       Thread-605001][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:41:31,508 [DEBUG][       Thread-605001][   transport.py][1871] : client lang: <none>
2025-07-01 12:41:31,508 [DEBUG][       Thread-605001][   transport.py][1871] : server lang: <none>
2025-07-01 12:41:31,508 [DEBUG][       Thread-605001][   transport.py][1871] : kex follows: False
2025-07-01 12:41:31,508 [DEBUG][       Thread-605001][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:41:31,508 [DEBUG][       Thread-605001][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:41:31,508 [DEBUG][       Thread-605001][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:41:31,508 [DEBUG][       Thread-605001][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:41:31,508 [DEBUG][       Thread-605001][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:41:31,508 [DEBUG][       Thread-605001][   transport.py][1871] : Compression: none
2025-07-01 12:41:31,509 [DEBUG][       Thread-605001][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:41:31,565 [DEBUG][       Thread-605001][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:41:31,566 [DEBUG][       Thread-605001][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:41:31,575 [DEBUG][       Thread-605001][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:41:31,576 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:41:31,576 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:41:31,621 [DEBUG][       Thread-605001][   transport.py][1871] : userauth is OK
2025-07-01 12:41:31,621 [DEBUG][       Thread-605001][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:41:31,621 [DEBUG][       Thread-605001][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:41:31,621 [DEBUG][       Thread-605001][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:41:31,622 [DEBUG][       Thread-605001][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:41:31,640 [ INFO][       Thread-605001][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:41:31,640 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:41:31,641 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:41:32,683 [DEBUG][       Thread-605001][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:41:32,684 [DEBUG][       Thread-605001][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:41:32,734 [DEBUG][Thread-605003 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:41:32,735 [DEBUG][       Thread-605001][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:41:32,735 [DEBUG][       Thread-605001][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:41:32,744 [DEBUG][       Thread-605001][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:41:32,753 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:41:32,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-07-01 12:41:32,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-07-01 12:41:32,771 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:41:32,771 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:41:32,771 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:41:32,779 [DEBUG][       Thread-605001][   transport.py][1871] : EOF in transport thread
2025-07-01 12:41:41,757 [DEBUG][Thread-605004 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:41:42,780 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:41:42,780 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:41:42,780 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:41:42,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-07-01 12:41:43,291 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 41, 37), 10.93, 47.33, 0.0, 31.85, 12.54, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:41:43,291 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:41:37
2025-07-01 12:41:43,379 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:41:43,383 [DEBUG][       Thread-605005][   transport.py][1871] : starting thread (client mode): 0x818cf40
2025-07-01 12:41:43,383 [DEBUG][       Thread-605005][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:41:43,404 [DEBUG][       Thread-605005][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:41:43,404 [ INFO][       Thread-605005][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:41:43,407 [DEBUG][       Thread-605005][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:41:43,407 [DEBUG][       Thread-605005][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:41:43,407 [DEBUG][       Thread-605005][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:41:43,407 [DEBUG][       Thread-605005][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:41:43,407 [DEBUG][       Thread-605005][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:41:43,407 [DEBUG][       Thread-605005][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:41:43,407 [DEBUG][       Thread-605005][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:41:43,407 [DEBUG][       Thread-605005][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:41:43,407 [DEBUG][       Thread-605005][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:41:43,407 [DEBUG][       Thread-605005][   transport.py][1871] : client lang: <none>
2025-07-01 12:41:43,407 [DEBUG][       Thread-605005][   transport.py][1871] : server lang: <none>
2025-07-01 12:41:43,407 [DEBUG][       Thread-605005][   transport.py][1871] : kex follows: False
2025-07-01 12:41:43,407 [DEBUG][       Thread-605005][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:41:43,407 [DEBUG][       Thread-605005][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:41:43,407 [DEBUG][       Thread-605005][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:41:43,407 [DEBUG][       Thread-605005][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:41:43,407 [DEBUG][       Thread-605005][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:41:43,407 [DEBUG][       Thread-605005][   transport.py][1871] : Compression: none
2025-07-01 12:41:43,407 [DEBUG][       Thread-605005][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:41:43,422 [DEBUG][       Thread-605005][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:41:43,422 [DEBUG][       Thread-605005][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:41:43,422 [DEBUG][       Thread-605005][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:41:43,422 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:41:43,422 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:41:43,423 [DEBUG][       Thread-605005][   transport.py][1871] : userauth is OK
2025-07-01 12:41:43,447 [ INFO][       Thread-605005][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:41:43,447 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:41:44,070 [DEBUG][       Thread-605005][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:41:44,070 [DEBUG][       Thread-605005][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:41:44,112 [DEBUG][       Thread-605005][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:41:44,112 [DEBUG][       Thread-605005][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:41:44,115 [DEBUG][       Thread-605005][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:41:44,127 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:41:44,127 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:41:44,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:41:44,129 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:41:44,132 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:41:44,133 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:41:44,133 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:41:44,133 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:41:44,133 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.445082 -999.00  +12.30  30.04     52   +2.90 1 1 2 1 1   888    0 10.75 46.28 ----- 30.0 30.0 4.5 40.5 15.3 -24.2 14.6 -24.3 14.4 -23.1 15.1 -22.4
2025-07-01 12:41:44,133 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:41:44,133 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:41:44,133 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.445082
2025-07-01 12:41:44,134 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:41:44,134 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:41:44,134 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:41:44,134 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:41:44,134 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:41:44,134 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:41:37', tmtdew=10.93, humidity=47.33, cloud=0.0, wind=31.85, temperature=12.54, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:40:55.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:41:44,134 [DEBUG][       Thread-605005][   transport.py][1871] : EOF in transport thread
2025-07-01 12:41:44,208 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:41:44,217 [DEBUG][       Thread-605008][   transport.py][1871] : starting thread (client mode): 0x82b3a90
2025-07-01 12:41:44,217 [DEBUG][       Thread-605008][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:41:44,232 [DEBUG][       Thread-605008][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:41:44,232 [ INFO][       Thread-605008][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:41:44,240 [DEBUG][       Thread-605008][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:41:44,240 [DEBUG][       Thread-605008][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:41:44,240 [DEBUG][       Thread-605008][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:41:44,240 [DEBUG][       Thread-605008][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:41:44,240 [DEBUG][       Thread-605008][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:41:44,240 [DEBUG][       Thread-605008][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:41:44,240 [DEBUG][       Thread-605008][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:41:44,240 [DEBUG][       Thread-605008][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:41:44,240 [DEBUG][       Thread-605008][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:41:44,240 [DEBUG][       Thread-605008][   transport.py][1871] : client lang: <none>
2025-07-01 12:41:44,240 [DEBUG][       Thread-605008][   transport.py][1871] : server lang: <none>
2025-07-01 12:41:44,240 [DEBUG][       Thread-605008][   transport.py][1871] : kex follows: False
2025-07-01 12:41:44,240 [DEBUG][       Thread-605008][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:41:44,240 [DEBUG][       Thread-605008][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:41:44,240 [DEBUG][       Thread-605008][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:41:44,240 [DEBUG][       Thread-605008][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:41:44,240 [DEBUG][       Thread-605008][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:41:44,240 [DEBUG][       Thread-605008][   transport.py][1871] : Compression: none
2025-07-01 12:41:44,240 [DEBUG][       Thread-605008][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:41:44,295 [DEBUG][       Thread-605008][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:41:44,295 [DEBUG][       Thread-605008][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:41:44,295 [DEBUG][       Thread-605008][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:41:44,295 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:41:44,295 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:41:44,353 [DEBUG][       Thread-605008][   transport.py][1871] : userauth is OK
2025-07-01 12:41:44,353 [DEBUG][       Thread-605008][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:41:44,353 [DEBUG][       Thread-605008][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:41:44,353 [DEBUG][       Thread-605008][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:41:44,353 [DEBUG][       Thread-605008][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:41:44,366 [ INFO][       Thread-605008][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:41:44,367 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:41:44,367 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:41:45,387 [DEBUG][       Thread-605008][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:41:45,388 [DEBUG][       Thread-605008][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:41:45,435 [DEBUG][       Thread-605008][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:41:45,435 [DEBUG][       Thread-605008][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:41:45,444 [DEBUG][       Thread-605008][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:41:45,452 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:41:45,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-07-01 12:41:45,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-07-01 12:41:45,468 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:41:45,468 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:41:45,468 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:41:45,476 [DEBUG][       Thread-605008][   transport.py][1871] : EOF in transport thread
2025-07-01 12:41:50,778 [DEBUG][Thread-605010 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:41:55,479 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:41:55,479 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:41:55,479 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:41:55,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-07-01 12:41:55,954 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 41, 37), 10.93, 47.33, 0.0, 31.85, 12.54, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:41:55,954 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:41:37
2025-07-01 12:41:56,040 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:41:56,045 [DEBUG][       Thread-605011][   transport.py][1871] : starting thread (client mode): 0x81e5fc0
2025-07-01 12:41:56,045 [DEBUG][       Thread-605011][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:41:56,066 [DEBUG][       Thread-605011][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:41:56,066 [ INFO][       Thread-605011][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:41:56,069 [DEBUG][       Thread-605011][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:41:56,069 [DEBUG][       Thread-605011][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:41:56,069 [DEBUG][       Thread-605011][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:41:56,070 [DEBUG][       Thread-605011][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:41:56,070 [DEBUG][       Thread-605011][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:41:56,070 [DEBUG][       Thread-605011][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:41:56,070 [DEBUG][       Thread-605011][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:41:56,070 [DEBUG][       Thread-605011][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:41:56,070 [DEBUG][       Thread-605011][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:41:56,070 [DEBUG][       Thread-605011][   transport.py][1871] : client lang: <none>
2025-07-01 12:41:56,070 [DEBUG][       Thread-605011][   transport.py][1871] : server lang: <none>
2025-07-01 12:41:56,070 [DEBUG][       Thread-605011][   transport.py][1871] : kex follows: False
2025-07-01 12:41:56,070 [DEBUG][       Thread-605011][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:41:56,070 [DEBUG][       Thread-605011][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:41:56,070 [DEBUG][       Thread-605011][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:41:56,070 [DEBUG][       Thread-605011][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:41:56,070 [DEBUG][       Thread-605011][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:41:56,070 [DEBUG][       Thread-605011][   transport.py][1871] : Compression: none
2025-07-01 12:41:56,070 [DEBUG][       Thread-605011][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:41:56,087 [DEBUG][       Thread-605011][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:41:56,088 [DEBUG][       Thread-605011][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:41:56,088 [DEBUG][       Thread-605011][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:41:56,088 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:41:56,089 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:41:56,090 [DEBUG][       Thread-605011][   transport.py][1871] : userauth is OK
2025-07-01 12:41:56,115 [ INFO][       Thread-605011][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:41:56,116 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:41:56,775 [DEBUG][       Thread-605011][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:41:56,775 [DEBUG][       Thread-605011][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:41:56,817 [DEBUG][       Thread-605011][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:41:56,817 [DEBUG][       Thread-605011][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:41:56,820 [DEBUG][       Thread-605011][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:41:56,831 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:41:56,832 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:41:56,834 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:41:56,835 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:41:56,840 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:41:56,842 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:41:56,842 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:41:56,843 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:41:56,843 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.445429 -999.00  +12.30  35.73     52   +2.80 1 1 2 1 1   888    0 10.69 45.06 ----- 35.7 35.7 33.8 42.9 15.3 -23.9 14.5 -24.1 14.4 -22.3 15.0 -21.7
2025-07-01 12:41:56,844 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:41:56,844 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:41:56,844 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.445429
2025-07-01 12:41:56,844 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:41:56,845 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:41:56,845 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:41:56,845 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:41:56,845 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:41:56,846 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:41:37', tmtdew=10.93, humidity=47.33, cloud=0.0, wind=31.85, temperature=12.54, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:41:25.066', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:41:56,847 [DEBUG][       Thread-605011][   transport.py][1871] : EOF in transport thread
2025-07-01 12:41:56,937 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:41:56,948 [DEBUG][       Thread-605014][   transport.py][1871] : starting thread (client mode): 0x81067d0
2025-07-01 12:41:56,948 [DEBUG][       Thread-605014][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:41:56,963 [DEBUG][       Thread-605014][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:41:56,963 [ INFO][       Thread-605014][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:41:56,971 [DEBUG][       Thread-605014][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:41:56,971 [DEBUG][       Thread-605014][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:41:56,971 [DEBUG][       Thread-605014][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:41:56,971 [DEBUG][       Thread-605014][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:41:56,971 [DEBUG][       Thread-605014][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:41:56,971 [DEBUG][       Thread-605014][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:41:56,971 [DEBUG][       Thread-605014][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:41:56,971 [DEBUG][       Thread-605014][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:41:56,971 [DEBUG][       Thread-605014][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:41:56,971 [DEBUG][       Thread-605014][   transport.py][1871] : client lang: <none>
2025-07-01 12:41:56,971 [DEBUG][       Thread-605014][   transport.py][1871] : server lang: <none>
2025-07-01 12:41:56,972 [DEBUG][       Thread-605014][   transport.py][1871] : kex follows: False
2025-07-01 12:41:56,972 [DEBUG][       Thread-605014][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:41:56,972 [DEBUG][       Thread-605014][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:41:56,972 [DEBUG][       Thread-605014][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:41:56,972 [DEBUG][       Thread-605014][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:41:56,972 [DEBUG][       Thread-605014][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:41:56,972 [DEBUG][       Thread-605014][   transport.py][1871] : Compression: none
2025-07-01 12:41:56,972 [DEBUG][       Thread-605014][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:41:57,029 [DEBUG][       Thread-605014][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:41:57,030 [DEBUG][       Thread-605014][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:41:57,039 [DEBUG][       Thread-605014][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:41:57,039 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:41:57,040 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:41:57,086 [DEBUG][       Thread-605014][   transport.py][1871] : userauth is OK
2025-07-01 12:41:57,086 [DEBUG][       Thread-605014][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:41:57,086 [DEBUG][       Thread-605014][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:41:57,086 [DEBUG][       Thread-605014][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:41:57,086 [DEBUG][       Thread-605014][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:41:57,105 [ INFO][       Thread-605014][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:41:57,106 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:41:57,106 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:41:58,133 [DEBUG][       Thread-605014][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:41:58,133 [DEBUG][       Thread-605014][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:41:58,183 [DEBUG][       Thread-605014][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:41:58,183 [DEBUG][       Thread-605014][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:41:58,192 [DEBUG][       Thread-605014][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:41:58,201 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:41:58,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-07-01 12:41:58,210 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 12:41:58,218 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:41:58,219 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:41:58,219 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:41:58,226 [DEBUG][       Thread-605014][   transport.py][1871] : EOF in transport thread
2025-07-01 12:41:59,809 [DEBUG][Thread-605016 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:42:08,229 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:42:08,229 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:42:08,229 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:42:08,233 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:42:08,700 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 41, 37), 10.93, 47.33, 0.0, 31.85, 12.54, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:42:08,701 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:41:37
2025-07-01 12:42:08,786 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:42:08,791 [DEBUG][       Thread-605017][   transport.py][1871] : starting thread (client mode): 0x82b2080
2025-07-01 12:42:08,791 [DEBUG][       Thread-605017][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:42:08,820 [DEBUG][       Thread-605017][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:42:08,820 [ INFO][       Thread-605017][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:42:08,823 [DEBUG][       Thread-605017][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:42:08,823 [DEBUG][       Thread-605017][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:42:08,824 [DEBUG][       Thread-605017][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:42:08,824 [DEBUG][       Thread-605017][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:42:08,824 [DEBUG][       Thread-605017][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:42:08,824 [DEBUG][       Thread-605017][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:42:08,824 [DEBUG][       Thread-605017][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:42:08,824 [DEBUG][       Thread-605017][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:42:08,824 [DEBUG][       Thread-605017][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:42:08,824 [DEBUG][       Thread-605017][   transport.py][1871] : client lang: <none>
2025-07-01 12:42:08,824 [DEBUG][       Thread-605017][   transport.py][1871] : server lang: <none>
2025-07-01 12:42:08,824 [DEBUG][       Thread-605017][   transport.py][1871] : kex follows: False
2025-07-01 12:42:08,824 [DEBUG][       Thread-605017][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:42:08,824 [DEBUG][       Thread-605017][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:42:08,824 [DEBUG][       Thread-605017][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:42:08,824 [DEBUG][       Thread-605017][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:42:08,824 [DEBUG][       Thread-605017][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:42:08,824 [DEBUG][       Thread-605017][   transport.py][1871] : Compression: none
2025-07-01 12:42:08,824 [DEBUG][       Thread-605017][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:42:08,829 [DEBUG][Thread-605019 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:42:08,838 [DEBUG][       Thread-605017][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:42:08,838 [DEBUG][       Thread-605017][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:42:08,839 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:42:08,839 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:42:08,839 [DEBUG][       Thread-605017][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:42:08,840 [DEBUG][       Thread-605017][   transport.py][1871] : userauth is OK
2025-07-01 12:42:08,853 [ INFO][       Thread-605017][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:42:08,854 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:42:09,486 [DEBUG][       Thread-605017][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:42:09,486 [DEBUG][       Thread-605017][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:42:09,528 [DEBUG][       Thread-605017][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:42:09,528 [DEBUG][       Thread-605017][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:42:09,531 [DEBUG][       Thread-605017][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:42:09,542 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:42:09,542 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:42:09,543 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:42:09,544 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:42:09,548 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:42:09,549 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:42:09,549 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:42:09,549 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:42:09,549 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.445429 -999.00  +12.30  35.73     52   +2.80 1 1 2 1 1   888    0 10.69 45.06 ----- 35.7 35.7 33.8 42.9 15.3 -23.9 14.5 -24.1 14.4 -22.3 15.0 -21.7
2025-07-01 12:42:09,549 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:42:09,549 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:42:09,549 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.445429
2025-07-01 12:42:09,549 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:42:09,549 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:42:09,549 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:42:09,549 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:42:09,549 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:42:09,549 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:41:37', tmtdew=10.93, humidity=47.33, cloud=0.0, wind=31.85, temperature=12.54, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:41:25.066', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:42:09,550 [DEBUG][       Thread-605017][   transport.py][1871] : EOF in transport thread
2025-07-01 12:42:09,624 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:42:09,633 [DEBUG][       Thread-605021][   transport.py][1871] : starting thread (client mode): 0x81e5930
2025-07-01 12:42:09,633 [DEBUG][       Thread-605021][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:42:09,653 [DEBUG][       Thread-605021][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:42:09,653 [ INFO][       Thread-605021][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:42:09,661 [DEBUG][       Thread-605021][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:42:09,661 [DEBUG][       Thread-605021][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:42:09,661 [DEBUG][       Thread-605021][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:42:09,661 [DEBUG][       Thread-605021][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:42:09,661 [DEBUG][       Thread-605021][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:42:09,661 [DEBUG][       Thread-605021][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:42:09,661 [DEBUG][       Thread-605021][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:42:09,661 [DEBUG][       Thread-605021][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:42:09,661 [DEBUG][       Thread-605021][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:42:09,661 [DEBUG][       Thread-605021][   transport.py][1871] : client lang: <none>
2025-07-01 12:42:09,661 [DEBUG][       Thread-605021][   transport.py][1871] : server lang: <none>
2025-07-01 12:42:09,661 [DEBUG][       Thread-605021][   transport.py][1871] : kex follows: False
2025-07-01 12:42:09,661 [DEBUG][       Thread-605021][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:42:09,661 [DEBUG][       Thread-605021][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:42:09,661 [DEBUG][       Thread-605021][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:42:09,661 [DEBUG][       Thread-605021][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:42:09,661 [DEBUG][       Thread-605021][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:42:09,661 [DEBUG][       Thread-605021][   transport.py][1871] : Compression: none
2025-07-01 12:42:09,661 [DEBUG][       Thread-605021][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:42:09,720 [DEBUG][       Thread-605021][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:42:09,720 [DEBUG][       Thread-605021][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:42:09,720 [DEBUG][       Thread-605021][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:42:09,720 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:42:09,720 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:42:09,777 [DEBUG][       Thread-605021][   transport.py][1871] : userauth is OK
2025-07-01 12:42:09,777 [DEBUG][       Thread-605021][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:42:09,777 [DEBUG][       Thread-605021][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:42:09,777 [DEBUG][       Thread-605021][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:42:09,777 [DEBUG][       Thread-605021][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:42:09,792 [ INFO][       Thread-605021][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:42:09,792 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:42:09,792 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:42:10,817 [DEBUG][       Thread-605021][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:42:10,817 [DEBUG][       Thread-605021][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:42:10,867 [DEBUG][       Thread-605021][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:42:10,867 [DEBUG][       Thread-605021][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:42:10,876 [DEBUG][       Thread-605021][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:42:10,884 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:42: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')
2025-07-01 12:42:10,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-07-01 12:42:10,904 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:42:10,904 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:42:10,904 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:42:10,916 [DEBUG][       Thread-605021][   transport.py][1871] : EOF in transport thread
2025-07-01 12:42:17,851 [DEBUG][Thread-605023 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:42:18,051 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:42:18,052 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:42:20,914 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:42:20,914 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:42:20,914 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:42:20,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-07-01 12:42:21,426 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 42, 8), 10.98, 47.18, 0.0, 32.89, 12.57, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:42:21,426 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:42:08
2025-07-01 12:42:21,519 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:42:21,523 [DEBUG][       Thread-605024][   transport.py][1871] : starting thread (client mode): 0x81e5690
2025-07-01 12:42:21,523 [DEBUG][       Thread-605024][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:42:21,545 [DEBUG][       Thread-605024][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:42:21,545 [ INFO][       Thread-605024][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:42:21,548 [DEBUG][       Thread-605024][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:42:21,548 [DEBUG][       Thread-605024][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:42:21,548 [DEBUG][       Thread-605024][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:42:21,548 [DEBUG][       Thread-605024][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:42:21,548 [DEBUG][       Thread-605024][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:42:21,548 [DEBUG][       Thread-605024][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:42:21,548 [DEBUG][       Thread-605024][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:42:21,548 [DEBUG][       Thread-605024][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:42:21,548 [DEBUG][       Thread-605024][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:42:21,548 [DEBUG][       Thread-605024][   transport.py][1871] : client lang: <none>
2025-07-01 12:42:21,548 [DEBUG][       Thread-605024][   transport.py][1871] : server lang: <none>
2025-07-01 12:42:21,548 [DEBUG][       Thread-605024][   transport.py][1871] : kex follows: False
2025-07-01 12:42:21,548 [DEBUG][       Thread-605024][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:42:21,548 [DEBUG][       Thread-605024][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:42:21,548 [DEBUG][       Thread-605024][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:42:21,548 [DEBUG][       Thread-605024][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:42:21,548 [DEBUG][       Thread-605024][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:42:21,548 [DEBUG][       Thread-605024][   transport.py][1871] : Compression: none
2025-07-01 12:42:21,548 [DEBUG][       Thread-605024][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:42:21,562 [DEBUG][       Thread-605024][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:42:21,562 [DEBUG][       Thread-605024][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:42:21,562 [DEBUG][       Thread-605024][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:42:21,562 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:42:21,562 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:42:21,562 [DEBUG][       Thread-605024][   transport.py][1871] : userauth is OK
2025-07-01 12:42:21,575 [ INFO][       Thread-605024][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:42:21,575 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:42:22,208 [DEBUG][       Thread-605024][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:42:22,208 [DEBUG][       Thread-605024][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:42:22,252 [DEBUG][       Thread-605024][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:42:22,252 [DEBUG][       Thread-605024][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:42:22,254 [DEBUG][       Thread-605024][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:42:22,260 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:42:22,260 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:42:22,261 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:42:22,261 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:42:22,264 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:42:22,265 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:42:22,265 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:42:22,265 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:42:22,265 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.445776 -999.00  +12.30  36.63     52   +2.90 1 2 2 1 1   888    0 10.55 41.08 ----- 29.2 36.6 46.8 46.9 15.4 -22.6 14.7 -23.5 14.4 -21.9 15.1 -20.9
2025-07-01 12:42:22,265 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:42:22,265 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:42:22,265 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.445776
2025-07-01 12:42:22,265 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:42:22,265 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:42:22,265 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:42:22,265 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:42:22,265 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 12:42:22,265 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:42:08', tmtdew=10.98, humidity=47.18, cloud=0.0, wind=32.89, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:41:55.046', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:42:22,265 [DEBUG][       Thread-605024][   transport.py][1871] : EOF in transport thread
2025-07-01 12:42:22,340 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:42:22,350 [DEBUG][       Thread-605027][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 12:42:22,350 [DEBUG][       Thread-605027][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:42:22,364 [DEBUG][       Thread-605027][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:42:22,364 [ INFO][       Thread-605027][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:42:22,372 [DEBUG][       Thread-605027][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:42:22,372 [DEBUG][       Thread-605027][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:42:22,372 [DEBUG][       Thread-605027][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:42:22,372 [DEBUG][       Thread-605027][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:42:22,372 [DEBUG][       Thread-605027][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:42:22,372 [DEBUG][       Thread-605027][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:42:22,372 [DEBUG][       Thread-605027][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:42:22,372 [DEBUG][       Thread-605027][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:42:22,372 [DEBUG][       Thread-605027][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:42:22,372 [DEBUG][       Thread-605027][   transport.py][1871] : client lang: <none>
2025-07-01 12:42:22,372 [DEBUG][       Thread-605027][   transport.py][1871] : server lang: <none>
2025-07-01 12:42:22,372 [DEBUG][       Thread-605027][   transport.py][1871] : kex follows: False
2025-07-01 12:42:22,372 [DEBUG][       Thread-605027][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:42:22,372 [DEBUG][       Thread-605027][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:42:22,372 [DEBUG][       Thread-605027][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:42:22,372 [DEBUG][       Thread-605027][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:42:22,372 [DEBUG][       Thread-605027][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:42:22,372 [DEBUG][       Thread-605027][   transport.py][1871] : Compression: none
2025-07-01 12:42:22,372 [DEBUG][       Thread-605027][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:42:22,428 [DEBUG][       Thread-605027][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:42:22,428 [DEBUG][       Thread-605027][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:42:22,428 [DEBUG][       Thread-605027][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:42:22,428 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:42:22,428 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:42:22,485 [DEBUG][       Thread-605027][   transport.py][1871] : userauth is OK
2025-07-01 12:42:22,485 [DEBUG][       Thread-605027][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:42:22,485 [DEBUG][       Thread-605027][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:42:22,485 [DEBUG][       Thread-605027][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:42:22,486 [DEBUG][       Thread-605027][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:42:22,499 [ INFO][       Thread-605027][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:42:22,499 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:42:22,499 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:42:23,537 [DEBUG][       Thread-605027][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:42:23,537 [DEBUG][       Thread-605027][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:42:23,587 [DEBUG][       Thread-605027][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:42:23,587 [DEBUG][       Thread-605027][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:42:23,596 [DEBUG][       Thread-605027][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:42:23,604 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:42:23,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')
2025-07-01 12:42:23,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-07-01 12:42:23,622 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:42:23,622 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:42:23,622 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:42:23,634 [DEBUG][       Thread-605027][   transport.py][1871] : EOF in transport thread
2025-07-01 12:42:26,873 [DEBUG][Thread-605029 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:42:29,938 [DEBUG][Thread-605030 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:42:33,631 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:42:33,631 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:42:33,631 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:42:33,634 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:42:34,115 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 42, 8), 10.98, 47.18, 0.0, 32.89, 12.57, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:42:34,115 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:42:08
2025-07-01 12:42:34,200 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:42:34,204 [DEBUG][       Thread-605031][   transport.py][1871] : starting thread (client mode): 0x83c8070
2025-07-01 12:42:34,204 [DEBUG][       Thread-605031][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:42:34,225 [DEBUG][       Thread-605031][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:42:34,225 [ INFO][       Thread-605031][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:42:34,227 [DEBUG][       Thread-605031][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:42:34,227 [DEBUG][       Thread-605031][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:42:34,227 [DEBUG][       Thread-605031][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:42:34,227 [DEBUG][       Thread-605031][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:42:34,227 [DEBUG][       Thread-605031][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:42:34,227 [DEBUG][       Thread-605031][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:42:34,227 [DEBUG][       Thread-605031][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:42:34,227 [DEBUG][       Thread-605031][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:42:34,227 [DEBUG][       Thread-605031][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:42:34,227 [DEBUG][       Thread-605031][   transport.py][1871] : client lang: <none>
2025-07-01 12:42:34,227 [DEBUG][       Thread-605031][   transport.py][1871] : server lang: <none>
2025-07-01 12:42:34,227 [DEBUG][       Thread-605031][   transport.py][1871] : kex follows: False
2025-07-01 12:42:34,227 [DEBUG][       Thread-605031][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:42:34,227 [DEBUG][       Thread-605031][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:42:34,227 [DEBUG][       Thread-605031][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:42:34,228 [DEBUG][       Thread-605031][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:42:34,228 [DEBUG][       Thread-605031][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:42:34,228 [DEBUG][       Thread-605031][   transport.py][1871] : Compression: none
2025-07-01 12:42:34,228 [DEBUG][       Thread-605031][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:42:34,245 [DEBUG][       Thread-605031][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:42:34,246 [DEBUG][       Thread-605031][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:42:34,246 [DEBUG][       Thread-605031][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:42:34,247 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:42:34,247 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:42:34,248 [DEBUG][       Thread-605031][   transport.py][1871] : userauth is OK
2025-07-01 12:42:34,273 [ INFO][       Thread-605031][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:42:34,273 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:42:34,873 [DEBUG][       Thread-605031][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:42:34,873 [DEBUG][       Thread-605031][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:42:34,917 [DEBUG][       Thread-605031][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:42:34,917 [DEBUG][       Thread-605031][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:42:34,920 [DEBUG][       Thread-605031][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:42:34,933 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:42:34,934 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:42:34,936 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:42:34,937 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:42:34,943 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:42:34,944 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:42:34,945 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:42:34,945 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:42:34,945 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.445776 -999.00  +12.30  36.63     52   +2.90 1 2 2 1 1   888    0 10.55 41.08 ----- 29.2 36.6 46.8 46.9 15.4 -22.6 14.7 -23.5 14.4 -21.9 15.1 -20.9
2025-07-01 12:42:34,946 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:42:34,946 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:42:34,946 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.445776
2025-07-01 12:42:34,946 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:42:34,947 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:42:34,947 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:42:34,947 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:42:34,947 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 12:42:34,947 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:42:08', tmtdew=10.98, humidity=47.18, cloud=0.0, wind=32.89, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:41:55.046', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:42:34,947 [DEBUG][       Thread-605031][   transport.py][1871] : EOF in transport thread
2025-07-01 12:42:35,030 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:42:35,042 [DEBUG][       Thread-605034][   transport.py][1871] : starting thread (client mode): 0x81e7a90
2025-07-01 12:42:35,042 [DEBUG][       Thread-605034][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:42:35,057 [DEBUG][       Thread-605034][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:42:35,057 [ INFO][       Thread-605034][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:42:35,064 [DEBUG][       Thread-605034][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:42:35,065 [DEBUG][       Thread-605034][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:42:35,065 [DEBUG][       Thread-605034][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:42:35,065 [DEBUG][       Thread-605034][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:42:35,065 [DEBUG][       Thread-605034][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:42:35,065 [DEBUG][       Thread-605034][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:42:35,065 [DEBUG][       Thread-605034][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:42:35,065 [DEBUG][       Thread-605034][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:42:35,065 [DEBUG][       Thread-605034][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:42:35,065 [DEBUG][       Thread-605034][   transport.py][1871] : client lang: <none>
2025-07-01 12:42:35,065 [DEBUG][       Thread-605034][   transport.py][1871] : server lang: <none>
2025-07-01 12:42:35,065 [DEBUG][       Thread-605034][   transport.py][1871] : kex follows: False
2025-07-01 12:42:35,065 [DEBUG][       Thread-605034][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:42:35,065 [DEBUG][       Thread-605034][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:42:35,065 [DEBUG][       Thread-605034][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:42:35,065 [DEBUG][       Thread-605034][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:42:35,065 [DEBUG][       Thread-605034][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:42:35,065 [DEBUG][       Thread-605034][   transport.py][1871] : Compression: none
2025-07-01 12:42:35,065 [DEBUG][       Thread-605034][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:42:35,122 [DEBUG][       Thread-605034][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:42:35,122 [DEBUG][       Thread-605034][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:42:35,123 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:42:35,124 [DEBUG][       Thread-605034][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:42:35,124 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:42:35,178 [DEBUG][       Thread-605034][   transport.py][1871] : userauth is OK
2025-07-01 12:42:35,178 [DEBUG][       Thread-605034][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:42:35,179 [DEBUG][       Thread-605034][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:42:35,179 [DEBUG][       Thread-605034][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:42:35,179 [DEBUG][       Thread-605034][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:42:35,197 [ INFO][       Thread-605034][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:42:35,198 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:42:35,198 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:42:35,907 [DEBUG][Thread-605036 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:42:36,202 [DEBUG][       Thread-605034][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:42:36,203 [DEBUG][       Thread-605034][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:42:36,253 [DEBUG][       Thread-605034][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:42:36,253 [DEBUG][       Thread-605034][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:42:36,262 [DEBUG][       Thread-605034][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:42:36,272 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:42: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-07-01 12:42:36,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-07-01 12:42:36,290 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:42:36,290 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:42:36,290 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:42:36,298 [DEBUG][       Thread-605034][   transport.py][1871] : EOF in transport thread
2025-07-01 12:42:44,927 [DEBUG][Thread-605037 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:42:46,300 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:42:46,300 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:42:46,300 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:42: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-07-01 12:42:46,779 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 42, 40), 10.89, 47.58, 0.0, 22.99, 12.52, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:42:46,779 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:42:40
2025-07-01 12:42:46,863 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:42:46,868 [DEBUG][       Thread-605038][   transport.py][1871] : starting thread (client mode): 0x81da740
2025-07-01 12:42:46,868 [DEBUG][       Thread-605038][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:42:46,891 [DEBUG][       Thread-605038][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:42:46,891 [ INFO][       Thread-605038][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:42:46,894 [DEBUG][       Thread-605038][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:42:46,894 [DEBUG][       Thread-605038][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:42:46,894 [DEBUG][       Thread-605038][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:42:46,894 [DEBUG][       Thread-605038][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:42:46,894 [DEBUG][       Thread-605038][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:42:46,894 [DEBUG][       Thread-605038][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:42:46,894 [DEBUG][       Thread-605038][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:42:46,894 [DEBUG][       Thread-605038][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:42:46,894 [DEBUG][       Thread-605038][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:42:46,894 [DEBUG][       Thread-605038][   transport.py][1871] : client lang: <none>
2025-07-01 12:42:46,894 [DEBUG][       Thread-605038][   transport.py][1871] : server lang: <none>
2025-07-01 12:42:46,894 [DEBUG][       Thread-605038][   transport.py][1871] : kex follows: False
2025-07-01 12:42:46,894 [DEBUG][       Thread-605038][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:42:46,894 [DEBUG][       Thread-605038][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:42:46,894 [DEBUG][       Thread-605038][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:42:46,895 [DEBUG][       Thread-605038][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:42:46,895 [DEBUG][       Thread-605038][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:42:46,895 [DEBUG][       Thread-605038][   transport.py][1871] : Compression: none
2025-07-01 12:42:46,895 [DEBUG][       Thread-605038][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:42:46,907 [DEBUG][       Thread-605038][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:42:46,907 [DEBUG][       Thread-605038][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:42:46,908 [DEBUG][       Thread-605038][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:42:46,908 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:42:46,908 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:42:46,909 [DEBUG][       Thread-605038][   transport.py][1871] : userauth is OK
2025-07-01 12:42:46,934 [ INFO][       Thread-605038][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:42:46,934 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:42:47,722 [DEBUG][       Thread-605038][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:42:47,722 [DEBUG][       Thread-605038][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:42:47,769 [DEBUG][       Thread-605038][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:42:47,769 [DEBUG][       Thread-605038][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:42:47,772 [DEBUG][       Thread-605038][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:42:47,785 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:42:47,785 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:42:47,787 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:42:47,790 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:42:47,796 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:42:47,799 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:42:47,799 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:42:47,799 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:42:47,800 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.445776 -999.00  +12.30  36.63     52   +2.90 1 2 2 1 1   888    0 10.55 41.08 ----- 29.2 36.6 46.8 46.9 15.4 -22.6 14.7 -23.5 14.4 -21.9 15.1 -20.9
2025-07-01 12:42:47,800 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:42:47,800 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:42:47,800 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.445776
2025-07-01 12:42:47,800 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:42:47,801 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:42:47,801 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:42:47,801 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:42:47,801 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 12:42:47,801 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:42:40', tmtdew=10.89, humidity=47.58, cloud=0.0, wind=22.99, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:41:55.046', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:42:47,802 [DEBUG][       Thread-605038][   transport.py][1871] : EOF in transport thread
2025-07-01 12:42:47,885 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:42:47,895 [DEBUG][       Thread-605041][   transport.py][1871] : starting thread (client mode): 0x827ec50
2025-07-01 12:42:47,895 [DEBUG][       Thread-605041][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:42:47,909 [DEBUG][       Thread-605041][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:42:47,909 [ INFO][       Thread-605041][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:42:47,917 [DEBUG][       Thread-605041][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:42:47,917 [DEBUG][       Thread-605041][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:42:47,917 [DEBUG][       Thread-605041][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:42:47,917 [DEBUG][       Thread-605041][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:42:47,917 [DEBUG][       Thread-605041][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:42:47,917 [DEBUG][       Thread-605041][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:42:47,917 [DEBUG][       Thread-605041][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:42:47,918 [DEBUG][       Thread-605041][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:42:47,918 [DEBUG][       Thread-605041][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:42:47,918 [DEBUG][       Thread-605041][   transport.py][1871] : client lang: <none>
2025-07-01 12:42:47,918 [DEBUG][       Thread-605041][   transport.py][1871] : server lang: <none>
2025-07-01 12:42:47,918 [DEBUG][       Thread-605041][   transport.py][1871] : kex follows: False
2025-07-01 12:42:47,918 [DEBUG][       Thread-605041][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:42:47,918 [DEBUG][       Thread-605041][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:42:47,918 [DEBUG][       Thread-605041][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:42:47,918 [DEBUG][       Thread-605041][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:42:47,918 [DEBUG][       Thread-605041][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:42:47,918 [DEBUG][       Thread-605041][   transport.py][1871] : Compression: none
2025-07-01 12:42:47,918 [DEBUG][       Thread-605041][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:42:47,978 [DEBUG][       Thread-605041][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:42:47,978 [DEBUG][       Thread-605041][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:42:47,979 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:42:47,979 [DEBUG][       Thread-605041][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:42:47,980 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:42:48,033 [DEBUG][       Thread-605041][   transport.py][1871] : userauth is OK
2025-07-01 12:42:48,033 [DEBUG][       Thread-605041][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:42:48,034 [DEBUG][       Thread-605041][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:42:48,034 [DEBUG][       Thread-605041][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:42:48,034 [DEBUG][       Thread-605041][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:42:48,048 [ INFO][       Thread-605041][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:42:48,048 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:42:48,048 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:42:49,070 [DEBUG][       Thread-605041][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:42:49,070 [DEBUG][       Thread-605041][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:42:49,120 [DEBUG][       Thread-605041][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:42:49,120 [DEBUG][       Thread-605041][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:42:49,129 [DEBUG][       Thread-605041][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:42:49,137 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:42:49,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-07-01 12:42:49,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-07-01 12:42:49,155 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:42:49,155 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:42:49,156 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:42:49,164 [DEBUG][       Thread-605041][   transport.py][1871] : EOF in transport thread
2025-07-01 12:42:53,948 [DEBUG][Thread-605043 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:42:59,166 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:42:59,167 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:42:59,167 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:42:59,169 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:42:59,660 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 42, 40), 10.89, 47.58, 0.0, 22.99, 12.52, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:42:59,661 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:42:40
2025-07-01 12:42:59,752 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:42:59,758 [DEBUG][       Thread-605044][   transport.py][1871] : starting thread (client mode): 0x81da740
2025-07-01 12:42:59,758 [DEBUG][       Thread-605044][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:42:59,779 [DEBUG][       Thread-605044][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:42:59,779 [ INFO][       Thread-605044][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:42:59,782 [DEBUG][       Thread-605044][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:42:59,782 [DEBUG][       Thread-605044][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:42:59,782 [DEBUG][       Thread-605044][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:42:59,782 [DEBUG][       Thread-605044][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:42:59,782 [DEBUG][       Thread-605044][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:42:59,782 [DEBUG][       Thread-605044][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:42:59,782 [DEBUG][       Thread-605044][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:42:59,782 [DEBUG][       Thread-605044][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:42:59,782 [DEBUG][       Thread-605044][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:42:59,782 [DEBUG][       Thread-605044][   transport.py][1871] : client lang: <none>
2025-07-01 12:42:59,782 [DEBUG][       Thread-605044][   transport.py][1871] : server lang: <none>
2025-07-01 12:42:59,782 [DEBUG][       Thread-605044][   transport.py][1871] : kex follows: False
2025-07-01 12:42:59,782 [DEBUG][       Thread-605044][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:42:59,782 [DEBUG][       Thread-605044][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:42:59,782 [DEBUG][       Thread-605044][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:42:59,782 [DEBUG][       Thread-605044][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:42:59,782 [DEBUG][       Thread-605044][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:42:59,782 [DEBUG][       Thread-605044][   transport.py][1871] : Compression: none
2025-07-01 12:42:59,782 [DEBUG][       Thread-605044][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:42:59,798 [DEBUG][       Thread-605044][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:42:59,798 [DEBUG][       Thread-605044][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:42:59,798 [DEBUG][       Thread-605044][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:42:59,798 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:42:59,798 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:42:59,798 [DEBUG][       Thread-605044][   transport.py][1871] : userauth is OK
2025-07-01 12:42:59,822 [ INFO][       Thread-605044][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:42:59,822 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:43:00,475 [DEBUG][       Thread-605044][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:43:00,475 [DEBUG][       Thread-605044][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:43:00,516 [DEBUG][       Thread-605044][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:43:00,516 [DEBUG][       Thread-605044][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:43:00,519 [DEBUG][       Thread-605044][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:43:00,532 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:43:00,533 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:43:00,534 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:43:00,535 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:43:00,538 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:43:00,539 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:43:00,539 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:43:00,539 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:43:00,539 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.446124 -999.00  +12.50  30.22     52   +3.10 1 2 2 1 1   888    0 10.52 39.84 ----- 19.9 30.2 20.6 38.8 15.5 -22.9 14.7 -23.6 14.5 -22.4 15.2 -21.0
2025-07-01 12:43:00,539 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:43:00,539 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:43:00,539 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.446124
2025-07-01 12:43:00,539 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:43:00,539 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:43:00,539 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:43:00,539 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:43:00,539 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 12:43:00,539 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:42:40', tmtdew=10.89, humidity=47.58, cloud=0.0, wind=22.99, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:42:25.114', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:43:00,540 [DEBUG][       Thread-605044][   transport.py][1871] : EOF in transport thread
2025-07-01 12:43:00,614 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:43:00,625 [DEBUG][       Thread-605047][   transport.py][1871] : starting thread (client mode): 0x83c84f0
2025-07-01 12:43:00,625 [DEBUG][       Thread-605047][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:43:00,646 [DEBUG][       Thread-605047][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:43:00,646 [ INFO][       Thread-605047][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:43:00,653 [DEBUG][       Thread-605047][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:43:00,653 [DEBUG][       Thread-605047][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:43:00,653 [DEBUG][       Thread-605047][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:43:00,653 [DEBUG][       Thread-605047][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:43:00,653 [DEBUG][       Thread-605047][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:43:00,654 [DEBUG][       Thread-605047][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:43:00,654 [DEBUG][       Thread-605047][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:43:00,654 [DEBUG][       Thread-605047][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:43:00,654 [DEBUG][       Thread-605047][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:43:00,654 [DEBUG][       Thread-605047][   transport.py][1871] : client lang: <none>
2025-07-01 12:43:00,654 [DEBUG][       Thread-605047][   transport.py][1871] : server lang: <none>
2025-07-01 12:43:00,654 [DEBUG][       Thread-605047][   transport.py][1871] : kex follows: False
2025-07-01 12:43:00,654 [DEBUG][       Thread-605047][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:43:00,654 [DEBUG][       Thread-605047][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:43:00,654 [DEBUG][       Thread-605047][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:43:00,654 [DEBUG][       Thread-605047][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:43:00,654 [DEBUG][       Thread-605047][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:43:00,654 [DEBUG][       Thread-605047][   transport.py][1871] : Compression: none
2025-07-01 12:43:00,654 [DEBUG][       Thread-605047][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:43:00,712 [DEBUG][       Thread-605047][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:43:00,712 [DEBUG][       Thread-605047][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:43:00,712 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:43:00,712 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:43:00,713 [DEBUG][       Thread-605047][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:43:00,769 [DEBUG][       Thread-605047][   transport.py][1871] : userauth is OK
2025-07-01 12:43:00,770 [DEBUG][       Thread-605047][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:43:00,770 [DEBUG][       Thread-605047][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:43:00,770 [DEBUG][       Thread-605047][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:43:00,770 [DEBUG][       Thread-605047][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:43:00,789 [ INFO][       Thread-605047][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:43:00,789 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:43:00,789 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:43:01,820 [DEBUG][       Thread-605047][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:43:01,820 [DEBUG][       Thread-605047][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:43:01,877 [DEBUG][       Thread-605047][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:43:01,877 [DEBUG][       Thread-605047][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:43:01,889 [DEBUG][       Thread-605047][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:43:01,899 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:43:01,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-07-01 12:43:01,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-07-01 12:43:01,916 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:43:01,916 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:43:01,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:43:01,924 [DEBUG][       Thread-605047][   transport.py][1871] : EOF in transport thread
2025-07-01 12:43:02,988 [DEBUG][Thread-605049 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:43:11,924 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:43:11,924 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:43:11,924 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:43:11,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-07-01 12:43:12,008 [DEBUG][Thread-605050 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:43:12,375 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 42, 40), 10.89, 47.58, 0.0, 22.99, 12.52, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:43:12,375 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:42:40
2025-07-01 12:43:12,459 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:43:12,463 [DEBUG][       Thread-605051][   transport.py][1871] : starting thread (client mode): 0x81e7e50
2025-07-01 12:43:12,463 [DEBUG][       Thread-605051][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:43:12,484 [DEBUG][       Thread-605051][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:43:12,484 [ INFO][       Thread-605051][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:43:12,488 [DEBUG][       Thread-605051][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:43:12,488 [DEBUG][       Thread-605051][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:43:12,488 [DEBUG][       Thread-605051][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:43:12,488 [DEBUG][       Thread-605051][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:43:12,488 [DEBUG][       Thread-605051][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:43:12,488 [DEBUG][       Thread-605051][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:43:12,488 [DEBUG][       Thread-605051][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:43:12,488 [DEBUG][       Thread-605051][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:43:12,488 [DEBUG][       Thread-605051][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:43:12,488 [DEBUG][       Thread-605051][   transport.py][1871] : client lang: <none>
2025-07-01 12:43:12,488 [DEBUG][       Thread-605051][   transport.py][1871] : server lang: <none>
2025-07-01 12:43:12,488 [DEBUG][       Thread-605051][   transport.py][1871] : kex follows: False
2025-07-01 12:43:12,488 [DEBUG][       Thread-605051][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:43:12,488 [DEBUG][       Thread-605051][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:43:12,488 [DEBUG][       Thread-605051][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:43:12,488 [DEBUG][       Thread-605051][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:43:12,488 [DEBUG][       Thread-605051][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:43:12,488 [DEBUG][       Thread-605051][   transport.py][1871] : Compression: none
2025-07-01 12:43:12,488 [DEBUG][       Thread-605051][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:43:12,505 [DEBUG][       Thread-605051][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:43:12,505 [DEBUG][       Thread-605051][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:43:12,506 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:43:12,506 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:43:12,507 [DEBUG][       Thread-605051][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:43:12,507 [DEBUG][       Thread-605051][   transport.py][1871] : userauth is OK
2025-07-01 12:43:12,532 [ INFO][       Thread-605051][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:43:12,532 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:43:13,370 [DEBUG][       Thread-605051][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:43:13,370 [DEBUG][       Thread-605051][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:43:13,412 [DEBUG][       Thread-605051][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:43:13,412 [DEBUG][       Thread-605051][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:43:13,415 [DEBUG][       Thread-605051][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:43:13,427 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:43:13,427 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:43:13,428 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:43:13,429 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:43:13,432 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:43:13,433 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:43:13,433 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:43:13,433 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:43:13,433 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.446124 -999.00  +12.50  30.22     52   +3.10 1 2 2 1 1   888    0 10.52 39.84 ----- 19.9 30.2 20.6 38.8 15.5 -22.9 14.7 -23.6 14.5 -22.4 15.2 -21.0
2025-07-01 12:43:13,433 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:43:13,433 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:43:13,433 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.446124
2025-07-01 12:43:13,433 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:43:13,433 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:43:13,434 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:43:13,434 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:43:13,434 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 12:43:13,434 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:42:40', tmtdew=10.89, humidity=47.58, cloud=0.0, wind=22.99, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:42:25.114', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:43:13,434 [DEBUG][       Thread-605051][   transport.py][1871] : EOF in transport thread
2025-07-01 12:43:13,508 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:43:13,517 [DEBUG][       Thread-605054][   transport.py][1871] : starting thread (client mode): 0x81db700
2025-07-01 12:43:13,517 [DEBUG][       Thread-605054][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:43:13,533 [DEBUG][       Thread-605054][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:43:13,533 [ INFO][       Thread-605054][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:43:13,540 [DEBUG][       Thread-605054][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:43:13,540 [DEBUG][       Thread-605054][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:43:13,540 [DEBUG][       Thread-605054][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:43:13,540 [DEBUG][       Thread-605054][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:43:13,540 [DEBUG][       Thread-605054][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:43:13,540 [DEBUG][       Thread-605054][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:43:13,540 [DEBUG][       Thread-605054][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:43:13,540 [DEBUG][       Thread-605054][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:43:13,540 [DEBUG][       Thread-605054][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:43:13,540 [DEBUG][       Thread-605054][   transport.py][1871] : client lang: <none>
2025-07-01 12:43:13,540 [DEBUG][       Thread-605054][   transport.py][1871] : server lang: <none>
2025-07-01 12:43:13,540 [DEBUG][       Thread-605054][   transport.py][1871] : kex follows: False
2025-07-01 12:43:13,540 [DEBUG][       Thread-605054][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:43:13,540 [DEBUG][       Thread-605054][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:43:13,540 [DEBUG][       Thread-605054][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:43:13,540 [DEBUG][       Thread-605054][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:43:13,540 [DEBUG][       Thread-605054][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:43:13,540 [DEBUG][       Thread-605054][   transport.py][1871] : Compression: none
2025-07-01 12:43:13,540 [DEBUG][       Thread-605054][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:43:13,600 [DEBUG][       Thread-605054][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:43:13,601 [DEBUG][       Thread-605054][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:43:13,601 [DEBUG][       Thread-605054][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:43:13,601 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:43:13,601 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:43:13,658 [DEBUG][       Thread-605054][   transport.py][1871] : userauth is OK
2025-07-01 12:43:13,658 [DEBUG][       Thread-605054][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:43:13,658 [DEBUG][       Thread-605054][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:43:13,658 [DEBUG][       Thread-605054][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:43:13,658 [DEBUG][       Thread-605054][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:43:13,671 [ INFO][       Thread-605054][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:43:13,672 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:43:13,672 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:43:14,698 [DEBUG][       Thread-605054][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:43:14,698 [DEBUG][       Thread-605054][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:43:14,752 [DEBUG][       Thread-605054][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:43:14,752 [DEBUG][       Thread-605054][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:43:14,761 [DEBUG][       Thread-605054][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:43:14,771 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:43:14,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-07-01 12:43:14,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-07-01 12:43:14,792 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:43:14,792 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:43:14,793 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:43:14,801 [DEBUG][       Thread-605054][   transport.py][1871] : EOF in transport thread
2025-07-01 12:43:18,199 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:43:18,200 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:43:21,028 [DEBUG][Thread-605056 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:43:24,803 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:43:24,803 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:43:24,804 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:43:24,806 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:43:25,272 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 43, 12), 10.99, 46.93, 0.0, 31.37, 12.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:43:25,273 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:43:12
2025-07-01 12:43:25,356 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:43:25,362 [DEBUG][       Thread-605057][   transport.py][1871] : starting thread (client mode): 0x75ab670
2025-07-01 12:43:25,362 [DEBUG][       Thread-605057][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:43:25,380 [DEBUG][       Thread-605057][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:43:25,380 [ INFO][       Thread-605057][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:43:25,382 [DEBUG][       Thread-605057][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:43:25,382 [DEBUG][       Thread-605057][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:43:25,382 [DEBUG][       Thread-605057][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:43:25,382 [DEBUG][       Thread-605057][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:43:25,382 [DEBUG][       Thread-605057][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:43:25,382 [DEBUG][       Thread-605057][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:43:25,382 [DEBUG][       Thread-605057][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:43:25,382 [DEBUG][       Thread-605057][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:43:25,382 [DEBUG][       Thread-605057][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:43:25,382 [DEBUG][       Thread-605057][   transport.py][1871] : client lang: <none>
2025-07-01 12:43:25,382 [DEBUG][       Thread-605057][   transport.py][1871] : server lang: <none>
2025-07-01 12:43:25,382 [DEBUG][       Thread-605057][   transport.py][1871] : kex follows: False
2025-07-01 12:43:25,382 [DEBUG][       Thread-605057][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:43:25,382 [DEBUG][       Thread-605057][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:43:25,382 [DEBUG][       Thread-605057][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:43:25,382 [DEBUG][       Thread-605057][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:43:25,382 [DEBUG][       Thread-605057][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:43:25,382 [DEBUG][       Thread-605057][   transport.py][1871] : Compression: none
2025-07-01 12:43:25,382 [DEBUG][       Thread-605057][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:43:25,397 [DEBUG][       Thread-605057][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:43:25,397 [DEBUG][       Thread-605057][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:43:25,397 [DEBUG][       Thread-605057][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:43:25,397 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:43:25,397 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:43:25,398 [DEBUG][       Thread-605057][   transport.py][1871] : userauth is OK
2025-07-01 12:43:25,410 [ INFO][       Thread-605057][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:43:25,410 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:43:26,219 [DEBUG][       Thread-605057][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:43:26,219 [DEBUG][       Thread-605057][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:43:26,261 [DEBUG][       Thread-605057][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:43:26,261 [DEBUG][       Thread-605057][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:43:26,264 [DEBUG][       Thread-605057][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:43:26,270 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:43:26,271 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:43:26,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:43:26,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:43:26,277 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:43:26,278 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:43:26,278 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:43:26,279 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:43:26,279 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.446124 -999.00  +12.50  30.22     52   +3.10 1 2 2 1 1   888    0 10.52 39.84 ----- 19.9 30.2 20.6 38.8 15.5 -22.9 14.7 -23.6 14.5 -22.4 15.2 -21.0
2025-07-01 12:43:26,279 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:43:26,279 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:43:26,279 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.446124
2025-07-01 12:43:26,280 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:43:26,280 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:43:26,280 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:43:26,280 [DEBUG][       Thread-605057][   transport.py][1871] : EOF in transport thread
2025-07-01 12:43:26,281 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:43:26,281 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 12:43:26,281 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:43:12', tmtdew=10.99, humidity=46.93, cloud=0.0, wind=31.37, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:42:25.114', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:43:26,365 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:43:26,377 [DEBUG][       Thread-605060][   transport.py][1871] : starting thread (client mode): 0x81d82e0
2025-07-01 12:43:26,377 [DEBUG][       Thread-605060][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:43:26,392 [DEBUG][       Thread-605060][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:43:26,392 [ INFO][       Thread-605060][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:43:26,400 [DEBUG][       Thread-605060][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:43:26,400 [DEBUG][       Thread-605060][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:43:26,400 [DEBUG][       Thread-605060][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:43:26,400 [DEBUG][       Thread-605060][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:43:26,400 [DEBUG][       Thread-605060][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:43:26,400 [DEBUG][       Thread-605060][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:43:26,400 [DEBUG][       Thread-605060][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:43:26,400 [DEBUG][       Thread-605060][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:43:26,400 [DEBUG][       Thread-605060][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:43:26,400 [DEBUG][       Thread-605060][   transport.py][1871] : client lang: <none>
2025-07-01 12:43:26,400 [DEBUG][       Thread-605060][   transport.py][1871] : server lang: <none>
2025-07-01 12:43:26,400 [DEBUG][       Thread-605060][   transport.py][1871] : kex follows: False
2025-07-01 12:43:26,400 [DEBUG][       Thread-605060][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:43:26,401 [DEBUG][       Thread-605060][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:43:26,401 [DEBUG][       Thread-605060][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:43:26,401 [DEBUG][       Thread-605060][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:43:26,401 [DEBUG][       Thread-605060][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:43:26,401 [DEBUG][       Thread-605060][   transport.py][1871] : Compression: none
2025-07-01 12:43:26,401 [DEBUG][       Thread-605060][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:43:26,462 [DEBUG][       Thread-605060][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:43:26,463 [DEBUG][       Thread-605060][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:43:26,463 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:43:26,464 [DEBUG][       Thread-605060][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:43:26,465 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:43:26,519 [DEBUG][       Thread-605060][   transport.py][1871] : userauth is OK
2025-07-01 12:43:26,520 [DEBUG][       Thread-605060][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:43:26,520 [DEBUG][       Thread-605060][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:43:26,520 [DEBUG][       Thread-605060][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:43:26,520 [DEBUG][       Thread-605060][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:43:26,538 [ INFO][       Thread-605060][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:43:26,539 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:43:26,539 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:43:27,596 [DEBUG][       Thread-605060][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:43:27,596 [DEBUG][       Thread-605060][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:43:27,645 [DEBUG][       Thread-605060][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:43:27,646 [DEBUG][       Thread-605060][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:43:27,658 [DEBUG][       Thread-605060][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:43:27,669 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:43:27,669 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 12:43:27,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-07-01 12:43:27,689 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:43:27,690 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:43:27,690 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:43:27,701 [DEBUG][       Thread-605060][   transport.py][1871] : EOF in transport thread
2025-07-01 12:43:29,969 [DEBUG][Thread-605062 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:43:30,049 [DEBUG][Thread-605063 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:43:37,701 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:43:37,701 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:43:37,701 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:43:37,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-07-01 12:43:38,198 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 43, 12), 10.99, 46.93, 0.0, 31.37, 12.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:43:38,198 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:43:12
2025-07-01 12:43:38,286 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:43:38,289 [DEBUG][       Thread-605064][   transport.py][1871] : starting thread (client mode): 0x8154760
2025-07-01 12:43:38,289 [DEBUG][       Thread-605064][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:43:38,310 [DEBUG][       Thread-605064][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:43:38,310 [ INFO][       Thread-605064][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:43:38,313 [DEBUG][       Thread-605064][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:43:38,313 [DEBUG][       Thread-605064][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:43:38,313 [DEBUG][       Thread-605064][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:43:38,313 [DEBUG][       Thread-605064][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:43:38,313 [DEBUG][       Thread-605064][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:43:38,313 [DEBUG][       Thread-605064][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:43:38,313 [DEBUG][       Thread-605064][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:43:38,313 [DEBUG][       Thread-605064][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:43:38,313 [DEBUG][       Thread-605064][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:43:38,313 [DEBUG][       Thread-605064][   transport.py][1871] : client lang: <none>
2025-07-01 12:43:38,313 [DEBUG][       Thread-605064][   transport.py][1871] : server lang: <none>
2025-07-01 12:43:38,313 [DEBUG][       Thread-605064][   transport.py][1871] : kex follows: False
2025-07-01 12:43:38,313 [DEBUG][       Thread-605064][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:43:38,314 [DEBUG][       Thread-605064][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:43:38,314 [DEBUG][       Thread-605064][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:43:38,314 [DEBUG][       Thread-605064][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:43:38,314 [DEBUG][       Thread-605064][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:43:38,314 [DEBUG][       Thread-605064][   transport.py][1871] : Compression: none
2025-07-01 12:43:38,314 [DEBUG][       Thread-605064][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:43:38,328 [DEBUG][       Thread-605064][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:43:38,328 [DEBUG][       Thread-605064][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:43:38,328 [DEBUG][       Thread-605064][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:43:38,328 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:43:38,329 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:43:38,329 [DEBUG][       Thread-605064][   transport.py][1871] : userauth is OK
2025-07-01 12:43:38,353 [ INFO][       Thread-605064][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:43:38,353 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:43:39,062 [DEBUG][       Thread-605064][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:43:39,062 [DEBUG][       Thread-605064][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:43:39,090 [DEBUG][Thread-605066 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:43:39,104 [DEBUG][       Thread-605064][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:43:39,104 [DEBUG][       Thread-605064][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:43:39,107 [DEBUG][       Thread-605064][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:43:39,113 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:43:39,113 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:43:39,114 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:43:39,115 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:43:39,117 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:43:39,118 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:43:39,118 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:43:39,118 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:43:39,118 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.446818 -999.00  +12.80  21.12     52   +3.20 1 2 1 1 1   888    0 10.75 39.33 ----- 21.1 21.1 341.0 40.2 15.6 -22.8 14.8 -23.2 14.6 -22.2 15.4 -21.3
2025-07-01 12:43:39,118 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:43:39,118 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:43:39,118 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.446818
2025-07-01 12:43:39,118 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:43:39,119 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:43:39,119 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:43:39,119 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:43:39,119 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 12:43:39,119 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:43:12', tmtdew=10.99, humidity=46.93, cloud=0.0, wind=31.37, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:43:25.075', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:43:39,119 [DEBUG][       Thread-605064][   transport.py][1871] : EOF in transport thread
2025-07-01 12:43:39,193 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:43:39,204 [DEBUG][       Thread-605068][   transport.py][1871] : starting thread (client mode): 0x8393ee0
2025-07-01 12:43:39,204 [DEBUG][       Thread-605068][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:43:39,218 [DEBUG][       Thread-605068][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:43:39,218 [ INFO][       Thread-605068][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:43:39,225 [DEBUG][       Thread-605068][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:43:39,225 [DEBUG][       Thread-605068][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:43:39,225 [DEBUG][       Thread-605068][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:43:39,225 [DEBUG][       Thread-605068][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:43:39,225 [DEBUG][       Thread-605068][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:43:39,225 [DEBUG][       Thread-605068][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:43:39,225 [DEBUG][       Thread-605068][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:43:39,225 [DEBUG][       Thread-605068][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:43:39,225 [DEBUG][       Thread-605068][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:43:39,225 [DEBUG][       Thread-605068][   transport.py][1871] : client lang: <none>
2025-07-01 12:43:39,225 [DEBUG][       Thread-605068][   transport.py][1871] : server lang: <none>
2025-07-01 12:43:39,225 [DEBUG][       Thread-605068][   transport.py][1871] : kex follows: False
2025-07-01 12:43:39,225 [DEBUG][       Thread-605068][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:43:39,225 [DEBUG][       Thread-605068][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:43:39,225 [DEBUG][       Thread-605068][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:43:39,225 [DEBUG][       Thread-605068][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:43:39,225 [DEBUG][       Thread-605068][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:43:39,225 [DEBUG][       Thread-605068][   transport.py][1871] : Compression: none
2025-07-01 12:43:39,225 [DEBUG][       Thread-605068][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:43:39,285 [DEBUG][       Thread-605068][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:43:39,285 [DEBUG][       Thread-605068][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:43:39,285 [DEBUG][       Thread-605068][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:43:39,285 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:43:39,285 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:43:39,342 [DEBUG][       Thread-605068][   transport.py][1871] : userauth is OK
2025-07-01 12:43:39,342 [DEBUG][       Thread-605068][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:43:39,342 [DEBUG][       Thread-605068][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:43:39,342 [DEBUG][       Thread-605068][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:43:39,342 [DEBUG][       Thread-605068][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:43:39,356 [ INFO][       Thread-605068][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:43:39,356 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:43:39,356 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:43:40,337 [DEBUG][       Thread-605068][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:43:40,337 [DEBUG][       Thread-605068][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:43:40,387 [DEBUG][       Thread-605068][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:43:40,387 [DEBUG][       Thread-605068][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:43:40,395 [DEBUG][       Thread-605068][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:43:40,403 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:43:40,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-07-01 12:43:40,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-07-01 12:43:40,419 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:43:40,419 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:43:40,419 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:43:40,427 [DEBUG][       Thread-605068][   transport.py][1871] : EOF in transport thread
2025-07-01 12:43:48,108 [DEBUG][Thread-605070 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:43:50,428 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:43:50,428 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:43:50,428 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:43:50,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-07-01 12:43:50,911 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 43, 44), 11.05, 46.74, 0.0, 37.49, 12.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:43:50,911 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:43:44
2025-07-01 12:43:50,996 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:43:51,002 [DEBUG][       Thread-605071][   transport.py][1871] : starting thread (client mode): 0x81d9600
2025-07-01 12:43:51,002 [DEBUG][       Thread-605071][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:43:51,028 [DEBUG][       Thread-605071][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:43:51,028 [ INFO][       Thread-605071][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:43:51,031 [DEBUG][       Thread-605071][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:43:51,031 [DEBUG][       Thread-605071][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:43:51,031 [DEBUG][       Thread-605071][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:43:51,031 [DEBUG][       Thread-605071][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:43:51,031 [DEBUG][       Thread-605071][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:43:51,031 [DEBUG][       Thread-605071][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:43:51,031 [DEBUG][       Thread-605071][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:43:51,031 [DEBUG][       Thread-605071][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:43:51,031 [DEBUG][       Thread-605071][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:43:51,031 [DEBUG][       Thread-605071][   transport.py][1871] : client lang: <none>
2025-07-01 12:43:51,031 [DEBUG][       Thread-605071][   transport.py][1871] : server lang: <none>
2025-07-01 12:43:51,031 [DEBUG][       Thread-605071][   transport.py][1871] : kex follows: False
2025-07-01 12:43:51,031 [DEBUG][       Thread-605071][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:43:51,031 [DEBUG][       Thread-605071][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:43:51,031 [DEBUG][       Thread-605071][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:43:51,031 [DEBUG][       Thread-605071][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:43:51,031 [DEBUG][       Thread-605071][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:43:51,031 [DEBUG][       Thread-605071][   transport.py][1871] : Compression: none
2025-07-01 12:43:51,032 [DEBUG][       Thread-605071][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:43:51,050 [DEBUG][       Thread-605071][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:43:51,050 [DEBUG][       Thread-605071][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:43:51,050 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:43:51,051 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:43:51,051 [DEBUG][       Thread-605071][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:43:51,052 [DEBUG][       Thread-605071][   transport.py][1871] : userauth is OK
2025-07-01 12:43:51,076 [ INFO][       Thread-605071][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:43:51,077 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:43:51,887 [DEBUG][       Thread-605071][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:43:51,887 [DEBUG][       Thread-605071][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:43:51,929 [DEBUG][       Thread-605071][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:43:51,929 [DEBUG][       Thread-605071][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:43:51,932 [DEBUG][       Thread-605071][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:43:51,943 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:43:51,944 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:43:51,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:43:51,947 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:43:51,952 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:43:51,954 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:43:51,954 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:43:51,955 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:43:51,955 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.446818 -999.00  +12.80  21.12     52   +3.20 1 2 1 1 1   888    0 10.75 39.33 ----- 21.1 21.1 341.0 40.2 15.6 -22.8 14.8 -23.2 14.6 -22.2 15.4 -21.3
2025-07-01 12:43:51,955 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:43:51,955 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:43:51,955 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.446818
2025-07-01 12:43:51,956 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:43:51,956 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:43:51,956 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:43:51,956 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:43:51,956 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 12:43:51,956 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:43:44', tmtdew=11.05, humidity=46.74, cloud=0.0, wind=37.49, temperature=12.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:43:25.075', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:43:51,957 [DEBUG][       Thread-605071][   transport.py][1871] : EOF in transport thread
2025-07-01 12:43:52,045 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:43:52,061 [DEBUG][       Thread-605074][   transport.py][1871] : starting thread (client mode): 0x81e7a90
2025-07-01 12:43:52,061 [DEBUG][       Thread-605074][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:43:52,080 [DEBUG][       Thread-605074][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:43:52,081 [ INFO][       Thread-605074][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:43:52,088 [DEBUG][       Thread-605074][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:43:52,089 [DEBUG][       Thread-605074][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:43:52,089 [DEBUG][       Thread-605074][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:43:52,089 [DEBUG][       Thread-605074][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:43:52,089 [DEBUG][       Thread-605074][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:43:52,089 [DEBUG][       Thread-605074][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:43:52,089 [DEBUG][       Thread-605074][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:43:52,089 [DEBUG][       Thread-605074][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:43:52,089 [DEBUG][       Thread-605074][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:43:52,089 [DEBUG][       Thread-605074][   transport.py][1871] : client lang: <none>
2025-07-01 12:43:52,089 [DEBUG][       Thread-605074][   transport.py][1871] : server lang: <none>
2025-07-01 12:43:52,089 [DEBUG][       Thread-605074][   transport.py][1871] : kex follows: False
2025-07-01 12:43:52,089 [DEBUG][       Thread-605074][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:43:52,089 [DEBUG][       Thread-605074][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:43:52,090 [DEBUG][       Thread-605074][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:43:52,090 [DEBUG][       Thread-605074][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:43:52,090 [DEBUG][       Thread-605074][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:43:52,090 [DEBUG][       Thread-605074][   transport.py][1871] : Compression: none
2025-07-01 12:43:52,090 [DEBUG][       Thread-605074][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:43:52,148 [DEBUG][       Thread-605074][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:43:52,149 [DEBUG][       Thread-605074][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:43:52,149 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:43:52,150 [DEBUG][       Thread-605074][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:43:52,151 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:43:52,208 [DEBUG][       Thread-605074][   transport.py][1871] : userauth is OK
2025-07-01 12:43:52,208 [DEBUG][       Thread-605074][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:43:52,208 [DEBUG][       Thread-605074][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:43:52,208 [DEBUG][       Thread-605074][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:43:52,208 [DEBUG][       Thread-605074][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:43:52,228 [ INFO][       Thread-605074][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:43:52,228 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:43:52,228 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:43:53,242 [DEBUG][       Thread-605074][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:43:53,242 [DEBUG][       Thread-605074][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:43:53,295 [DEBUG][       Thread-605074][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:43:53,295 [DEBUG][       Thread-605074][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:43:53,306 [DEBUG][       Thread-605074][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:43:53,317 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:43:53,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-07-01 12:43:53,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-07-01 12:43:53,338 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:43:53,338 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:43:53,339 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:43:53,347 [DEBUG][       Thread-605074][   transport.py][1871] : EOF in transport thread
2025-07-01 12:43:57,132 [DEBUG][Thread-605076 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:44:03,344 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:44:03,344 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:44:03,344 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:44:03,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-07-01 12:44:03,834 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 43, 44), 11.05, 46.74, 0.0, 37.49, 12.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:44:03,834 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:43:44
2025-07-01 12:44:03,919 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:44:03,923 [DEBUG][       Thread-605077][   transport.py][1871] : starting thread (client mode): 0x81d9ae0
2025-07-01 12:44:03,928 [DEBUG][       Thread-605077][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:44:03,942 [DEBUG][       Thread-605077][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:44:03,942 [ INFO][       Thread-605077][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:44:03,945 [DEBUG][       Thread-605077][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:44:03,945 [DEBUG][       Thread-605077][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:44:03,945 [DEBUG][       Thread-605077][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:44:03,945 [DEBUG][       Thread-605077][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:44:03,945 [DEBUG][       Thread-605077][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:44:03,945 [DEBUG][       Thread-605077][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:44:03,945 [DEBUG][       Thread-605077][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:44:03,945 [DEBUG][       Thread-605077][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:44:03,945 [DEBUG][       Thread-605077][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:44:03,946 [DEBUG][       Thread-605077][   transport.py][1871] : client lang: <none>
2025-07-01 12:44:03,946 [DEBUG][       Thread-605077][   transport.py][1871] : server lang: <none>
2025-07-01 12:44:03,946 [DEBUG][       Thread-605077][   transport.py][1871] : kex follows: False
2025-07-01 12:44:03,946 [DEBUG][       Thread-605077][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:44:03,946 [DEBUG][       Thread-605077][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:44:03,946 [DEBUG][       Thread-605077][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:44:03,946 [DEBUG][       Thread-605077][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:44:03,946 [DEBUG][       Thread-605077][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:44:03,946 [DEBUG][       Thread-605077][   transport.py][1871] : Compression: none
2025-07-01 12:44:03,946 [DEBUG][       Thread-605077][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:44:03,962 [DEBUG][       Thread-605077][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:44:03,963 [DEBUG][       Thread-605077][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:44:03,963 [DEBUG][       Thread-605077][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:44:03,964 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:44:03,964 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:44:03,965 [DEBUG][       Thread-605077][   transport.py][1871] : userauth is OK
2025-07-01 12:44:03,978 [ INFO][       Thread-605077][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:44:03,979 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:44:04,601 [DEBUG][       Thread-605077][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:44:04,602 [DEBUG][       Thread-605077][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:44:04,645 [DEBUG][       Thread-605077][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:44:04,645 [DEBUG][       Thread-605077][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:44:04,650 [DEBUG][       Thread-605077][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:44:04,660 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:44:04,660 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:44:04,662 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:44:04,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:44:04,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:44:04,670 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:44:04,670 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:44:04,671 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:44:04,671 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.447165 -999.00  +13.00  26.03     52   +3.40 1 2 1 1 1   888    0 10.36 33.20 ----- 26.0 26.0 40.4 29.7 15.8 -22.1 14.9 -23.1 14.7 -21.4 15.5 -20.6
2025-07-01 12:44:04,671 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:44:04,671 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:44:04,671 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.447165
2025-07-01 12:44:04,671 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:44:04,672 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:44:04,672 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:44:04,672 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:44:04,672 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 12:44:04,672 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:43:44', tmtdew=11.05, humidity=46.74, cloud=0.0, wind=37.49, temperature=12.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:43:55.056', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:44:04,673 [DEBUG][       Thread-605077][   transport.py][1871] : EOF in transport thread
2025-07-01 12:44:04,757 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:44:04,766 [DEBUG][       Thread-605080][   transport.py][1871] : starting thread (client mode): 0x8105510
2025-07-01 12:44:04,766 [DEBUG][       Thread-605080][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:44:04,782 [DEBUG][       Thread-605080][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:44:04,783 [ INFO][       Thread-605080][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:44:04,790 [DEBUG][       Thread-605080][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:44:04,790 [DEBUG][       Thread-605080][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:44:04,790 [DEBUG][       Thread-605080][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:44:04,791 [DEBUG][       Thread-605080][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:44:04,791 [DEBUG][       Thread-605080][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:44:04,791 [DEBUG][       Thread-605080][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:44:04,791 [DEBUG][       Thread-605080][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:44:04,791 [DEBUG][       Thread-605080][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:44:04,791 [DEBUG][       Thread-605080][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:44:04,791 [DEBUG][       Thread-605080][   transport.py][1871] : client lang: <none>
2025-07-01 12:44:04,791 [DEBUG][       Thread-605080][   transport.py][1871] : server lang: <none>
2025-07-01 12:44:04,791 [DEBUG][       Thread-605080][   transport.py][1871] : kex follows: False
2025-07-01 12:44:04,791 [DEBUG][       Thread-605080][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:44:04,791 [DEBUG][       Thread-605080][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:44:04,791 [DEBUG][       Thread-605080][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:44:04,791 [DEBUG][       Thread-605080][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:44:04,791 [DEBUG][       Thread-605080][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:44:04,791 [DEBUG][       Thread-605080][   transport.py][1871] : Compression: none
2025-07-01 12:44:04,791 [DEBUG][       Thread-605080][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:44:04,851 [DEBUG][       Thread-605080][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:44:04,852 [DEBUG][       Thread-605080][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:44:04,853 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:44:04,853 [DEBUG][       Thread-605080][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:44:04,854 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:44:04,911 [DEBUG][       Thread-605080][   transport.py][1871] : userauth is OK
2025-07-01 12:44:04,911 [DEBUG][       Thread-605080][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:44:04,911 [DEBUG][       Thread-605080][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:44:04,911 [DEBUG][       Thread-605080][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:44:04,911 [DEBUG][       Thread-605080][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:44:04,931 [ INFO][       Thread-605080][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:44:04,931 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:44:04,932 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:44:06,022 [DEBUG][       Thread-605080][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:44:06,022 [DEBUG][       Thread-605080][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:44:06,075 [DEBUG][       Thread-605080][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:44:06,075 [DEBUG][       Thread-605080][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:44:06,088 [DEBUG][       Thread-605080][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:44:06,100 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:44:06,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')
2025-07-01 12:44:06,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-07-01 12:44:06,119 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:44:06,119 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:44:06,119 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:44:06,127 [DEBUG][       Thread-605080][   transport.py][1871] : EOF in transport thread
2025-07-01 12:44:06,165 [DEBUG][Thread-605082 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:44:15,187 [DEBUG][Thread-605083 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:44:16,130 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:44:16,130 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:44:16,130 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:44:16,130 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:44:16,649 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 43, 44), 11.05, 46.74, 0.0, 37.49, 12.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:44:16,649 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:43:44
2025-07-01 12:44:16,742 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:44:16,748 [DEBUG][       Thread-605084][   transport.py][1871] : starting thread (client mode): 0x75a87c0
2025-07-01 12:44:16,748 [DEBUG][       Thread-605084][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:44:16,767 [DEBUG][       Thread-605084][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:44:16,767 [ INFO][       Thread-605084][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:44:16,771 [DEBUG][       Thread-605084][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:44:16,771 [DEBUG][       Thread-605084][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:44:16,771 [DEBUG][       Thread-605084][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:44:16,771 [DEBUG][       Thread-605084][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:44:16,771 [DEBUG][       Thread-605084][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:44:16,771 [DEBUG][       Thread-605084][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:44:16,771 [DEBUG][       Thread-605084][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:44:16,771 [DEBUG][       Thread-605084][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:44:16,771 [DEBUG][       Thread-605084][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:44:16,771 [DEBUG][       Thread-605084][   transport.py][1871] : client lang: <none>
2025-07-01 12:44:16,771 [DEBUG][       Thread-605084][   transport.py][1871] : server lang: <none>
2025-07-01 12:44:16,771 [DEBUG][       Thread-605084][   transport.py][1871] : kex follows: False
2025-07-01 12:44:16,771 [DEBUG][       Thread-605084][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:44:16,771 [DEBUG][       Thread-605084][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:44:16,772 [DEBUG][       Thread-605084][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:44:16,772 [DEBUG][       Thread-605084][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:44:16,772 [DEBUG][       Thread-605084][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:44:16,772 [DEBUG][       Thread-605084][   transport.py][1871] : Compression: none
2025-07-01 12:44:16,772 [DEBUG][       Thread-605084][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:44:16,787 [DEBUG][       Thread-605084][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:44:16,787 [DEBUG][       Thread-605084][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:44:16,787 [DEBUG][       Thread-605084][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:44:16,787 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:44:16,787 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:44:16,788 [DEBUG][       Thread-605084][   transport.py][1871] : userauth is OK
2025-07-01 12:44:16,812 [ INFO][       Thread-605084][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:44:16,812 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:44:17,637 [DEBUG][       Thread-605084][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:44:17,637 [DEBUG][       Thread-605084][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:44:17,680 [DEBUG][       Thread-605084][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:44:17,680 [DEBUG][       Thread-605084][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:44:17,683 [DEBUG][       Thread-605084][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:44:17,697 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:44:17,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:44:17,698 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:44:17,699 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:44:17,701 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:44:17,702 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:44:17,702 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:44:17,703 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:44:17,703 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.447165 -999.00  +13.00  26.03     52   +3.40 1 2 1 1 1   888    0 10.36 33.20 ----- 26.0 26.0 40.4 29.7 15.8 -22.1 14.9 -23.1 14.7 -21.4 15.5 -20.6
2025-07-01 12:44:17,703 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:44:17,703 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:44:17,703 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.447165
2025-07-01 12:44:17,703 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:44:17,703 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:44:17,703 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:44:17,703 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:44:17,703 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 12:44:17,703 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:43:44', tmtdew=11.05, humidity=46.74, cloud=0.0, wind=37.49, temperature=12.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:43:55.056', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:44:17,704 [DEBUG][       Thread-605084][   transport.py][1871] : EOF in transport thread
2025-07-01 12:44:17,781 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:44:17,792 [DEBUG][       Thread-605087][   transport.py][1871] : starting thread (client mode): 0x82b1ba0
2025-07-01 12:44:17,792 [DEBUG][       Thread-605087][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:44:17,812 [DEBUG][       Thread-605087][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:44:17,812 [ INFO][       Thread-605087][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:44:17,820 [DEBUG][       Thread-605087][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:44:17,820 [DEBUG][       Thread-605087][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:44:17,820 [DEBUG][       Thread-605087][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:44:17,820 [DEBUG][       Thread-605087][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:44:17,820 [DEBUG][       Thread-605087][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:44:17,820 [DEBUG][       Thread-605087][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:44:17,820 [DEBUG][       Thread-605087][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:44:17,820 [DEBUG][       Thread-605087][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:44:17,820 [DEBUG][       Thread-605087][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:44:17,820 [DEBUG][       Thread-605087][   transport.py][1871] : client lang: <none>
2025-07-01 12:44:17,820 [DEBUG][       Thread-605087][   transport.py][1871] : server lang: <none>
2025-07-01 12:44:17,820 [DEBUG][       Thread-605087][   transport.py][1871] : kex follows: False
2025-07-01 12:44:17,820 [DEBUG][       Thread-605087][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:44:17,820 [DEBUG][       Thread-605087][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:44:17,820 [DEBUG][       Thread-605087][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:44:17,820 [DEBUG][       Thread-605087][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:44:17,820 [DEBUG][       Thread-605087][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:44:17,820 [DEBUG][       Thread-605087][   transport.py][1871] : Compression: none
2025-07-01 12:44:17,820 [DEBUG][       Thread-605087][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:44:17,877 [DEBUG][       Thread-605087][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:44:17,877 [DEBUG][       Thread-605087][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:44:17,878 [DEBUG][       Thread-605087][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:44:17,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:44:17,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:44:17,935 [DEBUG][       Thread-605087][   transport.py][1871] : userauth is OK
2025-07-01 12:44:17,935 [DEBUG][       Thread-605087][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:44:17,935 [DEBUG][       Thread-605087][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:44:17,935 [DEBUG][       Thread-605087][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:44:17,935 [DEBUG][       Thread-605087][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:44:17,949 [ INFO][       Thread-605087][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:44:17,949 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:44:17,949 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:44:18,338 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:44:18,339 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:44:18,999 [DEBUG][       Thread-605087][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:44:18,999 [DEBUG][       Thread-605087][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:44:19,052 [DEBUG][       Thread-605087][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:44:19,052 [DEBUG][       Thread-605087][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:44:19,066 [DEBUG][       Thread-605087][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:44:19,077 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:44:19,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-07-01 12:44:19,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-07-01 12:44:19,093 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:44:19,093 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:44:19,093 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:44:19,101 [DEBUG][       Thread-605087][   transport.py][1871] : EOF in transport thread
2025-07-01 12:44:24,208 [DEBUG][Thread-605089 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:44:29,104 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:44:29,104 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:44:29,104 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:44:29,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-07-01 12:44:29,573 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 44, 16), 11.03, 46.92, 0.0, 32.18, 12.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:44:29,573 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:44:16
2025-07-01 12:44:29,657 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:44:29,664 [DEBUG][       Thread-605090][   transport.py][1871] : starting thread (client mode): 0x81dbc40
2025-07-01 12:44:29,664 [DEBUG][       Thread-605090][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:44:29,685 [DEBUG][       Thread-605090][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:44:29,685 [ INFO][       Thread-605090][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:44:29,689 [DEBUG][       Thread-605090][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:44:29,689 [DEBUG][       Thread-605090][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:44:29,689 [DEBUG][       Thread-605090][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:44:29,689 [DEBUG][       Thread-605090][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:44:29,689 [DEBUG][       Thread-605090][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:44:29,689 [DEBUG][       Thread-605090][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:44:29,689 [DEBUG][       Thread-605090][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:44:29,689 [DEBUG][       Thread-605090][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:44:29,689 [DEBUG][       Thread-605090][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:44:29,689 [DEBUG][       Thread-605090][   transport.py][1871] : client lang: <none>
2025-07-01 12:44:29,689 [DEBUG][       Thread-605090][   transport.py][1871] : server lang: <none>
2025-07-01 12:44:29,689 [DEBUG][       Thread-605090][   transport.py][1871] : kex follows: False
2025-07-01 12:44:29,690 [DEBUG][       Thread-605090][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:44:29,690 [DEBUG][       Thread-605090][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:44:29,690 [DEBUG][       Thread-605090][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:44:29,690 [DEBUG][       Thread-605090][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:44:29,690 [DEBUG][       Thread-605090][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:44:29,690 [DEBUG][       Thread-605090][   transport.py][1871] : Compression: none
2025-07-01 12:44:29,690 [DEBUG][       Thread-605090][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:44:29,706 [DEBUG][       Thread-605090][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:44:29,707 [DEBUG][       Thread-605090][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:44:29,707 [DEBUG][       Thread-605090][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:44:29,707 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:44:29,707 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:44:29,708 [DEBUG][       Thread-605090][   transport.py][1871] : userauth is OK
2025-07-01 12:44:29,722 [ INFO][       Thread-605090][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:44:29,723 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:44:30,001 [DEBUG][Thread-605092 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:44:30,540 [DEBUG][       Thread-605090][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:44:30,540 [DEBUG][       Thread-605090][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:44:30,582 [DEBUG][       Thread-605090][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:44:30,582 [DEBUG][       Thread-605090][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:44:30,585 [DEBUG][       Thread-605090][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:44:30,599 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:44:30,599 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:44:30,601 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:44:30,603 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:44:30,608 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:44:30,610 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:44:30,610 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:44:30,611 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:44:30,611 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.447165 -999.00  +13.00  26.03     52   +3.40 1 2 1 1 1   888    0 10.36 33.20 ----- 26.0 26.0 40.4 29.7 15.8 -22.1 14.9 -23.1 14.7 -21.4 15.5 -20.6
2025-07-01 12:44:30,611 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:44:30,611 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:44:30,611 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.447165
2025-07-01 12:44:30,611 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:44:30,612 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:44:30,612 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:44:30,612 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:44:30,612 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 12:44:30,612 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:44:16', tmtdew=11.03, humidity=46.92, cloud=0.0, wind=32.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:43:55.056', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:44:30,613 [DEBUG][       Thread-605090][   transport.py][1871] : EOF in transport thread
2025-07-01 12:44:30,697 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:44:30,710 [DEBUG][       Thread-605094][   transport.py][1871] : starting thread (client mode): 0x827d9f0
2025-07-01 12:44:30,710 [DEBUG][       Thread-605094][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:44:30,726 [DEBUG][       Thread-605094][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:44:30,726 [ INFO][       Thread-605094][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:44:30,733 [DEBUG][       Thread-605094][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:44:30,734 [DEBUG][       Thread-605094][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:44:30,734 [DEBUG][       Thread-605094][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:44:30,734 [DEBUG][       Thread-605094][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:44:30,734 [DEBUG][       Thread-605094][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:44:30,734 [DEBUG][       Thread-605094][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:44:30,734 [DEBUG][       Thread-605094][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:44:30,734 [DEBUG][       Thread-605094][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:44:30,734 [DEBUG][       Thread-605094][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:44:30,734 [DEBUG][       Thread-605094][   transport.py][1871] : client lang: <none>
2025-07-01 12:44:30,734 [DEBUG][       Thread-605094][   transport.py][1871] : server lang: <none>
2025-07-01 12:44:30,734 [DEBUG][       Thread-605094][   transport.py][1871] : kex follows: False
2025-07-01 12:44:30,734 [DEBUG][       Thread-605094][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:44:30,734 [DEBUG][       Thread-605094][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:44:30,734 [DEBUG][       Thread-605094][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:44:30,734 [DEBUG][       Thread-605094][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:44:30,734 [DEBUG][       Thread-605094][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:44:30,734 [DEBUG][       Thread-605094][   transport.py][1871] : Compression: none
2025-07-01 12:44:30,734 [DEBUG][       Thread-605094][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:44:30,793 [DEBUG][       Thread-605094][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:44:30,793 [DEBUG][       Thread-605094][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:44:30,793 [DEBUG][       Thread-605094][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:44:30,793 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:44:30,793 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:44:30,851 [DEBUG][       Thread-605094][   transport.py][1871] : userauth is OK
2025-07-01 12:44:30,851 [DEBUG][       Thread-605094][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:44:30,851 [DEBUG][       Thread-605094][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:44:30,851 [DEBUG][       Thread-605094][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:44:30,851 [DEBUG][       Thread-605094][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:44:30,867 [ INFO][       Thread-605094][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:44:30,867 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:44:30,867 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:44:31,874 [DEBUG][       Thread-605094][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:44:31,874 [DEBUG][       Thread-605094][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:44:31,928 [DEBUG][       Thread-605094][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:44:31,928 [DEBUG][       Thread-605094][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:44:31,937 [DEBUG][       Thread-605094][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:44:31,946 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:44:31,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')
2025-07-01 12:44:31,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-07-01 12:44:31,964 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:44:31,964 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:44:31,965 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:44:31,973 [DEBUG][       Thread-605094][   transport.py][1871] : EOF in transport thread
2025-07-01 12:44:33,230 [DEBUG][Thread-605096 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:44:41,975 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:44:41,975 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:44:41,976 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:44:41,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-07-01 12:44:42,270 [DEBUG][Thread-605097 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:44:42,446 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 44, 16), 11.03, 46.92, 0.0, 32.18, 12.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:44:42,446 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:44:16
2025-07-01 12:44:42,531 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:44:42,535 [DEBUG][       Thread-605098][   transport.py][1871] : starting thread (client mode): 0x8107070
2025-07-01 12:44:42,536 [DEBUG][       Thread-605098][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:44:42,551 [DEBUG][       Thread-605098][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:44:42,551 [ INFO][       Thread-605098][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:44:42,555 [DEBUG][       Thread-605098][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:44:42,555 [DEBUG][       Thread-605098][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:44:42,555 [DEBUG][       Thread-605098][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:44:42,555 [DEBUG][       Thread-605098][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:44:42,555 [DEBUG][       Thread-605098][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:44:42,555 [DEBUG][       Thread-605098][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:44:42,555 [DEBUG][       Thread-605098][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:44:42,555 [DEBUG][       Thread-605098][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:44:42,555 [DEBUG][       Thread-605098][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:44:42,555 [DEBUG][       Thread-605098][   transport.py][1871] : client lang: <none>
2025-07-01 12:44:42,555 [DEBUG][       Thread-605098][   transport.py][1871] : server lang: <none>
2025-07-01 12:44:42,555 [DEBUG][       Thread-605098][   transport.py][1871] : kex follows: False
2025-07-01 12:44:42,555 [DEBUG][       Thread-605098][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:44:42,555 [DEBUG][       Thread-605098][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:44:42,555 [DEBUG][       Thread-605098][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:44:42,555 [DEBUG][       Thread-605098][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:44:42,555 [DEBUG][       Thread-605098][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:44:42,555 [DEBUG][       Thread-605098][   transport.py][1871] : Compression: none
2025-07-01 12:44:42,555 [DEBUG][       Thread-605098][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:44:42,572 [DEBUG][       Thread-605098][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:44:42,572 [DEBUG][       Thread-605098][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:44:42,573 [DEBUG][       Thread-605098][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:44:42,573 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:44:42,573 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:44:42,574 [DEBUG][       Thread-605098][   transport.py][1871] : userauth is OK
2025-07-01 12:44:42,599 [ INFO][       Thread-605098][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:44:42,600 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:44:43,235 [DEBUG][       Thread-605098][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:44:43,235 [DEBUG][       Thread-605098][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:44:43,276 [DEBUG][       Thread-605098][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:44:43,276 [DEBUG][       Thread-605098][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:44:43,279 [DEBUG][       Thread-605098][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:44:43,291 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:44:43,291 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:44:43,292 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:44:43,293 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:44:43,295 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:44:43,296 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:44:43,296 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:44:43,296 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:44:43,296 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.447512 -999.00  +12.90  40.48     51   +3.10 1 1 2 1 1   888    0 10.43 34.28 ----- 35.3 40.5 34.8 46.5 15.7 -23.3 14.9 -23.9 14.7 -22.4 15.4 -21.8
2025-07-01 12:44:43,296 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:44:43,296 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:44:43,296 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.447512
2025-07-01 12:44:43,296 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:44:43,296 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:44:43,296 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:44:43,296 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:44:43,296 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:44:43,296 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:44:16', tmtdew=11.03, humidity=46.92, cloud=0.0, wind=32.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:44:25.037', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:44:43,297 [DEBUG][       Thread-605098][   transport.py][1871] : EOF in transport thread
2025-07-01 12:44:43,367 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:44:43,376 [DEBUG][       Thread-605101][   transport.py][1871] : starting thread (client mode): 0x827db40
2025-07-01 12:44:43,376 [DEBUG][       Thread-605101][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:44:43,391 [DEBUG][       Thread-605101][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:44:43,391 [ INFO][       Thread-605101][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:44:43,398 [DEBUG][       Thread-605101][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:44:43,399 [DEBUG][       Thread-605101][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:44:43,399 [DEBUG][       Thread-605101][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:44:43,399 [DEBUG][       Thread-605101][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:44:43,399 [DEBUG][       Thread-605101][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:44:43,399 [DEBUG][       Thread-605101][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:44:43,399 [DEBUG][       Thread-605101][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:44:43,399 [DEBUG][       Thread-605101][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:44:43,399 [DEBUG][       Thread-605101][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:44:43,399 [DEBUG][       Thread-605101][   transport.py][1871] : client lang: <none>
2025-07-01 12:44:43,399 [DEBUG][       Thread-605101][   transport.py][1871] : server lang: <none>
2025-07-01 12:44:43,399 [DEBUG][       Thread-605101][   transport.py][1871] : kex follows: False
2025-07-01 12:44:43,399 [DEBUG][       Thread-605101][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:44:43,399 [DEBUG][       Thread-605101][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:44:43,399 [DEBUG][       Thread-605101][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:44:43,399 [DEBUG][       Thread-605101][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:44:43,399 [DEBUG][       Thread-605101][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:44:43,399 [DEBUG][       Thread-605101][   transport.py][1871] : Compression: none
2025-07-01 12:44:43,399 [DEBUG][       Thread-605101][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:44:43,455 [DEBUG][       Thread-605101][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:44:43,455 [DEBUG][       Thread-605101][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:44:43,456 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:44:43,457 [DEBUG][       Thread-605101][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:44:43,457 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:44:43,511 [DEBUG][       Thread-605101][   transport.py][1871] : userauth is OK
2025-07-01 12:44:43,511 [DEBUG][       Thread-605101][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:44:43,511 [DEBUG][       Thread-605101][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:44:43,512 [DEBUG][       Thread-605101][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:44:43,512 [DEBUG][       Thread-605101][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:44:43,531 [ INFO][       Thread-605101][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:44:43,531 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:44:43,531 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:44:44,528 [DEBUG][       Thread-605101][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:44:44,528 [DEBUG][       Thread-605101][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:44:44,576 [DEBUG][       Thread-605101][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:44:44,576 [DEBUG][       Thread-605101][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:44:44,585 [DEBUG][       Thread-605101][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:44:44,594 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:44:44,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-07-01 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') -> 00000000
2025-07-01 12:44:44,612 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:44:44,613 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:44:44,613 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:44:44,621 [DEBUG][       Thread-605101][   transport.py][1871] : EOF in transport thread
2025-07-01 12:44:51,290 [DEBUG][Thread-605103 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:44:54,620 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:44:54,620 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:44:54,620 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:44:54,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-07-01 12:44:55,122 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 44, 48), 11.03, 46.9, 0.0, 32.22, 12.57, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:44:55,122 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:44:48
2025-07-01 12:44:55,210 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:44:55,215 [DEBUG][       Thread-605104][   transport.py][1871] : starting thread (client mode): 0x818f130
2025-07-01 12:44:55,215 [DEBUG][       Thread-605104][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:44:55,236 [DEBUG][       Thread-605104][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:44:55,236 [ INFO][       Thread-605104][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:44:55,239 [DEBUG][       Thread-605104][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:44:55,239 [DEBUG][       Thread-605104][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:44:55,239 [DEBUG][       Thread-605104][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:44:55,239 [DEBUG][       Thread-605104][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:44:55,239 [DEBUG][       Thread-605104][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:44:55,239 [DEBUG][       Thread-605104][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:44:55,239 [DEBUG][       Thread-605104][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:44:55,239 [DEBUG][       Thread-605104][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:44:55,239 [DEBUG][       Thread-605104][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:44:55,239 [DEBUG][       Thread-605104][   transport.py][1871] : client lang: <none>
2025-07-01 12:44:55,239 [DEBUG][       Thread-605104][   transport.py][1871] : server lang: <none>
2025-07-01 12:44:55,239 [DEBUG][       Thread-605104][   transport.py][1871] : kex follows: False
2025-07-01 12:44:55,239 [DEBUG][       Thread-605104][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:44:55,239 [DEBUG][       Thread-605104][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:44:55,239 [DEBUG][       Thread-605104][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:44:55,239 [DEBUG][       Thread-605104][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:44:55,239 [DEBUG][       Thread-605104][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:44:55,239 [DEBUG][       Thread-605104][   transport.py][1871] : Compression: none
2025-07-01 12:44:55,239 [DEBUG][       Thread-605104][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:44:55,255 [DEBUG][       Thread-605104][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:44:55,255 [DEBUG][       Thread-605104][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:44:55,255 [DEBUG][       Thread-605104][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:44:55,255 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:44:55,255 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:44:55,256 [DEBUG][       Thread-605104][   transport.py][1871] : userauth is OK
2025-07-01 12:44:55,269 [ INFO][       Thread-605104][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:44:55,269 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:44:55,943 [DEBUG][       Thread-605104][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:44:55,943 [DEBUG][       Thread-605104][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:44:55,984 [DEBUG][       Thread-605104][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:44:55,984 [DEBUG][       Thread-605104][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:44:55,987 [DEBUG][       Thread-605104][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:44:56,000 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:44:56,000 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:44:56,001 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:44:56,002 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:44:56,005 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:44:56,006 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:44:56,006 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:44:56,006 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:44:56,006 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.447512 -999.00  +12.90  40.48     51   +3.10 1 1 2 1 1   888    0 10.43 34.28 ----- 35.3 40.5 34.8 46.5 15.7 -23.3 14.9 -23.9 14.7 -22.4 15.4 -21.8
2025-07-01 12:44:56,006 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:44:56,006 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:44:56,006 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.447512
2025-07-01 12:44:56,006 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:44:56,006 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:44:56,006 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:44:56,006 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:44:56,007 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:44:56,007 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:44:48', tmtdew=11.03, humidity=46.9, cloud=0.0, wind=32.22, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:44:25.037', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:44:56,007 [DEBUG][       Thread-605104][   transport.py][1871] : EOF in transport thread
2025-07-01 12:44:56,080 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:45:00,322 [DEBUG][Thread-605107 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:45:09,365 [DEBUG][Thread-605108 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:45:18,390 [DEBUG][Thread-605109 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:45:18,476 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:45:18,477 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:45:27,415 [DEBUG][Thread-605110 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:45:30,047 [DEBUG][Thread-605111 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:45:36,435 [DEBUG][Thread-605112 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:45:45,458 [DEBUG][Thread-605113 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:45:54,481 [DEBUG][Thread-605114 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:46:03,503 [DEBUG][Thread-605115 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:46:12,521 [DEBUG][Thread-605116 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:46:18,617 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:46:18,618 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:46:21,542 [DEBUG][Thread-605117 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:46:30,101 [DEBUG][Thread-605118 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:46:30,564 [DEBUG][Thread-605119 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:46:39,586 [DEBUG][Thread-605120 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:46:48,610 [DEBUG][Thread-605121 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:46:57,629 [DEBUG][Thread-605122 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:47:06,260 [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-07-01 12:47:06,653 [DEBUG][Thread-605123 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:47:15,680 [DEBUG][Thread-605124 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:47:16,268 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:47:16,268 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:47:16,269 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:47:16,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-07-01 12:47:16,776 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 46, 54), 11.01, 47.18, 0.0, 34.72, 12.62, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:47:16,776 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:46:54
2025-07-01 12:47:16,863 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:47:16,868 [DEBUG][       Thread-605125][   transport.py][1871] : starting thread (client mode): 0x818e680
2025-07-01 12:47:16,869 [DEBUG][       Thread-605125][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:47:16,889 [DEBUG][       Thread-605125][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:47:16,890 [ INFO][       Thread-605125][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:47:16,892 [DEBUG][       Thread-605125][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:47:16,892 [DEBUG][       Thread-605125][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:47:16,892 [DEBUG][       Thread-605125][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:47:16,892 [DEBUG][       Thread-605125][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:47:16,892 [DEBUG][       Thread-605125][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:47:16,892 [DEBUG][       Thread-605125][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:47:16,892 [DEBUG][       Thread-605125][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:47:16,892 [DEBUG][       Thread-605125][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:47:16,892 [DEBUG][       Thread-605125][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:47:16,892 [DEBUG][       Thread-605125][   transport.py][1871] : client lang: <none>
2025-07-01 12:47:16,892 [DEBUG][       Thread-605125][   transport.py][1871] : server lang: <none>
2025-07-01 12:47:16,892 [DEBUG][       Thread-605125][   transport.py][1871] : kex follows: False
2025-07-01 12:47:16,892 [DEBUG][       Thread-605125][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:47:16,892 [DEBUG][       Thread-605125][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:47:16,892 [DEBUG][       Thread-605125][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:47:16,893 [DEBUG][       Thread-605125][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:47:16,893 [DEBUG][       Thread-605125][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:47:16,893 [DEBUG][       Thread-605125][   transport.py][1871] : Compression: none
2025-07-01 12:47:16,893 [DEBUG][       Thread-605125][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:47:16,908 [DEBUG][       Thread-605125][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:47:16,909 [DEBUG][       Thread-605125][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:47:16,909 [DEBUG][       Thread-605125][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:47:16,910 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:47:16,910 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:47:16,911 [DEBUG][       Thread-605125][   transport.py][1871] : userauth is OK
2025-07-01 12:47:16,924 [ INFO][       Thread-605125][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:47:16,924 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:47:17,583 [DEBUG][       Thread-605125][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:47:17,584 [DEBUG][       Thread-605125][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:47:17,625 [DEBUG][       Thread-605125][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:47:17,625 [DEBUG][       Thread-605125][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:47:17,629 [DEBUG][       Thread-605125][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:47:17,642 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:47:17,643 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:47:17,645 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:47:17,646 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:47:17,652 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:47:17,654 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:47:17,655 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:47:17,655 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:47:17,655 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.448901 -999.00  +12.50  38.06     51   +2.80 1 1 2 1 1   888    0 10.34 26.08 ----- 38.1 38.1 40.2 57.4 15.7 -23.1 14.8 -24.0 14.7 -22.4 15.4 -21.3
2025-07-01 12:47:17,656 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:47:17,656 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:47:17,656 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.448901
2025-07-01 12:47:17,656 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:47:17,657 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:47:17,657 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:47:17,657 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:47:17,657 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:47:17,657 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:46:54', tmtdew=11.01, humidity=47.18, cloud=0.0, wind=34.72, temperature=12.62, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:46:25.046', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:47:17,657 [DEBUG][       Thread-605125][   transport.py][1871] : EOF in transport thread
2025-07-01 12:47:17,741 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:47:17,755 [DEBUG][       Thread-605128][   transport.py][1871] : starting thread (client mode): 0x81e5390
2025-07-01 12:47:17,755 [DEBUG][       Thread-605128][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:47:17,769 [DEBUG][       Thread-605128][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:47:17,770 [ INFO][       Thread-605128][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:47:17,777 [DEBUG][       Thread-605128][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:47:17,777 [DEBUG][       Thread-605128][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:47:17,777 [DEBUG][       Thread-605128][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:47:17,777 [DEBUG][       Thread-605128][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:47:17,777 [DEBUG][       Thread-605128][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:47:17,777 [DEBUG][       Thread-605128][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:47:17,777 [DEBUG][       Thread-605128][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:47:17,777 [DEBUG][       Thread-605128][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:47:17,777 [DEBUG][       Thread-605128][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:47:17,777 [DEBUG][       Thread-605128][   transport.py][1871] : client lang: <none>
2025-07-01 12:47:17,777 [DEBUG][       Thread-605128][   transport.py][1871] : server lang: <none>
2025-07-01 12:47:17,777 [DEBUG][       Thread-605128][   transport.py][1871] : kex follows: False
2025-07-01 12:47:17,777 [DEBUG][       Thread-605128][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:47:17,778 [DEBUG][       Thread-605128][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:47:17,778 [DEBUG][       Thread-605128][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:47:17,778 [DEBUG][       Thread-605128][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:47:17,778 [DEBUG][       Thread-605128][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:47:17,778 [DEBUG][       Thread-605128][   transport.py][1871] : Compression: none
2025-07-01 12:47:17,778 [DEBUG][       Thread-605128][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:47:17,836 [DEBUG][       Thread-605128][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:47:17,837 [DEBUG][       Thread-605128][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:47:17,837 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:47:17,838 [DEBUG][       Thread-605128][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:47:17,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:47:17,893 [DEBUG][       Thread-605128][   transport.py][1871] : userauth is OK
2025-07-01 12:47:17,893 [DEBUG][       Thread-605128][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:47:17,893 [DEBUG][       Thread-605128][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:47:17,893 [DEBUG][       Thread-605128][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:47:17,893 [DEBUG][       Thread-605128][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:47:17,911 [ INFO][       Thread-605128][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:47:17,912 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:47:17,912 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:47:18,756 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:47:18,757 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:47:18,929 [DEBUG][       Thread-605128][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:47:18,929 [DEBUG][       Thread-605128][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:47:18,979 [DEBUG][       Thread-605128][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:47:18,980 [DEBUG][       Thread-605128][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:47:18,989 [DEBUG][       Thread-605128][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:47:18,997 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:47:18,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-07-01 12:47:19,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-07-01 12:47:19,015 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:47:19,015 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:47:19,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:47:19,024 [DEBUG][       Thread-605128][   transport.py][1871] : EOF in transport thread
2025-07-01 12:47:24,706 [DEBUG][Thread-605130 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:47:29,026 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:47:29,026 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:47:29,026 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:47:29,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-07-01 12:47:29,561 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 47, 26), 10.95, 47.39, 0.0, 29.06, 12.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:47:29,561 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:47:26
2025-07-01 12:47:29,650 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:47:29,657 [DEBUG][       Thread-605131][   transport.py][1871] : starting thread (client mode): 0x81e5fc0
2025-07-01 12:47:29,657 [DEBUG][       Thread-605131][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:47:29,675 [DEBUG][       Thread-605131][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:47:29,675 [ INFO][       Thread-605131][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:47:29,678 [DEBUG][       Thread-605131][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:47:29,678 [DEBUG][       Thread-605131][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:47:29,678 [DEBUG][       Thread-605131][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:47:29,678 [DEBUG][       Thread-605131][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:47:29,678 [DEBUG][       Thread-605131][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:47:29,678 [DEBUG][       Thread-605131][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:47:29,678 [DEBUG][       Thread-605131][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:47:29,678 [DEBUG][       Thread-605131][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:47:29,678 [DEBUG][       Thread-605131][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:47:29,678 [DEBUG][       Thread-605131][   transport.py][1871] : client lang: <none>
2025-07-01 12:47:29,678 [DEBUG][       Thread-605131][   transport.py][1871] : server lang: <none>
2025-07-01 12:47:29,678 [DEBUG][       Thread-605131][   transport.py][1871] : kex follows: False
2025-07-01 12:47:29,678 [DEBUG][       Thread-605131][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:47:29,678 [DEBUG][       Thread-605131][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:47:29,678 [DEBUG][       Thread-605131][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:47:29,678 [DEBUG][       Thread-605131][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:47:29,678 [DEBUG][       Thread-605131][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:47:29,678 [DEBUG][       Thread-605131][   transport.py][1871] : Compression: none
2025-07-01 12:47:29,678 [DEBUG][       Thread-605131][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:47:29,694 [DEBUG][       Thread-605131][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:47:29,694 [DEBUG][       Thread-605131][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:47:29,694 [DEBUG][       Thread-605131][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:47:29,694 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:47:29,694 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:47:29,695 [DEBUG][       Thread-605131][   transport.py][1871] : userauth is OK
2025-07-01 12:47:29,708 [ INFO][       Thread-605131][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:47:29,708 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:47:30,145 [DEBUG][Thread-605133 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:47:30,359 [DEBUG][       Thread-605131][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:47:30,359 [DEBUG][       Thread-605131][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:47:30,400 [DEBUG][       Thread-605131][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:47:30,400 [DEBUG][       Thread-605131][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:47:30,403 [DEBUG][       Thread-605131][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:47:30,415 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:47:30,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:47:30,416 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:47:30,417 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:47:30,420 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:47:30,421 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:47:30,421 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:47:30,421 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:47:30,421 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.449249 -999.00  +12.60  36.53     51   +2.90 1 1 2 1 1   888    0 10.22 22.69 ----- 38.1 36.5 27.3 45.4 15.7 -23.0 14.8 -23.7 14.7 -22.7 15.4 -22.4
2025-07-01 12:47:30,421 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:47:30,421 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:47:30,421 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.449249
2025-07-01 12:47:30,421 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:47:30,421 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:47:30,421 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:47:30,421 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:47:30,421 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:47:30,421 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:47:26', tmtdew=10.95, humidity=47.39, cloud=0.0, wind=29.06, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:46:55.114', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:47:30,422 [DEBUG][       Thread-605131][   transport.py][1871] : EOF in transport thread
2025-07-01 12:47:30,496 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:47:30,507 [DEBUG][       Thread-605135][   transport.py][1871] : starting thread (client mode): 0x8393ee0
2025-07-01 12:47:30,508 [DEBUG][       Thread-605135][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:47:30,524 [DEBUG][       Thread-605135][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:47:30,524 [ INFO][       Thread-605135][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:47:30,531 [DEBUG][       Thread-605135][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:47:30,531 [DEBUG][       Thread-605135][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:47:30,531 [DEBUG][       Thread-605135][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:47:30,531 [DEBUG][       Thread-605135][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:47:30,531 [DEBUG][       Thread-605135][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:47:30,531 [DEBUG][       Thread-605135][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:47:30,531 [DEBUG][       Thread-605135][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:47:30,531 [DEBUG][       Thread-605135][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:47:30,531 [DEBUG][       Thread-605135][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:47:30,531 [DEBUG][       Thread-605135][   transport.py][1871] : client lang: <none>
2025-07-01 12:47:30,531 [DEBUG][       Thread-605135][   transport.py][1871] : server lang: <none>
2025-07-01 12:47:30,531 [DEBUG][       Thread-605135][   transport.py][1871] : kex follows: False
2025-07-01 12:47:30,531 [DEBUG][       Thread-605135][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:47:30,531 [DEBUG][       Thread-605135][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:47:30,531 [DEBUG][       Thread-605135][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:47:30,531 [DEBUG][       Thread-605135][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:47:30,531 [DEBUG][       Thread-605135][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:47:30,531 [DEBUG][       Thread-605135][   transport.py][1871] : Compression: none
2025-07-01 12:47:30,531 [DEBUG][       Thread-605135][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:47:30,587 [DEBUG][       Thread-605135][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:47:30,587 [DEBUG][       Thread-605135][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:47:30,587 [DEBUG][       Thread-605135][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:47:30,587 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:47:30,587 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:47:30,644 [DEBUG][       Thread-605135][   transport.py][1871] : userauth is OK
2025-07-01 12:47:30,644 [DEBUG][       Thread-605135][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:47:30,644 [DEBUG][       Thread-605135][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:47:30,644 [DEBUG][       Thread-605135][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:47:30,644 [DEBUG][       Thread-605135][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:47:30,659 [ INFO][       Thread-605135][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:47:30,659 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:47:30,659 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:47:31,724 [DEBUG][       Thread-605135][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:47:31,724 [DEBUG][       Thread-605135][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:47:31,772 [DEBUG][       Thread-605135][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:47:31,772 [DEBUG][       Thread-605135][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:47:31,780 [DEBUG][       Thread-605135][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:47:31,788 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:47:31,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-07-01 12:47:31,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-07-01 12:47:31,804 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:47:31,804 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:47:31,804 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:47:31,812 [DEBUG][       Thread-605135][   transport.py][1871] : EOF in transport thread
2025-07-01 12:47:33,740 [DEBUG][Thread-605137 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:47:41,815 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:47:41,815 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:47:41,815 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:47:41,818 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:47:42,323 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 47, 26), 10.95, 47.39, 0.0, 29.06, 12.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:47:42,323 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:47:26
2025-07-01 12:47:42,409 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:47:42,413 [DEBUG][       Thread-605138][   transport.py][1871] : starting thread (client mode): 0x8105bd0
2025-07-01 12:47:42,413 [DEBUG][       Thread-605138][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:47:42,434 [DEBUG][       Thread-605138][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:47:42,434 [ INFO][       Thread-605138][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:47:42,437 [DEBUG][       Thread-605138][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:47:42,437 [DEBUG][       Thread-605138][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:47:42,437 [DEBUG][       Thread-605138][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:47:42,437 [DEBUG][       Thread-605138][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:47:42,437 [DEBUG][       Thread-605138][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:47:42,437 [DEBUG][       Thread-605138][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:47:42,437 [DEBUG][       Thread-605138][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:47:42,437 [DEBUG][       Thread-605138][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:47:42,437 [DEBUG][       Thread-605138][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:47:42,437 [DEBUG][       Thread-605138][   transport.py][1871] : client lang: <none>
2025-07-01 12:47:42,437 [DEBUG][       Thread-605138][   transport.py][1871] : server lang: <none>
2025-07-01 12:47:42,437 [DEBUG][       Thread-605138][   transport.py][1871] : kex follows: False
2025-07-01 12:47:42,437 [DEBUG][       Thread-605138][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:47:42,437 [DEBUG][       Thread-605138][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:47:42,437 [DEBUG][       Thread-605138][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:47:42,437 [DEBUG][       Thread-605138][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:47:42,438 [DEBUG][       Thread-605138][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:47:42,438 [DEBUG][       Thread-605138][   transport.py][1871] : Compression: none
2025-07-01 12:47:42,438 [DEBUG][       Thread-605138][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:47:42,457 [DEBUG][       Thread-605138][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:47:42,457 [DEBUG][       Thread-605138][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:47:42,458 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:47:42,458 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:47:42,458 [DEBUG][       Thread-605138][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:47:42,459 [DEBUG][       Thread-605138][   transport.py][1871] : userauth is OK
2025-07-01 12:47:42,472 [ INFO][       Thread-605138][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:47:42,473 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:47:42,775 [DEBUG][Thread-605140 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:47:43,121 [DEBUG][       Thread-605138][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:47:43,122 [DEBUG][       Thread-605138][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:47:43,165 [DEBUG][       Thread-605138][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:47:43,165 [DEBUG][       Thread-605138][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:47:43,168 [DEBUG][       Thread-605138][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:47:43,181 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:47:43,181 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:47:43,183 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:47:43,185 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:47:43,191 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:47:43,193 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:47:43,193 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:47:43,194 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:47:43,194 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.449249 -999.00  +12.60  36.53     51   +2.90 1 1 2 1 1   888    0 10.22 22.69 ----- 38.1 36.5 27.3 45.4 15.7 -23.0 14.8 -23.7 14.7 -22.7 15.4 -22.4
2025-07-01 12:47:43,194 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:47:43,194 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:47:43,194 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.449249
2025-07-01 12:47:43,194 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:47:43,195 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:47:43,195 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:47:43,195 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:47:43,195 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:47:43,195 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:47:26', tmtdew=10.95, humidity=47.39, cloud=0.0, wind=29.06, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:46:55.114', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:47:43,196 [DEBUG][       Thread-605138][   transport.py][1871] : EOF in transport thread
2025-07-01 12:47:43,279 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:47:43,291 [DEBUG][       Thread-605142][   transport.py][1871] : starting thread (client mode): 0x83c8730
2025-07-01 12:47:43,291 [DEBUG][       Thread-605142][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:47:43,313 [DEBUG][       Thread-605142][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:47:43,313 [ INFO][       Thread-605142][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:47:43,325 [DEBUG][       Thread-605142][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:47:43,325 [DEBUG][       Thread-605142][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:47:43,325 [DEBUG][       Thread-605142][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:47:43,326 [DEBUG][       Thread-605142][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:47:43,326 [DEBUG][       Thread-605142][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:47:43,326 [DEBUG][       Thread-605142][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:47:43,326 [DEBUG][       Thread-605142][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:47:43,326 [DEBUG][       Thread-605142][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:47:43,326 [DEBUG][       Thread-605142][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:47:43,326 [DEBUG][       Thread-605142][   transport.py][1871] : client lang: <none>
2025-07-01 12:47:43,326 [DEBUG][       Thread-605142][   transport.py][1871] : server lang: <none>
2025-07-01 12:47:43,326 [DEBUG][       Thread-605142][   transport.py][1871] : kex follows: False
2025-07-01 12:47:43,326 [DEBUG][       Thread-605142][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:47:43,326 [DEBUG][       Thread-605142][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:47:43,326 [DEBUG][       Thread-605142][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:47:43,326 [DEBUG][       Thread-605142][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:47:43,326 [DEBUG][       Thread-605142][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:47:43,326 [DEBUG][       Thread-605142][   transport.py][1871] : Compression: none
2025-07-01 12:47:43,326 [DEBUG][       Thread-605142][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:47:43,385 [DEBUG][       Thread-605142][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:47:43,386 [DEBUG][       Thread-605142][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:47:43,386 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:47:43,387 [DEBUG][       Thread-605142][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:47:43,387 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:47:43,449 [DEBUG][       Thread-605142][   transport.py][1871] : userauth is OK
2025-07-01 12:47:43,449 [DEBUG][       Thread-605142][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:47:43,450 [DEBUG][       Thread-605142][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:47:43,450 [DEBUG][       Thread-605142][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:47:43,450 [DEBUG][       Thread-605142][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:47:43,472 [ INFO][       Thread-605142][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:47:43,472 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:47:43,473 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:47:44,497 [DEBUG][       Thread-605142][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:47:44,497 [DEBUG][       Thread-605142][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:47:44,552 [DEBUG][       Thread-605142][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:47:44,552 [DEBUG][       Thread-605142][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:47:44,563 [DEBUG][       Thread-605142][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:47:44,571 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:47:44,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-07-01 12:47:44,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-07-01 12:47:44,589 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:47:44,589 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:47:44,590 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:47:44,598 [DEBUG][       Thread-605142][   transport.py][1871] : EOF in transport thread
2025-07-01 12:47:51,799 [DEBUG][Thread-605144 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:47:54,600 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:47:54,600 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:47:54,600 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:47:54,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-07-01 12:47:55,090 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 47, 26), 10.95, 47.39, 0.0, 29.06, 12.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:47:55,090 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:47:26
2025-07-01 12:47:55,175 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:47:55,181 [DEBUG][       Thread-605145][   transport.py][1871] : starting thread (client mode): 0x81a4610
2025-07-01 12:47:55,181 [DEBUG][       Thread-605145][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:47:55,203 [DEBUG][       Thread-605145][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:47:55,203 [ INFO][       Thread-605145][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:47:55,205 [DEBUG][       Thread-605145][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:47:55,205 [DEBUG][       Thread-605145][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:47:55,206 [DEBUG][       Thread-605145][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:47:55,206 [DEBUG][       Thread-605145][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:47:55,206 [DEBUG][       Thread-605145][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:47:55,206 [DEBUG][       Thread-605145][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:47:55,206 [DEBUG][       Thread-605145][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:47:55,206 [DEBUG][       Thread-605145][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:47:55,206 [DEBUG][       Thread-605145][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:47:55,206 [DEBUG][       Thread-605145][   transport.py][1871] : client lang: <none>
2025-07-01 12:47:55,206 [DEBUG][       Thread-605145][   transport.py][1871] : server lang: <none>
2025-07-01 12:47:55,206 [DEBUG][       Thread-605145][   transport.py][1871] : kex follows: False
2025-07-01 12:47:55,206 [DEBUG][       Thread-605145][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:47:55,206 [DEBUG][       Thread-605145][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:47:55,206 [DEBUG][       Thread-605145][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:47:55,207 [DEBUG][       Thread-605145][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:47:55,207 [DEBUG][       Thread-605145][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:47:55,207 [DEBUG][       Thread-605145][   transport.py][1871] : Compression: none
2025-07-01 12:47:55,207 [DEBUG][       Thread-605145][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:47:55,221 [DEBUG][       Thread-605145][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:47:55,222 [DEBUG][       Thread-605145][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:47:55,223 [DEBUG][       Thread-605145][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:47:55,223 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:47:55,223 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:47:55,224 [DEBUG][       Thread-605145][   transport.py][1871] : userauth is OK
2025-07-01 12:47:55,253 [ INFO][       Thread-605145][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:47:55,254 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:47:55,971 [DEBUG][       Thread-605145][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:47:55,972 [DEBUG][       Thread-605145][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:47:56,013 [DEBUG][       Thread-605145][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:47:56,014 [DEBUG][       Thread-605145][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:47:56,017 [DEBUG][       Thread-605145][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:47:56,032 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:47:56,032 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:47:56,034 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:47:56,036 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:47:56,043 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:47:56,045 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:47:56,045 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:47:56,046 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:47:56,046 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.449249 -999.00  +12.60  36.53     51   +2.90 1 1 2 1 1   888    0 10.22 22.69 ----- 38.1 36.5 27.3 45.4 15.7 -23.0 14.8 -23.7 14.7 -22.7 15.4 -22.4
2025-07-01 12:47:56,046 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:47:56,046 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:47:56,046 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.449249
2025-07-01 12:47:56,047 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:47:56,047 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:47:56,047 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:47:56,047 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:47:56,047 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:47:56,048 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:47:26', tmtdew=10.95, humidity=47.39, cloud=0.0, wind=29.06, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:46:55.114', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:47:56,048 [DEBUG][       Thread-605145][   transport.py][1871] : EOF in transport thread
2025-07-01 12:47:56,137 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:47:56,148 [DEBUG][       Thread-605148][   transport.py][1871] : starting thread (client mode): 0x82b2aa0
2025-07-01 12:47:56,148 [DEBUG][       Thread-605148][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:47:56,162 [DEBUG][       Thread-605148][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:47:56,162 [ INFO][       Thread-605148][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:47:56,170 [DEBUG][       Thread-605148][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:47:56,170 [DEBUG][       Thread-605148][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:47:56,170 [DEBUG][       Thread-605148][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:47:56,170 [DEBUG][       Thread-605148][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:47:56,170 [DEBUG][       Thread-605148][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:47:56,170 [DEBUG][       Thread-605148][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:47:56,170 [DEBUG][       Thread-605148][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:47:56,170 [DEBUG][       Thread-605148][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:47:56,170 [DEBUG][       Thread-605148][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:47:56,170 [DEBUG][       Thread-605148][   transport.py][1871] : client lang: <none>
2025-07-01 12:47:56,170 [DEBUG][       Thread-605148][   transport.py][1871] : server lang: <none>
2025-07-01 12:47:56,170 [DEBUG][       Thread-605148][   transport.py][1871] : kex follows: False
2025-07-01 12:47:56,170 [DEBUG][       Thread-605148][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:47:56,170 [DEBUG][       Thread-605148][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:47:56,170 [DEBUG][       Thread-605148][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:47:56,170 [DEBUG][       Thread-605148][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:47:56,170 [DEBUG][       Thread-605148][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:47:56,171 [DEBUG][       Thread-605148][   transport.py][1871] : Compression: none
2025-07-01 12:47:56,171 [DEBUG][       Thread-605148][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:47:56,227 [DEBUG][       Thread-605148][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:47:56,227 [DEBUG][       Thread-605148][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:47:56,227 [DEBUG][       Thread-605148][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:47:56,227 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:47:56,228 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:47:56,288 [DEBUG][       Thread-605148][   transport.py][1871] : userauth is OK
2025-07-01 12:47:56,288 [DEBUG][       Thread-605148][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:47:56,288 [DEBUG][       Thread-605148][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:47:56,288 [DEBUG][       Thread-605148][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:47:56,289 [DEBUG][       Thread-605148][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:47:56,303 [ INFO][       Thread-605148][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:47:56,303 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:47:56,303 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:47:57,307 [DEBUG][       Thread-605148][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:47:57,307 [DEBUG][       Thread-605148][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:47:57,358 [DEBUG][       Thread-605148][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:47:57,359 [DEBUG][       Thread-605148][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:47:57,368 [DEBUG][       Thread-605148][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:47:57,377 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:47:57,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-07-01 12:47:57,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') -> 00000000
2025-07-01 12:47:57,400 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:47:57,400 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:47:57,401 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:47:57,408 [DEBUG][       Thread-605148][   transport.py][1871] : EOF in transport thread
2025-07-01 12:48:00,819 [DEBUG][Thread-605150 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:48:07,408 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:48:07,408 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:48:07,408 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:48:07,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-07-01 12:48:07,931 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 47, 58), 10.98, 47.29, 0.0, 34.93, 12.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:48:07,931 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:47:58
2025-07-01 12:48:08,023 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:48:08,027 [DEBUG][       Thread-605151][   transport.py][1871] : starting thread (client mode): 0x81d8be0
2025-07-01 12:48:08,027 [DEBUG][       Thread-605151][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:48:08,040 [DEBUG][       Thread-605151][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:48:08,040 [ INFO][       Thread-605151][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:48:08,042 [DEBUG][       Thread-605151][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:48:08,042 [DEBUG][       Thread-605151][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:48:08,042 [DEBUG][       Thread-605151][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:48:08,042 [DEBUG][       Thread-605151][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:48:08,042 [DEBUG][       Thread-605151][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:48:08,042 [DEBUG][       Thread-605151][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:48:08,042 [DEBUG][       Thread-605151][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:48:08,042 [DEBUG][       Thread-605151][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:48:08,042 [DEBUG][       Thread-605151][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:48:08,042 [DEBUG][       Thread-605151][   transport.py][1871] : client lang: <none>
2025-07-01 12:48:08,042 [DEBUG][       Thread-605151][   transport.py][1871] : server lang: <none>
2025-07-01 12:48:08,042 [DEBUG][       Thread-605151][   transport.py][1871] : kex follows: False
2025-07-01 12:48:08,042 [DEBUG][       Thread-605151][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:48:08,042 [DEBUG][       Thread-605151][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:48:08,042 [DEBUG][       Thread-605151][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:48:08,042 [DEBUG][       Thread-605151][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:48:08,042 [DEBUG][       Thread-605151][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:48:08,042 [DEBUG][       Thread-605151][   transport.py][1871] : Compression: none
2025-07-01 12:48:08,042 [DEBUG][       Thread-605151][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:48:08,053 [DEBUG][       Thread-605151][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:48:08,053 [DEBUG][       Thread-605151][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:48:08,053 [DEBUG][       Thread-605151][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:48:08,054 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:48:08,054 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:48:08,054 [DEBUG][       Thread-605151][   transport.py][1871] : userauth is OK
2025-07-01 12:48:08,066 [ INFO][       Thread-605151][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:48:08,066 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:48:08,713 [DEBUG][       Thread-605151][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:48:08,713 [DEBUG][       Thread-605151][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:48:08,756 [DEBUG][       Thread-605151][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:48:08,756 [DEBUG][       Thread-605151][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:48:08,759 [DEBUG][       Thread-605151][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:48:08,771 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:48:08,771 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:48:08,773 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:48:08,774 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:48:08,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:48:08,779 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:48:08,779 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:48:08,779 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:48:08,779 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.449943 -999.00  +12.50  35.30     52   +2.90 1 1 2 1 1   888    0 10.23 23.16 ----- 32.3 35.3 13.6 46.0 15.8 -23.6 14.8 -24.1 14.7 -22.7 15.4 -22.1
2025-07-01 12:48:08,779 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:48:08,779 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:48:08,779 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.449943
2025-07-01 12:48:08,779 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:48:08,779 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:48:08,779 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:48:08,779 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:48:08,779 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:48:08,779 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:47:58', tmtdew=10.98, humidity=47.29, cloud=0.0, wind=34.93, temperature=12.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:47:55.075', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:48:08,780 [DEBUG][       Thread-605151][   transport.py][1871] : EOF in transport thread
2025-07-01 12:48:08,852 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:48:08,862 [DEBUG][       Thread-605154][   transport.py][1871] : starting thread (client mode): 0x827ec50
2025-07-01 12:48:08,862 [DEBUG][       Thread-605154][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:48:08,877 [DEBUG][       Thread-605154][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:48:08,877 [ INFO][       Thread-605154][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:48:08,885 [DEBUG][       Thread-605154][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:48:08,885 [DEBUG][       Thread-605154][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:48:08,885 [DEBUG][       Thread-605154][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:48:08,885 [DEBUG][       Thread-605154][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:48:08,885 [DEBUG][       Thread-605154][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:48:08,885 [DEBUG][       Thread-605154][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:48:08,885 [DEBUG][       Thread-605154][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:48:08,885 [DEBUG][       Thread-605154][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:48:08,885 [DEBUG][       Thread-605154][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:48:08,885 [DEBUG][       Thread-605154][   transport.py][1871] : client lang: <none>
2025-07-01 12:48:08,885 [DEBUG][       Thread-605154][   transport.py][1871] : server lang: <none>
2025-07-01 12:48:08,885 [DEBUG][       Thread-605154][   transport.py][1871] : kex follows: False
2025-07-01 12:48:08,885 [DEBUG][       Thread-605154][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:48:08,885 [DEBUG][       Thread-605154][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:48:08,885 [DEBUG][       Thread-605154][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:48:08,885 [DEBUG][       Thread-605154][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:48:08,885 [DEBUG][       Thread-605154][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:48:08,885 [DEBUG][       Thread-605154][   transport.py][1871] : Compression: none
2025-07-01 12:48:08,885 [DEBUG][       Thread-605154][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:48:08,939 [DEBUG][       Thread-605154][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:48:08,939 [DEBUG][       Thread-605154][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:48:08,939 [DEBUG][       Thread-605154][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:48:08,939 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:48:08,939 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:48:08,996 [DEBUG][       Thread-605154][   transport.py][1871] : userauth is OK
2025-07-01 12:48:08,996 [DEBUG][       Thread-605154][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:48:08,996 [DEBUG][       Thread-605154][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:48:08,996 [DEBUG][       Thread-605154][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:48:08,996 [DEBUG][       Thread-605154][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:48:09,010 [ INFO][       Thread-605154][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:48:09,011 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:48:09,011 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:48:09,837 [DEBUG][Thread-605156 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:48:10,025 [DEBUG][       Thread-605154][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:48:10,026 [DEBUG][       Thread-605154][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:48:10,079 [DEBUG][       Thread-605154][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:48:10,079 [DEBUG][       Thread-605154][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:48:10,088 [DEBUG][       Thread-605154][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:48:10,096 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:48:10,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')
2025-07-01 12:48:10,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') -> 00000000
2025-07-01 12:48:10,112 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:48:10,112 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:48:10,112 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:48:10,121 [DEBUG][       Thread-605154][   transport.py][1871] : EOF in transport thread
2025-07-01 12:48:18,864 [DEBUG][Thread-605157 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:48:18,894 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:48:18,895 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:48:20,122 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:48:20,122 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:48:20,123 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:48:20,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-07-01 12:48:20,618 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 47, 58), 10.98, 47.29, 0.0, 34.93, 12.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:48:20,618 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:47:58
2025-07-01 12:48:20,703 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:48:20,709 [DEBUG][       Thread-605158][   transport.py][1871] : starting thread (client mode): 0x81e58a0
2025-07-01 12:48:20,709 [DEBUG][       Thread-605158][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:48:20,729 [DEBUG][       Thread-605158][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:48:20,729 [ INFO][       Thread-605158][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:48:20,732 [DEBUG][       Thread-605158][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:48:20,732 [DEBUG][       Thread-605158][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:48:20,732 [DEBUG][       Thread-605158][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:48:20,732 [DEBUG][       Thread-605158][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:48:20,732 [DEBUG][       Thread-605158][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:48:20,732 [DEBUG][       Thread-605158][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:48:20,732 [DEBUG][       Thread-605158][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:48:20,732 [DEBUG][       Thread-605158][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:48:20,732 [DEBUG][       Thread-605158][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:48:20,732 [DEBUG][       Thread-605158][   transport.py][1871] : client lang: <none>
2025-07-01 12:48:20,732 [DEBUG][       Thread-605158][   transport.py][1871] : server lang: <none>
2025-07-01 12:48:20,732 [DEBUG][       Thread-605158][   transport.py][1871] : kex follows: False
2025-07-01 12:48:20,733 [DEBUG][       Thread-605158][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:48:20,733 [DEBUG][       Thread-605158][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:48:20,733 [DEBUG][       Thread-605158][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:48:20,733 [DEBUG][       Thread-605158][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:48:20,733 [DEBUG][       Thread-605158][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:48:20,733 [DEBUG][       Thread-605158][   transport.py][1871] : Compression: none
2025-07-01 12:48:20,733 [DEBUG][       Thread-605158][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:48:20,748 [DEBUG][       Thread-605158][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:48:20,748 [DEBUG][       Thread-605158][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:48:20,749 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:48:20,749 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:48:20,750 [DEBUG][       Thread-605158][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:48:20,750 [DEBUG][       Thread-605158][   transport.py][1871] : userauth is OK
2025-07-01 12:48:20,776 [ INFO][       Thread-605158][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:48:20,776 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:48:21,424 [DEBUG][       Thread-605158][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:48:21,425 [DEBUG][       Thread-605158][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:48:21,469 [DEBUG][       Thread-605158][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:48:21,469 [DEBUG][       Thread-605158][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:48:21,472 [DEBUG][       Thread-605158][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:48:21,484 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:48:21,484 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:48:21,486 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:48:21,488 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:48:21,494 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:48:21,495 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:48:21,496 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:48:21,496 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:48:21,496 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.449943 -999.00  +12.50  35.30     52   +2.90 1 1 2 1 1   888    0 10.23 23.16 ----- 32.3 35.3 13.6 46.0 15.8 -23.6 14.8 -24.1 14.7 -22.7 15.4 -22.1
2025-07-01 12:48:21,496 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:48:21,497 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:48:21,497 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.449943
2025-07-01 12:48:21,497 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:48:21,498 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:48:21,498 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:48:21,498 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:48:21,498 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:48:21,498 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:47:58', tmtdew=10.98, humidity=47.29, cloud=0.0, wind=34.93, temperature=12.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:47:55.075', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:48:21,498 [DEBUG][       Thread-605158][   transport.py][1871] : EOF in transport thread
2025-07-01 12:48:21,583 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:48:21,595 [DEBUG][       Thread-605161][   transport.py][1871] : starting thread (client mode): 0x81d9a20
2025-07-01 12:48:21,595 [DEBUG][       Thread-605161][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:48:21,610 [DEBUG][       Thread-605161][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:48:21,610 [ INFO][       Thread-605161][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:48:21,618 [DEBUG][       Thread-605161][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:48:21,618 [DEBUG][       Thread-605161][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:48:21,618 [DEBUG][       Thread-605161][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:48:21,618 [DEBUG][       Thread-605161][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:48:21,618 [DEBUG][       Thread-605161][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:48:21,618 [DEBUG][       Thread-605161][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:48:21,618 [DEBUG][       Thread-605161][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:48:21,618 [DEBUG][       Thread-605161][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:48:21,618 [DEBUG][       Thread-605161][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:48:21,618 [DEBUG][       Thread-605161][   transport.py][1871] : client lang: <none>
2025-07-01 12:48:21,618 [DEBUG][       Thread-605161][   transport.py][1871] : server lang: <none>
2025-07-01 12:48:21,618 [DEBUG][       Thread-605161][   transport.py][1871] : kex follows: False
2025-07-01 12:48:21,619 [DEBUG][       Thread-605161][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:48:21,619 [DEBUG][       Thread-605161][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:48:21,619 [DEBUG][       Thread-605161][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:48:21,619 [DEBUG][       Thread-605161][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:48:21,619 [DEBUG][       Thread-605161][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:48:21,619 [DEBUG][       Thread-605161][   transport.py][1871] : Compression: none
2025-07-01 12:48:21,619 [DEBUG][       Thread-605161][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:48:21,677 [DEBUG][       Thread-605161][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:48:21,678 [DEBUG][       Thread-605161][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:48:21,678 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:48:21,679 [DEBUG][       Thread-605161][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:48:21,680 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:48:21,747 [DEBUG][       Thread-605161][   transport.py][1871] : userauth is OK
2025-07-01 12:48:21,747 [DEBUG][       Thread-605161][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:48:21,747 [DEBUG][       Thread-605161][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:48:21,747 [DEBUG][       Thread-605161][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:48:21,747 [DEBUG][       Thread-605161][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:48:21,767 [ INFO][       Thread-605161][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:48:21,767 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:48:21,768 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:48:22,794 [DEBUG][       Thread-605161][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:48:22,795 [DEBUG][       Thread-605161][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:48:22,844 [DEBUG][       Thread-605161][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:48:22,844 [DEBUG][       Thread-605161][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:48:22,853 [DEBUG][       Thread-605161][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:48:22,866 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:48:22,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-07-01 12:48: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') -> 00000000
2025-07-01 12:48:22,884 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:48:22,884 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:48:22,885 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:48:22,893 [DEBUG][       Thread-605161][   transport.py][1871] : EOF in transport thread
2025-07-01 12:48:27,888 [DEBUG][Thread-605163 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:48:30,196 [DEBUG][Thread-605164 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:48:32,895 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:48:32,896 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:48:32,896 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:48:32,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-07-01 12:48:33,388 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 48, 30), 11.06, 47.19, 0.0, 38.66, 12.74, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:48:33,388 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:48:30
2025-07-01 12:48:33,474 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:48:33,478 [DEBUG][       Thread-605165][   transport.py][1871] : starting thread (client mode): 0x81da680
2025-07-01 12:48:33,478 [DEBUG][       Thread-605165][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:48:33,497 [DEBUG][       Thread-605165][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:48:33,497 [ INFO][       Thread-605165][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:48:33,501 [DEBUG][       Thread-605165][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:48:33,501 [DEBUG][       Thread-605165][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:48:33,501 [DEBUG][       Thread-605165][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:48:33,501 [DEBUG][       Thread-605165][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:48:33,501 [DEBUG][       Thread-605165][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:48:33,501 [DEBUG][       Thread-605165][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:48:33,501 [DEBUG][       Thread-605165][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:48:33,501 [DEBUG][       Thread-605165][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:48:33,501 [DEBUG][       Thread-605165][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:48:33,501 [DEBUG][       Thread-605165][   transport.py][1871] : client lang: <none>
2025-07-01 12:48:33,501 [DEBUG][       Thread-605165][   transport.py][1871] : server lang: <none>
2025-07-01 12:48:33,501 [DEBUG][       Thread-605165][   transport.py][1871] : kex follows: False
2025-07-01 12:48:33,501 [DEBUG][       Thread-605165][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:48:33,501 [DEBUG][       Thread-605165][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:48:33,501 [DEBUG][       Thread-605165][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:48:33,501 [DEBUG][       Thread-605165][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:48:33,501 [DEBUG][       Thread-605165][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:48:33,501 [DEBUG][       Thread-605165][   transport.py][1871] : Compression: none
2025-07-01 12:48:33,501 [DEBUG][       Thread-605165][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:48:33,517 [DEBUG][       Thread-605165][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:48:33,517 [DEBUG][       Thread-605165][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:48:33,518 [DEBUG][       Thread-605165][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:48:33,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:48:33,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:48:33,519 [DEBUG][       Thread-605165][   transport.py][1871] : userauth is OK
2025-07-01 12:48:33,544 [ INFO][       Thread-605165][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:48:33,545 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:48:34,137 [DEBUG][       Thread-605165][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:48:34,137 [DEBUG][       Thread-605165][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:48:34,181 [DEBUG][       Thread-605165][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:48:34,181 [DEBUG][       Thread-605165][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:48:34,187 [DEBUG][       Thread-605165][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:48:34,198 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:48:34,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:48:34,200 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:48:34,201 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:48:34,205 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:48:34,207 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:48:34,207 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:48:34,208 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:48:34,208 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.449943 -999.00  +12.50  35.30     52   +2.90 1 1 2 1 1   888    0 10.23 23.16 ----- 32.3 35.3 13.6 46.0 15.8 -23.6 14.8 -24.1 14.7 -22.7 15.4 -22.1
2025-07-01 12:48:34,208 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:48:34,208 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:48:34,208 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.449943
2025-07-01 12:48:34,209 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:48:34,209 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:48:34,209 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:48:34,209 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:48:34,209 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:48:34,210 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:48:30', tmtdew=11.06, humidity=47.19, cloud=0.0, wind=38.66, temperature=12.74, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:47:55.075', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:48:34,211 [DEBUG][       Thread-605165][   transport.py][1871] : EOF in transport thread
2025-07-01 12:48:34,290 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:48:34,302 [DEBUG][       Thread-605168][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 12:48:34,302 [DEBUG][       Thread-605168][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:48:34,318 [DEBUG][       Thread-605168][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:48:34,318 [ INFO][       Thread-605168][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:48:34,329 [DEBUG][       Thread-605168][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:48:34,329 [DEBUG][       Thread-605168][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:48:34,329 [DEBUG][       Thread-605168][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:48:34,329 [DEBUG][       Thread-605168][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:48:34,329 [DEBUG][       Thread-605168][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:48:34,329 [DEBUG][       Thread-605168][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:48:34,329 [DEBUG][       Thread-605168][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:48:34,329 [DEBUG][       Thread-605168][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:48:34,329 [DEBUG][       Thread-605168][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:48:34,329 [DEBUG][       Thread-605168][   transport.py][1871] : client lang: <none>
2025-07-01 12:48:34,329 [DEBUG][       Thread-605168][   transport.py][1871] : server lang: <none>
2025-07-01 12:48:34,329 [DEBUG][       Thread-605168][   transport.py][1871] : kex follows: False
2025-07-01 12:48:34,329 [DEBUG][       Thread-605168][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:48:34,329 [DEBUG][       Thread-605168][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:48:34,330 [DEBUG][       Thread-605168][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:48:34,330 [DEBUG][       Thread-605168][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:48:34,330 [DEBUG][       Thread-605168][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:48:34,330 [DEBUG][       Thread-605168][   transport.py][1871] : Compression: none
2025-07-01 12:48:34,330 [DEBUG][       Thread-605168][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:48:34,385 [DEBUG][       Thread-605168][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:48:34,386 [DEBUG][       Thread-605168][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:48:34,386 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:48:34,387 [DEBUG][       Thread-605168][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:48:34,387 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:48:34,441 [DEBUG][       Thread-605168][   transport.py][1871] : userauth is OK
2025-07-01 12:48:34,442 [DEBUG][       Thread-605168][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:48:34,442 [DEBUG][       Thread-605168][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:48:34,442 [DEBUG][       Thread-605168][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:48:34,442 [DEBUG][       Thread-605168][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:48:34,461 [ INFO][       Thread-605168][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:48:34,461 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:48:34,462 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:48:35,461 [DEBUG][       Thread-605168][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:48:35,461 [DEBUG][       Thread-605168][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:48:35,513 [DEBUG][       Thread-605168][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:48:35,513 [DEBUG][       Thread-605168][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:48:35,526 [DEBUG][       Thread-605168][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:48:35,535 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:48:35,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-07-01 12:48:35,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-07-01 12:48:35,553 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:48:35,553 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:48:35,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:48:35,562 [DEBUG][       Thread-605168][   transport.py][1871] : EOF in transport thread
2025-07-01 12:48:36,908 [DEBUG][Thread-605170 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:48:45,564 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:48:45,564 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:48:45,564 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:48: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-07-01 12:48:45,948 [DEBUG][Thread-605171 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:48:46,067 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 48, 30), 11.06, 47.19, 0.0, 38.66, 12.74, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:48:46,067 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:48:30
2025-07-01 12:48:46,160 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:48:46,164 [DEBUG][       Thread-605172][   transport.py][1871] : starting thread (client mode): 0x81e5b40
2025-07-01 12:48:46,164 [DEBUG][       Thread-605172][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:48:46,184 [DEBUG][       Thread-605172][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:48:46,184 [ INFO][       Thread-605172][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:48:46,187 [DEBUG][       Thread-605172][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:48:46,187 [DEBUG][       Thread-605172][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:48:46,187 [DEBUG][       Thread-605172][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:48:46,187 [DEBUG][       Thread-605172][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:48:46,187 [DEBUG][       Thread-605172][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:48:46,187 [DEBUG][       Thread-605172][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:48:46,187 [DEBUG][       Thread-605172][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:48:46,187 [DEBUG][       Thread-605172][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:48:46,187 [DEBUG][       Thread-605172][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:48:46,187 [DEBUG][       Thread-605172][   transport.py][1871] : client lang: <none>
2025-07-01 12:48:46,187 [DEBUG][       Thread-605172][   transport.py][1871] : server lang: <none>
2025-07-01 12:48:46,187 [DEBUG][       Thread-605172][   transport.py][1871] : kex follows: False
2025-07-01 12:48:46,187 [DEBUG][       Thread-605172][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:48:46,187 [DEBUG][       Thread-605172][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:48:46,187 [DEBUG][       Thread-605172][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:48:46,187 [DEBUG][       Thread-605172][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:48:46,187 [DEBUG][       Thread-605172][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:48:46,187 [DEBUG][       Thread-605172][   transport.py][1871] : Compression: none
2025-07-01 12:48:46,187 [DEBUG][       Thread-605172][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:48:46,200 [DEBUG][       Thread-605172][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:48:46,200 [DEBUG][       Thread-605172][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:48:46,200 [DEBUG][       Thread-605172][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:48:46,200 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:48:46,200 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:48:46,200 [DEBUG][       Thread-605172][   transport.py][1871] : userauth is OK
2025-07-01 12:48:46,225 [ INFO][       Thread-605172][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:48:46,225 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:48:46,872 [DEBUG][       Thread-605172][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:48:46,872 [DEBUG][       Thread-605172][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:48:46,913 [DEBUG][       Thread-605172][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:48:46,913 [DEBUG][       Thread-605172][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:48:46,915 [DEBUG][       Thread-605172][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:48:46,928 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:48:46,928 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:48:46,929 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:48:46,930 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:48:46,933 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:48:46,934 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:48:46,934 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:48:46,934 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:48:46,934 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.450290 -999.00  +12.50  33.70     51   +2.90 1 2 2 1 1   888    0 10.36 25.44 ----- 33.7 33.7 11.2 45.4 15.8 -23.1 14.9 -23.4 14.8 -22.0 15.5 -22.5
2025-07-01 12:48:46,934 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:48:46,934 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:48:46,934 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.450290
2025-07-01 12:48:46,934 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:48:46,934 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:48:46,934 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:48:46,934 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:48:46,934 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 12:48:46,934 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:48:30', tmtdew=11.06, humidity=47.19, cloud=0.0, wind=38.66, temperature=12.74, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:48:25.056', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:48:46,935 [DEBUG][       Thread-605172][   transport.py][1871] : EOF in transport thread
2025-07-01 12:48:47,009 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:48:47,018 [DEBUG][       Thread-605175][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 12:48:47,018 [DEBUG][       Thread-605175][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:48:47,034 [DEBUG][       Thread-605175][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:48:47,034 [ INFO][       Thread-605175][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:48:47,042 [DEBUG][       Thread-605175][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:48:47,042 [DEBUG][       Thread-605175][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:48:47,042 [DEBUG][       Thread-605175][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:48:47,042 [DEBUG][       Thread-605175][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:48:47,042 [DEBUG][       Thread-605175][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:48:47,042 [DEBUG][       Thread-605175][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:48:47,042 [DEBUG][       Thread-605175][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:48:47,042 [DEBUG][       Thread-605175][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:48:47,042 [DEBUG][       Thread-605175][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:48:47,042 [DEBUG][       Thread-605175][   transport.py][1871] : client lang: <none>
2025-07-01 12:48:47,042 [DEBUG][       Thread-605175][   transport.py][1871] : server lang: <none>
2025-07-01 12:48:47,042 [DEBUG][       Thread-605175][   transport.py][1871] : kex follows: False
2025-07-01 12:48:47,042 [DEBUG][       Thread-605175][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:48:47,042 [DEBUG][       Thread-605175][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:48:47,042 [DEBUG][       Thread-605175][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:48:47,042 [DEBUG][       Thread-605175][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:48:47,042 [DEBUG][       Thread-605175][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:48:47,042 [DEBUG][       Thread-605175][   transport.py][1871] : Compression: none
2025-07-01 12:48:47,042 [DEBUG][       Thread-605175][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:48:47,100 [DEBUG][       Thread-605175][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:48:47,100 [DEBUG][       Thread-605175][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:48:47,100 [DEBUG][       Thread-605175][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:48:47,101 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:48:47,101 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:48:47,157 [DEBUG][       Thread-605175][   transport.py][1871] : userauth is OK
2025-07-01 12:48:47,157 [DEBUG][       Thread-605175][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:48:47,157 [DEBUG][       Thread-605175][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:48:47,157 [DEBUG][       Thread-605175][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:48:47,157 [DEBUG][       Thread-605175][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:48:47,171 [ INFO][       Thread-605175][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:48:47,171 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:48:47,171 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:48:48,229 [DEBUG][       Thread-605175][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:48:48,229 [DEBUG][       Thread-605175][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:48:48,281 [DEBUG][       Thread-605175][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:48:48,281 [DEBUG][       Thread-605175][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:48:48,290 [DEBUG][       Thread-605175][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:48:48,301 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:48:48,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-07-01 12:48: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') -> 00000000
2025-07-01 12:48:48,317 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:48:48,317 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:48:48,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:48:48,327 [DEBUG][       Thread-605175][   transport.py][1871] : EOF in transport thread
2025-07-01 12:48:54,972 [DEBUG][Thread-605177 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:48:58,327 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:48:58,328 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:48:58,328 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:48:58,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-07-01 12:48:58,822 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 48, 30), 11.06, 47.19, 0.0, 38.66, 12.74, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:48:58,822 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:48:30
2025-07-01 12:48:58,908 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:48:58,912 [DEBUG][       Thread-605178][   transport.py][1871] : starting thread (client mode): 0x81a5a20
2025-07-01 12:48:58,912 [DEBUG][       Thread-605178][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:48:58,932 [DEBUG][       Thread-605178][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:48:58,932 [ INFO][       Thread-605178][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:48:58,935 [DEBUG][       Thread-605178][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:48:58,935 [DEBUG][       Thread-605178][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:48:58,935 [DEBUG][       Thread-605178][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:48:58,935 [DEBUG][       Thread-605178][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:48:58,935 [DEBUG][       Thread-605178][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:48:58,935 [DEBUG][       Thread-605178][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:48:58,935 [DEBUG][       Thread-605178][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:48:58,935 [DEBUG][       Thread-605178][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:48:58,935 [DEBUG][       Thread-605178][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:48:58,935 [DEBUG][       Thread-605178][   transport.py][1871] : client lang: <none>
2025-07-01 12:48:58,935 [DEBUG][       Thread-605178][   transport.py][1871] : server lang: <none>
2025-07-01 12:48:58,935 [DEBUG][       Thread-605178][   transport.py][1871] : kex follows: False
2025-07-01 12:48:58,935 [DEBUG][       Thread-605178][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:48:58,935 [DEBUG][       Thread-605178][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:48:58,935 [DEBUG][       Thread-605178][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:48:58,935 [DEBUG][       Thread-605178][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:48:58,935 [DEBUG][       Thread-605178][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:48:58,935 [DEBUG][       Thread-605178][   transport.py][1871] : Compression: none
2025-07-01 12:48:58,935 [DEBUG][       Thread-605178][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:48:58,952 [DEBUG][       Thread-605178][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:48:58,953 [DEBUG][       Thread-605178][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:48:58,953 [DEBUG][       Thread-605178][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:48:58,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:48:58,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:48:58,955 [DEBUG][       Thread-605178][   transport.py][1871] : userauth is OK
2025-07-01 12:48:58,979 [ INFO][       Thread-605178][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:48:58,980 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:48:59,631 [DEBUG][       Thread-605178][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:48:59,632 [DEBUG][       Thread-605178][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:48:59,673 [DEBUG][       Thread-605178][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:48:59,673 [DEBUG][       Thread-605178][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:48:59,676 [DEBUG][       Thread-605178][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:48:59,689 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:48:59,689 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:48:59,691 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:48:59,693 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:48:59,699 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:48:59,701 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:48:59,701 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:48:59,702 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:48:59,702 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.450290 -999.00  +12.50  33.70     51   +2.90 1 2 2 1 1   888    0 10.36 25.44 ----- 33.7 33.7 11.2 45.4 15.8 -23.1 14.9 -23.4 14.8 -22.0 15.5 -22.5
2025-07-01 12:48:59,702 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:48:59,702 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:48:59,702 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.450290
2025-07-01 12:48:59,703 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:48:59,703 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:48:59,703 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:48:59,703 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:48:59,703 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 12:48:59,704 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:48:30', tmtdew=11.06, humidity=47.19, cloud=0.0, wind=38.66, temperature=12.74, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:48:25.056', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:48:59,704 [DEBUG][       Thread-605178][   transport.py][1871] : EOF in transport thread
2025-07-01 12:48:59,787 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:48:59,801 [DEBUG][       Thread-605181][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 12:48:59,801 [DEBUG][       Thread-605181][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:48:59,817 [DEBUG][       Thread-605181][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:48:59,817 [ INFO][       Thread-605181][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:48:59,824 [DEBUG][       Thread-605181][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:48:59,824 [DEBUG][       Thread-605181][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:48:59,825 [DEBUG][       Thread-605181][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:48:59,825 [DEBUG][       Thread-605181][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:48:59,825 [DEBUG][       Thread-605181][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:48:59,825 [DEBUG][       Thread-605181][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:48:59,825 [DEBUG][       Thread-605181][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:48:59,825 [DEBUG][       Thread-605181][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:48:59,825 [DEBUG][       Thread-605181][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:48:59,825 [DEBUG][       Thread-605181][   transport.py][1871] : client lang: <none>
2025-07-01 12:48:59,825 [DEBUG][       Thread-605181][   transport.py][1871] : server lang: <none>
2025-07-01 12:48:59,825 [DEBUG][       Thread-605181][   transport.py][1871] : kex follows: False
2025-07-01 12:48:59,825 [DEBUG][       Thread-605181][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:48:59,825 [DEBUG][       Thread-605181][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:48:59,825 [DEBUG][       Thread-605181][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:48:59,825 [DEBUG][       Thread-605181][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:48:59,825 [DEBUG][       Thread-605181][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:48:59,825 [DEBUG][       Thread-605181][   transport.py][1871] : Compression: none
2025-07-01 12:48:59,825 [DEBUG][       Thread-605181][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:48:59,886 [DEBUG][       Thread-605181][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:48:59,886 [DEBUG][       Thread-605181][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:48:59,887 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:48:59,887 [DEBUG][       Thread-605181][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:48:59,888 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:48:59,942 [DEBUG][       Thread-605181][   transport.py][1871] : userauth is OK
2025-07-01 12:48:59,942 [DEBUG][       Thread-605181][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:48:59,942 [DEBUG][       Thread-605181][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:48:59,942 [DEBUG][       Thread-605181][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:48:59,942 [DEBUG][       Thread-605181][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:48:59,961 [ INFO][       Thread-605181][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:48:59,962 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:48:59,962 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:49:00,997 [DEBUG][       Thread-605181][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:49:00,997 [DEBUG][       Thread-605181][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:49:01,048 [DEBUG][       Thread-605181][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:49:01,048 [DEBUG][       Thread-605181][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:49:01,058 [DEBUG][       Thread-605181][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:49:01,067 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:49:01,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-07-01 12:49:01,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-07-01 12:49:01,085 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:49:01,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:49:01,086 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:49:01,094 [DEBUG][       Thread-605181][   transport.py][1871] : EOF in transport thread
2025-07-01 12:49:04,006 [DEBUG][Thread-605183 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:49:11,092 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:49:11,092 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:49:11,092 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:49:11,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-07-01 12:49:11,595 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 49, 2), 11.06, 47.18, 0.0, 34.11, 12.75, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:49:11,595 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:49:02
2025-07-01 12:49:11,681 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:49:11,685 [DEBUG][       Thread-605184][   transport.py][1871] : starting thread (client mode): 0x81a5f00
2025-07-01 12:49:11,685 [DEBUG][       Thread-605184][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:49:11,699 [DEBUG][       Thread-605184][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:49:11,699 [ INFO][       Thread-605184][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:49:11,700 [DEBUG][       Thread-605184][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:49:11,700 [DEBUG][       Thread-605184][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:49:11,700 [DEBUG][       Thread-605184][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:49:11,700 [DEBUG][       Thread-605184][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:49:11,700 [DEBUG][       Thread-605184][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:49:11,700 [DEBUG][       Thread-605184][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:49:11,700 [DEBUG][       Thread-605184][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:49:11,700 [DEBUG][       Thread-605184][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:49:11,700 [DEBUG][       Thread-605184][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:49:11,700 [DEBUG][       Thread-605184][   transport.py][1871] : client lang: <none>
2025-07-01 12:49:11,700 [DEBUG][       Thread-605184][   transport.py][1871] : server lang: <none>
2025-07-01 12:49:11,701 [DEBUG][       Thread-605184][   transport.py][1871] : kex follows: False
2025-07-01 12:49:11,701 [DEBUG][       Thread-605184][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:49:11,701 [DEBUG][       Thread-605184][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:49:11,701 [DEBUG][       Thread-605184][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:49:11,701 [DEBUG][       Thread-605184][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:49:11,701 [DEBUG][       Thread-605184][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:49:11,701 [DEBUG][       Thread-605184][   transport.py][1871] : Compression: none
2025-07-01 12:49:11,701 [DEBUG][       Thread-605184][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:49:11,708 [DEBUG][       Thread-605184][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:49:11,708 [DEBUG][       Thread-605184][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:49:11,708 [DEBUG][       Thread-605184][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:49:11,708 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:49:11,708 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:49:11,709 [DEBUG][       Thread-605184][   transport.py][1871] : userauth is OK
2025-07-01 12:49:11,722 [ INFO][       Thread-605184][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:49:11,722 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:49:12,373 [DEBUG][       Thread-605184][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:49:12,373 [DEBUG][       Thread-605184][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:49:12,417 [DEBUG][       Thread-605184][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:49:12,417 [DEBUG][       Thread-605184][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:49:12,421 [DEBUG][       Thread-605184][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:49:12,433 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:49:12,434 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:49:12,436 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:49:12,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:49:12,444 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:49:12,446 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:49:12,446 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:49:12,447 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:49:12,447 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.450637 -999.00  +12.50  37.69     51   +2.90 1 1 2 1 1   888    0 10.13 23.22 ----- 46.3 37.7 19.3 47.1 15.7 -23.3 14.8 -24.4 14.7 -23.0 15.4 -21.9
2025-07-01 12:49:12,447 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:49:12,447 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:49:12,447 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.450637
2025-07-01 12:49:12,448 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:49:12,448 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:49:12,448 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:49:12,449 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:49:12,449 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:49:12,449 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:49:02', tmtdew=11.06, humidity=47.18, cloud=0.0, wind=34.11, temperature=12.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:48:55.037', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:49:12,449 [DEBUG][       Thread-605184][   transport.py][1871] : EOF in transport thread
2025-07-01 12:49:12,543 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:49:12,553 [DEBUG][       Thread-605187][   transport.py][1871] : starting thread (client mode): 0x8156980
2025-07-01 12:49:12,553 [DEBUG][       Thread-605187][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:49:12,574 [DEBUG][       Thread-605187][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:49:12,574 [ INFO][       Thread-605187][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:49:12,582 [DEBUG][       Thread-605187][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:49:12,582 [DEBUG][       Thread-605187][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:49:12,582 [DEBUG][       Thread-605187][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:49:12,582 [DEBUG][       Thread-605187][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:49:12,582 [DEBUG][       Thread-605187][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:49:12,582 [DEBUG][       Thread-605187][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:49:12,582 [DEBUG][       Thread-605187][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:49:12,582 [DEBUG][       Thread-605187][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:49:12,582 [DEBUG][       Thread-605187][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:49:12,582 [DEBUG][       Thread-605187][   transport.py][1871] : client lang: <none>
2025-07-01 12:49:12,582 [DEBUG][       Thread-605187][   transport.py][1871] : server lang: <none>
2025-07-01 12:49:12,582 [DEBUG][       Thread-605187][   transport.py][1871] : kex follows: False
2025-07-01 12:49:12,582 [DEBUG][       Thread-605187][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:49:12,582 [DEBUG][       Thread-605187][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:49:12,583 [DEBUG][       Thread-605187][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:49:12,583 [DEBUG][       Thread-605187][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:49:12,583 [DEBUG][       Thread-605187][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:49:12,583 [DEBUG][       Thread-605187][   transport.py][1871] : Compression: none
2025-07-01 12:49:12,583 [DEBUG][       Thread-605187][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:49:12,641 [DEBUG][       Thread-605187][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:49:12,642 [DEBUG][       Thread-605187][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:49:12,642 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:49:12,643 [DEBUG][       Thread-605187][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:49:12,643 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:49:12,698 [DEBUG][       Thread-605187][   transport.py][1871] : userauth is OK
2025-07-01 12:49:12,698 [DEBUG][       Thread-605187][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:49:12,698 [DEBUG][       Thread-605187][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:49:12,698 [DEBUG][       Thread-605187][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:49:12,698 [DEBUG][       Thread-605187][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:49:12,723 [ INFO][       Thread-605187][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:49:12,723 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:49:12,723 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:49:13,025 [DEBUG][Thread-605189 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:49:13,740 [DEBUG][       Thread-605187][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:49:13,740 [DEBUG][       Thread-605187][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:49:13,788 [DEBUG][       Thread-605187][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:49:13,788 [DEBUG][       Thread-605187][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:49:13,798 [DEBUG][       Thread-605187][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:49:13,807 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:49:13,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-07-01 12:49:13,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-07-01 12:49:13,825 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:49:13,825 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:49:13,826 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:49:13,834 [DEBUG][       Thread-605187][   transport.py][1871] : EOF in transport thread
2025-07-01 12:49:19,032 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:49:19,032 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:49:22,061 [DEBUG][Thread-605190 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:49:23,836 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:49:23,836 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:49:23,836 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:49:23,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-07-01 12:49:24,332 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 49, 2), 11.06, 47.18, 0.0, 34.11, 12.75, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:49:24,332 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:49:02
2025-07-01 12:49:24,424 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:49:24,429 [DEBUG][       Thread-605191][   transport.py][1871] : starting thread (client mode): 0x81a73d0
2025-07-01 12:49:24,429 [DEBUG][       Thread-605191][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:49:24,449 [DEBUG][       Thread-605191][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:49:24,449 [ INFO][       Thread-605191][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:49:24,451 [DEBUG][       Thread-605191][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:49:24,451 [DEBUG][       Thread-605191][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:49:24,451 [DEBUG][       Thread-605191][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:49:24,451 [DEBUG][       Thread-605191][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:49:24,451 [DEBUG][       Thread-605191][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:49:24,451 [DEBUG][       Thread-605191][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:49:24,451 [DEBUG][       Thread-605191][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:49:24,451 [DEBUG][       Thread-605191][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:49:24,451 [DEBUG][       Thread-605191][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:49:24,451 [DEBUG][       Thread-605191][   transport.py][1871] : client lang: <none>
2025-07-01 12:49:24,451 [DEBUG][       Thread-605191][   transport.py][1871] : server lang: <none>
2025-07-01 12:49:24,451 [DEBUG][       Thread-605191][   transport.py][1871] : kex follows: False
2025-07-01 12:49:24,451 [DEBUG][       Thread-605191][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:49:24,451 [DEBUG][       Thread-605191][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:49:24,451 [DEBUG][       Thread-605191][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:49:24,451 [DEBUG][       Thread-605191][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:49:24,451 [DEBUG][       Thread-605191][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:49:24,451 [DEBUG][       Thread-605191][   transport.py][1871] : Compression: none
2025-07-01 12:49:24,451 [DEBUG][       Thread-605191][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:49:24,466 [DEBUG][       Thread-605191][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:49:24,467 [DEBUG][       Thread-605191][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:49:24,467 [DEBUG][       Thread-605191][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:49:24,467 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:49:24,467 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:49:24,467 [DEBUG][       Thread-605191][   transport.py][1871] : userauth is OK
2025-07-01 12:49:24,480 [ INFO][       Thread-605191][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:49:24,480 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:49:25,063 [DEBUG][       Thread-605191][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:49:25,063 [DEBUG][       Thread-605191][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:49:25,104 [DEBUG][       Thread-605191][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:49:25,104 [DEBUG][       Thread-605191][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:49:25,107 [DEBUG][       Thread-605191][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:49:25,118 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:49:25,118 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:49:25,119 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:49:25,120 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:49:25,123 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:49:25,123 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:49:25,123 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:49:25,124 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:49:25,124 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.450637 -999.00  +12.50  37.69     51   +2.90 1 1 2 1 1   888    0 10.13 23.22 ----- 46.3 37.7 19.3 47.1 15.7 -23.3 14.8 -24.4 14.7 -23.0 15.4 -21.9
2025-07-01 12:49:25,124 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:49:25,124 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:49:25,124 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.450637
2025-07-01 12:49:25,124 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:49:25,124 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:49:25,124 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:49:25,124 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:49:25,124 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:49:25,124 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:49:02', tmtdew=11.06, humidity=47.18, cloud=0.0, wind=34.11, temperature=12.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:48:55.037', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:49:25,125 [DEBUG][       Thread-605191][   transport.py][1871] : EOF in transport thread
2025-07-01 12:49:25,199 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:49:25,210 [DEBUG][       Thread-605194][   transport.py][1871] : starting thread (client mode): 0x81e6f80
2025-07-01 12:49:25,210 [DEBUG][       Thread-605194][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:49:25,225 [DEBUG][       Thread-605194][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:49:25,225 [ INFO][       Thread-605194][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:49:25,232 [DEBUG][       Thread-605194][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:49:25,232 [DEBUG][       Thread-605194][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:49:25,232 [DEBUG][       Thread-605194][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:49:25,232 [DEBUG][       Thread-605194][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:49:25,232 [DEBUG][       Thread-605194][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:49:25,232 [DEBUG][       Thread-605194][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:49:25,232 [DEBUG][       Thread-605194][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:49:25,232 [DEBUG][       Thread-605194][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:49:25,232 [DEBUG][       Thread-605194][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:49:25,232 [DEBUG][       Thread-605194][   transport.py][1871] : client lang: <none>
2025-07-01 12:49:25,232 [DEBUG][       Thread-605194][   transport.py][1871] : server lang: <none>
2025-07-01 12:49:25,232 [DEBUG][       Thread-605194][   transport.py][1871] : kex follows: False
2025-07-01 12:49:25,232 [DEBUG][       Thread-605194][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:49:25,232 [DEBUG][       Thread-605194][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:49:25,232 [DEBUG][       Thread-605194][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:49:25,232 [DEBUG][       Thread-605194][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:49:25,232 [DEBUG][       Thread-605194][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:49:25,232 [DEBUG][       Thread-605194][   transport.py][1871] : Compression: none
2025-07-01 12:49:25,232 [DEBUG][       Thread-605194][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:49:25,294 [DEBUG][       Thread-605194][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:49:25,294 [DEBUG][       Thread-605194][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:49:25,294 [DEBUG][       Thread-605194][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:49:25,295 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:49:25,295 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:49:25,349 [DEBUG][       Thread-605194][   transport.py][1871] : userauth is OK
2025-07-01 12:49:25,349 [DEBUG][       Thread-605194][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:49:25,349 [DEBUG][       Thread-605194][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:49:25,349 [DEBUG][       Thread-605194][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:49:25,349 [DEBUG][       Thread-605194][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:49:25,365 [ INFO][       Thread-605194][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:49:25,366 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:49:25,366 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:49:26,408 [DEBUG][       Thread-605194][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:49:26,408 [DEBUG][       Thread-605194][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:49:26,462 [DEBUG][       Thread-605194][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:49:26,462 [DEBUG][       Thread-605194][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:49:26,473 [DEBUG][       Thread-605194][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:49:26,484 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:49:26,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-07-01 12:49:26,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-07-01 12:49:26,499 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:49:26,499 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:49:26,499 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:49:26,507 [DEBUG][       Thread-605194][   transport.py][1871] : EOF in transport thread
2025-07-01 12:49:30,249 [DEBUG][Thread-605196 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:49:31,081 [DEBUG][Thread-605197 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:49:36,500 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:49:36,500 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:49:36,500 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:49:36,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-07-01 12:49:37,017 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 49, 34), 11.15, 46.77, 0.0, 37.53, 12.74, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:49:37,017 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:49:34
2025-07-01 12:49:37,103 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:49:37,107 [DEBUG][       Thread-605198][   transport.py][1871] : starting thread (client mode): 0x81e7610
2025-07-01 12:49:37,107 [DEBUG][       Thread-605198][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:49:37,127 [DEBUG][       Thread-605198][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:49:37,127 [ INFO][       Thread-605198][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:49:37,131 [DEBUG][       Thread-605198][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:49:37,131 [DEBUG][       Thread-605198][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:49:37,131 [DEBUG][       Thread-605198][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:49:37,131 [DEBUG][       Thread-605198][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:49:37,131 [DEBUG][       Thread-605198][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:49:37,131 [DEBUG][       Thread-605198][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:49:37,131 [DEBUG][       Thread-605198][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:49:37,131 [DEBUG][       Thread-605198][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:49:37,131 [DEBUG][       Thread-605198][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:49:37,131 [DEBUG][       Thread-605198][   transport.py][1871] : client lang: <none>
2025-07-01 12:49:37,131 [DEBUG][       Thread-605198][   transport.py][1871] : server lang: <none>
2025-07-01 12:49:37,131 [DEBUG][       Thread-605198][   transport.py][1871] : kex follows: False
2025-07-01 12:49:37,131 [DEBUG][       Thread-605198][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:49:37,131 [DEBUG][       Thread-605198][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:49:37,131 [DEBUG][       Thread-605198][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:49:37,131 [DEBUG][       Thread-605198][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:49:37,131 [DEBUG][       Thread-605198][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:49:37,132 [DEBUG][       Thread-605198][   transport.py][1871] : Compression: none
2025-07-01 12:49:37,132 [DEBUG][       Thread-605198][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:49:37,152 [DEBUG][       Thread-605198][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:49:37,152 [DEBUG][       Thread-605198][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:49:37,153 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:49:37,153 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:49:37,153 [DEBUG][       Thread-605198][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:49:37,154 [DEBUG][       Thread-605198][   transport.py][1871] : userauth is OK
2025-07-01 12:49:37,179 [ INFO][       Thread-605198][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:49:37,179 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:49:37,836 [DEBUG][       Thread-605198][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:49:37,836 [DEBUG][       Thread-605198][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:49:37,877 [DEBUG][       Thread-605198][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:49:37,877 [DEBUG][       Thread-605198][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:49:37,881 [DEBUG][       Thread-605198][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:49:37,895 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:49:37,895 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:49:37,897 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:49:37,899 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:49:37,905 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:49:37,907 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:49:37,907 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:49:37,908 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:49:37,908 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.450637 -999.00  +12.50  37.69     51   +2.90 1 1 2 1 1   888    0 10.13 23.22 ----- 46.3 37.7 19.3 47.1 15.7 -23.3 14.8 -24.4 14.7 -23.0 15.4 -21.9
2025-07-01 12:49:37,908 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:49:37,908 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:49:37,909 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.450637
2025-07-01 12:49:37,909 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:49:37,909 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:49:37,910 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:49:37,910 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:49:37,910 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:49:37,910 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:49:34', tmtdew=11.15, humidity=46.77, cloud=0.0, wind=37.53, temperature=12.74, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:48:55.037', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:49:37,910 [DEBUG][       Thread-605198][   transport.py][1871] : EOF in transport thread
2025-07-01 12:49:37,997 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:49:38,007 [DEBUG][       Thread-605201][   transport.py][1871] : starting thread (client mode): 0x81a4a60
2025-07-01 12:49:38,007 [DEBUG][       Thread-605201][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:49:38,021 [DEBUG][       Thread-605201][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:49:38,021 [ INFO][       Thread-605201][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:49:38,029 [DEBUG][       Thread-605201][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:49:38,029 [DEBUG][       Thread-605201][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:49:38,029 [DEBUG][       Thread-605201][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:49:38,029 [DEBUG][       Thread-605201][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:49:38,029 [DEBUG][       Thread-605201][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:49:38,029 [DEBUG][       Thread-605201][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:49:38,029 [DEBUG][       Thread-605201][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:49:38,029 [DEBUG][       Thread-605201][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:49:38,029 [DEBUG][       Thread-605201][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:49:38,029 [DEBUG][       Thread-605201][   transport.py][1871] : client lang: <none>
2025-07-01 12:49:38,029 [DEBUG][       Thread-605201][   transport.py][1871] : server lang: <none>
2025-07-01 12:49:38,029 [DEBUG][       Thread-605201][   transport.py][1871] : kex follows: False
2025-07-01 12:49:38,029 [DEBUG][       Thread-605201][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:49:38,029 [DEBUG][       Thread-605201][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:49:38,029 [DEBUG][       Thread-605201][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:49:38,030 [DEBUG][       Thread-605201][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:49:38,030 [DEBUG][       Thread-605201][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:49:38,030 [DEBUG][       Thread-605201][   transport.py][1871] : Compression: none
2025-07-01 12:49:38,030 [DEBUG][       Thread-605201][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:49:38,091 [DEBUG][       Thread-605201][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:49:38,092 [DEBUG][       Thread-605201][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:49:38,093 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:49:38,094 [DEBUG][       Thread-605201][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:49:38,094 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:49:38,150 [DEBUG][       Thread-605201][   transport.py][1871] : userauth is OK
2025-07-01 12:49:38,150 [DEBUG][       Thread-605201][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:49:38,151 [DEBUG][       Thread-605201][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:49:38,151 [DEBUG][       Thread-605201][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:49:38,151 [DEBUG][       Thread-605201][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:49:38,183 [ INFO][       Thread-605201][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:49:38,183 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:49:38,184 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:49:39,235 [DEBUG][       Thread-605201][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:49:39,235 [DEBUG][       Thread-605201][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:49:39,284 [DEBUG][       Thread-605201][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:49:39,284 [DEBUG][       Thread-605201][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:49:39,294 [DEBUG][       Thread-605201][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:49:39,302 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:49:39,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')
2025-07-01 12:49:39,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-07-01 12:49:39,320 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:49:39,320 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:49:39,321 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:49:39,330 [DEBUG][       Thread-605201][   transport.py][1871] : EOF in transport thread
2025-07-01 12:49:40,101 [DEBUG][Thread-605203 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:49:49,143 [DEBUG][Thread-605204 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:49:49,330 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:49:49,330 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:49:49,330 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:49:49,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-07-01 12:49:49,840 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 49, 34), 11.15, 46.77, 0.0, 37.53, 12.74, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:49:49,840 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:49:34
2025-07-01 12:49:49,927 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:49:49,931 [DEBUG][       Thread-605205][   transport.py][1871] : starting thread (client mode): 0x81d82e0
2025-07-01 12:49:49,931 [DEBUG][       Thread-605205][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:49:49,951 [DEBUG][       Thread-605205][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:49:49,951 [ INFO][       Thread-605205][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:49:49,954 [DEBUG][       Thread-605205][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:49:49,954 [DEBUG][       Thread-605205][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:49:49,955 [DEBUG][       Thread-605205][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:49:49,955 [DEBUG][       Thread-605205][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:49:49,955 [DEBUG][       Thread-605205][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:49:49,955 [DEBUG][       Thread-605205][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:49:49,955 [DEBUG][       Thread-605205][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:49:49,955 [DEBUG][       Thread-605205][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:49:49,955 [DEBUG][       Thread-605205][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:49:49,955 [DEBUG][       Thread-605205][   transport.py][1871] : client lang: <none>
2025-07-01 12:49:49,955 [DEBUG][       Thread-605205][   transport.py][1871] : server lang: <none>
2025-07-01 12:49:49,955 [DEBUG][       Thread-605205][   transport.py][1871] : kex follows: False
2025-07-01 12:49:49,955 [DEBUG][       Thread-605205][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:49:49,955 [DEBUG][       Thread-605205][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:49:49,955 [DEBUG][       Thread-605205][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:49:49,955 [DEBUG][       Thread-605205][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:49:49,955 [DEBUG][       Thread-605205][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:49:49,955 [DEBUG][       Thread-605205][   transport.py][1871] : Compression: none
2025-07-01 12:49:49,955 [DEBUG][       Thread-605205][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:49:49,971 [DEBUG][       Thread-605205][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:49:49,971 [DEBUG][       Thread-605205][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:49:49,972 [DEBUG][       Thread-605205][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:49:49,972 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:49:49,972 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:49:49,973 [DEBUG][       Thread-605205][   transport.py][1871] : userauth is OK
2025-07-01 12:49:49,987 [ INFO][       Thread-605205][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:49:49,987 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:49:50,628 [DEBUG][       Thread-605205][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:49:50,629 [DEBUG][       Thread-605205][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:49:50,673 [DEBUG][       Thread-605205][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:49:50,673 [DEBUG][       Thread-605205][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:49:50,676 [DEBUG][       Thread-605205][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:49:50,689 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:49:50,689 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:49:50,691 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:49:50,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:49:50,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:49:50,699 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:49:50,699 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:49:50,700 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:49:50,700 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.450984 -999.00  +12.70  29.64     52   +3.10 1 2 1 1 1   888    0 10.22 20.79 ----- 33.0 29.6 39.8 52.7 15.9 -22.7 14.9 -23.1 14.8 -22.3 15.6 -21.3
2025-07-01 12:49:50,700 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:49:50,701 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:49:50,701 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.450984
2025-07-01 12:49:50,701 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:49:50,702 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:49:50,702 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:49:50,702 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:49:50,702 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 12:49:50,702 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:49:34', tmtdew=11.15, humidity=46.77, cloud=0.0, wind=37.53, temperature=12.74, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:49:25.018', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:49:50,703 [DEBUG][       Thread-605205][   transport.py][1871] : EOF in transport thread
2025-07-01 12:49:50,786 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:49:50,798 [DEBUG][       Thread-605208][   transport.py][1871] : starting thread (client mode): 0x8154910
2025-07-01 12:49:50,798 [DEBUG][       Thread-605208][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:49:50,815 [DEBUG][       Thread-605208][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:49:50,815 [ INFO][       Thread-605208][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:49:50,822 [DEBUG][       Thread-605208][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:49:50,822 [DEBUG][       Thread-605208][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:49:50,823 [DEBUG][       Thread-605208][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:49:50,823 [DEBUG][       Thread-605208][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:49:50,823 [DEBUG][       Thread-605208][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:49:50,823 [DEBUG][       Thread-605208][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:49:50,823 [DEBUG][       Thread-605208][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:49:50,823 [DEBUG][       Thread-605208][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:49:50,823 [DEBUG][       Thread-605208][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:49:50,823 [DEBUG][       Thread-605208][   transport.py][1871] : client lang: <none>
2025-07-01 12:49:50,823 [DEBUG][       Thread-605208][   transport.py][1871] : server lang: <none>
2025-07-01 12:49:50,823 [DEBUG][       Thread-605208][   transport.py][1871] : kex follows: False
2025-07-01 12:49:50,823 [DEBUG][       Thread-605208][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:49:50,823 [DEBUG][       Thread-605208][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:49:50,823 [DEBUG][       Thread-605208][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:49:50,823 [DEBUG][       Thread-605208][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:49:50,823 [DEBUG][       Thread-605208][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:49:50,823 [DEBUG][       Thread-605208][   transport.py][1871] : Compression: none
2025-07-01 12:49:50,823 [DEBUG][       Thread-605208][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:49:50,884 [DEBUG][       Thread-605208][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:49:50,885 [DEBUG][       Thread-605208][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:49:50,886 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:49:50,886 [DEBUG][       Thread-605208][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:49:50,887 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:49:50,942 [DEBUG][       Thread-605208][   transport.py][1871] : userauth is OK
2025-07-01 12:49:50,943 [DEBUG][       Thread-605208][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:49:50,943 [DEBUG][       Thread-605208][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:49:50,943 [DEBUG][       Thread-605208][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:49:50,943 [DEBUG][       Thread-605208][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:49:50,962 [ INFO][       Thread-605208][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:49:50,962 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:49:50,963 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:49:52,043 [DEBUG][       Thread-605208][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:49:52,044 [DEBUG][       Thread-605208][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:49:52,092 [DEBUG][       Thread-605208][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:49:52,092 [DEBUG][       Thread-605208][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:49:52,102 [DEBUG][       Thread-605208][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:49:52,111 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:49:52,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-07-01 12:49:52,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-07-01 12:49:52,129 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:49:52,129 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:49:52,130 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:49:52,138 [DEBUG][       Thread-605208][   transport.py][1871] : EOF in transport thread
2025-07-01 12:49:58,165 [DEBUG][Thread-605210 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:50:02,140 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:50:02,140 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:50:02,140 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:50:02,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-07-01 12:50:02,650 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 49, 34), 11.15, 46.77, 0.0, 37.53, 12.74, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:50:02,650 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:49:34
2025-07-01 12:50:02,740 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:50:02,744 [DEBUG][       Thread-605211][   transport.py][1871] : starting thread (client mode): 0x81a4430
2025-07-01 12:50:02,744 [DEBUG][       Thread-605211][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:50:02,765 [DEBUG][       Thread-605211][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:50:02,765 [ INFO][       Thread-605211][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:50:02,768 [DEBUG][       Thread-605211][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:50:02,768 [DEBUG][       Thread-605211][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:50:02,768 [DEBUG][       Thread-605211][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:50:02,768 [DEBUG][       Thread-605211][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:50:02,768 [DEBUG][       Thread-605211][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:50:02,768 [DEBUG][       Thread-605211][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:50:02,768 [DEBUG][       Thread-605211][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:50:02,768 [DEBUG][       Thread-605211][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:50:02,768 [DEBUG][       Thread-605211][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:50:02,768 [DEBUG][       Thread-605211][   transport.py][1871] : client lang: <none>
2025-07-01 12:50:02,768 [DEBUG][       Thread-605211][   transport.py][1871] : server lang: <none>
2025-07-01 12:50:02,768 [DEBUG][       Thread-605211][   transport.py][1871] : kex follows: False
2025-07-01 12:50:02,768 [DEBUG][       Thread-605211][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:50:02,768 [DEBUG][       Thread-605211][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:50:02,768 [DEBUG][       Thread-605211][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:50:02,769 [DEBUG][       Thread-605211][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:50:02,769 [DEBUG][       Thread-605211][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:50:02,769 [DEBUG][       Thread-605211][   transport.py][1871] : Compression: none
2025-07-01 12:50:02,769 [DEBUG][       Thread-605211][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:50:02,783 [DEBUG][       Thread-605211][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:50:02,783 [DEBUG][       Thread-605211][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:50:02,783 [DEBUG][       Thread-605211][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:50:02,784 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:50:02,784 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:50:02,784 [DEBUG][       Thread-605211][   transport.py][1871] : userauth is OK
2025-07-01 12:50:02,797 [ INFO][       Thread-605211][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:50:02,797 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:50:04,576 [DEBUG][       Thread-605211][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:50:04,576 [DEBUG][       Thread-605211][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:50:04,631 [DEBUG][       Thread-605211][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:50:04,631 [DEBUG][       Thread-605211][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:50:04,632 [DEBUG][       Thread-605211][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:50:04,638 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:50:04,638 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:50:04,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:50:04,640 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:50:04,642 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:50:04,642 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:50:04,642 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:50:04,643 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:50:04,643 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.450984 -999.00  +12.70  29.64     52   +3.10 1 2 1 1 1   888    0 10.22 20.79 ----- 33.0 29.6 39.8 52.7 15.9 -22.7 14.9 -23.1 14.8 -22.3 15.6 -21.3
2025-07-01 12:50:04,643 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:50:04,643 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:50:04,643 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.450984
2025-07-01 12:50:04,643 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:50:04,643 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:50:04,643 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:50:04,643 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:50:04,643 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 12:50:04,643 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:49:34', tmtdew=11.15, humidity=46.77, cloud=0.0, wind=37.53, temperature=12.74, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:49:25.018', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:50:04,643 [DEBUG][       Thread-605211][   transport.py][1871] : EOF in transport thread
2025-07-01 12:50:04,718 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:50:04,727 [DEBUG][       Thread-605214][   transport.py][1871] : starting thread (client mode): 0x827d540
2025-07-01 12:50:04,728 [DEBUG][       Thread-605214][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:50:04,745 [DEBUG][       Thread-605214][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:50:04,745 [ INFO][       Thread-605214][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:50:04,753 [DEBUG][       Thread-605214][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:50:04,753 [DEBUG][       Thread-605214][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:50:04,753 [DEBUG][       Thread-605214][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:50:04,753 [DEBUG][       Thread-605214][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:50:04,753 [DEBUG][       Thread-605214][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:50:04,753 [DEBUG][       Thread-605214][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:50:04,753 [DEBUG][       Thread-605214][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:50:04,753 [DEBUG][       Thread-605214][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:50:04,753 [DEBUG][       Thread-605214][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:50:04,753 [DEBUG][       Thread-605214][   transport.py][1871] : client lang: <none>
2025-07-01 12:50:04,753 [DEBUG][       Thread-605214][   transport.py][1871] : server lang: <none>
2025-07-01 12:50:04,753 [DEBUG][       Thread-605214][   transport.py][1871] : kex follows: False
2025-07-01 12:50:04,753 [DEBUG][       Thread-605214][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:50:04,753 [DEBUG][       Thread-605214][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:50:04,753 [DEBUG][       Thread-605214][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:50:04,753 [DEBUG][       Thread-605214][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:50:04,753 [DEBUG][       Thread-605214][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:50:04,753 [DEBUG][       Thread-605214][   transport.py][1871] : Compression: none
2025-07-01 12:50:04,753 [DEBUG][       Thread-605214][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:50:04,817 [DEBUG][       Thread-605214][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:50:04,817 [DEBUG][       Thread-605214][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:50:04,817 [DEBUG][       Thread-605214][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:50:04,817 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:50:04,817 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:50:04,879 [DEBUG][       Thread-605214][   transport.py][1871] : userauth is OK
2025-07-01 12:50:04,879 [DEBUG][       Thread-605214][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:50:04,879 [DEBUG][       Thread-605214][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:50:04,879 [DEBUG][       Thread-605214][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:50:04,879 [DEBUG][       Thread-605214][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:50:04,894 [ INFO][       Thread-605214][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:50:04,894 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:50:04,894 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:50:06,054 [DEBUG][       Thread-605214][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:50:06,054 [DEBUG][       Thread-605214][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:50:06,104 [DEBUG][       Thread-605214][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:50:06,104 [DEBUG][       Thread-605214][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:50:06,113 [DEBUG][       Thread-605214][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:50:06,121 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:50:06,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-07-01 12:50:06,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-07-01 12:50:06,137 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:50:06,137 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:50:06,137 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:50:06,145 [DEBUG][       Thread-605214][   transport.py][1871] : EOF in transport thread
2025-07-01 12:50:07,194 [DEBUG][Thread-605216 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:50:16,148 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:50:16,148 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:50:16,148 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:50:16,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-07-01 12:50:16,212 [DEBUG][Thread-605217 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:50:16,641 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 50, 6), 11.13, 46.83, 0.0, 35.82, 12.75, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:50:16,641 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:50:06
2025-07-01 12:50:16,726 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:50:16,731 [DEBUG][       Thread-605218][   transport.py][1871] : starting thread (client mode): 0x8157850
2025-07-01 12:50:16,731 [DEBUG][       Thread-605218][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:50:16,747 [DEBUG][       Thread-605218][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:50:16,747 [ INFO][       Thread-605218][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:50:16,750 [DEBUG][       Thread-605218][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:50:16,750 [DEBUG][       Thread-605218][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:50:16,750 [DEBUG][       Thread-605218][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:50:16,750 [DEBUG][       Thread-605218][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:50:16,750 [DEBUG][       Thread-605218][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:50:16,750 [DEBUG][       Thread-605218][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:50:16,750 [DEBUG][       Thread-605218][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:50:16,750 [DEBUG][       Thread-605218][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:50:16,750 [DEBUG][       Thread-605218][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:50:16,750 [DEBUG][       Thread-605218][   transport.py][1871] : client lang: <none>
2025-07-01 12:50:16,750 [DEBUG][       Thread-605218][   transport.py][1871] : server lang: <none>
2025-07-01 12:50:16,750 [DEBUG][       Thread-605218][   transport.py][1871] : kex follows: False
2025-07-01 12:50:16,750 [DEBUG][       Thread-605218][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:50:16,750 [DEBUG][       Thread-605218][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:50:16,750 [DEBUG][       Thread-605218][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:50:16,750 [DEBUG][       Thread-605218][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:50:16,750 [DEBUG][       Thread-605218][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:50:16,750 [DEBUG][       Thread-605218][   transport.py][1871] : Compression: none
2025-07-01 12:50:16,751 [DEBUG][       Thread-605218][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:50:16,766 [DEBUG][       Thread-605218][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:50:16,766 [DEBUG][       Thread-605218][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:50:16,767 [DEBUG][       Thread-605218][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:50:16,767 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:50:16,767 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:50:16,772 [DEBUG][       Thread-605218][   transport.py][1871] : userauth is OK
2025-07-01 12:50:16,785 [ INFO][       Thread-605218][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:50:16,785 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:50:17,409 [DEBUG][       Thread-605218][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:50:17,409 [DEBUG][       Thread-605218][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:50:17,453 [DEBUG][       Thread-605218][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:50:17,453 [DEBUG][       Thread-605218][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:50:17,456 [DEBUG][       Thread-605218][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:50:17,467 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:50:17,468 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:50:17,469 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:50:17,471 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:50:17,478 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:50:17,480 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:50:17,480 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:50:17,481 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:50:17,481 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.451332 -999.00  +12.80  34.13     51   +3.10 1 2 2 1 1   888    0 10.21 18.40 ----- 28.7 34.1 24.4 44.0 15.9 -22.0 15.0 -22.9 14.8 -21.7 15.7 -21.8
2025-07-01 12:50:17,481 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:50:17,481 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:50:17,481 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.451332
2025-07-01 12:50:17,482 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:50:17,482 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:50:17,482 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:50:17,482 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:50:17,482 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 12:50:17,482 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:50:06', tmtdew=11.13, humidity=46.83, cloud=0.0, wind=35.82, temperature=12.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:49:55.085', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:50:17,484 [DEBUG][       Thread-605218][   transport.py][1871] : EOF in transport thread
2025-07-01 12:50:17,561 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:50:17,572 [DEBUG][       Thread-605221][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 12:50:17,572 [DEBUG][       Thread-605221][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:50:17,587 [DEBUG][       Thread-605221][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:50:17,588 [ INFO][       Thread-605221][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:50:17,595 [DEBUG][       Thread-605221][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:50:17,595 [DEBUG][       Thread-605221][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:50:17,595 [DEBUG][       Thread-605221][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:50:17,595 [DEBUG][       Thread-605221][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:50:17,595 [DEBUG][       Thread-605221][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:50:17,595 [DEBUG][       Thread-605221][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:50:17,595 [DEBUG][       Thread-605221][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:50:17,595 [DEBUG][       Thread-605221][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:50:17,595 [DEBUG][       Thread-605221][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:50:17,595 [DEBUG][       Thread-605221][   transport.py][1871] : client lang: <none>
2025-07-01 12:50:17,595 [DEBUG][       Thread-605221][   transport.py][1871] : server lang: <none>
2025-07-01 12:50:17,595 [DEBUG][       Thread-605221][   transport.py][1871] : kex follows: False
2025-07-01 12:50:17,595 [DEBUG][       Thread-605221][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:50:17,596 [DEBUG][       Thread-605221][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:50:17,596 [DEBUG][       Thread-605221][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:50:17,596 [DEBUG][       Thread-605221][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:50:17,596 [DEBUG][       Thread-605221][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:50:17,596 [DEBUG][       Thread-605221][   transport.py][1871] : Compression: none
2025-07-01 12:50:17,596 [DEBUG][       Thread-605221][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:50:17,654 [DEBUG][       Thread-605221][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:50:17,655 [DEBUG][       Thread-605221][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:50:17,655 [DEBUG][       Thread-605221][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:50:17,656 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:50:17,656 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:50:17,714 [DEBUG][       Thread-605221][   transport.py][1871] : userauth is OK
2025-07-01 12:50:17,714 [DEBUG][       Thread-605221][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:50:17,714 [DEBUG][       Thread-605221][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:50:17,714 [DEBUG][       Thread-605221][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:50:17,714 [DEBUG][       Thread-605221][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:50:17,729 [ INFO][       Thread-605221][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:50:17,729 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:50:17,729 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:50:18,795 [DEBUG][       Thread-605221][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:50:18,796 [DEBUG][       Thread-605221][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:50:18,844 [DEBUG][       Thread-605221][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:50:18,844 [DEBUG][       Thread-605221][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:50:18,858 [DEBUG][       Thread-605221][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:50:18,870 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:50:18,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-07-01 12:50:18,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-07-01 12:50:18,888 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:50:18,889 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:50:18,889 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:50:18,897 [DEBUG][       Thread-605221][   transport.py][1871] : EOF in transport thread
2025-07-01 12:50:19,172 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:50:19,173 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:50:25,234 [DEBUG][Thread-605223 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:50:28,900 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:50:28,900 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:50:28,900 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:50:28,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-07-01 12:50:29,391 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 50, 6), 11.13, 46.83, 0.0, 35.82, 12.75, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:50:29,391 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:50:06
2025-07-01 12:50:29,476 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:50:29,483 [DEBUG][       Thread-605224][   transport.py][1871] : starting thread (client mode): 0x818de10
2025-07-01 12:50:29,483 [DEBUG][       Thread-605224][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:50:29,504 [DEBUG][       Thread-605224][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:50:29,504 [ INFO][       Thread-605224][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:50:29,505 [DEBUG][       Thread-605224][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:50:29,506 [DEBUG][       Thread-605224][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:50:29,506 [DEBUG][       Thread-605224][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:50:29,506 [DEBUG][       Thread-605224][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:50:29,506 [DEBUG][       Thread-605224][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:50:29,506 [DEBUG][       Thread-605224][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:50:29,506 [DEBUG][       Thread-605224][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:50:29,506 [DEBUG][       Thread-605224][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:50:29,506 [DEBUG][       Thread-605224][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:50:29,506 [DEBUG][       Thread-605224][   transport.py][1871] : client lang: <none>
2025-07-01 12:50:29,506 [DEBUG][       Thread-605224][   transport.py][1871] : server lang: <none>
2025-07-01 12:50:29,506 [DEBUG][       Thread-605224][   transport.py][1871] : kex follows: False
2025-07-01 12:50:29,506 [DEBUG][       Thread-605224][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:50:29,506 [DEBUG][       Thread-605224][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:50:29,507 [DEBUG][       Thread-605224][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:50:29,507 [DEBUG][       Thread-605224][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:50:29,507 [DEBUG][       Thread-605224][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:50:29,507 [DEBUG][       Thread-605224][   transport.py][1871] : Compression: none
2025-07-01 12:50:29,507 [DEBUG][       Thread-605224][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:50:29,526 [DEBUG][       Thread-605224][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:50:29,526 [DEBUG][       Thread-605224][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:50:29,527 [DEBUG][       Thread-605224][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:50:29,527 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:50:29,528 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:50:29,529 [DEBUG][       Thread-605224][   transport.py][1871] : userauth is OK
2025-07-01 12:50:29,554 [ INFO][       Thread-605224][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:50:29,555 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:50:30,194 [DEBUG][       Thread-605224][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:50:30,194 [DEBUG][       Thread-605224][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:50:30,237 [DEBUG][       Thread-605224][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:50:30,238 [DEBUG][       Thread-605224][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:50:30,241 [DEBUG][       Thread-605224][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:50:30,255 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:50:30,255 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:50:30,257 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:50:30,259 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:50:30,263 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:50:30,265 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:50:30,265 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:50:30,266 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:50:30,266 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.451332 -999.00  +12.80  34.13     51   +3.10 1 2 2 1 1   888    0 10.21 18.40 ----- 28.7 34.1 24.4 44.0 15.9 -22.0 15.0 -22.9 14.8 -21.7 15.7 -21.8
2025-07-01 12:50:30,266 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:50:30,266 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:50:30,266 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.451332
2025-07-01 12:50:30,266 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:50:30,267 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:50:30,267 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:50:30,267 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:50:30,267 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 12:50:30,267 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:50:06', tmtdew=11.13, humidity=46.83, cloud=0.0, wind=35.82, temperature=12.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:49:55.085', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:50:30,267 [DEBUG][       Thread-605224][   transport.py][1871] : EOF in transport thread
2025-07-01 12:50:30,299 [DEBUG][Thread-605227 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:50:30,345 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:50:30,357 [DEBUG][       Thread-605228][   transport.py][1871] : starting thread (client mode): 0x8106f20
2025-07-01 12:50:30,357 [DEBUG][       Thread-605228][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:50:30,379 [DEBUG][       Thread-605228][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:50:30,379 [ INFO][       Thread-605228][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:50:30,386 [DEBUG][       Thread-605228][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:50:30,386 [DEBUG][       Thread-605228][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:50:30,386 [DEBUG][       Thread-605228][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:50:30,386 [DEBUG][       Thread-605228][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:50:30,386 [DEBUG][       Thread-605228][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:50:30,386 [DEBUG][       Thread-605228][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:50:30,386 [DEBUG][       Thread-605228][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:50:30,387 [DEBUG][       Thread-605228][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:50:30,387 [DEBUG][       Thread-605228][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:50:30,387 [DEBUG][       Thread-605228][   transport.py][1871] : client lang: <none>
2025-07-01 12:50:30,387 [DEBUG][       Thread-605228][   transport.py][1871] : server lang: <none>
2025-07-01 12:50:30,387 [DEBUG][       Thread-605228][   transport.py][1871] : kex follows: False
2025-07-01 12:50:30,387 [DEBUG][       Thread-605228][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:50:30,387 [DEBUG][       Thread-605228][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:50:30,387 [DEBUG][       Thread-605228][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:50:30,387 [DEBUG][       Thread-605228][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:50:30,387 [DEBUG][       Thread-605228][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:50:30,387 [DEBUG][       Thread-605228][   transport.py][1871] : Compression: none
2025-07-01 12:50:30,387 [DEBUG][       Thread-605228][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:50:30,445 [DEBUG][       Thread-605228][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:50:30,446 [DEBUG][       Thread-605228][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:50:30,446 [DEBUG][       Thread-605228][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:50:30,447 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:50:30,447 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:50:30,502 [DEBUG][       Thread-605228][   transport.py][1871] : userauth is OK
2025-07-01 12:50:30,503 [DEBUG][       Thread-605228][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:50:30,503 [DEBUG][       Thread-605228][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:50:30,503 [DEBUG][       Thread-605228][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:50:30,503 [DEBUG][       Thread-605228][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:50:30,521 [ INFO][       Thread-605228][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:50:30,521 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:50:30,522 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:50:31,512 [DEBUG][       Thread-605228][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:50:31,512 [DEBUG][       Thread-605228][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:50:31,560 [DEBUG][       Thread-605228][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:50:31,560 [DEBUG][       Thread-605228][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:50:31,570 [DEBUG][       Thread-605228][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:50:31,579 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:50: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')
2025-07-01 12:50:31,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-07-01 12:50:31,597 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:50:31,597 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:50:31,597 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:50:31,605 [DEBUG][       Thread-605228][   transport.py][1871] : EOF in transport thread
2025-07-01 12:50:34,267 [DEBUG][Thread-605230 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:50:41,604 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:50:41,604 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:50:41,604 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:50:41,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-07-01 12:50:42,091 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 50, 37), 11.23, 46.3, 0.0, 37.03, 12.75, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:50:42,091 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:50:37
2025-07-01 12:50:42,179 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:50:42,183 [DEBUG][       Thread-605231][   transport.py][1871] : starting thread (client mode): 0x818d630
2025-07-01 12:50:42,183 [DEBUG][       Thread-605231][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:50:42,198 [DEBUG][       Thread-605231][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:50:42,198 [ INFO][       Thread-605231][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:50:42,201 [DEBUG][       Thread-605231][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:50:42,202 [DEBUG][       Thread-605231][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:50:42,202 [DEBUG][       Thread-605231][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:50:42,202 [DEBUG][       Thread-605231][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:50:42,202 [DEBUG][       Thread-605231][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:50:42,202 [DEBUG][       Thread-605231][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:50:42,202 [DEBUG][       Thread-605231][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:50:42,202 [DEBUG][       Thread-605231][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:50:42,202 [DEBUG][       Thread-605231][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:50:42,202 [DEBUG][       Thread-605231][   transport.py][1871] : client lang: <none>
2025-07-01 12:50:42,202 [DEBUG][       Thread-605231][   transport.py][1871] : server lang: <none>
2025-07-01 12:50:42,202 [DEBUG][       Thread-605231][   transport.py][1871] : kex follows: False
2025-07-01 12:50:42,202 [DEBUG][       Thread-605231][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:50:42,202 [DEBUG][       Thread-605231][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:50:42,202 [DEBUG][       Thread-605231][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:50:42,202 [DEBUG][       Thread-605231][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:50:42,202 [DEBUG][       Thread-605231][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:50:42,202 [DEBUG][       Thread-605231][   transport.py][1871] : Compression: none
2025-07-01 12:50:42,202 [DEBUG][       Thread-605231][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:50:42,217 [DEBUG][       Thread-605231][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:50:42,217 [DEBUG][       Thread-605231][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:50:42,217 [DEBUG][       Thread-605231][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:50:42,217 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:50:42,218 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:50:42,218 [DEBUG][       Thread-605231][   transport.py][1871] : userauth is OK
2025-07-01 12:50:42,230 [ INFO][       Thread-605231][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:50:42,230 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:50:42,874 [DEBUG][       Thread-605231][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:50:42,874 [DEBUG][       Thread-605231][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:50:42,916 [DEBUG][       Thread-605231][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:50:42,916 [DEBUG][       Thread-605231][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:50:42,919 [DEBUG][       Thread-605231][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:50:42,938 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:50:42,938 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:50:42,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:50:42,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:50:42,943 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:50:42,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:50:42,945 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:50:42,945 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:50:42,945 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.451332 -999.00  +12.80  34.13     51   +3.10 1 2 2 1 1   888    0 10.21 18.40 ----- 28.7 34.1 24.4 44.0 15.9 -22.0 15.0 -22.9 14.8 -21.7 15.7 -21.8
2025-07-01 12:50:42,945 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:50:42,945 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:50:42,945 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.451332
2025-07-01 12:50:42,945 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:50:42,945 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:50:42,945 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:50:42,945 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:50:42,945 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 12:50:42,945 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:50:37', tmtdew=11.23, humidity=46.3, cloud=0.0, wind=37.03, temperature=12.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:49:55.085', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:50:42,946 [DEBUG][       Thread-605231][   transport.py][1871] : EOF in transport thread
2025-07-01 12:50:43,020 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:50:43,029 [DEBUG][       Thread-605234][   transport.py][1871] : starting thread (client mode): 0x82b3670
2025-07-01 12:50:43,029 [DEBUG][       Thread-605234][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:50:43,044 [DEBUG][       Thread-605234][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:50:43,044 [ INFO][       Thread-605234][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:50:43,052 [DEBUG][       Thread-605234][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:50:43,052 [DEBUG][       Thread-605234][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:50:43,052 [DEBUG][       Thread-605234][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:50:43,052 [DEBUG][       Thread-605234][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:50:43,052 [DEBUG][       Thread-605234][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:50:43,052 [DEBUG][       Thread-605234][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:50:43,052 [DEBUG][       Thread-605234][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:50:43,052 [DEBUG][       Thread-605234][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:50:43,052 [DEBUG][       Thread-605234][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:50:43,052 [DEBUG][       Thread-605234][   transport.py][1871] : client lang: <none>
2025-07-01 12:50:43,052 [DEBUG][       Thread-605234][   transport.py][1871] : server lang: <none>
2025-07-01 12:50:43,052 [DEBUG][       Thread-605234][   transport.py][1871] : kex follows: False
2025-07-01 12:50:43,052 [DEBUG][       Thread-605234][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:50:43,052 [DEBUG][       Thread-605234][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:50:43,052 [DEBUG][       Thread-605234][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:50:43,052 [DEBUG][       Thread-605234][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:50:43,052 [DEBUG][       Thread-605234][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:50:43,052 [DEBUG][       Thread-605234][   transport.py][1871] : Compression: none
2025-07-01 12:50:43,052 [DEBUG][       Thread-605234][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:50:43,109 [DEBUG][       Thread-605234][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:50:43,109 [DEBUG][       Thread-605234][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:50:43,109 [DEBUG][       Thread-605234][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:50:43,109 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:50:43,109 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:50:43,166 [DEBUG][       Thread-605234][   transport.py][1871] : userauth is OK
2025-07-01 12:50:43,166 [DEBUG][       Thread-605234][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:50:43,166 [DEBUG][       Thread-605234][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:50:43,166 [DEBUG][       Thread-605234][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:50:43,166 [DEBUG][       Thread-605234][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:50:43,180 [ INFO][       Thread-605234][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:50:43,180 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:50:43,180 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:50:43,290 [DEBUG][Thread-605236 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:50:44,204 [DEBUG][       Thread-605234][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:50:44,205 [DEBUG][       Thread-605234][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:50:44,256 [DEBUG][       Thread-605234][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:50:44,256 [DEBUG][       Thread-605234][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:50:44,265 [DEBUG][       Thread-605234][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:50:44,274 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:50:44,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-07-01 12:50:44,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-07-01 12:50:44,293 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:50:44,293 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:50:44,294 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:50:44,302 [DEBUG][       Thread-605234][   transport.py][1871] : EOF in transport thread
2025-07-01 12:50:52,315 [DEBUG][Thread-605237 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:50:54,304 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:50:54,304 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:50:54,304 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:50:54,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-07-01 12:50:54,797 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 50, 37), 11.23, 46.3, 0.0, 37.03, 12.75, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:50:54,797 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:50:37
2025-07-01 12:50:54,882 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:50:54,889 [DEBUG][       Thread-605238][   transport.py][1871] : starting thread (client mode): 0x81d88b0
2025-07-01 12:50:54,889 [DEBUG][       Thread-605238][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:50:54,909 [DEBUG][       Thread-605238][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:50:54,910 [ INFO][       Thread-605238][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:50:54,913 [DEBUG][       Thread-605238][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:50:54,913 [DEBUG][       Thread-605238][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:50:54,913 [DEBUG][       Thread-605238][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:50:54,913 [DEBUG][       Thread-605238][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:50:54,913 [DEBUG][       Thread-605238][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:50:54,913 [DEBUG][       Thread-605238][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:50:54,913 [DEBUG][       Thread-605238][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:50:54,913 [DEBUG][       Thread-605238][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:50:54,913 [DEBUG][       Thread-605238][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:50:54,913 [DEBUG][       Thread-605238][   transport.py][1871] : client lang: <none>
2025-07-01 12:50:54,913 [DEBUG][       Thread-605238][   transport.py][1871] : server lang: <none>
2025-07-01 12:50:54,913 [DEBUG][       Thread-605238][   transport.py][1871] : kex follows: False
2025-07-01 12:50:54,913 [DEBUG][       Thread-605238][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:50:54,913 [DEBUG][       Thread-605238][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:50:54,913 [DEBUG][       Thread-605238][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:50:54,913 [DEBUG][       Thread-605238][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:50:54,913 [DEBUG][       Thread-605238][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:50:54,913 [DEBUG][       Thread-605238][   transport.py][1871] : Compression: none
2025-07-01 12:50:54,913 [DEBUG][       Thread-605238][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:50:54,920 [DEBUG][       Thread-605238][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:50:54,920 [DEBUG][       Thread-605238][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:50:54,920 [DEBUG][       Thread-605238][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:50:54,920 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:50:54,920 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:50:54,962 [DEBUG][       Thread-605238][   transport.py][1871] : userauth is OK
2025-07-01 12:50:54,987 [ INFO][       Thread-605238][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:50:54,987 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:50:55,611 [DEBUG][       Thread-605238][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:50:55,611 [DEBUG][       Thread-605238][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:50:55,653 [DEBUG][       Thread-605238][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:50:55,653 [DEBUG][       Thread-605238][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:50:55,657 [DEBUG][       Thread-605238][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:50:55,669 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:50:55,669 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:50:55,671 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:50:55,673 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:50:55,679 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:50:55,681 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:50:55,681 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:50:55,682 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:50:55,682 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.451679 -999.00  +12.80  33.04     51   +3.10 1 2 2 1 1   888    0 9.88 16.73 ----- 27.9 33.0 17.6 40.9 16.0 -22.7 15.0 -23.4 14.9 -21.9 15.8 -21.1
2025-07-01 12:50:55,682 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:50:55,682 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:50:55,682 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.451679
2025-07-01 12:50:55,683 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:50:55,683 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:50:55,683 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:50:55,683 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:50:55,683 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 12:50:55,684 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:50:37', tmtdew=11.23, humidity=46.3, cloud=0.0, wind=37.03, temperature=12.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:50:25.066', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:50:55,685 [DEBUG][       Thread-605238][   transport.py][1871] : EOF in transport thread
2025-07-01 12:50:55,767 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:50:55,779 [DEBUG][       Thread-605241][   transport.py][1871] : starting thread (client mode): 0x81a74c0
2025-07-01 12:50:55,779 [DEBUG][       Thread-605241][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:50:55,794 [DEBUG][       Thread-605241][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:50:55,794 [ INFO][       Thread-605241][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:50:55,802 [DEBUG][       Thread-605241][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:50:55,803 [DEBUG][       Thread-605241][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:50:55,803 [DEBUG][       Thread-605241][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:50:55,803 [DEBUG][       Thread-605241][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:50:55,803 [DEBUG][       Thread-605241][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:50:55,803 [DEBUG][       Thread-605241][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:50:55,803 [DEBUG][       Thread-605241][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:50:55,803 [DEBUG][       Thread-605241][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:50:55,803 [DEBUG][       Thread-605241][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:50:55,803 [DEBUG][       Thread-605241][   transport.py][1871] : client lang: <none>
2025-07-01 12:50:55,803 [DEBUG][       Thread-605241][   transport.py][1871] : server lang: <none>
2025-07-01 12:50:55,803 [DEBUG][       Thread-605241][   transport.py][1871] : kex follows: False
2025-07-01 12:50:55,803 [DEBUG][       Thread-605241][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:50:55,803 [DEBUG][       Thread-605241][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:50:55,803 [DEBUG][       Thread-605241][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:50:55,803 [DEBUG][       Thread-605241][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:50:55,803 [DEBUG][       Thread-605241][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:50:55,803 [DEBUG][       Thread-605241][   transport.py][1871] : Compression: none
2025-07-01 12:50:55,803 [DEBUG][       Thread-605241][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:50:55,860 [DEBUG][       Thread-605241][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:50:55,860 [DEBUG][       Thread-605241][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:50:55,861 [DEBUG][       Thread-605241][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:50:55,861 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:50:55,862 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:50:55,918 [DEBUG][       Thread-605241][   transport.py][1871] : userauth is OK
2025-07-01 12:50:55,919 [DEBUG][       Thread-605241][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:50:55,919 [DEBUG][       Thread-605241][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:50:55,919 [DEBUG][       Thread-605241][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:50:55,919 [DEBUG][       Thread-605241][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:50:55,938 [ INFO][       Thread-605241][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:50:55,938 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:50:55,939 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:50:56,978 [DEBUG][       Thread-605241][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:50:56,978 [DEBUG][       Thread-605241][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:50:57,028 [DEBUG][       Thread-605241][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:50:57,028 [DEBUG][       Thread-605241][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:50:57,037 [DEBUG][       Thread-605241][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:50:57,046 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:50:57,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-07-01 12:50:57,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') -> 00000000
2025-07-01 12:50:57,073 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:50:57,073 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:50:57,074 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:50:57,085 [DEBUG][       Thread-605241][   transport.py][1871] : EOF in transport thread
2025-07-01 12:51:01,337 [DEBUG][Thread-605243 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:51:07,084 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:51:07,085 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:51:07,085 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:51:07,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-07-01 12:51:07,573 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 50, 37), 11.23, 46.3, 0.0, 37.03, 12.75, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:51:07,573 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:50:37
2025-07-01 12:51:07,657 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:51:07,662 [DEBUG][       Thread-605244][   transport.py][1871] : starting thread (client mode): 0x75a8340
2025-07-01 12:51:07,662 [DEBUG][       Thread-605244][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:51:07,681 [DEBUG][       Thread-605244][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:51:07,681 [ INFO][       Thread-605244][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:51:07,685 [DEBUG][       Thread-605244][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:51:07,685 [DEBUG][       Thread-605244][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:51:07,685 [DEBUG][       Thread-605244][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:51:07,685 [DEBUG][       Thread-605244][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:51:07,685 [DEBUG][       Thread-605244][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:51:07,685 [DEBUG][       Thread-605244][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:51:07,685 [DEBUG][       Thread-605244][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:51:07,685 [DEBUG][       Thread-605244][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:51:07,685 [DEBUG][       Thread-605244][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:51:07,685 [DEBUG][       Thread-605244][   transport.py][1871] : client lang: <none>
2025-07-01 12:51:07,685 [DEBUG][       Thread-605244][   transport.py][1871] : server lang: <none>
2025-07-01 12:51:07,685 [DEBUG][       Thread-605244][   transport.py][1871] : kex follows: False
2025-07-01 12:51:07,685 [DEBUG][       Thread-605244][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:51:07,685 [DEBUG][       Thread-605244][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:51:07,685 [DEBUG][       Thread-605244][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:51:07,685 [DEBUG][       Thread-605244][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:51:07,685 [DEBUG][       Thread-605244][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:51:07,685 [DEBUG][       Thread-605244][   transport.py][1871] : Compression: none
2025-07-01 12:51:07,685 [DEBUG][       Thread-605244][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:51:07,702 [DEBUG][       Thread-605244][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:51:07,702 [DEBUG][       Thread-605244][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:51:07,703 [DEBUG][       Thread-605244][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:51:07,703 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:51:07,703 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:51:07,704 [DEBUG][       Thread-605244][   transport.py][1871] : userauth is OK
2025-07-01 12:51:07,718 [ INFO][       Thread-605244][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:51:07,718 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:51:08,348 [DEBUG][       Thread-605244][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:51:08,348 [DEBUG][       Thread-605244][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:51:08,389 [DEBUG][       Thread-605244][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:51:08,389 [DEBUG][       Thread-605244][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:51:08,392 [DEBUG][       Thread-605244][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:51:08,405 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:51:08,405 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:51:08,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:51:08,409 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:51:08,416 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:51:08,418 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:51:08,418 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:51:08,419 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:51:08,419 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.451679 -999.00  +12.80  33.04     51   +3.10 1 2 2 1 1   888    0 9.88 16.73 ----- 27.9 33.0 17.6 40.9 16.0 -22.7 15.0 -23.4 14.9 -21.9 15.8 -21.1
2025-07-01 12:51:08,419 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:51:08,419 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:51:08,419 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.451679
2025-07-01 12:51:08,420 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:51:08,420 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:51:08,420 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:51:08,420 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:51:08,420 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 12:51:08,421 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:50:37', tmtdew=11.23, humidity=46.3, cloud=0.0, wind=37.03, temperature=12.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:50:25.066', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:51:08,425 [DEBUG][       Thread-605244][   transport.py][1871] : EOF in transport thread
2025-07-01 12:51:08,505 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:51:08,515 [DEBUG][       Thread-605247][   transport.py][1871] : starting thread (client mode): 0x81e7100
2025-07-01 12:51:08,515 [DEBUG][       Thread-605247][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:51:08,530 [DEBUG][       Thread-605247][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:51:08,530 [ INFO][       Thread-605247][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:51:08,537 [DEBUG][       Thread-605247][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:51:08,537 [DEBUG][       Thread-605247][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:51:08,537 [DEBUG][       Thread-605247][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:51:08,537 [DEBUG][       Thread-605247][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:51:08,537 [DEBUG][       Thread-605247][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:51:08,537 [DEBUG][       Thread-605247][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:51:08,537 [DEBUG][       Thread-605247][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:51:08,537 [DEBUG][       Thread-605247][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:51:08,537 [DEBUG][       Thread-605247][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:51:08,538 [DEBUG][       Thread-605247][   transport.py][1871] : client lang: <none>
2025-07-01 12:51:08,538 [DEBUG][       Thread-605247][   transport.py][1871] : server lang: <none>
2025-07-01 12:51:08,538 [DEBUG][       Thread-605247][   transport.py][1871] : kex follows: False
2025-07-01 12:51:08,538 [DEBUG][       Thread-605247][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:51:08,538 [DEBUG][       Thread-605247][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:51:08,538 [DEBUG][       Thread-605247][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:51:08,538 [DEBUG][       Thread-605247][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:51:08,538 [DEBUG][       Thread-605247][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:51:08,538 [DEBUG][       Thread-605247][   transport.py][1871] : Compression: none
2025-07-01 12:51:08,538 [DEBUG][       Thread-605247][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:51:08,597 [DEBUG][       Thread-605247][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:51:08,598 [DEBUG][       Thread-605247][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:51:08,598 [DEBUG][       Thread-605247][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:51:08,598 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:51:08,598 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:51:08,658 [DEBUG][       Thread-605247][   transport.py][1871] : userauth is OK
2025-07-01 12:51:08,658 [DEBUG][       Thread-605247][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:51:08,658 [DEBUG][       Thread-605247][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:51:08,658 [DEBUG][       Thread-605247][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:51:08,658 [DEBUG][       Thread-605247][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:51:08,677 [ INFO][       Thread-605247][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:51:08,677 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:51:08,678 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:51:09,745 [DEBUG][       Thread-605247][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:51:09,745 [DEBUG][       Thread-605247][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:51:09,795 [DEBUG][       Thread-605247][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:51:09,796 [DEBUG][       Thread-605247][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:51:09,804 [DEBUG][       Thread-605247][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:51:09,813 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:51:09,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-07-01 12:51:09,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-07-01 12:51:09,829 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:51:09,830 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:51:09,830 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:51:09,837 [DEBUG][       Thread-605247][   transport.py][1871] : EOF in transport thread
2025-07-01 12:51:10,358 [DEBUG][Thread-605249 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:51:19,311 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:51:19,311 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:51:19,373 [DEBUG][Thread-605250 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:51:19,840 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:51:19,840 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:51:19,840 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:51:19,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-07-01 12:51:20,342 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 51, 9), 11.06, 47.05, 0.0, 31.33, 12.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:51:20,342 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:51:09
2025-07-01 12:51:20,430 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:51:20,435 [DEBUG][       Thread-605251][   transport.py][1871] : starting thread (client mode): 0x81e4760
2025-07-01 12:51:20,435 [DEBUG][       Thread-605251][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:51:20,454 [DEBUG][       Thread-605251][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:51:20,454 [ INFO][       Thread-605251][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:51:20,456 [DEBUG][       Thread-605251][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:51:20,456 [DEBUG][       Thread-605251][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:51:20,456 [DEBUG][       Thread-605251][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:51:20,456 [DEBUG][       Thread-605251][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:51:20,456 [DEBUG][       Thread-605251][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:51:20,456 [DEBUG][       Thread-605251][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:51:20,456 [DEBUG][       Thread-605251][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:51:20,456 [DEBUG][       Thread-605251][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:51:20,456 [DEBUG][       Thread-605251][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:51:20,456 [DEBUG][       Thread-605251][   transport.py][1871] : client lang: <none>
2025-07-01 12:51:20,457 [DEBUG][       Thread-605251][   transport.py][1871] : server lang: <none>
2025-07-01 12:51:20,457 [DEBUG][       Thread-605251][   transport.py][1871] : kex follows: False
2025-07-01 12:51:20,457 [DEBUG][       Thread-605251][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:51:20,457 [DEBUG][       Thread-605251][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:51:20,457 [DEBUG][       Thread-605251][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:51:20,457 [DEBUG][       Thread-605251][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:51:20,457 [DEBUG][       Thread-605251][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:51:20,457 [DEBUG][       Thread-605251][   transport.py][1871] : Compression: none
2025-07-01 12:51:20,457 [DEBUG][       Thread-605251][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:51:20,466 [DEBUG][       Thread-605251][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:51:20,466 [DEBUG][       Thread-605251][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:51:20,466 [DEBUG][       Thread-605251][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:51:20,466 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:51:20,466 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:51:20,467 [DEBUG][       Thread-605251][   transport.py][1871] : userauth is OK
2025-07-01 12:51:20,491 [ INFO][       Thread-605251][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:51:20,491 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:51:21,127 [DEBUG][       Thread-605251][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:51:21,128 [DEBUG][       Thread-605251][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:51:21,168 [DEBUG][       Thread-605251][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:51:21,168 [DEBUG][       Thread-605251][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:51:21,171 [DEBUG][       Thread-605251][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:51:21,177 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:51:21,177 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:51:21,178 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:51:21,179 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:51:21,181 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:51:21,182 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:51:21,182 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:51:21,182 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:51:21,182 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.451679 -999.00  +12.80  33.04     51   +3.10 1 2 2 1 1   888    0 9.88 16.73 ----- 27.9 33.0 17.6 40.9 16.0 -22.7 15.0 -23.4 14.9 -21.9 15.8 -21.1
2025-07-01 12:51:21,182 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:51:21,182 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:51:21,182 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.451679
2025-07-01 12:51:21,182 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:51:21,183 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:51:21,183 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:51:21,183 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:51:21,183 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 12:51:21,183 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:51:09', tmtdew=11.06, humidity=47.05, cloud=0.0, wind=31.33, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:50:25.066', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:51:21,183 [DEBUG][       Thread-605251][   transport.py][1871] : EOF in transport thread
2025-07-01 12:51:21,257 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:51:21,267 [DEBUG][       Thread-605254][   transport.py][1871] : starting thread (client mode): 0x827d9f0
2025-07-01 12:51:21,267 [DEBUG][       Thread-605254][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:51:21,283 [DEBUG][       Thread-605254][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:51:21,283 [ INFO][       Thread-605254][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:51:21,290 [DEBUG][       Thread-605254][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:51:21,290 [DEBUG][       Thread-605254][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:51:21,290 [DEBUG][       Thread-605254][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:51:21,290 [DEBUG][       Thread-605254][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:51:21,290 [DEBUG][       Thread-605254][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:51:21,290 [DEBUG][       Thread-605254][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:51:21,290 [DEBUG][       Thread-605254][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:51:21,290 [DEBUG][       Thread-605254][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:51:21,290 [DEBUG][       Thread-605254][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:51:21,290 [DEBUG][       Thread-605254][   transport.py][1871] : client lang: <none>
2025-07-01 12:51:21,290 [DEBUG][       Thread-605254][   transport.py][1871] : server lang: <none>
2025-07-01 12:51:21,290 [DEBUG][       Thread-605254][   transport.py][1871] : kex follows: False
2025-07-01 12:51:21,290 [DEBUG][       Thread-605254][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:51:21,290 [DEBUG][       Thread-605254][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:51:21,290 [DEBUG][       Thread-605254][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:51:21,290 [DEBUG][       Thread-605254][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:51:21,290 [DEBUG][       Thread-605254][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:51:21,290 [DEBUG][       Thread-605254][   transport.py][1871] : Compression: none
2025-07-01 12:51:21,290 [DEBUG][       Thread-605254][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:51:21,345 [DEBUG][       Thread-605254][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:51:21,345 [DEBUG][       Thread-605254][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:51:21,345 [DEBUG][       Thread-605254][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:51:21,345 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:51:21,346 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:51:21,402 [DEBUG][       Thread-605254][   transport.py][1871] : userauth is OK
2025-07-01 12:51:21,402 [DEBUG][       Thread-605254][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:51:21,402 [DEBUG][       Thread-605254][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:51:21,402 [DEBUG][       Thread-605254][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:51:21,402 [DEBUG][       Thread-605254][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:51:21,417 [ INFO][       Thread-605254][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:51:21,417 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:51:21,417 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:51:22,435 [DEBUG][       Thread-605254][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:51:22,436 [DEBUG][       Thread-605254][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:51:22,484 [DEBUG][       Thread-605254][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:51:22,484 [DEBUG][       Thread-605254][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:51:22,493 [DEBUG][       Thread-605254][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:51:22,503 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:51:22,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-07-01 12:51:22,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-07-01 12:51:22,521 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:51:22,522 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:51:22,522 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:51:22,530 [DEBUG][       Thread-605254][   transport.py][1871] : EOF in transport thread
2025-07-01 12:51:28,397 [DEBUG][Thread-605256 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:51:30,331 [DEBUG][Thread-605257 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:51:32,533 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:51:32,533 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:51:32,533 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:51: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-07-01 12:51:33,016 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 51, 9), 11.06, 47.05, 0.0, 31.33, 12.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:51:33,016 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:51:09
2025-07-01 12:51:33,102 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:51:33,106 [DEBUG][       Thread-605258][   transport.py][1871] : starting thread (client mode): 0x81a61d0
2025-07-01 12:51:33,107 [DEBUG][       Thread-605258][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:51:33,127 [DEBUG][       Thread-605258][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:51:33,127 [ INFO][       Thread-605258][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:51:33,130 [DEBUG][       Thread-605258][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:51:33,130 [DEBUG][       Thread-605258][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:51:33,130 [DEBUG][       Thread-605258][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:51:33,130 [DEBUG][       Thread-605258][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:51:33,130 [DEBUG][       Thread-605258][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:51:33,130 [DEBUG][       Thread-605258][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:51:33,130 [DEBUG][       Thread-605258][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:51:33,130 [DEBUG][       Thread-605258][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:51:33,130 [DEBUG][       Thread-605258][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:51:33,130 [DEBUG][       Thread-605258][   transport.py][1871] : client lang: <none>
2025-07-01 12:51:33,131 [DEBUG][       Thread-605258][   transport.py][1871] : server lang: <none>
2025-07-01 12:51:33,131 [DEBUG][       Thread-605258][   transport.py][1871] : kex follows: False
2025-07-01 12:51:33,131 [DEBUG][       Thread-605258][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:51:33,131 [DEBUG][       Thread-605258][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:51:33,131 [DEBUG][       Thread-605258][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:51:33,131 [DEBUG][       Thread-605258][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:51:33,131 [DEBUG][       Thread-605258][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:51:33,131 [DEBUG][       Thread-605258][   transport.py][1871] : Compression: none
2025-07-01 12:51:33,131 [DEBUG][       Thread-605258][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:51:33,151 [DEBUG][       Thread-605258][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:51:33,152 [DEBUG][       Thread-605258][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:51:33,152 [DEBUG][       Thread-605258][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:51:33,153 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:51:33,153 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:51:33,154 [DEBUG][       Thread-605258][   transport.py][1871] : userauth is OK
2025-07-01 12:51:33,178 [ INFO][       Thread-605258][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:51:33,179 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:51:33,807 [DEBUG][       Thread-605258][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:51:33,807 [DEBUG][       Thread-605258][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:51:33,849 [DEBUG][       Thread-605258][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:51:33,849 [DEBUG][       Thread-605258][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:51:33,853 [DEBUG][       Thread-605258][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:51:33,864 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:51:33,865 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:51:33,867 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:51:33,869 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:51:33,876 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:51:33,878 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:51:33,878 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:51:33,879 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:51:33,879 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.452026 -999.00  +12.70  25.80     51   +3.00 1 2 1 1 1   888    0 10.29 18.04 ----- 25.0 25.8 10.5 41.4 16.0 -22.3 15.0 -22.9 14.9 -21.6 15.8 -20.9
2025-07-01 12:51:33,879 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:51:33,879 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:51:33,879 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.452026
2025-07-01 12:51:33,880 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:51:33,880 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:51:33,880 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:51:33,880 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:51:33,880 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 12:51:33,881 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:51:09', tmtdew=11.06, humidity=47.05, cloud=0.0, wind=31.33, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:50:55.046', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:51:33,882 [DEBUG][       Thread-605258][   transport.py][1871] : EOF in transport thread
2025-07-01 12:51:33,965 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:51:37,432 [DEBUG][Thread-605261 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:51:46,453 [DEBUG][Thread-605262 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:51:55,476 [DEBUG][Thread-605263 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:52:04,497 [DEBUG][Thread-605264 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:52:13,518 [DEBUG][Thread-605265 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:52:19,449 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:52:19,450 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:52:22,537 [DEBUG][Thread-605266 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:52:30,384 [DEBUG][Thread-605267 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:52:31,562 [DEBUG][Thread-605268 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:52:40,582 [DEBUG][Thread-605269 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:52:49,605 [DEBUG][Thread-605270 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:52:58,627 [DEBUG][Thread-605271 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:53:07,647 [DEBUG][Thread-605272 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:53:16,665 [DEBUG][Thread-605273 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:53:19,588 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:53:19,589 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:53:25,687 [DEBUG][Thread-605274 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:53:30,436 [DEBUG][Thread-605275 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:53:34,709 [DEBUG][Thread-605276 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:53:43,572 [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-07-01 12:53:43,732 [DEBUG][Thread-605277 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:53:52,750 [DEBUG][Thread-605278 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:53:53,583 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:53:53,583 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:53:53,583 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:53:53,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-07-01 12:53:54,088 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 53, 48), 11.18, 46.68, 0.0, 36.01, 12.92, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:53:54,088 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:53:48
2025-07-01 12:53:54,178 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:53:54,182 [DEBUG][       Thread-605279][   transport.py][1871] : starting thread (client mode): 0x81a5960
2025-07-01 12:53:54,182 [DEBUG][       Thread-605279][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:53:54,203 [DEBUG][       Thread-605279][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:53:54,203 [ INFO][       Thread-605279][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:53:54,206 [DEBUG][       Thread-605279][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:53:54,206 [DEBUG][       Thread-605279][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:53:54,206 [DEBUG][       Thread-605279][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:53:54,206 [DEBUG][       Thread-605279][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:53:54,206 [DEBUG][       Thread-605279][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:53:54,206 [DEBUG][       Thread-605279][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:53:54,206 [DEBUG][       Thread-605279][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:53:54,206 [DEBUG][       Thread-605279][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:53:54,206 [DEBUG][       Thread-605279][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:53:54,206 [DEBUG][       Thread-605279][   transport.py][1871] : client lang: <none>
2025-07-01 12:53:54,206 [DEBUG][       Thread-605279][   transport.py][1871] : server lang: <none>
2025-07-01 12:53:54,206 [DEBUG][       Thread-605279][   transport.py][1871] : kex follows: False
2025-07-01 12:53:54,206 [DEBUG][       Thread-605279][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:53:54,206 [DEBUG][       Thread-605279][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:53:54,206 [DEBUG][       Thread-605279][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:53:54,206 [DEBUG][       Thread-605279][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:53:54,206 [DEBUG][       Thread-605279][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:53:54,206 [DEBUG][       Thread-605279][   transport.py][1871] : Compression: none
2025-07-01 12:53:54,206 [DEBUG][       Thread-605279][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:53:54,223 [DEBUG][       Thread-605279][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:53:54,224 [DEBUG][       Thread-605279][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:53:54,224 [DEBUG][       Thread-605279][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:53:54,224 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:53:54,224 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:53:54,224 [DEBUG][       Thread-605279][   transport.py][1871] : userauth is OK
2025-07-01 12:53:54,237 [ INFO][       Thread-605279][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:53:54,237 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:53:54,888 [DEBUG][       Thread-605279][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:53:54,888 [DEBUG][       Thread-605279][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:53:54,928 [DEBUG][       Thread-605279][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:53:54,928 [DEBUG][       Thread-605279][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:53:54,931 [DEBUG][       Thread-605279][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:53:54,944 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:53:54,944 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:53:54,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:53:54,946 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:53:54,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:53:54,950 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:53:54,950 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:53:54,950 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:53:54,950 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.453762 -999.00  +12.90  28.58     51   +3.10 1 1 1 1 1   888    0 9.96 13.38 ----- 33.2 28.6 40.0 46.0 16.0 -23.9 15.1 -24.0 14.9 -22.9 15.8 -22.4
2025-07-01 12:53:54,950 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:53:54,950 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:53:54,950 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.453762
2025-07-01 12:53:54,950 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:53:54,950 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:53:54,950 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:53:54,950 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:53:54,950 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:53:54,950 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:53:48', tmtdew=11.18, humidity=46.68, cloud=0.0, wind=36.01, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:53:25.037', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:53:54,951 [DEBUG][       Thread-605279][   transport.py][1871] : EOF in transport thread
2025-07-01 12:53:55,025 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:53:55,036 [DEBUG][       Thread-605282][   transport.py][1871] : starting thread (client mode): 0x8106f20
2025-07-01 12:53:55,036 [DEBUG][       Thread-605282][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:53:55,051 [DEBUG][       Thread-605282][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:53:55,051 [ INFO][       Thread-605282][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:53:55,058 [DEBUG][       Thread-605282][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:53:55,058 [DEBUG][       Thread-605282][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:53:55,058 [DEBUG][       Thread-605282][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:53:55,058 [DEBUG][       Thread-605282][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:53:55,058 [DEBUG][       Thread-605282][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:53:55,058 [DEBUG][       Thread-605282][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:53:55,059 [DEBUG][       Thread-605282][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:53:55,059 [DEBUG][       Thread-605282][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:53:55,059 [DEBUG][       Thread-605282][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:53:55,059 [DEBUG][       Thread-605282][   transport.py][1871] : client lang: <none>
2025-07-01 12:53:55,059 [DEBUG][       Thread-605282][   transport.py][1871] : server lang: <none>
2025-07-01 12:53:55,059 [DEBUG][       Thread-605282][   transport.py][1871] : kex follows: False
2025-07-01 12:53:55,059 [DEBUG][       Thread-605282][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:53:55,059 [DEBUG][       Thread-605282][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:53:55,059 [DEBUG][       Thread-605282][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:53:55,059 [DEBUG][       Thread-605282][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:53:55,059 [DEBUG][       Thread-605282][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:53:55,059 [DEBUG][       Thread-605282][   transport.py][1871] : Compression: none
2025-07-01 12:53:55,059 [DEBUG][       Thread-605282][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:53:55,117 [DEBUG][       Thread-605282][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:53:55,118 [DEBUG][       Thread-605282][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:53:55,118 [DEBUG][       Thread-605282][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:53:55,118 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:53:55,118 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:53:55,180 [DEBUG][       Thread-605282][   transport.py][1871] : userauth is OK
2025-07-01 12:53:55,180 [DEBUG][       Thread-605282][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:53:55,180 [DEBUG][       Thread-605282][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:53:55,180 [DEBUG][       Thread-605282][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:53:55,180 [DEBUG][       Thread-605282][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:53:55,194 [ INFO][       Thread-605282][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:53:55,194 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:53:55,194 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:53:56,210 [DEBUG][       Thread-605282][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:53:56,210 [DEBUG][       Thread-605282][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:53:56,260 [DEBUG][       Thread-605282][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:53:56,260 [DEBUG][       Thread-605282][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:53:56,270 [DEBUG][       Thread-605282][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:53:56,280 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:53:56,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-07-01 12:53:56,289 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 12:53:56,298 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:53:56,298 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:53:56,299 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:53:56,307 [DEBUG][       Thread-605282][   transport.py][1871] : EOF in transport thread
2025-07-01 12:54:01,769 [DEBUG][Thread-605284 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:54:06,309 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:54:06,309 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:54:06,309 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:54:06,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-07-01 12:54:06,819 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 53, 48), 11.18, 46.68, 0.0, 36.01, 12.92, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:54:06,819 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:53:48
2025-07-01 12:54:06,904 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:54:06,907 [DEBUG][       Thread-605285][   transport.py][1871] : starting thread (client mode): 0x81a6290
2025-07-01 12:54:06,907 [DEBUG][       Thread-605285][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:54:06,927 [DEBUG][       Thread-605285][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:54:06,927 [ INFO][       Thread-605285][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:54:06,930 [DEBUG][       Thread-605285][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:54:06,930 [DEBUG][       Thread-605285][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:54:06,930 [DEBUG][       Thread-605285][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:54:06,930 [DEBUG][       Thread-605285][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:54:06,930 [DEBUG][       Thread-605285][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:54:06,930 [DEBUG][       Thread-605285][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:54:06,930 [DEBUG][       Thread-605285][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:54:06,930 [DEBUG][       Thread-605285][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:54:06,931 [DEBUG][       Thread-605285][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:54:06,931 [DEBUG][       Thread-605285][   transport.py][1871] : client lang: <none>
2025-07-01 12:54:06,931 [DEBUG][       Thread-605285][   transport.py][1871] : server lang: <none>
2025-07-01 12:54:06,931 [DEBUG][       Thread-605285][   transport.py][1871] : kex follows: False
2025-07-01 12:54:06,931 [DEBUG][       Thread-605285][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:54:06,931 [DEBUG][       Thread-605285][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:54:06,931 [DEBUG][       Thread-605285][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:54:06,931 [DEBUG][       Thread-605285][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:54:06,931 [DEBUG][       Thread-605285][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:54:06,931 [DEBUG][       Thread-605285][   transport.py][1871] : Compression: none
2025-07-01 12:54:06,931 [DEBUG][       Thread-605285][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:54:06,948 [DEBUG][       Thread-605285][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:54:06,948 [DEBUG][       Thread-605285][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:54:06,949 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:54:06,949 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:54:06,949 [DEBUG][       Thread-605285][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:54:06,950 [DEBUG][       Thread-605285][   transport.py][1871] : userauth is OK
2025-07-01 12:54:06,963 [ INFO][       Thread-605285][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:54:06,963 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:54:07,630 [DEBUG][       Thread-605285][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:54:07,630 [DEBUG][       Thread-605285][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:54:07,673 [DEBUG][       Thread-605285][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:54:07,673 [DEBUG][       Thread-605285][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:54:07,676 [DEBUG][       Thread-605285][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:54:07,691 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:54:07,691 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:54:07,693 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:54:07,694 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:54:07,699 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:54:07,701 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:54:07,701 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:54:07,702 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:54:07,702 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.453762 -999.00  +12.90  28.58     51   +3.10 1 1 1 1 1   888    0 9.96 13.38 ----- 33.2 28.6 40.0 46.0 16.0 -23.9 15.1 -24.0 14.9 -22.9 15.8 -22.4
2025-07-01 12:54:07,702 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:54:07,702 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:54:07,702 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.453762
2025-07-01 12:54:07,703 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:54:07,703 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:54:07,703 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:54:07,703 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:54:07,704 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:54:07,704 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:53:48', tmtdew=11.18, humidity=46.68, cloud=0.0, wind=36.01, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:53:25.037', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:54:07,705 [DEBUG][       Thread-605285][   transport.py][1871] : EOF in transport thread
2025-07-01 12:54:07,787 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:54:07,797 [DEBUG][       Thread-605288][   transport.py][1871] : starting thread (client mode): 0x82b0a00
2025-07-01 12:54:07,797 [DEBUG][       Thread-605288][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:54:07,813 [DEBUG][       Thread-605288][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:54:07,813 [ INFO][       Thread-605288][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:54:07,821 [DEBUG][       Thread-605288][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:54:07,821 [DEBUG][       Thread-605288][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:54:07,821 [DEBUG][       Thread-605288][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:54:07,821 [DEBUG][       Thread-605288][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:54:07,821 [DEBUG][       Thread-605288][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:54:07,821 [DEBUG][       Thread-605288][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:54:07,821 [DEBUG][       Thread-605288][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:54:07,821 [DEBUG][       Thread-605288][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:54:07,821 [DEBUG][       Thread-605288][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:54:07,822 [DEBUG][       Thread-605288][   transport.py][1871] : client lang: <none>
2025-07-01 12:54:07,822 [DEBUG][       Thread-605288][   transport.py][1871] : server lang: <none>
2025-07-01 12:54:07,822 [DEBUG][       Thread-605288][   transport.py][1871] : kex follows: False
2025-07-01 12:54:07,822 [DEBUG][       Thread-605288][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:54:07,822 [DEBUG][       Thread-605288][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:54:07,822 [DEBUG][       Thread-605288][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:54:07,822 [DEBUG][       Thread-605288][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:54:07,822 [DEBUG][       Thread-605288][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:54:07,822 [DEBUG][       Thread-605288][   transport.py][1871] : Compression: none
2025-07-01 12:54:07,822 [DEBUG][       Thread-605288][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:54:07,882 [DEBUG][       Thread-605288][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:54:07,882 [DEBUG][       Thread-605288][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:54:07,883 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:54:07,883 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:54:07,884 [DEBUG][       Thread-605288][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:54:07,941 [DEBUG][       Thread-605288][   transport.py][1871] : userauth is OK
2025-07-01 12:54:07,942 [DEBUG][       Thread-605288][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:54:07,942 [DEBUG][       Thread-605288][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:54:07,942 [DEBUG][       Thread-605288][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:54:07,942 [DEBUG][       Thread-605288][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:54:07,962 [ INFO][       Thread-605288][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:54:07,962 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:54:07,962 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:54:09,071 [DEBUG][       Thread-605288][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:54:09,071 [DEBUG][       Thread-605288][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:54:09,120 [DEBUG][       Thread-605288][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:54:09,120 [DEBUG][       Thread-605288][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:54:09,129 [DEBUG][       Thread-605288][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:54:09,138 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:54:09,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-07-01 12:54:09,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-07-01 12:54:09,157 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:54:09,158 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:54:09,158 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:54:09,167 [DEBUG][       Thread-605288][   transport.py][1871] : EOF in transport thread
2025-07-01 12:54:10,805 [DEBUG][Thread-605290 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:54:19,168 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:54:19,169 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:54:19,169 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:54:19,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-07-01 12:54:19,675 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 53, 48), 11.18, 46.68, 0.0, 36.01, 12.92, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:54:19,675 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:53:48
2025-07-01 12:54:19,728 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:54:19,729 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:54:19,760 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:54:19,765 [DEBUG][       Thread-605291][   transport.py][1871] : starting thread (client mode): 0x81a4ac0
2025-07-01 12:54:19,765 [DEBUG][       Thread-605291][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:54:19,786 [DEBUG][       Thread-605291][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:54:19,786 [ INFO][       Thread-605291][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:54:19,788 [DEBUG][       Thread-605291][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:54:19,789 [DEBUG][       Thread-605291][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:54:19,789 [DEBUG][       Thread-605291][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:54:19,789 [DEBUG][       Thread-605291][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:54:19,789 [DEBUG][       Thread-605291][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:54:19,789 [DEBUG][       Thread-605291][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:54:19,789 [DEBUG][       Thread-605291][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:54:19,789 [DEBUG][       Thread-605291][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:54:19,789 [DEBUG][       Thread-605291][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:54:19,789 [DEBUG][       Thread-605291][   transport.py][1871] : client lang: <none>
2025-07-01 12:54:19,789 [DEBUG][       Thread-605291][   transport.py][1871] : server lang: <none>
2025-07-01 12:54:19,789 [DEBUG][       Thread-605291][   transport.py][1871] : kex follows: False
2025-07-01 12:54:19,789 [DEBUG][       Thread-605291][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:54:19,789 [DEBUG][       Thread-605291][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:54:19,789 [DEBUG][       Thread-605291][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:54:19,789 [DEBUG][       Thread-605291][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:54:19,789 [DEBUG][       Thread-605291][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:54:19,789 [DEBUG][       Thread-605291][   transport.py][1871] : Compression: none
2025-07-01 12:54:19,789 [DEBUG][       Thread-605291][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:54:19,805 [DEBUG][       Thread-605291][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:54:19,805 [DEBUG][       Thread-605291][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:54:19,806 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:54:19,806 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:54:19,807 [DEBUG][       Thread-605291][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:54:19,807 [DEBUG][       Thread-605291][   transport.py][1871] : userauth is OK
2025-07-01 12:54:19,820 [ INFO][       Thread-605291][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:54:19,820 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:54:19,826 [DEBUG][Thread-605293 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:54:20,465 [DEBUG][       Thread-605291][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:54:20,466 [DEBUG][       Thread-605291][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:54:20,512 [DEBUG][       Thread-605291][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:54:20,513 [DEBUG][       Thread-605291][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:54:20,515 [DEBUG][       Thread-605291][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:54:20,526 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:54:20,526 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:54:20,527 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:54:20,528 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:54:20,531 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:54:20,532 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:54:20,532 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:54:20,532 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:54:20,532 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.454109 -999.00  +12.70  36.09     51   +2.90 1 1 2 1 1   888    0 9.83 12.38 ----- 41.8 36.1 40.4 52.1 15.8 -24.4 15.0 -24.7 14.8 -23.6 15.7 -22.7
2025-07-01 12:54:20,532 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:54:20,532 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:54:20,532 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.454109
2025-07-01 12:54:20,532 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:54:20,533 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:54:20,533 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:54:20,533 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:54:20,533 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:54:20,533 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:53:48', tmtdew=11.18, humidity=46.68, cloud=0.0, wind=36.01, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:53:55.018', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:54:20,534 [DEBUG][       Thread-605291][   transport.py][1871] : EOF in transport thread
2025-07-01 12:54:20,606 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:54:20,616 [DEBUG][       Thread-605295][   transport.py][1871] : starting thread (client mode): 0x8154760
2025-07-01 12:54:20,616 [DEBUG][       Thread-605295][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:54:20,632 [DEBUG][       Thread-605295][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:54:20,632 [ INFO][       Thread-605295][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:54:20,639 [DEBUG][       Thread-605295][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:54:20,639 [DEBUG][       Thread-605295][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:54:20,639 [DEBUG][       Thread-605295][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:54:20,639 [DEBUG][       Thread-605295][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:54:20,639 [DEBUG][       Thread-605295][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:54:20,639 [DEBUG][       Thread-605295][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:54:20,639 [DEBUG][       Thread-605295][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:54:20,639 [DEBUG][       Thread-605295][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:54:20,639 [DEBUG][       Thread-605295][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:54:20,639 [DEBUG][       Thread-605295][   transport.py][1871] : client lang: <none>
2025-07-01 12:54:20,639 [DEBUG][       Thread-605295][   transport.py][1871] : server lang: <none>
2025-07-01 12:54:20,639 [DEBUG][       Thread-605295][   transport.py][1871] : kex follows: False
2025-07-01 12:54:20,639 [DEBUG][       Thread-605295][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:54:20,639 [DEBUG][       Thread-605295][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:54:20,639 [DEBUG][       Thread-605295][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:54:20,639 [DEBUG][       Thread-605295][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:54:20,639 [DEBUG][       Thread-605295][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:54:20,639 [DEBUG][       Thread-605295][   transport.py][1871] : Compression: none
2025-07-01 12:54:20,639 [DEBUG][       Thread-605295][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:54:20,695 [DEBUG][       Thread-605295][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:54:20,695 [DEBUG][       Thread-605295][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:54:20,695 [DEBUG][       Thread-605295][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:54:20,695 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:54:20,695 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:54:20,752 [DEBUG][       Thread-605295][   transport.py][1871] : userauth is OK
2025-07-01 12:54:20,752 [DEBUG][       Thread-605295][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:54:20,752 [DEBUG][       Thread-605295][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:54:20,752 [DEBUG][       Thread-605295][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:54:20,752 [DEBUG][       Thread-605295][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:54:20,766 [ INFO][       Thread-605295][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:54:20,767 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:54:20,767 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:54:21,784 [DEBUG][       Thread-605295][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:54:21,784 [DEBUG][       Thread-605295][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:54:21,832 [DEBUG][       Thread-605295][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:54:21,832 [DEBUG][       Thread-605295][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:54:21,840 [DEBUG][       Thread-605295][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:54:21,848 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:54:21,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-07-01 12:54:21,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-07-01 12:54:21,864 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:54:21,864 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:54:21,864 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:54:21,872 [DEBUG][       Thread-605295][   transport.py][1871] : EOF in transport thread
2025-07-01 12:54:28,846 [DEBUG][Thread-605297 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:54:30,481 [DEBUG][Thread-605298 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:54:31,872 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:54:31,872 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:54:31,872 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:54:31,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-07-01 12:54:32,410 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 54, 20), 11.22, 46.53, 0.0, 33.52, 12.83, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:54:32,410 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:54:20
2025-07-01 12:54:32,499 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:54:32,505 [DEBUG][       Thread-605299][   transport.py][1871] : starting thread (client mode): 0x81da710
2025-07-01 12:54:32,506 [DEBUG][       Thread-605299][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:54:32,525 [DEBUG][       Thread-605299][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:54:32,525 [ INFO][       Thread-605299][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:54:32,526 [DEBUG][       Thread-605299][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:54:32,526 [DEBUG][       Thread-605299][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:54:32,526 [DEBUG][       Thread-605299][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:54:32,526 [DEBUG][       Thread-605299][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:54:32,526 [DEBUG][       Thread-605299][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:54:32,526 [DEBUG][       Thread-605299][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:54:32,526 [DEBUG][       Thread-605299][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:54:32,526 [DEBUG][       Thread-605299][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:54:32,526 [DEBUG][       Thread-605299][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:54:32,526 [DEBUG][       Thread-605299][   transport.py][1871] : client lang: <none>
2025-07-01 12:54:32,526 [DEBUG][       Thread-605299][   transport.py][1871] : server lang: <none>
2025-07-01 12:54:32,526 [DEBUG][       Thread-605299][   transport.py][1871] : kex follows: False
2025-07-01 12:54:32,526 [DEBUG][       Thread-605299][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:54:32,526 [DEBUG][       Thread-605299][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:54:32,526 [DEBUG][       Thread-605299][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:54:32,527 [DEBUG][       Thread-605299][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:54:32,527 [DEBUG][       Thread-605299][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:54:32,527 [DEBUG][       Thread-605299][   transport.py][1871] : Compression: none
2025-07-01 12:54:32,527 [DEBUG][       Thread-605299][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:54:32,536 [DEBUG][       Thread-605299][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:54:32,537 [DEBUG][       Thread-605299][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:54:32,537 [DEBUG][       Thread-605299][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:54:32,537 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:54:32,537 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:54:32,537 [DEBUG][       Thread-605299][   transport.py][1871] : userauth is OK
2025-07-01 12:54:32,550 [ INFO][       Thread-605299][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:54:32,550 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:54:33,320 [DEBUG][       Thread-605299][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:54:33,320 [DEBUG][       Thread-605299][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:54:33,368 [DEBUG][       Thread-605299][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:54:33,368 [DEBUG][       Thread-605299][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:54:33,372 [DEBUG][       Thread-605299][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:54:33,383 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:54:33,383 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:54:33,385 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:54:33,386 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:54:33,389 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:54:33,392 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:54:33,392 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:54:33,392 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:54:33,392 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.454109 -999.00  +12.70  36.09     51   +2.90 1 1 2 1 1   888    0 9.83 12.38 ----- 41.8 36.1 40.4 52.1 15.8 -24.4 15.0 -24.7 14.8 -23.6 15.7 -22.7
2025-07-01 12:54:33,392 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:54:33,392 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:54:33,392 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.454109
2025-07-01 12:54:33,392 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:54:33,392 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:54:33,392 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:54:33,392 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:54:33,392 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:54:33,392 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:54:20', tmtdew=11.22, humidity=46.53, cloud=0.0, wind=33.52, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:53:55.018', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:54:33,393 [DEBUG][       Thread-605299][   transport.py][1871] : EOF in transport thread
2025-07-01 12:54:33,467 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:54:33,478 [DEBUG][       Thread-605302][   transport.py][1871] : starting thread (client mode): 0x82b2620
2025-07-01 12:54:33,479 [DEBUG][       Thread-605302][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:54:33,494 [DEBUG][       Thread-605302][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:54:33,494 [ INFO][       Thread-605302][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:54:33,502 [DEBUG][       Thread-605302][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:54:33,502 [DEBUG][       Thread-605302][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:54:33,502 [DEBUG][       Thread-605302][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:54:33,502 [DEBUG][       Thread-605302][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:54:33,502 [DEBUG][       Thread-605302][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:54:33,502 [DEBUG][       Thread-605302][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:54:33,502 [DEBUG][       Thread-605302][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:54:33,502 [DEBUG][       Thread-605302][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:54:33,502 [DEBUG][       Thread-605302][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:54:33,502 [DEBUG][       Thread-605302][   transport.py][1871] : client lang: <none>
2025-07-01 12:54:33,502 [DEBUG][       Thread-605302][   transport.py][1871] : server lang: <none>
2025-07-01 12:54:33,502 [DEBUG][       Thread-605302][   transport.py][1871] : kex follows: False
2025-07-01 12:54:33,502 [DEBUG][       Thread-605302][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:54:33,502 [DEBUG][       Thread-605302][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:54:33,502 [DEBUG][       Thread-605302][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:54:33,502 [DEBUG][       Thread-605302][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:54:33,502 [DEBUG][       Thread-605302][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:54:33,502 [DEBUG][       Thread-605302][   transport.py][1871] : Compression: none
2025-07-01 12:54:33,502 [DEBUG][       Thread-605302][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:54:33,559 [DEBUG][       Thread-605302][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:54:33,559 [DEBUG][       Thread-605302][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:54:33,559 [DEBUG][       Thread-605302][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:54:33,559 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:54:33,559 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:54:33,616 [DEBUG][       Thread-605302][   transport.py][1871] : userauth is OK
2025-07-01 12:54:33,616 [DEBUG][       Thread-605302][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:54:33,616 [DEBUG][       Thread-605302][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:54:33,616 [DEBUG][       Thread-605302][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:54:33,616 [DEBUG][       Thread-605302][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:54:33,631 [ INFO][       Thread-605302][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:54:33,631 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:54:33,631 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:54:34,674 [DEBUG][       Thread-605302][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:54:34,674 [DEBUG][       Thread-605302][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:54:34,723 [DEBUG][       Thread-605302][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:54:34,724 [DEBUG][       Thread-605302][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:54:34,733 [DEBUG][       Thread-605302][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:54:34,742 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:54:34,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-07-01 12:54:34,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-07-01 12:54:34,758 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:54:34,758 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:54:34,758 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:54:34,766 [DEBUG][       Thread-605302][   transport.py][1871] : EOF in transport thread
2025-07-01 12:54:37,865 [DEBUG][Thread-605304 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:54:44,768 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:54:44,769 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:54:44,769 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:54:44,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-07-01 12:54:45,282 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 54, 20), 11.22, 46.53, 0.0, 33.52, 12.83, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:54:45,283 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:54:20
2025-07-01 12:54:45,367 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:54:45,372 [DEBUG][       Thread-605305][   transport.py][1871] : starting thread (client mode): 0x81d9d80
2025-07-01 12:54:45,372 [DEBUG][       Thread-605305][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:54:45,392 [DEBUG][       Thread-605305][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:54:45,392 [ INFO][       Thread-605305][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:54:45,395 [DEBUG][       Thread-605305][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:54:45,395 [DEBUG][       Thread-605305][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:54:45,395 [DEBUG][       Thread-605305][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:54:45,395 [DEBUG][       Thread-605305][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:54:45,395 [DEBUG][       Thread-605305][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:54:45,395 [DEBUG][       Thread-605305][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:54:45,395 [DEBUG][       Thread-605305][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:54:45,395 [DEBUG][       Thread-605305][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:54:45,395 [DEBUG][       Thread-605305][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:54:45,395 [DEBUG][       Thread-605305][   transport.py][1871] : client lang: <none>
2025-07-01 12:54:45,395 [DEBUG][       Thread-605305][   transport.py][1871] : server lang: <none>
2025-07-01 12:54:45,395 [DEBUG][       Thread-605305][   transport.py][1871] : kex follows: False
2025-07-01 12:54:45,395 [DEBUG][       Thread-605305][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:54:45,395 [DEBUG][       Thread-605305][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:54:45,396 [DEBUG][       Thread-605305][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:54:45,396 [DEBUG][       Thread-605305][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:54:45,396 [DEBUG][       Thread-605305][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:54:45,396 [DEBUG][       Thread-605305][   transport.py][1871] : Compression: none
2025-07-01 12:54:45,396 [DEBUG][       Thread-605305][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:54:45,414 [DEBUG][       Thread-605305][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:54:45,415 [DEBUG][       Thread-605305][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:54:45,415 [DEBUG][       Thread-605305][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:54:45,416 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:54:45,416 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:54:45,417 [DEBUG][       Thread-605305][   transport.py][1871] : userauth is OK
2025-07-01 12:54:45,441 [ INFO][       Thread-605305][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:54:45,442 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:54:46,213 [DEBUG][       Thread-605305][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:54:46,213 [DEBUG][       Thread-605305][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:54:46,257 [DEBUG][       Thread-605305][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:54:46,257 [DEBUG][       Thread-605305][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:54:46,259 [DEBUG][       Thread-605305][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:54:46,271 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:54:46,271 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:54:46,273 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:54:46,275 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:54:46,280 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:54:46,282 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:54:46,282 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:54:46,283 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:54:46,283 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.454109 -999.00  +12.70  36.09     51   +2.90 1 1 2 1 1   888    0 9.83 12.38 ----- 41.8 36.1 40.4 52.1 15.8 -24.4 15.0 -24.7 14.8 -23.6 15.7 -22.7
2025-07-01 12:54:46,283 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:54:46,283 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:54:46,283 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.454109
2025-07-01 12:54:46,284 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:54:46,284 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:54:46,284 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:54:46,284 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:54:46,284 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:54:46,284 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:54:20', tmtdew=11.22, humidity=46.53, cloud=0.0, wind=33.52, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:53:55.018', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:54:46,285 [DEBUG][       Thread-605305][   transport.py][1871] : EOF in transport thread
2025-07-01 12:54:46,368 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:54:46,378 [DEBUG][       Thread-605308][   transport.py][1871] : starting thread (client mode): 0x827d540
2025-07-01 12:54:46,378 [DEBUG][       Thread-605308][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:54:46,393 [DEBUG][       Thread-605308][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:54:46,393 [ INFO][       Thread-605308][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:54:46,400 [DEBUG][       Thread-605308][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:54:46,400 [DEBUG][       Thread-605308][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:54:46,400 [DEBUG][       Thread-605308][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:54:46,400 [DEBUG][       Thread-605308][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:54:46,400 [DEBUG][       Thread-605308][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:54:46,401 [DEBUG][       Thread-605308][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:54:46,401 [DEBUG][       Thread-605308][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:54:46,401 [DEBUG][       Thread-605308][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:54:46,401 [DEBUG][       Thread-605308][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:54:46,401 [DEBUG][       Thread-605308][   transport.py][1871] : client lang: <none>
2025-07-01 12:54:46,401 [DEBUG][       Thread-605308][   transport.py][1871] : server lang: <none>
2025-07-01 12:54:46,401 [DEBUG][       Thread-605308][   transport.py][1871] : kex follows: False
2025-07-01 12:54:46,401 [DEBUG][       Thread-605308][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:54:46,401 [DEBUG][       Thread-605308][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:54:46,401 [DEBUG][       Thread-605308][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:54:46,401 [DEBUG][       Thread-605308][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:54:46,401 [DEBUG][       Thread-605308][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:54:46,401 [DEBUG][       Thread-605308][   transport.py][1871] : Compression: none
2025-07-01 12:54:46,401 [DEBUG][       Thread-605308][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:54:46,457 [DEBUG][       Thread-605308][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:54:46,457 [DEBUG][       Thread-605308][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:54:46,458 [DEBUG][       Thread-605308][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:54:46,458 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:54:46,459 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:54:46,513 [DEBUG][       Thread-605308][   transport.py][1871] : userauth is OK
2025-07-01 12:54:46,513 [DEBUG][       Thread-605308][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:54:46,513 [DEBUG][       Thread-605308][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:54:46,513 [DEBUG][       Thread-605308][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:54:46,513 [DEBUG][       Thread-605308][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:54:46,537 [ INFO][       Thread-605308][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:54:46,537 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:54:46,538 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:54:46,892 [DEBUG][Thread-605310 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:54:47,582 [DEBUG][       Thread-605308][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:54:47,582 [DEBUG][       Thread-605308][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:54:47,632 [DEBUG][       Thread-605308][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:54:47,633 [DEBUG][       Thread-605308][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:54:47,643 [DEBUG][       Thread-605308][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:54:47,652 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:54:47,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-07-01 12:54:47,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-07-01 12:54:47,672 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:54:47,672 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:54:47,673 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:54:47,688 [DEBUG][       Thread-605308][   transport.py][1871] : EOF in transport thread
2025-07-01 12:54:55,914 [DEBUG][Thread-605311 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:54:57,683 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:54:57,684 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:54:57,684 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:54:57,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-07-01 12:54:58,203 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 54, 52), 11.17, 46.69, 0.0, 37.88, 12.84, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:54:58,203 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:54:52
2025-07-01 12:54:58,288 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:54:58,294 [DEBUG][       Thread-605312][   transport.py][1871] : starting thread (client mode): 0x81a7b50
2025-07-01 12:54:58,294 [DEBUG][       Thread-605312][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:54:58,314 [DEBUG][       Thread-605312][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:54:58,315 [ INFO][       Thread-605312][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:54:58,317 [DEBUG][       Thread-605312][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:54:58,318 [DEBUG][       Thread-605312][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:54:58,318 [DEBUG][       Thread-605312][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:54:58,318 [DEBUG][       Thread-605312][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:54:58,318 [DEBUG][       Thread-605312][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:54:58,318 [DEBUG][       Thread-605312][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:54:58,318 [DEBUG][       Thread-605312][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:54:58,318 [DEBUG][       Thread-605312][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:54:58,318 [DEBUG][       Thread-605312][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:54:58,318 [DEBUG][       Thread-605312][   transport.py][1871] : client lang: <none>
2025-07-01 12:54:58,318 [DEBUG][       Thread-605312][   transport.py][1871] : server lang: <none>
2025-07-01 12:54:58,318 [DEBUG][       Thread-605312][   transport.py][1871] : kex follows: False
2025-07-01 12:54:58,318 [DEBUG][       Thread-605312][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:54:58,318 [DEBUG][       Thread-605312][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:54:58,318 [DEBUG][       Thread-605312][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:54:58,318 [DEBUG][       Thread-605312][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:54:58,318 [DEBUG][       Thread-605312][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:54:58,318 [DEBUG][       Thread-605312][   transport.py][1871] : Compression: none
2025-07-01 12:54:58,318 [DEBUG][       Thread-605312][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:54:58,336 [DEBUG][       Thread-605312][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:54:58,336 [DEBUG][       Thread-605312][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:54:58,337 [DEBUG][       Thread-605312][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:54:58,337 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:54:58,337 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:54:58,338 [DEBUG][       Thread-605312][   transport.py][1871] : userauth is OK
2025-07-01 12:54:58,352 [ INFO][       Thread-605312][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:54:58,352 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:54:58,992 [DEBUG][       Thread-605312][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:54:58,993 [DEBUG][       Thread-605312][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:54:59,037 [DEBUG][       Thread-605312][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:54:59,037 [DEBUG][       Thread-605312][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:54:59,041 [DEBUG][       Thread-605312][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:54:59,047 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:54:59,047 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:54:59,049 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:54:59,051 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:54:59,055 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:54:59,057 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:54:59,057 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:54:59,058 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:54:59,058 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.454457 -999.00  +12.70  32.64     52   +3.10 1 1 2 1 1   888    0 9.99 12.13 ----- 39.9 32.6 23.9 48.8 15.8 -24.2 14.9 -24.5 14.8 -23.0 15.6 -22.4
2025-07-01 12:54:59,058 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:54:59,058 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:54:59,058 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.454457
2025-07-01 12:54:59,058 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:54:59,059 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:54:59,059 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:54:59,059 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:54:59,059 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:54:59,059 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:54:52', tmtdew=11.17, humidity=46.69, cloud=0.0, wind=37.88, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:54:25.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:54:59,060 [DEBUG][       Thread-605312][   transport.py][1871] : EOF in transport thread
2025-07-01 12:54:59,143 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:54:59,154 [DEBUG][       Thread-605315][   transport.py][1871] : starting thread (client mode): 0x81d8ca0
2025-07-01 12:54:59,154 [DEBUG][       Thread-605315][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:54:59,169 [DEBUG][       Thread-605315][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:54:59,169 [ INFO][       Thread-605315][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:54:59,177 [DEBUG][       Thread-605315][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:54:59,177 [DEBUG][       Thread-605315][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:54:59,177 [DEBUG][       Thread-605315][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:54:59,177 [DEBUG][       Thread-605315][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:54:59,177 [DEBUG][       Thread-605315][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:54:59,177 [DEBUG][       Thread-605315][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:54:59,177 [DEBUG][       Thread-605315][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:54:59,177 [DEBUG][       Thread-605315][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:54:59,177 [DEBUG][       Thread-605315][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:54:59,177 [DEBUG][       Thread-605315][   transport.py][1871] : client lang: <none>
2025-07-01 12:54:59,177 [DEBUG][       Thread-605315][   transport.py][1871] : server lang: <none>
2025-07-01 12:54:59,177 [DEBUG][       Thread-605315][   transport.py][1871] : kex follows: False
2025-07-01 12:54:59,177 [DEBUG][       Thread-605315][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:54:59,177 [DEBUG][       Thread-605315][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:54:59,177 [DEBUG][       Thread-605315][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:54:59,177 [DEBUG][       Thread-605315][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:54:59,177 [DEBUG][       Thread-605315][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:54:59,177 [DEBUG][       Thread-605315][   transport.py][1871] : Compression: none
2025-07-01 12:54:59,177 [DEBUG][       Thread-605315][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:54:59,244 [DEBUG][       Thread-605315][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:54:59,245 [DEBUG][       Thread-605315][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:54:59,245 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:54:59,246 [DEBUG][       Thread-605315][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:54:59,246 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:54:59,302 [DEBUG][       Thread-605315][   transport.py][1871] : userauth is OK
2025-07-01 12:54:59,302 [DEBUG][       Thread-605315][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:54:59,302 [DEBUG][       Thread-605315][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:54:59,302 [DEBUG][       Thread-605315][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:54:59,302 [DEBUG][       Thread-605315][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:54:59,322 [ INFO][       Thread-605315][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:54:59,322 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:54:59,322 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:55:00,368 [DEBUG][       Thread-605315][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:55:00,369 [DEBUG][       Thread-605315][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:55:00,420 [DEBUG][       Thread-605315][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:55:00,420 [DEBUG][       Thread-605315][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:55:00,430 [DEBUG][       Thread-605315][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:55:00,438 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:55:00,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-07-01 12:55:00,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-07-01 12:55:00,456 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:55:00,457 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:55:00,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:55:00,465 [DEBUG][       Thread-605315][   transport.py][1871] : EOF in transport thread
2025-07-01 12:55:04,935 [DEBUG][Thread-605317 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:55:10,464 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:55:10,464 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:55:10,464 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:55:10,465 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:55:10,963 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 54, 52), 11.17, 46.69, 0.0, 37.88, 12.84, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:55:10,963 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:54:52
2025-07-01 12:55:11,051 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:55:11,055 [DEBUG][       Thread-605318][   transport.py][1871] : starting thread (client mode): 0x818c5b0
2025-07-01 12:55:11,055 [DEBUG][       Thread-605318][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:55:11,076 [DEBUG][       Thread-605318][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:55:11,076 [ INFO][       Thread-605318][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:55:11,079 [DEBUG][       Thread-605318][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:55:11,079 [DEBUG][       Thread-605318][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:55:11,079 [DEBUG][       Thread-605318][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:55:11,079 [DEBUG][       Thread-605318][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:55:11,079 [DEBUG][       Thread-605318][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:55:11,079 [DEBUG][       Thread-605318][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:55:11,079 [DEBUG][       Thread-605318][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:55:11,079 [DEBUG][       Thread-605318][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:55:11,079 [DEBUG][       Thread-605318][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:55:11,079 [DEBUG][       Thread-605318][   transport.py][1871] : client lang: <none>
2025-07-01 12:55:11,079 [DEBUG][       Thread-605318][   transport.py][1871] : server lang: <none>
2025-07-01 12:55:11,079 [DEBUG][       Thread-605318][   transport.py][1871] : kex follows: False
2025-07-01 12:55:11,079 [DEBUG][       Thread-605318][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:55:11,079 [DEBUG][       Thread-605318][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:55:11,079 [DEBUG][       Thread-605318][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:55:11,079 [DEBUG][       Thread-605318][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:55:11,079 [DEBUG][       Thread-605318][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:55:11,079 [DEBUG][       Thread-605318][   transport.py][1871] : Compression: none
2025-07-01 12:55:11,079 [DEBUG][       Thread-605318][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:55:11,094 [DEBUG][       Thread-605318][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:55:11,094 [DEBUG][       Thread-605318][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:55:11,094 [DEBUG][       Thread-605318][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:55:11,094 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:55:11,094 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:55:11,095 [DEBUG][       Thread-605318][   transport.py][1871] : userauth is OK
2025-07-01 12:55:11,119 [ INFO][       Thread-605318][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:55:11,119 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:55:11,880 [DEBUG][       Thread-605318][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:55:11,880 [DEBUG][       Thread-605318][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:55:11,920 [DEBUG][       Thread-605318][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:55:11,920 [DEBUG][       Thread-605318][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:55:11,922 [DEBUG][       Thread-605318][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:55:11,935 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:55:11,935 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:55:11,936 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:55:11,937 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:55:11,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:55:11,941 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:55:11,941 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:55:11,941 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:55:11,941 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.454457 -999.00  +12.70  32.64     52   +3.10 1 1 2 1 1   888    0 9.99 12.13 ----- 39.9 32.6 23.9 48.8 15.8 -24.2 14.9 -24.5 14.8 -23.0 15.6 -22.4
2025-07-01 12:55:11,941 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:55:11,941 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:55:11,941 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.454457
2025-07-01 12:55:11,941 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:55:11,941 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:55:11,941 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:55:11,941 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:55:11,941 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:55:11,941 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:54:52', tmtdew=11.17, humidity=46.69, cloud=0.0, wind=37.88, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:54:25.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:55:11,942 [DEBUG][       Thread-605318][   transport.py][1871] : EOF in transport thread
2025-07-01 12:55:12,015 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:55:12,024 [DEBUG][       Thread-605321][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 12:55:12,024 [DEBUG][       Thread-605321][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:55:12,040 [DEBUG][       Thread-605321][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:55:12,040 [ INFO][       Thread-605321][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:55:12,047 [DEBUG][       Thread-605321][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:55:12,047 [DEBUG][       Thread-605321][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:55:12,047 [DEBUG][       Thread-605321][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:55:12,047 [DEBUG][       Thread-605321][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:55:12,047 [DEBUG][       Thread-605321][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:55:12,047 [DEBUG][       Thread-605321][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:55:12,047 [DEBUG][       Thread-605321][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:55:12,047 [DEBUG][       Thread-605321][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:55:12,047 [DEBUG][       Thread-605321][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:55:12,047 [DEBUG][       Thread-605321][   transport.py][1871] : client lang: <none>
2025-07-01 12:55:12,047 [DEBUG][       Thread-605321][   transport.py][1871] : server lang: <none>
2025-07-01 12:55:12,047 [DEBUG][       Thread-605321][   transport.py][1871] : kex follows: False
2025-07-01 12:55:12,047 [DEBUG][       Thread-605321][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:55:12,047 [DEBUG][       Thread-605321][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:55:12,047 [DEBUG][       Thread-605321][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:55:12,047 [DEBUG][       Thread-605321][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:55:12,047 [DEBUG][       Thread-605321][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:55:12,047 [DEBUG][       Thread-605321][   transport.py][1871] : Compression: none
2025-07-01 12:55:12,047 [DEBUG][       Thread-605321][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:55:12,104 [DEBUG][       Thread-605321][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:55:12,104 [DEBUG][       Thread-605321][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:55:12,104 [DEBUG][       Thread-605321][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:55:12,105 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:55:12,105 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:55:12,168 [DEBUG][       Thread-605321][   transport.py][1871] : userauth is OK
2025-07-01 12:55:12,168 [DEBUG][       Thread-605321][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:55:12,169 [DEBUG][       Thread-605321][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:55:12,169 [DEBUG][       Thread-605321][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:55:12,169 [DEBUG][       Thread-605321][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:55:12,183 [ INFO][       Thread-605321][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:55:12,184 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:55:12,184 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:55:13,228 [DEBUG][       Thread-605321][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:55:13,229 [DEBUG][       Thread-605321][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:55:13,280 [DEBUG][       Thread-605321][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:55:13,280 [DEBUG][       Thread-605321][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:55:13,289 [DEBUG][       Thread-605321][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:55:13,299 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:55:13,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-07-01 12:55: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') -> 00000000
2025-07-01 12:55:13,317 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:55:13,317 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:55:13,318 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:55:13,326 [DEBUG][       Thread-605321][   transport.py][1871] : EOF in transport thread
2025-07-01 12:55:13,968 [DEBUG][Thread-605323 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:55:19,867 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:55:19,869 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:55:22,991 [DEBUG][Thread-605324 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:55:23,326 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:55:23,327 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:55:23,327 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:55:23,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-07-01 12:55:23,827 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 54, 52), 11.17, 46.69, 0.0, 37.88, 12.84, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:55:23,828 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:54:52
2025-07-01 12:55:23,914 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:55:23,920 [DEBUG][       Thread-605325][   transport.py][1871] : starting thread (client mode): 0x81a4910
2025-07-01 12:55:23,920 [DEBUG][       Thread-605325][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:55:23,940 [DEBUG][       Thread-605325][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:55:23,940 [ INFO][       Thread-605325][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:55:23,943 [DEBUG][       Thread-605325][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:55:23,943 [DEBUG][       Thread-605325][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:55:23,943 [DEBUG][       Thread-605325][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:55:23,943 [DEBUG][       Thread-605325][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:55:23,943 [DEBUG][       Thread-605325][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:55:23,943 [DEBUG][       Thread-605325][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:55:23,944 [DEBUG][       Thread-605325][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:55:23,944 [DEBUG][       Thread-605325][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:55:23,944 [DEBUG][       Thread-605325][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:55:23,944 [DEBUG][       Thread-605325][   transport.py][1871] : client lang: <none>
2025-07-01 12:55:23,944 [DEBUG][       Thread-605325][   transport.py][1871] : server lang: <none>
2025-07-01 12:55:23,944 [DEBUG][       Thread-605325][   transport.py][1871] : kex follows: False
2025-07-01 12:55:23,944 [DEBUG][       Thread-605325][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:55:23,944 [DEBUG][       Thread-605325][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:55:23,944 [DEBUG][       Thread-605325][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:55:23,944 [DEBUG][       Thread-605325][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:55:23,944 [DEBUG][       Thread-605325][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:55:23,944 [DEBUG][       Thread-605325][   transport.py][1871] : Compression: none
2025-07-01 12:55:23,944 [DEBUG][       Thread-605325][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:55:23,959 [DEBUG][       Thread-605325][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:55:23,960 [DEBUG][       Thread-605325][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:55:23,960 [DEBUG][       Thread-605325][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:55:23,960 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:55:23,961 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:55:23,962 [DEBUG][       Thread-605325][   transport.py][1871] : userauth is OK
2025-07-01 12:55:23,975 [ INFO][       Thread-605325][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:55:23,975 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:55:24,808 [DEBUG][       Thread-605325][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:55:24,808 [DEBUG][       Thread-605325][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:55:24,852 [DEBUG][       Thread-605325][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:55:24,852 [DEBUG][       Thread-605325][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:55:24,855 [DEBUG][       Thread-605325][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:55:24,868 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:55:24,868 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:55:24,870 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:55:24,871 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:55:24,873 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:55:24,874 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:55:24,874 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:55:24,874 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:55:24,874 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.454457 -999.00  +12.70  32.64     52   +3.10 1 1 2 1 1   888    0 9.99 12.13 ----- 39.9 32.6 23.9 48.8 15.8 -24.2 14.9 -24.5 14.8 -23.0 15.6 -22.4
2025-07-01 12:55:24,874 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:55:24,875 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:55:24,875 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.454457
2025-07-01 12:55:24,875 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:55:24,875 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:55:24,875 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:55:24,875 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:55:24,875 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:55:24,875 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:54:52', tmtdew=11.17, humidity=46.69, cloud=0.0, wind=37.88, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:54:25.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:55:24,875 [DEBUG][       Thread-605325][   transport.py][1871] : EOF in transport thread
2025-07-01 12:55:24,953 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:55:24,964 [DEBUG][       Thread-605328][   transport.py][1871] : starting thread (client mode): 0x83c8520
2025-07-01 12:55:24,964 [DEBUG][       Thread-605328][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:55:24,979 [DEBUG][       Thread-605328][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:55:24,979 [ INFO][       Thread-605328][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:55:24,986 [DEBUG][       Thread-605328][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:55:24,986 [DEBUG][       Thread-605328][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:55:24,986 [DEBUG][       Thread-605328][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:55:24,986 [DEBUG][       Thread-605328][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:55:24,986 [DEBUG][       Thread-605328][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:55:24,986 [DEBUG][       Thread-605328][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:55:24,986 [DEBUG][       Thread-605328][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:55:24,986 [DEBUG][       Thread-605328][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:55:24,986 [DEBUG][       Thread-605328][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:55:24,986 [DEBUG][       Thread-605328][   transport.py][1871] : client lang: <none>
2025-07-01 12:55:24,987 [DEBUG][       Thread-605328][   transport.py][1871] : server lang: <none>
2025-07-01 12:55:24,987 [DEBUG][       Thread-605328][   transport.py][1871] : kex follows: False
2025-07-01 12:55:24,987 [DEBUG][       Thread-605328][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:55:24,987 [DEBUG][       Thread-605328][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:55:24,987 [DEBUG][       Thread-605328][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:55:24,987 [DEBUG][       Thread-605328][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:55:24,987 [DEBUG][       Thread-605328][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:55:24,987 [DEBUG][       Thread-605328][   transport.py][1871] : Compression: none
2025-07-01 12:55:24,987 [DEBUG][       Thread-605328][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:55:25,047 [DEBUG][       Thread-605328][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:55:25,047 [DEBUG][       Thread-605328][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:55:25,048 [DEBUG][       Thread-605328][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:55:25,048 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:55:25,048 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:55:25,109 [DEBUG][       Thread-605328][   transport.py][1871] : userauth is OK
2025-07-01 12:55:25,109 [DEBUG][       Thread-605328][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:55:25,109 [DEBUG][       Thread-605328][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:55:25,109 [DEBUG][       Thread-605328][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:55:25,109 [DEBUG][       Thread-605328][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:55:25,129 [ INFO][       Thread-605328][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:55:25,129 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:55:25,129 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:55:26,215 [DEBUG][       Thread-605328][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:55:26,215 [DEBUG][       Thread-605328][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:55:26,264 [DEBUG][       Thread-605328][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:55:26,264 [DEBUG][       Thread-605328][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:55:26,273 [DEBUG][       Thread-605328][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:55:26,282 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:55:26,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-07-01 12:55:26,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-07-01 12:55:26,302 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:55:26,302 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:55:26,303 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:55:26,311 [DEBUG][       Thread-605328][   transport.py][1871] : EOF in transport thread
2025-07-01 12:55:30,532 [DEBUG][Thread-605330 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:55:32,013 [DEBUG][Thread-605331 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:55:36,313 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:55:36,314 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:55:36,323 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:55:36,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-07-01 12:55:36,832 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 55, 23), 11.07, 46.94, 0.0, 35.9, 12.82, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:55:36,832 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:55:23
2025-07-01 12:55:36,916 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:55:36,920 [DEBUG][       Thread-605332][   transport.py][1871] : starting thread (client mode): 0x8173040
2025-07-01 12:55:36,920 [DEBUG][       Thread-605332][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:55:36,942 [DEBUG][       Thread-605332][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:55:36,942 [ INFO][       Thread-605332][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:55:36,947 [DEBUG][       Thread-605332][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:55:36,947 [DEBUG][       Thread-605332][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:55:36,947 [DEBUG][       Thread-605332][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:55:36,947 [DEBUG][       Thread-605332][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:55:36,947 [DEBUG][       Thread-605332][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:55:36,948 [DEBUG][       Thread-605332][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:55:36,948 [DEBUG][       Thread-605332][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:55:36,948 [DEBUG][       Thread-605332][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:55:36,948 [DEBUG][       Thread-605332][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:55:36,948 [DEBUG][       Thread-605332][   transport.py][1871] : client lang: <none>
2025-07-01 12:55:36,948 [DEBUG][       Thread-605332][   transport.py][1871] : server lang: <none>
2025-07-01 12:55:36,948 [DEBUG][       Thread-605332][   transport.py][1871] : kex follows: False
2025-07-01 12:55:36,948 [DEBUG][       Thread-605332][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:55:36,948 [DEBUG][       Thread-605332][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:55:36,948 [DEBUG][       Thread-605332][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:55:36,948 [DEBUG][       Thread-605332][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:55:36,948 [DEBUG][       Thread-605332][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:55:36,948 [DEBUG][       Thread-605332][   transport.py][1871] : Compression: none
2025-07-01 12:55:36,948 [DEBUG][       Thread-605332][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:55:36,964 [DEBUG][       Thread-605332][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:55:36,964 [DEBUG][       Thread-605332][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:55:36,965 [DEBUG][       Thread-605332][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:55:36,965 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:55:36,965 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:55:36,966 [DEBUG][       Thread-605332][   transport.py][1871] : userauth is OK
2025-07-01 12:55:36,979 [ INFO][       Thread-605332][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:55:36,980 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:55:37,793 [DEBUG][       Thread-605332][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:55:37,793 [DEBUG][       Thread-605332][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:55:37,837 [DEBUG][       Thread-605332][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:55:37,837 [DEBUG][       Thread-605332][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:55:37,840 [DEBUG][       Thread-605332][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:55:37,854 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:55:37,855 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:55:37,856 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:55:37,858 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:55:37,864 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:55:37,866 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:55:37,866 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:55:37,867 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:55:37,867 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.454457 -999.00  +12.70  32.64     52   +3.10 1 1 2 1 1   888    0 9.99 12.13 ----- 39.9 32.6 23.9 48.8 15.8 -24.2 14.9 -24.5 14.8 -23.0 15.6 -22.4
2025-07-01 12:55:37,867 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:55:37,867 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:55:37,867 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.454457
2025-07-01 12:55:37,868 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:55:37,868 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:55:37,868 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:55:37,868 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:55:37,869 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:55:37,869 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:55:23', tmtdew=11.07, humidity=46.94, cloud=0.0, wind=35.9, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:54:25.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:55:37,870 [DEBUG][       Thread-605332][   transport.py][1871] : EOF in transport thread
2025-07-01 12:55:37,952 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:55:37,962 [DEBUG][       Thread-605335][   transport.py][1871] : starting thread (client mode): 0x8154910
2025-07-01 12:55:37,962 [DEBUG][       Thread-605335][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:55:37,977 [DEBUG][       Thread-605335][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:55:37,977 [ INFO][       Thread-605335][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:55:37,985 [DEBUG][       Thread-605335][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:55:37,985 [DEBUG][       Thread-605335][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:55:37,985 [DEBUG][       Thread-605335][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:55:37,985 [DEBUG][       Thread-605335][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:55:37,985 [DEBUG][       Thread-605335][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:55:37,985 [DEBUG][       Thread-605335][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:55:37,985 [DEBUG][       Thread-605335][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:55:37,985 [DEBUG][       Thread-605335][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:55:37,985 [DEBUG][       Thread-605335][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:55:37,985 [DEBUG][       Thread-605335][   transport.py][1871] : client lang: <none>
2025-07-01 12:55:37,985 [DEBUG][       Thread-605335][   transport.py][1871] : server lang: <none>
2025-07-01 12:55:37,985 [DEBUG][       Thread-605335][   transport.py][1871] : kex follows: False
2025-07-01 12:55:37,985 [DEBUG][       Thread-605335][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:55:37,985 [DEBUG][       Thread-605335][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:55:37,985 [DEBUG][       Thread-605335][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:55:37,985 [DEBUG][       Thread-605335][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:55:37,985 [DEBUG][       Thread-605335][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:55:37,985 [DEBUG][       Thread-605335][   transport.py][1871] : Compression: none
2025-07-01 12:55:37,985 [DEBUG][       Thread-605335][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:55:38,041 [DEBUG][       Thread-605335][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:55:38,041 [DEBUG][       Thread-605335][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:55:38,042 [DEBUG][       Thread-605335][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:55:38,042 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:55:38,043 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:55:38,098 [DEBUG][       Thread-605335][   transport.py][1871] : userauth is OK
2025-07-01 12:55:38,098 [DEBUG][       Thread-605335][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:55:38,098 [DEBUG][       Thread-605335][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:55:38,098 [DEBUG][       Thread-605335][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:55:38,098 [DEBUG][       Thread-605335][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:55:38,123 [ INFO][       Thread-605335][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:55:38,123 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:55:38,124 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:55:39,140 [DEBUG][       Thread-605335][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:55:39,140 [DEBUG][       Thread-605335][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:55:39,188 [DEBUG][       Thread-605335][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:55:39,188 [DEBUG][       Thread-605335][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:55:39,197 [DEBUG][       Thread-605335][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:55:39,206 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:55:39,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-07-01 12:55:39,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-07-01 12:55:39,223 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:55:39,223 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:55:39,224 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:55:39,232 [DEBUG][       Thread-605335][   transport.py][1871] : EOF in transport thread
2025-07-01 12:55:41,033 [DEBUG][Thread-605337 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:55:49,232 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:55:49,232 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:55:49,232 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:55:49,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-07-01 12:55:49,759 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 55, 23), 11.07, 46.94, 0.0, 35.9, 12.82, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:55:49,759 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:55:23
2025-07-01 12:55:49,848 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:55:49,852 [DEBUG][       Thread-605338][   transport.py][1871] : starting thread (client mode): 0x8170eb0
2025-07-01 12:55:49,852 [DEBUG][       Thread-605338][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:55:49,872 [DEBUG][       Thread-605338][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:55:49,872 [ INFO][       Thread-605338][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:55:49,874 [DEBUG][       Thread-605338][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:55:49,874 [DEBUG][       Thread-605338][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:55:49,874 [DEBUG][       Thread-605338][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:55:49,874 [DEBUG][       Thread-605338][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:55:49,874 [DEBUG][       Thread-605338][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:55:49,874 [DEBUG][       Thread-605338][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:55:49,874 [DEBUG][       Thread-605338][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:55:49,874 [DEBUG][       Thread-605338][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:55:49,874 [DEBUG][       Thread-605338][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:55:49,874 [DEBUG][       Thread-605338][   transport.py][1871] : client lang: <none>
2025-07-01 12:55:49,874 [DEBUG][       Thread-605338][   transport.py][1871] : server lang: <none>
2025-07-01 12:55:49,874 [DEBUG][       Thread-605338][   transport.py][1871] : kex follows: False
2025-07-01 12:55:49,874 [DEBUG][       Thread-605338][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:55:49,874 [DEBUG][       Thread-605338][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:55:49,874 [DEBUG][       Thread-605338][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:55:49,874 [DEBUG][       Thread-605338][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:55:49,874 [DEBUG][       Thread-605338][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:55:49,874 [DEBUG][       Thread-605338][   transport.py][1871] : Compression: none
2025-07-01 12:55:49,874 [DEBUG][       Thread-605338][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:55:49,885 [DEBUG][       Thread-605338][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:55:49,885 [DEBUG][       Thread-605338][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:55:49,885 [DEBUG][       Thread-605338][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:55:49,885 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:55:49,885 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:55:49,886 [DEBUG][       Thread-605338][   transport.py][1871] : userauth is OK
2025-07-01 12:55:49,909 [ INFO][       Thread-605338][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:55:49,910 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:55:50,060 [DEBUG][Thread-605340 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:55:50,693 [DEBUG][       Thread-605338][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:55:50,693 [DEBUG][       Thread-605338][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:55:50,736 [DEBUG][       Thread-605338][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:55:50,736 [DEBUG][       Thread-605338][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:55:50,739 [DEBUG][       Thread-605338][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:55:50,750 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:55:50,750 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:55:50,752 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:55:50,753 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:55:50,757 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:55:50,758 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:55:50,758 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:55:50,759 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:55:50,759 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.454457 -999.00  +12.70  32.64     52   +3.10 1 1 2 1 1   888    0 9.99 12.13 ----- 39.9 32.6 23.9 48.8 15.8 -24.2 14.9 -24.5 14.8 -23.0 15.6 -22.4
2025-07-01 12:55:50,759 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:55:50,759 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:55:50,759 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.454457
2025-07-01 12:55:50,759 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:55:50,759 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:55:50,759 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:55:50,759 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:55:50,759 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:55:50,759 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:55:23', tmtdew=11.07, humidity=46.94, cloud=0.0, wind=35.9, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:54:25.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:55:50,760 [DEBUG][       Thread-605338][   transport.py][1871] : EOF in transport thread
2025-07-01 12:55:50,833 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:55:50,845 [DEBUG][       Thread-605342][   transport.py][1871] : starting thread (client mode): 0x81e58a0
2025-07-01 12:55:50,845 [DEBUG][       Thread-605342][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:55:50,860 [DEBUG][       Thread-605342][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:55:50,860 [ INFO][       Thread-605342][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:55:50,867 [DEBUG][       Thread-605342][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:55:50,867 [DEBUG][       Thread-605342][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:55:50,867 [DEBUG][       Thread-605342][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:55:50,867 [DEBUG][       Thread-605342][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:55:50,867 [DEBUG][       Thread-605342][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:55:50,867 [DEBUG][       Thread-605342][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:55:50,867 [DEBUG][       Thread-605342][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:55:50,867 [DEBUG][       Thread-605342][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:55:50,867 [DEBUG][       Thread-605342][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:55:50,867 [DEBUG][       Thread-605342][   transport.py][1871] : client lang: <none>
2025-07-01 12:55:50,867 [DEBUG][       Thread-605342][   transport.py][1871] : server lang: <none>
2025-07-01 12:55:50,867 [DEBUG][       Thread-605342][   transport.py][1871] : kex follows: False
2025-07-01 12:55:50,867 [DEBUG][       Thread-605342][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:55:50,868 [DEBUG][       Thread-605342][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:55:50,868 [DEBUG][       Thread-605342][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:55:50,868 [DEBUG][       Thread-605342][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:55:50,868 [DEBUG][       Thread-605342][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:55:50,868 [DEBUG][       Thread-605342][   transport.py][1871] : Compression: none
2025-07-01 12:55:50,868 [DEBUG][       Thread-605342][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:55:50,924 [DEBUG][       Thread-605342][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:55:50,924 [DEBUG][       Thread-605342][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:55:50,924 [DEBUG][       Thread-605342][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:55:50,924 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:55:50,924 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:55:50,981 [DEBUG][       Thread-605342][   transport.py][1871] : userauth is OK
2025-07-01 12:55:50,981 [DEBUG][       Thread-605342][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:55:50,981 [DEBUG][       Thread-605342][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:55:50,981 [DEBUG][       Thread-605342][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:55:50,981 [DEBUG][       Thread-605342][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:55:51,001 [ INFO][       Thread-605342][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:55:51,001 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:55:51,001 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:55:52,022 [DEBUG][       Thread-605342][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:55:52,022 [DEBUG][       Thread-605342][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:55:52,072 [DEBUG][       Thread-605342][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:55:52,072 [DEBUG][       Thread-605342][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:55:52,082 [DEBUG][       Thread-605342][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:55:52,090 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:55:52,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-07-01 12:55:52,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-07-01 12:55:52,109 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:55:52,109 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:55:52,110 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:55:52,118 [DEBUG][       Thread-605342][   transport.py][1871] : EOF in transport thread
2025-07-01 12:55:59,080 [DEBUG][Thread-605344 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:56:02,117 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:56:02,118 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:56:02,118 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:56:02,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-07-01 12:56:02,632 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 55, 55), 11.05, 46.99, 0.0, 37.21, 12.79, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:56:02,632 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:55:55
2025-07-01 12:56:02,719 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:56:02,723 [DEBUG][       Thread-605345][   transport.py][1871] : starting thread (client mode): 0x81700a0
2025-07-01 12:56:02,723 [DEBUG][       Thread-605345][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:56:02,742 [DEBUG][       Thread-605345][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:56:02,742 [ INFO][       Thread-605345][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:56:02,745 [DEBUG][       Thread-605345][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:56:02,745 [DEBUG][       Thread-605345][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:56:02,745 [DEBUG][       Thread-605345][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:56:02,746 [DEBUG][       Thread-605345][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:56:02,746 [DEBUG][       Thread-605345][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:56:02,746 [DEBUG][       Thread-605345][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:56:02,746 [DEBUG][       Thread-605345][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:56:02,746 [DEBUG][       Thread-605345][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:56:02,746 [DEBUG][       Thread-605345][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:56:02,746 [DEBUG][       Thread-605345][   transport.py][1871] : client lang: <none>
2025-07-01 12:56:02,746 [DEBUG][       Thread-605345][   transport.py][1871] : server lang: <none>
2025-07-01 12:56:02,746 [DEBUG][       Thread-605345][   transport.py][1871] : kex follows: False
2025-07-01 12:56:02,746 [DEBUG][       Thread-605345][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:56:02,746 [DEBUG][       Thread-605345][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:56:02,746 [DEBUG][       Thread-605345][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:56:02,746 [DEBUG][       Thread-605345][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:56:02,746 [DEBUG][       Thread-605345][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:56:02,746 [DEBUG][       Thread-605345][   transport.py][1871] : Compression: none
2025-07-01 12:56:02,746 [DEBUG][       Thread-605345][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:56:02,761 [DEBUG][       Thread-605345][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:56:02,762 [DEBUG][       Thread-605345][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:56:02,762 [DEBUG][       Thread-605345][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:56:02,763 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:56:02,763 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:56:02,764 [DEBUG][       Thread-605345][   transport.py][1871] : userauth is OK
2025-07-01 12:56:02,788 [ INFO][       Thread-605345][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:56:02,789 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:56:03,573 [DEBUG][       Thread-605345][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:56:03,573 [DEBUG][       Thread-605345][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:56:03,617 [DEBUG][       Thread-605345][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:56:03,617 [DEBUG][       Thread-605345][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:56:03,621 [DEBUG][       Thread-605345][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:56:03,632 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:56:03,633 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:56:03,634 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:56:03,636 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:56:03,642 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:56:03,643 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:56:03,643 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:56:03,644 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:56:03,644 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.454457 -999.00  +12.70  32.64     52   +3.10 1 1 2 1 1   888    0 9.99 12.13 ----- 39.9 32.6 23.9 48.8 15.8 -24.2 14.9 -24.5 14.8 -23.0 15.6 -22.4
2025-07-01 12:56:03,644 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:56:03,644 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:56:03,644 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.454457
2025-07-01 12:56:03,645 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:56:03,645 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:56:03,645 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:56:03,646 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:56:03,646 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:56:03,646 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:55:55', tmtdew=11.05, humidity=46.99, cloud=0.0, wind=37.21, temperature=12.79, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:54:25.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:56:03,647 [DEBUG][       Thread-605345][   transport.py][1871] : EOF in transport thread
2025-07-01 12:56:03,729 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:56:03,738 [DEBUG][       Thread-605348][   transport.py][1871] : starting thread (client mode): 0x8393ee0
2025-07-01 12:56:03,739 [DEBUG][       Thread-605348][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:56:03,756 [DEBUG][       Thread-605348][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:56:03,756 [ INFO][       Thread-605348][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:56:03,763 [DEBUG][       Thread-605348][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:56:03,763 [DEBUG][       Thread-605348][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:56:03,763 [DEBUG][       Thread-605348][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:56:03,763 [DEBUG][       Thread-605348][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:56:03,763 [DEBUG][       Thread-605348][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:56:03,763 [DEBUG][       Thread-605348][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:56:03,763 [DEBUG][       Thread-605348][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:56:03,763 [DEBUG][       Thread-605348][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:56:03,763 [DEBUG][       Thread-605348][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:56:03,763 [DEBUG][       Thread-605348][   transport.py][1871] : client lang: <none>
2025-07-01 12:56:03,763 [DEBUG][       Thread-605348][   transport.py][1871] : server lang: <none>
2025-07-01 12:56:03,764 [DEBUG][       Thread-605348][   transport.py][1871] : kex follows: False
2025-07-01 12:56:03,764 [DEBUG][       Thread-605348][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:56:03,764 [DEBUG][       Thread-605348][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:56:03,764 [DEBUG][       Thread-605348][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:56:03,764 [DEBUG][       Thread-605348][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:56:03,764 [DEBUG][       Thread-605348][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:56:03,764 [DEBUG][       Thread-605348][   transport.py][1871] : Compression: none
2025-07-01 12:56:03,764 [DEBUG][       Thread-605348][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:56:03,822 [DEBUG][       Thread-605348][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:56:03,823 [DEBUG][       Thread-605348][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:56:03,832 [DEBUG][       Thread-605348][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:56:03,833 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:56:03,833 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:56:03,880 [DEBUG][       Thread-605348][   transport.py][1871] : userauth is OK
2025-07-01 12:56:03,880 [DEBUG][       Thread-605348][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:56:03,880 [DEBUG][       Thread-605348][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:56:03,880 [DEBUG][       Thread-605348][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:56:03,881 [DEBUG][       Thread-605348][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:56:03,899 [ INFO][       Thread-605348][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:56:03,899 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:56:03,900 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:56:04,912 [DEBUG][       Thread-605348][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:56:04,913 [DEBUG][       Thread-605348][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:56:04,967 [DEBUG][       Thread-605348][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:56:04,968 [DEBUG][       Thread-605348][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:56:04,977 [DEBUG][       Thread-605348][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:56:04,986 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:56:04,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-07-01 12:56:04,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-07-01 12:56:05,004 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:56:05,005 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:56:05,005 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:56:05,013 [DEBUG][       Thread-605348][   transport.py][1871] : EOF in transport thread
2025-07-01 12:56:08,103 [DEBUG][Thread-605350 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:56:15,012 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:56:15,012 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:56:15,012 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:56:15,015 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:56:15,515 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 55, 55), 11.05, 46.99, 0.0, 37.21, 12.79, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:56:15,515 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:55:55
2025-07-01 12:56:15,600 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:56:15,606 [DEBUG][       Thread-605351][   transport.py][1871] : starting thread (client mode): 0x75aaf20
2025-07-01 12:56:15,606 [DEBUG][       Thread-605351][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:56:15,617 [DEBUG][       Thread-605351][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:56:15,617 [ INFO][       Thread-605351][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:56:15,621 [DEBUG][       Thread-605351][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:56:15,621 [DEBUG][       Thread-605351][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:56:15,621 [DEBUG][       Thread-605351][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:56:15,621 [DEBUG][       Thread-605351][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:56:15,621 [DEBUG][       Thread-605351][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:56:15,621 [DEBUG][       Thread-605351][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:56:15,621 [DEBUG][       Thread-605351][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:56:15,621 [DEBUG][       Thread-605351][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:56:15,621 [DEBUG][       Thread-605351][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:56:15,621 [DEBUG][       Thread-605351][   transport.py][1871] : client lang: <none>
2025-07-01 12:56:15,621 [DEBUG][       Thread-605351][   transport.py][1871] : server lang: <none>
2025-07-01 12:56:15,621 [DEBUG][       Thread-605351][   transport.py][1871] : kex follows: False
2025-07-01 12:56:15,621 [DEBUG][       Thread-605351][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:56:15,621 [DEBUG][       Thread-605351][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:56:15,621 [DEBUG][       Thread-605351][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:56:15,621 [DEBUG][       Thread-605351][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:56:15,621 [DEBUG][       Thread-605351][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:56:15,621 [DEBUG][       Thread-605351][   transport.py][1871] : Compression: none
2025-07-01 12:56:15,621 [DEBUG][       Thread-605351][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:56:15,636 [DEBUG][       Thread-605351][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:56:15,637 [DEBUG][       Thread-605351][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:56:15,637 [DEBUG][       Thread-605351][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:56:15,637 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:56:15,637 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:56:15,638 [DEBUG][       Thread-605351][   transport.py][1871] : userauth is OK
2025-07-01 12:56:15,651 [ INFO][       Thread-605351][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:56:15,652 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:56:16,469 [DEBUG][       Thread-605351][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:56:16,469 [DEBUG][       Thread-605351][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:56:16,513 [DEBUG][       Thread-605351][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:56:16,513 [DEBUG][       Thread-605351][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:56:16,516 [DEBUG][       Thread-605351][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:56:16,527 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:56:16,528 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:56:16,530 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:56:16,531 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:56:16,536 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:56:16,538 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:56:16,538 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:56:16,539 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:56:16,539 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.454457 -999.00  +12.70  32.64     52   +3.10 1 1 2 1 1   888    0 9.99 12.13 ----- 39.9 32.6 23.9 48.8 15.8 -24.2 14.9 -24.5 14.8 -23.0 15.6 -22.4
2025-07-01 12:56:16,539 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:56:16,539 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:56:16,539 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.454457
2025-07-01 12:56:16,540 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:56:16,540 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:56:16,540 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:56:16,540 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:56:16,540 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:56:16,541 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:55:55', tmtdew=11.05, humidity=46.99, cloud=0.0, wind=37.21, temperature=12.79, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:54:25.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:56:16,542 [DEBUG][       Thread-605351][   transport.py][1871] : EOF in transport thread
2025-07-01 12:56:16,628 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:56:16,640 [DEBUG][       Thread-605354][   transport.py][1871] : starting thread (client mode): 0x818fdf0
2025-07-01 12:56:16,640 [DEBUG][       Thread-605354][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:56:16,658 [DEBUG][       Thread-605354][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:56:16,659 [ INFO][       Thread-605354][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:56:16,666 [DEBUG][       Thread-605354][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:56:16,666 [DEBUG][       Thread-605354][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:56:16,666 [DEBUG][       Thread-605354][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:56:16,667 [DEBUG][       Thread-605354][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:56:16,667 [DEBUG][       Thread-605354][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:56:16,667 [DEBUG][       Thread-605354][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:56:16,667 [DEBUG][       Thread-605354][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:56:16,667 [DEBUG][       Thread-605354][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:56:16,667 [DEBUG][       Thread-605354][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:56:16,667 [DEBUG][       Thread-605354][   transport.py][1871] : client lang: <none>
2025-07-01 12:56:16,667 [DEBUG][       Thread-605354][   transport.py][1871] : server lang: <none>
2025-07-01 12:56:16,667 [DEBUG][       Thread-605354][   transport.py][1871] : kex follows: False
2025-07-01 12:56:16,667 [DEBUG][       Thread-605354][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:56:16,668 [DEBUG][       Thread-605354][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:56:16,668 [DEBUG][       Thread-605354][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:56:16,668 [DEBUG][       Thread-605354][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:56:16,668 [DEBUG][       Thread-605354][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:56:16,668 [DEBUG][       Thread-605354][   transport.py][1871] : Compression: none
2025-07-01 12:56:16,668 [DEBUG][       Thread-605354][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:56:16,727 [DEBUG][       Thread-605354][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:56:16,727 [DEBUG][       Thread-605354][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:56:16,728 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:56:16,729 [DEBUG][       Thread-605354][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:56:16,730 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:56:16,790 [DEBUG][       Thread-605354][   transport.py][1871] : userauth is OK
2025-07-01 12:56:16,790 [DEBUG][       Thread-605354][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:56:16,790 [DEBUG][       Thread-605354][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:56:16,791 [DEBUG][       Thread-605354][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:56:16,791 [DEBUG][       Thread-605354][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:56:16,824 [ INFO][       Thread-605354][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:56:16,824 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:56:16,824 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:56:17,138 [DEBUG][Thread-605356 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:56:17,912 [DEBUG][       Thread-605354][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:56:17,912 [DEBUG][       Thread-605354][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:56:17,964 [DEBUG][       Thread-605354][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:56:17,964 [DEBUG][       Thread-605354][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:56:17,974 [DEBUG][       Thread-605354][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:56:17,983 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:56:17,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-07-01 12:56:17,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-07-01 12:56:18,002 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:56:18,002 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:56:18,002 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:56:18,010 [DEBUG][       Thread-605354][   transport.py][1871] : EOF in transport thread
2025-07-01 12:56:20,006 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:56:20,007 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:56:26,160 [DEBUG][Thread-605357 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:56:28,012 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:56:28,012 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:56:28,012 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:56:28,012 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:56:28,563 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 55, 55), 11.05, 46.99, 0.0, 37.21, 12.79, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:56:28,563 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:55:55
2025-07-01 12:56:28,654 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:56:28,661 [DEBUG][       Thread-605358][   transport.py][1871] : starting thread (client mode): 0x81a5240
2025-07-01 12:56:28,661 [DEBUG][       Thread-605358][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:56:28,680 [DEBUG][       Thread-605358][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:56:28,680 [ INFO][       Thread-605358][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:56:28,683 [DEBUG][       Thread-605358][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:56:28,683 [DEBUG][       Thread-605358][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:56:28,683 [DEBUG][       Thread-605358][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:56:28,683 [DEBUG][       Thread-605358][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:56:28,683 [DEBUG][       Thread-605358][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:56:28,683 [DEBUG][       Thread-605358][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:56:28,683 [DEBUG][       Thread-605358][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:56:28,684 [DEBUG][       Thread-605358][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:56:28,684 [DEBUG][       Thread-605358][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:56:28,684 [DEBUG][       Thread-605358][   transport.py][1871] : client lang: <none>
2025-07-01 12:56:28,684 [DEBUG][       Thread-605358][   transport.py][1871] : server lang: <none>
2025-07-01 12:56:28,684 [DEBUG][       Thread-605358][   transport.py][1871] : kex follows: False
2025-07-01 12:56:28,684 [DEBUG][       Thread-605358][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:56:28,684 [DEBUG][       Thread-605358][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:56:28,684 [DEBUG][       Thread-605358][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:56:28,684 [DEBUG][       Thread-605358][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:56:28,684 [DEBUG][       Thread-605358][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:56:28,684 [DEBUG][       Thread-605358][   transport.py][1871] : Compression: none
2025-07-01 12:56:28,684 [DEBUG][       Thread-605358][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:56:28,697 [DEBUG][       Thread-605358][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:56:28,697 [DEBUG][       Thread-605358][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:56:28,697 [DEBUG][       Thread-605358][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:56:28,697 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:56:28,697 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:56:28,698 [DEBUG][       Thread-605358][   transport.py][1871] : userauth is OK
2025-07-01 12:56:28,710 [ INFO][       Thread-605358][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:56:28,710 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:56:29,504 [DEBUG][       Thread-605358][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:56:29,504 [DEBUG][       Thread-605358][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:56:29,545 [DEBUG][       Thread-605358][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:56:29,545 [DEBUG][       Thread-605358][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:56:29,548 [DEBUG][       Thread-605358][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:56:29,560 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:56:29,560 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:56:29,562 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:56:29,564 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:56:29,569 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:56:29,571 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:56:29,572 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:56:29,572 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:56:29,572 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.454457 -999.00  +12.70  32.64     52   +3.10 1 1 2 1 1   888    0 9.99 12.13 ----- 39.9 32.6 23.9 48.8 15.8 -24.2 14.9 -24.5 14.8 -23.0 15.6 -22.4
2025-07-01 12:56:29,572 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:56:29,572 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:56:29,573 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.454457
2025-07-01 12:56:29,573 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:56:29,574 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:56:29,574 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:56:29,574 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:56:29,574 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:56:29,574 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:55:55', tmtdew=11.05, humidity=46.99, cloud=0.0, wind=37.21, temperature=12.79, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:54:25.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:56:29,575 [DEBUG][       Thread-605358][   transport.py][1871] : EOF in transport thread
2025-07-01 12:56:29,655 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:56:29,667 [DEBUG][       Thread-605361][   transport.py][1871] : starting thread (client mode): 0x81579a0
2025-07-01 12:56:29,667 [DEBUG][       Thread-605361][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:56:29,682 [DEBUG][       Thread-605361][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:56:29,682 [ INFO][       Thread-605361][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:56:29,689 [DEBUG][       Thread-605361][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:56:29,689 [DEBUG][       Thread-605361][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:56:29,689 [DEBUG][       Thread-605361][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:56:29,689 [DEBUG][       Thread-605361][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:56:29,689 [DEBUG][       Thread-605361][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:56:29,690 [DEBUG][       Thread-605361][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:56:29,690 [DEBUG][       Thread-605361][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:56:29,690 [DEBUG][       Thread-605361][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:56:29,690 [DEBUG][       Thread-605361][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:56:29,690 [DEBUG][       Thread-605361][   transport.py][1871] : client lang: <none>
2025-07-01 12:56:29,690 [DEBUG][       Thread-605361][   transport.py][1871] : server lang: <none>
2025-07-01 12:56:29,690 [DEBUG][       Thread-605361][   transport.py][1871] : kex follows: False
2025-07-01 12:56:29,690 [DEBUG][       Thread-605361][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:56:29,690 [DEBUG][       Thread-605361][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:56:29,690 [DEBUG][       Thread-605361][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:56:29,690 [DEBUG][       Thread-605361][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:56:29,690 [DEBUG][       Thread-605361][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:56:29,690 [DEBUG][       Thread-605361][   transport.py][1871] : Compression: none
2025-07-01 12:56:29,690 [DEBUG][       Thread-605361][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:56:29,750 [DEBUG][       Thread-605361][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:56:29,751 [DEBUG][       Thread-605361][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:56:29,751 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:56:29,752 [DEBUG][       Thread-605361][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:56:29,752 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:56:29,806 [DEBUG][       Thread-605361][   transport.py][1871] : userauth is OK
2025-07-01 12:56:29,806 [DEBUG][       Thread-605361][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:56:29,806 [DEBUG][       Thread-605361][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:56:29,807 [DEBUG][       Thread-605361][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:56:29,807 [DEBUG][       Thread-605361][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:56:29,827 [ INFO][       Thread-605361][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:56:29,827 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:56:29,828 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:56:30,579 [DEBUG][Thread-605363 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:56:30,850 [DEBUG][       Thread-605361][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:56:30,850 [DEBUG][       Thread-605361][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:56:30,900 [DEBUG][       Thread-605361][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:56:30,900 [DEBUG][       Thread-605361][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:56:30,911 [DEBUG][       Thread-605361][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:56:30,923 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:56: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')
2025-07-01 12:56:30,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-07-01 12:56:30,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:56:30,945 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:56:30,946 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:56:30,954 [DEBUG][       Thread-605361][   transport.py][1871] : EOF in transport thread
2025-07-01 12:56:35,180 [DEBUG][Thread-605364 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:56:40,956 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:56:40,957 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:56:40,957 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:56:40,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-07-01 12:56:41,467 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 56, 26), 10.99, 47.3, 0.0, 34.79, 12.8, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:56:41,467 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:56:26
2025-07-01 12:56:41,552 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:56:41,555 [DEBUG][       Thread-605365][   transport.py][1871] : starting thread (client mode): 0x75a96c0
2025-07-01 12:56:41,555 [DEBUG][       Thread-605365][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:56:41,577 [DEBUG][       Thread-605365][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:56:41,577 [ INFO][       Thread-605365][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:56:41,580 [DEBUG][       Thread-605365][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:56:41,580 [DEBUG][       Thread-605365][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:56:41,580 [DEBUG][       Thread-605365][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:56:41,580 [DEBUG][       Thread-605365][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:56:41,580 [DEBUG][       Thread-605365][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:56:41,580 [DEBUG][       Thread-605365][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:56:41,580 [DEBUG][       Thread-605365][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:56:41,580 [DEBUG][       Thread-605365][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:56:41,580 [DEBUG][       Thread-605365][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:56:41,580 [DEBUG][       Thread-605365][   transport.py][1871] : client lang: <none>
2025-07-01 12:56:41,580 [DEBUG][       Thread-605365][   transport.py][1871] : server lang: <none>
2025-07-01 12:56:41,580 [DEBUG][       Thread-605365][   transport.py][1871] : kex follows: False
2025-07-01 12:56:41,580 [DEBUG][       Thread-605365][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:56:41,580 [DEBUG][       Thread-605365][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:56:41,581 [DEBUG][       Thread-605365][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:56:41,581 [DEBUG][       Thread-605365][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:56:41,581 [DEBUG][       Thread-605365][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:56:41,581 [DEBUG][       Thread-605365][   transport.py][1871] : Compression: none
2025-07-01 12:56:41,581 [DEBUG][       Thread-605365][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:56:41,597 [DEBUG][       Thread-605365][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:56:41,597 [DEBUG][       Thread-605365][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:56:41,598 [DEBUG][       Thread-605365][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:56:41,598 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:56:41,598 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:56:41,599 [DEBUG][       Thread-605365][   transport.py][1871] : userauth is OK
2025-07-01 12:56:41,624 [ INFO][       Thread-605365][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:56:41,625 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:56:42,455 [DEBUG][       Thread-605365][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:56:42,455 [DEBUG][       Thread-605365][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:56:42,497 [DEBUG][       Thread-605365][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:56:42,497 [DEBUG][       Thread-605365][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:56:42,500 [DEBUG][       Thread-605365][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:56:42,511 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:56:42,512 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:56:42,513 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:56:42,515 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:56:42,521 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:56:42,523 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:56:42,523 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:56:42,524 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:56:42,524 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.454457 -999.00  +12.70  32.64     52   +3.10 1 1 2 1 1   888    0 9.99 12.13 ----- 39.9 32.6 23.9 48.8 15.8 -24.2 14.9 -24.5 14.8 -23.0 15.6 -22.4
2025-07-01 12:56:42,524 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:56:42,524 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:56:42,524 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.454457
2025-07-01 12:56:42,524 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:56:42,525 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:56:42,525 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:56:42,525 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:56:42,525 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:56:42,525 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:56:26', tmtdew=10.99, humidity=47.3, cloud=0.0, wind=34.79, temperature=12.8, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:54:25.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:56:42,526 [DEBUG][       Thread-605365][   transport.py][1871] : EOF in transport thread
2025-07-01 12:56:42,605 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:56:42,615 [DEBUG][       Thread-605368][   transport.py][1871] : starting thread (client mode): 0x82b0a00
2025-07-01 12:56:42,615 [DEBUG][       Thread-605368][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:56:42,629 [DEBUG][       Thread-605368][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:56:42,629 [ INFO][       Thread-605368][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:56:42,637 [DEBUG][       Thread-605368][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:56:42,637 [DEBUG][       Thread-605368][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:56:42,637 [DEBUG][       Thread-605368][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:56:42,637 [DEBUG][       Thread-605368][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:56:42,638 [DEBUG][       Thread-605368][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:56:42,638 [DEBUG][       Thread-605368][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:56:42,638 [DEBUG][       Thread-605368][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:56:42,638 [DEBUG][       Thread-605368][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:56:42,638 [DEBUG][       Thread-605368][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:56:42,638 [DEBUG][       Thread-605368][   transport.py][1871] : client lang: <none>
2025-07-01 12:56:42,638 [DEBUG][       Thread-605368][   transport.py][1871] : server lang: <none>
2025-07-01 12:56:42,638 [DEBUG][       Thread-605368][   transport.py][1871] : kex follows: False
2025-07-01 12:56:42,638 [DEBUG][       Thread-605368][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:56:42,638 [DEBUG][       Thread-605368][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:56:42,638 [DEBUG][       Thread-605368][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:56:42,638 [DEBUG][       Thread-605368][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:56:42,638 [DEBUG][       Thread-605368][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:56:42,638 [DEBUG][       Thread-605368][   transport.py][1871] : Compression: none
2025-07-01 12:56:42,638 [DEBUG][       Thread-605368][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:56:42,694 [DEBUG][       Thread-605368][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:56:42,695 [DEBUG][       Thread-605368][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:56:42,695 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:56:42,696 [DEBUG][       Thread-605368][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:56:42,697 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:56:42,750 [DEBUG][       Thread-605368][   transport.py][1871] : userauth is OK
2025-07-01 12:56:42,750 [DEBUG][       Thread-605368][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:56:42,751 [DEBUG][       Thread-605368][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:56:42,751 [DEBUG][       Thread-605368][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:56:42,751 [DEBUG][       Thread-605368][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:56:42,769 [ INFO][       Thread-605368][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:56:42,769 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:56:42,769 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:56:43,768 [DEBUG][       Thread-605368][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:56:43,768 [DEBUG][       Thread-605368][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:56:43,816 [DEBUG][       Thread-605368][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:56:43,816 [DEBUG][       Thread-605368][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:56:43,825 [DEBUG][       Thread-605368][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:56:43,834 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:56:43,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-07-01 12:56:43,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') -> 00000000
2025-07-01 12:56:43,851 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:56:43,851 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:56:43,851 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:56:43,859 [DEBUG][       Thread-605368][   transport.py][1871] : EOF in transport thread
2025-07-01 12:56:44,202 [DEBUG][Thread-605370 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:56:53,247 [DEBUG][Thread-605371 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:56:53,856 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:56:53,856 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:56:53,857 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:56:53,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-07-01 12:56:54,365 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 56, 26), 10.99, 47.3, 0.0, 34.79, 12.8, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:56:54,366 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:56:26
2025-07-01 12:56:54,451 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:56:54,457 [DEBUG][       Thread-605372][   transport.py][1871] : starting thread (client mode): 0x81dbee0
2025-07-01 12:56:54,457 [DEBUG][       Thread-605372][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:56:54,477 [DEBUG][       Thread-605372][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:56:54,477 [ INFO][       Thread-605372][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:56:54,481 [DEBUG][       Thread-605372][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:56:54,481 [DEBUG][       Thread-605372][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:56:54,481 [DEBUG][       Thread-605372][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:56:54,481 [DEBUG][       Thread-605372][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:56:54,481 [DEBUG][       Thread-605372][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:56:54,481 [DEBUG][       Thread-605372][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:56:54,481 [DEBUG][       Thread-605372][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:56:54,481 [DEBUG][       Thread-605372][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:56:54,481 [DEBUG][       Thread-605372][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:56:54,481 [DEBUG][       Thread-605372][   transport.py][1871] : client lang: <none>
2025-07-01 12:56:54,481 [DEBUG][       Thread-605372][   transport.py][1871] : server lang: <none>
2025-07-01 12:56:54,481 [DEBUG][       Thread-605372][   transport.py][1871] : kex follows: False
2025-07-01 12:56:54,481 [DEBUG][       Thread-605372][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:56:54,481 [DEBUG][       Thread-605372][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:56:54,481 [DEBUG][       Thread-605372][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:56:54,481 [DEBUG][       Thread-605372][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:56:54,482 [DEBUG][       Thread-605372][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:56:54,482 [DEBUG][       Thread-605372][   transport.py][1871] : Compression: none
2025-07-01 12:56:54,482 [DEBUG][       Thread-605372][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:56:54,501 [DEBUG][       Thread-605372][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:56:54,501 [DEBUG][       Thread-605372][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:56:54,502 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:56:54,502 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:56:54,502 [DEBUG][       Thread-605372][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:56:54,543 [DEBUG][       Thread-605372][   transport.py][1871] : userauth is OK
2025-07-01 12:56:54,567 [ INFO][       Thread-605372][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:56:54,567 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:56:55,380 [DEBUG][       Thread-605372][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:56:55,380 [DEBUG][       Thread-605372][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:56:55,421 [DEBUG][       Thread-605372][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:56:55,421 [DEBUG][       Thread-605372][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:56:55,424 [DEBUG][       Thread-605372][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:56:55,432 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:56:55,433 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:56:55,435 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:56:55,437 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:56:55,442 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:56:55,443 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:56:55,444 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:56:55,444 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:56:55,444 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.454457 -999.00  +12.70  32.64     52   +3.10 1 1 2 1 1   888    0 9.99 12.13 ----- 39.9 32.6 23.9 48.8 15.8 -24.2 14.9 -24.5 14.8 -23.0 15.6 -22.4
2025-07-01 12:56:55,445 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:56:55,445 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:56:55,445 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.454457
2025-07-01 12:56:55,445 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:56:55,446 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:56:55,446 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:56:55,446 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:56:55,446 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:56:55,446 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:56:26', tmtdew=10.99, humidity=47.3, cloud=0.0, wind=34.79, temperature=12.8, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:54:25.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:56:55,447 [DEBUG][       Thread-605372][   transport.py][1871] : EOF in transport thread
2025-07-01 12:56:55,530 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:56:55,541 [DEBUG][       Thread-605375][   transport.py][1871] : starting thread (client mode): 0x8104520
2025-07-01 12:56:55,542 [DEBUG][       Thread-605375][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:56:55,557 [DEBUG][       Thread-605375][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:56:55,557 [ INFO][       Thread-605375][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:56:55,565 [DEBUG][       Thread-605375][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:56:55,565 [DEBUG][       Thread-605375][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:56:55,565 [DEBUG][       Thread-605375][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:56:55,565 [DEBUG][       Thread-605375][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:56:55,565 [DEBUG][       Thread-605375][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:56:55,565 [DEBUG][       Thread-605375][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:56:55,565 [DEBUG][       Thread-605375][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:56:55,565 [DEBUG][       Thread-605375][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:56:55,565 [DEBUG][       Thread-605375][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:56:55,565 [DEBUG][       Thread-605375][   transport.py][1871] : client lang: <none>
2025-07-01 12:56:55,565 [DEBUG][       Thread-605375][   transport.py][1871] : server lang: <none>
2025-07-01 12:56:55,565 [DEBUG][       Thread-605375][   transport.py][1871] : kex follows: False
2025-07-01 12:56:55,565 [DEBUG][       Thread-605375][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:56:55,565 [DEBUG][       Thread-605375][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:56:55,565 [DEBUG][       Thread-605375][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:56:55,565 [DEBUG][       Thread-605375][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:56:55,566 [DEBUG][       Thread-605375][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:56:55,566 [DEBUG][       Thread-605375][   transport.py][1871] : Compression: none
2025-07-01 12:56:55,566 [DEBUG][       Thread-605375][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:56:55,623 [DEBUG][       Thread-605375][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:56:55,623 [DEBUG][       Thread-605375][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:56:55,624 [DEBUG][       Thread-605375][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:56:55,624 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:56:55,625 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:56:55,682 [DEBUG][       Thread-605375][   transport.py][1871] : userauth is OK
2025-07-01 12:56:55,682 [DEBUG][       Thread-605375][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:56:55,683 [DEBUG][       Thread-605375][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:56:55,683 [DEBUG][       Thread-605375][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:56:55,683 [DEBUG][       Thread-605375][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:56:55,701 [ INFO][       Thread-605375][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:56:55,702 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:56:55,702 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:56:56,684 [DEBUG][       Thread-605375][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:56:56,685 [DEBUG][       Thread-605375][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:56:56,739 [DEBUG][       Thread-605375][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:56:56,739 [DEBUG][       Thread-605375][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:56:56,751 [DEBUG][       Thread-605375][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:56:56,760 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:56:56,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-07-01 12:56:56,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-07-01 12:56:56,778 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:56:56,778 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:56:56,779 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:56:56,787 [DEBUG][       Thread-605375][   transport.py][1871] : EOF in transport thread
2025-07-01 12:57:02,268 [DEBUG][Thread-605377 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:57:06,788 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:57:06,788 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:57:06,788 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:57:06,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-07-01 12:57:07,312 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 56, 58), 10.95, 47.43, 0.0, 30.98, 12.82, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:57:07,312 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:56:58
2025-07-01 12:57:07,401 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:57:07,405 [DEBUG][       Thread-605378][   transport.py][1871] : starting thread (client mode): 0x81db250
2025-07-01 12:57:07,405 [DEBUG][       Thread-605378][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:57:07,425 [DEBUG][       Thread-605378][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:57:07,426 [ INFO][       Thread-605378][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:57:07,428 [DEBUG][       Thread-605378][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:57:07,428 [DEBUG][       Thread-605378][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:57:07,428 [DEBUG][       Thread-605378][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:57:07,428 [DEBUG][       Thread-605378][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:57:07,428 [DEBUG][       Thread-605378][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:57:07,428 [DEBUG][       Thread-605378][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:57:07,428 [DEBUG][       Thread-605378][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:57:07,428 [DEBUG][       Thread-605378][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:57:07,428 [DEBUG][       Thread-605378][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:57:07,428 [DEBUG][       Thread-605378][   transport.py][1871] : client lang: <none>
2025-07-01 12:57:07,428 [DEBUG][       Thread-605378][   transport.py][1871] : server lang: <none>
2025-07-01 12:57:07,428 [DEBUG][       Thread-605378][   transport.py][1871] : kex follows: False
2025-07-01 12:57:07,428 [DEBUG][       Thread-605378][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:57:07,428 [DEBUG][       Thread-605378][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:57:07,428 [DEBUG][       Thread-605378][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:57:07,428 [DEBUG][       Thread-605378][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:57:07,428 [DEBUG][       Thread-605378][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:57:07,428 [DEBUG][       Thread-605378][   transport.py][1871] : Compression: none
2025-07-01 12:57:07,428 [DEBUG][       Thread-605378][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:57:07,436 [DEBUG][       Thread-605378][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:57:07,436 [DEBUG][       Thread-605378][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:57:07,436 [DEBUG][       Thread-605378][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:57:07,436 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:57:07,436 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:57:07,437 [DEBUG][       Thread-605378][   transport.py][1871] : userauth is OK
2025-07-01 12:57:07,449 [ INFO][       Thread-605378][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:57:07,449 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:57:08,263 [DEBUG][       Thread-605378][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:57:08,263 [DEBUG][       Thread-605378][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:57:08,305 [DEBUG][       Thread-605378][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:57:08,305 [DEBUG][       Thread-605378][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:57:08,308 [DEBUG][       Thread-605378][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:57:08,320 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:57:08,320 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:57:08,323 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:57:08,325 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:57:08,330 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:57:08,332 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:57:08,333 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:57:08,334 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:57:08,334 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.454457 -999.00  +12.70  32.64     52   +3.10 1 1 2 1 1   888    0 9.99 12.13 ----- 39.9 32.6 23.9 48.8 15.8 -24.2 14.9 -24.5 14.8 -23.0 15.6 -22.4
2025-07-01 12:57:08,334 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:57:08,334 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:57:08,334 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.454457
2025-07-01 12:57:08,335 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:57:08,335 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:57:08,336 [DEBUG][       Thread-605378][   transport.py][1871] : EOF in transport thread
2025-07-01 12:57:08,336 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:57:08,336 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:57:08,337 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:57:08,337 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:56:58', tmtdew=10.95, humidity=47.43, cloud=0.0, wind=30.98, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:54:25.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:57:08,429 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:57:08,439 [DEBUG][       Thread-605381][   transport.py][1871] : starting thread (client mode): 0x83c8520
2025-07-01 12:57:08,439 [DEBUG][       Thread-605381][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:57:08,454 [DEBUG][       Thread-605381][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:57:08,454 [ INFO][       Thread-605381][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:57:08,462 [DEBUG][       Thread-605381][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:57:08,462 [DEBUG][       Thread-605381][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:57:08,462 [DEBUG][       Thread-605381][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:57:08,462 [DEBUG][       Thread-605381][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:57:08,462 [DEBUG][       Thread-605381][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:57:08,462 [DEBUG][       Thread-605381][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:57:08,462 [DEBUG][       Thread-605381][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:57:08,462 [DEBUG][       Thread-605381][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:57:08,462 [DEBUG][       Thread-605381][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:57:08,462 [DEBUG][       Thread-605381][   transport.py][1871] : client lang: <none>
2025-07-01 12:57:08,462 [DEBUG][       Thread-605381][   transport.py][1871] : server lang: <none>
2025-07-01 12:57:08,462 [DEBUG][       Thread-605381][   transport.py][1871] : kex follows: False
2025-07-01 12:57:08,462 [DEBUG][       Thread-605381][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:57:08,462 [DEBUG][       Thread-605381][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:57:08,462 [DEBUG][       Thread-605381][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:57:08,462 [DEBUG][       Thread-605381][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:57:08,462 [DEBUG][       Thread-605381][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:57:08,462 [DEBUG][       Thread-605381][   transport.py][1871] : Compression: none
2025-07-01 12:57:08,463 [DEBUG][       Thread-605381][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:57:08,516 [DEBUG][       Thread-605381][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:57:08,517 [DEBUG][       Thread-605381][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:57:08,517 [DEBUG][       Thread-605381][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:57:08,517 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:57:08,517 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:57:08,574 [DEBUG][       Thread-605381][   transport.py][1871] : userauth is OK
2025-07-01 12:57:08,574 [DEBUG][       Thread-605381][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:57:08,574 [DEBUG][       Thread-605381][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:57:08,574 [DEBUG][       Thread-605381][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:57:08,574 [DEBUG][       Thread-605381][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:57:08,588 [ INFO][       Thread-605381][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:57:08,588 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:57:08,588 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:57:09,592 [DEBUG][       Thread-605381][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:57:09,592 [DEBUG][       Thread-605381][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:57:09,640 [DEBUG][       Thread-605381][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:57:09,640 [DEBUG][       Thread-605381][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:57:09,649 [DEBUG][       Thread-605381][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:57:09,657 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:57:09,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-07-01 12:57:09,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-07-01 12:57:09,684 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:57:09,684 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:57:09,685 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:57:09,696 [DEBUG][       Thread-605381][   transport.py][1871] : EOF in transport thread
2025-07-01 12:57:11,287 [DEBUG][Thread-605383 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:57:19,695 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:57:19,696 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:57:19,696 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:57:19,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-07-01 12:57:20,145 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:57:20,146 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:57:20,199 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 56, 58), 10.95, 47.43, 0.0, 30.98, 12.82, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:57:20,199 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:56:58
2025-07-01 12:57:20,284 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:57:20,289 [DEBUG][       Thread-605384][   transport.py][1871] : starting thread (client mode): 0x81da9b0
2025-07-01 12:57:20,289 [DEBUG][       Thread-605384][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:57:20,310 [DEBUG][       Thread-605384][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:57:20,310 [ INFO][       Thread-605384][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:57:20,312 [DEBUG][       Thread-605384][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:57:20,312 [DEBUG][       Thread-605384][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:57:20,312 [DEBUG][       Thread-605384][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:57:20,312 [DEBUG][       Thread-605384][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:57:20,312 [DEBUG][       Thread-605384][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:57:20,312 [DEBUG][       Thread-605384][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:57:20,312 [DEBUG][       Thread-605384][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:57:20,312 [DEBUG][       Thread-605384][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:57:20,312 [DEBUG][       Thread-605384][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:57:20,312 [DEBUG][       Thread-605384][   transport.py][1871] : client lang: <none>
2025-07-01 12:57:20,312 [DEBUG][       Thread-605384][   transport.py][1871] : server lang: <none>
2025-07-01 12:57:20,312 [DEBUG][       Thread-605384][   transport.py][1871] : kex follows: False
2025-07-01 12:57:20,312 [DEBUG][       Thread-605384][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:57:20,312 [DEBUG][       Thread-605384][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:57:20,312 [DEBUG][       Thread-605384][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:57:20,312 [DEBUG][       Thread-605384][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:57:20,312 [DEBUG][       Thread-605384][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:57:20,312 [DEBUG][       Thread-605384][   transport.py][1871] : Compression: none
2025-07-01 12:57:20,312 [DEBUG][       Thread-605384][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:57:20,321 [DEBUG][Thread-605386 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:57:20,329 [DEBUG][       Thread-605384][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:57:20,329 [DEBUG][       Thread-605384][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:57:20,329 [DEBUG][       Thread-605384][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:57:20,330 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:57:20,330 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:57:20,331 [DEBUG][       Thread-605384][   transport.py][1871] : userauth is OK
2025-07-01 12:57:20,343 [ INFO][       Thread-605384][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:57:20,344 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:57:21,136 [DEBUG][       Thread-605384][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:57:21,136 [DEBUG][       Thread-605384][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:57:21,177 [DEBUG][       Thread-605384][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:57:21,177 [DEBUG][       Thread-605384][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:57:21,180 [DEBUG][       Thread-605384][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:57:21,192 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:57:21,193 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:57:21,195 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:57:21,197 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:57:21,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:57:21,205 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:57:21,206 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:57:21,206 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:57:21,207 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.454457 -999.00  +12.70  32.64     52   +3.10 1 1 2 1 1   888    0 9.99 12.13 ----- 39.9 32.6 23.9 48.8 15.8 -24.2 14.9 -24.5 14.8 -23.0 15.6 -22.4
2025-07-01 12:57:21,207 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:57:21,207 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:57:21,207 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.454457
2025-07-01 12:57:21,207 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:57:21,208 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:57:21,208 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:57:21,208 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:57:21,208 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:57:21,208 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:56:58', tmtdew=10.95, humidity=47.43, cloud=0.0, wind=30.98, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:54:25.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:57:21,209 [DEBUG][       Thread-605384][   transport.py][1871] : EOF in transport thread
2025-07-01 12:57:21,292 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:57:21,303 [DEBUG][       Thread-605388][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 12:57:21,304 [DEBUG][       Thread-605388][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:57:21,320 [DEBUG][       Thread-605388][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:57:21,320 [ INFO][       Thread-605388][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:57:21,327 [DEBUG][       Thread-605388][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:57:21,327 [DEBUG][       Thread-605388][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:57:21,327 [DEBUG][       Thread-605388][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:57:21,327 [DEBUG][       Thread-605388][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:57:21,327 [DEBUG][       Thread-605388][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:57:21,328 [DEBUG][       Thread-605388][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:57:21,328 [DEBUG][       Thread-605388][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:57:21,328 [DEBUG][       Thread-605388][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:57:21,328 [DEBUG][       Thread-605388][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:57:21,328 [DEBUG][       Thread-605388][   transport.py][1871] : client lang: <none>
2025-07-01 12:57:21,328 [DEBUG][       Thread-605388][   transport.py][1871] : server lang: <none>
2025-07-01 12:57:21,328 [DEBUG][       Thread-605388][   transport.py][1871] : kex follows: False
2025-07-01 12:57:21,328 [DEBUG][       Thread-605388][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:57:21,328 [DEBUG][       Thread-605388][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:57:21,328 [DEBUG][       Thread-605388][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:57:21,328 [DEBUG][       Thread-605388][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:57:21,328 [DEBUG][       Thread-605388][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:57:21,328 [DEBUG][       Thread-605388][   transport.py][1871] : Compression: none
2025-07-01 12:57:21,328 [DEBUG][       Thread-605388][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:57:21,386 [DEBUG][       Thread-605388][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:57:21,387 [DEBUG][       Thread-605388][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:57:21,387 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:57:21,388 [DEBUG][       Thread-605388][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:57:21,388 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:57:21,444 [DEBUG][       Thread-605388][   transport.py][1871] : userauth is OK
2025-07-01 12:57:21,445 [DEBUG][       Thread-605388][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:57:21,445 [DEBUG][       Thread-605388][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:57:21,445 [DEBUG][       Thread-605388][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:57:21,445 [DEBUG][       Thread-605388][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:57:21,464 [ INFO][       Thread-605388][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:57:21,465 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:57:21,465 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:57:22,495 [DEBUG][       Thread-605388][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:57:22,495 [DEBUG][       Thread-605388][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:57:22,544 [DEBUG][       Thread-605388][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:57:22,544 [DEBUG][       Thread-605388][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:57:22,554 [DEBUG][       Thread-605388][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:57:22,563 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:57:22,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')
2025-07-01 12:57:22,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-07-01 12:57:22,581 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:57:22,581 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:57:22,582 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:57:22,590 [DEBUG][       Thread-605388][   transport.py][1871] : EOF in transport thread
2025-07-01 12:57:29,343 [DEBUG][Thread-605390 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:57:30,627 [DEBUG][Thread-605391 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:57:32,592 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:57:32,592 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:57:32,592 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:57:32,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-07-01 12:57:33,091 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 56, 58), 10.95, 47.43, 0.0, 30.98, 12.82, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:57:33,091 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:56:58
2025-07-01 12:57:33,176 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:57:33,187 [DEBUG][       Thread-605392][   transport.py][1871] : starting thread (client mode): 0x81d9480
2025-07-01 12:57:33,187 [DEBUG][       Thread-605392][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:57:33,209 [DEBUG][       Thread-605392][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:57:33,209 [ INFO][       Thread-605392][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:57:33,216 [DEBUG][       Thread-605392][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:57:33,216 [DEBUG][       Thread-605392][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:57:33,216 [DEBUG][       Thread-605392][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:57:33,216 [DEBUG][       Thread-605392][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:57:33,216 [DEBUG][       Thread-605392][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:57:33,216 [DEBUG][       Thread-605392][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:57:33,216 [DEBUG][       Thread-605392][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:57:33,216 [DEBUG][       Thread-605392][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:57:33,217 [DEBUG][       Thread-605392][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:57:33,217 [DEBUG][       Thread-605392][   transport.py][1871] : client lang: <none>
2025-07-01 12:57:33,217 [DEBUG][       Thread-605392][   transport.py][1871] : server lang: <none>
2025-07-01 12:57:33,217 [DEBUG][       Thread-605392][   transport.py][1871] : kex follows: False
2025-07-01 12:57:33,217 [DEBUG][       Thread-605392][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:57:33,217 [DEBUG][       Thread-605392][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:57:33,217 [DEBUG][       Thread-605392][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:57:33,217 [DEBUG][       Thread-605392][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:57:33,217 [DEBUG][       Thread-605392][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:57:33,217 [DEBUG][       Thread-605392][   transport.py][1871] : Compression: none
2025-07-01 12:57:33,217 [DEBUG][       Thread-605392][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:57:33,237 [DEBUG][       Thread-605392][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:57:33,238 [DEBUG][       Thread-605392][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:57:33,238 [DEBUG][       Thread-605392][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:57:33,239 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:57:33,239 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:57:33,245 [DEBUG][       Thread-605392][   transport.py][1871] : userauth is OK
2025-07-01 12:57:33,269 [ INFO][       Thread-605392][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:57:33,270 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:57:34,069 [DEBUG][       Thread-605392][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:57:34,069 [DEBUG][       Thread-605392][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:57:34,121 [DEBUG][       Thread-605392][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:57:34,121 [DEBUG][       Thread-605392][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:57:34,124 [DEBUG][       Thread-605392][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:57:34,138 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:57:34,138 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:57:34,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:57:34,141 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:57:34,150 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:57:34,163 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:57:34,163 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:57:34,164 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:57:34,164 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.454457 -999.00  +12.70  32.64     52   +3.10 1 1 2 1 1   888    0 9.99 12.13 ----- 39.9 32.6 23.9 48.8 15.8 -24.2 14.9 -24.5 14.8 -23.0 15.6 -22.4
2025-07-01 12:57:34,164 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:57:34,164 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:57:34,164 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.454457
2025-07-01 12:57:34,164 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:57:34,165 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:57:34,165 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:57:34,165 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:57:34,165 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:57:34,165 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:56:58', tmtdew=10.95, humidity=47.43, cloud=0.0, wind=30.98, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:54:25.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:57:34,166 [DEBUG][       Thread-605392][   transport.py][1871] : EOF in transport thread
2025-07-01 12:57:34,250 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:57:34,262 [DEBUG][       Thread-605395][   transport.py][1871] : starting thread (client mode): 0x81067d0
2025-07-01 12:57:34,262 [DEBUG][       Thread-605395][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:57:34,278 [DEBUG][       Thread-605395][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:57:34,278 [ INFO][       Thread-605395][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:57:34,286 [DEBUG][       Thread-605395][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:57:34,286 [DEBUG][       Thread-605395][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:57:34,286 [DEBUG][       Thread-605395][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:57:34,286 [DEBUG][       Thread-605395][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:57:34,286 [DEBUG][       Thread-605395][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:57:34,286 [DEBUG][       Thread-605395][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:57:34,286 [DEBUG][       Thread-605395][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:57:34,286 [DEBUG][       Thread-605395][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:57:34,286 [DEBUG][       Thread-605395][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:57:34,287 [DEBUG][       Thread-605395][   transport.py][1871] : client lang: <none>
2025-07-01 12:57:34,287 [DEBUG][       Thread-605395][   transport.py][1871] : server lang: <none>
2025-07-01 12:57:34,287 [DEBUG][       Thread-605395][   transport.py][1871] : kex follows: False
2025-07-01 12:57:34,287 [DEBUG][       Thread-605395][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:57:34,287 [DEBUG][       Thread-605395][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:57:34,287 [DEBUG][       Thread-605395][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:57:34,287 [DEBUG][       Thread-605395][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:57:34,287 [DEBUG][       Thread-605395][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:57:34,287 [DEBUG][       Thread-605395][   transport.py][1871] : Compression: none
2025-07-01 12:57:34,288 [DEBUG][       Thread-605395][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:57:34,343 [DEBUG][       Thread-605395][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:57:34,344 [DEBUG][       Thread-605395][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:57:34,345 [DEBUG][       Thread-605395][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:57:34,345 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:57:34,346 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:57:34,403 [DEBUG][       Thread-605395][   transport.py][1871] : userauth is OK
2025-07-01 12:57:34,403 [DEBUG][       Thread-605395][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:57:34,403 [DEBUG][       Thread-605395][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:57:34,403 [DEBUG][       Thread-605395][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:57:34,404 [DEBUG][       Thread-605395][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:57:34,431 [ INFO][       Thread-605395][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:57:34,431 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:57:34,432 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:57:35,545 [DEBUG][       Thread-605395][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:57:35,546 [DEBUG][       Thread-605395][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:57:35,595 [DEBUG][       Thread-605395][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:57:35,596 [DEBUG][       Thread-605395][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:57:35,605 [DEBUG][       Thread-605395][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:57:35,614 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:57: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-07-01 12:57:35,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-07-01 12:57:35,632 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:57:35,632 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:57:35,632 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:57:35,640 [DEBUG][       Thread-605395][   transport.py][1871] : EOF in transport thread
2025-07-01 12:57:38,364 [DEBUG][Thread-605397 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:57:45,636 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:57:45,636 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:57:45,636 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:57:45,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-07-01 12:57:46,125 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 57, 30), 11.0, 47.3, 0.0, 32.57, 12.92, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:57:46,125 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:57:30
2025-07-01 12:57:46,210 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:57:46,214 [DEBUG][       Thread-605398][   transport.py][1871] : starting thread (client mode): 0x75aace0
2025-07-01 12:57:46,215 [DEBUG][       Thread-605398][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:57:46,235 [DEBUG][       Thread-605398][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:57:46,235 [ INFO][       Thread-605398][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:57:46,236 [DEBUG][       Thread-605398][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:57:46,236 [DEBUG][       Thread-605398][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:57:46,236 [DEBUG][       Thread-605398][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:57:46,236 [DEBUG][       Thread-605398][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:57:46,236 [DEBUG][       Thread-605398][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:57:46,236 [DEBUG][       Thread-605398][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:57:46,236 [DEBUG][       Thread-605398][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:57:46,236 [DEBUG][       Thread-605398][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:57:46,236 [DEBUG][       Thread-605398][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:57:46,236 [DEBUG][       Thread-605398][   transport.py][1871] : client lang: <none>
2025-07-01 12:57:46,236 [DEBUG][       Thread-605398][   transport.py][1871] : server lang: <none>
2025-07-01 12:57:46,236 [DEBUG][       Thread-605398][   transport.py][1871] : kex follows: False
2025-07-01 12:57:46,236 [DEBUG][       Thread-605398][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:57:46,236 [DEBUG][       Thread-605398][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:57:46,236 [DEBUG][       Thread-605398][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:57:46,236 [DEBUG][       Thread-605398][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:57:46,236 [DEBUG][       Thread-605398][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:57:46,236 [DEBUG][       Thread-605398][   transport.py][1871] : Compression: none
2025-07-01 12:57:46,236 [DEBUG][       Thread-605398][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:57:46,254 [DEBUG][       Thread-605398][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:57:46,254 [DEBUG][       Thread-605398][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:57:46,254 [DEBUG][       Thread-605398][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:57:46,255 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:57:46,255 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:57:46,255 [DEBUG][       Thread-605398][   transport.py][1871] : userauth is OK
2025-07-01 12:57:46,280 [ INFO][       Thread-605398][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:57:46,280 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:57:47,135 [DEBUG][       Thread-605398][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:57:47,136 [DEBUG][       Thread-605398][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:57:47,184 [DEBUG][       Thread-605398][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:57:47,184 [DEBUG][       Thread-605398][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:57:47,190 [DEBUG][       Thread-605398][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:57:47,204 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:57:47,205 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:57:47,210 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:57:47,215 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:57:47,230 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:57:47,234 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:57:47,235 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:57:47,235 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:57:47,236 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.454457 -999.00  +12.70  32.64     52   +3.10 1 1 2 1 1   888    0 9.99 12.13 ----- 39.9 32.6 23.9 48.8 15.8 -24.2 14.9 -24.5 14.8 -23.0 15.6 -22.4
2025-07-01 12:57:47,236 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:57:47,236 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:57:47,236 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.454457
2025-07-01 12:57:47,236 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:57:47,237 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:57:47,237 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:57:47,237 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:57:47,237 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:57:47,237 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:57:30', tmtdew=11.0, humidity=47.3, cloud=0.0, wind=32.57, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:54:25.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:57:47,239 [DEBUG][       Thread-605398][   transport.py][1871] : EOF in transport thread
2025-07-01 12:57:47,323 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:57:47,332 [DEBUG][       Thread-605401][   transport.py][1871] : starting thread (client mode): 0x8156980
2025-07-01 12:57:47,332 [DEBUG][       Thread-605401][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:57:47,348 [DEBUG][       Thread-605401][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:57:47,348 [ INFO][       Thread-605401][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:57:47,358 [DEBUG][       Thread-605401][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:57:47,358 [DEBUG][       Thread-605401][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:57:47,358 [DEBUG][       Thread-605401][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:57:47,358 [DEBUG][       Thread-605401][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:57:47,358 [DEBUG][       Thread-605401][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:57:47,358 [DEBUG][       Thread-605401][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:57:47,358 [DEBUG][       Thread-605401][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:57:47,358 [DEBUG][       Thread-605401][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:57:47,359 [DEBUG][       Thread-605401][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:57:47,359 [DEBUG][       Thread-605401][   transport.py][1871] : client lang: <none>
2025-07-01 12:57:47,359 [DEBUG][       Thread-605401][   transport.py][1871] : server lang: <none>
2025-07-01 12:57:47,359 [DEBUG][       Thread-605401][   transport.py][1871] : kex follows: False
2025-07-01 12:57:47,359 [DEBUG][       Thread-605401][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:57:47,359 [DEBUG][       Thread-605401][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:57:47,359 [DEBUG][       Thread-605401][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:57:47,359 [DEBUG][       Thread-605401][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:57:47,359 [DEBUG][       Thread-605401][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:57:47,359 [DEBUG][       Thread-605401][   transport.py][1871] : Compression: none
2025-07-01 12:57:47,359 [DEBUG][       Thread-605401][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:57:47,383 [DEBUG][Thread-605403 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:57:47,418 [DEBUG][       Thread-605401][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:57:47,418 [DEBUG][       Thread-605401][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:57:47,419 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:57:47,419 [DEBUG][       Thread-605401][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:57:47,420 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:57:47,476 [DEBUG][       Thread-605401][   transport.py][1871] : userauth is OK
2025-07-01 12:57:47,476 [DEBUG][       Thread-605401][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:57:47,476 [DEBUG][       Thread-605401][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:57:47,476 [DEBUG][       Thread-605401][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:57:47,476 [DEBUG][       Thread-605401][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:57:47,495 [ INFO][       Thread-605401][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:57:47,495 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:57:47,496 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:57:48,527 [DEBUG][       Thread-605401][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:57:48,527 [DEBUG][       Thread-605401][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:57:48,576 [DEBUG][       Thread-605401][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:57:48,576 [DEBUG][       Thread-605401][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:57:48,586 [DEBUG][       Thread-605401][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:57:48,594 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:57:48,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-07-01 12:57:48,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-07-01 12:57:48,613 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:57:48,613 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:57:48,613 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:57:48,621 [DEBUG][       Thread-605401][   transport.py][1871] : EOF in transport thread
2025-07-01 12:57:56,427 [DEBUG][Thread-605404 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:57:58,624 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:57:58,624 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:57:58,624 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:57: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-07-01 12:57:59,114 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 57, 30), 11.0, 47.3, 0.0, 32.57, 12.92, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:57:59,114 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:57:30
2025-07-01 12:57:59,199 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:57:59,205 [DEBUG][       Thread-605405][   transport.py][1871] : starting thread (client mode): 0x81da1a0
2025-07-01 12:57:59,205 [DEBUG][       Thread-605405][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:57:59,234 [DEBUG][       Thread-605405][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:57:59,234 [ INFO][       Thread-605405][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:57:59,237 [DEBUG][       Thread-605405][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:57:59,238 [DEBUG][       Thread-605405][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:57:59,238 [DEBUG][       Thread-605405][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:57:59,238 [DEBUG][       Thread-605405][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:57:59,238 [DEBUG][       Thread-605405][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:57:59,238 [DEBUG][       Thread-605405][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:57:59,238 [DEBUG][       Thread-605405][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:57:59,238 [DEBUG][       Thread-605405][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:57:59,238 [DEBUG][       Thread-605405][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:57:59,238 [DEBUG][       Thread-605405][   transport.py][1871] : client lang: <none>
2025-07-01 12:57:59,238 [DEBUG][       Thread-605405][   transport.py][1871] : server lang: <none>
2025-07-01 12:57:59,238 [DEBUG][       Thread-605405][   transport.py][1871] : kex follows: False
2025-07-01 12:57:59,238 [DEBUG][       Thread-605405][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:57:59,238 [DEBUG][       Thread-605405][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:57:59,238 [DEBUG][       Thread-605405][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:57:59,238 [DEBUG][       Thread-605405][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:57:59,238 [DEBUG][       Thread-605405][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:57:59,238 [DEBUG][       Thread-605405][   transport.py][1871] : Compression: none
2025-07-01 12:57:59,238 [DEBUG][       Thread-605405][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:57:59,248 [DEBUG][       Thread-605405][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:57:59,249 [DEBUG][       Thread-605405][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:57:59,249 [DEBUG][       Thread-605405][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:57:59,249 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:57:59,249 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:57:59,293 [DEBUG][       Thread-605405][   transport.py][1871] : userauth is OK
2025-07-01 12:57:59,318 [ INFO][       Thread-605405][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:57:59,318 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:58:00,195 [DEBUG][       Thread-605405][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:58:00,195 [DEBUG][       Thread-605405][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:58:00,238 [DEBUG][       Thread-605405][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:58:00,238 [DEBUG][       Thread-605405][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:58:00,241 [DEBUG][       Thread-605405][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:58:00,254 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:58:00,254 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:58:00,255 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:58:00,256 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:58:00,259 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:58:00,260 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:58:00,260 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:58:00,260 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:58:00,260 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.454457 -999.00  +12.70  32.64     52   +3.10 1 1 2 1 1   888    0 9.99 12.13 ----- 39.9 32.6 23.9 48.8 15.8 -24.2 14.9 -24.5 14.8 -23.0 15.6 -22.4
2025-07-01 12:58:00,260 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:58:00,260 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:58:00,260 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.454457
2025-07-01 12:58:00,261 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:58:00,261 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:58:00,261 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:58:00,261 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:58:00,261 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:58:00,261 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:57:30', tmtdew=11.0, humidity=47.3, cloud=0.0, wind=32.57, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:54:25.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:58:00,261 [DEBUG][       Thread-605405][   transport.py][1871] : EOF in transport thread
2025-07-01 12:58:00,333 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:58:00,345 [DEBUG][       Thread-605408][   transport.py][1871] : starting thread (client mode): 0x83c8070
2025-07-01 12:58:00,345 [DEBUG][       Thread-605408][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:58:00,359 [DEBUG][       Thread-605408][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:58:00,359 [ INFO][       Thread-605408][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:58:00,367 [DEBUG][       Thread-605408][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:58:00,367 [DEBUG][       Thread-605408][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:58:00,367 [DEBUG][       Thread-605408][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:58:00,367 [DEBUG][       Thread-605408][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:58:00,367 [DEBUG][       Thread-605408][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:58:00,367 [DEBUG][       Thread-605408][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:58:00,367 [DEBUG][       Thread-605408][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:58:00,367 [DEBUG][       Thread-605408][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:58:00,367 [DEBUG][       Thread-605408][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:58:00,367 [DEBUG][       Thread-605408][   transport.py][1871] : client lang: <none>
2025-07-01 12:58:00,367 [DEBUG][       Thread-605408][   transport.py][1871] : server lang: <none>
2025-07-01 12:58:00,367 [DEBUG][       Thread-605408][   transport.py][1871] : kex follows: False
2025-07-01 12:58:00,367 [DEBUG][       Thread-605408][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:58:00,368 [DEBUG][       Thread-605408][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:58:00,368 [DEBUG][       Thread-605408][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:58:00,368 [DEBUG][       Thread-605408][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:58:00,368 [DEBUG][       Thread-605408][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:58:00,368 [DEBUG][       Thread-605408][   transport.py][1871] : Compression: none
2025-07-01 12:58:00,368 [DEBUG][       Thread-605408][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:58:00,426 [DEBUG][       Thread-605408][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:58:00,427 [DEBUG][       Thread-605408][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:58:00,427 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:58:00,428 [DEBUG][       Thread-605408][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:58:00,429 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:58:00,483 [DEBUG][       Thread-605408][   transport.py][1871] : userauth is OK
2025-07-01 12:58:00,483 [DEBUG][       Thread-605408][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:58:00,483 [DEBUG][       Thread-605408][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:58:00,483 [DEBUG][       Thread-605408][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:58:00,483 [DEBUG][       Thread-605408][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:58:00,502 [ INFO][       Thread-605408][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:58:00,502 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:58:00,503 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:58:01,509 [DEBUG][       Thread-605408][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:58:01,510 [DEBUG][       Thread-605408][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:58:01,560 [DEBUG][       Thread-605408][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:58:01,560 [DEBUG][       Thread-605408][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:58:01,569 [DEBUG][       Thread-605408][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:58:01,578 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:58:01,578 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 12:58:01,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-07-01 12:58:01,595 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:58:01,596 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:58:01,596 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:58:01,604 [DEBUG][       Thread-605408][   transport.py][1871] : EOF in transport thread
2025-07-01 12:58:05,448 [DEBUG][Thread-605410 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:58:11,604 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:58:11,604 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:58:11,604 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:58:11,607 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 12:58:12,100 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 58, 2), 11.07, 47.09, 0.0, 30.19, 12.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:58:12,100 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:58:02
2025-07-01 12:58:12,184 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:58:12,189 [DEBUG][       Thread-605411][   transport.py][1871] : starting thread (client mode): 0x8105060
2025-07-01 12:58:12,189 [DEBUG][       Thread-605411][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:58:12,209 [DEBUG][       Thread-605411][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:58:12,209 [ INFO][       Thread-605411][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:58:12,210 [DEBUG][       Thread-605411][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:58:12,210 [DEBUG][       Thread-605411][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:58:12,210 [DEBUG][       Thread-605411][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:58:12,210 [DEBUG][       Thread-605411][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:58:12,211 [DEBUG][       Thread-605411][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:58:12,211 [DEBUG][       Thread-605411][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:58:12,211 [DEBUG][       Thread-605411][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:58:12,211 [DEBUG][       Thread-605411][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:58:12,211 [DEBUG][       Thread-605411][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:58:12,211 [DEBUG][       Thread-605411][   transport.py][1871] : client lang: <none>
2025-07-01 12:58:12,211 [DEBUG][       Thread-605411][   transport.py][1871] : server lang: <none>
2025-07-01 12:58:12,211 [DEBUG][       Thread-605411][   transport.py][1871] : kex follows: False
2025-07-01 12:58:12,211 [DEBUG][       Thread-605411][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:58:12,211 [DEBUG][       Thread-605411][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:58:12,211 [DEBUG][       Thread-605411][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:58:12,211 [DEBUG][       Thread-605411][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:58:12,211 [DEBUG][       Thread-605411][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:58:12,211 [DEBUG][       Thread-605411][   transport.py][1871] : Compression: none
2025-07-01 12:58:12,211 [DEBUG][       Thread-605411][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:58:12,228 [DEBUG][       Thread-605411][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:58:12,228 [DEBUG][       Thread-605411][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:58:12,229 [DEBUG][       Thread-605411][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:58:12,229 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:58:12,229 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:58:12,230 [DEBUG][       Thread-605411][   transport.py][1871] : userauth is OK
2025-07-01 12:58:12,256 [ INFO][       Thread-605411][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:58:12,256 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:58:12,905 [DEBUG][       Thread-605411][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:58:12,905 [DEBUG][       Thread-605411][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:58:12,949 [DEBUG][       Thread-605411][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:58:12,949 [DEBUG][       Thread-605411][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:58:12,952 [DEBUG][       Thread-605411][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:58:12,966 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:58:12,966 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:58:12,968 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:58:12,970 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:58:12,975 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:58:12,977 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:58:12,977 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:58:12,978 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:58:12,978 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.454457 -999.00  +12.70  32.64     52   +3.10 1 1 2 1 1   888    0 9.99 12.13 ----- 39.9 32.6 23.9 48.8 15.8 -24.2 14.9 -24.5 14.8 -23.0 15.6 -22.4
2025-07-01 12:58:12,978 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:58:12,978 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:58:12,978 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.454457
2025-07-01 12:58:12,979 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:58:12,979 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:58:12,979 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:58:12,980 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:58:12,980 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:58:12,980 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:58:02', tmtdew=11.07, humidity=47.09, cloud=0.0, wind=30.19, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:54:25.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:58:12,981 [DEBUG][       Thread-605411][   transport.py][1871] : EOF in transport thread
2025-07-01 12:58:13,063 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:58:13,073 [DEBUG][       Thread-605414][   transport.py][1871] : starting thread (client mode): 0x827d540
2025-07-01 12:58:13,073 [DEBUG][       Thread-605414][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:58:13,088 [DEBUG][       Thread-605414][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:58:13,088 [ INFO][       Thread-605414][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:58:13,095 [DEBUG][       Thread-605414][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:58:13,095 [DEBUG][       Thread-605414][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:58:13,095 [DEBUG][       Thread-605414][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:58:13,095 [DEBUG][       Thread-605414][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:58:13,095 [DEBUG][       Thread-605414][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:58:13,095 [DEBUG][       Thread-605414][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:58:13,096 [DEBUG][       Thread-605414][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:58:13,096 [DEBUG][       Thread-605414][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:58:13,096 [DEBUG][       Thread-605414][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:58:13,096 [DEBUG][       Thread-605414][   transport.py][1871] : client lang: <none>
2025-07-01 12:58:13,096 [DEBUG][       Thread-605414][   transport.py][1871] : server lang: <none>
2025-07-01 12:58:13,096 [DEBUG][       Thread-605414][   transport.py][1871] : kex follows: False
2025-07-01 12:58:13,096 [DEBUG][       Thread-605414][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:58:13,096 [DEBUG][       Thread-605414][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:58:13,096 [DEBUG][       Thread-605414][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:58:13,096 [DEBUG][       Thread-605414][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:58:13,096 [DEBUG][       Thread-605414][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:58:13,096 [DEBUG][       Thread-605414][   transport.py][1871] : Compression: none
2025-07-01 12:58:13,096 [DEBUG][       Thread-605414][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:58:13,155 [DEBUG][       Thread-605414][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:58:13,155 [DEBUG][       Thread-605414][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:58:13,156 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:58:13,157 [DEBUG][       Thread-605414][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:58:13,157 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:58:13,211 [DEBUG][       Thread-605414][   transport.py][1871] : userauth is OK
2025-07-01 12:58:13,211 [DEBUG][       Thread-605414][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:58:13,211 [DEBUG][       Thread-605414][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:58:13,211 [DEBUG][       Thread-605414][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:58:13,211 [DEBUG][       Thread-605414][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:58:13,230 [ INFO][       Thread-605414][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:58:13,231 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:58:13,231 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:58:14,238 [DEBUG][       Thread-605414][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:58:14,238 [DEBUG][       Thread-605414][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:58:14,288 [DEBUG][       Thread-605414][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:58:14,288 [DEBUG][       Thread-605414][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:58:14,297 [DEBUG][       Thread-605414][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:58:14,306 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:58:14,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-07-01 12:58:14,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') -> 00000000
2025-07-01 12:58:14,324 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:58:14,324 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:58:14,324 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:58:14,332 [DEBUG][       Thread-605414][   transport.py][1871] : EOF in transport thread
2025-07-01 12:58:14,469 [DEBUG][Thread-605416 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:58:20,284 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:58:20,284 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:58:23,505 [DEBUG][Thread-605417 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:58:24,332 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:58:24,332 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:58:24,332 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:58:24,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-07-01 12:58:24,814 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 58, 2), 11.07, 47.09, 0.0, 30.19, 12.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:58:24,814 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:58:02
2025-07-01 12:58:24,898 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:58:24,903 [DEBUG][       Thread-605418][   transport.py][1871] : starting thread (client mode): 0x8107850
2025-07-01 12:58:24,903 [DEBUG][       Thread-605418][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:58:24,923 [DEBUG][       Thread-605418][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:58:24,924 [ INFO][       Thread-605418][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:58:24,927 [DEBUG][       Thread-605418][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:58:24,927 [DEBUG][       Thread-605418][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:58:24,927 [DEBUG][       Thread-605418][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:58:24,927 [DEBUG][       Thread-605418][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:58:24,927 [DEBUG][       Thread-605418][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:58:24,927 [DEBUG][       Thread-605418][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:58:24,927 [DEBUG][       Thread-605418][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:58:24,927 [DEBUG][       Thread-605418][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:58:24,927 [DEBUG][       Thread-605418][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:58:24,927 [DEBUG][       Thread-605418][   transport.py][1871] : client lang: <none>
2025-07-01 12:58:24,927 [DEBUG][       Thread-605418][   transport.py][1871] : server lang: <none>
2025-07-01 12:58:24,927 [DEBUG][       Thread-605418][   transport.py][1871] : kex follows: False
2025-07-01 12:58:24,927 [DEBUG][       Thread-605418][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:58:24,928 [DEBUG][       Thread-605418][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:58:24,928 [DEBUG][       Thread-605418][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:58:24,928 [DEBUG][       Thread-605418][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:58:24,928 [DEBUG][       Thread-605418][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:58:24,928 [DEBUG][       Thread-605418][   transport.py][1871] : Compression: none
2025-07-01 12:58:24,928 [DEBUG][       Thread-605418][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:58:24,943 [DEBUG][       Thread-605418][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:58:24,943 [DEBUG][       Thread-605418][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:58:24,944 [DEBUG][       Thread-605418][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:58:24,944 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:58:24,944 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:58:24,946 [DEBUG][       Thread-605418][   transport.py][1871] : userauth is OK
2025-07-01 12:58:24,970 [ INFO][       Thread-605418][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:58:24,971 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:58:25,621 [DEBUG][       Thread-605418][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:58:25,621 [DEBUG][       Thread-605418][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:58:25,665 [DEBUG][       Thread-605418][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:58:25,665 [DEBUG][       Thread-605418][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:58:25,668 [DEBUG][       Thread-605418][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:58:25,681 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:58:25,681 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:58:25,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:58:25,685 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:58:25,691 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:58:25,693 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:58:25,693 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:58:25,694 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:58:25,694 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.454457 -999.00  +12.70  32.64     52   +3.10 1 1 2 1 1   888    0 9.99 12.13 ----- 39.9 32.6 23.9 48.8 15.8 -24.2 14.9 -24.5 14.8 -23.0 15.6 -22.4
2025-07-01 12:58:25,694 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:58:25,694 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:58:25,694 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.454457
2025-07-01 12:58:25,695 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:58:25,695 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:58:25,695 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:58:25,695 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:58:25,695 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:58:25,696 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:58:02', tmtdew=11.07, humidity=47.09, cloud=0.0, wind=30.19, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:54:25.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:58:25,697 [DEBUG][       Thread-605418][   transport.py][1871] : EOF in transport thread
2025-07-01 12:58:25,779 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:58:25,790 [DEBUG][       Thread-605421][   transport.py][1871] : starting thread (client mode): 0x8157850
2025-07-01 12:58:25,790 [DEBUG][       Thread-605421][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:58:25,811 [DEBUG][       Thread-605421][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:58:25,811 [ INFO][       Thread-605421][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:58:25,819 [DEBUG][       Thread-605421][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:58:25,819 [DEBUG][       Thread-605421][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:58:25,819 [DEBUG][       Thread-605421][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:58:25,819 [DEBUG][       Thread-605421][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:58:25,819 [DEBUG][       Thread-605421][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:58:25,819 [DEBUG][       Thread-605421][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:58:25,819 [DEBUG][       Thread-605421][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:58:25,819 [DEBUG][       Thread-605421][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:58:25,819 [DEBUG][       Thread-605421][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:58:25,820 [DEBUG][       Thread-605421][   transport.py][1871] : client lang: <none>
2025-07-01 12:58:25,820 [DEBUG][       Thread-605421][   transport.py][1871] : server lang: <none>
2025-07-01 12:58:25,820 [DEBUG][       Thread-605421][   transport.py][1871] : kex follows: False
2025-07-01 12:58:25,820 [DEBUG][       Thread-605421][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:58:25,820 [DEBUG][       Thread-605421][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:58:25,820 [DEBUG][       Thread-605421][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:58:25,820 [DEBUG][       Thread-605421][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:58:25,820 [DEBUG][       Thread-605421][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:58:25,820 [DEBUG][       Thread-605421][   transport.py][1871] : Compression: none
2025-07-01 12:58:25,820 [DEBUG][       Thread-605421][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:58:25,879 [DEBUG][       Thread-605421][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:58:25,879 [DEBUG][       Thread-605421][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:58:25,880 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:58:25,881 [DEBUG][       Thread-605421][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:58:25,881 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:58:25,935 [DEBUG][       Thread-605421][   transport.py][1871] : userauth is OK
2025-07-01 12:58:25,935 [DEBUG][       Thread-605421][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:58:25,935 [DEBUG][       Thread-605421][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:58:25,935 [DEBUG][       Thread-605421][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:58:25,935 [DEBUG][       Thread-605421][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:58:25,955 [ INFO][       Thread-605421][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:58:25,956 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:58:25,956 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:58:26,996 [DEBUG][       Thread-605421][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:58:26,996 [DEBUG][       Thread-605421][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:58:27,044 [DEBUG][       Thread-605421][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:58:27,044 [DEBUG][       Thread-605421][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:58:27,053 [DEBUG][       Thread-605421][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:58:27,062 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:58:27,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-07-01 12:58:27,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-07-01 12:58:27,081 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:58:27,081 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:58:27,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:58:27,089 [DEBUG][       Thread-605421][   transport.py][1871] : EOF in transport thread
2025-07-01 12:58:30,678 [DEBUG][Thread-605423 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:58:32,528 [DEBUG][Thread-605424 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:58:37,092 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:58:37,092 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:58:37,092 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:58:37,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-07-01 12:58:37,589 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 58, 33), 11.1, 46.84, 0.0, 23.06, 13.08, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:58:37,589 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:58:33
2025-07-01 12:58:37,675 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:58:37,680 [DEBUG][       Thread-605425][   transport.py][1871] : starting thread (client mode): 0x81067d0
2025-07-01 12:58:37,680 [DEBUG][       Thread-605425][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:58:37,701 [DEBUG][       Thread-605425][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:58:37,701 [ INFO][       Thread-605425][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:58:37,704 [DEBUG][       Thread-605425][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:58:37,704 [DEBUG][       Thread-605425][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:58:37,705 [DEBUG][       Thread-605425][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:58:37,705 [DEBUG][       Thread-605425][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:58:37,705 [DEBUG][       Thread-605425][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:58:37,705 [DEBUG][       Thread-605425][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:58:37,705 [DEBUG][       Thread-605425][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:58:37,705 [DEBUG][       Thread-605425][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:58:37,705 [DEBUG][       Thread-605425][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:58:37,705 [DEBUG][       Thread-605425][   transport.py][1871] : client lang: <none>
2025-07-01 12:58:37,705 [DEBUG][       Thread-605425][   transport.py][1871] : server lang: <none>
2025-07-01 12:58:37,705 [DEBUG][       Thread-605425][   transport.py][1871] : kex follows: False
2025-07-01 12:58:37,705 [DEBUG][       Thread-605425][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:58:37,705 [DEBUG][       Thread-605425][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:58:37,705 [DEBUG][       Thread-605425][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:58:37,705 [DEBUG][       Thread-605425][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:58:37,705 [DEBUG][       Thread-605425][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:58:37,705 [DEBUG][       Thread-605425][   transport.py][1871] : Compression: none
2025-07-01 12:58:37,705 [DEBUG][       Thread-605425][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:58:37,722 [DEBUG][       Thread-605425][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:58:37,722 [DEBUG][       Thread-605425][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:58:37,723 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:58:37,723 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:58:37,723 [DEBUG][       Thread-605425][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:58:37,724 [DEBUG][       Thread-605425][   transport.py][1871] : userauth is OK
2025-07-01 12:58:37,737 [ INFO][       Thread-605425][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:58:37,737 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:58:38,338 [DEBUG][       Thread-605425][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:58:38,338 [DEBUG][       Thread-605425][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:58:38,381 [DEBUG][       Thread-605425][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:58:38,381 [DEBUG][       Thread-605425][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:58:38,384 [DEBUG][       Thread-605425][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:58:38,398 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:58:38,399 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:58:38,401 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:58:38,403 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:58:38,408 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:58:38,410 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:58:38,410 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:58:38,411 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:58:38,411 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.454457 -999.00  +12.70  32.64     52   +3.10 1 1 2 1 1   888    0 9.99 12.13 ----- 39.9 32.6 23.9 48.8 15.8 -24.2 14.9 -24.5 14.8 -23.0 15.6 -22.4
2025-07-01 12:58:38,411 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:58:38,411 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:58:38,411 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.454457
2025-07-01 12:58:38,412 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:58:38,412 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:58:38,413 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:58:38,413 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:58:38,413 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:58:38,413 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:58:33', tmtdew=11.1, humidity=46.84, cloud=0.0, wind=23.06, temperature=13.08, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:54:25.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:58:38,414 [DEBUG][       Thread-605425][   transport.py][1871] : EOF in transport thread
2025-07-01 12:58:38,496 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:58:38,508 [DEBUG][       Thread-605428][   transport.py][1871] : starting thread (client mode): 0x82b3670
2025-07-01 12:58:38,509 [DEBUG][       Thread-605428][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:58:38,525 [DEBUG][       Thread-605428][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 12:58:38,525 [ INFO][       Thread-605428][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 12:58:38,532 [DEBUG][       Thread-605428][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:58:38,532 [DEBUG][       Thread-605428][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 12:58:38,532 [DEBUG][       Thread-605428][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:58:38,533 [DEBUG][       Thread-605428][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:58:38,533 [DEBUG][       Thread-605428][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:58:38,533 [DEBUG][       Thread-605428][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:58:38,533 [DEBUG][       Thread-605428][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:58:38,533 [DEBUG][       Thread-605428][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:58:38,533 [DEBUG][       Thread-605428][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:58:38,533 [DEBUG][       Thread-605428][   transport.py][1871] : client lang: <none>
2025-07-01 12:58:38,533 [DEBUG][       Thread-605428][   transport.py][1871] : server lang: <none>
2025-07-01 12:58:38,533 [DEBUG][       Thread-605428][   transport.py][1871] : kex follows: False
2025-07-01 12:58:38,533 [DEBUG][       Thread-605428][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:58:38,533 [DEBUG][       Thread-605428][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:58:38,533 [DEBUG][       Thread-605428][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:58:38,533 [DEBUG][       Thread-605428][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:58:38,533 [DEBUG][       Thread-605428][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:58:38,533 [DEBUG][       Thread-605428][   transport.py][1871] : Compression: none
2025-07-01 12:58:38,533 [DEBUG][       Thread-605428][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:58:38,591 [DEBUG][       Thread-605428][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:58:38,592 [DEBUG][       Thread-605428][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:58:38,592 [DEBUG][       Thread-605428][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 12:58:38,592 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 12:58:38,593 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 12:58:38,647 [DEBUG][       Thread-605428][   transport.py][1871] : userauth is OK
2025-07-01 12:58:38,648 [DEBUG][       Thread-605428][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 12:58:38,648 [DEBUG][       Thread-605428][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 12:58:38,648 [DEBUG][       Thread-605428][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 12:58:38,648 [DEBUG][       Thread-605428][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 12:58:38,667 [ INFO][       Thread-605428][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 12:58:38,667 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 12:58:38,668 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:58:39,675 [DEBUG][       Thread-605428][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:58:39,675 [DEBUG][       Thread-605428][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:58:39,725 [DEBUG][       Thread-605428][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:58:39,725 [DEBUG][       Thread-605428][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:58:39,735 [DEBUG][       Thread-605428][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:58:39,744 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:58:39,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')
2025-07-01 12:58:39,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-07-01 12:58:39,762 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:58:39,762 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:58:39,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:58:39,771 [DEBUG][       Thread-605428][   transport.py][1871] : EOF in transport thread
2025-07-01 12:58:41,551 [DEBUG][Thread-605430 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:58:49,772 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 12:58:49,772 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 12:58:49,772 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 12:58:49,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-07-01 12:58:50,267 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 12, 58, 33), 11.1, 46.84, 0.0, 23.06, 13.08, 0, 0, 0, 2, 0, 0),)
2025-07-01 12:58:50,267 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 12:58:33
2025-07-01 12:58:50,352 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 12:58:50,356 [DEBUG][       Thread-605431][   transport.py][1871] : starting thread (client mode): 0x81a6590
2025-07-01 12:58:50,356 [DEBUG][       Thread-605431][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 12:58:50,377 [DEBUG][       Thread-605431][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 12:58:50,377 [ INFO][       Thread-605431][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 12:58:50,380 [DEBUG][       Thread-605431][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 12:58:50,380 [DEBUG][       Thread-605431][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 12:58:50,380 [DEBUG][       Thread-605431][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 12:58:50,380 [DEBUG][       Thread-605431][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:58:50,380 [DEBUG][       Thread-605431][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 12:58:50,381 [DEBUG][       Thread-605431][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:58:50,381 [DEBUG][       Thread-605431][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 12:58:50,381 [DEBUG][       Thread-605431][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 12:58:50,381 [DEBUG][       Thread-605431][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 12:58:50,381 [DEBUG][       Thread-605431][   transport.py][1871] : client lang: <none>
2025-07-01 12:58:50,381 [DEBUG][       Thread-605431][   transport.py][1871] : server lang: <none>
2025-07-01 12:58:50,381 [DEBUG][       Thread-605431][   transport.py][1871] : kex follows: False
2025-07-01 12:58:50,381 [DEBUG][       Thread-605431][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 12:58:50,381 [DEBUG][       Thread-605431][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 12:58:50,381 [DEBUG][       Thread-605431][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 12:58:50,381 [DEBUG][       Thread-605431][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 12:58:50,381 [DEBUG][       Thread-605431][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 12:58:50,381 [DEBUG][       Thread-605431][   transport.py][1871] : Compression: none
2025-07-01 12:58:50,381 [DEBUG][       Thread-605431][   transport.py][1871] : === End of kex handshake ===
2025-07-01 12:58:50,399 [DEBUG][       Thread-605431][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 12:58:50,399 [DEBUG][       Thread-605431][   transport.py][1871] : Switch to new keys ...
2025-07-01 12:58:50,400 [DEBUG][       Thread-605431][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 12:58:50,400 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 12:58:50,400 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 12:58:50,401 [DEBUG][       Thread-605431][   transport.py][1871] : userauth is OK
2025-07-01 12:58:50,426 [ INFO][       Thread-605431][   transport.py][1871] : Authentication (password) successful!
2025-07-01 12:58:50,427 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 12:58:50,584 [DEBUG][Thread-605433 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:58:51,110 [DEBUG][       Thread-605431][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 12:58:51,110 [DEBUG][       Thread-605431][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 12:58:51,153 [DEBUG][       Thread-605431][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 12:58:51,153 [DEBUG][       Thread-605431][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 12:58:51,156 [DEBUG][       Thread-605431][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 12:58:51,170 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 12:58:51,171 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 12:58:51,172 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 12:58:51,174 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 12:58:51,179 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 12:58:51,180 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 12:58:51,181 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 12:58:51,181 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 12:58:51,181 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.454457 -999.00  +12.70  32.64     52   +3.10 1 1 2 1 1   888    0 9.99 12.13 ----- 39.9 32.6 23.9 48.8 15.8 -24.2 14.9 -24.5 14.8 -23.0 15.6 -22.4
2025-07-01 12:58:51,181 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 12:58:51,182 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 12:58:51,182 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.454457
2025-07-01 12:58:51,182 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 12:58:51,183 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 12:58:51,183 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 12:58:51,183 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 12:58:51,183 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 12:58:51,183 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T12:58:33', tmtdew=11.1, humidity=46.84, cloud=0.0, wind=23.06, temperature=13.08, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T10:54:25.085', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 12:58:51,183 [DEBUG][       Thread-605431][   transport.py][1871] : EOF in transport thread
2025-07-01 12:58:51,267 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 12:58:59,605 [DEBUG][Thread-605435 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:59:08,621 [DEBUG][Thread-605436 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:59:17,643 [DEBUG][Thread-605437 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:59:20,422 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:59:20,423 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:59:26,667 [DEBUG][Thread-605438 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:59:30,722 [DEBUG][Thread-605439 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:59:35,689 [DEBUG][Thread-605440 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:59:44,711 [DEBUG][Thread-605441 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 12:59:53,735 [DEBUG][Thread-605442 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:00:02,758 [DEBUG][Thread-605443 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:00:11,779 [DEBUG][Thread-605444 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:00:20,561 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:00:20,563 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:00:20,799 [DEBUG][Thread-605445 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:00:29,821 [DEBUG][Thread-605446 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:00:30,770 [DEBUG][Thread-605447 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:00:38,844 [DEBUG][Thread-605448 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:00:47,865 [DEBUG][Thread-605449 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:00:56,884 [DEBUG][Thread-605450 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:00:59,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-07-01 13:01:05,904 [DEBUG][Thread-605451 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:01:09,807 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:01:09,807 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:01:09,807 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:01:09,810 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:01:10,306 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 0, 41), 11.37, 46.06, 0.0, 29.31, 13.22, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:01:10,306 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:00:41
2025-07-01 13:01:10,391 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:01:10,396 [DEBUG][       Thread-605452][   transport.py][1871] : starting thread (client mode): 0x81579a0
2025-07-01 13:01:10,396 [DEBUG][       Thread-605452][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:01:10,417 [DEBUG][       Thread-605452][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:01:10,417 [ INFO][       Thread-605452][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:01:10,419 [DEBUG][       Thread-605452][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:01:10,419 [DEBUG][       Thread-605452][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:01:10,419 [DEBUG][       Thread-605452][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:01:10,419 [DEBUG][       Thread-605452][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:01:10,419 [DEBUG][       Thread-605452][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:01:10,419 [DEBUG][       Thread-605452][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:01:10,419 [DEBUG][       Thread-605452][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:01:10,420 [DEBUG][       Thread-605452][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:01:10,420 [DEBUG][       Thread-605452][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:01:10,420 [DEBUG][       Thread-605452][   transport.py][1871] : client lang: <none>
2025-07-01 13:01:10,420 [DEBUG][       Thread-605452][   transport.py][1871] : server lang: <none>
2025-07-01 13:01:10,420 [DEBUG][       Thread-605452][   transport.py][1871] : kex follows: False
2025-07-01 13:01:10,420 [DEBUG][       Thread-605452][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:01:10,420 [DEBUG][       Thread-605452][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:01:10,420 [DEBUG][       Thread-605452][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:01:10,420 [DEBUG][       Thread-605452][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:01:10,420 [DEBUG][       Thread-605452][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:01:10,420 [DEBUG][       Thread-605452][   transport.py][1871] : Compression: none
2025-07-01 13:01:10,420 [DEBUG][       Thread-605452][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:01:10,437 [DEBUG][       Thread-605452][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:01:10,438 [DEBUG][       Thread-605452][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:01:10,438 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:01:10,438 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:01:10,439 [DEBUG][       Thread-605452][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:01:10,440 [DEBUG][       Thread-605452][   transport.py][1871] : userauth is OK
2025-07-01 13:01:10,465 [ INFO][       Thread-605452][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:01:10,465 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:01:11,079 [DEBUG][       Thread-605452][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:01:11,080 [DEBUG][       Thread-605452][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:01:11,121 [DEBUG][       Thread-605452][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:01:11,121 [DEBUG][       Thread-605452][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:01:11,125 [DEBUG][       Thread-605452][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:01:11,134 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:01:11,134 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:01:11,136 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:01:11,138 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:01:11,143 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:01:11,145 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:01:11,145 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:01:11,145 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:01:11,146 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.458623 -999.00  +13.00  29.58     51   +3.30 1 2 1 1 1   888    0 10.04 9.58 NA 31.8 29.6 29.8 46.0 16.1 -22.4 15.2 -23.2 15.1 -22.6 16.1 -21.4
2025-07-01 13:01:11,146 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:01:11,146 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:01:11,146 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.458623
2025-07-01 13:01:11,146 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:01:11,147 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:01:11,147 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:01:11,147 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:01:11,147 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 13:01:11,147 [DEBUG][       Thread-605452][   transport.py][1871] : EOF in transport thread
2025-07-01 13:01:11,147 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:00:41', tmtdew=11.37, humidity=46.06, cloud=0.0, wind=29.31, temperature=13.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:00:25.027', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:01:11,231 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:01:11,243 [DEBUG][       Thread-605455][   transport.py][1871] : starting thread (client mode): 0x81e6ec0
2025-07-01 13:01:11,243 [DEBUG][       Thread-605455][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:01:11,258 [DEBUG][       Thread-605455][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:01:11,258 [ INFO][       Thread-605455][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:01:11,266 [DEBUG][       Thread-605455][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:01:11,266 [DEBUG][       Thread-605455][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:01:11,266 [DEBUG][       Thread-605455][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:01:11,266 [DEBUG][       Thread-605455][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:01:11,266 [DEBUG][       Thread-605455][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:01:11,266 [DEBUG][       Thread-605455][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:01:11,266 [DEBUG][       Thread-605455][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:01:11,266 [DEBUG][       Thread-605455][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:01:11,266 [DEBUG][       Thread-605455][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:01:11,266 [DEBUG][       Thread-605455][   transport.py][1871] : client lang: <none>
2025-07-01 13:01:11,266 [DEBUG][       Thread-605455][   transport.py][1871] : server lang: <none>
2025-07-01 13:01:11,266 [DEBUG][       Thread-605455][   transport.py][1871] : kex follows: False
2025-07-01 13:01:11,266 [DEBUG][       Thread-605455][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:01:11,267 [DEBUG][       Thread-605455][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:01:11,267 [DEBUG][       Thread-605455][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:01:11,267 [DEBUG][       Thread-605455][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:01:11,267 [DEBUG][       Thread-605455][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:01:11,267 [DEBUG][       Thread-605455][   transport.py][1871] : Compression: none
2025-07-01 13:01:11,267 [DEBUG][       Thread-605455][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:01:11,324 [DEBUG][       Thread-605455][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:01:11,324 [DEBUG][       Thread-605455][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:01:11,325 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:01:11,325 [DEBUG][       Thread-605455][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:01:11,326 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:01:11,380 [DEBUG][       Thread-605455][   transport.py][1871] : userauth is OK
2025-07-01 13:01:11,380 [DEBUG][       Thread-605455][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:01:11,381 [DEBUG][       Thread-605455][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:01:11,381 [DEBUG][       Thread-605455][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:01:11,381 [DEBUG][       Thread-605455][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:01:11,400 [ INFO][       Thread-605455][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:01:11,400 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:01:11,401 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:01:12,504 [DEBUG][       Thread-605455][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:01:12,504 [DEBUG][       Thread-605455][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:01:12,555 [DEBUG][       Thread-605455][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:01:12,556 [DEBUG][       Thread-605455][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:01:12,565 [DEBUG][       Thread-605455][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:01:12,573 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:01:12,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-07-01 13:01:12,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-07-01 13:01:12,590 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:01:12,591 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:01:12,591 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:01:12,599 [DEBUG][       Thread-605455][   transport.py][1871] : EOF in transport thread
2025-07-01 13:01:14,924 [DEBUG][Thread-605457 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:01:20,700 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:01:20,701 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:01:22,600 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:01:22,600 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:01:22,600 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:01:22,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-07-01 13:01:23,087 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 1, 12), 11.42, 45.9, 0.0, 26.11, 13.27, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:01:23,088 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:01:12
2025-07-01 13:01:23,174 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:01:23,177 [DEBUG][       Thread-605458][   transport.py][1871] : starting thread (client mode): 0x818d8a0
2025-07-01 13:01:23,178 [DEBUG][       Thread-605458][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:01:23,197 [DEBUG][       Thread-605458][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:01:23,197 [ INFO][       Thread-605458][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:01:23,201 [DEBUG][       Thread-605458][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:01:23,201 [DEBUG][       Thread-605458][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:01:23,201 [DEBUG][       Thread-605458][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:01:23,201 [DEBUG][       Thread-605458][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:01:23,201 [DEBUG][       Thread-605458][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:01:23,201 [DEBUG][       Thread-605458][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:01:23,201 [DEBUG][       Thread-605458][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:01:23,201 [DEBUG][       Thread-605458][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:01:23,201 [DEBUG][       Thread-605458][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:01:23,201 [DEBUG][       Thread-605458][   transport.py][1871] : client lang: <none>
2025-07-01 13:01:23,201 [DEBUG][       Thread-605458][   transport.py][1871] : server lang: <none>
2025-07-01 13:01:23,201 [DEBUG][       Thread-605458][   transport.py][1871] : kex follows: False
2025-07-01 13:01:23,201 [DEBUG][       Thread-605458][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:01:23,201 [DEBUG][       Thread-605458][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:01:23,201 [DEBUG][       Thread-605458][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:01:23,201 [DEBUG][       Thread-605458][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:01:23,201 [DEBUG][       Thread-605458][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:01:23,201 [DEBUG][       Thread-605458][   transport.py][1871] : Compression: none
2025-07-01 13:01:23,201 [DEBUG][       Thread-605458][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:01:23,219 [DEBUG][       Thread-605458][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:01:23,220 [DEBUG][       Thread-605458][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:01:23,220 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:01:23,220 [DEBUG][       Thread-605458][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:01:23,221 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:01:23,222 [DEBUG][       Thread-605458][   transport.py][1871] : userauth is OK
2025-07-01 13:01:23,234 [ INFO][       Thread-605458][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:01:23,235 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:01:23,891 [DEBUG][       Thread-605458][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:01:23,891 [DEBUG][       Thread-605458][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:01:23,933 [DEBUG][       Thread-605458][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:01:23,933 [DEBUG][       Thread-605458][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:01:23,936 [DEBUG][       Thread-605458][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:01:23,948 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:01:23,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:01:23,951 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:01:23,952 [DEBUG][Thread-605460 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:01:23,953 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:01:23,958 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:01:23,960 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:01:23,960 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:01:23,961 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:01:23,961 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.458623 -999.00  +13.00  29.58     51   +3.30 1 2 1 1 1   888    0 10.04 9.58 NA 31.8 29.6 29.8 46.0 16.1 -22.4 15.2 -23.2 15.1 -22.6 16.1 -21.4
2025-07-01 13:01:23,961 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:01:23,961 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:01:23,961 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.458623
2025-07-01 13:01:23,962 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:01:23,962 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:01:23,962 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:01:23,963 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:01:23,963 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 13:01:23,963 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:01:12', tmtdew=11.42, humidity=45.9, cloud=0.0, wind=26.11, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:00:25.027', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:01:23,964 [DEBUG][       Thread-605458][   transport.py][1871] : EOF in transport thread
2025-07-01 13:01:24,046 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:01:24,058 [DEBUG][       Thread-605462][   transport.py][1871] : starting thread (client mode): 0x75aae00
2025-07-01 13:01:24,058 [DEBUG][       Thread-605462][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:01:24,073 [DEBUG][       Thread-605462][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:01:24,073 [ INFO][       Thread-605462][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:01:24,081 [DEBUG][       Thread-605462][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:01:24,081 [DEBUG][       Thread-605462][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:01:24,081 [DEBUG][       Thread-605462][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:01:24,081 [DEBUG][       Thread-605462][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:01:24,081 [DEBUG][       Thread-605462][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:01:24,081 [DEBUG][       Thread-605462][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:01:24,081 [DEBUG][       Thread-605462][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:01:24,081 [DEBUG][       Thread-605462][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:01:24,081 [DEBUG][       Thread-605462][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:01:24,081 [DEBUG][       Thread-605462][   transport.py][1871] : client lang: <none>
2025-07-01 13:01:24,081 [DEBUG][       Thread-605462][   transport.py][1871] : server lang: <none>
2025-07-01 13:01:24,081 [DEBUG][       Thread-605462][   transport.py][1871] : kex follows: False
2025-07-01 13:01:24,081 [DEBUG][       Thread-605462][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:01:24,082 [DEBUG][       Thread-605462][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:01:24,082 [DEBUG][       Thread-605462][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:01:24,082 [DEBUG][       Thread-605462][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:01:24,082 [DEBUG][       Thread-605462][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:01:24,082 [DEBUG][       Thread-605462][   transport.py][1871] : Compression: none
2025-07-01 13:01:24,082 [DEBUG][       Thread-605462][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:01:24,140 [DEBUG][       Thread-605462][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:01:24,141 [DEBUG][       Thread-605462][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:01:24,141 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:01:24,142 [DEBUG][       Thread-605462][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:01:24,143 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:01:24,196 [DEBUG][       Thread-605462][   transport.py][1871] : userauth is OK
2025-07-01 13:01:24,197 [DEBUG][       Thread-605462][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:01:24,197 [DEBUG][       Thread-605462][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:01:24,197 [DEBUG][       Thread-605462][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:01:24,197 [DEBUG][       Thread-605462][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:01:24,216 [ INFO][       Thread-605462][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:01:24,216 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:01:24,217 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:01:25,269 [DEBUG][       Thread-605462][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:01:25,269 [DEBUG][       Thread-605462][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:01:25,324 [DEBUG][       Thread-605462][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:01:25,324 [DEBUG][       Thread-605462][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:01:25,334 [DEBUG][       Thread-605462][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:01:25,343 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:01:25,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-07-01 13:01:25,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-07-01 13:01:25,361 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:01:25,361 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:01:25,362 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:01:25,370 [DEBUG][       Thread-605462][   transport.py][1871] : EOF in transport thread
2025-07-01 13:01:30,825 [DEBUG][Thread-605464 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:01:32,972 [DEBUG][Thread-605465 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:01:35,372 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:01:35,372 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:01:35,372 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:01:35,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-07-01 13:01:35,886 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 1, 12), 11.42, 45.9, 0.0, 26.11, 13.27, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:01:35,887 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:01:12
2025-07-01 13:01:35,975 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:01:35,979 [DEBUG][       Thread-605466][   transport.py][1871] : starting thread (client mode): 0x75aa980
2025-07-01 13:01:35,979 [DEBUG][       Thread-605466][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:01:35,999 [DEBUG][       Thread-605466][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:01:35,999 [ INFO][       Thread-605466][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:01:36,002 [DEBUG][       Thread-605466][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:01:36,002 [DEBUG][       Thread-605466][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:01:36,002 [DEBUG][       Thread-605466][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:01:36,002 [DEBUG][       Thread-605466][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:01:36,002 [DEBUG][       Thread-605466][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:01:36,002 [DEBUG][       Thread-605466][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:01:36,002 [DEBUG][       Thread-605466][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:01:36,002 [DEBUG][       Thread-605466][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:01:36,002 [DEBUG][       Thread-605466][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:01:36,002 [DEBUG][       Thread-605466][   transport.py][1871] : client lang: <none>
2025-07-01 13:01:36,002 [DEBUG][       Thread-605466][   transport.py][1871] : server lang: <none>
2025-07-01 13:01:36,002 [DEBUG][       Thread-605466][   transport.py][1871] : kex follows: False
2025-07-01 13:01:36,002 [DEBUG][       Thread-605466][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:01:36,002 [DEBUG][       Thread-605466][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:01:36,002 [DEBUG][       Thread-605466][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:01:36,002 [DEBUG][       Thread-605466][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:01:36,002 [DEBUG][       Thread-605466][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:01:36,002 [DEBUG][       Thread-605466][   transport.py][1871] : Compression: none
2025-07-01 13:01:36,002 [DEBUG][       Thread-605466][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:01:36,016 [DEBUG][       Thread-605466][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:01:36,016 [DEBUG][       Thread-605466][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:01:36,017 [DEBUG][       Thread-605466][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:01:36,017 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:01:36,017 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:01:36,017 [DEBUG][       Thread-605466][   transport.py][1871] : userauth is OK
2025-07-01 13:01:36,041 [ INFO][       Thread-605466][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:01:36,041 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:01:36,730 [DEBUG][       Thread-605466][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:01:36,730 [DEBUG][       Thread-605466][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:01:36,772 [DEBUG][       Thread-605466][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:01:36,772 [DEBUG][       Thread-605466][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:01:36,775 [DEBUG][       Thread-605466][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:01:36,788 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:01:36,788 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:01:36,789 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:01:36,790 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:01:36,793 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:01:36,794 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:01:36,794 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:01:36,794 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:01:36,794 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.458970 -999.00  +13.20  37.45     51   +3.30 1 1 2 1 1   888    0 10.42 11.09 NA 36.9 37.5 18.4 47.3 16.3 -22.6 15.3 -23.5 15.2 -23.0 16.1 -21.7
2025-07-01 13:01:36,794 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:01:36,794 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:01:36,794 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.458970
2025-07-01 13:01:36,794 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:01:36,794 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:01:36,794 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:01:36,794 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:01:36,794 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:01:36,794 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:01:12', tmtdew=11.42, humidity=45.9, cloud=0.0, wind=26.11, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:00:55.008', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:01:36,796 [DEBUG][       Thread-605466][   transport.py][1871] : EOF in transport thread
2025-07-01 13:01:36,868 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:01:36,877 [DEBUG][       Thread-605469][   transport.py][1871] : starting thread (client mode): 0x82b0a00
2025-07-01 13:01:36,877 [DEBUG][       Thread-605469][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:01:36,892 [DEBUG][       Thread-605469][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:01:36,892 [ INFO][       Thread-605469][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:01:36,900 [DEBUG][       Thread-605469][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:01:36,900 [DEBUG][       Thread-605469][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:01:36,900 [DEBUG][       Thread-605469][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:01:36,900 [DEBUG][       Thread-605469][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:01:36,900 [DEBUG][       Thread-605469][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:01:36,900 [DEBUG][       Thread-605469][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:01:36,900 [DEBUG][       Thread-605469][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:01:36,900 [DEBUG][       Thread-605469][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:01:36,900 [DEBUG][       Thread-605469][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:01:36,900 [DEBUG][       Thread-605469][   transport.py][1871] : client lang: <none>
2025-07-01 13:01:36,900 [DEBUG][       Thread-605469][   transport.py][1871] : server lang: <none>
2025-07-01 13:01:36,900 [DEBUG][       Thread-605469][   transport.py][1871] : kex follows: False
2025-07-01 13:01:36,900 [DEBUG][       Thread-605469][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:01:36,900 [DEBUG][       Thread-605469][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:01:36,900 [DEBUG][       Thread-605469][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:01:36,900 [DEBUG][       Thread-605469][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:01:36,900 [DEBUG][       Thread-605469][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:01:36,900 [DEBUG][       Thread-605469][   transport.py][1871] : Compression: none
2025-07-01 13:01:36,900 [DEBUG][       Thread-605469][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:01:36,955 [DEBUG][       Thread-605469][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:01:36,955 [DEBUG][       Thread-605469][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:01:36,956 [DEBUG][       Thread-605469][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:01:36,956 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:01:36,956 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:01:37,012 [DEBUG][       Thread-605469][   transport.py][1871] : userauth is OK
2025-07-01 13:01:37,012 [DEBUG][       Thread-605469][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:01:37,012 [DEBUG][       Thread-605469][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:01:37,012 [DEBUG][       Thread-605469][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:01:37,012 [DEBUG][       Thread-605469][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:01:37,026 [ INFO][       Thread-605469][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:01:37,026 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:01:37,026 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:01:38,060 [DEBUG][       Thread-605469][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:01:38,060 [DEBUG][       Thread-605469][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:01:38,108 [DEBUG][       Thread-605469][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:01:38,108 [DEBUG][       Thread-605469][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:01:38,119 [DEBUG][       Thread-605469][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:01:38,127 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:01:38,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-07-01 13:01:38,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-07-01 13:01:38,146 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:01:38,146 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:01:38,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:01:38,154 [DEBUG][       Thread-605469][   transport.py][1871] : EOF in transport thread
2025-07-01 13:01:41,996 [DEBUG][Thread-605471 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:01:48,156 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:01:48,156 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:01:48,156 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:01:48,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-07-01 13:01:48,672 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 1, 44), 11.37, 46.02, 0.0, 29.06, 13.24, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:01:48,672 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:01:44
2025-07-01 13:01:48,758 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:01:48,762 [DEBUG][       Thread-605472][   transport.py][1871] : starting thread (client mode): 0x81d88b0
2025-07-01 13:01:48,762 [DEBUG][       Thread-605472][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:01:48,776 [DEBUG][       Thread-605472][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:01:48,776 [ INFO][       Thread-605472][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:01:48,777 [DEBUG][       Thread-605472][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:01:48,777 [DEBUG][       Thread-605472][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:01:48,777 [DEBUG][       Thread-605472][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:01:48,777 [DEBUG][       Thread-605472][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:01:48,777 [DEBUG][       Thread-605472][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:01:48,777 [DEBUG][       Thread-605472][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:01:48,777 [DEBUG][       Thread-605472][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:01:48,777 [DEBUG][       Thread-605472][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:01:48,777 [DEBUG][       Thread-605472][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:01:48,777 [DEBUG][       Thread-605472][   transport.py][1871] : client lang: <none>
2025-07-01 13:01:48,777 [DEBUG][       Thread-605472][   transport.py][1871] : server lang: <none>
2025-07-01 13:01:48,777 [DEBUG][       Thread-605472][   transport.py][1871] : kex follows: False
2025-07-01 13:01:48,777 [DEBUG][       Thread-605472][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:01:48,777 [DEBUG][       Thread-605472][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:01:48,777 [DEBUG][       Thread-605472][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:01:48,777 [DEBUG][       Thread-605472][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:01:48,777 [DEBUG][       Thread-605472][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:01:48,777 [DEBUG][       Thread-605472][   transport.py][1871] : Compression: none
2025-07-01 13:01:48,777 [DEBUG][       Thread-605472][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:01:48,785 [DEBUG][       Thread-605472][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:01:48,785 [DEBUG][       Thread-605472][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:01:48,785 [DEBUG][       Thread-605472][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:01:48,785 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:01:48,786 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:01:48,786 [DEBUG][       Thread-605472][   transport.py][1871] : userauth is OK
2025-07-01 13:01:48,799 [ INFO][       Thread-605472][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:01:48,799 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:01:49,423 [DEBUG][       Thread-605472][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:01:49,423 [DEBUG][       Thread-605472][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:01:49,465 [DEBUG][       Thread-605472][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:01:49,465 [DEBUG][       Thread-605472][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:01:49,468 [DEBUG][       Thread-605472][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:01:49,481 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:01:49,481 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:01:49,483 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:01:49,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:01:49,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:01:49,492 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:01:49,492 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:01:49,492 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:01:49,493 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.458970 -999.00  +13.20  37.45     51   +3.30 1 1 2 1 1   888    0 10.42 11.09 NA 36.9 37.5 18.4 47.3 16.3 -22.6 15.3 -23.5 15.2 -23.0 16.1 -21.7
2025-07-01 13:01:49,493 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:01:49,493 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:01:49,493 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.458970
2025-07-01 13:01:49,493 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:01:49,494 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:01:49,494 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:01:49,494 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:01:49,494 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:01:49,494 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:01:44', tmtdew=11.37, humidity=46.02, cloud=0.0, wind=29.06, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:00:55.008', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:01:49,495 [DEBUG][       Thread-605472][   transport.py][1871] : EOF in transport thread
2025-07-01 13:01:49,577 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:01:49,589 [DEBUG][       Thread-605475][   transport.py][1871] : starting thread (client mode): 0x83c8070
2025-07-01 13:01:49,589 [DEBUG][       Thread-605475][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:01:49,604 [DEBUG][       Thread-605475][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:01:49,605 [ INFO][       Thread-605475][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:01:49,612 [DEBUG][       Thread-605475][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:01:49,612 [DEBUG][       Thread-605475][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:01:49,612 [DEBUG][       Thread-605475][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:01:49,613 [DEBUG][       Thread-605475][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:01:49,613 [DEBUG][       Thread-605475][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:01:49,613 [DEBUG][       Thread-605475][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:01:49,613 [DEBUG][       Thread-605475][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:01:49,613 [DEBUG][       Thread-605475][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:01:49,613 [DEBUG][       Thread-605475][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:01:49,613 [DEBUG][       Thread-605475][   transport.py][1871] : client lang: <none>
2025-07-01 13:01:49,613 [DEBUG][       Thread-605475][   transport.py][1871] : server lang: <none>
2025-07-01 13:01:49,613 [DEBUG][       Thread-605475][   transport.py][1871] : kex follows: False
2025-07-01 13:01:49,613 [DEBUG][       Thread-605475][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:01:49,613 [DEBUG][       Thread-605475][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:01:49,613 [DEBUG][       Thread-605475][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:01:49,613 [DEBUG][       Thread-605475][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:01:49,613 [DEBUG][       Thread-605475][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:01:49,613 [DEBUG][       Thread-605475][   transport.py][1871] : Compression: none
2025-07-01 13:01:49,613 [DEBUG][       Thread-605475][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:01:49,676 [DEBUG][       Thread-605475][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:01:49,677 [DEBUG][       Thread-605475][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:01:49,678 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:01:49,678 [DEBUG][       Thread-605475][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:01:49,679 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:01:49,732 [DEBUG][       Thread-605475][   transport.py][1871] : userauth is OK
2025-07-01 13:01:49,732 [DEBUG][       Thread-605475][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:01:49,732 [DEBUG][       Thread-605475][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:01:49,732 [DEBUG][       Thread-605475][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:01:49,732 [DEBUG][       Thread-605475][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:01:49,751 [ INFO][       Thread-605475][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:01:49,752 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:01:49,752 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:01:50,882 [DEBUG][       Thread-605475][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:01:50,882 [DEBUG][       Thread-605475][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:01:50,932 [DEBUG][       Thread-605475][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:01:50,932 [DEBUG][       Thread-605475][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:01:50,941 [DEBUG][       Thread-605475][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:01:50,951 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:01:50,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-07-01 13:01:50,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-07-01 13:01:50,969 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:01:50,969 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:01:50,969 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:01:50,977 [DEBUG][       Thread-605475][   transport.py][1871] : EOF in transport thread
2025-07-01 13:01:51,029 [DEBUG][Thread-605477 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:02:00,061 [DEBUG][Thread-605478 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:02:00,980 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:02:00,980 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:02:00,980 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:02:00,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-07-01 13:02:01,483 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 1, 44), 11.37, 46.02, 0.0, 29.06, 13.24, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:02:01,483 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:01:44
2025-07-01 13:02:01,568 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:02:01,572 [DEBUG][       Thread-605479][   transport.py][1871] : starting thread (client mode): 0x81a7f40
2025-07-01 13:02:01,572 [DEBUG][       Thread-605479][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:02:01,593 [DEBUG][       Thread-605479][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:02:01,593 [ INFO][       Thread-605479][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:02:01,597 [DEBUG][       Thread-605479][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:02:01,597 [DEBUG][       Thread-605479][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:02:01,597 [DEBUG][       Thread-605479][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:02:01,597 [DEBUG][       Thread-605479][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:02:01,597 [DEBUG][       Thread-605479][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:02:01,597 [DEBUG][       Thread-605479][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:02:01,597 [DEBUG][       Thread-605479][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:02:01,597 [DEBUG][       Thread-605479][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:02:01,597 [DEBUG][       Thread-605479][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:02:01,597 [DEBUG][       Thread-605479][   transport.py][1871] : client lang: <none>
2025-07-01 13:02:01,597 [DEBUG][       Thread-605479][   transport.py][1871] : server lang: <none>
2025-07-01 13:02:01,597 [DEBUG][       Thread-605479][   transport.py][1871] : kex follows: False
2025-07-01 13:02:01,598 [DEBUG][       Thread-605479][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:02:01,598 [DEBUG][       Thread-605479][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:02:01,598 [DEBUG][       Thread-605479][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:02:01,598 [DEBUG][       Thread-605479][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:02:01,598 [DEBUG][       Thread-605479][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:02:01,598 [DEBUG][       Thread-605479][   transport.py][1871] : Compression: none
2025-07-01 13:02:01,598 [DEBUG][       Thread-605479][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:02:01,613 [DEBUG][       Thread-605479][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:02:01,614 [DEBUG][       Thread-605479][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:02:01,614 [DEBUG][       Thread-605479][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:02:01,615 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:02:01,615 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:02:01,616 [DEBUG][       Thread-605479][   transport.py][1871] : userauth is OK
2025-07-01 13:02:01,640 [ INFO][       Thread-605479][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:02:01,640 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:02:02,325 [DEBUG][       Thread-605479][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:02:02,325 [DEBUG][       Thread-605479][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:02:02,369 [DEBUG][       Thread-605479][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:02:02,369 [DEBUG][       Thread-605479][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:02:02,372 [DEBUG][       Thread-605479][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:02:02,385 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:02:02,386 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:02:02,388 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:02:02,390 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:02:02,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:02:02,399 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:02:02,399 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:02:02,399 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:02:02,400 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.459665 -999.00  +13.00  41.44     50   +3.00 1 1 2 1 1   888    0 10.24 13.76 ----- 39.1 41.4 19.0 57.9 16.4 -23.2 15.3 -24.7 15.2 -24.0 16.1 -22.8
2025-07-01 13:02:02,400 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:02:02,400 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:02:02,400 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.459665
2025-07-01 13:02:02,400 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:02:02,401 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:02:02,401 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:02:02,401 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:02:02,401 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:02:02,401 [DEBUG][       Thread-605479][   transport.py][1871] : EOF in transport thread
2025-07-01 13:02:02,401 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:01:44', tmtdew=11.37, humidity=46.02, cloud=0.0, wind=29.06, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:01:55.056', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:02:02,485 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:02:02,495 [DEBUG][       Thread-605482][   transport.py][1871] : starting thread (client mode): 0x8154910
2025-07-01 13:02:02,495 [DEBUG][       Thread-605482][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:02:02,510 [DEBUG][       Thread-605482][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:02:02,510 [ INFO][       Thread-605482][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:02:02,517 [DEBUG][       Thread-605482][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:02:02,518 [DEBUG][       Thread-605482][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:02:02,518 [DEBUG][       Thread-605482][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:02:02,518 [DEBUG][       Thread-605482][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:02:02,518 [DEBUG][       Thread-605482][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:02:02,518 [DEBUG][       Thread-605482][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:02:02,518 [DEBUG][       Thread-605482][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:02:02,518 [DEBUG][       Thread-605482][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:02:02,518 [DEBUG][       Thread-605482][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:02:02,518 [DEBUG][       Thread-605482][   transport.py][1871] : client lang: <none>
2025-07-01 13:02:02,518 [DEBUG][       Thread-605482][   transport.py][1871] : server lang: <none>
2025-07-01 13:02:02,518 [DEBUG][       Thread-605482][   transport.py][1871] : kex follows: False
2025-07-01 13:02:02,518 [DEBUG][       Thread-605482][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:02:02,518 [DEBUG][       Thread-605482][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:02:02,518 [DEBUG][       Thread-605482][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:02:02,518 [DEBUG][       Thread-605482][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:02:02,518 [DEBUG][       Thread-605482][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:02:02,518 [DEBUG][       Thread-605482][   transport.py][1871] : Compression: none
2025-07-01 13:02:02,518 [DEBUG][       Thread-605482][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:02:02,576 [DEBUG][       Thread-605482][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:02:02,577 [DEBUG][       Thread-605482][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:02:02,577 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:02:02,578 [DEBUG][       Thread-605482][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:02:02,578 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:02:02,632 [DEBUG][       Thread-605482][   transport.py][1871] : userauth is OK
2025-07-01 13:02:02,633 [DEBUG][       Thread-605482][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:02:02,633 [DEBUG][       Thread-605482][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:02:02,633 [DEBUG][       Thread-605482][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:02:02,633 [DEBUG][       Thread-605482][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:02:02,651 [ INFO][       Thread-605482][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:02:02,651 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:02:02,652 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:02:03,716 [DEBUG][       Thread-605482][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:02:03,716 [DEBUG][       Thread-605482][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:02:03,764 [DEBUG][       Thread-605482][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:02:03,764 [DEBUG][       Thread-605482][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:02:03,773 [DEBUG][       Thread-605482][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:02:03,783 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:02:03,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')
2025-07-01 13:02:03,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-07-01 13:02:03,801 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:02:03,801 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:02:03,801 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:02:03,809 [DEBUG][       Thread-605482][   transport.py][1871] : EOF in transport thread
2025-07-01 13:02:09,081 [DEBUG][Thread-605484 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:02:13,808 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:02:13,808 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:02:13,808 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:02:13,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-07-01 13:02:14,329 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 1, 44), 11.37, 46.02, 0.0, 29.06, 13.24, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:02:14,329 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:01:44
2025-07-01 13:02:14,419 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:02:14,423 [DEBUG][       Thread-605485][   transport.py][1871] : starting thread (client mode): 0x81a6a10
2025-07-01 13:02:14,423 [DEBUG][       Thread-605485][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:02:14,445 [DEBUG][       Thread-605485][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:02:14,445 [ INFO][       Thread-605485][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:02:14,448 [DEBUG][       Thread-605485][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:02:14,448 [DEBUG][       Thread-605485][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:02:14,448 [DEBUG][       Thread-605485][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:02:14,448 [DEBUG][       Thread-605485][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:02:14,448 [DEBUG][       Thread-605485][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:02:14,448 [DEBUG][       Thread-605485][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:02:14,448 [DEBUG][       Thread-605485][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:02:14,448 [DEBUG][       Thread-605485][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:02:14,448 [DEBUG][       Thread-605485][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:02:14,448 [DEBUG][       Thread-605485][   transport.py][1871] : client lang: <none>
2025-07-01 13:02:14,448 [DEBUG][       Thread-605485][   transport.py][1871] : server lang: <none>
2025-07-01 13:02:14,448 [DEBUG][       Thread-605485][   transport.py][1871] : kex follows: False
2025-07-01 13:02:14,448 [DEBUG][       Thread-605485][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:02:14,448 [DEBUG][       Thread-605485][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:02:14,448 [DEBUG][       Thread-605485][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:02:14,448 [DEBUG][       Thread-605485][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:02:14,448 [DEBUG][       Thread-605485][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:02:14,448 [DEBUG][       Thread-605485][   transport.py][1871] : Compression: none
2025-07-01 13:02:14,448 [DEBUG][       Thread-605485][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:02:14,463 [DEBUG][       Thread-605485][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:02:14,463 [DEBUG][       Thread-605485][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:02:14,463 [DEBUG][       Thread-605485][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:02:14,463 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:02:14,463 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:02:14,464 [DEBUG][       Thread-605485][   transport.py][1871] : userauth is OK
2025-07-01 13:02:14,510 [ INFO][       Thread-605485][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:02:14,511 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:02:15,147 [DEBUG][       Thread-605485][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:02:15,147 [DEBUG][       Thread-605485][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:02:15,188 [DEBUG][       Thread-605485][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:02:15,188 [DEBUG][       Thread-605485][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:02:15,191 [DEBUG][       Thread-605485][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:02:15,205 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:02:15,205 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:02:15,206 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:02:15,207 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:02:15,211 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:02:15,212 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:02:15,212 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:02:15,212 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:02:15,212 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.459665 -999.00  +13.00  41.44     50   +3.00 1 1 2 1 1   888    0 10.24 13.76 ----- 39.1 41.4 19.0 57.9 16.4 -23.2 15.3 -24.7 15.2 -24.0 16.1 -22.8
2025-07-01 13:02:15,212 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:02:15,212 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:02:15,212 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.459665
2025-07-01 13:02:15,212 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:02:15,212 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:02:15,212 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:02:15,212 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:02:15,212 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:02:15,212 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:01:44', tmtdew=11.37, humidity=46.02, cloud=0.0, wind=29.06, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:01:55.056', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:02:15,213 [DEBUG][       Thread-605485][   transport.py][1871] : EOF in transport thread
2025-07-01 13:02:15,285 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:02:18,098 [DEBUG][Thread-605488 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:02:20,840 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:02:20,841 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:02:27,119 [DEBUG][Thread-605489 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:02:30,886 [DEBUG][Thread-605490 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:02:36,140 [DEBUG][Thread-605491 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:02:45,165 [DEBUG][Thread-605492 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:02:54,185 [DEBUG][Thread-605493 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:03:03,208 [DEBUG][Thread-605494 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:03:12,230 [DEBUG][Thread-605495 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:03:20,978 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:03:20,979 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:03:21,250 [DEBUG][Thread-605496 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:03:30,266 [DEBUG][Thread-605497 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:03:30,931 [DEBUG][Thread-605498 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:03:39,286 [DEBUG][Thread-605499 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:03:48,309 [DEBUG][Thread-605500 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:03:57,329 [DEBUG][Thread-605501 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:04:06,349 [DEBUG][Thread-605502 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:04:15,369 [DEBUG][Thread-605503 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:04:21,117 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:04:21,118 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:04:24,389 [DEBUG][Thread-605504 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:04:24,596 [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-07-01 13:04:30,984 [DEBUG][Thread-605505 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:04:33,411 [DEBUG][Thread-605506 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:04:34,606 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:04:34,606 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:04:34,607 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:04:34,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-07-01 13:04:35,120 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 4, 23), 11.39, 45.95, 0.0, 38.87, 13.13, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:04:35,120 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:04:23
2025-07-01 13:04:35,207 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:04:35,211 [DEBUG][       Thread-605507][   transport.py][1871] : starting thread (client mode): 0x81a53f0
2025-07-01 13:04:35,212 [DEBUG][       Thread-605507][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:04:35,232 [DEBUG][       Thread-605507][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:04:35,232 [ INFO][       Thread-605507][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:04:35,235 [DEBUG][       Thread-605507][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:04:35,235 [DEBUG][       Thread-605507][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:04:35,235 [DEBUG][       Thread-605507][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:04:35,235 [DEBUG][       Thread-605507][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:04:35,235 [DEBUG][       Thread-605507][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:04:35,235 [DEBUG][       Thread-605507][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:04:35,235 [DEBUG][       Thread-605507][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:04:35,235 [DEBUG][       Thread-605507][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:04:35,235 [DEBUG][       Thread-605507][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:04:35,235 [DEBUG][       Thread-605507][   transport.py][1871] : client lang: <none>
2025-07-01 13:04:35,235 [DEBUG][       Thread-605507][   transport.py][1871] : server lang: <none>
2025-07-01 13:04:35,235 [DEBUG][       Thread-605507][   transport.py][1871] : kex follows: False
2025-07-01 13:04:35,235 [DEBUG][       Thread-605507][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:04:35,235 [DEBUG][       Thread-605507][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:04:35,235 [DEBUG][       Thread-605507][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:04:35,235 [DEBUG][       Thread-605507][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:04:35,235 [DEBUG][       Thread-605507][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:04:35,235 [DEBUG][       Thread-605507][   transport.py][1871] : Compression: none
2025-07-01 13:04:35,235 [DEBUG][       Thread-605507][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:04:35,249 [DEBUG][       Thread-605507][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:04:35,250 [DEBUG][       Thread-605507][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:04:35,250 [DEBUG][       Thread-605507][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:04:35,251 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:04:35,251 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:04:35,252 [DEBUG][       Thread-605507][   transport.py][1871] : userauth is OK
2025-07-01 13:04:35,277 [ INFO][       Thread-605507][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:04:35,277 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:04:35,995 [DEBUG][       Thread-605507][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:04:35,995 [DEBUG][       Thread-605507][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:04:36,037 [DEBUG][       Thread-605507][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:04:36,037 [DEBUG][       Thread-605507][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:04:36,040 [DEBUG][       Thread-605507][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:04:36,052 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:04:36,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:04:36,054 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:04:36,056 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:04:36,062 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:04:36,064 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:04:36,064 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:04:36,064 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:04:36,065 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.461054 -999.00  +13.00  34.13     50   +3.10 1 1 2 1 1   888    0 10.40 20.39 ----- 35.6 34.1 12.0 48.6 16.3 -25.2 15.4 -25.0 15.3 -24.2 16.1 -25.8
2025-07-01 13:04:36,065 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:04:36,065 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:04:36,065 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.461054
2025-07-01 13:04:36,065 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:04:36,066 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:04:36,066 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:04:36,066 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:04:36,066 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:04:36,066 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:04:23', tmtdew=11.39, humidity=45.95, cloud=0.0, wind=38.87, temperature=13.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:03:55.066', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:04:36,066 [DEBUG][       Thread-605507][   transport.py][1871] : EOF in transport thread
2025-07-01 13:04:36,150 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:04:36,162 [DEBUG][       Thread-605510][   transport.py][1871] : starting thread (client mode): 0x8104f40
2025-07-01 13:04:36,162 [DEBUG][       Thread-605510][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:04:36,177 [DEBUG][       Thread-605510][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:04:36,177 [ INFO][       Thread-605510][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:04:36,184 [DEBUG][       Thread-605510][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:04:36,184 [DEBUG][       Thread-605510][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:04:36,184 [DEBUG][       Thread-605510][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:04:36,184 [DEBUG][       Thread-605510][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:04:36,184 [DEBUG][       Thread-605510][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:04:36,184 [DEBUG][       Thread-605510][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:04:36,184 [DEBUG][       Thread-605510][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:04:36,185 [DEBUG][       Thread-605510][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:04:36,185 [DEBUG][       Thread-605510][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:04:36,185 [DEBUG][       Thread-605510][   transport.py][1871] : client lang: <none>
2025-07-01 13:04:36,185 [DEBUG][       Thread-605510][   transport.py][1871] : server lang: <none>
2025-07-01 13:04:36,185 [DEBUG][       Thread-605510][   transport.py][1871] : kex follows: False
2025-07-01 13:04:36,185 [DEBUG][       Thread-605510][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:04:36,185 [DEBUG][       Thread-605510][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:04:36,185 [DEBUG][       Thread-605510][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:04:36,185 [DEBUG][       Thread-605510][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:04:36,185 [DEBUG][       Thread-605510][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:04:36,185 [DEBUG][       Thread-605510][   transport.py][1871] : Compression: none
2025-07-01 13:04:36,185 [DEBUG][       Thread-605510][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:04:36,242 [DEBUG][       Thread-605510][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:04:36,243 [DEBUG][       Thread-605510][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:04:36,243 [DEBUG][       Thread-605510][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:04:36,244 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:04:36,244 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:04:36,309 [DEBUG][       Thread-605510][   transport.py][1871] : userauth is OK
2025-07-01 13:04:36,310 [DEBUG][       Thread-605510][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:04:36,310 [DEBUG][       Thread-605510][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:04:36,310 [DEBUG][       Thread-605510][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:04:36,310 [DEBUG][       Thread-605510][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:04:36,329 [ INFO][       Thread-605510][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:04:36,329 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:04:36,330 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:04:37,315 [DEBUG][       Thread-605510][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:04:37,315 [DEBUG][       Thread-605510][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:04:37,364 [DEBUG][       Thread-605510][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:04:37,364 [DEBUG][       Thread-605510][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:04:37,373 [DEBUG][       Thread-605510][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:04:37,383 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:04:37,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-07-01 13:04:37,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-07-01 13:04:37,401 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:04:37,402 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:04:37,402 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:04:37,410 [DEBUG][       Thread-605510][   transport.py][1871] : EOF in transport thread
2025-07-01 13:04:42,432 [DEBUG][Thread-605512 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:04:47,412 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:04:47,412 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:04:47,412 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:04:47,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-07-01 13:04:47,941 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 4, 23), 11.39, 45.95, 0.0, 38.87, 13.13, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:04:47,942 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:04:23
2025-07-01 13:04:48,031 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:04:48,035 [DEBUG][       Thread-605513][   transport.py][1871] : starting thread (client mode): 0x81a50c0
2025-07-01 13:04:48,035 [DEBUG][       Thread-605513][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:04:48,056 [DEBUG][       Thread-605513][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:04:48,056 [ INFO][       Thread-605513][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:04:48,059 [DEBUG][       Thread-605513][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:04:48,059 [DEBUG][       Thread-605513][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:04:48,059 [DEBUG][       Thread-605513][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:04:48,059 [DEBUG][       Thread-605513][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:04:48,059 [DEBUG][       Thread-605513][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:04:48,059 [DEBUG][       Thread-605513][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:04:48,059 [DEBUG][       Thread-605513][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:04:48,059 [DEBUG][       Thread-605513][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:04:48,059 [DEBUG][       Thread-605513][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:04:48,059 [DEBUG][       Thread-605513][   transport.py][1871] : client lang: <none>
2025-07-01 13:04:48,059 [DEBUG][       Thread-605513][   transport.py][1871] : server lang: <none>
2025-07-01 13:04:48,059 [DEBUG][       Thread-605513][   transport.py][1871] : kex follows: False
2025-07-01 13:04:48,059 [DEBUG][       Thread-605513][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:04:48,059 [DEBUG][       Thread-605513][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:04:48,059 [DEBUG][       Thread-605513][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:04:48,060 [DEBUG][       Thread-605513][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:04:48,060 [DEBUG][       Thread-605513][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:04:48,060 [DEBUG][       Thread-605513][   transport.py][1871] : Compression: none
2025-07-01 13:04:48,060 [DEBUG][       Thread-605513][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:04:48,074 [DEBUG][       Thread-605513][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:04:48,074 [DEBUG][       Thread-605513][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:04:48,074 [DEBUG][       Thread-605513][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:04:48,074 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:04:48,074 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:04:48,075 [DEBUG][       Thread-605513][   transport.py][1871] : userauth is OK
2025-07-01 13:04:48,099 [ INFO][       Thread-605513][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:04:48,099 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:04:48,746 [DEBUG][       Thread-605513][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:04:48,746 [DEBUG][       Thread-605513][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:04:48,789 [DEBUG][       Thread-605513][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:04:48,789 [DEBUG][       Thread-605513][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:04:48,792 [DEBUG][       Thread-605513][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:04:48,806 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:04:48,806 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:04:48,808 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:04:48,810 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:04:48,816 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:04:48,819 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:04:48,819 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:04:48,820 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:04:48,820 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.461401 -999.00  +13.00  36.10     50   +3.00 1 1 2 1 1   888    0 10.36 21.44 ----- 41.6 36.1 28.4 49.8 16.4 -25.0 15.2 -25.9 15.2 -24.5 16.2 -23.0
2025-07-01 13:04:48,820 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:04:48,820 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:04:48,820 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.461401
2025-07-01 13:04:48,821 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:04:48,822 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:04:48,822 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:04:48,822 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:04:48,822 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:04:48,822 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:04:23', tmtdew=11.39, humidity=45.95, cloud=0.0, wind=38.87, temperature=13.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:04:25.046', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:04:48,823 [DEBUG][       Thread-605513][   transport.py][1871] : EOF in transport thread
2025-07-01 13:04:48,904 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:04:48,914 [DEBUG][       Thread-605516][   transport.py][1871] : starting thread (client mode): 0x8393ee0
2025-07-01 13:04:48,914 [DEBUG][       Thread-605516][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:04:48,937 [DEBUG][       Thread-605516][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:04:48,937 [ INFO][       Thread-605516][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:04:48,947 [DEBUG][       Thread-605516][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:04:48,948 [DEBUG][       Thread-605516][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:04:48,948 [DEBUG][       Thread-605516][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:04:48,948 [DEBUG][       Thread-605516][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:04:48,948 [DEBUG][       Thread-605516][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:04:48,948 [DEBUG][       Thread-605516][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:04:48,948 [DEBUG][       Thread-605516][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:04:48,948 [DEBUG][       Thread-605516][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:04:48,948 [DEBUG][       Thread-605516][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:04:48,948 [DEBUG][       Thread-605516][   transport.py][1871] : client lang: <none>
2025-07-01 13:04:48,948 [DEBUG][       Thread-605516][   transport.py][1871] : server lang: <none>
2025-07-01 13:04:48,949 [DEBUG][       Thread-605516][   transport.py][1871] : kex follows: False
2025-07-01 13:04:48,949 [DEBUG][       Thread-605516][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:04:48,949 [DEBUG][       Thread-605516][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:04:48,949 [DEBUG][       Thread-605516][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:04:48,949 [DEBUG][       Thread-605516][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:04:48,949 [DEBUG][       Thread-605516][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:04:48,949 [DEBUG][       Thread-605516][   transport.py][1871] : Compression: none
2025-07-01 13:04:48,949 [DEBUG][       Thread-605516][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:04:49,007 [DEBUG][       Thread-605516][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:04:49,007 [DEBUG][       Thread-605516][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:04:49,008 [DEBUG][       Thread-605516][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:04:49,008 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:04:49,009 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:04:49,065 [DEBUG][       Thread-605516][   transport.py][1871] : userauth is OK
2025-07-01 13:04:49,065 [DEBUG][       Thread-605516][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:04:49,066 [DEBUG][       Thread-605516][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:04:49,066 [DEBUG][       Thread-605516][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:04:49,066 [DEBUG][       Thread-605516][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:04:49,085 [ INFO][       Thread-605516][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:04:49,085 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:04:49,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:04:50,181 [DEBUG][       Thread-605516][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:04:50,181 [DEBUG][       Thread-605516][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:04:50,232 [DEBUG][       Thread-605516][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:04:50,232 [DEBUG][       Thread-605516][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:04:50,241 [DEBUG][       Thread-605516][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:04:50,250 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:04:50,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-07-01 13:04:50,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-07-01 13:04:50,268 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:04:50,269 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:04:50,269 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:04:50,277 [DEBUG][       Thread-605516][   transport.py][1871] : EOF in transport thread
2025-07-01 13:04:51,473 [DEBUG][Thread-605518 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:05:00,276 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:05:00,276 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:05:00,276 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:05:00,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-07-01 13:05:00,494 [DEBUG][Thread-605519 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:05:00,785 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 4, 55), 11.34, 46.1, 0.0, 33.58, 13.14, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:05:00,785 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:04:55
2025-07-01 13:05:00,871 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:05:00,875 [DEBUG][       Thread-605520][   transport.py][1871] : starting thread (client mode): 0x81a78e0
2025-07-01 13:05:00,875 [DEBUG][       Thread-605520][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:05:00,895 [DEBUG][       Thread-605520][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:05:00,895 [ INFO][       Thread-605520][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:05:00,898 [DEBUG][       Thread-605520][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:05:00,898 [DEBUG][       Thread-605520][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:05:00,898 [DEBUG][       Thread-605520][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:05:00,898 [DEBUG][       Thread-605520][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:05:00,898 [DEBUG][       Thread-605520][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:05:00,898 [DEBUG][       Thread-605520][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:05:00,898 [DEBUG][       Thread-605520][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:05:00,898 [DEBUG][       Thread-605520][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:05:00,898 [DEBUG][       Thread-605520][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:05:00,898 [DEBUG][       Thread-605520][   transport.py][1871] : client lang: <none>
2025-07-01 13:05:00,898 [DEBUG][       Thread-605520][   transport.py][1871] : server lang: <none>
2025-07-01 13:05:00,898 [DEBUG][       Thread-605520][   transport.py][1871] : kex follows: False
2025-07-01 13:05:00,899 [DEBUG][       Thread-605520][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:05:00,899 [DEBUG][       Thread-605520][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:05:00,899 [DEBUG][       Thread-605520][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:05:00,899 [DEBUG][       Thread-605520][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:05:00,899 [DEBUG][       Thread-605520][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:05:00,899 [DEBUG][       Thread-605520][   transport.py][1871] : Compression: none
2025-07-01 13:05:00,899 [DEBUG][       Thread-605520][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:05:00,921 [DEBUG][       Thread-605520][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:05:00,922 [DEBUG][       Thread-605520][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:05:00,922 [DEBUG][       Thread-605520][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:05:00,922 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:05:00,923 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:05:00,923 [DEBUG][       Thread-605520][   transport.py][1871] : userauth is OK
2025-07-01 13:05:00,948 [ INFO][       Thread-605520][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:05:00,948 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:05:01,619 [DEBUG][       Thread-605520][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:05:01,619 [DEBUG][       Thread-605520][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:05:01,661 [DEBUG][       Thread-605520][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:05:01,661 [DEBUG][       Thread-605520][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:05:01,663 [DEBUG][       Thread-605520][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:05:01,672 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:05:01,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:05:01,678 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:05:01,682 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:05:01,691 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:05:01,693 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:05:01,693 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:05:01,694 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:05:01,694 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.461401 -999.00  +13.00  36.10     50   +3.00 1 1 2 1 1   888    0 10.36 21.44 ----- 41.6 36.1 28.4 49.8 16.4 -25.0 15.2 -25.9 15.2 -24.5 16.2 -23.0
2025-07-01 13:05:01,694 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:05:01,694 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:05:01,694 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.461401
2025-07-01 13:05:01,694 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:05:01,695 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:05:01,695 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:05:01,695 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:05:01,695 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:05:01,695 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:04:55', tmtdew=11.34, humidity=46.1, cloud=0.0, wind=33.58, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:04:25.046', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:05:01,696 [DEBUG][       Thread-605520][   transport.py][1871] : EOF in transport thread
2025-07-01 13:05:01,779 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:05:01,791 [DEBUG][       Thread-605523][   transport.py][1871] : starting thread (client mode): 0x827db40
2025-07-01 13:05:01,791 [DEBUG][       Thread-605523][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:05:01,808 [DEBUG][       Thread-605523][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:05:01,808 [ INFO][       Thread-605523][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:05:01,815 [DEBUG][       Thread-605523][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:05:01,815 [DEBUG][       Thread-605523][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:05:01,815 [DEBUG][       Thread-605523][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:05:01,815 [DEBUG][       Thread-605523][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:05:01,815 [DEBUG][       Thread-605523][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:05:01,815 [DEBUG][       Thread-605523][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:05:01,816 [DEBUG][       Thread-605523][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:05:01,816 [DEBUG][       Thread-605523][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:05:01,816 [DEBUG][       Thread-605523][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:05:01,816 [DEBUG][       Thread-605523][   transport.py][1871] : client lang: <none>
2025-07-01 13:05:01,816 [DEBUG][       Thread-605523][   transport.py][1871] : server lang: <none>
2025-07-01 13:05:01,816 [DEBUG][       Thread-605523][   transport.py][1871] : kex follows: False
2025-07-01 13:05:01,816 [DEBUG][       Thread-605523][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:05:01,816 [DEBUG][       Thread-605523][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:05:01,816 [DEBUG][       Thread-605523][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:05:01,816 [DEBUG][       Thread-605523][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:05:01,816 [DEBUG][       Thread-605523][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:05:01,816 [DEBUG][       Thread-605523][   transport.py][1871] : Compression: none
2025-07-01 13:05:01,816 [DEBUG][       Thread-605523][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:05:01,873 [DEBUG][       Thread-605523][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:05:01,874 [DEBUG][       Thread-605523][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:05:01,875 [DEBUG][       Thread-605523][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:05:01,875 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:05:01,875 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:05:01,934 [DEBUG][       Thread-605523][   transport.py][1871] : userauth is OK
2025-07-01 13:05:01,934 [DEBUG][       Thread-605523][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:05:01,934 [DEBUG][       Thread-605523][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:05:01,934 [DEBUG][       Thread-605523][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:05:01,934 [DEBUG][       Thread-605523][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:05:01,957 [ INFO][       Thread-605523][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:05:01,957 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:05:01,957 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:05:03,036 [DEBUG][       Thread-605523][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:05:03,037 [DEBUG][       Thread-605523][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:05:03,088 [DEBUG][       Thread-605523][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:05:03,089 [DEBUG][       Thread-605523][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:05:03,098 [DEBUG][       Thread-605523][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:05:03,109 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:05:03,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-07-01 13:05: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-07-01 13:05:03,128 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:05:03,129 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:05:03,129 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:05:03,137 [DEBUG][       Thread-605523][   transport.py][1871] : EOF in transport thread
2025-07-01 13:05:09,514 [DEBUG][Thread-605525 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:05:13,140 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:05:13,140 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:05:13,140 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:05: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-07-01 13:05:13,657 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 4, 55), 11.34, 46.1, 0.0, 33.58, 13.14, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:05:13,657 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:04:55
2025-07-01 13:05:13,743 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:05:13,747 [DEBUG][       Thread-605526][   transport.py][1871] : starting thread (client mode): 0x81a5c90
2025-07-01 13:05:13,747 [DEBUG][       Thread-605526][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:05:13,770 [DEBUG][       Thread-605526][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:05:13,770 [ INFO][       Thread-605526][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:05:13,773 [DEBUG][       Thread-605526][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:05:13,773 [DEBUG][       Thread-605526][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:05:13,773 [DEBUG][       Thread-605526][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:05:13,773 [DEBUG][       Thread-605526][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:05:13,773 [DEBUG][       Thread-605526][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:05:13,773 [DEBUG][       Thread-605526][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:05:13,773 [DEBUG][       Thread-605526][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:05:13,773 [DEBUG][       Thread-605526][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:05:13,773 [DEBUG][       Thread-605526][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:05:13,773 [DEBUG][       Thread-605526][   transport.py][1871] : client lang: <none>
2025-07-01 13:05:13,773 [DEBUG][       Thread-605526][   transport.py][1871] : server lang: <none>
2025-07-01 13:05:13,773 [DEBUG][       Thread-605526][   transport.py][1871] : kex follows: False
2025-07-01 13:05:13,773 [DEBUG][       Thread-605526][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:05:13,773 [DEBUG][       Thread-605526][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:05:13,773 [DEBUG][       Thread-605526][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:05:13,774 [DEBUG][       Thread-605526][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:05:13,774 [DEBUG][       Thread-605526][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:05:13,774 [DEBUG][       Thread-605526][   transport.py][1871] : Compression: none
2025-07-01 13:05:13,774 [DEBUG][       Thread-605526][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:05:13,792 [DEBUG][       Thread-605526][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:05:13,793 [DEBUG][       Thread-605526][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:05:13,793 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:05:13,793 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:05:13,794 [DEBUG][       Thread-605526][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:05:13,794 [DEBUG][       Thread-605526][   transport.py][1871] : userauth is OK
2025-07-01 13:05:13,819 [ INFO][       Thread-605526][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:05:13,820 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:05:14,574 [DEBUG][       Thread-605526][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:05:14,575 [DEBUG][       Thread-605526][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:05:14,617 [DEBUG][       Thread-605526][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:05:14,617 [DEBUG][       Thread-605526][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:05:14,621 [DEBUG][       Thread-605526][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:05:14,632 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:05:14,632 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:05:14,634 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:05:14,636 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:05:14,642 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:05:14,644 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:05:14,644 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:05:14,645 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:05:14,645 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.461401 -999.00  +13.00  36.10     50   +3.00 1 1 2 1 1   888    0 10.36 21.44 ----- 41.6 36.1 28.4 49.8 16.4 -25.0 15.2 -25.9 15.2 -24.5 16.2 -23.0
2025-07-01 13:05:14,645 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:05:14,645 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:05:14,645 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.461401
2025-07-01 13:05:14,646 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:05:14,646 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:05:14,646 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:05:14,647 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:05:14,647 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:05:14,647 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:04:55', tmtdew=11.34, humidity=46.1, cloud=0.0, wind=33.58, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:04:25.046', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:05:14,647 [DEBUG][       Thread-605526][   transport.py][1871] : EOF in transport thread
2025-07-01 13:05:14,730 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:05:14,739 [DEBUG][       Thread-605529][   transport.py][1871] : starting thread (client mode): 0x827d9f0
2025-07-01 13:05:14,740 [DEBUG][       Thread-605529][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:05:14,755 [DEBUG][       Thread-605529][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:05:14,755 [ INFO][       Thread-605529][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:05:14,763 [DEBUG][       Thread-605529][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:05:14,763 [DEBUG][       Thread-605529][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:05:14,763 [DEBUG][       Thread-605529][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:05:14,763 [DEBUG][       Thread-605529][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:05:14,763 [DEBUG][       Thread-605529][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:05:14,763 [DEBUG][       Thread-605529][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:05:14,763 [DEBUG][       Thread-605529][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:05:14,763 [DEBUG][       Thread-605529][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:05:14,763 [DEBUG][       Thread-605529][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:05:14,763 [DEBUG][       Thread-605529][   transport.py][1871] : client lang: <none>
2025-07-01 13:05:14,763 [DEBUG][       Thread-605529][   transport.py][1871] : server lang: <none>
2025-07-01 13:05:14,763 [DEBUG][       Thread-605529][   transport.py][1871] : kex follows: False
2025-07-01 13:05:14,763 [DEBUG][       Thread-605529][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:05:14,763 [DEBUG][       Thread-605529][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:05:14,763 [DEBUG][       Thread-605529][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:05:14,764 [DEBUG][       Thread-605529][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:05:14,764 [DEBUG][       Thread-605529][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:05:14,764 [DEBUG][       Thread-605529][   transport.py][1871] : Compression: none
2025-07-01 13:05:14,764 [DEBUG][       Thread-605529][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:05:14,822 [DEBUG][       Thread-605529][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:05:14,822 [DEBUG][       Thread-605529][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:05:14,823 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:05:14,824 [DEBUG][       Thread-605529][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:05:14,824 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:05:14,878 [DEBUG][       Thread-605529][   transport.py][1871] : userauth is OK
2025-07-01 13:05:14,878 [DEBUG][       Thread-605529][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:05:14,878 [DEBUG][       Thread-605529][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:05:14,878 [DEBUG][       Thread-605529][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:05:14,878 [DEBUG][       Thread-605529][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:05:14,896 [ INFO][       Thread-605529][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:05:14,897 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:05:14,897 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:05:15,922 [DEBUG][       Thread-605529][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:05:15,922 [DEBUG][       Thread-605529][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:05:15,972 [DEBUG][       Thread-605529][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:05:15,972 [DEBUG][       Thread-605529][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:05:15,981 [DEBUG][       Thread-605529][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:05:15,990 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:05:15,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')
2025-07-01 13:05:16,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') -> 00000000
2025-07-01 13:05:16,009 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:05:16,009 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:05:16,010 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:05:16,017 [DEBUG][       Thread-605529][   transport.py][1871] : EOF in transport thread
2025-07-01 13:05:18,548 [DEBUG][Thread-605531 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:05:21,256 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:05:21,257 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:05:26,020 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:05:26,020 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:05:26,020 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:05:26,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-07-01 13:05:26,521 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 4, 55), 11.34, 46.1, 0.0, 33.58, 13.14, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:05:26,521 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:04:55
2025-07-01 13:05:26,608 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:05:26,613 [DEBUG][       Thread-605532][   transport.py][1871] : starting thread (client mode): 0x81a43a0
2025-07-01 13:05:26,613 [DEBUG][       Thread-605532][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:05:26,633 [DEBUG][       Thread-605532][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:05:26,633 [ INFO][       Thread-605532][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:05:26,635 [DEBUG][       Thread-605532][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:05:26,635 [DEBUG][       Thread-605532][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:05:26,635 [DEBUG][       Thread-605532][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:05:26,635 [DEBUG][       Thread-605532][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:05:26,635 [DEBUG][       Thread-605532][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:05:26,635 [DEBUG][       Thread-605532][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:05:26,635 [DEBUG][       Thread-605532][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:05:26,635 [DEBUG][       Thread-605532][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:05:26,635 [DEBUG][       Thread-605532][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:05:26,635 [DEBUG][       Thread-605532][   transport.py][1871] : client lang: <none>
2025-07-01 13:05:26,635 [DEBUG][       Thread-605532][   transport.py][1871] : server lang: <none>
2025-07-01 13:05:26,635 [DEBUG][       Thread-605532][   transport.py][1871] : kex follows: False
2025-07-01 13:05:26,635 [DEBUG][       Thread-605532][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:05:26,635 [DEBUG][       Thread-605532][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:05:26,635 [DEBUG][       Thread-605532][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:05:26,635 [DEBUG][       Thread-605532][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:05:26,635 [DEBUG][       Thread-605532][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:05:26,635 [DEBUG][       Thread-605532][   transport.py][1871] : Compression: none
2025-07-01 13:05:26,635 [DEBUG][       Thread-605532][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:05:26,647 [DEBUG][       Thread-605532][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:05:26,647 [DEBUG][       Thread-605532][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:05:26,648 [DEBUG][       Thread-605532][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:05:26,648 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:05:26,648 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:05:26,648 [DEBUG][       Thread-605532][   transport.py][1871] : userauth is OK
2025-07-01 13:05:26,672 [ INFO][       Thread-605532][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:05:26,672 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:05:27,300 [DEBUG][       Thread-605532][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:05:27,300 [DEBUG][       Thread-605532][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:05:27,341 [DEBUG][       Thread-605532][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:05:27,341 [DEBUG][       Thread-605532][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:05:27,344 [DEBUG][       Thread-605532][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:05:27,351 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:05:27,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:05:27,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:05:27,355 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:05:27,360 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:05:27,362 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:05:27,362 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:05:27,363 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:05:27,363 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.461748 -999.00  +13.00  38.48     50   +3.00 1 1 2 1 1   888    0 10.34 22.01 ----- 41.7 38.5 15.2 48.0 16.4 -24.9 15.3 -25.2 15.2 -24.2 16.2 -23.7
2025-07-01 13:05:27,363 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:05:27,363 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:05:27,363 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.461748
2025-07-01 13:05:27,364 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:05:27,364 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:05:27,364 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:05:27,365 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:05:27,365 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:05:27,365 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:04:55', tmtdew=11.34, humidity=46.1, cloud=0.0, wind=33.58, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:04:55.027', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:05:27,366 [DEBUG][       Thread-605532][   transport.py][1871] : EOF in transport thread
2025-07-01 13:05:27,453 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:05:27,465 [DEBUG][       Thread-605535][   transport.py][1871] : starting thread (client mode): 0x81e4340
2025-07-01 13:05:27,465 [DEBUG][       Thread-605535][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:05:27,480 [DEBUG][       Thread-605535][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:05:27,480 [ INFO][       Thread-605535][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:05:27,488 [DEBUG][       Thread-605535][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:05:27,488 [DEBUG][       Thread-605535][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:05:27,488 [DEBUG][       Thread-605535][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:05:27,488 [DEBUG][       Thread-605535][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:05:27,488 [DEBUG][       Thread-605535][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:05:27,488 [DEBUG][       Thread-605535][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:05:27,488 [DEBUG][       Thread-605535][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:05:27,488 [DEBUG][       Thread-605535][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:05:27,488 [DEBUG][       Thread-605535][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:05:27,488 [DEBUG][       Thread-605535][   transport.py][1871] : client lang: <none>
2025-07-01 13:05:27,488 [DEBUG][       Thread-605535][   transport.py][1871] : server lang: <none>
2025-07-01 13:05:27,488 [DEBUG][       Thread-605535][   transport.py][1871] : kex follows: False
2025-07-01 13:05:27,488 [DEBUG][       Thread-605535][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:05:27,489 [DEBUG][       Thread-605535][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:05:27,489 [DEBUG][       Thread-605535][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:05:27,489 [DEBUG][       Thread-605535][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:05:27,489 [DEBUG][       Thread-605535][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:05:27,489 [DEBUG][       Thread-605535][   transport.py][1871] : Compression: none
2025-07-01 13:05:27,489 [DEBUG][       Thread-605535][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:05:27,548 [DEBUG][       Thread-605535][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:05:27,548 [DEBUG][       Thread-605535][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:05:27,549 [DEBUG][       Thread-605535][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:05:27,549 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:05:27,550 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:05:27,566 [DEBUG][Thread-605537 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:05:27,606 [DEBUG][       Thread-605535][   transport.py][1871] : userauth is OK
2025-07-01 13:05:27,606 [DEBUG][       Thread-605535][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:05:27,606 [DEBUG][       Thread-605535][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:05:27,606 [DEBUG][       Thread-605535][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:05:27,606 [DEBUG][       Thread-605535][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:05:27,625 [ INFO][       Thread-605535][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:05:27,626 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:05:27,626 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:05:28,675 [DEBUG][       Thread-605535][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:05:28,675 [DEBUG][       Thread-605535][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:05:28,723 [DEBUG][       Thread-605535][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:05:28,723 [DEBUG][       Thread-605535][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:05:28,732 [DEBUG][       Thread-605535][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:05:28,739 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:05:28,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-07-01 13:05:28,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-07-01 13:05:28,755 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:05:28,755 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:05:28,755 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:05:28,763 [DEBUG][       Thread-605535][   transport.py][1871] : EOF in transport thread
2025-07-01 13:05:31,035 [DEBUG][Thread-605538 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:05:36,586 [DEBUG][Thread-605539 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:05:38,766 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:05:38,766 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:05:38,766 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:05:38,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-07-01 13:05:39,281 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 5, 27), 11.47, 45.7, 0.0, 36.29, 13.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:05:39,281 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:05:27
2025-07-01 13:05:39,367 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:05:39,372 [DEBUG][       Thread-605540][   transport.py][1871] : starting thread (client mode): 0x81a74f0
2025-07-01 13:05:39,372 [DEBUG][       Thread-605540][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:05:39,394 [DEBUG][       Thread-605540][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:05:39,394 [ INFO][       Thread-605540][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:05:39,398 [DEBUG][       Thread-605540][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:05:39,398 [DEBUG][       Thread-605540][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:05:39,398 [DEBUG][       Thread-605540][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:05:39,398 [DEBUG][       Thread-605540][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:05:39,398 [DEBUG][       Thread-605540][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:05:39,398 [DEBUG][       Thread-605540][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:05:39,398 [DEBUG][       Thread-605540][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:05:39,398 [DEBUG][       Thread-605540][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:05:39,398 [DEBUG][       Thread-605540][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:05:39,398 [DEBUG][       Thread-605540][   transport.py][1871] : client lang: <none>
2025-07-01 13:05:39,398 [DEBUG][       Thread-605540][   transport.py][1871] : server lang: <none>
2025-07-01 13:05:39,398 [DEBUG][       Thread-605540][   transport.py][1871] : kex follows: False
2025-07-01 13:05:39,399 [DEBUG][       Thread-605540][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:05:39,399 [DEBUG][       Thread-605540][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:05:39,399 [DEBUG][       Thread-605540][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:05:39,399 [DEBUG][       Thread-605540][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:05:39,399 [DEBUG][       Thread-605540][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:05:39,399 [DEBUG][       Thread-605540][   transport.py][1871] : Compression: none
2025-07-01 13:05:39,399 [DEBUG][       Thread-605540][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:05:39,415 [DEBUG][       Thread-605540][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:05:39,415 [DEBUG][       Thread-605540][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:05:39,416 [DEBUG][       Thread-605540][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:05:39,416 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:05:39,416 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:05:39,417 [DEBUG][       Thread-605540][   transport.py][1871] : userauth is OK
2025-07-01 13:05:39,446 [ INFO][       Thread-605540][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:05:39,446 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:05:40,240 [DEBUG][       Thread-605540][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:05:40,240 [DEBUG][       Thread-605540][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:05:40,281 [DEBUG][       Thread-605540][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:05:40,281 [DEBUG][       Thread-605540][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:05:40,284 [DEBUG][       Thread-605540][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:05:40,291 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:05:40,291 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:05:40,293 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:05:40,295 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:05:40,301 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:05:40,303 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:05:40,303 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:05:40,304 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:05:40,304 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.461748 -999.00  +13.00  38.48     50   +3.00 1 1 2 1 1   888    0 10.34 22.01 ----- 41.7 38.5 15.2 48.0 16.4 -24.9 15.3 -25.2 15.2 -24.2 16.2 -23.7
2025-07-01 13:05:40,304 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:05:40,304 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:05:40,305 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.461748
2025-07-01 13:05:40,305 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:05:40,305 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:05:40,306 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:05:40,306 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:05:40,306 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:05:40,306 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:05:27', tmtdew=11.47, humidity=45.7, cloud=0.0, wind=36.29, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:04:55.027', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:05:40,307 [DEBUG][       Thread-605540][   transport.py][1871] : EOF in transport thread
2025-07-01 13:05:40,390 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:05:40,402 [DEBUG][       Thread-605543][   transport.py][1871] : starting thread (client mode): 0x83c8730
2025-07-01 13:05:40,402 [DEBUG][       Thread-605543][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:05:40,417 [DEBUG][       Thread-605543][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:05:40,417 [ INFO][       Thread-605543][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:05:40,428 [DEBUG][       Thread-605543][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:05:40,428 [DEBUG][       Thread-605543][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:05:40,428 [DEBUG][       Thread-605543][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:05:40,428 [DEBUG][       Thread-605543][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:05:40,428 [DEBUG][       Thread-605543][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:05:40,428 [DEBUG][       Thread-605543][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:05:40,428 [DEBUG][       Thread-605543][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:05:40,428 [DEBUG][       Thread-605543][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:05:40,428 [DEBUG][       Thread-605543][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:05:40,428 [DEBUG][       Thread-605543][   transport.py][1871] : client lang: <none>
2025-07-01 13:05:40,428 [DEBUG][       Thread-605543][   transport.py][1871] : server lang: <none>
2025-07-01 13:05:40,428 [DEBUG][       Thread-605543][   transport.py][1871] : kex follows: False
2025-07-01 13:05:40,428 [DEBUG][       Thread-605543][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:05:40,428 [DEBUG][       Thread-605543][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:05:40,429 [DEBUG][       Thread-605543][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:05:40,429 [DEBUG][       Thread-605543][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:05:40,429 [DEBUG][       Thread-605543][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:05:40,429 [DEBUG][       Thread-605543][   transport.py][1871] : Compression: none
2025-07-01 13:05:40,429 [DEBUG][       Thread-605543][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:05:40,487 [DEBUG][       Thread-605543][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:05:40,487 [DEBUG][       Thread-605543][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:05:40,488 [DEBUG][       Thread-605543][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:05:40,488 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:05:40,489 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:05:40,545 [DEBUG][       Thread-605543][   transport.py][1871] : userauth is OK
2025-07-01 13:05:40,546 [DEBUG][       Thread-605543][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:05:40,546 [DEBUG][       Thread-605543][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:05:40,546 [DEBUG][       Thread-605543][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:05:40,546 [DEBUG][       Thread-605543][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:05:40,564 [ INFO][       Thread-605543][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:05:40,564 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:05:40,565 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:05:41,571 [DEBUG][       Thread-605543][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:05:41,572 [DEBUG][       Thread-605543][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:05:41,619 [DEBUG][       Thread-605543][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:05:41,620 [DEBUG][       Thread-605543][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:05:41,628 [DEBUG][       Thread-605543][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:05:41,637 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:05:41,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-07-01 13:05:41,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-07-01 13:05:41,654 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:05:41,654 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:05:41,655 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:05:41,662 [DEBUG][       Thread-605543][   transport.py][1871] : EOF in transport thread
2025-07-01 13:05:45,608 [DEBUG][Thread-605545 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:05:51,665 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:05:51,665 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:05:51,665 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:05:51,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-07-01 13:05:52,164 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 5, 27), 11.47, 45.7, 0.0, 36.29, 13.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:05:52,164 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:05:27
2025-07-01 13:05:52,249 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:05:52,253 [DEBUG][       Thread-605546][   transport.py][1871] : starting thread (client mode): 0x81d9ae0
2025-07-01 13:05:52,254 [DEBUG][       Thread-605546][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:05:52,272 [DEBUG][       Thread-605546][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:05:52,272 [ INFO][       Thread-605546][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:05:52,274 [DEBUG][       Thread-605546][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:05:52,274 [DEBUG][       Thread-605546][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:05:52,274 [DEBUG][       Thread-605546][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:05:52,274 [DEBUG][       Thread-605546][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:05:52,274 [DEBUG][       Thread-605546][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:05:52,274 [DEBUG][       Thread-605546][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:05:52,274 [DEBUG][       Thread-605546][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:05:52,274 [DEBUG][       Thread-605546][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:05:52,274 [DEBUG][       Thread-605546][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:05:52,274 [DEBUG][       Thread-605546][   transport.py][1871] : client lang: <none>
2025-07-01 13:05:52,274 [DEBUG][       Thread-605546][   transport.py][1871] : server lang: <none>
2025-07-01 13:05:52,274 [DEBUG][       Thread-605546][   transport.py][1871] : kex follows: False
2025-07-01 13:05:52,274 [DEBUG][       Thread-605546][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:05:52,274 [DEBUG][       Thread-605546][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:05:52,274 [DEBUG][       Thread-605546][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:05:52,274 [DEBUG][       Thread-605546][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:05:52,274 [DEBUG][       Thread-605546][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:05:52,274 [DEBUG][       Thread-605546][   transport.py][1871] : Compression: none
2025-07-01 13:05:52,274 [DEBUG][       Thread-605546][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:05:52,282 [DEBUG][       Thread-605546][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:05:52,282 [DEBUG][       Thread-605546][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:05:52,283 [DEBUG][       Thread-605546][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:05:52,283 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:05:52,283 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:05:52,284 [DEBUG][       Thread-605546][   transport.py][1871] : userauth is OK
2025-07-01 13:05:52,297 [ INFO][       Thread-605546][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:05:52,298 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:05:52,909 [DEBUG][       Thread-605546][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:05:52,910 [DEBUG][       Thread-605546][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:05:52,953 [DEBUG][       Thread-605546][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:05:52,953 [DEBUG][       Thread-605546][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:05:52,957 [DEBUG][       Thread-605546][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:05:52,970 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:05:52,971 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:05:52,973 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:05:52,975 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:05:52,981 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:05:52,983 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:05:52,983 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:05:52,984 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:05:52,984 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.462095 -999.00  +13.00  45.58     50   +3.10 1 1 2 1 1   888    0 10.34 22.97 ----- 38.5 45.6 25.6 51.9 16.4 -24.6 15.3 -26.5 15.2 -24.9 16.1 -23.0
2025-07-01 13:05:52,984 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:05:52,984 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:05:52,984 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.462095
2025-07-01 13:05:52,984 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:05:52,985 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:05:52,985 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:05:52,985 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:05:52,985 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:05:52,985 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:05:27', tmtdew=11.47, humidity=45.7, cloud=0.0, wind=36.29, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:05:25.008', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:05:52,986 [DEBUG][       Thread-605546][   transport.py][1871] : EOF in transport thread
2025-07-01 13:05:53,068 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:05:53,081 [DEBUG][       Thread-605549][   transport.py][1871] : starting thread (client mode): 0x81e5b40
2025-07-01 13:05:53,081 [DEBUG][       Thread-605549][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:05:53,099 [DEBUG][       Thread-605549][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:05:53,099 [ INFO][       Thread-605549][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:05:53,109 [DEBUG][       Thread-605549][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:05:53,109 [DEBUG][       Thread-605549][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:05:53,109 [DEBUG][       Thread-605549][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:05:53,110 [DEBUG][       Thread-605549][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:05:53,110 [DEBUG][       Thread-605549][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:05:53,110 [DEBUG][       Thread-605549][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:05:53,110 [DEBUG][       Thread-605549][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:05:53,110 [DEBUG][       Thread-605549][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:05:53,110 [DEBUG][       Thread-605549][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:05:53,110 [DEBUG][       Thread-605549][   transport.py][1871] : client lang: <none>
2025-07-01 13:05:53,110 [DEBUG][       Thread-605549][   transport.py][1871] : server lang: <none>
2025-07-01 13:05:53,110 [DEBUG][       Thread-605549][   transport.py][1871] : kex follows: False
2025-07-01 13:05:53,110 [DEBUG][       Thread-605549][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:05:53,110 [DEBUG][       Thread-605549][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:05:53,110 [DEBUG][       Thread-605549][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:05:53,110 [DEBUG][       Thread-605549][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:05:53,110 [DEBUG][       Thread-605549][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:05:53,110 [DEBUG][       Thread-605549][   transport.py][1871] : Compression: none
2025-07-01 13:05:53,110 [DEBUG][       Thread-605549][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:05:53,170 [DEBUG][       Thread-605549][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:05:53,171 [DEBUG][       Thread-605549][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:05:53,171 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:05:53,172 [DEBUG][       Thread-605549][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:05:53,173 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:05:53,228 [DEBUG][       Thread-605549][   transport.py][1871] : userauth is OK
2025-07-01 13:05:53,228 [DEBUG][       Thread-605549][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:05:53,228 [DEBUG][       Thread-605549][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:05:53,228 [DEBUG][       Thread-605549][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:05:53,228 [DEBUG][       Thread-605549][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:05:53,247 [ INFO][       Thread-605549][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:05:53,247 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:05:53,248 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:05:54,244 [DEBUG][       Thread-605549][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:05:54,245 [DEBUG][       Thread-605549][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:05:54,296 [DEBUG][       Thread-605549][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:05:54,296 [DEBUG][       Thread-605549][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:05:54,305 [DEBUG][       Thread-605549][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:05:54,315 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:05:54,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-07-01 13:05:54,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-07-01 13:05:54,334 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:05:54,334 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:05:54,335 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:05:54,343 [DEBUG][       Thread-605549][   transport.py][1871] : EOF in transport thread
2025-07-01 13:05:54,646 [DEBUG][Thread-605551 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:06:03,666 [DEBUG][Thread-605552 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:06:04,345 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:06:04,345 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:06:04,345 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:06:04,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-07-01 13:06:04,850 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 5, 59), 11.5, 45.63, 0.0, 39.57, 13.37, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:06:04,850 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:05:59
2025-07-01 13:06:04,937 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:06:04,942 [DEBUG][       Thread-605553][   transport.py][1871] : starting thread (client mode): 0x75a9960
2025-07-01 13:06:04,943 [DEBUG][       Thread-605553][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:06:04,958 [DEBUG][       Thread-605553][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:06:04,958 [ INFO][       Thread-605553][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:06:04,961 [DEBUG][       Thread-605553][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:06:04,961 [DEBUG][       Thread-605553][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:06:04,961 [DEBUG][       Thread-605553][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:06:04,961 [DEBUG][       Thread-605553][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:06:04,961 [DEBUG][       Thread-605553][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:06:04,961 [DEBUG][       Thread-605553][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:06:04,961 [DEBUG][       Thread-605553][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:06:04,961 [DEBUG][       Thread-605553][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:06:04,961 [DEBUG][       Thread-605553][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:06:04,961 [DEBUG][       Thread-605553][   transport.py][1871] : client lang: <none>
2025-07-01 13:06:04,961 [DEBUG][       Thread-605553][   transport.py][1871] : server lang: <none>
2025-07-01 13:06:04,961 [DEBUG][       Thread-605553][   transport.py][1871] : kex follows: False
2025-07-01 13:06:04,961 [DEBUG][       Thread-605553][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:06:04,961 [DEBUG][       Thread-605553][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:06:04,961 [DEBUG][       Thread-605553][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:06:04,961 [DEBUG][       Thread-605553][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:06:04,961 [DEBUG][       Thread-605553][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:06:04,961 [DEBUG][       Thread-605553][   transport.py][1871] : Compression: none
2025-07-01 13:06:04,961 [DEBUG][       Thread-605553][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:06:04,970 [DEBUG][       Thread-605553][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:06:04,970 [DEBUG][       Thread-605553][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:06:04,971 [DEBUG][       Thread-605553][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:06:04,971 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:06:04,971 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:06:04,972 [DEBUG][       Thread-605553][   transport.py][1871] : userauth is OK
2025-07-01 13:06:04,984 [ INFO][       Thread-605553][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:06:04,985 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:06:05,798 [DEBUG][       Thread-605553][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:06:05,798 [DEBUG][       Thread-605553][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:06:05,841 [DEBUG][       Thread-605553][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:06:05,841 [DEBUG][       Thread-605553][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:06:05,843 [DEBUG][       Thread-605553][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:06:05,854 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:06:05,854 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:06:05,856 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:06:05,857 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:06:05,860 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:06:05,861 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:06:05,861 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:06:05,861 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:06:05,861 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.462095 -999.00  +13.00  45.58     50   +3.10 1 1 2 1 1   888    0 10.34 22.97 ----- 38.5 45.6 25.6 51.9 16.4 -24.6 15.3 -26.5 15.2 -24.9 16.1 -23.0
2025-07-01 13:06:05,861 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:06:05,861 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:06:05,861 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.462095
2025-07-01 13:06:05,861 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:06:05,862 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:06:05,862 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:06:05,862 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:06:05,862 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:06:05,862 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:05:59', tmtdew=11.5, humidity=45.63, cloud=0.0, wind=39.57, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:05:25.008', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:06:05,862 [DEBUG][       Thread-605553][   transport.py][1871] : EOF in transport thread
2025-07-01 13:06:05,933 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:06:05,945 [DEBUG][       Thread-605556][   transport.py][1871] : starting thread (client mode): 0x827d9f0
2025-07-01 13:06:05,945 [DEBUG][       Thread-605556][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:06:05,961 [DEBUG][       Thread-605556][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:06:05,961 [ INFO][       Thread-605556][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:06:05,970 [DEBUG][       Thread-605556][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:06:05,970 [DEBUG][       Thread-605556][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:06:05,970 [DEBUG][       Thread-605556][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:06:05,970 [DEBUG][       Thread-605556][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:06:05,970 [DEBUG][       Thread-605556][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:06:05,970 [DEBUG][       Thread-605556][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:06:05,970 [DEBUG][       Thread-605556][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:06:05,970 [DEBUG][       Thread-605556][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:06:05,970 [DEBUG][       Thread-605556][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:06:05,970 [DEBUG][       Thread-605556][   transport.py][1871] : client lang: <none>
2025-07-01 13:06:05,970 [DEBUG][       Thread-605556][   transport.py][1871] : server lang: <none>
2025-07-01 13:06:05,970 [DEBUG][       Thread-605556][   transport.py][1871] : kex follows: False
2025-07-01 13:06:05,970 [DEBUG][       Thread-605556][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:06:05,970 [DEBUG][       Thread-605556][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:06:05,970 [DEBUG][       Thread-605556][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:06:05,970 [DEBUG][       Thread-605556][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:06:05,970 [DEBUG][       Thread-605556][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:06:05,970 [DEBUG][       Thread-605556][   transport.py][1871] : Compression: none
2025-07-01 13:06:05,971 [DEBUG][       Thread-605556][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:06:06,026 [DEBUG][       Thread-605556][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:06:06,027 [DEBUG][       Thread-605556][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:06:06,027 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:06:06,028 [DEBUG][       Thread-605556][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:06:06,028 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:06:06,086 [DEBUG][       Thread-605556][   transport.py][1871] : userauth is OK
2025-07-01 13:06:06,087 [DEBUG][       Thread-605556][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:06:06,087 [DEBUG][       Thread-605556][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:06:06,087 [DEBUG][       Thread-605556][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:06:06,087 [DEBUG][       Thread-605556][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:06:06,105 [ INFO][       Thread-605556][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:06:06,106 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:06:06,106 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:06:07,124 [DEBUG][       Thread-605556][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:06:07,124 [DEBUG][       Thread-605556][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:06:07,172 [DEBUG][       Thread-605556][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:06:07,172 [DEBUG][       Thread-605556][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:06:07,182 [DEBUG][       Thread-605556][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:06:07,191 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:06:07,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-07-01 13:06:07,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-07-01 13:06:07,210 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:06:07,210 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:06:07,210 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:06:07,218 [DEBUG][       Thread-605556][   transport.py][1871] : EOF in transport thread
2025-07-01 13:06:12,688 [DEBUG][Thread-605558 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:06:17,221 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:06:17,221 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:06:17,221 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:06:17,224 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:06:17,717 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 5, 59), 11.5, 45.63, 0.0, 39.57, 13.37, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:06:17,717 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:05:59
2025-07-01 13:06:17,804 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:06:17,808 [DEBUG][       Thread-605559][   transport.py][1871] : starting thread (client mode): 0x75aa9b0
2025-07-01 13:06:17,808 [DEBUG][       Thread-605559][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:06:17,830 [DEBUG][       Thread-605559][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:06:17,830 [ INFO][       Thread-605559][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:06:17,833 [DEBUG][       Thread-605559][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:06:17,833 [DEBUG][       Thread-605559][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:06:17,833 [DEBUG][       Thread-605559][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:06:17,833 [DEBUG][       Thread-605559][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:06:17,833 [DEBUG][       Thread-605559][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:06:17,833 [DEBUG][       Thread-605559][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:06:17,833 [DEBUG][       Thread-605559][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:06:17,834 [DEBUG][       Thread-605559][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:06:17,834 [DEBUG][       Thread-605559][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:06:17,834 [DEBUG][       Thread-605559][   transport.py][1871] : client lang: <none>
2025-07-01 13:06:17,834 [DEBUG][       Thread-605559][   transport.py][1871] : server lang: <none>
2025-07-01 13:06:17,834 [DEBUG][       Thread-605559][   transport.py][1871] : kex follows: False
2025-07-01 13:06:17,834 [DEBUG][       Thread-605559][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:06:17,834 [DEBUG][       Thread-605559][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:06:17,834 [DEBUG][       Thread-605559][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:06:17,834 [DEBUG][       Thread-605559][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:06:17,834 [DEBUG][       Thread-605559][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:06:17,834 [DEBUG][       Thread-605559][   transport.py][1871] : Compression: none
2025-07-01 13:06:17,834 [DEBUG][       Thread-605559][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:06:17,852 [DEBUG][       Thread-605559][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:06:17,852 [DEBUG][       Thread-605559][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:06:17,853 [DEBUG][       Thread-605559][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:06:17,853 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:06:17,853 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:06:17,854 [DEBUG][       Thread-605559][   transport.py][1871] : userauth is OK
2025-07-01 13:06:17,867 [ INFO][       Thread-605559][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:06:17,867 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:06:18,608 [DEBUG][       Thread-605559][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:06:18,609 [DEBUG][       Thread-605559][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:06:18,653 [DEBUG][       Thread-605559][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:06:18,653 [DEBUG][       Thread-605559][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:06:18,656 [DEBUG][       Thread-605559][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:06:18,668 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:06:18,669 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:06:18,670 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:06:18,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:06:18,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:06:18,678 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:06:18,679 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:06:18,679 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:06:18,679 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.462095 -999.00  +13.00  45.58     50   +3.10 1 1 2 1 1   888    0 10.34 22.97 ----- 38.5 45.6 25.6 51.9 16.4 -24.6 15.3 -26.5 15.2 -24.9 16.1 -23.0
2025-07-01 13:06:18,679 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:06:18,679 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:06:18,680 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.462095
2025-07-01 13:06:18,680 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:06:18,681 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:06:18,681 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:06:18,681 [DEBUG][       Thread-605559][   transport.py][1871] : EOF in transport thread
2025-07-01 13:06:18,681 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:06:18,682 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:06:18,682 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:05:59', tmtdew=11.5, humidity=45.63, cloud=0.0, wind=39.57, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:05:25.008', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:06:18,764 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:06:18,773 [DEBUG][       Thread-605562][   transport.py][1871] : starting thread (client mode): 0x83c8520
2025-07-01 13:06:18,773 [DEBUG][       Thread-605562][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:06:18,788 [DEBUG][       Thread-605562][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:06:18,788 [ INFO][       Thread-605562][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:06:18,797 [DEBUG][       Thread-605562][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:06:18,797 [DEBUG][       Thread-605562][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:06:18,797 [DEBUG][       Thread-605562][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:06:18,797 [DEBUG][       Thread-605562][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:06:18,797 [DEBUG][       Thread-605562][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:06:18,797 [DEBUG][       Thread-605562][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:06:18,798 [DEBUG][       Thread-605562][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:06:18,798 [DEBUG][       Thread-605562][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:06:18,798 [DEBUG][       Thread-605562][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:06:18,798 [DEBUG][       Thread-605562][   transport.py][1871] : client lang: <none>
2025-07-01 13:06:18,798 [DEBUG][       Thread-605562][   transport.py][1871] : server lang: <none>
2025-07-01 13:06:18,798 [DEBUG][       Thread-605562][   transport.py][1871] : kex follows: False
2025-07-01 13:06:18,798 [DEBUG][       Thread-605562][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:06:18,798 [DEBUG][       Thread-605562][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:06:18,798 [DEBUG][       Thread-605562][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:06:18,798 [DEBUG][       Thread-605562][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:06:18,798 [DEBUG][       Thread-605562][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:06:18,798 [DEBUG][       Thread-605562][   transport.py][1871] : Compression: none
2025-07-01 13:06:18,798 [DEBUG][       Thread-605562][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:06:18,858 [DEBUG][       Thread-605562][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:06:18,858 [DEBUG][       Thread-605562][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:06:18,859 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:06:18,860 [DEBUG][       Thread-605562][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:06:18,860 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:06:18,914 [DEBUG][       Thread-605562][   transport.py][1871] : userauth is OK
2025-07-01 13:06:18,914 [DEBUG][       Thread-605562][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:06:18,914 [DEBUG][       Thread-605562][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:06:18,914 [DEBUG][       Thread-605562][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:06:18,914 [DEBUG][       Thread-605562][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:06:18,932 [ INFO][       Thread-605562][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:06:18,933 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:06:18,933 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:06:19,918 [DEBUG][       Thread-605562][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:06:19,918 [DEBUG][       Thread-605562][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:06:19,968 [DEBUG][       Thread-605562][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:06:19,968 [DEBUG][       Thread-605562][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:06:19,977 [DEBUG][       Thread-605562][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:06:19,986 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:06:19,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-07-01 13:06:19,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-07-01 13:06:20,004 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:06:20,005 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:06:20,005 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:06:20,013 [DEBUG][       Thread-605562][   transport.py][1871] : EOF in transport thread
2025-07-01 13:06:21,395 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:06:21,396 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:06:21,722 [DEBUG][Thread-605564 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:06:30,016 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:06:30,016 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:06:30,016 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:06:30,019 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:06:30,518 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 5, 59), 11.5, 45.63, 0.0, 39.57, 13.37, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:06:30,518 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:05:59
2025-07-01 13:06:30,605 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:06:30,611 [DEBUG][       Thread-605565][   transport.py][1871] : starting thread (client mode): 0x75aa5c0
2025-07-01 13:06:30,611 [DEBUG][       Thread-605565][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:06:30,631 [DEBUG][       Thread-605565][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:06:30,631 [ INFO][       Thread-605565][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:06:30,635 [DEBUG][       Thread-605565][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:06:30,635 [DEBUG][       Thread-605565][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:06:30,635 [DEBUG][       Thread-605565][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:06:30,635 [DEBUG][       Thread-605565][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:06:30,635 [DEBUG][       Thread-605565][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:06:30,635 [DEBUG][       Thread-605565][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:06:30,635 [DEBUG][       Thread-605565][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:06:30,635 [DEBUG][       Thread-605565][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:06:30,635 [DEBUG][       Thread-605565][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:06:30,635 [DEBUG][       Thread-605565][   transport.py][1871] : client lang: <none>
2025-07-01 13:06:30,635 [DEBUG][       Thread-605565][   transport.py][1871] : server lang: <none>
2025-07-01 13:06:30,635 [DEBUG][       Thread-605565][   transport.py][1871] : kex follows: False
2025-07-01 13:06:30,635 [DEBUG][       Thread-605565][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:06:30,635 [DEBUG][       Thread-605565][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:06:30,635 [DEBUG][       Thread-605565][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:06:30,636 [DEBUG][       Thread-605565][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:06:30,636 [DEBUG][       Thread-605565][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:06:30,636 [DEBUG][       Thread-605565][   transport.py][1871] : Compression: none
2025-07-01 13:06:30,636 [DEBUG][       Thread-605565][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:06:30,651 [DEBUG][       Thread-605565][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:06:30,651 [DEBUG][       Thread-605565][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:06:30,652 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:06:30,652 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:06:30,652 [DEBUG][       Thread-605565][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:06:30,653 [DEBUG][       Thread-605565][   transport.py][1871] : userauth is OK
2025-07-01 13:06:30,678 [ INFO][       Thread-605565][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:06:30,679 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:06:30,743 [DEBUG][Thread-605567 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:06:31,089 [DEBUG][Thread-605568 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:06:31,371 [DEBUG][       Thread-605565][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:06:31,372 [DEBUG][       Thread-605565][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:06:31,413 [DEBUG][       Thread-605565][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:06:31,413 [DEBUG][       Thread-605565][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:06:31,416 [DEBUG][       Thread-605565][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:06:31,423 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:06:31,423 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:06:31,425 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:06:31,428 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:06:31,434 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:06:31,436 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:06:31,436 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:06:31,437 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:06:31,437 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.462443 -999.00  +13.20  33.09     51   +3.30 1 1 2 1 1   888    0 10.20 21.85 ----- 40.7 33.1 34.2 49.0 16.3 -25.3 15.4 -25.7 15.3 -24.1 16.1 -23.9
2025-07-01 13:06:31,437 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:06:31,437 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:06:31,437 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.462443
2025-07-01 13:06:31,437 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:06:31,438 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:06:31,438 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:06:31,438 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:06:31,438 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:06:31,438 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:05:59', tmtdew=11.5, humidity=45.63, cloud=0.0, wind=39.57, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:05:55.075', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:06:31,439 [DEBUG][       Thread-605565][   transport.py][1871] : EOF in transport thread
2025-07-01 13:06:31,525 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:06:31,536 [DEBUG][       Thread-605570][   transport.py][1871] : starting thread (client mode): 0x83c8520
2025-07-01 13:06:31,536 [DEBUG][       Thread-605570][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:06:31,553 [DEBUG][       Thread-605570][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:06:31,553 [ INFO][       Thread-605570][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:06:31,560 [DEBUG][       Thread-605570][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:06:31,560 [DEBUG][       Thread-605570][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:06:31,560 [DEBUG][       Thread-605570][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:06:31,560 [DEBUG][       Thread-605570][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:06:31,560 [DEBUG][       Thread-605570][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:06:31,560 [DEBUG][       Thread-605570][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:06:31,560 [DEBUG][       Thread-605570][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:06:31,560 [DEBUG][       Thread-605570][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:06:31,560 [DEBUG][       Thread-605570][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:06:31,560 [DEBUG][       Thread-605570][   transport.py][1871] : client lang: <none>
2025-07-01 13:06:31,560 [DEBUG][       Thread-605570][   transport.py][1871] : server lang: <none>
2025-07-01 13:06:31,560 [DEBUG][       Thread-605570][   transport.py][1871] : kex follows: False
2025-07-01 13:06:31,560 [DEBUG][       Thread-605570][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:06:31,560 [DEBUG][       Thread-605570][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:06:31,560 [DEBUG][       Thread-605570][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:06:31,560 [DEBUG][       Thread-605570][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:06:31,560 [DEBUG][       Thread-605570][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:06:31,560 [DEBUG][       Thread-605570][   transport.py][1871] : Compression: none
2025-07-01 13:06:31,560 [DEBUG][       Thread-605570][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:06:31,617 [DEBUG][       Thread-605570][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:06:31,618 [DEBUG][       Thread-605570][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:06:31,618 [DEBUG][       Thread-605570][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:06:31,618 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:06:31,619 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:06:31,673 [DEBUG][       Thread-605570][   transport.py][1871] : userauth is OK
2025-07-01 13:06:31,673 [DEBUG][       Thread-605570][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:06:31,673 [DEBUG][       Thread-605570][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:06:31,673 [DEBUG][       Thread-605570][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:06:31,673 [DEBUG][       Thread-605570][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:06:31,688 [ INFO][       Thread-605570][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:06:31,688 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:06:31,688 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:06:32,722 [DEBUG][       Thread-605570][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:06:32,722 [DEBUG][       Thread-605570][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:06:32,771 [DEBUG][       Thread-605570][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:06:32,771 [DEBUG][       Thread-605570][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:06:32,779 [DEBUG][       Thread-605570][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:06:32,787 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:06: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')
2025-07-01 13:06:32,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-07-01 13:06:32,803 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:06:32,803 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:06:32,803 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:06:32,810 [DEBUG][       Thread-605570][   transport.py][1871] : EOF in transport thread
2025-07-01 13:06:39,760 [DEBUG][Thread-605572 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:06:42,813 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:06:42,813 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:06:42,813 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:06:42,816 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:06:43,314 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 6, 30), 11.51, 45.48, 0.0, 35.71, 13.27, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:06:43,314 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:06:30
2025-07-01 13:06:43,400 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:06:43,403 [DEBUG][       Thread-605573][   transport.py][1871] : starting thread (client mode): 0x81d96c0
2025-07-01 13:06:43,403 [DEBUG][       Thread-605573][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:06:43,423 [DEBUG][       Thread-605573][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:06:43,424 [ INFO][       Thread-605573][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:06:43,425 [DEBUG][       Thread-605573][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:06:43,425 [DEBUG][       Thread-605573][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:06:43,425 [DEBUG][       Thread-605573][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:06:43,425 [DEBUG][       Thread-605573][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:06:43,425 [DEBUG][       Thread-605573][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:06:43,425 [DEBUG][       Thread-605573][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:06:43,425 [DEBUG][       Thread-605573][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:06:43,425 [DEBUG][       Thread-605573][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:06:43,425 [DEBUG][       Thread-605573][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:06:43,425 [DEBUG][       Thread-605573][   transport.py][1871] : client lang: <none>
2025-07-01 13:06:43,426 [DEBUG][       Thread-605573][   transport.py][1871] : server lang: <none>
2025-07-01 13:06:43,426 [DEBUG][       Thread-605573][   transport.py][1871] : kex follows: False
2025-07-01 13:06:43,426 [DEBUG][       Thread-605573][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:06:43,426 [DEBUG][       Thread-605573][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:06:43,426 [DEBUG][       Thread-605573][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:06:43,426 [DEBUG][       Thread-605573][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:06:43,426 [DEBUG][       Thread-605573][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:06:43,426 [DEBUG][       Thread-605573][   transport.py][1871] : Compression: none
2025-07-01 13:06:43,426 [DEBUG][       Thread-605573][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:06:43,438 [DEBUG][       Thread-605573][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:06:43,438 [DEBUG][       Thread-605573][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:06:43,439 [DEBUG][       Thread-605573][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:06:43,439 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:06:43,439 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:06:43,440 [DEBUG][       Thread-605573][   transport.py][1871] : userauth is OK
2025-07-01 13:06:43,466 [ INFO][       Thread-605573][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:06:43,466 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:06:44,283 [DEBUG][       Thread-605573][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:06:44,283 [DEBUG][       Thread-605573][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:06:44,325 [DEBUG][       Thread-605573][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:06:44,325 [DEBUG][       Thread-605573][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:06:44,328 [DEBUG][       Thread-605573][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:06:44,341 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:06:44,341 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:06:44,343 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:06:44,346 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:06:44,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:06:44,353 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:06:44,353 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:06:44,354 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:06:44,354 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.462443 -999.00  +13.20  33.09     51   +3.30 1 1 2 1 1   888    0 10.20 21.85 ----- 40.7 33.1 34.2 49.0 16.3 -25.3 15.4 -25.7 15.3 -24.1 16.1 -23.9
2025-07-01 13:06:44,354 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:06:44,354 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:06:44,354 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.462443
2025-07-01 13:06:44,355 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:06:44,355 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:06:44,355 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:06:44,356 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:06:44,356 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:06:44,356 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:06:30', tmtdew=11.51, humidity=45.48, cloud=0.0, wind=35.71, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:05:55.075', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:06:44,357 [DEBUG][       Thread-605573][   transport.py][1871] : EOF in transport thread
2025-07-01 13:06:44,439 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:06:44,449 [DEBUG][       Thread-605576][   transport.py][1871] : starting thread (client mode): 0x818cc10
2025-07-01 13:06:44,449 [DEBUG][       Thread-605576][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:06:44,464 [DEBUG][       Thread-605576][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:06:44,464 [ INFO][       Thread-605576][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:06:44,478 [DEBUG][       Thread-605576][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:06:44,478 [DEBUG][       Thread-605576][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:06:44,478 [DEBUG][       Thread-605576][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:06:44,478 [DEBUG][       Thread-605576][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:06:44,478 [DEBUG][       Thread-605576][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:06:44,478 [DEBUG][       Thread-605576][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:06:44,478 [DEBUG][       Thread-605576][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:06:44,478 [DEBUG][       Thread-605576][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:06:44,478 [DEBUG][       Thread-605576][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:06:44,478 [DEBUG][       Thread-605576][   transport.py][1871] : client lang: <none>
2025-07-01 13:06:44,478 [DEBUG][       Thread-605576][   transport.py][1871] : server lang: <none>
2025-07-01 13:06:44,478 [DEBUG][       Thread-605576][   transport.py][1871] : kex follows: False
2025-07-01 13:06:44,478 [DEBUG][       Thread-605576][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:06:44,478 [DEBUG][       Thread-605576][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:06:44,479 [DEBUG][       Thread-605576][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:06:44,479 [DEBUG][       Thread-605576][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:06:44,479 [DEBUG][       Thread-605576][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:06:44,479 [DEBUG][       Thread-605576][   transport.py][1871] : Compression: none
2025-07-01 13:06:44,479 [DEBUG][       Thread-605576][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:06:44,535 [DEBUG][       Thread-605576][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:06:44,535 [DEBUG][       Thread-605576][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:06:44,536 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:06:44,537 [DEBUG][       Thread-605576][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:06:44,537 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:06:44,595 [DEBUG][       Thread-605576][   transport.py][1871] : userauth is OK
2025-07-01 13:06:44,595 [DEBUG][       Thread-605576][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:06:44,595 [DEBUG][       Thread-605576][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:06:44,595 [DEBUG][       Thread-605576][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:06:44,595 [DEBUG][       Thread-605576][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:06:44,614 [ INFO][       Thread-605576][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:06:44,615 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:06:44,615 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:06:45,621 [DEBUG][       Thread-605576][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:06:45,622 [DEBUG][       Thread-605576][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:06:45,676 [DEBUG][       Thread-605576][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:06:45,676 [DEBUG][       Thread-605576][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:06:45,686 [DEBUG][       Thread-605576][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:06:45,694 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:06:45,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-07-01 13:06:45,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-07-01 13:06:45,712 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:06:45,712 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:06:45,713 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:06:45,721 [DEBUG][       Thread-605576][   transport.py][1871] : EOF in transport thread
2025-07-01 13:06:48,780 [DEBUG][Thread-605578 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:06:55,723 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:06:55,723 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:06:55,723 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:06:55,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-07-01 13:06:56,213 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 6, 30), 11.51, 45.48, 0.0, 35.71, 13.27, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:06:56,213 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:06:30
2025-07-01 13:06:56,299 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:06:56,304 [DEBUG][       Thread-605579][   transport.py][1871] : starting thread (client mode): 0x81a75e0
2025-07-01 13:06:56,304 [DEBUG][       Thread-605579][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:06:56,324 [DEBUG][       Thread-605579][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:06:56,324 [ INFO][       Thread-605579][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:06:56,327 [DEBUG][       Thread-605579][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:06:56,327 [DEBUG][       Thread-605579][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:06:56,327 [DEBUG][       Thread-605579][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:06:56,327 [DEBUG][       Thread-605579][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:06:56,327 [DEBUG][       Thread-605579][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:06:56,327 [DEBUG][       Thread-605579][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:06:56,327 [DEBUG][       Thread-605579][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:06:56,327 [DEBUG][       Thread-605579][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:06:56,327 [DEBUG][       Thread-605579][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:06:56,327 [DEBUG][       Thread-605579][   transport.py][1871] : client lang: <none>
2025-07-01 13:06:56,327 [DEBUG][       Thread-605579][   transport.py][1871] : server lang: <none>
2025-07-01 13:06:56,327 [DEBUG][       Thread-605579][   transport.py][1871] : kex follows: False
2025-07-01 13:06:56,327 [DEBUG][       Thread-605579][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:06:56,328 [DEBUG][       Thread-605579][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:06:56,328 [DEBUG][       Thread-605579][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:06:56,328 [DEBUG][       Thread-605579][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:06:56,328 [DEBUG][       Thread-605579][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:06:56,328 [DEBUG][       Thread-605579][   transport.py][1871] : Compression: none
2025-07-01 13:06:56,328 [DEBUG][       Thread-605579][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:06:56,344 [DEBUG][       Thread-605579][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:06:56,345 [DEBUG][       Thread-605579][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:06:56,345 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:06:56,345 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:06:56,346 [DEBUG][       Thread-605579][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:06:56,386 [DEBUG][       Thread-605579][   transport.py][1871] : userauth is OK
2025-07-01 13:06:56,411 [ INFO][       Thread-605579][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:06:56,411 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:06:57,235 [DEBUG][       Thread-605579][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:06:57,236 [DEBUG][       Thread-605579][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:06:57,277 [DEBUG][       Thread-605579][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:06:57,277 [DEBUG][       Thread-605579][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:06:57,280 [DEBUG][       Thread-605579][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:06:57,295 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:06:57,295 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:06:57,297 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:06:57,299 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:06:57,303 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:06:57,305 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:06:57,305 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:06:57,306 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:06:57,306 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.462443 -999.00  +13.20  33.09     51   +3.30 1 1 2 1 1   888    0 10.20 21.85 ----- 40.7 33.1 34.2 49.0 16.3 -25.3 15.4 -25.7 15.3 -24.1 16.1 -23.9
2025-07-01 13:06:57,306 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:06:57,306 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:06:57,306 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.462443
2025-07-01 13:06:57,306 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:06:57,307 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:06:57,307 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:06:57,307 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:06:57,307 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:06:57,307 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:06:30', tmtdew=11.51, humidity=45.48, cloud=0.0, wind=35.71, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:05:55.075', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:06:57,308 [DEBUG][       Thread-605579][   transport.py][1871] : EOF in transport thread
2025-07-01 13:06:57,384 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:06:57,395 [DEBUG][       Thread-605582][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 13:06:57,395 [DEBUG][       Thread-605582][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:06:57,411 [DEBUG][       Thread-605582][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:06:57,411 [ INFO][       Thread-605582][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:06:57,418 [DEBUG][       Thread-605582][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:06:57,418 [DEBUG][       Thread-605582][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:06:57,418 [DEBUG][       Thread-605582][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:06:57,419 [DEBUG][       Thread-605582][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:06:57,419 [DEBUG][       Thread-605582][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:06:57,419 [DEBUG][       Thread-605582][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:06:57,419 [DEBUG][       Thread-605582][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:06:57,419 [DEBUG][       Thread-605582][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:06:57,419 [DEBUG][       Thread-605582][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:06:57,419 [DEBUG][       Thread-605582][   transport.py][1871] : client lang: <none>
2025-07-01 13:06:57,419 [DEBUG][       Thread-605582][   transport.py][1871] : server lang: <none>
2025-07-01 13:06:57,419 [DEBUG][       Thread-605582][   transport.py][1871] : kex follows: False
2025-07-01 13:06:57,419 [DEBUG][       Thread-605582][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:06:57,419 [DEBUG][       Thread-605582][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:06:57,419 [DEBUG][       Thread-605582][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:06:57,419 [DEBUG][       Thread-605582][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:06:57,419 [DEBUG][       Thread-605582][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:06:57,419 [DEBUG][       Thread-605582][   transport.py][1871] : Compression: none
2025-07-01 13:06:57,419 [DEBUG][       Thread-605582][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:06:57,478 [DEBUG][       Thread-605582][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:06:57,479 [DEBUG][       Thread-605582][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:06:57,479 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:06:57,480 [DEBUG][       Thread-605582][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:06:57,481 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:06:57,534 [DEBUG][       Thread-605582][   transport.py][1871] : userauth is OK
2025-07-01 13:06:57,534 [DEBUG][       Thread-605582][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:06:57,534 [DEBUG][       Thread-605582][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:06:57,535 [DEBUG][       Thread-605582][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:06:57,535 [DEBUG][       Thread-605582][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:06:57,553 [ INFO][       Thread-605582][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:06:57,554 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:06:57,554 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:06:57,816 [DEBUG][Thread-605584 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:06:58,573 [DEBUG][       Thread-605582][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:06:58,574 [DEBUG][       Thread-605582][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:06:58,624 [DEBUG][       Thread-605582][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:06:58,624 [DEBUG][       Thread-605582][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:06:58,633 [DEBUG][       Thread-605582][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:06:58,643 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:06:58,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-07-01 13:06:58,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-07-01 13:06:58,661 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:06:58,661 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:06:58,662 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:06:58,670 [DEBUG][       Thread-605582][   transport.py][1871] : EOF in transport thread
2025-07-01 13:07:06,837 [DEBUG][Thread-605585 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:07:08,672 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:07:08,672 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:07:08,672 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:07:08,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-07-01 13:07:09,169 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 7, 2), 11.42, 45.75, 0.0, 35.46, 13.18, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:07:09,169 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:07:02
2025-07-01 13:07:09,256 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:07:09,260 [DEBUG][       Thread-605586][   transport.py][1871] : starting thread (client mode): 0x81da170
2025-07-01 13:07:09,260 [DEBUG][       Thread-605586][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:07:09,282 [DEBUG][       Thread-605586][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:07:09,282 [ INFO][       Thread-605586][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:07:09,285 [DEBUG][       Thread-605586][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:07:09,285 [DEBUG][       Thread-605586][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:07:09,285 [DEBUG][       Thread-605586][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:07:09,285 [DEBUG][       Thread-605586][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:07:09,285 [DEBUG][       Thread-605586][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:07:09,285 [DEBUG][       Thread-605586][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:07:09,285 [DEBUG][       Thread-605586][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:07:09,285 [DEBUG][       Thread-605586][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:07:09,285 [DEBUG][       Thread-605586][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:07:09,285 [DEBUG][       Thread-605586][   transport.py][1871] : client lang: <none>
2025-07-01 13:07:09,285 [DEBUG][       Thread-605586][   transport.py][1871] : server lang: <none>
2025-07-01 13:07:09,285 [DEBUG][       Thread-605586][   transport.py][1871] : kex follows: False
2025-07-01 13:07:09,285 [DEBUG][       Thread-605586][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:07:09,285 [DEBUG][       Thread-605586][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:07:09,286 [DEBUG][       Thread-605586][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:07:09,286 [DEBUG][       Thread-605586][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:07:09,286 [DEBUG][       Thread-605586][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:07:09,286 [DEBUG][       Thread-605586][   transport.py][1871] : Compression: none
2025-07-01 13:07:09,286 [DEBUG][       Thread-605586][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:07:09,300 [DEBUG][       Thread-605586][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:07:09,300 [DEBUG][       Thread-605586][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:07:09,301 [DEBUG][       Thread-605586][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:07:09,301 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:07:09,301 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:07:09,302 [DEBUG][       Thread-605586][   transport.py][1871] : userauth is OK
2025-07-01 13:07:09,325 [ INFO][       Thread-605586][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:07:09,326 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:07:09,977 [DEBUG][       Thread-605586][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:07:09,977 [DEBUG][       Thread-605586][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:07:10,021 [DEBUG][       Thread-605586][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:07:10,021 [DEBUG][       Thread-605586][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:07:10,024 [DEBUG][       Thread-605586][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:07:10,036 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:07:10,036 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:07:10,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:07:10,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:07:10,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:07:10,047 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:07:10,048 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:07:10,048 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:07:10,049 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.463137 -999.00  +12.90  35.61     51   +3.00 1 1 2 1 1   888    0 10.37 22.56 ----- 36.0 35.6 26.2 53.5 16.3 -26.2 15.3 -26.4 15.2 -24.5 16.2 -23.5
2025-07-01 13:07:10,049 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:07:10,049 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:07:10,049 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.463137
2025-07-01 13:07:10,049 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:07:10,050 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:07:10,050 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:07:10,050 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:07:10,050 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:07:10,050 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:07:02', tmtdew=11.42, humidity=45.75, cloud=0.0, wind=35.46, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:06:55.037', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:07:10,051 [DEBUG][       Thread-605586][   transport.py][1871] : EOF in transport thread
2025-07-01 13:07:10,128 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:07:10,137 [DEBUG][       Thread-605589][   transport.py][1871] : starting thread (client mode): 0x8393c40
2025-07-01 13:07:10,137 [DEBUG][       Thread-605589][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:07:10,152 [DEBUG][       Thread-605589][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:07:10,152 [ INFO][       Thread-605589][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:07:10,160 [DEBUG][       Thread-605589][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:07:10,160 [DEBUG][       Thread-605589][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:07:10,160 [DEBUG][       Thread-605589][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:07:10,160 [DEBUG][       Thread-605589][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:07:10,160 [DEBUG][       Thread-605589][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:07:10,160 [DEBUG][       Thread-605589][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:07:10,160 [DEBUG][       Thread-605589][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:07:10,160 [DEBUG][       Thread-605589][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:07:10,160 [DEBUG][       Thread-605589][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:07:10,160 [DEBUG][       Thread-605589][   transport.py][1871] : client lang: <none>
2025-07-01 13:07:10,160 [DEBUG][       Thread-605589][   transport.py][1871] : server lang: <none>
2025-07-01 13:07:10,160 [DEBUG][       Thread-605589][   transport.py][1871] : kex follows: False
2025-07-01 13:07:10,160 [DEBUG][       Thread-605589][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:07:10,160 [DEBUG][       Thread-605589][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:07:10,160 [DEBUG][       Thread-605589][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:07:10,160 [DEBUG][       Thread-605589][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:07:10,160 [DEBUG][       Thread-605589][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:07:10,160 [DEBUG][       Thread-605589][   transport.py][1871] : Compression: none
2025-07-01 13:07:10,160 [DEBUG][       Thread-605589][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:07:10,223 [DEBUG][       Thread-605589][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:07:10,224 [DEBUG][       Thread-605589][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:07:10,225 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:07:10,226 [DEBUG][       Thread-605589][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:07:10,226 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:07:10,282 [DEBUG][       Thread-605589][   transport.py][1871] : userauth is OK
2025-07-01 13:07:10,282 [DEBUG][       Thread-605589][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:07:10,283 [DEBUG][       Thread-605589][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:07:10,283 [DEBUG][       Thread-605589][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:07:10,283 [DEBUG][       Thread-605589][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:07:10,311 [ INFO][       Thread-605589][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:07:10,311 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:07:10,311 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:07:11,324 [DEBUG][       Thread-605589][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:07:11,324 [DEBUG][       Thread-605589][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:07:11,372 [DEBUG][       Thread-605589][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:07:11,372 [DEBUG][       Thread-605589][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:07:11,382 [DEBUG][       Thread-605589][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:07:11,391 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:07:11,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-07-01 13:07:11,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-07-01 13:07:11,409 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:07:11,410 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:07:11,410 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:07:11,418 [DEBUG][       Thread-605589][   transport.py][1871] : EOF in transport thread
2025-07-01 13:07:15,857 [DEBUG][Thread-605591 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:07:21,421 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:07:21,421 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:07:21,421 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:07:21,424 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:07:21,534 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:07:21,535 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:07:21,926 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 7, 2), 11.42, 45.75, 0.0, 35.46, 13.18, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:07:21,926 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:07:02
2025-07-01 13:07:22,013 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:07:22,019 [DEBUG][       Thread-605592][   transport.py][1871] : starting thread (client mode): 0x81a4730
2025-07-01 13:07:22,019 [DEBUG][       Thread-605592][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:07:22,040 [DEBUG][       Thread-605592][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:07:22,040 [ INFO][       Thread-605592][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:07:22,043 [DEBUG][       Thread-605592][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:07:22,043 [DEBUG][       Thread-605592][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:07:22,043 [DEBUG][       Thread-605592][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:07:22,043 [DEBUG][       Thread-605592][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:07:22,043 [DEBUG][       Thread-605592][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:07:22,043 [DEBUG][       Thread-605592][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:07:22,044 [DEBUG][       Thread-605592][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:07:22,044 [DEBUG][       Thread-605592][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:07:22,044 [DEBUG][       Thread-605592][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:07:22,044 [DEBUG][       Thread-605592][   transport.py][1871] : client lang: <none>
2025-07-01 13:07:22,044 [DEBUG][       Thread-605592][   transport.py][1871] : server lang: <none>
2025-07-01 13:07:22,044 [DEBUG][       Thread-605592][   transport.py][1871] : kex follows: False
2025-07-01 13:07:22,044 [DEBUG][       Thread-605592][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:07:22,044 [DEBUG][       Thread-605592][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:07:22,044 [DEBUG][       Thread-605592][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:07:22,044 [DEBUG][       Thread-605592][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:07:22,044 [DEBUG][       Thread-605592][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:07:22,044 [DEBUG][       Thread-605592][   transport.py][1871] : Compression: none
2025-07-01 13:07:22,044 [DEBUG][       Thread-605592][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:07:22,060 [DEBUG][       Thread-605592][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:07:22,061 [DEBUG][       Thread-605592][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:07:22,061 [DEBUG][       Thread-605592][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:07:22,061 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:07:22,062 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:07:22,063 [DEBUG][       Thread-605592][   transport.py][1871] : userauth is OK
2025-07-01 13:07:22,076 [ INFO][       Thread-605592][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:07:22,076 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:07:22,669 [DEBUG][       Thread-605592][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:07:22,670 [DEBUG][       Thread-605592][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:07:22,713 [DEBUG][       Thread-605592][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:07:22,713 [DEBUG][       Thread-605592][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:07:22,717 [DEBUG][       Thread-605592][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:07:22,729 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:07:22,730 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:07:22,732 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:07:22,734 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:07:22,739 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:07:22,741 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:07:22,741 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:07:22,742 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:07:22,742 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.463137 -999.00  +12.90  35.61     51   +3.00 1 1 2 1 1   888    0 10.37 22.56 ----- 36.0 35.6 26.2 53.5 16.3 -26.2 15.3 -26.4 15.2 -24.5 16.2 -23.5
2025-07-01 13:07:22,742 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:07:22,742 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:07:22,742 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.463137
2025-07-01 13:07:22,742 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:07:22,743 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:07:22,743 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:07:22,743 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:07:22,743 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:07:22,743 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:07:02', tmtdew=11.42, humidity=45.75, cloud=0.0, wind=35.46, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:06:55.037', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:07:22,744 [DEBUG][       Thread-605592][   transport.py][1871] : EOF in transport thread
2025-07-01 13:07:22,827 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:07:22,838 [DEBUG][       Thread-605595][   transport.py][1871] : starting thread (client mode): 0x82b2aa0
2025-07-01 13:07:22,838 [DEBUG][       Thread-605595][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:07:22,853 [DEBUG][       Thread-605595][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:07:22,853 [ INFO][       Thread-605595][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:07:22,861 [DEBUG][       Thread-605595][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:07:22,861 [DEBUG][       Thread-605595][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:07:22,861 [DEBUG][       Thread-605595][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:07:22,861 [DEBUG][       Thread-605595][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:07:22,861 [DEBUG][       Thread-605595][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:07:22,861 [DEBUG][       Thread-605595][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:07:22,861 [DEBUG][       Thread-605595][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:07:22,861 [DEBUG][       Thread-605595][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:07:22,861 [DEBUG][       Thread-605595][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:07:22,861 [DEBUG][       Thread-605595][   transport.py][1871] : client lang: <none>
2025-07-01 13:07:22,861 [DEBUG][       Thread-605595][   transport.py][1871] : server lang: <none>
2025-07-01 13:07:22,861 [DEBUG][       Thread-605595][   transport.py][1871] : kex follows: False
2025-07-01 13:07:22,861 [DEBUG][       Thread-605595][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:07:22,862 [DEBUG][       Thread-605595][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:07:22,862 [DEBUG][       Thread-605595][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:07:22,862 [DEBUG][       Thread-605595][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:07:22,862 [DEBUG][       Thread-605595][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:07:22,862 [DEBUG][       Thread-605595][   transport.py][1871] : Compression: none
2025-07-01 13:07:22,862 [DEBUG][       Thread-605595][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:07:22,918 [DEBUG][       Thread-605595][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:07:22,919 [DEBUG][       Thread-605595][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:07:22,920 [DEBUG][       Thread-605595][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:07:22,920 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:07:22,921 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:07:22,975 [DEBUG][       Thread-605595][   transport.py][1871] : userauth is OK
2025-07-01 13:07:22,975 [DEBUG][       Thread-605595][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:07:22,975 [DEBUG][       Thread-605595][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:07:22,975 [DEBUG][       Thread-605595][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:07:22,975 [DEBUG][       Thread-605595][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:07:22,994 [ INFO][       Thread-605595][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:07:22,994 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:07:22,995 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:07:23,986 [DEBUG][       Thread-605595][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:07:23,986 [DEBUG][       Thread-605595][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:07:24,036 [DEBUG][       Thread-605595][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:07:24,036 [DEBUG][       Thread-605595][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:07:24,045 [DEBUG][       Thread-605595][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:07:24,054 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:07:24,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-07-01 13:07:24,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-07-01 13:07:24,072 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:07:24,072 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:07:24,072 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:07:24,080 [DEBUG][       Thread-605595][   transport.py][1871] : EOF in transport thread
2025-07-01 13:07:24,880 [DEBUG][Thread-605597 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:07:31,122 [DEBUG][Thread-605598 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:07:33,904 [DEBUG][Thread-605599 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:07:34,083 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:07:34,083 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:07:34,083 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:07: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-07-01 13:07:34,573 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 7, 2), 11.42, 45.75, 0.0, 35.46, 13.18, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:07:34,573 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:07:02
2025-07-01 13:07:34,660 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:07:34,667 [DEBUG][       Thread-605600][   transport.py][1871] : starting thread (client mode): 0x81a5b10
2025-07-01 13:07:34,667 [DEBUG][       Thread-605600][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:07:34,686 [DEBUG][       Thread-605600][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:07:34,686 [ INFO][       Thread-605600][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:07:34,690 [DEBUG][       Thread-605600][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:07:34,690 [DEBUG][       Thread-605600][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:07:34,690 [DEBUG][       Thread-605600][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:07:34,690 [DEBUG][       Thread-605600][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:07:34,690 [DEBUG][       Thread-605600][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:07:34,690 [DEBUG][       Thread-605600][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:07:34,690 [DEBUG][       Thread-605600][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:07:34,690 [DEBUG][       Thread-605600][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:07:34,690 [DEBUG][       Thread-605600][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:07:34,690 [DEBUG][       Thread-605600][   transport.py][1871] : client lang: <none>
2025-07-01 13:07:34,690 [DEBUG][       Thread-605600][   transport.py][1871] : server lang: <none>
2025-07-01 13:07:34,690 [DEBUG][       Thread-605600][   transport.py][1871] : kex follows: False
2025-07-01 13:07:34,690 [DEBUG][       Thread-605600][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:07:34,690 [DEBUG][       Thread-605600][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:07:34,690 [DEBUG][       Thread-605600][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:07:34,690 [DEBUG][       Thread-605600][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:07:34,690 [DEBUG][       Thread-605600][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:07:34,690 [DEBUG][       Thread-605600][   transport.py][1871] : Compression: none
2025-07-01 13:07:34,690 [DEBUG][       Thread-605600][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:07:34,699 [DEBUG][       Thread-605600][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:07:34,699 [DEBUG][       Thread-605600][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:07:34,700 [DEBUG][       Thread-605600][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:07:34,700 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:07:34,700 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:07:34,701 [DEBUG][       Thread-605600][   transport.py][1871] : userauth is OK
2025-07-01 13:07:34,726 [ INFO][       Thread-605600][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:07:34,727 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:07:35,348 [DEBUG][       Thread-605600][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:07:35,349 [DEBUG][       Thread-605600][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:07:35,392 [DEBUG][       Thread-605600][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:07:35,393 [DEBUG][       Thread-605600][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:07:35,395 [DEBUG][       Thread-605600][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:07:35,409 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:07:35,409 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:07:35,410 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:07:35,411 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:07:35,414 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:07:35,414 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:07:35,414 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:07:35,415 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:07:35,415 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.463484 -999.00  +13.10  36.03     51   +3.30 1 1 2 1 1   888    0 10.49 21.53 ----- 26.4 36.0 40.4 46.1 16.2 -25.6 15.3 -25.8 15.3 -23.7 16.2 -23.9
2025-07-01 13:07:35,415 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:07:35,415 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:07:35,415 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.463484
2025-07-01 13:07:35,415 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:07:35,415 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:07:35,415 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:07:35,415 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:07:35,415 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:07:35,415 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:07:02', tmtdew=11.42, humidity=45.75, cloud=0.0, wind=35.46, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:07:25.018', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:07:35,416 [DEBUG][       Thread-605600][   transport.py][1871] : EOF in transport thread
2025-07-01 13:07:35,488 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:07:35,508 [DEBUG][       Thread-605603][   transport.py][1871] : starting thread (client mode): 0x81e5b40
2025-07-01 13:07:35,508 [DEBUG][       Thread-605603][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:07:35,528 [DEBUG][       Thread-605603][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:07:35,528 [ INFO][       Thread-605603][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:07:35,536 [DEBUG][       Thread-605603][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:07:35,536 [DEBUG][       Thread-605603][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:07:35,536 [DEBUG][       Thread-605603][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:07:35,536 [DEBUG][       Thread-605603][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:07:35,536 [DEBUG][       Thread-605603][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:07:35,536 [DEBUG][       Thread-605603][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:07:35,536 [DEBUG][       Thread-605603][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:07:35,536 [DEBUG][       Thread-605603][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:07:35,536 [DEBUG][       Thread-605603][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:07:35,536 [DEBUG][       Thread-605603][   transport.py][1871] : client lang: <none>
2025-07-01 13:07:35,536 [DEBUG][       Thread-605603][   transport.py][1871] : server lang: <none>
2025-07-01 13:07:35,536 [DEBUG][       Thread-605603][   transport.py][1871] : kex follows: False
2025-07-01 13:07:35,536 [DEBUG][       Thread-605603][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:07:35,536 [DEBUG][       Thread-605603][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:07:35,536 [DEBUG][       Thread-605603][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:07:35,536 [DEBUG][       Thread-605603][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:07:35,536 [DEBUG][       Thread-605603][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:07:35,536 [DEBUG][       Thread-605603][   transport.py][1871] : Compression: none
2025-07-01 13:07:35,536 [DEBUG][       Thread-605603][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:07:35,593 [DEBUG][       Thread-605603][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:07:35,593 [DEBUG][       Thread-605603][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:07:35,593 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:07:35,593 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:07:35,593 [DEBUG][       Thread-605603][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:07:35,650 [DEBUG][       Thread-605603][   transport.py][1871] : userauth is OK
2025-07-01 13:07:35,650 [DEBUG][       Thread-605603][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:07:35,650 [DEBUG][       Thread-605603][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:07:35,650 [DEBUG][       Thread-605603][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:07:35,650 [DEBUG][       Thread-605603][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:07:35,668 [ INFO][       Thread-605603][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:07:35,668 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:07:35,668 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:07:36,682 [DEBUG][       Thread-605603][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:07:36,682 [DEBUG][       Thread-605603][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:07:36,731 [DEBUG][       Thread-605603][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:07:36,731 [DEBUG][       Thread-605603][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:07:36,740 [DEBUG][       Thread-605603][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:07:36,748 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:07:36,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-07-01 13:07:36,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-07-01 13:07:36,763 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:07:36,764 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:07:36,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:07:36,771 [DEBUG][       Thread-605603][   transport.py][1871] : EOF in transport thread
2025-07-01 13:07:42,925 [DEBUG][Thread-605605 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:07:46,772 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:07:46,772 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:07:46,772 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:07: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-07-01 13:07:47,263 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 7, 34), 11.36, 46.04, 0.0, 26.27, 13.26, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:07:47,263 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:07:34
2025-07-01 13:07:47,348 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:07:47,352 [DEBUG][       Thread-605606][   transport.py][1871] : starting thread (client mode): 0x81a5ed0
2025-07-01 13:07:47,352 [DEBUG][       Thread-605606][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:07:47,372 [DEBUG][       Thread-605606][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:07:47,372 [ INFO][       Thread-605606][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:07:47,375 [DEBUG][       Thread-605606][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:07:47,375 [DEBUG][       Thread-605606][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:07:47,376 [DEBUG][       Thread-605606][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:07:47,376 [DEBUG][       Thread-605606][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:07:47,376 [DEBUG][       Thread-605606][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:07:47,376 [DEBUG][       Thread-605606][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:07:47,376 [DEBUG][       Thread-605606][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:07:47,376 [DEBUG][       Thread-605606][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:07:47,376 [DEBUG][       Thread-605606][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:07:47,376 [DEBUG][       Thread-605606][   transport.py][1871] : client lang: <none>
2025-07-01 13:07:47,376 [DEBUG][       Thread-605606][   transport.py][1871] : server lang: <none>
2025-07-01 13:07:47,376 [DEBUG][       Thread-605606][   transport.py][1871] : kex follows: False
2025-07-01 13:07:47,376 [DEBUG][       Thread-605606][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:07:47,376 [DEBUG][       Thread-605606][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:07:47,376 [DEBUG][       Thread-605606][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:07:47,376 [DEBUG][       Thread-605606][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:07:47,376 [DEBUG][       Thread-605606][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:07:47,376 [DEBUG][       Thread-605606][   transport.py][1871] : Compression: none
2025-07-01 13:07:47,376 [DEBUG][       Thread-605606][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:07:47,396 [DEBUG][       Thread-605606][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:07:47,397 [DEBUG][       Thread-605606][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:07:47,397 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:07:47,398 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:07:47,398 [DEBUG][       Thread-605606][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:07:47,399 [DEBUG][       Thread-605606][   transport.py][1871] : userauth is OK
2025-07-01 13:07:47,424 [ INFO][       Thread-605606][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:07:47,425 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:07:48,083 [DEBUG][       Thread-605606][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:07:48,084 [DEBUG][       Thread-605606][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:07:48,125 [DEBUG][       Thread-605606][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:07:48,125 [DEBUG][       Thread-605606][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:07:48,128 [DEBUG][       Thread-605606][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:07:48,139 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:07:48,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:07:48,141 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:07:48,143 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:07:48,148 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:07:48,150 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:07:48,150 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:07:48,151 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:07:48,151 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.463484 -999.00  +13.10  36.03     51   +3.30 1 1 2 1 1   888    0 10.49 21.53 ----- 26.4 36.0 40.4 46.1 16.2 -25.6 15.3 -25.8 15.3 -23.7 16.2 -23.9
2025-07-01 13:07:48,151 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:07:48,151 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:07:48,151 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.463484
2025-07-01 13:07:48,151 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:07:48,152 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:07:48,152 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:07:48,152 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:07:48,152 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:07:48,152 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:07:34', tmtdew=11.36, humidity=46.04, cloud=0.0, wind=26.27, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:07:25.018', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:07:48,153 [DEBUG][       Thread-605606][   transport.py][1871] : EOF in transport thread
2025-07-01 13:07:48,237 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:07:48,246 [DEBUG][       Thread-605609][   transport.py][1871] : starting thread (client mode): 0x82b0a00
2025-07-01 13:07:48,247 [DEBUG][       Thread-605609][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:07:48,261 [DEBUG][       Thread-605609][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:07:48,261 [ INFO][       Thread-605609][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:07:48,269 [DEBUG][       Thread-605609][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:07:48,269 [DEBUG][       Thread-605609][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:07:48,269 [DEBUG][       Thread-605609][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:07:48,269 [DEBUG][       Thread-605609][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:07:48,269 [DEBUG][       Thread-605609][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:07:48,269 [DEBUG][       Thread-605609][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:07:48,269 [DEBUG][       Thread-605609][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:07:48,269 [DEBUG][       Thread-605609][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:07:48,269 [DEBUG][       Thread-605609][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:07:48,269 [DEBUG][       Thread-605609][   transport.py][1871] : client lang: <none>
2025-07-01 13:07:48,269 [DEBUG][       Thread-605609][   transport.py][1871] : server lang: <none>
2025-07-01 13:07:48,269 [DEBUG][       Thread-605609][   transport.py][1871] : kex follows: False
2025-07-01 13:07:48,269 [DEBUG][       Thread-605609][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:07:48,269 [DEBUG][       Thread-605609][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:07:48,269 [DEBUG][       Thread-605609][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:07:48,269 [DEBUG][       Thread-605609][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:07:48,269 [DEBUG][       Thread-605609][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:07:48,269 [DEBUG][       Thread-605609][   transport.py][1871] : Compression: none
2025-07-01 13:07:48,269 [DEBUG][       Thread-605609][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:07:48,326 [DEBUG][       Thread-605609][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:07:48,326 [DEBUG][       Thread-605609][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:07:48,327 [DEBUG][       Thread-605609][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:07:48,327 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:07:48,328 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:07:48,382 [DEBUG][       Thread-605609][   transport.py][1871] : userauth is OK
2025-07-01 13:07:48,383 [DEBUG][       Thread-605609][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:07:48,383 [DEBUG][       Thread-605609][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:07:48,383 [DEBUG][       Thread-605609][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:07:48,383 [DEBUG][       Thread-605609][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:07:48,403 [ INFO][       Thread-605609][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:07:48,403 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:07:48,404 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:07:49,473 [DEBUG][       Thread-605609][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:07:49,473 [DEBUG][       Thread-605609][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:07:49,528 [DEBUG][       Thread-605609][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:07:49,528 [DEBUG][       Thread-605609][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:07:49,537 [DEBUG][       Thread-605609][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:07:49,546 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:07:49,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-07-01 13:07:49,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-07-01 13:07:49,564 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:07:49,564 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:07:49,564 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:07:49,572 [DEBUG][       Thread-605609][   transport.py][1871] : EOF in transport thread
2025-07-01 13:07:51,951 [DEBUG][Thread-605611 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:07:59,566 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:07:59,567 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:07:59,567 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:07:59,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-07-01 13:08:00,065 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 7, 34), 11.36, 46.04, 0.0, 26.27, 13.26, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:08:00,065 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:07:34
2025-07-01 13:08:00,151 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:08:00,157 [DEBUG][       Thread-605612][   transport.py][1871] : starting thread (client mode): 0x81d9240
2025-07-01 13:08:00,157 [DEBUG][       Thread-605612][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:08:00,177 [DEBUG][       Thread-605612][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:08:00,177 [ INFO][       Thread-605612][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:08:00,181 [DEBUG][       Thread-605612][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:08:00,181 [DEBUG][       Thread-605612][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:08:00,181 [DEBUG][       Thread-605612][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:08:00,181 [DEBUG][       Thread-605612][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:08:00,181 [DEBUG][       Thread-605612][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:08:00,181 [DEBUG][       Thread-605612][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:08:00,181 [DEBUG][       Thread-605612][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:08:00,181 [DEBUG][       Thread-605612][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:08:00,181 [DEBUG][       Thread-605612][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:08:00,181 [DEBUG][       Thread-605612][   transport.py][1871] : client lang: <none>
2025-07-01 13:08:00,181 [DEBUG][       Thread-605612][   transport.py][1871] : server lang: <none>
2025-07-01 13:08:00,181 [DEBUG][       Thread-605612][   transport.py][1871] : kex follows: False
2025-07-01 13:08:00,181 [DEBUG][       Thread-605612][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:08:00,181 [DEBUG][       Thread-605612][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:08:00,181 [DEBUG][       Thread-605612][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:08:00,181 [DEBUG][       Thread-605612][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:08:00,181 [DEBUG][       Thread-605612][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:08:00,181 [DEBUG][       Thread-605612][   transport.py][1871] : Compression: none
2025-07-01 13:08:00,181 [DEBUG][       Thread-605612][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:08:00,198 [DEBUG][       Thread-605612][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:08:00,198 [DEBUG][       Thread-605612][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:08:00,199 [DEBUG][       Thread-605612][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:08:00,199 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:08:00,199 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:08:00,200 [DEBUG][       Thread-605612][   transport.py][1871] : userauth is OK
2025-07-01 13:08:00,225 [ INFO][       Thread-605612][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:08:00,226 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:08:00,906 [DEBUG][       Thread-605612][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:08:00,906 [DEBUG][       Thread-605612][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:08:00,949 [DEBUG][       Thread-605612][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:08:00,949 [DEBUG][       Thread-605612][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:08:00,952 [DEBUG][       Thread-605612][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:08:00,966 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:08:00,966 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:08:00,968 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:08:00,970 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:08:00,976 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:08:00,978 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:08:00,978 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:08:00,979 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:08:00,979 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.463484 -999.00  +13.10  36.03     51   +3.30 1 1 2 1 1   888    0 10.49 21.53 ----- 26.4 36.0 40.4 46.1 16.2 -25.6 15.3 -25.8 15.3 -23.7 16.2 -23.9
2025-07-01 13:08:00,979 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:08:00,979 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:08:00,979 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.463484
2025-07-01 13:08:00,980 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:08:00,980 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:08:00,980 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:08:00,980 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:08:00,981 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:08:00,981 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:07:34', tmtdew=11.36, humidity=46.04, cloud=0.0, wind=26.27, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:07:25.018', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:08:00,982 [DEBUG][       Thread-605612][   transport.py][1871] : EOF in transport thread
2025-07-01 13:08:00,990 [DEBUG][Thread-605615 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:08:01,065 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:08:01,076 [DEBUG][       Thread-605616][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 13:08:01,076 [DEBUG][       Thread-605616][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:08:01,092 [DEBUG][       Thread-605616][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:08:01,092 [ INFO][       Thread-605616][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:08:01,100 [DEBUG][       Thread-605616][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:08:01,100 [DEBUG][       Thread-605616][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:08:01,100 [DEBUG][       Thread-605616][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:08:01,100 [DEBUG][       Thread-605616][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:08:01,100 [DEBUG][       Thread-605616][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:08:01,100 [DEBUG][       Thread-605616][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:08:01,100 [DEBUG][       Thread-605616][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:08:01,100 [DEBUG][       Thread-605616][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:08:01,100 [DEBUG][       Thread-605616][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:08:01,100 [DEBUG][       Thread-605616][   transport.py][1871] : client lang: <none>
2025-07-01 13:08:01,100 [DEBUG][       Thread-605616][   transport.py][1871] : server lang: <none>
2025-07-01 13:08:01,100 [DEBUG][       Thread-605616][   transport.py][1871] : kex follows: False
2025-07-01 13:08:01,100 [DEBUG][       Thread-605616][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:08:01,100 [DEBUG][       Thread-605616][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:08:01,100 [DEBUG][       Thread-605616][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:08:01,100 [DEBUG][       Thread-605616][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:08:01,100 [DEBUG][       Thread-605616][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:08:01,100 [DEBUG][       Thread-605616][   transport.py][1871] : Compression: none
2025-07-01 13:08:01,100 [DEBUG][       Thread-605616][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:08:01,158 [DEBUG][       Thread-605616][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:08:01,158 [DEBUG][       Thread-605616][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:08:01,159 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:08:01,159 [DEBUG][       Thread-605616][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:08:01,160 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:08:01,214 [DEBUG][       Thread-605616][   transport.py][1871] : userauth is OK
2025-07-01 13:08:01,214 [DEBUG][       Thread-605616][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:08:01,214 [DEBUG][       Thread-605616][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:08:01,215 [DEBUG][       Thread-605616][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:08:01,215 [DEBUG][       Thread-605616][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:08:01,242 [ INFO][       Thread-605616][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:08:01,243 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:08:01,243 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:08:02,302 [DEBUG][       Thread-605616][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:08:02,302 [DEBUG][       Thread-605616][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:08:02,352 [DEBUG][       Thread-605616][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:08:02,352 [DEBUG][       Thread-605616][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:08:02,361 [DEBUG][       Thread-605616][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:08:02,370 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:08:02,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-07-01 13:08:02,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') -> 00000000
2025-07-01 13:08:02,388 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:08:02,389 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:08:02,389 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:08:02,399 [DEBUG][       Thread-605616][   transport.py][1871] : EOF in transport thread
2025-07-01 13:08:10,012 [DEBUG][Thread-605618 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:08:12,394 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:08:12,394 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:08:12,395 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:08:12,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-07-01 13:08:12,876 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 8, 6), 11.45, 45.77, 0.0, 33.45, 13.31, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:08:12,876 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:08:06
2025-07-01 13:08:12,963 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:08:12,967 [DEBUG][       Thread-605619][   transport.py][1871] : starting thread (client mode): 0x81a6650
2025-07-01 13:08:12,967 [DEBUG][       Thread-605619][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:08:12,985 [DEBUG][       Thread-605619][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:08:12,985 [ INFO][       Thread-605619][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:08:12,988 [DEBUG][       Thread-605619][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:08:12,988 [DEBUG][       Thread-605619][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:08:12,988 [DEBUG][       Thread-605619][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:08:12,988 [DEBUG][       Thread-605619][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:08:12,988 [DEBUG][       Thread-605619][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:08:12,988 [DEBUG][       Thread-605619][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:08:12,988 [DEBUG][       Thread-605619][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:08:12,988 [DEBUG][       Thread-605619][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:08:12,988 [DEBUG][       Thread-605619][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:08:12,988 [DEBUG][       Thread-605619][   transport.py][1871] : client lang: <none>
2025-07-01 13:08:12,988 [DEBUG][       Thread-605619][   transport.py][1871] : server lang: <none>
2025-07-01 13:08:12,988 [DEBUG][       Thread-605619][   transport.py][1871] : kex follows: False
2025-07-01 13:08:12,988 [DEBUG][       Thread-605619][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:08:12,988 [DEBUG][       Thread-605619][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:08:12,988 [DEBUG][       Thread-605619][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:08:12,988 [DEBUG][       Thread-605619][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:08:12,988 [DEBUG][       Thread-605619][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:08:12,988 [DEBUG][       Thread-605619][   transport.py][1871] : Compression: none
2025-07-01 13:08:12,988 [DEBUG][       Thread-605619][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:08:13,005 [DEBUG][       Thread-605619][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:08:13,006 [DEBUG][       Thread-605619][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:08:13,006 [DEBUG][       Thread-605619][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:08:13,006 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:08:13,007 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:08:13,008 [DEBUG][       Thread-605619][   transport.py][1871] : userauth is OK
2025-07-01 13:08:13,021 [ INFO][       Thread-605619][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:08:13,021 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:08:13,716 [DEBUG][       Thread-605619][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:08:13,716 [DEBUG][       Thread-605619][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:08:13,761 [DEBUG][       Thread-605619][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:08:13,761 [DEBUG][       Thread-605619][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:08:13,765 [DEBUG][       Thread-605619][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:08:13,777 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:08:13,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:08:13,779 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:08:13,781 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:08:13,787 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:08:13,789 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:08:13,789 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:08:13,790 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:08:13,790 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.463831 -999.00  +13.20  32.13     51   +3.30 1 1 2 1 1   888    0 10.32 20.64 ----- 28.2 32.1 27.8 42.8 16.4 -24.7 15.4 -25.0 15.3 -23.7 16.2 -22.8
2025-07-01 13:08:13,790 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:08:13,790 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:08:13,790 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.463831
2025-07-01 13:08:13,790 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:08:13,791 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:08:13,791 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:08:13,791 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:08:13,791 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:08:13,791 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:08:06', tmtdew=11.45, humidity=45.77, cloud=0.0, wind=33.45, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:07:54.998', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:08:13,791 [DEBUG][       Thread-605619][   transport.py][1871] : EOF in transport thread
2025-07-01 13:08:13,875 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:08:13,885 [DEBUG][       Thread-605622][   transport.py][1871] : starting thread (client mode): 0x8157850
2025-07-01 13:08:13,885 [DEBUG][       Thread-605622][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:08:13,900 [DEBUG][       Thread-605622][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:08:13,900 [ INFO][       Thread-605622][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:08:13,908 [DEBUG][       Thread-605622][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:08:13,908 [DEBUG][       Thread-605622][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:08:13,908 [DEBUG][       Thread-605622][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:08:13,908 [DEBUG][       Thread-605622][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:08:13,908 [DEBUG][       Thread-605622][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:08:13,908 [DEBUG][       Thread-605622][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:08:13,908 [DEBUG][       Thread-605622][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:08:13,908 [DEBUG][       Thread-605622][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:08:13,908 [DEBUG][       Thread-605622][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:08:13,908 [DEBUG][       Thread-605622][   transport.py][1871] : client lang: <none>
2025-07-01 13:08:13,908 [DEBUG][       Thread-605622][   transport.py][1871] : server lang: <none>
2025-07-01 13:08:13,908 [DEBUG][       Thread-605622][   transport.py][1871] : kex follows: False
2025-07-01 13:08:13,908 [DEBUG][       Thread-605622][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:08:13,908 [DEBUG][       Thread-605622][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:08:13,909 [DEBUG][       Thread-605622][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:08:13,909 [DEBUG][       Thread-605622][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:08:13,909 [DEBUG][       Thread-605622][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:08:13,909 [DEBUG][       Thread-605622][   transport.py][1871] : Compression: none
2025-07-01 13:08:13,909 [DEBUG][       Thread-605622][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:08:13,967 [DEBUG][       Thread-605622][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:08:13,967 [DEBUG][       Thread-605622][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:08:13,968 [DEBUG][       Thread-605622][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:08:13,968 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:08:13,969 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:08:14,023 [DEBUG][       Thread-605622][   transport.py][1871] : userauth is OK
2025-07-01 13:08:14,023 [DEBUG][       Thread-605622][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:08:14,023 [DEBUG][       Thread-605622][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:08:14,023 [DEBUG][       Thread-605622][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:08:14,023 [DEBUG][       Thread-605622][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:08:14,048 [ INFO][       Thread-605622][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:08:14,048 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:08:14,049 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:08:15,097 [DEBUG][       Thread-605622][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:08:15,097 [DEBUG][       Thread-605622][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:08:15,148 [DEBUG][       Thread-605622][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:08:15,148 [DEBUG][       Thread-605622][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:08:15,157 [DEBUG][       Thread-605622][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:08:15,166 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:08:15,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-07-01 13:08:15,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-07-01 13:08:15,184 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:08:15,184 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:08:15,184 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:08:15,192 [DEBUG][       Thread-605622][   transport.py][1871] : EOF in transport thread
2025-07-01 13:08:19,036 [DEBUG][Thread-605624 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:08:21,672 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:08:21,673 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:08:25,195 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:08:25,195 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:08:25,195 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:08:25,198 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:08:25,689 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 8, 6), 11.45, 45.77, 0.0, 33.45, 13.31, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:08:25,689 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:08:06
2025-07-01 13:08:25,776 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:08:25,782 [DEBUG][       Thread-605625][   transport.py][1871] : starting thread (client mode): 0x75ab220
2025-07-01 13:08:25,783 [DEBUG][       Thread-605625][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:08:25,803 [DEBUG][       Thread-605625][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:08:25,803 [ INFO][       Thread-605625][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:08:25,807 [DEBUG][       Thread-605625][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:08:25,807 [DEBUG][       Thread-605625][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:08:25,807 [DEBUG][       Thread-605625][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:08:25,807 [DEBUG][       Thread-605625][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:08:25,807 [DEBUG][       Thread-605625][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:08:25,807 [DEBUG][       Thread-605625][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:08:25,807 [DEBUG][       Thread-605625][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:08:25,807 [DEBUG][       Thread-605625][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:08:25,807 [DEBUG][       Thread-605625][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:08:25,807 [DEBUG][       Thread-605625][   transport.py][1871] : client lang: <none>
2025-07-01 13:08:25,807 [DEBUG][       Thread-605625][   transport.py][1871] : server lang: <none>
2025-07-01 13:08:25,807 [DEBUG][       Thread-605625][   transport.py][1871] : kex follows: False
2025-07-01 13:08:25,807 [DEBUG][       Thread-605625][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:08:25,807 [DEBUG][       Thread-605625][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:08:25,807 [DEBUG][       Thread-605625][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:08:25,807 [DEBUG][       Thread-605625][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:08:25,808 [DEBUG][       Thread-605625][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:08:25,808 [DEBUG][       Thread-605625][   transport.py][1871] : Compression: none
2025-07-01 13:08:25,808 [DEBUG][       Thread-605625][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:08:25,824 [DEBUG][       Thread-605625][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:08:25,825 [DEBUG][       Thread-605625][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:08:25,825 [DEBUG][       Thread-605625][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:08:25,825 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:08:25,826 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:08:25,827 [DEBUG][       Thread-605625][   transport.py][1871] : userauth is OK
2025-07-01 13:08:25,851 [ INFO][       Thread-605625][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:08:25,852 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:08:26,504 [DEBUG][       Thread-605625][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:08:26,504 [DEBUG][       Thread-605625][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:08:26,545 [DEBUG][       Thread-605625][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:08:26,545 [DEBUG][       Thread-605625][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:08:26,549 [DEBUG][       Thread-605625][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:08:26,560 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:08:26,560 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:08:26,562 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:08:26,564 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:08:26,569 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:08:26,571 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:08:26,572 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:08:26,572 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:08:26,572 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.463831 -999.00  +13.20  32.13     51   +3.30 1 1 2 1 1   888    0 10.32 20.64 ----- 28.2 32.1 27.8 42.8 16.4 -24.7 15.4 -25.0 15.3 -23.7 16.2 -22.8
2025-07-01 13:08:26,573 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:08:26,573 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:08:26,573 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.463831
2025-07-01 13:08:26,573 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:08:26,574 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:08:26,574 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:08:26,574 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:08:26,574 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:08:26,574 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:08:06', tmtdew=11.45, humidity=45.77, cloud=0.0, wind=33.45, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:07:54.998', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:08:26,574 [DEBUG][       Thread-605625][   transport.py][1871] : EOF in transport thread
2025-07-01 13:08:26,658 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:08:26,669 [DEBUG][       Thread-605628][   transport.py][1871] : starting thread (client mode): 0x8154910
2025-07-01 13:08:26,669 [DEBUG][       Thread-605628][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:08:26,688 [DEBUG][       Thread-605628][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:08:26,688 [ INFO][       Thread-605628][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:08:26,696 [DEBUG][       Thread-605628][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:08:26,696 [DEBUG][       Thread-605628][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:08:26,696 [DEBUG][       Thread-605628][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:08:26,696 [DEBUG][       Thread-605628][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:08:26,696 [DEBUG][       Thread-605628][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:08:26,696 [DEBUG][       Thread-605628][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:08:26,696 [DEBUG][       Thread-605628][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:08:26,696 [DEBUG][       Thread-605628][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:08:26,696 [DEBUG][       Thread-605628][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:08:26,696 [DEBUG][       Thread-605628][   transport.py][1871] : client lang: <none>
2025-07-01 13:08:26,697 [DEBUG][       Thread-605628][   transport.py][1871] : server lang: <none>
2025-07-01 13:08:26,697 [DEBUG][       Thread-605628][   transport.py][1871] : kex follows: False
2025-07-01 13:08:26,697 [DEBUG][       Thread-605628][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:08:26,697 [DEBUG][       Thread-605628][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:08:26,697 [DEBUG][       Thread-605628][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:08:26,697 [DEBUG][       Thread-605628][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:08:26,697 [DEBUG][       Thread-605628][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:08:26,697 [DEBUG][       Thread-605628][   transport.py][1871] : Compression: none
2025-07-01 13:08:26,697 [DEBUG][       Thread-605628][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:08:26,754 [DEBUG][       Thread-605628][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:08:26,755 [DEBUG][       Thread-605628][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:08:26,755 [DEBUG][       Thread-605628][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:08:26,756 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:08:26,756 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:08:26,815 [DEBUG][       Thread-605628][   transport.py][1871] : userauth is OK
2025-07-01 13:08:26,815 [DEBUG][       Thread-605628][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:08:26,815 [DEBUG][       Thread-605628][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:08:26,815 [DEBUG][       Thread-605628][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:08:26,815 [DEBUG][       Thread-605628][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:08:26,833 [ INFO][       Thread-605628][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:08:26,834 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:08:26,834 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:08:27,925 [DEBUG][       Thread-605628][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:08:27,925 [DEBUG][       Thread-605628][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:08:27,976 [DEBUG][       Thread-605628][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:08:27,976 [DEBUG][       Thread-605628][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:08:27,985 [DEBUG][       Thread-605628][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:08:27,994 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:08:27,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-07-01 13:08:28,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-07-01 13:08:28,016 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:08:28,016 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:08:28,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:08:28,025 [DEBUG][       Thread-605628][   transport.py][1871] : EOF in transport thread
2025-07-01 13:08:28,078 [DEBUG][Thread-605630 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:08:31,174 [DEBUG][Thread-605631 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:08:37,098 [DEBUG][Thread-605632 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:08:38,024 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:08:38,024 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:08:38,024 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:08:38,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-07-01 13:08:38,515 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 8, 6), 11.45, 45.77, 0.0, 33.45, 13.31, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:08:38,515 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:08:06
2025-07-01 13:08:38,602 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:08:38,605 [DEBUG][       Thread-605633][   transport.py][1871] : starting thread (client mode): 0x75a9330
2025-07-01 13:08:38,605 [DEBUG][       Thread-605633][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:08:38,625 [DEBUG][       Thread-605633][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:08:38,625 [ INFO][       Thread-605633][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:08:38,627 [DEBUG][       Thread-605633][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:08:38,627 [DEBUG][       Thread-605633][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:08:38,627 [DEBUG][       Thread-605633][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:08:38,627 [DEBUG][       Thread-605633][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:08:38,627 [DEBUG][       Thread-605633][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:08:38,627 [DEBUG][       Thread-605633][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:08:38,627 [DEBUG][       Thread-605633][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:08:38,627 [DEBUG][       Thread-605633][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:08:38,627 [DEBUG][       Thread-605633][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:08:38,627 [DEBUG][       Thread-605633][   transport.py][1871] : client lang: <none>
2025-07-01 13:08:38,627 [DEBUG][       Thread-605633][   transport.py][1871] : server lang: <none>
2025-07-01 13:08:38,627 [DEBUG][       Thread-605633][   transport.py][1871] : kex follows: False
2025-07-01 13:08:38,627 [DEBUG][       Thread-605633][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:08:38,627 [DEBUG][       Thread-605633][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:08:38,627 [DEBUG][       Thread-605633][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:08:38,627 [DEBUG][       Thread-605633][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:08:38,627 [DEBUG][       Thread-605633][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:08:38,627 [DEBUG][       Thread-605633][   transport.py][1871] : Compression: none
2025-07-01 13:08:38,627 [DEBUG][       Thread-605633][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:08:38,635 [DEBUG][       Thread-605633][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:08:38,635 [DEBUG][       Thread-605633][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:08:38,635 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:08:38,635 [DEBUG][       Thread-605633][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:08:38,635 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:08:38,636 [DEBUG][       Thread-605633][   transport.py][1871] : userauth is OK
2025-07-01 13:08:38,648 [ INFO][       Thread-605633][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:08:38,648 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:08:39,245 [DEBUG][       Thread-605633][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:08:39,245 [DEBUG][       Thread-605633][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:08:39,288 [DEBUG][       Thread-605633][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:08:39,288 [DEBUG][       Thread-605633][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:08:39,290 [DEBUG][       Thread-605633][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:08:39,295 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:08:39,295 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:08:39,296 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:08:39,297 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:08:39,300 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:08:39,301 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:08:39,301 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:08:39,301 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:08:39,301 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.464179 -999.00  +13.30  30.37     50   +3.30 1 1 2 1 1   888    0 10.32 20.50 ----- 32.5 30.4 3.6 43.0 16.4 -25.5 15.4 -26.1 15.3 -24.3 16.2 -24.3
2025-07-01 13:08:39,301 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:08:39,301 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:08:39,301 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.464179
2025-07-01 13:08:39,301 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:08:39,301 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:08:39,301 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:08:39,301 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:08:39,301 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:08:39,301 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:08:06', tmtdew=11.45, humidity=45.77, cloud=0.0, wind=33.45, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:08:25.066', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:08:39,302 [DEBUG][       Thread-605633][   transport.py][1871] : EOF in transport thread
2025-07-01 13:08:39,376 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:08:39,385 [DEBUG][       Thread-605636][   transport.py][1871] : starting thread (client mode): 0x82b1f30
2025-07-01 13:08:39,385 [DEBUG][       Thread-605636][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:08:39,400 [DEBUG][       Thread-605636][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:08:39,400 [ INFO][       Thread-605636][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:08:39,407 [DEBUG][       Thread-605636][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:08:39,407 [DEBUG][       Thread-605636][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:08:39,407 [DEBUG][       Thread-605636][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:08:39,407 [DEBUG][       Thread-605636][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:08:39,407 [DEBUG][       Thread-605636][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:08:39,407 [DEBUG][       Thread-605636][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:08:39,407 [DEBUG][       Thread-605636][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:08:39,407 [DEBUG][       Thread-605636][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:08:39,407 [DEBUG][       Thread-605636][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:08:39,407 [DEBUG][       Thread-605636][   transport.py][1871] : client lang: <none>
2025-07-01 13:08:39,407 [DEBUG][       Thread-605636][   transport.py][1871] : server lang: <none>
2025-07-01 13:08:39,407 [DEBUG][       Thread-605636][   transport.py][1871] : kex follows: False
2025-07-01 13:08:39,408 [DEBUG][       Thread-605636][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:08:39,408 [DEBUG][       Thread-605636][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:08:39,408 [DEBUG][       Thread-605636][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:08:39,408 [DEBUG][       Thread-605636][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:08:39,408 [DEBUG][       Thread-605636][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:08:39,408 [DEBUG][       Thread-605636][   transport.py][1871] : Compression: none
2025-07-01 13:08:39,408 [DEBUG][       Thread-605636][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:08:39,470 [DEBUG][       Thread-605636][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:08:39,470 [DEBUG][       Thread-605636][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:08:39,471 [DEBUG][       Thread-605636][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:08:39,471 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:08:39,471 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:08:39,526 [DEBUG][       Thread-605636][   transport.py][1871] : userauth is OK
2025-07-01 13:08:39,526 [DEBUG][       Thread-605636][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:08:39,526 [DEBUG][       Thread-605636][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:08:39,526 [DEBUG][       Thread-605636][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:08:39,526 [DEBUG][       Thread-605636][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:08:39,540 [ INFO][       Thread-605636][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:08:39,540 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:08:39,541 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:08:40,591 [DEBUG][       Thread-605636][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:08:40,591 [DEBUG][       Thread-605636][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:08:40,640 [DEBUG][       Thread-605636][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:08:40,640 [DEBUG][       Thread-605636][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:08:40,650 [DEBUG][       Thread-605636][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:08:40,659 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:08:40,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-07-01 13:08:40,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-07-01 13:08:40,677 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:08:40,678 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:08:40,678 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:08:40,686 [DEBUG][       Thread-605636][   transport.py][1871] : EOF in transport thread
2025-07-01 13:08:46,119 [DEBUG][Thread-605638 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:08:50,689 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:08:50,689 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:08:50,689 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:08:50,692 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:08:51,173 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 8, 38), 11.51, 45.59, 0.0, 36.77, 13.39, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:08:51,173 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:08:38
2025-07-01 13:08:51,260 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:08:51,265 [DEBUG][       Thread-605639][   transport.py][1871] : starting thread (client mode): 0x75ab670
2025-07-01 13:08:51,266 [DEBUG][       Thread-605639][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:08:51,286 [DEBUG][       Thread-605639][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:08:51,286 [ INFO][       Thread-605639][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:08:51,289 [DEBUG][       Thread-605639][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:08:51,289 [DEBUG][       Thread-605639][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:08:51,289 [DEBUG][       Thread-605639][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:08:51,289 [DEBUG][       Thread-605639][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:08:51,289 [DEBUG][       Thread-605639][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:08:51,289 [DEBUG][       Thread-605639][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:08:51,290 [DEBUG][       Thread-605639][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:08:51,290 [DEBUG][       Thread-605639][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:08:51,290 [DEBUG][       Thread-605639][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:08:51,290 [DEBUG][       Thread-605639][   transport.py][1871] : client lang: <none>
2025-07-01 13:08:51,290 [DEBUG][       Thread-605639][   transport.py][1871] : server lang: <none>
2025-07-01 13:08:51,290 [DEBUG][       Thread-605639][   transport.py][1871] : kex follows: False
2025-07-01 13:08:51,290 [DEBUG][       Thread-605639][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:08:51,290 [DEBUG][       Thread-605639][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:08:51,290 [DEBUG][       Thread-605639][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:08:51,290 [DEBUG][       Thread-605639][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:08:51,290 [DEBUG][       Thread-605639][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:08:51,290 [DEBUG][       Thread-605639][   transport.py][1871] : Compression: none
2025-07-01 13:08:51,291 [DEBUG][       Thread-605639][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:08:51,309 [DEBUG][       Thread-605639][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:08:51,309 [DEBUG][       Thread-605639][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:08:51,310 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:08:51,310 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:08:51,311 [DEBUG][       Thread-605639][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:08:51,311 [DEBUG][       Thread-605639][   transport.py][1871] : userauth is OK
2025-07-01 13:08:51,325 [ INFO][       Thread-605639][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:08:51,326 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:08:51,968 [DEBUG][       Thread-605639][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:08:51,968 [DEBUG][       Thread-605639][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:08:52,009 [DEBUG][       Thread-605639][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:08:52,009 [DEBUG][       Thread-605639][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:08:52,013 [DEBUG][       Thread-605639][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:08:52,023 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:08:52,024 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:08:52,026 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:08:52,028 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:08:52,034 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:08:52,036 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:08:52,036 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:08:52,037 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:08:52,037 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.464179 -999.00  +13.30  30.37     50   +3.30 1 1 2 1 1   888    0 10.32 20.50 ----- 32.5 30.4 3.6 43.0 16.4 -25.5 15.4 -26.1 15.3 -24.3 16.2 -24.3
2025-07-01 13:08:52,037 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:08:52,037 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:08:52,037 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.464179
2025-07-01 13:08:52,038 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:08:52,038 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:08:52,038 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:08:52,038 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:08:52,038 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:08:52,039 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:08:38', tmtdew=11.51, humidity=45.59, cloud=0.0, wind=36.77, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:08:25.066', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:08:52,040 [DEBUG][       Thread-605639][   transport.py][1871] : EOF in transport thread
2025-07-01 13:08:52,122 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:08:52,134 [DEBUG][       Thread-605642][   transport.py][1871] : starting thread (client mode): 0x827ec50
2025-07-01 13:08:52,134 [DEBUG][       Thread-605642][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:08:52,151 [DEBUG][       Thread-605642][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:08:52,151 [ INFO][       Thread-605642][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:08:52,158 [DEBUG][       Thread-605642][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:08:52,159 [DEBUG][       Thread-605642][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:08:52,159 [DEBUG][       Thread-605642][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:08:52,159 [DEBUG][       Thread-605642][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:08:52,159 [DEBUG][       Thread-605642][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:08:52,159 [DEBUG][       Thread-605642][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:08:52,159 [DEBUG][       Thread-605642][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:08:52,159 [DEBUG][       Thread-605642][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:08:52,159 [DEBUG][       Thread-605642][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:08:52,159 [DEBUG][       Thread-605642][   transport.py][1871] : client lang: <none>
2025-07-01 13:08:52,159 [DEBUG][       Thread-605642][   transport.py][1871] : server lang: <none>
2025-07-01 13:08:52,159 [DEBUG][       Thread-605642][   transport.py][1871] : kex follows: False
2025-07-01 13:08:52,159 [DEBUG][       Thread-605642][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:08:52,159 [DEBUG][       Thread-605642][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:08:52,159 [DEBUG][       Thread-605642][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:08:52,159 [DEBUG][       Thread-605642][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:08:52,159 [DEBUG][       Thread-605642][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:08:52,159 [DEBUG][       Thread-605642][   transport.py][1871] : Compression: none
2025-07-01 13:08:52,160 [DEBUG][       Thread-605642][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:08:52,220 [DEBUG][       Thread-605642][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:08:52,220 [DEBUG][       Thread-605642][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:08:52,221 [DEBUG][       Thread-605642][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:08:52,221 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:08:52,222 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:08:52,284 [DEBUG][       Thread-605642][   transport.py][1871] : userauth is OK
2025-07-01 13:08:52,285 [DEBUG][       Thread-605642][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:08:52,285 [DEBUG][       Thread-605642][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:08:52,285 [DEBUG][       Thread-605642][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:08:52,285 [DEBUG][       Thread-605642][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:08:52,306 [ INFO][       Thread-605642][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:08:52,306 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:08:52,307 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:08:53,429 [DEBUG][       Thread-605642][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:08:53,429 [DEBUG][       Thread-605642][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:08:53,480 [DEBUG][       Thread-605642][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:08:53,480 [DEBUG][       Thread-605642][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:08:53,491 [DEBUG][       Thread-605642][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:08:53,500 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:08:53,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-07-01 13:08:53,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-07-01 13:08:53,518 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:08:53,519 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:08:53,519 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:08:53,527 [DEBUG][       Thread-605642][   transport.py][1871] : EOF in transport thread
2025-07-01 13:08:55,142 [DEBUG][Thread-605644 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:09:03,530 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:09:03,530 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:09:03,530 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:09:03,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-07-01 13:09:04,015 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 8, 38), 11.51, 45.59, 0.0, 36.77, 13.39, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:09:04,015 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:08:38
2025-07-01 13:09:04,101 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:09:04,105 [DEBUG][       Thread-605645][   transport.py][1871] : starting thread (client mode): 0x75aae00
2025-07-01 13:09:04,105 [DEBUG][       Thread-605645][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:09:04,126 [DEBUG][       Thread-605645][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:09:04,126 [ INFO][       Thread-605645][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:09:04,129 [DEBUG][       Thread-605645][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:09:04,129 [DEBUG][       Thread-605645][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:09:04,129 [DEBUG][       Thread-605645][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:09:04,129 [DEBUG][       Thread-605645][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:09:04,129 [DEBUG][       Thread-605645][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:09:04,129 [DEBUG][       Thread-605645][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:09:04,129 [DEBUG][       Thread-605645][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:09:04,129 [DEBUG][       Thread-605645][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:09:04,129 [DEBUG][       Thread-605645][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:09:04,129 [DEBUG][       Thread-605645][   transport.py][1871] : client lang: <none>
2025-07-01 13:09:04,129 [DEBUG][       Thread-605645][   transport.py][1871] : server lang: <none>
2025-07-01 13:09:04,129 [DEBUG][       Thread-605645][   transport.py][1871] : kex follows: False
2025-07-01 13:09:04,129 [DEBUG][       Thread-605645][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:09:04,129 [DEBUG][       Thread-605645][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:09:04,129 [DEBUG][       Thread-605645][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:09:04,129 [DEBUG][       Thread-605645][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:09:04,129 [DEBUG][       Thread-605645][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:09:04,129 [DEBUG][       Thread-605645][   transport.py][1871] : Compression: none
2025-07-01 13:09:04,129 [DEBUG][       Thread-605645][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:09:04,146 [DEBUG][       Thread-605645][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:09:04,146 [DEBUG][       Thread-605645][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:09:04,147 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:09:04,147 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:09:04,148 [DEBUG][       Thread-605645][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:09:04,148 [DEBUG][       Thread-605645][   transport.py][1871] : userauth is OK
2025-07-01 13:09:04,173 [ INFO][       Thread-605645][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:09:04,174 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:09:04,183 [DEBUG][Thread-605647 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:09:04,848 [DEBUG][       Thread-605645][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:09:04,848 [DEBUG][       Thread-605645][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:09:04,889 [DEBUG][       Thread-605645][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:09:04,889 [DEBUG][       Thread-605645][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:09:04,892 [DEBUG][       Thread-605645][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:09:04,905 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:09:04,906 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:09:04,908 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:09:04,910 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:09:04,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:09:04,918 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:09:04,918 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:09:04,919 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:09:04,919 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.464179 -999.00  +13.30  30.37     50   +3.30 1 1 2 1 1   888    0 10.32 20.50 ----- 32.5 30.4 3.6 43.0 16.4 -25.5 15.4 -26.1 15.3 -24.3 16.2 -24.3
2025-07-01 13:09:04,919 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:09:04,919 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:09:04,919 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.464179
2025-07-01 13:09:04,920 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:09:04,920 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:09:04,920 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:09:04,921 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:09:04,921 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:09:04,921 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:08:38', tmtdew=11.51, humidity=45.59, cloud=0.0, wind=36.77, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:08:25.066', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:09:04,922 [DEBUG][       Thread-605645][   transport.py][1871] : EOF in transport thread
2025-07-01 13:09:04,999 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:09:05,008 [DEBUG][       Thread-605649][   transport.py][1871] : starting thread (client mode): 0x8105180
2025-07-01 13:09:05,008 [DEBUG][       Thread-605649][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:09:05,023 [DEBUG][       Thread-605649][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:09:05,023 [ INFO][       Thread-605649][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:09:05,030 [DEBUG][       Thread-605649][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:09:05,030 [DEBUG][       Thread-605649][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:09:05,030 [DEBUG][       Thread-605649][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:09:05,030 [DEBUG][       Thread-605649][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:09:05,030 [DEBUG][       Thread-605649][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:09:05,031 [DEBUG][       Thread-605649][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:09:05,031 [DEBUG][       Thread-605649][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:09:05,031 [DEBUG][       Thread-605649][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:09:05,031 [DEBUG][       Thread-605649][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:09:05,031 [DEBUG][       Thread-605649][   transport.py][1871] : client lang: <none>
2025-07-01 13:09:05,031 [DEBUG][       Thread-605649][   transport.py][1871] : server lang: <none>
2025-07-01 13:09:05,031 [DEBUG][       Thread-605649][   transport.py][1871] : kex follows: False
2025-07-01 13:09:05,031 [DEBUG][       Thread-605649][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:09:05,031 [DEBUG][       Thread-605649][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:09:05,031 [DEBUG][       Thread-605649][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:09:05,031 [DEBUG][       Thread-605649][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:09:05,031 [DEBUG][       Thread-605649][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:09:05,031 [DEBUG][       Thread-605649][   transport.py][1871] : Compression: none
2025-07-01 13:09:05,031 [DEBUG][       Thread-605649][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:09:05,096 [DEBUG][       Thread-605649][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:09:05,097 [DEBUG][       Thread-605649][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:09:05,097 [DEBUG][       Thread-605649][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:09:05,098 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:09:05,098 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:09:05,155 [DEBUG][       Thread-605649][   transport.py][1871] : userauth is OK
2025-07-01 13:09:05,155 [DEBUG][       Thread-605649][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:09:05,155 [DEBUG][       Thread-605649][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:09:05,155 [DEBUG][       Thread-605649][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:09:05,155 [DEBUG][       Thread-605649][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:09:05,174 [ INFO][       Thread-605649][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:09:05,175 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:09:05,184 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:09:06,209 [DEBUG][       Thread-605649][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:09:06,209 [DEBUG][       Thread-605649][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:09:06,260 [DEBUG][       Thread-605649][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:09:06,260 [DEBUG][       Thread-605649][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:09:06,269 [DEBUG][       Thread-605649][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:09:06,278 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:09:06,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')
2025-07-01 13:09:06,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') -> 00000000
2025-07-01 13:09:06,297 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:09:06,297 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:09:06,298 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:09:06,306 [DEBUG][       Thread-605649][   transport.py][1871] : EOF in transport thread
2025-07-01 13:09:13,202 [DEBUG][Thread-605651 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:09:16,308 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:09:16,308 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:09:16,308 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:09:16,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-07-01 13:09:16,785 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 9, 10), 11.45, 45.77, 0.0, 33.57, 13.34, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:09:16,785 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:09:10
2025-07-01 13:09:16,870 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:09:16,876 [DEBUG][       Thread-605652][   transport.py][1871] : starting thread (client mode): 0x81a6410
2025-07-01 13:09:16,876 [DEBUG][       Thread-605652][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:09:16,892 [DEBUG][       Thread-605652][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:09:16,892 [ INFO][       Thread-605652][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:09:16,895 [DEBUG][       Thread-605652][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:09:16,895 [DEBUG][       Thread-605652][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:09:16,895 [DEBUG][       Thread-605652][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:09:16,895 [DEBUG][       Thread-605652][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:09:16,895 [DEBUG][       Thread-605652][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:09:16,895 [DEBUG][       Thread-605652][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:09:16,895 [DEBUG][       Thread-605652][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:09:16,895 [DEBUG][       Thread-605652][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:09:16,895 [DEBUG][       Thread-605652][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:09:16,895 [DEBUG][       Thread-605652][   transport.py][1871] : client lang: <none>
2025-07-01 13:09:16,895 [DEBUG][       Thread-605652][   transport.py][1871] : server lang: <none>
2025-07-01 13:09:16,895 [DEBUG][       Thread-605652][   transport.py][1871] : kex follows: False
2025-07-01 13:09:16,895 [DEBUG][       Thread-605652][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:09:16,895 [DEBUG][       Thread-605652][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:09:16,895 [DEBUG][       Thread-605652][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:09:16,895 [DEBUG][       Thread-605652][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:09:16,895 [DEBUG][       Thread-605652][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:09:16,896 [DEBUG][       Thread-605652][   transport.py][1871] : Compression: none
2025-07-01 13:09:16,896 [DEBUG][       Thread-605652][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:09:16,912 [DEBUG][       Thread-605652][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:09:16,912 [DEBUG][       Thread-605652][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:09:16,913 [DEBUG][       Thread-605652][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:09:16,913 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:09:16,913 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:09:16,914 [DEBUG][       Thread-605652][   transport.py][1871] : userauth is OK
2025-07-01 13:09:16,928 [ INFO][       Thread-605652][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:09:16,928 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:09:17,587 [DEBUG][       Thread-605652][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:09:17,587 [DEBUG][       Thread-605652][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:09:17,629 [DEBUG][       Thread-605652][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:09:17,629 [DEBUG][       Thread-605652][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:09:17,632 [DEBUG][       Thread-605652][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:09:17,641 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:09:17,641 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:09:17,643 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:09:17,645 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:09:17,649 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:09:17,651 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:09:17,651 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:09:17,652 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:09:17,652 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.464526 -999.00  +13.30  34.03     51   +3.40 1 1 2 1 1   888    0 10.50 22.93 ----- 31.9 34.0 27.8 44.5 16.3 -25.3 15.3 -26.0 15.3 -24.2 16.2 -23.5
2025-07-01 13:09:17,652 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:09:17,652 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:09:17,652 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.464526
2025-07-01 13:09:17,653 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:09:17,653 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:09:17,653 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:09:17,653 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:09:17,653 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:09:17,654 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:09:10', tmtdew=11.45, humidity=45.77, cloud=0.0, wind=33.57, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:08:55.046', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:09:17,655 [DEBUG][       Thread-605652][   transport.py][1871] : EOF in transport thread
2025-07-01 13:09:17,737 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:09:17,751 [DEBUG][       Thread-605655][   transport.py][1871] : starting thread (client mode): 0x75aa9b0
2025-07-01 13:09:17,751 [DEBUG][       Thread-605655][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:09:17,766 [DEBUG][       Thread-605655][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:09:17,766 [ INFO][       Thread-605655][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:09:17,773 [DEBUG][       Thread-605655][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:09:17,773 [DEBUG][       Thread-605655][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:09:17,773 [DEBUG][       Thread-605655][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:09:17,773 [DEBUG][       Thread-605655][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:09:17,773 [DEBUG][       Thread-605655][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:09:17,774 [DEBUG][       Thread-605655][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:09:17,774 [DEBUG][       Thread-605655][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:09:17,774 [DEBUG][       Thread-605655][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:09:17,774 [DEBUG][       Thread-605655][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:09:17,774 [DEBUG][       Thread-605655][   transport.py][1871] : client lang: <none>
2025-07-01 13:09:17,774 [DEBUG][       Thread-605655][   transport.py][1871] : server lang: <none>
2025-07-01 13:09:17,774 [DEBUG][       Thread-605655][   transport.py][1871] : kex follows: False
2025-07-01 13:09:17,774 [DEBUG][       Thread-605655][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:09:17,774 [DEBUG][       Thread-605655][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:09:17,774 [DEBUG][       Thread-605655][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:09:17,774 [DEBUG][       Thread-605655][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:09:17,774 [DEBUG][       Thread-605655][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:09:17,774 [DEBUG][       Thread-605655][   transport.py][1871] : Compression: none
2025-07-01 13:09:17,774 [DEBUG][       Thread-605655][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:09:17,831 [DEBUG][       Thread-605655][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:09:17,832 [DEBUG][       Thread-605655][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:09:17,832 [DEBUG][       Thread-605655][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:09:17,833 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:09:17,833 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:09:17,891 [DEBUG][       Thread-605655][   transport.py][1871] : userauth is OK
2025-07-01 13:09:17,892 [DEBUG][       Thread-605655][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:09:17,892 [DEBUG][       Thread-605655][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:09:17,892 [DEBUG][       Thread-605655][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:09:17,892 [DEBUG][       Thread-605655][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:09:17,910 [ INFO][       Thread-605655][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:09:17,911 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:09:17,911 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:09:18,913 [DEBUG][       Thread-605655][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:09:18,913 [DEBUG][       Thread-605655][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:09:18,963 [DEBUG][       Thread-605655][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:09:18,964 [DEBUG][       Thread-605655][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:09:18,973 [DEBUG][       Thread-605655][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:09:18,982 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:09:18,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-07-01 13:09:18,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-07-01 13:09:19,000 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:09:19,000 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:09:19,001 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:09:19,009 [DEBUG][       Thread-605655][   transport.py][1871] : EOF in transport thread
2025-07-01 13:09:21,820 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:09:21,821 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:09:22,222 [DEBUG][Thread-605657 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:09:29,008 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:09:29,008 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:09:29,008 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:09:29,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-07-01 13:09:29,484 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 9, 10), 11.45, 45.77, 0.0, 33.57, 13.34, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:09:29,484 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:09:10
2025-07-01 13:09:29,571 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:09:29,577 [DEBUG][       Thread-605658][   transport.py][1871] : starting thread (client mode): 0x81d9600
2025-07-01 13:09:29,577 [DEBUG][       Thread-605658][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:09:29,597 [DEBUG][       Thread-605658][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:09:29,597 [ INFO][       Thread-605658][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:09:29,600 [DEBUG][       Thread-605658][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:09:29,600 [DEBUG][       Thread-605658][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:09:29,600 [DEBUG][       Thread-605658][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:09:29,600 [DEBUG][       Thread-605658][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:09:29,600 [DEBUG][       Thread-605658][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:09:29,600 [DEBUG][       Thread-605658][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:09:29,600 [DEBUG][       Thread-605658][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:09:29,600 [DEBUG][       Thread-605658][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:09:29,600 [DEBUG][       Thread-605658][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:09:29,600 [DEBUG][       Thread-605658][   transport.py][1871] : client lang: <none>
2025-07-01 13:09:29,600 [DEBUG][       Thread-605658][   transport.py][1871] : server lang: <none>
2025-07-01 13:09:29,600 [DEBUG][       Thread-605658][   transport.py][1871] : kex follows: False
2025-07-01 13:09:29,600 [DEBUG][       Thread-605658][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:09:29,600 [DEBUG][       Thread-605658][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:09:29,600 [DEBUG][       Thread-605658][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:09:29,600 [DEBUG][       Thread-605658][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:09:29,600 [DEBUG][       Thread-605658][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:09:29,600 [DEBUG][       Thread-605658][   transport.py][1871] : Compression: none
2025-07-01 13:09:29,601 [DEBUG][       Thread-605658][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:09:29,618 [DEBUG][       Thread-605658][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:09:29,618 [DEBUG][       Thread-605658][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:09:29,618 [DEBUG][       Thread-605658][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:09:29,619 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:09:29,619 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:09:29,620 [DEBUG][       Thread-605658][   transport.py][1871] : userauth is OK
2025-07-01 13:09:29,644 [ INFO][       Thread-605658][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:09:29,645 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:09:30,334 [DEBUG][       Thread-605658][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:09:30,334 [DEBUG][       Thread-605658][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:09:30,377 [DEBUG][       Thread-605658][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:09:30,377 [DEBUG][       Thread-605658][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:09:30,381 [DEBUG][       Thread-605658][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:09:30,392 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:09:30,393 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:09:30,394 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:09:30,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:09:30,400 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:09:30,402 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:09:30,402 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:09:30,403 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:09:30,403 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.464526 -999.00  +13.30  34.03     51   +3.40 1 1 2 1 1   888    0 10.50 22.93 ----- 31.9 34.0 27.8 44.5 16.3 -25.3 15.3 -26.0 15.3 -24.2 16.2 -23.5
2025-07-01 13:09:30,403 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:09:30,403 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:09:30,403 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.464526
2025-07-01 13:09:30,404 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:09:30,404 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:09:30,404 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:09:30,404 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:09:30,404 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:09:30,405 [DEBUG][       Thread-605658][   transport.py][1871] : EOF in transport thread
2025-07-01 13:09:30,405 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:09:10', tmtdew=11.45, humidity=45.77, cloud=0.0, wind=33.57, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:08:55.046', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:09:30,488 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:09:31,223 [DEBUG][Thread-605661 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:09:31,255 [DEBUG][Thread-605662 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:09:40,277 [DEBUG][Thread-605663 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:09:49,296 [DEBUG][Thread-605664 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:09:58,315 [DEBUG][Thread-605665 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:10:07,338 [DEBUG][Thread-605666 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:10:16,359 [DEBUG][Thread-605667 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:10:21,961 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:10:21,962 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:10:25,384 [DEBUG][Thread-605668 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:10:31,272 [DEBUG][Thread-605669 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:10:34,405 [DEBUG][Thread-605670 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:10:43,427 [DEBUG][Thread-605671 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:10:52,447 [DEBUG][Thread-605672 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:11:01,470 [DEBUG][Thread-605673 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:11:10,490 [DEBUG][Thread-605674 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:11:19,512 [DEBUG][Thread-605675 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:11:22,102 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:11:22,103 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:11:28,534 [DEBUG][Thread-605676 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:11:31,328 [DEBUG][Thread-605677 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:11:37,556 [DEBUG][Thread-605678 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:11:38,772 [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-07-01 13:11:46,574 [DEBUG][Thread-605679 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:11:48,780 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:11:48,780 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:11:48,780 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:11:48,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-07-01 13:11:49,285 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 11, 16), 11.48, 45.76, 0.0, 36.61, 13.36, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:11:49,286 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:11:16
2025-07-01 13:11:49,373 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:11:49,377 [DEBUG][       Thread-605680][   transport.py][1871] : starting thread (client mode): 0x81e7610
2025-07-01 13:11:49,377 [DEBUG][       Thread-605680][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:11:49,397 [DEBUG][       Thread-605680][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:11:49,398 [ INFO][       Thread-605680][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:11:49,401 [DEBUG][       Thread-605680][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:11:49,401 [DEBUG][       Thread-605680][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:11:49,401 [DEBUG][       Thread-605680][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:11:49,401 [DEBUG][       Thread-605680][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:11:49,401 [DEBUG][       Thread-605680][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:11:49,401 [DEBUG][       Thread-605680][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:11:49,401 [DEBUG][       Thread-605680][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:11:49,401 [DEBUG][       Thread-605680][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:11:49,401 [DEBUG][       Thread-605680][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:11:49,401 [DEBUG][       Thread-605680][   transport.py][1871] : client lang: <none>
2025-07-01 13:11:49,401 [DEBUG][       Thread-605680][   transport.py][1871] : server lang: <none>
2025-07-01 13:11:49,401 [DEBUG][       Thread-605680][   transport.py][1871] : kex follows: False
2025-07-01 13:11:49,401 [DEBUG][       Thread-605680][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:11:49,401 [DEBUG][       Thread-605680][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:11:49,401 [DEBUG][       Thread-605680][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:11:49,401 [DEBUG][       Thread-605680][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:11:49,401 [DEBUG][       Thread-605680][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:11:49,401 [DEBUG][       Thread-605680][   transport.py][1871] : Compression: none
2025-07-01 13:11:49,401 [DEBUG][       Thread-605680][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:11:49,415 [DEBUG][       Thread-605680][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:11:49,415 [DEBUG][       Thread-605680][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:11:49,415 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:11:49,416 [DEBUG][       Thread-605680][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:11:49,416 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:11:49,417 [DEBUG][       Thread-605680][   transport.py][1871] : userauth is OK
2025-07-01 13:11:49,429 [ INFO][       Thread-605680][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:11:49,430 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:11:50,109 [DEBUG][       Thread-605680][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:11:50,109 [DEBUG][       Thread-605680][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:11:50,152 [DEBUG][       Thread-605680][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:11:50,152 [DEBUG][       Thread-605680][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:11:50,155 [DEBUG][       Thread-605680][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:11:50,167 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:11:50,167 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:11:50,168 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:11:50,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:11:50,172 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:11:50,173 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:11:50,173 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:11:50,173 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:11:50,173 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.465915 -999.00  +13.20  41.13     50   +3.10 1 1 2 1 1   888    0 10.49 22.51 ----- 36.8 41.1 31.2 50.0 16.3 -25.6 15.4 -26.3 15.3 -24.2 16.2 -24.8
2025-07-01 13:11:50,173 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:11:50,173 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:11:50,173 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.465915
2025-07-01 13:11:50,173 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:11:50,174 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:11:50,174 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:11:50,174 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:11:50,174 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:11:50,174 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:11:16', tmtdew=11.48, humidity=45.76, cloud=0.0, wind=36.61, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:10:55.056', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:11:50,174 [DEBUG][       Thread-605680][   transport.py][1871] : EOF in transport thread
2025-07-01 13:11:50,247 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:11:50,259 [DEBUG][       Thread-605683][   transport.py][1871] : starting thread (client mode): 0x82b3670
2025-07-01 13:11:50,259 [DEBUG][       Thread-605683][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:11:50,274 [DEBUG][       Thread-605683][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:11:50,274 [ INFO][       Thread-605683][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:11:50,281 [DEBUG][       Thread-605683][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:11:50,281 [DEBUG][       Thread-605683][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:11:50,281 [DEBUG][       Thread-605683][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:11:50,281 [DEBUG][       Thread-605683][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:11:50,281 [DEBUG][       Thread-605683][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:11:50,281 [DEBUG][       Thread-605683][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:11:50,281 [DEBUG][       Thread-605683][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:11:50,281 [DEBUG][       Thread-605683][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:11:50,281 [DEBUG][       Thread-605683][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:11:50,281 [DEBUG][       Thread-605683][   transport.py][1871] : client lang: <none>
2025-07-01 13:11:50,281 [DEBUG][       Thread-605683][   transport.py][1871] : server lang: <none>
2025-07-01 13:11:50,281 [DEBUG][       Thread-605683][   transport.py][1871] : kex follows: False
2025-07-01 13:11:50,281 [DEBUG][       Thread-605683][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:11:50,281 [DEBUG][       Thread-605683][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:11:50,282 [DEBUG][       Thread-605683][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:11:50,282 [DEBUG][       Thread-605683][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:11:50,282 [DEBUG][       Thread-605683][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:11:50,282 [DEBUG][       Thread-605683][   transport.py][1871] : Compression: none
2025-07-01 13:11:50,282 [DEBUG][       Thread-605683][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:11:50,338 [DEBUG][       Thread-605683][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:11:50,338 [DEBUG][       Thread-605683][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:11:50,338 [DEBUG][       Thread-605683][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:11:50,338 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:11:50,339 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:11:50,396 [DEBUG][       Thread-605683][   transport.py][1871] : userauth is OK
2025-07-01 13:11:50,396 [DEBUG][       Thread-605683][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:11:50,396 [DEBUG][       Thread-605683][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:11:50,396 [DEBUG][       Thread-605683][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:11:50,396 [DEBUG][       Thread-605683][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:11:50,410 [ INFO][       Thread-605683][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:11:50,410 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:11:50,410 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:11:51,462 [DEBUG][       Thread-605683][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:11:51,462 [DEBUG][       Thread-605683][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:11:51,512 [DEBUG][       Thread-605683][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:11:51,512 [DEBUG][       Thread-605683][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:11:51,521 [DEBUG][       Thread-605683][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:11:51,529 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:11:51,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-07-01 13:11:51,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-07-01 13:11:51,547 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:11:51,548 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:11:51,548 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:11:51,556 [DEBUG][       Thread-605683][   transport.py][1871] : EOF in transport thread
2025-07-01 13:11:55,593 [DEBUG][Thread-605685 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:12:01,558 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:12:01,559 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:12:01,559 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:12:01,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-07-01 13:12:02,069 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 11, 48), 11.51, 45.69, 0.0, 43.58, 13.4, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:12:02,069 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:11:48
2025-07-01 13:12:02,153 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:12:02,157 [DEBUG][       Thread-605686][   transport.py][1871] : starting thread (client mode): 0x81e5810
2025-07-01 13:12:02,157 [DEBUG][       Thread-605686][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:12:02,178 [DEBUG][       Thread-605686][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:12:02,178 [ INFO][       Thread-605686][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:12:02,181 [DEBUG][       Thread-605686][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:12:02,181 [DEBUG][       Thread-605686][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:12:02,181 [DEBUG][       Thread-605686][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:12:02,181 [DEBUG][       Thread-605686][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:12:02,181 [DEBUG][       Thread-605686][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:12:02,181 [DEBUG][       Thread-605686][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:12:02,181 [DEBUG][       Thread-605686][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:12:02,182 [DEBUG][       Thread-605686][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:12:02,182 [DEBUG][       Thread-605686][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:12:02,182 [DEBUG][       Thread-605686][   transport.py][1871] : client lang: <none>
2025-07-01 13:12:02,182 [DEBUG][       Thread-605686][   transport.py][1871] : server lang: <none>
2025-07-01 13:12:02,182 [DEBUG][       Thread-605686][   transport.py][1871] : kex follows: False
2025-07-01 13:12:02,182 [DEBUG][       Thread-605686][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:12:02,182 [DEBUG][       Thread-605686][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:12:02,182 [DEBUG][       Thread-605686][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:12:02,182 [DEBUG][       Thread-605686][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:12:02,182 [DEBUG][       Thread-605686][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:12:02,182 [DEBUG][       Thread-605686][   transport.py][1871] : Compression: none
2025-07-01 13:12:02,182 [DEBUG][       Thread-605686][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:12:02,198 [DEBUG][       Thread-605686][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:12:02,199 [DEBUG][       Thread-605686][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:12:02,199 [DEBUG][       Thread-605686][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:12:02,200 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:12:02,200 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:12:02,201 [DEBUG][       Thread-605686][   transport.py][1871] : userauth is OK
2025-07-01 13:12:02,214 [ INFO][       Thread-605686][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:12:02,215 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:12:02,887 [DEBUG][       Thread-605686][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:12:02,887 [DEBUG][       Thread-605686][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:12:02,929 [DEBUG][       Thread-605686][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:12:02,929 [DEBUG][       Thread-605686][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:12:02,933 [DEBUG][       Thread-605686][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:12:02,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:12:02,946 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:12:02,948 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:12:02,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:12:02,955 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:12:02,957 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:12:02,957 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:12:02,958 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:12:02,958 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.466262 -999.00  +13.10  36.94     50   +2.90 1 1 2 1 1   888    0 10.35 22.22 ----- 40.1 36.9 25.4 49.5 16.3 -25.6 15.3 -26.1 15.3 -24.3 16.2 -24.5
2025-07-01 13:12:02,958 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:12:02,958 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:12:02,958 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.466262
2025-07-01 13:12:02,959 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:12:02,959 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:12:02,959 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:12:02,959 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:12:02,959 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:12:02,960 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:11:48', tmtdew=11.51, humidity=45.69, cloud=0.0, wind=43.58, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:11:25.037', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:12:02,961 [DEBUG][       Thread-605686][   transport.py][1871] : EOF in transport thread
2025-07-01 13:12:03,042 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:12:03,058 [DEBUG][       Thread-605689][   transport.py][1871] : starting thread (client mode): 0x81a70d0
2025-07-01 13:12:03,058 [DEBUG][       Thread-605689][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:12:03,079 [DEBUG][       Thread-605689][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:12:03,079 [ INFO][       Thread-605689][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:12:03,086 [DEBUG][       Thread-605689][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:12:03,087 [DEBUG][       Thread-605689][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:12:03,087 [DEBUG][       Thread-605689][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:12:03,087 [DEBUG][       Thread-605689][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:12:03,087 [DEBUG][       Thread-605689][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:12:03,087 [DEBUG][       Thread-605689][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:12:03,087 [DEBUG][       Thread-605689][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:12:03,087 [DEBUG][       Thread-605689][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:12:03,087 [DEBUG][       Thread-605689][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:12:03,087 [DEBUG][       Thread-605689][   transport.py][1871] : client lang: <none>
2025-07-01 13:12:03,087 [DEBUG][       Thread-605689][   transport.py][1871] : server lang: <none>
2025-07-01 13:12:03,087 [DEBUG][       Thread-605689][   transport.py][1871] : kex follows: False
2025-07-01 13:12:03,087 [DEBUG][       Thread-605689][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:12:03,087 [DEBUG][       Thread-605689][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:12:03,087 [DEBUG][       Thread-605689][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:12:03,087 [DEBUG][       Thread-605689][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:12:03,088 [DEBUG][       Thread-605689][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:12:03,088 [DEBUG][       Thread-605689][   transport.py][1871] : Compression: none
2025-07-01 13:12:03,088 [DEBUG][       Thread-605689][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:12:03,147 [DEBUG][       Thread-605689][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:12:03,148 [DEBUG][       Thread-605689][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:12:03,148 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:12:03,149 [DEBUG][       Thread-605689][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:12:03,150 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:12:03,204 [DEBUG][       Thread-605689][   transport.py][1871] : userauth is OK
2025-07-01 13:12:03,204 [DEBUG][       Thread-605689][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:12:03,205 [DEBUG][       Thread-605689][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:12:03,205 [DEBUG][       Thread-605689][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:12:03,205 [DEBUG][       Thread-605689][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:12:03,224 [ INFO][       Thread-605689][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:12:03,224 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:12:03,224 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:12:04,280 [DEBUG][       Thread-605689][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:12:04,281 [DEBUG][       Thread-605689][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:12:04,332 [DEBUG][       Thread-605689][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:12:04,332 [DEBUG][       Thread-605689][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:12:04,342 [DEBUG][       Thread-605689][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:12:04,351 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:12:04,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-07-01 13:12:04,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-07-01 13:12:04,372 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:12:04,372 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:12:04,373 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:12:04,383 [DEBUG][       Thread-605689][   transport.py][1871] : EOF in transport thread
2025-07-01 13:12:04,641 [DEBUG][Thread-605691 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:12:13,676 [DEBUG][Thread-605692 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:12:14,375 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:12:14,376 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:12:14,376 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:12:14,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-07-01 13:12:14,868 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 11, 48), 11.51, 45.69, 0.0, 43.58, 13.4, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:12:14,868 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:11:48
2025-07-01 13:12:14,952 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:12:14,956 [DEBUG][       Thread-605693][   transport.py][1871] : starting thread (client mode): 0x81daa70
2025-07-01 13:12:14,956 [DEBUG][       Thread-605693][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:12:14,977 [DEBUG][       Thread-605693][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:12:14,977 [ INFO][       Thread-605693][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:12:14,981 [DEBUG][       Thread-605693][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:12:14,981 [DEBUG][       Thread-605693][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:12:14,981 [DEBUG][       Thread-605693][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:12:14,981 [DEBUG][       Thread-605693][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:12:14,981 [DEBUG][       Thread-605693][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:12:14,981 [DEBUG][       Thread-605693][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:12:14,981 [DEBUG][       Thread-605693][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:12:14,981 [DEBUG][       Thread-605693][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:12:14,981 [DEBUG][       Thread-605693][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:12:14,981 [DEBUG][       Thread-605693][   transport.py][1871] : client lang: <none>
2025-07-01 13:12:14,981 [DEBUG][       Thread-605693][   transport.py][1871] : server lang: <none>
2025-07-01 13:12:14,981 [DEBUG][       Thread-605693][   transport.py][1871] : kex follows: False
2025-07-01 13:12:14,981 [DEBUG][       Thread-605693][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:12:14,981 [DEBUG][       Thread-605693][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:12:14,982 [DEBUG][       Thread-605693][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:12:14,982 [DEBUG][       Thread-605693][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:12:14,982 [DEBUG][       Thread-605693][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:12:14,982 [DEBUG][       Thread-605693][   transport.py][1871] : Compression: none
2025-07-01 13:12:14,982 [DEBUG][       Thread-605693][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:12:14,998 [DEBUG][       Thread-605693][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:12:14,999 [DEBUG][       Thread-605693][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:12:14,999 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:12:15,000 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:12:15,000 [DEBUG][       Thread-605693][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:12:15,001 [DEBUG][       Thread-605693][   transport.py][1871] : userauth is OK
2025-07-01 13:12:15,014 [ INFO][       Thread-605693][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:12:15,015 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:12:15,709 [DEBUG][       Thread-605693][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:12:15,709 [DEBUG][       Thread-605693][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:12:15,753 [DEBUG][       Thread-605693][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:12:15,753 [DEBUG][       Thread-605693][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:12:15,756 [DEBUG][       Thread-605693][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:12:15,766 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:12:15,766 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:12:15,768 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:12:15,770 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:12:15,775 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:12:15,777 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:12:15,777 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:12:15,778 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:12:15,778 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.466262 -999.00  +13.10  36.94     50   +2.90 1 1 2 1 1   888    0 10.35 22.22 ----- 40.1 36.9 25.4 49.5 16.3 -25.6 15.3 -26.1 15.3 -24.3 16.2 -24.5
2025-07-01 13:12:15,778 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:12:15,778 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:12:15,778 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.466262
2025-07-01 13:12:15,779 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:12:15,779 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:12:15,779 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:12:15,779 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:12:15,779 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:12:15,779 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:11:48', tmtdew=11.51, humidity=45.69, cloud=0.0, wind=43.58, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:11:25.037', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:12:15,780 [DEBUG][       Thread-605693][   transport.py][1871] : EOF in transport thread
2025-07-01 13:12:15,863 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:12:15,874 [DEBUG][       Thread-605696][   transport.py][1871] : starting thread (client mode): 0x8154160
2025-07-01 13:12:15,874 [DEBUG][       Thread-605696][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:12:15,888 [DEBUG][       Thread-605696][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:12:15,889 [ INFO][       Thread-605696][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:12:15,896 [DEBUG][       Thread-605696][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:12:15,896 [DEBUG][       Thread-605696][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:12:15,896 [DEBUG][       Thread-605696][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:12:15,896 [DEBUG][       Thread-605696][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:12:15,896 [DEBUG][       Thread-605696][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:12:15,896 [DEBUG][       Thread-605696][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:12:15,896 [DEBUG][       Thread-605696][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:12:15,897 [DEBUG][       Thread-605696][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:12:15,897 [DEBUG][       Thread-605696][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:12:15,897 [DEBUG][       Thread-605696][   transport.py][1871] : client lang: <none>
2025-07-01 13:12:15,897 [DEBUG][       Thread-605696][   transport.py][1871] : server lang: <none>
2025-07-01 13:12:15,897 [DEBUG][       Thread-605696][   transport.py][1871] : kex follows: False
2025-07-01 13:12:15,897 [DEBUG][       Thread-605696][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:12:15,897 [DEBUG][       Thread-605696][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:12:15,897 [DEBUG][       Thread-605696][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:12:15,897 [DEBUG][       Thread-605696][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:12:15,897 [DEBUG][       Thread-605696][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:12:15,897 [DEBUG][       Thread-605696][   transport.py][1871] : Compression: none
2025-07-01 13:12:15,897 [DEBUG][       Thread-605696][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:12:15,960 [DEBUG][       Thread-605696][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:12:15,961 [DEBUG][       Thread-605696][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:12:15,961 [DEBUG][       Thread-605696][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:12:15,962 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:12:15,962 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:12:16,020 [DEBUG][       Thread-605696][   transport.py][1871] : userauth is OK
2025-07-01 13:12:16,020 [DEBUG][       Thread-605696][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:12:16,020 [DEBUG][       Thread-605696][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:12:16,020 [DEBUG][       Thread-605696][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:12:16,021 [DEBUG][       Thread-605696][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:12:16,039 [ INFO][       Thread-605696][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:12:16,039 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:12:16,040 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:12:17,050 [DEBUG][       Thread-605696][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:12:17,051 [DEBUG][       Thread-605696][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:12:17,100 [DEBUG][       Thread-605696][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:12:17,100 [DEBUG][       Thread-605696][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:12:17,110 [DEBUG][       Thread-605696][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:12:17,125 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:12: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')
2025-07-01 13:12:17,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') -> 00000000
2025-07-01 13:12:17,148 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:12:17,149 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:12:17,149 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:12:17,157 [DEBUG][       Thread-605696][   transport.py][1871] : EOF in transport thread
2025-07-01 13:12:22,241 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:12:22,242 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:12:22,695 [DEBUG][Thread-605698 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:12:27,160 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:12:27,160 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:12:27,160 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:12:27,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-07-01 13:12:27,661 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 12, 20), 11.56, 45.62, 0.0, 33.72, 13.29, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:12:27,661 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:12:20
2025-07-01 13:12:27,748 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:12:27,752 [DEBUG][       Thread-605699][   transport.py][1871] : starting thread (client mode): 0x75abdc0
2025-07-01 13:12:27,752 [DEBUG][       Thread-605699][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:12:27,773 [DEBUG][       Thread-605699][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:12:27,773 [ INFO][       Thread-605699][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:12:27,776 [DEBUG][       Thread-605699][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:12:27,776 [DEBUG][       Thread-605699][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:12:27,776 [DEBUG][       Thread-605699][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:12:27,776 [DEBUG][       Thread-605699][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:12:27,776 [DEBUG][       Thread-605699][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:12:27,776 [DEBUG][       Thread-605699][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:12:27,776 [DEBUG][       Thread-605699][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:12:27,776 [DEBUG][       Thread-605699][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:12:27,777 [DEBUG][       Thread-605699][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:12:27,777 [DEBUG][       Thread-605699][   transport.py][1871] : client lang: <none>
2025-07-01 13:12:27,777 [DEBUG][       Thread-605699][   transport.py][1871] : server lang: <none>
2025-07-01 13:12:27,777 [DEBUG][       Thread-605699][   transport.py][1871] : kex follows: False
2025-07-01 13:12:27,777 [DEBUG][       Thread-605699][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:12:27,777 [DEBUG][       Thread-605699][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:12:27,777 [DEBUG][       Thread-605699][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:12:27,777 [DEBUG][       Thread-605699][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:12:27,777 [DEBUG][       Thread-605699][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:12:27,777 [DEBUG][       Thread-605699][   transport.py][1871] : Compression: none
2025-07-01 13:12:27,777 [DEBUG][       Thread-605699][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:12:27,793 [DEBUG][       Thread-605699][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:12:27,794 [DEBUG][       Thread-605699][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:12:27,794 [DEBUG][       Thread-605699][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:12:27,794 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:12:27,794 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:12:27,796 [DEBUG][       Thread-605699][   transport.py][1871] : userauth is OK
2025-07-01 13:12:27,820 [ INFO][       Thread-605699][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:12:27,821 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:12:28,487 [DEBUG][       Thread-605699][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:12:28,487 [DEBUG][       Thread-605699][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:12:28,529 [DEBUG][       Thread-605699][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:12:28,529 [DEBUG][       Thread-605699][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:12:28,533 [DEBUG][       Thread-605699][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:12:28,546 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:12:28,546 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:12:28,548 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:12:28,550 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:12:28,555 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:12:28,557 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:12:28,557 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:12:28,558 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:12:28,558 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.466262 -999.00  +13.10  36.94     50   +2.90 1 1 2 1 1   888    0 10.35 22.22 ----- 40.1 36.9 25.4 49.5 16.3 -25.6 15.3 -26.1 15.3 -24.3 16.2 -24.5
2025-07-01 13:12:28,558 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:12:28,558 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:12:28,558 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.466262
2025-07-01 13:12:28,559 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:12:28,560 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:12:28,560 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:12:28,560 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:12:28,560 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:12:28,560 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:12:20', tmtdew=11.56, humidity=45.62, cloud=0.0, wind=33.72, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:11:25.037', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:12:28,561 [DEBUG][       Thread-605699][   transport.py][1871] : EOF in transport thread
2025-07-01 13:12:28,644 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:12:28,656 [DEBUG][       Thread-605702][   transport.py][1871] : starting thread (client mode): 0x8154760
2025-07-01 13:12:28,656 [DEBUG][       Thread-605702][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:12:28,671 [DEBUG][       Thread-605702][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:12:28,671 [ INFO][       Thread-605702][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:12:28,679 [DEBUG][       Thread-605702][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:12:28,679 [DEBUG][       Thread-605702][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:12:28,679 [DEBUG][       Thread-605702][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:12:28,679 [DEBUG][       Thread-605702][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:12:28,679 [DEBUG][       Thread-605702][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:12:28,680 [DEBUG][       Thread-605702][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:12:28,680 [DEBUG][       Thread-605702][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:12:28,680 [DEBUG][       Thread-605702][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:12:28,680 [DEBUG][       Thread-605702][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:12:28,680 [DEBUG][       Thread-605702][   transport.py][1871] : client lang: <none>
2025-07-01 13:12:28,680 [DEBUG][       Thread-605702][   transport.py][1871] : server lang: <none>
2025-07-01 13:12:28,680 [DEBUG][       Thread-605702][   transport.py][1871] : kex follows: False
2025-07-01 13:12:28,680 [DEBUG][       Thread-605702][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:12:28,680 [DEBUG][       Thread-605702][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:12:28,680 [DEBUG][       Thread-605702][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:12:28,680 [DEBUG][       Thread-605702][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:12:28,680 [DEBUG][       Thread-605702][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:12:28,680 [DEBUG][       Thread-605702][   transport.py][1871] : Compression: none
2025-07-01 13:12:28,680 [DEBUG][       Thread-605702][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:12:28,735 [DEBUG][       Thread-605702][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:12:28,735 [DEBUG][       Thread-605702][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:12:28,735 [DEBUG][       Thread-605702][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:12:28,735 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:12:28,736 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:12:28,792 [DEBUG][       Thread-605702][   transport.py][1871] : userauth is OK
2025-07-01 13:12:28,792 [DEBUG][       Thread-605702][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:12:28,792 [DEBUG][       Thread-605702][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:12:28,792 [DEBUG][       Thread-605702][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:12:28,792 [DEBUG][       Thread-605702][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:12:28,806 [ INFO][       Thread-605702][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:12:28,806 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:12:28,806 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:12:29,838 [DEBUG][       Thread-605702][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:12:29,839 [DEBUG][       Thread-605702][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:12:29,888 [DEBUG][       Thread-605702][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:12:29,888 [DEBUG][       Thread-605702][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:12:29,897 [DEBUG][       Thread-605702][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:12:29,906 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:12:29,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-07-01 13:12:29,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') -> 00000000
2025-07-01 13:12:29,925 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:12:29,925 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:12:29,925 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:12:29,933 [DEBUG][       Thread-605702][   transport.py][1871] : EOF in transport thread
2025-07-01 13:12:31,377 [DEBUG][Thread-605704 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:12:31,716 [DEBUG][Thread-605705 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:12:39,936 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:12:39,936 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:12:39,936 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:12:39,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-07-01 13:12:40,419 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 12, 20), 11.56, 45.62, 0.0, 33.72, 13.29, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:12:40,419 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:12:20
2025-07-01 13:12:40,504 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:12:40,508 [DEBUG][       Thread-605706][   transport.py][1871] : starting thread (client mode): 0x81a65c0
2025-07-01 13:12:40,508 [DEBUG][       Thread-605706][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:12:40,530 [DEBUG][       Thread-605706][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:12:40,530 [ INFO][       Thread-605706][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:12:40,533 [DEBUG][       Thread-605706][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:12:40,533 [DEBUG][       Thread-605706][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:12:40,533 [DEBUG][       Thread-605706][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:12:40,534 [DEBUG][       Thread-605706][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:12:40,534 [DEBUG][       Thread-605706][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:12:40,534 [DEBUG][       Thread-605706][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:12:40,534 [DEBUG][       Thread-605706][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:12:40,534 [DEBUG][       Thread-605706][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:12:40,534 [DEBUG][       Thread-605706][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:12:40,534 [DEBUG][       Thread-605706][   transport.py][1871] : client lang: <none>
2025-07-01 13:12:40,534 [DEBUG][       Thread-605706][   transport.py][1871] : server lang: <none>
2025-07-01 13:12:40,534 [DEBUG][       Thread-605706][   transport.py][1871] : kex follows: False
2025-07-01 13:12:40,534 [DEBUG][       Thread-605706][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:12:40,534 [DEBUG][       Thread-605706][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:12:40,534 [DEBUG][       Thread-605706][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:12:40,534 [DEBUG][       Thread-605706][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:12:40,534 [DEBUG][       Thread-605706][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:12:40,535 [DEBUG][       Thread-605706][   transport.py][1871] : Compression: none
2025-07-01 13:12:40,535 [DEBUG][       Thread-605706][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:12:40,555 [DEBUG][       Thread-605706][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:12:40,556 [DEBUG][       Thread-605706][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:12:40,556 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:12:40,556 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:12:40,557 [DEBUG][       Thread-605706][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:12:40,558 [DEBUG][       Thread-605706][   transport.py][1871] : userauth is OK
2025-07-01 13:12:40,573 [ INFO][       Thread-605706][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:12:40,574 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:12:40,753 [DEBUG][Thread-605708 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:12:41,230 [DEBUG][       Thread-605706][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:12:41,230 [DEBUG][       Thread-605706][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:12:41,272 [DEBUG][       Thread-605706][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:12:41,272 [DEBUG][       Thread-605706][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:12:41,275 [DEBUG][       Thread-605706][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:12:41,286 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:12:41,287 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:12:41,288 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:12:41,289 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:12:41,293 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:12:41,294 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:12:41,294 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:12:41,294 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:12:41,295 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.466956 -999.00  +13.20  30.53     50   +3.30 1 1 2 1 1   888    0 10.38 23.44 ----- 40.5 30.5 29.4 42.6 16.2 -24.8 15.3 -25.2 15.2 -24.5 16.1 -23.2
2025-07-01 13:12:41,295 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:12:41,295 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:12:41,295 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.466956
2025-07-01 13:12:41,295 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:12:41,295 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:12:41,295 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:12:41,295 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:12:41,295 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:12:41,295 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:12:20', tmtdew=11.56, humidity=45.62, cloud=0.0, wind=33.72, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:12:24.998', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:12:41,296 [DEBUG][       Thread-605706][   transport.py][1871] : EOF in transport thread
2025-07-01 13:12:41,366 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:12:41,378 [DEBUG][       Thread-605710][   transport.py][1871] : starting thread (client mode): 0x81579a0
2025-07-01 13:12:41,378 [DEBUG][       Thread-605710][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:12:41,392 [DEBUG][       Thread-605710][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:12:41,392 [ INFO][       Thread-605710][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:12:41,400 [DEBUG][       Thread-605710][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:12:41,400 [DEBUG][       Thread-605710][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:12:41,400 [DEBUG][       Thread-605710][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:12:41,400 [DEBUG][       Thread-605710][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:12:41,400 [DEBUG][       Thread-605710][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:12:41,400 [DEBUG][       Thread-605710][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:12:41,400 [DEBUG][       Thread-605710][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:12:41,400 [DEBUG][       Thread-605710][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:12:41,400 [DEBUG][       Thread-605710][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:12:41,400 [DEBUG][       Thread-605710][   transport.py][1871] : client lang: <none>
2025-07-01 13:12:41,400 [DEBUG][       Thread-605710][   transport.py][1871] : server lang: <none>
2025-07-01 13:12:41,400 [DEBUG][       Thread-605710][   transport.py][1871] : kex follows: False
2025-07-01 13:12:41,400 [DEBUG][       Thread-605710][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:12:41,400 [DEBUG][       Thread-605710][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:12:41,400 [DEBUG][       Thread-605710][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:12:41,401 [DEBUG][       Thread-605710][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:12:41,401 [DEBUG][       Thread-605710][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:12:41,401 [DEBUG][       Thread-605710][   transport.py][1871] : Compression: none
2025-07-01 13:12:41,401 [DEBUG][       Thread-605710][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:12:41,460 [DEBUG][       Thread-605710][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:12:41,460 [DEBUG][       Thread-605710][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:12:41,461 [DEBUG][       Thread-605710][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:12:41,461 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:12:41,461 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:12:41,519 [DEBUG][       Thread-605710][   transport.py][1871] : userauth is OK
2025-07-01 13:12:41,519 [DEBUG][       Thread-605710][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:12:41,519 [DEBUG][       Thread-605710][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:12:41,520 [DEBUG][       Thread-605710][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:12:41,520 [DEBUG][       Thread-605710][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:12:41,541 [ INFO][       Thread-605710][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:12:41,542 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:12:41,542 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:12:42,531 [DEBUG][       Thread-605710][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:12:42,531 [DEBUG][       Thread-605710][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:12:42,580 [DEBUG][       Thread-605710][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:12:42,580 [DEBUG][       Thread-605710][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:12:42,589 [DEBUG][       Thread-605710][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:12:42,598 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:12:42,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')
2025-07-01 13:12:42,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-07-01 13:12:42,617 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:12:42,617 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:12:42,617 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:12:42,625 [DEBUG][       Thread-605710][   transport.py][1871] : EOF in transport thread
2025-07-01 13:12:49,774 [DEBUG][Thread-605712 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:12:52,628 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:12:52,628 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:12:52,628 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:12:52,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-07-01 13:12:53,134 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 12, 20), 11.56, 45.62, 0.0, 33.72, 13.29, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:12:53,134 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:12:20
2025-07-01 13:12:53,224 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:12:53,229 [DEBUG][       Thread-605713][   transport.py][1871] : starting thread (client mode): 0x81a6050
2025-07-01 13:12:53,229 [DEBUG][       Thread-605713][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:12:53,249 [DEBUG][       Thread-605713][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:12:53,249 [ INFO][       Thread-605713][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:12:53,252 [DEBUG][       Thread-605713][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:12:53,252 [DEBUG][       Thread-605713][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:12:53,252 [DEBUG][       Thread-605713][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:12:53,252 [DEBUG][       Thread-605713][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:12:53,252 [DEBUG][       Thread-605713][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:12:53,252 [DEBUG][       Thread-605713][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:12:53,252 [DEBUG][       Thread-605713][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:12:53,252 [DEBUG][       Thread-605713][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:12:53,252 [DEBUG][       Thread-605713][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:12:53,252 [DEBUG][       Thread-605713][   transport.py][1871] : client lang: <none>
2025-07-01 13:12:53,252 [DEBUG][       Thread-605713][   transport.py][1871] : server lang: <none>
2025-07-01 13:12:53,252 [DEBUG][       Thread-605713][   transport.py][1871] : kex follows: False
2025-07-01 13:12:53,252 [DEBUG][       Thread-605713][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:12:53,252 [DEBUG][       Thread-605713][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:12:53,252 [DEBUG][       Thread-605713][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:12:53,252 [DEBUG][       Thread-605713][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:12:53,253 [DEBUG][       Thread-605713][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:12:53,253 [DEBUG][       Thread-605713][   transport.py][1871] : Compression: none
2025-07-01 13:12:53,253 [DEBUG][       Thread-605713][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:12:53,267 [DEBUG][       Thread-605713][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:12:53,267 [DEBUG][       Thread-605713][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:12:53,268 [DEBUG][       Thread-605713][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:12:53,268 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:12:53,268 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:12:53,268 [DEBUG][       Thread-605713][   transport.py][1871] : userauth is OK
2025-07-01 13:12:53,281 [ INFO][       Thread-605713][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:12:53,281 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:12:53,928 [DEBUG][       Thread-605713][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:12:53,928 [DEBUG][       Thread-605713][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:12:53,968 [DEBUG][       Thread-605713][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:12:53,969 [DEBUG][       Thread-605713][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:12:53,971 [DEBUG][       Thread-605713][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:12:53,983 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:12:53,983 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:12:53,984 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:12:53,986 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:12:53,988 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:12:53,989 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:12:53,989 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:12:53,990 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:12:53,990 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.466956 -999.00  +13.20  30.53     50   +3.30 1 1 2 1 1   888    0 10.38 23.44 ----- 40.5 30.5 29.4 42.6 16.2 -24.8 15.3 -25.2 15.2 -24.5 16.1 -23.2
2025-07-01 13:12:53,990 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:12:53,990 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:12:53,990 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.466956
2025-07-01 13:12:53,990 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:12:53,990 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:12:53,990 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:12:53,990 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:12:53,990 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:12:53,990 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:12:20', tmtdew=11.56, humidity=45.62, cloud=0.0, wind=33.72, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:12:24.998', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:12:53,991 [DEBUG][       Thread-605713][   transport.py][1871] : EOF in transport thread
2025-07-01 13:12:54,065 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:12:54,076 [DEBUG][       Thread-605716][   transport.py][1871] : starting thread (client mode): 0x818c5b0
2025-07-01 13:12:54,076 [DEBUG][       Thread-605716][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:12:54,091 [DEBUG][       Thread-605716][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:12:54,091 [ INFO][       Thread-605716][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:12:54,098 [DEBUG][       Thread-605716][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:12:54,098 [DEBUG][       Thread-605716][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:12:54,098 [DEBUG][       Thread-605716][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:12:54,098 [DEBUG][       Thread-605716][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:12:54,098 [DEBUG][       Thread-605716][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:12:54,098 [DEBUG][       Thread-605716][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:12:54,098 [DEBUG][       Thread-605716][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:12:54,098 [DEBUG][       Thread-605716][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:12:54,098 [DEBUG][       Thread-605716][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:12:54,098 [DEBUG][       Thread-605716][   transport.py][1871] : client lang: <none>
2025-07-01 13:12:54,098 [DEBUG][       Thread-605716][   transport.py][1871] : server lang: <none>
2025-07-01 13:12:54,098 [DEBUG][       Thread-605716][   transport.py][1871] : kex follows: False
2025-07-01 13:12:54,098 [DEBUG][       Thread-605716][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:12:54,098 [DEBUG][       Thread-605716][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:12:54,099 [DEBUG][       Thread-605716][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:12:54,099 [DEBUG][       Thread-605716][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:12:54,099 [DEBUG][       Thread-605716][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:12:54,099 [DEBUG][       Thread-605716][   transport.py][1871] : Compression: none
2025-07-01 13:12:54,099 [DEBUG][       Thread-605716][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:12:54,155 [DEBUG][       Thread-605716][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:12:54,155 [DEBUG][       Thread-605716][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:12:54,155 [DEBUG][       Thread-605716][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:12:54,155 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:12:54,155 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:12:54,220 [DEBUG][       Thread-605716][   transport.py][1871] : userauth is OK
2025-07-01 13:12:54,220 [DEBUG][       Thread-605716][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:12:54,220 [DEBUG][       Thread-605716][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:12:54,220 [DEBUG][       Thread-605716][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:12:54,220 [DEBUG][       Thread-605716][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:12:54,234 [ INFO][       Thread-605716][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:12:54,235 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:12:54,235 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:12:55,235 [DEBUG][       Thread-605716][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:12:55,235 [DEBUG][       Thread-605716][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:12:55,285 [DEBUG][       Thread-605716][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:12:55,285 [DEBUG][       Thread-605716][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:12:55,294 [DEBUG][       Thread-605716][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:12:55,304 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:12:55,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-07-01 13:12:55,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-07-01 13:12:55,322 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:12:55,323 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:12:55,323 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:12:55,331 [DEBUG][       Thread-605716][   transport.py][1871] : EOF in transport thread
2025-07-01 13:12:58,794 [DEBUG][Thread-605718 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:13:05,334 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:13:05,334 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:13:05,334 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:13:05,337 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:13:05,817 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 12, 52), 11.51, 45.74, 0.0, 31.46, 13.2, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:13:05,817 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:12:52
2025-07-01 13:13:05,901 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:13:05,905 [DEBUG][       Thread-605719][   transport.py][1871] : starting thread (client mode): 0x81a5d80
2025-07-01 13:13:05,905 [DEBUG][       Thread-605719][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:13:05,926 [DEBUG][       Thread-605719][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:13:05,926 [ INFO][       Thread-605719][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:13:05,928 [DEBUG][       Thread-605719][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:13:05,928 [DEBUG][       Thread-605719][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:13:05,928 [DEBUG][       Thread-605719][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:13:05,928 [DEBUG][       Thread-605719][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:13:05,928 [DEBUG][       Thread-605719][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:13:05,928 [DEBUG][       Thread-605719][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:13:05,928 [DEBUG][       Thread-605719][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:13:05,928 [DEBUG][       Thread-605719][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:13:05,928 [DEBUG][       Thread-605719][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:13:05,928 [DEBUG][       Thread-605719][   transport.py][1871] : client lang: <none>
2025-07-01 13:13:05,928 [DEBUG][       Thread-605719][   transport.py][1871] : server lang: <none>
2025-07-01 13:13:05,928 [DEBUG][       Thread-605719][   transport.py][1871] : kex follows: False
2025-07-01 13:13:05,928 [DEBUG][       Thread-605719][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:13:05,928 [DEBUG][       Thread-605719][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:13:05,928 [DEBUG][       Thread-605719][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:13:05,928 [DEBUG][       Thread-605719][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:13:05,928 [DEBUG][       Thread-605719][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:13:05,928 [DEBUG][       Thread-605719][   transport.py][1871] : Compression: none
2025-07-01 13:13:05,928 [DEBUG][       Thread-605719][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:13:05,941 [DEBUG][       Thread-605719][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:13:05,942 [DEBUG][       Thread-605719][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:13:05,942 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:13:05,943 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:13:05,943 [DEBUG][       Thread-605719][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:13:05,944 [DEBUG][       Thread-605719][   transport.py][1871] : userauth is OK
2025-07-01 13:13:05,957 [ INFO][       Thread-605719][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:13:05,958 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:13:06,569 [DEBUG][       Thread-605719][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:13:06,570 [DEBUG][       Thread-605719][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:13:06,613 [DEBUG][       Thread-605719][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:13:06,613 [DEBUG][       Thread-605719][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:13:06,617 [DEBUG][       Thread-605719][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:13:06,628 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:13:06,629 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:13:06,631 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:13:06,633 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:13:06,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:13:06,640 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:13:06,641 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:13:06,641 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:13:06,641 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.467303 -999.00  +13.10  37.57     50   +3.10 1 1 2 1 1   888    0 10.55 21.91 ----- 32.9 37.6 22.8 51.8 16.2 -25.1 15.3 -26.2 15.2 -24.9 16.1 -24.2
2025-07-01 13:13:06,642 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:13:06,642 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:13:06,642 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.467303
2025-07-01 13:13:06,642 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:13:06,643 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:13:06,643 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:13:06,643 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:13:06,643 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:13:06,643 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:12:52', tmtdew=11.51, humidity=45.74, cloud=0.0, wind=31.46, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:12:54.979', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:13:06,643 [DEBUG][       Thread-605719][   transport.py][1871] : EOF in transport thread
2025-07-01 13:13:06,720 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:13:06,732 [DEBUG][       Thread-605722][   transport.py][1871] : starting thread (client mode): 0x827d9f0
2025-07-01 13:13:06,732 [DEBUG][       Thread-605722][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:13:06,748 [DEBUG][       Thread-605722][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:13:06,748 [ INFO][       Thread-605722][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:13:06,755 [DEBUG][       Thread-605722][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:13:06,755 [DEBUG][       Thread-605722][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:13:06,755 [DEBUG][       Thread-605722][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:13:06,755 [DEBUG][       Thread-605722][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:13:06,755 [DEBUG][       Thread-605722][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:13:06,756 [DEBUG][       Thread-605722][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:13:06,756 [DEBUG][       Thread-605722][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:13:06,756 [DEBUG][       Thread-605722][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:13:06,756 [DEBUG][       Thread-605722][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:13:06,756 [DEBUG][       Thread-605722][   transport.py][1871] : client lang: <none>
2025-07-01 13:13:06,756 [DEBUG][       Thread-605722][   transport.py][1871] : server lang: <none>
2025-07-01 13:13:06,756 [DEBUG][       Thread-605722][   transport.py][1871] : kex follows: False
2025-07-01 13:13:06,756 [DEBUG][       Thread-605722][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:13:06,756 [DEBUG][       Thread-605722][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:13:06,756 [DEBUG][       Thread-605722][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:13:06,756 [DEBUG][       Thread-605722][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:13:06,756 [DEBUG][       Thread-605722][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:13:06,756 [DEBUG][       Thread-605722][   transport.py][1871] : Compression: none
2025-07-01 13:13:06,756 [DEBUG][       Thread-605722][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:13:06,813 [DEBUG][       Thread-605722][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:13:06,813 [DEBUG][       Thread-605722][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:13:06,814 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:13:06,814 [DEBUG][       Thread-605722][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:13:06,815 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:13:06,872 [DEBUG][       Thread-605722][   transport.py][1871] : userauth is OK
2025-07-01 13:13:06,872 [DEBUG][       Thread-605722][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:13:06,873 [DEBUG][       Thread-605722][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:13:06,873 [DEBUG][       Thread-605722][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:13:06,873 [DEBUG][       Thread-605722][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:13:06,891 [ INFO][       Thread-605722][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:13:06,891 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:13:06,892 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:13:07,813 [DEBUG][Thread-605724 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:13:07,927 [DEBUG][       Thread-605722][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:13:07,927 [DEBUG][       Thread-605722][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:13:07,976 [DEBUG][       Thread-605722][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:13:07,976 [DEBUG][       Thread-605722][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:13:07,985 [DEBUG][       Thread-605722][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:13:07,994 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:13:07,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-07-01 13:13:08,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-07-01 13:13:08,012 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:13:08,012 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:13:08,012 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:13:08,020 [DEBUG][       Thread-605722][   transport.py][1871] : EOF in transport thread
2025-07-01 13:13:16,849 [DEBUG][Thread-605725 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:13:18,020 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:13:18,020 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:13:18,020 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:13:18,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-07-01 13:13:18,504 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 12, 52), 11.51, 45.74, 0.0, 31.46, 13.2, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:13:18,504 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:12:52
2025-07-01 13:13:18,591 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:13:18,594 [DEBUG][       Thread-605726][   transport.py][1871] : starting thread (client mode): 0x81a7940
2025-07-01 13:13:18,594 [DEBUG][       Thread-605726][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:13:18,614 [DEBUG][       Thread-605726][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:13:18,614 [ INFO][       Thread-605726][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:13:18,617 [DEBUG][       Thread-605726][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:13:18,617 [DEBUG][       Thread-605726][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:13:18,617 [DEBUG][       Thread-605726][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:13:18,617 [DEBUG][       Thread-605726][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:13:18,617 [DEBUG][       Thread-605726][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:13:18,617 [DEBUG][       Thread-605726][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:13:18,617 [DEBUG][       Thread-605726][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:13:18,617 [DEBUG][       Thread-605726][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:13:18,617 [DEBUG][       Thread-605726][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:13:18,617 [DEBUG][       Thread-605726][   transport.py][1871] : client lang: <none>
2025-07-01 13:13:18,617 [DEBUG][       Thread-605726][   transport.py][1871] : server lang: <none>
2025-07-01 13:13:18,617 [DEBUG][       Thread-605726][   transport.py][1871] : kex follows: False
2025-07-01 13:13:18,617 [DEBUG][       Thread-605726][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:13:18,617 [DEBUG][       Thread-605726][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:13:18,617 [DEBUG][       Thread-605726][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:13:18,617 [DEBUG][       Thread-605726][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:13:18,617 [DEBUG][       Thread-605726][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:13:18,617 [DEBUG][       Thread-605726][   transport.py][1871] : Compression: none
2025-07-01 13:13:18,617 [DEBUG][       Thread-605726][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:13:18,633 [DEBUG][       Thread-605726][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:13:18,633 [DEBUG][       Thread-605726][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:13:18,633 [DEBUG][       Thread-605726][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:13:18,633 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:13:18,633 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:13:18,633 [DEBUG][       Thread-605726][   transport.py][1871] : userauth is OK
2025-07-01 13:13:18,645 [ INFO][       Thread-605726][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:13:18,646 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:13:19,265 [DEBUG][       Thread-605726][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:13:19,265 [DEBUG][       Thread-605726][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:13:19,309 [DEBUG][       Thread-605726][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:13:19,309 [DEBUG][       Thread-605726][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:13:19,312 [DEBUG][       Thread-605726][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:13:19,326 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:13:19,326 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:13:19,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:13:19,330 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:13:19,335 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:13:19,337 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:13:19,337 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:13:19,338 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:13:19,338 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.467303 -999.00  +13.10  37.57     50   +3.10 1 1 2 1 1   888    0 10.55 21.91 ----- 32.9 37.6 22.8 51.8 16.2 -25.1 15.3 -26.2 15.2 -24.9 16.1 -24.2
2025-07-01 13:13:19,338 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:13:19,338 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:13:19,338 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.467303
2025-07-01 13:13:19,339 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:13:19,339 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:13:19,339 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:13:19,339 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:13:19,340 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:13:19,340 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:12:52', tmtdew=11.51, humidity=45.74, cloud=0.0, wind=31.46, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:12:54.979', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:13:19,341 [DEBUG][       Thread-605726][   transport.py][1871] : EOF in transport thread
2025-07-01 13:13:19,425 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:13:19,436 [DEBUG][       Thread-605729][   transport.py][1871] : starting thread (client mode): 0x75aba00
2025-07-01 13:13:19,436 [DEBUG][       Thread-605729][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:13:19,451 [DEBUG][       Thread-605729][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:13:19,451 [ INFO][       Thread-605729][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:13:19,458 [DEBUG][       Thread-605729][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:13:19,458 [DEBUG][       Thread-605729][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:13:19,459 [DEBUG][       Thread-605729][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:13:19,459 [DEBUG][       Thread-605729][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:13:19,459 [DEBUG][       Thread-605729][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:13:19,459 [DEBUG][       Thread-605729][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:13:19,459 [DEBUG][       Thread-605729][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:13:19,459 [DEBUG][       Thread-605729][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:13:19,459 [DEBUG][       Thread-605729][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:13:19,459 [DEBUG][       Thread-605729][   transport.py][1871] : client lang: <none>
2025-07-01 13:13:19,459 [DEBUG][       Thread-605729][   transport.py][1871] : server lang: <none>
2025-07-01 13:13:19,459 [DEBUG][       Thread-605729][   transport.py][1871] : kex follows: False
2025-07-01 13:13:19,459 [DEBUG][       Thread-605729][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:13:19,459 [DEBUG][       Thread-605729][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:13:19,459 [DEBUG][       Thread-605729][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:13:19,459 [DEBUG][       Thread-605729][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:13:19,459 [DEBUG][       Thread-605729][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:13:19,459 [DEBUG][       Thread-605729][   transport.py][1871] : Compression: none
2025-07-01 13:13:19,459 [DEBUG][       Thread-605729][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:13:19,516 [DEBUG][       Thread-605729][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:13:19,517 [DEBUG][       Thread-605729][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:13:19,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:13:19,518 [DEBUG][       Thread-605729][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:13:19,519 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:13:19,573 [DEBUG][       Thread-605729][   transport.py][1871] : userauth is OK
2025-07-01 13:13:19,573 [DEBUG][       Thread-605729][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:13:19,573 [DEBUG][       Thread-605729][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:13:19,573 [DEBUG][       Thread-605729][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:13:19,573 [DEBUG][       Thread-605729][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:13:19,591 [ INFO][       Thread-605729][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:13:19,592 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:13:19,592 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:13:20,596 [DEBUG][       Thread-605729][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:13:20,596 [DEBUG][       Thread-605729][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:13:20,644 [DEBUG][       Thread-605729][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:13:20,644 [DEBUG][       Thread-605729][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:13:20,654 [DEBUG][       Thread-605729][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:13:20,663 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:13:20,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-07-01 13:13:20,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-07-01 13:13:20,681 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:13:20,681 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:13:20,682 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:13:20,690 [DEBUG][       Thread-605729][   transport.py][1871] : EOF in transport thread
2025-07-01 13:13:22,380 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:13:22,381 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:13:25,870 [DEBUG][Thread-605731 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:13:30,692 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:13:30,693 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:13:30,693 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:13:30,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-07-01 13:13:31,189 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 13, 24), 11.34, 45.95, 0.0, 31.27, 13.14, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:13:31,189 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:13:24
2025-07-01 13:13:31,276 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:13:31,280 [DEBUG][       Thread-605732][   transport.py][1871] : starting thread (client mode): 0x82b3670
2025-07-01 13:13:31,280 [DEBUG][       Thread-605732][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:13:31,300 [DEBUG][       Thread-605732][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:13:31,300 [ INFO][       Thread-605732][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:13:31,304 [DEBUG][       Thread-605732][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:13:31,304 [DEBUG][       Thread-605732][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:13:31,304 [DEBUG][       Thread-605732][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:13:31,304 [DEBUG][       Thread-605732][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:13:31,304 [DEBUG][       Thread-605732][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:13:31,304 [DEBUG][       Thread-605732][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:13:31,304 [DEBUG][       Thread-605732][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:13:31,304 [DEBUG][       Thread-605732][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:13:31,304 [DEBUG][       Thread-605732][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:13:31,304 [DEBUG][       Thread-605732][   transport.py][1871] : client lang: <none>
2025-07-01 13:13:31,304 [DEBUG][       Thread-605732][   transport.py][1871] : server lang: <none>
2025-07-01 13:13:31,304 [DEBUG][       Thread-605732][   transport.py][1871] : kex follows: False
2025-07-01 13:13:31,304 [DEBUG][       Thread-605732][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:13:31,304 [DEBUG][       Thread-605732][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:13:31,305 [DEBUG][       Thread-605732][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:13:31,305 [DEBUG][       Thread-605732][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:13:31,305 [DEBUG][       Thread-605732][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:13:31,305 [DEBUG][       Thread-605732][   transport.py][1871] : Compression: none
2025-07-01 13:13:31,305 [DEBUG][       Thread-605732][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:13:31,313 [DEBUG][       Thread-605732][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:13:31,313 [DEBUG][       Thread-605732][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:13:31,314 [DEBUG][       Thread-605732][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:13:31,314 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:13:31,314 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:13:31,315 [DEBUG][       Thread-605732][   transport.py][1871] : userauth is OK
2025-07-01 13:13:31,339 [ INFO][       Thread-605732][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:13:31,340 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:13:31,432 [DEBUG][Thread-605734 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:13:31,986 [DEBUG][       Thread-605732][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:13:31,986 [DEBUG][       Thread-605732][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:13:32,029 [DEBUG][       Thread-605732][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:13:32,029 [DEBUG][       Thread-605732][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:13:32,032 [DEBUG][       Thread-605732][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:13:32,044 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:13:32,045 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:13:32,047 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:13:32,049 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:13:32,055 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:13:32,057 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:13:32,058 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:13:32,058 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:13:32,058 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.467303 -999.00  +13.10  37.57     50   +3.10 1 1 2 1 1   888    0 10.55 21.91 ----- 32.9 37.6 22.8 51.8 16.2 -25.1 15.3 -26.2 15.2 -24.9 16.1 -24.2
2025-07-01 13:13:32,059 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:13:32,059 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:13:32,059 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.467303
2025-07-01 13:13:32,059 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:13:32,060 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:13:32,060 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:13:32,060 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:13:32,060 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:13:32,060 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:13:24', tmtdew=11.34, humidity=45.95, cloud=0.0, wind=31.27, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:12:54.979', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:13:32,061 [DEBUG][       Thread-605732][   transport.py][1871] : EOF in transport thread
2025-07-01 13:13:32,149 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:13:32,161 [DEBUG][       Thread-605736][   transport.py][1871] : starting thread (client mode): 0x8155b10
2025-07-01 13:13:32,161 [DEBUG][       Thread-605736][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:13:32,177 [DEBUG][       Thread-605736][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:13:32,177 [ INFO][       Thread-605736][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:13:32,185 [DEBUG][       Thread-605736][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:13:32,185 [DEBUG][       Thread-605736][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:13:32,185 [DEBUG][       Thread-605736][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:13:32,185 [DEBUG][       Thread-605736][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:13:32,185 [DEBUG][       Thread-605736][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:13:32,185 [DEBUG][       Thread-605736][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:13:32,186 [DEBUG][       Thread-605736][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:13:32,186 [DEBUG][       Thread-605736][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:13:32,186 [DEBUG][       Thread-605736][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:13:32,186 [DEBUG][       Thread-605736][   transport.py][1871] : client lang: <none>
2025-07-01 13:13:32,186 [DEBUG][       Thread-605736][   transport.py][1871] : server lang: <none>
2025-07-01 13:13:32,186 [DEBUG][       Thread-605736][   transport.py][1871] : kex follows: False
2025-07-01 13:13:32,186 [DEBUG][       Thread-605736][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:13:32,186 [DEBUG][       Thread-605736][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:13:32,186 [DEBUG][       Thread-605736][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:13:32,186 [DEBUG][       Thread-605736][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:13:32,186 [DEBUG][       Thread-605736][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:13:32,186 [DEBUG][       Thread-605736][   transport.py][1871] : Compression: none
2025-07-01 13:13:32,186 [DEBUG][       Thread-605736][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:13:32,244 [DEBUG][       Thread-605736][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:13:32,245 [DEBUG][       Thread-605736][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:13:32,246 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:13:32,246 [DEBUG][       Thread-605736][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:13:32,247 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:13:32,301 [DEBUG][       Thread-605736][   transport.py][1871] : userauth is OK
2025-07-01 13:13:32,301 [DEBUG][       Thread-605736][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:13:32,301 [DEBUG][       Thread-605736][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:13:32,301 [DEBUG][       Thread-605736][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:13:32,301 [DEBUG][       Thread-605736][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:13:32,320 [ INFO][       Thread-605736][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:13:32,320 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:13:32,321 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:13:33,326 [DEBUG][       Thread-605736][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:13:33,326 [DEBUG][       Thread-605736][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:13:33,376 [DEBUG][       Thread-605736][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:13:33,376 [DEBUG][       Thread-605736][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:13:33,385 [DEBUG][       Thread-605736][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:13:33,394 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:13:33,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')
2025-07-01 13:13: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') -> 00000000
2025-07-01 13:13:33,411 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:13:33,411 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:13:33,412 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:13:33,419 [DEBUG][       Thread-605736][   transport.py][1871] : EOF in transport thread
2025-07-01 13:13:34,890 [DEBUG][Thread-605738 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:13:43,422 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:13:43,422 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:13:43,422 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:13:43,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-07-01 13:13:43,911 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 13, 24), 11.34, 45.95, 0.0, 31.27, 13.14, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:13:43,912 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:13:24
2025-07-01 13:13:43,918 [DEBUG][Thread-605739 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:13:43,997 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:13:44,001 [DEBUG][       Thread-605740][   transport.py][1871] : starting thread (client mode): 0x81a7790
2025-07-01 13:13:44,001 [DEBUG][       Thread-605740][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:13:44,021 [DEBUG][       Thread-605740][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:13:44,021 [ INFO][       Thread-605740][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:13:44,024 [DEBUG][       Thread-605740][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:13:44,024 [DEBUG][       Thread-605740][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:13:44,024 [DEBUG][       Thread-605740][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:13:44,024 [DEBUG][       Thread-605740][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:13:44,024 [DEBUG][       Thread-605740][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:13:44,024 [DEBUG][       Thread-605740][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:13:44,025 [DEBUG][       Thread-605740][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:13:44,025 [DEBUG][       Thread-605740][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:13:44,025 [DEBUG][       Thread-605740][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:13:44,025 [DEBUG][       Thread-605740][   transport.py][1871] : client lang: <none>
2025-07-01 13:13:44,025 [DEBUG][       Thread-605740][   transport.py][1871] : server lang: <none>
2025-07-01 13:13:44,025 [DEBUG][       Thread-605740][   transport.py][1871] : kex follows: False
2025-07-01 13:13:44,025 [DEBUG][       Thread-605740][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:13:44,025 [DEBUG][       Thread-605740][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:13:44,025 [DEBUG][       Thread-605740][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:13:44,025 [DEBUG][       Thread-605740][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:13:44,025 [DEBUG][       Thread-605740][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:13:44,025 [DEBUG][       Thread-605740][   transport.py][1871] : Compression: none
2025-07-01 13:13:44,025 [DEBUG][       Thread-605740][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:13:44,044 [DEBUG][       Thread-605740][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:13:44,044 [DEBUG][       Thread-605740][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:13:44,045 [DEBUG][       Thread-605740][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:13:44,045 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:13:44,045 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:13:44,046 [DEBUG][       Thread-605740][   transport.py][1871] : userauth is OK
2025-07-01 13:13:44,071 [ INFO][       Thread-605740][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:13:44,071 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:13:44,742 [DEBUG][       Thread-605740][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:13:44,743 [DEBUG][       Thread-605740][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:13:44,785 [DEBUG][       Thread-605740][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:13:44,785 [DEBUG][       Thread-605740][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:13:44,788 [DEBUG][       Thread-605740][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:13:44,796 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:13:44,796 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:13:44,798 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:13:44,800 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:13:44,806 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:13:44,808 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:13:44,808 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:13:44,809 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:13:44,809 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.467651 -999.00  +13.10  33.65     51   +3.20 1 1 2 1 1   888    0 10.59 21.87 ----- 37.7 33.6 10.3 52.5 16.1 -24.7 15.3 -26.0 15.2 -24.5 16.0 -24.4
2025-07-01 13:13:44,809 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:13:44,809 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:13:44,809 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.467651
2025-07-01 13:13:44,810 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:13:44,810 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:13:44,810 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:13:44,810 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:13:44,810 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:13:44,811 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:13:24', tmtdew=11.34, humidity=45.95, cloud=0.0, wind=31.27, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:13:25.046', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:13:44,812 [DEBUG][       Thread-605740][   transport.py][1871] : EOF in transport thread
2025-07-01 13:13:44,894 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:13:44,904 [DEBUG][       Thread-605743][   transport.py][1871] : starting thread (client mode): 0x83c8520
2025-07-01 13:13:44,904 [DEBUG][       Thread-605743][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:13:44,924 [DEBUG][       Thread-605743][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:13:44,924 [ INFO][       Thread-605743][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:13:44,932 [DEBUG][       Thread-605743][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:13:44,932 [DEBUG][       Thread-605743][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:13:44,932 [DEBUG][       Thread-605743][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:13:44,932 [DEBUG][       Thread-605743][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:13:44,932 [DEBUG][       Thread-605743][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:13:44,932 [DEBUG][       Thread-605743][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:13:44,932 [DEBUG][       Thread-605743][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:13:44,932 [DEBUG][       Thread-605743][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:13:44,932 [DEBUG][       Thread-605743][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:13:44,932 [DEBUG][       Thread-605743][   transport.py][1871] : client lang: <none>
2025-07-01 13:13:44,932 [DEBUG][       Thread-605743][   transport.py][1871] : server lang: <none>
2025-07-01 13:13:44,932 [DEBUG][       Thread-605743][   transport.py][1871] : kex follows: False
2025-07-01 13:13:44,932 [DEBUG][       Thread-605743][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:13:44,932 [DEBUG][       Thread-605743][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:13:44,933 [DEBUG][       Thread-605743][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:13:44,933 [DEBUG][       Thread-605743][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:13:44,933 [DEBUG][       Thread-605743][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:13:44,933 [DEBUG][       Thread-605743][   transport.py][1871] : Compression: none
2025-07-01 13:13:44,933 [DEBUG][       Thread-605743][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:13:44,989 [DEBUG][       Thread-605743][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:13:44,989 [DEBUG][       Thread-605743][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:13:44,990 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:13:44,991 [DEBUG][       Thread-605743][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:13:44,991 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:13:45,045 [DEBUG][       Thread-605743][   transport.py][1871] : userauth is OK
2025-07-01 13:13:45,046 [DEBUG][       Thread-605743][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:13:45,046 [DEBUG][       Thread-605743][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:13:45,046 [DEBUG][       Thread-605743][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:13:45,046 [DEBUG][       Thread-605743][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:13:45,071 [ INFO][       Thread-605743][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:13:45,071 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:13:45,071 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:13:46,092 [DEBUG][       Thread-605743][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:13:46,092 [DEBUG][       Thread-605743][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:13:46,140 [DEBUG][       Thread-605743][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:13:46,140 [DEBUG][       Thread-605743][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:13:46,150 [DEBUG][       Thread-605743][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:13:46,159 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:13:46,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-07-01 13:13:46,168 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 13:13:46,176 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:13:46,177 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:13:46,177 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:13:46,185 [DEBUG][       Thread-605743][   transport.py][1871] : EOF in transport thread
2025-07-01 13:13:52,937 [DEBUG][Thread-605745 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:13:56,181 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:13:56,181 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:13:56,182 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:13: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-07-01 13:13:56,697 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 13, 24), 11.34, 45.95, 0.0, 31.27, 13.14, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:13:56,697 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:13:24
2025-07-01 13:13:56,788 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:13:56,794 [DEBUG][       Thread-605746][   transport.py][1871] : starting thread (client mode): 0x75a90c0
2025-07-01 13:13:56,794 [DEBUG][       Thread-605746][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:13:56,819 [DEBUG][       Thread-605746][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:13:56,819 [ INFO][       Thread-605746][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:13:56,824 [DEBUG][       Thread-605746][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:13:56,824 [DEBUG][       Thread-605746][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:13:56,824 [DEBUG][       Thread-605746][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:13:56,824 [DEBUG][       Thread-605746][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:13:56,824 [DEBUG][       Thread-605746][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:13:56,824 [DEBUG][       Thread-605746][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:13:56,824 [DEBUG][       Thread-605746][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:13:56,824 [DEBUG][       Thread-605746][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:13:56,824 [DEBUG][       Thread-605746][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:13:56,824 [DEBUG][       Thread-605746][   transport.py][1871] : client lang: <none>
2025-07-01 13:13:56,824 [DEBUG][       Thread-605746][   transport.py][1871] : server lang: <none>
2025-07-01 13:13:56,824 [DEBUG][       Thread-605746][   transport.py][1871] : kex follows: False
2025-07-01 13:13:56,824 [DEBUG][       Thread-605746][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:13:56,824 [DEBUG][       Thread-605746][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:13:56,824 [DEBUG][       Thread-605746][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:13:56,824 [DEBUG][       Thread-605746][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:13:56,824 [DEBUG][       Thread-605746][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:13:56,824 [DEBUG][       Thread-605746][   transport.py][1871] : Compression: none
2025-07-01 13:13:56,824 [DEBUG][       Thread-605746][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:13:56,839 [DEBUG][       Thread-605746][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:13:56,839 [DEBUG][       Thread-605746][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:13:56,839 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:13:56,839 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:13:56,839 [DEBUG][       Thread-605746][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:13:56,840 [DEBUG][       Thread-605746][   transport.py][1871] : userauth is OK
2025-07-01 13:13:56,864 [ INFO][       Thread-605746][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:13:56,864 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:13:57,661 [DEBUG][       Thread-605746][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:13:57,661 [DEBUG][       Thread-605746][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:13:57,704 [DEBUG][       Thread-605746][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:13:57,704 [DEBUG][       Thread-605746][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:13:57,706 [DEBUG][       Thread-605746][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:13:57,719 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:13:57,719 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:13:57,720 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:13:57,721 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:13:57,724 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:13:57,725 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:13:57,725 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:13:57,725 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:13:57,725 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.467651 -999.00  +13.10  33.65     51   +3.20 1 1 2 1 1   888    0 10.59 21.87 ----- 37.7 33.6 10.3 52.5 16.1 -24.7 15.3 -26.0 15.2 -24.5 16.0 -24.4
2025-07-01 13:13:57,725 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:13:57,725 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:13:57,725 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.467651
2025-07-01 13:13:57,725 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:13:57,725 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:13:57,725 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:13:57,725 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:13:57,725 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:13:57,725 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:13:24', tmtdew=11.34, humidity=45.95, cloud=0.0, wind=31.27, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:13:25.046', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:13:57,726 [DEBUG][       Thread-605746][   transport.py][1871] : EOF in transport thread
2025-07-01 13:13:57,798 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:13:57,814 [DEBUG][       Thread-605749][   transport.py][1871] : starting thread (client mode): 0x8173f10
2025-07-01 13:13:57,814 [DEBUG][       Thread-605749][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:13:57,830 [DEBUG][       Thread-605749][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:13:57,830 [ INFO][       Thread-605749][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:13:57,838 [DEBUG][       Thread-605749][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:13:57,838 [DEBUG][       Thread-605749][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:13:57,838 [DEBUG][       Thread-605749][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:13:57,838 [DEBUG][       Thread-605749][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:13:57,838 [DEBUG][       Thread-605749][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:13:57,838 [DEBUG][       Thread-605749][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:13:57,838 [DEBUG][       Thread-605749][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:13:57,838 [DEBUG][       Thread-605749][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:13:57,838 [DEBUG][       Thread-605749][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:13:57,838 [DEBUG][       Thread-605749][   transport.py][1871] : client lang: <none>
2025-07-01 13:13:57,838 [DEBUG][       Thread-605749][   transport.py][1871] : server lang: <none>
2025-07-01 13:13:57,838 [DEBUG][       Thread-605749][   transport.py][1871] : kex follows: False
2025-07-01 13:13:57,838 [DEBUG][       Thread-605749][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:13:57,838 [DEBUG][       Thread-605749][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:13:57,838 [DEBUG][       Thread-605749][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:13:57,838 [DEBUG][       Thread-605749][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:13:57,838 [DEBUG][       Thread-605749][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:13:57,838 [DEBUG][       Thread-605749][   transport.py][1871] : Compression: none
2025-07-01 13:13:57,838 [DEBUG][       Thread-605749][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:13:57,899 [DEBUG][       Thread-605749][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:13:57,899 [DEBUG][       Thread-605749][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:13:57,899 [DEBUG][       Thread-605749][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:13:57,899 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:13:57,900 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:13:57,957 [DEBUG][       Thread-605749][   transport.py][1871] : userauth is OK
2025-07-01 13:13:57,957 [DEBUG][       Thread-605749][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:13:57,957 [DEBUG][       Thread-605749][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:13:57,957 [DEBUG][       Thread-605749][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:13:57,957 [DEBUG][       Thread-605749][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:13:57,971 [ INFO][       Thread-605749][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:13:57,971 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:13:57,972 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:13:59,010 [DEBUG][       Thread-605749][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:13:59,011 [DEBUG][       Thread-605749][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:13:59,059 [DEBUG][       Thread-605749][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:13:59,059 [DEBUG][       Thread-605749][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:13:59,068 [DEBUG][       Thread-605749][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:13:59,076 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:13:59,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')
2025-07-01 13:13:59,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-07-01 13:13:59,092 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:13:59,092 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:13:59,093 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:13:59,100 [DEBUG][       Thread-605749][   transport.py][1871] : EOF in transport thread
2025-07-01 13:14:01,958 [DEBUG][Thread-605751 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:14:09,103 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:14:09,103 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:14:09,103 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:14:09,105 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:14:09,600 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 13, 56), 11.34, 45.99, 0.0, 36.15, 13.17, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:14:09,600 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:13:56
2025-07-01 13:14:09,683 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:14:09,687 [DEBUG][       Thread-605752][   transport.py][1871] : starting thread (client mode): 0x8172800
2025-07-01 13:14:09,687 [DEBUG][       Thread-605752][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:14:09,708 [DEBUG][       Thread-605752][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:14:09,708 [ INFO][       Thread-605752][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:14:09,710 [DEBUG][       Thread-605752][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:14:09,710 [DEBUG][       Thread-605752][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:14:09,710 [DEBUG][       Thread-605752][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:14:09,710 [DEBUG][       Thread-605752][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:14:09,710 [DEBUG][       Thread-605752][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:14:09,710 [DEBUG][       Thread-605752][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:14:09,710 [DEBUG][       Thread-605752][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:14:09,710 [DEBUG][       Thread-605752][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:14:09,710 [DEBUG][       Thread-605752][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:14:09,710 [DEBUG][       Thread-605752][   transport.py][1871] : client lang: <none>
2025-07-01 13:14:09,710 [DEBUG][       Thread-605752][   transport.py][1871] : server lang: <none>
2025-07-01 13:14:09,710 [DEBUG][       Thread-605752][   transport.py][1871] : kex follows: False
2025-07-01 13:14:09,710 [DEBUG][       Thread-605752][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:14:09,710 [DEBUG][       Thread-605752][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:14:09,710 [DEBUG][       Thread-605752][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:14:09,710 [DEBUG][       Thread-605752][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:14:09,710 [DEBUG][       Thread-605752][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:14:09,710 [DEBUG][       Thread-605752][   transport.py][1871] : Compression: none
2025-07-01 13:14:09,710 [DEBUG][       Thread-605752][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:14:09,723 [DEBUG][       Thread-605752][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:14:09,723 [DEBUG][       Thread-605752][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:14:09,724 [DEBUG][       Thread-605752][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:14:09,724 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:14:09,724 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:14:09,725 [DEBUG][       Thread-605752][   transport.py][1871] : userauth is OK
2025-07-01 13:14:09,750 [ INFO][       Thread-605752][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:14:09,750 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:14:10,344 [DEBUG][       Thread-605752][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:14:10,344 [DEBUG][       Thread-605752][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:14:10,385 [DEBUG][       Thread-605752][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:14:10,385 [DEBUG][       Thread-605752][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:14:10,387 [DEBUG][       Thread-605752][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:14:10,393 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:14:10,394 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:14:10,395 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:14:10,397 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:14:10,402 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:14:10,404 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:14:10,404 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:14:10,404 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:14:10,405 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.467998 -999.00  +13.20  34.98     51   +3.30 1 1 2 1 1   888    0 10.46 21.18 ----- 32.1 35.0 28.4 47.5 16.2 -25.4 15.2 -25.8 15.2 -23.8 16.0 -23.6
2025-07-01 13:14:10,405 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:14:10,405 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:14:10,405 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.467998
2025-07-01 13:14:10,405 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:14:10,406 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:14:10,406 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:14:10,406 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:14:10,406 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:14:10,406 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:13:56', tmtdew=11.34, humidity=45.99, cloud=0.0, wind=36.15, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:13:55.027', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:14:10,406 [DEBUG][       Thread-605752][   transport.py][1871] : EOF in transport thread
2025-07-01 13:14:10,489 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:14:10,499 [DEBUG][       Thread-605755][   transport.py][1871] : starting thread (client mode): 0x81d8610
2025-07-01 13:14:10,499 [DEBUG][       Thread-605755][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:14:10,515 [DEBUG][       Thread-605755][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:14:10,515 [ INFO][       Thread-605755][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:14:10,524 [DEBUG][       Thread-605755][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:14:10,524 [DEBUG][       Thread-605755][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:14:10,524 [DEBUG][       Thread-605755][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:14:10,524 [DEBUG][       Thread-605755][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:14:10,524 [DEBUG][       Thread-605755][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:14:10,524 [DEBUG][       Thread-605755][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:14:10,524 [DEBUG][       Thread-605755][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:14:10,524 [DEBUG][       Thread-605755][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:14:10,524 [DEBUG][       Thread-605755][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:14:10,524 [DEBUG][       Thread-605755][   transport.py][1871] : client lang: <none>
2025-07-01 13:14:10,525 [DEBUG][       Thread-605755][   transport.py][1871] : server lang: <none>
2025-07-01 13:14:10,525 [DEBUG][       Thread-605755][   transport.py][1871] : kex follows: False
2025-07-01 13:14:10,525 [DEBUG][       Thread-605755][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:14:10,525 [DEBUG][       Thread-605755][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:14:10,525 [DEBUG][       Thread-605755][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:14:10,525 [DEBUG][       Thread-605755][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:14:10,525 [DEBUG][       Thread-605755][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:14:10,525 [DEBUG][       Thread-605755][   transport.py][1871] : Compression: none
2025-07-01 13:14:10,525 [DEBUG][       Thread-605755][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:14:10,581 [DEBUG][       Thread-605755][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:14:10,582 [DEBUG][       Thread-605755][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:14:10,582 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:14:10,583 [DEBUG][       Thread-605755][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:14:10,583 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:14:10,637 [DEBUG][       Thread-605755][   transport.py][1871] : userauth is OK
2025-07-01 13:14:10,637 [DEBUG][       Thread-605755][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:14:10,637 [DEBUG][       Thread-605755][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:14:10,637 [DEBUG][       Thread-605755][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:14:10,637 [DEBUG][       Thread-605755][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:14:10,661 [ INFO][       Thread-605755][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:14:10,662 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:14:10,662 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:14:10,981 [DEBUG][Thread-605757 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:14:11,707 [DEBUG][       Thread-605755][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:14:11,708 [DEBUG][       Thread-605755][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:14:11,756 [DEBUG][       Thread-605755][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:14:11,756 [DEBUG][       Thread-605755][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:14:11,766 [DEBUG][       Thread-605755][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:14:11,775 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:14:11,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-07-01 13:14:11,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') -> 00000000
2025-07-01 13:14:11,793 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:14:11,793 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:14:11,793 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:14:11,801 [DEBUG][       Thread-605755][   transport.py][1871] : EOF in transport thread
2025-07-01 13:14:20,012 [DEBUG][Thread-605758 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:14:21,796 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:14:21,796 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:14:21,796 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:14:21,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-07-01 13:14:22,290 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 13, 56), 11.34, 45.99, 0.0, 36.15, 13.17, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:14:22,290 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:13:56
2025-07-01 13:14:22,372 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:14:22,377 [DEBUG][       Thread-605759][   transport.py][1871] : starting thread (client mode): 0x81a5c90
2025-07-01 13:14:22,377 [DEBUG][       Thread-605759][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:14:22,397 [DEBUG][       Thread-605759][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:14:22,397 [ INFO][       Thread-605759][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:14:22,402 [DEBUG][       Thread-605759][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:14:22,402 [DEBUG][       Thread-605759][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:14:22,402 [DEBUG][       Thread-605759][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:14:22,402 [DEBUG][       Thread-605759][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:14:22,402 [DEBUG][       Thread-605759][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:14:22,402 [DEBUG][       Thread-605759][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:14:22,402 [DEBUG][       Thread-605759][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:14:22,402 [DEBUG][       Thread-605759][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:14:22,402 [DEBUG][       Thread-605759][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:14:22,402 [DEBUG][       Thread-605759][   transport.py][1871] : client lang: <none>
2025-07-01 13:14:22,402 [DEBUG][       Thread-605759][   transport.py][1871] : server lang: <none>
2025-07-01 13:14:22,402 [DEBUG][       Thread-605759][   transport.py][1871] : kex follows: False
2025-07-01 13:14:22,402 [DEBUG][       Thread-605759][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:14:22,402 [DEBUG][       Thread-605759][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:14:22,403 [DEBUG][       Thread-605759][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:14:22,403 [DEBUG][       Thread-605759][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:14:22,403 [DEBUG][       Thread-605759][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:14:22,403 [DEBUG][       Thread-605759][   transport.py][1871] : Compression: none
2025-07-01 13:14:22,403 [DEBUG][       Thread-605759][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:14:22,412 [DEBUG][       Thread-605759][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:14:22,412 [DEBUG][       Thread-605759][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:14:22,413 [DEBUG][       Thread-605759][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:14:22,413 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:14:22,413 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:14:22,414 [DEBUG][       Thread-605759][   transport.py][1871] : userauth is OK
2025-07-01 13:14:22,428 [ INFO][       Thread-605759][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:14:22,429 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:14:22,521 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:14:22,522 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:14:23,180 [DEBUG][       Thread-605759][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:14:23,181 [DEBUG][       Thread-605759][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:14:23,225 [DEBUG][       Thread-605759][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:14:23,225 [DEBUG][       Thread-605759][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:14:23,228 [DEBUG][       Thread-605759][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:14:23,242 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:14:23,243 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:14:23,245 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:14:23,246 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:14:23,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:14:23,252 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:14:23,253 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:14:23,253 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:14:23,253 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.467998 -999.00  +13.20  34.98     51   +3.30 1 1 2 1 1   888    0 10.46 21.18 ----- 32.1 35.0 28.4 47.5 16.2 -25.4 15.2 -25.8 15.2 -23.8 16.0 -23.6
2025-07-01 13:14:23,254 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:14:23,254 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:14:23,254 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.467998
2025-07-01 13:14:23,254 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:14:23,255 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:14:23,255 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:14:23,255 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:14:23,255 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:14:23,255 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:13:56', tmtdew=11.34, humidity=45.99, cloud=0.0, wind=36.15, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:13:55.027', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:14:23,255 [DEBUG][       Thread-605759][   transport.py][1871] : EOF in transport thread
2025-07-01 13:14:23,338 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:14:23,349 [DEBUG][       Thread-605762][   transport.py][1871] : starting thread (client mode): 0x8154910
2025-07-01 13:14:23,349 [DEBUG][       Thread-605762][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:14:23,365 [DEBUG][       Thread-605762][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:14:23,365 [ INFO][       Thread-605762][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:14:23,372 [DEBUG][       Thread-605762][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:14:23,372 [DEBUG][       Thread-605762][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:14:23,373 [DEBUG][       Thread-605762][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:14:23,373 [DEBUG][       Thread-605762][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:14:23,373 [DEBUG][       Thread-605762][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:14:23,373 [DEBUG][       Thread-605762][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:14:23,373 [DEBUG][       Thread-605762][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:14:23,373 [DEBUG][       Thread-605762][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:14:23,373 [DEBUG][       Thread-605762][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:14:23,373 [DEBUG][       Thread-605762][   transport.py][1871] : client lang: <none>
2025-07-01 13:14:23,373 [DEBUG][       Thread-605762][   transport.py][1871] : server lang: <none>
2025-07-01 13:14:23,373 [DEBUG][       Thread-605762][   transport.py][1871] : kex follows: False
2025-07-01 13:14:23,373 [DEBUG][       Thread-605762][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:14:23,373 [DEBUG][       Thread-605762][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:14:23,373 [DEBUG][       Thread-605762][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:14:23,373 [DEBUG][       Thread-605762][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:14:23,373 [DEBUG][       Thread-605762][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:14:23,373 [DEBUG][       Thread-605762][   transport.py][1871] : Compression: none
2025-07-01 13:14:23,373 [DEBUG][       Thread-605762][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:14:23,429 [DEBUG][       Thread-605762][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:14:23,430 [DEBUG][       Thread-605762][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:14:23,430 [DEBUG][       Thread-605762][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:14:23,431 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:14:23,431 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:14:23,485 [DEBUG][       Thread-605762][   transport.py][1871] : userauth is OK
2025-07-01 13:14:23,486 [DEBUG][       Thread-605762][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:14:23,486 [DEBUG][       Thread-605762][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:14:23,486 [DEBUG][       Thread-605762][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:14:23,486 [DEBUG][       Thread-605762][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:14:23,506 [ INFO][       Thread-605762][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:14:23,506 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:14:23,506 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:14:24,547 [DEBUG][       Thread-605762][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:14:24,547 [DEBUG][       Thread-605762][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:14:24,596 [DEBUG][       Thread-605762][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:14:24,596 [DEBUG][       Thread-605762][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:14:24,606 [DEBUG][       Thread-605762][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:14:24,614 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:14: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-07-01 13:14:24,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-07-01 13:14:24,632 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:14:24,632 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:14:24,633 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:14:24,641 [DEBUG][       Thread-605762][   transport.py][1871] : EOF in transport thread
2025-07-01 13:14:29,030 [DEBUG][Thread-605764 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:14:31,484 [DEBUG][Thread-605765 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:14:34,643 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:14:34,644 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:14:34,644 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:14:34,647 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:14:35,135 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 14, 28), 11.33, 46.34, 0.0, 33.15, 13.2, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:14:35,135 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:14:28
2025-07-01 13:14:35,218 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:14:35,224 [DEBUG][       Thread-605766][   transport.py][1871] : starting thread (client mode): 0x75a9450
2025-07-01 13:14:35,224 [DEBUG][       Thread-605766][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:14:35,246 [DEBUG][       Thread-605766][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:14:35,246 [ INFO][       Thread-605766][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:14:35,250 [DEBUG][       Thread-605766][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:14:35,250 [DEBUG][       Thread-605766][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:14:35,250 [DEBUG][       Thread-605766][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:14:35,250 [DEBUG][       Thread-605766][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:14:35,250 [DEBUG][       Thread-605766][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:14:35,250 [DEBUG][       Thread-605766][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:14:35,250 [DEBUG][       Thread-605766][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:14:35,250 [DEBUG][       Thread-605766][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:14:35,250 [DEBUG][       Thread-605766][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:14:35,250 [DEBUG][       Thread-605766][   transport.py][1871] : client lang: <none>
2025-07-01 13:14:35,250 [DEBUG][       Thread-605766][   transport.py][1871] : server lang: <none>
2025-07-01 13:14:35,250 [DEBUG][       Thread-605766][   transport.py][1871] : kex follows: False
2025-07-01 13:14:35,250 [DEBUG][       Thread-605766][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:14:35,251 [DEBUG][       Thread-605766][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:14:35,251 [DEBUG][       Thread-605766][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:14:35,251 [DEBUG][       Thread-605766][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:14:35,251 [DEBUG][       Thread-605766][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:14:35,251 [DEBUG][       Thread-605766][   transport.py][1871] : Compression: none
2025-07-01 13:14:35,251 [DEBUG][       Thread-605766][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:14:35,268 [DEBUG][       Thread-605766][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:14:35,269 [DEBUG][       Thread-605766][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:14:35,269 [DEBUG][       Thread-605766][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:14:35,269 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:14:35,270 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:14:35,271 [DEBUG][       Thread-605766][   transport.py][1871] : userauth is OK
2025-07-01 13:14:35,295 [ INFO][       Thread-605766][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:14:35,296 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:14:36,131 [DEBUG][       Thread-605766][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:14:36,131 [DEBUG][       Thread-605766][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:14:36,173 [DEBUG][       Thread-605766][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:14:36,173 [DEBUG][       Thread-605766][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:14:36,175 [DEBUG][       Thread-605766][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:14:36,188 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:14:36,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:14:36,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:14:36,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:14:36,197 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:14:36,198 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:14:36,199 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:14:36,199 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:14:36,199 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.467998 -999.00  +13.20  34.98     51   +3.30 1 1 2 1 1   888    0 10.46 21.18 ----- 32.1 35.0 28.4 47.5 16.2 -25.4 15.2 -25.8 15.2 -23.8 16.0 -23.6
2025-07-01 13:14:36,199 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:14:36,200 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:14:36,200 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.467998
2025-07-01 13:14:36,200 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:14:36,201 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:14:36,201 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:14:36,201 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:14:36,201 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:14:36,201 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:14:28', tmtdew=11.33, humidity=46.34, cloud=0.0, wind=33.15, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:13:55.027', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:14:36,202 [DEBUG][       Thread-605766][   transport.py][1871] : EOF in transport thread
2025-07-01 13:14:36,285 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:14:36,296 [DEBUG][       Thread-605769][   transport.py][1871] : starting thread (client mode): 0x81a7250
2025-07-01 13:14:36,296 [DEBUG][       Thread-605769][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:14:36,312 [DEBUG][       Thread-605769][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:14:36,312 [ INFO][       Thread-605769][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:14:36,320 [DEBUG][       Thread-605769][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:14:36,320 [DEBUG][       Thread-605769][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:14:36,320 [DEBUG][       Thread-605769][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:14:36,320 [DEBUG][       Thread-605769][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:14:36,320 [DEBUG][       Thread-605769][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:14:36,320 [DEBUG][       Thread-605769][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:14:36,320 [DEBUG][       Thread-605769][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:14:36,320 [DEBUG][       Thread-605769][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:14:36,320 [DEBUG][       Thread-605769][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:14:36,320 [DEBUG][       Thread-605769][   transport.py][1871] : client lang: <none>
2025-07-01 13:14:36,320 [DEBUG][       Thread-605769][   transport.py][1871] : server lang: <none>
2025-07-01 13:14:36,320 [DEBUG][       Thread-605769][   transport.py][1871] : kex follows: False
2025-07-01 13:14:36,320 [DEBUG][       Thread-605769][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:14:36,320 [DEBUG][       Thread-605769][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:14:36,320 [DEBUG][       Thread-605769][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:14:36,320 [DEBUG][       Thread-605769][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:14:36,320 [DEBUG][       Thread-605769][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:14:36,320 [DEBUG][       Thread-605769][   transport.py][1871] : Compression: none
2025-07-01 13:14:36,321 [DEBUG][       Thread-605769][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:14:36,377 [DEBUG][       Thread-605769][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:14:36,378 [DEBUG][       Thread-605769][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:14:36,378 [DEBUG][       Thread-605769][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:14:36,379 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:14:36,379 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:14:36,433 [DEBUG][       Thread-605769][   transport.py][1871] : userauth is OK
2025-07-01 13:14:36,433 [DEBUG][       Thread-605769][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:14:36,433 [DEBUG][       Thread-605769][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:14:36,433 [DEBUG][       Thread-605769][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:14:36,433 [DEBUG][       Thread-605769][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:14:36,447 [ INFO][       Thread-605769][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:14:36,447 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:14:36,447 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:14:37,453 [DEBUG][       Thread-605769][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:14:37,453 [DEBUG][       Thread-605769][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:14:37,504 [DEBUG][       Thread-605769][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:14:37,504 [DEBUG][       Thread-605769][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:14:37,513 [DEBUG][       Thread-605769][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:14:37,522 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:14:37,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-07-01 13:14:37,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-07-01 13:14:37,540 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:14:37,541 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:14:37,541 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:14:37,549 [DEBUG][       Thread-605769][   transport.py][1871] : EOF in transport thread
2025-07-01 13:14:38,050 [DEBUG][Thread-605771 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:14:47,085 [DEBUG][Thread-605772 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:14:47,548 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:14:47,548 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:14:47,548 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:14:47,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-07-01 13:14:48,023 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 14, 28), 11.33, 46.34, 0.0, 33.15, 13.2, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:14:48,023 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:14:28
2025-07-01 13:14:48,106 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:14:48,109 [DEBUG][       Thread-605773][   transport.py][1871] : starting thread (client mode): 0x81a4490
2025-07-01 13:14:48,109 [DEBUG][       Thread-605773][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:14:48,125 [DEBUG][       Thread-605773][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:14:48,125 [ INFO][       Thread-605773][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:14:48,129 [DEBUG][       Thread-605773][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:14:48,129 [DEBUG][       Thread-605773][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:14:48,129 [DEBUG][       Thread-605773][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:14:48,129 [DEBUG][       Thread-605773][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:14:48,129 [DEBUG][       Thread-605773][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:14:48,129 [DEBUG][       Thread-605773][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:14:48,129 [DEBUG][       Thread-605773][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:14:48,129 [DEBUG][       Thread-605773][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:14:48,129 [DEBUG][       Thread-605773][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:14:48,129 [DEBUG][       Thread-605773][   transport.py][1871] : client lang: <none>
2025-07-01 13:14:48,129 [DEBUG][       Thread-605773][   transport.py][1871] : server lang: <none>
2025-07-01 13:14:48,129 [DEBUG][       Thread-605773][   transport.py][1871] : kex follows: False
2025-07-01 13:14:48,129 [DEBUG][       Thread-605773][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:14:48,129 [DEBUG][       Thread-605773][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:14:48,129 [DEBUG][       Thread-605773][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:14:48,129 [DEBUG][       Thread-605773][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:14:48,129 [DEBUG][       Thread-605773][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:14:48,129 [DEBUG][       Thread-605773][   transport.py][1871] : Compression: none
2025-07-01 13:14:48,129 [DEBUG][       Thread-605773][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:14:48,147 [DEBUG][       Thread-605773][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:14:48,148 [DEBUG][       Thread-605773][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:14:48,148 [DEBUG][       Thread-605773][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:14:48,148 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:14:48,149 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:14:48,150 [DEBUG][       Thread-605773][   transport.py][1871] : userauth is OK
2025-07-01 13:14:48,174 [ INFO][       Thread-605773][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:14:48,174 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:14:48,817 [DEBUG][       Thread-605773][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:14:48,817 [DEBUG][       Thread-605773][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:14:48,860 [DEBUG][       Thread-605773][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:14:48,860 [DEBUG][       Thread-605773][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:14:48,863 [DEBUG][       Thread-605773][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:14:48,876 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:14:48,876 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:14:48,877 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:14:48,878 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:14:48,881 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:14:48,882 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:14:48,882 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:14:48,882 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:14:48,882 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.468345 -999.00  +13.20  24.77     51   +3.30 1 1 1 1 1   888    0 10.51 20.73 ----- 36.1 24.8 26.4 41.9 16.2 -24.2 15.2 -25.6 15.2 -23.8 16.0 -25.9
2025-07-01 13:14:48,882 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:14:48,882 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:14:48,882 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.468345
2025-07-01 13:14:48,882 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:14:48,882 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:14:48,882 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:14:48,882 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:14:48,882 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:14:48,882 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:14:28', tmtdew=11.33, humidity=46.34, cloud=0.0, wind=33.15, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:14:25.008', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:14:48,883 [DEBUG][       Thread-605773][   transport.py][1871] : EOF in transport thread
2025-07-01 13:14:48,954 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:14:48,963 [DEBUG][       Thread-605776][   transport.py][1871] : starting thread (client mode): 0x8393910
2025-07-01 13:14:48,963 [DEBUG][       Thread-605776][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:14:48,977 [DEBUG][       Thread-605776][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:14:48,977 [ INFO][       Thread-605776][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:14:48,985 [DEBUG][       Thread-605776][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:14:48,985 [DEBUG][       Thread-605776][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:14:48,985 [DEBUG][       Thread-605776][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:14:48,985 [DEBUG][       Thread-605776][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:14:48,985 [DEBUG][       Thread-605776][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:14:48,985 [DEBUG][       Thread-605776][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:14:48,985 [DEBUG][       Thread-605776][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:14:48,985 [DEBUG][       Thread-605776][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:14:48,985 [DEBUG][       Thread-605776][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:14:48,985 [DEBUG][       Thread-605776][   transport.py][1871] : client lang: <none>
2025-07-01 13:14:48,985 [DEBUG][       Thread-605776][   transport.py][1871] : server lang: <none>
2025-07-01 13:14:48,985 [DEBUG][       Thread-605776][   transport.py][1871] : kex follows: False
2025-07-01 13:14:48,985 [DEBUG][       Thread-605776][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:14:48,985 [DEBUG][       Thread-605776][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:14:48,985 [DEBUG][       Thread-605776][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:14:48,985 [DEBUG][       Thread-605776][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:14:48,985 [DEBUG][       Thread-605776][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:14:48,985 [DEBUG][       Thread-605776][   transport.py][1871] : Compression: none
2025-07-01 13:14:48,985 [DEBUG][       Thread-605776][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:14:49,040 [DEBUG][       Thread-605776][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:14:49,041 [DEBUG][       Thread-605776][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:14:49,041 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:14:49,042 [DEBUG][       Thread-605776][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:14:49,042 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:14:49,100 [DEBUG][       Thread-605776][   transport.py][1871] : userauth is OK
2025-07-01 13:14:49,100 [DEBUG][       Thread-605776][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:14:49,101 [DEBUG][       Thread-605776][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:14:49,101 [DEBUG][       Thread-605776][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:14:49,101 [DEBUG][       Thread-605776][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:14:49,121 [ INFO][       Thread-605776][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:14:49,122 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:14:49,122 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:14:50,168 [DEBUG][       Thread-605776][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:14:50,169 [DEBUG][       Thread-605776][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:14:50,220 [DEBUG][       Thread-605776][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:14:50,220 [DEBUG][       Thread-605776][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:14:50,236 [DEBUG][       Thread-605776][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:14:50,244 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:14:50,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-07-01 13:14:50,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-07-01 13:14:50,262 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:14:50,262 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:14:50,263 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:14:50,272 [DEBUG][       Thread-605776][   transport.py][1871] : EOF in transport thread
2025-07-01 13:14:56,102 [DEBUG][Thread-605778 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:15:00,272 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:15:00,272 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:15:00,272 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:15:00,272 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:15:00,784 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 14, 28), 11.33, 46.34, 0.0, 33.15, 13.2, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:15:00,784 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:14:28
2025-07-01 13:15:00,873 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:15:00,878 [DEBUG][       Thread-605779][   transport.py][1871] : starting thread (client mode): 0x81a48b0
2025-07-01 13:15:00,879 [DEBUG][       Thread-605779][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:15:00,899 [DEBUG][       Thread-605779][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:15:00,899 [ INFO][       Thread-605779][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:15:00,902 [DEBUG][       Thread-605779][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:15:00,902 [DEBUG][       Thread-605779][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:15:00,902 [DEBUG][       Thread-605779][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:15:00,902 [DEBUG][       Thread-605779][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:15:00,902 [DEBUG][       Thread-605779][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:15:00,902 [DEBUG][       Thread-605779][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:15:00,902 [DEBUG][       Thread-605779][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:15:00,902 [DEBUG][       Thread-605779][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:15:00,902 [DEBUG][       Thread-605779][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:15:00,902 [DEBUG][       Thread-605779][   transport.py][1871] : client lang: <none>
2025-07-01 13:15:00,902 [DEBUG][       Thread-605779][   transport.py][1871] : server lang: <none>
2025-07-01 13:15:00,902 [DEBUG][       Thread-605779][   transport.py][1871] : kex follows: False
2025-07-01 13:15:00,902 [DEBUG][       Thread-605779][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:15:00,902 [DEBUG][       Thread-605779][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:15:00,902 [DEBUG][       Thread-605779][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:15:00,902 [DEBUG][       Thread-605779][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:15:00,902 [DEBUG][       Thread-605779][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:15:00,902 [DEBUG][       Thread-605779][   transport.py][1871] : Compression: none
2025-07-01 13:15:00,902 [DEBUG][       Thread-605779][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:15:00,919 [DEBUG][       Thread-605779][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:15:00,919 [DEBUG][       Thread-605779][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:15:00,919 [DEBUG][       Thread-605779][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:15:00,919 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:15:00,920 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:15:00,920 [DEBUG][       Thread-605779][   transport.py][1871] : userauth is OK
2025-07-01 13:15:00,944 [ INFO][       Thread-605779][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:15:00,944 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:15:01,766 [DEBUG][       Thread-605779][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:15:01,766 [DEBUG][       Thread-605779][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:15:01,808 [DEBUG][       Thread-605779][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:15:01,808 [DEBUG][       Thread-605779][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:15:01,810 [DEBUG][       Thread-605779][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:15:01,815 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:15:01,815 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:15:01,816 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:15:01,817 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:15:01,818 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:15:01,819 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:15:01,819 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:15:01,819 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:15:01,819 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.468345 -999.00  +13.20  24.77     51   +3.30 1 1 1 1 1   888    0 10.51 20.73 ----- 36.1 24.8 26.4 41.9 16.2 -24.2 15.2 -25.6 15.2 -23.8 16.0 -25.9
2025-07-01 13:15:01,819 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:15:01,819 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:15:01,819 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.468345
2025-07-01 13:15:01,819 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:15:01,820 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:15:01,820 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:15:01,820 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:15:01,820 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:15:01,820 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:14:28', tmtdew=11.33, humidity=46.34, cloud=0.0, wind=33.15, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:14:25.008', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:15:01,828 [DEBUG][       Thread-605779][   transport.py][1871] : EOF in transport thread
2025-07-01 13:15:01,966 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:15:01,977 [DEBUG][       Thread-605782][   transport.py][1871] : starting thread (client mode): 0x81579a0
2025-07-01 13:15:01,977 [DEBUG][       Thread-605782][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:15:01,992 [DEBUG][       Thread-605782][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:15:01,992 [ INFO][       Thread-605782][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:15:01,999 [DEBUG][       Thread-605782][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:15:01,999 [DEBUG][       Thread-605782][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:15:01,999 [DEBUG][       Thread-605782][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:15:01,999 [DEBUG][       Thread-605782][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:15:01,999 [DEBUG][       Thread-605782][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:15:01,999 [DEBUG][       Thread-605782][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:15:01,999 [DEBUG][       Thread-605782][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:15:01,999 [DEBUG][       Thread-605782][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:15:01,999 [DEBUG][       Thread-605782][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:15:01,999 [DEBUG][       Thread-605782][   transport.py][1871] : client lang: <none>
2025-07-01 13:15:01,999 [DEBUG][       Thread-605782][   transport.py][1871] : server lang: <none>
2025-07-01 13:15:01,999 [DEBUG][       Thread-605782][   transport.py][1871] : kex follows: False
2025-07-01 13:15:01,999 [DEBUG][       Thread-605782][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:15:01,999 [DEBUG][       Thread-605782][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:15:01,999 [DEBUG][       Thread-605782][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:15:01,999 [DEBUG][       Thread-605782][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:15:01,999 [DEBUG][       Thread-605782][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:15:01,999 [DEBUG][       Thread-605782][   transport.py][1871] : Compression: none
2025-07-01 13:15:01,999 [DEBUG][       Thread-605782][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:15:02,056 [DEBUG][       Thread-605782][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:15:02,056 [DEBUG][       Thread-605782][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:15:02,056 [DEBUG][       Thread-605782][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:15:02,056 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:15:02,056 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:15:02,113 [DEBUG][       Thread-605782][   transport.py][1871] : userauth is OK
2025-07-01 13:15:02,113 [DEBUG][       Thread-605782][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:15:02,113 [DEBUG][       Thread-605782][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:15:02,113 [DEBUG][       Thread-605782][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:15:02,113 [DEBUG][       Thread-605782][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:15:02,127 [ INFO][       Thread-605782][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:15:02,127 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:15:02,127 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:15:03,160 [DEBUG][       Thread-605782][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:15:03,160 [DEBUG][       Thread-605782][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:15:03,212 [DEBUG][       Thread-605782][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:15:03,212 [DEBUG][       Thread-605782][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:15:03,221 [DEBUG][       Thread-605782][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:15:03,229 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:15:03,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')
2025-07-01 13:15:03,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-07-01 13:15:03,248 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:15:03,248 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:15:03,249 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:15:03,257 [DEBUG][       Thread-605782][   transport.py][1871] : EOF in transport thread
2025-07-01 13:15:05,121 [DEBUG][Thread-605784 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:15:13,256 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:15:13,256 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:15:13,256 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:15:13,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-07-01 13:15:13,733 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 14, 59), 11.34, 46.34, 0.0, 36.84, 13.23, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:15:13,733 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:14:59
2025-07-01 13:15:13,818 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:15:13,823 [DEBUG][       Thread-605785][   transport.py][1871] : starting thread (client mode): 0x81a4e50
2025-07-01 13:15:13,823 [DEBUG][       Thread-605785][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:15:13,842 [DEBUG][       Thread-605785][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:15:13,842 [ INFO][       Thread-605785][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:15:13,846 [DEBUG][       Thread-605785][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:15:13,846 [DEBUG][       Thread-605785][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:15:13,846 [DEBUG][       Thread-605785][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:15:13,846 [DEBUG][       Thread-605785][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:15:13,846 [DEBUG][       Thread-605785][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:15:13,846 [DEBUG][       Thread-605785][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:15:13,846 [DEBUG][       Thread-605785][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:15:13,846 [DEBUG][       Thread-605785][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:15:13,846 [DEBUG][       Thread-605785][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:15:13,846 [DEBUG][       Thread-605785][   transport.py][1871] : client lang: <none>
2025-07-01 13:15:13,846 [DEBUG][       Thread-605785][   transport.py][1871] : server lang: <none>
2025-07-01 13:15:13,846 [DEBUG][       Thread-605785][   transport.py][1871] : kex follows: False
2025-07-01 13:15:13,846 [DEBUG][       Thread-605785][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:15:13,846 [DEBUG][       Thread-605785][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:15:13,846 [DEBUG][       Thread-605785][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:15:13,846 [DEBUG][       Thread-605785][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:15:13,846 [DEBUG][       Thread-605785][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:15:13,846 [DEBUG][       Thread-605785][   transport.py][1871] : Compression: none
2025-07-01 13:15:13,846 [DEBUG][       Thread-605785][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:15:13,861 [DEBUG][       Thread-605785][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:15:13,861 [DEBUG][       Thread-605785][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:15:13,861 [DEBUG][       Thread-605785][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:15:13,861 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:15:13,861 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:15:13,862 [DEBUG][       Thread-605785][   transport.py][1871] : userauth is OK
2025-07-01 13:15:13,875 [ INFO][       Thread-605785][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:15:13,875 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:15:14,143 [DEBUG][Thread-605787 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:15:14,701 [DEBUG][       Thread-605785][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:15:14,702 [DEBUG][       Thread-605785][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:15:14,745 [DEBUG][       Thread-605785][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:15:14,745 [DEBUG][       Thread-605785][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:15:14,748 [DEBUG][       Thread-605785][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:15:14,763 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:15:14,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:15:14,765 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:15:14,767 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:15:14,773 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:15:14,775 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:15:14,775 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:15:14,776 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:15:14,776 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.468345 -999.00  +13.20  24.77     51   +3.30 1 1 1 1 1   888    0 10.51 20.73 ----- 36.1 24.8 26.4 41.9 16.2 -24.2 15.2 -25.6 15.2 -23.8 16.0 -25.9
2025-07-01 13:15:14,776 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:15:14,776 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:15:14,776 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.468345
2025-07-01 13:15:14,777 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:15:14,777 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:15:14,777 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:15:14,778 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:15:14,778 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:15:14,778 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:14:59', tmtdew=11.34, humidity=46.34, cloud=0.0, wind=36.84, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:14:25.008', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:15:14,779 [DEBUG][       Thread-605785][   transport.py][1871] : EOF in transport thread
2025-07-01 13:15:14,864 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:15:14,873 [DEBUG][       Thread-605789][   transport.py][1871] : starting thread (client mode): 0x8154910
2025-07-01 13:15:14,873 [DEBUG][       Thread-605789][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:15:14,891 [DEBUG][       Thread-605789][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:15:14,891 [ INFO][       Thread-605789][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:15:14,898 [DEBUG][       Thread-605789][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:15:14,898 [DEBUG][       Thread-605789][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:15:14,898 [DEBUG][       Thread-605789][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:15:14,898 [DEBUG][       Thread-605789][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:15:14,898 [DEBUG][       Thread-605789][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:15:14,898 [DEBUG][       Thread-605789][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:15:14,898 [DEBUG][       Thread-605789][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:15:14,898 [DEBUG][       Thread-605789][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:15:14,898 [DEBUG][       Thread-605789][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:15:14,898 [DEBUG][       Thread-605789][   transport.py][1871] : client lang: <none>
2025-07-01 13:15:14,899 [DEBUG][       Thread-605789][   transport.py][1871] : server lang: <none>
2025-07-01 13:15:14,899 [DEBUG][       Thread-605789][   transport.py][1871] : kex follows: False
2025-07-01 13:15:14,899 [DEBUG][       Thread-605789][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:15:14,899 [DEBUG][       Thread-605789][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:15:14,899 [DEBUG][       Thread-605789][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:15:14,899 [DEBUG][       Thread-605789][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:15:14,899 [DEBUG][       Thread-605789][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:15:14,899 [DEBUG][       Thread-605789][   transport.py][1871] : Compression: none
2025-07-01 13:15:14,899 [DEBUG][       Thread-605789][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:15:14,962 [DEBUG][       Thread-605789][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:15:14,962 [DEBUG][       Thread-605789][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:15:14,963 [DEBUG][       Thread-605789][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:15:14,963 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:15:14,964 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:15:15,018 [DEBUG][       Thread-605789][   transport.py][1871] : userauth is OK
2025-07-01 13:15:15,018 [DEBUG][       Thread-605789][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:15:15,018 [DEBUG][       Thread-605789][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:15:15,018 [DEBUG][       Thread-605789][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:15:15,019 [DEBUG][       Thread-605789][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:15:15,038 [ INFO][       Thread-605789][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:15:15,038 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:15:15,039 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:15:16,125 [DEBUG][       Thread-605789][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:15:16,126 [DEBUG][       Thread-605789][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:15:16,176 [DEBUG][       Thread-605789][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:15:16,176 [DEBUG][       Thread-605789][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:15:16,185 [DEBUG][       Thread-605789][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:15:16,194 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:15:16,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-07-01 13:15:16,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-07-01 13:15:16,213 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:15:16,213 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:15:16,213 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:15:16,221 [DEBUG][       Thread-605789][   transport.py][1871] : EOF in transport thread
2025-07-01 13:15:22,660 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:15:22,661 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:15:23,164 [DEBUG][Thread-605791 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:15:26,220 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:15:26,220 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:15:26,220 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:15:26,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-07-01 13:15:26,688 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 14, 59), 11.34, 46.34, 0.0, 36.84, 13.23, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:15:26,688 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:14:59
2025-07-01 13:15:26,771 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:15:26,777 [DEBUG][       Thread-605792][   transport.py][1871] : starting thread (client mode): 0x81db8e0
2025-07-01 13:15:26,777 [DEBUG][       Thread-605792][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:15:26,801 [DEBUG][       Thread-605792][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:15:26,801 [ INFO][       Thread-605792][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:15:26,804 [DEBUG][       Thread-605792][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:15:26,805 [DEBUG][       Thread-605792][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:15:26,805 [DEBUG][       Thread-605792][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:15:26,805 [DEBUG][       Thread-605792][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:15:26,805 [DEBUG][       Thread-605792][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:15:26,805 [DEBUG][       Thread-605792][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:15:26,805 [DEBUG][       Thread-605792][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:15:26,805 [DEBUG][       Thread-605792][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:15:26,805 [DEBUG][       Thread-605792][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:15:26,805 [DEBUG][       Thread-605792][   transport.py][1871] : client lang: <none>
2025-07-01 13:15:26,805 [DEBUG][       Thread-605792][   transport.py][1871] : server lang: <none>
2025-07-01 13:15:26,805 [DEBUG][       Thread-605792][   transport.py][1871] : kex follows: False
2025-07-01 13:15:26,805 [DEBUG][       Thread-605792][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:15:26,805 [DEBUG][       Thread-605792][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:15:26,805 [DEBUG][       Thread-605792][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:15:26,805 [DEBUG][       Thread-605792][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:15:26,805 [DEBUG][       Thread-605792][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:15:26,805 [DEBUG][       Thread-605792][   transport.py][1871] : Compression: none
2025-07-01 13:15:26,805 [DEBUG][       Thread-605792][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:15:26,821 [DEBUG][       Thread-605792][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:15:26,822 [DEBUG][       Thread-605792][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:15:26,822 [DEBUG][       Thread-605792][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:15:26,822 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:15:26,823 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:15:26,824 [DEBUG][       Thread-605792][   transport.py][1871] : userauth is OK
2025-07-01 13:15:26,848 [ INFO][       Thread-605792][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:15:26,849 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:15:27,512 [DEBUG][       Thread-605792][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:15:27,513 [DEBUG][       Thread-605792][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:15:27,557 [DEBUG][       Thread-605792][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:15:27,557 [DEBUG][       Thread-605792][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:15:27,561 [DEBUG][       Thread-605792][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:15:27,573 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:15:27,573 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:15:27,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:15:27,578 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:15:27,584 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:15:27,586 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:15:27,586 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:15:27,587 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:15:27,587 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.468692 -999.00  +13.40  33.43     50   +3.40 1 1 2 1 1   888    0 10.51 22.23 ----- 34.5 33.4 26.0 43.1 16.2 -24.2 15.3 -25.1 15.2 -24.3 16.1 -22.9
2025-07-01 13:15:27,587 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:15:27,587 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:15:27,587 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.468692
2025-07-01 13:15:27,588 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:15:27,588 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:15:27,588 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:15:27,588 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:15:27,588 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:15:27,589 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:14:59', tmtdew=11.34, humidity=46.34, cloud=0.0, wind=36.84, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:14:54.989', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:15:27,590 [DEBUG][       Thread-605792][   transport.py][1871] : EOF in transport thread
2025-07-01 13:15:27,672 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:15:27,682 [DEBUG][       Thread-605795][   transport.py][1871] : starting thread (client mode): 0x81e5b40
2025-07-01 13:15:27,682 [DEBUG][       Thread-605795][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:15:27,697 [DEBUG][       Thread-605795][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:15:27,697 [ INFO][       Thread-605795][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:15:27,705 [DEBUG][       Thread-605795][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:15:27,705 [DEBUG][       Thread-605795][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:15:27,705 [DEBUG][       Thread-605795][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:15:27,705 [DEBUG][       Thread-605795][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:15:27,705 [DEBUG][       Thread-605795][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:15:27,705 [DEBUG][       Thread-605795][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:15:27,705 [DEBUG][       Thread-605795][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:15:27,705 [DEBUG][       Thread-605795][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:15:27,705 [DEBUG][       Thread-605795][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:15:27,705 [DEBUG][       Thread-605795][   transport.py][1871] : client lang: <none>
2025-07-01 13:15:27,705 [DEBUG][       Thread-605795][   transport.py][1871] : server lang: <none>
2025-07-01 13:15:27,706 [DEBUG][       Thread-605795][   transport.py][1871] : kex follows: False
2025-07-01 13:15:27,706 [DEBUG][       Thread-605795][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:15:27,706 [DEBUG][       Thread-605795][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:15:27,706 [DEBUG][       Thread-605795][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:15:27,706 [DEBUG][       Thread-605795][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:15:27,706 [DEBUG][       Thread-605795][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:15:27,706 [DEBUG][       Thread-605795][   transport.py][1871] : Compression: none
2025-07-01 13:15:27,706 [DEBUG][       Thread-605795][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:15:27,766 [DEBUG][       Thread-605795][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:15:27,766 [DEBUG][       Thread-605795][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:15:27,767 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:15:27,767 [DEBUG][       Thread-605795][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:15:27,768 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:15:27,822 [DEBUG][       Thread-605795][   transport.py][1871] : userauth is OK
2025-07-01 13:15:27,822 [DEBUG][       Thread-605795][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:15:27,822 [DEBUG][       Thread-605795][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:15:27,822 [DEBUG][       Thread-605795][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:15:27,822 [DEBUG][       Thread-605795][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:15:27,841 [ INFO][       Thread-605795][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:15:27,842 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:15:27,842 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:15:28,840 [DEBUG][       Thread-605795][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:15:28,841 [DEBUG][       Thread-605795][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:15:28,892 [DEBUG][       Thread-605795][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:15:28,892 [DEBUG][       Thread-605795][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:15:28,901 [DEBUG][       Thread-605795][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:15:28,910 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:15:28,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-07-01 13:15:28,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-07-01 13:15:28,928 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:15:28,929 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:15:28,929 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:15:28,937 [DEBUG][       Thread-605795][   transport.py][1871] : EOF in transport thread
2025-07-01 13:15:31,516 [DEBUG][Thread-605797 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:15:32,190 [DEBUG][Thread-605798 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:15:38,940 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:15:38,940 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:15:38,940 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:15:38,943 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:15:39,419 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 15, 31), 11.41, 45.9, 0.0, 33.7, 13.44, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:15:39,419 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:15:31
2025-07-01 13:15:39,505 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:15:39,509 [DEBUG][       Thread-605799][   transport.py][1871] : starting thread (client mode): 0x81d89a0
2025-07-01 13:15:39,509 [DEBUG][       Thread-605799][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:15:39,530 [DEBUG][       Thread-605799][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:15:39,530 [ INFO][       Thread-605799][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:15:39,534 [DEBUG][       Thread-605799][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:15:39,534 [DEBUG][       Thread-605799][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:15:39,534 [DEBUG][       Thread-605799][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:15:39,534 [DEBUG][       Thread-605799][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:15:39,534 [DEBUG][       Thread-605799][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:15:39,534 [DEBUG][       Thread-605799][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:15:39,534 [DEBUG][       Thread-605799][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:15:39,534 [DEBUG][       Thread-605799][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:15:39,534 [DEBUG][       Thread-605799][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:15:39,534 [DEBUG][       Thread-605799][   transport.py][1871] : client lang: <none>
2025-07-01 13:15:39,534 [DEBUG][       Thread-605799][   transport.py][1871] : server lang: <none>
2025-07-01 13:15:39,534 [DEBUG][       Thread-605799][   transport.py][1871] : kex follows: False
2025-07-01 13:15:39,534 [DEBUG][       Thread-605799][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:15:39,534 [DEBUG][       Thread-605799][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:15:39,534 [DEBUG][       Thread-605799][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:15:39,534 [DEBUG][       Thread-605799][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:15:39,534 [DEBUG][       Thread-605799][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:15:39,534 [DEBUG][       Thread-605799][   transport.py][1871] : Compression: none
2025-07-01 13:15:39,535 [DEBUG][       Thread-605799][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:15:39,552 [DEBUG][       Thread-605799][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:15:39,553 [DEBUG][       Thread-605799][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:15:39,553 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:15:39,553 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:15:39,554 [DEBUG][       Thread-605799][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:15:39,554 [DEBUG][       Thread-605799][   transport.py][1871] : userauth is OK
2025-07-01 13:15:39,579 [ INFO][       Thread-605799][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:15:39,580 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:15:40,245 [DEBUG][       Thread-605799][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:15:40,246 [DEBUG][       Thread-605799][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:15:40,289 [DEBUG][       Thread-605799][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:15:40,289 [DEBUG][       Thread-605799][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:15:40,292 [DEBUG][       Thread-605799][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:15:40,304 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:15:40,304 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:15:40,305 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:15:40,307 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:15:40,311 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:15:40,313 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:15:40,313 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:15:40,314 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:15:40,314 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.468692 -999.00  +13.40  33.43     50   +3.40 1 1 2 1 1   888    0 10.51 22.23 ----- 34.5 33.4 26.0 43.1 16.2 -24.2 15.3 -25.1 15.2 -24.3 16.1 -22.9
2025-07-01 13:15:40,314 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:15:40,314 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:15:40,314 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.468692
2025-07-01 13:15:40,315 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:15:40,315 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:15:40,315 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:15:40,315 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:15:40,315 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:15:40,316 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:15:31', tmtdew=11.41, humidity=45.9, cloud=0.0, wind=33.7, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:14:54.989', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:15:40,316 [DEBUG][       Thread-605799][   transport.py][1871] : EOF in transport thread
2025-07-01 13:15:40,401 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:15:40,410 [DEBUG][       Thread-605802][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 13:15:40,410 [DEBUG][       Thread-605802][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:15:40,425 [DEBUG][       Thread-605802][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:15:40,425 [ INFO][       Thread-605802][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:15:40,433 [DEBUG][       Thread-605802][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:15:40,433 [DEBUG][       Thread-605802][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:15:40,433 [DEBUG][       Thread-605802][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:15:40,433 [DEBUG][       Thread-605802][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:15:40,433 [DEBUG][       Thread-605802][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:15:40,433 [DEBUG][       Thread-605802][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:15:40,433 [DEBUG][       Thread-605802][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:15:40,434 [DEBUG][       Thread-605802][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:15:40,434 [DEBUG][       Thread-605802][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:15:40,434 [DEBUG][       Thread-605802][   transport.py][1871] : client lang: <none>
2025-07-01 13:15:40,434 [DEBUG][       Thread-605802][   transport.py][1871] : server lang: <none>
2025-07-01 13:15:40,434 [DEBUG][       Thread-605802][   transport.py][1871] : kex follows: False
2025-07-01 13:15:40,434 [DEBUG][       Thread-605802][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:15:40,434 [DEBUG][       Thread-605802][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:15:40,434 [DEBUG][       Thread-605802][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:15:40,434 [DEBUG][       Thread-605802][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:15:40,434 [DEBUG][       Thread-605802][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:15:40,434 [DEBUG][       Thread-605802][   transport.py][1871] : Compression: none
2025-07-01 13:15:40,434 [DEBUG][       Thread-605802][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:15:40,490 [DEBUG][       Thread-605802][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:15:40,490 [DEBUG][       Thread-605802][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:15:40,491 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:15:40,492 [DEBUG][       Thread-605802][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:15:40,492 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:15:40,546 [DEBUG][       Thread-605802][   transport.py][1871] : userauth is OK
2025-07-01 13:15:40,546 [DEBUG][       Thread-605802][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:15:40,546 [DEBUG][       Thread-605802][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:15:40,546 [DEBUG][       Thread-605802][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:15:40,546 [DEBUG][       Thread-605802][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:15:40,565 [ INFO][       Thread-605802][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:15:40,565 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:15:40,565 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:15:41,209 [DEBUG][Thread-605804 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:15:41,542 [DEBUG][       Thread-605802][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:15:41,542 [DEBUG][       Thread-605802][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:15:41,595 [DEBUG][       Thread-605802][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:15:41,595 [DEBUG][       Thread-605802][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:15:41,604 [DEBUG][       Thread-605802][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:15:41,613 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:15:41,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-07-01 13:15:41,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-07-01 13:15:41,630 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:15:41,630 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:15:41,630 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:15:41,638 [DEBUG][       Thread-605802][   transport.py][1871] : EOF in transport thread
2025-07-01 13:15:50,241 [DEBUG][Thread-605805 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:15:51,641 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:15:51,641 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:15:51,641 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:15:51,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-07-01 13:15:52,118 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 15, 31), 11.41, 45.9, 0.0, 33.7, 13.44, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:15:52,118 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:15:31
2025-07-01 13:15:52,204 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:15:52,210 [DEBUG][       Thread-605806][   transport.py][1871] : starting thread (client mode): 0x81da770
2025-07-01 13:15:52,210 [DEBUG][       Thread-605806][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:15:52,230 [DEBUG][       Thread-605806][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:15:52,230 [ INFO][       Thread-605806][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:15:52,234 [DEBUG][       Thread-605806][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:15:52,234 [DEBUG][       Thread-605806][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:15:52,234 [DEBUG][       Thread-605806][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:15:52,234 [DEBUG][       Thread-605806][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:15:52,234 [DEBUG][       Thread-605806][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:15:52,234 [DEBUG][       Thread-605806][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:15:52,234 [DEBUG][       Thread-605806][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:15:52,234 [DEBUG][       Thread-605806][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:15:52,234 [DEBUG][       Thread-605806][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:15:52,234 [DEBUG][       Thread-605806][   transport.py][1871] : client lang: <none>
2025-07-01 13:15:52,234 [DEBUG][       Thread-605806][   transport.py][1871] : server lang: <none>
2025-07-01 13:15:52,234 [DEBUG][       Thread-605806][   transport.py][1871] : kex follows: False
2025-07-01 13:15:52,234 [DEBUG][       Thread-605806][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:15:52,234 [DEBUG][       Thread-605806][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:15:52,234 [DEBUG][       Thread-605806][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:15:52,234 [DEBUG][       Thread-605806][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:15:52,235 [DEBUG][       Thread-605806][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:15:52,235 [DEBUG][       Thread-605806][   transport.py][1871] : Compression: none
2025-07-01 13:15:52,235 [DEBUG][       Thread-605806][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:15:52,249 [DEBUG][       Thread-605806][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:15:52,250 [DEBUG][       Thread-605806][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:15:52,250 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:15:52,251 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:15:52,251 [DEBUG][       Thread-605806][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:15:52,251 [DEBUG][       Thread-605806][   transport.py][1871] : userauth is OK
2025-07-01 13:15:52,275 [ INFO][       Thread-605806][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:15:52,276 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:15:52,910 [DEBUG][       Thread-605806][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:15:52,911 [DEBUG][       Thread-605806][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:15:52,953 [DEBUG][       Thread-605806][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:15:52,953 [DEBUG][       Thread-605806][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:15:52,957 [DEBUG][       Thread-605806][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:15:52,968 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:15:52,969 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:15:52,978 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:15:52,980 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:15:52,987 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:15:52,989 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:15:52,989 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:15:52,990 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:15:52,990 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.469039 -999.00  +13.40  34.32     51   +3.50 1 1 2 1 1   888    0 10.46 24.33 ----- 29.8 34.3 24.4 46.0 16.2 -24.1 15.3 -25.2 15.2 -23.9 16.1 -22.8
2025-07-01 13:15:52,990 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:15:52,990 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:15:52,990 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.469039
2025-07-01 13:15:52,990 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:15:52,991 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:15:52,991 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:15:52,991 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:15:52,991 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:15:52,991 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:15:31', tmtdew=11.41, humidity=45.9, cloud=0.0, wind=33.7, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:15:24.970', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:15:52,992 [DEBUG][       Thread-605806][   transport.py][1871] : EOF in transport thread
2025-07-01 13:15:53,076 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:15:53,087 [DEBUG][       Thread-605809][   transport.py][1871] : starting thread (client mode): 0x827db40
2025-07-01 13:15:53,087 [DEBUG][       Thread-605809][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:15:53,102 [DEBUG][       Thread-605809][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:15:53,102 [ INFO][       Thread-605809][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:15:53,109 [DEBUG][       Thread-605809][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:15:53,110 [DEBUG][       Thread-605809][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:15:53,110 [DEBUG][       Thread-605809][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:15:53,110 [DEBUG][       Thread-605809][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:15:53,110 [DEBUG][       Thread-605809][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:15:53,110 [DEBUG][       Thread-605809][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:15:53,110 [DEBUG][       Thread-605809][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:15:53,110 [DEBUG][       Thread-605809][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:15:53,110 [DEBUG][       Thread-605809][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:15:53,110 [DEBUG][       Thread-605809][   transport.py][1871] : client lang: <none>
2025-07-01 13:15:53,110 [DEBUG][       Thread-605809][   transport.py][1871] : server lang: <none>
2025-07-01 13:15:53,110 [DEBUG][       Thread-605809][   transport.py][1871] : kex follows: False
2025-07-01 13:15:53,110 [DEBUG][       Thread-605809][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:15:53,110 [DEBUG][       Thread-605809][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:15:53,110 [DEBUG][       Thread-605809][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:15:53,110 [DEBUG][       Thread-605809][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:15:53,110 [DEBUG][       Thread-605809][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:15:53,110 [DEBUG][       Thread-605809][   transport.py][1871] : Compression: none
2025-07-01 13:15:53,110 [DEBUG][       Thread-605809][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:15:53,166 [DEBUG][       Thread-605809][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:15:53,167 [DEBUG][       Thread-605809][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:15:53,167 [DEBUG][       Thread-605809][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:15:53,168 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:15:53,168 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:15:53,222 [DEBUG][       Thread-605809][   transport.py][1871] : userauth is OK
2025-07-01 13:15:53,222 [DEBUG][       Thread-605809][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:15:53,222 [DEBUG][       Thread-605809][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:15:53,222 [DEBUG][       Thread-605809][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:15:53,223 [DEBUG][       Thread-605809][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:15:53,240 [ INFO][       Thread-605809][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:15:53,241 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:15:53,241 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:15:54,267 [DEBUG][       Thread-605809][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:15:54,267 [DEBUG][       Thread-605809][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:15:54,315 [DEBUG][       Thread-605809][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:15:54,315 [DEBUG][       Thread-605809][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:15:54,325 [DEBUG][       Thread-605809][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:15:54,335 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:15:54,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-07-01 13:15:54,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-07-01 13:15:54,352 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:15:54,352 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:15:54,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:15:54,361 [DEBUG][       Thread-605809][   transport.py][1871] : EOF in transport thread
2025-07-01 13:15:59,265 [DEBUG][Thread-605811 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:16:04,360 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:16:04,360 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:16:04,360 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:16:04,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-07-01 13:16:04,862 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 15, 31), 11.41, 45.9, 0.0, 33.7, 13.44, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:16:04,862 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:15:31
2025-07-01 13:16:04,953 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:16:04,958 [DEBUG][       Thread-605812][   transport.py][1871] : starting thread (client mode): 0x75a8c70
2025-07-01 13:16:04,958 [DEBUG][       Thread-605812][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:16:04,979 [DEBUG][       Thread-605812][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:16:04,979 [ INFO][       Thread-605812][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:16:04,983 [DEBUG][       Thread-605812][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:16:04,983 [DEBUG][       Thread-605812][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:16:04,983 [DEBUG][       Thread-605812][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:16:04,983 [DEBUG][       Thread-605812][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:16:04,983 [DEBUG][       Thread-605812][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:16:04,983 [DEBUG][       Thread-605812][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:16:04,983 [DEBUG][       Thread-605812][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:16:04,983 [DEBUG][       Thread-605812][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:16:04,983 [DEBUG][       Thread-605812][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:16:04,983 [DEBUG][       Thread-605812][   transport.py][1871] : client lang: <none>
2025-07-01 13:16:04,983 [DEBUG][       Thread-605812][   transport.py][1871] : server lang: <none>
2025-07-01 13:16:04,983 [DEBUG][       Thread-605812][   transport.py][1871] : kex follows: False
2025-07-01 13:16:04,983 [DEBUG][       Thread-605812][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:16:04,983 [DEBUG][       Thread-605812][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:16:04,983 [DEBUG][       Thread-605812][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:16:04,983 [DEBUG][       Thread-605812][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:16:04,983 [DEBUG][       Thread-605812][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:16:04,983 [DEBUG][       Thread-605812][   transport.py][1871] : Compression: none
2025-07-01 13:16:04,983 [DEBUG][       Thread-605812][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:16:04,997 [DEBUG][       Thread-605812][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:16:04,997 [DEBUG][       Thread-605812][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:16:04,997 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:16:04,997 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:16:04,997 [DEBUG][       Thread-605812][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:16:04,997 [DEBUG][       Thread-605812][   transport.py][1871] : userauth is OK
2025-07-01 13:16:05,021 [ INFO][       Thread-605812][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:16:05,021 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:16:05,695 [DEBUG][       Thread-605812][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:16:05,695 [DEBUG][       Thread-605812][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:16:05,737 [DEBUG][       Thread-605812][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:16:05,737 [DEBUG][       Thread-605812][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:16:05,740 [DEBUG][       Thread-605812][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:16:05,752 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:16:05,753 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:16:05,754 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:16:05,756 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:16:05,761 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:16:05,762 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:16:05,763 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:16:05,763 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:16:05,763 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.469039 -999.00  +13.40  34.32     51   +3.50 1 1 2 1 1   888    0 10.46 24.33 ----- 29.8 34.3 24.4 46.0 16.2 -24.1 15.3 -25.2 15.2 -23.9 16.1 -22.8
2025-07-01 13:16:05,763 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:16:05,763 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:16:05,763 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.469039
2025-07-01 13:16:05,764 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:16:05,764 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:16:05,764 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:16:05,765 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:16:05,765 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:16:05,765 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:15:31', tmtdew=11.41, humidity=45.9, cloud=0.0, wind=33.7, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:15:24.970', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:16:05,766 [DEBUG][       Thread-605812][   transport.py][1871] : EOF in transport thread
2025-07-01 13:16:05,848 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:16:05,857 [DEBUG][       Thread-605815][   transport.py][1871] : starting thread (client mode): 0x8157850
2025-07-01 13:16:05,858 [DEBUG][       Thread-605815][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:16:05,872 [DEBUG][       Thread-605815][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:16:05,872 [ INFO][       Thread-605815][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:16:05,879 [DEBUG][       Thread-605815][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:16:05,880 [DEBUG][       Thread-605815][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:16:05,880 [DEBUG][       Thread-605815][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:16:05,880 [DEBUG][       Thread-605815][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:16:05,880 [DEBUG][       Thread-605815][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:16:05,880 [DEBUG][       Thread-605815][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:16:05,880 [DEBUG][       Thread-605815][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:16:05,880 [DEBUG][       Thread-605815][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:16:05,880 [DEBUG][       Thread-605815][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:16:05,880 [DEBUG][       Thread-605815][   transport.py][1871] : client lang: <none>
2025-07-01 13:16:05,880 [DEBUG][       Thread-605815][   transport.py][1871] : server lang: <none>
2025-07-01 13:16:05,880 [DEBUG][       Thread-605815][   transport.py][1871] : kex follows: False
2025-07-01 13:16:05,880 [DEBUG][       Thread-605815][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:16:05,880 [DEBUG][       Thread-605815][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:16:05,880 [DEBUG][       Thread-605815][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:16:05,880 [DEBUG][       Thread-605815][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:16:05,880 [DEBUG][       Thread-605815][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:16:05,880 [DEBUG][       Thread-605815][   transport.py][1871] : Compression: none
2025-07-01 13:16:05,880 [DEBUG][       Thread-605815][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:16:05,951 [DEBUG][       Thread-605815][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:16:05,952 [DEBUG][       Thread-605815][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:16:05,952 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:16:05,953 [DEBUG][       Thread-605815][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:16:05,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:16:06,010 [DEBUG][       Thread-605815][   transport.py][1871] : userauth is OK
2025-07-01 13:16:06,010 [DEBUG][       Thread-605815][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:16:06,011 [DEBUG][       Thread-605815][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:16:06,011 [DEBUG][       Thread-605815][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:16:06,011 [DEBUG][       Thread-605815][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:16:06,029 [ INFO][       Thread-605815][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:16:06,030 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:16:06,030 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:16:07,050 [DEBUG][       Thread-605815][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:16:07,051 [DEBUG][       Thread-605815][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:16:07,100 [DEBUG][       Thread-605815][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:16:07,100 [DEBUG][       Thread-605815][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:16:07,109 [DEBUG][       Thread-605815][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:16:07,118 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:16:07,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-07-01 13:16:07,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-07-01 13:16:07,136 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:16:07,136 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:16:07,136 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:16:07,145 [DEBUG][       Thread-605815][   transport.py][1871] : EOF in transport thread
2025-07-01 13:16:08,288 [DEBUG][Thread-605817 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:16:17,140 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:16:17,141 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:16:17,141 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:16:17,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-07-01 13:16:17,308 [DEBUG][Thread-605818 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:16:17,613 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 16, 3), 11.38, 45.99, 0.0, 29.24, 13.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:16:17,613 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:16:03
2025-07-01 13:16:17,700 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:16:17,705 [DEBUG][       Thread-605819][   transport.py][1871] : starting thread (client mode): 0x81d9f60
2025-07-01 13:16:17,705 [DEBUG][       Thread-605819][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:16:17,725 [DEBUG][       Thread-605819][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:16:17,725 [ INFO][       Thread-605819][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:16:17,728 [DEBUG][       Thread-605819][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:16:17,728 [DEBUG][       Thread-605819][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:16:17,728 [DEBUG][       Thread-605819][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:16:17,728 [DEBUG][       Thread-605819][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:16:17,728 [DEBUG][       Thread-605819][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:16:17,728 [DEBUG][       Thread-605819][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:16:17,729 [DEBUG][       Thread-605819][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:16:17,729 [DEBUG][       Thread-605819][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:16:17,729 [DEBUG][       Thread-605819][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:16:17,729 [DEBUG][       Thread-605819][   transport.py][1871] : client lang: <none>
2025-07-01 13:16:17,729 [DEBUG][       Thread-605819][   transport.py][1871] : server lang: <none>
2025-07-01 13:16:17,729 [DEBUG][       Thread-605819][   transport.py][1871] : kex follows: False
2025-07-01 13:16:17,729 [DEBUG][       Thread-605819][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:16:17,729 [DEBUG][       Thread-605819][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:16:17,729 [DEBUG][       Thread-605819][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:16:17,729 [DEBUG][       Thread-605819][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:16:17,729 [DEBUG][       Thread-605819][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:16:17,730 [DEBUG][       Thread-605819][   transport.py][1871] : Compression: none
2025-07-01 13:16:17,730 [DEBUG][       Thread-605819][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:16:17,747 [DEBUG][       Thread-605819][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:16:17,748 [DEBUG][       Thread-605819][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:16:17,748 [DEBUG][       Thread-605819][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:16:17,749 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:16:17,749 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:16:17,750 [DEBUG][       Thread-605819][   transport.py][1871] : userauth is OK
2025-07-01 13:16:17,774 [ INFO][       Thread-605819][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:16:17,774 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:16:18,363 [DEBUG][       Thread-605819][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:16:18,363 [DEBUG][       Thread-605819][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:16:18,405 [DEBUG][       Thread-605819][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:16:18,405 [DEBUG][       Thread-605819][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:16:18,408 [DEBUG][       Thread-605819][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:16:18,414 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:16:18,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:16:18,417 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:16:18,418 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:16:18,424 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:16:18,426 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:16:18,426 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:16:18,427 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:16:18,427 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.469039 -999.00  +13.40  34.32     51   +3.50 1 1 2 1 1   888    0 10.46 24.33 ----- 29.8 34.3 24.4 46.0 16.2 -24.1 15.3 -25.2 15.2 -23.9 16.1 -22.8
2025-07-01 13:16:18,427 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:16:18,427 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:16:18,427 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.469039
2025-07-01 13:16:18,427 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:16:18,428 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:16:18,428 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:16:18,428 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:16:18,428 [DEBUG][       Thread-605819][   transport.py][1871] : EOF in transport thread
2025-07-01 13:16:18,429 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:16:18,429 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:16:03', tmtdew=11.38, humidity=45.99, cloud=0.0, wind=29.24, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:15:24.970', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:16:18,510 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:16:18,522 [DEBUG][       Thread-605822][   transport.py][1871] : starting thread (client mode): 0x8156f20
2025-07-01 13:16:18,522 [DEBUG][       Thread-605822][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:16:18,537 [DEBUG][       Thread-605822][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:16:18,537 [ INFO][       Thread-605822][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:16:18,545 [DEBUG][       Thread-605822][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:16:18,545 [DEBUG][       Thread-605822][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:16:18,545 [DEBUG][       Thread-605822][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:16:18,545 [DEBUG][       Thread-605822][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:16:18,545 [DEBUG][       Thread-605822][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:16:18,545 [DEBUG][       Thread-605822][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:16:18,545 [DEBUG][       Thread-605822][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:16:18,545 [DEBUG][       Thread-605822][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:16:18,545 [DEBUG][       Thread-605822][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:16:18,545 [DEBUG][       Thread-605822][   transport.py][1871] : client lang: <none>
2025-07-01 13:16:18,545 [DEBUG][       Thread-605822][   transport.py][1871] : server lang: <none>
2025-07-01 13:16:18,546 [DEBUG][       Thread-605822][   transport.py][1871] : kex follows: False
2025-07-01 13:16:18,546 [DEBUG][       Thread-605822][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:16:18,546 [DEBUG][       Thread-605822][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:16:18,546 [DEBUG][       Thread-605822][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:16:18,546 [DEBUG][       Thread-605822][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:16:18,546 [DEBUG][       Thread-605822][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:16:18,546 [DEBUG][       Thread-605822][   transport.py][1871] : Compression: none
2025-07-01 13:16:18,546 [DEBUG][       Thread-605822][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:16:18,602 [DEBUG][       Thread-605822][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:16:18,603 [DEBUG][       Thread-605822][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:16:18,603 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:16:18,604 [DEBUG][       Thread-605822][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:16:18,605 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:16:18,660 [DEBUG][       Thread-605822][   transport.py][1871] : userauth is OK
2025-07-01 13:16:18,660 [DEBUG][       Thread-605822][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:16:18,660 [DEBUG][       Thread-605822][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:16:18,661 [DEBUG][       Thread-605822][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:16:18,661 [DEBUG][       Thread-605822][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:16:18,679 [ INFO][       Thread-605822][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:16:18,679 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:16:18,680 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:16:19,693 [DEBUG][       Thread-605822][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:16:19,693 [DEBUG][       Thread-605822][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:16:19,744 [DEBUG][       Thread-605822][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:16:19,744 [DEBUG][       Thread-605822][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:16:19,754 [DEBUG][       Thread-605822][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:16:19,763 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:16:19,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-07-01 13:16:19,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-07-01 13:16:19,781 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:16:19,781 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:16:19,781 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:16:19,789 [DEBUG][       Thread-605822][   transport.py][1871] : EOF in transport thread
2025-07-01 13:16:22,797 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:16:22,799 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:16:26,331 [DEBUG][Thread-605824 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:16:29,792 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:16:29,792 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:16:29,792 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:16:29,795 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:16:30,274 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 16, 3), 11.38, 45.99, 0.0, 29.24, 13.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:16:30,274 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:16:03
2025-07-01 13:16:30,360 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:16:30,366 [DEBUG][       Thread-605825][   transport.py][1871] : starting thread (client mode): 0x8157850
2025-07-01 13:16:30,366 [DEBUG][       Thread-605825][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:16:30,387 [DEBUG][       Thread-605825][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:16:30,387 [ INFO][       Thread-605825][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:16:30,391 [DEBUG][       Thread-605825][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:16:30,391 [DEBUG][       Thread-605825][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:16:30,391 [DEBUG][       Thread-605825][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:16:30,391 [DEBUG][       Thread-605825][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:16:30,391 [DEBUG][       Thread-605825][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:16:30,391 [DEBUG][       Thread-605825][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:16:30,391 [DEBUG][       Thread-605825][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:16:30,391 [DEBUG][       Thread-605825][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:16:30,391 [DEBUG][       Thread-605825][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:16:30,391 [DEBUG][       Thread-605825][   transport.py][1871] : client lang: <none>
2025-07-01 13:16:30,391 [DEBUG][       Thread-605825][   transport.py][1871] : server lang: <none>
2025-07-01 13:16:30,391 [DEBUG][       Thread-605825][   transport.py][1871] : kex follows: False
2025-07-01 13:16:30,391 [DEBUG][       Thread-605825][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:16:30,391 [DEBUG][       Thread-605825][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:16:30,391 [DEBUG][       Thread-605825][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:16:30,392 [DEBUG][       Thread-605825][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:16:30,392 [DEBUG][       Thread-605825][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:16:30,392 [DEBUG][       Thread-605825][   transport.py][1871] : Compression: none
2025-07-01 13:16:30,392 [DEBUG][       Thread-605825][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:16:30,409 [DEBUG][       Thread-605825][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:16:30,409 [DEBUG][       Thread-605825][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:16:30,410 [DEBUG][       Thread-605825][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:16:30,410 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:16:30,410 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:16:30,411 [DEBUG][       Thread-605825][   transport.py][1871] : userauth is OK
2025-07-01 13:16:30,425 [ INFO][       Thread-605825][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:16:30,425 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:16:31,029 [DEBUG][       Thread-605825][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:16:31,029 [DEBUG][       Thread-605825][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:16:31,073 [DEBUG][       Thread-605825][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:16:31,073 [DEBUG][       Thread-605825][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:16:31,076 [DEBUG][       Thread-605825][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:16:31,091 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:16:31,091 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:16:31,093 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:16:31,095 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:16:31,101 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:16:31,103 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:16:31,103 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:16:31,103 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:16:31,104 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.469387 -999.00  +13.50  34.88     50   +3.40 1 1 2 1 1   888    0 10.53 23.38 ----- 29.4 34.9 24.0 38.1 16.3 -24.5 15.4 -25.1 15.3 -23.9 16.1 -23.0
2025-07-01 13:16:31,104 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:16:31,104 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:16:31,104 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.469387
2025-07-01 13:16:31,104 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:16:31,105 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:16:31,105 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:16:31,105 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:16:31,105 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:16:31,105 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:16:03', tmtdew=11.38, humidity=45.99, cloud=0.0, wind=29.24, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:15:55.037', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:16:31,105 [DEBUG][       Thread-605825][   transport.py][1871] : EOF in transport thread
2025-07-01 13:16:31,192 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:16:31,204 [DEBUG][       Thread-605828][   transport.py][1871] : starting thread (client mode): 0x827db40
2025-07-01 13:16:31,204 [DEBUG][       Thread-605828][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:16:31,219 [DEBUG][       Thread-605828][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:16:31,219 [ INFO][       Thread-605828][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:16:31,227 [DEBUG][       Thread-605828][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:16:31,227 [DEBUG][       Thread-605828][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:16:31,227 [DEBUG][       Thread-605828][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:16:31,227 [DEBUG][       Thread-605828][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:16:31,227 [DEBUG][       Thread-605828][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:16:31,227 [DEBUG][       Thread-605828][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:16:31,227 [DEBUG][       Thread-605828][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:16:31,227 [DEBUG][       Thread-605828][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:16:31,227 [DEBUG][       Thread-605828][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:16:31,227 [DEBUG][       Thread-605828][   transport.py][1871] : client lang: <none>
2025-07-01 13:16:31,227 [DEBUG][       Thread-605828][   transport.py][1871] : server lang: <none>
2025-07-01 13:16:31,227 [DEBUG][       Thread-605828][   transport.py][1871] : kex follows: False
2025-07-01 13:16:31,227 [DEBUG][       Thread-605828][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:16:31,227 [DEBUG][       Thread-605828][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:16:31,228 [DEBUG][       Thread-605828][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:16:31,228 [DEBUG][       Thread-605828][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:16:31,228 [DEBUG][       Thread-605828][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:16:31,228 [DEBUG][       Thread-605828][   transport.py][1871] : Compression: none
2025-07-01 13:16:31,228 [DEBUG][       Thread-605828][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:16:31,286 [DEBUG][       Thread-605828][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:16:31,286 [DEBUG][       Thread-605828][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:16:31,287 [DEBUG][       Thread-605828][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:16:31,287 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:16:31,288 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:16:31,346 [DEBUG][       Thread-605828][   transport.py][1871] : userauth is OK
2025-07-01 13:16:31,347 [DEBUG][       Thread-605828][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:16:31,347 [DEBUG][       Thread-605828][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:16:31,347 [DEBUG][       Thread-605828][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:16:31,347 [DEBUG][       Thread-605828][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:16:31,365 [ INFO][       Thread-605828][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:16:31,366 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:16:31,366 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:16:31,568 [DEBUG][Thread-605830 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:16:32,494 [DEBUG][       Thread-605828][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:16:32,494 [DEBUG][       Thread-605828][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:16:32,544 [DEBUG][       Thread-605828][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:16:32,544 [DEBUG][       Thread-605828][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:16:32,553 [DEBUG][       Thread-605828][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:16:32,562 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:16:32,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')
2025-07-01 13:16:32,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-07-01 13:16:32,581 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:16:32,581 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:16:32,582 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:16:32,590 [DEBUG][       Thread-605828][   transport.py][1871] : EOF in transport thread
2025-07-01 13:16:35,371 [DEBUG][Thread-605831 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:16:42,592 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:16:42,593 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:16:42,593 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:16:42,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-07-01 13:16:43,076 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 16, 34), 11.52, 45.64, 0.0, 42.72, 13.47, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:16:43,076 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:16:34
2025-07-01 13:16:43,159 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:16:43,163 [DEBUG][       Thread-605832][   transport.py][1871] : starting thread (client mode): 0x8173850
2025-07-01 13:16:43,163 [DEBUG][       Thread-605832][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:16:43,184 [DEBUG][       Thread-605832][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:16:43,184 [ INFO][       Thread-605832][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:16:43,187 [DEBUG][       Thread-605832][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:16:43,188 [DEBUG][       Thread-605832][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:16:43,188 [DEBUG][       Thread-605832][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:16:43,188 [DEBUG][       Thread-605832][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:16:43,188 [DEBUG][       Thread-605832][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:16:43,188 [DEBUG][       Thread-605832][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:16:43,188 [DEBUG][       Thread-605832][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:16:43,188 [DEBUG][       Thread-605832][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:16:43,188 [DEBUG][       Thread-605832][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:16:43,188 [DEBUG][       Thread-605832][   transport.py][1871] : client lang: <none>
2025-07-01 13:16:43,188 [DEBUG][       Thread-605832][   transport.py][1871] : server lang: <none>
2025-07-01 13:16:43,188 [DEBUG][       Thread-605832][   transport.py][1871] : kex follows: False
2025-07-01 13:16:43,188 [DEBUG][       Thread-605832][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:16:43,188 [DEBUG][       Thread-605832][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:16:43,188 [DEBUG][       Thread-605832][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:16:43,188 [DEBUG][       Thread-605832][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:16:43,188 [DEBUG][       Thread-605832][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:16:43,188 [DEBUG][       Thread-605832][   transport.py][1871] : Compression: none
2025-07-01 13:16:43,188 [DEBUG][       Thread-605832][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:16:43,210 [DEBUG][       Thread-605832][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:16:43,211 [DEBUG][       Thread-605832][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:16:43,211 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:16:43,211 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:16:43,212 [DEBUG][       Thread-605832][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:16:43,212 [DEBUG][       Thread-605832][   transport.py][1871] : userauth is OK
2025-07-01 13:16:43,237 [ INFO][       Thread-605832][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:16:43,238 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:16:43,906 [DEBUG][       Thread-605832][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:16:43,906 [DEBUG][       Thread-605832][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:16:43,953 [DEBUG][       Thread-605832][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:16:43,953 [DEBUG][       Thread-605832][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:16:43,956 [DEBUG][       Thread-605832][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:16:43,967 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:16:43,968 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:16:43,969 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:16:43,971 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:16:43,976 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:16:43,978 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:16:43,978 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:16:43,979 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:16:43,979 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.469387 -999.00  +13.50  34.88     50   +3.40 1 1 2 1 1   888    0 10.53 23.38 ----- 29.4 34.9 24.0 38.1 16.3 -24.5 15.4 -25.1 15.3 -23.9 16.1 -23.0
2025-07-01 13:16:43,979 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:16:43,979 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:16:43,979 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.469387
2025-07-01 13:16:43,980 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:16:43,980 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:16:43,980 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:16:43,980 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:16:43,980 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:16:43,980 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:16:34', tmtdew=11.52, humidity=45.64, cloud=0.0, wind=42.72, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:15:55.037', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:16:43,981 [DEBUG][       Thread-605832][   transport.py][1871] : EOF in transport thread
2025-07-01 13:16:44,065 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:16:44,074 [DEBUG][       Thread-605835][   transport.py][1871] : starting thread (client mode): 0x818d570
2025-07-01 13:16:44,075 [DEBUG][       Thread-605835][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:16:44,090 [DEBUG][       Thread-605835][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:16:44,090 [ INFO][       Thread-605835][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:16:44,097 [DEBUG][       Thread-605835][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:16:44,097 [DEBUG][       Thread-605835][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:16:44,097 [DEBUG][       Thread-605835][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:16:44,097 [DEBUG][       Thread-605835][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:16:44,097 [DEBUG][       Thread-605835][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:16:44,097 [DEBUG][       Thread-605835][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:16:44,097 [DEBUG][       Thread-605835][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:16:44,097 [DEBUG][       Thread-605835][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:16:44,097 [DEBUG][       Thread-605835][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:16:44,097 [DEBUG][       Thread-605835][   transport.py][1871] : client lang: <none>
2025-07-01 13:16:44,097 [DEBUG][       Thread-605835][   transport.py][1871] : server lang: <none>
2025-07-01 13:16:44,097 [DEBUG][       Thread-605835][   transport.py][1871] : kex follows: False
2025-07-01 13:16:44,097 [DEBUG][       Thread-605835][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:16:44,097 [DEBUG][       Thread-605835][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:16:44,097 [DEBUG][       Thread-605835][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:16:44,097 [DEBUG][       Thread-605835][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:16:44,097 [DEBUG][       Thread-605835][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:16:44,097 [DEBUG][       Thread-605835][   transport.py][1871] : Compression: none
2025-07-01 13:16:44,097 [DEBUG][       Thread-605835][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:16:44,158 [DEBUG][       Thread-605835][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:16:44,158 [DEBUG][       Thread-605835][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:16:44,159 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:16:44,160 [DEBUG][       Thread-605835][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:16:44,160 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:16:44,215 [DEBUG][       Thread-605835][   transport.py][1871] : userauth is OK
2025-07-01 13:16:44,215 [DEBUG][       Thread-605835][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:16:44,216 [DEBUG][       Thread-605835][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:16:44,216 [DEBUG][       Thread-605835][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:16:44,216 [DEBUG][       Thread-605835][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:16:44,235 [ INFO][       Thread-605835][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:16:44,235 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:16:44,236 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:16:44,392 [DEBUG][Thread-605837 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:16:45,289 [DEBUG][       Thread-605835][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:16:45,290 [DEBUG][       Thread-605835][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:16:45,347 [DEBUG][       Thread-605835][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:16:45,347 [DEBUG][       Thread-605835][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:16:45,356 [DEBUG][       Thread-605835][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:16:45,366 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:16:45,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-07-01 13:16:45,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-07-01 13:16:45,384 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:16:45,384 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:16:45,385 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:16:45,393 [DEBUG][       Thread-605835][   transport.py][1871] : EOF in transport thread
2025-07-01 13:16:53,432 [DEBUG][Thread-605838 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:16:55,395 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:16:55,396 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:16:55,396 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:16:55,398 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:16:55,861 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 16, 34), 11.52, 45.64, 0.0, 42.72, 13.47, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:16:55,861 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:16:34
2025-07-01 13:16:55,948 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:16:55,953 [DEBUG][       Thread-605839][   transport.py][1871] : starting thread (client mode): 0x8173eb0
2025-07-01 13:16:55,953 [DEBUG][       Thread-605839][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:16:55,972 [DEBUG][       Thread-605839][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:16:55,972 [ INFO][       Thread-605839][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:16:55,974 [DEBUG][       Thread-605839][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:16:55,974 [DEBUG][       Thread-605839][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:16:55,974 [DEBUG][       Thread-605839][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:16:55,974 [DEBUG][       Thread-605839][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:16:55,974 [DEBUG][       Thread-605839][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:16:55,974 [DEBUG][       Thread-605839][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:16:55,974 [DEBUG][       Thread-605839][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:16:55,974 [DEBUG][       Thread-605839][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:16:55,974 [DEBUG][       Thread-605839][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:16:55,974 [DEBUG][       Thread-605839][   transport.py][1871] : client lang: <none>
2025-07-01 13:16:55,974 [DEBUG][       Thread-605839][   transport.py][1871] : server lang: <none>
2025-07-01 13:16:55,974 [DEBUG][       Thread-605839][   transport.py][1871] : kex follows: False
2025-07-01 13:16:55,974 [DEBUG][       Thread-605839][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:16:55,974 [DEBUG][       Thread-605839][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:16:55,974 [DEBUG][       Thread-605839][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:16:55,974 [DEBUG][       Thread-605839][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:16:55,974 [DEBUG][       Thread-605839][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:16:55,974 [DEBUG][       Thread-605839][   transport.py][1871] : Compression: none
2025-07-01 13:16:55,975 [DEBUG][       Thread-605839][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:16:55,991 [DEBUG][       Thread-605839][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:16:55,992 [DEBUG][       Thread-605839][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:16:55,992 [DEBUG][       Thread-605839][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:16:55,992 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:16:55,992 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:16:55,993 [DEBUG][       Thread-605839][   transport.py][1871] : userauth is OK
2025-07-01 13:16:56,018 [ INFO][       Thread-605839][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:16:56,019 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:16:56,571 [DEBUG][       Thread-605839][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:16:56,571 [DEBUG][       Thread-605839][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:16:56,613 [DEBUG][       Thread-605839][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:16:56,613 [DEBUG][       Thread-605839][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:16:56,617 [DEBUG][       Thread-605839][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:16:56,628 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:16:56,628 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:16:56,629 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:16:56,631 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:16:56,636 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:16:56,638 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:16:56,638 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:16:56,639 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:16:56,639 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.469734 -999.00  +13.60  30.30     50   +3.60 1 1 2 1 1   888    0 10.52 22.87 ----- 25.2 30.3 23.8 39.7 16.2 -24.1 15.3 -25.1 15.3 -23.9 16.2 -23.7
2025-07-01 13:16:56,639 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:16:56,639 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:16:56,639 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.469734
2025-07-01 13:16:56,640 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:16:56,640 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:16:56,640 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:16:56,640 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:16:56,640 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:16:56,640 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:16:34', tmtdew=11.52, humidity=45.64, cloud=0.0, wind=42.72, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:16:25.018', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:16:56,641 [DEBUG][       Thread-605839][   transport.py][1871] : EOF in transport thread
2025-07-01 13:16:56,724 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:16:56,735 [DEBUG][       Thread-605842][   transport.py][1871] : starting thread (client mode): 0x82b24a0
2025-07-01 13:16:56,735 [DEBUG][       Thread-605842][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:16:56,749 [DEBUG][       Thread-605842][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:16:56,749 [ INFO][       Thread-605842][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:16:56,758 [DEBUG][       Thread-605842][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:16:56,759 [DEBUG][       Thread-605842][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:16:56,759 [DEBUG][       Thread-605842][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:16:56,759 [DEBUG][       Thread-605842][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:16:56,759 [DEBUG][       Thread-605842][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:16:56,759 [DEBUG][       Thread-605842][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:16:56,759 [DEBUG][       Thread-605842][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:16:56,759 [DEBUG][       Thread-605842][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:16:56,759 [DEBUG][       Thread-605842][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:16:56,759 [DEBUG][       Thread-605842][   transport.py][1871] : client lang: <none>
2025-07-01 13:16:56,759 [DEBUG][       Thread-605842][   transport.py][1871] : server lang: <none>
2025-07-01 13:16:56,759 [DEBUG][       Thread-605842][   transport.py][1871] : kex follows: False
2025-07-01 13:16:56,759 [DEBUG][       Thread-605842][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:16:56,759 [DEBUG][       Thread-605842][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:16:56,759 [DEBUG][       Thread-605842][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:16:56,759 [DEBUG][       Thread-605842][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:16:56,759 [DEBUG][       Thread-605842][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:16:56,759 [DEBUG][       Thread-605842][   transport.py][1871] : Compression: none
2025-07-01 13:16:56,759 [DEBUG][       Thread-605842][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:16:56,822 [DEBUG][       Thread-605842][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:16:56,823 [DEBUG][       Thread-605842][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:16:56,823 [DEBUG][       Thread-605842][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:16:56,823 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:16:56,824 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:16:56,879 [DEBUG][       Thread-605842][   transport.py][1871] : userauth is OK
2025-07-01 13:16:56,879 [DEBUG][       Thread-605842][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:16:56,879 [DEBUG][       Thread-605842][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:16:56,879 [DEBUG][       Thread-605842][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:16:56,879 [DEBUG][       Thread-605842][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:16:56,898 [ INFO][       Thread-605842][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:16:56,898 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:16:56,898 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:16:57,903 [DEBUG][       Thread-605842][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:16:57,904 [DEBUG][       Thread-605842][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:16:57,952 [DEBUG][       Thread-605842][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:16:57,952 [DEBUG][       Thread-605842][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:16:57,961 [DEBUG][       Thread-605842][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:16:57,971 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:16:57,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-07-01 13:16:57,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-07-01 13:16:57,989 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:16:57,989 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:16:57,989 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:16:57,997 [DEBUG][       Thread-605842][   transport.py][1871] : EOF in transport thread
2025-07-01 13:17:02,455 [DEBUG][Thread-605844 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:17:07,996 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:17:07,996 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:17:07,996 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:17:07,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-07-01 13:17:08,513 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 16, 34), 11.52, 45.64, 0.0, 42.72, 13.47, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:17:08,513 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:16:34
2025-07-01 13:17:08,605 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:17:08,609 [DEBUG][       Thread-605845][   transport.py][1871] : starting thread (client mode): 0x8172290
2025-07-01 13:17:08,609 [DEBUG][       Thread-605845][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:17:08,630 [DEBUG][       Thread-605845][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:17:08,630 [ INFO][       Thread-605845][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:17:08,632 [DEBUG][       Thread-605845][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:17:08,633 [DEBUG][       Thread-605845][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:17:08,633 [DEBUG][       Thread-605845][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:17:08,633 [DEBUG][       Thread-605845][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:17:08,633 [DEBUG][       Thread-605845][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:17:08,633 [DEBUG][       Thread-605845][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:17:08,633 [DEBUG][       Thread-605845][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:17:08,633 [DEBUG][       Thread-605845][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:17:08,633 [DEBUG][       Thread-605845][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:17:08,633 [DEBUG][       Thread-605845][   transport.py][1871] : client lang: <none>
2025-07-01 13:17:08,633 [DEBUG][       Thread-605845][   transport.py][1871] : server lang: <none>
2025-07-01 13:17:08,633 [DEBUG][       Thread-605845][   transport.py][1871] : kex follows: False
2025-07-01 13:17:08,633 [DEBUG][       Thread-605845][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:17:08,633 [DEBUG][       Thread-605845][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:17:08,633 [DEBUG][       Thread-605845][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:17:08,633 [DEBUG][       Thread-605845][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:17:08,633 [DEBUG][       Thread-605845][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:17:08,633 [DEBUG][       Thread-605845][   transport.py][1871] : Compression: none
2025-07-01 13:17:08,633 [DEBUG][       Thread-605845][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:17:08,648 [DEBUG][       Thread-605845][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:17:08,648 [DEBUG][       Thread-605845][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:17:08,648 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:17:08,648 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:17:08,648 [DEBUG][       Thread-605845][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:17:08,648 [DEBUG][       Thread-605845][   transport.py][1871] : userauth is OK
2025-07-01 13:17:08,661 [ INFO][       Thread-605845][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:17:08,661 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:17:09,294 [DEBUG][       Thread-605845][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:17:09,294 [DEBUG][       Thread-605845][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:17:09,337 [DEBUG][       Thread-605845][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:17:09,337 [DEBUG][       Thread-605845][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:17:09,340 [DEBUG][       Thread-605845][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:17:09,353 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:17:09,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:17:09,355 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:17:09,357 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:17:09,362 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:17:09,364 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:17:09,365 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:17:09,365 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:17:09,365 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.469734 -999.00  +13.60  30.30     50   +3.60 1 1 2 1 1   888    0 10.52 22.87 ----- 25.2 30.3 23.8 39.7 16.2 -24.1 15.3 -25.1 15.3 -23.9 16.2 -23.7
2025-07-01 13:17:09,365 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:17:09,366 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:17:09,366 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.469734
2025-07-01 13:17:09,366 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:17:09,367 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:17:09,367 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:17:09,367 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:17:09,367 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:17:09,367 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:16:34', tmtdew=11.52, humidity=45.64, cloud=0.0, wind=42.72, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:16:25.018', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:17:09,367 [DEBUG][       Thread-605845][   transport.py][1871] : EOF in transport thread
2025-07-01 13:17:09,452 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:17:09,461 [DEBUG][       Thread-605848][   transport.py][1871] : starting thread (client mode): 0x818e680
2025-07-01 13:17:09,461 [DEBUG][       Thread-605848][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:17:09,476 [DEBUG][       Thread-605848][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:17:09,476 [ INFO][       Thread-605848][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:17:09,484 [DEBUG][       Thread-605848][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:17:09,484 [DEBUG][       Thread-605848][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:17:09,484 [DEBUG][       Thread-605848][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:17:09,484 [DEBUG][       Thread-605848][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:17:09,484 [DEBUG][       Thread-605848][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:17:09,484 [DEBUG][       Thread-605848][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:17:09,484 [DEBUG][       Thread-605848][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:17:09,484 [DEBUG][       Thread-605848][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:17:09,484 [DEBUG][       Thread-605848][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:17:09,484 [DEBUG][       Thread-605848][   transport.py][1871] : client lang: <none>
2025-07-01 13:17:09,484 [DEBUG][       Thread-605848][   transport.py][1871] : server lang: <none>
2025-07-01 13:17:09,484 [DEBUG][       Thread-605848][   transport.py][1871] : kex follows: False
2025-07-01 13:17:09,484 [DEBUG][       Thread-605848][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:17:09,484 [DEBUG][       Thread-605848][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:17:09,484 [DEBUG][       Thread-605848][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:17:09,485 [DEBUG][       Thread-605848][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:17:09,485 [DEBUG][       Thread-605848][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:17:09,485 [DEBUG][       Thread-605848][   transport.py][1871] : Compression: none
2025-07-01 13:17:09,485 [DEBUG][       Thread-605848][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:17:09,542 [DEBUG][       Thread-605848][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:17:09,543 [DEBUG][       Thread-605848][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:17:09,543 [DEBUG][       Thread-605848][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:17:09,544 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:17:09,544 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:17:09,603 [DEBUG][       Thread-605848][   transport.py][1871] : userauth is OK
2025-07-01 13:17:09,603 [DEBUG][       Thread-605848][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:17:09,603 [DEBUG][       Thread-605848][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:17:09,603 [DEBUG][       Thread-605848][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:17:09,603 [DEBUG][       Thread-605848][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:17:09,622 [ INFO][       Thread-605848][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:17:09,622 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:17:09,623 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:17:10,609 [DEBUG][       Thread-605848][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:17:10,609 [DEBUG][       Thread-605848][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:17:10,660 [DEBUG][       Thread-605848][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:17:10,660 [DEBUG][       Thread-605848][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:17:10,669 [DEBUG][       Thread-605848][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:17:10,684 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:17:10,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')
2025-07-01 13:17:10,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-07-01 13:17:10,710 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:17:10,710 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:17:10,711 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:17:10,719 [DEBUG][       Thread-605848][   transport.py][1871] : EOF in transport thread
2025-07-01 13:17:11,476 [DEBUG][Thread-605850 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:17:20,501 [DEBUG][Thread-605851 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:17:20,721 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:17:20,722 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:17:20,722 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:17:20,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-07-01 13:17:21,199 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 17, 6), 11.5, 45.7, 0.0, 43.62, 13.46, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:17:21,200 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:17:06
2025-07-01 13:17:21,285 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:17:21,291 [DEBUG][       Thread-605852][   transport.py][1871] : starting thread (client mode): 0x81a4ca0
2025-07-01 13:17:21,291 [DEBUG][       Thread-605852][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:17:21,311 [DEBUG][       Thread-605852][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:17:21,311 [ INFO][       Thread-605852][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:17:21,314 [DEBUG][       Thread-605852][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:17:21,314 [DEBUG][       Thread-605852][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:17:21,314 [DEBUG][       Thread-605852][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:17:21,314 [DEBUG][       Thread-605852][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:17:21,314 [DEBUG][       Thread-605852][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:17:21,315 [DEBUG][       Thread-605852][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:17:21,315 [DEBUG][       Thread-605852][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:17:21,315 [DEBUG][       Thread-605852][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:17:21,315 [DEBUG][       Thread-605852][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:17:21,315 [DEBUG][       Thread-605852][   transport.py][1871] : client lang: <none>
2025-07-01 13:17:21,315 [DEBUG][       Thread-605852][   transport.py][1871] : server lang: <none>
2025-07-01 13:17:21,315 [DEBUG][       Thread-605852][   transport.py][1871] : kex follows: False
2025-07-01 13:17:21,315 [DEBUG][       Thread-605852][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:17:21,315 [DEBUG][       Thread-605852][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:17:21,315 [DEBUG][       Thread-605852][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:17:21,315 [DEBUG][       Thread-605852][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:17:21,315 [DEBUG][       Thread-605852][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:17:21,315 [DEBUG][       Thread-605852][   transport.py][1871] : Compression: none
2025-07-01 13:17:21,315 [DEBUG][       Thread-605852][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:17:21,331 [DEBUG][       Thread-605852][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:17:21,331 [DEBUG][       Thread-605852][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:17:21,332 [DEBUG][       Thread-605852][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:17:21,332 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:17:21,332 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:17:21,333 [DEBUG][       Thread-605852][   transport.py][1871] : userauth is OK
2025-07-01 13:17:21,358 [ INFO][       Thread-605852][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:17:21,358 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:17:22,022 [DEBUG][       Thread-605852][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:17:22,023 [DEBUG][       Thread-605852][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:17:22,065 [DEBUG][       Thread-605852][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:17:22,065 [DEBUG][       Thread-605852][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:17:22,069 [DEBUG][       Thread-605852][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:17:22,081 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:17:22,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:17:22,084 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:17:22,086 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:17:22,092 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:17:22,093 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:17:22,094 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:17:22,094 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:17:22,094 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.469734 -999.00  +13.60  30.30     50   +3.60 1 1 2 1 1   888    0 10.52 22.87 ----- 25.2 30.3 23.8 39.7 16.2 -24.1 15.3 -25.1 15.3 -23.9 16.2 -23.7
2025-07-01 13:17:22,094 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:17:22,095 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:17:22,095 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.469734
2025-07-01 13:17:22,095 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:17:22,096 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:17:22,096 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:17:22,096 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:17:22,096 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:17:22,096 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:17:06', tmtdew=11.5, humidity=45.7, cloud=0.0, wind=43.62, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:16:25.018', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:17:22,097 [DEBUG][       Thread-605852][   transport.py][1871] : EOF in transport thread
2025-07-01 13:17:22,189 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:17:22,199 [DEBUG][       Thread-605855][   transport.py][1871] : starting thread (client mode): 0x8393c40
2025-07-01 13:17:22,199 [DEBUG][       Thread-605855][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:17:22,215 [DEBUG][       Thread-605855][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:17:22,215 [ INFO][       Thread-605855][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:17:22,222 [DEBUG][       Thread-605855][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:17:22,223 [DEBUG][       Thread-605855][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:17:22,223 [DEBUG][       Thread-605855][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:17:22,223 [DEBUG][       Thread-605855][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:17:22,223 [DEBUG][       Thread-605855][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:17:22,223 [DEBUG][       Thread-605855][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:17:22,223 [DEBUG][       Thread-605855][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:17:22,223 [DEBUG][       Thread-605855][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:17:22,223 [DEBUG][       Thread-605855][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:17:22,223 [DEBUG][       Thread-605855][   transport.py][1871] : client lang: <none>
2025-07-01 13:17:22,223 [DEBUG][       Thread-605855][   transport.py][1871] : server lang: <none>
2025-07-01 13:17:22,223 [DEBUG][       Thread-605855][   transport.py][1871] : kex follows: False
2025-07-01 13:17:22,223 [DEBUG][       Thread-605855][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:17:22,223 [DEBUG][       Thread-605855][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:17:22,223 [DEBUG][       Thread-605855][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:17:22,223 [DEBUG][       Thread-605855][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:17:22,223 [DEBUG][       Thread-605855][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:17:22,223 [DEBUG][       Thread-605855][   transport.py][1871] : Compression: none
2025-07-01 13:17:22,223 [DEBUG][       Thread-605855][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:17:22,282 [DEBUG][       Thread-605855][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:17:22,283 [DEBUG][       Thread-605855][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:17:22,283 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:17:22,284 [DEBUG][       Thread-605855][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:17:22,285 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:17:22,339 [DEBUG][       Thread-605855][   transport.py][1871] : userauth is OK
2025-07-01 13:17:22,339 [DEBUG][       Thread-605855][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:17:22,339 [DEBUG][       Thread-605855][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:17:22,339 [DEBUG][       Thread-605855][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:17:22,339 [DEBUG][       Thread-605855][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:17:22,358 [ INFO][       Thread-605855][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:17:22,359 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:17:22,359 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:17:22,935 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:17:22,937 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:17:23,397 [DEBUG][       Thread-605855][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:17:23,397 [DEBUG][       Thread-605855][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:17:23,448 [DEBUG][       Thread-605855][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:17:23,448 [DEBUG][       Thread-605855][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:17:23,457 [DEBUG][       Thread-605855][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:17:23,466 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:17:23,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-07-01 13:17:23,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-07-01 13:17:23,485 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:17:23,485 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:17:23,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:17:23,493 [DEBUG][       Thread-605855][   transport.py][1871] : EOF in transport thread
2025-07-01 13:17:29,520 [DEBUG][Thread-605857 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:17:31,612 [DEBUG][Thread-605858 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:17:33,496 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:17:33,496 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:17:33,496 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:17:33,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-07-01 13:17:33,959 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 17, 6), 11.5, 45.7, 0.0, 43.62, 13.46, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:17:33,959 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:17:06
2025-07-01 13:17:34,043 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:17:34,048 [DEBUG][       Thread-605859][   transport.py][1871] : starting thread (client mode): 0x75abdc0
2025-07-01 13:17:34,048 [DEBUG][       Thread-605859][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:17:34,068 [DEBUG][       Thread-605859][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:17:34,068 [ INFO][       Thread-605859][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:17:34,072 [DEBUG][       Thread-605859][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:17:34,072 [DEBUG][       Thread-605859][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:17:34,072 [DEBUG][       Thread-605859][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:17:34,072 [DEBUG][       Thread-605859][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:17:34,072 [DEBUG][       Thread-605859][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:17:34,072 [DEBUG][       Thread-605859][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:17:34,072 [DEBUG][       Thread-605859][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:17:34,072 [DEBUG][       Thread-605859][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:17:34,072 [DEBUG][       Thread-605859][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:17:34,072 [DEBUG][       Thread-605859][   transport.py][1871] : client lang: <none>
2025-07-01 13:17:34,072 [DEBUG][       Thread-605859][   transport.py][1871] : server lang: <none>
2025-07-01 13:17:34,072 [DEBUG][       Thread-605859][   transport.py][1871] : kex follows: False
2025-07-01 13:17:34,072 [DEBUG][       Thread-605859][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:17:34,072 [DEBUG][       Thread-605859][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:17:34,072 [DEBUG][       Thread-605859][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:17:34,072 [DEBUG][       Thread-605859][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:17:34,072 [DEBUG][       Thread-605859][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:17:34,072 [DEBUG][       Thread-605859][   transport.py][1871] : Compression: none
2025-07-01 13:17:34,072 [DEBUG][       Thread-605859][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:17:34,089 [DEBUG][       Thread-605859][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:17:34,089 [DEBUG][       Thread-605859][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:17:34,090 [DEBUG][       Thread-605859][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:17:34,090 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:17:34,090 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:17:34,091 [DEBUG][       Thread-605859][   transport.py][1871] : userauth is OK
2025-07-01 13:17:34,104 [ INFO][       Thread-605859][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:17:34,105 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:17:34,759 [DEBUG][       Thread-605859][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:17:34,760 [DEBUG][       Thread-605859][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:17:34,801 [DEBUG][       Thread-605859][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:17:34,801 [DEBUG][       Thread-605859][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:17:34,805 [DEBUG][       Thread-605859][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:17:34,817 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:17:34,817 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:17:34,819 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:17:34,821 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:17:34,827 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:17:34,829 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:17:34,829 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:17:34,829 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:17:34,830 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.470428 -999.00  +13.20  32.98     50   +3.20 1 1 2 1 1   888    0 10.45 21.59 ----- 42.7 33.0 8.3 45.9 16.2 -24.4 15.3 -25.2 15.2 -25.3 16.1 -24.3
2025-07-01 13:17:34,830 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:17:34,830 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:17:34,830 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.470428
2025-07-01 13:17:34,830 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:17:34,831 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:17:34,831 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:17:34,831 [DEBUG][       Thread-605859][   transport.py][1871] : EOF in transport thread
2025-07-01 13:17:34,831 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:17:34,832 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:17:34,832 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:17:06', tmtdew=11.5, humidity=45.7, cloud=0.0, wind=43.62, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:17:24.979', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:17:34,915 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:17:34,927 [DEBUG][       Thread-605862][   transport.py][1871] : starting thread (client mode): 0x8104f40
2025-07-01 13:17:34,927 [DEBUG][       Thread-605862][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:17:34,948 [DEBUG][       Thread-605862][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:17:34,948 [ INFO][       Thread-605862][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:17:34,955 [DEBUG][       Thread-605862][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:17:34,955 [DEBUG][       Thread-605862][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:17:34,955 [DEBUG][       Thread-605862][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:17:34,955 [DEBUG][       Thread-605862][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:17:34,955 [DEBUG][       Thread-605862][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:17:34,956 [DEBUG][       Thread-605862][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:17:34,956 [DEBUG][       Thread-605862][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:17:34,956 [DEBUG][       Thread-605862][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:17:34,956 [DEBUG][       Thread-605862][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:17:34,956 [DEBUG][       Thread-605862][   transport.py][1871] : client lang: <none>
2025-07-01 13:17:34,956 [DEBUG][       Thread-605862][   transport.py][1871] : server lang: <none>
2025-07-01 13:17:34,956 [DEBUG][       Thread-605862][   transport.py][1871] : kex follows: False
2025-07-01 13:17:34,956 [DEBUG][       Thread-605862][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:17:34,956 [DEBUG][       Thread-605862][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:17:34,956 [DEBUG][       Thread-605862][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:17:34,956 [DEBUG][       Thread-605862][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:17:34,956 [DEBUG][       Thread-605862][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:17:34,956 [DEBUG][       Thread-605862][   transport.py][1871] : Compression: none
2025-07-01 13:17:34,956 [DEBUG][       Thread-605862][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:17:35,015 [DEBUG][       Thread-605862][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:17:35,015 [DEBUG][       Thread-605862][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:17:35,016 [DEBUG][       Thread-605862][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:17:35,016 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:17:35,017 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:17:35,075 [DEBUG][       Thread-605862][   transport.py][1871] : userauth is OK
2025-07-01 13:17:35,075 [DEBUG][       Thread-605862][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:17:35,075 [DEBUG][       Thread-605862][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:17:35,076 [DEBUG][       Thread-605862][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:17:35,076 [DEBUG][       Thread-605862][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:17:35,095 [ INFO][       Thread-605862][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:17:35,095 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:17:35,096 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:17:36,092 [DEBUG][       Thread-605862][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:17:36,093 [DEBUG][       Thread-605862][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:17:36,145 [DEBUG][       Thread-605862][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:17:36,145 [DEBUG][       Thread-605862][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:17:36,155 [DEBUG][       Thread-605862][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:17:36,164 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:17:36,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-07-01 13:17:36,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-07-01 13:17:36,183 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:17:36,183 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:17:36,184 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:17:36,191 [DEBUG][       Thread-605862][   transport.py][1871] : EOF in transport thread
2025-07-01 13:17:38,554 [DEBUG][Thread-605864 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:17:46,194 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:17:46,194 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:17:46,194 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:17:46,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-07-01 13:17:46,673 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 17, 38), 11.45, 45.65, 0.0, 43.47, 13.31, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:17:46,673 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:17:38
2025-07-01 13:17:46,757 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:17:46,761 [DEBUG][       Thread-605865][   transport.py][1871] : starting thread (client mode): 0x75abdc0
2025-07-01 13:17:46,761 [DEBUG][       Thread-605865][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:17:46,774 [DEBUG][       Thread-605865][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:17:46,774 [ INFO][       Thread-605865][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:17:46,777 [DEBUG][       Thread-605865][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:17:46,777 [DEBUG][       Thread-605865][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:17:46,777 [DEBUG][       Thread-605865][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:17:46,777 [DEBUG][       Thread-605865][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:17:46,777 [DEBUG][       Thread-605865][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:17:46,777 [DEBUG][       Thread-605865][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:17:46,777 [DEBUG][       Thread-605865][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:17:46,777 [DEBUG][       Thread-605865][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:17:46,777 [DEBUG][       Thread-605865][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:17:46,777 [DEBUG][       Thread-605865][   transport.py][1871] : client lang: <none>
2025-07-01 13:17:46,777 [DEBUG][       Thread-605865][   transport.py][1871] : server lang: <none>
2025-07-01 13:17:46,777 [DEBUG][       Thread-605865][   transport.py][1871] : kex follows: False
2025-07-01 13:17:46,777 [DEBUG][       Thread-605865][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:17:46,777 [DEBUG][       Thread-605865][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:17:46,777 [DEBUG][       Thread-605865][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:17:46,777 [DEBUG][       Thread-605865][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:17:46,777 [DEBUG][       Thread-605865][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:17:46,777 [DEBUG][       Thread-605865][   transport.py][1871] : Compression: none
2025-07-01 13:17:46,777 [DEBUG][       Thread-605865][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:17:46,791 [DEBUG][       Thread-605865][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:17:46,792 [DEBUG][       Thread-605865][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:17:46,792 [DEBUG][       Thread-605865][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:17:46,793 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:17:46,793 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:17:46,794 [DEBUG][       Thread-605865][   transport.py][1871] : userauth is OK
2025-07-01 13:17:46,818 [ INFO][       Thread-605865][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:17:46,819 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:17:47,445 [DEBUG][       Thread-605865][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:17:47,446 [DEBUG][       Thread-605865][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:17:47,489 [DEBUG][       Thread-605865][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:17:47,489 [DEBUG][       Thread-605865][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:17:47,492 [DEBUG][       Thread-605865][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:17:47,500 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:17:47,500 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:17:47,503 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:17:47,504 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:17:47,510 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:17:47,513 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:17:47,513 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:17:47,513 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:17:47,514 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.470428 -999.00  +13.20  32.98     50   +3.20 1 1 2 1 1   888    0 10.45 21.59 ----- 42.7 33.0 8.3 45.9 16.2 -24.4 15.3 -25.2 15.2 -25.3 16.1 -24.3
2025-07-01 13:17:47,514 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:17:47,514 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:17:47,514 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.470428
2025-07-01 13:17:47,514 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:17:47,515 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:17:47,515 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:17:47,515 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:17:47,515 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:17:47,515 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:17:38', tmtdew=11.45, humidity=45.65, cloud=0.0, wind=43.47, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:17:24.979', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:17:47,515 [DEBUG][       Thread-605865][   transport.py][1871] : EOF in transport thread
2025-07-01 13:17:47,573 [DEBUG][Thread-605868 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:17:47,600 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:17:47,609 [DEBUG][       Thread-605869][   transport.py][1871] : starting thread (client mode): 0x8393c40
2025-07-01 13:17:47,609 [DEBUG][       Thread-605869][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:17:47,624 [DEBUG][       Thread-605869][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:17:47,624 [ INFO][       Thread-605869][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:17:47,632 [DEBUG][       Thread-605869][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:17:47,632 [DEBUG][       Thread-605869][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:17:47,632 [DEBUG][       Thread-605869][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:17:47,632 [DEBUG][       Thread-605869][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:17:47,632 [DEBUG][       Thread-605869][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:17:47,632 [DEBUG][       Thread-605869][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:17:47,632 [DEBUG][       Thread-605869][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:17:47,632 [DEBUG][       Thread-605869][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:17:47,632 [DEBUG][       Thread-605869][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:17:47,632 [DEBUG][       Thread-605869][   transport.py][1871] : client lang: <none>
2025-07-01 13:17:47,632 [DEBUG][       Thread-605869][   transport.py][1871] : server lang: <none>
2025-07-01 13:17:47,633 [DEBUG][       Thread-605869][   transport.py][1871] : kex follows: False
2025-07-01 13:17:47,633 [DEBUG][       Thread-605869][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:17:47,633 [DEBUG][       Thread-605869][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:17:47,633 [DEBUG][       Thread-605869][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:17:47,633 [DEBUG][       Thread-605869][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:17:47,633 [DEBUG][       Thread-605869][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:17:47,633 [DEBUG][       Thread-605869][   transport.py][1871] : Compression: none
2025-07-01 13:17:47,633 [DEBUG][       Thread-605869][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:17:47,696 [DEBUG][       Thread-605869][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:17:47,696 [DEBUG][       Thread-605869][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:17:47,697 [DEBUG][       Thread-605869][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:17:47,697 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:17:47,698 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:17:47,758 [DEBUG][       Thread-605869][   transport.py][1871] : userauth is OK
2025-07-01 13:17:47,759 [DEBUG][       Thread-605869][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:17:47,759 [DEBUG][       Thread-605869][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:17:47,759 [DEBUG][       Thread-605869][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:17:47,759 [DEBUG][       Thread-605869][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:17:47,779 [ INFO][       Thread-605869][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:17:47,780 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:17:47,780 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:17:48,832 [DEBUG][       Thread-605869][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:17:48,832 [DEBUG][       Thread-605869][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:17:48,884 [DEBUG][       Thread-605869][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:17:48,884 [DEBUG][       Thread-605869][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:17:48,893 [DEBUG][       Thread-605869][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:17:48,902 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:17:48,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-07-01 13:17:48,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-07-01 13:17:48,926 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:17:48,926 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:17:48,927 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:17:48,936 [DEBUG][       Thread-605869][   transport.py][1871] : EOF in transport thread
2025-07-01 13:17:56,599 [DEBUG][Thread-605871 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:17:58,937 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:17:58,938 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:17:58,938 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:17:58,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-07-01 13:17:59,425 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 17, 38), 11.45, 45.65, 0.0, 43.47, 13.31, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:17:59,425 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:17:38
2025-07-01 13:17:59,509 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:17:59,514 [DEBUG][       Thread-605872][   transport.py][1871] : starting thread (client mode): 0x75a88e0
2025-07-01 13:17:59,514 [DEBUG][       Thread-605872][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:17:59,534 [DEBUG][       Thread-605872][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:17:59,534 [ INFO][       Thread-605872][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:17:59,535 [DEBUG][       Thread-605872][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:17:59,535 [DEBUG][       Thread-605872][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:17:59,535 [DEBUG][       Thread-605872][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:17:59,535 [DEBUG][       Thread-605872][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:17:59,535 [DEBUG][       Thread-605872][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:17:59,535 [DEBUG][       Thread-605872][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:17:59,535 [DEBUG][       Thread-605872][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:17:59,535 [DEBUG][       Thread-605872][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:17:59,535 [DEBUG][       Thread-605872][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:17:59,536 [DEBUG][       Thread-605872][   transport.py][1871] : client lang: <none>
2025-07-01 13:17:59,536 [DEBUG][       Thread-605872][   transport.py][1871] : server lang: <none>
2025-07-01 13:17:59,536 [DEBUG][       Thread-605872][   transport.py][1871] : kex follows: False
2025-07-01 13:17:59,536 [DEBUG][       Thread-605872][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:17:59,536 [DEBUG][       Thread-605872][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:17:59,536 [DEBUG][       Thread-605872][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:17:59,536 [DEBUG][       Thread-605872][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:17:59,536 [DEBUG][       Thread-605872][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:17:59,536 [DEBUG][       Thread-605872][   transport.py][1871] : Compression: none
2025-07-01 13:17:59,536 [DEBUG][       Thread-605872][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:17:59,544 [DEBUG][       Thread-605872][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:17:59,544 [DEBUG][       Thread-605872][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:17:59,545 [DEBUG][       Thread-605872][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:17:59,545 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:17:59,545 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:17:59,546 [DEBUG][       Thread-605872][   transport.py][1871] : userauth is OK
2025-07-01 13:17:59,559 [ INFO][       Thread-605872][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:17:59,559 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:18:00,190 [DEBUG][       Thread-605872][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:18:00,190 [DEBUG][       Thread-605872][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:18:00,233 [DEBUG][       Thread-605872][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:18:00,233 [DEBUG][       Thread-605872][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:18:00,236 [DEBUG][       Thread-605872][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:18:00,248 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:18:00,248 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:18:00,250 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:18:00,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:18:00,257 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:18:00,258 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:18:00,259 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:18:00,259 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:18:00,260 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.470428 -999.00  +13.20  32.98     50   +3.20 1 1 2 1 1   888    0 10.45 21.59 ----- 42.7 33.0 8.3 45.9 16.2 -24.4 15.3 -25.2 15.2 -25.3 16.1 -24.3
2025-07-01 13:18:00,260 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:18:00,260 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:18:00,260 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.470428
2025-07-01 13:18:00,260 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:18:00,261 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:18:00,261 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:18:00,261 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:18:00,261 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:18:00,261 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:17:38', tmtdew=11.45, humidity=45.65, cloud=0.0, wind=43.47, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:17:24.979', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:18:00,261 [DEBUG][       Thread-605872][   transport.py][1871] : EOF in transport thread
2025-07-01 13:18:00,345 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:18:00,359 [DEBUG][       Thread-605875][   transport.py][1871] : starting thread (client mode): 0x81da380
2025-07-01 13:18:00,359 [DEBUG][       Thread-605875][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:18:00,375 [DEBUG][       Thread-605875][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:18:00,375 [ INFO][       Thread-605875][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:18:00,383 [DEBUG][       Thread-605875][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:18:00,383 [DEBUG][       Thread-605875][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:18:00,383 [DEBUG][       Thread-605875][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:18:00,383 [DEBUG][       Thread-605875][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:18:00,384 [DEBUG][       Thread-605875][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:18:00,384 [DEBUG][       Thread-605875][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:18:00,384 [DEBUG][       Thread-605875][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:18:00,384 [DEBUG][       Thread-605875][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:18:00,384 [DEBUG][       Thread-605875][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:18:00,384 [DEBUG][       Thread-605875][   transport.py][1871] : client lang: <none>
2025-07-01 13:18:00,384 [DEBUG][       Thread-605875][   transport.py][1871] : server lang: <none>
2025-07-01 13:18:00,384 [DEBUG][       Thread-605875][   transport.py][1871] : kex follows: False
2025-07-01 13:18:00,384 [DEBUG][       Thread-605875][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:18:00,384 [DEBUG][       Thread-605875][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:18:00,384 [DEBUG][       Thread-605875][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:18:00,384 [DEBUG][       Thread-605875][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:18:00,384 [DEBUG][       Thread-605875][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:18:00,384 [DEBUG][       Thread-605875][   transport.py][1871] : Compression: none
2025-07-01 13:18:00,384 [DEBUG][       Thread-605875][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:18:00,446 [DEBUG][       Thread-605875][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:18:00,446 [DEBUG][       Thread-605875][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:18:00,447 [DEBUG][       Thread-605875][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:18:00,447 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:18:00,448 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:18:00,510 [DEBUG][       Thread-605875][   transport.py][1871] : userauth is OK
2025-07-01 13:18:00,511 [DEBUG][       Thread-605875][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:18:00,511 [DEBUG][       Thread-605875][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:18:00,511 [DEBUG][       Thread-605875][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:18:00,511 [DEBUG][       Thread-605875][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:18:00,530 [ INFO][       Thread-605875][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:18:00,530 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:18:00,531 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:18:01,579 [DEBUG][       Thread-605875][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:18:01,580 [DEBUG][       Thread-605875][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:18:01,627 [DEBUG][       Thread-605875][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:18:01,628 [DEBUG][       Thread-605875][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:18:01,637 [DEBUG][       Thread-605875][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:18:01,645 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:18:01,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')
2025-07-01 13:18: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-07-01 13:18:01,664 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:18:01,664 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:18:01,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:18:01,672 [DEBUG][       Thread-605875][   transport.py][1871] : EOF in transport thread
2025-07-01 13:18:05,621 [DEBUG][Thread-605877 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:18:11,672 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:18:11,672 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:18:11,672 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:18:11,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-07-01 13:18:12,198 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 17, 38), 11.45, 45.65, 0.0, 43.47, 13.31, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:18:12,198 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:17:38
2025-07-01 13:18:12,290 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:18:12,294 [DEBUG][       Thread-605878][   transport.py][1871] : starting thread (client mode): 0x75a9c90
2025-07-01 13:18:12,294 [DEBUG][       Thread-605878][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:18:12,315 [DEBUG][       Thread-605878][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:18:12,315 [ INFO][       Thread-605878][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:18:12,318 [DEBUG][       Thread-605878][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:18:12,318 [DEBUG][       Thread-605878][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:18:12,318 [DEBUG][       Thread-605878][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:18:12,318 [DEBUG][       Thread-605878][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:18:12,318 [DEBUG][       Thread-605878][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:18:12,318 [DEBUG][       Thread-605878][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:18:12,318 [DEBUG][       Thread-605878][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:18:12,318 [DEBUG][       Thread-605878][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:18:12,318 [DEBUG][       Thread-605878][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:18:12,318 [DEBUG][       Thread-605878][   transport.py][1871] : client lang: <none>
2025-07-01 13:18:12,318 [DEBUG][       Thread-605878][   transport.py][1871] : server lang: <none>
2025-07-01 13:18:12,318 [DEBUG][       Thread-605878][   transport.py][1871] : kex follows: False
2025-07-01 13:18:12,318 [DEBUG][       Thread-605878][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:18:12,318 [DEBUG][       Thread-605878][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:18:12,318 [DEBUG][       Thread-605878][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:18:12,318 [DEBUG][       Thread-605878][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:18:12,318 [DEBUG][       Thread-605878][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:18:12,318 [DEBUG][       Thread-605878][   transport.py][1871] : Compression: none
2025-07-01 13:18:12,318 [DEBUG][       Thread-605878][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:18:12,333 [DEBUG][       Thread-605878][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:18:12,333 [DEBUG][       Thread-605878][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:18:12,333 [DEBUG][       Thread-605878][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:18:12,333 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:18:12,333 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:18:12,334 [DEBUG][       Thread-605878][   transport.py][1871] : userauth is OK
2025-07-01 13:18:12,358 [ INFO][       Thread-605878][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:18:12,358 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:18:13,002 [DEBUG][       Thread-605878][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:18:13,003 [DEBUG][       Thread-605878][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:18:13,045 [DEBUG][       Thread-605878][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:18:13,045 [DEBUG][       Thread-605878][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:18:13,048 [DEBUG][       Thread-605878][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:18:13,055 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:18:13,056 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:18:13,057 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:18:13,059 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:18:13,064 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:18:13,065 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:18:13,065 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:18:13,066 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:18:13,066 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.470776 -999.00  +13.30  31.63     51   +3.50 1 1 2 1 1   888    0 10.61 20.18 ----- 22.9 31.6 37.4 51.0 16.2 -23.8 15.2 -25.0 15.2 -24.1 16.1 -22.5
2025-07-01 13:18:13,066 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:18:13,066 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:18:13,066 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.470776
2025-07-01 13:18:13,067 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:18:13,067 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:18:13,067 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:18:13,067 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:18:13,067 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:18:13,068 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:17:38', tmtdew=11.45, humidity=45.65, cloud=0.0, wind=43.47, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:17:55.046', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:18:13,068 [DEBUG][       Thread-605878][   transport.py][1871] : EOF in transport thread
2025-07-01 13:18:13,152 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:18:13,161 [DEBUG][       Thread-605881][   transport.py][1871] : starting thread (client mode): 0x818e170
2025-07-01 13:18:13,161 [DEBUG][       Thread-605881][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:18:13,177 [DEBUG][       Thread-605881][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:18:13,177 [ INFO][       Thread-605881][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:18:13,184 [DEBUG][       Thread-605881][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:18:13,184 [DEBUG][       Thread-605881][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:18:13,184 [DEBUG][       Thread-605881][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:18:13,184 [DEBUG][       Thread-605881][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:18:13,184 [DEBUG][       Thread-605881][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:18:13,184 [DEBUG][       Thread-605881][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:18:13,184 [DEBUG][       Thread-605881][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:18:13,184 [DEBUG][       Thread-605881][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:18:13,184 [DEBUG][       Thread-605881][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:18:13,184 [DEBUG][       Thread-605881][   transport.py][1871] : client lang: <none>
2025-07-01 13:18:13,184 [DEBUG][       Thread-605881][   transport.py][1871] : server lang: <none>
2025-07-01 13:18:13,184 [DEBUG][       Thread-605881][   transport.py][1871] : kex follows: False
2025-07-01 13:18:13,184 [DEBUG][       Thread-605881][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:18:13,185 [DEBUG][       Thread-605881][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:18:13,185 [DEBUG][       Thread-605881][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:18:13,185 [DEBUG][       Thread-605881][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:18:13,185 [DEBUG][       Thread-605881][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:18:13,185 [DEBUG][       Thread-605881][   transport.py][1871] : Compression: none
2025-07-01 13:18:13,185 [DEBUG][       Thread-605881][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:18:13,243 [DEBUG][       Thread-605881][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:18:13,243 [DEBUG][       Thread-605881][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:18:13,244 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:18:13,245 [DEBUG][       Thread-605881][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:18:13,245 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:18:13,299 [DEBUG][       Thread-605881][   transport.py][1871] : userauth is OK
2025-07-01 13:18:13,299 [DEBUG][       Thread-605881][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:18:13,299 [DEBUG][       Thread-605881][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:18:13,299 [DEBUG][       Thread-605881][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:18:13,299 [DEBUG][       Thread-605881][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:18:13,320 [ INFO][       Thread-605881][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:18:13,321 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:18:13,321 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:18:14,398 [DEBUG][       Thread-605881][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:18:14,399 [DEBUG][       Thread-605881][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:18:14,448 [DEBUG][       Thread-605881][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:18:14,448 [DEBUG][       Thread-605881][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:18:14,457 [DEBUG][       Thread-605881][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:18:14,466 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:18:14,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-07-01 13:18:14,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-07-01 13:18:14,484 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:18:14,485 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:18:14,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:18:14,493 [DEBUG][       Thread-605881][   transport.py][1871] : EOF in transport thread
2025-07-01 13:18:14,639 [DEBUG][Thread-605883 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:18:23,083 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:18:23,085 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:18:23,661 [DEBUG][Thread-605884 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:18:24,495 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:18:24,496 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:18:24,496 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:18:24,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-07-01 13:18:24,981 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 18, 10), 11.37, 46.01, 0.0, 45.8, 13.28, 0, 0, 0, 2, 1, 0),)
2025-07-01 13:18:24,981 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:18:10
2025-07-01 13:18:25,066 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:18:25,072 [DEBUG][       Thread-605885][   transport.py][1871] : starting thread (client mode): 0x81a6110
2025-07-01 13:18:25,072 [DEBUG][       Thread-605885][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:18:25,095 [DEBUG][       Thread-605885][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:18:25,095 [ INFO][       Thread-605885][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:18:25,098 [DEBUG][       Thread-605885][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:18:25,099 [DEBUG][       Thread-605885][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:18:25,099 [DEBUG][       Thread-605885][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:18:25,099 [DEBUG][       Thread-605885][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:18:25,099 [DEBUG][       Thread-605885][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:18:25,099 [DEBUG][       Thread-605885][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:18:25,099 [DEBUG][       Thread-605885][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:18:25,099 [DEBUG][       Thread-605885][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:18:25,099 [DEBUG][       Thread-605885][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:18:25,099 [DEBUG][       Thread-605885][   transport.py][1871] : client lang: <none>
2025-07-01 13:18:25,099 [DEBUG][       Thread-605885][   transport.py][1871] : server lang: <none>
2025-07-01 13:18:25,099 [DEBUG][       Thread-605885][   transport.py][1871] : kex follows: False
2025-07-01 13:18:25,099 [DEBUG][       Thread-605885][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:18:25,099 [DEBUG][       Thread-605885][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:18:25,099 [DEBUG][       Thread-605885][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:18:25,099 [DEBUG][       Thread-605885][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:18:25,099 [DEBUG][       Thread-605885][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:18:25,099 [DEBUG][       Thread-605885][   transport.py][1871] : Compression: none
2025-07-01 13:18:25,099 [DEBUG][       Thread-605885][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:18:25,117 [DEBUG][       Thread-605885][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:18:25,117 [DEBUG][       Thread-605885][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:18:25,118 [DEBUG][       Thread-605885][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:18:25,118 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:18:25,118 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:18:25,119 [DEBUG][       Thread-605885][   transport.py][1871] : userauth is OK
2025-07-01 13:18:25,133 [ INFO][       Thread-605885][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:18:25,134 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:18:25,747 [DEBUG][       Thread-605885][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:18:25,747 [DEBUG][       Thread-605885][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:18:25,789 [DEBUG][       Thread-605885][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:18:25,789 [DEBUG][       Thread-605885][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:18:25,792 [DEBUG][       Thread-605885][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:18:25,804 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:18:25,805 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:18:25,806 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:18:25,808 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:18:25,814 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:18:25,816 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:18:25,816 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:18:25,816 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:18:25,817 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.470776 -999.00  +13.30  31.63     51   +3.50 1 1 2 1 1   888    0 10.61 20.18 ----- 22.9 31.6 37.4 51.0 16.2 -23.8 15.2 -25.0 15.2 -24.1 16.1 -22.5
2025-07-01 13:18:25,817 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:18:25,817 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:18:25,817 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.470776
2025-07-01 13:18:25,817 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:18:25,818 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:18:25,818 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:18:25,818 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:18:25,818 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:18:25,818 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:18:10', tmtdew=11.37, humidity=46.01, cloud=0.0, wind=45.8, temperature=13.28, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=1, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:17:55.046', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:18:25,819 [DEBUG][       Thread-605885][   transport.py][1871] : EOF in transport thread
2025-07-01 13:18:25,905 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:18:25,921 [DEBUG][       Thread-605888][   transport.py][1871] : starting thread (client mode): 0x827db40
2025-07-01 13:18:25,921 [DEBUG][       Thread-605888][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:18:25,936 [DEBUG][       Thread-605888][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:18:25,936 [ INFO][       Thread-605888][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:18:25,944 [DEBUG][       Thread-605888][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:18:25,944 [DEBUG][       Thread-605888][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:18:25,944 [DEBUG][       Thread-605888][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:18:25,944 [DEBUG][       Thread-605888][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:18:25,944 [DEBUG][       Thread-605888][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:18:25,944 [DEBUG][       Thread-605888][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:18:25,944 [DEBUG][       Thread-605888][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:18:25,944 [DEBUG][       Thread-605888][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:18:25,944 [DEBUG][       Thread-605888][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:18:25,944 [DEBUG][       Thread-605888][   transport.py][1871] : client lang: <none>
2025-07-01 13:18:25,944 [DEBUG][       Thread-605888][   transport.py][1871] : server lang: <none>
2025-07-01 13:18:25,944 [DEBUG][       Thread-605888][   transport.py][1871] : kex follows: False
2025-07-01 13:18:25,944 [DEBUG][       Thread-605888][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:18:25,945 [DEBUG][       Thread-605888][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:18:25,945 [DEBUG][       Thread-605888][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:18:25,945 [DEBUG][       Thread-605888][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:18:25,945 [DEBUG][       Thread-605888][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:18:25,945 [DEBUG][       Thread-605888][   transport.py][1871] : Compression: none
2025-07-01 13:18:25,945 [DEBUG][       Thread-605888][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:18:26,003 [DEBUG][       Thread-605888][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:18:26,004 [DEBUG][       Thread-605888][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:18:26,004 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:18:26,005 [DEBUG][       Thread-605888][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:18:26,006 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:18:26,059 [DEBUG][       Thread-605888][   transport.py][1871] : userauth is OK
2025-07-01 13:18:26,059 [DEBUG][       Thread-605888][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:18:26,060 [DEBUG][       Thread-605888][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:18:26,060 [DEBUG][       Thread-605888][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:18:26,060 [DEBUG][       Thread-605888][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:18:26,079 [ INFO][       Thread-605888][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:18:26,079 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:18:26,080 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:18:27,124 [DEBUG][       Thread-605888][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:18:27,125 [DEBUG][       Thread-605888][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:18:27,176 [DEBUG][       Thread-605888][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:18:27,176 [DEBUG][       Thread-605888][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:18:27,185 [DEBUG][       Thread-605888][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:18:27,194 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:18:27,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-07-01 13:18:27,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-07-01 13:18:27,213 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:18:27,213 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:18:27,213 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:18:27,221 [DEBUG][       Thread-605888][   transport.py][1871] : EOF in transport thread
2025-07-01 13:18:31,666 [DEBUG][Thread-605890 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:18:32,683 [DEBUG][Thread-605891 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:18:37,214 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:18:37,215 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:18:37,224 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:18:37,226 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:18:37,703 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 18, 10), 11.37, 46.01, 0.0, 45.8, 13.28, 0, 0, 0, 2, 1, 0),)
2025-07-01 13:18:37,703 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:18:10
2025-07-01 13:18:37,787 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:18:37,791 [DEBUG][       Thread-605892][   transport.py][1871] : starting thread (client mode): 0x8156f20
2025-07-01 13:18:37,791 [DEBUG][       Thread-605892][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:18:37,813 [DEBUG][       Thread-605892][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:18:37,814 [ INFO][       Thread-605892][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:18:37,817 [DEBUG][       Thread-605892][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:18:37,817 [DEBUG][       Thread-605892][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:18:37,817 [DEBUG][       Thread-605892][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:18:37,817 [DEBUG][       Thread-605892][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:18:37,817 [DEBUG][       Thread-605892][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:18:37,817 [DEBUG][       Thread-605892][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:18:37,817 [DEBUG][       Thread-605892][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:18:37,817 [DEBUG][       Thread-605892][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:18:37,817 [DEBUG][       Thread-605892][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:18:37,817 [DEBUG][       Thread-605892][   transport.py][1871] : client lang: <none>
2025-07-01 13:18:37,817 [DEBUG][       Thread-605892][   transport.py][1871] : server lang: <none>
2025-07-01 13:18:37,817 [DEBUG][       Thread-605892][   transport.py][1871] : kex follows: False
2025-07-01 13:18:37,817 [DEBUG][       Thread-605892][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:18:37,817 [DEBUG][       Thread-605892][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:18:37,817 [DEBUG][       Thread-605892][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:18:37,817 [DEBUG][       Thread-605892][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:18:37,817 [DEBUG][       Thread-605892][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:18:37,818 [DEBUG][       Thread-605892][   transport.py][1871] : Compression: none
2025-07-01 13:18:37,818 [DEBUG][       Thread-605892][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:18:37,834 [DEBUG][       Thread-605892][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:18:37,835 [DEBUG][       Thread-605892][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:18:37,835 [DEBUG][       Thread-605892][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:18:37,836 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:18:37,836 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:18:37,837 [DEBUG][       Thread-605892][   transport.py][1871] : userauth is OK
2025-07-01 13:18:37,862 [ INFO][       Thread-605892][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:18:37,863 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:18:38,542 [DEBUG][       Thread-605892][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:18:38,542 [DEBUG][       Thread-605892][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:18:38,585 [DEBUG][       Thread-605892][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:18:38,585 [DEBUG][       Thread-605892][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:18:38,588 [DEBUG][       Thread-605892][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:18:38,602 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:18:38,603 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:18:38,605 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:18:38,607 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:18:38,612 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:18:38,614 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:18:38,614 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:18:38,615 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:18:38,615 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.471123 -999.00  +13.40  34.79     51   +3.50 1 1 2 1 1   888    0 10.62 19.80 ----- 41.8 34.8 36.6 48.0 16.2 -24.5 15.4 -25.4 15.3 -24.1 16.2 -23.6
2025-07-01 13:18:38,615 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:18:38,615 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:18:38,615 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.471123
2025-07-01 13:18:38,616 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:18:38,616 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:18:38,616 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:18:38,616 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:18:38,616 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:18:38,616 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:18:10', tmtdew=11.37, humidity=46.01, cloud=0.0, wind=45.8, temperature=13.28, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=1, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:18:25.027', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:18:38,617 [DEBUG][       Thread-605892][   transport.py][1871] : EOF in transport thread
2025-07-01 13:18:38,700 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:18:38,710 [DEBUG][       Thread-605895][   transport.py][1871] : starting thread (client mode): 0x82b2aa0
2025-07-01 13:18:38,710 [DEBUG][       Thread-605895][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:18:38,726 [DEBUG][       Thread-605895][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:18:38,726 [ INFO][       Thread-605895][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:18:38,734 [DEBUG][       Thread-605895][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:18:38,734 [DEBUG][       Thread-605895][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:18:38,734 [DEBUG][       Thread-605895][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:18:38,734 [DEBUG][       Thread-605895][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:18:38,734 [DEBUG][       Thread-605895][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:18:38,734 [DEBUG][       Thread-605895][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:18:38,734 [DEBUG][       Thread-605895][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:18:38,734 [DEBUG][       Thread-605895][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:18:38,734 [DEBUG][       Thread-605895][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:18:38,734 [DEBUG][       Thread-605895][   transport.py][1871] : client lang: <none>
2025-07-01 13:18:38,734 [DEBUG][       Thread-605895][   transport.py][1871] : server lang: <none>
2025-07-01 13:18:38,734 [DEBUG][       Thread-605895][   transport.py][1871] : kex follows: False
2025-07-01 13:18:38,735 [DEBUG][       Thread-605895][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:18:38,735 [DEBUG][       Thread-605895][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:18:38,735 [DEBUG][       Thread-605895][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:18:38,735 [DEBUG][       Thread-605895][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:18:38,735 [DEBUG][       Thread-605895][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:18:38,735 [DEBUG][       Thread-605895][   transport.py][1871] : Compression: none
2025-07-01 13:18:38,735 [DEBUG][       Thread-605895][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:18:38,791 [DEBUG][       Thread-605895][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:18:38,792 [DEBUG][       Thread-605895][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:18:38,792 [DEBUG][       Thread-605895][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:18:38,793 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:18:38,793 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:18:38,847 [DEBUG][       Thread-605895][   transport.py][1871] : userauth is OK
2025-07-01 13:18:38,847 [DEBUG][       Thread-605895][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:18:38,848 [DEBUG][       Thread-605895][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:18:38,848 [DEBUG][       Thread-605895][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:18:38,848 [DEBUG][       Thread-605895][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:18:38,867 [ INFO][       Thread-605895][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:18:38,867 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:18:38,868 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:18:39,901 [DEBUG][       Thread-605895][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:18:39,902 [DEBUG][       Thread-605895][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:18:39,952 [DEBUG][       Thread-605895][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:18:39,952 [DEBUG][       Thread-605895][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:18:39,961 [DEBUG][       Thread-605895][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:18:39,969 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:18:39,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-07-01 13:18:39,978 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 13:18:39,988 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:18:39,988 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:18:39,989 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:18:39,997 [DEBUG][       Thread-605895][   transport.py][1871] : EOF in transport thread
2025-07-01 13:18:41,725 [DEBUG][Thread-605897 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:18:49,999 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:18:49,999 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:18:50,000 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:18:50,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-07-01 13:18:50,472 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 18, 42), 11.33, 46.12, 0.0, 41.78, 13.22, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:18:50,472 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:18:42
2025-07-01 13:18:50,558 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:18:50,564 [DEBUG][       Thread-605898][   transport.py][1871] : starting thread (client mode): 0x81a6fe0
2025-07-01 13:18:50,564 [DEBUG][       Thread-605898][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:18:50,584 [DEBUG][       Thread-605898][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:18:50,584 [ INFO][       Thread-605898][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:18:50,588 [DEBUG][       Thread-605898][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:18:50,588 [DEBUG][       Thread-605898][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:18:50,588 [DEBUG][       Thread-605898][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:18:50,588 [DEBUG][       Thread-605898][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:18:50,588 [DEBUG][       Thread-605898][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:18:50,588 [DEBUG][       Thread-605898][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:18:50,588 [DEBUG][       Thread-605898][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:18:50,589 [DEBUG][       Thread-605898][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:18:50,589 [DEBUG][       Thread-605898][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:18:50,589 [DEBUG][       Thread-605898][   transport.py][1871] : client lang: <none>
2025-07-01 13:18:50,589 [DEBUG][       Thread-605898][   transport.py][1871] : server lang: <none>
2025-07-01 13:18:50,589 [DEBUG][       Thread-605898][   transport.py][1871] : kex follows: False
2025-07-01 13:18:50,589 [DEBUG][       Thread-605898][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:18:50,589 [DEBUG][       Thread-605898][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:18:50,589 [DEBUG][       Thread-605898][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:18:50,589 [DEBUG][       Thread-605898][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:18:50,589 [DEBUG][       Thread-605898][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:18:50,589 [DEBUG][       Thread-605898][   transport.py][1871] : Compression: none
2025-07-01 13:18:50,590 [DEBUG][       Thread-605898][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:18:50,608 [DEBUG][       Thread-605898][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:18:50,609 [DEBUG][       Thread-605898][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:18:50,609 [DEBUG][       Thread-605898][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:18:50,610 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:18:50,610 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:18:50,611 [DEBUG][       Thread-605898][   transport.py][1871] : userauth is OK
2025-07-01 13:18:50,636 [ INFO][       Thread-605898][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:18:50,637 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:18:50,745 [DEBUG][Thread-605900 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:18:51,233 [DEBUG][       Thread-605898][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:18:51,233 [DEBUG][       Thread-605898][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:18:51,277 [DEBUG][       Thread-605898][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:18:51,277 [DEBUG][       Thread-605898][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:18:51,281 [DEBUG][       Thread-605898][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:18:51,295 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:18:51,295 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:18:51,297 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:18:51,299 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:18:51,304 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:18:51,306 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:18:51,306 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:18:51,307 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:18:51,307 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.471123 -999.00  +13.40  34.79     51   +3.50 1 1 2 1 1   888    0 10.62 19.80 ----- 41.8 34.8 36.6 48.0 16.2 -24.5 15.4 -25.4 15.3 -24.1 16.2 -23.6
2025-07-01 13:18:51,307 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:18:51,307 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:18:51,307 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.471123
2025-07-01 13:18:51,308 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:18:51,308 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:18:51,308 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:18:51,308 [DEBUG][       Thread-605898][   transport.py][1871] : EOF in transport thread
2025-07-01 13:18:51,309 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:18:51,309 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:18:51,309 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:18:42', tmtdew=11.33, humidity=46.12, cloud=0.0, wind=41.78, temperature=13.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:18:25.027', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:18:51,392 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:18:51,403 [DEBUG][       Thread-605902][   transport.py][1871] : starting thread (client mode): 0x8156f20
2025-07-01 13:18:51,403 [DEBUG][       Thread-605902][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:18:51,418 [DEBUG][       Thread-605902][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:18:51,418 [ INFO][       Thread-605902][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:18:51,425 [DEBUG][       Thread-605902][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:18:51,426 [DEBUG][       Thread-605902][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:18:51,426 [DEBUG][       Thread-605902][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:18:51,426 [DEBUG][       Thread-605902][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:18:51,426 [DEBUG][       Thread-605902][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:18:51,426 [DEBUG][       Thread-605902][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:18:51,426 [DEBUG][       Thread-605902][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:18:51,426 [DEBUG][       Thread-605902][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:18:51,426 [DEBUG][       Thread-605902][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:18:51,426 [DEBUG][       Thread-605902][   transport.py][1871] : client lang: <none>
2025-07-01 13:18:51,426 [DEBUG][       Thread-605902][   transport.py][1871] : server lang: <none>
2025-07-01 13:18:51,426 [DEBUG][       Thread-605902][   transport.py][1871] : kex follows: False
2025-07-01 13:18:51,426 [DEBUG][       Thread-605902][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:18:51,426 [DEBUG][       Thread-605902][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:18:51,426 [DEBUG][       Thread-605902][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:18:51,426 [DEBUG][       Thread-605902][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:18:51,426 [DEBUG][       Thread-605902][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:18:51,426 [DEBUG][       Thread-605902][   transport.py][1871] : Compression: none
2025-07-01 13:18:51,426 [DEBUG][       Thread-605902][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:18:51,484 [DEBUG][       Thread-605902][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:18:51,485 [DEBUG][       Thread-605902][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:18:51,485 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:18:51,486 [DEBUG][       Thread-605902][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:18:51,486 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:18:51,544 [DEBUG][       Thread-605902][   transport.py][1871] : userauth is OK
2025-07-01 13:18:51,544 [DEBUG][       Thread-605902][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:18:51,544 [DEBUG][       Thread-605902][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:18:51,544 [DEBUG][       Thread-605902][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:18:51,544 [DEBUG][       Thread-605902][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:18:51,562 [ INFO][       Thread-605902][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:18:51,563 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:18:51,563 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:18:52,609 [DEBUG][       Thread-605902][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:18:52,610 [DEBUG][       Thread-605902][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:18:52,663 [DEBUG][       Thread-605902][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:18:52,663 [DEBUG][       Thread-605902][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:18:52,672 [DEBUG][       Thread-605902][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:18:52,681 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:18:52,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')
2025-07-01 13:18:52,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-07-01 13:18:52,698 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:18:52,698 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:18:52,699 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:18:52,706 [DEBUG][       Thread-605902][   transport.py][1871] : EOF in transport thread
2025-07-01 13:18:59,766 [DEBUG][Thread-605904 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:19:02,709 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:19:02,709 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:19:02,710 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:19:02,713 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:19:03,176 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 18, 42), 11.33, 46.12, 0.0, 41.78, 13.22, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:19:03,176 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:18:42
2025-07-01 13:19:03,261 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:19:03,266 [DEBUG][       Thread-605905][   transport.py][1871] : starting thread (client mode): 0x75a8250
2025-07-01 13:19:03,266 [DEBUG][       Thread-605905][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:19:03,288 [DEBUG][       Thread-605905][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:19:03,288 [ INFO][       Thread-605905][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:19:03,289 [DEBUG][       Thread-605905][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:19:03,289 [DEBUG][       Thread-605905][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:19:03,289 [DEBUG][       Thread-605905][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:19:03,289 [DEBUG][       Thread-605905][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:19:03,289 [DEBUG][       Thread-605905][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:19:03,289 [DEBUG][       Thread-605905][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:19:03,289 [DEBUG][       Thread-605905][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:19:03,289 [DEBUG][       Thread-605905][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:19:03,289 [DEBUG][       Thread-605905][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:19:03,289 [DEBUG][       Thread-605905][   transport.py][1871] : client lang: <none>
2025-07-01 13:19:03,289 [DEBUG][       Thread-605905][   transport.py][1871] : server lang: <none>
2025-07-01 13:19:03,290 [DEBUG][       Thread-605905][   transport.py][1871] : kex follows: False
2025-07-01 13:19:03,290 [DEBUG][       Thread-605905][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:19:03,290 [DEBUG][       Thread-605905][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:19:03,290 [DEBUG][       Thread-605905][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:19:03,290 [DEBUG][       Thread-605905][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:19:03,290 [DEBUG][       Thread-605905][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:19:03,290 [DEBUG][       Thread-605905][   transport.py][1871] : Compression: none
2025-07-01 13:19:03,290 [DEBUG][       Thread-605905][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:19:03,301 [DEBUG][       Thread-605905][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:19:03,301 [DEBUG][       Thread-605905][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:19:03,301 [DEBUG][       Thread-605905][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:19:03,302 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:19:03,302 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:19:03,303 [DEBUG][       Thread-605905][   transport.py][1871] : userauth is OK
2025-07-01 13:19:03,328 [ INFO][       Thread-605905][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:19:03,329 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:19:03,965 [DEBUG][       Thread-605905][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:19:03,965 [DEBUG][       Thread-605905][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:19:04,009 [DEBUG][       Thread-605905][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:19:04,009 [DEBUG][       Thread-605905][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:19:04,012 [DEBUG][       Thread-605905][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:19:04,027 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:19:04,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:19:04,030 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:19:04,032 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:19:04,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:19:04,039 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:19:04,039 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:19:04,039 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:19:04,039 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.471123 -999.00  +13.40  34.79     51   +3.50 1 1 2 1 1   888    0 10.62 19.80 ----- 41.8 34.8 36.6 48.0 16.2 -24.5 15.4 -25.4 15.3 -24.1 16.2 -23.6
2025-07-01 13:19:04,039 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:19:04,039 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:19:04,039 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.471123
2025-07-01 13:19:04,040 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:19:04,040 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:19:04,040 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:19:04,040 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:19:04,040 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:19:04,040 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:18:42', tmtdew=11.33, humidity=46.12, cloud=0.0, wind=41.78, temperature=13.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:18:25.027', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:19:04,041 [DEBUG][       Thread-605905][   transport.py][1871] : EOF in transport thread
2025-07-01 13:19:04,112 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:19:04,121 [DEBUG][       Thread-605908][   transport.py][1871] : starting thread (client mode): 0x8393ee0
2025-07-01 13:19:04,121 [DEBUG][       Thread-605908][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:19:04,136 [DEBUG][       Thread-605908][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:19:04,136 [ INFO][       Thread-605908][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:19:04,143 [DEBUG][       Thread-605908][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:19:04,143 [DEBUG][       Thread-605908][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:19:04,143 [DEBUG][       Thread-605908][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:19:04,143 [DEBUG][       Thread-605908][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:19:04,143 [DEBUG][       Thread-605908][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:19:04,143 [DEBUG][       Thread-605908][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:19:04,143 [DEBUG][       Thread-605908][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:19:04,143 [DEBUG][       Thread-605908][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:19:04,143 [DEBUG][       Thread-605908][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:19:04,143 [DEBUG][       Thread-605908][   transport.py][1871] : client lang: <none>
2025-07-01 13:19:04,143 [DEBUG][       Thread-605908][   transport.py][1871] : server lang: <none>
2025-07-01 13:19:04,143 [DEBUG][       Thread-605908][   transport.py][1871] : kex follows: False
2025-07-01 13:19:04,143 [DEBUG][       Thread-605908][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:19:04,143 [DEBUG][       Thread-605908][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:19:04,143 [DEBUG][       Thread-605908][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:19:04,143 [DEBUG][       Thread-605908][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:19:04,143 [DEBUG][       Thread-605908][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:19:04,143 [DEBUG][       Thread-605908][   transport.py][1871] : Compression: none
2025-07-01 13:19:04,143 [DEBUG][       Thread-605908][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:19:04,204 [DEBUG][       Thread-605908][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:19:04,204 [DEBUG][       Thread-605908][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:19:04,205 [DEBUG][       Thread-605908][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:19:04,205 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:19:04,206 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:19:04,268 [DEBUG][       Thread-605908][   transport.py][1871] : userauth is OK
2025-07-01 13:19:04,268 [DEBUG][       Thread-605908][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:19:04,268 [DEBUG][       Thread-605908][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:19:04,268 [DEBUG][       Thread-605908][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:19:04,268 [DEBUG][       Thread-605908][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:19:04,286 [ INFO][       Thread-605908][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:19:04,287 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:19:04,287 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:19:05,299 [DEBUG][       Thread-605908][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:19:05,299 [DEBUG][       Thread-605908][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:19:05,348 [DEBUG][       Thread-605908][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:19:05,348 [DEBUG][       Thread-605908][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:19:05,358 [DEBUG][       Thread-605908][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:19:05,367 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:19:05,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-07-01 13:19:05,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-07-01 13:19:05,385 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:19:05,386 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:19:05,386 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:19:05,394 [DEBUG][       Thread-605908][   transport.py][1871] : EOF in transport thread
2025-07-01 13:19:08,809 [DEBUG][Thread-605910 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:19:15,396 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:19:15,396 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:19:15,396 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:19:15,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-07-01 13:19:15,895 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 18, 42), 11.33, 46.12, 0.0, 41.78, 13.22, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:19:15,895 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:18:42
2025-07-01 13:19:15,987 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:19:15,993 [DEBUG][       Thread-605911][   transport.py][1871] : starting thread (client mode): 0x75a8790
2025-07-01 13:19:15,993 [DEBUG][       Thread-605911][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:19:16,014 [DEBUG][       Thread-605911][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:19:16,014 [ INFO][       Thread-605911][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:19:16,017 [DEBUG][       Thread-605911][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:19:16,017 [DEBUG][       Thread-605911][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:19:16,017 [DEBUG][       Thread-605911][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:19:16,017 [DEBUG][       Thread-605911][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:19:16,017 [DEBUG][       Thread-605911][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:19:16,017 [DEBUG][       Thread-605911][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:19:16,017 [DEBUG][       Thread-605911][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:19:16,017 [DEBUG][       Thread-605911][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:19:16,017 [DEBUG][       Thread-605911][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:19:16,017 [DEBUG][       Thread-605911][   transport.py][1871] : client lang: <none>
2025-07-01 13:19:16,017 [DEBUG][       Thread-605911][   transport.py][1871] : server lang: <none>
2025-07-01 13:19:16,017 [DEBUG][       Thread-605911][   transport.py][1871] : kex follows: False
2025-07-01 13:19:16,017 [DEBUG][       Thread-605911][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:19:16,017 [DEBUG][       Thread-605911][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:19:16,017 [DEBUG][       Thread-605911][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:19:16,017 [DEBUG][       Thread-605911][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:19:16,017 [DEBUG][       Thread-605911][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:19:16,017 [DEBUG][       Thread-605911][   transport.py][1871] : Compression: none
2025-07-01 13:19:16,017 [DEBUG][       Thread-605911][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:19:16,033 [DEBUG][       Thread-605911][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:19:16,034 [DEBUG][       Thread-605911][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:19:16,034 [DEBUG][       Thread-605911][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:19:16,034 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:19:16,034 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:19:16,035 [DEBUG][       Thread-605911][   transport.py][1871] : userauth is OK
2025-07-01 13:19:16,058 [ INFO][       Thread-605911][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:19:16,059 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:19:16,696 [DEBUG][       Thread-605911][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:19:16,696 [DEBUG][       Thread-605911][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:19:16,737 [DEBUG][       Thread-605911][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:19:16,737 [DEBUG][       Thread-605911][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:19:16,740 [DEBUG][       Thread-605911][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:19:16,753 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:19:16,753 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:19:16,755 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:19:16,757 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:19:16,762 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:19:16,764 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:19:16,764 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:19:16,765 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:19:16,765 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.471470 -999.00  +13.30  36.81     51   +3.40 1 1 2 1 1   888    0 10.59 17.48 ----- 36.6 36.8 15.5 47.3 16.2 -24.1 15.3 -25.6 15.3 -23.8 16.1 -23.3
2025-07-01 13:19:16,765 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:19:16,765 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:19:16,765 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.471470
2025-07-01 13:19:16,766 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:19:16,766 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:19:16,766 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:19:16,766 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:19:16,767 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:19:16,767 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:18:42', tmtdew=11.33, humidity=46.12, cloud=0.0, wind=41.78, temperature=13.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:18:55.008', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:19:16,767 [DEBUG][       Thread-605911][   transport.py][1871] : EOF in transport thread
2025-07-01 13:19:16,850 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:19:16,862 [DEBUG][       Thread-605914][   transport.py][1871] : starting thread (client mode): 0x8156980
2025-07-01 13:19:16,862 [DEBUG][       Thread-605914][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:19:16,876 [DEBUG][       Thread-605914][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:19:16,876 [ INFO][       Thread-605914][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:19:16,884 [DEBUG][       Thread-605914][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:19:16,884 [DEBUG][       Thread-605914][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:19:16,884 [DEBUG][       Thread-605914][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:19:16,884 [DEBUG][       Thread-605914][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:19:16,885 [DEBUG][       Thread-605914][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:19:16,885 [DEBUG][       Thread-605914][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:19:16,885 [DEBUG][       Thread-605914][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:19:16,885 [DEBUG][       Thread-605914][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:19:16,885 [DEBUG][       Thread-605914][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:19:16,885 [DEBUG][       Thread-605914][   transport.py][1871] : client lang: <none>
2025-07-01 13:19:16,885 [DEBUG][       Thread-605914][   transport.py][1871] : server lang: <none>
2025-07-01 13:19:16,885 [DEBUG][       Thread-605914][   transport.py][1871] : kex follows: False
2025-07-01 13:19:16,885 [DEBUG][       Thread-605914][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:19:16,885 [DEBUG][       Thread-605914][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:19:16,885 [DEBUG][       Thread-605914][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:19:16,885 [DEBUG][       Thread-605914][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:19:16,885 [DEBUG][       Thread-605914][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:19:16,885 [DEBUG][       Thread-605914][   transport.py][1871] : Compression: none
2025-07-01 13:19:16,885 [DEBUG][       Thread-605914][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:19:16,943 [DEBUG][       Thread-605914][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:19:16,944 [DEBUG][       Thread-605914][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:19:16,944 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:19:16,945 [DEBUG][       Thread-605914][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:19:16,946 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:19:17,003 [DEBUG][       Thread-605914][   transport.py][1871] : userauth is OK
2025-07-01 13:19:17,004 [DEBUG][       Thread-605914][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:19:17,004 [DEBUG][       Thread-605914][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:19:17,004 [DEBUG][       Thread-605914][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:19:17,004 [DEBUG][       Thread-605914][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:19:17,022 [ INFO][       Thread-605914][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:19:17,023 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:19:17,023 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:19:17,830 [DEBUG][Thread-605916 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:19:18,025 [DEBUG][       Thread-605914][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:19:18,025 [DEBUG][       Thread-605914][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:19:18,076 [DEBUG][       Thread-605914][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:19:18,076 [DEBUG][       Thread-605914][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:19:18,088 [DEBUG][       Thread-605914][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:19:18,098 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:19:18,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-07-01 13:19:18,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-07-01 13:19:18,119 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:19:18,119 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:19:18,119 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:19:18,129 [DEBUG][       Thread-605914][   transport.py][1871] : EOF in transport thread
2025-07-01 13:19:23,223 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:19:23,224 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:19:26,853 [DEBUG][Thread-605917 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:19:28,120 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:19:28,120 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:19:28,120 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:19: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-07-01 13:19:28,599 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 19, 14), 11.2, 46.55, 0.0, 39.68, 13.31, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:19:28,599 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:19:14
2025-07-01 13:19:28,685 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:19:28,692 [DEBUG][       Thread-605918][   transport.py][1871] : starting thread (client mode): 0x75abd90
2025-07-01 13:19:28,692 [DEBUG][       Thread-605918][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:19:28,712 [DEBUG][       Thread-605918][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:19:28,712 [ INFO][       Thread-605918][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:19:28,715 [DEBUG][       Thread-605918][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:19:28,715 [DEBUG][       Thread-605918][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:19:28,716 [DEBUG][       Thread-605918][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:19:28,716 [DEBUG][       Thread-605918][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:19:28,716 [DEBUG][       Thread-605918][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:19:28,716 [DEBUG][       Thread-605918][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:19:28,716 [DEBUG][       Thread-605918][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:19:28,716 [DEBUG][       Thread-605918][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:19:28,716 [DEBUG][       Thread-605918][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:19:28,716 [DEBUG][       Thread-605918][   transport.py][1871] : client lang: <none>
2025-07-01 13:19:28,716 [DEBUG][       Thread-605918][   transport.py][1871] : server lang: <none>
2025-07-01 13:19:28,716 [DEBUG][       Thread-605918][   transport.py][1871] : kex follows: False
2025-07-01 13:19:28,716 [DEBUG][       Thread-605918][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:19:28,716 [DEBUG][       Thread-605918][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:19:28,716 [DEBUG][       Thread-605918][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:19:28,716 [DEBUG][       Thread-605918][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:19:28,716 [DEBUG][       Thread-605918][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:19:28,716 [DEBUG][       Thread-605918][   transport.py][1871] : Compression: none
2025-07-01 13:19:28,716 [DEBUG][       Thread-605918][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:19:28,733 [DEBUG][       Thread-605918][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:19:28,734 [DEBUG][       Thread-605918][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:19:28,734 [DEBUG][       Thread-605918][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:19:28,734 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:19:28,735 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:19:28,736 [DEBUG][       Thread-605918][   transport.py][1871] : userauth is OK
2025-07-01 13:19:28,761 [ INFO][       Thread-605918][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:19:28,761 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:19:29,412 [DEBUG][       Thread-605918][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:19:29,412 [DEBUG][       Thread-605918][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:19:29,453 [DEBUG][       Thread-605918][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:19:29,453 [DEBUG][       Thread-605918][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:19:29,456 [DEBUG][       Thread-605918][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:19:29,468 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:19:29,469 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:19:29,470 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:19:29,472 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:19:29,478 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:19:29,479 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:19:29,480 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:19:29,480 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:19:29,481 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.471470 -999.00  +13.30  36.81     51   +3.40 1 1 2 1 1   888    0 10.59 17.48 ----- 36.6 36.8 15.5 47.3 16.2 -24.1 15.3 -25.6 15.3 -23.8 16.1 -23.3
2025-07-01 13:19:29,481 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:19:29,481 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:19:29,481 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.471470
2025-07-01 13:19:29,481 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:19:29,482 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:19:29,482 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:19:29,482 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:19:29,482 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:19:29,482 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:19:14', tmtdew=11.2, humidity=46.55, cloud=0.0, wind=39.68, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:18:55.008', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:19:29,483 [DEBUG][       Thread-605918][   transport.py][1871] : EOF in transport thread
2025-07-01 13:19:29,566 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:19:31,717 [DEBUG][Thread-605921 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:19:35,874 [DEBUG][Thread-605922 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:19:44,907 [DEBUG][Thread-605923 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:19:53,926 [DEBUG][Thread-605924 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:20:02,944 [DEBUG][Thread-605925 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:20:11,966 [DEBUG][Thread-605926 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:20:20,988 [DEBUG][Thread-605927 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:20:23,370 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:20:23,371 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:20:30,012 [DEBUG][Thread-605928 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:20:31,768 [DEBUG][Thread-605929 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:20:39,031 [DEBUG][Thread-605930 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:20:48,050 [DEBUG][Thread-605931 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:20:57,071 [DEBUG][Thread-605932 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:21:06,092 [DEBUG][Thread-605933 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:21:15,111 [DEBUG][Thread-605934 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:21:23,509 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:21:23,510 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:21:24,126 [DEBUG][Thread-605935 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:21:31,823 [DEBUG][Thread-605936 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:21:33,147 [DEBUG][Thread-605937 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:21:38,836 [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-07-01 13:21:42,169 [DEBUG][Thread-605938 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:21:48,847 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:21:48,847 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:21:48,847 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:21:48,850 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:21:49,366 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 21, 21), 11.36, 46.05, 0.0, 29.91, 13.41, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:21:49,366 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:21:21
2025-07-01 13:21:49,452 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:21:49,456 [DEBUG][       Thread-605939][   transport.py][1871] : starting thread (client mode): 0x81047c0
2025-07-01 13:21:49,456 [DEBUG][       Thread-605939][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:21:49,476 [DEBUG][       Thread-605939][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:21:49,476 [ INFO][       Thread-605939][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:21:49,479 [DEBUG][       Thread-605939][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:21:49,480 [DEBUG][       Thread-605939][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:21:49,480 [DEBUG][       Thread-605939][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:21:49,480 [DEBUG][       Thread-605939][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:21:49,480 [DEBUG][       Thread-605939][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:21:49,480 [DEBUG][       Thread-605939][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:21:49,480 [DEBUG][       Thread-605939][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:21:49,480 [DEBUG][       Thread-605939][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:21:49,480 [DEBUG][       Thread-605939][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:21:49,480 [DEBUG][       Thread-605939][   transport.py][1871] : client lang: <none>
2025-07-01 13:21:49,480 [DEBUG][       Thread-605939][   transport.py][1871] : server lang: <none>
2025-07-01 13:21:49,480 [DEBUG][       Thread-605939][   transport.py][1871] : kex follows: False
2025-07-01 13:21:49,480 [DEBUG][       Thread-605939][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:21:49,480 [DEBUG][       Thread-605939][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:21:49,480 [DEBUG][       Thread-605939][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:21:49,480 [DEBUG][       Thread-605939][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:21:49,480 [DEBUG][       Thread-605939][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:21:49,480 [DEBUG][       Thread-605939][   transport.py][1871] : Compression: none
2025-07-01 13:21:49,480 [DEBUG][       Thread-605939][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:21:49,496 [DEBUG][       Thread-605939][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:21:49,497 [DEBUG][       Thread-605939][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:21:49,497 [DEBUG][       Thread-605939][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:21:49,498 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:21:49,498 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:21:49,499 [DEBUG][       Thread-605939][   transport.py][1871] : userauth is OK
2025-07-01 13:21:49,511 [ INFO][       Thread-605939][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:21:49,512 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:21:50,173 [DEBUG][       Thread-605939][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:21:50,174 [DEBUG][       Thread-605939][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:21:50,217 [DEBUG][       Thread-605939][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:21:50,217 [DEBUG][       Thread-605939][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:21:50,220 [DEBUG][       Thread-605939][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:21:50,231 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:21:50,232 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:21:50,233 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:21:50,235 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:21:50,240 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:21:50,242 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:21:50,242 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:21:50,243 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:21:50,243 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.472859 -999.00  +13.00  36.82     51   +3.30 1 1 2 1 1   888    0 10.28 12.20 ----- 37.0 36.8 12.7 47.2 16.1 -24.8 15.3 -25.4 15.2 -24.5 16.0 -22.7
2025-07-01 13:21:50,243 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:21:50,243 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:21:50,243 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.472859
2025-07-01 13:21:50,244 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:21:50,244 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:21:50,244 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:21:50,244 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:21:50,245 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:21:50,245 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:21:21', tmtdew=11.36, humidity=46.05, cloud=0.0, wind=29.91, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:20:55.018', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:21:50,246 [DEBUG][       Thread-605939][   transport.py][1871] : EOF in transport thread
2025-07-01 13:21:50,328 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:21:50,340 [DEBUG][       Thread-605942][   transport.py][1871] : starting thread (client mode): 0x81e64a0
2025-07-01 13:21:50,340 [DEBUG][       Thread-605942][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:21:50,355 [DEBUG][       Thread-605942][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:21:50,355 [ INFO][       Thread-605942][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:21:50,362 [DEBUG][       Thread-605942][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:21:50,362 [DEBUG][       Thread-605942][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:21:50,363 [DEBUG][       Thread-605942][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:21:50,363 [DEBUG][       Thread-605942][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:21:50,363 [DEBUG][       Thread-605942][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:21:50,363 [DEBUG][       Thread-605942][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:21:50,363 [DEBUG][       Thread-605942][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:21:50,363 [DEBUG][       Thread-605942][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:21:50,363 [DEBUG][       Thread-605942][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:21:50,363 [DEBUG][       Thread-605942][   transport.py][1871] : client lang: <none>
2025-07-01 13:21:50,363 [DEBUG][       Thread-605942][   transport.py][1871] : server lang: <none>
2025-07-01 13:21:50,363 [DEBUG][       Thread-605942][   transport.py][1871] : kex follows: False
2025-07-01 13:21:50,363 [DEBUG][       Thread-605942][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:21:50,363 [DEBUG][       Thread-605942][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:21:50,363 [DEBUG][       Thread-605942][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:21:50,363 [DEBUG][       Thread-605942][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:21:50,363 [DEBUG][       Thread-605942][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:21:50,363 [DEBUG][       Thread-605942][   transport.py][1871] : Compression: none
2025-07-01 13:21:50,363 [DEBUG][       Thread-605942][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:21:50,422 [DEBUG][       Thread-605942][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:21:50,423 [DEBUG][       Thread-605942][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:21:50,423 [DEBUG][       Thread-605942][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:21:50,423 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:21:50,424 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:21:50,478 [DEBUG][       Thread-605942][   transport.py][1871] : userauth is OK
2025-07-01 13:21:50,479 [DEBUG][       Thread-605942][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:21:50,479 [DEBUG][       Thread-605942][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:21:50,479 [DEBUG][       Thread-605942][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:21:50,479 [DEBUG][       Thread-605942][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:21:50,498 [ INFO][       Thread-605942][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:21:50,498 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:21:50,499 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:21:51,190 [DEBUG][Thread-605944 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:21:51,563 [DEBUG][       Thread-605942][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:21:51,563 [DEBUG][       Thread-605942][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:21:51,612 [DEBUG][       Thread-605942][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:21:51,612 [DEBUG][       Thread-605942][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:21:51,621 [DEBUG][       Thread-605942][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:21:51,630 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:21:51,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-07-01 13:21:51,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-07-01 13:21:51,648 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:21:51,649 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:21:51,649 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:21:51,657 [DEBUG][       Thread-605942][   transport.py][1871] : EOF in transport thread
2025-07-01 13:22:00,223 [DEBUG][Thread-605945 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:22:01,660 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:22:01,660 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:22:01,660 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:22:01,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-07-01 13:22:02,163 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 21, 53), 11.39, 45.97, 0.0, 33.08, 13.4, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:22:02,163 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:21:53
2025-07-01 13:22:02,249 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:22:02,253 [DEBUG][       Thread-605946][   transport.py][1871] : starting thread (client mode): 0x81a6f50
2025-07-01 13:22:02,253 [DEBUG][       Thread-605946][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:22:02,273 [DEBUG][       Thread-605946][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:22:02,273 [ INFO][       Thread-605946][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:22:02,277 [DEBUG][       Thread-605946][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:22:02,277 [DEBUG][       Thread-605946][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:22:02,277 [DEBUG][       Thread-605946][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:22:02,277 [DEBUG][       Thread-605946][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:22:02,277 [DEBUG][       Thread-605946][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:22:02,277 [DEBUG][       Thread-605946][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:22:02,277 [DEBUG][       Thread-605946][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:22:02,277 [DEBUG][       Thread-605946][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:22:02,277 [DEBUG][       Thread-605946][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:22:02,277 [DEBUG][       Thread-605946][   transport.py][1871] : client lang: <none>
2025-07-01 13:22:02,277 [DEBUG][       Thread-605946][   transport.py][1871] : server lang: <none>
2025-07-01 13:22:02,277 [DEBUG][       Thread-605946][   transport.py][1871] : kex follows: False
2025-07-01 13:22:02,277 [DEBUG][       Thread-605946][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:22:02,277 [DEBUG][       Thread-605946][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:22:02,277 [DEBUG][       Thread-605946][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:22:02,277 [DEBUG][       Thread-605946][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:22:02,277 [DEBUG][       Thread-605946][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:22:02,277 [DEBUG][       Thread-605946][   transport.py][1871] : Compression: none
2025-07-01 13:22:02,277 [DEBUG][       Thread-605946][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:22:02,286 [DEBUG][       Thread-605946][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:22:02,286 [DEBUG][       Thread-605946][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:22:02,287 [DEBUG][       Thread-605946][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:22:02,287 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:22:02,287 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:22:02,288 [DEBUG][       Thread-605946][   transport.py][1871] : userauth is OK
2025-07-01 13:22:02,301 [ INFO][       Thread-605946][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:22:02,301 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:22:02,883 [DEBUG][       Thread-605946][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:22:02,883 [DEBUG][       Thread-605946][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:22:02,925 [DEBUG][       Thread-605946][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:22:02,925 [DEBUG][       Thread-605946][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:22:02,929 [DEBUG][       Thread-605946][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:22:02,940 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:22:02,941 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:22:02,942 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:22:02,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:22:02,950 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:22:02,952 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:22:02,953 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:22:02,953 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:22:02,953 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.473206 -999.00  +13.00  42.74     51   +3.30 1 1 2 1 1   888    0 10.08 10.58 ----- 30.3 42.7 28.6 51.3 16.1 -24.6 15.2 -26.1 15.2 -25.7 15.9 -23.0
2025-07-01 13:22:02,953 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:22:02,954 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:22:02,954 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.473206
2025-07-01 13:22:02,954 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:22:02,955 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:22:02,955 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:22:02,955 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:22:02,955 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:22:02,955 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:21:53', tmtdew=11.39, humidity=45.97, cloud=0.0, wind=33.08, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:21:24.998', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:22:02,955 [DEBUG][       Thread-605946][   transport.py][1871] : EOF in transport thread
2025-07-01 13:22:03,042 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:22:03,051 [DEBUG][       Thread-605949][   transport.py][1871] : starting thread (client mode): 0x75a9cc0
2025-07-01 13:22:03,051 [DEBUG][       Thread-605949][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:22:03,067 [DEBUG][       Thread-605949][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:22:03,067 [ INFO][       Thread-605949][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:22:03,075 [DEBUG][       Thread-605949][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:22:03,075 [DEBUG][       Thread-605949][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:22:03,075 [DEBUG][       Thread-605949][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:22:03,075 [DEBUG][       Thread-605949][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:22:03,075 [DEBUG][       Thread-605949][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:22:03,075 [DEBUG][       Thread-605949][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:22:03,075 [DEBUG][       Thread-605949][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:22:03,075 [DEBUG][       Thread-605949][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:22:03,075 [DEBUG][       Thread-605949][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:22:03,075 [DEBUG][       Thread-605949][   transport.py][1871] : client lang: <none>
2025-07-01 13:22:03,075 [DEBUG][       Thread-605949][   transport.py][1871] : server lang: <none>
2025-07-01 13:22:03,076 [DEBUG][       Thread-605949][   transport.py][1871] : kex follows: False
2025-07-01 13:22:03,076 [DEBUG][       Thread-605949][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:22:03,076 [DEBUG][       Thread-605949][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:22:03,076 [DEBUG][       Thread-605949][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:22:03,076 [DEBUG][       Thread-605949][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:22:03,076 [DEBUG][       Thread-605949][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:22:03,076 [DEBUG][       Thread-605949][   transport.py][1871] : Compression: none
2025-07-01 13:22:03,076 [DEBUG][       Thread-605949][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:22:03,134 [DEBUG][       Thread-605949][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:22:03,134 [DEBUG][       Thread-605949][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:22:03,135 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:22:03,136 [DEBUG][       Thread-605949][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:22:03,136 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:22:03,193 [DEBUG][       Thread-605949][   transport.py][1871] : userauth is OK
2025-07-01 13:22:03,193 [DEBUG][       Thread-605949][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:22:03,193 [DEBUG][       Thread-605949][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:22:03,194 [DEBUG][       Thread-605949][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:22:03,194 [DEBUG][       Thread-605949][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:22:03,213 [ INFO][       Thread-605949][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:22:03,214 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:22:03,214 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:22:04,287 [DEBUG][       Thread-605949][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:22:04,287 [DEBUG][       Thread-605949][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:22:04,336 [DEBUG][       Thread-605949][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:22:04,336 [DEBUG][       Thread-605949][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:22:04,345 [DEBUG][       Thread-605949][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:22:04,354 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:22:04,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-07-01 13:22:04,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-07-01 13:22:04,372 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:22:04,372 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:22:04,373 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:22:04,381 [DEBUG][       Thread-605949][   transport.py][1871] : EOF in transport thread
2025-07-01 13:22:09,246 [DEBUG][Thread-605951 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:22:14,383 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:22:14,383 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:22:14,384 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:22:14,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-07-01 13:22:14,872 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 21, 53), 11.39, 45.97, 0.0, 33.08, 13.4, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:22:14,873 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:21:53
2025-07-01 13:22:14,958 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:22:14,963 [DEBUG][       Thread-605952][   transport.py][1871] : starting thread (client mode): 0x8173a60
2025-07-01 13:22:14,963 [DEBUG][       Thread-605952][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:22:14,982 [DEBUG][       Thread-605952][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:22:14,982 [ INFO][       Thread-605952][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:22:14,985 [DEBUG][       Thread-605952][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:22:14,985 [DEBUG][       Thread-605952][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:22:14,985 [DEBUG][       Thread-605952][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:22:14,985 [DEBUG][       Thread-605952][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:22:14,985 [DEBUG][       Thread-605952][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:22:14,985 [DEBUG][       Thread-605952][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:22:14,986 [DEBUG][       Thread-605952][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:22:14,986 [DEBUG][       Thread-605952][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:22:14,986 [DEBUG][       Thread-605952][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:22:14,986 [DEBUG][       Thread-605952][   transport.py][1871] : client lang: <none>
2025-07-01 13:22:14,986 [DEBUG][       Thread-605952][   transport.py][1871] : server lang: <none>
2025-07-01 13:22:14,986 [DEBUG][       Thread-605952][   transport.py][1871] : kex follows: False
2025-07-01 13:22:14,986 [DEBUG][       Thread-605952][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:22:14,986 [DEBUG][       Thread-605952][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:22:14,986 [DEBUG][       Thread-605952][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:22:14,986 [DEBUG][       Thread-605952][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:22:14,986 [DEBUG][       Thread-605952][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:22:14,986 [DEBUG][       Thread-605952][   transport.py][1871] : Compression: none
2025-07-01 13:22:14,986 [DEBUG][       Thread-605952][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:22:15,003 [DEBUG][       Thread-605952][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:22:15,003 [DEBUG][       Thread-605952][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:22:15,004 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:22:15,004 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:22:15,005 [DEBUG][       Thread-605952][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:22:15,005 [DEBUG][       Thread-605952][   transport.py][1871] : userauth is OK
2025-07-01 13:22:15,018 [ INFO][       Thread-605952][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:22:15,019 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:22:15,635 [DEBUG][       Thread-605952][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:22:15,635 [DEBUG][       Thread-605952][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:22:15,677 [DEBUG][       Thread-605952][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:22:15,677 [DEBUG][       Thread-605952][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:22:15,681 [DEBUG][       Thread-605952][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:22:15,693 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:22:15,693 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:22:15,695 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:22:15,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:22:15,703 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:22:15,705 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:22:15,705 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:22:15,706 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:22:15,706 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.473206 -999.00  +13.00  42.74     51   +3.30 1 1 2 1 1   888    0 10.08 10.58 ----- 30.3 42.7 28.6 51.3 16.1 -24.6 15.2 -26.1 15.2 -25.7 15.9 -23.0
2025-07-01 13:22:15,706 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:22:15,706 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:22:15,706 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.473206
2025-07-01 13:22:15,706 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:22:15,707 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:22:15,707 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:22:15,707 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:22:15,707 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:22:15,707 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:21:53', tmtdew=11.39, humidity=45.97, cloud=0.0, wind=33.08, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:21:24.998', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:22:15,708 [DEBUG][       Thread-605952][   transport.py][1871] : EOF in transport thread
2025-07-01 13:22:15,784 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:22:15,795 [DEBUG][       Thread-605955][   transport.py][1871] : starting thread (client mode): 0x82b1f30
2025-07-01 13:22:15,795 [DEBUG][       Thread-605955][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:22:15,811 [DEBUG][       Thread-605955][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:22:15,811 [ INFO][       Thread-605955][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:22:15,819 [DEBUG][       Thread-605955][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:22:15,819 [DEBUG][       Thread-605955][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:22:15,819 [DEBUG][       Thread-605955][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:22:15,819 [DEBUG][       Thread-605955][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:22:15,819 [DEBUG][       Thread-605955][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:22:15,819 [DEBUG][       Thread-605955][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:22:15,819 [DEBUG][       Thread-605955][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:22:15,819 [DEBUG][       Thread-605955][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:22:15,819 [DEBUG][       Thread-605955][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:22:15,819 [DEBUG][       Thread-605955][   transport.py][1871] : client lang: <none>
2025-07-01 13:22:15,819 [DEBUG][       Thread-605955][   transport.py][1871] : server lang: <none>
2025-07-01 13:22:15,819 [DEBUG][       Thread-605955][   transport.py][1871] : kex follows: False
2025-07-01 13:22:15,819 [DEBUG][       Thread-605955][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:22:15,819 [DEBUG][       Thread-605955][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:22:15,819 [DEBUG][       Thread-605955][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:22:15,820 [DEBUG][       Thread-605955][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:22:15,820 [DEBUG][       Thread-605955][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:22:15,820 [DEBUG][       Thread-605955][   transport.py][1871] : Compression: none
2025-07-01 13:22:15,820 [DEBUG][       Thread-605955][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:22:15,876 [DEBUG][       Thread-605955][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:22:15,876 [DEBUG][       Thread-605955][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:22:15,877 [DEBUG][       Thread-605955][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:22:15,877 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:22:15,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:22:15,934 [DEBUG][       Thread-605955][   transport.py][1871] : userauth is OK
2025-07-01 13:22:15,934 [DEBUG][       Thread-605955][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:22:15,934 [DEBUG][       Thread-605955][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:22:15,934 [DEBUG][       Thread-605955][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:22:15,934 [DEBUG][       Thread-605955][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:22:15,953 [ INFO][       Thread-605955][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:22:15,953 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:22:15,954 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:22:16,966 [DEBUG][       Thread-605955][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:22:16,966 [DEBUG][       Thread-605955][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:22:17,015 [DEBUG][       Thread-605955][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:22:17,015 [DEBUG][       Thread-605955][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:22:17,024 [DEBUG][       Thread-605955][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:22:17,032 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:22: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')
2025-07-01 13:22:17,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-07-01 13:22:17,048 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:22:17,048 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:22:17,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:22:17,056 [DEBUG][       Thread-605955][   transport.py][1871] : EOF in transport thread
2025-07-01 13:22:18,277 [DEBUG][Thread-605957 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:22:23,646 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:22:23,648 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:22:27,058 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:22:27,058 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:22:27,058 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:22:27,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-07-01 13:22:27,295 [DEBUG][Thread-605958 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:22:27,554 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 21, 53), 11.39, 45.97, 0.0, 33.08, 13.4, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:22:27,554 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:21:53
2025-07-01 13:22:27,639 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:22:27,643 [DEBUG][       Thread-605959][   transport.py][1871] : starting thread (client mode): 0x81a4c40
2025-07-01 13:22:27,643 [DEBUG][       Thread-605959][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:22:27,656 [DEBUG][       Thread-605959][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:22:27,656 [ INFO][       Thread-605959][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:22:27,657 [DEBUG][       Thread-605959][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:22:27,657 [DEBUG][       Thread-605959][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:22:27,657 [DEBUG][       Thread-605959][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:22:27,657 [DEBUG][       Thread-605959][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:22:27,657 [DEBUG][       Thread-605959][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:22:27,657 [DEBUG][       Thread-605959][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:22:27,657 [DEBUG][       Thread-605959][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:22:27,657 [DEBUG][       Thread-605959][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:22:27,657 [DEBUG][       Thread-605959][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:22:27,657 [DEBUG][       Thread-605959][   transport.py][1871] : client lang: <none>
2025-07-01 13:22:27,657 [DEBUG][       Thread-605959][   transport.py][1871] : server lang: <none>
2025-07-01 13:22:27,657 [DEBUG][       Thread-605959][   transport.py][1871] : kex follows: False
2025-07-01 13:22:27,657 [DEBUG][       Thread-605959][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:22:27,657 [DEBUG][       Thread-605959][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:22:27,657 [DEBUG][       Thread-605959][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:22:27,657 [DEBUG][       Thread-605959][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:22:27,657 [DEBUG][       Thread-605959][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:22:27,657 [DEBUG][       Thread-605959][   transport.py][1871] : Compression: none
2025-07-01 13:22:27,657 [DEBUG][       Thread-605959][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:22:27,666 [DEBUG][       Thread-605959][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:22:27,666 [DEBUG][       Thread-605959][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:22:27,667 [DEBUG][       Thread-605959][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:22:27,667 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:22:27,667 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:22:27,667 [DEBUG][       Thread-605959][   transport.py][1871] : userauth is OK
2025-07-01 13:22:27,680 [ INFO][       Thread-605959][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:22:27,680 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:22:28,332 [DEBUG][       Thread-605959][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:22:28,332 [DEBUG][       Thread-605959][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:22:28,373 [DEBUG][       Thread-605959][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:22:28,373 [DEBUG][       Thread-605959][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:22:28,377 [DEBUG][       Thread-605959][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:22:28,390 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:22:28,390 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:22:28,392 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:22:28,394 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:22:28,399 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:22:28,401 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:22:28,401 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:22:28,402 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:22:28,402 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.473553 -999.00  +13.10  38.30     51   +3.40 1 1 2 1 1   888    0 10.32 9.28 ----- 45.4 38.3 36.2 47.4 16.1 -24.6 15.2 -26.2 15.2 -24.2 16.0 -24.7
2025-07-01 13:22:28,402 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:22:28,402 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:22:28,402 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.473553
2025-07-01 13:22:28,403 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:22:28,403 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:22:28,403 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:22:28,403 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:22:28,403 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:22:28,404 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:21:53', tmtdew=11.39, humidity=45.97, cloud=0.0, wind=33.08, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:21:54.979', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:22:28,405 [DEBUG][       Thread-605959][   transport.py][1871] : EOF in transport thread
2025-07-01 13:22:28,488 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:22:28,500 [DEBUG][       Thread-605962][   transport.py][1871] : starting thread (client mode): 0x8a671f0
2025-07-01 13:22:28,500 [DEBUG][       Thread-605962][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:22:28,514 [DEBUG][       Thread-605962][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:22:28,514 [ INFO][       Thread-605962][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:22:28,522 [DEBUG][       Thread-605962][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:22:28,522 [DEBUG][       Thread-605962][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:22:28,522 [DEBUG][       Thread-605962][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:22:28,522 [DEBUG][       Thread-605962][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:22:28,522 [DEBUG][       Thread-605962][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:22:28,522 [DEBUG][       Thread-605962][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:22:28,522 [DEBUG][       Thread-605962][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:22:28,522 [DEBUG][       Thread-605962][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:22:28,522 [DEBUG][       Thread-605962][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:22:28,522 [DEBUG][       Thread-605962][   transport.py][1871] : client lang: <none>
2025-07-01 13:22:28,522 [DEBUG][       Thread-605962][   transport.py][1871] : server lang: <none>
2025-07-01 13:22:28,522 [DEBUG][       Thread-605962][   transport.py][1871] : kex follows: False
2025-07-01 13:22:28,522 [DEBUG][       Thread-605962][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:22:28,522 [DEBUG][       Thread-605962][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:22:28,522 [DEBUG][       Thread-605962][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:22:28,522 [DEBUG][       Thread-605962][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:22:28,522 [DEBUG][       Thread-605962][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:22:28,522 [DEBUG][       Thread-605962][   transport.py][1871] : Compression: none
2025-07-01 13:22:28,522 [DEBUG][       Thread-605962][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:22:28,578 [DEBUG][       Thread-605962][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:22:28,579 [DEBUG][       Thread-605962][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:22:28,579 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:22:28,580 [DEBUG][       Thread-605962][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:22:28,580 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:22:28,635 [DEBUG][       Thread-605962][   transport.py][1871] : userauth is OK
2025-07-01 13:22:28,635 [DEBUG][       Thread-605962][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:22:28,635 [DEBUG][       Thread-605962][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:22:28,635 [DEBUG][       Thread-605962][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:22:28,635 [DEBUG][       Thread-605962][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:22:28,654 [ INFO][       Thread-605962][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:22:28,654 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:22:28,655 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:22:29,662 [DEBUG][       Thread-605962][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:22:29,662 [DEBUG][       Thread-605962][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:22:29,712 [DEBUG][       Thread-605962][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:22:29,712 [DEBUG][       Thread-605962][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:22:29,721 [DEBUG][       Thread-605962][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:22:29,730 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:22:29,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-07-01 13:22:29,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-07-01 13:22:29,749 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:22:29,749 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:22:29,749 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:22:29,757 [DEBUG][       Thread-605962][   transport.py][1871] : EOF in transport thread
2025-07-01 13:22:31,870 [DEBUG][Thread-605964 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:22:36,314 [DEBUG][Thread-605965 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:22:39,760 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:22:39,760 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:22:39,760 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:22:39,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-07-01 13:22:40,254 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 22, 25), 11.35, 46.09, 0.0, 30.54, 13.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:22:40,254 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:22:25
2025-07-01 13:22:40,338 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:22:40,343 [DEBUG][       Thread-605966][   transport.py][1871] : starting thread (client mode): 0x75aa7a0
2025-07-01 13:22:40,343 [DEBUG][       Thread-605966][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:22:40,364 [DEBUG][       Thread-605966][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:22:40,364 [ INFO][       Thread-605966][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:22:40,366 [DEBUG][       Thread-605966][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:22:40,366 [DEBUG][       Thread-605966][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:22:40,366 [DEBUG][       Thread-605966][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:22:40,366 [DEBUG][       Thread-605966][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:22:40,366 [DEBUG][       Thread-605966][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:22:40,366 [DEBUG][       Thread-605966][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:22:40,366 [DEBUG][       Thread-605966][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:22:40,366 [DEBUG][       Thread-605966][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:22:40,367 [DEBUG][       Thread-605966][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:22:40,367 [DEBUG][       Thread-605966][   transport.py][1871] : client lang: <none>
2025-07-01 13:22:40,367 [DEBUG][       Thread-605966][   transport.py][1871] : server lang: <none>
2025-07-01 13:22:40,367 [DEBUG][       Thread-605966][   transport.py][1871] : kex follows: False
2025-07-01 13:22:40,367 [DEBUG][       Thread-605966][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:22:40,367 [DEBUG][       Thread-605966][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:22:40,367 [DEBUG][       Thread-605966][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:22:40,367 [DEBUG][       Thread-605966][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:22:40,367 [DEBUG][       Thread-605966][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:22:40,367 [DEBUG][       Thread-605966][   transport.py][1871] : Compression: none
2025-07-01 13:22:40,367 [DEBUG][       Thread-605966][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:22:40,383 [DEBUG][       Thread-605966][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:22:40,384 [DEBUG][       Thread-605966][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:22:40,384 [DEBUG][       Thread-605966][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:22:40,384 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:22:40,385 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:22:40,386 [DEBUG][       Thread-605966][   transport.py][1871] : userauth is OK
2025-07-01 13:22:40,410 [ INFO][       Thread-605966][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:22:40,411 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:22:41,034 [DEBUG][       Thread-605966][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:22:41,034 [DEBUG][       Thread-605966][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:22:41,077 [DEBUG][       Thread-605966][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:22:41,077 [DEBUG][       Thread-605966][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:22:41,080 [DEBUG][       Thread-605966][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:22:41,093 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:22:41,094 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:22:41,095 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:22:41,097 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:22:41,102 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:22:41,104 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:22:41,104 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:22:41,104 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:22:41,105 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.473553 -999.00  +13.10  38.30     51   +3.40 1 1 2 1 1   888    0 10.32 9.28 ----- 45.4 38.3 36.2 47.4 16.1 -24.6 15.2 -26.2 15.2 -24.2 16.0 -24.7
2025-07-01 13:22:41,105 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:22:41,105 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:22:41,105 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.473553
2025-07-01 13:22:41,105 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:22:41,106 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:22:41,106 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:22:41,106 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:22:41,106 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:22:41,106 [DEBUG][       Thread-605966][   transport.py][1871] : EOF in transport thread
2025-07-01 13:22:41,106 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:22:25', tmtdew=11.35, humidity=46.09, cloud=0.0, wind=30.54, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:21:54.979', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:22:41,190 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:22:41,199 [DEBUG][       Thread-605969][   transport.py][1871] : starting thread (client mode): 0x81579a0
2025-07-01 13:22:41,199 [DEBUG][       Thread-605969][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:22:41,217 [DEBUG][       Thread-605969][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:22:41,217 [ INFO][       Thread-605969][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:22:41,229 [DEBUG][       Thread-605969][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:22:41,229 [DEBUG][       Thread-605969][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:22:41,229 [DEBUG][       Thread-605969][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:22:41,229 [DEBUG][       Thread-605969][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:22:41,229 [DEBUG][       Thread-605969][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:22:41,229 [DEBUG][       Thread-605969][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:22:41,229 [DEBUG][       Thread-605969][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:22:41,229 [DEBUG][       Thread-605969][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:22:41,229 [DEBUG][       Thread-605969][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:22:41,229 [DEBUG][       Thread-605969][   transport.py][1871] : client lang: <none>
2025-07-01 13:22:41,229 [DEBUG][       Thread-605969][   transport.py][1871] : server lang: <none>
2025-07-01 13:22:41,229 [DEBUG][       Thread-605969][   transport.py][1871] : kex follows: False
2025-07-01 13:22:41,230 [DEBUG][       Thread-605969][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:22:41,230 [DEBUG][       Thread-605969][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:22:41,230 [DEBUG][       Thread-605969][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:22:41,230 [DEBUG][       Thread-605969][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:22:41,230 [DEBUG][       Thread-605969][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:22:41,230 [DEBUG][       Thread-605969][   transport.py][1871] : Compression: none
2025-07-01 13:22:41,230 [DEBUG][       Thread-605969][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:22:41,280 [DEBUG][       Thread-605969][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:22:41,281 [DEBUG][       Thread-605969][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:22:41,281 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:22:41,282 [DEBUG][       Thread-605969][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:22:41,282 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:22:41,337 [DEBUG][       Thread-605969][   transport.py][1871] : userauth is OK
2025-07-01 13:22:41,337 [DEBUG][       Thread-605969][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:22:41,337 [DEBUG][       Thread-605969][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:22:41,337 [DEBUG][       Thread-605969][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:22:41,337 [DEBUG][       Thread-605969][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:22:41,356 [ INFO][       Thread-605969][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:22:41,356 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:22:41,357 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:22:42,369 [DEBUG][       Thread-605969][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:22:42,369 [DEBUG][       Thread-605969][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:22:42,420 [DEBUG][       Thread-605969][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:22:42,420 [DEBUG][       Thread-605969][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:22:42,429 [DEBUG][       Thread-605969][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:22:42,439 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:22:42,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-07-01 13:22:42,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-07-01 13:22:42,457 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:22:42,457 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:22:42,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:22:42,465 [DEBUG][       Thread-605969][   transport.py][1871] : EOF in transport thread
2025-07-01 13:22:45,339 [DEBUG][Thread-605971 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:22:52,468 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:22:52,468 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:22:52,468 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:22:52,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-07-01 13:22:52,958 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 22, 25), 11.35, 46.09, 0.0, 30.54, 13.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:22:52,958 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:22:25
2025-07-01 13:22:53,043 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:22:53,048 [DEBUG][       Thread-605972][   transport.py][1871] : starting thread (client mode): 0x81c8a60
2025-07-01 13:22:53,048 [DEBUG][       Thread-605972][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:22:53,058 [DEBUG][       Thread-605972][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:22:53,058 [ INFO][       Thread-605972][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:22:53,062 [DEBUG][       Thread-605972][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:22:53,062 [DEBUG][       Thread-605972][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:22:53,062 [DEBUG][       Thread-605972][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:22:53,062 [DEBUG][       Thread-605972][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:22:53,062 [DEBUG][       Thread-605972][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:22:53,062 [DEBUG][       Thread-605972][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:22:53,062 [DEBUG][       Thread-605972][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:22:53,062 [DEBUG][       Thread-605972][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:22:53,062 [DEBUG][       Thread-605972][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:22:53,062 [DEBUG][       Thread-605972][   transport.py][1871] : client lang: <none>
2025-07-01 13:22:53,062 [DEBUG][       Thread-605972][   transport.py][1871] : server lang: <none>
2025-07-01 13:22:53,062 [DEBUG][       Thread-605972][   transport.py][1871] : kex follows: False
2025-07-01 13:22:53,062 [DEBUG][       Thread-605972][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:22:53,062 [DEBUG][       Thread-605972][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:22:53,062 [DEBUG][       Thread-605972][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:22:53,062 [DEBUG][       Thread-605972][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:22:53,062 [DEBUG][       Thread-605972][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:22:53,062 [DEBUG][       Thread-605972][   transport.py][1871] : Compression: none
2025-07-01 13:22:53,062 [DEBUG][       Thread-605972][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:22:53,073 [DEBUG][       Thread-605972][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:22:53,074 [DEBUG][       Thread-605972][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:22:53,074 [DEBUG][       Thread-605972][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:22:53,074 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:22:53,074 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:22:53,075 [DEBUG][       Thread-605972][   transport.py][1871] : userauth is OK
2025-07-01 13:22:53,099 [ INFO][       Thread-605972][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:22:53,099 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:22:53,802 [DEBUG][       Thread-605972][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:22:53,803 [DEBUG][       Thread-605972][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:22:53,845 [DEBUG][       Thread-605972][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:22:53,845 [DEBUG][       Thread-605972][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:22:53,848 [DEBUG][       Thread-605972][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:22:53,859 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:22:53,859 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:22:53,861 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:22:53,862 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:22:53,868 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:22:53,871 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:22:53,871 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:22:53,872 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:22:53,872 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.473553 -999.00  +13.10  38.30     51   +3.40 1 1 2 1 1   888    0 10.32 9.28 ----- 45.4 38.3 36.2 47.4 16.1 -24.6 15.2 -26.2 15.2 -24.2 16.0 -24.7
2025-07-01 13:22:53,872 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:22:53,872 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:22:53,872 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.473553
2025-07-01 13:22:53,872 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:22:53,873 [DEBUG][       Thread-605972][   transport.py][1871] : EOF in transport thread
2025-07-01 13:22:53,873 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:22:53,874 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:22:53,874 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:22:53,874 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:22:53,874 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:22:25', tmtdew=11.35, humidity=46.09, cloud=0.0, wind=30.54, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:21:54.979', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:22:53,957 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:22:53,967 [DEBUG][       Thread-605975][   transport.py][1871] : starting thread (client mode): 0x81da7d0
2025-07-01 13:22:53,967 [DEBUG][       Thread-605975][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:22:53,982 [DEBUG][       Thread-605975][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:22:53,982 [ INFO][       Thread-605975][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:22:53,989 [DEBUG][       Thread-605975][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:22:53,989 [DEBUG][       Thread-605975][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:22:53,989 [DEBUG][       Thread-605975][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:22:53,989 [DEBUG][       Thread-605975][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:22:53,990 [DEBUG][       Thread-605975][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:22:53,990 [DEBUG][       Thread-605975][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:22:53,990 [DEBUG][       Thread-605975][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:22:53,990 [DEBUG][       Thread-605975][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:22:53,990 [DEBUG][       Thread-605975][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:22:53,990 [DEBUG][       Thread-605975][   transport.py][1871] : client lang: <none>
2025-07-01 13:22:53,990 [DEBUG][       Thread-605975][   transport.py][1871] : server lang: <none>
2025-07-01 13:22:53,990 [DEBUG][       Thread-605975][   transport.py][1871] : kex follows: False
2025-07-01 13:22:53,990 [DEBUG][       Thread-605975][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:22:53,990 [DEBUG][       Thread-605975][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:22:53,990 [DEBUG][       Thread-605975][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:22:53,990 [DEBUG][       Thread-605975][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:22:53,990 [DEBUG][       Thread-605975][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:22:53,990 [DEBUG][       Thread-605975][   transport.py][1871] : Compression: none
2025-07-01 13:22:53,990 [DEBUG][       Thread-605975][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:22:54,047 [DEBUG][       Thread-605975][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:22:54,048 [DEBUG][       Thread-605975][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:22:54,048 [DEBUG][       Thread-605975][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:22:54,049 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:22:54,049 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:22:54,104 [DEBUG][       Thread-605975][   transport.py][1871] : userauth is OK
2025-07-01 13:22:54,104 [DEBUG][       Thread-605975][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:22:54,104 [DEBUG][       Thread-605975][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:22:54,104 [DEBUG][       Thread-605975][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:22:54,104 [DEBUG][       Thread-605975][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:22:54,122 [ INFO][       Thread-605975][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:22:54,123 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:22:54,123 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:22:54,371 [DEBUG][Thread-605977 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:22:55,155 [DEBUG][       Thread-605975][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:22:55,155 [DEBUG][       Thread-605975][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:22:55,204 [DEBUG][       Thread-605975][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:22:55,204 [DEBUG][       Thread-605975][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:22:55,213 [DEBUG][       Thread-605975][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:22:55,222 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:22:55,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-07-01 13:22:55,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-07-01 13:22:55,240 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:22:55,241 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:22:55,241 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:22:55,249 [DEBUG][       Thread-605975][   transport.py][1871] : EOF in transport thread
2025-07-01 13:23:03,392 [DEBUG][Thread-605978 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:23:05,252 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:23:05,252 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:23:05,252 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:23:05,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-07-01 13:23:05,726 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 22, 56), 11.28, 46.31, 0.0, 29.38, 13.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:23:05,726 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:22:56
2025-07-01 13:23:05,810 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:23:05,814 [DEBUG][       Thread-605979][   transport.py][1871] : starting thread (client mode): 0x81caf20
2025-07-01 13:23:05,814 [DEBUG][       Thread-605979][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:23:05,834 [DEBUG][       Thread-605979][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:23:05,834 [ INFO][       Thread-605979][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:23:05,838 [DEBUG][       Thread-605979][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:23:05,838 [DEBUG][       Thread-605979][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:23:05,838 [DEBUG][       Thread-605979][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:23:05,838 [DEBUG][       Thread-605979][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:23:05,838 [DEBUG][       Thread-605979][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:23:05,838 [DEBUG][       Thread-605979][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:23:05,838 [DEBUG][       Thread-605979][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:23:05,838 [DEBUG][       Thread-605979][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:23:05,838 [DEBUG][       Thread-605979][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:23:05,838 [DEBUG][       Thread-605979][   transport.py][1871] : client lang: <none>
2025-07-01 13:23:05,838 [DEBUG][       Thread-605979][   transport.py][1871] : server lang: <none>
2025-07-01 13:23:05,838 [DEBUG][       Thread-605979][   transport.py][1871] : kex follows: False
2025-07-01 13:23:05,838 [DEBUG][       Thread-605979][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:23:05,838 [DEBUG][       Thread-605979][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:23:05,838 [DEBUG][       Thread-605979][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:23:05,838 [DEBUG][       Thread-605979][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:23:05,838 [DEBUG][       Thread-605979][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:23:05,838 [DEBUG][       Thread-605979][   transport.py][1871] : Compression: none
2025-07-01 13:23:05,838 [DEBUG][       Thread-605979][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:23:05,855 [DEBUG][       Thread-605979][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:23:05,856 [DEBUG][       Thread-605979][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:23:05,856 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:23:05,856 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:23:05,857 [DEBUG][       Thread-605979][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:23:05,857 [DEBUG][       Thread-605979][   transport.py][1871] : userauth is OK
2025-07-01 13:23:05,870 [ INFO][       Thread-605979][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:23:05,872 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:23:06,526 [DEBUG][       Thread-605979][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:23:06,527 [DEBUG][       Thread-605979][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:23:06,569 [DEBUG][       Thread-605979][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:23:06,569 [DEBUG][       Thread-605979][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:23:06,571 [DEBUG][       Thread-605979][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:23:06,581 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:23:06,582 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:23:06,583 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:23:06,585 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:23:06,589 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:23:06,590 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:23:06,591 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:23:06,591 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:23:06,591 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.474248 -999.00  +12.80  30.51     52   +3.20 1 1 2 1 1   888    0 10.15 6.27 ----- 33.1 30.5 350.2 46.5 16.0 -24.8 15.2 -26.5 15.1 -24.4 15.8 -23.0
2025-07-01 13:23:06,591 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:23:06,591 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:23:06,591 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.474248
2025-07-01 13:23:06,592 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:23:06,592 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:23:06,592 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:23:06,592 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:23:06,593 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:23:06,593 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:22:56', tmtdew=11.28, humidity=46.31, cloud=0.0, wind=29.38, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:22:55.027', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:23:06,594 [DEBUG][       Thread-605979][   transport.py][1871] : EOF in transport thread
2025-07-01 13:23:06,686 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:23:06,696 [DEBUG][       Thread-605982][   transport.py][1871] : starting thread (client mode): 0x827d540
2025-07-01 13:23:06,696 [DEBUG][       Thread-605982][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:23:06,712 [DEBUG][       Thread-605982][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:23:06,712 [ INFO][       Thread-605982][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:23:06,720 [DEBUG][       Thread-605982][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:23:06,720 [DEBUG][       Thread-605982][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:23:06,720 [DEBUG][       Thread-605982][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:23:06,720 [DEBUG][       Thread-605982][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:23:06,720 [DEBUG][       Thread-605982][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:23:06,720 [DEBUG][       Thread-605982][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:23:06,720 [DEBUG][       Thread-605982][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:23:06,720 [DEBUG][       Thread-605982][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:23:06,720 [DEBUG][       Thread-605982][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:23:06,720 [DEBUG][       Thread-605982][   transport.py][1871] : client lang: <none>
2025-07-01 13:23:06,720 [DEBUG][       Thread-605982][   transport.py][1871] : server lang: <none>
2025-07-01 13:23:06,720 [DEBUG][       Thread-605982][   transport.py][1871] : kex follows: False
2025-07-01 13:23:06,720 [DEBUG][       Thread-605982][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:23:06,720 [DEBUG][       Thread-605982][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:23:06,720 [DEBUG][       Thread-605982][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:23:06,720 [DEBUG][       Thread-605982][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:23:06,720 [DEBUG][       Thread-605982][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:23:06,721 [DEBUG][       Thread-605982][   transport.py][1871] : Compression: none
2025-07-01 13:23:06,721 [DEBUG][       Thread-605982][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:23:06,777 [DEBUG][       Thread-605982][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:23:06,777 [DEBUG][       Thread-605982][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:23:06,777 [DEBUG][       Thread-605982][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:23:06,777 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:23:06,777 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:23:06,834 [DEBUG][       Thread-605982][   transport.py][1871] : userauth is OK
2025-07-01 13:23:06,834 [DEBUG][       Thread-605982][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:23:06,834 [DEBUG][       Thread-605982][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:23:06,834 [DEBUG][       Thread-605982][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:23:06,834 [DEBUG][       Thread-605982][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:23:06,852 [ INFO][       Thread-605982][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:23:06,852 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:23:06,852 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:23:07,891 [DEBUG][       Thread-605982][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:23:07,891 [DEBUG][       Thread-605982][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:23:07,939 [DEBUG][       Thread-605982][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:23:07,940 [DEBUG][       Thread-605982][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:23:07,948 [DEBUG][       Thread-605982][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:23:07,957 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:23:07,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-07-01 13:23:07,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-07-01 13:23:07,975 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:23:07,975 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:23:07,976 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:23:07,984 [DEBUG][       Thread-605982][   transport.py][1871] : EOF in transport thread
2025-07-01 13:23:12,412 [DEBUG][Thread-605984 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:23:17,986 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:23:17,987 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:23:17,987 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:23:17,990 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:23:18,475 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 22, 56), 11.28, 46.31, 0.0, 29.38, 13.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:23:18,475 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:22:56
2025-07-01 13:23:18,561 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:23:18,566 [DEBUG][       Thread-605985][   transport.py][1871] : starting thread (client mode): 0x8170250
2025-07-01 13:23:18,566 [DEBUG][       Thread-605985][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:23:18,582 [DEBUG][       Thread-605985][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:23:18,582 [ INFO][       Thread-605985][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:23:18,584 [DEBUG][       Thread-605985][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:23:18,584 [DEBUG][       Thread-605985][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:23:18,584 [DEBUG][       Thread-605985][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:23:18,584 [DEBUG][       Thread-605985][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:23:18,584 [DEBUG][       Thread-605985][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:23:18,584 [DEBUG][       Thread-605985][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:23:18,584 [DEBUG][       Thread-605985][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:23:18,584 [DEBUG][       Thread-605985][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:23:18,584 [DEBUG][       Thread-605985][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:23:18,584 [DEBUG][       Thread-605985][   transport.py][1871] : client lang: <none>
2025-07-01 13:23:18,584 [DEBUG][       Thread-605985][   transport.py][1871] : server lang: <none>
2025-07-01 13:23:18,584 [DEBUG][       Thread-605985][   transport.py][1871] : kex follows: False
2025-07-01 13:23:18,585 [DEBUG][       Thread-605985][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:23:18,585 [DEBUG][       Thread-605985][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:23:18,585 [DEBUG][       Thread-605985][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:23:18,585 [DEBUG][       Thread-605985][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:23:18,585 [DEBUG][       Thread-605985][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:23:18,585 [DEBUG][       Thread-605985][   transport.py][1871] : Compression: none
2025-07-01 13:23:18,585 [DEBUG][       Thread-605985][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:23:18,597 [DEBUG][       Thread-605985][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:23:18,598 [DEBUG][       Thread-605985][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:23:18,598 [DEBUG][       Thread-605985][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:23:18,598 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:23:18,598 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:23:18,599 [DEBUG][       Thread-605985][   transport.py][1871] : userauth is OK
2025-07-01 13:23:18,624 [ INFO][       Thread-605985][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:23:18,624 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:23:19,395 [DEBUG][       Thread-605985][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:23:19,396 [DEBUG][       Thread-605985][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:23:19,437 [DEBUG][       Thread-605985][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:23:19,437 [DEBUG][       Thread-605985][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:23:19,440 [DEBUG][       Thread-605985][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:23:19,454 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:23:19,454 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:23:19,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:23:19,458 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:23:19,463 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:23:19,465 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:23:19,465 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:23:19,466 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:23:19,466 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.474248 -999.00  +12.80  30.51     52   +3.20 1 1 2 1 1   888    0 10.15 6.27 ----- 33.1 30.5 350.2 46.5 16.0 -24.8 15.2 -26.5 15.1 -24.4 15.8 -23.0
2025-07-01 13:23:19,466 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:23:19,466 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:23:19,466 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.474248
2025-07-01 13:23:19,467 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:23:19,467 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:23:19,467 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:23:19,467 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:23:19,467 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:23:19,468 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:22:56', tmtdew=11.28, humidity=46.31, cloud=0.0, wind=29.38, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:22:55.027', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:23:19,468 [DEBUG][       Thread-605985][   transport.py][1871] : EOF in transport thread
2025-07-01 13:23:19,551 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:23:19,561 [DEBUG][       Thread-605988][   transport.py][1871] : starting thread (client mode): 0x8107ac0
2025-07-01 13:23:19,561 [DEBUG][       Thread-605988][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:23:19,576 [DEBUG][       Thread-605988][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:23:19,576 [ INFO][       Thread-605988][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:23:19,584 [DEBUG][       Thread-605988][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:23:19,584 [DEBUG][       Thread-605988][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:23:19,584 [DEBUG][       Thread-605988][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:23:19,584 [DEBUG][       Thread-605988][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:23:19,584 [DEBUG][       Thread-605988][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:23:19,584 [DEBUG][       Thread-605988][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:23:19,584 [DEBUG][       Thread-605988][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:23:19,584 [DEBUG][       Thread-605988][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:23:19,584 [DEBUG][       Thread-605988][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:23:19,584 [DEBUG][       Thread-605988][   transport.py][1871] : client lang: <none>
2025-07-01 13:23:19,585 [DEBUG][       Thread-605988][   transport.py][1871] : server lang: <none>
2025-07-01 13:23:19,585 [DEBUG][       Thread-605988][   transport.py][1871] : kex follows: False
2025-07-01 13:23:19,585 [DEBUG][       Thread-605988][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:23:19,585 [DEBUG][       Thread-605988][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:23:19,585 [DEBUG][       Thread-605988][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:23:19,585 [DEBUG][       Thread-605988][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:23:19,585 [DEBUG][       Thread-605988][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:23:19,585 [DEBUG][       Thread-605988][   transport.py][1871] : Compression: none
2025-07-01 13:23:19,585 [DEBUG][       Thread-605988][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:23:19,645 [DEBUG][       Thread-605988][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:23:19,646 [DEBUG][       Thread-605988][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:23:19,646 [DEBUG][       Thread-605988][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:23:19,646 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:23:19,647 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:23:19,702 [DEBUG][       Thread-605988][   transport.py][1871] : userauth is OK
2025-07-01 13:23:19,702 [DEBUG][       Thread-605988][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:23:19,702 [DEBUG][       Thread-605988][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:23:19,702 [DEBUG][       Thread-605988][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:23:19,702 [DEBUG][       Thread-605988][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:23:19,721 [ INFO][       Thread-605988][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:23:19,721 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:23:19,722 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:23:20,765 [DEBUG][       Thread-605988][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:23:20,766 [DEBUG][       Thread-605988][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:23:20,816 [DEBUG][       Thread-605988][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:23:20,816 [DEBUG][       Thread-605988][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:23:20,825 [DEBUG][       Thread-605988][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:23:20,834 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:23:20,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-07-01 13:23:20,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-07-01 13:23:20,852 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:23:20,852 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:23:20,853 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:23:20,861 [DEBUG][       Thread-605988][   transport.py][1871] : EOF in transport thread
2025-07-01 13:23:21,438 [DEBUG][Thread-605990 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:23:23,785 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:23:23,786 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:23:30,459 [DEBUG][Thread-605991 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:23:30,863 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:23:30,863 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:23:30,863 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:23:30,866 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:23:31,348 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 23, 28), 11.36, 45.94, 0.0, 35.61, 13.36, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:23:31,348 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:23:28
2025-07-01 13:23:31,433 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:23:31,440 [DEBUG][       Thread-605992][   transport.py][1871] : starting thread (client mode): 0x75aa7a0
2025-07-01 13:23:31,440 [DEBUG][       Thread-605992][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:23:31,462 [DEBUG][       Thread-605992][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:23:31,462 [ INFO][       Thread-605992][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:23:31,465 [DEBUG][       Thread-605992][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:23:31,466 [DEBUG][       Thread-605992][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:23:31,466 [DEBUG][       Thread-605992][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:23:31,466 [DEBUG][       Thread-605992][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:23:31,466 [DEBUG][       Thread-605992][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:23:31,466 [DEBUG][       Thread-605992][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:23:31,466 [DEBUG][       Thread-605992][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:23:31,466 [DEBUG][       Thread-605992][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:23:31,466 [DEBUG][       Thread-605992][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:23:31,466 [DEBUG][       Thread-605992][   transport.py][1871] : client lang: <none>
2025-07-01 13:23:31,466 [DEBUG][       Thread-605992][   transport.py][1871] : server lang: <none>
2025-07-01 13:23:31,466 [DEBUG][       Thread-605992][   transport.py][1871] : kex follows: False
2025-07-01 13:23:31,466 [DEBUG][       Thread-605992][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:23:31,466 [DEBUG][       Thread-605992][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:23:31,466 [DEBUG][       Thread-605992][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:23:31,466 [DEBUG][       Thread-605992][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:23:31,466 [DEBUG][       Thread-605992][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:23:31,466 [DEBUG][       Thread-605992][   transport.py][1871] : Compression: none
2025-07-01 13:23:31,466 [DEBUG][       Thread-605992][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:23:31,484 [DEBUG][       Thread-605992][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:23:31,484 [DEBUG][       Thread-605992][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:23:31,485 [DEBUG][       Thread-605992][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:23:31,485 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:23:31,485 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:23:31,486 [DEBUG][       Thread-605992][   transport.py][1871] : userauth is OK
2025-07-01 13:23:31,510 [ INFO][       Thread-605992][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:23:31,511 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:23:31,915 [DEBUG][Thread-605994 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:23:32,270 [DEBUG][       Thread-605992][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:23:32,271 [DEBUG][       Thread-605992][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:23:32,313 [DEBUG][       Thread-605992][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:23:32,313 [DEBUG][       Thread-605992][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:23:32,317 [DEBUG][       Thread-605992][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:23:32,329 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:23:32,330 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:23:32,333 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:23:32,335 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:23:32,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:23:32,341 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:23:32,342 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:23:32,342 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:23:32,342 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.474248 -999.00  +12.80  30.51     52   +3.20 1 1 2 1 1   888    0 10.15 6.27 ----- 33.1 30.5 350.2 46.5 16.0 -24.8 15.2 -26.5 15.1 -24.4 15.8 -23.0
2025-07-01 13:23:32,342 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:23:32,343 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:23:32,343 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.474248
2025-07-01 13:23:32,343 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:23:32,344 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:23:32,344 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:23:32,344 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:23:32,344 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:23:32,344 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:23:28', tmtdew=11.36, humidity=45.94, cloud=0.0, wind=35.61, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:22:55.027', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:23:32,345 [DEBUG][       Thread-605992][   transport.py][1871] : EOF in transport thread
2025-07-01 13:23:32,428 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:23:32,441 [DEBUG][       Thread-605996][   transport.py][1871] : starting thread (client mode): 0x8393c40
2025-07-01 13:23:32,441 [DEBUG][       Thread-605996][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:23:32,456 [DEBUG][       Thread-605996][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:23:32,456 [ INFO][       Thread-605996][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:23:32,463 [DEBUG][       Thread-605996][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:23:32,464 [DEBUG][       Thread-605996][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:23:32,464 [DEBUG][       Thread-605996][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:23:32,464 [DEBUG][       Thread-605996][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:23:32,464 [DEBUG][       Thread-605996][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:23:32,464 [DEBUG][       Thread-605996][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:23:32,464 [DEBUG][       Thread-605996][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:23:32,464 [DEBUG][       Thread-605996][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:23:32,464 [DEBUG][       Thread-605996][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:23:32,464 [DEBUG][       Thread-605996][   transport.py][1871] : client lang: <none>
2025-07-01 13:23:32,464 [DEBUG][       Thread-605996][   transport.py][1871] : server lang: <none>
2025-07-01 13:23:32,464 [DEBUG][       Thread-605996][   transport.py][1871] : kex follows: False
2025-07-01 13:23:32,464 [DEBUG][       Thread-605996][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:23:32,464 [DEBUG][       Thread-605996][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:23:32,464 [DEBUG][       Thread-605996][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:23:32,464 [DEBUG][       Thread-605996][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:23:32,464 [DEBUG][       Thread-605996][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:23:32,464 [DEBUG][       Thread-605996][   transport.py][1871] : Compression: none
2025-07-01 13:23:32,464 [DEBUG][       Thread-605996][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:23:32,520 [DEBUG][       Thread-605996][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:23:32,521 [DEBUG][       Thread-605996][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:23:32,521 [DEBUG][       Thread-605996][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:23:32,522 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:23:32,522 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:23:32,577 [DEBUG][       Thread-605996][   transport.py][1871] : userauth is OK
2025-07-01 13:23:32,577 [DEBUG][       Thread-605996][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:23:32,577 [DEBUG][       Thread-605996][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:23:32,577 [DEBUG][       Thread-605996][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:23:32,577 [DEBUG][       Thread-605996][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:23:32,596 [ INFO][       Thread-605996][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:23:32,596 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:23:32,597 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:23:33,631 [DEBUG][       Thread-605996][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:23:33,632 [DEBUG][       Thread-605996][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:23:33,680 [DEBUG][       Thread-605996][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:23:33,680 [DEBUG][       Thread-605996][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:23:33,690 [DEBUG][       Thread-605996][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:23:33,699 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:23:33,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-07-01 13:23:33,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-07-01 13:23:33,717 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:23:33,717 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:23:33,718 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:23:33,726 [DEBUG][       Thread-605996][   transport.py][1871] : EOF in transport thread
2025-07-01 13:23:39,481 [DEBUG][Thread-605998 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:23:43,728 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:23:43,729 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:23:43,729 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:23: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-07-01 13:23:44,218 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 23, 28), 11.36, 45.94, 0.0, 35.61, 13.36, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:23:44,218 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:23:28
2025-07-01 13:23:44,304 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:23:44,307 [DEBUG][       Thread-605999][   transport.py][1871] : starting thread (client mode): 0x8173670
2025-07-01 13:23:44,307 [DEBUG][       Thread-605999][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:23:44,323 [DEBUG][       Thread-605999][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:23:44,323 [ INFO][       Thread-605999][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:23:44,326 [DEBUG][       Thread-605999][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:23:44,326 [DEBUG][       Thread-605999][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:23:44,326 [DEBUG][       Thread-605999][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:23:44,326 [DEBUG][       Thread-605999][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:23:44,326 [DEBUG][       Thread-605999][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:23:44,326 [DEBUG][       Thread-605999][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:23:44,326 [DEBUG][       Thread-605999][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:23:44,326 [DEBUG][       Thread-605999][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:23:44,326 [DEBUG][       Thread-605999][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:23:44,326 [DEBUG][       Thread-605999][   transport.py][1871] : client lang: <none>
2025-07-01 13:23:44,326 [DEBUG][       Thread-605999][   transport.py][1871] : server lang: <none>
2025-07-01 13:23:44,326 [DEBUG][       Thread-605999][   transport.py][1871] : kex follows: False
2025-07-01 13:23:44,326 [DEBUG][       Thread-605999][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:23:44,326 [DEBUG][       Thread-605999][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:23:44,326 [DEBUG][       Thread-605999][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:23:44,326 [DEBUG][       Thread-605999][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:23:44,326 [DEBUG][       Thread-605999][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:23:44,326 [DEBUG][       Thread-605999][   transport.py][1871] : Compression: none
2025-07-01 13:23:44,326 [DEBUG][       Thread-605999][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:23:44,345 [DEBUG][       Thread-605999][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:23:44,345 [DEBUG][       Thread-605999][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:23:44,346 [DEBUG][       Thread-605999][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:23:44,346 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:23:44,346 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:23:44,347 [DEBUG][       Thread-605999][   transport.py][1871] : userauth is OK
2025-07-01 13:23:44,395 [ INFO][       Thread-605999][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:23:44,395 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:23:45,064 [DEBUG][       Thread-605999][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:23:45,064 [DEBUG][       Thread-605999][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:23:45,109 [DEBUG][       Thread-605999][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:23:45,109 [DEBUG][       Thread-605999][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:23:45,112 [DEBUG][       Thread-605999][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:23:45,125 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:23:45,125 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:23:45,127 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:23:45,129 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:23:45,134 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:23:45,136 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:23:45,136 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:23:45,137 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:23:45,137 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.474595 -999.00  +13.00  34.28     52   +3.50 1 1 2 1 1   888    0 10.13 4.57 ----- 28.7 34.3 18.8 45.7 16.0 -24.0 15.2 -25.5 15.2 -23.9 15.9 -22.9
2025-07-01 13:23:45,137 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:23:45,137 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:23:45,137 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.474595
2025-07-01 13:23:45,138 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:23:45,138 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:23:45,138 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:23:45,138 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:23:45,138 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:23:45,138 [DEBUG][       Thread-605999][   transport.py][1871] : EOF in transport thread
2025-07-01 13:23:45,139 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:23:28', tmtdew=11.36, humidity=45.94, cloud=0.0, wind=35.61, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:23:25.008', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:23:45,222 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:23:48,512 [DEBUG][Thread-606002 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:23:57,531 [DEBUG][Thread-606003 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:24:06,553 [DEBUG][Thread-606004 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:24:15,577 [DEBUG][Thread-606005 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:24:23,932 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:24:23,934 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:24:24,603 [DEBUG][Thread-606006 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:24:31,965 [DEBUG][Thread-606007 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:24:33,621 [DEBUG][Thread-606008 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:24:42,642 [DEBUG][Thread-606009 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:24:51,663 [DEBUG][Thread-606010 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:25:00,685 [DEBUG][Thread-606011 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:25:09,706 [DEBUG][Thread-606012 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:25:18,729 [DEBUG][Thread-606013 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:25:24,071 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:25:24,073 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:25:27,752 [DEBUG][Thread-606014 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:25:32,017 [DEBUG][Thread-606015 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:25:36,771 [DEBUG][Thread-606016 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:25:45,787 [DEBUG][Thread-606017 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:25:54,808 [DEBUG][Thread-606018 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:25:54,836 [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-07-01 13:26:03,831 [DEBUG][Thread-606019 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:26:04,840 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:26:04,840 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:26:04,840 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:26:04,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-07-01 13:26:05,352 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 25, 36), 11.3, 46.38, 0.0, 33.43, 13.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:26:05,352 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:25:36
2025-07-01 13:26:05,438 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:26:05,442 [DEBUG][       Thread-606020][   transport.py][1871] : starting thread (client mode): 0x81a5a20
2025-07-01 13:26:05,442 [DEBUG][       Thread-606020][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:26:05,463 [DEBUG][       Thread-606020][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:26:05,463 [ INFO][       Thread-606020][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:26:05,464 [DEBUG][       Thread-606020][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:26:05,464 [DEBUG][       Thread-606020][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:26:05,464 [DEBUG][       Thread-606020][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:26:05,464 [DEBUG][       Thread-606020][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:26:05,464 [DEBUG][       Thread-606020][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:26:05,464 [DEBUG][       Thread-606020][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:26:05,464 [DEBUG][       Thread-606020][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:26:05,464 [DEBUG][       Thread-606020][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:26:05,464 [DEBUG][       Thread-606020][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:26:05,464 [DEBUG][       Thread-606020][   transport.py][1871] : client lang: <none>
2025-07-01 13:26:05,464 [DEBUG][       Thread-606020][   transport.py][1871] : server lang: <none>
2025-07-01 13:26:05,464 [DEBUG][       Thread-606020][   transport.py][1871] : kex follows: False
2025-07-01 13:26:05,464 [DEBUG][       Thread-606020][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:26:05,464 [DEBUG][       Thread-606020][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:26:05,464 [DEBUG][       Thread-606020][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:26:05,464 [DEBUG][       Thread-606020][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:26:05,464 [DEBUG][       Thread-606020][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:26:05,465 [DEBUG][       Thread-606020][   transport.py][1871] : Compression: none
2025-07-01 13:26:05,465 [DEBUG][       Thread-606020][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:26:05,483 [DEBUG][       Thread-606020][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:26:05,483 [DEBUG][       Thread-606020][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:26:05,484 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:26:05,484 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:26:05,484 [DEBUG][       Thread-606020][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:26:05,485 [DEBUG][       Thread-606020][   transport.py][1871] : userauth is OK
2025-07-01 13:26:05,497 [ INFO][       Thread-606020][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:26:05,498 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:26:06,137 [DEBUG][       Thread-606020][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:26:06,138 [DEBUG][       Thread-606020][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:26:06,181 [DEBUG][       Thread-606020][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:26:06,181 [DEBUG][       Thread-606020][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:26:06,185 [DEBUG][       Thread-606020][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:26:06,197 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:26:06,197 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:26:06,199 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:26:06,201 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:26:06,207 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:26:06,209 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:26:06,209 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:26:06,210 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:26:06,210 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.475984 -999.00  +13.20  34.11     51   +3.40 1 1 2 1 1   888    0 9.69 -0.95 ----- 33.0 34.1 20.2 55.7 16.1 -24.7 15.2 -25.5 15.2 -24.5 16.1 -22.9
2025-07-01 13:26:06,210 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:26:06,210 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:26:06,210 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.475984
2025-07-01 13:26:06,211 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:26:06,211 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:26:06,211 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:26:06,211 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:26:06,211 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:26:06,212 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:25:36', tmtdew=11.3, humidity=46.38, cloud=0.0, wind=33.43, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:25:25.018', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:26:06,213 [DEBUG][       Thread-606020][   transport.py][1871] : EOF in transport thread
2025-07-01 13:26:06,305 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:26:06,316 [DEBUG][       Thread-606023][   transport.py][1871] : starting thread (client mode): 0x827d9f0
2025-07-01 13:26:06,316 [DEBUG][       Thread-606023][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:26:06,331 [DEBUG][       Thread-606023][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:26:06,331 [ INFO][       Thread-606023][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:26:06,338 [DEBUG][       Thread-606023][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:26:06,339 [DEBUG][       Thread-606023][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:26:06,339 [DEBUG][       Thread-606023][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:26:06,339 [DEBUG][       Thread-606023][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:26:06,339 [DEBUG][       Thread-606023][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:26:06,339 [DEBUG][       Thread-606023][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:26:06,339 [DEBUG][       Thread-606023][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:26:06,339 [DEBUG][       Thread-606023][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:26:06,339 [DEBUG][       Thread-606023][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:26:06,339 [DEBUG][       Thread-606023][   transport.py][1871] : client lang: <none>
2025-07-01 13:26:06,339 [DEBUG][       Thread-606023][   transport.py][1871] : server lang: <none>
2025-07-01 13:26:06,339 [DEBUG][       Thread-606023][   transport.py][1871] : kex follows: False
2025-07-01 13:26:06,339 [DEBUG][       Thread-606023][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:26:06,339 [DEBUG][       Thread-606023][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:26:06,339 [DEBUG][       Thread-606023][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:26:06,339 [DEBUG][       Thread-606023][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:26:06,339 [DEBUG][       Thread-606023][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:26:06,339 [DEBUG][       Thread-606023][   transport.py][1871] : Compression: none
2025-07-01 13:26:06,339 [DEBUG][       Thread-606023][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:26:06,396 [DEBUG][       Thread-606023][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:26:06,397 [DEBUG][       Thread-606023][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:26:06,397 [DEBUG][       Thread-606023][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:26:06,398 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:26:06,398 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:26:06,462 [DEBUG][       Thread-606023][   transport.py][1871] : userauth is OK
2025-07-01 13:26:06,462 [DEBUG][       Thread-606023][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:26:06,462 [DEBUG][       Thread-606023][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:26:06,462 [DEBUG][       Thread-606023][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:26:06,463 [DEBUG][       Thread-606023][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:26:06,481 [ INFO][       Thread-606023][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:26:06,481 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:26:06,482 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:26:07,482 [DEBUG][       Thread-606023][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:26:07,482 [DEBUG][       Thread-606023][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:26:07,533 [DEBUG][       Thread-606023][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:26:07,533 [DEBUG][       Thread-606023][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:26:07,542 [DEBUG][       Thread-606023][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:26:07,551 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:26: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')
2025-07-01 13:26:07,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-07-01 13:26:07,569 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:26:07,569 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:26:07,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:26:07,580 [DEBUG][       Thread-606023][   transport.py][1871] : EOF in transport thread
2025-07-01 13:26:12,852 [DEBUG][Thread-606025 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:26:17,580 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:26:17,581 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:26:17,581 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:26:17,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-07-01 13:26:18,069 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 26, 8), 11.32, 46.3, 0.0, 38.18, 13.34, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:26:18,069 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:26:08
2025-07-01 13:26:18,153 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:26:18,157 [DEBUG][       Thread-606026][   transport.py][1871] : starting thread (client mode): 0x81e7100
2025-07-01 13:26:18,157 [DEBUG][       Thread-606026][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:26:18,178 [DEBUG][       Thread-606026][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:26:18,178 [ INFO][       Thread-606026][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:26:18,182 [DEBUG][       Thread-606026][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:26:18,182 [DEBUG][       Thread-606026][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:26:18,182 [DEBUG][       Thread-606026][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:26:18,182 [DEBUG][       Thread-606026][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:26:18,182 [DEBUG][       Thread-606026][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:26:18,182 [DEBUG][       Thread-606026][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:26:18,182 [DEBUG][       Thread-606026][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:26:18,182 [DEBUG][       Thread-606026][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:26:18,182 [DEBUG][       Thread-606026][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:26:18,182 [DEBUG][       Thread-606026][   transport.py][1871] : client lang: <none>
2025-07-01 13:26:18,182 [DEBUG][       Thread-606026][   transport.py][1871] : server lang: <none>
2025-07-01 13:26:18,182 [DEBUG][       Thread-606026][   transport.py][1871] : kex follows: False
2025-07-01 13:26:18,182 [DEBUG][       Thread-606026][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:26:18,182 [DEBUG][       Thread-606026][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:26:18,182 [DEBUG][       Thread-606026][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:26:18,182 [DEBUG][       Thread-606026][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:26:18,182 [DEBUG][       Thread-606026][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:26:18,182 [DEBUG][       Thread-606026][   transport.py][1871] : Compression: none
2025-07-01 13:26:18,182 [DEBUG][       Thread-606026][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:26:18,197 [DEBUG][       Thread-606026][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:26:18,197 [DEBUG][       Thread-606026][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:26:18,197 [DEBUG][       Thread-606026][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:26:18,197 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:26:18,197 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:26:18,198 [DEBUG][       Thread-606026][   transport.py][1871] : userauth is OK
2025-07-01 13:26:18,222 [ INFO][       Thread-606026][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:26:18,223 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:26:18,887 [DEBUG][       Thread-606026][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:26:18,887 [DEBUG][       Thread-606026][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:26:18,929 [DEBUG][       Thread-606026][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:26:18,929 [DEBUG][       Thread-606026][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:26:18,932 [DEBUG][       Thread-606026][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:26:18,944 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:26:18,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:26:18,947 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:26:18,948 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:26:18,954 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:26:18,955 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:26:18,956 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:26:18,956 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:26:18,957 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.475984 -999.00  +13.20  34.11     51   +3.40 1 1 2 1 1   888    0 9.69 -0.95 ----- 33.0 34.1 20.2 55.7 16.1 -24.7 15.2 -25.5 15.2 -24.5 16.1 -22.9
2025-07-01 13:26:18,957 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:26:18,957 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:26:18,957 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.475984
2025-07-01 13:26:18,957 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:26:18,958 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:26:18,958 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:26:18,958 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:26:18,958 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:26:18,958 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:26:08', tmtdew=11.32, humidity=46.3, cloud=0.0, wind=38.18, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:25:25.018', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:26:18,959 [DEBUG][       Thread-606026][   transport.py][1871] : EOF in transport thread
2025-07-01 13:26:19,041 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:26:19,051 [DEBUG][       Thread-606029][   transport.py][1871] : starting thread (client mode): 0x818d480
2025-07-01 13:26:19,051 [DEBUG][       Thread-606029][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:26:19,070 [DEBUG][       Thread-606029][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:26:19,070 [ INFO][       Thread-606029][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:26:19,081 [DEBUG][       Thread-606029][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:26:19,082 [DEBUG][       Thread-606029][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:26:19,082 [DEBUG][       Thread-606029][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:26:19,082 [DEBUG][       Thread-606029][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:26:19,082 [DEBUG][       Thread-606029][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:26:19,082 [DEBUG][       Thread-606029][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:26:19,082 [DEBUG][       Thread-606029][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:26:19,082 [DEBUG][       Thread-606029][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:26:19,082 [DEBUG][       Thread-606029][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:26:19,082 [DEBUG][       Thread-606029][   transport.py][1871] : client lang: <none>
2025-07-01 13:26:19,082 [DEBUG][       Thread-606029][   transport.py][1871] : server lang: <none>
2025-07-01 13:26:19,082 [DEBUG][       Thread-606029][   transport.py][1871] : kex follows: False
2025-07-01 13:26:19,082 [DEBUG][       Thread-606029][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:26:19,082 [DEBUG][       Thread-606029][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:26:19,082 [DEBUG][       Thread-606029][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:26:19,082 [DEBUG][       Thread-606029][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:26:19,083 [DEBUG][       Thread-606029][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:26:19,083 [DEBUG][       Thread-606029][   transport.py][1871] : Compression: none
2025-07-01 13:26:19,083 [DEBUG][       Thread-606029][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:26:19,135 [DEBUG][       Thread-606029][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:26:19,135 [DEBUG][       Thread-606029][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:26:19,136 [DEBUG][       Thread-606029][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:26:19,136 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:26:19,137 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:26:19,195 [DEBUG][       Thread-606029][   transport.py][1871] : userauth is OK
2025-07-01 13:26:19,195 [DEBUG][       Thread-606029][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:26:19,195 [DEBUG][       Thread-606029][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:26:19,195 [DEBUG][       Thread-606029][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:26:19,195 [DEBUG][       Thread-606029][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:26:19,213 [ INFO][       Thread-606029][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:26:19,214 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:26:19,214 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:26:20,220 [DEBUG][       Thread-606029][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:26:20,220 [DEBUG][       Thread-606029][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:26:20,274 [DEBUG][       Thread-606029][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:26:20,275 [DEBUG][       Thread-606029][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:26:20,287 [DEBUG][       Thread-606029][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:26:20,295 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:26:20,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-07-01 13:26:20,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-07-01 13:26:20,312 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:26:20,313 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:26:20,313 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:26:20,321 [DEBUG][       Thread-606029][   transport.py][1871] : EOF in transport thread
2025-07-01 13:26:21,884 [DEBUG][Thread-606031 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:26:24,211 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:26:24,212 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:26:30,323 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:26:30,324 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:26:30,324 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:26:30,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-07-01 13:26:30,825 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 26, 8), 11.32, 46.3, 0.0, 38.18, 13.34, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:26:30,825 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:26:08
2025-07-01 13:26:30,910 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:26:30,913 [DEBUG][Thread-606032 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:26:30,916 [DEBUG][       Thread-606033][   transport.py][1871] : starting thread (client mode): 0x8171e10
2025-07-01 13:26:30,916 [DEBUG][       Thread-606033][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:26:30,937 [DEBUG][       Thread-606033][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:26:30,937 [ INFO][       Thread-606033][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:26:30,940 [DEBUG][       Thread-606033][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:26:30,940 [DEBUG][       Thread-606033][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:26:30,940 [DEBUG][       Thread-606033][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:26:30,940 [DEBUG][       Thread-606033][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:26:30,940 [DEBUG][       Thread-606033][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:26:30,941 [DEBUG][       Thread-606033][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:26:30,941 [DEBUG][       Thread-606033][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:26:30,941 [DEBUG][       Thread-606033][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:26:30,941 [DEBUG][       Thread-606033][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:26:30,941 [DEBUG][       Thread-606033][   transport.py][1871] : client lang: <none>
2025-07-01 13:26:30,941 [DEBUG][       Thread-606033][   transport.py][1871] : server lang: <none>
2025-07-01 13:26:30,941 [DEBUG][       Thread-606033][   transport.py][1871] : kex follows: False
2025-07-01 13:26:30,941 [DEBUG][       Thread-606033][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:26:30,941 [DEBUG][       Thread-606033][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:26:30,941 [DEBUG][       Thread-606033][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:26:30,941 [DEBUG][       Thread-606033][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:26:30,941 [DEBUG][       Thread-606033][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:26:30,941 [DEBUG][       Thread-606033][   transport.py][1871] : Compression: none
2025-07-01 13:26:30,941 [DEBUG][       Thread-606033][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:26:30,957 [DEBUG][       Thread-606033][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:26:30,958 [DEBUG][       Thread-606033][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:26:30,958 [DEBUG][       Thread-606033][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:26:30,959 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:26:30,959 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:26:30,960 [DEBUG][       Thread-606033][   transport.py][1871] : userauth is OK
2025-07-01 13:26:30,984 [ INFO][       Thread-606033][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:26:30,985 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:26:31,672 [DEBUG][       Thread-606033][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:26:31,673 [DEBUG][       Thread-606033][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:26:31,717 [DEBUG][       Thread-606033][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:26:31,717 [DEBUG][       Thread-606033][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:26:31,721 [DEBUG][       Thread-606033][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:26:31,733 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:26:31,733 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:26:31,735 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:26:31,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:26:31,744 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:26:31,746 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:26:31,746 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:26:31,747 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:26:31,747 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.476331 -999.00  +13.30  43.57     51   +3.40 1 1 2 1 1   888    0 9.68 -2.33 ----- 35.5 43.6 26.2 50.6 16.2 -24.2 15.2 -25.5 15.3 -23.7 16.1 -23.3
2025-07-01 13:26:31,747 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:26:31,747 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:26:31,747 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.476331
2025-07-01 13:26:31,748 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:26:31,748 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:26:31,748 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:26:31,748 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:26:31,748 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:26:31,749 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:26:08', tmtdew=11.32, humidity=46.3, cloud=0.0, wind=38.18, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:25:54.998', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:26:31,750 [DEBUG][       Thread-606033][   transport.py][1871] : EOF in transport thread
2025-07-01 13:26:31,833 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:26:31,845 [DEBUG][       Thread-606036][   transport.py][1871] : starting thread (client mode): 0x8107ac0
2025-07-01 13:26:31,845 [DEBUG][       Thread-606036][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:26:31,861 [DEBUG][       Thread-606036][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:26:31,861 [ INFO][       Thread-606036][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:26:31,868 [DEBUG][       Thread-606036][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:26:31,868 [DEBUG][       Thread-606036][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:26:31,868 [DEBUG][       Thread-606036][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:26:31,868 [DEBUG][       Thread-606036][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:26:31,869 [DEBUG][       Thread-606036][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:26:31,869 [DEBUG][       Thread-606036][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:26:31,869 [DEBUG][       Thread-606036][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:26:31,869 [DEBUG][       Thread-606036][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:26:31,869 [DEBUG][       Thread-606036][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:26:31,869 [DEBUG][       Thread-606036][   transport.py][1871] : client lang: <none>
2025-07-01 13:26:31,869 [DEBUG][       Thread-606036][   transport.py][1871] : server lang: <none>
2025-07-01 13:26:31,869 [DEBUG][       Thread-606036][   transport.py][1871] : kex follows: False
2025-07-01 13:26:31,869 [DEBUG][       Thread-606036][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:26:31,869 [DEBUG][       Thread-606036][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:26:31,869 [DEBUG][       Thread-606036][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:26:31,869 [DEBUG][       Thread-606036][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:26:31,869 [DEBUG][       Thread-606036][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:26:31,869 [DEBUG][       Thread-606036][   transport.py][1871] : Compression: none
2025-07-01 13:26:31,869 [DEBUG][       Thread-606036][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:26:31,927 [DEBUG][       Thread-606036][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:26:31,927 [DEBUG][       Thread-606036][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:26:31,928 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:26:31,929 [DEBUG][       Thread-606036][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:26:31,929 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:26:31,982 [DEBUG][       Thread-606036][   transport.py][1871] : userauth is OK
2025-07-01 13:26:31,983 [DEBUG][       Thread-606036][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:26:31,983 [DEBUG][       Thread-606036][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:26:31,983 [DEBUG][       Thread-606036][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:26:31,983 [DEBUG][       Thread-606036][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:26:32,007 [ INFO][       Thread-606036][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:26:32,007 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:26:32,007 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:26:32,066 [DEBUG][Thread-606038 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:26:33,070 [DEBUG][       Thread-606036][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:26:33,070 [DEBUG][       Thread-606036][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:26:33,124 [DEBUG][       Thread-606036][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:26:33,125 [DEBUG][       Thread-606036][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:26:33,134 [DEBUG][       Thread-606036][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:26:33,146 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:26:33,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-07-01 13:26:33,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-07-01 13:26:33,165 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:26:33,165 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:26:33,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:26:33,174 [DEBUG][       Thread-606036][   transport.py][1871] : EOF in transport thread
2025-07-01 13:26:39,934 [DEBUG][Thread-606039 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:26:43,170 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:26:43,170 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:26:43,170 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:26:43,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-07-01 13:26:43,671 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 26, 39), 11.29, 46.38, 0.0, 37.3, 13.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:26:43,671 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:26:39
2025-07-01 13:26:43,756 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:26:43,760 [DEBUG][       Thread-606040][   transport.py][1871] : starting thread (client mode): 0x75a8dc0
2025-07-01 13:26:43,760 [DEBUG][       Thread-606040][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:26:43,783 [DEBUG][       Thread-606040][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:26:43,783 [ INFO][       Thread-606040][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:26:43,785 [DEBUG][       Thread-606040][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:26:43,785 [DEBUG][       Thread-606040][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:26:43,785 [DEBUG][       Thread-606040][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:26:43,785 [DEBUG][       Thread-606040][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:26:43,785 [DEBUG][       Thread-606040][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:26:43,785 [DEBUG][       Thread-606040][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:26:43,785 [DEBUG][       Thread-606040][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:26:43,785 [DEBUG][       Thread-606040][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:26:43,785 [DEBUG][       Thread-606040][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:26:43,785 [DEBUG][       Thread-606040][   transport.py][1871] : client lang: <none>
2025-07-01 13:26:43,785 [DEBUG][       Thread-606040][   transport.py][1871] : server lang: <none>
2025-07-01 13:26:43,785 [DEBUG][       Thread-606040][   transport.py][1871] : kex follows: False
2025-07-01 13:26:43,785 [DEBUG][       Thread-606040][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:26:43,785 [DEBUG][       Thread-606040][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:26:43,785 [DEBUG][       Thread-606040][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:26:43,785 [DEBUG][       Thread-606040][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:26:43,785 [DEBUG][       Thread-606040][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:26:43,786 [DEBUG][       Thread-606040][   transport.py][1871] : Compression: none
2025-07-01 13:26:43,786 [DEBUG][       Thread-606040][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:26:43,802 [DEBUG][       Thread-606040][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:26:43,802 [DEBUG][       Thread-606040][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:26:43,803 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:26:43,803 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:26:43,804 [DEBUG][       Thread-606040][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:26:43,804 [DEBUG][       Thread-606040][   transport.py][1871] : userauth is OK
2025-07-01 13:26:43,828 [ INFO][       Thread-606040][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:26:43,829 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:26:44,412 [DEBUG][       Thread-606040][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:26:44,413 [DEBUG][       Thread-606040][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:26:44,457 [DEBUG][       Thread-606040][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:26:44,457 [DEBUG][       Thread-606040][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:26:44,461 [DEBUG][       Thread-606040][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:26:44,473 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:26:44,474 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:26:44,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:26:44,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:26:44,482 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:26:44,484 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:26:44,484 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:26:44,485 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:26:44,485 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.476331 -999.00  +13.30  43.57     51   +3.40 1 1 2 1 1   888    0 9.68 -2.33 ----- 35.5 43.6 26.2 50.6 16.2 -24.2 15.2 -25.5 15.3 -23.7 16.1 -23.3
2025-07-01 13:26:44,485 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:26:44,485 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:26:44,485 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.476331
2025-07-01 13:26:44,486 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:26:44,486 [DEBUG][       Thread-606040][   transport.py][1871] : EOF in transport thread
2025-07-01 13:26:44,487 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:26:44,487 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:26:44,487 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:26:44,487 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:26:44,488 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:26:39', tmtdew=11.29, humidity=46.38, cloud=0.0, wind=37.3, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:25:54.998', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:26:44,571 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:26:44,580 [DEBUG][       Thread-606043][   transport.py][1871] : starting thread (client mode): 0x81a4550
2025-07-01 13:26:44,581 [DEBUG][       Thread-606043][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:26:44,600 [DEBUG][       Thread-606043][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:26:44,600 [ INFO][       Thread-606043][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:26:44,608 [DEBUG][       Thread-606043][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:26:44,608 [DEBUG][       Thread-606043][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:26:44,608 [DEBUG][       Thread-606043][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:26:44,608 [DEBUG][       Thread-606043][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:26:44,608 [DEBUG][       Thread-606043][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:26:44,608 [DEBUG][       Thread-606043][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:26:44,609 [DEBUG][       Thread-606043][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:26:44,609 [DEBUG][       Thread-606043][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:26:44,609 [DEBUG][       Thread-606043][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:26:44,609 [DEBUG][       Thread-606043][   transport.py][1871] : client lang: <none>
2025-07-01 13:26:44,609 [DEBUG][       Thread-606043][   transport.py][1871] : server lang: <none>
2025-07-01 13:26:44,609 [DEBUG][       Thread-606043][   transport.py][1871] : kex follows: False
2025-07-01 13:26:44,609 [DEBUG][       Thread-606043][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:26:44,609 [DEBUG][       Thread-606043][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:26:44,609 [DEBUG][       Thread-606043][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:26:44,609 [DEBUG][       Thread-606043][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:26:44,609 [DEBUG][       Thread-606043][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:26:44,609 [DEBUG][       Thread-606043][   transport.py][1871] : Compression: none
2025-07-01 13:26:44,609 [DEBUG][       Thread-606043][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:26:44,665 [DEBUG][       Thread-606043][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:26:44,666 [DEBUG][       Thread-606043][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:26:44,666 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:26:44,667 [DEBUG][       Thread-606043][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:26:44,668 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:26:44,721 [DEBUG][       Thread-606043][   transport.py][1871] : userauth is OK
2025-07-01 13:26:44,721 [DEBUG][       Thread-606043][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:26:44,721 [DEBUG][       Thread-606043][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:26:44,721 [DEBUG][       Thread-606043][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:26:44,721 [DEBUG][       Thread-606043][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:26:44,735 [ INFO][       Thread-606043][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:26:44,735 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:26:44,735 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:26:45,744 [DEBUG][       Thread-606043][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:26:45,744 [DEBUG][       Thread-606043][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:26:45,792 [DEBUG][       Thread-606043][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:26:45,792 [DEBUG][       Thread-606043][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:26:45,801 [DEBUG][       Thread-606043][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:26:45,810 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:26:45,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-07-01 13:26:45,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-07-01 13:26:45,829 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:26:45,829 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:26:45,829 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:26:45,837 [DEBUG][       Thread-606043][   transport.py][1871] : EOF in transport thread
2025-07-01 13:26:48,957 [DEBUG][Thread-606045 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:26:55,840 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:26:55,840 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:26:55,840 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:26:55,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-07-01 13:26:56,326 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 26, 39), 11.29, 46.38, 0.0, 37.3, 13.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:26:56,327 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:26:39
2025-07-01 13:26:56,412 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:26:56,418 [DEBUG][       Thread-606046][   transport.py][1871] : starting thread (client mode): 0x75ab220
2025-07-01 13:26:56,418 [DEBUG][       Thread-606046][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:26:56,438 [DEBUG][       Thread-606046][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:26:56,438 [ INFO][       Thread-606046][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:26:56,442 [DEBUG][       Thread-606046][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:26:56,442 [DEBUG][       Thread-606046][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:26:56,442 [DEBUG][       Thread-606046][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:26:56,442 [DEBUG][       Thread-606046][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:26:56,442 [DEBUG][       Thread-606046][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:26:56,442 [DEBUG][       Thread-606046][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:26:56,442 [DEBUG][       Thread-606046][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:26:56,442 [DEBUG][       Thread-606046][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:26:56,442 [DEBUG][       Thread-606046][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:26:56,442 [DEBUG][       Thread-606046][   transport.py][1871] : client lang: <none>
2025-07-01 13:26:56,442 [DEBUG][       Thread-606046][   transport.py][1871] : server lang: <none>
2025-07-01 13:26:56,442 [DEBUG][       Thread-606046][   transport.py][1871] : kex follows: False
2025-07-01 13:26:56,442 [DEBUG][       Thread-606046][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:26:56,442 [DEBUG][       Thread-606046][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:26:56,442 [DEBUG][       Thread-606046][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:26:56,442 [DEBUG][       Thread-606046][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:26:56,442 [DEBUG][       Thread-606046][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:26:56,442 [DEBUG][       Thread-606046][   transport.py][1871] : Compression: none
2025-07-01 13:26:56,442 [DEBUG][       Thread-606046][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:26:56,458 [DEBUG][       Thread-606046][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:26:56,458 [DEBUG][       Thread-606046][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:26:56,459 [DEBUG][       Thread-606046][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:26:56,459 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:26:56,459 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:26:56,460 [DEBUG][       Thread-606046][   transport.py][1871] : userauth is OK
2025-07-01 13:26:56,474 [ INFO][       Thread-606046][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:26:56,474 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:26:57,116 [DEBUG][       Thread-606046][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:26:57,116 [DEBUG][       Thread-606046][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:26:57,157 [DEBUG][       Thread-606046][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:26:57,157 [DEBUG][       Thread-606046][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:26:57,159 [DEBUG][       Thread-606046][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:26:57,173 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:26:57,173 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:26:57,175 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:26:57,175 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:26:57,178 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:26:57,179 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:26:57,179 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:26:57,179 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:26:57,180 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.476678 -999.00  +13.30  35.10     51   +3.40 1 1 2 1 1   888    0 9.71 -3.53 ----- 29.6 35.1 28.0 48.0 16.1 -24.4 15.2 -25.0 15.2 -23.6 16.1 -22.5
2025-07-01 13:26:57,180 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:26:57,180 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:26:57,180 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.476678
2025-07-01 13:26:57,180 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:26:57,180 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:26:57,180 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:26:57,180 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:26:57,180 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:26:57,180 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:26:39', tmtdew=11.29, humidity=46.38, cloud=0.0, wind=37.3, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:26:24.979', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:26:57,181 [DEBUG][       Thread-606046][   transport.py][1871] : EOF in transport thread
2025-07-01 13:26:57,252 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:26:57,263 [DEBUG][       Thread-606049][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 13:26:57,263 [DEBUG][       Thread-606049][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:26:57,279 [DEBUG][       Thread-606049][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:26:57,279 [ INFO][       Thread-606049][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:26:57,287 [DEBUG][       Thread-606049][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:26:57,287 [DEBUG][       Thread-606049][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:26:57,287 [DEBUG][       Thread-606049][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:26:57,287 [DEBUG][       Thread-606049][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:26:57,287 [DEBUG][       Thread-606049][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:26:57,287 [DEBUG][       Thread-606049][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:26:57,287 [DEBUG][       Thread-606049][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:26:57,287 [DEBUG][       Thread-606049][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:26:57,287 [DEBUG][       Thread-606049][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:26:57,287 [DEBUG][       Thread-606049][   transport.py][1871] : client lang: <none>
2025-07-01 13:26:57,287 [DEBUG][       Thread-606049][   transport.py][1871] : server lang: <none>
2025-07-01 13:26:57,287 [DEBUG][       Thread-606049][   transport.py][1871] : kex follows: False
2025-07-01 13:26:57,287 [DEBUG][       Thread-606049][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:26:57,287 [DEBUG][       Thread-606049][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:26:57,287 [DEBUG][       Thread-606049][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:26:57,287 [DEBUG][       Thread-606049][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:26:57,287 [DEBUG][       Thread-606049][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:26:57,288 [DEBUG][       Thread-606049][   transport.py][1871] : Compression: none
2025-07-01 13:26:57,288 [DEBUG][       Thread-606049][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:26:57,349 [DEBUG][       Thread-606049][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:26:57,350 [DEBUG][       Thread-606049][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:26:57,351 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:26:57,351 [DEBUG][       Thread-606049][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:26:57,352 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:26:57,408 [DEBUG][       Thread-606049][   transport.py][1871] : userauth is OK
2025-07-01 13:26:57,409 [DEBUG][       Thread-606049][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:26:57,409 [DEBUG][       Thread-606049][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:26:57,409 [DEBUG][       Thread-606049][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:26:57,409 [DEBUG][       Thread-606049][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:26:57,428 [ INFO][       Thread-606049][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:26:57,429 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:26:57,429 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:26:57,996 [DEBUG][Thread-606051 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:26:58,427 [DEBUG][       Thread-606049][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:26:58,427 [DEBUG][       Thread-606049][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:26:58,483 [DEBUG][       Thread-606049][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:26:58,484 [DEBUG][       Thread-606049][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:26:58,493 [DEBUG][       Thread-606049][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:26:58,502 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:26: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-07-01 13:26:58,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-07-01 13:26:58,520 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:26:58,521 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:26:58,521 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:26:58,529 [DEBUG][       Thread-606049][   transport.py][1871] : EOF in transport thread
2025-07-01 13:27:07,015 [DEBUG][Thread-606052 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:27:08,531 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:27:08,531 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:27:08,531 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:27:08,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-07-01 13:27:09,012 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 26, 39), 11.29, 46.38, 0.0, 37.3, 13.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:27:09,012 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:26:39
2025-07-01 13:27:09,097 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:27:09,100 [DEBUG][       Thread-606053][   transport.py][1871] : starting thread (client mode): 0x81a4880
2025-07-01 13:27:09,100 [DEBUG][       Thread-606053][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:27:09,121 [DEBUG][       Thread-606053][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:27:09,121 [ INFO][       Thread-606053][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:27:09,122 [DEBUG][       Thread-606053][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:27:09,122 [DEBUG][       Thread-606053][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:27:09,122 [DEBUG][       Thread-606053][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:27:09,122 [DEBUG][       Thread-606053][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:27:09,122 [DEBUG][       Thread-606053][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:27:09,122 [DEBUG][       Thread-606053][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:27:09,122 [DEBUG][       Thread-606053][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:27:09,122 [DEBUG][       Thread-606053][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:27:09,122 [DEBUG][       Thread-606053][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:27:09,122 [DEBUG][       Thread-606053][   transport.py][1871] : client lang: <none>
2025-07-01 13:27:09,122 [DEBUG][       Thread-606053][   transport.py][1871] : server lang: <none>
2025-07-01 13:27:09,122 [DEBUG][       Thread-606053][   transport.py][1871] : kex follows: False
2025-07-01 13:27:09,122 [DEBUG][       Thread-606053][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:27:09,122 [DEBUG][       Thread-606053][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:27:09,122 [DEBUG][       Thread-606053][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:27:09,122 [DEBUG][       Thread-606053][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:27:09,122 [DEBUG][       Thread-606053][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:27:09,122 [DEBUG][       Thread-606053][   transport.py][1871] : Compression: none
2025-07-01 13:27:09,122 [DEBUG][       Thread-606053][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:27:09,131 [DEBUG][       Thread-606053][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:27:09,131 [DEBUG][       Thread-606053][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:27:09,131 [DEBUG][       Thread-606053][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:27:09,131 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:27:09,132 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:27:09,133 [DEBUG][       Thread-606053][   transport.py][1871] : userauth is OK
2025-07-01 13:27:09,158 [ INFO][       Thread-606053][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:27:09,158 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:27:09,794 [DEBUG][       Thread-606053][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:27:09,795 [DEBUG][       Thread-606053][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:27:09,837 [DEBUG][       Thread-606053][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:27:09,837 [DEBUG][       Thread-606053][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:27:09,840 [DEBUG][       Thread-606053][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:27:09,851 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:27:09,852 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:27:09,854 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:27:09,856 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:27:09,861 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:27:09,863 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:27:09,864 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:27:09,864 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:27:09,865 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.476678 -999.00  +13.30  35.10     51   +3.40 1 1 2 1 1   888    0 9.71 -3.53 ----- 29.6 35.1 28.0 48.0 16.1 -24.4 15.2 -25.0 15.2 -23.6 16.1 -22.5
2025-07-01 13:27:09,865 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:27:09,865 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:27:09,865 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.476678
2025-07-01 13:27:09,865 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:27:09,866 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:27:09,866 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:27:09,866 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:27:09,866 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:27:09,866 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:26:39', tmtdew=11.29, humidity=46.38, cloud=0.0, wind=37.3, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:26:24.979', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:27:09,867 [DEBUG][       Thread-606053][   transport.py][1871] : EOF in transport thread
2025-07-01 13:27:09,950 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:27:09,959 [DEBUG][       Thread-606056][   transport.py][1871] : starting thread (client mode): 0x8a671f0
2025-07-01 13:27:09,959 [DEBUG][       Thread-606056][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:27:09,974 [DEBUG][       Thread-606056][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:27:09,975 [ INFO][       Thread-606056][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:27:09,982 [DEBUG][       Thread-606056][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:27:09,982 [DEBUG][       Thread-606056][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:27:09,983 [DEBUG][       Thread-606056][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:27:09,983 [DEBUG][       Thread-606056][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:27:09,983 [DEBUG][       Thread-606056][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:27:09,983 [DEBUG][       Thread-606056][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:27:09,983 [DEBUG][       Thread-606056][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:27:09,983 [DEBUG][       Thread-606056][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:27:09,983 [DEBUG][       Thread-606056][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:27:09,983 [DEBUG][       Thread-606056][   transport.py][1871] : client lang: <none>
2025-07-01 13:27:09,983 [DEBUG][       Thread-606056][   transport.py][1871] : server lang: <none>
2025-07-01 13:27:09,983 [DEBUG][       Thread-606056][   transport.py][1871] : kex follows: False
2025-07-01 13:27:09,983 [DEBUG][       Thread-606056][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:27:09,983 [DEBUG][       Thread-606056][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:27:09,983 [DEBUG][       Thread-606056][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:27:09,983 [DEBUG][       Thread-606056][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:27:09,983 [DEBUG][       Thread-606056][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:27:09,983 [DEBUG][       Thread-606056][   transport.py][1871] : Compression: none
2025-07-01 13:27:09,983 [DEBUG][       Thread-606056][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:27:10,040 [DEBUG][       Thread-606056][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:27:10,040 [DEBUG][       Thread-606056][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:27:10,041 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:27:10,042 [DEBUG][       Thread-606056][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:27:10,042 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:27:10,096 [DEBUG][       Thread-606056][   transport.py][1871] : userauth is OK
2025-07-01 13:27:10,096 [DEBUG][       Thread-606056][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:27:10,096 [DEBUG][       Thread-606056][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:27:10,096 [DEBUG][       Thread-606056][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:27:10,097 [DEBUG][       Thread-606056][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:27:10,115 [ INFO][       Thread-606056][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:27:10,116 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:27:10,116 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:27:11,162 [DEBUG][       Thread-606056][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:27:11,163 [DEBUG][       Thread-606056][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:27:11,212 [DEBUG][       Thread-606056][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:27:11,212 [DEBUG][       Thread-606056][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:27:11,222 [DEBUG][       Thread-606056][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:27:11,231 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:27:11,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-07-01 13:27:11,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-07-01 13:27:11,251 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:27:11,251 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:27:11,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:27:11,259 [DEBUG][       Thread-606056][   transport.py][1871] : EOF in transport thread
2025-07-01 13:27:16,036 [DEBUG][Thread-606058 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:27:21,260 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:27:21,260 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:27:21,260 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:27:21,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-07-01 13:27:21,757 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 27, 11), 11.28, 46.42, 0.0, 38.67, 13.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:27:21,757 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:27:11
2025-07-01 13:27:21,842 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:27:21,847 [DEBUG][       Thread-606059][   transport.py][1871] : starting thread (client mode): 0x81a57e0
2025-07-01 13:27:21,847 [DEBUG][       Thread-606059][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:27:21,867 [DEBUG][       Thread-606059][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:27:21,867 [ INFO][       Thread-606059][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:27:21,871 [DEBUG][       Thread-606059][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:27:21,871 [DEBUG][       Thread-606059][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:27:21,871 [DEBUG][       Thread-606059][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:27:21,871 [DEBUG][       Thread-606059][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:27:21,871 [DEBUG][       Thread-606059][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:27:21,871 [DEBUG][       Thread-606059][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:27:21,871 [DEBUG][       Thread-606059][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:27:21,871 [DEBUG][       Thread-606059][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:27:21,871 [DEBUG][       Thread-606059][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:27:21,871 [DEBUG][       Thread-606059][   transport.py][1871] : client lang: <none>
2025-07-01 13:27:21,871 [DEBUG][       Thread-606059][   transport.py][1871] : server lang: <none>
2025-07-01 13:27:21,871 [DEBUG][       Thread-606059][   transport.py][1871] : kex follows: False
2025-07-01 13:27:21,871 [DEBUG][       Thread-606059][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:27:21,871 [DEBUG][       Thread-606059][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:27:21,871 [DEBUG][       Thread-606059][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:27:21,871 [DEBUG][       Thread-606059][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:27:21,871 [DEBUG][       Thread-606059][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:27:21,871 [DEBUG][       Thread-606059][   transport.py][1871] : Compression: none
2025-07-01 13:27:21,871 [DEBUG][       Thread-606059][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:27:21,888 [DEBUG][       Thread-606059][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:27:21,889 [DEBUG][       Thread-606059][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:27:21,889 [DEBUG][       Thread-606059][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:27:21,889 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:27:21,890 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:27:21,891 [DEBUG][       Thread-606059][   transport.py][1871] : userauth is OK
2025-07-01 13:27:21,916 [ INFO][       Thread-606059][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:27:21,917 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:27:22,579 [DEBUG][       Thread-606059][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:27:22,579 [DEBUG][       Thread-606059][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:27:22,621 [DEBUG][       Thread-606059][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:27:22,621 [DEBUG][       Thread-606059][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:27:22,624 [DEBUG][       Thread-606059][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:27:22,637 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:27:22,638 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:27:22,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:27:22,641 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:27:22,646 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:27:22,648 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:27:22,648 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:27:22,649 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:27:22,649 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.476678 -999.00  +13.30  35.10     51   +3.40 1 1 2 1 1   888    0 9.71 -3.53 ----- 29.6 35.1 28.0 48.0 16.1 -24.4 15.2 -25.0 15.2 -23.6 16.1 -22.5
2025-07-01 13:27:22,649 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:27:22,649 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:27:22,649 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.476678
2025-07-01 13:27:22,650 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:27:22,650 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:27:22,650 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:27:22,650 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:27:22,650 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:27:22,650 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:27:11', tmtdew=11.28, humidity=46.42, cloud=0.0, wind=38.67, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:26:24.979', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:27:22,651 [DEBUG][       Thread-606059][   transport.py][1871] : EOF in transport thread
2025-07-01 13:27:22,734 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:27:24,350 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:27:24,352 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:27:25,059 [DEBUG][Thread-606062 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:27:32,119 [DEBUG][Thread-606063 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:27:34,102 [DEBUG][Thread-606064 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:27:43,122 [DEBUG][Thread-606065 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:27:52,143 [DEBUG][Thread-606066 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:28:01,166 [DEBUG][Thread-606067 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:28:10,188 [DEBUG][Thread-606068 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:28:19,206 [DEBUG][Thread-606069 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:28:24,489 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:28:24,491 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:28:28,228 [DEBUG][Thread-606070 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:28:32,181 [DEBUG][Thread-606071 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:28:37,250 [DEBUG][Thread-606072 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:28:46,271 [DEBUG][Thread-606073 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:28:55,288 [DEBUG][Thread-606074 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:29:04,310 [DEBUG][Thread-606075 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:29:13,333 [DEBUG][Thread-606076 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:29:22,356 [DEBUG][Thread-606077 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:29:24,628 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:29:24,629 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:29:31,380 [DEBUG][Thread-606078 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:29:31,924 [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-07-01 13:29:32,209 [DEBUG][Thread-606079 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:29:40,402 [DEBUG][Thread-606080 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:29:41,934 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:29:41,935 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:29:41,935 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:29:41,937 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:29:42,449 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 29, 18), 11.29, 46.54, 0.0, 37.28, 13.34, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:29:42,449 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:29:18
2025-07-01 13:29:42,531 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:29:42,535 [DEBUG][       Thread-606081][   transport.py][1871] : starting thread (client mode): 0x81e7a60
2025-07-01 13:29:42,535 [DEBUG][       Thread-606081][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:29:42,556 [DEBUG][       Thread-606081][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:29:42,556 [ INFO][       Thread-606081][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:29:42,560 [DEBUG][       Thread-606081][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:29:42,560 [DEBUG][       Thread-606081][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:29:42,560 [DEBUG][       Thread-606081][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:29:42,560 [DEBUG][       Thread-606081][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:29:42,560 [DEBUG][       Thread-606081][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:29:42,560 [DEBUG][       Thread-606081][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:29:42,560 [DEBUG][       Thread-606081][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:29:42,560 [DEBUG][       Thread-606081][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:29:42,560 [DEBUG][       Thread-606081][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:29:42,560 [DEBUG][       Thread-606081][   transport.py][1871] : client lang: <none>
2025-07-01 13:29:42,560 [DEBUG][       Thread-606081][   transport.py][1871] : server lang: <none>
2025-07-01 13:29:42,560 [DEBUG][       Thread-606081][   transport.py][1871] : kex follows: False
2025-07-01 13:29:42,560 [DEBUG][       Thread-606081][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:29:42,560 [DEBUG][       Thread-606081][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:29:42,560 [DEBUG][       Thread-606081][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:29:42,560 [DEBUG][       Thread-606081][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:29:42,560 [DEBUG][       Thread-606081][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:29:42,560 [DEBUG][       Thread-606081][   transport.py][1871] : Compression: none
2025-07-01 13:29:42,560 [DEBUG][       Thread-606081][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:29:42,577 [DEBUG][       Thread-606081][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:29:42,577 [DEBUG][       Thread-606081][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:29:42,578 [DEBUG][       Thread-606081][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:29:42,578 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:29:42,578 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:29:42,579 [DEBUG][       Thread-606081][   transport.py][1871] : userauth is OK
2025-07-01 13:29:42,604 [ INFO][       Thread-606081][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:29:42,604 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:29:43,208 [DEBUG][       Thread-606081][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:29:43,208 [DEBUG][       Thread-606081][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:29:43,249 [DEBUG][       Thread-606081][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:29:43,249 [DEBUG][       Thread-606081][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:29:43,253 [DEBUG][       Thread-606081][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:29:43,264 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:29:43,265 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:29:43,266 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:29:43,268 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:29:43,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:29:43,274 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:29:43,275 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:29:43,275 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:29:43,275 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.478761 -999.00  +13.10  36.38     51   +3.20 1 1 2 1 1   888    0 9.37 -11.51 ----- 30.9 36.4 13.6 51.1 16.1 -26.1 15.3 -25.5 15.3 -24.4 16.0 -23.1
2025-07-01 13:29:43,275 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:29:43,275 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:29:43,275 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.478761
2025-07-01 13:29:43,276 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:29:43,276 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:29:43,277 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:29:43,277 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:29:43,277 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:29:43,277 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:29:18', tmtdew=11.29, humidity=46.54, cloud=0.0, wind=37.28, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:29:24.950', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:29:43,277 [DEBUG][       Thread-606081][   transport.py][1871] : EOF in transport thread
2025-07-01 13:29:43,360 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:29:43,372 [DEBUG][       Thread-606084][   transport.py][1871] : starting thread (client mode): 0x8107490
2025-07-01 13:29:43,372 [DEBUG][       Thread-606084][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:29:43,389 [DEBUG][       Thread-606084][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:29:43,389 [ INFO][       Thread-606084][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:29:43,400 [DEBUG][       Thread-606084][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:29:43,400 [DEBUG][       Thread-606084][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:29:43,400 [DEBUG][       Thread-606084][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:29:43,400 [DEBUG][       Thread-606084][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:29:43,400 [DEBUG][       Thread-606084][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:29:43,400 [DEBUG][       Thread-606084][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:29:43,400 [DEBUG][       Thread-606084][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:29:43,401 [DEBUG][       Thread-606084][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:29:43,401 [DEBUG][       Thread-606084][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:29:43,401 [DEBUG][       Thread-606084][   transport.py][1871] : client lang: <none>
2025-07-01 13:29:43,401 [DEBUG][       Thread-606084][   transport.py][1871] : server lang: <none>
2025-07-01 13:29:43,401 [DEBUG][       Thread-606084][   transport.py][1871] : kex follows: False
2025-07-01 13:29:43,401 [DEBUG][       Thread-606084][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:29:43,401 [DEBUG][       Thread-606084][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:29:43,401 [DEBUG][       Thread-606084][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:29:43,401 [DEBUG][       Thread-606084][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:29:43,401 [DEBUG][       Thread-606084][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:29:43,401 [DEBUG][       Thread-606084][   transport.py][1871] : Compression: none
2025-07-01 13:29:43,401 [DEBUG][       Thread-606084][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:29:43,455 [DEBUG][       Thread-606084][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:29:43,456 [DEBUG][       Thread-606084][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:29:43,456 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:29:43,457 [DEBUG][       Thread-606084][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:29:43,458 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:29:43,519 [DEBUG][       Thread-606084][   transport.py][1871] : userauth is OK
2025-07-01 13:29:43,519 [DEBUG][       Thread-606084][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:29:43,520 [DEBUG][       Thread-606084][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:29:43,520 [DEBUG][       Thread-606084][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:29:43,520 [DEBUG][       Thread-606084][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:29:43,542 [ INFO][       Thread-606084][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:29:43,542 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:29:43,543 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:29:44,594 [DEBUG][       Thread-606084][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:29:44,594 [DEBUG][       Thread-606084][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:29:44,644 [DEBUG][       Thread-606084][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:29:44,644 [DEBUG][       Thread-606084][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:29:44,655 [DEBUG][       Thread-606084][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:29:44,666 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:29:44,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-07-01 13:29:44,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-07-01 13:29:44,688 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:29:44,688 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:29:44,689 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:29:44,697 [DEBUG][       Thread-606084][   transport.py][1871] : EOF in transport thread
2025-07-01 13:29:49,423 [DEBUG][Thread-606086 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:29:54,696 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:29:54,696 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:29:54,696 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:29:54,697 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:29:55,200 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 29, 50), 11.22, 46.75, 0.0, 35.98, 13.3, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:29:55,200 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:29:50
2025-07-01 13:29:55,284 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:29:55,288 [DEBUG][       Thread-606087][   transport.py][1871] : starting thread (client mode): 0x81d9db0
2025-07-01 13:29:55,289 [DEBUG][       Thread-606087][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:29:55,309 [DEBUG][       Thread-606087][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:29:55,309 [ INFO][       Thread-606087][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:29:55,314 [DEBUG][       Thread-606087][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:29:55,314 [DEBUG][       Thread-606087][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:29:55,314 [DEBUG][       Thread-606087][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:29:55,314 [DEBUG][       Thread-606087][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:29:55,314 [DEBUG][       Thread-606087][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:29:55,314 [DEBUG][       Thread-606087][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:29:55,314 [DEBUG][       Thread-606087][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:29:55,314 [DEBUG][       Thread-606087][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:29:55,314 [DEBUG][       Thread-606087][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:29:55,314 [DEBUG][       Thread-606087][   transport.py][1871] : client lang: <none>
2025-07-01 13:29:55,314 [DEBUG][       Thread-606087][   transport.py][1871] : server lang: <none>
2025-07-01 13:29:55,314 [DEBUG][       Thread-606087][   transport.py][1871] : kex follows: False
2025-07-01 13:29:55,314 [DEBUG][       Thread-606087][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:29:55,314 [DEBUG][       Thread-606087][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:29:55,314 [DEBUG][       Thread-606087][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:29:55,314 [DEBUG][       Thread-606087][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:29:55,314 [DEBUG][       Thread-606087][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:29:55,314 [DEBUG][       Thread-606087][   transport.py][1871] : Compression: none
2025-07-01 13:29:55,314 [DEBUG][       Thread-606087][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:29:55,330 [DEBUG][       Thread-606087][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:29:55,330 [DEBUG][       Thread-606087][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:29:55,331 [DEBUG][       Thread-606087][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:29:55,331 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:29:55,331 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:29:55,332 [DEBUG][       Thread-606087][   transport.py][1871] : userauth is OK
2025-07-01 13:29:55,357 [ INFO][       Thread-606087][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:29:55,358 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:29:56,002 [DEBUG][       Thread-606087][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:29:56,002 [DEBUG][       Thread-606087][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:29:56,045 [DEBUG][       Thread-606087][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:29:56,045 [DEBUG][       Thread-606087][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:29:56,049 [DEBUG][       Thread-606087][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:29:56,060 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:29:56,061 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:29:56,062 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:29:56,064 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:29:56,070 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:29:56,072 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:29:56,072 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:29:56,073 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:29:56,073 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.478761 -999.00  +13.10  36.38     51   +3.20 1 1 2 1 1   888    0 9.37 -11.51 ----- 30.9 36.4 13.6 51.1 16.1 -26.1 15.3 -25.5 15.3 -24.4 16.0 -23.1
2025-07-01 13:29:56,073 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:29:56,073 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:29:56,073 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.478761
2025-07-01 13:29:56,074 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:29:56,074 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:29:56,075 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:29:56,075 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:29:56,075 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:29:56,075 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:29:50', tmtdew=11.22, humidity=46.75, cloud=0.0, wind=35.98, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:29:24.950', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:29:56,075 [DEBUG][       Thread-606087][   transport.py][1871] : EOF in transport thread
2025-07-01 13:29:56,159 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:29:56,169 [DEBUG][       Thread-606090][   transport.py][1871] : starting thread (client mode): 0x75aabf0
2025-07-01 13:29:56,169 [DEBUG][       Thread-606090][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:29:56,184 [DEBUG][       Thread-606090][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:29:56,185 [ INFO][       Thread-606090][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:29:56,192 [DEBUG][       Thread-606090][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:29:56,192 [DEBUG][       Thread-606090][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:29:56,192 [DEBUG][       Thread-606090][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:29:56,192 [DEBUG][       Thread-606090][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:29:56,192 [DEBUG][       Thread-606090][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:29:56,192 [DEBUG][       Thread-606090][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:29:56,192 [DEBUG][       Thread-606090][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:29:56,192 [DEBUG][       Thread-606090][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:29:56,192 [DEBUG][       Thread-606090][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:29:56,192 [DEBUG][       Thread-606090][   transport.py][1871] : client lang: <none>
2025-07-01 13:29:56,192 [DEBUG][       Thread-606090][   transport.py][1871] : server lang: <none>
2025-07-01 13:29:56,192 [DEBUG][       Thread-606090][   transport.py][1871] : kex follows: False
2025-07-01 13:29:56,193 [DEBUG][       Thread-606090][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:29:56,193 [DEBUG][       Thread-606090][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:29:56,193 [DEBUG][       Thread-606090][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:29:56,193 [DEBUG][       Thread-606090][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:29:56,193 [DEBUG][       Thread-606090][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:29:56,193 [DEBUG][       Thread-606090][   transport.py][1871] : Compression: none
2025-07-01 13:29:56,193 [DEBUG][       Thread-606090][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:29:56,250 [DEBUG][       Thread-606090][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:29:56,251 [DEBUG][       Thread-606090][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:29:56,251 [DEBUG][       Thread-606090][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:29:56,251 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:29:56,252 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:29:56,306 [DEBUG][       Thread-606090][   transport.py][1871] : userauth is OK
2025-07-01 13:29:56,307 [DEBUG][       Thread-606090][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:29:56,307 [DEBUG][       Thread-606090][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:29:56,307 [DEBUG][       Thread-606090][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:29:56,307 [DEBUG][       Thread-606090][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:29:56,326 [ INFO][       Thread-606090][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:29:56,326 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:29:56,327 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:29:57,332 [DEBUG][       Thread-606090][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:29:57,332 [DEBUG][       Thread-606090][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:29:57,380 [DEBUG][       Thread-606090][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:29:57,380 [DEBUG][       Thread-606090][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:29:57,390 [DEBUG][       Thread-606090][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:29:57,399 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:29:57,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-07-01 13:29:57,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-07-01 13:29:57,417 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:29:57,418 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:29:57,418 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:29:57,426 [DEBUG][       Thread-606090][   transport.py][1871] : EOF in transport thread
2025-07-01 13:29:58,456 [DEBUG][Thread-606092 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:30:07,429 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:30:07,429 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:30:07,429 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:30:07,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-07-01 13:30:07,498 [DEBUG][Thread-606093 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:30:07,932 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 29, 50), 11.22, 46.75, 0.0, 35.98, 13.3, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:30:07,932 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:29:50
2025-07-01 13:30:08,016 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:30:08,021 [DEBUG][       Thread-606094][   transport.py][1871] : starting thread (client mode): 0x81a4670
2025-07-01 13:30:08,021 [DEBUG][       Thread-606094][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:30:08,041 [DEBUG][       Thread-606094][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:30:08,041 [ INFO][       Thread-606094][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:30:08,045 [DEBUG][       Thread-606094][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:30:08,045 [DEBUG][       Thread-606094][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:30:08,046 [DEBUG][       Thread-606094][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:30:08,046 [DEBUG][       Thread-606094][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:30:08,046 [DEBUG][       Thread-606094][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:30:08,046 [DEBUG][       Thread-606094][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:30:08,046 [DEBUG][       Thread-606094][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:30:08,046 [DEBUG][       Thread-606094][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:30:08,046 [DEBUG][       Thread-606094][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:30:08,046 [DEBUG][       Thread-606094][   transport.py][1871] : client lang: <none>
2025-07-01 13:30:08,046 [DEBUG][       Thread-606094][   transport.py][1871] : server lang: <none>
2025-07-01 13:30:08,046 [DEBUG][       Thread-606094][   transport.py][1871] : kex follows: False
2025-07-01 13:30:08,046 [DEBUG][       Thread-606094][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:30:08,046 [DEBUG][       Thread-606094][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:30:08,046 [DEBUG][       Thread-606094][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:30:08,046 [DEBUG][       Thread-606094][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:30:08,046 [DEBUG][       Thread-606094][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:30:08,046 [DEBUG][       Thread-606094][   transport.py][1871] : Compression: none
2025-07-01 13:30:08,046 [DEBUG][       Thread-606094][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:30:08,062 [DEBUG][       Thread-606094][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:30:08,063 [DEBUG][       Thread-606094][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:30:08,063 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:30:08,063 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:30:08,064 [DEBUG][       Thread-606094][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:30:08,065 [DEBUG][       Thread-606094][   transport.py][1871] : userauth is OK
2025-07-01 13:30:08,090 [ INFO][       Thread-606094][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:30:08,090 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:30:08,742 [DEBUG][       Thread-606094][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:30:08,742 [DEBUG][       Thread-606094][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:30:08,785 [DEBUG][       Thread-606094][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:30:08,785 [DEBUG][       Thread-606094][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:30:08,788 [DEBUG][       Thread-606094][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:30:08,799 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:30:08,799 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:30:08,800 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:30:08,801 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:30:08,805 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:30:08,806 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:30:08,806 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:30:08,807 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:30:08,807 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.478761 -999.00  +13.10  36.38     51   +3.20 1 1 2 1 1   888    0 9.37 -11.51 ----- 30.9 36.4 13.6 51.1 16.1 -26.1 15.3 -25.5 15.3 -24.4 16.0 -23.1
2025-07-01 13:30:08,807 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:30:08,807 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:30:08,807 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.478761
2025-07-01 13:30:08,807 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:30:08,808 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:30:08,808 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:30:08,808 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:30:08,808 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:30:08,808 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:29:50', tmtdew=11.22, humidity=46.75, cloud=0.0, wind=35.98, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:29:24.950', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:30:08,809 [DEBUG][       Thread-606094][   transport.py][1871] : EOF in transport thread
2025-07-01 13:30:08,892 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:30:08,909 [DEBUG][       Thread-606097][   transport.py][1871] : starting thread (client mode): 0x827ec50
2025-07-01 13:30:08,909 [DEBUG][       Thread-606097][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:30:08,925 [DEBUG][       Thread-606097][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:30:08,925 [ INFO][       Thread-606097][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:30:08,932 [DEBUG][       Thread-606097][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:30:08,932 [DEBUG][       Thread-606097][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:30:08,932 [DEBUG][       Thread-606097][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:30:08,932 [DEBUG][       Thread-606097][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:30:08,932 [DEBUG][       Thread-606097][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:30:08,932 [DEBUG][       Thread-606097][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:30:08,932 [DEBUG][       Thread-606097][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:30:08,932 [DEBUG][       Thread-606097][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:30:08,932 [DEBUG][       Thread-606097][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:30:08,932 [DEBUG][       Thread-606097][   transport.py][1871] : client lang: <none>
2025-07-01 13:30:08,933 [DEBUG][       Thread-606097][   transport.py][1871] : server lang: <none>
2025-07-01 13:30:08,933 [DEBUG][       Thread-606097][   transport.py][1871] : kex follows: False
2025-07-01 13:30:08,933 [DEBUG][       Thread-606097][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:30:08,933 [DEBUG][       Thread-606097][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:30:08,933 [DEBUG][       Thread-606097][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:30:08,933 [DEBUG][       Thread-606097][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:30:08,933 [DEBUG][       Thread-606097][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:30:08,933 [DEBUG][       Thread-606097][   transport.py][1871] : Compression: none
2025-07-01 13:30:08,933 [DEBUG][       Thread-606097][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:30:08,989 [DEBUG][       Thread-606097][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:30:08,990 [DEBUG][       Thread-606097][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:30:08,990 [DEBUG][       Thread-606097][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:30:08,991 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:30:08,991 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:30:09,045 [DEBUG][       Thread-606097][   transport.py][1871] : userauth is OK
2025-07-01 13:30:09,046 [DEBUG][       Thread-606097][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:30:09,046 [DEBUG][       Thread-606097][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:30:09,046 [DEBUG][       Thread-606097][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:30:09,046 [DEBUG][       Thread-606097][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:30:09,065 [ INFO][       Thread-606097][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:30:09,066 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:30:09,066 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:30:10,090 [DEBUG][       Thread-606097][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:30:10,090 [DEBUG][       Thread-606097][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:30:10,139 [DEBUG][       Thread-606097][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:30:10,139 [DEBUG][       Thread-606097][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:30:10,148 [DEBUG][       Thread-606097][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:30:10,156 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:30:10,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')
2025-07-01 13:30:10,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-07-01 13:30:10,172 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:30:10,172 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:30:10,172 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:30:10,180 [DEBUG][       Thread-606097][   transport.py][1871] : EOF in transport thread
2025-07-01 13:30:16,517 [DEBUG][Thread-606099 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:30:20,182 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:30:20,183 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:30:20,183 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:30:20,186 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:30:20,689 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 29, 50), 11.22, 46.75, 0.0, 35.98, 13.3, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:30:20,689 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:29:50
2025-07-01 13:30:20,773 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:30:20,776 [DEBUG][       Thread-606100][   transport.py][1871] : starting thread (client mode): 0x81d8ac0
2025-07-01 13:30:20,777 [DEBUG][       Thread-606100][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:30:20,797 [DEBUG][       Thread-606100][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:30:20,797 [ INFO][       Thread-606100][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:30:20,800 [DEBUG][       Thread-606100][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:30:20,800 [DEBUG][       Thread-606100][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:30:20,800 [DEBUG][       Thread-606100][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:30:20,800 [DEBUG][       Thread-606100][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:30:20,800 [DEBUG][       Thread-606100][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:30:20,800 [DEBUG][       Thread-606100][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:30:20,800 [DEBUG][       Thread-606100][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:30:20,800 [DEBUG][       Thread-606100][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:30:20,800 [DEBUG][       Thread-606100][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:30:20,800 [DEBUG][       Thread-606100][   transport.py][1871] : client lang: <none>
2025-07-01 13:30:20,800 [DEBUG][       Thread-606100][   transport.py][1871] : server lang: <none>
2025-07-01 13:30:20,800 [DEBUG][       Thread-606100][   transport.py][1871] : kex follows: False
2025-07-01 13:30:20,800 [DEBUG][       Thread-606100][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:30:20,800 [DEBUG][       Thread-606100][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:30:20,800 [DEBUG][       Thread-606100][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:30:20,800 [DEBUG][       Thread-606100][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:30:20,800 [DEBUG][       Thread-606100][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:30:20,800 [DEBUG][       Thread-606100][   transport.py][1871] : Compression: none
2025-07-01 13:30:20,800 [DEBUG][       Thread-606100][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:30:20,817 [DEBUG][       Thread-606100][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:30:20,818 [DEBUG][       Thread-606100][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:30:20,818 [DEBUG][       Thread-606100][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:30:20,818 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:30:20,818 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:30:20,819 [DEBUG][       Thread-606100][   transport.py][1871] : userauth is OK
2025-07-01 13:30:20,832 [ INFO][       Thread-606100][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:30:20,833 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:30:21,470 [DEBUG][       Thread-606100][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:30:21,470 [DEBUG][       Thread-606100][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:30:21,513 [DEBUG][       Thread-606100][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:30:21,513 [DEBUG][       Thread-606100][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:30:21,516 [DEBUG][       Thread-606100][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:30:21,530 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:30:21,530 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:30:21,532 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:30:21,534 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:30:21,539 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:30:21,541 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:30:21,541 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:30:21,542 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:30:21,542 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.479109 -999.00  +13.20  28.48     51   +3.50 1 1 1 1 1   888    0 9.70 -12.17 ----- 33.0 28.5 20.0 47.9 16.2 -24.6 15.3 -24.4 15.4 -23.7 16.1 -22.4
2025-07-01 13:30:21,542 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:30:21,542 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:30:21,542 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.479109
2025-07-01 13:30:21,542 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:30:21,543 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:30:21,543 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:30:21,543 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:30:21,543 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:30:21,543 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:29:50', tmtdew=11.22, humidity=46.75, cloud=0.0, wind=35.98, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:29:55.018', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:30:21,544 [DEBUG][       Thread-606100][   transport.py][1871] : EOF in transport thread
2025-07-01 13:30:21,627 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:30:21,636 [DEBUG][       Thread-606103][   transport.py][1871] : starting thread (client mode): 0x8393c40
2025-07-01 13:30:21,636 [DEBUG][       Thread-606103][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:30:21,658 [DEBUG][       Thread-606103][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:30:21,658 [ INFO][       Thread-606103][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:30:21,665 [DEBUG][       Thread-606103][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:30:21,665 [DEBUG][       Thread-606103][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:30:21,666 [DEBUG][       Thread-606103][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:30:21,666 [DEBUG][       Thread-606103][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:30:21,666 [DEBUG][       Thread-606103][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:30:21,666 [DEBUG][       Thread-606103][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:30:21,666 [DEBUG][       Thread-606103][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:30:21,666 [DEBUG][       Thread-606103][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:30:21,666 [DEBUG][       Thread-606103][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:30:21,666 [DEBUG][       Thread-606103][   transport.py][1871] : client lang: <none>
2025-07-01 13:30:21,666 [DEBUG][       Thread-606103][   transport.py][1871] : server lang: <none>
2025-07-01 13:30:21,666 [DEBUG][       Thread-606103][   transport.py][1871] : kex follows: False
2025-07-01 13:30:21,666 [DEBUG][       Thread-606103][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:30:21,666 [DEBUG][       Thread-606103][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:30:21,666 [DEBUG][       Thread-606103][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:30:21,666 [DEBUG][       Thread-606103][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:30:21,666 [DEBUG][       Thread-606103][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:30:21,666 [DEBUG][       Thread-606103][   transport.py][1871] : Compression: none
2025-07-01 13:30:21,666 [DEBUG][       Thread-606103][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:30:21,725 [DEBUG][       Thread-606103][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:30:21,726 [DEBUG][       Thread-606103][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:30:21,726 [DEBUG][       Thread-606103][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:30:21,727 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:30:21,727 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:30:21,781 [DEBUG][       Thread-606103][   transport.py][1871] : userauth is OK
2025-07-01 13:30:21,782 [DEBUG][       Thread-606103][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:30:21,782 [DEBUG][       Thread-606103][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:30:21,782 [DEBUG][       Thread-606103][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:30:21,782 [DEBUG][       Thread-606103][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:30:21,802 [ INFO][       Thread-606103][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:30:21,803 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:30:21,803 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:30:22,803 [DEBUG][       Thread-606103][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:30:22,803 [DEBUG][       Thread-606103][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:30:22,851 [DEBUG][       Thread-606103][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:30:22,851 [DEBUG][       Thread-606103][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:30:22,860 [DEBUG][       Thread-606103][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:30:22,867 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:30:22,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-07-01 13:30: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') -> 00000000
2025-07-01 13:30:22,883 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:30:22,883 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:30:22,883 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:30:22,891 [DEBUG][       Thread-606103][   transport.py][1871] : EOF in transport thread
2025-07-01 13:30:24,768 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:30:24,769 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:30:25,539 [DEBUG][Thread-606105 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:30:32,262 [DEBUG][Thread-606106 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:30:32,893 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:30:32,894 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:30:32,894 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:30:32,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-07-01 13:30:33,400 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 30, 22), 11.19, 46.85, 0.0, 35.6, 13.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:30:33,400 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:30:22
2025-07-01 13:30:33,484 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:30:33,488 [DEBUG][       Thread-606107][   transport.py][1871] : starting thread (client mode): 0x818f010
2025-07-01 13:30:33,488 [DEBUG][       Thread-606107][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:30:33,509 [DEBUG][       Thread-606107][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:30:33,509 [ INFO][       Thread-606107][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:30:33,512 [DEBUG][       Thread-606107][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:30:33,512 [DEBUG][       Thread-606107][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:30:33,512 [DEBUG][       Thread-606107][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:30:33,512 [DEBUG][       Thread-606107][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:30:33,512 [DEBUG][       Thread-606107][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:30:33,512 [DEBUG][       Thread-606107][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:30:33,512 [DEBUG][       Thread-606107][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:30:33,512 [DEBUG][       Thread-606107][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:30:33,512 [DEBUG][       Thread-606107][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:30:33,512 [DEBUG][       Thread-606107][   transport.py][1871] : client lang: <none>
2025-07-01 13:30:33,512 [DEBUG][       Thread-606107][   transport.py][1871] : server lang: <none>
2025-07-01 13:30:33,512 [DEBUG][       Thread-606107][   transport.py][1871] : kex follows: False
2025-07-01 13:30:33,512 [DEBUG][       Thread-606107][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:30:33,512 [DEBUG][       Thread-606107][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:30:33,513 [DEBUG][       Thread-606107][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:30:33,513 [DEBUG][       Thread-606107][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:30:33,513 [DEBUG][       Thread-606107][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:30:33,513 [DEBUG][       Thread-606107][   transport.py][1871] : Compression: none
2025-07-01 13:30:33,513 [DEBUG][       Thread-606107][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:30:33,532 [DEBUG][       Thread-606107][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:30:33,532 [DEBUG][       Thread-606107][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:30:33,533 [DEBUG][       Thread-606107][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:30:33,533 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:30:33,533 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:30:33,534 [DEBUG][       Thread-606107][   transport.py][1871] : userauth is OK
2025-07-01 13:30:33,547 [ INFO][       Thread-606107][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:30:33,548 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:30:34,200 [DEBUG][       Thread-606107][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:30:34,200 [DEBUG][       Thread-606107][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:30:34,241 [DEBUG][       Thread-606107][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:30:34,241 [DEBUG][       Thread-606107][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:30:34,244 [DEBUG][       Thread-606107][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:30:34,256 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:30:34,256 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:30:34,258 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:30:34,261 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:30:34,267 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:30:34,269 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:30:34,269 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:30:34,270 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:30:34,270 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.479109 -999.00  +13.20  28.48     51   +3.50 1 1 1 1 1   888    0 9.70 -12.17 ----- 33.0 28.5 20.0 47.9 16.2 -24.6 15.3 -24.4 15.4 -23.7 16.1 -22.4
2025-07-01 13:30:34,270 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:30:34,270 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:30:34,270 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.479109
2025-07-01 13:30:34,271 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:30:34,271 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:30:34,271 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:30:34,271 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:30:34,271 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:30:34,272 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:30:22', tmtdew=11.19, humidity=46.85, cloud=0.0, wind=35.6, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:29:55.018', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:30:34,273 [DEBUG][       Thread-606107][   transport.py][1871] : EOF in transport thread
2025-07-01 13:30:34,355 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:30:34,368 [DEBUG][       Thread-606110][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 13:30:34,368 [DEBUG][       Thread-606110][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:30:34,383 [DEBUG][       Thread-606110][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:30:34,383 [ INFO][       Thread-606110][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:30:34,391 [DEBUG][       Thread-606110][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:30:34,391 [DEBUG][       Thread-606110][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:30:34,391 [DEBUG][       Thread-606110][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:30:34,391 [DEBUG][       Thread-606110][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:30:34,391 [DEBUG][       Thread-606110][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:30:34,391 [DEBUG][       Thread-606110][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:30:34,391 [DEBUG][       Thread-606110][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:30:34,391 [DEBUG][       Thread-606110][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:30:34,391 [DEBUG][       Thread-606110][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:30:34,391 [DEBUG][       Thread-606110][   transport.py][1871] : client lang: <none>
2025-07-01 13:30:34,391 [DEBUG][       Thread-606110][   transport.py][1871] : server lang: <none>
2025-07-01 13:30:34,391 [DEBUG][       Thread-606110][   transport.py][1871] : kex follows: False
2025-07-01 13:30:34,391 [DEBUG][       Thread-606110][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:30:34,391 [DEBUG][       Thread-606110][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:30:34,391 [DEBUG][       Thread-606110][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:30:34,391 [DEBUG][       Thread-606110][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:30:34,392 [DEBUG][       Thread-606110][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:30:34,392 [DEBUG][       Thread-606110][   transport.py][1871] : Compression: none
2025-07-01 13:30:34,392 [DEBUG][       Thread-606110][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:30:34,452 [DEBUG][       Thread-606110][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:30:34,453 [DEBUG][       Thread-606110][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:30:34,453 [DEBUG][       Thread-606110][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:30:34,453 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:30:34,454 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:30:34,511 [DEBUG][       Thread-606110][   transport.py][1871] : userauth is OK
2025-07-01 13:30:34,511 [DEBUG][       Thread-606110][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:30:34,511 [DEBUG][       Thread-606110][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:30:34,511 [DEBUG][       Thread-606110][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:30:34,511 [DEBUG][       Thread-606110][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:30:34,531 [ INFO][       Thread-606110][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:30:34,531 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:30:34,531 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:30:34,564 [DEBUG][Thread-606112 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:30:35,531 [DEBUG][       Thread-606110][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:30:35,531 [DEBUG][       Thread-606110][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:30:35,580 [DEBUG][       Thread-606110][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:30:35,580 [DEBUG][       Thread-606110][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:30:35,589 [DEBUG][       Thread-606110][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:30:35,598 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:30:35,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-07-01 13:30:35,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-07-01 13:30:35,621 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:30:35,621 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:30:35,621 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:30:35,629 [DEBUG][       Thread-606110][   transport.py][1871] : EOF in transport thread
2025-07-01 13:30:43,610 [DEBUG][Thread-606113 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:30:45,632 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:30:45,632 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:30:45,632 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:30:45,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-07-01 13:30:46,130 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 30, 22), 11.19, 46.85, 0.0, 35.6, 13.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:30:46,130 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:30:22
2025-07-01 13:30:46,214 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:30:46,218 [DEBUG][       Thread-606114][   transport.py][1871] : starting thread (client mode): 0x81a4ca0
2025-07-01 13:30:46,218 [DEBUG][       Thread-606114][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:30:46,237 [DEBUG][       Thread-606114][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:30:46,237 [ INFO][       Thread-606114][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:30:46,238 [DEBUG][       Thread-606114][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:30:46,238 [DEBUG][       Thread-606114][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:30:46,238 [DEBUG][       Thread-606114][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:30:46,238 [DEBUG][       Thread-606114][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:30:46,238 [DEBUG][       Thread-606114][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:30:46,238 [DEBUG][       Thread-606114][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:30:46,238 [DEBUG][       Thread-606114][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:30:46,238 [DEBUG][       Thread-606114][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:30:46,238 [DEBUG][       Thread-606114][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:30:46,238 [DEBUG][       Thread-606114][   transport.py][1871] : client lang: <none>
2025-07-01 13:30:46,238 [DEBUG][       Thread-606114][   transport.py][1871] : server lang: <none>
2025-07-01 13:30:46,238 [DEBUG][       Thread-606114][   transport.py][1871] : kex follows: False
2025-07-01 13:30:46,238 [DEBUG][       Thread-606114][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:30:46,239 [DEBUG][       Thread-606114][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:30:46,239 [DEBUG][       Thread-606114][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:30:46,239 [DEBUG][       Thread-606114][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:30:46,239 [DEBUG][       Thread-606114][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:30:46,239 [DEBUG][       Thread-606114][   transport.py][1871] : Compression: none
2025-07-01 13:30:46,239 [DEBUG][       Thread-606114][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:30:46,255 [DEBUG][       Thread-606114][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:30:46,256 [DEBUG][       Thread-606114][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:30:46,256 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:30:46,256 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:30:46,257 [DEBUG][       Thread-606114][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:30:46,257 [DEBUG][       Thread-606114][   transport.py][1871] : userauth is OK
2025-07-01 13:30:46,281 [ INFO][       Thread-606114][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:30:46,282 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:30:46,889 [DEBUG][       Thread-606114][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:30:46,889 [DEBUG][       Thread-606114][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:30:46,933 [DEBUG][       Thread-606114][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:30:46,933 [DEBUG][       Thread-606114][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:30:46,936 [DEBUG][       Thread-606114][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:30:46,947 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:30:46,948 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:30:46,950 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:30:46,952 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:30:46,957 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:30:46,958 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:30:46,958 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:30:46,959 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:30:46,959 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.479456 -999.00  +13.20  32.16     51   +3.40 1 1 2 1 1   888    0 9.73 -13.03 ----- 31.6 32.2 29.3 45.6 16.2 -24.3 15.3 -25.0 15.4 -24.8 16.2 -25.3
2025-07-01 13:30:46,959 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:30:46,959 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:30:46,959 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.479456
2025-07-01 13:30:46,960 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:30:46,960 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:30:46,961 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:30:46,961 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:30:46,961 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:30:46,961 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:30:22', tmtdew=11.19, humidity=46.85, cloud=0.0, wind=35.6, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:30:24.998', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:30:46,961 [DEBUG][       Thread-606114][   transport.py][1871] : EOF in transport thread
2025-07-01 13:30:47,044 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:30:47,054 [DEBUG][       Thread-606117][   transport.py][1871] : starting thread (client mode): 0x8104f40
2025-07-01 13:30:47,054 [DEBUG][       Thread-606117][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:30:47,069 [DEBUG][       Thread-606117][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:30:47,069 [ INFO][       Thread-606117][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:30:47,077 [DEBUG][       Thread-606117][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:30:47,077 [DEBUG][       Thread-606117][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:30:47,077 [DEBUG][       Thread-606117][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:30:47,077 [DEBUG][       Thread-606117][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:30:47,077 [DEBUG][       Thread-606117][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:30:47,077 [DEBUG][       Thread-606117][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:30:47,077 [DEBUG][       Thread-606117][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:30:47,077 [DEBUG][       Thread-606117][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:30:47,077 [DEBUG][       Thread-606117][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:30:47,077 [DEBUG][       Thread-606117][   transport.py][1871] : client lang: <none>
2025-07-01 13:30:47,077 [DEBUG][       Thread-606117][   transport.py][1871] : server lang: <none>
2025-07-01 13:30:47,077 [DEBUG][       Thread-606117][   transport.py][1871] : kex follows: False
2025-07-01 13:30:47,077 [DEBUG][       Thread-606117][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:30:47,077 [DEBUG][       Thread-606117][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:30:47,077 [DEBUG][       Thread-606117][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:30:47,078 [DEBUG][       Thread-606117][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:30:47,078 [DEBUG][       Thread-606117][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:30:47,078 [DEBUG][       Thread-606117][   transport.py][1871] : Compression: none
2025-07-01 13:30:47,078 [DEBUG][       Thread-606117][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:30:47,140 [DEBUG][       Thread-606117][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:30:47,140 [DEBUG][       Thread-606117][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:30:47,141 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:30:47,141 [DEBUG][       Thread-606117][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:30:47,142 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:30:47,196 [DEBUG][       Thread-606117][   transport.py][1871] : userauth is OK
2025-07-01 13:30:47,196 [DEBUG][       Thread-606117][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:30:47,197 [DEBUG][       Thread-606117][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:30:47,197 [DEBUG][       Thread-606117][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:30:47,197 [DEBUG][       Thread-606117][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:30:47,216 [ INFO][       Thread-606117][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:30:47,216 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:30:47,216 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:30:48,252 [DEBUG][       Thread-606117][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:30:48,252 [DEBUG][       Thread-606117][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:30:48,300 [DEBUG][       Thread-606117][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:30:48,300 [DEBUG][       Thread-606117][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:30:48,310 [DEBUG][       Thread-606117][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:30:48,319 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:30: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-07-01 13:30: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-07-01 13:30:48,337 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:30:48,337 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:30:48,338 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:30:48,346 [DEBUG][       Thread-606117][   transport.py][1871] : EOF in transport thread
2025-07-01 13:30:52,629 [DEBUG][Thread-606119 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:30:58,348 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:30:58,349 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:30:58,349 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:30:58,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-07-01 13:30:58,847 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 30, 54), 11.24, 46.71, 0.0, 38.2, 13.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:30:58,847 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:30:54
2025-07-01 13:30:58,930 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:30:58,934 [DEBUG][       Thread-606120][   transport.py][1871] : starting thread (client mode): 0x81a40d0
2025-07-01 13:30:58,934 [DEBUG][       Thread-606120][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:30:58,946 [DEBUG][       Thread-606120][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:30:58,946 [ INFO][       Thread-606120][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:30:58,949 [DEBUG][       Thread-606120][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:30:58,949 [DEBUG][       Thread-606120][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:30:58,949 [DEBUG][       Thread-606120][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:30:58,949 [DEBUG][       Thread-606120][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:30:58,949 [DEBUG][       Thread-606120][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:30:58,949 [DEBUG][       Thread-606120][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:30:58,949 [DEBUG][       Thread-606120][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:30:58,949 [DEBUG][       Thread-606120][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:30:58,949 [DEBUG][       Thread-606120][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:30:58,949 [DEBUG][       Thread-606120][   transport.py][1871] : client lang: <none>
2025-07-01 13:30:58,949 [DEBUG][       Thread-606120][   transport.py][1871] : server lang: <none>
2025-07-01 13:30:58,949 [DEBUG][       Thread-606120][   transport.py][1871] : kex follows: False
2025-07-01 13:30:58,949 [DEBUG][       Thread-606120][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:30:58,949 [DEBUG][       Thread-606120][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:30:58,949 [DEBUG][       Thread-606120][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:30:58,949 [DEBUG][       Thread-606120][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:30:58,949 [DEBUG][       Thread-606120][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:30:58,949 [DEBUG][       Thread-606120][   transport.py][1871] : Compression: none
2025-07-01 13:30:58,949 [DEBUG][       Thread-606120][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:30:58,957 [DEBUG][       Thread-606120][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:30:58,957 [DEBUG][       Thread-606120][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:30:58,957 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:30:58,957 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:30:58,958 [DEBUG][       Thread-606120][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:30:58,958 [DEBUG][       Thread-606120][   transport.py][1871] : userauth is OK
2025-07-01 13:30:58,982 [ INFO][       Thread-606120][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:30:58,982 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:30:59,641 [DEBUG][       Thread-606120][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:30:59,641 [DEBUG][       Thread-606120][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:30:59,685 [DEBUG][       Thread-606120][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:30:59,685 [DEBUG][       Thread-606120][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:30:59,688 [DEBUG][       Thread-606120][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:30:59,700 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:30:59,701 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:30:59,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:30:59,704 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:30:59,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:30:59,711 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:30:59,712 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:30:59,712 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:30:59,712 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.479456 -999.00  +13.20  32.16     51   +3.40 1 1 2 1 1   888    0 9.73 -13.03 ----- 31.6 32.2 29.3 45.6 16.2 -24.3 15.3 -25.0 15.4 -24.8 16.2 -25.3
2025-07-01 13:30:59,712 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:30:59,713 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:30:59,713 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.479456
2025-07-01 13:30:59,713 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:30:59,714 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:30:59,714 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:30:59,714 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:30:59,714 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:30:59,714 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:30:54', tmtdew=11.24, humidity=46.71, cloud=0.0, wind=38.2, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:30:24.998', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:30:59,714 [DEBUG][       Thread-606120][   transport.py][1871] : EOF in transport thread
2025-07-01 13:30:59,797 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:30:59,809 [DEBUG][       Thread-606123][   transport.py][1871] : starting thread (client mode): 0x81e7610
2025-07-01 13:30:59,809 [DEBUG][       Thread-606123][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:30:59,824 [DEBUG][       Thread-606123][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:30:59,824 [ INFO][       Thread-606123][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:30:59,832 [DEBUG][       Thread-606123][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:30:59,832 [DEBUG][       Thread-606123][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:30:59,832 [DEBUG][       Thread-606123][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:30:59,832 [DEBUG][       Thread-606123][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:30:59,832 [DEBUG][       Thread-606123][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:30:59,832 [DEBUG][       Thread-606123][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:30:59,832 [DEBUG][       Thread-606123][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:30:59,832 [DEBUG][       Thread-606123][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:30:59,832 [DEBUG][       Thread-606123][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:30:59,832 [DEBUG][       Thread-606123][   transport.py][1871] : client lang: <none>
2025-07-01 13:30:59,832 [DEBUG][       Thread-606123][   transport.py][1871] : server lang: <none>
2025-07-01 13:30:59,832 [DEBUG][       Thread-606123][   transport.py][1871] : kex follows: False
2025-07-01 13:30:59,832 [DEBUG][       Thread-606123][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:30:59,833 [DEBUG][       Thread-606123][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:30:59,833 [DEBUG][       Thread-606123][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:30:59,833 [DEBUG][       Thread-606123][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:30:59,833 [DEBUG][       Thread-606123][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:30:59,833 [DEBUG][       Thread-606123][   transport.py][1871] : Compression: none
2025-07-01 13:30:59,833 [DEBUG][       Thread-606123][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:30:59,891 [DEBUG][       Thread-606123][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:30:59,892 [DEBUG][       Thread-606123][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:30:59,892 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:30:59,893 [DEBUG][       Thread-606123][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:30:59,894 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:30:59,955 [DEBUG][       Thread-606123][   transport.py][1871] : userauth is OK
2025-07-01 13:30:59,956 [DEBUG][       Thread-606123][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:30:59,956 [DEBUG][       Thread-606123][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:30:59,956 [DEBUG][       Thread-606123][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:30:59,956 [DEBUG][       Thread-606123][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:30:59,975 [ INFO][       Thread-606123][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:30:59,975 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:30:59,975 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:31:00,985 [DEBUG][       Thread-606123][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:31:00,985 [DEBUG][       Thread-606123][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:31:01,036 [DEBUG][       Thread-606123][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:31:01,036 [DEBUG][       Thread-606123][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:31:01,045 [DEBUG][       Thread-606123][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:31:01,054 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:31:01,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-07-01 13:31:01,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-07-01 13:31:01,073 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:31:01,073 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:31:01,073 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:31:01,081 [DEBUG][       Thread-606123][   transport.py][1871] : EOF in transport thread
2025-07-01 13:31:01,649 [DEBUG][Thread-606125 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:31:10,695 [DEBUG][Thread-606126 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:31:11,084 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:31:11,084 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:31:11,084 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:31:11,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-07-01 13:31:11,577 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 30, 54), 11.24, 46.71, 0.0, 38.2, 13.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:31:11,577 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:30:54
2025-07-01 13:31:11,660 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:31:11,663 [DEBUG][       Thread-606127][   transport.py][1871] : starting thread (client mode): 0x81a6a10
2025-07-01 13:31:11,663 [DEBUG][       Thread-606127][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:31:11,686 [DEBUG][       Thread-606127][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:31:11,686 [ INFO][       Thread-606127][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:31:11,690 [DEBUG][       Thread-606127][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:31:11,690 [DEBUG][       Thread-606127][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:31:11,691 [DEBUG][       Thread-606127][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:31:11,691 [DEBUG][       Thread-606127][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:31:11,691 [DEBUG][       Thread-606127][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:31:11,691 [DEBUG][       Thread-606127][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:31:11,691 [DEBUG][       Thread-606127][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:31:11,691 [DEBUG][       Thread-606127][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:31:11,691 [DEBUG][       Thread-606127][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:31:11,691 [DEBUG][       Thread-606127][   transport.py][1871] : client lang: <none>
2025-07-01 13:31:11,691 [DEBUG][       Thread-606127][   transport.py][1871] : server lang: <none>
2025-07-01 13:31:11,691 [DEBUG][       Thread-606127][   transport.py][1871] : kex follows: False
2025-07-01 13:31:11,691 [DEBUG][       Thread-606127][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:31:11,691 [DEBUG][       Thread-606127][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:31:11,691 [DEBUG][       Thread-606127][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:31:11,691 [DEBUG][       Thread-606127][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:31:11,691 [DEBUG][       Thread-606127][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:31:11,691 [DEBUG][       Thread-606127][   transport.py][1871] : Compression: none
2025-07-01 13:31:11,691 [DEBUG][       Thread-606127][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:31:11,707 [DEBUG][       Thread-606127][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:31:11,708 [DEBUG][       Thread-606127][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:31:11,708 [DEBUG][       Thread-606127][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:31:11,708 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:31:11,708 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:31:11,709 [DEBUG][       Thread-606127][   transport.py][1871] : userauth is OK
2025-07-01 13:31:11,722 [ INFO][       Thread-606127][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:31:11,723 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:31:12,318 [DEBUG][       Thread-606127][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:31:12,318 [DEBUG][       Thread-606127][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:31:12,360 [DEBUG][       Thread-606127][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:31:12,361 [DEBUG][       Thread-606127][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:31:12,363 [DEBUG][       Thread-606127][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:31:12,370 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:31:12,371 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:31:12,372 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:31:12,373 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:31:12,377 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:31:12,378 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:31:12,379 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:31:12,379 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:31:12,379 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.479456 -999.00  +13.20  32.16     51   +3.40 1 1 2 1 1   888    0 9.73 -13.03 ----- 31.6 32.2 29.3 45.6 16.2 -24.3 15.3 -25.0 15.4 -24.8 16.2 -25.3
2025-07-01 13:31:12,379 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:31:12,379 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:31:12,379 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.479456
2025-07-01 13:31:12,380 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:31:12,380 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:31:12,380 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:31:12,381 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:31:12,381 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:31:12,381 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:30:54', tmtdew=11.24, humidity=46.71, cloud=0.0, wind=38.2, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:30:24.998', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:31:12,382 [DEBUG][       Thread-606127][   transport.py][1871] : EOF in transport thread
2025-07-01 13:31:12,465 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:31:12,474 [DEBUG][       Thread-606130][   transport.py][1871] : starting thread (client mode): 0x8393c40
2025-07-01 13:31:12,474 [DEBUG][       Thread-606130][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:31:12,490 [DEBUG][       Thread-606130][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:31:12,490 [ INFO][       Thread-606130][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:31:12,497 [DEBUG][       Thread-606130][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:31:12,497 [DEBUG][       Thread-606130][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:31:12,497 [DEBUG][       Thread-606130][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:31:12,497 [DEBUG][       Thread-606130][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:31:12,497 [DEBUG][       Thread-606130][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:31:12,497 [DEBUG][       Thread-606130][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:31:12,497 [DEBUG][       Thread-606130][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:31:12,497 [DEBUG][       Thread-606130][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:31:12,497 [DEBUG][       Thread-606130][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:31:12,497 [DEBUG][       Thread-606130][   transport.py][1871] : client lang: <none>
2025-07-01 13:31:12,497 [DEBUG][       Thread-606130][   transport.py][1871] : server lang: <none>
2025-07-01 13:31:12,497 [DEBUG][       Thread-606130][   transport.py][1871] : kex follows: False
2025-07-01 13:31:12,497 [DEBUG][       Thread-606130][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:31:12,497 [DEBUG][       Thread-606130][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:31:12,497 [DEBUG][       Thread-606130][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:31:12,497 [DEBUG][       Thread-606130][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:31:12,497 [DEBUG][       Thread-606130][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:31:12,497 [DEBUG][       Thread-606130][   transport.py][1871] : Compression: none
2025-07-01 13:31:12,497 [DEBUG][       Thread-606130][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:31:12,555 [DEBUG][       Thread-606130][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:31:12,555 [DEBUG][       Thread-606130][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:31:12,556 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:31:12,556 [DEBUG][       Thread-606130][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:31:12,557 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:31:12,610 [DEBUG][       Thread-606130][   transport.py][1871] : userauth is OK
2025-07-01 13:31:12,611 [DEBUG][       Thread-606130][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:31:12,611 [DEBUG][       Thread-606130][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:31:12,611 [DEBUG][       Thread-606130][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:31:12,611 [DEBUG][       Thread-606130][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:31:12,630 [ INFO][       Thread-606130][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:31:12,630 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:31:12,630 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:31:13,652 [DEBUG][       Thread-606130][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:31:13,652 [DEBUG][       Thread-606130][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:31:13,699 [DEBUG][       Thread-606130][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:31:13,699 [DEBUG][       Thread-606130][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:31:13,708 [DEBUG][       Thread-606130][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:31:13,717 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:31:13,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-07-01 13:31:13,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-07-01 13:31:13,734 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:31:13,734 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:31:13,734 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:31:13,742 [DEBUG][       Thread-606130][   transport.py][1871] : EOF in transport thread
2025-07-01 13:31:19,720 [DEBUG][Thread-606132 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:31:23,740 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:31:23,740 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:31:23,740 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:31:23,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-07-01 13:31:24,245 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 30, 54), 11.24, 46.71, 0.0, 38.2, 13.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:31:24,245 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:30:54
2025-07-01 13:31:24,328 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:31:24,333 [DEBUG][       Thread-606133][   transport.py][1871] : starting thread (client mode): 0x81dace0
2025-07-01 13:31:24,333 [DEBUG][       Thread-606133][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:31:24,354 [DEBUG][       Thread-606133][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:31:24,354 [ INFO][       Thread-606133][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:31:24,358 [DEBUG][       Thread-606133][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:31:24,358 [DEBUG][       Thread-606133][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:31:24,358 [DEBUG][       Thread-606133][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:31:24,358 [DEBUG][       Thread-606133][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:31:24,358 [DEBUG][       Thread-606133][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:31:24,358 [DEBUG][       Thread-606133][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:31:24,358 [DEBUG][       Thread-606133][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:31:24,358 [DEBUG][       Thread-606133][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:31:24,358 [DEBUG][       Thread-606133][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:31:24,358 [DEBUG][       Thread-606133][   transport.py][1871] : client lang: <none>
2025-07-01 13:31:24,358 [DEBUG][       Thread-606133][   transport.py][1871] : server lang: <none>
2025-07-01 13:31:24,358 [DEBUG][       Thread-606133][   transport.py][1871] : kex follows: False
2025-07-01 13:31:24,358 [DEBUG][       Thread-606133][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:31:24,359 [DEBUG][       Thread-606133][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:31:24,359 [DEBUG][       Thread-606133][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:31:24,359 [DEBUG][       Thread-606133][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:31:24,359 [DEBUG][       Thread-606133][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:31:24,359 [DEBUG][       Thread-606133][   transport.py][1871] : Compression: none
2025-07-01 13:31:24,359 [DEBUG][       Thread-606133][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:31:24,376 [DEBUG][       Thread-606133][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:31:24,377 [DEBUG][       Thread-606133][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:31:24,377 [DEBUG][       Thread-606133][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:31:24,377 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:31:24,378 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:31:24,379 [DEBUG][       Thread-606133][   transport.py][1871] : userauth is OK
2025-07-01 13:31:24,403 [ INFO][       Thread-606133][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:31:24,403 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:31:24,907 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:31:24,907 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:31:25,028 [DEBUG][       Thread-606133][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:31:25,028 [DEBUG][       Thread-606133][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:31:25,073 [DEBUG][       Thread-606133][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:31:25,073 [DEBUG][       Thread-606133][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:31:25,075 [DEBUG][       Thread-606133][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:31:25,082 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:31:25,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:31:25,084 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:31:25,085 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:31:25,090 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:31:25,092 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:31:25,092 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:31:25,093 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:31:25,093 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.479803 -999.00  +13.10  29.97     51   +3.30 1 1 1 1 1   888    0 9.34 -14.42 ----- 33.0 30.0 19.3 46.7 16.2 -24.9 15.3 -25.4 15.4 -23.9 16.2 -21.8
2025-07-01 13:31:25,093 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:31:25,093 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:31:25,093 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.479803
2025-07-01 13:31:25,094 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:31:25,094 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:31:25,094 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:31:25,094 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:31:25,094 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:31:25,095 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:30:54', tmtdew=11.24, humidity=46.71, cloud=0.0, wind=38.2, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:30:54.979', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:31:25,096 [DEBUG][       Thread-606133][   transport.py][1871] : EOF in transport thread
2025-07-01 13:31:25,172 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:31:25,184 [DEBUG][       Thread-606136][   transport.py][1871] : starting thread (client mode): 0x83c8070
2025-07-01 13:31:25,184 [DEBUG][       Thread-606136][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:31:25,200 [DEBUG][       Thread-606136][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:31:25,200 [ INFO][       Thread-606136][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:31:25,208 [DEBUG][       Thread-606136][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:31:25,208 [DEBUG][       Thread-606136][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:31:25,208 [DEBUG][       Thread-606136][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:31:25,208 [DEBUG][       Thread-606136][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:31:25,208 [DEBUG][       Thread-606136][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:31:25,208 [DEBUG][       Thread-606136][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:31:25,208 [DEBUG][       Thread-606136][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:31:25,208 [DEBUG][       Thread-606136][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:31:25,208 [DEBUG][       Thread-606136][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:31:25,208 [DEBUG][       Thread-606136][   transport.py][1871] : client lang: <none>
2025-07-01 13:31:25,208 [DEBUG][       Thread-606136][   transport.py][1871] : server lang: <none>
2025-07-01 13:31:25,209 [DEBUG][       Thread-606136][   transport.py][1871] : kex follows: False
2025-07-01 13:31:25,209 [DEBUG][       Thread-606136][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:31:25,209 [DEBUG][       Thread-606136][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:31:25,209 [DEBUG][       Thread-606136][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:31:25,209 [DEBUG][       Thread-606136][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:31:25,209 [DEBUG][       Thread-606136][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:31:25,209 [DEBUG][       Thread-606136][   transport.py][1871] : Compression: none
2025-07-01 13:31:25,209 [DEBUG][       Thread-606136][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:31:25,267 [DEBUG][       Thread-606136][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:31:25,267 [DEBUG][       Thread-606136][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:31:25,268 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:31:25,268 [DEBUG][       Thread-606136][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:31:25,269 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:31:25,322 [DEBUG][       Thread-606136][   transport.py][1871] : userauth is OK
2025-07-01 13:31:25,323 [DEBUG][       Thread-606136][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:31:25,323 [DEBUG][       Thread-606136][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:31:25,323 [DEBUG][       Thread-606136][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:31:25,323 [DEBUG][       Thread-606136][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:31:25,347 [ INFO][       Thread-606136][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:31:25,348 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:31:25,348 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:31:26,348 [DEBUG][       Thread-606136][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:31:26,348 [DEBUG][       Thread-606136][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:31:26,399 [DEBUG][       Thread-606136][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:31:26,399 [DEBUG][       Thread-606136][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:31:26,408 [DEBUG][       Thread-606136][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:31:26,415 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:31:26,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')
2025-07-01 13:31:26,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') -> 00000000
2025-07-01 13:31:26,431 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:31:26,431 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:31:26,431 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:31:26,439 [DEBUG][       Thread-606136][   transport.py][1871] : EOF in transport thread
2025-07-01 13:31:28,741 [DEBUG][Thread-606138 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:31:32,294 [DEBUG][Thread-606139 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:31:36,441 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:31:36,442 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:31:36,442 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:31:36,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-07-01 13:31:36,940 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 31, 25), 11.39, 46.11, 0.0, 44.39, 13.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:31:36,941 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:31:25
2025-07-01 13:31:37,024 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:31:37,030 [DEBUG][       Thread-606140][   transport.py][1871] : starting thread (client mode): 0x8172c80
2025-07-01 13:31:37,030 [DEBUG][       Thread-606140][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:31:37,050 [DEBUG][       Thread-606140][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:31:37,050 [ INFO][       Thread-606140][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:31:37,053 [DEBUG][       Thread-606140][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:31:37,053 [DEBUG][       Thread-606140][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:31:37,054 [DEBUG][       Thread-606140][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:31:37,054 [DEBUG][       Thread-606140][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:31:37,054 [DEBUG][       Thread-606140][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:31:37,054 [DEBUG][       Thread-606140][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:31:37,054 [DEBUG][       Thread-606140][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:31:37,054 [DEBUG][       Thread-606140][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:31:37,054 [DEBUG][       Thread-606140][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:31:37,054 [DEBUG][       Thread-606140][   transport.py][1871] : client lang: <none>
2025-07-01 13:31:37,054 [DEBUG][       Thread-606140][   transport.py][1871] : server lang: <none>
2025-07-01 13:31:37,054 [DEBUG][       Thread-606140][   transport.py][1871] : kex follows: False
2025-07-01 13:31:37,054 [DEBUG][       Thread-606140][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:31:37,054 [DEBUG][       Thread-606140][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:31:37,054 [DEBUG][       Thread-606140][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:31:37,054 [DEBUG][       Thread-606140][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:31:37,054 [DEBUG][       Thread-606140][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:31:37,054 [DEBUG][       Thread-606140][   transport.py][1871] : Compression: none
2025-07-01 13:31:37,054 [DEBUG][       Thread-606140][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:31:37,073 [DEBUG][       Thread-606140][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:31:37,073 [DEBUG][       Thread-606140][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:31:37,074 [DEBUG][       Thread-606140][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:31:37,074 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:31:37,074 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:31:37,075 [DEBUG][       Thread-606140][   transport.py][1871] : userauth is OK
2025-07-01 13:31:37,089 [ INFO][       Thread-606140][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:31:37,090 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:31:37,759 [DEBUG][Thread-606142 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:31:37,857 [DEBUG][       Thread-606140][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:31:37,857 [DEBUG][       Thread-606140][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:31:37,901 [DEBUG][       Thread-606140][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:31:37,901 [DEBUG][       Thread-606140][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:31:37,904 [DEBUG][       Thread-606140][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:31:37,916 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:31:37,917 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:31:37,919 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:31:37,920 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:31:37,927 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:31:37,929 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:31:37,929 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:31:37,930 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:31:37,930 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.479803 -999.00  +13.10  29.97     51   +3.30 1 1 1 1 1   888    0 9.34 -14.42 ----- 33.0 30.0 19.3 46.7 16.2 -24.9 15.3 -25.4 15.4 -23.9 16.2 -21.8
2025-07-01 13:31:37,930 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:31:37,930 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:31:37,930 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.479803
2025-07-01 13:31:37,931 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:31:37,931 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:31:37,932 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:31:37,932 [DEBUG][       Thread-606140][   transport.py][1871] : EOF in transport thread
2025-07-01 13:31:37,932 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:31:37,933 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:31:37,933 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:31:25', tmtdew=11.39, humidity=46.11, cloud=0.0, wind=44.39, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:30:54.979', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:31:38,016 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:31:38,025 [DEBUG][       Thread-606144][   transport.py][1871] : starting thread (client mode): 0x818ec20
2025-07-01 13:31:38,025 [DEBUG][       Thread-606144][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:31:38,040 [DEBUG][       Thread-606144][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:31:38,040 [ INFO][       Thread-606144][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:31:38,048 [DEBUG][       Thread-606144][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:31:38,048 [DEBUG][       Thread-606144][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:31:38,048 [DEBUG][       Thread-606144][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:31:38,048 [DEBUG][       Thread-606144][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:31:38,048 [DEBUG][       Thread-606144][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:31:38,048 [DEBUG][       Thread-606144][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:31:38,048 [DEBUG][       Thread-606144][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:31:38,048 [DEBUG][       Thread-606144][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:31:38,049 [DEBUG][       Thread-606144][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:31:38,049 [DEBUG][       Thread-606144][   transport.py][1871] : client lang: <none>
2025-07-01 13:31:38,049 [DEBUG][       Thread-606144][   transport.py][1871] : server lang: <none>
2025-07-01 13:31:38,049 [DEBUG][       Thread-606144][   transport.py][1871] : kex follows: False
2025-07-01 13:31:38,049 [DEBUG][       Thread-606144][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:31:38,049 [DEBUG][       Thread-606144][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:31:38,049 [DEBUG][       Thread-606144][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:31:38,049 [DEBUG][       Thread-606144][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:31:38,049 [DEBUG][       Thread-606144][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:31:38,049 [DEBUG][       Thread-606144][   transport.py][1871] : Compression: none
2025-07-01 13:31:38,049 [DEBUG][       Thread-606144][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:31:38,113 [DEBUG][       Thread-606144][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:31:38,114 [DEBUG][       Thread-606144][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:31:38,114 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:31:38,115 [DEBUG][       Thread-606144][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:31:38,115 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:31:38,174 [DEBUG][       Thread-606144][   transport.py][1871] : userauth is OK
2025-07-01 13:31:38,174 [DEBUG][       Thread-606144][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:31:38,174 [DEBUG][       Thread-606144][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:31:38,174 [DEBUG][       Thread-606144][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:31:38,175 [DEBUG][       Thread-606144][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:31:38,199 [ INFO][       Thread-606144][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:31:38,200 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:31:38,200 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:31:39,197 [DEBUG][       Thread-606144][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:31:39,197 [DEBUG][       Thread-606144][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:31:39,248 [DEBUG][       Thread-606144][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:31:39,248 [DEBUG][       Thread-606144][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:31:39,257 [DEBUG][       Thread-606144][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:31:39,266 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:31:39,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-07-01 13:31:39,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-07-01 13:31:39,286 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:31:39,286 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:31:39,286 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:31:39,295 [DEBUG][       Thread-606144][   transport.py][1871] : EOF in transport thread
2025-07-01 13:31:46,780 [DEBUG][Thread-606146 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:31:49,297 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:31:49,297 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:31:49,297 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:31:49,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-07-01 13:31:49,794 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 31, 25), 11.39, 46.11, 0.0, 44.39, 13.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:31:49,794 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:31:25
2025-07-01 13:31:49,878 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:31:49,882 [DEBUG][       Thread-606147][   transport.py][1871] : starting thread (client mode): 0x81db880
2025-07-01 13:31:49,882 [DEBUG][       Thread-606147][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:31:49,907 [DEBUG][       Thread-606147][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:31:49,907 [ INFO][       Thread-606147][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:31:49,911 [DEBUG][       Thread-606147][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:31:49,911 [DEBUG][       Thread-606147][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:31:49,911 [DEBUG][       Thread-606147][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:31:49,911 [DEBUG][       Thread-606147][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:31:49,911 [DEBUG][       Thread-606147][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:31:49,911 [DEBUG][       Thread-606147][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:31:49,911 [DEBUG][       Thread-606147][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:31:49,911 [DEBUG][       Thread-606147][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:31:49,911 [DEBUG][       Thread-606147][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:31:49,911 [DEBUG][       Thread-606147][   transport.py][1871] : client lang: <none>
2025-07-01 13:31:49,911 [DEBUG][       Thread-606147][   transport.py][1871] : server lang: <none>
2025-07-01 13:31:49,911 [DEBUG][       Thread-606147][   transport.py][1871] : kex follows: False
2025-07-01 13:31:49,911 [DEBUG][       Thread-606147][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:31:49,911 [DEBUG][       Thread-606147][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:31:49,911 [DEBUG][       Thread-606147][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:31:49,911 [DEBUG][       Thread-606147][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:31:49,911 [DEBUG][       Thread-606147][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:31:49,911 [DEBUG][       Thread-606147][   transport.py][1871] : Compression: none
2025-07-01 13:31:49,911 [DEBUG][       Thread-606147][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:31:49,928 [DEBUG][       Thread-606147][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:31:49,929 [DEBUG][       Thread-606147][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:31:49,929 [DEBUG][       Thread-606147][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:31:49,930 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:31:49,930 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:31:49,931 [DEBUG][       Thread-606147][   transport.py][1871] : userauth is OK
2025-07-01 13:31:49,956 [ INFO][       Thread-606147][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:31:49,957 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:31:50,774 [DEBUG][       Thread-606147][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:31:50,774 [DEBUG][       Thread-606147][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:31:50,817 [DEBUG][       Thread-606147][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:31:50,817 [DEBUG][       Thread-606147][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:31:50,820 [DEBUG][       Thread-606147][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:31:50,832 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:31:50,832 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:31:50,834 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:31:50,836 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:31:50,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:31:50,842 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:31:50,842 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:31:50,843 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:31:50,843 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.479803 -999.00  +13.10  29.97     51   +3.30 1 1 1 1 1   888    0 9.34 -14.42 ----- 33.0 30.0 19.3 46.7 16.2 -24.9 15.3 -25.4 15.4 -23.9 16.2 -21.8
2025-07-01 13:31:50,843 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:31:50,843 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:31:50,843 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.479803
2025-07-01 13:31:50,844 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:31:50,844 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:31:50,844 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:31:50,844 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:31:50,845 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:31:50,845 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:31:25', tmtdew=11.39, humidity=46.11, cloud=0.0, wind=44.39, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:30:54.979', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:31:50,845 [DEBUG][       Thread-606147][   transport.py][1871] : EOF in transport thread
2025-07-01 13:31:50,928 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:31:50,940 [DEBUG][       Thread-606150][   transport.py][1871] : starting thread (client mode): 0x81e6ec0
2025-07-01 13:31:50,940 [DEBUG][       Thread-606150][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:31:50,955 [DEBUG][       Thread-606150][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:31:50,955 [ INFO][       Thread-606150][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:31:50,963 [DEBUG][       Thread-606150][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:31:50,963 [DEBUG][       Thread-606150][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:31:50,963 [DEBUG][       Thread-606150][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:31:50,963 [DEBUG][       Thread-606150][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:31:50,963 [DEBUG][       Thread-606150][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:31:50,963 [DEBUG][       Thread-606150][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:31:50,963 [DEBUG][       Thread-606150][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:31:50,963 [DEBUG][       Thread-606150][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:31:50,964 [DEBUG][       Thread-606150][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:31:50,964 [DEBUG][       Thread-606150][   transport.py][1871] : client lang: <none>
2025-07-01 13:31:50,964 [DEBUG][       Thread-606150][   transport.py][1871] : server lang: <none>
2025-07-01 13:31:50,964 [DEBUG][       Thread-606150][   transport.py][1871] : kex follows: False
2025-07-01 13:31:50,964 [DEBUG][       Thread-606150][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:31:50,964 [DEBUG][       Thread-606150][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:31:50,964 [DEBUG][       Thread-606150][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:31:50,964 [DEBUG][       Thread-606150][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:31:50,964 [DEBUG][       Thread-606150][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:31:50,964 [DEBUG][       Thread-606150][   transport.py][1871] : Compression: none
2025-07-01 13:31:50,964 [DEBUG][       Thread-606150][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:31:51,021 [DEBUG][       Thread-606150][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:31:51,022 [DEBUG][       Thread-606150][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:31:51,023 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:31:51,023 [DEBUG][       Thread-606150][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:31:51,024 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:31:51,077 [DEBUG][       Thread-606150][   transport.py][1871] : userauth is OK
2025-07-01 13:31:51,078 [DEBUG][       Thread-606150][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:31:51,078 [DEBUG][       Thread-606150][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:31:51,078 [DEBUG][       Thread-606150][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:31:51,078 [DEBUG][       Thread-606150][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:31:51,097 [ INFO][       Thread-606150][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:31:51,097 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:31:51,098 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:31:52,152 [DEBUG][       Thread-606150][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:31:52,152 [DEBUG][       Thread-606150][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:31:52,200 [DEBUG][       Thread-606150][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:31:52,200 [DEBUG][       Thread-606150][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:31:52,209 [DEBUG][       Thread-606150][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:31:52,218 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:31:52,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-07-01 13:31:52,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-07-01 13:31:52,237 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:31:52,237 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:31:52,237 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:31:52,245 [DEBUG][       Thread-606150][   transport.py][1871] : EOF in transport thread
2025-07-01 13:31:55,809 [DEBUG][Thread-606152 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:32:02,248 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:32:02,248 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:32:02,248 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:32:02,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-07-01 13:32:02,727 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 31, 57), 11.34, 46.24, 0.0, 43.19, 13.41, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:32:02,727 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:31:57
2025-07-01 13:32:02,811 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:32:02,817 [DEBUG][       Thread-606153][   transport.py][1871] : starting thread (client mode): 0x81d95d0
2025-07-01 13:32:02,817 [DEBUG][       Thread-606153][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:32:02,837 [DEBUG][       Thread-606153][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:32:02,837 [ INFO][       Thread-606153][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:32:02,840 [DEBUG][       Thread-606153][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:32:02,840 [DEBUG][       Thread-606153][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:32:02,840 [DEBUG][       Thread-606153][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:32:02,840 [DEBUG][       Thread-606153][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:32:02,840 [DEBUG][       Thread-606153][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:32:02,840 [DEBUG][       Thread-606153][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:32:02,840 [DEBUG][       Thread-606153][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:32:02,840 [DEBUG][       Thread-606153][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:32:02,840 [DEBUG][       Thread-606153][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:32:02,840 [DEBUG][       Thread-606153][   transport.py][1871] : client lang: <none>
2025-07-01 13:32:02,840 [DEBUG][       Thread-606153][   transport.py][1871] : server lang: <none>
2025-07-01 13:32:02,840 [DEBUG][       Thread-606153][   transport.py][1871] : kex follows: False
2025-07-01 13:32:02,840 [DEBUG][       Thread-606153][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:32:02,840 [DEBUG][       Thread-606153][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:32:02,841 [DEBUG][       Thread-606153][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:32:02,841 [DEBUG][       Thread-606153][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:32:02,841 [DEBUG][       Thread-606153][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:32:02,841 [DEBUG][       Thread-606153][   transport.py][1871] : Compression: none
2025-07-01 13:32:02,841 [DEBUG][       Thread-606153][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:32:02,857 [DEBUG][       Thread-606153][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:32:02,857 [DEBUG][       Thread-606153][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:32:02,857 [DEBUG][       Thread-606153][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:32:02,858 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:32:02,858 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:32:02,859 [DEBUG][       Thread-606153][   transport.py][1871] : userauth is OK
2025-07-01 13:32:02,872 [ INFO][       Thread-606153][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:32:02,873 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:32:03,513 [DEBUG][       Thread-606153][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:32:03,513 [DEBUG][       Thread-606153][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:32:03,557 [DEBUG][       Thread-606153][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:32:03,557 [DEBUG][       Thread-606153][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:32:03,560 [DEBUG][       Thread-606153][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:32:03,567 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:32:03,567 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:32:03,569 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:32:03,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:32:03,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:32:03,576 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:32:03,577 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:32:03,577 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:32:03,577 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.480150 -999.00  +13.50  34.65     51   +3.80 1 1 2 1 1   888    0 9.40 -15.50 ----- 39.8 34.6 27.6 42.5 16.4 -23.2 15.4 -24.5 15.5 -23.1 16.4 -21.7
2025-07-01 13:32:03,577 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:32:03,577 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:32:03,578 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.480150
2025-07-01 13:32:03,578 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:32:03,578 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:32:03,579 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:32:03,579 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:32:03,579 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:32:03,579 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:31:57', tmtdew=11.34, humidity=46.24, cloud=0.0, wind=43.19, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:31:24.960', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:32:03,579 [DEBUG][       Thread-606153][   transport.py][1871] : EOF in transport thread
2025-07-01 13:32:03,662 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:32:03,672 [DEBUG][       Thread-606156][   transport.py][1871] : starting thread (client mode): 0x818e890
2025-07-01 13:32:03,672 [DEBUG][       Thread-606156][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:32:03,686 [DEBUG][       Thread-606156][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:32:03,686 [ INFO][       Thread-606156][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:32:03,694 [DEBUG][       Thread-606156][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:32:03,694 [DEBUG][       Thread-606156][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:32:03,694 [DEBUG][       Thread-606156][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:32:03,694 [DEBUG][       Thread-606156][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:32:03,694 [DEBUG][       Thread-606156][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:32:03,694 [DEBUG][       Thread-606156][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:32:03,694 [DEBUG][       Thread-606156][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:32:03,694 [DEBUG][       Thread-606156][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:32:03,694 [DEBUG][       Thread-606156][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:32:03,694 [DEBUG][       Thread-606156][   transport.py][1871] : client lang: <none>
2025-07-01 13:32:03,694 [DEBUG][       Thread-606156][   transport.py][1871] : server lang: <none>
2025-07-01 13:32:03,694 [DEBUG][       Thread-606156][   transport.py][1871] : kex follows: False
2025-07-01 13:32:03,694 [DEBUG][       Thread-606156][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:32:03,694 [DEBUG][       Thread-606156][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:32:03,695 [DEBUG][       Thread-606156][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:32:03,695 [DEBUG][       Thread-606156][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:32:03,695 [DEBUG][       Thread-606156][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:32:03,695 [DEBUG][       Thread-606156][   transport.py][1871] : Compression: none
2025-07-01 13:32:03,695 [DEBUG][       Thread-606156][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:32:03,758 [DEBUG][       Thread-606156][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:32:03,758 [DEBUG][       Thread-606156][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:32:03,759 [DEBUG][       Thread-606156][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:32:03,759 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:32:03,760 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:32:03,821 [DEBUG][       Thread-606156][   transport.py][1871] : userauth is OK
2025-07-01 13:32:03,822 [DEBUG][       Thread-606156][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:32:03,822 [DEBUG][       Thread-606156][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:32:03,822 [DEBUG][       Thread-606156][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:32:03,822 [DEBUG][       Thread-606156][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:32:03,844 [ INFO][       Thread-606156][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:32:03,844 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:32:03,845 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:32:04,828 [DEBUG][Thread-606158 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:32:04,848 [DEBUG][       Thread-606156][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:32:04,848 [DEBUG][       Thread-606156][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:32:04,896 [DEBUG][       Thread-606156][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:32:04,896 [DEBUG][       Thread-606156][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:32:04,906 [DEBUG][       Thread-606156][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:32:04,915 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:32:04,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-07-01 13:32:04,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-07-01 13:32:04,934 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:32:04,934 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:32:04,935 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:32:04,943 [DEBUG][       Thread-606156][   transport.py][1871] : EOF in transport thread
2025-07-01 13:32:13,861 [DEBUG][Thread-606159 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:32:14,945 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:32:14,946 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:32:14,946 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:32:14,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-07-01 13:32:15,427 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 31, 57), 11.34, 46.24, 0.0, 43.19, 13.41, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:32:15,427 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:31:57
2025-07-01 13:32:15,511 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:32:15,515 [DEBUG][       Thread-606160][   transport.py][1871] : starting thread (client mode): 0x81da2f0
2025-07-01 13:32:15,515 [DEBUG][       Thread-606160][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:32:15,535 [DEBUG][       Thread-606160][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:32:15,535 [ INFO][       Thread-606160][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:32:15,538 [DEBUG][       Thread-606160][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:32:15,538 [DEBUG][       Thread-606160][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:32:15,538 [DEBUG][       Thread-606160][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:32:15,539 [DEBUG][       Thread-606160][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:32:15,539 [DEBUG][       Thread-606160][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:32:15,539 [DEBUG][       Thread-606160][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:32:15,539 [DEBUG][       Thread-606160][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:32:15,539 [DEBUG][       Thread-606160][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:32:15,539 [DEBUG][       Thread-606160][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:32:15,539 [DEBUG][       Thread-606160][   transport.py][1871] : client lang: <none>
2025-07-01 13:32:15,539 [DEBUG][       Thread-606160][   transport.py][1871] : server lang: <none>
2025-07-01 13:32:15,539 [DEBUG][       Thread-606160][   transport.py][1871] : kex follows: False
2025-07-01 13:32:15,539 [DEBUG][       Thread-606160][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:32:15,539 [DEBUG][       Thread-606160][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:32:15,539 [DEBUG][       Thread-606160][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:32:15,539 [DEBUG][       Thread-606160][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:32:15,539 [DEBUG][       Thread-606160][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:32:15,539 [DEBUG][       Thread-606160][   transport.py][1871] : Compression: none
2025-07-01 13:32:15,539 [DEBUG][       Thread-606160][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:32:15,555 [DEBUG][       Thread-606160][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:32:15,556 [DEBUG][       Thread-606160][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:32:15,556 [DEBUG][       Thread-606160][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:32:15,556 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:32:15,556 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:32:15,558 [DEBUG][       Thread-606160][   transport.py][1871] : userauth is OK
2025-07-01 13:32:15,571 [ INFO][       Thread-606160][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:32:15,571 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:32:16,416 [DEBUG][       Thread-606160][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:32:16,416 [DEBUG][       Thread-606160][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:32:16,457 [DEBUG][       Thread-606160][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:32:16,457 [DEBUG][       Thread-606160][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:32:16,461 [DEBUG][       Thread-606160][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:32:16,466 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:32:16,466 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:32:16,468 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:32:16,469 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:32:16,474 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:32:16,476 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:32:16,476 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:32:16,477 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:32:16,477 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.480150 -999.00  +13.50  34.65     51   +3.80 1 1 2 1 1   888    0 9.40 -15.50 ----- 39.8 34.6 27.6 42.5 16.4 -23.2 15.4 -24.5 15.5 -23.1 16.4 -21.7
2025-07-01 13:32:16,477 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:32:16,477 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:32:16,477 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.480150
2025-07-01 13:32:16,478 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:32:16,478 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:32:16,478 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:32:16,478 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:32:16,478 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:32:16,479 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:31:57', tmtdew=11.34, humidity=46.24, cloud=0.0, wind=43.19, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:31:24.960', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:32:16,479 [DEBUG][       Thread-606160][   transport.py][1871] : EOF in transport thread
2025-07-01 13:32:16,563 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:32:16,574 [DEBUG][       Thread-606163][   transport.py][1871] : starting thread (client mode): 0x81da380
2025-07-01 13:32:16,574 [DEBUG][       Thread-606163][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:32:16,594 [DEBUG][       Thread-606163][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:32:16,594 [ INFO][       Thread-606163][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:32:16,601 [DEBUG][       Thread-606163][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:32:16,602 [DEBUG][       Thread-606163][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:32:16,602 [DEBUG][       Thread-606163][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:32:16,602 [DEBUG][       Thread-606163][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:32:16,602 [DEBUG][       Thread-606163][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:32:16,602 [DEBUG][       Thread-606163][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:32:16,602 [DEBUG][       Thread-606163][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:32:16,602 [DEBUG][       Thread-606163][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:32:16,602 [DEBUG][       Thread-606163][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:32:16,602 [DEBUG][       Thread-606163][   transport.py][1871] : client lang: <none>
2025-07-01 13:32:16,602 [DEBUG][       Thread-606163][   transport.py][1871] : server lang: <none>
2025-07-01 13:32:16,602 [DEBUG][       Thread-606163][   transport.py][1871] : kex follows: False
2025-07-01 13:32:16,602 [DEBUG][       Thread-606163][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:32:16,602 [DEBUG][       Thread-606163][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:32:16,602 [DEBUG][       Thread-606163][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:32:16,602 [DEBUG][       Thread-606163][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:32:16,602 [DEBUG][       Thread-606163][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:32:16,602 [DEBUG][       Thread-606163][   transport.py][1871] : Compression: none
2025-07-01 13:32:16,603 [DEBUG][       Thread-606163][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:32:16,660 [DEBUG][       Thread-606163][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:32:16,661 [DEBUG][       Thread-606163][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:32:16,661 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:32:16,662 [DEBUG][       Thread-606163][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:32:16,663 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:32:16,720 [DEBUG][       Thread-606163][   transport.py][1871] : userauth is OK
2025-07-01 13:32:16,720 [DEBUG][       Thread-606163][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:32:16,721 [DEBUG][       Thread-606163][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:32:16,721 [DEBUG][       Thread-606163][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:32:16,721 [DEBUG][       Thread-606163][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:32:16,743 [ INFO][       Thread-606163][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:32:16,744 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:32:16,744 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:32:17,771 [DEBUG][       Thread-606163][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:32:17,771 [DEBUG][       Thread-606163][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:32:17,823 [DEBUG][       Thread-606163][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:32:17,823 [DEBUG][       Thread-606163][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:32:17,832 [DEBUG][       Thread-606163][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:32:17,840 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:32:17,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-07-01 13:32:17,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-07-01 13:32:17,856 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:32:17,856 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:32:17,856 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:32:17,864 [DEBUG][       Thread-606163][   transport.py][1871] : EOF in transport thread
2025-07-01 13:32:22,884 [DEBUG][Thread-606165 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:32:25,046 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:32:25,047 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:32:27,866 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:32:27,866 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:32:27,867 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:32:27,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-07-01 13:32:28,345 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 31, 57), 11.34, 46.24, 0.0, 43.19, 13.41, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:32:28,346 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:31:57
2025-07-01 13:32:28,430 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:32:28,436 [DEBUG][       Thread-606166][   transport.py][1871] : starting thread (client mode): 0x81728f0
2025-07-01 13:32:28,436 [DEBUG][       Thread-606166][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:32:28,456 [DEBUG][       Thread-606166][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:32:28,456 [ INFO][       Thread-606166][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:32:28,459 [DEBUG][       Thread-606166][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:32:28,459 [DEBUG][       Thread-606166][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:32:28,459 [DEBUG][       Thread-606166][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:32:28,459 [DEBUG][       Thread-606166][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:32:28,459 [DEBUG][       Thread-606166][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:32:28,459 [DEBUG][       Thread-606166][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:32:28,459 [DEBUG][       Thread-606166][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:32:28,459 [DEBUG][       Thread-606166][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:32:28,459 [DEBUG][       Thread-606166][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:32:28,459 [DEBUG][       Thread-606166][   transport.py][1871] : client lang: <none>
2025-07-01 13:32:28,459 [DEBUG][       Thread-606166][   transport.py][1871] : server lang: <none>
2025-07-01 13:32:28,459 [DEBUG][       Thread-606166][   transport.py][1871] : kex follows: False
2025-07-01 13:32:28,459 [DEBUG][       Thread-606166][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:32:28,459 [DEBUG][       Thread-606166][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:32:28,460 [DEBUG][       Thread-606166][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:32:28,460 [DEBUG][       Thread-606166][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:32:28,460 [DEBUG][       Thread-606166][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:32:28,460 [DEBUG][       Thread-606166][   transport.py][1871] : Compression: none
2025-07-01 13:32:28,460 [DEBUG][       Thread-606166][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:32:28,477 [DEBUG][       Thread-606166][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:32:28,477 [DEBUG][       Thread-606166][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:32:28,478 [DEBUG][       Thread-606166][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:32:28,478 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:32:28,478 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:32:28,479 [DEBUG][       Thread-606166][   transport.py][1871] : userauth is OK
2025-07-01 13:32:28,492 [ INFO][       Thread-606166][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:32:28,492 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:32:29,131 [DEBUG][       Thread-606166][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:32:29,131 [DEBUG][       Thread-606166][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:32:29,173 [DEBUG][       Thread-606166][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:32:29,173 [DEBUG][       Thread-606166][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:32:29,177 [DEBUG][       Thread-606166][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:32:29,189 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:32:29,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:32:29,191 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:32:29,193 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:32:29,199 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:32:29,201 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:32:29,201 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:32:29,202 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:32:29,202 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.480498 -999.00  +13.60  35.92     51   +3.60 1 1 2 1 1   888    0 9.40 -14.88 ----- 44.6 35.9 35.6 51.0 16.4 -23.4 15.4 -25.6 15.5 -23.5 16.4 -23.4
2025-07-01 13:32:29,202 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:32:29,202 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:32:29,202 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.480498
2025-07-01 13:32:29,203 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:32:29,203 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:32:29,203 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:32:29,203 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:32:29,203 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:32:29,204 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:31:57', tmtdew=11.34, humidity=46.24, cloud=0.0, wind=43.19, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:31:55.027', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:32:29,205 [DEBUG][       Thread-606166][   transport.py][1871] : EOF in transport thread
2025-07-01 13:32:29,287 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:32:29,301 [DEBUG][       Thread-606169][   transport.py][1871] : starting thread (client mode): 0x82b1f30
2025-07-01 13:32:29,301 [DEBUG][       Thread-606169][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:32:29,316 [DEBUG][       Thread-606169][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:32:29,316 [ INFO][       Thread-606169][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:32:29,323 [DEBUG][       Thread-606169][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:32:29,323 [DEBUG][       Thread-606169][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:32:29,324 [DEBUG][       Thread-606169][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:32:29,324 [DEBUG][       Thread-606169][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:32:29,324 [DEBUG][       Thread-606169][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:32:29,324 [DEBUG][       Thread-606169][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:32:29,324 [DEBUG][       Thread-606169][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:32:29,324 [DEBUG][       Thread-606169][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:32:29,324 [DEBUG][       Thread-606169][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:32:29,324 [DEBUG][       Thread-606169][   transport.py][1871] : client lang: <none>
2025-07-01 13:32:29,324 [DEBUG][       Thread-606169][   transport.py][1871] : server lang: <none>
2025-07-01 13:32:29,324 [DEBUG][       Thread-606169][   transport.py][1871] : kex follows: False
2025-07-01 13:32:29,324 [DEBUG][       Thread-606169][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:32:29,324 [DEBUG][       Thread-606169][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:32:29,324 [DEBUG][       Thread-606169][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:32:29,324 [DEBUG][       Thread-606169][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:32:29,324 [DEBUG][       Thread-606169][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:32:29,324 [DEBUG][       Thread-606169][   transport.py][1871] : Compression: none
2025-07-01 13:32:29,324 [DEBUG][       Thread-606169][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:32:29,388 [DEBUG][       Thread-606169][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:32:29,388 [DEBUG][       Thread-606169][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:32:29,389 [DEBUG][       Thread-606169][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:32:29,389 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:32:29,390 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:32:29,444 [DEBUG][       Thread-606169][   transport.py][1871] : userauth is OK
2025-07-01 13:32:29,444 [DEBUG][       Thread-606169][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:32:29,445 [DEBUG][       Thread-606169][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:32:29,445 [DEBUG][       Thread-606169][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:32:29,445 [DEBUG][       Thread-606169][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:32:29,464 [ INFO][       Thread-606169][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:32:29,464 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:32:29,465 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:32:30,500 [DEBUG][       Thread-606169][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:32:30,500 [DEBUG][       Thread-606169][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:32:30,547 [DEBUG][       Thread-606169][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:32:30,547 [DEBUG][       Thread-606169][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:32:30,561 [DEBUG][       Thread-606169][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:32:30,569 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:32:30,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-07-01 13:32:30,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-07-01 13:32:30,585 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:32:30,585 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:32:30,585 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:32:30,593 [DEBUG][       Thread-606169][   transport.py][1871] : EOF in transport thread
2025-07-01 13:32:31,905 [DEBUG][Thread-606171 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:32:32,345 [DEBUG][Thread-606172 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:32:40,592 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:32:40,592 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:32:40,592 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:32:40,595 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:32:40,925 [DEBUG][Thread-606173 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:32:41,067 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 32, 28), 11.36, 45.98, 0.0, 34.83, 13.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:32:41,067 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:32:28
2025-07-01 13:32:41,150 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:32:41,154 [DEBUG][       Thread-606174][   transport.py][1871] : starting thread (client mode): 0x81a55a0
2025-07-01 13:32:41,154 [DEBUG][       Thread-606174][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:32:41,172 [DEBUG][       Thread-606174][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:32:41,172 [ INFO][       Thread-606174][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:32:41,175 [DEBUG][       Thread-606174][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:32:41,175 [DEBUG][       Thread-606174][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:32:41,175 [DEBUG][       Thread-606174][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:32:41,175 [DEBUG][       Thread-606174][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:32:41,176 [DEBUG][       Thread-606174][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:32:41,176 [DEBUG][       Thread-606174][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:32:41,176 [DEBUG][       Thread-606174][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:32:41,176 [DEBUG][       Thread-606174][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:32:41,176 [DEBUG][       Thread-606174][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:32:41,176 [DEBUG][       Thread-606174][   transport.py][1871] : client lang: <none>
2025-07-01 13:32:41,176 [DEBUG][       Thread-606174][   transport.py][1871] : server lang: <none>
2025-07-01 13:32:41,176 [DEBUG][       Thread-606174][   transport.py][1871] : kex follows: False
2025-07-01 13:32:41,176 [DEBUG][       Thread-606174][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:32:41,176 [DEBUG][       Thread-606174][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:32:41,176 [DEBUG][       Thread-606174][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:32:41,176 [DEBUG][       Thread-606174][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:32:41,176 [DEBUG][       Thread-606174][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:32:41,176 [DEBUG][       Thread-606174][   transport.py][1871] : Compression: none
2025-07-01 13:32:41,176 [DEBUG][       Thread-606174][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:32:41,191 [DEBUG][       Thread-606174][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:32:41,192 [DEBUG][       Thread-606174][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:32:41,192 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:32:41,192 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:32:41,193 [DEBUG][       Thread-606174][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:32:41,193 [DEBUG][       Thread-606174][   transport.py][1871] : userauth is OK
2025-07-01 13:32:41,218 [ INFO][       Thread-606174][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:32:41,219 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:32:42,039 [DEBUG][       Thread-606174][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:32:42,040 [DEBUG][       Thread-606174][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:32:42,081 [DEBUG][       Thread-606174][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:32:42,081 [DEBUG][       Thread-606174][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:32:42,084 [DEBUG][       Thread-606174][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:32:42,096 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:32:42,096 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:32:42,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:32:42,099 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:32:42,104 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:32:42,106 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:32:42,106 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:32:42,107 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:32:42,107 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.480498 -999.00  +13.60  35.92     51   +3.60 1 1 2 1 1   888    0 9.40 -14.88 ----- 44.6 35.9 35.6 51.0 16.4 -23.4 15.4 -25.6 15.5 -23.5 16.4 -23.4
2025-07-01 13:32:42,107 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:32:42,107 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:32:42,107 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.480498
2025-07-01 13:32:42,108 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:32:42,108 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:32:42,108 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:32:42,108 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:32:42,108 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:32:42,108 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:32:28', tmtdew=11.36, humidity=45.98, cloud=0.0, wind=34.83, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:31:55.027', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:32:42,110 [DEBUG][       Thread-606174][   transport.py][1871] : EOF in transport thread
2025-07-01 13:32:42,192 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:32:42,202 [DEBUG][       Thread-606177][   transport.py][1871] : starting thread (client mode): 0x8393c40
2025-07-01 13:32:42,202 [DEBUG][       Thread-606177][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:32:42,222 [DEBUG][       Thread-606177][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:32:42,222 [ INFO][       Thread-606177][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:32:42,230 [DEBUG][       Thread-606177][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:32:42,230 [DEBUG][       Thread-606177][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:32:42,230 [DEBUG][       Thread-606177][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:32:42,230 [DEBUG][       Thread-606177][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:32:42,230 [DEBUG][       Thread-606177][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:32:42,230 [DEBUG][       Thread-606177][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:32:42,230 [DEBUG][       Thread-606177][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:32:42,230 [DEBUG][       Thread-606177][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:32:42,230 [DEBUG][       Thread-606177][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:32:42,230 [DEBUG][       Thread-606177][   transport.py][1871] : client lang: <none>
2025-07-01 13:32:42,230 [DEBUG][       Thread-606177][   transport.py][1871] : server lang: <none>
2025-07-01 13:32:42,230 [DEBUG][       Thread-606177][   transport.py][1871] : kex follows: False
2025-07-01 13:32:42,230 [DEBUG][       Thread-606177][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:32:42,231 [DEBUG][       Thread-606177][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:32:42,231 [DEBUG][       Thread-606177][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:32:42,231 [DEBUG][       Thread-606177][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:32:42,231 [DEBUG][       Thread-606177][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:32:42,231 [DEBUG][       Thread-606177][   transport.py][1871] : Compression: none
2025-07-01 13:32:42,231 [DEBUG][       Thread-606177][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:32:42,287 [DEBUG][       Thread-606177][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:32:42,288 [DEBUG][       Thread-606177][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:32:42,288 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:32:42,289 [DEBUG][       Thread-606177][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:32:42,290 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:32:42,343 [DEBUG][       Thread-606177][   transport.py][1871] : userauth is OK
2025-07-01 13:32:42,343 [DEBUG][       Thread-606177][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:32:42,344 [DEBUG][       Thread-606177][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:32:42,344 [DEBUG][       Thread-606177][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:32:42,344 [DEBUG][       Thread-606177][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:32:42,363 [ INFO][       Thread-606177][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:32:42,363 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:32:42,364 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:32:43,388 [DEBUG][       Thread-606177][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:32:43,388 [DEBUG][       Thread-606177][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:32:43,439 [DEBUG][       Thread-606177][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:32:43,439 [DEBUG][       Thread-606177][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:32:43,447 [DEBUG][       Thread-606177][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:32:43,455 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:32:43,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-07-01 13:32:43,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-07-01 13:32:43,471 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:32:43,471 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:32:43,471 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:32:43,479 [DEBUG][       Thread-606177][   transport.py][1871] : EOF in transport thread
2025-07-01 13:32:49,944 [DEBUG][Thread-606179 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:32:53,482 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:32:53,482 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:32:53,482 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:32:53,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-07-01 13:32:53,955 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 32, 28), 11.36, 45.98, 0.0, 34.83, 13.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:32:53,955 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:32:28
2025-07-01 13:32:54,041 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:32:54,046 [DEBUG][       Thread-606180][   transport.py][1871] : starting thread (client mode): 0x8171c30
2025-07-01 13:32:54,046 [DEBUG][       Thread-606180][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:32:54,066 [DEBUG][       Thread-606180][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:32:54,066 [ INFO][       Thread-606180][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:32:54,069 [DEBUG][       Thread-606180][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:32:54,069 [DEBUG][       Thread-606180][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:32:54,069 [DEBUG][       Thread-606180][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:32:54,069 [DEBUG][       Thread-606180][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:32:54,069 [DEBUG][       Thread-606180][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:32:54,069 [DEBUG][       Thread-606180][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:32:54,069 [DEBUG][       Thread-606180][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:32:54,069 [DEBUG][       Thread-606180][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:32:54,069 [DEBUG][       Thread-606180][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:32:54,070 [DEBUG][       Thread-606180][   transport.py][1871] : client lang: <none>
2025-07-01 13:32:54,070 [DEBUG][       Thread-606180][   transport.py][1871] : server lang: <none>
2025-07-01 13:32:54,070 [DEBUG][       Thread-606180][   transport.py][1871] : kex follows: False
2025-07-01 13:32:54,070 [DEBUG][       Thread-606180][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:32:54,070 [DEBUG][       Thread-606180][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:32:54,070 [DEBUG][       Thread-606180][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:32:54,070 [DEBUG][       Thread-606180][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:32:54,070 [DEBUG][       Thread-606180][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:32:54,070 [DEBUG][       Thread-606180][   transport.py][1871] : Compression: none
2025-07-01 13:32:54,070 [DEBUG][       Thread-606180][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:32:54,085 [DEBUG][       Thread-606180][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:32:54,086 [DEBUG][       Thread-606180][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:32:54,086 [DEBUG][       Thread-606180][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:32:54,086 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:32:54,087 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:32:54,088 [DEBUG][       Thread-606180][   transport.py][1871] : userauth is OK
2025-07-01 13:32:54,135 [ INFO][       Thread-606180][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:32:54,135 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:32:54,942 [DEBUG][       Thread-606180][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:32:54,942 [DEBUG][       Thread-606180][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:32:54,985 [DEBUG][       Thread-606180][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:32:54,985 [DEBUG][       Thread-606180][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:32:54,988 [DEBUG][       Thread-606180][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:32:54,999 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:32:55,000 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:32:55,002 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:32:55,003 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:32:55,009 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:32:55,010 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:32:55,011 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:32:55,011 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:32:55,011 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.480498 -999.00  +13.60  35.92     51   +3.60 1 1 2 1 1   888    0 9.40 -14.88 ----- 44.6 35.9 35.6 51.0 16.4 -23.4 15.4 -25.6 15.5 -23.5 16.4 -23.4
2025-07-01 13:32:55,012 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:32:55,012 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:32:55,012 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.480498
2025-07-01 13:32:55,012 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:32:55,013 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:32:55,013 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:32:55,013 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:32:55,013 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:32:55,013 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:32:28', tmtdew=11.36, humidity=45.98, cloud=0.0, wind=34.83, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:31:55.027', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:32:55,013 [DEBUG][       Thread-606180][   transport.py][1871] : EOF in transport thread
2025-07-01 13:32:55,096 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:32:55,108 [DEBUG][       Thread-606183][   transport.py][1871] : starting thread (client mode): 0x75a96c0
2025-07-01 13:32:55,108 [DEBUG][       Thread-606183][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:32:55,124 [DEBUG][       Thread-606183][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:32:55,124 [ INFO][       Thread-606183][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:32:55,131 [DEBUG][       Thread-606183][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:32:55,131 [DEBUG][       Thread-606183][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:32:55,131 [DEBUG][       Thread-606183][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:32:55,131 [DEBUG][       Thread-606183][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:32:55,131 [DEBUG][       Thread-606183][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:32:55,131 [DEBUG][       Thread-606183][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:32:55,131 [DEBUG][       Thread-606183][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:32:55,131 [DEBUG][       Thread-606183][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:32:55,131 [DEBUG][       Thread-606183][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:32:55,131 [DEBUG][       Thread-606183][   transport.py][1871] : client lang: <none>
2025-07-01 13:32:55,131 [DEBUG][       Thread-606183][   transport.py][1871] : server lang: <none>
2025-07-01 13:32:55,131 [DEBUG][       Thread-606183][   transport.py][1871] : kex follows: False
2025-07-01 13:32:55,131 [DEBUG][       Thread-606183][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:32:55,131 [DEBUG][       Thread-606183][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:32:55,131 [DEBUG][       Thread-606183][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:32:55,131 [DEBUG][       Thread-606183][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:32:55,131 [DEBUG][       Thread-606183][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:32:55,131 [DEBUG][       Thread-606183][   transport.py][1871] : Compression: none
2025-07-01 13:32:55,131 [DEBUG][       Thread-606183][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:32:55,189 [DEBUG][       Thread-606183][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:32:55,190 [DEBUG][       Thread-606183][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:32:55,190 [DEBUG][       Thread-606183][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:32:55,190 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:32:55,190 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:32:55,247 [DEBUG][       Thread-606183][   transport.py][1871] : userauth is OK
2025-07-01 13:32:55,247 [DEBUG][       Thread-606183][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:32:55,247 [DEBUG][       Thread-606183][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:32:55,247 [DEBUG][       Thread-606183][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:32:55,247 [DEBUG][       Thread-606183][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:32:55,261 [ INFO][       Thread-606183][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:32:55,262 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:32:55,262 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:32:56,290 [DEBUG][       Thread-606183][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:32:56,291 [DEBUG][       Thread-606183][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:32:56,340 [DEBUG][       Thread-606183][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:32:56,340 [DEBUG][       Thread-606183][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:32:56,349 [DEBUG][       Thread-606183][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:32:56,358 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:32:56,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-07-01 13:32:56,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-07-01 13:32:56,376 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:32:56,376 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:32:56,377 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:32:56,386 [DEBUG][       Thread-606183][   transport.py][1871] : EOF in transport thread
2025-07-01 13:32:58,988 [DEBUG][Thread-606185 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:33:06,385 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:33:06,385 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:33:06,385 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:33:06,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-07-01 13:33:06,865 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 33), 11.41, 45.85, 0.0, 33.75, 13.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:33:06,865 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:33:00
2025-07-01 13:33:06,950 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:33:06,954 [DEBUG][       Thread-606186][   transport.py][1871] : starting thread (client mode): 0x75abe80
2025-07-01 13:33:06,954 [DEBUG][       Thread-606186][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:33:06,976 [DEBUG][       Thread-606186][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:33:06,976 [ INFO][       Thread-606186][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:33:06,979 [DEBUG][       Thread-606186][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:33:06,979 [DEBUG][       Thread-606186][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:33:06,979 [DEBUG][       Thread-606186][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:33:06,979 [DEBUG][       Thread-606186][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:33:06,979 [DEBUG][       Thread-606186][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:33:06,979 [DEBUG][       Thread-606186][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:33:06,979 [DEBUG][       Thread-606186][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:33:06,979 [DEBUG][       Thread-606186][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:33:06,979 [DEBUG][       Thread-606186][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:33:06,979 [DEBUG][       Thread-606186][   transport.py][1871] : client lang: <none>
2025-07-01 13:33:06,979 [DEBUG][       Thread-606186][   transport.py][1871] : server lang: <none>
2025-07-01 13:33:06,979 [DEBUG][       Thread-606186][   transport.py][1871] : kex follows: False
2025-07-01 13:33:06,980 [DEBUG][       Thread-606186][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:33:06,980 [DEBUG][       Thread-606186][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:33:06,980 [DEBUG][       Thread-606186][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:33:06,980 [DEBUG][       Thread-606186][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:33:06,980 [DEBUG][       Thread-606186][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:33:06,980 [DEBUG][       Thread-606186][   transport.py][1871] : Compression: none
2025-07-01 13:33:06,980 [DEBUG][       Thread-606186][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:33:06,996 [DEBUG][       Thread-606186][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:33:06,996 [DEBUG][       Thread-606186][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:33:06,997 [DEBUG][       Thread-606186][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:33:06,997 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:33:06,997 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:33:06,999 [DEBUG][       Thread-606186][   transport.py][1871] : userauth is OK
2025-07-01 13:33:07,023 [ INFO][       Thread-606186][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:33:07,024 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:33:07,720 [DEBUG][       Thread-606186][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:33:07,720 [DEBUG][       Thread-606186][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:33:07,761 [DEBUG][       Thread-606186][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:33:07,761 [DEBUG][       Thread-606186][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:33:07,764 [DEBUG][       Thread-606186][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:33:07,776 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:33:07,776 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:33:07,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:33:07,780 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:33:07,785 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:33:07,787 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:33:07,787 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:33:07,788 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:33:07,788 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.481192 -999.00  +13.70  24.38     51   +3.80 1 1 1 1 1   888    0 9.17 -13.27 ----- 36.3 24.4 17.8 49.3 16.6 -23.8 15.6 -24.8 15.7 -22.9 16.6 -21.5
2025-07-01 13:33:07,788 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:33:07,788 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:33:07,788 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.481192
2025-07-01 13:33:07,789 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:33:07,789 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:33:07,789 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:33:07,790 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:33:07,790 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:33:07,790 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:33:00', tmtdew=11.41, humidity=45.85, cloud=0.0, wind=33.75, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:32:54.989', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:33:07,791 [DEBUG][       Thread-606186][   transport.py][1871] : EOF in transport thread
2025-07-01 13:33:07,867 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:33:07,877 [DEBUG][       Thread-606189][   transport.py][1871] : starting thread (client mode): 0x81064d0
2025-07-01 13:33:07,877 [DEBUG][       Thread-606189][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:33:07,892 [DEBUG][       Thread-606189][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:33:07,892 [ INFO][       Thread-606189][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:33:07,899 [DEBUG][       Thread-606189][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:33:07,899 [DEBUG][       Thread-606189][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:33:07,899 [DEBUG][       Thread-606189][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:33:07,900 [DEBUG][       Thread-606189][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:33:07,900 [DEBUG][       Thread-606189][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:33:07,900 [DEBUG][       Thread-606189][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:33:07,900 [DEBUG][       Thread-606189][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:33:07,900 [DEBUG][       Thread-606189][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:33:07,900 [DEBUG][       Thread-606189][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:33:07,900 [DEBUG][       Thread-606189][   transport.py][1871] : client lang: <none>
2025-07-01 13:33:07,900 [DEBUG][       Thread-606189][   transport.py][1871] : server lang: <none>
2025-07-01 13:33:07,900 [DEBUG][       Thread-606189][   transport.py][1871] : kex follows: False
2025-07-01 13:33:07,900 [DEBUG][       Thread-606189][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:33:07,900 [DEBUG][       Thread-606189][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:33:07,900 [DEBUG][       Thread-606189][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:33:07,900 [DEBUG][       Thread-606189][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:33:07,900 [DEBUG][       Thread-606189][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:33:07,900 [DEBUG][       Thread-606189][   transport.py][1871] : Compression: none
2025-07-01 13:33:07,900 [DEBUG][       Thread-606189][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:33:07,961 [DEBUG][       Thread-606189][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:33:07,961 [DEBUG][       Thread-606189][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:33:07,962 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:33:07,962 [DEBUG][       Thread-606189][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:33:07,963 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:33:08,009 [DEBUG][Thread-606191 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:33:08,019 [DEBUG][       Thread-606189][   transport.py][1871] : userauth is OK
2025-07-01 13:33:08,019 [DEBUG][       Thread-606189][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:33:08,019 [DEBUG][       Thread-606189][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:33:08,019 [DEBUG][       Thread-606189][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:33:08,019 [DEBUG][       Thread-606189][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:33:08,047 [ INFO][       Thread-606189][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:33:08,048 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:33:08,048 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:33:09,054 [DEBUG][       Thread-606189][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:33:09,054 [DEBUG][       Thread-606189][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:33:09,104 [DEBUG][       Thread-606189][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:33:09,104 [DEBUG][       Thread-606189][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:33:09,116 [DEBUG][       Thread-606189][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:33:09,127 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:33:09,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-07-01 13:33:09,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-07-01 13:33:09,146 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:33:09,146 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:33:09,147 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:33:09,155 [DEBUG][       Thread-606189][   transport.py][1871] : EOF in transport thread
2025-07-01 13:33:17,040 [DEBUG][Thread-606192 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:33:19,157 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:33:19,157 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:33:19,158 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:33:19,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-07-01 13:33:19,636 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 33), 11.41, 45.85, 0.0, 33.75, 13.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:33:19,636 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:33:00
2025-07-01 13:33:19,721 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:33:19,727 [DEBUG][       Thread-606193][   transport.py][1871] : starting thread (client mode): 0x75a93c0
2025-07-01 13:33:19,727 [DEBUG][       Thread-606193][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:33:19,747 [DEBUG][       Thread-606193][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:33:19,747 [ INFO][       Thread-606193][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:33:19,750 [DEBUG][       Thread-606193][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:33:19,751 [DEBUG][       Thread-606193][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:33:19,751 [DEBUG][       Thread-606193][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:33:19,751 [DEBUG][       Thread-606193][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:33:19,751 [DEBUG][       Thread-606193][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:33:19,751 [DEBUG][       Thread-606193][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:33:19,751 [DEBUG][       Thread-606193][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:33:19,751 [DEBUG][       Thread-606193][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:33:19,751 [DEBUG][       Thread-606193][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:33:19,751 [DEBUG][       Thread-606193][   transport.py][1871] : client lang: <none>
2025-07-01 13:33:19,751 [DEBUG][       Thread-606193][   transport.py][1871] : server lang: <none>
2025-07-01 13:33:19,751 [DEBUG][       Thread-606193][   transport.py][1871] : kex follows: False
2025-07-01 13:33:19,751 [DEBUG][       Thread-606193][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:33:19,751 [DEBUG][       Thread-606193][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:33:19,751 [DEBUG][       Thread-606193][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:33:19,751 [DEBUG][       Thread-606193][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:33:19,751 [DEBUG][       Thread-606193][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:33:19,751 [DEBUG][       Thread-606193][   transport.py][1871] : Compression: none
2025-07-01 13:33:19,751 [DEBUG][       Thread-606193][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:33:19,773 [DEBUG][       Thread-606193][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:33:19,774 [DEBUG][       Thread-606193][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:33:19,774 [DEBUG][       Thread-606193][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:33:19,774 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:33:19,775 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:33:19,776 [DEBUG][       Thread-606193][   transport.py][1871] : userauth is OK
2025-07-01 13:33:19,800 [ INFO][       Thread-606193][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:33:19,801 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:33:20,632 [DEBUG][       Thread-606193][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:33:20,633 [DEBUG][       Thread-606193][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:33:20,677 [DEBUG][       Thread-606193][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:33:20,677 [DEBUG][       Thread-606193][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:33:20,680 [DEBUG][       Thread-606193][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:33:20,693 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:33:20,693 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:33:20,695 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:33:20,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:33:20,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:33:20,703 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:33:20,704 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:33:20,704 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:33:20,704 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.481192 -999.00  +13.70  24.38     51   +3.80 1 1 1 1 1   888    0 9.17 -13.27 ----- 36.3 24.4 17.8 49.3 16.6 -23.8 15.6 -24.8 15.7 -22.9 16.6 -21.5
2025-07-01 13:33:20,704 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:33:20,705 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:33:20,705 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.481192
2025-07-01 13:33:20,705 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:33:20,706 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:33:20,706 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:33:20,706 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:33:20,706 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:33:20,706 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:33:00', tmtdew=11.41, humidity=45.85, cloud=0.0, wind=33.75, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:32:54.989', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:33:20,707 [DEBUG][       Thread-606193][   transport.py][1871] : EOF in transport thread
2025-07-01 13:33:20,790 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:33:20,801 [DEBUG][       Thread-606196][   transport.py][1871] : starting thread (client mode): 0x818f5e0
2025-07-01 13:33:20,801 [DEBUG][       Thread-606196][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:33:20,817 [DEBUG][       Thread-606196][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:33:20,817 [ INFO][       Thread-606196][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:33:20,825 [DEBUG][       Thread-606196][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:33:20,825 [DEBUG][       Thread-606196][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:33:20,825 [DEBUG][       Thread-606196][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:33:20,825 [DEBUG][       Thread-606196][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:33:20,825 [DEBUG][       Thread-606196][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:33:20,825 [DEBUG][       Thread-606196][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:33:20,825 [DEBUG][       Thread-606196][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:33:20,825 [DEBUG][       Thread-606196][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:33:20,825 [DEBUG][       Thread-606196][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:33:20,825 [DEBUG][       Thread-606196][   transport.py][1871] : client lang: <none>
2025-07-01 13:33:20,825 [DEBUG][       Thread-606196][   transport.py][1871] : server lang: <none>
2025-07-01 13:33:20,825 [DEBUG][       Thread-606196][   transport.py][1871] : kex follows: False
2025-07-01 13:33:20,825 [DEBUG][       Thread-606196][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:33:20,825 [DEBUG][       Thread-606196][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:33:20,825 [DEBUG][       Thread-606196][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:33:20,825 [DEBUG][       Thread-606196][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:33:20,825 [DEBUG][       Thread-606196][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:33:20,825 [DEBUG][       Thread-606196][   transport.py][1871] : Compression: none
2025-07-01 13:33:20,826 [DEBUG][       Thread-606196][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:33:20,881 [DEBUG][       Thread-606196][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:33:20,882 [DEBUG][       Thread-606196][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:33:20,882 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:33:20,883 [DEBUG][       Thread-606196][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:33:20,884 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:33:20,938 [DEBUG][       Thread-606196][   transport.py][1871] : userauth is OK
2025-07-01 13:33:20,938 [DEBUG][       Thread-606196][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:33:20,938 [DEBUG][       Thread-606196][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:33:20,938 [DEBUG][       Thread-606196][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:33:20,938 [DEBUG][       Thread-606196][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:33:20,957 [ INFO][       Thread-606196][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:33:20,958 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:33:20,958 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:33:21,980 [DEBUG][       Thread-606196][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:33:21,980 [DEBUG][       Thread-606196][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:33:22,031 [DEBUG][       Thread-606196][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:33:22,031 [DEBUG][       Thread-606196][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:33:22,040 [DEBUG][       Thread-606196][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:33:22,048 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:33: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')
2025-07-01 13:33:22,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-07-01 13:33:22,064 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:33:22,064 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:33:22,064 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:33:22,071 [DEBUG][       Thread-606196][   transport.py][1871] : EOF in transport thread
2025-07-01 13:33:25,185 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:33:25,185 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:33:26,060 [DEBUG][Thread-606198 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:33:32,073 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:33:32,073 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:33:32,073 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:33:32,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-07-01 13:33:32,393 [DEBUG][Thread-606199 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:33:32,525 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 33), 11.41, 45.85, 0.0, 33.75, 13.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:33:32,525 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:33:00
2025-07-01 13:33:32,611 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:33:32,617 [DEBUG][       Thread-606200][   transport.py][1871] : starting thread (client mode): 0x81c92d0
2025-07-01 13:33:32,617 [DEBUG][       Thread-606200][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:33:32,632 [DEBUG][       Thread-606200][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:33:32,632 [ INFO][       Thread-606200][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:33:32,633 [DEBUG][       Thread-606200][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:33:32,633 [DEBUG][       Thread-606200][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:33:32,633 [DEBUG][       Thread-606200][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:33:32,633 [DEBUG][       Thread-606200][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:33:32,633 [DEBUG][       Thread-606200][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:33:32,633 [DEBUG][       Thread-606200][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:33:32,633 [DEBUG][       Thread-606200][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:33:32,633 [DEBUG][       Thread-606200][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:33:32,633 [DEBUG][       Thread-606200][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:33:32,633 [DEBUG][       Thread-606200][   transport.py][1871] : client lang: <none>
2025-07-01 13:33:32,633 [DEBUG][       Thread-606200][   transport.py][1871] : server lang: <none>
2025-07-01 13:33:32,633 [DEBUG][       Thread-606200][   transport.py][1871] : kex follows: False
2025-07-01 13:33:32,633 [DEBUG][       Thread-606200][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:33:32,633 [DEBUG][       Thread-606200][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:33:32,633 [DEBUG][       Thread-606200][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:33:32,633 [DEBUG][       Thread-606200][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:33:32,633 [DEBUG][       Thread-606200][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:33:32,633 [DEBUG][       Thread-606200][   transport.py][1871] : Compression: none
2025-07-01 13:33:32,633 [DEBUG][       Thread-606200][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:33:32,641 [DEBUG][       Thread-606200][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:33:32,642 [DEBUG][       Thread-606200][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:33:32,642 [DEBUG][       Thread-606200][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:33:32,642 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:33:32,642 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:33:32,643 [DEBUG][       Thread-606200][   transport.py][1871] : userauth is OK
2025-07-01 13:33:32,667 [ INFO][       Thread-606200][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:33:32,668 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:33:33,309 [DEBUG][       Thread-606200][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:33:33,309 [DEBUG][       Thread-606200][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:33:33,352 [DEBUG][       Thread-606200][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:33:33,353 [DEBUG][       Thread-606200][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:33:33,355 [DEBUG][       Thread-606200][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:33:33,360 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:33:33,361 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:33:33,362 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:33:33,363 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:33:33,368 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:33:33,370 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:33:33,370 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:33:33,370 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:33:33,371 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.481539 -999.00  +13.90  29.97     50   +3.80 1 1 1 1 1   888    0 9.50 -12.31 ----- 34.8 30.0 37.8 48.0 16.7 -23.6 15.7 -25.3 15.8 -22.7 16.7 -22.1
2025-07-01 13:33:33,371 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:33:33,371 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:33:33,371 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.481539
2025-07-01 13:33:33,371 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:33:33,372 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:33:33,372 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:33:33,372 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:33:33,372 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:33:33,372 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:33:00', tmtdew=11.41, humidity=45.85, cloud=0.0, wind=33.75, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:33:24.970', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:33:33,372 [DEBUG][       Thread-606200][   transport.py][1871] : EOF in transport thread
2025-07-01 13:33:33,458 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:33:33,470 [DEBUG][       Thread-606203][   transport.py][1871] : starting thread (client mode): 0x8a65e70
2025-07-01 13:33:33,470 [DEBUG][       Thread-606203][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:33:33,486 [DEBUG][       Thread-606203][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:33:33,486 [ INFO][       Thread-606203][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:33:33,493 [DEBUG][       Thread-606203][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:33:33,493 [DEBUG][       Thread-606203][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:33:33,493 [DEBUG][       Thread-606203][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:33:33,493 [DEBUG][       Thread-606203][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:33:33,493 [DEBUG][       Thread-606203][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:33:33,493 [DEBUG][       Thread-606203][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:33:33,493 [DEBUG][       Thread-606203][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:33:33,493 [DEBUG][       Thread-606203][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:33:33,493 [DEBUG][       Thread-606203][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:33:33,493 [DEBUG][       Thread-606203][   transport.py][1871] : client lang: <none>
2025-07-01 13:33:33,493 [DEBUG][       Thread-606203][   transport.py][1871] : server lang: <none>
2025-07-01 13:33:33,493 [DEBUG][       Thread-606203][   transport.py][1871] : kex follows: False
2025-07-01 13:33:33,494 [DEBUG][       Thread-606203][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:33:33,494 [DEBUG][       Thread-606203][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:33:33,494 [DEBUG][       Thread-606203][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:33:33,494 [DEBUG][       Thread-606203][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:33:33,494 [DEBUG][       Thread-606203][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:33:33,494 [DEBUG][       Thread-606203][   transport.py][1871] : Compression: none
2025-07-01 13:33:33,494 [DEBUG][       Thread-606203][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:33:33,557 [DEBUG][       Thread-606203][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:33:33,557 [DEBUG][       Thread-606203][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:33:33,557 [DEBUG][       Thread-606203][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:33:33,557 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:33:33,557 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:33:33,613 [DEBUG][       Thread-606203][   transport.py][1871] : userauth is OK
2025-07-01 13:33:33,613 [DEBUG][       Thread-606203][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:33:33,613 [DEBUG][       Thread-606203][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:33:33,613 [DEBUG][       Thread-606203][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:33:33,613 [DEBUG][       Thread-606203][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:33:33,628 [ INFO][       Thread-606203][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:33:33,628 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:33:33,628 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:33:34,643 [DEBUG][       Thread-606203][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:33:34,643 [DEBUG][       Thread-606203][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:33:34,691 [DEBUG][       Thread-606203][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:33:34,691 [DEBUG][       Thread-606203][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:33:34,700 [DEBUG][       Thread-606203][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:33:34,708 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:33:34,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-07-01 13:33:34,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-07-01 13:33:34,723 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:33:34,723 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:33:34,723 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:33:34,731 [DEBUG][       Thread-606203][   transport.py][1871] : EOF in transport thread
2025-07-01 13:33:35,081 [DEBUG][Thread-606205 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:33:44,103 [DEBUG][Thread-606206 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:33:44,734 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:33:44,734 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:33:44,734 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:33:44,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-07-01 13:33:45,211 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 33, 32), 11.5, 45.78, 0.0, 35.76, 13.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:33:45,211 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:33:32
2025-07-01 13:33:45,296 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:33:45,300 [DEBUG][       Thread-606207][   transport.py][1871] : starting thread (client mode): 0x8107ac0
2025-07-01 13:33:45,300 [DEBUG][       Thread-606207][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:33:45,321 [DEBUG][       Thread-606207][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:33:45,321 [ INFO][       Thread-606207][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:33:45,325 [DEBUG][       Thread-606207][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:33:45,325 [DEBUG][       Thread-606207][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:33:45,325 [DEBUG][       Thread-606207][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:33:45,325 [DEBUG][       Thread-606207][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:33:45,325 [DEBUG][       Thread-606207][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:33:45,325 [DEBUG][       Thread-606207][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:33:45,325 [DEBUG][       Thread-606207][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:33:45,325 [DEBUG][       Thread-606207][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:33:45,325 [DEBUG][       Thread-606207][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:33:45,325 [DEBUG][       Thread-606207][   transport.py][1871] : client lang: <none>
2025-07-01 13:33:45,325 [DEBUG][       Thread-606207][   transport.py][1871] : server lang: <none>
2025-07-01 13:33:45,325 [DEBUG][       Thread-606207][   transport.py][1871] : kex follows: False
2025-07-01 13:33:45,325 [DEBUG][       Thread-606207][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:33:45,325 [DEBUG][       Thread-606207][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:33:45,325 [DEBUG][       Thread-606207][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:33:45,325 [DEBUG][       Thread-606207][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:33:45,325 [DEBUG][       Thread-606207][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:33:45,325 [DEBUG][       Thread-606207][   transport.py][1871] : Compression: none
2025-07-01 13:33:45,325 [DEBUG][       Thread-606207][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:33:45,343 [DEBUG][       Thread-606207][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:33:45,344 [DEBUG][       Thread-606207][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:33:45,344 [DEBUG][       Thread-606207][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:33:45,345 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:33:45,345 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:33:45,346 [DEBUG][       Thread-606207][   transport.py][1871] : userauth is OK
2025-07-01 13:33:45,359 [ INFO][       Thread-606207][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:33:45,360 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:33:46,183 [DEBUG][       Thread-606207][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:33:46,184 [DEBUG][       Thread-606207][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:33:46,225 [DEBUG][       Thread-606207][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:33:46,225 [DEBUG][       Thread-606207][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:33:46,228 [DEBUG][       Thread-606207][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:33:46,241 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:33:46,241 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:33:46,243 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:33:46,245 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:33:46,249 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:33:46,251 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:33:46,251 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:33:46,252 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:33:46,252 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.481539 -999.00  +13.90  29.97     50   +3.80 1 1 1 1 1   888    0 9.50 -12.31 ----- 34.8 30.0 37.8 48.0 16.7 -23.6 15.7 -25.3 15.8 -22.7 16.7 -22.1
2025-07-01 13:33:46,252 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:33:46,252 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:33:46,252 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.481539
2025-07-01 13:33:46,253 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:33:46,253 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:33:46,253 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:33:46,253 [DEBUG][       Thread-606207][   transport.py][1871] : EOF in transport thread
2025-07-01 13:33:46,254 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:33:46,254 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:33:46,254 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:33:32', tmtdew=11.5, humidity=45.78, cloud=0.0, wind=35.76, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:33:24.970', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:33:46,337 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:33:46,347 [DEBUG][       Thread-606210][   transport.py][1871] : starting thread (client mode): 0x81a5f00
2025-07-01 13:33:46,347 [DEBUG][       Thread-606210][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:33:46,362 [DEBUG][       Thread-606210][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:33:46,362 [ INFO][       Thread-606210][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:33:46,369 [DEBUG][       Thread-606210][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:33:46,370 [DEBUG][       Thread-606210][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:33:46,370 [DEBUG][       Thread-606210][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:33:46,370 [DEBUG][       Thread-606210][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:33:46,370 [DEBUG][       Thread-606210][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:33:46,370 [DEBUG][       Thread-606210][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:33:46,370 [DEBUG][       Thread-606210][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:33:46,370 [DEBUG][       Thread-606210][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:33:46,370 [DEBUG][       Thread-606210][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:33:46,370 [DEBUG][       Thread-606210][   transport.py][1871] : client lang: <none>
2025-07-01 13:33:46,370 [DEBUG][       Thread-606210][   transport.py][1871] : server lang: <none>
2025-07-01 13:33:46,370 [DEBUG][       Thread-606210][   transport.py][1871] : kex follows: False
2025-07-01 13:33:46,370 [DEBUG][       Thread-606210][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:33:46,370 [DEBUG][       Thread-606210][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:33:46,370 [DEBUG][       Thread-606210][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:33:46,370 [DEBUG][       Thread-606210][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:33:46,370 [DEBUG][       Thread-606210][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:33:46,370 [DEBUG][       Thread-606210][   transport.py][1871] : Compression: none
2025-07-01 13:33:46,370 [DEBUG][       Thread-606210][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:33:46,430 [DEBUG][       Thread-606210][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:33:46,431 [DEBUG][       Thread-606210][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:33:46,431 [DEBUG][       Thread-606210][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:33:46,432 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:33:46,433 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:33:46,489 [DEBUG][       Thread-606210][   transport.py][1871] : userauth is OK
2025-07-01 13:33:46,489 [DEBUG][       Thread-606210][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:33:46,489 [DEBUG][       Thread-606210][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:33:46,490 [DEBUG][       Thread-606210][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:33:46,490 [DEBUG][       Thread-606210][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:33:46,509 [ INFO][       Thread-606210][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:33:46,509 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:33:46,510 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:33:47,564 [DEBUG][       Thread-606210][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:33:47,564 [DEBUG][       Thread-606210][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:33:47,612 [DEBUG][       Thread-606210][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:33:47,612 [DEBUG][       Thread-606210][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:33:47,621 [DEBUG][       Thread-606210][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:33:47,630 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:33:47,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-07-01 13:33:47,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-07-01 13:33:47,648 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:33:47,649 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:33:47,649 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:33:47,657 [DEBUG][       Thread-606210][   transport.py][1871] : EOF in transport thread
2025-07-01 13:33:53,124 [DEBUG][Thread-606212 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:33:57,660 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:33:57,660 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:33:57,660 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:33:57,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-07-01 13:33:58,139 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 33, 32), 11.5, 45.78, 0.0, 35.76, 13.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:33:58,139 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:33:32
2025-07-01 13:33:58,224 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:33:58,229 [DEBUG][       Thread-606213][   transport.py][1871] : starting thread (client mode): 0x81a6650
2025-07-01 13:33:58,229 [DEBUG][       Thread-606213][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:33:58,249 [DEBUG][       Thread-606213][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:33:58,249 [ INFO][       Thread-606213][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:33:58,252 [DEBUG][       Thread-606213][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:33:58,252 [DEBUG][       Thread-606213][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:33:58,252 [DEBUG][       Thread-606213][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:33:58,252 [DEBUG][       Thread-606213][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:33:58,252 [DEBUG][       Thread-606213][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:33:58,252 [DEBUG][       Thread-606213][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:33:58,253 [DEBUG][       Thread-606213][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:33:58,253 [DEBUG][       Thread-606213][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:33:58,253 [DEBUG][       Thread-606213][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:33:58,253 [DEBUG][       Thread-606213][   transport.py][1871] : client lang: <none>
2025-07-01 13:33:58,253 [DEBUG][       Thread-606213][   transport.py][1871] : server lang: <none>
2025-07-01 13:33:58,253 [DEBUG][       Thread-606213][   transport.py][1871] : kex follows: False
2025-07-01 13:33:58,253 [DEBUG][       Thread-606213][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:33:58,253 [DEBUG][       Thread-606213][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:33:58,253 [DEBUG][       Thread-606213][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:33:58,253 [DEBUG][       Thread-606213][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:33:58,253 [DEBUG][       Thread-606213][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:33:58,253 [DEBUG][       Thread-606213][   transport.py][1871] : Compression: none
2025-07-01 13:33:58,253 [DEBUG][       Thread-606213][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:33:58,269 [DEBUG][       Thread-606213][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:33:58,270 [DEBUG][       Thread-606213][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:33:58,270 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:33:58,271 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:33:58,271 [DEBUG][       Thread-606213][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:33:58,272 [DEBUG][       Thread-606213][   transport.py][1871] : userauth is OK
2025-07-01 13:33:58,286 [ INFO][       Thread-606213][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:33:58,286 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:33:58,946 [DEBUG][       Thread-606213][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:33:58,946 [DEBUG][       Thread-606213][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:33:58,989 [DEBUG][       Thread-606213][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:33:58,989 [DEBUG][       Thread-606213][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:33:58,992 [DEBUG][       Thread-606213][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:33:59,005 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:33:59,005 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:33:59,007 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:33:59,008 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:33:59,013 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:33:59,015 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:33:59,015 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:33:59,016 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:33:59,016 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.481539 -999.00  +13.90  29.97     50   +3.80 1 1 1 1 1   888    0 9.50 -12.31 ----- 34.8 30.0 37.8 48.0 16.7 -23.6 15.7 -25.3 15.8 -22.7 16.7 -22.1
2025-07-01 13:33:59,016 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:33:59,016 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:33:59,016 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.481539
2025-07-01 13:33:59,016 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:33:59,017 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:33:59,017 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:33:59,017 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:33:59,017 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:33:59,017 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:33:32', tmtdew=11.5, humidity=45.78, cloud=0.0, wind=35.76, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:33:24.970', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:33:59,018 [DEBUG][       Thread-606213][   transport.py][1871] : EOF in transport thread
2025-07-01 13:33:59,100 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:33:59,113 [DEBUG][       Thread-606216][   transport.py][1871] : starting thread (client mode): 0x83c8730
2025-07-01 13:33:59,113 [DEBUG][       Thread-606216][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:33:59,130 [DEBUG][       Thread-606216][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:33:59,130 [ INFO][       Thread-606216][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:33:59,141 [DEBUG][       Thread-606216][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:33:59,142 [DEBUG][       Thread-606216][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:33:59,142 [DEBUG][       Thread-606216][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:33:59,142 [DEBUG][       Thread-606216][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:33:59,142 [DEBUG][       Thread-606216][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:33:59,142 [DEBUG][       Thread-606216][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:33:59,142 [DEBUG][       Thread-606216][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:33:59,142 [DEBUG][       Thread-606216][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:33:59,142 [DEBUG][       Thread-606216][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:33:59,142 [DEBUG][       Thread-606216][   transport.py][1871] : client lang: <none>
2025-07-01 13:33:59,142 [DEBUG][       Thread-606216][   transport.py][1871] : server lang: <none>
2025-07-01 13:33:59,142 [DEBUG][       Thread-606216][   transport.py][1871] : kex follows: False
2025-07-01 13:33:59,142 [DEBUG][       Thread-606216][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:33:59,142 [DEBUG][       Thread-606216][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:33:59,142 [DEBUG][       Thread-606216][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:33:59,142 [DEBUG][       Thread-606216][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:33:59,143 [DEBUG][       Thread-606216][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:33:59,143 [DEBUG][       Thread-606216][   transport.py][1871] : Compression: none
2025-07-01 13:33:59,143 [DEBUG][       Thread-606216][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:33:59,197 [DEBUG][       Thread-606216][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:33:59,197 [DEBUG][       Thread-606216][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:33:59,198 [DEBUG][       Thread-606216][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:33:59,198 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:33:59,198 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:33:59,253 [DEBUG][       Thread-606216][   transport.py][1871] : userauth is OK
2025-07-01 13:33:59,253 [DEBUG][       Thread-606216][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:33:59,253 [DEBUG][       Thread-606216][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:33:59,253 [DEBUG][       Thread-606216][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:33:59,253 [DEBUG][       Thread-606216][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:33:59,273 [ INFO][       Thread-606216][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:33:59,273 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:33:59,273 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:34:00,309 [DEBUG][       Thread-606216][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:34:00,309 [DEBUG][       Thread-606216][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:34:00,368 [DEBUG][       Thread-606216][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:34:00,368 [DEBUG][       Thread-606216][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:34:00,377 [DEBUG][       Thread-606216][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:34:00,385 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:34:00,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-07-01 13:34:00,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-07-01 13:34:00,400 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:34:00,400 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:34:00,400 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:34:00,408 [DEBUG][       Thread-606216][   transport.py][1871] : EOF in transport thread
2025-07-01 13:34:02,155 [DEBUG][Thread-606218 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:34:10,411 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:34:10,411 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:34:10,411 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:34:10,414 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:34:10,905 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 34, 4), 11.54, 45.68, 0.0, 32.57, 13.79, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:34:10,905 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:34:04
2025-07-01 13:34:10,989 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:34:10,993 [DEBUG][       Thread-606219][   transport.py][1871] : starting thread (client mode): 0x8170c70
2025-07-01 13:34:10,993 [DEBUG][       Thread-606219][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:34:11,013 [DEBUG][       Thread-606219][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:34:11,013 [ INFO][       Thread-606219][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:34:11,016 [DEBUG][       Thread-606219][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:34:11,016 [DEBUG][       Thread-606219][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:34:11,016 [DEBUG][       Thread-606219][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:34:11,016 [DEBUG][       Thread-606219][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:34:11,016 [DEBUG][       Thread-606219][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:34:11,016 [DEBUG][       Thread-606219][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:34:11,016 [DEBUG][       Thread-606219][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:34:11,016 [DEBUG][       Thread-606219][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:34:11,016 [DEBUG][       Thread-606219][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:34:11,016 [DEBUG][       Thread-606219][   transport.py][1871] : client lang: <none>
2025-07-01 13:34:11,016 [DEBUG][       Thread-606219][   transport.py][1871] : server lang: <none>
2025-07-01 13:34:11,016 [DEBUG][       Thread-606219][   transport.py][1871] : kex follows: False
2025-07-01 13:34:11,016 [DEBUG][       Thread-606219][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:34:11,016 [DEBUG][       Thread-606219][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:34:11,016 [DEBUG][       Thread-606219][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:34:11,016 [DEBUG][       Thread-606219][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:34:11,017 [DEBUG][       Thread-606219][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:34:11,017 [DEBUG][       Thread-606219][   transport.py][1871] : Compression: none
2025-07-01 13:34:11,017 [DEBUG][       Thread-606219][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:34:11,032 [DEBUG][       Thread-606219][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:34:11,032 [DEBUG][       Thread-606219][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:34:11,033 [DEBUG][       Thread-606219][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:34:11,033 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:34:11,033 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:34:11,034 [DEBUG][       Thread-606219][   transport.py][1871] : userauth is OK
2025-07-01 13:34:11,059 [ INFO][       Thread-606219][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:34:11,060 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:34:11,176 [DEBUG][Thread-606221 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:34:11,716 [DEBUG][       Thread-606219][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:34:11,716 [DEBUG][       Thread-606219][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:34:11,757 [DEBUG][       Thread-606219][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:34:11,757 [DEBUG][       Thread-606219][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:34:11,761 [DEBUG][       Thread-606219][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:34:11,770 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:34:11,771 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:34:11,773 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:34:11,774 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:34:11,780 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:34:11,782 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:34:11,782 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:34:11,783 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:34:11,783 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.481886 -999.00  +13.70  43.19     49   +3.40 1 1 2 1 1   888    0 9.57 -11.05 ----- 39.1 43.2 23.8 54.3 16.8 -24.2 15.8 -24.9 15.9 -23.3 16.9 -22.4
2025-07-01 13:34:11,783 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:34:11,783 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:34:11,783 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.481886
2025-07-01 13:34:11,783 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:34:11,784 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:34:11,784 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:34:11,784 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:34:11,784 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:34:11,784 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:34:04', tmtdew=11.54, humidity=45.68, cloud=0.0, wind=32.57, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:33:54.950', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:34:11,785 [DEBUG][       Thread-606219][   transport.py][1871] : EOF in transport thread
2025-07-01 13:34:11,868 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:34:11,877 [DEBUG][       Thread-606223][   transport.py][1871] : starting thread (client mode): 0x81a6590
2025-07-01 13:34:11,877 [DEBUG][       Thread-606223][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:34:11,896 [DEBUG][       Thread-606223][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:34:11,896 [ INFO][       Thread-606223][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:34:11,904 [DEBUG][       Thread-606223][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:34:11,904 [DEBUG][       Thread-606223][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:34:11,905 [DEBUG][       Thread-606223][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:34:11,905 [DEBUG][       Thread-606223][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:34:11,905 [DEBUG][       Thread-606223][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:34:11,905 [DEBUG][       Thread-606223][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:34:11,905 [DEBUG][       Thread-606223][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:34:11,905 [DEBUG][       Thread-606223][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:34:11,905 [DEBUG][       Thread-606223][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:34:11,905 [DEBUG][       Thread-606223][   transport.py][1871] : client lang: <none>
2025-07-01 13:34:11,905 [DEBUG][       Thread-606223][   transport.py][1871] : server lang: <none>
2025-07-01 13:34:11,905 [DEBUG][       Thread-606223][   transport.py][1871] : kex follows: False
2025-07-01 13:34:11,905 [DEBUG][       Thread-606223][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:34:11,905 [DEBUG][       Thread-606223][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:34:11,905 [DEBUG][       Thread-606223][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:34:11,905 [DEBUG][       Thread-606223][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:34:11,905 [DEBUG][       Thread-606223][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:34:11,905 [DEBUG][       Thread-606223][   transport.py][1871] : Compression: none
2025-07-01 13:34:11,905 [DEBUG][       Thread-606223][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:34:11,961 [DEBUG][       Thread-606223][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:34:11,961 [DEBUG][       Thread-606223][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:34:11,962 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:34:11,963 [DEBUG][       Thread-606223][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:34:11,963 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:34:12,016 [DEBUG][       Thread-606223][   transport.py][1871] : userauth is OK
2025-07-01 13:34:12,016 [DEBUG][       Thread-606223][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:34:12,017 [DEBUG][       Thread-606223][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:34:12,017 [DEBUG][       Thread-606223][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:34:12,017 [DEBUG][       Thread-606223][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:34:12,035 [ INFO][       Thread-606223][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:34:12,036 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:34:12,036 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:34:13,039 [DEBUG][       Thread-606223][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:34:13,039 [DEBUG][       Thread-606223][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:34:13,088 [DEBUG][       Thread-606223][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:34:13,088 [DEBUG][       Thread-606223][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:34:13,097 [DEBUG][       Thread-606223][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:34:13,108 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:34:13,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-07-01 13:34:13,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-07-01 13:34:13,131 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:34:13,132 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:34:13,132 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:34:13,140 [DEBUG][       Thread-606223][   transport.py][1871] : EOF in transport thread
2025-07-01 13:34:20,198 [DEBUG][Thread-606225 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:34:23,142 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:34:23,143 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:34:23,143 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:34:23,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-07-01 13:34:23,631 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 34, 4), 11.54, 45.68, 0.0, 32.57, 13.79, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:34:23,631 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:34:04
2025-07-01 13:34:23,716 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:34:23,722 [DEBUG][       Thread-606226][   transport.py][1871] : starting thread (client mode): 0x81a65c0
2025-07-01 13:34:23,722 [DEBUG][       Thread-606226][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:34:23,742 [DEBUG][       Thread-606226][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:34:23,742 [ INFO][       Thread-606226][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:34:23,745 [DEBUG][       Thread-606226][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:34:23,745 [DEBUG][       Thread-606226][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:34:23,745 [DEBUG][       Thread-606226][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:34:23,745 [DEBUG][       Thread-606226][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:34:23,745 [DEBUG][       Thread-606226][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:34:23,745 [DEBUG][       Thread-606226][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:34:23,745 [DEBUG][       Thread-606226][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:34:23,745 [DEBUG][       Thread-606226][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:34:23,745 [DEBUG][       Thread-606226][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:34:23,745 [DEBUG][       Thread-606226][   transport.py][1871] : client lang: <none>
2025-07-01 13:34:23,745 [DEBUG][       Thread-606226][   transport.py][1871] : server lang: <none>
2025-07-01 13:34:23,745 [DEBUG][       Thread-606226][   transport.py][1871] : kex follows: False
2025-07-01 13:34:23,745 [DEBUG][       Thread-606226][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:34:23,746 [DEBUG][       Thread-606226][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:34:23,746 [DEBUG][       Thread-606226][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:34:23,746 [DEBUG][       Thread-606226][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:34:23,746 [DEBUG][       Thread-606226][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:34:23,746 [DEBUG][       Thread-606226][   transport.py][1871] : Compression: none
2025-07-01 13:34:23,746 [DEBUG][       Thread-606226][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:34:23,763 [DEBUG][       Thread-606226][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:34:23,763 [DEBUG][       Thread-606226][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:34:23,764 [DEBUG][       Thread-606226][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:34:23,764 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:34:23,764 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:34:23,765 [DEBUG][       Thread-606226][   transport.py][1871] : userauth is OK
2025-07-01 13:34:23,790 [ INFO][       Thread-606226][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:34:23,790 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:34:24,455 [DEBUG][       Thread-606226][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:34:24,455 [DEBUG][       Thread-606226][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:34:24,497 [DEBUG][       Thread-606226][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:34:24,497 [DEBUG][       Thread-606226][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:34:24,501 [DEBUG][       Thread-606226][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:34:24,512 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:34:24,513 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:34:24,515 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:34:24,517 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:34:24,523 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:34:24,525 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:34:24,525 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:34:24,525 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:34:24,526 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.481886 -999.00  +13.70  43.19     49   +3.40 1 1 2 1 1   888    0 9.57 -11.05 ----- 39.1 43.2 23.8 54.3 16.8 -24.2 15.8 -24.9 15.9 -23.3 16.9 -22.4
2025-07-01 13:34:24,526 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:34:24,526 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:34:24,526 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.481886
2025-07-01 13:34:24,526 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:34:24,527 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:34:24,527 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:34:24,527 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:34:24,527 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:34:24,527 [DEBUG][       Thread-606226][   transport.py][1871] : EOF in transport thread
2025-07-01 13:34:24,527 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:34:04', tmtdew=11.54, humidity=45.68, cloud=0.0, wind=32.57, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:33:54.950', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:34:24,612 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:34:24,624 [DEBUG][       Thread-606229][   transport.py][1871] : starting thread (client mode): 0x4701ec20
2025-07-01 13:34:24,624 [DEBUG][       Thread-606229][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:34:24,639 [DEBUG][       Thread-606229][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:34:24,639 [ INFO][       Thread-606229][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:34:24,647 [DEBUG][       Thread-606229][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:34:24,647 [DEBUG][       Thread-606229][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:34:24,647 [DEBUG][       Thread-606229][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:34:24,647 [DEBUG][       Thread-606229][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:34:24,647 [DEBUG][       Thread-606229][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:34:24,647 [DEBUG][       Thread-606229][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:34:24,647 [DEBUG][       Thread-606229][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:34:24,647 [DEBUG][       Thread-606229][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:34:24,647 [DEBUG][       Thread-606229][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:34:24,647 [DEBUG][       Thread-606229][   transport.py][1871] : client lang: <none>
2025-07-01 13:34:24,647 [DEBUG][       Thread-606229][   transport.py][1871] : server lang: <none>
2025-07-01 13:34:24,647 [DEBUG][       Thread-606229][   transport.py][1871] : kex follows: False
2025-07-01 13:34:24,647 [DEBUG][       Thread-606229][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:34:24,647 [DEBUG][       Thread-606229][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:34:24,647 [DEBUG][       Thread-606229][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:34:24,647 [DEBUG][       Thread-606229][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:34:24,648 [DEBUG][       Thread-606229][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:34:24,648 [DEBUG][       Thread-606229][   transport.py][1871] : Compression: none
2025-07-01 13:34:24,648 [DEBUG][       Thread-606229][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:34:24,706 [DEBUG][       Thread-606229][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:34:24,707 [DEBUG][       Thread-606229][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:34:24,707 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:34:24,708 [DEBUG][       Thread-606229][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:34:24,709 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:34:24,764 [DEBUG][       Thread-606229][   transport.py][1871] : userauth is OK
2025-07-01 13:34:24,764 [DEBUG][       Thread-606229][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:34:24,764 [DEBUG][       Thread-606229][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:34:24,764 [DEBUG][       Thread-606229][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:34:24,764 [DEBUG][       Thread-606229][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:34:24,783 [ INFO][       Thread-606229][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:34:24,783 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:34:24,784 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:34:25,323 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:34:25,324 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:34:25,832 [DEBUG][       Thread-606229][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:34:25,832 [DEBUG][       Thread-606229][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:34:25,880 [DEBUG][       Thread-606229][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:34:25,880 [DEBUG][       Thread-606229][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:34:25,890 [DEBUG][       Thread-606229][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:34:25,902 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:34:25,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-07-01 13:34:25,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-07-01 13:34:25,924 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:34:25,924 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:34:25,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:34:25,935 [DEBUG][       Thread-606229][   transport.py][1871] : EOF in transport thread
2025-07-01 13:34:29,232 [DEBUG][Thread-606231 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:34:32,425 [DEBUG][Thread-606232 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:34:35,935 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:34:35,935 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:34:35,935 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:34:35,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-07-01 13:34:36,412 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 34, 4), 11.54, 45.68, 0.0, 32.57, 13.79, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:34:36,413 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:34:04
2025-07-01 13:34:36,497 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:34:36,503 [DEBUG][       Thread-606233][   transport.py][1871] : starting thread (client mode): 0x81a4400
2025-07-01 13:34:36,506 [DEBUG][       Thread-606233][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:34:36,525 [DEBUG][       Thread-606233][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:34:36,525 [ INFO][       Thread-606233][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:34:36,528 [DEBUG][       Thread-606233][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:34:36,528 [DEBUG][       Thread-606233][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:34:36,528 [DEBUG][       Thread-606233][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:34:36,528 [DEBUG][       Thread-606233][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:34:36,528 [DEBUG][       Thread-606233][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:34:36,528 [DEBUG][       Thread-606233][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:34:36,528 [DEBUG][       Thread-606233][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:34:36,528 [DEBUG][       Thread-606233][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:34:36,528 [DEBUG][       Thread-606233][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:34:36,528 [DEBUG][       Thread-606233][   transport.py][1871] : client lang: <none>
2025-07-01 13:34:36,528 [DEBUG][       Thread-606233][   transport.py][1871] : server lang: <none>
2025-07-01 13:34:36,529 [DEBUG][       Thread-606233][   transport.py][1871] : kex follows: False
2025-07-01 13:34:36,529 [DEBUG][       Thread-606233][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:34:36,529 [DEBUG][       Thread-606233][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:34:36,529 [DEBUG][       Thread-606233][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:34:36,529 [DEBUG][       Thread-606233][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:34:36,529 [DEBUG][       Thread-606233][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:34:36,529 [DEBUG][       Thread-606233][   transport.py][1871] : Compression: none
2025-07-01 13:34:36,529 [DEBUG][       Thread-606233][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:34:36,544 [DEBUG][       Thread-606233][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:34:36,544 [DEBUG][       Thread-606233][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:34:36,545 [DEBUG][       Thread-606233][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:34:36,545 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:34:36,545 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:34:36,546 [DEBUG][       Thread-606233][   transport.py][1871] : userauth is OK
2025-07-01 13:34:36,571 [ INFO][       Thread-606233][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:34:36,572 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:34:37,204 [DEBUG][       Thread-606233][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:34:37,205 [DEBUG][       Thread-606233][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:34:37,249 [DEBUG][       Thread-606233][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:34:37,249 [DEBUG][       Thread-606233][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:34:37,252 [DEBUG][       Thread-606233][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:34:37,265 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:34:37,265 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:34:37,267 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:34:37,269 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:34:37,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:34:37,276 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:34:37,276 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:34:37,277 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:34:37,277 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.481886 -999.00  +13.70  43.19     49   +3.40 1 1 2 1 1   888    0 9.57 -11.05 ----- 39.1 43.2 23.8 54.3 16.8 -24.2 15.8 -24.9 15.9 -23.3 16.9 -22.4
2025-07-01 13:34:37,277 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:34:37,277 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:34:37,277 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.481886
2025-07-01 13:34:37,278 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:34:37,278 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:34:37,278 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:34:37,278 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:34:37,278 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:34:37,279 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:34:04', tmtdew=11.54, humidity=45.68, cloud=0.0, wind=32.57, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:33:54.950', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:34:37,280 [DEBUG][       Thread-606233][   transport.py][1871] : EOF in transport thread
2025-07-01 13:34:37,363 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:34:37,375 [DEBUG][       Thread-606236][   transport.py][1871] : starting thread (client mode): 0x818f520
2025-07-01 13:34:37,375 [DEBUG][       Thread-606236][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:34:37,391 [DEBUG][       Thread-606236][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:34:37,391 [ INFO][       Thread-606236][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:34:37,398 [DEBUG][       Thread-606236][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:34:37,398 [DEBUG][       Thread-606236][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:34:37,398 [DEBUG][       Thread-606236][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:34:37,398 [DEBUG][       Thread-606236][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:34:37,398 [DEBUG][       Thread-606236][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:34:37,398 [DEBUG][       Thread-606236][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:34:37,398 [DEBUG][       Thread-606236][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:34:37,398 [DEBUG][       Thread-606236][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:34:37,398 [DEBUG][       Thread-606236][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:34:37,398 [DEBUG][       Thread-606236][   transport.py][1871] : client lang: <none>
2025-07-01 13:34:37,398 [DEBUG][       Thread-606236][   transport.py][1871] : server lang: <none>
2025-07-01 13:34:37,398 [DEBUG][       Thread-606236][   transport.py][1871] : kex follows: False
2025-07-01 13:34:37,398 [DEBUG][       Thread-606236][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:34:37,398 [DEBUG][       Thread-606236][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:34:37,398 [DEBUG][       Thread-606236][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:34:37,398 [DEBUG][       Thread-606236][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:34:37,398 [DEBUG][       Thread-606236][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:34:37,398 [DEBUG][       Thread-606236][   transport.py][1871] : Compression: none
2025-07-01 13:34:37,399 [DEBUG][       Thread-606236][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:34:37,454 [DEBUG][       Thread-606236][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:34:37,454 [DEBUG][       Thread-606236][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:34:37,454 [DEBUG][       Thread-606236][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:34:37,454 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:34:37,454 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:34:37,515 [DEBUG][       Thread-606236][   transport.py][1871] : userauth is OK
2025-07-01 13:34:37,515 [DEBUG][       Thread-606236][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:34:37,515 [DEBUG][       Thread-606236][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:34:37,515 [DEBUG][       Thread-606236][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:34:37,515 [DEBUG][       Thread-606236][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:34:37,529 [ INFO][       Thread-606236][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:34:37,529 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:34:37,529 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:34:38,250 [DEBUG][Thread-606238 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:34:38,545 [DEBUG][       Thread-606236][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:34:38,545 [DEBUG][       Thread-606236][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:34:38,599 [DEBUG][       Thread-606236][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:34:38,599 [DEBUG][       Thread-606236][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:34:38,608 [DEBUG][       Thread-606236][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:34:38,616 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:34:38,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-07-01 13:34:38,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-07-01 13:34:38,632 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:34:38,632 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:34:38,632 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:34:38,640 [DEBUG][       Thread-606236][   transport.py][1871] : EOF in transport thread
2025-07-01 13:34:47,267 [DEBUG][Thread-606239 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:34:48,642 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:34:48,643 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:34:48,643 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:34:48,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-07-01 13:34:49,127 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 34, 36), 11.52, 45.64, 0.0, 31.49, 13.8, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:34:49,127 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:34:36
2025-07-01 13:34:49,212 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:34:49,217 [DEBUG][       Thread-606240][   transport.py][1871] : starting thread (client mode): 0x81a7910
2025-07-01 13:34:49,217 [DEBUG][       Thread-606240][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:34:49,231 [DEBUG][       Thread-606240][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:34:49,231 [ INFO][       Thread-606240][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:34:49,235 [DEBUG][       Thread-606240][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:34:49,235 [DEBUG][       Thread-606240][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:34:49,235 [DEBUG][       Thread-606240][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:34:49,235 [DEBUG][       Thread-606240][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:34:49,235 [DEBUG][       Thread-606240][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:34:49,235 [DEBUG][       Thread-606240][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:34:49,235 [DEBUG][       Thread-606240][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:34:49,235 [DEBUG][       Thread-606240][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:34:49,235 [DEBUG][       Thread-606240][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:34:49,235 [DEBUG][       Thread-606240][   transport.py][1871] : client lang: <none>
2025-07-01 13:34:49,235 [DEBUG][       Thread-606240][   transport.py][1871] : server lang: <none>
2025-07-01 13:34:49,235 [DEBUG][       Thread-606240][   transport.py][1871] : kex follows: False
2025-07-01 13:34:49,235 [DEBUG][       Thread-606240][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:34:49,235 [DEBUG][       Thread-606240][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:34:49,235 [DEBUG][       Thread-606240][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:34:49,235 [DEBUG][       Thread-606240][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:34:49,235 [DEBUG][       Thread-606240][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:34:49,235 [DEBUG][       Thread-606240][   transport.py][1871] : Compression: none
2025-07-01 13:34:49,235 [DEBUG][       Thread-606240][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:34:49,254 [DEBUG][       Thread-606240][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:34:49,255 [DEBUG][       Thread-606240][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:34:49,255 [DEBUG][       Thread-606240][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:34:49,255 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:34:49,255 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:34:49,257 [DEBUG][       Thread-606240][   transport.py][1871] : userauth is OK
2025-07-01 13:34:49,281 [ INFO][       Thread-606240][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:34:49,281 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:34:49,918 [DEBUG][       Thread-606240][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:34:49,919 [DEBUG][       Thread-606240][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:34:49,960 [DEBUG][       Thread-606240][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:34:49,961 [DEBUG][       Thread-606240][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:34:49,964 [DEBUG][       Thread-606240][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:34:49,977 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:34:49,977 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:34:49,979 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:34:49,981 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:34:49,987 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:34:49,989 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:34:49,989 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:34:49,990 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:34:49,990 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.482234 -999.00  +13.50  36.29     50   +3.40 1 1 2 1 1   888    0 9.70 -10.41 ----- 44.0 36.3 351.3 48.3 16.8 -24.5 15.7 -25.1 15.9 -23.6 16.8 -22.8
2025-07-01 13:34:49,990 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:34:49,990 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:34:49,990 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.482234
2025-07-01 13:34:49,990 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:34:49,991 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:34:49,991 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:34:49,991 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:34:49,991 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:34:49,991 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:34:36', tmtdew=11.52, humidity=45.64, cloud=0.0, wind=31.49, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:34:25.018', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:34:49,991 [DEBUG][       Thread-606240][   transport.py][1871] : EOF in transport thread
2025-07-01 13:34:50,075 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:34:50,085 [DEBUG][       Thread-606243][   transport.py][1871] : starting thread (client mode): 0x8105150
2025-07-01 13:34:50,085 [DEBUG][       Thread-606243][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:34:50,100 [DEBUG][       Thread-606243][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:34:50,100 [ INFO][       Thread-606243][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:34:50,108 [DEBUG][       Thread-606243][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:34:50,108 [DEBUG][       Thread-606243][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:34:50,108 [DEBUG][       Thread-606243][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:34:50,108 [DEBUG][       Thread-606243][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:34:50,108 [DEBUG][       Thread-606243][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:34:50,108 [DEBUG][       Thread-606243][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:34:50,108 [DEBUG][       Thread-606243][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:34:50,108 [DEBUG][       Thread-606243][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:34:50,108 [DEBUG][       Thread-606243][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:34:50,108 [DEBUG][       Thread-606243][   transport.py][1871] : client lang: <none>
2025-07-01 13:34:50,108 [DEBUG][       Thread-606243][   transport.py][1871] : server lang: <none>
2025-07-01 13:34:50,109 [DEBUG][       Thread-606243][   transport.py][1871] : kex follows: False
2025-07-01 13:34:50,109 [DEBUG][       Thread-606243][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:34:50,109 [DEBUG][       Thread-606243][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:34:50,109 [DEBUG][       Thread-606243][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:34:50,109 [DEBUG][       Thread-606243][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:34:50,109 [DEBUG][       Thread-606243][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:34:50,109 [DEBUG][       Thread-606243][   transport.py][1871] : Compression: none
2025-07-01 13:34:50,109 [DEBUG][       Thread-606243][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:34:50,168 [DEBUG][       Thread-606243][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:34:50,168 [DEBUG][       Thread-606243][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:34:50,169 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:34:50,169 [DEBUG][       Thread-606243][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:34:50,170 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:34:50,229 [DEBUG][       Thread-606243][   transport.py][1871] : userauth is OK
2025-07-01 13:34:50,230 [DEBUG][       Thread-606243][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:34:50,230 [DEBUG][       Thread-606243][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:34:50,230 [DEBUG][       Thread-606243][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:34:50,230 [DEBUG][       Thread-606243][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:34:50,249 [ INFO][       Thread-606243][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:34:50,249 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:34:50,249 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:34:51,411 [DEBUG][       Thread-606243][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:34:51,412 [DEBUG][       Thread-606243][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:34:51,460 [DEBUG][       Thread-606243][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:34:51,460 [DEBUG][       Thread-606243][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:34:51,469 [DEBUG][       Thread-606243][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:34:51,478 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:34:51,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-07-01 13:34:51,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-07-01 13:34:51,496 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:34:51,497 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:34:51,497 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:34:51,505 [DEBUG][       Thread-606243][   transport.py][1871] : EOF in transport thread
2025-07-01 13:34:56,287 [DEBUG][Thread-606245 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:35:01,508 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:35:01,508 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:35:01,508 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:35:01,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-07-01 13:35:01,978 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 34, 36), 11.52, 45.64, 0.0, 31.49, 13.8, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:35:01,978 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:34:36
2025-07-01 13:35:02,064 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:35:02,070 [DEBUG][       Thread-606246][   transport.py][1871] : starting thread (client mode): 0x81709d0
2025-07-01 13:35:02,070 [DEBUG][       Thread-606246][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:35:02,091 [DEBUG][       Thread-606246][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:35:02,091 [ INFO][       Thread-606246][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:35:02,095 [DEBUG][       Thread-606246][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:35:02,095 [DEBUG][       Thread-606246][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:35:02,095 [DEBUG][       Thread-606246][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:35:02,095 [DEBUG][       Thread-606246][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:35:02,095 [DEBUG][       Thread-606246][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:35:02,095 [DEBUG][       Thread-606246][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:35:02,095 [DEBUG][       Thread-606246][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:35:02,095 [DEBUG][       Thread-606246][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:35:02,095 [DEBUG][       Thread-606246][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:35:02,095 [DEBUG][       Thread-606246][   transport.py][1871] : client lang: <none>
2025-07-01 13:35:02,095 [DEBUG][       Thread-606246][   transport.py][1871] : server lang: <none>
2025-07-01 13:35:02,095 [DEBUG][       Thread-606246][   transport.py][1871] : kex follows: False
2025-07-01 13:35:02,095 [DEBUG][       Thread-606246][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:35:02,095 [DEBUG][       Thread-606246][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:35:02,095 [DEBUG][       Thread-606246][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:35:02,095 [DEBUG][       Thread-606246][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:35:02,095 [DEBUG][       Thread-606246][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:35:02,095 [DEBUG][       Thread-606246][   transport.py][1871] : Compression: none
2025-07-01 13:35:02,096 [DEBUG][       Thread-606246][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:35:02,104 [DEBUG][       Thread-606246][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:35:02,104 [DEBUG][       Thread-606246][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:35:02,105 [DEBUG][       Thread-606246][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:35:02,105 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:35:02,105 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:35:02,106 [DEBUG][       Thread-606246][   transport.py][1871] : userauth is OK
2025-07-01 13:35:02,120 [ INFO][       Thread-606246][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:35:02,121 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:35:02,800 [DEBUG][       Thread-606246][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:35:02,800 [DEBUG][       Thread-606246][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:35:02,844 [DEBUG][       Thread-606246][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:35:02,844 [DEBUG][       Thread-606246][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:35:02,846 [DEBUG][       Thread-606246][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:35:02,860 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:35:02,860 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:35:02,861 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:35:02,862 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:35:02,864 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:35:02,865 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:35:02,865 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:35:02,865 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:35:02,865 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.482234 -999.00  +13.50  36.29     50   +3.40 1 1 2 1 1   888    0 9.70 -10.41 ----- 44.0 36.3 351.3 48.3 16.8 -24.5 15.7 -25.1 15.9 -23.6 16.8 -22.8
2025-07-01 13:35:02,865 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:35:02,865 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:35:02,865 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.482234
2025-07-01 13:35:02,865 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:35:02,865 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:35:02,865 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:35:02,865 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:35:02,865 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:35:02,865 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:34:36', tmtdew=11.52, humidity=45.64, cloud=0.0, wind=31.49, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:34:25.018', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:35:02,866 [DEBUG][       Thread-606246][   transport.py][1871] : EOF in transport thread
2025-07-01 13:35:02,937 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:35:02,948 [DEBUG][       Thread-606249][   transport.py][1871] : starting thread (client mode): 0x82b1f30
2025-07-01 13:35:02,948 [DEBUG][       Thread-606249][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:35:02,963 [DEBUG][       Thread-606249][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:35:02,963 [ INFO][       Thread-606249][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:35:02,971 [DEBUG][       Thread-606249][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:35:02,971 [DEBUG][       Thread-606249][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:35:02,971 [DEBUG][       Thread-606249][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:35:02,971 [DEBUG][       Thread-606249][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:35:02,971 [DEBUG][       Thread-606249][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:35:02,971 [DEBUG][       Thread-606249][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:35:02,972 [DEBUG][       Thread-606249][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:35:02,972 [DEBUG][       Thread-606249][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:35:02,972 [DEBUG][       Thread-606249][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:35:02,972 [DEBUG][       Thread-606249][   transport.py][1871] : client lang: <none>
2025-07-01 13:35:02,972 [DEBUG][       Thread-606249][   transport.py][1871] : server lang: <none>
2025-07-01 13:35:02,972 [DEBUG][       Thread-606249][   transport.py][1871] : kex follows: False
2025-07-01 13:35:02,972 [DEBUG][       Thread-606249][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:35:02,972 [DEBUG][       Thread-606249][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:35:02,972 [DEBUG][       Thread-606249][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:35:02,972 [DEBUG][       Thread-606249][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:35:02,972 [DEBUG][       Thread-606249][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:35:02,972 [DEBUG][       Thread-606249][   transport.py][1871] : Compression: none
2025-07-01 13:35:02,972 [DEBUG][       Thread-606249][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:35:03,035 [DEBUG][       Thread-606249][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:35:03,036 [DEBUG][       Thread-606249][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:35:03,037 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:35:03,037 [DEBUG][       Thread-606249][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:35:03,038 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:35:03,095 [DEBUG][       Thread-606249][   transport.py][1871] : userauth is OK
2025-07-01 13:35:03,095 [DEBUG][       Thread-606249][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:35:03,095 [DEBUG][       Thread-606249][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:35:03,095 [DEBUG][       Thread-606249][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:35:03,095 [DEBUG][       Thread-606249][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:35:03,114 [ INFO][       Thread-606249][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:35:03,114 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:35:03,115 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:35:04,143 [DEBUG][       Thread-606249][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:35:04,144 [DEBUG][       Thread-606249][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:35:04,192 [DEBUG][       Thread-606249][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:35:04,192 [DEBUG][       Thread-606249][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:35:04,207 [DEBUG][       Thread-606249][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:35:04,224 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:35:04,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')
2025-07-01 13:35:04,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-07-01 13:35:04,242 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:35:04,242 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:35:04,242 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:35:04,253 [DEBUG][       Thread-606249][   transport.py][1871] : EOF in transport thread
2025-07-01 13:35:05,321 [DEBUG][Thread-606251 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:35:14,253 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:35:14,253 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:35:14,253 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:35:14,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-07-01 13:35:14,342 [DEBUG][Thread-606252 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:35:14,734 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 35, 8), 11.58, 45.56, 0.0, 37.6, 13.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:35:14,734 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:35:08
2025-07-01 13:35:14,819 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:35:14,823 [DEBUG][       Thread-606253][   transport.py][1871] : starting thread (client mode): 0x81db3a0
2025-07-01 13:35:14,823 [DEBUG][       Thread-606253][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:35:14,840 [DEBUG][       Thread-606253][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:35:14,840 [ INFO][       Thread-606253][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:35:14,844 [DEBUG][       Thread-606253][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:35:14,844 [DEBUG][       Thread-606253][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:35:14,844 [DEBUG][       Thread-606253][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:35:14,844 [DEBUG][       Thread-606253][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:35:14,844 [DEBUG][       Thread-606253][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:35:14,844 [DEBUG][       Thread-606253][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:35:14,844 [DEBUG][       Thread-606253][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:35:14,844 [DEBUG][       Thread-606253][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:35:14,844 [DEBUG][       Thread-606253][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:35:14,844 [DEBUG][       Thread-606253][   transport.py][1871] : client lang: <none>
2025-07-01 13:35:14,844 [DEBUG][       Thread-606253][   transport.py][1871] : server lang: <none>
2025-07-01 13:35:14,844 [DEBUG][       Thread-606253][   transport.py][1871] : kex follows: False
2025-07-01 13:35:14,844 [DEBUG][       Thread-606253][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:35:14,844 [DEBUG][       Thread-606253][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:35:14,844 [DEBUG][       Thread-606253][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:35:14,844 [DEBUG][       Thread-606253][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:35:14,844 [DEBUG][       Thread-606253][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:35:14,844 [DEBUG][       Thread-606253][   transport.py][1871] : Compression: none
2025-07-01 13:35:14,844 [DEBUG][       Thread-606253][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:35:14,861 [DEBUG][       Thread-606253][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:35:14,861 [DEBUG][       Thread-606253][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:35:14,862 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:35:14,862 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:35:14,862 [DEBUG][       Thread-606253][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:35:14,863 [DEBUG][       Thread-606253][   transport.py][1871] : userauth is OK
2025-07-01 13:35:14,876 [ INFO][       Thread-606253][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:35:14,876 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:35:15,529 [DEBUG][       Thread-606253][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:35:15,530 [DEBUG][       Thread-606253][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:35:15,573 [DEBUG][       Thread-606253][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:35:15,573 [DEBUG][       Thread-606253][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:35:15,577 [DEBUG][       Thread-606253][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:35:15,588 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:35:15,589 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:35:15,590 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:35:15,592 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:35:15,597 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:35:15,599 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:35:15,599 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:35:15,600 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:35:15,600 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.482581 -999.00  +13.30  36.18     50   +3.40 1 1 2 1 1   888    0 9.27 -9.26 ----- 36.8 36.2 18.0 59.3 16.6 -25.1 15.6 -27.6 15.7 -23.9 16.6 -24.2
2025-07-01 13:35:15,600 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:35:15,600 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:35:15,600 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.482581
2025-07-01 13:35:15,601 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:35:15,601 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:35:15,601 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:35:15,601 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:35:15,601 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:35:15,602 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:35:08', tmtdew=11.58, humidity=45.56, cloud=0.0, wind=37.6, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:34:54.998', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:35:15,602 [DEBUG][       Thread-606253][   transport.py][1871] : EOF in transport thread
2025-07-01 13:35:15,685 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:35:15,695 [DEBUG][       Thread-606256][   transport.py][1871] : starting thread (client mode): 0x8a65e70
2025-07-01 13:35:15,695 [DEBUG][       Thread-606256][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:35:15,709 [DEBUG][       Thread-606256][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:35:15,710 [ INFO][       Thread-606256][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:35:15,717 [DEBUG][       Thread-606256][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:35:15,717 [DEBUG][       Thread-606256][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:35:15,718 [DEBUG][       Thread-606256][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:35:15,718 [DEBUG][       Thread-606256][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:35:15,718 [DEBUG][       Thread-606256][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:35:15,718 [DEBUG][       Thread-606256][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:35:15,718 [DEBUG][       Thread-606256][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:35:15,718 [DEBUG][       Thread-606256][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:35:15,718 [DEBUG][       Thread-606256][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:35:15,718 [DEBUG][       Thread-606256][   transport.py][1871] : client lang: <none>
2025-07-01 13:35:15,718 [DEBUG][       Thread-606256][   transport.py][1871] : server lang: <none>
2025-07-01 13:35:15,718 [DEBUG][       Thread-606256][   transport.py][1871] : kex follows: False
2025-07-01 13:35:15,718 [DEBUG][       Thread-606256][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:35:15,718 [DEBUG][       Thread-606256][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:35:15,718 [DEBUG][       Thread-606256][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:35:15,718 [DEBUG][       Thread-606256][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:35:15,718 [DEBUG][       Thread-606256][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:35:15,718 [DEBUG][       Thread-606256][   transport.py][1871] : Compression: none
2025-07-01 13:35:15,718 [DEBUG][       Thread-606256][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:35:15,777 [DEBUG][       Thread-606256][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:35:15,777 [DEBUG][       Thread-606256][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:35:15,778 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:35:15,778 [DEBUG][       Thread-606256][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:35:15,779 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:35:15,834 [DEBUG][       Thread-606256][   transport.py][1871] : userauth is OK
2025-07-01 13:35:15,834 [DEBUG][       Thread-606256][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:35:15,835 [DEBUG][       Thread-606256][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:35:15,835 [DEBUG][       Thread-606256][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:35:15,835 [DEBUG][       Thread-606256][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:35:15,853 [ INFO][       Thread-606256][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:35:15,854 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:35:15,854 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:35:16,874 [DEBUG][       Thread-606256][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:35:16,874 [DEBUG][       Thread-606256][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:35:16,923 [DEBUG][       Thread-606256][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:35:16,923 [DEBUG][       Thread-606256][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:35:16,932 [DEBUG][       Thread-606256][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:35:16,940 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:35:16,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-07-01 13:35:16,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-07-01 13:35:16,956 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:35:16,956 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:35:16,956 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:35:16,964 [DEBUG][       Thread-606256][   transport.py][1871] : EOF in transport thread
2025-07-01 13:35:23,363 [DEBUG][Thread-606258 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:35:25,462 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:35:25,463 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:35:26,966 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:35:26,966 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:35:26,975 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:35:26,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-07-01 13:35:27,462 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 35, 8), 11.58, 45.56, 0.0, 37.6, 13.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:35:27,463 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:35:08
2025-07-01 13:35:27,548 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:35:27,554 [DEBUG][       Thread-606259][   transport.py][1871] : starting thread (client mode): 0x8170520
2025-07-01 13:35:27,554 [DEBUG][       Thread-606259][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:35:27,574 [DEBUG][       Thread-606259][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:35:27,574 [ INFO][       Thread-606259][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:35:27,578 [DEBUG][       Thread-606259][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:35:27,578 [DEBUG][       Thread-606259][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:35:27,578 [DEBUG][       Thread-606259][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:35:27,578 [DEBUG][       Thread-606259][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:35:27,578 [DEBUG][       Thread-606259][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:35:27,578 [DEBUG][       Thread-606259][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:35:27,578 [DEBUG][       Thread-606259][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:35:27,578 [DEBUG][       Thread-606259][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:35:27,578 [DEBUG][       Thread-606259][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:35:27,578 [DEBUG][       Thread-606259][   transport.py][1871] : client lang: <none>
2025-07-01 13:35:27,578 [DEBUG][       Thread-606259][   transport.py][1871] : server lang: <none>
2025-07-01 13:35:27,578 [DEBUG][       Thread-606259][   transport.py][1871] : kex follows: False
2025-07-01 13:35:27,578 [DEBUG][       Thread-606259][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:35:27,578 [DEBUG][       Thread-606259][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:35:27,578 [DEBUG][       Thread-606259][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:35:27,578 [DEBUG][       Thread-606259][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:35:27,578 [DEBUG][       Thread-606259][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:35:27,578 [DEBUG][       Thread-606259][   transport.py][1871] : Compression: none
2025-07-01 13:35:27,578 [DEBUG][       Thread-606259][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:35:27,595 [DEBUG][       Thread-606259][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:35:27,596 [DEBUG][       Thread-606259][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:35:27,596 [DEBUG][       Thread-606259][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:35:27,597 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:35:27,597 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:35:27,598 [DEBUG][       Thread-606259][   transport.py][1871] : userauth is OK
2025-07-01 13:35:27,624 [ INFO][       Thread-606259][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:35:27,624 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:35:28,233 [DEBUG][       Thread-606259][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:35:28,233 [DEBUG][       Thread-606259][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:35:28,277 [DEBUG][       Thread-606259][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:35:28,277 [DEBUG][       Thread-606259][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:35:28,281 [DEBUG][       Thread-606259][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:35:28,292 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:35:28,292 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:35:28,294 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:35:28,296 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:35:28,302 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:35:28,305 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:35:28,305 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:35:28,306 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:35:28,306 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.482581 -999.00  +13.30  36.18     50   +3.40 1 1 2 1 1   888    0 9.27 -9.26 ----- 36.8 36.2 18.0 59.3 16.6 -25.1 15.6 -27.6 15.7 -23.9 16.6 -24.2
2025-07-01 13:35:28,306 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:35:28,306 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:35:28,306 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.482581
2025-07-01 13:35:28,306 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:35:28,307 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:35:28,307 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:35:28,307 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:35:28,307 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:35:28,307 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:35:08', tmtdew=11.58, humidity=45.56, cloud=0.0, wind=37.6, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:34:54.998', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:35:28,308 [DEBUG][       Thread-606259][   transport.py][1871] : EOF in transport thread
2025-07-01 13:35:28,392 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:35:28,404 [DEBUG][       Thread-606262][   transport.py][1871] : starting thread (client mode): 0x81e5b40
2025-07-01 13:35:28,404 [DEBUG][       Thread-606262][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:35:28,420 [DEBUG][       Thread-606262][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:35:28,420 [ INFO][       Thread-606262][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:35:28,427 [DEBUG][       Thread-606262][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:35:28,428 [DEBUG][       Thread-606262][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:35:28,428 [DEBUG][       Thread-606262][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:35:28,428 [DEBUG][       Thread-606262][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:35:28,428 [DEBUG][       Thread-606262][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:35:28,428 [DEBUG][       Thread-606262][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:35:28,428 [DEBUG][       Thread-606262][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:35:28,428 [DEBUG][       Thread-606262][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:35:28,428 [DEBUG][       Thread-606262][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:35:28,428 [DEBUG][       Thread-606262][   transport.py][1871] : client lang: <none>
2025-07-01 13:35:28,428 [DEBUG][       Thread-606262][   transport.py][1871] : server lang: <none>
2025-07-01 13:35:28,428 [DEBUG][       Thread-606262][   transport.py][1871] : kex follows: False
2025-07-01 13:35:28,428 [DEBUG][       Thread-606262][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:35:28,428 [DEBUG][       Thread-606262][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:35:28,428 [DEBUG][       Thread-606262][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:35:28,428 [DEBUG][       Thread-606262][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:35:28,428 [DEBUG][       Thread-606262][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:35:28,428 [DEBUG][       Thread-606262][   transport.py][1871] : Compression: none
2025-07-01 13:35:28,428 [DEBUG][       Thread-606262][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:35:28,490 [DEBUG][       Thread-606262][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:35:28,490 [DEBUG][       Thread-606262][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:35:28,491 [DEBUG][       Thread-606262][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:35:28,491 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:35:28,492 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:35:28,552 [DEBUG][       Thread-606262][   transport.py][1871] : userauth is OK
2025-07-01 13:35:28,552 [DEBUG][       Thread-606262][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:35:28,552 [DEBUG][       Thread-606262][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:35:28,552 [DEBUG][       Thread-606262][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:35:28,552 [DEBUG][       Thread-606262][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:35:28,572 [ INFO][       Thread-606262][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:35:28,572 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:35:28,573 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:35:29,585 [DEBUG][       Thread-606262][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:35:29,585 [DEBUG][       Thread-606262][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:35:29,636 [DEBUG][       Thread-606262][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:35:29,636 [DEBUG][       Thread-606262][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:35:29,645 [DEBUG][       Thread-606262][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:35:29,654 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:35:29,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-07-01 13:35:29,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') -> 00000000
2025-07-01 13:35:29,673 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:35:29,673 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:35:29,673 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:35:29,681 [DEBUG][       Thread-606262][   transport.py][1871] : EOF in transport thread
2025-07-01 13:35:32,407 [DEBUG][Thread-606264 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:35:32,458 [DEBUG][Thread-606265 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:35:39,684 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:35:39,684 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:35:39,684 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:35:39,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-07-01 13:35:40,155 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 35, 8), 11.58, 45.56, 0.0, 37.6, 13.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:35:40,155 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:35:08
2025-07-01 13:35:40,241 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:35:40,245 [DEBUG][       Thread-606266][   transport.py][1871] : starting thread (client mode): 0x75a90c0
2025-07-01 13:35:40,245 [DEBUG][       Thread-606266][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:35:40,266 [DEBUG][       Thread-606266][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:35:40,267 [ INFO][       Thread-606266][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:35:40,270 [DEBUG][       Thread-606266][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:35:40,270 [DEBUG][       Thread-606266][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:35:40,270 [DEBUG][       Thread-606266][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:35:40,270 [DEBUG][       Thread-606266][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:35:40,270 [DEBUG][       Thread-606266][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:35:40,270 [DEBUG][       Thread-606266][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:35:40,270 [DEBUG][       Thread-606266][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:35:40,270 [DEBUG][       Thread-606266][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:35:40,270 [DEBUG][       Thread-606266][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:35:40,270 [DEBUG][       Thread-606266][   transport.py][1871] : client lang: <none>
2025-07-01 13:35:40,270 [DEBUG][       Thread-606266][   transport.py][1871] : server lang: <none>
2025-07-01 13:35:40,270 [DEBUG][       Thread-606266][   transport.py][1871] : kex follows: False
2025-07-01 13:35:40,270 [DEBUG][       Thread-606266][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:35:40,270 [DEBUG][       Thread-606266][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:35:40,270 [DEBUG][       Thread-606266][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:35:40,270 [DEBUG][       Thread-606266][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:35:40,270 [DEBUG][       Thread-606266][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:35:40,270 [DEBUG][       Thread-606266][   transport.py][1871] : Compression: none
2025-07-01 13:35:40,270 [DEBUG][       Thread-606266][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:35:40,289 [DEBUG][       Thread-606266][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:35:40,290 [DEBUG][       Thread-606266][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:35:40,290 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:35:40,290 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:35:40,291 [DEBUG][       Thread-606266][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:35:40,292 [DEBUG][       Thread-606266][   transport.py][1871] : userauth is OK
2025-07-01 13:35:40,316 [ INFO][       Thread-606266][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:35:40,317 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:35:41,179 [DEBUG][       Thread-606266][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:35:41,180 [DEBUG][       Thread-606266][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:35:41,225 [DEBUG][       Thread-606266][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:35:41,225 [DEBUG][       Thread-606266][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:35:41,228 [DEBUG][       Thread-606266][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:35:41,241 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:35:41,241 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:35:41,243 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:35:41,244 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:35:41,250 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:35:41,252 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:35:41,252 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:35:41,253 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:35:41,253 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.482581 -999.00  +13.30  36.18     50   +3.40 1 1 2 1 1   888    0 9.27 -9.26 ----- 36.8 36.2 18.0 59.3 16.6 -25.1 15.6 -27.6 15.7 -23.9 16.6 -24.2
2025-07-01 13:35:41,253 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:35:41,253 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:35:41,253 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.482581
2025-07-01 13:35:41,254 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:35:41,254 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:35:41,254 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:35:41,254 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:35:41,254 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:35:41,254 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:35:08', tmtdew=11.58, humidity=45.56, cloud=0.0, wind=37.6, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:34:54.998', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:35:41,255 [DEBUG][       Thread-606266][   transport.py][1871] : EOF in transport thread
2025-07-01 13:35:41,338 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:35:41,347 [DEBUG][       Thread-606269][   transport.py][1871] : starting thread (client mode): 0x82b24a0
2025-07-01 13:35:41,347 [DEBUG][       Thread-606269][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:35:41,362 [DEBUG][       Thread-606269][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:35:41,362 [ INFO][       Thread-606269][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:35:41,370 [DEBUG][       Thread-606269][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:35:41,370 [DEBUG][       Thread-606269][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:35:41,370 [DEBUG][       Thread-606269][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:35:41,370 [DEBUG][       Thread-606269][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:35:41,370 [DEBUG][       Thread-606269][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:35:41,370 [DEBUG][       Thread-606269][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:35:41,370 [DEBUG][       Thread-606269][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:35:41,370 [DEBUG][       Thread-606269][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:35:41,370 [DEBUG][       Thread-606269][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:35:41,370 [DEBUG][       Thread-606269][   transport.py][1871] : client lang: <none>
2025-07-01 13:35:41,370 [DEBUG][       Thread-606269][   transport.py][1871] : server lang: <none>
2025-07-01 13:35:41,370 [DEBUG][       Thread-606269][   transport.py][1871] : kex follows: False
2025-07-01 13:35:41,370 [DEBUG][       Thread-606269][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:35:41,370 [DEBUG][       Thread-606269][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:35:41,370 [DEBUG][       Thread-606269][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:35:41,370 [DEBUG][       Thread-606269][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:35:41,370 [DEBUG][       Thread-606269][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:35:41,370 [DEBUG][       Thread-606269][   transport.py][1871] : Compression: none
2025-07-01 13:35:41,370 [DEBUG][       Thread-606269][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:35:41,429 [DEBUG][Thread-606271 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:35:41,430 [DEBUG][       Thread-606269][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:35:41,430 [DEBUG][       Thread-606269][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:35:41,431 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:35:41,431 [DEBUG][       Thread-606269][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:35:41,432 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:35:41,489 [DEBUG][       Thread-606269][   transport.py][1871] : userauth is OK
2025-07-01 13:35:41,489 [DEBUG][       Thread-606269][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:35:41,489 [DEBUG][       Thread-606269][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:35:41,489 [DEBUG][       Thread-606269][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:35:41,489 [DEBUG][       Thread-606269][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:35:41,508 [ INFO][       Thread-606269][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:35:41,508 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:35:41,509 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:35:42,518 [DEBUG][       Thread-606269][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:35:42,518 [DEBUG][       Thread-606269][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:35:42,567 [DEBUG][       Thread-606269][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:35:42,567 [DEBUG][       Thread-606269][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:35:42,576 [DEBUG][       Thread-606269][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:35:42,583 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:35:42,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-07-01 13:35:42,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-07-01 13:35:42,599 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:35:42,599 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:35:42,599 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:35:42,607 [DEBUG][       Thread-606269][   transport.py][1871] : EOF in transport thread
2025-07-01 13:35:50,452 [DEBUG][Thread-606272 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:35:52,610 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:35:52,610 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:35:52,610 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:35:52,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-07-01 13:35:53,079 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 35, 42), 11.49, 45.82, 0.0, 35.25, 13.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:35:53,079 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:35:42
2025-07-01 13:35:53,164 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:35:53,169 [DEBUG][       Thread-606273][   transport.py][1871] : starting thread (client mode): 0x75a9c90
2025-07-01 13:35:53,170 [DEBUG][       Thread-606273][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:35:53,190 [DEBUG][       Thread-606273][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:35:53,190 [ INFO][       Thread-606273][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:35:53,193 [DEBUG][       Thread-606273][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:35:53,193 [DEBUG][       Thread-606273][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:35:53,194 [DEBUG][       Thread-606273][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:35:53,194 [DEBUG][       Thread-606273][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:35:53,194 [DEBUG][       Thread-606273][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:35:53,194 [DEBUG][       Thread-606273][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:35:53,194 [DEBUG][       Thread-606273][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:35:53,194 [DEBUG][       Thread-606273][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:35:53,194 [DEBUG][       Thread-606273][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:35:53,194 [DEBUG][       Thread-606273][   transport.py][1871] : client lang: <none>
2025-07-01 13:35:53,194 [DEBUG][       Thread-606273][   transport.py][1871] : server lang: <none>
2025-07-01 13:35:53,194 [DEBUG][       Thread-606273][   transport.py][1871] : kex follows: False
2025-07-01 13:35:53,194 [DEBUG][       Thread-606273][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:35:53,194 [DEBUG][       Thread-606273][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:35:53,194 [DEBUG][       Thread-606273][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:35:53,194 [DEBUG][       Thread-606273][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:35:53,194 [DEBUG][       Thread-606273][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:35:53,194 [DEBUG][       Thread-606273][   transport.py][1871] : Compression: none
2025-07-01 13:35:53,194 [DEBUG][       Thread-606273][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:35:53,214 [DEBUG][       Thread-606273][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:35:53,214 [DEBUG][       Thread-606273][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:35:53,215 [DEBUG][       Thread-606273][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:35:53,215 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:35:53,215 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:35:53,216 [DEBUG][       Thread-606273][   transport.py][1871] : userauth is OK
2025-07-01 13:35:53,241 [ INFO][       Thread-606273][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:35:53,241 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:35:53,895 [DEBUG][       Thread-606273][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:35:53,896 [DEBUG][       Thread-606273][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:35:53,937 [DEBUG][       Thread-606273][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:35:53,937 [DEBUG][       Thread-606273][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:35:53,941 [DEBUG][       Thread-606273][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:35:53,955 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:35:53,955 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:35:53,957 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:35:53,959 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:35:53,964 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:35:53,966 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:35:53,966 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:35:53,967 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:35:53,967 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.482928 -999.00  +13.50  37.08     51   +3.60 1 1 2 1 1   888    0 9.64 -8.90 ----- 34.9 37.1 31.2 59.1 16.6 -24.5 15.6 -25.8 15.7 -24.3 16.6 -23.3
2025-07-01 13:35:53,967 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:35:53,967 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:35:53,967 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.482928
2025-07-01 13:35:53,968 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:35:53,969 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:35:53,969 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:35:53,969 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:35:53,969 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:35:53,969 [DEBUG][       Thread-606273][   transport.py][1871] : EOF in transport thread
2025-07-01 13:35:53,970 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:35:42', tmtdew=11.49, humidity=45.82, cloud=0.0, wind=35.25, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:35:24.979', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:35:54,057 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:35:54,068 [DEBUG][       Thread-606276][   transport.py][1871] : starting thread (client mode): 0x81a5960
2025-07-01 13:35:54,068 [DEBUG][       Thread-606276][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:35:54,082 [DEBUG][       Thread-606276][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:35:54,082 [ INFO][       Thread-606276][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:35:54,090 [DEBUG][       Thread-606276][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:35:54,090 [DEBUG][       Thread-606276][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:35:54,090 [DEBUG][       Thread-606276][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:35:54,090 [DEBUG][       Thread-606276][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:35:54,090 [DEBUG][       Thread-606276][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:35:54,090 [DEBUG][       Thread-606276][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:35:54,090 [DEBUG][       Thread-606276][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:35:54,090 [DEBUG][       Thread-606276][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:35:54,090 [DEBUG][       Thread-606276][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:35:54,090 [DEBUG][       Thread-606276][   transport.py][1871] : client lang: <none>
2025-07-01 13:35:54,090 [DEBUG][       Thread-606276][   transport.py][1871] : server lang: <none>
2025-07-01 13:35:54,090 [DEBUG][       Thread-606276][   transport.py][1871] : kex follows: False
2025-07-01 13:35:54,090 [DEBUG][       Thread-606276][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:35:54,090 [DEBUG][       Thread-606276][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:35:54,090 [DEBUG][       Thread-606276][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:35:54,090 [DEBUG][       Thread-606276][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:35:54,090 [DEBUG][       Thread-606276][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:35:54,090 [DEBUG][       Thread-606276][   transport.py][1871] : Compression: none
2025-07-01 13:35:54,090 [DEBUG][       Thread-606276][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:35:54,155 [DEBUG][       Thread-606276][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:35:54,156 [DEBUG][       Thread-606276][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:35:54,156 [DEBUG][       Thread-606276][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:35:54,157 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:35:54,157 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:35:54,213 [DEBUG][       Thread-606276][   transport.py][1871] : userauth is OK
2025-07-01 13:35:54,214 [DEBUG][       Thread-606276][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:35:54,214 [DEBUG][       Thread-606276][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:35:54,214 [DEBUG][       Thread-606276][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:35:54,214 [DEBUG][       Thread-606276][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:35:54,233 [ INFO][       Thread-606276][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:35:54,233 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:35:54,234 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:35:55,246 [DEBUG][       Thread-606276][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:35:55,246 [DEBUG][       Thread-606276][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:35:55,296 [DEBUG][       Thread-606276][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:35:55,296 [DEBUG][       Thread-606276][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:35:55,308 [DEBUG][       Thread-606276][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:35:55,316 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:35:55,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-07-01 13:35:55,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-07-01 13:35:55,333 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:35:55,333 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:35:55,333 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:35:55,351 [DEBUG][       Thread-606276][   transport.py][1871] : EOF in transport thread
2025-07-01 13:35:59,472 [DEBUG][Thread-606278 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:36:05,343 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:36:05,344 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:36:05,344 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:36:05,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-07-01 13:36:05,811 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 35, 42), 11.49, 45.82, 0.0, 35.25, 13.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:36:05,811 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:35:42
2025-07-01 13:36:05,896 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:36:05,901 [DEBUG][       Thread-606279][   transport.py][1871] : starting thread (client mode): 0x81cbe50
2025-07-01 13:36:05,901 [DEBUG][       Thread-606279][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:36:05,922 [DEBUG][       Thread-606279][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:36:05,922 [ INFO][       Thread-606279][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:36:05,924 [DEBUG][       Thread-606279][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:36:05,924 [DEBUG][       Thread-606279][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:36:05,924 [DEBUG][       Thread-606279][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:36:05,924 [DEBUG][       Thread-606279][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:36:05,924 [DEBUG][       Thread-606279][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:36:05,924 [DEBUG][       Thread-606279][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:36:05,924 [DEBUG][       Thread-606279][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:36:05,924 [DEBUG][       Thread-606279][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:36:05,924 [DEBUG][       Thread-606279][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:36:05,924 [DEBUG][       Thread-606279][   transport.py][1871] : client lang: <none>
2025-07-01 13:36:05,924 [DEBUG][       Thread-606279][   transport.py][1871] : server lang: <none>
2025-07-01 13:36:05,924 [DEBUG][       Thread-606279][   transport.py][1871] : kex follows: False
2025-07-01 13:36:05,924 [DEBUG][       Thread-606279][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:36:05,924 [DEBUG][       Thread-606279][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:36:05,924 [DEBUG][       Thread-606279][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:36:05,924 [DEBUG][       Thread-606279][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:36:05,924 [DEBUG][       Thread-606279][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:36:05,924 [DEBUG][       Thread-606279][   transport.py][1871] : Compression: none
2025-07-01 13:36:05,924 [DEBUG][       Thread-606279][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:36:05,935 [DEBUG][       Thread-606279][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:36:05,935 [DEBUG][       Thread-606279][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:36:05,936 [DEBUG][       Thread-606279][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:36:05,936 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:36:05,936 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:36:05,937 [DEBUG][       Thread-606279][   transport.py][1871] : userauth is OK
2025-07-01 13:36:05,964 [ INFO][       Thread-606279][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:36:05,964 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:36:06,624 [DEBUG][       Thread-606279][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:36:06,624 [DEBUG][       Thread-606279][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:36:06,665 [DEBUG][       Thread-606279][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:36:06,665 [DEBUG][       Thread-606279][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:36:06,669 [DEBUG][       Thread-606279][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:36:06,680 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:36:06,681 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:36:06,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:36:06,685 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:36:06,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:36:06,694 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:36:06,695 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:36:06,696 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:36:06,696 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.482928 -999.00  +13.50  37.08     51   +3.60 1 1 2 1 1   888    0 9.64 -8.90 ----- 34.9 37.1 31.2 59.1 16.6 -24.5 15.6 -25.8 15.7 -24.3 16.6 -23.3
2025-07-01 13:36:06,696 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:36:06,696 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:36:06,696 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.482928
2025-07-01 13:36:06,697 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:36:06,698 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:36:06,698 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:36:06,698 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:36:06,698 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:36:06,698 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:35:42', tmtdew=11.49, humidity=45.82, cloud=0.0, wind=35.25, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:35:24.979', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:36:06,700 [DEBUG][       Thread-606279][   transport.py][1871] : EOF in transport thread
2025-07-01 13:36:06,793 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:36:06,802 [DEBUG][       Thread-606282][   transport.py][1871] : starting thread (client mode): 0x82b1f30
2025-07-01 13:36:06,802 [DEBUG][       Thread-606282][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:36:06,820 [DEBUG][       Thread-606282][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:36:06,820 [ INFO][       Thread-606282][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:36:06,827 [DEBUG][       Thread-606282][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:36:06,828 [DEBUG][       Thread-606282][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:36:06,828 [DEBUG][       Thread-606282][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:36:06,828 [DEBUG][       Thread-606282][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:36:06,828 [DEBUG][       Thread-606282][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:36:06,828 [DEBUG][       Thread-606282][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:36:06,828 [DEBUG][       Thread-606282][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:36:06,828 [DEBUG][       Thread-606282][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:36:06,828 [DEBUG][       Thread-606282][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:36:06,828 [DEBUG][       Thread-606282][   transport.py][1871] : client lang: <none>
2025-07-01 13:36:06,828 [DEBUG][       Thread-606282][   transport.py][1871] : server lang: <none>
2025-07-01 13:36:06,828 [DEBUG][       Thread-606282][   transport.py][1871] : kex follows: False
2025-07-01 13:36:06,828 [DEBUG][       Thread-606282][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:36:06,828 [DEBUG][       Thread-606282][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:36:06,828 [DEBUG][       Thread-606282][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:36:06,828 [DEBUG][       Thread-606282][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:36:06,828 [DEBUG][       Thread-606282][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:36:06,828 [DEBUG][       Thread-606282][   transport.py][1871] : Compression: none
2025-07-01 13:36:06,828 [DEBUG][       Thread-606282][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:36:06,885 [DEBUG][       Thread-606282][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:36:06,886 [DEBUG][       Thread-606282][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:36:06,886 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:36:06,887 [DEBUG][       Thread-606282][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:36:06,888 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:36:06,945 [DEBUG][       Thread-606282][   transport.py][1871] : userauth is OK
2025-07-01 13:36:06,945 [DEBUG][       Thread-606282][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:36:06,945 [DEBUG][       Thread-606282][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:36:06,945 [DEBUG][       Thread-606282][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:36:06,945 [DEBUG][       Thread-606282][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:36:06,965 [ INFO][       Thread-606282][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:36:06,965 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:36:06,966 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:36:08,016 [DEBUG][       Thread-606282][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:36:08,016 [DEBUG][       Thread-606282][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:36:08,063 [DEBUG][       Thread-606282][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:36:08,063 [DEBUG][       Thread-606282][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:36:08,073 [DEBUG][       Thread-606282][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:36:08,082 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:36:08,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-07-01 13:36:08,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-07-01 13:36:08,100 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:36:08,100 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:36:08,100 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:36:08,108 [DEBUG][       Thread-606282][   transport.py][1871] : EOF in transport thread
2025-07-01 13:36:08,507 [DEBUG][Thread-606284 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:36:17,525 [DEBUG][Thread-606285 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:36:18,111 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:36:18,111 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:36:18,111 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:36:18,114 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:36:18,582 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 36, 14), 11.52, 45.73, 0.0, 38.64, 13.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:36:18,582 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:36:14
2025-07-01 13:36:18,667 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:36:18,673 [DEBUG][       Thread-606286][   transport.py][1871] : starting thread (client mode): 0x81a6050
2025-07-01 13:36:18,673 [DEBUG][       Thread-606286][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:36:18,692 [DEBUG][       Thread-606286][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:36:18,692 [ INFO][       Thread-606286][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:36:18,696 [DEBUG][       Thread-606286][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:36:18,696 [DEBUG][       Thread-606286][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:36:18,696 [DEBUG][       Thread-606286][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:36:18,696 [DEBUG][       Thread-606286][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:36:18,696 [DEBUG][       Thread-606286][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:36:18,696 [DEBUG][       Thread-606286][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:36:18,696 [DEBUG][       Thread-606286][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:36:18,696 [DEBUG][       Thread-606286][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:36:18,696 [DEBUG][       Thread-606286][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:36:18,696 [DEBUG][       Thread-606286][   transport.py][1871] : client lang: <none>
2025-07-01 13:36:18,696 [DEBUG][       Thread-606286][   transport.py][1871] : server lang: <none>
2025-07-01 13:36:18,696 [DEBUG][       Thread-606286][   transport.py][1871] : kex follows: False
2025-07-01 13:36:18,696 [DEBUG][       Thread-606286][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:36:18,696 [DEBUG][       Thread-606286][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:36:18,696 [DEBUG][       Thread-606286][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:36:18,696 [DEBUG][       Thread-606286][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:36:18,696 [DEBUG][       Thread-606286][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:36:18,696 [DEBUG][       Thread-606286][   transport.py][1871] : Compression: none
2025-07-01 13:36:18,696 [DEBUG][       Thread-606286][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:36:18,715 [DEBUG][       Thread-606286][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:36:18,716 [DEBUG][       Thread-606286][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:36:18,716 [DEBUG][       Thread-606286][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:36:18,717 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:36:18,717 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:36:18,718 [DEBUG][       Thread-606286][   transport.py][1871] : userauth is OK
2025-07-01 13:36:18,742 [ INFO][       Thread-606286][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:36:18,743 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:36:19,340 [DEBUG][       Thread-606286][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:36:19,340 [DEBUG][       Thread-606286][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:36:19,381 [DEBUG][       Thread-606286][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:36:19,381 [DEBUG][       Thread-606286][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:36:19,383 [DEBUG][       Thread-606286][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:36:19,391 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:36:19,391 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:36:19,393 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:36:19,395 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:36:19,399 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:36:19,400 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:36:19,401 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:36:19,401 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:36:19,402 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.483275 -999.00  +13.60  38.86     50   +3.60 1 1 2 1 1   888    0 9.48 -7.74 ----- 41.7 38.9 22.6 49.2 16.7 -24.4 15.7 -24.9 15.8 -23.8 16.7 -23.4
2025-07-01 13:36:19,402 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:36:19,402 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:36:19,402 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.483275
2025-07-01 13:36:19,402 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:36:19,403 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:36:19,403 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:36:19,403 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:36:19,403 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:36:19,403 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:36:14', tmtdew=11.52, humidity=45.73, cloud=0.0, wind=38.64, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:35:54.960', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:36:19,403 [DEBUG][       Thread-606286][   transport.py][1871] : EOF in transport thread
2025-07-01 13:36:19,486 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:36:19,497 [DEBUG][       Thread-606289][   transport.py][1871] : starting thread (client mode): 0x83c8070
2025-07-01 13:36:19,497 [DEBUG][       Thread-606289][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:36:19,512 [DEBUG][       Thread-606289][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:36:19,512 [ INFO][       Thread-606289][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:36:19,519 [DEBUG][       Thread-606289][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:36:19,519 [DEBUG][       Thread-606289][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:36:19,519 [DEBUG][       Thread-606289][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:36:19,520 [DEBUG][       Thread-606289][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:36:19,520 [DEBUG][       Thread-606289][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:36:19,520 [DEBUG][       Thread-606289][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:36:19,520 [DEBUG][       Thread-606289][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:36:19,520 [DEBUG][       Thread-606289][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:36:19,520 [DEBUG][       Thread-606289][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:36:19,520 [DEBUG][       Thread-606289][   transport.py][1871] : client lang: <none>
2025-07-01 13:36:19,520 [DEBUG][       Thread-606289][   transport.py][1871] : server lang: <none>
2025-07-01 13:36:19,520 [DEBUG][       Thread-606289][   transport.py][1871] : kex follows: False
2025-07-01 13:36:19,520 [DEBUG][       Thread-606289][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:36:19,520 [DEBUG][       Thread-606289][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:36:19,520 [DEBUG][       Thread-606289][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:36:19,520 [DEBUG][       Thread-606289][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:36:19,520 [DEBUG][       Thread-606289][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:36:19,520 [DEBUG][       Thread-606289][   transport.py][1871] : Compression: none
2025-07-01 13:36:19,520 [DEBUG][       Thread-606289][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:36:19,576 [DEBUG][       Thread-606289][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:36:19,576 [DEBUG][       Thread-606289][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:36:19,577 [DEBUG][       Thread-606289][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:36:19,577 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:36:19,578 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:36:19,636 [DEBUG][       Thread-606289][   transport.py][1871] : userauth is OK
2025-07-01 13:36:19,636 [DEBUG][       Thread-606289][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:36:19,637 [DEBUG][       Thread-606289][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:36:19,637 [DEBUG][       Thread-606289][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:36:19,637 [DEBUG][       Thread-606289][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:36:19,656 [ INFO][       Thread-606289][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:36:19,656 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:36:19,657 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:36:20,702 [DEBUG][       Thread-606289][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:36:20,702 [DEBUG][       Thread-606289][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:36:20,753 [DEBUG][       Thread-606289][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:36:20,753 [DEBUG][       Thread-606289][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:36:20,768 [DEBUG][       Thread-606289][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:36:20,777 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:36:20,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-07-01 13:36:20,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-07-01 13:36:20,803 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:36:20,803 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:36:20,804 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:36:20,812 [DEBUG][       Thread-606289][   transport.py][1871] : EOF in transport thread
2025-07-01 13:36:25,600 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:36:25,601 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:36:26,549 [DEBUG][Thread-606291 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:36:30,814 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:36:30,814 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:36:30,815 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:36:30,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-07-01 13:36:31,295 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 36, 14), 11.52, 45.73, 0.0, 38.64, 13.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:36:31,295 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:36:14
2025-07-01 13:36:31,380 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:36:31,387 [DEBUG][       Thread-606292][   transport.py][1871] : starting thread (client mode): 0x81d9480
2025-07-01 13:36:31,387 [DEBUG][       Thread-606292][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:36:31,408 [DEBUG][       Thread-606292][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:36:31,408 [ INFO][       Thread-606292][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:36:31,411 [DEBUG][       Thread-606292][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:36:31,411 [DEBUG][       Thread-606292][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:36:31,411 [DEBUG][       Thread-606292][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:36:31,411 [DEBUG][       Thread-606292][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:36:31,411 [DEBUG][       Thread-606292][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:36:31,411 [DEBUG][       Thread-606292][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:36:31,411 [DEBUG][       Thread-606292][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:36:31,411 [DEBUG][       Thread-606292][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:36:31,411 [DEBUG][       Thread-606292][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:36:31,412 [DEBUG][       Thread-606292][   transport.py][1871] : client lang: <none>
2025-07-01 13:36:31,412 [DEBUG][       Thread-606292][   transport.py][1871] : server lang: <none>
2025-07-01 13:36:31,412 [DEBUG][       Thread-606292][   transport.py][1871] : kex follows: False
2025-07-01 13:36:31,412 [DEBUG][       Thread-606292][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:36:31,412 [DEBUG][       Thread-606292][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:36:31,412 [DEBUG][       Thread-606292][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:36:31,412 [DEBUG][       Thread-606292][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:36:31,412 [DEBUG][       Thread-606292][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:36:31,412 [DEBUG][       Thread-606292][   transport.py][1871] : Compression: none
2025-07-01 13:36:31,412 [DEBUG][       Thread-606292][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:36:31,429 [DEBUG][       Thread-606292][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:36:31,429 [DEBUG][       Thread-606292][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:36:31,430 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:36:31,430 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:36:31,430 [DEBUG][       Thread-606292][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:36:31,431 [DEBUG][       Thread-606292][   transport.py][1871] : userauth is OK
2025-07-01 13:36:31,457 [ INFO][       Thread-606292][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:36:31,457 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:36:32,132 [DEBUG][       Thread-606292][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:36:32,132 [DEBUG][       Thread-606292][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:36:32,173 [DEBUG][       Thread-606292][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:36:32,173 [DEBUG][       Thread-606292][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:36:32,176 [DEBUG][       Thread-606292][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:36:32,190 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:36:32,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:36:32,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:36:32,194 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:36:32,199 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:36:32,201 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:36:32,202 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:36:32,202 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:36:32,202 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.483275 -999.00  +13.60  38.86     50   +3.60 1 1 2 1 1   888    0 9.48 -7.74 ----- 41.7 38.9 22.6 49.2 16.7 -24.4 15.7 -24.9 15.8 -23.8 16.7 -23.4
2025-07-01 13:36:32,202 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:36:32,203 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:36:32,203 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.483275
2025-07-01 13:36:32,203 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:36:32,204 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:36:32,204 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:36:32,204 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:36:32,204 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:36:32,204 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:36:14', tmtdew=11.52, humidity=45.73, cloud=0.0, wind=38.64, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:35:54.960', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:36:32,205 [DEBUG][       Thread-606292][   transport.py][1871] : EOF in transport thread
2025-07-01 13:36:32,288 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:36:32,300 [DEBUG][       Thread-606295][   transport.py][1871] : starting thread (client mode): 0x818c5b0
2025-07-01 13:36:32,300 [DEBUG][       Thread-606295][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:36:32,316 [DEBUG][       Thread-606295][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:36:32,316 [ INFO][       Thread-606295][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:36:32,324 [DEBUG][       Thread-606295][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:36:32,324 [DEBUG][       Thread-606295][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:36:32,324 [DEBUG][       Thread-606295][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:36:32,324 [DEBUG][       Thread-606295][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:36:32,324 [DEBUG][       Thread-606295][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:36:32,324 [DEBUG][       Thread-606295][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:36:32,324 [DEBUG][       Thread-606295][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:36:32,324 [DEBUG][       Thread-606295][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:36:32,324 [DEBUG][       Thread-606295][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:36:32,324 [DEBUG][       Thread-606295][   transport.py][1871] : client lang: <none>
2025-07-01 13:36:32,324 [DEBUG][       Thread-606295][   transport.py][1871] : server lang: <none>
2025-07-01 13:36:32,324 [DEBUG][       Thread-606295][   transport.py][1871] : kex follows: False
2025-07-01 13:36:32,324 [DEBUG][       Thread-606295][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:36:32,324 [DEBUG][       Thread-606295][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:36:32,325 [DEBUG][       Thread-606295][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:36:32,325 [DEBUG][       Thread-606295][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:36:32,325 [DEBUG][       Thread-606295][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:36:32,325 [DEBUG][       Thread-606295][   transport.py][1871] : Compression: none
2025-07-01 13:36:32,325 [DEBUG][       Thread-606295][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:36:32,384 [DEBUG][       Thread-606295][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:36:32,385 [DEBUG][       Thread-606295][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:36:32,385 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:36:32,386 [DEBUG][       Thread-606295][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:36:32,387 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:36:32,440 [DEBUG][       Thread-606295][   transport.py][1871] : userauth is OK
2025-07-01 13:36:32,440 [DEBUG][       Thread-606295][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:36:32,440 [DEBUG][       Thread-606295][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:36:32,440 [DEBUG][       Thread-606295][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:36:32,440 [DEBUG][       Thread-606295][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:36:32,459 [ INFO][       Thread-606295][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:36:32,460 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:36:32,460 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:36:32,509 [DEBUG][Thread-606297 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:36:33,477 [DEBUG][       Thread-606295][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:36:33,477 [DEBUG][       Thread-606295][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:36:33,527 [DEBUG][       Thread-606295][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:36:33,527 [DEBUG][       Thread-606295][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:36:33,536 [DEBUG][       Thread-606295][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:36:33,544 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:36:33,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-07-01 13:36:33,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-07-01 13:36:33,559 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:36:33,559 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:36:33,559 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:36:33,567 [DEBUG][       Thread-606295][   transport.py][1871] : EOF in transport thread
2025-07-01 13:36:35,579 [DEBUG][Thread-606298 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:36:43,570 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:36:43,570 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:36:43,570 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:36:43,573 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:36:44,022 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 36, 14), 11.52, 45.73, 0.0, 38.64, 13.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:36:44,022 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:36:14
2025-07-01 13:36:44,107 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:36:44,111 [DEBUG][       Thread-606299][   transport.py][1871] : starting thread (client mode): 0x81a63b0
2025-07-01 13:36:44,111 [DEBUG][       Thread-606299][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:36:44,132 [DEBUG][       Thread-606299][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:36:44,132 [ INFO][       Thread-606299][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:36:44,135 [DEBUG][       Thread-606299][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:36:44,135 [DEBUG][       Thread-606299][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:36:44,135 [DEBUG][       Thread-606299][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:36:44,135 [DEBUG][       Thread-606299][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:36:44,135 [DEBUG][       Thread-606299][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:36:44,135 [DEBUG][       Thread-606299][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:36:44,135 [DEBUG][       Thread-606299][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:36:44,135 [DEBUG][       Thread-606299][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:36:44,135 [DEBUG][       Thread-606299][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:36:44,135 [DEBUG][       Thread-606299][   transport.py][1871] : client lang: <none>
2025-07-01 13:36:44,135 [DEBUG][       Thread-606299][   transport.py][1871] : server lang: <none>
2025-07-01 13:36:44,135 [DEBUG][       Thread-606299][   transport.py][1871] : kex follows: False
2025-07-01 13:36:44,135 [DEBUG][       Thread-606299][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:36:44,135 [DEBUG][       Thread-606299][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:36:44,135 [DEBUG][       Thread-606299][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:36:44,135 [DEBUG][       Thread-606299][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:36:44,135 [DEBUG][       Thread-606299][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:36:44,135 [DEBUG][       Thread-606299][   transport.py][1871] : Compression: none
2025-07-01 13:36:44,135 [DEBUG][       Thread-606299][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:36:44,152 [DEBUG][       Thread-606299][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:36:44,152 [DEBUG][       Thread-606299][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:36:44,153 [DEBUG][       Thread-606299][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:36:44,153 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:36:44,153 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:36:44,154 [DEBUG][       Thread-606299][   transport.py][1871] : userauth is OK
2025-07-01 13:36:44,167 [ INFO][       Thread-606299][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:36:44,168 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:36:44,599 [DEBUG][Thread-606301 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:36:44,780 [DEBUG][       Thread-606299][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:36:44,781 [DEBUG][       Thread-606299][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:36:44,825 [DEBUG][       Thread-606299][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:36:44,825 [DEBUG][       Thread-606299][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:36:44,828 [DEBUG][       Thread-606299][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:36:44,839 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:36:44,840 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:36:44,842 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:36:44,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:36:44,849 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:36:44,851 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:36:44,852 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:36:44,852 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:36:44,852 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.483275 -999.00  +13.60  38.86     50   +3.60 1 1 2 1 1   888    0 9.48 -7.74 ----- 41.7 38.9 22.6 49.2 16.7 -24.4 15.7 -24.9 15.8 -23.8 16.7 -23.4
2025-07-01 13:36:44,853 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:36:44,853 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:36:44,853 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.483275
2025-07-01 13:36:44,853 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:36:44,854 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:36:44,854 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:36:44,854 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:36:44,854 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:36:44,854 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:36:14', tmtdew=11.52, humidity=45.73, cloud=0.0, wind=38.64, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:35:54.960', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:36:44,855 [DEBUG][       Thread-606299][   transport.py][1871] : EOF in transport thread
2025-07-01 13:36:44,937 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:36:44,946 [DEBUG][       Thread-606303][   transport.py][1871] : starting thread (client mode): 0x75a9480
2025-07-01 13:36:44,947 [DEBUG][       Thread-606303][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:36:44,961 [DEBUG][       Thread-606303][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:36:44,961 [ INFO][       Thread-606303][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:36:44,969 [DEBUG][       Thread-606303][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:36:44,969 [DEBUG][       Thread-606303][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:36:44,969 [DEBUG][       Thread-606303][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:36:44,969 [DEBUG][       Thread-606303][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:36:44,969 [DEBUG][       Thread-606303][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:36:44,969 [DEBUG][       Thread-606303][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:36:44,969 [DEBUG][       Thread-606303][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:36:44,969 [DEBUG][       Thread-606303][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:36:44,969 [DEBUG][       Thread-606303][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:36:44,969 [DEBUG][       Thread-606303][   transport.py][1871] : client lang: <none>
2025-07-01 13:36:44,969 [DEBUG][       Thread-606303][   transport.py][1871] : server lang: <none>
2025-07-01 13:36:44,969 [DEBUG][       Thread-606303][   transport.py][1871] : kex follows: False
2025-07-01 13:36:44,969 [DEBUG][       Thread-606303][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:36:44,969 [DEBUG][       Thread-606303][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:36:44,969 [DEBUG][       Thread-606303][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:36:44,969 [DEBUG][       Thread-606303][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:36:44,970 [DEBUG][       Thread-606303][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:36:44,970 [DEBUG][       Thread-606303][   transport.py][1871] : Compression: none
2025-07-01 13:36:44,970 [DEBUG][       Thread-606303][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:36:45,027 [DEBUG][       Thread-606303][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:36:45,028 [DEBUG][       Thread-606303][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:36:45,028 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:36:45,029 [DEBUG][       Thread-606303][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:36:45,030 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:36:45,088 [DEBUG][       Thread-606303][   transport.py][1871] : userauth is OK
2025-07-01 13:36:45,088 [DEBUG][       Thread-606303][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:36:45,088 [DEBUG][       Thread-606303][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:36:45,088 [DEBUG][       Thread-606303][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:36:45,088 [DEBUG][       Thread-606303][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:36:45,115 [ INFO][       Thread-606303][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:36:45,115 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:36:45,116 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:36:46,153 [DEBUG][       Thread-606303][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:36:46,154 [DEBUG][       Thread-606303][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:36:46,203 [DEBUG][       Thread-606303][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:36:46,203 [DEBUG][       Thread-606303][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:36:46,212 [DEBUG][       Thread-606303][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:36:46,219 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:36:46,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')
2025-07-01 13:36:46,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-07-01 13:36:46,235 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:36:46,235 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:36:46,235 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:36:46,243 [DEBUG][       Thread-606303][   transport.py][1871] : EOF in transport thread
2025-07-01 13:36:53,623 [DEBUG][Thread-606305 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:36:56,246 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:36:56,246 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:36:56,246 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:36:56,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-07-01 13:36:56,735 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 36, 45), 11.43, 46.02, 0.0, 31.97, 13.72, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:36:56,735 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:36:45
2025-07-01 13:36:56,820 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:36:56,826 [DEBUG][       Thread-606306][   transport.py][1871] : starting thread (client mode): 0x8170430
2025-07-01 13:36:56,826 [DEBUG][       Thread-606306][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:36:56,846 [DEBUG][       Thread-606306][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:36:56,846 [ INFO][       Thread-606306][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:36:56,850 [DEBUG][       Thread-606306][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:36:56,850 [DEBUG][       Thread-606306][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:36:56,850 [DEBUG][       Thread-606306][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:36:56,850 [DEBUG][       Thread-606306][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:36:56,850 [DEBUG][       Thread-606306][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:36:56,850 [DEBUG][       Thread-606306][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:36:56,850 [DEBUG][       Thread-606306][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:36:56,850 [DEBUG][       Thread-606306][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:36:56,850 [DEBUG][       Thread-606306][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:36:56,850 [DEBUG][       Thread-606306][   transport.py][1871] : client lang: <none>
2025-07-01 13:36:56,850 [DEBUG][       Thread-606306][   transport.py][1871] : server lang: <none>
2025-07-01 13:36:56,850 [DEBUG][       Thread-606306][   transport.py][1871] : kex follows: False
2025-07-01 13:36:56,850 [DEBUG][       Thread-606306][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:36:56,850 [DEBUG][       Thread-606306][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:36:56,850 [DEBUG][       Thread-606306][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:36:56,850 [DEBUG][       Thread-606306][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:36:56,850 [DEBUG][       Thread-606306][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:36:56,851 [DEBUG][       Thread-606306][   transport.py][1871] : Compression: none
2025-07-01 13:36:56,851 [DEBUG][       Thread-606306][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:36:56,866 [DEBUG][       Thread-606306][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:36:56,866 [DEBUG][       Thread-606306][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:36:56,867 [DEBUG][       Thread-606306][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:36:56,867 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:36:56,867 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:36:56,872 [DEBUG][       Thread-606306][   transport.py][1871] : userauth is OK
2025-07-01 13:36:56,897 [ INFO][       Thread-606306][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:36:56,898 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:36:57,533 [DEBUG][       Thread-606306][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:36:57,533 [DEBUG][       Thread-606306][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:36:57,577 [DEBUG][       Thread-606306][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:36:57,577 [DEBUG][       Thread-606306][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:36:57,581 [DEBUG][       Thread-606306][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:36:57,593 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:36:57,594 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:36:57,596 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:36:57,598 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:36:57,603 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:36:57,605 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:36:57,605 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:36:57,606 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:36:57,606 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.483622 -999.00  +13.70  33.22     50   +3.50 1 1 2 1 1   888    0 9.61 -5.94 ----- 32.8 33.2 24.4 52.4 16.7 -24.0 15.7 -25.3 15.8 -23.4 16.7 -22.7
2025-07-01 13:36:57,606 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:36:57,606 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:36:57,606 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.483622
2025-07-01 13:36:57,607 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:36:57,607 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:36:57,607 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:36:57,607 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:36:57,607 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:36:57,608 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:36:45', tmtdew=11.43, humidity=46.02, cloud=0.0, wind=31.97, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:36:24.941', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:36:57,609 [DEBUG][       Thread-606306][   transport.py][1871] : EOF in transport thread
2025-07-01 13:36:57,690 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:36:57,701 [DEBUG][       Thread-606309][   transport.py][1871] : starting thread (client mode): 0x8393c40
2025-07-01 13:36:57,701 [DEBUG][       Thread-606309][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:36:57,716 [DEBUG][       Thread-606309][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:36:57,716 [ INFO][       Thread-606309][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:36:57,724 [DEBUG][       Thread-606309][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:36:57,724 [DEBUG][       Thread-606309][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:36:57,724 [DEBUG][       Thread-606309][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:36:57,724 [DEBUG][       Thread-606309][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:36:57,725 [DEBUG][       Thread-606309][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:36:57,725 [DEBUG][       Thread-606309][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:36:57,725 [DEBUG][       Thread-606309][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:36:57,725 [DEBUG][       Thread-606309][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:36:57,725 [DEBUG][       Thread-606309][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:36:57,725 [DEBUG][       Thread-606309][   transport.py][1871] : client lang: <none>
2025-07-01 13:36:57,725 [DEBUG][       Thread-606309][   transport.py][1871] : server lang: <none>
2025-07-01 13:36:57,725 [DEBUG][       Thread-606309][   transport.py][1871] : kex follows: False
2025-07-01 13:36:57,725 [DEBUG][       Thread-606309][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:36:57,725 [DEBUG][       Thread-606309][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:36:57,725 [DEBUG][       Thread-606309][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:36:57,725 [DEBUG][       Thread-606309][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:36:57,725 [DEBUG][       Thread-606309][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:36:57,725 [DEBUG][       Thread-606309][   transport.py][1871] : Compression: none
2025-07-01 13:36:57,725 [DEBUG][       Thread-606309][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:36:57,784 [DEBUG][       Thread-606309][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:36:57,784 [DEBUG][       Thread-606309][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:36:57,785 [DEBUG][       Thread-606309][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:36:57,785 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:36:57,786 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:36:57,843 [DEBUG][       Thread-606309][   transport.py][1871] : userauth is OK
2025-07-01 13:36:57,843 [DEBUG][       Thread-606309][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:36:57,844 [DEBUG][       Thread-606309][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:36:57,844 [DEBUG][       Thread-606309][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:36:57,844 [DEBUG][       Thread-606309][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:36:57,863 [ INFO][       Thread-606309][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:36:57,863 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:36:57,864 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:36:58,857 [DEBUG][       Thread-606309][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:36:58,858 [DEBUG][       Thread-606309][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:36:58,908 [DEBUG][       Thread-606309][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:36:58,908 [DEBUG][       Thread-606309][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:36:58,918 [DEBUG][       Thread-606309][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:36:58,927 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:36:58,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-07-01 13:36:58,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-07-01 13:36:58,946 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:36:58,946 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:36:58,946 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:36:58,954 [DEBUG][       Thread-606309][   transport.py][1871] : EOF in transport thread
2025-07-01 13:37:02,645 [DEBUG][Thread-606311 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:37:08,956 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:37:08,956 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:37:08,956 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:37:08,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-07-01 13:37:09,439 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 36, 45), 11.43, 46.02, 0.0, 31.97, 13.72, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:37:09,439 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:36:45
2025-07-01 13:37:09,525 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:37:09,529 [DEBUG][       Thread-606312][   transport.py][1871] : starting thread (client mode): 0x8170dc0
2025-07-01 13:37:09,529 [DEBUG][       Thread-606312][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:37:09,544 [DEBUG][       Thread-606312][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:37:09,544 [ INFO][       Thread-606312][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:37:09,547 [DEBUG][       Thread-606312][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:37:09,547 [DEBUG][       Thread-606312][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:37:09,547 [DEBUG][       Thread-606312][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:37:09,547 [DEBUG][       Thread-606312][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:37:09,547 [DEBUG][       Thread-606312][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:37:09,547 [DEBUG][       Thread-606312][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:37:09,547 [DEBUG][       Thread-606312][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:37:09,547 [DEBUG][       Thread-606312][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:37:09,547 [DEBUG][       Thread-606312][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:37:09,547 [DEBUG][       Thread-606312][   transport.py][1871] : client lang: <none>
2025-07-01 13:37:09,547 [DEBUG][       Thread-606312][   transport.py][1871] : server lang: <none>
2025-07-01 13:37:09,547 [DEBUG][       Thread-606312][   transport.py][1871] : kex follows: False
2025-07-01 13:37:09,547 [DEBUG][       Thread-606312][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:37:09,547 [DEBUG][       Thread-606312][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:37:09,547 [DEBUG][       Thread-606312][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:37:09,547 [DEBUG][       Thread-606312][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:37:09,547 [DEBUG][       Thread-606312][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:37:09,547 [DEBUG][       Thread-606312][   transport.py][1871] : Compression: none
2025-07-01 13:37:09,547 [DEBUG][       Thread-606312][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:37:09,564 [DEBUG][       Thread-606312][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:37:09,565 [DEBUG][       Thread-606312][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:37:09,565 [DEBUG][       Thread-606312][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:37:09,565 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:37:09,565 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:37:09,566 [DEBUG][       Thread-606312][   transport.py][1871] : userauth is OK
2025-07-01 13:37:09,591 [ INFO][       Thread-606312][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:37:09,592 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:37:10,251 [DEBUG][       Thread-606312][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:37:10,251 [DEBUG][       Thread-606312][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:37:10,293 [DEBUG][       Thread-606312][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:37:10,293 [DEBUG][       Thread-606312][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:37:10,296 [DEBUG][       Thread-606312][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:37:10,307 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:37:10,308 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:37:10,309 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:37:10,311 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:37:10,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:37:10,319 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:37:10,319 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:37:10,319 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:37:10,320 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.483622 -999.00  +13.70  33.22     50   +3.50 1 1 2 1 1   888    0 9.61 -5.94 ----- 32.8 33.2 24.4 52.4 16.7 -24.0 15.7 -25.3 15.8 -23.4 16.7 -22.7
2025-07-01 13:37:10,320 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:37:10,320 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:37:10,320 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.483622
2025-07-01 13:37:10,320 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:37:10,321 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:37:10,321 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:37:10,321 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:37:10,321 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:37:10,321 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:36:45', tmtdew=11.43, humidity=46.02, cloud=0.0, wind=31.97, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:36:24.941', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:37:10,322 [DEBUG][       Thread-606312][   transport.py][1871] : EOF in transport thread
2025-07-01 13:37:10,405 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:37:10,415 [DEBUG][       Thread-606315][   transport.py][1871] : starting thread (client mode): 0x81047c0
2025-07-01 13:37:10,415 [DEBUG][       Thread-606315][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:37:10,430 [DEBUG][       Thread-606315][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:37:10,430 [ INFO][       Thread-606315][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:37:10,438 [DEBUG][       Thread-606315][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:37:10,438 [DEBUG][       Thread-606315][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:37:10,438 [DEBUG][       Thread-606315][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:37:10,438 [DEBUG][       Thread-606315][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:37:10,438 [DEBUG][       Thread-606315][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:37:10,438 [DEBUG][       Thread-606315][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:37:10,438 [DEBUG][       Thread-606315][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:37:10,438 [DEBUG][       Thread-606315][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:37:10,438 [DEBUG][       Thread-606315][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:37:10,438 [DEBUG][       Thread-606315][   transport.py][1871] : client lang: <none>
2025-07-01 13:37:10,438 [DEBUG][       Thread-606315][   transport.py][1871] : server lang: <none>
2025-07-01 13:37:10,438 [DEBUG][       Thread-606315][   transport.py][1871] : kex follows: False
2025-07-01 13:37:10,438 [DEBUG][       Thread-606315][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:37:10,438 [DEBUG][       Thread-606315][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:37:10,438 [DEBUG][       Thread-606315][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:37:10,438 [DEBUG][       Thread-606315][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:37:10,438 [DEBUG][       Thread-606315][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:37:10,438 [DEBUG][       Thread-606315][   transport.py][1871] : Compression: none
2025-07-01 13:37:10,438 [DEBUG][       Thread-606315][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:37:10,493 [DEBUG][       Thread-606315][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:37:10,493 [DEBUG][       Thread-606315][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:37:10,493 [DEBUG][       Thread-606315][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:37:10,493 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:37:10,493 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:37:10,551 [DEBUG][       Thread-606315][   transport.py][1871] : userauth is OK
2025-07-01 13:37:10,551 [DEBUG][       Thread-606315][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:37:10,551 [DEBUG][       Thread-606315][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:37:10,552 [DEBUG][       Thread-606315][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:37:10,552 [DEBUG][       Thread-606315][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:37:10,570 [ INFO][       Thread-606315][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:37:10,571 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:37:10,571 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:37:11,586 [DEBUG][       Thread-606315][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:37:11,586 [DEBUG][       Thread-606315][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:37:11,635 [DEBUG][       Thread-606315][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:37:11,635 [DEBUG][       Thread-606315][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:37:11,643 [DEBUG][       Thread-606315][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:37:11,651 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:37:11,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-07-01 13:37:11,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-07-01 13:37:11,667 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:37:11,667 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:37:11,667 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:37:11,675 [DEBUG][       Thread-606315][   transport.py][1871] : EOF in transport thread
2025-07-01 13:37:11,675 [DEBUG][Thread-606317 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:37:20,694 [DEBUG][Thread-606318 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:37:21,676 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:37:21,676 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:37:21,676 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:37:21,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-07-01 13:37:22,157 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 37, 17), 11.54, 45.7, 0.0, 32.41, 13.77, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:37:22,157 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:37:17
2025-07-01 13:37:22,242 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:37:22,248 [DEBUG][       Thread-606319][   transport.py][1871] : starting thread (client mode): 0x8172f50
2025-07-01 13:37:22,248 [DEBUG][       Thread-606319][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:37:22,269 [DEBUG][       Thread-606319][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:37:22,269 [ INFO][       Thread-606319][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:37:22,272 [DEBUG][       Thread-606319][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:37:22,272 [DEBUG][       Thread-606319][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:37:22,272 [DEBUG][       Thread-606319][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:37:22,272 [DEBUG][       Thread-606319][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:37:22,272 [DEBUG][       Thread-606319][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:37:22,272 [DEBUG][       Thread-606319][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:37:22,272 [DEBUG][       Thread-606319][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:37:22,272 [DEBUG][       Thread-606319][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:37:22,272 [DEBUG][       Thread-606319][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:37:22,272 [DEBUG][       Thread-606319][   transport.py][1871] : client lang: <none>
2025-07-01 13:37:22,272 [DEBUG][       Thread-606319][   transport.py][1871] : server lang: <none>
2025-07-01 13:37:22,272 [DEBUG][       Thread-606319][   transport.py][1871] : kex follows: False
2025-07-01 13:37:22,272 [DEBUG][       Thread-606319][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:37:22,272 [DEBUG][       Thread-606319][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:37:22,272 [DEBUG][       Thread-606319][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:37:22,273 [DEBUG][       Thread-606319][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:37:22,273 [DEBUG][       Thread-606319][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:37:22,273 [DEBUG][       Thread-606319][   transport.py][1871] : Compression: none
2025-07-01 13:37:22,273 [DEBUG][       Thread-606319][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:37:22,290 [DEBUG][       Thread-606319][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:37:22,291 [DEBUG][       Thread-606319][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:37:22,291 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:37:22,292 [DEBUG][       Thread-606319][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:37:22,292 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:37:22,293 [DEBUG][       Thread-606319][   transport.py][1871] : userauth is OK
2025-07-01 13:37:22,306 [ INFO][       Thread-606319][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:37:22,307 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:37:22,974 [DEBUG][       Thread-606319][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:37:22,974 [DEBUG][       Thread-606319][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:37:23,020 [DEBUG][       Thread-606319][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:37:23,021 [DEBUG][       Thread-606319][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:37:23,023 [DEBUG][       Thread-606319][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:37:23,036 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:37:23,036 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:37:23,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:37:23,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:37:23,044 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:37:23,046 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:37:23,046 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:37:23,046 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:37:23,047 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.483622 -999.00  +13.70  33.22     50   +3.50 1 1 2 1 1   888    0 9.61 -5.94 ----- 32.8 33.2 24.4 52.4 16.7 -24.0 15.7 -25.3 15.8 -23.4 16.7 -22.7
2025-07-01 13:37:23,047 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:37:23,047 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:37:23,047 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.483622
2025-07-01 13:37:23,047 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:37:23,048 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:37:23,048 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:37:23,048 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:37:23,048 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:37:23,048 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:37:17', tmtdew=11.54, humidity=45.7, cloud=0.0, wind=32.41, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:36:24.941', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:37:23,049 [DEBUG][       Thread-606319][   transport.py][1871] : EOF in transport thread
2025-07-01 13:37:23,122 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:37:23,133 [DEBUG][       Thread-606322][   transport.py][1871] : starting thread (client mode): 0x818fdf0
2025-07-01 13:37:23,133 [DEBUG][       Thread-606322][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:37:23,148 [DEBUG][       Thread-606322][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:37:23,148 [ INFO][       Thread-606322][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:37:23,156 [DEBUG][       Thread-606322][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:37:23,156 [DEBUG][       Thread-606322][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:37:23,156 [DEBUG][       Thread-606322][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:37:23,156 [DEBUG][       Thread-606322][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:37:23,156 [DEBUG][       Thread-606322][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:37:23,156 [DEBUG][       Thread-606322][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:37:23,156 [DEBUG][       Thread-606322][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:37:23,156 [DEBUG][       Thread-606322][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:37:23,156 [DEBUG][       Thread-606322][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:37:23,156 [DEBUG][       Thread-606322][   transport.py][1871] : client lang: <none>
2025-07-01 13:37:23,156 [DEBUG][       Thread-606322][   transport.py][1871] : server lang: <none>
2025-07-01 13:37:23,156 [DEBUG][       Thread-606322][   transport.py][1871] : kex follows: False
2025-07-01 13:37:23,156 [DEBUG][       Thread-606322][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:37:23,156 [DEBUG][       Thread-606322][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:37:23,156 [DEBUG][       Thread-606322][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:37:23,156 [DEBUG][       Thread-606322][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:37:23,156 [DEBUG][       Thread-606322][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:37:23,156 [DEBUG][       Thread-606322][   transport.py][1871] : Compression: none
2025-07-01 13:37:23,156 [DEBUG][       Thread-606322][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:37:23,215 [DEBUG][       Thread-606322][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:37:23,215 [DEBUG][       Thread-606322][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:37:23,215 [DEBUG][       Thread-606322][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:37:23,215 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:37:23,215 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:37:23,270 [DEBUG][       Thread-606322][   transport.py][1871] : userauth is OK
2025-07-01 13:37:23,270 [DEBUG][       Thread-606322][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:37:23,270 [DEBUG][       Thread-606322][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:37:23,270 [DEBUG][       Thread-606322][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:37:23,270 [DEBUG][       Thread-606322][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:37:23,286 [ INFO][       Thread-606322][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:37:23,286 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:37:23,286 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:37:24,343 [DEBUG][       Thread-606322][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:37:24,344 [DEBUG][       Thread-606322][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:37:24,392 [DEBUG][       Thread-606322][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:37:24,392 [DEBUG][       Thread-606322][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:37:24,402 [DEBUG][       Thread-606322][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:37:24,411 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:37:24,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')
2025-07-01 13:37:24,422 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 13:37:24,431 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:37:24,432 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:37:24,432 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:37:24,441 [DEBUG][       Thread-606322][   transport.py][1871] : EOF in transport thread
2025-07-01 13:37:25,740 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:37:25,741 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:37:29,715 [DEBUG][Thread-606324 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:37:32,541 [DEBUG][Thread-606325 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:37:34,443 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:37:34,443 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:37:34,443 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:37:34,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-07-01 13:37:34,933 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 37, 17), 11.54, 45.7, 0.0, 32.41, 13.77, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:37:34,933 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:37:17
2025-07-01 13:37:35,018 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:37:35,022 [DEBUG][       Thread-606326][   transport.py][1871] : starting thread (client mode): 0x8171ed0
2025-07-01 13:37:35,022 [DEBUG][       Thread-606326][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:37:35,044 [DEBUG][       Thread-606326][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:37:35,044 [ INFO][       Thread-606326][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:37:35,047 [DEBUG][       Thread-606326][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:37:35,047 [DEBUG][       Thread-606326][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:37:35,047 [DEBUG][       Thread-606326][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:37:35,047 [DEBUG][       Thread-606326][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:37:35,047 [DEBUG][       Thread-606326][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:37:35,047 [DEBUG][       Thread-606326][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:37:35,047 [DEBUG][       Thread-606326][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:37:35,047 [DEBUG][       Thread-606326][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:37:35,047 [DEBUG][       Thread-606326][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:37:35,047 [DEBUG][       Thread-606326][   transport.py][1871] : client lang: <none>
2025-07-01 13:37:35,047 [DEBUG][       Thread-606326][   transport.py][1871] : server lang: <none>
2025-07-01 13:37:35,047 [DEBUG][       Thread-606326][   transport.py][1871] : kex follows: False
2025-07-01 13:37:35,047 [DEBUG][       Thread-606326][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:37:35,047 [DEBUG][       Thread-606326][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:37:35,047 [DEBUG][       Thread-606326][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:37:35,047 [DEBUG][       Thread-606326][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:37:35,048 [DEBUG][       Thread-606326][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:37:35,048 [DEBUG][       Thread-606326][   transport.py][1871] : Compression: none
2025-07-01 13:37:35,048 [DEBUG][       Thread-606326][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:37:35,066 [DEBUG][       Thread-606326][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:37:35,067 [DEBUG][       Thread-606326][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:37:35,067 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:37:35,068 [DEBUG][       Thread-606326][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:37:35,068 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:37:35,069 [DEBUG][       Thread-606326][   transport.py][1871] : userauth is OK
2025-07-01 13:37:35,094 [ INFO][       Thread-606326][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:37:35,095 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:37:35,794 [DEBUG][       Thread-606326][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:37:35,794 [DEBUG][       Thread-606326][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:37:35,837 [DEBUG][       Thread-606326][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:37:35,837 [DEBUG][       Thread-606326][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:37:35,841 [DEBUG][       Thread-606326][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:37:35,853 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:37:35,853 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:37:35,855 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:37:35,857 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:37:35,863 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:37:35,865 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:37:35,866 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:37:35,866 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:37:35,866 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.483970 -999.00  +13.80  25.47     50   +3.60 1 1 1 1 1   888    0 9.80 -3.67 ----- 41.6 25.5 16.9 36.7 16.8 -24.5 15.8 -24.9 16.0 -22.6 16.9 -22.0
2025-07-01 13:37:35,866 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:37:35,866 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:37:35,866 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.483970
2025-07-01 13:37:35,867 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:37:35,867 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:37:35,868 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:37:35,868 [DEBUG][       Thread-606326][   transport.py][1871] : EOF in transport thread
2025-07-01 13:37:35,868 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:37:35,869 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:37:35,869 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:37:17', tmtdew=11.54, humidity=45.7, cloud=0.0, wind=32.41, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:36:55.008', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:37:35,952 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:37:35,961 [DEBUG][       Thread-606329][   transport.py][1871] : starting thread (client mode): 0x82b3670
2025-07-01 13:37:35,961 [DEBUG][       Thread-606329][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:37:35,977 [DEBUG][       Thread-606329][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:37:35,977 [ INFO][       Thread-606329][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:37:35,985 [DEBUG][       Thread-606329][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:37:35,985 [DEBUG][       Thread-606329][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:37:35,985 [DEBUG][       Thread-606329][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:37:35,985 [DEBUG][       Thread-606329][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:37:35,985 [DEBUG][       Thread-606329][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:37:35,985 [DEBUG][       Thread-606329][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:37:35,985 [DEBUG][       Thread-606329][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:37:35,985 [DEBUG][       Thread-606329][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:37:35,985 [DEBUG][       Thread-606329][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:37:35,985 [DEBUG][       Thread-606329][   transport.py][1871] : client lang: <none>
2025-07-01 13:37:35,985 [DEBUG][       Thread-606329][   transport.py][1871] : server lang: <none>
2025-07-01 13:37:35,985 [DEBUG][       Thread-606329][   transport.py][1871] : kex follows: False
2025-07-01 13:37:35,986 [DEBUG][       Thread-606329][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:37:35,986 [DEBUG][       Thread-606329][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:37:35,986 [DEBUG][       Thread-606329][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:37:35,986 [DEBUG][       Thread-606329][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:37:35,986 [DEBUG][       Thread-606329][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:37:35,986 [DEBUG][       Thread-606329][   transport.py][1871] : Compression: none
2025-07-01 13:37:35,986 [DEBUG][       Thread-606329][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:37:36,042 [DEBUG][       Thread-606329][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:37:36,042 [DEBUG][       Thread-606329][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:37:36,043 [DEBUG][       Thread-606329][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:37:36,043 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:37:36,044 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:37:36,105 [DEBUG][       Thread-606329][   transport.py][1871] : userauth is OK
2025-07-01 13:37:36,106 [DEBUG][       Thread-606329][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:37:36,106 [DEBUG][       Thread-606329][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:37:36,106 [DEBUG][       Thread-606329][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:37:36,106 [DEBUG][       Thread-606329][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:37:36,128 [ INFO][       Thread-606329][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:37:36,129 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:37:36,129 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:37:37,185 [DEBUG][       Thread-606329][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:37:37,186 [DEBUG][       Thread-606329][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:37:37,236 [DEBUG][       Thread-606329][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:37:37,236 [DEBUG][       Thread-606329][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:37:37,245 [DEBUG][       Thread-606329][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:37:37,254 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:37:37,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-07-01 13:37:37,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-07-01 13:37:37,274 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:37:37,274 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:37:37,275 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:37:37,284 [DEBUG][       Thread-606329][   transport.py][1871] : EOF in transport thread
2025-07-01 13:37:38,752 [DEBUG][Thread-606331 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:37:47,284 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:37:47,284 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:37:47,284 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:37:47,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-07-01 13:37:47,771 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 37, 17), 11.54, 45.7, 0.0, 32.41, 13.77, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:37:47,771 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:37:17
2025-07-01 13:37:47,773 [DEBUG][Thread-606332 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:37:47,857 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:37:47,862 [DEBUG][       Thread-606333][   transport.py][1871] : starting thread (client mode): 0x8172c80
2025-07-01 13:37:47,862 [DEBUG][       Thread-606333][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:37:47,884 [DEBUG][       Thread-606333][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:37:47,884 [ INFO][       Thread-606333][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:37:47,888 [DEBUG][       Thread-606333][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:37:47,888 [DEBUG][       Thread-606333][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:37:47,888 [DEBUG][       Thread-606333][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:37:47,888 [DEBUG][       Thread-606333][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:37:47,888 [DEBUG][       Thread-606333][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:37:47,888 [DEBUG][       Thread-606333][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:37:47,888 [DEBUG][       Thread-606333][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:37:47,888 [DEBUG][       Thread-606333][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:37:47,888 [DEBUG][       Thread-606333][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:37:47,888 [DEBUG][       Thread-606333][   transport.py][1871] : client lang: <none>
2025-07-01 13:37:47,888 [DEBUG][       Thread-606333][   transport.py][1871] : server lang: <none>
2025-07-01 13:37:47,888 [DEBUG][       Thread-606333][   transport.py][1871] : kex follows: False
2025-07-01 13:37:47,888 [DEBUG][       Thread-606333][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:37:47,888 [DEBUG][       Thread-606333][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:37:47,888 [DEBUG][       Thread-606333][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:37:47,888 [DEBUG][       Thread-606333][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:37:47,888 [DEBUG][       Thread-606333][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:37:47,888 [DEBUG][       Thread-606333][   transport.py][1871] : Compression: none
2025-07-01 13:37:47,888 [DEBUG][       Thread-606333][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:37:47,904 [DEBUG][       Thread-606333][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:37:47,905 [DEBUG][       Thread-606333][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:37:47,905 [DEBUG][       Thread-606333][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:37:47,905 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:37:47,906 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:37:47,907 [DEBUG][       Thread-606333][   transport.py][1871] : userauth is OK
2025-07-01 13:37:47,931 [ INFO][       Thread-606333][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:37:47,932 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:37:48,581 [DEBUG][       Thread-606333][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:37:48,581 [DEBUG][       Thread-606333][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:37:48,625 [DEBUG][       Thread-606333][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:37:48,625 [DEBUG][       Thread-606333][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:37:48,628 [DEBUG][       Thread-606333][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:37:48,642 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:37:48,644 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:37:48,646 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:37:48,648 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:37:48,653 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:37:48,655 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:37:48,656 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:37:48,656 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:37:48,657 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.483970 -999.00  +13.80  25.47     50   +3.60 1 1 1 1 1   888    0 9.80 -3.67 ----- 41.6 25.5 16.9 36.7 16.8 -24.5 15.8 -24.9 16.0 -22.6 16.9 -22.0
2025-07-01 13:37:48,657 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:37:48,657 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:37:48,657 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.483970
2025-07-01 13:37:48,657 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:37:48,658 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:37:48,658 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:37:48,658 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:37:48,658 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:37:48,658 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:37:17', tmtdew=11.54, humidity=45.7, cloud=0.0, wind=32.41, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:36:55.008', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:37:48,659 [DEBUG][       Thread-606333][   transport.py][1871] : EOF in transport thread
2025-07-01 13:37:48,745 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:37:48,756 [DEBUG][       Thread-606336][   transport.py][1871] : starting thread (client mode): 0x81e4340
2025-07-01 13:37:48,757 [DEBUG][       Thread-606336][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:37:48,772 [DEBUG][       Thread-606336][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:37:48,772 [ INFO][       Thread-606336][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:37:48,779 [DEBUG][       Thread-606336][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:37:48,780 [DEBUG][       Thread-606336][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:37:48,780 [DEBUG][       Thread-606336][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:37:48,780 [DEBUG][       Thread-606336][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:37:48,780 [DEBUG][       Thread-606336][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:37:48,780 [DEBUG][       Thread-606336][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:37:48,780 [DEBUG][       Thread-606336][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:37:48,780 [DEBUG][       Thread-606336][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:37:48,780 [DEBUG][       Thread-606336][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:37:48,780 [DEBUG][       Thread-606336][   transport.py][1871] : client lang: <none>
2025-07-01 13:37:48,780 [DEBUG][       Thread-606336][   transport.py][1871] : server lang: <none>
2025-07-01 13:37:48,780 [DEBUG][       Thread-606336][   transport.py][1871] : kex follows: False
2025-07-01 13:37:48,780 [DEBUG][       Thread-606336][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:37:48,780 [DEBUG][       Thread-606336][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:37:48,780 [DEBUG][       Thread-606336][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:37:48,780 [DEBUG][       Thread-606336][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:37:48,780 [DEBUG][       Thread-606336][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:37:48,780 [DEBUG][       Thread-606336][   transport.py][1871] : Compression: none
2025-07-01 13:37:48,780 [DEBUG][       Thread-606336][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:37:48,839 [DEBUG][       Thread-606336][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:37:48,839 [DEBUG][       Thread-606336][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:37:48,840 [DEBUG][       Thread-606336][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:37:48,840 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:37:48,841 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:37:48,898 [DEBUG][       Thread-606336][   transport.py][1871] : userauth is OK
2025-07-01 13:37:48,898 [DEBUG][       Thread-606336][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:37:48,898 [DEBUG][       Thread-606336][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:37:48,898 [DEBUG][       Thread-606336][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:37:48,898 [DEBUG][       Thread-606336][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:37:48,918 [ INFO][       Thread-606336][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:37:48,918 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:37:48,918 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:37:49,959 [DEBUG][       Thread-606336][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:37:49,959 [DEBUG][       Thread-606336][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:37:50,007 [DEBUG][       Thread-606336][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:37:50,007 [DEBUG][       Thread-606336][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:37:50,016 [DEBUG][       Thread-606336][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:37:50,023 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:37: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-07-01 13:37:50,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-07-01 13:37:50,039 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:37:50,039 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:37:50,039 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:37:50,047 [DEBUG][       Thread-606336][   transport.py][1871] : EOF in transport thread
2025-07-01 13:37:56,791 [DEBUG][Thread-606338 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:38:00,048 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:38:00,048 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:38:00,048 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:38:00,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-07-01 13:38:00,521 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 37, 50), 11.61, 45.47, 0.0, 32.71, 13.73, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:38:00,521 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:37:50
2025-07-01 13:38:00,606 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:38:00,611 [DEBUG][       Thread-606339][   transport.py][1871] : starting thread (client mode): 0x81db8e0
2025-07-01 13:38:00,611 [DEBUG][       Thread-606339][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:38:00,632 [DEBUG][       Thread-606339][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:38:00,632 [ INFO][       Thread-606339][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:38:00,635 [DEBUG][       Thread-606339][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:38:00,636 [DEBUG][       Thread-606339][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:38:00,636 [DEBUG][       Thread-606339][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:38:00,636 [DEBUG][       Thread-606339][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:38:00,636 [DEBUG][       Thread-606339][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:38:00,636 [DEBUG][       Thread-606339][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:38:00,636 [DEBUG][       Thread-606339][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:38:00,636 [DEBUG][       Thread-606339][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:38:00,636 [DEBUG][       Thread-606339][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:38:00,636 [DEBUG][       Thread-606339][   transport.py][1871] : client lang: <none>
2025-07-01 13:38:00,636 [DEBUG][       Thread-606339][   transport.py][1871] : server lang: <none>
2025-07-01 13:38:00,636 [DEBUG][       Thread-606339][   transport.py][1871] : kex follows: False
2025-07-01 13:38:00,636 [DEBUG][       Thread-606339][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:38:00,636 [DEBUG][       Thread-606339][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:38:00,636 [DEBUG][       Thread-606339][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:38:00,636 [DEBUG][       Thread-606339][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:38:00,636 [DEBUG][       Thread-606339][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:38:00,636 [DEBUG][       Thread-606339][   transport.py][1871] : Compression: none
2025-07-01 13:38:00,636 [DEBUG][       Thread-606339][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:38:00,652 [DEBUG][       Thread-606339][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:38:00,653 [DEBUG][       Thread-606339][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:38:00,653 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:38:00,654 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:38:00,654 [DEBUG][       Thread-606339][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:38:00,655 [DEBUG][       Thread-606339][   transport.py][1871] : userauth is OK
2025-07-01 13:38:00,668 [ INFO][       Thread-606339][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:38:00,668 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:38:01,295 [DEBUG][       Thread-606339][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:38:01,295 [DEBUG][       Thread-606339][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:38:01,337 [DEBUG][       Thread-606339][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:38:01,337 [DEBUG][       Thread-606339][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:38:01,340 [DEBUG][       Thread-606339][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:38:01,352 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:38:01,352 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:38:01,354 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:38:01,356 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:38:01,362 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:38:01,364 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:38:01,364 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:38:01,365 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:38:01,365 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.484317 -999.00  +13.60  27.21     50   +3.70 1 1 1 1 1   888    0 9.77 -3.02 ----- 35.6 27.2 9.7 49.4 16.8 -24.5 15.8 -25.8 15.9 -23.2 16.8 -22.0
2025-07-01 13:38:01,365 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:38:01,365 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:38:01,365 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.484317
2025-07-01 13:38:01,365 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:38:01,366 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:38:01,366 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:38:01,366 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:38:01,366 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:38:01,366 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:37:50', tmtdew=11.61, humidity=45.47, cloud=0.0, wind=32.71, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:37:24.989', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:38:01,367 [DEBUG][       Thread-606339][   transport.py][1871] : EOF in transport thread
2025-07-01 13:38:01,450 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:38:01,460 [DEBUG][       Thread-606342][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 13:38:01,460 [DEBUG][       Thread-606342][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:38:01,474 [DEBUG][       Thread-606342][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:38:01,474 [ INFO][       Thread-606342][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:38:01,482 [DEBUG][       Thread-606342][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:38:01,482 [DEBUG][       Thread-606342][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:38:01,482 [DEBUG][       Thread-606342][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:38:01,482 [DEBUG][       Thread-606342][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:38:01,482 [DEBUG][       Thread-606342][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:38:01,482 [DEBUG][       Thread-606342][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:38:01,482 [DEBUG][       Thread-606342][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:38:01,482 [DEBUG][       Thread-606342][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:38:01,482 [DEBUG][       Thread-606342][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:38:01,482 [DEBUG][       Thread-606342][   transport.py][1871] : client lang: <none>
2025-07-01 13:38:01,482 [DEBUG][       Thread-606342][   transport.py][1871] : server lang: <none>
2025-07-01 13:38:01,482 [DEBUG][       Thread-606342][   transport.py][1871] : kex follows: False
2025-07-01 13:38:01,482 [DEBUG][       Thread-606342][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:38:01,482 [DEBUG][       Thread-606342][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:38:01,482 [DEBUG][       Thread-606342][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:38:01,482 [DEBUG][       Thread-606342][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:38:01,482 [DEBUG][       Thread-606342][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:38:01,482 [DEBUG][       Thread-606342][   transport.py][1871] : Compression: none
2025-07-01 13:38:01,483 [DEBUG][       Thread-606342][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:38:01,546 [DEBUG][       Thread-606342][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:38:01,547 [DEBUG][       Thread-606342][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:38:01,548 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:38:01,548 [DEBUG][       Thread-606342][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:38:01,549 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:38:01,605 [DEBUG][       Thread-606342][   transport.py][1871] : userauth is OK
2025-07-01 13:38:01,605 [DEBUG][       Thread-606342][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:38:01,606 [DEBUG][       Thread-606342][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:38:01,606 [DEBUG][       Thread-606342][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:38:01,606 [DEBUG][       Thread-606342][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:38:01,625 [ INFO][       Thread-606342][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:38:01,625 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:38:01,626 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:38:02,642 [DEBUG][       Thread-606342][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:38:02,642 [DEBUG][       Thread-606342][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:38:02,692 [DEBUG][       Thread-606342][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:38:02,692 [DEBUG][       Thread-606342][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:38:02,702 [DEBUG][       Thread-606342][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:38:02,711 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:38:02,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')
2025-07-01 13:38:02,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') -> 00000000
2025-07-01 13:38:02,730 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:38:02,730 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:38:02,731 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:38:02,739 [DEBUG][       Thread-606342][   transport.py][1871] : EOF in transport thread
2025-07-01 13:38:05,814 [DEBUG][Thread-606344 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:38:12,741 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:38:12,741 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:38:12,741 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:38:12,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-07-01 13:38:13,203 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 37, 50), 11.61, 45.47, 0.0, 32.71, 13.73, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:38:13,203 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:37:50
2025-07-01 13:38:13,289 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:38:13,293 [DEBUG][       Thread-606345][   transport.py][1871] : starting thread (client mode): 0x8173670
2025-07-01 13:38:13,293 [DEBUG][       Thread-606345][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:38:13,308 [DEBUG][       Thread-606345][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:38:13,308 [ INFO][       Thread-606345][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:38:13,311 [DEBUG][       Thread-606345][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:38:13,312 [DEBUG][       Thread-606345][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:38:13,312 [DEBUG][       Thread-606345][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:38:13,312 [DEBUG][       Thread-606345][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:38:13,312 [DEBUG][       Thread-606345][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:38:13,312 [DEBUG][       Thread-606345][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:38:13,312 [DEBUG][       Thread-606345][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:38:13,312 [DEBUG][       Thread-606345][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:38:13,312 [DEBUG][       Thread-606345][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:38:13,312 [DEBUG][       Thread-606345][   transport.py][1871] : client lang: <none>
2025-07-01 13:38:13,312 [DEBUG][       Thread-606345][   transport.py][1871] : server lang: <none>
2025-07-01 13:38:13,312 [DEBUG][       Thread-606345][   transport.py][1871] : kex follows: False
2025-07-01 13:38:13,312 [DEBUG][       Thread-606345][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:38:13,312 [DEBUG][       Thread-606345][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:38:13,312 [DEBUG][       Thread-606345][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:38:13,312 [DEBUG][       Thread-606345][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:38:13,312 [DEBUG][       Thread-606345][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:38:13,312 [DEBUG][       Thread-606345][   transport.py][1871] : Compression: none
2025-07-01 13:38:13,312 [DEBUG][       Thread-606345][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:38:13,328 [DEBUG][       Thread-606345][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:38:13,328 [DEBUG][       Thread-606345][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:38:13,329 [DEBUG][       Thread-606345][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:38:13,329 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:38:13,329 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:38:13,330 [DEBUG][       Thread-606345][   transport.py][1871] : userauth is OK
2025-07-01 13:38:13,344 [ INFO][       Thread-606345][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:38:13,345 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:38:13,983 [DEBUG][       Thread-606345][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:38:13,983 [DEBUG][       Thread-606345][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:38:14,025 [DEBUG][       Thread-606345][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:38:14,025 [DEBUG][       Thread-606345][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:38:14,028 [DEBUG][       Thread-606345][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:38:14,040 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:38:14,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:38:14,042 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:38:14,044 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:38:14,049 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:38:14,050 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:38:14,051 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:38:14,051 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:38:14,051 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.484317 -999.00  +13.60  27.21     50   +3.70 1 1 1 1 1   888    0 9.77 -3.02 ----- 35.6 27.2 9.7 49.4 16.8 -24.5 15.8 -25.8 15.9 -23.2 16.8 -22.0
2025-07-01 13:38:14,051 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:38:14,052 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:38:14,052 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.484317
2025-07-01 13:38:14,052 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:38:14,053 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:38:14,053 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:38:14,053 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:38:14,053 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:38:14,053 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:37:50', tmtdew=11.61, humidity=45.47, cloud=0.0, wind=32.71, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:37:24.989', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:38:14,054 [DEBUG][       Thread-606345][   transport.py][1871] : EOF in transport thread
2025-07-01 13:38:14,136 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:38:14,149 [DEBUG][       Thread-606348][   transport.py][1871] : starting thread (client mode): 0x82b3670
2025-07-01 13:38:14,149 [DEBUG][       Thread-606348][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:38:14,164 [DEBUG][       Thread-606348][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:38:14,164 [ INFO][       Thread-606348][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:38:14,172 [DEBUG][       Thread-606348][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:38:14,172 [DEBUG][       Thread-606348][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:38:14,172 [DEBUG][       Thread-606348][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:38:14,172 [DEBUG][       Thread-606348][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:38:14,172 [DEBUG][       Thread-606348][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:38:14,172 [DEBUG][       Thread-606348][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:38:14,172 [DEBUG][       Thread-606348][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:38:14,172 [DEBUG][       Thread-606348][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:38:14,172 [DEBUG][       Thread-606348][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:38:14,172 [DEBUG][       Thread-606348][   transport.py][1871] : client lang: <none>
2025-07-01 13:38:14,172 [DEBUG][       Thread-606348][   transport.py][1871] : server lang: <none>
2025-07-01 13:38:14,172 [DEBUG][       Thread-606348][   transport.py][1871] : kex follows: False
2025-07-01 13:38:14,172 [DEBUG][       Thread-606348][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:38:14,172 [DEBUG][       Thread-606348][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:38:14,172 [DEBUG][       Thread-606348][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:38:14,172 [DEBUG][       Thread-606348][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:38:14,172 [DEBUG][       Thread-606348][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:38:14,172 [DEBUG][       Thread-606348][   transport.py][1871] : Compression: none
2025-07-01 13:38:14,172 [DEBUG][       Thread-606348][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:38:14,234 [DEBUG][       Thread-606348][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:38:14,235 [DEBUG][       Thread-606348][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:38:14,235 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:38:14,236 [DEBUG][       Thread-606348][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:38:14,236 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:38:14,293 [DEBUG][       Thread-606348][   transport.py][1871] : userauth is OK
2025-07-01 13:38:14,293 [DEBUG][       Thread-606348][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:38:14,293 [DEBUG][       Thread-606348][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:38:14,293 [DEBUG][       Thread-606348][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:38:14,294 [DEBUG][       Thread-606348][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:38:14,312 [ INFO][       Thread-606348][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:38:14,313 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:38:14,313 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:38:14,850 [DEBUG][Thread-606350 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:38:15,384 [DEBUG][       Thread-606348][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:38:15,384 [DEBUG][       Thread-606348][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:38:15,436 [DEBUG][       Thread-606348][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:38:15,436 [DEBUG][       Thread-606348][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:38:15,445 [DEBUG][       Thread-606348][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:38:15,454 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:38:15,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-07-01 13:38:15,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-07-01 13:38:15,472 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:38:15,472 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:38:15,472 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:38:15,480 [DEBUG][       Thread-606348][   transport.py][1871] : EOF in transport thread
2025-07-01 13:38:23,871 [DEBUG][Thread-606351 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:38:25,483 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:38:25,483 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:38:25,483 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:38:25,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-07-01 13:38:25,879 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:38:25,880 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:38:25,951 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 38, 22), 11.45, 46.07, 0.0, 33.56, 13.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:38:25,951 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:38:22
2025-07-01 13:38:26,036 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:38:26,043 [DEBUG][       Thread-606352][   transport.py][1871] : starting thread (client mode): 0x75a9c90
2025-07-01 13:38:26,043 [DEBUG][       Thread-606352][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:38:26,063 [DEBUG][       Thread-606352][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:38:26,063 [ INFO][       Thread-606352][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:38:26,066 [DEBUG][       Thread-606352][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:38:26,066 [DEBUG][       Thread-606352][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:38:26,066 [DEBUG][       Thread-606352][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:38:26,066 [DEBUG][       Thread-606352][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:38:26,066 [DEBUG][       Thread-606352][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:38:26,066 [DEBUG][       Thread-606352][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:38:26,066 [DEBUG][       Thread-606352][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:38:26,067 [DEBUG][       Thread-606352][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:38:26,067 [DEBUG][       Thread-606352][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:38:26,067 [DEBUG][       Thread-606352][   transport.py][1871] : client lang: <none>
2025-07-01 13:38:26,067 [DEBUG][       Thread-606352][   transport.py][1871] : server lang: <none>
2025-07-01 13:38:26,067 [DEBUG][       Thread-606352][   transport.py][1871] : kex follows: False
2025-07-01 13:38:26,067 [DEBUG][       Thread-606352][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:38:26,067 [DEBUG][       Thread-606352][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:38:26,067 [DEBUG][       Thread-606352][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:38:26,067 [DEBUG][       Thread-606352][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:38:26,067 [DEBUG][       Thread-606352][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:38:26,067 [DEBUG][       Thread-606352][   transport.py][1871] : Compression: none
2025-07-01 13:38:26,067 [DEBUG][       Thread-606352][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:38:26,083 [DEBUG][       Thread-606352][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:38:26,083 [DEBUG][       Thread-606352][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:38:26,084 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:38:26,084 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:38:26,085 [DEBUG][       Thread-606352][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:38:26,086 [DEBUG][       Thread-606352][   transport.py][1871] : userauth is OK
2025-07-01 13:38:26,111 [ INFO][       Thread-606352][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:38:26,111 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:38:26,782 [DEBUG][       Thread-606352][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:38:26,783 [DEBUG][       Thread-606352][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:38:26,825 [DEBUG][       Thread-606352][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:38:26,825 [DEBUG][       Thread-606352][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:38:26,827 [DEBUG][       Thread-606352][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:38:26,840 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:38:26,840 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:38:26,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:38:26,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:38:26,847 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:38:26,848 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:38:26,849 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:38:26,849 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:38:26,849 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.484317 -999.00  +13.60  27.21     50   +3.70 1 1 1 1 1   888    0 9.77 -3.02 ----- 35.6 27.2 9.7 49.4 16.8 -24.5 15.8 -25.8 15.9 -23.2 16.8 -22.0
2025-07-01 13:38:26,849 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:38:26,850 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:38:26,850 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.484317
2025-07-01 13:38:26,850 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:38:26,851 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:38:26,851 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:38:26,851 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:38:26,851 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:38:26,851 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:38:22', tmtdew=11.45, humidity=46.07, cloud=0.0, wind=33.56, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:37:24.989', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:38:26,851 [DEBUG][       Thread-606352][   transport.py][1871] : EOF in transport thread
2025-07-01 13:38:26,934 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:38:26,947 [DEBUG][       Thread-606355][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 13:38:26,947 [DEBUG][       Thread-606355][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:38:26,965 [DEBUG][       Thread-606355][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:38:26,965 [ INFO][       Thread-606355][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:38:26,972 [DEBUG][       Thread-606355][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:38:26,973 [DEBUG][       Thread-606355][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:38:26,973 [DEBUG][       Thread-606355][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:38:26,973 [DEBUG][       Thread-606355][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:38:26,973 [DEBUG][       Thread-606355][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:38:26,973 [DEBUG][       Thread-606355][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:38:26,973 [DEBUG][       Thread-606355][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:38:26,973 [DEBUG][       Thread-606355][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:38:26,973 [DEBUG][       Thread-606355][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:38:26,973 [DEBUG][       Thread-606355][   transport.py][1871] : client lang: <none>
2025-07-01 13:38:26,973 [DEBUG][       Thread-606355][   transport.py][1871] : server lang: <none>
2025-07-01 13:38:26,973 [DEBUG][       Thread-606355][   transport.py][1871] : kex follows: False
2025-07-01 13:38:26,973 [DEBUG][       Thread-606355][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:38:26,973 [DEBUG][       Thread-606355][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:38:26,973 [DEBUG][       Thread-606355][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:38:26,973 [DEBUG][       Thread-606355][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:38:26,974 [DEBUG][       Thread-606355][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:38:26,974 [DEBUG][       Thread-606355][   transport.py][1871] : Compression: none
2025-07-01 13:38:26,974 [DEBUG][       Thread-606355][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:38:27,036 [DEBUG][       Thread-606355][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:38:27,037 [DEBUG][       Thread-606355][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:38:27,037 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:38:27,038 [DEBUG][       Thread-606355][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:38:27,039 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:38:27,093 [DEBUG][       Thread-606355][   transport.py][1871] : userauth is OK
2025-07-01 13:38:27,093 [DEBUG][       Thread-606355][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:38:27,093 [DEBUG][       Thread-606355][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:38:27,093 [DEBUG][       Thread-606355][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:38:27,093 [DEBUG][       Thread-606355][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:38:27,112 [ INFO][       Thread-606355][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:38:27,113 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:38:27,113 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:38:28,195 [DEBUG][       Thread-606355][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:38:28,195 [DEBUG][       Thread-606355][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:38:28,243 [DEBUG][       Thread-606355][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:38:28,243 [DEBUG][       Thread-606355][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:38:28,252 [DEBUG][       Thread-606355][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:38:28,259 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:38:28,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-07-01 13:38:28,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-07-01 13:38:28,275 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:38:28,275 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:38:28,275 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:38:28,283 [DEBUG][       Thread-606355][   transport.py][1871] : EOF in transport thread
2025-07-01 13:38:32,573 [DEBUG][Thread-606357 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:38:32,888 [DEBUG][Thread-606358 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:38:38,286 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:38:38,286 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:38:38,286 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:38:38,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-07-01 13:38:38,751 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 38, 22), 11.45, 46.07, 0.0, 33.56, 13.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:38:38,751 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:38:22
2025-07-01 13:38:38,836 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:38:38,840 [DEBUG][       Thread-606359][   transport.py][1871] : starting thread (client mode): 0x75ab190
2025-07-01 13:38:38,840 [DEBUG][       Thread-606359][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:38:38,860 [DEBUG][       Thread-606359][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:38:38,861 [ INFO][       Thread-606359][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:38:38,864 [DEBUG][       Thread-606359][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:38:38,864 [DEBUG][       Thread-606359][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:38:38,864 [DEBUG][       Thread-606359][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:38:38,864 [DEBUG][       Thread-606359][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:38:38,864 [DEBUG][       Thread-606359][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:38:38,864 [DEBUG][       Thread-606359][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:38:38,864 [DEBUG][       Thread-606359][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:38:38,864 [DEBUG][       Thread-606359][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:38:38,864 [DEBUG][       Thread-606359][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:38:38,864 [DEBUG][       Thread-606359][   transport.py][1871] : client lang: <none>
2025-07-01 13:38:38,864 [DEBUG][       Thread-606359][   transport.py][1871] : server lang: <none>
2025-07-01 13:38:38,864 [DEBUG][       Thread-606359][   transport.py][1871] : kex follows: False
2025-07-01 13:38:38,864 [DEBUG][       Thread-606359][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:38:38,864 [DEBUG][       Thread-606359][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:38:38,864 [DEBUG][       Thread-606359][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:38:38,864 [DEBUG][       Thread-606359][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:38:38,864 [DEBUG][       Thread-606359][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:38:38,865 [DEBUG][       Thread-606359][   transport.py][1871] : Compression: none
2025-07-01 13:38:38,865 [DEBUG][       Thread-606359][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:38:38,882 [DEBUG][       Thread-606359][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:38:38,883 [DEBUG][       Thread-606359][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:38:38,883 [DEBUG][       Thread-606359][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:38:38,883 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:38:38,884 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:38:38,884 [DEBUG][       Thread-606359][   transport.py][1871] : userauth is OK
2025-07-01 13:38:38,897 [ INFO][       Thread-606359][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:38:38,898 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:38:39,479 [DEBUG][       Thread-606359][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:38:39,479 [DEBUG][       Thread-606359][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:38:39,521 [DEBUG][       Thread-606359][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:38:39,521 [DEBUG][       Thread-606359][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:38:39,525 [DEBUG][       Thread-606359][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:38:39,536 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:38:39,537 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:38:39,538 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:38:39,540 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:38:39,545 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:38:39,547 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:38:39,547 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:38:39,547 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:38:39,548 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.485011 -999.00  +13.60  37.62     50   +3.60 1 1 2 1 1   888    0 9.58 -2.25 ----- 39.6 37.6 43.8 53.2 16.6 -26.5 15.8 -26.9 15.7 -25.2 16.8 -25.5
2025-07-01 13:38:39,548 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:38:39,548 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:38:39,548 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.485011
2025-07-01 13:38:39,548 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:38:39,549 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:38:39,549 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:38:39,549 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:38:39,549 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:38:39,549 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:38:22', tmtdew=11.45, humidity=46.07, cloud=0.0, wind=33.56, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:38:24.950', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:38:39,550 [DEBUG][       Thread-606359][   transport.py][1871] : EOF in transport thread
2025-07-01 13:38:39,633 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:38:39,642 [DEBUG][       Thread-606362][   transport.py][1871] : starting thread (client mode): 0x81a6710
2025-07-01 13:38:39,643 [DEBUG][       Thread-606362][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:38:39,657 [DEBUG][       Thread-606362][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:38:39,657 [ INFO][       Thread-606362][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:38:39,665 [DEBUG][       Thread-606362][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:38:39,665 [DEBUG][       Thread-606362][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:38:39,665 [DEBUG][       Thread-606362][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:38:39,665 [DEBUG][       Thread-606362][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:38:39,665 [DEBUG][       Thread-606362][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:38:39,665 [DEBUG][       Thread-606362][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:38:39,665 [DEBUG][       Thread-606362][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:38:39,666 [DEBUG][       Thread-606362][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:38:39,666 [DEBUG][       Thread-606362][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:38:39,666 [DEBUG][       Thread-606362][   transport.py][1871] : client lang: <none>
2025-07-01 13:38:39,666 [DEBUG][       Thread-606362][   transport.py][1871] : server lang: <none>
2025-07-01 13:38:39,666 [DEBUG][       Thread-606362][   transport.py][1871] : kex follows: False
2025-07-01 13:38:39,666 [DEBUG][       Thread-606362][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:38:39,666 [DEBUG][       Thread-606362][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:38:39,666 [DEBUG][       Thread-606362][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:38:39,666 [DEBUG][       Thread-606362][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:38:39,666 [DEBUG][       Thread-606362][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:38:39,666 [DEBUG][       Thread-606362][   transport.py][1871] : Compression: none
2025-07-01 13:38:39,666 [DEBUG][       Thread-606362][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:38:39,725 [DEBUG][       Thread-606362][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:38:39,725 [DEBUG][       Thread-606362][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:38:39,726 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:38:39,727 [DEBUG][       Thread-606362][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:38:39,727 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:38:39,780 [DEBUG][       Thread-606362][   transport.py][1871] : userauth is OK
2025-07-01 13:38:39,781 [DEBUG][       Thread-606362][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:38:39,781 [DEBUG][       Thread-606362][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:38:39,781 [DEBUG][       Thread-606362][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:38:39,781 [DEBUG][       Thread-606362][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:38:39,799 [ INFO][       Thread-606362][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:38:39,800 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:38:39,800 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:38:40,816 [DEBUG][       Thread-606362][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:38:40,816 [DEBUG][       Thread-606362][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:38:40,864 [DEBUG][       Thread-606362][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:38:40,864 [DEBUG][       Thread-606362][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:38:40,875 [DEBUG][       Thread-606362][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:38:40,888 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:38:40,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-07-01 13:38:40,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-07-01 13:38:40,906 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:38:40,907 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:38:40,907 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:38:40,915 [DEBUG][       Thread-606362][   transport.py][1871] : EOF in transport thread
2025-07-01 13:38:41,922 [DEBUG][Thread-606364 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:38:50,918 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:38:50,918 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:38:50,918 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:38:50,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-07-01 13:38:50,944 [DEBUG][Thread-606365 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:38:51,388 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 38, 22), 11.45, 46.07, 0.0, 33.56, 13.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:38:51,388 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:38:22
2025-07-01 13:38:51,471 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:38:51,477 [DEBUG][       Thread-606366][   transport.py][1871] : starting thread (client mode): 0x75aa7a0
2025-07-01 13:38:51,477 [DEBUG][       Thread-606366][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:38:51,497 [DEBUG][       Thread-606366][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:38:51,497 [ INFO][       Thread-606366][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:38:51,501 [DEBUG][       Thread-606366][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:38:51,501 [DEBUG][       Thread-606366][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:38:51,501 [DEBUG][       Thread-606366][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:38:51,501 [DEBUG][       Thread-606366][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:38:51,501 [DEBUG][       Thread-606366][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:38:51,501 [DEBUG][       Thread-606366][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:38:51,501 [DEBUG][       Thread-606366][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:38:51,501 [DEBUG][       Thread-606366][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:38:51,501 [DEBUG][       Thread-606366][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:38:51,501 [DEBUG][       Thread-606366][   transport.py][1871] : client lang: <none>
2025-07-01 13:38:51,501 [DEBUG][       Thread-606366][   transport.py][1871] : server lang: <none>
2025-07-01 13:38:51,501 [DEBUG][       Thread-606366][   transport.py][1871] : kex follows: False
2025-07-01 13:38:51,501 [DEBUG][       Thread-606366][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:38:51,502 [DEBUG][       Thread-606366][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:38:51,502 [DEBUG][       Thread-606366][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:38:51,502 [DEBUG][       Thread-606366][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:38:51,502 [DEBUG][       Thread-606366][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:38:51,502 [DEBUG][       Thread-606366][   transport.py][1871] : Compression: none
2025-07-01 13:38:51,502 [DEBUG][       Thread-606366][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:38:51,517 [DEBUG][       Thread-606366][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:38:51,517 [DEBUG][       Thread-606366][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:38:51,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:38:51,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:38:51,518 [DEBUG][       Thread-606366][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:38:51,519 [DEBUG][       Thread-606366][   transport.py][1871] : userauth is OK
2025-07-01 13:38:51,544 [ INFO][       Thread-606366][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:38:51,545 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:38:52,195 [DEBUG][       Thread-606366][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:38:52,195 [DEBUG][       Thread-606366][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:38:52,237 [DEBUG][       Thread-606366][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:38:52,237 [DEBUG][       Thread-606366][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:38:52,240 [DEBUG][       Thread-606366][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:38:52,249 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:38:52,250 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:38:52,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:38:52,253 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:38:52,260 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:38:52,262 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:38:52,262 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:38:52,263 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:38:52,263 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.485011 -999.00  +13.60  37.62     50   +3.60 1 1 2 1 1   888    0 9.58 -2.25 ----- 39.6 37.6 43.8 53.2 16.6 -26.5 15.8 -26.9 15.7 -25.2 16.8 -25.5
2025-07-01 13:38:52,263 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:38:52,263 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:38:52,263 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.485011
2025-07-01 13:38:52,263 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:38:52,264 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:38:52,264 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:38:52,264 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:38:52,264 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:38:52,264 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:38:22', tmtdew=11.45, humidity=46.07, cloud=0.0, wind=33.56, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:38:24.950', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:38:52,265 [DEBUG][       Thread-606366][   transport.py][1871] : EOF in transport thread
2025-07-01 13:38:52,348 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:38:52,359 [DEBUG][       Thread-606369][   transport.py][1871] : starting thread (client mode): 0x827d540
2025-07-01 13:38:52,359 [DEBUG][       Thread-606369][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:38:52,374 [DEBUG][       Thread-606369][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:38:52,374 [ INFO][       Thread-606369][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:38:52,382 [DEBUG][       Thread-606369][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:38:52,382 [DEBUG][       Thread-606369][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:38:52,382 [DEBUG][       Thread-606369][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:38:52,382 [DEBUG][       Thread-606369][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:38:52,382 [DEBUG][       Thread-606369][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:38:52,382 [DEBUG][       Thread-606369][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:38:52,382 [DEBUG][       Thread-606369][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:38:52,382 [DEBUG][       Thread-606369][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:38:52,382 [DEBUG][       Thread-606369][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:38:52,382 [DEBUG][       Thread-606369][   transport.py][1871] : client lang: <none>
2025-07-01 13:38:52,382 [DEBUG][       Thread-606369][   transport.py][1871] : server lang: <none>
2025-07-01 13:38:52,382 [DEBUG][       Thread-606369][   transport.py][1871] : kex follows: False
2025-07-01 13:38:52,382 [DEBUG][       Thread-606369][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:38:52,382 [DEBUG][       Thread-606369][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:38:52,382 [DEBUG][       Thread-606369][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:38:52,382 [DEBUG][       Thread-606369][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:38:52,382 [DEBUG][       Thread-606369][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:38:52,382 [DEBUG][       Thread-606369][   transport.py][1871] : Compression: none
2025-07-01 13:38:52,382 [DEBUG][       Thread-606369][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:38:52,442 [DEBUG][       Thread-606369][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:38:52,442 [DEBUG][       Thread-606369][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:38:52,443 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:38:52,443 [DEBUG][       Thread-606369][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:38:52,444 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:38:52,507 [DEBUG][       Thread-606369][   transport.py][1871] : userauth is OK
2025-07-01 13:38:52,507 [DEBUG][       Thread-606369][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:38:52,507 [DEBUG][       Thread-606369][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:38:52,507 [DEBUG][       Thread-606369][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:38:52,507 [DEBUG][       Thread-606369][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:38:52,526 [ INFO][       Thread-606369][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:38:52,526 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:38:52,527 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:38:53,573 [DEBUG][       Thread-606369][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:38:53,573 [DEBUG][       Thread-606369][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:38:53,624 [DEBUG][       Thread-606369][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:38:53,624 [DEBUG][       Thread-606369][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:38:53,633 [DEBUG][       Thread-606369][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:38:53,642 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:38:53,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-07-01 13:38:53,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-07-01 13:38:53,660 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:38:53,661 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:38:53,661 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:38:53,669 [DEBUG][       Thread-606369][   transport.py][1871] : EOF in transport thread
2025-07-01 13:38:59,966 [DEBUG][Thread-606371 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:39:03,672 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:39:03,672 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:39:03,672 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:39:03,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-07-01 13:39:04,162 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 38, 53), 11.43, 46.13, 0.0, 33.21, 13.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:39:04,162 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:38:53
2025-07-01 13:39:04,247 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:39:04,251 [DEBUG][       Thread-606372][   transport.py][1871] : starting thread (client mode): 0x8106680
2025-07-01 13:39:04,251 [DEBUG][       Thread-606372][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:39:04,267 [DEBUG][       Thread-606372][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:39:04,268 [ INFO][       Thread-606372][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:39:04,271 [DEBUG][       Thread-606372][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:39:04,271 [DEBUG][       Thread-606372][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:39:04,271 [DEBUG][       Thread-606372][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:39:04,271 [DEBUG][       Thread-606372][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:39:04,271 [DEBUG][       Thread-606372][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:39:04,271 [DEBUG][       Thread-606372][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:39:04,271 [DEBUG][       Thread-606372][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:39:04,271 [DEBUG][       Thread-606372][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:39:04,271 [DEBUG][       Thread-606372][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:39:04,271 [DEBUG][       Thread-606372][   transport.py][1871] : client lang: <none>
2025-07-01 13:39:04,271 [DEBUG][       Thread-606372][   transport.py][1871] : server lang: <none>
2025-07-01 13:39:04,271 [DEBUG][       Thread-606372][   transport.py][1871] : kex follows: False
2025-07-01 13:39:04,271 [DEBUG][       Thread-606372][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:39:04,271 [DEBUG][       Thread-606372][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:39:04,271 [DEBUG][       Thread-606372][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:39:04,271 [DEBUG][       Thread-606372][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:39:04,271 [DEBUG][       Thread-606372][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:39:04,271 [DEBUG][       Thread-606372][   transport.py][1871] : Compression: none
2025-07-01 13:39:04,271 [DEBUG][       Thread-606372][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:39:04,288 [DEBUG][       Thread-606372][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:39:04,288 [DEBUG][       Thread-606372][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:39:04,289 [DEBUG][       Thread-606372][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:39:04,289 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:39:04,289 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:39:04,333 [DEBUG][       Thread-606372][   transport.py][1871] : userauth is OK
2025-07-01 13:39:04,357 [ INFO][       Thread-606372][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:39:04,358 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:39:04,954 [DEBUG][       Thread-606372][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:39:04,955 [DEBUG][       Thread-606372][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:39:04,997 [DEBUG][       Thread-606372][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:39:04,997 [DEBUG][       Thread-606372][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:39:05,000 [DEBUG][       Thread-606372][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:39:05,009 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:39:05,009 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:39:05,011 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:39:05,013 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:39:05,018 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:39:05,020 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:39:05,020 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:39:05,021 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:39:05,021 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.485359 -999.00  +13.50  35.11     50   +3.50 1 1 2 1 1   888    0 9.95 -0.99 ----- 45.2 35.1 28.9 51.9 16.5 -25.7 15.7 -26.3 15.7 -24.4 16.6 -23.9
2025-07-01 13:39:05,021 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:39:05,021 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:39:05,021 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.485359
2025-07-01 13:39:05,022 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:39:05,022 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:39:05,023 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:39:05,023 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:39:05,023 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:39:05,023 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:38:53', tmtdew=11.43, humidity=46.13, cloud=0.0, wind=33.21, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:38:55.018', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:39:05,023 [DEBUG][       Thread-606372][   transport.py][1871] : EOF in transport thread
2025-07-01 13:39:05,107 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:39:05,117 [DEBUG][       Thread-606375][   transport.py][1871] : starting thread (client mode): 0x8171c30
2025-07-01 13:39:05,117 [DEBUG][       Thread-606375][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:39:05,132 [DEBUG][       Thread-606375][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:39:05,132 [ INFO][       Thread-606375][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:39:05,139 [DEBUG][       Thread-606375][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:39:05,139 [DEBUG][       Thread-606375][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:39:05,139 [DEBUG][       Thread-606375][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:39:05,139 [DEBUG][       Thread-606375][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:39:05,139 [DEBUG][       Thread-606375][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:39:05,139 [DEBUG][       Thread-606375][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:39:05,139 [DEBUG][       Thread-606375][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:39:05,139 [DEBUG][       Thread-606375][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:39:05,140 [DEBUG][       Thread-606375][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:39:05,140 [DEBUG][       Thread-606375][   transport.py][1871] : client lang: <none>
2025-07-01 13:39:05,140 [DEBUG][       Thread-606375][   transport.py][1871] : server lang: <none>
2025-07-01 13:39:05,140 [DEBUG][       Thread-606375][   transport.py][1871] : kex follows: False
2025-07-01 13:39:05,140 [DEBUG][       Thread-606375][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:39:05,140 [DEBUG][       Thread-606375][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:39:05,140 [DEBUG][       Thread-606375][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:39:05,140 [DEBUG][       Thread-606375][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:39:05,140 [DEBUG][       Thread-606375][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:39:05,140 [DEBUG][       Thread-606375][   transport.py][1871] : Compression: none
2025-07-01 13:39:05,140 [DEBUG][       Thread-606375][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:39:05,199 [DEBUG][       Thread-606375][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:39:05,200 [DEBUG][       Thread-606375][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:39:05,200 [DEBUG][       Thread-606375][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:39:05,201 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:39:05,201 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:39:05,256 [DEBUG][       Thread-606375][   transport.py][1871] : userauth is OK
2025-07-01 13:39:05,256 [DEBUG][       Thread-606375][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:39:05,257 [DEBUG][       Thread-606375][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:39:05,257 [DEBUG][       Thread-606375][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:39:05,257 [DEBUG][       Thread-606375][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:39:05,276 [ INFO][       Thread-606375][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:39:05,276 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:39:05,277 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:39:06,363 [DEBUG][       Thread-606375][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:39:06,363 [DEBUG][       Thread-606375][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:39:06,411 [DEBUG][       Thread-606375][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:39:06,411 [DEBUG][       Thread-606375][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:39:06,420 [DEBUG][       Thread-606375][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:39:06,428 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:39:06,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')
2025-07-01 13:39:06,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-07-01 13:39:06,444 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:39:06,444 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:39:06,444 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:39:06,451 [DEBUG][       Thread-606375][   transport.py][1871] : EOF in transport thread
2025-07-01 13:39:08,985 [DEBUG][Thread-606377 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:39:16,448 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:39:16,448 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:39:16,448 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:39:16,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-07-01 13:39:16,920 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 38, 53), 11.43, 46.13, 0.0, 33.21, 13.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:39:16,920 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:38:53
2025-07-01 13:39:17,003 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:39:17,008 [DEBUG][       Thread-606378][   transport.py][1871] : starting thread (client mode): 0x8172980
2025-07-01 13:39:17,008 [DEBUG][       Thread-606378][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:39:17,029 [DEBUG][       Thread-606378][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:39:17,029 [ INFO][       Thread-606378][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:39:17,033 [DEBUG][       Thread-606378][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:39:17,033 [DEBUG][       Thread-606378][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:39:17,033 [DEBUG][       Thread-606378][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:39:17,033 [DEBUG][       Thread-606378][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:39:17,033 [DEBUG][       Thread-606378][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:39:17,033 [DEBUG][       Thread-606378][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:39:17,033 [DEBUG][       Thread-606378][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:39:17,033 [DEBUG][       Thread-606378][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:39:17,033 [DEBUG][       Thread-606378][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:39:17,033 [DEBUG][       Thread-606378][   transport.py][1871] : client lang: <none>
2025-07-01 13:39:17,033 [DEBUG][       Thread-606378][   transport.py][1871] : server lang: <none>
2025-07-01 13:39:17,033 [DEBUG][       Thread-606378][   transport.py][1871] : kex follows: False
2025-07-01 13:39:17,033 [DEBUG][       Thread-606378][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:39:17,033 [DEBUG][       Thread-606378][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:39:17,033 [DEBUG][       Thread-606378][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:39:17,033 [DEBUG][       Thread-606378][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:39:17,033 [DEBUG][       Thread-606378][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:39:17,033 [DEBUG][       Thread-606378][   transport.py][1871] : Compression: none
2025-07-01 13:39:17,033 [DEBUG][       Thread-606378][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:39:17,050 [DEBUG][       Thread-606378][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:39:17,051 [DEBUG][       Thread-606378][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:39:17,051 [DEBUG][       Thread-606378][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:39:17,051 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:39:17,052 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:39:17,053 [DEBUG][       Thread-606378][   transport.py][1871] : userauth is OK
2025-07-01 13:39:17,077 [ INFO][       Thread-606378][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:39:17,077 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:39:17,726 [DEBUG][       Thread-606378][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:39:17,726 [DEBUG][       Thread-606378][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:39:17,769 [DEBUG][       Thread-606378][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:39:17,769 [DEBUG][       Thread-606378][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:39:17,771 [DEBUG][       Thread-606378][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:39:17,783 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:39:17,783 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:39:17,784 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:39:17,786 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:39:17,791 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:39:17,793 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:39:17,793 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:39:17,794 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:39:17,794 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.485359 -999.00  +13.50  35.11     50   +3.50 1 1 2 1 1   888    0 9.95 -0.99 ----- 45.2 35.1 28.9 51.9 16.5 -25.7 15.7 -26.3 15.7 -24.4 16.6 -23.9
2025-07-01 13:39:17,794 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:39:17,794 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:39:17,794 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.485359
2025-07-01 13:39:17,795 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:39:17,795 [DEBUG][       Thread-606378][   transport.py][1871] : EOF in transport thread
2025-07-01 13:39:17,795 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:39:17,796 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:39:17,796 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:39:17,796 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:39:17,796 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:38:53', tmtdew=11.43, humidity=46.13, cloud=0.0, wind=33.21, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:38:55.018', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:39:17,879 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:39:17,888 [DEBUG][       Thread-606381][   transport.py][1871] : starting thread (client mode): 0x8393910
2025-07-01 13:39:17,888 [DEBUG][       Thread-606381][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:39:17,907 [DEBUG][       Thread-606381][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:39:17,907 [ INFO][       Thread-606381][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:39:17,914 [DEBUG][       Thread-606381][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:39:17,914 [DEBUG][       Thread-606381][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:39:17,914 [DEBUG][       Thread-606381][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:39:17,914 [DEBUG][       Thread-606381][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:39:17,914 [DEBUG][       Thread-606381][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:39:17,914 [DEBUG][       Thread-606381][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:39:17,914 [DEBUG][       Thread-606381][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:39:17,914 [DEBUG][       Thread-606381][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:39:17,914 [DEBUG][       Thread-606381][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:39:17,914 [DEBUG][       Thread-606381][   transport.py][1871] : client lang: <none>
2025-07-01 13:39:17,915 [DEBUG][       Thread-606381][   transport.py][1871] : server lang: <none>
2025-07-01 13:39:17,915 [DEBUG][       Thread-606381][   transport.py][1871] : kex follows: False
2025-07-01 13:39:17,915 [DEBUG][       Thread-606381][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:39:17,915 [DEBUG][       Thread-606381][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:39:17,915 [DEBUG][       Thread-606381][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:39:17,915 [DEBUG][       Thread-606381][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:39:17,915 [DEBUG][       Thread-606381][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:39:17,915 [DEBUG][       Thread-606381][   transport.py][1871] : Compression: none
2025-07-01 13:39:17,915 [DEBUG][       Thread-606381][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:39:17,972 [DEBUG][       Thread-606381][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:39:17,973 [DEBUG][       Thread-606381][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:39:17,973 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:39:17,974 [DEBUG][       Thread-606381][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:39:17,974 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:39:18,010 [DEBUG][Thread-606383 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:39:18,027 [DEBUG][       Thread-606381][   transport.py][1871] : userauth is OK
2025-07-01 13:39:18,028 [DEBUG][       Thread-606381][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:39:18,028 [DEBUG][       Thread-606381][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:39:18,028 [DEBUG][       Thread-606381][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:39:18,028 [DEBUG][       Thread-606381][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:39:18,046 [ INFO][       Thread-606381][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:39:18,046 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:39:18,046 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:39:19,084 [DEBUG][       Thread-606381][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:39:19,085 [DEBUG][       Thread-606381][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:39:19,136 [DEBUG][       Thread-606381][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:39:19,136 [DEBUG][       Thread-606381][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:39:19,146 [DEBUG][       Thread-606381][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:39:19,155 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:39:19,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-07-01 13:39:19,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') -> 00000000
2025-07-01 13:39:19,175 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:39:19,176 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:39:19,176 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:39:19,184 [DEBUG][       Thread-606381][   transport.py][1871] : EOF in transport thread
2025-07-01 13:39:26,018 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:39:26,019 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:39:27,033 [DEBUG][Thread-606384 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:39:29,186 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:39:29,186 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:39:29,186 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:39:29,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-07-01 13:39:29,670 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 39, 25), 11.47, 45.84, 0.0, 30.86, 13.54, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:39:29,670 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:39:25
2025-07-01 13:39:29,752 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:39:29,756 [DEBUG][       Thread-606385][   transport.py][1871] : starting thread (client mode): 0x8171ed0
2025-07-01 13:39:29,757 [DEBUG][       Thread-606385][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:39:29,778 [DEBUG][       Thread-606385][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:39:29,778 [ INFO][       Thread-606385][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:39:29,781 [DEBUG][       Thread-606385][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:39:29,781 [DEBUG][       Thread-606385][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:39:29,782 [DEBUG][       Thread-606385][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:39:29,782 [DEBUG][       Thread-606385][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:39:29,782 [DEBUG][       Thread-606385][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:39:29,782 [DEBUG][       Thread-606385][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:39:29,782 [DEBUG][       Thread-606385][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:39:29,782 [DEBUG][       Thread-606385][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:39:29,782 [DEBUG][       Thread-606385][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:39:29,782 [DEBUG][       Thread-606385][   transport.py][1871] : client lang: <none>
2025-07-01 13:39:29,782 [DEBUG][       Thread-606385][   transport.py][1871] : server lang: <none>
2025-07-01 13:39:29,782 [DEBUG][       Thread-606385][   transport.py][1871] : kex follows: False
2025-07-01 13:39:29,782 [DEBUG][       Thread-606385][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:39:29,782 [DEBUG][       Thread-606385][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:39:29,782 [DEBUG][       Thread-606385][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:39:29,782 [DEBUG][       Thread-606385][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:39:29,782 [DEBUG][       Thread-606385][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:39:29,782 [DEBUG][       Thread-606385][   transport.py][1871] : Compression: none
2025-07-01 13:39:29,782 [DEBUG][       Thread-606385][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:39:29,800 [DEBUG][       Thread-606385][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:39:29,801 [DEBUG][       Thread-606385][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:39:29,801 [DEBUG][       Thread-606385][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:39:29,802 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:39:29,802 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:39:29,803 [DEBUG][       Thread-606385][   transport.py][1871] : userauth is OK
2025-07-01 13:39:29,828 [ INFO][       Thread-606385][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:39:29,828 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:39:30,451 [DEBUG][       Thread-606385][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:39:30,451 [DEBUG][       Thread-606385][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:39:30,493 [DEBUG][       Thread-606385][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:39:30,493 [DEBUG][       Thread-606385][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:39:30,495 [DEBUG][       Thread-606385][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:39:30,508 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:39:30,508 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:39:30,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:39:30,510 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:39:30,513 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:39:30,514 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:39:30,514 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:39:30,514 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:39:30,514 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.485359 -999.00  +13.50  35.11     50   +3.50 1 1 2 1 1   888    0 9.95 -0.99 ----- 45.2 35.1 28.9 51.9 16.5 -25.7 15.7 -26.3 15.7 -24.4 16.6 -23.9
2025-07-01 13:39:30,514 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:39:30,514 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:39:30,514 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.485359
2025-07-01 13:39:30,515 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:39:30,515 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:39:30,515 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:39:30,515 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:39:30,515 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:39:30,515 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:39:25', tmtdew=11.47, humidity=45.84, cloud=0.0, wind=30.86, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:38:55.018', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:39:30,516 [DEBUG][       Thread-606385][   transport.py][1871] : EOF in transport thread
2025-07-01 13:39:30,587 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:39:30,600 [DEBUG][       Thread-606388][   transport.py][1871] : starting thread (client mode): 0x8393910
2025-07-01 13:39:30,600 [DEBUG][       Thread-606388][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:39:30,616 [DEBUG][       Thread-606388][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:39:30,616 [ INFO][       Thread-606388][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:39:30,624 [DEBUG][       Thread-606388][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:39:30,624 [DEBUG][       Thread-606388][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:39:30,624 [DEBUG][       Thread-606388][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:39:30,624 [DEBUG][       Thread-606388][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:39:30,624 [DEBUG][       Thread-606388][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:39:30,624 [DEBUG][       Thread-606388][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:39:30,625 [DEBUG][       Thread-606388][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:39:30,625 [DEBUG][       Thread-606388][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:39:30,625 [DEBUG][       Thread-606388][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:39:30,625 [DEBUG][       Thread-606388][   transport.py][1871] : client lang: <none>
2025-07-01 13:39:30,625 [DEBUG][       Thread-606388][   transport.py][1871] : server lang: <none>
2025-07-01 13:39:30,625 [DEBUG][       Thread-606388][   transport.py][1871] : kex follows: False
2025-07-01 13:39:30,625 [DEBUG][       Thread-606388][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:39:30,625 [DEBUG][       Thread-606388][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:39:30,625 [DEBUG][       Thread-606388][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:39:30,625 [DEBUG][       Thread-606388][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:39:30,625 [DEBUG][       Thread-606388][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:39:30,625 [DEBUG][       Thread-606388][   transport.py][1871] : Compression: none
2025-07-01 13:39:30,625 [DEBUG][       Thread-606388][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:39:30,683 [DEBUG][       Thread-606388][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:39:30,684 [DEBUG][       Thread-606388][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:39:30,684 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:39:30,685 [DEBUG][       Thread-606388][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:39:30,685 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:39:30,744 [DEBUG][       Thread-606388][   transport.py][1871] : userauth is OK
2025-07-01 13:39:30,745 [DEBUG][       Thread-606388][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:39:30,745 [DEBUG][       Thread-606388][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:39:30,745 [DEBUG][       Thread-606388][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:39:30,745 [DEBUG][       Thread-606388][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:39:30,763 [ INFO][       Thread-606388][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:39:30,764 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:39:30,764 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:39:31,836 [DEBUG][       Thread-606388][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:39:31,836 [DEBUG][       Thread-606388][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:39:31,883 [DEBUG][       Thread-606388][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:39:31,884 [DEBUG][       Thread-606388][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:39:31,893 [DEBUG][       Thread-606388][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:39:31,901 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:39: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')
2025-07-01 13:39:31,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-07-01 13:39:31,919 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:39:31,919 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:39:31,919 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:39:31,927 [DEBUG][       Thread-606388][   transport.py][1871] : EOF in transport thread
2025-07-01 13:39:32,622 [DEBUG][Thread-606390 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:39:36,056 [DEBUG][Thread-606391 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:39:41,928 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:39:41,928 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:39:41,928 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:39:41,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-07-01 13:39:42,408 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 39, 25), 11.47, 45.84, 0.0, 30.86, 13.54, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:39:42,408 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:39:25
2025-07-01 13:39:42,491 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:39:42,495 [DEBUG][       Thread-606392][   transport.py][1871] : starting thread (client mode): 0x81d89a0
2025-07-01 13:39:42,495 [DEBUG][       Thread-606392][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:39:42,516 [DEBUG][       Thread-606392][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:39:42,516 [ INFO][       Thread-606392][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:39:42,519 [DEBUG][       Thread-606392][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:39:42,519 [DEBUG][       Thread-606392][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:39:42,519 [DEBUG][       Thread-606392][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:39:42,519 [DEBUG][       Thread-606392][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:39:42,519 [DEBUG][       Thread-606392][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:39:42,519 [DEBUG][       Thread-606392][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:39:42,519 [DEBUG][       Thread-606392][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:39:42,519 [DEBUG][       Thread-606392][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:39:42,519 [DEBUG][       Thread-606392][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:39:42,519 [DEBUG][       Thread-606392][   transport.py][1871] : client lang: <none>
2025-07-01 13:39:42,519 [DEBUG][       Thread-606392][   transport.py][1871] : server lang: <none>
2025-07-01 13:39:42,519 [DEBUG][       Thread-606392][   transport.py][1871] : kex follows: False
2025-07-01 13:39:42,519 [DEBUG][       Thread-606392][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:39:42,519 [DEBUG][       Thread-606392][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:39:42,519 [DEBUG][       Thread-606392][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:39:42,520 [DEBUG][       Thread-606392][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:39:42,520 [DEBUG][       Thread-606392][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:39:42,520 [DEBUG][       Thread-606392][   transport.py][1871] : Compression: none
2025-07-01 13:39:42,520 [DEBUG][       Thread-606392][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:39:42,536 [DEBUG][       Thread-606392][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:39:42,537 [DEBUG][       Thread-606392][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:39:42,537 [DEBUG][       Thread-606392][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:39:42,537 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:39:42,538 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:39:42,539 [DEBUG][       Thread-606392][   transport.py][1871] : userauth is OK
2025-07-01 13:39:42,564 [ INFO][       Thread-606392][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:39:42,564 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:39:43,217 [DEBUG][       Thread-606392][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:39:43,217 [DEBUG][       Thread-606392][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:39:43,261 [DEBUG][       Thread-606392][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:39:43,261 [DEBUG][       Thread-606392][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:39:43,264 [DEBUG][       Thread-606392][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:39:43,277 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:39:43,277 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:39:43,279 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:39:43,281 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:39:43,287 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:39:43,289 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:39:43,289 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:39:43,290 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:39:43,290 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.485706 -999.00  +13.30  35.55     51   +3.40 1 1 2 1 1   888    0 9.86 -0.42 ----- 38.6 35.5 34.4 50.4 16.3 -26.1 15.6 -26.3 15.6 -24.3 16.3 -27.3
2025-07-01 13:39:43,290 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:39:43,290 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:39:43,290 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.485706
2025-07-01 13:39:43,291 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:39:43,291 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:39:43,292 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:39:43,292 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:39:43,292 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:39:43,292 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:39:25', tmtdew=11.47, humidity=45.84, cloud=0.0, wind=30.86, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:39:24.998', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:39:43,293 [DEBUG][       Thread-606392][   transport.py][1871] : EOF in transport thread
2025-07-01 13:39:43,374 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:39:43,384 [DEBUG][       Thread-606395][   transport.py][1871] : starting thread (client mode): 0x827d9f0
2025-07-01 13:39:43,384 [DEBUG][       Thread-606395][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:39:43,398 [DEBUG][       Thread-606395][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:39:43,398 [ INFO][       Thread-606395][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:39:43,406 [DEBUG][       Thread-606395][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:39:43,406 [DEBUG][       Thread-606395][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:39:43,406 [DEBUG][       Thread-606395][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:39:43,406 [DEBUG][       Thread-606395][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:39:43,406 [DEBUG][       Thread-606395][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:39:43,406 [DEBUG][       Thread-606395][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:39:43,406 [DEBUG][       Thread-606395][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:39:43,406 [DEBUG][       Thread-606395][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:39:43,406 [DEBUG][       Thread-606395][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:39:43,406 [DEBUG][       Thread-606395][   transport.py][1871] : client lang: <none>
2025-07-01 13:39:43,407 [DEBUG][       Thread-606395][   transport.py][1871] : server lang: <none>
2025-07-01 13:39:43,407 [DEBUG][       Thread-606395][   transport.py][1871] : kex follows: False
2025-07-01 13:39:43,407 [DEBUG][       Thread-606395][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:39:43,407 [DEBUG][       Thread-606395][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:39:43,407 [DEBUG][       Thread-606395][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:39:43,407 [DEBUG][       Thread-606395][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:39:43,407 [DEBUG][       Thread-606395][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:39:43,407 [DEBUG][       Thread-606395][   transport.py][1871] : Compression: none
2025-07-01 13:39:43,407 [DEBUG][       Thread-606395][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:39:43,463 [DEBUG][       Thread-606395][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:39:43,463 [DEBUG][       Thread-606395][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:39:43,464 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:39:43,465 [DEBUG][       Thread-606395][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:39:43,465 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:39:43,526 [DEBUG][       Thread-606395][   transport.py][1871] : userauth is OK
2025-07-01 13:39:43,526 [DEBUG][       Thread-606395][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:39:43,526 [DEBUG][       Thread-606395][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:39:43,526 [DEBUG][       Thread-606395][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:39:43,526 [DEBUG][       Thread-606395][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:39:43,546 [ INFO][       Thread-606395][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:39:43,547 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:39:43,547 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:39:44,541 [DEBUG][       Thread-606395][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:39:44,541 [DEBUG][       Thread-606395][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:39:44,591 [DEBUG][       Thread-606395][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:39:44,591 [DEBUG][       Thread-606395][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:39:44,599 [DEBUG][       Thread-606395][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:39:44,607 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:39:44,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-07-01 13:39:44,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') -> 00000000
2025-07-01 13:39:44,623 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:39:44,623 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:39:44,623 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:39:44,631 [DEBUG][       Thread-606395][   transport.py][1871] : EOF in transport thread
2025-07-01 13:39:45,089 [DEBUG][Thread-606397 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:39:54,112 [DEBUG][Thread-606398 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:39:54,634 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:39:54,634 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:39:54,634 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:39:54,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-07-01 13:39:55,085 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 39, 25), 11.47, 45.84, 0.0, 30.86, 13.54, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:39:55,085 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:39:25
2025-07-01 13:39:55,169 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:39:55,173 [DEBUG][       Thread-606399][   transport.py][1871] : starting thread (client mode): 0x81d9150
2025-07-01 13:39:55,173 [DEBUG][       Thread-606399][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:39:55,194 [DEBUG][       Thread-606399][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:39:55,194 [ INFO][       Thread-606399][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:39:55,195 [DEBUG][       Thread-606399][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:39:55,195 [DEBUG][       Thread-606399][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:39:55,195 [DEBUG][       Thread-606399][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:39:55,195 [DEBUG][       Thread-606399][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:39:55,195 [DEBUG][       Thread-606399][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:39:55,195 [DEBUG][       Thread-606399][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:39:55,195 [DEBUG][       Thread-606399][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:39:55,195 [DEBUG][       Thread-606399][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:39:55,195 [DEBUG][       Thread-606399][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:39:55,195 [DEBUG][       Thread-606399][   transport.py][1871] : client lang: <none>
2025-07-01 13:39:55,195 [DEBUG][       Thread-606399][   transport.py][1871] : server lang: <none>
2025-07-01 13:39:55,195 [DEBUG][       Thread-606399][   transport.py][1871] : kex follows: False
2025-07-01 13:39:55,195 [DEBUG][       Thread-606399][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:39:55,195 [DEBUG][       Thread-606399][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:39:55,195 [DEBUG][       Thread-606399][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:39:55,195 [DEBUG][       Thread-606399][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:39:55,195 [DEBUG][       Thread-606399][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:39:55,195 [DEBUG][       Thread-606399][   transport.py][1871] : Compression: none
2025-07-01 13:39:55,195 [DEBUG][       Thread-606399][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:39:55,203 [DEBUG][       Thread-606399][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:39:55,203 [DEBUG][       Thread-606399][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:39:55,204 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:39:55,204 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:39:55,204 [DEBUG][       Thread-606399][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:39:55,205 [DEBUG][       Thread-606399][   transport.py][1871] : userauth is OK
2025-07-01 13:39:55,217 [ INFO][       Thread-606399][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:39:55,218 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:39:55,828 [DEBUG][       Thread-606399][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:39:55,829 [DEBUG][       Thread-606399][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:39:55,873 [DEBUG][       Thread-606399][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:39:55,873 [DEBUG][       Thread-606399][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:39:55,877 [DEBUG][       Thread-606399][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:39:55,888 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:39:55,889 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:39:55,890 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:39:55,892 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:39:55,897 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:39:55,898 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:39:55,899 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:39:55,899 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:39:55,899 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.485706 -999.00  +13.30  35.55     51   +3.40 1 1 2 1 1   888    0 9.86 -0.42 ----- 38.6 35.5 34.4 50.4 16.3 -26.1 15.6 -26.3 15.6 -24.3 16.3 -27.3
2025-07-01 13:39:55,899 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:39:55,900 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:39:55,900 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.485706
2025-07-01 13:39:55,900 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:39:55,901 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:39:55,901 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:39:55,901 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:39:55,901 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:39:55,901 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:39:25', tmtdew=11.47, humidity=45.84, cloud=0.0, wind=30.86, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:39:24.998', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:39:55,902 [DEBUG][       Thread-606399][   transport.py][1871] : EOF in transport thread
2025-07-01 13:39:55,985 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:39:55,997 [DEBUG][       Thread-606402][   transport.py][1871] : starting thread (client mode): 0x818f010
2025-07-01 13:39:55,997 [DEBUG][       Thread-606402][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:39:56,013 [DEBUG][       Thread-606402][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:39:56,013 [ INFO][       Thread-606402][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:39:56,021 [DEBUG][       Thread-606402][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:39:56,021 [DEBUG][       Thread-606402][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:39:56,021 [DEBUG][       Thread-606402][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:39:56,021 [DEBUG][       Thread-606402][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:39:56,021 [DEBUG][       Thread-606402][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:39:56,021 [DEBUG][       Thread-606402][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:39:56,021 [DEBUG][       Thread-606402][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:39:56,021 [DEBUG][       Thread-606402][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:39:56,021 [DEBUG][       Thread-606402][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:39:56,021 [DEBUG][       Thread-606402][   transport.py][1871] : client lang: <none>
2025-07-01 13:39:56,021 [DEBUG][       Thread-606402][   transport.py][1871] : server lang: <none>
2025-07-01 13:39:56,021 [DEBUG][       Thread-606402][   transport.py][1871] : kex follows: False
2025-07-01 13:39:56,021 [DEBUG][       Thread-606402][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:39:56,021 [DEBUG][       Thread-606402][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:39:56,021 [DEBUG][       Thread-606402][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:39:56,021 [DEBUG][       Thread-606402][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:39:56,021 [DEBUG][       Thread-606402][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:39:56,021 [DEBUG][       Thread-606402][   transport.py][1871] : Compression: none
2025-07-01 13:39:56,022 [DEBUG][       Thread-606402][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:39:56,079 [DEBUG][       Thread-606402][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:39:56,079 [DEBUG][       Thread-606402][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:39:56,080 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:39:56,081 [DEBUG][       Thread-606402][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:39:56,081 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:39:56,135 [DEBUG][       Thread-606402][   transport.py][1871] : userauth is OK
2025-07-01 13:39:56,135 [DEBUG][       Thread-606402][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:39:56,135 [DEBUG][       Thread-606402][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:39:56,136 [DEBUG][       Thread-606402][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:39:56,136 [DEBUG][       Thread-606402][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:39:56,155 [ INFO][       Thread-606402][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:39:56,155 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:39:56,155 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:39:57,165 [DEBUG][       Thread-606402][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:39:57,165 [DEBUG][       Thread-606402][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:39:57,216 [DEBUG][       Thread-606402][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:39:57,216 [DEBUG][       Thread-606402][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:39:57,225 [DEBUG][       Thread-606402][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:39:57,234 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:39:57,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')
2025-07-01 13:39:57,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-07-01 13:39:57,253 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:39:57,253 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:39:57,253 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:39:57,261 [DEBUG][       Thread-606402][   transport.py][1871] : EOF in transport thread
2025-07-01 13:40:03,135 [DEBUG][Thread-606404 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:40:07,258 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:40:07,259 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:40:07,259 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:40:07,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-07-01 13:40:07,738 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 39, 57), 11.43, 45.97, 0.0, 36.93, 13.52, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:40:07,738 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:39:57
2025-07-01 13:40:07,822 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:40:07,826 [DEBUG][       Thread-606405][   transport.py][1871] : starting thread (client mode): 0x81d96c0
2025-07-01 13:40:07,826 [DEBUG][       Thread-606405][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:40:07,847 [DEBUG][       Thread-606405][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:40:07,847 [ INFO][       Thread-606405][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:40:07,849 [DEBUG][       Thread-606405][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:40:07,849 [DEBUG][       Thread-606405][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:40:07,849 [DEBUG][       Thread-606405][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:40:07,849 [DEBUG][       Thread-606405][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:40:07,849 [DEBUG][       Thread-606405][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:40:07,849 [DEBUG][       Thread-606405][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:40:07,849 [DEBUG][       Thread-606405][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:40:07,849 [DEBUG][       Thread-606405][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:40:07,849 [DEBUG][       Thread-606405][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:40:07,849 [DEBUG][       Thread-606405][   transport.py][1871] : client lang: <none>
2025-07-01 13:40:07,849 [DEBUG][       Thread-606405][   transport.py][1871] : server lang: <none>
2025-07-01 13:40:07,849 [DEBUG][       Thread-606405][   transport.py][1871] : kex follows: False
2025-07-01 13:40:07,849 [DEBUG][       Thread-606405][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:40:07,849 [DEBUG][       Thread-606405][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:40:07,849 [DEBUG][       Thread-606405][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:40:07,849 [DEBUG][       Thread-606405][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:40:07,849 [DEBUG][       Thread-606405][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:40:07,849 [DEBUG][       Thread-606405][   transport.py][1871] : Compression: none
2025-07-01 13:40:07,849 [DEBUG][       Thread-606405][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:40:07,865 [DEBUG][       Thread-606405][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:40:07,865 [DEBUG][       Thread-606405][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:40:07,865 [DEBUG][       Thread-606405][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:40:07,865 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:40:07,865 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:40:07,866 [DEBUG][       Thread-606405][   transport.py][1871] : userauth is OK
2025-07-01 13:40:07,890 [ INFO][       Thread-606405][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:40:07,890 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:40:08,524 [DEBUG][       Thread-606405][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:40:08,524 [DEBUG][       Thread-606405][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:40:08,568 [DEBUG][       Thread-606405][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:40:08,568 [DEBUG][       Thread-606405][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:40:08,571 [DEBUG][       Thread-606405][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:40:08,583 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:40:08,583 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:40:08,584 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:40:08,585 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:40:08,589 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:40:08,590 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:40:08,590 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:40:08,590 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:40:08,590 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.485706 -999.00  +13.30  35.55     51   +3.40 1 1 2 1 1   888    0 9.86 -0.42 ----- 38.6 35.5 34.4 50.4 16.3 -26.1 15.6 -26.3 15.6 -24.3 16.3 -27.3
2025-07-01 13:40:08,590 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:40:08,590 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:40:08,590 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.485706
2025-07-01 13:40:08,590 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:40:08,590 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:40:08,590 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:40:08,590 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:40:08,590 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:40:08,590 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:39:57', tmtdew=11.43, humidity=45.97, cloud=0.0, wind=36.93, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:39:24.998', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:40:08,591 [DEBUG][       Thread-606405][   transport.py][1871] : EOF in transport thread
2025-07-01 13:40:08,662 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:40:08,671 [DEBUG][       Thread-606408][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 13:40:08,671 [DEBUG][       Thread-606408][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:40:08,687 [DEBUG][       Thread-606408][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:40:08,687 [ INFO][       Thread-606408][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:40:08,694 [DEBUG][       Thread-606408][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:40:08,694 [DEBUG][       Thread-606408][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:40:08,694 [DEBUG][       Thread-606408][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:40:08,694 [DEBUG][       Thread-606408][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:40:08,694 [DEBUG][       Thread-606408][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:40:08,694 [DEBUG][       Thread-606408][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:40:08,694 [DEBUG][       Thread-606408][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:40:08,694 [DEBUG][       Thread-606408][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:40:08,694 [DEBUG][       Thread-606408][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:40:08,694 [DEBUG][       Thread-606408][   transport.py][1871] : client lang: <none>
2025-07-01 13:40:08,694 [DEBUG][       Thread-606408][   transport.py][1871] : server lang: <none>
2025-07-01 13:40:08,694 [DEBUG][       Thread-606408][   transport.py][1871] : kex follows: False
2025-07-01 13:40:08,694 [DEBUG][       Thread-606408][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:40:08,695 [DEBUG][       Thread-606408][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:40:08,695 [DEBUG][       Thread-606408][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:40:08,695 [DEBUG][       Thread-606408][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:40:08,695 [DEBUG][       Thread-606408][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:40:08,695 [DEBUG][       Thread-606408][   transport.py][1871] : Compression: none
2025-07-01 13:40:08,695 [DEBUG][       Thread-606408][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:40:08,754 [DEBUG][       Thread-606408][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:40:08,754 [DEBUG][       Thread-606408][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:40:08,755 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:40:08,755 [DEBUG][       Thread-606408][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:40:08,756 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:40:08,814 [DEBUG][       Thread-606408][   transport.py][1871] : userauth is OK
2025-07-01 13:40:08,814 [DEBUG][       Thread-606408][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:40:08,814 [DEBUG][       Thread-606408][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:40:08,814 [DEBUG][       Thread-606408][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:40:08,814 [DEBUG][       Thread-606408][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:40:08,833 [ INFO][       Thread-606408][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:40:08,833 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:40:08,833 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:40:09,841 [DEBUG][       Thread-606408][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:40:09,841 [DEBUG][       Thread-606408][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:40:09,892 [DEBUG][       Thread-606408][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:40:09,892 [DEBUG][       Thread-606408][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:40:09,902 [DEBUG][       Thread-606408][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:40:09,911 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:40:09,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-07-01 13:40:09,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-07-01 13:40:09,935 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:40:09,935 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:40:09,936 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:40:09,945 [DEBUG][       Thread-606408][   transport.py][1871] : EOF in transport thread
2025-07-01 13:40:12,158 [DEBUG][Thread-606410 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:40:19,946 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:40:19,947 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:40:19,947 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:40:19,950 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:40:20,437 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 39, 57), 11.43, 45.97, 0.0, 36.93, 13.52, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:40:20,437 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:39:57
2025-07-01 13:40:20,521 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:40:20,525 [DEBUG][       Thread-606411][   transport.py][1871] : starting thread (client mode): 0x81daf50
2025-07-01 13:40:20,525 [DEBUG][       Thread-606411][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:40:20,537 [DEBUG][       Thread-606411][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:40:20,537 [ INFO][       Thread-606411][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:40:20,541 [DEBUG][       Thread-606411][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:40:20,541 [DEBUG][       Thread-606411][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:40:20,541 [DEBUG][       Thread-606411][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:40:20,541 [DEBUG][       Thread-606411][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:40:20,541 [DEBUG][       Thread-606411][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:40:20,541 [DEBUG][       Thread-606411][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:40:20,541 [DEBUG][       Thread-606411][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:40:20,541 [DEBUG][       Thread-606411][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:40:20,541 [DEBUG][       Thread-606411][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:40:20,541 [DEBUG][       Thread-606411][   transport.py][1871] : client lang: <none>
2025-07-01 13:40:20,541 [DEBUG][       Thread-606411][   transport.py][1871] : server lang: <none>
2025-07-01 13:40:20,541 [DEBUG][       Thread-606411][   transport.py][1871] : kex follows: False
2025-07-01 13:40:20,541 [DEBUG][       Thread-606411][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:40:20,541 [DEBUG][       Thread-606411][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:40:20,541 [DEBUG][       Thread-606411][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:40:20,541 [DEBUG][       Thread-606411][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:40:20,541 [DEBUG][       Thread-606411][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:40:20,541 [DEBUG][       Thread-606411][   transport.py][1871] : Compression: none
2025-07-01 13:40:20,541 [DEBUG][       Thread-606411][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:40:20,557 [DEBUG][       Thread-606411][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:40:20,558 [DEBUG][       Thread-606411][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:40:20,558 [DEBUG][       Thread-606411][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:40:20,558 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:40:20,559 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:40:20,559 [DEBUG][       Thread-606411][   transport.py][1871] : userauth is OK
2025-07-01 13:40:20,584 [ INFO][       Thread-606411][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:40:20,585 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:40:21,193 [DEBUG][Thread-606413 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:40:21,237 [DEBUG][       Thread-606411][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:40:21,237 [DEBUG][       Thread-606411][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:40:21,281 [DEBUG][       Thread-606411][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:40:21,281 [DEBUG][       Thread-606411][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:40:21,283 [DEBUG][       Thread-606411][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:40:21,296 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:40:21,296 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:40:21,298 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:40:21,300 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:40:21,305 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:40:21,307 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:40:21,307 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:40:21,308 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:40:21,308 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.486053 -999.00  +13.10  39.95     51   +3.30 1 1 2 1 1   888    0 10.08 0.49 ----- 41.8 40.0 44.4 50.6 16.1 -25.6 15.4 -26.6 15.4 -24.3 16.1 -23.5
2025-07-01 13:40:21,308 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:40:21,308 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:40:21,308 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.486053
2025-07-01 13:40:21,309 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:40:21,309 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:40:21,309 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:40:21,309 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:40:21,309 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:40:21,310 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:39:57', tmtdew=11.43, humidity=45.97, cloud=0.0, wind=36.93, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:39:54.979', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:40:21,311 [DEBUG][       Thread-606411][   transport.py][1871] : EOF in transport thread
2025-07-01 13:40:21,393 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:40:21,404 [DEBUG][       Thread-606415][   transport.py][1871] : starting thread (client mode): 0x81c8bb0
2025-07-01 13:40:21,404 [DEBUG][       Thread-606415][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:40:21,418 [DEBUG][       Thread-606415][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:40:21,418 [ INFO][       Thread-606415][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:40:21,426 [DEBUG][       Thread-606415][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:40:21,426 [DEBUG][       Thread-606415][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:40:21,426 [DEBUG][       Thread-606415][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:40:21,426 [DEBUG][       Thread-606415][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:40:21,426 [DEBUG][       Thread-606415][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:40:21,426 [DEBUG][       Thread-606415][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:40:21,427 [DEBUG][       Thread-606415][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:40:21,427 [DEBUG][       Thread-606415][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:40:21,427 [DEBUG][       Thread-606415][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:40:21,427 [DEBUG][       Thread-606415][   transport.py][1871] : client lang: <none>
2025-07-01 13:40:21,427 [DEBUG][       Thread-606415][   transport.py][1871] : server lang: <none>
2025-07-01 13:40:21,427 [DEBUG][       Thread-606415][   transport.py][1871] : kex follows: False
2025-07-01 13:40:21,427 [DEBUG][       Thread-606415][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:40:21,427 [DEBUG][       Thread-606415][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:40:21,427 [DEBUG][       Thread-606415][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:40:21,427 [DEBUG][       Thread-606415][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:40:21,427 [DEBUG][       Thread-606415][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:40:21,427 [DEBUG][       Thread-606415][   transport.py][1871] : Compression: none
2025-07-01 13:40:21,427 [DEBUG][       Thread-606415][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:40:21,486 [DEBUG][       Thread-606415][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:40:21,487 [DEBUG][       Thread-606415][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:40:21,487 [DEBUG][       Thread-606415][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:40:21,488 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:40:21,488 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:40:21,543 [DEBUG][       Thread-606415][   transport.py][1871] : userauth is OK
2025-07-01 13:40:21,543 [DEBUG][       Thread-606415][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:40:21,543 [DEBUG][       Thread-606415][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:40:21,543 [DEBUG][       Thread-606415][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:40:21,543 [DEBUG][       Thread-606415][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:40:21,562 [ INFO][       Thread-606415][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:40:21,562 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:40:21,563 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:40:22,556 [DEBUG][       Thread-606415][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:40:22,557 [DEBUG][       Thread-606415][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:40:22,607 [DEBUG][       Thread-606415][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:40:22,607 [DEBUG][       Thread-606415][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:40:22,615 [DEBUG][       Thread-606415][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:40:22,623 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:40:22,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-07-01 13:40:22,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-07-01 13:40:22,639 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:40:22,639 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:40:22,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:40:22,647 [DEBUG][       Thread-606415][   transport.py][1871] : EOF in transport thread
2025-07-01 13:40:26,157 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:40:26,157 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:40:30,213 [DEBUG][Thread-606417 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:40:32,650 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:40:32,650 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:40:32,650 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:40:32,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-07-01 13:40:32,676 [DEBUG][Thread-606418 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:40:33,127 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 40, 29), 11.22, 46.53, 0.0, 36.58, 13.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:40:33,127 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:40:29
2025-07-01 13:40:33,212 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:40:33,216 [DEBUG][       Thread-606419][   transport.py][1871] : starting thread (client mode): 0x8171b70
2025-07-01 13:40:33,216 [DEBUG][       Thread-606419][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:40:33,236 [DEBUG][       Thread-606419][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:40:33,236 [ INFO][       Thread-606419][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:40:33,239 [DEBUG][       Thread-606419][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:40:33,239 [DEBUG][       Thread-606419][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:40:33,239 [DEBUG][       Thread-606419][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:40:33,239 [DEBUG][       Thread-606419][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:40:33,239 [DEBUG][       Thread-606419][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:40:33,239 [DEBUG][       Thread-606419][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:40:33,239 [DEBUG][       Thread-606419][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:40:33,239 [DEBUG][       Thread-606419][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:40:33,239 [DEBUG][       Thread-606419][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:40:33,239 [DEBUG][       Thread-606419][   transport.py][1871] : client lang: <none>
2025-07-01 13:40:33,239 [DEBUG][       Thread-606419][   transport.py][1871] : server lang: <none>
2025-07-01 13:40:33,240 [DEBUG][       Thread-606419][   transport.py][1871] : kex follows: False
2025-07-01 13:40:33,240 [DEBUG][       Thread-606419][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:40:33,240 [DEBUG][       Thread-606419][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:40:33,240 [DEBUG][       Thread-606419][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:40:33,240 [DEBUG][       Thread-606419][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:40:33,240 [DEBUG][       Thread-606419][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:40:33,240 [DEBUG][       Thread-606419][   transport.py][1871] : Compression: none
2025-07-01 13:40:33,240 [DEBUG][       Thread-606419][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:40:33,256 [DEBUG][       Thread-606419][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:40:33,256 [DEBUG][       Thread-606419][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:40:33,257 [DEBUG][       Thread-606419][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:40:33,257 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:40:33,257 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:40:33,259 [DEBUG][       Thread-606419][   transport.py][1871] : userauth is OK
2025-07-01 13:40:33,283 [ INFO][       Thread-606419][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:40:33,283 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:40:33,971 [DEBUG][       Thread-606419][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:40:33,971 [DEBUG][       Thread-606419][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:40:34,013 [DEBUG][       Thread-606419][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:40:34,013 [DEBUG][       Thread-606419][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:40:34,017 [DEBUG][       Thread-606419][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:40:34,030 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:40:34,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:40:34,033 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:40:34,035 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:40:34,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:40:34,042 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:40:34,042 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:40:34,043 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:40:34,043 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.486053 -999.00  +13.10  39.95     51   +3.30 1 1 2 1 1   888    0 10.08 0.49 ----- 41.8 40.0 44.4 50.6 16.1 -25.6 15.4 -26.6 15.4 -24.3 16.1 -23.5
2025-07-01 13:40:34,043 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:40:34,043 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:40:34,043 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.486053
2025-07-01 13:40:34,044 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:40:34,044 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:40:34,045 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:40:34,045 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:40:34,045 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:40:34,045 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:40:29', tmtdew=11.22, humidity=46.53, cloud=0.0, wind=36.58, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:39:54.979', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:40:34,046 [DEBUG][       Thread-606419][   transport.py][1871] : EOF in transport thread
2025-07-01 13:40:34,128 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:40:34,140 [DEBUG][       Thread-606422][   transport.py][1871] : starting thread (client mode): 0x82b2aa0
2025-07-01 13:40:34,140 [DEBUG][       Thread-606422][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:40:34,155 [DEBUG][       Thread-606422][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:40:34,156 [ INFO][       Thread-606422][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:40:34,163 [DEBUG][       Thread-606422][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:40:34,163 [DEBUG][       Thread-606422][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:40:34,163 [DEBUG][       Thread-606422][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:40:34,164 [DEBUG][       Thread-606422][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:40:34,164 [DEBUG][       Thread-606422][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:40:34,164 [DEBUG][       Thread-606422][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:40:34,164 [DEBUG][       Thread-606422][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:40:34,164 [DEBUG][       Thread-606422][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:40:34,164 [DEBUG][       Thread-606422][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:40:34,164 [DEBUG][       Thread-606422][   transport.py][1871] : client lang: <none>
2025-07-01 13:40:34,164 [DEBUG][       Thread-606422][   transport.py][1871] : server lang: <none>
2025-07-01 13:40:34,164 [DEBUG][       Thread-606422][   transport.py][1871] : kex follows: False
2025-07-01 13:40:34,164 [DEBUG][       Thread-606422][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:40:34,164 [DEBUG][       Thread-606422][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:40:34,164 [DEBUG][       Thread-606422][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:40:34,164 [DEBUG][       Thread-606422][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:40:34,164 [DEBUG][       Thread-606422][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:40:34,164 [DEBUG][       Thread-606422][   transport.py][1871] : Compression: none
2025-07-01 13:40:34,164 [DEBUG][       Thread-606422][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:40:34,226 [DEBUG][       Thread-606422][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:40:34,226 [DEBUG][       Thread-606422][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:40:34,227 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:40:34,227 [DEBUG][       Thread-606422][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:40:34,228 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:40:34,282 [DEBUG][       Thread-606422][   transport.py][1871] : userauth is OK
2025-07-01 13:40:34,282 [DEBUG][       Thread-606422][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:40:34,282 [DEBUG][       Thread-606422][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:40:34,283 [DEBUG][       Thread-606422][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:40:34,283 [DEBUG][       Thread-606422][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:40:34,302 [ INFO][       Thread-606422][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:40:34,302 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:40:34,302 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:40:35,365 [DEBUG][       Thread-606422][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:40:35,365 [DEBUG][       Thread-606422][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:40:35,420 [DEBUG][       Thread-606422][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:40:35,420 [DEBUG][       Thread-606422][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:40:35,430 [DEBUG][       Thread-606422][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:40:35,439 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:40: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-07-01 13:40:35,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-07-01 13:40:35,457 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:40:35,457 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:40:35,458 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:40:35,465 [DEBUG][       Thread-606422][   transport.py][1871] : EOF in transport thread
2025-07-01 13:40:39,233 [DEBUG][Thread-606424 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:40:45,468 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:40:45,468 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:40:45,469 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:40:45,472 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:40:45,960 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 40, 29), 11.22, 46.53, 0.0, 36.58, 13.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:40:45,961 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:40:29
2025-07-01 13:40:46,045 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:40:46,049 [DEBUG][       Thread-606425][   transport.py][1871] : starting thread (client mode): 0x8171ed0
2025-07-01 13:40:46,049 [DEBUG][       Thread-606425][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:40:46,069 [DEBUG][       Thread-606425][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:40:46,069 [ INFO][       Thread-606425][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:40:46,072 [DEBUG][       Thread-606425][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:40:46,072 [DEBUG][       Thread-606425][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:40:46,072 [DEBUG][       Thread-606425][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:40:46,072 [DEBUG][       Thread-606425][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:40:46,072 [DEBUG][       Thread-606425][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:40:46,072 [DEBUG][       Thread-606425][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:40:46,072 [DEBUG][       Thread-606425][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:40:46,072 [DEBUG][       Thread-606425][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:40:46,072 [DEBUG][       Thread-606425][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:40:46,072 [DEBUG][       Thread-606425][   transport.py][1871] : client lang: <none>
2025-07-01 13:40:46,072 [DEBUG][       Thread-606425][   transport.py][1871] : server lang: <none>
2025-07-01 13:40:46,072 [DEBUG][       Thread-606425][   transport.py][1871] : kex follows: False
2025-07-01 13:40:46,072 [DEBUG][       Thread-606425][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:40:46,073 [DEBUG][       Thread-606425][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:40:46,073 [DEBUG][       Thread-606425][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:40:46,073 [DEBUG][       Thread-606425][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:40:46,073 [DEBUG][       Thread-606425][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:40:46,073 [DEBUG][       Thread-606425][   transport.py][1871] : Compression: none
2025-07-01 13:40:46,073 [DEBUG][       Thread-606425][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:40:46,092 [DEBUG][       Thread-606425][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:40:46,092 [DEBUG][       Thread-606425][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:40:46,093 [DEBUG][       Thread-606425][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:40:46,093 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:40:46,093 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:40:46,094 [DEBUG][       Thread-606425][   transport.py][1871] : userauth is OK
2025-07-01 13:40:46,118 [ INFO][       Thread-606425][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:40:46,119 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:40:46,773 [DEBUG][       Thread-606425][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:40:46,774 [DEBUG][       Thread-606425][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:40:46,817 [DEBUG][       Thread-606425][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:40:46,817 [DEBUG][       Thread-606425][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:40:46,821 [DEBUG][       Thread-606425][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:40:46,835 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:40:46,836 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:40:46,838 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:40:46,840 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:40:46,846 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:40:46,848 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:40:46,848 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:40:46,849 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:40:46,849 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.486400 -999.00  +13.10  42.26     51   +3.40 1 1 2 1 1   888    0 9.91 0.42 ----- 37.9 42.3 21.6 51.9 15.9 -26.3 15.3 -25.3 15.3 -23.7 15.9 -24.0
2025-07-01 13:40:46,849 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:40:46,849 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:40:46,849 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.486400
2025-07-01 13:40:46,850 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:40:46,850 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:40:46,850 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:40:46,851 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:40:46,851 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:40:46,851 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:40:29', tmtdew=11.22, humidity=46.53, cloud=0.0, wind=36.58, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:40:24.960', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:40:46,851 [DEBUG][       Thread-606425][   transport.py][1871] : EOF in transport thread
2025-07-01 13:40:46,935 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:40:46,949 [DEBUG][       Thread-606428][   transport.py][1871] : starting thread (client mode): 0x81db8e0
2025-07-01 13:40:46,949 [DEBUG][       Thread-606428][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:40:46,967 [DEBUG][       Thread-606428][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:40:46,967 [ INFO][       Thread-606428][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:40:46,974 [DEBUG][       Thread-606428][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:40:46,975 [DEBUG][       Thread-606428][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:40:46,975 [DEBUG][       Thread-606428][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:40:46,975 [DEBUG][       Thread-606428][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:40:46,975 [DEBUG][       Thread-606428][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:40:46,975 [DEBUG][       Thread-606428][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:40:46,975 [DEBUG][       Thread-606428][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:40:46,975 [DEBUG][       Thread-606428][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:40:46,975 [DEBUG][       Thread-606428][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:40:46,975 [DEBUG][       Thread-606428][   transport.py][1871] : client lang: <none>
2025-07-01 13:40:46,975 [DEBUG][       Thread-606428][   transport.py][1871] : server lang: <none>
2025-07-01 13:40:46,975 [DEBUG][       Thread-606428][   transport.py][1871] : kex follows: False
2025-07-01 13:40:46,975 [DEBUG][       Thread-606428][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:40:46,975 [DEBUG][       Thread-606428][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:40:46,975 [DEBUG][       Thread-606428][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:40:46,975 [DEBUG][       Thread-606428][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:40:46,975 [DEBUG][       Thread-606428][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:40:46,976 [DEBUG][       Thread-606428][   transport.py][1871] : Compression: none
2025-07-01 13:40:46,976 [DEBUG][       Thread-606428][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:40:47,033 [DEBUG][       Thread-606428][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:40:47,034 [DEBUG][       Thread-606428][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:40:47,034 [DEBUG][       Thread-606428][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:40:47,034 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:40:47,035 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:40:47,092 [DEBUG][       Thread-606428][   transport.py][1871] : userauth is OK
2025-07-01 13:40:47,092 [DEBUG][       Thread-606428][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:40:47,092 [DEBUG][       Thread-606428][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:40:47,092 [DEBUG][       Thread-606428][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:40:47,092 [DEBUG][       Thread-606428][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:40:47,111 [ INFO][       Thread-606428][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:40:47,112 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:40:47,112 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:40:48,140 [DEBUG][       Thread-606428][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:40:48,140 [DEBUG][       Thread-606428][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:40:48,188 [DEBUG][       Thread-606428][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:40:48,189 [DEBUG][       Thread-606428][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:40:48,199 [DEBUG][       Thread-606428][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:40:48,213 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:40:48,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-07-01 13:40:48,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-07-01 13:40:48,231 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:40:48,231 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:40:48,232 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:40:48,246 [DEBUG][       Thread-606428][   transport.py][1871] : EOF in transport thread
2025-07-01 13:40:48,265 [DEBUG][Thread-606430 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:40:57,287 [DEBUG][Thread-606431 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:40:58,236 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:40:58,237 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:40:58,237 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:40:58,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-07-01 13:40:58,723 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 40, 29), 11.22, 46.53, 0.0, 36.58, 13.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:40:58,723 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:40:29
2025-07-01 13:40:58,807 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:40:58,811 [DEBUG][       Thread-606432][   transport.py][1871] : starting thread (client mode): 0x81da320
2025-07-01 13:40:58,811 [DEBUG][       Thread-606432][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:40:58,831 [DEBUG][       Thread-606432][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:40:58,831 [ INFO][       Thread-606432][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:40:58,834 [DEBUG][       Thread-606432][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:40:58,835 [DEBUG][       Thread-606432][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:40:58,835 [DEBUG][       Thread-606432][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:40:58,835 [DEBUG][       Thread-606432][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:40:58,835 [DEBUG][       Thread-606432][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:40:58,835 [DEBUG][       Thread-606432][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:40:58,835 [DEBUG][       Thread-606432][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:40:58,835 [DEBUG][       Thread-606432][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:40:58,835 [DEBUG][       Thread-606432][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:40:58,835 [DEBUG][       Thread-606432][   transport.py][1871] : client lang: <none>
2025-07-01 13:40:58,835 [DEBUG][       Thread-606432][   transport.py][1871] : server lang: <none>
2025-07-01 13:40:58,835 [DEBUG][       Thread-606432][   transport.py][1871] : kex follows: False
2025-07-01 13:40:58,835 [DEBUG][       Thread-606432][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:40:58,835 [DEBUG][       Thread-606432][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:40:58,835 [DEBUG][       Thread-606432][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:40:58,835 [DEBUG][       Thread-606432][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:40:58,835 [DEBUG][       Thread-606432][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:40:58,835 [DEBUG][       Thread-606432][   transport.py][1871] : Compression: none
2025-07-01 13:40:58,835 [DEBUG][       Thread-606432][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:40:58,852 [DEBUG][       Thread-606432][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:40:58,852 [DEBUG][       Thread-606432][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:40:58,853 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:40:58,853 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:40:58,853 [DEBUG][       Thread-606432][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:40:58,854 [DEBUG][       Thread-606432][   transport.py][1871] : userauth is OK
2025-07-01 13:40:58,867 [ INFO][       Thread-606432][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:40:58,867 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:40:59,523 [DEBUG][       Thread-606432][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:40:59,523 [DEBUG][       Thread-606432][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:40:59,565 [DEBUG][       Thread-606432][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:40:59,565 [DEBUG][       Thread-606432][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:40:59,569 [DEBUG][       Thread-606432][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:40:59,581 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:40:59,582 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:40:59,584 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:40:59,586 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:40:59,591 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:40:59,593 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:40:59,593 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:40:59,594 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:40:59,594 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.486400 -999.00  +13.10  42.26     51   +3.40 1 1 2 1 1   888    0 9.91 0.42 ----- 37.9 42.3 21.6 51.9 15.9 -26.3 15.3 -25.3 15.3 -23.7 15.9 -24.0
2025-07-01 13:40:59,594 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:40:59,594 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:40:59,594 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.486400
2025-07-01 13:40:59,595 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:40:59,596 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:40:59,596 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:40:59,596 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:40:59,596 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:40:59,596 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:40:29', tmtdew=11.22, humidity=46.53, cloud=0.0, wind=36.58, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:40:24.960', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:40:59,597 [DEBUG][       Thread-606432][   transport.py][1871] : EOF in transport thread
2025-07-01 13:40:59,680 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:40:59,691 [DEBUG][       Thread-606435][   transport.py][1871] : starting thread (client mode): 0x83c8520
2025-07-01 13:40:59,691 [DEBUG][       Thread-606435][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:40:59,707 [DEBUG][       Thread-606435][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:40:59,708 [ INFO][       Thread-606435][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:40:59,715 [DEBUG][       Thread-606435][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:40:59,716 [DEBUG][       Thread-606435][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:40:59,716 [DEBUG][       Thread-606435][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:40:59,716 [DEBUG][       Thread-606435][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:40:59,716 [DEBUG][       Thread-606435][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:40:59,716 [DEBUG][       Thread-606435][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:40:59,716 [DEBUG][       Thread-606435][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:40:59,716 [DEBUG][       Thread-606435][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:40:59,716 [DEBUG][       Thread-606435][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:40:59,716 [DEBUG][       Thread-606435][   transport.py][1871] : client lang: <none>
2025-07-01 13:40:59,716 [DEBUG][       Thread-606435][   transport.py][1871] : server lang: <none>
2025-07-01 13:40:59,716 [DEBUG][       Thread-606435][   transport.py][1871] : kex follows: False
2025-07-01 13:40:59,716 [DEBUG][       Thread-606435][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:40:59,716 [DEBUG][       Thread-606435][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:40:59,716 [DEBUG][       Thread-606435][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:40:59,716 [DEBUG][       Thread-606435][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:40:59,717 [DEBUG][       Thread-606435][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:40:59,717 [DEBUG][       Thread-606435][   transport.py][1871] : Compression: none
2025-07-01 13:40:59,717 [DEBUG][       Thread-606435][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:40:59,774 [DEBUG][       Thread-606435][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:40:59,775 [DEBUG][       Thread-606435][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:40:59,775 [DEBUG][       Thread-606435][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:40:59,776 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:40:59,776 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:40:59,829 [DEBUG][       Thread-606435][   transport.py][1871] : userauth is OK
2025-07-01 13:40:59,830 [DEBUG][       Thread-606435][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:40:59,830 [DEBUG][       Thread-606435][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:40:59,830 [DEBUG][       Thread-606435][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:40:59,830 [DEBUG][       Thread-606435][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:40:59,850 [ INFO][       Thread-606435][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:40:59,850 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:40:59,850 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:41:00,915 [DEBUG][       Thread-606435][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:41:00,915 [DEBUG][       Thread-606435][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:41:00,966 [DEBUG][       Thread-606435][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:41:00,966 [DEBUG][       Thread-606435][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:41:00,976 [DEBUG][       Thread-606435][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:41:00,985 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:41:00,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-07-01 13:41:00,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-07-01 13:41:01,004 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:41:01,004 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:41:01,005 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:41:01,013 [DEBUG][       Thread-606435][   transport.py][1871] : EOF in transport thread
2025-07-01 13:41:06,307 [DEBUG][Thread-606437 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:41:11,015 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:41:11,015 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:41:11,016 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:41:11,019 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:41:11,501 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 41), 11.21, 46.54, 0.0, 38.83, 13.26, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:41:11,501 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:41:00
2025-07-01 13:41:11,588 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:41:11,591 [DEBUG][       Thread-606438][   transport.py][1871] : starting thread (client mode): 0x81da170
2025-07-01 13:41:11,591 [DEBUG][       Thread-606438][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:41:11,605 [DEBUG][       Thread-606438][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:41:11,605 [ INFO][       Thread-606438][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:41:11,608 [DEBUG][       Thread-606438][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:41:11,608 [DEBUG][       Thread-606438][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:41:11,608 [DEBUG][       Thread-606438][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:41:11,608 [DEBUG][       Thread-606438][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:41:11,608 [DEBUG][       Thread-606438][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:41:11,608 [DEBUG][       Thread-606438][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:41:11,608 [DEBUG][       Thread-606438][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:41:11,608 [DEBUG][       Thread-606438][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:41:11,608 [DEBUG][       Thread-606438][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:41:11,608 [DEBUG][       Thread-606438][   transport.py][1871] : client lang: <none>
2025-07-01 13:41:11,608 [DEBUG][       Thread-606438][   transport.py][1871] : server lang: <none>
2025-07-01 13:41:11,608 [DEBUG][       Thread-606438][   transport.py][1871] : kex follows: False
2025-07-01 13:41:11,608 [DEBUG][       Thread-606438][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:41:11,608 [DEBUG][       Thread-606438][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:41:11,608 [DEBUG][       Thread-606438][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:41:11,608 [DEBUG][       Thread-606438][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:41:11,608 [DEBUG][       Thread-606438][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:41:11,608 [DEBUG][       Thread-606438][   transport.py][1871] : Compression: none
2025-07-01 13:41:11,608 [DEBUG][       Thread-606438][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:41:11,626 [DEBUG][       Thread-606438][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:41:11,626 [DEBUG][       Thread-606438][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:41:11,627 [DEBUG][       Thread-606438][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:41:11,627 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:41:11,627 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:41:11,628 [DEBUG][       Thread-606438][   transport.py][1871] : userauth is OK
2025-07-01 13:41:11,653 [ INFO][       Thread-606438][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:41:11,653 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:41:12,243 [DEBUG][       Thread-606438][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:41:12,243 [DEBUG][       Thread-606438][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:41:12,284 [DEBUG][       Thread-606438][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:41:12,285 [DEBUG][       Thread-606438][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:41:12,287 [DEBUG][       Thread-606438][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:41:12,293 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:41:12,293 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:41:12,295 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:41:12,296 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:41:12,301 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:41:12,302 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:41:12,303 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:41:12,303 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:41:12,303 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.486400 -999.00  +13.10  42.26     51   +3.40 1 1 2 1 1   888    0 9.91 0.42 ----- 37.9 42.3 21.6 51.9 15.9 -26.3 15.3 -25.3 15.3 -23.7 15.9 -24.0
2025-07-01 13:41:12,303 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:41:12,303 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:41:12,303 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.486400
2025-07-01 13:41:12,304 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:41:12,304 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:41:12,304 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:41:12,304 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:41:12,305 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:41:12,305 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:41:00', tmtdew=11.21, humidity=46.54, cloud=0.0, wind=38.83, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:40:24.960', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:41:12,305 [DEBUG][       Thread-606438][   transport.py][1871] : EOF in transport thread
2025-07-01 13:41:12,388 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:41:12,397 [DEBUG][       Thread-606441][   transport.py][1871] : starting thread (client mode): 0x8393c40
2025-07-01 13:41:12,397 [DEBUG][       Thread-606441][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:41:12,413 [DEBUG][       Thread-606441][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:41:12,413 [ INFO][       Thread-606441][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:41:12,421 [DEBUG][       Thread-606441][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:41:12,421 [DEBUG][       Thread-606441][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:41:12,421 [DEBUG][       Thread-606441][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:41:12,421 [DEBUG][       Thread-606441][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:41:12,421 [DEBUG][       Thread-606441][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:41:12,421 [DEBUG][       Thread-606441][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:41:12,421 [DEBUG][       Thread-606441][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:41:12,421 [DEBUG][       Thread-606441][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:41:12,421 [DEBUG][       Thread-606441][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:41:12,421 [DEBUG][       Thread-606441][   transport.py][1871] : client lang: <none>
2025-07-01 13:41:12,421 [DEBUG][       Thread-606441][   transport.py][1871] : server lang: <none>
2025-07-01 13:41:12,421 [DEBUG][       Thread-606441][   transport.py][1871] : kex follows: False
2025-07-01 13:41:12,421 [DEBUG][       Thread-606441][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:41:12,421 [DEBUG][       Thread-606441][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:41:12,421 [DEBUG][       Thread-606441][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:41:12,421 [DEBUG][       Thread-606441][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:41:12,422 [DEBUG][       Thread-606441][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:41:12,422 [DEBUG][       Thread-606441][   transport.py][1871] : Compression: none
2025-07-01 13:41:12,422 [DEBUG][       Thread-606441][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:41:12,481 [DEBUG][       Thread-606441][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:41:12,481 [DEBUG][       Thread-606441][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:41:12,482 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:41:12,483 [DEBUG][       Thread-606441][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:41:12,483 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:41:12,537 [DEBUG][       Thread-606441][   transport.py][1871] : userauth is OK
2025-07-01 13:41:12,537 [DEBUG][       Thread-606441][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:41:12,537 [DEBUG][       Thread-606441][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:41:12,537 [DEBUG][       Thread-606441][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:41:12,537 [DEBUG][       Thread-606441][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:41:12,557 [ INFO][       Thread-606441][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:41:12,557 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:41:12,558 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:41:13,604 [DEBUG][       Thread-606441][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:41:13,604 [DEBUG][       Thread-606441][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:41:13,652 [DEBUG][       Thread-606441][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:41:13,652 [DEBUG][       Thread-606441][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:41:13,661 [DEBUG][       Thread-606441][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:41:13,670 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:41:13,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-07-01 13:41:13,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-07-01 13:41:13,688 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:41:13,688 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:41:13,688 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:41:13,696 [DEBUG][       Thread-606441][   transport.py][1871] : EOF in transport thread
2025-07-01 13:41:15,328 [DEBUG][Thread-606443 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:41:23,699 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:41:23,699 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:41:23,699 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:41:23,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-07-01 13:41:24,169 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 41), 11.21, 46.54, 0.0, 38.83, 13.26, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:41:24,169 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:41:00
2025-07-01 13:41:24,254 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:41:24,261 [DEBUG][       Thread-606444][   transport.py][1871] : starting thread (client mode): 0x81d8c40
2025-07-01 13:41:24,261 [DEBUG][       Thread-606444][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:41:24,280 [DEBUG][       Thread-606444][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:41:24,280 [ INFO][       Thread-606444][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:41:24,283 [DEBUG][       Thread-606444][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:41:24,284 [DEBUG][       Thread-606444][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:41:24,284 [DEBUG][       Thread-606444][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:41:24,284 [DEBUG][       Thread-606444][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:41:24,284 [DEBUG][       Thread-606444][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:41:24,284 [DEBUG][       Thread-606444][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:41:24,284 [DEBUG][       Thread-606444][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:41:24,284 [DEBUG][       Thread-606444][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:41:24,284 [DEBUG][       Thread-606444][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:41:24,284 [DEBUG][       Thread-606444][   transport.py][1871] : client lang: <none>
2025-07-01 13:41:24,284 [DEBUG][       Thread-606444][   transport.py][1871] : server lang: <none>
2025-07-01 13:41:24,284 [DEBUG][       Thread-606444][   transport.py][1871] : kex follows: False
2025-07-01 13:41:24,284 [DEBUG][       Thread-606444][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:41:24,284 [DEBUG][       Thread-606444][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:41:24,284 [DEBUG][       Thread-606444][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:41:24,284 [DEBUG][       Thread-606444][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:41:24,284 [DEBUG][       Thread-606444][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:41:24,284 [DEBUG][       Thread-606444][   transport.py][1871] : Compression: none
2025-07-01 13:41:24,284 [DEBUG][       Thread-606444][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:41:24,301 [DEBUG][       Thread-606444][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:41:24,301 [DEBUG][       Thread-606444][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:41:24,302 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:41:24,302 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:41:24,303 [DEBUG][       Thread-606444][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:41:24,303 [DEBUG][       Thread-606444][   transport.py][1871] : userauth is OK
2025-07-01 13:41:24,316 [ INFO][       Thread-606444][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:41:24,317 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:41:24,360 [DEBUG][Thread-606446 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:41:24,907 [DEBUG][       Thread-606444][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:41:24,907 [DEBUG][       Thread-606444][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:41:24,949 [DEBUG][       Thread-606444][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:41:24,949 [DEBUG][       Thread-606444][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:41:24,951 [DEBUG][       Thread-606444][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:41:24,959 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:41:24,959 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:41:24,961 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:41:24,963 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:41:24,968 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:41:24,970 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:41:24,970 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:41:24,971 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:41:24,971 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.486747 -999.00  +13.20  38.20     52   +3.50 1 1 2 1 1   888    0 9.88 0.60 ----- 35.9 38.2 32.8 48.8 15.9 -24.5 15.2 -25.8 15.2 -23.2 15.8 -22.3
2025-07-01 13:41:24,971 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:41:24,971 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:41:24,971 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.486747
2025-07-01 13:41:24,972 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:41:24,972 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:41:24,972 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:41:24,972 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:41:24,972 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:41:24,973 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:41:00', tmtdew=11.21, humidity=46.54, cloud=0.0, wind=38.83, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:40:54.941', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:41:24,974 [DEBUG][       Thread-606444][   transport.py][1871] : EOF in transport thread
2025-07-01 13:41:25,056 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:41:25,067 [DEBUG][       Thread-606448][   transport.py][1871] : starting thread (client mode): 0x83c8070
2025-07-01 13:41:25,067 [DEBUG][       Thread-606448][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:41:25,082 [DEBUG][       Thread-606448][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:41:25,082 [ INFO][       Thread-606448][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:41:25,091 [DEBUG][       Thread-606448][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:41:25,091 [DEBUG][       Thread-606448][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:41:25,091 [DEBUG][       Thread-606448][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:41:25,091 [DEBUG][       Thread-606448][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:41:25,091 [DEBUG][       Thread-606448][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:41:25,091 [DEBUG][       Thread-606448][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:41:25,091 [DEBUG][       Thread-606448][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:41:25,091 [DEBUG][       Thread-606448][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:41:25,091 [DEBUG][       Thread-606448][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:41:25,091 [DEBUG][       Thread-606448][   transport.py][1871] : client lang: <none>
2025-07-01 13:41:25,091 [DEBUG][       Thread-606448][   transport.py][1871] : server lang: <none>
2025-07-01 13:41:25,091 [DEBUG][       Thread-606448][   transport.py][1871] : kex follows: False
2025-07-01 13:41:25,091 [DEBUG][       Thread-606448][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:41:25,091 [DEBUG][       Thread-606448][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:41:25,092 [DEBUG][       Thread-606448][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:41:25,092 [DEBUG][       Thread-606448][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:41:25,092 [DEBUG][       Thread-606448][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:41:25,092 [DEBUG][       Thread-606448][   transport.py][1871] : Compression: none
2025-07-01 13:41:25,092 [DEBUG][       Thread-606448][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:41:25,149 [DEBUG][       Thread-606448][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:41:25,150 [DEBUG][       Thread-606448][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:41:25,150 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:41:25,151 [DEBUG][       Thread-606448][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:41:25,151 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:41:25,205 [DEBUG][       Thread-606448][   transport.py][1871] : userauth is OK
2025-07-01 13:41:25,205 [DEBUG][       Thread-606448][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:41:25,205 [DEBUG][       Thread-606448][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:41:25,205 [DEBUG][       Thread-606448][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:41:25,206 [DEBUG][       Thread-606448][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:41:25,225 [ INFO][       Thread-606448][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:41:25,225 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:41:25,226 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:41:26,288 [DEBUG][       Thread-606448][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:41:26,288 [DEBUG][       Thread-606448][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:41:26,294 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:41:26,295 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:41:26,336 [DEBUG][       Thread-606448][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:41:26,336 [DEBUG][       Thread-606448][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:41:26,345 [DEBUG][       Thread-606448][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:41:26,354 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:41:26,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-07-01 13:41:26,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-07-01 13:41:26,372 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:41:26,372 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:41:26,372 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:41:26,380 [DEBUG][       Thread-606448][   transport.py][1871] : EOF in transport thread
2025-07-01 13:41:32,708 [DEBUG][Thread-606450 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:41:33,382 [DEBUG][Thread-606451 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:41:36,383 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:41:36,383 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:41:36,383 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:41:36,386 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:41:36,867 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 41, 32), 11.17, 46.79, 0.0, 32.62, 13.22, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:41:36,867 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:41:32
2025-07-01 13:41:36,951 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:41:36,958 [DEBUG][       Thread-606452][   transport.py][1871] : starting thread (client mode): 0x81d9ae0
2025-07-01 13:41:36,958 [DEBUG][       Thread-606452][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:41:36,978 [DEBUG][       Thread-606452][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:41:36,978 [ INFO][       Thread-606452][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:41:36,980 [DEBUG][       Thread-606452][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:41:36,980 [DEBUG][       Thread-606452][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:41:36,980 [DEBUG][       Thread-606452][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:41:36,980 [DEBUG][       Thread-606452][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:41:36,980 [DEBUG][       Thread-606452][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:41:36,980 [DEBUG][       Thread-606452][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:41:36,980 [DEBUG][       Thread-606452][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:41:36,980 [DEBUG][       Thread-606452][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:41:36,980 [DEBUG][       Thread-606452][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:41:36,980 [DEBUG][       Thread-606452][   transport.py][1871] : client lang: <none>
2025-07-01 13:41:36,980 [DEBUG][       Thread-606452][   transport.py][1871] : server lang: <none>
2025-07-01 13:41:36,980 [DEBUG][       Thread-606452][   transport.py][1871] : kex follows: False
2025-07-01 13:41:36,980 [DEBUG][       Thread-606452][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:41:36,980 [DEBUG][       Thread-606452][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:41:36,980 [DEBUG][       Thread-606452][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:41:36,980 [DEBUG][       Thread-606452][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:41:36,980 [DEBUG][       Thread-606452][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:41:36,980 [DEBUG][       Thread-606452][   transport.py][1871] : Compression: none
2025-07-01 13:41:36,980 [DEBUG][       Thread-606452][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:41:36,999 [DEBUG][       Thread-606452][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:41:36,999 [DEBUG][       Thread-606452][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:41:37,000 [DEBUG][       Thread-606452][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:41:37,000 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:41:37,000 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:41:37,001 [DEBUG][       Thread-606452][   transport.py][1871] : userauth is OK
2025-07-01 13:41:37,026 [ INFO][       Thread-606452][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:41:37,027 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:41:37,797 [DEBUG][       Thread-606452][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:41:37,798 [DEBUG][       Thread-606452][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:41:37,841 [DEBUG][       Thread-606452][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:41:37,841 [DEBUG][       Thread-606452][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:41:37,844 [DEBUG][       Thread-606452][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:41:37,849 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:41:37,849 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:41:37,851 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:41:37,853 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:41:37,858 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:41:37,860 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:41:37,860 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:41:37,861 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:41:37,861 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.486747 -999.00  +13.20  38.20     52   +3.50 1 1 2 1 1   888    0 9.88 0.60 ----- 35.9 38.2 32.8 48.8 15.9 -24.5 15.2 -25.8 15.2 -23.2 15.8 -22.3
2025-07-01 13:41:37,861 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:41:37,861 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:41:37,861 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.486747
2025-07-01 13:41:37,861 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:41:37,862 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:41:37,862 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:41:37,862 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:41:37,862 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:41:37,862 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:41:32', tmtdew=11.17, humidity=46.79, cloud=0.0, wind=32.62, temperature=13.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:40:54.941', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:41:37,863 [DEBUG][       Thread-606452][   transport.py][1871] : EOF in transport thread
2025-07-01 13:41:37,946 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:41:37,955 [DEBUG][       Thread-606455][   transport.py][1871] : starting thread (client mode): 0x81e7f70
2025-07-01 13:41:37,955 [DEBUG][       Thread-606455][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:41:37,971 [DEBUG][       Thread-606455][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:41:37,971 [ INFO][       Thread-606455][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:41:37,981 [DEBUG][       Thread-606455][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:41:37,981 [DEBUG][       Thread-606455][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:41:37,981 [DEBUG][       Thread-606455][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:41:37,981 [DEBUG][       Thread-606455][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:41:37,981 [DEBUG][       Thread-606455][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:41:37,981 [DEBUG][       Thread-606455][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:41:37,981 [DEBUG][       Thread-606455][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:41:37,981 [DEBUG][       Thread-606455][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:41:37,981 [DEBUG][       Thread-606455][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:41:37,981 [DEBUG][       Thread-606455][   transport.py][1871] : client lang: <none>
2025-07-01 13:41:37,981 [DEBUG][       Thread-606455][   transport.py][1871] : server lang: <none>
2025-07-01 13:41:37,981 [DEBUG][       Thread-606455][   transport.py][1871] : kex follows: False
2025-07-01 13:41:37,981 [DEBUG][       Thread-606455][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:41:37,982 [DEBUG][       Thread-606455][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:41:37,982 [DEBUG][       Thread-606455][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:41:37,982 [DEBUG][       Thread-606455][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:41:37,982 [DEBUG][       Thread-606455][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:41:37,982 [DEBUG][       Thread-606455][   transport.py][1871] : Compression: none
2025-07-01 13:41:37,982 [DEBUG][       Thread-606455][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:41:38,041 [DEBUG][       Thread-606455][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:41:38,041 [DEBUG][       Thread-606455][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:41:38,042 [DEBUG][       Thread-606455][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:41:38,042 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:41:38,043 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:41:38,096 [DEBUG][       Thread-606455][   transport.py][1871] : userauth is OK
2025-07-01 13:41:38,096 [DEBUG][       Thread-606455][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:41:38,096 [DEBUG][       Thread-606455][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:41:38,096 [DEBUG][       Thread-606455][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:41:38,096 [DEBUG][       Thread-606455][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:41:38,111 [ INFO][       Thread-606455][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:41:38,111 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:41:38,111 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:41:39,113 [DEBUG][       Thread-606455][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:41:39,114 [DEBUG][       Thread-606455][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:41:39,164 [DEBUG][       Thread-606455][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:41:39,164 [DEBUG][       Thread-606455][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:41:39,174 [DEBUG][       Thread-606455][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:41:39,183 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:41:39,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-07-01 13:41:39,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-07-01 13:41:39,202 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:41:39,202 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:41:39,202 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:41:39,211 [DEBUG][       Thread-606455][   transport.py][1871] : EOF in transport thread
2025-07-01 13:41:42,398 [DEBUG][Thread-606457 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:41:49,213 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:41:49,213 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:41:49,213 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:41:49,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-07-01 13:41:49,665 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 41, 32), 11.17, 46.79, 0.0, 32.62, 13.22, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:41:49,665 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:41:32
2025-07-01 13:41:49,750 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:41:49,754 [DEBUG][       Thread-606458][   transport.py][1871] : starting thread (client mode): 0x75aa110
2025-07-01 13:41:49,754 [DEBUG][       Thread-606458][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:41:49,774 [DEBUG][       Thread-606458][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:41:49,774 [ INFO][       Thread-606458][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:41:49,776 [DEBUG][       Thread-606458][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:41:49,776 [DEBUG][       Thread-606458][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:41:49,776 [DEBUG][       Thread-606458][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:41:49,776 [DEBUG][       Thread-606458][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:41:49,776 [DEBUG][       Thread-606458][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:41:49,776 [DEBUG][       Thread-606458][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:41:49,776 [DEBUG][       Thread-606458][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:41:49,776 [DEBUG][       Thread-606458][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:41:49,776 [DEBUG][       Thread-606458][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:41:49,776 [DEBUG][       Thread-606458][   transport.py][1871] : client lang: <none>
2025-07-01 13:41:49,776 [DEBUG][       Thread-606458][   transport.py][1871] : server lang: <none>
2025-07-01 13:41:49,776 [DEBUG][       Thread-606458][   transport.py][1871] : kex follows: False
2025-07-01 13:41:49,776 [DEBUG][       Thread-606458][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:41:49,776 [DEBUG][       Thread-606458][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:41:49,776 [DEBUG][       Thread-606458][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:41:49,776 [DEBUG][       Thread-606458][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:41:49,776 [DEBUG][       Thread-606458][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:41:49,776 [DEBUG][       Thread-606458][   transport.py][1871] : Compression: none
2025-07-01 13:41:49,776 [DEBUG][       Thread-606458][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:41:49,786 [DEBUG][       Thread-606458][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:41:49,786 [DEBUG][       Thread-606458][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:41:49,787 [DEBUG][       Thread-606458][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:41:49,787 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:41:49,787 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:41:49,788 [DEBUG][       Thread-606458][   transport.py][1871] : userauth is OK
2025-07-01 13:41:49,801 [ INFO][       Thread-606458][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:41:49,801 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:41:50,433 [DEBUG][       Thread-606458][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:41:50,433 [DEBUG][       Thread-606458][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:41:50,476 [DEBUG][       Thread-606458][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:41:50,477 [DEBUG][       Thread-606458][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:41:50,479 [DEBUG][       Thread-606458][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:41:50,487 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:41:50,487 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:41:50,489 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:41:50,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:41:50,495 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:41:50,496 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:41:50,497 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:41:50,497 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:41:50,497 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.487095 -999.00  +13.10  37.92     51   +3.40 1 1 2 1 1   888    0 9.71 1.01 ----- 37.5 37.9 26.8 52.5 15.8 -24.5 15.2 -25.2 15.2 -24.2 15.8 -22.2
2025-07-01 13:41:50,497 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:41:50,498 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:41:50,498 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.487095
2025-07-01 13:41:50,498 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:41:50,499 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:41:50,499 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:41:50,499 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:41:50,499 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:41:50,499 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:41:32', tmtdew=11.17, humidity=46.79, cloud=0.0, wind=32.62, temperature=13.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:41:25.008', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:41:50,499 [DEBUG][       Thread-606458][   transport.py][1871] : EOF in transport thread
2025-07-01 13:41:50,584 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:41:50,595 [DEBUG][       Thread-606461][   transport.py][1871] : starting thread (client mode): 0x8104f40
2025-07-01 13:41:50,595 [DEBUG][       Thread-606461][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:41:50,613 [DEBUG][       Thread-606461][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:41:50,613 [ INFO][       Thread-606461][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:41:50,621 [DEBUG][       Thread-606461][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:41:50,621 [DEBUG][       Thread-606461][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:41:50,621 [DEBUG][       Thread-606461][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:41:50,621 [DEBUG][       Thread-606461][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:41:50,621 [DEBUG][       Thread-606461][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:41:50,621 [DEBUG][       Thread-606461][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:41:50,621 [DEBUG][       Thread-606461][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:41:50,621 [DEBUG][       Thread-606461][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:41:50,621 [DEBUG][       Thread-606461][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:41:50,621 [DEBUG][       Thread-606461][   transport.py][1871] : client lang: <none>
2025-07-01 13:41:50,621 [DEBUG][       Thread-606461][   transport.py][1871] : server lang: <none>
2025-07-01 13:41:50,621 [DEBUG][       Thread-606461][   transport.py][1871] : kex follows: False
2025-07-01 13:41:50,621 [DEBUG][       Thread-606461][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:41:50,621 [DEBUG][       Thread-606461][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:41:50,621 [DEBUG][       Thread-606461][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:41:50,621 [DEBUG][       Thread-606461][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:41:50,621 [DEBUG][       Thread-606461][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:41:50,621 [DEBUG][       Thread-606461][   transport.py][1871] : Compression: none
2025-07-01 13:41:50,621 [DEBUG][       Thread-606461][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:41:50,680 [DEBUG][       Thread-606461][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:41:50,680 [DEBUG][       Thread-606461][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:41:50,681 [DEBUG][       Thread-606461][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:41:50,681 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:41:50,682 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:41:50,739 [DEBUG][       Thread-606461][   transport.py][1871] : userauth is OK
2025-07-01 13:41:50,739 [DEBUG][       Thread-606461][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:41:50,739 [DEBUG][       Thread-606461][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:41:50,739 [DEBUG][       Thread-606461][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:41:50,739 [DEBUG][       Thread-606461][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:41:50,758 [ INFO][       Thread-606461][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:41:50,758 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:41:50,759 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:41:51,424 [DEBUG][Thread-606463 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:41:51,843 [DEBUG][       Thread-606461][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:41:51,844 [DEBUG][       Thread-606461][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:41:51,892 [DEBUG][       Thread-606461][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:41:51,893 [DEBUG][       Thread-606461][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:41:51,902 [DEBUG][       Thread-606461][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:41:51,911 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:41:51,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-07-01 13:41:51,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-07-01 13:41:51,929 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:41:51,929 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:41:51,930 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:41:51,938 [DEBUG][       Thread-606461][   transport.py][1871] : EOF in transport thread
2025-07-01 13:42:00,448 [DEBUG][Thread-606464 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:42:01,940 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:42:01,941 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:42:01,941 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:42:01,943 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:42:02,411 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 41, 32), 11.17, 46.79, 0.0, 32.62, 13.22, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:42:02,411 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:41:32
2025-07-01 13:42:02,496 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:42:02,502 [DEBUG][       Thread-606465][   transport.py][1871] : starting thread (client mode): 0x8172c80
2025-07-01 13:42:02,502 [DEBUG][       Thread-606465][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:42:02,522 [DEBUG][       Thread-606465][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:42:02,522 [ INFO][       Thread-606465][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:42:02,525 [DEBUG][       Thread-606465][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:42:02,525 [DEBUG][       Thread-606465][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:42:02,525 [DEBUG][       Thread-606465][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:42:02,525 [DEBUG][       Thread-606465][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:42:02,525 [DEBUG][       Thread-606465][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:42:02,525 [DEBUG][       Thread-606465][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:42:02,525 [DEBUG][       Thread-606465][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:42:02,525 [DEBUG][       Thread-606465][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:42:02,525 [DEBUG][       Thread-606465][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:42:02,525 [DEBUG][       Thread-606465][   transport.py][1871] : client lang: <none>
2025-07-01 13:42:02,525 [DEBUG][       Thread-606465][   transport.py][1871] : server lang: <none>
2025-07-01 13:42:02,525 [DEBUG][       Thread-606465][   transport.py][1871] : kex follows: False
2025-07-01 13:42:02,525 [DEBUG][       Thread-606465][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:42:02,525 [DEBUG][       Thread-606465][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:42:02,525 [DEBUG][       Thread-606465][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:42:02,525 [DEBUG][       Thread-606465][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:42:02,525 [DEBUG][       Thread-606465][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:42:02,525 [DEBUG][       Thread-606465][   transport.py][1871] : Compression: none
2025-07-01 13:42:02,525 [DEBUG][       Thread-606465][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:42:02,543 [DEBUG][       Thread-606465][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:42:02,543 [DEBUG][       Thread-606465][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:42:02,543 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:42:02,544 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:42:02,544 [DEBUG][       Thread-606465][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:42:02,545 [DEBUG][       Thread-606465][   transport.py][1871] : userauth is OK
2025-07-01 13:42:02,569 [ INFO][       Thread-606465][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:42:02,570 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:42:03,407 [DEBUG][       Thread-606465][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:42:03,407 [DEBUG][       Thread-606465][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:42:03,449 [DEBUG][       Thread-606465][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:42:03,449 [DEBUG][       Thread-606465][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:42:03,452 [DEBUG][       Thread-606465][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:42:03,464 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:42:03,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:42:03,466 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:42:03,468 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:42:03,474 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:42:03,475 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:42:03,476 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:42:03,476 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:42:03,477 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.487095 -999.00  +13.10  37.92     51   +3.40 1 1 2 1 1   888    0 9.71 1.01 ----- 37.5 37.9 26.8 52.5 15.8 -24.5 15.2 -25.2 15.2 -24.2 15.8 -22.2
2025-07-01 13:42:03,477 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:42:03,477 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:42:03,477 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.487095
2025-07-01 13:42:03,477 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:42:03,478 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:42:03,478 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:42:03,478 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:42:03,478 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:42:03,478 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:41:32', tmtdew=11.17, humidity=46.79, cloud=0.0, wind=32.62, temperature=13.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:41:25.008', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:42:03,479 [DEBUG][       Thread-606465][   transport.py][1871] : EOF in transport thread
2025-07-01 13:42:03,562 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:42:03,571 [DEBUG][       Thread-606468][   transport.py][1871] : starting thread (client mode): 0x75ab490
2025-07-01 13:42:03,571 [DEBUG][       Thread-606468][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:42:03,586 [DEBUG][       Thread-606468][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:42:03,586 [ INFO][       Thread-606468][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:42:03,593 [DEBUG][       Thread-606468][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:42:03,593 [DEBUG][       Thread-606468][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:42:03,593 [DEBUG][       Thread-606468][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:42:03,593 [DEBUG][       Thread-606468][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:42:03,593 [DEBUG][       Thread-606468][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:42:03,593 [DEBUG][       Thread-606468][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:42:03,594 [DEBUG][       Thread-606468][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:42:03,594 [DEBUG][       Thread-606468][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:42:03,594 [DEBUG][       Thread-606468][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:42:03,594 [DEBUG][       Thread-606468][   transport.py][1871] : client lang: <none>
2025-07-01 13:42:03,594 [DEBUG][       Thread-606468][   transport.py][1871] : server lang: <none>
2025-07-01 13:42:03,594 [DEBUG][       Thread-606468][   transport.py][1871] : kex follows: False
2025-07-01 13:42:03,594 [DEBUG][       Thread-606468][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:42:03,594 [DEBUG][       Thread-606468][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:42:03,594 [DEBUG][       Thread-606468][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:42:03,594 [DEBUG][       Thread-606468][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:42:03,594 [DEBUG][       Thread-606468][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:42:03,594 [DEBUG][       Thread-606468][   transport.py][1871] : Compression: none
2025-07-01 13:42:03,594 [DEBUG][       Thread-606468][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:42:03,652 [DEBUG][       Thread-606468][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:42:03,653 [DEBUG][       Thread-606468][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:42:03,653 [DEBUG][       Thread-606468][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:42:03,654 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:42:03,654 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:42:03,708 [DEBUG][       Thread-606468][   transport.py][1871] : userauth is OK
2025-07-01 13:42:03,709 [DEBUG][       Thread-606468][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:42:03,709 [DEBUG][       Thread-606468][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:42:03,709 [DEBUG][       Thread-606468][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:42:03,709 [DEBUG][       Thread-606468][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:42:03,728 [ INFO][       Thread-606468][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:42:03,729 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:42:03,729 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:42:04,770 [DEBUG][       Thread-606468][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:42:04,770 [DEBUG][       Thread-606468][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:42:04,820 [DEBUG][       Thread-606468][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:42:04,820 [DEBUG][       Thread-606468][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:42:04,830 [DEBUG][       Thread-606468][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:42:04,839 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:42:04,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-07-01 13:42:04,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-07-01 13:42:04,857 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:42:04,858 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:42:04,858 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:42:04,866 [DEBUG][       Thread-606468][   transport.py][1871] : EOF in transport thread
2025-07-01 13:42:09,469 [DEBUG][Thread-606470 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:42:14,869 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:42:14,869 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:42:14,869 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:42:14,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-07-01 13:42:15,346 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 42, 4), 11.12, 46.94, 0.0, 31.07, 13.22, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:42:15,346 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:42:04
2025-07-01 13:42:15,431 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:42:15,435 [DEBUG][       Thread-606471][   transport.py][1871] : starting thread (client mode): 0x75a9330
2025-07-01 13:42:15,435 [DEBUG][       Thread-606471][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:42:15,455 [DEBUG][       Thread-606471][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:42:15,455 [ INFO][       Thread-606471][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:42:15,458 [DEBUG][       Thread-606471][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:42:15,459 [DEBUG][       Thread-606471][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:42:15,459 [DEBUG][       Thread-606471][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:42:15,459 [DEBUG][       Thread-606471][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:42:15,459 [DEBUG][       Thread-606471][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:42:15,459 [DEBUG][       Thread-606471][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:42:15,459 [DEBUG][       Thread-606471][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:42:15,459 [DEBUG][       Thread-606471][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:42:15,459 [DEBUG][       Thread-606471][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:42:15,459 [DEBUG][       Thread-606471][   transport.py][1871] : client lang: <none>
2025-07-01 13:42:15,459 [DEBUG][       Thread-606471][   transport.py][1871] : server lang: <none>
2025-07-01 13:42:15,459 [DEBUG][       Thread-606471][   transport.py][1871] : kex follows: False
2025-07-01 13:42:15,459 [DEBUG][       Thread-606471][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:42:15,459 [DEBUG][       Thread-606471][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:42:15,459 [DEBUG][       Thread-606471][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:42:15,459 [DEBUG][       Thread-606471][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:42:15,459 [DEBUG][       Thread-606471][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:42:15,459 [DEBUG][       Thread-606471][   transport.py][1871] : Compression: none
2025-07-01 13:42:15,459 [DEBUG][       Thread-606471][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:42:15,465 [DEBUG][       Thread-606471][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:42:15,465 [DEBUG][       Thread-606471][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:42:15,466 [DEBUG][       Thread-606471][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:42:15,466 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:42:15,466 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:42:15,466 [DEBUG][       Thread-606471][   transport.py][1871] : userauth is OK
2025-07-01 13:42:15,478 [ INFO][       Thread-606471][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:42:15,479 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:42:16,287 [DEBUG][       Thread-606471][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:42:16,287 [DEBUG][       Thread-606471][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:42:16,329 [DEBUG][       Thread-606471][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:42:16,329 [DEBUG][       Thread-606471][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:42:16,333 [DEBUG][       Thread-606471][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:42:16,344 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:42:16,345 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:42:16,346 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:42:16,348 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:42:16,354 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:42:16,356 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:42:16,356 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:42:16,357 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:42:16,357 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.487095 -999.00  +13.10  37.92     51   +3.40 1 1 2 1 1   888    0 9.71 1.01 ----- 37.5 37.9 26.8 52.5 15.8 -24.5 15.2 -25.2 15.2 -24.2 15.8 -22.2
2025-07-01 13:42:16,357 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:42:16,357 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:42:16,357 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.487095
2025-07-01 13:42:16,358 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:42:16,358 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:42:16,358 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:42:16,359 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:42:16,359 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:42:16,359 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:42:04', tmtdew=11.12, humidity=46.94, cloud=0.0, wind=31.07, temperature=13.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:41:25.008', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:42:16,360 [DEBUG][       Thread-606471][   transport.py][1871] : EOF in transport thread
2025-07-01 13:42:16,443 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:42:16,458 [DEBUG][       Thread-606474][   transport.py][1871] : starting thread (client mode): 0x4701ec20
2025-07-01 13:42:16,458 [DEBUG][       Thread-606474][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:42:16,474 [DEBUG][       Thread-606474][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:42:16,475 [ INFO][       Thread-606474][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:42:16,482 [DEBUG][       Thread-606474][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:42:16,482 [DEBUG][       Thread-606474][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:42:16,482 [DEBUG][       Thread-606474][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:42:16,482 [DEBUG][       Thread-606474][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:42:16,482 [DEBUG][       Thread-606474][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:42:16,483 [DEBUG][       Thread-606474][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:42:16,483 [DEBUG][       Thread-606474][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:42:16,483 [DEBUG][       Thread-606474][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:42:16,483 [DEBUG][       Thread-606474][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:42:16,483 [DEBUG][       Thread-606474][   transport.py][1871] : client lang: <none>
2025-07-01 13:42:16,483 [DEBUG][       Thread-606474][   transport.py][1871] : server lang: <none>
2025-07-01 13:42:16,483 [DEBUG][       Thread-606474][   transport.py][1871] : kex follows: False
2025-07-01 13:42:16,483 [DEBUG][       Thread-606474][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:42:16,483 [DEBUG][       Thread-606474][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:42:16,483 [DEBUG][       Thread-606474][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:42:16,483 [DEBUG][       Thread-606474][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:42:16,483 [DEBUG][       Thread-606474][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:42:16,483 [DEBUG][       Thread-606474][   transport.py][1871] : Compression: none
2025-07-01 13:42:16,483 [DEBUG][       Thread-606474][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:42:16,539 [DEBUG][       Thread-606474][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:42:16,540 [DEBUG][       Thread-606474][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:42:16,541 [DEBUG][       Thread-606474][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:42:16,541 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:42:16,542 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:42:16,596 [DEBUG][       Thread-606474][   transport.py][1871] : userauth is OK
2025-07-01 13:42:16,596 [DEBUG][       Thread-606474][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:42:16,596 [DEBUG][       Thread-606474][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:42:16,597 [DEBUG][       Thread-606474][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:42:16,597 [DEBUG][       Thread-606474][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:42:16,615 [ INFO][       Thread-606474][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:42:16,616 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:42:16,616 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:42:17,610 [DEBUG][       Thread-606474][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:42:17,610 [DEBUG][       Thread-606474][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:42:17,659 [DEBUG][       Thread-606474][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:42:17,659 [DEBUG][       Thread-606474][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:42:17,667 [DEBUG][       Thread-606474][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:42:17,675 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:42: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-07-01 13:42:17,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-07-01 13:42:17,691 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:42:17,691 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:42:17,691 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:42:17,699 [DEBUG][       Thread-606474][   transport.py][1871] : EOF in transport thread
2025-07-01 13:42:18,490 [DEBUG][Thread-606476 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:42:26,434 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:42:26,435 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:42:27,525 [DEBUG][Thread-606477 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:42:27,701 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:42:27,702 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:42:27,702 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:42:27,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-07-01 13:42:28,178 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 42, 4), 11.12, 46.94, 0.0, 31.07, 13.22, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:42:28,178 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:42:04
2025-07-01 13:42:28,262 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:42:28,267 [DEBUG][       Thread-606478][   transport.py][1871] : starting thread (client mode): 0x75a9150
2025-07-01 13:42:28,267 [DEBUG][       Thread-606478][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:42:28,288 [DEBUG][       Thread-606478][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:42:28,288 [ INFO][       Thread-606478][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:42:28,291 [DEBUG][       Thread-606478][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:42:28,291 [DEBUG][       Thread-606478][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:42:28,292 [DEBUG][       Thread-606478][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:42:28,292 [DEBUG][       Thread-606478][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:42:28,292 [DEBUG][       Thread-606478][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:42:28,292 [DEBUG][       Thread-606478][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:42:28,292 [DEBUG][       Thread-606478][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:42:28,292 [DEBUG][       Thread-606478][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:42:28,292 [DEBUG][       Thread-606478][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:42:28,292 [DEBUG][       Thread-606478][   transport.py][1871] : client lang: <none>
2025-07-01 13:42:28,292 [DEBUG][       Thread-606478][   transport.py][1871] : server lang: <none>
2025-07-01 13:42:28,292 [DEBUG][       Thread-606478][   transport.py][1871] : kex follows: False
2025-07-01 13:42:28,292 [DEBUG][       Thread-606478][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:42:28,292 [DEBUG][       Thread-606478][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:42:28,292 [DEBUG][       Thread-606478][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:42:28,292 [DEBUG][       Thread-606478][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:42:28,292 [DEBUG][       Thread-606478][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:42:28,292 [DEBUG][       Thread-606478][   transport.py][1871] : Compression: none
2025-07-01 13:42:28,292 [DEBUG][       Thread-606478][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:42:28,309 [DEBUG][       Thread-606478][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:42:28,310 [DEBUG][       Thread-606478][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:42:28,310 [DEBUG][       Thread-606478][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:42:28,310 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:42:28,311 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:42:28,312 [DEBUG][       Thread-606478][   transport.py][1871] : userauth is OK
2025-07-01 13:42:28,324 [ INFO][       Thread-606478][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:42:28,325 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:42:28,960 [DEBUG][       Thread-606478][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:42:28,960 [DEBUG][       Thread-606478][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:42:29,001 [DEBUG][       Thread-606478][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:42:29,001 [DEBUG][       Thread-606478][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:42:29,004 [DEBUG][       Thread-606478][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:42:29,016 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:42:29,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:42:29,018 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:42:29,020 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:42:29,025 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:42:29,027 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:42:29,027 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:42:29,028 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:42:29,028 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.487442 -999.00  +13.10  44.47     51   +3.30 1 1 2 1 1   888    0 9.92 1.06 ----- 44.4 44.5 28.2 49.9 15.7 -24.3 15.1 -24.9 15.0 -23.1 15.7 -22.3
2025-07-01 13:42:29,028 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:42:29,028 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:42:29,028 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.487442
2025-07-01 13:42:29,028 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:42:29,029 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:42:29,029 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:42:29,029 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:42:29,029 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:42:29,029 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:42:04', tmtdew=11.12, humidity=46.94, cloud=0.0, wind=31.07, temperature=13.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:41:54.989', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:42:29,030 [DEBUG][       Thread-606478][   transport.py][1871] : EOF in transport thread
2025-07-01 13:42:29,113 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:42:29,124 [DEBUG][       Thread-606481][   transport.py][1871] : starting thread (client mode): 0x81da8f0
2025-07-01 13:42:29,124 [DEBUG][       Thread-606481][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:42:29,140 [DEBUG][       Thread-606481][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:42:29,140 [ INFO][       Thread-606481][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:42:29,147 [DEBUG][       Thread-606481][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:42:29,147 [DEBUG][       Thread-606481][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:42:29,147 [DEBUG][       Thread-606481][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:42:29,147 [DEBUG][       Thread-606481][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:42:29,147 [DEBUG][       Thread-606481][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:42:29,147 [DEBUG][       Thread-606481][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:42:29,148 [DEBUG][       Thread-606481][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:42:29,148 [DEBUG][       Thread-606481][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:42:29,148 [DEBUG][       Thread-606481][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:42:29,148 [DEBUG][       Thread-606481][   transport.py][1871] : client lang: <none>
2025-07-01 13:42:29,148 [DEBUG][       Thread-606481][   transport.py][1871] : server lang: <none>
2025-07-01 13:42:29,148 [DEBUG][       Thread-606481][   transport.py][1871] : kex follows: False
2025-07-01 13:42:29,148 [DEBUG][       Thread-606481][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:42:29,148 [DEBUG][       Thread-606481][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:42:29,148 [DEBUG][       Thread-606481][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:42:29,148 [DEBUG][       Thread-606481][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:42:29,148 [DEBUG][       Thread-606481][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:42:29,148 [DEBUG][       Thread-606481][   transport.py][1871] : Compression: none
2025-07-01 13:42:29,148 [DEBUG][       Thread-606481][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:42:29,203 [DEBUG][       Thread-606481][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:42:29,204 [DEBUG][       Thread-606481][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:42:29,204 [DEBUG][       Thread-606481][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:42:29,205 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:42:29,205 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:42:29,259 [DEBUG][       Thread-606481][   transport.py][1871] : userauth is OK
2025-07-01 13:42:29,260 [DEBUG][       Thread-606481][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:42:29,260 [DEBUG][       Thread-606481][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:42:29,260 [DEBUG][       Thread-606481][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:42:29,260 [DEBUG][       Thread-606481][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:42:29,279 [ INFO][       Thread-606481][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:42:29,279 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:42:29,280 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:42:30,353 [DEBUG][       Thread-606481][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:42:30,353 [DEBUG][       Thread-606481][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:42:30,404 [DEBUG][       Thread-606481][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:42:30,404 [DEBUG][       Thread-606481][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:42:30,413 [DEBUG][       Thread-606481][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:42:30,422 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:42:30,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-07-01 13:42:30,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-07-01 13:42:30,440 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:42:30,441 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:42:30,441 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:42:30,449 [DEBUG][       Thread-606481][   transport.py][1871] : EOF in transport thread
2025-07-01 13:42:32,741 [DEBUG][Thread-606483 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:42:36,548 [DEBUG][Thread-606484 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:42:40,451 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:42:40,452 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:42:40,452 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:42:40,454 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:42:40,927 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 42, 36), 11.12, 47.06, 0.0, 37.67, 13.22, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:42:40,927 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:42:36
2025-07-01 13:42:41,011 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:42:41,015 [DEBUG][       Thread-606485][   transport.py][1871] : starting thread (client mode): 0x81ca980
2025-07-01 13:42:41,015 [DEBUG][       Thread-606485][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:42:41,037 [DEBUG][       Thread-606485][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:42:41,037 [ INFO][       Thread-606485][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:42:41,041 [DEBUG][       Thread-606485][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:42:41,041 [DEBUG][       Thread-606485][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:42:41,041 [DEBUG][       Thread-606485][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:42:41,041 [DEBUG][       Thread-606485][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:42:41,041 [DEBUG][       Thread-606485][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:42:41,041 [DEBUG][       Thread-606485][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:42:41,041 [DEBUG][       Thread-606485][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:42:41,041 [DEBUG][       Thread-606485][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:42:41,041 [DEBUG][       Thread-606485][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:42:41,041 [DEBUG][       Thread-606485][   transport.py][1871] : client lang: <none>
2025-07-01 13:42:41,041 [DEBUG][       Thread-606485][   transport.py][1871] : server lang: <none>
2025-07-01 13:42:41,041 [DEBUG][       Thread-606485][   transport.py][1871] : kex follows: False
2025-07-01 13:42:41,041 [DEBUG][       Thread-606485][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:42:41,041 [DEBUG][       Thread-606485][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:42:41,041 [DEBUG][       Thread-606485][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:42:41,041 [DEBUG][       Thread-606485][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:42:41,041 [DEBUG][       Thread-606485][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:42:41,041 [DEBUG][       Thread-606485][   transport.py][1871] : Compression: none
2025-07-01 13:42:41,041 [DEBUG][       Thread-606485][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:42:41,056 [DEBUG][       Thread-606485][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:42:41,056 [DEBUG][       Thread-606485][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:42:41,056 [DEBUG][       Thread-606485][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:42:41,056 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:42:41,056 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:42:41,057 [DEBUG][       Thread-606485][   transport.py][1871] : userauth is OK
2025-07-01 13:42:41,069 [ INFO][       Thread-606485][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:42:41,069 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:42:41,873 [DEBUG][       Thread-606485][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:42:41,873 [DEBUG][       Thread-606485][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:42:41,917 [DEBUG][       Thread-606485][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:42:41,917 [DEBUG][       Thread-606485][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:42:41,920 [DEBUG][       Thread-606485][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:42:41,934 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:42:41,934 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:42:41,936 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:42:41,938 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:42:41,943 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:42:41,944 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:42:41,944 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:42:41,945 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:42:41,945 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.487442 -999.00  +13.10  44.47     51   +3.30 1 1 2 1 1   888    0 9.92 1.06 ----- 44.4 44.5 28.2 49.9 15.7 -24.3 15.1 -24.9 15.0 -23.1 15.7 -22.3
2025-07-01 13:42:41,945 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:42:41,945 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:42:41,945 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.487442
2025-07-01 13:42:41,946 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:42:41,946 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:42:41,946 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:42:41,947 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:42:41,947 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:42:41,947 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:42:36', tmtdew=11.12, humidity=47.06, cloud=0.0, wind=37.67, temperature=13.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:41:54.989', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:42:41,948 [DEBUG][       Thread-606485][   transport.py][1871] : EOF in transport thread
2025-07-01 13:42:42,030 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:42:42,039 [DEBUG][       Thread-606488][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 13:42:42,039 [DEBUG][       Thread-606488][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:42:42,055 [DEBUG][       Thread-606488][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:42:42,055 [ INFO][       Thread-606488][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:42:42,062 [DEBUG][       Thread-606488][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:42:42,062 [DEBUG][       Thread-606488][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:42:42,062 [DEBUG][       Thread-606488][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:42:42,062 [DEBUG][       Thread-606488][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:42:42,062 [DEBUG][       Thread-606488][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:42:42,062 [DEBUG][       Thread-606488][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:42:42,062 [DEBUG][       Thread-606488][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:42:42,062 [DEBUG][       Thread-606488][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:42:42,062 [DEBUG][       Thread-606488][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:42:42,062 [DEBUG][       Thread-606488][   transport.py][1871] : client lang: <none>
2025-07-01 13:42:42,063 [DEBUG][       Thread-606488][   transport.py][1871] : server lang: <none>
2025-07-01 13:42:42,063 [DEBUG][       Thread-606488][   transport.py][1871] : kex follows: False
2025-07-01 13:42:42,063 [DEBUG][       Thread-606488][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:42:42,063 [DEBUG][       Thread-606488][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:42:42,063 [DEBUG][       Thread-606488][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:42:42,063 [DEBUG][       Thread-606488][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:42:42,063 [DEBUG][       Thread-606488][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:42:42,063 [DEBUG][       Thread-606488][   transport.py][1871] : Compression: none
2025-07-01 13:42:42,063 [DEBUG][       Thread-606488][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:42:42,122 [DEBUG][       Thread-606488][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:42:42,123 [DEBUG][       Thread-606488][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:42:42,124 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:42:42,124 [DEBUG][       Thread-606488][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:42:42,125 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:42:42,179 [DEBUG][       Thread-606488][   transport.py][1871] : userauth is OK
2025-07-01 13:42:42,179 [DEBUG][       Thread-606488][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:42:42,180 [DEBUG][       Thread-606488][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:42:42,180 [DEBUG][       Thread-606488][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:42:42,180 [DEBUG][       Thread-606488][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:42:42,199 [ INFO][       Thread-606488][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:42:42,199 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:42:42,200 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:42:43,254 [DEBUG][       Thread-606488][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:42:43,254 [DEBUG][       Thread-606488][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:42:43,304 [DEBUG][       Thread-606488][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:42:43,304 [DEBUG][       Thread-606488][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:42:43,314 [DEBUG][       Thread-606488][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:42:43,324 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:42:43,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-07-01 13:42:43,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-07-01 13:42:43,343 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:42:43,343 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:42:43,343 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:42:43,351 [DEBUG][       Thread-606488][   transport.py][1871] : EOF in transport thread
2025-07-01 13:42:45,569 [DEBUG][Thread-606490 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:42:53,352 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:42:53,352 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:42:53,352 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:42:53,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-07-01 13:42:53,834 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 42, 36), 11.12, 47.06, 0.0, 37.67, 13.22, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:42:53,834 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:42:36
2025-07-01 13:42:53,918 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:42:53,924 [DEBUG][       Thread-606491][   transport.py][1871] : starting thread (client mode): 0x81d8ca0
2025-07-01 13:42:53,925 [DEBUG][       Thread-606491][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:42:53,940 [DEBUG][       Thread-606491][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:42:53,940 [ INFO][       Thread-606491][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:42:53,943 [DEBUG][       Thread-606491][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:42:53,943 [DEBUG][       Thread-606491][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:42:53,943 [DEBUG][       Thread-606491][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:42:53,943 [DEBUG][       Thread-606491][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:42:53,943 [DEBUG][       Thread-606491][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:42:53,943 [DEBUG][       Thread-606491][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:42:53,943 [DEBUG][       Thread-606491][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:42:53,943 [DEBUG][       Thread-606491][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:42:53,943 [DEBUG][       Thread-606491][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:42:53,943 [DEBUG][       Thread-606491][   transport.py][1871] : client lang: <none>
2025-07-01 13:42:53,943 [DEBUG][       Thread-606491][   transport.py][1871] : server lang: <none>
2025-07-01 13:42:53,943 [DEBUG][       Thread-606491][   transport.py][1871] : kex follows: False
2025-07-01 13:42:53,943 [DEBUG][       Thread-606491][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:42:53,943 [DEBUG][       Thread-606491][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:42:53,943 [DEBUG][       Thread-606491][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:42:53,943 [DEBUG][       Thread-606491][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:42:53,943 [DEBUG][       Thread-606491][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:42:53,943 [DEBUG][       Thread-606491][   transport.py][1871] : Compression: none
2025-07-01 13:42:53,944 [DEBUG][       Thread-606491][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:42:53,959 [DEBUG][       Thread-606491][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:42:53,959 [DEBUG][       Thread-606491][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:42:53,960 [DEBUG][       Thread-606491][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:42:53,960 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:42:53,960 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:42:53,961 [DEBUG][       Thread-606491][   transport.py][1871] : userauth is OK
2025-07-01 13:42:53,985 [ INFO][       Thread-606491][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:42:53,986 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:42:54,608 [DEBUG][Thread-606493 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:42:54,776 [DEBUG][       Thread-606491][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:42:54,776 [DEBUG][       Thread-606491][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:42:54,821 [DEBUG][       Thread-606491][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:42:54,821 [DEBUG][       Thread-606491][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:42:54,823 [DEBUG][       Thread-606491][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:42:54,836 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:42:54,836 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:42:54,837 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:42:54,838 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:42:54,840 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:42:54,841 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:42:54,841 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:42:54,842 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:42:54,842 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.487442 -999.00  +13.10  44.47     51   +3.30 1 1 2 1 1   888    0 9.92 1.06 ----- 44.4 44.5 28.2 49.9 15.7 -24.3 15.1 -24.9 15.0 -23.1 15.7 -22.3
2025-07-01 13:42:54,842 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:42:54,842 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:42:54,842 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.487442
2025-07-01 13:42:54,842 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:42:54,842 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:42:54,842 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:42:54,842 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:42:54,842 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:42:54,842 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:42:36', tmtdew=11.12, humidity=47.06, cloud=0.0, wind=37.67, temperature=13.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:41:54.989', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:42:54,843 [DEBUG][       Thread-606491][   transport.py][1871] : EOF in transport thread
2025-07-01 13:42:54,917 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:42:54,930 [DEBUG][       Thread-606495][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 13:42:54,930 [DEBUG][       Thread-606495][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:42:54,945 [DEBUG][       Thread-606495][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:42:54,945 [ INFO][       Thread-606495][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:42:54,953 [DEBUG][       Thread-606495][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:42:54,953 [DEBUG][       Thread-606495][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:42:54,953 [DEBUG][       Thread-606495][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:42:54,953 [DEBUG][       Thread-606495][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:42:54,953 [DEBUG][       Thread-606495][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:42:54,953 [DEBUG][       Thread-606495][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:42:54,953 [DEBUG][       Thread-606495][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:42:54,953 [DEBUG][       Thread-606495][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:42:54,953 [DEBUG][       Thread-606495][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:42:54,953 [DEBUG][       Thread-606495][   transport.py][1871] : client lang: <none>
2025-07-01 13:42:54,953 [DEBUG][       Thread-606495][   transport.py][1871] : server lang: <none>
2025-07-01 13:42:54,953 [DEBUG][       Thread-606495][   transport.py][1871] : kex follows: False
2025-07-01 13:42:54,953 [DEBUG][       Thread-606495][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:42:54,953 [DEBUG][       Thread-606495][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:42:54,953 [DEBUG][       Thread-606495][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:42:54,953 [DEBUG][       Thread-606495][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:42:54,953 [DEBUG][       Thread-606495][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:42:54,953 [DEBUG][       Thread-606495][   transport.py][1871] : Compression: none
2025-07-01 13:42:54,953 [DEBUG][       Thread-606495][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:42:55,009 [DEBUG][       Thread-606495][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:42:55,010 [DEBUG][       Thread-606495][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:42:55,010 [DEBUG][       Thread-606495][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:42:55,010 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:42:55,010 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:42:55,067 [DEBUG][       Thread-606495][   transport.py][1871] : userauth is OK
2025-07-01 13:42:55,067 [DEBUG][       Thread-606495][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:42:55,067 [DEBUG][       Thread-606495][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:42:55,067 [DEBUG][       Thread-606495][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:42:55,067 [DEBUG][       Thread-606495][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:42:55,081 [ INFO][       Thread-606495][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:42:55,081 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:42:55,081 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:42:56,083 [DEBUG][       Thread-606495][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:42:56,083 [DEBUG][       Thread-606495][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:42:56,131 [DEBUG][       Thread-606495][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:42:56,131 [DEBUG][       Thread-606495][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:42:56,140 [DEBUG][       Thread-606495][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:42:56,148 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:42:56,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-07-01 13:42:56,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-07-01 13:42:56,165 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:42:56,165 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:42:56,165 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:42:56,173 [DEBUG][       Thread-606495][   transport.py][1871] : EOF in transport thread
2025-07-01 13:43:03,629 [DEBUG][Thread-606497 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:43:06,175 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:43:06,176 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:43:06,176 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:43:06,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-07-01 13:43:06,649 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 42, 36), 11.12, 47.06, 0.0, 37.67, 13.22, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:43:06,649 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:42:36
2025-07-01 13:43:06,734 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:43:06,738 [DEBUG][       Thread-606498][   transport.py][1871] : starting thread (client mode): 0x81db700
2025-07-01 13:43:06,738 [DEBUG][       Thread-606498][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:43:06,754 [DEBUG][       Thread-606498][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:43:06,754 [ INFO][       Thread-606498][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:43:06,757 [DEBUG][       Thread-606498][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:43:06,758 [DEBUG][       Thread-606498][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:43:06,758 [DEBUG][       Thread-606498][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:43:06,758 [DEBUG][       Thread-606498][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:43:06,758 [DEBUG][       Thread-606498][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:43:06,758 [DEBUG][       Thread-606498][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:43:06,758 [DEBUG][       Thread-606498][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:43:06,758 [DEBUG][       Thread-606498][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:43:06,758 [DEBUG][       Thread-606498][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:43:06,758 [DEBUG][       Thread-606498][   transport.py][1871] : client lang: <none>
2025-07-01 13:43:06,758 [DEBUG][       Thread-606498][   transport.py][1871] : server lang: <none>
2025-07-01 13:43:06,758 [DEBUG][       Thread-606498][   transport.py][1871] : kex follows: False
2025-07-01 13:43:06,758 [DEBUG][       Thread-606498][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:43:06,758 [DEBUG][       Thread-606498][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:43:06,758 [DEBUG][       Thread-606498][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:43:06,758 [DEBUG][       Thread-606498][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:43:06,758 [DEBUG][       Thread-606498][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:43:06,758 [DEBUG][       Thread-606498][   transport.py][1871] : Compression: none
2025-07-01 13:43:06,758 [DEBUG][       Thread-606498][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:43:06,774 [DEBUG][       Thread-606498][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:43:06,775 [DEBUG][       Thread-606498][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:43:06,775 [DEBUG][       Thread-606498][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:43:06,776 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:43:06,776 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:43:06,777 [DEBUG][       Thread-606498][   transport.py][1871] : userauth is OK
2025-07-01 13:43:06,789 [ INFO][       Thread-606498][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:43:06,790 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:43:07,419 [DEBUG][       Thread-606498][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:43:07,419 [DEBUG][       Thread-606498][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:43:07,461 [DEBUG][       Thread-606498][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:43:07,461 [DEBUG][       Thread-606498][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:43:07,465 [DEBUG][       Thread-606498][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:43:07,477 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:43:07,478 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:43:07,479 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:43:07,481 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:43:07,487 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:43:07,489 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:43:07,489 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:43:07,489 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:43:07,490 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.487789 -999.00  +13.00  39.62     51   +3.30 1 1 2 1 1   888    0 9.87 0.44 ----- 36.1 39.6 26.4 51.3 15.7 -23.0 15.0 -24.4 15.0 -22.3 15.6 -20.7
2025-07-01 13:43:07,490 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:43:07,490 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:43:07,490 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.487789
2025-07-01 13:43:07,490 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:43:07,491 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:43:07,491 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:43:07,491 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:43:07,491 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:43:07,491 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:42:36', tmtdew=11.12, humidity=47.06, cloud=0.0, wind=37.67, temperature=13.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:42:24.970', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:43:07,492 [DEBUG][       Thread-606498][   transport.py][1871] : EOF in transport thread
2025-07-01 13:43:07,575 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:43:12,652 [DEBUG][Thread-606501 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:43:21,678 [DEBUG][Thread-606502 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:43:26,573 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:43:26,575 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:43:30,701 [DEBUG][Thread-606503 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:43:32,769 [DEBUG][Thread-606504 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:43:39,723 [DEBUG][Thread-606505 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:43:48,743 [DEBUG][Thread-606506 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:43:57,765 [DEBUG][Thread-606507 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:44:06,785 [DEBUG][Thread-606508 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:44:15,806 [DEBUG][Thread-606509 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:44:24,829 [DEBUG][Thread-606510 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:44:26,713 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:44:26,714 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:44:32,818 [DEBUG][Thread-606511 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:44:33,855 [DEBUG][Thread-606512 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:44:42,879 [DEBUG][Thread-606513 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:44:51,895 [DEBUG][Thread-606514 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:45:00,918 [DEBUG][Thread-606515 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:45:09,940 [DEBUG][Thread-606516 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:45: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-07-01 13:45:18,961 [DEBUG][Thread-606517 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:45:26,060 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:45:26,060 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:45:26,060 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:45:26,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-07-01 13:45:26,584 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 45, 16), 11.18, 46.8, 0.0, 49.51, 13.38, 0, 0, 0, 2, 1, 0),)
2025-07-01 13:45:26,584 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:45:16
2025-07-01 13:45:26,677 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:45:26,684 [DEBUG][       Thread-606518][   transport.py][1871] : starting thread (client mode): 0x81db610
2025-07-01 13:45:26,684 [DEBUG][       Thread-606518][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:45:26,704 [DEBUG][       Thread-606518][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:45:26,705 [ INFO][       Thread-606518][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:45:26,708 [DEBUG][       Thread-606518][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:45:26,708 [DEBUG][       Thread-606518][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:45:26,708 [DEBUG][       Thread-606518][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:45:26,708 [DEBUG][       Thread-606518][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:45:26,708 [DEBUG][       Thread-606518][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:45:26,708 [DEBUG][       Thread-606518][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:45:26,708 [DEBUG][       Thread-606518][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:45:26,708 [DEBUG][       Thread-606518][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:45:26,708 [DEBUG][       Thread-606518][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:45:26,708 [DEBUG][       Thread-606518][   transport.py][1871] : client lang: <none>
2025-07-01 13:45:26,708 [DEBUG][       Thread-606518][   transport.py][1871] : server lang: <none>
2025-07-01 13:45:26,708 [DEBUG][       Thread-606518][   transport.py][1871] : kex follows: False
2025-07-01 13:45:26,708 [DEBUG][       Thread-606518][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:45:26,708 [DEBUG][       Thread-606518][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:45:26,708 [DEBUG][       Thread-606518][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:45:26,708 [DEBUG][       Thread-606518][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:45:26,708 [DEBUG][       Thread-606518][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:45:26,708 [DEBUG][       Thread-606518][   transport.py][1871] : Compression: none
2025-07-01 13:45:26,708 [DEBUG][       Thread-606518][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:45:26,723 [DEBUG][       Thread-606518][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:45:26,723 [DEBUG][       Thread-606518][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:45:26,723 [DEBUG][       Thread-606518][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:45:26,723 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:45:26,723 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:45:26,724 [DEBUG][       Thread-606518][   transport.py][1871] : userauth is OK
2025-07-01 13:45:26,748 [ INFO][       Thread-606518][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:45:26,748 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:45:26,853 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:45:26,853 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:45:27,427 [DEBUG][       Thread-606518][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:45:27,427 [DEBUG][       Thread-606518][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:45:27,469 [DEBUG][       Thread-606518][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:45:27,469 [DEBUG][       Thread-606518][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:45:27,471 [DEBUG][       Thread-606518][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:45:27,483 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:45:27,483 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:45:27,484 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:45:27,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:45:27,489 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:45:27,490 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:45:27,490 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:45:27,490 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:45:27,490 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.489525 -999.00  +13.00  41.31     52   +3.40 1 2 2 1 1   888    0 9.64 -3.32 ----- 37.3 41.3 45.0 48.2 15.6 -22.2 15.0 -23.4 14.9 -22.0 15.6 -20.4
2025-07-01 13:45:27,490 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:45:27,490 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:45:27,490 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.489525
2025-07-01 13:45:27,490 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:45:27,490 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:45:27,490 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:45:27,490 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:45:27,490 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 13:45:27,490 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:45:16', tmtdew=11.18, humidity=46.8, cloud=0.0, wind=49.51, temperature=13.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=1, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:44:54.960', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:45:27,491 [DEBUG][       Thread-606518][   transport.py][1871] : EOF in transport thread
2025-07-01 13:45:27,565 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:45:27,576 [DEBUG][       Thread-606521][   transport.py][1871] : starting thread (client mode): 0x818ec20
2025-07-01 13:45:27,576 [DEBUG][       Thread-606521][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:45:27,591 [DEBUG][       Thread-606521][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:45:27,591 [ INFO][       Thread-606521][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:45:27,599 [DEBUG][       Thread-606521][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:45:27,599 [DEBUG][       Thread-606521][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:45:27,599 [DEBUG][       Thread-606521][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:45:27,599 [DEBUG][       Thread-606521][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:45:27,599 [DEBUG][       Thread-606521][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:45:27,599 [DEBUG][       Thread-606521][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:45:27,599 [DEBUG][       Thread-606521][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:45:27,599 [DEBUG][       Thread-606521][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:45:27,599 [DEBUG][       Thread-606521][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:45:27,599 [DEBUG][       Thread-606521][   transport.py][1871] : client lang: <none>
2025-07-01 13:45:27,599 [DEBUG][       Thread-606521][   transport.py][1871] : server lang: <none>
2025-07-01 13:45:27,599 [DEBUG][       Thread-606521][   transport.py][1871] : kex follows: False
2025-07-01 13:45:27,599 [DEBUG][       Thread-606521][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:45:27,599 [DEBUG][       Thread-606521][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:45:27,599 [DEBUG][       Thread-606521][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:45:27,599 [DEBUG][       Thread-606521][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:45:27,599 [DEBUG][       Thread-606521][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:45:27,599 [DEBUG][       Thread-606521][   transport.py][1871] : Compression: none
2025-07-01 13:45:27,599 [DEBUG][       Thread-606521][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:45:27,655 [DEBUG][       Thread-606521][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:45:27,655 [DEBUG][       Thread-606521][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:45:27,655 [DEBUG][       Thread-606521][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:45:27,655 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:45:27,655 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:45:27,712 [DEBUG][       Thread-606521][   transport.py][1871] : userauth is OK
2025-07-01 13:45:27,712 [DEBUG][       Thread-606521][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:45:27,712 [DEBUG][       Thread-606521][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:45:27,712 [DEBUG][       Thread-606521][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:45:27,712 [DEBUG][       Thread-606521][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:45:27,726 [ INFO][       Thread-606521][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:45:27,726 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:45:27,726 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:45:27,979 [DEBUG][Thread-606523 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:45:28,770 [DEBUG][       Thread-606521][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:45:28,770 [DEBUG][       Thread-606521][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:45:28,820 [DEBUG][       Thread-606521][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:45:28,820 [DEBUG][       Thread-606521][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:45:28,829 [DEBUG][       Thread-606521][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:45:28,837 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:45:28,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-07-01 13:45:28,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-07-01 13:45:28,853 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:45:28,853 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:45:28,853 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:45:28,861 [DEBUG][       Thread-606521][   transport.py][1871] : EOF in transport thread
2025-07-01 13:45:32,850 [DEBUG][Thread-606524 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:45:37,002 [DEBUG][Thread-606525 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:45:38,864 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:45:38,864 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:45:38,864 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:45:38,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-07-01 13:45:39,373 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 45, 16), 11.18, 46.8, 0.0, 49.51, 13.38, 0, 0, 0, 2, 1, 0),)
2025-07-01 13:45:39,373 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:45:16
2025-07-01 13:45:39,460 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:45:39,463 [DEBUG][       Thread-606526][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 13:45:39,464 [DEBUG][       Thread-606526][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:45:39,483 [DEBUG][       Thread-606526][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:45:39,483 [ INFO][       Thread-606526][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:45:39,487 [DEBUG][       Thread-606526][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:45:39,487 [DEBUG][       Thread-606526][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:45:39,487 [DEBUG][       Thread-606526][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:45:39,487 [DEBUG][       Thread-606526][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:45:39,487 [DEBUG][       Thread-606526][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:45:39,487 [DEBUG][       Thread-606526][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:45:39,487 [DEBUG][       Thread-606526][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:45:39,487 [DEBUG][       Thread-606526][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:45:39,487 [DEBUG][       Thread-606526][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:45:39,487 [DEBUG][       Thread-606526][   transport.py][1871] : client lang: <none>
2025-07-01 13:45:39,487 [DEBUG][       Thread-606526][   transport.py][1871] : server lang: <none>
2025-07-01 13:45:39,487 [DEBUG][       Thread-606526][   transport.py][1871] : kex follows: False
2025-07-01 13:45:39,487 [DEBUG][       Thread-606526][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:45:39,487 [DEBUG][       Thread-606526][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:45:39,487 [DEBUG][       Thread-606526][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:45:39,488 [DEBUG][       Thread-606526][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:45:39,488 [DEBUG][       Thread-606526][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:45:39,488 [DEBUG][       Thread-606526][   transport.py][1871] : Compression: none
2025-07-01 13:45:39,488 [DEBUG][       Thread-606526][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:45:39,504 [DEBUG][       Thread-606526][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:45:39,505 [DEBUG][       Thread-606526][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:45:39,505 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:45:39,505 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:45:39,506 [DEBUG][       Thread-606526][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:45:39,507 [DEBUG][       Thread-606526][   transport.py][1871] : userauth is OK
2025-07-01 13:45:39,531 [ INFO][       Thread-606526][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:45:39,532 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:45:40,132 [DEBUG][       Thread-606526][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:45:40,132 [DEBUG][       Thread-606526][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:45:40,173 [DEBUG][       Thread-606526][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:45:40,173 [DEBUG][       Thread-606526][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:45:40,176 [DEBUG][       Thread-606526][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:45:40,188 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:45:40,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:45:40,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:45:40,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:45:40,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:45:40,200 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:45:40,200 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:45:40,201 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:45:40,201 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.489525 -999.00  +13.00  41.31     52   +3.40 1 2 2 1 1   888    0 9.64 -3.32 ----- 37.3 41.3 45.0 48.2 15.6 -22.2 15.0 -23.4 14.9 -22.0 15.6 -20.4
2025-07-01 13:45:40,201 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:45:40,201 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:45:40,201 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.489525
2025-07-01 13:45:40,202 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:45:40,202 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:45:40,202 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:45:40,202 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:45:40,202 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 13:45:40,203 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:45:16', tmtdew=11.18, humidity=46.8, cloud=0.0, wind=49.51, temperature=13.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=1, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:44:54.960', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:45:40,203 [DEBUG][       Thread-606526][   transport.py][1871] : EOF in transport thread
2025-07-01 13:45:40,286 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:45:40,296 [DEBUG][       Thread-606529][   transport.py][1871] : starting thread (client mode): 0x818d480
2025-07-01 13:45:40,296 [DEBUG][       Thread-606529][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:45:40,310 [DEBUG][       Thread-606529][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:45:40,311 [ INFO][       Thread-606529][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:45:40,318 [DEBUG][       Thread-606529][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:45:40,318 [DEBUG][       Thread-606529][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:45:40,318 [DEBUG][       Thread-606529][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:45:40,318 [DEBUG][       Thread-606529][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:45:40,318 [DEBUG][       Thread-606529][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:45:40,318 [DEBUG][       Thread-606529][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:45:40,318 [DEBUG][       Thread-606529][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:45:40,318 [DEBUG][       Thread-606529][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:45:40,318 [DEBUG][       Thread-606529][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:45:40,318 [DEBUG][       Thread-606529][   transport.py][1871] : client lang: <none>
2025-07-01 13:45:40,318 [DEBUG][       Thread-606529][   transport.py][1871] : server lang: <none>
2025-07-01 13:45:40,319 [DEBUG][       Thread-606529][   transport.py][1871] : kex follows: False
2025-07-01 13:45:40,319 [DEBUG][       Thread-606529][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:45:40,319 [DEBUG][       Thread-606529][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:45:40,319 [DEBUG][       Thread-606529][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:45:40,319 [DEBUG][       Thread-606529][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:45:40,319 [DEBUG][       Thread-606529][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:45:40,319 [DEBUG][       Thread-606529][   transport.py][1871] : Compression: none
2025-07-01 13:45:40,319 [DEBUG][       Thread-606529][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:45:40,380 [DEBUG][       Thread-606529][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:45:40,380 [DEBUG][       Thread-606529][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:45:40,381 [DEBUG][       Thread-606529][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:45:40,381 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:45:40,382 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:45:40,436 [DEBUG][       Thread-606529][   transport.py][1871] : userauth is OK
2025-07-01 13:45:40,436 [DEBUG][       Thread-606529][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:45:40,437 [DEBUG][       Thread-606529][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:45:40,437 [DEBUG][       Thread-606529][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:45:40,437 [DEBUG][       Thread-606529][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:45:40,455 [ INFO][       Thread-606529][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:45:40,456 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:45:40,456 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:45:41,453 [DEBUG][       Thread-606529][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:45:41,454 [DEBUG][       Thread-606529][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:45:41,508 [DEBUG][       Thread-606529][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:45:41,508 [DEBUG][       Thread-606529][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:45:41,521 [DEBUG][       Thread-606529][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:45:41,530 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:45:41,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-07-01 13:45:41,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-07-01 13:45:41,547 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:45:41,547 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:45:41,547 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:45:41,555 [DEBUG][       Thread-606529][   transport.py][1871] : EOF in transport thread
2025-07-01 13:45:46,024 [DEBUG][Thread-606531 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:45:51,554 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:45:51,554 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:45:51,554 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:45:51,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-07-01 13:45:52,056 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 45, 48), 11.16, 46.82, 0.0, 42.84, 13.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:45:52,057 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:45:48
2025-07-01 13:45:52,143 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:45:52,149 [DEBUG][       Thread-606532][   transport.py][1871] : starting thread (client mode): 0x827ec50
2025-07-01 13:45:52,149 [DEBUG][       Thread-606532][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:45:52,171 [DEBUG][       Thread-606532][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:45:52,171 [ INFO][       Thread-606532][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:45:52,174 [DEBUG][       Thread-606532][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:45:52,174 [DEBUG][       Thread-606532][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:45:52,174 [DEBUG][       Thread-606532][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:45:52,174 [DEBUG][       Thread-606532][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:45:52,174 [DEBUG][       Thread-606532][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:45:52,174 [DEBUG][       Thread-606532][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:45:52,174 [DEBUG][       Thread-606532][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:45:52,174 [DEBUG][       Thread-606532][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:45:52,174 [DEBUG][       Thread-606532][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:45:52,174 [DEBUG][       Thread-606532][   transport.py][1871] : client lang: <none>
2025-07-01 13:45:52,174 [DEBUG][       Thread-606532][   transport.py][1871] : server lang: <none>
2025-07-01 13:45:52,174 [DEBUG][       Thread-606532][   transport.py][1871] : kex follows: False
2025-07-01 13:45:52,174 [DEBUG][       Thread-606532][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:45:52,174 [DEBUG][       Thread-606532][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:45:52,175 [DEBUG][       Thread-606532][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:45:52,175 [DEBUG][       Thread-606532][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:45:52,175 [DEBUG][       Thread-606532][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:45:52,175 [DEBUG][       Thread-606532][   transport.py][1871] : Compression: none
2025-07-01 13:45:52,175 [DEBUG][       Thread-606532][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:45:52,193 [DEBUG][       Thread-606532][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:45:52,193 [DEBUG][       Thread-606532][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:45:52,193 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:45:52,194 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:45:52,194 [DEBUG][       Thread-606532][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:45:52,195 [DEBUG][       Thread-606532][   transport.py][1871] : userauth is OK
2025-07-01 13:45:52,208 [ INFO][       Thread-606532][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:45:52,208 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:45:52,887 [DEBUG][       Thread-606532][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:45:52,887 [DEBUG][       Thread-606532][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:45:52,929 [DEBUG][       Thread-606532][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:45:52,929 [DEBUG][       Thread-606532][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:45:52,932 [DEBUG][       Thread-606532][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:45:52,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:45:52,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:45:52,947 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:45:52,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:45:52,954 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:45:52,955 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:45:52,956 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:45:52,956 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:45:52,956 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.489872 -999.00  +13.10  40.50     52   +3.50 1 2 2 1 1   888    0 9.68 -3.93 ----- 43.0 40.5 33.4 48.7 15.7 -21.9 15.0 -23.3 15.0 -21.3 15.6 -20.1
2025-07-01 13:45:52,956 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:45:52,957 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:45:52,957 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.489872
2025-07-01 13:45:52,957 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:45:52,958 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:45:52,958 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:45:52,958 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:45:52,958 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 13:45:52,958 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:45:48', tmtdew=11.16, humidity=46.82, cloud=0.0, wind=42.84, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:45:24.941', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:45:52,959 [DEBUG][       Thread-606532][   transport.py][1871] : EOF in transport thread
2025-07-01 13:45:53,033 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:45:53,044 [DEBUG][       Thread-606535][   transport.py][1871] : starting thread (client mode): 0x8a671f0
2025-07-01 13:45:53,044 [DEBUG][       Thread-606535][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:45:53,060 [DEBUG][       Thread-606535][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:45:53,060 [ INFO][       Thread-606535][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:45:53,068 [DEBUG][       Thread-606535][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:45:53,068 [DEBUG][       Thread-606535][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:45:53,068 [DEBUG][       Thread-606535][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:45:53,068 [DEBUG][       Thread-606535][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:45:53,068 [DEBUG][       Thread-606535][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:45:53,068 [DEBUG][       Thread-606535][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:45:53,068 [DEBUG][       Thread-606535][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:45:53,068 [DEBUG][       Thread-606535][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:45:53,068 [DEBUG][       Thread-606535][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:45:53,068 [DEBUG][       Thread-606535][   transport.py][1871] : client lang: <none>
2025-07-01 13:45:53,068 [DEBUG][       Thread-606535][   transport.py][1871] : server lang: <none>
2025-07-01 13:45:53,068 [DEBUG][       Thread-606535][   transport.py][1871] : kex follows: False
2025-07-01 13:45:53,068 [DEBUG][       Thread-606535][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:45:53,068 [DEBUG][       Thread-606535][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:45:53,068 [DEBUG][       Thread-606535][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:45:53,068 [DEBUG][       Thread-606535][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:45:53,068 [DEBUG][       Thread-606535][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:45:53,068 [DEBUG][       Thread-606535][   transport.py][1871] : Compression: none
2025-07-01 13:45:53,069 [DEBUG][       Thread-606535][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:45:53,128 [DEBUG][       Thread-606535][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:45:53,128 [DEBUG][       Thread-606535][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:45:53,129 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:45:53,130 [DEBUG][       Thread-606535][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:45:53,130 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:45:53,188 [DEBUG][       Thread-606535][   transport.py][1871] : userauth is OK
2025-07-01 13:45:53,188 [DEBUG][       Thread-606535][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:45:53,188 [DEBUG][       Thread-606535][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:45:53,188 [DEBUG][       Thread-606535][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:45:53,188 [DEBUG][       Thread-606535][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:45:53,206 [ INFO][       Thread-606535][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:45:53,207 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:45:53,207 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:45:54,216 [DEBUG][       Thread-606535][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:45:54,216 [DEBUG][       Thread-606535][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:45:54,264 [DEBUG][       Thread-606535][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:45:54,264 [DEBUG][       Thread-606535][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:45:54,273 [DEBUG][       Thread-606535][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:45:54,282 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:45:54,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-07-01 13:45:54,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-07-01 13:45:54,300 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:45:54,300 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:45:54,300 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:45:54,309 [DEBUG][       Thread-606535][   transport.py][1871] : EOF in transport thread
2025-07-01 13:45:55,045 [DEBUG][Thread-606537 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:46:04,079 [DEBUG][Thread-606538 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:46:04,311 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:46:04,311 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:46:04,311 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:46:04,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-07-01 13:46:04,808 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 45, 48), 11.16, 46.82, 0.0, 42.84, 13.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:46:04,808 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:45:48
2025-07-01 13:46:04,894 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:46:04,899 [DEBUG][       Thread-606539][   transport.py][1871] : starting thread (client mode): 0x81a5e40
2025-07-01 13:46:04,899 [DEBUG][       Thread-606539][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:46:04,919 [DEBUG][       Thread-606539][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:46:04,919 [ INFO][       Thread-606539][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:46:04,920 [DEBUG][       Thread-606539][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:46:04,920 [DEBUG][       Thread-606539][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:46:04,920 [DEBUG][       Thread-606539][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:46:04,921 [DEBUG][       Thread-606539][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:46:04,921 [DEBUG][       Thread-606539][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:46:04,921 [DEBUG][       Thread-606539][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:46:04,921 [DEBUG][       Thread-606539][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:46:04,921 [DEBUG][       Thread-606539][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:46:04,921 [DEBUG][       Thread-606539][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:46:04,921 [DEBUG][       Thread-606539][   transport.py][1871] : client lang: <none>
2025-07-01 13:46:04,921 [DEBUG][       Thread-606539][   transport.py][1871] : server lang: <none>
2025-07-01 13:46:04,921 [DEBUG][       Thread-606539][   transport.py][1871] : kex follows: False
2025-07-01 13:46:04,921 [DEBUG][       Thread-606539][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:46:04,921 [DEBUG][       Thread-606539][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:46:04,921 [DEBUG][       Thread-606539][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:46:04,921 [DEBUG][       Thread-606539][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:46:04,921 [DEBUG][       Thread-606539][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:46:04,921 [DEBUG][       Thread-606539][   transport.py][1871] : Compression: none
2025-07-01 13:46:04,921 [DEBUG][       Thread-606539][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:46:04,929 [DEBUG][       Thread-606539][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:46:04,929 [DEBUG][       Thread-606539][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:46:04,930 [DEBUG][       Thread-606539][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:46:04,930 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:46:04,930 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:46:04,931 [DEBUG][       Thread-606539][   transport.py][1871] : userauth is OK
2025-07-01 13:46:04,945 [ INFO][       Thread-606539][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:46:04,945 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:46:05,579 [DEBUG][       Thread-606539][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:46:05,580 [DEBUG][       Thread-606539][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:46:05,621 [DEBUG][       Thread-606539][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:46:05,621 [DEBUG][       Thread-606539][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:46:05,623 [DEBUG][       Thread-606539][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:46:05,637 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:46:05,637 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:46:05,638 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:46:05,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:46:05,642 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:46:05,643 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:46:05,643 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:46:05,643 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:46:05,643 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.489872 -999.00  +13.10  40.50     52   +3.50 1 2 2 1 1   888    0 9.68 -3.93 ----- 43.0 40.5 33.4 48.7 15.7 -21.9 15.0 -23.3 15.0 -21.3 15.6 -20.1
2025-07-01 13:46:05,643 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:46:05,643 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:46:05,643 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.489872
2025-07-01 13:46:05,643 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:46:05,643 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:46:05,643 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:46:05,643 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:46:05,643 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 13:46:05,643 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:45:48', tmtdew=11.16, humidity=46.82, cloud=0.0, wind=42.84, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:45:24.941', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:46:05,644 [DEBUG][       Thread-606539][   transport.py][1871] : EOF in transport thread
2025-07-01 13:46:05,718 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:46:05,727 [DEBUG][       Thread-606542][   transport.py][1871] : starting thread (client mode): 0x75a9f90
2025-07-01 13:46:05,727 [DEBUG][       Thread-606542][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:46:05,743 [DEBUG][       Thread-606542][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:46:05,743 [ INFO][       Thread-606542][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:46:05,751 [DEBUG][       Thread-606542][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:46:05,751 [DEBUG][       Thread-606542][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:46:05,751 [DEBUG][       Thread-606542][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:46:05,751 [DEBUG][       Thread-606542][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:46:05,751 [DEBUG][       Thread-606542][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:46:05,751 [DEBUG][       Thread-606542][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:46:05,751 [DEBUG][       Thread-606542][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:46:05,751 [DEBUG][       Thread-606542][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:46:05,751 [DEBUG][       Thread-606542][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:46:05,751 [DEBUG][       Thread-606542][   transport.py][1871] : client lang: <none>
2025-07-01 13:46:05,751 [DEBUG][       Thread-606542][   transport.py][1871] : server lang: <none>
2025-07-01 13:46:05,751 [DEBUG][       Thread-606542][   transport.py][1871] : kex follows: False
2025-07-01 13:46:05,751 [DEBUG][       Thread-606542][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:46:05,751 [DEBUG][       Thread-606542][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:46:05,751 [DEBUG][       Thread-606542][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:46:05,751 [DEBUG][       Thread-606542][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:46:05,751 [DEBUG][       Thread-606542][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:46:05,751 [DEBUG][       Thread-606542][   transport.py][1871] : Compression: none
2025-07-01 13:46:05,751 [DEBUG][       Thread-606542][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:46:05,810 [DEBUG][       Thread-606542][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:46:05,810 [DEBUG][       Thread-606542][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:46:05,810 [DEBUG][       Thread-606542][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:46:05,810 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:46:05,810 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:46:05,871 [DEBUG][       Thread-606542][   transport.py][1871] : userauth is OK
2025-07-01 13:46:05,872 [DEBUG][       Thread-606542][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:46:05,872 [DEBUG][       Thread-606542][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:46:05,872 [DEBUG][       Thread-606542][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:46:05,872 [DEBUG][       Thread-606542][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:46:05,886 [ INFO][       Thread-606542][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:46:05,886 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:46:05,887 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:46:06,954 [DEBUG][       Thread-606542][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:46:06,954 [DEBUG][       Thread-606542][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:46:07,003 [DEBUG][       Thread-606542][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:46:07,003 [DEBUG][       Thread-606542][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:46:07,012 [DEBUG][       Thread-606542][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:46:07,020 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:46:07,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-07-01 13:46:07,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-07-01 13:46:07,041 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:46:07,041 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:46:07,041 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:46:07,051 [DEBUG][       Thread-606542][   transport.py][1871] : EOF in transport thread
2025-07-01 13:46:13,097 [DEBUG][Thread-606544 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:46:17,051 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:46:17,051 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:46:17,052 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:46:17,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-07-01 13:46:17,561 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 45, 48), 11.16, 46.82, 0.0, 42.84, 13.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:46:17,562 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:45:48
2025-07-01 13:46:17,648 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:46:17,652 [DEBUG][       Thread-606545][   transport.py][1871] : starting thread (client mode): 0x81d80d0
2025-07-01 13:46:17,652 [DEBUG][       Thread-606545][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:46:17,672 [DEBUG][       Thread-606545][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:46:17,672 [ INFO][       Thread-606545][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:46:17,676 [DEBUG][       Thread-606545][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:46:17,676 [DEBUG][       Thread-606545][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:46:17,676 [DEBUG][       Thread-606545][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:46:17,676 [DEBUG][       Thread-606545][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:46:17,676 [DEBUG][       Thread-606545][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:46:17,676 [DEBUG][       Thread-606545][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:46:17,676 [DEBUG][       Thread-606545][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:46:17,676 [DEBUG][       Thread-606545][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:46:17,676 [DEBUG][       Thread-606545][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:46:17,676 [DEBUG][       Thread-606545][   transport.py][1871] : client lang: <none>
2025-07-01 13:46:17,676 [DEBUG][       Thread-606545][   transport.py][1871] : server lang: <none>
2025-07-01 13:46:17,676 [DEBUG][       Thread-606545][   transport.py][1871] : kex follows: False
2025-07-01 13:46:17,676 [DEBUG][       Thread-606545][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:46:17,676 [DEBUG][       Thread-606545][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:46:17,676 [DEBUG][       Thread-606545][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:46:17,676 [DEBUG][       Thread-606545][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:46:17,676 [DEBUG][       Thread-606545][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:46:17,676 [DEBUG][       Thread-606545][   transport.py][1871] : Compression: none
2025-07-01 13:46:17,676 [DEBUG][       Thread-606545][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:46:17,691 [DEBUG][       Thread-606545][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:46:17,692 [DEBUG][       Thread-606545][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:46:17,692 [DEBUG][       Thread-606545][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:46:17,693 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:46:17,693 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:46:17,694 [DEBUG][       Thread-606545][   transport.py][1871] : userauth is OK
2025-07-01 13:46:17,707 [ INFO][       Thread-606545][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:46:17,708 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:46:18,355 [DEBUG][       Thread-606545][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:46:18,355 [DEBUG][       Thread-606545][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:46:18,397 [DEBUG][       Thread-606545][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:46:18,397 [DEBUG][       Thread-606545][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:46:18,398 [DEBUG][       Thread-606545][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:46:18,410 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:46:18,411 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:46:18,412 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:46:18,414 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:46:18,418 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:46:18,420 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:46:18,420 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:46:18,421 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:46:18,421 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.490219 -999.00  +13.00  38.51     52   +3.40 1 2 2 1 1   888    0 9.71 -4.44 ----- 43.2 38.5 22.4 46.9 15.7 -21.9 14.9 -22.9 15.0 -21.4 15.6 -20.0
2025-07-01 13:46:18,421 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:46:18,421 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:46:18,421 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.490219
2025-07-01 13:46:18,422 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:46:18,422 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:46:18,422 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:46:18,422 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:46:18,422 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 13:46:18,422 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:45:48', tmtdew=11.16, humidity=46.82, cloud=0.0, wind=42.84, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:45:54.922', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:46:18,424 [DEBUG][       Thread-606545][   transport.py][1871] : EOF in transport thread
2025-07-01 13:46:18,504 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:46:18,515 [DEBUG][       Thread-606548][   transport.py][1871] : starting thread (client mode): 0x82b3670
2025-07-01 13:46:18,515 [DEBUG][       Thread-606548][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:46:18,531 [DEBUG][       Thread-606548][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:46:18,531 [ INFO][       Thread-606548][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:46:18,538 [DEBUG][       Thread-606548][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:46:18,538 [DEBUG][       Thread-606548][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:46:18,539 [DEBUG][       Thread-606548][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:46:18,539 [DEBUG][       Thread-606548][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:46:18,539 [DEBUG][       Thread-606548][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:46:18,539 [DEBUG][       Thread-606548][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:46:18,539 [DEBUG][       Thread-606548][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:46:18,539 [DEBUG][       Thread-606548][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:46:18,539 [DEBUG][       Thread-606548][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:46:18,539 [DEBUG][       Thread-606548][   transport.py][1871] : client lang: <none>
2025-07-01 13:46:18,539 [DEBUG][       Thread-606548][   transport.py][1871] : server lang: <none>
2025-07-01 13:46:18,539 [DEBUG][       Thread-606548][   transport.py][1871] : kex follows: False
2025-07-01 13:46:18,539 [DEBUG][       Thread-606548][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:46:18,539 [DEBUG][       Thread-606548][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:46:18,539 [DEBUG][       Thread-606548][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:46:18,539 [DEBUG][       Thread-606548][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:46:18,539 [DEBUG][       Thread-606548][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:46:18,539 [DEBUG][       Thread-606548][   transport.py][1871] : Compression: none
2025-07-01 13:46:18,539 [DEBUG][       Thread-606548][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:46:18,595 [DEBUG][       Thread-606548][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:46:18,596 [DEBUG][       Thread-606548][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:46:18,596 [DEBUG][       Thread-606548][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:46:18,597 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:46:18,597 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:46:18,652 [DEBUG][       Thread-606548][   transport.py][1871] : userauth is OK
2025-07-01 13:46:18,652 [DEBUG][       Thread-606548][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:46:18,652 [DEBUG][       Thread-606548][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:46:18,652 [DEBUG][       Thread-606548][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:46:18,652 [DEBUG][       Thread-606548][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:46:18,672 [ INFO][       Thread-606548][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:46:18,672 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:46:18,673 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:46:19,710 [DEBUG][       Thread-606548][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:46:19,710 [DEBUG][       Thread-606548][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:46:19,760 [DEBUG][       Thread-606548][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:46:19,760 [DEBUG][       Thread-606548][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:46:19,769 [DEBUG][       Thread-606548][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:46:19,778 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:46:19,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-07-01 13:46:19,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') -> 00000000
2025-07-01 13:46:19,797 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:46:19,797 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:46:19,798 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:46:19,806 [DEBUG][       Thread-606548][   transport.py][1871] : EOF in transport thread
2025-07-01 13:46:22,116 [DEBUG][Thread-606550 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:46:26,992 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:46:26,993 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:46:29,808 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:46:29,809 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:46:29,809 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:46:29,812 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:46:30,315 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 46, 20), 11.07, 47.03, 0.0, 31.64, 13.37, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:46:30,315 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:46:20
2025-07-01 13:46:30,400 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:46:30,407 [DEBUG][       Thread-606551][   transport.py][1871] : starting thread (client mode): 0x81e7cd0
2025-07-01 13:46:30,407 [DEBUG][       Thread-606551][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:46:30,427 [DEBUG][       Thread-606551][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:46:30,427 [ INFO][       Thread-606551][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:46:30,430 [DEBUG][       Thread-606551][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:46:30,431 [DEBUG][       Thread-606551][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:46:30,431 [DEBUG][       Thread-606551][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:46:30,431 [DEBUG][       Thread-606551][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:46:30,431 [DEBUG][       Thread-606551][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:46:30,431 [DEBUG][       Thread-606551][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:46:30,431 [DEBUG][       Thread-606551][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:46:30,431 [DEBUG][       Thread-606551][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:46:30,431 [DEBUG][       Thread-606551][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:46:30,431 [DEBUG][       Thread-606551][   transport.py][1871] : client lang: <none>
2025-07-01 13:46:30,431 [DEBUG][       Thread-606551][   transport.py][1871] : server lang: <none>
2025-07-01 13:46:30,431 [DEBUG][       Thread-606551][   transport.py][1871] : kex follows: False
2025-07-01 13:46:30,431 [DEBUG][       Thread-606551][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:46:30,431 [DEBUG][       Thread-606551][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:46:30,431 [DEBUG][       Thread-606551][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:46:30,431 [DEBUG][       Thread-606551][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:46:30,431 [DEBUG][       Thread-606551][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:46:30,431 [DEBUG][       Thread-606551][   transport.py][1871] : Compression: none
2025-07-01 13:46:30,431 [DEBUG][       Thread-606551][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:46:30,448 [DEBUG][       Thread-606551][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:46:30,448 [DEBUG][       Thread-606551][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:46:30,449 [DEBUG][       Thread-606551][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:46:30,449 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:46:30,449 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:46:30,450 [DEBUG][       Thread-606551][   transport.py][1871] : userauth is OK
2025-07-01 13:46:30,475 [ INFO][       Thread-606551][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:46:30,475 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:46:31,133 [DEBUG][       Thread-606551][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:46:31,133 [DEBUG][       Thread-606551][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:46:31,138 [DEBUG][Thread-606553 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:46:31,177 [DEBUG][       Thread-606551][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:46:31,177 [DEBUG][       Thread-606551][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:46:31,181 [DEBUG][       Thread-606551][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:46:31,192 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:46:31,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:46:31,194 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:46:31,196 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:46:31,202 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:46:31,204 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:46:31,204 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:46:31,205 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:46:31,205 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.490219 -999.00  +13.00  38.51     52   +3.40 1 2 2 1 1   888    0 9.71 -4.44 ----- 43.2 38.5 22.4 46.9 15.7 -21.9 14.9 -22.9 15.0 -21.4 15.6 -20.0
2025-07-01 13:46:31,205 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:46:31,205 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:46:31,205 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.490219
2025-07-01 13:46:31,206 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:46:31,206 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:46:31,207 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:46:31,207 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:46:31,207 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 13:46:31,207 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:46:20', tmtdew=11.07, humidity=47.03, cloud=0.0, wind=31.64, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:45:54.922', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:46:31,207 [DEBUG][       Thread-606551][   transport.py][1871] : EOF in transport thread
2025-07-01 13:46:31,290 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:46:31,303 [DEBUG][       Thread-606555][   transport.py][1871] : starting thread (client mode): 0x8393910
2025-07-01 13:46:31,303 [DEBUG][       Thread-606555][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:46:31,318 [DEBUG][       Thread-606555][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:46:31,319 [ INFO][       Thread-606555][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:46:31,326 [DEBUG][       Thread-606555][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:46:31,326 [DEBUG][       Thread-606555][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:46:31,326 [DEBUG][       Thread-606555][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:46:31,326 [DEBUG][       Thread-606555][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:46:31,326 [DEBUG][       Thread-606555][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:46:31,327 [DEBUG][       Thread-606555][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:46:31,327 [DEBUG][       Thread-606555][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:46:31,327 [DEBUG][       Thread-606555][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:46:31,327 [DEBUG][       Thread-606555][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:46:31,327 [DEBUG][       Thread-606555][   transport.py][1871] : client lang: <none>
2025-07-01 13:46:31,327 [DEBUG][       Thread-606555][   transport.py][1871] : server lang: <none>
2025-07-01 13:46:31,327 [DEBUG][       Thread-606555][   transport.py][1871] : kex follows: False
2025-07-01 13:46:31,327 [DEBUG][       Thread-606555][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:46:31,327 [DEBUG][       Thread-606555][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:46:31,327 [DEBUG][       Thread-606555][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:46:31,327 [DEBUG][       Thread-606555][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:46:31,327 [DEBUG][       Thread-606555][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:46:31,327 [DEBUG][       Thread-606555][   transport.py][1871] : Compression: none
2025-07-01 13:46:31,327 [DEBUG][       Thread-606555][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:46:31,384 [DEBUG][       Thread-606555][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:46:31,384 [DEBUG][       Thread-606555][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:46:31,385 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:46:31,385 [DEBUG][       Thread-606555][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:46:31,386 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:46:31,449 [DEBUG][       Thread-606555][   transport.py][1871] : userauth is OK
2025-07-01 13:46:31,449 [DEBUG][       Thread-606555][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:46:31,449 [DEBUG][       Thread-606555][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:46:31,450 [DEBUG][       Thread-606555][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:46:31,450 [DEBUG][       Thread-606555][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:46:31,469 [ INFO][       Thread-606555][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:46:31,469 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:46:31,469 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:46:32,467 [DEBUG][       Thread-606555][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:46:32,467 [DEBUG][       Thread-606555][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:46:32,518 [DEBUG][       Thread-606555][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:46:32,518 [DEBUG][       Thread-606555][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:46:32,532 [DEBUG][       Thread-606555][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:46:32,545 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:46:32,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')
2025-07-01 13:46:32,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-07-01 13:46:32,573 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:46:32,574 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:46:32,574 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:46:32,582 [DEBUG][       Thread-606555][   transport.py][1871] : EOF in transport thread
2025-07-01 13:46:32,900 [DEBUG][Thread-606557 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:46:40,158 [DEBUG][Thread-606558 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:46:42,584 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:46:42,584 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:46:42,584 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:46:42,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-07-01 13:46:43,080 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 46, 20), 11.07, 47.03, 0.0, 31.64, 13.37, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:46:43,080 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:46:20
2025-07-01 13:46:43,167 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:46:43,171 [DEBUG][       Thread-606559][   transport.py][1871] : starting thread (client mode): 0x75ab490
2025-07-01 13:46:43,171 [DEBUG][       Thread-606559][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:46:43,192 [DEBUG][       Thread-606559][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:46:43,192 [ INFO][       Thread-606559][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:46:43,195 [DEBUG][       Thread-606559][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:46:43,195 [DEBUG][       Thread-606559][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:46:43,195 [DEBUG][       Thread-606559][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:46:43,195 [DEBUG][       Thread-606559][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:46:43,195 [DEBUG][       Thread-606559][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:46:43,195 [DEBUG][       Thread-606559][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:46:43,195 [DEBUG][       Thread-606559][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:46:43,195 [DEBUG][       Thread-606559][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:46:43,195 [DEBUG][       Thread-606559][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:46:43,195 [DEBUG][       Thread-606559][   transport.py][1871] : client lang: <none>
2025-07-01 13:46:43,195 [DEBUG][       Thread-606559][   transport.py][1871] : server lang: <none>
2025-07-01 13:46:43,195 [DEBUG][       Thread-606559][   transport.py][1871] : kex follows: False
2025-07-01 13:46:43,195 [DEBUG][       Thread-606559][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:46:43,195 [DEBUG][       Thread-606559][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:46:43,195 [DEBUG][       Thread-606559][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:46:43,195 [DEBUG][       Thread-606559][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:46:43,195 [DEBUG][       Thread-606559][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:46:43,195 [DEBUG][       Thread-606559][   transport.py][1871] : Compression: none
2025-07-01 13:46:43,195 [DEBUG][       Thread-606559][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:46:43,211 [DEBUG][       Thread-606559][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:46:43,211 [DEBUG][       Thread-606559][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:46:43,211 [DEBUG][       Thread-606559][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:46:43,211 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:46:43,211 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:46:43,212 [DEBUG][       Thread-606559][   transport.py][1871] : userauth is OK
2025-07-01 13:46:43,224 [ INFO][       Thread-606559][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:46:43,225 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:46:43,878 [DEBUG][       Thread-606559][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:46:43,878 [DEBUG][       Thread-606559][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:46:43,920 [DEBUG][       Thread-606559][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:46:43,921 [DEBUG][       Thread-606559][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:46:43,923 [DEBUG][       Thread-606559][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:46:43,935 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:46:43,936 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:46:43,937 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:46:43,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:46:43,944 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:46:43,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:46:43,945 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:46:43,945 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:46:43,946 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.490219 -999.00  +13.00  38.51     52   +3.40 1 2 2 1 1   888    0 9.71 -4.44 ----- 43.2 38.5 22.4 46.9 15.7 -21.9 14.9 -22.9 15.0 -21.4 15.6 -20.0
2025-07-01 13:46:43,946 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:46:43,946 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:46:43,946 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.490219
2025-07-01 13:46:43,946 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:46:43,946 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:46:43,946 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:46:43,946 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:46:43,946 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 13:46:43,946 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:46:20', tmtdew=11.07, humidity=47.03, cloud=0.0, wind=31.64, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:45:54.922', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:46:43,947 [DEBUG][       Thread-606559][   transport.py][1871] : EOF in transport thread
2025-07-01 13:46:44,020 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:46:44,029 [DEBUG][       Thread-606562][   transport.py][1871] : starting thread (client mode): 0x81a4460
2025-07-01 13:46:44,029 [DEBUG][       Thread-606562][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:46:44,044 [DEBUG][       Thread-606562][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:46:44,045 [ INFO][       Thread-606562][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:46:44,052 [DEBUG][       Thread-606562][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:46:44,052 [DEBUG][       Thread-606562][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:46:44,052 [DEBUG][       Thread-606562][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:46:44,052 [DEBUG][       Thread-606562][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:46:44,052 [DEBUG][       Thread-606562][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:46:44,052 [DEBUG][       Thread-606562][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:46:44,052 [DEBUG][       Thread-606562][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:46:44,052 [DEBUG][       Thread-606562][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:46:44,052 [DEBUG][       Thread-606562][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:46:44,052 [DEBUG][       Thread-606562][   transport.py][1871] : client lang: <none>
2025-07-01 13:46:44,052 [DEBUG][       Thread-606562][   transport.py][1871] : server lang: <none>
2025-07-01 13:46:44,052 [DEBUG][       Thread-606562][   transport.py][1871] : kex follows: False
2025-07-01 13:46:44,052 [DEBUG][       Thread-606562][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:46:44,052 [DEBUG][       Thread-606562][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:46:44,052 [DEBUG][       Thread-606562][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:46:44,052 [DEBUG][       Thread-606562][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:46:44,052 [DEBUG][       Thread-606562][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:46:44,052 [DEBUG][       Thread-606562][   transport.py][1871] : Compression: none
2025-07-01 13:46:44,052 [DEBUG][       Thread-606562][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:46:44,110 [DEBUG][       Thread-606562][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:46:44,110 [DEBUG][       Thread-606562][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:46:44,110 [DEBUG][       Thread-606562][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:46:44,110 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:46:44,110 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:46:44,166 [DEBUG][       Thread-606562][   transport.py][1871] : userauth is OK
2025-07-01 13:46:44,167 [DEBUG][       Thread-606562][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:46:44,167 [DEBUG][       Thread-606562][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:46:44,167 [DEBUG][       Thread-606562][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:46:44,167 [DEBUG][       Thread-606562][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:46:44,181 [ INFO][       Thread-606562][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:46:44,181 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:46:44,181 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:46:45,185 [DEBUG][       Thread-606562][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:46:45,185 [DEBUG][       Thread-606562][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:46:45,236 [DEBUG][       Thread-606562][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:46:45,236 [DEBUG][       Thread-606562][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:46:45,245 [DEBUG][       Thread-606562][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:46:45,252 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:46:45,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-07-01 13:46:45,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-07-01 13:46:45,272 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:46:45,272 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:46:45,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:46:45,280 [DEBUG][       Thread-606562][   transport.py][1871] : EOF in transport thread
2025-07-01 13:46:49,185 [DEBUG][Thread-606564 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:46:55,282 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:46:55,282 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:46:55,283 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:46:55,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-07-01 13:46:55,778 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 46, 51), 11.09, 46.96, 0.0, 35.62, 13.43, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:46:55,778 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:46:51
2025-07-01 13:46:55,863 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:46:55,868 [DEBUG][       Thread-606565][   transport.py][1871] : starting thread (client mode): 0x75aa110
2025-07-01 13:46:55,868 [DEBUG][       Thread-606565][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:46:55,888 [DEBUG][       Thread-606565][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:46:55,888 [ INFO][       Thread-606565][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:46:55,892 [DEBUG][       Thread-606565][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:46:55,892 [DEBUG][       Thread-606565][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:46:55,892 [DEBUG][       Thread-606565][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:46:55,892 [DEBUG][       Thread-606565][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:46:55,892 [DEBUG][       Thread-606565][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:46:55,892 [DEBUG][       Thread-606565][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:46:55,892 [DEBUG][       Thread-606565][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:46:55,892 [DEBUG][       Thread-606565][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:46:55,892 [DEBUG][       Thread-606565][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:46:55,892 [DEBUG][       Thread-606565][   transport.py][1871] : client lang: <none>
2025-07-01 13:46:55,892 [DEBUG][       Thread-606565][   transport.py][1871] : server lang: <none>
2025-07-01 13:46:55,892 [DEBUG][       Thread-606565][   transport.py][1871] : kex follows: False
2025-07-01 13:46:55,892 [DEBUG][       Thread-606565][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:46:55,892 [DEBUG][       Thread-606565][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:46:55,892 [DEBUG][       Thread-606565][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:46:55,892 [DEBUG][       Thread-606565][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:46:55,892 [DEBUG][       Thread-606565][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:46:55,892 [DEBUG][       Thread-606565][   transport.py][1871] : Compression: none
2025-07-01 13:46:55,892 [DEBUG][       Thread-606565][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:46:55,905 [DEBUG][       Thread-606565][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:46:55,906 [DEBUG][       Thread-606565][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:46:55,906 [DEBUG][       Thread-606565][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:46:55,906 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:46:55,906 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:46:55,908 [DEBUG][       Thread-606565][   transport.py][1871] : userauth is OK
2025-07-01 13:46:55,921 [ INFO][       Thread-606565][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:46:55,922 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:46:56,560 [DEBUG][       Thread-606565][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:46:56,560 [DEBUG][       Thread-606565][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:46:56,601 [DEBUG][       Thread-606565][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:46:56,601 [DEBUG][       Thread-606565][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:46:56,605 [DEBUG][       Thread-606565][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:46:56,617 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:46:56,617 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:46:56,619 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:46:56,621 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:46:56,626 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:46:56,628 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:46:56,628 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:46:56,629 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:46:56,629 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.490567 -999.00  +13.10  38.01     52   +3.60 1 2 2 1 1   888    0 9.69 -4.61 ----- 40.5 38.0 16.4 50.4 15.7 -21.6 14.9 -22.7 15.0 -21.0 15.7 -20.2
2025-07-01 13:46:56,629 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:46:56,629 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:46:56,630 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.490567
2025-07-01 13:46:56,630 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:46:56,631 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:46:56,631 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:46:56,631 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:46:56,631 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 13:46:56,631 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:46:51', tmtdew=11.09, humidity=46.96, cloud=0.0, wind=35.62, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:46:24.989', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:46:56,631 [DEBUG][       Thread-606565][   transport.py][1871] : EOF in transport thread
2025-07-01 13:46:56,724 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:46:56,738 [DEBUG][       Thread-606568][   transport.py][1871] : starting thread (client mode): 0x818fdf0
2025-07-01 13:46:56,738 [DEBUG][       Thread-606568][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:46:56,756 [DEBUG][       Thread-606568][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:46:56,756 [ INFO][       Thread-606568][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:46:56,765 [DEBUG][       Thread-606568][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:46:56,765 [DEBUG][       Thread-606568][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:46:56,765 [DEBUG][       Thread-606568][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:46:56,765 [DEBUG][       Thread-606568][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:46:56,765 [DEBUG][       Thread-606568][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:46:56,766 [DEBUG][       Thread-606568][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:46:56,766 [DEBUG][       Thread-606568][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:46:56,766 [DEBUG][       Thread-606568][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:46:56,766 [DEBUG][       Thread-606568][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:46:56,766 [DEBUG][       Thread-606568][   transport.py][1871] : client lang: <none>
2025-07-01 13:46:56,766 [DEBUG][       Thread-606568][   transport.py][1871] : server lang: <none>
2025-07-01 13:46:56,766 [DEBUG][       Thread-606568][   transport.py][1871] : kex follows: False
2025-07-01 13:46:56,766 [DEBUG][       Thread-606568][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:46:56,766 [DEBUG][       Thread-606568][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:46:56,766 [DEBUG][       Thread-606568][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:46:56,766 [DEBUG][       Thread-606568][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:46:56,766 [DEBUG][       Thread-606568][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:46:56,766 [DEBUG][       Thread-606568][   transport.py][1871] : Compression: none
2025-07-01 13:46:56,766 [DEBUG][       Thread-606568][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:46:56,827 [DEBUG][       Thread-606568][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:46:56,828 [DEBUG][       Thread-606568][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:46:56,828 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:46:56,829 [DEBUG][       Thread-606568][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:46:56,830 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:46:56,883 [DEBUG][       Thread-606568][   transport.py][1871] : userauth is OK
2025-07-01 13:46:56,883 [DEBUG][       Thread-606568][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:46:56,883 [DEBUG][       Thread-606568][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:46:56,884 [DEBUG][       Thread-606568][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:46:56,884 [DEBUG][       Thread-606568][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:46:56,903 [ INFO][       Thread-606568][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:46:56,903 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:46:56,904 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:46:57,949 [DEBUG][       Thread-606568][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:46:57,949 [DEBUG][       Thread-606568][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:46:58,000 [DEBUG][       Thread-606568][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:46:58,000 [DEBUG][       Thread-606568][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:46:58,009 [DEBUG][       Thread-606568][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:46:58,018 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:46:58,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-07-01 13:46:58,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-07-01 13:46:58,036 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:46:58,037 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:46:58,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:46:58,045 [DEBUG][       Thread-606568][   transport.py][1871] : EOF in transport thread
2025-07-01 13:46:58,206 [DEBUG][Thread-606570 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:47:07,241 [DEBUG][Thread-606571 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:47:08,048 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:47:08,048 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:47:08,048 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:47:08,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-07-01 13:47:08,531 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 46, 51), 11.09, 46.96, 0.0, 35.62, 13.43, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:47:08,531 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:46:51
2025-07-01 13:47:08,619 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:47:08,623 [DEBUG][       Thread-606572][   transport.py][1871] : starting thread (client mode): 0x81db6d0
2025-07-01 13:47:08,623 [DEBUG][       Thread-606572][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:47:08,644 [DEBUG][       Thread-606572][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:47:08,644 [ INFO][       Thread-606572][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:47:08,648 [DEBUG][       Thread-606572][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:47:08,648 [DEBUG][       Thread-606572][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:47:08,648 [DEBUG][       Thread-606572][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:47:08,648 [DEBUG][       Thread-606572][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:47:08,648 [DEBUG][       Thread-606572][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:47:08,648 [DEBUG][       Thread-606572][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:47:08,648 [DEBUG][       Thread-606572][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:47:08,648 [DEBUG][       Thread-606572][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:47:08,648 [DEBUG][       Thread-606572][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:47:08,648 [DEBUG][       Thread-606572][   transport.py][1871] : client lang: <none>
2025-07-01 13:47:08,648 [DEBUG][       Thread-606572][   transport.py][1871] : server lang: <none>
2025-07-01 13:47:08,648 [DEBUG][       Thread-606572][   transport.py][1871] : kex follows: False
2025-07-01 13:47:08,648 [DEBUG][       Thread-606572][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:47:08,648 [DEBUG][       Thread-606572][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:47:08,648 [DEBUG][       Thread-606572][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:47:08,648 [DEBUG][       Thread-606572][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:47:08,648 [DEBUG][       Thread-606572][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:47:08,648 [DEBUG][       Thread-606572][   transport.py][1871] : Compression: none
2025-07-01 13:47:08,648 [DEBUG][       Thread-606572][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:47:08,664 [DEBUG][       Thread-606572][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:47:08,664 [DEBUG][       Thread-606572][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:47:08,664 [DEBUG][       Thread-606572][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:47:08,664 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:47:08,664 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:47:08,665 [DEBUG][       Thread-606572][   transport.py][1871] : userauth is OK
2025-07-01 13:47:08,689 [ INFO][       Thread-606572][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:47:08,689 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:47:09,320 [DEBUG][       Thread-606572][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:47:09,320 [DEBUG][       Thread-606572][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:47:09,361 [DEBUG][       Thread-606572][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:47:09,361 [DEBUG][       Thread-606572][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:47:09,364 [DEBUG][       Thread-606572][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:47:09,376 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:47:09,376 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:47:09,378 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:47:09,380 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:47:09,386 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:47:09,388 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:47:09,388 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:47:09,389 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:47:09,389 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.490567 -999.00  +13.10  38.01     52   +3.60 1 2 2 1 1   888    0 9.69 -4.61 ----- 40.5 38.0 16.4 50.4 15.7 -21.6 14.9 -22.7 15.0 -21.0 15.7 -20.2
2025-07-01 13:47:09,389 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:47:09,389 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:47:09,389 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.490567
2025-07-01 13:47:09,390 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:47:09,390 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:47:09,390 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:47:09,391 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:47:09,391 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 13:47:09,391 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:46:51', tmtdew=11.09, humidity=46.96, cloud=0.0, wind=35.62, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:46:24.989', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:47:09,391 [DEBUG][       Thread-606572][   transport.py][1871] : EOF in transport thread
2025-07-01 13:47:09,476 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:47:09,485 [DEBUG][       Thread-606575][   transport.py][1871] : starting thread (client mode): 0x827d540
2025-07-01 13:47:09,485 [DEBUG][       Thread-606575][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:47:09,501 [DEBUG][       Thread-606575][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:47:09,501 [ INFO][       Thread-606575][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:47:09,514 [DEBUG][       Thread-606575][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:47:09,514 [DEBUG][       Thread-606575][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:47:09,515 [DEBUG][       Thread-606575][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:47:09,515 [DEBUG][       Thread-606575][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:47:09,515 [DEBUG][       Thread-606575][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:47:09,515 [DEBUG][       Thread-606575][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:47:09,515 [DEBUG][       Thread-606575][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:47:09,515 [DEBUG][       Thread-606575][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:47:09,515 [DEBUG][       Thread-606575][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:47:09,515 [DEBUG][       Thread-606575][   transport.py][1871] : client lang: <none>
2025-07-01 13:47:09,515 [DEBUG][       Thread-606575][   transport.py][1871] : server lang: <none>
2025-07-01 13:47:09,515 [DEBUG][       Thread-606575][   transport.py][1871] : kex follows: False
2025-07-01 13:47:09,515 [DEBUG][       Thread-606575][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:47:09,515 [DEBUG][       Thread-606575][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:47:09,515 [DEBUG][       Thread-606575][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:47:09,515 [DEBUG][       Thread-606575][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:47:09,515 [DEBUG][       Thread-606575][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:47:09,515 [DEBUG][       Thread-606575][   transport.py][1871] : Compression: none
2025-07-01 13:47:09,516 [DEBUG][       Thread-606575][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:47:09,566 [DEBUG][       Thread-606575][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:47:09,567 [DEBUG][       Thread-606575][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:47:09,568 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:47:09,568 [DEBUG][       Thread-606575][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:47:09,569 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:47:09,623 [DEBUG][       Thread-606575][   transport.py][1871] : userauth is OK
2025-07-01 13:47:09,623 [DEBUG][       Thread-606575][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:47:09,623 [DEBUG][       Thread-606575][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:47:09,623 [DEBUG][       Thread-606575][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:47:09,623 [DEBUG][       Thread-606575][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:47:09,642 [ INFO][       Thread-606575][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:47:09,643 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:47:09,643 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:47:10,653 [DEBUG][       Thread-606575][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:47:10,653 [DEBUG][       Thread-606575][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:47:10,704 [DEBUG][       Thread-606575][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:47:10,704 [DEBUG][       Thread-606575][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:47:10,713 [DEBUG][       Thread-606575][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:47:10,722 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:47:10,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-07-01 13:47:10,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-07-01 13:47:10,740 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:47:10,740 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:47:10,741 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:47:10,749 [DEBUG][       Thread-606575][   transport.py][1871] : EOF in transport thread
2025-07-01 13:47:16,265 [DEBUG][Thread-606577 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:47:20,751 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:47:20,752 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:47:20,752 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:47:20,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-07-01 13:47:21,245 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 46, 51), 11.09, 46.96, 0.0, 35.62, 13.43, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:47:21,245 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:46:51
2025-07-01 13:47:21,332 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:47:21,336 [DEBUG][       Thread-606578][   transport.py][1871] : starting thread (client mode): 0x81d96c0
2025-07-01 13:47:21,336 [DEBUG][       Thread-606578][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:47:21,357 [DEBUG][       Thread-606578][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:47:21,357 [ INFO][       Thread-606578][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:47:21,360 [DEBUG][       Thread-606578][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:47:21,360 [DEBUG][       Thread-606578][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:47:21,360 [DEBUG][       Thread-606578][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:47:21,360 [DEBUG][       Thread-606578][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:47:21,360 [DEBUG][       Thread-606578][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:47:21,360 [DEBUG][       Thread-606578][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:47:21,360 [DEBUG][       Thread-606578][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:47:21,360 [DEBUG][       Thread-606578][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:47:21,361 [DEBUG][       Thread-606578][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:47:21,361 [DEBUG][       Thread-606578][   transport.py][1871] : client lang: <none>
2025-07-01 13:47:21,361 [DEBUG][       Thread-606578][   transport.py][1871] : server lang: <none>
2025-07-01 13:47:21,361 [DEBUG][       Thread-606578][   transport.py][1871] : kex follows: False
2025-07-01 13:47:21,361 [DEBUG][       Thread-606578][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:47:21,361 [DEBUG][       Thread-606578][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:47:21,361 [DEBUG][       Thread-606578][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:47:21,361 [DEBUG][       Thread-606578][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:47:21,361 [DEBUG][       Thread-606578][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:47:21,361 [DEBUG][       Thread-606578][   transport.py][1871] : Compression: none
2025-07-01 13:47:21,361 [DEBUG][       Thread-606578][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:47:21,377 [DEBUG][       Thread-606578][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:47:21,377 [DEBUG][       Thread-606578][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:47:21,378 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:47:21,378 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:47:21,378 [DEBUG][       Thread-606578][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:47:21,379 [DEBUG][       Thread-606578][   transport.py][1871] : userauth is OK
2025-07-01 13:47:21,394 [ INFO][       Thread-606578][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:47:21,394 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:47:21,975 [DEBUG][       Thread-606578][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:47:21,976 [DEBUG][       Thread-606578][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:47:22,017 [DEBUG][       Thread-606578][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:47:22,017 [DEBUG][       Thread-606578][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:47:22,020 [DEBUG][       Thread-606578][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:47:22,033 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:47:22,033 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:47:22,035 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:47:22,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:47:22,043 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:47:22,045 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:47:22,045 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:47:22,046 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:47:22,046 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.490914 -999.00  +13.20  36.69     52   +3.60 1 2 2 1 1   888    0 9.63 -5.23 ----- 30.2 36.7 19.6 49.6 15.7 -21.6 15.0 -22.0 15.0 -20.9 15.7 -21.3
2025-07-01 13:47:22,046 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:47:22,046 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:47:22,046 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.490914
2025-07-01 13:47:22,046 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:47:22,047 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:47:22,047 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:47:22,047 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:47:22,047 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 13:47:22,047 [DEBUG][       Thread-606578][   transport.py][1871] : EOF in transport thread
2025-07-01 13:47:22,047 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:46:51', tmtdew=11.09, humidity=46.96, cloud=0.0, wind=35.62, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:46:54.970', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:47:22,131 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:47:22,143 [DEBUG][       Thread-606581][   transport.py][1871] : starting thread (client mode): 0x8170280
2025-07-01 13:47:22,143 [DEBUG][       Thread-606581][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:47:22,159 [DEBUG][       Thread-606581][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:47:22,159 [ INFO][       Thread-606581][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:47:22,166 [DEBUG][       Thread-606581][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:47:22,167 [DEBUG][       Thread-606581][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:47:22,167 [DEBUG][       Thread-606581][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:47:22,167 [DEBUG][       Thread-606581][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:47:22,167 [DEBUG][       Thread-606581][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:47:22,167 [DEBUG][       Thread-606581][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:47:22,167 [DEBUG][       Thread-606581][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:47:22,167 [DEBUG][       Thread-606581][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:47:22,167 [DEBUG][       Thread-606581][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:47:22,167 [DEBUG][       Thread-606581][   transport.py][1871] : client lang: <none>
2025-07-01 13:47:22,167 [DEBUG][       Thread-606581][   transport.py][1871] : server lang: <none>
2025-07-01 13:47:22,167 [DEBUG][       Thread-606581][   transport.py][1871] : kex follows: False
2025-07-01 13:47:22,167 [DEBUG][       Thread-606581][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:47:22,167 [DEBUG][       Thread-606581][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:47:22,167 [DEBUG][       Thread-606581][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:47:22,167 [DEBUG][       Thread-606581][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:47:22,167 [DEBUG][       Thread-606581][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:47:22,167 [DEBUG][       Thread-606581][   transport.py][1871] : Compression: none
2025-07-01 13:47:22,167 [DEBUG][       Thread-606581][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:47:22,231 [DEBUG][       Thread-606581][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:47:22,231 [DEBUG][       Thread-606581][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:47:22,232 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:47:22,233 [DEBUG][       Thread-606581][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:47:22,233 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:47:22,287 [DEBUG][       Thread-606581][   transport.py][1871] : userauth is OK
2025-07-01 13:47:22,287 [DEBUG][       Thread-606581][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:47:22,287 [DEBUG][       Thread-606581][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:47:22,287 [DEBUG][       Thread-606581][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:47:22,287 [DEBUG][       Thread-606581][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:47:22,307 [ INFO][       Thread-606581][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:47:22,307 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:47:22,308 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:47:23,327 [DEBUG][       Thread-606581][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:47:23,327 [DEBUG][       Thread-606581][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:47:23,375 [DEBUG][       Thread-606581][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:47:23,375 [DEBUG][       Thread-606581][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:47:23,385 [DEBUG][       Thread-606581][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:47:23,393 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:47:23,393 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 13:47:23,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') -> 00000000
2025-07-01 13:47:23,416 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:47:23,416 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:47:23,416 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:47:23,427 [DEBUG][       Thread-606581][   transport.py][1871] : EOF in transport thread
2025-07-01 13:47:25,283 [DEBUG][Thread-606583 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:47:27,130 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:47:27,131 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:47:32,932 [DEBUG][Thread-606584 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:47:33,426 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:47:33,427 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:47:33,427 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:47:33,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-07-01 13:47:33,928 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 47, 23), 11.2, 46.86, 0.0, 38.61, 13.5, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:47:33,928 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:47:23
2025-07-01 13:47:34,015 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:47:34,021 [DEBUG][       Thread-606585][   transport.py][1871] : starting thread (client mode): 0x81064d0
2025-07-01 13:47:34,021 [DEBUG][       Thread-606585][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:47:34,043 [DEBUG][       Thread-606585][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:47:34,044 [ INFO][       Thread-606585][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:47:34,047 [DEBUG][       Thread-606585][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:47:34,047 [DEBUG][       Thread-606585][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:47:34,048 [DEBUG][       Thread-606585][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:47:34,048 [DEBUG][       Thread-606585][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:47:34,048 [DEBUG][       Thread-606585][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:47:34,048 [DEBUG][       Thread-606585][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:47:34,048 [DEBUG][       Thread-606585][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:47:34,048 [DEBUG][       Thread-606585][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:47:34,048 [DEBUG][       Thread-606585][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:47:34,048 [DEBUG][       Thread-606585][   transport.py][1871] : client lang: <none>
2025-07-01 13:47:34,048 [DEBUG][       Thread-606585][   transport.py][1871] : server lang: <none>
2025-07-01 13:47:34,048 [DEBUG][       Thread-606585][   transport.py][1871] : kex follows: False
2025-07-01 13:47:34,048 [DEBUG][       Thread-606585][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:47:34,048 [DEBUG][       Thread-606585][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:47:34,048 [DEBUG][       Thread-606585][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:47:34,048 [DEBUG][       Thread-606585][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:47:34,048 [DEBUG][       Thread-606585][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:47:34,048 [DEBUG][       Thread-606585][   transport.py][1871] : Compression: none
2025-07-01 13:47:34,048 [DEBUG][       Thread-606585][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:47:34,068 [DEBUG][       Thread-606585][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:47:34,069 [DEBUG][       Thread-606585][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:47:34,069 [DEBUG][       Thread-606585][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:47:34,069 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:47:34,070 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:47:34,071 [DEBUG][       Thread-606585][   transport.py][1871] : userauth is OK
2025-07-01 13:47:34,095 [ INFO][       Thread-606585][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:47:34,096 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:47:34,302 [DEBUG][Thread-606587 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:47:34,730 [DEBUG][       Thread-606585][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:47:34,730 [DEBUG][       Thread-606585][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:47:34,773 [DEBUG][       Thread-606585][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:47:34,773 [DEBUG][       Thread-606585][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:47:34,776 [DEBUG][       Thread-606585][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:47:34,790 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:47:34,791 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:47:34,793 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:47:34,795 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:47:34,800 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:47:34,802 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:47:34,802 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:47:34,803 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:47:34,803 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.490914 -999.00  +13.20  36.69     52   +3.60 1 2 2 1 1   888    0 9.63 -5.23 ----- 30.2 36.7 19.6 49.6 15.7 -21.6 15.0 -22.0 15.0 -20.9 15.7 -21.3
2025-07-01 13:47:34,803 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:47:34,803 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:47:34,803 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.490914
2025-07-01 13:47:34,804 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:47:34,804 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:47:34,804 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:47:34,804 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:47:34,804 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 13:47:34,805 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:47:23', tmtdew=11.2, humidity=46.86, cloud=0.0, wind=38.61, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:46:54.970', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:47:34,806 [DEBUG][       Thread-606585][   transport.py][1871] : EOF in transport thread
2025-07-01 13:47:34,888 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:47:43,322 [DEBUG][Thread-606589 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:47:52,366 [DEBUG][Thread-606590 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:48:01,384 [DEBUG][Thread-606591 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:48:10,401 [DEBUG][Thread-606592 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:48:19,424 [DEBUG][Thread-606593 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:48:27,267 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:48:27,268 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:48:28,447 [DEBUG][Thread-606594 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:48:32,985 [DEBUG][Thread-606595 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:48:37,467 [DEBUG][Thread-606596 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:48:46,493 [DEBUG][Thread-606597 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:48:55,515 [DEBUG][Thread-606598 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:49:04,537 [DEBUG][Thread-606599 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:49:13,559 [DEBUG][Thread-606600 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:49:22,578 [DEBUG][Thread-606601 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:49:27,407 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:49:27,408 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:49:31,601 [DEBUG][Thread-606602 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:49:33,038 [DEBUG][Thread-606603 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:49:40,619 [DEBUG][Thread-606604 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:49:44,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-07-01 13:49:49,640 [DEBUG][Thread-606605 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:49:54,350 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:49:54,351 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:49:54,351 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:49:54,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-07-01 13:49:54,859 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 49, 30), 11.16, 46.73, 0.0, 39.13, 13.41, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:49:54,859 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:49:30
2025-07-01 13:49:54,945 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:49:54,949 [DEBUG][       Thread-606606][   transport.py][1871] : starting thread (client mode): 0x75a9780
2025-07-01 13:49:54,949 [DEBUG][       Thread-606606][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:49:54,971 [DEBUG][       Thread-606606][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:49:54,971 [ INFO][       Thread-606606][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:49:54,973 [DEBUG][       Thread-606606][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:49:54,973 [DEBUG][       Thread-606606][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:49:54,973 [DEBUG][       Thread-606606][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:49:54,973 [DEBUG][       Thread-606606][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:49:54,973 [DEBUG][       Thread-606606][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:49:54,973 [DEBUG][       Thread-606606][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:49:54,973 [DEBUG][       Thread-606606][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:49:54,973 [DEBUG][       Thread-606606][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:49:54,973 [DEBUG][       Thread-606606][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:49:54,973 [DEBUG][       Thread-606606][   transport.py][1871] : client lang: <none>
2025-07-01 13:49:54,973 [DEBUG][       Thread-606606][   transport.py][1871] : server lang: <none>
2025-07-01 13:49:54,973 [DEBUG][       Thread-606606][   transport.py][1871] : kex follows: False
2025-07-01 13:49:54,973 [DEBUG][       Thread-606606][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:49:54,973 [DEBUG][       Thread-606606][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:49:54,973 [DEBUG][       Thread-606606][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:49:54,973 [DEBUG][       Thread-606606][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:49:54,973 [DEBUG][       Thread-606606][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:49:54,973 [DEBUG][       Thread-606606][   transport.py][1871] : Compression: none
2025-07-01 13:49:54,973 [DEBUG][       Thread-606606][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:49:54,990 [DEBUG][       Thread-606606][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:49:54,990 [DEBUG][       Thread-606606][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:49:54,991 [DEBUG][       Thread-606606][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:49:54,991 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:49:54,991 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:49:54,992 [DEBUG][       Thread-606606][   transport.py][1871] : userauth is OK
2025-07-01 13:49:55,005 [ INFO][       Thread-606606][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:49:55,005 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:49:55,626 [DEBUG][       Thread-606606][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:49:55,626 [DEBUG][       Thread-606606][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:49:55,673 [DEBUG][       Thread-606606][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:49:55,673 [DEBUG][       Thread-606606][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:49:55,676 [DEBUG][       Thread-606606][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:49:55,690 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:49:55,690 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:49:55,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:49:55,694 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:49:55,700 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:49:55,701 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:49:55,702 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:49:55,702 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:49:55,702 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.492650 -999.00  +13.20  32.99     52   +3.60 1 2 2 1 1   888    0 9.53 -7.31 ----- 34.3 33.0 19.2 47.5 15.8 -21.6 15.0 -22.5 15.1 -21.3 15.8 -20.8
2025-07-01 13:49:55,703 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:49:55,703 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:49:55,703 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.492650
2025-07-01 13:49:55,703 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:49:55,704 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:49:55,704 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:49:55,704 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:49:55,704 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 13:49:55,704 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:49:30', tmtdew=11.16, humidity=46.73, cloud=0.0, wind=39.13, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:49:24.960', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:49:55,705 [DEBUG][       Thread-606606][   transport.py][1871] : EOF in transport thread
2025-07-01 13:49:55,788 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:49:55,799 [DEBUG][       Thread-606609][   transport.py][1871] : starting thread (client mode): 0x8171b10
2025-07-01 13:49:55,799 [DEBUG][       Thread-606609][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:49:55,814 [DEBUG][       Thread-606609][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:49:55,815 [ INFO][       Thread-606609][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:49:55,822 [DEBUG][       Thread-606609][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:49:55,822 [DEBUG][       Thread-606609][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:49:55,822 [DEBUG][       Thread-606609][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:49:55,822 [DEBUG][       Thread-606609][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:49:55,822 [DEBUG][       Thread-606609][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:49:55,822 [DEBUG][       Thread-606609][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:49:55,822 [DEBUG][       Thread-606609][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:49:55,822 [DEBUG][       Thread-606609][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:49:55,822 [DEBUG][       Thread-606609][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:49:55,822 [DEBUG][       Thread-606609][   transport.py][1871] : client lang: <none>
2025-07-01 13:49:55,822 [DEBUG][       Thread-606609][   transport.py][1871] : server lang: <none>
2025-07-01 13:49:55,822 [DEBUG][       Thread-606609][   transport.py][1871] : kex follows: False
2025-07-01 13:49:55,822 [DEBUG][       Thread-606609][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:49:55,823 [DEBUG][       Thread-606609][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:49:55,823 [DEBUG][       Thread-606609][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:49:55,823 [DEBUG][       Thread-606609][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:49:55,823 [DEBUG][       Thread-606609][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:49:55,823 [DEBUG][       Thread-606609][   transport.py][1871] : Compression: none
2025-07-01 13:49:55,823 [DEBUG][       Thread-606609][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:49:55,887 [DEBUG][       Thread-606609][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:49:55,888 [DEBUG][       Thread-606609][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:49:55,889 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:49:55,889 [DEBUG][       Thread-606609][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:49:55,890 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:49:55,948 [DEBUG][       Thread-606609][   transport.py][1871] : userauth is OK
2025-07-01 13:49:55,949 [DEBUG][       Thread-606609][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:49:55,949 [DEBUG][       Thread-606609][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:49:55,949 [DEBUG][       Thread-606609][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:49:55,949 [DEBUG][       Thread-606609][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:49:55,966 [ INFO][       Thread-606609][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:49:55,967 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:49:55,967 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:49:56,987 [DEBUG][       Thread-606609][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:49:56,987 [DEBUG][       Thread-606609][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:49:57,035 [DEBUG][       Thread-606609][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:49:57,035 [DEBUG][       Thread-606609][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:49:57,044 [DEBUG][       Thread-606609][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:49:57,052 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:49:57,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-07-01 13:49:57,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-07-01 13:49:57,067 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:49:57,067 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:49:57,068 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:49:57,075 [DEBUG][       Thread-606609][   transport.py][1871] : EOF in transport thread
2025-07-01 13:49:58,660 [DEBUG][Thread-606611 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:50:07,078 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:50:07,078 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:50:07,078 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:50:07,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-07-01 13:50:07,599 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 50, 2), 11.2, 46.62, 0.0, 39.01, 13.45, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:50:07,599 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:50:02
2025-07-01 13:50:07,680 [DEBUG][Thread-606612 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:50:07,683 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:50:07,686 [DEBUG][       Thread-606613][   transport.py][1871] : starting thread (client mode): 0x81a4130
2025-07-01 13:50:07,686 [DEBUG][       Thread-606613][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:50:07,703 [DEBUG][       Thread-606613][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:50:07,703 [ INFO][       Thread-606613][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:50:07,705 [DEBUG][       Thread-606613][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:50:07,705 [DEBUG][       Thread-606613][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:50:07,705 [DEBUG][       Thread-606613][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:50:07,705 [DEBUG][       Thread-606613][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:50:07,705 [DEBUG][       Thread-606613][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:50:07,705 [DEBUG][       Thread-606613][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:50:07,705 [DEBUG][       Thread-606613][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:50:07,705 [DEBUG][       Thread-606613][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:50:07,705 [DEBUG][       Thread-606613][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:50:07,705 [DEBUG][       Thread-606613][   transport.py][1871] : client lang: <none>
2025-07-01 13:50:07,705 [DEBUG][       Thread-606613][   transport.py][1871] : server lang: <none>
2025-07-01 13:50:07,705 [DEBUG][       Thread-606613][   transport.py][1871] : kex follows: False
2025-07-01 13:50:07,705 [DEBUG][       Thread-606613][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:50:07,705 [DEBUG][       Thread-606613][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:50:07,705 [DEBUG][       Thread-606613][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:50:07,705 [DEBUG][       Thread-606613][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:50:07,705 [DEBUG][       Thread-606613][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:50:07,705 [DEBUG][       Thread-606613][   transport.py][1871] : Compression: none
2025-07-01 13:50:07,705 [DEBUG][       Thread-606613][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:50:07,713 [DEBUG][       Thread-606613][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:50:07,713 [DEBUG][       Thread-606613][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:50:07,714 [DEBUG][       Thread-606613][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:50:07,714 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:50:07,714 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:50:07,715 [DEBUG][       Thread-606613][   transport.py][1871] : userauth is OK
2025-07-01 13:50:07,728 [ INFO][       Thread-606613][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:50:07,728 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:50:08,329 [DEBUG][       Thread-606613][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:50:08,330 [DEBUG][       Thread-606613][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:50:08,373 [DEBUG][       Thread-606613][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:50:08,373 [DEBUG][       Thread-606613][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:50:08,378 [DEBUG][       Thread-606613][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:50:08,392 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:50:08,393 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:50:08,394 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:50:08,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:50:08,401 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:50:08,403 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:50:08,403 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:50:08,404 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:50:08,404 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.492997 -999.00  +13.40  38.05     51   +3.60 1 2 2 1 1   888    0 9.53 -7.90 ----- 48.0 38.0 28.0 48.2 15.9 -22.1 15.1 -22.1 15.2 -21.8 15.9 -21.8
2025-07-01 13:50:08,404 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:50:08,404 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:50:08,404 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.492997
2025-07-01 13:50:08,405 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:50:08,405 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:50:08,405 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:50:08,405 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:50:08,405 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 13:50:08,405 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:50:02', tmtdew=11.2, humidity=46.62, cloud=0.0, wind=39.01, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:49:54.941', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:50:08,407 [DEBUG][       Thread-606613][   transport.py][1871] : EOF in transport thread
2025-07-01 13:50:08,489 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:50:08,498 [DEBUG][       Thread-606616][   transport.py][1871] : starting thread (client mode): 0x818f790
2025-07-01 13:50:08,498 [DEBUG][       Thread-606616][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:50:08,515 [DEBUG][       Thread-606616][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:50:08,515 [ INFO][       Thread-606616][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:50:08,522 [DEBUG][       Thread-606616][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:50:08,522 [DEBUG][       Thread-606616][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:50:08,522 [DEBUG][       Thread-606616][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:50:08,522 [DEBUG][       Thread-606616][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:50:08,522 [DEBUG][       Thread-606616][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:50:08,522 [DEBUG][       Thread-606616][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:50:08,522 [DEBUG][       Thread-606616][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:50:08,522 [DEBUG][       Thread-606616][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:50:08,522 [DEBUG][       Thread-606616][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:50:08,522 [DEBUG][       Thread-606616][   transport.py][1871] : client lang: <none>
2025-07-01 13:50:08,522 [DEBUG][       Thread-606616][   transport.py][1871] : server lang: <none>
2025-07-01 13:50:08,522 [DEBUG][       Thread-606616][   transport.py][1871] : kex follows: False
2025-07-01 13:50:08,522 [DEBUG][       Thread-606616][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:50:08,522 [DEBUG][       Thread-606616][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:50:08,522 [DEBUG][       Thread-606616][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:50:08,522 [DEBUG][       Thread-606616][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:50:08,522 [DEBUG][       Thread-606616][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:50:08,522 [DEBUG][       Thread-606616][   transport.py][1871] : Compression: none
2025-07-01 13:50:08,522 [DEBUG][       Thread-606616][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:50:08,580 [DEBUG][       Thread-606616][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:50:08,580 [DEBUG][       Thread-606616][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:50:08,580 [DEBUG][       Thread-606616][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:50:08,580 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:50:08,581 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:50:08,636 [DEBUG][       Thread-606616][   transport.py][1871] : userauth is OK
2025-07-01 13:50:08,636 [DEBUG][       Thread-606616][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:50:08,636 [DEBUG][       Thread-606616][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:50:08,636 [DEBUG][       Thread-606616][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:50:08,636 [DEBUG][       Thread-606616][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:50:08,652 [ INFO][       Thread-606616][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:50:08,652 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:50:08,653 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:50:09,678 [DEBUG][       Thread-606616][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:50:09,678 [DEBUG][       Thread-606616][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:50:09,732 [DEBUG][       Thread-606616][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:50:09,732 [DEBUG][       Thread-606616][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:50:09,746 [DEBUG][       Thread-606616][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:50:09,755 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:50:09,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-07-01 13:50:09,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-07-01 13:50:09,773 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:50:09,773 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:50:09,774 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:50:09,782 [DEBUG][       Thread-606616][   transport.py][1871] : EOF in transport thread
2025-07-01 13:50:16,701 [DEBUG][Thread-606618 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:50:19,784 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:50:19,785 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:50:19,785 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:50:19,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-07-01 13:50:20,295 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 50, 2), 11.2, 46.62, 0.0, 39.01, 13.45, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:50:20,296 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:50:02
2025-07-01 13:50:20,379 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:50:20,382 [DEBUG][       Thread-606619][   transport.py][1871] : starting thread (client mode): 0x81e7cd0
2025-07-01 13:50:20,383 [DEBUG][       Thread-606619][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:50:20,403 [DEBUG][       Thread-606619][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:50:20,403 [ INFO][       Thread-606619][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:50:20,405 [DEBUG][       Thread-606619][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:50:20,405 [DEBUG][       Thread-606619][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:50:20,405 [DEBUG][       Thread-606619][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:50:20,405 [DEBUG][       Thread-606619][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:50:20,405 [DEBUG][       Thread-606619][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:50:20,405 [DEBUG][       Thread-606619][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:50:20,405 [DEBUG][       Thread-606619][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:50:20,405 [DEBUG][       Thread-606619][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:50:20,405 [DEBUG][       Thread-606619][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:50:20,405 [DEBUG][       Thread-606619][   transport.py][1871] : client lang: <none>
2025-07-01 13:50:20,405 [DEBUG][       Thread-606619][   transport.py][1871] : server lang: <none>
2025-07-01 13:50:20,405 [DEBUG][       Thread-606619][   transport.py][1871] : kex follows: False
2025-07-01 13:50:20,405 [DEBUG][       Thread-606619][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:50:20,405 [DEBUG][       Thread-606619][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:50:20,405 [DEBUG][       Thread-606619][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:50:20,405 [DEBUG][       Thread-606619][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:50:20,405 [DEBUG][       Thread-606619][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:50:20,405 [DEBUG][       Thread-606619][   transport.py][1871] : Compression: none
2025-07-01 13:50:20,405 [DEBUG][       Thread-606619][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:50:20,421 [DEBUG][       Thread-606619][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:50:20,421 [DEBUG][       Thread-606619][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:50:20,421 [DEBUG][       Thread-606619][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:50:20,422 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:50:20,422 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:50:20,423 [DEBUG][       Thread-606619][   transport.py][1871] : userauth is OK
2025-07-01 13:50:20,436 [ INFO][       Thread-606619][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:50:20,437 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:50:21,133 [DEBUG][       Thread-606619][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:50:21,133 [DEBUG][       Thread-606619][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:50:21,176 [DEBUG][       Thread-606619][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:50:21,177 [DEBUG][       Thread-606619][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:50:21,179 [DEBUG][       Thread-606619][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:50:21,191 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:50:21,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:50:21,193 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:50:21,195 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:50:21,200 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:50:21,202 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:50:21,202 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:50:21,202 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:50:21,203 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.492997 -999.00  +13.40  38.05     51   +3.60 1 2 2 1 1   888    0 9.53 -7.90 ----- 48.0 38.0 28.0 48.2 15.9 -22.1 15.1 -22.1 15.2 -21.8 15.9 -21.8
2025-07-01 13:50:21,203 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:50:21,203 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:50:21,203 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.492997
2025-07-01 13:50:21,203 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:50:21,204 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:50:21,204 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:50:21,204 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:50:21,204 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 13:50:21,204 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:50:02', tmtdew=11.2, humidity=46.62, cloud=0.0, wind=39.01, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:49:54.941', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:50:21,205 [DEBUG][       Thread-606619][   transport.py][1871] : EOF in transport thread
2025-07-01 13:50:21,287 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:50:21,305 [DEBUG][       Thread-606622][   transport.py][1871] : starting thread (client mode): 0x83c8070
2025-07-01 13:50:21,305 [DEBUG][       Thread-606622][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:50:21,320 [DEBUG][       Thread-606622][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:50:21,321 [ INFO][       Thread-606622][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:50:21,328 [DEBUG][       Thread-606622][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:50:21,328 [DEBUG][       Thread-606622][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:50:21,328 [DEBUG][       Thread-606622][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:50:21,328 [DEBUG][       Thread-606622][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:50:21,328 [DEBUG][       Thread-606622][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:50:21,328 [DEBUG][       Thread-606622][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:50:21,328 [DEBUG][       Thread-606622][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:50:21,328 [DEBUG][       Thread-606622][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:50:21,329 [DEBUG][       Thread-606622][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:50:21,329 [DEBUG][       Thread-606622][   transport.py][1871] : client lang: <none>
2025-07-01 13:50:21,329 [DEBUG][       Thread-606622][   transport.py][1871] : server lang: <none>
2025-07-01 13:50:21,329 [DEBUG][       Thread-606622][   transport.py][1871] : kex follows: False
2025-07-01 13:50:21,329 [DEBUG][       Thread-606622][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:50:21,329 [DEBUG][       Thread-606622][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:50:21,329 [DEBUG][       Thread-606622][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:50:21,329 [DEBUG][       Thread-606622][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:50:21,329 [DEBUG][       Thread-606622][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:50:21,329 [DEBUG][       Thread-606622][   transport.py][1871] : Compression: none
2025-07-01 13:50:21,329 [DEBUG][       Thread-606622][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:50:21,388 [DEBUG][       Thread-606622][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:50:21,389 [DEBUG][       Thread-606622][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:50:21,389 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:50:21,390 [DEBUG][       Thread-606622][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:50:21,390 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:50:21,445 [DEBUG][       Thread-606622][   transport.py][1871] : userauth is OK
2025-07-01 13:50:21,445 [DEBUG][       Thread-606622][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:50:21,445 [DEBUG][       Thread-606622][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:50:21,445 [DEBUG][       Thread-606622][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:50:21,445 [DEBUG][       Thread-606622][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:50:21,464 [ INFO][       Thread-606622][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:50:21,464 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:50:21,464 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:50:22,489 [DEBUG][       Thread-606622][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:50:22,489 [DEBUG][       Thread-606622][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:50:22,541 [DEBUG][       Thread-606622][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:50:22,541 [DEBUG][       Thread-606622][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:50:22,553 [DEBUG][       Thread-606622][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:50:22,563 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:50:22,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')
2025-07-01 13:50:22,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-07-01 13:50:22,584 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:50:22,584 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:50:22,585 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:50:22,592 [DEBUG][       Thread-606622][   transport.py][1871] : EOF in transport thread
2025-07-01 13:50:25,743 [DEBUG][Thread-606624 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:50:27,548 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:50:27,549 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:50:32,595 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:50:32,595 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:50:32,595 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:50:32,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-07-01 13:50:33,066 [DEBUG][Thread-606625 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:50:33,111 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 50, 2), 11.2, 46.62, 0.0, 39.01, 13.45, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:50:33,111 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:50:02
2025-07-01 13:50:33,194 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:50:33,200 [DEBUG][       Thread-606626][   transport.py][1871] : starting thread (client mode): 0x81047c0
2025-07-01 13:50:33,200 [DEBUG][       Thread-606626][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:50:33,219 [DEBUG][       Thread-606626][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:50:33,220 [ INFO][       Thread-606626][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:50:33,223 [DEBUG][       Thread-606626][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:50:33,223 [DEBUG][       Thread-606626][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:50:33,223 [DEBUG][       Thread-606626][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:50:33,223 [DEBUG][       Thread-606626][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:50:33,223 [DEBUG][       Thread-606626][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:50:33,223 [DEBUG][       Thread-606626][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:50:33,223 [DEBUG][       Thread-606626][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:50:33,223 [DEBUG][       Thread-606626][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:50:33,223 [DEBUG][       Thread-606626][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:50:33,223 [DEBUG][       Thread-606626][   transport.py][1871] : client lang: <none>
2025-07-01 13:50:33,223 [DEBUG][       Thread-606626][   transport.py][1871] : server lang: <none>
2025-07-01 13:50:33,223 [DEBUG][       Thread-606626][   transport.py][1871] : kex follows: False
2025-07-01 13:50:33,223 [DEBUG][       Thread-606626][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:50:33,223 [DEBUG][       Thread-606626][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:50:33,223 [DEBUG][       Thread-606626][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:50:33,223 [DEBUG][       Thread-606626][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:50:33,223 [DEBUG][       Thread-606626][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:50:33,223 [DEBUG][       Thread-606626][   transport.py][1871] : Compression: none
2025-07-01 13:50:33,223 [DEBUG][       Thread-606626][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:50:33,241 [DEBUG][       Thread-606626][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:50:33,242 [DEBUG][       Thread-606626][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:50:33,242 [DEBUG][       Thread-606626][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:50:33,243 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:50:33,243 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:50:33,244 [DEBUG][       Thread-606626][   transport.py][1871] : userauth is OK
2025-07-01 13:50:33,268 [ INFO][       Thread-606626][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:50:33,268 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:50:34,050 [DEBUG][       Thread-606626][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:50:34,051 [DEBUG][       Thread-606626][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:50:34,092 [DEBUG][       Thread-606626][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:50:34,093 [DEBUG][       Thread-606626][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:50:34,095 [DEBUG][       Thread-606626][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:50:34,107 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:50:34,107 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:50:34,109 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:50:34,110 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:50:34,114 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:50:34,116 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:50:34,116 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:50:34,117 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:50:34,117 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.492997 -999.00  +13.40  38.05     51   +3.60 1 2 2 1 1   888    0 9.53 -7.90 ----- 48.0 38.0 28.0 48.2 15.9 -22.1 15.1 -22.1 15.2 -21.8 15.9 -21.8
2025-07-01 13:50:34,117 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:50:34,117 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:50:34,117 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.492997
2025-07-01 13:50:34,118 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:50:34,118 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:50:34,118 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:50:34,118 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:50:34,119 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 13:50:34,119 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:50:02', tmtdew=11.2, humidity=46.62, cloud=0.0, wind=39.01, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:49:54.941', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:50:34,119 [DEBUG][       Thread-606626][   transport.py][1871] : EOF in transport thread
2025-07-01 13:50:34,205 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:50:34,217 [DEBUG][       Thread-606629][   transport.py][1871] : starting thread (client mode): 0x81709d0
2025-07-01 13:50:34,217 [DEBUG][       Thread-606629][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:50:34,233 [DEBUG][       Thread-606629][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:50:34,233 [ INFO][       Thread-606629][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:50:34,243 [DEBUG][       Thread-606629][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:50:34,243 [DEBUG][       Thread-606629][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:50:34,244 [DEBUG][       Thread-606629][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:50:34,244 [DEBUG][       Thread-606629][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:50:34,244 [DEBUG][       Thread-606629][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:50:34,244 [DEBUG][       Thread-606629][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:50:34,244 [DEBUG][       Thread-606629][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:50:34,244 [DEBUG][       Thread-606629][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:50:34,244 [DEBUG][       Thread-606629][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:50:34,244 [DEBUG][       Thread-606629][   transport.py][1871] : client lang: <none>
2025-07-01 13:50:34,244 [DEBUG][       Thread-606629][   transport.py][1871] : server lang: <none>
2025-07-01 13:50:34,244 [DEBUG][       Thread-606629][   transport.py][1871] : kex follows: False
2025-07-01 13:50:34,244 [DEBUG][       Thread-606629][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:50:34,244 [DEBUG][       Thread-606629][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:50:34,244 [DEBUG][       Thread-606629][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:50:34,244 [DEBUG][       Thread-606629][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:50:34,244 [DEBUG][       Thread-606629][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:50:34,244 [DEBUG][       Thread-606629][   transport.py][1871] : Compression: none
2025-07-01 13:50:34,244 [DEBUG][       Thread-606629][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:50:34,298 [DEBUG][       Thread-606629][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:50:34,298 [DEBUG][       Thread-606629][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:50:34,298 [DEBUG][       Thread-606629][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:50:34,298 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:50:34,298 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:50:34,355 [DEBUG][       Thread-606629][   transport.py][1871] : userauth is OK
2025-07-01 13:50:34,355 [DEBUG][       Thread-606629][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:50:34,355 [DEBUG][       Thread-606629][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:50:34,355 [DEBUG][       Thread-606629][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:50:34,355 [DEBUG][       Thread-606629][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:50:34,370 [ INFO][       Thread-606629][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:50:34,370 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:50:34,370 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:50:34,761 [DEBUG][Thread-606631 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:50:35,402 [DEBUG][       Thread-606629][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:50:35,402 [DEBUG][       Thread-606629][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:50:35,451 [DEBUG][       Thread-606629][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:50:35,451 [DEBUG][       Thread-606629][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:50:35,460 [DEBUG][       Thread-606629][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:50:35,468 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:50:35,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-07-01 13:50:35,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-07-01 13:50:35,483 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:50:35,484 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:50:35,484 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:50:35,491 [DEBUG][       Thread-606629][   transport.py][1871] : EOF in transport thread
2025-07-01 13:50:43,780 [DEBUG][Thread-606632 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:50:45,494 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:50:45,494 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:50:45,494 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:50:45,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-07-01 13:50:46,005 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 50, 34), 11.3, 46.29, 0.0, 43.62, 13.56, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:50:46,005 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:50:34
2025-07-01 13:50:46,089 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:50:46,094 [DEBUG][       Thread-606633][   transport.py][1871] : starting thread (client mode): 0x81a5de0
2025-07-01 13:50:46,094 [DEBUG][       Thread-606633][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:50:46,109 [DEBUG][       Thread-606633][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:50:46,109 [ INFO][       Thread-606633][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:50:46,113 [DEBUG][       Thread-606633][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:50:46,113 [DEBUG][       Thread-606633][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:50:46,113 [DEBUG][       Thread-606633][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:50:46,113 [DEBUG][       Thread-606633][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:50:46,113 [DEBUG][       Thread-606633][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:50:46,113 [DEBUG][       Thread-606633][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:50:46,113 [DEBUG][       Thread-606633][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:50:46,113 [DEBUG][       Thread-606633][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:50:46,113 [DEBUG][       Thread-606633][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:50:46,113 [DEBUG][       Thread-606633][   transport.py][1871] : client lang: <none>
2025-07-01 13:50:46,113 [DEBUG][       Thread-606633][   transport.py][1871] : server lang: <none>
2025-07-01 13:50:46,113 [DEBUG][       Thread-606633][   transport.py][1871] : kex follows: False
2025-07-01 13:50:46,113 [DEBUG][       Thread-606633][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:50:46,113 [DEBUG][       Thread-606633][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:50:46,113 [DEBUG][       Thread-606633][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:50:46,113 [DEBUG][       Thread-606633][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:50:46,113 [DEBUG][       Thread-606633][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:50:46,113 [DEBUG][       Thread-606633][   transport.py][1871] : Compression: none
2025-07-01 13:50:46,113 [DEBUG][       Thread-606633][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:50:46,134 [DEBUG][       Thread-606633][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:50:46,134 [DEBUG][       Thread-606633][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:50:46,135 [DEBUG][       Thread-606633][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:50:46,135 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:50:46,135 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:50:46,136 [DEBUG][       Thread-606633][   transport.py][1871] : userauth is OK
2025-07-01 13:50:46,161 [ INFO][       Thread-606633][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:50:46,161 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:50:46,795 [DEBUG][       Thread-606633][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:50:46,795 [DEBUG][       Thread-606633][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:50:46,837 [DEBUG][       Thread-606633][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:50:46,837 [DEBUG][       Thread-606633][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:50:46,841 [DEBUG][       Thread-606633][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:50:46,853 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:50:46,853 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:50:46,855 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:50:46,858 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:50:46,863 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:50:46,865 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:50:46,866 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:50:46,866 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:50:46,866 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.493344 -999.00  +13.40  37.56     51   +3.50 1 2 2 1 1   888    0 9.55 -7.01 ----- 38.1 37.6 29.4 55.7 15.9 -22.4 15.1 -23.0 15.2 -22.1 15.9 -22.1
2025-07-01 13:50:46,866 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:50:46,867 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:50:46,867 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.493344
2025-07-01 13:50:46,867 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:50:46,868 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:50:46,868 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:50:46,868 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:50:46,868 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 13:50:46,868 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:50:34', tmtdew=11.3, humidity=46.29, cloud=0.0, wind=43.62, temperature=13.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:50:24.922', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:50:46,870 [DEBUG][       Thread-606633][   transport.py][1871] : EOF in transport thread
2025-07-01 13:50:46,957 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:50:46,967 [DEBUG][       Thread-606636][   transport.py][1871] : starting thread (client mode): 0x82b2aa0
2025-07-01 13:50:46,967 [DEBUG][       Thread-606636][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:50:46,982 [DEBUG][       Thread-606636][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:50:46,982 [ INFO][       Thread-606636][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:50:46,990 [DEBUG][       Thread-606636][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:50:46,990 [DEBUG][       Thread-606636][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:50:46,990 [DEBUG][       Thread-606636][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:50:46,990 [DEBUG][       Thread-606636][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:50:46,990 [DEBUG][       Thread-606636][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:50:46,990 [DEBUG][       Thread-606636][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:50:46,990 [DEBUG][       Thread-606636][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:50:46,990 [DEBUG][       Thread-606636][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:50:46,990 [DEBUG][       Thread-606636][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:50:46,990 [DEBUG][       Thread-606636][   transport.py][1871] : client lang: <none>
2025-07-01 13:50:46,990 [DEBUG][       Thread-606636][   transport.py][1871] : server lang: <none>
2025-07-01 13:50:46,990 [DEBUG][       Thread-606636][   transport.py][1871] : kex follows: False
2025-07-01 13:50:46,990 [DEBUG][       Thread-606636][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:50:46,990 [DEBUG][       Thread-606636][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:50:46,990 [DEBUG][       Thread-606636][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:50:46,990 [DEBUG][       Thread-606636][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:50:46,990 [DEBUG][       Thread-606636][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:50:46,991 [DEBUG][       Thread-606636][   transport.py][1871] : Compression: none
2025-07-01 13:50:46,991 [DEBUG][       Thread-606636][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:50:47,048 [DEBUG][       Thread-606636][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:50:47,049 [DEBUG][       Thread-606636][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:50:47,049 [DEBUG][       Thread-606636][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:50:47,050 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:50:47,050 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:50:47,108 [DEBUG][       Thread-606636][   transport.py][1871] : userauth is OK
2025-07-01 13:50:47,108 [DEBUG][       Thread-606636][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:50:47,108 [DEBUG][       Thread-606636][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:50:47,108 [DEBUG][       Thread-606636][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:50:47,108 [DEBUG][       Thread-606636][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:50:47,128 [ INFO][       Thread-606636][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:50:47,128 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:50:47,128 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:50:48,187 [DEBUG][       Thread-606636][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:50:48,187 [DEBUG][       Thread-606636][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:50:48,236 [DEBUG][       Thread-606636][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:50:48,236 [DEBUG][       Thread-606636][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:50:48,245 [DEBUG][       Thread-606636][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:50:48,257 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:50:48,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-07-01 13:50:48,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-07-01 13:50:48,279 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:50:48,279 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:50:48,280 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:50:48,288 [DEBUG][       Thread-606636][   transport.py][1871] : EOF in transport thread
2025-07-01 13:50:52,802 [DEBUG][Thread-606638 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:50:58,284 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:50:58,284 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:50:58,284 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:50:58,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-07-01 13:50:58,791 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 50, 34), 11.3, 46.29, 0.0, 43.62, 13.56, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:50:58,791 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:50:34
2025-07-01 13:50:58,876 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:50:58,882 [DEBUG][       Thread-606639][   transport.py][1871] : starting thread (client mode): 0x81a4130
2025-07-01 13:50:58,882 [DEBUG][       Thread-606639][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:50:58,904 [DEBUG][       Thread-606639][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:50:58,904 [ INFO][       Thread-606639][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:50:58,906 [DEBUG][       Thread-606639][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:50:58,906 [DEBUG][       Thread-606639][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:50:58,906 [DEBUG][       Thread-606639][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:50:58,906 [DEBUG][       Thread-606639][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:50:58,907 [DEBUG][       Thread-606639][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:50:58,907 [DEBUG][       Thread-606639][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:50:58,907 [DEBUG][       Thread-606639][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:50:58,907 [DEBUG][       Thread-606639][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:50:58,907 [DEBUG][       Thread-606639][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:50:58,907 [DEBUG][       Thread-606639][   transport.py][1871] : client lang: <none>
2025-07-01 13:50:58,907 [DEBUG][       Thread-606639][   transport.py][1871] : server lang: <none>
2025-07-01 13:50:58,907 [DEBUG][       Thread-606639][   transport.py][1871] : kex follows: False
2025-07-01 13:50:58,907 [DEBUG][       Thread-606639][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:50:58,907 [DEBUG][       Thread-606639][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:50:58,907 [DEBUG][       Thread-606639][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:50:58,907 [DEBUG][       Thread-606639][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:50:58,907 [DEBUG][       Thread-606639][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:50:58,907 [DEBUG][       Thread-606639][   transport.py][1871] : Compression: none
2025-07-01 13:50:58,907 [DEBUG][       Thread-606639][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:50:58,921 [DEBUG][       Thread-606639][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:50:58,922 [DEBUG][       Thread-606639][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:50:58,922 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:50:58,923 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:50:58,923 [DEBUG][       Thread-606639][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:50:58,924 [DEBUG][       Thread-606639][   transport.py][1871] : userauth is OK
2025-07-01 13:50:58,936 [ INFO][       Thread-606639][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:50:58,937 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:50:59,753 [DEBUG][       Thread-606639][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:50:59,753 [DEBUG][       Thread-606639][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:50:59,797 [DEBUG][       Thread-606639][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:50:59,797 [DEBUG][       Thread-606639][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:50:59,800 [DEBUG][       Thread-606639][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:50:59,814 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:50:59,815 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:50:59,816 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:50:59,818 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:50:59,823 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:50:59,825 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:50:59,825 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:50:59,826 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:50:59,826 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.493344 -999.00  +13.40  37.56     51   +3.50 1 2 2 1 1   888    0 9.55 -7.01 ----- 38.1 37.6 29.4 55.7 15.9 -22.4 15.1 -23.0 15.2 -22.1 15.9 -22.1
2025-07-01 13:50:59,826 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:50:59,826 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:50:59,826 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.493344
2025-07-01 13:50:59,826 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:50:59,827 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:50:59,827 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:50:59,827 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:50:59,827 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 13:50:59,827 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:50:34', tmtdew=11.3, humidity=46.29, cloud=0.0, wind=43.62, temperature=13.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:50:24.922', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:50:59,828 [DEBUG][       Thread-606639][   transport.py][1871] : EOF in transport thread
2025-07-01 13:50:59,910 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:50:59,922 [DEBUG][       Thread-606642][   transport.py][1871] : starting thread (client mode): 0x8105180
2025-07-01 13:50:59,922 [DEBUG][       Thread-606642][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:50:59,943 [DEBUG][       Thread-606642][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:50:59,943 [ INFO][       Thread-606642][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:50:59,951 [DEBUG][       Thread-606642][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:50:59,951 [DEBUG][       Thread-606642][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:50:59,951 [DEBUG][       Thread-606642][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:50:59,951 [DEBUG][       Thread-606642][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:50:59,951 [DEBUG][       Thread-606642][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:50:59,951 [DEBUG][       Thread-606642][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:50:59,951 [DEBUG][       Thread-606642][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:50:59,951 [DEBUG][       Thread-606642][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:50:59,952 [DEBUG][       Thread-606642][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:50:59,952 [DEBUG][       Thread-606642][   transport.py][1871] : client lang: <none>
2025-07-01 13:50:59,952 [DEBUG][       Thread-606642][   transport.py][1871] : server lang: <none>
2025-07-01 13:50:59,952 [DEBUG][       Thread-606642][   transport.py][1871] : kex follows: False
2025-07-01 13:50:59,952 [DEBUG][       Thread-606642][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:50:59,952 [DEBUG][       Thread-606642][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:50:59,952 [DEBUG][       Thread-606642][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:50:59,952 [DEBUG][       Thread-606642][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:50:59,952 [DEBUG][       Thread-606642][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:50:59,952 [DEBUG][       Thread-606642][   transport.py][1871] : Compression: none
2025-07-01 13:50:59,952 [DEBUG][       Thread-606642][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:51:00,011 [DEBUG][       Thread-606642][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:51:00,012 [DEBUG][       Thread-606642][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:51:00,013 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:51:00,013 [DEBUG][       Thread-606642][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:51:00,014 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:51:00,067 [DEBUG][       Thread-606642][   transport.py][1871] : userauth is OK
2025-07-01 13:51:00,068 [DEBUG][       Thread-606642][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:51:00,068 [DEBUG][       Thread-606642][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:51:00,068 [DEBUG][       Thread-606642][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:51:00,068 [DEBUG][       Thread-606642][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:51:00,086 [ INFO][       Thread-606642][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:51:00,087 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:51:00,087 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:51:01,099 [DEBUG][       Thread-606642][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:51:01,100 [DEBUG][       Thread-606642][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:51:01,148 [DEBUG][       Thread-606642][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:51:01,148 [DEBUG][       Thread-606642][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:51:01,159 [DEBUG][       Thread-606642][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:51:01,168 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:51:01,168 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 13:51:01,177 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 13:51:01,186 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:51:01,187 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:51:01,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:51:01,194 [DEBUG][       Thread-606642][   transport.py][1871] : EOF in transport thread
2025-07-01 13:51:01,836 [DEBUG][Thread-606644 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:51:10,856 [DEBUG][Thread-606645 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:51:11,197 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:51:11,197 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:51:11,197 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:51:11,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-07-01 13:51:11,691 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 51, 6), 11.28, 46.34, 0.0, 45.8, 13.56, 0, 0, 0, 2, 1, 0),)
2025-07-01 13:51:11,691 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:51:06
2025-07-01 13:51:11,774 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:51:11,778 [DEBUG][       Thread-606646][   transport.py][1871] : starting thread (client mode): 0x81a5780
2025-07-01 13:51:11,778 [DEBUG][       Thread-606646][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:51:11,799 [DEBUG][       Thread-606646][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:51:11,799 [ INFO][       Thread-606646][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:51:11,802 [DEBUG][       Thread-606646][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:51:11,803 [DEBUG][       Thread-606646][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:51:11,803 [DEBUG][       Thread-606646][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:51:11,803 [DEBUG][       Thread-606646][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:51:11,803 [DEBUG][       Thread-606646][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:51:11,803 [DEBUG][       Thread-606646][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:51:11,803 [DEBUG][       Thread-606646][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:51:11,803 [DEBUG][       Thread-606646][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:51:11,803 [DEBUG][       Thread-606646][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:51:11,803 [DEBUG][       Thread-606646][   transport.py][1871] : client lang: <none>
2025-07-01 13:51:11,803 [DEBUG][       Thread-606646][   transport.py][1871] : server lang: <none>
2025-07-01 13:51:11,803 [DEBUG][       Thread-606646][   transport.py][1871] : kex follows: False
2025-07-01 13:51:11,803 [DEBUG][       Thread-606646][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:51:11,803 [DEBUG][       Thread-606646][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:51:11,803 [DEBUG][       Thread-606646][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:51:11,803 [DEBUG][       Thread-606646][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:51:11,803 [DEBUG][       Thread-606646][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:51:11,803 [DEBUG][       Thread-606646][   transport.py][1871] : Compression: none
2025-07-01 13:51:11,803 [DEBUG][       Thread-606646][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:51:11,818 [DEBUG][       Thread-606646][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:51:11,819 [DEBUG][       Thread-606646][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:51:11,819 [DEBUG][       Thread-606646][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:51:11,820 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:51:11,820 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:51:11,821 [DEBUG][       Thread-606646][   transport.py][1871] : userauth is OK
2025-07-01 13:51:11,834 [ INFO][       Thread-606646][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:51:11,835 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:51:12,561 [DEBUG][       Thread-606646][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:51:12,561 [DEBUG][       Thread-606646][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:51:12,605 [DEBUG][       Thread-606646][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:51:12,605 [DEBUG][       Thread-606646][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:51:12,608 [DEBUG][       Thread-606646][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:51:12,613 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:51:12,614 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:51:12,615 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:51:12,617 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:51:12,622 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:51:12,623 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:51:12,623 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:51:12,624 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:51:12,624 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.493344 -999.00  +13.40  37.56     51   +3.50 1 2 2 1 1   888    0 9.55 -7.01 ----- 38.1 37.6 29.4 55.7 15.9 -22.4 15.1 -23.0 15.2 -22.1 15.9 -22.1
2025-07-01 13:51:12,624 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:51:12,624 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:51:12,625 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.493344
2025-07-01 13:51:12,625 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:51:12,625 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:51:12,626 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:51:12,626 [DEBUG][       Thread-606646][   transport.py][1871] : EOF in transport thread
2025-07-01 13:51:12,626 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:51:12,627 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 13:51:12,627 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:51:06', tmtdew=11.28, humidity=46.34, cloud=0.0, wind=45.8, temperature=13.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=1, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:50:24.922', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:51:12,709 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:51:12,719 [DEBUG][       Thread-606649][   transport.py][1871] : starting thread (client mode): 0x4701ec20
2025-07-01 13:51:12,719 [DEBUG][       Thread-606649][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:51:12,740 [DEBUG][       Thread-606649][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:51:12,740 [ INFO][       Thread-606649][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:51:12,747 [DEBUG][       Thread-606649][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:51:12,747 [DEBUG][       Thread-606649][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:51:12,747 [DEBUG][       Thread-606649][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:51:12,748 [DEBUG][       Thread-606649][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:51:12,748 [DEBUG][       Thread-606649][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:51:12,748 [DEBUG][       Thread-606649][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:51:12,748 [DEBUG][       Thread-606649][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:51:12,748 [DEBUG][       Thread-606649][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:51:12,748 [DEBUG][       Thread-606649][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:51:12,748 [DEBUG][       Thread-606649][   transport.py][1871] : client lang: <none>
2025-07-01 13:51:12,748 [DEBUG][       Thread-606649][   transport.py][1871] : server lang: <none>
2025-07-01 13:51:12,748 [DEBUG][       Thread-606649][   transport.py][1871] : kex follows: False
2025-07-01 13:51:12,748 [DEBUG][       Thread-606649][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:51:12,748 [DEBUG][       Thread-606649][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:51:12,748 [DEBUG][       Thread-606649][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:51:12,748 [DEBUG][       Thread-606649][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:51:12,748 [DEBUG][       Thread-606649][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:51:12,748 [DEBUG][       Thread-606649][   transport.py][1871] : Compression: none
2025-07-01 13:51:12,748 [DEBUG][       Thread-606649][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:51:12,807 [DEBUG][       Thread-606649][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:51:12,808 [DEBUG][       Thread-606649][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:51:12,808 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:51:12,809 [DEBUG][       Thread-606649][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:51:12,810 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:51:12,863 [DEBUG][       Thread-606649][   transport.py][1871] : userauth is OK
2025-07-01 13:51:12,863 [DEBUG][       Thread-606649][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:51:12,864 [DEBUG][       Thread-606649][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:51:12,864 [DEBUG][       Thread-606649][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:51:12,864 [DEBUG][       Thread-606649][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:51:12,882 [ INFO][       Thread-606649][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:51:12,883 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:51:12,883 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:51:13,904 [DEBUG][       Thread-606649][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:51:13,904 [DEBUG][       Thread-606649][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:51:13,955 [DEBUG][       Thread-606649][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:51:13,955 [DEBUG][       Thread-606649][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:51:13,964 [DEBUG][       Thread-606649][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:51:13,972 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:51:13,972 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 13:51:13,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-07-01 13:51:13,988 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:51:13,988 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:51:13,988 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:51:13,996 [DEBUG][       Thread-606649][   transport.py][1871] : EOF in transport thread
2025-07-01 13:51:19,875 [DEBUG][Thread-606651 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:51:23,998 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:51:23,998 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:51:23,999 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:51:24,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-07-01 13:51:24,493 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 51, 6), 11.28, 46.34, 0.0, 45.8, 13.56, 0, 0, 0, 2, 1, 0),)
2025-07-01 13:51:24,493 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:51:06
2025-07-01 13:51:24,577 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:51:24,584 [DEBUG][       Thread-606652][   transport.py][1871] : starting thread (client mode): 0x81da6e0
2025-07-01 13:51:24,584 [DEBUG][       Thread-606652][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:51:24,606 [DEBUG][       Thread-606652][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:51:24,606 [ INFO][       Thread-606652][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:51:24,609 [DEBUG][       Thread-606652][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:51:24,610 [DEBUG][       Thread-606652][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:51:24,610 [DEBUG][       Thread-606652][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:51:24,610 [DEBUG][       Thread-606652][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:51:24,610 [DEBUG][       Thread-606652][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:51:24,610 [DEBUG][       Thread-606652][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:51:24,610 [DEBUG][       Thread-606652][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:51:24,610 [DEBUG][       Thread-606652][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:51:24,610 [DEBUG][       Thread-606652][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:51:24,610 [DEBUG][       Thread-606652][   transport.py][1871] : client lang: <none>
2025-07-01 13:51:24,610 [DEBUG][       Thread-606652][   transport.py][1871] : server lang: <none>
2025-07-01 13:51:24,610 [DEBUG][       Thread-606652][   transport.py][1871] : kex follows: False
2025-07-01 13:51:24,610 [DEBUG][       Thread-606652][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:51:24,610 [DEBUG][       Thread-606652][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:51:24,610 [DEBUG][       Thread-606652][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:51:24,610 [DEBUG][       Thread-606652][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:51:24,610 [DEBUG][       Thread-606652][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:51:24,610 [DEBUG][       Thread-606652][   transport.py][1871] : Compression: none
2025-07-01 13:51:24,610 [DEBUG][       Thread-606652][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:51:24,628 [DEBUG][       Thread-606652][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:51:24,628 [DEBUG][       Thread-606652][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:51:24,629 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:51:24,629 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:51:24,629 [DEBUG][       Thread-606652][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:51:24,630 [DEBUG][       Thread-606652][   transport.py][1871] : userauth is OK
2025-07-01 13:51:24,643 [ INFO][       Thread-606652][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:51:24,644 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:51:25,294 [DEBUG][       Thread-606652][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:51:25,295 [DEBUG][       Thread-606652][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:51:25,337 [DEBUG][       Thread-606652][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:51:25,337 [DEBUG][       Thread-606652][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:51:25,340 [DEBUG][       Thread-606652][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:51:25,354 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:51:25,354 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:51:25,356 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:51:25,358 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:51:25,363 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:51:25,365 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:51:25,365 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:51:25,366 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:51:25,366 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.493692 -999.00  +13.30  39.45     51   +3.50 1 1 2 1 1   888    0 9.53 -6.94 ----- 38.7 39.5 36.4 52.7 15.9 -22.6 15.1 -23.4 15.2 -22.9 15.9 -21.9
2025-07-01 13:51:25,366 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:51:25,366 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:51:25,366 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.493692
2025-07-01 13:51:25,367 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:51:25,367 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:51:25,367 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:51:25,368 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:51:25,368 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:51:25,368 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:51:06', tmtdew=11.28, humidity=46.34, cloud=0.0, wind=45.8, temperature=13.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=1, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:50:54.989', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:51:25,369 [DEBUG][       Thread-606652][   transport.py][1871] : EOF in transport thread
2025-07-01 13:51:25,452 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:51:25,467 [DEBUG][       Thread-606655][   transport.py][1871] : starting thread (client mode): 0x81a4130
2025-07-01 13:51:25,467 [DEBUG][       Thread-606655][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:51:25,482 [DEBUG][       Thread-606655][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:51:25,482 [ INFO][       Thread-606655][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:51:25,490 [DEBUG][       Thread-606655][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:51:25,490 [DEBUG][       Thread-606655][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:51:25,490 [DEBUG][       Thread-606655][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:51:25,490 [DEBUG][       Thread-606655][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:51:25,490 [DEBUG][       Thread-606655][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:51:25,490 [DEBUG][       Thread-606655][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:51:25,490 [DEBUG][       Thread-606655][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:51:25,490 [DEBUG][       Thread-606655][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:51:25,490 [DEBUG][       Thread-606655][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:51:25,490 [DEBUG][       Thread-606655][   transport.py][1871] : client lang: <none>
2025-07-01 13:51:25,490 [DEBUG][       Thread-606655][   transport.py][1871] : server lang: <none>
2025-07-01 13:51:25,491 [DEBUG][       Thread-606655][   transport.py][1871] : kex follows: False
2025-07-01 13:51:25,491 [DEBUG][       Thread-606655][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:51:25,491 [DEBUG][       Thread-606655][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:51:25,491 [DEBUG][       Thread-606655][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:51:25,491 [DEBUG][       Thread-606655][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:51:25,491 [DEBUG][       Thread-606655][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:51:25,491 [DEBUG][       Thread-606655][   transport.py][1871] : Compression: none
2025-07-01 13:51:25,491 [DEBUG][       Thread-606655][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:51:25,547 [DEBUG][       Thread-606655][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:51:25,548 [DEBUG][       Thread-606655][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:51:25,549 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:51:25,549 [DEBUG][       Thread-606655][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:51:25,550 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:51:25,603 [DEBUG][       Thread-606655][   transport.py][1871] : userauth is OK
2025-07-01 13:51:25,604 [DEBUG][       Thread-606655][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:51:25,604 [DEBUG][       Thread-606655][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:51:25,604 [DEBUG][       Thread-606655][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:51:25,604 [DEBUG][       Thread-606655][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:51:25,623 [ INFO][       Thread-606655][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:51:25,624 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:51:25,624 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:51:26,648 [DEBUG][       Thread-606655][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:51:26,648 [DEBUG][       Thread-606655][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:51:26,700 [DEBUG][       Thread-606655][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:51:26,700 [DEBUG][       Thread-606655][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:51:26,709 [DEBUG][       Thread-606655][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:51:26,718 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:51:26,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-07-01 13:51:26,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-07-01 13:51:26,737 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:51:26,738 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:51:26,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:51:26,748 [DEBUG][       Thread-606655][   transport.py][1871] : EOF in transport thread
2025-07-01 13:51:27,686 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:51:27,687 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:51:28,910 [DEBUG][Thread-606657 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:51:33,099 [DEBUG][Thread-606658 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:51:36,748 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:51:36,749 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:51:36,749 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:51:36,752 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:51:37,252 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 51, 6), 11.28, 46.34, 0.0, 45.8, 13.56, 0, 0, 0, 2, 1, 0),)
2025-07-01 13:51:37,252 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:51:06
2025-07-01 13:51:37,336 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:51:37,340 [DEBUG][       Thread-606659][   transport.py][1871] : starting thread (client mode): 0x75a8100
2025-07-01 13:51:37,340 [DEBUG][       Thread-606659][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:51:37,359 [DEBUG][       Thread-606659][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:51:37,360 [ INFO][       Thread-606659][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:51:37,363 [DEBUG][       Thread-606659][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:51:37,363 [DEBUG][       Thread-606659][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:51:37,363 [DEBUG][       Thread-606659][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:51:37,363 [DEBUG][       Thread-606659][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:51:37,363 [DEBUG][       Thread-606659][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:51:37,363 [DEBUG][       Thread-606659][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:51:37,363 [DEBUG][       Thread-606659][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:51:37,363 [DEBUG][       Thread-606659][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:51:37,363 [DEBUG][       Thread-606659][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:51:37,363 [DEBUG][       Thread-606659][   transport.py][1871] : client lang: <none>
2025-07-01 13:51:37,363 [DEBUG][       Thread-606659][   transport.py][1871] : server lang: <none>
2025-07-01 13:51:37,363 [DEBUG][       Thread-606659][   transport.py][1871] : kex follows: False
2025-07-01 13:51:37,363 [DEBUG][       Thread-606659][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:51:37,363 [DEBUG][       Thread-606659][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:51:37,363 [DEBUG][       Thread-606659][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:51:37,363 [DEBUG][       Thread-606659][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:51:37,363 [DEBUG][       Thread-606659][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:51:37,363 [DEBUG][       Thread-606659][   transport.py][1871] : Compression: none
2025-07-01 13:51:37,363 [DEBUG][       Thread-606659][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:51:37,385 [DEBUG][       Thread-606659][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:51:37,385 [DEBUG][       Thread-606659][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:51:37,385 [DEBUG][       Thread-606659][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:51:37,386 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:51:37,386 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:51:37,387 [DEBUG][       Thread-606659][   transport.py][1871] : userauth is OK
2025-07-01 13:51:37,412 [ INFO][       Thread-606659][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:51:37,413 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:51:37,952 [DEBUG][Thread-606661 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:51:38,196 [DEBUG][       Thread-606659][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:51:38,196 [DEBUG][       Thread-606659][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:51:38,241 [DEBUG][       Thread-606659][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:51:38,241 [DEBUG][       Thread-606659][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:51:38,243 [DEBUG][       Thread-606659][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:51:38,256 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:51:38,257 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:51:38,258 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:51:38,260 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:51:38,265 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:51:38,266 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:51:38,266 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:51:38,267 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:51:38,267 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.493692 -999.00  +13.30  39.45     51   +3.50 1 1 2 1 1   888    0 9.53 -6.94 ----- 38.7 39.5 36.4 52.7 15.9 -22.6 15.1 -23.4 15.2 -22.9 15.9 -21.9
2025-07-01 13:51:38,267 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:51:38,267 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:51:38,267 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.493692
2025-07-01 13:51:38,268 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:51:38,268 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:51:38,268 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:51:38,268 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:51:38,269 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:51:38,269 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:51:06', tmtdew=11.28, humidity=46.34, cloud=0.0, wind=45.8, temperature=13.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=1, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:50:54.989', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:51:38,270 [DEBUG][       Thread-606659][   transport.py][1871] : EOF in transport thread
2025-07-01 13:51:38,357 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:51:38,366 [DEBUG][       Thread-606663][   transport.py][1871] : starting thread (client mode): 0x818d570
2025-07-01 13:51:38,366 [DEBUG][       Thread-606663][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:51:38,381 [DEBUG][       Thread-606663][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:51:38,381 [ INFO][       Thread-606663][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:51:38,389 [DEBUG][       Thread-606663][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:51:38,389 [DEBUG][       Thread-606663][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:51:38,389 [DEBUG][       Thread-606663][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:51:38,389 [DEBUG][       Thread-606663][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:51:38,389 [DEBUG][       Thread-606663][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:51:38,389 [DEBUG][       Thread-606663][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:51:38,389 [DEBUG][       Thread-606663][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:51:38,389 [DEBUG][       Thread-606663][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:51:38,389 [DEBUG][       Thread-606663][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:51:38,389 [DEBUG][       Thread-606663][   transport.py][1871] : client lang: <none>
2025-07-01 13:51:38,389 [DEBUG][       Thread-606663][   transport.py][1871] : server lang: <none>
2025-07-01 13:51:38,389 [DEBUG][       Thread-606663][   transport.py][1871] : kex follows: False
2025-07-01 13:51:38,389 [DEBUG][       Thread-606663][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:51:38,389 [DEBUG][       Thread-606663][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:51:38,389 [DEBUG][       Thread-606663][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:51:38,389 [DEBUG][       Thread-606663][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:51:38,389 [DEBUG][       Thread-606663][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:51:38,389 [DEBUG][       Thread-606663][   transport.py][1871] : Compression: none
2025-07-01 13:51:38,389 [DEBUG][       Thread-606663][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:51:38,446 [DEBUG][       Thread-606663][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:51:38,446 [DEBUG][       Thread-606663][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:51:38,446 [DEBUG][       Thread-606663][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:51:38,446 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:51:38,446 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:51:38,502 [DEBUG][       Thread-606663][   transport.py][1871] : userauth is OK
2025-07-01 13:51:38,503 [DEBUG][       Thread-606663][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:51:38,503 [DEBUG][       Thread-606663][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:51:38,503 [DEBUG][       Thread-606663][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:51:38,503 [DEBUG][       Thread-606663][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:51:38,522 [ INFO][       Thread-606663][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:51:38,522 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:51:38,522 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:51:39,546 [DEBUG][       Thread-606663][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:51:39,546 [DEBUG][       Thread-606663][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:51:39,595 [DEBUG][       Thread-606663][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:51:39,595 [DEBUG][       Thread-606663][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:51:39,604 [DEBUG][       Thread-606663][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:51:39,612 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:51:39,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-07-01 13:51:39,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-07-01 13:51:39,628 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:51:39,628 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:51:39,628 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:51:39,636 [DEBUG][       Thread-606663][   transport.py][1871] : EOF in transport thread
2025-07-01 13:51:46,978 [DEBUG][Thread-606665 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:51:49,638 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:51:49,638 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:51:49,638 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:51: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-07-01 13:51:50,141 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 51, 37), 11.28, 46.35, 0.0, 34.19, 13.57, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:51:50,142 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:51:37
2025-07-01 13:51:50,226 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:51:50,231 [DEBUG][       Thread-606666][   transport.py][1871] : starting thread (client mode): 0x81dad40
2025-07-01 13:51:50,231 [DEBUG][       Thread-606666][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:51:50,251 [DEBUG][       Thread-606666][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:51:50,252 [ INFO][       Thread-606666][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:51:50,255 [DEBUG][       Thread-606666][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:51:50,255 [DEBUG][       Thread-606666][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:51:50,255 [DEBUG][       Thread-606666][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:51:50,255 [DEBUG][       Thread-606666][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:51:50,255 [DEBUG][       Thread-606666][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:51:50,255 [DEBUG][       Thread-606666][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:51:50,255 [DEBUG][       Thread-606666][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:51:50,255 [DEBUG][       Thread-606666][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:51:50,255 [DEBUG][       Thread-606666][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:51:50,255 [DEBUG][       Thread-606666][   transport.py][1871] : client lang: <none>
2025-07-01 13:51:50,255 [DEBUG][       Thread-606666][   transport.py][1871] : server lang: <none>
2025-07-01 13:51:50,255 [DEBUG][       Thread-606666][   transport.py][1871] : kex follows: False
2025-07-01 13:51:50,255 [DEBUG][       Thread-606666][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:51:50,255 [DEBUG][       Thread-606666][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:51:50,255 [DEBUG][       Thread-606666][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:51:50,255 [DEBUG][       Thread-606666][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:51:50,255 [DEBUG][       Thread-606666][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:51:50,255 [DEBUG][       Thread-606666][   transport.py][1871] : Compression: none
2025-07-01 13:51:50,255 [DEBUG][       Thread-606666][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:51:50,272 [DEBUG][       Thread-606666][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:51:50,272 [DEBUG][       Thread-606666][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:51:50,273 [DEBUG][       Thread-606666][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:51:50,273 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:51:50,273 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:51:50,274 [DEBUG][       Thread-606666][   transport.py][1871] : userauth is OK
2025-07-01 13:51:50,288 [ INFO][       Thread-606666][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:51:50,288 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:51:50,944 [DEBUG][       Thread-606666][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:51:50,944 [DEBUG][       Thread-606666][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:51:50,985 [DEBUG][       Thread-606666][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:51:50,985 [DEBUG][       Thread-606666][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:51:50,988 [DEBUG][       Thread-606666][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:51:51,000 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:51:51,000 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:51:51,002 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:51:51,004 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:51:51,010 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:51:51,012 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:51:51,012 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:51:51,013 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:51:51,013 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.494039 -999.00  +13.40  35.14     51   +3.60 1 1 2 1 1   888    0 9.75 -7.01 ----- 38.1 35.1 33.0 44.0 15.9 -22.9 15.2 -23.5 15.2 -23.1 15.9 -21.8
2025-07-01 13:51:51,013 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:51:51,013 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:51:51,013 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.494039
2025-07-01 13:51:51,014 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:51:51,014 [DEBUG][       Thread-606666][   transport.py][1871] : EOF in transport thread
2025-07-01 13:51:51,015 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:51:51,015 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:51:51,015 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:51:51,015 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:51:51,016 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:51:37', tmtdew=11.28, humidity=46.35, cloud=0.0, wind=34.19, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:51:24.970', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:51:51,099 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:51:51,114 [DEBUG][       Thread-606669][   transport.py][1871] : starting thread (client mode): 0x83c8070
2025-07-01 13:51:51,114 [DEBUG][       Thread-606669][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:51:51,130 [DEBUG][       Thread-606669][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:51:51,130 [ INFO][       Thread-606669][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:51:51,137 [DEBUG][       Thread-606669][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:51:51,137 [DEBUG][       Thread-606669][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:51:51,137 [DEBUG][       Thread-606669][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:51:51,138 [DEBUG][       Thread-606669][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:51:51,138 [DEBUG][       Thread-606669][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:51:51,138 [DEBUG][       Thread-606669][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:51:51,138 [DEBUG][       Thread-606669][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:51:51,138 [DEBUG][       Thread-606669][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:51:51,138 [DEBUG][       Thread-606669][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:51:51,138 [DEBUG][       Thread-606669][   transport.py][1871] : client lang: <none>
2025-07-01 13:51:51,138 [DEBUG][       Thread-606669][   transport.py][1871] : server lang: <none>
2025-07-01 13:51:51,138 [DEBUG][       Thread-606669][   transport.py][1871] : kex follows: False
2025-07-01 13:51:51,138 [DEBUG][       Thread-606669][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:51:51,138 [DEBUG][       Thread-606669][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:51:51,138 [DEBUG][       Thread-606669][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:51:51,138 [DEBUG][       Thread-606669][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:51:51,138 [DEBUG][       Thread-606669][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:51:51,138 [DEBUG][       Thread-606669][   transport.py][1871] : Compression: none
2025-07-01 13:51:51,138 [DEBUG][       Thread-606669][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:51:51,202 [DEBUG][       Thread-606669][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:51:51,203 [DEBUG][       Thread-606669][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:51:51,203 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:51:51,204 [DEBUG][       Thread-606669][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:51:51,204 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:51:51,258 [DEBUG][       Thread-606669][   transport.py][1871] : userauth is OK
2025-07-01 13:51:51,258 [DEBUG][       Thread-606669][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:51:51,259 [DEBUG][       Thread-606669][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:51:51,259 [DEBUG][       Thread-606669][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:51:51,259 [DEBUG][       Thread-606669][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:51:51,278 [ INFO][       Thread-606669][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:51:51,278 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:51:51,278 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:51:52,314 [DEBUG][       Thread-606669][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:51:52,315 [DEBUG][       Thread-606669][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:51:52,363 [DEBUG][       Thread-606669][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:51:52,363 [DEBUG][       Thread-606669][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:51:52,372 [DEBUG][       Thread-606669][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:51:52,380 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:51:52,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-07-01 13:51:52,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-07-01 13:51:52,396 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:51:52,396 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:51:52,397 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:51:52,404 [DEBUG][       Thread-606669][   transport.py][1871] : EOF in transport thread
2025-07-01 13:51:55,994 [DEBUG][Thread-606671 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:52:02,407 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:52:02,407 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:52:02,407 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:52:02,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-07-01 13:52:02,905 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 51, 37), 11.28, 46.35, 0.0, 34.19, 13.57, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:52:02,905 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:51:37
2025-07-01 13:52:02,989 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:52:02,993 [DEBUG][       Thread-606672][   transport.py][1871] : starting thread (client mode): 0x81a6fe0
2025-07-01 13:52:02,993 [DEBUG][       Thread-606672][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:52:03,012 [DEBUG][       Thread-606672][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:52:03,012 [ INFO][       Thread-606672][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:52:03,016 [DEBUG][       Thread-606672][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:52:03,016 [DEBUG][       Thread-606672][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:52:03,016 [DEBUG][       Thread-606672][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:52:03,016 [DEBUG][       Thread-606672][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:52:03,016 [DEBUG][       Thread-606672][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:52:03,016 [DEBUG][       Thread-606672][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:52:03,016 [DEBUG][       Thread-606672][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:52:03,016 [DEBUG][       Thread-606672][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:52:03,016 [DEBUG][       Thread-606672][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:52:03,016 [DEBUG][       Thread-606672][   transport.py][1871] : client lang: <none>
2025-07-01 13:52:03,016 [DEBUG][       Thread-606672][   transport.py][1871] : server lang: <none>
2025-07-01 13:52:03,016 [DEBUG][       Thread-606672][   transport.py][1871] : kex follows: False
2025-07-01 13:52:03,016 [DEBUG][       Thread-606672][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:52:03,016 [DEBUG][       Thread-606672][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:52:03,016 [DEBUG][       Thread-606672][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:52:03,016 [DEBUG][       Thread-606672][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:52:03,016 [DEBUG][       Thread-606672][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:52:03,016 [DEBUG][       Thread-606672][   transport.py][1871] : Compression: none
2025-07-01 13:52:03,016 [DEBUG][       Thread-606672][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:52:03,033 [DEBUG][       Thread-606672][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:52:03,034 [DEBUG][       Thread-606672][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:52:03,034 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:52:03,035 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:52:03,035 [DEBUG][       Thread-606672][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:52:03,035 [DEBUG][       Thread-606672][   transport.py][1871] : userauth is OK
2025-07-01 13:52:03,048 [ INFO][       Thread-606672][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:52:03,049 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:52:03,906 [DEBUG][       Thread-606672][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:52:03,906 [DEBUG][       Thread-606672][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:52:03,949 [DEBUG][       Thread-606672][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:52:03,949 [DEBUG][       Thread-606672][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:52:03,953 [DEBUG][       Thread-606672][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:52:03,965 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:52:03,965 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:52:03,967 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:52:03,969 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:52:03,975 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:52:03,977 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:52:03,977 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:52:03,977 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:52:03,978 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.494039 -999.00  +13.40  35.14     51   +3.60 1 1 2 1 1   888    0 9.75 -7.01 ----- 38.1 35.1 33.0 44.0 15.9 -22.9 15.2 -23.5 15.2 -23.1 15.9 -21.8
2025-07-01 13:52:03,978 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:52:03,978 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:52:03,978 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.494039
2025-07-01 13:52:03,978 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:52:03,979 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:52:03,979 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:52:03,979 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:52:03,979 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:52:03,979 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:51:37', tmtdew=11.28, humidity=46.35, cloud=0.0, wind=34.19, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:51:24.970', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:52:03,979 [DEBUG][       Thread-606672][   transport.py][1871] : EOF in transport thread
2025-07-01 13:52:04,064 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:52:04,073 [DEBUG][       Thread-606675][   transport.py][1871] : starting thread (client mode): 0x818e890
2025-07-01 13:52:04,073 [DEBUG][       Thread-606675][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:52:04,090 [DEBUG][       Thread-606675][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:52:04,090 [ INFO][       Thread-606675][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:52:04,097 [DEBUG][       Thread-606675][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:52:04,098 [DEBUG][       Thread-606675][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:52:04,098 [DEBUG][       Thread-606675][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:52:04,098 [DEBUG][       Thread-606675][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:52:04,098 [DEBUG][       Thread-606675][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:52:04,098 [DEBUG][       Thread-606675][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:52:04,098 [DEBUG][       Thread-606675][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:52:04,098 [DEBUG][       Thread-606675][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:52:04,098 [DEBUG][       Thread-606675][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:52:04,098 [DEBUG][       Thread-606675][   transport.py][1871] : client lang: <none>
2025-07-01 13:52:04,098 [DEBUG][       Thread-606675][   transport.py][1871] : server lang: <none>
2025-07-01 13:52:04,098 [DEBUG][       Thread-606675][   transport.py][1871] : kex follows: False
2025-07-01 13:52:04,098 [DEBUG][       Thread-606675][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:52:04,098 [DEBUG][       Thread-606675][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:52:04,098 [DEBUG][       Thread-606675][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:52:04,098 [DEBUG][       Thread-606675][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:52:04,098 [DEBUG][       Thread-606675][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:52:04,098 [DEBUG][       Thread-606675][   transport.py][1871] : Compression: none
2025-07-01 13:52:04,098 [DEBUG][       Thread-606675][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:52:04,154 [DEBUG][       Thread-606675][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:52:04,155 [DEBUG][       Thread-606675][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:52:04,156 [DEBUG][       Thread-606675][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:52:04,156 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:52:04,157 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:52:04,210 [DEBUG][       Thread-606675][   transport.py][1871] : userauth is OK
2025-07-01 13:52:04,210 [DEBUG][       Thread-606675][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:52:04,211 [DEBUG][       Thread-606675][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:52:04,211 [DEBUG][       Thread-606675][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:52:04,211 [DEBUG][       Thread-606675][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:52:04,230 [ INFO][       Thread-606675][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:52:04,230 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:52:04,231 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:52:05,021 [DEBUG][Thread-606677 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:52:05,308 [DEBUG][       Thread-606675][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:52:05,309 [DEBUG][       Thread-606675][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:52:05,360 [DEBUG][       Thread-606675][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:52:05,361 [DEBUG][       Thread-606675][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:52:05,370 [DEBUG][       Thread-606675][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:52:05,379 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:52:05,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-07-01 13:52:05,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-07-01 13:52:05,397 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:52:05,397 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:52:05,397 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:52:05,405 [DEBUG][       Thread-606675][   transport.py][1871] : EOF in transport thread
2025-07-01 13:52:14,042 [DEBUG][Thread-606678 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:52:15,408 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:52:15,408 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:52:15,408 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:52:15,411 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:52:15,889 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 52, 9), 11.28, 46.46, 0.0, 30.59, 13.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:52:15,889 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:52:09
2025-07-01 13:52:15,973 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:52:15,978 [DEBUG][       Thread-606679][   transport.py][1871] : starting thread (client mode): 0x81a74f0
2025-07-01 13:52:15,978 [DEBUG][       Thread-606679][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:52:15,994 [DEBUG][       Thread-606679][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:52:15,994 [ INFO][       Thread-606679][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:52:15,997 [DEBUG][       Thread-606679][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:52:15,997 [DEBUG][       Thread-606679][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:52:15,997 [DEBUG][       Thread-606679][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:52:15,997 [DEBUG][       Thread-606679][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:52:15,997 [DEBUG][       Thread-606679][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:52:15,997 [DEBUG][       Thread-606679][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:52:15,997 [DEBUG][       Thread-606679][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:52:15,997 [DEBUG][       Thread-606679][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:52:15,997 [DEBUG][       Thread-606679][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:52:15,997 [DEBUG][       Thread-606679][   transport.py][1871] : client lang: <none>
2025-07-01 13:52:15,997 [DEBUG][       Thread-606679][   transport.py][1871] : server lang: <none>
2025-07-01 13:52:15,997 [DEBUG][       Thread-606679][   transport.py][1871] : kex follows: False
2025-07-01 13:52:15,997 [DEBUG][       Thread-606679][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:52:15,997 [DEBUG][       Thread-606679][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:52:15,997 [DEBUG][       Thread-606679][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:52:15,997 [DEBUG][       Thread-606679][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:52:15,997 [DEBUG][       Thread-606679][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:52:15,997 [DEBUG][       Thread-606679][   transport.py][1871] : Compression: none
2025-07-01 13:52:15,997 [DEBUG][       Thread-606679][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:52:16,013 [DEBUG][       Thread-606679][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:52:16,014 [DEBUG][       Thread-606679][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:52:16,014 [DEBUG][       Thread-606679][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:52:16,015 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:52:16,015 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:52:16,016 [DEBUG][       Thread-606679][   transport.py][1871] : userauth is OK
2025-07-01 13:52:16,040 [ INFO][       Thread-606679][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:52:16,041 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:52:16,901 [DEBUG][       Thread-606679][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:52:16,901 [DEBUG][       Thread-606679][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:52:16,945 [DEBUG][       Thread-606679][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:52:16,945 [DEBUG][       Thread-606679][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:52:16,948 [DEBUG][       Thread-606679][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:52:16,959 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:52:16,960 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:52:16,962 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:52:16,964 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:52:16,969 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:52:16,971 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:52:16,971 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:52:16,972 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:52:16,972 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.494039 -999.00  +13.40  35.14     51   +3.60 1 1 2 1 1   888    0 9.75 -7.01 ----- 38.1 35.1 33.0 44.0 15.9 -22.9 15.2 -23.5 15.2 -23.1 15.9 -21.8
2025-07-01 13:52:16,972 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:52:16,972 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:52:16,972 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.494039
2025-07-01 13:52:16,973 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:52:16,973 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:52:16,973 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:52:16,973 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:52:16,973 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:52:16,974 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:52:09', tmtdew=11.28, humidity=46.46, cloud=0.0, wind=30.59, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:51:24.970', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:52:16,975 [DEBUG][       Thread-606679][   transport.py][1871] : EOF in transport thread
2025-07-01 13:52:17,059 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:52:17,070 [DEBUG][       Thread-606682][   transport.py][1871] : starting thread (client mode): 0x81e7640
2025-07-01 13:52:17,070 [DEBUG][       Thread-606682][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:52:17,086 [DEBUG][       Thread-606682][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:52:17,086 [ INFO][       Thread-606682][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:52:17,094 [DEBUG][       Thread-606682][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:52:17,094 [DEBUG][       Thread-606682][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:52:17,094 [DEBUG][       Thread-606682][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:52:17,094 [DEBUG][       Thread-606682][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:52:17,094 [DEBUG][       Thread-606682][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:52:17,094 [DEBUG][       Thread-606682][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:52:17,094 [DEBUG][       Thread-606682][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:52:17,094 [DEBUG][       Thread-606682][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:52:17,094 [DEBUG][       Thread-606682][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:52:17,094 [DEBUG][       Thread-606682][   transport.py][1871] : client lang: <none>
2025-07-01 13:52:17,094 [DEBUG][       Thread-606682][   transport.py][1871] : server lang: <none>
2025-07-01 13:52:17,094 [DEBUG][       Thread-606682][   transport.py][1871] : kex follows: False
2025-07-01 13:52:17,094 [DEBUG][       Thread-606682][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:52:17,095 [DEBUG][       Thread-606682][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:52:17,095 [DEBUG][       Thread-606682][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:52:17,095 [DEBUG][       Thread-606682][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:52:17,095 [DEBUG][       Thread-606682][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:52:17,095 [DEBUG][       Thread-606682][   transport.py][1871] : Compression: none
2025-07-01 13:52:17,095 [DEBUG][       Thread-606682][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:52:17,158 [DEBUG][       Thread-606682][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:52:17,158 [DEBUG][       Thread-606682][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:52:17,159 [DEBUG][       Thread-606682][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:52:17,159 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:52:17,160 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:52:17,218 [DEBUG][       Thread-606682][   transport.py][1871] : userauth is OK
2025-07-01 13:52:17,218 [DEBUG][       Thread-606682][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:52:17,219 [DEBUG][       Thread-606682][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:52:17,219 [DEBUG][       Thread-606682][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:52:17,219 [DEBUG][       Thread-606682][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:52:17,238 [ INFO][       Thread-606682][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:52:17,238 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:52:17,238 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:52:18,267 [DEBUG][       Thread-606682][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:52:18,268 [DEBUG][       Thread-606682][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:52:18,318 [DEBUG][       Thread-606682][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:52:18,319 [DEBUG][       Thread-606682][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:52:18,330 [DEBUG][       Thread-606682][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:52:18,338 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:52:18,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-07-01 13:52:18,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-07-01 13:52:18,357 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:52:18,357 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:52:18,358 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:52:18,366 [DEBUG][       Thread-606682][   transport.py][1871] : EOF in transport thread
2025-07-01 13:52:23,064 [DEBUG][Thread-606684 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:52:27,826 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:52:27,827 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:52:28,368 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:52:28,368 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:52:28,368 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:52:28,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-07-01 13:52:28,861 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 52, 9), 11.28, 46.46, 0.0, 30.59, 13.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:52:28,861 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:52:09
2025-07-01 13:52:28,945 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:52:28,951 [DEBUG][       Thread-606685][   transport.py][1871] : starting thread (client mode): 0x81a5630
2025-07-01 13:52:28,951 [DEBUG][       Thread-606685][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:52:28,970 [DEBUG][       Thread-606685][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:52:28,971 [ INFO][       Thread-606685][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:52:28,973 [DEBUG][       Thread-606685][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:52:28,973 [DEBUG][       Thread-606685][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:52:28,973 [DEBUG][       Thread-606685][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:52:28,973 [DEBUG][       Thread-606685][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:52:28,973 [DEBUG][       Thread-606685][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:52:28,973 [DEBUG][       Thread-606685][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:52:28,973 [DEBUG][       Thread-606685][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:52:28,973 [DEBUG][       Thread-606685][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:52:28,973 [DEBUG][       Thread-606685][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:52:28,973 [DEBUG][       Thread-606685][   transport.py][1871] : client lang: <none>
2025-07-01 13:52:28,973 [DEBUG][       Thread-606685][   transport.py][1871] : server lang: <none>
2025-07-01 13:52:28,973 [DEBUG][       Thread-606685][   transport.py][1871] : kex follows: False
2025-07-01 13:52:28,973 [DEBUG][       Thread-606685][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:52:28,973 [DEBUG][       Thread-606685][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:52:28,973 [DEBUG][       Thread-606685][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:52:28,973 [DEBUG][       Thread-606685][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:52:28,973 [DEBUG][       Thread-606685][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:52:28,973 [DEBUG][       Thread-606685][   transport.py][1871] : Compression: none
2025-07-01 13:52:28,973 [DEBUG][       Thread-606685][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:52:28,986 [DEBUG][       Thread-606685][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:52:28,986 [DEBUG][       Thread-606685][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:52:28,996 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:52:28,996 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:52:28,996 [DEBUG][       Thread-606685][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:52:28,997 [DEBUG][       Thread-606685][   transport.py][1871] : userauth is OK
2025-07-01 13:52:29,021 [ INFO][       Thread-606685][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:52:29,022 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:52:29,690 [DEBUG][       Thread-606685][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:52:29,690 [DEBUG][       Thread-606685][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:52:29,733 [DEBUG][       Thread-606685][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:52:29,733 [DEBUG][       Thread-606685][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:52:29,735 [DEBUG][       Thread-606685][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:52:29,749 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:52:29,750 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:52:29,751 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:52:29,753 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:52:29,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:52:29,761 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:52:29,762 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:52:29,762 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:52:29,762 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.494386 -999.00  +13.40  33.21     51   +3.70 1 1 2 1 1   888    0 9.61 -7.85 ----- 33.2 33.2 28.6 42.9 15.9 -22.8 15.2 -23.6 15.2 -23.3 15.9 -22.0
2025-07-01 13:52:29,762 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:52:29,762 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:52:29,763 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.494386
2025-07-01 13:52:29,763 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:52:29,764 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:52:29,764 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:52:29,764 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:52:29,764 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:52:29,764 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:52:09', tmtdew=11.28, humidity=46.46, cloud=0.0, wind=30.59, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:51:54.950', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:52:29,765 [DEBUG][       Thread-606685][   transport.py][1871] : EOF in transport thread
2025-07-01 13:52:29,847 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:52:29,859 [DEBUG][       Thread-606688][   transport.py][1871] : starting thread (client mode): 0x818de10
2025-07-01 13:52:29,859 [DEBUG][       Thread-606688][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:52:29,874 [DEBUG][       Thread-606688][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:52:29,874 [ INFO][       Thread-606688][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:52:29,882 [DEBUG][       Thread-606688][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:52:29,882 [DEBUG][       Thread-606688][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:52:29,882 [DEBUG][       Thread-606688][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:52:29,882 [DEBUG][       Thread-606688][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:52:29,882 [DEBUG][       Thread-606688][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:52:29,882 [DEBUG][       Thread-606688][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:52:29,882 [DEBUG][       Thread-606688][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:52:29,882 [DEBUG][       Thread-606688][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:52:29,882 [DEBUG][       Thread-606688][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:52:29,882 [DEBUG][       Thread-606688][   transport.py][1871] : client lang: <none>
2025-07-01 13:52:29,882 [DEBUG][       Thread-606688][   transport.py][1871] : server lang: <none>
2025-07-01 13:52:29,882 [DEBUG][       Thread-606688][   transport.py][1871] : kex follows: False
2025-07-01 13:52:29,882 [DEBUG][       Thread-606688][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:52:29,883 [DEBUG][       Thread-606688][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:52:29,883 [DEBUG][       Thread-606688][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:52:29,883 [DEBUG][       Thread-606688][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:52:29,883 [DEBUG][       Thread-606688][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:52:29,883 [DEBUG][       Thread-606688][   transport.py][1871] : Compression: none
2025-07-01 13:52:29,883 [DEBUG][       Thread-606688][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:52:29,941 [DEBUG][       Thread-606688][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:52:29,942 [DEBUG][       Thread-606688][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:52:29,943 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:52:29,943 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:52:29,944 [DEBUG][       Thread-606688][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:52:29,998 [DEBUG][       Thread-606688][   transport.py][1871] : userauth is OK
2025-07-01 13:52:29,999 [DEBUG][       Thread-606688][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:52:29,999 [DEBUG][       Thread-606688][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:52:29,999 [DEBUG][       Thread-606688][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:52:29,999 [DEBUG][       Thread-606688][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:52:30,017 [ INFO][       Thread-606688][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:52:30,017 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:52:30,018 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:52:31,036 [DEBUG][       Thread-606688][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:52:31,036 [DEBUG][       Thread-606688][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:52:31,087 [DEBUG][       Thread-606688][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:52:31,087 [DEBUG][       Thread-606688][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:52:31,095 [DEBUG][       Thread-606688][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:52:31,104 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:52:31,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-07-01 13:52: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-07-01 13:52:31,121 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:52:31,121 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:52:31,121 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:52:31,129 [DEBUG][       Thread-606688][   transport.py][1871] : EOF in transport thread
2025-07-01 13:52:32,095 [DEBUG][Thread-606690 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:52:33,150 [DEBUG][Thread-606691 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:52:41,113 [DEBUG][Thread-606692 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:52:41,128 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:52:41,128 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:52:41,128 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:52:41,129 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:52:41,597 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 52, 9), 11.28, 46.46, 0.0, 30.59, 13.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:52:41,597 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:52:09
2025-07-01 13:52:41,682 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:52:41,685 [DEBUG][       Thread-606693][   transport.py][1871] : starting thread (client mode): 0x827db40
2025-07-01 13:52:41,685 [DEBUG][       Thread-606693][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:52:41,701 [DEBUG][       Thread-606693][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:52:41,701 [ INFO][       Thread-606693][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:52:41,703 [DEBUG][       Thread-606693][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:52:41,703 [DEBUG][       Thread-606693][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:52:41,703 [DEBUG][       Thread-606693][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:52:41,703 [DEBUG][       Thread-606693][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:52:41,703 [DEBUG][       Thread-606693][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:52:41,703 [DEBUG][       Thread-606693][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:52:41,703 [DEBUG][       Thread-606693][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:52:41,703 [DEBUG][       Thread-606693][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:52:41,703 [DEBUG][       Thread-606693][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:52:41,703 [DEBUG][       Thread-606693][   transport.py][1871] : client lang: <none>
2025-07-01 13:52:41,703 [DEBUG][       Thread-606693][   transport.py][1871] : server lang: <none>
2025-07-01 13:52:41,703 [DEBUG][       Thread-606693][   transport.py][1871] : kex follows: False
2025-07-01 13:52:41,703 [DEBUG][       Thread-606693][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:52:41,703 [DEBUG][       Thread-606693][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:52:41,703 [DEBUG][       Thread-606693][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:52:41,703 [DEBUG][       Thread-606693][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:52:41,703 [DEBUG][       Thread-606693][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:52:41,703 [DEBUG][       Thread-606693][   transport.py][1871] : Compression: none
2025-07-01 13:52:41,703 [DEBUG][       Thread-606693][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:52:41,711 [DEBUG][       Thread-606693][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:52:41,711 [DEBUG][       Thread-606693][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:52:41,712 [DEBUG][       Thread-606693][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:52:41,712 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:52:41,712 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:52:41,713 [DEBUG][       Thread-606693][   transport.py][1871] : userauth is OK
2025-07-01 13:52:41,725 [ INFO][       Thread-606693][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:52:41,725 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:52:42,360 [DEBUG][       Thread-606693][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:52:42,360 [DEBUG][       Thread-606693][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:52:42,404 [DEBUG][       Thread-606693][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:52:42,404 [DEBUG][       Thread-606693][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:52:42,407 [DEBUG][       Thread-606693][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:52:42,420 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:52:42,420 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:52:42,421 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:52:42,421 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:52:42,424 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:52:42,424 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:52:42,424 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:52:42,425 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:52:42,425 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.494386 -999.00  +13.40  33.21     51   +3.70 1 1 2 1 1   888    0 9.61 -7.85 ----- 33.2 33.2 28.6 42.9 15.9 -22.8 15.2 -23.6 15.2 -23.3 15.9 -22.0
2025-07-01 13:52:42,425 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:52:42,425 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:52:42,425 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.494386
2025-07-01 13:52:42,425 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:52:42,425 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:52:42,425 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:52:42,425 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:52:42,425 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:52:42,425 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:52:09', tmtdew=11.28, humidity=46.46, cloud=0.0, wind=30.59, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:51:54.950', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:52:42,425 [DEBUG][       Thread-606693][   transport.py][1871] : EOF in transport thread
2025-07-01 13:52:42,500 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:52:42,510 [DEBUG][       Thread-606696][   transport.py][1871] : starting thread (client mode): 0x81e5b40
2025-07-01 13:52:42,510 [DEBUG][       Thread-606696][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:52:42,528 [DEBUG][       Thread-606696][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:52:42,528 [ INFO][       Thread-606696][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:52:42,537 [DEBUG][       Thread-606696][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:52:42,537 [DEBUG][       Thread-606696][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:52:42,537 [DEBUG][       Thread-606696][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:52:42,537 [DEBUG][       Thread-606696][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:52:42,537 [DEBUG][       Thread-606696][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:52:42,537 [DEBUG][       Thread-606696][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:52:42,537 [DEBUG][       Thread-606696][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:52:42,537 [DEBUG][       Thread-606696][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:52:42,537 [DEBUG][       Thread-606696][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:52:42,537 [DEBUG][       Thread-606696][   transport.py][1871] : client lang: <none>
2025-07-01 13:52:42,537 [DEBUG][       Thread-606696][   transport.py][1871] : server lang: <none>
2025-07-01 13:52:42,537 [DEBUG][       Thread-606696][   transport.py][1871] : kex follows: False
2025-07-01 13:52:42,537 [DEBUG][       Thread-606696][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:52:42,537 [DEBUG][       Thread-606696][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:52:42,537 [DEBUG][       Thread-606696][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:52:42,537 [DEBUG][       Thread-606696][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:52:42,537 [DEBUG][       Thread-606696][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:52:42,537 [DEBUG][       Thread-606696][   transport.py][1871] : Compression: none
2025-07-01 13:52:42,537 [DEBUG][       Thread-606696][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:52:42,593 [DEBUG][       Thread-606696][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:52:42,593 [DEBUG][       Thread-606696][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:52:42,593 [DEBUG][       Thread-606696][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:52:42,593 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:52:42,593 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:52:42,649 [DEBUG][       Thread-606696][   transport.py][1871] : userauth is OK
2025-07-01 13:52:42,649 [DEBUG][       Thread-606696][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:52:42,649 [DEBUG][       Thread-606696][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:52:42,649 [DEBUG][       Thread-606696][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:52:42,649 [DEBUG][       Thread-606696][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:52:42,664 [ INFO][       Thread-606696][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:52:42,664 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:52:42,664 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:52:43,695 [DEBUG][       Thread-606696][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:52:43,695 [DEBUG][       Thread-606696][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:52:43,743 [DEBUG][       Thread-606696][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:52:43,743 [DEBUG][       Thread-606696][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:52:43,752 [DEBUG][       Thread-606696][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:52:43,761 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:52:43,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-07-01 13:52:43,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-07-01 13:52:43,778 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:52:43,778 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:52:43,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:52:43,786 [DEBUG][       Thread-606696][   transport.py][1871] : EOF in transport thread
2025-07-01 13:52:50,133 [DEBUG][Thread-606698 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:52:53,780 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:52:53,780 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:52:53,780 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:52:53,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-07-01 13:52:54,263 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 52, 41), 11.34, 46.3, 0.0, 37.54, 13.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:52:54,263 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:52:41
2025-07-01 13:52:54,346 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:52:54,351 [DEBUG][       Thread-606699][   transport.py][1871] : starting thread (client mode): 0x8171f00
2025-07-01 13:52:54,351 [DEBUG][       Thread-606699][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:52:54,364 [DEBUG][       Thread-606699][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:52:54,364 [ INFO][       Thread-606699][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:52:54,367 [DEBUG][       Thread-606699][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:52:54,367 [DEBUG][       Thread-606699][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:52:54,367 [DEBUG][       Thread-606699][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:52:54,367 [DEBUG][       Thread-606699][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:52:54,368 [DEBUG][       Thread-606699][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:52:54,368 [DEBUG][       Thread-606699][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:52:54,368 [DEBUG][       Thread-606699][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:52:54,368 [DEBUG][       Thread-606699][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:52:54,368 [DEBUG][       Thread-606699][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:52:54,368 [DEBUG][       Thread-606699][   transport.py][1871] : client lang: <none>
2025-07-01 13:52:54,368 [DEBUG][       Thread-606699][   transport.py][1871] : server lang: <none>
2025-07-01 13:52:54,368 [DEBUG][       Thread-606699][   transport.py][1871] : kex follows: False
2025-07-01 13:52:54,368 [DEBUG][       Thread-606699][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:52:54,368 [DEBUG][       Thread-606699][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:52:54,368 [DEBUG][       Thread-606699][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:52:54,368 [DEBUG][       Thread-606699][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:52:54,368 [DEBUG][       Thread-606699][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:52:54,368 [DEBUG][       Thread-606699][   transport.py][1871] : Compression: none
2025-07-01 13:52:54,368 [DEBUG][       Thread-606699][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:52:54,382 [DEBUG][       Thread-606699][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:52:54,383 [DEBUG][       Thread-606699][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:52:54,383 [DEBUG][       Thread-606699][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:52:54,383 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:52:54,384 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:52:54,385 [DEBUG][       Thread-606699][   transport.py][1871] : userauth is OK
2025-07-01 13:52:54,409 [ INFO][       Thread-606699][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:52:54,409 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:52:54,967 [DEBUG][       Thread-606699][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:52:54,967 [DEBUG][       Thread-606699][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:52:55,009 [DEBUG][       Thread-606699][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:52:55,009 [DEBUG][       Thread-606699][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:52:55,012 [DEBUG][       Thread-606699][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:52:55,024 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:52:55,024 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:52:55,026 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:52:55,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:52:55,032 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:52:55,034 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:52:55,034 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:52:55,034 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:52:55,034 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.494733 -999.00  +13.40  41.71     51   +3.60 1 1 2 1 1   888    0 9.67 -8.65 ----- 37.9 41.7 41.3 46.9 15.9 -23.2 15.2 -24.6 15.2 -23.4 16.0 -22.0
2025-07-01 13:52:55,035 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:52:55,035 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:52:55,035 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.494733
2025-07-01 13:52:55,035 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:52:55,036 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:52:55,036 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:52:55,036 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:52:55,036 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:52:55,036 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:52:41', tmtdew=11.34, humidity=46.3, cloud=0.0, wind=37.54, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:52:24.931', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:52:55,036 [DEBUG][       Thread-606699][   transport.py][1871] : EOF in transport thread
2025-07-01 13:52:55,126 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:52:55,138 [DEBUG][       Thread-606702][   transport.py][1871] : starting thread (client mode): 0x83c8520
2025-07-01 13:52:55,138 [DEBUG][       Thread-606702][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:52:55,154 [DEBUG][       Thread-606702][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:52:55,154 [ INFO][       Thread-606702][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:52:55,162 [DEBUG][       Thread-606702][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:52:55,163 [DEBUG][       Thread-606702][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:52:55,163 [DEBUG][       Thread-606702][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:52:55,163 [DEBUG][       Thread-606702][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:52:55,163 [DEBUG][       Thread-606702][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:52:55,163 [DEBUG][       Thread-606702][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:52:55,163 [DEBUG][       Thread-606702][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:52:55,163 [DEBUG][       Thread-606702][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:52:55,163 [DEBUG][       Thread-606702][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:52:55,163 [DEBUG][       Thread-606702][   transport.py][1871] : client lang: <none>
2025-07-01 13:52:55,163 [DEBUG][       Thread-606702][   transport.py][1871] : server lang: <none>
2025-07-01 13:52:55,163 [DEBUG][       Thread-606702][   transport.py][1871] : kex follows: False
2025-07-01 13:52:55,163 [DEBUG][       Thread-606702][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:52:55,163 [DEBUG][       Thread-606702][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:52:55,163 [DEBUG][       Thread-606702][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:52:55,163 [DEBUG][       Thread-606702][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:52:55,163 [DEBUG][       Thread-606702][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:52:55,163 [DEBUG][       Thread-606702][   transport.py][1871] : Compression: none
2025-07-01 13:52:55,163 [DEBUG][       Thread-606702][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:52:55,222 [DEBUG][       Thread-606702][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:52:55,223 [DEBUG][       Thread-606702][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:52:55,223 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:52:55,224 [DEBUG][       Thread-606702][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:52:55,225 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:52:55,282 [DEBUG][       Thread-606702][   transport.py][1871] : userauth is OK
2025-07-01 13:52:55,282 [DEBUG][       Thread-606702][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:52:55,282 [DEBUG][       Thread-606702][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:52:55,282 [DEBUG][       Thread-606702][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:52:55,282 [DEBUG][       Thread-606702][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:52:55,301 [ INFO][       Thread-606702][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:52:55,302 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:52:55,302 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:52:56,343 [DEBUG][       Thread-606702][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:52:56,343 [DEBUG][       Thread-606702][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:52:56,392 [DEBUG][       Thread-606702][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:52:56,393 [DEBUG][       Thread-606702][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:52:56,402 [DEBUG][       Thread-606702][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:52:56,411 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:52:56,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')
2025-07-01 13:52:56,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-07-01 13:52:56,430 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:52:56,430 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:52:56,430 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:52:56,438 [DEBUG][       Thread-606702][   transport.py][1871] : EOF in transport thread
2025-07-01 13:52:59,155 [DEBUG][Thread-606704 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:53:06,440 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:53:06,440 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:53:06,440 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:53:06,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-07-01 13:53:06,901 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 52, 41), 11.34, 46.3, 0.0, 37.54, 13.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:53:06,901 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:52:41
2025-07-01 13:53:06,984 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:53:06,988 [DEBUG][       Thread-606705][   transport.py][1871] : starting thread (client mode): 0x75a80a0
2025-07-01 13:53:06,988 [DEBUG][       Thread-606705][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:53:07,008 [DEBUG][       Thread-606705][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:53:07,008 [ INFO][       Thread-606705][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:53:07,011 [DEBUG][       Thread-606705][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:53:07,012 [DEBUG][       Thread-606705][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:53:07,012 [DEBUG][       Thread-606705][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:53:07,012 [DEBUG][       Thread-606705][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:53:07,012 [DEBUG][       Thread-606705][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:53:07,012 [DEBUG][       Thread-606705][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:53:07,012 [DEBUG][       Thread-606705][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:53:07,012 [DEBUG][       Thread-606705][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:53:07,012 [DEBUG][       Thread-606705][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:53:07,012 [DEBUG][       Thread-606705][   transport.py][1871] : client lang: <none>
2025-07-01 13:53:07,012 [DEBUG][       Thread-606705][   transport.py][1871] : server lang: <none>
2025-07-01 13:53:07,012 [DEBUG][       Thread-606705][   transport.py][1871] : kex follows: False
2025-07-01 13:53:07,012 [DEBUG][       Thread-606705][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:53:07,012 [DEBUG][       Thread-606705][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:53:07,012 [DEBUG][       Thread-606705][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:53:07,012 [DEBUG][       Thread-606705][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:53:07,012 [DEBUG][       Thread-606705][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:53:07,012 [DEBUG][       Thread-606705][   transport.py][1871] : Compression: none
2025-07-01 13:53:07,012 [DEBUG][       Thread-606705][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:53:07,028 [DEBUG][       Thread-606705][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:53:07,029 [DEBUG][       Thread-606705][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:53:07,029 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:53:07,029 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:53:07,030 [DEBUG][       Thread-606705][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:53:07,030 [DEBUG][       Thread-606705][   transport.py][1871] : userauth is OK
2025-07-01 13:53:07,043 [ INFO][       Thread-606705][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:53:07,044 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:53:07,712 [DEBUG][       Thread-606705][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:53:07,712 [DEBUG][       Thread-606705][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:53:07,760 [DEBUG][       Thread-606705][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:53:07,760 [DEBUG][       Thread-606705][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:53:07,762 [DEBUG][       Thread-606705][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:53:07,774 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:53:07,774 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:53:07,775 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:53:07,776 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:53:07,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:53:07,778 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:53:07,778 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:53:07,779 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:53:07,779 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.494733 -999.00  +13.40  41.71     51   +3.60 1 1 2 1 1   888    0 9.67 -8.65 ----- 37.9 41.7 41.3 46.9 15.9 -23.2 15.2 -24.6 15.2 -23.4 16.0 -22.0
2025-07-01 13:53:07,779 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:53:07,779 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:53:07,779 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.494733
2025-07-01 13:53:07,779 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:53:07,779 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:53:07,779 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:53:07,779 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:53:07,779 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:53:07,779 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:52:41', tmtdew=11.34, humidity=46.3, cloud=0.0, wind=37.54, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:52:24.931', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:53:07,779 [DEBUG][       Thread-606705][   transport.py][1871] : EOF in transport thread
2025-07-01 13:53:07,852 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:53:08,187 [DEBUG][Thread-606708 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:53:17,205 [DEBUG][Thread-606709 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:53:26,227 [DEBUG][Thread-606710 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:53:27,964 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:53:27,965 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:53:33,199 [DEBUG][Thread-606711 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:53:35,250 [DEBUG][Thread-606712 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:53:44,275 [DEBUG][Thread-606713 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:53:53,295 [DEBUG][Thread-606714 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:54:02,317 [DEBUG][Thread-606715 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:54:11,340 [DEBUG][Thread-606716 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:54:20,360 [DEBUG][Thread-606717 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:54:28,104 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:54:28,105 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:54:29,380 [DEBUG][Thread-606718 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:54:33,248 [DEBUG][Thread-606719 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:54:38,406 [DEBUG][Thread-606720 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:54:47,431 [DEBUG][Thread-606721 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:54:56,453 [DEBUG][Thread-606722 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:55:05,471 [DEBUG][Thread-606723 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:55:14,492 [DEBUG][Thread-606724 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:55:16,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-07-01 13:55:23,516 [DEBUG][Thread-606725 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:55:26,124 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:55:26,124 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:55:26,124 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:55:26,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-07-01 13:55:26,615 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 55, 20), 11.33, 46.43, 0.0, 36.28, 13.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:55:26,616 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:55:20
2025-07-01 13:55:26,702 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:55:26,708 [DEBUG][       Thread-606726][   transport.py][1871] : starting thread (client mode): 0x81a70d0
2025-07-01 13:55:26,708 [DEBUG][       Thread-606726][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:55:26,728 [DEBUG][       Thread-606726][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:55:26,728 [ INFO][       Thread-606726][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:55:26,731 [DEBUG][       Thread-606726][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:55:26,731 [DEBUG][       Thread-606726][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:55:26,731 [DEBUG][       Thread-606726][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:55:26,731 [DEBUG][       Thread-606726][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:55:26,731 [DEBUG][       Thread-606726][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:55:26,731 [DEBUG][       Thread-606726][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:55:26,731 [DEBUG][       Thread-606726][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:55:26,731 [DEBUG][       Thread-606726][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:55:26,731 [DEBUG][       Thread-606726][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:55:26,731 [DEBUG][       Thread-606726][   transport.py][1871] : client lang: <none>
2025-07-01 13:55:26,731 [DEBUG][       Thread-606726][   transport.py][1871] : server lang: <none>
2025-07-01 13:55:26,731 [DEBUG][       Thread-606726][   transport.py][1871] : kex follows: False
2025-07-01 13:55:26,731 [DEBUG][       Thread-606726][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:55:26,732 [DEBUG][       Thread-606726][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:55:26,732 [DEBUG][       Thread-606726][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:55:26,732 [DEBUG][       Thread-606726][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:55:26,732 [DEBUG][       Thread-606726][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:55:26,732 [DEBUG][       Thread-606726][   transport.py][1871] : Compression: none
2025-07-01 13:55:26,732 [DEBUG][       Thread-606726][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:55:26,750 [DEBUG][       Thread-606726][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:55:26,750 [DEBUG][       Thread-606726][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:55:26,751 [DEBUG][       Thread-606726][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:55:26,751 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:55:26,751 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:55:26,752 [DEBUG][       Thread-606726][   transport.py][1871] : userauth is OK
2025-07-01 13:55:26,777 [ INFO][       Thread-606726][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:55:26,778 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:55:27,420 [DEBUG][       Thread-606726][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:55:27,420 [DEBUG][       Thread-606726][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:55:27,461 [DEBUG][       Thread-606726][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:55:27,461 [DEBUG][       Thread-606726][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:55:27,464 [DEBUG][       Thread-606726][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:55:27,476 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:55:27,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:55:27,478 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:55:27,480 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:55:27,486 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:55:27,489 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:55:27,489 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:55:27,489 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:55:27,490 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.496469 -999.00  +13.50  43.18     51   +3.70 1 1 2 1 1   888    0 9.31 -14.17 ----- 38.9 43.2 41.8 45.6 16.0 -23.3 15.2 -24.4 15.3 -23.5 16.1 -21.8
2025-07-01 13:55:27,490 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:55:27,490 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:55:27,490 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.496469
2025-07-01 13:55:27,490 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:55:27,491 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:55:27,491 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:55:27,491 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:55:27,491 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:55:27,491 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:55:20', tmtdew=11.33, humidity=46.43, cloud=0.0, wind=36.28, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:54:54.922', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:55:27,492 [DEBUG][       Thread-606726][   transport.py][1871] : EOF in transport thread
2025-07-01 13:55:27,575 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:55:27,587 [DEBUG][       Thread-606729][   transport.py][1871] : starting thread (client mode): 0x81d9c60
2025-07-01 13:55:27,587 [DEBUG][       Thread-606729][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:55:27,602 [DEBUG][       Thread-606729][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:55:27,602 [ INFO][       Thread-606729][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:55:27,609 [DEBUG][       Thread-606729][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:55:27,610 [DEBUG][       Thread-606729][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:55:27,610 [DEBUG][       Thread-606729][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:55:27,610 [DEBUG][       Thread-606729][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:55:27,610 [DEBUG][       Thread-606729][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:55:27,610 [DEBUG][       Thread-606729][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:55:27,610 [DEBUG][       Thread-606729][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:55:27,610 [DEBUG][       Thread-606729][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:55:27,610 [DEBUG][       Thread-606729][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:55:27,610 [DEBUG][       Thread-606729][   transport.py][1871] : client lang: <none>
2025-07-01 13:55:27,610 [DEBUG][       Thread-606729][   transport.py][1871] : server lang: <none>
2025-07-01 13:55:27,610 [DEBUG][       Thread-606729][   transport.py][1871] : kex follows: False
2025-07-01 13:55:27,610 [DEBUG][       Thread-606729][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:55:27,610 [DEBUG][       Thread-606729][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:55:27,610 [DEBUG][       Thread-606729][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:55:27,610 [DEBUG][       Thread-606729][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:55:27,610 [DEBUG][       Thread-606729][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:55:27,610 [DEBUG][       Thread-606729][   transport.py][1871] : Compression: none
2025-07-01 13:55:27,610 [DEBUG][       Thread-606729][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:55:27,668 [DEBUG][       Thread-606729][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:55:27,668 [DEBUG][       Thread-606729][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:55:27,669 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:55:27,670 [DEBUG][       Thread-606729][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:55:27,670 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:55:27,725 [DEBUG][       Thread-606729][   transport.py][1871] : userauth is OK
2025-07-01 13:55:27,725 [DEBUG][       Thread-606729][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:55:27,725 [DEBUG][       Thread-606729][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:55:27,725 [DEBUG][       Thread-606729][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:55:27,725 [DEBUG][       Thread-606729][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:55:27,745 [ INFO][       Thread-606729][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:55:27,745 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:55:27,745 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:55:28,241 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:55:28,242 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:55:28,742 [DEBUG][       Thread-606729][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:55:28,742 [DEBUG][       Thread-606729][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:55:28,792 [DEBUG][       Thread-606729][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:55:28,792 [DEBUG][       Thread-606729][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:55:28,805 [DEBUG][       Thread-606729][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:55:28,814 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:55:28,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-07-01 13:55:28,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-07-01 13:55:28,833 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:55:28,833 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:55:28,833 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:55:28,841 [DEBUG][       Thread-606729][   transport.py][1871] : EOF in transport thread
2025-07-01 13:55:32,537 [DEBUG][Thread-606731 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:55:33,304 [DEBUG][Thread-606732 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:55:38,840 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:55:38,840 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:55:38,840 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:55:38,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-07-01 13:55:39,338 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 55, 20), 11.33, 46.43, 0.0, 36.28, 13.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:55:39,338 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:55:20
2025-07-01 13:55:39,423 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:55:39,428 [DEBUG][       Thread-606733][   transport.py][1871] : starting thread (client mode): 0x8173d30
2025-07-01 13:55:39,428 [DEBUG][       Thread-606733][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:55:39,448 [DEBUG][       Thread-606733][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:55:39,448 [ INFO][       Thread-606733][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:55:39,452 [DEBUG][       Thread-606733][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:55:39,452 [DEBUG][       Thread-606733][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:55:39,452 [DEBUG][       Thread-606733][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:55:39,452 [DEBUG][       Thread-606733][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:55:39,452 [DEBUG][       Thread-606733][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:55:39,452 [DEBUG][       Thread-606733][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:55:39,452 [DEBUG][       Thread-606733][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:55:39,452 [DEBUG][       Thread-606733][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:55:39,452 [DEBUG][       Thread-606733][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:55:39,452 [DEBUG][       Thread-606733][   transport.py][1871] : client lang: <none>
2025-07-01 13:55:39,452 [DEBUG][       Thread-606733][   transport.py][1871] : server lang: <none>
2025-07-01 13:55:39,452 [DEBUG][       Thread-606733][   transport.py][1871] : kex follows: False
2025-07-01 13:55:39,452 [DEBUG][       Thread-606733][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:55:39,452 [DEBUG][       Thread-606733][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:55:39,452 [DEBUG][       Thread-606733][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:55:39,452 [DEBUG][       Thread-606733][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:55:39,452 [DEBUG][       Thread-606733][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:55:39,452 [DEBUG][       Thread-606733][   transport.py][1871] : Compression: none
2025-07-01 13:55:39,452 [DEBUG][       Thread-606733][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:55:39,468 [DEBUG][       Thread-606733][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:55:39,469 [DEBUG][       Thread-606733][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:55:39,469 [DEBUG][       Thread-606733][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:55:39,470 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:55:39,470 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:55:39,471 [DEBUG][       Thread-606733][   transport.py][1871] : userauth is OK
2025-07-01 13:55:39,495 [ INFO][       Thread-606733][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:55:39,496 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:55:40,127 [DEBUG][       Thread-606733][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:55:40,127 [DEBUG][       Thread-606733][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:55:40,169 [DEBUG][       Thread-606733][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:55:40,169 [DEBUG][       Thread-606733][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:55:40,173 [DEBUG][       Thread-606733][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:55:40,185 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:55:40,185 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:55:40,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:55:40,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:55:40,195 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:55:40,197 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:55:40,197 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:55:40,198 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:55:40,198 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.496469 -999.00  +13.50  43.18     51   +3.70 1 1 2 1 1   888    0 9.31 -14.17 ----- 38.9 43.2 41.8 45.6 16.0 -23.3 15.2 -24.4 15.3 -23.5 16.1 -21.8
2025-07-01 13:55:40,198 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:55:40,198 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:55:40,198 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.496469
2025-07-01 13:55:40,198 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:55:40,199 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:55:40,199 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:55:40,199 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:55:40,199 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:55:40,199 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:55:20', tmtdew=11.33, humidity=46.43, cloud=0.0, wind=36.28, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:54:54.922', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:55:40,200 [DEBUG][       Thread-606733][   transport.py][1871] : EOF in transport thread
2025-07-01 13:55:40,283 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:55:40,296 [DEBUG][       Thread-606736][   transport.py][1871] : starting thread (client mode): 0x81a7820
2025-07-01 13:55:40,296 [DEBUG][       Thread-606736][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:55:40,313 [DEBUG][       Thread-606736][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:55:40,314 [ INFO][       Thread-606736][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:55:40,321 [DEBUG][       Thread-606736][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:55:40,322 [DEBUG][       Thread-606736][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:55:40,322 [DEBUG][       Thread-606736][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:55:40,322 [DEBUG][       Thread-606736][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:55:40,322 [DEBUG][       Thread-606736][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:55:40,322 [DEBUG][       Thread-606736][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:55:40,322 [DEBUG][       Thread-606736][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:55:40,322 [DEBUG][       Thread-606736][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:55:40,322 [DEBUG][       Thread-606736][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:55:40,322 [DEBUG][       Thread-606736][   transport.py][1871] : client lang: <none>
2025-07-01 13:55:40,322 [DEBUG][       Thread-606736][   transport.py][1871] : server lang: <none>
2025-07-01 13:55:40,322 [DEBUG][       Thread-606736][   transport.py][1871] : kex follows: False
2025-07-01 13:55:40,322 [DEBUG][       Thread-606736][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:55:40,322 [DEBUG][       Thread-606736][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:55:40,322 [DEBUG][       Thread-606736][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:55:40,322 [DEBUG][       Thread-606736][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:55:40,323 [DEBUG][       Thread-606736][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:55:40,323 [DEBUG][       Thread-606736][   transport.py][1871] : Compression: none
2025-07-01 13:55:40,323 [DEBUG][       Thread-606736][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:55:40,380 [DEBUG][       Thread-606736][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:55:40,380 [DEBUG][       Thread-606736][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:55:40,381 [DEBUG][       Thread-606736][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:55:40,381 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:55:40,382 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:55:40,436 [DEBUG][       Thread-606736][   transport.py][1871] : userauth is OK
2025-07-01 13:55:40,437 [DEBUG][       Thread-606736][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:55:40,437 [DEBUG][       Thread-606736][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:55:40,437 [DEBUG][       Thread-606736][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:55:40,437 [DEBUG][       Thread-606736][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:55:40,455 [ INFO][       Thread-606736][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:55:40,455 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:55:40,455 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:55:41,479 [DEBUG][       Thread-606736][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:55:41,479 [DEBUG][       Thread-606736][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:55:41,528 [DEBUG][       Thread-606736][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:55:41,528 [DEBUG][       Thread-606736][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:55:41,542 [DEBUG][       Thread-606736][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:55:41,558 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:55:41,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-07-01 13:55:41,567 [DEBUG][Thread-606738 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:55:41,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-07-01 13:55:41,584 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:55:41,584 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:55:41,584 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:55:41,592 [DEBUG][       Thread-606736][   transport.py][1871] : EOF in transport thread
2025-07-01 13:55:50,586 [DEBUG][Thread-606739 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:55:51,594 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:55:51,594 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:55:51,595 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:55:51,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-07-01 13:55:52,098 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 55, 20), 11.33, 46.43, 0.0, 36.28, 13.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:55:52,099 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:55:20
2025-07-01 13:55:52,184 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:55:52,190 [DEBUG][       Thread-606740][   transport.py][1871] : starting thread (client mode): 0x75a82e0
2025-07-01 13:55:52,190 [DEBUG][       Thread-606740][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:55:52,204 [DEBUG][       Thread-606740][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:55:52,204 [ INFO][       Thread-606740][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:55:52,207 [DEBUG][       Thread-606740][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:55:52,207 [DEBUG][       Thread-606740][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:55:52,207 [DEBUG][       Thread-606740][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:55:52,207 [DEBUG][       Thread-606740][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:55:52,207 [DEBUG][       Thread-606740][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:55:52,207 [DEBUG][       Thread-606740][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:55:52,207 [DEBUG][       Thread-606740][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:55:52,207 [DEBUG][       Thread-606740][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:55:52,207 [DEBUG][       Thread-606740][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:55:52,207 [DEBUG][       Thread-606740][   transport.py][1871] : client lang: <none>
2025-07-01 13:55:52,207 [DEBUG][       Thread-606740][   transport.py][1871] : server lang: <none>
2025-07-01 13:55:52,207 [DEBUG][       Thread-606740][   transport.py][1871] : kex follows: False
2025-07-01 13:55:52,207 [DEBUG][       Thread-606740][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:55:52,207 [DEBUG][       Thread-606740][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:55:52,207 [DEBUG][       Thread-606740][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:55:52,207 [DEBUG][       Thread-606740][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:55:52,207 [DEBUG][       Thread-606740][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:55:52,207 [DEBUG][       Thread-606740][   transport.py][1871] : Compression: none
2025-07-01 13:55:52,207 [DEBUG][       Thread-606740][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:55:52,224 [DEBUG][       Thread-606740][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:55:52,225 [DEBUG][       Thread-606740][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:55:52,225 [DEBUG][       Thread-606740][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:55:52,225 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:55:52,226 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:55:52,227 [DEBUG][       Thread-606740][   transport.py][1871] : userauth is OK
2025-07-01 13:55:52,252 [ INFO][       Thread-606740][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:55:52,252 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:55:52,865 [DEBUG][       Thread-606740][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:55:52,865 [DEBUG][       Thread-606740][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:55:52,908 [DEBUG][       Thread-606740][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:55:52,908 [DEBUG][       Thread-606740][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:55:52,911 [DEBUG][       Thread-606740][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:55:52,925 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:55:52,925 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:55:52,926 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:55:52,927 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:55:52,930 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:55:52,931 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:55:52,931 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:55:52,931 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:55:52,931 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.496817 -999.00  +13.40  43.83     51   +3.50 1 1 2 1 1   888    0 9.21 -12.78 ----- 37.2 43.8 19.0 52.1 15.9 -23.9 15.2 -25.0 15.3 -23.5 16.0 -22.8
2025-07-01 13:55:52,931 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:55:52,931 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:55:52,931 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.496817
2025-07-01 13:55:52,931 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:55:52,931 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:55:52,931 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:55:52,931 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:55:52,931 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:55:52,931 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:55:20', tmtdew=11.33, humidity=46.43, cloud=0.0, wind=36.28, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:55:24.989', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:55:52,932 [DEBUG][       Thread-606740][   transport.py][1871] : EOF in transport thread
2025-07-01 13:55:53,005 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:55:53,016 [DEBUG][       Thread-606743][   transport.py][1871] : starting thread (client mode): 0x83c8520
2025-07-01 13:55:53,016 [DEBUG][       Thread-606743][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:55:53,032 [DEBUG][       Thread-606743][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:55:53,032 [ INFO][       Thread-606743][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:55:53,041 [DEBUG][       Thread-606743][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:55:53,041 [DEBUG][       Thread-606743][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:55:53,041 [DEBUG][       Thread-606743][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:55:53,041 [DEBUG][       Thread-606743][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:55:53,041 [DEBUG][       Thread-606743][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:55:53,041 [DEBUG][       Thread-606743][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:55:53,041 [DEBUG][       Thread-606743][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:55:53,041 [DEBUG][       Thread-606743][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:55:53,041 [DEBUG][       Thread-606743][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:55:53,041 [DEBUG][       Thread-606743][   transport.py][1871] : client lang: <none>
2025-07-01 13:55:53,041 [DEBUG][       Thread-606743][   transport.py][1871] : server lang: <none>
2025-07-01 13:55:53,041 [DEBUG][       Thread-606743][   transport.py][1871] : kex follows: False
2025-07-01 13:55:53,041 [DEBUG][       Thread-606743][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:55:53,041 [DEBUG][       Thread-606743][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:55:53,041 [DEBUG][       Thread-606743][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:55:53,041 [DEBUG][       Thread-606743][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:55:53,041 [DEBUG][       Thread-606743][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:55:53,041 [DEBUG][       Thread-606743][   transport.py][1871] : Compression: none
2025-07-01 13:55:53,041 [DEBUG][       Thread-606743][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:55:53,096 [DEBUG][       Thread-606743][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:55:53,096 [DEBUG][       Thread-606743][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:55:53,097 [DEBUG][       Thread-606743][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:55:53,097 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:55:53,097 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:55:53,153 [DEBUG][       Thread-606743][   transport.py][1871] : userauth is OK
2025-07-01 13:55:53,153 [DEBUG][       Thread-606743][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:55:53,153 [DEBUG][       Thread-606743][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:55:53,153 [DEBUG][       Thread-606743][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:55:53,153 [DEBUG][       Thread-606743][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:55:53,168 [ INFO][       Thread-606743][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:55:53,168 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:55:53,168 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:55:54,190 [DEBUG][       Thread-606743][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:55:54,190 [DEBUG][       Thread-606743][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:55:54,239 [DEBUG][       Thread-606743][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:55:54,239 [DEBUG][       Thread-606743][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:55:54,248 [DEBUG][       Thread-606743][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:55:54,256 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:55:54,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-07-01 13:55:54,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-07-01 13:55:54,272 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:55:54,272 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:55:54,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:55:54,279 [DEBUG][       Thread-606743][   transport.py][1871] : EOF in transport thread
2025-07-01 13:55:59,608 [DEBUG][Thread-606745 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:56:04,273 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:56:04,273 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:56:04,273 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:56:04,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-07-01 13:56:04,759 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 55, 52), 11.32, 46.46, 0.0, 39.01, 13.59, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:56:04,759 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:55:52
2025-07-01 13:56:04,844 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:56:04,848 [DEBUG][       Thread-606746][   transport.py][1871] : starting thread (client mode): 0x81db610
2025-07-01 13:56:04,848 [DEBUG][       Thread-606746][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:56:04,869 [DEBUG][       Thread-606746][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:56:04,869 [ INFO][       Thread-606746][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:56:04,874 [DEBUG][       Thread-606746][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:56:04,875 [DEBUG][       Thread-606746][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:56:04,875 [DEBUG][       Thread-606746][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:56:04,875 [DEBUG][       Thread-606746][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:56:04,875 [DEBUG][       Thread-606746][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:56:04,875 [DEBUG][       Thread-606746][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:56:04,875 [DEBUG][       Thread-606746][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:56:04,875 [DEBUG][       Thread-606746][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:56:04,875 [DEBUG][       Thread-606746][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:56:04,875 [DEBUG][       Thread-606746][   transport.py][1871] : client lang: <none>
2025-07-01 13:56:04,875 [DEBUG][       Thread-606746][   transport.py][1871] : server lang: <none>
2025-07-01 13:56:04,875 [DEBUG][       Thread-606746][   transport.py][1871] : kex follows: False
2025-07-01 13:56:04,875 [DEBUG][       Thread-606746][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:56:04,875 [DEBUG][       Thread-606746][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:56:04,875 [DEBUG][       Thread-606746][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:56:04,875 [DEBUG][       Thread-606746][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:56:04,875 [DEBUG][       Thread-606746][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:56:04,875 [DEBUG][       Thread-606746][   transport.py][1871] : Compression: none
2025-07-01 13:56:04,875 [DEBUG][       Thread-606746][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:56:04,884 [DEBUG][       Thread-606746][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:56:04,885 [DEBUG][       Thread-606746][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:56:04,885 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:56:04,885 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:56:04,886 [DEBUG][       Thread-606746][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:56:04,886 [DEBUG][       Thread-606746][   transport.py][1871] : userauth is OK
2025-07-01 13:56:04,899 [ INFO][       Thread-606746][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:56:04,899 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:56:05,563 [DEBUG][       Thread-606746][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:56:05,563 [DEBUG][       Thread-606746][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:56:05,605 [DEBUG][       Thread-606746][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:56:05,605 [DEBUG][       Thread-606746][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:56:05,608 [DEBUG][       Thread-606746][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:56:05,619 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:56:05,619 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:56:05,621 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:56:05,623 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:56:05,629 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:56:05,630 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:56:05,631 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:56:05,631 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:56:05,632 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.496817 -999.00  +13.40  43.83     51   +3.50 1 1 2 1 1   888    0 9.21 -12.78 ----- 37.2 43.8 19.0 52.1 15.9 -23.9 15.2 -25.0 15.3 -23.5 16.0 -22.8
2025-07-01 13:56:05,632 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:56:05,632 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:56:05,632 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.496817
2025-07-01 13:56:05,632 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:56:05,633 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:56:05,633 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:56:05,633 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:56:05,633 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:56:05,633 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:55:52', tmtdew=11.32, humidity=46.46, cloud=0.0, wind=39.01, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:55:24.989', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:56:05,633 [DEBUG][       Thread-606746][   transport.py][1871] : EOF in transport thread
2025-07-01 13:56:05,722 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:56:05,731 [DEBUG][       Thread-606749][   transport.py][1871] : starting thread (client mode): 0x82b2620
2025-07-01 13:56:05,731 [DEBUG][       Thread-606749][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:56:05,749 [DEBUG][       Thread-606749][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:56:05,749 [ INFO][       Thread-606749][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:56:05,756 [DEBUG][       Thread-606749][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:56:05,757 [DEBUG][       Thread-606749][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:56:05,757 [DEBUG][       Thread-606749][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:56:05,757 [DEBUG][       Thread-606749][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:56:05,757 [DEBUG][       Thread-606749][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:56:05,757 [DEBUG][       Thread-606749][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:56:05,757 [DEBUG][       Thread-606749][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:56:05,757 [DEBUG][       Thread-606749][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:56:05,757 [DEBUG][       Thread-606749][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:56:05,757 [DEBUG][       Thread-606749][   transport.py][1871] : client lang: <none>
2025-07-01 13:56:05,757 [DEBUG][       Thread-606749][   transport.py][1871] : server lang: <none>
2025-07-01 13:56:05,757 [DEBUG][       Thread-606749][   transport.py][1871] : kex follows: False
2025-07-01 13:56:05,757 [DEBUG][       Thread-606749][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:56:05,757 [DEBUG][       Thread-606749][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:56:05,757 [DEBUG][       Thread-606749][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:56:05,757 [DEBUG][       Thread-606749][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:56:05,757 [DEBUG][       Thread-606749][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:56:05,757 [DEBUG][       Thread-606749][   transport.py][1871] : Compression: none
2025-07-01 13:56:05,757 [DEBUG][       Thread-606749][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:56:05,817 [DEBUG][       Thread-606749][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:56:05,818 [DEBUG][       Thread-606749][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:56:05,818 [DEBUG][       Thread-606749][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:56:05,819 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:56:05,819 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:56:05,872 [DEBUG][       Thread-606749][   transport.py][1871] : userauth is OK
2025-07-01 13:56:05,873 [DEBUG][       Thread-606749][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:56:05,873 [DEBUG][       Thread-606749][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:56:05,873 [DEBUG][       Thread-606749][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:56:05,873 [DEBUG][       Thread-606749][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:56:05,892 [ INFO][       Thread-606749][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:56:05,892 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:56:05,893 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:56:06,934 [DEBUG][       Thread-606749][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:56:06,935 [DEBUG][       Thread-606749][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:56:06,984 [DEBUG][       Thread-606749][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:56:06,984 [DEBUG][       Thread-606749][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:56:06,993 [DEBUG][       Thread-606749][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:56:07,002 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:56:07,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-07-01 13:56:07,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-07-01 13:56:07,025 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:56:07,025 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:56:07,025 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:56:07,033 [DEBUG][       Thread-606749][   transport.py][1871] : EOF in transport thread
2025-07-01 13:56:08,633 [DEBUG][Thread-606751 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:56:17,036 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:56:17,036 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:56:17,036 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:56:17,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-07-01 13:56:17,528 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 55, 52), 11.32, 46.46, 0.0, 39.01, 13.59, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:56:17,529 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:55:52
2025-07-01 13:56:17,613 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:56:17,619 [DEBUG][       Thread-606752][   transport.py][1871] : starting thread (client mode): 0x8106b30
2025-07-01 13:56:17,619 [DEBUG][       Thread-606752][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:56:17,640 [DEBUG][       Thread-606752][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:56:17,641 [ INFO][       Thread-606752][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:56:17,644 [DEBUG][       Thread-606752][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:56:17,644 [DEBUG][       Thread-606752][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:56:17,644 [DEBUG][       Thread-606752][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:56:17,644 [DEBUG][       Thread-606752][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:56:17,644 [DEBUG][       Thread-606752][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:56:17,644 [DEBUG][       Thread-606752][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:56:17,644 [DEBUG][       Thread-606752][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:56:17,644 [DEBUG][       Thread-606752][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:56:17,644 [DEBUG][       Thread-606752][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:56:17,644 [DEBUG][       Thread-606752][   transport.py][1871] : client lang: <none>
2025-07-01 13:56:17,644 [DEBUG][       Thread-606752][   transport.py][1871] : server lang: <none>
2025-07-01 13:56:17,644 [DEBUG][       Thread-606752][   transport.py][1871] : kex follows: False
2025-07-01 13:56:17,644 [DEBUG][       Thread-606752][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:56:17,644 [DEBUG][       Thread-606752][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:56:17,644 [DEBUG][       Thread-606752][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:56:17,644 [DEBUG][       Thread-606752][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:56:17,644 [DEBUG][       Thread-606752][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:56:17,644 [DEBUG][       Thread-606752][   transport.py][1871] : Compression: none
2025-07-01 13:56:17,644 [DEBUG][       Thread-606752][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:56:17,657 [DEBUG][       Thread-606752][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:56:17,658 [DEBUG][       Thread-606752][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:56:17,658 [DEBUG][       Thread-606752][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:56:17,658 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:56:17,659 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:56:17,660 [DEBUG][       Thread-606752][   transport.py][1871] : userauth is OK
2025-07-01 13:56:17,672 [ INFO][       Thread-606752][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:56:17,673 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:56:17,677 [DEBUG][Thread-606754 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:56:18,298 [DEBUG][       Thread-606752][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:56:18,298 [DEBUG][       Thread-606752][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:56:18,341 [DEBUG][       Thread-606752][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:56:18,341 [DEBUG][       Thread-606752][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:56:18,344 [DEBUG][       Thread-606752][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:56:18,355 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:56:18,356 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:56:18,357 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:56:18,359 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:56:18,365 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:56:18,367 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:56:18,367 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:56:18,368 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:56:18,368 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.497165 -999.00  +13.40  48.58     51   +3.50 1 1 2 1 1   887    0 9.36 -13.29 ----- 38.8 48.6 27.2 63.2 16.0 -23.5 15.2 -25.2 15.3 -23.4 16.0 -22.2
2025-07-01 13:56:18,368 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:56:18,368 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:56:18,368 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.497165
2025-07-01 13:56:18,368 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:56:18,369 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:56:18,369 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:56:18,369 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:56:18,369 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:56:18,369 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:55:52', tmtdew=11.32, humidity=46.46, cloud=0.0, wind=39.01, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:55:55.056', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:56:18,370 [DEBUG][       Thread-606752][   transport.py][1871] : EOF in transport thread
2025-07-01 13:56:18,453 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:56:18,463 [DEBUG][       Thread-606756][   transport.py][1871] : starting thread (client mode): 0x82b2620
2025-07-01 13:56:18,463 [DEBUG][       Thread-606756][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:56:18,479 [DEBUG][       Thread-606756][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:56:18,479 [ INFO][       Thread-606756][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:56:18,487 [DEBUG][       Thread-606756][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:56:18,487 [DEBUG][       Thread-606756][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:56:18,487 [DEBUG][       Thread-606756][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:56:18,487 [DEBUG][       Thread-606756][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:56:18,487 [DEBUG][       Thread-606756][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:56:18,487 [DEBUG][       Thread-606756][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:56:18,487 [DEBUG][       Thread-606756][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:56:18,487 [DEBUG][       Thread-606756][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:56:18,487 [DEBUG][       Thread-606756][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:56:18,487 [DEBUG][       Thread-606756][   transport.py][1871] : client lang: <none>
2025-07-01 13:56:18,487 [DEBUG][       Thread-606756][   transport.py][1871] : server lang: <none>
2025-07-01 13:56:18,487 [DEBUG][       Thread-606756][   transport.py][1871] : kex follows: False
2025-07-01 13:56:18,487 [DEBUG][       Thread-606756][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:56:18,488 [DEBUG][       Thread-606756][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:56:18,488 [DEBUG][       Thread-606756][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:56:18,488 [DEBUG][       Thread-606756][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:56:18,488 [DEBUG][       Thread-606756][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:56:18,488 [DEBUG][       Thread-606756][   transport.py][1871] : Compression: none
2025-07-01 13:56:18,488 [DEBUG][       Thread-606756][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:56:18,554 [DEBUG][       Thread-606756][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:56:18,554 [DEBUG][       Thread-606756][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:56:18,555 [DEBUG][       Thread-606756][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:56:18,555 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:56:18,556 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:56:18,609 [DEBUG][       Thread-606756][   transport.py][1871] : userauth is OK
2025-07-01 13:56:18,609 [DEBUG][       Thread-606756][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:56:18,609 [DEBUG][       Thread-606756][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:56:18,610 [DEBUG][       Thread-606756][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:56:18,610 [DEBUG][       Thread-606756][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:56:18,629 [ INFO][       Thread-606756][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:56:18,629 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:56:18,630 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:56:19,638 [DEBUG][       Thread-606756][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:56:19,638 [DEBUG][       Thread-606756][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:56:19,687 [DEBUG][       Thread-606756][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:56:19,687 [DEBUG][       Thread-606756][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:56:19,695 [DEBUG][       Thread-606756][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:56:19,703 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:56:19,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-07-01 13:56:19,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-07-01 13:56:19,718 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:56:19,718 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:56:19,718 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:56:19,726 [DEBUG][       Thread-606756][   transport.py][1871] : EOF in transport thread
2025-07-01 13:56:26,697 [DEBUG][Thread-606758 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:56:28,380 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:56:28,381 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:56:29,729 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:56:29,729 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:56:29,729 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:56:29,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-07-01 13:56:30,230 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 56, 23), 11.35, 46.36, 0.0, 40.88, 13.54, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:56:30,230 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:56:23
2025-07-01 13:56:30,316 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:56:30,320 [DEBUG][       Thread-606759][   transport.py][1871] : starting thread (client mode): 0x81a63b0
2025-07-01 13:56:30,320 [DEBUG][       Thread-606759][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:56:30,340 [DEBUG][       Thread-606759][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:56:30,340 [ INFO][       Thread-606759][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:56:30,343 [DEBUG][       Thread-606759][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:56:30,343 [DEBUG][       Thread-606759][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:56:30,343 [DEBUG][       Thread-606759][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:56:30,343 [DEBUG][       Thread-606759][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:56:30,343 [DEBUG][       Thread-606759][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:56:30,343 [DEBUG][       Thread-606759][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:56:30,343 [DEBUG][       Thread-606759][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:56:30,343 [DEBUG][       Thread-606759][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:56:30,343 [DEBUG][       Thread-606759][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:56:30,343 [DEBUG][       Thread-606759][   transport.py][1871] : client lang: <none>
2025-07-01 13:56:30,343 [DEBUG][       Thread-606759][   transport.py][1871] : server lang: <none>
2025-07-01 13:56:30,343 [DEBUG][       Thread-606759][   transport.py][1871] : kex follows: False
2025-07-01 13:56:30,343 [DEBUG][       Thread-606759][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:56:30,343 [DEBUG][       Thread-606759][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:56:30,343 [DEBUG][       Thread-606759][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:56:30,343 [DEBUG][       Thread-606759][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:56:30,343 [DEBUG][       Thread-606759][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:56:30,343 [DEBUG][       Thread-606759][   transport.py][1871] : Compression: none
2025-07-01 13:56:30,343 [DEBUG][       Thread-606759][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:56:30,366 [DEBUG][       Thread-606759][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:56:30,366 [DEBUG][       Thread-606759][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:56:30,367 [DEBUG][       Thread-606759][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:56:30,367 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:56:30,367 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:56:30,368 [DEBUG][       Thread-606759][   transport.py][1871] : userauth is OK
2025-07-01 13:56:30,395 [ INFO][       Thread-606759][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:56:30,396 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:56:31,067 [DEBUG][       Thread-606759][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:56:31,067 [DEBUG][       Thread-606759][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:56:31,109 [DEBUG][       Thread-606759][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:56:31,109 [DEBUG][       Thread-606759][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:56:31,112 [DEBUG][       Thread-606759][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:56:31,124 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:56:31,125 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:56:31,126 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:56:31,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:56:31,135 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:56:31,137 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:56:31,137 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:56:31,138 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:56:31,138 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.497165 -999.00  +13.40  48.58     51   +3.50 1 1 2 1 1   887    0 9.36 -13.29 ----- 38.8 48.6 27.2 63.2 16.0 -23.5 15.2 -25.2 15.3 -23.4 16.0 -22.2
2025-07-01 13:56:31,138 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:56:31,138 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:56:31,138 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.497165
2025-07-01 13:56:31,139 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:56:31,139 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:56:31,139 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:56:31,139 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:56:31,140 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:56:31,140 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:56:23', tmtdew=11.35, humidity=46.36, cloud=0.0, wind=40.88, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:55:55.056', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:56:31,141 [DEBUG][       Thread-606759][   transport.py][1871] : EOF in transport thread
2025-07-01 13:56:31,223 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:56:31,234 [DEBUG][       Thread-606762][   transport.py][1871] : starting thread (client mode): 0x8393910
2025-07-01 13:56:31,234 [DEBUG][       Thread-606762][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:56:31,250 [DEBUG][       Thread-606762][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:56:31,250 [ INFO][       Thread-606762][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:56:31,258 [DEBUG][       Thread-606762][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:56:31,258 [DEBUG][       Thread-606762][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:56:31,259 [DEBUG][       Thread-606762][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:56:31,259 [DEBUG][       Thread-606762][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:56:31,259 [DEBUG][       Thread-606762][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:56:31,259 [DEBUG][       Thread-606762][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:56:31,259 [DEBUG][       Thread-606762][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:56:31,259 [DEBUG][       Thread-606762][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:56:31,259 [DEBUG][       Thread-606762][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:56:31,259 [DEBUG][       Thread-606762][   transport.py][1871] : client lang: <none>
2025-07-01 13:56:31,259 [DEBUG][       Thread-606762][   transport.py][1871] : server lang: <none>
2025-07-01 13:56:31,259 [DEBUG][       Thread-606762][   transport.py][1871] : kex follows: False
2025-07-01 13:56:31,259 [DEBUG][       Thread-606762][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:56:31,259 [DEBUG][       Thread-606762][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:56:31,259 [DEBUG][       Thread-606762][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:56:31,259 [DEBUG][       Thread-606762][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:56:31,259 [DEBUG][       Thread-606762][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:56:31,259 [DEBUG][       Thread-606762][   transport.py][1871] : Compression: none
2025-07-01 13:56:31,259 [DEBUG][       Thread-606762][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:56:31,317 [DEBUG][       Thread-606762][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:56:31,318 [DEBUG][       Thread-606762][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:56:31,318 [DEBUG][       Thread-606762][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:56:31,319 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:56:31,319 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:56:31,381 [DEBUG][       Thread-606762][   transport.py][1871] : userauth is OK
2025-07-01 13:56:31,381 [DEBUG][       Thread-606762][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:56:31,381 [DEBUG][       Thread-606762][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:56:31,381 [DEBUG][       Thread-606762][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:56:31,382 [DEBUG][       Thread-606762][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:56:31,407 [ INFO][       Thread-606762][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:56:31,407 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:56:31,408 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:56:32,438 [DEBUG][       Thread-606762][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:56:32,439 [DEBUG][       Thread-606762][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:56:32,488 [DEBUG][       Thread-606762][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:56:32,488 [DEBUG][       Thread-606762][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:56:32,497 [DEBUG][       Thread-606762][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:56:32,506 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:56:32,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-07-01 13:56:32,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-07-01 13:56:32,525 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:56:32,525 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:56:32,526 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:56:32,534 [DEBUG][       Thread-606762][   transport.py][1871] : EOF in transport thread
2025-07-01 13:56:33,371 [DEBUG][Thread-606764 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:56:35,720 [DEBUG][Thread-606765 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:56:42,536 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:56:42,536 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:56:42,536 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:56:42,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-07-01 13:56:43,031 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 56, 23), 11.35, 46.36, 0.0, 40.88, 13.54, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:56:43,031 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:56:23
2025-07-01 13:56:43,117 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:56:43,121 [DEBUG][       Thread-606766][   transport.py][1871] : starting thread (client mode): 0x81a7c40
2025-07-01 13:56:43,122 [DEBUG][       Thread-606766][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:56:43,143 [DEBUG][       Thread-606766][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:56:43,143 [ INFO][       Thread-606766][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:56:43,146 [DEBUG][       Thread-606766][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:56:43,146 [DEBUG][       Thread-606766][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:56:43,146 [DEBUG][       Thread-606766][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:56:43,146 [DEBUG][       Thread-606766][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:56:43,146 [DEBUG][       Thread-606766][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:56:43,146 [DEBUG][       Thread-606766][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:56:43,146 [DEBUG][       Thread-606766][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:56:43,146 [DEBUG][       Thread-606766][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:56:43,146 [DEBUG][       Thread-606766][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:56:43,146 [DEBUG][       Thread-606766][   transport.py][1871] : client lang: <none>
2025-07-01 13:56:43,146 [DEBUG][       Thread-606766][   transport.py][1871] : server lang: <none>
2025-07-01 13:56:43,146 [DEBUG][       Thread-606766][   transport.py][1871] : kex follows: False
2025-07-01 13:56:43,146 [DEBUG][       Thread-606766][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:56:43,146 [DEBUG][       Thread-606766][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:56:43,146 [DEBUG][       Thread-606766][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:56:43,147 [DEBUG][       Thread-606766][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:56:43,147 [DEBUG][       Thread-606766][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:56:43,147 [DEBUG][       Thread-606766][   transport.py][1871] : Compression: none
2025-07-01 13:56:43,147 [DEBUG][       Thread-606766][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:56:43,162 [DEBUG][       Thread-606766][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:56:43,163 [DEBUG][       Thread-606766][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:56:43,163 [DEBUG][       Thread-606766][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:56:43,163 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:56:43,164 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:56:43,165 [DEBUG][       Thread-606766][   transport.py][1871] : userauth is OK
2025-07-01 13:56:43,190 [ INFO][       Thread-606766][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:56:43,191 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:56:43,822 [DEBUG][       Thread-606766][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:56:43,822 [DEBUG][       Thread-606766][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:56:43,869 [DEBUG][       Thread-606766][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:56:43,869 [DEBUG][       Thread-606766][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:56:43,872 [DEBUG][       Thread-606766][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:56:43,884 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:56:43,885 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:56:43,886 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:56:43,887 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:56:43,890 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:56:43,891 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:56:43,891 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:56:43,891 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:56:43,891 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.497165 -999.00  +13.40  48.58     51   +3.50 1 1 2 1 1   887    0 9.36 -13.29 ----- 38.8 48.6 27.2 63.2 16.0 -23.5 15.2 -25.2 15.3 -23.4 16.0 -22.2
2025-07-01 13:56:43,891 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:56:43,891 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:56:43,891 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.497165
2025-07-01 13:56:43,891 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:56:43,891 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:56:43,891 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:56:43,891 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:56:43,891 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:56:43,891 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:56:23', tmtdew=11.35, humidity=46.36, cloud=0.0, wind=40.88, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:55:55.056', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:56:43,892 [DEBUG][       Thread-606766][   transport.py][1871] : EOF in transport thread
2025-07-01 13:56:43,963 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:56:43,973 [DEBUG][       Thread-606769][   transport.py][1871] : starting thread (client mode): 0x81e4880
2025-07-01 13:56:43,973 [DEBUG][       Thread-606769][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:56:43,988 [DEBUG][       Thread-606769][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:56:43,988 [ INFO][       Thread-606769][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:56:43,998 [DEBUG][       Thread-606769][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:56:43,998 [DEBUG][       Thread-606769][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:56:43,998 [DEBUG][       Thread-606769][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:56:43,998 [DEBUG][       Thread-606769][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:56:43,998 [DEBUG][       Thread-606769][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:56:43,998 [DEBUG][       Thread-606769][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:56:43,998 [DEBUG][       Thread-606769][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:56:43,998 [DEBUG][       Thread-606769][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:56:43,998 [DEBUG][       Thread-606769][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:56:43,998 [DEBUG][       Thread-606769][   transport.py][1871] : client lang: <none>
2025-07-01 13:56:43,998 [DEBUG][       Thread-606769][   transport.py][1871] : server lang: <none>
2025-07-01 13:56:43,998 [DEBUG][       Thread-606769][   transport.py][1871] : kex follows: False
2025-07-01 13:56:43,998 [DEBUG][       Thread-606769][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:56:43,998 [DEBUG][       Thread-606769][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:56:43,998 [DEBUG][       Thread-606769][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:56:43,998 [DEBUG][       Thread-606769][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:56:43,998 [DEBUG][       Thread-606769][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:56:43,998 [DEBUG][       Thread-606769][   transport.py][1871] : Compression: none
2025-07-01 13:56:43,998 [DEBUG][       Thread-606769][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:56:44,053 [DEBUG][       Thread-606769][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:56:44,054 [DEBUG][       Thread-606769][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:56:44,054 [DEBUG][       Thread-606769][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:56:44,054 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:56:44,055 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:56:44,117 [DEBUG][       Thread-606769][   transport.py][1871] : userauth is OK
2025-07-01 13:56:44,117 [DEBUG][       Thread-606769][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:56:44,117 [DEBUG][       Thread-606769][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:56:44,117 [DEBUG][       Thread-606769][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:56:44,117 [DEBUG][       Thread-606769][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:56:44,138 [ INFO][       Thread-606769][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:56:44,139 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:56:44,139 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:56:44,766 [DEBUG][Thread-606771 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:56:45,158 [DEBUG][       Thread-606769][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:56:45,159 [DEBUG][       Thread-606769][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:56:45,208 [DEBUG][       Thread-606769][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:56:45,208 [DEBUG][       Thread-606769][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:56:45,217 [DEBUG][       Thread-606769][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:56:45,226 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:56:45,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-07-01 13:56:45,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-07-01 13:56:45,243 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:56:45,243 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:56:45,244 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:56:45,251 [DEBUG][       Thread-606769][   transport.py][1871] : EOF in transport thread
2025-07-01 13:56:53,789 [DEBUG][Thread-606772 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:56:55,251 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:56:55,251 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:56:55,251 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:56:55,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-07-01 13:56:55,736 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 56, 23), 11.35, 46.36, 0.0, 40.88, 13.54, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:56:55,736 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:56:23
2025-07-01 13:56:55,822 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:56:55,827 [DEBUG][       Thread-606773][   transport.py][1871] : starting thread (client mode): 0x81dace0
2025-07-01 13:56:55,827 [DEBUG][       Thread-606773][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:56:55,846 [DEBUG][       Thread-606773][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:56:55,847 [ INFO][       Thread-606773][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:56:55,850 [DEBUG][       Thread-606773][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:56:55,850 [DEBUG][       Thread-606773][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:56:55,850 [DEBUG][       Thread-606773][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:56:55,850 [DEBUG][       Thread-606773][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:56:55,850 [DEBUG][       Thread-606773][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:56:55,850 [DEBUG][       Thread-606773][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:56:55,850 [DEBUG][       Thread-606773][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:56:55,850 [DEBUG][       Thread-606773][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:56:55,850 [DEBUG][       Thread-606773][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:56:55,850 [DEBUG][       Thread-606773][   transport.py][1871] : client lang: <none>
2025-07-01 13:56:55,850 [DEBUG][       Thread-606773][   transport.py][1871] : server lang: <none>
2025-07-01 13:56:55,850 [DEBUG][       Thread-606773][   transport.py][1871] : kex follows: False
2025-07-01 13:56:55,850 [DEBUG][       Thread-606773][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:56:55,850 [DEBUG][       Thread-606773][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:56:55,850 [DEBUG][       Thread-606773][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:56:55,850 [DEBUG][       Thread-606773][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:56:55,850 [DEBUG][       Thread-606773][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:56:55,850 [DEBUG][       Thread-606773][   transport.py][1871] : Compression: none
2025-07-01 13:56:55,850 [DEBUG][       Thread-606773][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:56:55,867 [DEBUG][       Thread-606773][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:56:55,867 [DEBUG][       Thread-606773][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:56:55,868 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:56:55,868 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:56:55,868 [DEBUG][       Thread-606773][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:56:55,869 [DEBUG][       Thread-606773][   transport.py][1871] : userauth is OK
2025-07-01 13:56:55,882 [ INFO][       Thread-606773][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:56:55,883 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:56:56,527 [DEBUG][       Thread-606773][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:56:56,528 [DEBUG][       Thread-606773][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:56:56,568 [DEBUG][       Thread-606773][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:56:56,569 [DEBUG][       Thread-606773][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:56:56,571 [DEBUG][       Thread-606773][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:56:56,582 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:56:56,582 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:56:56,583 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:56:56,584 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:56:56,596 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:56:56,597 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:56:56,597 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:56:56,597 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:56:56,597 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.497511 -999.00  +13.40  41.39     51   +3.70 1 1 2 1 1   887    0 9.42 -13.38 ----- 46.2 41.4 16.4 50.5 16.0 -23.4 15.2 -25.0 15.3 -23.4 16.0 -22.2
2025-07-01 13:56:56,597 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:56:56,597 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:56:56,597 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.497511
2025-07-01 13:56:56,597 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:56:56,597 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:56:56,597 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:56:56,597 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:56:56,597 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:56:56,597 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:56:23', tmtdew=11.35, humidity=46.36, cloud=0.0, wind=40.88, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:56:24.950', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:56:56,597 [DEBUG][       Thread-606773][   transport.py][1871] : EOF in transport thread
2025-07-01 13:56:56,672 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:56:56,683 [DEBUG][       Thread-606776][   transport.py][1871] : starting thread (client mode): 0x81076d0
2025-07-01 13:56:56,683 [DEBUG][       Thread-606776][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:56:56,699 [DEBUG][       Thread-606776][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:56:56,699 [ INFO][       Thread-606776][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:56:56,707 [DEBUG][       Thread-606776][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:56:56,707 [DEBUG][       Thread-606776][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:56:56,707 [DEBUG][       Thread-606776][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:56:56,707 [DEBUG][       Thread-606776][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:56:56,707 [DEBUG][       Thread-606776][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:56:56,707 [DEBUG][       Thread-606776][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:56:56,707 [DEBUG][       Thread-606776][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:56:56,707 [DEBUG][       Thread-606776][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:56:56,707 [DEBUG][       Thread-606776][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:56:56,707 [DEBUG][       Thread-606776][   transport.py][1871] : client lang: <none>
2025-07-01 13:56:56,707 [DEBUG][       Thread-606776][   transport.py][1871] : server lang: <none>
2025-07-01 13:56:56,707 [DEBUG][       Thread-606776][   transport.py][1871] : kex follows: False
2025-07-01 13:56:56,707 [DEBUG][       Thread-606776][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:56:56,707 [DEBUG][       Thread-606776][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:56:56,707 [DEBUG][       Thread-606776][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:56:56,707 [DEBUG][       Thread-606776][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:56:56,707 [DEBUG][       Thread-606776][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:56:56,707 [DEBUG][       Thread-606776][   transport.py][1871] : Compression: none
2025-07-01 13:56:56,707 [DEBUG][       Thread-606776][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:56:56,764 [DEBUG][       Thread-606776][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:56:56,764 [DEBUG][       Thread-606776][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:56:56,764 [DEBUG][       Thread-606776][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:56:56,764 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:56:56,764 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:56:56,821 [DEBUG][       Thread-606776][   transport.py][1871] : userauth is OK
2025-07-01 13:56:56,822 [DEBUG][       Thread-606776][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:56:56,822 [DEBUG][       Thread-606776][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:56:56,822 [DEBUG][       Thread-606776][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:56:56,822 [DEBUG][       Thread-606776][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:56:56,836 [ INFO][       Thread-606776][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:56:56,836 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:56:56,836 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:56:57,834 [DEBUG][       Thread-606776][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:56:57,834 [DEBUG][       Thread-606776][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:56:57,883 [DEBUG][       Thread-606776][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:56:57,883 [DEBUG][       Thread-606776][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:56:57,892 [DEBUG][       Thread-606776][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:56:57,899 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:56:57,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-07-01 13:56:57,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-07-01 13:56:57,915 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:56:57,915 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:56:57,915 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:56:57,923 [DEBUG][       Thread-606776][   transport.py][1871] : EOF in transport thread
2025-07-01 13:57:02,808 [DEBUG][Thread-606778 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:57:07,926 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:57:07,926 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:57:07,926 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:57:07,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-07-01 13:57:08,421 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 56, 55), 11.3, 46.5, 0.0, 39.64, 13.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:57:08,421 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:56:55
2025-07-01 13:57:08,505 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:57:08,509 [DEBUG][       Thread-606779][   transport.py][1871] : starting thread (client mode): 0x8171e10
2025-07-01 13:57:08,509 [DEBUG][       Thread-606779][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:57:08,530 [DEBUG][       Thread-606779][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:57:08,531 [ INFO][       Thread-606779][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:57:08,534 [DEBUG][       Thread-606779][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:57:08,534 [DEBUG][       Thread-606779][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:57:08,534 [DEBUG][       Thread-606779][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:57:08,534 [DEBUG][       Thread-606779][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:57:08,534 [DEBUG][       Thread-606779][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:57:08,534 [DEBUG][       Thread-606779][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:57:08,534 [DEBUG][       Thread-606779][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:57:08,534 [DEBUG][       Thread-606779][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:57:08,534 [DEBUG][       Thread-606779][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:57:08,534 [DEBUG][       Thread-606779][   transport.py][1871] : client lang: <none>
2025-07-01 13:57:08,534 [DEBUG][       Thread-606779][   transport.py][1871] : server lang: <none>
2025-07-01 13:57:08,534 [DEBUG][       Thread-606779][   transport.py][1871] : kex follows: False
2025-07-01 13:57:08,534 [DEBUG][       Thread-606779][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:57:08,534 [DEBUG][       Thread-606779][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:57:08,534 [DEBUG][       Thread-606779][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:57:08,534 [DEBUG][       Thread-606779][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:57:08,534 [DEBUG][       Thread-606779][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:57:08,534 [DEBUG][       Thread-606779][   transport.py][1871] : Compression: none
2025-07-01 13:57:08,534 [DEBUG][       Thread-606779][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:57:08,550 [DEBUG][       Thread-606779][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:57:08,550 [DEBUG][       Thread-606779][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:57:08,550 [DEBUG][       Thread-606779][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:57:08,550 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:57:08,550 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:57:08,551 [DEBUG][       Thread-606779][   transport.py][1871] : userauth is OK
2025-07-01 13:57:08,563 [ INFO][       Thread-606779][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:57:08,563 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:57:09,248 [DEBUG][       Thread-606779][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:57:09,248 [DEBUG][       Thread-606779][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:57:09,289 [DEBUG][       Thread-606779][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:57:09,289 [DEBUG][       Thread-606779][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:57:09,292 [DEBUG][       Thread-606779][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:57:09,304 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:57:09,304 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:57:09,306 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:57:09,308 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:57:09,314 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:57:09,316 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:57:09,316 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:57:09,317 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:57:09,317 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.497511 -999.00  +13.40  41.39     51   +3.70 1 1 2 1 1   887    0 9.42 -13.38 ----- 46.2 41.4 16.4 50.5 16.0 -23.4 15.2 -25.0 15.3 -23.4 16.0 -22.2
2025-07-01 13:57:09,317 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:57:09,318 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:57:09,318 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.497511
2025-07-01 13:57:09,318 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:57:09,319 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:57:09,319 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:57:09,319 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:57:09,319 [DEBUG][       Thread-606779][   transport.py][1871] : EOF in transport thread
2025-07-01 13:57:09,319 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:57:09,320 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:56:55', tmtdew=11.3, humidity=46.5, cloud=0.0, wind=39.64, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:56:24.950', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:57:09,410 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:57:09,419 [DEBUG][       Thread-606782][   transport.py][1871] : starting thread (client mode): 0x82b2aa0
2025-07-01 13:57:09,419 [DEBUG][       Thread-606782][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:57:09,435 [DEBUG][       Thread-606782][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:57:09,435 [ INFO][       Thread-606782][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:57:09,446 [DEBUG][       Thread-606782][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:57:09,447 [DEBUG][       Thread-606782][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:57:09,447 [DEBUG][       Thread-606782][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:57:09,447 [DEBUG][       Thread-606782][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:57:09,447 [DEBUG][       Thread-606782][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:57:09,447 [DEBUG][       Thread-606782][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:57:09,447 [DEBUG][       Thread-606782][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:57:09,447 [DEBUG][       Thread-606782][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:57:09,447 [DEBUG][       Thread-606782][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:57:09,447 [DEBUG][       Thread-606782][   transport.py][1871] : client lang: <none>
2025-07-01 13:57:09,447 [DEBUG][       Thread-606782][   transport.py][1871] : server lang: <none>
2025-07-01 13:57:09,447 [DEBUG][       Thread-606782][   transport.py][1871] : kex follows: False
2025-07-01 13:57:09,447 [DEBUG][       Thread-606782][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:57:09,447 [DEBUG][       Thread-606782][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:57:09,447 [DEBUG][       Thread-606782][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:57:09,447 [DEBUG][       Thread-606782][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:57:09,447 [DEBUG][       Thread-606782][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:57:09,447 [DEBUG][       Thread-606782][   transport.py][1871] : Compression: none
2025-07-01 13:57:09,447 [DEBUG][       Thread-606782][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:57:09,504 [DEBUG][       Thread-606782][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:57:09,505 [DEBUG][       Thread-606782][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:57:09,505 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:57:09,506 [DEBUG][       Thread-606782][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:57:09,507 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:57:09,565 [DEBUG][       Thread-606782][   transport.py][1871] : userauth is OK
2025-07-01 13:57:09,565 [DEBUG][       Thread-606782][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:57:09,566 [DEBUG][       Thread-606782][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:57:09,566 [DEBUG][       Thread-606782][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:57:09,566 [DEBUG][       Thread-606782][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:57:09,585 [ INFO][       Thread-606782][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:57:09,586 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:57:09,586 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:57:10,581 [DEBUG][       Thread-606782][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:57:10,581 [DEBUG][       Thread-606782][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:57:10,636 [DEBUG][       Thread-606782][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:57:10,636 [DEBUG][       Thread-606782][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:57:10,645 [DEBUG][       Thread-606782][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:57:10,653 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:57:10,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-07-01 13:57:10,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-07-01 13:57:10,670 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:57:10,671 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:57:10,671 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:57:10,678 [DEBUG][       Thread-606782][   transport.py][1871] : EOF in transport thread
2025-07-01 13:57:11,830 [DEBUG][Thread-606784 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:57:20,681 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:57:20,682 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:57:20,682 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:57:20,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-07-01 13:57:20,864 [DEBUG][Thread-606785 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:57:21,157 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 56, 55), 11.3, 46.5, 0.0, 39.64, 13.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:57:21,157 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:56:55
2025-07-01 13:57:21,240 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:57:21,244 [DEBUG][       Thread-606786][   transport.py][1871] : starting thread (client mode): 0x81da6e0
2025-07-01 13:57:21,244 [DEBUG][       Thread-606786][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:57:21,265 [DEBUG][       Thread-606786][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:57:21,265 [ INFO][       Thread-606786][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:57:21,269 [DEBUG][       Thread-606786][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:57:21,269 [DEBUG][       Thread-606786][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:57:21,269 [DEBUG][       Thread-606786][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:57:21,269 [DEBUG][       Thread-606786][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:57:21,269 [DEBUG][       Thread-606786][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:57:21,269 [DEBUG][       Thread-606786][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:57:21,269 [DEBUG][       Thread-606786][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:57:21,269 [DEBUG][       Thread-606786][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:57:21,269 [DEBUG][       Thread-606786][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:57:21,269 [DEBUG][       Thread-606786][   transport.py][1871] : client lang: <none>
2025-07-01 13:57:21,269 [DEBUG][       Thread-606786][   transport.py][1871] : server lang: <none>
2025-07-01 13:57:21,269 [DEBUG][       Thread-606786][   transport.py][1871] : kex follows: False
2025-07-01 13:57:21,269 [DEBUG][       Thread-606786][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:57:21,269 [DEBUG][       Thread-606786][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:57:21,269 [DEBUG][       Thread-606786][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:57:21,269 [DEBUG][       Thread-606786][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:57:21,269 [DEBUG][       Thread-606786][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:57:21,269 [DEBUG][       Thread-606786][   transport.py][1871] : Compression: none
2025-07-01 13:57:21,269 [DEBUG][       Thread-606786][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:57:21,284 [DEBUG][       Thread-606786][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:57:21,284 [DEBUG][       Thread-606786][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:57:21,284 [DEBUG][       Thread-606786][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:57:21,285 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:57:21,285 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:57:21,285 [DEBUG][       Thread-606786][   transport.py][1871] : userauth is OK
2025-07-01 13:57:21,299 [ INFO][       Thread-606786][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:57:21,299 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:57:21,959 [DEBUG][       Thread-606786][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:57:21,959 [DEBUG][       Thread-606786][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:57:22,001 [DEBUG][       Thread-606786][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:57:22,002 [DEBUG][       Thread-606786][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:57:22,005 [DEBUG][       Thread-606786][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:57:22,014 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:57:22,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:57:22,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:57:22,018 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:57:22,023 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:57:22,025 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:57:22,025 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:57:22,026 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:57:22,026 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.497858 -999.00  +13.50  41.55     51   +3.60 1 1 2 1 1   887    0 9.20 -12.97 ----- 36.4 41.5 27.8 56.1 16.0 -23.5 15.2 -24.8 15.3 -23.3 16.1 -23.7
2025-07-01 13:57:22,026 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:57:22,026 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:57:22,026 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.497858
2025-07-01 13:57:22,027 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:57:22,027 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:57:22,027 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:57:22,028 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:57:22,028 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:57:22,028 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:56:55', tmtdew=11.3, humidity=46.5, cloud=0.0, wind=39.64, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:56:54.931', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:57:22,028 [DEBUG][       Thread-606786][   transport.py][1871] : EOF in transport thread
2025-07-01 13:57:22,111 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:57:22,122 [DEBUG][       Thread-606789][   transport.py][1871] : starting thread (client mode): 0x4701ec20
2025-07-01 13:57:22,122 [DEBUG][       Thread-606789][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:57:22,137 [DEBUG][       Thread-606789][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:57:22,137 [ INFO][       Thread-606789][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:57:22,144 [DEBUG][       Thread-606789][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:57:22,144 [DEBUG][       Thread-606789][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:57:22,144 [DEBUG][       Thread-606789][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:57:22,144 [DEBUG][       Thread-606789][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:57:22,145 [DEBUG][       Thread-606789][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:57:22,145 [DEBUG][       Thread-606789][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:57:22,145 [DEBUG][       Thread-606789][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:57:22,145 [DEBUG][       Thread-606789][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:57:22,145 [DEBUG][       Thread-606789][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:57:22,145 [DEBUG][       Thread-606789][   transport.py][1871] : client lang: <none>
2025-07-01 13:57:22,145 [DEBUG][       Thread-606789][   transport.py][1871] : server lang: <none>
2025-07-01 13:57:22,145 [DEBUG][       Thread-606789][   transport.py][1871] : kex follows: False
2025-07-01 13:57:22,145 [DEBUG][       Thread-606789][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:57:22,145 [DEBUG][       Thread-606789][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:57:22,145 [DEBUG][       Thread-606789][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:57:22,145 [DEBUG][       Thread-606789][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:57:22,145 [DEBUG][       Thread-606789][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:57:22,145 [DEBUG][       Thread-606789][   transport.py][1871] : Compression: none
2025-07-01 13:57:22,145 [DEBUG][       Thread-606789][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:57:22,207 [DEBUG][       Thread-606789][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:57:22,207 [DEBUG][       Thread-606789][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:57:22,208 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:57:22,209 [DEBUG][       Thread-606789][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:57:22,209 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:57:22,263 [DEBUG][       Thread-606789][   transport.py][1871] : userauth is OK
2025-07-01 13:57:22,263 [DEBUG][       Thread-606789][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:57:22,263 [DEBUG][       Thread-606789][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:57:22,263 [DEBUG][       Thread-606789][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:57:22,264 [DEBUG][       Thread-606789][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:57:22,282 [ INFO][       Thread-606789][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:57:22,283 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:57:22,283 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:57:23,270 [DEBUG][       Thread-606789][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:57:23,270 [DEBUG][       Thread-606789][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:57:23,320 [DEBUG][       Thread-606789][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:57:23,320 [DEBUG][       Thread-606789][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:57:23,329 [DEBUG][       Thread-606789][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:57:23,338 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:57:23,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-07-01 13:57:23,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') -> 00000000
2025-07-01 13:57:23,357 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:57:23,357 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:57:23,358 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:57:23,365 [DEBUG][       Thread-606789][   transport.py][1871] : EOF in transport thread
2025-07-01 13:57:28,518 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:57:28,519 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:57:29,891 [DEBUG][Thread-606791 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:57:33,368 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:57:33,368 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:57:33,368 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:57:33,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-07-01 13:57:33,421 [DEBUG][Thread-606792 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:57:33,847 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 57, 27), 11.32, 46.34, 0.0, 37.49, 13.49, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:57:33,847 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:57:27
2025-07-01 13:57:33,930 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:57:33,934 [DEBUG][       Thread-606793][   transport.py][1871] : starting thread (client mode): 0x75a9990
2025-07-01 13:57:33,934 [DEBUG][       Thread-606793][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:57:33,956 [DEBUG][       Thread-606793][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:57:33,956 [ INFO][       Thread-606793][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:57:33,958 [DEBUG][       Thread-606793][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:57:33,958 [DEBUG][       Thread-606793][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:57:33,958 [DEBUG][       Thread-606793][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:57:33,958 [DEBUG][       Thread-606793][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:57:33,958 [DEBUG][       Thread-606793][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:57:33,958 [DEBUG][       Thread-606793][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:57:33,958 [DEBUG][       Thread-606793][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:57:33,958 [DEBUG][       Thread-606793][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:57:33,958 [DEBUG][       Thread-606793][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:57:33,958 [DEBUG][       Thread-606793][   transport.py][1871] : client lang: <none>
2025-07-01 13:57:33,958 [DEBUG][       Thread-606793][   transport.py][1871] : server lang: <none>
2025-07-01 13:57:33,958 [DEBUG][       Thread-606793][   transport.py][1871] : kex follows: False
2025-07-01 13:57:33,958 [DEBUG][       Thread-606793][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:57:33,958 [DEBUG][       Thread-606793][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:57:33,958 [DEBUG][       Thread-606793][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:57:33,958 [DEBUG][       Thread-606793][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:57:33,958 [DEBUG][       Thread-606793][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:57:33,958 [DEBUG][       Thread-606793][   transport.py][1871] : Compression: none
2025-07-01 13:57:33,958 [DEBUG][       Thread-606793][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:57:33,975 [DEBUG][       Thread-606793][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:57:33,975 [DEBUG][       Thread-606793][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:57:33,976 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:57:33,976 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:57:33,977 [DEBUG][       Thread-606793][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:57:33,977 [DEBUG][       Thread-606793][   transport.py][1871] : userauth is OK
2025-07-01 13:57:33,990 [ INFO][       Thread-606793][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:57:33,991 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:57:34,633 [DEBUG][       Thread-606793][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:57:34,633 [DEBUG][       Thread-606793][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:57:34,676 [DEBUG][       Thread-606793][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:57:34,676 [DEBUG][       Thread-606793][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:57:34,679 [DEBUG][       Thread-606793][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:57:34,690 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:57:34,690 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:57:34,691 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:57:34,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:57:34,695 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:57:34,695 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:57:34,695 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:57:34,696 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:57:34,696 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.497858 -999.00  +13.50  41.55     51   +3.60 1 1 2 1 1   887    0 9.20 -12.97 ----- 36.4 41.5 27.8 56.1 16.0 -23.5 15.2 -24.8 15.3 -23.3 16.1 -23.7
2025-07-01 13:57:34,696 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:57:34,696 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:57:34,696 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.497858
2025-07-01 13:57:34,696 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:57:34,696 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:57:34,696 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:57:34,696 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:57:34,696 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:57:34,696 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:57:27', tmtdew=11.32, humidity=46.34, cloud=0.0, wind=37.49, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:56:54.931', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:57:34,697 [DEBUG][       Thread-606793][   transport.py][1871] : EOF in transport thread
2025-07-01 13:57:34,770 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:57:34,782 [DEBUG][       Thread-606796][   transport.py][1871] : starting thread (client mode): 0x827db40
2025-07-01 13:57:34,782 [DEBUG][       Thread-606796][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:57:34,797 [DEBUG][       Thread-606796][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:57:34,797 [ INFO][       Thread-606796][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:57:34,804 [DEBUG][       Thread-606796][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:57:34,804 [DEBUG][       Thread-606796][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:57:34,804 [DEBUG][       Thread-606796][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:57:34,804 [DEBUG][       Thread-606796][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:57:34,804 [DEBUG][       Thread-606796][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:57:34,804 [DEBUG][       Thread-606796][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:57:34,804 [DEBUG][       Thread-606796][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:57:34,804 [DEBUG][       Thread-606796][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:57:34,804 [DEBUG][       Thread-606796][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:57:34,804 [DEBUG][       Thread-606796][   transport.py][1871] : client lang: <none>
2025-07-01 13:57:34,805 [DEBUG][       Thread-606796][   transport.py][1871] : server lang: <none>
2025-07-01 13:57:34,805 [DEBUG][       Thread-606796][   transport.py][1871] : kex follows: False
2025-07-01 13:57:34,805 [DEBUG][       Thread-606796][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:57:34,805 [DEBUG][       Thread-606796][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:57:34,805 [DEBUG][       Thread-606796][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:57:34,805 [DEBUG][       Thread-606796][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:57:34,805 [DEBUG][       Thread-606796][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:57:34,805 [DEBUG][       Thread-606796][   transport.py][1871] : Compression: none
2025-07-01 13:57:34,805 [DEBUG][       Thread-606796][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:57:34,861 [DEBUG][       Thread-606796][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:57:34,861 [DEBUG][       Thread-606796][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:57:34,861 [DEBUG][       Thread-606796][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:57:34,861 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:57:34,862 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:57:34,918 [DEBUG][       Thread-606796][   transport.py][1871] : userauth is OK
2025-07-01 13:57:34,918 [DEBUG][       Thread-606796][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:57:34,918 [DEBUG][       Thread-606796][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:57:34,918 [DEBUG][       Thread-606796][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:57:34,918 [DEBUG][       Thread-606796][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:57:34,932 [ INFO][       Thread-606796][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:57:34,932 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:57:34,932 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:57:35,986 [DEBUG][       Thread-606796][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:57:35,986 [DEBUG][       Thread-606796][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:57:36,035 [DEBUG][       Thread-606796][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:57:36,035 [DEBUG][       Thread-606796][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:57:36,044 [DEBUG][       Thread-606796][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:57:36,052 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:57:36,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-07-01 13:57: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') -> 00000000
2025-07-01 13:57:36,067 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:57:36,068 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:57:36,068 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:57:36,075 [DEBUG][       Thread-606796][   transport.py][1871] : EOF in transport thread
2025-07-01 13:57:38,910 [DEBUG][Thread-606798 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:57:46,078 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:57:46,078 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:57:46,078 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:57:46,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-07-01 13:57:46,567 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 57, 27), 11.32, 46.34, 0.0, 37.49, 13.49, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:57:46,567 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:57:27
2025-07-01 13:57:46,651 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:57:46,655 [DEBUG][       Thread-606799][   transport.py][1871] : starting thread (client mode): 0x75ab220
2025-07-01 13:57:46,655 [DEBUG][       Thread-606799][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:57:46,677 [DEBUG][       Thread-606799][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:57:46,677 [ INFO][       Thread-606799][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:57:46,680 [DEBUG][       Thread-606799][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:57:46,680 [DEBUG][       Thread-606799][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:57:46,680 [DEBUG][       Thread-606799][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:57:46,680 [DEBUG][       Thread-606799][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:57:46,680 [DEBUG][       Thread-606799][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:57:46,680 [DEBUG][       Thread-606799][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:57:46,680 [DEBUG][       Thread-606799][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:57:46,680 [DEBUG][       Thread-606799][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:57:46,680 [DEBUG][       Thread-606799][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:57:46,680 [DEBUG][       Thread-606799][   transport.py][1871] : client lang: <none>
2025-07-01 13:57:46,680 [DEBUG][       Thread-606799][   transport.py][1871] : server lang: <none>
2025-07-01 13:57:46,680 [DEBUG][       Thread-606799][   transport.py][1871] : kex follows: False
2025-07-01 13:57:46,680 [DEBUG][       Thread-606799][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:57:46,680 [DEBUG][       Thread-606799][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:57:46,680 [DEBUG][       Thread-606799][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:57:46,680 [DEBUG][       Thread-606799][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:57:46,680 [DEBUG][       Thread-606799][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:57:46,680 [DEBUG][       Thread-606799][   transport.py][1871] : Compression: none
2025-07-01 13:57:46,680 [DEBUG][       Thread-606799][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:57:46,697 [DEBUG][       Thread-606799][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:57:46,698 [DEBUG][       Thread-606799][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:57:46,698 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:57:46,698 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:57:46,699 [DEBUG][       Thread-606799][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:57:46,699 [DEBUG][       Thread-606799][   transport.py][1871] : userauth is OK
2025-07-01 13:57:46,713 [ INFO][       Thread-606799][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:57:46,714 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:57:47,373 [DEBUG][       Thread-606799][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:57:47,374 [DEBUG][       Thread-606799][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:57:47,417 [DEBUG][       Thread-606799][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:57:47,417 [DEBUG][       Thread-606799][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:57:47,421 [DEBUG][       Thread-606799][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:57:47,432 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:57:47,433 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:57:47,435 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:57:47,437 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:57:47,443 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:57:47,445 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:57:47,445 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:57:47,446 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:57:47,446 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.497858 -999.00  +13.50  41.55     51   +3.60 1 1 2 1 1   887    0 9.20 -12.97 ----- 36.4 41.5 27.8 56.1 16.0 -23.5 15.2 -24.8 15.3 -23.3 16.1 -23.7
2025-07-01 13:57:47,446 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:57:47,446 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:57:47,446 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.497858
2025-07-01 13:57:47,446 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:57:47,447 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:57:47,447 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:57:47,447 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:57:47,447 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:57:47,447 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:57:27', tmtdew=11.32, humidity=46.34, cloud=0.0, wind=37.49, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:56:54.931', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:57:47,448 [DEBUG][       Thread-606799][   transport.py][1871] : EOF in transport thread
2025-07-01 13:57:47,524 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:57:47,542 [DEBUG][       Thread-606802][   transport.py][1871] : starting thread (client mode): 0x81a5090
2025-07-01 13:57:47,543 [DEBUG][       Thread-606802][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:57:47,558 [DEBUG][       Thread-606802][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:57:47,558 [ INFO][       Thread-606802][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:57:47,567 [DEBUG][       Thread-606802][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:57:47,567 [DEBUG][       Thread-606802][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:57:47,567 [DEBUG][       Thread-606802][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:57:47,567 [DEBUG][       Thread-606802][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:57:47,567 [DEBUG][       Thread-606802][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:57:47,567 [DEBUG][       Thread-606802][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:57:47,567 [DEBUG][       Thread-606802][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:57:47,567 [DEBUG][       Thread-606802][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:57:47,567 [DEBUG][       Thread-606802][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:57:47,567 [DEBUG][       Thread-606802][   transport.py][1871] : client lang: <none>
2025-07-01 13:57:47,567 [DEBUG][       Thread-606802][   transport.py][1871] : server lang: <none>
2025-07-01 13:57:47,567 [DEBUG][       Thread-606802][   transport.py][1871] : kex follows: False
2025-07-01 13:57:47,567 [DEBUG][       Thread-606802][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:57:47,567 [DEBUG][       Thread-606802][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:57:47,568 [DEBUG][       Thread-606802][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:57:47,568 [DEBUG][       Thread-606802][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:57:47,568 [DEBUG][       Thread-606802][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:57:47,568 [DEBUG][       Thread-606802][   transport.py][1871] : Compression: none
2025-07-01 13:57:47,568 [DEBUG][       Thread-606802][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:57:47,624 [DEBUG][       Thread-606802][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:57:47,625 [DEBUG][       Thread-606802][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:57:47,626 [DEBUG][       Thread-606802][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:57:47,626 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:57:47,627 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:57:47,683 [DEBUG][       Thread-606802][   transport.py][1871] : userauth is OK
2025-07-01 13:57:47,683 [DEBUG][       Thread-606802][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:57:47,683 [DEBUG][       Thread-606802][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:57:47,683 [DEBUG][       Thread-606802][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:57:47,683 [DEBUG][       Thread-606802][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:57:47,704 [ INFO][       Thread-606802][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:57:47,705 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:57:47,705 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:57:47,943 [DEBUG][Thread-606804 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:57:48,739 [DEBUG][       Thread-606802][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:57:48,739 [DEBUG][       Thread-606802][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:57:48,788 [DEBUG][       Thread-606802][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:57:48,788 [DEBUG][       Thread-606802][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:57:48,797 [DEBUG][       Thread-606802][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:57:48,806 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:57:48,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')
2025-07-01 13:57:48,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-07-01 13:57:48,824 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:57:48,824 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:57:48,824 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:57:48,832 [DEBUG][       Thread-606802][   transport.py][1871] : EOF in transport thread
2025-07-01 13:57:56,965 [DEBUG][Thread-606805 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:57:58,835 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:57:58,835 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:57:58,835 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:57:58,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-07-01 13:57:59,306 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 57, 27), 11.32, 46.34, 0.0, 37.49, 13.49, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:57:59,306 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:57:27
2025-07-01 13:57:59,389 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:57:59,393 [DEBUG][       Thread-606806][   transport.py][1871] : starting thread (client mode): 0x75ab5e0
2025-07-01 13:57:59,398 [DEBUG][       Thread-606806][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:57:59,413 [DEBUG][       Thread-606806][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:57:59,413 [ INFO][       Thread-606806][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:57:59,416 [DEBUG][       Thread-606806][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:57:59,416 [DEBUG][       Thread-606806][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:57:59,416 [DEBUG][       Thread-606806][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:57:59,416 [DEBUG][       Thread-606806][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:57:59,416 [DEBUG][       Thread-606806][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:57:59,416 [DEBUG][       Thread-606806][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:57:59,417 [DEBUG][       Thread-606806][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:57:59,417 [DEBUG][       Thread-606806][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:57:59,417 [DEBUG][       Thread-606806][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:57:59,417 [DEBUG][       Thread-606806][   transport.py][1871] : client lang: <none>
2025-07-01 13:57:59,417 [DEBUG][       Thread-606806][   transport.py][1871] : server lang: <none>
2025-07-01 13:57:59,417 [DEBUG][       Thread-606806][   transport.py][1871] : kex follows: False
2025-07-01 13:57:59,417 [DEBUG][       Thread-606806][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:57:59,417 [DEBUG][       Thread-606806][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:57:59,417 [DEBUG][       Thread-606806][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:57:59,417 [DEBUG][       Thread-606806][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:57:59,417 [DEBUG][       Thread-606806][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:57:59,417 [DEBUG][       Thread-606806][   transport.py][1871] : Compression: none
2025-07-01 13:57:59,417 [DEBUG][       Thread-606806][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:57:59,436 [DEBUG][       Thread-606806][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:57:59,437 [DEBUG][       Thread-606806][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:57:59,437 [DEBUG][       Thread-606806][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:57:59,437 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:57:59,437 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:57:59,439 [DEBUG][       Thread-606806][   transport.py][1871] : userauth is OK
2025-07-01 13:57:59,452 [ INFO][       Thread-606806][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:57:59,453 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:58:00,130 [DEBUG][       Thread-606806][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:58:00,130 [DEBUG][       Thread-606806][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:58:00,172 [DEBUG][       Thread-606806][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:58:00,172 [DEBUG][       Thread-606806][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:58:00,175 [DEBUG][       Thread-606806][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:58:00,187 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:58:00,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:58:00,188 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:58:00,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:58:00,191 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:58:00,191 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:58:00,191 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:58:00,192 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:58:00,192 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.498205 -999.00  +13.50  37.35     51   +3.60 1 1 2 1 1   887    0 9.18 -13.72 ----- 34.7 37.4 31.2 51.3 16.0 -23.3 15.3 -24.5 15.3 -23.0 16.1 -21.9
2025-07-01 13:58:00,192 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:58:00,192 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:58:00,192 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.498205
2025-07-01 13:58:00,192 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:58:00,192 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:58:00,192 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:58:00,192 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:58:00,192 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:58:00,192 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:57:27', tmtdew=11.32, humidity=46.34, cloud=0.0, wind=37.49, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:57:24.912', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:58:00,192 [DEBUG][       Thread-606806][   transport.py][1871] : EOF in transport thread
2025-07-01 13:58:00,266 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:58:00,277 [DEBUG][       Thread-606809][   transport.py][1871] : starting thread (client mode): 0x82b1f30
2025-07-01 13:58:00,278 [DEBUG][       Thread-606809][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:58:00,298 [DEBUG][       Thread-606809][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:58:00,298 [ INFO][       Thread-606809][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:58:00,305 [DEBUG][       Thread-606809][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:58:00,305 [DEBUG][       Thread-606809][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:58:00,305 [DEBUG][       Thread-606809][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:58:00,305 [DEBUG][       Thread-606809][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:58:00,305 [DEBUG][       Thread-606809][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:58:00,305 [DEBUG][       Thread-606809][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:58:00,305 [DEBUG][       Thread-606809][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:58:00,305 [DEBUG][       Thread-606809][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:58:00,305 [DEBUG][       Thread-606809][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:58:00,305 [DEBUG][       Thread-606809][   transport.py][1871] : client lang: <none>
2025-07-01 13:58:00,305 [DEBUG][       Thread-606809][   transport.py][1871] : server lang: <none>
2025-07-01 13:58:00,305 [DEBUG][       Thread-606809][   transport.py][1871] : kex follows: False
2025-07-01 13:58:00,305 [DEBUG][       Thread-606809][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:58:00,305 [DEBUG][       Thread-606809][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:58:00,305 [DEBUG][       Thread-606809][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:58:00,305 [DEBUG][       Thread-606809][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:58:00,305 [DEBUG][       Thread-606809][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:58:00,305 [DEBUG][       Thread-606809][   transport.py][1871] : Compression: none
2025-07-01 13:58:00,305 [DEBUG][       Thread-606809][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:58:00,362 [DEBUG][       Thread-606809][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:58:00,362 [DEBUG][       Thread-606809][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:58:00,362 [DEBUG][       Thread-606809][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:58:00,362 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:58:00,362 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:58:00,419 [DEBUG][       Thread-606809][   transport.py][1871] : userauth is OK
2025-07-01 13:58:00,419 [DEBUG][       Thread-606809][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:58:00,419 [DEBUG][       Thread-606809][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:58:00,419 [DEBUG][       Thread-606809][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:58:00,419 [DEBUG][       Thread-606809][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:58:00,433 [ INFO][       Thread-606809][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:58:00,434 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:58:00,434 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:58:01,457 [DEBUG][       Thread-606809][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:58:01,458 [DEBUG][       Thread-606809][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:58:01,507 [DEBUG][       Thread-606809][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:58:01,507 [DEBUG][       Thread-606809][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:58:01,516 [DEBUG][       Thread-606809][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:58:01,524 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:58:01,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-07-01 13:58:01,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-07-01 13:58:01,540 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:58:01,540 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:58:01,540 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:58:01,548 [DEBUG][       Thread-606809][   transport.py][1871] : EOF in transport thread
2025-07-01 13:58:05,988 [DEBUG][Thread-606811 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:58:11,550 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:58:11,550 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:58:11,551 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:58:11,553 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:58:12,019 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 57, 59), 11.24, 46.57, 0.0, 35.71, 13.48, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:58:12,019 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:57:59
2025-07-01 13:58:12,102 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:58:12,105 [DEBUG][       Thread-606812][   transport.py][1871] : starting thread (client mode): 0x75a88e0
2025-07-01 13:58:12,105 [DEBUG][       Thread-606812][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:58:12,124 [DEBUG][       Thread-606812][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:58:12,125 [ INFO][       Thread-606812][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:58:12,128 [DEBUG][       Thread-606812][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:58:12,128 [DEBUG][       Thread-606812][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:58:12,128 [DEBUG][       Thread-606812][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:58:12,128 [DEBUG][       Thread-606812][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:58:12,128 [DEBUG][       Thread-606812][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:58:12,128 [DEBUG][       Thread-606812][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:58:12,128 [DEBUG][       Thread-606812][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:58:12,128 [DEBUG][       Thread-606812][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:58:12,128 [DEBUG][       Thread-606812][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:58:12,128 [DEBUG][       Thread-606812][   transport.py][1871] : client lang: <none>
2025-07-01 13:58:12,128 [DEBUG][       Thread-606812][   transport.py][1871] : server lang: <none>
2025-07-01 13:58:12,128 [DEBUG][       Thread-606812][   transport.py][1871] : kex follows: False
2025-07-01 13:58:12,128 [DEBUG][       Thread-606812][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:58:12,128 [DEBUG][       Thread-606812][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:58:12,128 [DEBUG][       Thread-606812][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:58:12,128 [DEBUG][       Thread-606812][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:58:12,128 [DEBUG][       Thread-606812][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:58:12,128 [DEBUG][       Thread-606812][   transport.py][1871] : Compression: none
2025-07-01 13:58:12,128 [DEBUG][       Thread-606812][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:58:12,136 [DEBUG][       Thread-606812][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:58:12,136 [DEBUG][       Thread-606812][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:58:12,136 [DEBUG][       Thread-606812][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:58:12,136 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:58:12,136 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:58:12,137 [DEBUG][       Thread-606812][   transport.py][1871] : userauth is OK
2025-07-01 13:58:12,150 [ INFO][       Thread-606812][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:58:12,150 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:58:12,799 [DEBUG][       Thread-606812][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:58:12,799 [DEBUG][       Thread-606812][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:58:12,840 [DEBUG][       Thread-606812][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:58:12,840 [DEBUG][       Thread-606812][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:58:12,843 [DEBUG][       Thread-606812][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:58:12,854 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:58:12,854 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:58:12,856 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:58:12,857 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:58:12,860 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:58:12,861 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:58:12,861 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:58:12,861 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:58:12,861 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.498205 -999.00  +13.50  37.35     51   +3.60 1 1 2 1 1   887    0 9.18 -13.72 ----- 34.7 37.4 31.2 51.3 16.0 -23.3 15.3 -24.5 15.3 -23.0 16.1 -21.9
2025-07-01 13:58:12,861 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:58:12,861 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:58:12,861 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.498205
2025-07-01 13:58:12,861 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:58:12,861 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:58:12,861 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:58:12,861 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:58:12,861 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:58:12,862 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:57:59', tmtdew=11.24, humidity=46.57, cloud=0.0, wind=35.71, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:57:24.912', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:58:12,862 [DEBUG][       Thread-606812][   transport.py][1871] : EOF in transport thread
2025-07-01 13:58:12,935 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:58:12,945 [DEBUG][       Thread-606815][   transport.py][1871] : starting thread (client mode): 0x81cb9d0
2025-07-01 13:58:12,945 [DEBUG][       Thread-606815][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:58:12,961 [DEBUG][       Thread-606815][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:58:12,961 [ INFO][       Thread-606815][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:58:12,974 [DEBUG][       Thread-606815][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:58:12,974 [DEBUG][       Thread-606815][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:58:12,974 [DEBUG][       Thread-606815][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:58:12,974 [DEBUG][       Thread-606815][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:58:12,974 [DEBUG][       Thread-606815][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:58:12,974 [DEBUG][       Thread-606815][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:58:12,974 [DEBUG][       Thread-606815][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:58:12,974 [DEBUG][       Thread-606815][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:58:12,974 [DEBUG][       Thread-606815][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:58:12,974 [DEBUG][       Thread-606815][   transport.py][1871] : client lang: <none>
2025-07-01 13:58:12,974 [DEBUG][       Thread-606815][   transport.py][1871] : server lang: <none>
2025-07-01 13:58:12,974 [DEBUG][       Thread-606815][   transport.py][1871] : kex follows: False
2025-07-01 13:58:12,974 [DEBUG][       Thread-606815][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:58:12,974 [DEBUG][       Thread-606815][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:58:12,974 [DEBUG][       Thread-606815][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:58:12,974 [DEBUG][       Thread-606815][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:58:12,974 [DEBUG][       Thread-606815][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:58:12,974 [DEBUG][       Thread-606815][   transport.py][1871] : Compression: none
2025-07-01 13:58:12,974 [DEBUG][       Thread-606815][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:58:13,027 [DEBUG][       Thread-606815][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:58:13,027 [DEBUG][       Thread-606815][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:58:13,027 [DEBUG][       Thread-606815][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:58:13,028 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:58:13,028 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:58:13,083 [DEBUG][       Thread-606815][   transport.py][1871] : userauth is OK
2025-07-01 13:58:13,083 [DEBUG][       Thread-606815][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:58:13,083 [DEBUG][       Thread-606815][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:58:13,083 [DEBUG][       Thread-606815][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:58:13,083 [DEBUG][       Thread-606815][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:58:13,100 [ INFO][       Thread-606815][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:58:13,100 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:58:13,100 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:58:14,120 [DEBUG][       Thread-606815][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:58:14,120 [DEBUG][       Thread-606815][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:58:14,171 [DEBUG][       Thread-606815][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:58:14,171 [DEBUG][       Thread-606815][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:58:14,180 [DEBUG][       Thread-606815][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:58:14,188 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:58:14,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-07-01 13:58:14,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-07-01 13:58:14,204 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:58:14,204 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:58:14,204 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:58:14,212 [DEBUG][       Thread-606815][   transport.py][1871] : EOF in transport thread
2025-07-01 13:58:15,008 [DEBUG][Thread-606817 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:58:24,034 [DEBUG][Thread-606818 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:58:24,214 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:58:24,214 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:58:24,214 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:58:24,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-07-01 13:58:24,679 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 57, 59), 11.24, 46.57, 0.0, 35.71, 13.48, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:58:24,679 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:57:59
2025-07-01 13:58:24,764 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:58:24,770 [DEBUG][       Thread-606819][   transport.py][1871] : starting thread (client mode): 0x81a73d0
2025-07-01 13:58:24,770 [DEBUG][       Thread-606819][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:58:24,791 [DEBUG][       Thread-606819][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:58:24,791 [ INFO][       Thread-606819][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:58:24,794 [DEBUG][       Thread-606819][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:58:24,794 [DEBUG][       Thread-606819][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:58:24,794 [DEBUG][       Thread-606819][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:58:24,794 [DEBUG][       Thread-606819][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:58:24,794 [DEBUG][       Thread-606819][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:58:24,794 [DEBUG][       Thread-606819][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:58:24,794 [DEBUG][       Thread-606819][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:58:24,794 [DEBUG][       Thread-606819][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:58:24,794 [DEBUG][       Thread-606819][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:58:24,794 [DEBUG][       Thread-606819][   transport.py][1871] : client lang: <none>
2025-07-01 13:58:24,794 [DEBUG][       Thread-606819][   transport.py][1871] : server lang: <none>
2025-07-01 13:58:24,794 [DEBUG][       Thread-606819][   transport.py][1871] : kex follows: False
2025-07-01 13:58:24,794 [DEBUG][       Thread-606819][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:58:24,794 [DEBUG][       Thread-606819][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:58:24,794 [DEBUG][       Thread-606819][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:58:24,794 [DEBUG][       Thread-606819][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:58:24,794 [DEBUG][       Thread-606819][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:58:24,794 [DEBUG][       Thread-606819][   transport.py][1871] : Compression: none
2025-07-01 13:58:24,794 [DEBUG][       Thread-606819][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:58:24,819 [DEBUG][       Thread-606819][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:58:24,819 [DEBUG][       Thread-606819][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:58:24,820 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:58:24,820 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:58:24,821 [DEBUG][       Thread-606819][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:58:24,821 [DEBUG][       Thread-606819][   transport.py][1871] : userauth is OK
2025-07-01 13:58:24,846 [ INFO][       Thread-606819][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:58:24,846 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:58:25,601 [DEBUG][       Thread-606819][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:58:25,601 [DEBUG][       Thread-606819][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:58:25,645 [DEBUG][       Thread-606819][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:58:25,645 [DEBUG][       Thread-606819][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:58:25,648 [DEBUG][       Thread-606819][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:58:25,662 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:58:25,662 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:58:25,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:58:25,666 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:58:25,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:58:25,674 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:58:25,674 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:58:25,675 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:58:25,675 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.498205 -999.00  +13.50  37.35     51   +3.60 1 1 2 1 1   887    0 9.18 -13.72 ----- 34.7 37.4 31.2 51.3 16.0 -23.3 15.3 -24.5 15.3 -23.0 16.1 -21.9
2025-07-01 13:58:25,675 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:58:25,675 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:58:25,675 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.498205
2025-07-01 13:58:25,676 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:58:25,676 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:58:25,676 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:58:25,677 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:58:25,677 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:58:25,677 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:57:59', tmtdew=11.24, humidity=46.57, cloud=0.0, wind=35.71, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:57:24.912', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:58:25,678 [DEBUG][       Thread-606819][   transport.py][1871] : EOF in transport thread
2025-07-01 13:58:25,760 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:58:25,772 [DEBUG][       Thread-606822][   transport.py][1871] : starting thread (client mode): 0x818d570
2025-07-01 13:58:25,772 [DEBUG][       Thread-606822][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:58:25,787 [DEBUG][       Thread-606822][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:58:25,787 [ INFO][       Thread-606822][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:58:25,795 [DEBUG][       Thread-606822][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:58:25,795 [DEBUG][       Thread-606822][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:58:25,795 [DEBUG][       Thread-606822][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:58:25,795 [DEBUG][       Thread-606822][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:58:25,795 [DEBUG][       Thread-606822][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:58:25,795 [DEBUG][       Thread-606822][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:58:25,795 [DEBUG][       Thread-606822][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:58:25,795 [DEBUG][       Thread-606822][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:58:25,795 [DEBUG][       Thread-606822][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:58:25,796 [DEBUG][       Thread-606822][   transport.py][1871] : client lang: <none>
2025-07-01 13:58:25,796 [DEBUG][       Thread-606822][   transport.py][1871] : server lang: <none>
2025-07-01 13:58:25,796 [DEBUG][       Thread-606822][   transport.py][1871] : kex follows: False
2025-07-01 13:58:25,796 [DEBUG][       Thread-606822][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:58:25,796 [DEBUG][       Thread-606822][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:58:25,796 [DEBUG][       Thread-606822][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:58:25,796 [DEBUG][       Thread-606822][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:58:25,796 [DEBUG][       Thread-606822][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:58:25,796 [DEBUG][       Thread-606822][   transport.py][1871] : Compression: none
2025-07-01 13:58:25,796 [DEBUG][       Thread-606822][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:58:25,852 [DEBUG][       Thread-606822][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:58:25,852 [DEBUG][       Thread-606822][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:58:25,853 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:58:25,854 [DEBUG][       Thread-606822][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:58:25,854 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:58:25,908 [DEBUG][       Thread-606822][   transport.py][1871] : userauth is OK
2025-07-01 13:58:25,908 [DEBUG][       Thread-606822][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:58:25,909 [DEBUG][       Thread-606822][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:58:25,909 [DEBUG][       Thread-606822][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:58:25,909 [DEBUG][       Thread-606822][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:58:25,929 [ INFO][       Thread-606822][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:58:25,930 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:58:25,930 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:58:26,920 [DEBUG][       Thread-606822][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:58:26,921 [DEBUG][       Thread-606822][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:58:26,968 [DEBUG][       Thread-606822][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:58:26,968 [DEBUG][       Thread-606822][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:58:26,977 [DEBUG][       Thread-606822][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:58:26,986 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:58:26,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-07-01 13:58:26,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-07-01 13:58:27,004 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:58:27,004 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:58:27,005 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:58:27,013 [DEBUG][       Thread-606822][   transport.py][1871] : EOF in transport thread
2025-07-01 13:58:28,657 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:58:28,658 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:58:33,053 [DEBUG][Thread-606824 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:58:33,474 [DEBUG][Thread-606825 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:58:37,008 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:58:37,008 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:58:37,008 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:58:37,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-07-01 13:58:37,485 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 58, 31), 11.27, 46.27, 0.0, 36.98, 13.5, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:58:37,485 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:58:31
2025-07-01 13:58:37,569 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:58:37,574 [DEBUG][       Thread-606826][   transport.py][1871] : starting thread (client mode): 0x818f7f0
2025-07-01 13:58:37,574 [DEBUG][       Thread-606826][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:58:37,595 [DEBUG][       Thread-606826][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:58:37,595 [ INFO][       Thread-606826][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:58:37,598 [DEBUG][       Thread-606826][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:58:37,598 [DEBUG][       Thread-606826][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:58:37,598 [DEBUG][       Thread-606826][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:58:37,598 [DEBUG][       Thread-606826][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:58:37,598 [DEBUG][       Thread-606826][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:58:37,598 [DEBUG][       Thread-606826][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:58:37,598 [DEBUG][       Thread-606826][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:58:37,598 [DEBUG][       Thread-606826][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:58:37,598 [DEBUG][       Thread-606826][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:58:37,598 [DEBUG][       Thread-606826][   transport.py][1871] : client lang: <none>
2025-07-01 13:58:37,598 [DEBUG][       Thread-606826][   transport.py][1871] : server lang: <none>
2025-07-01 13:58:37,598 [DEBUG][       Thread-606826][   transport.py][1871] : kex follows: False
2025-07-01 13:58:37,598 [DEBUG][       Thread-606826][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:58:37,599 [DEBUG][       Thread-606826][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:58:37,599 [DEBUG][       Thread-606826][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:58:37,599 [DEBUG][       Thread-606826][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:58:37,599 [DEBUG][       Thread-606826][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:58:37,599 [DEBUG][       Thread-606826][   transport.py][1871] : Compression: none
2025-07-01 13:58:37,599 [DEBUG][       Thread-606826][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:58:37,616 [DEBUG][       Thread-606826][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:58:37,616 [DEBUG][       Thread-606826][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:58:37,617 [DEBUG][       Thread-606826][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:58:37,617 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:58:37,617 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:58:37,618 [DEBUG][       Thread-606826][   transport.py][1871] : userauth is OK
2025-07-01 13:58:37,631 [ INFO][       Thread-606826][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:58:37,632 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:58:38,243 [DEBUG][       Thread-606826][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:58:38,244 [DEBUG][       Thread-606826][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:58:38,285 [DEBUG][       Thread-606826][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:58:38,285 [DEBUG][       Thread-606826][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:58:38,288 [DEBUG][       Thread-606826][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:58:38,301 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:58:38,301 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:58:38,303 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:58:38,305 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:58:38,310 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:58:38,312 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:58:38,312 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:58:38,313 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:58:38,313 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.498553 -999.00  +13.60  34.54     51   +3.80 1 2 2 1 1   887    0 9.45 -14.44 ----- 28.6 34.5 35.0 41.5 16.1 -23.1 -999.0 -999.0 15.4 -22.4 16.2 -21.2
2025-07-01 13:58:38,313 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:58:38,313 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:58:38,313 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.498553
2025-07-01 13:58:38,314 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:58:38,314 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:58:38,314 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:58:38,314 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:58:38,315 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 13:58:38,315 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:58:31', tmtdew=11.27, humidity=46.27, cloud=0.0, wind=36.98, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:57:54.979', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:58:38,316 [DEBUG][       Thread-606826][   transport.py][1871] : EOF in transport thread
2025-07-01 13:58:38,399 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:58:38,409 [DEBUG][       Thread-606829][   transport.py][1871] : starting thread (client mode): 0x827d540
2025-07-01 13:58:38,409 [DEBUG][       Thread-606829][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:58:38,429 [DEBUG][       Thread-606829][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:58:38,429 [ INFO][       Thread-606829][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:58:38,437 [DEBUG][       Thread-606829][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:58:38,437 [DEBUG][       Thread-606829][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:58:38,437 [DEBUG][       Thread-606829][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:58:38,437 [DEBUG][       Thread-606829][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:58:38,437 [DEBUG][       Thread-606829][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:58:38,437 [DEBUG][       Thread-606829][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:58:38,437 [DEBUG][       Thread-606829][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:58:38,437 [DEBUG][       Thread-606829][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:58:38,437 [DEBUG][       Thread-606829][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:58:38,438 [DEBUG][       Thread-606829][   transport.py][1871] : client lang: <none>
2025-07-01 13:58:38,438 [DEBUG][       Thread-606829][   transport.py][1871] : server lang: <none>
2025-07-01 13:58:38,438 [DEBUG][       Thread-606829][   transport.py][1871] : kex follows: False
2025-07-01 13:58:38,438 [DEBUG][       Thread-606829][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:58:38,438 [DEBUG][       Thread-606829][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:58:38,438 [DEBUG][       Thread-606829][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:58:38,438 [DEBUG][       Thread-606829][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:58:38,438 [DEBUG][       Thread-606829][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:58:38,439 [DEBUG][       Thread-606829][   transport.py][1871] : Compression: none
2025-07-01 13:58:38,439 [DEBUG][       Thread-606829][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:58:38,495 [DEBUG][       Thread-606829][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:58:38,496 [DEBUG][       Thread-606829][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:58:38,497 [DEBUG][       Thread-606829][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:58:38,497 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:58:38,498 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:58:38,553 [DEBUG][       Thread-606829][   transport.py][1871] : userauth is OK
2025-07-01 13:58:38,553 [DEBUG][       Thread-606829][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:58:38,553 [DEBUG][       Thread-606829][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:58:38,553 [DEBUG][       Thread-606829][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:58:38,554 [DEBUG][       Thread-606829][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:58:38,576 [ INFO][       Thread-606829][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:58:38,577 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:58:38,577 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:58:39,610 [DEBUG][       Thread-606829][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:58:39,610 [DEBUG][       Thread-606829][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:58:39,660 [DEBUG][       Thread-606829][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:58:39,660 [DEBUG][       Thread-606829][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:58:39,669 [DEBUG][       Thread-606829][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:58:39,678 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:58:39,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-07-01 13:58:39,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-07-01 13:58:39,696 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:58:39,697 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:58:39,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:58:39,710 [DEBUG][       Thread-606829][   transport.py][1871] : EOF in transport thread
2025-07-01 13:58:42,073 [DEBUG][Thread-606831 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:58:49,707 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:58:49,708 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:58:49,708 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:58:49,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-07-01 13:58:50,209 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 58, 31), 11.27, 46.27, 0.0, 36.98, 13.5, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:58:50,209 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:58:31
2025-07-01 13:58:50,298 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:58:50,304 [DEBUG][       Thread-606832][   transport.py][1871] : starting thread (client mode): 0x8170190
2025-07-01 13:58:50,305 [DEBUG][       Thread-606832][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:58:50,325 [DEBUG][       Thread-606832][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:58:50,325 [ INFO][       Thread-606832][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:58:50,329 [DEBUG][       Thread-606832][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:58:50,329 [DEBUG][       Thread-606832][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:58:50,329 [DEBUG][       Thread-606832][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:58:50,329 [DEBUG][       Thread-606832][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:58:50,329 [DEBUG][       Thread-606832][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:58:50,329 [DEBUG][       Thread-606832][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:58:50,329 [DEBUG][       Thread-606832][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:58:50,329 [DEBUG][       Thread-606832][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:58:50,329 [DEBUG][       Thread-606832][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:58:50,329 [DEBUG][       Thread-606832][   transport.py][1871] : client lang: <none>
2025-07-01 13:58:50,329 [DEBUG][       Thread-606832][   transport.py][1871] : server lang: <none>
2025-07-01 13:58:50,329 [DEBUG][       Thread-606832][   transport.py][1871] : kex follows: False
2025-07-01 13:58:50,329 [DEBUG][       Thread-606832][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:58:50,329 [DEBUG][       Thread-606832][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:58:50,329 [DEBUG][       Thread-606832][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:58:50,329 [DEBUG][       Thread-606832][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:58:50,329 [DEBUG][       Thread-606832][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:58:50,329 [DEBUG][       Thread-606832][   transport.py][1871] : Compression: none
2025-07-01 13:58:50,329 [DEBUG][       Thread-606832][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:58:50,345 [DEBUG][       Thread-606832][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:58:50,345 [DEBUG][       Thread-606832][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:58:50,345 [DEBUG][       Thread-606832][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:58:50,345 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:58:50,345 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:58:50,346 [DEBUG][       Thread-606832][   transport.py][1871] : userauth is OK
2025-07-01 13:58:50,370 [ INFO][       Thread-606832][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:58:50,370 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:58:51,104 [DEBUG][Thread-606834 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:58:51,194 [DEBUG][       Thread-606832][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:58:51,194 [DEBUG][       Thread-606832][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:58:51,236 [DEBUG][       Thread-606832][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:58:51,236 [DEBUG][       Thread-606832][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:58:51,239 [DEBUG][       Thread-606832][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:58:51,251 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:58:51,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:58:51,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:58:51,253 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:58:51,256 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:58:51,257 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:58:51,257 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:58:51,257 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:58:51,257 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.498553 -999.00  +13.60  34.54     51   +3.80 1 2 2 1 1   887    0 9.45 -14.44 ----- 28.6 34.5 35.0 41.5 16.1 -23.1 -999.0 -999.0 15.4 -22.4 16.2 -21.2
2025-07-01 13:58:51,257 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:58:51,257 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:58:51,257 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.498553
2025-07-01 13:58:51,257 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:58:51,257 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:58:51,257 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:58:51,257 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:58:51,257 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 13:58:51,257 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:58:31', tmtdew=11.27, humidity=46.27, cloud=0.0, wind=36.98, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:57:54.979', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:58:51,258 [DEBUG][       Thread-606832][   transport.py][1871] : EOF in transport thread
2025-07-01 13:58:51,329 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:58:51,340 [DEBUG][       Thread-606836][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 13:58:51,340 [DEBUG][       Thread-606836][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:58:51,355 [DEBUG][       Thread-606836][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:58:51,355 [ INFO][       Thread-606836][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:58:51,363 [DEBUG][       Thread-606836][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:58:51,363 [DEBUG][       Thread-606836][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:58:51,363 [DEBUG][       Thread-606836][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:58:51,363 [DEBUG][       Thread-606836][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:58:51,363 [DEBUG][       Thread-606836][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:58:51,363 [DEBUG][       Thread-606836][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:58:51,363 [DEBUG][       Thread-606836][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:58:51,363 [DEBUG][       Thread-606836][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:58:51,363 [DEBUG][       Thread-606836][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:58:51,363 [DEBUG][       Thread-606836][   transport.py][1871] : client lang: <none>
2025-07-01 13:58:51,363 [DEBUG][       Thread-606836][   transport.py][1871] : server lang: <none>
2025-07-01 13:58:51,363 [DEBUG][       Thread-606836][   transport.py][1871] : kex follows: False
2025-07-01 13:58:51,363 [DEBUG][       Thread-606836][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:58:51,363 [DEBUG][       Thread-606836][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:58:51,363 [DEBUG][       Thread-606836][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:58:51,363 [DEBUG][       Thread-606836][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:58:51,363 [DEBUG][       Thread-606836][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:58:51,363 [DEBUG][       Thread-606836][   transport.py][1871] : Compression: none
2025-07-01 13:58:51,363 [DEBUG][       Thread-606836][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:58:51,424 [DEBUG][       Thread-606836][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:58:51,424 [DEBUG][       Thread-606836][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:58:51,424 [DEBUG][       Thread-606836][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:58:51,424 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:58:51,425 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:58:51,480 [DEBUG][       Thread-606836][   transport.py][1871] : userauth is OK
2025-07-01 13:58:51,480 [DEBUG][       Thread-606836][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:58:51,480 [DEBUG][       Thread-606836][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:58:51,480 [DEBUG][       Thread-606836][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:58:51,480 [DEBUG][       Thread-606836][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:58:51,494 [ INFO][       Thread-606836][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:58:51,494 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:58:51,494 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:58:52,478 [DEBUG][       Thread-606836][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:58:52,478 [DEBUG][       Thread-606836][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:58:52,527 [DEBUG][       Thread-606836][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:58:52,527 [DEBUG][       Thread-606836][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:58:52,536 [DEBUG][       Thread-606836][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:58:52,544 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:58:52,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-07-01 13:58:52,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-07-01 13:58:52,560 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:58:52,560 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:58:52,560 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:58:52,568 [DEBUG][       Thread-606836][   transport.py][1871] : EOF in transport thread
2025-07-01 13:59:00,124 [DEBUG][Thread-606838 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:59:02,571 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:59:02,571 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:59:02,571 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:59:02,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-07-01 13:59:03,024 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 58, 31), 11.27, 46.27, 0.0, 36.98, 13.5, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:59:03,024 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:58:31
2025-07-01 13:59:03,109 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:59:03,112 [DEBUG][       Thread-606839][   transport.py][1871] : starting thread (client mode): 0x8171c30
2025-07-01 13:59:03,113 [DEBUG][       Thread-606839][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:59:03,132 [DEBUG][       Thread-606839][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:59:03,132 [ INFO][       Thread-606839][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:59:03,135 [DEBUG][       Thread-606839][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:59:03,136 [DEBUG][       Thread-606839][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:59:03,136 [DEBUG][       Thread-606839][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:59:03,136 [DEBUG][       Thread-606839][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:59:03,136 [DEBUG][       Thread-606839][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:59:03,136 [DEBUG][       Thread-606839][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:59:03,136 [DEBUG][       Thread-606839][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:59:03,136 [DEBUG][       Thread-606839][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:59:03,136 [DEBUG][       Thread-606839][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:59:03,136 [DEBUG][       Thread-606839][   transport.py][1871] : client lang: <none>
2025-07-01 13:59:03,136 [DEBUG][       Thread-606839][   transport.py][1871] : server lang: <none>
2025-07-01 13:59:03,136 [DEBUG][       Thread-606839][   transport.py][1871] : kex follows: False
2025-07-01 13:59:03,136 [DEBUG][       Thread-606839][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:59:03,136 [DEBUG][       Thread-606839][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:59:03,136 [DEBUG][       Thread-606839][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:59:03,136 [DEBUG][       Thread-606839][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:59:03,136 [DEBUG][       Thread-606839][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:59:03,136 [DEBUG][       Thread-606839][   transport.py][1871] : Compression: none
2025-07-01 13:59:03,136 [DEBUG][       Thread-606839][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:59:03,155 [DEBUG][       Thread-606839][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:59:03,156 [DEBUG][       Thread-606839][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:59:03,156 [DEBUG][       Thread-606839][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:59:03,156 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:59:03,156 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:59:03,157 [DEBUG][       Thread-606839][   transport.py][1871] : userauth is OK
2025-07-01 13:59:03,170 [ INFO][       Thread-606839][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:59:03,171 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:59:03,829 [DEBUG][       Thread-606839][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:59:03,829 [DEBUG][       Thread-606839][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:59:03,872 [DEBUG][       Thread-606839][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:59:03,872 [DEBUG][       Thread-606839][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:59:03,875 [DEBUG][       Thread-606839][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:59:03,887 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:59:03,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:59:03,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:59:03,889 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:59:03,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:59:03,892 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:59:03,892 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:59:03,892 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:59:03,892 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.499247 -999.00  +13.60  29.82     51   +3.70 1 1 1 1 1   887    0 8.99 -11.55 ----- 34.7 29.8 27.6 59.9 16.1 -23.0 15.3 -24.8 15.5 -22.5 16.2 -21.5
2025-07-01 13:59:03,892 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:59:03,892 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:59:03,892 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.499247
2025-07-01 13:59:03,892 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:59:03,893 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:59:03,893 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:59:03,893 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:59:03,893 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:59:03,893 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:58:31', tmtdew=11.27, humidity=46.27, cloud=0.0, wind=36.98, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:58:54.941', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:59:03,893 [DEBUG][       Thread-606839][   transport.py][1871] : EOF in transport thread
2025-07-01 13:59:03,967 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:59:03,977 [DEBUG][       Thread-606842][   transport.py][1871] : starting thread (client mode): 0x81a5090
2025-07-01 13:59:03,977 [DEBUG][       Thread-606842][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:59:03,991 [DEBUG][       Thread-606842][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:59:03,991 [ INFO][       Thread-606842][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:59:03,999 [DEBUG][       Thread-606842][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:59:03,999 [DEBUG][       Thread-606842][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:59:03,999 [DEBUG][       Thread-606842][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:59:03,999 [DEBUG][       Thread-606842][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:59:03,999 [DEBUG][       Thread-606842][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:59:03,999 [DEBUG][       Thread-606842][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:59:03,999 [DEBUG][       Thread-606842][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:59:03,999 [DEBUG][       Thread-606842][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:59:03,999 [DEBUG][       Thread-606842][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:59:03,999 [DEBUG][       Thread-606842][   transport.py][1871] : client lang: <none>
2025-07-01 13:59:03,999 [DEBUG][       Thread-606842][   transport.py][1871] : server lang: <none>
2025-07-01 13:59:03,999 [DEBUG][       Thread-606842][   transport.py][1871] : kex follows: False
2025-07-01 13:59:03,999 [DEBUG][       Thread-606842][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:59:03,999 [DEBUG][       Thread-606842][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:59:03,999 [DEBUG][       Thread-606842][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:59:03,999 [DEBUG][       Thread-606842][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:59:03,999 [DEBUG][       Thread-606842][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:59:03,999 [DEBUG][       Thread-606842][   transport.py][1871] : Compression: none
2025-07-01 13:59:03,999 [DEBUG][       Thread-606842][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:59:04,055 [DEBUG][       Thread-606842][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:59:04,055 [DEBUG][       Thread-606842][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:59:04,056 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:59:04,056 [DEBUG][       Thread-606842][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:59:04,056 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:59:04,118 [DEBUG][       Thread-606842][   transport.py][1871] : userauth is OK
2025-07-01 13:59:04,118 [DEBUG][       Thread-606842][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:59:04,118 [DEBUG][       Thread-606842][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:59:04,118 [DEBUG][       Thread-606842][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:59:04,118 [DEBUG][       Thread-606842][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:59:04,132 [ INFO][       Thread-606842][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:59:04,132 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:59:04,132 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:59:05,181 [DEBUG][       Thread-606842][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:59:05,182 [DEBUG][       Thread-606842][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:59:05,231 [DEBUG][       Thread-606842][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:59:05,232 [DEBUG][       Thread-606842][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:59:05,240 [DEBUG][       Thread-606842][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:59:05,248 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:59:05,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-07-01 13:59:05,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') -> 00000000
2025-07-01 13:59:05,265 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:59:05,266 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:59:05,266 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:59:05,274 [DEBUG][       Thread-606842][   transport.py][1871] : EOF in transport thread
2025-07-01 13:59:09,145 [DEBUG][Thread-606844 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:59:15,276 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:59:15,277 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:59:15,277 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:59:15,280 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:59:15,754 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 59, 2), 11.32, 46.12, 0.0, 37.86, 13.54, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:59:15,754 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:59:02
2025-07-01 13:59:15,839 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:59:15,845 [DEBUG][       Thread-606845][   transport.py][1871] : starting thread (client mode): 0x8173550
2025-07-01 13:59:15,845 [DEBUG][       Thread-606845][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:59:15,866 [DEBUG][       Thread-606845][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:59:15,866 [ INFO][       Thread-606845][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:59:15,870 [DEBUG][       Thread-606845][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:59:15,870 [DEBUG][       Thread-606845][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:59:15,870 [DEBUG][       Thread-606845][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:59:15,870 [DEBUG][       Thread-606845][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:59:15,871 [DEBUG][       Thread-606845][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:59:15,871 [DEBUG][       Thread-606845][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:59:15,871 [DEBUG][       Thread-606845][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:59:15,871 [DEBUG][       Thread-606845][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:59:15,871 [DEBUG][       Thread-606845][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:59:15,871 [DEBUG][       Thread-606845][   transport.py][1871] : client lang: <none>
2025-07-01 13:59:15,871 [DEBUG][       Thread-606845][   transport.py][1871] : server lang: <none>
2025-07-01 13:59:15,871 [DEBUG][       Thread-606845][   transport.py][1871] : kex follows: False
2025-07-01 13:59:15,871 [DEBUG][       Thread-606845][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:59:15,871 [DEBUG][       Thread-606845][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:59:15,871 [DEBUG][       Thread-606845][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:59:15,871 [DEBUG][       Thread-606845][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:59:15,871 [DEBUG][       Thread-606845][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:59:15,871 [DEBUG][       Thread-606845][   transport.py][1871] : Compression: none
2025-07-01 13:59:15,871 [DEBUG][       Thread-606845][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:59:15,885 [DEBUG][       Thread-606845][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:59:15,886 [DEBUG][       Thread-606845][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:59:15,886 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:59:15,886 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:59:15,887 [DEBUG][       Thread-606845][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:59:15,887 [DEBUG][       Thread-606845][   transport.py][1871] : userauth is OK
2025-07-01 13:59:15,912 [ INFO][       Thread-606845][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:59:15,913 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:59:16,725 [DEBUG][       Thread-606845][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:59:16,725 [DEBUG][       Thread-606845][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:59:16,769 [DEBUG][       Thread-606845][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:59:16,769 [DEBUG][       Thread-606845][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:59:16,772 [DEBUG][       Thread-606845][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:59:16,784 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:59:16,784 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:59:16,786 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:59:16,788 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:59:16,794 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:59:16,796 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:59:16,796 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:59:16,796 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:59:16,797 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.499247 -999.00  +13.60  29.82     51   +3.70 1 1 1 1 1   887    0 8.99 -11.55 ----- 34.7 29.8 27.6 59.9 16.1 -23.0 15.3 -24.8 15.5 -22.5 16.2 -21.5
2025-07-01 13:59:16,797 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:59:16,797 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:59:16,797 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.499247
2025-07-01 13:59:16,797 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:59:16,798 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:59:16,798 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:59:16,798 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:59:16,798 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:59:16,798 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:59:02', tmtdew=11.32, humidity=46.12, cloud=0.0, wind=37.86, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:58:54.941', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:59:16,799 [DEBUG][       Thread-606845][   transport.py][1871] : EOF in transport thread
2025-07-01 13:59:16,882 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:59:16,894 [DEBUG][       Thread-606848][   transport.py][1871] : starting thread (client mode): 0x818d8a0
2025-07-01 13:59:16,894 [DEBUG][       Thread-606848][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:59:16,914 [DEBUG][       Thread-606848][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:59:16,915 [ INFO][       Thread-606848][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:59:16,922 [DEBUG][       Thread-606848][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:59:16,922 [DEBUG][       Thread-606848][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:59:16,922 [DEBUG][       Thread-606848][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:59:16,922 [DEBUG][       Thread-606848][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:59:16,922 [DEBUG][       Thread-606848][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:59:16,922 [DEBUG][       Thread-606848][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:59:16,922 [DEBUG][       Thread-606848][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:59:16,922 [DEBUG][       Thread-606848][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:59:16,922 [DEBUG][       Thread-606848][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:59:16,922 [DEBUG][       Thread-606848][   transport.py][1871] : client lang: <none>
2025-07-01 13:59:16,923 [DEBUG][       Thread-606848][   transport.py][1871] : server lang: <none>
2025-07-01 13:59:16,923 [DEBUG][       Thread-606848][   transport.py][1871] : kex follows: False
2025-07-01 13:59:16,923 [DEBUG][       Thread-606848][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:59:16,923 [DEBUG][       Thread-606848][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:59:16,923 [DEBUG][       Thread-606848][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:59:16,923 [DEBUG][       Thread-606848][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:59:16,923 [DEBUG][       Thread-606848][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:59:16,923 [DEBUG][       Thread-606848][   transport.py][1871] : Compression: none
2025-07-01 13:59:16,923 [DEBUG][       Thread-606848][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:59:16,981 [DEBUG][       Thread-606848][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:59:16,982 [DEBUG][       Thread-606848][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:59:16,982 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:59:16,983 [DEBUG][       Thread-606848][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:59:16,984 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:59:17,037 [DEBUG][       Thread-606848][   transport.py][1871] : userauth is OK
2025-07-01 13:59:17,037 [DEBUG][       Thread-606848][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:59:17,037 [DEBUG][       Thread-606848][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:59:17,037 [DEBUG][       Thread-606848][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:59:17,038 [DEBUG][       Thread-606848][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:59:17,059 [ INFO][       Thread-606848][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:59:17,059 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:59:17,060 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:59:18,067 [DEBUG][       Thread-606848][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:59:18,068 [DEBUG][       Thread-606848][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:59:18,116 [DEBUG][       Thread-606848][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:59:18,116 [DEBUG][       Thread-606848][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:59:18,131 [DEBUG][       Thread-606848][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:59:18,140 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:59:18,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-07-01 13:59:18,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-07-01 13:59:18,158 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:59:18,159 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:59:18,159 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:59:18,167 [DEBUG][       Thread-606848][   transport.py][1871] : EOF in transport thread
2025-07-01 13:59:18,179 [DEBUG][Thread-606850 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:59:27,213 [DEBUG][Thread-606851 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:59:28,168 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:59:28,168 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:59:28,168 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:59:28,169 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 13:59:28,658 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 59, 2), 11.32, 46.12, 0.0, 37.86, 13.54, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:59:28,658 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:59:02
2025-07-01 13:59:28,745 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:59:28,750 [DEBUG][       Thread-606852][   transport.py][1871] : starting thread (client mode): 0x8172320
2025-07-01 13:59:28,751 [DEBUG][       Thread-606852][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:59:28,769 [DEBUG][       Thread-606852][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:59:28,769 [ INFO][       Thread-606852][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:59:28,772 [DEBUG][       Thread-606852][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:59:28,772 [DEBUG][       Thread-606852][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:59:28,772 [DEBUG][       Thread-606852][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:59:28,772 [DEBUG][       Thread-606852][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:59:28,772 [DEBUG][       Thread-606852][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:59:28,772 [DEBUG][       Thread-606852][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:59:28,772 [DEBUG][       Thread-606852][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:59:28,772 [DEBUG][       Thread-606852][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:59:28,772 [DEBUG][       Thread-606852][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:59:28,772 [DEBUG][       Thread-606852][   transport.py][1871] : client lang: <none>
2025-07-01 13:59:28,772 [DEBUG][       Thread-606852][   transport.py][1871] : server lang: <none>
2025-07-01 13:59:28,772 [DEBUG][       Thread-606852][   transport.py][1871] : kex follows: False
2025-07-01 13:59:28,772 [DEBUG][       Thread-606852][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:59:28,772 [DEBUG][       Thread-606852][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:59:28,772 [DEBUG][       Thread-606852][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:59:28,772 [DEBUG][       Thread-606852][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:59:28,772 [DEBUG][       Thread-606852][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:59:28,772 [DEBUG][       Thread-606852][   transport.py][1871] : Compression: none
2025-07-01 13:59:28,772 [DEBUG][       Thread-606852][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:59:28,790 [DEBUG][       Thread-606852][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:59:28,790 [DEBUG][       Thread-606852][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:59:28,790 [DEBUG][       Thread-606852][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:59:28,791 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:59:28,791 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:59:28,791 [DEBUG][       Thread-606852][   transport.py][1871] : userauth is OK
2025-07-01 13:59:28,796 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:59:28,796 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:59:28,815 [ INFO][       Thread-606852][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:59:28,815 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:59:29,657 [DEBUG][       Thread-606852][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:59:29,657 [DEBUG][       Thread-606852][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:59:29,701 [DEBUG][       Thread-606852][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:59:29,701 [DEBUG][       Thread-606852][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:59:29,703 [DEBUG][       Thread-606852][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:59:29,714 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:59:29,715 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:59:29,716 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:59:29,717 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:59:29,720 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:59:29,721 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:59:29,721 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:59:29,721 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:59:29,721 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.499247 -999.00  +13.60  29.82     51   +3.70 1 1 1 1 1   887    0 8.99 -11.55 ----- 34.7 29.8 27.6 59.9 16.1 -23.0 15.3 -24.8 15.5 -22.5 16.2 -21.5
2025-07-01 13:59:29,721 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:59:29,721 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:59:29,721 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.499247
2025-07-01 13:59:29,721 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:59:29,721 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:59:29,721 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:59:29,721 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:59:29,721 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:59:29,721 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:59:02', tmtdew=11.32, humidity=46.12, cloud=0.0, wind=37.86, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:58:54.941', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:59:29,722 [DEBUG][       Thread-606852][   transport.py][1871] : EOF in transport thread
2025-07-01 13:59:29,795 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:59:29,807 [DEBUG][       Thread-606855][   transport.py][1871] : starting thread (client mode): 0x81e5810
2025-07-01 13:59:29,807 [DEBUG][       Thread-606855][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:59:29,822 [DEBUG][       Thread-606855][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:59:29,822 [ INFO][       Thread-606855][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:59:29,830 [DEBUG][       Thread-606855][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:59:29,830 [DEBUG][       Thread-606855][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:59:29,830 [DEBUG][       Thread-606855][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:59:29,830 [DEBUG][       Thread-606855][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:59:29,830 [DEBUG][       Thread-606855][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:59:29,830 [DEBUG][       Thread-606855][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:59:29,830 [DEBUG][       Thread-606855][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:59:29,830 [DEBUG][       Thread-606855][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:59:29,830 [DEBUG][       Thread-606855][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:59:29,830 [DEBUG][       Thread-606855][   transport.py][1871] : client lang: <none>
2025-07-01 13:59:29,830 [DEBUG][       Thread-606855][   transport.py][1871] : server lang: <none>
2025-07-01 13:59:29,830 [DEBUG][       Thread-606855][   transport.py][1871] : kex follows: False
2025-07-01 13:59:29,830 [DEBUG][       Thread-606855][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:59:29,830 [DEBUG][       Thread-606855][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:59:29,830 [DEBUG][       Thread-606855][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:59:29,830 [DEBUG][       Thread-606855][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:59:29,830 [DEBUG][       Thread-606855][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:59:29,830 [DEBUG][       Thread-606855][   transport.py][1871] : Compression: none
2025-07-01 13:59:29,830 [DEBUG][       Thread-606855][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:59:29,887 [DEBUG][       Thread-606855][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:59:29,887 [DEBUG][       Thread-606855][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:59:29,888 [DEBUG][       Thread-606855][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:59:29,888 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:59:29,888 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:59:29,945 [DEBUG][       Thread-606855][   transport.py][1871] : userauth is OK
2025-07-01 13:59:29,945 [DEBUG][       Thread-606855][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:59:29,945 [DEBUG][       Thread-606855][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:59:29,945 [DEBUG][       Thread-606855][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:59:29,945 [DEBUG][       Thread-606855][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:59:29,959 [ INFO][       Thread-606855][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:59:29,959 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:59:29,960 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:59:31,013 [DEBUG][       Thread-606855][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:59:31,014 [DEBUG][       Thread-606855][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:59:31,063 [DEBUG][       Thread-606855][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:59:31,063 [DEBUG][       Thread-606855][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:59:31,072 [DEBUG][       Thread-606855][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:59:31,080 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:59: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')
2025-07-01 13:59:31,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-07-01 13:59:31,096 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:59:31,096 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:59:31,096 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:59:31,104 [DEBUG][       Thread-606855][   transport.py][1871] : EOF in transport thread
2025-07-01 13:59:33,523 [DEBUG][Thread-606857 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:59:36,230 [DEBUG][Thread-606858 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:59:41,106 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:59:41,106 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:59:41,106 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:59:41,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-07-01 13:59:41,601 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 59, 34), 11.32, 46.35, 0.0, 39.24, 13.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:59:41,601 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:59:34
2025-07-01 13:59:41,687 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:59:41,691 [DEBUG][       Thread-606859][   transport.py][1871] : starting thread (client mode): 0x81a5630
2025-07-01 13:59:41,691 [DEBUG][       Thread-606859][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:59:41,712 [DEBUG][       Thread-606859][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:59:41,712 [ INFO][       Thread-606859][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:59:41,715 [DEBUG][       Thread-606859][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:59:41,715 [DEBUG][       Thread-606859][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:59:41,715 [DEBUG][       Thread-606859][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:59:41,715 [DEBUG][       Thread-606859][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:59:41,715 [DEBUG][       Thread-606859][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:59:41,715 [DEBUG][       Thread-606859][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:59:41,716 [DEBUG][       Thread-606859][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:59:41,716 [DEBUG][       Thread-606859][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:59:41,716 [DEBUG][       Thread-606859][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:59:41,716 [DEBUG][       Thread-606859][   transport.py][1871] : client lang: <none>
2025-07-01 13:59:41,716 [DEBUG][       Thread-606859][   transport.py][1871] : server lang: <none>
2025-07-01 13:59:41,716 [DEBUG][       Thread-606859][   transport.py][1871] : kex follows: False
2025-07-01 13:59:41,716 [DEBUG][       Thread-606859][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:59:41,716 [DEBUG][       Thread-606859][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:59:41,716 [DEBUG][       Thread-606859][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:59:41,716 [DEBUG][       Thread-606859][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:59:41,716 [DEBUG][       Thread-606859][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:59:41,716 [DEBUG][       Thread-606859][   transport.py][1871] : Compression: none
2025-07-01 13:59:41,716 [DEBUG][       Thread-606859][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:59:41,732 [DEBUG][       Thread-606859][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:59:41,733 [DEBUG][       Thread-606859][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:59:41,733 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:59:41,733 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:59:41,734 [DEBUG][       Thread-606859][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:59:41,735 [DEBUG][       Thread-606859][   transport.py][1871] : userauth is OK
2025-07-01 13:59:41,748 [ INFO][       Thread-606859][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:59:41,748 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:59:42,386 [DEBUG][       Thread-606859][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:59:42,387 [DEBUG][       Thread-606859][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:59:42,429 [DEBUG][       Thread-606859][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:59:42,429 [DEBUG][       Thread-606859][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:59:42,432 [DEBUG][       Thread-606859][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:59:42,446 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:59:42,446 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:59:42,448 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:59:42,450 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:59:42,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:59:42,458 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:59:42,458 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:59:42,458 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:59:42,459 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.499594 -999.00  +13.70  34.88     51   +3.70 1 1 2 1 1   887    0 9.46 -11.95 ----- 44.7 34.9 18.6 41.6 16.2 -23.6 15.4 -23.9 15.5 -22.5 16.2 -21.1
2025-07-01 13:59:42,459 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:59:42,459 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:59:42,459 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.499594
2025-07-01 13:59:42,459 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:59:42,460 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:59:42,460 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:59:42,460 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:59:42,460 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:59:42,460 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:59:34', tmtdew=11.32, humidity=46.35, cloud=0.0, wind=39.24, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:59:24.922', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:59:42,461 [DEBUG][       Thread-606859][   transport.py][1871] : EOF in transport thread
2025-07-01 13:59:42,544 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:59:42,553 [DEBUG][       Thread-606862][   transport.py][1871] : starting thread (client mode): 0x82b2620
2025-07-01 13:59:42,553 [DEBUG][       Thread-606862][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:59:42,569 [DEBUG][       Thread-606862][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:59:42,569 [ INFO][       Thread-606862][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:59:42,576 [DEBUG][       Thread-606862][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:59:42,577 [DEBUG][       Thread-606862][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:59:42,577 [DEBUG][       Thread-606862][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:59:42,577 [DEBUG][       Thread-606862][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:59:42,577 [DEBUG][       Thread-606862][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:59:42,577 [DEBUG][       Thread-606862][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:59:42,577 [DEBUG][       Thread-606862][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:59:42,577 [DEBUG][       Thread-606862][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:59:42,577 [DEBUG][       Thread-606862][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:59:42,577 [DEBUG][       Thread-606862][   transport.py][1871] : client lang: <none>
2025-07-01 13:59:42,577 [DEBUG][       Thread-606862][   transport.py][1871] : server lang: <none>
2025-07-01 13:59:42,577 [DEBUG][       Thread-606862][   transport.py][1871] : kex follows: False
2025-07-01 13:59:42,577 [DEBUG][       Thread-606862][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:59:42,577 [DEBUG][       Thread-606862][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:59:42,577 [DEBUG][       Thread-606862][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:59:42,577 [DEBUG][       Thread-606862][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:59:42,577 [DEBUG][       Thread-606862][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:59:42,577 [DEBUG][       Thread-606862][   transport.py][1871] : Compression: none
2025-07-01 13:59:42,577 [DEBUG][       Thread-606862][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:59:42,633 [DEBUG][       Thread-606862][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:59:42,634 [DEBUG][       Thread-606862][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:59:42,635 [DEBUG][       Thread-606862][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:59:42,635 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:59:42,636 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:59:42,689 [DEBUG][       Thread-606862][   transport.py][1871] : userauth is OK
2025-07-01 13:59:42,690 [DEBUG][       Thread-606862][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:59:42,690 [DEBUG][       Thread-606862][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:59:42,690 [DEBUG][       Thread-606862][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:59:42,690 [DEBUG][       Thread-606862][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:59:42,710 [ INFO][       Thread-606862][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:59:42,710 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:59:42,711 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:59:43,727 [DEBUG][       Thread-606862][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:59:43,728 [DEBUG][       Thread-606862][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:59:43,776 [DEBUG][       Thread-606862][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:59:43,776 [DEBUG][       Thread-606862][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:59:43,785 [DEBUG][       Thread-606862][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:59:43,794 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:59:43,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-07-01 13:59:43,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-07-01 13:59:43,811 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:59:43,811 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:59:43,811 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:59:43,819 [DEBUG][       Thread-606862][   transport.py][1871] : EOF in transport thread
2025-07-01 13:59:45,250 [DEBUG][Thread-606864 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:59:53,822 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 13:59:53,822 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 13:59:53,822 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 13:59:53,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-07-01 13:59:54,283 [DEBUG][Thread-606865 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 13:59:54,296 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 59, 34), 11.32, 46.35, 0.0, 39.24, 13.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 13:59:54,296 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:59:34
2025-07-01 13:59:54,381 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 13:59:54,385 [DEBUG][       Thread-606866][   transport.py][1871] : starting thread (client mode): 0x81d8970
2025-07-01 13:59:54,385 [DEBUG][       Thread-606866][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:59:54,406 [DEBUG][       Thread-606866][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 13:59:54,406 [ INFO][       Thread-606866][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 13:59:54,409 [DEBUG][       Thread-606866][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:59:54,409 [DEBUG][       Thread-606866][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 13:59:54,409 [DEBUG][       Thread-606866][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:59:54,409 [DEBUG][       Thread-606866][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:59:54,409 [DEBUG][       Thread-606866][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:59:54,409 [DEBUG][       Thread-606866][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:59:54,409 [DEBUG][       Thread-606866][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:59:54,409 [DEBUG][       Thread-606866][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:59:54,409 [DEBUG][       Thread-606866][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:59:54,409 [DEBUG][       Thread-606866][   transport.py][1871] : client lang: <none>
2025-07-01 13:59:54,409 [DEBUG][       Thread-606866][   transport.py][1871] : server lang: <none>
2025-07-01 13:59:54,409 [DEBUG][       Thread-606866][   transport.py][1871] : kex follows: False
2025-07-01 13:59:54,409 [DEBUG][       Thread-606866][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:59:54,410 [DEBUG][       Thread-606866][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:59:54,410 [DEBUG][       Thread-606866][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:59:54,410 [DEBUG][       Thread-606866][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:59:54,410 [DEBUG][       Thread-606866][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:59:54,410 [DEBUG][       Thread-606866][   transport.py][1871] : Compression: none
2025-07-01 13:59:54,410 [DEBUG][       Thread-606866][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:59:54,426 [DEBUG][       Thread-606866][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:59:54,427 [DEBUG][       Thread-606866][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:59:54,427 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 13:59:54,427 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 13:59:54,428 [DEBUG][       Thread-606866][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 13:59:54,428 [DEBUG][       Thread-606866][   transport.py][1871] : userauth is OK
2025-07-01 13:59:54,453 [ INFO][       Thread-606866][   transport.py][1871] : Authentication (password) successful!
2025-07-01 13:59:54,454 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:59:55,301 [DEBUG][       Thread-606866][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:59:55,301 [DEBUG][       Thread-606866][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:59:55,345 [DEBUG][       Thread-606866][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:59:55,345 [DEBUG][       Thread-606866][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:59:55,348 [DEBUG][       Thread-606866][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:59:55,359 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:59:55,360 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 13:59:55,361 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 13:59:55,363 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 13:59:55,368 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:59:55,369 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:59:55,370 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:59:55,370 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 13:59:55,370 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.499594 -999.00  +13.70  34.88     51   +3.70 1 1 2 1 1   887    0 9.46 -11.95 ----- 44.7 34.9 18.6 41.6 16.2 -23.6 15.4 -23.9 15.5 -22.5 16.2 -21.1
2025-07-01 13:59:55,370 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 13:59:55,370 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 13:59:55,370 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.499594
2025-07-01 13:59:55,371 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 13:59:55,371 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 13:59:55,371 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 13:59:55,371 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 13:59:55,372 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 13:59:55,372 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:59:34', tmtdew=11.32, humidity=46.35, cloud=0.0, wind=39.24, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:59:24.922', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 13:59:55,373 [DEBUG][       Thread-606866][   transport.py][1871] : EOF in transport thread
2025-07-01 13:59:55,456 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 13:59:55,467 [DEBUG][       Thread-606869][   transport.py][1871] : starting thread (client mode): 0x4701ec20
2025-07-01 13:59:55,467 [DEBUG][       Thread-606869][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 13:59:55,483 [DEBUG][       Thread-606869][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 13:59:55,483 [ INFO][       Thread-606869][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 13:59:55,490 [DEBUG][       Thread-606869][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 13:59:55,491 [DEBUG][       Thread-606869][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 13:59:55,491 [DEBUG][       Thread-606869][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 13:59:55,491 [DEBUG][       Thread-606869][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:59:55,491 [DEBUG][       Thread-606869][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 13:59:55,491 [DEBUG][       Thread-606869][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:59:55,491 [DEBUG][       Thread-606869][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 13:59:55,491 [DEBUG][       Thread-606869][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 13:59:55,491 [DEBUG][       Thread-606869][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 13:59:55,491 [DEBUG][       Thread-606869][   transport.py][1871] : client lang: <none>
2025-07-01 13:59:55,491 [DEBUG][       Thread-606869][   transport.py][1871] : server lang: <none>
2025-07-01 13:59:55,491 [DEBUG][       Thread-606869][   transport.py][1871] : kex follows: False
2025-07-01 13:59:55,491 [DEBUG][       Thread-606869][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 13:59:55,491 [DEBUG][       Thread-606869][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 13:59:55,491 [DEBUG][       Thread-606869][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 13:59:55,491 [DEBUG][       Thread-606869][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 13:59:55,491 [DEBUG][       Thread-606869][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 13:59:55,491 [DEBUG][       Thread-606869][   transport.py][1871] : Compression: none
2025-07-01 13:59:55,491 [DEBUG][       Thread-606869][   transport.py][1871] : === End of kex handshake ===
2025-07-01 13:59:55,549 [DEBUG][       Thread-606869][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 13:59:55,549 [DEBUG][       Thread-606869][   transport.py][1871] : Switch to new keys ...
2025-07-01 13:59:55,550 [DEBUG][       Thread-606869][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 13:59:55,550 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 13:59:55,551 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 13:59:55,605 [DEBUG][       Thread-606869][   transport.py][1871] : userauth is OK
2025-07-01 13:59:55,606 [DEBUG][       Thread-606869][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 13:59:55,606 [DEBUG][       Thread-606869][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 13:59:55,606 [DEBUG][       Thread-606869][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 13:59:55,606 [DEBUG][       Thread-606869][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 13:59:55,625 [ INFO][       Thread-606869][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 13:59:55,625 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 13:59:55,626 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 13:59:56,673 [DEBUG][       Thread-606869][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 13:59:56,673 [DEBUG][       Thread-606869][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 13:59:56,723 [DEBUG][       Thread-606869][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 13:59:56,724 [DEBUG][       Thread-606869][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 13:59:56,732 [DEBUG][       Thread-606869][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 13:59:56,741 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 13:59:56,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-07-01 13:59:56,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-07-01 13:59:56,758 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 13:59:56,758 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 13:59:56,758 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 13:59:56,766 [DEBUG][       Thread-606869][   transport.py][1871] : EOF in transport thread
2025-07-01 14:00:03,303 [DEBUG][Thread-606871 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:00:06,768 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:00:06,768 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:00:06,768 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:00:06,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-07-01 14:00:07,271 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 13, 59, 34), 11.32, 46.35, 0.0, 39.24, 13.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:00:07,271 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 13:59:34
2025-07-01 14:00:07,366 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:00:07,370 [DEBUG][       Thread-606872][   transport.py][1871] : starting thread (client mode): 0x75a91e0
2025-07-01 14:00:07,370 [DEBUG][       Thread-606872][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:00:07,392 [DEBUG][       Thread-606872][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:00:07,392 [ INFO][       Thread-606872][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:00:07,394 [DEBUG][       Thread-606872][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:00:07,394 [DEBUG][       Thread-606872][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:00:07,394 [DEBUG][       Thread-606872][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:00:07,394 [DEBUG][       Thread-606872][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:00:07,394 [DEBUG][       Thread-606872][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:00:07,394 [DEBUG][       Thread-606872][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:00:07,394 [DEBUG][       Thread-606872][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:00:07,394 [DEBUG][       Thread-606872][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:00:07,394 [DEBUG][       Thread-606872][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:00:07,394 [DEBUG][       Thread-606872][   transport.py][1871] : client lang: <none>
2025-07-01 14:00:07,394 [DEBUG][       Thread-606872][   transport.py][1871] : server lang: <none>
2025-07-01 14:00:07,394 [DEBUG][       Thread-606872][   transport.py][1871] : kex follows: False
2025-07-01 14:00:07,394 [DEBUG][       Thread-606872][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:00:07,394 [DEBUG][       Thread-606872][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:00:07,394 [DEBUG][       Thread-606872][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:00:07,394 [DEBUG][       Thread-606872][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:00:07,394 [DEBUG][       Thread-606872][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:00:07,394 [DEBUG][       Thread-606872][   transport.py][1871] : Compression: none
2025-07-01 14:00:07,394 [DEBUG][       Thread-606872][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:00:07,401 [DEBUG][       Thread-606872][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:00:07,401 [DEBUG][       Thread-606872][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:00:07,401 [DEBUG][       Thread-606872][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:00:07,401 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:00:07,401 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:00:07,402 [DEBUG][       Thread-606872][   transport.py][1871] : userauth is OK
2025-07-01 14:00:07,414 [ INFO][       Thread-606872][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:00:07,414 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:00:08,034 [DEBUG][       Thread-606872][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:00:08,034 [DEBUG][       Thread-606872][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:00:08,076 [DEBUG][       Thread-606872][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:00:08,076 [DEBUG][       Thread-606872][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:00:08,079 [DEBUG][       Thread-606872][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:00:08,096 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:00:08,096 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:00:08,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:00:08,100 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:00:08,102 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:00:08,103 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:00:08,103 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:00:08,103 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:00:08,103 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.499941 -999.00  +13.70  38.19     50   +3.60 1 1 2 1 1   887    0 9.31 -11.47 ----- 40.5 38.2 36.0 51.4 16.1 -23.5 15.4 -24.3 15.5 -22.0 16.2 -21.6
2025-07-01 14:00:08,103 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:00:08,103 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:00:08,103 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.499941
2025-07-01 14:00:08,103 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:00:08,104 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:00:08,104 [DEBUG][       Thread-606872][   transport.py][1871] : EOF in transport thread
2025-07-01 14:00:08,104 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:00:08,104 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:00:08,104 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 14:00:08,104 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T13:59:34', tmtdew=11.32, humidity=46.35, cloud=0.0, wind=39.24, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:59:54.902', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:00:08,181 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:00:08,190 [DEBUG][       Thread-606875][   transport.py][1871] : starting thread (client mode): 0x8104f40
2025-07-01 14:00:08,191 [DEBUG][       Thread-606875][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:00:08,207 [DEBUG][       Thread-606875][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:00:08,207 [ INFO][       Thread-606875][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:00:08,216 [DEBUG][       Thread-606875][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:00:08,216 [DEBUG][       Thread-606875][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:00:08,216 [DEBUG][       Thread-606875][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:00:08,216 [DEBUG][       Thread-606875][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:00:08,216 [DEBUG][       Thread-606875][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:00:08,216 [DEBUG][       Thread-606875][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:00:08,216 [DEBUG][       Thread-606875][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:00:08,216 [DEBUG][       Thread-606875][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:00:08,216 [DEBUG][       Thread-606875][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:00:08,216 [DEBUG][       Thread-606875][   transport.py][1871] : client lang: <none>
2025-07-01 14:00:08,216 [DEBUG][       Thread-606875][   transport.py][1871] : server lang: <none>
2025-07-01 14:00:08,216 [DEBUG][       Thread-606875][   transport.py][1871] : kex follows: False
2025-07-01 14:00:08,216 [DEBUG][       Thread-606875][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:00:08,216 [DEBUG][       Thread-606875][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:00:08,216 [DEBUG][       Thread-606875][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:00:08,216 [DEBUG][       Thread-606875][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:00:08,216 [DEBUG][       Thread-606875][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:00:08,216 [DEBUG][       Thread-606875][   transport.py][1871] : Compression: none
2025-07-01 14:00:08,216 [DEBUG][       Thread-606875][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:00:08,278 [DEBUG][       Thread-606875][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:00:08,279 [DEBUG][       Thread-606875][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:00:08,279 [DEBUG][       Thread-606875][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:00:08,279 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:00:08,279 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:00:08,337 [DEBUG][       Thread-606875][   transport.py][1871] : userauth is OK
2025-07-01 14:00:08,337 [DEBUG][       Thread-606875][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:00:08,337 [DEBUG][       Thread-606875][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:00:08,337 [DEBUG][       Thread-606875][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:00:08,337 [DEBUG][       Thread-606875][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:00:08,352 [ INFO][       Thread-606875][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:00:08,352 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:00:08,352 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:00:09,379 [DEBUG][       Thread-606875][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:00:09,379 [DEBUG][       Thread-606875][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:00:09,427 [DEBUG][       Thread-606875][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:00:09,427 [DEBUG][       Thread-606875][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:00:09,436 [DEBUG][       Thread-606875][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:00:09,444 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:00:09,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')
2025-07-01 14:00:09,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-07-01 14:00:09,459 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:00:09,459 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:00:09,460 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:00:09,467 [DEBUG][       Thread-606875][   transport.py][1871] : EOF in transport thread
2025-07-01 14:00:12,323 [DEBUG][Thread-606877 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:00:19,466 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:00:19,466 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:00:19,466 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:00:19,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-07-01 14:00:19,939 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 0, 6), 11.37, 46.21, 0.0, 39.31, 13.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:00:19,939 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:00:06
2025-07-01 14:00:20,023 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:00:20,027 [DEBUG][       Thread-606878][   transport.py][1871] : starting thread (client mode): 0x75a80a0
2025-07-01 14:00:20,027 [DEBUG][       Thread-606878][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:00:20,052 [DEBUG][       Thread-606878][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:00:20,052 [ INFO][       Thread-606878][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:00:20,056 [DEBUG][       Thread-606878][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:00:20,056 [DEBUG][       Thread-606878][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:00:20,056 [DEBUG][       Thread-606878][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:00:20,056 [DEBUG][       Thread-606878][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:00:20,056 [DEBUG][       Thread-606878][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:00:20,056 [DEBUG][       Thread-606878][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:00:20,056 [DEBUG][       Thread-606878][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:00:20,056 [DEBUG][       Thread-606878][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:00:20,056 [DEBUG][       Thread-606878][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:00:20,056 [DEBUG][       Thread-606878][   transport.py][1871] : client lang: <none>
2025-07-01 14:00:20,056 [DEBUG][       Thread-606878][   transport.py][1871] : server lang: <none>
2025-07-01 14:00:20,056 [DEBUG][       Thread-606878][   transport.py][1871] : kex follows: False
2025-07-01 14:00:20,056 [DEBUG][       Thread-606878][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:00:20,056 [DEBUG][       Thread-606878][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:00:20,056 [DEBUG][       Thread-606878][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:00:20,056 [DEBUG][       Thread-606878][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:00:20,056 [DEBUG][       Thread-606878][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:00:20,056 [DEBUG][       Thread-606878][   transport.py][1871] : Compression: none
2025-07-01 14:00:20,056 [DEBUG][       Thread-606878][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:00:20,073 [DEBUG][       Thread-606878][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:00:20,074 [DEBUG][       Thread-606878][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:00:20,074 [DEBUG][       Thread-606878][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:00:20,075 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:00:20,075 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:00:20,076 [DEBUG][       Thread-606878][   transport.py][1871] : userauth is OK
2025-07-01 14:00:20,100 [ INFO][       Thread-606878][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:00:20,101 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:00:20,716 [DEBUG][       Thread-606878][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:00:20,716 [DEBUG][       Thread-606878][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:00:20,757 [DEBUG][       Thread-606878][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:00:20,757 [DEBUG][       Thread-606878][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:00:20,760 [DEBUG][       Thread-606878][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:00:20,773 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:00:20,774 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:00:20,776 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:00:20,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:00:20,783 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:00:20,784 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:00:20,784 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:00:20,785 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:00:20,785 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.499941 -999.00  +13.70  38.19     50   +3.60 1 1 2 1 1   887    0 9.31 -11.47 ----- 40.5 38.2 36.0 51.4 16.1 -23.5 15.4 -24.3 15.5 -22.0 16.2 -21.6
2025-07-01 14:00:20,785 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:00:20,785 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:00:20,785 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.499941
2025-07-01 14:00:20,786 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:00:20,786 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:00:20,787 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:00:20,787 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:00:20,787 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 14:00:20,787 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:00:06', tmtdew=11.37, humidity=46.21, cloud=0.0, wind=39.31, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:59:54.902', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:00:20,787 [DEBUG][       Thread-606878][   transport.py][1871] : EOF in transport thread
2025-07-01 14:00:20,870 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:00:20,881 [DEBUG][       Thread-606881][   transport.py][1871] : starting thread (client mode): 0x8a671f0
2025-07-01 14:00:20,881 [DEBUG][       Thread-606881][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:00:20,897 [DEBUG][       Thread-606881][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:00:20,897 [ INFO][       Thread-606881][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:00:20,904 [DEBUG][       Thread-606881][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:00:20,904 [DEBUG][       Thread-606881][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:00:20,904 [DEBUG][       Thread-606881][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:00:20,904 [DEBUG][       Thread-606881][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:00:20,904 [DEBUG][       Thread-606881][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:00:20,905 [DEBUG][       Thread-606881][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:00:20,905 [DEBUG][       Thread-606881][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:00:20,905 [DEBUG][       Thread-606881][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:00:20,905 [DEBUG][       Thread-606881][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:00:20,905 [DEBUG][       Thread-606881][   transport.py][1871] : client lang: <none>
2025-07-01 14:00:20,905 [DEBUG][       Thread-606881][   transport.py][1871] : server lang: <none>
2025-07-01 14:00:20,905 [DEBUG][       Thread-606881][   transport.py][1871] : kex follows: False
2025-07-01 14:00:20,905 [DEBUG][       Thread-606881][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:00:20,905 [DEBUG][       Thread-606881][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:00:20,905 [DEBUG][       Thread-606881][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:00:20,905 [DEBUG][       Thread-606881][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:00:20,905 [DEBUG][       Thread-606881][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:00:20,905 [DEBUG][       Thread-606881][   transport.py][1871] : Compression: none
2025-07-01 14:00:20,905 [DEBUG][       Thread-606881][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:00:20,962 [DEBUG][       Thread-606881][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:00:20,963 [DEBUG][       Thread-606881][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:00:20,963 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:00:20,964 [DEBUG][       Thread-606881][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:00:20,965 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:00:21,026 [DEBUG][       Thread-606881][   transport.py][1871] : userauth is OK
2025-07-01 14:00:21,027 [DEBUG][       Thread-606881][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:00:21,027 [DEBUG][       Thread-606881][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:00:21,027 [DEBUG][       Thread-606881][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:00:21,027 [DEBUG][       Thread-606881][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:00:21,046 [ INFO][       Thread-606881][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:00:21,046 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:00:21,047 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:00:21,346 [DEBUG][Thread-606883 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:00:22,052 [DEBUG][       Thread-606881][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:00:22,052 [DEBUG][       Thread-606881][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:00:22,100 [DEBUG][       Thread-606881][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:00:22,100 [DEBUG][       Thread-606881][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:00:22,110 [DEBUG][       Thread-606881][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:00:22,119 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:00:22,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-07-01 14:00:22,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-07-01 14:00:22,138 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:00:22,139 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:00:22,139 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:00:22,147 [DEBUG][       Thread-606881][   transport.py][1871] : EOF in transport thread
2025-07-01 14:00:28,935 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:00:28,936 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:00:30,380 [DEBUG][Thread-606884 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:00:32,150 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:00:32,150 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:00:32,150 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:00:32,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-07-01 14:00:32,629 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 0, 6), 11.37, 46.21, 0.0, 39.31, 13.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:00:32,629 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:00:06
2025-07-01 14:00:32,713 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:00:32,720 [DEBUG][       Thread-606885][   transport.py][1871] : starting thread (client mode): 0x75aabf0
2025-07-01 14:00:32,720 [DEBUG][       Thread-606885][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:00:32,740 [DEBUG][       Thread-606885][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:00:32,740 [ INFO][       Thread-606885][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:00:32,743 [DEBUG][       Thread-606885][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:00:32,743 [DEBUG][       Thread-606885][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:00:32,743 [DEBUG][       Thread-606885][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:00:32,743 [DEBUG][       Thread-606885][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:00:32,743 [DEBUG][       Thread-606885][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:00:32,743 [DEBUG][       Thread-606885][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:00:32,743 [DEBUG][       Thread-606885][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:00:32,743 [DEBUG][       Thread-606885][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:00:32,743 [DEBUG][       Thread-606885][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:00:32,743 [DEBUG][       Thread-606885][   transport.py][1871] : client lang: <none>
2025-07-01 14:00:32,743 [DEBUG][       Thread-606885][   transport.py][1871] : server lang: <none>
2025-07-01 14:00:32,743 [DEBUG][       Thread-606885][   transport.py][1871] : kex follows: False
2025-07-01 14:00:32,743 [DEBUG][       Thread-606885][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:00:32,743 [DEBUG][       Thread-606885][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:00:32,743 [DEBUG][       Thread-606885][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:00:32,744 [DEBUG][       Thread-606885][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:00:32,744 [DEBUG][       Thread-606885][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:00:32,744 [DEBUG][       Thread-606885][   transport.py][1871] : Compression: none
2025-07-01 14:00:32,744 [DEBUG][       Thread-606885][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:00:32,763 [DEBUG][       Thread-606885][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:00:32,763 [DEBUG][       Thread-606885][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:00:32,764 [DEBUG][       Thread-606885][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:00:32,764 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:00:32,764 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:00:32,765 [DEBUG][       Thread-606885][   transport.py][1871] : userauth is OK
2025-07-01 14:00:32,790 [ INFO][       Thread-606885][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:00:32,790 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:00:33,410 [DEBUG][       Thread-606885][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:00:33,410 [DEBUG][       Thread-606885][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:00:33,453 [DEBUG][       Thread-606885][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:00:33,453 [DEBUG][       Thread-606885][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:00:33,456 [DEBUG][       Thread-606885][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:00:33,468 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:00:33,468 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:00:33,470 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:00:33,472 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:00:33,479 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:00:33,481 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:00:33,481 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:00:33,482 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:00:33,482 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.499941 -999.00  +13.70  38.19     50   +3.60 1 1 2 1 1   887    0 9.31 -11.47 ----- 40.5 38.2 36.0 51.4 16.1 -23.5 15.4 -24.3 15.5 -22.0 16.2 -21.6
2025-07-01 14:00:33,482 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:00:33,482 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:00:33,482 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.499941
2025-07-01 14:00:33,483 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:00:33,483 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:00:33,483 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:00:33,483 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:00:33,483 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 14:00:33,484 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:00:06', tmtdew=11.37, humidity=46.21, cloud=0.0, wind=39.31, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T11:59:54.902', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:00:33,485 [DEBUG][       Thread-606885][   transport.py][1871] : EOF in transport thread
2025-07-01 14:00:33,559 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:00:33,569 [DEBUG][Thread-606888 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:00:33,571 [DEBUG][       Thread-606889][   transport.py][1871] : starting thread (client mode): 0x827db40
2025-07-01 14:00:33,571 [DEBUG][       Thread-606889][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:00:33,586 [DEBUG][       Thread-606889][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:00:33,586 [ INFO][       Thread-606889][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:00:33,594 [DEBUG][       Thread-606889][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:00:33,594 [DEBUG][       Thread-606889][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:00:33,594 [DEBUG][       Thread-606889][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:00:33,594 [DEBUG][       Thread-606889][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:00:33,594 [DEBUG][       Thread-606889][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:00:33,594 [DEBUG][       Thread-606889][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:00:33,594 [DEBUG][       Thread-606889][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:00:33,595 [DEBUG][       Thread-606889][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:00:33,595 [DEBUG][       Thread-606889][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:00:33,595 [DEBUG][       Thread-606889][   transport.py][1871] : client lang: <none>
2025-07-01 14:00:33,595 [DEBUG][       Thread-606889][   transport.py][1871] : server lang: <none>
2025-07-01 14:00:33,595 [DEBUG][       Thread-606889][   transport.py][1871] : kex follows: False
2025-07-01 14:00:33,595 [DEBUG][       Thread-606889][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:00:33,595 [DEBUG][       Thread-606889][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:00:33,595 [DEBUG][       Thread-606889][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:00:33,595 [DEBUG][       Thread-606889][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:00:33,595 [DEBUG][       Thread-606889][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:00:33,595 [DEBUG][       Thread-606889][   transport.py][1871] : Compression: none
2025-07-01 14:00:33,595 [DEBUG][       Thread-606889][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:00:33,654 [DEBUG][       Thread-606889][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:00:33,654 [DEBUG][       Thread-606889][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:00:33,655 [DEBUG][       Thread-606889][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:00:33,655 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:00:33,656 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:00:33,713 [DEBUG][       Thread-606889][   transport.py][1871] : userauth is OK
2025-07-01 14:00:33,714 [DEBUG][       Thread-606889][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:00:33,714 [DEBUG][       Thread-606889][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:00:33,714 [DEBUG][       Thread-606889][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:00:33,714 [DEBUG][       Thread-606889][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:00:33,735 [ INFO][       Thread-606889][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:00:33,735 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:00:33,736 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:00:34,784 [DEBUG][       Thread-606889][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:00:34,784 [DEBUG][       Thread-606889][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:00:34,832 [DEBUG][       Thread-606889][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:00:34,832 [DEBUG][       Thread-606889][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:00:34,841 [DEBUG][       Thread-606889][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:00:34,850 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:00:34,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-07-01 14:00:34,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-07-01 14:00:34,869 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:00:34,869 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:00:34,870 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:00:34,877 [DEBUG][       Thread-606889][   transport.py][1871] : EOF in transport thread
2025-07-01 14:00:39,400 [DEBUG][Thread-606891 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:00:44,880 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:00:44,880 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:00:44,880 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:00:44,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-07-01 14:00:45,358 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 0, 38), 11.38, 46.28, 0.0, 42.64, 13.57, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:00:45,358 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:00:38
2025-07-01 14:00:45,446 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:00:45,450 [DEBUG][       Thread-606892][   transport.py][1871] : starting thread (client mode): 0x81a6a10
2025-07-01 14:00:45,450 [DEBUG][       Thread-606892][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:00:45,471 [DEBUG][       Thread-606892][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:00:45,471 [ INFO][       Thread-606892][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:00:45,473 [DEBUG][       Thread-606892][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:00:45,473 [DEBUG][       Thread-606892][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:00:45,473 [DEBUG][       Thread-606892][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:00:45,473 [DEBUG][       Thread-606892][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:00:45,473 [DEBUG][       Thread-606892][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:00:45,473 [DEBUG][       Thread-606892][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:00:45,473 [DEBUG][       Thread-606892][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:00:45,473 [DEBUG][       Thread-606892][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:00:45,473 [DEBUG][       Thread-606892][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:00:45,473 [DEBUG][       Thread-606892][   transport.py][1871] : client lang: <none>
2025-07-01 14:00:45,473 [DEBUG][       Thread-606892][   transport.py][1871] : server lang: <none>
2025-07-01 14:00:45,473 [DEBUG][       Thread-606892][   transport.py][1871] : kex follows: False
2025-07-01 14:00:45,473 [DEBUG][       Thread-606892][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:00:45,473 [DEBUG][       Thread-606892][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:00:45,473 [DEBUG][       Thread-606892][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:00:45,474 [DEBUG][       Thread-606892][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:00:45,474 [DEBUG][       Thread-606892][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:00:45,474 [DEBUG][       Thread-606892][   transport.py][1871] : Compression: none
2025-07-01 14:00:45,474 [DEBUG][       Thread-606892][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:00:45,489 [DEBUG][       Thread-606892][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:00:45,490 [DEBUG][       Thread-606892][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:00:45,490 [DEBUG][       Thread-606892][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:00:45,490 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:00:45,490 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:00:45,490 [DEBUG][       Thread-606892][   transport.py][1871] : userauth is OK
2025-07-01 14:00:45,514 [ INFO][       Thread-606892][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:00:45,514 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:00:46,205 [DEBUG][       Thread-606892][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:00:46,205 [DEBUG][       Thread-606892][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:00:46,249 [DEBUG][       Thread-606892][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:00:46,249 [DEBUG][       Thread-606892][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:00:46,251 [DEBUG][       Thread-606892][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:00:46,265 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:00:46,265 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:00:46,267 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:00:46,268 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:00:46,270 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:00:46,271 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:00:46,271 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:00:46,271 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:00:46,271 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.500288 -999.00  +13.40  39.83     50   +3.30 1 1 2 1 1   887    0 9.40 -10.63 ----- 42.4 39.8 350.6 49.8 16.0 -23.6 15.4 -25.6 15.4 -22.6 16.1 -21.8
2025-07-01 14:00:46,272 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:00:46,272 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:00:46,272 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.500288
2025-07-01 14:00:46,272 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:00:46,272 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:00:46,272 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:00:46,272 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:00:46,272 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 14:00:46,272 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:00:38', tmtdew=11.38, humidity=46.28, cloud=0.0, wind=42.64, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:00:24.883', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:00:46,273 [DEBUG][       Thread-606892][   transport.py][1871] : EOF in transport thread
2025-07-01 14:00:46,344 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:00:46,353 [DEBUG][       Thread-606895][   transport.py][1871] : starting thread (client mode): 0x818d8a0
2025-07-01 14:00:46,353 [DEBUG][       Thread-606895][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:00:46,368 [DEBUG][       Thread-606895][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:00:46,368 [ INFO][       Thread-606895][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:00:46,382 [DEBUG][       Thread-606895][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:00:46,382 [DEBUG][       Thread-606895][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:00:46,382 [DEBUG][       Thread-606895][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:00:46,383 [DEBUG][       Thread-606895][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:00:46,383 [DEBUG][       Thread-606895][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:00:46,383 [DEBUG][       Thread-606895][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:00:46,383 [DEBUG][       Thread-606895][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:00:46,383 [DEBUG][       Thread-606895][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:00:46,383 [DEBUG][       Thread-606895][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:00:46,383 [DEBUG][       Thread-606895][   transport.py][1871] : client lang: <none>
2025-07-01 14:00:46,383 [DEBUG][       Thread-606895][   transport.py][1871] : server lang: <none>
2025-07-01 14:00:46,383 [DEBUG][       Thread-606895][   transport.py][1871] : kex follows: False
2025-07-01 14:00:46,383 [DEBUG][       Thread-606895][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:00:46,383 [DEBUG][       Thread-606895][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:00:46,383 [DEBUG][       Thread-606895][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:00:46,383 [DEBUG][       Thread-606895][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:00:46,383 [DEBUG][       Thread-606895][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:00:46,383 [DEBUG][       Thread-606895][   transport.py][1871] : Compression: none
2025-07-01 14:00:46,383 [DEBUG][       Thread-606895][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:00:46,440 [DEBUG][       Thread-606895][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:00:46,440 [DEBUG][       Thread-606895][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:00:46,440 [DEBUG][       Thread-606895][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:00:46,440 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:00:46,440 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:00:46,498 [DEBUG][       Thread-606895][   transport.py][1871] : userauth is OK
2025-07-01 14:00:46,499 [DEBUG][       Thread-606895][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:00:46,499 [DEBUG][       Thread-606895][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:00:46,499 [DEBUG][       Thread-606895][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:00:46,499 [DEBUG][       Thread-606895][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:00:46,513 [ INFO][       Thread-606895][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:00:46,513 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:00:46,513 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:00:47,516 [DEBUG][       Thread-606895][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:00:47,516 [DEBUG][       Thread-606895][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:00:47,567 [DEBUG][       Thread-606895][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:00:47,567 [DEBUG][       Thread-606895][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:00:47,576 [DEBUG][       Thread-606895][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:00:47,583 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:00:47,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-07-01 14:00:47,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-07-01 14:00:47,599 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:00:47,599 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:00:47,599 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:00:47,607 [DEBUG][       Thread-606895][   transport.py][1871] : EOF in transport thread
2025-07-01 14:00:48,416 [DEBUG][Thread-606897 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:00:57,442 [DEBUG][Thread-606898 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:00:57,609 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:00:57,610 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:00:57,610 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:00:57,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-07-01 14:00:58,086 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 0, 38), 11.38, 46.28, 0.0, 42.64, 13.57, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:00:58,086 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:00:38
2025-07-01 14:00:58,171 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:00:58,177 [DEBUG][       Thread-606899][   transport.py][1871] : starting thread (client mode): 0x8171b70
2025-07-01 14:00:58,177 [DEBUG][       Thread-606899][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:00:58,204 [DEBUG][       Thread-606899][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:00:58,205 [ INFO][       Thread-606899][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:00:58,208 [DEBUG][       Thread-606899][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:00:58,208 [DEBUG][       Thread-606899][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:00:58,208 [DEBUG][       Thread-606899][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:00:58,208 [DEBUG][       Thread-606899][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:00:58,208 [DEBUG][       Thread-606899][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:00:58,208 [DEBUG][       Thread-606899][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:00:58,208 [DEBUG][       Thread-606899][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:00:58,208 [DEBUG][       Thread-606899][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:00:58,208 [DEBUG][       Thread-606899][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:00:58,208 [DEBUG][       Thread-606899][   transport.py][1871] : client lang: <none>
2025-07-01 14:00:58,208 [DEBUG][       Thread-606899][   transport.py][1871] : server lang: <none>
2025-07-01 14:00:58,208 [DEBUG][       Thread-606899][   transport.py][1871] : kex follows: False
2025-07-01 14:00:58,209 [DEBUG][       Thread-606899][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:00:58,209 [DEBUG][       Thread-606899][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:00:58,209 [DEBUG][       Thread-606899][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:00:58,209 [DEBUG][       Thread-606899][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:00:58,209 [DEBUG][       Thread-606899][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:00:58,209 [DEBUG][       Thread-606899][   transport.py][1871] : Compression: none
2025-07-01 14:00:58,209 [DEBUG][       Thread-606899][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:00:58,226 [DEBUG][       Thread-606899][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:00:58,227 [DEBUG][       Thread-606899][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:00:58,227 [DEBUG][       Thread-606899][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:00:58,227 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:00:58,228 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:00:58,229 [DEBUG][       Thread-606899][   transport.py][1871] : userauth is OK
2025-07-01 14:00:58,255 [ INFO][       Thread-606899][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:00:58,256 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:00:58,919 [DEBUG][       Thread-606899][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:00:58,920 [DEBUG][       Thread-606899][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:00:58,961 [DEBUG][       Thread-606899][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:00:58,961 [DEBUG][       Thread-606899][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:00:58,965 [DEBUG][       Thread-606899][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:00:58,978 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:00:58,979 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:00:58,980 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:00:58,982 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:00:58,988 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:00:58,990 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:00:58,990 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:00:58,991 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:00:58,991 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.500288 -999.00  +13.40  39.83     50   +3.30 1 1 2 1 1   887    0 9.40 -10.63 ----- 42.4 39.8 350.6 49.8 16.0 -23.6 15.4 -25.6 15.4 -22.6 16.1 -21.8
2025-07-01 14:00:58,991 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:00:58,991 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:00:58,991 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.500288
2025-07-01 14:00:58,991 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:00:58,992 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:00:58,992 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:00:58,992 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:00:58,992 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 14:00:58,992 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:00:38', tmtdew=11.38, humidity=46.28, cloud=0.0, wind=42.64, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:00:24.883', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:00:58,994 [DEBUG][       Thread-606899][   transport.py][1871] : EOF in transport thread
2025-07-01 14:00:59,076 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:00:59,087 [DEBUG][       Thread-606902][   transport.py][1871] : starting thread (client mode): 0x82b24a0
2025-07-01 14:00:59,087 [DEBUG][       Thread-606902][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:00:59,108 [DEBUG][       Thread-606902][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:00:59,108 [ INFO][       Thread-606902][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:00:59,117 [DEBUG][       Thread-606902][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:00:59,117 [DEBUG][       Thread-606902][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:00:59,117 [DEBUG][       Thread-606902][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:00:59,117 [DEBUG][       Thread-606902][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:00:59,117 [DEBUG][       Thread-606902][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:00:59,117 [DEBUG][       Thread-606902][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:00:59,117 [DEBUG][       Thread-606902][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:00:59,117 [DEBUG][       Thread-606902][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:00:59,117 [DEBUG][       Thread-606902][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:00:59,117 [DEBUG][       Thread-606902][   transport.py][1871] : client lang: <none>
2025-07-01 14:00:59,117 [DEBUG][       Thread-606902][   transport.py][1871] : server lang: <none>
2025-07-01 14:00:59,117 [DEBUG][       Thread-606902][   transport.py][1871] : kex follows: False
2025-07-01 14:00:59,117 [DEBUG][       Thread-606902][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:00:59,117 [DEBUG][       Thread-606902][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:00:59,117 [DEBUG][       Thread-606902][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:00:59,117 [DEBUG][       Thread-606902][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:00:59,117 [DEBUG][       Thread-606902][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:00:59,117 [DEBUG][       Thread-606902][   transport.py][1871] : Compression: none
2025-07-01 14:00:59,117 [DEBUG][       Thread-606902][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:00:59,173 [DEBUG][       Thread-606902][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:00:59,173 [DEBUG][       Thread-606902][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:00:59,173 [DEBUG][       Thread-606902][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:00:59,173 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:00:59,173 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:00:59,236 [DEBUG][       Thread-606902][   transport.py][1871] : userauth is OK
2025-07-01 14:00:59,236 [DEBUG][       Thread-606902][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:00:59,236 [DEBUG][       Thread-606902][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:00:59,236 [DEBUG][       Thread-606902][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:00:59,236 [DEBUG][       Thread-606902][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:00:59,257 [ INFO][       Thread-606902][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:00:59,257 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:00:59,257 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:01:00,257 [DEBUG][       Thread-606902][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:01:00,257 [DEBUG][       Thread-606902][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:01:00,308 [DEBUG][       Thread-606902][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:01:00,308 [DEBUG][       Thread-606902][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:01:00,317 [DEBUG][       Thread-606902][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:01:00,326 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:01:00,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-07-01 14:01:00,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') -> 00000000
2025-07-01 14:01:00,344 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:01:00,344 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:01:00,345 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:01:00,352 [DEBUG][       Thread-606902][   transport.py][1871] : EOF in transport thread
2025-07-01 14:01:06,466 [DEBUG][Thread-606904 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:01:10,355 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:01:10,355 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:01:10,355 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:01:10,358 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:01:10,830 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 0, 38), 11.38, 46.28, 0.0, 42.64, 13.57, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:01:10,830 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:00:38
2025-07-01 14:01:10,917 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:01:10,921 [DEBUG][       Thread-606905][   transport.py][1871] : starting thread (client mode): 0x75a93c0
2025-07-01 14:01:10,921 [DEBUG][       Thread-606905][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:01:10,942 [DEBUG][       Thread-606905][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:01:10,942 [ INFO][       Thread-606905][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:01:10,945 [DEBUG][       Thread-606905][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:01:10,945 [DEBUG][       Thread-606905][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:01:10,945 [DEBUG][       Thread-606905][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:01:10,945 [DEBUG][       Thread-606905][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:01:10,945 [DEBUG][       Thread-606905][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:01:10,945 [DEBUG][       Thread-606905][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:01:10,945 [DEBUG][       Thread-606905][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:01:10,945 [DEBUG][       Thread-606905][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:01:10,945 [DEBUG][       Thread-606905][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:01:10,945 [DEBUG][       Thread-606905][   transport.py][1871] : client lang: <none>
2025-07-01 14:01:10,945 [DEBUG][       Thread-606905][   transport.py][1871] : server lang: <none>
2025-07-01 14:01:10,945 [DEBUG][       Thread-606905][   transport.py][1871] : kex follows: False
2025-07-01 14:01:10,945 [DEBUG][       Thread-606905][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:01:10,946 [DEBUG][       Thread-606905][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:01:10,946 [DEBUG][       Thread-606905][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:01:10,946 [DEBUG][       Thread-606905][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:01:10,946 [DEBUG][       Thread-606905][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:01:10,946 [DEBUG][       Thread-606905][   transport.py][1871] : Compression: none
2025-07-01 14:01:10,946 [DEBUG][       Thread-606905][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:01:10,961 [DEBUG][       Thread-606905][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:01:10,961 [DEBUG][       Thread-606905][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:01:10,961 [DEBUG][       Thread-606905][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:01:10,961 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:01:10,961 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:01:10,962 [DEBUG][       Thread-606905][   transport.py][1871] : userauth is OK
2025-07-01 14:01:10,986 [ INFO][       Thread-606905][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:01:10,986 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:01:11,633 [DEBUG][       Thread-606905][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:01:11,633 [DEBUG][       Thread-606905][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:01:11,676 [DEBUG][       Thread-606905][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:01:11,676 [DEBUG][       Thread-606905][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:01:11,680 [DEBUG][       Thread-606905][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:01:11,693 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:01:11,693 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:01:11,694 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:01:11,695 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:01:11,698 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:01:11,700 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:01:11,700 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:01:11,700 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:01:11,700 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.500288 -999.00  +13.40  39.83     50   +3.30 1 1 2 1 1   887    0 9.40 -10.63 ----- 42.4 39.8 350.6 49.8 16.0 -23.6 15.4 -25.6 15.4 -22.6 16.1 -21.8
2025-07-01 14:01:11,700 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:01:11,700 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:01:11,700 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.500288
2025-07-01 14:01:11,700 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:01:11,700 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:01:11,700 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:01:11,700 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:01:11,700 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 14:01:11,700 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:00:38', tmtdew=11.38, humidity=46.28, cloud=0.0, wind=42.64, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:00:24.883', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:01:11,701 [DEBUG][       Thread-606905][   transport.py][1871] : EOF in transport thread
2025-07-01 14:01:11,775 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:01:11,784 [DEBUG][       Thread-606908][   transport.py][1871] : starting thread (client mode): 0x83c8520
2025-07-01 14:01:11,784 [DEBUG][       Thread-606908][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:01:11,799 [DEBUG][       Thread-606908][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:01:11,799 [ INFO][       Thread-606908][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:01:11,810 [DEBUG][       Thread-606908][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:01:11,810 [DEBUG][       Thread-606908][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:01:11,810 [DEBUG][       Thread-606908][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:01:11,810 [DEBUG][       Thread-606908][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:01:11,810 [DEBUG][       Thread-606908][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:01:11,810 [DEBUG][       Thread-606908][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:01:11,810 [DEBUG][       Thread-606908][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:01:11,810 [DEBUG][       Thread-606908][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:01:11,810 [DEBUG][       Thread-606908][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:01:11,810 [DEBUG][       Thread-606908][   transport.py][1871] : client lang: <none>
2025-07-01 14:01:11,810 [DEBUG][       Thread-606908][   transport.py][1871] : server lang: <none>
2025-07-01 14:01:11,810 [DEBUG][       Thread-606908][   transport.py][1871] : kex follows: False
2025-07-01 14:01:11,810 [DEBUG][       Thread-606908][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:01:11,810 [DEBUG][       Thread-606908][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:01:11,810 [DEBUG][       Thread-606908][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:01:11,810 [DEBUG][       Thread-606908][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:01:11,810 [DEBUG][       Thread-606908][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:01:11,810 [DEBUG][       Thread-606908][   transport.py][1871] : Compression: none
2025-07-01 14:01:11,810 [DEBUG][       Thread-606908][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:01:11,866 [DEBUG][       Thread-606908][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:01:11,866 [DEBUG][       Thread-606908][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:01:11,867 [DEBUG][       Thread-606908][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:01:11,867 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:01:11,867 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:01:11,922 [DEBUG][       Thread-606908][   transport.py][1871] : userauth is OK
2025-07-01 14:01:11,922 [DEBUG][       Thread-606908][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:01:11,922 [DEBUG][       Thread-606908][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:01:11,922 [DEBUG][       Thread-606908][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:01:11,922 [DEBUG][       Thread-606908][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:01:11,937 [ INFO][       Thread-606908][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:01:11,937 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:01:11,937 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:01:12,924 [DEBUG][       Thread-606908][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:01:12,925 [DEBUG][       Thread-606908][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:01:12,976 [DEBUG][       Thread-606908][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:01:12,976 [DEBUG][       Thread-606908][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:01:12,985 [DEBUG][       Thread-606908][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:01:12,996 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:01:12,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-07-01 14:01:13,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-07-01 14:01:13,014 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:01:13,015 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:01:13,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:01:13,023 [DEBUG][       Thread-606908][   transport.py][1871] : EOF in transport thread
2025-07-01 14:01:15,488 [DEBUG][Thread-606910 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:01:23,024 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:01:23,024 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:01:23,024 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:01:23,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-07-01 14:01:23,521 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 1, 10), 11.24, 46.51, 0.0, 33.49, 13.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:01:23,521 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:01:10
2025-07-01 14:01:23,607 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:01:23,615 [DEBUG][       Thread-606911][   transport.py][1871] : starting thread (client mode): 0x8173820
2025-07-01 14:01:23,615 [DEBUG][       Thread-606911][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:01:23,638 [DEBUG][       Thread-606911][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:01:23,638 [ INFO][       Thread-606911][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:01:23,642 [DEBUG][       Thread-606911][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:01:23,642 [DEBUG][       Thread-606911][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:01:23,642 [DEBUG][       Thread-606911][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:01:23,642 [DEBUG][       Thread-606911][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:01:23,642 [DEBUG][       Thread-606911][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:01:23,642 [DEBUG][       Thread-606911][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:01:23,642 [DEBUG][       Thread-606911][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:01:23,642 [DEBUG][       Thread-606911][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:01:23,642 [DEBUG][       Thread-606911][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:01:23,642 [DEBUG][       Thread-606911][   transport.py][1871] : client lang: <none>
2025-07-01 14:01:23,642 [DEBUG][       Thread-606911][   transport.py][1871] : server lang: <none>
2025-07-01 14:01:23,642 [DEBUG][       Thread-606911][   transport.py][1871] : kex follows: False
2025-07-01 14:01:23,642 [DEBUG][       Thread-606911][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:01:23,642 [DEBUG][       Thread-606911][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:01:23,642 [DEBUG][       Thread-606911][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:01:23,642 [DEBUG][       Thread-606911][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:01:23,642 [DEBUG][       Thread-606911][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:01:23,642 [DEBUG][       Thread-606911][   transport.py][1871] : Compression: none
2025-07-01 14:01:23,642 [DEBUG][       Thread-606911][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:01:23,660 [DEBUG][       Thread-606911][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:01:23,660 [DEBUG][       Thread-606911][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:01:23,660 [DEBUG][       Thread-606911][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:01:23,660 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:01:23,660 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:01:23,661 [DEBUG][       Thread-606911][   transport.py][1871] : userauth is OK
2025-07-01 14:01:23,685 [ INFO][       Thread-606911][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:01:23,685 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:01:24,328 [DEBUG][       Thread-606911][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:01:24,328 [DEBUG][       Thread-606911][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:01:24,372 [DEBUG][       Thread-606911][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:01:24,372 [DEBUG][       Thread-606911][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:01:24,375 [DEBUG][       Thread-606911][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:01:24,386 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:01:24,386 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:01:24,387 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:01:24,388 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:01:24,391 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:01:24,392 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:01:24,393 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:01:24,393 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:01:24,393 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.500636 -999.00  +13.40  38.46     51   +3.60 1 2 2 1 1   887    0 9.14 -13.45 ----- 38.5 38.5 41.0 51.3 16.1 -23.0 15.3 -23.7 15.5 -21.9 16.2 -20.9
2025-07-01 14:01:24,393 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:01:24,393 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:01:24,393 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.500636
2025-07-01 14:01:24,393 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:01:24,393 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:01:24,393 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:01:24,393 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:01:24,393 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:01:24,393 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:01:10', tmtdew=11.24, humidity=46.51, cloud=0.0, wind=33.49, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:00:54.950', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:01:24,394 [DEBUG][       Thread-606911][   transport.py][1871] : EOF in transport thread
2025-07-01 14:01:24,465 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:01:24,477 [DEBUG][       Thread-606914][   transport.py][1871] : starting thread (client mode): 0x818fca0
2025-07-01 14:01:24,477 [DEBUG][       Thread-606914][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:01:24,494 [DEBUG][       Thread-606914][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:01:24,494 [ INFO][       Thread-606914][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:01:24,502 [DEBUG][       Thread-606914][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:01:24,502 [DEBUG][       Thread-606914][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:01:24,502 [DEBUG][       Thread-606914][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:01:24,502 [DEBUG][       Thread-606914][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:01:24,502 [DEBUG][       Thread-606914][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:01:24,502 [DEBUG][       Thread-606914][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:01:24,502 [DEBUG][       Thread-606914][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:01:24,502 [DEBUG][       Thread-606914][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:01:24,502 [DEBUG][       Thread-606914][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:01:24,502 [DEBUG][       Thread-606914][   transport.py][1871] : client lang: <none>
2025-07-01 14:01:24,502 [DEBUG][       Thread-606914][   transport.py][1871] : server lang: <none>
2025-07-01 14:01:24,502 [DEBUG][       Thread-606914][   transport.py][1871] : kex follows: False
2025-07-01 14:01:24,502 [DEBUG][       Thread-606914][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:01:24,502 [DEBUG][       Thread-606914][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:01:24,502 [DEBUG][       Thread-606914][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:01:24,502 [DEBUG][       Thread-606914][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:01:24,502 [DEBUG][       Thread-606914][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:01:24,502 [DEBUG][       Thread-606914][   transport.py][1871] : Compression: none
2025-07-01 14:01:24,502 [DEBUG][       Thread-606914][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:01:24,511 [DEBUG][Thread-606916 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:01:24,558 [DEBUG][       Thread-606914][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:01:24,558 [DEBUG][       Thread-606914][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:01:24,558 [DEBUG][       Thread-606914][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:01:24,558 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:01:24,558 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:01:24,620 [DEBUG][       Thread-606914][   transport.py][1871] : userauth is OK
2025-07-01 14:01:24,620 [DEBUG][       Thread-606914][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:01:24,620 [DEBUG][       Thread-606914][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:01:24,620 [DEBUG][       Thread-606914][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:01:24,620 [DEBUG][       Thread-606914][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:01:24,635 [ INFO][       Thread-606914][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:01:24,635 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:01:24,635 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:01:25,654 [DEBUG][       Thread-606914][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:01:25,654 [DEBUG][       Thread-606914][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:01:25,703 [DEBUG][       Thread-606914][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:01:25,703 [DEBUG][       Thread-606914][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:01:25,712 [DEBUG][       Thread-606914][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:01:25,720 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:01:25,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')
2025-07-01 14:01:25,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-07-01 14:01:25,735 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:01:25,735 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:01:25,735 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:01:25,743 [DEBUG][       Thread-606914][   transport.py][1871] : EOF in transport thread
2025-07-01 14:01:29,075 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:01:29,076 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:01:33,545 [DEBUG][Thread-606917 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:01:33,622 [DEBUG][Thread-606918 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:01:35,744 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:01:35,744 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:01:35,744 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:01:35,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-07-01 14:01:36,224 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 1, 10), 11.24, 46.51, 0.0, 33.49, 13.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:01:36,224 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:01:10
2025-07-01 14:01:36,310 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:01:36,314 [DEBUG][       Thread-606919][   transport.py][1871] : starting thread (client mode): 0x8171840
2025-07-01 14:01:36,314 [DEBUG][       Thread-606919][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:01:36,336 [DEBUG][       Thread-606919][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:01:36,337 [ INFO][       Thread-606919][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:01:36,340 [DEBUG][       Thread-606919][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:01:36,340 [DEBUG][       Thread-606919][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:01:36,340 [DEBUG][       Thread-606919][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:01:36,340 [DEBUG][       Thread-606919][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:01:36,340 [DEBUG][       Thread-606919][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:01:36,340 [DEBUG][       Thread-606919][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:01:36,340 [DEBUG][       Thread-606919][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:01:36,340 [DEBUG][       Thread-606919][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:01:36,341 [DEBUG][       Thread-606919][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:01:36,341 [DEBUG][       Thread-606919][   transport.py][1871] : client lang: <none>
2025-07-01 14:01:36,341 [DEBUG][       Thread-606919][   transport.py][1871] : server lang: <none>
2025-07-01 14:01:36,341 [DEBUG][       Thread-606919][   transport.py][1871] : kex follows: False
2025-07-01 14:01:36,341 [DEBUG][       Thread-606919][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:01:36,341 [DEBUG][       Thread-606919][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:01:36,341 [DEBUG][       Thread-606919][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:01:36,341 [DEBUG][       Thread-606919][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:01:36,341 [DEBUG][       Thread-606919][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:01:36,341 [DEBUG][       Thread-606919][   transport.py][1871] : Compression: none
2025-07-01 14:01:36,341 [DEBUG][       Thread-606919][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:01:36,358 [DEBUG][       Thread-606919][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:01:36,358 [DEBUG][       Thread-606919][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:01:36,359 [DEBUG][       Thread-606919][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:01:36,359 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:01:36,359 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:01:36,360 [DEBUG][       Thread-606919][   transport.py][1871] : userauth is OK
2025-07-01 14:01:36,385 [ INFO][       Thread-606919][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:01:36,385 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:01:37,023 [DEBUG][       Thread-606919][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:01:37,023 [DEBUG][       Thread-606919][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:01:37,065 [DEBUG][       Thread-606919][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:01:37,065 [DEBUG][       Thread-606919][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:01:37,069 [DEBUG][       Thread-606919][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:01:37,080 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:01:37,081 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:01:37,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:01:37,084 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:01:37,090 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:01:37,091 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:01:37,092 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:01:37,092 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:01:37,092 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.500636 -999.00  +13.40  38.46     51   +3.60 1 2 2 1 1   887    0 9.14 -13.45 ----- 38.5 38.5 41.0 51.3 16.1 -23.0 15.3 -23.7 15.5 -21.9 16.2 -20.9
2025-07-01 14:01:37,093 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:01:37,093 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:01:37,093 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.500636
2025-07-01 14:01:37,093 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:01:37,094 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:01:37,094 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:01:37,094 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:01:37,094 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:01:37,094 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:01:10', tmtdew=11.24, humidity=46.51, cloud=0.0, wind=33.49, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:00:54.950', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:01:37,094 [DEBUG][       Thread-606919][   transport.py][1871] : EOF in transport thread
2025-07-01 14:01:37,179 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:01:37,188 [DEBUG][       Thread-606922][   transport.py][1871] : starting thread (client mode): 0x827ec50
2025-07-01 14:01:37,188 [DEBUG][       Thread-606922][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:01:37,203 [DEBUG][       Thread-606922][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:01:37,203 [ INFO][       Thread-606922][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:01:37,211 [DEBUG][       Thread-606922][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:01:37,211 [DEBUG][       Thread-606922][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:01:37,211 [DEBUG][       Thread-606922][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:01:37,211 [DEBUG][       Thread-606922][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:01:37,211 [DEBUG][       Thread-606922][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:01:37,211 [DEBUG][       Thread-606922][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:01:37,211 [DEBUG][       Thread-606922][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:01:37,211 [DEBUG][       Thread-606922][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:01:37,211 [DEBUG][       Thread-606922][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:01:37,211 [DEBUG][       Thread-606922][   transport.py][1871] : client lang: <none>
2025-07-01 14:01:37,211 [DEBUG][       Thread-606922][   transport.py][1871] : server lang: <none>
2025-07-01 14:01:37,211 [DEBUG][       Thread-606922][   transport.py][1871] : kex follows: False
2025-07-01 14:01:37,211 [DEBUG][       Thread-606922][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:01:37,211 [DEBUG][       Thread-606922][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:01:37,211 [DEBUG][       Thread-606922][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:01:37,211 [DEBUG][       Thread-606922][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:01:37,211 [DEBUG][       Thread-606922][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:01:37,211 [DEBUG][       Thread-606922][   transport.py][1871] : Compression: none
2025-07-01 14:01:37,211 [DEBUG][       Thread-606922][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:01:37,273 [DEBUG][       Thread-606922][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:01:37,274 [DEBUG][       Thread-606922][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:01:37,274 [DEBUG][       Thread-606922][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:01:37,275 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:01:37,275 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:01:37,331 [DEBUG][       Thread-606922][   transport.py][1871] : userauth is OK
2025-07-01 14:01:37,332 [DEBUG][       Thread-606922][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:01:37,332 [DEBUG][       Thread-606922][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:01:37,332 [DEBUG][       Thread-606922][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:01:37,332 [DEBUG][       Thread-606922][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:01:37,351 [ INFO][       Thread-606922][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:01:37,352 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:01:37,352 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:01:38,392 [DEBUG][       Thread-606922][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:01:38,392 [DEBUG][       Thread-606922][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:01:38,440 [DEBUG][       Thread-606922][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:01:38,440 [DEBUG][       Thread-606922][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:01:38,449 [DEBUG][       Thread-606922][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:01:38,458 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:01:38,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-07-01 14:01:38,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') -> 00000000
2025-07-01 14:01:38,477 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:01:38,477 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:01:38,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:01:38,486 [DEBUG][       Thread-606922][   transport.py][1871] : EOF in transport thread
2025-07-01 14:01:42,564 [DEBUG][Thread-606924 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:01:48,488 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:01:48,488 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:01:48,488 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:01:48,491 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:01:48,965 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 1, 42), 11.24, 46.51, 0.0, 29.5, 13.56, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:01:48,965 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:01:42
2025-07-01 14:01:49,051 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:01:49,055 [DEBUG][       Thread-606925][   transport.py][1871] : starting thread (client mode): 0x8172c80
2025-07-01 14:01:49,056 [DEBUG][       Thread-606925][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:01:49,076 [DEBUG][       Thread-606925][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:01:49,076 [ INFO][       Thread-606925][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:01:49,077 [DEBUG][       Thread-606925][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:01:49,077 [DEBUG][       Thread-606925][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:01:49,077 [DEBUG][       Thread-606925][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:01:49,077 [DEBUG][       Thread-606925][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:01:49,077 [DEBUG][       Thread-606925][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:01:49,077 [DEBUG][       Thread-606925][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:01:49,077 [DEBUG][       Thread-606925][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:01:49,077 [DEBUG][       Thread-606925][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:01:49,077 [DEBUG][       Thread-606925][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:01:49,077 [DEBUG][       Thread-606925][   transport.py][1871] : client lang: <none>
2025-07-01 14:01:49,077 [DEBUG][       Thread-606925][   transport.py][1871] : server lang: <none>
2025-07-01 14:01:49,077 [DEBUG][       Thread-606925][   transport.py][1871] : kex follows: False
2025-07-01 14:01:49,078 [DEBUG][       Thread-606925][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:01:49,078 [DEBUG][       Thread-606925][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:01:49,078 [DEBUG][       Thread-606925][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:01:49,078 [DEBUG][       Thread-606925][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:01:49,078 [DEBUG][       Thread-606925][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:01:49,078 [DEBUG][       Thread-606925][   transport.py][1871] : Compression: none
2025-07-01 14:01:49,078 [DEBUG][       Thread-606925][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:01:49,099 [DEBUG][       Thread-606925][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:01:49,099 [DEBUG][       Thread-606925][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:01:49,100 [DEBUG][       Thread-606925][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:01:49,100 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:01:49,100 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:01:49,101 [DEBUG][       Thread-606925][   transport.py][1871] : userauth is OK
2025-07-01 14:01:49,115 [ INFO][       Thread-606925][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:01:49,115 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:01:49,712 [DEBUG][       Thread-606925][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:01:49,713 [DEBUG][       Thread-606925][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:01:49,757 [DEBUG][       Thread-606925][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:01:49,757 [DEBUG][       Thread-606925][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:01:49,760 [DEBUG][       Thread-606925][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:01:49,770 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:01:49,770 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:01:49,772 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:01:49,773 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:01:49,779 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:01:49,780 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:01:49,780 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:01:49,781 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:01:49,781 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.500983 -999.00  +13.40  42.80     51   +3.70 1 1 2 1 1   887    0 9.69 -14.06 ----- 35.8 42.8 22.8 48.2 16.1 -23.1 15.4 -23.6 15.5 -22.5 16.2 -21.5
2025-07-01 14:01:49,781 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:01:49,781 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:01:49,781 [DEBUG][       Thread-606925][   transport.py][1871] : EOF in transport thread
2025-07-01 14:01:49,782 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.500983
2025-07-01 14:01:49,783 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:01:49,783 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:01:49,783 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:01:49,783 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:01:49,783 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 14:01:49,783 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:01:42', tmtdew=11.24, humidity=46.51, cloud=0.0, wind=29.5, temperature=13.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:01:24.931', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:01:49,866 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:01:49,878 [DEBUG][       Thread-606928][   transport.py][1871] : starting thread (client mode): 0x82b3670
2025-07-01 14:01:49,878 [DEBUG][       Thread-606928][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:01:49,893 [DEBUG][       Thread-606928][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:01:49,893 [ INFO][       Thread-606928][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:01:49,900 [DEBUG][       Thread-606928][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:01:49,900 [DEBUG][       Thread-606928][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:01:49,900 [DEBUG][       Thread-606928][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:01:49,900 [DEBUG][       Thread-606928][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:01:49,900 [DEBUG][       Thread-606928][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:01:49,901 [DEBUG][       Thread-606928][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:01:49,901 [DEBUG][       Thread-606928][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:01:49,901 [DEBUG][       Thread-606928][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:01:49,901 [DEBUG][       Thread-606928][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:01:49,901 [DEBUG][       Thread-606928][   transport.py][1871] : client lang: <none>
2025-07-01 14:01:49,901 [DEBUG][       Thread-606928][   transport.py][1871] : server lang: <none>
2025-07-01 14:01:49,901 [DEBUG][       Thread-606928][   transport.py][1871] : kex follows: False
2025-07-01 14:01:49,901 [DEBUG][       Thread-606928][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:01:49,901 [DEBUG][       Thread-606928][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:01:49,901 [DEBUG][       Thread-606928][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:01:49,901 [DEBUG][       Thread-606928][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:01:49,901 [DEBUG][       Thread-606928][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:01:49,901 [DEBUG][       Thread-606928][   transport.py][1871] : Compression: none
2025-07-01 14:01:49,901 [DEBUG][       Thread-606928][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:01:49,959 [DEBUG][       Thread-606928][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:01:49,960 [DEBUG][       Thread-606928][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:01:49,960 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:01:49,961 [DEBUG][       Thread-606928][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:01:49,962 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:01:50,015 [DEBUG][       Thread-606928][   transport.py][1871] : userauth is OK
2025-07-01 14:01:50,016 [DEBUG][       Thread-606928][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:01:50,016 [DEBUG][       Thread-606928][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:01:50,016 [DEBUG][       Thread-606928][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:01:50,016 [DEBUG][       Thread-606928][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:01:50,036 [ INFO][       Thread-606928][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:01:50,037 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:01:50,037 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:01:51,085 [DEBUG][       Thread-606928][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:01:51,085 [DEBUG][       Thread-606928][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:01:51,136 [DEBUG][       Thread-606928][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:01:51,137 [DEBUG][       Thread-606928][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:01:51,147 [DEBUG][       Thread-606928][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:01:51,155 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:01:51,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')
2025-07-01 14:01:51,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') -> 00000000
2025-07-01 14:01:51,175 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:01:51,175 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:01:51,175 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:01:51,184 [DEBUG][       Thread-606928][   transport.py][1871] : EOF in transport thread
2025-07-01 14:01:51,584 [DEBUG][Thread-606930 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:02:00,616 [DEBUG][Thread-606931 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:02:01,184 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:02:01,184 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:02:01,184 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:02:01,184 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:02:01,685 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 1, 42), 11.24, 46.51, 0.0, 29.5, 13.56, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:02:01,685 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:01:42
2025-07-01 14:02:01,773 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:02:01,777 [DEBUG][       Thread-606932][   transport.py][1871] : starting thread (client mode): 0x8171b70
2025-07-01 14:02:01,777 [DEBUG][       Thread-606932][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:02:01,798 [DEBUG][       Thread-606932][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:02:01,798 [ INFO][       Thread-606932][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:02:01,799 [DEBUG][       Thread-606932][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:02:01,799 [DEBUG][       Thread-606932][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:02:01,799 [DEBUG][       Thread-606932][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:02:01,799 [DEBUG][       Thread-606932][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:02:01,799 [DEBUG][       Thread-606932][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:02:01,799 [DEBUG][       Thread-606932][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:02:01,799 [DEBUG][       Thread-606932][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:02:01,799 [DEBUG][       Thread-606932][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:02:01,800 [DEBUG][       Thread-606932][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:02:01,800 [DEBUG][       Thread-606932][   transport.py][1871] : client lang: <none>
2025-07-01 14:02:01,800 [DEBUG][       Thread-606932][   transport.py][1871] : server lang: <none>
2025-07-01 14:02:01,800 [DEBUG][       Thread-606932][   transport.py][1871] : kex follows: False
2025-07-01 14:02:01,800 [DEBUG][       Thread-606932][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:02:01,800 [DEBUG][       Thread-606932][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:02:01,800 [DEBUG][       Thread-606932][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:02:01,800 [DEBUG][       Thread-606932][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:02:01,800 [DEBUG][       Thread-606932][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:02:01,800 [DEBUG][       Thread-606932][   transport.py][1871] : Compression: none
2025-07-01 14:02:01,800 [DEBUG][       Thread-606932][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:02:01,807 [DEBUG][       Thread-606932][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:02:01,807 [DEBUG][       Thread-606932][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:02:01,807 [DEBUG][       Thread-606932][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:02:01,807 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:02:01,807 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:02:01,807 [DEBUG][       Thread-606932][   transport.py][1871] : userauth is OK
2025-07-01 14:02:01,820 [ INFO][       Thread-606932][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:02:01,820 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:02:02,452 [DEBUG][       Thread-606932][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:02:02,452 [DEBUG][       Thread-606932][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:02:02,496 [DEBUG][       Thread-606932][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:02:02,496 [DEBUG][       Thread-606932][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:02:02,499 [DEBUG][       Thread-606932][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:02:02,512 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:02:02,513 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:02:02,514 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:02:02,515 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:02:02,518 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:02:02,518 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:02:02,518 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:02:02,519 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:02:02,519 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.500983 -999.00  +13.40  42.80     51   +3.70 1 1 2 1 1   887    0 9.69 -14.06 ----- 35.8 42.8 22.8 48.2 16.1 -23.1 15.4 -23.6 15.5 -22.5 16.2 -21.5
2025-07-01 14:02:02,519 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:02:02,519 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:02:02,519 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.500983
2025-07-01 14:02:02,519 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:02:02,519 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:02:02,519 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:02:02,519 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:02:02,519 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 14:02:02,519 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:01:42', tmtdew=11.24, humidity=46.51, cloud=0.0, wind=29.5, temperature=13.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:01:24.931', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:02:02,520 [DEBUG][       Thread-606932][   transport.py][1871] : EOF in transport thread
2025-07-01 14:02:02,593 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:02:02,604 [DEBUG][       Thread-606935][   transport.py][1871] : starting thread (client mode): 0x81db550
2025-07-01 14:02:02,604 [DEBUG][       Thread-606935][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:02:02,621 [DEBUG][       Thread-606935][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:02:02,621 [ INFO][       Thread-606935][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:02:02,628 [DEBUG][       Thread-606935][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:02:02,628 [DEBUG][       Thread-606935][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:02:02,628 [DEBUG][       Thread-606935][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:02:02,629 [DEBUG][       Thread-606935][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:02:02,629 [DEBUG][       Thread-606935][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:02:02,629 [DEBUG][       Thread-606935][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:02:02,629 [DEBUG][       Thread-606935][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:02:02,629 [DEBUG][       Thread-606935][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:02:02,629 [DEBUG][       Thread-606935][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:02:02,629 [DEBUG][       Thread-606935][   transport.py][1871] : client lang: <none>
2025-07-01 14:02:02,629 [DEBUG][       Thread-606935][   transport.py][1871] : server lang: <none>
2025-07-01 14:02:02,629 [DEBUG][       Thread-606935][   transport.py][1871] : kex follows: False
2025-07-01 14:02:02,629 [DEBUG][       Thread-606935][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:02:02,629 [DEBUG][       Thread-606935][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:02:02,629 [DEBUG][       Thread-606935][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:02:02,629 [DEBUG][       Thread-606935][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:02:02,629 [DEBUG][       Thread-606935][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:02:02,629 [DEBUG][       Thread-606935][   transport.py][1871] : Compression: none
2025-07-01 14:02:02,629 [DEBUG][       Thread-606935][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:02:02,686 [DEBUG][       Thread-606935][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:02:02,686 [DEBUG][       Thread-606935][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:02:02,686 [DEBUG][       Thread-606935][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:02:02,686 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:02:02,686 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:02:02,747 [DEBUG][       Thread-606935][   transport.py][1871] : userauth is OK
2025-07-01 14:02:02,747 [DEBUG][       Thread-606935][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:02:02,747 [DEBUG][       Thread-606935][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:02:02,747 [DEBUG][       Thread-606935][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:02:02,747 [DEBUG][       Thread-606935][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:02:02,761 [ INFO][       Thread-606935][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:02:02,761 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:02:02,761 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:02:03,784 [DEBUG][       Thread-606935][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:02:03,784 [DEBUG][       Thread-606935][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:02:03,835 [DEBUG][       Thread-606935][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:02:03,835 [DEBUG][       Thread-606935][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:02:03,844 [DEBUG][       Thread-606935][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:02:03,852 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:02:03,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')
2025-07-01 14:02:03,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') -> 00000000
2025-07-01 14:02:03,867 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:02:03,867 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:02:03,868 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:02:03,875 [DEBUG][       Thread-606935][   transport.py][1871] : EOF in transport thread
2025-07-01 14:02:09,636 [DEBUG][Thread-606937 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:02:13,876 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:02:13,876 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:02:13,876 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:02:13,877 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:02:14,344 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 1, 42), 11.24, 46.51, 0.0, 29.5, 13.56, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:02:14,344 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:01:42
2025-07-01 14:02:14,431 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:02:14,434 [DEBUG][       Thread-606938][   transport.py][1871] : starting thread (client mode): 0x81da6e0
2025-07-01 14:02:14,435 [DEBUG][       Thread-606938][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:02:14,454 [DEBUG][       Thread-606938][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:02:14,454 [ INFO][       Thread-606938][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:02:14,458 [DEBUG][       Thread-606938][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:02:14,458 [DEBUG][       Thread-606938][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:02:14,458 [DEBUG][       Thread-606938][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:02:14,458 [DEBUG][       Thread-606938][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:02:14,458 [DEBUG][       Thread-606938][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:02:14,458 [DEBUG][       Thread-606938][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:02:14,458 [DEBUG][       Thread-606938][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:02:14,458 [DEBUG][       Thread-606938][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:02:14,458 [DEBUG][       Thread-606938][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:02:14,458 [DEBUG][       Thread-606938][   transport.py][1871] : client lang: <none>
2025-07-01 14:02:14,458 [DEBUG][       Thread-606938][   transport.py][1871] : server lang: <none>
2025-07-01 14:02:14,458 [DEBUG][       Thread-606938][   transport.py][1871] : kex follows: False
2025-07-01 14:02:14,458 [DEBUG][       Thread-606938][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:02:14,458 [DEBUG][       Thread-606938][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:02:14,458 [DEBUG][       Thread-606938][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:02:14,458 [DEBUG][       Thread-606938][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:02:14,458 [DEBUG][       Thread-606938][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:02:14,458 [DEBUG][       Thread-606938][   transport.py][1871] : Compression: none
2025-07-01 14:02:14,458 [DEBUG][       Thread-606938][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:02:14,476 [DEBUG][       Thread-606938][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:02:14,477 [DEBUG][       Thread-606938][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:02:14,477 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:02:14,477 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:02:14,477 [DEBUG][       Thread-606938][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:02:14,477 [DEBUG][       Thread-606938][   transport.py][1871] : userauth is OK
2025-07-01 14:02:14,501 [ INFO][       Thread-606938][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:02:14,502 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:02:15,161 [DEBUG][       Thread-606938][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:02:15,162 [DEBUG][       Thread-606938][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:02:15,204 [DEBUG][       Thread-606938][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:02:15,204 [DEBUG][       Thread-606938][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:02:15,207 [DEBUG][       Thread-606938][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:02:15,219 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:02:15,219 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:02:15,220 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:02:15,221 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:02:15,224 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:02:15,225 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:02:15,225 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:02:15,225 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:02:15,225 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.500983 -999.00  +13.40  42.80     51   +3.70 1 1 2 1 1   887    0 9.69 -14.06 ----- 35.8 42.8 22.8 48.2 16.1 -23.1 15.4 -23.6 15.5 -22.5 16.2 -21.5
2025-07-01 14:02:15,225 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:02:15,225 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:02:15,225 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.500983
2025-07-01 14:02:15,225 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:02:15,225 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:02:15,225 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:02:15,225 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:02:15,225 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 14:02:15,225 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:01:42', tmtdew=11.24, humidity=46.51, cloud=0.0, wind=29.5, temperature=13.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:01:24.931', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:02:15,226 [DEBUG][       Thread-606938][   transport.py][1871] : EOF in transport thread
2025-07-01 14:02:15,300 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:02:15,311 [DEBUG][       Thread-606941][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 14:02:15,311 [DEBUG][       Thread-606941][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:02:15,326 [DEBUG][       Thread-606941][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:02:15,326 [ INFO][       Thread-606941][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:02:15,334 [DEBUG][       Thread-606941][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:02:15,334 [DEBUG][       Thread-606941][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:02:15,334 [DEBUG][       Thread-606941][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:02:15,334 [DEBUG][       Thread-606941][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:02:15,334 [DEBUG][       Thread-606941][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:02:15,334 [DEBUG][       Thread-606941][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:02:15,334 [DEBUG][       Thread-606941][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:02:15,334 [DEBUG][       Thread-606941][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:02:15,334 [DEBUG][       Thread-606941][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:02:15,334 [DEBUG][       Thread-606941][   transport.py][1871] : client lang: <none>
2025-07-01 14:02:15,334 [DEBUG][       Thread-606941][   transport.py][1871] : server lang: <none>
2025-07-01 14:02:15,334 [DEBUG][       Thread-606941][   transport.py][1871] : kex follows: False
2025-07-01 14:02:15,334 [DEBUG][       Thread-606941][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:02:15,334 [DEBUG][       Thread-606941][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:02:15,334 [DEBUG][       Thread-606941][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:02:15,334 [DEBUG][       Thread-606941][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:02:15,334 [DEBUG][       Thread-606941][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:02:15,334 [DEBUG][       Thread-606941][   transport.py][1871] : Compression: none
2025-07-01 14:02:15,334 [DEBUG][       Thread-606941][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:02:15,390 [DEBUG][       Thread-606941][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:02:15,390 [DEBUG][       Thread-606941][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:02:15,390 [DEBUG][       Thread-606941][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:02:15,390 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:02:15,390 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:02:15,448 [DEBUG][       Thread-606941][   transport.py][1871] : userauth is OK
2025-07-01 14:02:15,448 [DEBUG][       Thread-606941][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:02:15,448 [DEBUG][       Thread-606941][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:02:15,448 [DEBUG][       Thread-606941][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:02:15,448 [DEBUG][       Thread-606941][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:02:15,462 [ INFO][       Thread-606941][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:02:15,463 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:02:15,463 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:02:16,529 [DEBUG][       Thread-606941][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:02:16,529 [DEBUG][       Thread-606941][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:02:16,584 [DEBUG][       Thread-606941][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:02:16,584 [DEBUG][       Thread-606941][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:02:16,593 [DEBUG][       Thread-606941][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:02:16,602 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:02:16,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')
2025-07-01 14:02:16,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-07-01 14:02:16,620 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:02:16,620 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:02:16,621 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:02:16,628 [DEBUG][       Thread-606941][   transport.py][1871] : EOF in transport thread
2025-07-01 14:02:18,657 [DEBUG][Thread-606943 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:02:26,631 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:02:26,631 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:02:26,631 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:02:26,634 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:02:27,103 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 2, 14), 11.36, 46.11, 0.0, 46.42, 13.53, 0, 0, 0, 2, 1, 0),)
2025-07-01 14:02:27,103 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:02:14
2025-07-01 14:02:27,188 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:02:27,193 [DEBUG][       Thread-606944][   transport.py][1871] : starting thread (client mode): 0x75aabc0
2025-07-01 14:02:27,193 [DEBUG][       Thread-606944][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:02:27,213 [DEBUG][       Thread-606944][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:02:27,214 [ INFO][       Thread-606944][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:02:27,217 [DEBUG][       Thread-606944][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:02:27,217 [DEBUG][       Thread-606944][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:02:27,217 [DEBUG][       Thread-606944][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:02:27,217 [DEBUG][       Thread-606944][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:02:27,217 [DEBUG][       Thread-606944][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:02:27,217 [DEBUG][       Thread-606944][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:02:27,217 [DEBUG][       Thread-606944][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:02:27,217 [DEBUG][       Thread-606944][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:02:27,217 [DEBUG][       Thread-606944][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:02:27,217 [DEBUG][       Thread-606944][   transport.py][1871] : client lang: <none>
2025-07-01 14:02:27,217 [DEBUG][       Thread-606944][   transport.py][1871] : server lang: <none>
2025-07-01 14:02:27,217 [DEBUG][       Thread-606944][   transport.py][1871] : kex follows: False
2025-07-01 14:02:27,217 [DEBUG][       Thread-606944][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:02:27,217 [DEBUG][       Thread-606944][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:02:27,217 [DEBUG][       Thread-606944][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:02:27,217 [DEBUG][       Thread-606944][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:02:27,217 [DEBUG][       Thread-606944][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:02:27,217 [DEBUG][       Thread-606944][   transport.py][1871] : Compression: none
2025-07-01 14:02:27,217 [DEBUG][       Thread-606944][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:02:27,234 [DEBUG][       Thread-606944][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:02:27,235 [DEBUG][       Thread-606944][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:02:27,235 [DEBUG][       Thread-606944][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:02:27,235 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:02:27,236 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:02:27,237 [DEBUG][       Thread-606944][   transport.py][1871] : userauth is OK
2025-07-01 14:02:27,250 [ INFO][       Thread-606944][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:02:27,251 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:02:27,680 [DEBUG][Thread-606946 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:02:27,887 [DEBUG][       Thread-606944][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:02:27,887 [DEBUG][       Thread-606944][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:02:27,929 [DEBUG][       Thread-606944][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:02:27,929 [DEBUG][       Thread-606944][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:02:27,932 [DEBUG][       Thread-606944][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:02:27,946 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:02:27,947 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:02:27,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:02:27,951 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:02:27,957 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:02:27,959 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:02:27,959 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:02:27,960 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:02:27,960 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.501330 -999.00  +13.40  31.19     51   +3.50 1 2 2 1 1   887    0 9.38 -13.50 ----- 26.3 31.2 11.2 46.5 16.1 -22.7 15.3 -23.9 15.5 -22.0 16.1 -21.2
2025-07-01 14:02:27,960 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:02:27,960 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:02:27,960 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.501330
2025-07-01 14:02:27,961 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:02:27,961 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:02:27,961 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:02:27,961 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:02:27,961 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:02:27,962 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:02:14', tmtdew=11.36, humidity=46.11, cloud=0.0, wind=46.42, temperature=13.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=1, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:01:54.912', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:02:27,963 [DEBUG][       Thread-606944][   transport.py][1871] : EOF in transport thread
2025-07-01 14:02:28,045 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:02:28,057 [DEBUG][       Thread-606948][   transport.py][1871] : starting thread (client mode): 0x82b24a0
2025-07-01 14:02:28,057 [DEBUG][       Thread-606948][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:02:28,072 [DEBUG][       Thread-606948][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:02:28,072 [ INFO][       Thread-606948][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:02:28,080 [DEBUG][       Thread-606948][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:02:28,080 [DEBUG][       Thread-606948][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:02:28,080 [DEBUG][       Thread-606948][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:02:28,080 [DEBUG][       Thread-606948][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:02:28,080 [DEBUG][       Thread-606948][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:02:28,080 [DEBUG][       Thread-606948][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:02:28,080 [DEBUG][       Thread-606948][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:02:28,080 [DEBUG][       Thread-606948][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:02:28,080 [DEBUG][       Thread-606948][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:02:28,080 [DEBUG][       Thread-606948][   transport.py][1871] : client lang: <none>
2025-07-01 14:02:28,080 [DEBUG][       Thread-606948][   transport.py][1871] : server lang: <none>
2025-07-01 14:02:28,080 [DEBUG][       Thread-606948][   transport.py][1871] : kex follows: False
2025-07-01 14:02:28,081 [DEBUG][       Thread-606948][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:02:28,081 [DEBUG][       Thread-606948][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:02:28,081 [DEBUG][       Thread-606948][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:02:28,081 [DEBUG][       Thread-606948][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:02:28,081 [DEBUG][       Thread-606948][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:02:28,081 [DEBUG][       Thread-606948][   transport.py][1871] : Compression: none
2025-07-01 14:02:28,081 [DEBUG][       Thread-606948][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:02:28,140 [DEBUG][       Thread-606948][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:02:28,141 [DEBUG][       Thread-606948][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:02:28,141 [DEBUG][       Thread-606948][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:02:28,142 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:02:28,142 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:02:28,196 [DEBUG][       Thread-606948][   transport.py][1871] : userauth is OK
2025-07-01 14:02:28,196 [DEBUG][       Thread-606948][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:02:28,205 [DEBUG][       Thread-606948][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:02:28,205 [DEBUG][       Thread-606948][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:02:28,205 [DEBUG][       Thread-606948][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:02:28,225 [ INFO][       Thread-606948][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:02:28,225 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:02:28,226 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:02:29,215 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:02:29,216 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:02:29,277 [DEBUG][       Thread-606948][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:02:29,277 [DEBUG][       Thread-606948][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:02:29,328 [DEBUG][       Thread-606948][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:02:29,329 [DEBUG][       Thread-606948][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:02:29,339 [DEBUG][       Thread-606948][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:02:29,352 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:02:29,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-07-01 14:02:29,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-07-01 14:02:29,372 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:02:29,372 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:02:29,372 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:02:29,380 [DEBUG][       Thread-606948][   transport.py][1871] : EOF in transport thread
2025-07-01 14:02:33,677 [DEBUG][Thread-606950 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:02:36,706 [DEBUG][Thread-606951 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:02:39,383 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:02:39,383 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:02:39,383 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:02:39,384 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:02:39,877 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 2, 14), 11.36, 46.11, 0.0, 46.42, 13.53, 0, 0, 0, 2, 1, 0),)
2025-07-01 14:02:39,878 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:02:14
2025-07-01 14:02:39,969 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:02:39,973 [DEBUG][       Thread-606952][   transport.py][1871] : starting thread (client mode): 0x82b3670
2025-07-01 14:02:39,973 [DEBUG][       Thread-606952][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:02:39,992 [DEBUG][       Thread-606952][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:02:39,992 [ INFO][       Thread-606952][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:02:39,997 [DEBUG][       Thread-606952][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:02:39,997 [DEBUG][       Thread-606952][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:02:39,997 [DEBUG][       Thread-606952][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:02:39,997 [DEBUG][       Thread-606952][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:02:39,997 [DEBUG][       Thread-606952][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:02:39,997 [DEBUG][       Thread-606952][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:02:39,997 [DEBUG][       Thread-606952][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:02:39,997 [DEBUG][       Thread-606952][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:02:39,997 [DEBUG][       Thread-606952][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:02:39,997 [DEBUG][       Thread-606952][   transport.py][1871] : client lang: <none>
2025-07-01 14:02:39,997 [DEBUG][       Thread-606952][   transport.py][1871] : server lang: <none>
2025-07-01 14:02:39,997 [DEBUG][       Thread-606952][   transport.py][1871] : kex follows: False
2025-07-01 14:02:39,997 [DEBUG][       Thread-606952][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:02:39,997 [DEBUG][       Thread-606952][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:02:39,997 [DEBUG][       Thread-606952][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:02:39,997 [DEBUG][       Thread-606952][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:02:39,997 [DEBUG][       Thread-606952][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:02:39,997 [DEBUG][       Thread-606952][   transport.py][1871] : Compression: none
2025-07-01 14:02:39,997 [DEBUG][       Thread-606952][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:02:40,003 [DEBUG][       Thread-606952][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:02:40,003 [DEBUG][       Thread-606952][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:02:40,003 [DEBUG][       Thread-606952][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:02:40,004 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:02:40,004 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:02:40,004 [DEBUG][       Thread-606952][   transport.py][1871] : userauth is OK
2025-07-01 14:02:40,028 [ INFO][       Thread-606952][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:02:40,028 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:02:40,687 [DEBUG][       Thread-606952][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:02:40,687 [DEBUG][       Thread-606952][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:02:40,728 [DEBUG][       Thread-606952][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:02:40,728 [DEBUG][       Thread-606952][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:02:40,731 [DEBUG][       Thread-606952][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:02:40,742 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:02:40,742 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:02:40,744 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:02:40,745 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:02:40,747 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:02:40,748 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:02:40,748 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:02:40,748 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:02:40,749 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.501330 -999.00  +13.40  31.19     51   +3.50 1 2 2 1 1   887    0 9.38 -13.50 ----- 26.3 31.2 11.2 46.5 16.1 -22.7 15.3 -23.9 15.5 -22.0 16.1 -21.2
2025-07-01 14:02:40,749 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:02:40,749 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:02:40,749 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.501330
2025-07-01 14:02:40,749 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:02:40,749 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:02:40,749 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:02:40,749 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:02:40,749 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:02:40,749 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:02:14', tmtdew=11.36, humidity=46.11, cloud=0.0, wind=46.42, temperature=13.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=1, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:01:54.912', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:02:40,749 [DEBUG][       Thread-606952][   transport.py][1871] : EOF in transport thread
2025-07-01 14:02:40,824 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:02:40,833 [DEBUG][       Thread-606955][   transport.py][1871] : starting thread (client mode): 0x75a9960
2025-07-01 14:02:40,833 [DEBUG][       Thread-606955][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:02:40,848 [DEBUG][       Thread-606955][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:02:40,848 [ INFO][       Thread-606955][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:02:40,856 [DEBUG][       Thread-606955][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:02:40,856 [DEBUG][       Thread-606955][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:02:40,856 [DEBUG][       Thread-606955][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:02:40,856 [DEBUG][       Thread-606955][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:02:40,856 [DEBUG][       Thread-606955][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:02:40,856 [DEBUG][       Thread-606955][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:02:40,856 [DEBUG][       Thread-606955][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:02:40,856 [DEBUG][       Thread-606955][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:02:40,856 [DEBUG][       Thread-606955][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:02:40,856 [DEBUG][       Thread-606955][   transport.py][1871] : client lang: <none>
2025-07-01 14:02:40,856 [DEBUG][       Thread-606955][   transport.py][1871] : server lang: <none>
2025-07-01 14:02:40,856 [DEBUG][       Thread-606955][   transport.py][1871] : kex follows: False
2025-07-01 14:02:40,856 [DEBUG][       Thread-606955][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:02:40,856 [DEBUG][       Thread-606955][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:02:40,856 [DEBUG][       Thread-606955][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:02:40,856 [DEBUG][       Thread-606955][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:02:40,856 [DEBUG][       Thread-606955][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:02:40,856 [DEBUG][       Thread-606955][   transport.py][1871] : Compression: none
2025-07-01 14:02:40,856 [DEBUG][       Thread-606955][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:02:40,919 [DEBUG][       Thread-606955][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:02:40,919 [DEBUG][       Thread-606955][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:02:40,919 [DEBUG][       Thread-606955][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:02:40,919 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:02:40,919 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:02:40,979 [DEBUG][       Thread-606955][   transport.py][1871] : userauth is OK
2025-07-01 14:02:40,979 [DEBUG][       Thread-606955][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:02:40,979 [DEBUG][       Thread-606955][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:02:40,979 [DEBUG][       Thread-606955][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:02:40,979 [DEBUG][       Thread-606955][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:02:40,993 [ INFO][       Thread-606955][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:02:40,993 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:02:40,994 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:02:42,000 [DEBUG][       Thread-606955][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:02:42,000 [DEBUG][       Thread-606955][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:02:42,053 [DEBUG][       Thread-606955][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:02:42,053 [DEBUG][       Thread-606955][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:02:42,061 [DEBUG][       Thread-606955][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:02:42,069 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:02:42,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')
2025-07-01 14:02:42,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-07-01 14:02:42,086 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:02:42,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:02:42,086 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:02:42,095 [DEBUG][       Thread-606955][   transport.py][1871] : EOF in transport thread
2025-07-01 14:02:45,747 [DEBUG][Thread-606957 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:02:52,096 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:02:52,097 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:02:52,097 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:02:52,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-07-01 14:02:52,573 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 2, 46), 11.36, 46.1, 0.0, 44.34, 13.56, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:02:52,573 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:02:46
2025-07-01 14:02:52,658 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:02:52,662 [DEBUG][       Thread-606958][   transport.py][1871] : starting thread (client mode): 0x81a5090
2025-07-01 14:02:52,662 [DEBUG][       Thread-606958][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:02:52,683 [DEBUG][       Thread-606958][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:02:52,683 [ INFO][       Thread-606958][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:02:52,687 [DEBUG][       Thread-606958][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:02:52,687 [DEBUG][       Thread-606958][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:02:52,687 [DEBUG][       Thread-606958][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:02:52,687 [DEBUG][       Thread-606958][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:02:52,687 [DEBUG][       Thread-606958][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:02:52,687 [DEBUG][       Thread-606958][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:02:52,687 [DEBUG][       Thread-606958][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:02:52,687 [DEBUG][       Thread-606958][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:02:52,687 [DEBUG][       Thread-606958][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:02:52,687 [DEBUG][       Thread-606958][   transport.py][1871] : client lang: <none>
2025-07-01 14:02:52,687 [DEBUG][       Thread-606958][   transport.py][1871] : server lang: <none>
2025-07-01 14:02:52,687 [DEBUG][       Thread-606958][   transport.py][1871] : kex follows: False
2025-07-01 14:02:52,687 [DEBUG][       Thread-606958][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:02:52,687 [DEBUG][       Thread-606958][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:02:52,687 [DEBUG][       Thread-606958][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:02:52,687 [DEBUG][       Thread-606958][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:02:52,687 [DEBUG][       Thread-606958][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:02:52,687 [DEBUG][       Thread-606958][   transport.py][1871] : Compression: none
2025-07-01 14:02:52,687 [DEBUG][       Thread-606958][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:02:52,703 [DEBUG][       Thread-606958][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:02:52,704 [DEBUG][       Thread-606958][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:02:52,704 [DEBUG][       Thread-606958][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:02:52,704 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:02:52,705 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:02:52,706 [DEBUG][       Thread-606958][   transport.py][1871] : userauth is OK
2025-07-01 14:02:52,718 [ INFO][       Thread-606958][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:02:52,719 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:02:53,287 [DEBUG][       Thread-606958][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:02:53,287 [DEBUG][       Thread-606958][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:02:53,329 [DEBUG][       Thread-606958][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:02:53,329 [DEBUG][       Thread-606958][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:02:53,334 [DEBUG][       Thread-606958][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:02:53,342 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:02:53,343 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:02:53,348 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:02:53,350 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:02:53,354 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:02:53,355 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:02:53,356 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:02:53,356 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:02:53,356 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.501330 -999.00  +13.40  31.19     51   +3.50 1 2 2 1 1   887    0 9.38 -13.50 ----- 26.3 31.2 11.2 46.5 16.1 -22.7 15.3 -23.9 15.5 -22.0 16.1 -21.2
2025-07-01 14:02:53,357 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:02:53,357 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:02:53,357 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.501330
2025-07-01 14:02:53,357 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:02:53,358 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:02:53,358 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:02:53,358 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:02:53,358 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:02:53,358 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:02:46', tmtdew=11.36, humidity=46.1, cloud=0.0, wind=44.34, temperature=13.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:01:54.912', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:02:53,359 [DEBUG][       Thread-606958][   transport.py][1871] : EOF in transport thread
2025-07-01 14:02:53,443 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:02:53,454 [DEBUG][       Thread-606961][   transport.py][1871] : starting thread (client mode): 0x818f010
2025-07-01 14:02:53,455 [DEBUG][       Thread-606961][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:02:53,471 [DEBUG][       Thread-606961][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:02:53,471 [ INFO][       Thread-606961][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:02:53,479 [DEBUG][       Thread-606961][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:02:53,479 [DEBUG][       Thread-606961][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:02:53,479 [DEBUG][       Thread-606961][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:02:53,479 [DEBUG][       Thread-606961][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:02:53,479 [DEBUG][       Thread-606961][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:02:53,479 [DEBUG][       Thread-606961][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:02:53,479 [DEBUG][       Thread-606961][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:02:53,479 [DEBUG][       Thread-606961][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:02:53,479 [DEBUG][       Thread-606961][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:02:53,479 [DEBUG][       Thread-606961][   transport.py][1871] : client lang: <none>
2025-07-01 14:02:53,480 [DEBUG][       Thread-606961][   transport.py][1871] : server lang: <none>
2025-07-01 14:02:53,480 [DEBUG][       Thread-606961][   transport.py][1871] : kex follows: False
2025-07-01 14:02:53,480 [DEBUG][       Thread-606961][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:02:53,480 [DEBUG][       Thread-606961][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:02:53,480 [DEBUG][       Thread-606961][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:02:53,480 [DEBUG][       Thread-606961][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:02:53,480 [DEBUG][       Thread-606961][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:02:53,480 [DEBUG][       Thread-606961][   transport.py][1871] : Compression: none
2025-07-01 14:02:53,480 [DEBUG][       Thread-606961][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:02:53,536 [DEBUG][       Thread-606961][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:02:53,536 [DEBUG][       Thread-606961][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:02:53,537 [DEBUG][       Thread-606961][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:02:53,537 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:02:53,538 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:02:53,592 [DEBUG][       Thread-606961][   transport.py][1871] : userauth is OK
2025-07-01 14:02:53,592 [DEBUG][       Thread-606961][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:02:53,592 [DEBUG][       Thread-606961][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:02:53,593 [DEBUG][       Thread-606961][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:02:53,593 [DEBUG][       Thread-606961][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:02:53,611 [ INFO][       Thread-606961][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:02:53,612 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:02:53,612 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:02:54,657 [DEBUG][       Thread-606961][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:02:54,658 [DEBUG][       Thread-606961][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:02:54,708 [DEBUG][       Thread-606961][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:02:54,708 [DEBUG][       Thread-606961][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:02:54,717 [DEBUG][       Thread-606961][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:02:54,727 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:02:54,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-07-01 14:02:54,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-07-01 14:02:54,745 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:02:54,745 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:02:54,745 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:02:54,753 [DEBUG][       Thread-606961][   transport.py][1871] : EOF in transport thread
2025-07-01 14:02:54,767 [DEBUG][Thread-606963 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:03:03,811 [DEBUG][Thread-606964 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:03:04,756 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:03:04,756 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:03:04,756 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:03: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-07-01 14:03:05,228 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 2, 46), 11.36, 46.1, 0.0, 44.34, 13.56, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:03:05,228 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:02:46
2025-07-01 14:03:05,313 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:03:05,317 [DEBUG][       Thread-606965][   transport.py][1871] : starting thread (client mode): 0x81a4130
2025-07-01 14:03:05,317 [DEBUG][       Thread-606965][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:03:05,335 [DEBUG][       Thread-606965][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:03:05,335 [ INFO][       Thread-606965][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:03:05,338 [DEBUG][       Thread-606965][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:03:05,339 [DEBUG][       Thread-606965][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:03:05,339 [DEBUG][       Thread-606965][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:03:05,339 [DEBUG][       Thread-606965][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:03:05,339 [DEBUG][       Thread-606965][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:03:05,339 [DEBUG][       Thread-606965][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:03:05,339 [DEBUG][       Thread-606965][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:03:05,339 [DEBUG][       Thread-606965][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:03:05,339 [DEBUG][       Thread-606965][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:03:05,339 [DEBUG][       Thread-606965][   transport.py][1871] : client lang: <none>
2025-07-01 14:03:05,339 [DEBUG][       Thread-606965][   transport.py][1871] : server lang: <none>
2025-07-01 14:03:05,339 [DEBUG][       Thread-606965][   transport.py][1871] : kex follows: False
2025-07-01 14:03:05,339 [DEBUG][       Thread-606965][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:03:05,339 [DEBUG][       Thread-606965][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:03:05,339 [DEBUG][       Thread-606965][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:03:05,339 [DEBUG][       Thread-606965][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:03:05,339 [DEBUG][       Thread-606965][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:03:05,339 [DEBUG][       Thread-606965][   transport.py][1871] : Compression: none
2025-07-01 14:03:05,339 [DEBUG][       Thread-606965][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:03:05,354 [DEBUG][       Thread-606965][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:03:05,355 [DEBUG][       Thread-606965][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:03:05,355 [DEBUG][       Thread-606965][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:03:05,355 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:03:05,355 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:03:05,356 [DEBUG][       Thread-606965][   transport.py][1871] : userauth is OK
2025-07-01 14:03:05,383 [ INFO][       Thread-606965][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:03:05,383 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:03:06,035 [DEBUG][       Thread-606965][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:03:06,036 [DEBUG][       Thread-606965][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:03:06,077 [DEBUG][       Thread-606965][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:03:06,077 [DEBUG][       Thread-606965][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:03:06,080 [DEBUG][       Thread-606965][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:03:06,095 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:03:06,096 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:03:06,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:03:06,100 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:03:06,105 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:03:06,107 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:03:06,107 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:03:06,107 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:03:06,108 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.501678 -999.00  +13.50  37.68     51   +3.50 1 2 2 1 1   887    0 9.58 -9.10 ----- 25.7 37.7 24.4 49.4 16.1 -22.8 15.4 -24.0 15.5 -20.9 16.2 -21.3
2025-07-01 14:03:06,108 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:03:06,108 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:03:06,108 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.501678
2025-07-01 14:03:06,108 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:03:06,109 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:03:06,109 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:03:06,109 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:03:06,109 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:03:06,109 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:02:46', tmtdew=11.36, humidity=46.1, cloud=0.0, wind=44.34, temperature=13.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:02:24.979', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:03:06,110 [DEBUG][       Thread-606965][   transport.py][1871] : EOF in transport thread
2025-07-01 14:03:06,193 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:03:06,207 [DEBUG][       Thread-606968][   transport.py][1871] : starting thread (client mode): 0x8173e50
2025-07-01 14:03:06,207 [DEBUG][       Thread-606968][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:03:06,222 [DEBUG][       Thread-606968][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:03:06,222 [ INFO][       Thread-606968][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:03:06,230 [DEBUG][       Thread-606968][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:03:06,230 [DEBUG][       Thread-606968][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:03:06,230 [DEBUG][       Thread-606968][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:03:06,230 [DEBUG][       Thread-606968][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:03:06,230 [DEBUG][       Thread-606968][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:03:06,231 [DEBUG][       Thread-606968][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:03:06,231 [DEBUG][       Thread-606968][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:03:06,231 [DEBUG][       Thread-606968][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:03:06,231 [DEBUG][       Thread-606968][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:03:06,231 [DEBUG][       Thread-606968][   transport.py][1871] : client lang: <none>
2025-07-01 14:03:06,231 [DEBUG][       Thread-606968][   transport.py][1871] : server lang: <none>
2025-07-01 14:03:06,231 [DEBUG][       Thread-606968][   transport.py][1871] : kex follows: False
2025-07-01 14:03:06,231 [DEBUG][       Thread-606968][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:03:06,231 [DEBUG][       Thread-606968][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:03:06,231 [DEBUG][       Thread-606968][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:03:06,231 [DEBUG][       Thread-606968][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:03:06,231 [DEBUG][       Thread-606968][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:03:06,231 [DEBUG][       Thread-606968][   transport.py][1871] : Compression: none
2025-07-01 14:03:06,231 [DEBUG][       Thread-606968][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:03:06,288 [DEBUG][       Thread-606968][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:03:06,289 [DEBUG][       Thread-606968][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:03:06,289 [DEBUG][       Thread-606968][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:03:06,290 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:03:06,290 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:03:06,344 [DEBUG][       Thread-606968][   transport.py][1871] : userauth is OK
2025-07-01 14:03:06,345 [DEBUG][       Thread-606968][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:03:06,345 [DEBUG][       Thread-606968][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:03:06,345 [DEBUG][       Thread-606968][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:03:06,345 [DEBUG][       Thread-606968][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:03:06,369 [ INFO][       Thread-606968][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:03:06,369 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:03:06,369 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:03:07,432 [DEBUG][       Thread-606968][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:03:07,433 [DEBUG][       Thread-606968][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:03:07,484 [DEBUG][       Thread-606968][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:03:07,484 [DEBUG][       Thread-606968][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:03:07,497 [DEBUG][       Thread-606968][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:03:07,511 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:03: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-07-01 14:03:07,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-07-01 14:03:07,532 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:03:07,532 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:03:07,533 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:03:07,543 [DEBUG][       Thread-606968][   transport.py][1871] : EOF in transport thread
2025-07-01 14:03:12,833 [DEBUG][Thread-606970 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:03:17,543 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:03:17,543 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:03:17,543 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:03:17,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-07-01 14:03:18,038 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 2, 46), 11.36, 46.1, 0.0, 44.34, 13.56, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:03:18,038 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:02:46
2025-07-01 14:03:18,132 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:03:18,137 [DEBUG][       Thread-606971][   transport.py][1871] : starting thread (client mode): 0x8171240
2025-07-01 14:03:18,137 [DEBUG][       Thread-606971][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:03:18,160 [DEBUG][       Thread-606971][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:03:18,160 [ INFO][       Thread-606971][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:03:18,163 [DEBUG][       Thread-606971][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:03:18,163 [DEBUG][       Thread-606971][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:03:18,163 [DEBUG][       Thread-606971][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:03:18,163 [DEBUG][       Thread-606971][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:03:18,163 [DEBUG][       Thread-606971][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:03:18,163 [DEBUG][       Thread-606971][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:03:18,163 [DEBUG][       Thread-606971][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:03:18,163 [DEBUG][       Thread-606971][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:03:18,163 [DEBUG][       Thread-606971][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:03:18,164 [DEBUG][       Thread-606971][   transport.py][1871] : client lang: <none>
2025-07-01 14:03:18,164 [DEBUG][       Thread-606971][   transport.py][1871] : server lang: <none>
2025-07-01 14:03:18,164 [DEBUG][       Thread-606971][   transport.py][1871] : kex follows: False
2025-07-01 14:03:18,164 [DEBUG][       Thread-606971][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:03:18,164 [DEBUG][       Thread-606971][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:03:18,164 [DEBUG][       Thread-606971][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:03:18,164 [DEBUG][       Thread-606971][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:03:18,164 [DEBUG][       Thread-606971][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:03:18,164 [DEBUG][       Thread-606971][   transport.py][1871] : Compression: none
2025-07-01 14:03:18,164 [DEBUG][       Thread-606971][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:03:18,178 [DEBUG][       Thread-606971][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:03:18,178 [DEBUG][       Thread-606971][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:03:18,178 [DEBUG][       Thread-606971][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:03:18,178 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:03:18,178 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:03:18,179 [DEBUG][       Thread-606971][   transport.py][1871] : userauth is OK
2025-07-01 14:03:18,191 [ INFO][       Thread-606971][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:03:18,191 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:03:18,833 [DEBUG][       Thread-606971][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:03:18,833 [DEBUG][       Thread-606971][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:03:18,876 [DEBUG][       Thread-606971][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:03:18,877 [DEBUG][       Thread-606971][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:03:18,879 [DEBUG][       Thread-606971][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:03:18,890 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:03:18,890 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:03:18,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:03:18,892 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:03:18,895 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:03:18,896 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:03:18,896 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:03:18,896 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:03:18,896 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.501678 -999.00  +13.50  37.68     51   +3.50 1 2 2 1 1   887    0 9.58 -9.10 ----- 25.7 37.7 24.4 49.4 16.1 -22.8 15.4 -24.0 15.5 -20.9 16.2 -21.3
2025-07-01 14:03:18,896 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:03:18,896 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:03:18,896 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.501678
2025-07-01 14:03:18,896 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:03:18,897 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:03:18,897 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:03:18,897 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:03:18,897 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:03:18,897 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:02:46', tmtdew=11.36, humidity=46.1, cloud=0.0, wind=44.34, temperature=13.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:02:24.979', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:03:18,897 [DEBUG][       Thread-606971][   transport.py][1871] : EOF in transport thread
2025-07-01 14:03:18,977 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:03:18,988 [DEBUG][       Thread-606974][   transport.py][1871] : starting thread (client mode): 0x75ab190
2025-07-01 14:03:18,988 [DEBUG][       Thread-606974][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:03:19,003 [DEBUG][       Thread-606974][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:03:19,003 [ INFO][       Thread-606974][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:03:19,010 [DEBUG][       Thread-606974][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:03:19,010 [DEBUG][       Thread-606974][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:03:19,010 [DEBUG][       Thread-606974][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:03:19,010 [DEBUG][       Thread-606974][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:03:19,010 [DEBUG][       Thread-606974][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:03:19,010 [DEBUG][       Thread-606974][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:03:19,010 [DEBUG][       Thread-606974][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:03:19,010 [DEBUG][       Thread-606974][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:03:19,010 [DEBUG][       Thread-606974][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:03:19,010 [DEBUG][       Thread-606974][   transport.py][1871] : client lang: <none>
2025-07-01 14:03:19,010 [DEBUG][       Thread-606974][   transport.py][1871] : server lang: <none>
2025-07-01 14:03:19,010 [DEBUG][       Thread-606974][   transport.py][1871] : kex follows: False
2025-07-01 14:03:19,010 [DEBUG][       Thread-606974][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:03:19,010 [DEBUG][       Thread-606974][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:03:19,010 [DEBUG][       Thread-606974][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:03:19,010 [DEBUG][       Thread-606974][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:03:19,010 [DEBUG][       Thread-606974][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:03:19,010 [DEBUG][       Thread-606974][   transport.py][1871] : Compression: none
2025-07-01 14:03:19,010 [DEBUG][       Thread-606974][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:03:19,066 [DEBUG][       Thread-606974][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:03:19,066 [DEBUG][       Thread-606974][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:03:19,067 [DEBUG][       Thread-606974][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:03:19,067 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:03:19,067 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:03:19,124 [DEBUG][       Thread-606974][   transport.py][1871] : userauth is OK
2025-07-01 14:03:19,124 [DEBUG][       Thread-606974][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:03:19,124 [DEBUG][       Thread-606974][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:03:19,124 [DEBUG][       Thread-606974][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:03:19,124 [DEBUG][       Thread-606974][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:03:19,138 [ INFO][       Thread-606974][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:03:19,138 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:03:19,138 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:03:20,169 [DEBUG][       Thread-606974][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:03:20,169 [DEBUG][       Thread-606974][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:03:20,219 [DEBUG][       Thread-606974][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:03:20,220 [DEBUG][       Thread-606974][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:03:20,228 [DEBUG][       Thread-606974][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:03:20,236 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:03:20,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-07-01 14:03:20,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-07-01 14:03:20,252 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:03:20,252 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:03:20,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:03:20,260 [DEBUG][       Thread-606974][   transport.py][1871] : EOF in transport thread
2025-07-01 14:03:21,853 [DEBUG][Thread-606976 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:03:29,354 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:03:29,356 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:03:30,262 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:03:30,262 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:03:30,263 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:03:30,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-07-01 14:03:30,746 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 3, 17), 11.31, 46.51, 0.0, 38.4, 13.56, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:03:30,746 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:03:17
2025-07-01 14:03:30,830 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:03:30,834 [DEBUG][       Thread-606977][   transport.py][1871] : starting thread (client mode): 0x75a9ab0
2025-07-01 14:03:30,834 [DEBUG][       Thread-606977][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:03:30,855 [DEBUG][       Thread-606977][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:03:30,855 [ INFO][       Thread-606977][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:03:30,858 [DEBUG][       Thread-606977][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:03:30,858 [DEBUG][       Thread-606977][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:03:30,858 [DEBUG][       Thread-606977][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:03:30,858 [DEBUG][       Thread-606977][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:03:30,858 [DEBUG][       Thread-606977][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:03:30,858 [DEBUG][       Thread-606977][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:03:30,858 [DEBUG][       Thread-606977][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:03:30,858 [DEBUG][       Thread-606977][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:03:30,858 [DEBUG][       Thread-606977][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:03:30,858 [DEBUG][       Thread-606977][   transport.py][1871] : client lang: <none>
2025-07-01 14:03:30,858 [DEBUG][       Thread-606977][   transport.py][1871] : server lang: <none>
2025-07-01 14:03:30,858 [DEBUG][       Thread-606977][   transport.py][1871] : kex follows: False
2025-07-01 14:03:30,858 [DEBUG][       Thread-606977][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:03:30,858 [DEBUG][       Thread-606977][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:03:30,858 [DEBUG][       Thread-606977][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:03:30,859 [DEBUG][       Thread-606977][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:03:30,859 [DEBUG][       Thread-606977][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:03:30,859 [DEBUG][       Thread-606977][   transport.py][1871] : Compression: none
2025-07-01 14:03:30,859 [DEBUG][       Thread-606977][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:03:30,874 [DEBUG][       Thread-606977][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:03:30,875 [DEBUG][Thread-606979 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:03:30,876 [DEBUG][       Thread-606977][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:03:30,877 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:03:30,877 [DEBUG][       Thread-606977][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:03:30,877 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:03:30,879 [DEBUG][       Thread-606977][   transport.py][1871] : userauth is OK
2025-07-01 14:03:30,904 [ INFO][       Thread-606977][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:03:30,904 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:03:31,560 [DEBUG][       Thread-606977][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:03:31,560 [DEBUG][       Thread-606977][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:03:31,601 [DEBUG][       Thread-606977][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:03:31,601 [DEBUG][       Thread-606977][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:03:31,605 [DEBUG][       Thread-606977][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:03:31,619 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:03:31,619 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:03:31,621 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:03:31,623 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:03:31,629 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:03:31,631 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:03:31,631 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:03:31,631 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:03:31,632 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.502025 -999.00  +13.50  31.43     51   +3.50 1 2 2 1 1   887    0 9.61 -6.75 ----- 30.7 31.4 21.2 51.2 16.1 -22.5 15.4 -23.0 15.5 -21.1 16.3 -20.8
2025-07-01 14:03:31,632 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:03:31,632 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:03:31,632 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.502025
2025-07-01 14:03:31,632 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:03:31,633 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:03:31,633 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:03:31,633 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:03:31,633 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:03:31,633 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:03:17', tmtdew=11.31, humidity=46.51, cloud=0.0, wind=38.4, temperature=13.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:02:54.960', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:03:31,633 [DEBUG][       Thread-606977][   transport.py][1871] : EOF in transport thread
2025-07-01 14:03:31,720 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:03:31,732 [DEBUG][       Thread-606981][   transport.py][1871] : starting thread (client mode): 0x81c9c30
2025-07-01 14:03:31,732 [DEBUG][       Thread-606981][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:03:31,747 [DEBUG][       Thread-606981][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:03:31,747 [ INFO][       Thread-606981][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:03:31,755 [DEBUG][       Thread-606981][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:03:31,756 [DEBUG][       Thread-606981][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:03:31,756 [DEBUG][       Thread-606981][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:03:31,756 [DEBUG][       Thread-606981][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:03:31,756 [DEBUG][       Thread-606981][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:03:31,756 [DEBUG][       Thread-606981][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:03:31,756 [DEBUG][       Thread-606981][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:03:31,756 [DEBUG][       Thread-606981][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:03:31,756 [DEBUG][       Thread-606981][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:03:31,756 [DEBUG][       Thread-606981][   transport.py][1871] : client lang: <none>
2025-07-01 14:03:31,756 [DEBUG][       Thread-606981][   transport.py][1871] : server lang: <none>
2025-07-01 14:03:31,756 [DEBUG][       Thread-606981][   transport.py][1871] : kex follows: False
2025-07-01 14:03:31,756 [DEBUG][       Thread-606981][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:03:31,756 [DEBUG][       Thread-606981][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:03:31,756 [DEBUG][       Thread-606981][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:03:31,756 [DEBUG][       Thread-606981][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:03:31,756 [DEBUG][       Thread-606981][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:03:31,756 [DEBUG][       Thread-606981][   transport.py][1871] : Compression: none
2025-07-01 14:03:31,756 [DEBUG][       Thread-606981][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:03:31,812 [DEBUG][       Thread-606981][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:03:31,812 [DEBUG][       Thread-606981][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:03:31,813 [DEBUG][       Thread-606981][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:03:31,813 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:03:31,814 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:03:31,868 [DEBUG][       Thread-606981][   transport.py][1871] : userauth is OK
2025-07-01 14:03:31,869 [DEBUG][       Thread-606981][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:03:31,869 [DEBUG][       Thread-606981][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:03:31,869 [DEBUG][       Thread-606981][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:03:31,869 [DEBUG][       Thread-606981][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:03:31,888 [ INFO][       Thread-606981][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:03:31,889 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:03:31,889 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:03:32,934 [DEBUG][       Thread-606981][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:03:32,934 [DEBUG][       Thread-606981][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:03:32,984 [DEBUG][       Thread-606981][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:03:32,984 [DEBUG][       Thread-606981][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:03:32,993 [DEBUG][       Thread-606981][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:03:33,002 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:03:33,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-07-01 14:03:33,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-07-01 14:03:33,020 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:03:33,021 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:03:33,021 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:03:33,029 [DEBUG][       Thread-606981][   transport.py][1871] : EOF in transport thread
2025-07-01 14:03:33,709 [DEBUG][Thread-606983 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:03:39,897 [DEBUG][Thread-606984 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:03:43,031 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:03:43,032 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:03:43,032 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:03:43,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-07-01 14:03:43,502 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 3, 17), 11.31, 46.51, 0.0, 38.4, 13.56, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:03:43,502 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:03:17
2025-07-01 14:03:43,587 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:03:43,590 [DEBUG][       Thread-606985][   transport.py][1871] : starting thread (client mode): 0x818c460
2025-07-01 14:03:43,590 [DEBUG][       Thread-606985][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:03:43,610 [DEBUG][       Thread-606985][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:03:43,611 [ INFO][       Thread-606985][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:03:43,614 [DEBUG][       Thread-606985][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:03:43,614 [DEBUG][       Thread-606985][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:03:43,614 [DEBUG][       Thread-606985][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:03:43,614 [DEBUG][       Thread-606985][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:03:43,614 [DEBUG][       Thread-606985][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:03:43,614 [DEBUG][       Thread-606985][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:03:43,614 [DEBUG][       Thread-606985][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:03:43,614 [DEBUG][       Thread-606985][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:03:43,614 [DEBUG][       Thread-606985][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:03:43,614 [DEBUG][       Thread-606985][   transport.py][1871] : client lang: <none>
2025-07-01 14:03:43,614 [DEBUG][       Thread-606985][   transport.py][1871] : server lang: <none>
2025-07-01 14:03:43,614 [DEBUG][       Thread-606985][   transport.py][1871] : kex follows: False
2025-07-01 14:03:43,614 [DEBUG][       Thread-606985][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:03:43,614 [DEBUG][       Thread-606985][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:03:43,614 [DEBUG][       Thread-606985][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:03:43,614 [DEBUG][       Thread-606985][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:03:43,614 [DEBUG][       Thread-606985][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:03:43,614 [DEBUG][       Thread-606985][   transport.py][1871] : Compression: none
2025-07-01 14:03:43,614 [DEBUG][       Thread-606985][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:03:43,632 [DEBUG][       Thread-606985][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:03:43,632 [DEBUG][       Thread-606985][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:03:43,633 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:03:43,633 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:03:43,634 [DEBUG][       Thread-606985][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:03:43,634 [DEBUG][       Thread-606985][   transport.py][1871] : userauth is OK
2025-07-01 14:03:43,647 [ INFO][       Thread-606985][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:03:43,647 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:03:44,286 [DEBUG][       Thread-606985][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:03:44,286 [DEBUG][       Thread-606985][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:03:44,329 [DEBUG][       Thread-606985][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:03:44,329 [DEBUG][       Thread-606985][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:03:44,333 [DEBUG][       Thread-606985][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:03:44,347 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:03:44,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:03:44,350 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:03:44,352 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:03:44,357 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:03:44,359 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:03:44,360 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:03:44,360 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:03:44,360 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.502025 -999.00  +13.50  31.43     51   +3.50 1 2 2 1 1   887    0 9.61 -6.75 ----- 30.7 31.4 21.2 51.2 16.1 -22.5 15.4 -23.0 15.5 -21.1 16.3 -20.8
2025-07-01 14:03:44,361 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:03:44,361 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:03:44,361 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.502025
2025-07-01 14:03:44,361 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:03:44,362 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:03:44,362 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:03:44,362 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:03:44,362 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:03:44,362 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:03:17', tmtdew=11.31, humidity=46.51, cloud=0.0, wind=38.4, temperature=13.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:02:54.960', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:03:44,363 [DEBUG][       Thread-606985][   transport.py][1871] : EOF in transport thread
2025-07-01 14:03:44,446 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:03:44,455 [DEBUG][       Thread-606988][   transport.py][1871] : starting thread (client mode): 0x81a6a10
2025-07-01 14:03:44,455 [DEBUG][       Thread-606988][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:03:44,470 [DEBUG][       Thread-606988][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:03:44,470 [ INFO][       Thread-606988][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:03:44,478 [DEBUG][       Thread-606988][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:03:44,478 [DEBUG][       Thread-606988][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:03:44,478 [DEBUG][       Thread-606988][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:03:44,478 [DEBUG][       Thread-606988][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:03:44,478 [DEBUG][       Thread-606988][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:03:44,478 [DEBUG][       Thread-606988][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:03:44,478 [DEBUG][       Thread-606988][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:03:44,478 [DEBUG][       Thread-606988][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:03:44,478 [DEBUG][       Thread-606988][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:03:44,478 [DEBUG][       Thread-606988][   transport.py][1871] : client lang: <none>
2025-07-01 14:03:44,478 [DEBUG][       Thread-606988][   transport.py][1871] : server lang: <none>
2025-07-01 14:03:44,478 [DEBUG][       Thread-606988][   transport.py][1871] : kex follows: False
2025-07-01 14:03:44,478 [DEBUG][       Thread-606988][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:03:44,478 [DEBUG][       Thread-606988][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:03:44,478 [DEBUG][       Thread-606988][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:03:44,478 [DEBUG][       Thread-606988][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:03:44,478 [DEBUG][       Thread-606988][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:03:44,479 [DEBUG][       Thread-606988][   transport.py][1871] : Compression: none
2025-07-01 14:03:44,479 [DEBUG][       Thread-606988][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:03:44,536 [DEBUG][       Thread-606988][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:03:44,537 [DEBUG][       Thread-606988][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:03:44,537 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:03:44,538 [DEBUG][       Thread-606988][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:03:44,539 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:03:44,595 [DEBUG][       Thread-606988][   transport.py][1871] : userauth is OK
2025-07-01 14:03:44,595 [DEBUG][       Thread-606988][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:03:44,595 [DEBUG][       Thread-606988][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:03:44,595 [DEBUG][       Thread-606988][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:03:44,595 [DEBUG][       Thread-606988][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:03:44,614 [ INFO][       Thread-606988][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:03:44,614 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:03:44,615 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:03:45,704 [DEBUG][       Thread-606988][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:03:45,705 [DEBUG][       Thread-606988][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:03:45,756 [DEBUG][       Thread-606988][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:03:45,756 [DEBUG][       Thread-606988][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:03:45,765 [DEBUG][       Thread-606988][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:03:45,775 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:03:45,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-07-01 14:03:45,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') -> 00000000
2025-07-01 14:03:45,793 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:03:45,793 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:03:45,794 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:03:45,802 [DEBUG][       Thread-606988][   transport.py][1871] : EOF in transport thread
2025-07-01 14:03:48,940 [DEBUG][Thread-606990 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:03:55,804 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:03:55,804 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:03:55,804 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:03:55,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-07-01 14:03:56,300 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 3, 49), 11.36, 46.36, 0.0, 38.06, 13.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:03:56,300 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:03:49
2025-07-01 14:03:56,389 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:03:56,394 [DEBUG][       Thread-606991][   transport.py][1871] : starting thread (client mode): 0x75a9f90
2025-07-01 14:03:56,394 [DEBUG][       Thread-606991][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:03:56,415 [DEBUG][       Thread-606991][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:03:56,415 [ INFO][       Thread-606991][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:03:56,418 [DEBUG][       Thread-606991][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:03:56,418 [DEBUG][       Thread-606991][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:03:56,418 [DEBUG][       Thread-606991][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:03:56,418 [DEBUG][       Thread-606991][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:03:56,418 [DEBUG][       Thread-606991][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:03:56,418 [DEBUG][       Thread-606991][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:03:56,418 [DEBUG][       Thread-606991][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:03:56,419 [DEBUG][       Thread-606991][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:03:56,419 [DEBUG][       Thread-606991][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:03:56,419 [DEBUG][       Thread-606991][   transport.py][1871] : client lang: <none>
2025-07-01 14:03:56,419 [DEBUG][       Thread-606991][   transport.py][1871] : server lang: <none>
2025-07-01 14:03:56,419 [DEBUG][       Thread-606991][   transport.py][1871] : kex follows: False
2025-07-01 14:03:56,419 [DEBUG][       Thread-606991][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:03:56,419 [DEBUG][       Thread-606991][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:03:56,419 [DEBUG][       Thread-606991][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:03:56,419 [DEBUG][       Thread-606991][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:03:56,419 [DEBUG][       Thread-606991][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:03:56,419 [DEBUG][       Thread-606991][   transport.py][1871] : Compression: none
2025-07-01 14:03:56,419 [DEBUG][       Thread-606991][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:03:56,435 [DEBUG][       Thread-606991][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:03:56,435 [DEBUG][       Thread-606991][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:03:56,435 [DEBUG][       Thread-606991][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:03:56,435 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:03:56,435 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:03:56,436 [DEBUG][       Thread-606991][   transport.py][1871] : userauth is OK
2025-07-01 14:03:56,460 [ INFO][       Thread-606991][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:03:56,460 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:03:57,094 [DEBUG][       Thread-606991][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:03:57,094 [DEBUG][       Thread-606991][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:03:57,136 [DEBUG][       Thread-606991][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:03:57,136 [DEBUG][       Thread-606991][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:03:57,139 [DEBUG][       Thread-606991][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:03:57,150 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:03:57,150 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:03:57,151 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:03:57,152 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:03:57,155 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:03:57,156 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:03:57,156 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:03:57,156 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:03:57,156 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.502025 -999.00  +13.50  31.43     51   +3.50 1 2 2 1 1   887    0 9.61 -6.75 ----- 30.7 31.4 21.2 51.2 16.1 -22.5 15.4 -23.0 15.5 -21.1 16.3 -20.8
2025-07-01 14:03:57,156 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:03:57,156 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:03:57,156 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.502025
2025-07-01 14:03:57,156 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:03:57,157 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:03:57,157 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:03:57,157 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:03:57,157 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:03:57,157 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:03:49', tmtdew=11.36, humidity=46.36, cloud=0.0, wind=38.06, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:02:54.960', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:03:57,157 [DEBUG][       Thread-606991][   transport.py][1871] : EOF in transport thread
2025-07-01 14:03:57,231 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:03:57,243 [DEBUG][       Thread-606994][   transport.py][1871] : starting thread (client mode): 0x827d540
2025-07-01 14:03:57,243 [DEBUG][       Thread-606994][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:03:57,258 [DEBUG][       Thread-606994][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:03:57,258 [ INFO][       Thread-606994][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:03:57,266 [DEBUG][       Thread-606994][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:03:57,266 [DEBUG][       Thread-606994][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:03:57,266 [DEBUG][       Thread-606994][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:03:57,266 [DEBUG][       Thread-606994][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:03:57,266 [DEBUG][       Thread-606994][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:03:57,266 [DEBUG][       Thread-606994][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:03:57,266 [DEBUG][       Thread-606994][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:03:57,266 [DEBUG][       Thread-606994][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:03:57,266 [DEBUG][       Thread-606994][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:03:57,266 [DEBUG][       Thread-606994][   transport.py][1871] : client lang: <none>
2025-07-01 14:03:57,266 [DEBUG][       Thread-606994][   transport.py][1871] : server lang: <none>
2025-07-01 14:03:57,266 [DEBUG][       Thread-606994][   transport.py][1871] : kex follows: False
2025-07-01 14:03:57,266 [DEBUG][       Thread-606994][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:03:57,266 [DEBUG][       Thread-606994][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:03:57,266 [DEBUG][       Thread-606994][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:03:57,266 [DEBUG][       Thread-606994][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:03:57,266 [DEBUG][       Thread-606994][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:03:57,266 [DEBUG][       Thread-606994][   transport.py][1871] : Compression: none
2025-07-01 14:03:57,266 [DEBUG][       Thread-606994][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:03:57,328 [DEBUG][       Thread-606994][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:03:57,328 [DEBUG][       Thread-606994][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:03:57,328 [DEBUG][       Thread-606994][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:03:57,329 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:03:57,329 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:03:57,391 [DEBUG][       Thread-606994][   transport.py][1871] : userauth is OK
2025-07-01 14:03:57,391 [DEBUG][       Thread-606994][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:03:57,391 [DEBUG][       Thread-606994][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:03:57,391 [DEBUG][       Thread-606994][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:03:57,391 [DEBUG][       Thread-606994][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:03:57,408 [ INFO][       Thread-606994][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:03:57,408 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:03:57,408 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:03:57,958 [DEBUG][Thread-606996 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:03:58,467 [DEBUG][       Thread-606994][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:03:58,467 [DEBUG][       Thread-606994][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:03:58,515 [DEBUG][       Thread-606994][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:03:58,516 [DEBUG][       Thread-606994][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:03:58,524 [DEBUG][       Thread-606994][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:03:58,533 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:03:58,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-07-01 14:03:58,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-07-01 14:03:58,553 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:03:58,553 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:03:58,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:03:58,561 [DEBUG][       Thread-606994][   transport.py][1871] : EOF in transport thread
2025-07-01 14:04:06,984 [DEBUG][Thread-606997 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:04:08,564 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:04:08,564 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:04:08,564 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:04:08,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-07-01 14:04:09,034 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 3, 49), 11.36, 46.36, 0.0, 38.06, 13.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:04:09,034 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:03:49
2025-07-01 14:04:09,119 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:04:09,123 [DEBUG][       Thread-606998][   transport.py][1871] : starting thread (client mode): 0x81a6e30
2025-07-01 14:04:09,123 [DEBUG][       Thread-606998][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:04:09,143 [DEBUG][       Thread-606998][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:04:09,143 [ INFO][       Thread-606998][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:04:09,147 [DEBUG][       Thread-606998][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:04:09,147 [DEBUG][       Thread-606998][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:04:09,147 [DEBUG][       Thread-606998][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:04:09,147 [DEBUG][       Thread-606998][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:04:09,147 [DEBUG][       Thread-606998][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:04:09,147 [DEBUG][       Thread-606998][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:04:09,147 [DEBUG][       Thread-606998][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:04:09,147 [DEBUG][       Thread-606998][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:04:09,147 [DEBUG][       Thread-606998][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:04:09,147 [DEBUG][       Thread-606998][   transport.py][1871] : client lang: <none>
2025-07-01 14:04:09,147 [DEBUG][       Thread-606998][   transport.py][1871] : server lang: <none>
2025-07-01 14:04:09,147 [DEBUG][       Thread-606998][   transport.py][1871] : kex follows: False
2025-07-01 14:04:09,147 [DEBUG][       Thread-606998][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:04:09,147 [DEBUG][       Thread-606998][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:04:09,147 [DEBUG][       Thread-606998][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:04:09,147 [DEBUG][       Thread-606998][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:04:09,147 [DEBUG][       Thread-606998][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:04:09,147 [DEBUG][       Thread-606998][   transport.py][1871] : Compression: none
2025-07-01 14:04:09,147 [DEBUG][       Thread-606998][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:04:09,164 [DEBUG][       Thread-606998][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:04:09,164 [DEBUG][       Thread-606998][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:04:09,165 [DEBUG][       Thread-606998][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:04:09,165 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:04:09,165 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:04:09,209 [DEBUG][       Thread-606998][   transport.py][1871] : userauth is OK
2025-07-01 14:04:09,233 [ INFO][       Thread-606998][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:04:09,234 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:04:09,888 [DEBUG][       Thread-606998][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:04:09,889 [DEBUG][       Thread-606998][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:04:09,933 [DEBUG][       Thread-606998][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:04:09,933 [DEBUG][       Thread-606998][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:04:09,937 [DEBUG][       Thread-606998][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:04:09,950 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:04:09,950 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:04:09,952 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:04:09,954 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:04:09,959 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:04:09,961 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:04:09,962 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:04:09,962 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:04:09,962 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.502719 -999.00  +13.40  27.13     51   +3.60 1 2 1 1 1   887    0 9.72 -1.51 ----- 35.6 27.1 12.9 51.2 16.1 -22.7 15.4 -23.5 15.5 -21.3 16.2 -20.2
2025-07-01 14:04:09,963 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:04:09,963 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:04:09,963 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.502719
2025-07-01 14:04:09,963 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:04:09,964 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:04:09,964 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:04:09,964 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:04:09,964 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:04:09,964 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:03:49', tmtdew=11.36, humidity=46.36, cloud=0.0, wind=38.06, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:03:54.922', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:04:09,965 [DEBUG][       Thread-606998][   transport.py][1871] : EOF in transport thread
2025-07-01 14:04:10,048 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:04:16,007 [DEBUG][Thread-607001 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:04:25,031 [DEBUG][Thread-607002 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:04:29,494 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:04:29,495 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:04:33,758 [DEBUG][Thread-607003 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:04:34,050 [DEBUG][Thread-607004 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:04:43,069 [DEBUG][Thread-607005 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:04:52,090 [DEBUG][Thread-607006 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:05:01,110 [DEBUG][Thread-607007 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:05:10,133 [DEBUG][Thread-607008 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:05:19,153 [DEBUG][Thread-607009 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:05:28,175 [DEBUG][Thread-607010 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:05:29,632 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:05:29,633 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:05:33,808 [DEBUG][Thread-607011 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:05:37,198 [DEBUG][Thread-607012 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:05:46,223 [DEBUG][Thread-607013 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:05:55,244 [DEBUG][Thread-607014 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:06:04,263 [DEBUG][Thread-607015 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:06:13,281 [DEBUG][Thread-607016 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:06:19,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-07-01 14:06:22,304 [DEBUG][Thread-607017 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:06:29,679 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:06:29,679 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:06:29,679 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:06:29,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-07-01 14:06:29,770 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:06:29,771 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:06:30,242 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 5, 56), 11.49, 45.84, 0.0, 36.13, 13.75, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:06:30,242 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:05:56
2025-07-01 14:06:30,336 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:06:30,340 [DEBUG][       Thread-607018][   transport.py][1871] : starting thread (client mode): 0x81c8bb0
2025-07-01 14:06:30,340 [DEBUG][       Thread-607018][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:06:30,360 [DEBUG][       Thread-607018][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:06:30,360 [ INFO][       Thread-607018][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:06:30,363 [DEBUG][       Thread-607018][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:06:30,363 [DEBUG][       Thread-607018][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:06:30,363 [DEBUG][       Thread-607018][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:06:30,363 [DEBUG][       Thread-607018][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:06:30,363 [DEBUG][       Thread-607018][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:06:30,363 [DEBUG][       Thread-607018][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:06:30,363 [DEBUG][       Thread-607018][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:06:30,363 [DEBUG][       Thread-607018][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:06:30,363 [DEBUG][       Thread-607018][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:06:30,363 [DEBUG][       Thread-607018][   transport.py][1871] : client lang: <none>
2025-07-01 14:06:30,363 [DEBUG][       Thread-607018][   transport.py][1871] : server lang: <none>
2025-07-01 14:06:30,363 [DEBUG][       Thread-607018][   transport.py][1871] : kex follows: False
2025-07-01 14:06:30,363 [DEBUG][       Thread-607018][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:06:30,363 [DEBUG][       Thread-607018][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:06:30,363 [DEBUG][       Thread-607018][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:06:30,363 [DEBUG][       Thread-607018][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:06:30,363 [DEBUG][       Thread-607018][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:06:30,363 [DEBUG][       Thread-607018][   transport.py][1871] : Compression: none
2025-07-01 14:06:30,363 [DEBUG][       Thread-607018][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:06:30,379 [DEBUG][       Thread-607018][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:06:30,379 [DEBUG][       Thread-607018][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:06:30,380 [DEBUG][       Thread-607018][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:06:30,380 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:06:30,380 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:06:30,380 [DEBUG][       Thread-607018][   transport.py][1871] : userauth is OK
2025-07-01 14:06:30,392 [ INFO][       Thread-607018][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:06:30,393 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:06:31,036 [DEBUG][       Thread-607018][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:06:31,036 [DEBUG][       Thread-607018][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:06:31,080 [DEBUG][       Thread-607018][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:06:31,081 [DEBUG][       Thread-607018][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:06:31,083 [DEBUG][       Thread-607018][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:06:31,095 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:06:31,095 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:06:31,097 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:06:31,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:06:31,101 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:06:31,102 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:06:31,102 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:06:31,102 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:06:31,102 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.504108 -999.00  +13.80  31.98     51   +4.00 1 2 2 1 1   887    0 9.72 6.28 ----- 42.8 32.0 28.6 47.2 16.3 -22.6 15.5 -22.3 15.7 -21.0 16.4 -20.5
2025-07-01 14:06:31,102 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:06:31,102 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:06:31,102 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.504108
2025-07-01 14:06:31,102 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:06:31,102 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:06:31,102 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:06:31,102 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:06:31,102 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:06:31,102 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:05:56', tmtdew=11.49, humidity=45.84, cloud=0.0, wind=36.13, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:05:54.931', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:06:31,103 [DEBUG][       Thread-607018][   transport.py][1871] : EOF in transport thread
2025-07-01 14:06:31,177 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:06:31,192 [DEBUG][       Thread-607021][   transport.py][1871] : starting thread (client mode): 0x81e50c0
2025-07-01 14:06:31,192 [DEBUG][       Thread-607021][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:06:31,208 [DEBUG][       Thread-607021][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:06:31,208 [ INFO][       Thread-607021][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:06:31,221 [DEBUG][       Thread-607021][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:06:31,221 [DEBUG][       Thread-607021][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:06:31,221 [DEBUG][       Thread-607021][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:06:31,221 [DEBUG][       Thread-607021][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:06:31,221 [DEBUG][       Thread-607021][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:06:31,221 [DEBUG][       Thread-607021][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:06:31,221 [DEBUG][       Thread-607021][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:06:31,221 [DEBUG][       Thread-607021][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:06:31,221 [DEBUG][       Thread-607021][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:06:31,221 [DEBUG][       Thread-607021][   transport.py][1871] : client lang: <none>
2025-07-01 14:06:31,221 [DEBUG][       Thread-607021][   transport.py][1871] : server lang: <none>
2025-07-01 14:06:31,221 [DEBUG][       Thread-607021][   transport.py][1871] : kex follows: False
2025-07-01 14:06:31,221 [DEBUG][       Thread-607021][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:06:31,221 [DEBUG][       Thread-607021][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:06:31,221 [DEBUG][       Thread-607021][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:06:31,221 [DEBUG][       Thread-607021][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:06:31,221 [DEBUG][       Thread-607021][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:06:31,221 [DEBUG][       Thread-607021][   transport.py][1871] : Compression: none
2025-07-01 14:06:31,221 [DEBUG][       Thread-607021][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:06:31,280 [DEBUG][       Thread-607021][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:06:31,280 [DEBUG][       Thread-607021][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:06:31,280 [DEBUG][       Thread-607021][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:06:31,280 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:06:31,280 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:06:31,322 [DEBUG][Thread-607023 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:06:31,349 [DEBUG][       Thread-607021][   transport.py][1871] : userauth is OK
2025-07-01 14:06:31,349 [DEBUG][       Thread-607021][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:06:31,349 [DEBUG][       Thread-607021][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:06:31,349 [DEBUG][       Thread-607021][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:06:31,349 [DEBUG][       Thread-607021][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:06:31,363 [ INFO][       Thread-607021][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:06:31,363 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:06:31,363 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:06:32,412 [DEBUG][       Thread-607021][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:06:32,412 [DEBUG][       Thread-607021][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:06:32,464 [DEBUG][       Thread-607021][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:06:32,464 [DEBUG][       Thread-607021][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:06:32,474 [DEBUG][       Thread-607021][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:06:32,484 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:06:32,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-07-01 14:06:32,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-07-01 14:06:32,503 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:06:32,503 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:06:32,504 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:06:32,512 [DEBUG][       Thread-607021][   transport.py][1871] : EOF in transport thread
2025-07-01 14:06:33,858 [DEBUG][Thread-607024 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:06:40,348 [DEBUG][Thread-607025 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:06:42,514 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:06:42,515 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:06:42,515 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:06:42,518 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:06:43,019 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 6, 28), 11.53, 45.59, 0.0, 43.33, 13.79, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:06:43,019 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:06:28
2025-07-01 14:06:43,104 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:06:43,108 [DEBUG][       Thread-607026][   transport.py][1871] : starting thread (client mode): 0x81e64a0
2025-07-01 14:06:43,108 [DEBUG][       Thread-607026][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:06:43,130 [DEBUG][       Thread-607026][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:06:43,130 [ INFO][       Thread-607026][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:06:43,133 [DEBUG][       Thread-607026][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:06:43,133 [DEBUG][       Thread-607026][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:06:43,133 [DEBUG][       Thread-607026][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:06:43,133 [DEBUG][       Thread-607026][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:06:43,133 [DEBUG][       Thread-607026][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:06:43,133 [DEBUG][       Thread-607026][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:06:43,133 [DEBUG][       Thread-607026][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:06:43,133 [DEBUG][       Thread-607026][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:06:43,133 [DEBUG][       Thread-607026][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:06:43,134 [DEBUG][       Thread-607026][   transport.py][1871] : client lang: <none>
2025-07-01 14:06:43,134 [DEBUG][       Thread-607026][   transport.py][1871] : server lang: <none>
2025-07-01 14:06:43,134 [DEBUG][       Thread-607026][   transport.py][1871] : kex follows: False
2025-07-01 14:06:43,134 [DEBUG][       Thread-607026][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:06:43,134 [DEBUG][       Thread-607026][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:06:43,134 [DEBUG][       Thread-607026][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:06:43,134 [DEBUG][       Thread-607026][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:06:43,134 [DEBUG][       Thread-607026][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:06:43,134 [DEBUG][       Thread-607026][   transport.py][1871] : Compression: none
2025-07-01 14:06:43,134 [DEBUG][       Thread-607026][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:06:43,150 [DEBUG][       Thread-607026][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:06:43,150 [DEBUG][       Thread-607026][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:06:43,151 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:06:43,151 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:06:43,152 [DEBUG][       Thread-607026][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:06:43,153 [DEBUG][       Thread-607026][   transport.py][1871] : userauth is OK
2025-07-01 14:06:43,166 [ INFO][       Thread-607026][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:06:43,166 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:06:43,818 [DEBUG][       Thread-607026][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:06:43,819 [DEBUG][       Thread-607026][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:06:43,861 [DEBUG][       Thread-607026][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:06:43,861 [DEBUG][       Thread-607026][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:06:43,865 [DEBUG][       Thread-607026][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:06:43,878 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:06:43,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:06:43,890 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:06:43,892 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:06:43,898 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:06:43,900 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:06:43,900 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:06:43,901 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:06:43,901 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.504108 -999.00  +13.80  31.98     51   +4.00 1 2 2 1 1   887    0 9.72 6.28 ----- 42.8 32.0 28.6 47.2 16.3 -22.6 15.5 -22.3 15.7 -21.0 16.4 -20.5
2025-07-01 14:06:43,901 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:06:43,901 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:06:43,901 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.504108
2025-07-01 14:06:43,901 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:06:43,902 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:06:43,902 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:06:43,902 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:06:43,902 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:06:43,902 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:06:28', tmtdew=11.53, humidity=45.59, cloud=0.0, wind=43.33, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:05:54.931', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:06:43,903 [DEBUG][       Thread-607026][   transport.py][1871] : EOF in transport thread
2025-07-01 14:06:43,989 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:06:43,999 [DEBUG][       Thread-607029][   transport.py][1871] : starting thread (client mode): 0x8104520
2025-07-01 14:06:43,999 [DEBUG][       Thread-607029][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:06:44,014 [DEBUG][       Thread-607029][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:06:44,014 [ INFO][       Thread-607029][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:06:44,022 [DEBUG][       Thread-607029][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:06:44,022 [DEBUG][       Thread-607029][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:06:44,022 [DEBUG][       Thread-607029][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:06:44,022 [DEBUG][       Thread-607029][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:06:44,022 [DEBUG][       Thread-607029][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:06:44,022 [DEBUG][       Thread-607029][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:06:44,022 [DEBUG][       Thread-607029][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:06:44,022 [DEBUG][       Thread-607029][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:06:44,022 [DEBUG][       Thread-607029][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:06:44,022 [DEBUG][       Thread-607029][   transport.py][1871] : client lang: <none>
2025-07-01 14:06:44,022 [DEBUG][       Thread-607029][   transport.py][1871] : server lang: <none>
2025-07-01 14:06:44,022 [DEBUG][       Thread-607029][   transport.py][1871] : kex follows: False
2025-07-01 14:06:44,022 [DEBUG][       Thread-607029][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:06:44,022 [DEBUG][       Thread-607029][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:06:44,022 [DEBUG][       Thread-607029][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:06:44,022 [DEBUG][       Thread-607029][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:06:44,022 [DEBUG][       Thread-607029][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:06:44,022 [DEBUG][       Thread-607029][   transport.py][1871] : Compression: none
2025-07-01 14:06:44,022 [DEBUG][       Thread-607029][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:06:44,081 [DEBUG][       Thread-607029][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:06:44,082 [DEBUG][       Thread-607029][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:06:44,083 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:06:44,083 [DEBUG][       Thread-607029][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:06:44,084 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:06:44,138 [DEBUG][       Thread-607029][   transport.py][1871] : userauth is OK
2025-07-01 14:06:44,138 [DEBUG][       Thread-607029][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:06:44,138 [DEBUG][       Thread-607029][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:06:44,138 [DEBUG][       Thread-607029][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:06:44,138 [DEBUG][       Thread-607029][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:06:44,156 [ INFO][       Thread-607029][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:06:44,157 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:06:44,157 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:06:45,205 [DEBUG][       Thread-607029][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:06:45,206 [DEBUG][       Thread-607029][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:06:45,256 [DEBUG][       Thread-607029][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:06:45,256 [DEBUG][       Thread-607029][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:06:45,265 [DEBUG][       Thread-607029][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:06:45,274 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:06:45,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-07-01 14:06:45,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-07-01 14:06:45,300 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:06:45,301 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:06:45,301 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:06:45,309 [DEBUG][       Thread-607029][   transport.py][1871] : EOF in transport thread
2025-07-01 14:06:49,369 [DEBUG][Thread-607031 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:06:55,311 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:06:55,312 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:06:55,312 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:06:55,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-07-01 14:06:55,823 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 6, 28), 11.53, 45.59, 0.0, 43.33, 13.79, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:06:55,823 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:06:28
2025-07-01 14:06:55,908 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:06:55,912 [DEBUG][       Thread-607032][   transport.py][1871] : starting thread (client mode): 0x81db250
2025-07-01 14:06:55,912 [DEBUG][       Thread-607032][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:06:55,932 [DEBUG][       Thread-607032][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:06:55,932 [ INFO][       Thread-607032][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:06:55,935 [DEBUG][       Thread-607032][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:06:55,935 [DEBUG][       Thread-607032][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:06:55,935 [DEBUG][       Thread-607032][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:06:55,936 [DEBUG][       Thread-607032][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:06:55,936 [DEBUG][       Thread-607032][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:06:55,936 [DEBUG][       Thread-607032][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:06:55,936 [DEBUG][       Thread-607032][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:06:55,936 [DEBUG][       Thread-607032][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:06:55,936 [DEBUG][       Thread-607032][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:06:55,936 [DEBUG][       Thread-607032][   transport.py][1871] : client lang: <none>
2025-07-01 14:06:55,936 [DEBUG][       Thread-607032][   transport.py][1871] : server lang: <none>
2025-07-01 14:06:55,936 [DEBUG][       Thread-607032][   transport.py][1871] : kex follows: False
2025-07-01 14:06:55,936 [DEBUG][       Thread-607032][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:06:55,936 [DEBUG][       Thread-607032][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:06:55,936 [DEBUG][       Thread-607032][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:06:55,936 [DEBUG][       Thread-607032][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:06:55,936 [DEBUG][       Thread-607032][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:06:55,936 [DEBUG][       Thread-607032][   transport.py][1871] : Compression: none
2025-07-01 14:06:55,936 [DEBUG][       Thread-607032][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:06:55,951 [DEBUG][       Thread-607032][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:06:55,952 [DEBUG][       Thread-607032][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:06:55,952 [DEBUG][       Thread-607032][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:06:55,952 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:06:55,953 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:06:55,954 [DEBUG][       Thread-607032][   transport.py][1871] : userauth is OK
2025-07-01 14:06:55,967 [ INFO][       Thread-607032][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:06:55,967 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:06:56,613 [DEBUG][       Thread-607032][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:06:56,613 [DEBUG][       Thread-607032][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:06:56,657 [DEBUG][       Thread-607032][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:06:56,657 [DEBUG][       Thread-607032][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:06:56,660 [DEBUG][       Thread-607032][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:06:56,672 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:06:56,673 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:06:56,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:06:56,676 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:06:56,682 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:06:56,684 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:06:56,684 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:06:56,685 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:06:56,685 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.504455 -999.00  +13.70  37.92     51   +3.70 1 2 2 1 1   887    0 10.20 9.19 ----- 45.0 37.9 28.4 58.8 16.3 -22.6 15.6 -22.6 15.7 -20.9 16.5 -20.8
2025-07-01 14:06:56,686 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:06:56,686 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:06:56,686 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.504455
2025-07-01 14:06:56,687 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:06:56,687 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:06:56,687 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:06:56,688 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:06:56,688 [DEBUG][       Thread-607032][   transport.py][1871] : EOF in transport thread
2025-07-01 14:06:56,688 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:06:56,689 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:06:28', tmtdew=11.53, humidity=45.59, cloud=0.0, wind=43.33, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:06:24.912', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:06:56,771 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:06:56,783 [DEBUG][       Thread-607035][   transport.py][1871] : starting thread (client mode): 0x83c8070
2025-07-01 14:06:56,783 [DEBUG][       Thread-607035][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:06:56,799 [DEBUG][       Thread-607035][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:06:56,799 [ INFO][       Thread-607035][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:06:56,806 [DEBUG][       Thread-607035][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:06:56,806 [DEBUG][       Thread-607035][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:06:56,806 [DEBUG][       Thread-607035][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:06:56,807 [DEBUG][       Thread-607035][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:06:56,807 [DEBUG][       Thread-607035][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:06:56,807 [DEBUG][       Thread-607035][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:06:56,807 [DEBUG][       Thread-607035][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:06:56,807 [DEBUG][       Thread-607035][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:06:56,807 [DEBUG][       Thread-607035][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:06:56,807 [DEBUG][       Thread-607035][   transport.py][1871] : client lang: <none>
2025-07-01 14:06:56,807 [DEBUG][       Thread-607035][   transport.py][1871] : server lang: <none>
2025-07-01 14:06:56,807 [DEBUG][       Thread-607035][   transport.py][1871] : kex follows: False
2025-07-01 14:06:56,807 [DEBUG][       Thread-607035][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:06:56,807 [DEBUG][       Thread-607035][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:06:56,807 [DEBUG][       Thread-607035][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:06:56,807 [DEBUG][       Thread-607035][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:06:56,807 [DEBUG][       Thread-607035][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:06:56,807 [DEBUG][       Thread-607035][   transport.py][1871] : Compression: none
2025-07-01 14:06:56,807 [DEBUG][       Thread-607035][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:06:56,865 [DEBUG][       Thread-607035][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:06:56,866 [DEBUG][       Thread-607035][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:06:56,867 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:06:56,867 [DEBUG][       Thread-607035][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:06:56,868 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:06:56,928 [DEBUG][       Thread-607035][   transport.py][1871] : userauth is OK
2025-07-01 14:06:56,928 [DEBUG][       Thread-607035][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:06:56,928 [DEBUG][       Thread-607035][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:06:56,928 [DEBUG][       Thread-607035][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:06:56,929 [DEBUG][       Thread-607035][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:06:56,955 [ INFO][       Thread-607035][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:06:56,956 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:06:56,956 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:06:57,972 [DEBUG][       Thread-607035][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:06:57,972 [DEBUG][       Thread-607035][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:06:58,020 [DEBUG][       Thread-607035][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:06:58,020 [DEBUG][       Thread-607035][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:06:58,029 [DEBUG][       Thread-607035][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:06:58,038 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:06:58,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-07-01 14:06:58,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-07-01 14:06:58,055 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:06:58,055 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:06:58,056 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:06:58,064 [DEBUG][       Thread-607035][   transport.py][1871] : EOF in transport thread
2025-07-01 14:06:58,407 [DEBUG][Thread-607037 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:07:07,427 [DEBUG][Thread-607038 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:07:08,066 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:07:08,066 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:07:08,066 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:07:08,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-07-01 14:07:08,601 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 7), 11.5, 45.67, 0.0, 41.36, 13.78, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:07:08,601 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:07:00
2025-07-01 14:07:08,694 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:07:08,698 [DEBUG][       Thread-607039][   transport.py][1871] : starting thread (client mode): 0x81db640
2025-07-01 14:07:08,698 [DEBUG][       Thread-607039][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:07:08,716 [DEBUG][       Thread-607039][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:07:08,716 [ INFO][       Thread-607039][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:07:08,718 [DEBUG][       Thread-607039][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:07:08,718 [DEBUG][       Thread-607039][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:07:08,718 [DEBUG][       Thread-607039][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:07:08,718 [DEBUG][       Thread-607039][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:07:08,718 [DEBUG][       Thread-607039][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:07:08,718 [DEBUG][       Thread-607039][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:07:08,718 [DEBUG][       Thread-607039][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:07:08,718 [DEBUG][       Thread-607039][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:07:08,718 [DEBUG][       Thread-607039][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:07:08,718 [DEBUG][       Thread-607039][   transport.py][1871] : client lang: <none>
2025-07-01 14:07:08,718 [DEBUG][       Thread-607039][   transport.py][1871] : server lang: <none>
2025-07-01 14:07:08,718 [DEBUG][       Thread-607039][   transport.py][1871] : kex follows: False
2025-07-01 14:07:08,718 [DEBUG][       Thread-607039][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:07:08,718 [DEBUG][       Thread-607039][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:07:08,718 [DEBUG][       Thread-607039][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:07:08,718 [DEBUG][       Thread-607039][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:07:08,719 [DEBUG][       Thread-607039][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:07:08,719 [DEBUG][       Thread-607039][   transport.py][1871] : Compression: none
2025-07-01 14:07:08,719 [DEBUG][       Thread-607039][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:07:08,725 [DEBUG][       Thread-607039][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:07:08,725 [DEBUG][       Thread-607039][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:07:08,726 [DEBUG][       Thread-607039][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:07:08,726 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:07:08,726 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:07:08,726 [DEBUG][       Thread-607039][   transport.py][1871] : userauth is OK
2025-07-01 14:07:08,739 [ INFO][       Thread-607039][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:07:08,739 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:07:09,377 [DEBUG][       Thread-607039][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:07:09,377 [DEBUG][       Thread-607039][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:07:09,420 [DEBUG][       Thread-607039][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:07:09,420 [DEBUG][       Thread-607039][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:07:09,423 [DEBUG][       Thread-607039][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:07:09,436 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:07:09,436 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:07:09,437 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:07:09,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:07:09,441 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:07:09,442 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:07:09,442 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:07:09,442 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:07:09,442 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.504455 -999.00  +13.70  37.92     51   +3.70 1 2 2 1 1   887    0 10.20 9.19 ----- 45.0 37.9 28.4 58.8 16.3 -22.6 15.6 -22.6 15.7 -20.9 16.5 -20.8
2025-07-01 14:07:09,442 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:07:09,442 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:07:09,442 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.504455
2025-07-01 14:07:09,442 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:07:09,442 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:07:09,442 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:07:09,442 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:07:09,442 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:07:09,442 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:07:00', tmtdew=11.5, humidity=45.67, cloud=0.0, wind=41.36, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:06:24.912', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:07:09,443 [DEBUG][       Thread-607039][   transport.py][1871] : EOF in transport thread
2025-07-01 14:07:09,517 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:07:09,526 [DEBUG][       Thread-607042][   transport.py][1871] : starting thread (client mode): 0x81e4880
2025-07-01 14:07:09,526 [DEBUG][       Thread-607042][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:07:09,542 [DEBUG][       Thread-607042][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:07:09,542 [ INFO][       Thread-607042][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:07:09,549 [DEBUG][       Thread-607042][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:07:09,550 [DEBUG][       Thread-607042][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:07:09,550 [DEBUG][       Thread-607042][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:07:09,550 [DEBUG][       Thread-607042][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:07:09,550 [DEBUG][       Thread-607042][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:07:09,550 [DEBUG][       Thread-607042][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:07:09,550 [DEBUG][       Thread-607042][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:07:09,550 [DEBUG][       Thread-607042][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:07:09,550 [DEBUG][       Thread-607042][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:07:09,550 [DEBUG][       Thread-607042][   transport.py][1871] : client lang: <none>
2025-07-01 14:07:09,550 [DEBUG][       Thread-607042][   transport.py][1871] : server lang: <none>
2025-07-01 14:07:09,550 [DEBUG][       Thread-607042][   transport.py][1871] : kex follows: False
2025-07-01 14:07:09,550 [DEBUG][       Thread-607042][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:07:09,550 [DEBUG][       Thread-607042][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:07:09,550 [DEBUG][       Thread-607042][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:07:09,550 [DEBUG][       Thread-607042][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:07:09,550 [DEBUG][       Thread-607042][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:07:09,550 [DEBUG][       Thread-607042][   transport.py][1871] : Compression: none
2025-07-01 14:07:09,550 [DEBUG][       Thread-607042][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:07:09,608 [DEBUG][       Thread-607042][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:07:09,608 [DEBUG][       Thread-607042][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:07:09,608 [DEBUG][       Thread-607042][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:07:09,608 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:07:09,609 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:07:09,665 [DEBUG][       Thread-607042][   transport.py][1871] : userauth is OK
2025-07-01 14:07:09,665 [DEBUG][       Thread-607042][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:07:09,665 [DEBUG][       Thread-607042][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:07:09,665 [DEBUG][       Thread-607042][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:07:09,665 [DEBUG][       Thread-607042][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:07:09,680 [ INFO][       Thread-607042][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:07:09,680 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:07:09,680 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:07:10,729 [DEBUG][       Thread-607042][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:07:10,729 [DEBUG][       Thread-607042][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:07:10,779 [DEBUG][       Thread-607042][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:07:10,779 [DEBUG][       Thread-607042][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:07:10,787 [DEBUG][       Thread-607042][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:07:10,795 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:07:10,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-07-01 14:07:10,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-07-01 14:07:10,811 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:07:10,811 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:07:10,811 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:07:10,819 [DEBUG][       Thread-607042][   transport.py][1871] : EOF in transport thread
2025-07-01 14:07:16,447 [DEBUG][Thread-607044 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:07:20,822 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:07:20,822 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:07:20,822 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:07:20,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-07-01 14:07:21,328 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 7), 11.5, 45.67, 0.0, 41.36, 13.78, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:07:21,328 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:07:00
2025-07-01 14:07:21,413 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:07:21,418 [DEBUG][       Thread-607045][   transport.py][1871] : starting thread (client mode): 0x81cacb0
2025-07-01 14:07:21,418 [DEBUG][       Thread-607045][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:07:21,428 [DEBUG][       Thread-607045][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:07:21,428 [ INFO][       Thread-607045][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:07:21,431 [DEBUG][       Thread-607045][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:07:21,431 [DEBUG][       Thread-607045][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:07:21,432 [DEBUG][       Thread-607045][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:07:21,432 [DEBUG][       Thread-607045][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:07:21,432 [DEBUG][       Thread-607045][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:07:21,432 [DEBUG][       Thread-607045][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:07:21,432 [DEBUG][       Thread-607045][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:07:21,432 [DEBUG][       Thread-607045][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:07:21,432 [DEBUG][       Thread-607045][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:07:21,432 [DEBUG][       Thread-607045][   transport.py][1871] : client lang: <none>
2025-07-01 14:07:21,432 [DEBUG][       Thread-607045][   transport.py][1871] : server lang: <none>
2025-07-01 14:07:21,432 [DEBUG][       Thread-607045][   transport.py][1871] : kex follows: False
2025-07-01 14:07:21,432 [DEBUG][       Thread-607045][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:07:21,432 [DEBUG][       Thread-607045][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:07:21,432 [DEBUG][       Thread-607045][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:07:21,432 [DEBUG][       Thread-607045][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:07:21,432 [DEBUG][       Thread-607045][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:07:21,432 [DEBUG][       Thread-607045][   transport.py][1871] : Compression: none
2025-07-01 14:07:21,432 [DEBUG][       Thread-607045][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:07:21,449 [DEBUG][       Thread-607045][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:07:21,449 [DEBUG][       Thread-607045][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:07:21,450 [DEBUG][       Thread-607045][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:07:21,450 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:07:21,450 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:07:21,451 [DEBUG][       Thread-607045][   transport.py][1871] : userauth is OK
2025-07-01 14:07:21,476 [ INFO][       Thread-607045][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:07:21,477 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:07:22,071 [DEBUG][       Thread-607045][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:07:22,071 [DEBUG][       Thread-607045][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:07:22,112 [DEBUG][       Thread-607045][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:07:22,112 [DEBUG][       Thread-607045][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:07:22,115 [DEBUG][       Thread-607045][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:07:22,128 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:07:22,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:07:22,129 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:07:22,130 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:07:22,133 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:07:22,134 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:07:22,134 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:07:22,134 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:07:22,134 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.504802 -999.00  +13.60  35.65     50   +3.60 1 2 2 1 1   887    0 10.20 13.72 ----- 34.9 35.6 38.8 52.4 16.3 -22.4 15.6 -22.7 15.8 -21.0 16.6 -20.7
2025-07-01 14:07:22,134 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:07:22,134 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:07:22,134 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.504802
2025-07-01 14:07:22,134 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:07:22,134 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:07:22,134 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:07:22,134 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:07:22,134 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:07:22,134 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:07:00', tmtdew=11.5, humidity=45.67, cloud=0.0, wind=41.36, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:06:54.893', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:07:22,135 [DEBUG][       Thread-607045][   transport.py][1871] : EOF in transport thread
2025-07-01 14:07:22,205 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:07:22,215 [DEBUG][       Thread-607048][   transport.py][1871] : starting thread (client mode): 0x82b3670
2025-07-01 14:07:22,215 [DEBUG][       Thread-607048][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:07:22,231 [DEBUG][       Thread-607048][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:07:22,232 [ INFO][       Thread-607048][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:07:22,239 [DEBUG][       Thread-607048][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:07:22,239 [DEBUG][       Thread-607048][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:07:22,239 [DEBUG][       Thread-607048][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:07:22,239 [DEBUG][       Thread-607048][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:07:22,239 [DEBUG][       Thread-607048][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:07:22,240 [DEBUG][       Thread-607048][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:07:22,240 [DEBUG][       Thread-607048][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:07:22,240 [DEBUG][       Thread-607048][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:07:22,240 [DEBUG][       Thread-607048][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:07:22,240 [DEBUG][       Thread-607048][   transport.py][1871] : client lang: <none>
2025-07-01 14:07:22,240 [DEBUG][       Thread-607048][   transport.py][1871] : server lang: <none>
2025-07-01 14:07:22,240 [DEBUG][       Thread-607048][   transport.py][1871] : kex follows: False
2025-07-01 14:07:22,240 [DEBUG][       Thread-607048][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:07:22,240 [DEBUG][       Thread-607048][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:07:22,240 [DEBUG][       Thread-607048][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:07:22,240 [DEBUG][       Thread-607048][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:07:22,240 [DEBUG][       Thread-607048][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:07:22,240 [DEBUG][       Thread-607048][   transport.py][1871] : Compression: none
2025-07-01 14:07:22,240 [DEBUG][       Thread-607048][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:07:22,297 [DEBUG][       Thread-607048][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:07:22,298 [DEBUG][       Thread-607048][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:07:22,298 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:07:22,299 [DEBUG][       Thread-607048][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:07:22,300 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:07:22,354 [DEBUG][       Thread-607048][   transport.py][1871] : userauth is OK
2025-07-01 14:07:22,354 [DEBUG][       Thread-607048][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:07:22,354 [DEBUG][       Thread-607048][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:07:22,355 [DEBUG][       Thread-607048][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:07:22,355 [DEBUG][       Thread-607048][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:07:22,374 [ INFO][       Thread-607048][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:07:22,374 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:07:22,374 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:07:23,384 [DEBUG][       Thread-607048][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:07:23,384 [DEBUG][       Thread-607048][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:07:23,432 [DEBUG][       Thread-607048][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:07:23,432 [DEBUG][       Thread-607048][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:07:23,442 [DEBUG][       Thread-607048][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:07:23,451 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:07:23,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-07-01 14:07:23,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-07-01 14:07:23,477 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:07:23,478 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:07:23,478 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:07:23,486 [DEBUG][       Thread-607048][   transport.py][1871] : EOF in transport thread
2025-07-01 14:07:25,492 [DEBUG][Thread-607050 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:07:29,908 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:07:29,909 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:07:33,488 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:07:33,488 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:07:33,488 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:07:33,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-07-01 14:07:33,907 [DEBUG][Thread-607051 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:07:34,039 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 7), 11.5, 45.67, 0.0, 41.36, 13.78, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:07:34,039 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:07:00
2025-07-01 14:07:34,130 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:07:34,136 [DEBUG][       Thread-607052][   transport.py][1871] : starting thread (client mode): 0x81cb820
2025-07-01 14:07:34,136 [DEBUG][       Thread-607052][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:07:34,148 [DEBUG][       Thread-607052][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:07:34,148 [ INFO][       Thread-607052][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:07:34,152 [DEBUG][       Thread-607052][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:07:34,152 [DEBUG][       Thread-607052][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:07:34,152 [DEBUG][       Thread-607052][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:07:34,152 [DEBUG][       Thread-607052][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:07:34,152 [DEBUG][       Thread-607052][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:07:34,152 [DEBUG][       Thread-607052][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:07:34,152 [DEBUG][       Thread-607052][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:07:34,152 [DEBUG][       Thread-607052][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:07:34,152 [DEBUG][       Thread-607052][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:07:34,152 [DEBUG][       Thread-607052][   transport.py][1871] : client lang: <none>
2025-07-01 14:07:34,152 [DEBUG][       Thread-607052][   transport.py][1871] : server lang: <none>
2025-07-01 14:07:34,152 [DEBUG][       Thread-607052][   transport.py][1871] : kex follows: False
2025-07-01 14:07:34,152 [DEBUG][       Thread-607052][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:07:34,152 [DEBUG][       Thread-607052][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:07:34,152 [DEBUG][       Thread-607052][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:07:34,152 [DEBUG][       Thread-607052][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:07:34,152 [DEBUG][       Thread-607052][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:07:34,152 [DEBUG][       Thread-607052][   transport.py][1871] : Compression: none
2025-07-01 14:07:34,152 [DEBUG][       Thread-607052][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:07:34,159 [DEBUG][       Thread-607052][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:07:34,159 [DEBUG][       Thread-607052][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:07:34,159 [DEBUG][       Thread-607052][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:07:34,159 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:07:34,159 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:07:34,159 [DEBUG][       Thread-607052][   transport.py][1871] : userauth is OK
2025-07-01 14:07:34,173 [ INFO][       Thread-607052][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:07:34,173 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:07:34,512 [DEBUG][Thread-607054 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:07:34,899 [DEBUG][       Thread-607052][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:07:34,899 [DEBUG][       Thread-607052][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:07:34,941 [DEBUG][       Thread-607052][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:07:34,941 [DEBUG][       Thread-607052][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:07:34,944 [DEBUG][       Thread-607052][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:07:34,958 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:07:34,958 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:07:34,960 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:07:34,962 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:07:34,966 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:07:34,968 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:07:34,968 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:07:34,969 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:07:34,969 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.504802 -999.00  +13.60  35.65     50   +3.60 1 2 2 1 1   887    0 10.20 13.72 ----- 34.9 35.6 38.8 52.4 16.3 -22.4 15.6 -22.7 15.8 -21.0 16.6 -20.7
2025-07-01 14:07:34,969 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:07:34,969 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:07:34,969 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.504802
2025-07-01 14:07:34,969 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:07:34,970 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:07:34,970 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:07:34,970 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:07:34,970 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:07:34,970 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:07:00', tmtdew=11.5, humidity=45.67, cloud=0.0, wind=41.36, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:06:54.893', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:07:34,971 [DEBUG][       Thread-607052][   transport.py][1871] : EOF in transport thread
2025-07-01 14:07:35,054 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:07:35,065 [DEBUG][       Thread-607056][   transport.py][1871] : starting thread (client mode): 0x8107ac0
2025-07-01 14:07:35,065 [DEBUG][       Thread-607056][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:07:35,085 [DEBUG][       Thread-607056][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:07:35,085 [ INFO][       Thread-607056][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:07:35,092 [DEBUG][       Thread-607056][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:07:35,093 [DEBUG][       Thread-607056][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:07:35,093 [DEBUG][       Thread-607056][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:07:35,093 [DEBUG][       Thread-607056][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:07:35,093 [DEBUG][       Thread-607056][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:07:35,093 [DEBUG][       Thread-607056][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:07:35,093 [DEBUG][       Thread-607056][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:07:35,093 [DEBUG][       Thread-607056][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:07:35,093 [DEBUG][       Thread-607056][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:07:35,093 [DEBUG][       Thread-607056][   transport.py][1871] : client lang: <none>
2025-07-01 14:07:35,093 [DEBUG][       Thread-607056][   transport.py][1871] : server lang: <none>
2025-07-01 14:07:35,093 [DEBUG][       Thread-607056][   transport.py][1871] : kex follows: False
2025-07-01 14:07:35,093 [DEBUG][       Thread-607056][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:07:35,093 [DEBUG][       Thread-607056][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:07:35,093 [DEBUG][       Thread-607056][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:07:35,093 [DEBUG][       Thread-607056][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:07:35,093 [DEBUG][       Thread-607056][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:07:35,094 [DEBUG][       Thread-607056][   transport.py][1871] : Compression: none
2025-07-01 14:07:35,094 [DEBUG][       Thread-607056][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:07:35,150 [DEBUG][       Thread-607056][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:07:35,150 [DEBUG][       Thread-607056][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:07:35,151 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:07:35,151 [DEBUG][       Thread-607056][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:07:35,152 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:07:35,206 [DEBUG][       Thread-607056][   transport.py][1871] : userauth is OK
2025-07-01 14:07:35,206 [DEBUG][       Thread-607056][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:07:35,206 [DEBUG][       Thread-607056][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:07:35,206 [DEBUG][       Thread-607056][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:07:35,206 [DEBUG][       Thread-607056][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:07:35,225 [ INFO][       Thread-607056][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:07:35,225 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:07:35,226 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:07:36,229 [DEBUG][       Thread-607056][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:07:36,230 [DEBUG][       Thread-607056][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:07:36,280 [DEBUG][       Thread-607056][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:07:36,280 [DEBUG][       Thread-607056][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:07:36,289 [DEBUG][       Thread-607056][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:07:36,298 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:07:36,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-07-01 14:07:36,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-07-01 14:07:36,316 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:07:36,316 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:07:36,316 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:07:36,324 [DEBUG][       Thread-607056][   transport.py][1871] : EOF in transport thread
2025-07-01 14:07:43,532 [DEBUG][Thread-607058 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:07:46,324 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:07:46,324 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:07:46,324 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:07:46,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-07-01 14:07:46,861 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 7, 32), 11.54, 45.54, 0.0, 38.55, 13.73, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:07:46,861 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:07:32
2025-07-01 14:07:46,953 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:07:46,957 [DEBUG][       Thread-607059][   transport.py][1871] : starting thread (client mode): 0x81a5240
2025-07-01 14:07:46,957 [DEBUG][       Thread-607059][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:07:46,978 [DEBUG][       Thread-607059][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:07:46,978 [ INFO][       Thread-607059][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:07:46,981 [DEBUG][       Thread-607059][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:07:46,981 [DEBUG][       Thread-607059][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:07:46,981 [DEBUG][       Thread-607059][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:07:46,981 [DEBUG][       Thread-607059][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:07:46,981 [DEBUG][       Thread-607059][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:07:46,981 [DEBUG][       Thread-607059][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:07:46,981 [DEBUG][       Thread-607059][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:07:46,981 [DEBUG][       Thread-607059][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:07:46,981 [DEBUG][       Thread-607059][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:07:46,981 [DEBUG][       Thread-607059][   transport.py][1871] : client lang: <none>
2025-07-01 14:07:46,981 [DEBUG][       Thread-607059][   transport.py][1871] : server lang: <none>
2025-07-01 14:07:46,981 [DEBUG][       Thread-607059][   transport.py][1871] : kex follows: False
2025-07-01 14:07:46,981 [DEBUG][       Thread-607059][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:07:46,981 [DEBUG][       Thread-607059][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:07:46,981 [DEBUG][       Thread-607059][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:07:46,982 [DEBUG][       Thread-607059][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:07:46,982 [DEBUG][       Thread-607059][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:07:46,982 [DEBUG][       Thread-607059][   transport.py][1871] : Compression: none
2025-07-01 14:07:46,982 [DEBUG][       Thread-607059][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:07:47,000 [DEBUG][       Thread-607059][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:07:47,000 [DEBUG][       Thread-607059][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:07:47,000 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:07:47,000 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:07:47,000 [DEBUG][       Thread-607059][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:07:47,001 [DEBUG][       Thread-607059][   transport.py][1871] : userauth is OK
2025-07-01 14:07:47,025 [ INFO][       Thread-607059][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:07:47,025 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:07:47,792 [DEBUG][       Thread-607059][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:07:47,792 [DEBUG][       Thread-607059][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:07:47,832 [DEBUG][       Thread-607059][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:07:47,832 [DEBUG][       Thread-607059][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:07:47,835 [DEBUG][       Thread-607059][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:07:47,847 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:07:47,847 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:07:47,848 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:07:47,849 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:07:47,852 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:07:47,853 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:07:47,853 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:07:47,853 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:07:47,853 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.504802 -999.00  +13.60  35.65     50   +3.60 1 2 2 1 1   887    0 10.20 13.72 ----- 34.9 35.6 38.8 52.4 16.3 -22.4 15.6 -22.7 15.8 -21.0 16.6 -20.7
2025-07-01 14:07:47,853 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:07:47,853 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:07:47,853 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.504802
2025-07-01 14:07:47,854 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:07:47,854 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:07:47,854 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:07:47,854 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:07:47,854 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:07:47,854 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:07:32', tmtdew=11.54, humidity=45.54, cloud=0.0, wind=38.55, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:06:54.893', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:07:47,854 [DEBUG][       Thread-607059][   transport.py][1871] : EOF in transport thread
2025-07-01 14:07:47,928 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:07:47,937 [DEBUG][       Thread-607062][   transport.py][1871] : starting thread (client mode): 0x81e79a0
2025-07-01 14:07:47,938 [DEBUG][       Thread-607062][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:07:47,954 [DEBUG][       Thread-607062][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:07:47,954 [ INFO][       Thread-607062][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:07:47,964 [DEBUG][       Thread-607062][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:07:47,964 [DEBUG][       Thread-607062][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:07:47,964 [DEBUG][       Thread-607062][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:07:47,964 [DEBUG][       Thread-607062][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:07:47,964 [DEBUG][       Thread-607062][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:07:47,964 [DEBUG][       Thread-607062][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:07:47,964 [DEBUG][       Thread-607062][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:07:47,964 [DEBUG][       Thread-607062][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:07:47,964 [DEBUG][       Thread-607062][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:07:47,964 [DEBUG][       Thread-607062][   transport.py][1871] : client lang: <none>
2025-07-01 14:07:47,964 [DEBUG][       Thread-607062][   transport.py][1871] : server lang: <none>
2025-07-01 14:07:47,964 [DEBUG][       Thread-607062][   transport.py][1871] : kex follows: False
2025-07-01 14:07:47,964 [DEBUG][       Thread-607062][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:07:47,964 [DEBUG][       Thread-607062][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:07:47,964 [DEBUG][       Thread-607062][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:07:47,964 [DEBUG][       Thread-607062][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:07:47,964 [DEBUG][       Thread-607062][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:07:47,964 [DEBUG][       Thread-607062][   transport.py][1871] : Compression: none
2025-07-01 14:07:47,964 [DEBUG][       Thread-607062][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:07:48,020 [DEBUG][       Thread-607062][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:07:48,020 [DEBUG][       Thread-607062][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:07:48,020 [DEBUG][       Thread-607062][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:07:48,020 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:07:48,020 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:07:48,077 [DEBUG][       Thread-607062][   transport.py][1871] : userauth is OK
2025-07-01 14:07:48,077 [DEBUG][       Thread-607062][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:07:48,077 [DEBUG][       Thread-607062][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:07:48,077 [DEBUG][       Thread-607062][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:07:48,077 [DEBUG][       Thread-607062][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:07:48,095 [ INFO][       Thread-607062][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:07:48,095 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:07:48,095 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:07:49,114 [DEBUG][       Thread-607062][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:07:49,115 [DEBUG][       Thread-607062][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:07:49,163 [DEBUG][       Thread-607062][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:07:49,163 [DEBUG][       Thread-607062][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:07:49,172 [DEBUG][       Thread-607062][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:07:49,180 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:07:49,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')
2025-07-01 14:07:49,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') -> 00000000
2025-07-01 14:07:49,197 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:07:49,197 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:07:49,197 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:07:49,213 [DEBUG][       Thread-607062][   transport.py][1871] : EOF in transport thread
2025-07-01 14:07:52,552 [DEBUG][Thread-607064 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:07:59,208 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:07:59,208 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:07:59,208 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:07:59,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-07-01 14:07:59,722 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 7, 32), 11.54, 45.54, 0.0, 38.55, 13.73, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:07:59,722 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:07:32
2025-07-01 14:07:59,806 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:07:59,812 [DEBUG][       Thread-607065][   transport.py][1871] : starting thread (client mode): 0x81c9cc0
2025-07-01 14:07:59,812 [DEBUG][       Thread-607065][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:07:59,834 [DEBUG][       Thread-607065][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:07:59,834 [ INFO][       Thread-607065][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:07:59,835 [DEBUG][       Thread-607065][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:07:59,835 [DEBUG][       Thread-607065][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:07:59,835 [DEBUG][       Thread-607065][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:07:59,835 [DEBUG][       Thread-607065][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:07:59,835 [DEBUG][       Thread-607065][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:07:59,835 [DEBUG][       Thread-607065][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:07:59,835 [DEBUG][       Thread-607065][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:07:59,835 [DEBUG][       Thread-607065][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:07:59,835 [DEBUG][       Thread-607065][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:07:59,835 [DEBUG][       Thread-607065][   transport.py][1871] : client lang: <none>
2025-07-01 14:07:59,835 [DEBUG][       Thread-607065][   transport.py][1871] : server lang: <none>
2025-07-01 14:07:59,835 [DEBUG][       Thread-607065][   transport.py][1871] : kex follows: False
2025-07-01 14:07:59,835 [DEBUG][       Thread-607065][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:07:59,835 [DEBUG][       Thread-607065][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:07:59,835 [DEBUG][       Thread-607065][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:07:59,835 [DEBUG][       Thread-607065][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:07:59,836 [DEBUG][       Thread-607065][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:07:59,836 [DEBUG][       Thread-607065][   transport.py][1871] : Compression: none
2025-07-01 14:07:59,836 [DEBUG][       Thread-607065][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:07:59,844 [DEBUG][       Thread-607065][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:07:59,844 [DEBUG][       Thread-607065][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:07:59,845 [DEBUG][       Thread-607065][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:07:59,845 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:07:59,845 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:07:59,846 [DEBUG][       Thread-607065][   transport.py][1871] : userauth is OK
2025-07-01 14:07:59,859 [ INFO][       Thread-607065][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:07:59,860 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:08:00,510 [DEBUG][       Thread-607065][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:08:00,510 [DEBUG][       Thread-607065][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:08:00,553 [DEBUG][       Thread-607065][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:08:00,553 [DEBUG][       Thread-607065][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:08:00,556 [DEBUG][       Thread-607065][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:08:00,568 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:08:00,568 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:08:00,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:08:00,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:08:00,578 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:08:00,579 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:08:00,579 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:08:00,580 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:08:00,580 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.505150 -999.00  +13.60  41.10     50   +3.60 1 2 2 1 1   887    0 10.34 15.62 ----- 40.6 41.1 41.2 55.7 16.4 -22.6 15.6 -23.6 15.7 -21.8 16.6 -21.0
2025-07-01 14:08:00,580 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:08:00,580 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:08:00,581 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.505150
2025-07-01 14:08:00,581 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:08:00,581 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:08:00,582 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:08:00,582 [DEBUG][       Thread-607065][   transport.py][1871] : EOF in transport thread
2025-07-01 14:08:00,582 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:08:00,583 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:08:00,583 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:07:32', tmtdew=11.54, humidity=45.54, cloud=0.0, wind=38.55, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:07:24.960', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:08:00,665 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:08:00,678 [DEBUG][       Thread-607068][   transport.py][1871] : starting thread (client mode): 0x81db970
2025-07-01 14:08:00,678 [DEBUG][       Thread-607068][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:08:00,695 [DEBUG][       Thread-607068][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:08:00,695 [ INFO][       Thread-607068][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:08:00,703 [DEBUG][       Thread-607068][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:08:00,703 [DEBUG][       Thread-607068][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:08:00,703 [DEBUG][       Thread-607068][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:08:00,703 [DEBUG][       Thread-607068][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:08:00,703 [DEBUG][       Thread-607068][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:08:00,703 [DEBUG][       Thread-607068][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:08:00,703 [DEBUG][       Thread-607068][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:08:00,703 [DEBUG][       Thread-607068][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:08:00,703 [DEBUG][       Thread-607068][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:08:00,703 [DEBUG][       Thread-607068][   transport.py][1871] : client lang: <none>
2025-07-01 14:08:00,703 [DEBUG][       Thread-607068][   transport.py][1871] : server lang: <none>
2025-07-01 14:08:00,704 [DEBUG][       Thread-607068][   transport.py][1871] : kex follows: False
2025-07-01 14:08:00,704 [DEBUG][       Thread-607068][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:08:00,704 [DEBUG][       Thread-607068][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:08:00,704 [DEBUG][       Thread-607068][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:08:00,704 [DEBUG][       Thread-607068][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:08:00,704 [DEBUG][       Thread-607068][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:08:00,704 [DEBUG][       Thread-607068][   transport.py][1871] : Compression: none
2025-07-01 14:08:00,704 [DEBUG][       Thread-607068][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:08:00,762 [DEBUG][       Thread-607068][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:08:00,762 [DEBUG][       Thread-607068][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:08:00,763 [DEBUG][       Thread-607068][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:08:00,763 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:08:00,764 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:08:00,818 [DEBUG][       Thread-607068][   transport.py][1871] : userauth is OK
2025-07-01 14:08:00,818 [DEBUG][       Thread-607068][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:08:00,819 [DEBUG][       Thread-607068][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:08:00,819 [DEBUG][       Thread-607068][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:08:00,819 [DEBUG][       Thread-607068][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:08:00,838 [ INFO][       Thread-607068][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:08:00,839 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:08:00,839 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:08:01,586 [DEBUG][Thread-607070 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:08:01,891 [DEBUG][       Thread-607068][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:08:01,891 [DEBUG][       Thread-607068][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:08:01,943 [DEBUG][       Thread-607068][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:08:01,944 [DEBUG][       Thread-607068][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:08:01,953 [DEBUG][       Thread-607068][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:08:01,961 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:08:01,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-07-01 14:08:01,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') -> 00000000
2025-07-01 14:08:01,979 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:08:01,979 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:08:01,979 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:08:01,987 [DEBUG][       Thread-607068][   transport.py][1871] : EOF in transport thread
2025-07-01 14:08:10,606 [DEBUG][Thread-607071 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:08:11,990 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:08:11,990 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:08:11,990 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:08:11,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-07-01 14:08:12,493 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 8, 4), 11.46, 45.79, 0.0, 35.76, 13.74, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:08:12,493 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:08:04
2025-07-01 14:08:12,577 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:08:12,581 [DEBUG][       Thread-607072][   transport.py][1871] : starting thread (client mode): 0x81d9660
2025-07-01 14:08:12,581 [DEBUG][       Thread-607072][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:08:12,600 [DEBUG][       Thread-607072][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:08:12,600 [ INFO][       Thread-607072][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:08:12,603 [DEBUG][       Thread-607072][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:08:12,603 [DEBUG][       Thread-607072][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:08:12,603 [DEBUG][       Thread-607072][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:08:12,603 [DEBUG][       Thread-607072][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:08:12,603 [DEBUG][       Thread-607072][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:08:12,603 [DEBUG][       Thread-607072][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:08:12,603 [DEBUG][       Thread-607072][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:08:12,603 [DEBUG][       Thread-607072][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:08:12,603 [DEBUG][       Thread-607072][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:08:12,603 [DEBUG][       Thread-607072][   transport.py][1871] : client lang: <none>
2025-07-01 14:08:12,603 [DEBUG][       Thread-607072][   transport.py][1871] : server lang: <none>
2025-07-01 14:08:12,603 [DEBUG][       Thread-607072][   transport.py][1871] : kex follows: False
2025-07-01 14:08:12,603 [DEBUG][       Thread-607072][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:08:12,603 [DEBUG][       Thread-607072][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:08:12,604 [DEBUG][       Thread-607072][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:08:12,604 [DEBUG][       Thread-607072][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:08:12,604 [DEBUG][       Thread-607072][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:08:12,604 [DEBUG][       Thread-607072][   transport.py][1871] : Compression: none
2025-07-01 14:08:12,604 [DEBUG][       Thread-607072][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:08:12,620 [DEBUG][       Thread-607072][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:08:12,621 [DEBUG][       Thread-607072][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:08:12,621 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:08:12,621 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:08:12,622 [DEBUG][       Thread-607072][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:08:12,623 [DEBUG][       Thread-607072][   transport.py][1871] : userauth is OK
2025-07-01 14:08:12,647 [ INFO][       Thread-607072][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:08:12,648 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:08:13,420 [DEBUG][       Thread-607072][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:08:13,420 [DEBUG][       Thread-607072][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:08:13,461 [DEBUG][       Thread-607072][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:08:13,461 [DEBUG][       Thread-607072][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:08:13,466 [DEBUG][       Thread-607072][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:08:13,479 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:08:13,480 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:08:13,481 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:08:13,483 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:08:13,487 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:08:13,488 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:08:13,488 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:08:13,489 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:08:13,489 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.505150 -999.00  +13.60  41.10     50   +3.60 1 2 2 1 1   887    0 10.34 15.62 ----- 40.6 41.1 41.2 55.7 16.4 -22.6 15.6 -23.6 15.7 -21.8 16.6 -21.0
2025-07-01 14:08:13,489 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:08:13,489 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:08:13,489 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.505150
2025-07-01 14:08:13,490 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:08:13,490 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:08:13,490 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:08:13,491 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:08:13,491 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:08:13,491 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:08:04', tmtdew=11.46, humidity=45.79, cloud=0.0, wind=35.76, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:07:24.960', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:08:13,492 [DEBUG][       Thread-607072][   transport.py][1871] : EOF in transport thread
2025-07-01 14:08:13,573 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:08:13,583 [DEBUG][       Thread-607075][   transport.py][1871] : starting thread (client mode): 0x81cbd90
2025-07-01 14:08:13,583 [DEBUG][       Thread-607075][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:08:13,597 [DEBUG][       Thread-607075][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:08:13,597 [ INFO][       Thread-607075][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:08:13,605 [DEBUG][       Thread-607075][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:08:13,605 [DEBUG][       Thread-607075][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:08:13,605 [DEBUG][       Thread-607075][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:08:13,605 [DEBUG][       Thread-607075][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:08:13,605 [DEBUG][       Thread-607075][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:08:13,605 [DEBUG][       Thread-607075][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:08:13,605 [DEBUG][       Thread-607075][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:08:13,605 [DEBUG][       Thread-607075][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:08:13,605 [DEBUG][       Thread-607075][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:08:13,605 [DEBUG][       Thread-607075][   transport.py][1871] : client lang: <none>
2025-07-01 14:08:13,605 [DEBUG][       Thread-607075][   transport.py][1871] : server lang: <none>
2025-07-01 14:08:13,605 [DEBUG][       Thread-607075][   transport.py][1871] : kex follows: False
2025-07-01 14:08:13,605 [DEBUG][       Thread-607075][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:08:13,605 [DEBUG][       Thread-607075][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:08:13,605 [DEBUG][       Thread-607075][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:08:13,605 [DEBUG][       Thread-607075][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:08:13,605 [DEBUG][       Thread-607075][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:08:13,605 [DEBUG][       Thread-607075][   transport.py][1871] : Compression: none
2025-07-01 14:08:13,605 [DEBUG][       Thread-607075][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:08:13,662 [DEBUG][       Thread-607075][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:08:13,662 [DEBUG][       Thread-607075][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:08:13,663 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:08:13,663 [DEBUG][       Thread-607075][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:08:13,664 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:08:13,718 [DEBUG][       Thread-607075][   transport.py][1871] : userauth is OK
2025-07-01 14:08:13,718 [DEBUG][       Thread-607075][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:08:13,718 [DEBUG][       Thread-607075][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:08:13,718 [DEBUG][       Thread-607075][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:08:13,718 [DEBUG][       Thread-607075][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:08:13,739 [ INFO][       Thread-607075][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:08:13,739 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:08:13,739 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:08:14,778 [DEBUG][       Thread-607075][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:08:14,778 [DEBUG][       Thread-607075][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:08:14,829 [DEBUG][       Thread-607075][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:08:14,829 [DEBUG][       Thread-607075][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:08:14,838 [DEBUG][       Thread-607075][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:08:14,847 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:08:14,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-07-01 14:08:14,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-07-01 14:08:14,866 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:08:14,866 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:08:14,867 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:08:14,875 [DEBUG][       Thread-607075][   transport.py][1871] : EOF in transport thread
2025-07-01 14:08:19,625 [DEBUG][Thread-607077 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:08:24,876 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:08:24,876 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:08:24,876 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:08:24,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-07-01 14:08:25,404 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 8, 4), 11.46, 45.79, 0.0, 35.76, 13.74, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:08:25,404 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:08:04
2025-07-01 14:08:25,491 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:08:25,497 [DEBUG][       Thread-607078][   transport.py][1871] : starting thread (client mode): 0x75ab190
2025-07-01 14:08:25,497 [DEBUG][       Thread-607078][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:08:25,517 [DEBUG][       Thread-607078][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:08:25,517 [ INFO][       Thread-607078][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:08:25,519 [DEBUG][       Thread-607078][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:08:25,519 [DEBUG][       Thread-607078][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:08:25,519 [DEBUG][       Thread-607078][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:08:25,519 [DEBUG][       Thread-607078][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:08:25,519 [DEBUG][       Thread-607078][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:08:25,519 [DEBUG][       Thread-607078][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:08:25,519 [DEBUG][       Thread-607078][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:08:25,519 [DEBUG][       Thread-607078][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:08:25,519 [DEBUG][       Thread-607078][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:08:25,519 [DEBUG][       Thread-607078][   transport.py][1871] : client lang: <none>
2025-07-01 14:08:25,519 [DEBUG][       Thread-607078][   transport.py][1871] : server lang: <none>
2025-07-01 14:08:25,519 [DEBUG][       Thread-607078][   transport.py][1871] : kex follows: False
2025-07-01 14:08:25,519 [DEBUG][       Thread-607078][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:08:25,519 [DEBUG][       Thread-607078][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:08:25,519 [DEBUG][       Thread-607078][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:08:25,519 [DEBUG][       Thread-607078][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:08:25,519 [DEBUG][       Thread-607078][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:08:25,519 [DEBUG][       Thread-607078][   transport.py][1871] : Compression: none
2025-07-01 14:08:25,519 [DEBUG][       Thread-607078][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:08:25,526 [DEBUG][       Thread-607078][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:08:25,526 [DEBUG][       Thread-607078][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:08:25,526 [DEBUG][       Thread-607078][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:08:25,526 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:08:25,526 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:08:25,527 [DEBUG][       Thread-607078][   transport.py][1871] : userauth is OK
2025-07-01 14:08:25,539 [ INFO][       Thread-607078][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:08:25,540 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:08:26,168 [DEBUG][       Thread-607078][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:08:26,168 [DEBUG][       Thread-607078][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:08:26,212 [DEBUG][       Thread-607078][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:08:26,213 [DEBUG][       Thread-607078][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:08:26,215 [DEBUG][       Thread-607078][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:08:26,226 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:08:26,226 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:08:26,227 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:08:26,228 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:08:26,231 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:08:26,232 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:08:26,232 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:08:26,232 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:08:26,232 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.505497 -999.00  +13.60  38.88     51   +3.70 1 2 2 1 1   887    0 10.49 17.09 ----- 40.0 38.9 30.4 47.8 16.4 -23.0 15.6 -23.0 15.8 -21.1 16.6 -21.1
2025-07-01 14:08:26,232 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:08:26,232 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:08:26,232 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.505497
2025-07-01 14:08:26,232 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:08:26,232 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:08:26,232 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:08:26,232 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:08:26,232 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:08:26,233 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:08:04', tmtdew=11.46, humidity=45.79, cloud=0.0, wind=35.76, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:07:54.941', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:08:26,233 [DEBUG][       Thread-607078][   transport.py][1871] : EOF in transport thread
2025-07-01 14:08:26,307 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:08:26,318 [DEBUG][       Thread-607081][   transport.py][1871] : starting thread (client mode): 0x4701ec20
2025-07-01 14:08:26,318 [DEBUG][       Thread-607081][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:08:26,333 [DEBUG][       Thread-607081][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:08:26,333 [ INFO][       Thread-607081][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:08:26,340 [DEBUG][       Thread-607081][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:08:26,340 [DEBUG][       Thread-607081][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:08:26,340 [DEBUG][       Thread-607081][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:08:26,340 [DEBUG][       Thread-607081][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:08:26,340 [DEBUG][       Thread-607081][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:08:26,340 [DEBUG][       Thread-607081][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:08:26,340 [DEBUG][       Thread-607081][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:08:26,340 [DEBUG][       Thread-607081][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:08:26,340 [DEBUG][       Thread-607081][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:08:26,340 [DEBUG][       Thread-607081][   transport.py][1871] : client lang: <none>
2025-07-01 14:08:26,340 [DEBUG][       Thread-607081][   transport.py][1871] : server lang: <none>
2025-07-01 14:08:26,340 [DEBUG][       Thread-607081][   transport.py][1871] : kex follows: False
2025-07-01 14:08:26,340 [DEBUG][       Thread-607081][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:08:26,340 [DEBUG][       Thread-607081][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:08:26,341 [DEBUG][       Thread-607081][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:08:26,341 [DEBUG][       Thread-607081][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:08:26,341 [DEBUG][       Thread-607081][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:08:26,341 [DEBUG][       Thread-607081][   transport.py][1871] : Compression: none
2025-07-01 14:08:26,341 [DEBUG][       Thread-607081][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:08:26,396 [DEBUG][       Thread-607081][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:08:26,396 [DEBUG][       Thread-607081][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:08:26,396 [DEBUG][       Thread-607081][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:08:26,397 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:08:26,397 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:08:26,457 [DEBUG][       Thread-607081][   transport.py][1871] : userauth is OK
2025-07-01 14:08:26,457 [DEBUG][       Thread-607081][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:08:26,457 [DEBUG][       Thread-607081][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:08:26,457 [DEBUG][       Thread-607081][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:08:26,457 [DEBUG][       Thread-607081][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:08:26,471 [ INFO][       Thread-607081][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:08:26,471 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:08:26,471 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:08:27,504 [DEBUG][       Thread-607081][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:08:27,505 [DEBUG][       Thread-607081][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:08:27,555 [DEBUG][       Thread-607081][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:08:27,555 [DEBUG][       Thread-607081][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:08:27,564 [DEBUG][       Thread-607081][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:08:27,572 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:08:27,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-07-01 14:08:27,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-07-01 14:08:27,588 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:08:27,588 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:08:27,588 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:08:27,596 [DEBUG][       Thread-607081][   transport.py][1871] : EOF in transport thread
2025-07-01 14:08:28,666 [DEBUG][Thread-607083 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:08:30,047 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:08:30,048 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:08:33,961 [DEBUG][Thread-607084 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:08:37,594 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:08:37,594 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:08:37,594 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:08:37,595 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:08:37,686 [DEBUG][Thread-607085 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:08:38,120 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 8, 4), 11.46, 45.79, 0.0, 35.76, 13.74, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:08:38,120 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:08:04
2025-07-01 14:08:38,211 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:08:38,214 [DEBUG][       Thread-607086][   transport.py][1871] : starting thread (client mode): 0x81ca710
2025-07-01 14:08:38,214 [DEBUG][       Thread-607086][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:08:38,232 [DEBUG][       Thread-607086][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:08:38,232 [ INFO][       Thread-607086][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:08:38,235 [DEBUG][       Thread-607086][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:08:38,235 [DEBUG][       Thread-607086][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:08:38,235 [DEBUG][       Thread-607086][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:08:38,235 [DEBUG][       Thread-607086][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:08:38,235 [DEBUG][       Thread-607086][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:08:38,235 [DEBUG][       Thread-607086][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:08:38,235 [DEBUG][       Thread-607086][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:08:38,235 [DEBUG][       Thread-607086][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:08:38,235 [DEBUG][       Thread-607086][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:08:38,235 [DEBUG][       Thread-607086][   transport.py][1871] : client lang: <none>
2025-07-01 14:08:38,235 [DEBUG][       Thread-607086][   transport.py][1871] : server lang: <none>
2025-07-01 14:08:38,235 [DEBUG][       Thread-607086][   transport.py][1871] : kex follows: False
2025-07-01 14:08:38,235 [DEBUG][       Thread-607086][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:08:38,235 [DEBUG][       Thread-607086][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:08:38,235 [DEBUG][       Thread-607086][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:08:38,235 [DEBUG][       Thread-607086][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:08:38,235 [DEBUG][       Thread-607086][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:08:38,235 [DEBUG][       Thread-607086][   transport.py][1871] : Compression: none
2025-07-01 14:08:38,235 [DEBUG][       Thread-607086][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:08:38,242 [DEBUG][       Thread-607086][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:08:38,242 [DEBUG][       Thread-607086][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:08:38,242 [DEBUG][       Thread-607086][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:08:38,242 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:08:38,242 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:08:38,243 [DEBUG][       Thread-607086][   transport.py][1871] : userauth is OK
2025-07-01 14:08:38,255 [ INFO][       Thread-607086][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:08:38,255 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:08:38,896 [DEBUG][       Thread-607086][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:08:38,896 [DEBUG][       Thread-607086][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:08:38,940 [DEBUG][       Thread-607086][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:08:38,940 [DEBUG][       Thread-607086][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:08:38,943 [DEBUG][       Thread-607086][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:08:38,956 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:08:38,956 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:08:38,957 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:08:38,958 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:08:38,960 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:08:38,961 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:08:38,961 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:08:38,961 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:08:38,961 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.505497 -999.00  +13.60  38.88     51   +3.70 1 2 2 1 1   887    0 10.49 17.09 ----- 40.0 38.9 30.4 47.8 16.4 -23.0 15.6 -23.0 15.8 -21.1 16.6 -21.1
2025-07-01 14:08:38,961 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:08:38,961 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:08:38,961 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.505497
2025-07-01 14:08:38,961 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:08:38,962 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:08:38,962 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:08:38,962 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:08:38,962 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:08:38,962 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:08:04', tmtdew=11.46, humidity=45.79, cloud=0.0, wind=35.76, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:07:54.941', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:08:38,962 [DEBUG][       Thread-607086][   transport.py][1871] : EOF in transport thread
2025-07-01 14:08:39,036 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:08:39,047 [DEBUG][       Thread-607089][   transport.py][1871] : starting thread (client mode): 0x827ec50
2025-07-01 14:08:39,047 [DEBUG][       Thread-607089][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:08:39,065 [DEBUG][       Thread-607089][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:08:39,065 [ INFO][       Thread-607089][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:08:39,072 [DEBUG][       Thread-607089][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:08:39,072 [DEBUG][       Thread-607089][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:08:39,072 [DEBUG][       Thread-607089][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:08:39,073 [DEBUG][       Thread-607089][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:08:39,073 [DEBUG][       Thread-607089][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:08:39,073 [DEBUG][       Thread-607089][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:08:39,073 [DEBUG][       Thread-607089][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:08:39,073 [DEBUG][       Thread-607089][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:08:39,073 [DEBUG][       Thread-607089][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:08:39,073 [DEBUG][       Thread-607089][   transport.py][1871] : client lang: <none>
2025-07-01 14:08:39,073 [DEBUG][       Thread-607089][   transport.py][1871] : server lang: <none>
2025-07-01 14:08:39,073 [DEBUG][       Thread-607089][   transport.py][1871] : kex follows: False
2025-07-01 14:08:39,073 [DEBUG][       Thread-607089][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:08:39,073 [DEBUG][       Thread-607089][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:08:39,073 [DEBUG][       Thread-607089][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:08:39,073 [DEBUG][       Thread-607089][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:08:39,073 [DEBUG][       Thread-607089][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:08:39,073 [DEBUG][       Thread-607089][   transport.py][1871] : Compression: none
2025-07-01 14:08:39,073 [DEBUG][       Thread-607089][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:08:39,131 [DEBUG][       Thread-607089][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:08:39,131 [DEBUG][       Thread-607089][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:08:39,131 [DEBUG][       Thread-607089][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:08:39,131 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:08:39,131 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:08:39,193 [DEBUG][       Thread-607089][   transport.py][1871] : userauth is OK
2025-07-01 14:08:39,193 [DEBUG][       Thread-607089][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:08:39,193 [DEBUG][       Thread-607089][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:08:39,193 [DEBUG][       Thread-607089][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:08:39,193 [DEBUG][       Thread-607089][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:08:39,208 [ INFO][       Thread-607089][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:08:39,208 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:08:39,208 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:08:40,252 [DEBUG][       Thread-607089][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:08:40,252 [DEBUG][       Thread-607089][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:08:40,302 [DEBUG][       Thread-607089][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:08:40,303 [DEBUG][       Thread-607089][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:08:40,314 [DEBUG][       Thread-607089][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:08:40,323 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:08:40,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-07-01 14:08:40,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-07-01 14:08:40,346 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:08:40,347 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:08:40,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:08:40,355 [DEBUG][       Thread-607089][   transport.py][1871] : EOF in transport thread
2025-07-01 14:08:46,706 [DEBUG][Thread-607091 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:08:50,357 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:08:50,358 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:08:50,358 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:08:50,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-07-01 14:08:50,857 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 8, 37), 11.45, 45.81, 0.0, 38.59, 13.75, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:08:50,857 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:08:37
2025-07-01 14:08:50,941 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:08:50,947 [DEBUG][       Thread-607092][   transport.py][1871] : starting thread (client mode): 0x81caaa0
2025-07-01 14:08:50,947 [DEBUG][       Thread-607092][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:08:50,969 [DEBUG][       Thread-607092][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:08:50,969 [ INFO][       Thread-607092][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:08:50,972 [DEBUG][       Thread-607092][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:08:50,972 [DEBUG][       Thread-607092][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:08:50,972 [DEBUG][       Thread-607092][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:08:50,972 [DEBUG][       Thread-607092][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:08:50,972 [DEBUG][       Thread-607092][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:08:50,972 [DEBUG][       Thread-607092][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:08:50,972 [DEBUG][       Thread-607092][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:08:50,972 [DEBUG][       Thread-607092][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:08:50,972 [DEBUG][       Thread-607092][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:08:50,973 [DEBUG][       Thread-607092][   transport.py][1871] : client lang: <none>
2025-07-01 14:08:50,973 [DEBUG][       Thread-607092][   transport.py][1871] : server lang: <none>
2025-07-01 14:08:50,973 [DEBUG][       Thread-607092][   transport.py][1871] : kex follows: False
2025-07-01 14:08:50,973 [DEBUG][       Thread-607092][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:08:50,973 [DEBUG][       Thread-607092][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:08:50,973 [DEBUG][       Thread-607092][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:08:50,973 [DEBUG][       Thread-607092][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:08:50,973 [DEBUG][       Thread-607092][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:08:50,973 [DEBUG][       Thread-607092][   transport.py][1871] : Compression: none
2025-07-01 14:08:50,973 [DEBUG][       Thread-607092][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:08:50,991 [DEBUG][       Thread-607092][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:08:50,991 [DEBUG][       Thread-607092][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:08:50,992 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:08:50,992 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:08:50,992 [DEBUG][       Thread-607092][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:08:50,993 [DEBUG][       Thread-607092][   transport.py][1871] : userauth is OK
2025-07-01 14:08:51,006 [ INFO][       Thread-607092][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:08:51,006 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:08:51,819 [DEBUG][       Thread-607092][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:08:51,820 [DEBUG][       Thread-607092][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:08:51,861 [DEBUG][       Thread-607092][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:08:51,861 [DEBUG][       Thread-607092][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:08:51,864 [DEBUG][       Thread-607092][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:08:51,878 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:08:51,878 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:08:51,880 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:08:51,882 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:08:51,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:08:51,890 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:08:51,890 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:08:51,891 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:08:51,891 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.505497 -999.00  +13.60  38.88     51   +3.70 1 2 2 1 1   887    0 10.49 17.09 ----- 40.0 38.9 30.4 47.8 16.4 -23.0 15.6 -23.0 15.8 -21.1 16.6 -21.1
2025-07-01 14:08:51,891 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:08:51,891 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:08:51,891 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.505497
2025-07-01 14:08:51,892 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:08:51,892 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:08:51,892 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:08:51,892 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:08:51,892 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:08:51,893 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:08:37', tmtdew=11.45, humidity=45.81, cloud=0.0, wind=38.59, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:07:54.941', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:08:51,894 [DEBUG][       Thread-607092][   transport.py][1871] : EOF in transport thread
2025-07-01 14:08:51,976 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:08:51,989 [DEBUG][       Thread-607095][   transport.py][1871] : starting thread (client mode): 0x81d9600
2025-07-01 14:08:51,989 [DEBUG][       Thread-607095][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:08:52,004 [DEBUG][       Thread-607095][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:08:52,005 [ INFO][       Thread-607095][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:08:52,012 [DEBUG][       Thread-607095][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:08:52,012 [DEBUG][       Thread-607095][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:08:52,012 [DEBUG][       Thread-607095][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:08:52,012 [DEBUG][       Thread-607095][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:08:52,012 [DEBUG][       Thread-607095][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:08:52,013 [DEBUG][       Thread-607095][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:08:52,013 [DEBUG][       Thread-607095][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:08:52,013 [DEBUG][       Thread-607095][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:08:52,013 [DEBUG][       Thread-607095][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:08:52,013 [DEBUG][       Thread-607095][   transport.py][1871] : client lang: <none>
2025-07-01 14:08:52,013 [DEBUG][       Thread-607095][   transport.py][1871] : server lang: <none>
2025-07-01 14:08:52,013 [DEBUG][       Thread-607095][   transport.py][1871] : kex follows: False
2025-07-01 14:08:52,013 [DEBUG][       Thread-607095][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:08:52,013 [DEBUG][       Thread-607095][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:08:52,013 [DEBUG][       Thread-607095][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:08:52,013 [DEBUG][       Thread-607095][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:08:52,013 [DEBUG][       Thread-607095][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:08:52,013 [DEBUG][       Thread-607095][   transport.py][1871] : Compression: none
2025-07-01 14:08:52,013 [DEBUG][       Thread-607095][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:08:52,070 [DEBUG][       Thread-607095][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:08:52,070 [DEBUG][       Thread-607095][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:08:52,071 [DEBUG][       Thread-607095][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:08:52,071 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:08:52,072 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:08:52,132 [DEBUG][       Thread-607095][   transport.py][1871] : userauth is OK
2025-07-01 14:08:52,133 [DEBUG][       Thread-607095][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:08:52,133 [DEBUG][       Thread-607095][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:08:52,133 [DEBUG][       Thread-607095][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:08:52,133 [DEBUG][       Thread-607095][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:08:52,153 [ INFO][       Thread-607095][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:08:52,154 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:08:52,154 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:08:53,247 [DEBUG][       Thread-607095][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:08:53,247 [DEBUG][       Thread-607095][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:08:53,299 [DEBUG][       Thread-607095][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:08:53,299 [DEBUG][       Thread-607095][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:08:53,309 [DEBUG][       Thread-607095][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:08:53,319 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:08:53,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-07-01 14:08:53,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') -> 00000000
2025-07-01 14:08:53,340 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:08:53,340 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:08:53,341 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:08:53,349 [DEBUG][       Thread-607095][   transport.py][1871] : EOF in transport thread
2025-07-01 14:08:55,727 [DEBUG][Thread-607097 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:09:03,348 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:09:03,348 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:09:03,348 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:09:03,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-07-01 14:09:03,870 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 8, 37), 11.45, 45.81, 0.0, 38.59, 13.75, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:09:03,870 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:08:37
2025-07-01 14:09:03,959 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:09:03,963 [DEBUG][       Thread-607098][   transport.py][1871] : starting thread (client mode): 0x8171f00
2025-07-01 14:09:03,963 [DEBUG][       Thread-607098][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:09:03,984 [DEBUG][       Thread-607098][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:09:03,984 [ INFO][       Thread-607098][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:09:03,985 [DEBUG][       Thread-607098][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:09:03,985 [DEBUG][       Thread-607098][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:09:03,985 [DEBUG][       Thread-607098][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:09:03,985 [DEBUG][       Thread-607098][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:09:03,985 [DEBUG][       Thread-607098][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:09:03,985 [DEBUG][       Thread-607098][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:09:03,985 [DEBUG][       Thread-607098][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:09:03,985 [DEBUG][       Thread-607098][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:09:03,985 [DEBUG][       Thread-607098][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:09:03,985 [DEBUG][       Thread-607098][   transport.py][1871] : client lang: <none>
2025-07-01 14:09:03,985 [DEBUG][       Thread-607098][   transport.py][1871] : server lang: <none>
2025-07-01 14:09:03,985 [DEBUG][       Thread-607098][   transport.py][1871] : kex follows: False
2025-07-01 14:09:03,985 [DEBUG][       Thread-607098][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:09:03,985 [DEBUG][       Thread-607098][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:09:03,985 [DEBUG][       Thread-607098][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:09:03,985 [DEBUG][       Thread-607098][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:09:03,985 [DEBUG][       Thread-607098][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:09:03,986 [DEBUG][       Thread-607098][   transport.py][1871] : Compression: none
2025-07-01 14:09:03,986 [DEBUG][       Thread-607098][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:09:03,992 [DEBUG][       Thread-607098][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:09:03,993 [DEBUG][       Thread-607098][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:09:03,993 [DEBUG][       Thread-607098][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:09:03,993 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:09:03,993 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:09:03,993 [DEBUG][       Thread-607098][   transport.py][1871] : userauth is OK
2025-07-01 14:09:04,006 [ INFO][       Thread-607098][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:09:04,006 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:09:04,571 [DEBUG][       Thread-607098][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:09:04,571 [DEBUG][       Thread-607098][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:09:04,612 [DEBUG][       Thread-607098][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:09:04,612 [DEBUG][       Thread-607098][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:09:04,615 [DEBUG][       Thread-607098][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:09:04,626 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:09:04,626 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:09:04,627 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:09:04,628 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:09:04,631 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:09:04,632 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:09:04,632 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:09:04,632 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:09:04,632 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.506191 -999.00  +13.60  45.52     51   +3.70 1 2 2 1 1   887    0 10.50 21.13 ----- 40.3 45.5 24.5 55.2 16.4 -22.9 15.6 -22.7 15.8 -21.0 16.6 -20.5
2025-07-01 14:09:04,632 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:09:04,632 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:09:04,632 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.506191
2025-07-01 14:09:04,632 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:09:04,632 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:09:04,632 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:09:04,632 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:09:04,632 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:09:04,632 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:08:37', tmtdew=11.45, humidity=45.81, cloud=0.0, wind=38.59, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:08:54.902', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:09:04,633 [DEBUG][       Thread-607098][   transport.py][1871] : EOF in transport thread
2025-07-01 14:09:04,707 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:09:04,716 [DEBUG][       Thread-607101][   transport.py][1871] : starting thread (client mode): 0x827db40
2025-07-01 14:09:04,716 [DEBUG][       Thread-607101][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:09:04,733 [DEBUG][       Thread-607101][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:09:04,733 [ INFO][       Thread-607101][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:09:04,741 [DEBUG][       Thread-607101][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:09:04,741 [DEBUG][       Thread-607101][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:09:04,741 [DEBUG][       Thread-607101][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:09:04,741 [DEBUG][       Thread-607101][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:09:04,741 [DEBUG][       Thread-607101][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:09:04,741 [DEBUG][       Thread-607101][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:09:04,741 [DEBUG][       Thread-607101][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:09:04,741 [DEBUG][       Thread-607101][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:09:04,741 [DEBUG][       Thread-607101][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:09:04,741 [DEBUG][       Thread-607101][   transport.py][1871] : client lang: <none>
2025-07-01 14:09:04,741 [DEBUG][       Thread-607101][   transport.py][1871] : server lang: <none>
2025-07-01 14:09:04,741 [DEBUG][       Thread-607101][   transport.py][1871] : kex follows: False
2025-07-01 14:09:04,741 [DEBUG][       Thread-607101][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:09:04,741 [DEBUG][       Thread-607101][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:09:04,741 [DEBUG][       Thread-607101][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:09:04,741 [DEBUG][       Thread-607101][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:09:04,741 [DEBUG][       Thread-607101][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:09:04,741 [DEBUG][       Thread-607101][   transport.py][1871] : Compression: none
2025-07-01 14:09:04,741 [DEBUG][       Thread-607101][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:09:04,756 [DEBUG][Thread-607103 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:09:04,800 [DEBUG][       Thread-607101][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:09:04,800 [DEBUG][       Thread-607101][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:09:04,800 [DEBUG][       Thread-607101][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:09:04,800 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:09:04,800 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:09:04,857 [DEBUG][       Thread-607101][   transport.py][1871] : userauth is OK
2025-07-01 14:09:04,857 [DEBUG][       Thread-607101][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:09:04,857 [DEBUG][       Thread-607101][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:09:04,858 [DEBUG][       Thread-607101][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:09:04,858 [DEBUG][       Thread-607101][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:09:04,876 [ INFO][       Thread-607101][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:09:04,876 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:09:04,876 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:09:05,966 [DEBUG][       Thread-607101][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:09:05,966 [DEBUG][       Thread-607101][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:09:06,015 [DEBUG][       Thread-607101][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:09:06,015 [DEBUG][       Thread-607101][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:09:06,024 [DEBUG][       Thread-607101][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:09:06,033 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:09:06,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-07-01 14:09:06,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-07-01 14:09:06,051 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:09:06,051 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:09:06,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:09:06,060 [DEBUG][       Thread-607101][   transport.py][1871] : EOF in transport thread
2025-07-01 14:09:13,775 [DEBUG][Thread-607104 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:09:16,062 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:09:16,063 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:09:16,063 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:09:16,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-07-01 14:09:16,564 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 9, 8), 11.51, 45.68, 0.0, 30.91, 13.83, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:09:16,564 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:09:08
2025-07-01 14:09:16,650 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:09:16,655 [DEBUG][       Thread-607105][   transport.py][1871] : starting thread (client mode): 0x81c8040
2025-07-01 14:09:16,655 [DEBUG][       Thread-607105][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:09:16,676 [DEBUG][       Thread-607105][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:09:16,676 [ INFO][       Thread-607105][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:09:16,679 [DEBUG][       Thread-607105][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:09:16,679 [DEBUG][       Thread-607105][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:09:16,679 [DEBUG][       Thread-607105][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:09:16,679 [DEBUG][       Thread-607105][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:09:16,679 [DEBUG][       Thread-607105][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:09:16,679 [DEBUG][       Thread-607105][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:09:16,679 [DEBUG][       Thread-607105][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:09:16,679 [DEBUG][       Thread-607105][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:09:16,679 [DEBUG][       Thread-607105][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:09:16,679 [DEBUG][       Thread-607105][   transport.py][1871] : client lang: <none>
2025-07-01 14:09:16,680 [DEBUG][       Thread-607105][   transport.py][1871] : server lang: <none>
2025-07-01 14:09:16,680 [DEBUG][       Thread-607105][   transport.py][1871] : kex follows: False
2025-07-01 14:09:16,680 [DEBUG][       Thread-607105][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:09:16,680 [DEBUG][       Thread-607105][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:09:16,680 [DEBUG][       Thread-607105][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:09:16,680 [DEBUG][       Thread-607105][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:09:16,680 [DEBUG][       Thread-607105][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:09:16,680 [DEBUG][       Thread-607105][   transport.py][1871] : Compression: none
2025-07-01 14:09:16,680 [DEBUG][       Thread-607105][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:09:16,696 [DEBUG][       Thread-607105][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:09:16,696 [DEBUG][       Thread-607105][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:09:16,697 [DEBUG][       Thread-607105][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:09:16,697 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:09:16,697 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:09:16,741 [DEBUG][       Thread-607105][   transport.py][1871] : userauth is OK
2025-07-01 14:09:16,765 [ INFO][       Thread-607105][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:09:16,765 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:09:17,591 [DEBUG][       Thread-607105][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:09:17,591 [DEBUG][       Thread-607105][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:09:17,633 [DEBUG][       Thread-607105][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:09:17,633 [DEBUG][       Thread-607105][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:09:17,636 [DEBUG][       Thread-607105][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:09:17,648 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:09:17,648 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:09:17,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:09:17,652 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:09:17,657 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:09:17,659 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:09:17,659 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:09:17,660 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:09:17,660 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.506191 -999.00  +13.60  45.52     51   +3.70 1 2 2 1 1   887    0 10.50 21.13 ----- 40.3 45.5 24.5 55.2 16.4 -22.9 15.6 -22.7 15.8 -21.0 16.6 -20.5
2025-07-01 14:09:17,660 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:09:17,660 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:09:17,660 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.506191
2025-07-01 14:09:17,661 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:09:17,661 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:09:17,661 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:09:17,661 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:09:17,661 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:09:17,662 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:09:08', tmtdew=11.51, humidity=45.68, cloud=0.0, wind=30.91, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:08:54.902', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:09:17,663 [DEBUG][       Thread-607105][   transport.py][1871] : EOF in transport thread
2025-07-01 14:09:17,748 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:09:17,759 [DEBUG][       Thread-607108][   transport.py][1871] : starting thread (client mode): 0x75a9960
2025-07-01 14:09:17,759 [DEBUG][       Thread-607108][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:09:17,774 [DEBUG][       Thread-607108][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:09:17,774 [ INFO][       Thread-607108][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:09:17,782 [DEBUG][       Thread-607108][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:09:17,782 [DEBUG][       Thread-607108][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:09:17,782 [DEBUG][       Thread-607108][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:09:17,782 [DEBUG][       Thread-607108][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:09:17,782 [DEBUG][       Thread-607108][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:09:17,782 [DEBUG][       Thread-607108][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:09:17,782 [DEBUG][       Thread-607108][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:09:17,782 [DEBUG][       Thread-607108][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:09:17,782 [DEBUG][       Thread-607108][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:09:17,782 [DEBUG][       Thread-607108][   transport.py][1871] : client lang: <none>
2025-07-01 14:09:17,782 [DEBUG][       Thread-607108][   transport.py][1871] : server lang: <none>
2025-07-01 14:09:17,782 [DEBUG][       Thread-607108][   transport.py][1871] : kex follows: False
2025-07-01 14:09:17,782 [DEBUG][       Thread-607108][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:09:17,782 [DEBUG][       Thread-607108][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:09:17,782 [DEBUG][       Thread-607108][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:09:17,782 [DEBUG][       Thread-607108][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:09:17,782 [DEBUG][       Thread-607108][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:09:17,782 [DEBUG][       Thread-607108][   transport.py][1871] : Compression: none
2025-07-01 14:09:17,782 [DEBUG][       Thread-607108][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:09:17,842 [DEBUG][       Thread-607108][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:09:17,842 [DEBUG][       Thread-607108][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:09:17,843 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:09:17,843 [DEBUG][       Thread-607108][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:09:17,844 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:09:17,907 [DEBUG][       Thread-607108][   transport.py][1871] : userauth is OK
2025-07-01 14:09:17,907 [DEBUG][       Thread-607108][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:09:17,907 [DEBUG][       Thread-607108][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:09:17,907 [DEBUG][       Thread-607108][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:09:17,907 [DEBUG][       Thread-607108][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:09:17,931 [ INFO][       Thread-607108][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:09:17,932 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:09:17,932 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:09:19,031 [DEBUG][       Thread-607108][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:09:19,031 [DEBUG][       Thread-607108][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:09:19,080 [DEBUG][       Thread-607108][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:09:19,080 [DEBUG][       Thread-607108][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:09:19,090 [DEBUG][       Thread-607108][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:09:19,099 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:09:19,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-07-01 14:09:19,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-07-01 14:09:19,117 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:09:19,117 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:09:19,118 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:09:19,126 [DEBUG][       Thread-607108][   transport.py][1871] : EOF in transport thread
2025-07-01 14:09:22,796 [DEBUG][Thread-607110 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:09:29,128 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:09:29,128 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:09:29,128 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:09:29,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-07-01 14:09:29,644 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 9, 8), 11.51, 45.68, 0.0, 30.91, 13.83, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:09:29,644 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:09:08
2025-07-01 14:09:29,730 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:09:29,736 [DEBUG][       Thread-607111][   transport.py][1871] : starting thread (client mode): 0x8170e80
2025-07-01 14:09:29,736 [DEBUG][       Thread-607111][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:09:29,752 [DEBUG][       Thread-607111][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:09:29,752 [ INFO][       Thread-607111][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:09:29,755 [DEBUG][       Thread-607111][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:09:29,755 [DEBUG][       Thread-607111][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:09:29,755 [DEBUG][       Thread-607111][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:09:29,755 [DEBUG][       Thread-607111][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:09:29,755 [DEBUG][       Thread-607111][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:09:29,755 [DEBUG][       Thread-607111][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:09:29,755 [DEBUG][       Thread-607111][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:09:29,755 [DEBUG][       Thread-607111][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:09:29,755 [DEBUG][       Thread-607111][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:09:29,755 [DEBUG][       Thread-607111][   transport.py][1871] : client lang: <none>
2025-07-01 14:09:29,755 [DEBUG][       Thread-607111][   transport.py][1871] : server lang: <none>
2025-07-01 14:09:29,755 [DEBUG][       Thread-607111][   transport.py][1871] : kex follows: False
2025-07-01 14:09:29,755 [DEBUG][       Thread-607111][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:09:29,755 [DEBUG][       Thread-607111][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:09:29,755 [DEBUG][       Thread-607111][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:09:29,755 [DEBUG][       Thread-607111][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:09:29,755 [DEBUG][       Thread-607111][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:09:29,755 [DEBUG][       Thread-607111][   transport.py][1871] : Compression: none
2025-07-01 14:09:29,755 [DEBUG][       Thread-607111][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:09:29,770 [DEBUG][       Thread-607111][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:09:29,770 [DEBUG][       Thread-607111][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:09:29,771 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:09:29,771 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:09:29,771 [DEBUG][       Thread-607111][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:09:29,772 [DEBUG][       Thread-607111][   transport.py][1871] : userauth is OK
2025-07-01 14:09:29,784 [ INFO][       Thread-607111][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:09:29,785 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:09:30,186 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:09:30,187 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:09:30,633 [DEBUG][       Thread-607111][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:09:30,633 [DEBUG][       Thread-607111][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:09:30,677 [DEBUG][       Thread-607111][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:09:30,677 [DEBUG][       Thread-607111][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:09:30,680 [DEBUG][       Thread-607111][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:09:30,692 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:09:30,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:09:30,694 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:09:30,695 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:09:30,700 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:09:30,701 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:09:30,702 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:09:30,702 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:09:30,702 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.506191 -999.00  +13.60  45.52     51   +3.70 1 2 2 1 1   887    0 10.50 21.13 ----- 40.3 45.5 24.5 55.2 16.4 -22.9 15.6 -22.7 15.8 -21.0 16.6 -20.5
2025-07-01 14:09:30,702 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:09:30,702 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:09:30,703 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.506191
2025-07-01 14:09:30,703 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:09:30,703 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:09:30,704 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:09:30,704 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:09:30,704 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:09:30,704 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:09:08', tmtdew=11.51, humidity=45.68, cloud=0.0, wind=30.91, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:08:54.902', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:09:30,705 [DEBUG][       Thread-607111][   transport.py][1871] : EOF in transport thread
2025-07-01 14:09:30,787 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:09:30,799 [DEBUG][       Thread-607114][   transport.py][1871] : starting thread (client mode): 0x81a7250
2025-07-01 14:09:30,799 [DEBUG][       Thread-607114][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:09:30,815 [DEBUG][       Thread-607114][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:09:30,815 [ INFO][       Thread-607114][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:09:30,823 [DEBUG][       Thread-607114][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:09:30,823 [DEBUG][       Thread-607114][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:09:30,823 [DEBUG][       Thread-607114][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:09:30,823 [DEBUG][       Thread-607114][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:09:30,823 [DEBUG][       Thread-607114][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:09:30,823 [DEBUG][       Thread-607114][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:09:30,823 [DEBUG][       Thread-607114][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:09:30,823 [DEBUG][       Thread-607114][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:09:30,823 [DEBUG][       Thread-607114][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:09:30,823 [DEBUG][       Thread-607114][   transport.py][1871] : client lang: <none>
2025-07-01 14:09:30,823 [DEBUG][       Thread-607114][   transport.py][1871] : server lang: <none>
2025-07-01 14:09:30,823 [DEBUG][       Thread-607114][   transport.py][1871] : kex follows: False
2025-07-01 14:09:30,823 [DEBUG][       Thread-607114][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:09:30,823 [DEBUG][       Thread-607114][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:09:30,823 [DEBUG][       Thread-607114][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:09:30,823 [DEBUG][       Thread-607114][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:09:30,824 [DEBUG][       Thread-607114][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:09:30,824 [DEBUG][       Thread-607114][   transport.py][1871] : Compression: none
2025-07-01 14:09:30,824 [DEBUG][       Thread-607114][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:09:30,882 [DEBUG][       Thread-607114][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:09:30,883 [DEBUG][       Thread-607114][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:09:30,883 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:09:30,884 [DEBUG][       Thread-607114][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:09:30,884 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:09:30,938 [DEBUG][       Thread-607114][   transport.py][1871] : userauth is OK
2025-07-01 14:09:30,938 [DEBUG][       Thread-607114][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:09:30,938 [DEBUG][       Thread-607114][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:09:30,939 [DEBUG][       Thread-607114][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:09:30,939 [DEBUG][       Thread-607114][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:09:30,958 [ INFO][       Thread-607114][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:09:30,958 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:09:30,959 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:09:31,830 [DEBUG][Thread-607116 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:09:31,985 [DEBUG][       Thread-607114][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:09:31,985 [DEBUG][       Thread-607114][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:09:32,040 [DEBUG][       Thread-607114][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:09:32,040 [DEBUG][       Thread-607114][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:09:32,049 [DEBUG][       Thread-607114][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:09:32,057 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:09:32,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-07-01 14:09:32,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-07-01 14:09:32,075 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:09:32,075 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:09:32,075 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:09:32,083 [DEBUG][       Thread-607114][   transport.py][1871] : EOF in transport thread
2025-07-01 14:09:34,022 [DEBUG][Thread-607117 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:09:40,850 [DEBUG][Thread-607118 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:09:42,084 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:09:42,084 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:09:42,084 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:09: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-07-01 14:09:42,631 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 9, 8), 11.51, 45.68, 0.0, 30.91, 13.83, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:09:42,631 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:09:08
2025-07-01 14:09:42,722 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:09:42,727 [DEBUG][       Thread-607119][   transport.py][1871] : starting thread (client mode): 0x8171240
2025-07-01 14:09:42,727 [DEBUG][       Thread-607119][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:09:42,747 [DEBUG][       Thread-607119][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:09:42,747 [ INFO][       Thread-607119][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:09:42,750 [DEBUG][       Thread-607119][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:09:42,750 [DEBUG][       Thread-607119][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:09:42,750 [DEBUG][       Thread-607119][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:09:42,750 [DEBUG][       Thread-607119][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:09:42,750 [DEBUG][       Thread-607119][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:09:42,750 [DEBUG][       Thread-607119][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:09:42,750 [DEBUG][       Thread-607119][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:09:42,750 [DEBUG][       Thread-607119][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:09:42,750 [DEBUG][       Thread-607119][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:09:42,750 [DEBUG][       Thread-607119][   transport.py][1871] : client lang: <none>
2025-07-01 14:09:42,750 [DEBUG][       Thread-607119][   transport.py][1871] : server lang: <none>
2025-07-01 14:09:42,750 [DEBUG][       Thread-607119][   transport.py][1871] : kex follows: False
2025-07-01 14:09:42,750 [DEBUG][       Thread-607119][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:09:42,750 [DEBUG][       Thread-607119][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:09:42,750 [DEBUG][       Thread-607119][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:09:42,750 [DEBUG][       Thread-607119][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:09:42,750 [DEBUG][       Thread-607119][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:09:42,750 [DEBUG][       Thread-607119][   transport.py][1871] : Compression: none
2025-07-01 14:09:42,750 [DEBUG][       Thread-607119][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:09:42,766 [DEBUG][       Thread-607119][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:09:42,766 [DEBUG][       Thread-607119][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:09:42,766 [DEBUG][       Thread-607119][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:09:42,766 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:09:42,766 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:09:42,767 [DEBUG][       Thread-607119][   transport.py][1871] : userauth is OK
2025-07-01 14:09:42,779 [ INFO][       Thread-607119][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:09:42,779 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:09:43,402 [DEBUG][       Thread-607119][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:09:43,402 [DEBUG][       Thread-607119][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:09:43,444 [DEBUG][       Thread-607119][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:09:43,444 [DEBUG][       Thread-607119][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:09:43,447 [DEBUG][       Thread-607119][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:09:43,460 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:09:43,460 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:09:43,462 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:09:43,463 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:09:43,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:09:43,466 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:09:43,466 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:09:43,466 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:09:43,466 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.506539 -999.00  +13.70  44.47     51   +3.70 1 2 2 1 1   887    0 10.28 22.49 ----- 41.2 44.5 38.6 50.9 16.4 -22.9 15.7 -23.1 15.8 -21.9 16.6 -20.6
2025-07-01 14:09:43,466 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:09:43,466 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:09:43,466 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.506539
2025-07-01 14:09:43,466 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:09:43,466 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:09:43,466 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:09:43,466 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:09:43,466 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:09:43,467 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:09:08', tmtdew=11.51, humidity=45.68, cloud=0.0, wind=30.91, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:09:24.970', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:09:43,467 [DEBUG][       Thread-607119][   transport.py][1871] : EOF in transport thread
2025-07-01 14:09:43,538 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:09:43,548 [DEBUG][       Thread-607122][   transport.py][1871] : starting thread (client mode): 0x82b2620
2025-07-01 14:09:43,548 [DEBUG][       Thread-607122][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:09:43,562 [DEBUG][       Thread-607122][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:09:43,562 [ INFO][       Thread-607122][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:09:43,570 [DEBUG][       Thread-607122][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:09:43,570 [DEBUG][       Thread-607122][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:09:43,570 [DEBUG][       Thread-607122][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:09:43,570 [DEBUG][       Thread-607122][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:09:43,570 [DEBUG][       Thread-607122][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:09:43,570 [DEBUG][       Thread-607122][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:09:43,570 [DEBUG][       Thread-607122][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:09:43,570 [DEBUG][       Thread-607122][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:09:43,570 [DEBUG][       Thread-607122][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:09:43,570 [DEBUG][       Thread-607122][   transport.py][1871] : client lang: <none>
2025-07-01 14:09:43,570 [DEBUG][       Thread-607122][   transport.py][1871] : server lang: <none>
2025-07-01 14:09:43,570 [DEBUG][       Thread-607122][   transport.py][1871] : kex follows: False
2025-07-01 14:09:43,570 [DEBUG][       Thread-607122][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:09:43,570 [DEBUG][       Thread-607122][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:09:43,570 [DEBUG][       Thread-607122][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:09:43,570 [DEBUG][       Thread-607122][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:09:43,570 [DEBUG][       Thread-607122][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:09:43,570 [DEBUG][       Thread-607122][   transport.py][1871] : Compression: none
2025-07-01 14:09:43,570 [DEBUG][       Thread-607122][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:09:43,628 [DEBUG][       Thread-607122][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:09:43,628 [DEBUG][       Thread-607122][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:09:43,628 [DEBUG][       Thread-607122][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:09:43,628 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:09:43,628 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:09:43,686 [DEBUG][       Thread-607122][   transport.py][1871] : userauth is OK
2025-07-01 14:09:43,686 [DEBUG][       Thread-607122][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:09:43,686 [DEBUG][       Thread-607122][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:09:43,686 [DEBUG][       Thread-607122][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:09:43,686 [DEBUG][       Thread-607122][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:09:43,700 [ INFO][       Thread-607122][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:09:43,700 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:09:43,700 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:09:44,688 [DEBUG][       Thread-607122][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:09:44,688 [DEBUG][       Thread-607122][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:09:44,736 [DEBUG][       Thread-607122][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:09:44,736 [DEBUG][       Thread-607122][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:09:44,745 [DEBUG][       Thread-607122][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:09:44,754 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:09:44,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-07-01 14:09:44,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-07-01 14:09:44,772 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:09:44,772 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:09:44,773 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:09:44,780 [DEBUG][       Thread-607122][   transport.py][1871] : EOF in transport thread
2025-07-01 14:09:49,870 [DEBUG][Thread-607124 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:09:54,782 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:09:54,782 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:09:54,783 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:09:54,786 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:09:55,287 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 9, 40), 11.5, 45.92, 0.0, 40.47, 13.87, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:09:55,287 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:09:40
2025-07-01 14:09:55,373 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:09:55,379 [DEBUG][       Thread-607125][   transport.py][1871] : starting thread (client mode): 0x81a65c0
2025-07-01 14:09:55,379 [DEBUG][       Thread-607125][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:09:55,391 [DEBUG][       Thread-607125][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:09:55,391 [ INFO][       Thread-607125][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:09:55,396 [DEBUG][       Thread-607125][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:09:55,396 [DEBUG][       Thread-607125][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:09:55,396 [DEBUG][       Thread-607125][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:09:55,396 [DEBUG][       Thread-607125][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:09:55,396 [DEBUG][       Thread-607125][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:09:55,396 [DEBUG][       Thread-607125][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:09:55,397 [DEBUG][       Thread-607125][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:09:55,397 [DEBUG][       Thread-607125][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:09:55,397 [DEBUG][       Thread-607125][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:09:55,397 [DEBUG][       Thread-607125][   transport.py][1871] : client lang: <none>
2025-07-01 14:09:55,397 [DEBUG][       Thread-607125][   transport.py][1871] : server lang: <none>
2025-07-01 14:09:55,397 [DEBUG][       Thread-607125][   transport.py][1871] : kex follows: False
2025-07-01 14:09:55,397 [DEBUG][       Thread-607125][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:09:55,397 [DEBUG][       Thread-607125][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:09:55,397 [DEBUG][       Thread-607125][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:09:55,397 [DEBUG][       Thread-607125][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:09:55,397 [DEBUG][       Thread-607125][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:09:55,397 [DEBUG][       Thread-607125][   transport.py][1871] : Compression: none
2025-07-01 14:09:55,397 [DEBUG][       Thread-607125][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:09:55,405 [DEBUG][       Thread-607125][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:09:55,406 [DEBUG][       Thread-607125][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:09:55,406 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:09:55,406 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:09:55,407 [DEBUG][       Thread-607125][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:09:55,407 [DEBUG][       Thread-607125][   transport.py][1871] : userauth is OK
2025-07-01 14:09:55,420 [ INFO][       Thread-607125][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:09:55,421 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:09:56,198 [DEBUG][       Thread-607125][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:09:56,198 [DEBUG][       Thread-607125][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:09:56,241 [DEBUG][       Thread-607125][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:09:56,241 [DEBUG][       Thread-607125][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:09:56,244 [DEBUG][       Thread-607125][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:09:56,255 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:09:56,256 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:09:56,257 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:09:56,259 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:09:56,265 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:09:56,267 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:09:56,267 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:09:56,267 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:09:56,268 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.506539 -999.00  +13.70  44.47     51   +3.70 1 2 2 1 1   887    0 10.28 22.49 ----- 41.2 44.5 38.6 50.9 16.4 -22.9 15.7 -23.1 15.8 -21.9 16.6 -20.6
2025-07-01 14:09:56,268 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:09:56,268 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:09:56,268 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.506539
2025-07-01 14:09:56,268 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:09:56,269 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:09:56,269 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:09:56,269 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:09:56,269 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:09:56,269 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:09:40', tmtdew=11.5, humidity=45.92, cloud=0.0, wind=40.47, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:09:24.970', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:09:56,270 [DEBUG][       Thread-607125][   transport.py][1871] : EOF in transport thread
2025-07-01 14:09:56,353 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:09:56,364 [DEBUG][       Thread-607128][   transport.py][1871] : starting thread (client mode): 0x818f790
2025-07-01 14:09:56,364 [DEBUG][       Thread-607128][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:09:56,380 [DEBUG][       Thread-607128][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:09:56,380 [ INFO][       Thread-607128][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:09:56,387 [DEBUG][       Thread-607128][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:09:56,387 [DEBUG][       Thread-607128][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:09:56,387 [DEBUG][       Thread-607128][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:09:56,387 [DEBUG][       Thread-607128][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:09:56,387 [DEBUG][       Thread-607128][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:09:56,388 [DEBUG][       Thread-607128][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:09:56,388 [DEBUG][       Thread-607128][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:09:56,388 [DEBUG][       Thread-607128][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:09:56,388 [DEBUG][       Thread-607128][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:09:56,388 [DEBUG][       Thread-607128][   transport.py][1871] : client lang: <none>
2025-07-01 14:09:56,388 [DEBUG][       Thread-607128][   transport.py][1871] : server lang: <none>
2025-07-01 14:09:56,388 [DEBUG][       Thread-607128][   transport.py][1871] : kex follows: False
2025-07-01 14:09:56,388 [DEBUG][       Thread-607128][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:09:56,388 [DEBUG][       Thread-607128][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:09:56,388 [DEBUG][       Thread-607128][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:09:56,388 [DEBUG][       Thread-607128][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:09:56,388 [DEBUG][       Thread-607128][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:09:56,388 [DEBUG][       Thread-607128][   transport.py][1871] : Compression: none
2025-07-01 14:09:56,388 [DEBUG][       Thread-607128][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:09:56,446 [DEBUG][       Thread-607128][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:09:56,446 [DEBUG][       Thread-607128][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:09:56,447 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:09:56,447 [DEBUG][       Thread-607128][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:09:56,448 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:09:56,502 [DEBUG][       Thread-607128][   transport.py][1871] : userauth is OK
2025-07-01 14:09:56,503 [DEBUG][       Thread-607128][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:09:56,503 [DEBUG][       Thread-607128][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:09:56,503 [DEBUG][       Thread-607128][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:09:56,503 [DEBUG][       Thread-607128][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:09:56,521 [ INFO][       Thread-607128][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:09:56,521 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:09:56,522 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:09:57,602 [DEBUG][       Thread-607128][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:09:57,602 [DEBUG][       Thread-607128][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:09:57,652 [DEBUG][       Thread-607128][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:09:57,652 [DEBUG][       Thread-607128][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:09:57,670 [DEBUG][       Thread-607128][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:09:57,677 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:09:57,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-07-01 14:09:57,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-07-01 14:09:57,693 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:09:57,693 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:09:57,694 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:09:57,701 [DEBUG][       Thread-607128][   transport.py][1871] : EOF in transport thread
2025-07-01 14:09:58,892 [DEBUG][Thread-607130 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:10:07,700 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:10:07,700 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:10:07,700 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:10:07,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-07-01 14:10:07,925 [DEBUG][Thread-607131 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:10:08,210 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 9, 40), 11.5, 45.92, 0.0, 40.47, 13.87, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:10:08,211 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:09:40
2025-07-01 14:10:08,295 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:10:08,299 [DEBUG][       Thread-607132][   transport.py][1871] : starting thread (client mode): 0x81a7940
2025-07-01 14:10:08,299 [DEBUG][       Thread-607132][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:10:08,318 [DEBUG][       Thread-607132][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:10:08,318 [ INFO][       Thread-607132][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:10:08,321 [DEBUG][       Thread-607132][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:10:08,321 [DEBUG][       Thread-607132][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:10:08,321 [DEBUG][       Thread-607132][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:10:08,321 [DEBUG][       Thread-607132][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:10:08,321 [DEBUG][       Thread-607132][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:10:08,321 [DEBUG][       Thread-607132][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:10:08,321 [DEBUG][       Thread-607132][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:10:08,321 [DEBUG][       Thread-607132][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:10:08,321 [DEBUG][       Thread-607132][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:10:08,321 [DEBUG][       Thread-607132][   transport.py][1871] : client lang: <none>
2025-07-01 14:10:08,321 [DEBUG][       Thread-607132][   transport.py][1871] : server lang: <none>
2025-07-01 14:10:08,321 [DEBUG][       Thread-607132][   transport.py][1871] : kex follows: False
2025-07-01 14:10:08,321 [DEBUG][       Thread-607132][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:10:08,322 [DEBUG][       Thread-607132][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:10:08,322 [DEBUG][       Thread-607132][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:10:08,322 [DEBUG][       Thread-607132][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:10:08,322 [DEBUG][       Thread-607132][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:10:08,322 [DEBUG][       Thread-607132][   transport.py][1871] : Compression: none
2025-07-01 14:10:08,322 [DEBUG][       Thread-607132][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:10:08,338 [DEBUG][       Thread-607132][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:10:08,339 [DEBUG][       Thread-607132][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:10:08,339 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:10:08,340 [DEBUG][       Thread-607132][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:10:08,340 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:10:08,341 [DEBUG][       Thread-607132][   transport.py][1871] : userauth is OK
2025-07-01 14:10:08,366 [ INFO][       Thread-607132][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:10:08,366 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:10:09,071 [DEBUG][       Thread-607132][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:10:09,072 [DEBUG][       Thread-607132][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:10:09,112 [DEBUG][       Thread-607132][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:10:09,113 [DEBUG][       Thread-607132][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:10:09,115 [DEBUG][       Thread-607132][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:10:09,127 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:10:09,127 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:10:09,129 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:10:09,130 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:10:09,135 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:10:09,137 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:10:09,137 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:10:09,138 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:10:09,138 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.506886 -999.00  +13.60  41.34     50   +3.60 1 2 2 1 1   887    0 10.45 26.33 ----- 41.4 41.3 47.6 51.5 16.4 -22.9 15.7 -23.0 15.9 -21.4 16.7 -20.1
2025-07-01 14:10:09,138 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:10:09,138 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:10:09,138 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.506886
2025-07-01 14:10:09,139 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:10:09,139 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:10:09,139 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:10:09,139 [DEBUG][       Thread-607132][   transport.py][1871] : EOF in transport thread
2025-07-01 14:10:09,140 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:10:09,140 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:10:09,140 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:09:40', tmtdew=11.5, humidity=45.92, cloud=0.0, wind=40.47, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:09:54.950', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:10:09,217 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:10:09,226 [DEBUG][       Thread-607135][   transport.py][1871] : starting thread (client mode): 0x75a9480
2025-07-01 14:10:09,226 [DEBUG][       Thread-607135][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:10:09,242 [DEBUG][       Thread-607135][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:10:09,242 [ INFO][       Thread-607135][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:10:09,250 [DEBUG][       Thread-607135][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:10:09,250 [DEBUG][       Thread-607135][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:10:09,250 [DEBUG][       Thread-607135][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:10:09,250 [DEBUG][       Thread-607135][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:10:09,250 [DEBUG][       Thread-607135][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:10:09,250 [DEBUG][       Thread-607135][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:10:09,250 [DEBUG][       Thread-607135][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:10:09,250 [DEBUG][       Thread-607135][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:10:09,250 [DEBUG][       Thread-607135][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:10:09,250 [DEBUG][       Thread-607135][   transport.py][1871] : client lang: <none>
2025-07-01 14:10:09,250 [DEBUG][       Thread-607135][   transport.py][1871] : server lang: <none>
2025-07-01 14:10:09,250 [DEBUG][       Thread-607135][   transport.py][1871] : kex follows: False
2025-07-01 14:10:09,250 [DEBUG][       Thread-607135][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:10:09,250 [DEBUG][       Thread-607135][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:10:09,250 [DEBUG][       Thread-607135][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:10:09,250 [DEBUG][       Thread-607135][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:10:09,250 [DEBUG][       Thread-607135][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:10:09,251 [DEBUG][       Thread-607135][   transport.py][1871] : Compression: none
2025-07-01 14:10:09,251 [DEBUG][       Thread-607135][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:10:09,312 [DEBUG][       Thread-607135][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:10:09,312 [DEBUG][       Thread-607135][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:10:09,313 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:10:09,313 [DEBUG][       Thread-607135][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:10:09,314 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:10:09,370 [DEBUG][       Thread-607135][   transport.py][1871] : userauth is OK
2025-07-01 14:10:09,370 [DEBUG][       Thread-607135][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:10:09,370 [DEBUG][       Thread-607135][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:10:09,370 [DEBUG][       Thread-607135][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:10:09,370 [DEBUG][       Thread-607135][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:10:09,395 [ INFO][       Thread-607135][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:10:09,395 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:10:09,395 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:10:10,513 [DEBUG][       Thread-607135][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:10:10,513 [DEBUG][       Thread-607135][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:10:10,564 [DEBUG][       Thread-607135][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:10:10,564 [DEBUG][       Thread-607135][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:10:10,573 [DEBUG][       Thread-607135][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:10:10,581 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:10:10,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-07-01 14:10:10,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-07-01 14:10:10,598 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:10:10,598 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:10:10,598 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:10:10,606 [DEBUG][       Thread-607135][   transport.py][1871] : EOF in transport thread
2025-07-01 14:10:16,944 [DEBUG][Thread-607137 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:10:20,608 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:10:20,608 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:10:20,609 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:10:20,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-07-01 14:10:21,131 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 10, 12), 11.52, 45.97, 0.0, 33.43, 13.84, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:10:21,131 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:10:12
2025-07-01 14:10:21,219 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:10:21,225 [DEBUG][       Thread-607138][   transport.py][1871] : starting thread (client mode): 0x75aaf20
2025-07-01 14:10:21,225 [DEBUG][       Thread-607138][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:10:21,245 [DEBUG][       Thread-607138][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:10:21,245 [ INFO][       Thread-607138][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:10:21,248 [DEBUG][       Thread-607138][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:10:21,248 [DEBUG][       Thread-607138][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:10:21,248 [DEBUG][       Thread-607138][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:10:21,248 [DEBUG][       Thread-607138][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:10:21,248 [DEBUG][       Thread-607138][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:10:21,248 [DEBUG][       Thread-607138][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:10:21,248 [DEBUG][       Thread-607138][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:10:21,248 [DEBUG][       Thread-607138][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:10:21,248 [DEBUG][       Thread-607138][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:10:21,248 [DEBUG][       Thread-607138][   transport.py][1871] : client lang: <none>
2025-07-01 14:10:21,248 [DEBUG][       Thread-607138][   transport.py][1871] : server lang: <none>
2025-07-01 14:10:21,248 [DEBUG][       Thread-607138][   transport.py][1871] : kex follows: False
2025-07-01 14:10:21,248 [DEBUG][       Thread-607138][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:10:21,248 [DEBUG][       Thread-607138][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:10:21,248 [DEBUG][       Thread-607138][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:10:21,248 [DEBUG][       Thread-607138][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:10:21,248 [DEBUG][       Thread-607138][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:10:21,248 [DEBUG][       Thread-607138][   transport.py][1871] : Compression: none
2025-07-01 14:10:21,248 [DEBUG][       Thread-607138][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:10:21,262 [DEBUG][       Thread-607138][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:10:21,262 [DEBUG][       Thread-607138][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:10:21,262 [DEBUG][       Thread-607138][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:10:21,262 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:10:21,262 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:10:21,263 [DEBUG][       Thread-607138][   transport.py][1871] : userauth is OK
2025-07-01 14:10:21,275 [ INFO][       Thread-607138][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:10:21,275 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:10:21,936 [DEBUG][       Thread-607138][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:10:21,936 [DEBUG][       Thread-607138][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:10:21,980 [DEBUG][       Thread-607138][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:10:21,980 [DEBUG][       Thread-607138][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:10:21,983 [DEBUG][       Thread-607138][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:10:21,994 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:10:21,994 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:10:21,995 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:10:21,996 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:10:21,999 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:10:22,000 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:10:22,000 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:10:22,000 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:10:22,000 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.506886 -999.00  +13.60  41.34     50   +3.60 1 2 2 1 1   887    0 10.45 26.33 ----- 41.4 41.3 47.6 51.5 16.4 -22.9 15.7 -23.0 15.9 -21.4 16.7 -20.1
2025-07-01 14:10:22,000 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:10:22,000 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:10:22,000 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.506886
2025-07-01 14:10:22,000 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:10:22,000 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:10:22,000 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:10:22,000 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:10:22,000 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:10:22,000 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:10:12', tmtdew=11.52, humidity=45.97, cloud=0.0, wind=33.43, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:09:54.950', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:10:22,001 [DEBUG][       Thread-607138][   transport.py][1871] : EOF in transport thread
2025-07-01 14:10:22,075 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:10:22,084 [DEBUG][       Thread-607141][   transport.py][1871] : starting thread (client mode): 0x827d9f0
2025-07-01 14:10:22,084 [DEBUG][       Thread-607141][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:10:22,099 [DEBUG][       Thread-607141][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:10:22,099 [ INFO][       Thread-607141][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:10:22,106 [DEBUG][       Thread-607141][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:10:22,106 [DEBUG][       Thread-607141][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:10:22,106 [DEBUG][       Thread-607141][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:10:22,106 [DEBUG][       Thread-607141][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:10:22,106 [DEBUG][       Thread-607141][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:10:22,106 [DEBUG][       Thread-607141][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:10:22,106 [DEBUG][       Thread-607141][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:10:22,106 [DEBUG][       Thread-607141][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:10:22,106 [DEBUG][       Thread-607141][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:10:22,106 [DEBUG][       Thread-607141][   transport.py][1871] : client lang: <none>
2025-07-01 14:10:22,106 [DEBUG][       Thread-607141][   transport.py][1871] : server lang: <none>
2025-07-01 14:10:22,106 [DEBUG][       Thread-607141][   transport.py][1871] : kex follows: False
2025-07-01 14:10:22,106 [DEBUG][       Thread-607141][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:10:22,106 [DEBUG][       Thread-607141][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:10:22,106 [DEBUG][       Thread-607141][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:10:22,106 [DEBUG][       Thread-607141][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:10:22,106 [DEBUG][       Thread-607141][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:10:22,106 [DEBUG][       Thread-607141][   transport.py][1871] : Compression: none
2025-07-01 14:10:22,106 [DEBUG][       Thread-607141][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:10:22,164 [DEBUG][       Thread-607141][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:10:22,165 [DEBUG][       Thread-607141][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:10:22,165 [DEBUG][       Thread-607141][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:10:22,165 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:10:22,165 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:10:22,221 [DEBUG][       Thread-607141][   transport.py][1871] : userauth is OK
2025-07-01 14:10:22,221 [DEBUG][       Thread-607141][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:10:22,221 [DEBUG][       Thread-607141][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:10:22,222 [DEBUG][       Thread-607141][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:10:22,222 [DEBUG][       Thread-607141][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:10:22,235 [ INFO][       Thread-607141][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:10:22,235 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:10:22,235 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:10:23,228 [DEBUG][       Thread-607141][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:10:23,228 [DEBUG][       Thread-607141][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:10:23,276 [DEBUG][       Thread-607141][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:10:23,276 [DEBUG][       Thread-607141][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:10:23,285 [DEBUG][       Thread-607141][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:10:23,294 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:10:23,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-07-01 14:10:23,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-07-01 14:10:23,313 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:10:23,313 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:10:23,313 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:10:23,324 [DEBUG][       Thread-607141][   transport.py][1871] : EOF in transport thread
2025-07-01 14:10:25,966 [DEBUG][Thread-607143 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:10:30,326 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:10:30,327 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:10:33,324 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:10:33,324 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:10:33,324 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:10:33,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-07-01 14:10:33,829 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 10, 12), 11.52, 45.97, 0.0, 33.43, 13.84, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:10:33,829 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:10:12
2025-07-01 14:10:33,913 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:10:33,920 [DEBUG][       Thread-607144][   transport.py][1871] : starting thread (client mode): 0x81a7c10
2025-07-01 14:10:33,920 [DEBUG][       Thread-607144][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:10:33,940 [DEBUG][       Thread-607144][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:10:33,940 [ INFO][       Thread-607144][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:10:33,943 [DEBUG][       Thread-607144][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:10:33,943 [DEBUG][       Thread-607144][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:10:33,943 [DEBUG][       Thread-607144][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:10:33,943 [DEBUG][       Thread-607144][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:10:33,943 [DEBUG][       Thread-607144][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:10:33,943 [DEBUG][       Thread-607144][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:10:33,944 [DEBUG][       Thread-607144][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:10:33,944 [DEBUG][       Thread-607144][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:10:33,944 [DEBUG][       Thread-607144][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:10:33,944 [DEBUG][       Thread-607144][   transport.py][1871] : client lang: <none>
2025-07-01 14:10:33,944 [DEBUG][       Thread-607144][   transport.py][1871] : server lang: <none>
2025-07-01 14:10:33,944 [DEBUG][       Thread-607144][   transport.py][1871] : kex follows: False
2025-07-01 14:10:33,944 [DEBUG][       Thread-607144][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:10:33,944 [DEBUG][       Thread-607144][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:10:33,944 [DEBUG][       Thread-607144][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:10:33,944 [DEBUG][       Thread-607144][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:10:33,944 [DEBUG][       Thread-607144][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:10:33,944 [DEBUG][       Thread-607144][   transport.py][1871] : Compression: none
2025-07-01 14:10:33,944 [DEBUG][       Thread-607144][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:10:33,953 [DEBUG][       Thread-607144][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:10:33,953 [DEBUG][       Thread-607144][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:10:33,953 [DEBUG][       Thread-607144][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:10:33,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:10:33,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:10:33,955 [DEBUG][       Thread-607144][   transport.py][1871] : userauth is OK
2025-07-01 14:10:33,980 [ INFO][       Thread-607144][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:10:33,980 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:10:34,070 [DEBUG][Thread-607146 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:10:34,624 [DEBUG][       Thread-607144][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:10:34,625 [DEBUG][       Thread-607144][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:10:34,669 [DEBUG][       Thread-607144][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:10:34,669 [DEBUG][       Thread-607144][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:10:34,673 [DEBUG][       Thread-607144][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:10:34,685 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:10:34,685 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:10:34,687 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:10:34,689 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:10:34,693 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:10:34,695 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:10:34,695 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:10:34,696 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:10:34,696 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.506886 -999.00  +13.60  41.34     50   +3.60 1 2 2 1 1   887    0 10.45 26.33 ----- 41.4 41.3 47.6 51.5 16.4 -22.9 15.7 -23.0 15.9 -21.4 16.7 -20.1
2025-07-01 14:10:34,696 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:10:34,696 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:10:34,696 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.506886
2025-07-01 14:10:34,697 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:10:34,698 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:10:34,698 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:10:34,698 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:10:34,698 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:10:34,698 [DEBUG][       Thread-607144][   transport.py][1871] : EOF in transport thread
2025-07-01 14:10:34,698 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:10:12', tmtdew=11.52, humidity=45.97, cloud=0.0, wind=33.43, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:09:54.950', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:10:34,783 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:10:34,795 [DEBUG][       Thread-607148][   transport.py][1871] : starting thread (client mode): 0x81e79a0
2025-07-01 14:10:34,795 [DEBUG][       Thread-607148][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:10:34,810 [DEBUG][       Thread-607148][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:10:34,810 [ INFO][       Thread-607148][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:10:34,817 [DEBUG][       Thread-607148][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:10:34,818 [DEBUG][       Thread-607148][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:10:34,818 [DEBUG][       Thread-607148][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:10:34,818 [DEBUG][       Thread-607148][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:10:34,818 [DEBUG][       Thread-607148][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:10:34,818 [DEBUG][       Thread-607148][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:10:34,818 [DEBUG][       Thread-607148][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:10:34,818 [DEBUG][       Thread-607148][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:10:34,818 [DEBUG][       Thread-607148][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:10:34,818 [DEBUG][       Thread-607148][   transport.py][1871] : client lang: <none>
2025-07-01 14:10:34,818 [DEBUG][       Thread-607148][   transport.py][1871] : server lang: <none>
2025-07-01 14:10:34,818 [DEBUG][       Thread-607148][   transport.py][1871] : kex follows: False
2025-07-01 14:10:34,818 [DEBUG][       Thread-607148][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:10:34,818 [DEBUG][       Thread-607148][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:10:34,818 [DEBUG][       Thread-607148][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:10:34,818 [DEBUG][       Thread-607148][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:10:34,818 [DEBUG][       Thread-607148][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:10:34,818 [DEBUG][       Thread-607148][   transport.py][1871] : Compression: none
2025-07-01 14:10:34,818 [DEBUG][       Thread-607148][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:10:34,874 [DEBUG][       Thread-607148][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:10:34,875 [DEBUG][       Thread-607148][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:10:34,876 [DEBUG][       Thread-607148][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:10:34,876 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:10:34,877 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:10:34,930 [DEBUG][       Thread-607148][   transport.py][1871] : userauth is OK
2025-07-01 14:10:34,930 [DEBUG][       Thread-607148][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:10:34,930 [DEBUG][       Thread-607148][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:10:34,930 [DEBUG][       Thread-607148][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:10:34,930 [DEBUG][       Thread-607148][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:10:34,950 [ INFO][       Thread-607148][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:10:34,950 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:10:34,950 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:10:35,001 [DEBUG][Thread-607150 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:10:35,960 [DEBUG][       Thread-607148][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:10:35,961 [DEBUG][       Thread-607148][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:10:36,011 [DEBUG][       Thread-607148][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:10:36,012 [DEBUG][       Thread-607148][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:10:36,021 [DEBUG][       Thread-607148][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:10:36,030 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:10:36,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')
2025-07-01 14:10:36,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') -> 00000000
2025-07-01 14:10:36,047 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:10:36,048 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:10:36,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:10:36,056 [DEBUG][       Thread-607148][   transport.py][1871] : EOF in transport thread
2025-07-01 14:10:44,023 [DEBUG][Thread-607151 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:10:46,056 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:10:46,056 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:10:46,056 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:10:46,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-07-01 14:10:46,570 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 10, 12), 11.52, 45.97, 0.0, 33.43, 13.84, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:10:46,570 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:10:12
2025-07-01 14:10:46,656 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:10:46,660 [DEBUG][       Thread-607152][   transport.py][1871] : starting thread (client mode): 0x81d9480
2025-07-01 14:10:46,660 [DEBUG][       Thread-607152][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:10:46,682 [DEBUG][       Thread-607152][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:10:46,682 [ INFO][       Thread-607152][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:10:46,686 [DEBUG][       Thread-607152][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:10:46,686 [DEBUG][       Thread-607152][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:10:46,686 [DEBUG][       Thread-607152][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:10:46,686 [DEBUG][       Thread-607152][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:10:46,686 [DEBUG][       Thread-607152][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:10:46,686 [DEBUG][       Thread-607152][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:10:46,686 [DEBUG][       Thread-607152][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:10:46,686 [DEBUG][       Thread-607152][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:10:46,686 [DEBUG][       Thread-607152][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:10:46,686 [DEBUG][       Thread-607152][   transport.py][1871] : client lang: <none>
2025-07-01 14:10:46,686 [DEBUG][       Thread-607152][   transport.py][1871] : server lang: <none>
2025-07-01 14:10:46,686 [DEBUG][       Thread-607152][   transport.py][1871] : kex follows: False
2025-07-01 14:10:46,686 [DEBUG][       Thread-607152][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:10:46,686 [DEBUG][       Thread-607152][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:10:46,687 [DEBUG][       Thread-607152][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:10:46,687 [DEBUG][       Thread-607152][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:10:46,687 [DEBUG][       Thread-607152][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:10:46,687 [DEBUG][       Thread-607152][   transport.py][1871] : Compression: none
2025-07-01 14:10:46,687 [DEBUG][       Thread-607152][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:10:46,703 [DEBUG][       Thread-607152][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:10:46,703 [DEBUG][       Thread-607152][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:10:46,704 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:10:46,704 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:10:46,704 [DEBUG][       Thread-607152][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:10:46,705 [DEBUG][       Thread-607152][   transport.py][1871] : userauth is OK
2025-07-01 14:10:46,730 [ INFO][       Thread-607152][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:10:46,731 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:10:47,394 [DEBUG][       Thread-607152][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:10:47,394 [DEBUG][       Thread-607152][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:10:47,437 [DEBUG][       Thread-607152][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:10:47,437 [DEBUG][       Thread-607152][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:10:47,441 [DEBUG][       Thread-607152][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:10:47,454 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:10:47,454 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:10:47,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:10:47,458 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:10:47,460 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:10:47,461 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:10:47,461 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:10:47,461 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:10:47,461 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.507233 -999.00  +13.70  35.88     51   +3.90 1 2 2 1 1   887    0 10.23 24.17 ----- 41.8 35.9 28.9 48.3 16.5 -22.4 15.7 -22.4 15.9 -20.6 16.7 -20.0
2025-07-01 14:10:47,461 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:10:47,461 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:10:47,461 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.507233
2025-07-01 14:10:47,462 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:10:47,462 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:10:47,462 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:10:47,462 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:10:47,462 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:10:47,462 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:10:12', tmtdew=11.52, humidity=45.97, cloud=0.0, wind=33.43, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:10:24.931', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:10:47,463 [DEBUG][       Thread-607152][   transport.py][1871] : EOF in transport thread
2025-07-01 14:10:47,534 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:10:47,543 [DEBUG][       Thread-607155][   transport.py][1871] : starting thread (client mode): 0x81a7580
2025-07-01 14:10:47,543 [DEBUG][       Thread-607155][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:10:47,558 [DEBUG][       Thread-607155][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:10:47,558 [ INFO][       Thread-607155][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:10:47,566 [DEBUG][       Thread-607155][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:10:47,566 [DEBUG][       Thread-607155][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:10:47,566 [DEBUG][       Thread-607155][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:10:47,566 [DEBUG][       Thread-607155][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:10:47,566 [DEBUG][       Thread-607155][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:10:47,566 [DEBUG][       Thread-607155][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:10:47,566 [DEBUG][       Thread-607155][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:10:47,566 [DEBUG][       Thread-607155][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:10:47,566 [DEBUG][       Thread-607155][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:10:47,566 [DEBUG][       Thread-607155][   transport.py][1871] : client lang: <none>
2025-07-01 14:10:47,566 [DEBUG][       Thread-607155][   transport.py][1871] : server lang: <none>
2025-07-01 14:10:47,566 [DEBUG][       Thread-607155][   transport.py][1871] : kex follows: False
2025-07-01 14:10:47,566 [DEBUG][       Thread-607155][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:10:47,566 [DEBUG][       Thread-607155][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:10:47,566 [DEBUG][       Thread-607155][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:10:47,566 [DEBUG][       Thread-607155][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:10:47,566 [DEBUG][       Thread-607155][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:10:47,566 [DEBUG][       Thread-607155][   transport.py][1871] : Compression: none
2025-07-01 14:10:47,566 [DEBUG][       Thread-607155][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:10:47,625 [DEBUG][       Thread-607155][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:10:47,626 [DEBUG][       Thread-607155][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:10:47,626 [DEBUG][       Thread-607155][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:10:47,627 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:10:47,627 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:10:47,686 [DEBUG][       Thread-607155][   transport.py][1871] : userauth is OK
2025-07-01 14:10:47,686 [DEBUG][       Thread-607155][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:10:47,687 [DEBUG][       Thread-607155][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:10:47,687 [DEBUG][       Thread-607155][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:10:47,687 [DEBUG][       Thread-607155][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:10:47,706 [ INFO][       Thread-607155][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:10:47,706 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:10:47,707 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:10:48,754 [DEBUG][       Thread-607155][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:10:48,754 [DEBUG][       Thread-607155][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:10:48,804 [DEBUG][       Thread-607155][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:10:48,805 [DEBUG][       Thread-607155][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:10:48,814 [DEBUG][       Thread-607155][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:10:48,825 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:10:48,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-07-01 14:10:48,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-07-01 14:10:48,844 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:10:48,844 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:10:48,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:10:48,853 [DEBUG][       Thread-607155][   transport.py][1871] : EOF in transport thread
2025-07-01 14:10:53,042 [DEBUG][Thread-607157 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:10:58,855 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:10:58,855 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:10:58,855 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:10:58,856 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:10:59,380 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 10, 44), 11.47, 46.14, 0.0, 33.59, 13.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:10:59,380 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:10:44
2025-07-01 14:10:59,472 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:10:59,477 [DEBUG][       Thread-607158][   transport.py][1871] : starting thread (client mode): 0x81e6f80
2025-07-01 14:10:59,478 [DEBUG][       Thread-607158][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:10:59,490 [DEBUG][       Thread-607158][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:10:59,490 [ INFO][       Thread-607158][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:10:59,493 [DEBUG][       Thread-607158][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:10:59,493 [DEBUG][       Thread-607158][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:10:59,493 [DEBUG][       Thread-607158][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:10:59,493 [DEBUG][       Thread-607158][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:10:59,493 [DEBUG][       Thread-607158][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:10:59,493 [DEBUG][       Thread-607158][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:10:59,493 [DEBUG][       Thread-607158][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:10:59,493 [DEBUG][       Thread-607158][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:10:59,493 [DEBUG][       Thread-607158][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:10:59,493 [DEBUG][       Thread-607158][   transport.py][1871] : client lang: <none>
2025-07-01 14:10:59,493 [DEBUG][       Thread-607158][   transport.py][1871] : server lang: <none>
2025-07-01 14:10:59,493 [DEBUG][       Thread-607158][   transport.py][1871] : kex follows: False
2025-07-01 14:10:59,493 [DEBUG][       Thread-607158][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:10:59,493 [DEBUG][       Thread-607158][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:10:59,493 [DEBUG][       Thread-607158][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:10:59,493 [DEBUG][       Thread-607158][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:10:59,493 [DEBUG][       Thread-607158][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:10:59,493 [DEBUG][       Thread-607158][   transport.py][1871] : Compression: none
2025-07-01 14:10:59,493 [DEBUG][       Thread-607158][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:10:59,510 [DEBUG][       Thread-607158][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:10:59,510 [DEBUG][       Thread-607158][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:10:59,510 [DEBUG][       Thread-607158][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:10:59,510 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:10:59,510 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:10:59,510 [DEBUG][       Thread-607158][   transport.py][1871] : userauth is OK
2025-07-01 14:10:59,523 [ INFO][       Thread-607158][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:10:59,523 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:11:00,195 [DEBUG][       Thread-607158][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:11:00,195 [DEBUG][       Thread-607158][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:11:00,236 [DEBUG][       Thread-607158][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:11:00,236 [DEBUG][       Thread-607158][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:11:00,239 [DEBUG][       Thread-607158][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:11:00,250 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:11:00,250 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:11:00,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:11:00,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:11:00,254 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:11:00,255 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:11:00,255 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:11:00,255 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:11:00,255 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.507233 -999.00  +13.70  35.88     51   +3.90 1 2 2 1 1   887    0 10.23 24.17 ----- 41.8 35.9 28.9 48.3 16.5 -22.4 15.7 -22.4 15.9 -20.6 16.7 -20.0
2025-07-01 14:11:00,255 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:11:00,255 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:11:00,255 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.507233
2025-07-01 14:11:00,255 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:11:00,255 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:11:00,255 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:11:00,255 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:11:00,255 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:11:00,255 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:10:44', tmtdew=11.47, humidity=46.14, cloud=0.0, wind=33.59, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:10:24.931', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:11:00,256 [DEBUG][       Thread-607158][   transport.py][1871] : EOF in transport thread
2025-07-01 14:11:00,330 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:11:00,342 [DEBUG][       Thread-607161][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 14:11:00,342 [DEBUG][       Thread-607161][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:11:00,360 [DEBUG][       Thread-607161][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:11:00,360 [ INFO][       Thread-607161][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:11:00,368 [DEBUG][       Thread-607161][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:11:00,368 [DEBUG][       Thread-607161][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:11:00,368 [DEBUG][       Thread-607161][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:11:00,368 [DEBUG][       Thread-607161][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:11:00,368 [DEBUG][       Thread-607161][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:11:00,368 [DEBUG][       Thread-607161][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:11:00,368 [DEBUG][       Thread-607161][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:11:00,368 [DEBUG][       Thread-607161][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:11:00,368 [DEBUG][       Thread-607161][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:11:00,368 [DEBUG][       Thread-607161][   transport.py][1871] : client lang: <none>
2025-07-01 14:11:00,368 [DEBUG][       Thread-607161][   transport.py][1871] : server lang: <none>
2025-07-01 14:11:00,368 [DEBUG][       Thread-607161][   transport.py][1871] : kex follows: False
2025-07-01 14:11:00,368 [DEBUG][       Thread-607161][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:11:00,368 [DEBUG][       Thread-607161][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:11:00,368 [DEBUG][       Thread-607161][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:11:00,368 [DEBUG][       Thread-607161][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:11:00,368 [DEBUG][       Thread-607161][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:11:00,368 [DEBUG][       Thread-607161][   transport.py][1871] : Compression: none
2025-07-01 14:11:00,368 [DEBUG][       Thread-607161][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:11:00,424 [DEBUG][       Thread-607161][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:11:00,424 [DEBUG][       Thread-607161][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:11:00,425 [DEBUG][       Thread-607161][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:11:00,425 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:11:00,425 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:11:00,482 [DEBUG][       Thread-607161][   transport.py][1871] : userauth is OK
2025-07-01 14:11:00,482 [DEBUG][       Thread-607161][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:11:00,482 [DEBUG][       Thread-607161][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:11:00,482 [DEBUG][       Thread-607161][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:11:00,482 [DEBUG][       Thread-607161][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:11:00,496 [ INFO][       Thread-607161][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:11:00,496 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:11:00,496 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:11:01,596 [DEBUG][       Thread-607161][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:11:01,596 [DEBUG][       Thread-607161][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:11:01,647 [DEBUG][       Thread-607161][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:11:01,647 [DEBUG][       Thread-607161][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:11:01,655 [DEBUG][       Thread-607161][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:11:01,663 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:11:01,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-07-01 14:11:01,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') -> 00000000
2025-07-01 14:11:01,679 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:11:01,679 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:11:01,679 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:11:01,686 [DEBUG][       Thread-607161][   transport.py][1871] : EOF in transport thread
2025-07-01 14:11:02,059 [DEBUG][Thread-607163 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:11:11,091 [DEBUG][Thread-607164 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:11:11,689 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:11:11,689 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:11:11,689 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:11:11,692 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:11:12,197 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 10, 44), 11.47, 46.14, 0.0, 33.59, 13.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:11:12,197 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:10:44
2025-07-01 14:11:12,284 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:11:12,288 [DEBUG][       Thread-607165][   transport.py][1871] : starting thread (client mode): 0x81a46a0
2025-07-01 14:11:12,288 [DEBUG][       Thread-607165][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:11:12,307 [DEBUG][       Thread-607165][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:11:12,308 [ INFO][       Thread-607165][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:11:12,311 [DEBUG][       Thread-607165][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:11:12,311 [DEBUG][       Thread-607165][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:11:12,311 [DEBUG][       Thread-607165][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:11:12,311 [DEBUG][       Thread-607165][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:11:12,311 [DEBUG][       Thread-607165][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:11:12,311 [DEBUG][       Thread-607165][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:11:12,311 [DEBUG][       Thread-607165][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:11:12,311 [DEBUG][       Thread-607165][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:11:12,311 [DEBUG][       Thread-607165][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:11:12,311 [DEBUG][       Thread-607165][   transport.py][1871] : client lang: <none>
2025-07-01 14:11:12,311 [DEBUG][       Thread-607165][   transport.py][1871] : server lang: <none>
2025-07-01 14:11:12,311 [DEBUG][       Thread-607165][   transport.py][1871] : kex follows: False
2025-07-01 14:11:12,311 [DEBUG][       Thread-607165][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:11:12,311 [DEBUG][       Thread-607165][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:11:12,311 [DEBUG][       Thread-607165][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:11:12,311 [DEBUG][       Thread-607165][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:11:12,311 [DEBUG][       Thread-607165][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:11:12,311 [DEBUG][       Thread-607165][   transport.py][1871] : Compression: none
2025-07-01 14:11:12,311 [DEBUG][       Thread-607165][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:11:12,328 [DEBUG][       Thread-607165][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:11:12,328 [DEBUG][       Thread-607165][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:11:12,329 [DEBUG][       Thread-607165][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:11:12,329 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:11:12,329 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:11:12,330 [DEBUG][       Thread-607165][   transport.py][1871] : userauth is OK
2025-07-01 14:11:12,343 [ INFO][       Thread-607165][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:11:12,343 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:11:12,948 [DEBUG][       Thread-607165][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:11:12,948 [DEBUG][       Thread-607165][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:11:12,989 [DEBUG][       Thread-607165][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:11:12,989 [DEBUG][       Thread-607165][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:11:12,993 [DEBUG][       Thread-607165][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:11:13,004 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:11:13,005 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:11:13,007 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:11:13,008 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:11:13,014 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:11:13,016 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:11:13,016 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:11:13,017 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:11:13,017 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.507580 -999.00  +13.80  37.55     51   +3.80 1 2 2 1 1   887    0 10.30 23.39 ----- 34.8 37.5 31.4 48.9 16.5 -23.0 15.7 -22.8 15.9 -20.6 16.6 -20.6
2025-07-01 14:11:13,017 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:11:13,017 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:11:13,017 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.507580
2025-07-01 14:11:13,018 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:11:13,018 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:11:13,019 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:11:13,019 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:11:13,019 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:11:13,019 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:10:44', tmtdew=11.47, humidity=46.14, cloud=0.0, wind=33.59, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:10:54.912', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:11:13,019 [DEBUG][       Thread-607165][   transport.py][1871] : EOF in transport thread
2025-07-01 14:11:13,102 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:11:13,112 [DEBUG][       Thread-607168][   transport.py][1871] : starting thread (client mode): 0x8106200
2025-07-01 14:11:13,112 [DEBUG][       Thread-607168][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:11:13,127 [DEBUG][       Thread-607168][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:11:13,127 [ INFO][       Thread-607168][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:11:13,141 [DEBUG][       Thread-607168][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:11:13,141 [DEBUG][       Thread-607168][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:11:13,141 [DEBUG][       Thread-607168][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:11:13,141 [DEBUG][       Thread-607168][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:11:13,141 [DEBUG][       Thread-607168][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:11:13,141 [DEBUG][       Thread-607168][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:11:13,141 [DEBUG][       Thread-607168][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:11:13,141 [DEBUG][       Thread-607168][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:11:13,141 [DEBUG][       Thread-607168][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:11:13,141 [DEBUG][       Thread-607168][   transport.py][1871] : client lang: <none>
2025-07-01 14:11:13,142 [DEBUG][       Thread-607168][   transport.py][1871] : server lang: <none>
2025-07-01 14:11:13,142 [DEBUG][       Thread-607168][   transport.py][1871] : kex follows: False
2025-07-01 14:11:13,142 [DEBUG][       Thread-607168][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:11:13,142 [DEBUG][       Thread-607168][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:11:13,142 [DEBUG][       Thread-607168][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:11:13,142 [DEBUG][       Thread-607168][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:11:13,142 [DEBUG][       Thread-607168][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:11:13,142 [DEBUG][       Thread-607168][   transport.py][1871] : Compression: none
2025-07-01 14:11:13,142 [DEBUG][       Thread-607168][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:11:13,198 [DEBUG][       Thread-607168][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:11:13,199 [DEBUG][       Thread-607168][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:11:13,199 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:11:13,200 [DEBUG][       Thread-607168][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:11:13,201 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:11:13,254 [DEBUG][       Thread-607168][   transport.py][1871] : userauth is OK
2025-07-01 14:11:13,255 [DEBUG][       Thread-607168][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:11:13,255 [DEBUG][       Thread-607168][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:11:13,255 [DEBUG][       Thread-607168][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:11:13,255 [DEBUG][       Thread-607168][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:11:13,273 [ INFO][       Thread-607168][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:11:13,274 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:11:13,274 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:11:14,293 [DEBUG][       Thread-607168][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:11:14,294 [DEBUG][       Thread-607168][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:11:14,344 [DEBUG][       Thread-607168][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:11:14,344 [DEBUG][       Thread-607168][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:11:14,353 [DEBUG][       Thread-607168][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:11:14,363 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:11:14,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-07-01 14:11:14,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-07-01 14:11:14,382 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:11:14,382 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:11:14,383 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:11:14,390 [DEBUG][       Thread-607168][   transport.py][1871] : EOF in transport thread
2025-07-01 14:11:20,112 [DEBUG][Thread-607170 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:11:24,393 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:11:24,394 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:11:24,394 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:11:24,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-07-01 14:11:24,904 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 11, 15), 11.53, 45.64, 0.0, 32.98, 13.97, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:11:24,904 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:11:15
2025-07-01 14:11:24,991 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:11:24,997 [DEBUG][       Thread-607171][   transport.py][1871] : starting thread (client mode): 0x81a63b0
2025-07-01 14:11:24,997 [DEBUG][       Thread-607171][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:11:25,018 [DEBUG][       Thread-607171][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:11:25,018 [ INFO][       Thread-607171][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:11:25,021 [DEBUG][       Thread-607171][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:11:25,021 [DEBUG][       Thread-607171][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:11:25,021 [DEBUG][       Thread-607171][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:11:25,021 [DEBUG][       Thread-607171][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:11:25,021 [DEBUG][       Thread-607171][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:11:25,021 [DEBUG][       Thread-607171][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:11:25,021 [DEBUG][       Thread-607171][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:11:25,021 [DEBUG][       Thread-607171][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:11:25,021 [DEBUG][       Thread-607171][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:11:25,021 [DEBUG][       Thread-607171][   transport.py][1871] : client lang: <none>
2025-07-01 14:11:25,021 [DEBUG][       Thread-607171][   transport.py][1871] : server lang: <none>
2025-07-01 14:11:25,021 [DEBUG][       Thread-607171][   transport.py][1871] : kex follows: False
2025-07-01 14:11:25,021 [DEBUG][       Thread-607171][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:11:25,021 [DEBUG][       Thread-607171][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:11:25,022 [DEBUG][       Thread-607171][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:11:25,022 [DEBUG][       Thread-607171][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:11:25,022 [DEBUG][       Thread-607171][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:11:25,022 [DEBUG][       Thread-607171][   transport.py][1871] : Compression: none
2025-07-01 14:11:25,022 [DEBUG][       Thread-607171][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:11:25,030 [DEBUG][       Thread-607171][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:11:25,030 [DEBUG][       Thread-607171][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:11:25,031 [DEBUG][       Thread-607171][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:11:25,031 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:11:25,031 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:11:25,032 [DEBUG][       Thread-607171][   transport.py][1871] : userauth is OK
2025-07-01 14:11:25,045 [ INFO][       Thread-607171][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:11:25,045 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:11:25,675 [DEBUG][       Thread-607171][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:11:25,675 [DEBUG][       Thread-607171][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:11:25,717 [DEBUG][       Thread-607171][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:11:25,717 [DEBUG][       Thread-607171][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:11:25,721 [DEBUG][       Thread-607171][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:11:25,734 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:11:25,734 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:11:25,736 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:11:25,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:11:25,743 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:11:25,745 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:11:25,745 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:11:25,746 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:11:25,746 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.507580 -999.00  +13.80  37.55     51   +3.80 1 2 2 1 1   887    0 10.30 23.39 ----- 34.8 37.5 31.4 48.9 16.5 -23.0 15.7 -22.8 15.9 -20.6 16.6 -20.6
2025-07-01 14:11:25,746 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:11:25,746 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:11:25,747 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.507580
2025-07-01 14:11:25,747 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:11:25,747 [DEBUG][       Thread-607171][   transport.py][1871] : EOF in transport thread
2025-07-01 14:11:25,748 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:11:25,749 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:11:25,749 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:11:25,749 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:11:25,749 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:11:15', tmtdew=11.53, humidity=45.64, cloud=0.0, wind=32.98, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:10:54.912', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:11:25,828 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:11:25,843 [DEBUG][       Thread-607174][   transport.py][1871] : starting thread (client mode): 0x8393910
2025-07-01 14:11:25,843 [DEBUG][       Thread-607174][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:11:25,857 [DEBUG][       Thread-607174][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:11:25,857 [ INFO][       Thread-607174][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:11:25,868 [DEBUG][       Thread-607174][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:11:25,868 [DEBUG][       Thread-607174][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:11:25,868 [DEBUG][       Thread-607174][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:11:25,868 [DEBUG][       Thread-607174][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:11:25,868 [DEBUG][       Thread-607174][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:11:25,868 [DEBUG][       Thread-607174][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:11:25,868 [DEBUG][       Thread-607174][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:11:25,868 [DEBUG][       Thread-607174][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:11:25,868 [DEBUG][       Thread-607174][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:11:25,869 [DEBUG][       Thread-607174][   transport.py][1871] : client lang: <none>
2025-07-01 14:11:25,869 [DEBUG][       Thread-607174][   transport.py][1871] : server lang: <none>
2025-07-01 14:11:25,869 [DEBUG][       Thread-607174][   transport.py][1871] : kex follows: False
2025-07-01 14:11:25,869 [DEBUG][       Thread-607174][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:11:25,869 [DEBUG][       Thread-607174][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:11:25,869 [DEBUG][       Thread-607174][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:11:25,869 [DEBUG][       Thread-607174][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:11:25,869 [DEBUG][       Thread-607174][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:11:25,869 [DEBUG][       Thread-607174][   transport.py][1871] : Compression: none
2025-07-01 14:11:25,869 [DEBUG][       Thread-607174][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:11:25,929 [DEBUG][       Thread-607174][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:11:25,930 [DEBUG][       Thread-607174][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:11:25,930 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:11:25,931 [DEBUG][       Thread-607174][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:11:25,931 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:11:25,990 [DEBUG][       Thread-607174][   transport.py][1871] : userauth is OK
2025-07-01 14:11:25,990 [DEBUG][       Thread-607174][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:11:25,991 [DEBUG][       Thread-607174][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:11:25,991 [DEBUG][       Thread-607174][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:11:25,991 [DEBUG][       Thread-607174][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:11:26,009 [ INFO][       Thread-607174][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:11:26,009 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:11:26,010 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:11:27,042 [DEBUG][       Thread-607174][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:11:27,043 [DEBUG][       Thread-607174][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:11:27,092 [DEBUG][       Thread-607174][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:11:27,092 [DEBUG][       Thread-607174][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:11:27,101 [DEBUG][       Thread-607174][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:11:27,112 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:11:27,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-07-01 14:11:27,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-07-01 14:11:27,133 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:11:27,133 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:11:27,134 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:11:27,145 [DEBUG][       Thread-607174][   transport.py][1871] : EOF in transport thread
2025-07-01 14:11:29,134 [DEBUG][Thread-607176 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:11:30,464 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:11:30,466 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:11:34,102 [DEBUG][Thread-607177 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:11:37,144 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:11:37,144 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:11:37,144 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:11:37,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-07-01 14:11:37,661 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 11, 15), 11.53, 45.64, 0.0, 32.98, 13.97, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:11:37,661 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:11:15
2025-07-01 14:11:37,752 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:11:37,759 [DEBUG][       Thread-607178][   transport.py][1871] : starting thread (client mode): 0x81a7610
2025-07-01 14:11:37,759 [DEBUG][       Thread-607178][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:11:37,779 [DEBUG][       Thread-607178][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:11:37,779 [ INFO][       Thread-607178][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:11:37,782 [DEBUG][       Thread-607178][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:11:37,782 [DEBUG][       Thread-607178][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:11:37,782 [DEBUG][       Thread-607178][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:11:37,782 [DEBUG][       Thread-607178][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:11:37,782 [DEBUG][       Thread-607178][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:11:37,782 [DEBUG][       Thread-607178][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:11:37,782 [DEBUG][       Thread-607178][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:11:37,782 [DEBUG][       Thread-607178][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:11:37,782 [DEBUG][       Thread-607178][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:11:37,782 [DEBUG][       Thread-607178][   transport.py][1871] : client lang: <none>
2025-07-01 14:11:37,782 [DEBUG][       Thread-607178][   transport.py][1871] : server lang: <none>
2025-07-01 14:11:37,782 [DEBUG][       Thread-607178][   transport.py][1871] : kex follows: False
2025-07-01 14:11:37,782 [DEBUG][       Thread-607178][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:11:37,782 [DEBUG][       Thread-607178][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:11:37,782 [DEBUG][       Thread-607178][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:11:37,782 [DEBUG][       Thread-607178][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:11:37,782 [DEBUG][       Thread-607178][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:11:37,782 [DEBUG][       Thread-607178][   transport.py][1871] : Compression: none
2025-07-01 14:11:37,782 [DEBUG][       Thread-607178][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:11:37,789 [DEBUG][       Thread-607178][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:11:37,789 [DEBUG][       Thread-607178][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:11:37,789 [DEBUG][       Thread-607178][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:11:37,789 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:11:37,790 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:11:37,790 [DEBUG][       Thread-607178][   transport.py][1871] : userauth is OK
2025-07-01 14:11:37,803 [ INFO][       Thread-607178][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:11:37,803 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:11:38,163 [DEBUG][Thread-607180 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:11:38,447 [DEBUG][       Thread-607178][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:11:38,447 [DEBUG][       Thread-607178][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:11:38,488 [DEBUG][       Thread-607178][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:11:38,488 [DEBUG][       Thread-607178][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:11:38,491 [DEBUG][       Thread-607178][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:11:38,504 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:11:38,504 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:11:38,505 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:11:38,506 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:11:38,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:11:38,510 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:11:38,510 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:11:38,510 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:11:38,510 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.507580 -999.00  +13.80  37.55     51   +3.80 1 2 2 1 1   887    0 10.30 23.39 ----- 34.8 37.5 31.4 48.9 16.5 -23.0 15.7 -22.8 15.9 -20.6 16.6 -20.6
2025-07-01 14:11:38,510 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:11:38,510 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:11:38,510 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.507580
2025-07-01 14:11:38,510 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:11:38,510 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:11:38,510 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:11:38,511 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:11:38,511 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:11:38,511 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:11:15', tmtdew=11.53, humidity=45.64, cloud=0.0, wind=32.98, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:10:54.912', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:11:38,511 [DEBUG][       Thread-607178][   transport.py][1871] : EOF in transport thread
2025-07-01 14:11:38,583 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:11:38,595 [DEBUG][       Thread-607182][   transport.py][1871] : starting thread (client mode): 0x8393c40
2025-07-01 14:11:38,595 [DEBUG][       Thread-607182][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:11:38,610 [DEBUG][       Thread-607182][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:11:38,610 [ INFO][       Thread-607182][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:11:38,618 [DEBUG][       Thread-607182][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:11:38,618 [DEBUG][       Thread-607182][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:11:38,618 [DEBUG][       Thread-607182][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:11:38,618 [DEBUG][       Thread-607182][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:11:38,618 [DEBUG][       Thread-607182][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:11:38,618 [DEBUG][       Thread-607182][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:11:38,618 [DEBUG][       Thread-607182][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:11:38,618 [DEBUG][       Thread-607182][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:11:38,618 [DEBUG][       Thread-607182][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:11:38,618 [DEBUG][       Thread-607182][   transport.py][1871] : client lang: <none>
2025-07-01 14:11:38,618 [DEBUG][       Thread-607182][   transport.py][1871] : server lang: <none>
2025-07-01 14:11:38,618 [DEBUG][       Thread-607182][   transport.py][1871] : kex follows: False
2025-07-01 14:11:38,618 [DEBUG][       Thread-607182][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:11:38,618 [DEBUG][       Thread-607182][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:11:38,618 [DEBUG][       Thread-607182][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:11:38,618 [DEBUG][       Thread-607182][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:11:38,618 [DEBUG][       Thread-607182][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:11:38,618 [DEBUG][       Thread-607182][   transport.py][1871] : Compression: none
2025-07-01 14:11:38,618 [DEBUG][       Thread-607182][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:11:38,672 [DEBUG][       Thread-607182][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:11:38,672 [DEBUG][       Thread-607182][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:11:38,672 [DEBUG][       Thread-607182][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:11:38,673 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:11:38,673 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:11:38,730 [DEBUG][       Thread-607182][   transport.py][1871] : userauth is OK
2025-07-01 14:11:38,730 [DEBUG][       Thread-607182][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:11:38,730 [DEBUG][       Thread-607182][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:11:38,730 [DEBUG][       Thread-607182][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:11:38,730 [DEBUG][       Thread-607182][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:11:38,746 [ INFO][       Thread-607182][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:11:38,747 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:11:38,747 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:11:39,786 [DEBUG][       Thread-607182][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:11:39,786 [DEBUG][       Thread-607182][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:11:39,839 [DEBUG][       Thread-607182][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:11:39,839 [DEBUG][       Thread-607182][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:11:39,848 [DEBUG][       Thread-607182][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:11:39,855 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:11:39,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-07-01 14:11:39,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-07-01 14:11:39,872 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:11:39,872 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:11:39,872 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:11:39,880 [DEBUG][       Thread-607182][   transport.py][1871] : EOF in transport thread
2025-07-01 14:11:47,182 [DEBUG][Thread-607184 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:11:49,880 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:11:49,880 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:11:49,880 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:11:49,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-07-01 14:11:50,377 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 11, 15), 11.53, 45.64, 0.0, 32.98, 13.97, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:11:50,377 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:11:15
2025-07-01 14:11:50,464 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:11:50,468 [DEBUG][       Thread-607185][   transport.py][1871] : starting thread (client mode): 0x81c9630
2025-07-01 14:11:50,468 [DEBUG][       Thread-607185][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:11:50,490 [DEBUG][       Thread-607185][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:11:50,490 [ INFO][       Thread-607185][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:11:50,493 [DEBUG][       Thread-607185][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:11:50,493 [DEBUG][       Thread-607185][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:11:50,493 [DEBUG][       Thread-607185][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:11:50,493 [DEBUG][       Thread-607185][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:11:50,493 [DEBUG][       Thread-607185][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:11:50,493 [DEBUG][       Thread-607185][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:11:50,493 [DEBUG][       Thread-607185][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:11:50,493 [DEBUG][       Thread-607185][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:11:50,494 [DEBUG][       Thread-607185][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:11:50,494 [DEBUG][       Thread-607185][   transport.py][1871] : client lang: <none>
2025-07-01 14:11:50,494 [DEBUG][       Thread-607185][   transport.py][1871] : server lang: <none>
2025-07-01 14:11:50,494 [DEBUG][       Thread-607185][   transport.py][1871] : kex follows: False
2025-07-01 14:11:50,494 [DEBUG][       Thread-607185][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:11:50,494 [DEBUG][       Thread-607185][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:11:50,494 [DEBUG][       Thread-607185][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:11:50,494 [DEBUG][       Thread-607185][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:11:50,494 [DEBUG][       Thread-607185][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:11:50,494 [DEBUG][       Thread-607185][   transport.py][1871] : Compression: none
2025-07-01 14:11:50,494 [DEBUG][       Thread-607185][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:11:50,510 [DEBUG][       Thread-607185][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:11:50,511 [DEBUG][       Thread-607185][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:11:50,511 [DEBUG][       Thread-607185][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:11:50,512 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:11:50,512 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:11:50,513 [DEBUG][       Thread-607185][   transport.py][1871] : userauth is OK
2025-07-01 14:11:50,539 [ INFO][       Thread-607185][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:11:50,539 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:11:51,217 [DEBUG][       Thread-607185][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:11:51,217 [DEBUG][       Thread-607185][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:11:51,265 [DEBUG][       Thread-607185][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:11:51,265 [DEBUG][       Thread-607185][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:11:51,268 [DEBUG][       Thread-607185][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:11:51,283 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:11:51,283 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:11:51,285 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:11:51,286 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:11:51,292 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:11:51,294 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:11:51,294 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:11:51,294 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:11:51,295 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.507927 -999.00  +13.80  34.40     50   +3.70 1 2 2 1 1   887    0 10.71 23.29 ----- 36.8 34.4 4.9 49.2 16.4 -23.0 15.7 -22.4 15.9 -20.7 16.6 -21.3
2025-07-01 14:11:51,295 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:11:51,295 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:11:51,295 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.507927
2025-07-01 14:11:51,295 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:11:51,296 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:11:51,296 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:11:51,296 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:11:51,296 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:11:51,296 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:11:15', tmtdew=11.53, humidity=45.64, cloud=0.0, wind=32.98, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:11:24.893', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:11:51,297 [DEBUG][       Thread-607185][   transport.py][1871] : EOF in transport thread
2025-07-01 14:11:51,379 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:11:51,390 [DEBUG][       Thread-607188][   transport.py][1871] : starting thread (client mode): 0x81d9b10
2025-07-01 14:11:51,390 [DEBUG][       Thread-607188][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:11:51,411 [DEBUG][       Thread-607188][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:11:51,411 [ INFO][       Thread-607188][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:11:51,418 [DEBUG][       Thread-607188][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:11:51,418 [DEBUG][       Thread-607188][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:11:51,418 [DEBUG][       Thread-607188][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:11:51,418 [DEBUG][       Thread-607188][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:11:51,418 [DEBUG][       Thread-607188][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:11:51,419 [DEBUG][       Thread-607188][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:11:51,419 [DEBUG][       Thread-607188][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:11:51,419 [DEBUG][       Thread-607188][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:11:51,419 [DEBUG][       Thread-607188][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:11:51,419 [DEBUG][       Thread-607188][   transport.py][1871] : client lang: <none>
2025-07-01 14:11:51,419 [DEBUG][       Thread-607188][   transport.py][1871] : server lang: <none>
2025-07-01 14:11:51,419 [DEBUG][       Thread-607188][   transport.py][1871] : kex follows: False
2025-07-01 14:11:51,419 [DEBUG][       Thread-607188][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:11:51,419 [DEBUG][       Thread-607188][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:11:51,419 [DEBUG][       Thread-607188][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:11:51,419 [DEBUG][       Thread-607188][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:11:51,419 [DEBUG][       Thread-607188][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:11:51,419 [DEBUG][       Thread-607188][   transport.py][1871] : Compression: none
2025-07-01 14:11:51,419 [DEBUG][       Thread-607188][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:11:51,478 [DEBUG][       Thread-607188][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:11:51,478 [DEBUG][       Thread-607188][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:11:51,479 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:11:51,480 [DEBUG][       Thread-607188][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:11:51,480 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:11:51,534 [DEBUG][       Thread-607188][   transport.py][1871] : userauth is OK
2025-07-01 14:11:51,534 [DEBUG][       Thread-607188][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:11:51,534 [DEBUG][       Thread-607188][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:11:51,535 [DEBUG][       Thread-607188][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:11:51,535 [DEBUG][       Thread-607188][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:11:51,554 [ INFO][       Thread-607188][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:11:51,554 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:11:51,555 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:11:52,610 [DEBUG][       Thread-607188][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:11:52,610 [DEBUG][       Thread-607188][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:11:52,660 [DEBUG][       Thread-607188][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:11:52,660 [DEBUG][       Thread-607188][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:11:52,669 [DEBUG][       Thread-607188][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:11:52,679 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:11:52,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-07-01 14:11:52,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-07-01 14:11:52,697 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:11:52,697 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:11:52,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:11:52,705 [DEBUG][       Thread-607188][   transport.py][1871] : EOF in transport thread
2025-07-01 14:11:56,204 [DEBUG][Thread-607190 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:12:02,708 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:12:02,708 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:12:02,708 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:12:02,711 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:12:03,204 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 11, 48), 11.52, 45.67, 0.0, 25.95, 13.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:12:03,204 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:11:48
2025-07-01 14:12:03,291 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:12:03,297 [DEBUG][       Thread-607191][   transport.py][1871] : starting thread (client mode): 0x81d8070
2025-07-01 14:12:03,297 [DEBUG][       Thread-607191][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:12:03,311 [DEBUG][       Thread-607191][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:12:03,311 [ INFO][       Thread-607191][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:12:03,313 [DEBUG][       Thread-607191][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:12:03,313 [DEBUG][       Thread-607191][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:12:03,313 [DEBUG][       Thread-607191][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:12:03,314 [DEBUG][       Thread-607191][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:12:03,314 [DEBUG][       Thread-607191][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:12:03,314 [DEBUG][       Thread-607191][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:12:03,314 [DEBUG][       Thread-607191][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:12:03,314 [DEBUG][       Thread-607191][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:12:03,314 [DEBUG][       Thread-607191][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:12:03,314 [DEBUG][       Thread-607191][   transport.py][1871] : client lang: <none>
2025-07-01 14:12:03,314 [DEBUG][       Thread-607191][   transport.py][1871] : server lang: <none>
2025-07-01 14:12:03,314 [DEBUG][       Thread-607191][   transport.py][1871] : kex follows: False
2025-07-01 14:12:03,314 [DEBUG][       Thread-607191][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:12:03,314 [DEBUG][       Thread-607191][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:12:03,314 [DEBUG][       Thread-607191][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:12:03,314 [DEBUG][       Thread-607191][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:12:03,314 [DEBUG][       Thread-607191][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:12:03,314 [DEBUG][       Thread-607191][   transport.py][1871] : Compression: none
2025-07-01 14:12:03,314 [DEBUG][       Thread-607191][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:12:03,331 [DEBUG][       Thread-607191][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:12:03,331 [DEBUG][       Thread-607191][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:12:03,332 [DEBUG][       Thread-607191][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:12:03,332 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:12:03,332 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:12:03,333 [DEBUG][       Thread-607191][   transport.py][1871] : userauth is OK
2025-07-01 14:12:03,346 [ INFO][       Thread-607191][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:12:03,347 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:12:04,041 [DEBUG][       Thread-607191][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:12:04,041 [DEBUG][       Thread-607191][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:12:04,085 [DEBUG][       Thread-607191][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:12:04,085 [DEBUG][       Thread-607191][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:12:04,088 [DEBUG][       Thread-607191][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:12:04,102 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:12:04,103 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:12:04,105 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:12:04,106 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:12:04,112 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:12:04,114 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:12:04,115 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:12:04,115 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:12:04,115 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.507927 -999.00  +13.80  34.40     50   +3.70 1 2 2 1 1   887    0 10.71 23.29 ----- 36.8 34.4 4.9 49.2 16.4 -23.0 15.7 -22.4 15.9 -20.7 16.6 -21.3
2025-07-01 14:12:04,116 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:12:04,116 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:12:04,116 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.507927
2025-07-01 14:12:04,116 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:12:04,117 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:12:04,117 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:12:04,117 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:12:04,117 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:12:04,117 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:11:48', tmtdew=11.52, humidity=45.67, cloud=0.0, wind=25.95, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:11:24.893', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:12:04,118 [DEBUG][       Thread-607191][   transport.py][1871] : EOF in transport thread
2025-07-01 14:12:04,201 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:12:04,213 [DEBUG][       Thread-607194][   transport.py][1871] : starting thread (client mode): 0x81c8910
2025-07-01 14:12:04,213 [DEBUG][       Thread-607194][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:12:04,232 [DEBUG][       Thread-607194][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:12:04,232 [ INFO][       Thread-607194][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:12:04,239 [DEBUG][       Thread-607194][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:12:04,240 [DEBUG][       Thread-607194][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:12:04,240 [DEBUG][       Thread-607194][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:12:04,240 [DEBUG][       Thread-607194][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:12:04,240 [DEBUG][       Thread-607194][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:12:04,240 [DEBUG][       Thread-607194][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:12:04,240 [DEBUG][       Thread-607194][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:12:04,240 [DEBUG][       Thread-607194][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:12:04,240 [DEBUG][       Thread-607194][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:12:04,240 [DEBUG][       Thread-607194][   transport.py][1871] : client lang: <none>
2025-07-01 14:12:04,240 [DEBUG][       Thread-607194][   transport.py][1871] : server lang: <none>
2025-07-01 14:12:04,240 [DEBUG][       Thread-607194][   transport.py][1871] : kex follows: False
2025-07-01 14:12:04,240 [DEBUG][       Thread-607194][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:12:04,240 [DEBUG][       Thread-607194][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:12:04,241 [DEBUG][       Thread-607194][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:12:04,241 [DEBUG][       Thread-607194][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:12:04,241 [DEBUG][       Thread-607194][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:12:04,241 [DEBUG][       Thread-607194][   transport.py][1871] : Compression: none
2025-07-01 14:12:04,241 [DEBUG][       Thread-607194][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:12:04,303 [DEBUG][       Thread-607194][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:12:04,304 [DEBUG][       Thread-607194][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:12:04,304 [DEBUG][       Thread-607194][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:12:04,304 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:12:04,305 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:12:04,363 [DEBUG][       Thread-607194][   transport.py][1871] : userauth is OK
2025-07-01 14:12:04,363 [DEBUG][       Thread-607194][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:12:04,364 [DEBUG][       Thread-607194][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:12:04,364 [DEBUG][       Thread-607194][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:12:04,364 [DEBUG][       Thread-607194][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:12:04,383 [ INFO][       Thread-607194][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:12:04,383 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:12:04,383 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:12:05,227 [DEBUG][Thread-607196 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:12:05,421 [DEBUG][       Thread-607194][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:12:05,421 [DEBUG][       Thread-607194][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:12:05,472 [DEBUG][       Thread-607194][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:12:05,472 [DEBUG][       Thread-607194][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:12:05,483 [DEBUG][       Thread-607194][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:12:05,492 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:12:05,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-07-01 14:12:05,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-07-01 14:12:05,514 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:12:05,514 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:12:05,514 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:12:05,523 [DEBUG][       Thread-607194][   transport.py][1871] : EOF in transport thread
2025-07-01 14:12:14,261 [DEBUG][Thread-607197 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:12:15,524 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:12:15,524 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:12:15,524 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:12:15,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-07-01 14:12:16,037 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 11, 48), 11.52, 45.67, 0.0, 25.95, 13.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:12:16,037 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:11:48
2025-07-01 14:12:16,128 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:12:16,131 [DEBUG][       Thread-607198][   transport.py][1871] : starting thread (client mode): 0x81da770
2025-07-01 14:12:16,131 [DEBUG][       Thread-607198][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:12:16,154 [DEBUG][       Thread-607198][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:12:16,154 [ INFO][       Thread-607198][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:12:16,156 [DEBUG][       Thread-607198][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:12:16,157 [DEBUG][       Thread-607198][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:12:16,157 [DEBUG][       Thread-607198][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:12:16,157 [DEBUG][       Thread-607198][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:12:16,157 [DEBUG][       Thread-607198][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:12:16,157 [DEBUG][       Thread-607198][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:12:16,157 [DEBUG][       Thread-607198][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:12:16,157 [DEBUG][       Thread-607198][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:12:16,157 [DEBUG][       Thread-607198][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:12:16,157 [DEBUG][       Thread-607198][   transport.py][1871] : client lang: <none>
2025-07-01 14:12:16,157 [DEBUG][       Thread-607198][   transport.py][1871] : server lang: <none>
2025-07-01 14:12:16,157 [DEBUG][       Thread-607198][   transport.py][1871] : kex follows: False
2025-07-01 14:12:16,157 [DEBUG][       Thread-607198][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:12:16,157 [DEBUG][       Thread-607198][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:12:16,157 [DEBUG][       Thread-607198][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:12:16,157 [DEBUG][       Thread-607198][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:12:16,157 [DEBUG][       Thread-607198][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:12:16,157 [DEBUG][       Thread-607198][   transport.py][1871] : Compression: none
2025-07-01 14:12:16,157 [DEBUG][       Thread-607198][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:12:16,169 [DEBUG][       Thread-607198][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:12:16,169 [DEBUG][       Thread-607198][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:12:16,170 [DEBUG][       Thread-607198][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:12:16,170 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:12:16,170 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:12:16,170 [DEBUG][       Thread-607198][   transport.py][1871] : userauth is OK
2025-07-01 14:12:16,183 [ INFO][       Thread-607198][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:12:16,183 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:12:16,843 [DEBUG][       Thread-607198][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:12:16,843 [DEBUG][       Thread-607198][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:12:16,884 [DEBUG][       Thread-607198][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:12:16,884 [DEBUG][       Thread-607198][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:12:16,887 [DEBUG][       Thread-607198][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:12:16,899 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:12:16,899 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:12:16,900 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:12:16,901 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:12:16,904 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:12:16,905 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:12:16,905 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:12:16,905 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:12:16,905 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.507927 -999.00  +13.80  34.40     50   +3.70 1 2 2 1 1   887    0 10.71 23.29 ----- 36.8 34.4 4.9 49.2 16.4 -23.0 15.7 -22.4 15.9 -20.7 16.6 -21.3
2025-07-01 14:12:16,905 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:12:16,905 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:12:16,905 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.507927
2025-07-01 14:12:16,905 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:12:16,906 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:12:16,906 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:12:16,906 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:12:16,906 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:12:16,906 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:11:48', tmtdew=11.52, humidity=45.67, cloud=0.0, wind=25.95, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:11:24.893', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:12:16,906 [DEBUG][       Thread-607198][   transport.py][1871] : EOF in transport thread
2025-07-01 14:12:16,979 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:12:16,988 [DEBUG][       Thread-607201][   transport.py][1871] : starting thread (client mode): 0x81a4820
2025-07-01 14:12:16,988 [DEBUG][       Thread-607201][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:12:17,003 [DEBUG][       Thread-607201][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:12:17,003 [ INFO][       Thread-607201][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:12:17,010 [DEBUG][       Thread-607201][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:12:17,010 [DEBUG][       Thread-607201][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:12:17,010 [DEBUG][       Thread-607201][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:12:17,010 [DEBUG][       Thread-607201][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:12:17,010 [DEBUG][       Thread-607201][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:12:17,010 [DEBUG][       Thread-607201][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:12:17,010 [DEBUG][       Thread-607201][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:12:17,010 [DEBUG][       Thread-607201][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:12:17,011 [DEBUG][       Thread-607201][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:12:17,011 [DEBUG][       Thread-607201][   transport.py][1871] : client lang: <none>
2025-07-01 14:12:17,011 [DEBUG][       Thread-607201][   transport.py][1871] : server lang: <none>
2025-07-01 14:12:17,011 [DEBUG][       Thread-607201][   transport.py][1871] : kex follows: False
2025-07-01 14:12:17,011 [DEBUG][       Thread-607201][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:12:17,011 [DEBUG][       Thread-607201][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:12:17,011 [DEBUG][       Thread-607201][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:12:17,011 [DEBUG][       Thread-607201][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:12:17,011 [DEBUG][       Thread-607201][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:12:17,011 [DEBUG][       Thread-607201][   transport.py][1871] : Compression: none
2025-07-01 14:12:17,011 [DEBUG][       Thread-607201][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:12:17,068 [DEBUG][       Thread-607201][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:12:17,069 [DEBUG][       Thread-607201][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:12:17,069 [DEBUG][       Thread-607201][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:12:17,069 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:12:17,069 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:12:17,126 [DEBUG][       Thread-607201][   transport.py][1871] : userauth is OK
2025-07-01 14:12:17,126 [DEBUG][       Thread-607201][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:12:17,126 [DEBUG][       Thread-607201][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:12:17,126 [DEBUG][       Thread-607201][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:12:17,126 [DEBUG][       Thread-607201][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:12:17,140 [ INFO][       Thread-607201][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:12:17,140 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:12:17,140 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:12:18,158 [DEBUG][       Thread-607201][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:12:18,158 [DEBUG][       Thread-607201][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:12:18,207 [DEBUG][       Thread-607201][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:12:18,207 [DEBUG][       Thread-607201][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:12:18,216 [DEBUG][       Thread-607201][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:12:18,223 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:12:18,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-07-01 14:12:18,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-07-01 14:12:18,240 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:12:18,240 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:12:18,240 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:12:18,248 [DEBUG][       Thread-607201][   transport.py][1871] : EOF in transport thread
2025-07-01 14:12:23,280 [DEBUG][Thread-607203 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:12:28,240 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:12:28,240 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:12:28,241 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:12:28,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-07-01 14:12:28,739 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 12, 19), 11.55, 45.79, 0.0, 42.38, 13.94, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:12:28,739 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:12:19
2025-07-01 14:12:28,824 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:12:28,831 [DEBUG][       Thread-607204][   transport.py][1871] : starting thread (client mode): 0x81d8970
2025-07-01 14:12:28,831 [DEBUG][       Thread-607204][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:12:28,850 [DEBUG][       Thread-607204][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:12:28,850 [ INFO][       Thread-607204][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:12:28,852 [DEBUG][       Thread-607204][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:12:28,852 [DEBUG][       Thread-607204][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:12:28,852 [DEBUG][       Thread-607204][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:12:28,852 [DEBUG][       Thread-607204][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:12:28,852 [DEBUG][       Thread-607204][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:12:28,852 [DEBUG][       Thread-607204][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:12:28,852 [DEBUG][       Thread-607204][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:12:28,852 [DEBUG][       Thread-607204][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:12:28,852 [DEBUG][       Thread-607204][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:12:28,852 [DEBUG][       Thread-607204][   transport.py][1871] : client lang: <none>
2025-07-01 14:12:28,852 [DEBUG][       Thread-607204][   transport.py][1871] : server lang: <none>
2025-07-01 14:12:28,852 [DEBUG][       Thread-607204][   transport.py][1871] : kex follows: False
2025-07-01 14:12:28,852 [DEBUG][       Thread-607204][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:12:28,852 [DEBUG][       Thread-607204][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:12:28,852 [DEBUG][       Thread-607204][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:12:28,853 [DEBUG][       Thread-607204][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:12:28,853 [DEBUG][       Thread-607204][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:12:28,853 [DEBUG][       Thread-607204][   transport.py][1871] : Compression: none
2025-07-01 14:12:28,853 [DEBUG][       Thread-607204][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:12:28,864 [DEBUG][       Thread-607204][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:12:28,864 [DEBUG][       Thread-607204][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:12:28,865 [DEBUG][       Thread-607204][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:12:28,865 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:12:28,865 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:12:28,866 [DEBUG][       Thread-607204][   transport.py][1871] : userauth is OK
2025-07-01 14:12:28,880 [ INFO][       Thread-607204][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:12:28,880 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:12:29,536 [DEBUG][       Thread-607204][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:12:29,536 [DEBUG][       Thread-607204][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:12:29,577 [DEBUG][       Thread-607204][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:12:29,577 [DEBUG][       Thread-607204][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:12:29,580 [DEBUG][       Thread-607204][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:12:29,586 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:12:29,587 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:12:29,588 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:12:29,590 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:12:29,595 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:12:29,597 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:12:29,597 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:12:29,598 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:12:29,598 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.508275 -999.00  +13.70  44.78     50   +3.50 1 2 2 1 1   887    0 10.46 23.59 ----- 27.1 44.8 17.6 63.7 16.4 -22.7 15.6 -23.7 15.9 -21.1 16.5 -20.4
2025-07-01 14:12:29,598 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:12:29,598 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:12:29,598 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.508275
2025-07-01 14:12:29,598 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:12:29,599 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:12:29,599 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:12:29,599 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:12:29,599 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:12:29,599 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:12:19', tmtdew=11.55, humidity=45.79, cloud=0.0, wind=42.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:11:54.960', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:12:29,600 [DEBUG][       Thread-607204][   transport.py][1871] : EOF in transport thread
2025-07-01 14:12:29,679 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:12:29,691 [DEBUG][       Thread-607207][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 14:12:29,691 [DEBUG][       Thread-607207][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:12:29,707 [DEBUG][       Thread-607207][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:12:29,707 [ INFO][       Thread-607207][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:12:29,715 [DEBUG][       Thread-607207][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:12:29,715 [DEBUG][       Thread-607207][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:12:29,715 [DEBUG][       Thread-607207][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:12:29,715 [DEBUG][       Thread-607207][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:12:29,715 [DEBUG][       Thread-607207][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:12:29,715 [DEBUG][       Thread-607207][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:12:29,715 [DEBUG][       Thread-607207][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:12:29,715 [DEBUG][       Thread-607207][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:12:29,715 [DEBUG][       Thread-607207][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:12:29,715 [DEBUG][       Thread-607207][   transport.py][1871] : client lang: <none>
2025-07-01 14:12:29,716 [DEBUG][       Thread-607207][   transport.py][1871] : server lang: <none>
2025-07-01 14:12:29,716 [DEBUG][       Thread-607207][   transport.py][1871] : kex follows: False
2025-07-01 14:12:29,716 [DEBUG][       Thread-607207][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:12:29,716 [DEBUG][       Thread-607207][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:12:29,716 [DEBUG][       Thread-607207][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:12:29,716 [DEBUG][       Thread-607207][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:12:29,716 [DEBUG][       Thread-607207][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:12:29,716 [DEBUG][       Thread-607207][   transport.py][1871] : Compression: none
2025-07-01 14:12:29,716 [DEBUG][       Thread-607207][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:12:29,777 [DEBUG][       Thread-607207][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:12:29,777 [DEBUG][       Thread-607207][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:12:29,778 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:12:29,779 [DEBUG][       Thread-607207][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:12:29,779 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:12:29,840 [DEBUG][       Thread-607207][   transport.py][1871] : userauth is OK
2025-07-01 14:12:29,840 [DEBUG][       Thread-607207][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:12:29,840 [DEBUG][       Thread-607207][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:12:29,841 [DEBUG][       Thread-607207][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:12:29,841 [DEBUG][       Thread-607207][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:12:29,859 [ INFO][       Thread-607207][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:12:29,859 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:12:29,860 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:12:30,611 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:12:30,613 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:12:30,906 [DEBUG][       Thread-607207][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:12:30,906 [DEBUG][       Thread-607207][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:12:30,956 [DEBUG][       Thread-607207][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:12:30,956 [DEBUG][       Thread-607207][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:12:30,965 [DEBUG][       Thread-607207][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:12:30,974 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:12:30,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-07-01 14:12:30,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-07-01 14:12:30,992 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:12:30,993 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:12:30,993 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:12:31,001 [DEBUG][       Thread-607207][   transport.py][1871] : EOF in transport thread
2025-07-01 14:12:32,301 [DEBUG][Thread-607209 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:12:34,153 [DEBUG][Thread-607210 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:12:41,004 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:12:41,004 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:12:41,004 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:12:41,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-07-01 14:12:41,343 [DEBUG][Thread-607211 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:12:41,487 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 12, 19), 11.55, 45.79, 0.0, 42.38, 13.94, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:12:41,487 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:12:19
2025-07-01 14:12:41,573 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:12:41,577 [DEBUG][       Thread-607212][   transport.py][1871] : starting thread (client mode): 0x81d9480
2025-07-01 14:12:41,577 [DEBUG][       Thread-607212][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:12:41,597 [DEBUG][       Thread-607212][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:12:41,597 [ INFO][       Thread-607212][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:12:41,600 [DEBUG][       Thread-607212][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:12:41,600 [DEBUG][       Thread-607212][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:12:41,600 [DEBUG][       Thread-607212][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:12:41,600 [DEBUG][       Thread-607212][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:12:41,600 [DEBUG][       Thread-607212][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:12:41,600 [DEBUG][       Thread-607212][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:12:41,600 [DEBUG][       Thread-607212][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:12:41,600 [DEBUG][       Thread-607212][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:12:41,600 [DEBUG][       Thread-607212][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:12:41,600 [DEBUG][       Thread-607212][   transport.py][1871] : client lang: <none>
2025-07-01 14:12:41,600 [DEBUG][       Thread-607212][   transport.py][1871] : server lang: <none>
2025-07-01 14:12:41,600 [DEBUG][       Thread-607212][   transport.py][1871] : kex follows: False
2025-07-01 14:12:41,600 [DEBUG][       Thread-607212][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:12:41,600 [DEBUG][       Thread-607212][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:12:41,600 [DEBUG][       Thread-607212][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:12:41,600 [DEBUG][       Thread-607212][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:12:41,600 [DEBUG][       Thread-607212][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:12:41,600 [DEBUG][       Thread-607212][   transport.py][1871] : Compression: none
2025-07-01 14:12:41,600 [DEBUG][       Thread-607212][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:12:41,613 [DEBUG][       Thread-607212][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:12:41,614 [DEBUG][       Thread-607212][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:12:41,614 [DEBUG][       Thread-607212][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:12:41,614 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:12:41,615 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:12:41,616 [DEBUG][       Thread-607212][   transport.py][1871] : userauth is OK
2025-07-01 14:12:41,641 [ INFO][       Thread-607212][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:12:41,641 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:12:42,258 [DEBUG][       Thread-607212][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:12:42,259 [DEBUG][       Thread-607212][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:12:42,301 [DEBUG][       Thread-607212][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:12:42,301 [DEBUG][       Thread-607212][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:12:42,304 [DEBUG][       Thread-607212][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:12:42,316 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:12:42,316 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:12:42,318 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:12:42,320 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:12:42,325 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:12:42,326 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:12:42,327 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:12:42,327 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:12:42,327 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.508275 -999.00  +13.70  44.78     50   +3.50 1 2 2 1 1   887    0 10.46 23.59 ----- 27.1 44.8 17.6 63.7 16.4 -22.7 15.6 -23.7 15.9 -21.1 16.5 -20.4
2025-07-01 14:12:42,327 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:12:42,327 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:12:42,328 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.508275
2025-07-01 14:12:42,328 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:12:42,329 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:12:42,329 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:12:42,329 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:12:42,329 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:12:42,329 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:12:19', tmtdew=11.55, humidity=45.79, cloud=0.0, wind=42.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:11:54.960', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:12:42,330 [DEBUG][       Thread-607212][   transport.py][1871] : EOF in transport thread
2025-07-01 14:12:42,414 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:12:42,423 [DEBUG][       Thread-607215][   transport.py][1871] : starting thread (client mode): 0x827db40
2025-07-01 14:12:42,423 [DEBUG][       Thread-607215][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:12:42,439 [DEBUG][       Thread-607215][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:12:42,439 [ INFO][       Thread-607215][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:12:42,447 [DEBUG][       Thread-607215][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:12:42,447 [DEBUG][       Thread-607215][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:12:42,447 [DEBUG][       Thread-607215][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:12:42,447 [DEBUG][       Thread-607215][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:12:42,447 [DEBUG][       Thread-607215][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:12:42,447 [DEBUG][       Thread-607215][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:12:42,447 [DEBUG][       Thread-607215][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:12:42,447 [DEBUG][       Thread-607215][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:12:42,447 [DEBUG][       Thread-607215][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:12:42,447 [DEBUG][       Thread-607215][   transport.py][1871] : client lang: <none>
2025-07-01 14:12:42,447 [DEBUG][       Thread-607215][   transport.py][1871] : server lang: <none>
2025-07-01 14:12:42,447 [DEBUG][       Thread-607215][   transport.py][1871] : kex follows: False
2025-07-01 14:12:42,447 [DEBUG][       Thread-607215][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:12:42,447 [DEBUG][       Thread-607215][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:12:42,447 [DEBUG][       Thread-607215][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:12:42,447 [DEBUG][       Thread-607215][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:12:42,447 [DEBUG][       Thread-607215][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:12:42,447 [DEBUG][       Thread-607215][   transport.py][1871] : Compression: none
2025-07-01 14:12:42,448 [DEBUG][       Thread-607215][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:12:42,506 [DEBUG][       Thread-607215][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:12:42,506 [DEBUG][       Thread-607215][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:12:42,507 [DEBUG][       Thread-607215][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:12:42,507 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:12:42,508 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:12:42,562 [DEBUG][       Thread-607215][   transport.py][1871] : userauth is OK
2025-07-01 14:12:42,562 [DEBUG][       Thread-607215][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:12:42,563 [DEBUG][       Thread-607215][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:12:42,563 [DEBUG][       Thread-607215][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:12:42,563 [DEBUG][       Thread-607215][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:12:42,587 [ INFO][       Thread-607215][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:12:42,587 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:12:42,587 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:12:43,601 [DEBUG][       Thread-607215][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:12:43,601 [DEBUG][       Thread-607215][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:12:43,651 [DEBUG][       Thread-607215][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:12:43,652 [DEBUG][       Thread-607215][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:12:43,661 [DEBUG][       Thread-607215][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:12:43,669 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:12:43,669 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 14:12:43,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-07-01 14:12:43,686 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:12:43,686 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:12:43,686 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:12:43,694 [DEBUG][       Thread-607215][   transport.py][1871] : EOF in transport thread
2025-07-01 14:12:50,364 [DEBUG][Thread-607217 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:12:53,696 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:12:53,696 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:12:53,696 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:12:53,697 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:12:54,220 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 12, 51), 11.64, 45.5, 0.0, 42.22, 13.94, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:12:54,220 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:12:51
2025-07-01 14:12:54,311 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:12:54,317 [DEBUG][       Thread-607218][   transport.py][1871] : starting thread (client mode): 0x75aaad0
2025-07-01 14:12:54,317 [DEBUG][       Thread-607218][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:12:54,329 [DEBUG][       Thread-607218][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:12:54,330 [ INFO][       Thread-607218][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:12:54,331 [DEBUG][       Thread-607218][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:12:54,331 [DEBUG][       Thread-607218][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:12:54,331 [DEBUG][       Thread-607218][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:12:54,331 [DEBUG][       Thread-607218][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:12:54,331 [DEBUG][       Thread-607218][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:12:54,331 [DEBUG][       Thread-607218][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:12:54,331 [DEBUG][       Thread-607218][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:12:54,331 [DEBUG][       Thread-607218][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:12:54,331 [DEBUG][       Thread-607218][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:12:54,331 [DEBUG][       Thread-607218][   transport.py][1871] : client lang: <none>
2025-07-01 14:12:54,331 [DEBUG][       Thread-607218][   transport.py][1871] : server lang: <none>
2025-07-01 14:12:54,331 [DEBUG][       Thread-607218][   transport.py][1871] : kex follows: False
2025-07-01 14:12:54,331 [DEBUG][       Thread-607218][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:12:54,331 [DEBUG][       Thread-607218][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:12:54,331 [DEBUG][       Thread-607218][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:12:54,331 [DEBUG][       Thread-607218][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:12:54,331 [DEBUG][       Thread-607218][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:12:54,331 [DEBUG][       Thread-607218][   transport.py][1871] : Compression: none
2025-07-01 14:12:54,331 [DEBUG][       Thread-607218][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:12:54,339 [DEBUG][       Thread-607218][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:12:54,339 [DEBUG][       Thread-607218][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:12:54,339 [DEBUG][       Thread-607218][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:12:54,339 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:12:54,339 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:12:54,340 [DEBUG][       Thread-607218][   transport.py][1871] : userauth is OK
2025-07-01 14:12:54,352 [ INFO][       Thread-607218][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:12:54,353 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:12:54,994 [DEBUG][       Thread-607218][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:12:54,994 [DEBUG][       Thread-607218][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:12:55,036 [DEBUG][       Thread-607218][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:12:55,036 [DEBUG][       Thread-607218][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:12:55,039 [DEBUG][       Thread-607218][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:12:55,051 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:12:55,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:12:55,053 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:12:55,053 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:12:55,056 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:12:55,057 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:12:55,057 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:12:55,057 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:12:55,057 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.508622 -999.00  +13.70  34.48     50   +3.60 1 2 2 1 1   887    0 10.71 22.01 ----- 38.7 34.5 13.2 46.9 16.4 -22.4 15.7 -22.4 15.8 -20.5 16.5 -20.5
2025-07-01 14:12:55,057 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:12:55,057 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:12:55,057 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.508622
2025-07-01 14:12:55,057 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:12:55,057 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:12:55,057 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:12:55,057 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:12:55,057 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:12:55,057 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:12:51', tmtdew=11.64, humidity=45.5, cloud=0.0, wind=42.22, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:12:24.941', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:12:55,058 [DEBUG][       Thread-607218][   transport.py][1871] : EOF in transport thread
2025-07-01 14:12:55,132 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:12:55,143 [DEBUG][       Thread-607221][   transport.py][1871] : starting thread (client mode): 0x8106200
2025-07-01 14:12:55,143 [DEBUG][       Thread-607221][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:12:55,161 [DEBUG][       Thread-607221][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:12:55,161 [ INFO][       Thread-607221][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:12:55,173 [DEBUG][       Thread-607221][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:12:55,173 [DEBUG][       Thread-607221][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:12:55,173 [DEBUG][       Thread-607221][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:12:55,173 [DEBUG][       Thread-607221][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:12:55,173 [DEBUG][       Thread-607221][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:12:55,173 [DEBUG][       Thread-607221][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:12:55,173 [DEBUG][       Thread-607221][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:12:55,173 [DEBUG][       Thread-607221][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:12:55,173 [DEBUG][       Thread-607221][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:12:55,173 [DEBUG][       Thread-607221][   transport.py][1871] : client lang: <none>
2025-07-01 14:12:55,173 [DEBUG][       Thread-607221][   transport.py][1871] : server lang: <none>
2025-07-01 14:12:55,173 [DEBUG][       Thread-607221][   transport.py][1871] : kex follows: False
2025-07-01 14:12:55,173 [DEBUG][       Thread-607221][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:12:55,173 [DEBUG][       Thread-607221][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:12:55,173 [DEBUG][       Thread-607221][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:12:55,173 [DEBUG][       Thread-607221][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:12:55,173 [DEBUG][       Thread-607221][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:12:55,173 [DEBUG][       Thread-607221][   transport.py][1871] : Compression: none
2025-07-01 14:12:55,173 [DEBUG][       Thread-607221][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:12:55,224 [DEBUG][       Thread-607221][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:12:55,224 [DEBUG][       Thread-607221][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:12:55,224 [DEBUG][       Thread-607221][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:12:55,224 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:12:55,225 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:12:55,282 [DEBUG][       Thread-607221][   transport.py][1871] : userauth is OK
2025-07-01 14:12:55,282 [DEBUG][       Thread-607221][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:12:55,282 [DEBUG][       Thread-607221][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:12:55,282 [DEBUG][       Thread-607221][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:12:55,282 [DEBUG][       Thread-607221][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:12:55,296 [ INFO][       Thread-607221][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:12:55,296 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:12:55,296 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:12:56,317 [DEBUG][       Thread-607221][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:12:56,317 [DEBUG][       Thread-607221][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:12:56,367 [DEBUG][       Thread-607221][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:12:56,367 [DEBUG][       Thread-607221][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:12:56,376 [DEBUG][       Thread-607221][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:12:56,384 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:12:56,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-07-01 14:12:56,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') -> 00000000
2025-07-01 14:12:56,399 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:12:56,399 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:12:56,400 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:12:56,407 [DEBUG][       Thread-607221][   transport.py][1871] : EOF in transport thread
2025-07-01 14:12:59,383 [DEBUG][Thread-607223 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:13:06,410 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:13:06,410 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:13:06,410 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:13:06,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-07-01 14:13:06,897 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 12, 51), 11.64, 45.5, 0.0, 42.22, 13.94, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:13:06,897 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:12:51
2025-07-01 14:13:06,982 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:13:06,986 [DEBUG][       Thread-607224][   transport.py][1871] : starting thread (client mode): 0x81ca710
2025-07-01 14:13:06,986 [DEBUG][       Thread-607224][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:13:07,006 [DEBUG][       Thread-607224][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:13:07,006 [ INFO][       Thread-607224][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:13:07,010 [DEBUG][       Thread-607224][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:13:07,010 [DEBUG][       Thread-607224][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:13:07,010 [DEBUG][       Thread-607224][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:13:07,010 [DEBUG][       Thread-607224][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:13:07,010 [DEBUG][       Thread-607224][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:13:07,010 [DEBUG][       Thread-607224][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:13:07,010 [DEBUG][       Thread-607224][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:13:07,010 [DEBUG][       Thread-607224][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:13:07,010 [DEBUG][       Thread-607224][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:13:07,010 [DEBUG][       Thread-607224][   transport.py][1871] : client lang: <none>
2025-07-01 14:13:07,010 [DEBUG][       Thread-607224][   transport.py][1871] : server lang: <none>
2025-07-01 14:13:07,010 [DEBUG][       Thread-607224][   transport.py][1871] : kex follows: False
2025-07-01 14:13:07,010 [DEBUG][       Thread-607224][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:13:07,010 [DEBUG][       Thread-607224][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:13:07,010 [DEBUG][       Thread-607224][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:13:07,010 [DEBUG][       Thread-607224][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:13:07,010 [DEBUG][       Thread-607224][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:13:07,010 [DEBUG][       Thread-607224][   transport.py][1871] : Compression: none
2025-07-01 14:13:07,010 [DEBUG][       Thread-607224][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:13:07,027 [DEBUG][       Thread-607224][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:13:07,028 [DEBUG][       Thread-607224][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:13:07,028 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:13:07,029 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:13:07,029 [DEBUG][       Thread-607224][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:13:07,030 [DEBUG][       Thread-607224][   transport.py][1871] : userauth is OK
2025-07-01 14:13:07,043 [ INFO][       Thread-607224][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:13:07,043 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:13:07,701 [DEBUG][       Thread-607224][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:13:07,702 [DEBUG][       Thread-607224][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:13:07,745 [DEBUG][       Thread-607224][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:13:07,745 [DEBUG][       Thread-607224][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:13:07,748 [DEBUG][       Thread-607224][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:13:07,760 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:13:07,761 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:13:07,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:13:07,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:13:07,769 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:13:07,771 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:13:07,771 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:13:07,772 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:13:07,772 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.508622 -999.00  +13.70  34.48     50   +3.60 1 2 2 1 1   887    0 10.71 22.01 ----- 38.7 34.5 13.2 46.9 16.4 -22.4 15.7 -22.4 15.8 -20.5 16.5 -20.5
2025-07-01 14:13:07,772 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:13:07,772 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:13:07,772 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.508622
2025-07-01 14:13:07,773 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:13:07,773 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:13:07,773 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:13:07,773 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:13:07,773 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:13:07,774 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:12:51', tmtdew=11.64, humidity=45.5, cloud=0.0, wind=42.22, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:12:24.941', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:13:07,775 [DEBUG][       Thread-607224][   transport.py][1871] : EOF in transport thread
2025-07-01 14:13:07,860 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:13:07,869 [DEBUG][       Thread-607227][   transport.py][1871] : starting thread (client mode): 0x82b1f30
2025-07-01 14:13:07,869 [DEBUG][       Thread-607227][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:13:07,885 [DEBUG][       Thread-607227][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:13:07,885 [ INFO][       Thread-607227][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:13:07,893 [DEBUG][       Thread-607227][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:13:07,893 [DEBUG][       Thread-607227][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:13:07,893 [DEBUG][       Thread-607227][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:13:07,893 [DEBUG][       Thread-607227][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:13:07,893 [DEBUG][       Thread-607227][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:13:07,893 [DEBUG][       Thread-607227][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:13:07,893 [DEBUG][       Thread-607227][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:13:07,893 [DEBUG][       Thread-607227][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:13:07,893 [DEBUG][       Thread-607227][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:13:07,893 [DEBUG][       Thread-607227][   transport.py][1871] : client lang: <none>
2025-07-01 14:13:07,893 [DEBUG][       Thread-607227][   transport.py][1871] : server lang: <none>
2025-07-01 14:13:07,893 [DEBUG][       Thread-607227][   transport.py][1871] : kex follows: False
2025-07-01 14:13:07,893 [DEBUG][       Thread-607227][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:13:07,893 [DEBUG][       Thread-607227][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:13:07,893 [DEBUG][       Thread-607227][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:13:07,893 [DEBUG][       Thread-607227][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:13:07,893 [DEBUG][       Thread-607227][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:13:07,893 [DEBUG][       Thread-607227][   transport.py][1871] : Compression: none
2025-07-01 14:13:07,893 [DEBUG][       Thread-607227][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:13:07,950 [DEBUG][       Thread-607227][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:13:07,951 [DEBUG][       Thread-607227][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:13:07,951 [DEBUG][       Thread-607227][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:13:07,952 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:13:07,952 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:13:08,006 [DEBUG][       Thread-607227][   transport.py][1871] : userauth is OK
2025-07-01 14:13:08,006 [DEBUG][       Thread-607227][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:13:08,007 [DEBUG][       Thread-607227][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:13:08,007 [DEBUG][       Thread-607227][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:13:08,007 [DEBUG][       Thread-607227][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:13:08,026 [ INFO][       Thread-607227][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:13:08,026 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:13:08,027 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:13:08,425 [DEBUG][Thread-607229 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:13:09,108 [DEBUG][       Thread-607227][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:13:09,108 [DEBUG][       Thread-607227][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:13:09,156 [DEBUG][       Thread-607227][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:13:09,156 [DEBUG][       Thread-607227][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:13:09,166 [DEBUG][       Thread-607227][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:13:09,175 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:13:09,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-07-01 14:13:09,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-07-01 14:13:09,194 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:13:09,194 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:13:09,195 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:13:09,203 [DEBUG][       Thread-607227][   transport.py][1871] : EOF in transport thread
2025-07-01 14:13:17,447 [DEBUG][Thread-607230 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:13:19,205 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:13:19,205 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:13:19,205 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:13:19,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-07-01 14:13:19,689 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 12, 51), 11.64, 45.5, 0.0, 42.22, 13.94, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:13:19,689 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:12:51
2025-07-01 14:13:19,774 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:13:19,779 [DEBUG][       Thread-607231][   transport.py][1871] : starting thread (client mode): 0x81739a0
2025-07-01 14:13:19,779 [DEBUG][       Thread-607231][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:13:19,799 [DEBUG][       Thread-607231][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:13:19,800 [ INFO][       Thread-607231][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:13:19,801 [DEBUG][       Thread-607231][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:13:19,801 [DEBUG][       Thread-607231][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:13:19,801 [DEBUG][       Thread-607231][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:13:19,801 [DEBUG][       Thread-607231][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:13:19,801 [DEBUG][       Thread-607231][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:13:19,801 [DEBUG][       Thread-607231][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:13:19,801 [DEBUG][       Thread-607231][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:13:19,801 [DEBUG][       Thread-607231][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:13:19,801 [DEBUG][       Thread-607231][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:13:19,801 [DEBUG][       Thread-607231][   transport.py][1871] : client lang: <none>
2025-07-01 14:13:19,801 [DEBUG][       Thread-607231][   transport.py][1871] : server lang: <none>
2025-07-01 14:13:19,801 [DEBUG][       Thread-607231][   transport.py][1871] : kex follows: False
2025-07-01 14:13:19,801 [DEBUG][       Thread-607231][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:13:19,801 [DEBUG][       Thread-607231][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:13:19,801 [DEBUG][       Thread-607231][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:13:19,802 [DEBUG][       Thread-607231][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:13:19,802 [DEBUG][       Thread-607231][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:13:19,802 [DEBUG][       Thread-607231][   transport.py][1871] : Compression: none
2025-07-01 14:13:19,802 [DEBUG][       Thread-607231][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:13:19,810 [DEBUG][       Thread-607231][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:13:19,810 [DEBUG][       Thread-607231][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:13:19,811 [DEBUG][       Thread-607231][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:13:19,811 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:13:19,811 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:13:19,812 [DEBUG][       Thread-607231][   transport.py][1871] : userauth is OK
2025-07-01 14:13:19,825 [ INFO][       Thread-607231][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:13:19,825 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:13:20,490 [DEBUG][       Thread-607231][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:13:20,490 [DEBUG][       Thread-607231][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:13:20,533 [DEBUG][       Thread-607231][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:13:20,533 [DEBUG][       Thread-607231][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:13:20,537 [DEBUG][       Thread-607231][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:13:20,549 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:13:20,549 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:13:20,551 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:13:20,553 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:13:20,558 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:13:20,560 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:13:20,560 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:13:20,561 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:13:20,561 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.508622 -999.00  +13.70  34.48     50   +3.60 1 2 2 1 1   887    0 10.71 22.01 ----- 38.7 34.5 13.2 46.9 16.4 -22.4 15.7 -22.4 15.8 -20.5 16.5 -20.5
2025-07-01 14:13:20,561 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:13:20,561 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:13:20,561 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.508622
2025-07-01 14:13:20,562 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:13:20,562 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:13:20,562 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:13:20,562 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:13:20,562 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:13:20,562 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:12:51', tmtdew=11.64, humidity=45.5, cloud=0.0, wind=42.22, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:12:24.941', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:13:20,564 [DEBUG][       Thread-607231][   transport.py][1871] : EOF in transport thread
2025-07-01 14:13:20,646 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:13:20,657 [DEBUG][       Thread-607234][   transport.py][1871] : starting thread (client mode): 0x81c9720
2025-07-01 14:13:20,657 [DEBUG][       Thread-607234][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:13:20,676 [DEBUG][       Thread-607234][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:13:20,677 [ INFO][       Thread-607234][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:13:20,684 [DEBUG][       Thread-607234][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:13:20,684 [DEBUG][       Thread-607234][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:13:20,685 [DEBUG][       Thread-607234][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:13:20,685 [DEBUG][       Thread-607234][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:13:20,685 [DEBUG][       Thread-607234][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:13:20,685 [DEBUG][       Thread-607234][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:13:20,685 [DEBUG][       Thread-607234][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:13:20,685 [DEBUG][       Thread-607234][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:13:20,685 [DEBUG][       Thread-607234][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:13:20,685 [DEBUG][       Thread-607234][   transport.py][1871] : client lang: <none>
2025-07-01 14:13:20,685 [DEBUG][       Thread-607234][   transport.py][1871] : server lang: <none>
2025-07-01 14:13:20,685 [DEBUG][       Thread-607234][   transport.py][1871] : kex follows: False
2025-07-01 14:13:20,685 [DEBUG][       Thread-607234][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:13:20,685 [DEBUG][       Thread-607234][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:13:20,685 [DEBUG][       Thread-607234][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:13:20,685 [DEBUG][       Thread-607234][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:13:20,685 [DEBUG][       Thread-607234][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:13:20,685 [DEBUG][       Thread-607234][   transport.py][1871] : Compression: none
2025-07-01 14:13:20,686 [DEBUG][       Thread-607234][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:13:20,742 [DEBUG][       Thread-607234][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:13:20,743 [DEBUG][       Thread-607234][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:13:20,743 [DEBUG][       Thread-607234][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:13:20,744 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:13:20,744 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:13:20,806 [DEBUG][       Thread-607234][   transport.py][1871] : userauth is OK
2025-07-01 14:13:20,807 [DEBUG][       Thread-607234][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:13:20,807 [DEBUG][       Thread-607234][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:13:20,807 [DEBUG][       Thread-607234][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:13:20,807 [DEBUG][       Thread-607234][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:13:20,826 [ INFO][       Thread-607234][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:13:20,826 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:13:20,827 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:13:21,938 [DEBUG][       Thread-607234][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:13:21,938 [DEBUG][       Thread-607234][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:13:21,989 [DEBUG][       Thread-607234][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:13:21,989 [DEBUG][       Thread-607234][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:13:22,004 [DEBUG][       Thread-607234][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:13:22,012 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:13:22,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-07-01 14:13:22,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-07-01 14:13:22,031 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:13:22,031 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:13:22,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:13:22,039 [DEBUG][       Thread-607234][   transport.py][1871] : EOF in transport thread
2025-07-01 14:13:26,467 [DEBUG][Thread-607236 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:13:30,751 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:13:30,752 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:13:32,040 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:13:32,040 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:13:32,040 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:13:32,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-07-01 14:13:32,550 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 13, 23), 11.56, 45.76, 0.0, 39.68, 13.8, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:13:32,551 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:13:23
2025-07-01 14:13:32,640 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:13:32,644 [DEBUG][       Thread-607237][   transport.py][1871] : starting thread (client mode): 0x75a93c0
2025-07-01 14:13:32,644 [DEBUG][       Thread-607237][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:13:32,664 [DEBUG][       Thread-607237][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:13:32,664 [ INFO][       Thread-607237][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:13:32,667 [DEBUG][       Thread-607237][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:13:32,667 [DEBUG][       Thread-607237][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:13:32,667 [DEBUG][       Thread-607237][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:13:32,667 [DEBUG][       Thread-607237][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:13:32,667 [DEBUG][       Thread-607237][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:13:32,667 [DEBUG][       Thread-607237][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:13:32,667 [DEBUG][       Thread-607237][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:13:32,667 [DEBUG][       Thread-607237][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:13:32,667 [DEBUG][       Thread-607237][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:13:32,667 [DEBUG][       Thread-607237][   transport.py][1871] : client lang: <none>
2025-07-01 14:13:32,667 [DEBUG][       Thread-607237][   transport.py][1871] : server lang: <none>
2025-07-01 14:13:32,667 [DEBUG][       Thread-607237][   transport.py][1871] : kex follows: False
2025-07-01 14:13:32,667 [DEBUG][       Thread-607237][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:13:32,667 [DEBUG][       Thread-607237][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:13:32,667 [DEBUG][       Thread-607237][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:13:32,667 [DEBUG][       Thread-607237][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:13:32,667 [DEBUG][       Thread-607237][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:13:32,667 [DEBUG][       Thread-607237][   transport.py][1871] : Compression: none
2025-07-01 14:13:32,667 [DEBUG][       Thread-607237][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:13:32,681 [DEBUG][       Thread-607237][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:13:32,681 [DEBUG][       Thread-607237][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:13:32,681 [DEBUG][       Thread-607237][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:13:32,681 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:13:32,681 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:13:32,682 [DEBUG][       Thread-607237][   transport.py][1871] : userauth is OK
2025-07-01 14:13:32,694 [ INFO][       Thread-607237][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:13:32,694 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:13:33,352 [DEBUG][       Thread-607237][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:13:33,353 [DEBUG][       Thread-607237][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:13:33,397 [DEBUG][       Thread-607237][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:13:33,397 [DEBUG][       Thread-607237][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:13:33,399 [DEBUG][       Thread-607237][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:13:33,411 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:13:33,411 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:13:33,412 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:13:33,413 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:13:33,416 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:13:33,417 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:13:33,417 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:13:33,417 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:13:33,417 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.508969 -999.00  +13.60  32.80     51   +3.60 1 2 2 1 1   887    0 10.50 19.96 ----- 33.6 32.8 26.2 53.9 16.3 -22.5 15.6 -22.9 15.8 -20.1 16.5 -21.2
2025-07-01 14:13:33,417 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:13:33,417 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:13:33,417 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.508969
2025-07-01 14:13:33,417 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:13:33,418 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:13:33,418 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:13:33,418 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:13:33,418 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:13:33,418 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:13:23', tmtdew=11.56, humidity=45.76, cloud=0.0, wind=39.68, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:12:54.922', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:13:33,419 [DEBUG][       Thread-607237][   transport.py][1871] : EOF in transport thread
2025-07-01 14:13:33,492 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:13:34,197 [DEBUG][Thread-607240 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:13:35,485 [DEBUG][Thread-607241 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:13:44,514 [DEBUG][Thread-607242 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:13:53,537 [DEBUG][Thread-607243 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:14:02,558 [DEBUG][Thread-607244 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:14:11,576 [DEBUG][Thread-607245 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:14:20,594 [DEBUG][Thread-607246 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:14:29,619 [DEBUG][Thread-607247 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:14:30,890 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:14:30,891 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:14:34,249 [DEBUG][Thread-607248 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:14:38,641 [DEBUG][Thread-607249 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:14:47,663 [DEBUG][Thread-607250 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:14:56,683 [DEBUG][Thread-607251 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:15:05,705 [DEBUG][Thread-607252 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:15:14,727 [DEBUG][Thread-607253 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:15:23,752 [DEBUG][Thread-607254 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:15:31,028 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:15:31,029 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:15:32,771 [DEBUG][Thread-607255 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:15:34,301 [DEBUG][Thread-607256 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:15:41,792 [DEBUG][Thread-607257 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:15:42,868 [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-07-01 14:15:50,815 [DEBUG][Thread-607258 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:15:52,872 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:15:52,872 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:15:52,872 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:15:52,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-07-01 14:15:53,386 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 15, 30), 11.27, 46.44, 0.0, 41.25, 13.74, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:15:53,386 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:15:30
2025-07-01 14:15:53,472 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:15:53,476 [DEBUG][       Thread-607259][   transport.py][1871] : starting thread (client mode): 0x81c8af0
2025-07-01 14:15:53,476 [DEBUG][       Thread-607259][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:15:53,496 [DEBUG][       Thread-607259][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:15:53,496 [ INFO][       Thread-607259][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:15:53,497 [DEBUG][       Thread-607259][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:15:53,497 [DEBUG][       Thread-607259][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:15:53,497 [DEBUG][       Thread-607259][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:15:53,497 [DEBUG][       Thread-607259][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:15:53,497 [DEBUG][       Thread-607259][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:15:53,497 [DEBUG][       Thread-607259][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:15:53,497 [DEBUG][       Thread-607259][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:15:53,497 [DEBUG][       Thread-607259][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:15:53,497 [DEBUG][       Thread-607259][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:15:53,497 [DEBUG][       Thread-607259][   transport.py][1871] : client lang: <none>
2025-07-01 14:15:53,497 [DEBUG][       Thread-607259][   transport.py][1871] : server lang: <none>
2025-07-01 14:15:53,498 [DEBUG][       Thread-607259][   transport.py][1871] : kex follows: False
2025-07-01 14:15:53,498 [DEBUG][       Thread-607259][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:15:53,498 [DEBUG][       Thread-607259][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:15:53,498 [DEBUG][       Thread-607259][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:15:53,498 [DEBUG][       Thread-607259][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:15:53,498 [DEBUG][       Thread-607259][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:15:53,498 [DEBUG][       Thread-607259][   transport.py][1871] : Compression: none
2025-07-01 14:15:53,498 [DEBUG][       Thread-607259][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:15:53,509 [DEBUG][       Thread-607259][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:15:53,509 [DEBUG][       Thread-607259][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:15:53,510 [DEBUG][       Thread-607259][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:15:53,510 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:15:53,510 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:15:53,511 [DEBUG][       Thread-607259][   transport.py][1871] : userauth is OK
2025-07-01 14:15:53,525 [ INFO][       Thread-607259][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:15:53,525 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:15:54,147 [DEBUG][       Thread-607259][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:15:54,147 [DEBUG][       Thread-607259][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:15:54,189 [DEBUG][       Thread-607259][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:15:54,189 [DEBUG][       Thread-607259][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:15:54,192 [DEBUG][       Thread-607259][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:15:54,204 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:15:54,205 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:15:54,206 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:15:54,208 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:15:54,213 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:15:54,215 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:15:54,215 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:15:54,216 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:15:54,216 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.510705 -999.00  +13.40  40.43     52   +3.70 1 2 2 1 1   887    0 10.41 15.55 ----- 38.0 40.4 40.4 51.1 16.0 -22.0 15.5 -22.0 15.6 -19.5 16.2 -20.1
2025-07-01 14:15:54,216 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:15:54,216 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:15:54,216 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.510705
2025-07-01 14:15:54,217 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:15:54,217 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:15:54,217 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:15:54,217 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:15:54,217 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:15:54,218 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:15:30', tmtdew=11.27, humidity=46.44, cloud=0.0, wind=41.25, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:15:24.912', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:15:54,219 [DEBUG][       Thread-607259][   transport.py][1871] : EOF in transport thread
2025-07-01 14:15:54,301 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:15:54,313 [DEBUG][       Thread-607262][   transport.py][1871] : starting thread (client mode): 0x81e4880
2025-07-01 14:15:54,313 [DEBUG][       Thread-607262][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:15:54,334 [DEBUG][       Thread-607262][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:15:54,334 [ INFO][       Thread-607262][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:15:54,341 [DEBUG][       Thread-607262][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:15:54,342 [DEBUG][       Thread-607262][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:15:54,342 [DEBUG][       Thread-607262][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:15:54,342 [DEBUG][       Thread-607262][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:15:54,342 [DEBUG][       Thread-607262][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:15:54,342 [DEBUG][       Thread-607262][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:15:54,342 [DEBUG][       Thread-607262][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:15:54,342 [DEBUG][       Thread-607262][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:15:54,342 [DEBUG][       Thread-607262][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:15:54,342 [DEBUG][       Thread-607262][   transport.py][1871] : client lang: <none>
2025-07-01 14:15:54,342 [DEBUG][       Thread-607262][   transport.py][1871] : server lang: <none>
2025-07-01 14:15:54,342 [DEBUG][       Thread-607262][   transport.py][1871] : kex follows: False
2025-07-01 14:15:54,342 [DEBUG][       Thread-607262][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:15:54,342 [DEBUG][       Thread-607262][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:15:54,342 [DEBUG][       Thread-607262][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:15:54,343 [DEBUG][       Thread-607262][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:15:54,343 [DEBUG][       Thread-607262][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:15:54,343 [DEBUG][       Thread-607262][   transport.py][1871] : Compression: none
2025-07-01 14:15:54,343 [DEBUG][       Thread-607262][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:15:54,402 [DEBUG][       Thread-607262][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:15:54,402 [DEBUG][       Thread-607262][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:15:54,403 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:15:54,403 [DEBUG][       Thread-607262][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:15:54,404 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:15:54,458 [DEBUG][       Thread-607262][   transport.py][1871] : userauth is OK
2025-07-01 14:15:54,458 [DEBUG][       Thread-607262][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:15:54,458 [DEBUG][       Thread-607262][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:15:54,458 [DEBUG][       Thread-607262][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:15:54,458 [DEBUG][       Thread-607262][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:15:54,477 [ INFO][       Thread-607262][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:15:54,477 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:15:54,478 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:15:55,493 [DEBUG][       Thread-607262][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:15:55,493 [DEBUG][       Thread-607262][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:15:55,548 [DEBUG][       Thread-607262][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:15:55,548 [DEBUG][       Thread-607262][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:15:55,560 [DEBUG][       Thread-607262][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:15:55,569 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:15:55,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-07-01 14:15:55,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-07-01 14:15:55,588 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:15:55,588 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:15:55,588 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:15:55,596 [DEBUG][       Thread-607262][   transport.py][1871] : EOF in transport thread
2025-07-01 14:15:59,837 [DEBUG][Thread-607264 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:16:05,596 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:16:05,596 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:16:05,596 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:16:05,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-07-01 14:16:06,120 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 16, 2), 11.25, 46.46, 0.0, 44.8, 13.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:16:06,121 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:16:02
2025-07-01 14:16:06,214 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:16:06,218 [DEBUG][       Thread-607265][   transport.py][1871] : starting thread (client mode): 0x81d95d0
2025-07-01 14:16:06,218 [DEBUG][       Thread-607265][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:16:06,238 [DEBUG][       Thread-607265][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:16:06,238 [ INFO][       Thread-607265][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:16:06,241 [DEBUG][       Thread-607265][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:16:06,241 [DEBUG][       Thread-607265][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:16:06,241 [DEBUG][       Thread-607265][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:16:06,241 [DEBUG][       Thread-607265][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:16:06,241 [DEBUG][       Thread-607265][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:16:06,241 [DEBUG][       Thread-607265][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:16:06,241 [DEBUG][       Thread-607265][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:16:06,241 [DEBUG][       Thread-607265][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:16:06,241 [DEBUG][       Thread-607265][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:16:06,241 [DEBUG][       Thread-607265][   transport.py][1871] : client lang: <none>
2025-07-01 14:16:06,241 [DEBUG][       Thread-607265][   transport.py][1871] : server lang: <none>
2025-07-01 14:16:06,241 [DEBUG][       Thread-607265][   transport.py][1871] : kex follows: False
2025-07-01 14:16:06,241 [DEBUG][       Thread-607265][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:16:06,241 [DEBUG][       Thread-607265][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:16:06,241 [DEBUG][       Thread-607265][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:16:06,241 [DEBUG][       Thread-607265][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:16:06,241 [DEBUG][       Thread-607265][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:16:06,241 [DEBUG][       Thread-607265][   transport.py][1871] : Compression: none
2025-07-01 14:16:06,241 [DEBUG][       Thread-607265][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:16:06,257 [DEBUG][       Thread-607265][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:16:06,257 [DEBUG][       Thread-607265][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:16:06,257 [DEBUG][       Thread-607265][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:16:06,257 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:16:06,257 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:16:06,258 [DEBUG][       Thread-607265][   transport.py][1871] : userauth is OK
2025-07-01 14:16:06,282 [ INFO][       Thread-607265][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:16:06,282 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:16:06,969 [DEBUG][       Thread-607265][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:16:06,970 [DEBUG][       Thread-607265][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:16:07,012 [DEBUG][       Thread-607265][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:16:07,012 [DEBUG][       Thread-607265][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:16:07,015 [DEBUG][       Thread-607265][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:16:07,027 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:16:07,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:16:07,028 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:16:07,029 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:16:07,032 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:16:07,033 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:16:07,033 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:16:07,033 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:16:07,033 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.510705 -999.00  +13.40  40.43     52   +3.70 1 2 2 1 1   887    0 10.41 15.55 ----- 38.0 40.4 40.4 51.1 16.0 -22.0 15.5 -22.0 15.6 -19.5 16.2 -20.1
2025-07-01 14:16:07,033 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:16:07,033 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:16:07,033 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.510705
2025-07-01 14:16:07,033 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:16:07,033 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:16:07,033 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:16:07,033 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:16:07,033 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:16:07,034 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:16:02', tmtdew=11.25, humidity=46.46, cloud=0.0, wind=44.8, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:15:24.912', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:16:07,034 [DEBUG][       Thread-607265][   transport.py][1871] : EOF in transport thread
2025-07-01 14:16:07,107 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:16:07,117 [DEBUG][       Thread-607268][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 14:16:07,117 [DEBUG][       Thread-607268][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:16:07,132 [DEBUG][       Thread-607268][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:16:07,132 [ INFO][       Thread-607268][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:16:07,139 [DEBUG][       Thread-607268][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:16:07,139 [DEBUG][       Thread-607268][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:16:07,139 [DEBUG][       Thread-607268][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:16:07,139 [DEBUG][       Thread-607268][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:16:07,139 [DEBUG][       Thread-607268][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:16:07,139 [DEBUG][       Thread-607268][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:16:07,139 [DEBUG][       Thread-607268][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:16:07,139 [DEBUG][       Thread-607268][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:16:07,139 [DEBUG][       Thread-607268][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:16:07,139 [DEBUG][       Thread-607268][   transport.py][1871] : client lang: <none>
2025-07-01 14:16:07,139 [DEBUG][       Thread-607268][   transport.py][1871] : server lang: <none>
2025-07-01 14:16:07,139 [DEBUG][       Thread-607268][   transport.py][1871] : kex follows: False
2025-07-01 14:16:07,139 [DEBUG][       Thread-607268][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:16:07,139 [DEBUG][       Thread-607268][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:16:07,139 [DEBUG][       Thread-607268][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:16:07,139 [DEBUG][       Thread-607268][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:16:07,139 [DEBUG][       Thread-607268][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:16:07,139 [DEBUG][       Thread-607268][   transport.py][1871] : Compression: none
2025-07-01 14:16:07,139 [DEBUG][       Thread-607268][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:16:07,196 [DEBUG][       Thread-607268][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:16:07,196 [DEBUG][       Thread-607268][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:16:07,196 [DEBUG][       Thread-607268][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:16:07,196 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:16:07,197 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:16:07,253 [DEBUG][       Thread-607268][   transport.py][1871] : userauth is OK
2025-07-01 14:16:07,253 [DEBUG][       Thread-607268][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:16:07,253 [DEBUG][       Thread-607268][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:16:07,253 [DEBUG][       Thread-607268][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:16:07,253 [DEBUG][       Thread-607268][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:16:07,268 [ INFO][       Thread-607268][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:16:07,268 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:16:07,268 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:16:08,321 [DEBUG][       Thread-607268][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:16:08,322 [DEBUG][       Thread-607268][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:16:08,371 [DEBUG][       Thread-607268][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:16:08,371 [DEBUG][       Thread-607268][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:16:08,379 [DEBUG][       Thread-607268][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:16:08,387 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:16:08,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-07-01 14:16:08,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-07-01 14:16:08,404 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:16:08,404 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:16:08,404 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:16:08,412 [DEBUG][       Thread-607268][   transport.py][1871] : EOF in transport thread
2025-07-01 14:16:08,868 [DEBUG][Thread-607270 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:16:17,893 [DEBUG][Thread-607271 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:16:18,406 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:16:18,406 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:16:18,406 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:16:18,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-07-01 14:16:18,921 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 16, 2), 11.25, 46.46, 0.0, 44.8, 13.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:16:18,921 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:16:02
2025-07-01 14:16:19,006 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:16:19,010 [DEBUG][       Thread-607272][   transport.py][1871] : starting thread (client mode): 0x818c460
2025-07-01 14:16:19,011 [DEBUG][       Thread-607272][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:16:19,030 [DEBUG][       Thread-607272][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:16:19,030 [ INFO][       Thread-607272][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:16:19,033 [DEBUG][       Thread-607272][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:16:19,033 [DEBUG][       Thread-607272][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:16:19,033 [DEBUG][       Thread-607272][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:16:19,033 [DEBUG][       Thread-607272][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:16:19,033 [DEBUG][       Thread-607272][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:16:19,033 [DEBUG][       Thread-607272][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:16:19,033 [DEBUG][       Thread-607272][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:16:19,033 [DEBUG][       Thread-607272][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:16:19,033 [DEBUG][       Thread-607272][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:16:19,033 [DEBUG][       Thread-607272][   transport.py][1871] : client lang: <none>
2025-07-01 14:16:19,033 [DEBUG][       Thread-607272][   transport.py][1871] : server lang: <none>
2025-07-01 14:16:19,033 [DEBUG][       Thread-607272][   transport.py][1871] : kex follows: False
2025-07-01 14:16:19,033 [DEBUG][       Thread-607272][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:16:19,033 [DEBUG][       Thread-607272][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:16:19,033 [DEBUG][       Thread-607272][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:16:19,033 [DEBUG][       Thread-607272][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:16:19,033 [DEBUG][       Thread-607272][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:16:19,034 [DEBUG][       Thread-607272][   transport.py][1871] : Compression: none
2025-07-01 14:16:19,034 [DEBUG][       Thread-607272][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:16:19,049 [DEBUG][       Thread-607272][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:16:19,049 [DEBUG][       Thread-607272][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:16:19,050 [DEBUG][       Thread-607272][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:16:19,050 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:16:19,050 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:16:19,051 [DEBUG][       Thread-607272][   transport.py][1871] : userauth is OK
2025-07-01 14:16:19,076 [ INFO][       Thread-607272][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:16:19,077 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:16:19,765 [DEBUG][       Thread-607272][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:16:19,765 [DEBUG][       Thread-607272][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:16:19,809 [DEBUG][       Thread-607272][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:16:19,809 [DEBUG][       Thread-607272][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:16:19,811 [DEBUG][       Thread-607272][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:16:19,824 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:16:19,824 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:16:19,826 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:16:19,827 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:16:19,832 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:16:19,834 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:16:19,834 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:16:19,835 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:16:19,835 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.511052 -999.00  +13.50  36.95     52   +3.80 1 2 2 1 1   887    0 10.12 13.07 ----- 39.5 37.0 37.6 47.3 16.0 -21.4 15.5 -21.1 15.5 -19.5 16.1 -19.7
2025-07-01 14:16:19,835 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:16:19,835 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:16:19,835 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.511052
2025-07-01 14:16:19,836 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:16:19,836 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:16:19,836 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:16:19,836 [DEBUG][       Thread-607272][   transport.py][1871] : EOF in transport thread
2025-07-01 14:16:19,837 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:16:19,837 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:16:19,837 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:16:02', tmtdew=11.25, humidity=46.46, cloud=0.0, wind=44.8, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:15:54.893', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:16:19,919 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:16:19,936 [DEBUG][       Thread-607275][   transport.py][1871] : starting thread (client mode): 0x82b2aa0
2025-07-01 14:16:19,936 [DEBUG][       Thread-607275][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:16:19,955 [DEBUG][       Thread-607275][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:16:19,956 [ INFO][       Thread-607275][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:16:19,963 [DEBUG][       Thread-607275][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:16:19,964 [DEBUG][       Thread-607275][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:16:19,964 [DEBUG][       Thread-607275][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:16:19,964 [DEBUG][       Thread-607275][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:16:19,964 [DEBUG][       Thread-607275][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:16:19,964 [DEBUG][       Thread-607275][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:16:19,964 [DEBUG][       Thread-607275][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:16:19,964 [DEBUG][       Thread-607275][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:16:19,964 [DEBUG][       Thread-607275][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:16:19,964 [DEBUG][       Thread-607275][   transport.py][1871] : client lang: <none>
2025-07-01 14:16:19,964 [DEBUG][       Thread-607275][   transport.py][1871] : server lang: <none>
2025-07-01 14:16:19,964 [DEBUG][       Thread-607275][   transport.py][1871] : kex follows: False
2025-07-01 14:16:19,964 [DEBUG][       Thread-607275][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:16:19,964 [DEBUG][       Thread-607275][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:16:19,964 [DEBUG][       Thread-607275][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:16:19,964 [DEBUG][       Thread-607275][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:16:19,964 [DEBUG][       Thread-607275][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:16:19,964 [DEBUG][       Thread-607275][   transport.py][1871] : Compression: none
2025-07-01 14:16:19,965 [DEBUG][       Thread-607275][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:16:20,021 [DEBUG][       Thread-607275][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:16:20,021 [DEBUG][       Thread-607275][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:16:20,022 [DEBUG][       Thread-607275][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:16:20,022 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:16:20,022 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:16:20,077 [DEBUG][       Thread-607275][   transport.py][1871] : userauth is OK
2025-07-01 14:16:20,077 [DEBUG][       Thread-607275][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:16:20,078 [DEBUG][       Thread-607275][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:16:20,078 [DEBUG][       Thread-607275][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:16:20,078 [DEBUG][       Thread-607275][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:16:20,096 [ INFO][       Thread-607275][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:16:20,096 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:16:20,097 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:16:21,125 [DEBUG][       Thread-607275][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:16:21,125 [DEBUG][       Thread-607275][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:16:21,183 [DEBUG][       Thread-607275][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:16:21,183 [DEBUG][       Thread-607275][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:16:21,193 [DEBUG][       Thread-607275][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:16:21,207 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:16:21,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-07-01 14:16:21,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-07-01 14:16:21,234 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:16:21,234 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:16:21,234 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:16:21,242 [DEBUG][       Thread-607275][   transport.py][1871] : EOF in transport thread
2025-07-01 14:16:26,916 [DEBUG][Thread-607277 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:16:31,165 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:16:31,167 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:16:31,245 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:16:31,245 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:16:31,245 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:16:31,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-07-01 14:16:31,755 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 16, 2), 11.25, 46.46, 0.0, 44.8, 13.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:16:31,755 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:16:02
2025-07-01 14:16:31,841 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:16:31,845 [DEBUG][       Thread-607278][   transport.py][1871] : starting thread (client mode): 0x8171d20
2025-07-01 14:16:31,845 [DEBUG][       Thread-607278][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:16:31,865 [DEBUG][       Thread-607278][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:16:31,866 [ INFO][       Thread-607278][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:16:31,869 [DEBUG][       Thread-607278][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:16:31,869 [DEBUG][       Thread-607278][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:16:31,869 [DEBUG][       Thread-607278][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:16:31,869 [DEBUG][       Thread-607278][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:16:31,869 [DEBUG][       Thread-607278][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:16:31,869 [DEBUG][       Thread-607278][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:16:31,869 [DEBUG][       Thread-607278][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:16:31,869 [DEBUG][       Thread-607278][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:16:31,869 [DEBUG][       Thread-607278][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:16:31,869 [DEBUG][       Thread-607278][   transport.py][1871] : client lang: <none>
2025-07-01 14:16:31,869 [DEBUG][       Thread-607278][   transport.py][1871] : server lang: <none>
2025-07-01 14:16:31,869 [DEBUG][       Thread-607278][   transport.py][1871] : kex follows: False
2025-07-01 14:16:31,869 [DEBUG][       Thread-607278][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:16:31,869 [DEBUG][       Thread-607278][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:16:31,869 [DEBUG][       Thread-607278][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:16:31,869 [DEBUG][       Thread-607278][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:16:31,869 [DEBUG][       Thread-607278][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:16:31,869 [DEBUG][       Thread-607278][   transport.py][1871] : Compression: none
2025-07-01 14:16:31,869 [DEBUG][       Thread-607278][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:16:31,886 [DEBUG][       Thread-607278][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:16:31,887 [DEBUG][       Thread-607278][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:16:31,887 [DEBUG][       Thread-607278][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:16:31,887 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:16:31,887 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:16:31,889 [DEBUG][       Thread-607278][   transport.py][1871] : userauth is OK
2025-07-01 14:16:31,902 [ INFO][       Thread-607278][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:16:31,903 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:16:32,539 [DEBUG][       Thread-607278][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:16:32,540 [DEBUG][       Thread-607278][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:16:32,581 [DEBUG][       Thread-607278][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:16:32,581 [DEBUG][       Thread-607278][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:16:32,585 [DEBUG][       Thread-607278][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:16:32,598 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:16:32,599 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:16:32,601 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:16:32,602 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:16:32,607 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:16:32,609 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:16:32,609 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:16:32,610 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:16:32,610 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.511052 -999.00  +13.50  36.95     52   +3.80 1 2 2 1 1   887    0 10.12 13.07 ----- 39.5 37.0 37.6 47.3 16.0 -21.4 15.5 -21.1 15.5 -19.5 16.1 -19.7
2025-07-01 14:16:32,610 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:16:32,610 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:16:32,610 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.511052
2025-07-01 14:16:32,611 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:16:32,611 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:16:32,611 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:16:32,611 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:16:32,611 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:16:32,612 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:16:02', tmtdew=11.25, humidity=46.46, cloud=0.0, wind=44.8, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:15:54.893', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:16:32,613 [DEBUG][       Thread-607278][   transport.py][1871] : EOF in transport thread
2025-07-01 14:16:32,695 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:16:32,708 [DEBUG][       Thread-607281][   transport.py][1871] : starting thread (client mode): 0x8107490
2025-07-01 14:16:32,708 [DEBUG][       Thread-607281][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:16:32,724 [DEBUG][       Thread-607281][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:16:32,724 [ INFO][       Thread-607281][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:16:32,733 [DEBUG][       Thread-607281][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:16:32,733 [DEBUG][       Thread-607281][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:16:32,733 [DEBUG][       Thread-607281][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:16:32,734 [DEBUG][       Thread-607281][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:16:32,734 [DEBUG][       Thread-607281][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:16:32,734 [DEBUG][       Thread-607281][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:16:32,734 [DEBUG][       Thread-607281][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:16:32,734 [DEBUG][       Thread-607281][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:16:32,734 [DEBUG][       Thread-607281][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:16:32,734 [DEBUG][       Thread-607281][   transport.py][1871] : client lang: <none>
2025-07-01 14:16:32,734 [DEBUG][       Thread-607281][   transport.py][1871] : server lang: <none>
2025-07-01 14:16:32,734 [DEBUG][       Thread-607281][   transport.py][1871] : kex follows: False
2025-07-01 14:16:32,734 [DEBUG][       Thread-607281][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:16:32,734 [DEBUG][       Thread-607281][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:16:32,734 [DEBUG][       Thread-607281][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:16:32,734 [DEBUG][       Thread-607281][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:16:32,734 [DEBUG][       Thread-607281][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:16:32,734 [DEBUG][       Thread-607281][   transport.py][1871] : Compression: none
2025-07-01 14:16:32,734 [DEBUG][       Thread-607281][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:16:32,790 [DEBUG][       Thread-607281][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:16:32,790 [DEBUG][       Thread-607281][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:16:32,791 [DEBUG][       Thread-607281][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:16:32,791 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:16:32,792 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:16:32,846 [DEBUG][       Thread-607281][   transport.py][1871] : userauth is OK
2025-07-01 14:16:32,846 [DEBUG][       Thread-607281][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:16:32,846 [DEBUG][       Thread-607281][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:16:32,846 [DEBUG][       Thread-607281][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:16:32,846 [DEBUG][       Thread-607281][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:16:32,865 [ INFO][       Thread-607281][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:16:32,866 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:16:32,866 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:16:33,881 [DEBUG][       Thread-607281][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:16:33,881 [DEBUG][       Thread-607281][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:16:33,934 [DEBUG][       Thread-607281][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:16:33,935 [DEBUG][       Thread-607281][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:16:33,945 [DEBUG][       Thread-607281][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:16:33,958 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:16:33,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-07-01 14:16:33,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') -> 00000000
2025-07-01 14:16:33,980 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:16:33,980 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:16:33,980 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:16:33,989 [DEBUG][       Thread-607281][   transport.py][1871] : EOF in transport thread
2025-07-01 14:16:34,353 [DEBUG][Thread-607283 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:16:35,935 [DEBUG][Thread-607284 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:16:43,988 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:16:43,988 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:16:43,988 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:16:43,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-07-01 14:16:44,526 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 16, 33), 11.18, 46.92, 0.0, 32.06, 13.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:16:44,526 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:16:33
2025-07-01 14:16:44,619 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:16:44,623 [DEBUG][       Thread-607285][   transport.py][1871] : starting thread (client mode): 0x8171e10
2025-07-01 14:16:44,623 [DEBUG][       Thread-607285][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:16:44,640 [DEBUG][       Thread-607285][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:16:44,640 [ INFO][       Thread-607285][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:16:44,644 [DEBUG][       Thread-607285][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:16:44,644 [DEBUG][       Thread-607285][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:16:44,644 [DEBUG][       Thread-607285][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:16:44,644 [DEBUG][       Thread-607285][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:16:44,644 [DEBUG][       Thread-607285][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:16:44,644 [DEBUG][       Thread-607285][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:16:44,644 [DEBUG][       Thread-607285][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:16:44,644 [DEBUG][       Thread-607285][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:16:44,644 [DEBUG][       Thread-607285][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:16:44,644 [DEBUG][       Thread-607285][   transport.py][1871] : client lang: <none>
2025-07-01 14:16:44,644 [DEBUG][       Thread-607285][   transport.py][1871] : server lang: <none>
2025-07-01 14:16:44,644 [DEBUG][       Thread-607285][   transport.py][1871] : kex follows: False
2025-07-01 14:16:44,644 [DEBUG][       Thread-607285][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:16:44,644 [DEBUG][       Thread-607285][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:16:44,644 [DEBUG][       Thread-607285][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:16:44,644 [DEBUG][       Thread-607285][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:16:44,644 [DEBUG][       Thread-607285][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:16:44,644 [DEBUG][       Thread-607285][   transport.py][1871] : Compression: none
2025-07-01 14:16:44,644 [DEBUG][       Thread-607285][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:16:44,660 [DEBUG][       Thread-607285][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:16:44,660 [DEBUG][       Thread-607285][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:16:44,661 [DEBUG][       Thread-607285][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:16:44,661 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:16:44,661 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:16:44,661 [DEBUG][       Thread-607285][   transport.py][1871] : userauth is OK
2025-07-01 14:16:44,686 [ INFO][       Thread-607285][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:16:44,686 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:16:44,952 [DEBUG][Thread-607287 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:16:45,314 [DEBUG][       Thread-607285][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:16:45,314 [DEBUG][       Thread-607285][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:16:45,356 [DEBUG][       Thread-607285][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:16:45,356 [DEBUG][       Thread-607285][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:16:45,359 [DEBUG][       Thread-607285][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:16:45,374 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:16:45,374 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:16:45,376 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:16:45,377 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:16:45,380 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:16:45,381 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:16:45,381 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:16:45,381 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:16:45,381 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.511400 -999.00  +13.40  41.30     52   +3.80 1 2 2 1 1   887    0 10.10 10.63 ----- 47.3 41.3 35.8 51.1 16.0 -21.6 15.4 -21.0 15.5 -20.1 16.1 -19.3
2025-07-01 14:16:45,381 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:16:45,381 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:16:45,381 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.511400
2025-07-01 14:16:45,381 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:16:45,382 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:16:45,382 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:16:45,382 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:16:45,382 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:16:45,382 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:16:33', tmtdew=11.18, humidity=46.92, cloud=0.0, wind=32.06, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:16:24.960', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:16:45,382 [DEBUG][       Thread-607285][   transport.py][1871] : EOF in transport thread
2025-07-01 14:16:45,456 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:16:45,465 [DEBUG][       Thread-607289][   transport.py][1871] : starting thread (client mode): 0x8a65e70
2025-07-01 14:16:45,466 [DEBUG][       Thread-607289][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:16:45,480 [DEBUG][       Thread-607289][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:16:45,480 [ INFO][       Thread-607289][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:16:45,488 [DEBUG][       Thread-607289][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:16:45,488 [DEBUG][       Thread-607289][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:16:45,488 [DEBUG][       Thread-607289][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:16:45,488 [DEBUG][       Thread-607289][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:16:45,488 [DEBUG][       Thread-607289][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:16:45,488 [DEBUG][       Thread-607289][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:16:45,488 [DEBUG][       Thread-607289][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:16:45,488 [DEBUG][       Thread-607289][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:16:45,488 [DEBUG][       Thread-607289][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:16:45,488 [DEBUG][       Thread-607289][   transport.py][1871] : client lang: <none>
2025-07-01 14:16:45,488 [DEBUG][       Thread-607289][   transport.py][1871] : server lang: <none>
2025-07-01 14:16:45,488 [DEBUG][       Thread-607289][   transport.py][1871] : kex follows: False
2025-07-01 14:16:45,488 [DEBUG][       Thread-607289][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:16:45,488 [DEBUG][       Thread-607289][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:16:45,488 [DEBUG][       Thread-607289][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:16:45,488 [DEBUG][       Thread-607289][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:16:45,488 [DEBUG][       Thread-607289][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:16:45,488 [DEBUG][       Thread-607289][   transport.py][1871] : Compression: none
2025-07-01 14:16:45,488 [DEBUG][       Thread-607289][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:16:45,544 [DEBUG][       Thread-607289][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:16:45,544 [DEBUG][       Thread-607289][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:16:45,544 [DEBUG][       Thread-607289][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:16:45,545 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:16:45,545 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:16:45,601 [DEBUG][       Thread-607289][   transport.py][1871] : userauth is OK
2025-07-01 14:16:45,601 [DEBUG][       Thread-607289][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:16:45,601 [DEBUG][       Thread-607289][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:16:45,601 [DEBUG][       Thread-607289][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:16:45,601 [DEBUG][       Thread-607289][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:16:45,615 [ INFO][       Thread-607289][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:16:45,616 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:16:45,616 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:16:46,630 [DEBUG][       Thread-607289][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:16:46,631 [DEBUG][       Thread-607289][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:16:46,679 [DEBUG][       Thread-607289][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:16:46,679 [DEBUG][       Thread-607289][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:16:46,688 [DEBUG][       Thread-607289][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:16:46,696 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:16:46,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-07-01 14:16:46,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-07-01 14:16:46,711 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:16:46,711 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:16:46,711 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:16:46,719 [DEBUG][       Thread-607289][   transport.py][1871] : EOF in transport thread
2025-07-01 14:16:53,972 [DEBUG][Thread-607291 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:16:56,722 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:16:56,722 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:16:56,722 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:16:56,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-07-01 14:16:57,248 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 16, 33), 11.18, 46.92, 0.0, 32.06, 13.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:16:57,249 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:16:33
2025-07-01 14:16:57,335 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:16:57,340 [DEBUG][       Thread-607292][   transport.py][1871] : starting thread (client mode): 0x81a7250
2025-07-01 14:16:57,340 [DEBUG][       Thread-607292][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:16:57,361 [DEBUG][       Thread-607292][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:16:57,361 [ INFO][       Thread-607292][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:16:57,364 [DEBUG][       Thread-607292][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:16:57,364 [DEBUG][       Thread-607292][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:16:57,364 [DEBUG][       Thread-607292][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:16:57,364 [DEBUG][       Thread-607292][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:16:57,364 [DEBUG][       Thread-607292][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:16:57,365 [DEBUG][       Thread-607292][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:16:57,365 [DEBUG][       Thread-607292][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:16:57,365 [DEBUG][       Thread-607292][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:16:57,365 [DEBUG][       Thread-607292][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:16:57,365 [DEBUG][       Thread-607292][   transport.py][1871] : client lang: <none>
2025-07-01 14:16:57,365 [DEBUG][       Thread-607292][   transport.py][1871] : server lang: <none>
2025-07-01 14:16:57,365 [DEBUG][       Thread-607292][   transport.py][1871] : kex follows: False
2025-07-01 14:16:57,365 [DEBUG][       Thread-607292][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:16:57,365 [DEBUG][       Thread-607292][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:16:57,365 [DEBUG][       Thread-607292][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:16:57,365 [DEBUG][       Thread-607292][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:16:57,365 [DEBUG][       Thread-607292][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:16:57,365 [DEBUG][       Thread-607292][   transport.py][1871] : Compression: none
2025-07-01 14:16:57,365 [DEBUG][       Thread-607292][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:16:57,374 [DEBUG][       Thread-607292][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:16:57,375 [DEBUG][       Thread-607292][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:16:57,375 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:16:57,375 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:16:57,376 [DEBUG][       Thread-607292][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:16:57,377 [DEBUG][       Thread-607292][   transport.py][1871] : userauth is OK
2025-07-01 14:16:57,402 [ INFO][       Thread-607292][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:16:57,402 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:16:58,047 [DEBUG][       Thread-607292][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:16:58,047 [DEBUG][       Thread-607292][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:16:58,089 [DEBUG][       Thread-607292][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:16:58,089 [DEBUG][       Thread-607292][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:16:58,092 [DEBUG][       Thread-607292][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:16:58,104 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:16:58,105 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:16:58,107 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:16:58,108 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:16:58,114 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:16:58,115 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:16:58,115 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:16:58,116 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:16:58,116 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.511400 -999.00  +13.40  41.30     52   +3.80 1 2 2 1 1   887    0 10.10 10.63 ----- 47.3 41.3 35.8 51.1 16.0 -21.6 15.4 -21.0 15.5 -20.1 16.1 -19.3
2025-07-01 14:16:58,116 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:16:58,116 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:16:58,116 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.511400
2025-07-01 14:16:58,117 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:16:58,117 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:16:58,117 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:16:58,117 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:16:58,118 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:16:58,118 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:16:33', tmtdew=11.18, humidity=46.92, cloud=0.0, wind=32.06, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:16:24.960', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:16:58,119 [DEBUG][       Thread-607292][   transport.py][1871] : EOF in transport thread
2025-07-01 14:16:58,209 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:16:58,220 [DEBUG][       Thread-607295][   transport.py][1871] : starting thread (client mode): 0x8107ac0
2025-07-01 14:16:58,220 [DEBUG][       Thread-607295][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:16:58,235 [DEBUG][       Thread-607295][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:16:58,235 [ INFO][       Thread-607295][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:16:58,243 [DEBUG][       Thread-607295][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:16:58,243 [DEBUG][       Thread-607295][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:16:58,243 [DEBUG][       Thread-607295][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:16:58,243 [DEBUG][       Thread-607295][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:16:58,243 [DEBUG][       Thread-607295][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:16:58,243 [DEBUG][       Thread-607295][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:16:58,243 [DEBUG][       Thread-607295][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:16:58,243 [DEBUG][       Thread-607295][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:16:58,243 [DEBUG][       Thread-607295][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:16:58,243 [DEBUG][       Thread-607295][   transport.py][1871] : client lang: <none>
2025-07-01 14:16:58,243 [DEBUG][       Thread-607295][   transport.py][1871] : server lang: <none>
2025-07-01 14:16:58,243 [DEBUG][       Thread-607295][   transport.py][1871] : kex follows: False
2025-07-01 14:16:58,243 [DEBUG][       Thread-607295][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:16:58,244 [DEBUG][       Thread-607295][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:16:58,244 [DEBUG][       Thread-607295][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:16:58,244 [DEBUG][       Thread-607295][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:16:58,244 [DEBUG][       Thread-607295][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:16:58,244 [DEBUG][       Thread-607295][   transport.py][1871] : Compression: none
2025-07-01 14:16:58,244 [DEBUG][       Thread-607295][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:16:58,301 [DEBUG][       Thread-607295][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:16:58,302 [DEBUG][       Thread-607295][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:16:58,302 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:16:58,303 [DEBUG][       Thread-607295][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:16:58,304 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:16:58,358 [DEBUG][       Thread-607295][   transport.py][1871] : userauth is OK
2025-07-01 14:16:58,358 [DEBUG][       Thread-607295][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:16:58,358 [DEBUG][       Thread-607295][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:16:58,358 [DEBUG][       Thread-607295][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:16:58,358 [DEBUG][       Thread-607295][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:16:58,377 [ INFO][       Thread-607295][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:16:58,378 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:16:58,378 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:16:59,415 [DEBUG][       Thread-607295][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:16:59,416 [DEBUG][       Thread-607295][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:16:59,464 [DEBUG][       Thread-607295][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:16:59,464 [DEBUG][       Thread-607295][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:16:59,473 [DEBUG][       Thread-607295][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:16:59,482 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:16:59,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-07-01 14:16:59,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-07-01 14:16:59,501 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:16:59,501 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:16:59,502 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:16:59,509 [DEBUG][       Thread-607295][   transport.py][1871] : EOF in transport thread
2025-07-01 14:17:03,009 [DEBUG][Thread-607297 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:17:09,512 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:17:09,512 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:17:09,512 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:17:09,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-07-01 14:17:10,039 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 17, 5), 11.17, 46.96, 0.0, 34.92, 13.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:17:10,039 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:17:05
2025-07-01 14:17:10,126 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:17:10,131 [DEBUG][       Thread-607298][   transport.py][1871] : starting thread (client mode): 0x81d8250
2025-07-01 14:17:10,131 [DEBUG][       Thread-607298][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:17:10,152 [DEBUG][       Thread-607298][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:17:10,152 [ INFO][       Thread-607298][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:17:10,155 [DEBUG][       Thread-607298][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:17:10,155 [DEBUG][       Thread-607298][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:17:10,155 [DEBUG][       Thread-607298][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:17:10,155 [DEBUG][       Thread-607298][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:17:10,155 [DEBUG][       Thread-607298][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:17:10,155 [DEBUG][       Thread-607298][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:17:10,155 [DEBUG][       Thread-607298][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:17:10,155 [DEBUG][       Thread-607298][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:17:10,155 [DEBUG][       Thread-607298][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:17:10,155 [DEBUG][       Thread-607298][   transport.py][1871] : client lang: <none>
2025-07-01 14:17:10,155 [DEBUG][       Thread-607298][   transport.py][1871] : server lang: <none>
2025-07-01 14:17:10,155 [DEBUG][       Thread-607298][   transport.py][1871] : kex follows: False
2025-07-01 14:17:10,155 [DEBUG][       Thread-607298][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:17:10,155 [DEBUG][       Thread-607298][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:17:10,155 [DEBUG][       Thread-607298][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:17:10,155 [DEBUG][       Thread-607298][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:17:10,155 [DEBUG][       Thread-607298][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:17:10,155 [DEBUG][       Thread-607298][   transport.py][1871] : Compression: none
2025-07-01 14:17:10,155 [DEBUG][       Thread-607298][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:17:10,171 [DEBUG][       Thread-607298][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:17:10,171 [DEBUG][       Thread-607298][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:17:10,172 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:17:10,172 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:17:10,172 [DEBUG][       Thread-607298][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:17:10,173 [DEBUG][       Thread-607298][   transport.py][1871] : userauth is OK
2025-07-01 14:17:10,197 [ INFO][       Thread-607298][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:17:10,198 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:17:10,825 [DEBUG][       Thread-607298][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:17:10,826 [DEBUG][       Thread-607298][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:17:10,869 [DEBUG][       Thread-607298][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:17:10,869 [DEBUG][       Thread-607298][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:17:10,872 [DEBUG][       Thread-607298][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:17:10,886 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:17:10,886 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:17:10,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:17:10,890 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:17:10,896 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:17:10,897 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:17:10,898 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:17:10,898 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:17:10,899 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.511400 -999.00  +13.40  41.30     52   +3.80 1 2 2 1 1   887    0 10.10 10.63 ----- 47.3 41.3 35.8 51.1 16.0 -21.6 15.4 -21.0 15.5 -20.1 16.1 -19.3
2025-07-01 14:17:10,899 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:17:10,899 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:17:10,899 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.511400
2025-07-01 14:17:10,899 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:17:10,900 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:17:10,900 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:17:10,900 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:17:10,900 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:17:10,900 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:17:05', tmtdew=11.17, humidity=46.96, cloud=0.0, wind=34.92, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:16:24.960', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:17:10,901 [DEBUG][       Thread-607298][   transport.py][1871] : EOF in transport thread
2025-07-01 14:17:10,995 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:17:11,005 [DEBUG][       Thread-607301][   transport.py][1871] : starting thread (client mode): 0x75abd90
2025-07-01 14:17:11,005 [DEBUG][       Thread-607301][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:17:11,021 [DEBUG][       Thread-607301][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:17:11,021 [ INFO][       Thread-607301][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:17:11,028 [DEBUG][       Thread-607301][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:17:11,028 [DEBUG][       Thread-607301][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:17:11,028 [DEBUG][       Thread-607301][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:17:11,029 [DEBUG][       Thread-607301][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:17:11,029 [DEBUG][       Thread-607301][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:17:11,029 [DEBUG][       Thread-607301][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:17:11,029 [DEBUG][       Thread-607301][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:17:11,029 [DEBUG][       Thread-607301][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:17:11,029 [DEBUG][       Thread-607301][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:17:11,029 [DEBUG][       Thread-607301][   transport.py][1871] : client lang: <none>
2025-07-01 14:17:11,029 [DEBUG][       Thread-607301][   transport.py][1871] : server lang: <none>
2025-07-01 14:17:11,029 [DEBUG][       Thread-607301][   transport.py][1871] : kex follows: False
2025-07-01 14:17:11,029 [DEBUG][       Thread-607301][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:17:11,029 [DEBUG][       Thread-607301][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:17:11,029 [DEBUG][       Thread-607301][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:17:11,029 [DEBUG][       Thread-607301][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:17:11,029 [DEBUG][       Thread-607301][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:17:11,029 [DEBUG][       Thread-607301][   transport.py][1871] : Compression: none
2025-07-01 14:17:11,029 [DEBUG][       Thread-607301][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:17:11,090 [DEBUG][       Thread-607301][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:17:11,090 [DEBUG][       Thread-607301][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:17:11,091 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:17:11,092 [DEBUG][       Thread-607301][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:17:11,092 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:17:11,146 [DEBUG][       Thread-607301][   transport.py][1871] : userauth is OK
2025-07-01 14:17:11,146 [DEBUG][       Thread-607301][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:17:11,146 [DEBUG][       Thread-607301][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:17:11,146 [DEBUG][       Thread-607301][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:17:11,147 [DEBUG][       Thread-607301][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:17:11,165 [ INFO][       Thread-607301][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:17:11,166 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:17:11,166 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:17:12,029 [DEBUG][Thread-607303 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:17:12,256 [DEBUG][       Thread-607301][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:17:12,257 [DEBUG][       Thread-607301][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:17:12,308 [DEBUG][       Thread-607301][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:17:12,308 [DEBUG][       Thread-607301][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:17:12,318 [DEBUG][       Thread-607301][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:17:12,327 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:17:12,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-07-01 14:17:12,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-07-01 14:17:12,345 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:17:12,345 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:17:12,346 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:17:12,354 [DEBUG][       Thread-607301][   transport.py][1871] : EOF in transport thread
2025-07-01 14:17:21,070 [DEBUG][Thread-607304 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:17:22,356 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:17:22,356 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:17:22,356 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:17:22,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-07-01 14:17:22,886 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 17, 5), 11.17, 46.96, 0.0, 34.92, 13.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:17:22,886 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:17:05
2025-07-01 14:17:22,978 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:17:22,982 [DEBUG][       Thread-607305][   transport.py][1871] : starting thread (client mode): 0x75ab190
2025-07-01 14:17:22,982 [DEBUG][       Thread-607305][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:17:23,001 [DEBUG][       Thread-607305][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:17:23,001 [ INFO][       Thread-607305][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:17:23,004 [DEBUG][       Thread-607305][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:17:23,004 [DEBUG][       Thread-607305][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:17:23,004 [DEBUG][       Thread-607305][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:17:23,004 [DEBUG][       Thread-607305][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:17:23,004 [DEBUG][       Thread-607305][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:17:23,004 [DEBUG][       Thread-607305][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:17:23,004 [DEBUG][       Thread-607305][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:17:23,005 [DEBUG][       Thread-607305][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:17:23,005 [DEBUG][       Thread-607305][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:17:23,005 [DEBUG][       Thread-607305][   transport.py][1871] : client lang: <none>
2025-07-01 14:17:23,005 [DEBUG][       Thread-607305][   transport.py][1871] : server lang: <none>
2025-07-01 14:17:23,005 [DEBUG][       Thread-607305][   transport.py][1871] : kex follows: False
2025-07-01 14:17:23,005 [DEBUG][       Thread-607305][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:17:23,005 [DEBUG][       Thread-607305][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:17:23,005 [DEBUG][       Thread-607305][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:17:23,005 [DEBUG][       Thread-607305][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:17:23,005 [DEBUG][       Thread-607305][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:17:23,005 [DEBUG][       Thread-607305][   transport.py][1871] : Compression: none
2025-07-01 14:17:23,005 [DEBUG][       Thread-607305][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:17:23,020 [DEBUG][       Thread-607305][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:17:23,020 [DEBUG][       Thread-607305][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:17:23,020 [DEBUG][       Thread-607305][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:17:23,020 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:17:23,020 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:17:23,021 [DEBUG][       Thread-607305][   transport.py][1871] : userauth is OK
2025-07-01 14:17:23,033 [ INFO][       Thread-607305][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:17:23,033 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:17:23,665 [DEBUG][       Thread-607305][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:17:23,665 [DEBUG][       Thread-607305][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:17:23,708 [DEBUG][       Thread-607305][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:17:23,708 [DEBUG][       Thread-607305][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:17:23,711 [DEBUG][       Thread-607305][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:17:23,725 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:17:23,725 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:17:23,726 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:17:23,727 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:17:23,729 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:17:23,730 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:17:23,730 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:17:23,730 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:17:23,730 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.511747 -999.00  +13.40  35.59     52   +3.70 1 2 2 1 1   887    0 10.14 9.07 ----- 40.8 35.6 42.2 55.8 16.0 -21.3 15.4 -21.2 15.5 -19.0 16.0 -19.0
2025-07-01 14:17:23,730 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:17:23,730 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:17:23,730 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.511747
2025-07-01 14:17:23,730 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:17:23,731 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:17:23,731 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:17:23,731 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:17:23,731 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:17:23,731 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:17:05', tmtdew=11.17, humidity=46.96, cloud=0.0, wind=34.92, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:16:54.941', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:17:23,731 [DEBUG][       Thread-607305][   transport.py][1871] : EOF in transport thread
2025-07-01 14:17:23,805 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:17:23,821 [DEBUG][       Thread-607308][   transport.py][1871] : starting thread (client mode): 0x82b2aa0
2025-07-01 14:17:23,821 [DEBUG][       Thread-607308][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:17:23,836 [DEBUG][       Thread-607308][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:17:23,836 [ INFO][       Thread-607308][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:17:23,843 [DEBUG][       Thread-607308][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:17:23,843 [DEBUG][       Thread-607308][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:17:23,843 [DEBUG][       Thread-607308][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:17:23,843 [DEBUG][       Thread-607308][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:17:23,843 [DEBUG][       Thread-607308][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:17:23,843 [DEBUG][       Thread-607308][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:17:23,843 [DEBUG][       Thread-607308][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:17:23,843 [DEBUG][       Thread-607308][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:17:23,843 [DEBUG][       Thread-607308][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:17:23,843 [DEBUG][       Thread-607308][   transport.py][1871] : client lang: <none>
2025-07-01 14:17:23,843 [DEBUG][       Thread-607308][   transport.py][1871] : server lang: <none>
2025-07-01 14:17:23,843 [DEBUG][       Thread-607308][   transport.py][1871] : kex follows: False
2025-07-01 14:17:23,843 [DEBUG][       Thread-607308][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:17:23,843 [DEBUG][       Thread-607308][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:17:23,843 [DEBUG][       Thread-607308][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:17:23,843 [DEBUG][       Thread-607308][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:17:23,843 [DEBUG][       Thread-607308][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:17:23,843 [DEBUG][       Thread-607308][   transport.py][1871] : Compression: none
2025-07-01 14:17:23,843 [DEBUG][       Thread-607308][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:17:23,900 [DEBUG][       Thread-607308][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:17:23,900 [DEBUG][       Thread-607308][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:17:23,900 [DEBUG][       Thread-607308][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:17:23,900 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:17:23,900 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:17:23,957 [DEBUG][       Thread-607308][   transport.py][1871] : userauth is OK
2025-07-01 14:17:23,957 [DEBUG][       Thread-607308][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:17:23,957 [DEBUG][       Thread-607308][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:17:23,957 [DEBUG][       Thread-607308][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:17:23,957 [DEBUG][       Thread-607308][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:17:23,971 [ INFO][       Thread-607308][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:17:23,971 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:17:23,971 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:17:24,995 [DEBUG][       Thread-607308][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:17:24,995 [DEBUG][       Thread-607308][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:17:25,043 [DEBUG][       Thread-607308][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:17:25,043 [DEBUG][       Thread-607308][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:17:25,052 [DEBUG][       Thread-607308][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:17:25,060 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:17:25,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-07-01 14:17:25,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-07-01 14:17:25,075 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:17:25,075 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:17:25,076 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:17:25,083 [DEBUG][       Thread-607308][   transport.py][1871] : EOF in transport thread
2025-07-01 14:17:30,091 [DEBUG][Thread-607310 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:17:31,304 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:17:31,306 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:17:34,409 [DEBUG][Thread-607311 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:17:35,086 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:17:35,086 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:17:35,086 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:17:35,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-07-01 14:17:35,602 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 17, 5), 11.17, 46.96, 0.0, 34.92, 13.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:17:35,602 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:17:05
2025-07-01 14:17:35,688 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:17:35,692 [DEBUG][       Thread-607312][   transport.py][1871] : starting thread (client mode): 0x81c9180
2025-07-01 14:17:35,692 [DEBUG][       Thread-607312][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:17:35,713 [DEBUG][       Thread-607312][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:17:35,713 [ INFO][       Thread-607312][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:17:35,716 [DEBUG][       Thread-607312][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:17:35,716 [DEBUG][       Thread-607312][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:17:35,716 [DEBUG][       Thread-607312][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:17:35,716 [DEBUG][       Thread-607312][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:17:35,716 [DEBUG][       Thread-607312][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:17:35,716 [DEBUG][       Thread-607312][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:17:35,716 [DEBUG][       Thread-607312][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:17:35,716 [DEBUG][       Thread-607312][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:17:35,716 [DEBUG][       Thread-607312][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:17:35,716 [DEBUG][       Thread-607312][   transport.py][1871] : client lang: <none>
2025-07-01 14:17:35,716 [DEBUG][       Thread-607312][   transport.py][1871] : server lang: <none>
2025-07-01 14:17:35,716 [DEBUG][       Thread-607312][   transport.py][1871] : kex follows: False
2025-07-01 14:17:35,716 [DEBUG][       Thread-607312][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:17:35,716 [DEBUG][       Thread-607312][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:17:35,716 [DEBUG][       Thread-607312][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:17:35,716 [DEBUG][       Thread-607312][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:17:35,716 [DEBUG][       Thread-607312][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:17:35,717 [DEBUG][       Thread-607312][   transport.py][1871] : Compression: none
2025-07-01 14:17:35,717 [DEBUG][       Thread-607312][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:17:35,733 [DEBUG][       Thread-607312][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:17:35,734 [DEBUG][       Thread-607312][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:17:35,734 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:17:35,735 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:17:35,735 [DEBUG][       Thread-607312][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:17:35,736 [DEBUG][       Thread-607312][   transport.py][1871] : userauth is OK
2025-07-01 14:17:35,748 [ INFO][       Thread-607312][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:17:35,749 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:17:36,352 [DEBUG][       Thread-607312][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:17:36,353 [DEBUG][       Thread-607312][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:17:36,397 [DEBUG][       Thread-607312][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:17:36,397 [DEBUG][       Thread-607312][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:17:36,401 [DEBUG][       Thread-607312][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:17:36,413 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:17:36,413 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:17:36,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:17:36,417 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:17:36,423 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:17:36,425 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:17:36,425 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:17:36,426 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:17:36,426 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.511747 -999.00  +13.40  35.59     52   +3.70 1 2 2 1 1   887    0 10.14 9.07 ----- 40.8 35.6 42.2 55.8 16.0 -21.3 15.4 -21.2 15.5 -19.0 16.0 -19.0
2025-07-01 14:17:36,426 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:17:36,426 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:17:36,426 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.511747
2025-07-01 14:17:36,426 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:17:36,427 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:17:36,427 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:17:36,427 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:17:36,427 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:17:36,427 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:17:05', tmtdew=11.17, humidity=46.96, cloud=0.0, wind=34.92, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:16:54.941', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:17:36,428 [DEBUG][       Thread-607312][   transport.py][1871] : EOF in transport thread
2025-07-01 14:17:36,511 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:17:36,522 [DEBUG][       Thread-607315][   transport.py][1871] : starting thread (client mode): 0x75a9450
2025-07-01 14:17:36,522 [DEBUG][       Thread-607315][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:17:36,538 [DEBUG][       Thread-607315][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:17:36,538 [ INFO][       Thread-607315][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:17:36,545 [DEBUG][       Thread-607315][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:17:36,546 [DEBUG][       Thread-607315][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:17:36,546 [DEBUG][       Thread-607315][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:17:36,546 [DEBUG][       Thread-607315][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:17:36,546 [DEBUG][       Thread-607315][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:17:36,546 [DEBUG][       Thread-607315][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:17:36,546 [DEBUG][       Thread-607315][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:17:36,546 [DEBUG][       Thread-607315][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:17:36,546 [DEBUG][       Thread-607315][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:17:36,546 [DEBUG][       Thread-607315][   transport.py][1871] : client lang: <none>
2025-07-01 14:17:36,546 [DEBUG][       Thread-607315][   transport.py][1871] : server lang: <none>
2025-07-01 14:17:36,546 [DEBUG][       Thread-607315][   transport.py][1871] : kex follows: False
2025-07-01 14:17:36,546 [DEBUG][       Thread-607315][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:17:36,546 [DEBUG][       Thread-607315][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:17:36,546 [DEBUG][       Thread-607315][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:17:36,546 [DEBUG][       Thread-607315][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:17:36,546 [DEBUG][       Thread-607315][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:17:36,546 [DEBUG][       Thread-607315][   transport.py][1871] : Compression: none
2025-07-01 14:17:36,546 [DEBUG][       Thread-607315][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:17:36,609 [DEBUG][       Thread-607315][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:17:36,610 [DEBUG][       Thread-607315][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:17:36,610 [DEBUG][       Thread-607315][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:17:36,611 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:17:36,611 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:17:36,667 [DEBUG][       Thread-607315][   transport.py][1871] : userauth is OK
2025-07-01 14:17:36,667 [DEBUG][       Thread-607315][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:17:36,668 [DEBUG][       Thread-607315][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:17:36,668 [DEBUG][       Thread-607315][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:17:36,668 [DEBUG][       Thread-607315][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:17:36,687 [ INFO][       Thread-607315][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:17:36,687 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:17:36,688 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:17:37,710 [DEBUG][       Thread-607315][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:17:37,710 [DEBUG][       Thread-607315][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:17:37,760 [DEBUG][       Thread-607315][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:17:37,760 [DEBUG][       Thread-607315][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:17:37,769 [DEBUG][       Thread-607315][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:17:37,778 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:17:37,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')
2025-07-01 14:17:37,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-07-01 14:17:37,797 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:17:37,797 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:17:37,797 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:17:37,805 [DEBUG][       Thread-607315][   transport.py][1871] : EOF in transport thread
2025-07-01 14:17:39,112 [DEBUG][Thread-607317 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:17:47,808 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:17:47,808 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:17:47,808 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:17:47,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-07-01 14:17:48,132 [DEBUG][Thread-607318 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:17:48,299 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 17, 37), 11.12, 47.02, 0.0, 44.18, 13.62, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:17:48,299 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:17:37
2025-07-01 14:17:48,384 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:17:48,388 [DEBUG][       Thread-607319][   transport.py][1871] : starting thread (client mode): 0x8105060
2025-07-01 14:17:48,388 [DEBUG][       Thread-607319][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:17:48,401 [DEBUG][       Thread-607319][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:17:48,401 [ INFO][       Thread-607319][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:17:48,403 [DEBUG][       Thread-607319][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:17:48,403 [DEBUG][       Thread-607319][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:17:48,403 [DEBUG][       Thread-607319][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:17:48,403 [DEBUG][       Thread-607319][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:17:48,403 [DEBUG][       Thread-607319][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:17:48,403 [DEBUG][       Thread-607319][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:17:48,403 [DEBUG][       Thread-607319][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:17:48,403 [DEBUG][       Thread-607319][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:17:48,403 [DEBUG][       Thread-607319][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:17:48,403 [DEBUG][       Thread-607319][   transport.py][1871] : client lang: <none>
2025-07-01 14:17:48,403 [DEBUG][       Thread-607319][   transport.py][1871] : server lang: <none>
2025-07-01 14:17:48,403 [DEBUG][       Thread-607319][   transport.py][1871] : kex follows: False
2025-07-01 14:17:48,403 [DEBUG][       Thread-607319][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:17:48,403 [DEBUG][       Thread-607319][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:17:48,403 [DEBUG][       Thread-607319][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:17:48,403 [DEBUG][       Thread-607319][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:17:48,403 [DEBUG][       Thread-607319][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:17:48,403 [DEBUG][       Thread-607319][   transport.py][1871] : Compression: none
2025-07-01 14:17:48,403 [DEBUG][       Thread-607319][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:17:48,412 [DEBUG][       Thread-607319][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:17:48,412 [DEBUG][       Thread-607319][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:17:48,412 [DEBUG][       Thread-607319][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:17:48,412 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:17:48,412 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:17:48,413 [DEBUG][       Thread-607319][   transport.py][1871] : userauth is OK
2025-07-01 14:17:48,426 [ INFO][       Thread-607319][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:17:48,426 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:17:49,045 [DEBUG][       Thread-607319][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:17:49,046 [DEBUG][       Thread-607319][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:17:49,089 [DEBUG][       Thread-607319][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:17:49,089 [DEBUG][       Thread-607319][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:17:49,092 [DEBUG][       Thread-607319][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:17:49,106 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:17:49,106 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:17:49,108 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:17:49,110 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:17:49,116 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:17:49,118 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:17:49,119 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:17:49,119 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:17:49,120 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.511747 -999.00  +13.40  35.59     52   +3.70 1 2 2 1 1   887    0 10.14 9.07 ----- 40.8 35.6 42.2 55.8 16.0 -21.3 15.4 -21.2 15.5 -19.0 16.0 -19.0
2025-07-01 14:17:49,120 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:17:49,120 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:17:49,120 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.511747
2025-07-01 14:17:49,120 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:17:49,121 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:17:49,121 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:17:49,121 [DEBUG][       Thread-607319][   transport.py][1871] : EOF in transport thread
2025-07-01 14:17:49,121 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:17:49,122 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:17:49,122 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:17:37', tmtdew=11.12, humidity=47.02, cloud=0.0, wind=44.18, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:16:54.941', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:17:49,205 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:17:49,215 [DEBUG][       Thread-607322][   transport.py][1871] : starting thread (client mode): 0x81a5300
2025-07-01 14:17:49,215 [DEBUG][       Thread-607322][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:17:49,231 [DEBUG][       Thread-607322][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:17:49,231 [ INFO][       Thread-607322][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:17:49,241 [DEBUG][       Thread-607322][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:17:49,241 [DEBUG][       Thread-607322][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:17:49,241 [DEBUG][       Thread-607322][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:17:49,241 [DEBUG][       Thread-607322][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:17:49,241 [DEBUG][       Thread-607322][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:17:49,241 [DEBUG][       Thread-607322][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:17:49,241 [DEBUG][       Thread-607322][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:17:49,241 [DEBUG][       Thread-607322][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:17:49,241 [DEBUG][       Thread-607322][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:17:49,241 [DEBUG][       Thread-607322][   transport.py][1871] : client lang: <none>
2025-07-01 14:17:49,241 [DEBUG][       Thread-607322][   transport.py][1871] : server lang: <none>
2025-07-01 14:17:49,241 [DEBUG][       Thread-607322][   transport.py][1871] : kex follows: False
2025-07-01 14:17:49,242 [DEBUG][       Thread-607322][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:17:49,242 [DEBUG][       Thread-607322][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:17:49,242 [DEBUG][       Thread-607322][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:17:49,242 [DEBUG][       Thread-607322][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:17:49,242 [DEBUG][       Thread-607322][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:17:49,242 [DEBUG][       Thread-607322][   transport.py][1871] : Compression: none
2025-07-01 14:17:49,242 [DEBUG][       Thread-607322][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:17:49,302 [DEBUG][       Thread-607322][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:17:49,303 [DEBUG][       Thread-607322][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:17:49,303 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:17:49,304 [DEBUG][       Thread-607322][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:17:49,305 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:17:49,362 [DEBUG][       Thread-607322][   transport.py][1871] : userauth is OK
2025-07-01 14:17:49,362 [DEBUG][       Thread-607322][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:17:49,362 [DEBUG][       Thread-607322][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:17:49,362 [DEBUG][       Thread-607322][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:17:49,362 [DEBUG][       Thread-607322][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:17:49,387 [ INFO][       Thread-607322][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:17:49,387 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:17:49,388 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:17:50,460 [DEBUG][       Thread-607322][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:17:50,460 [DEBUG][       Thread-607322][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:17:50,508 [DEBUG][       Thread-607322][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:17:50,508 [DEBUG][       Thread-607322][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:17:50,517 [DEBUG][       Thread-607322][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:17:50,526 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:17:50,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-07-01 14:17:50,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-07-01 14:17:50,544 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:17:50,545 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:17:50,545 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:17:50,553 [DEBUG][       Thread-607322][   transport.py][1871] : EOF in transport thread
2025-07-01 14:17:57,150 [DEBUG][Thread-607324 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:18:00,552 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:18:00,552 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:18:00,552 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:18:00,553 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:18:01,065 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 17, 37), 11.12, 47.02, 0.0, 44.18, 13.62, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:18:01,065 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:17:37
2025-07-01 14:18:01,156 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:18:01,160 [DEBUG][       Thread-607325][   transport.py][1871] : starting thread (client mode): 0x81d8e80
2025-07-01 14:18:01,160 [DEBUG][       Thread-607325][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:18:01,179 [DEBUG][       Thread-607325][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:18:01,179 [ INFO][       Thread-607325][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:18:01,180 [DEBUG][       Thread-607325][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:18:01,180 [DEBUG][       Thread-607325][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:18:01,180 [DEBUG][       Thread-607325][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:18:01,180 [DEBUG][       Thread-607325][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:18:01,180 [DEBUG][       Thread-607325][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:18:01,180 [DEBUG][       Thread-607325][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:18:01,180 [DEBUG][       Thread-607325][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:18:01,180 [DEBUG][       Thread-607325][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:18:01,180 [DEBUG][       Thread-607325][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:18:01,180 [DEBUG][       Thread-607325][   transport.py][1871] : client lang: <none>
2025-07-01 14:18:01,180 [DEBUG][       Thread-607325][   transport.py][1871] : server lang: <none>
2025-07-01 14:18:01,180 [DEBUG][       Thread-607325][   transport.py][1871] : kex follows: False
2025-07-01 14:18:01,180 [DEBUG][       Thread-607325][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:18:01,180 [DEBUG][       Thread-607325][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:18:01,180 [DEBUG][       Thread-607325][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:18:01,180 [DEBUG][       Thread-607325][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:18:01,180 [DEBUG][       Thread-607325][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:18:01,180 [DEBUG][       Thread-607325][   transport.py][1871] : Compression: none
2025-07-01 14:18:01,180 [DEBUG][       Thread-607325][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:18:01,189 [DEBUG][       Thread-607325][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:18:01,189 [DEBUG][       Thread-607325][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:18:01,189 [DEBUG][       Thread-607325][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:18:01,189 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:18:01,189 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:18:01,190 [DEBUG][       Thread-607325][   transport.py][1871] : userauth is OK
2025-07-01 14:18:01,203 [ INFO][       Thread-607325][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:18:01,203 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:18:01,879 [DEBUG][       Thread-607325][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:18:01,879 [DEBUG][       Thread-607325][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:18:01,920 [DEBUG][       Thread-607325][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:18:01,920 [DEBUG][       Thread-607325][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:18:01,922 [DEBUG][       Thread-607325][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:18:01,936 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:18:01,936 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:18:01,937 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:18:01,937 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:18:01,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:18:01,940 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:18:01,940 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:18:01,940 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:18:01,940 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.512094 -999.00  +13.30  44.32     52   +3.70 1 2 2 1 1   887    0 10.18 7.16 ----- 35.9 44.3 42.6 53.1 15.9 -20.7 15.4 -21.3 15.4 -19.9 16.0 -18.7
2025-07-01 14:18:01,940 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:18:01,940 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:18:01,941 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.512094
2025-07-01 14:18:01,941 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:18:01,941 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:18:01,941 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:18:01,941 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:18:01,941 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:18:01,941 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:17:37', tmtdew=11.12, humidity=47.02, cloud=0.0, wind=44.18, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:17:24.922', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:18:01,941 [DEBUG][       Thread-607325][   transport.py][1871] : EOF in transport thread
2025-07-01 14:18:02,016 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:18:02,026 [DEBUG][       Thread-607328][   transport.py][1871] : starting thread (client mode): 0x81d9810
2025-07-01 14:18:02,026 [DEBUG][       Thread-607328][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:18:02,042 [DEBUG][       Thread-607328][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:18:02,042 [ INFO][       Thread-607328][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:18:02,049 [DEBUG][       Thread-607328][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:18:02,049 [DEBUG][       Thread-607328][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:18:02,049 [DEBUG][       Thread-607328][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:18:02,049 [DEBUG][       Thread-607328][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:18:02,049 [DEBUG][       Thread-607328][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:18:02,049 [DEBUG][       Thread-607328][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:18:02,049 [DEBUG][       Thread-607328][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:18:02,049 [DEBUG][       Thread-607328][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:18:02,049 [DEBUG][       Thread-607328][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:18:02,049 [DEBUG][       Thread-607328][   transport.py][1871] : client lang: <none>
2025-07-01 14:18:02,049 [DEBUG][       Thread-607328][   transport.py][1871] : server lang: <none>
2025-07-01 14:18:02,049 [DEBUG][       Thread-607328][   transport.py][1871] : kex follows: False
2025-07-01 14:18:02,049 [DEBUG][       Thread-607328][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:18:02,049 [DEBUG][       Thread-607328][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:18:02,049 [DEBUG][       Thread-607328][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:18:02,049 [DEBUG][       Thread-607328][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:18:02,050 [DEBUG][       Thread-607328][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:18:02,050 [DEBUG][       Thread-607328][   transport.py][1871] : Compression: none
2025-07-01 14:18:02,050 [DEBUG][       Thread-607328][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:18:02,107 [DEBUG][       Thread-607328][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:18:02,108 [DEBUG][       Thread-607328][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:18:02,108 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:18:02,108 [DEBUG][       Thread-607328][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:18:02,108 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:18:02,165 [DEBUG][       Thread-607328][   transport.py][1871] : userauth is OK
2025-07-01 14:18:02,165 [DEBUG][       Thread-607328][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:18:02,165 [DEBUG][       Thread-607328][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:18:02,165 [DEBUG][       Thread-607328][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:18:02,165 [DEBUG][       Thread-607328][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:18:02,179 [ INFO][       Thread-607328][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:18:02,179 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:18:02,179 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:18:03,230 [DEBUG][       Thread-607328][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:18:03,230 [DEBUG][       Thread-607328][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:18:03,279 [DEBUG][       Thread-607328][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:18:03,279 [DEBUG][       Thread-607328][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:18:03,288 [DEBUG][       Thread-607328][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:18:03,296 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:18:03,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-07-01 14:18:03,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-07-01 14:18:03,312 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:18:03,312 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:18:03,312 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:18:03,320 [DEBUG][       Thread-607328][   transport.py][1871] : EOF in transport thread
2025-07-01 14:18:06,172 [DEBUG][Thread-607330 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:18:13,322 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:18:13,323 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:18:13,323 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:18:13,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-07-01 14:18:13,826 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 18, 9), 11.07, 46.95, 0.0, 38.8, 13.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:18:13,826 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:18:09
2025-07-01 14:18:13,911 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:18:13,915 [DEBUG][       Thread-607331][   transport.py][1871] : starting thread (client mode): 0x81a5de0
2025-07-01 14:18:13,915 [DEBUG][       Thread-607331][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:18:13,935 [DEBUG][       Thread-607331][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:18:13,935 [ INFO][       Thread-607331][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:18:13,939 [DEBUG][       Thread-607331][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:18:13,939 [DEBUG][       Thread-607331][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:18:13,939 [DEBUG][       Thread-607331][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:18:13,939 [DEBUG][       Thread-607331][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:18:13,939 [DEBUG][       Thread-607331][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:18:13,940 [DEBUG][       Thread-607331][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:18:13,940 [DEBUG][       Thread-607331][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:18:13,940 [DEBUG][       Thread-607331][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:18:13,940 [DEBUG][       Thread-607331][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:18:13,940 [DEBUG][       Thread-607331][   transport.py][1871] : client lang: <none>
2025-07-01 14:18:13,940 [DEBUG][       Thread-607331][   transport.py][1871] : server lang: <none>
2025-07-01 14:18:13,940 [DEBUG][       Thread-607331][   transport.py][1871] : kex follows: False
2025-07-01 14:18:13,940 [DEBUG][       Thread-607331][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:18:13,940 [DEBUG][       Thread-607331][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:18:13,940 [DEBUG][       Thread-607331][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:18:13,940 [DEBUG][       Thread-607331][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:18:13,940 [DEBUG][       Thread-607331][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:18:13,940 [DEBUG][       Thread-607331][   transport.py][1871] : Compression: none
2025-07-01 14:18:13,940 [DEBUG][       Thread-607331][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:18:13,958 [DEBUG][       Thread-607331][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:18:13,958 [DEBUG][       Thread-607331][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:18:13,959 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:18:13,959 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:18:13,960 [DEBUG][       Thread-607331][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:18:13,961 [DEBUG][       Thread-607331][   transport.py][1871] : userauth is OK
2025-07-01 14:18:13,985 [ INFO][       Thread-607331][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:18:13,986 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:18:14,769 [DEBUG][       Thread-607331][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:18:14,769 [DEBUG][       Thread-607331][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:18:14,813 [DEBUG][       Thread-607331][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:18:14,813 [DEBUG][       Thread-607331][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:18:14,815 [DEBUG][       Thread-607331][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:18:14,829 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:18:14,829 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:18:14,831 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:18:14,832 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:18:14,837 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:18:14,839 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:18:14,839 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:18:14,840 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:18:14,840 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.512094 -999.00  +13.30  44.32     52   +3.70 1 2 2 1 1   887    0 10.18 7.16 ----- 35.9 44.3 42.6 53.1 15.9 -20.7 15.4 -21.3 15.4 -19.9 16.0 -18.7
2025-07-01 14:18:14,840 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:18:14,840 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:18:14,840 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.512094
2025-07-01 14:18:14,840 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:18:14,841 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:18:14,841 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:18:14,841 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:18:14,841 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:18:14,841 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:18:09', tmtdew=11.07, humidity=46.95, cloud=0.0, wind=38.8, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:17:24.922', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:18:14,842 [DEBUG][       Thread-607331][   transport.py][1871] : EOF in transport thread
2025-07-01 14:18:14,925 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:18:14,935 [DEBUG][       Thread-607334][   transport.py][1871] : starting thread (client mode): 0x81e4880
2025-07-01 14:18:14,935 [DEBUG][       Thread-607334][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:18:14,950 [DEBUG][       Thread-607334][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:18:14,950 [ INFO][       Thread-607334][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:18:14,957 [DEBUG][       Thread-607334][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:18:14,957 [DEBUG][       Thread-607334][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:18:14,957 [DEBUG][       Thread-607334][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:18:14,957 [DEBUG][       Thread-607334][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:18:14,957 [DEBUG][       Thread-607334][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:18:14,958 [DEBUG][       Thread-607334][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:18:14,958 [DEBUG][       Thread-607334][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:18:14,958 [DEBUG][       Thread-607334][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:18:14,958 [DEBUG][       Thread-607334][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:18:14,958 [DEBUG][       Thread-607334][   transport.py][1871] : client lang: <none>
2025-07-01 14:18:14,958 [DEBUG][       Thread-607334][   transport.py][1871] : server lang: <none>
2025-07-01 14:18:14,958 [DEBUG][       Thread-607334][   transport.py][1871] : kex follows: False
2025-07-01 14:18:14,958 [DEBUG][       Thread-607334][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:18:14,958 [DEBUG][       Thread-607334][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:18:14,958 [DEBUG][       Thread-607334][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:18:14,958 [DEBUG][       Thread-607334][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:18:14,958 [DEBUG][       Thread-607334][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:18:14,958 [DEBUG][       Thread-607334][   transport.py][1871] : Compression: none
2025-07-01 14:18:14,958 [DEBUG][       Thread-607334][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:18:15,017 [DEBUG][       Thread-607334][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:18:15,018 [DEBUG][       Thread-607334][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:18:15,018 [DEBUG][       Thread-607334][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:18:15,019 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:18:15,019 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:18:15,073 [DEBUG][       Thread-607334][   transport.py][1871] : userauth is OK
2025-07-01 14:18:15,074 [DEBUG][       Thread-607334][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:18:15,074 [DEBUG][       Thread-607334][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:18:15,074 [DEBUG][       Thread-607334][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:18:15,074 [DEBUG][       Thread-607334][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:18:15,093 [ INFO][       Thread-607334][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:18:15,093 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:18:15,094 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:18:15,192 [DEBUG][Thread-607336 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:18:16,223 [DEBUG][       Thread-607334][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:18:16,223 [DEBUG][       Thread-607334][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:18:16,272 [DEBUG][       Thread-607334][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:18:16,272 [DEBUG][       Thread-607334][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:18:16,281 [DEBUG][       Thread-607334][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:18:16,290 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:18:16,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-07-01 14:18:16,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-07-01 14:18:16,308 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:18:16,308 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:18:16,308 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:18:16,316 [DEBUG][       Thread-607334][   transport.py][1871] : EOF in transport thread
2025-07-01 14:18:24,241 [DEBUG][Thread-607337 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:18:26,309 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:18:26,310 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:18:26,310 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:18:26,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-07-01 14:18:26,819 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 18, 9), 11.07, 46.95, 0.0, 38.8, 13.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:18:26,819 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:18:09
2025-07-01 14:18:26,905 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:18:26,912 [DEBUG][       Thread-607338][   transport.py][1871] : starting thread (client mode): 0x8106200
2025-07-01 14:18:26,912 [DEBUG][       Thread-607338][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:18:26,932 [DEBUG][       Thread-607338][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:18:26,932 [ INFO][       Thread-607338][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:18:26,936 [DEBUG][       Thread-607338][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:18:26,936 [DEBUG][       Thread-607338][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:18:26,936 [DEBUG][       Thread-607338][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:18:26,936 [DEBUG][       Thread-607338][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:18:26,936 [DEBUG][       Thread-607338][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:18:26,936 [DEBUG][       Thread-607338][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:18:26,936 [DEBUG][       Thread-607338][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:18:26,936 [DEBUG][       Thread-607338][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:18:26,936 [DEBUG][       Thread-607338][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:18:26,936 [DEBUG][       Thread-607338][   transport.py][1871] : client lang: <none>
2025-07-01 14:18:26,936 [DEBUG][       Thread-607338][   transport.py][1871] : server lang: <none>
2025-07-01 14:18:26,936 [DEBUG][       Thread-607338][   transport.py][1871] : kex follows: False
2025-07-01 14:18:26,936 [DEBUG][       Thread-607338][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:18:26,936 [DEBUG][       Thread-607338][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:18:26,936 [DEBUG][       Thread-607338][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:18:26,936 [DEBUG][       Thread-607338][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:18:26,936 [DEBUG][       Thread-607338][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:18:26,936 [DEBUG][       Thread-607338][   transport.py][1871] : Compression: none
2025-07-01 14:18:26,936 [DEBUG][       Thread-607338][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:18:26,952 [DEBUG][       Thread-607338][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:18:26,953 [DEBUG][       Thread-607338][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:18:26,953 [DEBUG][       Thread-607338][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:18:26,953 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:18:26,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:18:26,954 [DEBUG][       Thread-607338][   transport.py][1871] : userauth is OK
2025-07-01 14:18:26,967 [ INFO][       Thread-607338][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:18:26,968 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:18:27,561 [DEBUG][       Thread-607338][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:18:27,561 [DEBUG][       Thread-607338][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:18:27,605 [DEBUG][       Thread-607338][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:18:27,605 [DEBUG][       Thread-607338][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:18:27,608 [DEBUG][       Thread-607338][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:18:27,613 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:18:27,614 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:18:27,616 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:18:27,617 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:18:27,623 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:18:27,624 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:18:27,625 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:18:27,625 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:18:27,625 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.512441 -999.00  +13.30  43.57     52   +3.80 1 2 2 1 1   887    0 9.82 4.58 ----- 40.8 43.6 42.2 47.6 15.9 -20.7 15.4 -21.2 15.4 -19.5 16.0 -18.8
2025-07-01 14:18:27,625 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:18:27,626 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:18:27,626 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.512441
2025-07-01 14:18:27,626 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:18:27,627 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:18:27,627 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:18:27,627 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:18:27,627 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:18:27,627 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:18:09', tmtdew=11.07, humidity=46.95, cloud=0.0, wind=38.8, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:17:54.902', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:18:27,627 [DEBUG][       Thread-607338][   transport.py][1871] : EOF in transport thread
2025-07-01 14:18:27,711 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:18:27,732 [DEBUG][       Thread-607341][   transport.py][1871] : starting thread (client mode): 0x75a80a0
2025-07-01 14:18:27,732 [DEBUG][       Thread-607341][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:18:27,747 [DEBUG][       Thread-607341][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:18:27,747 [ INFO][       Thread-607341][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:18:27,755 [DEBUG][       Thread-607341][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:18:27,755 [DEBUG][       Thread-607341][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:18:27,755 [DEBUG][       Thread-607341][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:18:27,755 [DEBUG][       Thread-607341][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:18:27,755 [DEBUG][       Thread-607341][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:18:27,755 [DEBUG][       Thread-607341][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:18:27,755 [DEBUG][       Thread-607341][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:18:27,755 [DEBUG][       Thread-607341][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:18:27,755 [DEBUG][       Thread-607341][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:18:27,755 [DEBUG][       Thread-607341][   transport.py][1871] : client lang: <none>
2025-07-01 14:18:27,755 [DEBUG][       Thread-607341][   transport.py][1871] : server lang: <none>
2025-07-01 14:18:27,755 [DEBUG][       Thread-607341][   transport.py][1871] : kex follows: False
2025-07-01 14:18:27,755 [DEBUG][       Thread-607341][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:18:27,756 [DEBUG][       Thread-607341][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:18:27,756 [DEBUG][       Thread-607341][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:18:27,756 [DEBUG][       Thread-607341][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:18:27,756 [DEBUG][       Thread-607341][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:18:27,756 [DEBUG][       Thread-607341][   transport.py][1871] : Compression: none
2025-07-01 14:18:27,756 [DEBUG][       Thread-607341][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:18:27,814 [DEBUG][       Thread-607341][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:18:27,815 [DEBUG][       Thread-607341][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:18:27,816 [DEBUG][       Thread-607341][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:18:27,816 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:18:27,817 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:18:27,874 [DEBUG][       Thread-607341][   transport.py][1871] : userauth is OK
2025-07-01 14:18:27,874 [DEBUG][       Thread-607341][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:18:27,874 [DEBUG][       Thread-607341][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:18:27,874 [DEBUG][       Thread-607341][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:18:27,874 [DEBUG][       Thread-607341][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:18:27,892 [ INFO][       Thread-607341][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:18:27,893 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:18:27,893 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:18:28,916 [DEBUG][       Thread-607341][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:18:28,916 [DEBUG][       Thread-607341][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:18:28,964 [DEBUG][       Thread-607341][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:18:28,964 [DEBUG][       Thread-607341][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:18:28,976 [DEBUG][       Thread-607341][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:18:28,988 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:18: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')
2025-07-01 14:18:28,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-07-01 14:18:29,007 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:18:29,008 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:18:29,009 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:18:29,016 [DEBUG][       Thread-607341][   transport.py][1871] : EOF in transport thread
2025-07-01 14:18:31,446 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:18:31,446 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:18:33,264 [DEBUG][Thread-607343 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:18:34,463 [DEBUG][Thread-607344 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:18:39,016 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:18:39,016 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:18:39,016 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:18:39,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-07-01 14:18:39,515 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 18, 9), 11.07, 46.95, 0.0, 38.8, 13.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:18:39,515 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:18:09
2025-07-01 14:18:39,606 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:18:39,609 [DEBUG][       Thread-607345][   transport.py][1871] : starting thread (client mode): 0x81a7070
2025-07-01 14:18:39,609 [DEBUG][       Thread-607345][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:18:39,632 [DEBUG][       Thread-607345][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:18:39,632 [ INFO][       Thread-607345][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:18:39,635 [DEBUG][       Thread-607345][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:18:39,635 [DEBUG][       Thread-607345][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:18:39,635 [DEBUG][       Thread-607345][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:18:39,635 [DEBUG][       Thread-607345][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:18:39,635 [DEBUG][       Thread-607345][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:18:39,635 [DEBUG][       Thread-607345][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:18:39,635 [DEBUG][       Thread-607345][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:18:39,635 [DEBUG][       Thread-607345][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:18:39,635 [DEBUG][       Thread-607345][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:18:39,635 [DEBUG][       Thread-607345][   transport.py][1871] : client lang: <none>
2025-07-01 14:18:39,635 [DEBUG][       Thread-607345][   transport.py][1871] : server lang: <none>
2025-07-01 14:18:39,635 [DEBUG][       Thread-607345][   transport.py][1871] : kex follows: False
2025-07-01 14:18:39,635 [DEBUG][       Thread-607345][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:18:39,635 [DEBUG][       Thread-607345][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:18:39,635 [DEBUG][       Thread-607345][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:18:39,635 [DEBUG][       Thread-607345][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:18:39,635 [DEBUG][       Thread-607345][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:18:39,635 [DEBUG][       Thread-607345][   transport.py][1871] : Compression: none
2025-07-01 14:18:39,635 [DEBUG][       Thread-607345][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:18:39,650 [DEBUG][       Thread-607345][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:18:39,650 [DEBUG][       Thread-607345][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:18:39,650 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:18:39,650 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:18:39,650 [DEBUG][       Thread-607345][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:18:39,650 [DEBUG][       Thread-607345][   transport.py][1871] : userauth is OK
2025-07-01 14:18:39,676 [ INFO][       Thread-607345][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:18:39,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:18:40,468 [DEBUG][       Thread-607345][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:18:40,468 [DEBUG][       Thread-607345][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:18:40,512 [DEBUG][       Thread-607345][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:18:40,513 [DEBUG][       Thread-607345][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:18:40,515 [DEBUG][       Thread-607345][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:18:40,527 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:18:40,527 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:18:40,528 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:18:40,529 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:18:40,532 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:18:40,533 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:18:40,533 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:18:40,533 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:18:40,533 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.512441 -999.00  +13.30  43.57     52   +3.80 1 2 2 1 1   887    0 9.82 4.58 ----- 40.8 43.6 42.2 47.6 15.9 -20.7 15.4 -21.2 15.4 -19.5 16.0 -18.8
2025-07-01 14:18:40,533 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:18:40,533 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:18:40,533 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.512441
2025-07-01 14:18:40,534 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:18:40,534 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:18:40,534 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:18:40,534 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:18:40,534 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:18:40,534 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:18:09', tmtdew=11.07, humidity=46.95, cloud=0.0, wind=38.8, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:17:54.902', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:18:40,534 [DEBUG][       Thread-607345][   transport.py][1871] : EOF in transport thread
2025-07-01 14:18:40,607 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:18:40,616 [DEBUG][       Thread-607348][   transport.py][1871] : starting thread (client mode): 0x81d80a0
2025-07-01 14:18:40,616 [DEBUG][       Thread-607348][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:18:40,631 [DEBUG][       Thread-607348][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:18:40,631 [ INFO][       Thread-607348][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:18:40,638 [DEBUG][       Thread-607348][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:18:40,638 [DEBUG][       Thread-607348][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:18:40,638 [DEBUG][       Thread-607348][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:18:40,638 [DEBUG][       Thread-607348][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:18:40,638 [DEBUG][       Thread-607348][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:18:40,638 [DEBUG][       Thread-607348][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:18:40,638 [DEBUG][       Thread-607348][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:18:40,638 [DEBUG][       Thread-607348][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:18:40,638 [DEBUG][       Thread-607348][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:18:40,638 [DEBUG][       Thread-607348][   transport.py][1871] : client lang: <none>
2025-07-01 14:18:40,638 [DEBUG][       Thread-607348][   transport.py][1871] : server lang: <none>
2025-07-01 14:18:40,638 [DEBUG][       Thread-607348][   transport.py][1871] : kex follows: False
2025-07-01 14:18:40,638 [DEBUG][       Thread-607348][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:18:40,638 [DEBUG][       Thread-607348][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:18:40,638 [DEBUG][       Thread-607348][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:18:40,638 [DEBUG][       Thread-607348][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:18:40,638 [DEBUG][       Thread-607348][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:18:40,638 [DEBUG][       Thread-607348][   transport.py][1871] : Compression: none
2025-07-01 14:18:40,638 [DEBUG][       Thread-607348][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:18:40,696 [DEBUG][       Thread-607348][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:18:40,696 [DEBUG][       Thread-607348][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:18:40,696 [DEBUG][       Thread-607348][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:18:40,696 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:18:40,696 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:18:40,753 [DEBUG][       Thread-607348][   transport.py][1871] : userauth is OK
2025-07-01 14:18:40,753 [DEBUG][       Thread-607348][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:18:40,753 [DEBUG][       Thread-607348][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:18:40,753 [DEBUG][       Thread-607348][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:18:40,753 [DEBUG][       Thread-607348][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:18:40,767 [ INFO][       Thread-607348][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:18:40,767 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:18:40,767 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:18:41,815 [DEBUG][       Thread-607348][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:18:41,815 [DEBUG][       Thread-607348][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:18:41,863 [DEBUG][       Thread-607348][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:18:41,863 [DEBUG][       Thread-607348][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:18:41,872 [DEBUG][       Thread-607348][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:18:41,879 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:18:41,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-07-01 14:18:41,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-07-01 14:18:41,898 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:18:41,898 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:18:41,898 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:18:41,906 [DEBUG][       Thread-607348][   transport.py][1871] : EOF in transport thread
2025-07-01 14:18:42,281 [DEBUG][Thread-607350 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:18:51,299 [DEBUG][Thread-607351 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:18:51,909 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:18:51,909 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:18:51,909 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:18:51,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-07-01 14:18:52,407 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 18, 41), 11.06, 46.98, 0.0, 34.83, 13.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:18:52,407 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:18:41
2025-07-01 14:18:52,492 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:18:52,499 [DEBUG][       Thread-607352][   transport.py][1871] : starting thread (client mode): 0x81d80a0
2025-07-01 14:18:52,500 [DEBUG][       Thread-607352][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:18:52,519 [DEBUG][       Thread-607352][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:18:52,519 [ INFO][       Thread-607352][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:18:52,522 [DEBUG][       Thread-607352][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:18:52,522 [DEBUG][       Thread-607352][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:18:52,522 [DEBUG][       Thread-607352][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:18:52,522 [DEBUG][       Thread-607352][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:18:52,522 [DEBUG][       Thread-607352][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:18:52,522 [DEBUG][       Thread-607352][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:18:52,522 [DEBUG][       Thread-607352][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:18:52,522 [DEBUG][       Thread-607352][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:18:52,522 [DEBUG][       Thread-607352][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:18:52,522 [DEBUG][       Thread-607352][   transport.py][1871] : client lang: <none>
2025-07-01 14:18:52,523 [DEBUG][       Thread-607352][   transport.py][1871] : server lang: <none>
2025-07-01 14:18:52,523 [DEBUG][       Thread-607352][   transport.py][1871] : kex follows: False
2025-07-01 14:18:52,523 [DEBUG][       Thread-607352][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:18:52,523 [DEBUG][       Thread-607352][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:18:52,523 [DEBUG][       Thread-607352][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:18:52,523 [DEBUG][       Thread-607352][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:18:52,523 [DEBUG][       Thread-607352][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:18:52,523 [DEBUG][       Thread-607352][   transport.py][1871] : Compression: none
2025-07-01 14:18:52,523 [DEBUG][       Thread-607352][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:18:52,540 [DEBUG][       Thread-607352][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:18:52,540 [DEBUG][       Thread-607352][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:18:52,541 [DEBUG][       Thread-607352][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:18:52,541 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:18:52,541 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:18:52,585 [DEBUG][       Thread-607352][   transport.py][1871] : userauth is OK
2025-07-01 14:18:52,610 [ INFO][       Thread-607352][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:18:52,610 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:18:53,402 [DEBUG][       Thread-607352][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:18:53,402 [DEBUG][       Thread-607352][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:18:53,445 [DEBUG][       Thread-607352][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:18:53,445 [DEBUG][       Thread-607352][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:18:53,449 [DEBUG][       Thread-607352][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:18:53,461 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:18:53,462 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:18:53,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:18:53,469 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:18:53,480 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:18:53,482 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:18:53,482 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:18:53,483 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:18:53,483 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.512441 -999.00  +13.30  43.57     52   +3.80 1 2 2 1 1   887    0 9.82 4.58 ----- 40.8 43.6 42.2 47.6 15.9 -20.7 15.4 -21.2 15.4 -19.5 16.0 -18.8
2025-07-01 14:18:53,483 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:18:53,483 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:18:53,483 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.512441
2025-07-01 14:18:53,484 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:18:53,484 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:18:53,485 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:18:53,485 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:18:53,485 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:18:53,485 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:18:41', tmtdew=11.06, humidity=46.98, cloud=0.0, wind=34.83, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:17:54.902', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:18:53,486 [DEBUG][       Thread-607352][   transport.py][1871] : EOF in transport thread
2025-07-01 14:18:53,559 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:18:53,571 [DEBUG][       Thread-607355][   transport.py][1871] : starting thread (client mode): 0x827d540
2025-07-01 14:18:53,571 [DEBUG][       Thread-607355][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:18:53,586 [DEBUG][       Thread-607355][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:18:53,586 [ INFO][       Thread-607355][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:18:53,594 [DEBUG][       Thread-607355][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:18:53,594 [DEBUG][       Thread-607355][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:18:53,594 [DEBUG][       Thread-607355][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:18:53,594 [DEBUG][       Thread-607355][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:18:53,594 [DEBUG][       Thread-607355][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:18:53,594 [DEBUG][       Thread-607355][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:18:53,594 [DEBUG][       Thread-607355][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:18:53,594 [DEBUG][       Thread-607355][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:18:53,594 [DEBUG][       Thread-607355][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:18:53,594 [DEBUG][       Thread-607355][   transport.py][1871] : client lang: <none>
2025-07-01 14:18:53,594 [DEBUG][       Thread-607355][   transport.py][1871] : server lang: <none>
2025-07-01 14:18:53,594 [DEBUG][       Thread-607355][   transport.py][1871] : kex follows: False
2025-07-01 14:18:53,594 [DEBUG][       Thread-607355][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:18:53,594 [DEBUG][       Thread-607355][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:18:53,594 [DEBUG][       Thread-607355][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:18:53,594 [DEBUG][       Thread-607355][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:18:53,594 [DEBUG][       Thread-607355][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:18:53,594 [DEBUG][       Thread-607355][   transport.py][1871] : Compression: none
2025-07-01 14:18:53,595 [DEBUG][       Thread-607355][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:18:53,653 [DEBUG][       Thread-607355][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:18:53,654 [DEBUG][       Thread-607355][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:18:53,654 [DEBUG][       Thread-607355][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:18:53,654 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:18:53,655 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:18:53,709 [DEBUG][       Thread-607355][   transport.py][1871] : userauth is OK
2025-07-01 14:18:53,710 [DEBUG][       Thread-607355][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:18:53,710 [DEBUG][       Thread-607355][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:18:53,710 [DEBUG][       Thread-607355][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:18:53,710 [DEBUG][       Thread-607355][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:18:53,728 [ INFO][       Thread-607355][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:18:53,729 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:18:53,729 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:18:54,748 [DEBUG][       Thread-607355][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:18:54,749 [DEBUG][       Thread-607355][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:18:54,800 [DEBUG][       Thread-607355][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:18:54,800 [DEBUG][       Thread-607355][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:18:54,809 [DEBUG][       Thread-607355][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:18:54,817 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:18:54,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-07-01 14:18:54,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-07-01 14:18:54,835 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:18:54,836 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:18:54,836 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:18:54,844 [DEBUG][       Thread-607355][   transport.py][1871] : EOF in transport thread
2025-07-01 14:19:00,322 [DEBUG][Thread-607357 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:19:04,844 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:19:04,844 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:19:04,844 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:19:04,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-07-01 14:19:05,351 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 18, 41), 11.06, 46.98, 0.0, 34.83, 13.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:19:05,351 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:18:41
2025-07-01 14:19:05,437 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:19:05,442 [DEBUG][       Thread-607358][   transport.py][1871] : starting thread (client mode): 0x81da2f0
2025-07-01 14:19:05,442 [DEBUG][       Thread-607358][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:19:05,462 [DEBUG][       Thread-607358][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:19:05,462 [ INFO][       Thread-607358][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:19:05,465 [DEBUG][       Thread-607358][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:19:05,466 [DEBUG][       Thread-607358][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:19:05,466 [DEBUG][       Thread-607358][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:19:05,466 [DEBUG][       Thread-607358][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:19:05,466 [DEBUG][       Thread-607358][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:19:05,466 [DEBUG][       Thread-607358][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:19:05,466 [DEBUG][       Thread-607358][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:19:05,466 [DEBUG][       Thread-607358][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:19:05,466 [DEBUG][       Thread-607358][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:19:05,466 [DEBUG][       Thread-607358][   transport.py][1871] : client lang: <none>
2025-07-01 14:19:05,466 [DEBUG][       Thread-607358][   transport.py][1871] : server lang: <none>
2025-07-01 14:19:05,466 [DEBUG][       Thread-607358][   transport.py][1871] : kex follows: False
2025-07-01 14:19:05,466 [DEBUG][       Thread-607358][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:19:05,466 [DEBUG][       Thread-607358][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:19:05,466 [DEBUG][       Thread-607358][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:19:05,466 [DEBUG][       Thread-607358][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:19:05,466 [DEBUG][       Thread-607358][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:19:05,466 [DEBUG][       Thread-607358][   transport.py][1871] : Compression: none
2025-07-01 14:19:05,466 [DEBUG][       Thread-607358][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:19:05,488 [DEBUG][       Thread-607358][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:19:05,488 [DEBUG][       Thread-607358][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:19:05,489 [DEBUG][       Thread-607358][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:19:05,489 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:19:05,489 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:19:05,491 [DEBUG][       Thread-607358][   transport.py][1871] : userauth is OK
2025-07-01 14:19:05,515 [ INFO][       Thread-607358][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:19:05,516 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:19:06,125 [DEBUG][       Thread-607358][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:19:06,125 [DEBUG][       Thread-607358][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:19:06,169 [DEBUG][       Thread-607358][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:19:06,169 [DEBUG][       Thread-607358][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:19:06,172 [DEBUG][       Thread-607358][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:19:06,185 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:19:06,186 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:19:06,188 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:19:06,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:19:06,196 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:19:06,198 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:19:06,198 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:19:06,199 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:19:06,200 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.512788 -999.00  +13.30  39.22     52   +3.80 1 2 2 1 1   887    0 10.16 2.20 ----- 40.1 39.2 39.6 57.4 15.9 -21.0 15.3 -21.1 15.3 -19.3 16.0 -19.0
2025-07-01 14:19:06,200 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:19:06,200 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:19:06,200 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.512788
2025-07-01 14:19:06,201 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:19:06,201 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:19:06,201 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:19:06,201 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:19:06,202 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:19:06,202 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:18:41', tmtdew=11.06, humidity=46.98, cloud=0.0, wind=34.83, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:18:24.883', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:19:06,203 [DEBUG][       Thread-607358][   transport.py][1871] : EOF in transport thread
2025-07-01 14:19:06,303 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:19:06,313 [DEBUG][       Thread-607361][   transport.py][1871] : starting thread (client mode): 0x818c280
2025-07-01 14:19:06,313 [DEBUG][       Thread-607361][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:19:06,328 [DEBUG][       Thread-607361][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:19:06,328 [ INFO][       Thread-607361][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:19:06,341 [DEBUG][       Thread-607361][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:19:06,341 [DEBUG][       Thread-607361][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:19:06,341 [DEBUG][       Thread-607361][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:19:06,341 [DEBUG][       Thread-607361][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:19:06,341 [DEBUG][       Thread-607361][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:19:06,341 [DEBUG][       Thread-607361][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:19:06,341 [DEBUG][       Thread-607361][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:19:06,341 [DEBUG][       Thread-607361][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:19:06,341 [DEBUG][       Thread-607361][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:19:06,341 [DEBUG][       Thread-607361][   transport.py][1871] : client lang: <none>
2025-07-01 14:19:06,342 [DEBUG][       Thread-607361][   transport.py][1871] : server lang: <none>
2025-07-01 14:19:06,342 [DEBUG][       Thread-607361][   transport.py][1871] : kex follows: False
2025-07-01 14:19:06,342 [DEBUG][       Thread-607361][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:19:06,342 [DEBUG][       Thread-607361][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:19:06,342 [DEBUG][       Thread-607361][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:19:06,342 [DEBUG][       Thread-607361][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:19:06,342 [DEBUG][       Thread-607361][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:19:06,342 [DEBUG][       Thread-607361][   transport.py][1871] : Compression: none
2025-07-01 14:19:06,342 [DEBUG][       Thread-607361][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:19:06,399 [DEBUG][       Thread-607361][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:19:06,400 [DEBUG][       Thread-607361][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:19:06,400 [DEBUG][       Thread-607361][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:19:06,401 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:19:06,401 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:19:06,457 [DEBUG][       Thread-607361][   transport.py][1871] : userauth is OK
2025-07-01 14:19:06,458 [DEBUG][       Thread-607361][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:19:06,458 [DEBUG][       Thread-607361][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:19:06,458 [DEBUG][       Thread-607361][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:19:06,458 [DEBUG][       Thread-607361][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:19:06,478 [ INFO][       Thread-607361][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:19:06,479 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:19:06,479 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:19:07,511 [DEBUG][       Thread-607361][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:19:07,511 [DEBUG][       Thread-607361][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:19:07,570 [DEBUG][       Thread-607361][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:19:07,570 [DEBUG][       Thread-607361][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:19:07,583 [DEBUG][       Thread-607361][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:19:07,594 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:19:07,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-07-01 14:19:07,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-07-01 14:19:07,613 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:19:07,613 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:19:07,614 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:19:07,622 [DEBUG][       Thread-607361][   transport.py][1871] : EOF in transport thread
2025-07-01 14:19:09,359 [DEBUG][Thread-607363 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:19:17,624 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:19:17,624 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:19:17,624 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:19:17,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-07-01 14:19:18,152 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 19, 13), 11.1, 47.07, 0.0, 31.78, 13.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:19:18,152 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:19:13
2025-07-01 14:19:18,241 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:19:18,246 [DEBUG][       Thread-607364][   transport.py][1871] : starting thread (client mode): 0x81daf80
2025-07-01 14:19:18,246 [DEBUG][       Thread-607364][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:19:18,266 [DEBUG][       Thread-607364][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:19:18,266 [ INFO][       Thread-607364][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:19:18,269 [DEBUG][       Thread-607364][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:19:18,269 [DEBUG][       Thread-607364][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:19:18,269 [DEBUG][       Thread-607364][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:19:18,269 [DEBUG][       Thread-607364][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:19:18,269 [DEBUG][       Thread-607364][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:19:18,269 [DEBUG][       Thread-607364][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:19:18,269 [DEBUG][       Thread-607364][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:19:18,269 [DEBUG][       Thread-607364][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:19:18,269 [DEBUG][       Thread-607364][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:19:18,269 [DEBUG][       Thread-607364][   transport.py][1871] : client lang: <none>
2025-07-01 14:19:18,269 [DEBUG][       Thread-607364][   transport.py][1871] : server lang: <none>
2025-07-01 14:19:18,269 [DEBUG][       Thread-607364][   transport.py][1871] : kex follows: False
2025-07-01 14:19:18,269 [DEBUG][       Thread-607364][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:19:18,269 [DEBUG][       Thread-607364][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:19:18,269 [DEBUG][       Thread-607364][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:19:18,269 [DEBUG][       Thread-607364][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:19:18,269 [DEBUG][       Thread-607364][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:19:18,269 [DEBUG][       Thread-607364][   transport.py][1871] : Compression: none
2025-07-01 14:19:18,269 [DEBUG][       Thread-607364][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:19:18,284 [DEBUG][       Thread-607364][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:19:18,284 [DEBUG][       Thread-607364][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:19:18,284 [DEBUG][       Thread-607364][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:19:18,284 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:19:18,284 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:19:18,285 [DEBUG][       Thread-607364][   transport.py][1871] : userauth is OK
2025-07-01 14:19:18,309 [ INFO][       Thread-607364][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:19:18,309 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:19:18,376 [DEBUG][Thread-607366 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:19:19,135 [DEBUG][       Thread-607364][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:19:19,135 [DEBUG][       Thread-607364][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:19:19,176 [DEBUG][       Thread-607364][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:19:19,176 [DEBUG][       Thread-607364][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:19:19,179 [DEBUG][       Thread-607364][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:19:19,189 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:19:19,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:19:19,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:19:19,191 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:19:19,194 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:19:19,194 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:19:19,194 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:19:19,195 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:19:19,195 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.512788 -999.00  +13.30  39.22     52   +3.80 1 2 2 1 1   887    0 10.16 2.20 ----- 40.1 39.2 39.6 57.4 15.9 -21.0 15.3 -21.1 15.3 -19.3 16.0 -19.0
2025-07-01 14:19:19,195 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:19:19,195 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:19:19,195 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.512788
2025-07-01 14:19:19,195 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:19:19,195 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:19:19,195 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:19:19,195 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:19:19,195 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:19:19,195 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:19:13', tmtdew=11.1, humidity=47.07, cloud=0.0, wind=31.78, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:18:24.883', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:19:19,195 [DEBUG][       Thread-607364][   transport.py][1871] : EOF in transport thread
2025-07-01 14:19:19,268 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:19:27,398 [DEBUG][Thread-607368 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:19:31,583 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:19:31,584 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:19:34,495 [DEBUG][Thread-607369 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:19:36,427 [DEBUG][Thread-607370 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:19:45,447 [DEBUG][Thread-607371 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:19:54,465 [DEBUG][Thread-607372 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:20:03,484 [DEBUG][Thread-607373 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:20:12,503 [DEBUG][Thread-607374 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:20:21,521 [DEBUG][Thread-607375 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:20:30,541 [DEBUG][Thread-607376 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:20:31,722 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:20:31,723 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:20:34,543 [DEBUG][Thread-607377 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:20:39,559 [DEBUG][Thread-607378 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:20:48,580 [DEBUG][Thread-607379 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:20:57,600 [DEBUG][Thread-607380 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:21:06,624 [DEBUG][Thread-607381 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:21:15,643 [DEBUG][Thread-607382 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:21:24,667 [DEBUG][Thread-607383 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:21:28,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-07-01 14:21:31,861 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:21:31,862 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:21:33,692 [DEBUG][Thread-607384 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:21:34,593 [DEBUG][Thread-607385 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:21:38,988 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:21:38,988 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:21:38,988 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:21:38,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-07-01 14:21:39,506 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 21, 20), 11.06, 47.09, 0.0, 29.91, 13.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:21:39,506 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:21:20
2025-07-01 14:21:39,592 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:21:39,596 [DEBUG][       Thread-607386][   transport.py][1871] : starting thread (client mode): 0x81d8250
2025-07-01 14:21:39,596 [DEBUG][       Thread-607386][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:21:39,617 [DEBUG][       Thread-607386][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:21:39,617 [ INFO][       Thread-607386][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:21:39,621 [DEBUG][       Thread-607386][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:21:39,621 [DEBUG][       Thread-607386][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:21:39,621 [DEBUG][       Thread-607386][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:21:39,621 [DEBUG][       Thread-607386][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:21:39,621 [DEBUG][       Thread-607386][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:21:39,621 [DEBUG][       Thread-607386][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:21:39,621 [DEBUG][       Thread-607386][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:21:39,621 [DEBUG][       Thread-607386][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:21:39,621 [DEBUG][       Thread-607386][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:21:39,621 [DEBUG][       Thread-607386][   transport.py][1871] : client lang: <none>
2025-07-01 14:21:39,621 [DEBUG][       Thread-607386][   transport.py][1871] : server lang: <none>
2025-07-01 14:21:39,621 [DEBUG][       Thread-607386][   transport.py][1871] : kex follows: False
2025-07-01 14:21:39,621 [DEBUG][       Thread-607386][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:21:39,621 [DEBUG][       Thread-607386][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:21:39,621 [DEBUG][       Thread-607386][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:21:39,621 [DEBUG][       Thread-607386][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:21:39,621 [DEBUG][       Thread-607386][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:21:39,621 [DEBUG][       Thread-607386][   transport.py][1871] : Compression: none
2025-07-01 14:21:39,621 [DEBUG][       Thread-607386][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:21:39,637 [DEBUG][       Thread-607386][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:21:39,637 [DEBUG][       Thread-607386][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:21:39,638 [DEBUG][       Thread-607386][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:21:39,638 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:21:39,638 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:21:39,639 [DEBUG][       Thread-607386][   transport.py][1871] : userauth is OK
2025-07-01 14:21:39,664 [ INFO][       Thread-607386][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:21:39,665 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:21:40,341 [DEBUG][       Thread-607386][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:21:40,341 [DEBUG][       Thread-607386][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:21:40,388 [DEBUG][       Thread-607386][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:21:40,389 [DEBUG][       Thread-607386][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:21:40,391 [DEBUG][       Thread-607386][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:21:40,403 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:21:40,403 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:21:40,405 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:21:40,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:21:40,412 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:21:40,413 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:21:40,413 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:21:40,414 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:21:40,414 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.514524 -999.00  +13.50  39.45     52   +3.90 1 2 2 1 1   887    0 9.35 -9.08 ----- 41.0 39.5 18.9 50.8 15.7 -21.1 15.2 -21.0 15.2 -20.0 15.7 -19.1
2025-07-01 14:21:40,414 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:21:40,414 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:21:40,414 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.514524
2025-07-01 14:21:40,415 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:21:40,415 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:21:40,415 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:21:40,416 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:21:40,416 [DEBUG][       Thread-607386][   transport.py][1871] : EOF in transport thread
2025-07-01 14:21:40,416 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:21:40,416 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:21:20', tmtdew=11.06, humidity=47.09, cloud=0.0, wind=29.91, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:20:54.874', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:21:40,500 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:21:42,715 [DEBUG][Thread-607389 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:21:51,748 [DEBUG][Thread-607390 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:22:00,767 [DEBUG][Thread-607391 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:22:09,789 [DEBUG][Thread-607392 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:22:18,809 [DEBUG][Thread-607393 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:22:27,828 [DEBUG][Thread-607394 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:22:32,001 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:22:32,001 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:22:34,651 [DEBUG][Thread-607395 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:22:36,845 [DEBUG][Thread-607396 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:22:45,866 [DEBUG][Thread-607397 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:22:54,886 [DEBUG][Thread-607398 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:23:03,906 [DEBUG][Thread-607399 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:23:12,926 [DEBUG][Thread-607400 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:23:21,947 [DEBUG][Thread-607401 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:23:30,968 [DEBUG][Thread-607402 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:23:32,139 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:23:32,140 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:23:34,706 [DEBUG][Thread-607403 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:23:39,991 [DEBUG][Thread-607404 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:23:49,009 [DEBUG][Thread-607405 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:23:50,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-07-01 14:23:58,030 [DEBUG][Thread-607406 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:24:00,300 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:24:00,300 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:24:00,300 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:24:00,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-07-01 14:24:00,855 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 23, 27), 11.16, 46.92, 0.0, 33.49, 13.75, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:24:00,855 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:23:27
2025-07-01 14:24:00,970 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:24:00,975 [DEBUG][       Thread-607407][   transport.py][1871] : starting thread (client mode): 0x81db970
2025-07-01 14:24:00,975 [DEBUG][       Thread-607407][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:24:00,996 [DEBUG][       Thread-607407][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:24:00,996 [ INFO][       Thread-607407][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:24:00,999 [DEBUG][       Thread-607407][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:24:00,999 [DEBUG][       Thread-607407][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:24:00,999 [DEBUG][       Thread-607407][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:24:00,999 [DEBUG][       Thread-607407][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:24:00,999 [DEBUG][       Thread-607407][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:24:00,999 [DEBUG][       Thread-607407][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:24:00,999 [DEBUG][       Thread-607407][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:24:00,999 [DEBUG][       Thread-607407][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:24:00,999 [DEBUG][       Thread-607407][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:24:00,999 [DEBUG][       Thread-607407][   transport.py][1871] : client lang: <none>
2025-07-01 14:24:00,999 [DEBUG][       Thread-607407][   transport.py][1871] : server lang: <none>
2025-07-01 14:24:00,999 [DEBUG][       Thread-607407][   transport.py][1871] : kex follows: False
2025-07-01 14:24:00,999 [DEBUG][       Thread-607407][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:24:00,999 [DEBUG][       Thread-607407][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:24:00,999 [DEBUG][       Thread-607407][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:24:00,999 [DEBUG][       Thread-607407][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:24:00,999 [DEBUG][       Thread-607407][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:24:00,999 [DEBUG][       Thread-607407][   transport.py][1871] : Compression: none
2025-07-01 14:24:00,999 [DEBUG][       Thread-607407][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:24:01,015 [DEBUG][       Thread-607407][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:24:01,015 [DEBUG][       Thread-607407][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:24:01,015 [DEBUG][       Thread-607407][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:24:01,015 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:24:01,015 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:24:01,016 [DEBUG][       Thread-607407][   transport.py][1871] : userauth is OK
2025-07-01 14:24:01,040 [ INFO][       Thread-607407][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:24:01,041 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:24:01,677 [DEBUG][       Thread-607407][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:24:01,677 [DEBUG][       Thread-607407][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:24:01,721 [DEBUG][       Thread-607407][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:24:01,721 [DEBUG][       Thread-607407][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:24:01,724 [DEBUG][       Thread-607407][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:24:01,738 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:24:01,739 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:24:01,741 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:24:01,743 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:24:01,749 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:24:01,751 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:24:01,751 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:24:01,752 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:24:01,752 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.516260 -999.00  +13.50  28.91     52   +4.00 1 2 1 1 1   887    0 9.35 -16.52 ----- 37.0 28.9 36.2 44.6 15.8 -20.7 15.2 -21.0 15.2 -19.8 15.8 -20.2
2025-07-01 14:24:01,752 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:24:01,752 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:24:01,752 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.516260
2025-07-01 14:24:01,753 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:24:01,753 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:24:01,753 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:24:01,753 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:24:01,753 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:24:01,754 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:23:27', tmtdew=11.16, humidity=46.92, cloud=0.0, wind=33.49, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:23:24.864', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:24:01,755 [DEBUG][       Thread-607407][   transport.py][1871] : EOF in transport thread
2025-07-01 14:24:01,837 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:24:01,849 [DEBUG][       Thread-607410][   transport.py][1871] : starting thread (client mode): 0x81e79a0
2025-07-01 14:24:01,849 [DEBUG][       Thread-607410][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:24:01,867 [DEBUG][       Thread-607410][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:24:01,867 [ INFO][       Thread-607410][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:24:01,874 [DEBUG][       Thread-607410][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:24:01,874 [DEBUG][       Thread-607410][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:24:01,875 [DEBUG][       Thread-607410][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:24:01,875 [DEBUG][       Thread-607410][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:24:01,875 [DEBUG][       Thread-607410][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:24:01,875 [DEBUG][       Thread-607410][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:24:01,875 [DEBUG][       Thread-607410][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:24:01,875 [DEBUG][       Thread-607410][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:24:01,875 [DEBUG][       Thread-607410][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:24:01,875 [DEBUG][       Thread-607410][   transport.py][1871] : client lang: <none>
2025-07-01 14:24:01,875 [DEBUG][       Thread-607410][   transport.py][1871] : server lang: <none>
2025-07-01 14:24:01,875 [DEBUG][       Thread-607410][   transport.py][1871] : kex follows: False
2025-07-01 14:24:01,875 [DEBUG][       Thread-607410][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:24:01,875 [DEBUG][       Thread-607410][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:24:01,875 [DEBUG][       Thread-607410][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:24:01,875 [DEBUG][       Thread-607410][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:24:01,875 [DEBUG][       Thread-607410][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:24:01,875 [DEBUG][       Thread-607410][   transport.py][1871] : Compression: none
2025-07-01 14:24:01,875 [DEBUG][       Thread-607410][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:24:01,937 [DEBUG][       Thread-607410][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:24:01,938 [DEBUG][       Thread-607410][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:24:01,938 [DEBUG][       Thread-607410][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:24:01,938 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:24:01,939 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:24:01,996 [DEBUG][       Thread-607410][   transport.py][1871] : userauth is OK
2025-07-01 14:24:01,996 [DEBUG][       Thread-607410][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:24:01,997 [DEBUG][       Thread-607410][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:24:01,997 [DEBUG][       Thread-607410][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:24:01,997 [DEBUG][       Thread-607410][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:24:02,016 [ INFO][       Thread-607410][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:24:02,016 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:24:02,016 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:24:03,077 [DEBUG][       Thread-607410][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:24:03,078 [DEBUG][       Thread-607410][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:24:03,128 [DEBUG][       Thread-607410][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:24:03,128 [DEBUG][       Thread-607410][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:24:03,137 [DEBUG][       Thread-607410][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:24:03,146 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:24: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-07-01 14:24:03,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-07-01 14:24:03,164 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:24:03,165 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:24:03,165 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:24:03,173 [DEBUG][       Thread-607410][   transport.py][1871] : EOF in transport thread
2025-07-01 14:24:07,061 [DEBUG][Thread-607412 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:24:13,172 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:24:13,172 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:24:13,172 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:24:13,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-07-01 14:24:13,710 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 23, 58), 11.15, 46.93, 0.0, 35.66, 13.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:24:13,710 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:23:58
2025-07-01 14:24:13,796 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:24:13,800 [DEBUG][       Thread-607413][   transport.py][1871] : starting thread (client mode): 0x81a5f00
2025-07-01 14:24:13,800 [DEBUG][       Thread-607413][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:24:13,820 [DEBUG][       Thread-607413][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:24:13,820 [ INFO][       Thread-607413][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:24:13,823 [DEBUG][       Thread-607413][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:24:13,823 [DEBUG][       Thread-607413][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:24:13,823 [DEBUG][       Thread-607413][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:24:13,823 [DEBUG][       Thread-607413][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:24:13,823 [DEBUG][       Thread-607413][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:24:13,823 [DEBUG][       Thread-607413][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:24:13,823 [DEBUG][       Thread-607413][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:24:13,823 [DEBUG][       Thread-607413][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:24:13,823 [DEBUG][       Thread-607413][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:24:13,823 [DEBUG][       Thread-607413][   transport.py][1871] : client lang: <none>
2025-07-01 14:24:13,823 [DEBUG][       Thread-607413][   transport.py][1871] : server lang: <none>
2025-07-01 14:24:13,823 [DEBUG][       Thread-607413][   transport.py][1871] : kex follows: False
2025-07-01 14:24:13,823 [DEBUG][       Thread-607413][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:24:13,823 [DEBUG][       Thread-607413][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:24:13,823 [DEBUG][       Thread-607413][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:24:13,823 [DEBUG][       Thread-607413][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:24:13,823 [DEBUG][       Thread-607413][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:24:13,823 [DEBUG][       Thread-607413][   transport.py][1871] : Compression: none
2025-07-01 14:24:13,823 [DEBUG][       Thread-607413][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:24:13,839 [DEBUG][       Thread-607413][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:24:13,839 [DEBUG][       Thread-607413][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:24:13,839 [DEBUG][       Thread-607413][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:24:13,839 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:24:13,839 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:24:13,839 [DEBUG][       Thread-607413][   transport.py][1871] : userauth is OK
2025-07-01 14:24:13,864 [ INFO][       Thread-607413][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:24:13,864 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:24:14,544 [DEBUG][       Thread-607413][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:24:14,544 [DEBUG][       Thread-607413][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:24:14,585 [DEBUG][       Thread-607413][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:24:14,585 [DEBUG][       Thread-607413][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:24:14,587 [DEBUG][       Thread-607413][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:24:14,600 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:24:14,600 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:24:14,602 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:24:14,604 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:24:14,609 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:24:14,611 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:24:14,611 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:24:14,611 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:24:14,611 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.516260 -999.00  +13.50  28.91     52   +4.00 1 2 1 1 1   887    0 9.35 -16.52 ----- 37.0 28.9 36.2 44.6 15.8 -20.7 15.2 -21.0 15.2 -19.8 15.8 -20.2
2025-07-01 14:24:14,612 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:24:14,612 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:24:14,612 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.516260
2025-07-01 14:24:14,612 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:24:14,613 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:24:14,613 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:24:14,613 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:24:14,613 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:24:14,613 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:23:58', tmtdew=11.15, humidity=46.93, cloud=0.0, wind=35.66, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:23:24.864', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:24:14,614 [DEBUG][       Thread-607413][   transport.py][1871] : EOF in transport thread
2025-07-01 14:24:14,696 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:24:14,705 [DEBUG][       Thread-607416][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 14:24:14,706 [DEBUG][       Thread-607416][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:24:14,721 [DEBUG][       Thread-607416][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:24:14,721 [ INFO][       Thread-607416][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:24:14,728 [DEBUG][       Thread-607416][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:24:14,728 [DEBUG][       Thread-607416][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:24:14,728 [DEBUG][       Thread-607416][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:24:14,728 [DEBUG][       Thread-607416][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:24:14,729 [DEBUG][       Thread-607416][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:24:14,729 [DEBUG][       Thread-607416][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:24:14,729 [DEBUG][       Thread-607416][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:24:14,729 [DEBUG][       Thread-607416][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:24:14,729 [DEBUG][       Thread-607416][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:24:14,729 [DEBUG][       Thread-607416][   transport.py][1871] : client lang: <none>
2025-07-01 14:24:14,729 [DEBUG][       Thread-607416][   transport.py][1871] : server lang: <none>
2025-07-01 14:24:14,729 [DEBUG][       Thread-607416][   transport.py][1871] : kex follows: False
2025-07-01 14:24:14,729 [DEBUG][       Thread-607416][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:24:14,729 [DEBUG][       Thread-607416][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:24:14,729 [DEBUG][       Thread-607416][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:24:14,729 [DEBUG][       Thread-607416][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:24:14,729 [DEBUG][       Thread-607416][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:24:14,729 [DEBUG][       Thread-607416][   transport.py][1871] : Compression: none
2025-07-01 14:24:14,729 [DEBUG][       Thread-607416][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:24:14,790 [DEBUG][       Thread-607416][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:24:14,791 [DEBUG][       Thread-607416][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:24:14,791 [DEBUG][       Thread-607416][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:24:14,791 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:24:14,791 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:24:14,848 [DEBUG][       Thread-607416][   transport.py][1871] : userauth is OK
2025-07-01 14:24:14,848 [DEBUG][       Thread-607416][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:24:14,848 [DEBUG][       Thread-607416][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:24:14,848 [DEBUG][       Thread-607416][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:24:14,848 [DEBUG][       Thread-607416][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:24:14,861 [ INFO][       Thread-607416][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:24:14,861 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:24:14,862 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:24:15,902 [DEBUG][       Thread-607416][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:24:15,902 [DEBUG][       Thread-607416][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:24:15,951 [DEBUG][       Thread-607416][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:24:15,952 [DEBUG][       Thread-607416][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:24:15,961 [DEBUG][       Thread-607416][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:24:15,974 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:24:15,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-07-01 14:24: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') -> 00000000
2025-07-01 14:24:15,996 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:24:15,996 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:24:15,997 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:24:16,005 [DEBUG][       Thread-607416][   transport.py][1871] : EOF in transport thread
2025-07-01 14:24:16,089 [DEBUG][Thread-607418 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:24:25,114 [DEBUG][Thread-607419 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:24:26,007 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:24:26,007 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:24:26,007 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:24:26,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-07-01 14:24:26,546 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 23, 58), 11.15, 46.93, 0.0, 35.66, 13.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:24:26,546 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:23:58
2025-07-01 14:24:26,659 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:24:26,665 [DEBUG][       Thread-607420][   transport.py][1871] : starting thread (client mode): 0x81daf50
2025-07-01 14:24:26,666 [DEBUG][       Thread-607420][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:24:26,686 [DEBUG][       Thread-607420][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:24:26,686 [ INFO][       Thread-607420][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:24:26,689 [DEBUG][       Thread-607420][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:24:26,689 [DEBUG][       Thread-607420][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:24:26,689 [DEBUG][       Thread-607420][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:24:26,689 [DEBUG][       Thread-607420][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:24:26,689 [DEBUG][       Thread-607420][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:24:26,689 [DEBUG][       Thread-607420][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:24:26,689 [DEBUG][       Thread-607420][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:24:26,689 [DEBUG][       Thread-607420][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:24:26,689 [DEBUG][       Thread-607420][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:24:26,689 [DEBUG][       Thread-607420][   transport.py][1871] : client lang: <none>
2025-07-01 14:24:26,689 [DEBUG][       Thread-607420][   transport.py][1871] : server lang: <none>
2025-07-01 14:24:26,689 [DEBUG][       Thread-607420][   transport.py][1871] : kex follows: False
2025-07-01 14:24:26,689 [DEBUG][       Thread-607420][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:24:26,689 [DEBUG][       Thread-607420][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:24:26,689 [DEBUG][       Thread-607420][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:24:26,689 [DEBUG][       Thread-607420][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:24:26,689 [DEBUG][       Thread-607420][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:24:26,689 [DEBUG][       Thread-607420][   transport.py][1871] : Compression: none
2025-07-01 14:24:26,689 [DEBUG][       Thread-607420][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:24:26,706 [DEBUG][       Thread-607420][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:24:26,707 [DEBUG][       Thread-607420][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:24:26,707 [DEBUG][       Thread-607420][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:24:26,707 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:24:26,707 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:24:26,707 [DEBUG][       Thread-607420][   transport.py][1871] : userauth is OK
2025-07-01 14:24:26,720 [ INFO][       Thread-607420][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:24:26,720 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:24:27,354 [DEBUG][       Thread-607420][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:24:27,354 [DEBUG][       Thread-607420][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:24:27,396 [DEBUG][       Thread-607420][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:24:27,396 [DEBUG][       Thread-607420][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:24:27,399 [DEBUG][       Thread-607420][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:24:27,411 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:24:27,411 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:24:27,412 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:24:27,413 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:24:27,416 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:24:27,417 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:24:27,417 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:24:27,417 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:24:27,417 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.516260 -999.00  +13.50  28.91     52   +4.00 1 2 1 1 1   887    0 9.35 -16.52 ----- 37.0 28.9 36.2 44.6 15.8 -20.7 15.2 -21.0 15.2 -19.8 15.8 -20.2
2025-07-01 14:24:27,417 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:24:27,417 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:24:27,417 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.516260
2025-07-01 14:24:27,417 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:24:27,417 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:24:27,417 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:24:27,417 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:24:27,417 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:24:27,417 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:23:58', tmtdew=11.15, humidity=46.93, cloud=0.0, wind=35.66, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:23:24.864', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:24:27,418 [DEBUG][       Thread-607420][   transport.py][1871] : EOF in transport thread
2025-07-01 14:24:27,492 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:24:27,504 [DEBUG][       Thread-607423][   transport.py][1871] : starting thread (client mode): 0x8393c40
2025-07-01 14:24:27,504 [DEBUG][       Thread-607423][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:24:27,520 [DEBUG][       Thread-607423][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:24:27,520 [ INFO][       Thread-607423][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:24:27,527 [DEBUG][       Thread-607423][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:24:27,527 [DEBUG][       Thread-607423][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:24:27,527 [DEBUG][       Thread-607423][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:24:27,527 [DEBUG][       Thread-607423][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:24:27,527 [DEBUG][       Thread-607423][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:24:27,527 [DEBUG][       Thread-607423][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:24:27,527 [DEBUG][       Thread-607423][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:24:27,527 [DEBUG][       Thread-607423][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:24:27,528 [DEBUG][       Thread-607423][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:24:27,528 [DEBUG][       Thread-607423][   transport.py][1871] : client lang: <none>
2025-07-01 14:24:27,528 [DEBUG][       Thread-607423][   transport.py][1871] : server lang: <none>
2025-07-01 14:24:27,528 [DEBUG][       Thread-607423][   transport.py][1871] : kex follows: False
2025-07-01 14:24:27,528 [DEBUG][       Thread-607423][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:24:27,528 [DEBUG][       Thread-607423][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:24:27,528 [DEBUG][       Thread-607423][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:24:27,528 [DEBUG][       Thread-607423][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:24:27,528 [DEBUG][       Thread-607423][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:24:27,528 [DEBUG][       Thread-607423][   transport.py][1871] : Compression: none
2025-07-01 14:24:27,528 [DEBUG][       Thread-607423][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:24:27,587 [DEBUG][       Thread-607423][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:24:27,587 [DEBUG][       Thread-607423][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:24:27,587 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:24:27,587 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:24:27,587 [DEBUG][       Thread-607423][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:24:27,644 [DEBUG][       Thread-607423][   transport.py][1871] : userauth is OK
2025-07-01 14:24:27,644 [DEBUG][       Thread-607423][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:24:27,644 [DEBUG][       Thread-607423][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:24:27,644 [DEBUG][       Thread-607423][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:24:27,644 [DEBUG][       Thread-607423][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:24:27,658 [ INFO][       Thread-607423][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:24:27,658 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:24:27,658 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:24:28,674 [DEBUG][       Thread-607423][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:24:28,675 [DEBUG][       Thread-607423][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:24:28,724 [DEBUG][       Thread-607423][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:24:28,724 [DEBUG][       Thread-607423][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:24:28,733 [DEBUG][       Thread-607423][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:24:28,741 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:24:28,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-07-01 14:24:28,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-07-01 14:24:28,761 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:24:28,761 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:24:28,761 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:24:28,772 [DEBUG][       Thread-607423][   transport.py][1871] : EOF in transport thread
2025-07-01 14:24:32,278 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:24:32,278 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:24:34,128 [DEBUG][Thread-607425 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:24:34,753 [DEBUG][Thread-607426 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:24:38,768 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:24:38,768 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:24:38,768 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:24:38,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-07-01 14:24:39,339 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 24, 31), 11.21, 46.84, 0.0, 44.85, 13.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:24:39,339 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:24:31
2025-07-01 14:24:39,442 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:24:39,446 [DEBUG][       Thread-607427][   transport.py][1871] : starting thread (client mode): 0x81d9720
2025-07-01 14:24:39,446 [DEBUG][       Thread-607427][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:24:39,458 [DEBUG][       Thread-607427][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:24:39,458 [ INFO][       Thread-607427][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:24:39,461 [DEBUG][       Thread-607427][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:24:39,461 [DEBUG][       Thread-607427][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:24:39,461 [DEBUG][       Thread-607427][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:24:39,461 [DEBUG][       Thread-607427][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:24:39,461 [DEBUG][       Thread-607427][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:24:39,461 [DEBUG][       Thread-607427][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:24:39,461 [DEBUG][       Thread-607427][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:24:39,462 [DEBUG][       Thread-607427][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:24:39,462 [DEBUG][       Thread-607427][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:24:39,462 [DEBUG][       Thread-607427][   transport.py][1871] : client lang: <none>
2025-07-01 14:24:39,462 [DEBUG][       Thread-607427][   transport.py][1871] : server lang: <none>
2025-07-01 14:24:39,462 [DEBUG][       Thread-607427][   transport.py][1871] : kex follows: False
2025-07-01 14:24:39,462 [DEBUG][       Thread-607427][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:24:39,462 [DEBUG][       Thread-607427][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:24:39,462 [DEBUG][       Thread-607427][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:24:39,462 [DEBUG][       Thread-607427][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:24:39,462 [DEBUG][       Thread-607427][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:24:39,462 [DEBUG][       Thread-607427][   transport.py][1871] : Compression: none
2025-07-01 14:24:39,462 [DEBUG][       Thread-607427][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:24:39,475 [DEBUG][       Thread-607427][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:24:39,475 [DEBUG][       Thread-607427][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:24:39,476 [DEBUG][       Thread-607427][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:24:39,476 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:24:39,476 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:24:39,476 [DEBUG][       Thread-607427][   transport.py][1871] : userauth is OK
2025-07-01 14:24:39,501 [ INFO][       Thread-607427][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:24:39,501 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:24:40,141 [DEBUG][       Thread-607427][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:24:40,141 [DEBUG][       Thread-607427][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:24:40,185 [DEBUG][       Thread-607427][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:24:40,185 [DEBUG][       Thread-607427][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:24:40,188 [DEBUG][       Thread-607427][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:24:40,199 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:24:40,199 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:24:40,201 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:24:40,202 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:24:40,206 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:24:40,207 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:24:40,207 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:24:40,208 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:24:40,208 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.516955 -999.00  +13.40  34.19     52   +3.80 1 2 2 1 1   887    0 9.28 -19.50 ----- 35.8 34.2 37.6 56.5 15.7 -20.4 15.2 -20.9 15.2 -20.2 15.8 -19.1
2025-07-01 14:24:40,208 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:24:40,208 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:24:40,208 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.516955
2025-07-01 14:24:40,208 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:24:40,208 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:24:40,208 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:24:40,208 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:24:40,208 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:24:40,208 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:24:31', tmtdew=11.21, humidity=46.84, cloud=0.0, wind=44.85, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:24:24.912', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:24:40,209 [DEBUG][       Thread-607427][   transport.py][1871] : EOF in transport thread
2025-07-01 14:24:40,304 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:24:40,316 [DEBUG][       Thread-607430][   transport.py][1871] : starting thread (client mode): 0x8107850
2025-07-01 14:24:40,316 [DEBUG][       Thread-607430][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:24:40,331 [DEBUG][       Thread-607430][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:24:40,331 [ INFO][       Thread-607430][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:24:40,339 [DEBUG][       Thread-607430][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:24:40,339 [DEBUG][       Thread-607430][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:24:40,339 [DEBUG][       Thread-607430][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:24:40,339 [DEBUG][       Thread-607430][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:24:40,339 [DEBUG][       Thread-607430][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:24:40,339 [DEBUG][       Thread-607430][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:24:40,339 [DEBUG][       Thread-607430][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:24:40,339 [DEBUG][       Thread-607430][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:24:40,339 [DEBUG][       Thread-607430][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:24:40,339 [DEBUG][       Thread-607430][   transport.py][1871] : client lang: <none>
2025-07-01 14:24:40,339 [DEBUG][       Thread-607430][   transport.py][1871] : server lang: <none>
2025-07-01 14:24:40,339 [DEBUG][       Thread-607430][   transport.py][1871] : kex follows: False
2025-07-01 14:24:40,339 [DEBUG][       Thread-607430][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:24:40,339 [DEBUG][       Thread-607430][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:24:40,339 [DEBUG][       Thread-607430][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:24:40,339 [DEBUG][       Thread-607430][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:24:40,339 [DEBUG][       Thread-607430][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:24:40,339 [DEBUG][       Thread-607430][   transport.py][1871] : Compression: none
2025-07-01 14:24:40,339 [DEBUG][       Thread-607430][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:24:40,395 [DEBUG][       Thread-607430][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:24:40,395 [DEBUG][       Thread-607430][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:24:40,395 [DEBUG][       Thread-607430][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:24:40,395 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:24:40,395 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:24:40,452 [DEBUG][       Thread-607430][   transport.py][1871] : userauth is OK
2025-07-01 14:24:40,452 [DEBUG][       Thread-607430][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:24:40,452 [DEBUG][       Thread-607430][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:24:40,452 [DEBUG][       Thread-607430][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:24:40,452 [DEBUG][       Thread-607430][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:24:40,470 [ INFO][       Thread-607430][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:24:40,470 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:24:40,471 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:24:41,492 [DEBUG][       Thread-607430][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:24:41,492 [DEBUG][       Thread-607430][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:24:41,540 [DEBUG][       Thread-607430][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:24:41,540 [DEBUG][       Thread-607430][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:24:41,554 [DEBUG][       Thread-607430][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:24:41,565 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:24:41,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-07-01 14:24:41,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-07-01 14:24:41,588 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:24:41,588 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:24:41,588 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:24:41,599 [DEBUG][       Thread-607430][   transport.py][1871] : EOF in transport thread
2025-07-01 14:24:43,144 [DEBUG][Thread-607432 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:24:51,596 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:24:51,596 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:24:51,596 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:24:51,599 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:24:52,141 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 24, 31), 11.21, 46.84, 0.0, 44.85, 13.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:24:52,142 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:24:31
2025-07-01 14:24:52,168 [DEBUG][Thread-607433 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:24:52,251 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:24:52,257 [DEBUG][       Thread-607434][   transport.py][1871] : starting thread (client mode): 0x81d9ba0
2025-07-01 14:24:52,257 [DEBUG][       Thread-607434][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:24:52,278 [DEBUG][       Thread-607434][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:24:52,278 [ INFO][       Thread-607434][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:24:52,281 [DEBUG][       Thread-607434][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:24:52,282 [DEBUG][       Thread-607434][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:24:52,282 [DEBUG][       Thread-607434][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:24:52,282 [DEBUG][       Thread-607434][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:24:52,282 [DEBUG][       Thread-607434][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:24:52,282 [DEBUG][       Thread-607434][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:24:52,282 [DEBUG][       Thread-607434][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:24:52,282 [DEBUG][       Thread-607434][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:24:52,282 [DEBUG][       Thread-607434][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:24:52,282 [DEBUG][       Thread-607434][   transport.py][1871] : client lang: <none>
2025-07-01 14:24:52,282 [DEBUG][       Thread-607434][   transport.py][1871] : server lang: <none>
2025-07-01 14:24:52,282 [DEBUG][       Thread-607434][   transport.py][1871] : kex follows: False
2025-07-01 14:24:52,282 [DEBUG][       Thread-607434][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:24:52,282 [DEBUG][       Thread-607434][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:24:52,282 [DEBUG][       Thread-607434][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:24:52,282 [DEBUG][       Thread-607434][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:24:52,282 [DEBUG][       Thread-607434][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:24:52,282 [DEBUG][       Thread-607434][   transport.py][1871] : Compression: none
2025-07-01 14:24:52,282 [DEBUG][       Thread-607434][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:24:52,299 [DEBUG][       Thread-607434][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:24:52,299 [DEBUG][       Thread-607434][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:24:52,299 [DEBUG][       Thread-607434][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:24:52,300 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:24:52,300 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:24:52,301 [DEBUG][       Thread-607434][   transport.py][1871] : userauth is OK
2025-07-01 14:24:52,326 [ INFO][       Thread-607434][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:24:52,326 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:24:52,949 [DEBUG][       Thread-607434][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:24:52,949 [DEBUG][       Thread-607434][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:24:52,993 [DEBUG][       Thread-607434][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:24:52,993 [DEBUG][       Thread-607434][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:24:52,995 [DEBUG][       Thread-607434][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:24:53,009 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:24:53,009 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:24:53,011 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:24:53,012 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:24:53,018 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:24:53,019 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:24:53,019 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:24:53,020 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:24:53,020 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.516955 -999.00  +13.40  34.19     52   +3.80 1 2 2 1 1   887    0 9.28 -19.50 ----- 35.8 34.2 37.6 56.5 15.7 -20.4 15.2 -20.9 15.2 -20.2 15.8 -19.1
2025-07-01 14:24:53,020 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:24:53,020 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:24:53,020 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.516955
2025-07-01 14:24:53,021 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:24:53,021 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:24:53,021 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:24:53,021 [DEBUG][       Thread-607434][   transport.py][1871] : EOF in transport thread
2025-07-01 14:24:53,022 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:24:53,022 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:24:53,022 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:24:31', tmtdew=11.21, humidity=46.84, cloud=0.0, wind=44.85, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:24:24.912', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:24:53,098 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:24:53,109 [DEBUG][       Thread-607437][   transport.py][1871] : starting thread (client mode): 0x81e6260
2025-07-01 14:24:53,109 [DEBUG][       Thread-607437][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:24:53,127 [DEBUG][       Thread-607437][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:24:53,127 [ INFO][       Thread-607437][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:24:53,134 [DEBUG][       Thread-607437][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:24:53,134 [DEBUG][       Thread-607437][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:24:53,134 [DEBUG][       Thread-607437][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:24:53,134 [DEBUG][       Thread-607437][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:24:53,134 [DEBUG][       Thread-607437][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:24:53,134 [DEBUG][       Thread-607437][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:24:53,134 [DEBUG][       Thread-607437][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:24:53,134 [DEBUG][       Thread-607437][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:24:53,134 [DEBUG][       Thread-607437][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:24:53,134 [DEBUG][       Thread-607437][   transport.py][1871] : client lang: <none>
2025-07-01 14:24:53,134 [DEBUG][       Thread-607437][   transport.py][1871] : server lang: <none>
2025-07-01 14:24:53,134 [DEBUG][       Thread-607437][   transport.py][1871] : kex follows: False
2025-07-01 14:24:53,134 [DEBUG][       Thread-607437][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:24:53,134 [DEBUG][       Thread-607437][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:24:53,134 [DEBUG][       Thread-607437][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:24:53,134 [DEBUG][       Thread-607437][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:24:53,134 [DEBUG][       Thread-607437][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:24:53,134 [DEBUG][       Thread-607437][   transport.py][1871] : Compression: none
2025-07-01 14:24:53,134 [DEBUG][       Thread-607437][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:24:53,198 [DEBUG][       Thread-607437][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:24:53,199 [DEBUG][       Thread-607437][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:24:53,199 [DEBUG][       Thread-607437][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:24:53,199 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:24:53,199 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:24:53,256 [DEBUG][       Thread-607437][   transport.py][1871] : userauth is OK
2025-07-01 14:24:53,256 [DEBUG][       Thread-607437][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:24:53,256 [DEBUG][       Thread-607437][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:24:53,256 [DEBUG][       Thread-607437][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:24:53,256 [DEBUG][       Thread-607437][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:24:53,270 [ INFO][       Thread-607437][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:24:53,270 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:24:53,270 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:24:54,330 [DEBUG][       Thread-607437][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:24:54,330 [DEBUG][       Thread-607437][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:24:54,379 [DEBUG][       Thread-607437][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:24:54,379 [DEBUG][       Thread-607437][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:24:54,388 [DEBUG][       Thread-607437][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:24:54,396 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:24:54,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-07-01 14:24:54,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-07-01 14:24:54,412 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:24:54,412 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:24:54,413 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:24:54,420 [DEBUG][       Thread-607437][   transport.py][1871] : EOF in transport thread
2025-07-01 14:25:01,183 [DEBUG][Thread-607439 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:25:04,420 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:25:04,420 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:25:04,420 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:25:04,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-07-01 14:25:04,981 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 24, 31), 11.21, 46.84, 0.0, 44.85, 13.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:25:04,981 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:24:31
2025-07-01 14:25:05,071 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:25:05,075 [DEBUG][       Thread-607440][   transport.py][1871] : starting thread (client mode): 0x81da6e0
2025-07-01 14:25:05,075 [DEBUG][       Thread-607440][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:25:05,089 [DEBUG][       Thread-607440][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:25:05,089 [ INFO][       Thread-607440][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:25:05,091 [DEBUG][       Thread-607440][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:25:05,091 [DEBUG][       Thread-607440][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:25:05,091 [DEBUG][       Thread-607440][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:25:05,091 [DEBUG][       Thread-607440][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:25:05,091 [DEBUG][       Thread-607440][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:25:05,091 [DEBUG][       Thread-607440][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:25:05,091 [DEBUG][       Thread-607440][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:25:05,091 [DEBUG][       Thread-607440][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:25:05,091 [DEBUG][       Thread-607440][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:25:05,091 [DEBUG][       Thread-607440][   transport.py][1871] : client lang: <none>
2025-07-01 14:25:05,091 [DEBUG][       Thread-607440][   transport.py][1871] : server lang: <none>
2025-07-01 14:25:05,091 [DEBUG][       Thread-607440][   transport.py][1871] : kex follows: False
2025-07-01 14:25:05,091 [DEBUG][       Thread-607440][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:25:05,091 [DEBUG][       Thread-607440][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:25:05,091 [DEBUG][       Thread-607440][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:25:05,091 [DEBUG][       Thread-607440][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:25:05,091 [DEBUG][       Thread-607440][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:25:05,091 [DEBUG][       Thread-607440][   transport.py][1871] : Compression: none
2025-07-01 14:25:05,091 [DEBUG][       Thread-607440][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:25:05,098 [DEBUG][       Thread-607440][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:25:05,098 [DEBUG][       Thread-607440][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:25:05,098 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:25:05,098 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:25:05,098 [DEBUG][       Thread-607440][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:25:05,099 [DEBUG][       Thread-607440][   transport.py][1871] : userauth is OK
2025-07-01 14:25:05,113 [ INFO][       Thread-607440][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:25:05,113 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:25:05,702 [DEBUG][       Thread-607440][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:25:05,702 [DEBUG][       Thread-607440][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:25:05,744 [DEBUG][       Thread-607440][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:25:05,744 [DEBUG][       Thread-607440][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:25:05,746 [DEBUG][       Thread-607440][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:25:05,759 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:25:05,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:25:05,760 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:25:05,761 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:25:05,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:25:05,764 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:25:05,764 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:25:05,765 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:25:05,765 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.517302 -999.00  +13.60  35.84     52   +4.00 1 2 2 1 1   887    0 8.95 -21.74 ----- 32.6 35.8 32.4 48.7 15.7 -20.4 15.2 -21.0 15.2 -19.9 15.8 -18.8
2025-07-01 14:25:05,765 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:25:05,765 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:25:05,765 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.517302
2025-07-01 14:25:05,765 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:25:05,765 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:25:05,765 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:25:05,765 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:25:05,765 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:25:05,765 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:24:31', tmtdew=11.21, humidity=46.84, cloud=0.0, wind=44.85, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:24:54.893', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:25:05,766 [DEBUG][       Thread-607440][   transport.py][1871] : EOF in transport thread
2025-07-01 14:25:05,839 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:25:05,849 [DEBUG][       Thread-607443][   transport.py][1871] : starting thread (client mode): 0x82b1f30
2025-07-01 14:25:05,849 [DEBUG][       Thread-607443][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:25:05,863 [DEBUG][       Thread-607443][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:25:05,863 [ INFO][       Thread-607443][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:25:05,870 [DEBUG][       Thread-607443][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:25:05,870 [DEBUG][       Thread-607443][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:25:05,870 [DEBUG][       Thread-607443][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:25:05,870 [DEBUG][       Thread-607443][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:25:05,870 [DEBUG][       Thread-607443][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:25:05,870 [DEBUG][       Thread-607443][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:25:05,871 [DEBUG][       Thread-607443][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:25:05,871 [DEBUG][       Thread-607443][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:25:05,871 [DEBUG][       Thread-607443][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:25:05,871 [DEBUG][       Thread-607443][   transport.py][1871] : client lang: <none>
2025-07-01 14:25:05,871 [DEBUG][       Thread-607443][   transport.py][1871] : server lang: <none>
2025-07-01 14:25:05,871 [DEBUG][       Thread-607443][   transport.py][1871] : kex follows: False
2025-07-01 14:25:05,871 [DEBUG][       Thread-607443][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:25:05,871 [DEBUG][       Thread-607443][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:25:05,871 [DEBUG][       Thread-607443][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:25:05,871 [DEBUG][       Thread-607443][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:25:05,871 [DEBUG][       Thread-607443][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:25:05,871 [DEBUG][       Thread-607443][   transport.py][1871] : Compression: none
2025-07-01 14:25:05,871 [DEBUG][       Thread-607443][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:25:05,931 [DEBUG][       Thread-607443][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:25:05,931 [DEBUG][       Thread-607443][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:25:05,932 [DEBUG][       Thread-607443][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:25:05,932 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:25:05,932 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:25:06,000 [DEBUG][       Thread-607443][   transport.py][1871] : userauth is OK
2025-07-01 14:25:06,000 [DEBUG][       Thread-607443][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:25:06,000 [DEBUG][       Thread-607443][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:25:06,000 [DEBUG][       Thread-607443][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:25:06,000 [DEBUG][       Thread-607443][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:25:06,014 [ INFO][       Thread-607443][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:25:06,014 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:25:06,014 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:25:07,069 [DEBUG][       Thread-607443][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:25:07,069 [DEBUG][       Thread-607443][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:25:07,123 [DEBUG][       Thread-607443][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:25:07,123 [DEBUG][       Thread-607443][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:25:07,132 [DEBUG][       Thread-607443][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:25:07,140 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:25:07,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-07-01 14:25:07,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-07-01 14:25:07,156 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:25:07,156 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:25:07,156 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:25:07,165 [DEBUG][       Thread-607443][   transport.py][1871] : EOF in transport thread
2025-07-01 14:25:10,199 [DEBUG][Thread-607445 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:25:17,166 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:25:17,166 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:25:17,166 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:25:17,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-07-01 14:25:17,790 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 25, 2), 11.03, 47.43, 0.0, 46.42, 13.58, 0, 0, 0, 2, 1, 0),)
2025-07-01 14:25:17,790 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:25:02
2025-07-01 14:25:17,903 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:25:17,908 [DEBUG][       Thread-607446][   transport.py][1871] : starting thread (client mode): 0x75a9e70
2025-07-01 14:25:17,908 [DEBUG][       Thread-607446][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:25:17,928 [DEBUG][       Thread-607446][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:25:17,928 [ INFO][       Thread-607446][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:25:17,931 [DEBUG][       Thread-607446][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:25:17,931 [DEBUG][       Thread-607446][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:25:17,931 [DEBUG][       Thread-607446][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:25:17,931 [DEBUG][       Thread-607446][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:25:17,931 [DEBUG][       Thread-607446][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:25:17,931 [DEBUG][       Thread-607446][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:25:17,931 [DEBUG][       Thread-607446][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:25:17,931 [DEBUG][       Thread-607446][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:25:17,931 [DEBUG][       Thread-607446][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:25:17,931 [DEBUG][       Thread-607446][   transport.py][1871] : client lang: <none>
2025-07-01 14:25:17,931 [DEBUG][       Thread-607446][   transport.py][1871] : server lang: <none>
2025-07-01 14:25:17,931 [DEBUG][       Thread-607446][   transport.py][1871] : kex follows: False
2025-07-01 14:25:17,931 [DEBUG][       Thread-607446][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:25:17,931 [DEBUG][       Thread-607446][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:25:17,931 [DEBUG][       Thread-607446][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:25:17,931 [DEBUG][       Thread-607446][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:25:17,931 [DEBUG][       Thread-607446][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:25:17,931 [DEBUG][       Thread-607446][   transport.py][1871] : Compression: none
2025-07-01 14:25:17,931 [DEBUG][       Thread-607446][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:25:17,949 [DEBUG][       Thread-607446][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:25:17,950 [DEBUG][       Thread-607446][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:25:17,950 [DEBUG][       Thread-607446][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:25:17,950 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:25:17,950 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:25:17,950 [DEBUG][       Thread-607446][   transport.py][1871] : userauth is OK
2025-07-01 14:25:17,974 [ INFO][       Thread-607446][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:25:17,974 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:25:18,656 [DEBUG][       Thread-607446][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:25:18,656 [DEBUG][       Thread-607446][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:25:18,701 [DEBUG][       Thread-607446][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:25:18,701 [DEBUG][       Thread-607446][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:25:18,703 [DEBUG][       Thread-607446][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:25:18,717 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:25:18,717 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:25:18,718 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:25:18,719 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:25:18,722 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:25:18,723 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:25:18,723 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:25:18,723 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:25:18,723 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.517302 -999.00  +13.60  35.84     52   +4.00 1 2 2 1 1   887    0 8.95 -21.74 ----- 32.6 35.8 32.4 48.7 15.7 -20.4 15.2 -21.0 15.2 -19.9 15.8 -18.8
2025-07-01 14:25:18,723 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:25:18,723 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:25:18,723 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.517302
2025-07-01 14:25:18,723 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:25:18,723 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:25:18,723 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:25:18,723 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:25:18,723 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:25:18,723 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:25:02', tmtdew=11.03, humidity=47.43, cloud=0.0, wind=46.42, temperature=13.58, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=1, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:24:54.893', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:25:18,724 [DEBUG][       Thread-607446][   transport.py][1871] : EOF in transport thread
2025-07-01 14:25:18,796 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:25:18,808 [DEBUG][       Thread-607449][   transport.py][1871] : starting thread (client mode): 0x8393ee0
2025-07-01 14:25:18,808 [DEBUG][       Thread-607449][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:25:18,824 [DEBUG][       Thread-607449][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:25:18,825 [ INFO][       Thread-607449][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:25:18,834 [DEBUG][       Thread-607449][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:25:18,834 [DEBUG][       Thread-607449][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:25:18,834 [DEBUG][       Thread-607449][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:25:18,834 [DEBUG][       Thread-607449][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:25:18,834 [DEBUG][       Thread-607449][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:25:18,834 [DEBUG][       Thread-607449][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:25:18,834 [DEBUG][       Thread-607449][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:25:18,834 [DEBUG][       Thread-607449][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:25:18,834 [DEBUG][       Thread-607449][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:25:18,834 [DEBUG][       Thread-607449][   transport.py][1871] : client lang: <none>
2025-07-01 14:25:18,834 [DEBUG][       Thread-607449][   transport.py][1871] : server lang: <none>
2025-07-01 14:25:18,834 [DEBUG][       Thread-607449][   transport.py][1871] : kex follows: False
2025-07-01 14:25:18,834 [DEBUG][       Thread-607449][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:25:18,834 [DEBUG][       Thread-607449][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:25:18,834 [DEBUG][       Thread-607449][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:25:18,834 [DEBUG][       Thread-607449][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:25:18,834 [DEBUG][       Thread-607449][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:25:18,834 [DEBUG][       Thread-607449][   transport.py][1871] : Compression: none
2025-07-01 14:25:18,834 [DEBUG][       Thread-607449][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:25:18,890 [DEBUG][       Thread-607449][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:25:18,891 [DEBUG][       Thread-607449][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:25:18,891 [DEBUG][       Thread-607449][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:25:18,891 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:25:18,891 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:25:18,953 [DEBUG][       Thread-607449][   transport.py][1871] : userauth is OK
2025-07-01 14:25:18,953 [DEBUG][       Thread-607449][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:25:18,953 [DEBUG][       Thread-607449][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:25:18,953 [DEBUG][       Thread-607449][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:25:18,953 [DEBUG][       Thread-607449][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:25:18,967 [ INFO][       Thread-607449][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:25:18,967 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:25:18,967 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:25:19,215 [DEBUG][Thread-607451 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:25:19,945 [DEBUG][       Thread-607449][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:25:19,945 [DEBUG][       Thread-607449][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:25:19,996 [DEBUG][       Thread-607449][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:25:19,996 [DEBUG][       Thread-607449][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:25:20,006 [DEBUG][       Thread-607449][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:25:20,015 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:25:20,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-07-01 14:25: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') -> 00000000
2025-07-01 14:25:20,033 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:25:20,033 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:25:20,033 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:25:20,041 [DEBUG][       Thread-607449][   transport.py][1871] : EOF in transport thread
2025-07-01 14:25:28,238 [DEBUG][Thread-607452 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:25:30,044 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:25:30,044 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:25:30,044 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:25:30,046 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:25:30,648 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 25, 2), 11.03, 47.43, 0.0, 46.42, 13.58, 0, 0, 0, 2, 1, 0),)
2025-07-01 14:25:30,648 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:25:02
2025-07-01 14:25:30,757 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:25:30,763 [DEBUG][       Thread-607453][   transport.py][1871] : starting thread (client mode): 0x8170190
2025-07-01 14:25:30,763 [DEBUG][       Thread-607453][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:25:30,784 [DEBUG][       Thread-607453][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:25:30,784 [ INFO][       Thread-607453][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:25:30,788 [DEBUG][       Thread-607453][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:25:30,788 [DEBUG][       Thread-607453][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:25:30,788 [DEBUG][       Thread-607453][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:25:30,788 [DEBUG][       Thread-607453][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:25:30,788 [DEBUG][       Thread-607453][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:25:30,788 [DEBUG][       Thread-607453][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:25:30,788 [DEBUG][       Thread-607453][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:25:30,788 [DEBUG][       Thread-607453][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:25:30,788 [DEBUG][       Thread-607453][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:25:30,788 [DEBUG][       Thread-607453][   transport.py][1871] : client lang: <none>
2025-07-01 14:25:30,788 [DEBUG][       Thread-607453][   transport.py][1871] : server lang: <none>
2025-07-01 14:25:30,788 [DEBUG][       Thread-607453][   transport.py][1871] : kex follows: False
2025-07-01 14:25:30,788 [DEBUG][       Thread-607453][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:25:30,788 [DEBUG][       Thread-607453][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:25:30,788 [DEBUG][       Thread-607453][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:25:30,788 [DEBUG][       Thread-607453][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:25:30,788 [DEBUG][       Thread-607453][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:25:30,788 [DEBUG][       Thread-607453][   transport.py][1871] : Compression: none
2025-07-01 14:25:30,788 [DEBUG][       Thread-607453][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:25:30,803 [DEBUG][       Thread-607453][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:25:30,803 [DEBUG][       Thread-607453][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:25:30,803 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:25:30,803 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:25:30,804 [DEBUG][       Thread-607453][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:25:30,804 [DEBUG][       Thread-607453][   transport.py][1871] : userauth is OK
2025-07-01 14:25:30,817 [ INFO][       Thread-607453][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:25:30,817 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:25:31,500 [DEBUG][       Thread-607453][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:25:31,500 [DEBUG][       Thread-607453][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:25:31,541 [DEBUG][       Thread-607453][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:25:31,541 [DEBUG][       Thread-607453][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:25:31,543 [DEBUG][       Thread-607453][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:25:31,554 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:25:31,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:25:31,555 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:25:31,556 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:25:31,560 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:25:31,561 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:25:31,561 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:25:31,561 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:25:31,561 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.517302 -999.00  +13.60  35.84     52   +4.00 1 2 2 1 1   887    0 8.95 -21.74 ----- 32.6 35.8 32.4 48.7 15.7 -20.4 15.2 -21.0 15.2 -19.9 15.8 -18.8
2025-07-01 14:25:31,561 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:25:31,561 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:25:31,561 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.517302
2025-07-01 14:25:31,561 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:25:31,561 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:25:31,561 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:25:31,561 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:25:31,561 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:25:31,561 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:25:02', tmtdew=11.03, humidity=47.43, cloud=0.0, wind=46.42, temperature=13.58, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=1, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:24:54.893', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:25:31,562 [DEBUG][       Thread-607453][   transport.py][1871] : EOF in transport thread
2025-07-01 14:25:31,634 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:25:31,647 [DEBUG][       Thread-607456][   transport.py][1871] : starting thread (client mode): 0x818d480
2025-07-01 14:25:31,647 [DEBUG][       Thread-607456][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:25:31,661 [DEBUG][       Thread-607456][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:25:31,662 [ INFO][       Thread-607456][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:25:31,669 [DEBUG][       Thread-607456][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:25:31,669 [DEBUG][       Thread-607456][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:25:31,669 [DEBUG][       Thread-607456][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:25:31,669 [DEBUG][       Thread-607456][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:25:31,669 [DEBUG][       Thread-607456][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:25:31,669 [DEBUG][       Thread-607456][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:25:31,669 [DEBUG][       Thread-607456][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:25:31,669 [DEBUG][       Thread-607456][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:25:31,669 [DEBUG][       Thread-607456][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:25:31,669 [DEBUG][       Thread-607456][   transport.py][1871] : client lang: <none>
2025-07-01 14:25:31,669 [DEBUG][       Thread-607456][   transport.py][1871] : server lang: <none>
2025-07-01 14:25:31,669 [DEBUG][       Thread-607456][   transport.py][1871] : kex follows: False
2025-07-01 14:25:31,669 [DEBUG][       Thread-607456][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:25:31,669 [DEBUG][       Thread-607456][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:25:31,669 [DEBUG][       Thread-607456][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:25:31,669 [DEBUG][       Thread-607456][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:25:31,669 [DEBUG][       Thread-607456][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:25:31,669 [DEBUG][       Thread-607456][   transport.py][1871] : Compression: none
2025-07-01 14:25:31,669 [DEBUG][       Thread-607456][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:25:31,726 [DEBUG][       Thread-607456][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:25:31,726 [DEBUG][       Thread-607456][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:25:31,726 [DEBUG][       Thread-607456][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:25:31,726 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:25:31,726 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:25:31,783 [DEBUG][       Thread-607456][   transport.py][1871] : userauth is OK
2025-07-01 14:25:31,783 [DEBUG][       Thread-607456][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:25:31,783 [DEBUG][       Thread-607456][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:25:31,783 [DEBUG][       Thread-607456][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:25:31,784 [DEBUG][       Thread-607456][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:25:31,797 [ INFO][       Thread-607456][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:25:31,798 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:25:31,798 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:25:32,416 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:25:32,417 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:25:32,786 [DEBUG][       Thread-607456][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:25:32,786 [DEBUG][       Thread-607456][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:25:32,836 [DEBUG][       Thread-607456][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:25:32,836 [DEBUG][       Thread-607456][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:25:32,845 [DEBUG][       Thread-607456][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:25:32,853 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:25:32,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')
2025-07-01 14:25:32,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') -> 00000000
2025-07-01 14:25:32,869 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:25:32,869 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:25:32,869 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:25:32,876 [DEBUG][       Thread-607456][   transport.py][1871] : EOF in transport thread
2025-07-01 14:25:34,801 [DEBUG][Thread-607458 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:25:37,255 [DEBUG][Thread-607459 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:25:42,876 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:25:42,876 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:25:42,876 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:25:42,877 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:25:43,412 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 25, 34), 10.97, 47.39, 0.0, 37.14, 13.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:25:43,412 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:25:34
2025-07-01 14:25:43,526 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:25:43,530 [DEBUG][       Thread-607460][   transport.py][1871] : starting thread (client mode): 0x75a90c0
2025-07-01 14:25:43,530 [DEBUG][       Thread-607460][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:25:43,551 [DEBUG][       Thread-607460][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:25:43,551 [ INFO][       Thread-607460][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:25:43,552 [DEBUG][       Thread-607460][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:25:43,552 [DEBUG][       Thread-607460][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:25:43,552 [DEBUG][       Thread-607460][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:25:43,552 [DEBUG][       Thread-607460][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:25:43,552 [DEBUG][       Thread-607460][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:25:43,552 [DEBUG][       Thread-607460][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:25:43,552 [DEBUG][       Thread-607460][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:25:43,552 [DEBUG][       Thread-607460][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:25:43,552 [DEBUG][       Thread-607460][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:25:43,552 [DEBUG][       Thread-607460][   transport.py][1871] : client lang: <none>
2025-07-01 14:25:43,552 [DEBUG][       Thread-607460][   transport.py][1871] : server lang: <none>
2025-07-01 14:25:43,552 [DEBUG][       Thread-607460][   transport.py][1871] : kex follows: False
2025-07-01 14:25:43,552 [DEBUG][       Thread-607460][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:25:43,552 [DEBUG][       Thread-607460][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:25:43,552 [DEBUG][       Thread-607460][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:25:43,552 [DEBUG][       Thread-607460][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:25:43,552 [DEBUG][       Thread-607460][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:25:43,552 [DEBUG][       Thread-607460][   transport.py][1871] : Compression: none
2025-07-01 14:25:43,552 [DEBUG][       Thread-607460][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:25:43,570 [DEBUG][       Thread-607460][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:25:43,570 [DEBUG][       Thread-607460][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:25:43,570 [DEBUG][       Thread-607460][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:25:43,570 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:25:43,570 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:25:43,571 [DEBUG][       Thread-607460][   transport.py][1871] : userauth is OK
2025-07-01 14:25:43,583 [ INFO][       Thread-607460][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:25:43,584 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:25:44,233 [DEBUG][       Thread-607460][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:25:44,233 [DEBUG][       Thread-607460][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:25:44,276 [DEBUG][       Thread-607460][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:25:44,276 [DEBUG][       Thread-607460][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:25:44,279 [DEBUG][       Thread-607460][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:25:44,291 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:25:44,291 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:25:44,293 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:25:44,294 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:25:44,297 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:25:44,298 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:25:44,298 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:25:44,298 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:25:44,298 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.517649 -999.00  +13.50  42.29     52   +3.80 1 2 2 1 1   887    0 9.15 -22.28 ----- 36.8 42.3 37.8 52.7 15.7 -20.2 15.2 -21.3 15.2 -20.3 15.7 -18.9
2025-07-01 14:25:44,298 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:25:44,298 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:25:44,298 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.517649
2025-07-01 14:25:44,299 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:25:44,299 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:25:44,299 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:25:44,299 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:25:44,299 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:25:44,299 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:25:34', tmtdew=10.97, humidity=47.39, cloud=0.0, wind=37.14, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:25:24.874', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:25:44,299 [DEBUG][       Thread-607460][   transport.py][1871] : EOF in transport thread
2025-07-01 14:25:44,374 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:25:44,383 [DEBUG][       Thread-607463][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 14:25:44,383 [DEBUG][       Thread-607463][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:25:44,406 [DEBUG][       Thread-607463][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:25:44,406 [ INFO][       Thread-607463][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:25:44,413 [DEBUG][       Thread-607463][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:25:44,413 [DEBUG][       Thread-607463][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:25:44,413 [DEBUG][       Thread-607463][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:25:44,413 [DEBUG][       Thread-607463][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:25:44,413 [DEBUG][       Thread-607463][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:25:44,413 [DEBUG][       Thread-607463][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:25:44,413 [DEBUG][       Thread-607463][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:25:44,413 [DEBUG][       Thread-607463][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:25:44,413 [DEBUG][       Thread-607463][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:25:44,413 [DEBUG][       Thread-607463][   transport.py][1871] : client lang: <none>
2025-07-01 14:25:44,413 [DEBUG][       Thread-607463][   transport.py][1871] : server lang: <none>
2025-07-01 14:25:44,413 [DEBUG][       Thread-607463][   transport.py][1871] : kex follows: False
2025-07-01 14:25:44,413 [DEBUG][       Thread-607463][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:25:44,413 [DEBUG][       Thread-607463][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:25:44,413 [DEBUG][       Thread-607463][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:25:44,413 [DEBUG][       Thread-607463][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:25:44,413 [DEBUG][       Thread-607463][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:25:44,413 [DEBUG][       Thread-607463][   transport.py][1871] : Compression: none
2025-07-01 14:25:44,413 [DEBUG][       Thread-607463][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:25:44,470 [DEBUG][       Thread-607463][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:25:44,470 [DEBUG][       Thread-607463][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:25:44,470 [DEBUG][       Thread-607463][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:25:44,470 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:25:44,471 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:25:44,533 [DEBUG][       Thread-607463][   transport.py][1871] : userauth is OK
2025-07-01 14:25:44,533 [DEBUG][       Thread-607463][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:25:44,533 [DEBUG][       Thread-607463][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:25:44,533 [DEBUG][       Thread-607463][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:25:44,533 [DEBUG][       Thread-607463][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:25:44,548 [ INFO][       Thread-607463][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:25:44,548 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:25:44,548 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:25:45,581 [DEBUG][       Thread-607463][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:25:45,581 [DEBUG][       Thread-607463][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:25:45,632 [DEBUG][       Thread-607463][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:25:45,632 [DEBUG][       Thread-607463][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:25:45,640 [DEBUG][       Thread-607463][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:25:45,649 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:25:45,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-07-01 14:25:45,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-07-01 14:25:45,665 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:25:45,665 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:25:45,665 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:25:45,674 [DEBUG][       Thread-607463][   transport.py][1871] : EOF in transport thread
2025-07-01 14:25:46,270 [DEBUG][Thread-607465 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:25:55,291 [DEBUG][Thread-607466 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:25:55,676 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:25:55,676 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:25:55,676 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:25:55,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-07-01 14:25:56,175 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 25, 34), 10.97, 47.39, 0.0, 37.14, 13.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:25:56,176 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:25:34
2025-07-01 14:25:56,283 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:25:56,289 [DEBUG][       Thread-607467][   transport.py][1871] : starting thread (client mode): 0x81cb1f0
2025-07-01 14:25:56,289 [DEBUG][       Thread-607467][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:25:56,309 [DEBUG][       Thread-607467][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:25:56,309 [ INFO][       Thread-607467][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:25:56,312 [DEBUG][       Thread-607467][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:25:56,312 [DEBUG][       Thread-607467][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:25:56,312 [DEBUG][       Thread-607467][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:25:56,312 [DEBUG][       Thread-607467][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:25:56,312 [DEBUG][       Thread-607467][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:25:56,312 [DEBUG][       Thread-607467][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:25:56,312 [DEBUG][       Thread-607467][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:25:56,312 [DEBUG][       Thread-607467][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:25:56,312 [DEBUG][       Thread-607467][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:25:56,312 [DEBUG][       Thread-607467][   transport.py][1871] : client lang: <none>
2025-07-01 14:25:56,312 [DEBUG][       Thread-607467][   transport.py][1871] : server lang: <none>
2025-07-01 14:25:56,312 [DEBUG][       Thread-607467][   transport.py][1871] : kex follows: False
2025-07-01 14:25:56,312 [DEBUG][       Thread-607467][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:25:56,312 [DEBUG][       Thread-607467][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:25:56,312 [DEBUG][       Thread-607467][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:25:56,312 [DEBUG][       Thread-607467][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:25:56,312 [DEBUG][       Thread-607467][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:25:56,312 [DEBUG][       Thread-607467][   transport.py][1871] : Compression: none
2025-07-01 14:25:56,312 [DEBUG][       Thread-607467][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:25:56,326 [DEBUG][       Thread-607467][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:25:56,327 [DEBUG][       Thread-607467][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:25:56,327 [DEBUG][       Thread-607467][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:25:56,327 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:25:56,327 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:25:56,327 [DEBUG][       Thread-607467][   transport.py][1871] : userauth is OK
2025-07-01 14:25:56,353 [ INFO][       Thread-607467][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:25:56,353 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:25:56,983 [DEBUG][       Thread-607467][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:25:56,983 [DEBUG][       Thread-607467][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:25:57,024 [DEBUG][       Thread-607467][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:25:57,024 [DEBUG][       Thread-607467][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:25:57,027 [DEBUG][       Thread-607467][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:25:57,038 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:25:57,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:25:57,039 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:25:57,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:25:57,043 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:25:57,044 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:25:57,044 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:25:57,044 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:25:57,044 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.517649 -999.00  +13.50  42.29     52   +3.80 1 2 2 1 1   887    0 9.15 -22.28 ----- 36.8 42.3 37.8 52.7 15.7 -20.2 15.2 -21.3 15.2 -20.3 15.7 -18.9
2025-07-01 14:25:57,044 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:25:57,044 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:25:57,044 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.517649
2025-07-01 14:25:57,044 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:25:57,044 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:25:57,044 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:25:57,044 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:25:57,044 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:25:57,044 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:25:34', tmtdew=10.97, humidity=47.39, cloud=0.0, wind=37.14, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:25:24.874', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:25:57,045 [DEBUG][       Thread-607467][   transport.py][1871] : EOF in transport thread
2025-07-01 14:25:57,117 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:25:57,129 [DEBUG][       Thread-607470][   transport.py][1871] : starting thread (client mode): 0x75a8040
2025-07-01 14:25:57,129 [DEBUG][       Thread-607470][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:25:57,145 [DEBUG][       Thread-607470][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:25:57,145 [ INFO][       Thread-607470][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:25:57,152 [DEBUG][       Thread-607470][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:25:57,152 [DEBUG][       Thread-607470][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:25:57,152 [DEBUG][       Thread-607470][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:25:57,152 [DEBUG][       Thread-607470][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:25:57,152 [DEBUG][       Thread-607470][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:25:57,152 [DEBUG][       Thread-607470][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:25:57,152 [DEBUG][       Thread-607470][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:25:57,152 [DEBUG][       Thread-607470][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:25:57,152 [DEBUG][       Thread-607470][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:25:57,152 [DEBUG][       Thread-607470][   transport.py][1871] : client lang: <none>
2025-07-01 14:25:57,152 [DEBUG][       Thread-607470][   transport.py][1871] : server lang: <none>
2025-07-01 14:25:57,152 [DEBUG][       Thread-607470][   transport.py][1871] : kex follows: False
2025-07-01 14:25:57,152 [DEBUG][       Thread-607470][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:25:57,152 [DEBUG][       Thread-607470][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:25:57,152 [DEBUG][       Thread-607470][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:25:57,152 [DEBUG][       Thread-607470][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:25:57,152 [DEBUG][       Thread-607470][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:25:57,152 [DEBUG][       Thread-607470][   transport.py][1871] : Compression: none
2025-07-01 14:25:57,152 [DEBUG][       Thread-607470][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:25:57,210 [DEBUG][       Thread-607470][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:25:57,210 [DEBUG][       Thread-607470][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:25:57,210 [DEBUG][       Thread-607470][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:25:57,210 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:25:57,211 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:25:57,267 [DEBUG][       Thread-607470][   transport.py][1871] : userauth is OK
2025-07-01 14:25:57,267 [DEBUG][       Thread-607470][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:25:57,267 [DEBUG][       Thread-607470][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:25:57,267 [DEBUG][       Thread-607470][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:25:57,267 [DEBUG][       Thread-607470][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:25:57,282 [ INFO][       Thread-607470][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:25:57,282 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:25:57,282 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:25:58,289 [DEBUG][       Thread-607470][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:25:58,289 [DEBUG][       Thread-607470][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:25:58,339 [DEBUG][       Thread-607470][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:25:58,339 [DEBUG][       Thread-607470][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:25:58,348 [DEBUG][       Thread-607470][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:25:58,356 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:25:58,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-07-01 14:25:58,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-07-01 14:25:58,372 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:25:58,372 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:25:58,372 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:25:58,380 [DEBUG][       Thread-607470][   transport.py][1871] : EOF in transport thread
2025-07-01 14:26:04,307 [DEBUG][Thread-607472 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:26:08,380 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:26:08,380 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:26:08,380 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:26:08,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-07-01 14:26:08,920 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 25, 34), 10.97, 47.39, 0.0, 37.14, 13.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:26:08,920 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:25:34
2025-07-01 14:26:09,035 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:26:09,039 [DEBUG][       Thread-607473][   transport.py][1871] : starting thread (client mode): 0x8105180
2025-07-01 14:26:09,039 [DEBUG][       Thread-607473][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:26:09,059 [DEBUG][       Thread-607473][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:26:09,059 [ INFO][       Thread-607473][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:26:09,062 [DEBUG][       Thread-607473][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:26:09,062 [DEBUG][       Thread-607473][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:26:09,062 [DEBUG][       Thread-607473][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:26:09,062 [DEBUG][       Thread-607473][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:26:09,062 [DEBUG][       Thread-607473][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:26:09,062 [DEBUG][       Thread-607473][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:26:09,062 [DEBUG][       Thread-607473][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:26:09,062 [DEBUG][       Thread-607473][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:26:09,062 [DEBUG][       Thread-607473][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:26:09,062 [DEBUG][       Thread-607473][   transport.py][1871] : client lang: <none>
2025-07-01 14:26:09,062 [DEBUG][       Thread-607473][   transport.py][1871] : server lang: <none>
2025-07-01 14:26:09,062 [DEBUG][       Thread-607473][   transport.py][1871] : kex follows: False
2025-07-01 14:26:09,062 [DEBUG][       Thread-607473][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:26:09,062 [DEBUG][       Thread-607473][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:26:09,062 [DEBUG][       Thread-607473][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:26:09,063 [DEBUG][       Thread-607473][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:26:09,063 [DEBUG][       Thread-607473][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:26:09,063 [DEBUG][       Thread-607473][   transport.py][1871] : Compression: none
2025-07-01 14:26:09,063 [DEBUG][       Thread-607473][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:26:09,079 [DEBUG][       Thread-607473][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:26:09,079 [DEBUG][       Thread-607473][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:26:09,079 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:26:09,079 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:26:09,079 [DEBUG][       Thread-607473][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:26:09,079 [DEBUG][       Thread-607473][   transport.py][1871] : userauth is OK
2025-07-01 14:26:09,104 [ INFO][       Thread-607473][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:26:09,104 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:26:09,692 [DEBUG][       Thread-607473][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:26:09,692 [DEBUG][       Thread-607473][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:26:09,736 [DEBUG][       Thread-607473][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:26:09,736 [DEBUG][       Thread-607473][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:26:09,739 [DEBUG][       Thread-607473][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:26:09,750 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:26:09,750 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:26:09,751 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:26:09,751 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:26:09,754 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:26:09,754 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:26:09,754 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:26:09,755 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:26:09,755 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.517649 -999.00  +13.50  42.29     52   +3.80 1 2 2 1 1   887    0 9.15 -22.28 ----- 36.8 42.3 37.8 52.7 15.7 -20.2 15.2 -21.3 15.2 -20.3 15.7 -18.9
2025-07-01 14:26:09,755 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:26:09,755 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:26:09,755 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.517649
2025-07-01 14:26:09,755 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:26:09,755 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:26:09,755 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:26:09,755 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:26:09,755 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:26:09,755 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:25:34', tmtdew=10.97, humidity=47.39, cloud=0.0, wind=37.14, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:25:24.874', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:26:09,755 [DEBUG][       Thread-607473][   transport.py][1871] : EOF in transport thread
2025-07-01 14:26:09,829 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:26:09,838 [DEBUG][       Thread-607476][   transport.py][1871] : starting thread (client mode): 0x81e7640
2025-07-01 14:26:09,838 [DEBUG][       Thread-607476][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:26:09,854 [DEBUG][       Thread-607476][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:26:09,854 [ INFO][       Thread-607476][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:26:09,861 [DEBUG][       Thread-607476][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:26:09,861 [DEBUG][       Thread-607476][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:26:09,861 [DEBUG][       Thread-607476][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:26:09,861 [DEBUG][       Thread-607476][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:26:09,861 [DEBUG][       Thread-607476][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:26:09,861 [DEBUG][       Thread-607476][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:26:09,861 [DEBUG][       Thread-607476][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:26:09,861 [DEBUG][       Thread-607476][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:26:09,861 [DEBUG][       Thread-607476][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:26:09,861 [DEBUG][       Thread-607476][   transport.py][1871] : client lang: <none>
2025-07-01 14:26:09,861 [DEBUG][       Thread-607476][   transport.py][1871] : server lang: <none>
2025-07-01 14:26:09,861 [DEBUG][       Thread-607476][   transport.py][1871] : kex follows: False
2025-07-01 14:26:09,861 [DEBUG][       Thread-607476][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:26:09,861 [DEBUG][       Thread-607476][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:26:09,861 [DEBUG][       Thread-607476][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:26:09,861 [DEBUG][       Thread-607476][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:26:09,861 [DEBUG][       Thread-607476][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:26:09,861 [DEBUG][       Thread-607476][   transport.py][1871] : Compression: none
2025-07-01 14:26:09,861 [DEBUG][       Thread-607476][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:26:09,918 [DEBUG][       Thread-607476][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:26:09,918 [DEBUG][       Thread-607476][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:26:09,918 [DEBUG][       Thread-607476][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:26:09,918 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:26:09,918 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:26:09,975 [DEBUG][       Thread-607476][   transport.py][1871] : userauth is OK
2025-07-01 14:26:09,975 [DEBUG][       Thread-607476][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:26:09,975 [DEBUG][       Thread-607476][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:26:09,975 [DEBUG][       Thread-607476][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:26:09,975 [DEBUG][       Thread-607476][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:26:09,989 [ INFO][       Thread-607476][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:26:09,990 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:26:09,990 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:26:11,027 [DEBUG][       Thread-607476][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:26:11,027 [DEBUG][       Thread-607476][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:26:11,075 [DEBUG][       Thread-607476][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:26:11,075 [DEBUG][       Thread-607476][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:26:11,084 [DEBUG][       Thread-607476][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:26:11,092 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:26:11,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-07-01 14:26:11,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-07-01 14:26:11,108 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:26:11,108 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:26:11,108 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:26:11,115 [DEBUG][       Thread-607476][   transport.py][1871] : EOF in transport thread
2025-07-01 14:26:13,322 [DEBUG][Thread-607478 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:26:21,116 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:26:21,116 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:26:21,116 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:26:21,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-07-01 14:26:21,649 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 26, 7), 10.91, 47.58, 0.0, 34.81, 13.52, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:26:21,649 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:26:07
2025-07-01 14:26:21,766 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:26:21,773 [DEBUG][       Thread-607479][   transport.py][1871] : starting thread (client mode): 0x81a4820
2025-07-01 14:26:21,773 [DEBUG][       Thread-607479][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:26:21,793 [DEBUG][       Thread-607479][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:26:21,793 [ INFO][       Thread-607479][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:26:21,796 [DEBUG][       Thread-607479][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:26:21,797 [DEBUG][       Thread-607479][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:26:21,797 [DEBUG][       Thread-607479][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:26:21,797 [DEBUG][       Thread-607479][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:26:21,797 [DEBUG][       Thread-607479][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:26:21,797 [DEBUG][       Thread-607479][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:26:21,797 [DEBUG][       Thread-607479][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:26:21,797 [DEBUG][       Thread-607479][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:26:21,797 [DEBUG][       Thread-607479][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:26:21,797 [DEBUG][       Thread-607479][   transport.py][1871] : client lang: <none>
2025-07-01 14:26:21,797 [DEBUG][       Thread-607479][   transport.py][1871] : server lang: <none>
2025-07-01 14:26:21,797 [DEBUG][       Thread-607479][   transport.py][1871] : kex follows: False
2025-07-01 14:26:21,797 [DEBUG][       Thread-607479][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:26:21,797 [DEBUG][       Thread-607479][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:26:21,797 [DEBUG][       Thread-607479][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:26:21,797 [DEBUG][       Thread-607479][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:26:21,797 [DEBUG][       Thread-607479][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:26:21,797 [DEBUG][       Thread-607479][   transport.py][1871] : Compression: none
2025-07-01 14:26:21,797 [DEBUG][       Thread-607479][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:26:21,811 [DEBUG][       Thread-607479][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:26:21,811 [DEBUG][       Thread-607479][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:26:21,811 [DEBUG][       Thread-607479][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:26:21,811 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:26:21,811 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:26:21,812 [DEBUG][       Thread-607479][   transport.py][1871] : userauth is OK
2025-07-01 14:26:21,836 [ INFO][       Thread-607479][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:26:21,836 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:26:22,337 [DEBUG][Thread-607481 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:26:22,514 [DEBUG][       Thread-607479][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:26:22,514 [DEBUG][       Thread-607479][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:26:22,556 [DEBUG][       Thread-607479][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:26:22,556 [DEBUG][       Thread-607479][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:26:22,559 [DEBUG][       Thread-607479][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:26:22,572 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:26:22,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:26:22,573 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:26:22,574 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:26:22,578 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:26:22,579 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:26:22,579 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:26:22,579 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:26:22,579 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.517997 -999.00  +13.50  39.74     52   +3.90 1 2 2 1 1   887    0 9.01 -20.74 ----- 38.1 39.7 24.8 46.2 15.7 -20.3 15.2 -21.5 15.2 -19.8 15.8 -19.0
2025-07-01 14:26:22,579 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:26:22,579 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:26:22,579 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.517997
2025-07-01 14:26:22,579 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:26:22,579 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:26:22,579 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:26:22,579 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:26:22,579 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:26:22,579 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:26:07', tmtdew=10.91, humidity=47.58, cloud=0.0, wind=34.81, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:25:54.941', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:26:22,580 [DEBUG][       Thread-607479][   transport.py][1871] : EOF in transport thread
2025-07-01 14:26:22,653 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:26:22,663 [DEBUG][       Thread-607483][   transport.py][1871] : starting thread (client mode): 0x83c8730
2025-07-01 14:26:22,663 [DEBUG][       Thread-607483][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:26:22,678 [DEBUG][       Thread-607483][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:26:22,678 [ INFO][       Thread-607483][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:26:22,685 [DEBUG][       Thread-607483][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:26:22,685 [DEBUG][       Thread-607483][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:26:22,685 [DEBUG][       Thread-607483][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:26:22,685 [DEBUG][       Thread-607483][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:26:22,685 [DEBUG][       Thread-607483][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:26:22,685 [DEBUG][       Thread-607483][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:26:22,685 [DEBUG][       Thread-607483][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:26:22,685 [DEBUG][       Thread-607483][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:26:22,685 [DEBUG][       Thread-607483][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:26:22,685 [DEBUG][       Thread-607483][   transport.py][1871] : client lang: <none>
2025-07-01 14:26:22,685 [DEBUG][       Thread-607483][   transport.py][1871] : server lang: <none>
2025-07-01 14:26:22,685 [DEBUG][       Thread-607483][   transport.py][1871] : kex follows: False
2025-07-01 14:26:22,685 [DEBUG][       Thread-607483][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:26:22,685 [DEBUG][       Thread-607483][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:26:22,685 [DEBUG][       Thread-607483][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:26:22,685 [DEBUG][       Thread-607483][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:26:22,685 [DEBUG][       Thread-607483][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:26:22,685 [DEBUG][       Thread-607483][   transport.py][1871] : Compression: none
2025-07-01 14:26:22,685 [DEBUG][       Thread-607483][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:26:22,742 [DEBUG][       Thread-607483][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:26:22,742 [DEBUG][       Thread-607483][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:26:22,742 [DEBUG][       Thread-607483][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:26:22,742 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:26:22,743 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:26:22,808 [DEBUG][       Thread-607483][   transport.py][1871] : userauth is OK
2025-07-01 14:26:22,808 [DEBUG][       Thread-607483][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:26:22,808 [DEBUG][       Thread-607483][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:26:22,808 [DEBUG][       Thread-607483][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:26:22,808 [DEBUG][       Thread-607483][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:26:22,822 [ INFO][       Thread-607483][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:26:22,822 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:26:22,823 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:26:23,827 [DEBUG][       Thread-607483][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:26:23,827 [DEBUG][       Thread-607483][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:26:23,875 [DEBUG][       Thread-607483][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:26:23,875 [DEBUG][       Thread-607483][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:26:23,884 [DEBUG][       Thread-607483][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:26:23,892 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:26:23,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-07-01 14:26:23,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-07-01 14:26:23,908 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:26:23,908 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:26:23,908 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:26:23,916 [DEBUG][       Thread-607483][   transport.py][1871] : EOF in transport thread
2025-07-01 14:26:31,351 [DEBUG][Thread-607485 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:26:32,555 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:26:32,556 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:26:33,918 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:26:33,918 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:26:33,918 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:26:33,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-07-01 14:26:34,420 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 26, 7), 10.91, 47.58, 0.0, 34.81, 13.52, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:26:34,420 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:26:07
2025-07-01 14:26:34,532 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:26:34,537 [DEBUG][       Thread-607486][   transport.py][1871] : starting thread (client mode): 0x81a5960
2025-07-01 14:26:34,537 [DEBUG][       Thread-607486][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:26:34,559 [DEBUG][       Thread-607486][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:26:34,559 [ INFO][       Thread-607486][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:26:34,563 [DEBUG][       Thread-607486][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:26:34,563 [DEBUG][       Thread-607486][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:26:34,563 [DEBUG][       Thread-607486][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:26:34,563 [DEBUG][       Thread-607486][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:26:34,563 [DEBUG][       Thread-607486][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:26:34,563 [DEBUG][       Thread-607486][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:26:34,563 [DEBUG][       Thread-607486][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:26:34,563 [DEBUG][       Thread-607486][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:26:34,563 [DEBUG][       Thread-607486][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:26:34,563 [DEBUG][       Thread-607486][   transport.py][1871] : client lang: <none>
2025-07-01 14:26:34,563 [DEBUG][       Thread-607486][   transport.py][1871] : server lang: <none>
2025-07-01 14:26:34,563 [DEBUG][       Thread-607486][   transport.py][1871] : kex follows: False
2025-07-01 14:26:34,563 [DEBUG][       Thread-607486][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:26:34,563 [DEBUG][       Thread-607486][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:26:34,563 [DEBUG][       Thread-607486][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:26:34,563 [DEBUG][       Thread-607486][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:26:34,563 [DEBUG][       Thread-607486][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:26:34,563 [DEBUG][       Thread-607486][   transport.py][1871] : Compression: none
2025-07-01 14:26:34,563 [DEBUG][       Thread-607486][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:26:34,579 [DEBUG][       Thread-607486][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:26:34,579 [DEBUG][       Thread-607486][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:26:34,579 [DEBUG][       Thread-607486][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:26:34,579 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:26:34,580 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:26:34,580 [DEBUG][       Thread-607486][   transport.py][1871] : userauth is OK
2025-07-01 14:26:34,627 [ INFO][       Thread-607486][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:26:34,627 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:26:34,845 [DEBUG][Thread-607488 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:26:35,289 [DEBUG][       Thread-607486][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:26:35,289 [DEBUG][       Thread-607486][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:26:35,332 [DEBUG][       Thread-607486][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:26:35,333 [DEBUG][       Thread-607486][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:26:35,335 [DEBUG][       Thread-607486][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:26:35,346 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:26:35,346 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:26:35,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:26:35,348 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:26:35,350 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:26:35,351 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:26:35,351 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:26:35,352 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:26:35,352 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.517997 -999.00  +13.50  39.74     52   +3.90 1 2 2 1 1   887    0 9.01 -20.74 ----- 38.1 39.7 24.8 46.2 15.7 -20.3 15.2 -21.5 15.2 -19.8 15.8 -19.0
2025-07-01 14:26:35,352 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:26:35,352 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:26:35,352 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.517997
2025-07-01 14:26:35,352 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:26:35,352 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:26:35,352 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:26:35,352 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:26:35,352 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:26:35,352 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:26:07', tmtdew=10.91, humidity=47.58, cloud=0.0, wind=34.81, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:25:54.941', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:26:35,352 [DEBUG][       Thread-607486][   transport.py][1871] : EOF in transport thread
2025-07-01 14:26:35,424 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:26:35,436 [DEBUG][       Thread-607490][   transport.py][1871] : starting thread (client mode): 0x81e4880
2025-07-01 14:26:35,436 [DEBUG][       Thread-607490][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:26:35,451 [DEBUG][       Thread-607490][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:26:35,451 [ INFO][       Thread-607490][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:26:35,458 [DEBUG][       Thread-607490][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:26:35,458 [DEBUG][       Thread-607490][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:26:35,458 [DEBUG][       Thread-607490][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:26:35,458 [DEBUG][       Thread-607490][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:26:35,458 [DEBUG][       Thread-607490][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:26:35,458 [DEBUG][       Thread-607490][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:26:35,458 [DEBUG][       Thread-607490][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:26:35,458 [DEBUG][       Thread-607490][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:26:35,458 [DEBUG][       Thread-607490][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:26:35,458 [DEBUG][       Thread-607490][   transport.py][1871] : client lang: <none>
2025-07-01 14:26:35,458 [DEBUG][       Thread-607490][   transport.py][1871] : server lang: <none>
2025-07-01 14:26:35,458 [DEBUG][       Thread-607490][   transport.py][1871] : kex follows: False
2025-07-01 14:26:35,458 [DEBUG][       Thread-607490][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:26:35,458 [DEBUG][       Thread-607490][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:26:35,458 [DEBUG][       Thread-607490][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:26:35,458 [DEBUG][       Thread-607490][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:26:35,458 [DEBUG][       Thread-607490][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:26:35,458 [DEBUG][       Thread-607490][   transport.py][1871] : Compression: none
2025-07-01 14:26:35,458 [DEBUG][       Thread-607490][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:26:35,513 [DEBUG][       Thread-607490][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:26:35,514 [DEBUG][       Thread-607490][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:26:35,514 [DEBUG][       Thread-607490][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:26:35,514 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:26:35,514 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:26:35,571 [DEBUG][       Thread-607490][   transport.py][1871] : userauth is OK
2025-07-01 14:26:35,571 [DEBUG][       Thread-607490][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:26:35,571 [DEBUG][       Thread-607490][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:26:35,571 [DEBUG][       Thread-607490][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:26:35,571 [DEBUG][       Thread-607490][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:26:35,585 [ INFO][       Thread-607490][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:26:35,585 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:26:35,585 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:26:36,591 [DEBUG][       Thread-607490][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:26:36,591 [DEBUG][       Thread-607490][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:26:36,639 [DEBUG][       Thread-607490][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:26:36,639 [DEBUG][       Thread-607490][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:26:36,647 [DEBUG][       Thread-607490][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:26:36,655 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:26:36,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-07-01 14:26:36,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') -> 00000000
2025-07-01 14:26:36,671 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:26:36,671 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:26:36,671 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:26:36,679 [DEBUG][       Thread-607490][   transport.py][1871] : EOF in transport thread
2025-07-01 14:26:40,372 [DEBUG][Thread-607492 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:26:46,680 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:26:46,680 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:26:46,680 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:26:46,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-07-01 14:26:47,182 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 26, 39), 10.93, 47.66, 0.0, 36.77, 13.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:26:47,182 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:26:39
2025-07-01 14:26:47,291 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:26:47,296 [DEBUG][       Thread-607493][   transport.py][1871] : starting thread (client mode): 0x81c9ea0
2025-07-01 14:26:47,296 [DEBUG][       Thread-607493][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:26:47,316 [DEBUG][       Thread-607493][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:26:47,316 [ INFO][       Thread-607493][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:26:47,320 [DEBUG][       Thread-607493][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:26:47,320 [DEBUG][       Thread-607493][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:26:47,320 [DEBUG][       Thread-607493][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:26:47,320 [DEBUG][       Thread-607493][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:26:47,320 [DEBUG][       Thread-607493][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:26:47,320 [DEBUG][       Thread-607493][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:26:47,320 [DEBUG][       Thread-607493][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:26:47,320 [DEBUG][       Thread-607493][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:26:47,320 [DEBUG][       Thread-607493][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:26:47,320 [DEBUG][       Thread-607493][   transport.py][1871] : client lang: <none>
2025-07-01 14:26:47,320 [DEBUG][       Thread-607493][   transport.py][1871] : server lang: <none>
2025-07-01 14:26:47,320 [DEBUG][       Thread-607493][   transport.py][1871] : kex follows: False
2025-07-01 14:26:47,320 [DEBUG][       Thread-607493][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:26:47,320 [DEBUG][       Thread-607493][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:26:47,320 [DEBUG][       Thread-607493][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:26:47,320 [DEBUG][       Thread-607493][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:26:47,320 [DEBUG][       Thread-607493][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:26:47,320 [DEBUG][       Thread-607493][   transport.py][1871] : Compression: none
2025-07-01 14:26:47,320 [DEBUG][       Thread-607493][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:26:47,327 [DEBUG][       Thread-607493][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:26:47,327 [DEBUG][       Thread-607493][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:26:47,327 [DEBUG][       Thread-607493][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:26:47,327 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:26:47,328 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:26:47,328 [DEBUG][       Thread-607493][   transport.py][1871] : userauth is OK
2025-07-01 14:26:47,353 [ INFO][       Thread-607493][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:26:47,353 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:26:47,992 [DEBUG][       Thread-607493][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:26:47,992 [DEBUG][       Thread-607493][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:26:48,036 [DEBUG][       Thread-607493][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:26:48,036 [DEBUG][       Thread-607493][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:26:48,039 [DEBUG][       Thread-607493][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:26:48,053 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:26:48,053 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:26:48,054 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:26:48,055 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:26:48,058 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:26:48,058 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:26:48,058 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:26:48,059 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:26:48,059 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.518344 -999.00  +13.50  41.89     52   +3.90 1 2 2 1 1   887    0 9.13 -21.87 ----- 34.8 41.9 45.8 47.7 15.7 -21.0 15.2 -21.1 15.2 -19.9 15.8 -19.1
2025-07-01 14:26:48,059 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:26:48,059 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:26:48,059 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.518344
2025-07-01 14:26:48,059 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:26:48,059 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:26:48,059 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:26:48,059 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:26:48,059 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:26:48,059 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:26:39', tmtdew=10.93, humidity=47.66, cloud=0.0, wind=36.77, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:26:24.922', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:26:48,060 [DEBUG][       Thread-607493][   transport.py][1871] : EOF in transport thread
2025-07-01 14:26:48,132 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:26:48,141 [DEBUG][       Thread-607496][   transport.py][1871] : starting thread (client mode): 0x8172fb0
2025-07-01 14:26:48,141 [DEBUG][       Thread-607496][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:26:48,156 [DEBUG][       Thread-607496][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:26:48,156 [ INFO][       Thread-607496][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:26:48,164 [DEBUG][       Thread-607496][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:26:48,164 [DEBUG][       Thread-607496][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:26:48,164 [DEBUG][       Thread-607496][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:26:48,164 [DEBUG][       Thread-607496][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:26:48,164 [DEBUG][       Thread-607496][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:26:48,164 [DEBUG][       Thread-607496][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:26:48,164 [DEBUG][       Thread-607496][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:26:48,164 [DEBUG][       Thread-607496][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:26:48,164 [DEBUG][       Thread-607496][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:26:48,164 [DEBUG][       Thread-607496][   transport.py][1871] : client lang: <none>
2025-07-01 14:26:48,164 [DEBUG][       Thread-607496][   transport.py][1871] : server lang: <none>
2025-07-01 14:26:48,164 [DEBUG][       Thread-607496][   transport.py][1871] : kex follows: False
2025-07-01 14:26:48,164 [DEBUG][       Thread-607496][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:26:48,164 [DEBUG][       Thread-607496][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:26:48,164 [DEBUG][       Thread-607496][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:26:48,164 [DEBUG][       Thread-607496][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:26:48,164 [DEBUG][       Thread-607496][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:26:48,164 [DEBUG][       Thread-607496][   transport.py][1871] : Compression: none
2025-07-01 14:26:48,164 [DEBUG][       Thread-607496][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:26:48,222 [DEBUG][       Thread-607496][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:26:48,222 [DEBUG][       Thread-607496][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:26:48,223 [DEBUG][       Thread-607496][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:26:48,223 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:26:48,223 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:26:48,279 [DEBUG][       Thread-607496][   transport.py][1871] : userauth is OK
2025-07-01 14:26:48,279 [DEBUG][       Thread-607496][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:26:48,279 [DEBUG][       Thread-607496][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:26:48,279 [DEBUG][       Thread-607496][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:26:48,279 [DEBUG][       Thread-607496][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:26:48,294 [ INFO][       Thread-607496][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:26:48,295 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:26:48,295 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:26:49,380 [DEBUG][       Thread-607496][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:26:49,380 [DEBUG][       Thread-607496][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:26:49,387 [DEBUG][Thread-607498 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:26:49,434 [DEBUG][       Thread-607496][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:26:49,434 [DEBUG][       Thread-607496][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:26:49,444 [DEBUG][       Thread-607496][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:26:49,454 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:26: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-07-01 14:26: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-07-01 14:26:49,472 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:26:49,472 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:26:49,472 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:26:49,479 [DEBUG][       Thread-607496][   transport.py][1871] : EOF in transport thread
2025-07-01 14:26:58,407 [DEBUG][Thread-607499 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:26:59,477 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:26:59,477 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:26:59,477 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:26:59,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-07-01 14:27:00,008 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 26, 39), 10.93, 47.66, 0.0, 36.77, 13.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:27:00,008 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:26:39
2025-07-01 14:27:00,124 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:27:00,129 [DEBUG][       Thread-607500][   transport.py][1871] : starting thread (client mode): 0x8171ed0
2025-07-01 14:27:00,129 [DEBUG][       Thread-607500][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:27:00,149 [DEBUG][       Thread-607500][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:27:00,149 [ INFO][       Thread-607500][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:27:00,152 [DEBUG][       Thread-607500][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:27:00,152 [DEBUG][       Thread-607500][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:27:00,152 [DEBUG][       Thread-607500][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:27:00,152 [DEBUG][       Thread-607500][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:27:00,152 [DEBUG][       Thread-607500][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:27:00,152 [DEBUG][       Thread-607500][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:27:00,152 [DEBUG][       Thread-607500][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:27:00,152 [DEBUG][       Thread-607500][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:27:00,152 [DEBUG][       Thread-607500][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:27:00,152 [DEBUG][       Thread-607500][   transport.py][1871] : client lang: <none>
2025-07-01 14:27:00,152 [DEBUG][       Thread-607500][   transport.py][1871] : server lang: <none>
2025-07-01 14:27:00,152 [DEBUG][       Thread-607500][   transport.py][1871] : kex follows: False
2025-07-01 14:27:00,152 [DEBUG][       Thread-607500][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:27:00,152 [DEBUG][       Thread-607500][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:27:00,152 [DEBUG][       Thread-607500][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:27:00,152 [DEBUG][       Thread-607500][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:27:00,152 [DEBUG][       Thread-607500][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:27:00,152 [DEBUG][       Thread-607500][   transport.py][1871] : Compression: none
2025-07-01 14:27:00,152 [DEBUG][       Thread-607500][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:27:00,167 [DEBUG][       Thread-607500][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:27:00,167 [DEBUG][       Thread-607500][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:27:00,167 [DEBUG][       Thread-607500][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:27:00,167 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:27:00,167 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:27:00,168 [DEBUG][       Thread-607500][   transport.py][1871] : userauth is OK
2025-07-01 14:27:00,192 [ INFO][       Thread-607500][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:27:00,192 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:27:00,857 [DEBUG][       Thread-607500][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:27:00,857 [DEBUG][       Thread-607500][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:27:00,900 [DEBUG][       Thread-607500][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:27:00,900 [DEBUG][       Thread-607500][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:27:00,902 [DEBUG][       Thread-607500][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:27:00,916 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:27:00,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:27:00,917 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:27:00,918 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:27:00,921 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:27:00,922 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:27:00,922 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:27:00,922 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:27:00,922 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.518344 -999.00  +13.50  41.89     52   +3.90 1 2 2 1 1   887    0 9.13 -21.87 ----- 34.8 41.9 45.8 47.7 15.7 -21.0 15.2 -21.1 15.2 -19.9 15.8 -19.1
2025-07-01 14:27:00,922 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:27:00,922 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:27:00,922 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.518344
2025-07-01 14:27:00,922 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:27:00,922 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:27:00,922 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:27:00,922 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:27:00,922 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:27:00,922 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:26:39', tmtdew=10.93, humidity=47.66, cloud=0.0, wind=36.77, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:26:24.922', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:27:00,923 [DEBUG][       Thread-607500][   transport.py][1871] : EOF in transport thread
2025-07-01 14:27:00,996 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:27:01,011 [DEBUG][       Thread-607503][   transport.py][1871] : starting thread (client mode): 0x75aace0
2025-07-01 14:27:01,011 [DEBUG][       Thread-607503][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:27:01,029 [DEBUG][       Thread-607503][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:27:01,029 [ INFO][       Thread-607503][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:27:01,037 [DEBUG][       Thread-607503][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:27:01,037 [DEBUG][       Thread-607503][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:27:01,037 [DEBUG][       Thread-607503][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:27:01,037 [DEBUG][       Thread-607503][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:27:01,037 [DEBUG][       Thread-607503][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:27:01,037 [DEBUG][       Thread-607503][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:27:01,037 [DEBUG][       Thread-607503][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:27:01,037 [DEBUG][       Thread-607503][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:27:01,037 [DEBUG][       Thread-607503][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:27:01,037 [DEBUG][       Thread-607503][   transport.py][1871] : client lang: <none>
2025-07-01 14:27:01,037 [DEBUG][       Thread-607503][   transport.py][1871] : server lang: <none>
2025-07-01 14:27:01,037 [DEBUG][       Thread-607503][   transport.py][1871] : kex follows: False
2025-07-01 14:27:01,037 [DEBUG][       Thread-607503][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:27:01,037 [DEBUG][       Thread-607503][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:27:01,037 [DEBUG][       Thread-607503][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:27:01,037 [DEBUG][       Thread-607503][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:27:01,037 [DEBUG][       Thread-607503][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:27:01,037 [DEBUG][       Thread-607503][   transport.py][1871] : Compression: none
2025-07-01 14:27:01,037 [DEBUG][       Thread-607503][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:27:01,094 [DEBUG][       Thread-607503][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:27:01,094 [DEBUG][       Thread-607503][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:27:01,094 [DEBUG][       Thread-607503][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:27:01,094 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:27:01,095 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:27:01,151 [DEBUG][       Thread-607503][   transport.py][1871] : userauth is OK
2025-07-01 14:27:01,151 [DEBUG][       Thread-607503][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:27:01,151 [DEBUG][       Thread-607503][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:27:01,151 [DEBUG][       Thread-607503][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:27:01,151 [DEBUG][       Thread-607503][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:27:01,166 [ INFO][       Thread-607503][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:27:01,166 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:27:01,166 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:27:02,155 [DEBUG][       Thread-607503][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:27:02,155 [DEBUG][       Thread-607503][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:27:02,203 [DEBUG][       Thread-607503][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:27:02,203 [DEBUG][       Thread-607503][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:27:02,212 [DEBUG][       Thread-607503][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:27:02,220 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:27:02,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-07-01 14:27:02,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-07-01 14:27:02,236 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:27:02,237 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:27:02,237 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:27:02,244 [DEBUG][       Thread-607503][   transport.py][1871] : EOF in transport thread
2025-07-01 14:27:07,422 [DEBUG][Thread-607505 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:27:12,247 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:27:12,247 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:27:12,247 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:27:12,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-07-01 14:27:12,747 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 26, 39), 10.93, 47.66, 0.0, 36.77, 13.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:27:12,747 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:26:39
2025-07-01 14:27:12,855 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:27:12,859 [DEBUG][       Thread-607506][   transport.py][1871] : starting thread (client mode): 0x81d9d80
2025-07-01 14:27:12,859 [DEBUG][       Thread-607506][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:27:12,880 [DEBUG][       Thread-607506][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:27:12,880 [ INFO][       Thread-607506][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:27:12,883 [DEBUG][       Thread-607506][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:27:12,883 [DEBUG][       Thread-607506][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:27:12,883 [DEBUG][       Thread-607506][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:27:12,883 [DEBUG][       Thread-607506][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:27:12,883 [DEBUG][       Thread-607506][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:27:12,883 [DEBUG][       Thread-607506][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:27:12,883 [DEBUG][       Thread-607506][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:27:12,883 [DEBUG][       Thread-607506][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:27:12,883 [DEBUG][       Thread-607506][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:27:12,883 [DEBUG][       Thread-607506][   transport.py][1871] : client lang: <none>
2025-07-01 14:27:12,883 [DEBUG][       Thread-607506][   transport.py][1871] : server lang: <none>
2025-07-01 14:27:12,883 [DEBUG][       Thread-607506][   transport.py][1871] : kex follows: False
2025-07-01 14:27:12,883 [DEBUG][       Thread-607506][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:27:12,883 [DEBUG][       Thread-607506][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:27:12,883 [DEBUG][       Thread-607506][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:27:12,883 [DEBUG][       Thread-607506][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:27:12,883 [DEBUG][       Thread-607506][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:27:12,883 [DEBUG][       Thread-607506][   transport.py][1871] : Compression: none
2025-07-01 14:27:12,883 [DEBUG][       Thread-607506][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:27:12,898 [DEBUG][       Thread-607506][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:27:12,899 [DEBUG][       Thread-607506][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:27:12,899 [DEBUG][       Thread-607506][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:27:12,899 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:27:12,899 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:27:12,940 [DEBUG][       Thread-607506][   transport.py][1871] : userauth is OK
2025-07-01 14:27:12,965 [ INFO][       Thread-607506][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:27:12,965 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:27:13,617 [DEBUG][       Thread-607506][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:27:13,617 [DEBUG][       Thread-607506][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:27:13,661 [DEBUG][       Thread-607506][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:27:13,661 [DEBUG][       Thread-607506][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:27:13,664 [DEBUG][       Thread-607506][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:27:13,676 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:27:13,676 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:27:13,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:27:13,678 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:27:13,681 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:27:13,681 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:27:13,681 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:27:13,682 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:27:13,682 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.518344 -999.00  +13.50  41.89     52   +3.90 1 2 2 1 1   887    0 9.13 -21.87 ----- 34.8 41.9 45.8 47.7 15.7 -21.0 15.2 -21.1 15.2 -19.9 15.8 -19.1
2025-07-01 14:27:13,682 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:27:13,682 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:27:13,682 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.518344
2025-07-01 14:27:13,682 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:27:13,682 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:27:13,682 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:27:13,682 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:27:13,682 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:27:13,682 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:26:39', tmtdew=10.93, humidity=47.66, cloud=0.0, wind=36.77, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:26:24.922', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:27:13,684 [DEBUG][       Thread-607506][   transport.py][1871] : EOF in transport thread
2025-07-01 14:27:13,757 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:27:13,766 [DEBUG][       Thread-607509][   transport.py][1871] : starting thread (client mode): 0x82b2620
2025-07-01 14:27:13,766 [DEBUG][       Thread-607509][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:27:13,781 [DEBUG][       Thread-607509][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:27:13,781 [ INFO][       Thread-607509][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:27:13,788 [DEBUG][       Thread-607509][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:27:13,788 [DEBUG][       Thread-607509][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:27:13,788 [DEBUG][       Thread-607509][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:27:13,788 [DEBUG][       Thread-607509][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:27:13,788 [DEBUG][       Thread-607509][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:27:13,788 [DEBUG][       Thread-607509][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:27:13,788 [DEBUG][       Thread-607509][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:27:13,788 [DEBUG][       Thread-607509][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:27:13,788 [DEBUG][       Thread-607509][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:27:13,788 [DEBUG][       Thread-607509][   transport.py][1871] : client lang: <none>
2025-07-01 14:27:13,788 [DEBUG][       Thread-607509][   transport.py][1871] : server lang: <none>
2025-07-01 14:27:13,788 [DEBUG][       Thread-607509][   transport.py][1871] : kex follows: False
2025-07-01 14:27:13,788 [DEBUG][       Thread-607509][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:27:13,788 [DEBUG][       Thread-607509][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:27:13,788 [DEBUG][       Thread-607509][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:27:13,788 [DEBUG][       Thread-607509][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:27:13,788 [DEBUG][       Thread-607509][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:27:13,788 [DEBUG][       Thread-607509][   transport.py][1871] : Compression: none
2025-07-01 14:27:13,788 [DEBUG][       Thread-607509][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:27:13,846 [DEBUG][       Thread-607509][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:27:13,846 [DEBUG][       Thread-607509][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:27:13,846 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:27:13,846 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:27:13,846 [DEBUG][       Thread-607509][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:27:13,903 [DEBUG][       Thread-607509][   transport.py][1871] : userauth is OK
2025-07-01 14:27:13,903 [DEBUG][       Thread-607509][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:27:13,903 [DEBUG][       Thread-607509][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:27:13,903 [DEBUG][       Thread-607509][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:27:13,903 [DEBUG][       Thread-607509][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:27:13,917 [ INFO][       Thread-607509][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:27:13,918 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:27:13,918 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:27:14,965 [DEBUG][       Thread-607509][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:27:14,965 [DEBUG][       Thread-607509][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:27:15,015 [DEBUG][       Thread-607509][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:27:15,015 [DEBUG][       Thread-607509][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:27:15,024 [DEBUG][       Thread-607509][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:27:15,032 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:27:15,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')
2025-07-01 14:27:15,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-07-01 14:27:15,048 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:27:15,048 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:27:15,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:27:15,056 [DEBUG][       Thread-607509][   transport.py][1871] : EOF in transport thread
2025-07-01 14:27:16,438 [DEBUG][Thread-607511 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:27:25,058 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:27:25,059 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:27:25,059 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:27:25,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-07-01 14:27:25,455 [DEBUG][Thread-607512 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:27:25,562 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 27, 11), 11.0, 47.44, 0.0, 35.25, 13.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:27:25,562 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:27:11
2025-07-01 14:27:25,672 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:27:25,677 [DEBUG][       Thread-607513][   transport.py][1871] : starting thread (client mode): 0x75a9450
2025-07-01 14:27:25,677 [DEBUG][       Thread-607513][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:27:25,698 [DEBUG][       Thread-607513][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:27:25,698 [ INFO][       Thread-607513][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:27:25,701 [DEBUG][       Thread-607513][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:27:25,701 [DEBUG][       Thread-607513][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:27:25,701 [DEBUG][       Thread-607513][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:27:25,701 [DEBUG][       Thread-607513][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:27:25,701 [DEBUG][       Thread-607513][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:27:25,701 [DEBUG][       Thread-607513][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:27:25,701 [DEBUG][       Thread-607513][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:27:25,701 [DEBUG][       Thread-607513][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:27:25,701 [DEBUG][       Thread-607513][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:27:25,701 [DEBUG][       Thread-607513][   transport.py][1871] : client lang: <none>
2025-07-01 14:27:25,701 [DEBUG][       Thread-607513][   transport.py][1871] : server lang: <none>
2025-07-01 14:27:25,701 [DEBUG][       Thread-607513][   transport.py][1871] : kex follows: False
2025-07-01 14:27:25,701 [DEBUG][       Thread-607513][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:27:25,701 [DEBUG][       Thread-607513][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:27:25,701 [DEBUG][       Thread-607513][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:27:25,701 [DEBUG][       Thread-607513][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:27:25,701 [DEBUG][       Thread-607513][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:27:25,701 [DEBUG][       Thread-607513][   transport.py][1871] : Compression: none
2025-07-01 14:27:25,701 [DEBUG][       Thread-607513][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:27:25,717 [DEBUG][       Thread-607513][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:27:25,717 [DEBUG][       Thread-607513][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:27:25,717 [DEBUG][       Thread-607513][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:27:25,717 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:27:25,717 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:27:25,718 [DEBUG][       Thread-607513][   transport.py][1871] : userauth is OK
2025-07-01 14:27:25,742 [ INFO][       Thread-607513][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:27:25,742 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:27:26,407 [DEBUG][       Thread-607513][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:27:26,407 [DEBUG][       Thread-607513][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:27:26,448 [DEBUG][       Thread-607513][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:27:26,449 [DEBUG][       Thread-607513][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:27:26,451 [DEBUG][       Thread-607513][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:27:26,463 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:27:26,463 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:27:26,464 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:27:26,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:27:26,468 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:27:26,469 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:27:26,469 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:27:26,469 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:27:26,469 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.518691 -999.00  +13.50  42.18     52   +3.90 1 2 2 1 1   887    0 9.25 -21.87 ----- 41.3 42.2 29.0 54.6 15.7 -20.8 15.2 -21.3 15.2 -20.3 15.7 -19.4
2025-07-01 14:27:26,469 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:27:26,469 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:27:26,469 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.518691
2025-07-01 14:27:26,469 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:27:26,469 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:27:26,469 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:27:26,469 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:27:26,469 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:27:26,470 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:27:11', tmtdew=11.0, humidity=47.44, cloud=0.0, wind=35.25, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:26:54.902', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:27:26,470 [DEBUG][       Thread-607513][   transport.py][1871] : EOF in transport thread
2025-07-01 14:27:26,542 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:27:26,554 [DEBUG][       Thread-607516][   transport.py][1871] : starting thread (client mode): 0x82b0a00
2025-07-01 14:27:26,555 [DEBUG][       Thread-607516][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:27:26,577 [DEBUG][       Thread-607516][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:27:26,577 [ INFO][       Thread-607516][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:27:26,589 [DEBUG][       Thread-607516][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:27:26,589 [DEBUG][       Thread-607516][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:27:26,589 [DEBUG][       Thread-607516][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:27:26,589 [DEBUG][       Thread-607516][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:27:26,589 [DEBUG][       Thread-607516][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:27:26,589 [DEBUG][       Thread-607516][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:27:26,589 [DEBUG][       Thread-607516][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:27:26,589 [DEBUG][       Thread-607516][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:27:26,589 [DEBUG][       Thread-607516][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:27:26,589 [DEBUG][       Thread-607516][   transport.py][1871] : client lang: <none>
2025-07-01 14:27:26,590 [DEBUG][       Thread-607516][   transport.py][1871] : server lang: <none>
2025-07-01 14:27:26,590 [DEBUG][       Thread-607516][   transport.py][1871] : kex follows: False
2025-07-01 14:27:26,590 [DEBUG][       Thread-607516][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:27:26,590 [DEBUG][       Thread-607516][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:27:26,590 [DEBUG][       Thread-607516][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:27:26,590 [DEBUG][       Thread-607516][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:27:26,590 [DEBUG][       Thread-607516][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:27:26,590 [DEBUG][       Thread-607516][   transport.py][1871] : Compression: none
2025-07-01 14:27:26,590 [DEBUG][       Thread-607516][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:27:26,642 [DEBUG][       Thread-607516][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:27:26,642 [DEBUG][       Thread-607516][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:27:26,642 [DEBUG][       Thread-607516][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:27:26,642 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:27:26,642 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:27:26,699 [DEBUG][       Thread-607516][   transport.py][1871] : userauth is OK
2025-07-01 14:27:26,699 [DEBUG][       Thread-607516][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:27:26,699 [DEBUG][       Thread-607516][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:27:26,699 [DEBUG][       Thread-607516][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:27:26,699 [DEBUG][       Thread-607516][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:27:26,713 [ INFO][       Thread-607516][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:27:26,713 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:27:26,714 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:27:27,772 [DEBUG][       Thread-607516][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:27:27,772 [DEBUG][       Thread-607516][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:27:27,827 [DEBUG][       Thread-607516][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:27:27,827 [DEBUG][       Thread-607516][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:27:27,835 [DEBUG][       Thread-607516][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:27:27,844 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:27:27,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')
2025-07-01 14:27:27,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-07-01 14:27:27,864 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:27:27,864 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:27:27,864 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:27:27,874 [DEBUG][       Thread-607516][   transport.py][1871] : EOF in transport thread
2025-07-01 14:27:32,693 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:27:32,694 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:27:34,470 [DEBUG][Thread-607518 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:27:34,891 [DEBUG][Thread-607519 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:27:37,874 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:27:37,874 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:27:37,874 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:27:37,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-07-01 14:27:38,395 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 27, 11), 11.0, 47.44, 0.0, 35.25, 13.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:27:38,395 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:27:11
2025-07-01 14:27:38,504 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:27:38,508 [DEBUG][       Thread-607520][   transport.py][1871] : starting thread (client mode): 0x75ab2b0
2025-07-01 14:27:38,508 [DEBUG][       Thread-607520][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:27:38,528 [DEBUG][       Thread-607520][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:27:38,528 [ INFO][       Thread-607520][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:27:38,532 [DEBUG][       Thread-607520][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:27:38,532 [DEBUG][       Thread-607520][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:27:38,532 [DEBUG][       Thread-607520][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:27:38,532 [DEBUG][       Thread-607520][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:27:38,532 [DEBUG][       Thread-607520][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:27:38,532 [DEBUG][       Thread-607520][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:27:38,532 [DEBUG][       Thread-607520][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:27:38,532 [DEBUG][       Thread-607520][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:27:38,532 [DEBUG][       Thread-607520][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:27:38,532 [DEBUG][       Thread-607520][   transport.py][1871] : client lang: <none>
2025-07-01 14:27:38,532 [DEBUG][       Thread-607520][   transport.py][1871] : server lang: <none>
2025-07-01 14:27:38,532 [DEBUG][       Thread-607520][   transport.py][1871] : kex follows: False
2025-07-01 14:27:38,532 [DEBUG][       Thread-607520][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:27:38,532 [DEBUG][       Thread-607520][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:27:38,532 [DEBUG][       Thread-607520][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:27:38,532 [DEBUG][       Thread-607520][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:27:38,532 [DEBUG][       Thread-607520][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:27:38,532 [DEBUG][       Thread-607520][   transport.py][1871] : Compression: none
2025-07-01 14:27:38,532 [DEBUG][       Thread-607520][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:27:38,547 [DEBUG][       Thread-607520][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:27:38,547 [DEBUG][       Thread-607520][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:27:38,547 [DEBUG][       Thread-607520][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:27:38,547 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:27:38,547 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:27:38,548 [DEBUG][       Thread-607520][   transport.py][1871] : userauth is OK
2025-07-01 14:27:38,560 [ INFO][       Thread-607520][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:27:38,560 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:27:39,169 [DEBUG][       Thread-607520][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:27:39,169 [DEBUG][       Thread-607520][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:27:39,212 [DEBUG][       Thread-607520][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:27:39,212 [DEBUG][       Thread-607520][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:27:39,215 [DEBUG][       Thread-607520][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:27:39,226 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:27:39,227 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:27:39,228 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:27:39,228 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:27:39,231 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:27:39,232 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:27:39,232 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:27:39,232 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:27:39,232 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.518691 -999.00  +13.50  42.18     52   +3.90 1 2 2 1 1   887    0 9.25 -21.87 ----- 41.3 42.2 29.0 54.6 15.7 -20.8 15.2 -21.3 15.2 -20.3 15.7 -19.4
2025-07-01 14:27:39,232 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:27:39,232 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:27:39,232 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.518691
2025-07-01 14:27:39,232 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:27:39,233 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:27:39,233 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:27:39,233 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:27:39,233 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:27:39,233 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:27:11', tmtdew=11.0, humidity=47.44, cloud=0.0, wind=35.25, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:26:54.902', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:27:39,233 [DEBUG][       Thread-607520][   transport.py][1871] : EOF in transport thread
2025-07-01 14:27:39,308 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:27:39,317 [DEBUG][       Thread-607523][   transport.py][1871] : starting thread (client mode): 0x81047c0
2025-07-01 14:27:39,317 [DEBUG][       Thread-607523][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:27:39,335 [DEBUG][       Thread-607523][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:27:39,335 [ INFO][       Thread-607523][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:27:39,343 [DEBUG][       Thread-607523][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:27:39,343 [DEBUG][       Thread-607523][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:27:39,343 [DEBUG][       Thread-607523][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:27:39,343 [DEBUG][       Thread-607523][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:27:39,343 [DEBUG][       Thread-607523][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:27:39,343 [DEBUG][       Thread-607523][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:27:39,343 [DEBUG][       Thread-607523][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:27:39,343 [DEBUG][       Thread-607523][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:27:39,343 [DEBUG][       Thread-607523][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:27:39,343 [DEBUG][       Thread-607523][   transport.py][1871] : client lang: <none>
2025-07-01 14:27:39,343 [DEBUG][       Thread-607523][   transport.py][1871] : server lang: <none>
2025-07-01 14:27:39,343 [DEBUG][       Thread-607523][   transport.py][1871] : kex follows: False
2025-07-01 14:27:39,343 [DEBUG][       Thread-607523][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:27:39,343 [DEBUG][       Thread-607523][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:27:39,343 [DEBUG][       Thread-607523][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:27:39,343 [DEBUG][       Thread-607523][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:27:39,343 [DEBUG][       Thread-607523][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:27:39,343 [DEBUG][       Thread-607523][   transport.py][1871] : Compression: none
2025-07-01 14:27:39,343 [DEBUG][       Thread-607523][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:27:39,403 [DEBUG][       Thread-607523][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:27:39,403 [DEBUG][       Thread-607523][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:27:39,403 [DEBUG][       Thread-607523][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:27:39,403 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:27:39,403 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:27:39,459 [DEBUG][       Thread-607523][   transport.py][1871] : userauth is OK
2025-07-01 14:27:39,459 [DEBUG][       Thread-607523][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:27:39,459 [DEBUG][       Thread-607523][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:27:39,459 [DEBUG][       Thread-607523][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:27:39,459 [DEBUG][       Thread-607523][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:27:39,474 [ INFO][       Thread-607523][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:27:39,474 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:27:39,474 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:27:40,519 [DEBUG][       Thread-607523][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:27:40,519 [DEBUG][       Thread-607523][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:27:40,567 [DEBUG][       Thread-607523][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:27:40,568 [DEBUG][       Thread-607523][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:27:40,576 [DEBUG][       Thread-607523][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:27:40,584 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:27:40,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-07-01 14:27:40,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') -> 00000000
2025-07-01 14:27:40,601 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:27:40,602 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:27:40,602 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:27:40,610 [DEBUG][       Thread-607523][   transport.py][1871] : EOF in transport thread
2025-07-01 14:27:43,495 [DEBUG][Thread-607525 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:27:50,612 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:27:50,612 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:27:50,612 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:27:50,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-07-01 14:27:51,123 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 27, 44), 10.98, 47.48, 0.0, 31.92, 13.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:27:51,123 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:27:44
2025-07-01 14:27:51,222 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:27:51,228 [DEBUG][       Thread-607526][   transport.py][1871] : starting thread (client mode): 0x81e42b0
2025-07-01 14:27:51,228 [DEBUG][       Thread-607526][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:27:51,248 [DEBUG][       Thread-607526][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:27:51,248 [ INFO][       Thread-607526][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:27:51,251 [DEBUG][       Thread-607526][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:27:51,251 [DEBUG][       Thread-607526][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:27:51,251 [DEBUG][       Thread-607526][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:27:51,251 [DEBUG][       Thread-607526][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:27:51,251 [DEBUG][       Thread-607526][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:27:51,251 [DEBUG][       Thread-607526][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:27:51,251 [DEBUG][       Thread-607526][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:27:51,251 [DEBUG][       Thread-607526][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:27:51,251 [DEBUG][       Thread-607526][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:27:51,251 [DEBUG][       Thread-607526][   transport.py][1871] : client lang: <none>
2025-07-01 14:27:51,251 [DEBUG][       Thread-607526][   transport.py][1871] : server lang: <none>
2025-07-01 14:27:51,251 [DEBUG][       Thread-607526][   transport.py][1871] : kex follows: False
2025-07-01 14:27:51,251 [DEBUG][       Thread-607526][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:27:51,251 [DEBUG][       Thread-607526][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:27:51,251 [DEBUG][       Thread-607526][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:27:51,251 [DEBUG][       Thread-607526][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:27:51,251 [DEBUG][       Thread-607526][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:27:51,251 [DEBUG][       Thread-607526][   transport.py][1871] : Compression: none
2025-07-01 14:27:51,251 [DEBUG][       Thread-607526][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:27:51,268 [DEBUG][       Thread-607526][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:27:51,269 [DEBUG][       Thread-607526][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:27:51,269 [DEBUG][       Thread-607526][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:27:51,269 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:27:51,270 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:27:51,271 [DEBUG][       Thread-607526][   transport.py][1871] : userauth is OK
2025-07-01 14:27:51,295 [ INFO][       Thread-607526][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:27:51,295 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:27:51,945 [DEBUG][       Thread-607526][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:27:51,945 [DEBUG][       Thread-607526][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:27:51,989 [DEBUG][       Thread-607526][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:27:51,989 [DEBUG][       Thread-607526][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:27:51,992 [DEBUG][       Thread-607526][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:27:52,006 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:27:52,006 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:27:52,010 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:27:52,013 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:27:52,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:27:52,018 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:27:52,018 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:27:52,018 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:27:52,018 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.519038 -999.00  +13.50  35.42     52   +3.90 1 2 2 1 1   887    0 8.81 -25.28 ----- 36.4 35.4 33.6 58.2 15.7 -21.0 15.1 -21.4 15.2 -19.8 15.7 -19.2
2025-07-01 14:27:52,018 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:27:52,018 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:27:52,018 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.519038
2025-07-01 14:27:52,018 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:27:52,019 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:27:52,019 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:27:52,019 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:27:52,019 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:27:52,019 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:27:44', tmtdew=10.98, humidity=47.48, cloud=0.0, wind=31.92, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:27:24.883', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:27:52,019 [DEBUG][       Thread-607526][   transport.py][1871] : EOF in transport thread
2025-07-01 14:27:52,092 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:27:52,103 [DEBUG][       Thread-607529][   transport.py][1871] : starting thread (client mode): 0x818f790
2025-07-01 14:27:52,103 [DEBUG][       Thread-607529][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:27:52,118 [DEBUG][       Thread-607529][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:27:52,118 [ INFO][       Thread-607529][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:27:52,125 [DEBUG][       Thread-607529][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:27:52,125 [DEBUG][       Thread-607529][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:27:52,125 [DEBUG][       Thread-607529][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:27:52,125 [DEBUG][       Thread-607529][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:27:52,125 [DEBUG][       Thread-607529][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:27:52,125 [DEBUG][       Thread-607529][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:27:52,125 [DEBUG][       Thread-607529][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:27:52,126 [DEBUG][       Thread-607529][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:27:52,126 [DEBUG][       Thread-607529][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:27:52,126 [DEBUG][       Thread-607529][   transport.py][1871] : client lang: <none>
2025-07-01 14:27:52,126 [DEBUG][       Thread-607529][   transport.py][1871] : server lang: <none>
2025-07-01 14:27:52,126 [DEBUG][       Thread-607529][   transport.py][1871] : kex follows: False
2025-07-01 14:27:52,126 [DEBUG][       Thread-607529][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:27:52,126 [DEBUG][       Thread-607529][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:27:52,126 [DEBUG][       Thread-607529][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:27:52,126 [DEBUG][       Thread-607529][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:27:52,126 [DEBUG][       Thread-607529][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:27:52,126 [DEBUG][       Thread-607529][   transport.py][1871] : Compression: none
2025-07-01 14:27:52,126 [DEBUG][       Thread-607529][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:27:52,184 [DEBUG][       Thread-607529][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:27:52,185 [DEBUG][       Thread-607529][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:27:52,185 [DEBUG][       Thread-607529][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:27:52,185 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:27:52,185 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:27:52,243 [DEBUG][       Thread-607529][   transport.py][1871] : userauth is OK
2025-07-01 14:27:52,243 [DEBUG][       Thread-607529][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:27:52,243 [DEBUG][       Thread-607529][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:27:52,243 [DEBUG][       Thread-607529][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:27:52,243 [DEBUG][       Thread-607529][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:27:52,257 [ INFO][       Thread-607529][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:27:52,257 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:27:52,257 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:27:52,515 [DEBUG][Thread-607531 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:27:53,245 [DEBUG][       Thread-607529][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:27:53,245 [DEBUG][       Thread-607529][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:27:53,295 [DEBUG][       Thread-607529][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:27:53,296 [DEBUG][       Thread-607529][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:27:53,304 [DEBUG][       Thread-607529][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:27:53,312 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:27:53,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')
2025-07-01 14:27:53,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-07-01 14:27:53,328 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:27:53,328 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:27:53,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:27:53,336 [DEBUG][       Thread-607529][   transport.py][1871] : EOF in transport thread
2025-07-01 14:28:01,545 [DEBUG][Thread-607532 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:28:03,339 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:28:03,339 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:28:03,339 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:28:03,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-07-01 14:28:03,840 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 27, 44), 10.98, 47.48, 0.0, 31.92, 13.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:28:03,840 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:27:44
2025-07-01 14:28:03,927 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:28:03,931 [DEBUG][       Thread-607533][   transport.py][1871] : starting thread (client mode): 0x75ab4c0
2025-07-01 14:28:03,931 [DEBUG][       Thread-607533][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:28:03,950 [DEBUG][       Thread-607533][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:28:03,950 [ INFO][       Thread-607533][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:28:03,952 [DEBUG][       Thread-607533][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:28:03,952 [DEBUG][       Thread-607533][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:28:03,952 [DEBUG][       Thread-607533][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:28:03,953 [DEBUG][       Thread-607533][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:28:03,953 [DEBUG][       Thread-607533][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:28:03,953 [DEBUG][       Thread-607533][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:28:03,953 [DEBUG][       Thread-607533][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:28:03,953 [DEBUG][       Thread-607533][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:28:03,953 [DEBUG][       Thread-607533][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:28:03,953 [DEBUG][       Thread-607533][   transport.py][1871] : client lang: <none>
2025-07-01 14:28:03,953 [DEBUG][       Thread-607533][   transport.py][1871] : server lang: <none>
2025-07-01 14:28:03,953 [DEBUG][       Thread-607533][   transport.py][1871] : kex follows: False
2025-07-01 14:28:03,953 [DEBUG][       Thread-607533][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:28:03,953 [DEBUG][       Thread-607533][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:28:03,953 [DEBUG][       Thread-607533][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:28:03,953 [DEBUG][       Thread-607533][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:28:03,953 [DEBUG][       Thread-607533][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:28:03,953 [DEBUG][       Thread-607533][   transport.py][1871] : Compression: none
2025-07-01 14:28:03,953 [DEBUG][       Thread-607533][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:28:03,964 [DEBUG][       Thread-607533][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:28:03,964 [DEBUG][       Thread-607533][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:28:03,965 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:28:03,965 [DEBUG][       Thread-607533][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:28:03,965 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:28:03,966 [DEBUG][       Thread-607533][   transport.py][1871] : userauth is OK
2025-07-01 14:28:03,979 [ INFO][       Thread-607533][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:28:03,979 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:28:04,601 [DEBUG][       Thread-607533][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:28:04,601 [DEBUG][       Thread-607533][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:28:04,645 [DEBUG][       Thread-607533][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:28:04,645 [DEBUG][       Thread-607533][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:28:04,648 [DEBUG][       Thread-607533][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:28:04,659 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:28:04,659 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:28:04,661 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:28:04,663 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:28:04,669 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:28:04,671 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:28:04,671 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:28:04,671 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:28:04,672 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.519038 -999.00  +13.50  35.42     52   +3.90 1 2 2 1 1   887    0 8.81 -25.28 ----- 36.4 35.4 33.6 58.2 15.7 -21.0 15.1 -21.4 15.2 -19.8 15.7 -19.2
2025-07-01 14:28:04,672 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:28:04,672 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:28:04,672 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.519038
2025-07-01 14:28:04,672 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:28:04,673 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:28:04,673 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:28:04,673 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:28:04,673 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:28:04,673 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:27:44', tmtdew=10.98, humidity=47.48, cloud=0.0, wind=31.92, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:27:24.883', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:28:04,674 [DEBUG][       Thread-607533][   transport.py][1871] : EOF in transport thread
2025-07-01 14:28:04,758 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:28:04,772 [DEBUG][       Thread-607536][   transport.py][1871] : starting thread (client mode): 0x81a5120
2025-07-01 14:28:04,772 [DEBUG][       Thread-607536][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:28:04,792 [DEBUG][       Thread-607536][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:28:04,792 [ INFO][       Thread-607536][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:28:04,799 [DEBUG][       Thread-607536][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:28:04,800 [DEBUG][       Thread-607536][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:28:04,800 [DEBUG][       Thread-607536][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:28:04,800 [DEBUG][       Thread-607536][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:28:04,800 [DEBUG][       Thread-607536][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:28:04,800 [DEBUG][       Thread-607536][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:28:04,800 [DEBUG][       Thread-607536][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:28:04,800 [DEBUG][       Thread-607536][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:28:04,800 [DEBUG][       Thread-607536][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:28:04,800 [DEBUG][       Thread-607536][   transport.py][1871] : client lang: <none>
2025-07-01 14:28:04,800 [DEBUG][       Thread-607536][   transport.py][1871] : server lang: <none>
2025-07-01 14:28:04,800 [DEBUG][       Thread-607536][   transport.py][1871] : kex follows: False
2025-07-01 14:28:04,800 [DEBUG][       Thread-607536][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:28:04,800 [DEBUG][       Thread-607536][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:28:04,800 [DEBUG][       Thread-607536][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:28:04,800 [DEBUG][       Thread-607536][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:28:04,800 [DEBUG][       Thread-607536][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:28:04,801 [DEBUG][       Thread-607536][   transport.py][1871] : Compression: none
2025-07-01 14:28:04,801 [DEBUG][       Thread-607536][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:28:04,859 [DEBUG][       Thread-607536][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:28:04,859 [DEBUG][       Thread-607536][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:28:04,859 [DEBUG][       Thread-607536][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:28:04,860 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:28:04,860 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:28:04,915 [DEBUG][       Thread-607536][   transport.py][1871] : userauth is OK
2025-07-01 14:28:04,915 [DEBUG][       Thread-607536][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:28:04,915 [DEBUG][       Thread-607536][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:28:04,916 [DEBUG][       Thread-607536][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:28:04,916 [DEBUG][       Thread-607536][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:28:04,934 [ INFO][       Thread-607536][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:28:04,935 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:28:04,935 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:28:05,959 [DEBUG][       Thread-607536][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:28:05,959 [DEBUG][       Thread-607536][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:28:06,007 [DEBUG][       Thread-607536][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:28:06,008 [DEBUG][       Thread-607536][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:28:06,017 [DEBUG][       Thread-607536][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:28:06,025 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:28:06,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-07-01 14:28:06,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-07-01 14:28:06,045 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:28:06,045 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:28:06,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:28:06,053 [DEBUG][       Thread-607536][   transport.py][1871] : EOF in transport thread
2025-07-01 14:28:10,563 [DEBUG][Thread-607538 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:28:16,056 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:28:16,056 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:28:16,056 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:28:16,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-07-01 14:28:16,561 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 27, 44), 10.98, 47.48, 0.0, 31.92, 13.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:28:16,561 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:27:44
2025-07-01 14:28:16,655 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:28:16,661 [DEBUG][       Thread-607539][   transport.py][1871] : starting thread (client mode): 0x81a5630
2025-07-01 14:28:16,661 [DEBUG][       Thread-607539][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:28:16,681 [DEBUG][       Thread-607539][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:28:16,681 [ INFO][       Thread-607539][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:28:16,684 [DEBUG][       Thread-607539][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:28:16,684 [DEBUG][       Thread-607539][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:28:16,684 [DEBUG][       Thread-607539][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:28:16,684 [DEBUG][       Thread-607539][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:28:16,684 [DEBUG][       Thread-607539][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:28:16,684 [DEBUG][       Thread-607539][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:28:16,684 [DEBUG][       Thread-607539][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:28:16,684 [DEBUG][       Thread-607539][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:28:16,684 [DEBUG][       Thread-607539][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:28:16,684 [DEBUG][       Thread-607539][   transport.py][1871] : client lang: <none>
2025-07-01 14:28:16,684 [DEBUG][       Thread-607539][   transport.py][1871] : server lang: <none>
2025-07-01 14:28:16,684 [DEBUG][       Thread-607539][   transport.py][1871] : kex follows: False
2025-07-01 14:28:16,684 [DEBUG][       Thread-607539][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:28:16,684 [DEBUG][       Thread-607539][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:28:16,684 [DEBUG][       Thread-607539][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:28:16,684 [DEBUG][       Thread-607539][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:28:16,684 [DEBUG][       Thread-607539][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:28:16,684 [DEBUG][       Thread-607539][   transport.py][1871] : Compression: none
2025-07-01 14:28:16,684 [DEBUG][       Thread-607539][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:28:16,699 [DEBUG][       Thread-607539][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:28:16,699 [DEBUG][       Thread-607539][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:28:16,699 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:28:16,699 [DEBUG][       Thread-607539][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:28:16,699 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:28:16,700 [DEBUG][       Thread-607539][   transport.py][1871] : userauth is OK
2025-07-01 14:28:16,724 [ INFO][       Thread-607539][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:28:16,724 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:28:17,376 [DEBUG][       Thread-607539][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:28:17,376 [DEBUG][       Thread-607539][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:28:17,420 [DEBUG][       Thread-607539][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:28:17,420 [DEBUG][       Thread-607539][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:28:17,423 [DEBUG][       Thread-607539][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:28:17,435 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:28:17,435 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:28:17,437 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:28:17,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:28:17,440 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:28:17,441 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:28:17,441 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:28:17,441 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:28:17,441 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.519038 -999.00  +13.50  35.42     52   +3.90 1 2 2 1 1   887    0 8.81 -25.28 ----- 36.4 35.4 33.6 58.2 15.7 -21.0 15.1 -21.4 15.2 -19.8 15.7 -19.2
2025-07-01 14:28:17,441 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:28:17,441 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:28:17,441 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.519038
2025-07-01 14:28:17,441 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:28:17,442 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:28:17,442 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:28:17,442 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:28:17,442 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:28:17,442 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:27:44', tmtdew=10.98, humidity=47.48, cloud=0.0, wind=31.92, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:27:24.883', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:28:17,442 [DEBUG][       Thread-607539][   transport.py][1871] : EOF in transport thread
2025-07-01 14:28:17,517 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:28:17,527 [DEBUG][       Thread-607542][   transport.py][1871] : starting thread (client mode): 0x8a65e70
2025-07-01 14:28:17,527 [DEBUG][       Thread-607542][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:28:17,542 [DEBUG][       Thread-607542][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:28:17,542 [ INFO][       Thread-607542][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:28:17,558 [DEBUG][       Thread-607542][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:28:17,558 [DEBUG][       Thread-607542][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:28:17,558 [DEBUG][       Thread-607542][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:28:17,558 [DEBUG][       Thread-607542][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:28:17,558 [DEBUG][       Thread-607542][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:28:17,558 [DEBUG][       Thread-607542][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:28:17,558 [DEBUG][       Thread-607542][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:28:17,558 [DEBUG][       Thread-607542][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:28:17,558 [DEBUG][       Thread-607542][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:28:17,558 [DEBUG][       Thread-607542][   transport.py][1871] : client lang: <none>
2025-07-01 14:28:17,558 [DEBUG][       Thread-607542][   transport.py][1871] : server lang: <none>
2025-07-01 14:28:17,558 [DEBUG][       Thread-607542][   transport.py][1871] : kex follows: False
2025-07-01 14:28:17,558 [DEBUG][       Thread-607542][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:28:17,558 [DEBUG][       Thread-607542][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:28:17,558 [DEBUG][       Thread-607542][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:28:17,558 [DEBUG][       Thread-607542][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:28:17,558 [DEBUG][       Thread-607542][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:28:17,558 [DEBUG][       Thread-607542][   transport.py][1871] : Compression: none
2025-07-01 14:28:17,558 [DEBUG][       Thread-607542][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:28:17,610 [DEBUG][       Thread-607542][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:28:17,610 [DEBUG][       Thread-607542][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:28:17,610 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:28:17,610 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:28:17,610 [DEBUG][       Thread-607542][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:28:17,667 [DEBUG][       Thread-607542][   transport.py][1871] : userauth is OK
2025-07-01 14:28:17,667 [DEBUG][       Thread-607542][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:28:17,667 [DEBUG][       Thread-607542][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:28:17,667 [DEBUG][       Thread-607542][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:28:17,667 [DEBUG][       Thread-607542][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:28:17,681 [ INFO][       Thread-607542][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:28:17,681 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:28:17,682 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:28:18,659 [DEBUG][       Thread-607542][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:28:18,659 [DEBUG][       Thread-607542][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:28:18,709 [DEBUG][       Thread-607542][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:28:18,709 [DEBUG][       Thread-607542][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:28:18,721 [DEBUG][       Thread-607542][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:28:18,732 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:28:18,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-07-01 14:28:18,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-07-01 14:28:18,759 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:28:18,759 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:28:18,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:28:18,767 [DEBUG][       Thread-607542][   transport.py][1871] : EOF in transport thread
2025-07-01 14:28:19,580 [DEBUG][Thread-607544 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:28:28,600 [DEBUG][Thread-607545 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:28:28,766 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:28:28,766 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:28:28,766 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:28:28,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-07-01 14:28:29,290 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 28, 16), 10.98, 47.49, 0.0, 43.21, 13.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:28:29,291 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:28:16
2025-07-01 14:28:29,377 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:28:29,381 [DEBUG][       Thread-607546][   transport.py][1871] : starting thread (client mode): 0x81ca1a0
2025-07-01 14:28:29,381 [DEBUG][       Thread-607546][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:28:29,402 [DEBUG][       Thread-607546][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:28:29,402 [ INFO][       Thread-607546][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:28:29,405 [DEBUG][       Thread-607546][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:28:29,406 [DEBUG][       Thread-607546][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:28:29,406 [DEBUG][       Thread-607546][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:28:29,406 [DEBUG][       Thread-607546][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:28:29,406 [DEBUG][       Thread-607546][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:28:29,406 [DEBUG][       Thread-607546][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:28:29,406 [DEBUG][       Thread-607546][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:28:29,406 [DEBUG][       Thread-607546][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:28:29,406 [DEBUG][       Thread-607546][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:28:29,406 [DEBUG][       Thread-607546][   transport.py][1871] : client lang: <none>
2025-07-01 14:28:29,406 [DEBUG][       Thread-607546][   transport.py][1871] : server lang: <none>
2025-07-01 14:28:29,406 [DEBUG][       Thread-607546][   transport.py][1871] : kex follows: False
2025-07-01 14:28:29,406 [DEBUG][       Thread-607546][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:28:29,406 [DEBUG][       Thread-607546][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:28:29,406 [DEBUG][       Thread-607546][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:28:29,406 [DEBUG][       Thread-607546][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:28:29,406 [DEBUG][       Thread-607546][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:28:29,406 [DEBUG][       Thread-607546][   transport.py][1871] : Compression: none
2025-07-01 14:28:29,406 [DEBUG][       Thread-607546][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:28:29,427 [DEBUG][       Thread-607546][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:28:29,427 [DEBUG][       Thread-607546][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:28:29,428 [DEBUG][       Thread-607546][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:28:29,428 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:28:29,428 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:28:29,429 [DEBUG][       Thread-607546][   transport.py][1871] : userauth is OK
2025-07-01 14:28:29,453 [ INFO][       Thread-607546][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:28:29,454 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:28:30,121 [DEBUG][       Thread-607546][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:28:30,121 [DEBUG][       Thread-607546][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:28:30,165 [DEBUG][       Thread-607546][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:28:30,165 [DEBUG][       Thread-607546][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:28:30,168 [DEBUG][       Thread-607546][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:28:30,181 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:28:30,181 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:28:30,183 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:28:30,184 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:28:30,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:28:30,191 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:28:30,191 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:28:30,191 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:28:30,191 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.519385 -999.00  +13.50  42.61     52   +3.90 1 2 2 1 1   887    0 8.89 -28.41 ----- 39.8 42.6 41.0 53.7 15.6 -20.7 15.2 -21.6 15.1 -20.2 15.7 -19.1
2025-07-01 14:28:30,192 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:28:30,192 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:28:30,192 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.519385
2025-07-01 14:28:30,192 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:28:30,193 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:28:30,193 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:28:30,193 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:28:30,193 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:28:30,193 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:28:16', tmtdew=10.98, humidity=47.49, cloud=0.0, wind=43.21, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:27:54.864', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:28:30,193 [DEBUG][       Thread-607546][   transport.py][1871] : EOF in transport thread
2025-07-01 14:28:30,279 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:28:30,290 [DEBUG][       Thread-607549][   transport.py][1871] : starting thread (client mode): 0x81a5480
2025-07-01 14:28:30,291 [DEBUG][       Thread-607549][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:28:30,306 [DEBUG][       Thread-607549][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:28:30,306 [ INFO][       Thread-607549][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:28:30,313 [DEBUG][       Thread-607549][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:28:30,313 [DEBUG][       Thread-607549][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:28:30,313 [DEBUG][       Thread-607549][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:28:30,313 [DEBUG][       Thread-607549][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:28:30,313 [DEBUG][       Thread-607549][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:28:30,313 [DEBUG][       Thread-607549][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:28:30,313 [DEBUG][       Thread-607549][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:28:30,313 [DEBUG][       Thread-607549][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:28:30,313 [DEBUG][       Thread-607549][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:28:30,313 [DEBUG][       Thread-607549][   transport.py][1871] : client lang: <none>
2025-07-01 14:28:30,314 [DEBUG][       Thread-607549][   transport.py][1871] : server lang: <none>
2025-07-01 14:28:30,314 [DEBUG][       Thread-607549][   transport.py][1871] : kex follows: False
2025-07-01 14:28:30,314 [DEBUG][       Thread-607549][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:28:30,314 [DEBUG][       Thread-607549][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:28:30,314 [DEBUG][       Thread-607549][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:28:30,314 [DEBUG][       Thread-607549][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:28:30,314 [DEBUG][       Thread-607549][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:28:30,314 [DEBUG][       Thread-607549][   transport.py][1871] : Compression: none
2025-07-01 14:28:30,314 [DEBUG][       Thread-607549][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:28:30,371 [DEBUG][       Thread-607549][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:28:30,372 [DEBUG][       Thread-607549][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:28:30,372 [DEBUG][       Thread-607549][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:28:30,373 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:28:30,373 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:28:30,429 [DEBUG][       Thread-607549][   transport.py][1871] : userauth is OK
2025-07-01 14:28:30,430 [DEBUG][       Thread-607549][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:28:30,430 [DEBUG][       Thread-607549][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:28:30,430 [DEBUG][       Thread-607549][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:28:30,430 [DEBUG][       Thread-607549][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:28:30,449 [ INFO][       Thread-607549][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:28:30,449 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:28:30,449 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:28:31,492 [DEBUG][       Thread-607549][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:28:31,493 [DEBUG][       Thread-607549][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:28:31,546 [DEBUG][       Thread-607549][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:28:31,546 [DEBUG][       Thread-607549][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:28:31,555 [DEBUG][       Thread-607549][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:28:31,563 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:28:31,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-07-01 14:28:31,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-07-01 14:28:31,584 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:28:31,585 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:28:31,585 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:28:31,593 [DEBUG][       Thread-607549][   transport.py][1871] : EOF in transport thread
2025-07-01 14:28:32,832 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:28:32,833 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:28:34,941 [DEBUG][Thread-607551 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:28:37,619 [DEBUG][Thread-607552 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:28:41,595 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:28:41,595 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:28:41,596 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:28:41,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-07-01 14:28:42,079 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 28, 16), 10.98, 47.49, 0.0, 43.21, 13.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:28:42,079 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:28:16
2025-07-01 14:28:42,164 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:28:42,168 [DEBUG][       Thread-607553][   transport.py][1871] : starting thread (client mode): 0x818e890
2025-07-01 14:28:42,168 [DEBUG][       Thread-607553][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:28:42,189 [DEBUG][       Thread-607553][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:28:42,190 [ INFO][       Thread-607553][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:28:42,193 [DEBUG][       Thread-607553][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:28:42,193 [DEBUG][       Thread-607553][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:28:42,193 [DEBUG][       Thread-607553][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:28:42,193 [DEBUG][       Thread-607553][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:28:42,193 [DEBUG][       Thread-607553][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:28:42,193 [DEBUG][       Thread-607553][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:28:42,193 [DEBUG][       Thread-607553][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:28:42,193 [DEBUG][       Thread-607553][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:28:42,193 [DEBUG][       Thread-607553][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:28:42,193 [DEBUG][       Thread-607553][   transport.py][1871] : client lang: <none>
2025-07-01 14:28:42,193 [DEBUG][       Thread-607553][   transport.py][1871] : server lang: <none>
2025-07-01 14:28:42,193 [DEBUG][       Thread-607553][   transport.py][1871] : kex follows: False
2025-07-01 14:28:42,193 [DEBUG][       Thread-607553][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:28:42,193 [DEBUG][       Thread-607553][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:28:42,193 [DEBUG][       Thread-607553][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:28:42,193 [DEBUG][       Thread-607553][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:28:42,193 [DEBUG][       Thread-607553][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:28:42,193 [DEBUG][       Thread-607553][   transport.py][1871] : Compression: none
2025-07-01 14:28:42,193 [DEBUG][       Thread-607553][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:28:42,209 [DEBUG][       Thread-607553][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:28:42,209 [DEBUG][       Thread-607553][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:28:42,219 [DEBUG][       Thread-607553][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:28:42,219 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:28:42,219 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:28:42,220 [DEBUG][       Thread-607553][   transport.py][1871] : userauth is OK
2025-07-01 14:28:42,245 [ INFO][       Thread-607553][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:28:42,245 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:28:42,899 [DEBUG][       Thread-607553][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:28:42,900 [DEBUG][       Thread-607553][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:28:42,945 [DEBUG][       Thread-607553][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:28:42,945 [DEBUG][       Thread-607553][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:28:42,949 [DEBUG][       Thread-607553][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:28:42,962 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:28:42,963 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:28:42,964 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:28:42,966 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:28:42,971 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:28:42,973 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:28:42,973 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:28:42,974 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:28:42,974 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.519385 -999.00  +13.50  42.61     52   +3.90 1 2 2 1 1   887    0 8.89 -28.41 ----- 39.8 42.6 41.0 53.7 15.6 -20.7 15.2 -21.6 15.1 -20.2 15.7 -19.1
2025-07-01 14:28:42,974 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:28:42,974 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:28:42,974 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.519385
2025-07-01 14:28:42,975 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:28:42,975 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:28:42,975 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:28:42,976 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:28:42,976 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:28:42,976 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:28:16', tmtdew=10.98, humidity=47.49, cloud=0.0, wind=43.21, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:27:54.864', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:28:42,976 [DEBUG][       Thread-607553][   transport.py][1871] : EOF in transport thread
2025-07-01 14:28:43,060 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:28:43,069 [DEBUG][       Thread-607556][   transport.py][1871] : starting thread (client mode): 0x8106b30
2025-07-01 14:28:43,069 [DEBUG][       Thread-607556][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:28:43,085 [DEBUG][       Thread-607556][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:28:43,085 [ INFO][       Thread-607556][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:28:43,092 [DEBUG][       Thread-607556][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:28:43,092 [DEBUG][       Thread-607556][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:28:43,093 [DEBUG][       Thread-607556][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:28:43,093 [DEBUG][       Thread-607556][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:28:43,093 [DEBUG][       Thread-607556][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:28:43,093 [DEBUG][       Thread-607556][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:28:43,093 [DEBUG][       Thread-607556][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:28:43,093 [DEBUG][       Thread-607556][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:28:43,093 [DEBUG][       Thread-607556][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:28:43,093 [DEBUG][       Thread-607556][   transport.py][1871] : client lang: <none>
2025-07-01 14:28:43,093 [DEBUG][       Thread-607556][   transport.py][1871] : server lang: <none>
2025-07-01 14:28:43,093 [DEBUG][       Thread-607556][   transport.py][1871] : kex follows: False
2025-07-01 14:28:43,093 [DEBUG][       Thread-607556][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:28:43,093 [DEBUG][       Thread-607556][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:28:43,093 [DEBUG][       Thread-607556][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:28:43,093 [DEBUG][       Thread-607556][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:28:43,093 [DEBUG][       Thread-607556][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:28:43,093 [DEBUG][       Thread-607556][   transport.py][1871] : Compression: none
2025-07-01 14:28:43,093 [DEBUG][       Thread-607556][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:28:43,152 [DEBUG][       Thread-607556][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:28:43,153 [DEBUG][       Thread-607556][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:28:43,153 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:28:43,154 [DEBUG][       Thread-607556][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:28:43,155 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:28:43,211 [DEBUG][       Thread-607556][   transport.py][1871] : userauth is OK
2025-07-01 14:28:43,211 [DEBUG][       Thread-607556][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:28:43,211 [DEBUG][       Thread-607556][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:28:43,211 [DEBUG][       Thread-607556][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:28:43,212 [DEBUG][       Thread-607556][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:28:43,231 [ INFO][       Thread-607556][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:28:43,231 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:28:43,232 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:28:44,335 [DEBUG][       Thread-607556][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:28:44,335 [DEBUG][       Thread-607556][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:28:44,384 [DEBUG][       Thread-607556][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:28:44,384 [DEBUG][       Thread-607556][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:28:44,399 [DEBUG][       Thread-607556][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:28:44,408 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:28:44,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-07-01 14:28:44,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') -> 00000000
2025-07-01 14:28:44,427 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:28:44,427 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:28:44,427 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:28:44,435 [DEBUG][       Thread-607556][   transport.py][1871] : EOF in transport thread
2025-07-01 14:28:46,650 [DEBUG][Thread-607558 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:28:54,437 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:28:54,437 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:28:54,437 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:28:54,438 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:28:54,955 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 28, 48), 10.97, 47.52, 0.0, 36.49, 13.64, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:28:54,955 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:28:48
2025-07-01 14:28:55,045 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:28:55,049 [DEBUG][       Thread-607559][   transport.py][1871] : starting thread (client mode): 0x81a4c10
2025-07-01 14:28:55,049 [DEBUG][       Thread-607559][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:28:55,068 [DEBUG][       Thread-607559][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:28:55,068 [ INFO][       Thread-607559][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:28:55,072 [DEBUG][       Thread-607559][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:28:55,072 [DEBUG][       Thread-607559][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:28:55,072 [DEBUG][       Thread-607559][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:28:55,072 [DEBUG][       Thread-607559][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:28:55,072 [DEBUG][       Thread-607559][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:28:55,072 [DEBUG][       Thread-607559][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:28:55,072 [DEBUG][       Thread-607559][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:28:55,072 [DEBUG][       Thread-607559][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:28:55,072 [DEBUG][       Thread-607559][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:28:55,072 [DEBUG][       Thread-607559][   transport.py][1871] : client lang: <none>
2025-07-01 14:28:55,072 [DEBUG][       Thread-607559][   transport.py][1871] : server lang: <none>
2025-07-01 14:28:55,072 [DEBUG][       Thread-607559][   transport.py][1871] : kex follows: False
2025-07-01 14:28:55,072 [DEBUG][       Thread-607559][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:28:55,072 [DEBUG][       Thread-607559][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:28:55,072 [DEBUG][       Thread-607559][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:28:55,072 [DEBUG][       Thread-607559][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:28:55,072 [DEBUG][       Thread-607559][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:28:55,072 [DEBUG][       Thread-607559][   transport.py][1871] : Compression: none
2025-07-01 14:28:55,072 [DEBUG][       Thread-607559][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:28:55,087 [DEBUG][       Thread-607559][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:28:55,087 [DEBUG][       Thread-607559][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:28:55,087 [DEBUG][       Thread-607559][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:28:55,087 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:28:55,087 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:28:55,088 [DEBUG][       Thread-607559][   transport.py][1871] : userauth is OK
2025-07-01 14:28:55,112 [ INFO][       Thread-607559][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:28:55,112 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:28:55,669 [DEBUG][Thread-607561 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:28:55,697 [DEBUG][       Thread-607559][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:28:55,697 [DEBUG][       Thread-607559][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:28:55,740 [DEBUG][       Thread-607559][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:28:55,740 [DEBUG][       Thread-607559][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:28:55,743 [DEBUG][       Thread-607559][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:28:55,756 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:28:55,756 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:28:55,756 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:28:55,757 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:28:55,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:28:55,760 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:28:55,760 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:28:55,760 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:28:55,760 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.519733 -999.00  +13.50  33.26     52   +3.80 1 2 2 1 1   887    0 8.99 -25.97 ----- 33.0 33.3 22.4 55.0 15.7 -20.5 15.1 -21.5 15.2 -20.2 15.7 -20.2
2025-07-01 14:28:55,760 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:28:55,760 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:28:55,760 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.519733
2025-07-01 14:28:55,760 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:28:55,760 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:28:55,760 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:28:55,760 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:28:55,760 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:28:55,760 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:28:48', tmtdew=10.97, humidity=47.52, cloud=0.0, wind=36.49, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:28:24.931', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:28:55,761 [DEBUG][       Thread-607559][   transport.py][1871] : EOF in transport thread
2025-07-01 14:28:55,835 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:28:55,847 [DEBUG][       Thread-607563][   transport.py][1871] : starting thread (client mode): 0x8a65e70
2025-07-01 14:28:55,847 [DEBUG][       Thread-607563][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:28:55,863 [DEBUG][       Thread-607563][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:28:55,863 [ INFO][       Thread-607563][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:28:55,871 [DEBUG][       Thread-607563][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:28:55,871 [DEBUG][       Thread-607563][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:28:55,871 [DEBUG][       Thread-607563][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:28:55,871 [DEBUG][       Thread-607563][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:28:55,871 [DEBUG][       Thread-607563][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:28:55,871 [DEBUG][       Thread-607563][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:28:55,871 [DEBUG][       Thread-607563][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:28:55,871 [DEBUG][       Thread-607563][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:28:55,871 [DEBUG][       Thread-607563][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:28:55,871 [DEBUG][       Thread-607563][   transport.py][1871] : client lang: <none>
2025-07-01 14:28:55,871 [DEBUG][       Thread-607563][   transport.py][1871] : server lang: <none>
2025-07-01 14:28:55,871 [DEBUG][       Thread-607563][   transport.py][1871] : kex follows: False
2025-07-01 14:28:55,871 [DEBUG][       Thread-607563][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:28:55,871 [DEBUG][       Thread-607563][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:28:55,871 [DEBUG][       Thread-607563][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:28:55,871 [DEBUG][       Thread-607563][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:28:55,871 [DEBUG][       Thread-607563][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:28:55,871 [DEBUG][       Thread-607563][   transport.py][1871] : Compression: none
2025-07-01 14:28:55,871 [DEBUG][       Thread-607563][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:28:55,932 [DEBUG][       Thread-607563][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:28:55,933 [DEBUG][       Thread-607563][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:28:55,933 [DEBUG][       Thread-607563][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:28:55,933 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:28:55,933 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:28:55,991 [DEBUG][       Thread-607563][   transport.py][1871] : userauth is OK
2025-07-01 14:28:55,991 [DEBUG][       Thread-607563][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:28:55,992 [DEBUG][       Thread-607563][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:28:55,992 [DEBUG][       Thread-607563][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:28:55,992 [DEBUG][       Thread-607563][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:28:56,006 [ INFO][       Thread-607563][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:28:56,006 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:28:56,006 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:28:57,032 [DEBUG][       Thread-607563][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:28:57,032 [DEBUG][       Thread-607563][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:28:57,079 [DEBUG][       Thread-607563][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:28:57,079 [DEBUG][       Thread-607563][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:28:57,088 [DEBUG][       Thread-607563][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:28:57,096 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:28:57,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')
2025-07-01 14:28:57,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-07-01 14:28:57,111 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:28:57,111 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:28:57,112 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:28:57,119 [DEBUG][       Thread-607563][   transport.py][1871] : EOF in transport thread
2025-07-01 14:29:04,689 [DEBUG][Thread-607565 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:29:07,117 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:29:07,117 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:29:07,117 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:29:07,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-07-01 14:29:07,619 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 28, 48), 10.97, 47.52, 0.0, 36.49, 13.64, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:29:07,619 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:28:48
2025-07-01 14:29:07,706 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:29:07,710 [DEBUG][       Thread-607566][   transport.py][1871] : starting thread (client mode): 0x8173e50
2025-07-01 14:29:07,710 [DEBUG][       Thread-607566][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:29:07,731 [DEBUG][       Thread-607566][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:29:07,731 [ INFO][       Thread-607566][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:29:07,734 [DEBUG][       Thread-607566][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:29:07,734 [DEBUG][       Thread-607566][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:29:07,734 [DEBUG][       Thread-607566][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:29:07,734 [DEBUG][       Thread-607566][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:29:07,734 [DEBUG][       Thread-607566][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:29:07,734 [DEBUG][       Thread-607566][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:29:07,734 [DEBUG][       Thread-607566][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:29:07,734 [DEBUG][       Thread-607566][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:29:07,734 [DEBUG][       Thread-607566][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:29:07,734 [DEBUG][       Thread-607566][   transport.py][1871] : client lang: <none>
2025-07-01 14:29:07,735 [DEBUG][       Thread-607566][   transport.py][1871] : server lang: <none>
2025-07-01 14:29:07,735 [DEBUG][       Thread-607566][   transport.py][1871] : kex follows: False
2025-07-01 14:29:07,735 [DEBUG][       Thread-607566][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:29:07,735 [DEBUG][       Thread-607566][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:29:07,735 [DEBUG][       Thread-607566][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:29:07,735 [DEBUG][       Thread-607566][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:29:07,735 [DEBUG][       Thread-607566][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:29:07,735 [DEBUG][       Thread-607566][   transport.py][1871] : Compression: none
2025-07-01 14:29:07,735 [DEBUG][       Thread-607566][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:29:07,751 [DEBUG][       Thread-607566][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:29:07,752 [DEBUG][       Thread-607566][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:29:07,752 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:29:07,753 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:29:07,753 [DEBUG][       Thread-607566][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:29:07,754 [DEBUG][       Thread-607566][   transport.py][1871] : userauth is OK
2025-07-01 14:29:07,767 [ INFO][       Thread-607566][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:29:07,768 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:29:08,398 [DEBUG][       Thread-607566][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:29:08,398 [DEBUG][       Thread-607566][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:29:08,442 [DEBUG][       Thread-607566][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:29:08,442 [DEBUG][       Thread-607566][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:29:08,447 [DEBUG][       Thread-607566][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:29:08,462 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:29:08,462 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:29:08,464 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:29:08,466 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:29:08,473 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:29:08,475 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:29:08,475 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:29:08,475 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:29:08,476 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.519733 -999.00  +13.50  33.26     52   +3.80 1 2 2 1 1   887    0 8.99 -25.97 ----- 33.0 33.3 22.4 55.0 15.7 -20.5 15.1 -21.5 15.2 -20.2 15.7 -20.2
2025-07-01 14:29:08,476 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:29:08,476 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:29:08,476 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.519733
2025-07-01 14:29:08,476 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:29:08,477 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:29:08,477 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:29:08,477 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:29:08,477 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:29:08,477 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:28:48', tmtdew=10.97, humidity=47.52, cloud=0.0, wind=36.49, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:28:24.931', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:29:08,478 [DEBUG][       Thread-607566][   transport.py][1871] : EOF in transport thread
2025-07-01 14:29:08,561 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:29:08,570 [DEBUG][       Thread-607569][   transport.py][1871] : starting thread (client mode): 0x75a9d50
2025-07-01 14:29:08,570 [DEBUG][       Thread-607569][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:29:08,585 [DEBUG][       Thread-607569][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:29:08,585 [ INFO][       Thread-607569][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:29:08,593 [DEBUG][       Thread-607569][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:29:08,593 [DEBUG][       Thread-607569][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:29:08,593 [DEBUG][       Thread-607569][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:29:08,593 [DEBUG][       Thread-607569][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:29:08,593 [DEBUG][       Thread-607569][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:29:08,593 [DEBUG][       Thread-607569][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:29:08,593 [DEBUG][       Thread-607569][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:29:08,593 [DEBUG][       Thread-607569][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:29:08,593 [DEBUG][       Thread-607569][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:29:08,593 [DEBUG][       Thread-607569][   transport.py][1871] : client lang: <none>
2025-07-01 14:29:08,593 [DEBUG][       Thread-607569][   transport.py][1871] : server lang: <none>
2025-07-01 14:29:08,593 [DEBUG][       Thread-607569][   transport.py][1871] : kex follows: False
2025-07-01 14:29:08,593 [DEBUG][       Thread-607569][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:29:08,593 [DEBUG][       Thread-607569][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:29:08,593 [DEBUG][       Thread-607569][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:29:08,593 [DEBUG][       Thread-607569][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:29:08,593 [DEBUG][       Thread-607569][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:29:08,593 [DEBUG][       Thread-607569][   transport.py][1871] : Compression: none
2025-07-01 14:29:08,593 [DEBUG][       Thread-607569][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:29:08,649 [DEBUG][       Thread-607569][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:29:08,650 [DEBUG][       Thread-607569][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:29:08,650 [DEBUG][       Thread-607569][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:29:08,650 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:29:08,650 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:29:08,707 [DEBUG][       Thread-607569][   transport.py][1871] : userauth is OK
2025-07-01 14:29:08,707 [DEBUG][       Thread-607569][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:29:08,707 [DEBUG][       Thread-607569][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:29:08,707 [DEBUG][       Thread-607569][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:29:08,707 [DEBUG][       Thread-607569][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:29:08,723 [ INFO][       Thread-607569][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:29:08,723 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:29:08,723 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:29:09,753 [DEBUG][       Thread-607569][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:29:09,753 [DEBUG][       Thread-607569][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:29:09,803 [DEBUG][       Thread-607569][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:29:09,804 [DEBUG][       Thread-607569][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:29:09,813 [DEBUG][       Thread-607569][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:29:09,821 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:29:09,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-07-01 14:29:09,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-07-01 14:29:09,840 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:29:09,840 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:29:09,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:29:09,849 [DEBUG][       Thread-607569][   transport.py][1871] : EOF in transport thread
2025-07-01 14:29:13,734 [DEBUG][Thread-607571 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:29:19,851 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:29:19,851 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:29:19,852 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:29:19,855 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:29:20,351 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 28, 48), 10.97, 47.52, 0.0, 36.49, 13.64, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:29:20,352 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:28:48
2025-07-01 14:29:20,438 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:29:20,443 [DEBUG][       Thread-607572][   transport.py][1871] : starting thread (client mode): 0x81a7fa0
2025-07-01 14:29:20,443 [DEBUG][       Thread-607572][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:29:20,464 [DEBUG][       Thread-607572][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:29:20,464 [ INFO][       Thread-607572][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:29:20,467 [DEBUG][       Thread-607572][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:29:20,467 [DEBUG][       Thread-607572][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:29:20,467 [DEBUG][       Thread-607572][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:29:20,467 [DEBUG][       Thread-607572][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:29:20,467 [DEBUG][       Thread-607572][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:29:20,467 [DEBUG][       Thread-607572][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:29:20,467 [DEBUG][       Thread-607572][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:29:20,467 [DEBUG][       Thread-607572][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:29:20,468 [DEBUG][       Thread-607572][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:29:20,468 [DEBUG][       Thread-607572][   transport.py][1871] : client lang: <none>
2025-07-01 14:29:20,468 [DEBUG][       Thread-607572][   transport.py][1871] : server lang: <none>
2025-07-01 14:29:20,468 [DEBUG][       Thread-607572][   transport.py][1871] : kex follows: False
2025-07-01 14:29:20,468 [DEBUG][       Thread-607572][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:29:20,468 [DEBUG][       Thread-607572][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:29:20,468 [DEBUG][       Thread-607572][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:29:20,468 [DEBUG][       Thread-607572][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:29:20,468 [DEBUG][       Thread-607572][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:29:20,468 [DEBUG][       Thread-607572][   transport.py][1871] : Compression: none
2025-07-01 14:29:20,468 [DEBUG][       Thread-607572][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:29:20,483 [DEBUG][       Thread-607572][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:29:20,483 [DEBUG][       Thread-607572][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:29:20,484 [DEBUG][       Thread-607572][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:29:20,484 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:29:20,484 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:29:20,485 [DEBUG][       Thread-607572][   transport.py][1871] : userauth is OK
2025-07-01 14:29:20,499 [ INFO][       Thread-607572][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:29:20,499 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:29:21,113 [DEBUG][       Thread-607572][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:29:21,114 [DEBUG][       Thread-607572][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:29:21,157 [DEBUG][       Thread-607572][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:29:21,157 [DEBUG][       Thread-607572][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:29:21,159 [DEBUG][       Thread-607572][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:29:21,172 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:29:21,172 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:29:21,173 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:29:21,174 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:29:21,177 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:29:21,178 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:29:21,178 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:29:21,178 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:29:21,178 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.519733 -999.00  +13.50  33.26     52   +3.80 1 2 2 1 1   887    0 8.99 -25.97 ----- 33.0 33.3 22.4 55.0 15.7 -20.5 15.1 -21.5 15.2 -20.2 15.7 -20.2
2025-07-01 14:29:21,178 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:29:21,178 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:29:21,178 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.519733
2025-07-01 14:29:21,178 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:29:21,178 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:29:21,178 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:29:21,178 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:29:21,178 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:29:21,178 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:28:48', tmtdew=10.97, humidity=47.52, cloud=0.0, wind=36.49, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:28:24.931', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:29:21,179 [DEBUG][       Thread-607572][   transport.py][1871] : EOF in transport thread
2025-07-01 14:29:21,253 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:29:21,264 [DEBUG][       Thread-607575][   transport.py][1871] : starting thread (client mode): 0x81e77c0
2025-07-01 14:29:21,264 [DEBUG][       Thread-607575][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:29:21,278 [DEBUG][       Thread-607575][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:29:21,278 [ INFO][       Thread-607575][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:29:21,286 [DEBUG][       Thread-607575][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:29:21,286 [DEBUG][       Thread-607575][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:29:21,286 [DEBUG][       Thread-607575][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:29:21,286 [DEBUG][       Thread-607575][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:29:21,286 [DEBUG][       Thread-607575][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:29:21,286 [DEBUG][       Thread-607575][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:29:21,286 [DEBUG][       Thread-607575][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:29:21,286 [DEBUG][       Thread-607575][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:29:21,286 [DEBUG][       Thread-607575][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:29:21,286 [DEBUG][       Thread-607575][   transport.py][1871] : client lang: <none>
2025-07-01 14:29:21,286 [DEBUG][       Thread-607575][   transport.py][1871] : server lang: <none>
2025-07-01 14:29:21,286 [DEBUG][       Thread-607575][   transport.py][1871] : kex follows: False
2025-07-01 14:29:21,286 [DEBUG][       Thread-607575][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:29:21,286 [DEBUG][       Thread-607575][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:29:21,286 [DEBUG][       Thread-607575][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:29:21,286 [DEBUG][       Thread-607575][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:29:21,286 [DEBUG][       Thread-607575][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:29:21,286 [DEBUG][       Thread-607575][   transport.py][1871] : Compression: none
2025-07-01 14:29:21,286 [DEBUG][       Thread-607575][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:29:21,343 [DEBUG][       Thread-607575][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:29:21,343 [DEBUG][       Thread-607575][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:29:21,343 [DEBUG][       Thread-607575][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:29:21,343 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:29:21,343 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:29:21,400 [DEBUG][       Thread-607575][   transport.py][1871] : userauth is OK
2025-07-01 14:29:21,400 [DEBUG][       Thread-607575][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:29:21,400 [DEBUG][       Thread-607575][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:29:21,400 [DEBUG][       Thread-607575][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:29:21,400 [DEBUG][       Thread-607575][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:29:21,419 [ INFO][       Thread-607575][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:29:21,419 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:29:21,419 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:29:22,472 [DEBUG][       Thread-607575][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:29:22,472 [DEBUG][       Thread-607575][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:29:22,525 [DEBUG][       Thread-607575][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:29:22,525 [DEBUG][       Thread-607575][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:29:22,537 [DEBUG][       Thread-607575][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:29:22,546 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:29:22,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-07-01 14:29:22,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') -> 00000000
2025-07-01 14:29:22,562 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:29:22,562 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:29:22,562 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:29:22,569 [DEBUG][       Thread-607575][   transport.py][1871] : EOF in transport thread
2025-07-01 14:29:22,756 [DEBUG][Thread-607577 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:29:31,779 [DEBUG][Thread-607578 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:29:32,572 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:29:32,572 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:29:32,572 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:29:32,573 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:29:32,970 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:29:32,971 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:29:33,097 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 29, 20), 10.98, 47.51, 0.0, 40.46, 13.64, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:29:33,097 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:29:20
2025-07-01 14:29:33,188 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:29:33,192 [DEBUG][       Thread-607579][   transport.py][1871] : starting thread (client mode): 0x81d8df0
2025-07-01 14:29:33,193 [DEBUG][       Thread-607579][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:29:33,213 [DEBUG][       Thread-607579][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:29:33,213 [ INFO][       Thread-607579][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:29:33,216 [DEBUG][       Thread-607579][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:29:33,216 [DEBUG][       Thread-607579][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:29:33,216 [DEBUG][       Thread-607579][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:29:33,216 [DEBUG][       Thread-607579][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:29:33,216 [DEBUG][       Thread-607579][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:29:33,216 [DEBUG][       Thread-607579][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:29:33,216 [DEBUG][       Thread-607579][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:29:33,216 [DEBUG][       Thread-607579][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:29:33,216 [DEBUG][       Thread-607579][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:29:33,216 [DEBUG][       Thread-607579][   transport.py][1871] : client lang: <none>
2025-07-01 14:29:33,216 [DEBUG][       Thread-607579][   transport.py][1871] : server lang: <none>
2025-07-01 14:29:33,216 [DEBUG][       Thread-607579][   transport.py][1871] : kex follows: False
2025-07-01 14:29:33,216 [DEBUG][       Thread-607579][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:29:33,216 [DEBUG][       Thread-607579][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:29:33,216 [DEBUG][       Thread-607579][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:29:33,216 [DEBUG][       Thread-607579][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:29:33,216 [DEBUG][       Thread-607579][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:29:33,216 [DEBUG][       Thread-607579][   transport.py][1871] : Compression: none
2025-07-01 14:29:33,216 [DEBUG][       Thread-607579][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:29:33,229 [DEBUG][       Thread-607579][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:29:33,230 [DEBUG][       Thread-607579][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:29:33,230 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:29:33,230 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:29:33,230 [DEBUG][       Thread-607579][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:29:33,230 [DEBUG][       Thread-607579][   transport.py][1871] : userauth is OK
2025-07-01 14:29:33,254 [ INFO][       Thread-607579][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:29:33,255 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:29:33,844 [DEBUG][       Thread-607579][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:29:33,844 [DEBUG][       Thread-607579][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:29:33,888 [DEBUG][       Thread-607579][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:29:33,889 [DEBUG][       Thread-607579][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:29:33,891 [DEBUG][       Thread-607579][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:29:33,904 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:29:33,904 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:29:33,906 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:29:33,907 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:29:33,910 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:29:33,911 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:29:33,911 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:29:33,911 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:29:33,911 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.520427 -999.00  +13.50  38.19     52   +3.90 1 2 2 1 1   887    0 9.12 -24.32 ----- 37.8 38.2 28.2 53.9 15.6 -21.0 15.1 -22.1 15.2 -19.8 15.7 -19.3
2025-07-01 14:29:33,911 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:29:33,911 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:29:33,911 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.520427
2025-07-01 14:29:33,912 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:29:33,912 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:29:33,912 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:29:33,912 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:29:33,912 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:29:33,912 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:29:20', tmtdew=10.98, humidity=47.51, cloud=0.0, wind=40.46, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:29:24.893', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:29:33,913 [DEBUG][       Thread-607579][   transport.py][1871] : EOF in transport thread
2025-07-01 14:29:33,987 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:29:33,998 [DEBUG][       Thread-607582][   transport.py][1871] : starting thread (client mode): 0x75a8040
2025-07-01 14:29:33,998 [DEBUG][       Thread-607582][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:29:34,014 [DEBUG][       Thread-607582][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:29:34,014 [ INFO][       Thread-607582][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:29:34,021 [DEBUG][       Thread-607582][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:29:34,021 [DEBUG][       Thread-607582][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:29:34,021 [DEBUG][       Thread-607582][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:29:34,021 [DEBUG][       Thread-607582][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:29:34,021 [DEBUG][       Thread-607582][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:29:34,021 [DEBUG][       Thread-607582][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:29:34,021 [DEBUG][       Thread-607582][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:29:34,021 [DEBUG][       Thread-607582][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:29:34,021 [DEBUG][       Thread-607582][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:29:34,021 [DEBUG][       Thread-607582][   transport.py][1871] : client lang: <none>
2025-07-01 14:29:34,021 [DEBUG][       Thread-607582][   transport.py][1871] : server lang: <none>
2025-07-01 14:29:34,021 [DEBUG][       Thread-607582][   transport.py][1871] : kex follows: False
2025-07-01 14:29:34,021 [DEBUG][       Thread-607582][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:29:34,021 [DEBUG][       Thread-607582][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:29:34,021 [DEBUG][       Thread-607582][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:29:34,021 [DEBUG][       Thread-607582][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:29:34,021 [DEBUG][       Thread-607582][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:29:34,021 [DEBUG][       Thread-607582][   transport.py][1871] : Compression: none
2025-07-01 14:29:34,021 [DEBUG][       Thread-607582][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:29:34,084 [DEBUG][       Thread-607582][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:29:34,084 [DEBUG][       Thread-607582][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:29:34,084 [DEBUG][       Thread-607582][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:29:34,084 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:29:34,084 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:29:34,141 [DEBUG][       Thread-607582][   transport.py][1871] : userauth is OK
2025-07-01 14:29:34,141 [DEBUG][       Thread-607582][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:29:34,141 [DEBUG][       Thread-607582][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:29:34,141 [DEBUG][       Thread-607582][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:29:34,141 [DEBUG][       Thread-607582][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:29:34,155 [ INFO][       Thread-607582][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:29:34,155 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:29:34,155 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:29:34,987 [DEBUG][Thread-607584 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:29:35,223 [DEBUG][       Thread-607582][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:29:35,223 [DEBUG][       Thread-607582][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:29:35,271 [DEBUG][       Thread-607582][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:29:35,271 [DEBUG][       Thread-607582][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:29:35,280 [DEBUG][       Thread-607582][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:29:35,288 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:29:35,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-07-01 14:29:35,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') -> 00000000
2025-07-01 14:29:35,303 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:29:35,304 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:29:35,304 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:29:35,312 [DEBUG][       Thread-607582][   transport.py][1871] : EOF in transport thread
2025-07-01 14:29:40,800 [DEBUG][Thread-607585 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:29:45,312 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:29:45,312 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:29:45,312 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:29:45,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-07-01 14:29:45,814 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 29, 20), 10.98, 47.51, 0.0, 40.46, 13.64, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:29:45,814 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:29:20
2025-07-01 14:29:45,900 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:29:45,904 [DEBUG][       Thread-607586][   transport.py][1871] : starting thread (client mode): 0x81a5b40
2025-07-01 14:29:45,904 [DEBUG][       Thread-607586][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:29:45,917 [DEBUG][       Thread-607586][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:29:45,917 [ INFO][       Thread-607586][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:29:45,918 [DEBUG][       Thread-607586][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:29:45,918 [DEBUG][       Thread-607586][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:29:45,918 [DEBUG][       Thread-607586][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:29:45,918 [DEBUG][       Thread-607586][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:29:45,919 [DEBUG][       Thread-607586][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:29:45,919 [DEBUG][       Thread-607586][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:29:45,919 [DEBUG][       Thread-607586][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:29:45,919 [DEBUG][       Thread-607586][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:29:45,919 [DEBUG][       Thread-607586][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:29:45,919 [DEBUG][       Thread-607586][   transport.py][1871] : client lang: <none>
2025-07-01 14:29:45,919 [DEBUG][       Thread-607586][   transport.py][1871] : server lang: <none>
2025-07-01 14:29:45,919 [DEBUG][       Thread-607586][   transport.py][1871] : kex follows: False
2025-07-01 14:29:45,919 [DEBUG][       Thread-607586][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:29:45,919 [DEBUG][       Thread-607586][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:29:45,919 [DEBUG][       Thread-607586][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:29:45,919 [DEBUG][       Thread-607586][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:29:45,919 [DEBUG][       Thread-607586][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:29:45,919 [DEBUG][       Thread-607586][   transport.py][1871] : Compression: none
2025-07-01 14:29:45,919 [DEBUG][       Thread-607586][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:29:45,930 [DEBUG][       Thread-607586][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:29:45,930 [DEBUG][       Thread-607586][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:29:45,931 [DEBUG][       Thread-607586][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:29:45,931 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:29:45,931 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:29:45,932 [DEBUG][       Thread-607586][   transport.py][1871] : userauth is OK
2025-07-01 14:29:45,944 [ INFO][       Thread-607586][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:29:45,945 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:29:46,655 [DEBUG][       Thread-607586][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:29:46,655 [DEBUG][       Thread-607586][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:29:46,697 [DEBUG][       Thread-607586][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:29:46,697 [DEBUG][       Thread-607586][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:29:46,700 [DEBUG][       Thread-607586][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:29:46,712 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:29:46,712 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:29:46,714 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:29:46,716 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:29:46,726 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:29:46,728 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:29:46,729 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:29:46,729 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:29:46,729 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.520427 -999.00  +13.50  38.19     52   +3.90 1 2 2 1 1   887    0 9.12 -24.32 ----- 37.8 38.2 28.2 53.9 15.6 -21.0 15.1 -22.1 15.2 -19.8 15.7 -19.3
2025-07-01 14:29:46,729 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:29:46,729 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:29:46,730 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.520427
2025-07-01 14:29:46,730 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:29:46,730 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:29:46,731 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:29:46,731 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:29:46,731 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:29:46,731 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:29:20', tmtdew=10.98, humidity=47.51, cloud=0.0, wind=40.46, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:29:24.893', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:29:46,731 [DEBUG][       Thread-607586][   transport.py][1871] : EOF in transport thread
2025-07-01 14:29:46,817 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:29:46,826 [DEBUG][       Thread-607589][   transport.py][1871] : starting thread (client mode): 0x8107850
2025-07-01 14:29:46,826 [DEBUG][       Thread-607589][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:29:46,842 [DEBUG][       Thread-607589][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:29:46,842 [ INFO][       Thread-607589][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:29:46,849 [DEBUG][       Thread-607589][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:29:46,849 [DEBUG][       Thread-607589][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:29:46,849 [DEBUG][       Thread-607589][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:29:46,849 [DEBUG][       Thread-607589][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:29:46,849 [DEBUG][       Thread-607589][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:29:46,849 [DEBUG][       Thread-607589][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:29:46,849 [DEBUG][       Thread-607589][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:29:46,849 [DEBUG][       Thread-607589][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:29:46,849 [DEBUG][       Thread-607589][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:29:46,849 [DEBUG][       Thread-607589][   transport.py][1871] : client lang: <none>
2025-07-01 14:29:46,849 [DEBUG][       Thread-607589][   transport.py][1871] : server lang: <none>
2025-07-01 14:29:46,849 [DEBUG][       Thread-607589][   transport.py][1871] : kex follows: False
2025-07-01 14:29:46,849 [DEBUG][       Thread-607589][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:29:46,849 [DEBUG][       Thread-607589][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:29:46,849 [DEBUG][       Thread-607589][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:29:46,849 [DEBUG][       Thread-607589][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:29:46,849 [DEBUG][       Thread-607589][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:29:46,849 [DEBUG][       Thread-607589][   transport.py][1871] : Compression: none
2025-07-01 14:29:46,849 [DEBUG][       Thread-607589][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:29:46,910 [DEBUG][       Thread-607589][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:29:46,911 [DEBUG][       Thread-607589][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:29:46,911 [DEBUG][       Thread-607589][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:29:46,912 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:29:46,912 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:29:46,971 [DEBUG][       Thread-607589][   transport.py][1871] : userauth is OK
2025-07-01 14:29:46,972 [DEBUG][       Thread-607589][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:29:46,972 [DEBUG][       Thread-607589][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:29:46,972 [DEBUG][       Thread-607589][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:29:46,972 [DEBUG][       Thread-607589][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:29:46,991 [ INFO][       Thread-607589][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:29:46,991 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:29:46,992 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:29:48,047 [DEBUG][       Thread-607589][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:29:48,047 [DEBUG][       Thread-607589][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:29:48,100 [DEBUG][       Thread-607589][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:29:48,100 [DEBUG][       Thread-607589][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:29:48,110 [DEBUG][       Thread-607589][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:29:48,119 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:29: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')
2025-07-01 14:29:48,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-07-01 14:29:48,137 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:29:48,138 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:29:48,138 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:29:48,146 [DEBUG][       Thread-607589][   transport.py][1871] : EOF in transport thread
2025-07-01 14:29:49,845 [DEBUG][Thread-607591 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:29:58,140 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:29:58,140 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:29:58,140 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:29:58,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-07-01 14:29:58,634 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 29, 52), 10.99, 47.45, 0.0, 39.65, 13.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:29:58,634 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:29:52
2025-07-01 14:29:58,720 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:29:58,726 [DEBUG][       Thread-607592][   transport.py][1871] : starting thread (client mode): 0x81a74f0
2025-07-01 14:29:58,726 [DEBUG][       Thread-607592][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:29:58,747 [DEBUG][       Thread-607592][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:29:58,747 [ INFO][       Thread-607592][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:29:58,751 [DEBUG][       Thread-607592][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:29:58,751 [DEBUG][       Thread-607592][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:29:58,751 [DEBUG][       Thread-607592][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:29:58,751 [DEBUG][       Thread-607592][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:29:58,751 [DEBUG][       Thread-607592][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:29:58,751 [DEBUG][       Thread-607592][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:29:58,751 [DEBUG][       Thread-607592][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:29:58,751 [DEBUG][       Thread-607592][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:29:58,751 [DEBUG][       Thread-607592][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:29:58,751 [DEBUG][       Thread-607592][   transport.py][1871] : client lang: <none>
2025-07-01 14:29:58,751 [DEBUG][       Thread-607592][   transport.py][1871] : server lang: <none>
2025-07-01 14:29:58,751 [DEBUG][       Thread-607592][   transport.py][1871] : kex follows: False
2025-07-01 14:29:58,751 [DEBUG][       Thread-607592][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:29:58,751 [DEBUG][       Thread-607592][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:29:58,751 [DEBUG][       Thread-607592][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:29:58,751 [DEBUG][       Thread-607592][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:29:58,751 [DEBUG][       Thread-607592][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:29:58,751 [DEBUG][       Thread-607592][   transport.py][1871] : Compression: none
2025-07-01 14:29:58,751 [DEBUG][       Thread-607592][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:29:58,770 [DEBUG][       Thread-607592][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:29:58,770 [DEBUG][       Thread-607592][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:29:58,771 [DEBUG][       Thread-607592][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:29:58,771 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:29:58,771 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:29:58,772 [DEBUG][       Thread-607592][   transport.py][1871] : userauth is OK
2025-07-01 14:29:58,785 [ INFO][       Thread-607592][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:29:58,786 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:29:58,866 [DEBUG][Thread-607594 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:29:59,534 [DEBUG][       Thread-607592][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:29:59,535 [DEBUG][       Thread-607592][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:29:59,577 [DEBUG][       Thread-607592][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:29:59,577 [DEBUG][       Thread-607592][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:29:59,581 [DEBUG][       Thread-607592][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:29:59,589 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:29:59,589 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:29:59,591 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:29:59,593 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:29:59,598 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:29:59,600 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:29:59,600 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:29:59,601 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:29:59,601 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.520427 -999.00  +13.50  38.19     52   +3.90 1 2 2 1 1   887    0 9.12 -24.32 ----- 37.8 38.2 28.2 53.9 15.6 -21.0 15.1 -22.1 15.2 -19.8 15.7 -19.3
2025-07-01 14:29:59,601 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:29:59,601 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:29:59,601 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.520427
2025-07-01 14:29:59,601 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:29:59,602 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:29:59,602 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:29:59,602 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:29:59,602 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:29:59,602 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:29:52', tmtdew=10.99, humidity=47.45, cloud=0.0, wind=39.65, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:29:24.893', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:29:59,603 [DEBUG][       Thread-607592][   transport.py][1871] : EOF in transport thread
2025-07-01 14:29:59,686 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:29:59,697 [DEBUG][       Thread-607596][   transport.py][1871] : starting thread (client mode): 0x82b24a0
2025-07-01 14:29:59,697 [DEBUG][       Thread-607596][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:29:59,713 [DEBUG][       Thread-607596][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:29:59,713 [ INFO][       Thread-607596][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:29:59,720 [DEBUG][       Thread-607596][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:29:59,720 [DEBUG][       Thread-607596][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:29:59,720 [DEBUG][       Thread-607596][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:29:59,721 [DEBUG][       Thread-607596][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:29:59,721 [DEBUG][       Thread-607596][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:29:59,721 [DEBUG][       Thread-607596][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:29:59,721 [DEBUG][       Thread-607596][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:29:59,721 [DEBUG][       Thread-607596][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:29:59,721 [DEBUG][       Thread-607596][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:29:59,721 [DEBUG][       Thread-607596][   transport.py][1871] : client lang: <none>
2025-07-01 14:29:59,721 [DEBUG][       Thread-607596][   transport.py][1871] : server lang: <none>
2025-07-01 14:29:59,721 [DEBUG][       Thread-607596][   transport.py][1871] : kex follows: False
2025-07-01 14:29:59,721 [DEBUG][       Thread-607596][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:29:59,721 [DEBUG][       Thread-607596][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:29:59,721 [DEBUG][       Thread-607596][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:29:59,721 [DEBUG][       Thread-607596][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:29:59,721 [DEBUG][       Thread-607596][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:29:59,721 [DEBUG][       Thread-607596][   transport.py][1871] : Compression: none
2025-07-01 14:29:59,721 [DEBUG][       Thread-607596][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:29:59,780 [DEBUG][       Thread-607596][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:29:59,780 [DEBUG][       Thread-607596][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:29:59,781 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:29:59,781 [DEBUG][       Thread-607596][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:29:59,782 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:29:59,839 [DEBUG][       Thread-607596][   transport.py][1871] : userauth is OK
2025-07-01 14:29:59,840 [DEBUG][       Thread-607596][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:29:59,840 [DEBUG][       Thread-607596][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:29:59,840 [DEBUG][       Thread-607596][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:29:59,840 [DEBUG][       Thread-607596][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:29:59,859 [ INFO][       Thread-607596][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:29:59,860 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:29:59,860 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:30:00,897 [DEBUG][       Thread-607596][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:30:00,897 [DEBUG][       Thread-607596][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:30:00,948 [DEBUG][       Thread-607596][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:30:00,948 [DEBUG][       Thread-607596][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:30:00,957 [DEBUG][       Thread-607596][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:30:00,966 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:30:00,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-07-01 14:30:00,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-07-01 14:30:00,985 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:30:00,985 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:30:00,986 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:30:00,994 [DEBUG][       Thread-607596][   transport.py][1871] : EOF in transport thread
2025-07-01 14:30:07,889 [DEBUG][Thread-607598 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:30:10,996 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:30:10,996 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:30:10,996 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:30:10,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-07-01 14:30:11,514 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 29, 52), 10.99, 47.45, 0.0, 39.65, 13.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:30:11,514 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:29:52
2025-07-01 14:30:11,602 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:30:11,606 [DEBUG][       Thread-607599][   transport.py][1871] : starting thread (client mode): 0x81a4880
2025-07-01 14:30:11,606 [DEBUG][       Thread-607599][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:30:11,622 [DEBUG][       Thread-607599][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:30:11,622 [ INFO][       Thread-607599][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:30:11,625 [DEBUG][       Thread-607599][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:30:11,625 [DEBUG][       Thread-607599][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:30:11,625 [DEBUG][       Thread-607599][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:30:11,625 [DEBUG][       Thread-607599][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:30:11,625 [DEBUG][       Thread-607599][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:30:11,625 [DEBUG][       Thread-607599][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:30:11,625 [DEBUG][       Thread-607599][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:30:11,625 [DEBUG][       Thread-607599][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:30:11,625 [DEBUG][       Thread-607599][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:30:11,625 [DEBUG][       Thread-607599][   transport.py][1871] : client lang: <none>
2025-07-01 14:30:11,625 [DEBUG][       Thread-607599][   transport.py][1871] : server lang: <none>
2025-07-01 14:30:11,625 [DEBUG][       Thread-607599][   transport.py][1871] : kex follows: False
2025-07-01 14:30:11,625 [DEBUG][       Thread-607599][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:30:11,625 [DEBUG][       Thread-607599][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:30:11,625 [DEBUG][       Thread-607599][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:30:11,625 [DEBUG][       Thread-607599][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:30:11,625 [DEBUG][       Thread-607599][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:30:11,625 [DEBUG][       Thread-607599][   transport.py][1871] : Compression: none
2025-07-01 14:30:11,625 [DEBUG][       Thread-607599][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:30:11,640 [DEBUG][       Thread-607599][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:30:11,641 [DEBUG][       Thread-607599][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:30:11,641 [DEBUG][       Thread-607599][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:30:11,641 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:30:11,641 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:30:11,641 [DEBUG][       Thread-607599][   transport.py][1871] : userauth is OK
2025-07-01 14:30:11,665 [ INFO][       Thread-607599][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:30:11,665 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:30:12,280 [DEBUG][       Thread-607599][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:30:12,280 [DEBUG][       Thread-607599][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:30:12,320 [DEBUG][       Thread-607599][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:30:12,320 [DEBUG][       Thread-607599][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:30:12,323 [DEBUG][       Thread-607599][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:30:12,331 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:30:12,331 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:30:12,332 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:30:12,332 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:30:12,335 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:30:12,335 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:30:12,335 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:30:12,335 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:30:12,335 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.520774 -999.00  +13.40  40.62     52   +3.80 1 2 2 1 1   887    0 9.10 -24.30 ----- 42.7 40.6 32.6 47.5 15.6 -20.7 15.1 -21.5 15.1 -20.6 15.7 -19.2
2025-07-01 14:30:12,335 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:30:12,335 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:30:12,335 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.520774
2025-07-01 14:30:12,335 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:30:12,336 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:30:12,336 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:30:12,336 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:30:12,336 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:30:12,336 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:29:52', tmtdew=10.99, humidity=47.45, cloud=0.0, wind=39.65, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:29:54.874', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:30:12,336 [DEBUG][       Thread-607599][   transport.py][1871] : EOF in transport thread
2025-07-01 14:30:12,410 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:30:12,419 [DEBUG][       Thread-607602][   transport.py][1871] : starting thread (client mode): 0x818c5e0
2025-07-01 14:30:12,419 [DEBUG][       Thread-607602][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:30:12,435 [DEBUG][       Thread-607602][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:30:12,435 [ INFO][       Thread-607602][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:30:12,449 [DEBUG][       Thread-607602][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:30:12,449 [DEBUG][       Thread-607602][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:30:12,449 [DEBUG][       Thread-607602][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:30:12,449 [DEBUG][       Thread-607602][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:30:12,449 [DEBUG][       Thread-607602][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:30:12,449 [DEBUG][       Thread-607602][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:30:12,449 [DEBUG][       Thread-607602][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:30:12,449 [DEBUG][       Thread-607602][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:30:12,450 [DEBUG][       Thread-607602][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:30:12,450 [DEBUG][       Thread-607602][   transport.py][1871] : client lang: <none>
2025-07-01 14:30:12,450 [DEBUG][       Thread-607602][   transport.py][1871] : server lang: <none>
2025-07-01 14:30:12,450 [DEBUG][       Thread-607602][   transport.py][1871] : kex follows: False
2025-07-01 14:30:12,450 [DEBUG][       Thread-607602][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:30:12,450 [DEBUG][       Thread-607602][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:30:12,450 [DEBUG][       Thread-607602][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:30:12,450 [DEBUG][       Thread-607602][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:30:12,450 [DEBUG][       Thread-607602][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:30:12,450 [DEBUG][       Thread-607602][   transport.py][1871] : Compression: none
2025-07-01 14:30:12,450 [DEBUG][       Thread-607602][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:30:12,506 [DEBUG][       Thread-607602][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:30:12,506 [DEBUG][       Thread-607602][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:30:12,506 [DEBUG][       Thread-607602][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:30:12,507 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:30:12,507 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:30:12,563 [DEBUG][       Thread-607602][   transport.py][1871] : userauth is OK
2025-07-01 14:30:12,564 [DEBUG][       Thread-607602][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:30:12,564 [DEBUG][       Thread-607602][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:30:12,564 [DEBUG][       Thread-607602][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:30:12,564 [DEBUG][       Thread-607602][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:30:12,578 [ INFO][       Thread-607602][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:30:12,578 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:30:12,578 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:30:13,561 [DEBUG][       Thread-607602][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:30:13,561 [DEBUG][       Thread-607602][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:30:13,615 [DEBUG][       Thread-607602][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:30:13,615 [DEBUG][       Thread-607602][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:30:13,624 [DEBUG][       Thread-607602][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:30:13,632 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:30:13,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-07-01 14:30:13,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-07-01 14:30:13,647 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:30:13,647 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:30:13,647 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:30:13,655 [DEBUG][       Thread-607602][   transport.py][1871] : EOF in transport thread
2025-07-01 14:30:16,928 [DEBUG][Thread-607604 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:30:23,658 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:30:23,658 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:30:23,658 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:30:23,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-07-01 14:30:24,149 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 29, 52), 10.99, 47.45, 0.0, 39.65, 13.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:30:24,149 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:29:52
2025-07-01 14:30:24,236 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:30:24,242 [DEBUG][       Thread-607605][   transport.py][1871] : starting thread (client mode): 0x81a5b40
2025-07-01 14:30:24,242 [DEBUG][       Thread-607605][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:30:24,262 [DEBUG][       Thread-607605][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:30:24,262 [ INFO][       Thread-607605][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:30:24,266 [DEBUG][       Thread-607605][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:30:24,266 [DEBUG][       Thread-607605][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:30:24,266 [DEBUG][       Thread-607605][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:30:24,266 [DEBUG][       Thread-607605][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:30:24,266 [DEBUG][       Thread-607605][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:30:24,266 [DEBUG][       Thread-607605][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:30:24,266 [DEBUG][       Thread-607605][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:30:24,266 [DEBUG][       Thread-607605][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:30:24,266 [DEBUG][       Thread-607605][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:30:24,266 [DEBUG][       Thread-607605][   transport.py][1871] : client lang: <none>
2025-07-01 14:30:24,266 [DEBUG][       Thread-607605][   transport.py][1871] : server lang: <none>
2025-07-01 14:30:24,266 [DEBUG][       Thread-607605][   transport.py][1871] : kex follows: False
2025-07-01 14:30:24,266 [DEBUG][       Thread-607605][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:30:24,266 [DEBUG][       Thread-607605][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:30:24,266 [DEBUG][       Thread-607605][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:30:24,266 [DEBUG][       Thread-607605][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:30:24,266 [DEBUG][       Thread-607605][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:30:24,266 [DEBUG][       Thread-607605][   transport.py][1871] : Compression: none
2025-07-01 14:30:24,267 [DEBUG][       Thread-607605][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:30:24,282 [DEBUG][       Thread-607605][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:30:24,283 [DEBUG][       Thread-607605][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:30:24,283 [DEBUG][       Thread-607605][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:30:24,284 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:30:24,284 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:30:24,285 [DEBUG][       Thread-607605][   transport.py][1871] : userauth is OK
2025-07-01 14:30:24,298 [ INFO][       Thread-607605][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:30:24,299 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:30:25,111 [DEBUG][       Thread-607605][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:30:25,111 [DEBUG][       Thread-607605][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:30:25,152 [DEBUG][       Thread-607605][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:30:25,152 [DEBUG][       Thread-607605][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:30:25,155 [DEBUG][       Thread-607605][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:30:25,162 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:30:25,162 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:30:25,163 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:30:25,164 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:30:25,167 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:30:25,168 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:30:25,168 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:30:25,168 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:30:25,168 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.520774 -999.00  +13.40  40.62     52   +3.80 1 2 2 1 1   887    0 9.10 -24.30 ----- 42.7 40.6 32.6 47.5 15.6 -20.7 15.1 -21.5 15.1 -20.6 15.7 -19.2
2025-07-01 14:30:25,168 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:30:25,168 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:30:25,168 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.520774
2025-07-01 14:30:25,168 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:30:25,168 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:30:25,168 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:30:25,168 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:30:25,168 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:30:25,168 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:29:52', tmtdew=10.99, humidity=47.45, cloud=0.0, wind=39.65, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:29:54.874', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:30:25,169 [DEBUG][       Thread-607605][   transport.py][1871] : EOF in transport thread
2025-07-01 14:30:25,243 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:30:25,256 [DEBUG][       Thread-607608][   transport.py][1871] : starting thread (client mode): 0x75ab4c0
2025-07-01 14:30:25,256 [DEBUG][       Thread-607608][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:30:25,271 [DEBUG][       Thread-607608][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:30:25,271 [ INFO][       Thread-607608][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:30:25,278 [DEBUG][       Thread-607608][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:30:25,278 [DEBUG][       Thread-607608][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:30:25,278 [DEBUG][       Thread-607608][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:30:25,278 [DEBUG][       Thread-607608][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:30:25,278 [DEBUG][       Thread-607608][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:30:25,278 [DEBUG][       Thread-607608][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:30:25,278 [DEBUG][       Thread-607608][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:30:25,278 [DEBUG][       Thread-607608][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:30:25,278 [DEBUG][       Thread-607608][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:30:25,279 [DEBUG][       Thread-607608][   transport.py][1871] : client lang: <none>
2025-07-01 14:30:25,279 [DEBUG][       Thread-607608][   transport.py][1871] : server lang: <none>
2025-07-01 14:30:25,279 [DEBUG][       Thread-607608][   transport.py][1871] : kex follows: False
2025-07-01 14:30:25,279 [DEBUG][       Thread-607608][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:30:25,279 [DEBUG][       Thread-607608][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:30:25,279 [DEBUG][       Thread-607608][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:30:25,279 [DEBUG][       Thread-607608][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:30:25,279 [DEBUG][       Thread-607608][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:30:25,279 [DEBUG][       Thread-607608][   transport.py][1871] : Compression: none
2025-07-01 14:30:25,279 [DEBUG][       Thread-607608][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:30:25,335 [DEBUG][       Thread-607608][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:30:25,335 [DEBUG][       Thread-607608][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:30:25,335 [DEBUG][       Thread-607608][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:30:25,335 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:30:25,335 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:30:25,392 [DEBUG][       Thread-607608][   transport.py][1871] : userauth is OK
2025-07-01 14:30:25,392 [DEBUG][       Thread-607608][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:30:25,392 [DEBUG][       Thread-607608][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:30:25,392 [DEBUG][       Thread-607608][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:30:25,392 [DEBUG][       Thread-607608][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:30:25,406 [ INFO][       Thread-607608][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:30:25,407 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:30:25,407 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:30:25,948 [DEBUG][Thread-607610 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:30:26,431 [DEBUG][       Thread-607608][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:30:26,431 [DEBUG][       Thread-607608][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:30:26,480 [DEBUG][       Thread-607608][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:30:26,480 [DEBUG][       Thread-607608][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:30:26,490 [DEBUG][       Thread-607608][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:30:26,499 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:30:26,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-07-01 14:30:26,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-07-01 14:30:26,517 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:30:26,517 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:30:26,517 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:30:26,525 [DEBUG][       Thread-607608][   transport.py][1871] : EOF in transport thread
2025-07-01 14:30:33,109 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:30:33,110 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:30:34,970 [DEBUG][Thread-607611 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:30:35,046 [DEBUG][Thread-607612 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:30:36,528 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:30:36,528 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:30:36,528 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:30:36,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-07-01 14:30:37,017 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 30, 24), 10.95, 47.47, 0.0, 26.09, 13.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:30:37,017 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:30:24
2025-07-01 14:30:37,104 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:30:37,111 [DEBUG][       Thread-607613][   transport.py][1871] : starting thread (client mode): 0x81736d0
2025-07-01 14:30:37,111 [DEBUG][       Thread-607613][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:30:37,127 [DEBUG][       Thread-607613][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:30:37,127 [ INFO][       Thread-607613][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:30:37,128 [DEBUG][       Thread-607613][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:30:37,128 [DEBUG][       Thread-607613][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:30:37,128 [DEBUG][       Thread-607613][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:30:37,128 [DEBUG][       Thread-607613][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:30:37,128 [DEBUG][       Thread-607613][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:30:37,128 [DEBUG][       Thread-607613][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:30:37,128 [DEBUG][       Thread-607613][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:30:37,128 [DEBUG][       Thread-607613][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:30:37,128 [DEBUG][       Thread-607613][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:30:37,128 [DEBUG][       Thread-607613][   transport.py][1871] : client lang: <none>
2025-07-01 14:30:37,128 [DEBUG][       Thread-607613][   transport.py][1871] : server lang: <none>
2025-07-01 14:30:37,129 [DEBUG][       Thread-607613][   transport.py][1871] : kex follows: False
2025-07-01 14:30:37,129 [DEBUG][       Thread-607613][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:30:37,129 [DEBUG][       Thread-607613][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:30:37,129 [DEBUG][       Thread-607613][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:30:37,129 [DEBUG][       Thread-607613][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:30:37,129 [DEBUG][       Thread-607613][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:30:37,129 [DEBUG][       Thread-607613][   transport.py][1871] : Compression: none
2025-07-01 14:30:37,129 [DEBUG][       Thread-607613][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:30:37,138 [DEBUG][       Thread-607613][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:30:37,139 [DEBUG][       Thread-607613][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:30:37,139 [DEBUG][       Thread-607613][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:30:37,139 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:30:37,139 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:30:37,140 [DEBUG][       Thread-607613][   transport.py][1871] : userauth is OK
2025-07-01 14:30:37,153 [ INFO][       Thread-607613][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:30:37,153 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:30:37,785 [DEBUG][       Thread-607613][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:30:37,785 [DEBUG][       Thread-607613][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:30:37,829 [DEBUG][       Thread-607613][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:30:37,829 [DEBUG][       Thread-607613][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:30:37,832 [DEBUG][       Thread-607613][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:30:37,844 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:30:37,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:30:37,846 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:30:37,848 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:30:37,855 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:30:37,857 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:30:37,858 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:30:37,858 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:30:37,858 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.521121 -999.00  +13.50  35.30     52   +4.00 1 2 2 1 1   887    0 8.74 -23.37 ----- 32.8 35.3 40.4 47.3 15.6 -20.6 15.1 -21.3 15.2 -19.8 15.7 -19.1
2025-07-01 14:30:37,859 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:30:37,859 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:30:37,859 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.521121
2025-07-01 14:30:37,859 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:30:37,860 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:30:37,860 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:30:37,860 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:30:37,860 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:30:37,860 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:30:24', tmtdew=10.95, humidity=47.47, cloud=0.0, wind=26.09, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:30:24.854', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:30:37,861 [DEBUG][       Thread-607613][   transport.py][1871] : EOF in transport thread
2025-07-01 14:30:37,943 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:30:37,953 [DEBUG][       Thread-607616][   transport.py][1871] : starting thread (client mode): 0x4701ec20
2025-07-01 14:30:37,953 [DEBUG][       Thread-607616][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:30:37,968 [DEBUG][       Thread-607616][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:30:37,968 [ INFO][       Thread-607616][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:30:37,975 [DEBUG][       Thread-607616][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:30:37,975 [DEBUG][       Thread-607616][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:30:37,976 [DEBUG][       Thread-607616][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:30:37,976 [DEBUG][       Thread-607616][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:30:37,976 [DEBUG][       Thread-607616][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:30:37,976 [DEBUG][       Thread-607616][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:30:37,976 [DEBUG][       Thread-607616][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:30:37,976 [DEBUG][       Thread-607616][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:30:37,976 [DEBUG][       Thread-607616][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:30:37,976 [DEBUG][       Thread-607616][   transport.py][1871] : client lang: <none>
2025-07-01 14:30:37,976 [DEBUG][       Thread-607616][   transport.py][1871] : server lang: <none>
2025-07-01 14:30:37,976 [DEBUG][       Thread-607616][   transport.py][1871] : kex follows: False
2025-07-01 14:30:37,976 [DEBUG][       Thread-607616][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:30:37,976 [DEBUG][       Thread-607616][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:30:37,976 [DEBUG][       Thread-607616][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:30:37,976 [DEBUG][       Thread-607616][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:30:37,976 [DEBUG][       Thread-607616][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:30:37,976 [DEBUG][       Thread-607616][   transport.py][1871] : Compression: none
2025-07-01 14:30:37,976 [DEBUG][       Thread-607616][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:30:38,034 [DEBUG][       Thread-607616][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:30:38,035 [DEBUG][       Thread-607616][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:30:38,044 [DEBUG][       Thread-607616][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:30:38,044 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:30:38,045 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:30:38,090 [DEBUG][       Thread-607616][   transport.py][1871] : userauth is OK
2025-07-01 14:30:38,090 [DEBUG][       Thread-607616][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:30:38,090 [DEBUG][       Thread-607616][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:30:38,090 [DEBUG][       Thread-607616][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:30:38,090 [DEBUG][       Thread-607616][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:30:38,109 [ INFO][       Thread-607616][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:30:38,109 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:30:38,109 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:30:39,146 [DEBUG][       Thread-607616][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:30:39,147 [DEBUG][       Thread-607616][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:30:39,196 [DEBUG][       Thread-607616][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:30:39,196 [DEBUG][       Thread-607616][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:30:39,205 [DEBUG][       Thread-607616][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:30:39,214 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:30:39,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-07-01 14:30:39,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-07-01 14:30:39,232 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:30:39,232 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:30:39,233 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:30:39,241 [DEBUG][       Thread-607616][   transport.py][1871] : EOF in transport thread
2025-07-01 14:30:43,991 [DEBUG][Thread-607618 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:30:49,243 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:30:49,243 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:30:49,243 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:30:49,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-07-01 14:30:49,765 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 30, 24), 10.95, 47.47, 0.0, 26.09, 13.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:30:49,765 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:30:24
2025-07-01 14:30:49,857 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:30:49,861 [DEBUG][       Thread-607619][   transport.py][1871] : starting thread (client mode): 0x81a7940
2025-07-01 14:30:49,861 [DEBUG][       Thread-607619][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:30:49,881 [DEBUG][       Thread-607619][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:30:49,881 [ INFO][       Thread-607619][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:30:49,884 [DEBUG][       Thread-607619][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:30:49,884 [DEBUG][       Thread-607619][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:30:49,884 [DEBUG][       Thread-607619][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:30:49,884 [DEBUG][       Thread-607619][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:30:49,884 [DEBUG][       Thread-607619][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:30:49,884 [DEBUG][       Thread-607619][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:30:49,884 [DEBUG][       Thread-607619][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:30:49,884 [DEBUG][       Thread-607619][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:30:49,884 [DEBUG][       Thread-607619][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:30:49,884 [DEBUG][       Thread-607619][   transport.py][1871] : client lang: <none>
2025-07-01 14:30:49,884 [DEBUG][       Thread-607619][   transport.py][1871] : server lang: <none>
2025-07-01 14:30:49,884 [DEBUG][       Thread-607619][   transport.py][1871] : kex follows: False
2025-07-01 14:30:49,884 [DEBUG][       Thread-607619][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:30:49,884 [DEBUG][       Thread-607619][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:30:49,884 [DEBUG][       Thread-607619][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:30:49,884 [DEBUG][       Thread-607619][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:30:49,884 [DEBUG][       Thread-607619][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:30:49,884 [DEBUG][       Thread-607619][   transport.py][1871] : Compression: none
2025-07-01 14:30:49,884 [DEBUG][       Thread-607619][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:30:49,899 [DEBUG][       Thread-607619][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:30:49,899 [DEBUG][       Thread-607619][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:30:49,899 [DEBUG][       Thread-607619][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:30:49,899 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:30:49,899 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:30:49,900 [DEBUG][       Thread-607619][   transport.py][1871] : userauth is OK
2025-07-01 14:30:49,912 [ INFO][       Thread-607619][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:30:49,912 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:30:50,725 [DEBUG][       Thread-607619][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:30:50,725 [DEBUG][       Thread-607619][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:30:50,769 [DEBUG][       Thread-607619][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:30:50,769 [DEBUG][       Thread-607619][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:30:50,771 [DEBUG][       Thread-607619][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:30:50,785 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:30:50,785 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:30:50,787 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:30:50,787 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:30:50,790 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:30:50,791 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:30:50,791 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:30:50,791 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:30:50,791 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.521121 -999.00  +13.50  35.30     52   +4.00 1 2 2 1 1   887    0 8.74 -23.37 ----- 32.8 35.3 40.4 47.3 15.6 -20.6 15.1 -21.3 15.2 -19.8 15.7 -19.1
2025-07-01 14:30:50,791 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:30:50,791 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:30:50,791 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.521121
2025-07-01 14:30:50,791 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:30:50,791 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:30:50,792 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:30:50,792 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:30:50,792 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:30:50,792 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:30:24', tmtdew=10.95, humidity=47.47, cloud=0.0, wind=26.09, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:30:24.854', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:30:50,792 [DEBUG][       Thread-607619][   transport.py][1871] : EOF in transport thread
2025-07-01 14:30:50,863 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:30:50,875 [DEBUG][       Thread-607622][   transport.py][1871] : starting thread (client mode): 0x8104520
2025-07-01 14:30:50,875 [DEBUG][       Thread-607622][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:30:50,892 [DEBUG][       Thread-607622][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:30:50,892 [ INFO][       Thread-607622][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:30:50,900 [DEBUG][       Thread-607622][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:30:50,900 [DEBUG][       Thread-607622][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:30:50,900 [DEBUG][       Thread-607622][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:30:50,900 [DEBUG][       Thread-607622][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:30:50,900 [DEBUG][       Thread-607622][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:30:50,900 [DEBUG][       Thread-607622][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:30:50,900 [DEBUG][       Thread-607622][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:30:50,900 [DEBUG][       Thread-607622][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:30:50,900 [DEBUG][       Thread-607622][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:30:50,900 [DEBUG][       Thread-607622][   transport.py][1871] : client lang: <none>
2025-07-01 14:30:50,900 [DEBUG][       Thread-607622][   transport.py][1871] : server lang: <none>
2025-07-01 14:30:50,900 [DEBUG][       Thread-607622][   transport.py][1871] : kex follows: False
2025-07-01 14:30:50,900 [DEBUG][       Thread-607622][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:30:50,900 [DEBUG][       Thread-607622][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:30:50,900 [DEBUG][       Thread-607622][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:30:50,900 [DEBUG][       Thread-607622][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:30:50,900 [DEBUG][       Thread-607622][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:30:50,900 [DEBUG][       Thread-607622][   transport.py][1871] : Compression: none
2025-07-01 14:30:50,900 [DEBUG][       Thread-607622][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:30:50,957 [DEBUG][       Thread-607622][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:30:50,957 [DEBUG][       Thread-607622][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:30:50,957 [DEBUG][       Thread-607622][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:30:50,957 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:30:50,957 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:30:51,014 [DEBUG][       Thread-607622][   transport.py][1871] : userauth is OK
2025-07-01 14:30:51,014 [DEBUG][       Thread-607622][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:30:51,014 [DEBUG][       Thread-607622][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:30:51,014 [DEBUG][       Thread-607622][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:30:51,014 [DEBUG][       Thread-607622][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:30:51,028 [ INFO][       Thread-607622][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:30:51,029 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:30:51,029 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:30:52,079 [DEBUG][       Thread-607622][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:30:52,079 [DEBUG][       Thread-607622][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:30:52,127 [DEBUG][       Thread-607622][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:30:52,127 [DEBUG][       Thread-607622][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:30:52,136 [DEBUG][       Thread-607622][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:30:52,144 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:30:52,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-07-01 14:30:52,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-07-01 14:30:52,160 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:30:52,160 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:30:52,160 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:30:52,167 [DEBUG][       Thread-607622][   transport.py][1871] : EOF in transport thread
2025-07-01 14:30:53,031 [DEBUG][Thread-607624 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:31:02,052 [DEBUG][Thread-607625 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:31:02,170 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:31:02,170 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:31:02,171 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:31:02,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-07-01 14:31:02,658 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 30, 56), 10.94, 47.53, 0.0, 31.32, 13.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:31:02,658 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:30:56
2025-07-01 14:31:02,745 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:31:02,751 [DEBUG][       Thread-607626][   transport.py][1871] : starting thread (client mode): 0x75aa980
2025-07-01 14:31:02,751 [DEBUG][       Thread-607626][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:31:02,770 [DEBUG][       Thread-607626][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:31:02,770 [ INFO][       Thread-607626][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:31:02,773 [DEBUG][       Thread-607626][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:31:02,774 [DEBUG][       Thread-607626][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:31:02,774 [DEBUG][       Thread-607626][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:31:02,774 [DEBUG][       Thread-607626][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:31:02,774 [DEBUG][       Thread-607626][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:31:02,774 [DEBUG][       Thread-607626][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:31:02,774 [DEBUG][       Thread-607626][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:31:02,774 [DEBUG][       Thread-607626][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:31:02,774 [DEBUG][       Thread-607626][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:31:02,774 [DEBUG][       Thread-607626][   transport.py][1871] : client lang: <none>
2025-07-01 14:31:02,774 [DEBUG][       Thread-607626][   transport.py][1871] : server lang: <none>
2025-07-01 14:31:02,774 [DEBUG][       Thread-607626][   transport.py][1871] : kex follows: False
2025-07-01 14:31:02,774 [DEBUG][       Thread-607626][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:31:02,774 [DEBUG][       Thread-607626][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:31:02,774 [DEBUG][       Thread-607626][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:31:02,774 [DEBUG][       Thread-607626][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:31:02,774 [DEBUG][       Thread-607626][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:31:02,774 [DEBUG][       Thread-607626][   transport.py][1871] : Compression: none
2025-07-01 14:31:02,774 [DEBUG][       Thread-607626][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:31:02,789 [DEBUG][       Thread-607626][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:31:02,790 [DEBUG][       Thread-607626][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:31:02,790 [DEBUG][       Thread-607626][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:31:02,790 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:31:02,791 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:31:02,792 [DEBUG][       Thread-607626][   transport.py][1871] : userauth is OK
2025-07-01 14:31:02,816 [ INFO][       Thread-607626][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:31:02,817 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:31:03,653 [DEBUG][       Thread-607626][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:31:03,654 [DEBUG][       Thread-607626][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:31:03,697 [DEBUG][       Thread-607626][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:31:03,697 [DEBUG][       Thread-607626][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:31:03,701 [DEBUG][       Thread-607626][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:31:03,712 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:31:03,712 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:31:03,714 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:31:03,716 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:31:03,721 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:31:03,723 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:31:03,723 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:31:03,724 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:31:03,724 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.521121 -999.00  +13.50  35.30     52   +4.00 1 2 2 1 1   887    0 8.74 -23.37 ----- 32.8 35.3 40.4 47.3 15.6 -20.6 15.1 -21.3 15.2 -19.8 15.7 -19.1
2025-07-01 14:31:03,724 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:31:03,724 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:31:03,725 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.521121
2025-07-01 14:31:03,725 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:31:03,726 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:31:03,726 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:31:03,726 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:31:03,726 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:31:03,726 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:30:56', tmtdew=10.94, humidity=47.53, cloud=0.0, wind=31.32, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:30:24.854', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:31:03,726 [DEBUG][       Thread-607626][   transport.py][1871] : EOF in transport thread
2025-07-01 14:31:03,810 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:31:03,820 [DEBUG][       Thread-607629][   transport.py][1871] : starting thread (client mode): 0x81a5090
2025-07-01 14:31:03,820 [DEBUG][       Thread-607629][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:31:03,835 [DEBUG][       Thread-607629][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:31:03,835 [ INFO][       Thread-607629][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:31:03,842 [DEBUG][       Thread-607629][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:31:03,843 [DEBUG][       Thread-607629][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:31:03,843 [DEBUG][       Thread-607629][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:31:03,843 [DEBUG][       Thread-607629][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:31:03,843 [DEBUG][       Thread-607629][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:31:03,843 [DEBUG][       Thread-607629][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:31:03,843 [DEBUG][       Thread-607629][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:31:03,843 [DEBUG][       Thread-607629][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:31:03,843 [DEBUG][       Thread-607629][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:31:03,843 [DEBUG][       Thread-607629][   transport.py][1871] : client lang: <none>
2025-07-01 14:31:03,843 [DEBUG][       Thread-607629][   transport.py][1871] : server lang: <none>
2025-07-01 14:31:03,843 [DEBUG][       Thread-607629][   transport.py][1871] : kex follows: False
2025-07-01 14:31:03,843 [DEBUG][       Thread-607629][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:31:03,843 [DEBUG][       Thread-607629][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:31:03,843 [DEBUG][       Thread-607629][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:31:03,843 [DEBUG][       Thread-607629][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:31:03,843 [DEBUG][       Thread-607629][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:31:03,843 [DEBUG][       Thread-607629][   transport.py][1871] : Compression: none
2025-07-01 14:31:03,843 [DEBUG][       Thread-607629][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:31:03,904 [DEBUG][       Thread-607629][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:31:03,905 [DEBUG][       Thread-607629][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:31:03,905 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:31:03,906 [DEBUG][       Thread-607629][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:31:03,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:31:03,963 [DEBUG][       Thread-607629][   transport.py][1871] : userauth is OK
2025-07-01 14:31:03,964 [DEBUG][       Thread-607629][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:31:03,964 [DEBUG][       Thread-607629][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:31:03,964 [DEBUG][       Thread-607629][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:31:03,964 [DEBUG][       Thread-607629][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:31:03,984 [ INFO][       Thread-607629][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:31:03,984 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:31:03,985 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:31:05,012 [DEBUG][       Thread-607629][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:31:05,013 [DEBUG][       Thread-607629][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:31:05,064 [DEBUG][       Thread-607629][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:31:05,064 [DEBUG][       Thread-607629][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:31:05,073 [DEBUG][       Thread-607629][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:31:05,082 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:31:05,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-07-01 14:31:05,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') -> 00000000
2025-07-01 14:31:05,099 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:31:05,100 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:31:05,100 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:31:05,110 [DEBUG][       Thread-607629][   transport.py][1871] : EOF in transport thread
2025-07-01 14:31:11,073 [DEBUG][Thread-607631 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:31:15,110 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:31:15,111 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:31:15,111 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:31:15,114 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:31:15,603 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 30, 56), 10.94, 47.53, 0.0, 31.32, 13.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:31:15,604 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:30:56
2025-07-01 14:31:15,690 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:31:15,694 [DEBUG][       Thread-607632][   transport.py][1871] : starting thread (client mode): 0x8105bd0
2025-07-01 14:31:15,694 [DEBUG][       Thread-607632][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:31:15,713 [DEBUG][       Thread-607632][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:31:15,713 [ INFO][       Thread-607632][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:31:15,716 [DEBUG][       Thread-607632][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:31:15,716 [DEBUG][       Thread-607632][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:31:15,716 [DEBUG][       Thread-607632][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:31:15,716 [DEBUG][       Thread-607632][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:31:15,716 [DEBUG][       Thread-607632][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:31:15,716 [DEBUG][       Thread-607632][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:31:15,716 [DEBUG][       Thread-607632][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:31:15,716 [DEBUG][       Thread-607632][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:31:15,716 [DEBUG][       Thread-607632][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:31:15,716 [DEBUG][       Thread-607632][   transport.py][1871] : client lang: <none>
2025-07-01 14:31:15,716 [DEBUG][       Thread-607632][   transport.py][1871] : server lang: <none>
2025-07-01 14:31:15,716 [DEBUG][       Thread-607632][   transport.py][1871] : kex follows: False
2025-07-01 14:31:15,716 [DEBUG][       Thread-607632][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:31:15,716 [DEBUG][       Thread-607632][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:31:15,716 [DEBUG][       Thread-607632][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:31:15,716 [DEBUG][       Thread-607632][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:31:15,717 [DEBUG][       Thread-607632][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:31:15,717 [DEBUG][       Thread-607632][   transport.py][1871] : Compression: none
2025-07-01 14:31:15,717 [DEBUG][       Thread-607632][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:31:15,734 [DEBUG][       Thread-607632][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:31:15,734 [DEBUG][       Thread-607632][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:31:15,735 [DEBUG][       Thread-607632][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:31:15,735 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:31:15,735 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:31:15,736 [DEBUG][       Thread-607632][   transport.py][1871] : userauth is OK
2025-07-01 14:31:15,749 [ INFO][       Thread-607632][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:31:15,750 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:31:16,408 [DEBUG][       Thread-607632][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:31:16,409 [DEBUG][       Thread-607632][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:31:16,453 [DEBUG][       Thread-607632][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:31:16,454 [DEBUG][       Thread-607632][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:31:16,457 [DEBUG][       Thread-607632][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:31:16,469 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:31:16,469 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:31:16,471 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:31:16,474 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:31:16,480 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:31:16,482 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:31:16,482 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:31:16,483 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:31:16,483 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.521469 -999.00  +13.50  36.89     52   +4.00 1 2 2 1 1   887    0 9.05 -25.04 ----- 37.0 36.9 29.0 50.3 15.7 -20.7 15.1 -21.6 15.1 -19.8 15.6 -19.2
2025-07-01 14:31:16,483 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:31:16,483 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:31:16,483 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.521469
2025-07-01 14:31:16,484 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:31:16,484 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:31:16,484 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:31:16,484 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:31:16,485 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:31:16,485 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:30:56', tmtdew=10.94, humidity=47.53, cloud=0.0, wind=31.32, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:30:54.922', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:31:16,486 [DEBUG][       Thread-607632][   transport.py][1871] : EOF in transport thread
2025-07-01 14:31:16,569 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:31:16,580 [DEBUG][       Thread-607635][   transport.py][1871] : starting thread (client mode): 0x75ab190
2025-07-01 14:31:16,581 [DEBUG][       Thread-607635][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:31:16,595 [DEBUG][       Thread-607635][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:31:16,595 [ INFO][       Thread-607635][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:31:16,603 [DEBUG][       Thread-607635][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:31:16,603 [DEBUG][       Thread-607635][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:31:16,603 [DEBUG][       Thread-607635][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:31:16,603 [DEBUG][       Thread-607635][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:31:16,603 [DEBUG][       Thread-607635][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:31:16,603 [DEBUG][       Thread-607635][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:31:16,603 [DEBUG][       Thread-607635][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:31:16,603 [DEBUG][       Thread-607635][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:31:16,603 [DEBUG][       Thread-607635][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:31:16,603 [DEBUG][       Thread-607635][   transport.py][1871] : client lang: <none>
2025-07-01 14:31:16,603 [DEBUG][       Thread-607635][   transport.py][1871] : server lang: <none>
2025-07-01 14:31:16,604 [DEBUG][       Thread-607635][   transport.py][1871] : kex follows: False
2025-07-01 14:31:16,604 [DEBUG][       Thread-607635][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:31:16,604 [DEBUG][       Thread-607635][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:31:16,604 [DEBUG][       Thread-607635][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:31:16,604 [DEBUG][       Thread-607635][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:31:16,604 [DEBUG][       Thread-607635][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:31:16,604 [DEBUG][       Thread-607635][   transport.py][1871] : Compression: none
2025-07-01 14:31:16,604 [DEBUG][       Thread-607635][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:31:16,660 [DEBUG][       Thread-607635][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:31:16,660 [DEBUG][       Thread-607635][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:31:16,661 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:31:16,661 [DEBUG][       Thread-607635][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:31:16,662 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:31:16,716 [DEBUG][       Thread-607635][   transport.py][1871] : userauth is OK
2025-07-01 14:31:16,716 [DEBUG][       Thread-607635][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:31:16,716 [DEBUG][       Thread-607635][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:31:16,717 [DEBUG][       Thread-607635][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:31:16,717 [DEBUG][       Thread-607635][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:31:16,735 [ INFO][       Thread-607635][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:31:16,735 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:31:16,736 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:31:17,722 [DEBUG][       Thread-607635][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:31:17,722 [DEBUG][       Thread-607635][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:31:17,772 [DEBUG][       Thread-607635][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:31:17,772 [DEBUG][       Thread-607635][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:31:17,781 [DEBUG][       Thread-607635][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:31:17,790 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:31:17,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-07-01 14:31:17,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') -> 00000000
2025-07-01 14:31:17,806 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:31:17,806 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:31:17,807 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:31:17,814 [DEBUG][       Thread-607635][   transport.py][1871] : EOF in transport thread
2025-07-01 14:31:20,107 [DEBUG][Thread-607637 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:31:27,816 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:31:27,816 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:31:27,816 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:31:27,816 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:31:28,341 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 30, 56), 10.94, 47.53, 0.0, 31.32, 13.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:31:28,342 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:30:56
2025-07-01 14:31:28,436 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:31:28,444 [DEBUG][       Thread-607638][   transport.py][1871] : starting thread (client mode): 0x81da6e0
2025-07-01 14:31:28,444 [DEBUG][       Thread-607638][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:31:28,463 [DEBUG][       Thread-607638][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:31:28,463 [ INFO][       Thread-607638][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:31:28,466 [DEBUG][       Thread-607638][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:31:28,466 [DEBUG][       Thread-607638][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:31:28,466 [DEBUG][       Thread-607638][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:31:28,466 [DEBUG][       Thread-607638][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:31:28,466 [DEBUG][       Thread-607638][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:31:28,466 [DEBUG][       Thread-607638][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:31:28,466 [DEBUG][       Thread-607638][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:31:28,466 [DEBUG][       Thread-607638][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:31:28,466 [DEBUG][       Thread-607638][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:31:28,466 [DEBUG][       Thread-607638][   transport.py][1871] : client lang: <none>
2025-07-01 14:31:28,466 [DEBUG][       Thread-607638][   transport.py][1871] : server lang: <none>
2025-07-01 14:31:28,466 [DEBUG][       Thread-607638][   transport.py][1871] : kex follows: False
2025-07-01 14:31:28,466 [DEBUG][       Thread-607638][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:31:28,466 [DEBUG][       Thread-607638][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:31:28,466 [DEBUG][       Thread-607638][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:31:28,466 [DEBUG][       Thread-607638][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:31:28,466 [DEBUG][       Thread-607638][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:31:28,466 [DEBUG][       Thread-607638][   transport.py][1871] : Compression: none
2025-07-01 14:31:28,466 [DEBUG][       Thread-607638][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:31:28,481 [DEBUG][       Thread-607638][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:31:28,481 [DEBUG][       Thread-607638][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:31:28,481 [DEBUG][       Thread-607638][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:31:28,481 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:31:28,481 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:31:28,482 [DEBUG][       Thread-607638][   transport.py][1871] : userauth is OK
2025-07-01 14:31:28,506 [ INFO][       Thread-607638][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:31:28,506 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:31:29,127 [DEBUG][Thread-607640 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:31:29,323 [DEBUG][       Thread-607638][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:31:29,323 [DEBUG][       Thread-607638][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:31:29,364 [DEBUG][       Thread-607638][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:31:29,365 [DEBUG][       Thread-607638][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:31:29,367 [DEBUG][       Thread-607638][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:31:29,379 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:31:29,379 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:31:29,380 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:31:29,381 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:31:29,384 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:31:29,385 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:31:29,385 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:31:29,385 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:31:29,385 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.521469 -999.00  +13.50  36.89     52   +4.00 1 2 2 1 1   887    0 9.05 -25.04 ----- 37.0 36.9 29.0 50.3 15.7 -20.7 15.1 -21.6 15.1 -19.8 15.6 -19.2
2025-07-01 14:31:29,385 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:31:29,385 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:31:29,385 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.521469
2025-07-01 14:31:29,385 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:31:29,385 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:31:29,385 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:31:29,385 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:31:29,385 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:31:29,385 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:30:56', tmtdew=10.94, humidity=47.53, cloud=0.0, wind=31.32, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:30:54.922', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:31:29,385 [DEBUG][       Thread-607638][   transport.py][1871] : EOF in transport thread
2025-07-01 14:31:29,459 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:31:29,470 [DEBUG][       Thread-607642][   transport.py][1871] : starting thread (client mode): 0x82b2620
2025-07-01 14:31:29,470 [DEBUG][       Thread-607642][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:31:29,485 [DEBUG][       Thread-607642][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:31:29,486 [ INFO][       Thread-607642][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:31:29,493 [DEBUG][       Thread-607642][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:31:29,493 [DEBUG][       Thread-607642][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:31:29,493 [DEBUG][       Thread-607642][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:31:29,493 [DEBUG][       Thread-607642][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:31:29,493 [DEBUG][       Thread-607642][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:31:29,493 [DEBUG][       Thread-607642][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:31:29,493 [DEBUG][       Thread-607642][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:31:29,493 [DEBUG][       Thread-607642][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:31:29,493 [DEBUG][       Thread-607642][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:31:29,493 [DEBUG][       Thread-607642][   transport.py][1871] : client lang: <none>
2025-07-01 14:31:29,493 [DEBUG][       Thread-607642][   transport.py][1871] : server lang: <none>
2025-07-01 14:31:29,493 [DEBUG][       Thread-607642][   transport.py][1871] : kex follows: False
2025-07-01 14:31:29,493 [DEBUG][       Thread-607642][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:31:29,493 [DEBUG][       Thread-607642][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:31:29,493 [DEBUG][       Thread-607642][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:31:29,493 [DEBUG][       Thread-607642][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:31:29,493 [DEBUG][       Thread-607642][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:31:29,493 [DEBUG][       Thread-607642][   transport.py][1871] : Compression: none
2025-07-01 14:31:29,493 [DEBUG][       Thread-607642][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:31:29,553 [DEBUG][       Thread-607642][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:31:29,553 [DEBUG][       Thread-607642][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:31:29,553 [DEBUG][       Thread-607642][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:31:29,553 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:31:29,553 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:31:29,615 [DEBUG][       Thread-607642][   transport.py][1871] : userauth is OK
2025-07-01 14:31:29,615 [DEBUG][       Thread-607642][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:31:29,615 [DEBUG][       Thread-607642][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:31:29,615 [DEBUG][       Thread-607642][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:31:29,615 [DEBUG][       Thread-607642][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:31:29,630 [ INFO][       Thread-607642][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:31:29,631 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:31:29,631 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:31:30,678 [DEBUG][       Thread-607642][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:31:30,678 [DEBUG][       Thread-607642][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:31:30,727 [DEBUG][       Thread-607642][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:31:30,727 [DEBUG][       Thread-607642][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:31:30,736 [DEBUG][       Thread-607642][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:31:30,744 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:31:30,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')
2025-07-01 14:31:30,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-07-01 14:31:30,760 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:31:30,760 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:31:30,760 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:31:30,768 [DEBUG][       Thread-607642][   transport.py][1871] : EOF in transport thread
2025-07-01 14:31:33,248 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:31:33,250 [DEBUG][Thread-570626 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:31:35,095 [DEBUG][Thread-607644 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:31:38,148 [DEBUG][Thread-607645 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:31:40,765 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:31:40,765 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:31:40,765 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:31:40,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-07-01 14:31:41,256 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 31, 28), 10.99, 47.47, 0.0, 32.43, 13.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:31:41,256 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:31:28
2025-07-01 14:31:41,342 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:31:41,346 [DEBUG][       Thread-607646][   transport.py][1871] : starting thread (client mode): 0x8171930
2025-07-01 14:31:41,346 [DEBUG][       Thread-607646][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:31:41,367 [DEBUG][       Thread-607646][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:31:41,367 [ INFO][       Thread-607646][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:31:41,370 [DEBUG][       Thread-607646][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:31:41,370 [DEBUG][       Thread-607646][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:31:41,370 [DEBUG][       Thread-607646][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:31:41,370 [DEBUG][       Thread-607646][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:31:41,370 [DEBUG][       Thread-607646][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:31:41,370 [DEBUG][       Thread-607646][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:31:41,370 [DEBUG][       Thread-607646][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:31:41,370 [DEBUG][       Thread-607646][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:31:41,370 [DEBUG][       Thread-607646][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:31:41,370 [DEBUG][       Thread-607646][   transport.py][1871] : client lang: <none>
2025-07-01 14:31:41,370 [DEBUG][       Thread-607646][   transport.py][1871] : server lang: <none>
2025-07-01 14:31:41,370 [DEBUG][       Thread-607646][   transport.py][1871] : kex follows: False
2025-07-01 14:31:41,370 [DEBUG][       Thread-607646][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:31:41,370 [DEBUG][       Thread-607646][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:31:41,371 [DEBUG][       Thread-607646][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:31:41,371 [DEBUG][       Thread-607646][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:31:41,371 [DEBUG][       Thread-607646][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:31:41,371 [DEBUG][       Thread-607646][   transport.py][1871] : Compression: none
2025-07-01 14:31:41,371 [DEBUG][       Thread-607646][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:31:41,387 [DEBUG][       Thread-607646][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:31:41,387 [DEBUG][       Thread-607646][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:31:41,388 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:31:41,388 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:31:41,388 [DEBUG][       Thread-607646][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:31:41,389 [DEBUG][       Thread-607646][   transport.py][1871] : userauth is OK
2025-07-01 14:31:41,413 [ INFO][       Thread-607646][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:31:41,413 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:31:42,011 [DEBUG][       Thread-607646][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:31:42,011 [DEBUG][       Thread-607646][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:31:42,053 [DEBUG][       Thread-607646][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:31:42,053 [DEBUG][       Thread-607646][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:31:42,056 [DEBUG][       Thread-607646][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:31:42,063 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:31:42,063 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:31:42,066 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:31:42,068 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:31:42,074 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:31:42,076 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:31:42,076 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:31:42,077 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:31:42,077 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.521816 -999.00  +13.50  34.73     52   +3.90 1 2 2 1 1   887    0 8.97 -25.38 ----- 40.9 34.7 17.9 46.9 15.6 -20.7 15.1 -21.7 15.2 -19.3 15.6 -18.9
2025-07-01 14:31:42,077 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:31:42,077 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:31:42,077 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.521816
2025-07-01 14:31:42,078 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:31:42,078 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:31:42,079 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:31:42,079 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:31:42,079 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:31:42,079 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:31:28', tmtdew=10.99, humidity=47.47, cloud=0.0, wind=32.43, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:31:24.902', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:31:42,079 [DEBUG][       Thread-607646][   transport.py][1871] : EOF in transport thread
2025-07-01 14:31:42,162 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:31:42,172 [DEBUG][       Thread-607649][   transport.py][1871] : starting thread (client mode): 0x81a4760
2025-07-01 14:31:42,172 [DEBUG][       Thread-607649][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:31:42,187 [DEBUG][       Thread-607649][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:31:42,187 [ INFO][       Thread-607649][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:31:42,195 [DEBUG][       Thread-607649][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:31:42,195 [DEBUG][       Thread-607649][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:31:42,195 [DEBUG][       Thread-607649][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:31:42,195 [DEBUG][       Thread-607649][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:31:42,195 [DEBUG][       Thread-607649][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:31:42,195 [DEBUG][       Thread-607649][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:31:42,195 [DEBUG][       Thread-607649][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:31:42,195 [DEBUG][       Thread-607649][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:31:42,195 [DEBUG][       Thread-607649][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:31:42,195 [DEBUG][       Thread-607649][   transport.py][1871] : client lang: <none>
2025-07-01 14:31:42,195 [DEBUG][       Thread-607649][   transport.py][1871] : server lang: <none>
2025-07-01 14:31:42,195 [DEBUG][       Thread-607649][   transport.py][1871] : kex follows: False
2025-07-01 14:31:42,195 [DEBUG][       Thread-607649][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:31:42,195 [DEBUG][       Thread-607649][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:31:42,195 [DEBUG][       Thread-607649][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:31:42,195 [DEBUG][       Thread-607649][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:31:42,196 [DEBUG][       Thread-607649][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:31:42,196 [DEBUG][       Thread-607649][   transport.py][1871] : Compression: none
2025-07-01 14:31:42,196 [DEBUG][       Thread-607649][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:31:42,257 [DEBUG][       Thread-607649][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:31:42,258 [DEBUG][       Thread-607649][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:31:42,258 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:31:42,259 [DEBUG][       Thread-607649][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:31:42,260 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:31:42,327 [DEBUG][       Thread-607649][   transport.py][1871] : userauth is OK
2025-07-01 14:31:42,327 [DEBUG][       Thread-607649][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:31:42,327 [DEBUG][       Thread-607649][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:31:42,327 [DEBUG][       Thread-607649][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:31:42,328 [DEBUG][       Thread-607649][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:31:42,346 [ INFO][       Thread-607649][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:31:42,346 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:31:42,347 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:31:43,371 [DEBUG][       Thread-607649][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:31:43,371 [DEBUG][       Thread-607649][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:31:43,420 [DEBUG][       Thread-607649][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:31:43,420 [DEBUG][       Thread-607649][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:31:43,429 [DEBUG][       Thread-607649][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:31:43,439 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:31:43,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-07-01 14:31:43,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-07-01 14:31:43,457 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:31:43,458 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:31:43,458 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:31:43,466 [DEBUG][       Thread-607649][   transport.py][1871] : EOF in transport thread
2025-07-01 14:31:47,170 [DEBUG][Thread-607651 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:31:53,468 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:31:53,469 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:31:53,469 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:31:53,472 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:31:53,954 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 31, 28), 10.99, 47.47, 0.0, 32.43, 13.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:31:53,954 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:31:28
2025-07-01 14:31:54,039 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:31:54,045 [DEBUG][       Thread-607652][   transport.py][1871] : starting thread (client mode): 0x75a9480
2025-07-01 14:31:54,045 [DEBUG][       Thread-607652][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:31:54,065 [DEBUG][       Thread-607652][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:31:54,065 [ INFO][       Thread-607652][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:31:54,067 [DEBUG][       Thread-607652][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:31:54,067 [DEBUG][       Thread-607652][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:31:54,067 [DEBUG][       Thread-607652][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:31:54,067 [DEBUG][       Thread-607652][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:31:54,067 [DEBUG][       Thread-607652][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:31:54,067 [DEBUG][       Thread-607652][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:31:54,067 [DEBUG][       Thread-607652][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:31:54,067 [DEBUG][       Thread-607652][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:31:54,067 [DEBUG][       Thread-607652][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:31:54,067 [DEBUG][       Thread-607652][   transport.py][1871] : client lang: <none>
2025-07-01 14:31:54,067 [DEBUG][       Thread-607652][   transport.py][1871] : server lang: <none>
2025-07-01 14:31:54,067 [DEBUG][       Thread-607652][   transport.py][1871] : kex follows: False
2025-07-01 14:31:54,067 [DEBUG][       Thread-607652][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:31:54,067 [DEBUG][       Thread-607652][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:31:54,067 [DEBUG][       Thread-607652][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:31:54,067 [DEBUG][       Thread-607652][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:31:54,067 [DEBUG][       Thread-607652][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:31:54,067 [DEBUG][       Thread-607652][   transport.py][1871] : Compression: none
2025-07-01 14:31:54,067 [DEBUG][       Thread-607652][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:31:54,079 [DEBUG][       Thread-607652][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:31:54,080 [DEBUG][       Thread-607652][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:31:54,080 [DEBUG][       Thread-607652][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:31:54,080 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:31:54,080 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:31:54,082 [DEBUG][       Thread-607652][   transport.py][1871] : userauth is OK
2025-07-01 14:31:54,106 [ INFO][       Thread-607652][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:31:54,106 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:31:54,775 [DEBUG][       Thread-607652][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:31:54,775 [DEBUG][       Thread-607652][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:31:54,817 [DEBUG][       Thread-607652][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:31:54,817 [DEBUG][       Thread-607652][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:31:54,821 [DEBUG][       Thread-607652][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:31:54,834 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:31:54,834 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:31:54,836 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:31:54,838 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:31:54,844 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:31:54,847 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:31:54,847 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:31:54,847 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:31:54,848 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.521816 -999.00  +13.50  34.73     52   +3.90 1 2 2 1 1   887    0 8.97 -25.38 ----- 40.9 34.7 17.9 46.9 15.6 -20.7 15.1 -21.7 15.2 -19.3 15.6 -18.9
2025-07-01 14:31:54,848 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:31:54,848 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:31:54,848 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.521816
2025-07-01 14:31:54,848 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:31:54,849 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:31:54,849 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:31:54,849 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:31:54,849 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:31:54,849 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:31:28', tmtdew=10.99, humidity=47.47, cloud=0.0, wind=32.43, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:31:24.902', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:31:54,850 [DEBUG][       Thread-607652][   transport.py][1871] : EOF in transport thread
2025-07-01 14:31:54,933 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:31:54,945 [DEBUG][       Thread-607655][   transport.py][1871] : starting thread (client mode): 0x827d540
2025-07-01 14:31:54,945 [DEBUG][       Thread-607655][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:31:54,964 [DEBUG][       Thread-607655][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:31:54,964 [ INFO][       Thread-607655][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:31:54,972 [DEBUG][       Thread-607655][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:31:54,972 [DEBUG][       Thread-607655][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:31:54,973 [DEBUG][       Thread-607655][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:31:54,973 [DEBUG][       Thread-607655][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:31:54,973 [DEBUG][       Thread-607655][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:31:54,973 [DEBUG][       Thread-607655][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:31:54,973 [DEBUG][       Thread-607655][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:31:54,973 [DEBUG][       Thread-607655][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:31:54,973 [DEBUG][       Thread-607655][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:31:54,973 [DEBUG][       Thread-607655][   transport.py][1871] : client lang: <none>
2025-07-01 14:31:54,973 [DEBUG][       Thread-607655][   transport.py][1871] : server lang: <none>
2025-07-01 14:31:54,973 [DEBUG][       Thread-607655][   transport.py][1871] : kex follows: False
2025-07-01 14:31:54,973 [DEBUG][       Thread-607655][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:31:54,973 [DEBUG][       Thread-607655][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:31:54,973 [DEBUG][       Thread-607655][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:31:54,973 [DEBUG][       Thread-607655][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:31:54,973 [DEBUG][       Thread-607655][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:31:54,973 [DEBUG][       Thread-607655][   transport.py][1871] : Compression: none
2025-07-01 14:31:54,973 [DEBUG][       Thread-607655][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:31:55,029 [DEBUG][       Thread-607655][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:31:55,030 [DEBUG][       Thread-607655][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:31:55,030 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:31:55,031 [DEBUG][       Thread-607655][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:31:55,031 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:31:55,090 [DEBUG][       Thread-607655][   transport.py][1871] : userauth is OK
2025-07-01 14:31:55,090 [DEBUG][       Thread-607655][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:31:55,090 [DEBUG][       Thread-607655][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:31:55,090 [DEBUG][       Thread-607655][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:31:55,091 [DEBUG][       Thread-607655][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:31:55,110 [ INFO][       Thread-607655][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:31:55,111 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:31:55,111 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:31:56,148 [DEBUG][       Thread-607655][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:31:56,149 [DEBUG][       Thread-607655][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:31:56,207 [DEBUG][       Thread-607655][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:31:56,207 [DEBUG][       Thread-607655][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:31:56,208 [DEBUG][Thread-607657 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:31:56,217 [DEBUG][       Thread-607655][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:31:56,225 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:31:56,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-07-01 14:31:56,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-07-01 14:31:56,243 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:31:56,243 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:31:56,244 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:31:56,252 [DEBUG][       Thread-607655][   transport.py][1871] : EOF in transport thread
2025-07-01 14:32:05,229 [DEBUG][Thread-607658 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:32:06,252 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:32:06,252 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:32:06,252 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:32:06,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-07-01 14:32:06,763 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 31, 59), 10.97, 47.53, 0.0, 30.35, 13.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:32:06,763 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:31:59
2025-07-01 14:32:06,853 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:32:06,857 [DEBUG][       Thread-607659][   transport.py][1871] : starting thread (client mode): 0x81db850
2025-07-01 14:32:06,857 [DEBUG][       Thread-607659][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:32:06,877 [DEBUG][       Thread-607659][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:32:06,877 [ INFO][       Thread-607659][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:32:06,880 [DEBUG][       Thread-607659][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:32:06,880 [DEBUG][       Thread-607659][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:32:06,880 [DEBUG][       Thread-607659][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:32:06,880 [DEBUG][       Thread-607659][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:32:06,880 [DEBUG][       Thread-607659][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:32:06,880 [DEBUG][       Thread-607659][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:32:06,880 [DEBUG][       Thread-607659][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:32:06,880 [DEBUG][       Thread-607659][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:32:06,880 [DEBUG][       Thread-607659][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:32:06,880 [DEBUG][       Thread-607659][   transport.py][1871] : client lang: <none>
2025-07-01 14:32:06,880 [DEBUG][       Thread-607659][   transport.py][1871] : server lang: <none>
2025-07-01 14:32:06,881 [DEBUG][       Thread-607659][   transport.py][1871] : kex follows: False
2025-07-01 14:32:06,881 [DEBUG][       Thread-607659][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:32:06,881 [DEBUG][       Thread-607659][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:32:06,881 [DEBUG][       Thread-607659][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:32:06,881 [DEBUG][       Thread-607659][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:32:06,881 [DEBUG][       Thread-607659][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:32:06,881 [DEBUG][       Thread-607659][   transport.py][1871] : Compression: none
2025-07-01 14:32:06,881 [DEBUG][       Thread-607659][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:32:06,896 [DEBUG][       Thread-607659][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:32:06,896 [DEBUG][       Thread-607659][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:32:06,896 [DEBUG][       Thread-607659][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:32:06,896 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:32:06,896 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:32:06,896 [DEBUG][       Thread-607659][   transport.py][1871] : userauth is OK
2025-07-01 14:32:06,920 [ INFO][       Thread-607659][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:32:06,920 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:32:07,520 [DEBUG][       Thread-607659][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:32:07,520 [DEBUG][       Thread-607659][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:32:07,564 [DEBUG][       Thread-607659][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:32:07,564 [DEBUG][       Thread-607659][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:32:07,567 [DEBUG][       Thread-607659][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:32:07,579 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:32:07,579 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:32:07,580 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:32:07,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:32:07,583 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:32:07,584 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:32:07,584 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:32:07,584 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:32:07,584 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.521816 -999.00  +13.50  34.73     52   +3.90 1 2 2 1 1   887    0 8.97 -25.38 ----- 40.9 34.7 17.9 46.9 15.6 -20.7 15.1 -21.7 15.2 -19.3 15.6 -18.9
2025-07-01 14:32:07,584 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:32:07,584 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:32:07,584 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.521816
2025-07-01 14:32:07,584 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:32:07,584 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:32:07,584 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:32:07,584 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:32:07,584 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:32:07,584 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:31:59', tmtdew=10.97, humidity=47.53, cloud=0.0, wind=30.35, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:31:24.902', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:32:07,585 [DEBUG][       Thread-607659][   transport.py][1871] : EOF in transport thread
2025-07-01 14:32:07,659 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:32:07,668 [DEBUG][       Thread-607662][   transport.py][1871] : starting thread (client mode): 0x81e64a0
2025-07-01 14:32:07,668 [DEBUG][       Thread-607662][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:32:07,684 [DEBUG][       Thread-607662][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:32:07,684 [ INFO][       Thread-607662][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:32:07,691 [DEBUG][       Thread-607662][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:32:07,691 [DEBUG][       Thread-607662][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:32:07,691 [DEBUG][       Thread-607662][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:32:07,691 [DEBUG][       Thread-607662][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:32:07,691 [DEBUG][       Thread-607662][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:32:07,691 [DEBUG][       Thread-607662][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:32:07,691 [DEBUG][       Thread-607662][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:32:07,691 [DEBUG][       Thread-607662][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:32:07,691 [DEBUG][       Thread-607662][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:32:07,691 [DEBUG][       Thread-607662][   transport.py][1871] : client lang: <none>
2025-07-01 14:32:07,691 [DEBUG][       Thread-607662][   transport.py][1871] : server lang: <none>
2025-07-01 14:32:07,691 [DEBUG][       Thread-607662][   transport.py][1871] : kex follows: False
2025-07-01 14:32:07,691 [DEBUG][       Thread-607662][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:32:07,691 [DEBUG][       Thread-607662][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:32:07,691 [DEBUG][       Thread-607662][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:32:07,691 [DEBUG][       Thread-607662][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:32:07,691 [DEBUG][       Thread-607662][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:32:07,691 [DEBUG][       Thread-607662][   transport.py][1871] : Compression: none
2025-07-01 14:32:07,691 [DEBUG][       Thread-607662][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:32:07,750 [DEBUG][       Thread-607662][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:32:07,750 [DEBUG][       Thread-607662][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:32:07,750 [DEBUG][       Thread-607662][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:32:07,750 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:32:07,750 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:32:07,809 [DEBUG][       Thread-607662][   transport.py][1871] : userauth is OK
2025-07-01 14:32:07,809 [DEBUG][       Thread-607662][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:32:07,809 [DEBUG][       Thread-607662][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:32:07,809 [DEBUG][       Thread-607662][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:32:07,809 [DEBUG][       Thread-607662][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:32:07,828 [ INFO][       Thread-607662][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:32:07,828 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:32:07,828 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:32:08,863 [DEBUG][       Thread-607662][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:32:08,863 [DEBUG][       Thread-607662][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:32:08,911 [DEBUG][       Thread-607662][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:32:08,911 [DEBUG][       Thread-607662][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:32:08,920 [DEBUG][       Thread-607662][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:32:08,936 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:32:08,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')
2025-07-01 14:32:08,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') -> 00000000
2025-07-01 14:32:08,952 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:32:08,952 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:32:08,952 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:32:08,959 [DEBUG][       Thread-607662][   transport.py][1871] : EOF in transport thread
2025-07-01 14:32:14,250 [DEBUG][Thread-607664 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:32:18,962 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:32:18,962 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:32:18,962 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:32:18,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-07-01 14:32:19,442 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 31, 59), 10.97, 47.53, 0.0, 30.35, 13.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:32:19,442 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:31:59
2025-07-01 14:32:19,526 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:32:19,533 [DEBUG][       Thread-607665][   transport.py][1871] : starting thread (client mode): 0x81a4670
2025-07-01 14:32:19,533 [DEBUG][       Thread-607665][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:32:19,553 [DEBUG][       Thread-607665][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:32:19,553 [ INFO][       Thread-607665][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:32:19,556 [DEBUG][       Thread-607665][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:32:19,556 [DEBUG][       Thread-607665][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:32:19,557 [DEBUG][       Thread-607665][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:32:19,557 [DEBUG][       Thread-607665][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:32:19,557 [DEBUG][       Thread-607665][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:32:19,557 [DEBUG][       Thread-607665][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:32:19,557 [DEBUG][       Thread-607665][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:32:19,557 [DEBUG][       Thread-607665][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:32:19,557 [DEBUG][       Thread-607665][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:32:19,557 [DEBUG][       Thread-607665][   transport.py][1871] : client lang: <none>
2025-07-01 14:32:19,557 [DEBUG][       Thread-607665][   transport.py][1871] : server lang: <none>
2025-07-01 14:32:19,557 [DEBUG][       Thread-607665][   transport.py][1871] : kex follows: False
2025-07-01 14:32:19,557 [DEBUG][       Thread-607665][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:32:19,557 [DEBUG][       Thread-607665][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:32:19,557 [DEBUG][       Thread-607665][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:32:19,557 [DEBUG][       Thread-607665][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:32:19,557 [DEBUG][       Thread-607665][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:32:19,557 [DEBUG][       Thread-607665][   transport.py][1871] : Compression: none
2025-07-01 14:32:19,557 [DEBUG][       Thread-607665][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:32:19,573 [DEBUG][       Thread-607665][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:32:19,573 [DEBUG][       Thread-607665][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:32:19,574 [DEBUG][       Thread-607665][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:32:19,574 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:32:19,574 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:32:19,576 [DEBUG][       Thread-607665][   transport.py][1871] : userauth is OK
2025-07-01 14:32:19,589 [ INFO][       Thread-607665][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:32:19,589 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:32:20,224 [DEBUG][       Thread-607665][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:32:20,224 [DEBUG][       Thread-607665][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:32:20,265 [DEBUG][       Thread-607665][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:32:20,265 [DEBUG][       Thread-607665][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:32:20,267 [DEBUG][       Thread-607665][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:32:20,280 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:32:20,281 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:32:20,283 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:32:20,284 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:32:20,290 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:32:20,292 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:32:20,292 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:32:20,293 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:32:20,293 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.522163 -999.00  +13.40  39.22     52   +3.80 1 2 2 1 1   887    0 8.84 -26.83 ----- 41.6 39.2 25.4 51.7 15.6 -20.9 15.1 -21.5 15.1 -19.9 15.7 -19.2
2025-07-01 14:32:20,293 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:32:20,293 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:32:20,293 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.522163
2025-07-01 14:32:20,293 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:32:20,294 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:32:20,294 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:32:20,294 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:32:20,294 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:32:20,294 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:31:59', tmtdew=10.97, humidity=47.53, cloud=0.0, wind=30.35, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:31:54.883', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:32:20,296 [DEBUG][       Thread-607665][   transport.py][1871] : EOF in transport thread
2025-07-01 14:32:20,379 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:32:20,390 [DEBUG][       Thread-607668][   transport.py][1871] : starting thread (client mode): 0x83c8070
2025-07-01 14:32:20,390 [DEBUG][       Thread-607668][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:32:20,405 [DEBUG][       Thread-607668][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:32:20,405 [ INFO][       Thread-607668][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:32:20,413 [DEBUG][       Thread-607668][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:32:20,413 [DEBUG][       Thread-607668][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:32:20,413 [DEBUG][       Thread-607668][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:32:20,413 [DEBUG][       Thread-607668][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:32:20,413 [DEBUG][       Thread-607668][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:32:20,413 [DEBUG][       Thread-607668][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:32:20,413 [DEBUG][       Thread-607668][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:32:20,413 [DEBUG][       Thread-607668][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:32:20,413 [DEBUG][       Thread-607668][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:32:20,413 [DEBUG][       Thread-607668][   transport.py][1871] : client lang: <none>
2025-07-01 14:32:20,413 [DEBUG][       Thread-607668][   transport.py][1871] : server lang: <none>
2025-07-01 14:32:20,414 [DEBUG][       Thread-607668][   transport.py][1871] : kex follows: False
2025-07-01 14:32:20,414 [DEBUG][       Thread-607668][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:32:20,414 [DEBUG][       Thread-607668][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:32:20,414 [DEBUG][       Thread-607668][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:32:20,414 [DEBUG][       Thread-607668][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:32:20,414 [DEBUG][       Thread-607668][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:32:20,414 [DEBUG][       Thread-607668][   transport.py][1871] : Compression: none
2025-07-01 14:32:20,414 [DEBUG][       Thread-607668][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:32:20,472 [DEBUG][       Thread-607668][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:32:20,473 [DEBUG][       Thread-607668][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:32:20,473 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:32:20,474 [DEBUG][       Thread-607668][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:32:20,475 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:32:20,528 [DEBUG][       Thread-607668][   transport.py][1871] : userauth is OK
2025-07-01 14:32:20,529 [DEBUG][       Thread-607668][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:32:20,529 [DEBUG][       Thread-607668][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:32:20,529 [DEBUG][       Thread-607668][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:32:20,529 [DEBUG][       Thread-607668][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:32:20,548 [ INFO][       Thread-607668][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:32:20,549 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:32:20,549 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:32:21,552 [DEBUG][       Thread-607668][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:32:21,552 [DEBUG][       Thread-607668][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:32:21,600 [DEBUG][       Thread-607668][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:32:21,600 [DEBUG][       Thread-607668][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:32:21,609 [DEBUG][       Thread-607668][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:32:21,618 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:32:21,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-07-01 14:32:21,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-07-01 14:32:21,636 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:32:21,636 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:32:21,637 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:32:21,645 [DEBUG][       Thread-607668][   transport.py][1871] : EOF in transport thread
2025-07-01 14:32:23,285 [DEBUG][Thread-607670 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:32:31,646 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:32:31,646 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:32:31,647 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:32:31,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-07-01 14:32:32,159 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 31, 59), 10.97, 47.53, 0.0, 30.35, 13.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:32:32,159 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:31:59
2025-07-01 14:32:32,250 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:32:32,257 [DEBUG][       Thread-607671][   transport.py][1871] : starting thread (client mode): 0x81a4760
2025-07-01 14:32:32,257 [DEBUG][       Thread-607671][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:32:32,277 [DEBUG][       Thread-607671][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:32:32,277 [ INFO][       Thread-607671][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:32:32,281 [DEBUG][       Thread-607671][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:32:32,281 [DEBUG][       Thread-607671][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:32:32,281 [DEBUG][       Thread-607671][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:32:32,281 [DEBUG][       Thread-607671][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:32:32,281 [DEBUG][       Thread-607671][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:32:32,281 [DEBUG][       Thread-607671][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:32:32,281 [DEBUG][       Thread-607671][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:32:32,281 [DEBUG][       Thread-607671][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:32:32,281 [DEBUG][       Thread-607671][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:32:32,281 [DEBUG][       Thread-607671][   transport.py][1871] : client lang: <none>
2025-07-01 14:32:32,281 [DEBUG][       Thread-607671][   transport.py][1871] : server lang: <none>
2025-07-01 14:32:32,281 [DEBUG][       Thread-607671][   transport.py][1871] : kex follows: False
2025-07-01 14:32:32,281 [DEBUG][       Thread-607671][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:32:32,281 [DEBUG][       Thread-607671][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:32:32,281 [DEBUG][       Thread-607671][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:32:32,281 [DEBUG][       Thread-607671][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:32:32,281 [DEBUG][       Thread-607671][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:32:32,281 [DEBUG][       Thread-607671][   transport.py][1871] : Compression: none
2025-07-01 14:32:32,281 [DEBUG][       Thread-607671][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:32:32,297 [DEBUG][       Thread-607671][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:32:32,297 [DEBUG][       Thread-607671][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:32:32,297 [DEBUG][       Thread-607671][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:32:32,298 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:32:32,298 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:32:32,298 [DEBUG][       Thread-607671][   transport.py][1871] : userauth is OK
2025-07-01 14:32:32,307 [DEBUG][Thread-607673 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:32:32,311 [ INFO][       Thread-607671][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:32:32,311 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:32:32,952 [DEBUG][       Thread-607671][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:32:32,952 [DEBUG][       Thread-607671][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:32:32,996 [DEBUG][       Thread-607671][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:32:32,996 [DEBUG][       Thread-607671][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:32:32,999 [DEBUG][       Thread-607671][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:32:33,011 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:32:33,011 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:32:33,012 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:32:33,013 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:32:33,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:32:33,016 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:32:33,016 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:32:33,016 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:32:33,016 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.522163 -999.00  +13.40  39.22     52   +3.80 1 2 2 1 1   887    0 8.84 -26.83 ----- 41.6 39.2 25.4 51.7 15.6 -20.9 15.1 -21.5 15.1 -19.9 15.7 -19.2
2025-07-01 14:32:33,016 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:32:33,016 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:32:33,016 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.522163
2025-07-01 14:32:33,016 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:32:33,016 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:32:33,016 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:32:33,016 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:32:33,016 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:32:33,016 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:31:59', tmtdew=10.97, humidity=47.53, cloud=0.0, wind=30.35, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:31:54.883', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:32:33,017 [DEBUG][       Thread-607671][   transport.py][1871] : EOF in transport thread
2025-07-01 14:32:33,091 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:32:33,103 [DEBUG][       Thread-607675][   transport.py][1871] : starting thread (client mode): 0x818f5e0
2025-07-01 14:32:33,103 [DEBUG][       Thread-607675][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:32:33,119 [DEBUG][       Thread-607675][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:32:33,119 [ INFO][       Thread-607675][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:32:33,126 [DEBUG][       Thread-607675][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:32:33,126 [DEBUG][       Thread-607675][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:32:33,126 [DEBUG][       Thread-607675][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:32:33,126 [DEBUG][       Thread-607675][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:32:33,126 [DEBUG][       Thread-607675][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:32:33,126 [DEBUG][       Thread-607675][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:32:33,126 [DEBUG][       Thread-607675][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:32:33,126 [DEBUG][       Thread-607675][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:32:33,126 [DEBUG][       Thread-607675][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:32:33,126 [DEBUG][       Thread-607675][   transport.py][1871] : client lang: <none>
2025-07-01 14:32:33,126 [DEBUG][       Thread-607675][   transport.py][1871] : server lang: <none>
2025-07-01 14:32:33,126 [DEBUG][       Thread-607675][   transport.py][1871] : kex follows: False
2025-07-01 14:32:33,126 [DEBUG][       Thread-607675][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:32:33,126 [DEBUG][       Thread-607675][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:32:33,126 [DEBUG][       Thread-607675][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:32:33,126 [DEBUG][       Thread-607675][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:32:33,126 [DEBUG][       Thread-607675][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:32:33,126 [DEBUG][       Thread-607675][   transport.py][1871] : Compression: none
2025-07-01 14:32:33,126 [DEBUG][       Thread-607675][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:32:33,184 [DEBUG][       Thread-607675][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:32:33,184 [DEBUG][       Thread-607675][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:32:33,184 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:32:33,184 [DEBUG][       Thread-607675][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:32:33,184 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:32:33,240 [DEBUG][       Thread-607675][   transport.py][1871] : userauth is OK
2025-07-01 14:32:33,240 [DEBUG][       Thread-607675][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:32:33,240 [DEBUG][       Thread-607675][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:32:33,240 [DEBUG][       Thread-607675][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:32:33,240 [DEBUG][       Thread-607675][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:32:33,258 [ INFO][       Thread-607675][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:32:33,258 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:32:33,258 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:32:34,297 [DEBUG][       Thread-607675][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:32:34,297 [DEBUG][       Thread-607675][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:32:34,348 [DEBUG][       Thread-607675][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:32:34,348 [DEBUG][       Thread-607675][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:32:34,358 [DEBUG][       Thread-607675][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:32:34,367 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:32:34,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-07-01 14:32:34,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-07-01 14:32:34,385 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:32:34,385 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:32:34,386 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:32:34,394 [DEBUG][       Thread-607675][   transport.py][1871] : EOF in transport thread
2025-07-01 14:32:35,150 [DEBUG][Thread-607677 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:32:41,327 [DEBUG][Thread-607678 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:32:44,396 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:32:44,396 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:32:44,396 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:32:44,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-07-01 14:32:44,883 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 32, 31), 10.97, 47.55, 0.0, 34.0, 13.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:32:44,883 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:32:31
2025-07-01 14:32:44,976 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:32:44,979 [DEBUG][       Thread-607679][   transport.py][1871] : starting thread (client mode): 0x81a74f0
2025-07-01 14:32:44,979 [DEBUG][       Thread-607679][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:32:45,000 [DEBUG][       Thread-607679][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:32:45,000 [ INFO][       Thread-607679][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:32:45,003 [DEBUG][       Thread-607679][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:32:45,003 [DEBUG][       Thread-607679][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:32:45,003 [DEBUG][       Thread-607679][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:32:45,003 [DEBUG][       Thread-607679][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:32:45,003 [DEBUG][       Thread-607679][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:32:45,003 [DEBUG][       Thread-607679][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:32:45,003 [DEBUG][       Thread-607679][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:32:45,003 [DEBUG][       Thread-607679][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:32:45,003 [DEBUG][       Thread-607679][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:32:45,003 [DEBUG][       Thread-607679][   transport.py][1871] : client lang: <none>
2025-07-01 14:32:45,003 [DEBUG][       Thread-607679][   transport.py][1871] : server lang: <none>
2025-07-01 14:32:45,003 [DEBUG][       Thread-607679][   transport.py][1871] : kex follows: False
2025-07-01 14:32:45,003 [DEBUG][       Thread-607679][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:32:45,003 [DEBUG][       Thread-607679][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:32:45,003 [DEBUG][       Thread-607679][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:32:45,003 [DEBUG][       Thread-607679][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:32:45,003 [DEBUG][       Thread-607679][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:32:45,003 [DEBUG][       Thread-607679][   transport.py][1871] : Compression: none
2025-07-01 14:32:45,003 [DEBUG][       Thread-607679][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:32:45,020 [DEBUG][       Thread-607679][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:32:45,021 [DEBUG][       Thread-607679][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:32:45,021 [DEBUG][       Thread-607679][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:32:45,021 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:32:45,021 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:32:45,064 [DEBUG][       Thread-607679][   transport.py][1871] : userauth is OK
2025-07-01 14:32:45,088 [ INFO][       Thread-607679][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:32:45,088 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:32:45,723 [DEBUG][       Thread-607679][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:32:45,724 [DEBUG][       Thread-607679][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:32:45,764 [DEBUG][       Thread-607679][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:32:45,764 [DEBUG][       Thread-607679][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:32:45,766 [DEBUG][       Thread-607679][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:32:45,778 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:32:45,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:32:45,779 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:32:45,780 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:32:45,783 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:32:45,784 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:32:45,784 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:32:45,784 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:32:45,784 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.522163 -999.00  +13.40  39.22     52   +3.80 1 2 2 1 1   887    0 8.84 -26.83 ----- 41.6 39.2 25.4 51.7 15.6 -20.9 15.1 -21.5 15.1 -19.9 15.7 -19.2
2025-07-01 14:32:45,784 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:32:45,784 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:32:45,784 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.522163
2025-07-01 14:32:45,784 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:32:45,784 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:32:45,784 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:32:45,784 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:32:45,784 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:32:45,784 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:32:31', tmtdew=10.97, humidity=47.55, cloud=0.0, wind=34.0, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:31:54.883', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:32:45,785 [DEBUG][       Thread-607679][   transport.py][1871] : EOF in transport thread
2025-07-01 14:32:45,858 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:32:45,867 [DEBUG][       Thread-607682][   transport.py][1871] : starting thread (client mode): 0x8a66980
2025-07-01 14:32:45,867 [DEBUG][       Thread-607682][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:32:45,882 [DEBUG][       Thread-607682][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:32:45,882 [ INFO][       Thread-607682][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:32:45,889 [DEBUG][       Thread-607682][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:32:45,889 [DEBUG][       Thread-607682][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:32:45,889 [DEBUG][       Thread-607682][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:32:45,889 [DEBUG][       Thread-607682][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:32:45,889 [DEBUG][       Thread-607682][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:32:45,889 [DEBUG][       Thread-607682][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:32:45,889 [DEBUG][       Thread-607682][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:32:45,889 [DEBUG][       Thread-607682][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:32:45,889 [DEBUG][       Thread-607682][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:32:45,889 [DEBUG][       Thread-607682][   transport.py][1871] : client lang: <none>
2025-07-01 14:32:45,889 [DEBUG][       Thread-607682][   transport.py][1871] : server lang: <none>
2025-07-01 14:32:45,889 [DEBUG][       Thread-607682][   transport.py][1871] : kex follows: False
2025-07-01 14:32:45,889 [DEBUG][       Thread-607682][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:32:45,889 [DEBUG][       Thread-607682][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:32:45,889 [DEBUG][       Thread-607682][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:32:45,889 [DEBUG][       Thread-607682][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:32:45,889 [DEBUG][       Thread-607682][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:32:45,889 [DEBUG][       Thread-607682][   transport.py][1871] : Compression: none
2025-07-01 14:32:45,889 [DEBUG][       Thread-607682][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:32:45,947 [DEBUG][       Thread-607682][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:32:45,947 [DEBUG][       Thread-607682][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:32:45,948 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:32:45,948 [DEBUG][       Thread-607682][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:32:45,948 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:32:46,004 [DEBUG][       Thread-607682][   transport.py][1871] : userauth is OK
2025-07-01 14:32:46,004 [DEBUG][       Thread-607682][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:32:46,004 [DEBUG][       Thread-607682][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:32:46,004 [DEBUG][       Thread-607682][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:32:46,004 [DEBUG][       Thread-607682][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:32:46,022 [ INFO][       Thread-607682][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:32:46,022 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:32:46,022 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:32:47,110 [DEBUG][       Thread-607682][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:32:47,110 [DEBUG][       Thread-607682][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:32:47,159 [DEBUG][       Thread-607682][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:32:47,159 [DEBUG][       Thread-607682][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:32:47,168 [DEBUG][       Thread-607682][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:32:47,177 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:32:47,177 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 14:32:47,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') -> 00000000
2025-07-01 14:32:47,197 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:32:47,197 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:32:47,197 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:32:47,209 [DEBUG][       Thread-607682][   transport.py][1871] : EOF in transport thread
2025-07-01 14:32:50,347 [DEBUG][Thread-607684 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:32:57,207 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:32:57,207 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:32:57,207 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:32:57,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-07-01 14:32:57,698 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 32, 31), 10.97, 47.55, 0.0, 34.0, 13.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:32:57,699 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:32:31
2025-07-01 14:32:57,784 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:32:57,790 [DEBUG][       Thread-607685][   transport.py][1871] : starting thread (client mode): 0x81a7c40
2025-07-01 14:32:57,790 [DEBUG][       Thread-607685][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:32:57,809 [DEBUG][       Thread-607685][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:32:57,809 [ INFO][       Thread-607685][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:32:57,812 [DEBUG][       Thread-607685][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:32:57,812 [DEBUG][       Thread-607685][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:32:57,812 [DEBUG][       Thread-607685][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:32:57,812 [DEBUG][       Thread-607685][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:32:57,812 [DEBUG][       Thread-607685][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:32:57,812 [DEBUG][       Thread-607685][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:32:57,812 [DEBUG][       Thread-607685][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:32:57,812 [DEBUG][       Thread-607685][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:32:57,812 [DEBUG][       Thread-607685][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:32:57,812 [DEBUG][       Thread-607685][   transport.py][1871] : client lang: <none>
2025-07-01 14:32:57,812 [DEBUG][       Thread-607685][   transport.py][1871] : server lang: <none>
2025-07-01 14:32:57,812 [DEBUG][       Thread-607685][   transport.py][1871] : kex follows: False
2025-07-01 14:32:57,812 [DEBUG][       Thread-607685][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:32:57,812 [DEBUG][       Thread-607685][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:32:57,812 [DEBUG][       Thread-607685][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:32:57,812 [DEBUG][       Thread-607685][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:32:57,812 [DEBUG][       Thread-607685][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:32:57,812 [DEBUG][       Thread-607685][   transport.py][1871] : Compression: none
2025-07-01 14:32:57,812 [DEBUG][       Thread-607685][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:32:57,828 [DEBUG][       Thread-607685][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:32:57,829 [DEBUG][       Thread-607685][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:32:57,829 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:32:57,829 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:32:57,830 [DEBUG][       Thread-607685][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:32:57,830 [DEBUG][       Thread-607685][   transport.py][1871] : userauth is OK
2025-07-01 14:32:57,843 [ INFO][       Thread-607685][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:32:57,844 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:32:58,492 [DEBUG][       Thread-607685][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:32:58,493 [DEBUG][       Thread-607685][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:32:58,537 [DEBUG][       Thread-607685][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:32:58,537 [DEBUG][       Thread-607685][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:32:58,540 [DEBUG][       Thread-607685][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:32:58,552 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:32:58,553 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:32:58,555 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:32:58,557 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:32:58,562 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:32:58,564 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:32:58,564 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:32:58,565 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:32:58,565 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.522510 -999.00  +13.30  48.01     52   +3.90 1 2 2 1 1   887    0 8.84 -25.49 ----- 34.2 48.0 13.4 58.4 15.6 -20.9 15.0 -21.3 15.1 -20.4 15.6 -20.3
2025-07-01 14:32:58,565 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:32:58,565 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:32:58,565 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.522510
2025-07-01 14:32:58,565 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:32:58,566 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:32:58,566 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:32:58,566 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:32:58,566 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:32:58,566 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:32:31', tmtdew=10.97, humidity=47.55, cloud=0.0, wind=34.0, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:32:24.864', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:32:58,567 [DEBUG][       Thread-607685][   transport.py][1871] : EOF in transport thread
2025-07-01 14:32:58,652 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:32:58,664 [DEBUG][       Thread-607688][   transport.py][1871] : starting thread (client mode): 0x82b3670
2025-07-01 14:32:58,664 [DEBUG][       Thread-607688][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:32:58,680 [DEBUG][       Thread-607688][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:32:58,680 [ INFO][       Thread-607688][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:32:58,688 [DEBUG][       Thread-607688][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:32:58,688 [DEBUG][       Thread-607688][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:32:58,688 [DEBUG][       Thread-607688][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:32:58,688 [DEBUG][       Thread-607688][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:32:58,688 [DEBUG][       Thread-607688][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:32:58,688 [DEBUG][       Thread-607688][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:32:58,688 [DEBUG][       Thread-607688][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:32:58,688 [DEBUG][       Thread-607688][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:32:58,688 [DEBUG][       Thread-607688][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:32:58,688 [DEBUG][       Thread-607688][   transport.py][1871] : client lang: <none>
2025-07-01 14:32:58,688 [DEBUG][       Thread-607688][   transport.py][1871] : server lang: <none>
2025-07-01 14:32:58,688 [DEBUG][       Thread-607688][   transport.py][1871] : kex follows: False
2025-07-01 14:32:58,688 [DEBUG][       Thread-607688][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:32:58,688 [DEBUG][       Thread-607688][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:32:58,689 [DEBUG][       Thread-607688][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:32:58,689 [DEBUG][       Thread-607688][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:32:58,689 [DEBUG][       Thread-607688][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:32:58,689 [DEBUG][       Thread-607688][   transport.py][1871] : Compression: none
2025-07-01 14:32:58,689 [DEBUG][       Thread-607688][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:32:58,746 [DEBUG][       Thread-607688][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:32:58,746 [DEBUG][       Thread-607688][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:32:58,747 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:32:58,747 [DEBUG][       Thread-607688][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:32:58,748 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:32:58,810 [DEBUG][       Thread-607688][   transport.py][1871] : userauth is OK
2025-07-01 14:32:58,810 [DEBUG][       Thread-607688][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:32:58,810 [DEBUG][       Thread-607688][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:32:58,810 [DEBUG][       Thread-607688][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:32:58,810 [DEBUG][       Thread-607688][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:32:58,829 [ INFO][       Thread-607688][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:32:58,829 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:32:58,829 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:32:59,374 [DEBUG][Thread-607690 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:32:59,833 [DEBUG][       Thread-607688][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:32:59,833 [DEBUG][       Thread-607688][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:32:59,884 [DEBUG][       Thread-607688][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:32:59,884 [DEBUG][       Thread-607688][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:32:59,893 [DEBUG][       Thread-607688][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:32:59,902 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:32:59,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-07-01 14:32:59,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-07-01 14:32:59,920 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:32:59,921 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:32:59,921 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:32:59,929 [DEBUG][       Thread-607688][   transport.py][1871] : EOF in transport thread
2025-07-01 14:33:08,396 [DEBUG][Thread-607691 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:33:09,926 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:33:09,927 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:33:09,927 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:33:09,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-07-01 14:33:10,410 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 33, 2), 10.99, 47.47, 0.0, 39.08, 13.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:33:10,410 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:33:02
2025-07-01 14:33:10,496 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:33:10,500 [DEBUG][       Thread-607692][   transport.py][1871] : starting thread (client mode): 0x81040d0
2025-07-01 14:33:10,500 [DEBUG][       Thread-607692][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:33:10,520 [DEBUG][       Thread-607692][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:33:10,520 [ INFO][       Thread-607692][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:33:10,522 [DEBUG][       Thread-607692][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:33:10,522 [DEBUG][       Thread-607692][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:33:10,522 [DEBUG][       Thread-607692][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:33:10,522 [DEBUG][       Thread-607692][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:33:10,523 [DEBUG][       Thread-607692][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:33:10,523 [DEBUG][       Thread-607692][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:33:10,523 [DEBUG][       Thread-607692][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:33:10,523 [DEBUG][       Thread-607692][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:33:10,523 [DEBUG][       Thread-607692][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:33:10,523 [DEBUG][       Thread-607692][   transport.py][1871] : client lang: <none>
2025-07-01 14:33:10,523 [DEBUG][       Thread-607692][   transport.py][1871] : server lang: <none>
2025-07-01 14:33:10,523 [DEBUG][       Thread-607692][   transport.py][1871] : kex follows: False
2025-07-01 14:33:10,523 [DEBUG][       Thread-607692][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:33:10,523 [DEBUG][       Thread-607692][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:33:10,523 [DEBUG][       Thread-607692][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:33:10,523 [DEBUG][       Thread-607692][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:33:10,523 [DEBUG][       Thread-607692][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:33:10,523 [DEBUG][       Thread-607692][   transport.py][1871] : Compression: none
2025-07-01 14:33:10,523 [DEBUG][       Thread-607692][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:33:10,539 [DEBUG][       Thread-607692][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:33:10,540 [DEBUG][       Thread-607692][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:33:10,540 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:33:10,541 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:33:10,541 [DEBUG][       Thread-607692][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:33:10,542 [DEBUG][       Thread-607692][   transport.py][1871] : userauth is OK
2025-07-01 14:33:10,555 [ INFO][       Thread-607692][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:33:10,555 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:33:11,244 [DEBUG][       Thread-607692][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:33:11,245 [DEBUG][       Thread-607692][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:33:11,289 [DEBUG][       Thread-607692][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:33:11,289 [DEBUG][       Thread-607692][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:33:11,292 [DEBUG][       Thread-607692][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:33:11,307 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:33:11,308 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:33:11,310 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:33:11,312 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:33:11,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:33:11,319 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:33:11,319 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:33:11,320 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:33:11,320 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.522510 -999.00  +13.30  48.01     52   +3.90 1 2 2 1 1   887    0 8.84 -25.49 ----- 34.2 48.0 13.4 58.4 15.6 -20.9 15.0 -21.3 15.1 -20.4 15.6 -20.3
2025-07-01 14:33:11,320 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:33:11,320 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:33:11,320 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.522510
2025-07-01 14:33:11,321 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:33:11,322 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:33:11,322 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:33:11,322 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:33:11,322 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:33:11,322 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:33:02', tmtdew=10.99, humidity=47.47, cloud=0.0, wind=39.08, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:32:24.864', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:33:11,322 [DEBUG][       Thread-607692][   transport.py][1871] : EOF in transport thread
2025-07-01 14:33:11,406 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:33:11,416 [DEBUG][       Thread-607695][   transport.py][1871] : starting thread (client mode): 0x81db640
2025-07-01 14:33:11,416 [DEBUG][       Thread-607695][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:33:11,432 [DEBUG][       Thread-607695][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:33:11,432 [ INFO][       Thread-607695][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:33:11,439 [DEBUG][       Thread-607695][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:33:11,440 [DEBUG][       Thread-607695][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:33:11,440 [DEBUG][       Thread-607695][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:33:11,440 [DEBUG][       Thread-607695][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:33:11,440 [DEBUG][       Thread-607695][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:33:11,440 [DEBUG][       Thread-607695][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:33:11,440 [DEBUG][       Thread-607695][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:33:11,440 [DEBUG][       Thread-607695][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:33:11,440 [DEBUG][       Thread-607695][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:33:11,440 [DEBUG][       Thread-607695][   transport.py][1871] : client lang: <none>
2025-07-01 14:33:11,440 [DEBUG][       Thread-607695][   transport.py][1871] : server lang: <none>
2025-07-01 14:33:11,440 [DEBUG][       Thread-607695][   transport.py][1871] : kex follows: False
2025-07-01 14:33:11,440 [DEBUG][       Thread-607695][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:33:11,440 [DEBUG][       Thread-607695][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:33:11,440 [DEBUG][       Thread-607695][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:33:11,440 [DEBUG][       Thread-607695][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:33:11,440 [DEBUG][       Thread-607695][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:33:11,440 [DEBUG][       Thread-607695][   transport.py][1871] : Compression: none
2025-07-01 14:33:11,440 [DEBUG][       Thread-607695][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:33:11,499 [DEBUG][       Thread-607695][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:33:11,500 [DEBUG][       Thread-607695][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:33:11,500 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:33:11,501 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:33:11,502 [DEBUG][       Thread-607695][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:33:11,560 [DEBUG][       Thread-607695][   transport.py][1871] : userauth is OK
2025-07-01 14:33:11,560 [DEBUG][       Thread-607695][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:33:11,561 [DEBUG][       Thread-607695][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:33:11,561 [DEBUG][       Thread-607695][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:33:11,561 [DEBUG][       Thread-607695][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:33:11,579 [ INFO][       Thread-607695][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:33:11,579 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:33:11,580 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:33:12,620 [DEBUG][       Thread-607695][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:33:12,620 [DEBUG][       Thread-607695][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:33:12,673 [DEBUG][       Thread-607695][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:33:12,673 [DEBUG][       Thread-607695][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:33:12,682 [DEBUG][       Thread-607695][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:33:12,691 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:33: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-07-01 14:33:12,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-07-01 14:33:12,709 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:33:12,709 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:33:12,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:33:12,717 [DEBUG][       Thread-607695][   transport.py][1871] : EOF in transport thread
2025-07-01 14:33:17,418 [DEBUG][Thread-607697 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:33:22,720 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:33:22,720 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:33:22,720 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:33:22,721 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:33:23,225 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 33, 2), 10.99, 47.47, 0.0, 39.08, 13.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:33:23,225 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:33:02
2025-07-01 14:33:23,318 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:33:23,324 [DEBUG][       Thread-607698][   transport.py][1871] : starting thread (client mode): 0x81c90f0
2025-07-01 14:33:23,324 [DEBUG][       Thread-607698][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:33:23,344 [DEBUG][       Thread-607698][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:33:23,344 [ INFO][       Thread-607698][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:33:23,347 [DEBUG][       Thread-607698][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:33:23,347 [DEBUG][       Thread-607698][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:33:23,347 [DEBUG][       Thread-607698][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:33:23,347 [DEBUG][       Thread-607698][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:33:23,347 [DEBUG][       Thread-607698][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:33:23,347 [DEBUG][       Thread-607698][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:33:23,347 [DEBUG][       Thread-607698][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:33:23,347 [DEBUG][       Thread-607698][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:33:23,347 [DEBUG][       Thread-607698][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:33:23,347 [DEBUG][       Thread-607698][   transport.py][1871] : client lang: <none>
2025-07-01 14:33:23,347 [DEBUG][       Thread-607698][   transport.py][1871] : server lang: <none>
2025-07-01 14:33:23,347 [DEBUG][       Thread-607698][   transport.py][1871] : kex follows: False
2025-07-01 14:33:23,347 [DEBUG][       Thread-607698][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:33:23,347 [DEBUG][       Thread-607698][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:33:23,347 [DEBUG][       Thread-607698][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:33:23,347 [DEBUG][       Thread-607698][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:33:23,348 [DEBUG][       Thread-607698][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:33:23,348 [DEBUG][       Thread-607698][   transport.py][1871] : Compression: none
2025-07-01 14:33:23,348 [DEBUG][       Thread-607698][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:33:23,362 [DEBUG][       Thread-607698][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:33:23,362 [DEBUG][       Thread-607698][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:33:23,362 [DEBUG][       Thread-607698][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:33:23,362 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:33:23,362 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:33:23,363 [DEBUG][       Thread-607698][   transport.py][1871] : userauth is OK
2025-07-01 14:33:23,375 [ INFO][       Thread-607698][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:33:23,375 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:33:24,078 [DEBUG][       Thread-607698][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:33:24,078 [DEBUG][       Thread-607698][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:33:24,120 [DEBUG][       Thread-607698][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:33:24,120 [DEBUG][       Thread-607698][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:33:24,124 [DEBUG][       Thread-607698][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:33:24,134 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:33:24,134 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:33:24,135 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:33:24,136 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:33:24,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:33:24,140 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:33:24,140 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:33:24,140 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:33:24,141 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.522857 -999.00  +13.40  38.20     53   +4.00 1 2 2 1 1   887    0 9.08 -24.96 ----- 37.8 38.2 26.0 52.2 15.6 -20.3 14.9 -21.3 15.1 -19.0 15.6 -19.1
2025-07-01 14:33:24,141 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:33:24,141 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:33:24,141 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.522857
2025-07-01 14:33:24,141 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:33:24,141 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:33:24,141 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:33:24,141 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:33:24,141 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:33:24,141 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:33:02', tmtdew=10.99, humidity=47.47, cloud=0.0, wind=39.08, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:32:54.845', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:33:24,141 [DEBUG][       Thread-607698][   transport.py][1871] : EOF in transport thread
2025-07-01 14:33:24,216 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:33:24,225 [DEBUG][       Thread-607701][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 14:33:24,225 [DEBUG][       Thread-607701][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:33:24,239 [DEBUG][       Thread-607701][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:33:24,239 [ INFO][       Thread-607701][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:33:24,247 [DEBUG][       Thread-607701][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:33:24,247 [DEBUG][       Thread-607701][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:33:24,247 [DEBUG][       Thread-607701][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:33:24,247 [DEBUG][       Thread-607701][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:33:24,247 [DEBUG][       Thread-607701][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:33:24,247 [DEBUG][       Thread-607701][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:33:24,247 [DEBUG][       Thread-607701][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:33:24,247 [DEBUG][       Thread-607701][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:33:24,247 [DEBUG][       Thread-607701][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:33:24,247 [DEBUG][       Thread-607701][   transport.py][1871] : client lang: <none>
2025-07-01 14:33:24,247 [DEBUG][       Thread-607701][   transport.py][1871] : server lang: <none>
2025-07-01 14:33:24,247 [DEBUG][       Thread-607701][   transport.py][1871] : kex follows: False
2025-07-01 14:33:24,247 [DEBUG][       Thread-607701][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:33:24,247 [DEBUG][       Thread-607701][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:33:24,247 [DEBUG][       Thread-607701][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:33:24,247 [DEBUG][       Thread-607701][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:33:24,247 [DEBUG][       Thread-607701][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:33:24,247 [DEBUG][       Thread-607701][   transport.py][1871] : Compression: none
2025-07-01 14:33:24,247 [DEBUG][       Thread-607701][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:33:24,306 [DEBUG][       Thread-607701][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:33:24,307 [DEBUG][       Thread-607701][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:33:24,307 [DEBUG][       Thread-607701][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:33:24,307 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:33:24,307 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:33:24,362 [DEBUG][       Thread-607701][   transport.py][1871] : userauth is OK
2025-07-01 14:33:24,363 [DEBUG][       Thread-607701][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:33:24,363 [DEBUG][       Thread-607701][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:33:24,363 [DEBUG][       Thread-607701][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:33:24,363 [DEBUG][       Thread-607701][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:33:24,376 [ INFO][       Thread-607701][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:33:24,377 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:33:24,377 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:33:25,409 [DEBUG][       Thread-607701][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:33:25,409 [DEBUG][       Thread-607701][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:33:25,459 [DEBUG][       Thread-607701][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:33:25,459 [DEBUG][       Thread-607701][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:33:25,468 [DEBUG][       Thread-607701][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:33:25,475 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:33:25,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-07-01 14:33:25,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-07-01 14:33:25,491 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:33:25,491 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:33:25,491 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:33:25,499 [DEBUG][       Thread-607701][   transport.py][1871] : EOF in transport thread
2025-07-01 14:33:26,450 [DEBUG][Thread-607703 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:33:35,181 [DEBUG][Thread-607704 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:33:35,471 [DEBUG][Thread-607705 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:33:35,500 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:33:35,500 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:33:35,500 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:33:35,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-07-01 14:33:36,039 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 33, 2), 10.99, 47.47, 0.0, 39.08, 13.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:33:36,039 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:33:02
2025-07-01 14:33:36,131 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:33:36,136 [DEBUG][       Thread-607706][   transport.py][1871] : starting thread (client mode): 0x75a9a80
2025-07-01 14:33:36,136 [DEBUG][       Thread-607706][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:33:36,157 [DEBUG][       Thread-607706][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:33:36,157 [ INFO][       Thread-607706][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:33:36,161 [DEBUG][       Thread-607706][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:33:36,161 [DEBUG][       Thread-607706][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:33:36,161 [DEBUG][       Thread-607706][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:33:36,161 [DEBUG][       Thread-607706][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:33:36,161 [DEBUG][       Thread-607706][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:33:36,161 [DEBUG][       Thread-607706][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:33:36,161 [DEBUG][       Thread-607706][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:33:36,161 [DEBUG][       Thread-607706][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:33:36,161 [DEBUG][       Thread-607706][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:33:36,161 [DEBUG][       Thread-607706][   transport.py][1871] : client lang: <none>
2025-07-01 14:33:36,161 [DEBUG][       Thread-607706][   transport.py][1871] : server lang: <none>
2025-07-01 14:33:36,161 [DEBUG][       Thread-607706][   transport.py][1871] : kex follows: False
2025-07-01 14:33:36,161 [DEBUG][       Thread-607706][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:33:36,161 [DEBUG][       Thread-607706][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:33:36,161 [DEBUG][       Thread-607706][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:33:36,161 [DEBUG][       Thread-607706][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:33:36,161 [DEBUG][       Thread-607706][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:33:36,161 [DEBUG][       Thread-607706][   transport.py][1871] : Compression: none
2025-07-01 14:33:36,161 [DEBUG][       Thread-607706][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:33:36,177 [DEBUG][       Thread-607706][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:33:36,177 [DEBUG][       Thread-607706][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:33:36,178 [DEBUG][       Thread-607706][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:33:36,178 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:33:36,178 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:33:36,178 [DEBUG][       Thread-607706][   transport.py][1871] : userauth is OK
2025-07-01 14:33:36,203 [ INFO][       Thread-607706][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:33:36,203 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:33:36,870 [DEBUG][       Thread-607706][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:33:36,870 [DEBUG][       Thread-607706][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:33:36,912 [DEBUG][       Thread-607706][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:33:36,912 [DEBUG][       Thread-607706][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:33:36,915 [DEBUG][       Thread-607706][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:33:36,927 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:33:36,927 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:33:36,928 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:33:36,929 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:33:36,932 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:33:36,932 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:33:36,932 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:33:36,932 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:33:36,932 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.522857 -999.00  +13.40  38.20     53   +4.00 1 2 2 1 1   887    0 9.08 -24.96 ----- 37.8 38.2 26.0 52.2 15.6 -20.3 14.9 -21.3 15.1 -19.0 15.6 -19.1
2025-07-01 14:33:36,932 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:33:36,932 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:33:36,932 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.522857
2025-07-01 14:33:36,933 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:33:36,933 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:33:36,933 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:33:36,933 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:33:36,933 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:33:36,933 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:33:02', tmtdew=10.99, humidity=47.47, cloud=0.0, wind=39.08, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:32:54.845', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:33:36,933 [DEBUG][       Thread-607706][   transport.py][1871] : EOF in transport thread
2025-07-01 14:33:37,007 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:33:37,026 [DEBUG][       Thread-607709][   transport.py][1871] : starting thread (client mode): 0x81da380
2025-07-01 14:33:37,026 [DEBUG][       Thread-607709][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:33:37,040 [DEBUG][       Thread-607709][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:33:37,041 [ INFO][       Thread-607709][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:33:37,048 [DEBUG][       Thread-607709][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:33:37,048 [DEBUG][       Thread-607709][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:33:37,048 [DEBUG][       Thread-607709][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:33:37,048 [DEBUG][       Thread-607709][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:33:37,048 [DEBUG][       Thread-607709][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:33:37,048 [DEBUG][       Thread-607709][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:33:37,048 [DEBUG][       Thread-607709][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:33:37,048 [DEBUG][       Thread-607709][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:33:37,048 [DEBUG][       Thread-607709][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:33:37,048 [DEBUG][       Thread-607709][   transport.py][1871] : client lang: <none>
2025-07-01 14:33:37,048 [DEBUG][       Thread-607709][   transport.py][1871] : server lang: <none>
2025-07-01 14:33:37,048 [DEBUG][       Thread-607709][   transport.py][1871] : kex follows: False
2025-07-01 14:33:37,048 [DEBUG][       Thread-607709][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:33:37,048 [DEBUG][       Thread-607709][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:33:37,048 [DEBUG][       Thread-607709][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:33:37,048 [DEBUG][       Thread-607709][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:33:37,048 [DEBUG][       Thread-607709][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:33:37,048 [DEBUG][       Thread-607709][   transport.py][1871] : Compression: none
2025-07-01 14:33:37,048 [DEBUG][       Thread-607709][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:33:37,110 [DEBUG][       Thread-607709][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:33:37,110 [DEBUG][       Thread-607709][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:33:37,110 [DEBUG][       Thread-607709][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:33:37,110 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:33:37,110 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:33:37,169 [DEBUG][       Thread-607709][   transport.py][1871] : userauth is OK
2025-07-01 14:33:37,169 [DEBUG][       Thread-607709][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:33:37,169 [DEBUG][       Thread-607709][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:33:37,169 [DEBUG][       Thread-607709][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:33:37,169 [DEBUG][       Thread-607709][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:33:37,188 [ INFO][       Thread-607709][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:33:37,189 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:33:37,189 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:33:38,211 [DEBUG][       Thread-607709][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:33:38,212 [DEBUG][       Thread-607709][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:33:38,260 [DEBUG][       Thread-607709][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:33:38,260 [DEBUG][       Thread-607709][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:33:38,269 [DEBUG][       Thread-607709][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:33:38,278 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:33:38,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')
2025-07-01 14:33:38,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') -> 00000000
2025-07-01 14:33:38,296 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:33:38,296 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:33:38,297 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:33:38,309 [DEBUG][       Thread-607709][   transport.py][1871] : EOF in transport thread
2025-07-01 14:33:44,492 [DEBUG][Thread-607711 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:33:48,307 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:33:48,308 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:33:48,308 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:33:48,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-07-01 14:33:48,799 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 33, 34), 10.97, 47.43, 0.0, 30.15, 13.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:33:48,799 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:33:34
2025-07-01 14:33:48,886 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:33:48,890 [DEBUG][       Thread-607712][   transport.py][1871] : starting thread (client mode): 0x81e6ec0
2025-07-01 14:33:48,890 [DEBUG][       Thread-607712][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:33:48,909 [DEBUG][       Thread-607712][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:33:48,909 [ INFO][       Thread-607712][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:33:48,912 [DEBUG][       Thread-607712][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:33:48,912 [DEBUG][       Thread-607712][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:33:48,912 [DEBUG][       Thread-607712][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:33:48,913 [DEBUG][       Thread-607712][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:33:48,913 [DEBUG][       Thread-607712][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:33:48,913 [DEBUG][       Thread-607712][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:33:48,913 [DEBUG][       Thread-607712][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:33:48,913 [DEBUG][       Thread-607712][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:33:48,913 [DEBUG][       Thread-607712][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:33:48,913 [DEBUG][       Thread-607712][   transport.py][1871] : client lang: <none>
2025-07-01 14:33:48,913 [DEBUG][       Thread-607712][   transport.py][1871] : server lang: <none>
2025-07-01 14:33:48,913 [DEBUG][       Thread-607712][   transport.py][1871] : kex follows: False
2025-07-01 14:33:48,913 [DEBUG][       Thread-607712][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:33:48,913 [DEBUG][       Thread-607712][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:33:48,913 [DEBUG][       Thread-607712][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:33:48,913 [DEBUG][       Thread-607712][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:33:48,913 [DEBUG][       Thread-607712][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:33:48,913 [DEBUG][       Thread-607712][   transport.py][1871] : Compression: none
2025-07-01 14:33:48,913 [DEBUG][       Thread-607712][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:33:48,928 [DEBUG][       Thread-607712][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:33:48,928 [DEBUG][       Thread-607712][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:33:48,929 [DEBUG][       Thread-607712][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:33:48,929 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:33:48,929 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:33:48,930 [DEBUG][       Thread-607712][   transport.py][1871] : userauth is OK
2025-07-01 14:33:48,955 [ INFO][       Thread-607712][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:33:48,955 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:33:49,562 [DEBUG][       Thread-607712][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:33:49,562 [DEBUG][       Thread-607712][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:33:49,605 [DEBUG][       Thread-607712][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:33:49,605 [DEBUG][       Thread-607712][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:33:49,608 [DEBUG][       Thread-607712][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:33:49,619 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:33:49,619 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:33:49,621 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:33:49,623 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:33:49,630 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:33:49,632 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:33:49,632 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:33:49,633 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:33:49,633 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.522857 -999.00  +13.40  38.20     53   +4.00 1 2 2 1 1   887    0 9.08 -24.96 ----- 37.8 38.2 26.0 52.2 15.6 -20.3 14.9 -21.3 15.1 -19.0 15.6 -19.1
2025-07-01 14:33:49,633 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:33:49,633 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:33:49,633 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.522857
2025-07-01 14:33:49,633 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:33:49,634 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:33:49,634 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:33:49,634 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:33:49,634 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:33:49,634 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:33:34', tmtdew=10.97, humidity=47.43, cloud=0.0, wind=30.15, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:32:54.845', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:33:49,634 [DEBUG][       Thread-607712][   transport.py][1871] : EOF in transport thread
2025-07-01 14:33:49,718 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:33:49,730 [DEBUG][       Thread-607715][   transport.py][1871] : starting thread (client mode): 0x82b2aa0
2025-07-01 14:33:49,731 [DEBUG][       Thread-607715][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:33:49,750 [DEBUG][       Thread-607715][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:33:49,750 [ INFO][       Thread-607715][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:33:49,757 [DEBUG][       Thread-607715][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:33:49,757 [DEBUG][       Thread-607715][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:33:49,757 [DEBUG][       Thread-607715][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:33:49,757 [DEBUG][       Thread-607715][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:33:49,757 [DEBUG][       Thread-607715][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:33:49,758 [DEBUG][       Thread-607715][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:33:49,758 [DEBUG][       Thread-607715][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:33:49,758 [DEBUG][       Thread-607715][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:33:49,758 [DEBUG][       Thread-607715][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:33:49,758 [DEBUG][       Thread-607715][   transport.py][1871] : client lang: <none>
2025-07-01 14:33:49,758 [DEBUG][       Thread-607715][   transport.py][1871] : server lang: <none>
2025-07-01 14:33:49,758 [DEBUG][       Thread-607715][   transport.py][1871] : kex follows: False
2025-07-01 14:33:49,758 [DEBUG][       Thread-607715][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:33:49,758 [DEBUG][       Thread-607715][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:33:49,758 [DEBUG][       Thread-607715][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:33:49,758 [DEBUG][       Thread-607715][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:33:49,758 [DEBUG][       Thread-607715][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:33:49,758 [DEBUG][       Thread-607715][   transport.py][1871] : Compression: none
2025-07-01 14:33:49,758 [DEBUG][       Thread-607715][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:33:49,821 [DEBUG][       Thread-607715][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:33:49,822 [DEBUG][       Thread-607715][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:33:49,823 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:33:49,823 [DEBUG][       Thread-607715][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:33:49,824 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:33:49,880 [DEBUG][       Thread-607715][   transport.py][1871] : userauth is OK
2025-07-01 14:33:49,881 [DEBUG][       Thread-607715][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:33:49,881 [DEBUG][       Thread-607715][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:33:49,881 [DEBUG][       Thread-607715][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:33:49,881 [DEBUG][       Thread-607715][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:33:49,900 [ INFO][       Thread-607715][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:33:49,901 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:33:49,901 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:33:51,032 [DEBUG][       Thread-607715][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:33:51,033 [DEBUG][       Thread-607715][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:33:51,084 [DEBUG][       Thread-607715][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:33:51,084 [DEBUG][       Thread-607715][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:33:51,093 [DEBUG][       Thread-607715][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:33:51,102 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:33:51,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-07-01 14:33:51,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-07-01 14:33:51,121 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:33:51,121 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:33:51,121 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:33:51,129 [DEBUG][       Thread-607715][   transport.py][1871] : EOF in transport thread
2025-07-01 14:33:53,516 [DEBUG][Thread-607717 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:34:01,128 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:34:01,128 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:34:01,128 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:34:01,129 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:34:01,639 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 33, 34), 10.97, 47.43, 0.0, 30.15, 13.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:34:01,639 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:33:34
2025-07-01 14:34:01,731 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:34:01,735 [DEBUG][       Thread-607718][   transport.py][1871] : starting thread (client mode): 0x81e44c0
2025-07-01 14:34:01,735 [DEBUG][       Thread-607718][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:34:01,755 [DEBUG][       Thread-607718][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:34:01,755 [ INFO][       Thread-607718][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:34:01,758 [DEBUG][       Thread-607718][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:34:01,758 [DEBUG][       Thread-607718][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:34:01,758 [DEBUG][       Thread-607718][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:34:01,758 [DEBUG][       Thread-607718][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:34:01,758 [DEBUG][       Thread-607718][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:34:01,758 [DEBUG][       Thread-607718][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:34:01,758 [DEBUG][       Thread-607718][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:34:01,758 [DEBUG][       Thread-607718][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:34:01,758 [DEBUG][       Thread-607718][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:34:01,758 [DEBUG][       Thread-607718][   transport.py][1871] : client lang: <none>
2025-07-01 14:34:01,758 [DEBUG][       Thread-607718][   transport.py][1871] : server lang: <none>
2025-07-01 14:34:01,758 [DEBUG][       Thread-607718][   transport.py][1871] : kex follows: False
2025-07-01 14:34:01,758 [DEBUG][       Thread-607718][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:34:01,758 [DEBUG][       Thread-607718][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:34:01,758 [DEBUG][       Thread-607718][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:34:01,758 [DEBUG][       Thread-607718][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:34:01,758 [DEBUG][       Thread-607718][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:34:01,758 [DEBUG][       Thread-607718][   transport.py][1871] : Compression: none
2025-07-01 14:34:01,758 [DEBUG][       Thread-607718][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:34:01,773 [DEBUG][       Thread-607718][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:34:01,773 [DEBUG][       Thread-607718][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:34:01,774 [DEBUG][       Thread-607718][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:34:01,774 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:34:01,774 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:34:01,774 [DEBUG][       Thread-607718][   transport.py][1871] : userauth is OK
2025-07-01 14:34:01,798 [ INFO][       Thread-607718][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:34:01,798 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:34:02,408 [DEBUG][       Thread-607718][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:34:02,408 [DEBUG][       Thread-607718][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:34:02,452 [DEBUG][       Thread-607718][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:34:02,453 [DEBUG][       Thread-607718][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:34:02,455 [DEBUG][       Thread-607718][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:34:02,467 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:34:02,467 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:34:02,468 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:34:02,469 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:34:02,472 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:34:02,473 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:34:02,473 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:34:02,473 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:34:02,473 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.523205 -999.00  +13.50  34.18     52   +4.00 1 2 2 1 1   887    0 8.94 -24.09 ----- 30.7 34.2 15.0 47.8 15.6 -20.4 15.1 -20.7 15.2 -19.4 15.7 -19.7
2025-07-01 14:34:02,473 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:34:02,473 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:34:02,473 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.523205
2025-07-01 14:34:02,474 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:34:02,474 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:34:02,474 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:34:02,474 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:34:02,474 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:34:02,474 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:33:34', tmtdew=10.97, humidity=47.43, cloud=0.0, wind=30.15, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:33:24.912', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:34:02,475 [DEBUG][       Thread-607718][   transport.py][1871] : EOF in transport thread
2025-07-01 14:34:02,547 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:34:02,548 [DEBUG][Thread-607721 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:34:02,556 [DEBUG][       Thread-607722][   transport.py][1871] : starting thread (client mode): 0x827d5d0
2025-07-01 14:34:02,556 [DEBUG][       Thread-607722][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:34:02,571 [DEBUG][       Thread-607722][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:34:02,571 [ INFO][       Thread-607722][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:34:02,578 [DEBUG][       Thread-607722][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:34:02,578 [DEBUG][       Thread-607722][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:34:02,578 [DEBUG][       Thread-607722][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:34:02,578 [DEBUG][       Thread-607722][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:34:02,578 [DEBUG][       Thread-607722][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:34:02,578 [DEBUG][       Thread-607722][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:34:02,578 [DEBUG][       Thread-607722][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:34:02,578 [DEBUG][       Thread-607722][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:34:02,578 [DEBUG][       Thread-607722][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:34:02,578 [DEBUG][       Thread-607722][   transport.py][1871] : client lang: <none>
2025-07-01 14:34:02,578 [DEBUG][       Thread-607722][   transport.py][1871] : server lang: <none>
2025-07-01 14:34:02,578 [DEBUG][       Thread-607722][   transport.py][1871] : kex follows: False
2025-07-01 14:34:02,578 [DEBUG][       Thread-607722][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:34:02,578 [DEBUG][       Thread-607722][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:34:02,578 [DEBUG][       Thread-607722][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:34:02,578 [DEBUG][       Thread-607722][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:34:02,578 [DEBUG][       Thread-607722][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:34:02,578 [DEBUG][       Thread-607722][   transport.py][1871] : Compression: none
2025-07-01 14:34:02,578 [DEBUG][       Thread-607722][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:34:02,635 [DEBUG][       Thread-607722][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:34:02,635 [DEBUG][       Thread-607722][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:34:02,635 [DEBUG][       Thread-607722][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:34:02,635 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:34:02,635 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:34:02,692 [DEBUG][       Thread-607722][   transport.py][1871] : userauth is OK
2025-07-01 14:34:02,692 [DEBUG][       Thread-607722][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:34:02,692 [DEBUG][       Thread-607722][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:34:02,692 [DEBUG][       Thread-607722][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:34:02,692 [DEBUG][       Thread-607722][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:34:02,706 [ INFO][       Thread-607722][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:34:02,706 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:34:02,706 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:34:03,701 [DEBUG][       Thread-607722][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:34:03,701 [DEBUG][       Thread-607722][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:34:03,751 [DEBUG][       Thread-607722][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:34:03,751 [DEBUG][       Thread-607722][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:34:03,760 [DEBUG][       Thread-607722][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:34:03,768 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:34:03,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-07-01 14:34:03,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-07-01 14:34:03,784 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:34:03,784 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:34:03,784 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:34:03,791 [DEBUG][       Thread-607722][   transport.py][1871] : EOF in transport thread
2025-07-01 14:34:11,567 [DEBUG][Thread-607724 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:34:13,794 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:34:13,794 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:34:13,794 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:34:13,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-07-01 14:34:14,285 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 34, 6), 11.01, 47.3, 0.0, 37.42, 13.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:34:14,285 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:34:06
2025-07-01 14:34:14,372 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:34:14,376 [DEBUG][       Thread-607725][   transport.py][1871] : starting thread (client mode): 0x81c8940
2025-07-01 14:34:14,376 [DEBUG][       Thread-607725][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:34:14,396 [DEBUG][       Thread-607725][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:34:14,396 [ INFO][       Thread-607725][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:34:14,400 [DEBUG][       Thread-607725][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:34:14,400 [DEBUG][       Thread-607725][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:34:14,400 [DEBUG][       Thread-607725][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:34:14,400 [DEBUG][       Thread-607725][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:34:14,400 [DEBUG][       Thread-607725][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:34:14,400 [DEBUG][       Thread-607725][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:34:14,400 [DEBUG][       Thread-607725][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:34:14,400 [DEBUG][       Thread-607725][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:34:14,400 [DEBUG][       Thread-607725][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:34:14,400 [DEBUG][       Thread-607725][   transport.py][1871] : client lang: <none>
2025-07-01 14:34:14,400 [DEBUG][       Thread-607725][   transport.py][1871] : server lang: <none>
2025-07-01 14:34:14,400 [DEBUG][       Thread-607725][   transport.py][1871] : kex follows: False
2025-07-01 14:34:14,400 [DEBUG][       Thread-607725][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:34:14,400 [DEBUG][       Thread-607725][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:34:14,400 [DEBUG][       Thread-607725][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:34:14,400 [DEBUG][       Thread-607725][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:34:14,400 [DEBUG][       Thread-607725][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:34:14,400 [DEBUG][       Thread-607725][   transport.py][1871] : Compression: none
2025-07-01 14:34:14,400 [DEBUG][       Thread-607725][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:34:14,417 [DEBUG][       Thread-607725][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:34:14,417 [DEBUG][       Thread-607725][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:34:14,417 [DEBUG][       Thread-607725][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:34:14,417 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:34:14,417 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:34:14,418 [DEBUG][       Thread-607725][   transport.py][1871] : userauth is OK
2025-07-01 14:34:14,430 [ INFO][       Thread-607725][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:34:14,430 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:34:15,080 [DEBUG][       Thread-607725][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:34:15,081 [DEBUG][       Thread-607725][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:34:15,125 [DEBUG][       Thread-607725][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:34:15,125 [DEBUG][       Thread-607725][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:34:15,128 [DEBUG][       Thread-607725][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:34:15,141 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:34:15,141 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:34:15,144 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:34:15,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:34:15,152 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:34:15,153 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:34:15,154 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:34:15,154 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:34:15,154 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.523205 -999.00  +13.50  34.18     52   +4.00 1 2 2 1 1   887    0 8.94 -24.09 ----- 30.7 34.2 15.0 47.8 15.6 -20.4 15.1 -20.7 15.2 -19.4 15.7 -19.7
2025-07-01 14:34:15,154 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:34:15,155 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:34:15,155 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.523205
2025-07-01 14:34:15,155 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:34:15,156 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:34:15,156 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:34:15,156 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:34:15,156 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:34:15,156 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:34:06', tmtdew=11.01, humidity=47.3, cloud=0.0, wind=37.42, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:33:24.912', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:34:15,157 [DEBUG][       Thread-607725][   transport.py][1871] : EOF in transport thread
2025-07-01 14:34:15,241 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:34:15,252 [DEBUG][       Thread-607728][   transport.py][1871] : starting thread (client mode): 0x81078b0
2025-07-01 14:34:15,252 [DEBUG][       Thread-607728][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:34:15,266 [DEBUG][       Thread-607728][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:34:15,266 [ INFO][       Thread-607728][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:34:15,274 [DEBUG][       Thread-607728][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:34:15,274 [DEBUG][       Thread-607728][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:34:15,274 [DEBUG][       Thread-607728][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:34:15,274 [DEBUG][       Thread-607728][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:34:15,274 [DEBUG][       Thread-607728][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:34:15,274 [DEBUG][       Thread-607728][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:34:15,274 [DEBUG][       Thread-607728][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:34:15,274 [DEBUG][       Thread-607728][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:34:15,274 [DEBUG][       Thread-607728][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:34:15,274 [DEBUG][       Thread-607728][   transport.py][1871] : client lang: <none>
2025-07-01 14:34:15,274 [DEBUG][       Thread-607728][   transport.py][1871] : server lang: <none>
2025-07-01 14:34:15,274 [DEBUG][       Thread-607728][   transport.py][1871] : kex follows: False
2025-07-01 14:34:15,274 [DEBUG][       Thread-607728][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:34:15,274 [DEBUG][       Thread-607728][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:34:15,274 [DEBUG][       Thread-607728][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:34:15,274 [DEBUG][       Thread-607728][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:34:15,274 [DEBUG][       Thread-607728][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:34:15,274 [DEBUG][       Thread-607728][   transport.py][1871] : Compression: none
2025-07-01 14:34:15,274 [DEBUG][       Thread-607728][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:34:15,332 [DEBUG][       Thread-607728][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:34:15,333 [DEBUG][       Thread-607728][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:34:15,333 [DEBUG][       Thread-607728][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:34:15,334 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:34:15,334 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:34:15,389 [DEBUG][       Thread-607728][   transport.py][1871] : userauth is OK
2025-07-01 14:34:15,389 [DEBUG][       Thread-607728][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:34:15,389 [DEBUG][       Thread-607728][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:34:15,389 [DEBUG][       Thread-607728][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:34:15,389 [DEBUG][       Thread-607728][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:34:15,408 [ INFO][       Thread-607728][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:34:15,408 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:34:15,408 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:34:16,397 [DEBUG][       Thread-607728][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:34:16,397 [DEBUG][       Thread-607728][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:34:16,451 [DEBUG][       Thread-607728][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:34:16,452 [DEBUG][       Thread-607728][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:34:16,461 [DEBUG][       Thread-607728][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:34:16,470 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:34:16,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-07-01 14:34: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') -> 00000000
2025-07-01 14:34:16,488 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:34:16,488 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:34:16,489 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:34:16,497 [DEBUG][       Thread-607728][   transport.py][1871] : EOF in transport thread
2025-07-01 14:34:20,589 [DEBUG][Thread-607730 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:34:26,499 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:34:26,499 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:34:26,500 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:34:26,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-07-01 14:34:26,990 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 34, 6), 11.01, 47.3, 0.0, 37.42, 13.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:34:26,990 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:34:06
2025-07-01 14:34:27,076 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:34:27,083 [DEBUG][       Thread-607731][   transport.py][1871] : starting thread (client mode): 0x8171330
2025-07-01 14:34:27,083 [DEBUG][       Thread-607731][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:34:27,104 [DEBUG][       Thread-607731][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:34:27,104 [ INFO][       Thread-607731][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:34:27,107 [DEBUG][       Thread-607731][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:34:27,107 [DEBUG][       Thread-607731][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:34:27,107 [DEBUG][       Thread-607731][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:34:27,107 [DEBUG][       Thread-607731][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:34:27,107 [DEBUG][       Thread-607731][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:34:27,107 [DEBUG][       Thread-607731][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:34:27,107 [DEBUG][       Thread-607731][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:34:27,107 [DEBUG][       Thread-607731][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:34:27,107 [DEBUG][       Thread-607731][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:34:27,107 [DEBUG][       Thread-607731][   transport.py][1871] : client lang: <none>
2025-07-01 14:34:27,107 [DEBUG][       Thread-607731][   transport.py][1871] : server lang: <none>
2025-07-01 14:34:27,107 [DEBUG][       Thread-607731][   transport.py][1871] : kex follows: False
2025-07-01 14:34:27,107 [DEBUG][       Thread-607731][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:34:27,107 [DEBUG][       Thread-607731][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:34:27,107 [DEBUG][       Thread-607731][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:34:27,107 [DEBUG][       Thread-607731][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:34:27,107 [DEBUG][       Thread-607731][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:34:27,107 [DEBUG][       Thread-607731][   transport.py][1871] : Compression: none
2025-07-01 14:34:27,107 [DEBUG][       Thread-607731][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:34:27,115 [DEBUG][       Thread-607731][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:34:27,116 [DEBUG][       Thread-607731][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:34:27,116 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:34:27,116 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:34:27,117 [DEBUG][       Thread-607731][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:34:27,117 [DEBUG][       Thread-607731][   transport.py][1871] : userauth is OK
2025-07-01 14:34:27,130 [ INFO][       Thread-607731][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:34:27,130 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:34:27,717 [DEBUG][       Thread-607731][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:34:27,718 [DEBUG][       Thread-607731][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:34:27,761 [DEBUG][       Thread-607731][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:34:27,761 [DEBUG][       Thread-607731][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:34:27,763 [DEBUG][       Thread-607731][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:34:27,769 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:34:27,770 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:34:27,771 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:34:27,772 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:34:27,777 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:34:27,779 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:34:27,779 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:34:27,780 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:34:27,780 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.523552 -999.00  +13.40  42.06     52   +3.80 1 2 2 1 1   887    0 8.98 -23.01 ----- 42.6 42.1 42.4 50.6 15.7 -19.8 15.1 -21.3 15.2 -19.9 15.8 -18.4
2025-07-01 14:34:27,780 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:34:27,780 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:34:27,780 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.523552
2025-07-01 14:34:27,781 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:34:27,781 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:34:27,781 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:34:27,781 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:34:27,781 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:34:27,781 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:34:06', tmtdew=11.01, humidity=47.3, cloud=0.0, wind=37.42, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:33:54.893', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:34:27,782 [DEBUG][       Thread-607731][   transport.py][1871] : EOF in transport thread
2025-07-01 14:34:27,865 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:34:27,876 [DEBUG][       Thread-607734][   transport.py][1871] : starting thread (client mode): 0x81c9c30
2025-07-01 14:34:27,876 [DEBUG][       Thread-607734][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:34:27,890 [DEBUG][       Thread-607734][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:34:27,890 [ INFO][       Thread-607734][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:34:27,898 [DEBUG][       Thread-607734][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:34:27,898 [DEBUG][       Thread-607734][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:34:27,898 [DEBUG][       Thread-607734][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:34:27,898 [DEBUG][       Thread-607734][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:34:27,899 [DEBUG][       Thread-607734][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:34:27,899 [DEBUG][       Thread-607734][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:34:27,899 [DEBUG][       Thread-607734][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:34:27,899 [DEBUG][       Thread-607734][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:34:27,899 [DEBUG][       Thread-607734][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:34:27,899 [DEBUG][       Thread-607734][   transport.py][1871] : client lang: <none>
2025-07-01 14:34:27,899 [DEBUG][       Thread-607734][   transport.py][1871] : server lang: <none>
2025-07-01 14:34:27,899 [DEBUG][       Thread-607734][   transport.py][1871] : kex follows: False
2025-07-01 14:34:27,899 [DEBUG][       Thread-607734][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:34:27,899 [DEBUG][       Thread-607734][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:34:27,899 [DEBUG][       Thread-607734][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:34:27,899 [DEBUG][       Thread-607734][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:34:27,899 [DEBUG][       Thread-607734][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:34:27,899 [DEBUG][       Thread-607734][   transport.py][1871] : Compression: none
2025-07-01 14:34:27,899 [DEBUG][       Thread-607734][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:34:27,959 [DEBUG][       Thread-607734][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:34:27,960 [DEBUG][       Thread-607734][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:34:27,961 [DEBUG][       Thread-607734][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:34:27,961 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:34:27,961 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:34:28,023 [DEBUG][       Thread-607734][   transport.py][1871] : userauth is OK
2025-07-01 14:34:28,023 [DEBUG][       Thread-607734][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:34:28,023 [DEBUG][       Thread-607734][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:34:28,023 [DEBUG][       Thread-607734][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:34:28,023 [DEBUG][       Thread-607734][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:34:28,042 [ INFO][       Thread-607734][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:34:28,042 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:34:28,042 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:34:29,070 [DEBUG][       Thread-607734][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:34:29,070 [DEBUG][       Thread-607734][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:34:29,120 [DEBUG][       Thread-607734][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:34:29,120 [DEBUG][       Thread-607734][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:34:29,129 [DEBUG][       Thread-607734][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:34:29,138 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:34:29,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-07-01 14:34:29,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') -> 00000000
2025-07-01 14:34:29,156 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:34:29,156 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:34:29,157 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:34:29,164 [DEBUG][       Thread-607734][   transport.py][1871] : EOF in transport thread
2025-07-01 14:34:29,627 [DEBUG][Thread-607736 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:34:35,212 [DEBUG][Thread-607737 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:34:38,648 [DEBUG][Thread-607738 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:34:39,160 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:34:39,160 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:34:39,160 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:34:39,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-07-01 14:34:39,678 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 34, 6), 11.01, 47.3, 0.0, 37.42, 13.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:34:39,678 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:34:06
2025-07-01 14:34:39,773 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:34:39,777 [DEBUG][       Thread-607739][   transport.py][1871] : starting thread (client mode): 0x81db6d0
2025-07-01 14:34:39,777 [DEBUG][       Thread-607739][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:34:39,798 [DEBUG][       Thread-607739][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:34:39,798 [ INFO][       Thread-607739][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:34:39,801 [DEBUG][       Thread-607739][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:34:39,801 [DEBUG][       Thread-607739][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:34:39,801 [DEBUG][       Thread-607739][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:34:39,801 [DEBUG][       Thread-607739][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:34:39,801 [DEBUG][       Thread-607739][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:34:39,801 [DEBUG][       Thread-607739][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:34:39,801 [DEBUG][       Thread-607739][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:34:39,801 [DEBUG][       Thread-607739][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:34:39,801 [DEBUG][       Thread-607739][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:34:39,801 [DEBUG][       Thread-607739][   transport.py][1871] : client lang: <none>
2025-07-01 14:34:39,801 [DEBUG][       Thread-607739][   transport.py][1871] : server lang: <none>
2025-07-01 14:34:39,801 [DEBUG][       Thread-607739][   transport.py][1871] : kex follows: False
2025-07-01 14:34:39,801 [DEBUG][       Thread-607739][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:34:39,801 [DEBUG][       Thread-607739][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:34:39,801 [DEBUG][       Thread-607739][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:34:39,801 [DEBUG][       Thread-607739][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:34:39,801 [DEBUG][       Thread-607739][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:34:39,801 [DEBUG][       Thread-607739][   transport.py][1871] : Compression: none
2025-07-01 14:34:39,801 [DEBUG][       Thread-607739][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:34:39,817 [DEBUG][       Thread-607739][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:34:39,817 [DEBUG][       Thread-607739][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:34:39,817 [DEBUG][       Thread-607739][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:34:39,817 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:34:39,817 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:34:39,818 [DEBUG][       Thread-607739][   transport.py][1871] : userauth is OK
2025-07-01 14:34:39,830 [ INFO][       Thread-607739][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:34:39,831 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:34:40,500 [DEBUG][       Thread-607739][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:34:40,500 [DEBUG][       Thread-607739][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:34:40,541 [DEBUG][       Thread-607739][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:34:40,541 [DEBUG][       Thread-607739][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:34:40,543 [DEBUG][       Thread-607739][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:34:40,554 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:34:40,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:34:40,555 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:34:40,556 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:34:40,560 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:34:40,560 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:34:40,560 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:34:40,561 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:34:40,561 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.523552 -999.00  +13.40  42.06     52   +3.80 1 2 2 1 1   887    0 8.98 -23.01 ----- 42.6 42.1 42.4 50.6 15.7 -19.8 15.1 -21.3 15.2 -19.9 15.8 -18.4
2025-07-01 14:34:40,561 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:34:40,561 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:34:40,561 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.523552
2025-07-01 14:34:40,561 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:34:40,561 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:34:40,561 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:34:40,561 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:34:40,561 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:34:40,561 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:34:06', tmtdew=11.01, humidity=47.3, cloud=0.0, wind=37.42, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:33:54.893', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:34:40,562 [DEBUG][       Thread-607739][   transport.py][1871] : EOF in transport thread
2025-07-01 14:34:40,636 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:34:40,645 [DEBUG][       Thread-607742][   transport.py][1871] : starting thread (client mode): 0x8393ee0
2025-07-01 14:34:40,645 [DEBUG][       Thread-607742][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:34:40,660 [DEBUG][       Thread-607742][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:34:40,660 [ INFO][       Thread-607742][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:34:40,668 [DEBUG][       Thread-607742][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:34:40,668 [DEBUG][       Thread-607742][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:34:40,668 [DEBUG][       Thread-607742][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:34:40,668 [DEBUG][       Thread-607742][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:34:40,668 [DEBUG][       Thread-607742][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:34:40,668 [DEBUG][       Thread-607742][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:34:40,668 [DEBUG][       Thread-607742][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:34:40,668 [DEBUG][       Thread-607742][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:34:40,668 [DEBUG][       Thread-607742][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:34:40,668 [DEBUG][       Thread-607742][   transport.py][1871] : client lang: <none>
2025-07-01 14:34:40,668 [DEBUG][       Thread-607742][   transport.py][1871] : server lang: <none>
2025-07-01 14:34:40,668 [DEBUG][       Thread-607742][   transport.py][1871] : kex follows: False
2025-07-01 14:34:40,668 [DEBUG][       Thread-607742][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:34:40,668 [DEBUG][       Thread-607742][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:34:40,668 [DEBUG][       Thread-607742][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:34:40,668 [DEBUG][       Thread-607742][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:34:40,668 [DEBUG][       Thread-607742][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:34:40,668 [DEBUG][       Thread-607742][   transport.py][1871] : Compression: none
2025-07-01 14:34:40,668 [DEBUG][       Thread-607742][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:34:40,725 [DEBUG][       Thread-607742][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:34:40,725 [DEBUG][       Thread-607742][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:34:40,725 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:34:40,725 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:34:40,725 [DEBUG][       Thread-607742][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:34:40,782 [DEBUG][       Thread-607742][   transport.py][1871] : userauth is OK
2025-07-01 14:34:40,782 [DEBUG][       Thread-607742][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:34:40,782 [DEBUG][       Thread-607742][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:34:40,782 [DEBUG][       Thread-607742][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:34:40,782 [DEBUG][       Thread-607742][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:34:40,797 [ INFO][       Thread-607742][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:34:40,797 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:34:40,797 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:34:41,854 [DEBUG][       Thread-607742][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:34:41,854 [DEBUG][       Thread-607742][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:34:41,903 [DEBUG][       Thread-607742][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:34:41,903 [DEBUG][       Thread-607742][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:34:41,912 [DEBUG][       Thread-607742][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:34:41,920 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:34:41,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-07-01 14:34:41,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-07-01 14:34:41,936 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:34:41,936 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:34:41,936 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:34:41,948 [DEBUG][       Thread-607742][   transport.py][1871] : EOF in transport thread
2025-07-01 14:34:47,667 [DEBUG][Thread-607744 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:34:51,946 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:34:51,946 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:34:51,946 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:34:51,950 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:34:52,417 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 34, 38), 10.99, 47.37, 0.0, 36.73, 13.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:34:52,417 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:34:38
2025-07-01 14:34:52,502 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:34:52,508 [DEBUG][       Thread-607745][   transport.py][1871] : starting thread (client mode): 0x81a5090
2025-07-01 14:34:52,508 [DEBUG][       Thread-607745][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:34:52,528 [DEBUG][       Thread-607745][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:34:52,528 [ INFO][       Thread-607745][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:34:52,531 [DEBUG][       Thread-607745][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:34:52,531 [DEBUG][       Thread-607745][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:34:52,531 [DEBUG][       Thread-607745][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:34:52,531 [DEBUG][       Thread-607745][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:34:52,531 [DEBUG][       Thread-607745][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:34:52,531 [DEBUG][       Thread-607745][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:34:52,531 [DEBUG][       Thread-607745][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:34:52,531 [DEBUG][       Thread-607745][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:34:52,531 [DEBUG][       Thread-607745][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:34:52,531 [DEBUG][       Thread-607745][   transport.py][1871] : client lang: <none>
2025-07-01 14:34:52,531 [DEBUG][       Thread-607745][   transport.py][1871] : server lang: <none>
2025-07-01 14:34:52,531 [DEBUG][       Thread-607745][   transport.py][1871] : kex follows: False
2025-07-01 14:34:52,531 [DEBUG][       Thread-607745][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:34:52,531 [DEBUG][       Thread-607745][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:34:52,532 [DEBUG][       Thread-607745][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:34:52,532 [DEBUG][       Thread-607745][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:34:52,532 [DEBUG][       Thread-607745][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:34:52,532 [DEBUG][       Thread-607745][   transport.py][1871] : Compression: none
2025-07-01 14:34:52,532 [DEBUG][       Thread-607745][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:34:52,548 [DEBUG][       Thread-607745][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:34:52,549 [DEBUG][       Thread-607745][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:34:52,549 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:34:52,549 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:34:52,550 [DEBUG][       Thread-607745][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:34:52,550 [DEBUG][       Thread-607745][   transport.py][1871] : userauth is OK
2025-07-01 14:34:52,575 [ INFO][       Thread-607745][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:34:52,576 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:34:53,210 [DEBUG][       Thread-607745][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:34:53,210 [DEBUG][       Thread-607745][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:34:53,253 [DEBUG][       Thread-607745][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:34:53,253 [DEBUG][       Thread-607745][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:34:53,256 [DEBUG][       Thread-607745][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:34:53,268 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:34:53,268 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:34:53,270 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:34:53,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:34:53,278 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:34:53,280 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:34:53,280 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:34:53,281 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:34:53,281 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.523552 -999.00  +13.40  42.06     52   +3.80 1 2 2 1 1   887    0 8.98 -23.01 ----- 42.6 42.1 42.4 50.6 15.7 -19.8 15.1 -21.3 15.2 -19.9 15.8 -18.4
2025-07-01 14:34:53,281 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:34:53,281 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:34:53,282 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.523552
2025-07-01 14:34:53,282 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:34:53,283 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:34:53,283 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:34:53,283 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:34:53,283 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:34:53,283 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:34:38', tmtdew=10.99, humidity=47.37, cloud=0.0, wind=36.73, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:33:54.893', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:34:53,283 [DEBUG][       Thread-607745][   transport.py][1871] : EOF in transport thread
2025-07-01 14:34:53,359 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:34:53,371 [DEBUG][       Thread-607748][   transport.py][1871] : starting thread (client mode): 0x81e7340
2025-07-01 14:34:53,371 [DEBUG][       Thread-607748][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:34:53,387 [DEBUG][       Thread-607748][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:34:53,387 [ INFO][       Thread-607748][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:34:53,394 [DEBUG][       Thread-607748][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:34:53,394 [DEBUG][       Thread-607748][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:34:53,394 [DEBUG][       Thread-607748][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:34:53,394 [DEBUG][       Thread-607748][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:34:53,395 [DEBUG][       Thread-607748][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:34:53,395 [DEBUG][       Thread-607748][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:34:53,395 [DEBUG][       Thread-607748][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:34:53,395 [DEBUG][       Thread-607748][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:34:53,395 [DEBUG][       Thread-607748][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:34:53,395 [DEBUG][       Thread-607748][   transport.py][1871] : client lang: <none>
2025-07-01 14:34:53,395 [DEBUG][       Thread-607748][   transport.py][1871] : server lang: <none>
2025-07-01 14:34:53,395 [DEBUG][       Thread-607748][   transport.py][1871] : kex follows: False
2025-07-01 14:34:53,395 [DEBUG][       Thread-607748][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:34:53,395 [DEBUG][       Thread-607748][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:34:53,395 [DEBUG][       Thread-607748][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:34:53,395 [DEBUG][       Thread-607748][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:34:53,395 [DEBUG][       Thread-607748][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:34:53,395 [DEBUG][       Thread-607748][   transport.py][1871] : Compression: none
2025-07-01 14:34:53,395 [DEBUG][       Thread-607748][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:34:53,451 [DEBUG][       Thread-607748][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:34:53,452 [DEBUG][       Thread-607748][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:34:53,452 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:34:53,453 [DEBUG][       Thread-607748][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:34:53,454 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:34:53,507 [DEBUG][       Thread-607748][   transport.py][1871] : userauth is OK
2025-07-01 14:34:53,507 [DEBUG][       Thread-607748][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:34:53,508 [DEBUG][       Thread-607748][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:34:53,508 [DEBUG][       Thread-607748][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:34:53,508 [DEBUG][       Thread-607748][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:34:53,526 [ INFO][       Thread-607748][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:34:53,527 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:34:53,527 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:34:54,564 [DEBUG][       Thread-607748][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:34:54,564 [DEBUG][       Thread-607748][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:34:54,612 [DEBUG][       Thread-607748][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:34:54,612 [DEBUG][       Thread-607748][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:34:54,622 [DEBUG][       Thread-607748][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:34:54,631 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:34:54,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-07-01 14:34:54,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-07-01 14:34:54,649 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:34:54,649 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:34:54,649 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:34:54,658 [DEBUG][       Thread-607748][   transport.py][1871] : EOF in transport thread
2025-07-01 14:34:56,691 [DEBUG][Thread-607750 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:35:04,660 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:35:04,660 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:35:04,660 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:35:04,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-07-01 14:35:05,138 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 34, 38), 10.99, 47.37, 0.0, 36.73, 13.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:35:05,138 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:34:38
2025-07-01 14:35:05,223 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:35:05,227 [DEBUG][       Thread-607751][   transport.py][1871] : starting thread (client mode): 0x81e6260
2025-07-01 14:35:05,227 [DEBUG][       Thread-607751][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:35:05,249 [DEBUG][       Thread-607751][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:35:05,249 [ INFO][       Thread-607751][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:35:05,252 [DEBUG][       Thread-607751][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:35:05,253 [DEBUG][       Thread-607751][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:35:05,253 [DEBUG][       Thread-607751][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:35:05,253 [DEBUG][       Thread-607751][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:35:05,253 [DEBUG][       Thread-607751][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:35:05,253 [DEBUG][       Thread-607751][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:35:05,253 [DEBUG][       Thread-607751][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:35:05,253 [DEBUG][       Thread-607751][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:35:05,253 [DEBUG][       Thread-607751][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:35:05,253 [DEBUG][       Thread-607751][   transport.py][1871] : client lang: <none>
2025-07-01 14:35:05,253 [DEBUG][       Thread-607751][   transport.py][1871] : server lang: <none>
2025-07-01 14:35:05,253 [DEBUG][       Thread-607751][   transport.py][1871] : kex follows: False
2025-07-01 14:35:05,253 [DEBUG][       Thread-607751][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:35:05,253 [DEBUG][       Thread-607751][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:35:05,253 [DEBUG][       Thread-607751][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:35:05,253 [DEBUG][       Thread-607751][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:35:05,253 [DEBUG][       Thread-607751][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:35:05,253 [DEBUG][       Thread-607751][   transport.py][1871] : Compression: none
2025-07-01 14:35:05,253 [DEBUG][       Thread-607751][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:35:05,272 [DEBUG][       Thread-607751][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:35:05,273 [DEBUG][       Thread-607751][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:35:05,273 [DEBUG][       Thread-607751][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:35:05,273 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:35:05,274 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:35:05,275 [DEBUG][       Thread-607751][   transport.py][1871] : userauth is OK
2025-07-01 14:35:05,300 [ INFO][       Thread-607751][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:35:05,300 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:35:05,726 [DEBUG][Thread-607753 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:35:05,915 [DEBUG][       Thread-607751][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:35:05,916 [DEBUG][       Thread-607751][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:35:05,957 [DEBUG][       Thread-607751][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:35:05,957 [DEBUG][       Thread-607751][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:35:05,960 [DEBUG][       Thread-607751][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:35:05,973 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:35:05,974 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:35:05,976 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:35:05,977 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:35:05,983 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:35:05,984 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:35:05,985 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:35:05,985 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:35:05,985 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.524247 -999.00  +13.70  32.63     52   +4.20 1 2 2 1 1   887    0 8.80 -22.91 ----- 39.9 32.6 35.0 53.3 15.8 -20.1 15.2 -20.2 15.4 -18.6 16.0 -17.9
2025-07-01 14:35:05,985 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:35:05,986 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:35:05,986 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.524247
2025-07-01 14:35:05,986 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:35:05,987 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:35:05,987 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:35:05,987 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:35:05,987 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:35:05,987 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:34:38', tmtdew=10.99, humidity=47.37, cloud=0.0, wind=36.73, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:34:54.941', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:35:05,987 [DEBUG][       Thread-607751][   transport.py][1871] : EOF in transport thread
2025-07-01 14:35:06,071 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:35:06,080 [DEBUG][       Thread-607755][   transport.py][1871] : starting thread (client mode): 0x81076d0
2025-07-01 14:35:06,080 [DEBUG][       Thread-607755][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:35:06,095 [DEBUG][       Thread-607755][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:35:06,095 [ INFO][       Thread-607755][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:35:06,103 [DEBUG][       Thread-607755][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:35:06,103 [DEBUG][       Thread-607755][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:35:06,103 [DEBUG][       Thread-607755][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:35:06,103 [DEBUG][       Thread-607755][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:35:06,103 [DEBUG][       Thread-607755][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:35:06,103 [DEBUG][       Thread-607755][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:35:06,103 [DEBUG][       Thread-607755][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:35:06,103 [DEBUG][       Thread-607755][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:35:06,104 [DEBUG][       Thread-607755][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:35:06,104 [DEBUG][       Thread-607755][   transport.py][1871] : client lang: <none>
2025-07-01 14:35:06,104 [DEBUG][       Thread-607755][   transport.py][1871] : server lang: <none>
2025-07-01 14:35:06,104 [DEBUG][       Thread-607755][   transport.py][1871] : kex follows: False
2025-07-01 14:35:06,104 [DEBUG][       Thread-607755][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:35:06,104 [DEBUG][       Thread-607755][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:35:06,104 [DEBUG][       Thread-607755][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:35:06,104 [DEBUG][       Thread-607755][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:35:06,104 [DEBUG][       Thread-607755][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:35:06,104 [DEBUG][       Thread-607755][   transport.py][1871] : Compression: none
2025-07-01 14:35:06,104 [DEBUG][       Thread-607755][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:35:06,165 [DEBUG][       Thread-607755][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:35:06,165 [DEBUG][       Thread-607755][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:35:06,166 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:35:06,166 [DEBUG][       Thread-607755][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:35:06,167 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:35:06,225 [DEBUG][       Thread-607755][   transport.py][1871] : userauth is OK
2025-07-01 14:35:06,225 [DEBUG][       Thread-607755][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:35:06,226 [DEBUG][       Thread-607755][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:35:06,226 [DEBUG][       Thread-607755][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:35:06,226 [DEBUG][       Thread-607755][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:35:06,246 [ INFO][       Thread-607755][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:35:06,246 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:35:06,247 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:35:07,305 [DEBUG][       Thread-607755][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:35:07,305 [DEBUG][       Thread-607755][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:35:07,355 [DEBUG][       Thread-607755][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:35:07,355 [DEBUG][       Thread-607755][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:35:07,364 [DEBUG][       Thread-607755][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:35:07,375 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:35:07,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-07-01 14:35:07,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-07-01 14:35:07,393 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:35:07,393 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:35:07,394 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:35:07,403 [DEBUG][       Thread-607755][   transport.py][1871] : EOF in transport thread
2025-07-01 14:35:14,748 [DEBUG][Thread-607757 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:35:17,404 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:35:17,404 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:35:17,404 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:35:17,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-07-01 14:35:17,889 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 35, 10), 10.94, 47.66, 0.0, 34.33, 13.84, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:35:17,889 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:35:10
2025-07-01 14:35:17,979 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:35:17,984 [DEBUG][       Thread-607758][   transport.py][1871] : starting thread (client mode): 0x81d9480
2025-07-01 14:35:17,985 [DEBUG][       Thread-607758][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:35:18,009 [DEBUG][       Thread-607758][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:35:18,009 [ INFO][       Thread-607758][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:35:18,011 [DEBUG][       Thread-607758][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:35:18,011 [DEBUG][       Thread-607758][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:35:18,011 [DEBUG][       Thread-607758][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:35:18,011 [DEBUG][       Thread-607758][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:35:18,011 [DEBUG][       Thread-607758][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:35:18,011 [DEBUG][       Thread-607758][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:35:18,011 [DEBUG][       Thread-607758][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:35:18,011 [DEBUG][       Thread-607758][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:35:18,011 [DEBUG][       Thread-607758][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:35:18,011 [DEBUG][       Thread-607758][   transport.py][1871] : client lang: <none>
2025-07-01 14:35:18,011 [DEBUG][       Thread-607758][   transport.py][1871] : server lang: <none>
2025-07-01 14:35:18,011 [DEBUG][       Thread-607758][   transport.py][1871] : kex follows: False
2025-07-01 14:35:18,011 [DEBUG][       Thread-607758][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:35:18,011 [DEBUG][       Thread-607758][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:35:18,011 [DEBUG][       Thread-607758][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:35:18,011 [DEBUG][       Thread-607758][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:35:18,011 [DEBUG][       Thread-607758][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:35:18,011 [DEBUG][       Thread-607758][   transport.py][1871] : Compression: none
2025-07-01 14:35:18,011 [DEBUG][       Thread-607758][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:35:18,026 [DEBUG][       Thread-607758][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:35:18,026 [DEBUG][       Thread-607758][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:35:18,027 [DEBUG][       Thread-607758][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:35:18,027 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:35:18,027 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:35:18,027 [DEBUG][       Thread-607758][   transport.py][1871] : userauth is OK
2025-07-01 14:35:18,053 [ INFO][       Thread-607758][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:35:18,053 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:35:18,702 [DEBUG][       Thread-607758][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:35:18,702 [DEBUG][       Thread-607758][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:35:18,744 [DEBUG][       Thread-607758][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:35:18,744 [DEBUG][       Thread-607758][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:35:18,747 [DEBUG][       Thread-607758][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:35:18,762 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:35:18,762 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:35:18,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:35:18,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:35:18,767 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:35:18,768 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:35:18,768 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:35:18,768 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:35:18,769 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.524247 -999.00  +13.70  32.63     52   +4.20 1 2 2 1 1   887    0 8.80 -22.91 ----- 39.9 32.6 35.0 53.3 15.8 -20.1 15.2 -20.2 15.4 -18.6 16.0 -17.9
2025-07-01 14:35:18,769 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:35:18,769 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:35:18,769 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.524247
2025-07-01 14:35:18,769 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:35:18,769 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:35:18,769 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:35:18,769 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:35:18,769 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:35:18,769 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:35:10', tmtdew=10.94, humidity=47.66, cloud=0.0, wind=34.33, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:34:54.941', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:35:18,770 [DEBUG][       Thread-607758][   transport.py][1871] : EOF in transport thread
2025-07-01 14:35:18,843 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:35:18,855 [DEBUG][       Thread-607761][   transport.py][1871] : starting thread (client mode): 0x818e890
2025-07-01 14:35:18,855 [DEBUG][       Thread-607761][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:35:18,870 [DEBUG][       Thread-607761][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:35:18,870 [ INFO][       Thread-607761][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:35:18,878 [DEBUG][       Thread-607761][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:35:18,878 [DEBUG][       Thread-607761][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:35:18,878 [DEBUG][       Thread-607761][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:35:18,878 [DEBUG][       Thread-607761][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:35:18,878 [DEBUG][       Thread-607761][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:35:18,878 [DEBUG][       Thread-607761][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:35:18,878 [DEBUG][       Thread-607761][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:35:18,878 [DEBUG][       Thread-607761][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:35:18,878 [DEBUG][       Thread-607761][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:35:18,878 [DEBUG][       Thread-607761][   transport.py][1871] : client lang: <none>
2025-07-01 14:35:18,878 [DEBUG][       Thread-607761][   transport.py][1871] : server lang: <none>
2025-07-01 14:35:18,878 [DEBUG][       Thread-607761][   transport.py][1871] : kex follows: False
2025-07-01 14:35:18,878 [DEBUG][       Thread-607761][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:35:18,878 [DEBUG][       Thread-607761][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:35:18,878 [DEBUG][       Thread-607761][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:35:18,878 [DEBUG][       Thread-607761][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:35:18,878 [DEBUG][       Thread-607761][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:35:18,878 [DEBUG][       Thread-607761][   transport.py][1871] : Compression: none
2025-07-01 14:35:18,878 [DEBUG][       Thread-607761][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:35:18,934 [DEBUG][       Thread-607761][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:35:18,934 [DEBUG][       Thread-607761][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:35:18,934 [DEBUG][       Thread-607761][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:35:18,934 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:35:18,935 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:35:18,992 [DEBUG][       Thread-607761][   transport.py][1871] : userauth is OK
2025-07-01 14:35:18,992 [DEBUG][       Thread-607761][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:35:18,992 [DEBUG][       Thread-607761][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:35:18,992 [DEBUG][       Thread-607761][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:35:18,992 [DEBUG][       Thread-607761][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:35:19,006 [ INFO][       Thread-607761][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:35:19,006 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:35:19,007 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:35:20,029 [DEBUG][       Thread-607761][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:35:20,029 [DEBUG][       Thread-607761][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:35:20,079 [DEBUG][       Thread-607761][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:35:20,079 [DEBUG][       Thread-607761][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:35:20,088 [DEBUG][       Thread-607761][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:35:20,096 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:35:20,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')
2025-07-01 14:35:20,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') -> 00000000
2025-07-01 14:35:20,112 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:35:20,112 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:35:20,112 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:35:20,119 [DEBUG][       Thread-607761][   transport.py][1871] : EOF in transport thread
2025-07-01 14:35:23,770 [DEBUG][Thread-607763 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:35:30,122 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:35:30,122 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:35:30,122 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:35:30,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-07-01 14:35:30,604 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 35, 10), 10.94, 47.66, 0.0, 34.33, 13.84, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:35:30,604 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:35:10
2025-07-01 14:35:30,690 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:35:30,694 [DEBUG][       Thread-607764][   transport.py][1871] : starting thread (client mode): 0x81d8ca0
2025-07-01 14:35:30,694 [DEBUG][       Thread-607764][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:35:30,714 [DEBUG][       Thread-607764][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:35:30,714 [ INFO][       Thread-607764][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:35:30,717 [DEBUG][       Thread-607764][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:35:30,717 [DEBUG][       Thread-607764][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:35:30,717 [DEBUG][       Thread-607764][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:35:30,717 [DEBUG][       Thread-607764][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:35:30,717 [DEBUG][       Thread-607764][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:35:30,717 [DEBUG][       Thread-607764][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:35:30,717 [DEBUG][       Thread-607764][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:35:30,717 [DEBUG][       Thread-607764][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:35:30,717 [DEBUG][       Thread-607764][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:35:30,717 [DEBUG][       Thread-607764][   transport.py][1871] : client lang: <none>
2025-07-01 14:35:30,717 [DEBUG][       Thread-607764][   transport.py][1871] : server lang: <none>
2025-07-01 14:35:30,717 [DEBUG][       Thread-607764][   transport.py][1871] : kex follows: False
2025-07-01 14:35:30,717 [DEBUG][       Thread-607764][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:35:30,717 [DEBUG][       Thread-607764][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:35:30,717 [DEBUG][       Thread-607764][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:35:30,717 [DEBUG][       Thread-607764][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:35:30,717 [DEBUG][       Thread-607764][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:35:30,718 [DEBUG][       Thread-607764][   transport.py][1871] : Compression: none
2025-07-01 14:35:30,718 [DEBUG][       Thread-607764][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:35:30,735 [DEBUG][       Thread-607764][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:35:30,736 [DEBUG][       Thread-607764][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:35:30,736 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:35:30,736 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:35:30,737 [DEBUG][       Thread-607764][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:35:30,738 [DEBUG][       Thread-607764][   transport.py][1871] : userauth is OK
2025-07-01 14:35:30,762 [ INFO][       Thread-607764][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:35:30,763 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:35:31,391 [DEBUG][       Thread-607764][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:35:31,391 [DEBUG][       Thread-607764][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:35:31,433 [DEBUG][       Thread-607764][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:35:31,433 [DEBUG][       Thread-607764][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:35:31,437 [DEBUG][       Thread-607764][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:35:31,449 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:35:31,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:35:31,451 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:35:31,453 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:35:31,459 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:35:31,461 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:35:31,462 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:35:31,462 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:35:31,462 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.524247 -999.00  +13.70  32.63     52   +4.20 1 2 2 1 1   887    0 8.80 -22.91 ----- 39.9 32.6 35.0 53.3 15.8 -20.1 15.2 -20.2 15.4 -18.6 16.0 -17.9
2025-07-01 14:35:31,462 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:35:31,463 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:35:31,463 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.524247
2025-07-01 14:35:31,463 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:35:31,464 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:35:31,464 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:35:31,464 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:35:31,464 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:35:31,464 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:35:10', tmtdew=10.94, humidity=47.66, cloud=0.0, wind=34.33, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:34:54.941', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:35:31,465 [DEBUG][       Thread-607764][   transport.py][1871] : EOF in transport thread
2025-07-01 14:35:31,549 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:35:31,561 [DEBUG][       Thread-607767][   transport.py][1871] : starting thread (client mode): 0x8170880
2025-07-01 14:35:31,561 [DEBUG][       Thread-607767][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:35:31,576 [DEBUG][       Thread-607767][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:35:31,576 [ INFO][       Thread-607767][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:35:31,583 [DEBUG][       Thread-607767][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:35:31,584 [DEBUG][       Thread-607767][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:35:31,584 [DEBUG][       Thread-607767][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:35:31,584 [DEBUG][       Thread-607767][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:35:31,584 [DEBUG][       Thread-607767][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:35:31,584 [DEBUG][       Thread-607767][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:35:31,584 [DEBUG][       Thread-607767][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:35:31,584 [DEBUG][       Thread-607767][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:35:31,584 [DEBUG][       Thread-607767][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:35:31,584 [DEBUG][       Thread-607767][   transport.py][1871] : client lang: <none>
2025-07-01 14:35:31,584 [DEBUG][       Thread-607767][   transport.py][1871] : server lang: <none>
2025-07-01 14:35:31,584 [DEBUG][       Thread-607767][   transport.py][1871] : kex follows: False
2025-07-01 14:35:31,584 [DEBUG][       Thread-607767][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:35:31,584 [DEBUG][       Thread-607767][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:35:31,584 [DEBUG][       Thread-607767][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:35:31,584 [DEBUG][       Thread-607767][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:35:31,584 [DEBUG][       Thread-607767][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:35:31,584 [DEBUG][       Thread-607767][   transport.py][1871] : Compression: none
2025-07-01 14:35:31,584 [DEBUG][       Thread-607767][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:35:31,641 [DEBUG][       Thread-607767][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:35:31,641 [DEBUG][       Thread-607767][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:35:31,642 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:35:31,642 [DEBUG][       Thread-607767][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:35:31,643 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:35:31,697 [DEBUG][       Thread-607767][   transport.py][1871] : userauth is OK
2025-07-01 14:35:31,697 [DEBUG][       Thread-607767][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:35:31,697 [DEBUG][       Thread-607767][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:35:31,697 [DEBUG][       Thread-607767][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:35:31,697 [DEBUG][       Thread-607767][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:35:31,716 [ INFO][       Thread-607767][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:35:31,716 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:35:31,717 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:35:32,754 [DEBUG][       Thread-607767][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:35:32,755 [DEBUG][       Thread-607767][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:35:32,804 [DEBUG][       Thread-607767][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:35:32,804 [DEBUG][       Thread-607767][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:35:32,806 [DEBUG][Thread-607769 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:35:32,813 [DEBUG][       Thread-607767][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:35:32,822 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:35:32,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-07-01 14:35:32,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-07-01 14:35:32,839 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:35:32,840 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:35:32,840 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:35:32,848 [DEBUG][       Thread-607767][   transport.py][1871] : EOF in transport thread
2025-07-01 14:35:35,243 [DEBUG][Thread-607770 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:35:41,828 [DEBUG][Thread-607771 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:35:42,850 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:35:42,851 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:35:42,851 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:35:42,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-07-01 14:35:43,344 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 35, 10), 10.94, 47.66, 0.0, 34.33, 13.84, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:35:43,344 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:35:10
2025-07-01 14:35:43,436 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:35:43,440 [DEBUG][       Thread-607772][   transport.py][1871] : starting thread (client mode): 0x8171b70
2025-07-01 14:35:43,440 [DEBUG][       Thread-607772][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:35:43,459 [DEBUG][       Thread-607772][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:35:43,459 [ INFO][       Thread-607772][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:35:43,463 [DEBUG][       Thread-607772][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:35:43,463 [DEBUG][       Thread-607772][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:35:43,463 [DEBUG][       Thread-607772][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:35:43,463 [DEBUG][       Thread-607772][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:35:43,463 [DEBUG][       Thread-607772][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:35:43,463 [DEBUG][       Thread-607772][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:35:43,463 [DEBUG][       Thread-607772][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:35:43,463 [DEBUG][       Thread-607772][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:35:43,463 [DEBUG][       Thread-607772][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:35:43,463 [DEBUG][       Thread-607772][   transport.py][1871] : client lang: <none>
2025-07-01 14:35:43,463 [DEBUG][       Thread-607772][   transport.py][1871] : server lang: <none>
2025-07-01 14:35:43,463 [DEBUG][       Thread-607772][   transport.py][1871] : kex follows: False
2025-07-01 14:35:43,463 [DEBUG][       Thread-607772][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:35:43,463 [DEBUG][       Thread-607772][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:35:43,463 [DEBUG][       Thread-607772][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:35:43,463 [DEBUG][       Thread-607772][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:35:43,463 [DEBUG][       Thread-607772][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:35:43,463 [DEBUG][       Thread-607772][   transport.py][1871] : Compression: none
2025-07-01 14:35:43,463 [DEBUG][       Thread-607772][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:35:43,477 [DEBUG][       Thread-607772][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:35:43,477 [DEBUG][       Thread-607772][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:35:43,477 [DEBUG][       Thread-607772][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:35:43,477 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:35:43,477 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:35:43,478 [DEBUG][       Thread-607772][   transport.py][1871] : userauth is OK
2025-07-01 14:35:43,504 [ INFO][       Thread-607772][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:35:43,504 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:35:44,416 [DEBUG][       Thread-607772][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:35:44,416 [DEBUG][       Thread-607772][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:35:44,460 [DEBUG][       Thread-607772][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:35:44,460 [DEBUG][       Thread-607772][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:35:44,463 [DEBUG][       Thread-607772][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:35:44,475 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:35:44,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:35:44,476 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:35:44,476 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:35:44,479 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:35:44,480 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:35:44,480 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:35:44,480 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:35:44,480 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.524594 -999.00  +13.70  37.71     52   +4.10 1 2 2 1 1   887    0 9.08 -25.08 ----- 37.9 37.7 33.6 45.0 15.9 -20.0 15.2 -20.5 15.5 -18.7 16.1 -18.4
2025-07-01 14:35:44,480 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:35:44,480 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:35:44,480 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.524594
2025-07-01 14:35:44,480 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:35:44,481 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:35:44,481 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:35:44,481 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:35:44,481 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:35:44,481 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:35:10', tmtdew=10.94, humidity=47.66, cloud=0.0, wind=34.33, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:35:24.922', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:35:44,481 [DEBUG][       Thread-607772][   transport.py][1871] : EOF in transport thread
2025-07-01 14:35:44,555 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:35:44,564 [DEBUG][       Thread-607775][   transport.py][1871] : starting thread (client mode): 0x81c9b70
2025-07-01 14:35:44,564 [DEBUG][       Thread-607775][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:35:44,579 [DEBUG][       Thread-607775][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:35:44,579 [ INFO][       Thread-607775][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:35:44,586 [DEBUG][       Thread-607775][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:35:44,586 [DEBUG][       Thread-607775][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:35:44,586 [DEBUG][       Thread-607775][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:35:44,586 [DEBUG][       Thread-607775][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:35:44,586 [DEBUG][       Thread-607775][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:35:44,587 [DEBUG][       Thread-607775][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:35:44,587 [DEBUG][       Thread-607775][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:35:44,587 [DEBUG][       Thread-607775][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:35:44,587 [DEBUG][       Thread-607775][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:35:44,587 [DEBUG][       Thread-607775][   transport.py][1871] : client lang: <none>
2025-07-01 14:35:44,587 [DEBUG][       Thread-607775][   transport.py][1871] : server lang: <none>
2025-07-01 14:35:44,587 [DEBUG][       Thread-607775][   transport.py][1871] : kex follows: False
2025-07-01 14:35:44,587 [DEBUG][       Thread-607775][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:35:44,587 [DEBUG][       Thread-607775][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:35:44,587 [DEBUG][       Thread-607775][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:35:44,587 [DEBUG][       Thread-607775][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:35:44,587 [DEBUG][       Thread-607775][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:35:44,587 [DEBUG][       Thread-607775][   transport.py][1871] : Compression: none
2025-07-01 14:35:44,587 [DEBUG][       Thread-607775][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:35:44,643 [DEBUG][       Thread-607775][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:35:44,643 [DEBUG][       Thread-607775][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:35:44,644 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:35:44,644 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:35:44,644 [DEBUG][       Thread-607775][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:35:44,701 [DEBUG][       Thread-607775][   transport.py][1871] : userauth is OK
2025-07-01 14:35:44,701 [DEBUG][       Thread-607775][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:35:44,701 [DEBUG][       Thread-607775][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:35:44,701 [DEBUG][       Thread-607775][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:35:44,701 [DEBUG][       Thread-607775][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:35:44,715 [ INFO][       Thread-607775][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:35:44,715 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:35:44,715 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:35:45,752 [DEBUG][       Thread-607775][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:35:45,752 [DEBUG][       Thread-607775][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:35:45,800 [DEBUG][       Thread-607775][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:35:45,800 [DEBUG][       Thread-607775][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:35:45,809 [DEBUG][       Thread-607775][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:35:45,818 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:35:45,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-07-01 14:35:45,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-07-01 14:35:45,835 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:35:45,835 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:35:45,836 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:35:45,844 [DEBUG][       Thread-607775][   transport.py][1871] : EOF in transport thread
2025-07-01 14:35:50,847 [DEBUG][Thread-607777 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:35:55,844 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:35:55,844 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:35:55,844 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:35:55,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-07-01 14:35:56,336 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 35, 42), 11.02, 47.41, 0.0, 33.17, 13.81, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:35:56,337 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:35:42
2025-07-01 14:35:56,426 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:35:56,430 [DEBUG][       Thread-607778][   transport.py][1871] : starting thread (client mode): 0x8173430
2025-07-01 14:35:56,430 [DEBUG][       Thread-607778][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:35:56,450 [DEBUG][       Thread-607778][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:35:56,450 [ INFO][       Thread-607778][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:35:56,453 [DEBUG][       Thread-607778][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:35:56,453 [DEBUG][       Thread-607778][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:35:56,453 [DEBUG][       Thread-607778][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:35:56,453 [DEBUG][       Thread-607778][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:35:56,453 [DEBUG][       Thread-607778][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:35:56,453 [DEBUG][       Thread-607778][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:35:56,453 [DEBUG][       Thread-607778][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:35:56,453 [DEBUG][       Thread-607778][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:35:56,453 [DEBUG][       Thread-607778][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:35:56,453 [DEBUG][       Thread-607778][   transport.py][1871] : client lang: <none>
2025-07-01 14:35:56,453 [DEBUG][       Thread-607778][   transport.py][1871] : server lang: <none>
2025-07-01 14:35:56,453 [DEBUG][       Thread-607778][   transport.py][1871] : kex follows: False
2025-07-01 14:35:56,453 [DEBUG][       Thread-607778][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:35:56,453 [DEBUG][       Thread-607778][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:35:56,453 [DEBUG][       Thread-607778][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:35:56,453 [DEBUG][       Thread-607778][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:35:56,453 [DEBUG][       Thread-607778][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:35:56,453 [DEBUG][       Thread-607778][   transport.py][1871] : Compression: none
2025-07-01 14:35:56,453 [DEBUG][       Thread-607778][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:35:56,465 [DEBUG][       Thread-607778][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:35:56,466 [DEBUG][       Thread-607778][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:35:56,466 [DEBUG][       Thread-607778][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:35:56,466 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:35:56,466 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:35:56,466 [DEBUG][       Thread-607778][   transport.py][1871] : userauth is OK
2025-07-01 14:35:56,491 [ INFO][       Thread-607778][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:35:56,491 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:35:57,158 [DEBUG][       Thread-607778][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:35:57,158 [DEBUG][       Thread-607778][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:35:57,200 [DEBUG][       Thread-607778][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:35:57,200 [DEBUG][       Thread-607778][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:35:57,203 [DEBUG][       Thread-607778][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:35:57,214 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:35:57,214 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:35:57,215 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:35:57,216 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:35:57,220 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:35:57,220 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:35:57,220 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:35:57,221 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:35:57,221 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.524594 -999.00  +13.70  37.71     52   +4.10 1 2 2 1 1   887    0 9.08 -25.08 ----- 37.9 37.7 33.6 45.0 15.9 -20.0 15.2 -20.5 15.5 -18.7 16.1 -18.4
2025-07-01 14:35:57,221 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:35:57,221 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:35:57,221 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.524594
2025-07-01 14:35:57,221 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:35:57,221 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:35:57,221 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:35:57,221 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:35:57,221 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:35:57,221 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:35:42', tmtdew=11.02, humidity=47.41, cloud=0.0, wind=33.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:35:24.922', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:35:57,222 [DEBUG][       Thread-607778][   transport.py][1871] : EOF in transport thread
2025-07-01 14:35:57,293 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:35:57,310 [DEBUG][       Thread-607781][   transport.py][1871] : starting thread (client mode): 0x75a9330
2025-07-01 14:35:57,310 [DEBUG][       Thread-607781][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:35:57,327 [DEBUG][       Thread-607781][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:35:57,327 [ INFO][       Thread-607781][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:35:57,334 [DEBUG][       Thread-607781][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:35:57,334 [DEBUG][       Thread-607781][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:35:57,334 [DEBUG][       Thread-607781][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:35:57,334 [DEBUG][       Thread-607781][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:35:57,334 [DEBUG][       Thread-607781][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:35:57,334 [DEBUG][       Thread-607781][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:35:57,334 [DEBUG][       Thread-607781][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:35:57,334 [DEBUG][       Thread-607781][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:35:57,334 [DEBUG][       Thread-607781][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:35:57,334 [DEBUG][       Thread-607781][   transport.py][1871] : client lang: <none>
2025-07-01 14:35:57,334 [DEBUG][       Thread-607781][   transport.py][1871] : server lang: <none>
2025-07-01 14:35:57,334 [DEBUG][       Thread-607781][   transport.py][1871] : kex follows: False
2025-07-01 14:35:57,334 [DEBUG][       Thread-607781][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:35:57,334 [DEBUG][       Thread-607781][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:35:57,334 [DEBUG][       Thread-607781][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:35:57,334 [DEBUG][       Thread-607781][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:35:57,334 [DEBUG][       Thread-607781][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:35:57,334 [DEBUG][       Thread-607781][   transport.py][1871] : Compression: none
2025-07-01 14:35:57,334 [DEBUG][       Thread-607781][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:35:57,392 [DEBUG][       Thread-607781][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:35:57,392 [DEBUG][       Thread-607781][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:35:57,392 [DEBUG][       Thread-607781][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:35:57,392 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:35:57,392 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:35:57,449 [DEBUG][       Thread-607781][   transport.py][1871] : userauth is OK
2025-07-01 14:35:57,449 [DEBUG][       Thread-607781][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:35:57,449 [DEBUG][       Thread-607781][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:35:57,449 [DEBUG][       Thread-607781][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:35:57,449 [DEBUG][       Thread-607781][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:35:57,464 [ INFO][       Thread-607781][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:35:57,464 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:35:57,464 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:35:58,489 [DEBUG][       Thread-607781][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:35:58,489 [DEBUG][       Thread-607781][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:35:58,539 [DEBUG][       Thread-607781][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:35:58,540 [DEBUG][       Thread-607781][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:35:58,548 [DEBUG][       Thread-607781][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:35:58,556 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:35:58,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-07-01 14:35:58,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-07-01 14:35:58,571 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:35:58,571 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:35:58,571 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:35:58,579 [DEBUG][       Thread-607781][   transport.py][1871] : EOF in transport thread
2025-07-01 14:35:59,866 [DEBUG][Thread-607783 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:36:08,582 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:36:08,582 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:36:08,582 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:36:08,585 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:36:08,893 [DEBUG][Thread-607784 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:36:09,072 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 35, 42), 11.02, 47.41, 0.0, 33.17, 13.81, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:36:09,072 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:35:42
2025-07-01 14:36:09,158 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:36:09,161 [DEBUG][       Thread-607785][   transport.py][1871] : starting thread (client mode): 0x81a5300
2025-07-01 14:36:09,161 [DEBUG][       Thread-607785][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:36:09,181 [DEBUG][       Thread-607785][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:36:09,181 [ INFO][       Thread-607785][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:36:09,185 [DEBUG][       Thread-607785][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:36:09,185 [DEBUG][       Thread-607785][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:36:09,185 [DEBUG][       Thread-607785][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:36:09,185 [DEBUG][       Thread-607785][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:36:09,185 [DEBUG][       Thread-607785][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:36:09,185 [DEBUG][       Thread-607785][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:36:09,185 [DEBUG][       Thread-607785][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:36:09,185 [DEBUG][       Thread-607785][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:36:09,185 [DEBUG][       Thread-607785][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:36:09,185 [DEBUG][       Thread-607785][   transport.py][1871] : client lang: <none>
2025-07-01 14:36:09,185 [DEBUG][       Thread-607785][   transport.py][1871] : server lang: <none>
2025-07-01 14:36:09,185 [DEBUG][       Thread-607785][   transport.py][1871] : kex follows: False
2025-07-01 14:36:09,185 [DEBUG][       Thread-607785][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:36:09,185 [DEBUG][       Thread-607785][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:36:09,185 [DEBUG][       Thread-607785][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:36:09,185 [DEBUG][       Thread-607785][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:36:09,185 [DEBUG][       Thread-607785][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:36:09,185 [DEBUG][       Thread-607785][   transport.py][1871] : Compression: none
2025-07-01 14:36:09,185 [DEBUG][       Thread-607785][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:36:09,199 [DEBUG][       Thread-607785][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:36:09,200 [DEBUG][       Thread-607785][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:36:09,200 [DEBUG][       Thread-607785][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:36:09,201 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:36:09,201 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:36:09,202 [DEBUG][       Thread-607785][   transport.py][1871] : userauth is OK
2025-07-01 14:36:09,226 [ INFO][       Thread-607785][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:36:09,226 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:36:09,886 [DEBUG][       Thread-607785][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:36:09,886 [DEBUG][       Thread-607785][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:36:09,929 [DEBUG][       Thread-607785][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:36:09,929 [DEBUG][       Thread-607785][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:36:09,932 [DEBUG][       Thread-607785][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:36:09,946 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:36:09,946 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:36:09,948 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:36:09,950 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:36:09,956 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:36:09,958 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:36:09,958 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:36:09,959 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:36:09,959 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.524941 -999.00  +13.80  33.88     52   +4.10 1 2 2 1 1   887    0 9.06 -23.10 ----- 38.2 33.9 33.6 44.9 15.9 -20.2 15.3 -20.6 15.4 -19.8 16.0 -19.1
2025-07-01 14:36:09,959 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:36:09,959 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:36:09,959 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.524941
2025-07-01 14:36:09,960 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:36:09,960 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:36:09,960 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:36:09,960 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:36:09,960 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:36:09,960 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:35:42', tmtdew=11.02, humidity=47.41, cloud=0.0, wind=33.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:35:54.902', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:36:09,962 [DEBUG][       Thread-607785][   transport.py][1871] : EOF in transport thread
2025-07-01 14:36:10,044 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:36:10,054 [DEBUG][       Thread-607788][   transport.py][1871] : starting thread (client mode): 0x83c8520
2025-07-01 14:36:10,054 [DEBUG][       Thread-607788][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:36:10,069 [DEBUG][       Thread-607788][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:36:10,069 [ INFO][       Thread-607788][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:36:10,077 [DEBUG][       Thread-607788][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:36:10,077 [DEBUG][       Thread-607788][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:36:10,077 [DEBUG][       Thread-607788][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:36:10,077 [DEBUG][       Thread-607788][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:36:10,077 [DEBUG][       Thread-607788][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:36:10,077 [DEBUG][       Thread-607788][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:36:10,077 [DEBUG][       Thread-607788][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:36:10,077 [DEBUG][       Thread-607788][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:36:10,077 [DEBUG][       Thread-607788][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:36:10,077 [DEBUG][       Thread-607788][   transport.py][1871] : client lang: <none>
2025-07-01 14:36:10,077 [DEBUG][       Thread-607788][   transport.py][1871] : server lang: <none>
2025-07-01 14:36:10,077 [DEBUG][       Thread-607788][   transport.py][1871] : kex follows: False
2025-07-01 14:36:10,077 [DEBUG][       Thread-607788][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:36:10,077 [DEBUG][       Thread-607788][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:36:10,077 [DEBUG][       Thread-607788][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:36:10,077 [DEBUG][       Thread-607788][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:36:10,077 [DEBUG][       Thread-607788][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:36:10,077 [DEBUG][       Thread-607788][   transport.py][1871] : Compression: none
2025-07-01 14:36:10,078 [DEBUG][       Thread-607788][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:36:10,135 [DEBUG][       Thread-607788][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:36:10,135 [DEBUG][       Thread-607788][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:36:10,136 [DEBUG][       Thread-607788][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:36:10,136 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:36:10,137 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:36:10,190 [DEBUG][       Thread-607788][   transport.py][1871] : userauth is OK
2025-07-01 14:36:10,191 [DEBUG][       Thread-607788][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:36:10,191 [DEBUG][       Thread-607788][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:36:10,191 [DEBUG][       Thread-607788][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:36:10,191 [DEBUG][       Thread-607788][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:36:10,210 [ INFO][       Thread-607788][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:36:10,210 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:36:10,211 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:36:11,223 [DEBUG][       Thread-607788][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:36:11,223 [DEBUG][       Thread-607788][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:36:11,272 [DEBUG][       Thread-607788][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:36:11,272 [DEBUG][       Thread-607788][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:36:11,282 [DEBUG][       Thread-607788][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:36:11,291 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:36:11,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-07-01 14:36:11,300 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 14:36:11,309 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:36:11,309 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:36:11,310 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:36:11,319 [DEBUG][       Thread-607788][   transport.py][1871] : EOF in transport thread
2025-07-01 14:36:17,914 [DEBUG][Thread-607790 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:36:21,320 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:36:21,320 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:36:21,321 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:36:21,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-07-01 14:36:21,804 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 36, 14), 11.0, 47.33, 0.0, 25.21, 13.79, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:36:21,804 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:36:14
2025-07-01 14:36:21,889 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:36:21,893 [DEBUG][       Thread-607791][   transport.py][1871] : starting thread (client mode): 0x8170c70
2025-07-01 14:36:21,893 [DEBUG][       Thread-607791][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:36:21,914 [DEBUG][       Thread-607791][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:36:21,914 [ INFO][       Thread-607791][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:36:21,917 [DEBUG][       Thread-607791][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:36:21,917 [DEBUG][       Thread-607791][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:36:21,917 [DEBUG][       Thread-607791][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:36:21,917 [DEBUG][       Thread-607791][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:36:21,917 [DEBUG][       Thread-607791][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:36:21,917 [DEBUG][       Thread-607791][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:36:21,917 [DEBUG][       Thread-607791][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:36:21,918 [DEBUG][       Thread-607791][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:36:21,918 [DEBUG][       Thread-607791][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:36:21,918 [DEBUG][       Thread-607791][   transport.py][1871] : client lang: <none>
2025-07-01 14:36:21,918 [DEBUG][       Thread-607791][   transport.py][1871] : server lang: <none>
2025-07-01 14:36:21,918 [DEBUG][       Thread-607791][   transport.py][1871] : kex follows: False
2025-07-01 14:36:21,918 [DEBUG][       Thread-607791][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:36:21,918 [DEBUG][       Thread-607791][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:36:21,918 [DEBUG][       Thread-607791][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:36:21,918 [DEBUG][       Thread-607791][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:36:21,918 [DEBUG][       Thread-607791][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:36:21,918 [DEBUG][       Thread-607791][   transport.py][1871] : Compression: none
2025-07-01 14:36:21,918 [DEBUG][       Thread-607791][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:36:21,934 [DEBUG][       Thread-607791][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:36:21,935 [DEBUG][       Thread-607791][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:36:21,935 [DEBUG][       Thread-607791][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:36:21,935 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:36:21,935 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:36:21,936 [DEBUG][       Thread-607791][   transport.py][1871] : userauth is OK
2025-07-01 14:36:21,949 [ INFO][       Thread-607791][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:36:21,949 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:36:22,641 [DEBUG][       Thread-607791][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:36:22,641 [DEBUG][       Thread-607791][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:36:22,685 [DEBUG][       Thread-607791][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:36:22,685 [DEBUG][       Thread-607791][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:36:22,688 [DEBUG][       Thread-607791][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:36:22,700 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:36:22,700 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:36:22,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:36:22,704 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:36:22,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:36:22,711 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:36:22,711 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:36:22,712 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:36:22,712 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.524941 -999.00  +13.80  33.88     52   +4.10 1 2 2 1 1   887    0 9.06 -23.10 ----- 38.2 33.9 33.6 44.9 15.9 -20.2 15.3 -20.6 15.4 -19.8 16.0 -19.1
2025-07-01 14:36:22,712 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:36:22,712 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:36:22,712 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.524941
2025-07-01 14:36:22,712 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:36:22,713 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:36:22,713 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:36:22,713 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:36:22,713 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:36:22,713 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:36:14', tmtdew=11.0, humidity=47.33, cloud=0.0, wind=25.21, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:35:54.902', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:36:22,714 [DEBUG][       Thread-607791][   transport.py][1871] : EOF in transport thread
2025-07-01 14:36:22,797 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:36:22,809 [DEBUG][       Thread-607794][   transport.py][1871] : starting thread (client mode): 0x8393910
2025-07-01 14:36:22,809 [DEBUG][       Thread-607794][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:36:22,824 [DEBUG][       Thread-607794][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:36:22,824 [ INFO][       Thread-607794][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:36:22,832 [DEBUG][       Thread-607794][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:36:22,832 [DEBUG][       Thread-607794][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:36:22,832 [DEBUG][       Thread-607794][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:36:22,832 [DEBUG][       Thread-607794][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:36:22,832 [DEBUG][       Thread-607794][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:36:22,832 [DEBUG][       Thread-607794][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:36:22,832 [DEBUG][       Thread-607794][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:36:22,832 [DEBUG][       Thread-607794][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:36:22,832 [DEBUG][       Thread-607794][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:36:22,832 [DEBUG][       Thread-607794][   transport.py][1871] : client lang: <none>
2025-07-01 14:36:22,832 [DEBUG][       Thread-607794][   transport.py][1871] : server lang: <none>
2025-07-01 14:36:22,832 [DEBUG][       Thread-607794][   transport.py][1871] : kex follows: False
2025-07-01 14:36:22,833 [DEBUG][       Thread-607794][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:36:22,833 [DEBUG][       Thread-607794][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:36:22,833 [DEBUG][       Thread-607794][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:36:22,833 [DEBUG][       Thread-607794][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:36:22,833 [DEBUG][       Thread-607794][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:36:22,833 [DEBUG][       Thread-607794][   transport.py][1871] : Compression: none
2025-07-01 14:36:22,833 [DEBUG][       Thread-607794][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:36:22,891 [DEBUG][       Thread-607794][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:36:22,892 [DEBUG][       Thread-607794][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:36:22,893 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:36:22,893 [DEBUG][       Thread-607794][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:36:22,894 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:36:22,947 [DEBUG][       Thread-607794][   transport.py][1871] : userauth is OK
2025-07-01 14:36:22,947 [DEBUG][       Thread-607794][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:36:22,947 [DEBUG][       Thread-607794][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:36:22,947 [DEBUG][       Thread-607794][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:36:22,947 [DEBUG][       Thread-607794][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:36:22,967 [ INFO][       Thread-607794][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:36:22,967 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:36:22,967 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:36:24,018 [DEBUG][       Thread-607794][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:36:24,018 [DEBUG][       Thread-607794][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:36:24,068 [DEBUG][       Thread-607794][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:36:24,068 [DEBUG][       Thread-607794][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:36:24,077 [DEBUG][       Thread-607794][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:36:24,086 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:36:24,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-07-01 14:36:24,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-07-01 14:36:24,104 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:36:24,105 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:36:24,105 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:36:24,113 [DEBUG][       Thread-607794][   transport.py][1871] : EOF in transport thread
2025-07-01 14:36:26,937 [DEBUG][Thread-607796 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:36:34,115 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:36:34,116 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:36:34,116 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:36:34,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-07-01 14:36:34,599 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 36, 14), 11.0, 47.33, 0.0, 25.21, 13.79, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:36:34,599 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:36:14
2025-07-01 14:36:34,689 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:36:34,694 [DEBUG][       Thread-607797][   transport.py][1871] : starting thread (client mode): 0x81c8bb0
2025-07-01 14:36:34,694 [DEBUG][       Thread-607797][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:36:34,715 [DEBUG][       Thread-607797][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:36:34,715 [ INFO][       Thread-607797][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:36:34,718 [DEBUG][       Thread-607797][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:36:34,718 [DEBUG][       Thread-607797][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:36:34,718 [DEBUG][       Thread-607797][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:36:34,718 [DEBUG][       Thread-607797][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:36:34,718 [DEBUG][       Thread-607797][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:36:34,718 [DEBUG][       Thread-607797][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:36:34,718 [DEBUG][       Thread-607797][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:36:34,718 [DEBUG][       Thread-607797][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:36:34,718 [DEBUG][       Thread-607797][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:36:34,718 [DEBUG][       Thread-607797][   transport.py][1871] : client lang: <none>
2025-07-01 14:36:34,718 [DEBUG][       Thread-607797][   transport.py][1871] : server lang: <none>
2025-07-01 14:36:34,718 [DEBUG][       Thread-607797][   transport.py][1871] : kex follows: False
2025-07-01 14:36:34,718 [DEBUG][       Thread-607797][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:36:34,718 [DEBUG][       Thread-607797][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:36:34,718 [DEBUG][       Thread-607797][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:36:34,718 [DEBUG][       Thread-607797][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:36:34,718 [DEBUG][       Thread-607797][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:36:34,718 [DEBUG][       Thread-607797][   transport.py][1871] : Compression: none
2025-07-01 14:36:34,718 [DEBUG][       Thread-607797][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:36:34,733 [DEBUG][       Thread-607797][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:36:34,734 [DEBUG][       Thread-607797][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:36:34,734 [DEBUG][       Thread-607797][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:36:34,734 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:36:34,734 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:36:34,735 [DEBUG][       Thread-607797][   transport.py][1871] : userauth is OK
2025-07-01 14:36:34,758 [ INFO][       Thread-607797][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:36:34,759 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:36:35,269 [DEBUG][Thread-607799 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:36:35,410 [DEBUG][       Thread-607797][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:36:35,410 [DEBUG][       Thread-607797][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:36:35,452 [DEBUG][       Thread-607797][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:36:35,452 [DEBUG][       Thread-607797][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:36:35,455 [DEBUG][       Thread-607797][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:36:35,467 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:36:35,467 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:36:35,468 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:36:35,470 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:36:35,473 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:36:35,474 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:36:35,474 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:36:35,475 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:36:35,475 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.524941 -999.00  +13.80  33.88     52   +4.10 1 2 2 1 1   887    0 9.06 -23.10 ----- 38.2 33.9 33.6 44.9 15.9 -20.2 15.3 -20.6 15.4 -19.8 16.0 -19.1
2025-07-01 14:36:35,475 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:36:35,475 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:36:35,475 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.524941
2025-07-01 14:36:35,475 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:36:35,475 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:36:35,475 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:36:35,475 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:36:35,475 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:36:35,475 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:36:14', tmtdew=11.0, humidity=47.33, cloud=0.0, wind=25.21, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:35:54.902', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:36:35,476 [DEBUG][       Thread-607797][   transport.py][1871] : EOF in transport thread
2025-07-01 14:36:35,549 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:36:35,561 [DEBUG][       Thread-607801][   transport.py][1871] : starting thread (client mode): 0x82b3670
2025-07-01 14:36:35,561 [DEBUG][       Thread-607801][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:36:35,577 [DEBUG][       Thread-607801][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:36:35,577 [ INFO][       Thread-607801][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:36:35,584 [DEBUG][       Thread-607801][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:36:35,584 [DEBUG][       Thread-607801][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:36:35,584 [DEBUG][       Thread-607801][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:36:35,584 [DEBUG][       Thread-607801][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:36:35,584 [DEBUG][       Thread-607801][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:36:35,584 [DEBUG][       Thread-607801][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:36:35,584 [DEBUG][       Thread-607801][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:36:35,584 [DEBUG][       Thread-607801][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:36:35,584 [DEBUG][       Thread-607801][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:36:35,584 [DEBUG][       Thread-607801][   transport.py][1871] : client lang: <none>
2025-07-01 14:36:35,584 [DEBUG][       Thread-607801][   transport.py][1871] : server lang: <none>
2025-07-01 14:36:35,584 [DEBUG][       Thread-607801][   transport.py][1871] : kex follows: False
2025-07-01 14:36:35,584 [DEBUG][       Thread-607801][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:36:35,584 [DEBUG][       Thread-607801][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:36:35,584 [DEBUG][       Thread-607801][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:36:35,584 [DEBUG][       Thread-607801][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:36:35,584 [DEBUG][       Thread-607801][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:36:35,584 [DEBUG][       Thread-607801][   transport.py][1871] : Compression: none
2025-07-01 14:36:35,584 [DEBUG][       Thread-607801][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:36:35,641 [DEBUG][       Thread-607801][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:36:35,642 [DEBUG][       Thread-607801][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:36:35,642 [DEBUG][       Thread-607801][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:36:35,642 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:36:35,642 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:36:35,699 [DEBUG][       Thread-607801][   transport.py][1871] : userauth is OK
2025-07-01 14:36:35,699 [DEBUG][       Thread-607801][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:36:35,699 [DEBUG][       Thread-607801][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:36:35,699 [DEBUG][       Thread-607801][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:36:35,699 [DEBUG][       Thread-607801][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:36:35,713 [ INFO][       Thread-607801][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:36:35,713 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:36:35,713 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:36:35,968 [DEBUG][Thread-607803 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:36:36,740 [DEBUG][       Thread-607801][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:36:36,740 [DEBUG][       Thread-607801][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:36:36,791 [DEBUG][       Thread-607801][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:36:36,791 [DEBUG][       Thread-607801][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:36:36,801 [DEBUG][       Thread-607801][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:36:36,810 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:36:36,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')
2025-07-01 14:36:36,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-07-01 14:36:36,826 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:36:36,826 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:36:36,826 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:36:36,834 [DEBUG][       Thread-607801][   transport.py][1871] : EOF in transport thread
2025-07-01 14:36:44,988 [DEBUG][Thread-607804 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:36:46,836 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:36:46,836 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:36:46,836 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:36:46,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-07-01 14:36:47,368 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 36, 14), 11.0, 47.33, 0.0, 25.21, 13.79, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:36:47,368 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:36:14
2025-07-01 14:36:47,459 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:36:47,464 [DEBUG][       Thread-607805][   transport.py][1871] : starting thread (client mode): 0x81cbb20
2025-07-01 14:36:47,464 [DEBUG][       Thread-607805][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:36:47,485 [DEBUG][       Thread-607805][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:36:47,485 [ INFO][       Thread-607805][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:36:47,488 [DEBUG][       Thread-607805][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:36:47,488 [DEBUG][       Thread-607805][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:36:47,488 [DEBUG][       Thread-607805][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:36:47,488 [DEBUG][       Thread-607805][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:36:47,488 [DEBUG][       Thread-607805][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:36:47,488 [DEBUG][       Thread-607805][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:36:47,488 [DEBUG][       Thread-607805][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:36:47,488 [DEBUG][       Thread-607805][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:36:47,488 [DEBUG][       Thread-607805][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:36:47,488 [DEBUG][       Thread-607805][   transport.py][1871] : client lang: <none>
2025-07-01 14:36:47,488 [DEBUG][       Thread-607805][   transport.py][1871] : server lang: <none>
2025-07-01 14:36:47,488 [DEBUG][       Thread-607805][   transport.py][1871] : kex follows: False
2025-07-01 14:36:47,488 [DEBUG][       Thread-607805][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:36:47,488 [DEBUG][       Thread-607805][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:36:47,488 [DEBUG][       Thread-607805][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:36:47,488 [DEBUG][       Thread-607805][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:36:47,488 [DEBUG][       Thread-607805][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:36:47,488 [DEBUG][       Thread-607805][   transport.py][1871] : Compression: none
2025-07-01 14:36:47,488 [DEBUG][       Thread-607805][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:36:47,503 [DEBUG][       Thread-607805][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:36:47,503 [DEBUG][       Thread-607805][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:36:47,503 [DEBUG][       Thread-607805][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:36:47,503 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:36:47,503 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:36:47,504 [DEBUG][       Thread-607805][   transport.py][1871] : userauth is OK
2025-07-01 14:36:47,528 [ INFO][       Thread-607805][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:36:47,529 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:36:48,161 [DEBUG][       Thread-607805][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:36:48,161 [DEBUG][       Thread-607805][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:36:48,204 [DEBUG][       Thread-607805][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:36:48,204 [DEBUG][       Thread-607805][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:36:48,207 [DEBUG][       Thread-607805][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:36:48,221 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:36:48,221 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:36:48,222 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:36:48,223 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:36:48,225 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:36:48,226 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:36:48,226 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:36:48,226 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:36:48,226 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.525288 -999.00  +13.70  31.91     52   +4.00 1 2 2 1 1   887    0 9.12 -22.43 ----- 37.6 31.9 23.9 44.1 15.9 -20.6 15.3 -21.1 15.4 -19.5 16.0 -19.3
2025-07-01 14:36:48,226 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:36:48,226 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:36:48,226 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.525288
2025-07-01 14:36:48,226 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:36:48,227 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:36:48,227 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:36:48,227 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:36:48,227 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:36:48,227 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:36:14', tmtdew=11.0, humidity=47.33, cloud=0.0, wind=25.21, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:36:24.883', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:36:48,227 [DEBUG][       Thread-607805][   transport.py][1871] : EOF in transport thread
2025-07-01 14:36:48,301 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:36:48,310 [DEBUG][       Thread-607808][   transport.py][1871] : starting thread (client mode): 0x81d9810
2025-07-01 14:36:48,310 [DEBUG][       Thread-607808][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:36:48,325 [DEBUG][       Thread-607808][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:36:48,326 [ INFO][       Thread-607808][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:36:48,333 [DEBUG][       Thread-607808][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:36:48,333 [DEBUG][       Thread-607808][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:36:48,333 [DEBUG][       Thread-607808][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:36:48,333 [DEBUG][       Thread-607808][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:36:48,333 [DEBUG][       Thread-607808][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:36:48,333 [DEBUG][       Thread-607808][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:36:48,333 [DEBUG][       Thread-607808][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:36:48,333 [DEBUG][       Thread-607808][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:36:48,333 [DEBUG][       Thread-607808][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:36:48,333 [DEBUG][       Thread-607808][   transport.py][1871] : client lang: <none>
2025-07-01 14:36:48,333 [DEBUG][       Thread-607808][   transport.py][1871] : server lang: <none>
2025-07-01 14:36:48,333 [DEBUG][       Thread-607808][   transport.py][1871] : kex follows: False
2025-07-01 14:36:48,333 [DEBUG][       Thread-607808][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:36:48,333 [DEBUG][       Thread-607808][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:36:48,333 [DEBUG][       Thread-607808][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:36:48,333 [DEBUG][       Thread-607808][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:36:48,333 [DEBUG][       Thread-607808][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:36:48,333 [DEBUG][       Thread-607808][   transport.py][1871] : Compression: none
2025-07-01 14:36:48,334 [DEBUG][       Thread-607808][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:36:48,392 [DEBUG][       Thread-607808][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:36:48,393 [DEBUG][       Thread-607808][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:36:48,393 [DEBUG][       Thread-607808][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:36:48,393 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:36:48,394 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:36:48,448 [DEBUG][       Thread-607808][   transport.py][1871] : userauth is OK
2025-07-01 14:36:48,448 [DEBUG][       Thread-607808][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:36:48,448 [DEBUG][       Thread-607808][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:36:48,448 [DEBUG][       Thread-607808][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:36:48,448 [DEBUG][       Thread-607808][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:36:48,466 [ INFO][       Thread-607808][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:36:48,467 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:36:48,467 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:36:49,503 [DEBUG][       Thread-607808][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:36:49,503 [DEBUG][       Thread-607808][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:36:49,552 [DEBUG][       Thread-607808][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:36:49,552 [DEBUG][       Thread-607808][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:36:49,561 [DEBUG][       Thread-607808][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:36:49,571 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:36:49,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-07-01 14:36:49,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-07-01 14:36:49,589 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:36:49,589 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:36:49,590 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:36:49,597 [DEBUG][       Thread-607808][   transport.py][1871] : EOF in transport thread
2025-07-01 14:36:54,009 [DEBUG][Thread-607810 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:36:59,600 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:36:59,600 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:36:59,600 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:36:59,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-07-01 14:37:00,085 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 36, 46), 10.99, 47.41, 0.0, 22.55, 13.85, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:37:00,085 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:36:46
2025-07-01 14:37:00,172 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:37:00,177 [DEBUG][       Thread-607811][   transport.py][1871] : starting thread (client mode): 0x8170c70
2025-07-01 14:37:00,177 [DEBUG][       Thread-607811][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:37:00,197 [DEBUG][       Thread-607811][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:37:00,197 [ INFO][       Thread-607811][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:37:00,201 [DEBUG][       Thread-607811][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:37:00,201 [DEBUG][       Thread-607811][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:37:00,201 [DEBUG][       Thread-607811][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:37:00,201 [DEBUG][       Thread-607811][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:37:00,201 [DEBUG][       Thread-607811][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:37:00,201 [DEBUG][       Thread-607811][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:37:00,201 [DEBUG][       Thread-607811][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:37:00,201 [DEBUG][       Thread-607811][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:37:00,201 [DEBUG][       Thread-607811][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:37:00,201 [DEBUG][       Thread-607811][   transport.py][1871] : client lang: <none>
2025-07-01 14:37:00,201 [DEBUG][       Thread-607811][   transport.py][1871] : server lang: <none>
2025-07-01 14:37:00,201 [DEBUG][       Thread-607811][   transport.py][1871] : kex follows: False
2025-07-01 14:37:00,201 [DEBUG][       Thread-607811][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:37:00,201 [DEBUG][       Thread-607811][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:37:00,201 [DEBUG][       Thread-607811][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:37:00,201 [DEBUG][       Thread-607811][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:37:00,201 [DEBUG][       Thread-607811][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:37:00,201 [DEBUG][       Thread-607811][   transport.py][1871] : Compression: none
2025-07-01 14:37:00,201 [DEBUG][       Thread-607811][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:37:00,218 [DEBUG][       Thread-607811][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:37:00,218 [DEBUG][       Thread-607811][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:37:00,219 [DEBUG][       Thread-607811][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:37:00,219 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:37:00,219 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:37:00,220 [DEBUG][       Thread-607811][   transport.py][1871] : userauth is OK
2025-07-01 14:37:00,233 [ INFO][       Thread-607811][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:37:00,234 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:37:00,877 [DEBUG][       Thread-607811][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:37:00,878 [DEBUG][       Thread-607811][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:37:00,921 [DEBUG][       Thread-607811][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:37:00,921 [DEBUG][       Thread-607811][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:37:00,924 [DEBUG][       Thread-607811][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:37:00,936 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:37:00,937 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:37:00,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:37:00,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:37:00,946 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:37:00,948 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:37:00,948 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:37:00,949 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:37:00,949 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.525288 -999.00  +13.70  31.91     52   +4.00 1 2 2 1 1   887    0 9.12 -22.43 ----- 37.6 31.9 23.9 44.1 15.9 -20.6 15.3 -21.1 15.4 -19.5 16.0 -19.3
2025-07-01 14:37:00,949 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:37:00,949 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:37:00,949 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.525288
2025-07-01 14:37:00,950 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:37:00,950 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:37:00,950 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:37:00,950 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:37:00,951 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:37:00,951 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:36:46', tmtdew=10.99, humidity=47.41, cloud=0.0, wind=22.55, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:36:24.883', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:37:00,952 [DEBUG][       Thread-607811][   transport.py][1871] : EOF in transport thread
2025-07-01 14:37:01,034 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:37:01,045 [DEBUG][       Thread-607814][   transport.py][1871] : starting thread (client mode): 0x818f520
2025-07-01 14:37:01,045 [DEBUG][       Thread-607814][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:37:01,060 [DEBUG][       Thread-607814][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:37:01,060 [ INFO][       Thread-607814][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:37:01,068 [DEBUG][       Thread-607814][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:37:01,068 [DEBUG][       Thread-607814][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:37:01,068 [DEBUG][       Thread-607814][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:37:01,068 [DEBUG][       Thread-607814][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:37:01,068 [DEBUG][       Thread-607814][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:37:01,068 [DEBUG][       Thread-607814][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:37:01,068 [DEBUG][       Thread-607814][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:37:01,068 [DEBUG][       Thread-607814][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:37:01,068 [DEBUG][       Thread-607814][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:37:01,068 [DEBUG][       Thread-607814][   transport.py][1871] : client lang: <none>
2025-07-01 14:37:01,068 [DEBUG][       Thread-607814][   transport.py][1871] : server lang: <none>
2025-07-01 14:37:01,068 [DEBUG][       Thread-607814][   transport.py][1871] : kex follows: False
2025-07-01 14:37:01,068 [DEBUG][       Thread-607814][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:37:01,068 [DEBUG][       Thread-607814][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:37:01,068 [DEBUG][       Thread-607814][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:37:01,068 [DEBUG][       Thread-607814][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:37:01,069 [DEBUG][       Thread-607814][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:37:01,069 [DEBUG][       Thread-607814][   transport.py][1871] : Compression: none
2025-07-01 14:37:01,069 [DEBUG][       Thread-607814][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:37:01,124 [DEBUG][       Thread-607814][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:37:01,125 [DEBUG][       Thread-607814][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:37:01,125 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:37:01,126 [DEBUG][       Thread-607814][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:37:01,126 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:37:01,180 [DEBUG][       Thread-607814][   transport.py][1871] : userauth is OK
2025-07-01 14:37:01,180 [DEBUG][       Thread-607814][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:37:01,180 [DEBUG][       Thread-607814][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:37:01,180 [DEBUG][       Thread-607814][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:37:01,181 [DEBUG][       Thread-607814][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:37:01,199 [ INFO][       Thread-607814][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:37:01,199 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:37:01,208 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:37:02,212 [DEBUG][       Thread-607814][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:37:02,212 [DEBUG][       Thread-607814][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:37:02,260 [DEBUG][       Thread-607814][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:37:02,261 [DEBUG][       Thread-607814][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:37:02,270 [DEBUG][       Thread-607814][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:37:02,279 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:37:02,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-07-01 14:37:02,289 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 14:37:02,298 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:37:02,298 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:37:02,299 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:37:02,306 [DEBUG][       Thread-607814][   transport.py][1871] : EOF in transport thread
2025-07-01 14:37:03,030 [DEBUG][Thread-607816 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:37:12,062 [DEBUG][Thread-607817 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:37:12,309 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:37:12,309 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:37:12,309 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:37:12,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-07-01 14:37:12,802 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 36, 46), 10.99, 47.41, 0.0, 22.55, 13.85, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:37:12,802 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:36:46
2025-07-01 14:37:12,890 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:37:12,895 [DEBUG][       Thread-607818][   transport.py][1871] : starting thread (client mode): 0x8173a60
2025-07-01 14:37:12,895 [DEBUG][       Thread-607818][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:37:12,915 [DEBUG][       Thread-607818][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:37:12,915 [ INFO][       Thread-607818][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:37:12,918 [DEBUG][       Thread-607818][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:37:12,918 [DEBUG][       Thread-607818][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:37:12,918 [DEBUG][       Thread-607818][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:37:12,918 [DEBUG][       Thread-607818][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:37:12,918 [DEBUG][       Thread-607818][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:37:12,918 [DEBUG][       Thread-607818][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:37:12,918 [DEBUG][       Thread-607818][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:37:12,918 [DEBUG][       Thread-607818][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:37:12,918 [DEBUG][       Thread-607818][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:37:12,918 [DEBUG][       Thread-607818][   transport.py][1871] : client lang: <none>
2025-07-01 14:37:12,918 [DEBUG][       Thread-607818][   transport.py][1871] : server lang: <none>
2025-07-01 14:37:12,918 [DEBUG][       Thread-607818][   transport.py][1871] : kex follows: False
2025-07-01 14:37:12,918 [DEBUG][       Thread-607818][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:37:12,918 [DEBUG][       Thread-607818][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:37:12,918 [DEBUG][       Thread-607818][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:37:12,918 [DEBUG][       Thread-607818][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:37:12,918 [DEBUG][       Thread-607818][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:37:12,918 [DEBUG][       Thread-607818][   transport.py][1871] : Compression: none
2025-07-01 14:37:12,918 [DEBUG][       Thread-607818][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:37:12,928 [DEBUG][       Thread-607818][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:37:12,928 [DEBUG][       Thread-607818][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:37:12,929 [DEBUG][       Thread-607818][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:37:12,929 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:37:12,929 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:37:12,929 [DEBUG][       Thread-607818][   transport.py][1871] : userauth is OK
2025-07-01 14:37:12,942 [ INFO][       Thread-607818][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:37:12,942 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:37:13,554 [DEBUG][       Thread-607818][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:37:13,554 [DEBUG][       Thread-607818][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:37:13,596 [DEBUG][       Thread-607818][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:37:13,596 [DEBUG][       Thread-607818][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:37:13,598 [DEBUG][       Thread-607818][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:37:13,612 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:37:13,612 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:37:13,613 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:37:13,614 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:37:13,617 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:37:13,618 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:37:13,618 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:37:13,618 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:37:13,618 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.525635 -999.00  +13.50  35.52     52   +3.90 1 2 2 1 1   887    0 8.93 -21.18 ----- 46.4 35.5 10.9 48.7 15.8 -21.0 15.3 -21.7 15.3 -20.2 15.8 -21.1
2025-07-01 14:37:13,618 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:37:13,618 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:37:13,618 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.525635
2025-07-01 14:37:13,619 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:37:13,619 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:37:13,619 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:37:13,619 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:37:13,619 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:37:13,619 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:36:46', tmtdew=10.99, humidity=47.41, cloud=0.0, wind=22.55, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:36:54.864', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:37:13,619 [DEBUG][       Thread-607818][   transport.py][1871] : EOF in transport thread
2025-07-01 14:37:13,691 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:37:13,701 [DEBUG][       Thread-607821][   transport.py][1871] : starting thread (client mode): 0x75a8250
2025-07-01 14:37:13,701 [DEBUG][       Thread-607821][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:37:13,715 [DEBUG][       Thread-607821][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:37:13,715 [ INFO][       Thread-607821][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:37:13,723 [DEBUG][       Thread-607821][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:37:13,723 [DEBUG][       Thread-607821][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:37:13,723 [DEBUG][       Thread-607821][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:37:13,723 [DEBUG][       Thread-607821][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:37:13,723 [DEBUG][       Thread-607821][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:37:13,723 [DEBUG][       Thread-607821][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:37:13,723 [DEBUG][       Thread-607821][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:37:13,723 [DEBUG][       Thread-607821][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:37:13,723 [DEBUG][       Thread-607821][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:37:13,723 [DEBUG][       Thread-607821][   transport.py][1871] : client lang: <none>
2025-07-01 14:37:13,723 [DEBUG][       Thread-607821][   transport.py][1871] : server lang: <none>
2025-07-01 14:37:13,723 [DEBUG][       Thread-607821][   transport.py][1871] : kex follows: False
2025-07-01 14:37:13,723 [DEBUG][       Thread-607821][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:37:13,723 [DEBUG][       Thread-607821][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:37:13,723 [DEBUG][       Thread-607821][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:37:13,723 [DEBUG][       Thread-607821][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:37:13,723 [DEBUG][       Thread-607821][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:37:13,723 [DEBUG][       Thread-607821][   transport.py][1871] : Compression: none
2025-07-01 14:37:13,723 [DEBUG][       Thread-607821][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:37:13,779 [DEBUG][       Thread-607821][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:37:13,779 [DEBUG][       Thread-607821][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:37:13,779 [DEBUG][       Thread-607821][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:37:13,779 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:37:13,779 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:37:13,836 [DEBUG][       Thread-607821][   transport.py][1871] : userauth is OK
2025-07-01 14:37:13,836 [DEBUG][       Thread-607821][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:37:13,836 [DEBUG][       Thread-607821][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:37:13,836 [DEBUG][       Thread-607821][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:37:13,836 [DEBUG][       Thread-607821][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:37:13,850 [ INFO][       Thread-607821][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:37:13,850 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:37:13,850 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:37:14,868 [DEBUG][       Thread-607821][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:37:14,868 [DEBUG][       Thread-607821][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:37:14,919 [DEBUG][       Thread-607821][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:37:14,919 [DEBUG][       Thread-607821][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:37:14,927 [DEBUG][       Thread-607821][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:37:14,935 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:37: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')
2025-07-01 14:37:14,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') -> 00000000
2025-07-01 14:37:14,951 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:37:14,951 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:37:14,951 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:37:14,959 [DEBUG][       Thread-607821][   transport.py][1871] : EOF in transport thread
2025-07-01 14:37:21,078 [DEBUG][Thread-607823 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:37:24,962 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:37:24,962 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:37:24,962 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:37:24,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-07-01 14:37:25,431 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 37, 18), 10.94, 47.66, 0.0, 31.25, 13.8, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:37:25,431 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:37:18
2025-07-01 14:37:25,516 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:37:25,521 [DEBUG][       Thread-607824][   transport.py][1871] : starting thread (client mode): 0x81a46a0
2025-07-01 14:37:25,522 [DEBUG][       Thread-607824][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:37:25,542 [DEBUG][       Thread-607824][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:37:25,542 [ INFO][       Thread-607824][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:37:25,545 [DEBUG][       Thread-607824][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:37:25,545 [DEBUG][       Thread-607824][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:37:25,545 [DEBUG][       Thread-607824][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:37:25,545 [DEBUG][       Thread-607824][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:37:25,545 [DEBUG][       Thread-607824][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:37:25,545 [DEBUG][       Thread-607824][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:37:25,545 [DEBUG][       Thread-607824][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:37:25,545 [DEBUG][       Thread-607824][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:37:25,545 [DEBUG][       Thread-607824][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:37:25,546 [DEBUG][       Thread-607824][   transport.py][1871] : client lang: <none>
2025-07-01 14:37:25,546 [DEBUG][       Thread-607824][   transport.py][1871] : server lang: <none>
2025-07-01 14:37:25,546 [DEBUG][       Thread-607824][   transport.py][1871] : kex follows: False
2025-07-01 14:37:25,546 [DEBUG][       Thread-607824][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:37:25,546 [DEBUG][       Thread-607824][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:37:25,546 [DEBUG][       Thread-607824][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:37:25,546 [DEBUG][       Thread-607824][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:37:25,546 [DEBUG][       Thread-607824][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:37:25,546 [DEBUG][       Thread-607824][   transport.py][1871] : Compression: none
2025-07-01 14:37:25,546 [DEBUG][       Thread-607824][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:37:25,563 [DEBUG][       Thread-607824][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:37:25,563 [DEBUG][       Thread-607824][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:37:25,564 [DEBUG][       Thread-607824][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:37:25,564 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:37:25,564 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:37:25,565 [DEBUG][       Thread-607824][   transport.py][1871] : userauth is OK
2025-07-01 14:37:25,578 [ INFO][       Thread-607824][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:37:25,579 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:37:26,236 [DEBUG][       Thread-607824][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:37:26,236 [DEBUG][       Thread-607824][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:37:26,277 [DEBUG][       Thread-607824][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:37:26,277 [DEBUG][       Thread-607824][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:37:26,281 [DEBUG][       Thread-607824][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:37:26,294 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:37:26,295 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:37:26,297 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:37:26,299 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:37:26,305 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:37:26,307 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:37:26,307 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:37:26,308 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:37:26,308 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.525635 -999.00  +13.50  35.52     52   +3.90 1 2 2 1 1   887    0 8.93 -21.18 ----- 46.4 35.5 10.9 48.7 15.8 -21.0 15.3 -21.7 15.3 -20.2 15.8 -21.1
2025-07-01 14:37:26,308 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:37:26,308 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:37:26,308 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.525635
2025-07-01 14:37:26,309 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:37:26,309 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:37:26,309 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:37:26,309 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:37:26,310 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:37:26,310 [DEBUG][       Thread-607824][   transport.py][1871] : EOF in transport thread
2025-07-01 14:37:26,310 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:37:18', tmtdew=10.94, humidity=47.66, cloud=0.0, wind=31.25, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:36:54.864', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:37:26,394 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:37:26,406 [DEBUG][       Thread-607827][   transport.py][1871] : starting thread (client mode): 0x82b0a00
2025-07-01 14:37:26,406 [DEBUG][       Thread-607827][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:37:26,421 [DEBUG][       Thread-607827][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:37:26,421 [ INFO][       Thread-607827][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:37:26,428 [DEBUG][       Thread-607827][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:37:26,429 [DEBUG][       Thread-607827][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:37:26,429 [DEBUG][       Thread-607827][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:37:26,429 [DEBUG][       Thread-607827][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:37:26,429 [DEBUG][       Thread-607827][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:37:26,429 [DEBUG][       Thread-607827][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:37:26,429 [DEBUG][       Thread-607827][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:37:26,429 [DEBUG][       Thread-607827][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:37:26,429 [DEBUG][       Thread-607827][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:37:26,429 [DEBUG][       Thread-607827][   transport.py][1871] : client lang: <none>
2025-07-01 14:37:26,429 [DEBUG][       Thread-607827][   transport.py][1871] : server lang: <none>
2025-07-01 14:37:26,429 [DEBUG][       Thread-607827][   transport.py][1871] : kex follows: False
2025-07-01 14:37:26,429 [DEBUG][       Thread-607827][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:37:26,429 [DEBUG][       Thread-607827][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:37:26,429 [DEBUG][       Thread-607827][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:37:26,429 [DEBUG][       Thread-607827][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:37:26,429 [DEBUG][       Thread-607827][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:37:26,429 [DEBUG][       Thread-607827][   transport.py][1871] : Compression: none
2025-07-01 14:37:26,430 [DEBUG][       Thread-607827][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:37:26,493 [DEBUG][       Thread-607827][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:37:26,494 [DEBUG][       Thread-607827][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:37:26,494 [DEBUG][       Thread-607827][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:37:26,495 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:37:26,495 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:37:26,549 [DEBUG][       Thread-607827][   transport.py][1871] : userauth is OK
2025-07-01 14:37:26,549 [DEBUG][       Thread-607827][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:37:26,558 [DEBUG][       Thread-607827][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:37:26,559 [DEBUG][       Thread-607827][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:37:26,559 [DEBUG][       Thread-607827][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:37:26,579 [ INFO][       Thread-607827][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:37:26,579 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:37:26,579 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:37:27,587 [DEBUG][       Thread-607827][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:37:27,587 [DEBUG][       Thread-607827][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:37:27,636 [DEBUG][       Thread-607827][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:37:27,637 [DEBUG][       Thread-607827][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:37:27,646 [DEBUG][       Thread-607827][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:37:27,655 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:37:27,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-07-01 14:37:27,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-07-01 14:37:27,672 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:37:27,673 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:37:27,673 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:37:27,681 [DEBUG][       Thread-607827][   transport.py][1871] : EOF in transport thread
2025-07-01 14:37:30,101 [DEBUG][Thread-607829 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:37:35,299 [DEBUG][Thread-607830 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:37:37,683 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:37:37,684 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:37:37,684 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:37:37,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-07-01 14:37:38,163 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 37, 18), 10.94, 47.66, 0.0, 31.25, 13.8, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:37:38,163 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:37:18
2025-07-01 14:37:38,248 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:37:38,252 [DEBUG][       Thread-607831][   transport.py][1871] : starting thread (client mode): 0x81700d0
2025-07-01 14:37:38,252 [DEBUG][       Thread-607831][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:37:38,272 [DEBUG][       Thread-607831][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:37:38,272 [ INFO][       Thread-607831][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:37:38,276 [DEBUG][       Thread-607831][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:37:38,276 [DEBUG][       Thread-607831][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:37:38,276 [DEBUG][       Thread-607831][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:37:38,276 [DEBUG][       Thread-607831][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:37:38,276 [DEBUG][       Thread-607831][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:37:38,276 [DEBUG][       Thread-607831][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:37:38,276 [DEBUG][       Thread-607831][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:37:38,276 [DEBUG][       Thread-607831][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:37:38,276 [DEBUG][       Thread-607831][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:37:38,276 [DEBUG][       Thread-607831][   transport.py][1871] : client lang: <none>
2025-07-01 14:37:38,276 [DEBUG][       Thread-607831][   transport.py][1871] : server lang: <none>
2025-07-01 14:37:38,276 [DEBUG][       Thread-607831][   transport.py][1871] : kex follows: False
2025-07-01 14:37:38,276 [DEBUG][       Thread-607831][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:37:38,276 [DEBUG][       Thread-607831][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:37:38,276 [DEBUG][       Thread-607831][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:37:38,276 [DEBUG][       Thread-607831][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:37:38,276 [DEBUG][       Thread-607831][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:37:38,276 [DEBUG][       Thread-607831][   transport.py][1871] : Compression: none
2025-07-01 14:37:38,276 [DEBUG][       Thread-607831][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:37:38,293 [DEBUG][       Thread-607831][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:37:38,294 [DEBUG][       Thread-607831][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:37:38,294 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:37:38,294 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:37:38,295 [DEBUG][       Thread-607831][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:37:38,295 [DEBUG][       Thread-607831][   transport.py][1871] : userauth is OK
2025-07-01 14:37:38,320 [ INFO][       Thread-607831][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:37:38,321 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:37:38,976 [DEBUG][       Thread-607831][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:37:38,977 [DEBUG][       Thread-607831][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:37:39,021 [DEBUG][       Thread-607831][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:37:39,022 [DEBUG][       Thread-607831][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:37:39,025 [DEBUG][       Thread-607831][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:37:39,037 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:37:39,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:37:39,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:37:39,042 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:37:39,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:37:39,050 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:37:39,050 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:37:39,051 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:37:39,051 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.525635 -999.00  +13.50  35.52     52   +3.90 1 2 2 1 1   887    0 8.93 -21.18 ----- 46.4 35.5 10.9 48.7 15.8 -21.0 15.3 -21.7 15.3 -20.2 15.8 -21.1
2025-07-01 14:37:39,051 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:37:39,051 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:37:39,051 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.525635
2025-07-01 14:37:39,052 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:37:39,052 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:37:39,053 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:37:39,053 [DEBUG][       Thread-607831][   transport.py][1871] : EOF in transport thread
2025-07-01 14:37:39,053 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:37:39,053 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:37:39,054 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:37:18', tmtdew=10.94, humidity=47.66, cloud=0.0, wind=31.25, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:36:54.864', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:37:39,134 [DEBUG][Thread-607834 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:37:39,136 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:37:39,146 [DEBUG][       Thread-607835][   transport.py][1871] : starting thread (client mode): 0x81cabf0
2025-07-01 14:37:39,146 [DEBUG][       Thread-607835][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:37:39,161 [DEBUG][       Thread-607835][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:37:39,161 [ INFO][       Thread-607835][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:37:39,168 [DEBUG][       Thread-607835][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:37:39,169 [DEBUG][       Thread-607835][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:37:39,169 [DEBUG][       Thread-607835][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:37:39,169 [DEBUG][       Thread-607835][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:37:39,169 [DEBUG][       Thread-607835][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:37:39,169 [DEBUG][       Thread-607835][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:37:39,169 [DEBUG][       Thread-607835][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:37:39,169 [DEBUG][       Thread-607835][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:37:39,169 [DEBUG][       Thread-607835][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:37:39,169 [DEBUG][       Thread-607835][   transport.py][1871] : client lang: <none>
2025-07-01 14:37:39,169 [DEBUG][       Thread-607835][   transport.py][1871] : server lang: <none>
2025-07-01 14:37:39,169 [DEBUG][       Thread-607835][   transport.py][1871] : kex follows: False
2025-07-01 14:37:39,169 [DEBUG][       Thread-607835][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:37:39,169 [DEBUG][       Thread-607835][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:37:39,169 [DEBUG][       Thread-607835][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:37:39,169 [DEBUG][       Thread-607835][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:37:39,169 [DEBUG][       Thread-607835][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:37:39,169 [DEBUG][       Thread-607835][   transport.py][1871] : Compression: none
2025-07-01 14:37:39,169 [DEBUG][       Thread-607835][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:37:39,228 [DEBUG][       Thread-607835][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:37:39,229 [DEBUG][       Thread-607835][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:37:39,229 [DEBUG][       Thread-607835][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:37:39,230 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:37:39,230 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:37:39,288 [DEBUG][       Thread-607835][   transport.py][1871] : userauth is OK
2025-07-01 14:37:39,288 [DEBUG][       Thread-607835][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:37:39,289 [DEBUG][       Thread-607835][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:37:39,289 [DEBUG][       Thread-607835][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:37:39,289 [DEBUG][       Thread-607835][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:37:39,307 [ INFO][       Thread-607835][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:37:39,307 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:37:39,307 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:37:40,311 [DEBUG][       Thread-607835][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:37:40,311 [DEBUG][       Thread-607835][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:37:40,361 [DEBUG][       Thread-607835][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:37:40,361 [DEBUG][       Thread-607835][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:37:40,373 [DEBUG][       Thread-607835][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:37:40,382 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:37:40,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-07-01 14:37:40,397 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 14:37:40,406 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:37:40,406 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:37:40,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:37:40,415 [DEBUG][       Thread-607835][   transport.py][1871] : EOF in transport thread
2025-07-01 14:37:48,155 [DEBUG][Thread-607837 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:37:50,416 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:37:50,416 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:37:50,416 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:37:50,417 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:37:50,926 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 37, 18), 10.94, 47.66, 0.0, 31.25, 13.8, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:37:50,926 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:37:18
2025-07-01 14:37:51,038 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:37:51,043 [DEBUG][       Thread-607838][   transport.py][1871] : starting thread (client mode): 0x75aa890
2025-07-01 14:37:51,044 [DEBUG][       Thread-607838][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:37:51,064 [DEBUG][       Thread-607838][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:37:51,064 [ INFO][       Thread-607838][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:37:51,067 [DEBUG][       Thread-607838][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:37:51,067 [DEBUG][       Thread-607838][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:37:51,067 [DEBUG][       Thread-607838][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:37:51,067 [DEBUG][       Thread-607838][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:37:51,067 [DEBUG][       Thread-607838][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:37:51,067 [DEBUG][       Thread-607838][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:37:51,067 [DEBUG][       Thread-607838][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:37:51,067 [DEBUG][       Thread-607838][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:37:51,067 [DEBUG][       Thread-607838][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:37:51,067 [DEBUG][       Thread-607838][   transport.py][1871] : client lang: <none>
2025-07-01 14:37:51,067 [DEBUG][       Thread-607838][   transport.py][1871] : server lang: <none>
2025-07-01 14:37:51,067 [DEBUG][       Thread-607838][   transport.py][1871] : kex follows: False
2025-07-01 14:37:51,067 [DEBUG][       Thread-607838][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:37:51,067 [DEBUG][       Thread-607838][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:37:51,067 [DEBUG][       Thread-607838][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:37:51,067 [DEBUG][       Thread-607838][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:37:51,068 [DEBUG][       Thread-607838][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:37:51,068 [DEBUG][       Thread-607838][   transport.py][1871] : Compression: none
2025-07-01 14:37:51,068 [DEBUG][       Thread-607838][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:37:51,081 [DEBUG][       Thread-607838][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:37:51,081 [DEBUG][       Thread-607838][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:37:51,081 [DEBUG][       Thread-607838][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:37:51,081 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:37:51,081 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:37:51,082 [DEBUG][       Thread-607838][   transport.py][1871] : userauth is OK
2025-07-01 14:37:51,095 [ INFO][       Thread-607838][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:37:51,095 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:37:51,750 [DEBUG][       Thread-607838][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:37:51,750 [DEBUG][       Thread-607838][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:37:51,792 [DEBUG][       Thread-607838][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:37:51,792 [DEBUG][       Thread-607838][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:37:51,795 [DEBUG][       Thread-607838][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:37:51,809 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:37:51,809 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:37:51,810 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:37:51,811 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:37:51,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:37:51,814 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:37:51,814 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:37:51,814 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:37:51,814 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.525982 -999.00  +13.40  30.65     52   +3.90 1 2 2 1 1   887    0 9.08 -20.82 ----- 35.5 30.6 18.3 50.6 15.8 -20.9 15.2 -21.2 15.2 -19.8 15.8 -19.2
2025-07-01 14:37:51,814 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:37:51,814 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:37:51,814 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.525982
2025-07-01 14:37:51,815 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:37:51,815 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:37:51,815 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:37:51,815 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:37:51,815 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:37:51,815 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:37:18', tmtdew=10.94, humidity=47.66, cloud=0.0, wind=31.25, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:37:24.845', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:37:51,816 [DEBUG][       Thread-607838][   transport.py][1871] : EOF in transport thread
2025-07-01 14:37:51,889 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:37:51,900 [DEBUG][       Thread-607841][   transport.py][1871] : starting thread (client mode): 0x81047c0
2025-07-01 14:37:51,900 [DEBUG][       Thread-607841][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:37:51,916 [DEBUG][       Thread-607841][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:37:51,916 [ INFO][       Thread-607841][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:37:51,923 [DEBUG][       Thread-607841][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:37:51,923 [DEBUG][       Thread-607841][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:37:51,923 [DEBUG][       Thread-607841][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:37:51,923 [DEBUG][       Thread-607841][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:37:51,923 [DEBUG][       Thread-607841][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:37:51,923 [DEBUG][       Thread-607841][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:37:51,923 [DEBUG][       Thread-607841][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:37:51,923 [DEBUG][       Thread-607841][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:37:51,923 [DEBUG][       Thread-607841][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:37:51,923 [DEBUG][       Thread-607841][   transport.py][1871] : client lang: <none>
2025-07-01 14:37:51,923 [DEBUG][       Thread-607841][   transport.py][1871] : server lang: <none>
2025-07-01 14:37:51,923 [DEBUG][       Thread-607841][   transport.py][1871] : kex follows: False
2025-07-01 14:37:51,923 [DEBUG][       Thread-607841][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:37:51,923 [DEBUG][       Thread-607841][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:37:51,923 [DEBUG][       Thread-607841][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:37:51,923 [DEBUG][       Thread-607841][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:37:51,924 [DEBUG][       Thread-607841][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:37:51,924 [DEBUG][       Thread-607841][   transport.py][1871] : Compression: none
2025-07-01 14:37:51,924 [DEBUG][       Thread-607841][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:37:51,980 [DEBUG][       Thread-607841][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:37:51,980 [DEBUG][       Thread-607841][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:37:51,980 [DEBUG][       Thread-607841][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:37:51,980 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:37:51,980 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:37:52,042 [DEBUG][       Thread-607841][   transport.py][1871] : userauth is OK
2025-07-01 14:37:52,042 [DEBUG][       Thread-607841][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:37:52,042 [DEBUG][       Thread-607841][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:37:52,042 [DEBUG][       Thread-607841][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:37:52,042 [DEBUG][       Thread-607841][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:37:52,057 [ INFO][       Thread-607841][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:37:52,057 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:37:52,057 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:37:53,095 [DEBUG][       Thread-607841][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:37:53,095 [DEBUG][       Thread-607841][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:37:53,144 [DEBUG][       Thread-607841][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:37:53,144 [DEBUG][       Thread-607841][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:37:53,154 [DEBUG][       Thread-607841][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:37:53,164 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:37:53,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-07-01 14:37:53,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-07-01 14:37:53,182 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:37:53,182 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:37:53,183 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:37:53,191 [DEBUG][       Thread-607841][   transport.py][1871] : EOF in transport thread
2025-07-01 14:37:57,177 [DEBUG][Thread-607843 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:38:03,193 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:38:03,194 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:38:03,194 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:38:03,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-07-01 14:38:03,654 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 37, 50), 10.97, 47.58, 0.0, 34.92, 13.77, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:38:03,654 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:37:50
2025-07-01 14:38:03,739 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:38:03,743 [DEBUG][       Thread-607844][   transport.py][1871] : starting thread (client mode): 0x75a9c90
2025-07-01 14:38:03,743 [DEBUG][       Thread-607844][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:38:03,764 [DEBUG][       Thread-607844][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:38:03,764 [ INFO][       Thread-607844][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:38:03,768 [DEBUG][       Thread-607844][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:38:03,768 [DEBUG][       Thread-607844][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:38:03,768 [DEBUG][       Thread-607844][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:38:03,768 [DEBUG][       Thread-607844][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:38:03,768 [DEBUG][       Thread-607844][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:38:03,768 [DEBUG][       Thread-607844][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:38:03,768 [DEBUG][       Thread-607844][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:38:03,768 [DEBUG][       Thread-607844][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:38:03,768 [DEBUG][       Thread-607844][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:38:03,768 [DEBUG][       Thread-607844][   transport.py][1871] : client lang: <none>
2025-07-01 14:38:03,768 [DEBUG][       Thread-607844][   transport.py][1871] : server lang: <none>
2025-07-01 14:38:03,768 [DEBUG][       Thread-607844][   transport.py][1871] : kex follows: False
2025-07-01 14:38:03,768 [DEBUG][       Thread-607844][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:38:03,768 [DEBUG][       Thread-607844][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:38:03,768 [DEBUG][       Thread-607844][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:38:03,768 [DEBUG][       Thread-607844][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:38:03,768 [DEBUG][       Thread-607844][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:38:03,768 [DEBUG][       Thread-607844][   transport.py][1871] : Compression: none
2025-07-01 14:38:03,768 [DEBUG][       Thread-607844][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:38:03,785 [DEBUG][       Thread-607844][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:38:03,786 [DEBUG][       Thread-607844][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:38:03,786 [DEBUG][       Thread-607844][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:38:03,787 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:38:03,787 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:38:03,788 [DEBUG][       Thread-607844][   transport.py][1871] : userauth is OK
2025-07-01 14:38:03,812 [ INFO][       Thread-607844][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:38:03,813 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:38:04,490 [DEBUG][       Thread-607844][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:38:04,490 [DEBUG][       Thread-607844][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:38:04,533 [DEBUG][       Thread-607844][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:38:04,533 [DEBUG][       Thread-607844][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:38:04,537 [DEBUG][       Thread-607844][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:38:04,552 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:38:04,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:38:04,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:38:04,556 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:38:04,563 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:38:04,566 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:38:04,566 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:38:04,567 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:38:04,567 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.525982 -999.00  +13.40  30.65     52   +3.90 1 2 2 1 1   887    0 9.08 -20.82 ----- 35.5 30.6 18.3 50.6 15.8 -20.9 15.2 -21.2 15.2 -19.8 15.8 -19.2
2025-07-01 14:38:04,567 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:38:04,567 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:38:04,567 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.525982
2025-07-01 14:38:04,568 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:38:04,568 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:38:04,568 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:38:04,568 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:38:04,569 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:38:04,569 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:37:50', tmtdew=10.97, humidity=47.58, cloud=0.0, wind=34.92, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:37:24.845', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:38:04,569 [DEBUG][       Thread-607844][   transport.py][1871] : EOF in transport thread
2025-07-01 14:38:04,651 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:38:04,661 [DEBUG][       Thread-607847][   transport.py][1871] : starting thread (client mode): 0x8393c40
2025-07-01 14:38:04,661 [DEBUG][       Thread-607847][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:38:04,677 [DEBUG][       Thread-607847][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:38:04,677 [ INFO][       Thread-607847][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:38:04,684 [DEBUG][       Thread-607847][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:38:04,684 [DEBUG][       Thread-607847][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:38:04,684 [DEBUG][       Thread-607847][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:38:04,684 [DEBUG][       Thread-607847][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:38:04,684 [DEBUG][       Thread-607847][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:38:04,684 [DEBUG][       Thread-607847][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:38:04,684 [DEBUG][       Thread-607847][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:38:04,684 [DEBUG][       Thread-607847][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:38:04,684 [DEBUG][       Thread-607847][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:38:04,684 [DEBUG][       Thread-607847][   transport.py][1871] : client lang: <none>
2025-07-01 14:38:04,684 [DEBUG][       Thread-607847][   transport.py][1871] : server lang: <none>
2025-07-01 14:38:04,684 [DEBUG][       Thread-607847][   transport.py][1871] : kex follows: False
2025-07-01 14:38:04,684 [DEBUG][       Thread-607847][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:38:04,684 [DEBUG][       Thread-607847][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:38:04,684 [DEBUG][       Thread-607847][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:38:04,684 [DEBUG][       Thread-607847][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:38:04,684 [DEBUG][       Thread-607847][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:38:04,684 [DEBUG][       Thread-607847][   transport.py][1871] : Compression: none
2025-07-01 14:38:04,684 [DEBUG][       Thread-607847][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:38:04,743 [DEBUG][       Thread-607847][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:38:04,743 [DEBUG][       Thread-607847][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:38:04,744 [DEBUG][       Thread-607847][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:38:04,744 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:38:04,745 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:38:04,798 [DEBUG][       Thread-607847][   transport.py][1871] : userauth is OK
2025-07-01 14:38:04,799 [DEBUG][       Thread-607847][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:38:04,799 [DEBUG][       Thread-607847][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:38:04,799 [DEBUG][       Thread-607847][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:38:04,799 [DEBUG][       Thread-607847][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:38:04,819 [ INFO][       Thread-607847][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:38:04,819 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:38:04,820 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:38:05,864 [DEBUG][       Thread-607847][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:38:05,865 [DEBUG][       Thread-607847][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:38:05,917 [DEBUG][       Thread-607847][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:38:05,917 [DEBUG][       Thread-607847][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:38:05,936 [DEBUG][       Thread-607847][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:38:05,946 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:38:05,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-07-01 14:38:05,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-07-01 14:38:05,964 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:38:05,965 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:38:05,965 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:38:05,973 [DEBUG][       Thread-607847][   transport.py][1871] : EOF in transport thread
2025-07-01 14:38:06,198 [DEBUG][Thread-607849 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:38:15,232 [DEBUG][Thread-607850 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:38:15,972 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:38:15,973 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:38:15,973 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:38:15,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-07-01 14:38:16,481 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 37, 50), 10.97, 47.58, 0.0, 34.92, 13.77, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:38:16,482 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:37:50
2025-07-01 14:38:16,565 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:38:16,571 [DEBUG][       Thread-607851][   transport.py][1871] : starting thread (client mode): 0x81e5690
2025-07-01 14:38:16,571 [DEBUG][       Thread-607851][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:38:16,592 [DEBUG][       Thread-607851][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:38:16,592 [ INFO][       Thread-607851][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:38:16,595 [DEBUG][       Thread-607851][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:38:16,595 [DEBUG][       Thread-607851][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:38:16,595 [DEBUG][       Thread-607851][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:38:16,595 [DEBUG][       Thread-607851][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:38:16,596 [DEBUG][       Thread-607851][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:38:16,596 [DEBUG][       Thread-607851][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:38:16,596 [DEBUG][       Thread-607851][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:38:16,596 [DEBUG][       Thread-607851][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:38:16,596 [DEBUG][       Thread-607851][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:38:16,596 [DEBUG][       Thread-607851][   transport.py][1871] : client lang: <none>
2025-07-01 14:38:16,596 [DEBUG][       Thread-607851][   transport.py][1871] : server lang: <none>
2025-07-01 14:38:16,596 [DEBUG][       Thread-607851][   transport.py][1871] : kex follows: False
2025-07-01 14:38:16,596 [DEBUG][       Thread-607851][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:38:16,596 [DEBUG][       Thread-607851][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:38:16,596 [DEBUG][       Thread-607851][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:38:16,596 [DEBUG][       Thread-607851][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:38:16,596 [DEBUG][       Thread-607851][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:38:16,596 [DEBUG][       Thread-607851][   transport.py][1871] : Compression: none
2025-07-01 14:38:16,596 [DEBUG][       Thread-607851][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:38:16,613 [DEBUG][       Thread-607851][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:38:16,614 [DEBUG][       Thread-607851][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:38:16,614 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:38:16,614 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:38:16,615 [DEBUG][       Thread-607851][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:38:16,615 [DEBUG][       Thread-607851][   transport.py][1871] : userauth is OK
2025-07-01 14:38:16,640 [ INFO][       Thread-607851][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:38:16,640 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:38:17,296 [DEBUG][       Thread-607851][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:38:17,296 [DEBUG][       Thread-607851][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:38:17,337 [DEBUG][       Thread-607851][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:38:17,337 [DEBUG][       Thread-607851][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:38:17,340 [DEBUG][       Thread-607851][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:38:17,354 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:38:17,355 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:38:17,357 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:38:17,359 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:38:17,364 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:38:17,366 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:38:17,366 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:38:17,367 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:38:17,367 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.525982 -999.00  +13.40  30.65     52   +3.90 1 2 2 1 1   887    0 9.08 -20.82 ----- 35.5 30.6 18.3 50.6 15.8 -20.9 15.2 -21.2 15.2 -19.8 15.8 -19.2
2025-07-01 14:38:17,367 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:38:17,367 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:38:17,367 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.525982
2025-07-01 14:38:17,368 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:38:17,368 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:38:17,369 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:38:17,369 [DEBUG][       Thread-607851][   transport.py][1871] : EOF in transport thread
2025-07-01 14:38:17,369 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:38:17,370 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:38:17,370 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:37:50', tmtdew=10.97, humidity=47.58, cloud=0.0, wind=34.92, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:37:24.845', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:38:17,452 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:38:17,464 [DEBUG][       Thread-607854][   transport.py][1871] : starting thread (client mode): 0x81a4c40
2025-07-01 14:38:17,464 [DEBUG][       Thread-607854][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:38:17,484 [DEBUG][       Thread-607854][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:38:17,484 [ INFO][       Thread-607854][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:38:17,491 [DEBUG][       Thread-607854][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:38:17,491 [DEBUG][       Thread-607854][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:38:17,492 [DEBUG][       Thread-607854][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:38:17,492 [DEBUG][       Thread-607854][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:38:17,492 [DEBUG][       Thread-607854][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:38:17,492 [DEBUG][       Thread-607854][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:38:17,492 [DEBUG][       Thread-607854][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:38:17,492 [DEBUG][       Thread-607854][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:38:17,492 [DEBUG][       Thread-607854][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:38:17,492 [DEBUG][       Thread-607854][   transport.py][1871] : client lang: <none>
2025-07-01 14:38:17,492 [DEBUG][       Thread-607854][   transport.py][1871] : server lang: <none>
2025-07-01 14:38:17,492 [DEBUG][       Thread-607854][   transport.py][1871] : kex follows: False
2025-07-01 14:38:17,492 [DEBUG][       Thread-607854][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:38:17,492 [DEBUG][       Thread-607854][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:38:17,492 [DEBUG][       Thread-607854][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:38:17,492 [DEBUG][       Thread-607854][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:38:17,493 [DEBUG][       Thread-607854][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:38:17,493 [DEBUG][       Thread-607854][   transport.py][1871] : Compression: none
2025-07-01 14:38:17,493 [DEBUG][       Thread-607854][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:38:17,551 [DEBUG][       Thread-607854][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:38:17,551 [DEBUG][       Thread-607854][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:38:17,552 [DEBUG][       Thread-607854][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:38:17,552 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:38:17,553 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:38:17,607 [DEBUG][       Thread-607854][   transport.py][1871] : userauth is OK
2025-07-01 14:38:17,607 [DEBUG][       Thread-607854][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:38:17,607 [DEBUG][       Thread-607854][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:38:17,607 [DEBUG][       Thread-607854][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:38:17,607 [DEBUG][       Thread-607854][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:38:17,626 [ INFO][       Thread-607854][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:38:17,626 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:38:17,627 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:38:18,626 [DEBUG][       Thread-607854][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:38:18,626 [DEBUG][       Thread-607854][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:38:18,676 [DEBUG][       Thread-607854][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:38:18,676 [DEBUG][       Thread-607854][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:38:18,685 [DEBUG][       Thread-607854][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:38:18,694 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:38: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')
2025-07-01 14:38:18,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-07-01 14:38:18,712 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:38:18,712 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:38:18,712 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:38:18,720 [DEBUG][       Thread-607854][   transport.py][1871] : EOF in transport thread
2025-07-01 14:38:24,253 [DEBUG][Thread-607856 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:38:28,716 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:38:28,716 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:38:28,716 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:38: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-07-01 14:38:29,219 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 38, 21), 10.9, 47.92, 0.0, 34.09, 13.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:38:29,219 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:38:21
2025-07-01 14:38:29,305 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:38:29,309 [DEBUG][       Thread-607857][   transport.py][1871] : starting thread (client mode): 0x81a5e40
2025-07-01 14:38:29,310 [DEBUG][       Thread-607857][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:38:29,332 [DEBUG][       Thread-607857][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:38:29,332 [ INFO][       Thread-607857][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:38:29,336 [DEBUG][       Thread-607857][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:38:29,336 [DEBUG][       Thread-607857][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:38:29,336 [DEBUG][       Thread-607857][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:38:29,336 [DEBUG][       Thread-607857][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:38:29,336 [DEBUG][       Thread-607857][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:38:29,336 [DEBUG][       Thread-607857][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:38:29,336 [DEBUG][       Thread-607857][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:38:29,336 [DEBUG][       Thread-607857][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:38:29,336 [DEBUG][       Thread-607857][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:38:29,336 [DEBUG][       Thread-607857][   transport.py][1871] : client lang: <none>
2025-07-01 14:38:29,336 [DEBUG][       Thread-607857][   transport.py][1871] : server lang: <none>
2025-07-01 14:38:29,336 [DEBUG][       Thread-607857][   transport.py][1871] : kex follows: False
2025-07-01 14:38:29,336 [DEBUG][       Thread-607857][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:38:29,336 [DEBUG][       Thread-607857][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:38:29,336 [DEBUG][       Thread-607857][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:38:29,336 [DEBUG][       Thread-607857][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:38:29,336 [DEBUG][       Thread-607857][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:38:29,336 [DEBUG][       Thread-607857][   transport.py][1871] : Compression: none
2025-07-01 14:38:29,336 [DEBUG][       Thread-607857][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:38:29,349 [DEBUG][       Thread-607857][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:38:29,349 [DEBUG][       Thread-607857][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:38:29,349 [DEBUG][       Thread-607857][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:38:29,349 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:38:29,349 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:38:29,350 [DEBUG][       Thread-607857][   transport.py][1871] : userauth is OK
2025-07-01 14:38:29,364 [ INFO][       Thread-607857][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:38:29,364 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:38:30,026 [DEBUG][       Thread-607857][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:38:30,026 [DEBUG][       Thread-607857][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:38:30,068 [DEBUG][       Thread-607857][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:38:30,068 [DEBUG][       Thread-607857][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:38:30,071 [DEBUG][       Thread-607857][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:38:30,082 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:38:30,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:38:30,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:38:30,083 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:38:30,087 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:38:30,087 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:38:30,087 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:38:30,088 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:38:30,088 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.526330 -999.00  +13.40  39.72     52   +4.00 1 2 2 1 1   887    0 8.96 -22.45 ----- 35.7 39.7 24.6 48.9 15.7 -20.8 15.2 -20.5 15.3 -19.2 15.8 -19.1
2025-07-01 14:38:30,088 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:38:30,088 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:38:30,088 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.526330
2025-07-01 14:38:30,088 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:38:30,088 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:38:30,088 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:38:30,088 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:38:30,088 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:38:30,088 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:38:21', tmtdew=10.9, humidity=47.92, cloud=0.0, wind=34.09, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:37:54.912', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:38:30,089 [DEBUG][       Thread-607857][   transport.py][1871] : EOF in transport thread
2025-07-01 14:38:30,160 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:38:30,178 [DEBUG][       Thread-607860][   transport.py][1871] : starting thread (client mode): 0x8105060
2025-07-01 14:38:30,178 [DEBUG][       Thread-607860][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:38:30,195 [DEBUG][       Thread-607860][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:38:30,195 [ INFO][       Thread-607860][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:38:30,202 [DEBUG][       Thread-607860][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:38:30,202 [DEBUG][       Thread-607860][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:38:30,202 [DEBUG][       Thread-607860][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:38:30,202 [DEBUG][       Thread-607860][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:38:30,202 [DEBUG][       Thread-607860][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:38:30,202 [DEBUG][       Thread-607860][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:38:30,202 [DEBUG][       Thread-607860][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:38:30,202 [DEBUG][       Thread-607860][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:38:30,202 [DEBUG][       Thread-607860][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:38:30,202 [DEBUG][       Thread-607860][   transport.py][1871] : client lang: <none>
2025-07-01 14:38:30,202 [DEBUG][       Thread-607860][   transport.py][1871] : server lang: <none>
2025-07-01 14:38:30,202 [DEBUG][       Thread-607860][   transport.py][1871] : kex follows: False
2025-07-01 14:38:30,202 [DEBUG][       Thread-607860][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:38:30,202 [DEBUG][       Thread-607860][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:38:30,202 [DEBUG][       Thread-607860][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:38:30,202 [DEBUG][       Thread-607860][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:38:30,202 [DEBUG][       Thread-607860][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:38:30,202 [DEBUG][       Thread-607860][   transport.py][1871] : Compression: none
2025-07-01 14:38:30,202 [DEBUG][       Thread-607860][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:38:30,257 [DEBUG][       Thread-607860][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:38:30,257 [DEBUG][       Thread-607860][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:38:30,257 [DEBUG][       Thread-607860][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:38:30,257 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:38:30,258 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:38:30,317 [DEBUG][       Thread-607860][   transport.py][1871] : userauth is OK
2025-07-01 14:38:30,317 [DEBUG][       Thread-607860][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:38:30,317 [DEBUG][       Thread-607860][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:38:30,317 [DEBUG][       Thread-607860][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:38:30,317 [DEBUG][       Thread-607860][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:38:30,331 [ INFO][       Thread-607860][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:38:30,331 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:38:30,331 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:38:31,355 [DEBUG][       Thread-607860][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:38:31,355 [DEBUG][       Thread-607860][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:38:31,404 [DEBUG][       Thread-607860][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:38:31,404 [DEBUG][       Thread-607860][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:38:31,413 [DEBUG][       Thread-607860][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:38:31,423 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:38:31,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-07-01 14:38:31,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-07-01 14:38:31,442 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:38:31,442 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:38:31,443 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:38:31,451 [DEBUG][       Thread-607860][   transport.py][1871] : EOF in transport thread
2025-07-01 14:38:33,274 [DEBUG][Thread-607862 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:38:35,331 [DEBUG][Thread-607863 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:38:41,453 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:38:41,454 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:38:41,454 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:38:41,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-07-01 14:38:41,935 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 38, 21), 10.9, 47.92, 0.0, 34.09, 13.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:38:41,935 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:38:21
2025-07-01 14:38:42,020 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:38:42,024 [DEBUG][       Thread-607864][   transport.py][1871] : starting thread (client mode): 0x81d91e0
2025-07-01 14:38:42,024 [DEBUG][       Thread-607864][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:38:42,047 [DEBUG][       Thread-607864][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:38:42,047 [ INFO][       Thread-607864][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:38:42,049 [DEBUG][       Thread-607864][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:38:42,049 [DEBUG][       Thread-607864][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:38:42,049 [DEBUG][       Thread-607864][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:38:42,049 [DEBUG][       Thread-607864][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:38:42,049 [DEBUG][       Thread-607864][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:38:42,049 [DEBUG][       Thread-607864][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:38:42,049 [DEBUG][       Thread-607864][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:38:42,049 [DEBUG][       Thread-607864][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:38:42,049 [DEBUG][       Thread-607864][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:38:42,049 [DEBUG][       Thread-607864][   transport.py][1871] : client lang: <none>
2025-07-01 14:38:42,049 [DEBUG][       Thread-607864][   transport.py][1871] : server lang: <none>
2025-07-01 14:38:42,049 [DEBUG][       Thread-607864][   transport.py][1871] : kex follows: False
2025-07-01 14:38:42,049 [DEBUG][       Thread-607864][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:38:42,049 [DEBUG][       Thread-607864][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:38:42,049 [DEBUG][       Thread-607864][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:38:42,049 [DEBUG][       Thread-607864][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:38:42,049 [DEBUG][       Thread-607864][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:38:42,049 [DEBUG][       Thread-607864][   transport.py][1871] : Compression: none
2025-07-01 14:38:42,049 [DEBUG][       Thread-607864][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:38:42,065 [DEBUG][       Thread-607864][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:38:42,065 [DEBUG][       Thread-607864][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:38:42,065 [DEBUG][       Thread-607864][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:38:42,066 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:38:42,066 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:38:42,066 [DEBUG][       Thread-607864][   transport.py][1871] : userauth is OK
2025-07-01 14:38:42,091 [ INFO][       Thread-607864][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:38:42,092 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:38:42,318 [DEBUG][Thread-607866 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:38:42,773 [DEBUG][       Thread-607864][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:38:42,773 [DEBUG][       Thread-607864][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:38:42,817 [DEBUG][       Thread-607864][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:38:42,817 [DEBUG][       Thread-607864][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:38:42,821 [DEBUG][       Thread-607864][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:38:42,832 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:38:42,833 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:38:42,835 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:38:42,837 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:38:42,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:38:42,845 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:38:42,845 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:38:42,846 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:38:42,846 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.526330 -999.00  +13.40  39.72     52   +4.00 1 2 2 1 1   887    0 8.96 -22.45 ----- 35.7 39.7 24.6 48.9 15.7 -20.8 15.2 -20.5 15.3 -19.2 15.8 -19.1
2025-07-01 14:38:42,846 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:38:42,846 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:38:42,846 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.526330
2025-07-01 14:38:42,847 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:38:42,847 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:38:42,847 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:38:42,847 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:38:42,847 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:38:42,848 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:38:21', tmtdew=10.9, humidity=47.92, cloud=0.0, wind=34.09, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:37:54.912', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:38:42,849 [DEBUG][       Thread-607864][   transport.py][1871] : EOF in transport thread
2025-07-01 14:38:42,932 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:38:42,942 [DEBUG][       Thread-607868][   transport.py][1871] : starting thread (client mode): 0x81a73d0
2025-07-01 14:38:42,942 [DEBUG][       Thread-607868][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:38:42,957 [DEBUG][       Thread-607868][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:38:42,957 [ INFO][       Thread-607868][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:38:42,965 [DEBUG][       Thread-607868][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:38:42,965 [DEBUG][       Thread-607868][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:38:42,965 [DEBUG][       Thread-607868][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:38:42,965 [DEBUG][       Thread-607868][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:38:42,965 [DEBUG][       Thread-607868][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:38:42,965 [DEBUG][       Thread-607868][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:38:42,965 [DEBUG][       Thread-607868][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:38:42,965 [DEBUG][       Thread-607868][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:38:42,965 [DEBUG][       Thread-607868][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:38:42,965 [DEBUG][       Thread-607868][   transport.py][1871] : client lang: <none>
2025-07-01 14:38:42,965 [DEBUG][       Thread-607868][   transport.py][1871] : server lang: <none>
2025-07-01 14:38:42,965 [DEBUG][       Thread-607868][   transport.py][1871] : kex follows: False
2025-07-01 14:38:42,965 [DEBUG][       Thread-607868][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:38:42,965 [DEBUG][       Thread-607868][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:38:42,966 [DEBUG][       Thread-607868][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:38:42,966 [DEBUG][       Thread-607868][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:38:42,966 [DEBUG][       Thread-607868][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:38:42,966 [DEBUG][       Thread-607868][   transport.py][1871] : Compression: none
2025-07-01 14:38:42,966 [DEBUG][       Thread-607868][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:38:43,023 [DEBUG][       Thread-607868][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:38:43,024 [DEBUG][       Thread-607868][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:38:43,025 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:38:43,025 [DEBUG][       Thread-607868][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:38:43,026 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:38:43,083 [DEBUG][       Thread-607868][   transport.py][1871] : userauth is OK
2025-07-01 14:38:43,084 [DEBUG][       Thread-607868][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:38:43,084 [DEBUG][       Thread-607868][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:38:43,084 [DEBUG][       Thread-607868][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:38:43,084 [DEBUG][       Thread-607868][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:38:43,102 [ INFO][       Thread-607868][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:38:43,103 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:38:43,103 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:38:44,133 [DEBUG][       Thread-607868][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:38:44,133 [DEBUG][       Thread-607868][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:38:44,184 [DEBUG][       Thread-607868][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:38:44,185 [DEBUG][       Thread-607868][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:38:44,194 [DEBUG][       Thread-607868][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:38:44,203 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:38:44,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-07-01 14:38:44,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-07-01 14:38:44,222 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:38:44,222 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:38:44,223 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:38:44,231 [DEBUG][       Thread-607868][   transport.py][1871] : EOF in transport thread
2025-07-01 14:38:51,338 [DEBUG][Thread-607870 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:38:54,228 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:38:54,228 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:38:54,228 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:38:54,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-07-01 14:38:54,735 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 38, 21), 10.9, 47.92, 0.0, 34.09, 13.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:38:54,735 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:38:21
2025-07-01 14:38:54,825 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:38:54,829 [DEBUG][       Thread-607871][   transport.py][1871] : starting thread (client mode): 0x81a7a60
2025-07-01 14:38:54,829 [DEBUG][       Thread-607871][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:38:54,851 [DEBUG][       Thread-607871][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:38:54,851 [ INFO][       Thread-607871][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:38:54,864 [DEBUG][       Thread-607871][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:38:54,864 [DEBUG][       Thread-607871][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:38:54,864 [DEBUG][       Thread-607871][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:38:54,864 [DEBUG][       Thread-607871][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:38:54,864 [DEBUG][       Thread-607871][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:38:54,864 [DEBUG][       Thread-607871][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:38:54,864 [DEBUG][       Thread-607871][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:38:54,864 [DEBUG][       Thread-607871][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:38:54,864 [DEBUG][       Thread-607871][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:38:54,864 [DEBUG][       Thread-607871][   transport.py][1871] : client lang: <none>
2025-07-01 14:38:54,864 [DEBUG][       Thread-607871][   transport.py][1871] : server lang: <none>
2025-07-01 14:38:54,864 [DEBUG][       Thread-607871][   transport.py][1871] : kex follows: False
2025-07-01 14:38:54,864 [DEBUG][       Thread-607871][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:38:54,864 [DEBUG][       Thread-607871][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:38:54,865 [DEBUG][       Thread-607871][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:38:54,865 [DEBUG][       Thread-607871][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:38:54,865 [DEBUG][       Thread-607871][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:38:54,865 [DEBUG][       Thread-607871][   transport.py][1871] : Compression: none
2025-07-01 14:38:54,865 [DEBUG][       Thread-607871][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:38:54,875 [DEBUG][       Thread-607871][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:38:54,875 [DEBUG][       Thread-607871][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:38:54,875 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:38:54,875 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:38:54,875 [DEBUG][       Thread-607871][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:38:54,875 [DEBUG][       Thread-607871][   transport.py][1871] : userauth is OK
2025-07-01 14:38:54,888 [ INFO][       Thread-607871][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:38:54,888 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:38:55,525 [DEBUG][       Thread-607871][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:38:55,526 [DEBUG][       Thread-607871][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:38:55,569 [DEBUG][       Thread-607871][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:38:55,569 [DEBUG][       Thread-607871][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:38:55,571 [DEBUG][       Thread-607871][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:38:55,577 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:38:55,578 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:38:55,579 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:38:55,580 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:38:55,584 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:38:55,585 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:38:55,585 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:38:55,586 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:38:55,586 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.526677 -999.00  +13.40  31.78     53   +4.00 1 2 2 1 1   887    0 8.99 -22.56 ----- 43.2 31.8 34.6 41.3 15.8 -20.4 15.2 -20.7 15.3 -19.7 15.8 -19.3
2025-07-01 14:38:55,586 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:38:55,586 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:38:55,586 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.526677
2025-07-01 14:38:55,586 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:38:55,587 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:38:55,587 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:38:55,587 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:38:55,587 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:38:55,587 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:38:21', tmtdew=10.9, humidity=47.92, cloud=0.0, wind=34.09, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:38:24.893', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:38:55,587 [DEBUG][       Thread-607871][   transport.py][1871] : EOF in transport thread
2025-07-01 14:38:55,672 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:38:55,684 [DEBUG][       Thread-607874][   transport.py][1871] : starting thread (client mode): 0x4701ec20
2025-07-01 14:38:55,684 [DEBUG][       Thread-607874][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:38:55,700 [DEBUG][       Thread-607874][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:38:55,700 [ INFO][       Thread-607874][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:38:55,708 [DEBUG][       Thread-607874][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:38:55,708 [DEBUG][       Thread-607874][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:38:55,708 [DEBUG][       Thread-607874][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:38:55,708 [DEBUG][       Thread-607874][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:38:55,708 [DEBUG][       Thread-607874][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:38:55,708 [DEBUG][       Thread-607874][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:38:55,708 [DEBUG][       Thread-607874][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:38:55,708 [DEBUG][       Thread-607874][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:38:55,709 [DEBUG][       Thread-607874][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:38:55,709 [DEBUG][       Thread-607874][   transport.py][1871] : client lang: <none>
2025-07-01 14:38:55,709 [DEBUG][       Thread-607874][   transport.py][1871] : server lang: <none>
2025-07-01 14:38:55,709 [DEBUG][       Thread-607874][   transport.py][1871] : kex follows: False
2025-07-01 14:38:55,709 [DEBUG][       Thread-607874][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:38:55,709 [DEBUG][       Thread-607874][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:38:55,709 [DEBUG][       Thread-607874][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:38:55,709 [DEBUG][       Thread-607874][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:38:55,709 [DEBUG][       Thread-607874][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:38:55,709 [DEBUG][       Thread-607874][   transport.py][1871] : Compression: none
2025-07-01 14:38:55,709 [DEBUG][       Thread-607874][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:38:55,768 [DEBUG][       Thread-607874][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:38:55,768 [DEBUG][       Thread-607874][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:38:55,769 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:38:55,770 [DEBUG][       Thread-607874][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:38:55,770 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:38:55,824 [DEBUG][       Thread-607874][   transport.py][1871] : userauth is OK
2025-07-01 14:38:55,824 [DEBUG][       Thread-607874][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:38:55,824 [DEBUG][       Thread-607874][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:38:55,825 [DEBUG][       Thread-607874][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:38:55,825 [DEBUG][       Thread-607874][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:38:55,844 [ INFO][       Thread-607874][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:38:55,844 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:38:55,845 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:38:56,876 [DEBUG][       Thread-607874][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:38:56,876 [DEBUG][       Thread-607874][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:38:56,924 [DEBUG][       Thread-607874][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:38:56,924 [DEBUG][       Thread-607874][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:38:56,933 [DEBUG][       Thread-607874][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:38:56,942 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:38:56,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-07-01 14:38:56,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-07-01 14:38:56,961 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:38:56,961 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:38:56,962 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:38:56,970 [DEBUG][       Thread-607874][   transport.py][1871] : EOF in transport thread
2025-07-01 14:39:00,358 [DEBUG][Thread-607876 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:39:06,972 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:39:06,972 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:39:06,972 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:39:06,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-07-01 14:39:07,484 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 38, 53), 10.89, 47.93, 0.0, 38.13, 13.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:39:07,484 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:38:53
2025-07-01 14:39:07,570 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:39:07,574 [DEBUG][       Thread-607877][   transport.py][1871] : starting thread (client mode): 0x81c8370
2025-07-01 14:39:07,574 [DEBUG][       Thread-607877][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:39:07,594 [DEBUG][       Thread-607877][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:39:07,594 [ INFO][       Thread-607877][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:39:07,598 [DEBUG][       Thread-607877][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:39:07,598 [DEBUG][       Thread-607877][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:39:07,598 [DEBUG][       Thread-607877][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:39:07,598 [DEBUG][       Thread-607877][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:39:07,598 [DEBUG][       Thread-607877][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:39:07,598 [DEBUG][       Thread-607877][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:39:07,598 [DEBUG][       Thread-607877][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:39:07,598 [DEBUG][       Thread-607877][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:39:07,598 [DEBUG][       Thread-607877][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:39:07,598 [DEBUG][       Thread-607877][   transport.py][1871] : client lang: <none>
2025-07-01 14:39:07,598 [DEBUG][       Thread-607877][   transport.py][1871] : server lang: <none>
2025-07-01 14:39:07,598 [DEBUG][       Thread-607877][   transport.py][1871] : kex follows: False
2025-07-01 14:39:07,598 [DEBUG][       Thread-607877][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:39:07,598 [DEBUG][       Thread-607877][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:39:07,598 [DEBUG][       Thread-607877][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:39:07,598 [DEBUG][       Thread-607877][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:39:07,598 [DEBUG][       Thread-607877][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:39:07,598 [DEBUG][       Thread-607877][   transport.py][1871] : Compression: none
2025-07-01 14:39:07,598 [DEBUG][       Thread-607877][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:39:07,613 [DEBUG][       Thread-607877][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:39:07,613 [DEBUG][       Thread-607877][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:39:07,613 [DEBUG][       Thread-607877][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:39:07,613 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:39:07,613 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:39:07,614 [DEBUG][       Thread-607877][   transport.py][1871] : userauth is OK
2025-07-01 14:39:07,640 [ INFO][       Thread-607877][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:39:07,640 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:39:08,295 [DEBUG][       Thread-607877][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:39:08,295 [DEBUG][       Thread-607877][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:39:08,336 [DEBUG][       Thread-607877][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:39:08,336 [DEBUG][       Thread-607877][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:39:08,339 [DEBUG][       Thread-607877][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:39:08,352 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:39:08,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:39:08,354 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:39:08,354 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:39:08,357 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:39:08,358 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:39:08,358 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:39:08,358 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:39:08,358 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.526677 -999.00  +13.40  31.78     53   +4.00 1 2 2 1 1   887    0 8.99 -22.56 ----- 43.2 31.8 34.6 41.3 15.8 -20.4 15.2 -20.7 15.3 -19.7 15.8 -19.3
2025-07-01 14:39:08,358 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:39:08,358 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:39:08,358 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.526677
2025-07-01 14:39:08,358 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:39:08,358 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:39:08,358 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:39:08,358 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:39:08,358 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:39:08,358 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:38:53', tmtdew=10.89, humidity=47.93, cloud=0.0, wind=38.13, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:38:24.893', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:39:08,359 [DEBUG][       Thread-607877][   transport.py][1871] : EOF in transport thread
2025-07-01 14:39:08,430 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:39:08,439 [DEBUG][       Thread-607880][   transport.py][1871] : starting thread (client mode): 0x81e5690
2025-07-01 14:39:08,439 [DEBUG][       Thread-607880][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:39:08,455 [DEBUG][       Thread-607880][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:39:08,455 [ INFO][       Thread-607880][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:39:08,463 [DEBUG][       Thread-607880][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:39:08,463 [DEBUG][       Thread-607880][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:39:08,463 [DEBUG][       Thread-607880][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:39:08,463 [DEBUG][       Thread-607880][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:39:08,463 [DEBUG][       Thread-607880][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:39:08,463 [DEBUG][       Thread-607880][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:39:08,463 [DEBUG][       Thread-607880][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:39:08,463 [DEBUG][       Thread-607880][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:39:08,463 [DEBUG][       Thread-607880][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:39:08,463 [DEBUG][       Thread-607880][   transport.py][1871] : client lang: <none>
2025-07-01 14:39:08,463 [DEBUG][       Thread-607880][   transport.py][1871] : server lang: <none>
2025-07-01 14:39:08,463 [DEBUG][       Thread-607880][   transport.py][1871] : kex follows: False
2025-07-01 14:39:08,463 [DEBUG][       Thread-607880][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:39:08,463 [DEBUG][       Thread-607880][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:39:08,463 [DEBUG][       Thread-607880][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:39:08,463 [DEBUG][       Thread-607880][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:39:08,463 [DEBUG][       Thread-607880][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:39:08,463 [DEBUG][       Thread-607880][   transport.py][1871] : Compression: none
2025-07-01 14:39:08,463 [DEBUG][       Thread-607880][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:39:08,521 [DEBUG][       Thread-607880][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:39:08,522 [DEBUG][       Thread-607880][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:39:08,522 [DEBUG][       Thread-607880][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:39:08,522 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:39:08,522 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:39:08,580 [DEBUG][       Thread-607880][   transport.py][1871] : userauth is OK
2025-07-01 14:39:08,580 [DEBUG][       Thread-607880][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:39:08,580 [DEBUG][       Thread-607880][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:39:08,580 [DEBUG][       Thread-607880][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:39:08,580 [DEBUG][       Thread-607880][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:39:08,595 [ INFO][       Thread-607880][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:39:08,595 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:39:08,595 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:39:09,376 [DEBUG][Thread-607882 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:39:09,670 [DEBUG][       Thread-607880][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:39:09,671 [DEBUG][       Thread-607880][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:39:09,720 [DEBUG][       Thread-607880][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:39:09,720 [DEBUG][       Thread-607880][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:39:09,730 [DEBUG][       Thread-607880][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:39:09,739 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:39:09,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-07-01 14:39:09,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-07-01 14:39:09,764 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:39:09,765 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:39:09,765 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:39:09,773 [DEBUG][       Thread-607880][   transport.py][1871] : EOF in transport thread
2025-07-01 14:39:18,403 [DEBUG][Thread-607883 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:39:19,769 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:39:19,769 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:39:19,770 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:39:19,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-07-01 14:39:20,255 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 38, 53), 10.89, 47.93, 0.0, 38.13, 13.65, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:39:20,256 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:38:53
2025-07-01 14:39:20,340 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:39:20,344 [DEBUG][       Thread-607884][   transport.py][1871] : starting thread (client mode): 0x81c9ea0
2025-07-01 14:39:20,344 [DEBUG][       Thread-607884][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:39:20,365 [DEBUG][       Thread-607884][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:39:20,365 [ INFO][       Thread-607884][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:39:20,368 [DEBUG][       Thread-607884][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:39:20,368 [DEBUG][       Thread-607884][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:39:20,368 [DEBUG][       Thread-607884][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:39:20,368 [DEBUG][       Thread-607884][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:39:20,368 [DEBUG][       Thread-607884][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:39:20,368 [DEBUG][       Thread-607884][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:39:20,368 [DEBUG][       Thread-607884][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:39:20,368 [DEBUG][       Thread-607884][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:39:20,368 [DEBUG][       Thread-607884][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:39:20,368 [DEBUG][       Thread-607884][   transport.py][1871] : client lang: <none>
2025-07-01 14:39:20,368 [DEBUG][       Thread-607884][   transport.py][1871] : server lang: <none>
2025-07-01 14:39:20,368 [DEBUG][       Thread-607884][   transport.py][1871] : kex follows: False
2025-07-01 14:39:20,368 [DEBUG][       Thread-607884][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:39:20,368 [DEBUG][       Thread-607884][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:39:20,368 [DEBUG][       Thread-607884][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:39:20,368 [DEBUG][       Thread-607884][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:39:20,368 [DEBUG][       Thread-607884][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:39:20,368 [DEBUG][       Thread-607884][   transport.py][1871] : Compression: none
2025-07-01 14:39:20,368 [DEBUG][       Thread-607884][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:39:20,377 [DEBUG][       Thread-607884][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:39:20,377 [DEBUG][       Thread-607884][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:39:20,378 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:39:20,378 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:39:20,378 [DEBUG][       Thread-607884][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:39:20,379 [DEBUG][       Thread-607884][   transport.py][1871] : userauth is OK
2025-07-01 14:39:20,403 [ INFO][       Thread-607884][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:39:20,403 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:39:21,067 [DEBUG][       Thread-607884][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:39:21,067 [DEBUG][       Thread-607884][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:39:21,108 [DEBUG][       Thread-607884][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:39:21,109 [DEBUG][       Thread-607884][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:39:21,111 [DEBUG][       Thread-607884][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:39:21,117 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:39:21,117 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:39:21,118 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:39:21,119 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:39:21,121 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:39:21,122 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:39:21,122 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:39:21,123 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:39:21,123 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.526677 -999.00  +13.40  31.78     53   +4.00 1 2 2 1 1   887    0 8.99 -22.56 ----- 43.2 31.8 34.6 41.3 15.8 -20.4 15.2 -20.7 15.3 -19.7 15.8 -19.3
2025-07-01 14:39:21,123 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:39:21,123 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:39:21,123 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.526677
2025-07-01 14:39:21,123 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:39:21,123 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:39:21,123 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:39:21,123 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:39:21,123 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:39:21,123 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:38:53', tmtdew=10.89, humidity=47.93, cloud=0.0, wind=38.13, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:38:24.893', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:39:21,124 [DEBUG][       Thread-607884][   transport.py][1871] : EOF in transport thread
2025-07-01 14:39:21,201 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:39:21,212 [DEBUG][       Thread-607887][   transport.py][1871] : starting thread (client mode): 0x8393910
2025-07-01 14:39:21,212 [DEBUG][       Thread-607887][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:39:21,227 [DEBUG][       Thread-607887][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:39:21,227 [ INFO][       Thread-607887][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:39:21,234 [DEBUG][       Thread-607887][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:39:21,234 [DEBUG][       Thread-607887][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:39:21,234 [DEBUG][       Thread-607887][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:39:21,234 [DEBUG][       Thread-607887][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:39:21,235 [DEBUG][       Thread-607887][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:39:21,235 [DEBUG][       Thread-607887][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:39:21,235 [DEBUG][       Thread-607887][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:39:21,235 [DEBUG][       Thread-607887][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:39:21,235 [DEBUG][       Thread-607887][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:39:21,235 [DEBUG][       Thread-607887][   transport.py][1871] : client lang: <none>
2025-07-01 14:39:21,235 [DEBUG][       Thread-607887][   transport.py][1871] : server lang: <none>
2025-07-01 14:39:21,235 [DEBUG][       Thread-607887][   transport.py][1871] : kex follows: False
2025-07-01 14:39:21,235 [DEBUG][       Thread-607887][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:39:21,235 [DEBUG][       Thread-607887][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:39:21,235 [DEBUG][       Thread-607887][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:39:21,235 [DEBUG][       Thread-607887][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:39:21,235 [DEBUG][       Thread-607887][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:39:21,235 [DEBUG][       Thread-607887][   transport.py][1871] : Compression: none
2025-07-01 14:39:21,235 [DEBUG][       Thread-607887][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:39:21,292 [DEBUG][       Thread-607887][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:39:21,293 [DEBUG][       Thread-607887][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:39:21,294 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:39:21,294 [DEBUG][       Thread-607887][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:39:21,295 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:39:21,349 [DEBUG][       Thread-607887][   transport.py][1871] : userauth is OK
2025-07-01 14:39:21,349 [DEBUG][       Thread-607887][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:39:21,349 [DEBUG][       Thread-607887][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:39:21,349 [DEBUG][       Thread-607887][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:39:21,349 [DEBUG][       Thread-607887][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:39:21,368 [ INFO][       Thread-607887][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:39:21,368 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:39:21,369 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:39:22,400 [DEBUG][       Thread-607887][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:39:22,400 [DEBUG][       Thread-607887][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:39:22,457 [DEBUG][       Thread-607887][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:39:22,457 [DEBUG][       Thread-607887][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:39:22,465 [DEBUG][       Thread-607887][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:39:22,474 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:39:22,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-07-01 14:39:22,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-07-01 14:39:22,490 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:39:22,490 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:39:22,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:39:22,498 [DEBUG][       Thread-607887][   transport.py][1871] : EOF in transport thread
2025-07-01 14:39:27,424 [DEBUG][Thread-607889 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:39:32,494 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:39:32,494 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:39:32,494 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:39:32,496 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:39:32,984 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 39, 25), 10.82, 47.94, 0.0, 28.55, 13.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:39:32,984 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:39:25
2025-07-01 14:39:33,068 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:39:33,071 [DEBUG][       Thread-607890][   transport.py][1871] : starting thread (client mode): 0x81a4400
2025-07-01 14:39:33,072 [DEBUG][       Thread-607890][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:39:33,092 [DEBUG][       Thread-607890][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:39:33,092 [ INFO][       Thread-607890][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:39:33,095 [DEBUG][       Thread-607890][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:39:33,095 [DEBUG][       Thread-607890][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:39:33,095 [DEBUG][       Thread-607890][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:39:33,095 [DEBUG][       Thread-607890][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:39:33,095 [DEBUG][       Thread-607890][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:39:33,096 [DEBUG][       Thread-607890][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:39:33,096 [DEBUG][       Thread-607890][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:39:33,096 [DEBUG][       Thread-607890][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:39:33,096 [DEBUG][       Thread-607890][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:39:33,096 [DEBUG][       Thread-607890][   transport.py][1871] : client lang: <none>
2025-07-01 14:39:33,096 [DEBUG][       Thread-607890][   transport.py][1871] : server lang: <none>
2025-07-01 14:39:33,096 [DEBUG][       Thread-607890][   transport.py][1871] : kex follows: False
2025-07-01 14:39:33,096 [DEBUG][       Thread-607890][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:39:33,096 [DEBUG][       Thread-607890][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:39:33,096 [DEBUG][       Thread-607890][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:39:33,096 [DEBUG][       Thread-607890][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:39:33,096 [DEBUG][       Thread-607890][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:39:33,096 [DEBUG][       Thread-607890][   transport.py][1871] : Compression: none
2025-07-01 14:39:33,096 [DEBUG][       Thread-607890][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:39:33,111 [DEBUG][       Thread-607890][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:39:33,111 [DEBUG][       Thread-607890][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:39:33,112 [DEBUG][       Thread-607890][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:39:33,112 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:39:33,112 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:39:33,114 [DEBUG][       Thread-607890][   transport.py][1871] : userauth is OK
2025-07-01 14:39:33,127 [ INFO][       Thread-607890][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:39:33,127 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:39:33,749 [DEBUG][       Thread-607890][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:39:33,749 [DEBUG][       Thread-607890][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:39:33,793 [DEBUG][       Thread-607890][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:39:33,793 [DEBUG][       Thread-607890][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:39:33,796 [DEBUG][       Thread-607890][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:39:33,808 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:39:33,809 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:39:33,810 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:39:33,812 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:39:33,818 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:39:33,820 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:39:33,820 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:39:33,821 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:39:33,821 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.527024 -999.00  +13.40  38.34     53   +4.10 1 2 2 1 1   887    0 9.00 -22.80 ----- 35.9 38.3 29.8 49.8 15.7 -21.0 15.2 -20.9 15.2 -20.0 15.7 -19.0
2025-07-01 14:39:33,821 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:39:33,821 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:39:33,821 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.527024
2025-07-01 14:39:33,822 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:39:33,822 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:39:33,822 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:39:33,822 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:39:33,823 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:39:33,823 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:39:25', tmtdew=10.82, humidity=47.94, cloud=0.0, wind=28.55, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:38:54.874', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:39:33,823 [DEBUG][       Thread-607890][   transport.py][1871] : EOF in transport thread
2025-07-01 14:39:33,909 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:39:33,921 [DEBUG][       Thread-607893][   transport.py][1871] : starting thread (client mode): 0x81e79a0
2025-07-01 14:39:33,921 [DEBUG][       Thread-607893][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:39:33,936 [DEBUG][       Thread-607893][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:39:33,936 [ INFO][       Thread-607893][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:39:33,944 [DEBUG][       Thread-607893][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:39:33,944 [DEBUG][       Thread-607893][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:39:33,944 [DEBUG][       Thread-607893][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:39:33,944 [DEBUG][       Thread-607893][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:39:33,944 [DEBUG][       Thread-607893][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:39:33,944 [DEBUG][       Thread-607893][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:39:33,944 [DEBUG][       Thread-607893][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:39:33,944 [DEBUG][       Thread-607893][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:39:33,944 [DEBUG][       Thread-607893][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:39:33,944 [DEBUG][       Thread-607893][   transport.py][1871] : client lang: <none>
2025-07-01 14:39:33,944 [DEBUG][       Thread-607893][   transport.py][1871] : server lang: <none>
2025-07-01 14:39:33,945 [DEBUG][       Thread-607893][   transport.py][1871] : kex follows: False
2025-07-01 14:39:33,945 [DEBUG][       Thread-607893][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:39:33,945 [DEBUG][       Thread-607893][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:39:33,945 [DEBUG][       Thread-607893][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:39:33,945 [DEBUG][       Thread-607893][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:39:33,945 [DEBUG][       Thread-607893][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:39:33,945 [DEBUG][       Thread-607893][   transport.py][1871] : Compression: none
2025-07-01 14:39:33,945 [DEBUG][       Thread-607893][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:39:34,001 [DEBUG][       Thread-607893][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:39:34,002 [DEBUG][       Thread-607893][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:39:34,002 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:39:34,003 [DEBUG][       Thread-607893][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:39:34,004 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:39:34,057 [DEBUG][       Thread-607893][   transport.py][1871] : userauth is OK
2025-07-01 14:39:34,057 [DEBUG][       Thread-607893][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:39:34,057 [DEBUG][       Thread-607893][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:39:34,058 [DEBUG][       Thread-607893][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:39:34,058 [DEBUG][       Thread-607893][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:39:34,076 [ INFO][       Thread-607893][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:39:34,077 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:39:34,077 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:39:35,129 [DEBUG][       Thread-607893][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:39:35,129 [DEBUG][       Thread-607893][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:39:35,180 [DEBUG][       Thread-607893][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:39:35,180 [DEBUG][       Thread-607893][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:39:35,200 [DEBUG][       Thread-607893][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:39:35,209 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:39:35,210 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 14:39:35,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-07-01 14:39:35,228 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:39:35,228 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:39:35,228 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:39:35,236 [DEBUG][       Thread-607893][   transport.py][1871] : EOF in transport thread
2025-07-01 14:39:35,362 [DEBUG][Thread-607895 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:39:36,446 [DEBUG][Thread-607896 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:39:45,236 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:39:45,236 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:39:45,236 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:39:45,237 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:39:45,477 [DEBUG][Thread-607897 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:39:45,749 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 39, 25), 10.82, 47.94, 0.0, 28.55, 13.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:39:45,749 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:39:25
2025-07-01 14:39:45,840 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:39:45,843 [DEBUG][       Thread-607898][   transport.py][1871] : starting thread (client mode): 0x8170880
2025-07-01 14:39:45,843 [DEBUG][       Thread-607898][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:39:45,864 [DEBUG][       Thread-607898][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:39:45,864 [ INFO][       Thread-607898][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:39:45,867 [DEBUG][       Thread-607898][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:39:45,867 [DEBUG][       Thread-607898][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:39:45,867 [DEBUG][       Thread-607898][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:39:45,867 [DEBUG][       Thread-607898][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:39:45,867 [DEBUG][       Thread-607898][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:39:45,867 [DEBUG][       Thread-607898][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:39:45,867 [DEBUG][       Thread-607898][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:39:45,867 [DEBUG][       Thread-607898][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:39:45,867 [DEBUG][       Thread-607898][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:39:45,867 [DEBUG][       Thread-607898][   transport.py][1871] : client lang: <none>
2025-07-01 14:39:45,867 [DEBUG][       Thread-607898][   transport.py][1871] : server lang: <none>
2025-07-01 14:39:45,867 [DEBUG][       Thread-607898][   transport.py][1871] : kex follows: False
2025-07-01 14:39:45,868 [DEBUG][       Thread-607898][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:39:45,868 [DEBUG][       Thread-607898][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:39:45,868 [DEBUG][       Thread-607898][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:39:45,868 [DEBUG][       Thread-607898][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:39:45,868 [DEBUG][       Thread-607898][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:39:45,868 [DEBUG][       Thread-607898][   transport.py][1871] : Compression: none
2025-07-01 14:39:45,868 [DEBUG][       Thread-607898][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:39:45,885 [DEBUG][       Thread-607898][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:39:45,885 [DEBUG][       Thread-607898][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:39:45,885 [DEBUG][       Thread-607898][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:39:45,885 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:39:45,885 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:39:45,886 [DEBUG][       Thread-607898][   transport.py][1871] : userauth is OK
2025-07-01 14:39:45,909 [ INFO][       Thread-607898][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:39:45,910 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:39:46,514 [DEBUG][       Thread-607898][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:39:46,514 [DEBUG][       Thread-607898][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:39:46,556 [DEBUG][       Thread-607898][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:39:46,556 [DEBUG][       Thread-607898][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:39:46,559 [DEBUG][       Thread-607898][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:39:46,571 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:39:46,571 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:39:46,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:39:46,573 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:39:46,576 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:39:46,577 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:39:46,577 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:39:46,577 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:39:46,577 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.527024 -999.00  +13.40  38.34     53   +4.10 1 2 2 1 1   887    0 9.00 -22.80 ----- 35.9 38.3 29.8 49.8 15.7 -21.0 15.2 -20.9 15.2 -20.0 15.7 -19.0
2025-07-01 14:39:46,577 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:39:46,577 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:39:46,577 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.527024
2025-07-01 14:39:46,577 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:39:46,577 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:39:46,577 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:39:46,577 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:39:46,577 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:39:46,577 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:39:25', tmtdew=10.82, humidity=47.94, cloud=0.0, wind=28.55, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:38:54.874', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:39:46,578 [DEBUG][       Thread-607898][   transport.py][1871] : EOF in transport thread
2025-07-01 14:39:46,650 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:39:46,660 [DEBUG][       Thread-607901][   transport.py][1871] : starting thread (client mode): 0x818c5b0
2025-07-01 14:39:46,660 [DEBUG][       Thread-607901][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:39:46,675 [DEBUG][       Thread-607901][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:39:46,675 [ INFO][       Thread-607901][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:39:46,682 [DEBUG][       Thread-607901][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:39:46,682 [DEBUG][       Thread-607901][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:39:46,682 [DEBUG][       Thread-607901][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:39:46,682 [DEBUG][       Thread-607901][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:39:46,682 [DEBUG][       Thread-607901][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:39:46,682 [DEBUG][       Thread-607901][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:39:46,682 [DEBUG][       Thread-607901][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:39:46,682 [DEBUG][       Thread-607901][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:39:46,682 [DEBUG][       Thread-607901][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:39:46,682 [DEBUG][       Thread-607901][   transport.py][1871] : client lang: <none>
2025-07-01 14:39:46,682 [DEBUG][       Thread-607901][   transport.py][1871] : server lang: <none>
2025-07-01 14:39:46,682 [DEBUG][       Thread-607901][   transport.py][1871] : kex follows: False
2025-07-01 14:39:46,682 [DEBUG][       Thread-607901][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:39:46,682 [DEBUG][       Thread-607901][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:39:46,682 [DEBUG][       Thread-607901][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:39:46,682 [DEBUG][       Thread-607901][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:39:46,682 [DEBUG][       Thread-607901][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:39:46,682 [DEBUG][       Thread-607901][   transport.py][1871] : Compression: none
2025-07-01 14:39:46,682 [DEBUG][       Thread-607901][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:39:46,745 [DEBUG][       Thread-607901][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:39:46,745 [DEBUG][       Thread-607901][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:39:46,745 [DEBUG][       Thread-607901][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:39:46,745 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:39:46,745 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:39:46,807 [DEBUG][       Thread-607901][   transport.py][1871] : userauth is OK
2025-07-01 14:39:46,807 [DEBUG][       Thread-607901][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:39:46,807 [DEBUG][       Thread-607901][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:39:46,807 [DEBUG][       Thread-607901][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:39:46,807 [DEBUG][       Thread-607901][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:39:46,821 [ INFO][       Thread-607901][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:39:46,821 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:39:46,821 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:39:47,864 [DEBUG][       Thread-607901][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:39:47,864 [DEBUG][       Thread-607901][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:39:47,912 [DEBUG][       Thread-607901][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:39:47,912 [DEBUG][       Thread-607901][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:39:47,921 [DEBUG][       Thread-607901][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:39:47,931 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:39:47,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-07-01 14:39:47,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-07-01 14:39:47,949 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:39:47,950 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:39:47,950 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:39:47,958 [DEBUG][       Thread-607901][   transport.py][1871] : EOF in transport thread
2025-07-01 14:39:54,497 [DEBUG][Thread-607903 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:39:57,961 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:39:57,961 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:39:57,961 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:39:57,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-07-01 14:39:58,497 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 39, 25), 10.82, 47.94, 0.0, 28.55, 13.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:39:58,497 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:39:25
2025-07-01 14:39:58,587 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:39:58,591 [DEBUG][       Thread-607904][   transport.py][1871] : starting thread (client mode): 0x81d9480
2025-07-01 14:39:58,591 [DEBUG][       Thread-607904][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:39:58,611 [DEBUG][       Thread-607904][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:39:58,611 [ INFO][       Thread-607904][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:39:58,614 [DEBUG][       Thread-607904][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:39:58,614 [DEBUG][       Thread-607904][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:39:58,614 [DEBUG][       Thread-607904][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:39:58,614 [DEBUG][       Thread-607904][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:39:58,614 [DEBUG][       Thread-607904][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:39:58,614 [DEBUG][       Thread-607904][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:39:58,614 [DEBUG][       Thread-607904][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:39:58,614 [DEBUG][       Thread-607904][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:39:58,614 [DEBUG][       Thread-607904][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:39:58,614 [DEBUG][       Thread-607904][   transport.py][1871] : client lang: <none>
2025-07-01 14:39:58,614 [DEBUG][       Thread-607904][   transport.py][1871] : server lang: <none>
2025-07-01 14:39:58,614 [DEBUG][       Thread-607904][   transport.py][1871] : kex follows: False
2025-07-01 14:39:58,614 [DEBUG][       Thread-607904][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:39:58,614 [DEBUG][       Thread-607904][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:39:58,614 [DEBUG][       Thread-607904][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:39:58,614 [DEBUG][       Thread-607904][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:39:58,614 [DEBUG][       Thread-607904][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:39:58,614 [DEBUG][       Thread-607904][   transport.py][1871] : Compression: none
2025-07-01 14:39:58,614 [DEBUG][       Thread-607904][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:39:58,623 [DEBUG][       Thread-607904][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:39:58,623 [DEBUG][       Thread-607904][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:39:58,623 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:39:58,623 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:39:58,623 [DEBUG][       Thread-607904][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:39:58,624 [DEBUG][       Thread-607904][   transport.py][1871] : userauth is OK
2025-07-01 14:39:58,647 [ INFO][       Thread-607904][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:39:58,647 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:39:59,199 [DEBUG][       Thread-607904][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:39:59,199 [DEBUG][       Thread-607904][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:39:59,241 [DEBUG][       Thread-607904][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:39:59,241 [DEBUG][       Thread-607904][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:39:59,244 [DEBUG][       Thread-607904][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:39:59,258 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:39:59,258 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:39:59,260 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:39:59,262 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:39:59,266 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:39:59,268 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:39:59,268 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:39:59,269 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:39:59,269 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.527718 -999.00  +13.50  32.85     53   +4.10 1 2 2 1 1   887    0 9.09 -23.30 ----- 39.0 32.9 37.7 46.2 15.7 -20.4 15.2 -20.7 15.2 -19.5 15.7 -19.4
2025-07-01 14:39:59,269 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:39:59,269 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:39:59,269 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.527718
2025-07-01 14:39:59,270 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:39:59,270 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:39:59,270 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:39:59,270 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:39:59,270 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:39:59,270 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:39:25', tmtdew=10.82, humidity=47.94, cloud=0.0, wind=28.55, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:39:54.835', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:39:59,272 [DEBUG][       Thread-607904][   transport.py][1871] : EOF in transport thread
2025-07-01 14:39:59,357 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:39:59,367 [DEBUG][       Thread-607907][   transport.py][1871] : starting thread (client mode): 0x8106200
2025-07-01 14:39:59,367 [DEBUG][       Thread-607907][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:39:59,385 [DEBUG][       Thread-607907][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:39:59,385 [ INFO][       Thread-607907][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:39:59,393 [DEBUG][       Thread-607907][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:39:59,393 [DEBUG][       Thread-607907][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:39:59,393 [DEBUG][       Thread-607907][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:39:59,393 [DEBUG][       Thread-607907][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:39:59,393 [DEBUG][       Thread-607907][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:39:59,393 [DEBUG][       Thread-607907][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:39:59,393 [DEBUG][       Thread-607907][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:39:59,393 [DEBUG][       Thread-607907][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:39:59,393 [DEBUG][       Thread-607907][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:39:59,393 [DEBUG][       Thread-607907][   transport.py][1871] : client lang: <none>
2025-07-01 14:39:59,393 [DEBUG][       Thread-607907][   transport.py][1871] : server lang: <none>
2025-07-01 14:39:59,393 [DEBUG][       Thread-607907][   transport.py][1871] : kex follows: False
2025-07-01 14:39:59,394 [DEBUG][       Thread-607907][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:39:59,394 [DEBUG][       Thread-607907][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:39:59,394 [DEBUG][       Thread-607907][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:39:59,394 [DEBUG][       Thread-607907][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:39:59,394 [DEBUG][       Thread-607907][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:39:59,394 [DEBUG][       Thread-607907][   transport.py][1871] : Compression: none
2025-07-01 14:39:59,394 [DEBUG][       Thread-607907][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:39:59,460 [DEBUG][       Thread-607907][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:39:59,461 [DEBUG][       Thread-607907][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:39:59,462 [DEBUG][       Thread-607907][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:39:59,462 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:39:59,463 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:39:59,518 [DEBUG][       Thread-607907][   transport.py][1871] : userauth is OK
2025-07-01 14:39:59,518 [DEBUG][       Thread-607907][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:39:59,518 [DEBUG][       Thread-607907][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:39:59,518 [DEBUG][       Thread-607907][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:39:59,518 [DEBUG][       Thread-607907][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:39:59,539 [ INFO][       Thread-607907][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:39:59,539 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:39:59,540 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:40:00,585 [DEBUG][       Thread-607907][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:40:00,585 [DEBUG][       Thread-607907][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:40:00,636 [DEBUG][       Thread-607907][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:40:00,636 [DEBUG][       Thread-607907][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:40:00,645 [DEBUG][       Thread-607907][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:40:00,654 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:40:00,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-07-01 14:40:00,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') -> 00000000
2025-07-01 14:40:00,672 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:40:00,672 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:40:00,673 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:40:00,681 [DEBUG][       Thread-607907][   transport.py][1871] : EOF in transport thread
2025-07-01 14:40:03,517 [DEBUG][Thread-607909 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:40:10,680 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:40:10,680 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:40:10,680 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:40:10,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-07-01 14:40:11,179 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 39, 56), 10.76, 48.12, 0.0, 25.85, 13.55, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:40:11,179 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:39:56
2025-07-01 14:40:11,263 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:40:11,267 [DEBUG][       Thread-607910][   transport.py][1871] : starting thread (client mode): 0x8171d20
2025-07-01 14:40:11,268 [DEBUG][       Thread-607910][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:40:11,286 [DEBUG][       Thread-607910][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:40:11,286 [ INFO][       Thread-607910][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:40:11,288 [DEBUG][       Thread-607910][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:40:11,288 [DEBUG][       Thread-607910][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:40:11,288 [DEBUG][       Thread-607910][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:40:11,288 [DEBUG][       Thread-607910][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:40:11,288 [DEBUG][       Thread-607910][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:40:11,288 [DEBUG][       Thread-607910][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:40:11,288 [DEBUG][       Thread-607910][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:40:11,288 [DEBUG][       Thread-607910][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:40:11,288 [DEBUG][       Thread-607910][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:40:11,288 [DEBUG][       Thread-607910][   transport.py][1871] : client lang: <none>
2025-07-01 14:40:11,288 [DEBUG][       Thread-607910][   transport.py][1871] : server lang: <none>
2025-07-01 14:40:11,288 [DEBUG][       Thread-607910][   transport.py][1871] : kex follows: False
2025-07-01 14:40:11,288 [DEBUG][       Thread-607910][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:40:11,288 [DEBUG][       Thread-607910][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:40:11,288 [DEBUG][       Thread-607910][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:40:11,288 [DEBUG][       Thread-607910][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:40:11,288 [DEBUG][       Thread-607910][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:40:11,288 [DEBUG][       Thread-607910][   transport.py][1871] : Compression: none
2025-07-01 14:40:11,288 [DEBUG][       Thread-607910][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:40:11,296 [DEBUG][       Thread-607910][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:40:11,296 [DEBUG][       Thread-607910][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:40:11,297 [DEBUG][       Thread-607910][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:40:11,297 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:40:11,297 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:40:11,297 [DEBUG][       Thread-607910][   transport.py][1871] : userauth is OK
2025-07-01 14:40:11,310 [ INFO][       Thread-607910][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:40:11,311 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:40:11,926 [DEBUG][       Thread-607910][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:40:11,926 [DEBUG][       Thread-607910][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:40:11,969 [DEBUG][       Thread-607910][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:40:11,969 [DEBUG][       Thread-607910][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:40:11,973 [DEBUG][       Thread-607910][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:40:11,984 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:40:11,984 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:40:11,987 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:40:11,989 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:40:11,994 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:40:11,996 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:40:11,996 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:40:11,997 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:40:11,997 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.527718 -999.00  +13.50  32.85     53   +4.10 1 2 2 1 1   887    0 9.09 -23.30 ----- 39.0 32.9 37.7 46.2 15.7 -20.4 15.2 -20.7 15.2 -19.5 15.7 -19.4
2025-07-01 14:40:11,997 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:40:11,997 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:40:11,997 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.527718
2025-07-01 14:40:11,998 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:40:11,998 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:40:11,998 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:40:11,998 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:40:11,998 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:40:11,998 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:39:56', tmtdew=10.76, humidity=48.12, cloud=0.0, wind=25.85, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:39:54.835', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:40:11,999 [DEBUG][       Thread-607910][   transport.py][1871] : EOF in transport thread
2025-07-01 14:40:12,083 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:40:12,092 [DEBUG][       Thread-607913][   transport.py][1871] : starting thread (client mode): 0x81040d0
2025-07-01 14:40:12,092 [DEBUG][       Thread-607913][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:40:12,112 [DEBUG][       Thread-607913][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:40:12,112 [ INFO][       Thread-607913][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:40:12,120 [DEBUG][       Thread-607913][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:40:12,120 [DEBUG][       Thread-607913][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:40:12,120 [DEBUG][       Thread-607913][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:40:12,120 [DEBUG][       Thread-607913][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:40:12,120 [DEBUG][       Thread-607913][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:40:12,120 [DEBUG][       Thread-607913][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:40:12,120 [DEBUG][       Thread-607913][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:40:12,120 [DEBUG][       Thread-607913][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:40:12,120 [DEBUG][       Thread-607913][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:40:12,121 [DEBUG][       Thread-607913][   transport.py][1871] : client lang: <none>
2025-07-01 14:40:12,121 [DEBUG][       Thread-607913][   transport.py][1871] : server lang: <none>
2025-07-01 14:40:12,121 [DEBUG][       Thread-607913][   transport.py][1871] : kex follows: False
2025-07-01 14:40:12,121 [DEBUG][       Thread-607913][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:40:12,121 [DEBUG][       Thread-607913][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:40:12,121 [DEBUG][       Thread-607913][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:40:12,121 [DEBUG][       Thread-607913][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:40:12,121 [DEBUG][       Thread-607913][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:40:12,121 [DEBUG][       Thread-607913][   transport.py][1871] : Compression: none
2025-07-01 14:40:12,121 [DEBUG][       Thread-607913][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:40:12,178 [DEBUG][       Thread-607913][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:40:12,178 [DEBUG][       Thread-607913][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:40:12,178 [DEBUG][       Thread-607913][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:40:12,178 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:40:12,178 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:40:12,238 [DEBUG][       Thread-607913][   transport.py][1871] : userauth is OK
2025-07-01 14:40:12,238 [DEBUG][       Thread-607913][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:40:12,238 [DEBUG][       Thread-607913][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:40:12,238 [DEBUG][       Thread-607913][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:40:12,238 [DEBUG][       Thread-607913][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:40:12,255 [ INFO][       Thread-607913][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:40:12,255 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:40:12,255 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:40:12,540 [DEBUG][Thread-607915 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:40:13,299 [DEBUG][       Thread-607913][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:40:13,300 [DEBUG][       Thread-607913][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:40:13,348 [DEBUG][       Thread-607913][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:40:13,348 [DEBUG][       Thread-607913][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:40:13,358 [DEBUG][       Thread-607913][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:40:13,367 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:40:13,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-07-01 14:40:13,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-07-01 14:40:13,385 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:40:13,386 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:40:13,386 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:40:13,394 [DEBUG][       Thread-607913][   transport.py][1871] : EOF in transport thread
2025-07-01 14:40:21,581 [DEBUG][Thread-607916 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:40:23,396 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:40:23,396 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:40:23,396 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:40:23,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-07-01 14:40:23,906 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 39, 56), 10.76, 48.12, 0.0, 25.85, 13.55, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:40:23,906 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:39:56
2025-07-01 14:40:23,996 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:40:24,002 [DEBUG][       Thread-607917][   transport.py][1871] : starting thread (client mode): 0x81c88e0
2025-07-01 14:40:24,003 [DEBUG][       Thread-607917][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:40:24,024 [DEBUG][       Thread-607917][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:40:24,024 [ INFO][       Thread-607917][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:40:24,027 [DEBUG][       Thread-607917][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:40:24,027 [DEBUG][       Thread-607917][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:40:24,027 [DEBUG][       Thread-607917][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:40:24,027 [DEBUG][       Thread-607917][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:40:24,027 [DEBUG][       Thread-607917][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:40:24,027 [DEBUG][       Thread-607917][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:40:24,027 [DEBUG][       Thread-607917][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:40:24,027 [DEBUG][       Thread-607917][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:40:24,027 [DEBUG][       Thread-607917][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:40:24,027 [DEBUG][       Thread-607917][   transport.py][1871] : client lang: <none>
2025-07-01 14:40:24,027 [DEBUG][       Thread-607917][   transport.py][1871] : server lang: <none>
2025-07-01 14:40:24,027 [DEBUG][       Thread-607917][   transport.py][1871] : kex follows: False
2025-07-01 14:40:24,027 [DEBUG][       Thread-607917][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:40:24,027 [DEBUG][       Thread-607917][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:40:24,027 [DEBUG][       Thread-607917][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:40:24,027 [DEBUG][       Thread-607917][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:40:24,027 [DEBUG][       Thread-607917][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:40:24,027 [DEBUG][       Thread-607917][   transport.py][1871] : Compression: none
2025-07-01 14:40:24,027 [DEBUG][       Thread-607917][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:40:24,043 [DEBUG][       Thread-607917][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:40:24,043 [DEBUG][       Thread-607917][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:40:24,043 [DEBUG][       Thread-607917][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:40:24,043 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:40:24,043 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:40:24,044 [DEBUG][       Thread-607917][   transport.py][1871] : userauth is OK
2025-07-01 14:40:24,056 [ INFO][       Thread-607917][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:40:24,056 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:40:24,703 [DEBUG][       Thread-607917][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:40:24,703 [DEBUG][       Thread-607917][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:40:24,744 [DEBUG][       Thread-607917][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:40:24,744 [DEBUG][       Thread-607917][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:40:24,747 [DEBUG][       Thread-607917][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:40:24,758 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:40:24,758 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:40:24,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:40:24,760 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:40:24,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:40:24,764 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:40:24,764 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:40:24,764 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:40:24,764 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.527718 -999.00  +13.50  32.85     53   +4.10 1 2 2 1 1   887    0 9.09 -23.30 ----- 39.0 32.9 37.7 46.2 15.7 -20.4 15.2 -20.7 15.2 -19.5 15.7 -19.4
2025-07-01 14:40:24,764 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:40:24,764 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:40:24,764 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.527718
2025-07-01 14:40:24,764 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:40:24,764 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:40:24,764 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:40:24,764 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:40:24,764 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:40:24,765 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:39:56', tmtdew=10.76, humidity=48.12, cloud=0.0, wind=25.85, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:39:54.835', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:40:24,765 [DEBUG][       Thread-607917][   transport.py][1871] : EOF in transport thread
2025-07-01 14:40:24,841 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:40:24,857 [DEBUG][       Thread-607920][   transport.py][1871] : starting thread (client mode): 0x8173d60
2025-07-01 14:40:24,857 [DEBUG][       Thread-607920][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:40:24,871 [DEBUG][       Thread-607920][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:40:24,871 [ INFO][       Thread-607920][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:40:24,879 [DEBUG][       Thread-607920][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:40:24,879 [DEBUG][       Thread-607920][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:40:24,879 [DEBUG][       Thread-607920][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:40:24,879 [DEBUG][       Thread-607920][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:40:24,879 [DEBUG][       Thread-607920][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:40:24,879 [DEBUG][       Thread-607920][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:40:24,879 [DEBUG][       Thread-607920][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:40:24,879 [DEBUG][       Thread-607920][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:40:24,879 [DEBUG][       Thread-607920][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:40:24,879 [DEBUG][       Thread-607920][   transport.py][1871] : client lang: <none>
2025-07-01 14:40:24,879 [DEBUG][       Thread-607920][   transport.py][1871] : server lang: <none>
2025-07-01 14:40:24,879 [DEBUG][       Thread-607920][   transport.py][1871] : kex follows: False
2025-07-01 14:40:24,879 [DEBUG][       Thread-607920][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:40:24,879 [DEBUG][       Thread-607920][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:40:24,879 [DEBUG][       Thread-607920][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:40:24,879 [DEBUG][       Thread-607920][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:40:24,879 [DEBUG][       Thread-607920][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:40:24,879 [DEBUG][       Thread-607920][   transport.py][1871] : Compression: none
2025-07-01 14:40:24,879 [DEBUG][       Thread-607920][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:40:24,937 [DEBUG][       Thread-607920][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:40:24,937 [DEBUG][       Thread-607920][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:40:24,937 [DEBUG][       Thread-607920][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:40:24,937 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:40:24,937 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:40:24,994 [DEBUG][       Thread-607920][   transport.py][1871] : userauth is OK
2025-07-01 14:40:24,994 [DEBUG][       Thread-607920][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:40:24,994 [DEBUG][       Thread-607920][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:40:24,994 [DEBUG][       Thread-607920][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:40:24,994 [DEBUG][       Thread-607920][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:40:25,008 [ INFO][       Thread-607920][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:40:25,009 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:40:25,009 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:40:26,055 [DEBUG][       Thread-607920][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:40:26,055 [DEBUG][       Thread-607920][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:40:26,104 [DEBUG][       Thread-607920][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:40:26,104 [DEBUG][       Thread-607920][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:40:26,113 [DEBUG][       Thread-607920][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:40:26,122 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:40:26,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-07-01 14:40:26,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-07-01 14:40:26,141 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:40:26,141 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:40:26,142 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:40:26,150 [DEBUG][       Thread-607920][   transport.py][1871] : EOF in transport thread
2025-07-01 14:40:30,597 [DEBUG][Thread-607922 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:40:35,393 [DEBUG][Thread-607923 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:40:36,152 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:40:36,152 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:40:36,152 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:40:36,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-07-01 14:40:36,636 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 40, 29), 10.79, 48.14, 0.0, 33.12, 13.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:40:36,636 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:40:29
2025-07-01 14:40:36,721 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:40:36,724 [DEBUG][       Thread-607924][   transport.py][1871] : starting thread (client mode): 0x81cb4c0
2025-07-01 14:40:36,724 [DEBUG][       Thread-607924][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:40:36,738 [DEBUG][       Thread-607924][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:40:36,738 [ INFO][       Thread-607924][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:40:36,740 [DEBUG][       Thread-607924][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:40:36,740 [DEBUG][       Thread-607924][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:40:36,740 [DEBUG][       Thread-607924][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:40:36,740 [DEBUG][       Thread-607924][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:40:36,740 [DEBUG][       Thread-607924][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:40:36,740 [DEBUG][       Thread-607924][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:40:36,740 [DEBUG][       Thread-607924][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:40:36,740 [DEBUG][       Thread-607924][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:40:36,740 [DEBUG][       Thread-607924][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:40:36,740 [DEBUG][       Thread-607924][   transport.py][1871] : client lang: <none>
2025-07-01 14:40:36,740 [DEBUG][       Thread-607924][   transport.py][1871] : server lang: <none>
2025-07-01 14:40:36,740 [DEBUG][       Thread-607924][   transport.py][1871] : kex follows: False
2025-07-01 14:40:36,740 [DEBUG][       Thread-607924][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:40:36,740 [DEBUG][       Thread-607924][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:40:36,740 [DEBUG][       Thread-607924][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:40:36,740 [DEBUG][       Thread-607924][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:40:36,740 [DEBUG][       Thread-607924][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:40:36,740 [DEBUG][       Thread-607924][   transport.py][1871] : Compression: none
2025-07-01 14:40:36,740 [DEBUG][       Thread-607924][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:40:36,756 [DEBUG][       Thread-607924][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:40:36,757 [DEBUG][       Thread-607924][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:40:36,757 [DEBUG][       Thread-607924][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:40:36,757 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:40:36,758 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:40:36,758 [DEBUG][       Thread-607924][   transport.py][1871] : userauth is OK
2025-07-01 14:40:36,771 [ INFO][       Thread-607924][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:40:36,772 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:40:37,440 [DEBUG][       Thread-607924][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:40:37,440 [DEBUG][       Thread-607924][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:40:37,481 [DEBUG][       Thread-607924][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:40:37,481 [DEBUG][       Thread-607924][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:40:37,485 [DEBUG][       Thread-607924][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:40:37,497 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:40:37,497 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:40:37,499 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:40:37,501 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:40:37,508 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:40:37,510 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:40:37,510 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:40:37,511 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:40:37,511 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.528066 -999.00  +13.50  34.03     52   +4.10 1 2 2 1 1   887    0 8.76 -23.81 ----- 42.4 34.0 35.6 47.3 15.7 -20.8 15.2 -20.4 15.2 -19.4 15.7 -19.7
2025-07-01 14:40:37,511 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:40:37,511 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:40:37,511 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.528066
2025-07-01 14:40:37,512 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:40:37,512 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:40:37,513 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:40:37,513 [DEBUG][       Thread-607924][   transport.py][1871] : EOF in transport thread
2025-07-01 14:40:37,513 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:40:37,514 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:40:37,514 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:40:29', tmtdew=10.79, humidity=48.14, cloud=0.0, wind=33.12, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:40:24.902', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:40:37,597 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:40:37,606 [DEBUG][       Thread-607927][   transport.py][1871] : starting thread (client mode): 0x8393c40
2025-07-01 14:40:37,606 [DEBUG][       Thread-607927][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:40:37,628 [DEBUG][       Thread-607927][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:40:37,628 [ INFO][       Thread-607927][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:40:37,636 [DEBUG][       Thread-607927][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:40:37,636 [DEBUG][       Thread-607927][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:40:37,636 [DEBUG][       Thread-607927][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:40:37,636 [DEBUG][       Thread-607927][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:40:37,636 [DEBUG][       Thread-607927][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:40:37,636 [DEBUG][       Thread-607927][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:40:37,636 [DEBUG][       Thread-607927][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:40:37,636 [DEBUG][       Thread-607927][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:40:37,636 [DEBUG][       Thread-607927][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:40:37,637 [DEBUG][       Thread-607927][   transport.py][1871] : client lang: <none>
2025-07-01 14:40:37,637 [DEBUG][       Thread-607927][   transport.py][1871] : server lang: <none>
2025-07-01 14:40:37,637 [DEBUG][       Thread-607927][   transport.py][1871] : kex follows: False
2025-07-01 14:40:37,637 [DEBUG][       Thread-607927][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:40:37,637 [DEBUG][       Thread-607927][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:40:37,637 [DEBUG][       Thread-607927][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:40:37,637 [DEBUG][       Thread-607927][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:40:37,637 [DEBUG][       Thread-607927][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:40:37,637 [DEBUG][       Thread-607927][   transport.py][1871] : Compression: none
2025-07-01 14:40:37,637 [DEBUG][       Thread-607927][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:40:37,695 [DEBUG][       Thread-607927][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:40:37,696 [DEBUG][       Thread-607927][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:40:37,696 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:40:37,697 [DEBUG][       Thread-607927][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:40:37,697 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:40:37,751 [DEBUG][       Thread-607927][   transport.py][1871] : userauth is OK
2025-07-01 14:40:37,751 [DEBUG][       Thread-607927][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:40:37,751 [DEBUG][       Thread-607927][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:40:37,751 [DEBUG][       Thread-607927][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:40:37,751 [DEBUG][       Thread-607927][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:40:37,773 [ INFO][       Thread-607927][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:40:37,774 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:40:37,774 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:40:38,813 [DEBUG][       Thread-607927][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:40:38,813 [DEBUG][       Thread-607927][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:40:38,864 [DEBUG][       Thread-607927][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:40:38,864 [DEBUG][       Thread-607927][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:40:38,873 [DEBUG][       Thread-607927][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:40:38,882 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:40:38,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-07-01 14:40:38,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-07-01 14:40:38,900 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:40:38,900 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:40:38,900 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:40:38,908 [DEBUG][       Thread-607927][   transport.py][1871] : EOF in transport thread
2025-07-01 14:40:39,618 [DEBUG][Thread-607929 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:40:48,662 [DEBUG][Thread-607930 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:40:48,911 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:40:48,911 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:40:48,911 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:40:48,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-07-01 14:40:49,410 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 40, 29), 10.79, 48.14, 0.0, 33.12, 13.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:40:49,410 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:40:29
2025-07-01 14:40:49,493 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:40:49,499 [DEBUG][       Thread-607931][   transport.py][1871] : starting thread (client mode): 0x81c9420
2025-07-01 14:40:49,499 [DEBUG][       Thread-607931][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:40:49,520 [DEBUG][       Thread-607931][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:40:49,520 [ INFO][       Thread-607931][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:40:49,523 [DEBUG][       Thread-607931][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:40:49,523 [DEBUG][       Thread-607931][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:40:49,523 [DEBUG][       Thread-607931][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:40:49,523 [DEBUG][       Thread-607931][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:40:49,523 [DEBUG][       Thread-607931][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:40:49,523 [DEBUG][       Thread-607931][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:40:49,523 [DEBUG][       Thread-607931][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:40:49,523 [DEBUG][       Thread-607931][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:40:49,523 [DEBUG][       Thread-607931][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:40:49,523 [DEBUG][       Thread-607931][   transport.py][1871] : client lang: <none>
2025-07-01 14:40:49,523 [DEBUG][       Thread-607931][   transport.py][1871] : server lang: <none>
2025-07-01 14:40:49,523 [DEBUG][       Thread-607931][   transport.py][1871] : kex follows: False
2025-07-01 14:40:49,523 [DEBUG][       Thread-607931][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:40:49,523 [DEBUG][       Thread-607931][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:40:49,523 [DEBUG][       Thread-607931][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:40:49,523 [DEBUG][       Thread-607931][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:40:49,523 [DEBUG][       Thread-607931][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:40:49,523 [DEBUG][       Thread-607931][   transport.py][1871] : Compression: none
2025-07-01 14:40:49,523 [DEBUG][       Thread-607931][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:40:49,537 [DEBUG][       Thread-607931][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:40:49,537 [DEBUG][       Thread-607931][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:40:49,537 [DEBUG][       Thread-607931][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:40:49,537 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:40:49,537 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:40:49,580 [DEBUG][       Thread-607931][   transport.py][1871] : userauth is OK
2025-07-01 14:40:49,605 [ INFO][       Thread-607931][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:40:49,605 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:40:50,350 [DEBUG][       Thread-607931][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:40:50,351 [DEBUG][       Thread-607931][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:40:50,393 [DEBUG][       Thread-607931][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:40:50,393 [DEBUG][       Thread-607931][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:40:50,396 [DEBUG][       Thread-607931][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:40:50,407 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:40:50,408 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:40:50,410 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:40:50,412 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:40:50,418 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:40:50,420 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:40:50,420 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:40:50,421 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:40:50,421 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.528066 -999.00  +13.50  34.03     52   +4.10 1 2 2 1 1   887    0 8.76 -23.81 ----- 42.4 34.0 35.6 47.3 15.7 -20.8 15.2 -20.4 15.2 -19.4 15.7 -19.7
2025-07-01 14:40:50,421 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:40:50,421 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:40:50,421 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.528066
2025-07-01 14:40:50,422 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:40:50,422 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:40:50,422 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:40:50,422 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:40:50,422 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:40:50,423 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:40:29', tmtdew=10.79, humidity=48.14, cloud=0.0, wind=33.12, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:40:24.902', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:40:50,423 [DEBUG][       Thread-607931][   transport.py][1871] : EOF in transport thread
2025-07-01 14:40:50,499 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:40:50,511 [DEBUG][       Thread-607934][   transport.py][1871] : starting thread (client mode): 0x8171d20
2025-07-01 14:40:50,511 [DEBUG][       Thread-607934][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:40:50,525 [DEBUG][       Thread-607934][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:40:50,525 [ INFO][       Thread-607934][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:40:50,533 [DEBUG][       Thread-607934][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:40:50,533 [DEBUG][       Thread-607934][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:40:50,533 [DEBUG][       Thread-607934][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:40:50,533 [DEBUG][       Thread-607934][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:40:50,533 [DEBUG][       Thread-607934][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:40:50,533 [DEBUG][       Thread-607934][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:40:50,533 [DEBUG][       Thread-607934][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:40:50,533 [DEBUG][       Thread-607934][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:40:50,533 [DEBUG][       Thread-607934][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:40:50,533 [DEBUG][       Thread-607934][   transport.py][1871] : client lang: <none>
2025-07-01 14:40:50,533 [DEBUG][       Thread-607934][   transport.py][1871] : server lang: <none>
2025-07-01 14:40:50,534 [DEBUG][       Thread-607934][   transport.py][1871] : kex follows: False
2025-07-01 14:40:50,534 [DEBUG][       Thread-607934][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:40:50,534 [DEBUG][       Thread-607934][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:40:50,534 [DEBUG][       Thread-607934][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:40:50,534 [DEBUG][       Thread-607934][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:40:50,534 [DEBUG][       Thread-607934][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:40:50,534 [DEBUG][       Thread-607934][   transport.py][1871] : Compression: none
2025-07-01 14:40:50,534 [DEBUG][       Thread-607934][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:40:50,591 [DEBUG][       Thread-607934][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:40:50,591 [DEBUG][       Thread-607934][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:40:50,592 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:40:50,592 [DEBUG][       Thread-607934][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:40:50,593 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:40:50,647 [DEBUG][       Thread-607934][   transport.py][1871] : userauth is OK
2025-07-01 14:40:50,647 [DEBUG][       Thread-607934][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:40:50,647 [DEBUG][       Thread-607934][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:40:50,648 [DEBUG][       Thread-607934][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:40:50,648 [DEBUG][       Thread-607934][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:40:50,667 [ INFO][       Thread-607934][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:40:50,667 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:40:50,668 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:40:51,696 [DEBUG][       Thread-607934][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:40:51,697 [DEBUG][       Thread-607934][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:40:51,748 [DEBUG][       Thread-607934][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:40:51,748 [DEBUG][       Thread-607934][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:40:51,757 [DEBUG][       Thread-607934][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:40:51,766 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:40:51,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-07-01 14:40:51,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-07-01 14:40:51,784 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:40:51,784 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:40:51,785 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:40:51,793 [DEBUG][       Thread-607934][   transport.py][1871] : EOF in transport thread
2025-07-01 14:40:57,684 [DEBUG][Thread-607936 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:41:01,792 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:41:01,792 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:41:01,792 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:41:01,793 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:41:02,339 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 40, 29), 10.79, 48.14, 0.0, 33.12, 13.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:41:02,339 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:40:29
2025-07-01 14:41:02,432 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:41:02,436 [DEBUG][       Thread-607937][   transport.py][1871] : starting thread (client mode): 0x81d8d00
2025-07-01 14:41:02,436 [DEBUG][       Thread-607937][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:41:02,451 [DEBUG][       Thread-607937][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:41:02,451 [ INFO][       Thread-607937][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:41:02,454 [DEBUG][       Thread-607937][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:41:02,454 [DEBUG][       Thread-607937][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:41:02,454 [DEBUG][       Thread-607937][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:41:02,454 [DEBUG][       Thread-607937][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:41:02,454 [DEBUG][       Thread-607937][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:41:02,454 [DEBUG][       Thread-607937][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:41:02,454 [DEBUG][       Thread-607937][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:41:02,454 [DEBUG][       Thread-607937][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:41:02,454 [DEBUG][       Thread-607937][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:41:02,454 [DEBUG][       Thread-607937][   transport.py][1871] : client lang: <none>
2025-07-01 14:41:02,454 [DEBUG][       Thread-607937][   transport.py][1871] : server lang: <none>
2025-07-01 14:41:02,454 [DEBUG][       Thread-607937][   transport.py][1871] : kex follows: False
2025-07-01 14:41:02,454 [DEBUG][       Thread-607937][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:41:02,454 [DEBUG][       Thread-607937][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:41:02,454 [DEBUG][       Thread-607937][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:41:02,454 [DEBUG][       Thread-607937][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:41:02,454 [DEBUG][       Thread-607937][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:41:02,454 [DEBUG][       Thread-607937][   transport.py][1871] : Compression: none
2025-07-01 14:41:02,454 [DEBUG][       Thread-607937][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:41:02,469 [DEBUG][       Thread-607937][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:41:02,469 [DEBUG][       Thread-607937][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:41:02,469 [DEBUG][       Thread-607937][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:41:02,469 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:41:02,469 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:41:02,470 [DEBUG][       Thread-607937][   transport.py][1871] : userauth is OK
2025-07-01 14:41:02,493 [ INFO][       Thread-607937][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:41:02,493 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:41:03,303 [DEBUG][       Thread-607937][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:41:03,303 [DEBUG][       Thread-607937][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:41:03,344 [DEBUG][       Thread-607937][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:41:03,344 [DEBUG][       Thread-607937][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:41:03,347 [DEBUG][       Thread-607937][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:41:03,356 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:41:03,356 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:41:03,357 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:41:03,358 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:41:03,360 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:41:03,361 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:41:03,361 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:41:03,361 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:41:03,361 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.528066 -999.00  +13.50  34.03     52   +4.10 1 2 2 1 1   887    0 8.76 -23.81 ----- 42.4 34.0 35.6 47.3 15.7 -20.8 15.2 -20.4 15.2 -19.4 15.7 -19.7
2025-07-01 14:41:03,361 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:41:03,361 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:41:03,362 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.528066
2025-07-01 14:41:03,362 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:41:03,362 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:41:03,362 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:41:03,362 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:41:03,362 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:41:03,362 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:40:29', tmtdew=10.79, humidity=48.14, cloud=0.0, wind=33.12, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:40:24.902', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:41:03,362 [DEBUG][       Thread-607937][   transport.py][1871] : EOF in transport thread
2025-07-01 14:41:03,434 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:41:03,443 [DEBUG][       Thread-607940][   transport.py][1871] : starting thread (client mode): 0x82b23b0
2025-07-01 14:41:03,443 [DEBUG][       Thread-607940][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:41:03,459 [DEBUG][       Thread-607940][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:41:03,459 [ INFO][       Thread-607940][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:41:03,466 [DEBUG][       Thread-607940][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:41:03,466 [DEBUG][       Thread-607940][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:41:03,466 [DEBUG][       Thread-607940][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:41:03,466 [DEBUG][       Thread-607940][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:41:03,466 [DEBUG][       Thread-607940][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:41:03,466 [DEBUG][       Thread-607940][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:41:03,466 [DEBUG][       Thread-607940][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:41:03,466 [DEBUG][       Thread-607940][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:41:03,466 [DEBUG][       Thread-607940][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:41:03,466 [DEBUG][       Thread-607940][   transport.py][1871] : client lang: <none>
2025-07-01 14:41:03,466 [DEBUG][       Thread-607940][   transport.py][1871] : server lang: <none>
2025-07-01 14:41:03,466 [DEBUG][       Thread-607940][   transport.py][1871] : kex follows: False
2025-07-01 14:41:03,466 [DEBUG][       Thread-607940][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:41:03,467 [DEBUG][       Thread-607940][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:41:03,467 [DEBUG][       Thread-607940][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:41:03,467 [DEBUG][       Thread-607940][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:41:03,467 [DEBUG][       Thread-607940][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:41:03,467 [DEBUG][       Thread-607940][   transport.py][1871] : Compression: none
2025-07-01 14:41:03,467 [DEBUG][       Thread-607940][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:41:03,528 [DEBUG][       Thread-607940][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:41:03,528 [DEBUG][       Thread-607940][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:41:03,528 [DEBUG][       Thread-607940][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:41:03,528 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:41:03,528 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:41:03,590 [DEBUG][       Thread-607940][   transport.py][1871] : userauth is OK
2025-07-01 14:41:03,590 [DEBUG][       Thread-607940][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:41:03,590 [DEBUG][       Thread-607940][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:41:03,590 [DEBUG][       Thread-607940][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:41:03,590 [DEBUG][       Thread-607940][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:41:03,604 [ INFO][       Thread-607940][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:41:03,604 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:41:03,604 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:41:04,690 [DEBUG][       Thread-607940][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:41:04,690 [DEBUG][       Thread-607940][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:41:04,739 [DEBUG][       Thread-607940][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:41:04,740 [DEBUG][       Thread-607940][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:41:04,751 [DEBUG][       Thread-607940][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:41:04,763 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:41:04,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-07-01 14:41:04,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-07-01 14:41:04,788 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:41:04,788 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:41:04,788 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:41:04,795 [DEBUG][       Thread-607940][   transport.py][1871] : EOF in transport thread
2025-07-01 14:41:06,704 [DEBUG][Thread-607942 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:41:14,798 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:41:14,798 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:41:14,799 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:41:14,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-07-01 14:41:15,276 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 41), 10.79, 48.12, 0.0, 33.84, 13.54, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:41:15,276 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:41:00
2025-07-01 14:41:15,360 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:41:15,366 [DEBUG][       Thread-607943][   transport.py][1871] : starting thread (client mode): 0x827d5d0
2025-07-01 14:41:15,366 [DEBUG][       Thread-607943][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:41:15,387 [DEBUG][       Thread-607943][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:41:15,387 [ INFO][       Thread-607943][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:41:15,390 [DEBUG][       Thread-607943][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:41:15,390 [DEBUG][       Thread-607943][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:41:15,390 [DEBUG][       Thread-607943][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:41:15,390 [DEBUG][       Thread-607943][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:41:15,390 [DEBUG][       Thread-607943][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:41:15,390 [DEBUG][       Thread-607943][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:41:15,390 [DEBUG][       Thread-607943][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:41:15,390 [DEBUG][       Thread-607943][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:41:15,390 [DEBUG][       Thread-607943][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:41:15,390 [DEBUG][       Thread-607943][   transport.py][1871] : client lang: <none>
2025-07-01 14:41:15,390 [DEBUG][       Thread-607943][   transport.py][1871] : server lang: <none>
2025-07-01 14:41:15,390 [DEBUG][       Thread-607943][   transport.py][1871] : kex follows: False
2025-07-01 14:41:15,390 [DEBUG][       Thread-607943][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:41:15,390 [DEBUG][       Thread-607943][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:41:15,390 [DEBUG][       Thread-607943][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:41:15,390 [DEBUG][       Thread-607943][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:41:15,390 [DEBUG][       Thread-607943][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:41:15,390 [DEBUG][       Thread-607943][   transport.py][1871] : Compression: none
2025-07-01 14:41:15,390 [DEBUG][       Thread-607943][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:41:15,409 [DEBUG][       Thread-607943][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:41:15,409 [DEBUG][       Thread-607943][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:41:15,410 [DEBUG][       Thread-607943][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:41:15,410 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:41:15,410 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:41:15,411 [DEBUG][       Thread-607943][   transport.py][1871] : userauth is OK
2025-07-01 14:41:15,436 [ INFO][       Thread-607943][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:41:15,437 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:41:15,726 [DEBUG][Thread-607945 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:41:16,031 [DEBUG][       Thread-607943][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:41:16,031 [DEBUG][       Thread-607943][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:41:16,073 [DEBUG][       Thread-607943][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:41:16,073 [DEBUG][       Thread-607943][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:41:16,076 [DEBUG][       Thread-607943][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:41:16,090 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:41:16,090 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:41:16,092 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:41:16,093 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:41:16,099 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:41:16,100 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:41:16,101 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:41:16,101 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:41:16,101 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.528413 -999.00  +13.40  40.19     52   +3.90 1 2 2 1 1   887    0 8.94 -22.16 ----- 43.5 40.2 22.4 49.8 15.6 -20.9 15.2 -21.0 15.1 -19.4 15.6 -19.0
2025-07-01 14:41:16,101 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:41:16,102 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:41:16,102 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.528413
2025-07-01 14:41:16,102 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:41:16,103 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:41:16,103 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:41:16,103 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:41:16,103 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:41:16,103 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:41:00', tmtdew=10.79, humidity=48.12, cloud=0.0, wind=33.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:40:54.883', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:41:16,103 [DEBUG][       Thread-607943][   transport.py][1871] : EOF in transport thread
2025-07-01 14:41:16,186 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:41:16,203 [DEBUG][       Thread-607947][   transport.py][1871] : starting thread (client mode): 0x82b2aa0
2025-07-01 14:41:16,203 [DEBUG][       Thread-607947][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:41:16,218 [DEBUG][       Thread-607947][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:41:16,218 [ INFO][       Thread-607947][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:41:16,225 [DEBUG][       Thread-607947][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:41:16,226 [DEBUG][       Thread-607947][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:41:16,226 [DEBUG][       Thread-607947][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:41:16,226 [DEBUG][       Thread-607947][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:41:16,226 [DEBUG][       Thread-607947][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:41:16,226 [DEBUG][       Thread-607947][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:41:16,226 [DEBUG][       Thread-607947][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:41:16,226 [DEBUG][       Thread-607947][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:41:16,226 [DEBUG][       Thread-607947][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:41:16,226 [DEBUG][       Thread-607947][   transport.py][1871] : client lang: <none>
2025-07-01 14:41:16,226 [DEBUG][       Thread-607947][   transport.py][1871] : server lang: <none>
2025-07-01 14:41:16,226 [DEBUG][       Thread-607947][   transport.py][1871] : kex follows: False
2025-07-01 14:41:16,226 [DEBUG][       Thread-607947][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:41:16,226 [DEBUG][       Thread-607947][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:41:16,226 [DEBUG][       Thread-607947][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:41:16,226 [DEBUG][       Thread-607947][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:41:16,226 [DEBUG][       Thread-607947][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:41:16,226 [DEBUG][       Thread-607947][   transport.py][1871] : Compression: none
2025-07-01 14:41:16,226 [DEBUG][       Thread-607947][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:41:16,283 [DEBUG][       Thread-607947][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:41:16,284 [DEBUG][       Thread-607947][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:41:16,284 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:41:16,285 [DEBUG][       Thread-607947][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:41:16,286 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:41:16,340 [DEBUG][       Thread-607947][   transport.py][1871] : userauth is OK
2025-07-01 14:41:16,340 [DEBUG][       Thread-607947][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:41:16,340 [DEBUG][       Thread-607947][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:41:16,340 [DEBUG][       Thread-607947][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:41:16,340 [DEBUG][       Thread-607947][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:41:16,359 [ INFO][       Thread-607947][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:41:16,360 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:41:16,360 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:41:17,393 [DEBUG][       Thread-607947][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:41:17,393 [DEBUG][       Thread-607947][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:41:17,444 [DEBUG][       Thread-607947][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:41:17,444 [DEBUG][       Thread-607947][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:41:17,453 [DEBUG][       Thread-607947][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:41:17,462 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:41:17,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-07-01 14:41: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') -> 00000000
2025-07-01 14:41:17,481 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:41:17,481 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:41:17,482 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:41:17,490 [DEBUG][       Thread-607947][   transport.py][1871] : EOF in transport thread
2025-07-01 14:41:24,752 [DEBUG][Thread-607949 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:41:27,492 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:41:27,492 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:41:27,493 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:41:27,496 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:41:27,982 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 41), 10.79, 48.12, 0.0, 33.84, 13.54, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:41:27,982 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:41:00
2025-07-01 14:41:28,065 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:41:28,072 [DEBUG][       Thread-607950][   transport.py][1871] : starting thread (client mode): 0x81dbee0
2025-07-01 14:41:28,072 [DEBUG][       Thread-607950][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:41:28,093 [DEBUG][       Thread-607950][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:41:28,093 [ INFO][       Thread-607950][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:41:28,097 [DEBUG][       Thread-607950][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:41:28,097 [DEBUG][       Thread-607950][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:41:28,097 [DEBUG][       Thread-607950][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:41:28,097 [DEBUG][       Thread-607950][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:41:28,097 [DEBUG][       Thread-607950][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:41:28,097 [DEBUG][       Thread-607950][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:41:28,097 [DEBUG][       Thread-607950][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:41:28,097 [DEBUG][       Thread-607950][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:41:28,097 [DEBUG][       Thread-607950][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:41:28,097 [DEBUG][       Thread-607950][   transport.py][1871] : client lang: <none>
2025-07-01 14:41:28,097 [DEBUG][       Thread-607950][   transport.py][1871] : server lang: <none>
2025-07-01 14:41:28,097 [DEBUG][       Thread-607950][   transport.py][1871] : kex follows: False
2025-07-01 14:41:28,097 [DEBUG][       Thread-607950][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:41:28,097 [DEBUG][       Thread-607950][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:41:28,097 [DEBUG][       Thread-607950][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:41:28,097 [DEBUG][       Thread-607950][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:41:28,097 [DEBUG][       Thread-607950][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:41:28,097 [DEBUG][       Thread-607950][   transport.py][1871] : Compression: none
2025-07-01 14:41:28,097 [DEBUG][       Thread-607950][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:41:28,114 [DEBUG][       Thread-607950][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:41:28,114 [DEBUG][       Thread-607950][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:41:28,115 [DEBUG][       Thread-607950][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:41:28,115 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:41:28,115 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:41:28,116 [DEBUG][       Thread-607950][   transport.py][1871] : userauth is OK
2025-07-01 14:41:28,141 [ INFO][       Thread-607950][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:41:28,141 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:41:28,873 [DEBUG][       Thread-607950][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:41:28,873 [DEBUG][       Thread-607950][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:41:28,917 [DEBUG][       Thread-607950][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:41:28,917 [DEBUG][       Thread-607950][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:41:28,921 [DEBUG][       Thread-607950][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:41:28,934 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:41:28,935 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:41:28,936 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:41:28,941 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:41:28,947 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:41:28,950 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:41:28,950 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:41:28,951 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:41:28,951 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.528413 -999.00  +13.40  40.19     52   +3.90 1 2 2 1 1   887    0 8.94 -22.16 ----- 43.5 40.2 22.4 49.8 15.6 -20.9 15.2 -21.0 15.1 -19.4 15.6 -19.0
2025-07-01 14:41:28,951 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:41:28,951 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:41:28,951 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.528413
2025-07-01 14:41:28,952 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:41:28,953 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:41:28,953 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:41:28,953 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:41:28,953 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:41:28,953 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:41:00', tmtdew=10.79, humidity=48.12, cloud=0.0, wind=33.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:40:54.883', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:41:28,954 [DEBUG][       Thread-607950][   transport.py][1871] : EOF in transport thread
2025-07-01 14:41:29,039 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:41:29,051 [DEBUG][       Thread-607953][   transport.py][1871] : starting thread (client mode): 0x82b2620
2025-07-01 14:41:29,051 [DEBUG][       Thread-607953][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:41:29,067 [DEBUG][       Thread-607953][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:41:29,067 [ INFO][       Thread-607953][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:41:29,074 [DEBUG][       Thread-607953][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:41:29,074 [DEBUG][       Thread-607953][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:41:29,074 [DEBUG][       Thread-607953][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:41:29,075 [DEBUG][       Thread-607953][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:41:29,075 [DEBUG][       Thread-607953][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:41:29,075 [DEBUG][       Thread-607953][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:41:29,075 [DEBUG][       Thread-607953][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:41:29,075 [DEBUG][       Thread-607953][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:41:29,075 [DEBUG][       Thread-607953][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:41:29,075 [DEBUG][       Thread-607953][   transport.py][1871] : client lang: <none>
2025-07-01 14:41:29,075 [DEBUG][       Thread-607953][   transport.py][1871] : server lang: <none>
2025-07-01 14:41:29,075 [DEBUG][       Thread-607953][   transport.py][1871] : kex follows: False
2025-07-01 14:41:29,075 [DEBUG][       Thread-607953][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:41:29,075 [DEBUG][       Thread-607953][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:41:29,075 [DEBUG][       Thread-607953][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:41:29,075 [DEBUG][       Thread-607953][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:41:29,075 [DEBUG][       Thread-607953][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:41:29,075 [DEBUG][       Thread-607953][   transport.py][1871] : Compression: none
2025-07-01 14:41:29,075 [DEBUG][       Thread-607953][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:41:29,132 [DEBUG][       Thread-607953][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:41:29,132 [DEBUG][       Thread-607953][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:41:29,133 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:41:29,133 [DEBUG][       Thread-607953][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:41:29,134 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:41:29,188 [DEBUG][       Thread-607953][   transport.py][1871] : userauth is OK
2025-07-01 14:41:29,189 [DEBUG][       Thread-607953][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:41:29,189 [DEBUG][       Thread-607953][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:41:29,189 [DEBUG][       Thread-607953][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:41:29,189 [DEBUG][       Thread-607953][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:41:29,208 [ INFO][       Thread-607953][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:41:29,208 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:41:29,209 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:41:30,277 [DEBUG][       Thread-607953][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:41:30,277 [DEBUG][       Thread-607953][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:41:30,330 [DEBUG][       Thread-607953][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:41:30,330 [DEBUG][       Thread-607953][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:41:30,342 [DEBUG][       Thread-607953][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:41:30,353 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:41: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-07-01 14:41:30,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-07-01 14:41:30,374 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:41:30,374 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:41:30,375 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:41:30,383 [DEBUG][       Thread-607953][   transport.py][1871] : EOF in transport thread
2025-07-01 14:41:33,782 [DEBUG][Thread-607955 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:41:35,425 [DEBUG][Thread-607956 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:41:40,384 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:41:40,384 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:41:40,384 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:41:40,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-07-01 14:41:40,875 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 41, 32), 10.8, 48.07, 0.0, 34.28, 13.55, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:41:40,875 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:41:32
2025-07-01 14:41:40,962 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:41:40,966 [DEBUG][       Thread-607957][   transport.py][1871] : starting thread (client mode): 0x81d8c40
2025-07-01 14:41:40,966 [DEBUG][       Thread-607957][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:41:40,987 [DEBUG][       Thread-607957][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:41:40,987 [ INFO][       Thread-607957][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:41:40,990 [DEBUG][       Thread-607957][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:41:40,990 [DEBUG][       Thread-607957][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:41:40,990 [DEBUG][       Thread-607957][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:41:40,990 [DEBUG][       Thread-607957][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:41:40,990 [DEBUG][       Thread-607957][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:41:40,990 [DEBUG][       Thread-607957][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:41:40,990 [DEBUG][       Thread-607957][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:41:40,990 [DEBUG][       Thread-607957][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:41:40,990 [DEBUG][       Thread-607957][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:41:40,990 [DEBUG][       Thread-607957][   transport.py][1871] : client lang: <none>
2025-07-01 14:41:40,990 [DEBUG][       Thread-607957][   transport.py][1871] : server lang: <none>
2025-07-01 14:41:40,990 [DEBUG][       Thread-607957][   transport.py][1871] : kex follows: False
2025-07-01 14:41:40,990 [DEBUG][       Thread-607957][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:41:40,991 [DEBUG][       Thread-607957][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:41:40,991 [DEBUG][       Thread-607957][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:41:40,991 [DEBUG][       Thread-607957][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:41:40,991 [DEBUG][       Thread-607957][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:41:40,991 [DEBUG][       Thread-607957][   transport.py][1871] : Compression: none
2025-07-01 14:41:40,991 [DEBUG][       Thread-607957][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:41:41,005 [DEBUG][       Thread-607957][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:41:41,006 [DEBUG][       Thread-607957][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:41:41,006 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:41:41,006 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:41:41,006 [DEBUG][       Thread-607957][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:41:41,007 [DEBUG][       Thread-607957][   transport.py][1871] : userauth is OK
2025-07-01 14:41:41,030 [ INFO][       Thread-607957][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:41:41,030 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:41:41,688 [DEBUG][       Thread-607957][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:41:41,688 [DEBUG][       Thread-607957][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:41:41,732 [DEBUG][       Thread-607957][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:41:41,732 [DEBUG][       Thread-607957][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:41:41,734 [DEBUG][       Thread-607957][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:41:41,740 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:41:41,740 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:41:41,742 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:41:41,742 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:41:41,745 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:41:41,746 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:41:41,746 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:41:41,746 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:41:41,746 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.528760 -999.00  +13.30  37.94     52   +3.90 1 2 2 1 1   887    0 8.87 -22.34 ----- 37.5 37.9 16.6 50.0 15.6 -21.5 15.1 -20.9 15.0 -19.4 15.5 -20.2
2025-07-01 14:41:41,746 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:41:41,746 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:41:41,746 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.528760
2025-07-01 14:41:41,746 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:41:41,746 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:41:41,746 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:41:41,746 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:41:41,746 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:41:41,746 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:41:32', tmtdew=10.8, humidity=48.07, cloud=0.0, wind=34.28, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:41:24.864', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:41:41,746 [DEBUG][       Thread-607957][   transport.py][1871] : EOF in transport thread
2025-07-01 14:41:41,818 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:41:41,827 [DEBUG][       Thread-607960][   transport.py][1871] : starting thread (client mode): 0x81e7f70
2025-07-01 14:41:41,827 [DEBUG][       Thread-607960][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:41:41,847 [DEBUG][       Thread-607960][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:41:41,847 [ INFO][       Thread-607960][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:41:41,854 [DEBUG][       Thread-607960][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:41:41,854 [DEBUG][       Thread-607960][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:41:41,854 [DEBUG][       Thread-607960][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:41:41,854 [DEBUG][       Thread-607960][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:41:41,854 [DEBUG][       Thread-607960][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:41:41,854 [DEBUG][       Thread-607960][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:41:41,854 [DEBUG][       Thread-607960][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:41:41,854 [DEBUG][       Thread-607960][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:41:41,854 [DEBUG][       Thread-607960][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:41:41,854 [DEBUG][       Thread-607960][   transport.py][1871] : client lang: <none>
2025-07-01 14:41:41,854 [DEBUG][       Thread-607960][   transport.py][1871] : server lang: <none>
2025-07-01 14:41:41,854 [DEBUG][       Thread-607960][   transport.py][1871] : kex follows: False
2025-07-01 14:41:41,854 [DEBUG][       Thread-607960][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:41:41,854 [DEBUG][       Thread-607960][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:41:41,854 [DEBUG][       Thread-607960][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:41:41,854 [DEBUG][       Thread-607960][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:41:41,854 [DEBUG][       Thread-607960][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:41:41,854 [DEBUG][       Thread-607960][   transport.py][1871] : Compression: none
2025-07-01 14:41:41,854 [DEBUG][       Thread-607960][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:41:41,910 [DEBUG][       Thread-607960][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:41:41,911 [DEBUG][       Thread-607960][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:41:41,911 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:41:41,911 [DEBUG][       Thread-607960][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:41:41,911 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:41:41,968 [DEBUG][       Thread-607960][   transport.py][1871] : userauth is OK
2025-07-01 14:41:41,968 [DEBUG][       Thread-607960][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:41:41,968 [DEBUG][       Thread-607960][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:41:41,968 [DEBUG][       Thread-607960][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:41:41,968 [DEBUG][       Thread-607960][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:41:41,982 [ INFO][       Thread-607960][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:41:41,982 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:41:41,982 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:41:42,799 [DEBUG][Thread-607962 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:41:43,010 [DEBUG][       Thread-607960][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:41:43,010 [DEBUG][       Thread-607960][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:41:43,059 [DEBUG][       Thread-607960][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:41:43,059 [DEBUG][       Thread-607960][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:41:43,068 [DEBUG][       Thread-607960][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:41:43,076 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:41:43,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-07-01 14:41:43,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-07-01 14:41:43,093 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:41:43,093 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:41:43,093 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:41:43,100 [DEBUG][       Thread-607960][   transport.py][1871] : EOF in transport thread
2025-07-01 14:41:51,823 [DEBUG][Thread-607963 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:41:53,103 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:41:53,103 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:41:53,103 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:41:53,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-07-01 14:41:53,596 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 41, 32), 10.8, 48.07, 0.0, 34.28, 13.55, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:41:53,596 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:41:32
2025-07-01 14:41:53,679 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:41:53,685 [DEBUG][       Thread-607964][   transport.py][1871] : starting thread (client mode): 0x81d9150
2025-07-01 14:41:53,688 [DEBUG][       Thread-607964][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:41:53,705 [DEBUG][       Thread-607964][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:41:53,705 [ INFO][       Thread-607964][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:41:53,708 [DEBUG][       Thread-607964][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:41:53,708 [DEBUG][       Thread-607964][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:41:53,708 [DEBUG][       Thread-607964][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:41:53,708 [DEBUG][       Thread-607964][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:41:53,708 [DEBUG][       Thread-607964][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:41:53,708 [DEBUG][       Thread-607964][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:41:53,708 [DEBUG][       Thread-607964][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:41:53,708 [DEBUG][       Thread-607964][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:41:53,709 [DEBUG][       Thread-607964][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:41:53,709 [DEBUG][       Thread-607964][   transport.py][1871] : client lang: <none>
2025-07-01 14:41:53,709 [DEBUG][       Thread-607964][   transport.py][1871] : server lang: <none>
2025-07-01 14:41:53,709 [DEBUG][       Thread-607964][   transport.py][1871] : kex follows: False
2025-07-01 14:41:53,709 [DEBUG][       Thread-607964][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:41:53,709 [DEBUG][       Thread-607964][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:41:53,709 [DEBUG][       Thread-607964][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:41:53,709 [DEBUG][       Thread-607964][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:41:53,709 [DEBUG][       Thread-607964][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:41:53,709 [DEBUG][       Thread-607964][   transport.py][1871] : Compression: none
2025-07-01 14:41:53,709 [DEBUG][       Thread-607964][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:41:53,725 [DEBUG][       Thread-607964][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:41:53,726 [DEBUG][       Thread-607964][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:41:53,726 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:41:53,726 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:41:53,727 [DEBUG][       Thread-607964][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:41:53,727 [DEBUG][       Thread-607964][   transport.py][1871] : userauth is OK
2025-07-01 14:41:53,740 [ INFO][       Thread-607964][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:41:53,741 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:41:54,560 [DEBUG][       Thread-607964][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:41:54,560 [DEBUG][       Thread-607964][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:41:54,601 [DEBUG][       Thread-607964][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:41:54,601 [DEBUG][       Thread-607964][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:41:54,605 [DEBUG][       Thread-607964][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:41:54,617 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:41:54,617 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:41:54,619 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:41:54,622 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:41:54,628 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:41:54,630 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:41:54,630 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:41:54,631 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:41:54,631 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.528760 -999.00  +13.30  37.94     52   +3.90 1 2 2 1 1   887    0 8.87 -22.34 ----- 37.5 37.9 16.6 50.0 15.6 -21.5 15.1 -20.9 15.0 -19.4 15.5 -20.2
2025-07-01 14:41:54,631 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:41:54,631 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:41:54,631 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.528760
2025-07-01 14:41:54,632 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:41:54,632 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:41:54,632 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:41:54,633 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:41:54,633 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:41:54,633 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:41:32', tmtdew=10.8, humidity=48.07, cloud=0.0, wind=34.28, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:41:24.864', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:41:54,634 [DEBUG][       Thread-607964][   transport.py][1871] : EOF in transport thread
2025-07-01 14:41:54,719 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:41:54,730 [DEBUG][       Thread-607967][   transport.py][1871] : starting thread (client mode): 0x8105060
2025-07-01 14:41:54,730 [DEBUG][       Thread-607967][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:41:54,748 [DEBUG][       Thread-607967][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:41:54,748 [ INFO][       Thread-607967][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:41:54,755 [DEBUG][       Thread-607967][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:41:54,756 [DEBUG][       Thread-607967][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:41:54,756 [DEBUG][       Thread-607967][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:41:54,756 [DEBUG][       Thread-607967][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:41:54,756 [DEBUG][       Thread-607967][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:41:54,756 [DEBUG][       Thread-607967][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:41:54,756 [DEBUG][       Thread-607967][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:41:54,756 [DEBUG][       Thread-607967][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:41:54,756 [DEBUG][       Thread-607967][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:41:54,756 [DEBUG][       Thread-607967][   transport.py][1871] : client lang: <none>
2025-07-01 14:41:54,756 [DEBUG][       Thread-607967][   transport.py][1871] : server lang: <none>
2025-07-01 14:41:54,756 [DEBUG][       Thread-607967][   transport.py][1871] : kex follows: False
2025-07-01 14:41:54,756 [DEBUG][       Thread-607967][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:41:54,756 [DEBUG][       Thread-607967][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:41:54,756 [DEBUG][       Thread-607967][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:41:54,756 [DEBUG][       Thread-607967][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:41:54,757 [DEBUG][       Thread-607967][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:41:54,757 [DEBUG][       Thread-607967][   transport.py][1871] : Compression: none
2025-07-01 14:41:54,757 [DEBUG][       Thread-607967][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:41:54,813 [DEBUG][       Thread-607967][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:41:54,813 [DEBUG][       Thread-607967][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:41:54,814 [DEBUG][       Thread-607967][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:41:54,814 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:41:54,815 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:41:54,868 [DEBUG][       Thread-607967][   transport.py][1871] : userauth is OK
2025-07-01 14:41:54,868 [DEBUG][       Thread-607967][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:41:54,868 [DEBUG][       Thread-607967][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:41:54,868 [DEBUG][       Thread-607967][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:41:54,868 [DEBUG][       Thread-607967][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:41:54,882 [ INFO][       Thread-607967][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:41:54,882 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:41:54,883 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:41:55,878 [DEBUG][       Thread-607967][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:41:55,878 [DEBUG][       Thread-607967][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:41:55,928 [DEBUG][       Thread-607967][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:41:55,928 [DEBUG][       Thread-607967][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:41:55,937 [DEBUG][       Thread-607967][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:41:55,947 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:41:55,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')
2025-07-01 14:41:55,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-07-01 14:41:55,965 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:41:55,965 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:41:55,966 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:41:55,974 [DEBUG][       Thread-607967][   transport.py][1871] : EOF in transport thread
2025-07-01 14:42:00,846 [DEBUG][Thread-607969 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:42:05,976 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:42:05,976 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:42:05,976 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:42:05,977 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:42:06,483 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 41, 32), 10.8, 48.07, 0.0, 34.28, 13.55, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:42:06,483 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:41:32
2025-07-01 14:42:06,565 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:42:06,569 [DEBUG][       Thread-607970][   transport.py][1871] : starting thread (client mode): 0x81a5e40
2025-07-01 14:42:06,569 [DEBUG][       Thread-607970][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:42:06,590 [DEBUG][       Thread-607970][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:42:06,590 [ INFO][       Thread-607970][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:42:06,593 [DEBUG][       Thread-607970][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:42:06,593 [DEBUG][       Thread-607970][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:42:06,594 [DEBUG][       Thread-607970][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:42:06,594 [DEBUG][       Thread-607970][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:42:06,594 [DEBUG][       Thread-607970][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:42:06,594 [DEBUG][       Thread-607970][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:42:06,594 [DEBUG][       Thread-607970][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:42:06,594 [DEBUG][       Thread-607970][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:42:06,594 [DEBUG][       Thread-607970][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:42:06,594 [DEBUG][       Thread-607970][   transport.py][1871] : client lang: <none>
2025-07-01 14:42:06,594 [DEBUG][       Thread-607970][   transport.py][1871] : server lang: <none>
2025-07-01 14:42:06,594 [DEBUG][       Thread-607970][   transport.py][1871] : kex follows: False
2025-07-01 14:42:06,594 [DEBUG][       Thread-607970][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:42:06,594 [DEBUG][       Thread-607970][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:42:06,594 [DEBUG][       Thread-607970][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:42:06,594 [DEBUG][       Thread-607970][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:42:06,594 [DEBUG][       Thread-607970][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:42:06,594 [DEBUG][       Thread-607970][   transport.py][1871] : Compression: none
2025-07-01 14:42:06,594 [DEBUG][       Thread-607970][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:42:06,611 [DEBUG][       Thread-607970][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:42:06,611 [DEBUG][       Thread-607970][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:42:06,612 [DEBUG][       Thread-607970][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:42:06,612 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:42:06,612 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:42:06,613 [DEBUG][       Thread-607970][   transport.py][1871] : userauth is OK
2025-07-01 14:42:06,638 [ INFO][       Thread-607970][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:42:06,638 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:42:07,422 [DEBUG][       Thread-607970][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:42:07,422 [DEBUG][       Thread-607970][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:42:07,464 [DEBUG][       Thread-607970][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:42:07,465 [DEBUG][       Thread-607970][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:42:07,467 [DEBUG][       Thread-607970][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:42:07,480 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:42:07,480 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:42:07,482 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:42:07,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:42:07,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:42:07,491 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:42:07,492 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:42:07,492 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:42:07,492 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.528760 -999.00  +13.30  37.94     52   +3.90 1 2 2 1 1   887    0 8.87 -22.34 ----- 37.5 37.9 16.6 50.0 15.6 -21.5 15.1 -20.9 15.0 -19.4 15.5 -20.2
2025-07-01 14:42:07,493 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:42:07,493 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:42:07,493 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.528760
2025-07-01 14:42:07,493 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:42:07,494 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:42:07,494 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:42:07,494 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:42:07,494 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:42:07,494 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:41:32', tmtdew=10.8, humidity=48.07, cloud=0.0, wind=34.28, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:41:24.864', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:42:07,495 [DEBUG][       Thread-607970][   transport.py][1871] : EOF in transport thread
2025-07-01 14:42:07,577 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:42:07,589 [DEBUG][       Thread-607973][   transport.py][1871] : starting thread (client mode): 0x81e42b0
2025-07-01 14:42:07,589 [DEBUG][       Thread-607973][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:42:07,606 [DEBUG][       Thread-607973][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:42:07,606 [ INFO][       Thread-607973][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:42:07,614 [DEBUG][       Thread-607973][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:42:07,614 [DEBUG][       Thread-607973][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:42:07,614 [DEBUG][       Thread-607973][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:42:07,614 [DEBUG][       Thread-607973][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:42:07,614 [DEBUG][       Thread-607973][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:42:07,614 [DEBUG][       Thread-607973][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:42:07,614 [DEBUG][       Thread-607973][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:42:07,614 [DEBUG][       Thread-607973][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:42:07,614 [DEBUG][       Thread-607973][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:42:07,614 [DEBUG][       Thread-607973][   transport.py][1871] : client lang: <none>
2025-07-01 14:42:07,614 [DEBUG][       Thread-607973][   transport.py][1871] : server lang: <none>
2025-07-01 14:42:07,614 [DEBUG][       Thread-607973][   transport.py][1871] : kex follows: False
2025-07-01 14:42:07,614 [DEBUG][       Thread-607973][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:42:07,614 [DEBUG][       Thread-607973][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:42:07,615 [DEBUG][       Thread-607973][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:42:07,615 [DEBUG][       Thread-607973][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:42:07,615 [DEBUG][       Thread-607973][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:42:07,615 [DEBUG][       Thread-607973][   transport.py][1871] : Compression: none
2025-07-01 14:42:07,615 [DEBUG][       Thread-607973][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:42:07,677 [DEBUG][       Thread-607973][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:42:07,678 [DEBUG][       Thread-607973][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:42:07,679 [DEBUG][       Thread-607973][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:42:07,679 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:42:07,679 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:42:07,737 [DEBUG][       Thread-607973][   transport.py][1871] : userauth is OK
2025-07-01 14:42:07,737 [DEBUG][       Thread-607973][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:42:07,737 [DEBUG][       Thread-607973][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:42:07,737 [DEBUG][       Thread-607973][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:42:07,737 [DEBUG][       Thread-607973][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:42:07,757 [ INFO][       Thread-607973][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:42:07,758 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:42:07,758 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:42:08,822 [DEBUG][       Thread-607973][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:42:08,823 [DEBUG][       Thread-607973][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:42:08,875 [DEBUG][       Thread-607973][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:42:08,875 [DEBUG][       Thread-607973][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:42:08,884 [DEBUG][       Thread-607973][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:42:08,893 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:42:08,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-07-01 14:42:08,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-07-01 14:42:08,910 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:42:08,910 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:42:08,910 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:42:08,918 [DEBUG][       Thread-607973][   transport.py][1871] : EOF in transport thread
2025-07-01 14:42:09,869 [DEBUG][Thread-607975 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:42:18,889 [DEBUG][Thread-607976 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:42:18,920 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:42:18,920 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:42:18,920 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:42:18,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-07-01 14:42:19,406 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 42, 4), 10.74, 48.28, 0.0, 24.63, 13.57, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:42:19,406 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:42:04
2025-07-01 14:42:19,495 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:42:19,500 [DEBUG][       Thread-607977][   transport.py][1871] : starting thread (client mode): 0x81d8c40
2025-07-01 14:42:19,500 [DEBUG][       Thread-607977][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:42:19,521 [DEBUG][       Thread-607977][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:42:19,521 [ INFO][       Thread-607977][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:42:19,524 [DEBUG][       Thread-607977][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:42:19,524 [DEBUG][       Thread-607977][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:42:19,524 [DEBUG][       Thread-607977][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:42:19,524 [DEBUG][       Thread-607977][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:42:19,524 [DEBUG][       Thread-607977][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:42:19,524 [DEBUG][       Thread-607977][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:42:19,524 [DEBUG][       Thread-607977][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:42:19,524 [DEBUG][       Thread-607977][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:42:19,524 [DEBUG][       Thread-607977][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:42:19,524 [DEBUG][       Thread-607977][   transport.py][1871] : client lang: <none>
2025-07-01 14:42:19,524 [DEBUG][       Thread-607977][   transport.py][1871] : server lang: <none>
2025-07-01 14:42:19,524 [DEBUG][       Thread-607977][   transport.py][1871] : kex follows: False
2025-07-01 14:42:19,524 [DEBUG][       Thread-607977][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:42:19,524 [DEBUG][       Thread-607977][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:42:19,524 [DEBUG][       Thread-607977][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:42:19,524 [DEBUG][       Thread-607977][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:42:19,524 [DEBUG][       Thread-607977][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:42:19,524 [DEBUG][       Thread-607977][   transport.py][1871] : Compression: none
2025-07-01 14:42:19,524 [DEBUG][       Thread-607977][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:42:19,539 [DEBUG][       Thread-607977][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:42:19,539 [DEBUG][       Thread-607977][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:42:19,540 [DEBUG][       Thread-607977][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:42:19,540 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:42:19,540 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:42:19,540 [DEBUG][       Thread-607977][   transport.py][1871] : userauth is OK
2025-07-01 14:42:19,553 [ INFO][       Thread-607977][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:42:19,553 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:42:20,160 [DEBUG][       Thread-607977][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:42:20,160 [DEBUG][       Thread-607977][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:42:20,200 [DEBUG][       Thread-607977][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:42:20,200 [DEBUG][       Thread-607977][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:42:20,203 [DEBUG][       Thread-607977][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:42:20,215 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:42:20,215 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:42:20,216 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:42:20,217 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:42:20,220 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:42:20,221 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:42:20,221 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:42:20,221 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:42:20,221 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.529107 -999.00  +13.30  37.55     52   +3.80 1 2 2 1 1   887    0 9.00 -19.09 ----- 35.6 37.5 10.2 55.0 15.5 -20.4 15.0 -20.7 15.0 -18.9 15.4 -18.7
2025-07-01 14:42:20,221 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:42:20,221 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:42:20,221 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.529107
2025-07-01 14:42:20,221 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:42:20,221 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:42:20,221 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:42:20,221 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:42:20,221 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:42:20,221 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:42:04', tmtdew=10.74, humidity=48.28, cloud=0.0, wind=24.63, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:41:54.845', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:42:20,222 [DEBUG][       Thread-607977][   transport.py][1871] : EOF in transport thread
2025-07-01 14:42:20,294 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:42:20,304 [DEBUG][       Thread-607980][   transport.py][1871] : starting thread (client mode): 0x81e50c0
2025-07-01 14:42:20,305 [DEBUG][       Thread-607980][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:42:20,320 [DEBUG][       Thread-607980][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:42:20,320 [ INFO][       Thread-607980][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:42:20,327 [DEBUG][       Thread-607980][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:42:20,327 [DEBUG][       Thread-607980][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:42:20,327 [DEBUG][       Thread-607980][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:42:20,327 [DEBUG][       Thread-607980][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:42:20,327 [DEBUG][       Thread-607980][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:42:20,327 [DEBUG][       Thread-607980][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:42:20,327 [DEBUG][       Thread-607980][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:42:20,327 [DEBUG][       Thread-607980][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:42:20,327 [DEBUG][       Thread-607980][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:42:20,327 [DEBUG][       Thread-607980][   transport.py][1871] : client lang: <none>
2025-07-01 14:42:20,327 [DEBUG][       Thread-607980][   transport.py][1871] : server lang: <none>
2025-07-01 14:42:20,327 [DEBUG][       Thread-607980][   transport.py][1871] : kex follows: False
2025-07-01 14:42:20,327 [DEBUG][       Thread-607980][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:42:20,327 [DEBUG][       Thread-607980][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:42:20,327 [DEBUG][       Thread-607980][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:42:20,327 [DEBUG][       Thread-607980][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:42:20,327 [DEBUG][       Thread-607980][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:42:20,327 [DEBUG][       Thread-607980][   transport.py][1871] : Compression: none
2025-07-01 14:42:20,327 [DEBUG][       Thread-607980][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:42:20,384 [DEBUG][       Thread-607980][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:42:20,384 [DEBUG][       Thread-607980][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:42:20,385 [DEBUG][       Thread-607980][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:42:20,385 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:42:20,385 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:42:20,441 [DEBUG][       Thread-607980][   transport.py][1871] : userauth is OK
2025-07-01 14:42:20,441 [DEBUG][       Thread-607980][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:42:20,441 [DEBUG][       Thread-607980][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:42:20,441 [DEBUG][       Thread-607980][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:42:20,441 [DEBUG][       Thread-607980][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:42:20,455 [ INFO][       Thread-607980][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:42:20,455 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:42:20,455 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:42:21,491 [DEBUG][       Thread-607980][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:42:21,491 [DEBUG][       Thread-607980][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:42:21,539 [DEBUG][       Thread-607980][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:42:21,539 [DEBUG][       Thread-607980][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:42:21,548 [DEBUG][       Thread-607980][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:42:21,556 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:42:21,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-07-01 14:42:21,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-07-01 14:42:21,572 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:42:21,572 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:42:21,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:42:21,580 [DEBUG][       Thread-607980][   transport.py][1871] : EOF in transport thread
2025-07-01 14:42:27,910 [DEBUG][Thread-607982 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:42:31,582 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:42:31,582 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:42:31,583 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:42:31,585 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:42:32,058 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 42, 4), 10.74, 48.28, 0.0, 24.63, 13.57, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:42:32,058 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:42:04
2025-07-01 14:42:32,140 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:42:32,146 [DEBUG][       Thread-607983][   transport.py][1871] : starting thread (client mode): 0x81711b0
2025-07-01 14:42:32,146 [DEBUG][       Thread-607983][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:42:32,167 [DEBUG][       Thread-607983][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:42:32,167 [ INFO][       Thread-607983][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:42:32,171 [DEBUG][       Thread-607983][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:42:32,171 [DEBUG][       Thread-607983][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:42:32,171 [DEBUG][       Thread-607983][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:42:32,171 [DEBUG][       Thread-607983][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:42:32,171 [DEBUG][       Thread-607983][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:42:32,171 [DEBUG][       Thread-607983][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:42:32,171 [DEBUG][       Thread-607983][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:42:32,171 [DEBUG][       Thread-607983][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:42:32,171 [DEBUG][       Thread-607983][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:42:32,171 [DEBUG][       Thread-607983][   transport.py][1871] : client lang: <none>
2025-07-01 14:42:32,171 [DEBUG][       Thread-607983][   transport.py][1871] : server lang: <none>
2025-07-01 14:42:32,171 [DEBUG][       Thread-607983][   transport.py][1871] : kex follows: False
2025-07-01 14:42:32,171 [DEBUG][       Thread-607983][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:42:32,171 [DEBUG][       Thread-607983][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:42:32,172 [DEBUG][       Thread-607983][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:42:32,172 [DEBUG][       Thread-607983][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:42:32,172 [DEBUG][       Thread-607983][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:42:32,172 [DEBUG][       Thread-607983][   transport.py][1871] : Compression: none
2025-07-01 14:42:32,172 [DEBUG][       Thread-607983][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:42:32,189 [DEBUG][       Thread-607983][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:42:32,190 [DEBUG][       Thread-607983][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:42:32,190 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:42:32,191 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:42:32,191 [DEBUG][       Thread-607983][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:42:32,192 [DEBUG][       Thread-607983][   transport.py][1871] : userauth is OK
2025-07-01 14:42:32,205 [ INFO][       Thread-607983][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:42:32,206 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:42:33,012 [DEBUG][       Thread-607983][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:42:33,013 [DEBUG][       Thread-607983][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:42:33,057 [DEBUG][       Thread-607983][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:42:33,057 [DEBUG][       Thread-607983][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:42:33,060 [DEBUG][       Thread-607983][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:42:33,072 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:42:33,072 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:42:33,074 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:42:33,076 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:42:33,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:42:33,084 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:42:33,084 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:42:33,085 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:42:33,085 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.529107 -999.00  +13.30  37.55     52   +3.80 1 2 2 1 1   887    0 9.00 -19.09 ----- 35.6 37.5 10.2 55.0 15.5 -20.4 15.0 -20.7 15.0 -18.9 15.4 -18.7
2025-07-01 14:42:33,085 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:42:33,085 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:42:33,085 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.529107
2025-07-01 14:42:33,086 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:42:33,086 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:42:33,086 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:42:33,086 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:42:33,086 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:42:33,087 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:42:04', tmtdew=10.74, humidity=48.28, cloud=0.0, wind=24.63, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:41:54.845', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:42:33,088 [DEBUG][       Thread-607983][   transport.py][1871] : EOF in transport thread
2025-07-01 14:42:33,173 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:42:33,187 [DEBUG][       Thread-607986][   transport.py][1871] : starting thread (client mode): 0x8105060
2025-07-01 14:42:33,187 [DEBUG][       Thread-607986][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:42:33,202 [DEBUG][       Thread-607986][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:42:33,202 [ INFO][       Thread-607986][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:42:33,209 [DEBUG][       Thread-607986][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:42:33,210 [DEBUG][       Thread-607986][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:42:33,210 [DEBUG][       Thread-607986][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:42:33,210 [DEBUG][       Thread-607986][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:42:33,210 [DEBUG][       Thread-607986][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:42:33,210 [DEBUG][       Thread-607986][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:42:33,210 [DEBUG][       Thread-607986][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:42:33,210 [DEBUG][       Thread-607986][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:42:33,210 [DEBUG][       Thread-607986][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:42:33,210 [DEBUG][       Thread-607986][   transport.py][1871] : client lang: <none>
2025-07-01 14:42:33,210 [DEBUG][       Thread-607986][   transport.py][1871] : server lang: <none>
2025-07-01 14:42:33,210 [DEBUG][       Thread-607986][   transport.py][1871] : kex follows: False
2025-07-01 14:42:33,210 [DEBUG][       Thread-607986][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:42:33,210 [DEBUG][       Thread-607986][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:42:33,210 [DEBUG][       Thread-607986][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:42:33,210 [DEBUG][       Thread-607986][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:42:33,210 [DEBUG][       Thread-607986][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:42:33,210 [DEBUG][       Thread-607986][   transport.py][1871] : Compression: none
2025-07-01 14:42:33,210 [DEBUG][       Thread-607986][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:42:33,270 [DEBUG][       Thread-607986][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:42:33,270 [DEBUG][       Thread-607986][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:42:33,271 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:42:33,271 [DEBUG][       Thread-607986][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:42:33,272 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:42:33,326 [DEBUG][       Thread-607986][   transport.py][1871] : userauth is OK
2025-07-01 14:42:33,326 [DEBUG][       Thread-607986][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:42:33,326 [DEBUG][       Thread-607986][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:42:33,326 [DEBUG][       Thread-607986][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:42:33,326 [DEBUG][       Thread-607986][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:42:33,345 [ INFO][       Thread-607986][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:42:33,345 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:42:33,346 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:42:34,369 [DEBUG][       Thread-607986][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:42:34,369 [DEBUG][       Thread-607986][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:42:34,420 [DEBUG][       Thread-607986][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:42:34,420 [DEBUG][       Thread-607986][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:42:34,429 [DEBUG][       Thread-607986][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:42:34,439 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:42:34,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-07-01 14:42:34,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-07-01 14:42:34,457 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:42:34,457 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:42:34,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:42:34,465 [DEBUG][       Thread-607986][   transport.py][1871] : EOF in transport thread
2025-07-01 14:42:35,451 [DEBUG][Thread-607988 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:42:36,943 [DEBUG][Thread-607989 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:42:44,468 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:42:44,468 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:42:44,468 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:42:44,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-07-01 14:42:44,961 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 42, 36), 10.8, 47.88, 0.0, 34.33, 13.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:42:44,961 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:42:36
2025-07-01 14:42:45,044 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:42:45,048 [DEBUG][       Thread-607990][   transport.py][1871] : starting thread (client mode): 0x75aace0
2025-07-01 14:42:45,048 [DEBUG][       Thread-607990][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:42:45,065 [DEBUG][       Thread-607990][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:42:45,065 [ INFO][       Thread-607990][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:42:45,068 [DEBUG][       Thread-607990][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:42:45,068 [DEBUG][       Thread-607990][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:42:45,068 [DEBUG][       Thread-607990][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:42:45,068 [DEBUG][       Thread-607990][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:42:45,068 [DEBUG][       Thread-607990][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:42:45,068 [DEBUG][       Thread-607990][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:42:45,068 [DEBUG][       Thread-607990][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:42:45,068 [DEBUG][       Thread-607990][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:42:45,068 [DEBUG][       Thread-607990][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:42:45,068 [DEBUG][       Thread-607990][   transport.py][1871] : client lang: <none>
2025-07-01 14:42:45,068 [DEBUG][       Thread-607990][   transport.py][1871] : server lang: <none>
2025-07-01 14:42:45,068 [DEBUG][       Thread-607990][   transport.py][1871] : kex follows: False
2025-07-01 14:42:45,068 [DEBUG][       Thread-607990][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:42:45,068 [DEBUG][       Thread-607990][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:42:45,068 [DEBUG][       Thread-607990][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:42:45,068 [DEBUG][       Thread-607990][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:42:45,068 [DEBUG][       Thread-607990][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:42:45,068 [DEBUG][       Thread-607990][   transport.py][1871] : Compression: none
2025-07-01 14:42:45,068 [DEBUG][       Thread-607990][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:42:45,076 [DEBUG][       Thread-607990][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:42:45,076 [DEBUG][       Thread-607990][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:42:45,076 [DEBUG][       Thread-607990][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:42:45,077 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:42:45,077 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:42:45,080 [DEBUG][       Thread-607990][   transport.py][1871] : userauth is OK
2025-07-01 14:42:45,096 [ INFO][       Thread-607990][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:42:45,097 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:42:45,702 [DEBUG][       Thread-607990][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:42:45,702 [DEBUG][       Thread-607990][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:42:45,745 [DEBUG][       Thread-607990][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:42:45,745 [DEBUG][       Thread-607990][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:42:45,749 [DEBUG][       Thread-607990][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:42:45,760 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:42:45,761 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:42:45,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:42:45,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:42:45,770 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:42:45,773 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:42:45,773 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:42:45,773 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:42:45,774 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.529455 -999.00  +13.40  37.38     52   +3.90 1 2 2 1 1   887    0 9.28 -15.71 ----- 31.2 37.4 15.8 46.1 15.5 -20.4 15.0 -20.4 15.0 -18.4 15.6 -18.0
2025-07-01 14:42:45,774 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:42:45,774 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:42:45,774 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.529455
2025-07-01 14:42:45,774 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:42:45,775 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:42:45,775 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:42:45,775 [DEBUG][       Thread-607990][   transport.py][1871] : EOF in transport thread
2025-07-01 14:42:45,775 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:42:45,775 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:42:45,776 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:42:36', tmtdew=10.8, humidity=47.88, cloud=0.0, wind=34.33, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:42:24.912', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:42:45,859 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:42:45,868 [DEBUG][       Thread-607993][   transport.py][1871] : starting thread (client mode): 0x83c8070
2025-07-01 14:42:45,868 [DEBUG][       Thread-607993][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:42:45,884 [DEBUG][       Thread-607993][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:42:45,884 [ INFO][       Thread-607993][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:42:45,891 [DEBUG][       Thread-607993][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:42:45,892 [DEBUG][       Thread-607993][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:42:45,892 [DEBUG][       Thread-607993][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:42:45,892 [DEBUG][       Thread-607993][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:42:45,892 [DEBUG][       Thread-607993][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:42:45,892 [DEBUG][       Thread-607993][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:42:45,892 [DEBUG][       Thread-607993][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:42:45,892 [DEBUG][       Thread-607993][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:42:45,892 [DEBUG][       Thread-607993][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:42:45,892 [DEBUG][       Thread-607993][   transport.py][1871] : client lang: <none>
2025-07-01 14:42:45,892 [DEBUG][       Thread-607993][   transport.py][1871] : server lang: <none>
2025-07-01 14:42:45,892 [DEBUG][       Thread-607993][   transport.py][1871] : kex follows: False
2025-07-01 14:42:45,892 [DEBUG][       Thread-607993][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:42:45,892 [DEBUG][       Thread-607993][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:42:45,892 [DEBUG][       Thread-607993][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:42:45,892 [DEBUG][       Thread-607993][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:42:45,892 [DEBUG][       Thread-607993][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:42:45,892 [DEBUG][       Thread-607993][   transport.py][1871] : Compression: none
2025-07-01 14:42:45,892 [DEBUG][       Thread-607993][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:42:45,954 [DEBUG][       Thread-607993][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:42:45,954 [DEBUG][       Thread-607993][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:42:45,955 [DEBUG][       Thread-607993][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:42:45,955 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:42:45,956 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:42:45,961 [DEBUG][Thread-607995 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:42:46,013 [DEBUG][       Thread-607993][   transport.py][1871] : userauth is OK
2025-07-01 14:42:46,013 [DEBUG][       Thread-607993][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:42:46,013 [DEBUG][       Thread-607993][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:42:46,013 [DEBUG][       Thread-607993][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:42:46,013 [DEBUG][       Thread-607993][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:42:46,032 [ INFO][       Thread-607993][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:42:46,033 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:42:46,033 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:42:47,037 [DEBUG][       Thread-607993][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:42:47,037 [DEBUG][       Thread-607993][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:42:47,088 [DEBUG][       Thread-607993][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:42:47,088 [DEBUG][       Thread-607993][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:42:47,097 [DEBUG][       Thread-607993][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:42:47,107 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:42:47,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-07-01 14:42:47,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-07-01 14:42:47,126 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:42:47,126 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:42:47,126 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:42:47,134 [DEBUG][       Thread-607993][   transport.py][1871] : EOF in transport thread
2025-07-01 14:42:54,992 [DEBUG][Thread-607996 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:42:57,136 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:42:57,136 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:42:57,136 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:42:57,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-07-01 14:42:57,636 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 42, 36), 10.8, 47.88, 0.0, 34.33, 13.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:42:57,636 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:42:36
2025-07-01 14:42:57,721 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:42:57,727 [DEBUG][       Thread-607997][   transport.py][1871] : starting thread (client mode): 0x81c90c0
2025-07-01 14:42:57,727 [DEBUG][       Thread-607997][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:42:57,746 [DEBUG][       Thread-607997][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:42:57,746 [ INFO][       Thread-607997][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:42:57,747 [DEBUG][       Thread-607997][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:42:57,747 [DEBUG][       Thread-607997][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:42:57,747 [DEBUG][       Thread-607997][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:42:57,747 [DEBUG][       Thread-607997][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:42:57,747 [DEBUG][       Thread-607997][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:42:57,747 [DEBUG][       Thread-607997][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:42:57,747 [DEBUG][       Thread-607997][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:42:57,747 [DEBUG][       Thread-607997][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:42:57,747 [DEBUG][       Thread-607997][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:42:57,747 [DEBUG][       Thread-607997][   transport.py][1871] : client lang: <none>
2025-07-01 14:42:57,747 [DEBUG][       Thread-607997][   transport.py][1871] : server lang: <none>
2025-07-01 14:42:57,747 [DEBUG][       Thread-607997][   transport.py][1871] : kex follows: False
2025-07-01 14:42:57,747 [DEBUG][       Thread-607997][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:42:57,747 [DEBUG][       Thread-607997][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:42:57,747 [DEBUG][       Thread-607997][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:42:57,747 [DEBUG][       Thread-607997][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:42:57,747 [DEBUG][       Thread-607997][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:42:57,747 [DEBUG][       Thread-607997][   transport.py][1871] : Compression: none
2025-07-01 14:42:57,747 [DEBUG][       Thread-607997][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:42:57,757 [DEBUG][       Thread-607997][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:42:57,757 [DEBUG][       Thread-607997][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:42:57,757 [DEBUG][       Thread-607997][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:42:57,757 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:42:57,757 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:42:57,758 [DEBUG][       Thread-607997][   transport.py][1871] : userauth is OK
2025-07-01 14:42:57,770 [ INFO][       Thread-607997][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:42:57,770 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:42:58,536 [DEBUG][       Thread-607997][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:42:58,536 [DEBUG][       Thread-607997][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:42:58,580 [DEBUG][       Thread-607997][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:42:58,580 [DEBUG][       Thread-607997][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:42:58,583 [DEBUG][       Thread-607997][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:42:58,595 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:42:58,595 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:42:58,597 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:42:58,598 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:42:58,600 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:42:58,601 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:42:58,601 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:42:58,601 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:42:58,601 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.529455 -999.00  +13.40  37.38     52   +3.90 1 2 2 1 1   887    0 9.28 -15.71 ----- 31.2 37.4 15.8 46.1 15.5 -20.4 15.0 -20.4 15.0 -18.4 15.6 -18.0
2025-07-01 14:42:58,601 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:42:58,601 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:42:58,601 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.529455
2025-07-01 14:42:58,601 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:42:58,602 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:42:58,602 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:42:58,602 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:42:58,602 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:42:58,602 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:42:36', tmtdew=10.8, humidity=47.88, cloud=0.0, wind=34.33, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:42:24.912', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:42:58,602 [DEBUG][       Thread-607997][   transport.py][1871] : EOF in transport thread
2025-07-01 14:42:58,674 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:42:58,685 [DEBUG][       Thread-608000][   transport.py][1871] : starting thread (client mode): 0x8105060
2025-07-01 14:42:58,685 [DEBUG][       Thread-608000][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:42:58,700 [DEBUG][       Thread-608000][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:42:58,700 [ INFO][       Thread-608000][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:42:58,708 [DEBUG][       Thread-608000][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:42:58,708 [DEBUG][       Thread-608000][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:42:58,708 [DEBUG][       Thread-608000][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:42:58,708 [DEBUG][       Thread-608000][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:42:58,708 [DEBUG][       Thread-608000][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:42:58,708 [DEBUG][       Thread-608000][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:42:58,708 [DEBUG][       Thread-608000][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:42:58,708 [DEBUG][       Thread-608000][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:42:58,708 [DEBUG][       Thread-608000][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:42:58,708 [DEBUG][       Thread-608000][   transport.py][1871] : client lang: <none>
2025-07-01 14:42:58,708 [DEBUG][       Thread-608000][   transport.py][1871] : server lang: <none>
2025-07-01 14:42:58,708 [DEBUG][       Thread-608000][   transport.py][1871] : kex follows: False
2025-07-01 14:42:58,708 [DEBUG][       Thread-608000][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:42:58,708 [DEBUG][       Thread-608000][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:42:58,708 [DEBUG][       Thread-608000][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:42:58,708 [DEBUG][       Thread-608000][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:42:58,708 [DEBUG][       Thread-608000][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:42:58,708 [DEBUG][       Thread-608000][   transport.py][1871] : Compression: none
2025-07-01 14:42:58,708 [DEBUG][       Thread-608000][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:42:58,764 [DEBUG][       Thread-608000][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:42:58,764 [DEBUG][       Thread-608000][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:42:58,765 [DEBUG][       Thread-608000][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:42:58,765 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:42:58,765 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:42:58,830 [DEBUG][       Thread-608000][   transport.py][1871] : userauth is OK
2025-07-01 14:42:58,830 [DEBUG][       Thread-608000][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:42:58,830 [DEBUG][       Thread-608000][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:42:58,830 [DEBUG][       Thread-608000][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:42:58,830 [DEBUG][       Thread-608000][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:42:58,848 [ INFO][       Thread-608000][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:42:58,848 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:42:58,848 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:42:59,907 [DEBUG][       Thread-608000][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:42:59,907 [DEBUG][       Thread-608000][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:42:59,955 [DEBUG][       Thread-608000][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:42:59,955 [DEBUG][       Thread-608000][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:42:59,964 [DEBUG][       Thread-608000][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:42:59,972 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:42:59,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')
2025-07-01 14:42:59,981 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 14:42:59,989 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:42:59,990 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:42:59,990 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:42:59,998 [DEBUG][       Thread-608000][   transport.py][1871] : EOF in transport thread
2025-07-01 14:43:04,010 [DEBUG][Thread-608002 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:43:10,000 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:43:10,000 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:43:10,000 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:43:10,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-07-01 14:43:10,475 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 42, 36), 10.8, 47.88, 0.0, 34.33, 13.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:43:10,475 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:42:36
2025-07-01 14:43:10,559 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:43:10,563 [DEBUG][       Thread-608003][   transport.py][1871] : starting thread (client mode): 0x81cabc0
2025-07-01 14:43:10,563 [DEBUG][       Thread-608003][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:43:10,581 [DEBUG][       Thread-608003][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:43:10,581 [ INFO][       Thread-608003][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:43:10,584 [DEBUG][       Thread-608003][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:43:10,584 [DEBUG][       Thread-608003][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:43:10,584 [DEBUG][       Thread-608003][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:43:10,584 [DEBUG][       Thread-608003][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:43:10,584 [DEBUG][       Thread-608003][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:43:10,584 [DEBUG][       Thread-608003][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:43:10,584 [DEBUG][       Thread-608003][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:43:10,584 [DEBUG][       Thread-608003][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:43:10,585 [DEBUG][       Thread-608003][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:43:10,585 [DEBUG][       Thread-608003][   transport.py][1871] : client lang: <none>
2025-07-01 14:43:10,585 [DEBUG][       Thread-608003][   transport.py][1871] : server lang: <none>
2025-07-01 14:43:10,585 [DEBUG][       Thread-608003][   transport.py][1871] : kex follows: False
2025-07-01 14:43:10,585 [DEBUG][       Thread-608003][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:43:10,585 [DEBUG][       Thread-608003][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:43:10,585 [DEBUG][       Thread-608003][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:43:10,585 [DEBUG][       Thread-608003][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:43:10,585 [DEBUG][       Thread-608003][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:43:10,585 [DEBUG][       Thread-608003][   transport.py][1871] : Compression: none
2025-07-01 14:43:10,585 [DEBUG][       Thread-608003][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:43:10,600 [DEBUG][       Thread-608003][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:43:10,600 [DEBUG][       Thread-608003][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:43:10,600 [DEBUG][       Thread-608003][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:43:10,601 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:43:10,601 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:43:10,602 [DEBUG][       Thread-608003][   transport.py][1871] : userauth is OK
2025-07-01 14:43:10,626 [ INFO][       Thread-608003][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:43:10,627 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:43:11,445 [DEBUG][       Thread-608003][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:43:11,445 [DEBUG][       Thread-608003][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:43:11,489 [DEBUG][       Thread-608003][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:43:11,489 [DEBUG][       Thread-608003][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:43:11,493 [DEBUG][       Thread-608003][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:43:11,507 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:43:11,507 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:43:11,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:43:11,511 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:43:11,518 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:43:11,520 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:43:11,520 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:43:11,521 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:43:11,521 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.529455 -999.00  +13.40  37.38     52   +3.90 1 2 2 1 1   887    0 9.28 -15.71 ----- 31.2 37.4 15.8 46.1 15.5 -20.4 15.0 -20.4 15.0 -18.4 15.6 -18.0
2025-07-01 14:43:11,521 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:43:11,521 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:43:11,521 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.529455
2025-07-01 14:43:11,521 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:43:11,522 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:43:11,522 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:43:11,522 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:43:11,522 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:43:11,522 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:42:36', tmtdew=10.8, humidity=47.88, cloud=0.0, wind=34.33, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:42:24.912', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:43:11,523 [DEBUG][       Thread-608003][   transport.py][1871] : EOF in transport thread
2025-07-01 14:43:11,600 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:43:11,609 [DEBUG][       Thread-608006][   transport.py][1871] : starting thread (client mode): 0x83c8520
2025-07-01 14:43:11,609 [DEBUG][       Thread-608006][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:43:11,626 [DEBUG][       Thread-608006][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:43:11,627 [ INFO][       Thread-608006][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:43:11,634 [DEBUG][       Thread-608006][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:43:11,635 [DEBUG][       Thread-608006][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:43:11,635 [DEBUG][       Thread-608006][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:43:11,635 [DEBUG][       Thread-608006][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:43:11,635 [DEBUG][       Thread-608006][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:43:11,635 [DEBUG][       Thread-608006][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:43:11,635 [DEBUG][       Thread-608006][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:43:11,635 [DEBUG][       Thread-608006][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:43:11,635 [DEBUG][       Thread-608006][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:43:11,635 [DEBUG][       Thread-608006][   transport.py][1871] : client lang: <none>
2025-07-01 14:43:11,635 [DEBUG][       Thread-608006][   transport.py][1871] : server lang: <none>
2025-07-01 14:43:11,635 [DEBUG][       Thread-608006][   transport.py][1871] : kex follows: False
2025-07-01 14:43:11,635 [DEBUG][       Thread-608006][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:43:11,635 [DEBUG][       Thread-608006][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:43:11,635 [DEBUG][       Thread-608006][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:43:11,635 [DEBUG][       Thread-608006][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:43:11,635 [DEBUG][       Thread-608006][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:43:11,635 [DEBUG][       Thread-608006][   transport.py][1871] : Compression: none
2025-07-01 14:43:11,635 [DEBUG][       Thread-608006][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:43:11,698 [DEBUG][       Thread-608006][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:43:11,699 [DEBUG][       Thread-608006][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:43:11,699 [DEBUG][       Thread-608006][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:43:11,700 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:43:11,700 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:43:11,754 [DEBUG][       Thread-608006][   transport.py][1871] : userauth is OK
2025-07-01 14:43:11,755 [DEBUG][       Thread-608006][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:43:11,755 [DEBUG][       Thread-608006][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:43:11,755 [DEBUG][       Thread-608006][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:43:11,755 [DEBUG][       Thread-608006][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:43:11,774 [ INFO][       Thread-608006][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:43:11,774 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:43:11,775 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:43:12,837 [DEBUG][       Thread-608006][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:43:12,837 [DEBUG][       Thread-608006][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:43:12,888 [DEBUG][       Thread-608006][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:43:12,888 [DEBUG][       Thread-608006][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:43:12,897 [DEBUG][       Thread-608006][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:43:12,906 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:43:12,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-07-01 14:43:12,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-07-01 14:43:12,924 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:43:12,924 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:43:12,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:43:12,932 [DEBUG][       Thread-608006][   transport.py][1871] : EOF in transport thread
2025-07-01 14:43:13,030 [DEBUG][Thread-608008 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:43:22,051 [DEBUG][Thread-608009 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:43:22,935 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:43:22,935 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:43:22,935 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:43:22,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-07-01 14:43:23,420 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 43, 8), 10.88, 47.64, 0.0, 38.5, 13.64, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:43:23,420 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:43:08
2025-07-01 14:43:23,504 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:43:23,511 [DEBUG][       Thread-608010][   transport.py][1871] : starting thread (client mode): 0x81c9de0
2025-07-01 14:43:23,511 [DEBUG][       Thread-608010][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:43:23,535 [DEBUG][       Thread-608010][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:43:23,535 [ INFO][       Thread-608010][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:43:23,538 [DEBUG][       Thread-608010][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:43:23,538 [DEBUG][       Thread-608010][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:43:23,539 [DEBUG][       Thread-608010][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:43:23,539 [DEBUG][       Thread-608010][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:43:23,539 [DEBUG][       Thread-608010][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:43:23,539 [DEBUG][       Thread-608010][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:43:23,539 [DEBUG][       Thread-608010][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:43:23,539 [DEBUG][       Thread-608010][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:43:23,539 [DEBUG][       Thread-608010][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:43:23,539 [DEBUG][       Thread-608010][   transport.py][1871] : client lang: <none>
2025-07-01 14:43:23,539 [DEBUG][       Thread-608010][   transport.py][1871] : server lang: <none>
2025-07-01 14:43:23,539 [DEBUG][       Thread-608010][   transport.py][1871] : kex follows: False
2025-07-01 14:43:23,539 [DEBUG][       Thread-608010][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:43:23,539 [DEBUG][       Thread-608010][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:43:23,539 [DEBUG][       Thread-608010][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:43:23,539 [DEBUG][       Thread-608010][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:43:23,539 [DEBUG][       Thread-608010][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:43:23,539 [DEBUG][       Thread-608010][   transport.py][1871] : Compression: none
2025-07-01 14:43:23,539 [DEBUG][       Thread-608010][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:43:23,558 [DEBUG][       Thread-608010][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:43:23,559 [DEBUG][       Thread-608010][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:43:23,559 [DEBUG][       Thread-608010][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:43:23,560 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:43:23,560 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:43:23,561 [DEBUG][       Thread-608010][   transport.py][1871] : userauth is OK
2025-07-01 14:43:23,574 [ INFO][       Thread-608010][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:43:23,574 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:43:24,244 [DEBUG][       Thread-608010][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:43:24,245 [DEBUG][       Thread-608010][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:43:24,289 [DEBUG][       Thread-608010][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:43:24,289 [DEBUG][       Thread-608010][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:43:24,293 [DEBUG][       Thread-608010][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:43:24,304 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:43:24,305 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:43:24,307 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:43:24,309 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:43:24,314 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:43:24,316 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:43:24,317 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:43:24,317 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:43:24,317 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.529802 -999.00  +13.50  40.47     52   +4.10 1 2 2 1 1   887    0 9.22 -14.71 ----- 32.8 40.5 21.2 49.2 15.5 -20.0 15.1 -19.8 15.1 -18.1 15.6 -18.1
2025-07-01 14:43:24,317 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:43:24,318 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:43:24,318 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.529802
2025-07-01 14:43:24,318 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:43:24,319 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:43:24,319 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:43:24,319 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:43:24,319 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:43:24,319 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:43:08', tmtdew=10.88, humidity=47.64, cloud=0.0, wind=38.5, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:42:54.893', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:43:24,319 [DEBUG][       Thread-608010][   transport.py][1871] : EOF in transport thread
2025-07-01 14:43:24,407 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:43:24,418 [DEBUG][       Thread-608013][   transport.py][1871] : starting thread (client mode): 0x8a66980
2025-07-01 14:43:24,418 [DEBUG][       Thread-608013][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:43:24,433 [DEBUG][       Thread-608013][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:43:24,433 [ INFO][       Thread-608013][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:43:24,440 [DEBUG][       Thread-608013][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:43:24,440 [DEBUG][       Thread-608013][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:43:24,440 [DEBUG][       Thread-608013][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:43:24,440 [DEBUG][       Thread-608013][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:43:24,440 [DEBUG][       Thread-608013][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:43:24,440 [DEBUG][       Thread-608013][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:43:24,440 [DEBUG][       Thread-608013][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:43:24,441 [DEBUG][       Thread-608013][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:43:24,441 [DEBUG][       Thread-608013][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:43:24,441 [DEBUG][       Thread-608013][   transport.py][1871] : client lang: <none>
2025-07-01 14:43:24,441 [DEBUG][       Thread-608013][   transport.py][1871] : server lang: <none>
2025-07-01 14:43:24,441 [DEBUG][       Thread-608013][   transport.py][1871] : kex follows: False
2025-07-01 14:43:24,441 [DEBUG][       Thread-608013][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:43:24,441 [DEBUG][       Thread-608013][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:43:24,441 [DEBUG][       Thread-608013][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:43:24,441 [DEBUG][       Thread-608013][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:43:24,441 [DEBUG][       Thread-608013][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:43:24,441 [DEBUG][       Thread-608013][   transport.py][1871] : Compression: none
2025-07-01 14:43:24,441 [DEBUG][       Thread-608013][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:43:24,503 [DEBUG][       Thread-608013][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:43:24,503 [DEBUG][       Thread-608013][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:43:24,504 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:43:24,504 [DEBUG][       Thread-608013][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:43:24,505 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:43:24,559 [DEBUG][       Thread-608013][   transport.py][1871] : userauth is OK
2025-07-01 14:43:24,560 [DEBUG][       Thread-608013][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:43:24,560 [DEBUG][       Thread-608013][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:43:24,560 [DEBUG][       Thread-608013][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:43:24,560 [DEBUG][       Thread-608013][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:43:24,579 [ INFO][       Thread-608013][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:43:24,579 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:43:24,579 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:43:25,612 [DEBUG][       Thread-608013][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:43:25,612 [DEBUG][       Thread-608013][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:43:25,663 [DEBUG][       Thread-608013][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:43:25,663 [DEBUG][       Thread-608013][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:43:25,672 [DEBUG][       Thread-608013][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:43:25,681 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:43:25,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')
2025-07-01 14:43:25,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') -> 00000000
2025-07-01 14:43:25,698 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:43:25,698 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:43:25,699 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:43:25,706 [DEBUG][       Thread-608013][   transport.py][1871] : EOF in transport thread
2025-07-01 14:43:31,072 [DEBUG][Thread-608015 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:43:35,477 [DEBUG][Thread-608016 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:43:35,709 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:43:35,709 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:43:35,709 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:43:35,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-07-01 14:43:36,191 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 43, 8), 10.88, 47.64, 0.0, 38.5, 13.64, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:43:36,191 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:43:08
2025-07-01 14:43:36,278 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:43:36,282 [DEBUG][       Thread-608017][   transport.py][1871] : starting thread (client mode): 0x81a50c0
2025-07-01 14:43:36,282 [DEBUG][       Thread-608017][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:43:36,302 [DEBUG][       Thread-608017][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:43:36,302 [ INFO][       Thread-608017][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:43:36,306 [DEBUG][       Thread-608017][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:43:36,306 [DEBUG][       Thread-608017][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:43:36,306 [DEBUG][       Thread-608017][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:43:36,306 [DEBUG][       Thread-608017][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:43:36,306 [DEBUG][       Thread-608017][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:43:36,306 [DEBUG][       Thread-608017][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:43:36,306 [DEBUG][       Thread-608017][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:43:36,306 [DEBUG][       Thread-608017][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:43:36,306 [DEBUG][       Thread-608017][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:43:36,306 [DEBUG][       Thread-608017][   transport.py][1871] : client lang: <none>
2025-07-01 14:43:36,306 [DEBUG][       Thread-608017][   transport.py][1871] : server lang: <none>
2025-07-01 14:43:36,306 [DEBUG][       Thread-608017][   transport.py][1871] : kex follows: False
2025-07-01 14:43:36,306 [DEBUG][       Thread-608017][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:43:36,306 [DEBUG][       Thread-608017][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:43:36,306 [DEBUG][       Thread-608017][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:43:36,306 [DEBUG][       Thread-608017][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:43:36,306 [DEBUG][       Thread-608017][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:43:36,306 [DEBUG][       Thread-608017][   transport.py][1871] : Compression: none
2025-07-01 14:43:36,306 [DEBUG][       Thread-608017][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:43:36,322 [DEBUG][       Thread-608017][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:43:36,322 [DEBUG][       Thread-608017][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:43:36,323 [DEBUG][       Thread-608017][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:43:36,323 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:43:36,323 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:43:36,323 [DEBUG][       Thread-608017][   transport.py][1871] : userauth is OK
2025-07-01 14:43:36,348 [ INFO][       Thread-608017][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:43:36,348 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:43:36,991 [DEBUG][       Thread-608017][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:43:36,991 [DEBUG][       Thread-608017][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:43:37,032 [DEBUG][       Thread-608017][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:43:37,032 [DEBUG][       Thread-608017][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:43:37,034 [DEBUG][       Thread-608017][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:43:37,046 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:43:37,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:43:37,047 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:43:37,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:43:37,050 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:43:37,051 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:43:37,051 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:43:37,051 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:43:37,051 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.529802 -999.00  +13.50  40.47     52   +4.10 1 2 2 1 1   887    0 9.22 -14.71 ----- 32.8 40.5 21.2 49.2 15.5 -20.0 15.1 -19.8 15.1 -18.1 15.6 -18.1
2025-07-01 14:43:37,051 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:43:37,051 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:43:37,051 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.529802
2025-07-01 14:43:37,052 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:43:37,052 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:43:37,052 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:43:37,052 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:43:37,052 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:43:37,052 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:43:08', tmtdew=10.88, humidity=47.64, cloud=0.0, wind=38.5, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:42:54.893', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:43:37,053 [DEBUG][       Thread-608017][   transport.py][1871] : EOF in transport thread
2025-07-01 14:43:37,124 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:43:37,133 [DEBUG][       Thread-608020][   transport.py][1871] : starting thread (client mode): 0x8a66980
2025-07-01 14:43:37,133 [DEBUG][       Thread-608020][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:43:37,148 [DEBUG][       Thread-608020][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:43:37,148 [ INFO][       Thread-608020][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:43:37,155 [DEBUG][       Thread-608020][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:43:37,155 [DEBUG][       Thread-608020][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:43:37,155 [DEBUG][       Thread-608020][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:43:37,155 [DEBUG][       Thread-608020][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:43:37,155 [DEBUG][       Thread-608020][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:43:37,155 [DEBUG][       Thread-608020][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:43:37,155 [DEBUG][       Thread-608020][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:43:37,155 [DEBUG][       Thread-608020][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:43:37,155 [DEBUG][       Thread-608020][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:43:37,155 [DEBUG][       Thread-608020][   transport.py][1871] : client lang: <none>
2025-07-01 14:43:37,155 [DEBUG][       Thread-608020][   transport.py][1871] : server lang: <none>
2025-07-01 14:43:37,155 [DEBUG][       Thread-608020][   transport.py][1871] : kex follows: False
2025-07-01 14:43:37,155 [DEBUG][       Thread-608020][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:43:37,155 [DEBUG][       Thread-608020][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:43:37,155 [DEBUG][       Thread-608020][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:43:37,155 [DEBUG][       Thread-608020][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:43:37,155 [DEBUG][       Thread-608020][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:43:37,156 [DEBUG][       Thread-608020][   transport.py][1871] : Compression: none
2025-07-01 14:43:37,156 [DEBUG][       Thread-608020][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:43:37,217 [DEBUG][       Thread-608020][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:43:37,217 [DEBUG][       Thread-608020][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:43:37,217 [DEBUG][       Thread-608020][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:43:37,217 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:43:37,217 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:43:37,274 [DEBUG][       Thread-608020][   transport.py][1871] : userauth is OK
2025-07-01 14:43:37,274 [DEBUG][       Thread-608020][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:43:37,274 [DEBUG][       Thread-608020][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:43:37,274 [DEBUG][       Thread-608020][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:43:37,274 [DEBUG][       Thread-608020][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:43:37,288 [ INFO][       Thread-608020][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:43:37,289 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:43:37,289 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:43:38,282 [DEBUG][       Thread-608020][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:43:38,282 [DEBUG][       Thread-608020][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:43:38,331 [DEBUG][       Thread-608020][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:43:38,332 [DEBUG][       Thread-608020][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:43:38,340 [DEBUG][       Thread-608020][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:43:38,349 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:43: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')
2025-07-01 14:43:38,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-07-01 14:43:38,372 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:43:38,372 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:43:38,373 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:43:38,380 [DEBUG][       Thread-608020][   transport.py][1871] : EOF in transport thread
2025-07-01 14:43:40,104 [DEBUG][Thread-608022 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:43:48,383 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:43:48,383 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:43:48,383 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:43:48,386 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:43:48,859 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 43, 40), 10.91, 47.87, 0.0, 36.1, 13.64, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:43:48,859 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:43:40
2025-07-01 14:43:48,945 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:43:48,949 [DEBUG][       Thread-608023][   transport.py][1871] : starting thread (client mode): 0x81739d0
2025-07-01 14:43:48,950 [DEBUG][       Thread-608023][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:43:48,970 [DEBUG][       Thread-608023][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:43:48,970 [ INFO][       Thread-608023][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:43:48,973 [DEBUG][       Thread-608023][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:43:48,973 [DEBUG][       Thread-608023][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:43:48,973 [DEBUG][       Thread-608023][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:43:48,973 [DEBUG][       Thread-608023][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:43:48,973 [DEBUG][       Thread-608023][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:43:48,973 [DEBUG][       Thread-608023][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:43:48,973 [DEBUG][       Thread-608023][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:43:48,973 [DEBUG][       Thread-608023][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:43:48,973 [DEBUG][       Thread-608023][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:43:48,974 [DEBUG][       Thread-608023][   transport.py][1871] : client lang: <none>
2025-07-01 14:43:48,974 [DEBUG][       Thread-608023][   transport.py][1871] : server lang: <none>
2025-07-01 14:43:48,974 [DEBUG][       Thread-608023][   transport.py][1871] : kex follows: False
2025-07-01 14:43:48,974 [DEBUG][       Thread-608023][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:43:48,974 [DEBUG][       Thread-608023][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:43:48,974 [DEBUG][       Thread-608023][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:43:48,974 [DEBUG][       Thread-608023][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:43:48,974 [DEBUG][       Thread-608023][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:43:48,974 [DEBUG][       Thread-608023][   transport.py][1871] : Compression: none
2025-07-01 14:43:48,974 [DEBUG][       Thread-608023][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:43:48,991 [DEBUG][       Thread-608023][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:43:48,992 [DEBUG][       Thread-608023][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:43:48,992 [DEBUG][       Thread-608023][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:43:48,992 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:43:48,993 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:43:48,994 [DEBUG][       Thread-608023][   transport.py][1871] : userauth is OK
2025-07-01 14:43:49,020 [ INFO][       Thread-608023][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:43:49,020 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:43:49,126 [DEBUG][Thread-608025 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:43:49,633 [DEBUG][       Thread-608023][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:43:49,633 [DEBUG][       Thread-608023][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:43:49,677 [DEBUG][       Thread-608023][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:43:49,677 [DEBUG][       Thread-608023][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:43:49,681 [DEBUG][       Thread-608023][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:43:49,693 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:43:49,694 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:43:49,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:43:49,698 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:43:49,703 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:43:49,705 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:43:49,706 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:43:49,706 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:43:49,706 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.529802 -999.00  +13.50  40.47     52   +4.10 1 2 2 1 1   887    0 9.22 -14.71 ----- 32.8 40.5 21.2 49.2 15.5 -20.0 15.1 -19.8 15.1 -18.1 15.6 -18.1
2025-07-01 14:43:49,706 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:43:49,706 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:43:49,706 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.529802
2025-07-01 14:43:49,707 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:43:49,707 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:43:49,708 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:43:49,708 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:43:49,708 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:43:49,708 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:43:40', tmtdew=10.91, humidity=47.87, cloud=0.0, wind=36.1, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:42:54.893', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:43:49,709 [DEBUG][       Thread-608023][   transport.py][1871] : EOF in transport thread
2025-07-01 14:43:49,791 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:43:49,802 [DEBUG][       Thread-608027][   transport.py][1871] : starting thread (client mode): 0x827d540
2025-07-01 14:43:49,802 [DEBUG][       Thread-608027][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:43:49,818 [DEBUG][       Thread-608027][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:43:49,818 [ INFO][       Thread-608027][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:43:49,827 [DEBUG][       Thread-608027][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:43:49,827 [DEBUG][       Thread-608027][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:43:49,827 [DEBUG][       Thread-608027][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:43:49,827 [DEBUG][       Thread-608027][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:43:49,827 [DEBUG][       Thread-608027][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:43:49,827 [DEBUG][       Thread-608027][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:43:49,827 [DEBUG][       Thread-608027][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:43:49,827 [DEBUG][       Thread-608027][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:43:49,827 [DEBUG][       Thread-608027][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:43:49,827 [DEBUG][       Thread-608027][   transport.py][1871] : client lang: <none>
2025-07-01 14:43:49,827 [DEBUG][       Thread-608027][   transport.py][1871] : server lang: <none>
2025-07-01 14:43:49,827 [DEBUG][       Thread-608027][   transport.py][1871] : kex follows: False
2025-07-01 14:43:49,827 [DEBUG][       Thread-608027][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:43:49,827 [DEBUG][       Thread-608027][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:43:49,827 [DEBUG][       Thread-608027][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:43:49,827 [DEBUG][       Thread-608027][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:43:49,828 [DEBUG][       Thread-608027][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:43:49,828 [DEBUG][       Thread-608027][   transport.py][1871] : Compression: none
2025-07-01 14:43:49,828 [DEBUG][       Thread-608027][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:43:49,884 [DEBUG][       Thread-608027][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:43:49,884 [DEBUG][       Thread-608027][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:43:49,885 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:43:49,885 [DEBUG][       Thread-608027][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:43:49,886 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:43:49,939 [DEBUG][       Thread-608027][   transport.py][1871] : userauth is OK
2025-07-01 14:43:49,940 [DEBUG][       Thread-608027][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:43:49,940 [DEBUG][       Thread-608027][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:43:49,940 [DEBUG][       Thread-608027][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:43:49,940 [DEBUG][       Thread-608027][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:43:49,961 [ INFO][       Thread-608027][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:43:49,962 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:43:49,962 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:43:51,031 [DEBUG][       Thread-608027][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:43:51,032 [DEBUG][       Thread-608027][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:43:51,080 [DEBUG][       Thread-608027][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:43:51,080 [DEBUG][       Thread-608027][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:43:51,089 [DEBUG][       Thread-608027][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:43:51,098 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:43:51,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-07-01 14:43:51,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-07-01 14:43:51,116 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:43:51,117 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:43:51,117 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:43:51,125 [DEBUG][       Thread-608027][   transport.py][1871] : EOF in transport thread
2025-07-01 14:43:58,148 [DEBUG][Thread-608029 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:44:01,119 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:44:01,119 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:44:01,119 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:44:01,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-07-01 14:44:01,591 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 43, 40), 10.91, 47.87, 0.0, 36.1, 13.64, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:44:01,591 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:43:40
2025-07-01 14:44:01,677 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:44:01,682 [DEBUG][       Thread-608030][   transport.py][1871] : starting thread (client mode): 0x81a74f0
2025-07-01 14:44:01,682 [DEBUG][       Thread-608030][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:44:01,702 [DEBUG][       Thread-608030][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:44:01,703 [ INFO][       Thread-608030][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:44:01,706 [DEBUG][       Thread-608030][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:44:01,706 [DEBUG][       Thread-608030][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:44:01,706 [DEBUG][       Thread-608030][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:44:01,706 [DEBUG][       Thread-608030][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:44:01,706 [DEBUG][       Thread-608030][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:44:01,706 [DEBUG][       Thread-608030][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:44:01,706 [DEBUG][       Thread-608030][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:44:01,706 [DEBUG][       Thread-608030][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:44:01,706 [DEBUG][       Thread-608030][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:44:01,706 [DEBUG][       Thread-608030][   transport.py][1871] : client lang: <none>
2025-07-01 14:44:01,706 [DEBUG][       Thread-608030][   transport.py][1871] : server lang: <none>
2025-07-01 14:44:01,706 [DEBUG][       Thread-608030][   transport.py][1871] : kex follows: False
2025-07-01 14:44:01,706 [DEBUG][       Thread-608030][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:44:01,706 [DEBUG][       Thread-608030][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:44:01,706 [DEBUG][       Thread-608030][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:44:01,706 [DEBUG][       Thread-608030][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:44:01,706 [DEBUG][       Thread-608030][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:44:01,706 [DEBUG][       Thread-608030][   transport.py][1871] : Compression: none
2025-07-01 14:44:01,706 [DEBUG][       Thread-608030][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:44:01,715 [DEBUG][       Thread-608030][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:44:01,715 [DEBUG][       Thread-608030][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:44:01,716 [DEBUG][       Thread-608030][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:44:01,716 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:44:01,716 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:44:01,717 [DEBUG][       Thread-608030][   transport.py][1871] : userauth is OK
2025-07-01 14:44:01,730 [ INFO][       Thread-608030][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:44:01,730 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:44:02,353 [DEBUG][       Thread-608030][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:44:02,353 [DEBUG][       Thread-608030][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:44:02,397 [DEBUG][       Thread-608030][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:44:02,397 [DEBUG][       Thread-608030][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:44:02,401 [DEBUG][       Thread-608030][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:44:02,406 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:44:02,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:44:02,409 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:44:02,411 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:44:02,417 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:44:02,419 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:44:02,419 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:44:02,420 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:44:02,420 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.530149 -999.00  +13.50  24.96     52   +4.10 1 2 1 1 1   887    0 9.09 -15.29 ----- 35.2 25.0 32.8 40.6 15.6 -19.9 15.1 -19.7 15.2 -18.1 15.6 -18.5
2025-07-01 14:44:02,420 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:44:02,420 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:44:02,420 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.530149
2025-07-01 14:44:02,421 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:44:02,422 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:44:02,422 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:44:02,422 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:44:02,422 [DEBUG][       Thread-608030][   transport.py][1871] : EOF in transport thread
2025-07-01 14:44:02,423 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:44:02,423 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:43:40', tmtdew=10.91, humidity=47.87, cloud=0.0, wind=36.1, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:43:24.874', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:44:02,505 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:44:02,514 [DEBUG][       Thread-608033][   transport.py][1871] : starting thread (client mode): 0x827ec50
2025-07-01 14:44:02,514 [DEBUG][       Thread-608033][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:44:02,533 [DEBUG][       Thread-608033][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:44:02,533 [ INFO][       Thread-608033][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:44:02,543 [DEBUG][       Thread-608033][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:44:02,543 [DEBUG][       Thread-608033][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:44:02,543 [DEBUG][       Thread-608033][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:44:02,543 [DEBUG][       Thread-608033][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:44:02,543 [DEBUG][       Thread-608033][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:44:02,543 [DEBUG][       Thread-608033][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:44:02,543 [DEBUG][       Thread-608033][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:44:02,543 [DEBUG][       Thread-608033][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:44:02,543 [DEBUG][       Thread-608033][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:44:02,543 [DEBUG][       Thread-608033][   transport.py][1871] : client lang: <none>
2025-07-01 14:44:02,543 [DEBUG][       Thread-608033][   transport.py][1871] : server lang: <none>
2025-07-01 14:44:02,543 [DEBUG][       Thread-608033][   transport.py][1871] : kex follows: False
2025-07-01 14:44:02,543 [DEBUG][       Thread-608033][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:44:02,543 [DEBUG][       Thread-608033][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:44:02,543 [DEBUG][       Thread-608033][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:44:02,543 [DEBUG][       Thread-608033][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:44:02,543 [DEBUG][       Thread-608033][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:44:02,543 [DEBUG][       Thread-608033][   transport.py][1871] : Compression: none
2025-07-01 14:44:02,543 [DEBUG][       Thread-608033][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:44:02,598 [DEBUG][       Thread-608033][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:44:02,599 [DEBUG][       Thread-608033][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:44:02,599 [DEBUG][       Thread-608033][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:44:02,599 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:44:02,600 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:44:02,659 [DEBUG][       Thread-608033][   transport.py][1871] : userauth is OK
2025-07-01 14:44:02,659 [DEBUG][       Thread-608033][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:44:02,659 [DEBUG][       Thread-608033][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:44:02,659 [DEBUG][       Thread-608033][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:44:02,659 [DEBUG][       Thread-608033][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:44:02,678 [ INFO][       Thread-608033][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:44:02,678 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:44:02,678 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:44:03,699 [DEBUG][       Thread-608033][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:44:03,699 [DEBUG][       Thread-608033][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:44:03,748 [DEBUG][       Thread-608033][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:44:03,748 [DEBUG][       Thread-608033][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:44:03,757 [DEBUG][       Thread-608033][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:44:03,766 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:44:03,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-07-01 14:44:03,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-07-01 14:44:03,784 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:44:03,784 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:44:03,785 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:44:03,792 [DEBUG][       Thread-608033][   transport.py][1871] : EOF in transport thread
2025-07-01 14:44:07,182 [DEBUG][Thread-608035 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:44:13,793 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:44:13,793 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:44:13,793 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:44:13,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-07-01 14:44:14,262 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 44, 11), 10.87, 47.96, 0.0, 40.95, 13.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:44:14,262 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:44:11
2025-07-01 14:44:14,354 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:44:14,358 [DEBUG][       Thread-608036][   transport.py][1871] : starting thread (client mode): 0x81a63b0
2025-07-01 14:44:14,358 [DEBUG][       Thread-608036][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:44:14,374 [DEBUG][       Thread-608036][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:44:14,374 [ INFO][       Thread-608036][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:44:14,377 [DEBUG][       Thread-608036][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:44:14,378 [DEBUG][       Thread-608036][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:44:14,378 [DEBUG][       Thread-608036][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:44:14,378 [DEBUG][       Thread-608036][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:44:14,378 [DEBUG][       Thread-608036][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:44:14,378 [DEBUG][       Thread-608036][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:44:14,378 [DEBUG][       Thread-608036][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:44:14,378 [DEBUG][       Thread-608036][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:44:14,378 [DEBUG][       Thread-608036][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:44:14,378 [DEBUG][       Thread-608036][   transport.py][1871] : client lang: <none>
2025-07-01 14:44:14,378 [DEBUG][       Thread-608036][   transport.py][1871] : server lang: <none>
2025-07-01 14:44:14,378 [DEBUG][       Thread-608036][   transport.py][1871] : kex follows: False
2025-07-01 14:44:14,378 [DEBUG][       Thread-608036][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:44:14,378 [DEBUG][       Thread-608036][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:44:14,378 [DEBUG][       Thread-608036][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:44:14,378 [DEBUG][       Thread-608036][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:44:14,378 [DEBUG][       Thread-608036][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:44:14,378 [DEBUG][       Thread-608036][   transport.py][1871] : Compression: none
2025-07-01 14:44:14,378 [DEBUG][       Thread-608036][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:44:14,394 [DEBUG][       Thread-608036][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:44:14,394 [DEBUG][       Thread-608036][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:44:14,394 [DEBUG][       Thread-608036][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:44:14,394 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:44:14,394 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:44:14,395 [DEBUG][       Thread-608036][   transport.py][1871] : userauth is OK
2025-07-01 14:44:14,407 [ INFO][       Thread-608036][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:44:14,407 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:44:15,030 [DEBUG][       Thread-608036][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:44:15,030 [DEBUG][       Thread-608036][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:44:15,072 [DEBUG][       Thread-608036][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:44:15,072 [DEBUG][       Thread-608036][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:44:15,075 [DEBUG][       Thread-608036][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:44:15,083 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:44:15,083 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:44:15,084 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:44:15,085 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:44:15,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:44:15,089 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:44:15,089 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:44:15,089 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:44:15,089 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.530149 -999.00  +13.50  24.96     52   +4.10 1 2 1 1 1   887    0 9.09 -15.29 ----- 35.2 25.0 32.8 40.6 15.6 -19.9 15.1 -19.7 15.2 -18.1 15.6 -18.5
2025-07-01 14:44:15,089 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:44:15,089 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:44:15,089 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.530149
2025-07-01 14:44:15,089 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:44:15,090 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:44:15,090 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:44:15,090 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:44:15,090 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:44:15,090 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:44:11', tmtdew=10.87, humidity=47.96, cloud=0.0, wind=40.95, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:43:24.874', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:44:15,090 [DEBUG][       Thread-608036][   transport.py][1871] : EOF in transport thread
2025-07-01 14:44:15,161 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:44:15,172 [DEBUG][       Thread-608039][   transport.py][1871] : starting thread (client mode): 0x8393910
2025-07-01 14:44:15,172 [DEBUG][       Thread-608039][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:44:15,188 [DEBUG][       Thread-608039][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:44:15,188 [ INFO][       Thread-608039][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:44:15,195 [DEBUG][       Thread-608039][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:44:15,195 [DEBUG][       Thread-608039][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:44:15,195 [DEBUG][       Thread-608039][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:44:15,195 [DEBUG][       Thread-608039][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:44:15,195 [DEBUG][       Thread-608039][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:44:15,195 [DEBUG][       Thread-608039][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:44:15,195 [DEBUG][       Thread-608039][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:44:15,195 [DEBUG][       Thread-608039][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:44:15,195 [DEBUG][       Thread-608039][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:44:15,195 [DEBUG][       Thread-608039][   transport.py][1871] : client lang: <none>
2025-07-01 14:44:15,195 [DEBUG][       Thread-608039][   transport.py][1871] : server lang: <none>
2025-07-01 14:44:15,195 [DEBUG][       Thread-608039][   transport.py][1871] : kex follows: False
2025-07-01 14:44:15,195 [DEBUG][       Thread-608039][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:44:15,195 [DEBUG][       Thread-608039][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:44:15,195 [DEBUG][       Thread-608039][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:44:15,195 [DEBUG][       Thread-608039][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:44:15,195 [DEBUG][       Thread-608039][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:44:15,195 [DEBUG][       Thread-608039][   transport.py][1871] : Compression: none
2025-07-01 14:44:15,195 [DEBUG][       Thread-608039][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:44:15,250 [DEBUG][       Thread-608039][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:44:15,250 [DEBUG][       Thread-608039][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:44:15,250 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:44:15,250 [DEBUG][       Thread-608039][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:44:15,250 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:44:15,311 [DEBUG][       Thread-608039][   transport.py][1871] : userauth is OK
2025-07-01 14:44:15,311 [DEBUG][       Thread-608039][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:44:15,311 [DEBUG][       Thread-608039][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:44:15,311 [DEBUG][       Thread-608039][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:44:15,311 [DEBUG][       Thread-608039][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:44:15,331 [ INFO][       Thread-608039][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:44:15,332 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:44:15,332 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:44:16,201 [DEBUG][Thread-608041 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:44:16,388 [DEBUG][       Thread-608039][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:44:16,388 [DEBUG][       Thread-608039][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:44:16,436 [DEBUG][       Thread-608039][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:44:16,436 [DEBUG][       Thread-608039][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:44:16,445 [DEBUG][       Thread-608039][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:44:16,455 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:44:16,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-07-01 14:44:16,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-07-01 14:44:16,473 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:44:16,473 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:44:16,474 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:44:16,481 [DEBUG][       Thread-608039][   transport.py][1871] : EOF in transport thread
2025-07-01 14:44:25,237 [DEBUG][Thread-608042 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:44:26,484 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:44:26,484 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:44:26,485 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:44:26,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-07-01 14:44:26,937 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 44, 11), 10.87, 47.96, 0.0, 40.95, 13.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:44:26,937 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:44:11
2025-07-01 14:44:27,021 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:44:27,028 [DEBUG][       Thread-608043][   transport.py][1871] : starting thread (client mode): 0x81a4220
2025-07-01 14:44:27,028 [DEBUG][       Thread-608043][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:44:27,048 [DEBUG][       Thread-608043][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:44:27,048 [ INFO][       Thread-608043][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:44:27,051 [DEBUG][       Thread-608043][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:44:27,051 [DEBUG][       Thread-608043][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:44:27,051 [DEBUG][       Thread-608043][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:44:27,051 [DEBUG][       Thread-608043][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:44:27,051 [DEBUG][       Thread-608043][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:44:27,051 [DEBUG][       Thread-608043][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:44:27,051 [DEBUG][       Thread-608043][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:44:27,051 [DEBUG][       Thread-608043][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:44:27,051 [DEBUG][       Thread-608043][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:44:27,051 [DEBUG][       Thread-608043][   transport.py][1871] : client lang: <none>
2025-07-01 14:44:27,051 [DEBUG][       Thread-608043][   transport.py][1871] : server lang: <none>
2025-07-01 14:44:27,051 [DEBUG][       Thread-608043][   transport.py][1871] : kex follows: False
2025-07-01 14:44:27,051 [DEBUG][       Thread-608043][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:44:27,051 [DEBUG][       Thread-608043][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:44:27,051 [DEBUG][       Thread-608043][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:44:27,051 [DEBUG][       Thread-608043][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:44:27,051 [DEBUG][       Thread-608043][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:44:27,051 [DEBUG][       Thread-608043][   transport.py][1871] : Compression: none
2025-07-01 14:44:27,051 [DEBUG][       Thread-608043][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:44:27,065 [DEBUG][       Thread-608043][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:44:27,066 [DEBUG][       Thread-608043][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:44:27,066 [DEBUG][       Thread-608043][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:44:27,067 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:44:27,067 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:44:27,068 [DEBUG][       Thread-608043][   transport.py][1871] : userauth is OK
2025-07-01 14:44:27,093 [ INFO][       Thread-608043][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:44:27,093 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:44:27,765 [DEBUG][       Thread-608043][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:44:27,765 [DEBUG][       Thread-608043][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:44:27,809 [DEBUG][       Thread-608043][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:44:27,809 [DEBUG][       Thread-608043][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:44:27,812 [DEBUG][       Thread-608043][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:44:27,825 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:44:27,826 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:44:27,827 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:44:27,829 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:44:27,834 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:44:27,836 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:44:27,836 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:44:27,837 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:44:27,837 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.530496 -999.00  +13.70  32.65     53   +4.30 1 2 2 1 1   887    0 8.98 -14.10 ----- 34.3 32.6 24.8 44.8 15.6 -19.4 15.1 -19.5 15.2 -17.8 15.6 -17.9
2025-07-01 14:44:27,837 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:44:27,837 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:44:27,837 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.530496
2025-07-01 14:44:27,838 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:44:27,838 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:44:27,838 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:44:27,838 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:44:27,838 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:44:27,839 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:44:11', tmtdew=10.87, humidity=47.96, cloud=0.0, wind=40.95, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:43:54.854', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:44:27,840 [DEBUG][       Thread-608043][   transport.py][1871] : EOF in transport thread
2025-07-01 14:44:27,923 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:44:27,935 [DEBUG][       Thread-608046][   transport.py][1871] : starting thread (client mode): 0x8393ee0
2025-07-01 14:44:27,935 [DEBUG][       Thread-608046][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:44:27,953 [DEBUG][       Thread-608046][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:44:27,953 [ INFO][       Thread-608046][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:44:27,960 [DEBUG][       Thread-608046][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:44:27,960 [DEBUG][       Thread-608046][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:44:27,961 [DEBUG][       Thread-608046][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:44:27,961 [DEBUG][       Thread-608046][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:44:27,961 [DEBUG][       Thread-608046][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:44:27,961 [DEBUG][       Thread-608046][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:44:27,961 [DEBUG][       Thread-608046][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:44:27,961 [DEBUG][       Thread-608046][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:44:27,961 [DEBUG][       Thread-608046][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:44:27,961 [DEBUG][       Thread-608046][   transport.py][1871] : client lang: <none>
2025-07-01 14:44:27,961 [DEBUG][       Thread-608046][   transport.py][1871] : server lang: <none>
2025-07-01 14:44:27,961 [DEBUG][       Thread-608046][   transport.py][1871] : kex follows: False
2025-07-01 14:44:27,961 [DEBUG][       Thread-608046][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:44:27,961 [DEBUG][       Thread-608046][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:44:27,961 [DEBUG][       Thread-608046][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:44:27,961 [DEBUG][       Thread-608046][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:44:27,961 [DEBUG][       Thread-608046][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:44:27,961 [DEBUG][       Thread-608046][   transport.py][1871] : Compression: none
2025-07-01 14:44:27,961 [DEBUG][       Thread-608046][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:44:28,024 [DEBUG][       Thread-608046][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:44:28,024 [DEBUG][       Thread-608046][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:44:28,025 [DEBUG][       Thread-608046][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:44:28,025 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:44:28,026 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:44:28,080 [DEBUG][       Thread-608046][   transport.py][1871] : userauth is OK
2025-07-01 14:44:28,080 [DEBUG][       Thread-608046][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:44:28,081 [DEBUG][       Thread-608046][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:44:28,081 [DEBUG][       Thread-608046][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:44:28,081 [DEBUG][       Thread-608046][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:44:28,099 [ INFO][       Thread-608046][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:44:28,100 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:44:28,100 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:44:29,182 [DEBUG][       Thread-608046][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:44:29,182 [DEBUG][       Thread-608046][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:44:29,232 [DEBUG][       Thread-608046][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:44:29,232 [DEBUG][       Thread-608046][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:44:29,241 [DEBUG][       Thread-608046][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:44:29,256 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:44:29,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-07-01 14:44:29,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-07-01 14:44:29,273 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:44:29,273 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:44:29,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:44:29,285 [DEBUG][       Thread-608046][   transport.py][1871] : EOF in transport thread
2025-07-01 14:44:34,259 [DEBUG][Thread-608048 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:44:35,507 [DEBUG][Thread-608049 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:44:39,284 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:44:39,284 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:44:39,284 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:44:39,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-07-01 14:44:39,763 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 44, 11), 10.87, 47.96, 0.0, 40.95, 13.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:44:39,763 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:44:11
2025-07-01 14:44:39,849 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:44:39,853 [DEBUG][       Thread-608050][   transport.py][1871] : starting thread (client mode): 0x81a4790
2025-07-01 14:44:39,853 [DEBUG][       Thread-608050][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:44:39,873 [DEBUG][       Thread-608050][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:44:39,873 [ INFO][       Thread-608050][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:44:39,877 [DEBUG][       Thread-608050][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:44:39,877 [DEBUG][       Thread-608050][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:44:39,877 [DEBUG][       Thread-608050][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:44:39,877 [DEBUG][       Thread-608050][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:44:39,877 [DEBUG][       Thread-608050][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:44:39,877 [DEBUG][       Thread-608050][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:44:39,877 [DEBUG][       Thread-608050][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:44:39,877 [DEBUG][       Thread-608050][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:44:39,877 [DEBUG][       Thread-608050][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:44:39,877 [DEBUG][       Thread-608050][   transport.py][1871] : client lang: <none>
2025-07-01 14:44:39,877 [DEBUG][       Thread-608050][   transport.py][1871] : server lang: <none>
2025-07-01 14:44:39,877 [DEBUG][       Thread-608050][   transport.py][1871] : kex follows: False
2025-07-01 14:44:39,877 [DEBUG][       Thread-608050][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:44:39,877 [DEBUG][       Thread-608050][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:44:39,877 [DEBUG][       Thread-608050][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:44:39,877 [DEBUG][       Thread-608050][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:44:39,877 [DEBUG][       Thread-608050][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:44:39,877 [DEBUG][       Thread-608050][   transport.py][1871] : Compression: none
2025-07-01 14:44:39,877 [DEBUG][       Thread-608050][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:44:39,894 [DEBUG][       Thread-608050][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:44:39,894 [DEBUG][       Thread-608050][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:44:39,894 [DEBUG][       Thread-608050][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:44:39,894 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:44:39,894 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:44:39,895 [DEBUG][       Thread-608050][   transport.py][1871] : userauth is OK
2025-07-01 14:44:39,919 [ INFO][       Thread-608050][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:44:39,919 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:44:40,551 [DEBUG][       Thread-608050][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:44:40,552 [DEBUG][       Thread-608050][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:44:40,593 [DEBUG][       Thread-608050][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:44:40,593 [DEBUG][       Thread-608050][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:44:40,597 [DEBUG][       Thread-608050][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:44:40,609 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:44:40,609 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:44:40,611 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:44:40,613 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:44:40,619 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:44:40,621 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:44:40,621 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:44:40,622 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:44:40,622 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.530496 -999.00  +13.70  32.65     53   +4.30 1 2 2 1 1   887    0 8.98 -14.10 ----- 34.3 32.6 24.8 44.8 15.6 -19.4 15.1 -19.5 15.2 -17.8 15.6 -17.9
2025-07-01 14:44:40,622 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:44:40,622 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:44:40,622 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.530496
2025-07-01 14:44:40,622 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:44:40,623 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:44:40,623 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:44:40,623 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:44:40,623 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:44:40,623 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:44:11', tmtdew=10.87, humidity=47.96, cloud=0.0, wind=40.95, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:43:54.854', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:44:40,624 [DEBUG][       Thread-608050][   transport.py][1871] : EOF in transport thread
2025-07-01 14:44:40,708 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:44:40,718 [DEBUG][       Thread-608053][   transport.py][1871] : starting thread (client mode): 0x8105060
2025-07-01 14:44:40,718 [DEBUG][       Thread-608053][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:44:40,733 [DEBUG][       Thread-608053][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:44:40,733 [ INFO][       Thread-608053][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:44:40,741 [DEBUG][       Thread-608053][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:44:40,741 [DEBUG][       Thread-608053][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:44:40,741 [DEBUG][       Thread-608053][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:44:40,741 [DEBUG][       Thread-608053][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:44:40,741 [DEBUG][       Thread-608053][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:44:40,741 [DEBUG][       Thread-608053][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:44:40,741 [DEBUG][       Thread-608053][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:44:40,741 [DEBUG][       Thread-608053][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:44:40,741 [DEBUG][       Thread-608053][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:44:40,741 [DEBUG][       Thread-608053][   transport.py][1871] : client lang: <none>
2025-07-01 14:44:40,741 [DEBUG][       Thread-608053][   transport.py][1871] : server lang: <none>
2025-07-01 14:44:40,741 [DEBUG][       Thread-608053][   transport.py][1871] : kex follows: False
2025-07-01 14:44:40,741 [DEBUG][       Thread-608053][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:44:40,742 [DEBUG][       Thread-608053][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:44:40,742 [DEBUG][       Thread-608053][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:44:40,742 [DEBUG][       Thread-608053][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:44:40,742 [DEBUG][       Thread-608053][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:44:40,742 [DEBUG][       Thread-608053][   transport.py][1871] : Compression: none
2025-07-01 14:44:40,742 [DEBUG][       Thread-608053][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:44:40,800 [DEBUG][       Thread-608053][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:44:40,800 [DEBUG][       Thread-608053][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:44:40,801 [DEBUG][       Thread-608053][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:44:40,801 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:44:40,802 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:44:40,857 [DEBUG][       Thread-608053][   transport.py][1871] : userauth is OK
2025-07-01 14:44:40,857 [DEBUG][       Thread-608053][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:44:40,857 [DEBUG][       Thread-608053][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:44:40,857 [DEBUG][       Thread-608053][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:44:40,857 [DEBUG][       Thread-608053][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:44:40,876 [ INFO][       Thread-608053][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:44:40,877 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:44:40,877 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:44:41,890 [DEBUG][       Thread-608053][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:44:41,890 [DEBUG][       Thread-608053][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:44:41,940 [DEBUG][       Thread-608053][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:44:41,940 [DEBUG][       Thread-608053][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:44:41,949 [DEBUG][       Thread-608053][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:44:41,957 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:44:41,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-07-01 14:44:41,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-07-01 14:44:41,975 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:44:41,975 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:44:41,975 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:44:41,983 [DEBUG][       Thread-608053][   transport.py][1871] : EOF in transport thread
2025-07-01 14:44:43,281 [DEBUG][Thread-608055 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:44:51,984 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:44:51,984 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:44:51,984 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:44:51,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-07-01 14:44:52,298 [DEBUG][Thread-608056 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:44:52,473 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 44, 43), 10.85, 48.04, 0.0, 37.53, 13.64, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:44:52,473 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:44:43
2025-07-01 14:44:52,561 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:44:52,567 [DEBUG][       Thread-608057][   transport.py][1871] : starting thread (client mode): 0x81d8be0
2025-07-01 14:44:52,567 [DEBUG][       Thread-608057][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:44:52,591 [DEBUG][       Thread-608057][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:44:52,591 [ INFO][       Thread-608057][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:44:52,595 [DEBUG][       Thread-608057][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:44:52,595 [DEBUG][       Thread-608057][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:44:52,595 [DEBUG][       Thread-608057][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:44:52,595 [DEBUG][       Thread-608057][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:44:52,595 [DEBUG][       Thread-608057][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:44:52,595 [DEBUG][       Thread-608057][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:44:52,595 [DEBUG][       Thread-608057][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:44:52,595 [DEBUG][       Thread-608057][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:44:52,595 [DEBUG][       Thread-608057][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:44:52,595 [DEBUG][       Thread-608057][   transport.py][1871] : client lang: <none>
2025-07-01 14:44:52,595 [DEBUG][       Thread-608057][   transport.py][1871] : server lang: <none>
2025-07-01 14:44:52,595 [DEBUG][       Thread-608057][   transport.py][1871] : kex follows: False
2025-07-01 14:44:52,595 [DEBUG][       Thread-608057][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:44:52,595 [DEBUG][       Thread-608057][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:44:52,595 [DEBUG][       Thread-608057][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:44:52,595 [DEBUG][       Thread-608057][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:44:52,595 [DEBUG][       Thread-608057][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:44:52,595 [DEBUG][       Thread-608057][   transport.py][1871] : Compression: none
2025-07-01 14:44:52,595 [DEBUG][       Thread-608057][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:44:52,610 [DEBUG][       Thread-608057][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:44:52,610 [DEBUG][       Thread-608057][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:44:52,610 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:44:52,610 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:44:52,610 [DEBUG][       Thread-608057][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:44:52,611 [DEBUG][       Thread-608057][   transport.py][1871] : userauth is OK
2025-07-01 14:44:52,636 [ INFO][       Thread-608057][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:44:52,636 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:44:53,287 [DEBUG][       Thread-608057][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:44:53,287 [DEBUG][       Thread-608057][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:44:53,328 [DEBUG][       Thread-608057][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:44:53,328 [DEBUG][       Thread-608057][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:44:53,331 [DEBUG][       Thread-608057][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:44:53,343 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:44:53,343 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:44:53,344 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:44:53,345 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:44:53,348 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:44:53,349 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:44:53,349 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:44:53,349 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:44:53,349 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.530496 -999.00  +13.70  32.65     53   +4.30 1 2 2 1 1   887    0 8.98 -14.10 ----- 34.3 32.6 24.8 44.8 15.6 -19.4 15.1 -19.5 15.2 -17.8 15.6 -17.9
2025-07-01 14:44:53,349 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:44:53,349 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:44:53,349 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.530496
2025-07-01 14:44:53,350 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:44:53,350 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:44:53,350 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:44:53,350 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:44:53,350 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:44:53,350 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:44:43', tmtdew=10.85, humidity=48.04, cloud=0.0, wind=37.53, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:43:54.854', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:44:53,351 [DEBUG][       Thread-608057][   transport.py][1871] : EOF in transport thread
2025-07-01 14:44:53,425 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:44:53,436 [DEBUG][       Thread-608060][   transport.py][1871] : starting thread (client mode): 0x827d9f0
2025-07-01 14:44:53,436 [DEBUG][       Thread-608060][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:44:53,453 [DEBUG][       Thread-608060][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:44:53,453 [ INFO][       Thread-608060][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:44:53,464 [DEBUG][       Thread-608060][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:44:53,464 [DEBUG][       Thread-608060][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:44:53,464 [DEBUG][       Thread-608060][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:44:53,464 [DEBUG][       Thread-608060][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:44:53,464 [DEBUG][       Thread-608060][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:44:53,464 [DEBUG][       Thread-608060][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:44:53,464 [DEBUG][       Thread-608060][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:44:53,464 [DEBUG][       Thread-608060][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:44:53,464 [DEBUG][       Thread-608060][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:44:53,464 [DEBUG][       Thread-608060][   transport.py][1871] : client lang: <none>
2025-07-01 14:44:53,464 [DEBUG][       Thread-608060][   transport.py][1871] : server lang: <none>
2025-07-01 14:44:53,464 [DEBUG][       Thread-608060][   transport.py][1871] : kex follows: False
2025-07-01 14:44:53,464 [DEBUG][       Thread-608060][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:44:53,464 [DEBUG][       Thread-608060][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:44:53,464 [DEBUG][       Thread-608060][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:44:53,464 [DEBUG][       Thread-608060][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:44:53,464 [DEBUG][       Thread-608060][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:44:53,464 [DEBUG][       Thread-608060][   transport.py][1871] : Compression: none
2025-07-01 14:44:53,464 [DEBUG][       Thread-608060][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:44:53,515 [DEBUG][       Thread-608060][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:44:53,515 [DEBUG][       Thread-608060][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:44:53,515 [DEBUG][       Thread-608060][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:44:53,515 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:44:53,515 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:44:53,578 [DEBUG][       Thread-608060][   transport.py][1871] : userauth is OK
2025-07-01 14:44:53,578 [DEBUG][       Thread-608060][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:44:53,578 [DEBUG][       Thread-608060][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:44:53,578 [DEBUG][       Thread-608060][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:44:53,578 [DEBUG][       Thread-608060][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:44:53,597 [ INFO][       Thread-608060][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:44:53,597 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:44:53,597 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:44:54,631 [DEBUG][       Thread-608060][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:44:54,631 [DEBUG][       Thread-608060][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:44:54,680 [DEBUG][       Thread-608060][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:44:54,680 [DEBUG][       Thread-608060][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:44:54,690 [DEBUG][       Thread-608060][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:44:54,699 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:44:54,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-07-01 14:44:54,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-07-01 14:44:54,717 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:44:54,717 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:44:54,718 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:44:54,725 [DEBUG][       Thread-608060][   transport.py][1871] : EOF in transport thread
2025-07-01 14:45:01,319 [DEBUG][Thread-608062 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:45:04,728 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:45:04,728 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:45:04,728 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:45:04,729 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:45:05,202 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 44, 43), 10.85, 48.04, 0.0, 37.53, 13.64, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:45:05,202 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:44:43
2025-07-01 14:45:05,287 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:45:05,291 [DEBUG][       Thread-608063][   transport.py][1871] : starting thread (client mode): 0x81db7f0
2025-07-01 14:45:05,291 [DEBUG][       Thread-608063][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:45:05,312 [DEBUG][       Thread-608063][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:45:05,312 [ INFO][       Thread-608063][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:45:05,315 [DEBUG][       Thread-608063][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:45:05,315 [DEBUG][       Thread-608063][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:45:05,315 [DEBUG][       Thread-608063][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:45:05,315 [DEBUG][       Thread-608063][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:45:05,315 [DEBUG][       Thread-608063][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:45:05,315 [DEBUG][       Thread-608063][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:45:05,315 [DEBUG][       Thread-608063][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:45:05,315 [DEBUG][       Thread-608063][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:45:05,315 [DEBUG][       Thread-608063][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:45:05,315 [DEBUG][       Thread-608063][   transport.py][1871] : client lang: <none>
2025-07-01 14:45:05,315 [DEBUG][       Thread-608063][   transport.py][1871] : server lang: <none>
2025-07-01 14:45:05,315 [DEBUG][       Thread-608063][   transport.py][1871] : kex follows: False
2025-07-01 14:45:05,315 [DEBUG][       Thread-608063][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:45:05,316 [DEBUG][       Thread-608063][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:45:05,316 [DEBUG][       Thread-608063][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:45:05,316 [DEBUG][       Thread-608063][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:45:05,316 [DEBUG][       Thread-608063][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:45:05,316 [DEBUG][       Thread-608063][   transport.py][1871] : Compression: none
2025-07-01 14:45:05,316 [DEBUG][       Thread-608063][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:45:05,332 [DEBUG][       Thread-608063][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:45:05,333 [DEBUG][       Thread-608063][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:45:05,333 [DEBUG][       Thread-608063][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:45:05,334 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:45:05,334 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:45:05,377 [DEBUG][       Thread-608063][   transport.py][1871] : userauth is OK
2025-07-01 14:45:05,402 [ INFO][       Thread-608063][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:45:05,403 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:45:06,051 [DEBUG][       Thread-608063][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:45:06,052 [DEBUG][       Thread-608063][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:45:06,093 [DEBUG][       Thread-608063][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:45:06,093 [DEBUG][       Thread-608063][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:45:06,096 [DEBUG][       Thread-608063][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:45:06,107 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:45:06,108 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:45:06,109 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:45:06,111 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:45:06,116 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:45:06,118 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:45:06,118 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:45:06,118 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:45:06,118 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.530843 -999.00  +13.60  44.70     52   +4.10 1 2 2 1 1   887    0 9.09 -12.98 ----- 33.2 44.7 22.8 53.7 15.7 -19.6 15.2 -19.7 15.2 -18.1 15.6 -18.0
2025-07-01 14:45:06,119 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:45:06,119 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:45:06,119 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.530843
2025-07-01 14:45:06,119 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:45:06,120 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:45:06,120 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:45:06,120 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:45:06,120 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:45:06,120 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:44:43', tmtdew=10.85, humidity=48.04, cloud=0.0, wind=37.53, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:44:24.835', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:45:06,121 [DEBUG][       Thread-608063][   transport.py][1871] : EOF in transport thread
2025-07-01 14:45:06,203 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:45:06,213 [DEBUG][       Thread-608066][   transport.py][1871] : starting thread (client mode): 0x81078b0
2025-07-01 14:45:06,213 [DEBUG][       Thread-608066][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:45:06,229 [DEBUG][       Thread-608066][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:45:06,229 [ INFO][       Thread-608066][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:45:06,237 [DEBUG][       Thread-608066][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:45:06,237 [DEBUG][       Thread-608066][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:45:06,237 [DEBUG][       Thread-608066][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:45:06,237 [DEBUG][       Thread-608066][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:45:06,237 [DEBUG][       Thread-608066][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:45:06,237 [DEBUG][       Thread-608066][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:45:06,237 [DEBUG][       Thread-608066][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:45:06,237 [DEBUG][       Thread-608066][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:45:06,237 [DEBUG][       Thread-608066][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:45:06,237 [DEBUG][       Thread-608066][   transport.py][1871] : client lang: <none>
2025-07-01 14:45:06,237 [DEBUG][       Thread-608066][   transport.py][1871] : server lang: <none>
2025-07-01 14:45:06,237 [DEBUG][       Thread-608066][   transport.py][1871] : kex follows: False
2025-07-01 14:45:06,237 [DEBUG][       Thread-608066][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:45:06,238 [DEBUG][       Thread-608066][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:45:06,238 [DEBUG][       Thread-608066][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:45:06,238 [DEBUG][       Thread-608066][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:45:06,238 [DEBUG][       Thread-608066][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:45:06,238 [DEBUG][       Thread-608066][   transport.py][1871] : Compression: none
2025-07-01 14:45:06,238 [DEBUG][       Thread-608066][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:45:06,302 [DEBUG][       Thread-608066][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:45:06,303 [DEBUG][       Thread-608066][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:45:06,303 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:45:06,304 [DEBUG][       Thread-608066][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:45:06,304 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:45:06,363 [DEBUG][       Thread-608066][   transport.py][1871] : userauth is OK
2025-07-01 14:45:06,363 [DEBUG][       Thread-608066][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:45:06,363 [DEBUG][       Thread-608066][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:45:06,363 [DEBUG][       Thread-608066][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:45:06,363 [DEBUG][       Thread-608066][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:45:06,382 [ INFO][       Thread-608066][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:45:06,382 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:45:06,382 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:45:07,434 [DEBUG][       Thread-608066][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:45:07,435 [DEBUG][       Thread-608066][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:45:07,488 [DEBUG][       Thread-608066][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:45:07,488 [DEBUG][       Thread-608066][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:45:07,498 [DEBUG][       Thread-608066][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:45:07,506 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:45:07,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-07-01 14:45:07,514 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 14:45:07,523 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:45:07,523 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:45:07,524 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:45:07,531 [DEBUG][       Thread-608066][   transport.py][1871] : EOF in transport thread
2025-07-01 14:45:10,351 [DEBUG][Thread-608068 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:45:17,528 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:45:17,529 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:45:17,529 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:45:17,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-07-01 14:45:18,019 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 45, 15), 10.87, 47.75, 0.0, 34.85, 13.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:45:18,019 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:45:15
2025-07-01 14:45:18,105 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:45:18,111 [DEBUG][       Thread-608069][   transport.py][1871] : starting thread (client mode): 0x8173670
2025-07-01 14:45:18,111 [DEBUG][       Thread-608069][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:45:18,131 [DEBUG][       Thread-608069][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:45:18,131 [ INFO][       Thread-608069][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:45:18,134 [DEBUG][       Thread-608069][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:45:18,134 [DEBUG][       Thread-608069][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:45:18,134 [DEBUG][       Thread-608069][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:45:18,135 [DEBUG][       Thread-608069][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:45:18,135 [DEBUG][       Thread-608069][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:45:18,135 [DEBUG][       Thread-608069][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:45:18,135 [DEBUG][       Thread-608069][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:45:18,135 [DEBUG][       Thread-608069][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:45:18,135 [DEBUG][       Thread-608069][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:45:18,135 [DEBUG][       Thread-608069][   transport.py][1871] : client lang: <none>
2025-07-01 14:45:18,135 [DEBUG][       Thread-608069][   transport.py][1871] : server lang: <none>
2025-07-01 14:45:18,135 [DEBUG][       Thread-608069][   transport.py][1871] : kex follows: False
2025-07-01 14:45:18,135 [DEBUG][       Thread-608069][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:45:18,135 [DEBUG][       Thread-608069][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:45:18,135 [DEBUG][       Thread-608069][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:45:18,135 [DEBUG][       Thread-608069][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:45:18,135 [DEBUG][       Thread-608069][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:45:18,135 [DEBUG][       Thread-608069][   transport.py][1871] : Compression: none
2025-07-01 14:45:18,135 [DEBUG][       Thread-608069][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:45:18,152 [DEBUG][       Thread-608069][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:45:18,152 [DEBUG][       Thread-608069][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:45:18,153 [DEBUG][       Thread-608069][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:45:18,153 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:45:18,153 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:45:18,154 [DEBUG][       Thread-608069][   transport.py][1871] : userauth is OK
2025-07-01 14:45:18,167 [ INFO][       Thread-608069][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:45:18,167 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:45:18,842 [DEBUG][       Thread-608069][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:45:18,842 [DEBUG][       Thread-608069][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:45:18,885 [DEBUG][       Thread-608069][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:45:18,885 [DEBUG][       Thread-608069][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:45:18,888 [DEBUG][       Thread-608069][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:45:18,900 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:45:18,900 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:45:18,902 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:45:18,904 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:45:18,910 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:45:18,912 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:45:18,912 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:45:18,913 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:45:18,913 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.530843 -999.00  +13.60  44.70     52   +4.10 1 2 2 1 1   887    0 9.09 -12.98 ----- 33.2 44.7 22.8 53.7 15.7 -19.6 15.2 -19.7 15.2 -18.1 15.6 -18.0
2025-07-01 14:45:18,913 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:45:18,913 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:45:18,914 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.530843
2025-07-01 14:45:18,914 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:45:18,915 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:45:18,915 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:45:18,915 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:45:18,915 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:45:18,915 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:45:15', tmtdew=10.87, humidity=47.75, cloud=0.0, wind=34.85, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:44:24.835', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:45:18,915 [DEBUG][       Thread-608069][   transport.py][1871] : EOF in transport thread
2025-07-01 14:45:19,002 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:45:19,016 [DEBUG][       Thread-608072][   transport.py][1871] : starting thread (client mode): 0x81c87f0
2025-07-01 14:45:19,016 [DEBUG][       Thread-608072][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:45:19,031 [DEBUG][       Thread-608072][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:45:19,031 [ INFO][       Thread-608072][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:45:19,039 [DEBUG][       Thread-608072][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:45:19,039 [DEBUG][       Thread-608072][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:45:19,039 [DEBUG][       Thread-608072][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:45:19,039 [DEBUG][       Thread-608072][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:45:19,039 [DEBUG][       Thread-608072][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:45:19,039 [DEBUG][       Thread-608072][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:45:19,039 [DEBUG][       Thread-608072][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:45:19,039 [DEBUG][       Thread-608072][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:45:19,039 [DEBUG][       Thread-608072][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:45:19,039 [DEBUG][       Thread-608072][   transport.py][1871] : client lang: <none>
2025-07-01 14:45:19,039 [DEBUG][       Thread-608072][   transport.py][1871] : server lang: <none>
2025-07-01 14:45:19,039 [DEBUG][       Thread-608072][   transport.py][1871] : kex follows: False
2025-07-01 14:45:19,039 [DEBUG][       Thread-608072][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:45:19,039 [DEBUG][       Thread-608072][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:45:19,039 [DEBUG][       Thread-608072][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:45:19,040 [DEBUG][       Thread-608072][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:45:19,040 [DEBUG][       Thread-608072][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:45:19,040 [DEBUG][       Thread-608072][   transport.py][1871] : Compression: none
2025-07-01 14:45:19,040 [DEBUG][       Thread-608072][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:45:19,097 [DEBUG][       Thread-608072][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:45:19,097 [DEBUG][       Thread-608072][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:45:19,098 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:45:19,099 [DEBUG][       Thread-608072][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:45:19,099 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:45:19,153 [DEBUG][       Thread-608072][   transport.py][1871] : userauth is OK
2025-07-01 14:45:19,153 [DEBUG][       Thread-608072][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:45:19,153 [DEBUG][       Thread-608072][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:45:19,153 [DEBUG][       Thread-608072][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:45:19,154 [DEBUG][       Thread-608072][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:45:19,172 [ INFO][       Thread-608072][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:45:19,173 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:45:19,173 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:45:19,373 [DEBUG][Thread-608074 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:45:20,202 [DEBUG][       Thread-608072][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:45:20,202 [DEBUG][       Thread-608072][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:45:20,252 [DEBUG][       Thread-608072][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:45:20,252 [DEBUG][       Thread-608072][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:45:20,261 [DEBUG][       Thread-608072][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:45:20,270 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:45:20,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-07-01 14:45:20,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-07-01 14:45:20,286 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:45:20,286 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:45:20,286 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:45:20,294 [DEBUG][       Thread-608072][   transport.py][1871] : EOF in transport thread
2025-07-01 14:45:28,406 [DEBUG][Thread-608075 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:45:30,296 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:45:30,296 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:45:30,296 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:45:30,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-07-01 14:45:30,777 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 45, 15), 10.87, 47.75, 0.0, 34.85, 13.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:45:30,777 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:45:15
2025-07-01 14:45:30,870 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:45:30,876 [DEBUG][       Thread-608076][   transport.py][1871] : starting thread (client mode): 0x81c8430
2025-07-01 14:45:30,877 [DEBUG][       Thread-608076][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:45:30,895 [DEBUG][       Thread-608076][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:45:30,895 [ INFO][       Thread-608076][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:45:30,898 [DEBUG][       Thread-608076][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:45:30,898 [DEBUG][       Thread-608076][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:45:30,898 [DEBUG][       Thread-608076][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:45:30,898 [DEBUG][       Thread-608076][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:45:30,898 [DEBUG][       Thread-608076][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:45:30,898 [DEBUG][       Thread-608076][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:45:30,898 [DEBUG][       Thread-608076][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:45:30,898 [DEBUG][       Thread-608076][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:45:30,898 [DEBUG][       Thread-608076][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:45:30,898 [DEBUG][       Thread-608076][   transport.py][1871] : client lang: <none>
2025-07-01 14:45:30,898 [DEBUG][       Thread-608076][   transport.py][1871] : server lang: <none>
2025-07-01 14:45:30,898 [DEBUG][       Thread-608076][   transport.py][1871] : kex follows: False
2025-07-01 14:45:30,898 [DEBUG][       Thread-608076][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:45:30,898 [DEBUG][       Thread-608076][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:45:30,898 [DEBUG][       Thread-608076][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:45:30,898 [DEBUG][       Thread-608076][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:45:30,898 [DEBUG][       Thread-608076][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:45:30,898 [DEBUG][       Thread-608076][   transport.py][1871] : Compression: none
2025-07-01 14:45:30,898 [DEBUG][       Thread-608076][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:45:30,914 [DEBUG][       Thread-608076][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:45:30,914 [DEBUG][       Thread-608076][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:45:30,914 [DEBUG][       Thread-608076][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:45:30,914 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:45:30,914 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:45:30,915 [DEBUG][       Thread-608076][   transport.py][1871] : userauth is OK
2025-07-01 14:45:30,928 [ INFO][       Thread-608076][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:45:30,928 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:45:31,579 [DEBUG][       Thread-608076][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:45:31,579 [DEBUG][       Thread-608076][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:45:31,620 [DEBUG][       Thread-608076][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:45:31,620 [DEBUG][       Thread-608076][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:45:31,622 [DEBUG][       Thread-608076][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:45:31,627 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:45:31,627 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:45:31,628 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:45:31,628 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:45:31,631 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:45:31,631 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:45:31,631 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:45:31,631 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:45:31,632 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.531538 -999.00  +13.70  39.37     52   +4.10 1 2 2 1 1   887    0 9.09 -10.05 ----- 39.3 39.4 29.8 47.5 15.7 -19.0 15.2 -19.2 15.3 -17.6 15.8 -17.5
2025-07-01 14:45:31,632 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:45:31,632 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:45:31,632 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.531538
2025-07-01 14:45:31,632 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:45:31,632 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:45:31,632 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:45:31,632 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:45:31,632 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:45:31,632 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:45:15', tmtdew=10.87, humidity=47.75, cloud=0.0, wind=34.85, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:45:24.883', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:45:31,633 [DEBUG][       Thread-608076][   transport.py][1871] : EOF in transport thread
2025-07-01 14:45:31,707 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:45:31,719 [DEBUG][       Thread-608079][   transport.py][1871] : starting thread (client mode): 0x81e79a0
2025-07-01 14:45:31,719 [DEBUG][       Thread-608079][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:45:31,734 [DEBUG][       Thread-608079][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:45:31,734 [ INFO][       Thread-608079][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:45:31,741 [DEBUG][       Thread-608079][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:45:31,741 [DEBUG][       Thread-608079][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:45:31,741 [DEBUG][       Thread-608079][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:45:31,741 [DEBUG][       Thread-608079][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:45:31,741 [DEBUG][       Thread-608079][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:45:31,741 [DEBUG][       Thread-608079][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:45:31,741 [DEBUG][       Thread-608079][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:45:31,741 [DEBUG][       Thread-608079][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:45:31,741 [DEBUG][       Thread-608079][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:45:31,741 [DEBUG][       Thread-608079][   transport.py][1871] : client lang: <none>
2025-07-01 14:45:31,741 [DEBUG][       Thread-608079][   transport.py][1871] : server lang: <none>
2025-07-01 14:45:31,741 [DEBUG][       Thread-608079][   transport.py][1871] : kex follows: False
2025-07-01 14:45:31,741 [DEBUG][       Thread-608079][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:45:31,741 [DEBUG][       Thread-608079][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:45:31,741 [DEBUG][       Thread-608079][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:45:31,741 [DEBUG][       Thread-608079][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:45:31,741 [DEBUG][       Thread-608079][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:45:31,741 [DEBUG][       Thread-608079][   transport.py][1871] : Compression: none
2025-07-01 14:45:31,741 [DEBUG][       Thread-608079][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:45:31,799 [DEBUG][       Thread-608079][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:45:31,799 [DEBUG][       Thread-608079][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:45:31,799 [DEBUG][       Thread-608079][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:45:31,799 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:45:31,800 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:45:31,857 [DEBUG][       Thread-608079][   transport.py][1871] : userauth is OK
2025-07-01 14:45:31,857 [DEBUG][       Thread-608079][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:45:31,857 [DEBUG][       Thread-608079][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:45:31,857 [DEBUG][       Thread-608079][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:45:31,857 [DEBUG][       Thread-608079][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:45:31,871 [ INFO][       Thread-608079][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:45:31,871 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:45:31,871 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:45:32,914 [DEBUG][       Thread-608079][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:45:32,914 [DEBUG][       Thread-608079][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:45:32,967 [DEBUG][       Thread-608079][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:45:32,967 [DEBUG][       Thread-608079][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:45:32,981 [DEBUG][       Thread-608079][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:45:32,992 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:45:32,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-07-01 14:45:33,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-07-01 14:45:33,017 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:45:33,017 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:45:33,018 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:45:33,025 [DEBUG][       Thread-608079][   transport.py][1871] : EOF in transport thread
2025-07-01 14:45:35,538 [DEBUG][Thread-608081 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:45:37,428 [DEBUG][Thread-608082 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:45:43,028 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:45:43,028 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:45:43,028 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:45:43,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-07-01 14:45:43,505 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 45, 15), 10.87, 47.75, 0.0, 34.85, 13.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:45:43,505 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:45:15
2025-07-01 14:45:43,590 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:45:43,594 [DEBUG][       Thread-608083][   transport.py][1871] : starting thread (client mode): 0x81c87f0
2025-07-01 14:45:43,594 [DEBUG][       Thread-608083][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:45:43,615 [DEBUG][       Thread-608083][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:45:43,615 [ INFO][       Thread-608083][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:45:43,618 [DEBUG][       Thread-608083][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:45:43,618 [DEBUG][       Thread-608083][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:45:43,618 [DEBUG][       Thread-608083][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:45:43,618 [DEBUG][       Thread-608083][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:45:43,618 [DEBUG][       Thread-608083][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:45:43,618 [DEBUG][       Thread-608083][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:45:43,618 [DEBUG][       Thread-608083][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:45:43,618 [DEBUG][       Thread-608083][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:45:43,618 [DEBUG][       Thread-608083][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:45:43,618 [DEBUG][       Thread-608083][   transport.py][1871] : client lang: <none>
2025-07-01 14:45:43,618 [DEBUG][       Thread-608083][   transport.py][1871] : server lang: <none>
2025-07-01 14:45:43,619 [DEBUG][       Thread-608083][   transport.py][1871] : kex follows: False
2025-07-01 14:45:43,619 [DEBUG][       Thread-608083][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:45:43,619 [DEBUG][       Thread-608083][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:45:43,619 [DEBUG][       Thread-608083][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:45:43,619 [DEBUG][       Thread-608083][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:45:43,619 [DEBUG][       Thread-608083][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:45:43,619 [DEBUG][       Thread-608083][   transport.py][1871] : Compression: none
2025-07-01 14:45:43,619 [DEBUG][       Thread-608083][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:45:43,636 [DEBUG][       Thread-608083][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:45:43,636 [DEBUG][       Thread-608083][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:45:43,637 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:45:43,637 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:45:43,638 [DEBUG][       Thread-608083][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:45:43,638 [DEBUG][       Thread-608083][   transport.py][1871] : userauth is OK
2025-07-01 14:45:43,652 [ INFO][       Thread-608083][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:45:43,652 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:45:44,304 [DEBUG][       Thread-608083][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:45:44,304 [DEBUG][       Thread-608083][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:45:44,345 [DEBUG][       Thread-608083][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:45:44,345 [DEBUG][       Thread-608083][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:45:44,348 [DEBUG][       Thread-608083][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:45:44,360 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:45:44,361 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:45:44,362 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:45:44,364 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:45:44,370 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:45:44,372 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:45:44,372 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:45:44,373 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:45:44,373 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.531538 -999.00  +13.70  39.37     52   +4.10 1 2 2 1 1   887    0 9.09 -10.05 ----- 39.3 39.4 29.8 47.5 15.7 -19.0 15.2 -19.2 15.3 -17.6 15.8 -17.5
2025-07-01 14:45:44,373 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:45:44,373 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:45:44,373 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.531538
2025-07-01 14:45:44,374 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:45:44,374 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:45:44,374 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:45:44,375 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:45:44,375 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:45:44,375 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:45:15', tmtdew=10.87, humidity=47.75, cloud=0.0, wind=34.85, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:45:24.883', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:45:44,376 [DEBUG][       Thread-608083][   transport.py][1871] : EOF in transport thread
2025-07-01 14:45:44,458 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:45:44,467 [DEBUG][       Thread-608086][   transport.py][1871] : starting thread (client mode): 0x82b24a0
2025-07-01 14:45:44,467 [DEBUG][       Thread-608086][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:45:44,482 [DEBUG][       Thread-608086][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:45:44,482 [ INFO][       Thread-608086][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:45:44,490 [DEBUG][       Thread-608086][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:45:44,490 [DEBUG][       Thread-608086][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:45:44,490 [DEBUG][       Thread-608086][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:45:44,490 [DEBUG][       Thread-608086][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:45:44,490 [DEBUG][       Thread-608086][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:45:44,490 [DEBUG][       Thread-608086][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:45:44,490 [DEBUG][       Thread-608086][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:45:44,490 [DEBUG][       Thread-608086][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:45:44,490 [DEBUG][       Thread-608086][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:45:44,490 [DEBUG][       Thread-608086][   transport.py][1871] : client lang: <none>
2025-07-01 14:45:44,490 [DEBUG][       Thread-608086][   transport.py][1871] : server lang: <none>
2025-07-01 14:45:44,490 [DEBUG][       Thread-608086][   transport.py][1871] : kex follows: False
2025-07-01 14:45:44,490 [DEBUG][       Thread-608086][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:45:44,490 [DEBUG][       Thread-608086][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:45:44,490 [DEBUG][       Thread-608086][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:45:44,490 [DEBUG][       Thread-608086][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:45:44,490 [DEBUG][       Thread-608086][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:45:44,490 [DEBUG][       Thread-608086][   transport.py][1871] : Compression: none
2025-07-01 14:45:44,491 [DEBUG][       Thread-608086][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:45:44,550 [DEBUG][       Thread-608086][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:45:44,550 [DEBUG][       Thread-608086][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:45:44,551 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:45:44,552 [DEBUG][       Thread-608086][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:45:44,552 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:45:44,610 [DEBUG][       Thread-608086][   transport.py][1871] : userauth is OK
2025-07-01 14:45:44,610 [DEBUG][       Thread-608086][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:45:44,610 [DEBUG][       Thread-608086][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:45:44,610 [DEBUG][       Thread-608086][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:45:44,610 [DEBUG][       Thread-608086][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:45:44,633 [ INFO][       Thread-608086][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:45:44,633 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:45:44,634 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:45:45,635 [DEBUG][       Thread-608086][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:45:45,635 [DEBUG][       Thread-608086][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:45:45,684 [DEBUG][       Thread-608086][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:45:45,684 [DEBUG][       Thread-608086][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:45:45,693 [DEBUG][       Thread-608086][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:45:45,702 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:45:45,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-07-01 14:45:45,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-07-01 14:45:45,720 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:45:45,721 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:45:45,721 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:45:45,729 [DEBUG][       Thread-608086][   transport.py][1871] : EOF in transport thread
2025-07-01 14:45:46,452 [DEBUG][Thread-608088 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:45:55,475 [DEBUG][Thread-608089 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:45:55,728 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:45:55,728 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:45:55,728 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:45:55,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-07-01 14:45:56,224 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 45, 46), 10.92, 47.61, 0.0, 40.26, 13.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:45:56,224 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:45:46
2025-07-01 14:45:56,310 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:45:56,316 [DEBUG][       Thread-608090][   transport.py][1871] : starting thread (client mode): 0x81c8370
2025-07-01 14:45:56,316 [DEBUG][       Thread-608090][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:45:56,336 [DEBUG][       Thread-608090][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:45:56,336 [ INFO][       Thread-608090][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:45:56,339 [DEBUG][       Thread-608090][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:45:56,339 [DEBUG][       Thread-608090][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:45:56,339 [DEBUG][       Thread-608090][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:45:56,339 [DEBUG][       Thread-608090][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:45:56,339 [DEBUG][       Thread-608090][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:45:56,339 [DEBUG][       Thread-608090][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:45:56,339 [DEBUG][       Thread-608090][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:45:56,339 [DEBUG][       Thread-608090][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:45:56,339 [DEBUG][       Thread-608090][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:45:56,339 [DEBUG][       Thread-608090][   transport.py][1871] : client lang: <none>
2025-07-01 14:45:56,339 [DEBUG][       Thread-608090][   transport.py][1871] : server lang: <none>
2025-07-01 14:45:56,340 [DEBUG][       Thread-608090][   transport.py][1871] : kex follows: False
2025-07-01 14:45:56,340 [DEBUG][       Thread-608090][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:45:56,340 [DEBUG][       Thread-608090][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:45:56,340 [DEBUG][       Thread-608090][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:45:56,340 [DEBUG][       Thread-608090][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:45:56,340 [DEBUG][       Thread-608090][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:45:56,340 [DEBUG][       Thread-608090][   transport.py][1871] : Compression: none
2025-07-01 14:45:56,340 [DEBUG][       Thread-608090][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:45:56,357 [DEBUG][       Thread-608090][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:45:56,357 [DEBUG][       Thread-608090][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:45:56,358 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:45:56,358 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:45:56,358 [DEBUG][       Thread-608090][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:45:56,359 [DEBUG][       Thread-608090][   transport.py][1871] : userauth is OK
2025-07-01 14:45:56,373 [ INFO][       Thread-608090][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:45:56,374 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:45:57,028 [DEBUG][       Thread-608090][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:45:57,029 [DEBUG][       Thread-608090][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:45:57,073 [DEBUG][       Thread-608090][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:45:57,073 [DEBUG][       Thread-608090][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:45:57,077 [DEBUG][       Thread-608090][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:45:57,090 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:45:57,090 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:45:57,092 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:45:57,094 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:45:57,100 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:45:57,102 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:45:57,102 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:45:57,103 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:45:57,103 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.531538 -999.00  +13.70  39.37     52   +4.10 1 2 2 1 1   887    0 9.09 -10.05 ----- 39.3 39.4 29.8 47.5 15.7 -19.0 15.2 -19.2 15.3 -17.6 15.8 -17.5
2025-07-01 14:45:57,103 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:45:57,103 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:45:57,103 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.531538
2025-07-01 14:45:57,104 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:45:57,105 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:45:57,105 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:45:57,105 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:45:57,105 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:45:57,105 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:45:46', tmtdew=10.92, humidity=47.61, cloud=0.0, wind=40.26, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:45:24.883', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:45:57,105 [DEBUG][       Thread-608090][   transport.py][1871] : EOF in transport thread
2025-07-01 14:45:57,189 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:45:57,203 [DEBUG][       Thread-608093][   transport.py][1871] : starting thread (client mode): 0x81e7310
2025-07-01 14:45:57,203 [DEBUG][       Thread-608093][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:45:57,218 [DEBUG][       Thread-608093][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:45:57,218 [ INFO][       Thread-608093][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:45:57,226 [DEBUG][       Thread-608093][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:45:57,226 [DEBUG][       Thread-608093][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:45:57,226 [DEBUG][       Thread-608093][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:45:57,226 [DEBUG][       Thread-608093][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:45:57,226 [DEBUG][       Thread-608093][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:45:57,226 [DEBUG][       Thread-608093][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:45:57,226 [DEBUG][       Thread-608093][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:45:57,226 [DEBUG][       Thread-608093][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:45:57,226 [DEBUG][       Thread-608093][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:45:57,226 [DEBUG][       Thread-608093][   transport.py][1871] : client lang: <none>
2025-07-01 14:45:57,226 [DEBUG][       Thread-608093][   transport.py][1871] : server lang: <none>
2025-07-01 14:45:57,226 [DEBUG][       Thread-608093][   transport.py][1871] : kex follows: False
2025-07-01 14:45:57,226 [DEBUG][       Thread-608093][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:45:57,226 [DEBUG][       Thread-608093][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:45:57,227 [DEBUG][       Thread-608093][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:45:57,227 [DEBUG][       Thread-608093][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:45:57,227 [DEBUG][       Thread-608093][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:45:57,227 [DEBUG][       Thread-608093][   transport.py][1871] : Compression: none
2025-07-01 14:45:57,227 [DEBUG][       Thread-608093][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:45:57,286 [DEBUG][       Thread-608093][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:45:57,286 [DEBUG][       Thread-608093][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:45:57,287 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:45:57,287 [DEBUG][       Thread-608093][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:45:57,288 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:45:57,343 [DEBUG][       Thread-608093][   transport.py][1871] : userauth is OK
2025-07-01 14:45:57,343 [DEBUG][       Thread-608093][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:45:57,343 [DEBUG][       Thread-608093][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:45:57,343 [DEBUG][       Thread-608093][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:45:57,343 [DEBUG][       Thread-608093][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:45:57,370 [ INFO][       Thread-608093][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:45:57,371 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:45:57,371 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:45:58,427 [DEBUG][       Thread-608093][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:45:58,427 [DEBUG][       Thread-608093][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:45:58,476 [DEBUG][       Thread-608093][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:45:58,476 [DEBUG][       Thread-608093][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:45:58,485 [DEBUG][       Thread-608093][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:45:58,494 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:45:58,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')
2025-07-01 14:45: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') -> 00000000
2025-07-01 14:45:58,512 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:45:58,512 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:45:58,513 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:45:58,520 [DEBUG][       Thread-608093][   transport.py][1871] : EOF in transport thread
2025-07-01 14:46:04,496 [DEBUG][Thread-608095 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:46:08,523 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:46:08,523 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:46:08,523 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:46:08,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-07-01 14:46:09,004 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 45, 46), 10.92, 47.61, 0.0, 40.26, 13.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:46:09,005 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:45:46
2025-07-01 14:46:09,098 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:46:09,101 [DEBUG][       Thread-608096][   transport.py][1871] : starting thread (client mode): 0x81ca5f0
2025-07-01 14:46:09,101 [DEBUG][       Thread-608096][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:46:09,123 [DEBUG][       Thread-608096][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:46:09,123 [ INFO][       Thread-608096][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:46:09,126 [DEBUG][       Thread-608096][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:46:09,126 [DEBUG][       Thread-608096][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:46:09,126 [DEBUG][       Thread-608096][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:46:09,126 [DEBUG][       Thread-608096][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:46:09,126 [DEBUG][       Thread-608096][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:46:09,126 [DEBUG][       Thread-608096][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:46:09,126 [DEBUG][       Thread-608096][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:46:09,126 [DEBUG][       Thread-608096][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:46:09,126 [DEBUG][       Thread-608096][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:46:09,126 [DEBUG][       Thread-608096][   transport.py][1871] : client lang: <none>
2025-07-01 14:46:09,126 [DEBUG][       Thread-608096][   transport.py][1871] : server lang: <none>
2025-07-01 14:46:09,126 [DEBUG][       Thread-608096][   transport.py][1871] : kex follows: False
2025-07-01 14:46:09,126 [DEBUG][       Thread-608096][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:46:09,126 [DEBUG][       Thread-608096][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:46:09,126 [DEBUG][       Thread-608096][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:46:09,126 [DEBUG][       Thread-608096][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:46:09,126 [DEBUG][       Thread-608096][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:46:09,126 [DEBUG][       Thread-608096][   transport.py][1871] : Compression: none
2025-07-01 14:46:09,126 [DEBUG][       Thread-608096][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:46:09,141 [DEBUG][       Thread-608096][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:46:09,141 [DEBUG][       Thread-608096][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:46:09,141 [DEBUG][       Thread-608096][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:46:09,141 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:46:09,141 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:46:09,142 [DEBUG][       Thread-608096][   transport.py][1871] : userauth is OK
2025-07-01 14:46:09,166 [ INFO][       Thread-608096][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:46:09,166 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:46:09,805 [DEBUG][       Thread-608096][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:46:09,805 [DEBUG][       Thread-608096][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:46:09,848 [DEBUG][       Thread-608096][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:46:09,848 [DEBUG][       Thread-608096][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:46:09,851 [DEBUG][       Thread-608096][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:46:09,864 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:46:09,864 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:46:09,865 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:46:09,866 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:46:09,869 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:46:09,870 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:46:09,870 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:46:09,870 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:46:09,870 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.531885 -999.00  +13.60  47.07     51   +3.90 1 2 2 1 1   887    0 9.23 -8.81 ----- 41.5 47.1 29.0 53.8 15.7 -20.0 15.2 -19.5 15.2 -17.7 15.8 -17.4
2025-07-01 14:46:09,870 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:46:09,871 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:46:09,871 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.531885
2025-07-01 14:46:09,871 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:46:09,871 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:46:09,871 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:46:09,871 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:46:09,871 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:46:09,871 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:45:46', tmtdew=10.92, humidity=47.61, cloud=0.0, wind=40.26, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:45:54.864', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:46:09,872 [DEBUG][       Thread-608096][   transport.py][1871] : EOF in transport thread
2025-07-01 14:46:09,946 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:46:09,955 [DEBUG][       Thread-608099][   transport.py][1871] : starting thread (client mode): 0x81d9720
2025-07-01 14:46:09,955 [DEBUG][       Thread-608099][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:46:09,972 [DEBUG][       Thread-608099][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:46:09,972 [ INFO][       Thread-608099][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:46:09,982 [DEBUG][       Thread-608099][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:46:09,982 [DEBUG][       Thread-608099][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:46:09,982 [DEBUG][       Thread-608099][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:46:09,982 [DEBUG][       Thread-608099][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:46:09,982 [DEBUG][       Thread-608099][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:46:09,982 [DEBUG][       Thread-608099][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:46:09,982 [DEBUG][       Thread-608099][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:46:09,982 [DEBUG][       Thread-608099][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:46:09,982 [DEBUG][       Thread-608099][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:46:09,982 [DEBUG][       Thread-608099][   transport.py][1871] : client lang: <none>
2025-07-01 14:46:09,982 [DEBUG][       Thread-608099][   transport.py][1871] : server lang: <none>
2025-07-01 14:46:09,982 [DEBUG][       Thread-608099][   transport.py][1871] : kex follows: False
2025-07-01 14:46:09,982 [DEBUG][       Thread-608099][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:46:09,982 [DEBUG][       Thread-608099][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:46:09,982 [DEBUG][       Thread-608099][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:46:09,983 [DEBUG][       Thread-608099][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:46:09,983 [DEBUG][       Thread-608099][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:46:09,983 [DEBUG][       Thread-608099][   transport.py][1871] : Compression: none
2025-07-01 14:46:09,983 [DEBUG][       Thread-608099][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:46:10,040 [DEBUG][       Thread-608099][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:46:10,040 [DEBUG][       Thread-608099][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:46:10,041 [DEBUG][       Thread-608099][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:46:10,041 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:46:10,041 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:46:10,097 [DEBUG][       Thread-608099][   transport.py][1871] : userauth is OK
2025-07-01 14:46:10,097 [DEBUG][       Thread-608099][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:46:10,097 [DEBUG][       Thread-608099][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:46:10,097 [DEBUG][       Thread-608099][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:46:10,097 [DEBUG][       Thread-608099][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:46:10,111 [ INFO][       Thread-608099][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:46:10,112 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:46:10,112 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:46:11,152 [DEBUG][       Thread-608099][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:46:11,152 [DEBUG][       Thread-608099][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:46:11,199 [DEBUG][       Thread-608099][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:46:11,199 [DEBUG][       Thread-608099][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:46:11,208 [DEBUG][       Thread-608099][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:46:11,216 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:46:11,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-07-01 14:46:11,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-07-01 14:46:11,232 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:46:11,232 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:46:11,232 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:46:11,240 [DEBUG][       Thread-608099][   transport.py][1871] : EOF in transport thread
2025-07-01 14:46:13,526 [DEBUG][Thread-608101 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:46:21,242 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:46:21,242 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:46:21,242 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:46:21,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-07-01 14:46:21,731 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 46, 18), 11.02, 47.52, 0.0, 41.46, 13.76, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:46:21,731 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:46:18
2025-07-01 14:46:21,816 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:46:21,821 [DEBUG][       Thread-608102][   transport.py][1871] : starting thread (client mode): 0x75abf70
2025-07-01 14:46:21,821 [DEBUG][       Thread-608102][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:46:21,842 [DEBUG][       Thread-608102][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:46:21,842 [ INFO][       Thread-608102][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:46:21,844 [DEBUG][       Thread-608102][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:46:21,844 [DEBUG][       Thread-608102][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:46:21,844 [DEBUG][       Thread-608102][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:46:21,844 [DEBUG][       Thread-608102][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:46:21,844 [DEBUG][       Thread-608102][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:46:21,844 [DEBUG][       Thread-608102][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:46:21,844 [DEBUG][       Thread-608102][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:46:21,844 [DEBUG][       Thread-608102][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:46:21,844 [DEBUG][       Thread-608102][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:46:21,844 [DEBUG][       Thread-608102][   transport.py][1871] : client lang: <none>
2025-07-01 14:46:21,844 [DEBUG][       Thread-608102][   transport.py][1871] : server lang: <none>
2025-07-01 14:46:21,844 [DEBUG][       Thread-608102][   transport.py][1871] : kex follows: False
2025-07-01 14:46:21,844 [DEBUG][       Thread-608102][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:46:21,844 [DEBUG][       Thread-608102][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:46:21,844 [DEBUG][       Thread-608102][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:46:21,844 [DEBUG][       Thread-608102][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:46:21,844 [DEBUG][       Thread-608102][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:46:21,844 [DEBUG][       Thread-608102][   transport.py][1871] : Compression: none
2025-07-01 14:46:21,844 [DEBUG][       Thread-608102][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:46:21,857 [DEBUG][       Thread-608102][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:46:21,858 [DEBUG][       Thread-608102][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:46:21,858 [DEBUG][       Thread-608102][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:46:21,859 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:46:21,859 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:46:21,860 [DEBUG][       Thread-608102][   transport.py][1871] : userauth is OK
2025-07-01 14:46:21,884 [ INFO][       Thread-608102][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:46:21,885 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:46:22,545 [DEBUG][Thread-608104 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:46:22,549 [DEBUG][       Thread-608102][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:46:22,549 [DEBUG][       Thread-608102][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:46:22,593 [DEBUG][       Thread-608102][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:46:22,593 [DEBUG][       Thread-608102][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:46:22,595 [DEBUG][       Thread-608102][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:46:22,601 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:46:22,601 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:46:22,602 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:46:22,603 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:46:22,606 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:46:22,607 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:46:22,607 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:46:22,607 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:46:22,607 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.531885 -999.00  +13.60  47.07     51   +3.90 1 2 2 1 1   887    0 9.23 -8.81 ----- 41.5 47.1 29.0 53.8 15.7 -20.0 15.2 -19.5 15.2 -17.7 15.8 -17.4
2025-07-01 14:46:22,607 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:46:22,607 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:46:22,607 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.531885
2025-07-01 14:46:22,607 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:46:22,607 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:46:22,607 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:46:22,607 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:46:22,607 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:46:22,608 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:46:18', tmtdew=11.02, humidity=47.52, cloud=0.0, wind=41.46, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:45:54.864', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:46:22,608 [DEBUG][       Thread-608102][   transport.py][1871] : EOF in transport thread
2025-07-01 14:46:22,687 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:46:22,698 [DEBUG][       Thread-608106][   transport.py][1871] : starting thread (client mode): 0x82b1f30
2025-07-01 14:46:22,698 [DEBUG][       Thread-608106][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:46:22,713 [DEBUG][       Thread-608106][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:46:22,713 [ INFO][       Thread-608106][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:46:22,720 [DEBUG][       Thread-608106][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:46:22,721 [DEBUG][       Thread-608106][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:46:22,721 [DEBUG][       Thread-608106][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:46:22,721 [DEBUG][       Thread-608106][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:46:22,721 [DEBUG][       Thread-608106][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:46:22,721 [DEBUG][       Thread-608106][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:46:22,721 [DEBUG][       Thread-608106][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:46:22,721 [DEBUG][       Thread-608106][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:46:22,721 [DEBUG][       Thread-608106][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:46:22,721 [DEBUG][       Thread-608106][   transport.py][1871] : client lang: <none>
2025-07-01 14:46:22,721 [DEBUG][       Thread-608106][   transport.py][1871] : server lang: <none>
2025-07-01 14:46:22,721 [DEBUG][       Thread-608106][   transport.py][1871] : kex follows: False
2025-07-01 14:46:22,721 [DEBUG][       Thread-608106][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:46:22,721 [DEBUG][       Thread-608106][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:46:22,721 [DEBUG][       Thread-608106][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:46:22,721 [DEBUG][       Thread-608106][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:46:22,721 [DEBUG][       Thread-608106][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:46:22,721 [DEBUG][       Thread-608106][   transport.py][1871] : Compression: none
2025-07-01 14:46:22,721 [DEBUG][       Thread-608106][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:46:22,777 [DEBUG][       Thread-608106][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:46:22,778 [DEBUG][       Thread-608106][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:46:22,779 [DEBUG][       Thread-608106][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:46:22,779 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:46:22,779 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:46:22,834 [DEBUG][       Thread-608106][   transport.py][1871] : userauth is OK
2025-07-01 14:46:22,834 [DEBUG][       Thread-608106][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:46:22,835 [DEBUG][       Thread-608106][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:46:22,835 [DEBUG][       Thread-608106][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:46:22,835 [DEBUG][       Thread-608106][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:46:22,853 [ INFO][       Thread-608106][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:46:22,854 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:46:22,854 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:46:23,838 [DEBUG][       Thread-608106][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:46:23,838 [DEBUG][       Thread-608106][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:46:23,890 [DEBUG][       Thread-608106][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:46:23,890 [DEBUG][       Thread-608106][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:46:23,899 [DEBUG][       Thread-608106][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:46:23,916 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:46: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')
2025-07-01 14:46:23,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-07-01 14:46:23,935 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:46:23,936 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:46:23,936 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:46:23,945 [DEBUG][       Thread-608106][   transport.py][1871] : EOF in transport thread
2025-07-01 14:46:31,567 [DEBUG][Thread-608108 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:46:33,947 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:46:33,947 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:46:33,947 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:46:33,950 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:46:34,424 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 46, 18), 11.02, 47.52, 0.0, 41.46, 13.76, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:46:34,424 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:46:18
2025-07-01 14:46:34,508 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:46:34,512 [DEBUG][       Thread-608109][   transport.py][1871] : starting thread (client mode): 0x81cb730
2025-07-01 14:46:34,513 [DEBUG][       Thread-608109][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:46:34,533 [DEBUG][       Thread-608109][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:46:34,533 [ INFO][       Thread-608109][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:46:34,536 [DEBUG][       Thread-608109][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:46:34,536 [DEBUG][       Thread-608109][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:46:34,537 [DEBUG][       Thread-608109][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:46:34,537 [DEBUG][       Thread-608109][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:46:34,537 [DEBUG][       Thread-608109][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:46:34,537 [DEBUG][       Thread-608109][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:46:34,537 [DEBUG][       Thread-608109][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:46:34,537 [DEBUG][       Thread-608109][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:46:34,537 [DEBUG][       Thread-608109][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:46:34,537 [DEBUG][       Thread-608109][   transport.py][1871] : client lang: <none>
2025-07-01 14:46:34,537 [DEBUG][       Thread-608109][   transport.py][1871] : server lang: <none>
2025-07-01 14:46:34,537 [DEBUG][       Thread-608109][   transport.py][1871] : kex follows: False
2025-07-01 14:46:34,537 [DEBUG][       Thread-608109][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:46:34,537 [DEBUG][       Thread-608109][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:46:34,537 [DEBUG][       Thread-608109][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:46:34,537 [DEBUG][       Thread-608109][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:46:34,537 [DEBUG][       Thread-608109][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:46:34,537 [DEBUG][       Thread-608109][   transport.py][1871] : Compression: none
2025-07-01 14:46:34,537 [DEBUG][       Thread-608109][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:46:34,554 [DEBUG][       Thread-608109][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:46:34,555 [DEBUG][       Thread-608109][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:46:34,555 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:46:34,555 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:46:34,556 [DEBUG][       Thread-608109][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:46:34,557 [DEBUG][       Thread-608109][   transport.py][1871] : userauth is OK
2025-07-01 14:46:34,570 [ INFO][       Thread-608109][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:46:34,571 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:46:35,221 [DEBUG][       Thread-608109][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:46:35,221 [DEBUG][       Thread-608109][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:46:35,265 [DEBUG][       Thread-608109][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:46:35,265 [DEBUG][       Thread-608109][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:46:35,268 [DEBUG][       Thread-608109][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:46:35,279 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:46:35,280 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:46:35,281 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:46:35,283 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:46:35,288 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:46:35,289 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:46:35,290 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:46:35,290 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:46:35,290 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.531885 -999.00  +13.60  47.07     51   +3.90 1 2 2 1 1   887    0 9.23 -8.81 ----- 41.5 47.1 29.0 53.8 15.7 -20.0 15.2 -19.5 15.2 -17.7 15.8 -17.4
2025-07-01 14:46:35,290 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:46:35,290 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:46:35,291 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.531885
2025-07-01 14:46:35,291 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:46:35,291 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:46:35,292 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:46:35,292 [DEBUG][       Thread-608109][   transport.py][1871] : EOF in transport thread
2025-07-01 14:46:35,292 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:46:35,292 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:46:35,293 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:46:18', tmtdew=11.02, humidity=47.52, cloud=0.0, wind=41.46, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:45:54.864', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:46:35,372 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:46:35,384 [DEBUG][       Thread-608112][   transport.py][1871] : starting thread (client mode): 0x81db610
2025-07-01 14:46:35,384 [DEBUG][       Thread-608112][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:46:35,399 [DEBUG][       Thread-608112][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:46:35,399 [ INFO][       Thread-608112][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:46:35,407 [DEBUG][       Thread-608112][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:46:35,407 [DEBUG][       Thread-608112][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:46:35,407 [DEBUG][       Thread-608112][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:46:35,407 [DEBUG][       Thread-608112][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:46:35,407 [DEBUG][       Thread-608112][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:46:35,407 [DEBUG][       Thread-608112][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:46:35,407 [DEBUG][       Thread-608112][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:46:35,407 [DEBUG][       Thread-608112][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:46:35,407 [DEBUG][       Thread-608112][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:46:35,407 [DEBUG][       Thread-608112][   transport.py][1871] : client lang: <none>
2025-07-01 14:46:35,407 [DEBUG][       Thread-608112][   transport.py][1871] : server lang: <none>
2025-07-01 14:46:35,407 [DEBUG][       Thread-608112][   transport.py][1871] : kex follows: False
2025-07-01 14:46:35,407 [DEBUG][       Thread-608112][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:46:35,407 [DEBUG][       Thread-608112][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:46:35,407 [DEBUG][       Thread-608112][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:46:35,407 [DEBUG][       Thread-608112][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:46:35,407 [DEBUG][       Thread-608112][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:46:35,407 [DEBUG][       Thread-608112][   transport.py][1871] : Compression: none
2025-07-01 14:46:35,407 [DEBUG][       Thread-608112][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:46:35,466 [DEBUG][       Thread-608112][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:46:35,466 [DEBUG][       Thread-608112][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:46:35,467 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:46:35,467 [DEBUG][       Thread-608112][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:46:35,468 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:46:35,522 [DEBUG][       Thread-608112][   transport.py][1871] : userauth is OK
2025-07-01 14:46:35,523 [DEBUG][       Thread-608112][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:46:35,523 [DEBUG][       Thread-608112][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:46:35,523 [DEBUG][       Thread-608112][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:46:35,523 [DEBUG][       Thread-608112][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:46:35,542 [ INFO][       Thread-608112][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:46:35,542 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:46:35,542 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:46:35,568 [DEBUG][Thread-608114 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:46:36,532 [DEBUG][       Thread-608112][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:46:36,533 [DEBUG][       Thread-608112][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:46:36,585 [DEBUG][       Thread-608112][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:46:36,585 [DEBUG][       Thread-608112][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:46:36,594 [DEBUG][       Thread-608112][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:46:36,602 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:46:36,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')
2025-07-01 14:46:36,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-07-01 14:46:36,619 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:46:36,620 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:46:36,620 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:46:36,628 [DEBUG][       Thread-608112][   transport.py][1871] : EOF in transport thread
2025-07-01 14:46:40,602 [DEBUG][Thread-608115 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:46:46,628 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:46:46,628 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:46:46,628 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:46:46,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-07-01 14:46:47,126 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 46, 18), 11.02, 47.52, 0.0, 41.46, 13.76, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:46:47,126 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:46:18
2025-07-01 14:46:47,217 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:46:47,221 [DEBUG][       Thread-608116][   transport.py][1871] : starting thread (client mode): 0x81d8df0
2025-07-01 14:46:47,221 [DEBUG][       Thread-608116][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:46:47,241 [DEBUG][       Thread-608116][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:46:47,241 [ INFO][       Thread-608116][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:46:47,244 [DEBUG][       Thread-608116][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:46:47,245 [DEBUG][       Thread-608116][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:46:47,245 [DEBUG][       Thread-608116][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:46:47,245 [DEBUG][       Thread-608116][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:46:47,245 [DEBUG][       Thread-608116][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:46:47,245 [DEBUG][       Thread-608116][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:46:47,245 [DEBUG][       Thread-608116][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:46:47,245 [DEBUG][       Thread-608116][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:46:47,245 [DEBUG][       Thread-608116][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:46:47,245 [DEBUG][       Thread-608116][   transport.py][1871] : client lang: <none>
2025-07-01 14:46:47,245 [DEBUG][       Thread-608116][   transport.py][1871] : server lang: <none>
2025-07-01 14:46:47,245 [DEBUG][       Thread-608116][   transport.py][1871] : kex follows: False
2025-07-01 14:46:47,245 [DEBUG][       Thread-608116][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:46:47,245 [DEBUG][       Thread-608116][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:46:47,245 [DEBUG][       Thread-608116][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:46:47,245 [DEBUG][       Thread-608116][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:46:47,245 [DEBUG][       Thread-608116][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:46:47,245 [DEBUG][       Thread-608116][   transport.py][1871] : Compression: none
2025-07-01 14:46:47,245 [DEBUG][       Thread-608116][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:46:47,259 [DEBUG][       Thread-608116][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:46:47,259 [DEBUG][       Thread-608116][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:46:47,259 [DEBUG][       Thread-608116][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:46:47,259 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:46:47,259 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:46:47,260 [DEBUG][       Thread-608116][   transport.py][1871] : userauth is OK
2025-07-01 14:46:47,272 [ INFO][       Thread-608116][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:46:47,273 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:46:47,926 [DEBUG][       Thread-608116][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:46:47,927 [DEBUG][       Thread-608116][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:46:47,968 [DEBUG][       Thread-608116][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:46:47,968 [DEBUG][       Thread-608116][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:46:47,971 [DEBUG][       Thread-608116][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:46:47,982 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:46:47,982 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:46:47,984 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:46:47,985 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:46:47,988 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:46:47,989 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:46:47,989 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:46:47,989 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:46:47,989 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.532232 -999.00  +13.60  34.49     52   +4.00 1 2 2 1 1   887    0 9.15 -7.35 ----- 39.7 34.5 35.6 56.2 15.7 -19.3 15.2 -19.2 15.3 -17.3 15.8 -17.1
2025-07-01 14:46:47,989 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:46:47,989 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:46:47,989 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.532232
2025-07-01 14:46:47,989 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:46:47,989 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:46:47,989 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:46:47,989 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:46:47,989 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:46:47,989 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:46:18', tmtdew=11.02, humidity=47.52, cloud=0.0, wind=41.46, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:46:24.845', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:46:47,990 [DEBUG][       Thread-608116][   transport.py][1871] : EOF in transport thread
2025-07-01 14:46:48,062 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:46:48,071 [DEBUG][       Thread-608119][   transport.py][1871] : starting thread (client mode): 0x818f7f0
2025-07-01 14:46:48,071 [DEBUG][       Thread-608119][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:46:48,086 [DEBUG][       Thread-608119][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:46:48,086 [ INFO][       Thread-608119][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:46:48,093 [DEBUG][       Thread-608119][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:46:48,093 [DEBUG][       Thread-608119][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:46:48,093 [DEBUG][       Thread-608119][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:46:48,093 [DEBUG][       Thread-608119][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:46:48,093 [DEBUG][       Thread-608119][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:46:48,093 [DEBUG][       Thread-608119][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:46:48,093 [DEBUG][       Thread-608119][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:46:48,093 [DEBUG][       Thread-608119][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:46:48,093 [DEBUG][       Thread-608119][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:46:48,093 [DEBUG][       Thread-608119][   transport.py][1871] : client lang: <none>
2025-07-01 14:46:48,093 [DEBUG][       Thread-608119][   transport.py][1871] : server lang: <none>
2025-07-01 14:46:48,093 [DEBUG][       Thread-608119][   transport.py][1871] : kex follows: False
2025-07-01 14:46:48,093 [DEBUG][       Thread-608119][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:46:48,093 [DEBUG][       Thread-608119][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:46:48,093 [DEBUG][       Thread-608119][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:46:48,093 [DEBUG][       Thread-608119][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:46:48,093 [DEBUG][       Thread-608119][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:46:48,093 [DEBUG][       Thread-608119][   transport.py][1871] : Compression: none
2025-07-01 14:46:48,093 [DEBUG][       Thread-608119][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:46:48,149 [DEBUG][       Thread-608119][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:46:48,149 [DEBUG][       Thread-608119][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:46:48,149 [DEBUG][       Thread-608119][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:46:48,149 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:46:48,149 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:46:48,206 [DEBUG][       Thread-608119][   transport.py][1871] : userauth is OK
2025-07-01 14:46:48,206 [DEBUG][       Thread-608119][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:46:48,206 [DEBUG][       Thread-608119][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:46:48,206 [DEBUG][       Thread-608119][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:46:48,206 [DEBUG][       Thread-608119][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:46:48,220 [ INFO][       Thread-608119][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:46:48,220 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:46:48,220 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:46:49,236 [DEBUG][       Thread-608119][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:46:49,236 [DEBUG][       Thread-608119][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:46:49,287 [DEBUG][       Thread-608119][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:46:49,287 [DEBUG][       Thread-608119][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:46:49,295 [DEBUG][       Thread-608119][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:46:49,303 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:46:49,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')
2025-07-01 14:46:49,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') -> 00000000
2025-07-01 14:46:49,323 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:46:49,323 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:46:49,323 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:46:49,330 [DEBUG][       Thread-608119][   transport.py][1871] : EOF in transport thread
2025-07-01 14:46:49,621 [DEBUG][Thread-608121 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:46:58,641 [DEBUG][Thread-608122 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:46:59,333 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:46:59,333 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:46:59,333 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:46:59,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-07-01 14:46:59,807 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 46, 50), 11.04, 47.44, 0.0, 38.71, 13.75, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:46:59,807 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:46:50
2025-07-01 14:46:59,893 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:46:59,897 [DEBUG][       Thread-608123][   transport.py][1871] : starting thread (client mode): 0x81caa70
2025-07-01 14:46:59,897 [DEBUG][       Thread-608123][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:46:59,917 [DEBUG][       Thread-608123][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:46:59,917 [ INFO][       Thread-608123][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:46:59,918 [DEBUG][       Thread-608123][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:46:59,919 [DEBUG][       Thread-608123][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:46:59,919 [DEBUG][       Thread-608123][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:46:59,919 [DEBUG][       Thread-608123][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:46:59,919 [DEBUG][       Thread-608123][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:46:59,919 [DEBUG][       Thread-608123][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:46:59,919 [DEBUG][       Thread-608123][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:46:59,919 [DEBUG][       Thread-608123][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:46:59,919 [DEBUG][       Thread-608123][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:46:59,919 [DEBUG][       Thread-608123][   transport.py][1871] : client lang: <none>
2025-07-01 14:46:59,919 [DEBUG][       Thread-608123][   transport.py][1871] : server lang: <none>
2025-07-01 14:46:59,919 [DEBUG][       Thread-608123][   transport.py][1871] : kex follows: False
2025-07-01 14:46:59,919 [DEBUG][       Thread-608123][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:46:59,919 [DEBUG][       Thread-608123][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:46:59,919 [DEBUG][       Thread-608123][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:46:59,919 [DEBUG][       Thread-608123][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:46:59,919 [DEBUG][       Thread-608123][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:46:59,919 [DEBUG][       Thread-608123][   transport.py][1871] : Compression: none
2025-07-01 14:46:59,919 [DEBUG][       Thread-608123][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:46:59,927 [DEBUG][       Thread-608123][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:46:59,927 [DEBUG][       Thread-608123][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:46:59,927 [DEBUG][       Thread-608123][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:46:59,927 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:46:59,927 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:46:59,928 [DEBUG][       Thread-608123][   transport.py][1871] : userauth is OK
2025-07-01 14:46:59,940 [ INFO][       Thread-608123][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:46:59,940 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:47:00,551 [DEBUG][       Thread-608123][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:47:00,551 [DEBUG][       Thread-608123][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:47:00,593 [DEBUG][       Thread-608123][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:47:00,593 [DEBUG][       Thread-608123][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:47:00,596 [DEBUG][       Thread-608123][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:47:00,603 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:47:00,604 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:47:00,605 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:47:00,607 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:47:00,611 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:47:00,612 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:47:00,613 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:47:00,613 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:47:00,613 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.532232 -999.00  +13.60  34.49     52   +4.00 1 2 2 1 1   887    0 9.15 -7.35 ----- 39.7 34.5 35.6 56.2 15.7 -19.3 15.2 -19.2 15.3 -17.3 15.8 -17.1
2025-07-01 14:47:00,614 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:47:00,614 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:47:00,614 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.532232
2025-07-01 14:47:00,614 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:47:00,615 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:47:00,615 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:47:00,615 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:47:00,615 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:47:00,615 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:46:50', tmtdew=11.04, humidity=47.44, cloud=0.0, wind=38.71, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:46:24.845', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:47:00,615 [DEBUG][       Thread-608123][   transport.py][1871] : EOF in transport thread
2025-07-01 14:47:00,700 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:47:00,711 [DEBUG][       Thread-608126][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 14:47:00,711 [DEBUG][       Thread-608126][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:47:00,726 [DEBUG][       Thread-608126][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:47:00,726 [ INFO][       Thread-608126][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:47:00,734 [DEBUG][       Thread-608126][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:47:00,734 [DEBUG][       Thread-608126][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:47:00,734 [DEBUG][       Thread-608126][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:47:00,734 [DEBUG][       Thread-608126][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:47:00,734 [DEBUG][       Thread-608126][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:47:00,734 [DEBUG][       Thread-608126][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:47:00,734 [DEBUG][       Thread-608126][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:47:00,734 [DEBUG][       Thread-608126][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:47:00,735 [DEBUG][       Thread-608126][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:47:00,735 [DEBUG][       Thread-608126][   transport.py][1871] : client lang: <none>
2025-07-01 14:47:00,735 [DEBUG][       Thread-608126][   transport.py][1871] : server lang: <none>
2025-07-01 14:47:00,735 [DEBUG][       Thread-608126][   transport.py][1871] : kex follows: False
2025-07-01 14:47:00,735 [DEBUG][       Thread-608126][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:47:00,735 [DEBUG][       Thread-608126][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:47:00,735 [DEBUG][       Thread-608126][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:47:00,735 [DEBUG][       Thread-608126][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:47:00,735 [DEBUG][       Thread-608126][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:47:00,735 [DEBUG][       Thread-608126][   transport.py][1871] : Compression: none
2025-07-01 14:47:00,735 [DEBUG][       Thread-608126][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:47:00,791 [DEBUG][       Thread-608126][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:47:00,791 [DEBUG][       Thread-608126][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:47:00,792 [DEBUG][       Thread-608126][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:47:00,792 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:47:00,793 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:47:00,847 [DEBUG][       Thread-608126][   transport.py][1871] : userauth is OK
2025-07-01 14:47:00,847 [DEBUG][       Thread-608126][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:47:00,847 [DEBUG][       Thread-608126][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:47:00,847 [DEBUG][       Thread-608126][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:47:00,847 [DEBUG][       Thread-608126][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:47:00,866 [ INFO][       Thread-608126][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:47:00,866 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:47:00,866 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:47:01,917 [DEBUG][       Thread-608126][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:47:01,917 [DEBUG][       Thread-608126][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:47:01,968 [DEBUG][       Thread-608126][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:47:01,968 [DEBUG][       Thread-608126][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:47:01,978 [DEBUG][       Thread-608126][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:47:01,987 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:47:01,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-07-01 14:47:01,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-07-01 14:47:02,005 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:47:02,005 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:47:02,006 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:47:02,013 [DEBUG][       Thread-608126][   transport.py][1871] : EOF in transport thread
2025-07-01 14:47:07,661 [DEBUG][Thread-608128 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:47:12,009 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:47:12,010 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:47:12,010 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:47:12,012 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:47:12,494 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 46, 50), 11.04, 47.44, 0.0, 38.71, 13.75, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:47:12,494 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:46:50
2025-07-01 14:47:12,579 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:47:12,582 [DEBUG][       Thread-608129][   transport.py][1871] : starting thread (client mode): 0x81ca350
2025-07-01 14:47:12,583 [DEBUG][       Thread-608129][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:47:12,602 [DEBUG][       Thread-608129][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:47:12,602 [ INFO][       Thread-608129][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:47:12,605 [DEBUG][       Thread-608129][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:47:12,605 [DEBUG][       Thread-608129][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:47:12,605 [DEBUG][       Thread-608129][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:47:12,605 [DEBUG][       Thread-608129][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:47:12,606 [DEBUG][       Thread-608129][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:47:12,606 [DEBUG][       Thread-608129][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:47:12,606 [DEBUG][       Thread-608129][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:47:12,606 [DEBUG][       Thread-608129][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:47:12,606 [DEBUG][       Thread-608129][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:47:12,606 [DEBUG][       Thread-608129][   transport.py][1871] : client lang: <none>
2025-07-01 14:47:12,606 [DEBUG][       Thread-608129][   transport.py][1871] : server lang: <none>
2025-07-01 14:47:12,606 [DEBUG][       Thread-608129][   transport.py][1871] : kex follows: False
2025-07-01 14:47:12,606 [DEBUG][       Thread-608129][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:47:12,606 [DEBUG][       Thread-608129][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:47:12,606 [DEBUG][       Thread-608129][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:47:12,606 [DEBUG][       Thread-608129][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:47:12,606 [DEBUG][       Thread-608129][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:47:12,606 [DEBUG][       Thread-608129][   transport.py][1871] : Compression: none
2025-07-01 14:47:12,606 [DEBUG][       Thread-608129][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:47:12,622 [DEBUG][       Thread-608129][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:47:12,622 [DEBUG][       Thread-608129][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:47:12,622 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:47:12,623 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:47:12,623 [DEBUG][       Thread-608129][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:47:12,623 [DEBUG][       Thread-608129][   transport.py][1871] : userauth is OK
2025-07-01 14:47:12,648 [ INFO][       Thread-608129][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:47:12,648 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:47:13,293 [DEBUG][       Thread-608129][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:47:13,293 [DEBUG][       Thread-608129][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:47:13,337 [DEBUG][       Thread-608129][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:47:13,337 [DEBUG][       Thread-608129][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:47:13,340 [DEBUG][       Thread-608129][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:47:13,355 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:47:13,355 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:47:13,357 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:47:13,359 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:47:13,365 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:47:13,367 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:47:13,368 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:47:13,368 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:47:13,368 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.532579 -999.00  +13.60  36.17     51   +3.90 1 2 2 1 1   887    0 9.33 -6.96 ----- 36.4 36.2 33.7 50.8 15.8 -18.7 15.2 -19.4 15.4 -17.2 15.9 -16.6
2025-07-01 14:47:13,369 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:47:13,369 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:47:13,369 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.532579
2025-07-01 14:47:13,369 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:47:13,370 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:47:13,370 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:47:13,370 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:47:13,370 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:47:13,370 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:46:50', tmtdew=11.04, humidity=47.44, cloud=0.0, wind=38.71, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:46:54.826', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:47:13,371 [DEBUG][       Thread-608129][   transport.py][1871] : EOF in transport thread
2025-07-01 14:47:13,457 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:47:13,467 [DEBUG][       Thread-608132][   transport.py][1871] : starting thread (client mode): 0x8105060
2025-07-01 14:47:13,467 [DEBUG][       Thread-608132][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:47:13,482 [DEBUG][       Thread-608132][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:47:13,482 [ INFO][       Thread-608132][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:47:13,490 [DEBUG][       Thread-608132][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:47:13,490 [DEBUG][       Thread-608132][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:47:13,490 [DEBUG][       Thread-608132][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:47:13,490 [DEBUG][       Thread-608132][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:47:13,490 [DEBUG][       Thread-608132][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:47:13,490 [DEBUG][       Thread-608132][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:47:13,490 [DEBUG][       Thread-608132][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:47:13,490 [DEBUG][       Thread-608132][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:47:13,490 [DEBUG][       Thread-608132][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:47:13,491 [DEBUG][       Thread-608132][   transport.py][1871] : client lang: <none>
2025-07-01 14:47:13,491 [DEBUG][       Thread-608132][   transport.py][1871] : server lang: <none>
2025-07-01 14:47:13,491 [DEBUG][       Thread-608132][   transport.py][1871] : kex follows: False
2025-07-01 14:47:13,491 [DEBUG][       Thread-608132][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:47:13,491 [DEBUG][       Thread-608132][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:47:13,491 [DEBUG][       Thread-608132][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:47:13,491 [DEBUG][       Thread-608132][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:47:13,491 [DEBUG][       Thread-608132][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:47:13,491 [DEBUG][       Thread-608132][   transport.py][1871] : Compression: none
2025-07-01 14:47:13,491 [DEBUG][       Thread-608132][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:47:13,546 [DEBUG][       Thread-608132][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:47:13,547 [DEBUG][       Thread-608132][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:47:13,548 [DEBUG][       Thread-608132][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:47:13,548 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:47:13,549 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:47:13,603 [DEBUG][       Thread-608132][   transport.py][1871] : userauth is OK
2025-07-01 14:47:13,603 [DEBUG][       Thread-608132][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:47:13,603 [DEBUG][       Thread-608132][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:47:13,603 [DEBUG][       Thread-608132][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:47:13,603 [DEBUG][       Thread-608132][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:47:13,622 [ INFO][       Thread-608132][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:47:13,622 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:47:13,623 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:47:14,647 [DEBUG][       Thread-608132][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:47:14,647 [DEBUG][       Thread-608132][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:47:14,696 [DEBUG][       Thread-608132][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:47:14,696 [DEBUG][       Thread-608132][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:47:14,705 [DEBUG][       Thread-608132][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:47:14,714 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:47:14,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-07-01 14:47:14,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-07-01 14:47:14,732 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:47:14,732 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:47:14,732 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:47:14,740 [DEBUG][       Thread-608132][   transport.py][1871] : EOF in transport thread
2025-07-01 14:47:16,694 [DEBUG][Thread-608134 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:47:24,740 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:47:24,740 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:47:24,740 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:47:24,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-07-01 14:47:25,239 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 47, 22), 11.04, 47.45, 0.0, 37.86, 13.79, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:47:25,239 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:47:22
2025-07-01 14:47:25,331 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:47:25,337 [DEBUG][       Thread-608135][   transport.py][1871] : starting thread (client mode): 0x81d9cf0
2025-07-01 14:47:25,337 [DEBUG][       Thread-608135][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:47:25,357 [DEBUG][       Thread-608135][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:47:25,357 [ INFO][       Thread-608135][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:47:25,360 [DEBUG][       Thread-608135][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:47:25,361 [DEBUG][       Thread-608135][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:47:25,361 [DEBUG][       Thread-608135][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:47:25,361 [DEBUG][       Thread-608135][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:47:25,361 [DEBUG][       Thread-608135][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:47:25,361 [DEBUG][       Thread-608135][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:47:25,361 [DEBUG][       Thread-608135][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:47:25,361 [DEBUG][       Thread-608135][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:47:25,361 [DEBUG][       Thread-608135][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:47:25,361 [DEBUG][       Thread-608135][   transport.py][1871] : client lang: <none>
2025-07-01 14:47:25,361 [DEBUG][       Thread-608135][   transport.py][1871] : server lang: <none>
2025-07-01 14:47:25,361 [DEBUG][       Thread-608135][   transport.py][1871] : kex follows: False
2025-07-01 14:47:25,361 [DEBUG][       Thread-608135][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:47:25,361 [DEBUG][       Thread-608135][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:47:25,361 [DEBUG][       Thread-608135][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:47:25,361 [DEBUG][       Thread-608135][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:47:25,361 [DEBUG][       Thread-608135][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:47:25,361 [DEBUG][       Thread-608135][   transport.py][1871] : Compression: none
2025-07-01 14:47:25,361 [DEBUG][       Thread-608135][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:47:25,378 [DEBUG][       Thread-608135][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:47:25,378 [DEBUG][       Thread-608135][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:47:25,378 [DEBUG][       Thread-608135][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:47:25,378 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:47:25,378 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:47:25,379 [DEBUG][       Thread-608135][   transport.py][1871] : userauth is OK
2025-07-01 14:47:25,391 [ INFO][       Thread-608135][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:47:25,391 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:47:25,713 [DEBUG][Thread-608137 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:47:26,010 [DEBUG][       Thread-608135][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:47:26,010 [DEBUG][       Thread-608135][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:47:26,052 [DEBUG][       Thread-608135][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:47:26,052 [DEBUG][       Thread-608135][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:47:26,055 [DEBUG][       Thread-608135][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:47:26,066 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:47:26,066 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:47:26,067 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:47:26,069 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:47:26,071 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:47:26,072 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:47:26,072 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:47:26,072 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:47:26,072 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.532579 -999.00  +13.60  36.17     51   +3.90 1 2 2 1 1   887    0 9.33 -6.96 ----- 36.4 36.2 33.7 50.8 15.8 -18.7 15.2 -19.4 15.4 -17.2 15.9 -16.6
2025-07-01 14:47:26,072 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:47:26,072 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:47:26,072 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.532579
2025-07-01 14:47:26,072 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:47:26,072 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:47:26,072 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:47:26,072 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:47:26,072 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:47:26,072 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:47:22', tmtdew=11.04, humidity=47.45, cloud=0.0, wind=37.86, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:46:54.826', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:47:26,073 [DEBUG][       Thread-608135][   transport.py][1871] : EOF in transport thread
2025-07-01 14:47:26,147 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:47:26,160 [DEBUG][       Thread-608139][   transport.py][1871] : starting thread (client mode): 0x82b3670
2025-07-01 14:47:26,160 [DEBUG][       Thread-608139][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:47:26,181 [DEBUG][       Thread-608139][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:47:26,181 [ INFO][       Thread-608139][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:47:26,189 [DEBUG][       Thread-608139][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:47:26,189 [DEBUG][       Thread-608139][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:47:26,189 [DEBUG][       Thread-608139][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:47:26,189 [DEBUG][       Thread-608139][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:47:26,189 [DEBUG][       Thread-608139][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:47:26,189 [DEBUG][       Thread-608139][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:47:26,189 [DEBUG][       Thread-608139][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:47:26,189 [DEBUG][       Thread-608139][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:47:26,189 [DEBUG][       Thread-608139][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:47:26,189 [DEBUG][       Thread-608139][   transport.py][1871] : client lang: <none>
2025-07-01 14:47:26,189 [DEBUG][       Thread-608139][   transport.py][1871] : server lang: <none>
2025-07-01 14:47:26,189 [DEBUG][       Thread-608139][   transport.py][1871] : kex follows: False
2025-07-01 14:47:26,189 [DEBUG][       Thread-608139][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:47:26,189 [DEBUG][       Thread-608139][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:47:26,189 [DEBUG][       Thread-608139][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:47:26,189 [DEBUG][       Thread-608139][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:47:26,189 [DEBUG][       Thread-608139][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:47:26,189 [DEBUG][       Thread-608139][   transport.py][1871] : Compression: none
2025-07-01 14:47:26,189 [DEBUG][       Thread-608139][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:47:26,246 [DEBUG][       Thread-608139][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:47:26,246 [DEBUG][       Thread-608139][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:47:26,246 [DEBUG][       Thread-608139][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:47:26,246 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:47:26,246 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:47:26,311 [DEBUG][       Thread-608139][   transport.py][1871] : userauth is OK
2025-07-01 14:47:26,311 [DEBUG][       Thread-608139][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:47:26,311 [DEBUG][       Thread-608139][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:47:26,311 [DEBUG][       Thread-608139][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:47:26,311 [DEBUG][       Thread-608139][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:47:26,326 [ INFO][       Thread-608139][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:47:26,326 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:47:26,326 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:47:27,389 [DEBUG][       Thread-608139][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:47:27,389 [DEBUG][       Thread-608139][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:47:27,439 [DEBUG][       Thread-608139][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:47:27,439 [DEBUG][       Thread-608139][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:47:27,448 [DEBUG][       Thread-608139][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:47:27,456 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:47:27,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-07-01 14:47:27,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-07-01 14:47:27,472 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:47:27,472 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:47:27,472 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:47:27,480 [DEBUG][       Thread-608139][   transport.py][1871] : EOF in transport thread
2025-07-01 14:47:34,733 [DEBUG][Thread-608141 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:47:35,600 [DEBUG][Thread-608142 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:47:37,480 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:47:37,480 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:47:37,480 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:47:37,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-07-01 14:47:37,970 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 47, 22), 11.04, 47.45, 0.0, 37.86, 13.79, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:47:37,970 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:47:22
2025-07-01 14:47:38,055 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:47:38,059 [DEBUG][       Thread-608143][   transport.py][1871] : starting thread (client mode): 0x81a46a0
2025-07-01 14:47:38,059 [DEBUG][       Thread-608143][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:47:38,080 [DEBUG][       Thread-608143][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:47:38,080 [ INFO][       Thread-608143][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:47:38,083 [DEBUG][       Thread-608143][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:47:38,083 [DEBUG][       Thread-608143][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:47:38,083 [DEBUG][       Thread-608143][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:47:38,083 [DEBUG][       Thread-608143][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:47:38,083 [DEBUG][       Thread-608143][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:47:38,083 [DEBUG][       Thread-608143][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:47:38,083 [DEBUG][       Thread-608143][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:47:38,083 [DEBUG][       Thread-608143][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:47:38,083 [DEBUG][       Thread-608143][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:47:38,083 [DEBUG][       Thread-608143][   transport.py][1871] : client lang: <none>
2025-07-01 14:47:38,083 [DEBUG][       Thread-608143][   transport.py][1871] : server lang: <none>
2025-07-01 14:47:38,083 [DEBUG][       Thread-608143][   transport.py][1871] : kex follows: False
2025-07-01 14:47:38,083 [DEBUG][       Thread-608143][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:47:38,083 [DEBUG][       Thread-608143][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:47:38,083 [DEBUG][       Thread-608143][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:47:38,084 [DEBUG][       Thread-608143][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:47:38,084 [DEBUG][       Thread-608143][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:47:38,084 [DEBUG][       Thread-608143][   transport.py][1871] : Compression: none
2025-07-01 14:47:38,084 [DEBUG][       Thread-608143][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:47:38,092 [DEBUG][       Thread-608143][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:47:38,092 [DEBUG][       Thread-608143][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:47:38,092 [DEBUG][       Thread-608143][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:47:38,093 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:47:38,093 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:47:38,137 [DEBUG][       Thread-608143][   transport.py][1871] : userauth is OK
2025-07-01 14:47:38,162 [ INFO][       Thread-608143][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:47:38,163 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:47:38,774 [DEBUG][       Thread-608143][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:47:38,775 [DEBUG][       Thread-608143][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:47:38,817 [DEBUG][       Thread-608143][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:47:38,817 [DEBUG][       Thread-608143][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:47:38,820 [DEBUG][       Thread-608143][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:47:38,834 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:47:38,834 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:47:38,836 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:47:38,838 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:47:38,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:47:38,845 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:47:38,845 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:47:38,846 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:47:38,846 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.532579 -999.00  +13.60  36.17     51   +3.90 1 2 2 1 1   887    0 9.33 -6.96 ----- 36.4 36.2 33.7 50.8 15.8 -18.7 15.2 -19.4 15.4 -17.2 15.9 -16.6
2025-07-01 14:47:38,846 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:47:38,846 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:47:38,846 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.532579
2025-07-01 14:47:38,846 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:47:38,847 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:47:38,847 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:47:38,847 [DEBUG][       Thread-608143][   transport.py][1871] : EOF in transport thread
2025-07-01 14:47:38,847 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:47:38,848 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:47:38,848 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:47:22', tmtdew=11.04, humidity=47.45, cloud=0.0, wind=37.86, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:46:54.826', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:47:38,925 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:47:38,935 [DEBUG][       Thread-608146][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 14:47:38,935 [DEBUG][       Thread-608146][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:47:38,950 [DEBUG][       Thread-608146][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:47:38,951 [ INFO][       Thread-608146][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:47:38,958 [DEBUG][       Thread-608146][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:47:38,958 [DEBUG][       Thread-608146][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:47:38,958 [DEBUG][       Thread-608146][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:47:38,958 [DEBUG][       Thread-608146][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:47:38,958 [DEBUG][       Thread-608146][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:47:38,958 [DEBUG][       Thread-608146][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:47:38,958 [DEBUG][       Thread-608146][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:47:38,958 [DEBUG][       Thread-608146][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:47:38,959 [DEBUG][       Thread-608146][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:47:38,959 [DEBUG][       Thread-608146][   transport.py][1871] : client lang: <none>
2025-07-01 14:47:38,959 [DEBUG][       Thread-608146][   transport.py][1871] : server lang: <none>
2025-07-01 14:47:38,959 [DEBUG][       Thread-608146][   transport.py][1871] : kex follows: False
2025-07-01 14:47:38,959 [DEBUG][       Thread-608146][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:47:38,959 [DEBUG][       Thread-608146][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:47:38,959 [DEBUG][       Thread-608146][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:47:38,959 [DEBUG][       Thread-608146][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:47:38,959 [DEBUG][       Thread-608146][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:47:38,959 [DEBUG][       Thread-608146][   transport.py][1871] : Compression: none
2025-07-01 14:47:38,959 [DEBUG][       Thread-608146][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:47:39,015 [DEBUG][       Thread-608146][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:47:39,015 [DEBUG][       Thread-608146][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:47:39,016 [DEBUG][       Thread-608146][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:47:39,016 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:47:39,017 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:47:39,071 [DEBUG][       Thread-608146][   transport.py][1871] : userauth is OK
2025-07-01 14:47:39,072 [DEBUG][       Thread-608146][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:47:39,072 [DEBUG][       Thread-608146][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:47:39,072 [DEBUG][       Thread-608146][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:47:39,072 [DEBUG][       Thread-608146][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:47:39,091 [ INFO][       Thread-608146][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:47:39,091 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:47:39,092 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:47:40,137 [DEBUG][       Thread-608146][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:47:40,137 [DEBUG][       Thread-608146][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:47:40,193 [DEBUG][       Thread-608146][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:47:40,194 [DEBUG][       Thread-608146][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:47:40,203 [DEBUG][       Thread-608146][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:47:40,212 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:47:40,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-07-01 14:47:40,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-07-01 14:47:40,231 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:47:40,231 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:47:40,232 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:47:40,239 [DEBUG][       Thread-608146][   transport.py][1871] : EOF in transport thread
2025-07-01 14:47:43,767 [DEBUG][Thread-608148 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:47:50,234 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:47:50,234 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:47:50,234 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:47:50,237 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:47:50,706 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 47, 22), 11.04, 47.45, 0.0, 37.86, 13.79, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:47:50,706 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:47:22
2025-07-01 14:47:50,792 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:47:50,797 [DEBUG][       Thread-608149][   transport.py][1871] : starting thread (client mode): 0x81d9240
2025-07-01 14:47:50,797 [DEBUG][       Thread-608149][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:47:50,817 [DEBUG][       Thread-608149][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:47:50,817 [ INFO][       Thread-608149][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:47:50,821 [DEBUG][       Thread-608149][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:47:50,821 [DEBUG][       Thread-608149][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:47:50,821 [DEBUG][       Thread-608149][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:47:50,821 [DEBUG][       Thread-608149][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:47:50,821 [DEBUG][       Thread-608149][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:47:50,821 [DEBUG][       Thread-608149][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:47:50,821 [DEBUG][       Thread-608149][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:47:50,821 [DEBUG][       Thread-608149][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:47:50,821 [DEBUG][       Thread-608149][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:47:50,821 [DEBUG][       Thread-608149][   transport.py][1871] : client lang: <none>
2025-07-01 14:47:50,821 [DEBUG][       Thread-608149][   transport.py][1871] : server lang: <none>
2025-07-01 14:47:50,821 [DEBUG][       Thread-608149][   transport.py][1871] : kex follows: False
2025-07-01 14:47:50,821 [DEBUG][       Thread-608149][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:47:50,821 [DEBUG][       Thread-608149][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:47:50,821 [DEBUG][       Thread-608149][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:47:50,821 [DEBUG][       Thread-608149][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:47:50,821 [DEBUG][       Thread-608149][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:47:50,821 [DEBUG][       Thread-608149][   transport.py][1871] : Compression: none
2025-07-01 14:47:50,821 [DEBUG][       Thread-608149][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:47:50,840 [DEBUG][       Thread-608149][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:47:50,840 [DEBUG][       Thread-608149][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:47:50,841 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:47:50,841 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:47:50,841 [DEBUG][       Thread-608149][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:47:50,842 [DEBUG][       Thread-608149][   transport.py][1871] : userauth is OK
2025-07-01 14:47:50,855 [ INFO][       Thread-608149][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:47:50,855 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:47:51,510 [DEBUG][       Thread-608149][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:47:51,510 [DEBUG][       Thread-608149][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:47:51,553 [DEBUG][       Thread-608149][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:47:51,553 [DEBUG][       Thread-608149][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:47:51,557 [DEBUG][       Thread-608149][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:47:51,568 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:47:51,568 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:47:51,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:47:51,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:47:51,578 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:47:51,580 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:47:51,580 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:47:51,580 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:47:51,581 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.532927 -999.00  +13.80  36.63     52   +4.10 1 2 2 1 1   887    0 9.46 -5.78 ----- 35.2 36.6 29.2 45.5 15.9 -18.8 15.3 -19.1 15.5 -17.3 16.1 -16.8
2025-07-01 14:47:51,581 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:47:51,581 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:47:51,581 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.532927
2025-07-01 14:47:51,581 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:47:51,582 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:47:51,582 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:47:51,582 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:47:51,582 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:47:51,582 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:47:22', tmtdew=11.04, humidity=47.45, cloud=0.0, wind=37.86, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:47:24.893', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:47:51,583 [DEBUG][       Thread-608149][   transport.py][1871] : EOF in transport thread
2025-07-01 14:47:51,666 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:47:52,787 [DEBUG][Thread-608152 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:48:01,807 [DEBUG][Thread-608153 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:48:10,828 [DEBUG][Thread-608154 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:48:19,853 [DEBUG][Thread-608155 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:48:28,874 [DEBUG][Thread-608156 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:48:35,643 [DEBUG][Thread-608157 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:48:37,897 [DEBUG][Thread-608158 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:48:46,914 [DEBUG][Thread-608159 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:48:55,936 [DEBUG][Thread-608160 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:49:04,958 [DEBUG][Thread-608161 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:49:13,980 [DEBUG][Thread-608162 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:49:22,999 [DEBUG][Thread-608163 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:49:32,017 [DEBUG][Thread-608164 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:49:35,673 [DEBUG][Thread-608165 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:49:41,039 [DEBUG][Thread-608166 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:49:50,060 [DEBUG][Thread-608167 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:49:59,082 [DEBUG][Thread-608168 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:50:01,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-07-01 14:50:08,102 [DEBUG][Thread-608169 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:50:11,118 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:50:11,119 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:50:11,119 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:50:11,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-07-01 14:50:11,620 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 50, 1), 11.15, 47.14, 29.3, 44.99, 13.98, 0, 0, 0, 0, 0, 0),)
2025-07-01 14:50:11,620 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:50:01
2025-07-01 14:50:11,706 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:50:11,710 [DEBUG][       Thread-608170][   transport.py][1871] : starting thread (client mode): 0x81e4a60
2025-07-01 14:50:11,710 [DEBUG][       Thread-608170][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:50:11,729 [DEBUG][       Thread-608170][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:50:11,730 [ INFO][       Thread-608170][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:50:11,733 [DEBUG][       Thread-608170][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:50:11,733 [DEBUG][       Thread-608170][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:50:11,733 [DEBUG][       Thread-608170][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:50:11,733 [DEBUG][       Thread-608170][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:50:11,733 [DEBUG][       Thread-608170][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:50:11,733 [DEBUG][       Thread-608170][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:50:11,733 [DEBUG][       Thread-608170][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:50:11,733 [DEBUG][       Thread-608170][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:50:11,733 [DEBUG][       Thread-608170][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:50:11,733 [DEBUG][       Thread-608170][   transport.py][1871] : client lang: <none>
2025-07-01 14:50:11,733 [DEBUG][       Thread-608170][   transport.py][1871] : server lang: <none>
2025-07-01 14:50:11,733 [DEBUG][       Thread-608170][   transport.py][1871] : kex follows: False
2025-07-01 14:50:11,733 [DEBUG][       Thread-608170][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:50:11,733 [DEBUG][       Thread-608170][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:50:11,733 [DEBUG][       Thread-608170][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:50:11,733 [DEBUG][       Thread-608170][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:50:11,733 [DEBUG][       Thread-608170][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:50:11,733 [DEBUG][       Thread-608170][   transport.py][1871] : Compression: none
2025-07-01 14:50:11,733 [DEBUG][       Thread-608170][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:50:11,750 [DEBUG][       Thread-608170][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:50:11,750 [DEBUG][       Thread-608170][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:50:11,751 [DEBUG][       Thread-608170][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:50:11,751 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:50:11,751 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:50:11,752 [DEBUG][       Thread-608170][   transport.py][1871] : userauth is OK
2025-07-01 14:50:11,765 [ INFO][       Thread-608170][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:50:11,766 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:50:12,364 [DEBUG][       Thread-608170][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:50:12,364 [DEBUG][       Thread-608170][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:50:12,409 [DEBUG][       Thread-608170][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:50:12,409 [DEBUG][       Thread-608170][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:50:12,413 [DEBUG][       Thread-608170][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:50:12,419 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:50:12,420 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:50:12,421 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:50:12,423 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:50:12,428 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:50:12,430 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:50:12,430 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:50:12,431 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:50:12,431 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.534315 -999.00  +14.00  38.75     51   +4.00 1 2 2 1 1   887    0 9.44 -1.56 ----- 42.8 38.8 38.8 51.2 16.1 -18.7 15.5 -18.7 15.8 -18.3 16.3 -17.7
2025-07-01 14:50:12,431 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:50:12,431 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:50:12,431 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.534315
2025-07-01 14:50:12,432 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:50:12,432 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:50:12,432 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:50:12,432 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:50:12,432 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:50:12,433 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:50:01', tmtdew=11.15, humidity=47.14, cloud=29.3, wind=44.99, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:49:24.816', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:50:12,433 [DEBUG][       Thread-608170][   transport.py][1871] : EOF in transport thread
2025-07-01 14:50:12,517 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:50:12,529 [DEBUG][       Thread-608173][   transport.py][1871] : starting thread (client mode): 0x81a65c0
2025-07-01 14:50:12,529 [DEBUG][       Thread-608173][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:50:12,544 [DEBUG][       Thread-608173][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:50:12,545 [ INFO][       Thread-608173][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:50:12,552 [DEBUG][       Thread-608173][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:50:12,552 [DEBUG][       Thread-608173][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:50:12,552 [DEBUG][       Thread-608173][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:50:12,552 [DEBUG][       Thread-608173][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:50:12,552 [DEBUG][       Thread-608173][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:50:12,552 [DEBUG][       Thread-608173][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:50:12,553 [DEBUG][       Thread-608173][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:50:12,553 [DEBUG][       Thread-608173][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:50:12,553 [DEBUG][       Thread-608173][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:50:12,553 [DEBUG][       Thread-608173][   transport.py][1871] : client lang: <none>
2025-07-01 14:50:12,553 [DEBUG][       Thread-608173][   transport.py][1871] : server lang: <none>
2025-07-01 14:50:12,553 [DEBUG][       Thread-608173][   transport.py][1871] : kex follows: False
2025-07-01 14:50:12,553 [DEBUG][       Thread-608173][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:50:12,553 [DEBUG][       Thread-608173][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:50:12,553 [DEBUG][       Thread-608173][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:50:12,553 [DEBUG][       Thread-608173][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:50:12,553 [DEBUG][       Thread-608173][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:50:12,553 [DEBUG][       Thread-608173][   transport.py][1871] : Compression: none
2025-07-01 14:50:12,553 [DEBUG][       Thread-608173][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:50:12,610 [DEBUG][       Thread-608173][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:50:12,610 [DEBUG][       Thread-608173][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:50:12,611 [DEBUG][       Thread-608173][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:50:12,611 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:50:12,612 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:50:12,665 [DEBUG][       Thread-608173][   transport.py][1871] : userauth is OK
2025-07-01 14:50:12,666 [DEBUG][       Thread-608173][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:50:12,666 [DEBUG][       Thread-608173][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:50:12,666 [DEBUG][       Thread-608173][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:50:12,666 [DEBUG][       Thread-608173][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:50:12,685 [ INFO][       Thread-608173][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:50:12,685 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:50:12,686 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:50:13,682 [DEBUG][       Thread-608173][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:50:13,682 [DEBUG][       Thread-608173][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:50:13,732 [DEBUG][       Thread-608173][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:50:13,732 [DEBUG][       Thread-608173][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:50:13,741 [DEBUG][       Thread-608173][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:50:13,751 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:50:13,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-07-01 14:50:13,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-07-01 14:50:13,773 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:50:13,773 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:50:13,774 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:50:13,782 [DEBUG][       Thread-608173][   transport.py][1871] : EOF in transport thread
2025-07-01 14:50:17,125 [DEBUG][Thread-608175 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:50:23,776 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:50:23,776 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:50:23,776 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:50:23,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-07-01 14:50:24,277 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 50, 1), 11.15, 47.14, 29.3, 44.99, 13.98, 0, 0, 0, 0, 0, 0),)
2025-07-01 14:50:24,277 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:50:01
2025-07-01 14:50:24,363 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:50:24,368 [DEBUG][       Thread-608176][   transport.py][1871] : starting thread (client mode): 0x81ca230
2025-07-01 14:50:24,368 [DEBUG][       Thread-608176][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:50:24,388 [DEBUG][       Thread-608176][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:50:24,389 [ INFO][       Thread-608176][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:50:24,392 [DEBUG][       Thread-608176][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:50:24,392 [DEBUG][       Thread-608176][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:50:24,392 [DEBUG][       Thread-608176][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:50:24,392 [DEBUG][       Thread-608176][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:50:24,392 [DEBUG][       Thread-608176][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:50:24,392 [DEBUG][       Thread-608176][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:50:24,392 [DEBUG][       Thread-608176][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:50:24,392 [DEBUG][       Thread-608176][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:50:24,392 [DEBUG][       Thread-608176][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:50:24,392 [DEBUG][       Thread-608176][   transport.py][1871] : client lang: <none>
2025-07-01 14:50:24,392 [DEBUG][       Thread-608176][   transport.py][1871] : server lang: <none>
2025-07-01 14:50:24,392 [DEBUG][       Thread-608176][   transport.py][1871] : kex follows: False
2025-07-01 14:50:24,392 [DEBUG][       Thread-608176][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:50:24,392 [DEBUG][       Thread-608176][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:50:24,392 [DEBUG][       Thread-608176][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:50:24,392 [DEBUG][       Thread-608176][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:50:24,392 [DEBUG][       Thread-608176][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:50:24,392 [DEBUG][       Thread-608176][   transport.py][1871] : Compression: none
2025-07-01 14:50:24,392 [DEBUG][       Thread-608176][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:50:24,407 [DEBUG][       Thread-608176][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:50:24,408 [DEBUG][       Thread-608176][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:50:24,408 [DEBUG][       Thread-608176][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:50:24,409 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:50:24,409 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:50:24,410 [DEBUG][       Thread-608176][   transport.py][1871] : userauth is OK
2025-07-01 14:50:24,434 [ INFO][       Thread-608176][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:50:24,435 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:50:25,206 [DEBUG][       Thread-608176][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:50:25,206 [DEBUG][       Thread-608176][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:50:25,248 [DEBUG][       Thread-608176][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:50:25,248 [DEBUG][       Thread-608176][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:50:25,251 [DEBUG][       Thread-608176][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:50:25,264 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:50:25,264 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:50:25,265 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:50:25,266 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:50:25,269 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:50:25,270 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:50:25,270 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:50:25,271 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:50:25,271 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.534315 -999.00  +14.00  38.75     51   +4.00 1 2 2 1 1   887    0 9.44 -1.56 ----- 42.8 38.8 38.8 51.2 16.1 -18.7 15.5 -18.7 15.8 -18.3 16.3 -17.7
2025-07-01 14:50:25,271 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:50:25,271 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:50:25,271 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.534315
2025-07-01 14:50:25,271 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:50:25,271 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:50:25,271 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:50:25,271 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:50:25,271 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:50:25,271 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:50:01', tmtdew=11.15, humidity=47.14, cloud=29.3, wind=44.99, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:49:24.816', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:50:25,272 [DEBUG][       Thread-608176][   transport.py][1871] : EOF in transport thread
2025-07-01 14:50:25,342 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:50:25,354 [DEBUG][       Thread-608179][   transport.py][1871] : starting thread (client mode): 0x8105720
2025-07-01 14:50:25,354 [DEBUG][       Thread-608179][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:50:25,369 [DEBUG][       Thread-608179][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:50:25,369 [ INFO][       Thread-608179][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:50:25,376 [DEBUG][       Thread-608179][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:50:25,377 [DEBUG][       Thread-608179][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:50:25,377 [DEBUG][       Thread-608179][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:50:25,377 [DEBUG][       Thread-608179][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:50:25,377 [DEBUG][       Thread-608179][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:50:25,377 [DEBUG][       Thread-608179][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:50:25,377 [DEBUG][       Thread-608179][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:50:25,377 [DEBUG][       Thread-608179][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:50:25,377 [DEBUG][       Thread-608179][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:50:25,377 [DEBUG][       Thread-608179][   transport.py][1871] : client lang: <none>
2025-07-01 14:50:25,377 [DEBUG][       Thread-608179][   transport.py][1871] : server lang: <none>
2025-07-01 14:50:25,377 [DEBUG][       Thread-608179][   transport.py][1871] : kex follows: False
2025-07-01 14:50:25,377 [DEBUG][       Thread-608179][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:50:25,377 [DEBUG][       Thread-608179][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:50:25,377 [DEBUG][       Thread-608179][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:50:25,377 [DEBUG][       Thread-608179][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:50:25,377 [DEBUG][       Thread-608179][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:50:25,377 [DEBUG][       Thread-608179][   transport.py][1871] : Compression: none
2025-07-01 14:50:25,377 [DEBUG][       Thread-608179][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:50:25,440 [DEBUG][       Thread-608179][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:50:25,441 [DEBUG][       Thread-608179][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:50:25,441 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:50:25,442 [DEBUG][       Thread-608179][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:50:25,443 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:50:25,503 [DEBUG][       Thread-608179][   transport.py][1871] : userauth is OK
2025-07-01 14:50:25,503 [DEBUG][       Thread-608179][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:50:25,503 [DEBUG][       Thread-608179][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:50:25,503 [DEBUG][       Thread-608179][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:50:25,503 [DEBUG][       Thread-608179][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:50:25,522 [ INFO][       Thread-608179][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:50:25,523 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:50:25,523 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:50:26,161 [DEBUG][Thread-608181 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:50:26,564 [DEBUG][       Thread-608179][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:50:26,564 [DEBUG][       Thread-608179][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:50:26,612 [DEBUG][       Thread-608179][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:50:26,612 [DEBUG][       Thread-608179][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:50:26,621 [DEBUG][       Thread-608179][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:50:26,630 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:50:26,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-07-01 14:50:26,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-07-01 14:50:26,648 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:50:26,648 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:50:26,648 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:50:26,656 [DEBUG][       Thread-608179][   transport.py][1871] : EOF in transport thread
2025-07-01 14:50:35,180 [DEBUG][Thread-608182 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:50:35,702 [DEBUG][Thread-608183 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:50:36,659 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:50:36,659 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:50:36,659 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:50:36,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-07-01 14:50:37,189 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 50, 33), 11.25, 46.8, 29.3, 37.93, 14.01, 0, 0, 0, 0, 0, 0),)
2025-07-01 14:50:37,189 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:50:33
2025-07-01 14:50:37,279 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:50:37,283 [DEBUG][       Thread-608184][   transport.py][1871] : starting thread (client mode): 0x81e4a60
2025-07-01 14:50:37,283 [DEBUG][       Thread-608184][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:50:37,298 [DEBUG][       Thread-608184][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:50:37,298 [ INFO][       Thread-608184][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:50:37,301 [DEBUG][       Thread-608184][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:50:37,301 [DEBUG][       Thread-608184][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:50:37,301 [DEBUG][       Thread-608184][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:50:37,301 [DEBUG][       Thread-608184][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:50:37,301 [DEBUG][       Thread-608184][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:50:37,301 [DEBUG][       Thread-608184][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:50:37,302 [DEBUG][       Thread-608184][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:50:37,302 [DEBUG][       Thread-608184][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:50:37,302 [DEBUG][       Thread-608184][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:50:37,302 [DEBUG][       Thread-608184][   transport.py][1871] : client lang: <none>
2025-07-01 14:50:37,302 [DEBUG][       Thread-608184][   transport.py][1871] : server lang: <none>
2025-07-01 14:50:37,302 [DEBUG][       Thread-608184][   transport.py][1871] : kex follows: False
2025-07-01 14:50:37,302 [DEBUG][       Thread-608184][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:50:37,302 [DEBUG][       Thread-608184][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:50:37,302 [DEBUG][       Thread-608184][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:50:37,302 [DEBUG][       Thread-608184][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:50:37,302 [DEBUG][       Thread-608184][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:50:37,302 [DEBUG][       Thread-608184][   transport.py][1871] : Compression: none
2025-07-01 14:50:37,302 [DEBUG][       Thread-608184][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:50:37,316 [DEBUG][       Thread-608184][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:50:37,317 [DEBUG][       Thread-608184][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:50:37,317 [DEBUG][       Thread-608184][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:50:37,317 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:50:37,317 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:50:37,318 [DEBUG][       Thread-608184][   transport.py][1871] : userauth is OK
2025-07-01 14:50:37,341 [ INFO][       Thread-608184][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:50:37,342 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:50:37,971 [DEBUG][       Thread-608184][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:50:37,971 [DEBUG][       Thread-608184][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:50:38,012 [DEBUG][       Thread-608184][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:50:38,012 [DEBUG][       Thread-608184][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:50:38,014 [DEBUG][       Thread-608184][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:50:38,027 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:50:38,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:50:38,028 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:50:38,029 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:50:38,032 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:50:38,032 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:50:38,032 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:50:38,033 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:50:38,033 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.534663 -999.00  +13.90  42.16     51   +3.90 1 2 2 1 1   887    0 9.69 0.83 ----- 41.6 42.2 35.8 56.0 16.2 -19.1 15.6 -19.1 15.9 -17.9 16.4 -17.5
2025-07-01 14:50:38,033 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:50:38,033 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:50:38,033 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.534663
2025-07-01 14:50:38,033 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:50:38,033 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:50:38,033 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:50:38,033 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:50:38,033 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:50:38,033 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:50:33', tmtdew=11.25, humidity=46.8, cloud=29.3, wind=37.93, temperature=14.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:49:54.883', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:50:38,034 [DEBUG][       Thread-608184][   transport.py][1871] : EOF in transport thread
2025-07-01 14:50:38,107 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:50:38,117 [DEBUG][       Thread-608187][   transport.py][1871] : starting thread (client mode): 0x8a65e70
2025-07-01 14:50:38,117 [DEBUG][       Thread-608187][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:50:38,131 [DEBUG][       Thread-608187][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:50:38,131 [ INFO][       Thread-608187][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:50:38,142 [DEBUG][       Thread-608187][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:50:38,142 [DEBUG][       Thread-608187][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:50:38,142 [DEBUG][       Thread-608187][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:50:38,142 [DEBUG][       Thread-608187][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:50:38,142 [DEBUG][       Thread-608187][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:50:38,142 [DEBUG][       Thread-608187][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:50:38,142 [DEBUG][       Thread-608187][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:50:38,142 [DEBUG][       Thread-608187][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:50:38,142 [DEBUG][       Thread-608187][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:50:38,142 [DEBUG][       Thread-608187][   transport.py][1871] : client lang: <none>
2025-07-01 14:50:38,142 [DEBUG][       Thread-608187][   transport.py][1871] : server lang: <none>
2025-07-01 14:50:38,142 [DEBUG][       Thread-608187][   transport.py][1871] : kex follows: False
2025-07-01 14:50:38,142 [DEBUG][       Thread-608187][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:50:38,143 [DEBUG][       Thread-608187][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:50:38,143 [DEBUG][       Thread-608187][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:50:38,143 [DEBUG][       Thread-608187][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:50:38,143 [DEBUG][       Thread-608187][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:50:38,143 [DEBUG][       Thread-608187][   transport.py][1871] : Compression: none
2025-07-01 14:50:38,143 [DEBUG][       Thread-608187][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:50:38,197 [DEBUG][       Thread-608187][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:50:38,197 [DEBUG][       Thread-608187][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:50:38,197 [DEBUG][       Thread-608187][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:50:38,197 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:50:38,197 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:50:38,253 [DEBUG][       Thread-608187][   transport.py][1871] : userauth is OK
2025-07-01 14:50:38,253 [DEBUG][       Thread-608187][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:50:38,253 [DEBUG][       Thread-608187][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:50:38,253 [DEBUG][       Thread-608187][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:50:38,254 [DEBUG][       Thread-608187][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:50:38,269 [ INFO][       Thread-608187][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:50:38,269 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:50:38,269 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:50:39,265 [DEBUG][       Thread-608187][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:50:39,265 [DEBUG][       Thread-608187][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:50:39,321 [DEBUG][       Thread-608187][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:50:39,321 [DEBUG][       Thread-608187][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:50:39,333 [DEBUG][       Thread-608187][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:50:39,341 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:50:39,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-07-01 14:50: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') -> 00000000
2025-07-01 14:50:39,356 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:50:39,356 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:50:39,356 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:50:39,364 [DEBUG][       Thread-608187][   transport.py][1871] : EOF in transport thread
2025-07-01 14:50:44,201 [DEBUG][Thread-608189 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:50:49,364 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:50:49,364 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:50:49,364 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:50:49,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-07-01 14:50:49,864 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 50, 33), 11.25, 46.8, 29.3, 37.93, 14.01, 0, 0, 0, 0, 0, 0),)
2025-07-01 14:50:49,865 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:50:33
2025-07-01 14:50:49,950 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:50:49,954 [DEBUG][       Thread-608190][   transport.py][1871] : starting thread (client mode): 0x81717b0
2025-07-01 14:50:49,954 [DEBUG][       Thread-608190][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:50:49,975 [DEBUG][       Thread-608190][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:50:49,976 [ INFO][       Thread-608190][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:50:49,979 [DEBUG][       Thread-608190][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:50:49,979 [DEBUG][       Thread-608190][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:50:49,979 [DEBUG][       Thread-608190][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:50:49,979 [DEBUG][       Thread-608190][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:50:49,980 [DEBUG][       Thread-608190][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:50:49,980 [DEBUG][       Thread-608190][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:50:49,980 [DEBUG][       Thread-608190][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:50:49,980 [DEBUG][       Thread-608190][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:50:49,980 [DEBUG][       Thread-608190][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:50:49,980 [DEBUG][       Thread-608190][   transport.py][1871] : client lang: <none>
2025-07-01 14:50:49,980 [DEBUG][       Thread-608190][   transport.py][1871] : server lang: <none>
2025-07-01 14:50:49,980 [DEBUG][       Thread-608190][   transport.py][1871] : kex follows: False
2025-07-01 14:50:49,980 [DEBUG][       Thread-608190][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:50:49,980 [DEBUG][       Thread-608190][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:50:49,980 [DEBUG][       Thread-608190][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:50:49,980 [DEBUG][       Thread-608190][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:50:49,980 [DEBUG][       Thread-608190][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:50:49,980 [DEBUG][       Thread-608190][   transport.py][1871] : Compression: none
2025-07-01 14:50:49,980 [DEBUG][       Thread-608190][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:50:50,003 [DEBUG][       Thread-608190][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:50:50,003 [DEBUG][       Thread-608190][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:50:50,003 [DEBUG][       Thread-608190][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:50:50,004 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:50:50,004 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:50:50,005 [DEBUG][       Thread-608190][   transport.py][1871] : userauth is OK
2025-07-01 14:50:50,031 [ INFO][       Thread-608190][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:50:50,031 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:50:50,811 [DEBUG][       Thread-608190][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:50:50,811 [DEBUG][       Thread-608190][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:50:50,853 [DEBUG][       Thread-608190][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:50:50,853 [DEBUG][       Thread-608190][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:50:50,856 [DEBUG][       Thread-608190][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:50:50,869 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:50:50,870 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:50:50,871 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:50:50,873 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:50:50,878 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:50:50,880 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:50:50,880 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:50:50,881 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:50:50,881 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.534663 -999.00  +13.90  42.16     51   +3.90 1 2 2 1 1   887    0 9.69 0.83 ----- 41.6 42.2 35.8 56.0 16.2 -19.1 15.6 -19.1 15.9 -17.9 16.4 -17.5
2025-07-01 14:50:50,881 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:50:50,881 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:50:50,881 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.534663
2025-07-01 14:50:50,882 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:50:50,882 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:50:50,882 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:50:50,883 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:50:50,883 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:50:50,883 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:50:33', tmtdew=11.25, humidity=46.8, cloud=29.3, wind=37.93, temperature=14.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:49:54.883', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:50:50,883 [DEBUG][       Thread-608190][   transport.py][1871] : EOF in transport thread
2025-07-01 14:50:50,967 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:50:50,979 [DEBUG][       Thread-608193][   transport.py][1871] : starting thread (client mode): 0x75a8a30
2025-07-01 14:50:50,979 [DEBUG][       Thread-608193][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:50:51,001 [DEBUG][       Thread-608193][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:50:51,002 [ INFO][       Thread-608193][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:50:51,009 [DEBUG][       Thread-608193][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:50:51,009 [DEBUG][       Thread-608193][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:50:51,009 [DEBUG][       Thread-608193][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:50:51,009 [DEBUG][       Thread-608193][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:50:51,009 [DEBUG][       Thread-608193][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:50:51,009 [DEBUG][       Thread-608193][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:50:51,010 [DEBUG][       Thread-608193][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:50:51,010 [DEBUG][       Thread-608193][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:50:51,010 [DEBUG][       Thread-608193][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:50:51,010 [DEBUG][       Thread-608193][   transport.py][1871] : client lang: <none>
2025-07-01 14:50:51,010 [DEBUG][       Thread-608193][   transport.py][1871] : server lang: <none>
2025-07-01 14:50:51,010 [DEBUG][       Thread-608193][   transport.py][1871] : kex follows: False
2025-07-01 14:50:51,010 [DEBUG][       Thread-608193][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:50:51,010 [DEBUG][       Thread-608193][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:50:51,010 [DEBUG][       Thread-608193][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:50:51,010 [DEBUG][       Thread-608193][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:50:51,010 [DEBUG][       Thread-608193][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:50:51,010 [DEBUG][       Thread-608193][   transport.py][1871] : Compression: none
2025-07-01 14:50:51,010 [DEBUG][       Thread-608193][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:50:51,066 [DEBUG][       Thread-608193][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:50:51,066 [DEBUG][       Thread-608193][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:50:51,067 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:50:51,068 [DEBUG][       Thread-608193][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:50:51,068 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:50:51,125 [DEBUG][       Thread-608193][   transport.py][1871] : userauth is OK
2025-07-01 14:50:51,125 [DEBUG][       Thread-608193][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:50:51,125 [DEBUG][       Thread-608193][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:50:51,125 [DEBUG][       Thread-608193][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:50:51,125 [DEBUG][       Thread-608193][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:50:51,143 [ INFO][       Thread-608193][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:50:51,144 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:50:51,144 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:50:52,172 [DEBUG][       Thread-608193][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:50:52,172 [DEBUG][       Thread-608193][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:50:52,226 [DEBUG][       Thread-608193][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:50:52,227 [DEBUG][       Thread-608193][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:50:52,240 [DEBUG][       Thread-608193][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:50:52,249 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:50:52,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-07-01 14:50:52,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-07-01 14:50:52,267 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:50:52,267 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:50:52,268 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:50:52,275 [DEBUG][       Thread-608193][   transport.py][1871] : EOF in transport thread
2025-07-01 14:50:53,237 [DEBUG][Thread-608195 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:51:02,260 [DEBUG][Thread-608196 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:51:02,276 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:51:02,276 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:51:02,276 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:51:02,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-07-01 14:51:02,773 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 50, 33), 11.25, 46.8, 29.3, 37.93, 14.01, 0, 0, 0, 0, 0, 0),)
2025-07-01 14:51:02,773 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:50:33
2025-07-01 14:51:02,858 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:51:02,862 [DEBUG][       Thread-608197][   transport.py][1871] : starting thread (client mode): 0x8173c40
2025-07-01 14:51:02,863 [DEBUG][       Thread-608197][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:51:02,874 [DEBUG][       Thread-608197][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:51:02,874 [ INFO][       Thread-608197][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:51:02,875 [DEBUG][       Thread-608197][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:51:02,875 [DEBUG][       Thread-608197][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:51:02,875 [DEBUG][       Thread-608197][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:51:02,875 [DEBUG][       Thread-608197][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:51:02,875 [DEBUG][       Thread-608197][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:51:02,875 [DEBUG][       Thread-608197][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:51:02,875 [DEBUG][       Thread-608197][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:51:02,875 [DEBUG][       Thread-608197][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:51:02,875 [DEBUG][       Thread-608197][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:51:02,875 [DEBUG][       Thread-608197][   transport.py][1871] : client lang: <none>
2025-07-01 14:51:02,876 [DEBUG][       Thread-608197][   transport.py][1871] : server lang: <none>
2025-07-01 14:51:02,876 [DEBUG][       Thread-608197][   transport.py][1871] : kex follows: False
2025-07-01 14:51:02,876 [DEBUG][       Thread-608197][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:51:02,876 [DEBUG][       Thread-608197][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:51:02,876 [DEBUG][       Thread-608197][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:51:02,876 [DEBUG][       Thread-608197][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:51:02,876 [DEBUG][       Thread-608197][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:51:02,876 [DEBUG][       Thread-608197][   transport.py][1871] : Compression: none
2025-07-01 14:51:02,876 [DEBUG][       Thread-608197][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:51:02,886 [DEBUG][       Thread-608197][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:51:02,886 [DEBUG][       Thread-608197][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:51:02,887 [DEBUG][       Thread-608197][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:51:02,887 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:51:02,887 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:51:02,888 [DEBUG][       Thread-608197][   transport.py][1871] : userauth is OK
2025-07-01 14:51:02,912 [ INFO][       Thread-608197][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:51:02,913 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:51:03,516 [DEBUG][       Thread-608197][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:51:03,516 [DEBUG][       Thread-608197][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:51:03,561 [DEBUG][       Thread-608197][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:51:03,561 [DEBUG][       Thread-608197][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:51:03,564 [DEBUG][       Thread-608197][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:51:03,572 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:51:03,573 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:51:03,574 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:51:03,576 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:51:03,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:51:03,583 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:51:03,583 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:51:03,584 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:51:03,584 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.535357 -999.00  +14.00  41.85     51   +4.10 1 2 2 1 1   887    0 9.74 4.37 ----- 35.7 41.9 24.2 48.9 16.4 -19.4 15.7 -19.4 16.0 -18.9 16.6 -19.7
2025-07-01 14:51:03,584 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:51:03,584 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:51:03,584 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.535357
2025-07-01 14:51:03,584 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:51:03,584 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:51:03,584 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:51:03,584 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:51:03,584 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:51:03,584 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:50:33', tmtdew=11.25, humidity=46.8, cloud=29.3, wind=37.93, temperature=14.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:50:54.845', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:51:03,584 [DEBUG][       Thread-608197][   transport.py][1871] : EOF in transport thread
2025-07-01 14:51:03,666 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:51:03,675 [DEBUG][       Thread-608200][   transport.py][1871] : starting thread (client mode): 0x81e4760
2025-07-01 14:51:03,675 [DEBUG][       Thread-608200][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:51:03,691 [DEBUG][       Thread-608200][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:51:03,691 [ INFO][       Thread-608200][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:51:03,699 [DEBUG][       Thread-608200][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:51:03,699 [DEBUG][       Thread-608200][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:51:03,699 [DEBUG][       Thread-608200][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:51:03,699 [DEBUG][       Thread-608200][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:51:03,699 [DEBUG][       Thread-608200][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:51:03,699 [DEBUG][       Thread-608200][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:51:03,699 [DEBUG][       Thread-608200][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:51:03,699 [DEBUG][       Thread-608200][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:51:03,699 [DEBUG][       Thread-608200][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:51:03,699 [DEBUG][       Thread-608200][   transport.py][1871] : client lang: <none>
2025-07-01 14:51:03,699 [DEBUG][       Thread-608200][   transport.py][1871] : server lang: <none>
2025-07-01 14:51:03,699 [DEBUG][       Thread-608200][   transport.py][1871] : kex follows: False
2025-07-01 14:51:03,699 [DEBUG][       Thread-608200][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:51:03,699 [DEBUG][       Thread-608200][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:51:03,699 [DEBUG][       Thread-608200][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:51:03,699 [DEBUG][       Thread-608200][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:51:03,699 [DEBUG][       Thread-608200][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:51:03,700 [DEBUG][       Thread-608200][   transport.py][1871] : Compression: none
2025-07-01 14:51:03,700 [DEBUG][       Thread-608200][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:51:03,761 [DEBUG][       Thread-608200][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:51:03,762 [DEBUG][       Thread-608200][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:51:03,762 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:51:03,763 [DEBUG][       Thread-608200][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:51:03,763 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:51:03,823 [DEBUG][       Thread-608200][   transport.py][1871] : userauth is OK
2025-07-01 14:51:03,823 [DEBUG][       Thread-608200][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:51:03,823 [DEBUG][       Thread-608200][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:51:03,823 [DEBUG][       Thread-608200][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:51:03,823 [DEBUG][       Thread-608200][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:51:03,843 [ INFO][       Thread-608200][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:51:03,843 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:51:03,844 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:51:04,912 [DEBUG][       Thread-608200][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:51:04,913 [DEBUG][       Thread-608200][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:51:04,964 [DEBUG][       Thread-608200][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:51:04,964 [DEBUG][       Thread-608200][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:51:04,973 [DEBUG][       Thread-608200][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:51:04,983 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:51:04,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-07-01 14:51: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-07-01 14:51:05,001 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:51:05,001 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:51:05,001 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:51:05,009 [DEBUG][       Thread-608200][   transport.py][1871] : EOF in transport thread
2025-07-01 14:51:11,283 [DEBUG][Thread-608202 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:51:15,012 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:51:15,012 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:51:15,012 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:51:15,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-07-01 14:51:15,514 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 51, 5), 11.25, 46.81, 29.3, 38.43, 14.01, 0, 0, 0, 0, 0, 0),)
2025-07-01 14:51:15,514 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:51:05
2025-07-01 14:51:15,605 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:51:15,609 [DEBUG][       Thread-608203][   transport.py][1871] : starting thread (client mode): 0x8172dd0
2025-07-01 14:51:15,609 [DEBUG][       Thread-608203][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:51:15,630 [DEBUG][       Thread-608203][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:51:15,630 [ INFO][       Thread-608203][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:51:15,633 [DEBUG][       Thread-608203][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:51:15,633 [DEBUG][       Thread-608203][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:51:15,633 [DEBUG][       Thread-608203][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:51:15,634 [DEBUG][       Thread-608203][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:51:15,634 [DEBUG][       Thread-608203][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:51:15,634 [DEBUG][       Thread-608203][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:51:15,634 [DEBUG][       Thread-608203][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:51:15,634 [DEBUG][       Thread-608203][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:51:15,634 [DEBUG][       Thread-608203][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:51:15,634 [DEBUG][       Thread-608203][   transport.py][1871] : client lang: <none>
2025-07-01 14:51:15,634 [DEBUG][       Thread-608203][   transport.py][1871] : server lang: <none>
2025-07-01 14:51:15,634 [DEBUG][       Thread-608203][   transport.py][1871] : kex follows: False
2025-07-01 14:51:15,634 [DEBUG][       Thread-608203][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:51:15,634 [DEBUG][       Thread-608203][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:51:15,634 [DEBUG][       Thread-608203][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:51:15,634 [DEBUG][       Thread-608203][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:51:15,634 [DEBUG][       Thread-608203][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:51:15,634 [DEBUG][       Thread-608203][   transport.py][1871] : Compression: none
2025-07-01 14:51:15,634 [DEBUG][       Thread-608203][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:51:15,649 [DEBUG][       Thread-608203][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:51:15,649 [DEBUG][       Thread-608203][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:51:15,649 [DEBUG][       Thread-608203][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:51:15,649 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:51:15,649 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:51:15,649 [DEBUG][       Thread-608203][   transport.py][1871] : userauth is OK
2025-07-01 14:51:15,673 [ INFO][       Thread-608203][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:51:15,673 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:51:16,465 [DEBUG][       Thread-608203][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:51:16,465 [DEBUG][       Thread-608203][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:51:16,508 [DEBUG][       Thread-608203][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:51:16,508 [DEBUG][       Thread-608203][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:51:16,510 [DEBUG][       Thread-608203][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:51:16,523 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:51:16,523 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:51:16,524 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:51:16,525 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:51:16,527 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:51:16,527 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:51:16,527 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:51:16,527 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:51:16,527 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.535357 -999.00  +14.00  41.85     51   +4.10 1 2 2 1 1   887    0 9.74 4.37 ----- 35.7 41.9 24.2 48.9 16.4 -19.4 15.7 -19.4 16.0 -18.9 16.6 -19.7
2025-07-01 14:51:16,527 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:51:16,527 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:51:16,527 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.535357
2025-07-01 14:51:16,528 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:51:16,528 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:51:16,528 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:51:16,528 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:51:16,528 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:51:16,528 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:51:05', tmtdew=11.25, humidity=46.81, cloud=29.3, wind=38.43, temperature=14.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:50:54.845', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:51:16,528 [DEBUG][       Thread-608203][   transport.py][1871] : EOF in transport thread
2025-07-01 14:51:16,603 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:51:16,614 [DEBUG][       Thread-608206][   transport.py][1871] : starting thread (client mode): 0x82b3670
2025-07-01 14:51:16,614 [DEBUG][       Thread-608206][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:51:16,631 [DEBUG][       Thread-608206][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:51:16,631 [ INFO][       Thread-608206][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:51:16,644 [DEBUG][       Thread-608206][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:51:16,644 [DEBUG][       Thread-608206][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:51:16,644 [DEBUG][       Thread-608206][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:51:16,644 [DEBUG][       Thread-608206][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:51:16,644 [DEBUG][       Thread-608206][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:51:16,644 [DEBUG][       Thread-608206][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:51:16,644 [DEBUG][       Thread-608206][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:51:16,644 [DEBUG][       Thread-608206][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:51:16,644 [DEBUG][       Thread-608206][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:51:16,644 [DEBUG][       Thread-608206][   transport.py][1871] : client lang: <none>
2025-07-01 14:51:16,644 [DEBUG][       Thread-608206][   transport.py][1871] : server lang: <none>
2025-07-01 14:51:16,644 [DEBUG][       Thread-608206][   transport.py][1871] : kex follows: False
2025-07-01 14:51:16,644 [DEBUG][       Thread-608206][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:51:16,644 [DEBUG][       Thread-608206][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:51:16,644 [DEBUG][       Thread-608206][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:51:16,644 [DEBUG][       Thread-608206][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:51:16,644 [DEBUG][       Thread-608206][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:51:16,644 [DEBUG][       Thread-608206][   transport.py][1871] : Compression: none
2025-07-01 14:51:16,644 [DEBUG][       Thread-608206][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:51:16,702 [DEBUG][       Thread-608206][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:51:16,702 [DEBUG][       Thread-608206][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:51:16,702 [DEBUG][       Thread-608206][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:51:16,702 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:51:16,702 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:51:16,758 [DEBUG][       Thread-608206][   transport.py][1871] : userauth is OK
2025-07-01 14:51:16,758 [DEBUG][       Thread-608206][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:51:16,758 [DEBUG][       Thread-608206][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:51:16,758 [DEBUG][       Thread-608206][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:51:16,758 [DEBUG][       Thread-608206][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:51:16,773 [ INFO][       Thread-608206][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:51:16,773 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:51:16,773 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:51:17,838 [DEBUG][       Thread-608206][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:51:17,838 [DEBUG][       Thread-608206][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:51:17,887 [DEBUG][       Thread-608206][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:51:17,887 [DEBUG][       Thread-608206][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:51:17,896 [DEBUG][       Thread-608206][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:51:17,903 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:51:17,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-07-01 14:51:17,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-07-01 14:51:17,919 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:51:17,919 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:51:17,919 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:51:17,927 [DEBUG][       Thread-608206][   transport.py][1871] : EOF in transport thread
2025-07-01 14:51:20,303 [DEBUG][Thread-608208 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:51:27,930 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:51:27,930 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:51:27,930 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:51:27,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-07-01 14:51:28,435 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 51, 5), 11.25, 46.81, 29.3, 38.43, 14.01, 0, 0, 0, 0, 0, 0),)
2025-07-01 14:51:28,435 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:51:05
2025-07-01 14:51:28,519 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:51:28,525 [DEBUG][       Thread-608209][   transport.py][1871] : starting thread (client mode): 0x75abe80
2025-07-01 14:51:28,525 [DEBUG][       Thread-608209][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:51:28,546 [DEBUG][       Thread-608209][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:51:28,546 [ INFO][       Thread-608209][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:51:28,548 [DEBUG][       Thread-608209][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:51:28,548 [DEBUG][       Thread-608209][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:51:28,548 [DEBUG][       Thread-608209][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:51:28,548 [DEBUG][       Thread-608209][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:51:28,548 [DEBUG][       Thread-608209][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:51:28,548 [DEBUG][       Thread-608209][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:51:28,548 [DEBUG][       Thread-608209][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:51:28,548 [DEBUG][       Thread-608209][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:51:28,548 [DEBUG][       Thread-608209][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:51:28,548 [DEBUG][       Thread-608209][   transport.py][1871] : client lang: <none>
2025-07-01 14:51:28,548 [DEBUG][       Thread-608209][   transport.py][1871] : server lang: <none>
2025-07-01 14:51:28,548 [DEBUG][       Thread-608209][   transport.py][1871] : kex follows: False
2025-07-01 14:51:28,548 [DEBUG][       Thread-608209][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:51:28,548 [DEBUG][       Thread-608209][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:51:28,548 [DEBUG][       Thread-608209][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:51:28,548 [DEBUG][       Thread-608209][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:51:28,548 [DEBUG][       Thread-608209][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:51:28,548 [DEBUG][       Thread-608209][   transport.py][1871] : Compression: none
2025-07-01 14:51:28,548 [DEBUG][       Thread-608209][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:51:28,561 [DEBUG][       Thread-608209][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:51:28,561 [DEBUG][       Thread-608209][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:51:28,562 [DEBUG][       Thread-608209][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:51:28,562 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:51:28,562 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:51:28,563 [DEBUG][       Thread-608209][   transport.py][1871] : userauth is OK
2025-07-01 14:51:28,588 [ INFO][       Thread-608209][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:51:28,589 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:51:29,338 [DEBUG][Thread-608211 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:51:29,371 [DEBUG][       Thread-608209][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:51:29,372 [DEBUG][       Thread-608209][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:51:29,413 [DEBUG][       Thread-608209][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:51:29,413 [DEBUG][       Thread-608209][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:51:29,416 [DEBUG][       Thread-608209][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:51:29,438 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:51:29,439 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:51:29,441 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:51:29,443 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:51:29,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:51:29,451 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:51:29,451 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:51:29,451 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:51:29,452 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.535357 -999.00  +14.00  41.85     51   +4.10 1 2 2 1 1   887    0 9.74 4.37 ----- 35.7 41.9 24.2 48.9 16.4 -19.4 15.7 -19.4 16.0 -18.9 16.6 -19.7
2025-07-01 14:51:29,452 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:51:29,452 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:51:29,452 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.535357
2025-07-01 14:51:29,452 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:51:29,453 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:51:29,453 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:51:29,453 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:51:29,453 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:51:29,453 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:51:05', tmtdew=11.25, humidity=46.81, cloud=29.3, wind=38.43, temperature=14.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:50:54.845', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:51:29,454 [DEBUG][       Thread-608209][   transport.py][1871] : EOF in transport thread
2025-07-01 14:51:29,537 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:51:29,550 [DEBUG][       Thread-608213][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 14:51:29,550 [DEBUG][       Thread-608213][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:51:29,566 [DEBUG][       Thread-608213][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:51:29,566 [ INFO][       Thread-608213][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:51:29,573 [DEBUG][       Thread-608213][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:51:29,574 [DEBUG][       Thread-608213][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:51:29,574 [DEBUG][       Thread-608213][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:51:29,574 [DEBUG][       Thread-608213][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:51:29,574 [DEBUG][       Thread-608213][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:51:29,574 [DEBUG][       Thread-608213][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:51:29,574 [DEBUG][       Thread-608213][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:51:29,574 [DEBUG][       Thread-608213][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:51:29,574 [DEBUG][       Thread-608213][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:51:29,574 [DEBUG][       Thread-608213][   transport.py][1871] : client lang: <none>
2025-07-01 14:51:29,574 [DEBUG][       Thread-608213][   transport.py][1871] : server lang: <none>
2025-07-01 14:51:29,574 [DEBUG][       Thread-608213][   transport.py][1871] : kex follows: False
2025-07-01 14:51:29,574 [DEBUG][       Thread-608213][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:51:29,574 [DEBUG][       Thread-608213][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:51:29,574 [DEBUG][       Thread-608213][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:51:29,574 [DEBUG][       Thread-608213][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:51:29,574 [DEBUG][       Thread-608213][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:51:29,574 [DEBUG][       Thread-608213][   transport.py][1871] : Compression: none
2025-07-01 14:51:29,575 [DEBUG][       Thread-608213][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:51:29,631 [DEBUG][       Thread-608213][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:51:29,631 [DEBUG][       Thread-608213][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:51:29,632 [DEBUG][       Thread-608213][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:51:29,632 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:51:29,633 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:51:29,687 [DEBUG][       Thread-608213][   transport.py][1871] : userauth is OK
2025-07-01 14:51:29,687 [DEBUG][       Thread-608213][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:51:29,687 [DEBUG][       Thread-608213][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:51:29,687 [DEBUG][       Thread-608213][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:51:29,687 [DEBUG][       Thread-608213][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:51:29,706 [ INFO][       Thread-608213][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:51:29,707 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:51:29,707 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:51:30,819 [DEBUG][       Thread-608213][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:51:30,819 [DEBUG][       Thread-608213][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:51:30,870 [DEBUG][       Thread-608213][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:51:30,870 [DEBUG][       Thread-608213][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:51:30,879 [DEBUG][       Thread-608213][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:51:30,892 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:51:30,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-07-01 14:51:30,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-07-01 14:51:30,910 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:51:30,911 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:51:30,911 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:51:30,919 [DEBUG][       Thread-608213][   transport.py][1871] : EOF in transport thread
2025-07-01 14:51:35,732 [DEBUG][Thread-608215 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:51:38,358 [DEBUG][Thread-608216 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:51:40,912 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:51:40,912 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:51:40,913 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:51:40,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-07-01 14:51:41,406 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 51, 36), 11.28, 46.49, 29.3, 35.16, 14.07, 0, 0, 0, 0, 0, 0),)
2025-07-01 14:51:41,406 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:51:36
2025-07-01 14:51:41,490 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:51:41,493 [DEBUG][       Thread-608217][   transport.py][1871] : starting thread (client mode): 0x81c8f70
2025-07-01 14:51:41,493 [DEBUG][       Thread-608217][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:51:41,514 [DEBUG][       Thread-608217][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:51:41,515 [ INFO][       Thread-608217][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:51:41,517 [DEBUG][       Thread-608217][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:51:41,517 [DEBUG][       Thread-608217][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:51:41,517 [DEBUG][       Thread-608217][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:51:41,517 [DEBUG][       Thread-608217][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:51:41,517 [DEBUG][       Thread-608217][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:51:41,517 [DEBUG][       Thread-608217][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:51:41,517 [DEBUG][       Thread-608217][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:51:41,517 [DEBUG][       Thread-608217][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:51:41,517 [DEBUG][       Thread-608217][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:51:41,517 [DEBUG][       Thread-608217][   transport.py][1871] : client lang: <none>
2025-07-01 14:51:41,517 [DEBUG][       Thread-608217][   transport.py][1871] : server lang: <none>
2025-07-01 14:51:41,517 [DEBUG][       Thread-608217][   transport.py][1871] : kex follows: False
2025-07-01 14:51:41,517 [DEBUG][       Thread-608217][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:51:41,517 [DEBUG][       Thread-608217][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:51:41,517 [DEBUG][       Thread-608217][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:51:41,517 [DEBUG][       Thread-608217][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:51:41,517 [DEBUG][       Thread-608217][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:51:41,517 [DEBUG][       Thread-608217][   transport.py][1871] : Compression: none
2025-07-01 14:51:41,517 [DEBUG][       Thread-608217][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:51:41,530 [DEBUG][       Thread-608217][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:51:41,530 [DEBUG][       Thread-608217][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:51:41,530 [DEBUG][       Thread-608217][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:51:41,531 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:51:41,531 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:51:41,532 [DEBUG][       Thread-608217][   transport.py][1871] : userauth is OK
2025-07-01 14:51:41,557 [ INFO][       Thread-608217][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:51:41,557 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:51:42,252 [DEBUG][       Thread-608217][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:51:42,252 [DEBUG][       Thread-608217][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:51:42,293 [DEBUG][       Thread-608217][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:51:42,293 [DEBUG][       Thread-608217][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:51:42,297 [DEBUG][       Thread-608217][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:51:42,309 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:51:42,310 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:51:42,311 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:51:42,313 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:51:42,318 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:51:42,320 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:51:42,320 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:51:42,321 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:51:42,321 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.535704 -999.00  +14.10  39.59     50   +4.10 1 2 2 1 1   887    0 9.86 6.68 ----- 38.8 39.6 21.4 48.5 16.4 -19.7 15.7 -20.3 16.0 -19.3 16.6 -20.9
2025-07-01 14:51:42,321 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:51:42,321 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:51:42,321 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.535704
2025-07-01 14:51:42,322 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:51:42,322 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:51:42,322 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:51:42,322 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:51:42,322 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:51:42,323 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:51:36', tmtdew=11.28, humidity=46.49, cloud=29.3, wind=35.16, temperature=14.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:51:24.826', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:51:42,323 [DEBUG][       Thread-608217][   transport.py][1871] : EOF in transport thread
2025-07-01 14:51:42,406 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:51:42,415 [DEBUG][       Thread-608220][   transport.py][1871] : starting thread (client mode): 0x82b2aa0
2025-07-01 14:51:42,415 [DEBUG][       Thread-608220][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:51:42,430 [DEBUG][       Thread-608220][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:51:42,430 [ INFO][       Thread-608220][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:51:42,438 [DEBUG][       Thread-608220][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:51:42,438 [DEBUG][       Thread-608220][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:51:42,438 [DEBUG][       Thread-608220][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:51:42,438 [DEBUG][       Thread-608220][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:51:42,438 [DEBUG][       Thread-608220][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:51:42,438 [DEBUG][       Thread-608220][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:51:42,438 [DEBUG][       Thread-608220][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:51:42,438 [DEBUG][       Thread-608220][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:51:42,438 [DEBUG][       Thread-608220][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:51:42,438 [DEBUG][       Thread-608220][   transport.py][1871] : client lang: <none>
2025-07-01 14:51:42,438 [DEBUG][       Thread-608220][   transport.py][1871] : server lang: <none>
2025-07-01 14:51:42,438 [DEBUG][       Thread-608220][   transport.py][1871] : kex follows: False
2025-07-01 14:51:42,438 [DEBUG][       Thread-608220][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:51:42,438 [DEBUG][       Thread-608220][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:51:42,438 [DEBUG][       Thread-608220][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:51:42,438 [DEBUG][       Thread-608220][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:51:42,439 [DEBUG][       Thread-608220][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:51:42,439 [DEBUG][       Thread-608220][   transport.py][1871] : Compression: none
2025-07-01 14:51:42,439 [DEBUG][       Thread-608220][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:51:42,495 [DEBUG][       Thread-608220][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:51:42,495 [DEBUG][       Thread-608220][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:51:42,496 [DEBUG][       Thread-608220][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:51:42,496 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:51:42,497 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:51:42,551 [DEBUG][       Thread-608220][   transport.py][1871] : userauth is OK
2025-07-01 14:51:42,551 [DEBUG][       Thread-608220][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:51:42,552 [DEBUG][       Thread-608220][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:51:42,552 [DEBUG][       Thread-608220][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:51:42,552 [DEBUG][       Thread-608220][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:51:42,571 [ INFO][       Thread-608220][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:51:42,571 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:51:42,572 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:51:43,581 [DEBUG][       Thread-608220][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:51:43,582 [DEBUG][       Thread-608220][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:51:43,632 [DEBUG][       Thread-608220][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:51:43,632 [DEBUG][       Thread-608220][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:51:43,641 [DEBUG][       Thread-608220][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:51:43,650 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:51:43,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-07-01 14:51:43,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-07-01 14:51:43,669 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:51:43,669 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:51:43,669 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:51:43,678 [DEBUG][       Thread-608220][   transport.py][1871] : EOF in transport thread
2025-07-01 14:51:47,378 [DEBUG][Thread-608222 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:51:53,676 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:51:53,676 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:51:53,676 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:51: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-07-01 14:51:54,193 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 51, 36), 11.28, 46.49, 29.3, 35.16, 14.07, 0, 0, 0, 0, 0, 0),)
2025-07-01 14:51:54,193 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:51:36
2025-07-01 14:51:54,281 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:51:54,286 [DEBUG][       Thread-608223][   transport.py][1871] : starting thread (client mode): 0x81a4c10
2025-07-01 14:51:54,286 [DEBUG][       Thread-608223][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:51:54,307 [DEBUG][       Thread-608223][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:51:54,307 [ INFO][       Thread-608223][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:51:54,310 [DEBUG][       Thread-608223][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:51:54,310 [DEBUG][       Thread-608223][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:51:54,310 [DEBUG][       Thread-608223][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:51:54,310 [DEBUG][       Thread-608223][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:51:54,310 [DEBUG][       Thread-608223][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:51:54,310 [DEBUG][       Thread-608223][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:51:54,310 [DEBUG][       Thread-608223][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:51:54,310 [DEBUG][       Thread-608223][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:51:54,310 [DEBUG][       Thread-608223][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:51:54,310 [DEBUG][       Thread-608223][   transport.py][1871] : client lang: <none>
2025-07-01 14:51:54,310 [DEBUG][       Thread-608223][   transport.py][1871] : server lang: <none>
2025-07-01 14:51:54,310 [DEBUG][       Thread-608223][   transport.py][1871] : kex follows: False
2025-07-01 14:51:54,310 [DEBUG][       Thread-608223][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:51:54,310 [DEBUG][       Thread-608223][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:51:54,310 [DEBUG][       Thread-608223][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:51:54,310 [DEBUG][       Thread-608223][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:51:54,310 [DEBUG][       Thread-608223][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:51:54,310 [DEBUG][       Thread-608223][   transport.py][1871] : Compression: none
2025-07-01 14:51:54,310 [DEBUG][       Thread-608223][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:51:54,324 [DEBUG][       Thread-608223][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:51:54,324 [DEBUG][       Thread-608223][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:51:54,324 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:51:54,324 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:51:54,324 [DEBUG][       Thread-608223][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:51:54,324 [DEBUG][       Thread-608223][   transport.py][1871] : userauth is OK
2025-07-01 14:51:54,349 [ INFO][       Thread-608223][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:51:54,349 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:51:55,166 [DEBUG][       Thread-608223][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:51:55,166 [DEBUG][       Thread-608223][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:51:55,208 [DEBUG][       Thread-608223][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:51:55,208 [DEBUG][       Thread-608223][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:51:55,211 [DEBUG][       Thread-608223][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:51:55,221 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:51:55,221 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:51:55,222 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:51:55,223 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:51:55,225 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:51:55,226 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:51:55,226 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:51:55,226 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:51:55,226 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.535704 -999.00  +14.10  39.59     50   +4.10 1 2 2 1 1   887    0 9.86 6.68 ----- 38.8 39.6 21.4 48.5 16.4 -19.7 15.7 -20.3 16.0 -19.3 16.6 -20.9
2025-07-01 14:51:55,226 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:51:55,227 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:51:55,227 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.535704
2025-07-01 14:51:55,227 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:51:55,227 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:51:55,227 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:51:55,227 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:51:55,227 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:51:55,227 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:51:36', tmtdew=11.28, humidity=46.49, cloud=29.3, wind=35.16, temperature=14.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:51:24.826', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:51:55,228 [DEBUG][       Thread-608223][   transport.py][1871] : EOF in transport thread
2025-07-01 14:51:55,300 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:51:55,310 [DEBUG][       Thread-608226][   transport.py][1871] : starting thread (client mode): 0x81d9720
2025-07-01 14:51:55,310 [DEBUG][       Thread-608226][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:51:55,325 [DEBUG][       Thread-608226][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:51:55,325 [ INFO][       Thread-608226][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:51:55,333 [DEBUG][       Thread-608226][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:51:55,333 [DEBUG][       Thread-608226][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:51:55,333 [DEBUG][       Thread-608226][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:51:55,333 [DEBUG][       Thread-608226][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:51:55,333 [DEBUG][       Thread-608226][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:51:55,333 [DEBUG][       Thread-608226][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:51:55,333 [DEBUG][       Thread-608226][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:51:55,333 [DEBUG][       Thread-608226][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:51:55,333 [DEBUG][       Thread-608226][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:51:55,333 [DEBUG][       Thread-608226][   transport.py][1871] : client lang: <none>
2025-07-01 14:51:55,333 [DEBUG][       Thread-608226][   transport.py][1871] : server lang: <none>
2025-07-01 14:51:55,333 [DEBUG][       Thread-608226][   transport.py][1871] : kex follows: False
2025-07-01 14:51:55,333 [DEBUG][       Thread-608226][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:51:55,333 [DEBUG][       Thread-608226][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:51:55,333 [DEBUG][       Thread-608226][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:51:55,333 [DEBUG][       Thread-608226][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:51:55,333 [DEBUG][       Thread-608226][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:51:55,333 [DEBUG][       Thread-608226][   transport.py][1871] : Compression: none
2025-07-01 14:51:55,333 [DEBUG][       Thread-608226][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:51:55,389 [DEBUG][       Thread-608226][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:51:55,389 [DEBUG][       Thread-608226][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:51:55,390 [DEBUG][       Thread-608226][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:51:55,390 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:51:55,390 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:51:55,447 [DEBUG][       Thread-608226][   transport.py][1871] : userauth is OK
2025-07-01 14:51:55,447 [DEBUG][       Thread-608226][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:51:55,447 [DEBUG][       Thread-608226][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:51:55,447 [DEBUG][       Thread-608226][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:51:55,447 [DEBUG][       Thread-608226][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:51:55,463 [ INFO][       Thread-608226][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:51:55,463 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:51:55,463 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:51:56,409 [DEBUG][Thread-608228 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:51:56,485 [DEBUG][       Thread-608226][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:51:56,485 [DEBUG][       Thread-608226][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:51:56,536 [DEBUG][       Thread-608226][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:51:56,536 [DEBUG][       Thread-608226][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:51:56,544 [DEBUG][       Thread-608226][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:51:56,553 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:51:56,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')
2025-07-01 14:51:56,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-07-01 14:51:56,570 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:51:56,570 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:51:56,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:51:56,578 [DEBUG][       Thread-608226][   transport.py][1871] : EOF in transport thread
2025-07-01 14:52:05,430 [DEBUG][Thread-608229 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:52:06,580 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:52:06,580 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:52:06,580 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:52:06,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-07-01 14:52:07,077 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 51, 36), 11.28, 46.49, 29.3, 35.16, 14.07, 0, 0, 0, 0, 0, 0),)
2025-07-01 14:52:07,077 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:51:36
2025-07-01 14:52:07,162 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:52:07,166 [DEBUG][       Thread-608230][   transport.py][1871] : starting thread (client mode): 0x81ca350
2025-07-01 14:52:07,166 [DEBUG][       Thread-608230][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:52:07,185 [DEBUG][       Thread-608230][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:52:07,185 [ INFO][       Thread-608230][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:52:07,188 [DEBUG][       Thread-608230][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:52:07,189 [DEBUG][       Thread-608230][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:52:07,189 [DEBUG][       Thread-608230][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:52:07,189 [DEBUG][       Thread-608230][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:52:07,189 [DEBUG][       Thread-608230][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:52:07,189 [DEBUG][       Thread-608230][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:52:07,189 [DEBUG][       Thread-608230][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:52:07,189 [DEBUG][       Thread-608230][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:52:07,189 [DEBUG][       Thread-608230][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:52:07,189 [DEBUG][       Thread-608230][   transport.py][1871] : client lang: <none>
2025-07-01 14:52:07,189 [DEBUG][       Thread-608230][   transport.py][1871] : server lang: <none>
2025-07-01 14:52:07,189 [DEBUG][       Thread-608230][   transport.py][1871] : kex follows: False
2025-07-01 14:52:07,189 [DEBUG][       Thread-608230][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:52:07,189 [DEBUG][       Thread-608230][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:52:07,189 [DEBUG][       Thread-608230][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:52:07,189 [DEBUG][       Thread-608230][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:52:07,189 [DEBUG][       Thread-608230][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:52:07,189 [DEBUG][       Thread-608230][   transport.py][1871] : Compression: none
2025-07-01 14:52:07,189 [DEBUG][       Thread-608230][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:52:07,205 [DEBUG][       Thread-608230][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:52:07,205 [DEBUG][       Thread-608230][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:52:07,206 [DEBUG][       Thread-608230][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:52:07,206 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:52:07,206 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:52:07,207 [DEBUG][       Thread-608230][   transport.py][1871] : userauth is OK
2025-07-01 14:52:07,220 [ INFO][       Thread-608230][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:52:07,221 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:52:07,842 [DEBUG][       Thread-608230][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:52:07,843 [DEBUG][       Thread-608230][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:52:07,885 [DEBUG][       Thread-608230][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:52:07,885 [DEBUG][       Thread-608230][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:52:07,888 [DEBUG][       Thread-608230][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:52:07,902 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:52:07,902 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:52:07,903 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:52:07,904 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:52:07,907 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:52:07,907 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:52:07,907 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:52:07,908 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:52:07,908 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.536052 -999.00  +14.00  47.60     51   +4.10 1 2 2 1 1   887    0 10.01 9.96 ----- 43.4 47.6 26.4 58.2 16.4 -20.4 15.7 -20.5 16.0 -19.4 16.6 -18.9
2025-07-01 14:52:07,908 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:52:07,908 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:52:07,908 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.536052
2025-07-01 14:52:07,908 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:52:07,908 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:52:07,908 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:52:07,908 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:52:07,908 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:52:07,908 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:51:36', tmtdew=11.28, humidity=46.49, cloud=29.3, wind=35.16, temperature=14.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:51:54.893', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:52:07,909 [DEBUG][       Thread-608230][   transport.py][1871] : EOF in transport thread
2025-07-01 14:52:07,980 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:52:07,990 [DEBUG][       Thread-608233][   transport.py][1871] : starting thread (client mode): 0x8393c40
2025-07-01 14:52:07,990 [DEBUG][       Thread-608233][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:52:08,009 [DEBUG][       Thread-608233][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:52:08,009 [ INFO][       Thread-608233][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:52:08,020 [DEBUG][       Thread-608233][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:52:08,020 [DEBUG][       Thread-608233][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:52:08,020 [DEBUG][       Thread-608233][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:52:08,020 [DEBUG][       Thread-608233][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:52:08,020 [DEBUG][       Thread-608233][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:52:08,020 [DEBUG][       Thread-608233][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:52:08,020 [DEBUG][       Thread-608233][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:52:08,020 [DEBUG][       Thread-608233][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:52:08,020 [DEBUG][       Thread-608233][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:52:08,020 [DEBUG][       Thread-608233][   transport.py][1871] : client lang: <none>
2025-07-01 14:52:08,020 [DEBUG][       Thread-608233][   transport.py][1871] : server lang: <none>
2025-07-01 14:52:08,020 [DEBUG][       Thread-608233][   transport.py][1871] : kex follows: False
2025-07-01 14:52:08,020 [DEBUG][       Thread-608233][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:52:08,020 [DEBUG][       Thread-608233][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:52:08,020 [DEBUG][       Thread-608233][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:52:08,020 [DEBUG][       Thread-608233][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:52:08,020 [DEBUG][       Thread-608233][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:52:08,020 [DEBUG][       Thread-608233][   transport.py][1871] : Compression: none
2025-07-01 14:52:08,020 [DEBUG][       Thread-608233][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:52:08,082 [DEBUG][       Thread-608233][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:52:08,083 [DEBUG][       Thread-608233][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:52:08,083 [DEBUG][       Thread-608233][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:52:08,083 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:52:08,084 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:52:08,144 [DEBUG][       Thread-608233][   transport.py][1871] : userauth is OK
2025-07-01 14:52:08,144 [DEBUG][       Thread-608233][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:52:08,144 [DEBUG][       Thread-608233][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:52:08,144 [DEBUG][       Thread-608233][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:52:08,144 [DEBUG][       Thread-608233][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:52:08,164 [ INFO][       Thread-608233][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:52:08,165 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:52:08,165 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:52:09,227 [DEBUG][       Thread-608233][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:52:09,227 [DEBUG][       Thread-608233][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:52:09,276 [DEBUG][       Thread-608233][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:52:09,276 [DEBUG][       Thread-608233][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:52:09,285 [DEBUG][       Thread-608233][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:52:09,293 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:52:09,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-07-01 14:52:09,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-07-01 14:52:09,314 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:52:09,314 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:52:09,315 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:52:09,322 [DEBUG][       Thread-608233][   transport.py][1871] : EOF in transport thread
2025-07-01 14:52:14,450 [DEBUG][Thread-608235 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:52:19,324 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:52:19,324 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:52:19,333 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:52:19,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-07-01 14:52:19,819 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 52, 8), 11.3, 46.43, 29.3, 38.8, 14.11, 0, 0, 0, 0, 0, 0),)
2025-07-01 14:52:19,819 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:52:08
2025-07-01 14:52:19,905 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:52:19,911 [DEBUG][       Thread-608236][   transport.py][1871] : starting thread (client mode): 0x81a5960
2025-07-01 14:52:19,911 [DEBUG][       Thread-608236][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:52:19,931 [DEBUG][       Thread-608236][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:52:19,931 [ INFO][       Thread-608236][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:52:19,934 [DEBUG][       Thread-608236][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:52:19,934 [DEBUG][       Thread-608236][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:52:19,934 [DEBUG][       Thread-608236][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:52:19,935 [DEBUG][       Thread-608236][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:52:19,935 [DEBUG][       Thread-608236][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:52:19,935 [DEBUG][       Thread-608236][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:52:19,935 [DEBUG][       Thread-608236][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:52:19,935 [DEBUG][       Thread-608236][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:52:19,935 [DEBUG][       Thread-608236][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:52:19,935 [DEBUG][       Thread-608236][   transport.py][1871] : client lang: <none>
2025-07-01 14:52:19,935 [DEBUG][       Thread-608236][   transport.py][1871] : server lang: <none>
2025-07-01 14:52:19,935 [DEBUG][       Thread-608236][   transport.py][1871] : kex follows: False
2025-07-01 14:52:19,935 [DEBUG][       Thread-608236][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:52:19,935 [DEBUG][       Thread-608236][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:52:19,935 [DEBUG][       Thread-608236][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:52:19,935 [DEBUG][       Thread-608236][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:52:19,935 [DEBUG][       Thread-608236][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:52:19,935 [DEBUG][       Thread-608236][   transport.py][1871] : Compression: none
2025-07-01 14:52:19,935 [DEBUG][       Thread-608236][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:52:19,953 [DEBUG][       Thread-608236][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:52:19,954 [DEBUG][       Thread-608236][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:52:19,954 [DEBUG][       Thread-608236][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:52:19,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:52:19,955 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:52:19,956 [DEBUG][       Thread-608236][   transport.py][1871] : userauth is OK
2025-07-01 14:52:19,980 [ INFO][       Thread-608236][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:52:19,980 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:52:20,621 [DEBUG][       Thread-608236][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:52:20,621 [DEBUG][       Thread-608236][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:52:20,665 [DEBUG][       Thread-608236][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:52:20,665 [DEBUG][       Thread-608236][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:52:20,668 [DEBUG][       Thread-608236][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:52:20,682 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:52:20,682 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:52:20,684 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:52:20,686 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:52:20,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:52:20,694 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:52:20,694 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:52:20,695 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:52:20,695 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.536052 -999.00  +14.00  47.60     51   +4.10 1 2 2 1 1   887    0 10.01 9.96 ----- 43.4 47.6 26.4 58.2 16.4 -20.4 15.7 -20.5 16.0 -19.4 16.6 -18.9
2025-07-01 14:52:20,695 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:52:20,695 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:52:20,695 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.536052
2025-07-01 14:52:20,695 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:52:20,696 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:52:20,696 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:52:20,696 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:52:20,696 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:52:20,697 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:52:08', tmtdew=11.3, humidity=46.43, cloud=29.3, wind=38.8, temperature=14.11, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:51:54.893', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:52:20,698 [DEBUG][       Thread-608236][   transport.py][1871] : EOF in transport thread
2025-07-01 14:52:20,783 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:52:20,794 [DEBUG][       Thread-608239][   transport.py][1871] : starting thread (client mode): 0x82b23b0
2025-07-01 14:52:20,794 [DEBUG][       Thread-608239][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:52:20,814 [DEBUG][       Thread-608239][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:52:20,814 [ INFO][       Thread-608239][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:52:20,828 [DEBUG][       Thread-608239][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:52:20,829 [DEBUG][       Thread-608239][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:52:20,829 [DEBUG][       Thread-608239][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:52:20,829 [DEBUG][       Thread-608239][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:52:20,829 [DEBUG][       Thread-608239][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:52:20,829 [DEBUG][       Thread-608239][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:52:20,829 [DEBUG][       Thread-608239][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:52:20,829 [DEBUG][       Thread-608239][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:52:20,829 [DEBUG][       Thread-608239][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:52:20,829 [DEBUG][       Thread-608239][   transport.py][1871] : client lang: <none>
2025-07-01 14:52:20,829 [DEBUG][       Thread-608239][   transport.py][1871] : server lang: <none>
2025-07-01 14:52:20,829 [DEBUG][       Thread-608239][   transport.py][1871] : kex follows: False
2025-07-01 14:52:20,829 [DEBUG][       Thread-608239][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:52:20,829 [DEBUG][       Thread-608239][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:52:20,829 [DEBUG][       Thread-608239][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:52:20,829 [DEBUG][       Thread-608239][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:52:20,830 [DEBUG][       Thread-608239][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:52:20,830 [DEBUG][       Thread-608239][   transport.py][1871] : Compression: none
2025-07-01 14:52:20,830 [DEBUG][       Thread-608239][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:52:20,888 [DEBUG][       Thread-608239][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:52:20,888 [DEBUG][       Thread-608239][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:52:20,889 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:52:20,889 [DEBUG][       Thread-608239][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:52:20,890 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:52:20,943 [DEBUG][       Thread-608239][   transport.py][1871] : userauth is OK
2025-07-01 14:52:20,944 [DEBUG][       Thread-608239][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:52:20,944 [DEBUG][       Thread-608239][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:52:20,944 [DEBUG][       Thread-608239][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:52:20,944 [DEBUG][       Thread-608239][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:52:20,963 [ INFO][       Thread-608239][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:52:20,963 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:52:20,964 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:52:22,015 [DEBUG][       Thread-608239][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:52:22,015 [DEBUG][       Thread-608239][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:52:22,064 [DEBUG][       Thread-608239][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:52:22,064 [DEBUG][       Thread-608239][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:52:22,073 [DEBUG][       Thread-608239][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:52:22,082 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:52:22,083 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 14:52:22,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') -> 00000000
2025-07-01 14:52:22,101 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:52:22,101 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:52:22,102 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:52:22,110 [DEBUG][       Thread-608239][   transport.py][1871] : EOF in transport thread
2025-07-01 14:52:23,472 [DEBUG][Thread-608241 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:52:32,112 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:52:32,112 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:52:32,112 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:52:32,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-07-01 14:52:32,497 [DEBUG][Thread-608242 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:52:32,627 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 52, 8), 11.3, 46.43, 29.3, 38.8, 14.11, 0, 0, 0, 0, 0, 0),)
2025-07-01 14:52:32,627 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:52:08
2025-07-01 14:52:32,716 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:52:32,722 [DEBUG][       Thread-608243][   transport.py][1871] : starting thread (client mode): 0x81a4ac0
2025-07-01 14:52:32,722 [DEBUG][       Thread-608243][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:52:32,742 [DEBUG][       Thread-608243][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:52:32,742 [ INFO][       Thread-608243][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:52:32,745 [DEBUG][       Thread-608243][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:52:32,745 [DEBUG][       Thread-608243][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:52:32,745 [DEBUG][       Thread-608243][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:52:32,745 [DEBUG][       Thread-608243][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:52:32,745 [DEBUG][       Thread-608243][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:52:32,745 [DEBUG][       Thread-608243][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:52:32,745 [DEBUG][       Thread-608243][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:52:32,745 [DEBUG][       Thread-608243][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:52:32,745 [DEBUG][       Thread-608243][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:52:32,745 [DEBUG][       Thread-608243][   transport.py][1871] : client lang: <none>
2025-07-01 14:52:32,745 [DEBUG][       Thread-608243][   transport.py][1871] : server lang: <none>
2025-07-01 14:52:32,745 [DEBUG][       Thread-608243][   transport.py][1871] : kex follows: False
2025-07-01 14:52:32,745 [DEBUG][       Thread-608243][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:52:32,745 [DEBUG][       Thread-608243][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:52:32,745 [DEBUG][       Thread-608243][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:52:32,745 [DEBUG][       Thread-608243][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:52:32,745 [DEBUG][       Thread-608243][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:52:32,745 [DEBUG][       Thread-608243][   transport.py][1871] : Compression: none
2025-07-01 14:52:32,745 [DEBUG][       Thread-608243][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:52:32,759 [DEBUG][       Thread-608243][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:52:32,759 [DEBUG][       Thread-608243][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:52:32,760 [DEBUG][       Thread-608243][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:52:32,760 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:52:32,760 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:52:32,760 [DEBUG][       Thread-608243][   transport.py][1871] : userauth is OK
2025-07-01 14:52:32,784 [ INFO][       Thread-608243][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:52:32,784 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:52:33,613 [DEBUG][       Thread-608243][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:52:33,613 [DEBUG][       Thread-608243][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:52:33,656 [DEBUG][       Thread-608243][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:52:33,656 [DEBUG][       Thread-608243][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:52:33,659 [DEBUG][       Thread-608243][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:52:33,670 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:52:33,670 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:52:33,671 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:52:33,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:52:33,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:52:33,676 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:52:33,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:52:33,676 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:52:33,676 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.536052 -999.00  +14.00  47.60     51   +4.10 1 2 2 1 1   887    0 10.01 9.96 ----- 43.4 47.6 26.4 58.2 16.4 -20.4 15.7 -20.5 16.0 -19.4 16.6 -18.9
2025-07-01 14:52:33,676 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:52:33,676 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:52:33,676 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.536052
2025-07-01 14:52:33,676 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:52:33,677 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:52:33,677 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:52:33,677 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:52:33,677 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:52:33,677 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:52:08', tmtdew=11.3, humidity=46.43, cloud=29.3, wind=38.8, temperature=14.11, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:51:54.893', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:52:33,678 [DEBUG][       Thread-608243][   transport.py][1871] : EOF in transport thread
2025-07-01 14:52:33,750 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:52:33,763 [DEBUG][       Thread-608246][   transport.py][1871] : starting thread (client mode): 0x8106a10
2025-07-01 14:52:33,763 [DEBUG][       Thread-608246][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:52:33,779 [DEBUG][       Thread-608246][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:52:33,779 [ INFO][       Thread-608246][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:52:33,790 [DEBUG][       Thread-608246][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:52:33,790 [DEBUG][       Thread-608246][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:52:33,790 [DEBUG][       Thread-608246][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:52:33,791 [DEBUG][       Thread-608246][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:52:33,791 [DEBUG][       Thread-608246][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:52:33,791 [DEBUG][       Thread-608246][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:52:33,791 [DEBUG][       Thread-608246][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:52:33,791 [DEBUG][       Thread-608246][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:52:33,791 [DEBUG][       Thread-608246][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:52:33,791 [DEBUG][       Thread-608246][   transport.py][1871] : client lang: <none>
2025-07-01 14:52:33,791 [DEBUG][       Thread-608246][   transport.py][1871] : server lang: <none>
2025-07-01 14:52:33,791 [DEBUG][       Thread-608246][   transport.py][1871] : kex follows: False
2025-07-01 14:52:33,791 [DEBUG][       Thread-608246][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:52:33,791 [DEBUG][       Thread-608246][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:52:33,791 [DEBUG][       Thread-608246][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:52:33,791 [DEBUG][       Thread-608246][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:52:33,791 [DEBUG][       Thread-608246][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:52:33,791 [DEBUG][       Thread-608246][   transport.py][1871] : Compression: none
2025-07-01 14:52:33,791 [DEBUG][       Thread-608246][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:52:33,843 [DEBUG][       Thread-608246][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:52:33,843 [DEBUG][       Thread-608246][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:52:33,843 [DEBUG][       Thread-608246][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:52:33,843 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:52:33,843 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:52:33,899 [DEBUG][       Thread-608246][   transport.py][1871] : userauth is OK
2025-07-01 14:52:33,899 [DEBUG][       Thread-608246][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:52:33,899 [DEBUG][       Thread-608246][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:52:33,899 [DEBUG][       Thread-608246][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:52:33,899 [DEBUG][       Thread-608246][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:52:33,914 [ INFO][       Thread-608246][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:52:33,914 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:52:33,914 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:52:34,971 [DEBUG][       Thread-608246][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:52:34,971 [DEBUG][       Thread-608246][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:52:35,019 [DEBUG][       Thread-608246][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:52:35,019 [DEBUG][       Thread-608246][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:52:35,030 [DEBUG][       Thread-608246][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:52:35,038 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:52:35,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-07-01 14:52:35,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-07-01 14:52:35,054 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:52:35,054 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:52:35,054 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:52:35,062 [DEBUG][       Thread-608246][   transport.py][1871] : EOF in transport thread
2025-07-01 14:52:35,758 [DEBUG][Thread-608248 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:52:41,513 [DEBUG][Thread-608249 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:52:45,064 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:52:45,065 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:52:45,065 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:52:45,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-07-01 14:52:45,550 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 52, 40), 11.34, 46.31, 29.3, 34.9, 14.11, 0, 0, 0, 0, 0, 0),)
2025-07-01 14:52:45,550 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:52:40
2025-07-01 14:52:45,634 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:52:45,638 [DEBUG][       Thread-608250][   transport.py][1871] : starting thread (client mode): 0x81a6e30
2025-07-01 14:52:45,638 [DEBUG][       Thread-608250][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:52:45,651 [DEBUG][       Thread-608250][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:52:45,652 [ INFO][       Thread-608250][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:52:45,654 [DEBUG][       Thread-608250][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:52:45,654 [DEBUG][       Thread-608250][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:52:45,654 [DEBUG][       Thread-608250][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:52:45,654 [DEBUG][       Thread-608250][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:52:45,654 [DEBUG][       Thread-608250][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:52:45,654 [DEBUG][       Thread-608250][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:52:45,654 [DEBUG][       Thread-608250][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:52:45,654 [DEBUG][       Thread-608250][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:52:45,654 [DEBUG][       Thread-608250][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:52:45,654 [DEBUG][       Thread-608250][   transport.py][1871] : client lang: <none>
2025-07-01 14:52:45,654 [DEBUG][       Thread-608250][   transport.py][1871] : server lang: <none>
2025-07-01 14:52:45,654 [DEBUG][       Thread-608250][   transport.py][1871] : kex follows: False
2025-07-01 14:52:45,654 [DEBUG][       Thread-608250][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:52:45,654 [DEBUG][       Thread-608250][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:52:45,654 [DEBUG][       Thread-608250][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:52:45,654 [DEBUG][       Thread-608250][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:52:45,654 [DEBUG][       Thread-608250][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:52:45,654 [DEBUG][       Thread-608250][   transport.py][1871] : Compression: none
2025-07-01 14:52:45,654 [DEBUG][       Thread-608250][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:52:45,670 [DEBUG][       Thread-608250][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:52:45,671 [DEBUG][       Thread-608250][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:52:45,671 [DEBUG][       Thread-608250][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:52:45,671 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:52:45,671 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:52:45,672 [DEBUG][       Thread-608250][   transport.py][1871] : userauth is OK
2025-07-01 14:52:45,686 [ INFO][       Thread-608250][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:52:45,687 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:52:46,397 [DEBUG][       Thread-608250][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:52:46,397 [DEBUG][       Thread-608250][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:52:46,441 [DEBUG][       Thread-608250][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:52:46,441 [DEBUG][       Thread-608250][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:52:46,445 [DEBUG][       Thread-608250][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:52:46,458 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:52:46,458 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:52:46,460 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:52:46,462 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:52:46,469 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:52:46,471 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:52:46,471 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:52:46,472 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:52:46,472 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.536399 -999.00  +14.00  44.05     51   +4.10 1 2 2 1 1   887    0 10.16 10.33 ----- 38.7 44.0 33.0 50.5 16.4 -20.4 15.8 -20.4 16.1 -19.1 16.7 -19.1
2025-07-01 14:52:46,472 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:52:46,472 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:52:46,472 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.536399
2025-07-01 14:52:46,472 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:52:46,473 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:52:46,473 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:52:46,473 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:52:46,473 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:52:46,473 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:52:40', tmtdew=11.34, humidity=46.31, cloud=29.3, wind=34.9, temperature=14.11, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:52:24.874', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:52:46,474 [DEBUG][       Thread-608250][   transport.py][1871] : EOF in transport thread
2025-07-01 14:52:46,557 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:52:46,566 [DEBUG][       Thread-608253][   transport.py][1871] : starting thread (client mode): 0x82b1720
2025-07-01 14:52:46,566 [DEBUG][       Thread-608253][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:52:46,585 [DEBUG][       Thread-608253][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:52:46,585 [ INFO][       Thread-608253][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:52:46,593 [DEBUG][       Thread-608253][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:52:46,593 [DEBUG][       Thread-608253][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:52:46,593 [DEBUG][       Thread-608253][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:52:46,593 [DEBUG][       Thread-608253][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:52:46,593 [DEBUG][       Thread-608253][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:52:46,593 [DEBUG][       Thread-608253][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:52:46,593 [DEBUG][       Thread-608253][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:52:46,593 [DEBUG][       Thread-608253][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:52:46,593 [DEBUG][       Thread-608253][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:52:46,594 [DEBUG][       Thread-608253][   transport.py][1871] : client lang: <none>
2025-07-01 14:52:46,594 [DEBUG][       Thread-608253][   transport.py][1871] : server lang: <none>
2025-07-01 14:52:46,594 [DEBUG][       Thread-608253][   transport.py][1871] : kex follows: False
2025-07-01 14:52:46,594 [DEBUG][       Thread-608253][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:52:46,594 [DEBUG][       Thread-608253][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:52:46,594 [DEBUG][       Thread-608253][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:52:46,594 [DEBUG][       Thread-608253][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:52:46,594 [DEBUG][       Thread-608253][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:52:46,594 [DEBUG][       Thread-608253][   transport.py][1871] : Compression: none
2025-07-01 14:52:46,594 [DEBUG][       Thread-608253][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:52:46,653 [DEBUG][       Thread-608253][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:52:46,653 [DEBUG][       Thread-608253][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:52:46,654 [DEBUG][       Thread-608253][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:52:46,654 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:52:46,655 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:52:46,712 [DEBUG][       Thread-608253][   transport.py][1871] : userauth is OK
2025-07-01 14:52:46,712 [DEBUG][       Thread-608253][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:52:46,712 [DEBUG][       Thread-608253][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:52:46,712 [DEBUG][       Thread-608253][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:52:46,713 [DEBUG][       Thread-608253][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:52:46,731 [ INFO][       Thread-608253][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:52:46,732 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:52:46,732 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:52:47,802 [DEBUG][       Thread-608253][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:52:47,802 [DEBUG][       Thread-608253][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:52:47,852 [DEBUG][       Thread-608253][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:52:47,852 [DEBUG][       Thread-608253][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:52:47,862 [DEBUG][       Thread-608253][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:52:47,870 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:52:47,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-07-01 14:52:47,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-07-01 14:52:47,889 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:52:47,889 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:52:47,889 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:52:47,897 [DEBUG][       Thread-608253][   transport.py][1871] : EOF in transport thread
2025-07-01 14:52:50,533 [DEBUG][Thread-608255 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:52:57,898 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:52:57,898 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:52:57,898 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:52:57,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-07-01 14:52:58,384 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 52, 40), 11.34, 46.31, 29.3, 34.9, 14.11, 0, 0, 0, 0, 0, 0),)
2025-07-01 14:52:58,384 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:52:40
2025-07-01 14:52:58,469 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:52:58,475 [DEBUG][       Thread-608256][   transport.py][1871] : starting thread (client mode): 0x81a4670
2025-07-01 14:52:58,475 [DEBUG][       Thread-608256][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:52:58,496 [DEBUG][       Thread-608256][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:52:58,496 [ INFO][       Thread-608256][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:52:58,500 [DEBUG][       Thread-608256][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:52:58,500 [DEBUG][       Thread-608256][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:52:58,500 [DEBUG][       Thread-608256][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:52:58,500 [DEBUG][       Thread-608256][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:52:58,500 [DEBUG][       Thread-608256][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:52:58,500 [DEBUG][       Thread-608256][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:52:58,500 [DEBUG][       Thread-608256][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:52:58,500 [DEBUG][       Thread-608256][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:52:58,500 [DEBUG][       Thread-608256][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:52:58,500 [DEBUG][       Thread-608256][   transport.py][1871] : client lang: <none>
2025-07-01 14:52:58,500 [DEBUG][       Thread-608256][   transport.py][1871] : server lang: <none>
2025-07-01 14:52:58,500 [DEBUG][       Thread-608256][   transport.py][1871] : kex follows: False
2025-07-01 14:52:58,500 [DEBUG][       Thread-608256][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:52:58,500 [DEBUG][       Thread-608256][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:52:58,500 [DEBUG][       Thread-608256][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:52:58,500 [DEBUG][       Thread-608256][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:52:58,500 [DEBUG][       Thread-608256][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:52:58,500 [DEBUG][       Thread-608256][   transport.py][1871] : Compression: none
2025-07-01 14:52:58,500 [DEBUG][       Thread-608256][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:52:58,517 [DEBUG][       Thread-608256][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:52:58,517 [DEBUG][       Thread-608256][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:52:58,517 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:52:58,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:52:58,518 [DEBUG][       Thread-608256][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:52:58,561 [DEBUG][       Thread-608256][   transport.py][1871] : userauth is OK
2025-07-01 14:52:58,585 [ INFO][       Thread-608256][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:52:58,586 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:52:59,256 [DEBUG][       Thread-608256][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:52:59,257 [DEBUG][       Thread-608256][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:52:59,301 [DEBUG][       Thread-608256][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:52:59,301 [DEBUG][       Thread-608256][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:52:59,304 [DEBUG][       Thread-608256][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:52:59,316 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:52:59,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:52:59,318 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:52:59,320 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:52:59,324 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:52:59,326 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:52:59,326 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:52:59,326 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:52:59,327 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.536399 -999.00  +14.00  44.05     51   +4.10 1 2 2 1 1   887    0 10.16 10.33 ----- 38.7 44.0 33.0 50.5 16.4 -20.4 15.8 -20.4 16.1 -19.1 16.7 -19.1
2025-07-01 14:52:59,327 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:52:59,327 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:52:59,327 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.536399
2025-07-01 14:52:59,327 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:52:59,328 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:52:59,328 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:52:59,328 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:52:59,328 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:52:59,328 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:52:40', tmtdew=11.34, humidity=46.31, cloud=29.3, wind=34.9, temperature=14.11, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:52:24.874', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:52:59,329 [DEBUG][       Thread-608256][   transport.py][1871] : EOF in transport thread
2025-07-01 14:52:59,411 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:52:59,422 [DEBUG][       Thread-608259][   transport.py][1871] : starting thread (client mode): 0x81da7d0
2025-07-01 14:52:59,422 [DEBUG][       Thread-608259][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:52:59,437 [DEBUG][       Thread-608259][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:52:59,437 [ INFO][       Thread-608259][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:52:59,445 [DEBUG][       Thread-608259][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:52:59,445 [DEBUG][       Thread-608259][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:52:59,445 [DEBUG][       Thread-608259][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:52:59,445 [DEBUG][       Thread-608259][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:52:59,445 [DEBUG][       Thread-608259][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:52:59,445 [DEBUG][       Thread-608259][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:52:59,445 [DEBUG][       Thread-608259][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:52:59,445 [DEBUG][       Thread-608259][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:52:59,445 [DEBUG][       Thread-608259][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:52:59,445 [DEBUG][       Thread-608259][   transport.py][1871] : client lang: <none>
2025-07-01 14:52:59,446 [DEBUG][       Thread-608259][   transport.py][1871] : server lang: <none>
2025-07-01 14:52:59,446 [DEBUG][       Thread-608259][   transport.py][1871] : kex follows: False
2025-07-01 14:52:59,446 [DEBUG][       Thread-608259][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:52:59,446 [DEBUG][       Thread-608259][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:52:59,446 [DEBUG][       Thread-608259][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:52:59,446 [DEBUG][       Thread-608259][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:52:59,446 [DEBUG][       Thread-608259][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:52:59,446 [DEBUG][       Thread-608259][   transport.py][1871] : Compression: none
2025-07-01 14:52:59,446 [DEBUG][       Thread-608259][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:52:59,504 [DEBUG][       Thread-608259][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:52:59,505 [DEBUG][       Thread-608259][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:52:59,505 [DEBUG][       Thread-608259][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:52:59,505 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:52:59,506 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:52:59,561 [DEBUG][       Thread-608259][   transport.py][1871] : userauth is OK
2025-07-01 14:52:59,561 [DEBUG][       Thread-608259][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:52:59,562 [DEBUG][       Thread-608259][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:52:59,562 [DEBUG][       Thread-608259][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:52:59,562 [DEBUG][       Thread-608259][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:52:59,573 [DEBUG][Thread-608261 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:52:59,581 [ INFO][       Thread-608259][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:52:59,582 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:52:59,582 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:53:00,629 [DEBUG][       Thread-608259][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:53:00,629 [DEBUG][       Thread-608259][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:53:00,680 [DEBUG][       Thread-608259][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:53:00,680 [DEBUG][       Thread-608259][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:53:00,690 [DEBUG][       Thread-608259][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:53:00,699 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:53:00,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-07-01 14:53:00,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-07-01 14:53:00,717 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:53:00,717 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:53:00,718 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:53:00,726 [DEBUG][       Thread-608259][   transport.py][1871] : EOF in transport thread
2025-07-01 14:53:08,592 [DEBUG][Thread-608262 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:53:10,728 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:53:10,728 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:53:10,728 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:53:10,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-07-01 14:53:11,236 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 52, 40), 11.34, 46.31, 29.3, 34.9, 14.11, 0, 0, 0, 0, 0, 0),)
2025-07-01 14:53:11,236 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:52:40
2025-07-01 14:53:11,326 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:53:11,330 [DEBUG][       Thread-608263][   transport.py][1871] : starting thread (client mode): 0x81caa70
2025-07-01 14:53:11,330 [DEBUG][       Thread-608263][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:53:11,350 [DEBUG][       Thread-608263][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:53:11,350 [ INFO][       Thread-608263][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:53:11,352 [DEBUG][       Thread-608263][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:53:11,352 [DEBUG][       Thread-608263][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:53:11,352 [DEBUG][       Thread-608263][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:53:11,352 [DEBUG][       Thread-608263][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:53:11,352 [DEBUG][       Thread-608263][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:53:11,352 [DEBUG][       Thread-608263][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:53:11,352 [DEBUG][       Thread-608263][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:53:11,352 [DEBUG][       Thread-608263][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:53:11,352 [DEBUG][       Thread-608263][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:53:11,352 [DEBUG][       Thread-608263][   transport.py][1871] : client lang: <none>
2025-07-01 14:53:11,352 [DEBUG][       Thread-608263][   transport.py][1871] : server lang: <none>
2025-07-01 14:53:11,352 [DEBUG][       Thread-608263][   transport.py][1871] : kex follows: False
2025-07-01 14:53:11,352 [DEBUG][       Thread-608263][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:53:11,352 [DEBUG][       Thread-608263][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:53:11,352 [DEBUG][       Thread-608263][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:53:11,352 [DEBUG][       Thread-608263][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:53:11,352 [DEBUG][       Thread-608263][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:53:11,352 [DEBUG][       Thread-608263][   transport.py][1871] : Compression: none
2025-07-01 14:53:11,352 [DEBUG][       Thread-608263][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:53:11,359 [DEBUG][       Thread-608263][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:53:11,359 [DEBUG][       Thread-608263][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:53:11,360 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:53:11,360 [DEBUG][       Thread-608263][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:53:11,360 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:53:11,360 [DEBUG][       Thread-608263][   transport.py][1871] : userauth is OK
2025-07-01 14:53:11,384 [ INFO][       Thread-608263][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:53:11,384 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:53:12,049 [DEBUG][       Thread-608263][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:53:12,049 [DEBUG][       Thread-608263][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:53:12,092 [DEBUG][       Thread-608263][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:53:12,092 [DEBUG][       Thread-608263][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:53:12,095 [DEBUG][       Thread-608263][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:53:12,108 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:53:12,108 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:53:12,109 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:53:12,110 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:53:12,113 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:53:12,114 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:53:12,114 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:53:12,114 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:53:12,114 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.536399 -999.00  +14.00  44.05     51   +4.10 1 2 2 1 1   887    0 10.16 10.33 ----- 38.7 44.0 33.0 50.5 16.4 -20.4 15.8 -20.4 16.1 -19.1 16.7 -19.1
2025-07-01 14:53:12,114 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:53:12,114 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:53:12,114 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.536399
2025-07-01 14:53:12,114 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:53:12,114 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:53:12,114 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:53:12,114 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:53:12,114 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:53:12,114 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:52:40', tmtdew=11.34, humidity=46.31, cloud=29.3, wind=34.9, temperature=14.11, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:52:24.874', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:53:12,115 [DEBUG][       Thread-608263][   transport.py][1871] : EOF in transport thread
2025-07-01 14:53:12,187 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:53:12,196 [DEBUG][       Thread-608266][   transport.py][1871] : starting thread (client mode): 0x81e4340
2025-07-01 14:53:12,196 [DEBUG][       Thread-608266][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:53:12,215 [DEBUG][       Thread-608266][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:53:12,215 [ INFO][       Thread-608266][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:53:12,222 [DEBUG][       Thread-608266][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:53:12,222 [DEBUG][       Thread-608266][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:53:12,222 [DEBUG][       Thread-608266][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:53:12,222 [DEBUG][       Thread-608266][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:53:12,222 [DEBUG][       Thread-608266][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:53:12,222 [DEBUG][       Thread-608266][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:53:12,222 [DEBUG][       Thread-608266][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:53:12,222 [DEBUG][       Thread-608266][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:53:12,222 [DEBUG][       Thread-608266][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:53:12,222 [DEBUG][       Thread-608266][   transport.py][1871] : client lang: <none>
2025-07-01 14:53:12,222 [DEBUG][       Thread-608266][   transport.py][1871] : server lang: <none>
2025-07-01 14:53:12,222 [DEBUG][       Thread-608266][   transport.py][1871] : kex follows: False
2025-07-01 14:53:12,222 [DEBUG][       Thread-608266][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:53:12,223 [DEBUG][       Thread-608266][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:53:12,223 [DEBUG][       Thread-608266][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:53:12,223 [DEBUG][       Thread-608266][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:53:12,223 [DEBUG][       Thread-608266][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:53:12,223 [DEBUG][       Thread-608266][   transport.py][1871] : Compression: none
2025-07-01 14:53:12,223 [DEBUG][       Thread-608266][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:53:12,278 [DEBUG][       Thread-608266][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:53:12,278 [DEBUG][       Thread-608266][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:53:12,278 [DEBUG][       Thread-608266][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:53:12,278 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:53:12,278 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:53:12,336 [DEBUG][       Thread-608266][   transport.py][1871] : userauth is OK
2025-07-01 14:53:12,336 [DEBUG][       Thread-608266][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:53:12,336 [DEBUG][       Thread-608266][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:53:12,336 [DEBUG][       Thread-608266][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:53:12,336 [DEBUG][       Thread-608266][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:53:12,350 [ INFO][       Thread-608266][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:53:12,350 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:53:12,350 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:53:13,395 [DEBUG][       Thread-608266][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:53:13,395 [DEBUG][       Thread-608266][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:53:13,443 [DEBUG][       Thread-608266][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:53:13,443 [DEBUG][       Thread-608266][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:53:13,452 [DEBUG][       Thread-608266][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:53:13,460 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:53: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-07-01 14:53:13,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') -> 00000000
2025-07-01 14:53:13,475 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:53:13,475 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:53:13,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:53:13,483 [DEBUG][       Thread-608266][   transport.py][1871] : EOF in transport thread
2025-07-01 14:53:17,610 [DEBUG][Thread-608268 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:53:23,486 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:53:23,486 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:53:23,486 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:53:23,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-07-01 14:53:23,970 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 53, 12), 11.37, 46.57, 29.3, 30.31, 14.14, 0, 0, 0, 0, 0, 0),)
2025-07-01 14:53:23,970 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:53:12
2025-07-01 14:53:24,054 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:53:24,060 [DEBUG][       Thread-608269][   transport.py][1871] : starting thread (client mode): 0x81e4340
2025-07-01 14:53:24,060 [DEBUG][       Thread-608269][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:53:24,080 [DEBUG][       Thread-608269][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:53:24,081 [ INFO][       Thread-608269][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:53:24,084 [DEBUG][       Thread-608269][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:53:24,084 [DEBUG][       Thread-608269][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:53:24,084 [DEBUG][       Thread-608269][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:53:24,084 [DEBUG][       Thread-608269][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:53:24,084 [DEBUG][       Thread-608269][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:53:24,084 [DEBUG][       Thread-608269][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:53:24,084 [DEBUG][       Thread-608269][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:53:24,084 [DEBUG][       Thread-608269][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:53:24,084 [DEBUG][       Thread-608269][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:53:24,084 [DEBUG][       Thread-608269][   transport.py][1871] : client lang: <none>
2025-07-01 14:53:24,084 [DEBUG][       Thread-608269][   transport.py][1871] : server lang: <none>
2025-07-01 14:53:24,084 [DEBUG][       Thread-608269][   transport.py][1871] : kex follows: False
2025-07-01 14:53:24,084 [DEBUG][       Thread-608269][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:53:24,084 [DEBUG][       Thread-608269][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:53:24,084 [DEBUG][       Thread-608269][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:53:24,084 [DEBUG][       Thread-608269][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:53:24,084 [DEBUG][       Thread-608269][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:53:24,084 [DEBUG][       Thread-608269][   transport.py][1871] : Compression: none
2025-07-01 14:53:24,084 [DEBUG][       Thread-608269][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:53:24,103 [DEBUG][       Thread-608269][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:53:24,104 [DEBUG][       Thread-608269][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:53:24,105 [DEBUG][       Thread-608269][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:53:24,105 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:53:24,105 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:53:24,106 [DEBUG][       Thread-608269][   transport.py][1871] : userauth is OK
2025-07-01 14:53:24,131 [ INFO][       Thread-608269][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:53:24,131 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:53:24,775 [DEBUG][       Thread-608269][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:53:24,776 [DEBUG][       Thread-608269][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:53:24,817 [DEBUG][       Thread-608269][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:53:24,817 [DEBUG][       Thread-608269][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:53:24,820 [DEBUG][       Thread-608269][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:53:24,832 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:53:24,832 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:53:24,835 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:53:24,837 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:53:24,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:53:24,845 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:53:24,845 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:53:24,846 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:53:24,846 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.536746 -999.00  +14.10  38.45     51   +4.10 1 2 2 1 1   887    0 10.27 13.14 ----- 32.0 38.5 31.6 46.9 16.5 -20.9 15.8 -20.6 16.1 -19.8 16.7 -19.2
2025-07-01 14:53:24,846 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:53:24,846 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:53:24,846 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.536746
2025-07-01 14:53:24,847 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:53:24,847 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:53:24,847 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:53:24,847 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:53:24,847 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:53:24,848 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:53:12', tmtdew=11.37, humidity=46.57, cloud=29.3, wind=30.31, temperature=14.14, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:52:54.854', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:53:24,849 [DEBUG][       Thread-608269][   transport.py][1871] : EOF in transport thread
2025-07-01 14:53:24,927 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:53:24,939 [DEBUG][       Thread-608272][   transport.py][1871] : starting thread (client mode): 0x82b2620
2025-07-01 14:53:24,939 [DEBUG][       Thread-608272][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:53:24,954 [DEBUG][       Thread-608272][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:53:24,954 [ INFO][       Thread-608272][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:53:24,962 [DEBUG][       Thread-608272][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:53:24,962 [DEBUG][       Thread-608272][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:53:24,962 [DEBUG][       Thread-608272][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:53:24,962 [DEBUG][       Thread-608272][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:53:24,962 [DEBUG][       Thread-608272][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:53:24,962 [DEBUG][       Thread-608272][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:53:24,962 [DEBUG][       Thread-608272][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:53:24,962 [DEBUG][       Thread-608272][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:53:24,962 [DEBUG][       Thread-608272][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:53:24,962 [DEBUG][       Thread-608272][   transport.py][1871] : client lang: <none>
2025-07-01 14:53:24,962 [DEBUG][       Thread-608272][   transport.py][1871] : server lang: <none>
2025-07-01 14:53:24,962 [DEBUG][       Thread-608272][   transport.py][1871] : kex follows: False
2025-07-01 14:53:24,962 [DEBUG][       Thread-608272][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:53:24,962 [DEBUG][       Thread-608272][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:53:24,963 [DEBUG][       Thread-608272][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:53:24,963 [DEBUG][       Thread-608272][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:53:24,963 [DEBUG][       Thread-608272][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:53:24,963 [DEBUG][       Thread-608272][   transport.py][1871] : Compression: none
2025-07-01 14:53:24,963 [DEBUG][       Thread-608272][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:53:25,020 [DEBUG][       Thread-608272][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:53:25,021 [DEBUG][       Thread-608272][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:53:25,022 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:53:25,022 [DEBUG][       Thread-608272][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:53:25,023 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:53:25,080 [DEBUG][       Thread-608272][   transport.py][1871] : userauth is OK
2025-07-01 14:53:25,080 [DEBUG][       Thread-608272][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:53:25,080 [DEBUG][       Thread-608272][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:53:25,080 [DEBUG][       Thread-608272][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:53:25,080 [DEBUG][       Thread-608272][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:53:25,100 [ INFO][       Thread-608272][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:53:25,101 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:53:25,101 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:53:26,125 [DEBUG][       Thread-608272][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:53:26,125 [DEBUG][       Thread-608272][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:53:26,176 [DEBUG][       Thread-608272][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:53:26,176 [DEBUG][       Thread-608272][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:53:26,186 [DEBUG][       Thread-608272][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:53:26,195 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:53:26,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-07-01 14:53:26,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-07-01 14:53:26,213 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:53:26,214 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:53:26,214 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:53:26,222 [DEBUG][       Thread-608272][   transport.py][1871] : EOF in transport thread
2025-07-01 14:53:26,634 [DEBUG][Thread-608274 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:53:35,669 [DEBUG][Thread-608275 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:53:35,789 [DEBUG][Thread-608276 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:53:36,224 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:53:36,225 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:53:36,225 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:53:36,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-07-01 14:53:36,708 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 53, 12), 11.37, 46.57, 29.3, 30.31, 14.14, 0, 0, 0, 0, 0, 0),)
2025-07-01 14:53:36,708 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:53:12
2025-07-01 14:53:36,792 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:53:36,796 [DEBUG][       Thread-608277][   transport.py][1871] : starting thread (client mode): 0x81c9c30
2025-07-01 14:53:36,796 [DEBUG][       Thread-608277][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:53:36,817 [DEBUG][       Thread-608277][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:53:36,817 [ INFO][       Thread-608277][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:53:36,820 [DEBUG][       Thread-608277][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:53:36,820 [DEBUG][       Thread-608277][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:53:36,820 [DEBUG][       Thread-608277][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:53:36,820 [DEBUG][       Thread-608277][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:53:36,820 [DEBUG][       Thread-608277][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:53:36,820 [DEBUG][       Thread-608277][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:53:36,820 [DEBUG][       Thread-608277][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:53:36,820 [DEBUG][       Thread-608277][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:53:36,820 [DEBUG][       Thread-608277][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:53:36,820 [DEBUG][       Thread-608277][   transport.py][1871] : client lang: <none>
2025-07-01 14:53:36,820 [DEBUG][       Thread-608277][   transport.py][1871] : server lang: <none>
2025-07-01 14:53:36,821 [DEBUG][       Thread-608277][   transport.py][1871] : kex follows: False
2025-07-01 14:53:36,821 [DEBUG][       Thread-608277][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:53:36,821 [DEBUG][       Thread-608277][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:53:36,821 [DEBUG][       Thread-608277][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:53:36,821 [DEBUG][       Thread-608277][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:53:36,821 [DEBUG][       Thread-608277][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:53:36,821 [DEBUG][       Thread-608277][   transport.py][1871] : Compression: none
2025-07-01 14:53:36,821 [DEBUG][       Thread-608277][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:53:36,837 [DEBUG][       Thread-608277][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:53:36,837 [DEBUG][       Thread-608277][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:53:36,838 [DEBUG][       Thread-608277][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:53:36,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:53:36,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:53:36,839 [DEBUG][       Thread-608277][   transport.py][1871] : userauth is OK
2025-07-01 14:53:36,864 [ INFO][       Thread-608277][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:53:36,865 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:53:37,494 [DEBUG][       Thread-608277][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:53:37,494 [DEBUG][       Thread-608277][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:53:37,537 [DEBUG][       Thread-608277][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:53:37,537 [DEBUG][       Thread-608277][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:53:37,540 [DEBUG][       Thread-608277][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:53:37,552 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:53:37,553 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:53:37,555 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:53:37,557 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:53:37,562 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:53:37,564 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:53:37,564 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:53:37,565 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:53:37,565 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.536746 -999.00  +14.10  38.45     51   +4.10 1 2 2 1 1   887    0 10.27 13.14 ----- 32.0 38.5 31.6 46.9 16.5 -20.9 15.8 -20.6 16.1 -19.8 16.7 -19.2
2025-07-01 14:53:37,565 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:53:37,565 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:53:37,565 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.536746
2025-07-01 14:53:37,566 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:53:37,566 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:53:37,566 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:53:37,566 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:53:37,567 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:53:37,567 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:53:12', tmtdew=11.37, humidity=46.57, cloud=29.3, wind=30.31, temperature=14.14, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:52:54.854', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:53:37,568 [DEBUG][       Thread-608277][   transport.py][1871] : EOF in transport thread
2025-07-01 14:53:37,650 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:53:37,660 [DEBUG][       Thread-608280][   transport.py][1871] : starting thread (client mode): 0x827db40
2025-07-01 14:53:37,660 [DEBUG][       Thread-608280][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:53:37,676 [DEBUG][       Thread-608280][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:53:37,676 [ INFO][       Thread-608280][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:53:37,684 [DEBUG][       Thread-608280][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:53:37,684 [DEBUG][       Thread-608280][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:53:37,684 [DEBUG][       Thread-608280][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:53:37,684 [DEBUG][       Thread-608280][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:53:37,684 [DEBUG][       Thread-608280][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:53:37,684 [DEBUG][       Thread-608280][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:53:37,684 [DEBUG][       Thread-608280][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:53:37,684 [DEBUG][       Thread-608280][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:53:37,685 [DEBUG][       Thread-608280][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:53:37,685 [DEBUG][       Thread-608280][   transport.py][1871] : client lang: <none>
2025-07-01 14:53:37,685 [DEBUG][       Thread-608280][   transport.py][1871] : server lang: <none>
2025-07-01 14:53:37,685 [DEBUG][       Thread-608280][   transport.py][1871] : kex follows: False
2025-07-01 14:53:37,685 [DEBUG][       Thread-608280][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:53:37,685 [DEBUG][       Thread-608280][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:53:37,685 [DEBUG][       Thread-608280][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:53:37,685 [DEBUG][       Thread-608280][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:53:37,685 [DEBUG][       Thread-608280][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:53:37,685 [DEBUG][       Thread-608280][   transport.py][1871] : Compression: none
2025-07-01 14:53:37,686 [DEBUG][       Thread-608280][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:53:37,741 [DEBUG][       Thread-608280][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:53:37,742 [DEBUG][       Thread-608280][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:53:37,743 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:53:37,743 [DEBUG][       Thread-608280][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:53:37,744 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:53:37,802 [DEBUG][       Thread-608280][   transport.py][1871] : userauth is OK
2025-07-01 14:53:37,802 [DEBUG][       Thread-608280][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:53:37,802 [DEBUG][       Thread-608280][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:53:37,802 [DEBUG][       Thread-608280][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:53:37,803 [DEBUG][       Thread-608280][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:53:37,827 [ INFO][       Thread-608280][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:53:37,828 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:53:37,828 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:53:38,863 [DEBUG][       Thread-608280][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:53:38,864 [DEBUG][       Thread-608280][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:53:38,912 [DEBUG][       Thread-608280][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:53:38,912 [DEBUG][       Thread-608280][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:53:38,922 [DEBUG][       Thread-608280][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:53:38,931 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:53:38,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-07-01 14:53:38,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-07-01 14:53:38,950 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:53:38,951 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:53:38,951 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:53:38,959 [DEBUG][       Thread-608280][   transport.py][1871] : EOF in transport thread
2025-07-01 14:53:44,691 [DEBUG][Thread-608282 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:53:48,962 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:53:48,962 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:53:48,962 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:53:48,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-07-01 14:53:49,484 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 53, 46), 11.36, 46.6, 0.0, 34.76, 14.17, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:53:49,485 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:53:46
2025-07-01 14:53:49,569 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:53:49,573 [DEBUG][       Thread-608283][   transport.py][1871] : starting thread (client mode): 0x81cabf0
2025-07-01 14:53:49,573 [DEBUG][       Thread-608283][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:53:49,595 [DEBUG][       Thread-608283][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:53:49,595 [ INFO][       Thread-608283][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:53:49,598 [DEBUG][       Thread-608283][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:53:49,598 [DEBUG][       Thread-608283][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:53:49,598 [DEBUG][       Thread-608283][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:53:49,598 [DEBUG][       Thread-608283][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:53:49,598 [DEBUG][       Thread-608283][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:53:49,598 [DEBUG][       Thread-608283][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:53:49,598 [DEBUG][       Thread-608283][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:53:49,598 [DEBUG][       Thread-608283][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:53:49,598 [DEBUG][       Thread-608283][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:53:49,598 [DEBUG][       Thread-608283][   transport.py][1871] : client lang: <none>
2025-07-01 14:53:49,598 [DEBUG][       Thread-608283][   transport.py][1871] : server lang: <none>
2025-07-01 14:53:49,598 [DEBUG][       Thread-608283][   transport.py][1871] : kex follows: False
2025-07-01 14:53:49,598 [DEBUG][       Thread-608283][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:53:49,598 [DEBUG][       Thread-608283][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:53:49,598 [DEBUG][       Thread-608283][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:53:49,598 [DEBUG][       Thread-608283][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:53:49,598 [DEBUG][       Thread-608283][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:53:49,598 [DEBUG][       Thread-608283][   transport.py][1871] : Compression: none
2025-07-01 14:53:49,598 [DEBUG][       Thread-608283][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:53:49,613 [DEBUG][       Thread-608283][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:53:49,613 [DEBUG][       Thread-608283][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:53:49,613 [DEBUG][       Thread-608283][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:53:49,613 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:53:49,613 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:53:49,614 [DEBUG][       Thread-608283][   transport.py][1871] : userauth is OK
2025-07-01 14:53:49,626 [ INFO][       Thread-608283][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:53:49,626 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:53:50,226 [DEBUG][       Thread-608283][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:53:50,226 [DEBUG][       Thread-608283][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:53:50,268 [DEBUG][       Thread-608283][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:53:50,268 [DEBUG][       Thread-608283][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:53:50,271 [DEBUG][       Thread-608283][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:53:50,284 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:53:50,284 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:53:50,286 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:53:50,286 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:53:50,289 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:53:50,290 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:53:50,290 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:53:50,290 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:53:50,290 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.537093 -999.00  +14.10  41.60     50   +4.10 1 2 2 1 1   887    0 9.88 14.06 ----- 39.1 41.6 35.4 51.4 16.5 -20.4 15.8 -20.5 16.1 -19.6 16.8 -19.9
2025-07-01 14:53:50,290 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:53:50,290 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:53:50,290 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.537093
2025-07-01 14:53:50,290 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:53:50,290 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:53:50,290 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:53:50,290 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:53:50,290 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:53:50,290 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:53:46', tmtdew=11.36, humidity=46.6, cloud=0.0, wind=34.76, temperature=14.17, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:53:24.835', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:53:50,291 [DEBUG][       Thread-608283][   transport.py][1871] : EOF in transport thread
2025-07-01 14:53:50,365 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:53:50,377 [DEBUG][       Thread-608286][   transport.py][1871] : starting thread (client mode): 0x82b2aa0
2025-07-01 14:53:50,377 [DEBUG][       Thread-608286][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:53:50,392 [DEBUG][       Thread-608286][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:53:50,392 [ INFO][       Thread-608286][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:53:50,400 [DEBUG][       Thread-608286][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:53:50,400 [DEBUG][       Thread-608286][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:53:50,400 [DEBUG][       Thread-608286][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:53:50,400 [DEBUG][       Thread-608286][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:53:50,400 [DEBUG][       Thread-608286][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:53:50,400 [DEBUG][       Thread-608286][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:53:50,400 [DEBUG][       Thread-608286][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:53:50,400 [DEBUG][       Thread-608286][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:53:50,400 [DEBUG][       Thread-608286][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:53:50,400 [DEBUG][       Thread-608286][   transport.py][1871] : client lang: <none>
2025-07-01 14:53:50,400 [DEBUG][       Thread-608286][   transport.py][1871] : server lang: <none>
2025-07-01 14:53:50,400 [DEBUG][       Thread-608286][   transport.py][1871] : kex follows: False
2025-07-01 14:53:50,400 [DEBUG][       Thread-608286][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:53:50,400 [DEBUG][       Thread-608286][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:53:50,400 [DEBUG][       Thread-608286][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:53:50,400 [DEBUG][       Thread-608286][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:53:50,400 [DEBUG][       Thread-608286][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:53:50,400 [DEBUG][       Thread-608286][   transport.py][1871] : Compression: none
2025-07-01 14:53:50,400 [DEBUG][       Thread-608286][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:53:50,454 [DEBUG][       Thread-608286][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:53:50,455 [DEBUG][       Thread-608286][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:53:50,455 [DEBUG][       Thread-608286][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:53:50,455 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:53:50,455 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:53:50,516 [DEBUG][       Thread-608286][   transport.py][1871] : userauth is OK
2025-07-01 14:53:50,516 [DEBUG][       Thread-608286][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:53:50,516 [DEBUG][       Thread-608286][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:53:50,516 [DEBUG][       Thread-608286][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:53:50,516 [DEBUG][       Thread-608286][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:53:50,530 [ INFO][       Thread-608286][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:53:50,530 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:53:50,530 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:53:51,572 [DEBUG][       Thread-608286][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:53:51,572 [DEBUG][       Thread-608286][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:53:51,623 [DEBUG][       Thread-608286][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:53:51,623 [DEBUG][       Thread-608286][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:53:51,632 [DEBUG][       Thread-608286][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:53:51,639 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:53:51,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-07-01 14:53:51,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-07-01 14:53:51,655 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:53:51,655 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:53:51,655 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:53:51,663 [DEBUG][       Thread-608286][   transport.py][1871] : EOF in transport thread
2025-07-01 14:53:53,708 [DEBUG][Thread-608288 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:54:01,664 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:54:01,664 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:54:01,664 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:54:01,667 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:54:02,156 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 53, 46), 11.36, 46.6, 0.0, 34.76, 14.17, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:54:02,156 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:53:46
2025-07-01 14:54:02,239 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:54:02,244 [DEBUG][       Thread-608289][   transport.py][1871] : starting thread (client mode): 0x81cadd0
2025-07-01 14:54:02,244 [DEBUG][       Thread-608289][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:54:02,264 [DEBUG][       Thread-608289][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:54:02,264 [ INFO][       Thread-608289][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:54:02,267 [DEBUG][       Thread-608289][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:54:02,267 [DEBUG][       Thread-608289][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:54:02,267 [DEBUG][       Thread-608289][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:54:02,268 [DEBUG][       Thread-608289][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:54:02,268 [DEBUG][       Thread-608289][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:54:02,268 [DEBUG][       Thread-608289][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:54:02,268 [DEBUG][       Thread-608289][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:54:02,268 [DEBUG][       Thread-608289][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:54:02,268 [DEBUG][       Thread-608289][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:54:02,268 [DEBUG][       Thread-608289][   transport.py][1871] : client lang: <none>
2025-07-01 14:54:02,268 [DEBUG][       Thread-608289][   transport.py][1871] : server lang: <none>
2025-07-01 14:54:02,268 [DEBUG][       Thread-608289][   transport.py][1871] : kex follows: False
2025-07-01 14:54:02,268 [DEBUG][       Thread-608289][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:54:02,268 [DEBUG][       Thread-608289][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:54:02,268 [DEBUG][       Thread-608289][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:54:02,268 [DEBUG][       Thread-608289][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:54:02,268 [DEBUG][       Thread-608289][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:54:02,268 [DEBUG][       Thread-608289][   transport.py][1871] : Compression: none
2025-07-01 14:54:02,268 [DEBUG][       Thread-608289][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:54:02,286 [DEBUG][       Thread-608289][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:54:02,286 [DEBUG][       Thread-608289][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:54:02,287 [DEBUG][       Thread-608289][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:54:02,287 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:54:02,287 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:54:02,289 [DEBUG][       Thread-608289][   transport.py][1871] : userauth is OK
2025-07-01 14:54:02,303 [ INFO][       Thread-608289][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:54:02,303 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:54:02,743 [DEBUG][Thread-608291 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:54:02,950 [DEBUG][       Thread-608289][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:54:02,950 [DEBUG][       Thread-608289][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:54:02,993 [DEBUG][       Thread-608289][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:54:02,993 [DEBUG][       Thread-608289][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:54:02,996 [DEBUG][       Thread-608289][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:54:03,008 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:54:03,008 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:54:03,009 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:54:03,010 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:54:03,014 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:54:03,015 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:54:03,015 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:54:03,015 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:54:03,015 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.537093 -999.00  +14.10  41.60     50   +4.10 1 2 2 1 1   887    0 9.88 14.06 ----- 39.1 41.6 35.4 51.4 16.5 -20.4 15.8 -20.5 16.1 -19.6 16.8 -19.9
2025-07-01 14:54:03,015 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:54:03,015 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:54:03,015 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.537093
2025-07-01 14:54:03,015 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:54:03,016 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:54:03,016 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:54:03,016 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:54:03,016 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:54:03,016 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:53:46', tmtdew=11.36, humidity=46.6, cloud=0.0, wind=34.76, temperature=14.17, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:53:24.835', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:54:03,016 [DEBUG][       Thread-608289][   transport.py][1871] : EOF in transport thread
2025-07-01 14:54:03,087 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:54:03,097 [DEBUG][       Thread-608293][   transport.py][1871] : starting thread (client mode): 0x827d5d0
2025-07-01 14:54:03,097 [DEBUG][       Thread-608293][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:54:03,111 [DEBUG][       Thread-608293][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:54:03,111 [ INFO][       Thread-608293][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:54:03,119 [DEBUG][       Thread-608293][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:54:03,119 [DEBUG][       Thread-608293][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:54:03,119 [DEBUG][       Thread-608293][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:54:03,119 [DEBUG][       Thread-608293][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:54:03,119 [DEBUG][       Thread-608293][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:54:03,119 [DEBUG][       Thread-608293][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:54:03,119 [DEBUG][       Thread-608293][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:54:03,119 [DEBUG][       Thread-608293][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:54:03,119 [DEBUG][       Thread-608293][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:54:03,119 [DEBUG][       Thread-608293][   transport.py][1871] : client lang: <none>
2025-07-01 14:54:03,119 [DEBUG][       Thread-608293][   transport.py][1871] : server lang: <none>
2025-07-01 14:54:03,119 [DEBUG][       Thread-608293][   transport.py][1871] : kex follows: False
2025-07-01 14:54:03,119 [DEBUG][       Thread-608293][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:54:03,119 [DEBUG][       Thread-608293][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:54:03,119 [DEBUG][       Thread-608293][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:54:03,119 [DEBUG][       Thread-608293][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:54:03,119 [DEBUG][       Thread-608293][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:54:03,119 [DEBUG][       Thread-608293][   transport.py][1871] : Compression: none
2025-07-01 14:54:03,119 [DEBUG][       Thread-608293][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:54:03,177 [DEBUG][       Thread-608293][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:54:03,177 [DEBUG][       Thread-608293][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:54:03,178 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:54:03,179 [DEBUG][       Thread-608293][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:54:03,179 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:54:03,233 [DEBUG][       Thread-608293][   transport.py][1871] : userauth is OK
2025-07-01 14:54:03,234 [DEBUG][       Thread-608293][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:54:03,234 [DEBUG][       Thread-608293][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:54:03,234 [DEBUG][       Thread-608293][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:54:03,234 [DEBUG][       Thread-608293][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:54:03,253 [ INFO][       Thread-608293][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:54:03,253 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:54:03,254 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:54:04,295 [DEBUG][       Thread-608293][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:54:04,295 [DEBUG][       Thread-608293][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:54:04,344 [DEBUG][       Thread-608293][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:54:04,344 [DEBUG][       Thread-608293][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:54:04,354 [DEBUG][       Thread-608293][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:54:04,363 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:54:04,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-07-01 14:54:04,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-07-01 14:54:04,381 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:54:04,382 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:54:04,382 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:54:04,390 [DEBUG][       Thread-608293][   transport.py][1871] : EOF in transport thread
2025-07-01 14:54:11,764 [DEBUG][Thread-608295 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:54:14,390 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:54:14,391 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:54:14,391 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:54:14,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-07-01 14:54:14,879 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 53, 46), 11.36, 46.6, 0.0, 34.76, 14.17, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:54:14,880 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:53:46
2025-07-01 14:54:14,964 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:54:14,967 [DEBUG][       Thread-608296][   transport.py][1871] : starting thread (client mode): 0x8173190
2025-07-01 14:54:14,967 [DEBUG][       Thread-608296][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:54:14,987 [DEBUG][       Thread-608296][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:54:14,987 [ INFO][       Thread-608296][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:54:14,991 [DEBUG][       Thread-608296][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:54:14,991 [DEBUG][       Thread-608296][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:54:14,991 [DEBUG][       Thread-608296][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:54:14,991 [DEBUG][       Thread-608296][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:54:14,991 [DEBUG][       Thread-608296][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:54:14,991 [DEBUG][       Thread-608296][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:54:14,991 [DEBUG][       Thread-608296][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:54:14,991 [DEBUG][       Thread-608296][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:54:14,991 [DEBUG][       Thread-608296][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:54:14,991 [DEBUG][       Thread-608296][   transport.py][1871] : client lang: <none>
2025-07-01 14:54:14,991 [DEBUG][       Thread-608296][   transport.py][1871] : server lang: <none>
2025-07-01 14:54:14,991 [DEBUG][       Thread-608296][   transport.py][1871] : kex follows: False
2025-07-01 14:54:14,991 [DEBUG][       Thread-608296][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:54:14,991 [DEBUG][       Thread-608296][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:54:14,991 [DEBUG][       Thread-608296][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:54:14,991 [DEBUG][       Thread-608296][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:54:14,991 [DEBUG][       Thread-608296][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:54:14,991 [DEBUG][       Thread-608296][   transport.py][1871] : Compression: none
2025-07-01 14:54:14,991 [DEBUG][       Thread-608296][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:54:15,008 [DEBUG][       Thread-608296][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:54:15,008 [DEBUG][       Thread-608296][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:54:15,009 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:54:15,009 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:54:15,009 [DEBUG][       Thread-608296][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:54:15,053 [DEBUG][       Thread-608296][   transport.py][1871] : userauth is OK
2025-07-01 14:54:15,101 [ INFO][       Thread-608296][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:54:15,102 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:54:15,738 [DEBUG][       Thread-608296][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:54:15,739 [DEBUG][       Thread-608296][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:54:15,785 [DEBUG][       Thread-608296][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:54:15,785 [DEBUG][       Thread-608296][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:54:15,788 [DEBUG][       Thread-608296][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:54:15,800 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:54:15,800 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:54:15,802 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:54:15,804 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:54:15,809 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:54:15,811 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:54:15,811 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:54:15,812 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:54:15,812 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.537093 -999.00  +14.10  41.60     50   +4.10 1 2 2 1 1   887    0 9.88 14.06 ----- 39.1 41.6 35.4 51.4 16.5 -20.4 15.8 -20.5 16.1 -19.6 16.8 -19.9
2025-07-01 14:54:15,812 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:54:15,812 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:54:15,812 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.537093
2025-07-01 14:54:15,812 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:54:15,813 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:54:15,813 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:54:15,813 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:54:15,813 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:54:15,813 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:53:46', tmtdew=11.36, humidity=46.6, cloud=0.0, wind=34.76, temperature=14.17, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:53:24.835', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:54:15,814 [DEBUG][       Thread-608296][   transport.py][1871] : EOF in transport thread
2025-07-01 14:54:15,901 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:54:15,913 [DEBUG][       Thread-608299][   transport.py][1871] : starting thread (client mode): 0x81d8d00
2025-07-01 14:54:15,913 [DEBUG][       Thread-608299][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:54:15,928 [DEBUG][       Thread-608299][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:54:15,928 [ INFO][       Thread-608299][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:54:15,936 [DEBUG][       Thread-608299][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:54:15,936 [DEBUG][       Thread-608299][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:54:15,936 [DEBUG][       Thread-608299][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:54:15,936 [DEBUG][       Thread-608299][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:54:15,936 [DEBUG][       Thread-608299][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:54:15,936 [DEBUG][       Thread-608299][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:54:15,936 [DEBUG][       Thread-608299][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:54:15,936 [DEBUG][       Thread-608299][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:54:15,936 [DEBUG][       Thread-608299][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:54:15,936 [DEBUG][       Thread-608299][   transport.py][1871] : client lang: <none>
2025-07-01 14:54:15,936 [DEBUG][       Thread-608299][   transport.py][1871] : server lang: <none>
2025-07-01 14:54:15,936 [DEBUG][       Thread-608299][   transport.py][1871] : kex follows: False
2025-07-01 14:54:15,936 [DEBUG][       Thread-608299][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:54:15,936 [DEBUG][       Thread-608299][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:54:15,936 [DEBUG][       Thread-608299][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:54:15,936 [DEBUG][       Thread-608299][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:54:15,936 [DEBUG][       Thread-608299][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:54:15,936 [DEBUG][       Thread-608299][   transport.py][1871] : Compression: none
2025-07-01 14:54:15,936 [DEBUG][       Thread-608299][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:54:16,000 [DEBUG][       Thread-608299][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:54:16,000 [DEBUG][       Thread-608299][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:54:16,001 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:54:16,002 [DEBUG][       Thread-608299][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:54:16,002 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:54:16,058 [DEBUG][       Thread-608299][   transport.py][1871] : userauth is OK
2025-07-01 14:54:16,058 [DEBUG][       Thread-608299][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:54:16,058 [DEBUG][       Thread-608299][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:54:16,058 [DEBUG][       Thread-608299][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:54:16,058 [DEBUG][       Thread-608299][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:54:16,077 [ INFO][       Thread-608299][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:54:16,078 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:54:16,078 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:54:17,064 [DEBUG][       Thread-608299][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:54:17,064 [DEBUG][       Thread-608299][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:54:17,116 [DEBUG][       Thread-608299][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:54:17,116 [DEBUG][       Thread-608299][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:54:17,126 [DEBUG][       Thread-608299][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:54:17,135 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:54:17,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-07-01 14:54:17,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-07-01 14:54:17,153 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:54:17,153 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:54:17,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:54:17,161 [DEBUG][       Thread-608299][   transport.py][1871] : EOF in transport thread
2025-07-01 14:54:20,785 [DEBUG][Thread-608301 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:54:27,164 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:54:27,164 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:54:27,164 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:54:27,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-07-01 14:54:27,676 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 54, 17), 11.4, 46.25, 0.0, 43.19, 14.12, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:54:27,676 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:54:17
2025-07-01 14:54:27,762 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:54:27,767 [DEBUG][       Thread-608302][   transport.py][1871] : starting thread (client mode): 0x81ca6b0
2025-07-01 14:54:27,771 [DEBUG][       Thread-608302][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:54:27,788 [DEBUG][       Thread-608302][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:54:27,788 [ INFO][       Thread-608302][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:54:27,791 [DEBUG][       Thread-608302][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:54:27,791 [DEBUG][       Thread-608302][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:54:27,791 [DEBUG][       Thread-608302][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:54:27,791 [DEBUG][       Thread-608302][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:54:27,791 [DEBUG][       Thread-608302][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:54:27,791 [DEBUG][       Thread-608302][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:54:27,791 [DEBUG][       Thread-608302][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:54:27,791 [DEBUG][       Thread-608302][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:54:27,791 [DEBUG][       Thread-608302][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:54:27,791 [DEBUG][       Thread-608302][   transport.py][1871] : client lang: <none>
2025-07-01 14:54:27,791 [DEBUG][       Thread-608302][   transport.py][1871] : server lang: <none>
2025-07-01 14:54:27,791 [DEBUG][       Thread-608302][   transport.py][1871] : kex follows: False
2025-07-01 14:54:27,791 [DEBUG][       Thread-608302][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:54:27,791 [DEBUG][       Thread-608302][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:54:27,791 [DEBUG][       Thread-608302][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:54:27,791 [DEBUG][       Thread-608302][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:54:27,791 [DEBUG][       Thread-608302][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:54:27,791 [DEBUG][       Thread-608302][   transport.py][1871] : Compression: none
2025-07-01 14:54:27,791 [DEBUG][       Thread-608302][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:54:27,806 [DEBUG][       Thread-608302][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:54:27,806 [DEBUG][       Thread-608302][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:54:27,806 [DEBUG][       Thread-608302][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:54:27,807 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:54:27,807 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:54:27,848 [DEBUG][       Thread-608302][   transport.py][1871] : userauth is OK
2025-07-01 14:54:27,895 [ INFO][       Thread-608302][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:54:27,896 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:54:28,522 [DEBUG][       Thread-608302][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:54:28,522 [DEBUG][       Thread-608302][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:54:28,565 [DEBUG][       Thread-608302][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:54:28,565 [DEBUG][       Thread-608302][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:54:28,567 [DEBUG][       Thread-608302][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:54:28,581 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:54:28,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:54:28,583 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:54:28,584 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:54:28,587 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:54:28,587 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:54:28,587 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:54:28,588 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:54:28,588 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.537440 -999.00  +14.10  37.88     50   +4.10 1 2 2 1 1   887    0 10.02 16.44 ----- 34.6 37.9 9.0 61.5 16.6 -21.1 15.9 -20.9 16.2 -20.0 16.9 -19.6
2025-07-01 14:54:28,588 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:54:28,588 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:54:28,588 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.537440
2025-07-01 14:54:28,588 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:54:28,588 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:54:28,588 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:54:28,588 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:54:28,588 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:54:28,588 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:54:17', tmtdew=11.4, humidity=46.25, cloud=0.0, wind=43.19, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:53:54.816', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:54:28,589 [DEBUG][       Thread-608302][   transport.py][1871] : EOF in transport thread
2025-07-01 14:54:28,661 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:54:29,802 [DEBUG][Thread-608305 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:54:35,820 [DEBUG][Thread-608306 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:54:38,827 [DEBUG][Thread-608307 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:54:47,848 [DEBUG][Thread-608308 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:54:56,870 [DEBUG][Thread-608309 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:55:05,892 [DEBUG][Thread-608310 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:55:14,913 [DEBUG][Thread-608311 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:55:23,933 [DEBUG][Thread-608312 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:55:32,954 [DEBUG][Thread-608313 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:55:35,851 [DEBUG][Thread-608314 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:55:41,977 [DEBUG][Thread-608315 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:55:50,997 [DEBUG][Thread-608316 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:56:00,019 [DEBUG][Thread-608317 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:56:09,041 [DEBUG][Thread-608318 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:56:18,063 [DEBUG][Thread-608319 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:56:27,084 [DEBUG][Thread-608320 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:56:35,881 [DEBUG][Thread-608321 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:56:36,105 [DEBUG][Thread-608322 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:56:38,420 [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-07-01 14:56:45,128 [DEBUG][Thread-608323 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:56:48,431 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:56:48,431 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:56:48,431 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:56:48,434 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:56:48,931 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 56, 24), 11.48, 46.18, 0.0, 39.13, 14.19, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:56:48,931 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:56:24
2025-07-01 14:56:49,016 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:56:49,020 [DEBUG][       Thread-608324][   transport.py][1871] : starting thread (client mode): 0x81c8490
2025-07-01 14:56:49,020 [DEBUG][       Thread-608324][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:56:49,041 [DEBUG][       Thread-608324][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:56:49,041 [ INFO][       Thread-608324][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:56:49,044 [DEBUG][       Thread-608324][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:56:49,044 [DEBUG][       Thread-608324][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:56:49,044 [DEBUG][       Thread-608324][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:56:49,044 [DEBUG][       Thread-608324][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:56:49,045 [DEBUG][       Thread-608324][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:56:49,045 [DEBUG][       Thread-608324][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:56:49,045 [DEBUG][       Thread-608324][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:56:49,045 [DEBUG][       Thread-608324][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:56:49,045 [DEBUG][       Thread-608324][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:56:49,045 [DEBUG][       Thread-608324][   transport.py][1871] : client lang: <none>
2025-07-01 14:56:49,045 [DEBUG][       Thread-608324][   transport.py][1871] : server lang: <none>
2025-07-01 14:56:49,045 [DEBUG][       Thread-608324][   transport.py][1871] : kex follows: False
2025-07-01 14:56:49,045 [DEBUG][       Thread-608324][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:56:49,045 [DEBUG][       Thread-608324][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:56:49,045 [DEBUG][       Thread-608324][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:56:49,045 [DEBUG][       Thread-608324][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:56:49,045 [DEBUG][       Thread-608324][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:56:49,045 [DEBUG][       Thread-608324][   transport.py][1871] : Compression: none
2025-07-01 14:56:49,045 [DEBUG][       Thread-608324][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:56:49,063 [DEBUG][       Thread-608324][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:56:49,064 [DEBUG][       Thread-608324][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:56:49,064 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:56:49,064 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:56:49,065 [DEBUG][       Thread-608324][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:56:49,065 [DEBUG][       Thread-608324][   transport.py][1871] : userauth is OK
2025-07-01 14:56:49,091 [ INFO][       Thread-608324][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:56:49,091 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:56:49,774 [DEBUG][       Thread-608324][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:56:49,775 [DEBUG][       Thread-608324][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:56:49,817 [DEBUG][       Thread-608324][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:56:49,817 [DEBUG][       Thread-608324][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:56:49,821 [DEBUG][       Thread-608324][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:56:49,834 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:56:49,834 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:56:49,836 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:56:49,838 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:56:49,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:56:49,845 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:56:49,845 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:56:49,846 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:56:49,846 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.539176 -999.00  +14.10  43.10     50   +3.90 1 2 2 1 1   887    0 10.25 22.73 ----- 55.3 43.1 26.2 49.8 16.6 -22.5 15.9 -22.2 16.2 -21.6 16.9 -21.4
2025-07-01 14:56:49,846 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:56:49,846 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:56:49,847 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.539176
2025-07-01 14:56:49,847 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:56:49,848 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:56:49,848 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:56:49,848 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:56:49,848 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:56:49,848 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:56:24', tmtdew=11.48, humidity=46.18, cloud=0.0, wind=39.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:56:24.806', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:56:49,849 [DEBUG][       Thread-608324][   transport.py][1871] : EOF in transport thread
2025-07-01 14:56:49,931 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:56:49,943 [DEBUG][       Thread-608327][   transport.py][1871] : starting thread (client mode): 0x82b0a00
2025-07-01 14:56:49,943 [DEBUG][       Thread-608327][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:56:49,959 [DEBUG][       Thread-608327][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:56:49,959 [ INFO][       Thread-608327][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:56:49,967 [DEBUG][       Thread-608327][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:56:49,967 [DEBUG][       Thread-608327][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:56:49,967 [DEBUG][       Thread-608327][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:56:49,967 [DEBUG][       Thread-608327][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:56:49,967 [DEBUG][       Thread-608327][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:56:49,967 [DEBUG][       Thread-608327][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:56:49,967 [DEBUG][       Thread-608327][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:56:49,967 [DEBUG][       Thread-608327][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:56:49,968 [DEBUG][       Thread-608327][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:56:49,968 [DEBUG][       Thread-608327][   transport.py][1871] : client lang: <none>
2025-07-01 14:56:49,968 [DEBUG][       Thread-608327][   transport.py][1871] : server lang: <none>
2025-07-01 14:56:49,968 [DEBUG][       Thread-608327][   transport.py][1871] : kex follows: False
2025-07-01 14:56:49,968 [DEBUG][       Thread-608327][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:56:49,968 [DEBUG][       Thread-608327][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:56:49,968 [DEBUG][       Thread-608327][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:56:49,968 [DEBUG][       Thread-608327][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:56:49,968 [DEBUG][       Thread-608327][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:56:49,969 [DEBUG][       Thread-608327][   transport.py][1871] : Compression: none
2025-07-01 14:56:49,969 [DEBUG][       Thread-608327][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:56:50,032 [DEBUG][       Thread-608327][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:56:50,033 [DEBUG][       Thread-608327][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:56:50,033 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:56:50,034 [DEBUG][       Thread-608327][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:56:50,035 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:56:50,091 [DEBUG][       Thread-608327][   transport.py][1871] : userauth is OK
2025-07-01 14:56:50,091 [DEBUG][       Thread-608327][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:56:50,091 [DEBUG][       Thread-608327][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:56:50,091 [DEBUG][       Thread-608327][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:56:50,092 [DEBUG][       Thread-608327][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:56:50,124 [ INFO][       Thread-608327][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:56:50,124 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:56:50,125 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:56:51,183 [DEBUG][       Thread-608327][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:56:51,183 [DEBUG][       Thread-608327][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:56:51,232 [DEBUG][       Thread-608327][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:56:51,232 [DEBUG][       Thread-608327][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:56:51,241 [DEBUG][       Thread-608327][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:56:51,251 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:56:51,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-07-01 14:56:51,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-07-01 14:56:51,269 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:56:51,270 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:56:51,270 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:56:51,278 [DEBUG][       Thread-608327][   transport.py][1871] : EOF in transport thread
2025-07-01 14:56:54,150 [DEBUG][Thread-608329 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:57:01,280 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:57:01,280 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:57:01,280 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:57:01,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-07-01 14:57:01,810 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 56, 57), 11.53, 46.03, 0.0, 36.49, 14.18, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:57:01,810 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:56:57
2025-07-01 14:57:01,903 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:57:01,906 [DEBUG][       Thread-608330][   transport.py][1871] : starting thread (client mode): 0x81c9f60
2025-07-01 14:57:01,906 [DEBUG][       Thread-608330][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:57:01,927 [DEBUG][       Thread-608330][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:57:01,927 [ INFO][       Thread-608330][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:57:01,931 [DEBUG][       Thread-608330][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:57:01,931 [DEBUG][       Thread-608330][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:57:01,931 [DEBUG][       Thread-608330][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:57:01,931 [DEBUG][       Thread-608330][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:57:01,931 [DEBUG][       Thread-608330][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:57:01,931 [DEBUG][       Thread-608330][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:57:01,931 [DEBUG][       Thread-608330][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:57:01,931 [DEBUG][       Thread-608330][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:57:01,931 [DEBUG][       Thread-608330][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:57:01,931 [DEBUG][       Thread-608330][   transport.py][1871] : client lang: <none>
2025-07-01 14:57:01,931 [DEBUG][       Thread-608330][   transport.py][1871] : server lang: <none>
2025-07-01 14:57:01,931 [DEBUG][       Thread-608330][   transport.py][1871] : kex follows: False
2025-07-01 14:57:01,931 [DEBUG][       Thread-608330][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:57:01,931 [DEBUG][       Thread-608330][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:57:01,931 [DEBUG][       Thread-608330][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:57:01,931 [DEBUG][       Thread-608330][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:57:01,931 [DEBUG][       Thread-608330][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:57:01,931 [DEBUG][       Thread-608330][   transport.py][1871] : Compression: none
2025-07-01 14:57:01,931 [DEBUG][       Thread-608330][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:57:01,946 [DEBUG][       Thread-608330][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:57:01,946 [DEBUG][       Thread-608330][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:57:01,946 [DEBUG][       Thread-608330][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:57:01,946 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:57:01,946 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:57:01,947 [DEBUG][       Thread-608330][   transport.py][1871] : userauth is OK
2025-07-01 14:57:01,959 [ INFO][       Thread-608330][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:57:01,960 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:57:02,613 [DEBUG][       Thread-608330][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:57:02,613 [DEBUG][       Thread-608330][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:57:02,657 [DEBUG][       Thread-608330][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:57:02,657 [DEBUG][       Thread-608330][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:57:02,659 [DEBUG][       Thread-608330][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:57:02,670 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:57:02,671 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:57:02,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:57:02,673 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:57:02,676 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:57:02,678 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:57:02,678 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:57:02,678 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:57:02,678 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.539176 -999.00  +14.10  43.10     50   +3.90 1 2 2 1 1   887    0 10.25 22.73 ----- 55.3 43.1 26.2 49.8 16.6 -22.5 15.9 -22.2 16.2 -21.6 16.9 -21.4
2025-07-01 14:57:02,678 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:57:02,678 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:57:02,678 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.539176
2025-07-01 14:57:02,678 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:57:02,678 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:57:02,678 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:57:02,678 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:57:02,679 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:57:02,679 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:56:57', tmtdew=11.53, humidity=46.03, cloud=0.0, wind=36.49, temperature=14.18, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:56:24.806', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:57:02,679 [DEBUG][       Thread-608330][   transport.py][1871] : EOF in transport thread
2025-07-01 14:57:02,762 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:57:02,771 [DEBUG][       Thread-608333][   transport.py][1871] : starting thread (client mode): 0x8171600
2025-07-01 14:57:02,772 [DEBUG][       Thread-608333][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:57:02,787 [DEBUG][       Thread-608333][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:57:02,787 [ INFO][       Thread-608333][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:57:02,798 [DEBUG][       Thread-608333][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:57:02,798 [DEBUG][       Thread-608333][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:57:02,798 [DEBUG][       Thread-608333][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:57:02,798 [DEBUG][       Thread-608333][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:57:02,798 [DEBUG][       Thread-608333][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:57:02,798 [DEBUG][       Thread-608333][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:57:02,798 [DEBUG][       Thread-608333][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:57:02,798 [DEBUG][       Thread-608333][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:57:02,798 [DEBUG][       Thread-608333][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:57:02,798 [DEBUG][       Thread-608333][   transport.py][1871] : client lang: <none>
2025-07-01 14:57:02,798 [DEBUG][       Thread-608333][   transport.py][1871] : server lang: <none>
2025-07-01 14:57:02,798 [DEBUG][       Thread-608333][   transport.py][1871] : kex follows: False
2025-07-01 14:57:02,798 [DEBUG][       Thread-608333][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:57:02,798 [DEBUG][       Thread-608333][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:57:02,798 [DEBUG][       Thread-608333][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:57:02,798 [DEBUG][       Thread-608333][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:57:02,798 [DEBUG][       Thread-608333][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:57:02,798 [DEBUG][       Thread-608333][   transport.py][1871] : Compression: none
2025-07-01 14:57:02,798 [DEBUG][       Thread-608333][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:57:02,857 [DEBUG][       Thread-608333][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:57:02,857 [DEBUG][       Thread-608333][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:57:02,857 [DEBUG][       Thread-608333][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:57:02,857 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:57:02,857 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:57:02,914 [DEBUG][       Thread-608333][   transport.py][1871] : userauth is OK
2025-07-01 14:57:02,914 [DEBUG][       Thread-608333][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:57:02,915 [DEBUG][       Thread-608333][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:57:02,915 [DEBUG][       Thread-608333][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:57:02,915 [DEBUG][       Thread-608333][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:57:02,928 [ INFO][       Thread-608333][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:57:02,929 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:57:02,929 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:57:03,180 [DEBUG][Thread-608335 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:57:03,973 [DEBUG][       Thread-608333][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:57:03,973 [DEBUG][       Thread-608333][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:57:04,023 [DEBUG][       Thread-608333][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:57:04,024 [DEBUG][       Thread-608333][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:57:04,032 [DEBUG][       Thread-608333][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:57:04,040 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:57:04,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-07-01 14:57:04,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-07-01 14:57:04,056 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:57:04,056 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:57:04,056 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:57:04,064 [DEBUG][       Thread-608333][   transport.py][1871] : EOF in transport thread
2025-07-01 14:57:12,205 [DEBUG][Thread-608336 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:57:14,058 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:57:14,059 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:57:14,059 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:57:14,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-07-01 14:57:14,548 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 56, 57), 11.53, 46.03, 0.0, 36.49, 14.18, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:57:14,548 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:56:57
2025-07-01 14:57:14,630 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:57:14,635 [DEBUG][       Thread-608337][   transport.py][1871] : starting thread (client mode): 0x81e6260
2025-07-01 14:57:14,635 [DEBUG][       Thread-608337][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:57:14,655 [DEBUG][       Thread-608337][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:57:14,655 [ INFO][       Thread-608337][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:57:14,658 [DEBUG][       Thread-608337][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:57:14,659 [DEBUG][       Thread-608337][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:57:14,659 [DEBUG][       Thread-608337][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:57:14,659 [DEBUG][       Thread-608337][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:57:14,659 [DEBUG][       Thread-608337][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:57:14,659 [DEBUG][       Thread-608337][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:57:14,659 [DEBUG][       Thread-608337][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:57:14,659 [DEBUG][       Thread-608337][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:57:14,659 [DEBUG][       Thread-608337][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:57:14,659 [DEBUG][       Thread-608337][   transport.py][1871] : client lang: <none>
2025-07-01 14:57:14,659 [DEBUG][       Thread-608337][   transport.py][1871] : server lang: <none>
2025-07-01 14:57:14,659 [DEBUG][       Thread-608337][   transport.py][1871] : kex follows: False
2025-07-01 14:57:14,659 [DEBUG][       Thread-608337][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:57:14,659 [DEBUG][       Thread-608337][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:57:14,659 [DEBUG][       Thread-608337][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:57:14,659 [DEBUG][       Thread-608337][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:57:14,659 [DEBUG][       Thread-608337][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:57:14,659 [DEBUG][       Thread-608337][   transport.py][1871] : Compression: none
2025-07-01 14:57:14,659 [DEBUG][       Thread-608337][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:57:14,675 [DEBUG][       Thread-608337][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:57:14,675 [DEBUG][       Thread-608337][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:57:14,676 [DEBUG][       Thread-608337][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:57:14,676 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:57:14,676 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:57:14,677 [DEBUG][       Thread-608337][   transport.py][1871] : userauth is OK
2025-07-01 14:57:14,690 [ INFO][       Thread-608337][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:57:14,690 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:57:15,344 [DEBUG][       Thread-608337][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:57:15,345 [DEBUG][       Thread-608337][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:57:15,389 [DEBUG][       Thread-608337][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:57:15,389 [DEBUG][       Thread-608337][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:57:15,392 [DEBUG][       Thread-608337][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:57:15,404 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:57:15,405 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:57:15,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:57:15,409 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:57:15,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:57:15,417 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:57:15,418 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:57:15,418 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:57:15,419 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.539524 -999.00  +14.20  35.11     50   +4.10 1 2 2 1 1   887    0 10.15 24.04 ----- 39.9 35.1 28.5 61.2 16.6 -21.9 15.9 -22.5 16.3 -21.3 16.9 -20.3
2025-07-01 14:57:15,419 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:57:15,419 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:57:15,419 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.539524
2025-07-01 14:57:15,419 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:57:15,420 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:57:15,420 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:57:15,420 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:57:15,420 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:57:15,420 [DEBUG][       Thread-608337][   transport.py][1871] : EOF in transport thread
2025-07-01 14:57:15,421 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:56:57', tmtdew=11.53, humidity=46.03, cloud=0.0, wind=36.49, temperature=14.18, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:56:54.874', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:57:15,493 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:57:15,507 [DEBUG][       Thread-608340][   transport.py][1871] : starting thread (client mode): 0x8171900
2025-07-01 14:57:15,507 [DEBUG][       Thread-608340][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:57:15,525 [DEBUG][       Thread-608340][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:57:15,525 [ INFO][       Thread-608340][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:57:15,533 [DEBUG][       Thread-608340][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:57:15,533 [DEBUG][       Thread-608340][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:57:15,533 [DEBUG][       Thread-608340][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:57:15,533 [DEBUG][       Thread-608340][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:57:15,533 [DEBUG][       Thread-608340][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:57:15,533 [DEBUG][       Thread-608340][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:57:15,533 [DEBUG][       Thread-608340][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:57:15,533 [DEBUG][       Thread-608340][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:57:15,533 [DEBUG][       Thread-608340][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:57:15,534 [DEBUG][       Thread-608340][   transport.py][1871] : client lang: <none>
2025-07-01 14:57:15,534 [DEBUG][       Thread-608340][   transport.py][1871] : server lang: <none>
2025-07-01 14:57:15,534 [DEBUG][       Thread-608340][   transport.py][1871] : kex follows: False
2025-07-01 14:57:15,534 [DEBUG][       Thread-608340][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:57:15,534 [DEBUG][       Thread-608340][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:57:15,534 [DEBUG][       Thread-608340][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:57:15,534 [DEBUG][       Thread-608340][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:57:15,534 [DEBUG][       Thread-608340][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:57:15,534 [DEBUG][       Thread-608340][   transport.py][1871] : Compression: none
2025-07-01 14:57:15,534 [DEBUG][       Thread-608340][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:57:15,592 [DEBUG][       Thread-608340][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:57:15,593 [DEBUG][       Thread-608340][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:57:15,593 [DEBUG][       Thread-608340][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:57:15,594 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:57:15,594 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:57:15,651 [DEBUG][       Thread-608340][   transport.py][1871] : userauth is OK
2025-07-01 14:57:15,652 [DEBUG][       Thread-608340][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:57:15,652 [DEBUG][       Thread-608340][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:57:15,652 [DEBUG][       Thread-608340][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:57:15,652 [DEBUG][       Thread-608340][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:57:15,671 [ INFO][       Thread-608340][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:57:15,672 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:57:15,672 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:57:16,716 [DEBUG][       Thread-608340][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:57:16,717 [DEBUG][       Thread-608340][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:57:16,769 [DEBUG][       Thread-608340][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:57:16,769 [DEBUG][       Thread-608340][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:57:16,778 [DEBUG][       Thread-608340][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:57:16,787 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:57:16,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-07-01 14:57:16,797 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 14:57:16,806 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:57:16,806 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:57:16,807 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:57:16,815 [DEBUG][       Thread-608340][   transport.py][1871] : EOF in transport thread
2025-07-01 14:57:21,226 [DEBUG][Thread-608342 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:57:26,809 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:57:26,809 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:57:26,809 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:57:26,812 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 14:57:27,297 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 56, 57), 11.53, 46.03, 0.0, 36.49, 14.18, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:57:27,297 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:56:57
2025-07-01 14:57:27,381 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:57:27,387 [DEBUG][       Thread-608343][   transport.py][1871] : starting thread (client mode): 0x81ca4d0
2025-07-01 14:57:27,387 [DEBUG][       Thread-608343][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:57:27,407 [DEBUG][       Thread-608343][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:57:27,407 [ INFO][       Thread-608343][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:57:27,410 [DEBUG][       Thread-608343][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:57:27,410 [DEBUG][       Thread-608343][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:57:27,410 [DEBUG][       Thread-608343][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:57:27,410 [DEBUG][       Thread-608343][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:57:27,411 [DEBUG][       Thread-608343][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:57:27,411 [DEBUG][       Thread-608343][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:57:27,411 [DEBUG][       Thread-608343][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:57:27,411 [DEBUG][       Thread-608343][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:57:27,411 [DEBUG][       Thread-608343][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:57:27,411 [DEBUG][       Thread-608343][   transport.py][1871] : client lang: <none>
2025-07-01 14:57:27,411 [DEBUG][       Thread-608343][   transport.py][1871] : server lang: <none>
2025-07-01 14:57:27,411 [DEBUG][       Thread-608343][   transport.py][1871] : kex follows: False
2025-07-01 14:57:27,411 [DEBUG][       Thread-608343][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:57:27,411 [DEBUG][       Thread-608343][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:57:27,411 [DEBUG][       Thread-608343][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:57:27,411 [DEBUG][       Thread-608343][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:57:27,411 [DEBUG][       Thread-608343][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:57:27,411 [DEBUG][       Thread-608343][   transport.py][1871] : Compression: none
2025-07-01 14:57:27,411 [DEBUG][       Thread-608343][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:57:27,426 [DEBUG][       Thread-608343][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:57:27,427 [DEBUG][       Thread-608343][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:57:27,427 [DEBUG][       Thread-608343][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:57:27,427 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:57:27,428 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:57:27,429 [DEBUG][       Thread-608343][   transport.py][1871] : userauth is OK
2025-07-01 14:57:27,442 [ INFO][       Thread-608343][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:57:27,442 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:57:28,089 [DEBUG][       Thread-608343][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:57:28,089 [DEBUG][       Thread-608343][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:57:28,133 [DEBUG][       Thread-608343][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:57:28,133 [DEBUG][       Thread-608343][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:57:28,135 [DEBUG][       Thread-608343][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:57:28,149 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:57:28,149 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:57:28,151 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:57:28,153 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:57:28,158 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:57:28,160 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:57:28,161 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:57:28,161 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:57:28,162 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.539524 -999.00  +14.20  35.11     50   +4.10 1 2 2 1 1   887    0 10.15 24.04 ----- 39.9 35.1 28.5 61.2 16.6 -21.9 15.9 -22.5 16.3 -21.3 16.9 -20.3
2025-07-01 14:57:28,162 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:57:28,162 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:57:28,162 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.539524
2025-07-01 14:57:28,162 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:57:28,163 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:57:28,163 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:57:28,163 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:57:28,163 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:57:28,163 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:56:57', tmtdew=11.53, humidity=46.03, cloud=0.0, wind=36.49, temperature=14.18, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:56:54.874', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:57:28,164 [DEBUG][       Thread-608343][   transport.py][1871] : EOF in transport thread
2025-07-01 14:57:28,247 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:57:28,259 [DEBUG][       Thread-608346][   transport.py][1871] : starting thread (client mode): 0x8a66980
2025-07-01 14:57:28,259 [DEBUG][       Thread-608346][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:57:28,277 [DEBUG][       Thread-608346][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:57:28,277 [ INFO][       Thread-608346][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:57:28,284 [DEBUG][       Thread-608346][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:57:28,284 [DEBUG][       Thread-608346][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:57:28,284 [DEBUG][       Thread-608346][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:57:28,284 [DEBUG][       Thread-608346][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:57:28,284 [DEBUG][       Thread-608346][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:57:28,285 [DEBUG][       Thread-608346][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:57:28,285 [DEBUG][       Thread-608346][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:57:28,285 [DEBUG][       Thread-608346][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:57:28,285 [DEBUG][       Thread-608346][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:57:28,285 [DEBUG][       Thread-608346][   transport.py][1871] : client lang: <none>
2025-07-01 14:57:28,285 [DEBUG][       Thread-608346][   transport.py][1871] : server lang: <none>
2025-07-01 14:57:28,285 [DEBUG][       Thread-608346][   transport.py][1871] : kex follows: False
2025-07-01 14:57:28,285 [DEBUG][       Thread-608346][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:57:28,285 [DEBUG][       Thread-608346][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:57:28,285 [DEBUG][       Thread-608346][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:57:28,285 [DEBUG][       Thread-608346][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:57:28,285 [DEBUG][       Thread-608346][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:57:28,285 [DEBUG][       Thread-608346][   transport.py][1871] : Compression: none
2025-07-01 14:57:28,285 [DEBUG][       Thread-608346][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:57:28,350 [DEBUG][       Thread-608346][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:57:28,351 [DEBUG][       Thread-608346][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:57:28,351 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:57:28,352 [DEBUG][       Thread-608346][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:57:28,353 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:57:28,414 [DEBUG][       Thread-608346][   transport.py][1871] : userauth is OK
2025-07-01 14:57:28,414 [DEBUG][       Thread-608346][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:57:28,415 [DEBUG][       Thread-608346][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:57:28,415 [DEBUG][       Thread-608346][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:57:28,415 [DEBUG][       Thread-608346][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:57:28,430 [ INFO][       Thread-608346][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:57:28,430 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:57:28,430 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:57:29,494 [DEBUG][       Thread-608346][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:57:29,494 [DEBUG][       Thread-608346][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:57:29,547 [DEBUG][       Thread-608346][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:57:29,547 [DEBUG][       Thread-608346][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:57:29,563 [DEBUG][       Thread-608346][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:57:29,571 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:57:29,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-07-01 14:57:29,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-07-01 14:57:29,588 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:57:29,588 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:57:29,588 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:57:29,599 [DEBUG][       Thread-608346][   transport.py][1871] : EOF in transport thread
2025-07-01 14:57:30,245 [DEBUG][Thread-608348 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:57:35,912 [DEBUG][Thread-608349 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:57:39,266 [DEBUG][Thread-608350 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:57:39,598 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:57:39,598 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:57:39,599 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:57:39,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-07-01 14:57:40,106 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 57, 28), 11.49, 45.92, 0.0, 36.66, 14.22, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:57:40,106 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:57:28
2025-07-01 14:57:40,189 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:57:40,193 [DEBUG][       Thread-608351][   transport.py][1871] : starting thread (client mode): 0x81e6260
2025-07-01 14:57:40,193 [DEBUG][       Thread-608351][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:57:40,223 [DEBUG][       Thread-608351][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:57:40,223 [ INFO][       Thread-608351][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:57:40,225 [DEBUG][       Thread-608351][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:57:40,225 [DEBUG][       Thread-608351][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:57:40,225 [DEBUG][       Thread-608351][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:57:40,225 [DEBUG][       Thread-608351][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:57:40,225 [DEBUG][       Thread-608351][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:57:40,225 [DEBUG][       Thread-608351][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:57:40,225 [DEBUG][       Thread-608351][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:57:40,225 [DEBUG][       Thread-608351][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:57:40,225 [DEBUG][       Thread-608351][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:57:40,225 [DEBUG][       Thread-608351][   transport.py][1871] : client lang: <none>
2025-07-01 14:57:40,225 [DEBUG][       Thread-608351][   transport.py][1871] : server lang: <none>
2025-07-01 14:57:40,226 [DEBUG][       Thread-608351][   transport.py][1871] : kex follows: False
2025-07-01 14:57:40,226 [DEBUG][       Thread-608351][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:57:40,226 [DEBUG][       Thread-608351][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:57:40,226 [DEBUG][       Thread-608351][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:57:40,226 [DEBUG][       Thread-608351][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:57:40,226 [DEBUG][       Thread-608351][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:57:40,226 [DEBUG][       Thread-608351][   transport.py][1871] : Compression: none
2025-07-01 14:57:40,226 [DEBUG][       Thread-608351][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:57:40,235 [DEBUG][       Thread-608351][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:57:40,235 [DEBUG][       Thread-608351][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:57:40,236 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:57:40,236 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:57:40,236 [DEBUG][       Thread-608351][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:57:40,237 [DEBUG][       Thread-608351][   transport.py][1871] : userauth is OK
2025-07-01 14:57:40,260 [ INFO][       Thread-608351][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:57:40,261 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:57:40,824 [DEBUG][       Thread-608351][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:57:40,824 [DEBUG][       Thread-608351][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:57:40,868 [DEBUG][       Thread-608351][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:57:40,868 [DEBUG][       Thread-608351][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:57:40,871 [DEBUG][       Thread-608351][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:57:40,884 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:57:40,884 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:57:40,886 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:57:40,886 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:57:40,889 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:57:40,890 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:57:40,890 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:57:40,890 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:57:40,890 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.539871 -999.00  +14.20  35.28     50   +4.10 1 2 2 1 1   887    0 10.36 23.65 ----- 43.4 35.3 31.0 50.5 16.8 -22.4 16.0 -22.5 16.4 -21.5 17.0 -20.5
2025-07-01 14:57:40,890 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:57:40,890 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:57:40,890 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.539871
2025-07-01 14:57:40,890 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:57:40,890 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:57:40,890 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:57:40,890 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:57:40,890 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:57:40,890 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:57:28', tmtdew=11.49, humidity=45.92, cloud=0.0, wind=36.66, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:57:24.854', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:57:40,891 [DEBUG][       Thread-608351][   transport.py][1871] : EOF in transport thread
2025-07-01 14:57:40,964 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:57:40,974 [DEBUG][       Thread-608354][   transport.py][1871] : starting thread (client mode): 0x8a66980
2025-07-01 14:57:40,974 [DEBUG][       Thread-608354][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:57:40,988 [DEBUG][       Thread-608354][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:57:40,988 [ INFO][       Thread-608354][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:57:40,996 [DEBUG][       Thread-608354][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:57:40,996 [DEBUG][       Thread-608354][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:57:40,996 [DEBUG][       Thread-608354][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:57:40,996 [DEBUG][       Thread-608354][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:57:40,996 [DEBUG][       Thread-608354][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:57:40,996 [DEBUG][       Thread-608354][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:57:40,996 [DEBUG][       Thread-608354][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:57:40,996 [DEBUG][       Thread-608354][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:57:40,996 [DEBUG][       Thread-608354][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:57:40,996 [DEBUG][       Thread-608354][   transport.py][1871] : client lang: <none>
2025-07-01 14:57:40,996 [DEBUG][       Thread-608354][   transport.py][1871] : server lang: <none>
2025-07-01 14:57:40,996 [DEBUG][       Thread-608354][   transport.py][1871] : kex follows: False
2025-07-01 14:57:40,996 [DEBUG][       Thread-608354][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:57:40,996 [DEBUG][       Thread-608354][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:57:40,996 [DEBUG][       Thread-608354][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:57:40,996 [DEBUG][       Thread-608354][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:57:40,996 [DEBUG][       Thread-608354][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:57:40,996 [DEBUG][       Thread-608354][   transport.py][1871] : Compression: none
2025-07-01 14:57:40,996 [DEBUG][       Thread-608354][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:57:41,053 [DEBUG][       Thread-608354][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:57:41,053 [DEBUG][       Thread-608354][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:57:41,053 [DEBUG][       Thread-608354][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:57:41,054 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:57:41,054 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:57:41,111 [DEBUG][       Thread-608354][   transport.py][1871] : userauth is OK
2025-07-01 14:57:41,111 [DEBUG][       Thread-608354][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:57:41,111 [DEBUG][       Thread-608354][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:57:41,111 [DEBUG][       Thread-608354][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:57:41,111 [DEBUG][       Thread-608354][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:57:41,125 [ INFO][       Thread-608354][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:57:41,125 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:57:41,125 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:57:42,127 [DEBUG][       Thread-608354][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:57:42,128 [DEBUG][       Thread-608354][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:57:42,175 [DEBUG][       Thread-608354][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:57:42,175 [DEBUG][       Thread-608354][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:57:42,184 [DEBUG][       Thread-608354][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:57:42,192 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:57:42,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-07-01 14:57:42,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-07-01 14:57:42,208 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:57:42,208 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:57:42,208 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:57:42,216 [DEBUG][       Thread-608354][   transport.py][1871] : EOF in transport thread
2025-07-01 14:57:48,285 [DEBUG][Thread-608356 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:57:52,209 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:57:52,210 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:57:52,210 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:57:52,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-07-01 14:57:52,706 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 57, 28), 11.49, 45.92, 0.0, 36.66, 14.22, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:57:52,706 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:57:28
2025-07-01 14:57:52,791 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:57:52,797 [DEBUG][       Thread-608357][   transport.py][1871] : starting thread (client mode): 0x75ab490
2025-07-01 14:57:52,797 [DEBUG][       Thread-608357][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:57:52,818 [DEBUG][       Thread-608357][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:57:52,818 [ INFO][       Thread-608357][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:57:52,822 [DEBUG][       Thread-608357][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:57:52,822 [DEBUG][       Thread-608357][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:57:52,822 [DEBUG][       Thread-608357][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:57:52,822 [DEBUG][       Thread-608357][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:57:52,822 [DEBUG][       Thread-608357][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:57:52,822 [DEBUG][       Thread-608357][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:57:52,822 [DEBUG][       Thread-608357][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:57:52,822 [DEBUG][       Thread-608357][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:57:52,822 [DEBUG][       Thread-608357][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:57:52,822 [DEBUG][       Thread-608357][   transport.py][1871] : client lang: <none>
2025-07-01 14:57:52,822 [DEBUG][       Thread-608357][   transport.py][1871] : server lang: <none>
2025-07-01 14:57:52,822 [DEBUG][       Thread-608357][   transport.py][1871] : kex follows: False
2025-07-01 14:57:52,822 [DEBUG][       Thread-608357][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:57:52,822 [DEBUG][       Thread-608357][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:57:52,822 [DEBUG][       Thread-608357][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:57:52,822 [DEBUG][       Thread-608357][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:57:52,822 [DEBUG][       Thread-608357][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:57:52,822 [DEBUG][       Thread-608357][   transport.py][1871] : Compression: none
2025-07-01 14:57:52,822 [DEBUG][       Thread-608357][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:57:52,840 [DEBUG][       Thread-608357][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:57:52,841 [DEBUG][       Thread-608357][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:57:52,841 [DEBUG][       Thread-608357][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:57:52,841 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:57:52,841 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:57:52,842 [DEBUG][       Thread-608357][   transport.py][1871] : userauth is OK
2025-07-01 14:57:52,870 [ INFO][       Thread-608357][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:57:52,870 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:57:53,534 [DEBUG][       Thread-608357][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:57:53,534 [DEBUG][       Thread-608357][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:57:53,577 [DEBUG][       Thread-608357][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:57:53,577 [DEBUG][       Thread-608357][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:57:53,581 [DEBUG][       Thread-608357][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:57:53,595 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:57:53,595 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:57:53,597 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:57:53,599 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:57:53,606 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:57:53,607 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:57:53,608 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:57:53,608 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:57:53,609 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.539871 -999.00  +14.20  35.28     50   +4.10 1 2 2 1 1   887    0 10.36 23.65 ----- 43.4 35.3 31.0 50.5 16.8 -22.4 16.0 -22.5 16.4 -21.5 17.0 -20.5
2025-07-01 14:57:53,609 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:57:53,609 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:57:53,609 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.539871
2025-07-01 14:57:53,609 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:57:53,610 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:57:53,610 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:57:53,610 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:57:53,610 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:57:53,610 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:57:28', tmtdew=11.49, humidity=45.92, cloud=0.0, wind=36.66, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:57:24.854', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:57:53,611 [DEBUG][       Thread-608357][   transport.py][1871] : EOF in transport thread
2025-07-01 14:57:53,695 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:57:53,706 [DEBUG][       Thread-608360][   transport.py][1871] : starting thread (client mode): 0x8105060
2025-07-01 14:57:53,706 [DEBUG][       Thread-608360][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:57:53,721 [DEBUG][       Thread-608360][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:57:53,721 [ INFO][       Thread-608360][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:57:53,728 [DEBUG][       Thread-608360][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:57:53,728 [DEBUG][       Thread-608360][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:57:53,728 [DEBUG][       Thread-608360][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:57:53,728 [DEBUG][       Thread-608360][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:57:53,728 [DEBUG][       Thread-608360][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:57:53,728 [DEBUG][       Thread-608360][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:57:53,728 [DEBUG][       Thread-608360][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:57:53,728 [DEBUG][       Thread-608360][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:57:53,728 [DEBUG][       Thread-608360][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:57:53,729 [DEBUG][       Thread-608360][   transport.py][1871] : client lang: <none>
2025-07-01 14:57:53,729 [DEBUG][       Thread-608360][   transport.py][1871] : server lang: <none>
2025-07-01 14:57:53,729 [DEBUG][       Thread-608360][   transport.py][1871] : kex follows: False
2025-07-01 14:57:53,729 [DEBUG][       Thread-608360][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:57:53,729 [DEBUG][       Thread-608360][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:57:53,729 [DEBUG][       Thread-608360][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:57:53,729 [DEBUG][       Thread-608360][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:57:53,729 [DEBUG][       Thread-608360][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:57:53,729 [DEBUG][       Thread-608360][   transport.py][1871] : Compression: none
2025-07-01 14:57:53,729 [DEBUG][       Thread-608360][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:57:53,795 [DEBUG][       Thread-608360][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:57:53,796 [DEBUG][       Thread-608360][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:57:53,796 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:57:53,797 [DEBUG][       Thread-608360][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:57:53,798 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:57:53,851 [DEBUG][       Thread-608360][   transport.py][1871] : userauth is OK
2025-07-01 14:57:53,852 [DEBUG][       Thread-608360][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:57:53,852 [DEBUG][       Thread-608360][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:57:53,852 [DEBUG][       Thread-608360][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:57:53,852 [DEBUG][       Thread-608360][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:57:53,871 [ INFO][       Thread-608360][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:57:53,871 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:57:53,872 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:57:54,903 [DEBUG][       Thread-608360][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:57:54,903 [DEBUG][       Thread-608360][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:57:54,952 [DEBUG][       Thread-608360][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:57:54,952 [DEBUG][       Thread-608360][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:57:54,962 [DEBUG][       Thread-608360][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:57:54,973 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:57:54,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-07-01 14:57:54,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-07-01 14:57:54,997 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:57:54,997 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:57:54,997 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:57:55,005 [DEBUG][       Thread-608360][   transport.py][1871] : EOF in transport thread
2025-07-01 14:57:57,318 [DEBUG][Thread-608362 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:58:05,000 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:58:05,000 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:58:05,000 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:58:05,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-07-01 14:58:05,498 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 58), 11.53, 45.81, 0.0, 36.43, 14.27, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:58:05,498 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:58:00
2025-07-01 14:58:05,581 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:58:05,585 [DEBUG][       Thread-608363][   transport.py][1871] : starting thread (client mode): 0x81c9930
2025-07-01 14:58:05,585 [DEBUG][       Thread-608363][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:58:05,606 [DEBUG][       Thread-608363][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:58:05,606 [ INFO][       Thread-608363][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:58:05,609 [DEBUG][       Thread-608363][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:58:05,609 [DEBUG][       Thread-608363][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:58:05,609 [DEBUG][       Thread-608363][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:58:05,609 [DEBUG][       Thread-608363][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:58:05,609 [DEBUG][       Thread-608363][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:58:05,609 [DEBUG][       Thread-608363][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:58:05,609 [DEBUG][       Thread-608363][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:58:05,610 [DEBUG][       Thread-608363][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:58:05,610 [DEBUG][       Thread-608363][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:58:05,610 [DEBUG][       Thread-608363][   transport.py][1871] : client lang: <none>
2025-07-01 14:58:05,610 [DEBUG][       Thread-608363][   transport.py][1871] : server lang: <none>
2025-07-01 14:58:05,610 [DEBUG][       Thread-608363][   transport.py][1871] : kex follows: False
2025-07-01 14:58:05,610 [DEBUG][       Thread-608363][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:58:05,610 [DEBUG][       Thread-608363][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:58:05,610 [DEBUG][       Thread-608363][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:58:05,610 [DEBUG][       Thread-608363][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:58:05,610 [DEBUG][       Thread-608363][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:58:05,610 [DEBUG][       Thread-608363][   transport.py][1871] : Compression: none
2025-07-01 14:58:05,610 [DEBUG][       Thread-608363][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:58:05,627 [DEBUG][       Thread-608363][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:58:05,627 [DEBUG][       Thread-608363][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:58:05,628 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:58:05,628 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:58:05,629 [DEBUG][       Thread-608363][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:58:05,629 [DEBUG][       Thread-608363][   transport.py][1871] : userauth is OK
2025-07-01 14:58:05,642 [ INFO][       Thread-608363][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:58:05,643 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:58:06,288 [DEBUG][       Thread-608363][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:58:06,288 [DEBUG][       Thread-608363][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:58:06,329 [DEBUG][       Thread-608363][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:58:06,329 [DEBUG][       Thread-608363][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:58:06,333 [DEBUG][       Thread-608363][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:58:06,339 [DEBUG][Thread-608365 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:58:06,346 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:58:06,346 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:58:06,348 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:58:06,350 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:58:06,356 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:58:06,358 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:58:06,358 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:58:06,358 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:58:06,359 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.539871 -999.00  +14.20  35.28     50   +4.10 1 2 2 1 1   887    0 10.36 23.65 ----- 43.4 35.3 31.0 50.5 16.8 -22.4 16.0 -22.5 16.4 -21.5 17.0 -20.5
2025-07-01 14:58:06,359 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:58:06,359 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:58:06,359 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.539871
2025-07-01 14:58:06,359 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:58:06,360 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:58:06,360 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:58:06,360 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:58:06,360 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:58:06,360 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:58:00', tmtdew=11.53, humidity=45.81, cloud=0.0, wind=36.43, temperature=14.27, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:57:24.854', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:58:06,361 [DEBUG][       Thread-608363][   transport.py][1871] : EOF in transport thread
2025-07-01 14:58:06,439 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:58:06,453 [DEBUG][       Thread-608367][   transport.py][1871] : starting thread (client mode): 0x827db40
2025-07-01 14:58:06,453 [DEBUG][       Thread-608367][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:58:06,469 [DEBUG][       Thread-608367][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:58:06,469 [ INFO][       Thread-608367][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:58:06,476 [DEBUG][       Thread-608367][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:58:06,476 [DEBUG][       Thread-608367][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:58:06,476 [DEBUG][       Thread-608367][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:58:06,476 [DEBUG][       Thread-608367][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:58:06,476 [DEBUG][       Thread-608367][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:58:06,476 [DEBUG][       Thread-608367][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:58:06,476 [DEBUG][       Thread-608367][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:58:06,476 [DEBUG][       Thread-608367][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:58:06,477 [DEBUG][       Thread-608367][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:58:06,477 [DEBUG][       Thread-608367][   transport.py][1871] : client lang: <none>
2025-07-01 14:58:06,477 [DEBUG][       Thread-608367][   transport.py][1871] : server lang: <none>
2025-07-01 14:58:06,477 [DEBUG][       Thread-608367][   transport.py][1871] : kex follows: False
2025-07-01 14:58:06,477 [DEBUG][       Thread-608367][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:58:06,477 [DEBUG][       Thread-608367][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:58:06,477 [DEBUG][       Thread-608367][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:58:06,477 [DEBUG][       Thread-608367][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:58:06,477 [DEBUG][       Thread-608367][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:58:06,477 [DEBUG][       Thread-608367][   transport.py][1871] : Compression: none
2025-07-01 14:58:06,477 [DEBUG][       Thread-608367][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:58:06,541 [DEBUG][       Thread-608367][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:58:06,541 [DEBUG][       Thread-608367][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:58:06,542 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:58:06,542 [DEBUG][       Thread-608367][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:58:06,543 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:58:06,601 [DEBUG][       Thread-608367][   transport.py][1871] : userauth is OK
2025-07-01 14:58:06,601 [DEBUG][       Thread-608367][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:58:06,602 [DEBUG][       Thread-608367][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:58:06,602 [DEBUG][       Thread-608367][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:58:06,602 [DEBUG][       Thread-608367][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:58:06,628 [ INFO][       Thread-608367][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:58:06,628 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:58:06,629 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:58:07,680 [DEBUG][       Thread-608367][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:58:07,680 [DEBUG][       Thread-608367][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:58:07,728 [DEBUG][       Thread-608367][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:58:07,728 [DEBUG][       Thread-608367][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:58:07,737 [DEBUG][       Thread-608367][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:58:07,746 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:58:07,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-07-01 14:58:07,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-07-01 14:58:07,764 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:58:07,764 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:58:07,765 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:58:07,773 [DEBUG][       Thread-608367][   transport.py][1871] : EOF in transport thread
2025-07-01 14:58:15,361 [DEBUG][Thread-608369 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:58:17,775 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:58:17,776 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:58:17,776 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:58:17,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-07-01 14:58:18,273 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 58), 11.53, 45.81, 0.0, 36.43, 14.27, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:58:18,273 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:58:00
2025-07-01 14:58:18,357 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:58:18,362 [DEBUG][       Thread-608370][   transport.py][1871] : starting thread (client mode): 0x81c82e0
2025-07-01 14:58:18,363 [DEBUG][       Thread-608370][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:58:18,382 [DEBUG][       Thread-608370][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:58:18,382 [ INFO][       Thread-608370][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:58:18,386 [DEBUG][       Thread-608370][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:58:18,386 [DEBUG][       Thread-608370][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:58:18,386 [DEBUG][       Thread-608370][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:58:18,386 [DEBUG][       Thread-608370][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:58:18,386 [DEBUG][       Thread-608370][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:58:18,386 [DEBUG][       Thread-608370][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:58:18,386 [DEBUG][       Thread-608370][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:58:18,386 [DEBUG][       Thread-608370][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:58:18,386 [DEBUG][       Thread-608370][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:58:18,386 [DEBUG][       Thread-608370][   transport.py][1871] : client lang: <none>
2025-07-01 14:58:18,386 [DEBUG][       Thread-608370][   transport.py][1871] : server lang: <none>
2025-07-01 14:58:18,386 [DEBUG][       Thread-608370][   transport.py][1871] : kex follows: False
2025-07-01 14:58:18,386 [DEBUG][       Thread-608370][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:58:18,386 [DEBUG][       Thread-608370][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:58:18,386 [DEBUG][       Thread-608370][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:58:18,386 [DEBUG][       Thread-608370][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:58:18,386 [DEBUG][       Thread-608370][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:58:18,386 [DEBUG][       Thread-608370][   transport.py][1871] : Compression: none
2025-07-01 14:58:18,386 [DEBUG][       Thread-608370][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:58:18,402 [DEBUG][       Thread-608370][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:58:18,403 [DEBUG][       Thread-608370][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:58:18,403 [DEBUG][       Thread-608370][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:58:18,403 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:58:18,403 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:58:18,404 [DEBUG][       Thread-608370][   transport.py][1871] : userauth is OK
2025-07-01 14:58:18,417 [ INFO][       Thread-608370][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:58:18,418 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:58:19,047 [DEBUG][       Thread-608370][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:58:19,047 [DEBUG][       Thread-608370][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:58:19,088 [DEBUG][       Thread-608370][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:58:19,088 [DEBUG][       Thread-608370][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:58:19,090 [DEBUG][       Thread-608370][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:58:19,102 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:58:19,102 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:58:19,103 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:58:19,104 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:58:19,106 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:58:19,106 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:58:19,106 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:58:19,107 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:58:19,107 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.540218 -999.00  +14.30  40.69     50   +4.20 1 2 2 1 1   887    0 10.59 25.10 ----- 27.6 40.7 27.4 49.2 16.8 -22.5 16.0 -22.8 16.5 -20.9 17.1 -21.5
2025-07-01 14:58:19,107 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:58:19,107 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:58:19,107 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.540218
2025-07-01 14:58:19,107 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:58:19,107 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:58:19,107 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:58:19,107 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:58:19,107 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:58:19,107 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:58:00', tmtdew=11.53, humidity=45.81, cloud=0.0, wind=36.43, temperature=14.27, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:57:54.835', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:58:19,108 [DEBUG][       Thread-608370][   transport.py][1871] : EOF in transport thread
2025-07-01 14:58:19,180 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:58:19,190 [DEBUG][       Thread-608373][   transport.py][1871] : starting thread (client mode): 0x8171c30
2025-07-01 14:58:19,190 [DEBUG][       Thread-608373][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:58:19,206 [DEBUG][       Thread-608373][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:58:19,206 [ INFO][       Thread-608373][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:58:19,213 [DEBUG][       Thread-608373][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:58:19,213 [DEBUG][       Thread-608373][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:58:19,213 [DEBUG][       Thread-608373][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:58:19,213 [DEBUG][       Thread-608373][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:58:19,213 [DEBUG][       Thread-608373][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:58:19,213 [DEBUG][       Thread-608373][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:58:19,213 [DEBUG][       Thread-608373][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:58:19,213 [DEBUG][       Thread-608373][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:58:19,213 [DEBUG][       Thread-608373][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:58:19,213 [DEBUG][       Thread-608373][   transport.py][1871] : client lang: <none>
2025-07-01 14:58:19,213 [DEBUG][       Thread-608373][   transport.py][1871] : server lang: <none>
2025-07-01 14:58:19,213 [DEBUG][       Thread-608373][   transport.py][1871] : kex follows: False
2025-07-01 14:58:19,213 [DEBUG][       Thread-608373][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:58:19,213 [DEBUG][       Thread-608373][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:58:19,213 [DEBUG][       Thread-608373][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:58:19,213 [DEBUG][       Thread-608373][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:58:19,213 [DEBUG][       Thread-608373][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:58:19,213 [DEBUG][       Thread-608373][   transport.py][1871] : Compression: none
2025-07-01 14:58:19,213 [DEBUG][       Thread-608373][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:58:19,270 [DEBUG][       Thread-608373][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:58:19,270 [DEBUG][       Thread-608373][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:58:19,270 [DEBUG][       Thread-608373][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:58:19,270 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:58:19,270 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:58:19,327 [DEBUG][       Thread-608373][   transport.py][1871] : userauth is OK
2025-07-01 14:58:19,327 [DEBUG][       Thread-608373][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:58:19,327 [DEBUG][       Thread-608373][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:58:19,327 [DEBUG][       Thread-608373][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:58:19,327 [DEBUG][       Thread-608373][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:58:19,341 [ INFO][       Thread-608373][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:58:19,342 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:58:19,342 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:58:20,344 [DEBUG][       Thread-608373][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:58:20,345 [DEBUG][       Thread-608373][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:58:20,395 [DEBUG][       Thread-608373][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:58:20,395 [DEBUG][       Thread-608373][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:58:20,404 [DEBUG][       Thread-608373][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:58:20,412 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:58:20,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-07-01 14:58:20,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-07-01 14:58:20,428 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:58:20,428 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:58:20,428 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:58:20,435 [DEBUG][       Thread-608373][   transport.py][1871] : EOF in transport thread
2025-07-01 14:58:24,394 [DEBUG][Thread-608375 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:58:30,432 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:58:30,432 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:58:30,432 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:58:30,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-07-01 14:58:30,927 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 58), 11.53, 45.81, 0.0, 36.43, 14.27, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:58:30,927 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:58:00
2025-07-01 14:58:31,010 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:58:31,015 [DEBUG][       Thread-608376][   transport.py][1871] : starting thread (client mode): 0x81cabc0
2025-07-01 14:58:31,015 [DEBUG][       Thread-608376][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:58:31,035 [DEBUG][       Thread-608376][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:58:31,035 [ INFO][       Thread-608376][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:58:31,039 [DEBUG][       Thread-608376][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:58:31,039 [DEBUG][       Thread-608376][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:58:31,039 [DEBUG][       Thread-608376][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:58:31,039 [DEBUG][       Thread-608376][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:58:31,039 [DEBUG][       Thread-608376][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:58:31,039 [DEBUG][       Thread-608376][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:58:31,039 [DEBUG][       Thread-608376][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:58:31,039 [DEBUG][       Thread-608376][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:58:31,039 [DEBUG][       Thread-608376][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:58:31,039 [DEBUG][       Thread-608376][   transport.py][1871] : client lang: <none>
2025-07-01 14:58:31,039 [DEBUG][       Thread-608376][   transport.py][1871] : server lang: <none>
2025-07-01 14:58:31,039 [DEBUG][       Thread-608376][   transport.py][1871] : kex follows: False
2025-07-01 14:58:31,039 [DEBUG][       Thread-608376][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:58:31,039 [DEBUG][       Thread-608376][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:58:31,039 [DEBUG][       Thread-608376][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:58:31,039 [DEBUG][       Thread-608376][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:58:31,039 [DEBUG][       Thread-608376][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:58:31,039 [DEBUG][       Thread-608376][   transport.py][1871] : Compression: none
2025-07-01 14:58:31,039 [DEBUG][       Thread-608376][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:58:31,059 [DEBUG][       Thread-608376][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:58:31,059 [DEBUG][       Thread-608376][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:58:31,060 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:58:31,060 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:58:31,061 [DEBUG][       Thread-608376][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:58:31,061 [DEBUG][       Thread-608376][   transport.py][1871] : userauth is OK
2025-07-01 14:58:31,074 [ INFO][       Thread-608376][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:58:31,075 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:58:31,674 [DEBUG][       Thread-608376][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:58:31,674 [DEBUG][       Thread-608376][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:58:31,728 [DEBUG][       Thread-608376][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:58:31,728 [DEBUG][       Thread-608376][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:58:31,732 [DEBUG][       Thread-608376][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:58:31,740 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:58:31,740 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:58:31,742 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:58:31,744 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:58:31,750 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:58:31,752 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:58:31,753 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:58:31,753 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:58:31,754 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.540218 -999.00  +14.30  40.69     50   +4.20 1 2 2 1 1   887    0 10.59 25.10 ----- 27.6 40.7 27.4 49.2 16.8 -22.5 16.0 -22.8 16.5 -20.9 17.1 -21.5
2025-07-01 14:58:31,754 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:58:31,754 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:58:31,754 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.540218
2025-07-01 14:58:31,754 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:58:31,755 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:58:31,755 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:58:31,755 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:58:31,755 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:58:31,755 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:58:00', tmtdew=11.53, humidity=45.81, cloud=0.0, wind=36.43, temperature=14.27, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:57:54.835', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:58:31,756 [DEBUG][       Thread-608376][   transport.py][1871] : EOF in transport thread
2025-07-01 14:58:31,839 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:58:31,851 [DEBUG][       Thread-608379][   transport.py][1871] : starting thread (client mode): 0x75ab190
2025-07-01 14:58:31,851 [DEBUG][       Thread-608379][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:58:31,867 [DEBUG][       Thread-608379][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:58:31,867 [ INFO][       Thread-608379][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:58:31,875 [DEBUG][       Thread-608379][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:58:31,875 [DEBUG][       Thread-608379][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:58:31,875 [DEBUG][       Thread-608379][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:58:31,875 [DEBUG][       Thread-608379][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:58:31,875 [DEBUG][       Thread-608379][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:58:31,875 [DEBUG][       Thread-608379][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:58:31,875 [DEBUG][       Thread-608379][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:58:31,875 [DEBUG][       Thread-608379][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:58:31,875 [DEBUG][       Thread-608379][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:58:31,875 [DEBUG][       Thread-608379][   transport.py][1871] : client lang: <none>
2025-07-01 14:58:31,875 [DEBUG][       Thread-608379][   transport.py][1871] : server lang: <none>
2025-07-01 14:58:31,875 [DEBUG][       Thread-608379][   transport.py][1871] : kex follows: False
2025-07-01 14:58:31,875 [DEBUG][       Thread-608379][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:58:31,875 [DEBUG][       Thread-608379][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:58:31,875 [DEBUG][       Thread-608379][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:58:31,875 [DEBUG][       Thread-608379][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:58:31,876 [DEBUG][       Thread-608379][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:58:31,876 [DEBUG][       Thread-608379][   transport.py][1871] : Compression: none
2025-07-01 14:58:31,876 [DEBUG][       Thread-608379][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:58:31,933 [DEBUG][       Thread-608379][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:58:31,934 [DEBUG][       Thread-608379][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:58:31,935 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:58:31,935 [DEBUG][       Thread-608379][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:58:31,936 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:58:32,001 [DEBUG][       Thread-608379][   transport.py][1871] : userauth is OK
2025-07-01 14:58:32,001 [DEBUG][       Thread-608379][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:58:32,002 [DEBUG][       Thread-608379][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:58:32,002 [DEBUG][       Thread-608379][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:58:32,002 [DEBUG][       Thread-608379][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:58:32,022 [ INFO][       Thread-608379][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:58:32,022 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:58:32,023 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:58:33,069 [DEBUG][       Thread-608379][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:58:33,070 [DEBUG][       Thread-608379][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:58:33,119 [DEBUG][       Thread-608379][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:58:33,119 [DEBUG][       Thread-608379][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:58:33,128 [DEBUG][       Thread-608379][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:58:33,135 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:58:33,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-07-01 14:58:33,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') -> 00000000
2025-07-01 14:58:33,152 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:58:33,152 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:58:33,152 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:58:33,162 [DEBUG][       Thread-608379][   transport.py][1871] : EOF in transport thread
2025-07-01 14:58:33,414 [DEBUG][Thread-608381 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:58:35,942 [DEBUG][Thread-608382 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:58:42,435 [DEBUG][Thread-608383 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:58:43,163 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:58:43,163 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:58:43,163 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:58:43,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-07-01 14:58:43,639 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 58, 32), 11.62, 45.63, 0.0, 34.03, 14.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:58:43,639 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:58:32
2025-07-01 14:58:43,724 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:58:43,728 [DEBUG][       Thread-608384][   transport.py][1871] : starting thread (client mode): 0x81e4340
2025-07-01 14:58:43,728 [DEBUG][       Thread-608384][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:58:43,749 [DEBUG][       Thread-608384][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:58:43,749 [ INFO][       Thread-608384][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:58:43,752 [DEBUG][       Thread-608384][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:58:43,752 [DEBUG][       Thread-608384][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:58:43,752 [DEBUG][       Thread-608384][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:58:43,752 [DEBUG][       Thread-608384][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:58:43,752 [DEBUG][       Thread-608384][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:58:43,752 [DEBUG][       Thread-608384][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:58:43,752 [DEBUG][       Thread-608384][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:58:43,752 [DEBUG][       Thread-608384][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:58:43,752 [DEBUG][       Thread-608384][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:58:43,752 [DEBUG][       Thread-608384][   transport.py][1871] : client lang: <none>
2025-07-01 14:58:43,752 [DEBUG][       Thread-608384][   transport.py][1871] : server lang: <none>
2025-07-01 14:58:43,752 [DEBUG][       Thread-608384][   transport.py][1871] : kex follows: False
2025-07-01 14:58:43,752 [DEBUG][       Thread-608384][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:58:43,752 [DEBUG][       Thread-608384][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:58:43,752 [DEBUG][       Thread-608384][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:58:43,752 [DEBUG][       Thread-608384][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:58:43,752 [DEBUG][       Thread-608384][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:58:43,752 [DEBUG][       Thread-608384][   transport.py][1871] : Compression: none
2025-07-01 14:58:43,753 [DEBUG][       Thread-608384][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:58:43,770 [DEBUG][       Thread-608384][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:58:43,771 [DEBUG][       Thread-608384][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:58:43,772 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:58:43,772 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:58:43,772 [DEBUG][       Thread-608384][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:58:43,773 [DEBUG][       Thread-608384][   transport.py][1871] : userauth is OK
2025-07-01 14:58:43,786 [ INFO][       Thread-608384][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:58:43,787 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:58:44,451 [DEBUG][       Thread-608384][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:58:44,452 [DEBUG][       Thread-608384][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:58:44,493 [DEBUG][       Thread-608384][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:58:44,493 [DEBUG][       Thread-608384][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:58:44,497 [DEBUG][       Thread-608384][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:58:44,510 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:58:44,511 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:58:44,513 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:58:44,514 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:58:44,520 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:58:44,522 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:58:44,522 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:58:44,523 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:58:44,523 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.540218 -999.00  +14.30  40.69     50   +4.20 1 2 2 1 1   887    0 10.59 25.10 ----- 27.6 40.7 27.4 49.2 16.8 -22.5 16.0 -22.8 16.5 -20.9 17.1 -21.5
2025-07-01 14:58:44,523 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:58:44,523 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:58:44,523 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.540218
2025-07-01 14:58:44,523 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:58:44,524 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:58:44,524 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:58:44,524 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:58:44,524 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:58:44,524 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:58:32', tmtdew=11.62, humidity=45.63, cloud=0.0, wind=34.03, temperature=14.32, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:57:54.835', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:58:44,525 [DEBUG][       Thread-608384][   transport.py][1871] : EOF in transport thread
2025-07-01 14:58:44,608 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:58:44,617 [DEBUG][       Thread-608387][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 14:58:44,617 [DEBUG][       Thread-608387][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:58:44,634 [DEBUG][       Thread-608387][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:58:44,634 [ INFO][       Thread-608387][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:58:44,641 [DEBUG][       Thread-608387][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:58:44,642 [DEBUG][       Thread-608387][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:58:44,642 [DEBUG][       Thread-608387][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:58:44,642 [DEBUG][       Thread-608387][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:58:44,642 [DEBUG][       Thread-608387][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:58:44,642 [DEBUG][       Thread-608387][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:58:44,642 [DEBUG][       Thread-608387][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:58:44,642 [DEBUG][       Thread-608387][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:58:44,642 [DEBUG][       Thread-608387][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:58:44,642 [DEBUG][       Thread-608387][   transport.py][1871] : client lang: <none>
2025-07-01 14:58:44,642 [DEBUG][       Thread-608387][   transport.py][1871] : server lang: <none>
2025-07-01 14:58:44,642 [DEBUG][       Thread-608387][   transport.py][1871] : kex follows: False
2025-07-01 14:58:44,642 [DEBUG][       Thread-608387][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:58:44,642 [DEBUG][       Thread-608387][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:58:44,642 [DEBUG][       Thread-608387][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:58:44,642 [DEBUG][       Thread-608387][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:58:44,642 [DEBUG][       Thread-608387][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:58:44,642 [DEBUG][       Thread-608387][   transport.py][1871] : Compression: none
2025-07-01 14:58:44,642 [DEBUG][       Thread-608387][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:58:44,703 [DEBUG][       Thread-608387][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:58:44,704 [DEBUG][       Thread-608387][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:58:44,704 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:58:44,705 [DEBUG][       Thread-608387][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:58:44,706 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:58:44,761 [DEBUG][       Thread-608387][   transport.py][1871] : userauth is OK
2025-07-01 14:58:44,761 [DEBUG][       Thread-608387][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:58:44,761 [DEBUG][       Thread-608387][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:58:44,761 [DEBUG][       Thread-608387][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:58:44,761 [DEBUG][       Thread-608387][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:58:44,780 [ INFO][       Thread-608387][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:58:44,780 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:58:44,781 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:58:45,812 [DEBUG][       Thread-608387][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:58:45,813 [DEBUG][       Thread-608387][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:58:45,869 [DEBUG][       Thread-608387][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:58:45,869 [DEBUG][       Thread-608387][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:58:45,879 [DEBUG][       Thread-608387][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:58:45,894 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:58: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-07-01 14:58:45,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-07-01 14:58:45,915 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:58:45,916 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:58:45,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:58:45,924 [DEBUG][       Thread-608387][   transport.py][1871] : EOF in transport thread
2025-07-01 14:58:51,458 [DEBUG][Thread-608389 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:58:55,927 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:58:55,927 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:58:55,927 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:58:55,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-07-01 14:58:56,414 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 58, 32), 11.62, 45.63, 0.0, 34.03, 14.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:58:56,414 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:58:32
2025-07-01 14:58:56,497 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:58:56,501 [DEBUG][       Thread-608390][   transport.py][1871] : starting thread (client mode): 0x81a4670
2025-07-01 14:58:56,501 [DEBUG][       Thread-608390][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:58:56,521 [DEBUG][       Thread-608390][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:58:56,521 [ INFO][       Thread-608390][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:58:56,524 [DEBUG][       Thread-608390][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:58:56,525 [DEBUG][       Thread-608390][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:58:56,525 [DEBUG][       Thread-608390][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:58:56,525 [DEBUG][       Thread-608390][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:58:56,525 [DEBUG][       Thread-608390][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:58:56,525 [DEBUG][       Thread-608390][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:58:56,525 [DEBUG][       Thread-608390][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:58:56,525 [DEBUG][       Thread-608390][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:58:56,525 [DEBUG][       Thread-608390][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:58:56,525 [DEBUG][       Thread-608390][   transport.py][1871] : client lang: <none>
2025-07-01 14:58:56,525 [DEBUG][       Thread-608390][   transport.py][1871] : server lang: <none>
2025-07-01 14:58:56,525 [DEBUG][       Thread-608390][   transport.py][1871] : kex follows: False
2025-07-01 14:58:56,525 [DEBUG][       Thread-608390][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:58:56,525 [DEBUG][       Thread-608390][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:58:56,525 [DEBUG][       Thread-608390][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:58:56,525 [DEBUG][       Thread-608390][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:58:56,525 [DEBUG][       Thread-608390][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:58:56,525 [DEBUG][       Thread-608390][   transport.py][1871] : Compression: none
2025-07-01 14:58:56,525 [DEBUG][       Thread-608390][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:58:56,543 [DEBUG][       Thread-608390][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:58:56,543 [DEBUG][       Thread-608390][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:58:56,544 [DEBUG][       Thread-608390][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:58:56,544 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:58:56,544 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:58:56,545 [DEBUG][       Thread-608390][   transport.py][1871] : userauth is OK
2025-07-01 14:58:56,558 [ INFO][       Thread-608390][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:58:56,559 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:58:57,209 [DEBUG][       Thread-608390][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:58:57,209 [DEBUG][       Thread-608390][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:58:57,252 [DEBUG][       Thread-608390][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:58:57,252 [DEBUG][       Thread-608390][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:58:57,255 [DEBUG][       Thread-608390][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:58:57,266 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:58:57,266 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:58:57,267 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:58:57,268 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:58:57,271 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:58:57,272 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:58:57,272 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:58:57,272 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:58:57,272 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.540565 -999.00  +14.30  43.44     50   +4.10 1 2 2 1 1   887    0 10.55 26.45 ----- 33.0 43.4 46.6 49.3 16.9 -22.5 16.1 -22.9 16.4 -21.6 17.2 -21.1
2025-07-01 14:58:57,272 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:58:57,272 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:58:57,272 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.540565
2025-07-01 14:58:57,272 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:58:57,272 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:58:57,272 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:58:57,272 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:58:57,272 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:58:57,272 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:58:32', tmtdew=11.62, humidity=45.63, cloud=0.0, wind=34.03, temperature=14.32, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:58:24.816', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:58:57,273 [DEBUG][       Thread-608390][   transport.py][1871] : EOF in transport thread
2025-07-01 14:58:57,347 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:58:57,358 [DEBUG][       Thread-608393][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 14:58:57,358 [DEBUG][       Thread-608393][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:58:57,373 [DEBUG][       Thread-608393][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:58:57,373 [ INFO][       Thread-608393][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:58:57,381 [DEBUG][       Thread-608393][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:58:57,381 [DEBUG][       Thread-608393][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:58:57,381 [DEBUG][       Thread-608393][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:58:57,381 [DEBUG][       Thread-608393][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:58:57,381 [DEBUG][       Thread-608393][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:58:57,381 [DEBUG][       Thread-608393][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:58:57,381 [DEBUG][       Thread-608393][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:58:57,381 [DEBUG][       Thread-608393][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:58:57,381 [DEBUG][       Thread-608393][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:58:57,381 [DEBUG][       Thread-608393][   transport.py][1871] : client lang: <none>
2025-07-01 14:58:57,381 [DEBUG][       Thread-608393][   transport.py][1871] : server lang: <none>
2025-07-01 14:58:57,381 [DEBUG][       Thread-608393][   transport.py][1871] : kex follows: False
2025-07-01 14:58:57,381 [DEBUG][       Thread-608393][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:58:57,381 [DEBUG][       Thread-608393][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:58:57,381 [DEBUG][       Thread-608393][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:58:57,381 [DEBUG][       Thread-608393][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:58:57,381 [DEBUG][       Thread-608393][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:58:57,381 [DEBUG][       Thread-608393][   transport.py][1871] : Compression: none
2025-07-01 14:58:57,381 [DEBUG][       Thread-608393][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:58:57,439 [DEBUG][       Thread-608393][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:58:57,439 [DEBUG][       Thread-608393][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:58:57,439 [DEBUG][       Thread-608393][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:58:57,439 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:58:57,439 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:58:57,496 [DEBUG][       Thread-608393][   transport.py][1871] : userauth is OK
2025-07-01 14:58:57,496 [DEBUG][       Thread-608393][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:58:57,496 [DEBUG][       Thread-608393][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:58:57,496 [DEBUG][       Thread-608393][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:58:57,496 [DEBUG][       Thread-608393][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:58:57,514 [ INFO][       Thread-608393][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:58:57,514 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:58:57,514 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:58:58,507 [DEBUG][       Thread-608393][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:58:58,507 [DEBUG][       Thread-608393][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:58:58,555 [DEBUG][       Thread-608393][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:58:58,555 [DEBUG][       Thread-608393][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:58:58,564 [DEBUG][       Thread-608393][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:58:58,572 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:58:58,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-07-01 14:58:58,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-07-01 14:58:58,588 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:58:58,588 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:58:58,588 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:58:58,596 [DEBUG][       Thread-608393][   transport.py][1871] : EOF in transport thread
2025-07-01 14:59:00,488 [DEBUG][Thread-608395 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:59:08,596 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:59:08,596 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:59:08,596 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:59:08,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-07-01 14:59:09,073 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 59, 3), 11.56, 45.85, 0.0, 32.53, 14.46, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:59:09,073 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:59:03
2025-07-01 14:59:09,156 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:59:09,160 [DEBUG][       Thread-608396][   transport.py][1871] : starting thread (client mode): 0x81d9ae0
2025-07-01 14:59:09,160 [DEBUG][       Thread-608396][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:59:09,180 [DEBUG][       Thread-608396][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:59:09,181 [ INFO][       Thread-608396][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:59:09,184 [DEBUG][       Thread-608396][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:59:09,184 [DEBUG][       Thread-608396][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:59:09,184 [DEBUG][       Thread-608396][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:59:09,184 [DEBUG][       Thread-608396][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:59:09,184 [DEBUG][       Thread-608396][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:59:09,184 [DEBUG][       Thread-608396][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:59:09,184 [DEBUG][       Thread-608396][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:59:09,184 [DEBUG][       Thread-608396][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:59:09,184 [DEBUG][       Thread-608396][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:59:09,184 [DEBUG][       Thread-608396][   transport.py][1871] : client lang: <none>
2025-07-01 14:59:09,184 [DEBUG][       Thread-608396][   transport.py][1871] : server lang: <none>
2025-07-01 14:59:09,184 [DEBUG][       Thread-608396][   transport.py][1871] : kex follows: False
2025-07-01 14:59:09,184 [DEBUG][       Thread-608396][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:59:09,184 [DEBUG][       Thread-608396][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:59:09,184 [DEBUG][       Thread-608396][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:59:09,184 [DEBUG][       Thread-608396][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:59:09,184 [DEBUG][       Thread-608396][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:59:09,184 [DEBUG][       Thread-608396][   transport.py][1871] : Compression: none
2025-07-01 14:59:09,184 [DEBUG][       Thread-608396][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:59:09,201 [DEBUG][       Thread-608396][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:59:09,201 [DEBUG][       Thread-608396][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:59:09,202 [DEBUG][       Thread-608396][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:59:09,202 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:59:09,202 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:59:09,203 [DEBUG][       Thread-608396][   transport.py][1871] : userauth is OK
2025-07-01 14:59:09,216 [ INFO][       Thread-608396][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:59:09,216 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:59:09,508 [DEBUG][Thread-608398 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:59:09,882 [DEBUG][       Thread-608396][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:59:09,882 [DEBUG][       Thread-608396][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:59:09,925 [DEBUG][       Thread-608396][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:59:09,925 [DEBUG][       Thread-608396][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:59:09,929 [DEBUG][       Thread-608396][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:59:09,940 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:59:09,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:59:09,942 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:59:09,944 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:59:09,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:59:09,950 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:59:09,951 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:59:09,951 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:59:09,952 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.540565 -999.00  +14.30  43.44     50   +4.10 1 2 2 1 1   887    0 10.55 26.45 ----- 33.0 43.4 46.6 49.3 16.9 -22.5 16.1 -22.9 16.4 -21.6 17.2 -21.1
2025-07-01 14:59:09,952 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:59:09,952 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:59:09,952 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.540565
2025-07-01 14:59:09,952 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:59:09,953 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:59:09,953 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:59:09,953 [DEBUG][       Thread-608396][   transport.py][1871] : EOF in transport thread
2025-07-01 14:59:09,953 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:59:09,954 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:59:09,954 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:59:03', tmtdew=11.56, humidity=45.85, cloud=0.0, wind=32.53, temperature=14.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:58:24.816', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:59:10,037 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:59:10,047 [DEBUG][       Thread-608400][   transport.py][1871] : starting thread (client mode): 0x818fca0
2025-07-01 14:59:10,047 [DEBUG][       Thread-608400][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:59:10,063 [DEBUG][       Thread-608400][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:59:10,063 [ INFO][       Thread-608400][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:59:10,071 [DEBUG][       Thread-608400][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:59:10,071 [DEBUG][       Thread-608400][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:59:10,071 [DEBUG][       Thread-608400][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:59:10,071 [DEBUG][       Thread-608400][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:59:10,071 [DEBUG][       Thread-608400][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:59:10,071 [DEBUG][       Thread-608400][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:59:10,071 [DEBUG][       Thread-608400][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:59:10,071 [DEBUG][       Thread-608400][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:59:10,071 [DEBUG][       Thread-608400][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:59:10,071 [DEBUG][       Thread-608400][   transport.py][1871] : client lang: <none>
2025-07-01 14:59:10,071 [DEBUG][       Thread-608400][   transport.py][1871] : server lang: <none>
2025-07-01 14:59:10,071 [DEBUG][       Thread-608400][   transport.py][1871] : kex follows: False
2025-07-01 14:59:10,071 [DEBUG][       Thread-608400][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:59:10,071 [DEBUG][       Thread-608400][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:59:10,071 [DEBUG][       Thread-608400][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:59:10,071 [DEBUG][       Thread-608400][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:59:10,072 [DEBUG][       Thread-608400][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:59:10,072 [DEBUG][       Thread-608400][   transport.py][1871] : Compression: none
2025-07-01 14:59:10,072 [DEBUG][       Thread-608400][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:59:10,128 [DEBUG][       Thread-608400][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:59:10,128 [DEBUG][       Thread-608400][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:59:10,129 [DEBUG][       Thread-608400][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:59:10,129 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:59:10,130 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:59:10,190 [DEBUG][       Thread-608400][   transport.py][1871] : userauth is OK
2025-07-01 14:59:10,190 [DEBUG][       Thread-608400][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:59:10,191 [DEBUG][       Thread-608400][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:59:10,191 [DEBUG][       Thread-608400][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:59:10,191 [DEBUG][       Thread-608400][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:59:10,211 [ INFO][       Thread-608400][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:59:10,212 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:59:10,212 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:59:11,214 [DEBUG][       Thread-608400][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:59:11,214 [DEBUG][       Thread-608400][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:59:11,264 [DEBUG][       Thread-608400][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:59:11,264 [DEBUG][       Thread-608400][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:59:11,273 [DEBUG][       Thread-608400][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:59:11,282 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:59:11,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-07-01 14:59:11,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-07-01 14:59:11,300 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:59:11,301 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:59:11,301 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:59:11,309 [DEBUG][       Thread-608400][   transport.py][1871] : EOF in transport thread
2025-07-01 14:59:18,530 [DEBUG][Thread-608402 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:59:21,308 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:59:21,308 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:59:21,308 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:59:21,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-07-01 14:59:21,797 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 59, 3), 11.56, 45.85, 0.0, 32.53, 14.46, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:59:21,797 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:59:03
2025-07-01 14:59:21,882 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:59:21,886 [DEBUG][       Thread-608403][   transport.py][1871] : starting thread (client mode): 0x75a9d50
2025-07-01 14:59:21,886 [DEBUG][       Thread-608403][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:59:21,906 [DEBUG][       Thread-608403][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:59:21,906 [ INFO][       Thread-608403][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:59:21,910 [DEBUG][       Thread-608403][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:59:21,910 [DEBUG][       Thread-608403][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:59:21,910 [DEBUG][       Thread-608403][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:59:21,910 [DEBUG][       Thread-608403][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:59:21,910 [DEBUG][       Thread-608403][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:59:21,910 [DEBUG][       Thread-608403][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:59:21,910 [DEBUG][       Thread-608403][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:59:21,910 [DEBUG][       Thread-608403][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:59:21,910 [DEBUG][       Thread-608403][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:59:21,910 [DEBUG][       Thread-608403][   transport.py][1871] : client lang: <none>
2025-07-01 14:59:21,910 [DEBUG][       Thread-608403][   transport.py][1871] : server lang: <none>
2025-07-01 14:59:21,910 [DEBUG][       Thread-608403][   transport.py][1871] : kex follows: False
2025-07-01 14:59:21,910 [DEBUG][       Thread-608403][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:59:21,910 [DEBUG][       Thread-608403][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:59:21,910 [DEBUG][       Thread-608403][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:59:21,910 [DEBUG][       Thread-608403][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:59:21,910 [DEBUG][       Thread-608403][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:59:21,910 [DEBUG][       Thread-608403][   transport.py][1871] : Compression: none
2025-07-01 14:59:21,910 [DEBUG][       Thread-608403][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:59:21,927 [DEBUG][       Thread-608403][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:59:21,928 [DEBUG][       Thread-608403][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:59:21,928 [DEBUG][       Thread-608403][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:59:21,929 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:59:21,929 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:59:21,930 [DEBUG][       Thread-608403][   transport.py][1871] : userauth is OK
2025-07-01 14:59:21,955 [ INFO][       Thread-608403][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:59:21,956 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:59:22,594 [DEBUG][       Thread-608403][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:59:22,595 [DEBUG][       Thread-608403][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:59:22,637 [DEBUG][       Thread-608403][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:59:22,637 [DEBUG][       Thread-608403][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:59:22,641 [DEBUG][       Thread-608403][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:59:22,647 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:59:22,647 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:59:22,649 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:59:22,651 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:59:22,657 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:59:22,659 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:59:22,659 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:59:22,659 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:59:22,659 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.540913 -999.00  +14.40  35.36     50   +4.20 1 2 2 1 1   887    0 10.68 27.20 ----- 37.2 35.4 40.1 49.5 16.9 -22.9 16.1 -22.7 16.6 -22.9 17.2 -21.5
2025-07-01 14:59:22,660 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:59:22,660 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:59:22,660 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.540913
2025-07-01 14:59:22,660 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:59:22,661 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:59:22,661 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:59:22,661 [DEBUG][       Thread-608403][   transport.py][1871] : EOF in transport thread
2025-07-01 14:59:22,661 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:59:22,662 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:59:22,662 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:59:03', tmtdew=11.56, humidity=45.85, cloud=0.0, wind=32.53, temperature=14.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:58:54.883', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:59:22,745 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:59:22,756 [DEBUG][       Thread-608406][   transport.py][1871] : starting thread (client mode): 0x81c8c40
2025-07-01 14:59:22,756 [DEBUG][       Thread-608406][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:59:22,773 [DEBUG][       Thread-608406][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:59:22,773 [ INFO][       Thread-608406][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:59:22,783 [DEBUG][       Thread-608406][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:59:22,783 [DEBUG][       Thread-608406][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:59:22,784 [DEBUG][       Thread-608406][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:59:22,784 [DEBUG][       Thread-608406][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:59:22,784 [DEBUG][       Thread-608406][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:59:22,784 [DEBUG][       Thread-608406][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:59:22,784 [DEBUG][       Thread-608406][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:59:22,784 [DEBUG][       Thread-608406][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:59:22,784 [DEBUG][       Thread-608406][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:59:22,784 [DEBUG][       Thread-608406][   transport.py][1871] : client lang: <none>
2025-07-01 14:59:22,784 [DEBUG][       Thread-608406][   transport.py][1871] : server lang: <none>
2025-07-01 14:59:22,784 [DEBUG][       Thread-608406][   transport.py][1871] : kex follows: False
2025-07-01 14:59:22,784 [DEBUG][       Thread-608406][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:59:22,784 [DEBUG][       Thread-608406][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:59:22,784 [DEBUG][       Thread-608406][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:59:22,784 [DEBUG][       Thread-608406][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:59:22,784 [DEBUG][       Thread-608406][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:59:22,784 [DEBUG][       Thread-608406][   transport.py][1871] : Compression: none
2025-07-01 14:59:22,784 [DEBUG][       Thread-608406][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:59:22,840 [DEBUG][       Thread-608406][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:59:22,841 [DEBUG][       Thread-608406][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:59:22,841 [DEBUG][       Thread-608406][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:59:22,841 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:59:22,842 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:59:22,896 [DEBUG][       Thread-608406][   transport.py][1871] : userauth is OK
2025-07-01 14:59:22,896 [DEBUG][       Thread-608406][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:59:22,897 [DEBUG][       Thread-608406][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:59:22,897 [DEBUG][       Thread-608406][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:59:22,897 [DEBUG][       Thread-608406][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:59:22,916 [ INFO][       Thread-608406][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:59:22,916 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:59:22,917 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:59:23,956 [DEBUG][       Thread-608406][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:59:23,956 [DEBUG][       Thread-608406][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:59:24,010 [DEBUG][       Thread-608406][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:59:24,010 [DEBUG][       Thread-608406][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:59:24,024 [DEBUG][       Thread-608406][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:59:24,033 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:59:24,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-07-01 14:59:24,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-07-01 14:59:24,050 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:59:24,050 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:59:24,050 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:59:24,058 [DEBUG][       Thread-608406][   transport.py][1871] : EOF in transport thread
2025-07-01 14:59:27,566 [DEBUG][Thread-608408 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:59:34,061 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:59:34,061 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:59:34,061 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:59:34,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-07-01 14:59:34,538 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 59, 3), 11.56, 45.85, 0.0, 32.53, 14.46, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:59:34,538 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:59:03
2025-07-01 14:59:34,623 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:59:34,627 [DEBUG][       Thread-608409][   transport.py][1871] : starting thread (client mode): 0x75ab280
2025-07-01 14:59:34,627 [DEBUG][       Thread-608409][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:59:34,648 [DEBUG][       Thread-608409][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:59:34,648 [ INFO][       Thread-608409][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:59:34,651 [DEBUG][       Thread-608409][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:59:34,651 [DEBUG][       Thread-608409][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:59:34,651 [DEBUG][       Thread-608409][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:59:34,651 [DEBUG][       Thread-608409][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:59:34,651 [DEBUG][       Thread-608409][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:59:34,651 [DEBUG][       Thread-608409][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:59:34,651 [DEBUG][       Thread-608409][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:59:34,651 [DEBUG][       Thread-608409][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:59:34,651 [DEBUG][       Thread-608409][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:59:34,651 [DEBUG][       Thread-608409][   transport.py][1871] : client lang: <none>
2025-07-01 14:59:34,651 [DEBUG][       Thread-608409][   transport.py][1871] : server lang: <none>
2025-07-01 14:59:34,651 [DEBUG][       Thread-608409][   transport.py][1871] : kex follows: False
2025-07-01 14:59:34,651 [DEBUG][       Thread-608409][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:59:34,651 [DEBUG][       Thread-608409][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:59:34,651 [DEBUG][       Thread-608409][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:59:34,651 [DEBUG][       Thread-608409][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:59:34,651 [DEBUG][       Thread-608409][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:59:34,651 [DEBUG][       Thread-608409][   transport.py][1871] : Compression: none
2025-07-01 14:59:34,651 [DEBUG][       Thread-608409][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:59:34,672 [DEBUG][       Thread-608409][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:59:34,672 [DEBUG][       Thread-608409][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:59:34,672 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:59:34,672 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:59:34,672 [DEBUG][       Thread-608409][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:59:34,672 [DEBUG][       Thread-608409][   transport.py][1871] : userauth is OK
2025-07-01 14:59:34,686 [ INFO][       Thread-608409][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:59:34,686 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:59:35,301 [DEBUG][       Thread-608409][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:59:35,301 [DEBUG][       Thread-608409][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:59:35,344 [DEBUG][       Thread-608409][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:59:35,344 [DEBUG][       Thread-608409][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:59:35,347 [DEBUG][       Thread-608409][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:59:35,359 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:59:35,359 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:59:35,360 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:59:35,361 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:59:35,364 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:59:35,365 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:59:35,365 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:59:35,365 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:59:35,365 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.540913 -999.00  +14.40  35.36     50   +4.20 1 2 2 1 1   887    0 10.68 27.20 ----- 37.2 35.4 40.1 49.5 16.9 -22.9 16.1 -22.7 16.6 -22.9 17.2 -21.5
2025-07-01 14:59:35,365 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:59:35,365 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:59:35,365 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.540913
2025-07-01 14:59:35,365 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:59:35,365 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:59:35,365 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:59:35,365 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:59:35,366 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:59:35,366 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:59:03', tmtdew=11.56, humidity=45.85, cloud=0.0, wind=32.53, temperature=14.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:58:54.883', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:59:35,366 [DEBUG][       Thread-608409][   transport.py][1871] : EOF in transport thread
2025-07-01 14:59:35,440 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:59:35,453 [DEBUG][       Thread-608412][   transport.py][1871] : starting thread (client mode): 0x827db40
2025-07-01 14:59:35,453 [DEBUG][       Thread-608412][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:59:35,469 [DEBUG][       Thread-608412][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:59:35,469 [ INFO][       Thread-608412][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:59:35,477 [DEBUG][       Thread-608412][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:59:35,477 [DEBUG][       Thread-608412][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:59:35,477 [DEBUG][       Thread-608412][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:59:35,477 [DEBUG][       Thread-608412][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:59:35,477 [DEBUG][       Thread-608412][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:59:35,477 [DEBUG][       Thread-608412][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:59:35,477 [DEBUG][       Thread-608412][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:59:35,477 [DEBUG][       Thread-608412][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:59:35,477 [DEBUG][       Thread-608412][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:59:35,477 [DEBUG][       Thread-608412][   transport.py][1871] : client lang: <none>
2025-07-01 14:59:35,477 [DEBUG][       Thread-608412][   transport.py][1871] : server lang: <none>
2025-07-01 14:59:35,477 [DEBUG][       Thread-608412][   transport.py][1871] : kex follows: False
2025-07-01 14:59:35,477 [DEBUG][       Thread-608412][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:59:35,477 [DEBUG][       Thread-608412][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:59:35,477 [DEBUG][       Thread-608412][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:59:35,477 [DEBUG][       Thread-608412][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:59:35,477 [DEBUG][       Thread-608412][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:59:35,477 [DEBUG][       Thread-608412][   transport.py][1871] : Compression: none
2025-07-01 14:59:35,477 [DEBUG][       Thread-608412][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:59:35,535 [DEBUG][       Thread-608412][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:59:35,535 [DEBUG][       Thread-608412][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:59:35,535 [DEBUG][       Thread-608412][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:59:35,535 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:59:35,535 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:59:35,592 [DEBUG][       Thread-608412][   transport.py][1871] : userauth is OK
2025-07-01 14:59:35,592 [DEBUG][       Thread-608412][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:59:35,592 [DEBUG][       Thread-608412][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:59:35,592 [DEBUG][       Thread-608412][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:59:35,592 [DEBUG][       Thread-608412][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:59:35,606 [ INFO][       Thread-608412][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:59:35,606 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:59:35,606 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:59:35,968 [DEBUG][Thread-608414 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:59:36,584 [DEBUG][Thread-608415 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:59:36,630 [DEBUG][       Thread-608412][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:59:36,630 [DEBUG][       Thread-608412][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:59:36,679 [DEBUG][       Thread-608412][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:59:36,679 [DEBUG][       Thread-608412][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:59:36,691 [DEBUG][       Thread-608412][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:59:36,698 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:59:36,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')
2025-07-01 14:59:36,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-07-01 14:59:36,714 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:59:36,714 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:59:36,714 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:59:36,728 [DEBUG][       Thread-608412][   transport.py][1871] : EOF in transport thread
2025-07-01 14:59:45,605 [DEBUG][Thread-608416 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:59:46,724 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:59:46,725 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:59:46,725 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:59:46,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-07-01 14:59:47,200 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 59, 35), 11.53, 45.93, 0.0, 26.04, 14.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:59:47,200 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:59:35
2025-07-01 14:59:47,286 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 14:59:47,289 [DEBUG][       Thread-608417][   transport.py][1871] : starting thread (client mode): 0x818c280
2025-07-01 14:59:47,289 [DEBUG][       Thread-608417][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:59:47,308 [DEBUG][       Thread-608417][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 14:59:47,308 [ INFO][       Thread-608417][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 14:59:47,312 [DEBUG][       Thread-608417][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:59:47,312 [DEBUG][       Thread-608417][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 14:59:47,312 [DEBUG][       Thread-608417][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:59:47,312 [DEBUG][       Thread-608417][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:59:47,312 [DEBUG][       Thread-608417][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:59:47,312 [DEBUG][       Thread-608417][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:59:47,312 [DEBUG][       Thread-608417][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:59:47,312 [DEBUG][       Thread-608417][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:59:47,312 [DEBUG][       Thread-608417][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:59:47,312 [DEBUG][       Thread-608417][   transport.py][1871] : client lang: <none>
2025-07-01 14:59:47,312 [DEBUG][       Thread-608417][   transport.py][1871] : server lang: <none>
2025-07-01 14:59:47,312 [DEBUG][       Thread-608417][   transport.py][1871] : kex follows: False
2025-07-01 14:59:47,312 [DEBUG][       Thread-608417][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:59:47,312 [DEBUG][       Thread-608417][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:59:47,312 [DEBUG][       Thread-608417][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:59:47,312 [DEBUG][       Thread-608417][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:59:47,312 [DEBUG][       Thread-608417][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:59:47,312 [DEBUG][       Thread-608417][   transport.py][1871] : Compression: none
2025-07-01 14:59:47,312 [DEBUG][       Thread-608417][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:59:47,329 [DEBUG][       Thread-608417][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:59:47,329 [DEBUG][       Thread-608417][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:59:47,330 [DEBUG][       Thread-608417][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 14:59:47,330 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 14:59:47,330 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 14:59:47,331 [DEBUG][       Thread-608417][   transport.py][1871] : userauth is OK
2025-07-01 14:59:47,344 [ INFO][       Thread-608417][   transport.py][1871] : Authentication (password) successful!
2025-07-01 14:59:47,345 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:59:48,020 [DEBUG][       Thread-608417][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:59:48,020 [DEBUG][       Thread-608417][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:59:48,061 [DEBUG][       Thread-608417][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:59:48,061 [DEBUG][       Thread-608417][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:59:48,064 [DEBUG][       Thread-608417][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:59:48,078 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:59:48,078 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 14:59:48,080 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 14:59:48,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 14:59:48,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:59:48,090 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:59:48,091 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:59:48,091 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 14:59:48,091 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.540913 -999.00  +14.40  35.36     50   +4.20 1 2 2 1 1   887    0 10.68 27.20 ----- 37.2 35.4 40.1 49.5 16.9 -22.9 16.1 -22.7 16.6 -22.9 17.2 -21.5
2025-07-01 14:59:48,092 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 14:59:48,092 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 14:59:48,092 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.540913
2025-07-01 14:59:48,092 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 14:59:48,093 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 14:59:48,093 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 14:59:48,093 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 14:59:48,093 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 14:59:48,093 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:59:35', tmtdew=11.53, humidity=45.93, cloud=0.0, wind=26.04, temperature=14.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:58:54.883', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 14:59:48,094 [DEBUG][       Thread-608417][   transport.py][1871] : EOF in transport thread
2025-07-01 14:59:48,178 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 14:59:48,193 [DEBUG][       Thread-608420][   transport.py][1871] : starting thread (client mode): 0x81a5780
2025-07-01 14:59:48,193 [DEBUG][       Thread-608420][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 14:59:48,213 [DEBUG][       Thread-608420][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 14:59:48,213 [ INFO][       Thread-608420][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 14:59:48,224 [DEBUG][       Thread-608420][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 14:59:48,225 [DEBUG][       Thread-608420][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 14:59:48,225 [DEBUG][       Thread-608420][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 14:59:48,225 [DEBUG][       Thread-608420][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:59:48,225 [DEBUG][       Thread-608420][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 14:59:48,225 [DEBUG][       Thread-608420][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:59:48,225 [DEBUG][       Thread-608420][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 14:59:48,225 [DEBUG][       Thread-608420][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 14:59:48,225 [DEBUG][       Thread-608420][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 14:59:48,225 [DEBUG][       Thread-608420][   transport.py][1871] : client lang: <none>
2025-07-01 14:59:48,225 [DEBUG][       Thread-608420][   transport.py][1871] : server lang: <none>
2025-07-01 14:59:48,225 [DEBUG][       Thread-608420][   transport.py][1871] : kex follows: False
2025-07-01 14:59:48,225 [DEBUG][       Thread-608420][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 14:59:48,225 [DEBUG][       Thread-608420][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 14:59:48,225 [DEBUG][       Thread-608420][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 14:59:48,226 [DEBUG][       Thread-608420][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 14:59:48,226 [DEBUG][       Thread-608420][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 14:59:48,226 [DEBUG][       Thread-608420][   transport.py][1871] : Compression: none
2025-07-01 14:59:48,226 [DEBUG][       Thread-608420][   transport.py][1871] : === End of kex handshake ===
2025-07-01 14:59:48,283 [DEBUG][       Thread-608420][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 14:59:48,284 [DEBUG][       Thread-608420][   transport.py][1871] : Switch to new keys ...
2025-07-01 14:59:48,284 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 14:59:48,285 [DEBUG][       Thread-608420][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 14:59:48,286 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 14:59:48,346 [DEBUG][       Thread-608420][   transport.py][1871] : userauth is OK
2025-07-01 14:59:48,346 [DEBUG][       Thread-608420][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 14:59:48,346 [DEBUG][       Thread-608420][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 14:59:48,346 [DEBUG][       Thread-608420][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 14:59:48,346 [DEBUG][       Thread-608420][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 14:59:48,368 [ INFO][       Thread-608420][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 14:59:48,369 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 14:59:48,369 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 14:59:49,414 [DEBUG][       Thread-608420][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 14:59:49,415 [DEBUG][       Thread-608420][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 14:59:49,464 [DEBUG][       Thread-608420][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 14:59:49,464 [DEBUG][       Thread-608420][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 14:59:49,473 [DEBUG][       Thread-608420][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 14:59:49,485 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 14:59:49,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-07-01 14:59:49,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-07-01 14:59:49,504 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 14:59:49,505 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 14:59:49,505 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 14:59:49,515 [DEBUG][       Thread-608420][   transport.py][1871] : EOF in transport thread
2025-07-01 14:59:54,627 [DEBUG][Thread-608422 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 14:59:59,516 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 14:59:59,516 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 14:59:59,516 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 14:59:59,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-07-01 14:59:59,988 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 14, 59, 35), 11.53, 45.93, 0.0, 26.04, 14.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 14:59:59,988 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 14:59:35
2025-07-01 15:00:00,074 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:00:00,078 [DEBUG][       Thread-608423][   transport.py][1871] : starting thread (client mode): 0x8173c40
2025-07-01 15:00:00,078 [DEBUG][       Thread-608423][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:00:00,092 [DEBUG][       Thread-608423][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:00:00,092 [ INFO][       Thread-608423][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:00:00,095 [DEBUG][       Thread-608423][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:00:00,095 [DEBUG][       Thread-608423][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:00:00,095 [DEBUG][       Thread-608423][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:00:00,095 [DEBUG][       Thread-608423][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:00:00,095 [DEBUG][       Thread-608423][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:00:00,095 [DEBUG][       Thread-608423][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:00:00,095 [DEBUG][       Thread-608423][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:00:00,095 [DEBUG][       Thread-608423][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:00:00,095 [DEBUG][       Thread-608423][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:00:00,095 [DEBUG][       Thread-608423][   transport.py][1871] : client lang: <none>
2025-07-01 15:00:00,095 [DEBUG][       Thread-608423][   transport.py][1871] : server lang: <none>
2025-07-01 15:00:00,095 [DEBUG][       Thread-608423][   transport.py][1871] : kex follows: False
2025-07-01 15:00:00,095 [DEBUG][       Thread-608423][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:00:00,095 [DEBUG][       Thread-608423][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:00:00,095 [DEBUG][       Thread-608423][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:00:00,095 [DEBUG][       Thread-608423][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:00:00,095 [DEBUG][       Thread-608423][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:00:00,095 [DEBUG][       Thread-608423][   transport.py][1871] : Compression: none
2025-07-01 15:00:00,095 [DEBUG][       Thread-608423][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:00:00,111 [DEBUG][       Thread-608423][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:00:00,111 [DEBUG][       Thread-608423][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:00:00,112 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:00:00,112 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:00:00,112 [DEBUG][       Thread-608423][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:00:00,113 [DEBUG][       Thread-608423][   transport.py][1871] : userauth is OK
2025-07-01 15:00:00,125 [ INFO][       Thread-608423][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:00:00,126 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:00:00,791 [DEBUG][       Thread-608423][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:00:00,792 [DEBUG][       Thread-608423][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:00:00,833 [DEBUG][       Thread-608423][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:00:00,833 [DEBUG][       Thread-608423][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:00:00,837 [DEBUG][       Thread-608423][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:00:00,851 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:00:00,852 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:00:00,854 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:00:00,855 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:00:00,861 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:00:00,862 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:00:00,862 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:00:00,863 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:00:00,863 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.541260 -999.00  +14.40  36.27     50   +4.30 1 2 2 1 1   887    0 10.58 28.90 ----- 26.1 36.3 18.8 47.3 16.9 -23.6 16.1 -23.1 16.6 -22.1 17.2 -21.6
2025-07-01 15:00:00,863 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:00:00,863 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:00:00,863 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.541260
2025-07-01 15:00:00,864 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:00:00,864 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:00:00,864 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:00:00,864 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:00:00,864 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:00:00,864 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T14:59:35', tmtdew=11.53, humidity=45.93, cloud=0.0, wind=26.04, temperature=14.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:59:24.864', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:00:00,864 [DEBUG][       Thread-608423][   transport.py][1871] : EOF in transport thread
2025-07-01 15:00:00,936 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:00:00,948 [DEBUG][       Thread-608426][   transport.py][1871] : starting thread (client mode): 0x827db40
2025-07-01 15:00:00,948 [DEBUG][       Thread-608426][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:00:00,963 [DEBUG][       Thread-608426][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:00:00,963 [ INFO][       Thread-608426][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:00:00,971 [DEBUG][       Thread-608426][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:00:00,971 [DEBUG][       Thread-608426][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:00:00,971 [DEBUG][       Thread-608426][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:00:00,971 [DEBUG][       Thread-608426][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:00:00,971 [DEBUG][       Thread-608426][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:00:00,971 [DEBUG][       Thread-608426][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:00:00,971 [DEBUG][       Thread-608426][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:00:00,971 [DEBUG][       Thread-608426][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:00:00,971 [DEBUG][       Thread-608426][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:00:00,971 [DEBUG][       Thread-608426][   transport.py][1871] : client lang: <none>
2025-07-01 15:00:00,971 [DEBUG][       Thread-608426][   transport.py][1871] : server lang: <none>
2025-07-01 15:00:00,971 [DEBUG][       Thread-608426][   transport.py][1871] : kex follows: False
2025-07-01 15:00:00,971 [DEBUG][       Thread-608426][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:00:00,971 [DEBUG][       Thread-608426][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:00:00,971 [DEBUG][       Thread-608426][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:00:00,971 [DEBUG][       Thread-608426][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:00:00,971 [DEBUG][       Thread-608426][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:00:00,971 [DEBUG][       Thread-608426][   transport.py][1871] : Compression: none
2025-07-01 15:00:00,971 [DEBUG][       Thread-608426][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:00:01,030 [DEBUG][       Thread-608426][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:00:01,031 [DEBUG][       Thread-608426][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:00:01,032 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:00:01,032 [DEBUG][       Thread-608426][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:00:01,033 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:00:01,090 [DEBUG][       Thread-608426][   transport.py][1871] : userauth is OK
2025-07-01 15:00:01,090 [DEBUG][       Thread-608426][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:00:01,090 [DEBUG][       Thread-608426][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:00:01,090 [DEBUG][       Thread-608426][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:00:01,090 [DEBUG][       Thread-608426][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:00:01,108 [ INFO][       Thread-608426][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:00:01,108 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:00:01,109 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:00:02,126 [DEBUG][       Thread-608426][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:00:02,126 [DEBUG][       Thread-608426][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:00:02,177 [DEBUG][       Thread-608426][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:00:02,177 [DEBUG][       Thread-608426][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:00:02,189 [DEBUG][       Thread-608426][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:00:02,199 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:00:02,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-07-01 15:00:02,210 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 15:00:02,220 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:00:02,220 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:00:02,221 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:00:02,230 [DEBUG][       Thread-608426][   transport.py][1871] : EOF in transport thread
2025-07-01 15:00:03,659 [DEBUG][Thread-608428 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:00:12,228 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:00:12,228 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:00:12,228 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:00:12,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-07-01 15:00:12,677 [DEBUG][Thread-608429 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:00:12,704 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 0, 7), 11.6, 45.73, 0.0, 33.31, 14.41, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:00:12,704 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:00:07
2025-07-01 15:00:12,789 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:00:12,793 [DEBUG][       Thread-608430][   transport.py][1871] : starting thread (client mode): 0x81c9cc0
2025-07-01 15:00:12,793 [DEBUG][       Thread-608430][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:00:12,814 [DEBUG][       Thread-608430][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:00:12,814 [ INFO][       Thread-608430][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:00:12,815 [DEBUG][       Thread-608430][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:00:12,816 [DEBUG][       Thread-608430][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:00:12,816 [DEBUG][       Thread-608430][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:00:12,816 [DEBUG][       Thread-608430][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:00:12,816 [DEBUG][       Thread-608430][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:00:12,816 [DEBUG][       Thread-608430][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:00:12,816 [DEBUG][       Thread-608430][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:00:12,816 [DEBUG][       Thread-608430][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:00:12,816 [DEBUG][       Thread-608430][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:00:12,816 [DEBUG][       Thread-608430][   transport.py][1871] : client lang: <none>
2025-07-01 15:00:12,816 [DEBUG][       Thread-608430][   transport.py][1871] : server lang: <none>
2025-07-01 15:00:12,816 [DEBUG][       Thread-608430][   transport.py][1871] : kex follows: False
2025-07-01 15:00:12,816 [DEBUG][       Thread-608430][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:00:12,816 [DEBUG][       Thread-608430][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:00:12,816 [DEBUG][       Thread-608430][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:00:12,816 [DEBUG][       Thread-608430][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:00:12,816 [DEBUG][       Thread-608430][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:00:12,816 [DEBUG][       Thread-608430][   transport.py][1871] : Compression: none
2025-07-01 15:00:12,816 [DEBUG][       Thread-608430][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:00:12,833 [DEBUG][       Thread-608430][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:00:12,833 [DEBUG][       Thread-608430][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:00:12,834 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:00:12,834 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:00:12,835 [DEBUG][       Thread-608430][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:00:12,835 [DEBUG][       Thread-608430][   transport.py][1871] : userauth is OK
2025-07-01 15:00:12,848 [ INFO][       Thread-608430][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:00:12,848 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:00:13,433 [DEBUG][       Thread-608430][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:00:13,433 [DEBUG][       Thread-608430][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:00:13,476 [DEBUG][       Thread-608430][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:00:13,476 [DEBUG][       Thread-608430][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:00:13,479 [DEBUG][       Thread-608430][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:00:13,492 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:00:13,492 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:00:13,493 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:00:13,494 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:00:13,497 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:00:13,498 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:00:13,498 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:00:13,498 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:00:13,498 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.541260 -999.00  +14.40  36.27     50   +4.30 1 2 2 1 1   887    0 10.58 28.90 ----- 26.1 36.3 18.8 47.3 16.9 -23.6 16.1 -23.1 16.6 -22.1 17.2 -21.6
2025-07-01 15:00:13,498 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:00:13,498 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:00:13,498 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.541260
2025-07-01 15:00:13,499 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:00:13,499 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:00:13,499 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:00:13,499 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:00:13,499 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:00:13,499 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:00:07', tmtdew=11.6, humidity=45.73, cloud=0.0, wind=33.31, temperature=14.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:59:24.864', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:00:13,500 [DEBUG][       Thread-608430][   transport.py][1871] : EOF in transport thread
2025-07-01 15:00:13,571 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:00:13,581 [DEBUG][       Thread-608433][   transport.py][1871] : starting thread (client mode): 0x83c8520
2025-07-01 15:00:13,581 [DEBUG][       Thread-608433][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:00:13,603 [DEBUG][       Thread-608433][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:00:13,603 [ INFO][       Thread-608433][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:00:13,615 [DEBUG][       Thread-608433][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:00:13,615 [DEBUG][       Thread-608433][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:00:13,616 [DEBUG][       Thread-608433][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:00:13,616 [DEBUG][       Thread-608433][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:00:13,616 [DEBUG][       Thread-608433][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:00:13,616 [DEBUG][       Thread-608433][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:00:13,616 [DEBUG][       Thread-608433][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:00:13,616 [DEBUG][       Thread-608433][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:00:13,616 [DEBUG][       Thread-608433][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:00:13,616 [DEBUG][       Thread-608433][   transport.py][1871] : client lang: <none>
2025-07-01 15:00:13,616 [DEBUG][       Thread-608433][   transport.py][1871] : server lang: <none>
2025-07-01 15:00:13,616 [DEBUG][       Thread-608433][   transport.py][1871] : kex follows: False
2025-07-01 15:00:13,616 [DEBUG][       Thread-608433][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:00:13,616 [DEBUG][       Thread-608433][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:00:13,616 [DEBUG][       Thread-608433][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:00:13,616 [DEBUG][       Thread-608433][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:00:13,616 [DEBUG][       Thread-608433][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:00:13,616 [DEBUG][       Thread-608433][   transport.py][1871] : Compression: none
2025-07-01 15:00:13,616 [DEBUG][       Thread-608433][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:00:13,667 [DEBUG][       Thread-608433][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:00:13,667 [DEBUG][       Thread-608433][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:00:13,667 [DEBUG][       Thread-608433][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:00:13,667 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:00:13,667 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:00:13,724 [DEBUG][       Thread-608433][   transport.py][1871] : userauth is OK
2025-07-01 15:00:13,724 [DEBUG][       Thread-608433][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:00:13,724 [DEBUG][       Thread-608433][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:00:13,724 [DEBUG][       Thread-608433][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:00:13,724 [DEBUG][       Thread-608433][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:00:13,740 [ INFO][       Thread-608433][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:00:13,740 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:00:13,740 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:00:14,775 [DEBUG][       Thread-608433][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:00:14,775 [DEBUG][       Thread-608433][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:00:14,823 [DEBUG][       Thread-608433][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:00:14,823 [DEBUG][       Thread-608433][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:00:14,832 [DEBUG][       Thread-608433][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:00:14,839 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:00:14,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-07-01 15:00:14,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-07-01 15:00:14,855 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:00:14,855 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:00:14,855 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:00:14,863 [DEBUG][       Thread-608433][   transport.py][1871] : EOF in transport thread
2025-07-01 15:00:21,695 [DEBUG][Thread-608435 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:00:24,865 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:00:24,866 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:00:24,866 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:00:24,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-07-01 15:00:25,352 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 0, 7), 11.6, 45.73, 0.0, 33.31, 14.41, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:00:25,352 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:00:07
2025-07-01 15:00:25,438 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:00:25,452 [DEBUG][       Thread-608436][   transport.py][1871] : starting thread (client mode): 0x8157070
2025-07-01 15:00:25,453 [DEBUG][       Thread-608436][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:00:25,474 [DEBUG][       Thread-608436][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:00:25,474 [ INFO][       Thread-608436][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:00:25,477 [DEBUG][       Thread-608436][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:00:25,477 [DEBUG][       Thread-608436][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:00:25,478 [DEBUG][       Thread-608436][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:00:25,478 [DEBUG][       Thread-608436][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:00:25,478 [DEBUG][       Thread-608436][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:00:25,478 [DEBUG][       Thread-608436][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:00:25,478 [DEBUG][       Thread-608436][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:00:25,478 [DEBUG][       Thread-608436][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:00:25,478 [DEBUG][       Thread-608436][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:00:25,478 [DEBUG][       Thread-608436][   transport.py][1871] : client lang: <none>
2025-07-01 15:00:25,478 [DEBUG][       Thread-608436][   transport.py][1871] : server lang: <none>
2025-07-01 15:00:25,478 [DEBUG][       Thread-608436][   transport.py][1871] : kex follows: False
2025-07-01 15:00:25,478 [DEBUG][       Thread-608436][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:00:25,478 [DEBUG][       Thread-608436][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:00:25,478 [DEBUG][       Thread-608436][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:00:25,478 [DEBUG][       Thread-608436][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:00:25,478 [DEBUG][       Thread-608436][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:00:25,478 [DEBUG][       Thread-608436][   transport.py][1871] : Compression: none
2025-07-01 15:00:25,478 [DEBUG][       Thread-608436][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:00:25,496 [DEBUG][       Thread-608436][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:00:25,496 [DEBUG][       Thread-608436][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:00:25,497 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:00:25,497 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:00:25,498 [DEBUG][       Thread-608436][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:00:25,498 [DEBUG][       Thread-608436][   transport.py][1871] : userauth is OK
2025-07-01 15:00:25,523 [ INFO][       Thread-608436][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:00:25,524 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:00:26,139 [DEBUG][       Thread-608436][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:00:26,139 [DEBUG][       Thread-608436][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:00:26,180 [DEBUG][       Thread-608436][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:00:26,181 [DEBUG][       Thread-608436][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:00:26,183 [DEBUG][       Thread-608436][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:00:26,196 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:00:26,196 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:00:26,197 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:00:26,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:00:26,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:00:26,205 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:00:26,205 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:00:26,205 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:00:26,206 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.541607 -999.00  +14.40  37.73     50   +4.30 1 1 2 1 1   887    0 10.83 32.70 ----- 29.7 37.7 25.0 44.0 16.9 -23.9 16.1 -23.6 16.6 -22.6 17.3 -21.9
2025-07-01 15:00:26,206 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:00:26,206 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:00:26,206 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.541607
2025-07-01 15:00:26,206 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:00:26,207 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:00:26,207 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:00:26,207 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:00:26,207 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:00:26,207 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:00:07', tmtdew=11.6, humidity=45.73, cloud=0.0, wind=33.31, temperature=14.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:59:54.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:00:26,207 [DEBUG][       Thread-608436][   transport.py][1871] : EOF in transport thread
2025-07-01 15:00:26,288 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:00:26,301 [DEBUG][       Thread-608439][   transport.py][1871] : starting thread (client mode): 0x83c8790
2025-07-01 15:00:26,301 [DEBUG][       Thread-608439][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:00:26,316 [DEBUG][       Thread-608439][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:00:26,316 [ INFO][       Thread-608439][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:00:26,324 [DEBUG][       Thread-608439][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:00:26,324 [DEBUG][       Thread-608439][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:00:26,324 [DEBUG][       Thread-608439][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:00:26,324 [DEBUG][       Thread-608439][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:00:26,324 [DEBUG][       Thread-608439][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:00:26,324 [DEBUG][       Thread-608439][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:00:26,324 [DEBUG][       Thread-608439][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:00:26,324 [DEBUG][       Thread-608439][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:00:26,324 [DEBUG][       Thread-608439][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:00:26,324 [DEBUG][       Thread-608439][   transport.py][1871] : client lang: <none>
2025-07-01 15:00:26,324 [DEBUG][       Thread-608439][   transport.py][1871] : server lang: <none>
2025-07-01 15:00:26,324 [DEBUG][       Thread-608439][   transport.py][1871] : kex follows: False
2025-07-01 15:00:26,324 [DEBUG][       Thread-608439][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:00:26,325 [DEBUG][       Thread-608439][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:00:26,325 [DEBUG][       Thread-608439][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:00:26,325 [DEBUG][       Thread-608439][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:00:26,325 [DEBUG][       Thread-608439][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:00:26,325 [DEBUG][       Thread-608439][   transport.py][1871] : Compression: none
2025-07-01 15:00:26,325 [DEBUG][       Thread-608439][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:00:26,381 [DEBUG][       Thread-608439][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:00:26,382 [DEBUG][       Thread-608439][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:00:26,382 [DEBUG][       Thread-608439][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:00:26,383 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:00:26,383 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:00:26,437 [DEBUG][       Thread-608439][   transport.py][1871] : userauth is OK
2025-07-01 15:00:26,437 [DEBUG][       Thread-608439][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:00:26,438 [DEBUG][       Thread-608439][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:00:26,438 [DEBUG][       Thread-608439][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:00:26,438 [DEBUG][       Thread-608439][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:00:26,458 [ INFO][       Thread-608439][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:00:26,458 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:00:26,459 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:00:27,516 [DEBUG][       Thread-608439][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:00:27,516 [DEBUG][       Thread-608439][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:00:27,564 [DEBUG][       Thread-608439][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:00:27,564 [DEBUG][       Thread-608439][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:00:27,576 [DEBUG][       Thread-608439][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:00:27,590 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:00:27,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-07-01 15:00:27,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-07-01 15:00:27,608 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:00:27,608 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:00:27,609 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:00:27,617 [DEBUG][       Thread-608439][   transport.py][1871] : EOF in transport thread
2025-07-01 15:00:30,737 [DEBUG][Thread-608441 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:00:35,999 [DEBUG][Thread-608442 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:00:37,614 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:00:37,614 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:00:37,614 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:00:37,616 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 15:00:38,080 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 0, 7), 11.6, 45.73, 0.0, 33.31, 14.41, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:00:38,080 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:00:07
2025-07-01 15:00:38,167 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:00:38,171 [DEBUG][       Thread-608443][   transport.py][1871] : starting thread (client mode): 0x8154e80
2025-07-01 15:00:38,171 [DEBUG][       Thread-608443][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:00:38,191 [DEBUG][       Thread-608443][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:00:38,191 [ INFO][       Thread-608443][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:00:38,194 [DEBUG][       Thread-608443][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:00:38,194 [DEBUG][       Thread-608443][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:00:38,194 [DEBUG][       Thread-608443][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:00:38,194 [DEBUG][       Thread-608443][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:00:38,194 [DEBUG][       Thread-608443][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:00:38,194 [DEBUG][       Thread-608443][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:00:38,194 [DEBUG][       Thread-608443][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:00:38,194 [DEBUG][       Thread-608443][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:00:38,194 [DEBUG][       Thread-608443][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:00:38,194 [DEBUG][       Thread-608443][   transport.py][1871] : client lang: <none>
2025-07-01 15:00:38,194 [DEBUG][       Thread-608443][   transport.py][1871] : server lang: <none>
2025-07-01 15:00:38,194 [DEBUG][       Thread-608443][   transport.py][1871] : kex follows: False
2025-07-01 15:00:38,194 [DEBUG][       Thread-608443][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:00:38,195 [DEBUG][       Thread-608443][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:00:38,195 [DEBUG][       Thread-608443][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:00:38,195 [DEBUG][       Thread-608443][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:00:38,195 [DEBUG][       Thread-608443][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:00:38,195 [DEBUG][       Thread-608443][   transport.py][1871] : Compression: none
2025-07-01 15:00:38,195 [DEBUG][       Thread-608443][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:00:38,212 [DEBUG][       Thread-608443][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:00:38,212 [DEBUG][       Thread-608443][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:00:38,212 [DEBUG][       Thread-608443][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:00:38,212 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:00:38,212 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:00:38,212 [DEBUG][       Thread-608443][   transport.py][1871] : userauth is OK
2025-07-01 15:00:38,236 [ INFO][       Thread-608443][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:00:38,236 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:00:39,047 [DEBUG][       Thread-608443][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:00:39,047 [DEBUG][       Thread-608443][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:00:39,089 [DEBUG][       Thread-608443][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:00:39,089 [DEBUG][       Thread-608443][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:00:39,093 [DEBUG][       Thread-608443][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:00:39,106 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:00:39,107 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:00:39,108 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:00:39,110 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:00:39,116 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:00:39,117 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:00:39,118 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:00:39,118 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:00:39,118 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.541607 -999.00  +14.40  37.73     50   +4.30 1 1 2 1 1   887    0 10.83 32.70 ----- 29.7 37.7 25.0 44.0 16.9 -23.9 16.1 -23.6 16.6 -22.6 17.3 -21.9
2025-07-01 15:00:39,119 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:00:39,119 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:00:39,119 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.541607
2025-07-01 15:00:39,119 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:00:39,120 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:00:39,120 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:00:39,120 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:00:39,120 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:00:39,120 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:00:07', tmtdew=11.6, humidity=45.73, cloud=0.0, wind=33.31, temperature=14.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:59:54.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:00:39,121 [DEBUG][       Thread-608443][   transport.py][1871] : EOF in transport thread
2025-07-01 15:00:39,203 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:00:39,213 [DEBUG][       Thread-608446][   transport.py][1871] : starting thread (client mode): 0x8154040
2025-07-01 15:00:39,213 [DEBUG][       Thread-608446][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:00:39,230 [DEBUG][       Thread-608446][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:00:39,230 [ INFO][       Thread-608446][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:00:39,241 [DEBUG][       Thread-608446][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:00:39,242 [DEBUG][       Thread-608446][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:00:39,242 [DEBUG][       Thread-608446][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:00:39,242 [DEBUG][       Thread-608446][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:00:39,242 [DEBUG][       Thread-608446][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:00:39,242 [DEBUG][       Thread-608446][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:00:39,242 [DEBUG][       Thread-608446][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:00:39,242 [DEBUG][       Thread-608446][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:00:39,242 [DEBUG][       Thread-608446][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:00:39,242 [DEBUG][       Thread-608446][   transport.py][1871] : client lang: <none>
2025-07-01 15:00:39,242 [DEBUG][       Thread-608446][   transport.py][1871] : server lang: <none>
2025-07-01 15:00:39,242 [DEBUG][       Thread-608446][   transport.py][1871] : kex follows: False
2025-07-01 15:00:39,242 [DEBUG][       Thread-608446][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:00:39,242 [DEBUG][       Thread-608446][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:00:39,242 [DEBUG][       Thread-608446][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:00:39,242 [DEBUG][       Thread-608446][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:00:39,243 [DEBUG][       Thread-608446][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:00:39,243 [DEBUG][       Thread-608446][   transport.py][1871] : Compression: none
2025-07-01 15:00:39,243 [DEBUG][       Thread-608446][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:00:39,297 [DEBUG][       Thread-608446][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:00:39,297 [DEBUG][       Thread-608446][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:00:39,298 [DEBUG][       Thread-608446][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:00:39,298 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:00:39,299 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:00:39,353 [DEBUG][       Thread-608446][   transport.py][1871] : userauth is OK
2025-07-01 15:00:39,354 [DEBUG][       Thread-608446][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:00:39,354 [DEBUG][       Thread-608446][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:00:39,354 [DEBUG][       Thread-608446][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:00:39,354 [DEBUG][       Thread-608446][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:00:39,373 [ INFO][       Thread-608446][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:00:39,373 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:00:39,374 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:00:39,778 [DEBUG][Thread-608448 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:00:40,411 [DEBUG][       Thread-608446][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:00:40,411 [DEBUG][       Thread-608446][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:00:40,459 [DEBUG][       Thread-608446][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:00:40,459 [DEBUG][       Thread-608446][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:00:40,468 [DEBUG][       Thread-608446][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:00:40,475 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:00:40,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-07-01 15:00:40,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-07-01 15:00:40,491 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:00:40,491 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:00:40,491 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:00:40,499 [DEBUG][       Thread-608446][   transport.py][1871] : EOF in transport thread
2025-07-01 15:00:48,801 [DEBUG][Thread-608449 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:00:50,500 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:00:50,500 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:00:50,500 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:00:50,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-07-01 15:00:50,977 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 0, 39), 11.56, 45.73, 0.0, 33.5, 14.45, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:00:50,977 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:00:39
2025-07-01 15:00:51,062 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:00:51,068 [DEBUG][       Thread-608450][   transport.py][1871] : starting thread (client mode): 0x8156800
2025-07-01 15:00:51,068 [DEBUG][       Thread-608450][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:00:51,089 [DEBUG][       Thread-608450][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:00:51,089 [ INFO][       Thread-608450][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:00:51,092 [DEBUG][       Thread-608450][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:00:51,092 [DEBUG][       Thread-608450][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:00:51,092 [DEBUG][       Thread-608450][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:00:51,092 [DEBUG][       Thread-608450][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:00:51,092 [DEBUG][       Thread-608450][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:00:51,092 [DEBUG][       Thread-608450][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:00:51,092 [DEBUG][       Thread-608450][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:00:51,092 [DEBUG][       Thread-608450][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:00:51,092 [DEBUG][       Thread-608450][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:00:51,092 [DEBUG][       Thread-608450][   transport.py][1871] : client lang: <none>
2025-07-01 15:00:51,092 [DEBUG][       Thread-608450][   transport.py][1871] : server lang: <none>
2025-07-01 15:00:51,092 [DEBUG][       Thread-608450][   transport.py][1871] : kex follows: False
2025-07-01 15:00:51,093 [DEBUG][       Thread-608450][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:00:51,093 [DEBUG][       Thread-608450][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:00:51,093 [DEBUG][       Thread-608450][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:00:51,093 [DEBUG][       Thread-608450][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:00:51,093 [DEBUG][       Thread-608450][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:00:51,093 [DEBUG][       Thread-608450][   transport.py][1871] : Compression: none
2025-07-01 15:00:51,093 [DEBUG][       Thread-608450][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:00:51,109 [DEBUG][       Thread-608450][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:00:51,110 [DEBUG][       Thread-608450][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:00:51,110 [DEBUG][       Thread-608450][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:00:51,110 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:00:51,111 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:00:51,112 [DEBUG][       Thread-608450][   transport.py][1871] : userauth is OK
2025-07-01 15:00:51,136 [ INFO][       Thread-608450][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:00:51,137 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:00:51,898 [DEBUG][       Thread-608450][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:00:51,898 [DEBUG][       Thread-608450][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:00:51,941 [DEBUG][       Thread-608450][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:00:51,941 [DEBUG][       Thread-608450][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:00:51,944 [DEBUG][       Thread-608450][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:00:51,959 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:00:51,959 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:00:51,964 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:00:51,965 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:00:51,968 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:00:51,969 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:00:51,969 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:00:51,969 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:00:51,969 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.541607 -999.00  +14.40  37.73     50   +4.30 1 1 2 1 1   887    0 10.83 32.70 ----- 29.7 37.7 25.0 44.0 16.9 -23.9 16.1 -23.6 16.6 -22.6 17.3 -21.9
2025-07-01 15:00:51,969 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:00:51,969 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:00:51,969 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.541607
2025-07-01 15:00:51,969 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:00:51,969 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:00:51,969 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:00:51,970 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:00:51,970 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:00:51,970 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:00:39', tmtdew=11.56, humidity=45.73, cloud=0.0, wind=33.5, temperature=14.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T12:59:54.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:00:51,970 [DEBUG][       Thread-608450][   transport.py][1871] : EOF in transport thread
2025-07-01 15:00:52,045 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:00:52,056 [DEBUG][       Thread-608453][   transport.py][1871] : starting thread (client mode): 0x83c8400
2025-07-01 15:00:52,056 [DEBUG][       Thread-608453][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:00:52,071 [DEBUG][       Thread-608453][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:00:52,071 [ INFO][       Thread-608453][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:00:52,078 [DEBUG][       Thread-608453][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:00:52,078 [DEBUG][       Thread-608453][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:00:52,078 [DEBUG][       Thread-608453][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:00:52,078 [DEBUG][       Thread-608453][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:00:52,078 [DEBUG][       Thread-608453][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:00:52,078 [DEBUG][       Thread-608453][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:00:52,078 [DEBUG][       Thread-608453][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:00:52,078 [DEBUG][       Thread-608453][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:00:52,078 [DEBUG][       Thread-608453][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:00:52,078 [DEBUG][       Thread-608453][   transport.py][1871] : client lang: <none>
2025-07-01 15:00:52,078 [DEBUG][       Thread-608453][   transport.py][1871] : server lang: <none>
2025-07-01 15:00:52,078 [DEBUG][       Thread-608453][   transport.py][1871] : kex follows: False
2025-07-01 15:00:52,078 [DEBUG][       Thread-608453][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:00:52,078 [DEBUG][       Thread-608453][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:00:52,078 [DEBUG][       Thread-608453][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:00:52,078 [DEBUG][       Thread-608453][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:00:52,078 [DEBUG][       Thread-608453][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:00:52,078 [DEBUG][       Thread-608453][   transport.py][1871] : Compression: none
2025-07-01 15:00:52,078 [DEBUG][       Thread-608453][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:00:52,136 [DEBUG][       Thread-608453][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:00:52,136 [DEBUG][       Thread-608453][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:00:52,136 [DEBUG][       Thread-608453][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:00:52,136 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:00:52,136 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:00:52,194 [DEBUG][       Thread-608453][   transport.py][1871] : userauth is OK
2025-07-01 15:00:52,194 [DEBUG][       Thread-608453][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:00:52,194 [DEBUG][       Thread-608453][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:00:52,194 [DEBUG][       Thread-608453][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:00:52,194 [DEBUG][       Thread-608453][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:00:52,208 [ INFO][       Thread-608453][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:00:52,208 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:00:52,208 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:00:53,219 [DEBUG][       Thread-608453][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:00:53,219 [DEBUG][       Thread-608453][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:00:53,267 [DEBUG][       Thread-608453][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:00:53,267 [DEBUG][       Thread-608453][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:00:53,275 [DEBUG][       Thread-608453][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:00:53,283 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:00:53,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-07-01 15:00:53,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-07-01 15:00:53,299 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:00:53,299 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:00:53,299 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:00:53,307 [DEBUG][       Thread-608453][   transport.py][1871] : EOF in transport thread
2025-07-01 15:00:57,820 [DEBUG][Thread-608455 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:01:03,308 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:01:03,308 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:01:03,308 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:01:03,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-07-01 15:01:03,771 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 0, 39), 11.56, 45.73, 0.0, 33.5, 14.45, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:01:03,771 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:00:39
2025-07-01 15:01:03,856 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:01:03,860 [DEBUG][       Thread-608456][   transport.py][1871] : starting thread (client mode): 0x75abb50
2025-07-01 15:01:03,860 [DEBUG][       Thread-608456][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:01:03,881 [DEBUG][       Thread-608456][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:01:03,881 [ INFO][       Thread-608456][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:01:03,885 [DEBUG][       Thread-608456][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:01:03,885 [DEBUG][       Thread-608456][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:01:03,885 [DEBUG][       Thread-608456][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:01:03,885 [DEBUG][       Thread-608456][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:01:03,885 [DEBUG][       Thread-608456][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:01:03,885 [DEBUG][       Thread-608456][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:01:03,885 [DEBUG][       Thread-608456][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:01:03,885 [DEBUG][       Thread-608456][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:01:03,885 [DEBUG][       Thread-608456][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:01:03,885 [DEBUG][       Thread-608456][   transport.py][1871] : client lang: <none>
2025-07-01 15:01:03,885 [DEBUG][       Thread-608456][   transport.py][1871] : server lang: <none>
2025-07-01 15:01:03,885 [DEBUG][       Thread-608456][   transport.py][1871] : kex follows: False
2025-07-01 15:01:03,885 [DEBUG][       Thread-608456][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:01:03,885 [DEBUG][       Thread-608456][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:01:03,885 [DEBUG][       Thread-608456][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:01:03,885 [DEBUG][       Thread-608456][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:01:03,885 [DEBUG][       Thread-608456][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:01:03,885 [DEBUG][       Thread-608456][   transport.py][1871] : Compression: none
2025-07-01 15:01:03,885 [DEBUG][       Thread-608456][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:01:03,902 [DEBUG][       Thread-608456][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:01:03,902 [DEBUG][       Thread-608456][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:01:03,912 [DEBUG][       Thread-608456][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:01:03,912 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:01:03,912 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:01:03,914 [DEBUG][       Thread-608456][   transport.py][1871] : userauth is OK
2025-07-01 15:01:03,938 [ INFO][       Thread-608456][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:01:03,939 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:01:04,608 [DEBUG][       Thread-608456][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:01:04,608 [DEBUG][       Thread-608456][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:01:04,649 [DEBUG][       Thread-608456][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:01:04,649 [DEBUG][       Thread-608456][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:01:04,652 [DEBUG][       Thread-608456][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:01:04,663 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:01:04,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:01:04,666 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:01:04,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:01:04,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:01:04,674 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:01:04,674 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:01:04,675 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:01:04,675 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.542301 -999.00  +14.10  51.80     50   +4.00 1 1 2 1 1   887    0 10.67 33.59 ----- 43.3 51.8 23.8 56.6 16.9 -24.4 16.1 -24.3 16.4 -23.3 17.2 -22.1
2025-07-01 15:01:04,675 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:01:04,676 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:01:04,676 [DEBUG][       Thread-608456][   transport.py][1871] : EOF in transport thread
2025-07-01 15:01:04,676 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.542301
2025-07-01 15:01:04,677 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:01:04,678 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:01:04,678 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:01:04,678 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:01:04,678 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:01:04,679 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:00:39', tmtdew=11.56, humidity=45.73, cloud=0.0, wind=33.5, temperature=14.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:00:54.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:01:04,761 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:01:04,771 [DEBUG][       Thread-608459][   transport.py][1871] : starting thread (client mode): 0x8154b50
2025-07-01 15:01:04,771 [DEBUG][       Thread-608459][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:01:04,786 [DEBUG][       Thread-608459][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:01:04,786 [ INFO][       Thread-608459][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:01:04,794 [DEBUG][       Thread-608459][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:01:04,794 [DEBUG][       Thread-608459][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:01:04,794 [DEBUG][       Thread-608459][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:01:04,794 [DEBUG][       Thread-608459][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:01:04,794 [DEBUG][       Thread-608459][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:01:04,794 [DEBUG][       Thread-608459][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:01:04,794 [DEBUG][       Thread-608459][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:01:04,794 [DEBUG][       Thread-608459][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:01:04,794 [DEBUG][       Thread-608459][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:01:04,794 [DEBUG][       Thread-608459][   transport.py][1871] : client lang: <none>
2025-07-01 15:01:04,794 [DEBUG][       Thread-608459][   transport.py][1871] : server lang: <none>
2025-07-01 15:01:04,794 [DEBUG][       Thread-608459][   transport.py][1871] : kex follows: False
2025-07-01 15:01:04,794 [DEBUG][       Thread-608459][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:01:04,794 [DEBUG][       Thread-608459][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:01:04,794 [DEBUG][       Thread-608459][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:01:04,794 [DEBUG][       Thread-608459][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:01:04,795 [DEBUG][       Thread-608459][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:01:04,795 [DEBUG][       Thread-608459][   transport.py][1871] : Compression: none
2025-07-01 15:01:04,795 [DEBUG][       Thread-608459][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:01:04,853 [DEBUG][       Thread-608459][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:01:04,854 [DEBUG][       Thread-608459][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:01:04,854 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:01:04,855 [DEBUG][       Thread-608459][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:01:04,856 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:01:04,917 [DEBUG][       Thread-608459][   transport.py][1871] : userauth is OK
2025-07-01 15:01:04,917 [DEBUG][       Thread-608459][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:01:04,918 [DEBUG][       Thread-608459][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:01:04,918 [DEBUG][       Thread-608459][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:01:04,918 [DEBUG][       Thread-608459][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:01:04,938 [ INFO][       Thread-608459][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:01:04,938 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:01:04,939 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:01:05,955 [DEBUG][       Thread-608459][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:01:05,955 [DEBUG][       Thread-608459][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:01:06,004 [DEBUG][       Thread-608459][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:01:06,005 [DEBUG][       Thread-608459][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:01:06,018 [DEBUG][       Thread-608459][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:01:06,027 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:01:06,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-07-01 15:01:06,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-07-01 15:01:06,046 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:01:06,046 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:01:06,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:01:06,054 [DEBUG][       Thread-608459][   transport.py][1871] : EOF in transport thread
2025-07-01 15:01:06,863 [DEBUG][Thread-608461 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:01:15,885 [DEBUG][Thread-608462 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:01:16,057 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:01:16,057 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:01:16,057 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:01:16,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-07-01 15:01:16,524 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 1, 10), 11.64, 45.6, 0.0, 31.86, 14.43, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:01:16,525 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:01:10
2025-07-01 15:01:16,609 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:01:16,615 [DEBUG][       Thread-608463][   transport.py][1871] : starting thread (client mode): 0x75a86d0
2025-07-01 15:01:16,615 [DEBUG][       Thread-608463][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:01:16,631 [DEBUG][       Thread-608463][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:01:16,631 [ INFO][       Thread-608463][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:01:16,635 [DEBUG][       Thread-608463][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:01:16,635 [DEBUG][       Thread-608463][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:01:16,635 [DEBUG][       Thread-608463][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:01:16,635 [DEBUG][       Thread-608463][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:01:16,635 [DEBUG][       Thread-608463][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:01:16,635 [DEBUG][       Thread-608463][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:01:16,635 [DEBUG][       Thread-608463][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:01:16,635 [DEBUG][       Thread-608463][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:01:16,635 [DEBUG][       Thread-608463][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:01:16,635 [DEBUG][       Thread-608463][   transport.py][1871] : client lang: <none>
2025-07-01 15:01:16,635 [DEBUG][       Thread-608463][   transport.py][1871] : server lang: <none>
2025-07-01 15:01:16,635 [DEBUG][       Thread-608463][   transport.py][1871] : kex follows: False
2025-07-01 15:01:16,635 [DEBUG][       Thread-608463][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:01:16,635 [DEBUG][       Thread-608463][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:01:16,635 [DEBUG][       Thread-608463][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:01:16,635 [DEBUG][       Thread-608463][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:01:16,635 [DEBUG][       Thread-608463][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:01:16,635 [DEBUG][       Thread-608463][   transport.py][1871] : Compression: none
2025-07-01 15:01:16,635 [DEBUG][       Thread-608463][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:01:16,652 [DEBUG][       Thread-608463][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:01:16,653 [DEBUG][       Thread-608463][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:01:16,653 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:01:16,653 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:01:16,654 [DEBUG][       Thread-608463][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:01:16,655 [DEBUG][       Thread-608463][   transport.py][1871] : userauth is OK
2025-07-01 15:01:16,668 [ INFO][       Thread-608463][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:01:16,669 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:01:17,488 [DEBUG][       Thread-608463][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:01:17,489 [DEBUG][       Thread-608463][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:01:17,533 [DEBUG][       Thread-608463][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:01:17,533 [DEBUG][       Thread-608463][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:01:17,536 [DEBUG][       Thread-608463][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:01:17,542 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:01:17,542 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:01:17,544 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:01:17,545 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:01:17,551 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:01:17,552 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:01:17,553 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:01:17,553 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:01:17,553 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.542301 -999.00  +14.10  51.80     50   +4.00 1 1 2 1 1   887    0 10.67 33.59 ----- 43.3 51.8 23.8 56.6 16.9 -24.4 16.1 -24.3 16.4 -23.3 17.2 -22.1
2025-07-01 15:01:17,553 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:01:17,554 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:01:17,554 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.542301
2025-07-01 15:01:17,554 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:01:17,555 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:01:17,555 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:01:17,555 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:01:17,555 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:01:17,555 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:01:10', tmtdew=11.64, humidity=45.6, cloud=0.0, wind=31.86, temperature=14.43, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:00:54.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:01:17,555 [DEBUG][       Thread-608463][   transport.py][1871] : EOF in transport thread
2025-07-01 15:01:17,639 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:01:17,649 [DEBUG][       Thread-608466][   transport.py][1871] : starting thread (client mode): 0x83c8490
2025-07-01 15:01:17,649 [DEBUG][       Thread-608466][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:01:17,664 [DEBUG][       Thread-608466][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:01:17,664 [ INFO][       Thread-608466][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:01:17,671 [DEBUG][       Thread-608466][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:01:17,671 [DEBUG][       Thread-608466][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:01:17,671 [DEBUG][       Thread-608466][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:01:17,671 [DEBUG][       Thread-608466][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:01:17,671 [DEBUG][       Thread-608466][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:01:17,671 [DEBUG][       Thread-608466][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:01:17,671 [DEBUG][       Thread-608466][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:01:17,671 [DEBUG][       Thread-608466][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:01:17,672 [DEBUG][       Thread-608466][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:01:17,672 [DEBUG][       Thread-608466][   transport.py][1871] : client lang: <none>
2025-07-01 15:01:17,672 [DEBUG][       Thread-608466][   transport.py][1871] : server lang: <none>
2025-07-01 15:01:17,672 [DEBUG][       Thread-608466][   transport.py][1871] : kex follows: False
2025-07-01 15:01:17,672 [DEBUG][       Thread-608466][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:01:17,672 [DEBUG][       Thread-608466][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:01:17,672 [DEBUG][       Thread-608466][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:01:17,672 [DEBUG][       Thread-608466][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:01:17,672 [DEBUG][       Thread-608466][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:01:17,672 [DEBUG][       Thread-608466][   transport.py][1871] : Compression: none
2025-07-01 15:01:17,672 [DEBUG][       Thread-608466][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:01:17,730 [DEBUG][       Thread-608466][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:01:17,730 [DEBUG][       Thread-608466][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:01:17,731 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:01:17,732 [DEBUG][       Thread-608466][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:01:17,732 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:01:17,788 [DEBUG][       Thread-608466][   transport.py][1871] : userauth is OK
2025-07-01 15:01:17,788 [DEBUG][       Thread-608466][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:01:17,788 [DEBUG][       Thread-608466][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:01:17,789 [DEBUG][       Thread-608466][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:01:17,789 [DEBUG][       Thread-608466][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:01:17,807 [ INFO][       Thread-608466][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:01:17,807 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:01:17,808 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:01:18,839 [DEBUG][       Thread-608466][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:01:18,839 [DEBUG][       Thread-608466][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:01:18,888 [DEBUG][       Thread-608466][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:01:18,888 [DEBUG][       Thread-608466][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:01:18,897 [DEBUG][       Thread-608466][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:01:18,906 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:01:18,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-07-01 15:01:18,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') -> 00000000
2025-07-01 15:01:18,924 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:01:18,924 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:01:18,925 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:01:18,932 [DEBUG][       Thread-608466][   transport.py][1871] : EOF in transport thread
2025-07-01 15:01:24,908 [DEBUG][Thread-608468 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:01:28,932 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:01:28,932 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:01:28,932 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:01:28,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-07-01 15:01:29,401 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 1, 10), 11.64, 45.6, 0.0, 31.86, 14.43, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:01:29,401 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:01:10
2025-07-01 15:01:29,495 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:01:29,501 [DEBUG][       Thread-608469][   transport.py][1871] : starting thread (client mode): 0x75aae90
2025-07-01 15:01:29,501 [DEBUG][       Thread-608469][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:01:29,522 [DEBUG][       Thread-608469][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:01:29,522 [ INFO][       Thread-608469][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:01:29,525 [DEBUG][       Thread-608469][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:01:29,525 [DEBUG][       Thread-608469][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:01:29,525 [DEBUG][       Thread-608469][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:01:29,525 [DEBUG][       Thread-608469][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:01:29,525 [DEBUG][       Thread-608469][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:01:29,525 [DEBUG][       Thread-608469][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:01:29,525 [DEBUG][       Thread-608469][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:01:29,525 [DEBUG][       Thread-608469][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:01:29,525 [DEBUG][       Thread-608469][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:01:29,525 [DEBUG][       Thread-608469][   transport.py][1871] : client lang: <none>
2025-07-01 15:01:29,525 [DEBUG][       Thread-608469][   transport.py][1871] : server lang: <none>
2025-07-01 15:01:29,525 [DEBUG][       Thread-608469][   transport.py][1871] : kex follows: False
2025-07-01 15:01:29,525 [DEBUG][       Thread-608469][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:01:29,525 [DEBUG][       Thread-608469][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:01:29,525 [DEBUG][       Thread-608469][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:01:29,525 [DEBUG][       Thread-608469][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:01:29,525 [DEBUG][       Thread-608469][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:01:29,525 [DEBUG][       Thread-608469][   transport.py][1871] : Compression: none
2025-07-01 15:01:29,525 [DEBUG][       Thread-608469][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:01:29,540 [DEBUG][       Thread-608469][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:01:29,540 [DEBUG][       Thread-608469][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:01:29,540 [DEBUG][       Thread-608469][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:01:29,540 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:01:29,540 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:01:29,541 [DEBUG][       Thread-608469][   transport.py][1871] : userauth is OK
2025-07-01 15:01:29,553 [ INFO][       Thread-608469][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:01:29,553 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:01:30,372 [DEBUG][       Thread-608469][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:01:30,372 [DEBUG][       Thread-608469][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:01:30,416 [DEBUG][       Thread-608469][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:01:30,417 [DEBUG][       Thread-608469][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:01:30,419 [DEBUG][       Thread-608469][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:01:30,432 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:01:30,432 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:01:30,434 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:01:30,435 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:01:30,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:01:30,439 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:01:30,439 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:01:30,439 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:01:30,439 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.542301 -999.00  +14.10  51.80     50   +4.00 1 1 2 1 1   887    0 10.67 33.59 ----- 43.3 51.8 23.8 56.6 16.9 -24.4 16.1 -24.3 16.4 -23.3 17.2 -22.1
2025-07-01 15:01:30,439 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:01:30,439 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:01:30,439 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.542301
2025-07-01 15:01:30,439 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:01:30,439 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:01:30,439 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:01:30,439 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:01:30,439 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:01:30,439 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:01:10', tmtdew=11.64, humidity=45.6, cloud=0.0, wind=31.86, temperature=14.43, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:00:54.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:01:30,440 [DEBUG][       Thread-608469][   transport.py][1871] : EOF in transport thread
2025-07-01 15:01:30,514 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:01:30,527 [DEBUG][       Thread-608472][   transport.py][1871] : starting thread (client mode): 0x83c8790
2025-07-01 15:01:30,527 [DEBUG][       Thread-608472][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:01:30,544 [DEBUG][       Thread-608472][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:01:30,544 [ INFO][       Thread-608472][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:01:30,551 [DEBUG][       Thread-608472][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:01:30,551 [DEBUG][       Thread-608472][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:01:30,551 [DEBUG][       Thread-608472][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:01:30,551 [DEBUG][       Thread-608472][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:01:30,551 [DEBUG][       Thread-608472][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:01:30,551 [DEBUG][       Thread-608472][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:01:30,551 [DEBUG][       Thread-608472][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:01:30,551 [DEBUG][       Thread-608472][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:01:30,551 [DEBUG][       Thread-608472][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:01:30,551 [DEBUG][       Thread-608472][   transport.py][1871] : client lang: <none>
2025-07-01 15:01:30,551 [DEBUG][       Thread-608472][   transport.py][1871] : server lang: <none>
2025-07-01 15:01:30,551 [DEBUG][       Thread-608472][   transport.py][1871] : kex follows: False
2025-07-01 15:01:30,551 [DEBUG][       Thread-608472][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:01:30,551 [DEBUG][       Thread-608472][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:01:30,551 [DEBUG][       Thread-608472][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:01:30,551 [DEBUG][       Thread-608472][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:01:30,551 [DEBUG][       Thread-608472][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:01:30,551 [DEBUG][       Thread-608472][   transport.py][1871] : Compression: none
2025-07-01 15:01:30,551 [DEBUG][       Thread-608472][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:01:30,609 [DEBUG][       Thread-608472][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:01:30,609 [DEBUG][       Thread-608472][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:01:30,609 [DEBUG][       Thread-608472][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:01:30,609 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:01:30,610 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:01:30,679 [DEBUG][       Thread-608472][   transport.py][1871] : userauth is OK
2025-07-01 15:01:30,680 [DEBUG][       Thread-608472][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:01:30,680 [DEBUG][       Thread-608472][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:01:30,680 [DEBUG][       Thread-608472][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:01:30,680 [DEBUG][       Thread-608472][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:01:30,694 [ INFO][       Thread-608472][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:01:30,694 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:01:30,694 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:01:31,758 [DEBUG][       Thread-608472][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:01:31,758 [DEBUG][       Thread-608472][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:01:31,807 [DEBUG][       Thread-608472][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:01:31,807 [DEBUG][       Thread-608472][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:01:31,816 [DEBUG][       Thread-608472][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:01:31,824 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:01: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')
2025-07-01 15:01:31,832 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 15:01:31,840 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:01:31,840 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:01:31,840 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:01:31,847 [DEBUG][       Thread-608472][   transport.py][1871] : EOF in transport thread
2025-07-01 15:01:33,940 [DEBUG][Thread-608474 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:01:36,030 [DEBUG][Thread-608475 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:01:41,850 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:01:41,850 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:01:41,850 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:01:41,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-07-01 15:01:42,313 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 1, 10), 11.64, 45.6, 0.0, 31.86, 14.43, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:01:42,313 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:01:10
2025-07-01 15:01:42,397 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:01:42,401 [DEBUG][       Thread-608476][   transport.py][1871] : starting thread (client mode): 0x8157a30
2025-07-01 15:01:42,401 [DEBUG][       Thread-608476][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:01:42,421 [DEBUG][       Thread-608476][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:01:42,421 [ INFO][       Thread-608476][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:01:42,424 [DEBUG][       Thread-608476][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:01:42,424 [DEBUG][       Thread-608476][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:01:42,424 [DEBUG][       Thread-608476][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:01:42,424 [DEBUG][       Thread-608476][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:01:42,424 [DEBUG][       Thread-608476][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:01:42,424 [DEBUG][       Thread-608476][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:01:42,424 [DEBUG][       Thread-608476][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:01:42,424 [DEBUG][       Thread-608476][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:01:42,424 [DEBUG][       Thread-608476][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:01:42,424 [DEBUG][       Thread-608476][   transport.py][1871] : client lang: <none>
2025-07-01 15:01:42,424 [DEBUG][       Thread-608476][   transport.py][1871] : server lang: <none>
2025-07-01 15:01:42,424 [DEBUG][       Thread-608476][   transport.py][1871] : kex follows: False
2025-07-01 15:01:42,424 [DEBUG][       Thread-608476][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:01:42,424 [DEBUG][       Thread-608476][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:01:42,424 [DEBUG][       Thread-608476][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:01:42,424 [DEBUG][       Thread-608476][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:01:42,424 [DEBUG][       Thread-608476][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:01:42,425 [DEBUG][       Thread-608476][   transport.py][1871] : Compression: none
2025-07-01 15:01:42,425 [DEBUG][       Thread-608476][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:01:42,442 [DEBUG][       Thread-608476][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:01:42,443 [DEBUG][       Thread-608476][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:01:42,443 [DEBUG][       Thread-608476][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:01:42,444 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:01:42,444 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:01:42,445 [DEBUG][       Thread-608476][   transport.py][1871] : userauth is OK
2025-07-01 15:01:42,457 [ INFO][       Thread-608476][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:01:42,458 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:01:42,963 [DEBUG][Thread-608478 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:01:43,126 [DEBUG][       Thread-608476][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:01:43,127 [DEBUG][       Thread-608476][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:01:43,169 [DEBUG][       Thread-608476][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:01:43,169 [DEBUG][       Thread-608476][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:01:43,173 [DEBUG][       Thread-608476][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:01:43,184 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:01:43,185 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:01:43,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:01:43,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:01:43,195 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:01:43,197 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:01:43,197 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:01:43,197 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:01:43,198 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.542649 -999.00  +14.20  43.11     50   +4.10 1 1 2 1 1   887    0 11.05 35.48 ----- 33.9 43.1 19.0 58.9 16.9 -24.1 16.1 -23.6 16.5 -22.9 17.2 -22.2
2025-07-01 15:01:43,198 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:01:43,198 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:01:43,198 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.542649
2025-07-01 15:01:43,198 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:01:43,199 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:01:43,199 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:01:43,199 [DEBUG][       Thread-608476][   transport.py][1871] : EOF in transport thread
2025-07-01 15:01:43,199 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:01:43,200 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:01:43,200 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:01:10', tmtdew=11.64, humidity=45.6, cloud=0.0, wind=31.86, temperature=14.43, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:01:24.874', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:01:43,285 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:01:43,295 [DEBUG][       Thread-608480][   transport.py][1871] : starting thread (client mode): 0x8157ca0
2025-07-01 15:01:43,295 [DEBUG][       Thread-608480][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:01:43,312 [DEBUG][       Thread-608480][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:01:43,312 [ INFO][       Thread-608480][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:01:43,324 [DEBUG][       Thread-608480][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:01:43,324 [DEBUG][       Thread-608480][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:01:43,324 [DEBUG][       Thread-608480][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:01:43,324 [DEBUG][       Thread-608480][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:01:43,324 [DEBUG][       Thread-608480][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:01:43,324 [DEBUG][       Thread-608480][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:01:43,324 [DEBUG][       Thread-608480][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:01:43,324 [DEBUG][       Thread-608480][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:01:43,325 [DEBUG][       Thread-608480][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:01:43,325 [DEBUG][       Thread-608480][   transport.py][1871] : client lang: <none>
2025-07-01 15:01:43,325 [DEBUG][       Thread-608480][   transport.py][1871] : server lang: <none>
2025-07-01 15:01:43,325 [DEBUG][       Thread-608480][   transport.py][1871] : kex follows: False
2025-07-01 15:01:43,325 [DEBUG][       Thread-608480][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:01:43,325 [DEBUG][       Thread-608480][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:01:43,325 [DEBUG][       Thread-608480][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:01:43,325 [DEBUG][       Thread-608480][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:01:43,325 [DEBUG][       Thread-608480][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:01:43,325 [DEBUG][       Thread-608480][   transport.py][1871] : Compression: none
2025-07-01 15:01:43,325 [DEBUG][       Thread-608480][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:01:43,382 [DEBUG][       Thread-608480][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:01:43,383 [DEBUG][       Thread-608480][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:01:43,383 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:01:43,384 [DEBUG][       Thread-608480][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:01:43,384 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:01:43,447 [DEBUG][       Thread-608480][   transport.py][1871] : userauth is OK
2025-07-01 15:01:43,447 [DEBUG][       Thread-608480][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:01:43,447 [DEBUG][       Thread-608480][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:01:43,447 [DEBUG][       Thread-608480][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:01:43,447 [DEBUG][       Thread-608480][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:01:43,463 [ INFO][       Thread-608480][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:01:43,463 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:01:43,464 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:01:44,438 [DEBUG][       Thread-608480][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:01:44,438 [DEBUG][       Thread-608480][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:01:44,487 [DEBUG][       Thread-608480][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:01:44,487 [DEBUG][       Thread-608480][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:01:44,495 [DEBUG][       Thread-608480][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:01:44,503 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:01:44,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-07-01 15:01:44,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-07-01 15:01:44,518 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:01:44,518 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:01:44,518 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:01:44,526 [DEBUG][       Thread-608480][   transport.py][1871] : EOF in transport thread
2025-07-01 15:01:51,984 [DEBUG][Thread-608482 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:01:54,529 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:01:54,529 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:01:54,529 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:01:54,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-07-01 15:01:55,008 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 1, 42), 11.61, 45.68, 0.0, 33.63, 14.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:01:55,008 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:01:42
2025-07-01 15:01:55,092 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:01:55,098 [DEBUG][       Thread-608483][   transport.py][1871] : starting thread (client mode): 0x81579a0
2025-07-01 15:01:55,098 [DEBUG][       Thread-608483][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:01:55,120 [DEBUG][       Thread-608483][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:01:55,120 [ INFO][       Thread-608483][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:01:55,123 [DEBUG][       Thread-608483][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:01:55,123 [DEBUG][       Thread-608483][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:01:55,123 [DEBUG][       Thread-608483][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:01:55,123 [DEBUG][       Thread-608483][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:01:55,123 [DEBUG][       Thread-608483][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:01:55,123 [DEBUG][       Thread-608483][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:01:55,123 [DEBUG][       Thread-608483][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:01:55,123 [DEBUG][       Thread-608483][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:01:55,123 [DEBUG][       Thread-608483][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:01:55,123 [DEBUG][       Thread-608483][   transport.py][1871] : client lang: <none>
2025-07-01 15:01:55,123 [DEBUG][       Thread-608483][   transport.py][1871] : server lang: <none>
2025-07-01 15:01:55,123 [DEBUG][       Thread-608483][   transport.py][1871] : kex follows: False
2025-07-01 15:01:55,123 [DEBUG][       Thread-608483][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:01:55,124 [DEBUG][       Thread-608483][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:01:55,124 [DEBUG][       Thread-608483][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:01:55,124 [DEBUG][       Thread-608483][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:01:55,124 [DEBUG][       Thread-608483][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:01:55,124 [DEBUG][       Thread-608483][   transport.py][1871] : Compression: none
2025-07-01 15:01:55,124 [DEBUG][       Thread-608483][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:01:55,141 [DEBUG][       Thread-608483][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:01:55,141 [DEBUG][       Thread-608483][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:01:55,142 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:01:55,142 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:01:55,142 [DEBUG][       Thread-608483][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:01:55,143 [DEBUG][       Thread-608483][   transport.py][1871] : userauth is OK
2025-07-01 15:01:55,168 [ INFO][       Thread-608483][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:01:55,168 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:01:56,015 [DEBUG][       Thread-608483][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:01:56,015 [DEBUG][       Thread-608483][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:01:56,057 [DEBUG][       Thread-608483][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:01:56,057 [DEBUG][       Thread-608483][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:01:56,059 [DEBUG][       Thread-608483][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:01:56,072 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:01:56,072 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:01:56,073 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:01:56,075 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:01:56,078 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:01:56,079 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:01:56,079 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:01:56,079 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:01:56,079 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.542649 -999.00  +14.20  43.11     50   +4.10 1 1 2 1 1   887    0 11.05 35.48 ----- 33.9 43.1 19.0 58.9 16.9 -24.1 16.1 -23.6 16.5 -22.9 17.2 -22.2
2025-07-01 15:01:56,079 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:01:56,079 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:01:56,079 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.542649
2025-07-01 15:01:56,079 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:01:56,080 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:01:56,080 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:01:56,080 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:01:56,080 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:01:56,080 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:01:42', tmtdew=11.61, humidity=45.68, cloud=0.0, wind=33.63, temperature=14.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:01:24.874', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:01:56,080 [DEBUG][       Thread-608483][   transport.py][1871] : EOF in transport thread
2025-07-01 15:01:56,156 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:01:56,167 [DEBUG][       Thread-608486][   transport.py][1871] : starting thread (client mode): 0x75a98a0
2025-07-01 15:01:56,167 [DEBUG][       Thread-608486][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:01:56,183 [DEBUG][       Thread-608486][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:01:56,183 [ INFO][       Thread-608486][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:01:56,191 [DEBUG][       Thread-608486][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:01:56,191 [DEBUG][       Thread-608486][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:01:56,191 [DEBUG][       Thread-608486][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:01:56,191 [DEBUG][       Thread-608486][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:01:56,191 [DEBUG][       Thread-608486][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:01:56,191 [DEBUG][       Thread-608486][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:01:56,191 [DEBUG][       Thread-608486][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:01:56,191 [DEBUG][       Thread-608486][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:01:56,191 [DEBUG][       Thread-608486][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:01:56,191 [DEBUG][       Thread-608486][   transport.py][1871] : client lang: <none>
2025-07-01 15:01:56,191 [DEBUG][       Thread-608486][   transport.py][1871] : server lang: <none>
2025-07-01 15:01:56,191 [DEBUG][       Thread-608486][   transport.py][1871] : kex follows: False
2025-07-01 15:01:56,191 [DEBUG][       Thread-608486][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:01:56,191 [DEBUG][       Thread-608486][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:01:56,191 [DEBUG][       Thread-608486][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:01:56,191 [DEBUG][       Thread-608486][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:01:56,191 [DEBUG][       Thread-608486][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:01:56,192 [DEBUG][       Thread-608486][   transport.py][1871] : Compression: none
2025-07-01 15:01:56,192 [DEBUG][       Thread-608486][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:01:56,250 [DEBUG][       Thread-608486][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:01:56,251 [DEBUG][       Thread-608486][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:01:56,251 [DEBUG][       Thread-608486][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:01:56,252 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:01:56,252 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:01:56,306 [DEBUG][       Thread-608486][   transport.py][1871] : userauth is OK
2025-07-01 15:01:56,306 [DEBUG][       Thread-608486][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:01:56,307 [DEBUG][       Thread-608486][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:01:56,307 [DEBUG][       Thread-608486][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:01:56,307 [DEBUG][       Thread-608486][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:01:56,325 [ INFO][       Thread-608486][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:01:56,326 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:01:56,326 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:01:57,373 [DEBUG][       Thread-608486][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:01:57,373 [DEBUG][       Thread-608486][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:01:57,429 [DEBUG][       Thread-608486][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:01:57,429 [DEBUG][       Thread-608486][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:01:57,438 [DEBUG][       Thread-608486][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:01:57,448 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:01:57,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-07-01 15:01:57,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-07-01 15:01:57,466 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:01:57,466 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:01:57,467 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:01:57,475 [DEBUG][       Thread-608486][   transport.py][1871] : EOF in transport thread
2025-07-01 15:02:01,006 [DEBUG][Thread-608488 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:02:07,476 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:02:07,476 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:02:07,476 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:02:07,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-07-01 15:02:07,972 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 1, 42), 11.61, 45.68, 0.0, 33.63, 14.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:02:07,972 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:01:42
2025-07-01 15:02:08,062 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:02:08,065 [DEBUG][       Thread-608489][   transport.py][1871] : starting thread (client mode): 0x75ab760
2025-07-01 15:02:08,065 [DEBUG][       Thread-608489][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:02:08,087 [DEBUG][       Thread-608489][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:02:08,087 [ INFO][       Thread-608489][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:02:08,089 [DEBUG][       Thread-608489][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:02:08,089 [DEBUG][       Thread-608489][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:02:08,089 [DEBUG][       Thread-608489][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:02:08,089 [DEBUG][       Thread-608489][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:02:08,089 [DEBUG][       Thread-608489][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:02:08,089 [DEBUG][       Thread-608489][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:02:08,089 [DEBUG][       Thread-608489][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:02:08,089 [DEBUG][       Thread-608489][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:02:08,089 [DEBUG][       Thread-608489][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:02:08,089 [DEBUG][       Thread-608489][   transport.py][1871] : client lang: <none>
2025-07-01 15:02:08,089 [DEBUG][       Thread-608489][   transport.py][1871] : server lang: <none>
2025-07-01 15:02:08,089 [DEBUG][       Thread-608489][   transport.py][1871] : kex follows: False
2025-07-01 15:02:08,089 [DEBUG][       Thread-608489][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:02:08,089 [DEBUG][       Thread-608489][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:02:08,089 [DEBUG][       Thread-608489][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:02:08,089 [DEBUG][       Thread-608489][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:02:08,089 [DEBUG][       Thread-608489][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:02:08,089 [DEBUG][       Thread-608489][   transport.py][1871] : Compression: none
2025-07-01 15:02:08,089 [DEBUG][       Thread-608489][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:02:08,100 [DEBUG][       Thread-608489][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:02:08,100 [DEBUG][       Thread-608489][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:02:08,101 [DEBUG][       Thread-608489][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:02:08,101 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:02:08,101 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:02:08,101 [DEBUG][       Thread-608489][   transport.py][1871] : userauth is OK
2025-07-01 15:02:08,125 [ INFO][       Thread-608489][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:02:08,125 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:02:08,782 [DEBUG][       Thread-608489][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:02:08,783 [DEBUG][       Thread-608489][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:02:08,824 [DEBUG][       Thread-608489][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:02:08,824 [DEBUG][       Thread-608489][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:02:08,827 [DEBUG][       Thread-608489][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:02:08,838 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:02:08,838 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:02:08,839 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:02:08,840 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:02:08,842 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:02:08,843 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:02:08,843 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:02:08,843 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:02:08,843 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.542996 -999.00  +14.20  42.17     50   +4.20 1 1 2 1 1   887    0 10.86 34.65 ----- 29.4 42.2 16.4 52.0 16.9 -24.0 16.1 -24.3 16.6 -22.3 17.2 -24.1
2025-07-01 15:02:08,843 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:02:08,843 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:02:08,843 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.542996
2025-07-01 15:02:08,843 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:02:08,843 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:02:08,843 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:02:08,843 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:02:08,843 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:02:08,843 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:01:42', tmtdew=11.61, humidity=45.68, cloud=0.0, wind=33.63, temperature=14.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:01:54.854', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:02:08,844 [DEBUG][       Thread-608489][   transport.py][1871] : EOF in transport thread
2025-07-01 15:02:08,918 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:02:10,037 [DEBUG][Thread-608492 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:02:19,056 [DEBUG][Thread-608493 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:02:28,081 [DEBUG][Thread-608494 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:02:36,060 [DEBUG][Thread-608495 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:02:37,103 [DEBUG][Thread-608496 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:02:46,122 [DEBUG][Thread-608497 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:02:55,139 [DEBUG][Thread-608498 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:03:04,161 [DEBUG][Thread-608499 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:03:13,185 [DEBUG][Thread-608500 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:03:22,204 [DEBUG][Thread-608501 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:03:31,222 [DEBUG][Thread-608502 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:03:36,091 [DEBUG][Thread-608503 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:03:40,244 [DEBUG][Thread-608504 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:03:49,268 [DEBUG][Thread-608505 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:03:58,290 [DEBUG][Thread-608506 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:04:07,309 [DEBUG][Thread-608507 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:04:16,331 [DEBUG][Thread-608508 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:04:17,172 [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-07-01 15:04:25,355 [DEBUG][Thread-608509 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:04:27,179 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:04:27,179 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:04:27,179 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:04:27,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-07-01 15:04:27,693 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 4, 21), 11.7, 45.49, 0.0, 35.11, 14.36, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:04:27,693 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:04:21
2025-07-01 15:04:27,779 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:04:27,785 [DEBUG][       Thread-608510][   transport.py][1871] : starting thread (client mode): 0x75ab760
2025-07-01 15:04:27,786 [DEBUG][       Thread-608510][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:04:27,805 [DEBUG][       Thread-608510][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:04:27,805 [ INFO][       Thread-608510][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:04:27,809 [DEBUG][       Thread-608510][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:04:27,809 [DEBUG][       Thread-608510][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:04:27,809 [DEBUG][       Thread-608510][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:04:27,809 [DEBUG][       Thread-608510][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:04:27,809 [DEBUG][       Thread-608510][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:04:27,809 [DEBUG][       Thread-608510][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:04:27,809 [DEBUG][       Thread-608510][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:04:27,809 [DEBUG][       Thread-608510][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:04:27,809 [DEBUG][       Thread-608510][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:04:27,809 [DEBUG][       Thread-608510][   transport.py][1871] : client lang: <none>
2025-07-01 15:04:27,809 [DEBUG][       Thread-608510][   transport.py][1871] : server lang: <none>
2025-07-01 15:04:27,809 [DEBUG][       Thread-608510][   transport.py][1871] : kex follows: False
2025-07-01 15:04:27,809 [DEBUG][       Thread-608510][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:04:27,809 [DEBUG][       Thread-608510][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:04:27,809 [DEBUG][       Thread-608510][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:04:27,809 [DEBUG][       Thread-608510][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:04:27,809 [DEBUG][       Thread-608510][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:04:27,809 [DEBUG][       Thread-608510][   transport.py][1871] : Compression: none
2025-07-01 15:04:27,810 [DEBUG][       Thread-608510][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:04:27,826 [DEBUG][       Thread-608510][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:04:27,827 [DEBUG][       Thread-608510][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:04:27,827 [DEBUG][       Thread-608510][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:04:27,828 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:04:27,828 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:04:27,829 [DEBUG][       Thread-608510][   transport.py][1871] : userauth is OK
2025-07-01 15:04:27,854 [ INFO][       Thread-608510][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:04:27,854 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:04:28,516 [DEBUG][       Thread-608510][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:04:28,516 [DEBUG][       Thread-608510][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:04:28,556 [DEBUG][       Thread-608510][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:04:28,556 [DEBUG][       Thread-608510][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:04:28,559 [DEBUG][       Thread-608510][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:04:28,570 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:04:28,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:04:28,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:04:28,573 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:04:28,576 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:04:28,577 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:04:28,577 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:04:28,578 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:04:28,578 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.544385 -999.00  +14.50  37.35     50   +4.20 1 1 2 1 1   887    0 10.82 36.45 ----- 35.0 37.4 37.2 41.8 16.9 -24.0 16.2 -24.1 16.6 -23.4 17.4 -22.7
2025-07-01 15:04:28,578 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:04:28,578 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:04:28,578 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.544385
2025-07-01 15:04:28,578 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:04:28,578 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:04:28,578 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:04:28,578 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:04:28,578 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:04:28,578 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:04:21', tmtdew=11.7, humidity=45.49, cloud=0.0, wind=35.11, temperature=14.36, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:03:54.864', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:04:28,579 [DEBUG][       Thread-608510][   transport.py][1871] : EOF in transport thread
2025-07-01 15:04:28,648 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:04:28,660 [DEBUG][       Thread-608513][   transport.py][1871] : starting thread (client mode): 0x827db40
2025-07-01 15:04:28,661 [DEBUG][       Thread-608513][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:04:28,676 [DEBUG][       Thread-608513][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:04:28,676 [ INFO][       Thread-608513][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:04:28,689 [DEBUG][       Thread-608513][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:04:28,689 [DEBUG][       Thread-608513][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:04:28,689 [DEBUG][       Thread-608513][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:04:28,689 [DEBUG][       Thread-608513][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:04:28,689 [DEBUG][       Thread-608513][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:04:28,689 [DEBUG][       Thread-608513][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:04:28,689 [DEBUG][       Thread-608513][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:04:28,689 [DEBUG][       Thread-608513][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:04:28,689 [DEBUG][       Thread-608513][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:04:28,689 [DEBUG][       Thread-608513][   transport.py][1871] : client lang: <none>
2025-07-01 15:04:28,689 [DEBUG][       Thread-608513][   transport.py][1871] : server lang: <none>
2025-07-01 15:04:28,690 [DEBUG][       Thread-608513][   transport.py][1871] : kex follows: False
2025-07-01 15:04:28,690 [DEBUG][       Thread-608513][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:04:28,690 [DEBUG][       Thread-608513][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:04:28,690 [DEBUG][       Thread-608513][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:04:28,690 [DEBUG][       Thread-608513][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:04:28,690 [DEBUG][       Thread-608513][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:04:28,690 [DEBUG][       Thread-608513][   transport.py][1871] : Compression: none
2025-07-01 15:04:28,690 [DEBUG][       Thread-608513][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:04:28,747 [DEBUG][       Thread-608513][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:04:28,747 [DEBUG][       Thread-608513][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:04:28,748 [DEBUG][       Thread-608513][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:04:28,748 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:04:28,749 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:04:28,807 [DEBUG][       Thread-608513][   transport.py][1871] : userauth is OK
2025-07-01 15:04:28,807 [DEBUG][       Thread-608513][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:04:28,807 [DEBUG][       Thread-608513][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:04:28,808 [DEBUG][       Thread-608513][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:04:28,808 [DEBUG][       Thread-608513][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:04:28,827 [ INFO][       Thread-608513][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:04:28,828 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:04:28,828 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:04:29,907 [DEBUG][       Thread-608513][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:04:29,908 [DEBUG][       Thread-608513][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:04:29,956 [DEBUG][       Thread-608513][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:04:29,956 [DEBUG][       Thread-608513][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:04:29,966 [DEBUG][       Thread-608513][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:04:29,975 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:04:29,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-07-01 15:04:29,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-07-01 15:04:29,993 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:04:29,993 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:04:29,993 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:04:30,002 [DEBUG][       Thread-608513][   transport.py][1871] : EOF in transport thread
2025-07-01 15:04:34,378 [DEBUG][Thread-608515 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:04:36,119 [DEBUG][Thread-608516 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:04:40,000 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:04:40,000 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:04:40,000 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:04:40,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-07-01 15:04:40,526 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 4, 21), 11.7, 45.49, 0.0, 35.11, 14.36, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:04:40,526 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:04:21
2025-07-01 15:04:40,616 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:04:40,619 [DEBUG][       Thread-608517][   transport.py][1871] : starting thread (client mode): 0x75a8e20
2025-07-01 15:04:40,619 [DEBUG][       Thread-608517][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:04:40,640 [DEBUG][       Thread-608517][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:04:40,640 [ INFO][       Thread-608517][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:04:40,643 [DEBUG][       Thread-608517][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:04:40,643 [DEBUG][       Thread-608517][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:04:40,643 [DEBUG][       Thread-608517][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:04:40,643 [DEBUG][       Thread-608517][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:04:40,643 [DEBUG][       Thread-608517][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:04:40,643 [DEBUG][       Thread-608517][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:04:40,643 [DEBUG][       Thread-608517][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:04:40,643 [DEBUG][       Thread-608517][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:04:40,643 [DEBUG][       Thread-608517][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:04:40,643 [DEBUG][       Thread-608517][   transport.py][1871] : client lang: <none>
2025-07-01 15:04:40,643 [DEBUG][       Thread-608517][   transport.py][1871] : server lang: <none>
2025-07-01 15:04:40,643 [DEBUG][       Thread-608517][   transport.py][1871] : kex follows: False
2025-07-01 15:04:40,643 [DEBUG][       Thread-608517][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:04:40,643 [DEBUG][       Thread-608517][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:04:40,643 [DEBUG][       Thread-608517][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:04:40,644 [DEBUG][       Thread-608517][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:04:40,644 [DEBUG][       Thread-608517][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:04:40,644 [DEBUG][       Thread-608517][   transport.py][1871] : Compression: none
2025-07-01 15:04:40,644 [DEBUG][       Thread-608517][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:04:40,659 [DEBUG][       Thread-608517][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:04:40,659 [DEBUG][       Thread-608517][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:04:40,659 [DEBUG][       Thread-608517][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:04:40,660 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:04:40,660 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:04:40,660 [DEBUG][       Thread-608517][   transport.py][1871] : userauth is OK
2025-07-01 15:04:40,684 [ INFO][       Thread-608517][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:04:40,684 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:04:41,363 [DEBUG][       Thread-608517][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:04:41,363 [DEBUG][       Thread-608517][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:04:41,404 [DEBUG][       Thread-608517][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:04:41,404 [DEBUG][       Thread-608517][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:04:41,407 [DEBUG][       Thread-608517][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:04:41,415 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:04:41,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:04:41,417 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:04:41,418 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:04:41,420 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:04:41,421 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:04:41,421 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:04:41,421 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:04:41,421 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.544385 -999.00  +14.50  37.35     50   +4.20 1 1 2 1 1   887    0 10.82 36.45 ----- 35.0 37.4 37.2 41.8 16.9 -24.0 16.2 -24.1 16.6 -23.4 17.4 -22.7
2025-07-01 15:04:41,421 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:04:41,421 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:04:41,421 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.544385
2025-07-01 15:04:41,422 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:04:41,422 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:04:41,422 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:04:41,422 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:04:41,422 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:04:41,422 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:04:21', tmtdew=11.7, humidity=45.49, cloud=0.0, wind=35.11, temperature=14.36, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:03:54.864', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:04:41,423 [DEBUG][       Thread-608517][   transport.py][1871] : EOF in transport thread
2025-07-01 15:04:41,495 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:04:41,504 [DEBUG][       Thread-608520][   transport.py][1871] : starting thread (client mode): 0x8393ee0
2025-07-01 15:04:41,504 [DEBUG][       Thread-608520][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:04:41,519 [DEBUG][       Thread-608520][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:04:41,519 [ INFO][       Thread-608520][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:04:41,528 [DEBUG][       Thread-608520][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:04:41,528 [DEBUG][       Thread-608520][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:04:41,528 [DEBUG][       Thread-608520][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:04:41,528 [DEBUG][       Thread-608520][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:04:41,528 [DEBUG][       Thread-608520][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:04:41,528 [DEBUG][       Thread-608520][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:04:41,528 [DEBUG][       Thread-608520][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:04:41,528 [DEBUG][       Thread-608520][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:04:41,528 [DEBUG][       Thread-608520][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:04:41,528 [DEBUG][       Thread-608520][   transport.py][1871] : client lang: <none>
2025-07-01 15:04:41,528 [DEBUG][       Thread-608520][   transport.py][1871] : server lang: <none>
2025-07-01 15:04:41,528 [DEBUG][       Thread-608520][   transport.py][1871] : kex follows: False
2025-07-01 15:04:41,528 [DEBUG][       Thread-608520][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:04:41,529 [DEBUG][       Thread-608520][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:04:41,529 [DEBUG][       Thread-608520][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:04:41,529 [DEBUG][       Thread-608520][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:04:41,529 [DEBUG][       Thread-608520][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:04:41,529 [DEBUG][       Thread-608520][   transport.py][1871] : Compression: none
2025-07-01 15:04:41,529 [DEBUG][       Thread-608520][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:04:41,585 [DEBUG][       Thread-608520][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:04:41,585 [DEBUG][       Thread-608520][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:04:41,585 [DEBUG][       Thread-608520][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:04:41,585 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:04:41,585 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:04:41,643 [DEBUG][       Thread-608520][   transport.py][1871] : userauth is OK
2025-07-01 15:04:41,643 [DEBUG][       Thread-608520][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:04:41,643 [DEBUG][       Thread-608520][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:04:41,643 [DEBUG][       Thread-608520][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:04:41,643 [DEBUG][       Thread-608520][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:04:41,659 [ INFO][       Thread-608520][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:04:41,660 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:04:41,660 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:04:42,669 [DEBUG][       Thread-608520][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:04:42,669 [DEBUG][       Thread-608520][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:04:42,719 [DEBUG][       Thread-608520][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:04:42,719 [DEBUG][       Thread-608520][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:04:42,728 [DEBUG][       Thread-608520][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:04:42,737 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:04:42,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-07-01 15:04:42,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-07-01 15:04:42,753 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:04:42,753 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:04:42,753 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:04:42,762 [DEBUG][       Thread-608520][   transport.py][1871] : EOF in transport thread
2025-07-01 15:04:43,408 [DEBUG][Thread-608522 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:04:52,437 [DEBUG][Thread-608523 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:04:52,763 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:04:52,764 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:04:52,764 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:04:52,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-07-01 15:04:53,279 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 4, 21), 11.7, 45.49, 0.0, 35.11, 14.36, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:04:53,279 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:04:21
2025-07-01 15:04:53,365 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:04:53,371 [DEBUG][       Thread-608524][   transport.py][1871] : starting thread (client mode): 0x75a9330
2025-07-01 15:04:53,371 [DEBUG][       Thread-608524][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:04:53,391 [DEBUG][       Thread-608524][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:04:53,391 [ INFO][       Thread-608524][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:04:53,395 [DEBUG][       Thread-608524][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:04:53,395 [DEBUG][       Thread-608524][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:04:53,395 [DEBUG][       Thread-608524][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:04:53,395 [DEBUG][       Thread-608524][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:04:53,395 [DEBUG][       Thread-608524][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:04:53,395 [DEBUG][       Thread-608524][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:04:53,395 [DEBUG][       Thread-608524][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:04:53,395 [DEBUG][       Thread-608524][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:04:53,395 [DEBUG][       Thread-608524][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:04:53,395 [DEBUG][       Thread-608524][   transport.py][1871] : client lang: <none>
2025-07-01 15:04:53,395 [DEBUG][       Thread-608524][   transport.py][1871] : server lang: <none>
2025-07-01 15:04:53,395 [DEBUG][       Thread-608524][   transport.py][1871] : kex follows: False
2025-07-01 15:04:53,395 [DEBUG][       Thread-608524][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:04:53,395 [DEBUG][       Thread-608524][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:04:53,395 [DEBUG][       Thread-608524][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:04:53,395 [DEBUG][       Thread-608524][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:04:53,395 [DEBUG][       Thread-608524][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:04:53,395 [DEBUG][       Thread-608524][   transport.py][1871] : Compression: none
2025-07-01 15:04:53,395 [DEBUG][       Thread-608524][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:04:53,411 [DEBUG][       Thread-608524][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:04:53,411 [DEBUG][       Thread-608524][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:04:53,411 [DEBUG][       Thread-608524][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:04:53,411 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:04:53,411 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:04:53,412 [DEBUG][       Thread-608524][   transport.py][1871] : userauth is OK
2025-07-01 15:04:53,437 [ INFO][       Thread-608524][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:04:53,437 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:04:54,116 [DEBUG][       Thread-608524][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:04:54,116 [DEBUG][       Thread-608524][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:04:54,160 [DEBUG][       Thread-608524][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:04:54,160 [DEBUG][       Thread-608524][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:04:54,163 [DEBUG][       Thread-608524][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:04:54,174 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:04:54,174 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:04:54,176 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:04:54,176 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:04:54,180 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:04:54,181 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:04:54,181 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:04:54,181 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:04:54,181 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.544732 -999.00  +14.60  35.83     50   +4.30 1 1 2 1 1   887    0 10.96 39.35 ----- 38.5 35.8 28.0 46.3 17.0 -23.9 16.2 -24.6 16.6 -24.3 17.4 -23.4
2025-07-01 15:04:54,181 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:04:54,181 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:04:54,181 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.544732
2025-07-01 15:04:54,181 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:04:54,181 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:04:54,181 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:04:54,181 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:04:54,181 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:04:54,181 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:04:21', tmtdew=11.7, humidity=45.49, cloud=0.0, wind=35.11, temperature=14.36, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:04:24.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:04:54,182 [DEBUG][       Thread-608524][   transport.py][1871] : EOF in transport thread
2025-07-01 15:04:54,254 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:04:54,265 [DEBUG][       Thread-608527][   transport.py][1871] : starting thread (client mode): 0x83c8790
2025-07-01 15:04:54,265 [DEBUG][       Thread-608527][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:04:54,280 [DEBUG][       Thread-608527][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:04:54,280 [ INFO][       Thread-608527][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:04:54,288 [DEBUG][       Thread-608527][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:04:54,288 [DEBUG][       Thread-608527][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:04:54,288 [DEBUG][       Thread-608527][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:04:54,288 [DEBUG][       Thread-608527][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:04:54,288 [DEBUG][       Thread-608527][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:04:54,288 [DEBUG][       Thread-608527][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:04:54,288 [DEBUG][       Thread-608527][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:04:54,288 [DEBUG][       Thread-608527][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:04:54,288 [DEBUG][       Thread-608527][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:04:54,288 [DEBUG][       Thread-608527][   transport.py][1871] : client lang: <none>
2025-07-01 15:04:54,288 [DEBUG][       Thread-608527][   transport.py][1871] : server lang: <none>
2025-07-01 15:04:54,288 [DEBUG][       Thread-608527][   transport.py][1871] : kex follows: False
2025-07-01 15:04:54,288 [DEBUG][       Thread-608527][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:04:54,288 [DEBUG][       Thread-608527][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:04:54,288 [DEBUG][       Thread-608527][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:04:54,288 [DEBUG][       Thread-608527][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:04:54,288 [DEBUG][       Thread-608527][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:04:54,288 [DEBUG][       Thread-608527][   transport.py][1871] : Compression: none
2025-07-01 15:04:54,288 [DEBUG][       Thread-608527][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:04:54,344 [DEBUG][       Thread-608527][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:04:54,345 [DEBUG][       Thread-608527][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:04:54,345 [DEBUG][       Thread-608527][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:04:54,345 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:04:54,345 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:04:54,402 [DEBUG][       Thread-608527][   transport.py][1871] : userauth is OK
2025-07-01 15:04:54,402 [DEBUG][       Thread-608527][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:04:54,402 [DEBUG][       Thread-608527][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:04:54,402 [DEBUG][       Thread-608527][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:04:54,402 [DEBUG][       Thread-608527][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:04:54,418 [ INFO][       Thread-608527][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:04:54,418 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:04:54,418 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:04:55,421 [DEBUG][       Thread-608527][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:04:55,421 [DEBUG][       Thread-608527][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:04:55,471 [DEBUG][       Thread-608527][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:04:55,471 [DEBUG][       Thread-608527][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:04:55,480 [DEBUG][       Thread-608527][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:04:55,488 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:04:55,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-07-01 15:04:55,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-07-01 15:04:55,504 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:04:55,504 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:04:55,504 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:04:55,512 [DEBUG][       Thread-608527][   transport.py][1871] : EOF in transport thread
2025-07-01 15:05:01,458 [DEBUG][Thread-608529 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:05:05,515 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:05:05,515 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:05:05,515 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:05:05,518 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 15:05:06,026 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 4, 53), 11.71, 45.46, 0.0, 32.27, 14.39, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:05:06,026 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:04:53
2025-07-01 15:05:06,111 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:05:06,115 [DEBUG][       Thread-608530][   transport.py][1871] : starting thread (client mode): 0x8155c00
2025-07-01 15:05:06,115 [DEBUG][       Thread-608530][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:05:06,136 [DEBUG][       Thread-608530][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:05:06,136 [ INFO][       Thread-608530][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:05:06,138 [DEBUG][       Thread-608530][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:05:06,138 [DEBUG][       Thread-608530][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:05:06,138 [DEBUG][       Thread-608530][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:05:06,138 [DEBUG][       Thread-608530][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:05:06,138 [DEBUG][       Thread-608530][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:05:06,138 [DEBUG][       Thread-608530][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:05:06,138 [DEBUG][       Thread-608530][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:05:06,138 [DEBUG][       Thread-608530][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:05:06,138 [DEBUG][       Thread-608530][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:05:06,138 [DEBUG][       Thread-608530][   transport.py][1871] : client lang: <none>
2025-07-01 15:05:06,138 [DEBUG][       Thread-608530][   transport.py][1871] : server lang: <none>
2025-07-01 15:05:06,138 [DEBUG][       Thread-608530][   transport.py][1871] : kex follows: False
2025-07-01 15:05:06,138 [DEBUG][       Thread-608530][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:05:06,138 [DEBUG][       Thread-608530][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:05:06,138 [DEBUG][       Thread-608530][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:05:06,138 [DEBUG][       Thread-608530][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:05:06,139 [DEBUG][       Thread-608530][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:05:06,139 [DEBUG][       Thread-608530][   transport.py][1871] : Compression: none
2025-07-01 15:05:06,139 [DEBUG][       Thread-608530][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:05:06,151 [DEBUG][       Thread-608530][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:05:06,152 [DEBUG][       Thread-608530][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:05:06,152 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:05:06,152 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:05:06,153 [DEBUG][       Thread-608530][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:05:06,153 [DEBUG][       Thread-608530][   transport.py][1871] : userauth is OK
2025-07-01 15:05:06,178 [ INFO][       Thread-608530][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:05:06,178 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:05:06,862 [DEBUG][       Thread-608530][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:05:06,862 [DEBUG][       Thread-608530][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:05:06,905 [DEBUG][       Thread-608530][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:05:06,905 [DEBUG][       Thread-608530][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:05:06,908 [DEBUG][       Thread-608530][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:05:06,921 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:05:06,921 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:05:06,923 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:05:06,925 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:05:06,930 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:05:06,932 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:05:06,932 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:05:06,932 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:05:06,933 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.544732 -999.00  +14.60  35.83     50   +4.30 1 1 2 1 1   887    0 10.96 39.35 ----- 38.5 35.8 28.0 46.3 17.0 -23.9 16.2 -24.6 16.6 -24.3 17.4 -23.4
2025-07-01 15:05:06,933 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:05:06,933 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:05:06,933 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.544732
2025-07-01 15:05:06,933 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:05:06,934 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:05:06,934 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:05:06,934 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:05:06,934 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:05:06,934 [DEBUG][       Thread-608530][   transport.py][1871] : EOF in transport thread
2025-07-01 15:05:06,934 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:04:53', tmtdew=11.71, humidity=45.46, cloud=0.0, wind=32.27, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:04:24.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:05:07,018 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:05:07,028 [DEBUG][       Thread-608533][   transport.py][1871] : starting thread (client mode): 0x83939d0
2025-07-01 15:05:07,028 [DEBUG][       Thread-608533][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:05:07,045 [DEBUG][       Thread-608533][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:05:07,045 [ INFO][       Thread-608533][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:05:07,053 [DEBUG][       Thread-608533][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:05:07,053 [DEBUG][       Thread-608533][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:05:07,054 [DEBUG][       Thread-608533][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:05:07,054 [DEBUG][       Thread-608533][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:05:07,054 [DEBUG][       Thread-608533][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:05:07,054 [DEBUG][       Thread-608533][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:05:07,054 [DEBUG][       Thread-608533][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:05:07,054 [DEBUG][       Thread-608533][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:05:07,054 [DEBUG][       Thread-608533][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:05:07,054 [DEBUG][       Thread-608533][   transport.py][1871] : client lang: <none>
2025-07-01 15:05:07,054 [DEBUG][       Thread-608533][   transport.py][1871] : server lang: <none>
2025-07-01 15:05:07,054 [DEBUG][       Thread-608533][   transport.py][1871] : kex follows: False
2025-07-01 15:05:07,054 [DEBUG][       Thread-608533][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:05:07,054 [DEBUG][       Thread-608533][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:05:07,054 [DEBUG][       Thread-608533][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:05:07,054 [DEBUG][       Thread-608533][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:05:07,054 [DEBUG][       Thread-608533][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:05:07,054 [DEBUG][       Thread-608533][   transport.py][1871] : Compression: none
2025-07-01 15:05:07,054 [DEBUG][       Thread-608533][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:05:07,110 [DEBUG][       Thread-608533][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:05:07,110 [DEBUG][       Thread-608533][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:05:07,111 [DEBUG][       Thread-608533][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:05:07,111 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:05:07,112 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:05:07,168 [DEBUG][       Thread-608533][   transport.py][1871] : userauth is OK
2025-07-01 15:05:07,168 [DEBUG][       Thread-608533][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:05:07,168 [DEBUG][       Thread-608533][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:05:07,168 [DEBUG][       Thread-608533][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:05:07,168 [DEBUG][       Thread-608533][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:05:07,192 [ INFO][       Thread-608533][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:05:07,192 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:05:07,193 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:05:08,242 [DEBUG][       Thread-608533][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:05:08,242 [DEBUG][       Thread-608533][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:05:08,294 [DEBUG][       Thread-608533][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:05:08,294 [DEBUG][       Thread-608533][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:05:08,304 [DEBUG][       Thread-608533][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:05:08,313 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:05:08,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-07-01 15:05:08,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-07-01 15:05:08,331 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:05:08,331 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:05:08,332 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:05:08,345 [DEBUG][       Thread-608533][   transport.py][1871] : EOF in transport thread
2025-07-01 15:05:10,481 [DEBUG][Thread-608535 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:05:18,340 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:05:18,340 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:05:18,340 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:05:18,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-07-01 15:05:18,876 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 4, 53), 11.71, 45.46, 0.0, 32.27, 14.39, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:05:18,876 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:04:53
2025-07-01 15:05:18,967 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:05:18,971 [DEBUG][       Thread-608536][   transport.py][1871] : starting thread (client mode): 0x8154460
2025-07-01 15:05:18,971 [DEBUG][       Thread-608536][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:05:18,992 [DEBUG][       Thread-608536][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:05:18,992 [ INFO][       Thread-608536][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:05:18,995 [DEBUG][       Thread-608536][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:05:18,995 [DEBUG][       Thread-608536][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:05:18,995 [DEBUG][       Thread-608536][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:05:18,995 [DEBUG][       Thread-608536][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:05:18,995 [DEBUG][       Thread-608536][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:05:18,995 [DEBUG][       Thread-608536][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:05:18,995 [DEBUG][       Thread-608536][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:05:18,995 [DEBUG][       Thread-608536][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:05:18,995 [DEBUG][       Thread-608536][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:05:18,995 [DEBUG][       Thread-608536][   transport.py][1871] : client lang: <none>
2025-07-01 15:05:18,995 [DEBUG][       Thread-608536][   transport.py][1871] : server lang: <none>
2025-07-01 15:05:18,995 [DEBUG][       Thread-608536][   transport.py][1871] : kex follows: False
2025-07-01 15:05:18,995 [DEBUG][       Thread-608536][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:05:18,995 [DEBUG][       Thread-608536][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:05:18,995 [DEBUG][       Thread-608536][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:05:18,995 [DEBUG][       Thread-608536][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:05:18,995 [DEBUG][       Thread-608536][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:05:18,995 [DEBUG][       Thread-608536][   transport.py][1871] : Compression: none
2025-07-01 15:05:18,995 [DEBUG][       Thread-608536][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:05:19,009 [DEBUG][       Thread-608536][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:05:19,009 [DEBUG][       Thread-608536][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:05:19,010 [DEBUG][       Thread-608536][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:05:19,010 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:05:19,010 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:05:19,010 [DEBUG][       Thread-608536][   transport.py][1871] : userauth is OK
2025-07-01 15:05:19,023 [ INFO][       Thread-608536][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:05:19,023 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:05:19,512 [DEBUG][Thread-608538 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:05:19,675 [DEBUG][       Thread-608536][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:05:19,675 [DEBUG][       Thread-608536][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:05:19,716 [DEBUG][       Thread-608536][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:05:19,716 [DEBUG][       Thread-608536][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:05:19,719 [DEBUG][       Thread-608536][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:05:19,730 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:05:19,731 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:05:19,732 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:05:19,733 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:05:19,736 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:05:19,737 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:05:19,737 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:05:19,737 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:05:19,737 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.544732 -999.00  +14.60  35.83     50   +4.30 1 1 2 1 1   887    0 10.96 39.35 ----- 38.5 35.8 28.0 46.3 17.0 -23.9 16.2 -24.6 16.6 -24.3 17.4 -23.4
2025-07-01 15:05:19,737 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:05:19,737 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:05:19,737 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.544732
2025-07-01 15:05:19,737 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:05:19,737 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:05:19,738 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:05:19,738 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:05:19,738 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:05:19,738 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:04:53', tmtdew=11.71, humidity=45.46, cloud=0.0, wind=32.27, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:04:24.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:05:19,738 [DEBUG][       Thread-608536][   transport.py][1871] : EOF in transport thread
2025-07-01 15:05:19,810 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:05:19,821 [DEBUG][       Thread-608540][   transport.py][1871] : starting thread (client mode): 0x83c8880
2025-07-01 15:05:19,821 [DEBUG][       Thread-608540][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:05:19,836 [DEBUG][       Thread-608540][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:05:19,836 [ INFO][       Thread-608540][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:05:19,844 [DEBUG][       Thread-608540][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:05:19,844 [DEBUG][       Thread-608540][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:05:19,844 [DEBUG][       Thread-608540][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:05:19,844 [DEBUG][       Thread-608540][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:05:19,844 [DEBUG][       Thread-608540][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:05:19,844 [DEBUG][       Thread-608540][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:05:19,844 [DEBUG][       Thread-608540][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:05:19,844 [DEBUG][       Thread-608540][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:05:19,844 [DEBUG][       Thread-608540][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:05:19,844 [DEBUG][       Thread-608540][   transport.py][1871] : client lang: <none>
2025-07-01 15:05:19,844 [DEBUG][       Thread-608540][   transport.py][1871] : server lang: <none>
2025-07-01 15:05:19,844 [DEBUG][       Thread-608540][   transport.py][1871] : kex follows: False
2025-07-01 15:05:19,844 [DEBUG][       Thread-608540][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:05:19,844 [DEBUG][       Thread-608540][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:05:19,844 [DEBUG][       Thread-608540][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:05:19,844 [DEBUG][       Thread-608540][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:05:19,844 [DEBUG][       Thread-608540][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:05:19,844 [DEBUG][       Thread-608540][   transport.py][1871] : Compression: none
2025-07-01 15:05:19,844 [DEBUG][       Thread-608540][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:05:19,904 [DEBUG][       Thread-608540][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:05:19,904 [DEBUG][       Thread-608540][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:05:19,904 [DEBUG][       Thread-608540][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:05:19,905 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:05:19,905 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:05:19,962 [DEBUG][       Thread-608540][   transport.py][1871] : userauth is OK
2025-07-01 15:05:19,962 [DEBUG][       Thread-608540][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:05:19,962 [DEBUG][       Thread-608540][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:05:19,962 [DEBUG][       Thread-608540][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:05:19,962 [DEBUG][       Thread-608540][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:05:19,976 [ INFO][       Thread-608540][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:05:19,976 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:05:19,977 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:05:20,996 [DEBUG][       Thread-608540][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:05:20,996 [DEBUG][       Thread-608540][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:05:21,047 [DEBUG][       Thread-608540][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:05:21,047 [DEBUG][       Thread-608540][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:05:21,056 [DEBUG][       Thread-608540][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:05:21,064 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:05:21,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-07-01 15:05:21,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-07-01 15:05:21,079 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:05:21,079 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:05:21,080 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:05:21,087 [DEBUG][       Thread-608540][   transport.py][1871] : EOF in transport thread
2025-07-01 15:05:28,532 [DEBUG][Thread-608542 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:05:31,090 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:05:31,090 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:05:31,090 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:05:31,093 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 15:05:31,592 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 5, 25), 11.74, 45.13, 0.0, 34.86, 14.46, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:05:31,592 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:05:25
2025-07-01 15:05:31,677 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:05:31,681 [DEBUG][       Thread-608543][   transport.py][1871] : starting thread (client mode): 0x75a9720
2025-07-01 15:05:31,681 [DEBUG][       Thread-608543][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:05:31,700 [DEBUG][       Thread-608543][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:05:31,700 [ INFO][       Thread-608543][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:05:31,703 [DEBUG][       Thread-608543][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:05:31,703 [DEBUG][       Thread-608543][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:05:31,704 [DEBUG][       Thread-608543][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:05:31,704 [DEBUG][       Thread-608543][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:05:31,704 [DEBUG][       Thread-608543][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:05:31,704 [DEBUG][       Thread-608543][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:05:31,704 [DEBUG][       Thread-608543][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:05:31,704 [DEBUG][       Thread-608543][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:05:31,704 [DEBUG][       Thread-608543][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:05:31,704 [DEBUG][       Thread-608543][   transport.py][1871] : client lang: <none>
2025-07-01 15:05:31,704 [DEBUG][       Thread-608543][   transport.py][1871] : server lang: <none>
2025-07-01 15:05:31,704 [DEBUG][       Thread-608543][   transport.py][1871] : kex follows: False
2025-07-01 15:05:31,704 [DEBUG][       Thread-608543][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:05:31,704 [DEBUG][       Thread-608543][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:05:31,704 [DEBUG][       Thread-608543][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:05:31,704 [DEBUG][       Thread-608543][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:05:31,704 [DEBUG][       Thread-608543][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:05:31,704 [DEBUG][       Thread-608543][   transport.py][1871] : Compression: none
2025-07-01 15:05:31,704 [DEBUG][       Thread-608543][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:05:31,720 [DEBUG][       Thread-608543][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:05:31,720 [DEBUG][       Thread-608543][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:05:31,721 [DEBUG][       Thread-608543][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:05:31,721 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:05:31,721 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:05:31,722 [DEBUG][       Thread-608543][   transport.py][1871] : userauth is OK
2025-07-01 15:05:31,747 [ INFO][       Thread-608543][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:05:31,747 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:05:32,394 [DEBUG][       Thread-608543][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:05:32,394 [DEBUG][       Thread-608543][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:05:32,437 [DEBUG][       Thread-608543][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:05:32,437 [DEBUG][       Thread-608543][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:05:32,440 [DEBUG][       Thread-608543][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:05:32,452 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:05:32,452 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:05:32,454 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:05:32,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:05:32,461 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:05:32,463 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:05:32,463 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:05:32,464 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:05:32,464 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.545079 -999.00  +14.40  43.86     49   +4.00 1 1 2 1 1   887    0 11.32 43.51 ----- 40.8 43.9 16.6 53.1 17.0 -23.8 16.2 -25.0 16.6 -24.1 17.4 -22.6
2025-07-01 15:05:32,464 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:05:32,464 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:05:32,464 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.545079
2025-07-01 15:05:32,464 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:05:32,465 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:05:32,465 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:05:32,465 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:05:32,465 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:05:32,465 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:05:25', tmtdew=11.74, humidity=45.13, cloud=0.0, wind=34.86, temperature=14.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:04:54.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:05:32,466 [DEBUG][       Thread-608543][   transport.py][1871] : EOF in transport thread
2025-07-01 15:05:32,549 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:05:32,561 [DEBUG][       Thread-608546][   transport.py][1871] : starting thread (client mode): 0x8393b80
2025-07-01 15:05:32,561 [DEBUG][       Thread-608546][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:05:32,577 [DEBUG][       Thread-608546][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:05:32,577 [ INFO][       Thread-608546][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:05:32,585 [DEBUG][       Thread-608546][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:05:32,585 [DEBUG][       Thread-608546][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:05:32,585 [DEBUG][       Thread-608546][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:05:32,585 [DEBUG][       Thread-608546][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:05:32,585 [DEBUG][       Thread-608546][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:05:32,585 [DEBUG][       Thread-608546][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:05:32,585 [DEBUG][       Thread-608546][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:05:32,585 [DEBUG][       Thread-608546][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:05:32,585 [DEBUG][       Thread-608546][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:05:32,585 [DEBUG][       Thread-608546][   transport.py][1871] : client lang: <none>
2025-07-01 15:05:32,585 [DEBUG][       Thread-608546][   transport.py][1871] : server lang: <none>
2025-07-01 15:05:32,585 [DEBUG][       Thread-608546][   transport.py][1871] : kex follows: False
2025-07-01 15:05:32,585 [DEBUG][       Thread-608546][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:05:32,586 [DEBUG][       Thread-608546][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:05:32,586 [DEBUG][       Thread-608546][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:05:32,586 [DEBUG][       Thread-608546][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:05:32,586 [DEBUG][       Thread-608546][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:05:32,586 [DEBUG][       Thread-608546][   transport.py][1871] : Compression: none
2025-07-01 15:05:32,586 [DEBUG][       Thread-608546][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:05:32,643 [DEBUG][       Thread-608546][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:05:32,643 [DEBUG][       Thread-608546][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:05:32,644 [DEBUG][       Thread-608546][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:05:32,644 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:05:32,645 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:05:32,702 [DEBUG][       Thread-608546][   transport.py][1871] : userauth is OK
2025-07-01 15:05:32,702 [DEBUG][       Thread-608546][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:05:32,702 [DEBUG][       Thread-608546][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:05:32,702 [DEBUG][       Thread-608546][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:05:32,702 [DEBUG][       Thread-608546][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:05:32,722 [ INFO][       Thread-608546][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:05:32,722 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:05:32,723 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:05:33,725 [DEBUG][       Thread-608546][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:05:33,726 [DEBUG][       Thread-608546][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:05:33,775 [DEBUG][       Thread-608546][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:05:33,775 [DEBUG][       Thread-608546][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:05:33,787 [DEBUG][       Thread-608546][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:05:33,800 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:05:33,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')
2025-07-01 15:05:33,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-07-01 15:05:33,817 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:05:33,817 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:05:33,817 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:05:33,825 [DEBUG][       Thread-608546][   transport.py][1871] : EOF in transport thread
2025-07-01 15:05:36,148 [DEBUG][Thread-608548 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:05:37,553 [DEBUG][Thread-608549 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:05:43,824 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:05:43,824 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:05:43,824 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:05:43,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-07-01 15:05:44,323 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 5, 25), 11.74, 45.13, 0.0, 34.86, 14.46, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:05:44,323 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:05:25
2025-07-01 15:05:44,408 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:05:44,412 [DEBUG][       Thread-608550][   transport.py][1871] : starting thread (client mode): 0x75aa3b0
2025-07-01 15:05:44,412 [DEBUG][       Thread-608550][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:05:44,433 [DEBUG][       Thread-608550][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:05:44,433 [ INFO][       Thread-608550][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:05:44,436 [DEBUG][       Thread-608550][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:05:44,436 [DEBUG][       Thread-608550][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:05:44,437 [DEBUG][       Thread-608550][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:05:44,437 [DEBUG][       Thread-608550][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:05:44,437 [DEBUG][       Thread-608550][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:05:44,437 [DEBUG][       Thread-608550][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:05:44,437 [DEBUG][       Thread-608550][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:05:44,437 [DEBUG][       Thread-608550][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:05:44,437 [DEBUG][       Thread-608550][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:05:44,437 [DEBUG][       Thread-608550][   transport.py][1871] : client lang: <none>
2025-07-01 15:05:44,437 [DEBUG][       Thread-608550][   transport.py][1871] : server lang: <none>
2025-07-01 15:05:44,437 [DEBUG][       Thread-608550][   transport.py][1871] : kex follows: False
2025-07-01 15:05:44,437 [DEBUG][       Thread-608550][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:05:44,437 [DEBUG][       Thread-608550][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:05:44,437 [DEBUG][       Thread-608550][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:05:44,437 [DEBUG][       Thread-608550][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:05:44,437 [DEBUG][       Thread-608550][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:05:44,437 [DEBUG][       Thread-608550][   transport.py][1871] : Compression: none
2025-07-01 15:05:44,437 [DEBUG][       Thread-608550][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:05:44,453 [DEBUG][       Thread-608550][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:05:44,454 [DEBUG][       Thread-608550][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:05:44,454 [DEBUG][       Thread-608550][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:05:44,454 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:05:44,455 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:05:44,455 [DEBUG][       Thread-608550][   transport.py][1871] : userauth is OK
2025-07-01 15:05:44,468 [ INFO][       Thread-608550][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:05:44,469 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:05:45,096 [DEBUG][       Thread-608550][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:05:45,096 [DEBUG][       Thread-608550][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:05:45,137 [DEBUG][       Thread-608550][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:05:45,137 [DEBUG][       Thread-608550][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:05:45,140 [DEBUG][       Thread-608550][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:05:45,152 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:05:45,152 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:05:45,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:05:45,157 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:05:45,163 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:05:45,165 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:05:45,165 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:05:45,166 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:05:45,166 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.545079 -999.00  +14.40  43.86     49   +4.00 1 1 2 1 1   887    0 11.32 43.51 ----- 40.8 43.9 16.6 53.1 17.0 -23.8 16.2 -25.0 16.6 -24.1 17.4 -22.6
2025-07-01 15:05:45,166 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:05:45,166 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:05:45,166 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.545079
2025-07-01 15:05:45,167 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:05:45,167 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:05:45,167 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:05:45,167 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:05:45,167 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:05:45,168 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:05:25', tmtdew=11.74, humidity=45.13, cloud=0.0, wind=34.86, temperature=14.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:04:54.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:05:45,169 [DEBUG][       Thread-608550][   transport.py][1871] : EOF in transport thread
2025-07-01 15:05:45,251 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:05:45,261 [DEBUG][       Thread-608553][   transport.py][1871] : starting thread (client mode): 0x75ab8e0
2025-07-01 15:05:45,261 [DEBUG][       Thread-608553][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:05:45,276 [DEBUG][       Thread-608553][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:05:45,276 [ INFO][       Thread-608553][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:05:45,284 [DEBUG][       Thread-608553][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:05:45,284 [DEBUG][       Thread-608553][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:05:45,284 [DEBUG][       Thread-608553][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:05:45,284 [DEBUG][       Thread-608553][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:05:45,284 [DEBUG][       Thread-608553][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:05:45,284 [DEBUG][       Thread-608553][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:05:45,284 [DEBUG][       Thread-608553][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:05:45,284 [DEBUG][       Thread-608553][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:05:45,284 [DEBUG][       Thread-608553][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:05:45,284 [DEBUG][       Thread-608553][   transport.py][1871] : client lang: <none>
2025-07-01 15:05:45,284 [DEBUG][       Thread-608553][   transport.py][1871] : server lang: <none>
2025-07-01 15:05:45,284 [DEBUG][       Thread-608553][   transport.py][1871] : kex follows: False
2025-07-01 15:05:45,284 [DEBUG][       Thread-608553][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:05:45,284 [DEBUG][       Thread-608553][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:05:45,284 [DEBUG][       Thread-608553][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:05:45,284 [DEBUG][       Thread-608553][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:05:45,284 [DEBUG][       Thread-608553][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:05:45,284 [DEBUG][       Thread-608553][   transport.py][1871] : Compression: none
2025-07-01 15:05:45,284 [DEBUG][       Thread-608553][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:05:45,341 [DEBUG][       Thread-608553][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:05:45,342 [DEBUG][       Thread-608553][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:05:45,342 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:05:45,343 [DEBUG][       Thread-608553][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:05:45,344 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:05:45,397 [DEBUG][       Thread-608553][   transport.py][1871] : userauth is OK
2025-07-01 15:05:45,397 [DEBUG][       Thread-608553][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:05:45,397 [DEBUG][       Thread-608553][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:05:45,397 [DEBUG][       Thread-608553][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:05:45,398 [DEBUG][       Thread-608553][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:05:45,419 [ INFO][       Thread-608553][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:05:45,420 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:05:45,420 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:05:46,449 [DEBUG][       Thread-608553][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:05:46,449 [DEBUG][       Thread-608553][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:05:46,500 [DEBUG][       Thread-608553][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:05:46,500 [DEBUG][       Thread-608553][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:05:46,509 [DEBUG][       Thread-608553][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:05:46,518 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:05:46,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-07-01 15:05:46,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-07-01 15:05:46,537 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:05:46,537 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:05:46,538 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:05:46,546 [DEBUG][       Thread-608553][   transport.py][1871] : EOF in transport thread
2025-07-01 15:05:46,587 [DEBUG][Thread-608555 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:05:55,608 [DEBUG][Thread-608556 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:05:56,548 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:05:56,549 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:05:56,549 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:05:56,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-07-01 15:05:57,084 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 5, 25), 11.74, 45.13, 0.0, 34.86, 14.46, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:05:57,084 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:05:25
2025-07-01 15:05:57,176 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:05:57,180 [DEBUG][       Thread-608557][   transport.py][1871] : starting thread (client mode): 0x75a99f0
2025-07-01 15:05:57,180 [DEBUG][       Thread-608557][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:05:57,201 [DEBUG][       Thread-608557][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:05:57,201 [ INFO][       Thread-608557][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:05:57,203 [DEBUG][       Thread-608557][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:05:57,203 [DEBUG][       Thread-608557][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:05:57,203 [DEBUG][       Thread-608557][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:05:57,203 [DEBUG][       Thread-608557][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:05:57,203 [DEBUG][       Thread-608557][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:05:57,203 [DEBUG][       Thread-608557][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:05:57,203 [DEBUG][       Thread-608557][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:05:57,203 [DEBUG][       Thread-608557][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:05:57,203 [DEBUG][       Thread-608557][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:05:57,203 [DEBUG][       Thread-608557][   transport.py][1871] : client lang: <none>
2025-07-01 15:05:57,203 [DEBUG][       Thread-608557][   transport.py][1871] : server lang: <none>
2025-07-01 15:05:57,203 [DEBUG][       Thread-608557][   transport.py][1871] : kex follows: False
2025-07-01 15:05:57,203 [DEBUG][       Thread-608557][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:05:57,203 [DEBUG][       Thread-608557][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:05:57,203 [DEBUG][       Thread-608557][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:05:57,203 [DEBUG][       Thread-608557][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:05:57,203 [DEBUG][       Thread-608557][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:05:57,203 [DEBUG][       Thread-608557][   transport.py][1871] : Compression: none
2025-07-01 15:05:57,203 [DEBUG][       Thread-608557][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:05:57,210 [DEBUG][       Thread-608557][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:05:57,210 [DEBUG][       Thread-608557][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:05:57,210 [DEBUG][       Thread-608557][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:05:57,210 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:05:57,210 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:05:57,211 [DEBUG][       Thread-608557][   transport.py][1871] : userauth is OK
2025-07-01 15:05:57,236 [ INFO][       Thread-608557][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:05:57,236 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:05:57,836 [DEBUG][       Thread-608557][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:05:57,836 [DEBUG][       Thread-608557][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:05:57,876 [DEBUG][       Thread-608557][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:05:57,876 [DEBUG][       Thread-608557][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:05:57,878 [DEBUG][       Thread-608557][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:05:57,891 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:05:57,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:05:57,892 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:05:57,893 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:05:57,896 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:05:57,897 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:05:57,897 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:05:57,897 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:05:57,897 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.545426 -999.00  +14.40  34.09     50   +4.10 1 1 2 1 1   887    0 11.36 42.48 ----- 34.1 34.1 30.2 47.1 17.0 -23.9 16.2 -24.2 16.6 -23.1 17.3 -23.6
2025-07-01 15:05:57,897 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:05:57,897 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:05:57,898 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.545426
2025-07-01 15:05:57,898 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:05:57,898 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:05:57,898 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:05:57,898 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:05:57,898 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:05:57,898 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:05:25', tmtdew=11.74, humidity=45.13, cloud=0.0, wind=34.86, temperature=14.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:05:24.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:05:57,898 [DEBUG][       Thread-608557][   transport.py][1871] : EOF in transport thread
2025-07-01 15:05:57,976 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:05:57,987 [DEBUG][       Thread-608560][   transport.py][1871] : starting thread (client mode): 0x8157280
2025-07-01 15:05:57,988 [DEBUG][       Thread-608560][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:05:58,003 [DEBUG][       Thread-608560][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:05:58,003 [ INFO][       Thread-608560][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:05:58,010 [DEBUG][       Thread-608560][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:05:58,010 [DEBUG][       Thread-608560][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:05:58,010 [DEBUG][       Thread-608560][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:05:58,010 [DEBUG][       Thread-608560][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:05:58,010 [DEBUG][       Thread-608560][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:05:58,010 [DEBUG][       Thread-608560][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:05:58,010 [DEBUG][       Thread-608560][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:05:58,010 [DEBUG][       Thread-608560][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:05:58,010 [DEBUG][       Thread-608560][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:05:58,010 [DEBUG][       Thread-608560][   transport.py][1871] : client lang: <none>
2025-07-01 15:05:58,010 [DEBUG][       Thread-608560][   transport.py][1871] : server lang: <none>
2025-07-01 15:05:58,010 [DEBUG][       Thread-608560][   transport.py][1871] : kex follows: False
2025-07-01 15:05:58,010 [DEBUG][       Thread-608560][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:05:58,010 [DEBUG][       Thread-608560][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:05:58,010 [DEBUG][       Thread-608560][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:05:58,010 [DEBUG][       Thread-608560][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:05:58,010 [DEBUG][       Thread-608560][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:05:58,010 [DEBUG][       Thread-608560][   transport.py][1871] : Compression: none
2025-07-01 15:05:58,010 [DEBUG][       Thread-608560][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:05:58,067 [DEBUG][       Thread-608560][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:05:58,067 [DEBUG][       Thread-608560][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:05:58,067 [DEBUG][       Thread-608560][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:05:58,068 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:05:58,068 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:05:58,124 [DEBUG][       Thread-608560][   transport.py][1871] : userauth is OK
2025-07-01 15:05:58,124 [DEBUG][       Thread-608560][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:05:58,124 [DEBUG][       Thread-608560][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:05:58,125 [DEBUG][       Thread-608560][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:05:58,125 [DEBUG][       Thread-608560][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:05:58,138 [ INFO][       Thread-608560][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:05:58,138 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:05:58,138 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:05:59,161 [DEBUG][       Thread-608560][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:05:59,161 [DEBUG][       Thread-608560][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:05:59,211 [DEBUG][       Thread-608560][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:05:59,211 [DEBUG][       Thread-608560][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:05:59,220 [DEBUG][       Thread-608560][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:05:59,228 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:05:59,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-07-01 15:05:59,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-07-01 15:05:59,244 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:05:59,244 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:05:59,244 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:05:59,252 [DEBUG][       Thread-608560][   transport.py][1871] : EOF in transport thread
2025-07-01 15:06:04,627 [DEBUG][Thread-608562 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:06:09,254 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:06:09,254 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:06:09,254 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:06:09,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-07-01 15:06:09,749 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 5, 56), 11.7, 45.23, 0.0, 38.8, 14.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:06:09,750 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:05:56
2025-07-01 15:06:09,837 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:06:09,841 [DEBUG][       Thread-608563][   transport.py][1871] : starting thread (client mode): 0x75a9510
2025-07-01 15:06:09,841 [DEBUG][       Thread-608563][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:06:09,863 [DEBUG][       Thread-608563][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:06:09,863 [ INFO][       Thread-608563][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:06:09,867 [DEBUG][       Thread-608563][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:06:09,868 [DEBUG][       Thread-608563][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:06:09,868 [DEBUG][       Thread-608563][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:06:09,868 [DEBUG][       Thread-608563][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:06:09,868 [DEBUG][       Thread-608563][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:06:09,868 [DEBUG][       Thread-608563][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:06:09,868 [DEBUG][       Thread-608563][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:06:09,868 [DEBUG][       Thread-608563][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:06:09,868 [DEBUG][       Thread-608563][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:06:09,868 [DEBUG][       Thread-608563][   transport.py][1871] : client lang: <none>
2025-07-01 15:06:09,868 [DEBUG][       Thread-608563][   transport.py][1871] : server lang: <none>
2025-07-01 15:06:09,868 [DEBUG][       Thread-608563][   transport.py][1871] : kex follows: False
2025-07-01 15:06:09,868 [DEBUG][       Thread-608563][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:06:09,868 [DEBUG][       Thread-608563][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:06:09,868 [DEBUG][       Thread-608563][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:06:09,868 [DEBUG][       Thread-608563][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:06:09,868 [DEBUG][       Thread-608563][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:06:09,868 [DEBUG][       Thread-608563][   transport.py][1871] : Compression: none
2025-07-01 15:06:09,868 [DEBUG][       Thread-608563][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:06:09,883 [DEBUG][       Thread-608563][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:06:09,884 [DEBUG][       Thread-608563][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:06:09,884 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:06:09,884 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:06:09,885 [DEBUG][       Thread-608563][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:06:09,886 [DEBUG][       Thread-608563][   transport.py][1871] : userauth is OK
2025-07-01 15:06:09,910 [ INFO][       Thread-608563][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:06:09,910 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:06:10,551 [DEBUG][       Thread-608563][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:06:10,552 [DEBUG][       Thread-608563][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:06:10,593 [DEBUG][       Thread-608563][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:06:10,593 [DEBUG][       Thread-608563][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:06:10,596 [DEBUG][       Thread-608563][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:06:10,608 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:06:10,608 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:06:10,611 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:06:10,613 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:06:10,619 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:06:10,621 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:06:10,621 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:06:10,622 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:06:10,622 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.545426 -999.00  +14.40  34.09     50   +4.10 1 1 2 1 1   887    0 11.36 42.48 ----- 34.1 34.1 30.2 47.1 17.0 -23.9 16.2 -24.2 16.6 -23.1 17.3 -23.6
2025-07-01 15:06:10,622 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:06:10,622 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:06:10,622 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.545426
2025-07-01 15:06:10,623 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:06:10,623 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:06:10,623 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:06:10,624 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:06:10,624 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:06:10,624 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:05:56', tmtdew=11.7, humidity=45.23, cloud=0.0, wind=38.8, temperature=14.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:05:24.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:06:10,624 [DEBUG][       Thread-608563][   transport.py][1871] : EOF in transport thread
2025-07-01 15:06:10,697 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:06:10,706 [DEBUG][       Thread-608566][   transport.py][1871] : starting thread (client mode): 0x83938e0
2025-07-01 15:06:10,706 [DEBUG][       Thread-608566][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:06:10,721 [DEBUG][       Thread-608566][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:06:10,721 [ INFO][       Thread-608566][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:06:10,728 [DEBUG][       Thread-608566][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:06:10,728 [DEBUG][       Thread-608566][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:06:10,728 [DEBUG][       Thread-608566][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:06:10,728 [DEBUG][       Thread-608566][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:06:10,728 [DEBUG][       Thread-608566][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:06:10,729 [DEBUG][       Thread-608566][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:06:10,729 [DEBUG][       Thread-608566][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:06:10,729 [DEBUG][       Thread-608566][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:06:10,729 [DEBUG][       Thread-608566][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:06:10,729 [DEBUG][       Thread-608566][   transport.py][1871] : client lang: <none>
2025-07-01 15:06:10,729 [DEBUG][       Thread-608566][   transport.py][1871] : server lang: <none>
2025-07-01 15:06:10,729 [DEBUG][       Thread-608566][   transport.py][1871] : kex follows: False
2025-07-01 15:06:10,729 [DEBUG][       Thread-608566][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:06:10,729 [DEBUG][       Thread-608566][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:06:10,729 [DEBUG][       Thread-608566][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:06:10,729 [DEBUG][       Thread-608566][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:06:10,729 [DEBUG][       Thread-608566][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:06:10,729 [DEBUG][       Thread-608566][   transport.py][1871] : Compression: none
2025-07-01 15:06:10,729 [DEBUG][       Thread-608566][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:06:10,785 [DEBUG][       Thread-608566][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:06:10,786 [DEBUG][       Thread-608566][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:06:10,786 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:06:10,787 [DEBUG][       Thread-608566][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:06:10,788 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:06:10,842 [DEBUG][       Thread-608566][   transport.py][1871] : userauth is OK
2025-07-01 15:06:10,842 [DEBUG][       Thread-608566][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:06:10,842 [DEBUG][       Thread-608566][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:06:10,842 [DEBUG][       Thread-608566][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:06:10,842 [DEBUG][       Thread-608566][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:06:10,867 [ INFO][       Thread-608566][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:06:10,867 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:06:10,868 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:06:11,904 [DEBUG][       Thread-608566][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:06:11,904 [DEBUG][       Thread-608566][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:06:11,956 [DEBUG][       Thread-608566][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:06:11,956 [DEBUG][       Thread-608566][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:06:11,965 [DEBUG][       Thread-608566][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:06:11,973 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:06:11,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')
2025-07-01 15:06:11,981 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 15:06:11,990 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:06:11,990 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:06:11,991 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:06:11,998 [DEBUG][       Thread-608566][   transport.py][1871] : EOF in transport thread
2025-07-01 15:06:13,650 [DEBUG][Thread-608568 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:06:22,001 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:06:22,001 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:06:22,001 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:06: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-07-01 15:06:22,503 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 5, 56), 11.7, 45.23, 0.0, 38.8, 14.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:06:22,503 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:05:56
2025-07-01 15:06:22,589 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:06:22,593 [DEBUG][       Thread-608569][   transport.py][1871] : starting thread (client mode): 0x75a98a0
2025-07-01 15:06:22,593 [DEBUG][       Thread-608569][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:06:22,614 [DEBUG][       Thread-608569][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:06:22,614 [ INFO][       Thread-608569][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:06:22,618 [DEBUG][       Thread-608569][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:06:22,618 [DEBUG][       Thread-608569][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:06:22,618 [DEBUG][       Thread-608569][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:06:22,618 [DEBUG][       Thread-608569][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:06:22,618 [DEBUG][       Thread-608569][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:06:22,618 [DEBUG][       Thread-608569][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:06:22,618 [DEBUG][       Thread-608569][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:06:22,618 [DEBUG][       Thread-608569][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:06:22,618 [DEBUG][       Thread-608569][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:06:22,618 [DEBUG][       Thread-608569][   transport.py][1871] : client lang: <none>
2025-07-01 15:06:22,618 [DEBUG][       Thread-608569][   transport.py][1871] : server lang: <none>
2025-07-01 15:06:22,618 [DEBUG][       Thread-608569][   transport.py][1871] : kex follows: False
2025-07-01 15:06:22,618 [DEBUG][       Thread-608569][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:06:22,618 [DEBUG][       Thread-608569][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:06:22,618 [DEBUG][       Thread-608569][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:06:22,618 [DEBUG][       Thread-608569][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:06:22,618 [DEBUG][       Thread-608569][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:06:22,618 [DEBUG][       Thread-608569][   transport.py][1871] : Compression: none
2025-07-01 15:06:22,619 [DEBUG][       Thread-608569][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:06:22,635 [DEBUG][       Thread-608569][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:06:22,635 [DEBUG][       Thread-608569][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:06:22,636 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:06:22,636 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:06:22,637 [DEBUG][       Thread-608569][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:06:22,638 [DEBUG][       Thread-608569][   transport.py][1871] : userauth is OK
2025-07-01 15:06:22,666 [ INFO][       Thread-608569][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:06:22,666 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:06:22,692 [DEBUG][Thread-608571 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:06:23,336 [DEBUG][       Thread-608569][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:06:23,337 [DEBUG][       Thread-608569][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:06:23,381 [DEBUG][       Thread-608569][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:06:23,381 [DEBUG][       Thread-608569][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:06:23,384 [DEBUG][       Thread-608569][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:06:23,397 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:06:23,397 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:06:23,399 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:06:23,401 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:06:23,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:06:23,409 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:06:23,409 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:06:23,410 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:06:23,410 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.545426 -999.00  +14.40  34.09     50   +4.10 1 1 2 1 1   887    0 11.36 42.48 ----- 34.1 34.1 30.2 47.1 17.0 -23.9 16.2 -24.2 16.6 -23.1 17.3 -23.6
2025-07-01 15:06:23,410 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:06:23,410 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:06:23,410 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.545426
2025-07-01 15:06:23,410 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:06:23,411 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:06:23,411 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:06:23,411 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:06:23,411 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:06:23,411 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:05:56', tmtdew=11.7, humidity=45.23, cloud=0.0, wind=38.8, temperature=14.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:05:24.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:06:23,411 [DEBUG][       Thread-608569][   transport.py][1871] : EOF in transport thread
2025-07-01 15:06:23,496 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:06:23,508 [DEBUG][       Thread-608573][   transport.py][1871] : starting thread (client mode): 0x83c8460
2025-07-01 15:06:23,508 [DEBUG][       Thread-608573][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:06:23,523 [DEBUG][       Thread-608573][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:06:23,524 [ INFO][       Thread-608573][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:06:23,531 [DEBUG][       Thread-608573][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:06:23,531 [DEBUG][       Thread-608573][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:06:23,531 [DEBUG][       Thread-608573][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:06:23,531 [DEBUG][       Thread-608573][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:06:23,531 [DEBUG][       Thread-608573][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:06:23,531 [DEBUG][       Thread-608573][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:06:23,531 [DEBUG][       Thread-608573][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:06:23,531 [DEBUG][       Thread-608573][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:06:23,531 [DEBUG][       Thread-608573][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:06:23,531 [DEBUG][       Thread-608573][   transport.py][1871] : client lang: <none>
2025-07-01 15:06:23,531 [DEBUG][       Thread-608573][   transport.py][1871] : server lang: <none>
2025-07-01 15:06:23,531 [DEBUG][       Thread-608573][   transport.py][1871] : kex follows: False
2025-07-01 15:06:23,532 [DEBUG][       Thread-608573][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:06:23,532 [DEBUG][       Thread-608573][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:06:23,532 [DEBUG][       Thread-608573][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:06:23,532 [DEBUG][       Thread-608573][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:06:23,532 [DEBUG][       Thread-608573][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:06:23,532 [DEBUG][       Thread-608573][   transport.py][1871] : Compression: none
2025-07-01 15:06:23,532 [DEBUG][       Thread-608573][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:06:23,589 [DEBUG][       Thread-608573][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:06:23,589 [DEBUG][       Thread-608573][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:06:23,590 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:06:23,591 [DEBUG][       Thread-608573][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:06:23,591 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:06:23,644 [DEBUG][       Thread-608573][   transport.py][1871] : userauth is OK
2025-07-01 15:06:23,644 [DEBUG][       Thread-608573][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:06:23,644 [DEBUG][       Thread-608573][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:06:23,644 [DEBUG][       Thread-608573][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:06:23,644 [DEBUG][       Thread-608573][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:06:23,658 [ INFO][       Thread-608573][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:06:23,658 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:06:23,658 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:06:24,711 [DEBUG][       Thread-608573][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:06:24,711 [DEBUG][       Thread-608573][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:06:24,760 [DEBUG][       Thread-608573][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:06:24,760 [DEBUG][       Thread-608573][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:06:24,771 [DEBUG][       Thread-608573][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:06:24,783 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:06:24,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')
2025-07-01 15:06:24,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-07-01 15:06:24,805 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:06:24,805 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:06:24,806 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:06:24,814 [DEBUG][       Thread-608573][   transport.py][1871] : EOF in transport thread
2025-07-01 15:06:31,713 [DEBUG][Thread-608575 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:06:34,816 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:06:34,817 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:06:34,817 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:06:34,820 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 15:06:35,302 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 6, 28), 11.63, 45.71, 0.0, 42.34, 14.51, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:06:35,302 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:06:28
2025-07-01 15:06:35,388 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:06:35,392 [DEBUG][       Thread-608576][   transport.py][1871] : starting thread (client mode): 0x81567a0
2025-07-01 15:06:35,392 [DEBUG][       Thread-608576][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:06:35,412 [DEBUG][       Thread-608576][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:06:35,412 [ INFO][       Thread-608576][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:06:35,415 [DEBUG][       Thread-608576][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:06:35,415 [DEBUG][       Thread-608576][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:06:35,415 [DEBUG][       Thread-608576][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:06:35,415 [DEBUG][       Thread-608576][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:06:35,415 [DEBUG][       Thread-608576][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:06:35,415 [DEBUG][       Thread-608576][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:06:35,415 [DEBUG][       Thread-608576][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:06:35,415 [DEBUG][       Thread-608576][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:06:35,415 [DEBUG][       Thread-608576][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:06:35,415 [DEBUG][       Thread-608576][   transport.py][1871] : client lang: <none>
2025-07-01 15:06:35,415 [DEBUG][       Thread-608576][   transport.py][1871] : server lang: <none>
2025-07-01 15:06:35,415 [DEBUG][       Thread-608576][   transport.py][1871] : kex follows: False
2025-07-01 15:06:35,415 [DEBUG][       Thread-608576][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:06:35,416 [DEBUG][       Thread-608576][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:06:35,416 [DEBUG][       Thread-608576][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:06:35,416 [DEBUG][       Thread-608576][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:06:35,416 [DEBUG][       Thread-608576][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:06:35,416 [DEBUG][       Thread-608576][   transport.py][1871] : Compression: none
2025-07-01 15:06:35,416 [DEBUG][       Thread-608576][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:06:35,431 [DEBUG][       Thread-608576][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:06:35,431 [DEBUG][       Thread-608576][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:06:35,431 [DEBUG][       Thread-608576][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:06:35,431 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:06:35,431 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:06:35,432 [DEBUG][       Thread-608576][   transport.py][1871] : userauth is OK
2025-07-01 15:06:35,444 [ INFO][       Thread-608576][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:06:35,445 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:06:36,093 [DEBUG][       Thread-608576][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:06:36,093 [DEBUG][       Thread-608576][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:06:36,137 [DEBUG][       Thread-608576][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:06:36,137 [DEBUG][       Thread-608576][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:06:36,139 [DEBUG][       Thread-608576][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:06:36,151 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:06:36,151 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:06:36,153 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:06:36,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:06:36,158 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:06:36,159 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:06:36,159 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:06:36,159 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:06:36,159 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.546121 -999.00  +14.40  38.32     50   +4.20 1 1 2 1 1   887    0 11.26 42.16 ----- 32.9 38.3 20.9 46.9 17.0 -24.5 16.2 -24.7 16.8 -23.7 17.4 -22.1
2025-07-01 15:06:36,159 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:06:36,159 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:06:36,159 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.546121
2025-07-01 15:06:36,159 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:06:36,160 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:06:36,160 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:06:36,160 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:06:36,160 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:06:36,160 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:06:28', tmtdew=11.63, humidity=45.71, cloud=0.0, wind=42.34, temperature=14.51, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:06:24.854', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:06:36,160 [DEBUG][       Thread-608576][   transport.py][1871] : EOF in transport thread
2025-07-01 15:06:36,175 [DEBUG][Thread-608579 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:06:36,234 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:06:36,243 [DEBUG][       Thread-608580][   transport.py][1871] : starting thread (client mode): 0x83938e0
2025-07-01 15:06:36,243 [DEBUG][       Thread-608580][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:06:36,259 [DEBUG][       Thread-608580][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:06:36,259 [ INFO][       Thread-608580][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:06:36,267 [DEBUG][       Thread-608580][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:06:36,267 [DEBUG][       Thread-608580][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:06:36,267 [DEBUG][       Thread-608580][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:06:36,267 [DEBUG][       Thread-608580][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:06:36,267 [DEBUG][       Thread-608580][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:06:36,267 [DEBUG][       Thread-608580][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:06:36,267 [DEBUG][       Thread-608580][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:06:36,267 [DEBUG][       Thread-608580][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:06:36,267 [DEBUG][       Thread-608580][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:06:36,267 [DEBUG][       Thread-608580][   transport.py][1871] : client lang: <none>
2025-07-01 15:06:36,267 [DEBUG][       Thread-608580][   transport.py][1871] : server lang: <none>
2025-07-01 15:06:36,267 [DEBUG][       Thread-608580][   transport.py][1871] : kex follows: False
2025-07-01 15:06:36,267 [DEBUG][       Thread-608580][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:06:36,267 [DEBUG][       Thread-608580][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:06:36,267 [DEBUG][       Thread-608580][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:06:36,267 [DEBUG][       Thread-608580][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:06:36,267 [DEBUG][       Thread-608580][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:06:36,267 [DEBUG][       Thread-608580][   transport.py][1871] : Compression: none
2025-07-01 15:06:36,267 [DEBUG][       Thread-608580][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:06:36,322 [DEBUG][       Thread-608580][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:06:36,322 [DEBUG][       Thread-608580][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:06:36,323 [DEBUG][       Thread-608580][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:06:36,323 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:06:36,323 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:06:36,379 [DEBUG][       Thread-608580][   transport.py][1871] : userauth is OK
2025-07-01 15:06:36,380 [DEBUG][       Thread-608580][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:06:36,380 [DEBUG][       Thread-608580][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:06:36,380 [DEBUG][       Thread-608580][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:06:36,380 [DEBUG][       Thread-608580][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:06:36,394 [ INFO][       Thread-608580][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:06:36,394 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:06:36,394 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:06:37,431 [DEBUG][       Thread-608580][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:06:37,432 [DEBUG][       Thread-608580][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:06:37,479 [DEBUG][       Thread-608580][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:06:37,479 [DEBUG][       Thread-608580][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:06:37,488 [DEBUG][       Thread-608580][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:06:37,496 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:06:37,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-07-01 15:06:37,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-07-01 15:06:37,512 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:06:37,512 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:06:37,512 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:06:37,520 [DEBUG][       Thread-608580][   transport.py][1871] : EOF in transport thread
2025-07-01 15:06:40,733 [DEBUG][Thread-608582 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:06:47,516 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:06:47,516 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:06:47,517 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:06:47,520 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 15:06:48,014 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 6, 28), 11.63, 45.71, 0.0, 42.34, 14.51, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:06:48,015 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:06:28
2025-07-01 15:06:48,101 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:06:48,106 [DEBUG][       Thread-608583][   transport.py][1871] : starting thread (client mode): 0x75abee0
2025-07-01 15:06:48,106 [DEBUG][       Thread-608583][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:06:48,130 [DEBUG][       Thread-608583][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:06:48,130 [ INFO][       Thread-608583][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:06:48,134 [DEBUG][       Thread-608583][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:06:48,134 [DEBUG][       Thread-608583][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:06:48,134 [DEBUG][       Thread-608583][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:06:48,134 [DEBUG][       Thread-608583][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:06:48,134 [DEBUG][       Thread-608583][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:06:48,134 [DEBUG][       Thread-608583][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:06:48,134 [DEBUG][       Thread-608583][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:06:48,134 [DEBUG][       Thread-608583][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:06:48,134 [DEBUG][       Thread-608583][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:06:48,134 [DEBUG][       Thread-608583][   transport.py][1871] : client lang: <none>
2025-07-01 15:06:48,134 [DEBUG][       Thread-608583][   transport.py][1871] : server lang: <none>
2025-07-01 15:06:48,134 [DEBUG][       Thread-608583][   transport.py][1871] : kex follows: False
2025-07-01 15:06:48,134 [DEBUG][       Thread-608583][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:06:48,134 [DEBUG][       Thread-608583][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:06:48,134 [DEBUG][       Thread-608583][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:06:48,135 [DEBUG][       Thread-608583][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:06:48,135 [DEBUG][       Thread-608583][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:06:48,135 [DEBUG][       Thread-608583][   transport.py][1871] : Compression: none
2025-07-01 15:06:48,135 [DEBUG][       Thread-608583][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:06:48,151 [DEBUG][       Thread-608583][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:06:48,152 [DEBUG][       Thread-608583][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:06:48,152 [DEBUG][       Thread-608583][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:06:48,153 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:06:48,153 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:06:48,154 [DEBUG][       Thread-608583][   transport.py][1871] : userauth is OK
2025-07-01 15:06:48,179 [ INFO][       Thread-608583][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:06:48,180 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:06:48,844 [DEBUG][       Thread-608583][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:06:48,844 [DEBUG][       Thread-608583][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:06:48,885 [DEBUG][       Thread-608583][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:06:48,885 [DEBUG][       Thread-608583][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:06:48,889 [DEBUG][       Thread-608583][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:06:48,900 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:06:48,901 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:06:48,903 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:06:48,905 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:06:48,911 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:06:48,913 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:06:48,913 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:06:48,914 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:06:48,914 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.546121 -999.00  +14.40  38.32     50   +4.20 1 1 2 1 1   887    0 11.26 42.16 ----- 32.9 38.3 20.9 46.9 17.0 -24.5 16.2 -24.7 16.8 -23.7 17.4 -22.1
2025-07-01 15:06:48,914 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:06:48,914 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:06:48,915 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.546121
2025-07-01 15:06:48,915 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:06:48,915 [DEBUG][       Thread-608583][   transport.py][1871] : EOF in transport thread
2025-07-01 15:06:48,916 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:06:48,917 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:06:48,917 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:06:48,917 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:06:48,917 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:06:28', tmtdew=11.63, humidity=45.71, cloud=0.0, wind=42.34, temperature=14.51, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:06:24.854', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:06:49,001 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:06:49,011 [DEBUG][       Thread-608586][   transport.py][1871] : starting thread (client mode): 0x8393910
2025-07-01 15:06:49,012 [DEBUG][       Thread-608586][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:06:49,026 [DEBUG][       Thread-608586][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:06:49,027 [ INFO][       Thread-608586][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:06:49,034 [DEBUG][       Thread-608586][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:06:49,034 [DEBUG][       Thread-608586][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:06:49,034 [DEBUG][       Thread-608586][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:06:49,034 [DEBUG][       Thread-608586][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:06:49,034 [DEBUG][       Thread-608586][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:06:49,034 [DEBUG][       Thread-608586][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:06:49,034 [DEBUG][       Thread-608586][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:06:49,034 [DEBUG][       Thread-608586][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:06:49,034 [DEBUG][       Thread-608586][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:06:49,034 [DEBUG][       Thread-608586][   transport.py][1871] : client lang: <none>
2025-07-01 15:06:49,034 [DEBUG][       Thread-608586][   transport.py][1871] : server lang: <none>
2025-07-01 15:06:49,035 [DEBUG][       Thread-608586][   transport.py][1871] : kex follows: False
2025-07-01 15:06:49,035 [DEBUG][       Thread-608586][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:06:49,035 [DEBUG][       Thread-608586][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:06:49,035 [DEBUG][       Thread-608586][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:06:49,035 [DEBUG][       Thread-608586][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:06:49,035 [DEBUG][       Thread-608586][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:06:49,035 [DEBUG][       Thread-608586][   transport.py][1871] : Compression: none
2025-07-01 15:06:49,035 [DEBUG][       Thread-608586][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:06:49,092 [DEBUG][       Thread-608586][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:06:49,092 [DEBUG][       Thread-608586][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:06:49,093 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:06:49,093 [DEBUG][       Thread-608586][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:06:49,094 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:06:49,148 [DEBUG][       Thread-608586][   transport.py][1871] : userauth is OK
2025-07-01 15:06:49,149 [DEBUG][       Thread-608586][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:06:49,149 [DEBUG][       Thread-608586][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:06:49,149 [DEBUG][       Thread-608586][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:06:49,149 [DEBUG][       Thread-608586][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:06:49,167 [ INFO][       Thread-608586][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:06:49,167 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:06:49,168 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:06:49,776 [DEBUG][Thread-608588 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:06:50,185 [DEBUG][       Thread-608586][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:06:50,185 [DEBUG][       Thread-608586][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:06:50,236 [DEBUG][       Thread-608586][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:06:50,236 [DEBUG][       Thread-608586][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:06:50,245 [DEBUG][       Thread-608586][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:06:50,254 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:06:50,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-07-01 15:06:50,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-07-01 15:06:50,273 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:06:50,273 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:06:50,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:06:50,282 [DEBUG][       Thread-608586][   transport.py][1871] : EOF in transport thread
2025-07-01 15:06:58,800 [DEBUG][Thread-608589 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:07:00,284 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:07:00,285 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:07:00,285 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:07:00,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-07-01 15:07:00,767 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 6, 28), 11.63, 45.71, 0.0, 42.34, 14.51, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:07:00,767 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:06:28
2025-07-01 15:07:00,852 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:07:00,857 [DEBUG][       Thread-608590][   transport.py][1871] : starting thread (client mode): 0x75aad40
2025-07-01 15:07:00,857 [DEBUG][       Thread-608590][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:07:00,877 [DEBUG][       Thread-608590][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:07:00,877 [ INFO][       Thread-608590][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:07:00,880 [DEBUG][       Thread-608590][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:07:00,880 [DEBUG][       Thread-608590][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:07:00,881 [DEBUG][       Thread-608590][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:07:00,881 [DEBUG][       Thread-608590][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:07:00,881 [DEBUG][       Thread-608590][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:07:00,881 [DEBUG][       Thread-608590][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:07:00,881 [DEBUG][       Thread-608590][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:07:00,881 [DEBUG][       Thread-608590][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:07:00,881 [DEBUG][       Thread-608590][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:07:00,881 [DEBUG][       Thread-608590][   transport.py][1871] : client lang: <none>
2025-07-01 15:07:00,881 [DEBUG][       Thread-608590][   transport.py][1871] : server lang: <none>
2025-07-01 15:07:00,881 [DEBUG][       Thread-608590][   transport.py][1871] : kex follows: False
2025-07-01 15:07:00,881 [DEBUG][       Thread-608590][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:07:00,881 [DEBUG][       Thread-608590][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:07:00,881 [DEBUG][       Thread-608590][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:07:00,881 [DEBUG][       Thread-608590][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:07:00,881 [DEBUG][       Thread-608590][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:07:00,881 [DEBUG][       Thread-608590][   transport.py][1871] : Compression: none
2025-07-01 15:07:00,881 [DEBUG][       Thread-608590][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:07:00,894 [DEBUG][       Thread-608590][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:07:00,895 [DEBUG][       Thread-608590][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:07:00,895 [DEBUG][       Thread-608590][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:07:00,895 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:07:00,896 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:07:00,897 [DEBUG][       Thread-608590][   transport.py][1871] : userauth is OK
2025-07-01 15:07:00,922 [ INFO][       Thread-608590][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:07:00,922 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:07:01,547 [DEBUG][       Thread-608590][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:07:01,548 [DEBUG][       Thread-608590][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:07:01,588 [DEBUG][       Thread-608590][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:07:01,588 [DEBUG][       Thread-608590][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:07:01,591 [DEBUG][       Thread-608590][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:07:01,603 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:07:01,603 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:07:01,604 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:07:01,605 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:07:01,608 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:07:01,609 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:07:01,609 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:07:01,609 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:07:01,609 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.546121 -999.00  +14.40  38.32     50   +4.20 1 1 2 1 1   887    0 11.26 42.16 ----- 32.9 38.3 20.9 46.9 17.0 -24.5 16.2 -24.7 16.8 -23.7 17.4 -22.1
2025-07-01 15:07:01,609 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:07:01,609 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:07:01,609 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.546121
2025-07-01 15:07:01,609 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:07:01,609 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:07:01,609 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:07:01,609 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:07:01,609 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:07:01,609 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:06:28', tmtdew=11.63, humidity=45.71, cloud=0.0, wind=42.34, temperature=14.51, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:06:24.854', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:07:01,610 [DEBUG][       Thread-608590][   transport.py][1871] : EOF in transport thread
2025-07-01 15:07:01,684 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:07:01,693 [DEBUG][       Thread-608593][   transport.py][1871] : starting thread (client mode): 0x827d5d0
2025-07-01 15:07:01,693 [DEBUG][       Thread-608593][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:07:01,709 [DEBUG][       Thread-608593][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:07:01,709 [ INFO][       Thread-608593][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:07:01,716 [DEBUG][       Thread-608593][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:07:01,716 [DEBUG][       Thread-608593][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:07:01,716 [DEBUG][       Thread-608593][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:07:01,716 [DEBUG][       Thread-608593][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:07:01,716 [DEBUG][       Thread-608593][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:07:01,716 [DEBUG][       Thread-608593][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:07:01,716 [DEBUG][       Thread-608593][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:07:01,716 [DEBUG][       Thread-608593][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:07:01,716 [DEBUG][       Thread-608593][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:07:01,716 [DEBUG][       Thread-608593][   transport.py][1871] : client lang: <none>
2025-07-01 15:07:01,716 [DEBUG][       Thread-608593][   transport.py][1871] : server lang: <none>
2025-07-01 15:07:01,716 [DEBUG][       Thread-608593][   transport.py][1871] : kex follows: False
2025-07-01 15:07:01,716 [DEBUG][       Thread-608593][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:07:01,716 [DEBUG][       Thread-608593][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:07:01,716 [DEBUG][       Thread-608593][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:07:01,716 [DEBUG][       Thread-608593][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:07:01,716 [DEBUG][       Thread-608593][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:07:01,716 [DEBUG][       Thread-608593][   transport.py][1871] : Compression: none
2025-07-01 15:07:01,716 [DEBUG][       Thread-608593][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:07:01,781 [DEBUG][       Thread-608593][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:07:01,781 [DEBUG][       Thread-608593][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:07:01,781 [DEBUG][       Thread-608593][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:07:01,781 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:07:01,781 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:07:01,839 [DEBUG][       Thread-608593][   transport.py][1871] : userauth is OK
2025-07-01 15:07:01,839 [DEBUG][       Thread-608593][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:07:01,839 [DEBUG][       Thread-608593][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:07:01,839 [DEBUG][       Thread-608593][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:07:01,840 [DEBUG][       Thread-608593][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:07:01,854 [ INFO][       Thread-608593][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:07:01,854 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:07:01,855 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:07:02,866 [DEBUG][       Thread-608593][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:07:02,866 [DEBUG][       Thread-608593][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:07:02,916 [DEBUG][       Thread-608593][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:07:02,916 [DEBUG][       Thread-608593][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:07:02,925 [DEBUG][       Thread-608593][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:07:02,934 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:07:02,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-07-01 15:07:02,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') -> 00000000
2025-07-01 15:07:02,951 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:07:02,952 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:07:02,952 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:07:02,960 [DEBUG][       Thread-608593][   transport.py][1871] : EOF in transport thread
2025-07-01 15:07:07,822 [DEBUG][Thread-608595 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:07:12,962 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:07:12,963 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:07:12,963 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:07:12,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-07-01 15:07:13,444 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 7, 1), 11.66, 45.61, 0.0, 41.25, 14.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:07:13,444 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:07:01
2025-07-01 15:07:13,531 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:07:13,534 [DEBUG][       Thread-608596][   transport.py][1871] : starting thread (client mode): 0x75a9f90
2025-07-01 15:07:13,535 [DEBUG][       Thread-608596][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:07:13,555 [DEBUG][       Thread-608596][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:07:13,555 [ INFO][       Thread-608596][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:07:13,558 [DEBUG][       Thread-608596][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:07:13,558 [DEBUG][       Thread-608596][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:07:13,558 [DEBUG][       Thread-608596][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:07:13,558 [DEBUG][       Thread-608596][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:07:13,558 [DEBUG][       Thread-608596][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:07:13,558 [DEBUG][       Thread-608596][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:07:13,558 [DEBUG][       Thread-608596][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:07:13,558 [DEBUG][       Thread-608596][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:07:13,558 [DEBUG][       Thread-608596][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:07:13,558 [DEBUG][       Thread-608596][   transport.py][1871] : client lang: <none>
2025-07-01 15:07:13,558 [DEBUG][       Thread-608596][   transport.py][1871] : server lang: <none>
2025-07-01 15:07:13,558 [DEBUG][       Thread-608596][   transport.py][1871] : kex follows: False
2025-07-01 15:07:13,558 [DEBUG][       Thread-608596][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:07:13,558 [DEBUG][       Thread-608596][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:07:13,558 [DEBUG][       Thread-608596][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:07:13,559 [DEBUG][       Thread-608596][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:07:13,559 [DEBUG][       Thread-608596][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:07:13,559 [DEBUG][       Thread-608596][   transport.py][1871] : Compression: none
2025-07-01 15:07:13,559 [DEBUG][       Thread-608596][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:07:13,575 [DEBUG][       Thread-608596][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:07:13,575 [DEBUG][       Thread-608596][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:07:13,575 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:07:13,576 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:07:13,576 [DEBUG][       Thread-608596][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:07:13,577 [DEBUG][       Thread-608596][   transport.py][1871] : userauth is OK
2025-07-01 15:07:13,602 [ INFO][       Thread-608596][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:07:13,602 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:07:14,244 [DEBUG][       Thread-608596][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:07:14,244 [DEBUG][       Thread-608596][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:07:14,284 [DEBUG][       Thread-608596][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:07:14,284 [DEBUG][       Thread-608596][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:07:14,287 [DEBUG][       Thread-608596][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:07:14,302 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:07:14,302 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:07:14,303 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:07:14,304 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:07:14,308 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:07:14,309 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:07:14,309 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:07:14,309 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:07:14,309 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.546468 -999.00  +14.50  34.18     50   +4.30 1 1 2 1 1   887    0 11.01 41.04 ----- 33.3 34.2 30.2 45.3 17.0 -24.6 16.2 -24.3 16.7 -23.0 17.4 -23.3
2025-07-01 15:07:14,309 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:07:14,309 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:07:14,309 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.546468
2025-07-01 15:07:14,309 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:07:14,309 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:07:14,309 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:07:14,309 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:07:14,309 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:07:14,309 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:07:01', tmtdew=11.66, humidity=45.61, cloud=0.0, wind=41.25, temperature=14.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:06:54.835', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:07:14,310 [DEBUG][       Thread-608596][   transport.py][1871] : EOF in transport thread
2025-07-01 15:07:14,383 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:07:14,394 [DEBUG][       Thread-608599][   transport.py][1871] : starting thread (client mode): 0x8393a60
2025-07-01 15:07:14,394 [DEBUG][       Thread-608599][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:07:14,411 [DEBUG][       Thread-608599][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:07:14,411 [ INFO][       Thread-608599][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:07:14,425 [DEBUG][       Thread-608599][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:07:14,426 [DEBUG][       Thread-608599][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:07:14,426 [DEBUG][       Thread-608599][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:07:14,426 [DEBUG][       Thread-608599][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:07:14,426 [DEBUG][       Thread-608599][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:07:14,426 [DEBUG][       Thread-608599][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:07:14,426 [DEBUG][       Thread-608599][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:07:14,426 [DEBUG][       Thread-608599][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:07:14,426 [DEBUG][       Thread-608599][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:07:14,426 [DEBUG][       Thread-608599][   transport.py][1871] : client lang: <none>
2025-07-01 15:07:14,426 [DEBUG][       Thread-608599][   transport.py][1871] : server lang: <none>
2025-07-01 15:07:14,426 [DEBUG][       Thread-608599][   transport.py][1871] : kex follows: False
2025-07-01 15:07:14,426 [DEBUG][       Thread-608599][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:07:14,426 [DEBUG][       Thread-608599][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:07:14,426 [DEBUG][       Thread-608599][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:07:14,426 [DEBUG][       Thread-608599][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:07:14,426 [DEBUG][       Thread-608599][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:07:14,426 [DEBUG][       Thread-608599][   transport.py][1871] : Compression: none
2025-07-01 15:07:14,426 [DEBUG][       Thread-608599][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:07:14,474 [DEBUG][       Thread-608599][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:07:14,474 [DEBUG][       Thread-608599][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:07:14,474 [DEBUG][       Thread-608599][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:07:14,474 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:07:14,474 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:07:14,531 [DEBUG][       Thread-608599][   transport.py][1871] : userauth is OK
2025-07-01 15:07:14,531 [DEBUG][       Thread-608599][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:07:14,531 [DEBUG][       Thread-608599][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:07:14,531 [DEBUG][       Thread-608599][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:07:14,531 [DEBUG][       Thread-608599][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:07:14,553 [ INFO][       Thread-608599][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:07:14,553 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:07:14,554 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:07:15,563 [DEBUG][       Thread-608599][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:07:15,563 [DEBUG][       Thread-608599][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:07:15,619 [DEBUG][       Thread-608599][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:07:15,619 [DEBUG][       Thread-608599][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:07:15,627 [DEBUG][       Thread-608599][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:07:15,635 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:07:15,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-07-01 15:07:15,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') -> 00000000
2025-07-01 15:07:15,651 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:07:15,651 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:07:15,651 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:07:15,659 [DEBUG][       Thread-608599][   transport.py][1871] : EOF in transport thread
2025-07-01 15:07:16,841 [DEBUG][Thread-608601 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:07:25,662 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:07:25,662 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:07:25,662 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:07:25,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-07-01 15:07:25,868 [DEBUG][Thread-608602 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:07:26,153 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 7, 1), 11.66, 45.61, 0.0, 41.25, 14.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:07:26,153 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:07:01
2025-07-01 15:07:26,240 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:07:26,246 [DEBUG][       Thread-608603][   transport.py][1871] : starting thread (client mode): 0x8155990
2025-07-01 15:07:26,246 [DEBUG][       Thread-608603][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:07:26,267 [DEBUG][       Thread-608603][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:07:26,267 [ INFO][       Thread-608603][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:07:26,270 [DEBUG][       Thread-608603][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:07:26,271 [DEBUG][       Thread-608603][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:07:26,271 [DEBUG][       Thread-608603][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:07:26,271 [DEBUG][       Thread-608603][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:07:26,271 [DEBUG][       Thread-608603][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:07:26,271 [DEBUG][       Thread-608603][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:07:26,271 [DEBUG][       Thread-608603][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:07:26,271 [DEBUG][       Thread-608603][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:07:26,271 [DEBUG][       Thread-608603][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:07:26,271 [DEBUG][       Thread-608603][   transport.py][1871] : client lang: <none>
2025-07-01 15:07:26,271 [DEBUG][       Thread-608603][   transport.py][1871] : server lang: <none>
2025-07-01 15:07:26,271 [DEBUG][       Thread-608603][   transport.py][1871] : kex follows: False
2025-07-01 15:07:26,271 [DEBUG][       Thread-608603][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:07:26,271 [DEBUG][       Thread-608603][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:07:26,271 [DEBUG][       Thread-608603][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:07:26,271 [DEBUG][       Thread-608603][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:07:26,271 [DEBUG][       Thread-608603][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:07:26,271 [DEBUG][       Thread-608603][   transport.py][1871] : Compression: none
2025-07-01 15:07:26,271 [DEBUG][       Thread-608603][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:07:26,286 [DEBUG][       Thread-608603][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:07:26,287 [DEBUG][       Thread-608603][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:07:26,287 [DEBUG][       Thread-608603][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:07:26,287 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:07:26,288 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:07:26,289 [DEBUG][       Thread-608603][   transport.py][1871] : userauth is OK
2025-07-01 15:07:26,315 [ INFO][       Thread-608603][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:07:26,316 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:07:26,917 [DEBUG][       Thread-608603][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:07:26,917 [DEBUG][       Thread-608603][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:07:26,961 [DEBUG][       Thread-608603][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:07:26,961 [DEBUG][       Thread-608603][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:07:26,964 [DEBUG][       Thread-608603][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:07:26,975 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:07:26,975 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:07:26,977 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:07:26,979 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:07:26,985 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:07:26,987 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:07:26,987 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:07:26,988 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:07:26,988 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.546468 -999.00  +14.50  34.18     50   +4.30 1 1 2 1 1   887    0 11.01 41.04 ----- 33.3 34.2 30.2 45.3 17.0 -24.6 16.2 -24.3 16.7 -23.0 17.4 -23.3
2025-07-01 15:07:26,988 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:07:26,988 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:07:26,988 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.546468
2025-07-01 15:07:26,989 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:07:26,989 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:07:26,989 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:07:26,989 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:07:26,989 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:07:26,989 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:07:01', tmtdew=11.66, humidity=45.61, cloud=0.0, wind=41.25, temperature=14.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:06:54.835', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:07:26,990 [DEBUG][       Thread-608603][   transport.py][1871] : EOF in transport thread
2025-07-01 15:07:27,074 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:07:27,089 [DEBUG][       Thread-608606][   transport.py][1871] : starting thread (client mode): 0x827db40
2025-07-01 15:07:27,089 [DEBUG][       Thread-608606][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:07:27,105 [DEBUG][       Thread-608606][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:07:27,105 [ INFO][       Thread-608606][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:07:27,113 [DEBUG][       Thread-608606][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:07:27,113 [DEBUG][       Thread-608606][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:07:27,113 [DEBUG][       Thread-608606][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:07:27,113 [DEBUG][       Thread-608606][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:07:27,113 [DEBUG][       Thread-608606][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:07:27,113 [DEBUG][       Thread-608606][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:07:27,113 [DEBUG][       Thread-608606][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:07:27,113 [DEBUG][       Thread-608606][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:07:27,113 [DEBUG][       Thread-608606][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:07:27,113 [DEBUG][       Thread-608606][   transport.py][1871] : client lang: <none>
2025-07-01 15:07:27,113 [DEBUG][       Thread-608606][   transport.py][1871] : server lang: <none>
2025-07-01 15:07:27,113 [DEBUG][       Thread-608606][   transport.py][1871] : kex follows: False
2025-07-01 15:07:27,113 [DEBUG][       Thread-608606][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:07:27,114 [DEBUG][       Thread-608606][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:07:27,114 [DEBUG][       Thread-608606][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:07:27,114 [DEBUG][       Thread-608606][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:07:27,114 [DEBUG][       Thread-608606][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:07:27,114 [DEBUG][       Thread-608606][   transport.py][1871] : Compression: none
2025-07-01 15:07:27,114 [DEBUG][       Thread-608606][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:07:27,172 [DEBUG][       Thread-608606][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:07:27,173 [DEBUG][       Thread-608606][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:07:27,173 [DEBUG][       Thread-608606][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:07:27,174 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:07:27,174 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:07:27,232 [DEBUG][       Thread-608606][   transport.py][1871] : userauth is OK
2025-07-01 15:07:27,232 [DEBUG][       Thread-608606][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:07:27,232 [DEBUG][       Thread-608606][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:07:27,232 [DEBUG][       Thread-608606][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:07:27,232 [DEBUG][       Thread-608606][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:07:27,251 [ INFO][       Thread-608606][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:07:27,251 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:07:27,252 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:07:28,365 [DEBUG][       Thread-608606][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:07:28,365 [DEBUG][       Thread-608606][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:07:28,423 [DEBUG][       Thread-608606][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:07:28,423 [DEBUG][       Thread-608606][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:07:28,433 [DEBUG][       Thread-608606][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:07:28,442 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:07:28,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-07-01 15:07:28,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-07-01 15:07:28,461 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:07:28,461 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:07:28,462 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:07:28,470 [DEBUG][       Thread-608606][   transport.py][1871] : EOF in transport thread
2025-07-01 15:07:34,889 [DEBUG][Thread-608608 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:07:36,215 [DEBUG][Thread-608609 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:07:38,472 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:07:38,472 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:07:38,472 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:07:38,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-07-01 15:07:38,956 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 7, 32), 11.66, 45.6, 0.0, 38.25, 14.5, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:07:38,956 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:07:32
2025-07-01 15:07:39,043 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:07:39,046 [DEBUG][       Thread-608610][   transport.py][1871] : starting thread (client mode): 0x8155300
2025-07-01 15:07:39,046 [DEBUG][       Thread-608610][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:07:39,066 [DEBUG][       Thread-608610][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:07:39,067 [ INFO][       Thread-608610][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:07:39,070 [DEBUG][       Thread-608610][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:07:39,070 [DEBUG][       Thread-608610][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:07:39,070 [DEBUG][       Thread-608610][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:07:39,070 [DEBUG][       Thread-608610][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:07:39,070 [DEBUG][       Thread-608610][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:07:39,070 [DEBUG][       Thread-608610][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:07:39,070 [DEBUG][       Thread-608610][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:07:39,070 [DEBUG][       Thread-608610][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:07:39,070 [DEBUG][       Thread-608610][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:07:39,070 [DEBUG][       Thread-608610][   transport.py][1871] : client lang: <none>
2025-07-01 15:07:39,070 [DEBUG][       Thread-608610][   transport.py][1871] : server lang: <none>
2025-07-01 15:07:39,070 [DEBUG][       Thread-608610][   transport.py][1871] : kex follows: False
2025-07-01 15:07:39,070 [DEBUG][       Thread-608610][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:07:39,070 [DEBUG][       Thread-608610][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:07:39,070 [DEBUG][       Thread-608610][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:07:39,070 [DEBUG][       Thread-608610][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:07:39,070 [DEBUG][       Thread-608610][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:07:39,070 [DEBUG][       Thread-608610][   transport.py][1871] : Compression: none
2025-07-01 15:07:39,070 [DEBUG][       Thread-608610][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:07:39,086 [DEBUG][       Thread-608610][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:07:39,087 [DEBUG][       Thread-608610][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:07:39,087 [DEBUG][       Thread-608610][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:07:39,087 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:07:39,087 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:07:39,088 [DEBUG][       Thread-608610][   transport.py][1871] : userauth is OK
2025-07-01 15:07:39,101 [ INFO][       Thread-608610][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:07:39,102 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:07:39,728 [DEBUG][       Thread-608610][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:07:39,728 [DEBUG][       Thread-608610][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:07:39,773 [DEBUG][       Thread-608610][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:07:39,773 [DEBUG][       Thread-608610][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:07:39,775 [DEBUG][       Thread-608610][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:07:39,787 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:07:39,788 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:07:39,789 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:07:39,791 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:07:39,795 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:07:39,797 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:07:39,797 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:07:39,798 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:07:39,798 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.546815 -999.00  +14.50  37.20     50   +4.30 1 1 2 1 1   887    0 11.26 43.32 ----- 43.0 37.2 32.6 43.9 17.1 -24.3 16.3 -24.6 16.6 -24.6 17.4 -22.6
2025-07-01 15:07:39,798 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:07:39,798 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:07:39,798 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.546815
2025-07-01 15:07:39,799 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:07:39,799 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:07:39,799 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:07:39,799 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:07:39,799 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:07:39,799 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:07:32', tmtdew=11.66, humidity=45.6, cloud=0.0, wind=38.25, temperature=14.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:07:24.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:07:39,800 [DEBUG][       Thread-608610][   transport.py][1871] : EOF in transport thread
2025-07-01 15:07:39,885 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:07:39,895 [DEBUG][       Thread-608613][   transport.py][1871] : starting thread (client mode): 0x827db40
2025-07-01 15:07:39,895 [DEBUG][       Thread-608613][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:07:39,909 [DEBUG][       Thread-608613][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:07:39,909 [ INFO][       Thread-608613][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:07:39,917 [DEBUG][       Thread-608613][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:07:39,917 [DEBUG][       Thread-608613][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:07:39,917 [DEBUG][       Thread-608613][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:07:39,917 [DEBUG][       Thread-608613][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:07:39,917 [DEBUG][       Thread-608613][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:07:39,917 [DEBUG][       Thread-608613][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:07:39,917 [DEBUG][       Thread-608613][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:07:39,917 [DEBUG][       Thread-608613][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:07:39,917 [DEBUG][       Thread-608613][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:07:39,917 [DEBUG][       Thread-608613][   transport.py][1871] : client lang: <none>
2025-07-01 15:07:39,917 [DEBUG][       Thread-608613][   transport.py][1871] : server lang: <none>
2025-07-01 15:07:39,917 [DEBUG][       Thread-608613][   transport.py][1871] : kex follows: False
2025-07-01 15:07:39,917 [DEBUG][       Thread-608613][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:07:39,917 [DEBUG][       Thread-608613][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:07:39,918 [DEBUG][       Thread-608613][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:07:39,918 [DEBUG][       Thread-608613][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:07:39,918 [DEBUG][       Thread-608613][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:07:39,918 [DEBUG][       Thread-608613][   transport.py][1871] : Compression: none
2025-07-01 15:07:39,918 [DEBUG][       Thread-608613][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:07:39,975 [DEBUG][       Thread-608613][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:07:39,976 [DEBUG][       Thread-608613][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:07:39,976 [DEBUG][       Thread-608613][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:07:39,977 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:07:39,977 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:07:40,031 [DEBUG][       Thread-608613][   transport.py][1871] : userauth is OK
2025-07-01 15:07:40,032 [DEBUG][       Thread-608613][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:07:40,032 [DEBUG][       Thread-608613][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:07:40,032 [DEBUG][       Thread-608613][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:07:40,032 [DEBUG][       Thread-608613][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:07:40,051 [ INFO][       Thread-608613][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:07:40,051 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:07:40,051 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:07:41,039 [DEBUG][       Thread-608613][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:07:41,039 [DEBUG][       Thread-608613][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:07:41,088 [DEBUG][       Thread-608613][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:07:41,088 [DEBUG][       Thread-608613][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:07:41,098 [DEBUG][       Thread-608613][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:07:41,107 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:07:41,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-07-01 15:07:41,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-07-01 15:07:41,124 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:07:41,124 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:07:41,124 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:07:41,131 [DEBUG][       Thread-608613][   transport.py][1871] : EOF in transport thread
2025-07-01 15:07:43,910 [DEBUG][Thread-608615 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:07:51,134 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:07:51,134 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:07:51,134 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:07:51,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-07-01 15:07:51,622 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 7, 32), 11.66, 45.6, 0.0, 38.25, 14.5, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:07:51,622 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:07:32
2025-07-01 15:07:51,708 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:07:51,714 [DEBUG][       Thread-608616][   transport.py][1871] : starting thread (client mode): 0x8156ec0
2025-07-01 15:07:51,714 [DEBUG][       Thread-608616][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:07:51,734 [DEBUG][       Thread-608616][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:07:51,734 [ INFO][       Thread-608616][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:07:51,737 [DEBUG][       Thread-608616][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:07:51,737 [DEBUG][       Thread-608616][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:07:51,737 [DEBUG][       Thread-608616][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:07:51,737 [DEBUG][       Thread-608616][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:07:51,737 [DEBUG][       Thread-608616][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:07:51,737 [DEBUG][       Thread-608616][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:07:51,737 [DEBUG][       Thread-608616][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:07:51,737 [DEBUG][       Thread-608616][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:07:51,737 [DEBUG][       Thread-608616][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:07:51,737 [DEBUG][       Thread-608616][   transport.py][1871] : client lang: <none>
2025-07-01 15:07:51,737 [DEBUG][       Thread-608616][   transport.py][1871] : server lang: <none>
2025-07-01 15:07:51,738 [DEBUG][       Thread-608616][   transport.py][1871] : kex follows: False
2025-07-01 15:07:51,738 [DEBUG][       Thread-608616][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:07:51,738 [DEBUG][       Thread-608616][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:07:51,738 [DEBUG][       Thread-608616][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:07:51,738 [DEBUG][       Thread-608616][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:07:51,738 [DEBUG][       Thread-608616][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:07:51,738 [DEBUG][       Thread-608616][   transport.py][1871] : Compression: none
2025-07-01 15:07:51,738 [DEBUG][       Thread-608616][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:07:51,755 [DEBUG][       Thread-608616][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:07:51,756 [DEBUG][       Thread-608616][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:07:51,756 [DEBUG][       Thread-608616][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:07:51,756 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:07:51,757 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:07:51,758 [DEBUG][       Thread-608616][   transport.py][1871] : userauth is OK
2025-07-01 15:07:51,783 [ INFO][       Thread-608616][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:07:51,784 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:07:52,436 [DEBUG][       Thread-608616][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:07:52,436 [DEBUG][       Thread-608616][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:07:52,480 [DEBUG][       Thread-608616][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:07:52,481 [DEBUG][       Thread-608616][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:07:52,483 [DEBUG][       Thread-608616][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:07:52,497 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:07:52,497 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:07:52,498 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:07:52,499 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:07:52,501 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:07:52,502 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:07:52,502 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:07:52,502 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:07:52,502 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.546815 -999.00  +14.50  37.20     50   +4.30 1 1 2 1 1   887    0 11.26 43.32 ----- 43.0 37.2 32.6 43.9 17.1 -24.3 16.3 -24.6 16.6 -24.6 17.4 -22.6
2025-07-01 15:07:52,502 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:07:52,502 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:07:52,502 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.546815
2025-07-01 15:07:52,503 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:07:52,503 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:07:52,503 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:07:52,503 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:07:52,503 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:07:52,503 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:07:32', tmtdew=11.66, humidity=45.6, cloud=0.0, wind=38.25, temperature=14.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:07:24.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:07:52,503 [DEBUG][       Thread-608616][   transport.py][1871] : EOF in transport thread
2025-07-01 15:07:52,577 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:07:52,588 [DEBUG][       Thread-608619][   transport.py][1871] : starting thread (client mode): 0x83c8790
2025-07-01 15:07:52,588 [DEBUG][       Thread-608619][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:07:52,602 [DEBUG][       Thread-608619][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:07:52,602 [ INFO][       Thread-608619][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:07:52,610 [DEBUG][       Thread-608619][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:07:52,610 [DEBUG][       Thread-608619][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:07:52,610 [DEBUG][       Thread-608619][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:07:52,610 [DEBUG][       Thread-608619][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:07:52,610 [DEBUG][       Thread-608619][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:07:52,610 [DEBUG][       Thread-608619][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:07:52,610 [DEBUG][       Thread-608619][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:07:52,610 [DEBUG][       Thread-608619][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:07:52,610 [DEBUG][       Thread-608619][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:07:52,610 [DEBUG][       Thread-608619][   transport.py][1871] : client lang: <none>
2025-07-01 15:07:52,610 [DEBUG][       Thread-608619][   transport.py][1871] : server lang: <none>
2025-07-01 15:07:52,610 [DEBUG][       Thread-608619][   transport.py][1871] : kex follows: False
2025-07-01 15:07:52,610 [DEBUG][       Thread-608619][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:07:52,610 [DEBUG][       Thread-608619][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:07:52,610 [DEBUG][       Thread-608619][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:07:52,610 [DEBUG][       Thread-608619][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:07:52,610 [DEBUG][       Thread-608619][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:07:52,610 [DEBUG][       Thread-608619][   transport.py][1871] : Compression: none
2025-07-01 15:07:52,610 [DEBUG][       Thread-608619][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:07:52,678 [DEBUG][       Thread-608619][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:07:52,678 [DEBUG][       Thread-608619][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:07:52,678 [DEBUG][       Thread-608619][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:07:52,678 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:07:52,678 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:07:52,735 [DEBUG][       Thread-608619][   transport.py][1871] : userauth is OK
2025-07-01 15:07:52,735 [DEBUG][       Thread-608619][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:07:52,735 [DEBUG][       Thread-608619][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:07:52,735 [DEBUG][       Thread-608619][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:07:52,735 [DEBUG][       Thread-608619][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:07:52,749 [ INFO][       Thread-608619][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:07:52,749 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:07:52,749 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:07:52,942 [DEBUG][Thread-608621 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:07:53,781 [DEBUG][       Thread-608619][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:07:53,781 [DEBUG][       Thread-608619][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:07:53,831 [DEBUG][       Thread-608619][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:07:53,831 [DEBUG][       Thread-608619][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:07:53,840 [DEBUG][       Thread-608619][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:07:53,848 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:07:53,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-07-01 15:07:53,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') -> 00000000
2025-07-01 15:07:53,864 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:07:53,864 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:07:53,864 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:07:53,871 [DEBUG][       Thread-608619][   transport.py][1871] : EOF in transport thread
2025-07-01 15:08:01,960 [DEBUG][Thread-608622 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:08:03,874 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:08:03,874 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:08:03,874 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:08:03,877 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 15:08:04,360 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 7, 32), 11.66, 45.6, 0.0, 38.25, 14.5, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:08:04,360 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:07:32
2025-07-01 15:08:04,446 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:08:04,450 [DEBUG][       Thread-608623][   transport.py][1871] : starting thread (client mode): 0x8157340
2025-07-01 15:08:04,450 [DEBUG][       Thread-608623][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:08:04,471 [DEBUG][       Thread-608623][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:08:04,471 [ INFO][       Thread-608623][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:08:04,475 [DEBUG][       Thread-608623][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:08:04,475 [DEBUG][       Thread-608623][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:08:04,475 [DEBUG][       Thread-608623][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:08:04,475 [DEBUG][       Thread-608623][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:08:04,476 [DEBUG][       Thread-608623][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:08:04,476 [DEBUG][       Thread-608623][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:08:04,476 [DEBUG][       Thread-608623][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:08:04,476 [DEBUG][       Thread-608623][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:08:04,476 [DEBUG][       Thread-608623][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:08:04,476 [DEBUG][       Thread-608623][   transport.py][1871] : client lang: <none>
2025-07-01 15:08:04,476 [DEBUG][       Thread-608623][   transport.py][1871] : server lang: <none>
2025-07-01 15:08:04,476 [DEBUG][       Thread-608623][   transport.py][1871] : kex follows: False
2025-07-01 15:08:04,476 [DEBUG][       Thread-608623][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:08:04,476 [DEBUG][       Thread-608623][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:08:04,476 [DEBUG][       Thread-608623][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:08:04,476 [DEBUG][       Thread-608623][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:08:04,476 [DEBUG][       Thread-608623][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:08:04,476 [DEBUG][       Thread-608623][   transport.py][1871] : Compression: none
2025-07-01 15:08:04,476 [DEBUG][       Thread-608623][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:08:04,493 [DEBUG][       Thread-608623][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:08:04,494 [DEBUG][       Thread-608623][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:08:04,494 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:08:04,494 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:08:04,495 [DEBUG][       Thread-608623][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:08:04,496 [DEBUG][       Thread-608623][   transport.py][1871] : userauth is OK
2025-07-01 15:08:04,521 [ INFO][       Thread-608623][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:08:04,522 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:08:05,181 [DEBUG][       Thread-608623][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:08:05,181 [DEBUG][       Thread-608623][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:08:05,224 [DEBUG][       Thread-608623][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:08:05,224 [DEBUG][       Thread-608623][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:08:05,227 [DEBUG][       Thread-608623][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:08:05,240 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:08:05,240 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:08:05,241 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:08:05,242 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:08:05,245 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:08:05,246 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:08:05,247 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:08:05,247 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:08:05,247 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.546815 -999.00  +14.50  37.20     50   +4.30 1 1 2 1 1   887    0 11.26 43.32 ----- 43.0 37.2 32.6 43.9 17.1 -24.3 16.3 -24.6 16.6 -24.6 17.4 -22.6
2025-07-01 15:08:05,247 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:08:05,247 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:08:05,247 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.546815
2025-07-01 15:08:05,247 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:08:05,247 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:08:05,247 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:08:05,247 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:08:05,247 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:08:05,247 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:07:32', tmtdew=11.66, humidity=45.6, cloud=0.0, wind=38.25, temperature=14.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:07:24.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:08:05,248 [DEBUG][       Thread-608623][   transport.py][1871] : EOF in transport thread
2025-07-01 15:08:05,322 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:08:05,331 [DEBUG][       Thread-608626][   transport.py][1871] : starting thread (client mode): 0x8393910
2025-07-01 15:08:05,331 [DEBUG][       Thread-608626][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:08:05,346 [DEBUG][       Thread-608626][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:08:05,346 [ INFO][       Thread-608626][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:08:05,359 [DEBUG][       Thread-608626][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:08:05,359 [DEBUG][       Thread-608626][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:08:05,359 [DEBUG][       Thread-608626][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:08:05,359 [DEBUG][       Thread-608626][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:08:05,359 [DEBUG][       Thread-608626][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:08:05,359 [DEBUG][       Thread-608626][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:08:05,359 [DEBUG][       Thread-608626][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:08:05,359 [DEBUG][       Thread-608626][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:08:05,359 [DEBUG][       Thread-608626][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:08:05,359 [DEBUG][       Thread-608626][   transport.py][1871] : client lang: <none>
2025-07-01 15:08:05,359 [DEBUG][       Thread-608626][   transport.py][1871] : server lang: <none>
2025-07-01 15:08:05,359 [DEBUG][       Thread-608626][   transport.py][1871] : kex follows: False
2025-07-01 15:08:05,359 [DEBUG][       Thread-608626][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:08:05,359 [DEBUG][       Thread-608626][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:08:05,359 [DEBUG][       Thread-608626][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:08:05,359 [DEBUG][       Thread-608626][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:08:05,359 [DEBUG][       Thread-608626][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:08:05,359 [DEBUG][       Thread-608626][   transport.py][1871] : Compression: none
2025-07-01 15:08:05,359 [DEBUG][       Thread-608626][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:08:05,410 [DEBUG][       Thread-608626][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:08:05,410 [DEBUG][       Thread-608626][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:08:05,410 [DEBUG][       Thread-608626][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:08:05,411 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:08:05,411 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:08:05,471 [DEBUG][       Thread-608626][   transport.py][1871] : userauth is OK
2025-07-01 15:08:05,471 [DEBUG][       Thread-608626][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:08:05,471 [DEBUG][       Thread-608626][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:08:05,471 [DEBUG][       Thread-608626][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:08:05,471 [DEBUG][       Thread-608626][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:08:05,485 [ INFO][       Thread-608626][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:08:05,485 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:08:05,485 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:08:06,523 [DEBUG][       Thread-608626][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:08:06,524 [DEBUG][       Thread-608626][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:08:06,572 [DEBUG][       Thread-608626][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:08:06,572 [DEBUG][       Thread-608626][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:08:06,581 [DEBUG][       Thread-608626][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:08:06,590 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:08:06,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-07-01 15:08:06,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-07-01 15:08:06,608 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:08:06,608 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:08:06,608 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:08:06,616 [DEBUG][       Thread-608626][   transport.py][1871] : EOF in transport thread
2025-07-01 15:08:10,981 [DEBUG][Thread-608628 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:08:16,619 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:08:16,619 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:08:16,619 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:08:16,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-07-01 15:08:17,088 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 8, 4), 11.66, 45.61, 0.0, 36.01, 14.52, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:08:17,088 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:08:04
2025-07-01 15:08:17,174 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:08:17,180 [DEBUG][       Thread-608629][   transport.py][1871] : starting thread (client mode): 0x75aac50
2025-07-01 15:08:17,180 [DEBUG][       Thread-608629][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:08:17,203 [DEBUG][       Thread-608629][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:08:17,203 [ INFO][       Thread-608629][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:08:17,206 [DEBUG][       Thread-608629][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:08:17,206 [DEBUG][       Thread-608629][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:08:17,206 [DEBUG][       Thread-608629][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:08:17,207 [DEBUG][       Thread-608629][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:08:17,207 [DEBUG][       Thread-608629][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:08:17,207 [DEBUG][       Thread-608629][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:08:17,207 [DEBUG][       Thread-608629][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:08:17,207 [DEBUG][       Thread-608629][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:08:17,207 [DEBUG][       Thread-608629][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:08:17,207 [DEBUG][       Thread-608629][   transport.py][1871] : client lang: <none>
2025-07-01 15:08:17,207 [DEBUG][       Thread-608629][   transport.py][1871] : server lang: <none>
2025-07-01 15:08:17,207 [DEBUG][       Thread-608629][   transport.py][1871] : kex follows: False
2025-07-01 15:08:17,207 [DEBUG][       Thread-608629][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:08:17,207 [DEBUG][       Thread-608629][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:08:17,207 [DEBUG][       Thread-608629][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:08:17,207 [DEBUG][       Thread-608629][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:08:17,207 [DEBUG][       Thread-608629][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:08:17,207 [DEBUG][       Thread-608629][   transport.py][1871] : Compression: none
2025-07-01 15:08:17,207 [DEBUG][       Thread-608629][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:08:17,223 [DEBUG][       Thread-608629][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:08:17,224 [DEBUG][       Thread-608629][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:08:17,224 [DEBUG][       Thread-608629][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:08:17,225 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:08:17,225 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:08:17,226 [DEBUG][       Thread-608629][   transport.py][1871] : userauth is OK
2025-07-01 15:08:17,250 [ INFO][       Thread-608629][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:08:17,251 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:08:17,952 [DEBUG][       Thread-608629][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:08:17,953 [DEBUG][       Thread-608629][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:08:17,997 [DEBUG][       Thread-608629][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:08:17,997 [DEBUG][       Thread-608629][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:08:18,000 [DEBUG][       Thread-608629][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:08:18,013 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:08:18,013 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:08:18,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:08:18,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:08:18,023 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:08:18,025 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:08:18,025 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:08:18,026 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:08:18,026 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.547162 -999.00  +14.20  37.02     50   +4.10 1 1 2 1 1   887    0 11.39 46.35 ----- 32.2 37.0 28.2 59.5 16.9 -24.8 16.1 -24.9 16.6 -23.6 17.4 -23.4
2025-07-01 15:08:18,026 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:08:18,026 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:08:18,026 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.547162
2025-07-01 15:08:18,026 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:08:18,027 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:08:18,027 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:08:18,027 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:08:18,027 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:08:18,027 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:08:04', tmtdew=11.66, humidity=45.61, cloud=0.0, wind=36.01, temperature=14.52, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:07:54.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:08:18,028 [DEBUG][       Thread-608629][   transport.py][1871] : EOF in transport thread
2025-07-01 15:08:18,112 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:08:18,130 [DEBUG][       Thread-608632][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 15:08:18,130 [DEBUG][       Thread-608632][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:08:18,145 [DEBUG][       Thread-608632][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:08:18,145 [ INFO][       Thread-608632][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:08:18,153 [DEBUG][       Thread-608632][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:08:18,153 [DEBUG][       Thread-608632][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:08:18,153 [DEBUG][       Thread-608632][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:08:18,153 [DEBUG][       Thread-608632][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:08:18,153 [DEBUG][       Thread-608632][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:08:18,153 [DEBUG][       Thread-608632][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:08:18,153 [DEBUG][       Thread-608632][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:08:18,153 [DEBUG][       Thread-608632][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:08:18,153 [DEBUG][       Thread-608632][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:08:18,153 [DEBUG][       Thread-608632][   transport.py][1871] : client lang: <none>
2025-07-01 15:08:18,154 [DEBUG][       Thread-608632][   transport.py][1871] : server lang: <none>
2025-07-01 15:08:18,154 [DEBUG][       Thread-608632][   transport.py][1871] : kex follows: False
2025-07-01 15:08:18,154 [DEBUG][       Thread-608632][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:08:18,154 [DEBUG][       Thread-608632][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:08:18,154 [DEBUG][       Thread-608632][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:08:18,154 [DEBUG][       Thread-608632][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:08:18,154 [DEBUG][       Thread-608632][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:08:18,154 [DEBUG][       Thread-608632][   transport.py][1871] : Compression: none
2025-07-01 15:08:18,154 [DEBUG][       Thread-608632][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:08:18,211 [DEBUG][       Thread-608632][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:08:18,211 [DEBUG][       Thread-608632][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:08:18,212 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:08:18,212 [DEBUG][       Thread-608632][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:08:18,213 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:08:18,275 [DEBUG][       Thread-608632][   transport.py][1871] : userauth is OK
2025-07-01 15:08:18,275 [DEBUG][       Thread-608632][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:08:18,275 [DEBUG][       Thread-608632][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:08:18,275 [DEBUG][       Thread-608632][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:08:18,275 [DEBUG][       Thread-608632][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:08:18,295 [ INFO][       Thread-608632][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:08:18,295 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:08:18,295 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:08:19,304 [DEBUG][       Thread-608632][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:08:19,304 [DEBUG][       Thread-608632][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:08:19,354 [DEBUG][       Thread-608632][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:08:19,354 [DEBUG][       Thread-608632][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:08:19,363 [DEBUG][       Thread-608632][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:08:19,372 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:08:19,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-07-01 15:08:19,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-07-01 15:08:19,394 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:08:19,395 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:08:19,395 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:08:19,403 [DEBUG][       Thread-608632][   transport.py][1871] : EOF in transport thread
2025-07-01 15:08:20,004 [DEBUG][Thread-608634 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:08:29,044 [DEBUG][Thread-608635 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:08:29,403 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:08:29,403 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:08:29,403 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:08:29,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-07-01 15:08:29,874 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 8, 4), 11.66, 45.61, 0.0, 36.01, 14.52, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:08:29,874 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:08:04
2025-07-01 15:08:29,960 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:08:29,964 [DEBUG][       Thread-608636][   transport.py][1871] : starting thread (client mode): 0x8157280
2025-07-01 15:08:29,964 [DEBUG][       Thread-608636][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:08:29,984 [DEBUG][       Thread-608636][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:08:29,984 [ INFO][       Thread-608636][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:08:29,988 [DEBUG][       Thread-608636][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:08:29,988 [DEBUG][       Thread-608636][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:08:29,988 [DEBUG][       Thread-608636][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:08:29,988 [DEBUG][       Thread-608636][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:08:29,988 [DEBUG][       Thread-608636][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:08:29,988 [DEBUG][       Thread-608636][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:08:29,988 [DEBUG][       Thread-608636][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:08:29,988 [DEBUG][       Thread-608636][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:08:29,988 [DEBUG][       Thread-608636][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:08:29,988 [DEBUG][       Thread-608636][   transport.py][1871] : client lang: <none>
2025-07-01 15:08:29,988 [DEBUG][       Thread-608636][   transport.py][1871] : server lang: <none>
2025-07-01 15:08:29,988 [DEBUG][       Thread-608636][   transport.py][1871] : kex follows: False
2025-07-01 15:08:29,988 [DEBUG][       Thread-608636][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:08:29,988 [DEBUG][       Thread-608636][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:08:29,988 [DEBUG][       Thread-608636][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:08:29,988 [DEBUG][       Thread-608636][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:08:29,988 [DEBUG][       Thread-608636][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:08:29,988 [DEBUG][       Thread-608636][   transport.py][1871] : Compression: none
2025-07-01 15:08:29,988 [DEBUG][       Thread-608636][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:08:30,005 [DEBUG][       Thread-608636][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:08:30,006 [DEBUG][       Thread-608636][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:08:30,006 [DEBUG][       Thread-608636][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:08:30,006 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:08:30,007 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:08:30,008 [DEBUG][       Thread-608636][   transport.py][1871] : userauth is OK
2025-07-01 15:08:30,021 [ INFO][       Thread-608636][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:08:30,022 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:08:30,645 [DEBUG][       Thread-608636][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:08:30,645 [DEBUG][       Thread-608636][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:08:30,688 [DEBUG][       Thread-608636][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:08:30,688 [DEBUG][       Thread-608636][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:08:30,691 [DEBUG][       Thread-608636][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:08:30,704 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:08:30,704 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:08:30,705 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:08:30,706 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:08:30,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:08:30,709 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:08:30,709 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:08:30,709 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:08:30,709 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.547162 -999.00  +14.20  37.02     50   +4.10 1 1 2 1 1   887    0 11.39 46.35 ----- 32.2 37.0 28.2 59.5 16.9 -24.8 16.1 -24.9 16.6 -23.6 17.4 -23.4
2025-07-01 15:08:30,710 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:08:30,710 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:08:30,710 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.547162
2025-07-01 15:08:30,710 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:08:30,710 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:08:30,710 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:08:30,710 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:08:30,710 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:08:30,710 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:08:04', tmtdew=11.66, humidity=45.61, cloud=0.0, wind=36.01, temperature=14.52, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:07:54.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:08:30,710 [DEBUG][       Thread-608636][   transport.py][1871] : EOF in transport thread
2025-07-01 15:08:30,785 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:08:30,796 [DEBUG][       Thread-608639][   transport.py][1871] : starting thread (client mode): 0x8393ee0
2025-07-01 15:08:30,796 [DEBUG][       Thread-608639][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:08:30,818 [DEBUG][       Thread-608639][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:08:30,818 [ INFO][       Thread-608639][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:08:30,826 [DEBUG][       Thread-608639][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:08:30,826 [DEBUG][       Thread-608639][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:08:30,826 [DEBUG][       Thread-608639][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:08:30,826 [DEBUG][       Thread-608639][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:08:30,826 [DEBUG][       Thread-608639][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:08:30,826 [DEBUG][       Thread-608639][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:08:30,826 [DEBUG][       Thread-608639][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:08:30,826 [DEBUG][       Thread-608639][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:08:30,826 [DEBUG][       Thread-608639][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:08:30,826 [DEBUG][       Thread-608639][   transport.py][1871] : client lang: <none>
2025-07-01 15:08:30,826 [DEBUG][       Thread-608639][   transport.py][1871] : server lang: <none>
2025-07-01 15:08:30,826 [DEBUG][       Thread-608639][   transport.py][1871] : kex follows: False
2025-07-01 15:08:30,826 [DEBUG][       Thread-608639][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:08:30,826 [DEBUG][       Thread-608639][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:08:30,826 [DEBUG][       Thread-608639][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:08:30,826 [DEBUG][       Thread-608639][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:08:30,826 [DEBUG][       Thread-608639][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:08:30,826 [DEBUG][       Thread-608639][   transport.py][1871] : Compression: none
2025-07-01 15:08:30,826 [DEBUG][       Thread-608639][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:08:30,885 [DEBUG][       Thread-608639][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:08:30,885 [DEBUG][       Thread-608639][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:08:30,885 [DEBUG][       Thread-608639][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:08:30,885 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:08:30,885 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:08:30,946 [DEBUG][       Thread-608639][   transport.py][1871] : userauth is OK
2025-07-01 15:08:30,946 [DEBUG][       Thread-608639][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:08:30,946 [DEBUG][       Thread-608639][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:08:30,946 [DEBUG][       Thread-608639][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:08:30,946 [DEBUG][       Thread-608639][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:08:30,964 [ INFO][       Thread-608639][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:08:30,964 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:08:30,964 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:08:32,004 [DEBUG][       Thread-608639][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:08:32,004 [DEBUG][       Thread-608639][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:08:32,055 [DEBUG][       Thread-608639][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:08:32,055 [DEBUG][       Thread-608639][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:08:32,066 [DEBUG][       Thread-608639][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:08:32,074 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:08:32,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')
2025-07-01 15:08:32,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-07-01 15:08:32,089 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:08:32,089 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:08:32,090 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:08:32,097 [DEBUG][       Thread-608639][   transport.py][1871] : EOF in transport thread
2025-07-01 15:08:36,245 [DEBUG][Thread-608641 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:08:38,061 [DEBUG][Thread-608642 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:08:42,100 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:08:42,100 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:08:42,100 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:08:42,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-07-01 15:08:42,585 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 8, 36), 11.63, 45.71, 0.0, 30.58, 14.47, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:08:42,585 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:08:36
2025-07-01 15:08:42,671 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:08:42,676 [DEBUG][       Thread-608643][   transport.py][1871] : starting thread (client mode): 0x81ca4a0
2025-07-01 15:08:42,676 [DEBUG][       Thread-608643][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:08:42,693 [DEBUG][       Thread-608643][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:08:42,693 [ INFO][       Thread-608643][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:08:42,696 [DEBUG][       Thread-608643][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:08:42,696 [DEBUG][       Thread-608643][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:08:42,696 [DEBUG][       Thread-608643][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:08:42,696 [DEBUG][       Thread-608643][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:08:42,696 [DEBUG][       Thread-608643][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:08:42,696 [DEBUG][       Thread-608643][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:08:42,696 [DEBUG][       Thread-608643][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:08:42,696 [DEBUG][       Thread-608643][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:08:42,696 [DEBUG][       Thread-608643][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:08:42,696 [DEBUG][       Thread-608643][   transport.py][1871] : client lang: <none>
2025-07-01 15:08:42,696 [DEBUG][       Thread-608643][   transport.py][1871] : server lang: <none>
2025-07-01 15:08:42,696 [DEBUG][       Thread-608643][   transport.py][1871] : kex follows: False
2025-07-01 15:08:42,696 [DEBUG][       Thread-608643][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:08:42,696 [DEBUG][       Thread-608643][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:08:42,697 [DEBUG][       Thread-608643][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:08:42,697 [DEBUG][       Thread-608643][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:08:42,697 [DEBUG][       Thread-608643][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:08:42,697 [DEBUG][       Thread-608643][   transport.py][1871] : Compression: none
2025-07-01 15:08:42,697 [DEBUG][       Thread-608643][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:08:42,712 [DEBUG][       Thread-608643][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:08:42,713 [DEBUG][       Thread-608643][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:08:42,713 [DEBUG][       Thread-608643][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:08:42,714 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:08:42,714 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:08:42,715 [DEBUG][       Thread-608643][   transport.py][1871] : userauth is OK
2025-07-01 15:08:42,728 [ INFO][       Thread-608643][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:08:42,729 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:08:43,353 [DEBUG][       Thread-608643][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:08:43,353 [DEBUG][       Thread-608643][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:08:43,397 [DEBUG][       Thread-608643][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:08:43,397 [DEBUG][       Thread-608643][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:08:43,400 [DEBUG][       Thread-608643][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:08:43,412 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:08:43,412 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:08:43,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:08:43,417 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:08:43,422 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:08:43,423 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:08:43,423 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:08:43,424 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:08:43,424 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.547510 -999.00  +14.20  44.96     50   +4.10 1 1 2 1 1   887    0 11.31 44.50 ----- 32.4 45.0 41.0 52.7 16.9 -24.2 16.2 -24.8 16.6 -23.6 17.4 -22.9
2025-07-01 15:08:43,424 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:08:43,424 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:08:43,425 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.547510
2025-07-01 15:08:43,425 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:08:43,426 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:08:43,426 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:08:43,426 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:08:43,426 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:08:43,426 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:08:36', tmtdew=11.63, humidity=45.71, cloud=0.0, wind=30.58, temperature=14.47, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:08:24.864', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:08:43,427 [DEBUG][       Thread-608643][   transport.py][1871] : EOF in transport thread
2025-07-01 15:08:43,509 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:08:43,518 [DEBUG][       Thread-608646][   transport.py][1871] : starting thread (client mode): 0x8393910
2025-07-01 15:08:43,519 [DEBUG][       Thread-608646][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:08:43,534 [DEBUG][       Thread-608646][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:08:43,534 [ INFO][       Thread-608646][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:08:43,542 [DEBUG][       Thread-608646][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:08:43,542 [DEBUG][       Thread-608646][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:08:43,542 [DEBUG][       Thread-608646][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:08:43,542 [DEBUG][       Thread-608646][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:08:43,542 [DEBUG][       Thread-608646][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:08:43,542 [DEBUG][       Thread-608646][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:08:43,542 [DEBUG][       Thread-608646][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:08:43,542 [DEBUG][       Thread-608646][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:08:43,542 [DEBUG][       Thread-608646][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:08:43,543 [DEBUG][       Thread-608646][   transport.py][1871] : client lang: <none>
2025-07-01 15:08:43,543 [DEBUG][       Thread-608646][   transport.py][1871] : server lang: <none>
2025-07-01 15:08:43,543 [DEBUG][       Thread-608646][   transport.py][1871] : kex follows: False
2025-07-01 15:08:43,543 [DEBUG][       Thread-608646][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:08:43,543 [DEBUG][       Thread-608646][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:08:43,543 [DEBUG][       Thread-608646][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:08:43,543 [DEBUG][       Thread-608646][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:08:43,543 [DEBUG][       Thread-608646][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:08:43,543 [DEBUG][       Thread-608646][   transport.py][1871] : Compression: none
2025-07-01 15:08:43,543 [DEBUG][       Thread-608646][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:08:43,598 [DEBUG][       Thread-608646][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:08:43,598 [DEBUG][       Thread-608646][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:08:43,599 [DEBUG][       Thread-608646][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:08:43,599 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:08:43,600 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:08:43,654 [DEBUG][       Thread-608646][   transport.py][1871] : userauth is OK
2025-07-01 15:08:43,654 [DEBUG][       Thread-608646][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:08:43,654 [DEBUG][       Thread-608646][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:08:43,654 [DEBUG][       Thread-608646][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:08:43,654 [DEBUG][       Thread-608646][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:08:43,668 [ INFO][       Thread-608646][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:08:43,668 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:08:43,668 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:08:44,702 [DEBUG][       Thread-608646][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:08:44,702 [DEBUG][       Thread-608646][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:08:44,753 [DEBUG][       Thread-608646][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:08:44,753 [DEBUG][       Thread-608646][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:08:44,762 [DEBUG][       Thread-608646][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:08:44,771 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:08:44,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-07-01 15:08:44,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-07-01 15:08:44,793 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:08:44,793 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:08:44,793 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:08:44,803 [DEBUG][       Thread-608646][   transport.py][1871] : EOF in transport thread
2025-07-01 15:08:47,082 [DEBUG][Thread-608648 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:08:54,804 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:08:54,804 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:08:54,804 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:08:54,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-07-01 15:08:55,284 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 8, 36), 11.63, 45.71, 0.0, 30.58, 14.47, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:08:55,284 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:08:36
2025-07-01 15:08:55,370 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:08:55,375 [DEBUG][       Thread-608649][   transport.py][1871] : starting thread (client mode): 0x81ca920
2025-07-01 15:08:55,375 [DEBUG][       Thread-608649][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:08:55,396 [DEBUG][       Thread-608649][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:08:55,396 [ INFO][       Thread-608649][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:08:55,397 [DEBUG][       Thread-608649][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:08:55,397 [DEBUG][       Thread-608649][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:08:55,397 [DEBUG][       Thread-608649][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:08:55,397 [DEBUG][       Thread-608649][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:08:55,397 [DEBUG][       Thread-608649][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:08:55,397 [DEBUG][       Thread-608649][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:08:55,398 [DEBUG][       Thread-608649][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:08:55,398 [DEBUG][       Thread-608649][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:08:55,398 [DEBUG][       Thread-608649][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:08:55,398 [DEBUG][       Thread-608649][   transport.py][1871] : client lang: <none>
2025-07-01 15:08:55,398 [DEBUG][       Thread-608649][   transport.py][1871] : server lang: <none>
2025-07-01 15:08:55,398 [DEBUG][       Thread-608649][   transport.py][1871] : kex follows: False
2025-07-01 15:08:55,398 [DEBUG][       Thread-608649][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:08:55,398 [DEBUG][       Thread-608649][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:08:55,398 [DEBUG][       Thread-608649][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:08:55,398 [DEBUG][       Thread-608649][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:08:55,398 [DEBUG][       Thread-608649][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:08:55,398 [DEBUG][       Thread-608649][   transport.py][1871] : Compression: none
2025-07-01 15:08:55,398 [DEBUG][       Thread-608649][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:08:55,406 [DEBUG][       Thread-608649][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:08:55,406 [DEBUG][       Thread-608649][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:08:55,407 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:08:55,407 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:08:55,407 [DEBUG][       Thread-608649][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:08:55,408 [DEBUG][       Thread-608649][   transport.py][1871] : userauth is OK
2025-07-01 15:08:55,421 [ INFO][       Thread-608649][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:08:55,421 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:08:56,068 [DEBUG][       Thread-608649][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:08:56,068 [DEBUG][       Thread-608649][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:08:56,108 [DEBUG][       Thread-608649][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:08:56,108 [DEBUG][       Thread-608649][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:08:56,111 [DEBUG][       Thread-608649][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:08:56,122 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:08:56,122 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:08:56,123 [DEBUG][Thread-608651 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:08:56,123 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:08:56,124 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:08:56,127 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:08:56,127 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:08:56,127 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:08:56,128 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:08:56,128 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.547510 -999.00  +14.20  44.96     50   +4.10 1 1 2 1 1   887    0 11.31 44.50 ----- 32.4 45.0 41.0 52.7 16.9 -24.2 16.2 -24.8 16.6 -23.6 17.4 -22.9
2025-07-01 15:08:56,128 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:08:56,128 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:08:56,128 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.547510
2025-07-01 15:08:56,128 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:08:56,128 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:08:56,128 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:08:56,128 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:08:56,128 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:08:56,128 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:08:36', tmtdew=11.63, humidity=45.71, cloud=0.0, wind=30.58, temperature=14.47, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:08:24.864', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:08:56,129 [DEBUG][       Thread-608649][   transport.py][1871] : EOF in transport thread
2025-07-01 15:08:56,200 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:08:56,221 [DEBUG][       Thread-608653][   transport.py][1871] : starting thread (client mode): 0x8393910
2025-07-01 15:08:56,221 [DEBUG][       Thread-608653][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:08:56,236 [DEBUG][       Thread-608653][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:08:56,237 [ INFO][       Thread-608653][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:08:56,244 [DEBUG][       Thread-608653][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:08:56,244 [DEBUG][       Thread-608653][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:08:56,245 [DEBUG][       Thread-608653][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:08:56,245 [DEBUG][       Thread-608653][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:08:56,245 [DEBUG][       Thread-608653][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:08:56,245 [DEBUG][       Thread-608653][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:08:56,245 [DEBUG][       Thread-608653][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:08:56,245 [DEBUG][       Thread-608653][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:08:56,245 [DEBUG][       Thread-608653][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:08:56,245 [DEBUG][       Thread-608653][   transport.py][1871] : client lang: <none>
2025-07-01 15:08:56,245 [DEBUG][       Thread-608653][   transport.py][1871] : server lang: <none>
2025-07-01 15:08:56,245 [DEBUG][       Thread-608653][   transport.py][1871] : kex follows: False
2025-07-01 15:08:56,245 [DEBUG][       Thread-608653][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:08:56,245 [DEBUG][       Thread-608653][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:08:56,245 [DEBUG][       Thread-608653][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:08:56,245 [DEBUG][       Thread-608653][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:08:56,245 [DEBUG][       Thread-608653][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:08:56,245 [DEBUG][       Thread-608653][   transport.py][1871] : Compression: none
2025-07-01 15:08:56,245 [DEBUG][       Thread-608653][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:08:56,304 [DEBUG][       Thread-608653][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:08:56,304 [DEBUG][       Thread-608653][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:08:56,305 [DEBUG][       Thread-608653][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:08:56,305 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:08:56,306 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:08:56,366 [DEBUG][       Thread-608653][   transport.py][1871] : userauth is OK
2025-07-01 15:08:56,367 [DEBUG][       Thread-608653][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:08:56,367 [DEBUG][       Thread-608653][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:08:56,367 [DEBUG][       Thread-608653][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:08:56,367 [DEBUG][       Thread-608653][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:08:56,386 [ INFO][       Thread-608653][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:08:56,386 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:08:56,387 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:08:57,392 [DEBUG][       Thread-608653][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:08:57,393 [DEBUG][       Thread-608653][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:08:57,444 [DEBUG][       Thread-608653][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:08:57,444 [DEBUG][       Thread-608653][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:08:57,453 [DEBUG][       Thread-608653][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:08:57,463 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:08: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-07-01 15:08:57,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') -> 00000000
2025-07-01 15:08:57,484 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:08:57,484 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:08:57,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:08:57,496 [DEBUG][       Thread-608653][   transport.py][1871] : EOF in transport thread
2025-07-01 15:09:05,142 [DEBUG][Thread-608655 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:09:07,495 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:09:07,495 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:09:07,495 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:09:07,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-07-01 15:09:07,978 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 8, 36), 11.63, 45.71, 0.0, 30.58, 14.47, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:09:07,978 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:08:36
2025-07-01 15:09:08,067 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:09:08,071 [DEBUG][       Thread-608656][   transport.py][1871] : starting thread (client mode): 0x8154ee0
2025-07-01 15:09:08,071 [DEBUG][       Thread-608656][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:09:08,092 [DEBUG][       Thread-608656][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:09:08,092 [ INFO][       Thread-608656][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:09:08,096 [DEBUG][       Thread-608656][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:09:08,096 [DEBUG][       Thread-608656][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:09:08,096 [DEBUG][       Thread-608656][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:09:08,096 [DEBUG][       Thread-608656][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:09:08,096 [DEBUG][       Thread-608656][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:09:08,096 [DEBUG][       Thread-608656][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:09:08,096 [DEBUG][       Thread-608656][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:09:08,096 [DEBUG][       Thread-608656][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:09:08,096 [DEBUG][       Thread-608656][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:09:08,096 [DEBUG][       Thread-608656][   transport.py][1871] : client lang: <none>
2025-07-01 15:09:08,096 [DEBUG][       Thread-608656][   transport.py][1871] : server lang: <none>
2025-07-01 15:09:08,096 [DEBUG][       Thread-608656][   transport.py][1871] : kex follows: False
2025-07-01 15:09:08,096 [DEBUG][       Thread-608656][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:09:08,096 [DEBUG][       Thread-608656][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:09:08,096 [DEBUG][       Thread-608656][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:09:08,096 [DEBUG][       Thread-608656][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:09:08,096 [DEBUG][       Thread-608656][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:09:08,096 [DEBUG][       Thread-608656][   transport.py][1871] : Compression: none
2025-07-01 15:09:08,096 [DEBUG][       Thread-608656][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:09:08,111 [DEBUG][       Thread-608656][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:09:08,111 [DEBUG][       Thread-608656][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:09:08,111 [DEBUG][       Thread-608656][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:09:08,111 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:09:08,111 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:09:08,112 [DEBUG][       Thread-608656][   transport.py][1871] : userauth is OK
2025-07-01 15:09:08,124 [ INFO][       Thread-608656][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:09:08,125 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:09:08,781 [DEBUG][       Thread-608656][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:09:08,781 [DEBUG][       Thread-608656][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:09:08,824 [DEBUG][       Thread-608656][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:09:08,824 [DEBUG][       Thread-608656][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:09:08,827 [DEBUG][       Thread-608656][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:09:08,841 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:09:08,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:09:08,842 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:09:08,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:09:08,846 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:09:08,846 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:09:08,846 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:09:08,847 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:09:08,847 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.547510 -999.00  +14.20  44.96     50   +4.10 1 1 2 1 1   887    0 11.31 44.50 ----- 32.4 45.0 41.0 52.7 16.9 -24.2 16.2 -24.8 16.6 -23.6 17.4 -22.9
2025-07-01 15:09:08,847 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:09:08,847 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:09:08,847 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.547510
2025-07-01 15:09:08,847 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:09:08,847 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:09:08,847 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:09:08,847 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:09:08,847 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:09:08,847 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:08:36', tmtdew=11.63, humidity=45.71, cloud=0.0, wind=30.58, temperature=14.47, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:08:24.864', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:09:08,847 [DEBUG][       Thread-608656][   transport.py][1871] : EOF in transport thread
2025-07-01 15:09:08,922 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:09:08,931 [DEBUG][       Thread-608659][   transport.py][1871] : starting thread (client mode): 0x8393910
2025-07-01 15:09:08,931 [DEBUG][       Thread-608659][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:09:08,947 [DEBUG][       Thread-608659][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:09:08,947 [ INFO][       Thread-608659][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:09:08,954 [DEBUG][       Thread-608659][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:09:08,954 [DEBUG][       Thread-608659][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:09:08,954 [DEBUG][       Thread-608659][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:09:08,954 [DEBUG][       Thread-608659][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:09:08,954 [DEBUG][       Thread-608659][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:09:08,954 [DEBUG][       Thread-608659][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:09:08,954 [DEBUG][       Thread-608659][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:09:08,954 [DEBUG][       Thread-608659][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:09:08,954 [DEBUG][       Thread-608659][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:09:08,954 [DEBUG][       Thread-608659][   transport.py][1871] : client lang: <none>
2025-07-01 15:09:08,954 [DEBUG][       Thread-608659][   transport.py][1871] : server lang: <none>
2025-07-01 15:09:08,954 [DEBUG][       Thread-608659][   transport.py][1871] : kex follows: False
2025-07-01 15:09:08,954 [DEBUG][       Thread-608659][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:09:08,954 [DEBUG][       Thread-608659][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:09:08,954 [DEBUG][       Thread-608659][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:09:08,954 [DEBUG][       Thread-608659][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:09:08,954 [DEBUG][       Thread-608659][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:09:08,954 [DEBUG][       Thread-608659][   transport.py][1871] : Compression: none
2025-07-01 15:09:08,954 [DEBUG][       Thread-608659][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:09:09,020 [DEBUG][       Thread-608659][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:09:09,020 [DEBUG][       Thread-608659][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:09:09,021 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:09:09,021 [DEBUG][       Thread-608659][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:09:09,021 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:09:09,078 [DEBUG][       Thread-608659][   transport.py][1871] : userauth is OK
2025-07-01 15:09:09,078 [DEBUG][       Thread-608659][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:09:09,078 [DEBUG][       Thread-608659][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:09:09,078 [DEBUG][       Thread-608659][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:09:09,078 [DEBUG][       Thread-608659][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:09:09,093 [ INFO][       Thread-608659][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:09:09,093 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:09:09,093 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:09:10,175 [DEBUG][       Thread-608659][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:09:10,175 [DEBUG][       Thread-608659][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:09:10,223 [DEBUG][       Thread-608659][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:09:10,223 [DEBUG][       Thread-608659][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:09:10,232 [DEBUG][       Thread-608659][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:09:10,240 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:09:10,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-07-01 15:09:10,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-07-01 15:09:10,256 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:09:10,256 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:09:10,256 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:09:10,264 [DEBUG][       Thread-608659][   transport.py][1871] : EOF in transport thread
2025-07-01 15:09:14,163 [DEBUG][Thread-608661 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:09:20,266 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:09:20,266 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:09:20,267 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:09:20,269 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 15:09:20,719 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 9, 8), 11.62, 45.74, 0.0, 34.83, 14.51, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:09:20,719 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:09:08
2025-07-01 15:09:20,805 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:09:20,809 [DEBUG][       Thread-608662][   transport.py][1871] : starting thread (client mode): 0x75aa110
2025-07-01 15:09:20,809 [DEBUG][       Thread-608662][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:09:20,827 [DEBUG][       Thread-608662][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:09:20,827 [ INFO][       Thread-608662][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:09:20,830 [DEBUG][       Thread-608662][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:09:20,830 [DEBUG][       Thread-608662][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:09:20,830 [DEBUG][       Thread-608662][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:09:20,830 [DEBUG][       Thread-608662][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:09:20,830 [DEBUG][       Thread-608662][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:09:20,830 [DEBUG][       Thread-608662][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:09:20,830 [DEBUG][       Thread-608662][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:09:20,830 [DEBUG][       Thread-608662][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:09:20,830 [DEBUG][       Thread-608662][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:09:20,830 [DEBUG][       Thread-608662][   transport.py][1871] : client lang: <none>
2025-07-01 15:09:20,830 [DEBUG][       Thread-608662][   transport.py][1871] : server lang: <none>
2025-07-01 15:09:20,830 [DEBUG][       Thread-608662][   transport.py][1871] : kex follows: False
2025-07-01 15:09:20,830 [DEBUG][       Thread-608662][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:09:20,830 [DEBUG][       Thread-608662][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:09:20,830 [DEBUG][       Thread-608662][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:09:20,830 [DEBUG][       Thread-608662][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:09:20,830 [DEBUG][       Thread-608662][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:09:20,830 [DEBUG][       Thread-608662][   transport.py][1871] : Compression: none
2025-07-01 15:09:20,830 [DEBUG][       Thread-608662][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:09:20,850 [DEBUG][       Thread-608662][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:09:20,850 [DEBUG][       Thread-608662][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:09:20,851 [DEBUG][       Thread-608662][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:09:20,851 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:09:20,851 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:09:20,852 [DEBUG][       Thread-608662][   transport.py][1871] : userauth is OK
2025-07-01 15:09:20,877 [ INFO][       Thread-608662][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:09:20,877 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:09:21,556 [DEBUG][       Thread-608662][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:09:21,557 [DEBUG][       Thread-608662][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:09:21,601 [DEBUG][       Thread-608662][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:09:21,601 [DEBUG][       Thread-608662][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:09:21,604 [DEBUG][       Thread-608662][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:09:21,616 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:09:21,617 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:09:21,619 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:09:21,621 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:09:21,627 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:09:21,629 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:09:21,629 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:09:21,630 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:09:21,630 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.547857 -999.00  +14.40  24.51     51   +4.40 1 1 1 1 1   887    0 11.06 42.01 ----- 46.4 24.5 13.9 44.3 16.9 -24.8 16.1 -24.5 16.6 -24.5 17.3 -23.7
2025-07-01 15:09:21,630 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:09:21,630 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:09:21,630 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.547857
2025-07-01 15:09:21,631 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:09:21,631 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:09:21,631 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:09:21,631 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:09:21,631 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:09:21,632 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:09:08', tmtdew=11.62, humidity=45.74, cloud=0.0, wind=34.83, temperature=14.51, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:08:54.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:09:21,633 [DEBUG][       Thread-608662][   transport.py][1871] : EOF in transport thread
2025-07-01 15:09:21,717 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:09:21,728 [DEBUG][       Thread-608665][   transport.py][1871] : starting thread (client mode): 0x8155cc0
2025-07-01 15:09:21,728 [DEBUG][       Thread-608665][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:09:21,747 [DEBUG][       Thread-608665][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:09:21,747 [ INFO][       Thread-608665][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:09:21,754 [DEBUG][       Thread-608665][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:09:21,755 [DEBUG][       Thread-608665][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:09:21,755 [DEBUG][       Thread-608665][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:09:21,755 [DEBUG][       Thread-608665][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:09:21,755 [DEBUG][       Thread-608665][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:09:21,755 [DEBUG][       Thread-608665][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:09:21,755 [DEBUG][       Thread-608665][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:09:21,755 [DEBUG][       Thread-608665][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:09:21,755 [DEBUG][       Thread-608665][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:09:21,755 [DEBUG][       Thread-608665][   transport.py][1871] : client lang: <none>
2025-07-01 15:09:21,755 [DEBUG][       Thread-608665][   transport.py][1871] : server lang: <none>
2025-07-01 15:09:21,755 [DEBUG][       Thread-608665][   transport.py][1871] : kex follows: False
2025-07-01 15:09:21,755 [DEBUG][       Thread-608665][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:09:21,755 [DEBUG][       Thread-608665][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:09:21,755 [DEBUG][       Thread-608665][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:09:21,755 [DEBUG][       Thread-608665][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:09:21,755 [DEBUG][       Thread-608665][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:09:21,756 [DEBUG][       Thread-608665][   transport.py][1871] : Compression: none
2025-07-01 15:09:21,756 [DEBUG][       Thread-608665][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:09:21,814 [DEBUG][       Thread-608665][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:09:21,815 [DEBUG][       Thread-608665][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:09:21,815 [DEBUG][       Thread-608665][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:09:21,816 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:09:21,816 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:09:21,870 [DEBUG][       Thread-608665][   transport.py][1871] : userauth is OK
2025-07-01 15:09:21,871 [DEBUG][       Thread-608665][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:09:21,871 [DEBUG][       Thread-608665][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:09:21,871 [DEBUG][       Thread-608665][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:09:21,871 [DEBUG][       Thread-608665][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:09:21,890 [ INFO][       Thread-608665][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:09:21,890 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:09:21,891 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:09:22,888 [DEBUG][       Thread-608665][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:09:22,888 [DEBUG][       Thread-608665][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:09:22,936 [DEBUG][       Thread-608665][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:09:22,936 [DEBUG][       Thread-608665][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:09:22,946 [DEBUG][       Thread-608665][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:09:22,955 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:09:22,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-07-01 15:09:22,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-07-01 15:09:22,975 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:09:22,975 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:09:22,975 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:09:22,983 [DEBUG][       Thread-608665][   transport.py][1871] : EOF in transport thread
2025-07-01 15:09:23,185 [DEBUG][Thread-608667 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:09:32,219 [DEBUG][Thread-608668 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:09:32,986 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:09:32,986 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:09:32,986 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:09:32,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-07-01 15:09:33,462 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 9, 8), 11.62, 45.74, 0.0, 34.83, 14.51, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:09:33,462 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:09:08
2025-07-01 15:09:33,546 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:09:33,550 [DEBUG][       Thread-608669][   transport.py][1871] : starting thread (client mode): 0x8157c70
2025-07-01 15:09:33,551 [DEBUG][       Thread-608669][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:09:33,571 [DEBUG][       Thread-608669][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:09:33,571 [ INFO][       Thread-608669][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:09:33,574 [DEBUG][       Thread-608669][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:09:33,574 [DEBUG][       Thread-608669][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:09:33,574 [DEBUG][       Thread-608669][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:09:33,574 [DEBUG][       Thread-608669][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:09:33,574 [DEBUG][       Thread-608669][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:09:33,574 [DEBUG][       Thread-608669][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:09:33,574 [DEBUG][       Thread-608669][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:09:33,574 [DEBUG][       Thread-608669][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:09:33,574 [DEBUG][       Thread-608669][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:09:33,574 [DEBUG][       Thread-608669][   transport.py][1871] : client lang: <none>
2025-07-01 15:09:33,574 [DEBUG][       Thread-608669][   transport.py][1871] : server lang: <none>
2025-07-01 15:09:33,574 [DEBUG][       Thread-608669][   transport.py][1871] : kex follows: False
2025-07-01 15:09:33,574 [DEBUG][       Thread-608669][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:09:33,574 [DEBUG][       Thread-608669][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:09:33,574 [DEBUG][       Thread-608669][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:09:33,574 [DEBUG][       Thread-608669][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:09:33,574 [DEBUG][       Thread-608669][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:09:33,574 [DEBUG][       Thread-608669][   transport.py][1871] : Compression: none
2025-07-01 15:09:33,574 [DEBUG][       Thread-608669][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:09:33,588 [DEBUG][       Thread-608669][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:09:33,589 [DEBUG][       Thread-608669][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:09:33,589 [DEBUG][       Thread-608669][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:09:33,589 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:09:33,589 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:09:33,590 [DEBUG][       Thread-608669][   transport.py][1871] : userauth is OK
2025-07-01 15:09:33,614 [ INFO][       Thread-608669][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:09:33,615 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:09:34,324 [DEBUG][       Thread-608669][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:09:34,324 [DEBUG][       Thread-608669][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:09:34,365 [DEBUG][       Thread-608669][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:09:34,365 [DEBUG][       Thread-608669][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:09:34,368 [DEBUG][       Thread-608669][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:09:34,380 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:09:34,381 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:09:34,383 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:09:34,385 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:09:34,390 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:09:34,393 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:09:34,393 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:09:34,394 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:09:34,394 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.547857 -999.00  +14.40  24.51     51   +4.40 1 1 1 1 1   887    0 11.06 42.01 ----- 46.4 24.5 13.9 44.3 16.9 -24.8 16.1 -24.5 16.6 -24.5 17.3 -23.7
2025-07-01 15:09:34,394 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:09:34,394 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:09:34,394 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.547857
2025-07-01 15:09:34,394 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:09:34,395 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:09:34,395 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:09:34,395 [DEBUG][       Thread-608669][   transport.py][1871] : EOF in transport thread
2025-07-01 15:09:34,395 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:09:34,396 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:09:34,396 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:09:08', tmtdew=11.62, humidity=45.74, cloud=0.0, wind=34.83, temperature=14.51, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:08:54.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:09:34,479 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:09:34,493 [DEBUG][       Thread-608672][   transport.py][1871] : starting thread (client mode): 0x83938e0
2025-07-01 15:09:34,493 [DEBUG][       Thread-608672][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:09:34,511 [DEBUG][       Thread-608672][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:09:34,511 [ INFO][       Thread-608672][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:09:34,519 [DEBUG][       Thread-608672][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:09:34,519 [DEBUG][       Thread-608672][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:09:34,519 [DEBUG][       Thread-608672][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:09:34,519 [DEBUG][       Thread-608672][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:09:34,519 [DEBUG][       Thread-608672][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:09:34,519 [DEBUG][       Thread-608672][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:09:34,519 [DEBUG][       Thread-608672][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:09:34,519 [DEBUG][       Thread-608672][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:09:34,520 [DEBUG][       Thread-608672][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:09:34,520 [DEBUG][       Thread-608672][   transport.py][1871] : client lang: <none>
2025-07-01 15:09:34,520 [DEBUG][       Thread-608672][   transport.py][1871] : server lang: <none>
2025-07-01 15:09:34,520 [DEBUG][       Thread-608672][   transport.py][1871] : kex follows: False
2025-07-01 15:09:34,520 [DEBUG][       Thread-608672][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:09:34,520 [DEBUG][       Thread-608672][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:09:34,520 [DEBUG][       Thread-608672][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:09:34,520 [DEBUG][       Thread-608672][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:09:34,520 [DEBUG][       Thread-608672][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:09:34,520 [DEBUG][       Thread-608672][   transport.py][1871] : Compression: none
2025-07-01 15:09:34,520 [DEBUG][       Thread-608672][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:09:34,580 [DEBUG][       Thread-608672][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:09:34,581 [DEBUG][       Thread-608672][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:09:34,581 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:09:34,582 [DEBUG][       Thread-608672][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:09:34,583 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:09:34,638 [DEBUG][       Thread-608672][   transport.py][1871] : userauth is OK
2025-07-01 15:09:34,638 [DEBUG][       Thread-608672][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:09:34,638 [DEBUG][       Thread-608672][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:09:34,639 [DEBUG][       Thread-608672][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:09:34,639 [DEBUG][       Thread-608672][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:09:34,661 [ INFO][       Thread-608672][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:09:34,661 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:09:34,662 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:09:35,723 [DEBUG][       Thread-608672][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:09:35,723 [DEBUG][       Thread-608672][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:09:35,772 [DEBUG][       Thread-608672][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:09:35,772 [DEBUG][       Thread-608672][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:09:35,781 [DEBUG][       Thread-608672][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:09:35,792 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:09:35,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-07-01 15:09:35,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-07-01 15:09:35,813 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:09:35,814 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:09:35,814 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:09:35,822 [DEBUG][       Thread-608672][   transport.py][1871] : EOF in transport thread
2025-07-01 15:09:36,274 [DEBUG][Thread-608674 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:09:41,237 [DEBUG][Thread-608675 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:09:45,815 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:09:45,816 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:09:45,816 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:09:45,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-07-01 15:09:46,293 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 9, 40), 11.61, 45.66, 0.0, 29.94, 14.49, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:09:46,293 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:09:40
2025-07-01 15:09:46,377 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:09:46,381 [DEBUG][       Thread-608676][   transport.py][1871] : starting thread (client mode): 0x75a8520
2025-07-01 15:09:46,381 [DEBUG][       Thread-608676][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:09:46,402 [DEBUG][       Thread-608676][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:09:46,402 [ INFO][       Thread-608676][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:09:46,405 [DEBUG][       Thread-608676][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:09:46,405 [DEBUG][       Thread-608676][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:09:46,405 [DEBUG][       Thread-608676][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:09:46,405 [DEBUG][       Thread-608676][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:09:46,405 [DEBUG][       Thread-608676][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:09:46,405 [DEBUG][       Thread-608676][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:09:46,405 [DEBUG][       Thread-608676][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:09:46,405 [DEBUG][       Thread-608676][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:09:46,405 [DEBUG][       Thread-608676][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:09:46,405 [DEBUG][       Thread-608676][   transport.py][1871] : client lang: <none>
2025-07-01 15:09:46,405 [DEBUG][       Thread-608676][   transport.py][1871] : server lang: <none>
2025-07-01 15:09:46,405 [DEBUG][       Thread-608676][   transport.py][1871] : kex follows: False
2025-07-01 15:09:46,405 [DEBUG][       Thread-608676][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:09:46,405 [DEBUG][       Thread-608676][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:09:46,405 [DEBUG][       Thread-608676][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:09:46,405 [DEBUG][       Thread-608676][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:09:46,405 [DEBUG][       Thread-608676][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:09:46,405 [DEBUG][       Thread-608676][   transport.py][1871] : Compression: none
2025-07-01 15:09:46,405 [DEBUG][       Thread-608676][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:09:46,413 [DEBUG][       Thread-608676][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:09:46,414 [DEBUG][       Thread-608676][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:09:46,414 [DEBUG][       Thread-608676][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:09:46,414 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:09:46,415 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:09:46,416 [DEBUG][       Thread-608676][   transport.py][1871] : userauth is OK
2025-07-01 15:09:46,442 [ INFO][       Thread-608676][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:09:46,442 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:09:47,187 [DEBUG][       Thread-608676][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:09:47,187 [DEBUG][       Thread-608676][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:09:47,228 [DEBUG][       Thread-608676][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:09:47,228 [DEBUG][       Thread-608676][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:09:47,230 [DEBUG][       Thread-608676][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:09:47,239 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:09:47,239 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:09:47,240 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:09:47,241 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:09:47,244 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:09:47,245 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:09:47,245 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:09:47,245 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:09:47,245 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.547857 -999.00  +14.40  24.51     51   +4.40 1 1 1 1 1   887    0 11.06 42.01 ----- 46.4 24.5 13.9 44.3 16.9 -24.8 16.1 -24.5 16.6 -24.5 17.3 -23.7
2025-07-01 15:09:47,245 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:09:47,245 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:09:47,245 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.547857
2025-07-01 15:09:47,246 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:09:47,246 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:09:47,246 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:09:47,246 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:09:47,246 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:09:47,246 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:09:40', tmtdew=11.61, humidity=45.66, cloud=0.0, wind=29.94, temperature=14.49, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:08:54.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:09:47,246 [DEBUG][       Thread-608676][   transport.py][1871] : EOF in transport thread
2025-07-01 15:09:47,318 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:09:47,327 [DEBUG][       Thread-608679][   transport.py][1871] : starting thread (client mode): 0x83c8190
2025-07-01 15:09:47,327 [DEBUG][       Thread-608679][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:09:47,342 [DEBUG][       Thread-608679][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:09:47,342 [ INFO][       Thread-608679][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:09:47,350 [DEBUG][       Thread-608679][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:09:47,350 [DEBUG][       Thread-608679][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:09:47,350 [DEBUG][       Thread-608679][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:09:47,350 [DEBUG][       Thread-608679][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:09:47,350 [DEBUG][       Thread-608679][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:09:47,350 [DEBUG][       Thread-608679][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:09:47,350 [DEBUG][       Thread-608679][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:09:47,350 [DEBUG][       Thread-608679][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:09:47,350 [DEBUG][       Thread-608679][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:09:47,350 [DEBUG][       Thread-608679][   transport.py][1871] : client lang: <none>
2025-07-01 15:09:47,350 [DEBUG][       Thread-608679][   transport.py][1871] : server lang: <none>
2025-07-01 15:09:47,350 [DEBUG][       Thread-608679][   transport.py][1871] : kex follows: False
2025-07-01 15:09:47,350 [DEBUG][       Thread-608679][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:09:47,350 [DEBUG][       Thread-608679][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:09:47,350 [DEBUG][       Thread-608679][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:09:47,350 [DEBUG][       Thread-608679][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:09:47,350 [DEBUG][       Thread-608679][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:09:47,350 [DEBUG][       Thread-608679][   transport.py][1871] : Compression: none
2025-07-01 15:09:47,350 [DEBUG][       Thread-608679][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:09:47,412 [DEBUG][       Thread-608679][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:09:47,412 [DEBUG][       Thread-608679][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:09:47,412 [DEBUG][       Thread-608679][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:09:47,412 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:09:47,412 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:09:47,472 [DEBUG][       Thread-608679][   transport.py][1871] : userauth is OK
2025-07-01 15:09:47,472 [DEBUG][       Thread-608679][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:09:47,472 [DEBUG][       Thread-608679][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:09:47,472 [DEBUG][       Thread-608679][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:09:47,472 [DEBUG][       Thread-608679][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:09:47,487 [ INFO][       Thread-608679][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:09:47,487 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:09:47,487 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:09:48,516 [DEBUG][       Thread-608679][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:09:48,516 [DEBUG][       Thread-608679][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:09:48,563 [DEBUG][       Thread-608679][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:09:48,563 [DEBUG][       Thread-608679][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:09:48,572 [DEBUG][       Thread-608679][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:09:48,580 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:09:48,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-07-01 15:09:48,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-07-01 15:09:48,596 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:09:48,596 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:09:48,596 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:09:48,604 [DEBUG][       Thread-608679][   transport.py][1871] : EOF in transport thread
2025-07-01 15:09:50,254 [DEBUG][Thread-608681 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:09:58,606 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:09:58,606 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:09:58,607 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:09:58,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-07-01 15:09:59,075 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 9, 40), 11.61, 45.66, 0.0, 29.94, 14.49, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:09:59,075 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:09:40
2025-07-01 15:09:59,159 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:09:59,165 [DEBUG][       Thread-608682][   transport.py][1871] : starting thread (client mode): 0x81cb3a0
2025-07-01 15:09:59,165 [DEBUG][       Thread-608682][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:09:59,186 [DEBUG][       Thread-608682][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:09:59,186 [ INFO][       Thread-608682][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:09:59,189 [DEBUG][       Thread-608682][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:09:59,189 [DEBUG][       Thread-608682][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:09:59,189 [DEBUG][       Thread-608682][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:09:59,189 [DEBUG][       Thread-608682][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:09:59,189 [DEBUG][       Thread-608682][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:09:59,189 [DEBUG][       Thread-608682][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:09:59,189 [DEBUG][       Thread-608682][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:09:59,189 [DEBUG][       Thread-608682][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:09:59,189 [DEBUG][       Thread-608682][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:09:59,189 [DEBUG][       Thread-608682][   transport.py][1871] : client lang: <none>
2025-07-01 15:09:59,190 [DEBUG][       Thread-608682][   transport.py][1871] : server lang: <none>
2025-07-01 15:09:59,190 [DEBUG][       Thread-608682][   transport.py][1871] : kex follows: False
2025-07-01 15:09:59,190 [DEBUG][       Thread-608682][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:09:59,190 [DEBUG][       Thread-608682][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:09:59,190 [DEBUG][       Thread-608682][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:09:59,190 [DEBUG][       Thread-608682][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:09:59,190 [DEBUG][       Thread-608682][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:09:59,190 [DEBUG][       Thread-608682][   transport.py][1871] : Compression: none
2025-07-01 15:09:59,190 [DEBUG][       Thread-608682][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:09:59,207 [DEBUG][       Thread-608682][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:09:59,208 [DEBUG][       Thread-608682][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:09:59,208 [DEBUG][       Thread-608682][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:09:59,208 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:09:59,209 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:09:59,210 [DEBUG][       Thread-608682][   transport.py][1871] : userauth is OK
2025-07-01 15:09:59,223 [ INFO][       Thread-608682][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:09:59,224 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:09:59,279 [DEBUG][Thread-608684 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:09:59,863 [DEBUG][       Thread-608682][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:09:59,864 [DEBUG][       Thread-608682][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:09:59,905 [DEBUG][       Thread-608682][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:09:59,905 [DEBUG][       Thread-608682][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:09:59,909 [DEBUG][       Thread-608682][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:09:59,921 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:09:59,921 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:09:59,923 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:09:59,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:09:59,932 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:09:59,934 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:09:59,934 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:09:59,935 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:09:59,935 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.548204 -999.00  +14.20  42.32     50   +4.10 1 1 2 1 1   887    0 11.18 39.22 ----- 40.4 42.3 20.0 51.6 16.7 -25.9 16.0 -25.6 16.4 -24.5 17.1 -25.1
2025-07-01 15:09:59,935 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:09:59,935 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:09:59,935 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.548204
2025-07-01 15:09:59,936 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:09:59,937 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:09:59,937 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:09:59,937 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:09:59,937 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:09:59,937 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:09:40', tmtdew=11.61, humidity=45.66, cloud=0.0, wind=29.94, temperature=14.49, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:09:24.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:09:59,937 [DEBUG][       Thread-608682][   transport.py][1871] : EOF in transport thread
2025-07-01 15:10:00,021 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:10:00,036 [DEBUG][       Thread-608686][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 15:10:00,036 [DEBUG][       Thread-608686][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:10:00,051 [DEBUG][       Thread-608686][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:10:00,052 [ INFO][       Thread-608686][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:10:00,059 [DEBUG][       Thread-608686][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:10:00,059 [DEBUG][       Thread-608686][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:10:00,059 [DEBUG][       Thread-608686][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:10:00,059 [DEBUG][       Thread-608686][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:10:00,059 [DEBUG][       Thread-608686][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:10:00,059 [DEBUG][       Thread-608686][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:10:00,059 [DEBUG][       Thread-608686][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:10:00,059 [DEBUG][       Thread-608686][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:10:00,060 [DEBUG][       Thread-608686][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:10:00,060 [DEBUG][       Thread-608686][   transport.py][1871] : client lang: <none>
2025-07-01 15:10:00,060 [DEBUG][       Thread-608686][   transport.py][1871] : server lang: <none>
2025-07-01 15:10:00,060 [DEBUG][       Thread-608686][   transport.py][1871] : kex follows: False
2025-07-01 15:10:00,060 [DEBUG][       Thread-608686][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:10:00,060 [DEBUG][       Thread-608686][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:10:00,060 [DEBUG][       Thread-608686][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:10:00,060 [DEBUG][       Thread-608686][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:10:00,060 [DEBUG][       Thread-608686][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:10:00,060 [DEBUG][       Thread-608686][   transport.py][1871] : Compression: none
2025-07-01 15:10:00,060 [DEBUG][       Thread-608686][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:10:00,122 [DEBUG][       Thread-608686][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:10:00,122 [DEBUG][       Thread-608686][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:10:00,123 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:10:00,124 [DEBUG][       Thread-608686][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:10:00,124 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:10:00,178 [DEBUG][       Thread-608686][   transport.py][1871] : userauth is OK
2025-07-01 15:10:00,178 [DEBUG][       Thread-608686][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:10:00,178 [DEBUG][       Thread-608686][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:10:00,178 [DEBUG][       Thread-608686][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:10:00,178 [DEBUG][       Thread-608686][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:10:00,198 [ INFO][       Thread-608686][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:10:00,198 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:10:00,198 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:10:01,222 [DEBUG][       Thread-608686][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:10:01,222 [DEBUG][       Thread-608686][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:10:01,272 [DEBUG][       Thread-608686][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:10:01,272 [DEBUG][       Thread-608686][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:10:01,282 [DEBUG][       Thread-608686][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:10:01,291 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:10:01,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-07-01 15:10:01,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-07-01 15:10:01,316 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:10:01,316 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:10:01,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:10:01,325 [DEBUG][       Thread-608686][   transport.py][1871] : EOF in transport thread
2025-07-01 15:10:08,302 [DEBUG][Thread-608688 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:10:11,321 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:10:11,321 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:10:11,321 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:10:11,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-07-01 15:10:11,789 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 9, 40), 11.61, 45.66, 0.0, 29.94, 14.49, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:10:11,789 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:09:40
2025-07-01 15:10:11,873 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:10:11,877 [DEBUG][       Thread-608689][   transport.py][1871] : starting thread (client mode): 0x81c9300
2025-07-01 15:10:11,877 [DEBUG][       Thread-608689][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:10:11,897 [DEBUG][       Thread-608689][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:10:11,897 [ INFO][       Thread-608689][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:10:11,900 [DEBUG][       Thread-608689][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:10:11,901 [DEBUG][       Thread-608689][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:10:11,901 [DEBUG][       Thread-608689][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:10:11,901 [DEBUG][       Thread-608689][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:10:11,901 [DEBUG][       Thread-608689][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:10:11,901 [DEBUG][       Thread-608689][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:10:11,901 [DEBUG][       Thread-608689][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:10:11,901 [DEBUG][       Thread-608689][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:10:11,901 [DEBUG][       Thread-608689][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:10:11,901 [DEBUG][       Thread-608689][   transport.py][1871] : client lang: <none>
2025-07-01 15:10:11,901 [DEBUG][       Thread-608689][   transport.py][1871] : server lang: <none>
2025-07-01 15:10:11,901 [DEBUG][       Thread-608689][   transport.py][1871] : kex follows: False
2025-07-01 15:10:11,901 [DEBUG][       Thread-608689][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:10:11,901 [DEBUG][       Thread-608689][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:10:11,901 [DEBUG][       Thread-608689][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:10:11,901 [DEBUG][       Thread-608689][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:10:11,901 [DEBUG][       Thread-608689][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:10:11,901 [DEBUG][       Thread-608689][   transport.py][1871] : Compression: none
2025-07-01 15:10:11,901 [DEBUG][       Thread-608689][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:10:11,923 [DEBUG][       Thread-608689][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:10:11,924 [DEBUG][       Thread-608689][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:10:11,924 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:10:11,924 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:10:11,925 [DEBUG][       Thread-608689][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:10:11,926 [DEBUG][       Thread-608689][   transport.py][1871] : userauth is OK
2025-07-01 15:10:11,951 [ INFO][       Thread-608689][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:10:11,951 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:10:12,701 [DEBUG][       Thread-608689][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:10:12,701 [DEBUG][       Thread-608689][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:10:12,744 [DEBUG][       Thread-608689][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:10:12,744 [DEBUG][       Thread-608689][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:10:12,747 [DEBUG][       Thread-608689][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:10:12,759 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:10:12,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:10:12,760 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:10:12,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:10:12,766 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:10:12,767 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:10:12,767 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:10:12,767 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:10:12,767 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.548204 -999.00  +14.20  42.32     50   +4.10 1 1 2 1 1   887    0 11.18 39.22 ----- 40.4 42.3 20.0 51.6 16.7 -25.9 16.0 -25.6 16.4 -24.5 17.1 -25.1
2025-07-01 15:10:12,767 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:10:12,767 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:10:12,767 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.548204
2025-07-01 15:10:12,767 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:10:12,768 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:10:12,768 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:10:12,768 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:10:12,768 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:10:12,768 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:09:40', tmtdew=11.61, humidity=45.66, cloud=0.0, wind=29.94, temperature=14.49, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:09:24.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:10:12,768 [DEBUG][       Thread-608689][   transport.py][1871] : EOF in transport thread
2025-07-01 15:10:12,842 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:10:17,328 [DEBUG][Thread-608692 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:10:26,350 [DEBUG][Thread-608693 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:10:35,371 [DEBUG][Thread-608694 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:10:36,303 [DEBUG][Thread-608695 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:10:44,391 [DEBUG][Thread-608696 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:10:53,411 [DEBUG][Thread-608697 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:11:02,431 [DEBUG][Thread-608698 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:11:11,450 [DEBUG][Thread-608699 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:11:20,470 [DEBUG][Thread-608700 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:11:29,495 [DEBUG][Thread-608701 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:11:36,335 [DEBUG][Thread-608702 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:11:38,518 [DEBUG][Thread-608703 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:11:47,535 [DEBUG][Thread-608704 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:11:56,556 [DEBUG][Thread-608705 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:12:05,579 [DEBUG][Thread-608706 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:12:14,602 [DEBUG][Thread-608707 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:12:22,548 [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-07-01 15:12:23,625 [DEBUG][Thread-608708 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:12:32,558 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:12:32,559 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:12:32,559 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:12:32,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-07-01 15:12:32,646 [DEBUG][Thread-608709 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:12:33,066 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 12, 18), 11.44, 45.96, 0.0, 36.26, 14.31, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:12:33,066 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:12:18
2025-07-01 15:12:33,148 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:12:33,154 [DEBUG][       Thread-608710][   transport.py][1871] : starting thread (client mode): 0x81c8af0
2025-07-01 15:12:33,155 [DEBUG][       Thread-608710][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:12:33,175 [DEBUG][       Thread-608710][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:12:33,175 [ INFO][       Thread-608710][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:12:33,178 [DEBUG][       Thread-608710][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:12:33,178 [DEBUG][       Thread-608710][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:12:33,179 [DEBUG][       Thread-608710][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:12:33,179 [DEBUG][       Thread-608710][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:12:33,179 [DEBUG][       Thread-608710][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:12:33,179 [DEBUG][       Thread-608710][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:12:33,179 [DEBUG][       Thread-608710][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:12:33,179 [DEBUG][       Thread-608710][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:12:33,179 [DEBUG][       Thread-608710][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:12:33,179 [DEBUG][       Thread-608710][   transport.py][1871] : client lang: <none>
2025-07-01 15:12:33,179 [DEBUG][       Thread-608710][   transport.py][1871] : server lang: <none>
2025-07-01 15:12:33,179 [DEBUG][       Thread-608710][   transport.py][1871] : kex follows: False
2025-07-01 15:12:33,179 [DEBUG][       Thread-608710][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:12:33,179 [DEBUG][       Thread-608710][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:12:33,179 [DEBUG][       Thread-608710][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:12:33,179 [DEBUG][       Thread-608710][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:12:33,179 [DEBUG][       Thread-608710][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:12:33,179 [DEBUG][       Thread-608710][   transport.py][1871] : Compression: none
2025-07-01 15:12:33,179 [DEBUG][       Thread-608710][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:12:33,198 [DEBUG][       Thread-608710][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:12:33,199 [DEBUG][       Thread-608710][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:12:33,199 [DEBUG][       Thread-608710][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:12:33,199 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:12:33,199 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:12:33,201 [DEBUG][       Thread-608710][   transport.py][1871] : userauth is OK
2025-07-01 15:12:33,214 [ INFO][       Thread-608710][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:12:33,214 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:12:33,859 [DEBUG][       Thread-608710][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:12:33,859 [DEBUG][       Thread-608710][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:12:33,900 [DEBUG][       Thread-608710][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:12:33,901 [DEBUG][       Thread-608710][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:12:33,903 [DEBUG][       Thread-608710][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:12:33,915 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:12:33,915 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:12:33,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:12:33,917 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:12:33,920 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:12:33,921 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:12:33,921 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:12:33,921 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:12:33,921 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.549940 -999.00  +14.10  27.88     51   +4.20 1 1 1 1 1   887    0 10.94 25.89 ----- 37.5 27.9 21.3 53.0 16.5 -24.0 15.8 -24.6 16.1 -23.7 16.7 -22.2
2025-07-01 15:12:33,921 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:12:33,921 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:12:33,921 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.549940
2025-07-01 15:12:33,921 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:12:33,921 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:12:33,921 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:12:33,921 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:12:33,921 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:12:33,921 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:12:18', tmtdew=11.44, humidity=45.96, cloud=0.0, wind=36.26, temperature=14.31, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:11:54.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:12:33,922 [DEBUG][       Thread-608710][   transport.py][1871] : EOF in transport thread
2025-07-01 15:12:33,993 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:12:34,006 [DEBUG][       Thread-608713][   transport.py][1871] : starting thread (client mode): 0x83c8400
2025-07-01 15:12:34,006 [DEBUG][       Thread-608713][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:12:34,020 [DEBUG][       Thread-608713][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:12:34,020 [ INFO][       Thread-608713][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:12:34,027 [DEBUG][       Thread-608713][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:12:34,028 [DEBUG][       Thread-608713][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:12:34,028 [DEBUG][       Thread-608713][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:12:34,028 [DEBUG][       Thread-608713][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:12:34,028 [DEBUG][       Thread-608713][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:12:34,028 [DEBUG][       Thread-608713][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:12:34,028 [DEBUG][       Thread-608713][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:12:34,028 [DEBUG][       Thread-608713][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:12:34,028 [DEBUG][       Thread-608713][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:12:34,028 [DEBUG][       Thread-608713][   transport.py][1871] : client lang: <none>
2025-07-01 15:12:34,028 [DEBUG][       Thread-608713][   transport.py][1871] : server lang: <none>
2025-07-01 15:12:34,028 [DEBUG][       Thread-608713][   transport.py][1871] : kex follows: False
2025-07-01 15:12:34,028 [DEBUG][       Thread-608713][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:12:34,028 [DEBUG][       Thread-608713][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:12:34,028 [DEBUG][       Thread-608713][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:12:34,028 [DEBUG][       Thread-608713][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:12:34,028 [DEBUG][       Thread-608713][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:12:34,028 [DEBUG][       Thread-608713][   transport.py][1871] : Compression: none
2025-07-01 15:12:34,028 [DEBUG][       Thread-608713][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:12:34,084 [DEBUG][       Thread-608713][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:12:34,085 [DEBUG][       Thread-608713][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:12:34,085 [DEBUG][       Thread-608713][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:12:34,086 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:12:34,086 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:12:34,141 [DEBUG][       Thread-608713][   transport.py][1871] : userauth is OK
2025-07-01 15:12:34,141 [DEBUG][       Thread-608713][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:12:34,141 [DEBUG][       Thread-608713][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:12:34,141 [DEBUG][       Thread-608713][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:12:34,141 [DEBUG][       Thread-608713][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:12:34,160 [ INFO][       Thread-608713][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:12:34,161 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:12:34,161 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:12:35,188 [DEBUG][       Thread-608713][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:12:35,188 [DEBUG][       Thread-608713][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:12:35,236 [DEBUG][       Thread-608713][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:12:35,236 [DEBUG][       Thread-608713][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:12:35,245 [DEBUG][       Thread-608713][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:12:35,256 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:12:35,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-07-01 15:12: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-07-01 15:12:35,277 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:12:35,277 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:12:35,278 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:12:35,285 [DEBUG][       Thread-608713][   transport.py][1871] : EOF in transport thread
2025-07-01 15:12:36,365 [DEBUG][Thread-608715 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:12:41,666 [DEBUG][Thread-608716 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:12:45,288 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:12:45,288 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:12:45,288 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:12: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-07-01 15:12:45,787 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 12, 18), 11.44, 45.96, 0.0, 36.26, 14.31, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:12:45,788 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:12:18
2025-07-01 15:12:45,870 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:12:45,874 [DEBUG][       Thread-608717][   transport.py][1871] : starting thread (client mode): 0x81cbc10
2025-07-01 15:12:45,874 [DEBUG][       Thread-608717][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:12:45,894 [DEBUG][       Thread-608717][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:12:45,894 [ INFO][       Thread-608717][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:12:45,897 [DEBUG][       Thread-608717][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:12:45,897 [DEBUG][       Thread-608717][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:12:45,897 [DEBUG][       Thread-608717][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:12:45,897 [DEBUG][       Thread-608717][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:12:45,897 [DEBUG][       Thread-608717][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:12:45,897 [DEBUG][       Thread-608717][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:12:45,897 [DEBUG][       Thread-608717][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:12:45,897 [DEBUG][       Thread-608717][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:12:45,897 [DEBUG][       Thread-608717][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:12:45,898 [DEBUG][       Thread-608717][   transport.py][1871] : client lang: <none>
2025-07-01 15:12:45,898 [DEBUG][       Thread-608717][   transport.py][1871] : server lang: <none>
2025-07-01 15:12:45,898 [DEBUG][       Thread-608717][   transport.py][1871] : kex follows: False
2025-07-01 15:12:45,898 [DEBUG][       Thread-608717][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:12:45,898 [DEBUG][       Thread-608717][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:12:45,898 [DEBUG][       Thread-608717][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:12:45,898 [DEBUG][       Thread-608717][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:12:45,898 [DEBUG][       Thread-608717][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:12:45,898 [DEBUG][       Thread-608717][   transport.py][1871] : Compression: none
2025-07-01 15:12:45,898 [DEBUG][       Thread-608717][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:12:45,907 [DEBUG][       Thread-608717][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:12:45,907 [DEBUG][       Thread-608717][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:12:45,908 [DEBUG][       Thread-608717][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:12:45,908 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:12:45,908 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:12:45,910 [DEBUG][       Thread-608717][   transport.py][1871] : userauth is OK
2025-07-01 15:12:45,922 [ INFO][       Thread-608717][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:12:45,923 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:12:46,583 [DEBUG][       Thread-608717][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:12:46,583 [DEBUG][       Thread-608717][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:12:46,625 [DEBUG][       Thread-608717][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:12:46,625 [DEBUG][       Thread-608717][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:12:46,628 [DEBUG][       Thread-608717][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:12:46,642 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:12:46,643 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:12:46,644 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:12:46,646 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:12:46,652 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:12:46,654 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:12:46,654 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:12:46,655 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:12:46,655 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.550287 -999.00  +14.10  37.25     51   +4.20 1 1 2 1 1   887    0 10.85 23.45 ----- 37.4 37.2 23.7 44.6 16.5 -23.9 15.8 -24.5 16.1 -23.3 16.8 -22.3
2025-07-01 15:12:46,655 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:12:46,655 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:12:46,655 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.550287
2025-07-01 15:12:46,655 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:12:46,656 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:12:46,656 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:12:46,656 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:12:46,656 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:12:46,656 [DEBUG][       Thread-608717][   transport.py][1871] : EOF in transport thread
2025-07-01 15:12:46,657 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:12:18', tmtdew=11.44, humidity=45.96, cloud=0.0, wind=36.26, temperature=14.31, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:12:24.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:12:46,740 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:12:46,750 [DEBUG][       Thread-608720][   transport.py][1871] : starting thread (client mode): 0x75a9690
2025-07-01 15:12:46,750 [DEBUG][       Thread-608720][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:12:46,764 [DEBUG][       Thread-608720][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:12:46,764 [ INFO][       Thread-608720][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:12:46,772 [DEBUG][       Thread-608720][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:12:46,772 [DEBUG][       Thread-608720][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:12:46,772 [DEBUG][       Thread-608720][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:12:46,772 [DEBUG][       Thread-608720][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:12:46,772 [DEBUG][       Thread-608720][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:12:46,772 [DEBUG][       Thread-608720][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:12:46,772 [DEBUG][       Thread-608720][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:12:46,772 [DEBUG][       Thread-608720][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:12:46,772 [DEBUG][       Thread-608720][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:12:46,772 [DEBUG][       Thread-608720][   transport.py][1871] : client lang: <none>
2025-07-01 15:12:46,772 [DEBUG][       Thread-608720][   transport.py][1871] : server lang: <none>
2025-07-01 15:12:46,773 [DEBUG][       Thread-608720][   transport.py][1871] : kex follows: False
2025-07-01 15:12:46,773 [DEBUG][       Thread-608720][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:12:46,773 [DEBUG][       Thread-608720][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:12:46,773 [DEBUG][       Thread-608720][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:12:46,773 [DEBUG][       Thread-608720][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:12:46,773 [DEBUG][       Thread-608720][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:12:46,773 [DEBUG][       Thread-608720][   transport.py][1871] : Compression: none
2025-07-01 15:12:46,773 [DEBUG][       Thread-608720][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:12:46,832 [DEBUG][       Thread-608720][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:12:46,833 [DEBUG][       Thread-608720][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:12:46,833 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:12:46,834 [DEBUG][       Thread-608720][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:12:46,835 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:12:46,889 [DEBUG][       Thread-608720][   transport.py][1871] : userauth is OK
2025-07-01 15:12:46,889 [DEBUG][       Thread-608720][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:12:46,889 [DEBUG][       Thread-608720][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:12:46,889 [DEBUG][       Thread-608720][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:12:46,889 [DEBUG][       Thread-608720][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:12:46,908 [ INFO][       Thread-608720][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:12:46,908 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:12:46,909 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:12:47,919 [DEBUG][       Thread-608720][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:12:47,919 [DEBUG][       Thread-608720][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:12:47,968 [DEBUG][       Thread-608720][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:12:47,968 [DEBUG][       Thread-608720][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:12:47,978 [DEBUG][       Thread-608720][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:12:47,987 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:12:47,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-07-01 15:12:47,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-07-01 15:12:48,005 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:12:48,005 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:12:48,006 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:12:48,014 [DEBUG][       Thread-608720][   transport.py][1871] : EOF in transport thread
2025-07-01 15:12:50,701 [DEBUG][Thread-608722 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:12:58,016 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:12:58,016 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:12:58,016 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:12:58,017 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 15:12:58,542 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 12, 50), 11.47, 46.21, 0.0, 25.35, 14.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:12:58,542 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:12:50
2025-07-01 15:12:58,631 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:12:58,637 [DEBUG][       Thread-608723][   transport.py][1871] : starting thread (client mode): 0x81cab00
2025-07-01 15:12:58,637 [DEBUG][       Thread-608723][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:12:58,658 [DEBUG][       Thread-608723][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:12:58,658 [ INFO][       Thread-608723][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:12:58,661 [DEBUG][       Thread-608723][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:12:58,661 [DEBUG][       Thread-608723][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:12:58,661 [DEBUG][       Thread-608723][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:12:58,661 [DEBUG][       Thread-608723][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:12:58,661 [DEBUG][       Thread-608723][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:12:58,661 [DEBUG][       Thread-608723][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:12:58,661 [DEBUG][       Thread-608723][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:12:58,661 [DEBUG][       Thread-608723][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:12:58,661 [DEBUG][       Thread-608723][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:12:58,661 [DEBUG][       Thread-608723][   transport.py][1871] : client lang: <none>
2025-07-01 15:12:58,661 [DEBUG][       Thread-608723][   transport.py][1871] : server lang: <none>
2025-07-01 15:12:58,661 [DEBUG][       Thread-608723][   transport.py][1871] : kex follows: False
2025-07-01 15:12:58,661 [DEBUG][       Thread-608723][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:12:58,661 [DEBUG][       Thread-608723][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:12:58,661 [DEBUG][       Thread-608723][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:12:58,661 [DEBUG][       Thread-608723][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:12:58,661 [DEBUG][       Thread-608723][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:12:58,661 [DEBUG][       Thread-608723][   transport.py][1871] : Compression: none
2025-07-01 15:12:58,661 [DEBUG][       Thread-608723][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:12:58,678 [DEBUG][       Thread-608723][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:12:58,679 [DEBUG][       Thread-608723][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:12:58,679 [DEBUG][       Thread-608723][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:12:58,679 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:12:58,679 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:12:58,679 [DEBUG][       Thread-608723][   transport.py][1871] : userauth is OK
2025-07-01 15:12:58,704 [ INFO][       Thread-608723][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:12:58,704 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:12:59,362 [DEBUG][       Thread-608723][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:12:59,363 [DEBUG][       Thread-608723][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:12:59,404 [DEBUG][       Thread-608723][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:12:59,404 [DEBUG][       Thread-608723][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:12:59,407 [DEBUG][       Thread-608723][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:12:59,418 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:12:59,418 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:12:59,419 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:12:59,420 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:12:59,422 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:12:59,422 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:12:59,422 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:12:59,423 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:12:59,423 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.550287 -999.00  +14.10  37.25     51   +4.20 1 1 2 1 1   887    0 10.85 23.45 ----- 37.4 37.2 23.7 44.6 16.5 -23.9 15.8 -24.5 16.1 -23.3 16.8 -22.3
2025-07-01 15:12:59,423 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:12:59,423 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:12:59,423 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.550287
2025-07-01 15:12:59,423 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:12:59,423 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:12:59,423 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:12:59,423 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:12:59,423 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:12:59,423 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:12:50', tmtdew=11.47, humidity=46.21, cloud=0.0, wind=25.35, temperature=14.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:12:24.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:12:59,423 [DEBUG][       Thread-608723][   transport.py][1871] : EOF in transport thread
2025-07-01 15:12:59,497 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:12:59,511 [DEBUG][       Thread-608726][   transport.py][1871] : starting thread (client mode): 0x83938e0
2025-07-01 15:12:59,511 [DEBUG][       Thread-608726][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:12:59,526 [DEBUG][       Thread-608726][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:12:59,526 [ INFO][       Thread-608726][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:12:59,534 [DEBUG][       Thread-608726][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:12:59,534 [DEBUG][       Thread-608726][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:12:59,534 [DEBUG][       Thread-608726][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:12:59,534 [DEBUG][       Thread-608726][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:12:59,534 [DEBUG][       Thread-608726][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:12:59,534 [DEBUG][       Thread-608726][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:12:59,534 [DEBUG][       Thread-608726][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:12:59,534 [DEBUG][       Thread-608726][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:12:59,534 [DEBUG][       Thread-608726][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:12:59,534 [DEBUG][       Thread-608726][   transport.py][1871] : client lang: <none>
2025-07-01 15:12:59,534 [DEBUG][       Thread-608726][   transport.py][1871] : server lang: <none>
2025-07-01 15:12:59,534 [DEBUG][       Thread-608726][   transport.py][1871] : kex follows: False
2025-07-01 15:12:59,534 [DEBUG][       Thread-608726][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:12:59,534 [DEBUG][       Thread-608726][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:12:59,534 [DEBUG][       Thread-608726][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:12:59,534 [DEBUG][       Thread-608726][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:12:59,534 [DEBUG][       Thread-608726][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:12:59,534 [DEBUG][       Thread-608726][   transport.py][1871] : Compression: none
2025-07-01 15:12:59,534 [DEBUG][       Thread-608726][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:12:59,598 [DEBUG][       Thread-608726][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:12:59,599 [DEBUG][       Thread-608726][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:12:59,599 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:12:59,599 [DEBUG][       Thread-608726][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:12:59,599 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:12:59,657 [DEBUG][       Thread-608726][   transport.py][1871] : userauth is OK
2025-07-01 15:12:59,657 [DEBUG][       Thread-608726][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:12:59,657 [DEBUG][       Thread-608726][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:12:59,657 [DEBUG][       Thread-608726][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:12:59,657 [DEBUG][       Thread-608726][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:12:59,672 [ INFO][       Thread-608726][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:12:59,672 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:12:59,672 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:12:59,718 [DEBUG][Thread-608728 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:13:00,700 [DEBUG][       Thread-608726][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:13:00,700 [DEBUG][       Thread-608726][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:13:00,751 [DEBUG][       Thread-608726][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:13:00,751 [DEBUG][       Thread-608726][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:13:00,760 [DEBUG][       Thread-608726][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:13:00,774 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:13:00,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-07-01 15:13:00,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-07-01 15:13:00,790 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:13:00,790 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:13:00,790 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:13:00,797 [DEBUG][       Thread-608726][   transport.py][1871] : EOF in transport thread
2025-07-01 15:13:08,743 [DEBUG][Thread-608729 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:13:10,800 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:13:10,800 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:13:10,800 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:13:10,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-07-01 15:13:11,312 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 12, 50), 11.47, 46.21, 0.0, 25.35, 14.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:13:11,312 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:12:50
2025-07-01 15:13:11,395 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:13:11,399 [DEBUG][       Thread-608730][   transport.py][1871] : starting thread (client mode): 0x81c8880
2025-07-01 15:13:11,399 [DEBUG][       Thread-608730][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:13:11,423 [DEBUG][       Thread-608730][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:13:11,423 [ INFO][       Thread-608730][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:13:11,424 [DEBUG][       Thread-608730][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:13:11,424 [DEBUG][       Thread-608730][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:13:11,424 [DEBUG][       Thread-608730][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:13:11,424 [DEBUG][       Thread-608730][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:13:11,424 [DEBUG][       Thread-608730][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:13:11,424 [DEBUG][       Thread-608730][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:13:11,424 [DEBUG][       Thread-608730][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:13:11,424 [DEBUG][       Thread-608730][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:13:11,424 [DEBUG][       Thread-608730][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:13:11,424 [DEBUG][       Thread-608730][   transport.py][1871] : client lang: <none>
2025-07-01 15:13:11,424 [DEBUG][       Thread-608730][   transport.py][1871] : server lang: <none>
2025-07-01 15:13:11,424 [DEBUG][       Thread-608730][   transport.py][1871] : kex follows: False
2025-07-01 15:13:11,425 [DEBUG][       Thread-608730][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:13:11,425 [DEBUG][       Thread-608730][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:13:11,425 [DEBUG][       Thread-608730][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:13:11,425 [DEBUG][       Thread-608730][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:13:11,425 [DEBUG][       Thread-608730][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:13:11,425 [DEBUG][       Thread-608730][   transport.py][1871] : Compression: none
2025-07-01 15:13:11,425 [DEBUG][       Thread-608730][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:13:11,433 [DEBUG][       Thread-608730][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:13:11,434 [DEBUG][       Thread-608730][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:13:11,434 [DEBUG][       Thread-608730][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:13:11,434 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:13:11,435 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:13:11,436 [DEBUG][       Thread-608730][   transport.py][1871] : userauth is OK
2025-07-01 15:13:11,460 [ INFO][       Thread-608730][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:13:11,460 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:13:12,084 [DEBUG][       Thread-608730][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:13:12,084 [DEBUG][       Thread-608730][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:13:12,125 [DEBUG][       Thread-608730][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:13:12,125 [DEBUG][       Thread-608730][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:13:12,128 [DEBUG][       Thread-608730][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:13:12,139 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:13:12,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:13:12,142 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:13:12,144 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:13:12,149 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:13:12,151 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:13:12,151 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:13:12,151 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:13:12,152 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.550635 -999.00  +14.00  33.20     51   +4.10 1 1 2 1 1   887    0 10.71 21.33 ----- 33.6 33.2 15.5 48.3 16.4 -24.8 15.8 -25.2 16.2 -23.9 16.7 -22.7
2025-07-01 15:13:12,152 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:13:12,152 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:13:12,152 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.550635
2025-07-01 15:13:12,152 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:13:12,153 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:13:12,153 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:13:12,153 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:13:12,153 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:13:12,153 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:12:50', tmtdew=11.47, humidity=46.21, cloud=0.0, wind=25.35, temperature=14.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:12:54.864', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:13:12,155 [DEBUG][       Thread-608730][   transport.py][1871] : EOF in transport thread
2025-07-01 15:13:12,236 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:13:12,246 [DEBUG][       Thread-608733][   transport.py][1871] : starting thread (client mode): 0x83c8880
2025-07-01 15:13:12,246 [DEBUG][       Thread-608733][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:13:12,262 [DEBUG][       Thread-608733][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:13:12,262 [ INFO][       Thread-608733][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:13:12,269 [DEBUG][       Thread-608733][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:13:12,269 [DEBUG][       Thread-608733][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:13:12,269 [DEBUG][       Thread-608733][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:13:12,269 [DEBUG][       Thread-608733][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:13:12,269 [DEBUG][       Thread-608733][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:13:12,269 [DEBUG][       Thread-608733][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:13:12,270 [DEBUG][       Thread-608733][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:13:12,270 [DEBUG][       Thread-608733][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:13:12,270 [DEBUG][       Thread-608733][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:13:12,270 [DEBUG][       Thread-608733][   transport.py][1871] : client lang: <none>
2025-07-01 15:13:12,270 [DEBUG][       Thread-608733][   transport.py][1871] : server lang: <none>
2025-07-01 15:13:12,270 [DEBUG][       Thread-608733][   transport.py][1871] : kex follows: False
2025-07-01 15:13:12,270 [DEBUG][       Thread-608733][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:13:12,270 [DEBUG][       Thread-608733][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:13:12,270 [DEBUG][       Thread-608733][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:13:12,270 [DEBUG][       Thread-608733][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:13:12,270 [DEBUG][       Thread-608733][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:13:12,270 [DEBUG][       Thread-608733][   transport.py][1871] : Compression: none
2025-07-01 15:13:12,270 [DEBUG][       Thread-608733][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:13:12,328 [DEBUG][       Thread-608733][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:13:12,329 [DEBUG][       Thread-608733][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:13:12,329 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:13:12,330 [DEBUG][       Thread-608733][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:13:12,331 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:13:12,384 [DEBUG][       Thread-608733][   transport.py][1871] : userauth is OK
2025-07-01 15:13:12,385 [DEBUG][       Thread-608733][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:13:12,385 [DEBUG][       Thread-608733][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:13:12,385 [DEBUG][       Thread-608733][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:13:12,385 [DEBUG][       Thread-608733][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:13:12,404 [ INFO][       Thread-608733][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:13:12,404 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:13:12,405 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:13:13,448 [DEBUG][       Thread-608733][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:13:13,449 [DEBUG][       Thread-608733][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:13:13,500 [DEBUG][       Thread-608733][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:13:13,500 [DEBUG][       Thread-608733][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:13:13,509 [DEBUG][       Thread-608733][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:13:13,518 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:13:13,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')
2025-07-01 15:13:13,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-07-01 15:13:13,536 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:13:13,537 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:13:13,537 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:13:13,545 [DEBUG][       Thread-608733][   transport.py][1871] : EOF in transport thread
2025-07-01 15:13:17,765 [DEBUG][Thread-608735 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:13:23,547 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:13:23,548 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:13:23,548 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:13:23,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-07-01 15:13:24,080 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 12, 50), 11.47, 46.21, 0.0, 25.35, 14.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:13:24,080 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:12:50
2025-07-01 15:13:24,170 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:13:24,175 [DEBUG][       Thread-608736][   transport.py][1871] : starting thread (client mode): 0x75abbe0
2025-07-01 15:13:24,175 [DEBUG][       Thread-608736][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:13:24,196 [DEBUG][       Thread-608736][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:13:24,196 [ INFO][       Thread-608736][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:13:24,200 [DEBUG][       Thread-608736][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:13:24,200 [DEBUG][       Thread-608736][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:13:24,200 [DEBUG][       Thread-608736][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:13:24,200 [DEBUG][       Thread-608736][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:13:24,200 [DEBUG][       Thread-608736][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:13:24,200 [DEBUG][       Thread-608736][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:13:24,200 [DEBUG][       Thread-608736][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:13:24,200 [DEBUG][       Thread-608736][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:13:24,200 [DEBUG][       Thread-608736][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:13:24,200 [DEBUG][       Thread-608736][   transport.py][1871] : client lang: <none>
2025-07-01 15:13:24,200 [DEBUG][       Thread-608736][   transport.py][1871] : server lang: <none>
2025-07-01 15:13:24,200 [DEBUG][       Thread-608736][   transport.py][1871] : kex follows: False
2025-07-01 15:13:24,200 [DEBUG][       Thread-608736][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:13:24,200 [DEBUG][       Thread-608736][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:13:24,200 [DEBUG][       Thread-608736][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:13:24,200 [DEBUG][       Thread-608736][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:13:24,200 [DEBUG][       Thread-608736][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:13:24,200 [DEBUG][       Thread-608736][   transport.py][1871] : Compression: none
2025-07-01 15:13:24,200 [DEBUG][       Thread-608736][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:13:24,215 [DEBUG][       Thread-608736][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:13:24,216 [DEBUG][       Thread-608736][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:13:24,216 [DEBUG][       Thread-608736][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:13:24,216 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:13:24,216 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:13:24,217 [DEBUG][       Thread-608736][   transport.py][1871] : userauth is OK
2025-07-01 15:13:24,241 [ INFO][       Thread-608736][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:13:24,241 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:13:24,902 [DEBUG][       Thread-608736][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:13:24,903 [DEBUG][       Thread-608736][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:13:24,945 [DEBUG][       Thread-608736][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:13:24,945 [DEBUG][       Thread-608736][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:13:24,948 [DEBUG][       Thread-608736][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:13:24,954 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:13:24,955 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:13:24,957 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:13:24,958 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:13:24,964 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:13:24,966 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:13:24,966 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:13:24,967 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:13:24,967 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.550635 -999.00  +14.00  33.20     51   +4.10 1 1 2 1 1   887    0 10.71 21.33 ----- 33.6 33.2 15.5 48.3 16.4 -24.8 15.8 -25.2 16.2 -23.9 16.7 -22.7
2025-07-01 15:13:24,967 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:13:24,967 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:13:24,967 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.550635
2025-07-01 15:13:24,968 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:13:24,968 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:13:24,969 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:13:24,969 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:13:24,969 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:13:24,969 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:12:50', tmtdew=11.47, humidity=46.21, cloud=0.0, wind=25.35, temperature=14.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:12:54.864', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:13:24,970 [DEBUG][       Thread-608736][   transport.py][1871] : EOF in transport thread
2025-07-01 15:13:25,053 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:13:25,065 [DEBUG][       Thread-608739][   transport.py][1871] : starting thread (client mode): 0x83938e0
2025-07-01 15:13:25,065 [DEBUG][       Thread-608739][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:13:25,080 [DEBUG][       Thread-608739][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:13:25,080 [ INFO][       Thread-608739][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:13:25,088 [DEBUG][       Thread-608739][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:13:25,088 [DEBUG][       Thread-608739][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:13:25,088 [DEBUG][       Thread-608739][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:13:25,089 [DEBUG][       Thread-608739][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:13:25,089 [DEBUG][       Thread-608739][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:13:25,089 [DEBUG][       Thread-608739][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:13:25,089 [DEBUG][       Thread-608739][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:13:25,089 [DEBUG][       Thread-608739][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:13:25,089 [DEBUG][       Thread-608739][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:13:25,089 [DEBUG][       Thread-608739][   transport.py][1871] : client lang: <none>
2025-07-01 15:13:25,089 [DEBUG][       Thread-608739][   transport.py][1871] : server lang: <none>
2025-07-01 15:13:25,089 [DEBUG][       Thread-608739][   transport.py][1871] : kex follows: False
2025-07-01 15:13:25,089 [DEBUG][       Thread-608739][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:13:25,089 [DEBUG][       Thread-608739][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:13:25,089 [DEBUG][       Thread-608739][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:13:25,089 [DEBUG][       Thread-608739][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:13:25,089 [DEBUG][       Thread-608739][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:13:25,089 [DEBUG][       Thread-608739][   transport.py][1871] : Compression: none
2025-07-01 15:13:25,089 [DEBUG][       Thread-608739][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:13:25,149 [DEBUG][       Thread-608739][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:13:25,149 [DEBUG][       Thread-608739][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:13:25,150 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:13:25,150 [DEBUG][       Thread-608739][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:13:25,151 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:13:25,205 [DEBUG][       Thread-608739][   transport.py][1871] : userauth is OK
2025-07-01 15:13:25,206 [DEBUG][       Thread-608739][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:13:25,206 [DEBUG][       Thread-608739][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:13:25,206 [DEBUG][       Thread-608739][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:13:25,206 [DEBUG][       Thread-608739][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:13:25,225 [ INFO][       Thread-608739][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:13:25,226 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:13:25,226 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:13:26,258 [DEBUG][       Thread-608739][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:13:26,259 [DEBUG][       Thread-608739][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:13:26,308 [DEBUG][       Thread-608739][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:13:26,308 [DEBUG][       Thread-608739][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:13:26,319 [DEBUG][       Thread-608739][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:13:26,328 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:13:26,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')
2025-07-01 15:13:26,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-07-01 15:13:26,345 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:13:26,345 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:13:26,346 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:13:26,356 [DEBUG][       Thread-608739][   transport.py][1871] : EOF in transport thread
2025-07-01 15:13:26,789 [DEBUG][Thread-608741 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:13:35,809 [DEBUG][Thread-608742 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:13:36,356 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:13:36,356 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:13:36,356 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:13:36,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-07-01 15:13:36,392 [DEBUG][Thread-608743 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:13:36,866 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 13, 22), 11.48, 46.17, 0.0, 30.31, 14.35, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:13:36,866 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:13:22
2025-07-01 15:13:36,955 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:13:36,960 [DEBUG][       Thread-608744][   transport.py][1871] : starting thread (client mode): 0x81545b0
2025-07-01 15:13:36,960 [DEBUG][       Thread-608744][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:13:36,980 [DEBUG][       Thread-608744][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:13:36,980 [ INFO][       Thread-608744][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:13:36,983 [DEBUG][       Thread-608744][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:13:36,983 [DEBUG][       Thread-608744][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:13:36,983 [DEBUG][       Thread-608744][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:13:36,983 [DEBUG][       Thread-608744][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:13:36,983 [DEBUG][       Thread-608744][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:13:36,983 [DEBUG][       Thread-608744][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:13:36,983 [DEBUG][       Thread-608744][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:13:36,983 [DEBUG][       Thread-608744][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:13:36,983 [DEBUG][       Thread-608744][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:13:36,983 [DEBUG][       Thread-608744][   transport.py][1871] : client lang: <none>
2025-07-01 15:13:36,983 [DEBUG][       Thread-608744][   transport.py][1871] : server lang: <none>
2025-07-01 15:13:36,983 [DEBUG][       Thread-608744][   transport.py][1871] : kex follows: False
2025-07-01 15:13:36,983 [DEBUG][       Thread-608744][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:13:36,983 [DEBUG][       Thread-608744][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:13:36,983 [DEBUG][       Thread-608744][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:13:36,983 [DEBUG][       Thread-608744][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:13:36,983 [DEBUG][       Thread-608744][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:13:36,983 [DEBUG][       Thread-608744][   transport.py][1871] : Compression: none
2025-07-01 15:13:36,983 [DEBUG][       Thread-608744][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:13:36,999 [DEBUG][       Thread-608744][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:13:36,999 [DEBUG][       Thread-608744][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:13:36,999 [DEBUG][       Thread-608744][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:13:36,999 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:13:37,000 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:13:37,000 [DEBUG][       Thread-608744][   transport.py][1871] : userauth is OK
2025-07-01 15:13:37,024 [ INFO][       Thread-608744][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:13:37,024 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:13:37,687 [DEBUG][       Thread-608744][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:13:37,687 [DEBUG][       Thread-608744][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:13:37,728 [DEBUG][       Thread-608744][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:13:37,728 [DEBUG][       Thread-608744][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:13:37,731 [DEBUG][       Thread-608744][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:13:37,743 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:13:37,743 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:13:37,744 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:13:37,745 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:13:37,747 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:13:37,748 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:13:37,748 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:13:37,748 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:13:37,748 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.550635 -999.00  +14.00  33.20     51   +4.10 1 1 2 1 1   887    0 10.71 21.33 ----- 33.6 33.2 15.5 48.3 16.4 -24.8 15.8 -25.2 16.2 -23.9 16.7 -22.7
2025-07-01 15:13:37,748 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:13:37,748 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:13:37,748 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.550635
2025-07-01 15:13:37,749 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:13:37,749 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:13:37,749 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:13:37,749 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:13:37,749 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:13:37,749 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:13:22', tmtdew=11.48, humidity=46.17, cloud=0.0, wind=30.31, temperature=14.35, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:12:54.864', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:13:37,749 [DEBUG][       Thread-608744][   transport.py][1871] : EOF in transport thread
2025-07-01 15:13:37,823 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:13:37,833 [DEBUG][       Thread-608747][   transport.py][1871] : starting thread (client mode): 0x8393c40
2025-07-01 15:13:37,833 [DEBUG][       Thread-608747][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:13:37,853 [DEBUG][       Thread-608747][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:13:37,853 [ INFO][       Thread-608747][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:13:37,860 [DEBUG][       Thread-608747][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:13:37,860 [DEBUG][       Thread-608747][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:13:37,860 [DEBUG][       Thread-608747][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:13:37,860 [DEBUG][       Thread-608747][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:13:37,860 [DEBUG][       Thread-608747][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:13:37,860 [DEBUG][       Thread-608747][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:13:37,860 [DEBUG][       Thread-608747][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:13:37,860 [DEBUG][       Thread-608747][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:13:37,860 [DEBUG][       Thread-608747][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:13:37,860 [DEBUG][       Thread-608747][   transport.py][1871] : client lang: <none>
2025-07-01 15:13:37,860 [DEBUG][       Thread-608747][   transport.py][1871] : server lang: <none>
2025-07-01 15:13:37,860 [DEBUG][       Thread-608747][   transport.py][1871] : kex follows: False
2025-07-01 15:13:37,860 [DEBUG][       Thread-608747][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:13:37,860 [DEBUG][       Thread-608747][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:13:37,860 [DEBUG][       Thread-608747][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:13:37,860 [DEBUG][       Thread-608747][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:13:37,860 [DEBUG][       Thread-608747][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:13:37,860 [DEBUG][       Thread-608747][   transport.py][1871] : Compression: none
2025-07-01 15:13:37,860 [DEBUG][       Thread-608747][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:13:37,919 [DEBUG][       Thread-608747][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:13:37,919 [DEBUG][       Thread-608747][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:13:37,919 [DEBUG][       Thread-608747][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:13:37,919 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:13:37,919 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:13:37,975 [DEBUG][       Thread-608747][   transport.py][1871] : userauth is OK
2025-07-01 15:13:37,976 [DEBUG][       Thread-608747][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:13:37,976 [DEBUG][       Thread-608747][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:13:37,976 [DEBUG][       Thread-608747][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:13:37,976 [DEBUG][       Thread-608747][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:13:37,990 [ INFO][       Thread-608747][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:13:37,990 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:13:37,990 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:13:39,001 [DEBUG][       Thread-608747][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:13:39,001 [DEBUG][       Thread-608747][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:13:39,051 [DEBUG][       Thread-608747][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:13:39,051 [DEBUG][       Thread-608747][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:13:39,059 [DEBUG][       Thread-608747][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:13:39,067 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:13:39,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-07-01 15:13:39,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-07-01 15:13:39,085 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:13:39,085 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:13:39,085 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:13:39,092 [DEBUG][       Thread-608747][   transport.py][1871] : EOF in transport thread
2025-07-01 15:13:44,828 [DEBUG][Thread-608749 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:13:49,093 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:13:49,093 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:13:49,094 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:13:49,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-07-01 15:13:49,596 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 13, 22), 11.48, 46.17, 0.0, 30.31, 14.35, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:13:49,596 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:13:22
2025-07-01 15:13:49,679 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:13:49,683 [DEBUG][       Thread-608750][   transport.py][1871] : starting thread (client mode): 0x75a9b40
2025-07-01 15:13:49,683 [DEBUG][       Thread-608750][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:13:49,704 [DEBUG][       Thread-608750][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:13:49,704 [ INFO][       Thread-608750][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:13:49,707 [DEBUG][       Thread-608750][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:13:49,707 [DEBUG][       Thread-608750][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:13:49,707 [DEBUG][       Thread-608750][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:13:49,707 [DEBUG][       Thread-608750][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:13:49,707 [DEBUG][       Thread-608750][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:13:49,707 [DEBUG][       Thread-608750][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:13:49,707 [DEBUG][       Thread-608750][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:13:49,707 [DEBUG][       Thread-608750][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:13:49,707 [DEBUG][       Thread-608750][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:13:49,707 [DEBUG][       Thread-608750][   transport.py][1871] : client lang: <none>
2025-07-01 15:13:49,707 [DEBUG][       Thread-608750][   transport.py][1871] : server lang: <none>
2025-07-01 15:13:49,707 [DEBUG][       Thread-608750][   transport.py][1871] : kex follows: False
2025-07-01 15:13:49,707 [DEBUG][       Thread-608750][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:13:49,707 [DEBUG][       Thread-608750][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:13:49,707 [DEBUG][       Thread-608750][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:13:49,707 [DEBUG][       Thread-608750][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:13:49,707 [DEBUG][       Thread-608750][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:13:49,707 [DEBUG][       Thread-608750][   transport.py][1871] : Compression: none
2025-07-01 15:13:49,707 [DEBUG][       Thread-608750][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:13:49,724 [DEBUG][       Thread-608750][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:13:49,724 [DEBUG][       Thread-608750][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:13:49,725 [DEBUG][       Thread-608750][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:13:49,725 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:13:49,725 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:13:49,727 [DEBUG][       Thread-608750][   transport.py][1871] : userauth is OK
2025-07-01 15:13:49,751 [ INFO][       Thread-608750][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:13:49,752 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:13:50,402 [DEBUG][       Thread-608750][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:13:50,402 [DEBUG][       Thread-608750][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:13:50,445 [DEBUG][       Thread-608750][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:13:50,445 [DEBUG][       Thread-608750][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:13:50,449 [DEBUG][       Thread-608750][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:13:50,459 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:13:50,460 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:13:50,461 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:13:50,463 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:13:50,468 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:13:50,470 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:13:50,470 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:13:50,471 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:13:50,471 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.550982 -999.00  +14.10  34.17     51   +4.20 1 1 2 1 1   887    0 10.43 18.88 ----- 35.2 34.2 27.4 49.3 16.4 -24.4 15.8 -24.8 16.1 -24.1 16.7 -22.8
2025-07-01 15:13:50,471 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:13:50,471 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:13:50,471 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.550982
2025-07-01 15:13:50,472 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:13:50,472 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:13:50,472 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:13:50,472 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:13:50,473 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:13:50,473 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:13:22', tmtdew=11.48, humidity=46.17, cloud=0.0, wind=30.31, temperature=14.35, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:13:24.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:13:50,474 [DEBUG][       Thread-608750][   transport.py][1871] : EOF in transport thread
2025-07-01 15:13:50,556 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:13:50,568 [DEBUG][       Thread-608753][   transport.py][1871] : starting thread (client mode): 0x8154e20
2025-07-01 15:13:50,568 [DEBUG][       Thread-608753][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:13:50,583 [DEBUG][       Thread-608753][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:13:50,583 [ INFO][       Thread-608753][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:13:50,591 [DEBUG][       Thread-608753][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:13:50,591 [DEBUG][       Thread-608753][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:13:50,591 [DEBUG][       Thread-608753][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:13:50,591 [DEBUG][       Thread-608753][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:13:50,591 [DEBUG][       Thread-608753][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:13:50,591 [DEBUG][       Thread-608753][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:13:50,591 [DEBUG][       Thread-608753][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:13:50,591 [DEBUG][       Thread-608753][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:13:50,592 [DEBUG][       Thread-608753][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:13:50,592 [DEBUG][       Thread-608753][   transport.py][1871] : client lang: <none>
2025-07-01 15:13:50,592 [DEBUG][       Thread-608753][   transport.py][1871] : server lang: <none>
2025-07-01 15:13:50,592 [DEBUG][       Thread-608753][   transport.py][1871] : kex follows: False
2025-07-01 15:13:50,592 [DEBUG][       Thread-608753][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:13:50,592 [DEBUG][       Thread-608753][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:13:50,592 [DEBUG][       Thread-608753][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:13:50,592 [DEBUG][       Thread-608753][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:13:50,592 [DEBUG][       Thread-608753][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:13:50,592 [DEBUG][       Thread-608753][   transport.py][1871] : Compression: none
2025-07-01 15:13:50,592 [DEBUG][       Thread-608753][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:13:50,649 [DEBUG][       Thread-608753][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:13:50,649 [DEBUG][       Thread-608753][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:13:50,650 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:13:50,651 [DEBUG][       Thread-608753][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:13:50,651 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:13:50,708 [DEBUG][       Thread-608753][   transport.py][1871] : userauth is OK
2025-07-01 15:13:50,708 [DEBUG][       Thread-608753][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:13:50,708 [DEBUG][       Thread-608753][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:13:50,708 [DEBUG][       Thread-608753][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:13:50,708 [DEBUG][       Thread-608753][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:13:50,727 [ INFO][       Thread-608753][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:13:50,727 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:13:50,728 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:13:51,735 [DEBUG][       Thread-608753][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:13:51,735 [DEBUG][       Thread-608753][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:13:51,787 [DEBUG][       Thread-608753][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:13:51,787 [DEBUG][       Thread-608753][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:13:51,796 [DEBUG][       Thread-608753][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:13:51,803 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:13:51,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-07-01 15:13:51,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-07-01 15:13:51,819 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:13:51,819 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:13:51,820 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:13:51,827 [DEBUG][       Thread-608753][   transport.py][1871] : EOF in transport thread
2025-07-01 15:13:53,871 [DEBUG][Thread-608755 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:14:01,830 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:14:01,830 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:14:01,830 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:14:01,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-07-01 15:14:02,329 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 13, 54), 11.42, 46.27, 0.0, 29.99, 14.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:14:02,329 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:13:54
2025-07-01 15:14:02,411 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:14:02,415 [DEBUG][       Thread-608756][   transport.py][1871] : starting thread (client mode): 0x81563b0
2025-07-01 15:14:02,416 [DEBUG][       Thread-608756][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:14:02,436 [DEBUG][       Thread-608756][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:14:02,437 [ INFO][       Thread-608756][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:14:02,440 [DEBUG][       Thread-608756][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:14:02,440 [DEBUG][       Thread-608756][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:14:02,440 [DEBUG][       Thread-608756][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:14:02,440 [DEBUG][       Thread-608756][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:14:02,440 [DEBUG][       Thread-608756][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:14:02,440 [DEBUG][       Thread-608756][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:14:02,440 [DEBUG][       Thread-608756][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:14:02,440 [DEBUG][       Thread-608756][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:14:02,440 [DEBUG][       Thread-608756][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:14:02,440 [DEBUG][       Thread-608756][   transport.py][1871] : client lang: <none>
2025-07-01 15:14:02,440 [DEBUG][       Thread-608756][   transport.py][1871] : server lang: <none>
2025-07-01 15:14:02,440 [DEBUG][       Thread-608756][   transport.py][1871] : kex follows: False
2025-07-01 15:14:02,440 [DEBUG][       Thread-608756][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:14:02,440 [DEBUG][       Thread-608756][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:14:02,440 [DEBUG][       Thread-608756][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:14:02,440 [DEBUG][       Thread-608756][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:14:02,440 [DEBUG][       Thread-608756][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:14:02,440 [DEBUG][       Thread-608756][   transport.py][1871] : Compression: none
2025-07-01 15:14:02,440 [DEBUG][       Thread-608756][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:14:02,449 [DEBUG][       Thread-608756][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:14:02,449 [DEBUG][       Thread-608756][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:14:02,450 [DEBUG][       Thread-608756][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:14:02,450 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:14:02,450 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:14:02,451 [DEBUG][       Thread-608756][   transport.py][1871] : userauth is OK
2025-07-01 15:14:02,464 [ INFO][       Thread-608756][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:14:02,465 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:14:02,891 [DEBUG][Thread-608758 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:14:03,108 [DEBUG][       Thread-608756][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:14:03,109 [DEBUG][       Thread-608756][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:14:03,153 [DEBUG][       Thread-608756][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:14:03,153 [DEBUG][       Thread-608756][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:14:03,156 [DEBUG][       Thread-608756][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:14:03,168 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:14:03,168 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:14:03,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:14:03,173 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:14:03,178 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:14:03,181 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:14:03,181 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:14:03,181 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:14:03,181 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.550982 -999.00  +14.10  34.17     51   +4.20 1 1 2 1 1   887    0 10.43 18.88 ----- 35.2 34.2 27.4 49.3 16.4 -24.4 15.8 -24.8 16.1 -24.1 16.7 -22.8
2025-07-01 15:14:03,182 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:14:03,182 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:14:03,182 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.550982
2025-07-01 15:14:03,182 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:14:03,183 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:14:03,183 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:14:03,183 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:14:03,183 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:14:03,183 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:13:54', tmtdew=11.42, humidity=46.27, cloud=0.0, wind=29.99, temperature=14.32, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:13:24.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:14:03,183 [DEBUG][       Thread-608756][   transport.py][1871] : EOF in transport thread
2025-07-01 15:14:03,267 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:14:03,277 [DEBUG][       Thread-608760][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 15:14:03,277 [DEBUG][       Thread-608760][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:14:03,297 [DEBUG][       Thread-608760][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:14:03,297 [ INFO][       Thread-608760][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:14:03,307 [DEBUG][       Thread-608760][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:14:03,307 [DEBUG][       Thread-608760][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:14:03,307 [DEBUG][       Thread-608760][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:14:03,307 [DEBUG][       Thread-608760][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:14:03,308 [DEBUG][       Thread-608760][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:14:03,308 [DEBUG][       Thread-608760][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:14:03,308 [DEBUG][       Thread-608760][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:14:03,308 [DEBUG][       Thread-608760][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:14:03,308 [DEBUG][       Thread-608760][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:14:03,308 [DEBUG][       Thread-608760][   transport.py][1871] : client lang: <none>
2025-07-01 15:14:03,308 [DEBUG][       Thread-608760][   transport.py][1871] : server lang: <none>
2025-07-01 15:14:03,308 [DEBUG][       Thread-608760][   transport.py][1871] : kex follows: False
2025-07-01 15:14:03,308 [DEBUG][       Thread-608760][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:14:03,308 [DEBUG][       Thread-608760][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:14:03,308 [DEBUG][       Thread-608760][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:14:03,308 [DEBUG][       Thread-608760][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:14:03,308 [DEBUG][       Thread-608760][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:14:03,308 [DEBUG][       Thread-608760][   transport.py][1871] : Compression: none
2025-07-01 15:14:03,308 [DEBUG][       Thread-608760][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:14:03,367 [DEBUG][       Thread-608760][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:14:03,368 [DEBUG][       Thread-608760][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:14:03,368 [DEBUG][       Thread-608760][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:14:03,369 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:14:03,369 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:14:03,436 [DEBUG][       Thread-608760][   transport.py][1871] : userauth is OK
2025-07-01 15:14:03,436 [DEBUG][       Thread-608760][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:14:03,436 [DEBUG][       Thread-608760][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:14:03,436 [DEBUG][       Thread-608760][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:14:03,437 [DEBUG][       Thread-608760][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:14:03,456 [ INFO][       Thread-608760][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:14:03,457 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:14:03,457 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:14:04,515 [DEBUG][       Thread-608760][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:14:04,516 [DEBUG][       Thread-608760][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:14:04,569 [DEBUG][       Thread-608760][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:14:04,569 [DEBUG][       Thread-608760][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:14:04,580 [DEBUG][       Thread-608760][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:14:04,592 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:14: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-07-01 15:14:04,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-07-01 15:14:04,614 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:14:04,614 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:14:04,614 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:14:04,625 [DEBUG][       Thread-608760][   transport.py][1871] : EOF in transport thread
2025-07-01 15:14:11,912 [DEBUG][Thread-608762 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:14:14,624 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:14:14,624 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:14:14,624 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:14:14,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-07-01 15:14:15,119 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 13, 54), 11.42, 46.27, 0.0, 29.99, 14.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:14:15,119 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:13:54
2025-07-01 15:14:15,210 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:14:15,213 [DEBUG][       Thread-608763][   transport.py][1871] : starting thread (client mode): 0x81c9090
2025-07-01 15:14:15,213 [DEBUG][       Thread-608763][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:14:15,233 [DEBUG][       Thread-608763][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:14:15,233 [ INFO][       Thread-608763][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:14:15,236 [DEBUG][       Thread-608763][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:14:15,236 [DEBUG][       Thread-608763][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:14:15,236 [DEBUG][       Thread-608763][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:14:15,236 [DEBUG][       Thread-608763][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:14:15,236 [DEBUG][       Thread-608763][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:14:15,236 [DEBUG][       Thread-608763][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:14:15,236 [DEBUG][       Thread-608763][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:14:15,236 [DEBUG][       Thread-608763][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:14:15,236 [DEBUG][       Thread-608763][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:14:15,236 [DEBUG][       Thread-608763][   transport.py][1871] : client lang: <none>
2025-07-01 15:14:15,236 [DEBUG][       Thread-608763][   transport.py][1871] : server lang: <none>
2025-07-01 15:14:15,236 [DEBUG][       Thread-608763][   transport.py][1871] : kex follows: False
2025-07-01 15:14:15,236 [DEBUG][       Thread-608763][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:14:15,236 [DEBUG][       Thread-608763][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:14:15,236 [DEBUG][       Thread-608763][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:14:15,236 [DEBUG][       Thread-608763][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:14:15,236 [DEBUG][       Thread-608763][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:14:15,236 [DEBUG][       Thread-608763][   transport.py][1871] : Compression: none
2025-07-01 15:14:15,236 [DEBUG][       Thread-608763][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:14:15,255 [DEBUG][       Thread-608763][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:14:15,255 [DEBUG][       Thread-608763][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:14:15,255 [DEBUG][       Thread-608763][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:14:15,255 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:14:15,255 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:14:15,256 [DEBUG][       Thread-608763][   transport.py][1871] : userauth is OK
2025-07-01 15:14:15,280 [ INFO][       Thread-608763][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:14:15,280 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:14:15,867 [DEBUG][       Thread-608763][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:14:15,867 [DEBUG][       Thread-608763][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:14:15,908 [DEBUG][       Thread-608763][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:14:15,908 [DEBUG][       Thread-608763][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:14:15,910 [DEBUG][       Thread-608763][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:14:15,920 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:14:15,920 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:14:15,921 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:14:15,922 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:14:15,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:14:15,924 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:14:15,924 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:14:15,924 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:14:15,924 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.551329 -999.00  +14.10  38.86     51   +4.10 1 1 2 1 1   887    0 10.39 15.44 ----- 39.1 38.9 13.0 48.6 16.4 -24.0 15.8 -24.5 16.1 -22.9 16.7 -24.3
2025-07-01 15:14:15,924 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:14:15,924 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:14:15,924 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.551329
2025-07-01 15:14:15,925 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:14:15,925 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:14:15,925 [DEBUG][       Thread-608763][   transport.py][1871] : EOF in transport thread
2025-07-01 15:14:15,925 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:14:15,925 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:14:15,925 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:14:15,925 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:13:54', tmtdew=11.42, humidity=46.27, cloud=0.0, wind=29.99, temperature=14.32, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:13:54.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:14:16,000 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:14:16,011 [DEBUG][       Thread-608766][   transport.py][1871] : starting thread (client mode): 0x83c8460
2025-07-01 15:14:16,011 [DEBUG][       Thread-608766][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:14:16,026 [DEBUG][       Thread-608766][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:14:16,026 [ INFO][       Thread-608766][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:14:16,034 [DEBUG][       Thread-608766][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:14:16,034 [DEBUG][       Thread-608766][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:14:16,034 [DEBUG][       Thread-608766][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:14:16,034 [DEBUG][       Thread-608766][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:14:16,034 [DEBUG][       Thread-608766][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:14:16,034 [DEBUG][       Thread-608766][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:14:16,034 [DEBUG][       Thread-608766][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:14:16,034 [DEBUG][       Thread-608766][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:14:16,034 [DEBUG][       Thread-608766][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:14:16,034 [DEBUG][       Thread-608766][   transport.py][1871] : client lang: <none>
2025-07-01 15:14:16,034 [DEBUG][       Thread-608766][   transport.py][1871] : server lang: <none>
2025-07-01 15:14:16,034 [DEBUG][       Thread-608766][   transport.py][1871] : kex follows: False
2025-07-01 15:14:16,034 [DEBUG][       Thread-608766][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:14:16,034 [DEBUG][       Thread-608766][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:14:16,034 [DEBUG][       Thread-608766][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:14:16,034 [DEBUG][       Thread-608766][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:14:16,034 [DEBUG][       Thread-608766][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:14:16,034 [DEBUG][       Thread-608766][   transport.py][1871] : Compression: none
2025-07-01 15:14:16,034 [DEBUG][       Thread-608766][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:14:16,090 [DEBUG][       Thread-608766][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:14:16,090 [DEBUG][       Thread-608766][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:14:16,090 [DEBUG][       Thread-608766][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:14:16,090 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:14:16,090 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:14:16,147 [DEBUG][       Thread-608766][   transport.py][1871] : userauth is OK
2025-07-01 15:14:16,147 [DEBUG][       Thread-608766][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:14:16,147 [DEBUG][       Thread-608766][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:14:16,147 [DEBUG][       Thread-608766][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:14:16,147 [DEBUG][       Thread-608766][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:14:16,161 [ INFO][       Thread-608766][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:14:16,161 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:14:16,162 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:14:17,160 [DEBUG][       Thread-608766][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:14:17,160 [DEBUG][       Thread-608766][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:14:17,211 [DEBUG][       Thread-608766][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:14:17,211 [DEBUG][       Thread-608766][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:14:17,219 [DEBUG][       Thread-608766][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:14:17,227 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:14:17,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-07-01 15:14:17,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-07-01 15:14:17,243 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:14:17,243 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:14:17,243 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:14:17,251 [DEBUG][       Thread-608766][   transport.py][1871] : EOF in transport thread
2025-07-01 15:14:20,945 [DEBUG][Thread-608768 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:14:27,253 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:14:27,253 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:14:27,253 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:14:27,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-07-01 15:14:27,788 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 13, 54), 11.42, 46.27, 0.0, 29.99, 14.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:14:27,788 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:13:54
2025-07-01 15:14:27,877 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:14:27,883 [DEBUG][       Thread-608769][   transport.py][1871] : starting thread (client mode): 0x81c8580
2025-07-01 15:14:27,883 [DEBUG][       Thread-608769][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:14:27,904 [DEBUG][       Thread-608769][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:14:27,904 [ INFO][       Thread-608769][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:14:27,908 [DEBUG][       Thread-608769][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:14:27,908 [DEBUG][       Thread-608769][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:14:27,908 [DEBUG][       Thread-608769][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:14:27,908 [DEBUG][       Thread-608769][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:14:27,908 [DEBUG][       Thread-608769][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:14:27,908 [DEBUG][       Thread-608769][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:14:27,908 [DEBUG][       Thread-608769][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:14:27,908 [DEBUG][       Thread-608769][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:14:27,908 [DEBUG][       Thread-608769][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:14:27,908 [DEBUG][       Thread-608769][   transport.py][1871] : client lang: <none>
2025-07-01 15:14:27,908 [DEBUG][       Thread-608769][   transport.py][1871] : server lang: <none>
2025-07-01 15:14:27,908 [DEBUG][       Thread-608769][   transport.py][1871] : kex follows: False
2025-07-01 15:14:27,908 [DEBUG][       Thread-608769][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:14:27,908 [DEBUG][       Thread-608769][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:14:27,908 [DEBUG][       Thread-608769][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:14:27,908 [DEBUG][       Thread-608769][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:14:27,908 [DEBUG][       Thread-608769][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:14:27,908 [DEBUG][       Thread-608769][   transport.py][1871] : Compression: none
2025-07-01 15:14:27,908 [DEBUG][       Thread-608769][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:14:27,923 [DEBUG][       Thread-608769][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:14:27,923 [DEBUG][       Thread-608769][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:14:27,924 [DEBUG][       Thread-608769][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:14:27,924 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:14:27,924 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:14:27,924 [DEBUG][       Thread-608769][   transport.py][1871] : userauth is OK
2025-07-01 15:14:27,948 [ INFO][       Thread-608769][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:14:27,949 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:14:28,656 [DEBUG][       Thread-608769][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:14:28,656 [DEBUG][       Thread-608769][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:14:28,697 [DEBUG][       Thread-608769][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:14:28,697 [DEBUG][       Thread-608769][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:14:28,701 [DEBUG][       Thread-608769][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:14:28,715 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:14:28,715 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:14:28,717 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:14:28,719 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:14:28,726 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:14:28,728 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:14:28,728 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:14:28,729 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:14:28,729 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.551329 -999.00  +14.10  38.86     51   +4.10 1 1 2 1 1   887    0 10.39 15.44 ----- 39.1 38.9 13.0 48.6 16.4 -24.0 15.8 -24.5 16.1 -22.9 16.7 -24.3
2025-07-01 15:14:28,729 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:14:28,729 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:14:28,729 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.551329
2025-07-01 15:14:28,730 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:14:28,731 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:14:28,731 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:14:28,731 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:14:28,731 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:14:28,731 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:13:54', tmtdew=11.42, humidity=46.27, cloud=0.0, wind=29.99, temperature=14.32, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:13:54.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:14:28,731 [DEBUG][       Thread-608769][   transport.py][1871] : EOF in transport thread
2025-07-01 15:14:28,816 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:14:28,827 [DEBUG][       Thread-608772][   transport.py][1871] : starting thread (client mode): 0x827d540
2025-07-01 15:14:28,827 [DEBUG][       Thread-608772][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:14:28,842 [DEBUG][       Thread-608772][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:14:28,842 [ INFO][       Thread-608772][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:14:28,853 [DEBUG][       Thread-608772][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:14:28,854 [DEBUG][       Thread-608772][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:14:28,854 [DEBUG][       Thread-608772][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:14:28,854 [DEBUG][       Thread-608772][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:14:28,854 [DEBUG][       Thread-608772][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:14:28,854 [DEBUG][       Thread-608772][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:14:28,854 [DEBUG][       Thread-608772][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:14:28,854 [DEBUG][       Thread-608772][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:14:28,854 [DEBUG][       Thread-608772][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:14:28,854 [DEBUG][       Thread-608772][   transport.py][1871] : client lang: <none>
2025-07-01 15:14:28,854 [DEBUG][       Thread-608772][   transport.py][1871] : server lang: <none>
2025-07-01 15:14:28,854 [DEBUG][       Thread-608772][   transport.py][1871] : kex follows: False
2025-07-01 15:14:28,854 [DEBUG][       Thread-608772][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:14:28,854 [DEBUG][       Thread-608772][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:14:28,854 [DEBUG][       Thread-608772][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:14:28,854 [DEBUG][       Thread-608772][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:14:28,854 [DEBUG][       Thread-608772][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:14:28,855 [DEBUG][       Thread-608772][   transport.py][1871] : Compression: none
2025-07-01 15:14:28,855 [DEBUG][       Thread-608772][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:14:28,916 [DEBUG][       Thread-608772][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:14:28,917 [DEBUG][       Thread-608772][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:14:28,917 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:14:28,918 [DEBUG][       Thread-608772][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:14:28,919 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:14:28,972 [DEBUG][       Thread-608772][   transport.py][1871] : userauth is OK
2025-07-01 15:14:28,972 [DEBUG][       Thread-608772][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:14:28,972 [DEBUG][       Thread-608772][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:14:28,972 [DEBUG][       Thread-608772][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:14:28,972 [DEBUG][       Thread-608772][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:14:28,992 [ INFO][       Thread-608772][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:14:28,992 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:14:28,993 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:14:29,969 [DEBUG][Thread-608774 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:14:30,069 [DEBUG][       Thread-608772][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:14:30,070 [DEBUG][       Thread-608772][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:14:30,120 [DEBUG][       Thread-608772][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:14:30,120 [DEBUG][       Thread-608772][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:14:30,130 [DEBUG][       Thread-608772][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:14:30,139 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:14:30,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-07-01 15:14:30,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-07-01 15:14:30,157 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:14:30,158 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:14:30,158 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:14:30,166 [DEBUG][       Thread-608772][   transport.py][1871] : EOF in transport thread
2025-07-01 15:14:36,422 [DEBUG][Thread-608775 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:14:38,992 [DEBUG][Thread-608776 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:14:40,161 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:14:40,161 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:14:40,162 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:14:40,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-07-01 15:14:40,654 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 14, 26), 11.42, 46.28, 0.0, 30.26, 14.37, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:14:40,654 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:14:26
2025-07-01 15:14:40,737 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:14:40,742 [DEBUG][       Thread-608777][   transport.py][1871] : starting thread (client mode): 0x8154400
2025-07-01 15:14:40,742 [DEBUG][       Thread-608777][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:14:40,763 [DEBUG][       Thread-608777][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:14:40,763 [ INFO][       Thread-608777][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:14:40,766 [DEBUG][       Thread-608777][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:14:40,766 [DEBUG][       Thread-608777][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:14:40,766 [DEBUG][       Thread-608777][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:14:40,766 [DEBUG][       Thread-608777][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:14:40,766 [DEBUG][       Thread-608777][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:14:40,766 [DEBUG][       Thread-608777][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:14:40,766 [DEBUG][       Thread-608777][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:14:40,766 [DEBUG][       Thread-608777][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:14:40,766 [DEBUG][       Thread-608777][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:14:40,766 [DEBUG][       Thread-608777][   transport.py][1871] : client lang: <none>
2025-07-01 15:14:40,766 [DEBUG][       Thread-608777][   transport.py][1871] : server lang: <none>
2025-07-01 15:14:40,767 [DEBUG][       Thread-608777][   transport.py][1871] : kex follows: False
2025-07-01 15:14:40,767 [DEBUG][       Thread-608777][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:14:40,767 [DEBUG][       Thread-608777][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:14:40,767 [DEBUG][       Thread-608777][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:14:40,767 [DEBUG][       Thread-608777][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:14:40,767 [DEBUG][       Thread-608777][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:14:40,767 [DEBUG][       Thread-608777][   transport.py][1871] : Compression: none
2025-07-01 15:14:40,767 [DEBUG][       Thread-608777][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:14:40,783 [DEBUG][       Thread-608777][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:14:40,783 [DEBUG][       Thread-608777][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:14:40,784 [DEBUG][       Thread-608777][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:14:40,784 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:14:40,784 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:14:40,785 [DEBUG][       Thread-608777][   transport.py][1871] : userauth is OK
2025-07-01 15:14:40,799 [ INFO][       Thread-608777][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:14:40,799 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:14:41,443 [DEBUG][       Thread-608777][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:14:41,443 [DEBUG][       Thread-608777][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:14:41,484 [DEBUG][       Thread-608777][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:14:41,485 [DEBUG][       Thread-608777][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:14:41,488 [DEBUG][       Thread-608777][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:14:41,499 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:14:41,499 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:14:41,501 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:14:41,502 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:14:41,508 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:14:41,509 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:14:41,510 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:14:41,510 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:14:41,510 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.551329 -999.00  +14.10  38.86     51   +4.10 1 1 2 1 1   887    0 10.39 15.44 ----- 39.1 38.9 13.0 48.6 16.4 -24.0 15.8 -24.5 16.1 -22.9 16.7 -24.3
2025-07-01 15:14:41,510 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:14:41,510 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:14:41,510 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.551329
2025-07-01 15:14:41,511 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:14:41,511 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:14:41,511 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:14:41,511 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:14:41,512 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:14:41,512 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:14:26', tmtdew=11.42, humidity=46.28, cloud=0.0, wind=30.26, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:13:54.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:14:41,513 [DEBUG][       Thread-608777][   transport.py][1871] : EOF in transport thread
2025-07-01 15:14:41,597 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:14:48,015 [DEBUG][Thread-608780 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:14:57,058 [DEBUG][Thread-608781 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:15:06,080 [DEBUG][Thread-608782 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:15:15,102 [DEBUG][Thread-608783 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:15:24,127 [DEBUG][Thread-608784 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:15:33,149 [DEBUG][Thread-608785 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:15:36,451 [DEBUG][Thread-608786 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:15:42,168 [DEBUG][Thread-608787 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:15:51,188 [DEBUG][Thread-608788 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:16:00,212 [DEBUG][Thread-608789 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:16:09,231 [DEBUG][Thread-608790 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:16:18,249 [DEBUG][Thread-608791 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:16:27,274 [DEBUG][Thread-608792 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:16:36,297 [DEBUG][Thread-608793 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:16:36,481 [DEBUG][Thread-608794 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:16:45,318 [DEBUG][Thread-608795 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:16:50,836 [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-07-01 15:16:54,340 [DEBUG][Thread-608796 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:17:00,846 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:17:00,846 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:17:00,847 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:17:00,849 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 15:17:01,366 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 16, 32), 11.6, 45.48, 0.0, 37.72, 14.35, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:17:01,366 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:16:32
2025-07-01 15:17:01,450 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:17:01,454 [DEBUG][       Thread-608797][   transport.py][1871] : starting thread (client mode): 0x81cb8b0
2025-07-01 15:17:01,454 [DEBUG][       Thread-608797][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:17:01,467 [DEBUG][       Thread-608797][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:17:01,467 [ INFO][       Thread-608797][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:17:01,469 [DEBUG][       Thread-608797][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:17:01,469 [DEBUG][       Thread-608797][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:17:01,469 [DEBUG][       Thread-608797][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:17:01,469 [DEBUG][       Thread-608797][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:17:01,469 [DEBUG][       Thread-608797][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:17:01,469 [DEBUG][       Thread-608797][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:17:01,469 [DEBUG][       Thread-608797][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:17:01,469 [DEBUG][       Thread-608797][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:17:01,469 [DEBUG][       Thread-608797][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:17:01,469 [DEBUG][       Thread-608797][   transport.py][1871] : client lang: <none>
2025-07-01 15:17:01,469 [DEBUG][       Thread-608797][   transport.py][1871] : server lang: <none>
2025-07-01 15:17:01,469 [DEBUG][       Thread-608797][   transport.py][1871] : kex follows: False
2025-07-01 15:17:01,469 [DEBUG][       Thread-608797][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:17:01,469 [DEBUG][       Thread-608797][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:17:01,469 [DEBUG][       Thread-608797][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:17:01,469 [DEBUG][       Thread-608797][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:17:01,469 [DEBUG][       Thread-608797][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:17:01,469 [DEBUG][       Thread-608797][   transport.py][1871] : Compression: none
2025-07-01 15:17:01,469 [DEBUG][       Thread-608797][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:17:01,480 [DEBUG][       Thread-608797][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:17:01,480 [DEBUG][       Thread-608797][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:17:01,480 [DEBUG][       Thread-608797][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:17:01,480 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:17:01,480 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:17:01,481 [DEBUG][       Thread-608797][   transport.py][1871] : userauth is OK
2025-07-01 15:17:01,494 [ INFO][       Thread-608797][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:17:01,494 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:17:02,110 [DEBUG][       Thread-608797][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:17:02,110 [DEBUG][       Thread-608797][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:17:02,153 [DEBUG][       Thread-608797][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:17:02,153 [DEBUG][       Thread-608797][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:17:02,156 [DEBUG][       Thread-608797][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:17:02,169 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:17:02,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:17:02,171 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:17:02,173 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:17:02,178 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:17:02,180 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:17:02,180 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:17:02,180 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:17:02,181 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.553412 -999.00  +13.90  40.97     50   +3.80 1 1 2 1 1   887    0 10.28 5.99 ----- 35.8 41.0 27.0 54.5 16.2 -24.1 15.6 -25.5 15.9 -24.0 16.6 -23.4
2025-07-01 15:17:02,181 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:17:02,181 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:17:02,181 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.553412
2025-07-01 15:17:02,181 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:17:02,182 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:17:02,182 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:17:02,182 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:17:02,182 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:17:02,182 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:16:32', tmtdew=11.6, humidity=45.48, cloud=0.0, wind=37.72, temperature=14.35, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:16:54.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:17:02,183 [DEBUG][       Thread-608797][   transport.py][1871] : EOF in transport thread
2025-07-01 15:17:02,266 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:17:02,282 [DEBUG][       Thread-608800][   transport.py][1871] : starting thread (client mode): 0x75a9030
2025-07-01 15:17:02,282 [DEBUG][       Thread-608800][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:17:02,297 [DEBUG][       Thread-608800][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:17:02,297 [ INFO][       Thread-608800][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:17:02,305 [DEBUG][       Thread-608800][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:17:02,305 [DEBUG][       Thread-608800][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:17:02,305 [DEBUG][       Thread-608800][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:17:02,305 [DEBUG][       Thread-608800][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:17:02,305 [DEBUG][       Thread-608800][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:17:02,305 [DEBUG][       Thread-608800][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:17:02,306 [DEBUG][       Thread-608800][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:17:02,306 [DEBUG][       Thread-608800][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:17:02,306 [DEBUG][       Thread-608800][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:17:02,306 [DEBUG][       Thread-608800][   transport.py][1871] : client lang: <none>
2025-07-01 15:17:02,306 [DEBUG][       Thread-608800][   transport.py][1871] : server lang: <none>
2025-07-01 15:17:02,306 [DEBUG][       Thread-608800][   transport.py][1871] : kex follows: False
2025-07-01 15:17:02,306 [DEBUG][       Thread-608800][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:17:02,306 [DEBUG][       Thread-608800][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:17:02,306 [DEBUG][       Thread-608800][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:17:02,306 [DEBUG][       Thread-608800][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:17:02,306 [DEBUG][       Thread-608800][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:17:02,306 [DEBUG][       Thread-608800][   transport.py][1871] : Compression: none
2025-07-01 15:17:02,306 [DEBUG][       Thread-608800][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:17:02,364 [DEBUG][       Thread-608800][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:17:02,365 [DEBUG][       Thread-608800][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:17:02,365 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:17:02,366 [DEBUG][       Thread-608800][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:17:02,367 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:17:02,419 [DEBUG][       Thread-608800][   transport.py][1871] : userauth is OK
2025-07-01 15:17:02,420 [DEBUG][       Thread-608800][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:17:02,420 [DEBUG][       Thread-608800][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:17:02,420 [DEBUG][       Thread-608800][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:17:02,420 [DEBUG][       Thread-608800][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:17:02,439 [ INFO][       Thread-608800][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:17:02,439 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:17:02,440 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:17:03,368 [DEBUG][Thread-608802 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:17:03,464 [DEBUG][       Thread-608800][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:17:03,464 [DEBUG][       Thread-608800][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:17:03,516 [DEBUG][       Thread-608800][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:17:03,516 [DEBUG][       Thread-608800][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:17:03,525 [DEBUG][       Thread-608800][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:17:03,534 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:17:03,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-07-01 15:17:03,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-07-01 15:17:03,554 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:17:03,554 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:17:03,555 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:17:03,565 [DEBUG][       Thread-608800][   transport.py][1871] : EOF in transport thread
2025-07-01 15:17:12,402 [DEBUG][Thread-608803 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:17:13,565 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:17:13,566 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:17:13,566 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:17:13,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-07-01 15:17:14,082 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 17, 4), 11.62, 45.42, 0.0, 33.42, 14.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:17:14,082 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:17:04
2025-07-01 15:17:14,167 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:17:14,171 [DEBUG][       Thread-608804][   transport.py][1871] : starting thread (client mode): 0x75a9690
2025-07-01 15:17:14,171 [DEBUG][       Thread-608804][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:17:14,192 [DEBUG][       Thread-608804][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:17:14,192 [ INFO][       Thread-608804][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:17:14,194 [DEBUG][       Thread-608804][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:17:14,194 [DEBUG][       Thread-608804][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:17:14,194 [DEBUG][       Thread-608804][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:17:14,194 [DEBUG][       Thread-608804][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:17:14,194 [DEBUG][       Thread-608804][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:17:14,194 [DEBUG][       Thread-608804][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:17:14,194 [DEBUG][       Thread-608804][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:17:14,194 [DEBUG][       Thread-608804][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:17:14,194 [DEBUG][       Thread-608804][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:17:14,194 [DEBUG][       Thread-608804][   transport.py][1871] : client lang: <none>
2025-07-01 15:17:14,194 [DEBUG][       Thread-608804][   transport.py][1871] : server lang: <none>
2025-07-01 15:17:14,194 [DEBUG][       Thread-608804][   transport.py][1871] : kex follows: False
2025-07-01 15:17:14,194 [DEBUG][       Thread-608804][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:17:14,194 [DEBUG][       Thread-608804][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:17:14,194 [DEBUG][       Thread-608804][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:17:14,194 [DEBUG][       Thread-608804][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:17:14,194 [DEBUG][       Thread-608804][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:17:14,194 [DEBUG][       Thread-608804][   transport.py][1871] : Compression: none
2025-07-01 15:17:14,194 [DEBUG][       Thread-608804][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:17:14,202 [DEBUG][       Thread-608804][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:17:14,202 [DEBUG][       Thread-608804][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:17:14,203 [DEBUG][       Thread-608804][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:17:14,203 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:17:14,203 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:17:14,204 [DEBUG][       Thread-608804][   transport.py][1871] : userauth is OK
2025-07-01 15:17:14,217 [ INFO][       Thread-608804][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:17:14,217 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:17:14,859 [DEBUG][       Thread-608804][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:17:14,859 [DEBUG][       Thread-608804][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:17:14,901 [DEBUG][       Thread-608804][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:17:14,901 [DEBUG][       Thread-608804][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:17:14,904 [DEBUG][       Thread-608804][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:17:14,917 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:17:14,918 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:17:14,920 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:17:14,922 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:17:14,927 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:17:14,929 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:17:14,929 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:17:14,929 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:17:14,930 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.553412 -999.00  +13.90  40.97     50   +3.80 1 1 2 1 1   887    0 10.28 5.99 ----- 35.8 41.0 27.0 54.5 16.2 -24.1 15.6 -25.5 15.9 -24.0 16.6 -23.4
2025-07-01 15:17:14,930 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:17:14,930 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:17:14,930 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.553412
2025-07-01 15:17:14,930 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:17:14,931 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:17:14,931 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:17:14,931 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:17:14,931 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:17:14,931 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:17:04', tmtdew=11.62, humidity=45.42, cloud=0.0, wind=33.42, temperature=14.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:16:54.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:17:14,931 [DEBUG][       Thread-608804][   transport.py][1871] : EOF in transport thread
2025-07-01 15:17:15,015 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:17:15,024 [DEBUG][       Thread-608807][   transport.py][1871] : starting thread (client mode): 0x8393c40
2025-07-01 15:17:15,024 [DEBUG][       Thread-608807][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:17:15,045 [DEBUG][       Thread-608807][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:17:15,045 [ INFO][       Thread-608807][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:17:15,053 [DEBUG][       Thread-608807][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:17:15,053 [DEBUG][       Thread-608807][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:17:15,053 [DEBUG][       Thread-608807][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:17:15,053 [DEBUG][       Thread-608807][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:17:15,053 [DEBUG][       Thread-608807][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:17:15,053 [DEBUG][       Thread-608807][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:17:15,053 [DEBUG][       Thread-608807][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:17:15,053 [DEBUG][       Thread-608807][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:17:15,053 [DEBUG][       Thread-608807][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:17:15,053 [DEBUG][       Thread-608807][   transport.py][1871] : client lang: <none>
2025-07-01 15:17:15,053 [DEBUG][       Thread-608807][   transport.py][1871] : server lang: <none>
2025-07-01 15:17:15,053 [DEBUG][       Thread-608807][   transport.py][1871] : kex follows: False
2025-07-01 15:17:15,053 [DEBUG][       Thread-608807][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:17:15,054 [DEBUG][       Thread-608807][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:17:15,054 [DEBUG][       Thread-608807][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:17:15,054 [DEBUG][       Thread-608807][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:17:15,054 [DEBUG][       Thread-608807][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:17:15,054 [DEBUG][       Thread-608807][   transport.py][1871] : Compression: none
2025-07-01 15:17:15,054 [DEBUG][       Thread-608807][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:17:15,111 [DEBUG][       Thread-608807][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:17:15,112 [DEBUG][       Thread-608807][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:17:15,113 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:17:15,113 [DEBUG][       Thread-608807][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:17:15,114 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:17:15,167 [DEBUG][       Thread-608807][   transport.py][1871] : userauth is OK
2025-07-01 15:17:15,168 [DEBUG][       Thread-608807][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:17:15,168 [DEBUG][       Thread-608807][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:17:15,168 [DEBUG][       Thread-608807][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:17:15,168 [DEBUG][       Thread-608807][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:17:15,187 [ INFO][       Thread-608807][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:17:15,188 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:17:15,188 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:17:16,251 [DEBUG][       Thread-608807][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:17:16,251 [DEBUG][       Thread-608807][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:17:16,299 [DEBUG][       Thread-608807][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:17:16,300 [DEBUG][       Thread-608807][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:17:16,309 [DEBUG][       Thread-608807][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:17:16,317 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:17:16,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-07-01 15:17:16,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-07-01 15:17:16,336 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:17:16,336 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:17:16,337 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:17:16,345 [DEBUG][       Thread-608807][   transport.py][1871] : EOF in transport thread
2025-07-01 15:17:21,426 [DEBUG][Thread-608809 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:17:26,344 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:17:26,344 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:17:26,344 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:17:26,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-07-01 15:17:26,872 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 17, 4), 11.62, 45.42, 0.0, 33.42, 14.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:17:26,872 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:17:04
2025-07-01 15:17:26,962 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:17:26,966 [DEBUG][       Thread-608810][   transport.py][1871] : starting thread (client mode): 0x8156e30
2025-07-01 15:17:26,966 [DEBUG][       Thread-608810][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:17:26,986 [DEBUG][       Thread-608810][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:17:26,986 [ INFO][       Thread-608810][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:17:26,990 [DEBUG][       Thread-608810][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:17:26,990 [DEBUG][       Thread-608810][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:17:26,990 [DEBUG][       Thread-608810][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:17:26,990 [DEBUG][       Thread-608810][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:17:26,990 [DEBUG][       Thread-608810][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:17:26,990 [DEBUG][       Thread-608810][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:17:26,990 [DEBUG][       Thread-608810][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:17:26,990 [DEBUG][       Thread-608810][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:17:26,990 [DEBUG][       Thread-608810][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:17:26,990 [DEBUG][       Thread-608810][   transport.py][1871] : client lang: <none>
2025-07-01 15:17:26,990 [DEBUG][       Thread-608810][   transport.py][1871] : server lang: <none>
2025-07-01 15:17:26,990 [DEBUG][       Thread-608810][   transport.py][1871] : kex follows: False
2025-07-01 15:17:26,990 [DEBUG][       Thread-608810][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:17:26,990 [DEBUG][       Thread-608810][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:17:26,990 [DEBUG][       Thread-608810][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:17:26,990 [DEBUG][       Thread-608810][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:17:26,990 [DEBUG][       Thread-608810][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:17:26,990 [DEBUG][       Thread-608810][   transport.py][1871] : Compression: none
2025-07-01 15:17:26,990 [DEBUG][       Thread-608810][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:17:27,005 [DEBUG][       Thread-608810][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:17:27,005 [DEBUG][       Thread-608810][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:17:27,005 [DEBUG][       Thread-608810][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:17:27,005 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:17:27,005 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:17:27,006 [DEBUG][       Thread-608810][   transport.py][1871] : userauth is OK
2025-07-01 15:17:27,030 [ INFO][       Thread-608810][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:17:27,030 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:17:27,656 [DEBUG][       Thread-608810][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:17:27,656 [DEBUG][       Thread-608810][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:17:27,700 [DEBUG][       Thread-608810][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:17:27,700 [DEBUG][       Thread-608810][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:17:27,703 [DEBUG][       Thread-608810][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:17:27,716 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:17:27,716 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:17:27,718 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:17:27,719 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:17:27,722 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:17:27,722 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:17:27,722 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:17:27,722 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:17:27,723 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.553412 -999.00  +13.90  40.97     50   +3.80 1 1 2 1 1   887    0 10.28 5.99 ----- 35.8 41.0 27.0 54.5 16.2 -24.1 15.6 -25.5 15.9 -24.0 16.6 -23.4
2025-07-01 15:17:27,723 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:17:27,723 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:17:27,723 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.553412
2025-07-01 15:17:27,723 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:17:27,723 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:17:27,723 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:17:27,723 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:17:27,723 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:17:27,723 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:17:04', tmtdew=11.62, humidity=45.42, cloud=0.0, wind=33.42, temperature=14.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:16:54.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:17:27,724 [DEBUG][       Thread-608810][   transport.py][1871] : EOF in transport thread
2025-07-01 15:17:27,797 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:17:27,809 [DEBUG][       Thread-608813][   transport.py][1871] : starting thread (client mode): 0x75aa650
2025-07-01 15:17:27,809 [DEBUG][       Thread-608813][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:17:27,824 [DEBUG][       Thread-608813][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:17:27,824 [ INFO][       Thread-608813][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:17:27,831 [DEBUG][       Thread-608813][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:17:27,831 [DEBUG][       Thread-608813][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:17:27,831 [DEBUG][       Thread-608813][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:17:27,831 [DEBUG][       Thread-608813][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:17:27,831 [DEBUG][       Thread-608813][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:17:27,831 [DEBUG][       Thread-608813][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:17:27,831 [DEBUG][       Thread-608813][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:17:27,831 [DEBUG][       Thread-608813][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:17:27,831 [DEBUG][       Thread-608813][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:17:27,831 [DEBUG][       Thread-608813][   transport.py][1871] : client lang: <none>
2025-07-01 15:17:27,831 [DEBUG][       Thread-608813][   transport.py][1871] : server lang: <none>
2025-07-01 15:17:27,831 [DEBUG][       Thread-608813][   transport.py][1871] : kex follows: False
2025-07-01 15:17:27,831 [DEBUG][       Thread-608813][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:17:27,831 [DEBUG][       Thread-608813][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:17:27,831 [DEBUG][       Thread-608813][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:17:27,831 [DEBUG][       Thread-608813][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:17:27,831 [DEBUG][       Thread-608813][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:17:27,831 [DEBUG][       Thread-608813][   transport.py][1871] : Compression: none
2025-07-01 15:17:27,832 [DEBUG][       Thread-608813][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:17:27,891 [DEBUG][       Thread-608813][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:17:27,891 [DEBUG][       Thread-608813][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:17:27,891 [DEBUG][       Thread-608813][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:17:27,891 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:17:27,891 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:17:27,948 [DEBUG][       Thread-608813][   transport.py][1871] : userauth is OK
2025-07-01 15:17:27,948 [DEBUG][       Thread-608813][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:17:27,948 [DEBUG][       Thread-608813][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:17:27,948 [DEBUG][       Thread-608813][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:17:27,948 [DEBUG][       Thread-608813][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:17:27,962 [ INFO][       Thread-608813][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:17:27,963 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:17:27,963 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:17:29,023 [DEBUG][       Thread-608813][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:17:29,023 [DEBUG][       Thread-608813][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:17:29,071 [DEBUG][       Thread-608813][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:17:29,071 [DEBUG][       Thread-608813][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:17:29,080 [DEBUG][       Thread-608813][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:17:29,087 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:17:29,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-07-01 15:17:29,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-07-01 15:17:29,103 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:17:29,103 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:17:29,103 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:17:29,111 [DEBUG][       Thread-608813][   transport.py][1871] : EOF in transport thread
2025-07-01 15:17:30,460 [DEBUG][Thread-608815 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:17:36,512 [DEBUG][Thread-608816 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:17:39,114 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:17:39,114 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:17:39,114 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:17:39,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-07-01 15:17:39,481 [DEBUG][Thread-608817 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:17:39,623 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 17, 36), 11.68, 45.42, 0.0, 34.02, 14.31, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:17:39,623 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:17:36
2025-07-01 15:17:39,709 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:17:39,713 [DEBUG][       Thread-608818][   transport.py][1871] : starting thread (client mode): 0x75a9360
2025-07-01 15:17:39,713 [DEBUG][       Thread-608818][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:17:39,732 [DEBUG][       Thread-608818][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:17:39,733 [ INFO][       Thread-608818][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:17:39,736 [DEBUG][       Thread-608818][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:17:39,736 [DEBUG][       Thread-608818][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:17:39,736 [DEBUG][       Thread-608818][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:17:39,736 [DEBUG][       Thread-608818][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:17:39,736 [DEBUG][       Thread-608818][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:17:39,736 [DEBUG][       Thread-608818][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:17:39,736 [DEBUG][       Thread-608818][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:17:39,736 [DEBUG][       Thread-608818][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:17:39,736 [DEBUG][       Thread-608818][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:17:39,736 [DEBUG][       Thread-608818][   transport.py][1871] : client lang: <none>
2025-07-01 15:17:39,736 [DEBUG][       Thread-608818][   transport.py][1871] : server lang: <none>
2025-07-01 15:17:39,736 [DEBUG][       Thread-608818][   transport.py][1871] : kex follows: False
2025-07-01 15:17:39,736 [DEBUG][       Thread-608818][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:17:39,736 [DEBUG][       Thread-608818][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:17:39,736 [DEBUG][       Thread-608818][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:17:39,736 [DEBUG][       Thread-608818][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:17:39,736 [DEBUG][       Thread-608818][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:17:39,736 [DEBUG][       Thread-608818][   transport.py][1871] : Compression: none
2025-07-01 15:17:39,736 [DEBUG][       Thread-608818][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:17:39,753 [DEBUG][       Thread-608818][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:17:39,753 [DEBUG][       Thread-608818][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:17:39,754 [DEBUG][       Thread-608818][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:17:39,754 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:17:39,754 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:17:39,755 [DEBUG][       Thread-608818][   transport.py][1871] : userauth is OK
2025-07-01 15:17:39,780 [ INFO][       Thread-608818][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:17:39,781 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:17:40,358 [DEBUG][       Thread-608818][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:17:40,359 [DEBUG][       Thread-608818][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:17:40,401 [DEBUG][       Thread-608818][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:17:40,401 [DEBUG][       Thread-608818][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:17:40,404 [DEBUG][       Thread-608818][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:17:40,418 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:17:40,419 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:17:40,421 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:17:40,423 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:17:40,428 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:17:40,430 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:17:40,430 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:17:40,431 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:17:40,431 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.553759 -999.00  +13.90  41.59     50   +3.80 1 1 2 1 1   887    0 10.31 4.75 ----- 46.7 41.6 18.6 58.4 16.2 -24.0 15.6 -24.9 16.0 -23.3 16.6 -22.7
2025-07-01 15:17:40,431 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:17:40,431 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:17:40,431 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.553759
2025-07-01 15:17:40,432 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:17:40,432 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:17:40,432 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:17:40,433 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:17:40,433 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:17:40,433 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:17:36', tmtdew=11.68, humidity=45.42, cloud=0.0, wind=34.02, temperature=14.31, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:17:24.778', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:17:40,433 [DEBUG][       Thread-608818][   transport.py][1871] : EOF in transport thread
2025-07-01 15:17:40,516 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:17:40,527 [DEBUG][       Thread-608821][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 15:17:40,527 [DEBUG][       Thread-608821][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:17:40,543 [DEBUG][       Thread-608821][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:17:40,543 [ INFO][       Thread-608821][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:17:40,554 [DEBUG][       Thread-608821][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:17:40,554 [DEBUG][       Thread-608821][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:17:40,554 [DEBUG][       Thread-608821][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:17:40,554 [DEBUG][       Thread-608821][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:17:40,554 [DEBUG][       Thread-608821][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:17:40,554 [DEBUG][       Thread-608821][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:17:40,554 [DEBUG][       Thread-608821][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:17:40,554 [DEBUG][       Thread-608821][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:17:40,554 [DEBUG][       Thread-608821][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:17:40,554 [DEBUG][       Thread-608821][   transport.py][1871] : client lang: <none>
2025-07-01 15:17:40,554 [DEBUG][       Thread-608821][   transport.py][1871] : server lang: <none>
2025-07-01 15:17:40,554 [DEBUG][       Thread-608821][   transport.py][1871] : kex follows: False
2025-07-01 15:17:40,554 [DEBUG][       Thread-608821][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:17:40,554 [DEBUG][       Thread-608821][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:17:40,555 [DEBUG][       Thread-608821][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:17:40,555 [DEBUG][       Thread-608821][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:17:40,555 [DEBUG][       Thread-608821][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:17:40,555 [DEBUG][       Thread-608821][   transport.py][1871] : Compression: none
2025-07-01 15:17:40,555 [DEBUG][       Thread-608821][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:17:40,614 [DEBUG][       Thread-608821][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:17:40,614 [DEBUG][       Thread-608821][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:17:40,615 [DEBUG][       Thread-608821][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:17:40,615 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:17:40,616 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:17:40,674 [DEBUG][       Thread-608821][   transport.py][1871] : userauth is OK
2025-07-01 15:17:40,675 [DEBUG][       Thread-608821][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:17:40,675 [DEBUG][       Thread-608821][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:17:40,675 [DEBUG][       Thread-608821][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:17:40,675 [DEBUG][       Thread-608821][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:17:40,696 [ INFO][       Thread-608821][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:17:40,696 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:17:40,697 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:17:41,678 [DEBUG][       Thread-608821][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:17:41,678 [DEBUG][       Thread-608821][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:17:41,731 [DEBUG][       Thread-608821][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:17:41,731 [DEBUG][       Thread-608821][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:17:41,742 [DEBUG][       Thread-608821][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:17:41,754 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:17:41,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-07-01 15:17:41,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') -> 00000000
2025-07-01 15:17:41,781 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:17:41,781 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:17:41,782 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:17:41,790 [DEBUG][       Thread-608821][   transport.py][1871] : EOF in transport thread
2025-07-01 15:17:48,504 [DEBUG][Thread-608823 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:17:51,792 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:17:51,792 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:17:51,792 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:17:51,795 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 15:17:52,303 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 17, 36), 11.68, 45.42, 0.0, 34.02, 14.31, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:17:52,303 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:17:36
2025-07-01 15:17:52,389 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:17:52,393 [DEBUG][       Thread-608824][   transport.py][1871] : starting thread (client mode): 0x83c8730
2025-07-01 15:17:52,393 [DEBUG][       Thread-608824][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:17:52,415 [DEBUG][       Thread-608824][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:17:52,415 [ INFO][       Thread-608824][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:17:52,419 [DEBUG][       Thread-608824][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:17:52,419 [DEBUG][       Thread-608824][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:17:52,419 [DEBUG][       Thread-608824][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:17:52,419 [DEBUG][       Thread-608824][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:17:52,419 [DEBUG][       Thread-608824][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:17:52,419 [DEBUG][       Thread-608824][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:17:52,419 [DEBUG][       Thread-608824][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:17:52,419 [DEBUG][       Thread-608824][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:17:52,419 [DEBUG][       Thread-608824][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:17:52,419 [DEBUG][       Thread-608824][   transport.py][1871] : client lang: <none>
2025-07-01 15:17:52,419 [DEBUG][       Thread-608824][   transport.py][1871] : server lang: <none>
2025-07-01 15:17:52,419 [DEBUG][       Thread-608824][   transport.py][1871] : kex follows: False
2025-07-01 15:17:52,419 [DEBUG][       Thread-608824][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:17:52,419 [DEBUG][       Thread-608824][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:17:52,419 [DEBUG][       Thread-608824][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:17:52,419 [DEBUG][       Thread-608824][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:17:52,419 [DEBUG][       Thread-608824][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:17:52,419 [DEBUG][       Thread-608824][   transport.py][1871] : Compression: none
2025-07-01 15:17:52,419 [DEBUG][       Thread-608824][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:17:52,436 [DEBUG][       Thread-608824][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:17:52,437 [DEBUG][       Thread-608824][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:17:52,437 [DEBUG][       Thread-608824][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:17:52,437 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:17:52,438 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:17:52,438 [DEBUG][       Thread-608824][   transport.py][1871] : userauth is OK
2025-07-01 15:17:52,451 [ INFO][       Thread-608824][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:17:52,451 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:17:53,090 [DEBUG][       Thread-608824][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:17:53,090 [DEBUG][       Thread-608824][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:17:53,132 [DEBUG][       Thread-608824][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:17:53,133 [DEBUG][       Thread-608824][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:17:53,135 [DEBUG][       Thread-608824][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:17:53,146 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:17:53,147 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:17:53,148 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:17:53,149 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:17:53,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:17:53,155 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:17:53,155 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:17:53,156 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:17:53,156 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.553759 -999.00  +13.90  41.59     50   +3.80 1 1 2 1 1   887    0 10.31 4.75 ----- 46.7 41.6 18.6 58.4 16.2 -24.0 15.6 -24.9 16.0 -23.3 16.6 -22.7
2025-07-01 15:17:53,156 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:17:53,156 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:17:53,156 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.553759
2025-07-01 15:17:53,157 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:17:53,157 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:17:53,157 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:17:53,157 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:17:53,157 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:17:53,158 [DEBUG][       Thread-608824][   transport.py][1871] : EOF in transport thread
2025-07-01 15:17:53,158 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:17:36', tmtdew=11.68, humidity=45.42, cloud=0.0, wind=34.02, temperature=14.31, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:17:24.778', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:17:53,241 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:17:53,252 [DEBUG][       Thread-608827][   transport.py][1871] : starting thread (client mode): 0x75a87f0
2025-07-01 15:17:53,252 [DEBUG][       Thread-608827][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:17:53,267 [DEBUG][       Thread-608827][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:17:53,267 [ INFO][       Thread-608827][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:17:53,274 [DEBUG][       Thread-608827][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:17:53,274 [DEBUG][       Thread-608827][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:17:53,274 [DEBUG][       Thread-608827][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:17:53,274 [DEBUG][       Thread-608827][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:17:53,274 [DEBUG][       Thread-608827][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:17:53,275 [DEBUG][       Thread-608827][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:17:53,275 [DEBUG][       Thread-608827][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:17:53,275 [DEBUG][       Thread-608827][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:17:53,275 [DEBUG][       Thread-608827][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:17:53,275 [DEBUG][       Thread-608827][   transport.py][1871] : client lang: <none>
2025-07-01 15:17:53,275 [DEBUG][       Thread-608827][   transport.py][1871] : server lang: <none>
2025-07-01 15:17:53,275 [DEBUG][       Thread-608827][   transport.py][1871] : kex follows: False
2025-07-01 15:17:53,275 [DEBUG][       Thread-608827][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:17:53,275 [DEBUG][       Thread-608827][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:17:53,275 [DEBUG][       Thread-608827][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:17:53,276 [DEBUG][       Thread-608827][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:17:53,276 [DEBUG][       Thread-608827][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:17:53,276 [DEBUG][       Thread-608827][   transport.py][1871] : Compression: none
2025-07-01 15:17:53,276 [DEBUG][       Thread-608827][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:17:53,331 [DEBUG][       Thread-608827][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:17:53,331 [DEBUG][       Thread-608827][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:17:53,332 [DEBUG][       Thread-608827][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:17:53,332 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:17:53,333 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:17:53,387 [DEBUG][       Thread-608827][   transport.py][1871] : userauth is OK
2025-07-01 15:17:53,387 [DEBUG][       Thread-608827][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:17:53,387 [DEBUG][       Thread-608827][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:17:53,387 [DEBUG][       Thread-608827][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:17:53,387 [DEBUG][       Thread-608827][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:17:53,408 [ INFO][       Thread-608827][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:17:53,408 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:17:53,408 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:17:54,437 [DEBUG][       Thread-608827][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:17:54,437 [DEBUG][       Thread-608827][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:17:54,492 [DEBUG][       Thread-608827][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:17:54,492 [DEBUG][       Thread-608827][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:17:54,500 [DEBUG][       Thread-608827][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:17:54,508 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:17:54,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')
2025-07-01 15:17:54,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-07-01 15:17:54,524 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:17:54,524 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:17:54,524 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:17:54,532 [DEBUG][       Thread-608827][   transport.py][1871] : EOF in transport thread
2025-07-01 15:17:57,547 [DEBUG][Thread-608829 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:18:04,532 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:18:04,532 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:18:04,532 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:18:04,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-07-01 15:18:05,054 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 17, 36), 11.68, 45.42, 0.0, 34.02, 14.31, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:18:05,054 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:17:36
2025-07-01 15:18:05,144 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:18:05,148 [DEBUG][       Thread-608830][   transport.py][1871] : starting thread (client mode): 0x81c8df0
2025-07-01 15:18:05,148 [DEBUG][       Thread-608830][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:18:05,169 [DEBUG][       Thread-608830][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:18:05,169 [ INFO][       Thread-608830][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:18:05,172 [DEBUG][       Thread-608830][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:18:05,172 [DEBUG][       Thread-608830][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:18:05,172 [DEBUG][       Thread-608830][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:18:05,172 [DEBUG][       Thread-608830][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:18:05,172 [DEBUG][       Thread-608830][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:18:05,172 [DEBUG][       Thread-608830][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:18:05,172 [DEBUG][       Thread-608830][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:18:05,172 [DEBUG][       Thread-608830][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:18:05,172 [DEBUG][       Thread-608830][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:18:05,172 [DEBUG][       Thread-608830][   transport.py][1871] : client lang: <none>
2025-07-01 15:18:05,172 [DEBUG][       Thread-608830][   transport.py][1871] : server lang: <none>
2025-07-01 15:18:05,172 [DEBUG][       Thread-608830][   transport.py][1871] : kex follows: False
2025-07-01 15:18:05,172 [DEBUG][       Thread-608830][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:18:05,172 [DEBUG][       Thread-608830][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:18:05,172 [DEBUG][       Thread-608830][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:18:05,172 [DEBUG][       Thread-608830][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:18:05,172 [DEBUG][       Thread-608830][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:18:05,172 [DEBUG][       Thread-608830][   transport.py][1871] : Compression: none
2025-07-01 15:18:05,172 [DEBUG][       Thread-608830][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:18:05,187 [DEBUG][       Thread-608830][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:18:05,187 [DEBUG][       Thread-608830][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:18:05,187 [DEBUG][       Thread-608830][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:18:05,187 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:18:05,188 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:18:05,188 [DEBUG][       Thread-608830][   transport.py][1871] : userauth is OK
2025-07-01 15:18:05,200 [ INFO][       Thread-608830][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:18:05,201 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:18:05,824 [DEBUG][       Thread-608830][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:18:05,824 [DEBUG][       Thread-608830][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:18:05,868 [DEBUG][       Thread-608830][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:18:05,868 [DEBUG][       Thread-608830][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:18:05,875 [DEBUG][       Thread-608830][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:18:05,882 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:18:05,882 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:18:05,883 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:18:05,884 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:18:05,887 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:18:05,888 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:18:05,888 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:18:05,888 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:18:05,888 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.553759 -999.00  +13.90  41.59     50   +3.80 1 1 2 1 1   887    0 10.31 4.75 ----- 46.7 41.6 18.6 58.4 16.2 -24.0 15.6 -24.9 16.0 -23.3 16.6 -22.7
2025-07-01 15:18:05,888 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:18:05,888 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:18:05,888 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.553759
2025-07-01 15:18:05,888 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:18:05,888 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:18:05,888 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:18:05,888 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:18:05,888 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:18:05,888 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:17:36', tmtdew=11.68, humidity=45.42, cloud=0.0, wind=34.02, temperature=14.31, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:17:24.778', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:18:05,889 [DEBUG][       Thread-608830][   transport.py][1871] : EOF in transport thread
2025-07-01 15:18:05,963 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:18:05,972 [DEBUG][       Thread-608833][   transport.py][1871] : starting thread (client mode): 0x8393c40
2025-07-01 15:18:05,972 [DEBUG][       Thread-608833][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:18:05,988 [DEBUG][       Thread-608833][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:18:05,988 [ INFO][       Thread-608833][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:18:05,995 [DEBUG][       Thread-608833][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:18:05,995 [DEBUG][       Thread-608833][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:18:05,995 [DEBUG][       Thread-608833][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:18:05,995 [DEBUG][       Thread-608833][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:18:05,995 [DEBUG][       Thread-608833][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:18:05,995 [DEBUG][       Thread-608833][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:18:05,995 [DEBUG][       Thread-608833][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:18:05,995 [DEBUG][       Thread-608833][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:18:05,995 [DEBUG][       Thread-608833][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:18:05,995 [DEBUG][       Thread-608833][   transport.py][1871] : client lang: <none>
2025-07-01 15:18:05,995 [DEBUG][       Thread-608833][   transport.py][1871] : server lang: <none>
2025-07-01 15:18:05,996 [DEBUG][       Thread-608833][   transport.py][1871] : kex follows: False
2025-07-01 15:18:05,996 [DEBUG][       Thread-608833][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:18:05,996 [DEBUG][       Thread-608833][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:18:05,996 [DEBUG][       Thread-608833][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:18:05,996 [DEBUG][       Thread-608833][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:18:05,996 [DEBUG][       Thread-608833][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:18:05,996 [DEBUG][       Thread-608833][   transport.py][1871] : Compression: none
2025-07-01 15:18:05,996 [DEBUG][       Thread-608833][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:18:06,054 [DEBUG][       Thread-608833][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:18:06,054 [DEBUG][       Thread-608833][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:18:06,054 [DEBUG][       Thread-608833][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:18:06,054 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:18:06,054 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:18:06,111 [DEBUG][       Thread-608833][   transport.py][1871] : userauth is OK
2025-07-01 15:18:06,111 [DEBUG][       Thread-608833][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:18:06,111 [DEBUG][       Thread-608833][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:18:06,111 [DEBUG][       Thread-608833][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:18:06,111 [DEBUG][       Thread-608833][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:18:06,125 [ INFO][       Thread-608833][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:18:06,126 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:18:06,126 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:18:06,565 [DEBUG][Thread-608835 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:18:07,202 [DEBUG][       Thread-608833][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:18:07,202 [DEBUG][       Thread-608833][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:18:07,252 [DEBUG][       Thread-608833][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:18:07,252 [DEBUG][       Thread-608833][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:18:07,261 [DEBUG][       Thread-608833][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:18:07,270 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:18:07,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-07-01 15:18:07,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-07-01 15:18:07,288 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:18:07,288 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:18:07,288 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:18:07,296 [DEBUG][       Thread-608833][   transport.py][1871] : EOF in transport thread
2025-07-01 15:18:15,586 [DEBUG][Thread-608836 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:18:17,299 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:18:17,299 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:18:17,308 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:18:17,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-07-01 15:18:17,819 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 18, 8), 11.64, 45.54, 0.0, 33.96, 14.3, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:18:17,819 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:18:08
2025-07-01 15:18:17,905 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:18:17,909 [DEBUG][       Thread-608837][   transport.py][1871] : starting thread (client mode): 0x81ca950
2025-07-01 15:18:17,909 [DEBUG][       Thread-608837][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:18:17,928 [DEBUG][       Thread-608837][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:18:17,928 [ INFO][       Thread-608837][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:18:17,932 [DEBUG][       Thread-608837][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:18:17,932 [DEBUG][       Thread-608837][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:18:17,932 [DEBUG][       Thread-608837][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:18:17,932 [DEBUG][       Thread-608837][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:18:17,932 [DEBUG][       Thread-608837][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:18:17,932 [DEBUG][       Thread-608837][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:18:17,932 [DEBUG][       Thread-608837][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:18:17,932 [DEBUG][       Thread-608837][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:18:17,932 [DEBUG][       Thread-608837][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:18:17,932 [DEBUG][       Thread-608837][   transport.py][1871] : client lang: <none>
2025-07-01 15:18:17,932 [DEBUG][       Thread-608837][   transport.py][1871] : server lang: <none>
2025-07-01 15:18:17,932 [DEBUG][       Thread-608837][   transport.py][1871] : kex follows: False
2025-07-01 15:18:17,932 [DEBUG][       Thread-608837][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:18:17,932 [DEBUG][       Thread-608837][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:18:17,932 [DEBUG][       Thread-608837][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:18:17,932 [DEBUG][       Thread-608837][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:18:17,932 [DEBUG][       Thread-608837][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:18:17,932 [DEBUG][       Thread-608837][   transport.py][1871] : Compression: none
2025-07-01 15:18:17,932 [DEBUG][       Thread-608837][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:18:17,949 [DEBUG][       Thread-608837][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:18:17,950 [DEBUG][       Thread-608837][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:18:17,950 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:18:17,951 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:18:17,951 [DEBUG][       Thread-608837][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:18:17,951 [DEBUG][       Thread-608837][   transport.py][1871] : userauth is OK
2025-07-01 15:18:17,964 [ INFO][       Thread-608837][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:18:17,965 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:18:18,605 [DEBUG][       Thread-608837][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:18:18,605 [DEBUG][       Thread-608837][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:18:18,649 [DEBUG][       Thread-608837][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:18:18,649 [DEBUG][       Thread-608837][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:18:18,652 [DEBUG][       Thread-608837][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:18:18,665 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:18:18,666 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:18:18,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:18:18,670 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:18:18,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:18:18,677 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:18:18,677 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:18:18,678 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:18:18,678 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.554107 -999.00  +14.00  36.80     50   +3.90 1 1 2 1 1   887    0 10.04 3.33 ----- 38.6 36.8 28.2 51.0 16.3 -23.7 15.6 -25.1 15.9 -24.3 16.5 -22.2
2025-07-01 15:18:18,678 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:18:18,678 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:18:18,678 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.554107
2025-07-01 15:18:18,679 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:18:18,679 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:18:18,679 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:18:18,679 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:18:18,679 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:18:18,679 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:18:08', tmtdew=11.64, humidity=45.54, cloud=0.0, wind=33.96, temperature=14.3, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:17:54.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:18:18,680 [DEBUG][       Thread-608837][   transport.py][1871] : EOF in transport thread
2025-07-01 15:18:18,764 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:18:18,775 [DEBUG][       Thread-608840][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 15:18:18,775 [DEBUG][       Thread-608840][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:18:18,790 [DEBUG][       Thread-608840][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:18:18,791 [ INFO][       Thread-608840][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:18:18,804 [DEBUG][       Thread-608840][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:18:18,804 [DEBUG][       Thread-608840][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:18:18,804 [DEBUG][       Thread-608840][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:18:18,804 [DEBUG][       Thread-608840][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:18:18,804 [DEBUG][       Thread-608840][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:18:18,804 [DEBUG][       Thread-608840][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:18:18,804 [DEBUG][       Thread-608840][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:18:18,804 [DEBUG][       Thread-608840][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:18:18,805 [DEBUG][       Thread-608840][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:18:18,805 [DEBUG][       Thread-608840][   transport.py][1871] : client lang: <none>
2025-07-01 15:18:18,805 [DEBUG][       Thread-608840][   transport.py][1871] : server lang: <none>
2025-07-01 15:18:18,805 [DEBUG][       Thread-608840][   transport.py][1871] : kex follows: False
2025-07-01 15:18:18,805 [DEBUG][       Thread-608840][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:18:18,805 [DEBUG][       Thread-608840][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:18:18,805 [DEBUG][       Thread-608840][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:18:18,805 [DEBUG][       Thread-608840][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:18:18,805 [DEBUG][       Thread-608840][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:18:18,805 [DEBUG][       Thread-608840][   transport.py][1871] : Compression: none
2025-07-01 15:18:18,805 [DEBUG][       Thread-608840][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:18:18,855 [DEBUG][       Thread-608840][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:18:18,856 [DEBUG][       Thread-608840][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:18:18,857 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:18:18,857 [DEBUG][       Thread-608840][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:18:18,858 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:18:18,911 [DEBUG][       Thread-608840][   transport.py][1871] : userauth is OK
2025-07-01 15:18:18,911 [DEBUG][       Thread-608840][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:18:18,911 [DEBUG][       Thread-608840][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:18:18,911 [DEBUG][       Thread-608840][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:18:18,911 [DEBUG][       Thread-608840][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:18:18,930 [ INFO][       Thread-608840][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:18:18,931 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:18:18,931 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:18:19,986 [DEBUG][       Thread-608840][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:18:19,986 [DEBUG][       Thread-608840][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:18:20,036 [DEBUG][       Thread-608840][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:18:20,036 [DEBUG][       Thread-608840][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:18:20,049 [DEBUG][       Thread-608840][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:18:20,058 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:18:20,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-07-01 15:18:20,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-07-01 15:18:20,076 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:18:20,077 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:18:20,077 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:18:20,085 [DEBUG][       Thread-608840][   transport.py][1871] : EOF in transport thread
2025-07-01 15:18:24,611 [DEBUG][Thread-608842 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:18:30,080 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:18:30,080 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:18:30,080 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:18:30,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-07-01 15:18:30,597 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 18, 8), 11.64, 45.54, 0.0, 33.96, 14.3, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:18:30,597 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:18:08
2025-07-01 15:18:30,684 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:18:30,688 [DEBUG][       Thread-608843][   transport.py][1871] : starting thread (client mode): 0x81ca680
2025-07-01 15:18:30,688 [DEBUG][       Thread-608843][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:18:30,709 [DEBUG][       Thread-608843][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:18:30,709 [ INFO][       Thread-608843][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:18:30,712 [DEBUG][       Thread-608843][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:18:30,712 [DEBUG][       Thread-608843][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:18:30,712 [DEBUG][       Thread-608843][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:18:30,712 [DEBUG][       Thread-608843][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:18:30,712 [DEBUG][       Thread-608843][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:18:30,712 [DEBUG][       Thread-608843][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:18:30,712 [DEBUG][       Thread-608843][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:18:30,712 [DEBUG][       Thread-608843][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:18:30,712 [DEBUG][       Thread-608843][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:18:30,712 [DEBUG][       Thread-608843][   transport.py][1871] : client lang: <none>
2025-07-01 15:18:30,712 [DEBUG][       Thread-608843][   transport.py][1871] : server lang: <none>
2025-07-01 15:18:30,712 [DEBUG][       Thread-608843][   transport.py][1871] : kex follows: False
2025-07-01 15:18:30,712 [DEBUG][       Thread-608843][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:18:30,712 [DEBUG][       Thread-608843][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:18:30,713 [DEBUG][       Thread-608843][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:18:30,713 [DEBUG][       Thread-608843][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:18:30,713 [DEBUG][       Thread-608843][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:18:30,713 [DEBUG][       Thread-608843][   transport.py][1871] : Compression: none
2025-07-01 15:18:30,713 [DEBUG][       Thread-608843][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:18:30,730 [DEBUG][       Thread-608843][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:18:30,730 [DEBUG][       Thread-608843][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:18:30,731 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:18:30,731 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:18:30,732 [DEBUG][       Thread-608843][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:18:30,732 [DEBUG][       Thread-608843][   transport.py][1871] : userauth is OK
2025-07-01 15:18:30,757 [ INFO][       Thread-608843][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:18:30,758 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:18:31,429 [DEBUG][       Thread-608843][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:18:31,429 [DEBUG][       Thread-608843][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:18:31,474 [DEBUG][       Thread-608843][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:18:31,474 [DEBUG][       Thread-608843][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:18:31,478 [DEBUG][       Thread-608843][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:18:31,490 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:18:31,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:18:31,492 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:18:31,494 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:18:31,500 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:18:31,502 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:18:31,502 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:18:31,503 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:18:31,503 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.554107 -999.00  +14.00  36.80     50   +3.90 1 1 2 1 1   887    0 10.04 3.33 ----- 38.6 36.8 28.2 51.0 16.3 -23.7 15.6 -25.1 15.9 -24.3 16.5 -22.2
2025-07-01 15:18:31,503 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:18:31,503 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:18:31,503 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.554107
2025-07-01 15:18:31,504 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:18:31,505 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:18:31,505 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:18:31,505 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:18:31,505 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:18:31,505 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:18:08', tmtdew=11.64, humidity=45.54, cloud=0.0, wind=33.96, temperature=14.3, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:17:54.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:18:31,506 [DEBUG][       Thread-608843][   transport.py][1871] : EOF in transport thread
2025-07-01 15:18:31,593 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:18:31,605 [DEBUG][       Thread-608846][   transport.py][1871] : starting thread (client mode): 0x75a8640
2025-07-01 15:18:31,605 [DEBUG][       Thread-608846][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:18:31,620 [DEBUG][       Thread-608846][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:18:31,620 [ INFO][       Thread-608846][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:18:31,630 [DEBUG][       Thread-608846][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:18:31,631 [DEBUG][       Thread-608846][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:18:31,631 [DEBUG][       Thread-608846][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:18:31,631 [DEBUG][       Thread-608846][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:18:31,631 [DEBUG][       Thread-608846][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:18:31,631 [DEBUG][       Thread-608846][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:18:31,631 [DEBUG][       Thread-608846][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:18:31,631 [DEBUG][       Thread-608846][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:18:31,631 [DEBUG][       Thread-608846][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:18:31,631 [DEBUG][       Thread-608846][   transport.py][1871] : client lang: <none>
2025-07-01 15:18:31,631 [DEBUG][       Thread-608846][   transport.py][1871] : server lang: <none>
2025-07-01 15:18:31,631 [DEBUG][       Thread-608846][   transport.py][1871] : kex follows: False
2025-07-01 15:18:31,631 [DEBUG][       Thread-608846][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:18:31,631 [DEBUG][       Thread-608846][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:18:31,631 [DEBUG][       Thread-608846][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:18:31,631 [DEBUG][       Thread-608846][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:18:31,632 [DEBUG][       Thread-608846][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:18:31,632 [DEBUG][       Thread-608846][   transport.py][1871] : Compression: none
2025-07-01 15:18:31,632 [DEBUG][       Thread-608846][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:18:31,687 [DEBUG][       Thread-608846][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:18:31,688 [DEBUG][       Thread-608846][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:18:31,688 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:18:31,689 [DEBUG][       Thread-608846][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:18:31,690 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:18:31,743 [DEBUG][       Thread-608846][   transport.py][1871] : userauth is OK
2025-07-01 15:18:31,744 [DEBUG][       Thread-608846][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:18:31,744 [DEBUG][       Thread-608846][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:18:31,744 [DEBUG][       Thread-608846][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:18:31,744 [DEBUG][       Thread-608846][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:18:31,763 [ INFO][       Thread-608846][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:18:31,763 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:18:31,764 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:18:32,800 [DEBUG][       Thread-608846][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:18:32,800 [DEBUG][       Thread-608846][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:18:32,848 [DEBUG][       Thread-608846][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:18:32,848 [DEBUG][       Thread-608846][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:18:32,860 [DEBUG][       Thread-608846][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:18:32,868 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:18:32,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-07-01 15:18:32,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') -> 00000000
2025-07-01 15:18:32,893 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:18:32,893 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:18:32,893 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:18:32,901 [DEBUG][       Thread-608846][   transport.py][1871] : EOF in transport thread
2025-07-01 15:18:33,644 [DEBUG][Thread-608848 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:18:36,542 [DEBUG][Thread-608849 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:18:42,663 [DEBUG][Thread-608850 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:18:42,900 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:18:42,900 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:18:42,900 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:18:42,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-07-01 15:18:43,425 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 18, 40), 11.63, 45.56, 0.0, 29.01, 14.29, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:18:43,425 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:18:40
2025-07-01 15:18:43,519 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:18:43,523 [DEBUG][       Thread-608851][   transport.py][1871] : starting thread (client mode): 0x75a9d20
2025-07-01 15:18:43,523 [DEBUG][       Thread-608851][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:18:43,543 [DEBUG][       Thread-608851][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:18:43,543 [ INFO][       Thread-608851][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:18:43,546 [DEBUG][       Thread-608851][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:18:43,546 [DEBUG][       Thread-608851][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:18:43,546 [DEBUG][       Thread-608851][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:18:43,546 [DEBUG][       Thread-608851][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:18:43,546 [DEBUG][       Thread-608851][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:18:43,546 [DEBUG][       Thread-608851][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:18:43,546 [DEBUG][       Thread-608851][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:18:43,546 [DEBUG][       Thread-608851][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:18:43,546 [DEBUG][       Thread-608851][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:18:43,546 [DEBUG][       Thread-608851][   transport.py][1871] : client lang: <none>
2025-07-01 15:18:43,546 [DEBUG][       Thread-608851][   transport.py][1871] : server lang: <none>
2025-07-01 15:18:43,546 [DEBUG][       Thread-608851][   transport.py][1871] : kex follows: False
2025-07-01 15:18:43,546 [DEBUG][       Thread-608851][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:18:43,546 [DEBUG][       Thread-608851][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:18:43,546 [DEBUG][       Thread-608851][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:18:43,546 [DEBUG][       Thread-608851][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:18:43,546 [DEBUG][       Thread-608851][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:18:43,546 [DEBUG][       Thread-608851][   transport.py][1871] : Compression: none
2025-07-01 15:18:43,546 [DEBUG][       Thread-608851][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:18:43,561 [DEBUG][       Thread-608851][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:18:43,561 [DEBUG][       Thread-608851][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:18:43,561 [DEBUG][       Thread-608851][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:18:43,561 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:18:43,561 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:18:43,562 [DEBUG][       Thread-608851][   transport.py][1871] : userauth is OK
2025-07-01 15:18:43,574 [ INFO][       Thread-608851][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:18:43,574 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:18:44,221 [DEBUG][       Thread-608851][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:18:44,221 [DEBUG][       Thread-608851][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:18:44,264 [DEBUG][       Thread-608851][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:18:44,264 [DEBUG][       Thread-608851][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:18:44,267 [DEBUG][       Thread-608851][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:18:44,280 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:18:44,280 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:18:44,281 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:18:44,282 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:18:44,284 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:18:44,285 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:18:44,285 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:18:44,286 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:18:44,286 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.554454 -999.00  +14.10  29.61     50   +4.10 1 1 1 1 1   887    0 9.81 2.24 ----- 32.8 29.6 23.0 43.9 16.3 -23.4 15.6 -24.8 16.0 -22.7 16.6 -22.3
2025-07-01 15:18:44,286 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:18:44,286 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:18:44,286 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.554454
2025-07-01 15:18:44,286 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:18:44,286 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:18:44,286 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:18:44,286 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:18:44,286 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:18:44,286 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:18:40', tmtdew=11.63, humidity=45.56, cloud=0.0, wind=29.01, temperature=14.29, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:18:24.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:18:44,286 [DEBUG][       Thread-608851][   transport.py][1871] : EOF in transport thread
2025-07-01 15:18:44,361 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:18:44,370 [DEBUG][       Thread-608854][   transport.py][1871] : starting thread (client mode): 0x8154940
2025-07-01 15:18:44,370 [DEBUG][       Thread-608854][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:18:44,387 [DEBUG][       Thread-608854][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:18:44,387 [ INFO][       Thread-608854][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:18:44,397 [DEBUG][       Thread-608854][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:18:44,397 [DEBUG][       Thread-608854][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:18:44,397 [DEBUG][       Thread-608854][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:18:44,397 [DEBUG][       Thread-608854][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:18:44,397 [DEBUG][       Thread-608854][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:18:44,397 [DEBUG][       Thread-608854][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:18:44,397 [DEBUG][       Thread-608854][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:18:44,397 [DEBUG][       Thread-608854][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:18:44,397 [DEBUG][       Thread-608854][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:18:44,397 [DEBUG][       Thread-608854][   transport.py][1871] : client lang: <none>
2025-07-01 15:18:44,397 [DEBUG][       Thread-608854][   transport.py][1871] : server lang: <none>
2025-07-01 15:18:44,397 [DEBUG][       Thread-608854][   transport.py][1871] : kex follows: False
2025-07-01 15:18:44,397 [DEBUG][       Thread-608854][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:18:44,397 [DEBUG][       Thread-608854][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:18:44,397 [DEBUG][       Thread-608854][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:18:44,397 [DEBUG][       Thread-608854][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:18:44,397 [DEBUG][       Thread-608854][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:18:44,397 [DEBUG][       Thread-608854][   transport.py][1871] : Compression: none
2025-07-01 15:18:44,397 [DEBUG][       Thread-608854][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:18:44,454 [DEBUG][       Thread-608854][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:18:44,454 [DEBUG][       Thread-608854][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:18:44,454 [DEBUG][       Thread-608854][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:18:44,454 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:18:44,454 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:18:44,511 [DEBUG][       Thread-608854][   transport.py][1871] : userauth is OK
2025-07-01 15:18:44,511 [DEBUG][       Thread-608854][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:18:44,511 [DEBUG][       Thread-608854][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:18:44,511 [DEBUG][       Thread-608854][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:18:44,511 [DEBUG][       Thread-608854][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:18:44,525 [ INFO][       Thread-608854][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:18:44,525 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:18:44,525 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:18:45,561 [DEBUG][       Thread-608854][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:18:45,561 [DEBUG][       Thread-608854][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:18:45,611 [DEBUG][       Thread-608854][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:18:45,611 [DEBUG][       Thread-608854][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:18:45,620 [DEBUG][       Thread-608854][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:18:45,632 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:18:45,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-07-01 15:18: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') -> 00000000
2025-07-01 15:18:45,649 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:18:45,649 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:18:45,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:18:45,659 [DEBUG][       Thread-608854][   transport.py][1871] : EOF in transport thread
2025-07-01 15:18:51,685 [DEBUG][Thread-608856 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:18:55,652 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:18:55,652 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:18:55,652 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:18:55,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-07-01 15:18:56,150 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 18, 40), 11.63, 45.56, 0.0, 29.01, 14.29, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:18:56,150 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:18:40
2025-07-01 15:18:56,232 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:18:56,237 [DEBUG][       Thread-608857][   transport.py][1871] : starting thread (client mode): 0x8156260
2025-07-01 15:18:56,237 [DEBUG][       Thread-608857][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:18:56,257 [DEBUG][       Thread-608857][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:18:56,257 [ INFO][       Thread-608857][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:18:56,260 [DEBUG][       Thread-608857][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:18:56,260 [DEBUG][       Thread-608857][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:18:56,260 [DEBUG][       Thread-608857][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:18:56,260 [DEBUG][       Thread-608857][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:18:56,260 [DEBUG][       Thread-608857][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:18:56,260 [DEBUG][       Thread-608857][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:18:56,261 [DEBUG][       Thread-608857][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:18:56,261 [DEBUG][       Thread-608857][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:18:56,261 [DEBUG][       Thread-608857][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:18:56,261 [DEBUG][       Thread-608857][   transport.py][1871] : client lang: <none>
2025-07-01 15:18:56,261 [DEBUG][       Thread-608857][   transport.py][1871] : server lang: <none>
2025-07-01 15:18:56,261 [DEBUG][       Thread-608857][   transport.py][1871] : kex follows: False
2025-07-01 15:18:56,261 [DEBUG][       Thread-608857][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:18:56,261 [DEBUG][       Thread-608857][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:18:56,261 [DEBUG][       Thread-608857][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:18:56,261 [DEBUG][       Thread-608857][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:18:56,261 [DEBUG][       Thread-608857][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:18:56,261 [DEBUG][       Thread-608857][   transport.py][1871] : Compression: none
2025-07-01 15:18:56,261 [DEBUG][       Thread-608857][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:18:56,269 [DEBUG][       Thread-608857][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:18:56,269 [DEBUG][       Thread-608857][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:18:56,269 [DEBUG][       Thread-608857][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:18:56,270 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:18:56,270 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:18:56,271 [DEBUG][       Thread-608857][   transport.py][1871] : userauth is OK
2025-07-01 15:18:56,283 [ INFO][       Thread-608857][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:18:56,284 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:18:56,946 [DEBUG][       Thread-608857][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:18:56,946 [DEBUG][       Thread-608857][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:18:56,989 [DEBUG][       Thread-608857][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:18:56,989 [DEBUG][       Thread-608857][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:18:56,993 [DEBUG][       Thread-608857][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:18:57,004 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:18:57,005 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:18:57,007 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:18:57,009 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:18:57,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:18:57,017 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:18:57,017 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:18:57,018 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:18:57,018 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.554454 -999.00  +14.10  29.61     50   +4.10 1 1 1 1 1   887    0 9.81 2.24 ----- 32.8 29.6 23.0 43.9 16.3 -23.4 15.6 -24.8 16.0 -22.7 16.6 -22.3
2025-07-01 15:18:57,018 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:18:57,018 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:18:57,018 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.554454
2025-07-01 15:18:57,018 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:18:57,019 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:18:57,019 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:18:57,019 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:18:57,019 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:18:57,019 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:18:40', tmtdew=11.63, humidity=45.56, cloud=0.0, wind=29.01, temperature=14.29, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:18:24.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:18:57,020 [DEBUG][       Thread-608857][   transport.py][1871] : EOF in transport thread
2025-07-01 15:18:57,105 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:18:57,117 [DEBUG][       Thread-608860][   transport.py][1871] : starting thread (client mode): 0x75a89a0
2025-07-01 15:18:57,117 [DEBUG][       Thread-608860][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:18:57,132 [DEBUG][       Thread-608860][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:18:57,132 [ INFO][       Thread-608860][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:18:57,139 [DEBUG][       Thread-608860][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:18:57,139 [DEBUG][       Thread-608860][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:18:57,139 [DEBUG][       Thread-608860][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:18:57,139 [DEBUG][       Thread-608860][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:18:57,139 [DEBUG][       Thread-608860][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:18:57,139 [DEBUG][       Thread-608860][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:18:57,139 [DEBUG][       Thread-608860][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:18:57,139 [DEBUG][       Thread-608860][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:18:57,139 [DEBUG][       Thread-608860][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:18:57,140 [DEBUG][       Thread-608860][   transport.py][1871] : client lang: <none>
2025-07-01 15:18:57,140 [DEBUG][       Thread-608860][   transport.py][1871] : server lang: <none>
2025-07-01 15:18:57,140 [DEBUG][       Thread-608860][   transport.py][1871] : kex follows: False
2025-07-01 15:18:57,140 [DEBUG][       Thread-608860][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:18:57,140 [DEBUG][       Thread-608860][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:18:57,140 [DEBUG][       Thread-608860][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:18:57,140 [DEBUG][       Thread-608860][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:18:57,140 [DEBUG][       Thread-608860][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:18:57,140 [DEBUG][       Thread-608860][   transport.py][1871] : Compression: none
2025-07-01 15:18:57,140 [DEBUG][       Thread-608860][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:18:57,203 [DEBUG][       Thread-608860][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:18:57,204 [DEBUG][       Thread-608860][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:18:57,204 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:18:57,205 [DEBUG][       Thread-608860][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:18:57,206 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:18:57,262 [DEBUG][       Thread-608860][   transport.py][1871] : userauth is OK
2025-07-01 15:18:57,263 [DEBUG][       Thread-608860][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:18:57,263 [DEBUG][       Thread-608860][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:18:57,263 [DEBUG][       Thread-608860][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:18:57,263 [DEBUG][       Thread-608860][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:18:57,281 [ INFO][       Thread-608860][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:18:57,282 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:18:57,282 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:18:58,292 [DEBUG][       Thread-608860][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:18:58,292 [DEBUG][       Thread-608860][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:18:58,340 [DEBUG][       Thread-608860][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:18:58,340 [DEBUG][       Thread-608860][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:18:58,349 [DEBUG][       Thread-608860][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:18:58,358 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:18:58,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-07-01 15:18:58,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-07-01 15:18:58,377 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:18:58,377 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:18:58,378 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:18:58,388 [DEBUG][       Thread-608860][   transport.py][1871] : EOF in transport thread
2025-07-01 15:19:00,720 [DEBUG][Thread-608862 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:19:08,388 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:19:08,388 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:19:08,388 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:19:08,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-07-01 15:19:08,894 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 18, 40), 11.63, 45.56, 0.0, 29.01, 14.29, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:19:08,894 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:18:40
2025-07-01 15:19:08,976 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:19:08,979 [DEBUG][       Thread-608863][   transport.py][1871] : starting thread (client mode): 0x8170c10
2025-07-01 15:19:08,979 [DEBUG][       Thread-608863][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:19:08,999 [DEBUG][       Thread-608863][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:19:08,999 [ INFO][       Thread-608863][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:19:09,002 [DEBUG][       Thread-608863][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:19:09,002 [DEBUG][       Thread-608863][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:19:09,002 [DEBUG][       Thread-608863][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:19:09,002 [DEBUG][       Thread-608863][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:19:09,002 [DEBUG][       Thread-608863][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:19:09,002 [DEBUG][       Thread-608863][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:19:09,002 [DEBUG][       Thread-608863][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:19:09,002 [DEBUG][       Thread-608863][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:19:09,002 [DEBUG][       Thread-608863][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:19:09,002 [DEBUG][       Thread-608863][   transport.py][1871] : client lang: <none>
2025-07-01 15:19:09,002 [DEBUG][       Thread-608863][   transport.py][1871] : server lang: <none>
2025-07-01 15:19:09,002 [DEBUG][       Thread-608863][   transport.py][1871] : kex follows: False
2025-07-01 15:19:09,002 [DEBUG][       Thread-608863][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:19:09,002 [DEBUG][       Thread-608863][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:19:09,002 [DEBUG][       Thread-608863][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:19:09,002 [DEBUG][       Thread-608863][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:19:09,002 [DEBUG][       Thread-608863][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:19:09,002 [DEBUG][       Thread-608863][   transport.py][1871] : Compression: none
2025-07-01 15:19:09,003 [DEBUG][       Thread-608863][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:19:09,022 [DEBUG][       Thread-608863][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:19:09,022 [DEBUG][       Thread-608863][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:19:09,023 [DEBUG][       Thread-608863][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:19:09,023 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:19:09,023 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:19:09,024 [DEBUG][       Thread-608863][   transport.py][1871] : userauth is OK
2025-07-01 15:19:09,038 [ INFO][       Thread-608863][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:19:09,038 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:19:09,624 [DEBUG][       Thread-608863][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:19:09,624 [DEBUG][       Thread-608863][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:19:09,665 [DEBUG][       Thread-608863][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:19:09,665 [DEBUG][       Thread-608863][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:19:09,668 [DEBUG][       Thread-608863][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:19:09,680 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:19:09,680 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:19:09,682 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:19:09,684 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:19:09,689 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:19:09,692 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:19:09,692 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:19:09,692 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:19:09,693 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.554454 -999.00  +14.10  29.61     50   +4.10 1 1 1 1 1   887    0 9.81 2.24 ----- 32.8 29.6 23.0 43.9 16.3 -23.4 15.6 -24.8 16.0 -22.7 16.6 -22.3
2025-07-01 15:19:09,693 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:19:09,693 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:19:09,693 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.554454
2025-07-01 15:19:09,693 [DEBUG][       Thread-608863][   transport.py][1871] : EOF in transport thread
2025-07-01 15:19:09,693 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:19:09,695 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:19:09,695 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:19:09,695 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:19:09,695 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:19:09,695 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:18:40', tmtdew=11.63, humidity=45.56, cloud=0.0, wind=29.01, temperature=14.29, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:18:24.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:19:09,745 [DEBUG][Thread-608866 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:19:09,778 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:19:09,787 [DEBUG][       Thread-608867][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 15:19:09,787 [DEBUG][       Thread-608867][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:19:09,803 [DEBUG][       Thread-608867][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:19:09,803 [ INFO][       Thread-608867][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:19:09,810 [DEBUG][       Thread-608867][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:19:09,811 [DEBUG][       Thread-608867][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:19:09,811 [DEBUG][       Thread-608867][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:19:09,811 [DEBUG][       Thread-608867][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:19:09,811 [DEBUG][       Thread-608867][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:19:09,811 [DEBUG][       Thread-608867][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:19:09,811 [DEBUG][       Thread-608867][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:19:09,811 [DEBUG][       Thread-608867][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:19:09,811 [DEBUG][       Thread-608867][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:19:09,811 [DEBUG][       Thread-608867][   transport.py][1871] : client lang: <none>
2025-07-01 15:19:09,811 [DEBUG][       Thread-608867][   transport.py][1871] : server lang: <none>
2025-07-01 15:19:09,811 [DEBUG][       Thread-608867][   transport.py][1871] : kex follows: False
2025-07-01 15:19:09,811 [DEBUG][       Thread-608867][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:19:09,811 [DEBUG][       Thread-608867][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:19:09,811 [DEBUG][       Thread-608867][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:19:09,811 [DEBUG][       Thread-608867][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:19:09,811 [DEBUG][       Thread-608867][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:19:09,811 [DEBUG][       Thread-608867][   transport.py][1871] : Compression: none
2025-07-01 15:19:09,811 [DEBUG][       Thread-608867][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:19:09,868 [DEBUG][       Thread-608867][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:19:09,868 [DEBUG][       Thread-608867][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:19:09,869 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:19:09,870 [DEBUG][       Thread-608867][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:19:09,870 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:19:09,928 [DEBUG][       Thread-608867][   transport.py][1871] : userauth is OK
2025-07-01 15:19:09,929 [DEBUG][       Thread-608867][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:19:09,929 [DEBUG][       Thread-608867][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:19:09,929 [DEBUG][       Thread-608867][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:19:09,929 [DEBUG][       Thread-608867][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:19:09,947 [ INFO][       Thread-608867][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:19:09,948 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:19:09,948 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:19:10,961 [DEBUG][       Thread-608867][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:19:10,961 [DEBUG][       Thread-608867][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:19:11,014 [DEBUG][       Thread-608867][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:19:11,014 [DEBUG][       Thread-608867][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:19:11,023 [DEBUG][       Thread-608867][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:19:11,032 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:19:11,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')
2025-07-01 15:19:11,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-07-01 15:19:11,051 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:19:11,051 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:19:11,051 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:19:11,059 [DEBUG][       Thread-608867][   transport.py][1871] : EOF in transport thread
2025-07-01 15:19:18,767 [DEBUG][Thread-608869 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:19:21,062 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:19:21,062 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:19:21,062 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:19:21,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-07-01 15:19:21,586 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 19, 12), 11.61, 45.56, 0.0, 36.59, 14.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:19:21,587 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:19:12
2025-07-01 15:19:21,674 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:19:21,679 [DEBUG][       Thread-608870][   transport.py][1871] : starting thread (client mode): 0x81710f0
2025-07-01 15:19:21,680 [DEBUG][       Thread-608870][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:19:21,701 [DEBUG][       Thread-608870][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:19:21,701 [ INFO][       Thread-608870][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:19:21,705 [DEBUG][       Thread-608870][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:19:21,705 [DEBUG][       Thread-608870][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:19:21,705 [DEBUG][       Thread-608870][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:19:21,705 [DEBUG][       Thread-608870][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:19:21,705 [DEBUG][       Thread-608870][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:19:21,705 [DEBUG][       Thread-608870][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:19:21,705 [DEBUG][       Thread-608870][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:19:21,705 [DEBUG][       Thread-608870][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:19:21,705 [DEBUG][       Thread-608870][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:19:21,705 [DEBUG][       Thread-608870][   transport.py][1871] : client lang: <none>
2025-07-01 15:19:21,705 [DEBUG][       Thread-608870][   transport.py][1871] : server lang: <none>
2025-07-01 15:19:21,705 [DEBUG][       Thread-608870][   transport.py][1871] : kex follows: False
2025-07-01 15:19:21,705 [DEBUG][       Thread-608870][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:19:21,705 [DEBUG][       Thread-608870][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:19:21,705 [DEBUG][       Thread-608870][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:19:21,705 [DEBUG][       Thread-608870][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:19:21,705 [DEBUG][       Thread-608870][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:19:21,705 [DEBUG][       Thread-608870][   transport.py][1871] : Compression: none
2025-07-01 15:19:21,705 [DEBUG][       Thread-608870][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:19:21,720 [DEBUG][       Thread-608870][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:19:21,720 [DEBUG][       Thread-608870][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:19:21,720 [DEBUG][       Thread-608870][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:19:21,721 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:19:21,721 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:19:21,721 [DEBUG][       Thread-608870][   transport.py][1871] : userauth is OK
2025-07-01 15:19:21,733 [ INFO][       Thread-608870][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:19:21,733 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:19:22,350 [DEBUG][       Thread-608870][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:19:22,350 [DEBUG][       Thread-608870][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:19:22,392 [DEBUG][       Thread-608870][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:19:22,392 [DEBUG][       Thread-608870][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:19:22,395 [DEBUG][       Thread-608870][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:19:22,406 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:19:22,406 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:19:22,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:19:22,408 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:19:22,411 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:19:22,412 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:19:22,412 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:19:22,412 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:19:22,412 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.554801 -999.00  +14.20  35.78     50   +4.00 1 1 2 1 1   887    0 10.07 0.46 ----- 38.0 35.8 43.8 50.0 16.4 -23.6 15.7 -24.7 16.0 -22.7 16.7 -21.8
2025-07-01 15:19:22,412 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:19:22,412 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:19:22,412 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.554801
2025-07-01 15:19:22,412 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:19:22,412 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:19:22,412 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:19:22,412 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:19:22,412 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:19:22,412 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:19:12', tmtdew=11.61, humidity=45.56, cloud=0.0, wind=36.59, temperature=14.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:18:54.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:19:22,413 [DEBUG][       Thread-608870][   transport.py][1871] : EOF in transport thread
2025-07-01 15:19:22,486 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:19:22,496 [DEBUG][       Thread-608873][   transport.py][1871] : starting thread (client mode): 0x81caef0
2025-07-01 15:19:22,496 [DEBUG][       Thread-608873][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:19:22,510 [DEBUG][       Thread-608873][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:19:22,511 [ INFO][       Thread-608873][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:19:22,518 [DEBUG][       Thread-608873][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:19:22,518 [DEBUG][       Thread-608873][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:19:22,518 [DEBUG][       Thread-608873][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:19:22,518 [DEBUG][       Thread-608873][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:19:22,518 [DEBUG][       Thread-608873][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:19:22,518 [DEBUG][       Thread-608873][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:19:22,518 [DEBUG][       Thread-608873][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:19:22,518 [DEBUG][       Thread-608873][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:19:22,518 [DEBUG][       Thread-608873][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:19:22,518 [DEBUG][       Thread-608873][   transport.py][1871] : client lang: <none>
2025-07-01 15:19:22,518 [DEBUG][       Thread-608873][   transport.py][1871] : server lang: <none>
2025-07-01 15:19:22,518 [DEBUG][       Thread-608873][   transport.py][1871] : kex follows: False
2025-07-01 15:19:22,518 [DEBUG][       Thread-608873][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:19:22,518 [DEBUG][       Thread-608873][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:19:22,518 [DEBUG][       Thread-608873][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:19:22,518 [DEBUG][       Thread-608873][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:19:22,518 [DEBUG][       Thread-608873][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:19:22,518 [DEBUG][       Thread-608873][   transport.py][1871] : Compression: none
2025-07-01 15:19:22,518 [DEBUG][       Thread-608873][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:19:22,575 [DEBUG][       Thread-608873][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:19:22,575 [DEBUG][       Thread-608873][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:19:22,575 [DEBUG][       Thread-608873][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:19:22,575 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:19:22,575 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:19:22,638 [DEBUG][       Thread-608873][   transport.py][1871] : userauth is OK
2025-07-01 15:19:22,638 [DEBUG][       Thread-608873][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:19:22,639 [DEBUG][       Thread-608873][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:19:22,639 [DEBUG][       Thread-608873][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:19:22,639 [DEBUG][       Thread-608873][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:19:22,653 [ INFO][       Thread-608873][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:19:22,653 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:19:22,653 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:19:23,650 [DEBUG][       Thread-608873][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:19:23,650 [DEBUG][       Thread-608873][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:19:23,699 [DEBUG][       Thread-608873][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:19:23,699 [DEBUG][       Thread-608873][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:19:23,708 [DEBUG][       Thread-608873][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:19:23,716 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:19:23,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-07-01 15:19:23,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-07-01 15:19:23,731 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:19:23,731 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:19:23,732 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:19:23,739 [DEBUG][       Thread-608873][   transport.py][1871] : EOF in transport thread
2025-07-01 15:19:27,789 [DEBUG][Thread-608875 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:19:33,742 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:19:33,742 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:19:33,742 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:19:33,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-07-01 15:19:34,239 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 19, 12), 11.61, 45.56, 0.0, 36.59, 14.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:19:34,239 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:19:12
2025-07-01 15:19:34,319 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:19:34,326 [DEBUG][       Thread-608876][   transport.py][1871] : starting thread (client mode): 0x81735e0
2025-07-01 15:19:34,326 [DEBUG][       Thread-608876][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:19:34,347 [DEBUG][       Thread-608876][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:19:34,347 [ INFO][       Thread-608876][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:19:34,351 [DEBUG][       Thread-608876][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:19:34,351 [DEBUG][       Thread-608876][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:19:34,351 [DEBUG][       Thread-608876][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:19:34,351 [DEBUG][       Thread-608876][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:19:34,351 [DEBUG][       Thread-608876][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:19:34,351 [DEBUG][       Thread-608876][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:19:34,351 [DEBUG][       Thread-608876][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:19:34,351 [DEBUG][       Thread-608876][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:19:34,351 [DEBUG][       Thread-608876][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:19:34,351 [DEBUG][       Thread-608876][   transport.py][1871] : client lang: <none>
2025-07-01 15:19:34,351 [DEBUG][       Thread-608876][   transport.py][1871] : server lang: <none>
2025-07-01 15:19:34,351 [DEBUG][       Thread-608876][   transport.py][1871] : kex follows: False
2025-07-01 15:19:34,351 [DEBUG][       Thread-608876][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:19:34,352 [DEBUG][       Thread-608876][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:19:34,352 [DEBUG][       Thread-608876][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:19:34,352 [DEBUG][       Thread-608876][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:19:34,352 [DEBUG][       Thread-608876][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:19:34,352 [DEBUG][       Thread-608876][   transport.py][1871] : Compression: none
2025-07-01 15:19:34,352 [DEBUG][       Thread-608876][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:19:34,368 [DEBUG][       Thread-608876][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:19:34,369 [DEBUG][       Thread-608876][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:19:34,369 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:19:34,369 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:19:34,370 [DEBUG][       Thread-608876][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:19:34,371 [DEBUG][       Thread-608876][   transport.py][1871] : userauth is OK
2025-07-01 15:19:34,383 [ INFO][       Thread-608876][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:19:34,384 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:19:35,149 [DEBUG][       Thread-608876][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:19:35,149 [DEBUG][       Thread-608876][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:19:35,193 [DEBUG][       Thread-608876][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:19:35,193 [DEBUG][       Thread-608876][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:19:35,197 [DEBUG][       Thread-608876][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:19:35,210 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:19:35,210 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:19:35,212 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:19:35,214 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:19:35,220 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:19:35,222 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:19:35,223 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:19:35,223 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:19:35,223 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.554801 -999.00  +14.20  35.78     50   +4.00 1 1 2 1 1   887    0 10.07 0.46 ----- 38.0 35.8 43.8 50.0 16.4 -23.6 15.7 -24.7 16.0 -22.7 16.7 -21.8
2025-07-01 15:19:35,223 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:19:35,224 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:19:35,224 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.554801
2025-07-01 15:19:35,224 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:19:35,225 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:19:35,225 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:19:35,225 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:19:35,225 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:19:35,225 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:19:12', tmtdew=11.61, humidity=45.56, cloud=0.0, wind=36.59, temperature=14.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:18:54.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:19:35,226 [DEBUG][       Thread-608876][   transport.py][1871] : EOF in transport thread
2025-07-01 15:19:35,303 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:19:35,315 [DEBUG][       Thread-608879][   transport.py][1871] : starting thread (client mode): 0x83c8070
2025-07-01 15:19:35,315 [DEBUG][       Thread-608879][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:19:35,330 [DEBUG][       Thread-608879][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:19:35,330 [ INFO][       Thread-608879][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:19:35,338 [DEBUG][       Thread-608879][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:19:35,338 [DEBUG][       Thread-608879][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:19:35,338 [DEBUG][       Thread-608879][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:19:35,338 [DEBUG][       Thread-608879][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:19:35,338 [DEBUG][       Thread-608879][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:19:35,338 [DEBUG][       Thread-608879][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:19:35,338 [DEBUG][       Thread-608879][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:19:35,338 [DEBUG][       Thread-608879][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:19:35,338 [DEBUG][       Thread-608879][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:19:35,338 [DEBUG][       Thread-608879][   transport.py][1871] : client lang: <none>
2025-07-01 15:19:35,338 [DEBUG][       Thread-608879][   transport.py][1871] : server lang: <none>
2025-07-01 15:19:35,338 [DEBUG][       Thread-608879][   transport.py][1871] : kex follows: False
2025-07-01 15:19:35,338 [DEBUG][       Thread-608879][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:19:35,339 [DEBUG][       Thread-608879][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:19:35,339 [DEBUG][       Thread-608879][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:19:35,339 [DEBUG][       Thread-608879][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:19:35,339 [DEBUG][       Thread-608879][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:19:35,339 [DEBUG][       Thread-608879][   transport.py][1871] : Compression: none
2025-07-01 15:19:35,339 [DEBUG][       Thread-608879][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:19:35,397 [DEBUG][       Thread-608879][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:19:35,397 [DEBUG][       Thread-608879][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:19:35,398 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:19:35,399 [DEBUG][       Thread-608879][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:19:35,399 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:19:35,460 [DEBUG][       Thread-608879][   transport.py][1871] : userauth is OK
2025-07-01 15:19:35,460 [DEBUG][       Thread-608879][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:19:35,460 [DEBUG][       Thread-608879][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:19:35,460 [DEBUG][       Thread-608879][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:19:35,460 [DEBUG][       Thread-608879][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:19:35,480 [ INFO][       Thread-608879][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:19:35,481 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:19:35,481 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:19:36,522 [DEBUG][       Thread-608879][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:19:36,522 [DEBUG][       Thread-608879][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:19:36,571 [DEBUG][       Thread-608879][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:19:36,571 [DEBUG][       Thread-608879][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:19:36,579 [DEBUG][       Thread-608879][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:19:36,584 [DEBUG][Thread-608881 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:19:36,587 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:19:36,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-07-01 15:19:36,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') -> 00000000
2025-07-01 15:19:36,606 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:19:36,606 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:19:36,607 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:19:36,620 [DEBUG][       Thread-608879][   transport.py][1871] : EOF in transport thread
2025-07-01 15:19:36,831 [DEBUG][Thread-608882 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:19:45,850 [DEBUG][Thread-608883 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:19:46,616 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:19:46,616 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:19:46,616 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:19:46,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-07-01 15:19:47,103 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 19, 44), 11.71, 45.24, 0.0, 40.51, 14.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:19:47,103 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:19:44
2025-07-01 15:19:47,184 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:19:47,188 [DEBUG][       Thread-608884][   transport.py][1871] : starting thread (client mode): 0x81576d0
2025-07-01 15:19:47,188 [DEBUG][       Thread-608884][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:19:47,208 [DEBUG][       Thread-608884][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:19:47,208 [ INFO][       Thread-608884][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:19:47,211 [DEBUG][       Thread-608884][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:19:47,211 [DEBUG][       Thread-608884][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:19:47,211 [DEBUG][       Thread-608884][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:19:47,211 [DEBUG][       Thread-608884][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:19:47,211 [DEBUG][       Thread-608884][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:19:47,211 [DEBUG][       Thread-608884][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:19:47,211 [DEBUG][       Thread-608884][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:19:47,211 [DEBUG][       Thread-608884][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:19:47,211 [DEBUG][       Thread-608884][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:19:47,211 [DEBUG][       Thread-608884][   transport.py][1871] : client lang: <none>
2025-07-01 15:19:47,211 [DEBUG][       Thread-608884][   transport.py][1871] : server lang: <none>
2025-07-01 15:19:47,211 [DEBUG][       Thread-608884][   transport.py][1871] : kex follows: False
2025-07-01 15:19:47,211 [DEBUG][       Thread-608884][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:19:47,211 [DEBUG][       Thread-608884][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:19:47,211 [DEBUG][       Thread-608884][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:19:47,211 [DEBUG][       Thread-608884][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:19:47,211 [DEBUG][       Thread-608884][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:19:47,211 [DEBUG][       Thread-608884][   transport.py][1871] : Compression: none
2025-07-01 15:19:47,211 [DEBUG][       Thread-608884][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:19:47,229 [DEBUG][       Thread-608884][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:19:47,230 [DEBUG][       Thread-608884][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:19:47,230 [DEBUG][       Thread-608884][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:19:47,230 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:19:47,231 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:19:47,232 [DEBUG][       Thread-608884][   transport.py][1871] : userauth is OK
2025-07-01 15:19:47,256 [ INFO][       Thread-608884][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:19:47,257 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:19:47,830 [DEBUG][       Thread-608884][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:19:47,830 [DEBUG][       Thread-608884][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:19:47,873 [DEBUG][       Thread-608884][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:19:47,873 [DEBUG][       Thread-608884][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:19:47,877 [DEBUG][       Thread-608884][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:19:47,890 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:19:47,890 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:19:47,892 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:19:47,893 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:19:47,898 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:19:47,900 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:19:47,900 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:19:47,901 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:19:47,901 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.555148 -999.00  +14.10  39.13     50   +4.00 1 1 2 1 1   887    0 10.22 -0.14 ----- 35.5 39.1 40.4 46.7 16.4 -23.2 15.7 -24.3 16.0 -23.5 16.7 -21.8
2025-07-01 15:19:47,901 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:19:47,901 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:19:47,901 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.555148
2025-07-01 15:19:47,902 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:19:47,902 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:19:47,902 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:19:47,903 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:19:47,903 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:19:47,903 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:19:44', tmtdew=11.71, humidity=45.24, cloud=0.0, wind=40.51, temperature=14.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:19:24.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:19:47,903 [DEBUG][       Thread-608884][   transport.py][1871] : EOF in transport thread
2025-07-01 15:19:47,980 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:19:47,990 [DEBUG][       Thread-608887][   transport.py][1871] : starting thread (client mode): 0x75a9540
2025-07-01 15:19:47,990 [DEBUG][       Thread-608887][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:19:48,005 [DEBUG][       Thread-608887][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:19:48,005 [ INFO][       Thread-608887][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:19:48,013 [DEBUG][       Thread-608887][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:19:48,013 [DEBUG][       Thread-608887][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:19:48,013 [DEBUG][       Thread-608887][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:19:48,013 [DEBUG][       Thread-608887][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:19:48,013 [DEBUG][       Thread-608887][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:19:48,013 [DEBUG][       Thread-608887][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:19:48,013 [DEBUG][       Thread-608887][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:19:48,013 [DEBUG][       Thread-608887][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:19:48,013 [DEBUG][       Thread-608887][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:19:48,013 [DEBUG][       Thread-608887][   transport.py][1871] : client lang: <none>
2025-07-01 15:19:48,013 [DEBUG][       Thread-608887][   transport.py][1871] : server lang: <none>
2025-07-01 15:19:48,013 [DEBUG][       Thread-608887][   transport.py][1871] : kex follows: False
2025-07-01 15:19:48,013 [DEBUG][       Thread-608887][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:19:48,013 [DEBUG][       Thread-608887][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:19:48,013 [DEBUG][       Thread-608887][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:19:48,013 [DEBUG][       Thread-608887][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:19:48,014 [DEBUG][       Thread-608887][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:19:48,014 [DEBUG][       Thread-608887][   transport.py][1871] : Compression: none
2025-07-01 15:19:48,014 [DEBUG][       Thread-608887][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:19:48,071 [DEBUG][       Thread-608887][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:19:48,072 [DEBUG][       Thread-608887][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:19:48,072 [DEBUG][       Thread-608887][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:19:48,073 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:19:48,073 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:19:48,127 [DEBUG][       Thread-608887][   transport.py][1871] : userauth is OK
2025-07-01 15:19:48,128 [DEBUG][       Thread-608887][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:19:48,128 [DEBUG][       Thread-608887][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:19:48,128 [DEBUG][       Thread-608887][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:19:48,128 [DEBUG][       Thread-608887][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:19:48,147 [ INFO][       Thread-608887][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:19:48,148 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:19:48,148 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:19:49,195 [DEBUG][       Thread-608887][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:19:49,195 [DEBUG][       Thread-608887][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:19:49,244 [DEBUG][       Thread-608887][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:19:49,244 [DEBUG][       Thread-608887][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:19:49,253 [DEBUG][       Thread-608887][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:19:49,262 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:19:49,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-07-01 15:19:49,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-07-01 15:19:49,280 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:19:49,280 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:19:49,281 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:19:49,289 [DEBUG][       Thread-608887][   transport.py][1871] : EOF in transport thread
2025-07-01 15:19:54,870 [DEBUG][Thread-608889 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:19:59,288 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:19:59,288 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:19:59,288 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:19:59,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-07-01 15:19:59,801 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 19, 44), 11.71, 45.24, 0.0, 40.51, 14.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:19:59,801 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:19:44
2025-07-01 15:19:59,887 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:19:59,893 [DEBUG][       Thread-608890][   transport.py][1871] : starting thread (client mode): 0x81cb700
2025-07-01 15:19:59,893 [DEBUG][       Thread-608890][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:19:59,912 [DEBUG][       Thread-608890][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:19:59,912 [ INFO][       Thread-608890][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:19:59,915 [DEBUG][       Thread-608890][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:19:59,915 [DEBUG][       Thread-608890][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:19:59,915 [DEBUG][       Thread-608890][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:19:59,915 [DEBUG][       Thread-608890][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:19:59,915 [DEBUG][       Thread-608890][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:19:59,915 [DEBUG][       Thread-608890][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:19:59,915 [DEBUG][       Thread-608890][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:19:59,915 [DEBUG][       Thread-608890][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:19:59,915 [DEBUG][       Thread-608890][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:19:59,915 [DEBUG][       Thread-608890][   transport.py][1871] : client lang: <none>
2025-07-01 15:19:59,915 [DEBUG][       Thread-608890][   transport.py][1871] : server lang: <none>
2025-07-01 15:19:59,915 [DEBUG][       Thread-608890][   transport.py][1871] : kex follows: False
2025-07-01 15:19:59,916 [DEBUG][       Thread-608890][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:19:59,916 [DEBUG][       Thread-608890][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:19:59,916 [DEBUG][       Thread-608890][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:19:59,916 [DEBUG][       Thread-608890][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:19:59,916 [DEBUG][       Thread-608890][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:19:59,916 [DEBUG][       Thread-608890][   transport.py][1871] : Compression: none
2025-07-01 15:19:59,916 [DEBUG][       Thread-608890][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:19:59,932 [DEBUG][       Thread-608890][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:19:59,932 [DEBUG][       Thread-608890][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:19:59,932 [DEBUG][       Thread-608890][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:19:59,933 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:19:59,933 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:19:59,933 [DEBUG][       Thread-608890][   transport.py][1871] : userauth is OK
2025-07-01 15:19:59,957 [ INFO][       Thread-608890][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:19:59,957 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:20:00,747 [DEBUG][       Thread-608890][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:20:00,747 [DEBUG][       Thread-608890][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:20:00,788 [DEBUG][       Thread-608890][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:20:00,788 [DEBUG][       Thread-608890][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:20:00,791 [DEBUG][       Thread-608890][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:20:00,804 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:20:00,804 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:20:00,805 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:20:00,806 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:20:00,808 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:20:00,809 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:20:00,809 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:20:00,809 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:20:00,809 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.555148 -999.00  +14.10  39.13     50   +4.00 1 1 2 1 1   887    0 10.22 -0.14 ----- 35.5 39.1 40.4 46.7 16.4 -23.2 15.7 -24.3 16.0 -23.5 16.7 -21.8
2025-07-01 15:20:00,809 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:20:00,809 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:20:00,809 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.555148
2025-07-01 15:20:00,810 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:20:00,810 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:20:00,810 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:20:00,810 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:20:00,810 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:20:00,810 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:19:44', tmtdew=11.71, humidity=45.24, cloud=0.0, wind=40.51, temperature=14.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:19:24.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:20:00,810 [DEBUG][       Thread-608890][   transport.py][1871] : EOF in transport thread
2025-07-01 15:20:00,882 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:20:00,893 [DEBUG][       Thread-608893][   transport.py][1871] : starting thread (client mode): 0x83c8460
2025-07-01 15:20:00,894 [DEBUG][       Thread-608893][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:20:00,909 [DEBUG][       Thread-608893][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:20:00,909 [ INFO][       Thread-608893][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:20:00,917 [DEBUG][       Thread-608893][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:20:00,917 [DEBUG][       Thread-608893][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:20:00,917 [DEBUG][       Thread-608893][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:20:00,917 [DEBUG][       Thread-608893][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:20:00,917 [DEBUG][       Thread-608893][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:20:00,917 [DEBUG][       Thread-608893][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:20:00,917 [DEBUG][       Thread-608893][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:20:00,917 [DEBUG][       Thread-608893][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:20:00,917 [DEBUG][       Thread-608893][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:20:00,917 [DEBUG][       Thread-608893][   transport.py][1871] : client lang: <none>
2025-07-01 15:20:00,917 [DEBUG][       Thread-608893][   transport.py][1871] : server lang: <none>
2025-07-01 15:20:00,917 [DEBUG][       Thread-608893][   transport.py][1871] : kex follows: False
2025-07-01 15:20:00,917 [DEBUG][       Thread-608893][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:20:00,917 [DEBUG][       Thread-608893][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:20:00,917 [DEBUG][       Thread-608893][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:20:00,917 [DEBUG][       Thread-608893][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:20:00,917 [DEBUG][       Thread-608893][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:20:00,917 [DEBUG][       Thread-608893][   transport.py][1871] : Compression: none
2025-07-01 15:20:00,917 [DEBUG][       Thread-608893][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:20:00,974 [DEBUG][       Thread-608893][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:20:00,974 [DEBUG][       Thread-608893][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:20:00,974 [DEBUG][       Thread-608893][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:20:00,975 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:20:00,975 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:20:01,031 [DEBUG][       Thread-608893][   transport.py][1871] : userauth is OK
2025-07-01 15:20:01,031 [DEBUG][       Thread-608893][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:20:01,031 [DEBUG][       Thread-608893][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:20:01,031 [DEBUG][       Thread-608893][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:20:01,031 [DEBUG][       Thread-608893][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:20:01,045 [ INFO][       Thread-608893][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:20:01,045 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:20:01,045 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:20:02,054 [DEBUG][       Thread-608893][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:20:02,054 [DEBUG][       Thread-608893][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:20:02,107 [DEBUG][       Thread-608893][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:20:02,107 [DEBUG][       Thread-608893][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:20:02,116 [DEBUG][       Thread-608893][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:20:02,123 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:20:02,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-07-01 15:20:02,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-07-01 15:20:02,139 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:20:02,139 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:20:02,139 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:20:02,147 [DEBUG][       Thread-608893][   transport.py][1871] : EOF in transport thread
2025-07-01 15:20:03,902 [DEBUG][Thread-608895 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:20:12,146 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:20:12,147 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:20:12,147 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:20:12,149 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 15:20:12,635 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 19, 44), 11.71, 45.24, 0.0, 40.51, 14.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:20:12,635 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:19:44
2025-07-01 15:20:12,717 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:20:12,721 [DEBUG][       Thread-608896][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 15:20:12,721 [DEBUG][       Thread-608896][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:20:12,742 [DEBUG][       Thread-608896][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:20:12,742 [ INFO][       Thread-608896][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:20:12,745 [DEBUG][       Thread-608896][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:20:12,745 [DEBUG][       Thread-608896][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:20:12,745 [DEBUG][       Thread-608896][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:20:12,745 [DEBUG][       Thread-608896][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:20:12,745 [DEBUG][       Thread-608896][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:20:12,745 [DEBUG][       Thread-608896][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:20:12,745 [DEBUG][       Thread-608896][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:20:12,745 [DEBUG][       Thread-608896][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:20:12,745 [DEBUG][       Thread-608896][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:20:12,745 [DEBUG][       Thread-608896][   transport.py][1871] : client lang: <none>
2025-07-01 15:20:12,745 [DEBUG][       Thread-608896][   transport.py][1871] : server lang: <none>
2025-07-01 15:20:12,745 [DEBUG][       Thread-608896][   transport.py][1871] : kex follows: False
2025-07-01 15:20:12,745 [DEBUG][       Thread-608896][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:20:12,745 [DEBUG][       Thread-608896][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:20:12,746 [DEBUG][       Thread-608896][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:20:12,746 [DEBUG][       Thread-608896][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:20:12,746 [DEBUG][       Thread-608896][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:20:12,746 [DEBUG][       Thread-608896][   transport.py][1871] : Compression: none
2025-07-01 15:20:12,746 [DEBUG][       Thread-608896][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:20:12,763 [DEBUG][       Thread-608896][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:20:12,764 [DEBUG][       Thread-608896][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:20:12,764 [DEBUG][       Thread-608896][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:20:12,764 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:20:12,765 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:20:12,766 [DEBUG][       Thread-608896][   transport.py][1871] : userauth is OK
2025-07-01 15:20:12,791 [ INFO][       Thread-608896][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:20:12,791 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:20:12,924 [DEBUG][Thread-608898 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:20:13,565 [DEBUG][       Thread-608896][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:20:13,566 [DEBUG][       Thread-608896][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:20:13,609 [DEBUG][       Thread-608896][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:20:13,609 [DEBUG][       Thread-608896][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:20:13,612 [DEBUG][       Thread-608896][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:20:13,624 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:20:13,624 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:20:13,626 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:20:13,628 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:20:13,634 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:20:13,635 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:20:13,636 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:20:13,636 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:20:13,636 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.555148 -999.00  +14.10  39.13     50   +4.00 1 1 2 1 1   887    0 10.22 -0.14 ----- 35.5 39.1 40.4 46.7 16.4 -23.2 15.7 -24.3 16.0 -23.5 16.7 -21.8
2025-07-01 15:20:13,637 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:20:13,637 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:20:13,637 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.555148
2025-07-01 15:20:13,637 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:20:13,638 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:20:13,638 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:20:13,638 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:20:13,638 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:20:13,638 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:19:44', tmtdew=11.71, humidity=45.24, cloud=0.0, wind=40.51, temperature=14.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:19:24.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:20:13,639 [DEBUG][       Thread-608896][   transport.py][1871] : EOF in transport thread
2025-07-01 15:20:13,721 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:20:13,732 [DEBUG][       Thread-608900][   transport.py][1871] : starting thread (client mode): 0x81c9b10
2025-07-01 15:20:13,732 [DEBUG][       Thread-608900][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:20:13,753 [DEBUG][       Thread-608900][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:20:13,753 [ INFO][       Thread-608900][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:20:13,760 [DEBUG][       Thread-608900][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:20:13,760 [DEBUG][       Thread-608900][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:20:13,760 [DEBUG][       Thread-608900][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:20:13,760 [DEBUG][       Thread-608900][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:20:13,761 [DEBUG][       Thread-608900][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:20:13,761 [DEBUG][       Thread-608900][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:20:13,761 [DEBUG][       Thread-608900][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:20:13,761 [DEBUG][       Thread-608900][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:20:13,761 [DEBUG][       Thread-608900][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:20:13,761 [DEBUG][       Thread-608900][   transport.py][1871] : client lang: <none>
2025-07-01 15:20:13,761 [DEBUG][       Thread-608900][   transport.py][1871] : server lang: <none>
2025-07-01 15:20:13,761 [DEBUG][       Thread-608900][   transport.py][1871] : kex follows: False
2025-07-01 15:20:13,761 [DEBUG][       Thread-608900][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:20:13,761 [DEBUG][       Thread-608900][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:20:13,761 [DEBUG][       Thread-608900][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:20:13,761 [DEBUG][       Thread-608900][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:20:13,761 [DEBUG][       Thread-608900][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:20:13,761 [DEBUG][       Thread-608900][   transport.py][1871] : Compression: none
2025-07-01 15:20:13,761 [DEBUG][       Thread-608900][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:20:13,819 [DEBUG][       Thread-608900][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:20:13,820 [DEBUG][       Thread-608900][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:20:13,820 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:20:13,821 [DEBUG][       Thread-608900][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:20:13,822 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:20:13,875 [DEBUG][       Thread-608900][   transport.py][1871] : userauth is OK
2025-07-01 15:20:13,875 [DEBUG][       Thread-608900][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:20:13,875 [DEBUG][       Thread-608900][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:20:13,876 [DEBUG][       Thread-608900][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:20:13,876 [DEBUG][       Thread-608900][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:20:13,895 [ INFO][       Thread-608900][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:20:13,895 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:20:13,895 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:20:14,904 [DEBUG][       Thread-608900][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:20:14,905 [DEBUG][       Thread-608900][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:20:14,956 [DEBUG][       Thread-608900][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:20:14,956 [DEBUG][       Thread-608900][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:20:14,965 [DEBUG][       Thread-608900][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:20:14,975 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:20:14,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-07-01 15:20:14,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-07-01 15:20:14,995 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:20:14,995 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:20:14,995 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:20:15,003 [DEBUG][       Thread-608900][   transport.py][1871] : EOF in transport thread
2025-07-01 15:20:21,948 [DEBUG][Thread-608902 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:20:25,006 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:20:25,006 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:20:25,006 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:20:25,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-07-01 15:20:25,508 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 20, 15), 11.65, 45.41, 0.0, 37.1, 14.37, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:20:25,508 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:20:15
2025-07-01 15:20:25,591 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:20:25,597 [DEBUG][       Thread-608903][   transport.py][1871] : starting thread (client mode): 0x81c97b0
2025-07-01 15:20:25,597 [DEBUG][       Thread-608903][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:20:25,613 [DEBUG][       Thread-608903][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:20:25,613 [ INFO][       Thread-608903][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:20:25,616 [DEBUG][       Thread-608903][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:20:25,616 [DEBUG][       Thread-608903][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:20:25,616 [DEBUG][       Thread-608903][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:20:25,616 [DEBUG][       Thread-608903][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:20:25,616 [DEBUG][       Thread-608903][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:20:25,616 [DEBUG][       Thread-608903][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:20:25,616 [DEBUG][       Thread-608903][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:20:25,616 [DEBUG][       Thread-608903][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:20:25,616 [DEBUG][       Thread-608903][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:20:25,616 [DEBUG][       Thread-608903][   transport.py][1871] : client lang: <none>
2025-07-01 15:20:25,616 [DEBUG][       Thread-608903][   transport.py][1871] : server lang: <none>
2025-07-01 15:20:25,616 [DEBUG][       Thread-608903][   transport.py][1871] : kex follows: False
2025-07-01 15:20:25,616 [DEBUG][       Thread-608903][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:20:25,616 [DEBUG][       Thread-608903][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:20:25,616 [DEBUG][       Thread-608903][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:20:25,616 [DEBUG][       Thread-608903][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:20:25,617 [DEBUG][       Thread-608903][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:20:25,617 [DEBUG][       Thread-608903][   transport.py][1871] : Compression: none
2025-07-01 15:20:25,617 [DEBUG][       Thread-608903][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:20:25,634 [DEBUG][       Thread-608903][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:20:25,634 [DEBUG][       Thread-608903][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:20:25,635 [DEBUG][       Thread-608903][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:20:25,635 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:20:25,635 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:20:25,636 [DEBUG][       Thread-608903][   transport.py][1871] : userauth is OK
2025-07-01 15:20:25,661 [ INFO][       Thread-608903][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:20:25,662 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:20:26,332 [DEBUG][       Thread-608903][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:20:26,332 [DEBUG][       Thread-608903][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:20:26,373 [DEBUG][       Thread-608903][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:20:26,373 [DEBUG][       Thread-608903][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:20:26,376 [DEBUG][       Thread-608903][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:20:26,389 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:20:26,389 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:20:26,391 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:20:26,393 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:20:26,398 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:20:26,400 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:20:26,401 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:20:26,401 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:20:26,401 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.555495 -999.00  +14.10  34.89     50   +4.00 1 1 2 1 1   887    0 10.33 -0.27 ----- 41.0 34.9 38.6 52.5 16.4 -23.4 15.7 -24.4 16.1 -23.3 16.7 -22.5
2025-07-01 15:20:26,402 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:20:26,402 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:20:26,402 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.555495
2025-07-01 15:20:26,402 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:20:26,403 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:20:26,403 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:20:26,403 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:20:26,403 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:20:26,403 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:20:15', tmtdew=11.65, humidity=45.41, cloud=0.0, wind=37.1, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:19:54.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:20:26,403 [DEBUG][       Thread-608903][   transport.py][1871] : EOF in transport thread
2025-07-01 15:20:26,487 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:20:26,498 [DEBUG][       Thread-608906][   transport.py][1871] : starting thread (client mode): 0x75a9e40
2025-07-01 15:20:26,498 [DEBUG][       Thread-608906][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:20:26,513 [DEBUG][       Thread-608906][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:20:26,513 [ INFO][       Thread-608906][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:20:26,522 [DEBUG][       Thread-608906][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:20:26,523 [DEBUG][       Thread-608906][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:20:26,523 [DEBUG][       Thread-608906][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:20:26,523 [DEBUG][       Thread-608906][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:20:26,523 [DEBUG][       Thread-608906][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:20:26,523 [DEBUG][       Thread-608906][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:20:26,523 [DEBUG][       Thread-608906][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:20:26,523 [DEBUG][       Thread-608906][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:20:26,523 [DEBUG][       Thread-608906][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:20:26,523 [DEBUG][       Thread-608906][   transport.py][1871] : client lang: <none>
2025-07-01 15:20:26,523 [DEBUG][       Thread-608906][   transport.py][1871] : server lang: <none>
2025-07-01 15:20:26,523 [DEBUG][       Thread-608906][   transport.py][1871] : kex follows: False
2025-07-01 15:20:26,523 [DEBUG][       Thread-608906][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:20:26,523 [DEBUG][       Thread-608906][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:20:26,523 [DEBUG][       Thread-608906][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:20:26,523 [DEBUG][       Thread-608906][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:20:26,523 [DEBUG][       Thread-608906][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:20:26,524 [DEBUG][       Thread-608906][   transport.py][1871] : Compression: none
2025-07-01 15:20:26,524 [DEBUG][       Thread-608906][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:20:26,579 [DEBUG][       Thread-608906][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:20:26,580 [DEBUG][       Thread-608906][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:20:26,580 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:20:26,581 [DEBUG][       Thread-608906][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:20:26,582 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:20:26,639 [DEBUG][       Thread-608906][   transport.py][1871] : userauth is OK
2025-07-01 15:20:26,639 [DEBUG][       Thread-608906][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:20:26,639 [DEBUG][       Thread-608906][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:20:26,640 [DEBUG][       Thread-608906][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:20:26,640 [DEBUG][       Thread-608906][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:20:26,660 [ INFO][       Thread-608906][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:20:26,661 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:20:26,661 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:20:27,709 [DEBUG][       Thread-608906][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:20:27,710 [DEBUG][       Thread-608906][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:20:27,760 [DEBUG][       Thread-608906][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:20:27,760 [DEBUG][       Thread-608906][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:20:27,769 [DEBUG][       Thread-608906][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:20:27,778 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:20:27,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-07-01 15:20:27,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-07-01 15:20:27,796 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:20:27,797 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:20:27,797 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:20:27,805 [DEBUG][       Thread-608906][   transport.py][1871] : EOF in transport thread
2025-07-01 15:20:30,973 [DEBUG][Thread-608908 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:20:36,611 [DEBUG][Thread-608909 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:20:37,803 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:20:37,803 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:20:37,803 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:20:37,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-07-01 15:20:38,296 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 20, 15), 11.65, 45.41, 0.0, 37.1, 14.37, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:20:38,296 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:20:15
2025-07-01 15:20:38,385 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:20:38,390 [DEBUG][       Thread-608910][   transport.py][1871] : starting thread (client mode): 0x81701c0
2025-07-01 15:20:38,390 [DEBUG][       Thread-608910][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:20:38,409 [DEBUG][       Thread-608910][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:20:38,410 [ INFO][       Thread-608910][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:20:38,413 [DEBUG][       Thread-608910][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:20:38,413 [DEBUG][       Thread-608910][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:20:38,413 [DEBUG][       Thread-608910][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:20:38,413 [DEBUG][       Thread-608910][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:20:38,413 [DEBUG][       Thread-608910][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:20:38,413 [DEBUG][       Thread-608910][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:20:38,413 [DEBUG][       Thread-608910][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:20:38,413 [DEBUG][       Thread-608910][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:20:38,413 [DEBUG][       Thread-608910][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:20:38,413 [DEBUG][       Thread-608910][   transport.py][1871] : client lang: <none>
2025-07-01 15:20:38,413 [DEBUG][       Thread-608910][   transport.py][1871] : server lang: <none>
2025-07-01 15:20:38,413 [DEBUG][       Thread-608910][   transport.py][1871] : kex follows: False
2025-07-01 15:20:38,413 [DEBUG][       Thread-608910][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:20:38,413 [DEBUG][       Thread-608910][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:20:38,413 [DEBUG][       Thread-608910][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:20:38,413 [DEBUG][       Thread-608910][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:20:38,413 [DEBUG][       Thread-608910][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:20:38,413 [DEBUG][       Thread-608910][   transport.py][1871] : Compression: none
2025-07-01 15:20:38,413 [DEBUG][       Thread-608910][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:20:38,429 [DEBUG][       Thread-608910][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:20:38,429 [DEBUG][       Thread-608910][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:20:38,429 [DEBUG][       Thread-608910][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:20:38,430 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:20:38,430 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:20:38,430 [DEBUG][       Thread-608910][   transport.py][1871] : userauth is OK
2025-07-01 15:20:38,443 [ INFO][       Thread-608910][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:20:38,443 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:20:39,281 [DEBUG][       Thread-608910][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:20:39,281 [DEBUG][       Thread-608910][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:20:39,324 [DEBUG][       Thread-608910][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:20:39,325 [DEBUG][       Thread-608910][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:20:39,327 [DEBUG][       Thread-608910][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:20:39,339 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:20:39,339 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:20:39,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:20:39,341 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:20:39,344 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:20:39,344 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:20:39,344 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:20:39,345 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:20:39,345 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.555495 -999.00  +14.10  34.89     50   +4.00 1 1 2 1 1   887    0 10.33 -0.27 ----- 41.0 34.9 38.6 52.5 16.4 -23.4 15.7 -24.4 16.1 -23.3 16.7 -22.5
2025-07-01 15:20:39,345 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:20:39,345 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:20:39,345 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.555495
2025-07-01 15:20:39,345 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:20:39,345 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:20:39,345 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:20:39,345 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:20:39,345 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:20:39,345 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:20:15', tmtdew=11.65, humidity=45.41, cloud=0.0, wind=37.1, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:19:54.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:20:39,346 [DEBUG][       Thread-608910][   transport.py][1871] : EOF in transport thread
2025-07-01 15:20:39,420 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:20:39,429 [DEBUG][       Thread-608913][   transport.py][1871] : starting thread (client mode): 0x8154910
2025-07-01 15:20:39,429 [DEBUG][       Thread-608913][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:20:39,445 [DEBUG][       Thread-608913][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:20:39,445 [ INFO][       Thread-608913][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:20:39,453 [DEBUG][       Thread-608913][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:20:39,453 [DEBUG][       Thread-608913][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:20:39,453 [DEBUG][       Thread-608913][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:20:39,453 [DEBUG][       Thread-608913][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:20:39,453 [DEBUG][       Thread-608913][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:20:39,453 [DEBUG][       Thread-608913][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:20:39,453 [DEBUG][       Thread-608913][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:20:39,453 [DEBUG][       Thread-608913][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:20:39,453 [DEBUG][       Thread-608913][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:20:39,453 [DEBUG][       Thread-608913][   transport.py][1871] : client lang: <none>
2025-07-01 15:20:39,453 [DEBUG][       Thread-608913][   transport.py][1871] : server lang: <none>
2025-07-01 15:20:39,453 [DEBUG][       Thread-608913][   transport.py][1871] : kex follows: False
2025-07-01 15:20:39,453 [DEBUG][       Thread-608913][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:20:39,453 [DEBUG][       Thread-608913][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:20:39,453 [DEBUG][       Thread-608913][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:20:39,453 [DEBUG][       Thread-608913][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:20:39,453 [DEBUG][       Thread-608913][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:20:39,453 [DEBUG][       Thread-608913][   transport.py][1871] : Compression: none
2025-07-01 15:20:39,453 [DEBUG][       Thread-608913][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:20:39,513 [DEBUG][       Thread-608913][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:20:39,514 [DEBUG][       Thread-608913][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:20:39,514 [DEBUG][       Thread-608913][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:20:39,514 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:20:39,514 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:20:39,571 [DEBUG][       Thread-608913][   transport.py][1871] : userauth is OK
2025-07-01 15:20:39,571 [DEBUG][       Thread-608913][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:20:39,571 [DEBUG][       Thread-608913][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:20:39,571 [DEBUG][       Thread-608913][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:20:39,571 [DEBUG][       Thread-608913][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:20:39,585 [ INFO][       Thread-608913][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:20:39,585 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:20:39,585 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:20:40,005 [DEBUG][Thread-608915 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:20:40,674 [DEBUG][       Thread-608913][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:20:40,674 [DEBUG][       Thread-608913][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:20:40,724 [DEBUG][       Thread-608913][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:20:40,724 [DEBUG][       Thread-608913][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:20:40,735 [DEBUG][       Thread-608913][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:20:40,744 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:20:40,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')
2025-07-01 15:20:40,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-07-01 15:20:40,762 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:20:40,762 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:20:40,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:20:40,771 [DEBUG][       Thread-608913][   transport.py][1871] : EOF in transport thread
2025-07-01 15:20:49,023 [DEBUG][Thread-608916 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:20:50,772 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:20:50,772 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:20:50,772 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:20:50,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-07-01 15:20:51,273 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 20, 47), 11.64, 45.44, 0.0, 31.74, 14.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:20:51,273 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:20:47
2025-07-01 15:20:51,357 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:20:51,364 [DEBUG][       Thread-608917][   transport.py][1871] : starting thread (client mode): 0x8172050
2025-07-01 15:20:51,364 [DEBUG][       Thread-608917][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:20:51,390 [DEBUG][       Thread-608917][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:20:51,391 [ INFO][       Thread-608917][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:20:51,393 [DEBUG][       Thread-608917][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:20:51,393 [DEBUG][       Thread-608917][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:20:51,393 [DEBUG][       Thread-608917][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:20:51,393 [DEBUG][       Thread-608917][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:20:51,393 [DEBUG][       Thread-608917][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:20:51,393 [DEBUG][       Thread-608917][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:20:51,393 [DEBUG][       Thread-608917][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:20:51,393 [DEBUG][       Thread-608917][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:20:51,393 [DEBUG][       Thread-608917][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:20:51,393 [DEBUG][       Thread-608917][   transport.py][1871] : client lang: <none>
2025-07-01 15:20:51,393 [DEBUG][       Thread-608917][   transport.py][1871] : server lang: <none>
2025-07-01 15:20:51,393 [DEBUG][       Thread-608917][   transport.py][1871] : kex follows: False
2025-07-01 15:20:51,393 [DEBUG][       Thread-608917][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:20:51,393 [DEBUG][       Thread-608917][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:20:51,393 [DEBUG][       Thread-608917][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:20:51,393 [DEBUG][       Thread-608917][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:20:51,394 [DEBUG][       Thread-608917][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:20:51,394 [DEBUG][       Thread-608917][   transport.py][1871] : Compression: none
2025-07-01 15:20:51,394 [DEBUG][       Thread-608917][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:20:51,407 [DEBUG][       Thread-608917][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:20:51,407 [DEBUG][       Thread-608917][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:20:51,408 [DEBUG][       Thread-608917][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:20:51,408 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:20:51,408 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:20:51,409 [DEBUG][       Thread-608917][   transport.py][1871] : userauth is OK
2025-07-01 15:20:51,423 [ INFO][       Thread-608917][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:20:51,424 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:20:52,214 [DEBUG][       Thread-608917][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:20:52,215 [DEBUG][       Thread-608917][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:20:52,257 [DEBUG][       Thread-608917][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:20:52,257 [DEBUG][       Thread-608917][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:20:52,260 [DEBUG][       Thread-608917][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:20:52,272 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:20:52,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:20:52,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:20:52,275 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:20:52,280 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:20:52,282 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:20:52,282 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:20:52,282 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:20:52,283 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.555495 -999.00  +14.10  34.89     50   +4.00 1 1 2 1 1   887    0 10.33 -0.27 ----- 41.0 34.9 38.6 52.5 16.4 -23.4 15.7 -24.4 16.1 -23.3 16.7 -22.5
2025-07-01 15:20:52,283 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:20:52,283 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:20:52,283 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.555495
2025-07-01 15:20:52,283 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:20:52,283 [DEBUG][       Thread-608917][   transport.py][1871] : EOF in transport thread
2025-07-01 15:20:52,284 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:20:52,284 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:20:52,284 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:20:52,285 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:20:52,285 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:20:47', tmtdew=11.64, humidity=45.44, cloud=0.0, wind=31.74, temperature=14.32, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:19:54.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:20:52,368 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:20:52,385 [DEBUG][       Thread-608920][   transport.py][1871] : starting thread (client mode): 0x81cbbe0
2025-07-01 15:20:52,385 [DEBUG][       Thread-608920][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:20:52,404 [DEBUG][       Thread-608920][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:20:52,404 [ INFO][       Thread-608920][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:20:52,411 [DEBUG][       Thread-608920][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:20:52,412 [DEBUG][       Thread-608920][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:20:52,412 [DEBUG][       Thread-608920][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:20:52,412 [DEBUG][       Thread-608920][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:20:52,412 [DEBUG][       Thread-608920][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:20:52,412 [DEBUG][       Thread-608920][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:20:52,412 [DEBUG][       Thread-608920][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:20:52,412 [DEBUG][       Thread-608920][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:20:52,412 [DEBUG][       Thread-608920][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:20:52,412 [DEBUG][       Thread-608920][   transport.py][1871] : client lang: <none>
2025-07-01 15:20:52,412 [DEBUG][       Thread-608920][   transport.py][1871] : server lang: <none>
2025-07-01 15:20:52,412 [DEBUG][       Thread-608920][   transport.py][1871] : kex follows: False
2025-07-01 15:20:52,412 [DEBUG][       Thread-608920][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:20:52,412 [DEBUG][       Thread-608920][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:20:52,412 [DEBUG][       Thread-608920][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:20:52,412 [DEBUG][       Thread-608920][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:20:52,413 [DEBUG][       Thread-608920][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:20:52,413 [DEBUG][       Thread-608920][   transport.py][1871] : Compression: none
2025-07-01 15:20:52,413 [DEBUG][       Thread-608920][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:20:52,472 [DEBUG][       Thread-608920][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:20:52,472 [DEBUG][       Thread-608920][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:20:52,473 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:20:52,474 [DEBUG][       Thread-608920][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:20:52,474 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:20:52,527 [DEBUG][       Thread-608920][   transport.py][1871] : userauth is OK
2025-07-01 15:20:52,528 [DEBUG][       Thread-608920][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:20:52,528 [DEBUG][       Thread-608920][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:20:52,528 [DEBUG][       Thread-608920][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:20:52,528 [DEBUG][       Thread-608920][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:20:52,547 [ INFO][       Thread-608920][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:20:52,547 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:20:52,548 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:20:53,548 [DEBUG][       Thread-608920][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:20:53,548 [DEBUG][       Thread-608920][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:20:53,596 [DEBUG][       Thread-608920][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:20:53,596 [DEBUG][       Thread-608920][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:20:53,605 [DEBUG][       Thread-608920][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:20:53,614 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:20:53,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-07-01 15:20:53,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-07-01 15:20:53,635 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:20:53,635 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:20:53,635 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:20:53,647 [DEBUG][       Thread-608920][   transport.py][1871] : EOF in transport thread
2025-07-01 15:20:58,045 [DEBUG][Thread-608922 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:21:03,645 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:21:03,646 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:21:03,646 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:21:03,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-07-01 15:21:04,134 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 20, 47), 11.64, 45.44, 0.0, 31.74, 14.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:21:04,134 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:20:47
2025-07-01 15:21:04,217 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:21:04,221 [DEBUG][       Thread-608923][   transport.py][1871] : starting thread (client mode): 0x81c97b0
2025-07-01 15:21:04,221 [DEBUG][       Thread-608923][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:21:04,248 [DEBUG][       Thread-608923][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:21:04,248 [ INFO][       Thread-608923][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:21:04,252 [DEBUG][       Thread-608923][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:21:04,252 [DEBUG][       Thread-608923][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:21:04,252 [DEBUG][       Thread-608923][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:21:04,252 [DEBUG][       Thread-608923][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:21:04,252 [DEBUG][       Thread-608923][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:21:04,252 [DEBUG][       Thread-608923][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:21:04,252 [DEBUG][       Thread-608923][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:21:04,252 [DEBUG][       Thread-608923][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:21:04,252 [DEBUG][       Thread-608923][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:21:04,252 [DEBUG][       Thread-608923][   transport.py][1871] : client lang: <none>
2025-07-01 15:21:04,252 [DEBUG][       Thread-608923][   transport.py][1871] : server lang: <none>
2025-07-01 15:21:04,252 [DEBUG][       Thread-608923][   transport.py][1871] : kex follows: False
2025-07-01 15:21:04,252 [DEBUG][       Thread-608923][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:21:04,252 [DEBUG][       Thread-608923][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:21:04,252 [DEBUG][       Thread-608923][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:21:04,253 [DEBUG][       Thread-608923][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:21:04,253 [DEBUG][       Thread-608923][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:21:04,253 [DEBUG][       Thread-608923][   transport.py][1871] : Compression: none
2025-07-01 15:21:04,253 [DEBUG][       Thread-608923][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:21:04,268 [DEBUG][       Thread-608923][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:21:04,269 [DEBUG][       Thread-608923][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:21:04,269 [DEBUG][       Thread-608923][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:21:04,269 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:21:04,270 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:21:04,271 [DEBUG][       Thread-608923][   transport.py][1871] : userauth is OK
2025-07-01 15:21:04,284 [ INFO][       Thread-608923][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:21:04,285 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:21:04,938 [DEBUG][       Thread-608923][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:21:04,938 [DEBUG][       Thread-608923][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:21:04,981 [DEBUG][       Thread-608923][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:21:04,981 [DEBUG][       Thread-608923][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:21:04,984 [DEBUG][       Thread-608923][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:21:04,996 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:21:04,997 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:21:04,999 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:21:05,001 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:21:05,006 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:21:05,008 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:21:05,009 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:21:05,009 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:21:05,009 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.555843 -999.00  +14.00  38.92     50   +3.80 1 1 2 1 1   887    0 10.02 -0.46 ----- 46.0 38.9 32.8 49.6 16.4 -23.9 15.7 -24.6 16.0 -23.4 16.7 -22.5
2025-07-01 15:21:05,009 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:21:05,009 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:21:05,010 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.555843
2025-07-01 15:21:05,010 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:21:05,010 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:21:05,011 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:21:05,011 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:21:05,011 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:21:05,011 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:20:47', tmtdew=11.64, humidity=45.44, cloud=0.0, wind=31.74, temperature=14.32, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:20:24.835', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:21:05,011 [DEBUG][       Thread-608923][   transport.py][1871] : EOF in transport thread
2025-07-01 15:21:05,094 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:21:05,104 [DEBUG][       Thread-608926][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 15:21:05,104 [DEBUG][       Thread-608926][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:21:05,119 [DEBUG][       Thread-608926][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:21:05,119 [ INFO][       Thread-608926][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:21:05,127 [DEBUG][       Thread-608926][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:21:05,127 [DEBUG][       Thread-608926][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:21:05,127 [DEBUG][       Thread-608926][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:21:05,127 [DEBUG][       Thread-608926][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:21:05,127 [DEBUG][       Thread-608926][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:21:05,127 [DEBUG][       Thread-608926][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:21:05,127 [DEBUG][       Thread-608926][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:21:05,127 [DEBUG][       Thread-608926][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:21:05,127 [DEBUG][       Thread-608926][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:21:05,127 [DEBUG][       Thread-608926][   transport.py][1871] : client lang: <none>
2025-07-01 15:21:05,127 [DEBUG][       Thread-608926][   transport.py][1871] : server lang: <none>
2025-07-01 15:21:05,127 [DEBUG][       Thread-608926][   transport.py][1871] : kex follows: False
2025-07-01 15:21:05,127 [DEBUG][       Thread-608926][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:21:05,127 [DEBUG][       Thread-608926][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:21:05,127 [DEBUG][       Thread-608926][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:21:05,127 [DEBUG][       Thread-608926][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:21:05,127 [DEBUG][       Thread-608926][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:21:05,127 [DEBUG][       Thread-608926][   transport.py][1871] : Compression: none
2025-07-01 15:21:05,127 [DEBUG][       Thread-608926][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:21:05,185 [DEBUG][       Thread-608926][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:21:05,185 [DEBUG][       Thread-608926][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:21:05,186 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:21:05,186 [DEBUG][       Thread-608926][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:21:05,187 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:21:05,244 [DEBUG][       Thread-608926][   transport.py][1871] : userauth is OK
2025-07-01 15:21:05,244 [DEBUG][       Thread-608926][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:21:05,244 [DEBUG][       Thread-608926][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:21:05,245 [DEBUG][       Thread-608926][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:21:05,245 [DEBUG][       Thread-608926][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:21:05,264 [ INFO][       Thread-608926][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:21:05,265 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:21:05,265 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:21:06,281 [DEBUG][       Thread-608926][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:21:06,281 [DEBUG][       Thread-608926][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:21:06,332 [DEBUG][       Thread-608926][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:21:06,332 [DEBUG][       Thread-608926][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:21:06,342 [DEBUG][       Thread-608926][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:21:06,351 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:21:06,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-07-01 15:21:06,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-07-01 15:21:06,369 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:21:06,370 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:21:06,370 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:21:06,378 [DEBUG][       Thread-608926][   transport.py][1871] : EOF in transport thread
2025-07-01 15:21:07,080 [DEBUG][Thread-608928 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:21:16,097 [DEBUG][Thread-608929 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:21:16,379 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:21:16,379 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:21:16,379 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:21:16,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-07-01 15:21:16,863 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 20, 47), 11.64, 45.44, 0.0, 31.74, 14.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:21:16,863 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:20:47
2025-07-01 15:21:16,947 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:21:16,953 [DEBUG][       Thread-608930][   transport.py][1871] : starting thread (client mode): 0x8155690
2025-07-01 15:21:16,953 [DEBUG][       Thread-608930][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:21:16,966 [DEBUG][       Thread-608930][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:21:16,966 [ INFO][       Thread-608930][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:21:16,967 [DEBUG][       Thread-608930][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:21:16,967 [DEBUG][       Thread-608930][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:21:16,967 [DEBUG][       Thread-608930][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:21:16,967 [DEBUG][       Thread-608930][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:21:16,967 [DEBUG][       Thread-608930][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:21:16,967 [DEBUG][       Thread-608930][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:21:16,967 [DEBUG][       Thread-608930][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:21:16,967 [DEBUG][       Thread-608930][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:21:16,967 [DEBUG][       Thread-608930][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:21:16,967 [DEBUG][       Thread-608930][   transport.py][1871] : client lang: <none>
2025-07-01 15:21:16,967 [DEBUG][       Thread-608930][   transport.py][1871] : server lang: <none>
2025-07-01 15:21:16,967 [DEBUG][       Thread-608930][   transport.py][1871] : kex follows: False
2025-07-01 15:21:16,967 [DEBUG][       Thread-608930][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:21:16,967 [DEBUG][       Thread-608930][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:21:16,968 [DEBUG][       Thread-608930][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:21:16,968 [DEBUG][       Thread-608930][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:21:16,968 [DEBUG][       Thread-608930][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:21:16,968 [DEBUG][       Thread-608930][   transport.py][1871] : Compression: none
2025-07-01 15:21:16,968 [DEBUG][       Thread-608930][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:21:16,974 [DEBUG][       Thread-608930][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:21:16,974 [DEBUG][       Thread-608930][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:21:16,975 [DEBUG][       Thread-608930][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:21:16,975 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:21:16,975 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:21:16,975 [DEBUG][       Thread-608930][   transport.py][1871] : userauth is OK
2025-07-01 15:21:16,987 [ INFO][       Thread-608930][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:21:16,987 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:21:17,801 [DEBUG][       Thread-608930][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:21:17,802 [DEBUG][       Thread-608930][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:21:17,845 [DEBUG][       Thread-608930][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:21:17,845 [DEBUG][       Thread-608930][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:21:17,847 [DEBUG][       Thread-608930][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:21:17,859 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:21:17,859 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:21:17,860 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:21:17,861 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:21:17,866 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:21:17,867 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:21:17,867 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:21:17,868 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:21:17,868 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.555843 -999.00  +14.00  38.92     50   +3.80 1 1 2 1 1   887    0 10.02 -0.46 ----- 46.0 38.9 32.8 49.6 16.4 -23.9 15.7 -24.6 16.0 -23.4 16.7 -22.5
2025-07-01 15:21:17,868 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:21:17,868 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:21:17,868 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.555843
2025-07-01 15:21:17,869 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:21:17,869 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:21:17,869 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:21:17,870 [DEBUG][       Thread-608930][   transport.py][1871] : EOF in transport thread
2025-07-01 15:21:17,870 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:21:17,870 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:21:17,871 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:20:47', tmtdew=11.64, humidity=45.44, cloud=0.0, wind=31.74, temperature=14.32, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:20:24.835', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:21:17,954 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:21:17,965 [DEBUG][       Thread-608933][   transport.py][1871] : starting thread (client mode): 0x83938e0
2025-07-01 15:21:17,965 [DEBUG][       Thread-608933][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:21:17,980 [DEBUG][       Thread-608933][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:21:17,980 [ INFO][       Thread-608933][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:21:17,988 [DEBUG][       Thread-608933][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:21:17,988 [DEBUG][       Thread-608933][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:21:17,988 [DEBUG][       Thread-608933][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:21:17,988 [DEBUG][       Thread-608933][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:21:17,988 [DEBUG][       Thread-608933][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:21:17,988 [DEBUG][       Thread-608933][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:21:17,988 [DEBUG][       Thread-608933][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:21:17,988 [DEBUG][       Thread-608933][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:21:17,988 [DEBUG][       Thread-608933][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:21:17,988 [DEBUG][       Thread-608933][   transport.py][1871] : client lang: <none>
2025-07-01 15:21:17,988 [DEBUG][       Thread-608933][   transport.py][1871] : server lang: <none>
2025-07-01 15:21:17,988 [DEBUG][       Thread-608933][   transport.py][1871] : kex follows: False
2025-07-01 15:21:17,988 [DEBUG][       Thread-608933][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:21:17,988 [DEBUG][       Thread-608933][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:21:17,988 [DEBUG][       Thread-608933][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:21:17,988 [DEBUG][       Thread-608933][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:21:17,988 [DEBUG][       Thread-608933][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:21:17,988 [DEBUG][       Thread-608933][   transport.py][1871] : Compression: none
2025-07-01 15:21:17,988 [DEBUG][       Thread-608933][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:21:18,047 [DEBUG][       Thread-608933][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:21:18,047 [DEBUG][       Thread-608933][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:21:18,048 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:21:18,048 [DEBUG][       Thread-608933][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:21:18,049 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:21:18,103 [DEBUG][       Thread-608933][   transport.py][1871] : userauth is OK
2025-07-01 15:21:18,104 [DEBUG][       Thread-608933][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:21:18,104 [DEBUG][       Thread-608933][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:21:18,104 [DEBUG][       Thread-608933][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:21:18,104 [DEBUG][       Thread-608933][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:21:18,122 [ INFO][       Thread-608933][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:21:18,123 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:21:18,123 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:21:19,109 [DEBUG][       Thread-608933][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:21:19,109 [DEBUG][       Thread-608933][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:21:19,160 [DEBUG][       Thread-608933][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:21:19,160 [DEBUG][       Thread-608933][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:21:19,169 [DEBUG][       Thread-608933][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:21:19,178 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:21:19,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-07-01 15:21:19,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') -> 00000000
2025-07-01 15:21:19,197 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:21:19,197 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:21:19,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:21:19,205 [DEBUG][       Thread-608933][   transport.py][1871] : EOF in transport thread
2025-07-01 15:21:25,120 [DEBUG][Thread-608935 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:21:29,208 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:21:29,208 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:21:29,208 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:21:29,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-07-01 15:21:29,686 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 21, 19), 11.57, 45.53, 0.0, 31.18, 14.25, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:21:29,686 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:21:19
2025-07-01 15:21:29,769 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:21:29,775 [DEBUG][       Thread-608936][   transport.py][1871] : starting thread (client mode): 0x81cb760
2025-07-01 15:21:29,778 [DEBUG][       Thread-608936][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:21:29,795 [DEBUG][       Thread-608936][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:21:29,795 [ INFO][       Thread-608936][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:21:29,799 [DEBUG][       Thread-608936][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:21:29,799 [DEBUG][       Thread-608936][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:21:29,799 [DEBUG][       Thread-608936][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:21:29,799 [DEBUG][       Thread-608936][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:21:29,799 [DEBUG][       Thread-608936][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:21:29,799 [DEBUG][       Thread-608936][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:21:29,799 [DEBUG][       Thread-608936][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:21:29,799 [DEBUG][       Thread-608936][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:21:29,799 [DEBUG][       Thread-608936][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:21:29,799 [DEBUG][       Thread-608936][   transport.py][1871] : client lang: <none>
2025-07-01 15:21:29,799 [DEBUG][       Thread-608936][   transport.py][1871] : server lang: <none>
2025-07-01 15:21:29,799 [DEBUG][       Thread-608936][   transport.py][1871] : kex follows: False
2025-07-01 15:21:29,799 [DEBUG][       Thread-608936][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:21:29,799 [DEBUG][       Thread-608936][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:21:29,799 [DEBUG][       Thread-608936][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:21:29,799 [DEBUG][       Thread-608936][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:21:29,799 [DEBUG][       Thread-608936][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:21:29,799 [DEBUG][       Thread-608936][   transport.py][1871] : Compression: none
2025-07-01 15:21:29,799 [DEBUG][       Thread-608936][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:21:29,816 [DEBUG][       Thread-608936][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:21:29,816 [DEBUG][       Thread-608936][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:21:29,817 [DEBUG][       Thread-608936][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:21:29,817 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:21:29,817 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:21:29,861 [DEBUG][       Thread-608936][   transport.py][1871] : userauth is OK
2025-07-01 15:21:29,885 [ INFO][       Thread-608936][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:21:29,886 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:21:30,522 [DEBUG][       Thread-608936][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:21:30,522 [DEBUG][       Thread-608936][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:21:30,565 [DEBUG][       Thread-608936][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:21:30,565 [DEBUG][       Thread-608936][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:21:30,568 [DEBUG][       Thread-608936][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:21:30,580 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:21:30,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:21:30,583 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:21:30,584 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:21:30,590 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:21:30,592 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:21:30,592 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:21:30,592 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:21:30,593 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.556190 -999.00  +14.00  29.76     50   +4.00 1 1 1 1 1   887    0 10.11 -0.91 ----- 32.6 29.8 16.1 51.5 16.4 -23.7 15.7 -24.9 16.0 -22.9 16.6 -22.7
2025-07-01 15:21:30,593 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:21:30,593 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:21:30,593 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.556190
2025-07-01 15:21:30,593 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:21:30,594 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:21:30,594 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:21:30,594 [DEBUG][       Thread-608936][   transport.py][1871] : EOF in transport thread
2025-07-01 15:21:30,594 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:21:30,595 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:21:30,595 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:21:19', tmtdew=11.57, humidity=45.53, cloud=0.0, wind=31.18, temperature=14.25, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:20:54.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:21:30,678 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:21:30,690 [DEBUG][       Thread-608939][   transport.py][1871] : starting thread (client mode): 0x83c84f0
2025-07-01 15:21:30,690 [DEBUG][       Thread-608939][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:21:30,706 [DEBUG][       Thread-608939][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:21:30,706 [ INFO][       Thread-608939][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:21:30,713 [DEBUG][       Thread-608939][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:21:30,713 [DEBUG][       Thread-608939][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:21:30,713 [DEBUG][       Thread-608939][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:21:30,713 [DEBUG][       Thread-608939][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:21:30,713 [DEBUG][       Thread-608939][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:21:30,713 [DEBUG][       Thread-608939][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:21:30,714 [DEBUG][       Thread-608939][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:21:30,714 [DEBUG][       Thread-608939][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:21:30,714 [DEBUG][       Thread-608939][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:21:30,714 [DEBUG][       Thread-608939][   transport.py][1871] : client lang: <none>
2025-07-01 15:21:30,714 [DEBUG][       Thread-608939][   transport.py][1871] : server lang: <none>
2025-07-01 15:21:30,714 [DEBUG][       Thread-608939][   transport.py][1871] : kex follows: False
2025-07-01 15:21:30,714 [DEBUG][       Thread-608939][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:21:30,714 [DEBUG][       Thread-608939][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:21:30,714 [DEBUG][       Thread-608939][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:21:30,714 [DEBUG][       Thread-608939][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:21:30,714 [DEBUG][       Thread-608939][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:21:30,714 [DEBUG][       Thread-608939][   transport.py][1871] : Compression: none
2025-07-01 15:21:30,714 [DEBUG][       Thread-608939][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:21:30,774 [DEBUG][       Thread-608939][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:21:30,775 [DEBUG][       Thread-608939][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:21:30,775 [DEBUG][       Thread-608939][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:21:30,776 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:21:30,776 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:21:30,831 [DEBUG][       Thread-608939][   transport.py][1871] : userauth is OK
2025-07-01 15:21:30,831 [DEBUG][       Thread-608939][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:21:30,831 [DEBUG][       Thread-608939][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:21:30,831 [DEBUG][       Thread-608939][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:21:30,832 [DEBUG][       Thread-608939][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:21:30,855 [ INFO][       Thread-608939][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:21:30,855 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:21:30,855 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:21:31,906 [DEBUG][       Thread-608939][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:21:31,906 [DEBUG][       Thread-608939][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:21:31,956 [DEBUG][       Thread-608939][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:21:31,956 [DEBUG][       Thread-608939][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:21:31,965 [DEBUG][       Thread-608939][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:21:31,974 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:21:31,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-07-01 15:21:31,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-07-01 15:21:31,993 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:21:31,993 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:21:31,994 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:21:32,002 [DEBUG][       Thread-608939][   transport.py][1871] : EOF in transport thread
2025-07-01 15:21:34,141 [DEBUG][Thread-608941 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:21:36,642 [DEBUG][Thread-608942 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:21:42,004 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:21:42,005 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:21:42,005 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:21:42,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-07-01 15:21:42,483 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 21, 19), 11.57, 45.53, 0.0, 31.18, 14.25, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:21:42,483 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:21:19
2025-07-01 15:21:42,566 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:21:42,570 [DEBUG][       Thread-608943][   transport.py][1871] : starting thread (client mode): 0x81722f0
2025-07-01 15:21:42,570 [DEBUG][       Thread-608943][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:21:42,593 [DEBUG][       Thread-608943][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:21:42,593 [ INFO][       Thread-608943][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:21:42,596 [DEBUG][       Thread-608943][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:21:42,596 [DEBUG][       Thread-608943][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:21:42,596 [DEBUG][       Thread-608943][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:21:42,596 [DEBUG][       Thread-608943][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:21:42,596 [DEBUG][       Thread-608943][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:21:42,596 [DEBUG][       Thread-608943][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:21:42,596 [DEBUG][       Thread-608943][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:21:42,596 [DEBUG][       Thread-608943][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:21:42,596 [DEBUG][       Thread-608943][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:21:42,596 [DEBUG][       Thread-608943][   transport.py][1871] : client lang: <none>
2025-07-01 15:21:42,596 [DEBUG][       Thread-608943][   transport.py][1871] : server lang: <none>
2025-07-01 15:21:42,596 [DEBUG][       Thread-608943][   transport.py][1871] : kex follows: False
2025-07-01 15:21:42,596 [DEBUG][       Thread-608943][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:21:42,596 [DEBUG][       Thread-608943][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:21:42,596 [DEBUG][       Thread-608943][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:21:42,596 [DEBUG][       Thread-608943][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:21:42,596 [DEBUG][       Thread-608943][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:21:42,596 [DEBUG][       Thread-608943][   transport.py][1871] : Compression: none
2025-07-01 15:21:42,596 [DEBUG][       Thread-608943][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:21:42,612 [DEBUG][       Thread-608943][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:21:42,613 [DEBUG][       Thread-608943][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:21:42,613 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:21:42,614 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:21:42,614 [DEBUG][       Thread-608943][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:21:42,615 [DEBUG][       Thread-608943][   transport.py][1871] : userauth is OK
2025-07-01 15:21:42,640 [ INFO][       Thread-608943][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:21:42,640 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:21:43,174 [DEBUG][Thread-608945 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:21:43,306 [DEBUG][       Thread-608943][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:21:43,306 [DEBUG][       Thread-608943][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:21:43,349 [DEBUG][       Thread-608943][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:21:43,349 [DEBUG][       Thread-608943][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:21:43,353 [DEBUG][       Thread-608943][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:21:43,364 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:21:43,365 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:21:43,367 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:21:43,369 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:21:43,374 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:21:43,377 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:21:43,377 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:21:43,377 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:21:43,378 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.556190 -999.00  +14.00  29.76     50   +4.00 1 1 1 1 1   887    0 10.11 -0.91 ----- 32.6 29.8 16.1 51.5 16.4 -23.7 15.7 -24.9 16.0 -22.9 16.6 -22.7
2025-07-01 15:21:43,378 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:21:43,378 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:21:43,378 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.556190
2025-07-01 15:21:43,378 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:21:43,379 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:21:43,379 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:21:43,379 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:21:43,379 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:21:43,379 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:21:19', tmtdew=11.57, humidity=45.53, cloud=0.0, wind=31.18, temperature=14.25, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:20:54.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:21:43,379 [DEBUG][       Thread-608943][   transport.py][1871] : EOF in transport thread
2025-07-01 15:21:43,463 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:21:43,479 [DEBUG][       Thread-608947][   transport.py][1871] : starting thread (client mode): 0x81ca770
2025-07-01 15:21:43,479 [DEBUG][       Thread-608947][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:21:43,494 [DEBUG][       Thread-608947][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:21:43,494 [ INFO][       Thread-608947][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:21:43,502 [DEBUG][       Thread-608947][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:21:43,502 [DEBUG][       Thread-608947][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:21:43,502 [DEBUG][       Thread-608947][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:21:43,502 [DEBUG][       Thread-608947][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:21:43,502 [DEBUG][       Thread-608947][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:21:43,502 [DEBUG][       Thread-608947][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:21:43,502 [DEBUG][       Thread-608947][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:21:43,502 [DEBUG][       Thread-608947][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:21:43,502 [DEBUG][       Thread-608947][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:21:43,502 [DEBUG][       Thread-608947][   transport.py][1871] : client lang: <none>
2025-07-01 15:21:43,502 [DEBUG][       Thread-608947][   transport.py][1871] : server lang: <none>
2025-07-01 15:21:43,502 [DEBUG][       Thread-608947][   transport.py][1871] : kex follows: False
2025-07-01 15:21:43,503 [DEBUG][       Thread-608947][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:21:43,503 [DEBUG][       Thread-608947][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:21:43,503 [DEBUG][       Thread-608947][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:21:43,503 [DEBUG][       Thread-608947][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:21:43,503 [DEBUG][       Thread-608947][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:21:43,503 [DEBUG][       Thread-608947][   transport.py][1871] : Compression: none
2025-07-01 15:21:43,503 [DEBUG][       Thread-608947][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:21:43,559 [DEBUG][       Thread-608947][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:21:43,560 [DEBUG][       Thread-608947][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:21:43,560 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:21:43,561 [DEBUG][       Thread-608947][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:21:43,562 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:21:43,615 [DEBUG][       Thread-608947][   transport.py][1871] : userauth is OK
2025-07-01 15:21:43,616 [DEBUG][       Thread-608947][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:21:43,616 [DEBUG][       Thread-608947][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:21:43,616 [DEBUG][       Thread-608947][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:21:43,616 [DEBUG][       Thread-608947][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:21:43,634 [ INFO][       Thread-608947][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:21:43,635 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:21:43,635 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:21:44,642 [DEBUG][       Thread-608947][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:21:44,642 [DEBUG][       Thread-608947][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:21:44,691 [DEBUG][       Thread-608947][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:21:44,691 [DEBUG][       Thread-608947][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:21:44,700 [DEBUG][       Thread-608947][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:21:44,709 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:21:44,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-07-01 15:21:44,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-07-01 15:21:44,727 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:21:44,727 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:21:44,727 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:21:44,735 [DEBUG][       Thread-608947][   transport.py][1871] : EOF in transport thread
2025-07-01 15:21:52,195 [DEBUG][Thread-608949 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:21:54,738 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:21:54,738 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:21:54,738 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:21:54,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-07-01 15:21:55,209 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 21, 50), 11.57, 45.54, 0.0, 32.45, 14.28, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:21:55,209 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:21:50
2025-07-01 15:21:55,292 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:21:55,298 [DEBUG][       Thread-608950][   transport.py][1871] : starting thread (client mode): 0x8173850
2025-07-01 15:21:55,298 [DEBUG][       Thread-608950][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:21:55,318 [DEBUG][       Thread-608950][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:21:55,318 [ INFO][       Thread-608950][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:21:55,320 [DEBUG][       Thread-608950][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:21:55,320 [DEBUG][       Thread-608950][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:21:55,320 [DEBUG][       Thread-608950][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:21:55,320 [DEBUG][       Thread-608950][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:21:55,320 [DEBUG][       Thread-608950][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:21:55,320 [DEBUG][       Thread-608950][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:21:55,320 [DEBUG][       Thread-608950][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:21:55,320 [DEBUG][       Thread-608950][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:21:55,320 [DEBUG][       Thread-608950][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:21:55,320 [DEBUG][       Thread-608950][   transport.py][1871] : client lang: <none>
2025-07-01 15:21:55,320 [DEBUG][       Thread-608950][   transport.py][1871] : server lang: <none>
2025-07-01 15:21:55,320 [DEBUG][       Thread-608950][   transport.py][1871] : kex follows: False
2025-07-01 15:21:55,320 [DEBUG][       Thread-608950][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:21:55,320 [DEBUG][       Thread-608950][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:21:55,320 [DEBUG][       Thread-608950][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:21:55,320 [DEBUG][       Thread-608950][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:21:55,320 [DEBUG][       Thread-608950][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:21:55,320 [DEBUG][       Thread-608950][   transport.py][1871] : Compression: none
2025-07-01 15:21:55,320 [DEBUG][       Thread-608950][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:21:55,327 [DEBUG][       Thread-608950][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:21:55,328 [DEBUG][       Thread-608950][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:21:55,328 [DEBUG][       Thread-608950][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:21:55,328 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:21:55,328 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:21:55,328 [DEBUG][       Thread-608950][   transport.py][1871] : userauth is OK
2025-07-01 15:21:55,340 [ INFO][       Thread-608950][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:21:55,341 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:21:55,961 [DEBUG][       Thread-608950][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:21:55,962 [DEBUG][       Thread-608950][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:21:56,005 [DEBUG][       Thread-608950][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:21:56,005 [DEBUG][       Thread-608950][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:21:56,007 [DEBUG][       Thread-608950][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:21:56,021 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:21:56,022 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:21:56,023 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:21:56,025 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:21:56,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:21:56,033 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:21:56,033 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:21:56,034 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:21:56,034 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.556190 -999.00  +14.00  29.76     50   +4.00 1 1 1 1 1   887    0 10.11 -0.91 ----- 32.6 29.8 16.1 51.5 16.4 -23.7 15.7 -24.9 16.0 -22.9 16.6 -22.7
2025-07-01 15:21:56,034 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:21:56,034 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:21:56,034 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.556190
2025-07-01 15:21:56,034 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:21:56,035 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:21:56,035 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:21:56,035 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:21:56,035 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:21:56,035 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:21:50', tmtdew=11.57, humidity=45.54, cloud=0.0, wind=32.45, temperature=14.28, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:20:54.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:21:56,036 [DEBUG][       Thread-608950][   transport.py][1871] : EOF in transport thread
2025-07-01 15:21:56,120 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:21:56,131 [DEBUG][       Thread-608953][   transport.py][1871] : starting thread (client mode): 0x75ab310
2025-07-01 15:21:56,132 [DEBUG][       Thread-608953][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:21:56,148 [DEBUG][       Thread-608953][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:21:56,149 [ INFO][       Thread-608953][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:21:56,156 [DEBUG][       Thread-608953][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:21:56,156 [DEBUG][       Thread-608953][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:21:56,156 [DEBUG][       Thread-608953][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:21:56,156 [DEBUG][       Thread-608953][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:21:56,156 [DEBUG][       Thread-608953][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:21:56,156 [DEBUG][       Thread-608953][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:21:56,157 [DEBUG][       Thread-608953][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:21:56,157 [DEBUG][       Thread-608953][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:21:56,157 [DEBUG][       Thread-608953][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:21:56,157 [DEBUG][       Thread-608953][   transport.py][1871] : client lang: <none>
2025-07-01 15:21:56,157 [DEBUG][       Thread-608953][   transport.py][1871] : server lang: <none>
2025-07-01 15:21:56,157 [DEBUG][       Thread-608953][   transport.py][1871] : kex follows: False
2025-07-01 15:21:56,157 [DEBUG][       Thread-608953][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:21:56,157 [DEBUG][       Thread-608953][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:21:56,157 [DEBUG][       Thread-608953][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:21:56,157 [DEBUG][       Thread-608953][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:21:56,157 [DEBUG][       Thread-608953][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:21:56,157 [DEBUG][       Thread-608953][   transport.py][1871] : Compression: none
2025-07-01 15:21:56,157 [DEBUG][       Thread-608953][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:21:56,218 [DEBUG][       Thread-608953][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:21:56,219 [DEBUG][       Thread-608953][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:21:56,219 [DEBUG][       Thread-608953][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:21:56,220 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:21:56,220 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:21:56,275 [DEBUG][       Thread-608953][   transport.py][1871] : userauth is OK
2025-07-01 15:21:56,276 [DEBUG][       Thread-608953][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:21:56,276 [DEBUG][       Thread-608953][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:21:56,276 [DEBUG][       Thread-608953][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:21:56,276 [DEBUG][       Thread-608953][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:21:56,295 [ INFO][       Thread-608953][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:21:56,295 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:21:56,296 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:21:57,337 [DEBUG][       Thread-608953][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:21:57,337 [DEBUG][       Thread-608953][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:21:57,388 [DEBUG][       Thread-608953][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:21:57,388 [DEBUG][       Thread-608953][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:21:57,397 [DEBUG][       Thread-608953][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:21:57,406 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:21:57,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-07-01 15:21:57,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-07-01 15:21:57,423 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:21:57,423 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:21:57,424 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:21:57,431 [DEBUG][       Thread-608953][   transport.py][1871] : EOF in transport thread
2025-07-01 15:22:01,211 [DEBUG][Thread-608955 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:22:07,434 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:22:07,434 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:22:07,434 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:22:07,437 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 15:22:07,915 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 21, 50), 11.57, 45.54, 0.0, 32.45, 14.28, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:22:07,915 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:21:50
2025-07-01 15:22:07,998 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:22:08,002 [DEBUG][       Thread-608956][   transport.py][1871] : starting thread (client mode): 0x8173e20
2025-07-01 15:22:08,002 [DEBUG][       Thread-608956][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:22:08,023 [DEBUG][       Thread-608956][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:22:08,023 [ INFO][       Thread-608956][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:22:08,027 [DEBUG][       Thread-608956][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:22:08,027 [DEBUG][       Thread-608956][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:22:08,027 [DEBUG][       Thread-608956][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:22:08,027 [DEBUG][       Thread-608956][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:22:08,027 [DEBUG][       Thread-608956][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:22:08,027 [DEBUG][       Thread-608956][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:22:08,027 [DEBUG][       Thread-608956][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:22:08,027 [DEBUG][       Thread-608956][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:22:08,027 [DEBUG][       Thread-608956][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:22:08,027 [DEBUG][       Thread-608956][   transport.py][1871] : client lang: <none>
2025-07-01 15:22:08,027 [DEBUG][       Thread-608956][   transport.py][1871] : server lang: <none>
2025-07-01 15:22:08,027 [DEBUG][       Thread-608956][   transport.py][1871] : kex follows: False
2025-07-01 15:22:08,027 [DEBUG][       Thread-608956][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:22:08,027 [DEBUG][       Thread-608956][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:22:08,027 [DEBUG][       Thread-608956][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:22:08,027 [DEBUG][       Thread-608956][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:22:08,027 [DEBUG][       Thread-608956][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:22:08,027 [DEBUG][       Thread-608956][   transport.py][1871] : Compression: none
2025-07-01 15:22:08,027 [DEBUG][       Thread-608956][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:22:08,044 [DEBUG][       Thread-608956][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:22:08,044 [DEBUG][       Thread-608956][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:22:08,045 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:22:08,045 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:22:08,045 [DEBUG][       Thread-608956][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:22:08,046 [DEBUG][       Thread-608956][   transport.py][1871] : userauth is OK
2025-07-01 15:22:08,059 [ INFO][       Thread-608956][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:22:08,060 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:22:08,697 [DEBUG][       Thread-608956][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:22:08,697 [DEBUG][       Thread-608956][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:22:08,740 [DEBUG][       Thread-608956][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:22:08,741 [DEBUG][       Thread-608956][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:22:08,743 [DEBUG][       Thread-608956][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:22:08,754 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:22:08,754 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:22:08,755 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:22:08,756 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:22:08,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:22:08,760 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:22:08,760 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:22:08,761 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:22:08,761 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.556884 -999.00  +14.00  35.22     50   +4.00 1 1 2 1 1   887    0 10.01 -2.37 ----- 31.4 35.2 26.4 45.7 16.4 -23.3 15.6 -24.6 16.1 -23.0 16.7 -23.1
2025-07-01 15:22:08,761 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:22:08,761 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:22:08,761 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.556884
2025-07-01 15:22:08,761 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:22:08,761 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:22:08,761 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:22:08,761 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:22:08,761 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:22:08,761 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:21:50', tmtdew=11.57, humidity=45.54, cloud=0.0, wind=32.45, temperature=14.28, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:21:54.778', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:22:08,762 [DEBUG][       Thread-608956][   transport.py][1871] : EOF in transport thread
2025-07-01 15:22:08,832 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:22:08,841 [DEBUG][       Thread-608959][   transport.py][1871] : starting thread (client mode): 0x75a8cd0
2025-07-01 15:22:08,841 [DEBUG][       Thread-608959][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:22:08,857 [DEBUG][       Thread-608959][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:22:08,857 [ INFO][       Thread-608959][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:22:08,864 [DEBUG][       Thread-608959][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:22:08,865 [DEBUG][       Thread-608959][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:22:08,865 [DEBUG][       Thread-608959][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:22:08,865 [DEBUG][       Thread-608959][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:22:08,865 [DEBUG][       Thread-608959][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:22:08,865 [DEBUG][       Thread-608959][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:22:08,865 [DEBUG][       Thread-608959][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:22:08,865 [DEBUG][       Thread-608959][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:22:08,865 [DEBUG][       Thread-608959][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:22:08,865 [DEBUG][       Thread-608959][   transport.py][1871] : client lang: <none>
2025-07-01 15:22:08,865 [DEBUG][       Thread-608959][   transport.py][1871] : server lang: <none>
2025-07-01 15:22:08,865 [DEBUG][       Thread-608959][   transport.py][1871] : kex follows: False
2025-07-01 15:22:08,865 [DEBUG][       Thread-608959][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:22:08,865 [DEBUG][       Thread-608959][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:22:08,865 [DEBUG][       Thread-608959][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:22:08,865 [DEBUG][       Thread-608959][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:22:08,865 [DEBUG][       Thread-608959][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:22:08,865 [DEBUG][       Thread-608959][   transport.py][1871] : Compression: none
2025-07-01 15:22:08,865 [DEBUG][       Thread-608959][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:22:08,925 [DEBUG][       Thread-608959][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:22:08,925 [DEBUG][       Thread-608959][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:22:08,926 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:22:08,926 [DEBUG][       Thread-608959][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:22:08,927 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:22:08,983 [DEBUG][       Thread-608959][   transport.py][1871] : userauth is OK
2025-07-01 15:22:08,983 [DEBUG][       Thread-608959][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:22:08,984 [DEBUG][       Thread-608959][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:22:08,984 [DEBUG][       Thread-608959][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:22:08,984 [DEBUG][       Thread-608959][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:22:09,003 [ INFO][       Thread-608959][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:22:09,003 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:22:09,003 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:22:10,011 [DEBUG][       Thread-608959][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:22:10,012 [DEBUG][       Thread-608959][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:22:10,060 [DEBUG][       Thread-608959][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:22:10,060 [DEBUG][       Thread-608959][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:22:10,070 [DEBUG][       Thread-608959][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:22:10,079 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:22:10,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-07-01 15:22:10,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-07-01 15:22:10,097 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:22:10,097 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:22:10,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:22:10,105 [DEBUG][       Thread-608959][   transport.py][1871] : EOF in transport thread
2025-07-01 15:22:10,236 [DEBUG][Thread-608961 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:22:19,259 [DEBUG][Thread-608962 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:22:20,108 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:22:20,108 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:22:20,108 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:22:20,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-07-01 15:22:20,575 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 21, 50), 11.57, 45.54, 0.0, 32.45, 14.28, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:22:20,575 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:21:50
2025-07-01 15:22:20,658 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:22:20,664 [DEBUG][       Thread-608963][   transport.py][1871] : starting thread (client mode): 0x75a9e10
2025-07-01 15:22:20,664 [DEBUG][       Thread-608963][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:22:20,683 [DEBUG][       Thread-608963][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:22:20,683 [ INFO][       Thread-608963][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:22:20,686 [DEBUG][       Thread-608963][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:22:20,687 [DEBUG][       Thread-608963][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:22:20,687 [DEBUG][       Thread-608963][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:22:20,687 [DEBUG][       Thread-608963][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:22:20,687 [DEBUG][       Thread-608963][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:22:20,687 [DEBUG][       Thread-608963][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:22:20,687 [DEBUG][       Thread-608963][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:22:20,687 [DEBUG][       Thread-608963][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:22:20,687 [DEBUG][       Thread-608963][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:22:20,687 [DEBUG][       Thread-608963][   transport.py][1871] : client lang: <none>
2025-07-01 15:22:20,687 [DEBUG][       Thread-608963][   transport.py][1871] : server lang: <none>
2025-07-01 15:22:20,687 [DEBUG][       Thread-608963][   transport.py][1871] : kex follows: False
2025-07-01 15:22:20,687 [DEBUG][       Thread-608963][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:22:20,687 [DEBUG][       Thread-608963][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:22:20,687 [DEBUG][       Thread-608963][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:22:20,687 [DEBUG][       Thread-608963][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:22:20,687 [DEBUG][       Thread-608963][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:22:20,687 [DEBUG][       Thread-608963][   transport.py][1871] : Compression: none
2025-07-01 15:22:20,687 [DEBUG][       Thread-608963][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:22:20,705 [DEBUG][       Thread-608963][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:22:20,706 [DEBUG][       Thread-608963][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:22:20,706 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:22:20,707 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:22:20,707 [DEBUG][       Thread-608963][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:22:20,708 [DEBUG][       Thread-608963][   transport.py][1871] : userauth is OK
2025-07-01 15:22:20,720 [ INFO][       Thread-608963][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:22:20,721 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:22:21,364 [DEBUG][       Thread-608963][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:22:21,364 [DEBUG][       Thread-608963][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:22:21,405 [DEBUG][       Thread-608963][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:22:21,405 [DEBUG][       Thread-608963][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:22:21,408 [DEBUG][       Thread-608963][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:22:21,421 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:22:21,421 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:22:21,423 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:22:21,425 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:22:21,430 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:22:21,432 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:22:21,432 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:22:21,433 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:22:21,433 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.556884 -999.00  +14.00  35.22     50   +4.00 1 1 2 1 1   887    0 10.01 -2.37 ----- 31.4 35.2 26.4 45.7 16.4 -23.3 15.6 -24.6 16.1 -23.0 16.7 -23.1
2025-07-01 15:22:21,433 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:22:21,433 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:22:21,433 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.556884
2025-07-01 15:22:21,434 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:22:21,434 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:22:21,435 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:22:21,435 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:22:21,435 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:22:21,435 [DEBUG][       Thread-608963][   transport.py][1871] : EOF in transport thread
2025-07-01 15:22:21,435 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:21:50', tmtdew=11.57, humidity=45.54, cloud=0.0, wind=32.45, temperature=14.28, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:21:54.778', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:22:21,519 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:22:21,530 [DEBUG][       Thread-608966][   transport.py][1871] : starting thread (client mode): 0x81cb190
2025-07-01 15:22:21,530 [DEBUG][       Thread-608966][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:22:21,545 [DEBUG][       Thread-608966][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:22:21,545 [ INFO][       Thread-608966][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:22:21,552 [DEBUG][       Thread-608966][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:22:21,553 [DEBUG][       Thread-608966][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:22:21,553 [DEBUG][       Thread-608966][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:22:21,553 [DEBUG][       Thread-608966][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:22:21,553 [DEBUG][       Thread-608966][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:22:21,553 [DEBUG][       Thread-608966][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:22:21,553 [DEBUG][       Thread-608966][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:22:21,553 [DEBUG][       Thread-608966][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:22:21,553 [DEBUG][       Thread-608966][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:22:21,553 [DEBUG][       Thread-608966][   transport.py][1871] : client lang: <none>
2025-07-01 15:22:21,553 [DEBUG][       Thread-608966][   transport.py][1871] : server lang: <none>
2025-07-01 15:22:21,553 [DEBUG][       Thread-608966][   transport.py][1871] : kex follows: False
2025-07-01 15:22:21,553 [DEBUG][       Thread-608966][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:22:21,553 [DEBUG][       Thread-608966][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:22:21,553 [DEBUG][       Thread-608966][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:22:21,553 [DEBUG][       Thread-608966][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:22:21,553 [DEBUG][       Thread-608966][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:22:21,553 [DEBUG][       Thread-608966][   transport.py][1871] : Compression: none
2025-07-01 15:22:21,553 [DEBUG][       Thread-608966][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:22:21,612 [DEBUG][       Thread-608966][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:22:21,612 [DEBUG][       Thread-608966][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:22:21,613 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:22:21,613 [DEBUG][       Thread-608966][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:22:21,614 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:22:21,674 [DEBUG][       Thread-608966][   transport.py][1871] : userauth is OK
2025-07-01 15:22:21,674 [DEBUG][       Thread-608966][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:22:21,674 [DEBUG][       Thread-608966][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:22:21,674 [DEBUG][       Thread-608966][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:22:21,674 [DEBUG][       Thread-608966][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:22:21,692 [ INFO][       Thread-608966][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:22:21,693 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:22:21,693 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:22:22,732 [DEBUG][       Thread-608966][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:22:22,732 [DEBUG][       Thread-608966][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:22:22,785 [DEBUG][       Thread-608966][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:22:22,786 [DEBUG][       Thread-608966][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:22:22,795 [DEBUG][       Thread-608966][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:22:22,803 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:22:22,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-07-01 15:22:22,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-07-01 15:22:22,821 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:22:22,821 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:22:22,822 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:22:22,829 [DEBUG][       Thread-608966][   transport.py][1871] : EOF in transport thread
2025-07-01 15:22:28,283 [DEBUG][Thread-608968 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:22:32,832 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:22:32,832 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:22:32,832 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:22:32,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-07-01 15:22:33,319 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 22, 22), 11.61, 45.53, 0.0, 37.76, 14.31, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:22:33,319 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:22:22
2025-07-01 15:22:33,404 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:22:33,410 [DEBUG][       Thread-608969][   transport.py][1871] : starting thread (client mode): 0x81c8100
2025-07-01 15:22:33,410 [DEBUG][       Thread-608969][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:22:33,428 [DEBUG][       Thread-608969][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:22:33,428 [ INFO][       Thread-608969][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:22:33,430 [DEBUG][       Thread-608969][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:22:33,430 [DEBUG][       Thread-608969][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:22:33,430 [DEBUG][       Thread-608969][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:22:33,430 [DEBUG][       Thread-608969][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:22:33,430 [DEBUG][       Thread-608969][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:22:33,430 [DEBUG][       Thread-608969][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:22:33,430 [DEBUG][       Thread-608969][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:22:33,430 [DEBUG][       Thread-608969][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:22:33,430 [DEBUG][       Thread-608969][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:22:33,430 [DEBUG][       Thread-608969][   transport.py][1871] : client lang: <none>
2025-07-01 15:22:33,430 [DEBUG][       Thread-608969][   transport.py][1871] : server lang: <none>
2025-07-01 15:22:33,430 [DEBUG][       Thread-608969][   transport.py][1871] : kex follows: False
2025-07-01 15:22:33,430 [DEBUG][       Thread-608969][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:22:33,430 [DEBUG][       Thread-608969][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:22:33,430 [DEBUG][       Thread-608969][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:22:33,430 [DEBUG][       Thread-608969][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:22:33,430 [DEBUG][       Thread-608969][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:22:33,430 [DEBUG][       Thread-608969][   transport.py][1871] : Compression: none
2025-07-01 15:22:33,430 [DEBUG][       Thread-608969][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:22:33,440 [DEBUG][       Thread-608969][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:22:33,441 [DEBUG][       Thread-608969][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:22:33,441 [DEBUG][       Thread-608969][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:22:33,441 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:22:33,441 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:22:33,441 [DEBUG][       Thread-608969][   transport.py][1871] : userauth is OK
2025-07-01 15:22:33,454 [ INFO][       Thread-608969][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:22:33,454 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:22:34,057 [DEBUG][       Thread-608969][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:22:34,057 [DEBUG][       Thread-608969][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:22:34,101 [DEBUG][       Thread-608969][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:22:34,101 [DEBUG][       Thread-608969][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:22:34,104 [DEBUG][       Thread-608969][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:22:34,113 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:22:34,113 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:22:34,115 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:22:34,117 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:22:34,122 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:22:34,124 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:22:34,124 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:22:34,125 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:22:34,125 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.557232 -999.00  +14.10  34.95     50   +4.00 1 1 2 1 1   887    0 9.95 -3.16 ----- 34.4 35.0 22.4 46.3 16.4 -23.3 15.6 -24.5 16.1 -23.3 16.7 -22.7
2025-07-01 15:22:34,125 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:22:34,125 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:22:34,125 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.557232
2025-07-01 15:22:34,126 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:22:34,126 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:22:34,126 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:22:34,126 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:22:34,126 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:22:34,127 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:22:22', tmtdew=11.61, humidity=45.53, cloud=0.0, wind=37.76, temperature=14.31, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:22:24.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:22:34,128 [DEBUG][       Thread-608969][   transport.py][1871] : EOF in transport thread
2025-07-01 15:22:34,211 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:22:34,223 [DEBUG][       Thread-608972][   transport.py][1871] : starting thread (client mode): 0x8393910
2025-07-01 15:22:34,223 [DEBUG][       Thread-608972][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:22:34,239 [DEBUG][       Thread-608972][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:22:34,239 [ INFO][       Thread-608972][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:22:34,246 [DEBUG][       Thread-608972][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:22:34,246 [DEBUG][       Thread-608972][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:22:34,246 [DEBUG][       Thread-608972][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:22:34,246 [DEBUG][       Thread-608972][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:22:34,247 [DEBUG][       Thread-608972][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:22:34,247 [DEBUG][       Thread-608972][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:22:34,247 [DEBUG][       Thread-608972][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:22:34,247 [DEBUG][       Thread-608972][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:22:34,247 [DEBUG][       Thread-608972][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:22:34,247 [DEBUG][       Thread-608972][   transport.py][1871] : client lang: <none>
2025-07-01 15:22:34,247 [DEBUG][       Thread-608972][   transport.py][1871] : server lang: <none>
2025-07-01 15:22:34,247 [DEBUG][       Thread-608972][   transport.py][1871] : kex follows: False
2025-07-01 15:22:34,247 [DEBUG][       Thread-608972][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:22:34,247 [DEBUG][       Thread-608972][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:22:34,247 [DEBUG][       Thread-608972][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:22:34,247 [DEBUG][       Thread-608972][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:22:34,247 [DEBUG][       Thread-608972][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:22:34,247 [DEBUG][       Thread-608972][   transport.py][1871] : Compression: none
2025-07-01 15:22:34,247 [DEBUG][       Thread-608972][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:22:34,303 [DEBUG][       Thread-608972][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:22:34,304 [DEBUG][       Thread-608972][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:22:34,304 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:22:34,305 [DEBUG][       Thread-608972][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:22:34,305 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:22:34,359 [DEBUG][       Thread-608972][   transport.py][1871] : userauth is OK
2025-07-01 15:22:34,359 [DEBUG][       Thread-608972][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:22:34,360 [DEBUG][       Thread-608972][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:22:34,360 [DEBUG][       Thread-608972][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:22:34,360 [DEBUG][       Thread-608972][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:22:34,378 [ INFO][       Thread-608972][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:22:34,379 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:22:34,379 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:22:35,415 [DEBUG][       Thread-608972][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:22:35,415 [DEBUG][       Thread-608972][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:22:35,467 [DEBUG][       Thread-608972][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:22:35,467 [DEBUG][       Thread-608972][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:22:35,480 [DEBUG][       Thread-608972][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:22:35,493 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:22:35,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')
2025-07-01 15:22:35,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-07-01 15:22:35,523 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:22:35,523 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:22:35,523 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:22:35,532 [DEBUG][       Thread-608972][   transport.py][1871] : EOF in transport thread
2025-07-01 15:22:36,673 [DEBUG][Thread-608974 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:22:37,302 [DEBUG][Thread-608975 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:22:45,534 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:22:45,534 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:22:45,534 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:22:45,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-07-01 15:22:46,016 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 22, 22), 11.61, 45.53, 0.0, 37.76, 14.31, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:22:46,016 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:22:22
2025-07-01 15:22:46,099 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:22:46,103 [DEBUG][       Thread-608976][   transport.py][1871] : starting thread (client mode): 0x75aa1a0
2025-07-01 15:22:46,103 [DEBUG][       Thread-608976][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:22:46,124 [DEBUG][       Thread-608976][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:22:46,124 [ INFO][       Thread-608976][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:22:46,127 [DEBUG][       Thread-608976][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:22:46,127 [DEBUG][       Thread-608976][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:22:46,127 [DEBUG][       Thread-608976][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:22:46,127 [DEBUG][       Thread-608976][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:22:46,127 [DEBUG][       Thread-608976][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:22:46,127 [DEBUG][       Thread-608976][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:22:46,127 [DEBUG][       Thread-608976][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:22:46,127 [DEBUG][       Thread-608976][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:22:46,127 [DEBUG][       Thread-608976][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:22:46,127 [DEBUG][       Thread-608976][   transport.py][1871] : client lang: <none>
2025-07-01 15:22:46,128 [DEBUG][       Thread-608976][   transport.py][1871] : server lang: <none>
2025-07-01 15:22:46,128 [DEBUG][       Thread-608976][   transport.py][1871] : kex follows: False
2025-07-01 15:22:46,128 [DEBUG][       Thread-608976][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:22:46,128 [DEBUG][       Thread-608976][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:22:46,128 [DEBUG][       Thread-608976][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:22:46,128 [DEBUG][       Thread-608976][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:22:46,128 [DEBUG][       Thread-608976][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:22:46,128 [DEBUG][       Thread-608976][   transport.py][1871] : Compression: none
2025-07-01 15:22:46,128 [DEBUG][       Thread-608976][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:22:46,148 [DEBUG][       Thread-608976][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:22:46,148 [DEBUG][       Thread-608976][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:22:46,149 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:22:46,149 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:22:46,149 [DEBUG][       Thread-608976][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:22:46,150 [DEBUG][       Thread-608976][   transport.py][1871] : userauth is OK
2025-07-01 15:22:46,163 [ INFO][       Thread-608976][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:22:46,164 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:22:46,335 [DEBUG][Thread-608978 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:22:46,817 [DEBUG][       Thread-608976][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:22:46,817 [DEBUG][       Thread-608976][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:22:46,861 [DEBUG][       Thread-608976][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:22:46,861 [DEBUG][       Thread-608976][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:22:46,865 [DEBUG][       Thread-608976][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:22:46,878 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:22:46,878 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:22:46,880 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:22:46,882 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:22:46,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:22:46,890 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:22:46,890 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:22:46,891 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:22:46,891 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.557232 -999.00  +14.10  34.95     50   +4.00 1 1 2 1 1   887    0 9.95 -3.16 ----- 34.4 35.0 22.4 46.3 16.4 -23.3 15.6 -24.5 16.1 -23.3 16.7 -22.7
2025-07-01 15:22:46,891 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:22:46,891 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:22:46,891 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.557232
2025-07-01 15:22:46,891 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:22:46,892 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:22:46,892 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:22:46,892 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:22:46,892 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:22:46,893 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:22:22', tmtdew=11.61, humidity=45.53, cloud=0.0, wind=37.76, temperature=14.31, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:22:24.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:22:46,894 [DEBUG][       Thread-608976][   transport.py][1871] : EOF in transport thread
2025-07-01 15:22:46,978 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:22:46,988 [DEBUG][       Thread-608980][   transport.py][1871] : starting thread (client mode): 0x8393a60
2025-07-01 15:22:46,988 [DEBUG][       Thread-608980][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:22:47,002 [DEBUG][       Thread-608980][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:22:47,002 [ INFO][       Thread-608980][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:22:47,010 [DEBUG][       Thread-608980][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:22:47,010 [DEBUG][       Thread-608980][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:22:47,010 [DEBUG][       Thread-608980][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:22:47,010 [DEBUG][       Thread-608980][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:22:47,010 [DEBUG][       Thread-608980][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:22:47,010 [DEBUG][       Thread-608980][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:22:47,010 [DEBUG][       Thread-608980][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:22:47,010 [DEBUG][       Thread-608980][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:22:47,010 [DEBUG][       Thread-608980][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:22:47,010 [DEBUG][       Thread-608980][   transport.py][1871] : client lang: <none>
2025-07-01 15:22:47,010 [DEBUG][       Thread-608980][   transport.py][1871] : server lang: <none>
2025-07-01 15:22:47,010 [DEBUG][       Thread-608980][   transport.py][1871] : kex follows: False
2025-07-01 15:22:47,010 [DEBUG][       Thread-608980][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:22:47,010 [DEBUG][       Thread-608980][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:22:47,010 [DEBUG][       Thread-608980][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:22:47,010 [DEBUG][       Thread-608980][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:22:47,010 [DEBUG][       Thread-608980][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:22:47,010 [DEBUG][       Thread-608980][   transport.py][1871] : Compression: none
2025-07-01 15:22:47,010 [DEBUG][       Thread-608980][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:22:47,066 [DEBUG][       Thread-608980][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:22:47,066 [DEBUG][       Thread-608980][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:22:47,066 [DEBUG][       Thread-608980][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:22:47,066 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:22:47,066 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:22:47,123 [DEBUG][       Thread-608980][   transport.py][1871] : userauth is OK
2025-07-01 15:22:47,123 [DEBUG][       Thread-608980][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:22:47,123 [DEBUG][       Thread-608980][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:22:47,123 [DEBUG][       Thread-608980][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:22:47,124 [DEBUG][       Thread-608980][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:22:47,143 [ INFO][       Thread-608980][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:22:47,143 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:22:47,144 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:22:48,161 [DEBUG][       Thread-608980][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:22:48,162 [DEBUG][       Thread-608980][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:22:48,212 [DEBUG][       Thread-608980][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:22:48,212 [DEBUG][       Thread-608980][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:22:48,222 [DEBUG][       Thread-608980][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:22:48,231 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:22:48,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-07-01 15:22:48,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-07-01 15:22:48,249 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:22:48,249 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:22:48,249 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:22:48,257 [DEBUG][       Thread-608980][   transport.py][1871] : EOF in transport thread
2025-07-01 15:22:55,356 [DEBUG][Thread-608982 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:22:58,260 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:22:58,260 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:22:58,260 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:22:58,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-07-01 15:22:58,752 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 22, 54), 11.63, 45.48, 0.0, 35.38, 14.29, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:22:58,752 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:22:54
2025-07-01 15:22:58,835 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:22:58,840 [DEBUG][       Thread-608983][   transport.py][1871] : starting thread (client mode): 0x81702b0
2025-07-01 15:22:58,840 [DEBUG][       Thread-608983][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:22:58,861 [DEBUG][       Thread-608983][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:22:58,861 [ INFO][       Thread-608983][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:22:58,863 [DEBUG][       Thread-608983][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:22:58,863 [DEBUG][       Thread-608983][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:22:58,863 [DEBUG][       Thread-608983][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:22:58,863 [DEBUG][       Thread-608983][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:22:58,863 [DEBUG][       Thread-608983][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:22:58,863 [DEBUG][       Thread-608983][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:22:58,863 [DEBUG][       Thread-608983][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:22:58,863 [DEBUG][       Thread-608983][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:22:58,863 [DEBUG][       Thread-608983][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:22:58,863 [DEBUG][       Thread-608983][   transport.py][1871] : client lang: <none>
2025-07-01 15:22:58,863 [DEBUG][       Thread-608983][   transport.py][1871] : server lang: <none>
2025-07-01 15:22:58,863 [DEBUG][       Thread-608983][   transport.py][1871] : kex follows: False
2025-07-01 15:22:58,863 [DEBUG][       Thread-608983][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:22:58,863 [DEBUG][       Thread-608983][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:22:58,863 [DEBUG][       Thread-608983][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:22:58,863 [DEBUG][       Thread-608983][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:22:58,863 [DEBUG][       Thread-608983][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:22:58,863 [DEBUG][       Thread-608983][   transport.py][1871] : Compression: none
2025-07-01 15:22:58,863 [DEBUG][       Thread-608983][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:22:58,876 [DEBUG][       Thread-608983][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:22:58,877 [DEBUG][       Thread-608983][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:22:58,877 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:22:58,877 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:22:58,878 [DEBUG][       Thread-608983][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:22:58,878 [DEBUG][       Thread-608983][   transport.py][1871] : userauth is OK
2025-07-01 15:22:58,903 [ INFO][       Thread-608983][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:22:58,904 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:22:59,555 [DEBUG][       Thread-608983][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:22:59,555 [DEBUG][       Thread-608983][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:22:59,601 [DEBUG][       Thread-608983][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:22:59,601 [DEBUG][       Thread-608983][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:22:59,604 [DEBUG][       Thread-608983][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:22:59,616 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:22:59,617 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:22:59,618 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:22:59,620 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:22:59,625 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:22:59,627 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:22:59,628 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:22:59,628 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:22:59,628 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.557232 -999.00  +14.10  34.95     50   +4.00 1 1 2 1 1   887    0 9.95 -3.16 ----- 34.4 35.0 22.4 46.3 16.4 -23.3 15.6 -24.5 16.1 -23.3 16.7 -22.7
2025-07-01 15:22:59,628 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:22:59,628 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:22:59,629 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.557232
2025-07-01 15:22:59,629 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:22:59,629 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:22:59,630 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:22:59,630 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:22:59,630 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:22:59,630 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:22:54', tmtdew=11.63, humidity=45.48, cloud=0.0, wind=35.38, temperature=14.29, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:22:24.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:22:59,631 [DEBUG][       Thread-608983][   transport.py][1871] : EOF in transport thread
2025-07-01 15:22:59,714 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:22:59,726 [DEBUG][       Thread-608986][   transport.py][1871] : starting thread (client mode): 0x8154910
2025-07-01 15:22:59,726 [DEBUG][       Thread-608986][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:22:59,743 [DEBUG][       Thread-608986][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:22:59,744 [ INFO][       Thread-608986][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:22:59,754 [DEBUG][       Thread-608986][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:22:59,754 [DEBUG][       Thread-608986][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:22:59,755 [DEBUG][       Thread-608986][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:22:59,755 [DEBUG][       Thread-608986][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:22:59,755 [DEBUG][       Thread-608986][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:22:59,755 [DEBUG][       Thread-608986][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:22:59,755 [DEBUG][       Thread-608986][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:22:59,755 [DEBUG][       Thread-608986][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:22:59,755 [DEBUG][       Thread-608986][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:22:59,755 [DEBUG][       Thread-608986][   transport.py][1871] : client lang: <none>
2025-07-01 15:22:59,755 [DEBUG][       Thread-608986][   transport.py][1871] : server lang: <none>
2025-07-01 15:22:59,755 [DEBUG][       Thread-608986][   transport.py][1871] : kex follows: False
2025-07-01 15:22:59,755 [DEBUG][       Thread-608986][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:22:59,755 [DEBUG][       Thread-608986][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:22:59,755 [DEBUG][       Thread-608986][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:22:59,755 [DEBUG][       Thread-608986][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:22:59,755 [DEBUG][       Thread-608986][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:22:59,755 [DEBUG][       Thread-608986][   transport.py][1871] : Compression: none
2025-07-01 15:22:59,755 [DEBUG][       Thread-608986][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:22:59,814 [DEBUG][       Thread-608986][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:22:59,815 [DEBUG][       Thread-608986][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:22:59,815 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:22:59,816 [DEBUG][       Thread-608986][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:22:59,816 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:22:59,871 [DEBUG][       Thread-608986][   transport.py][1871] : userauth is OK
2025-07-01 15:22:59,872 [DEBUG][       Thread-608986][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:22:59,872 [DEBUG][       Thread-608986][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:22:59,872 [DEBUG][       Thread-608986][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:22:59,872 [DEBUG][       Thread-608986][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:22:59,893 [ INFO][       Thread-608986][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:22:59,893 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:22:59,894 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:23:00,908 [DEBUG][       Thread-608986][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:23:00,909 [DEBUG][       Thread-608986][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:23:00,962 [DEBUG][       Thread-608986][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:23:00,963 [DEBUG][       Thread-608986][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:23:00,972 [DEBUG][       Thread-608986][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:23:00,981 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:23:00,981 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 15:23:00,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') -> 00000000
2025-07-01 15:23:00,999 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:23:01,000 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:23:01,000 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:23:01,008 [DEBUG][       Thread-608986][   transport.py][1871] : EOF in transport thread
2025-07-01 15:23:04,376 [DEBUG][Thread-608988 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:23:11,008 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:23:11,008 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:23:11,008 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:23:11,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-07-01 15:23:11,500 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 22, 54), 11.63, 45.48, 0.0, 35.38, 14.29, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:23:11,500 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:22:54
2025-07-01 15:23:11,586 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:23:11,591 [DEBUG][       Thread-608989][   transport.py][1871] : starting thread (client mode): 0x8171de0
2025-07-01 15:23:11,591 [DEBUG][       Thread-608989][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:23:11,611 [DEBUG][       Thread-608989][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:23:11,611 [ INFO][       Thread-608989][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:23:11,614 [DEBUG][       Thread-608989][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:23:11,614 [DEBUG][       Thread-608989][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:23:11,614 [DEBUG][       Thread-608989][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:23:11,614 [DEBUG][       Thread-608989][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:23:11,614 [DEBUG][       Thread-608989][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:23:11,614 [DEBUG][       Thread-608989][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:23:11,614 [DEBUG][       Thread-608989][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:23:11,614 [DEBUG][       Thread-608989][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:23:11,614 [DEBUG][       Thread-608989][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:23:11,614 [DEBUG][       Thread-608989][   transport.py][1871] : client lang: <none>
2025-07-01 15:23:11,614 [DEBUG][       Thread-608989][   transport.py][1871] : server lang: <none>
2025-07-01 15:23:11,614 [DEBUG][       Thread-608989][   transport.py][1871] : kex follows: False
2025-07-01 15:23:11,614 [DEBUG][       Thread-608989][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:23:11,614 [DEBUG][       Thread-608989][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:23:11,614 [DEBUG][       Thread-608989][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:23:11,614 [DEBUG][       Thread-608989][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:23:11,614 [DEBUG][       Thread-608989][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:23:11,615 [DEBUG][       Thread-608989][   transport.py][1871] : Compression: none
2025-07-01 15:23:11,615 [DEBUG][       Thread-608989][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:23:11,631 [DEBUG][       Thread-608989][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:23:11,631 [DEBUG][       Thread-608989][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:23:11,631 [DEBUG][       Thread-608989][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:23:11,631 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:23:11,631 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:23:11,632 [DEBUG][       Thread-608989][   transport.py][1871] : userauth is OK
2025-07-01 15:23:11,656 [ INFO][       Thread-608989][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:23:11,656 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:23:12,314 [DEBUG][       Thread-608989][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:23:12,314 [DEBUG][       Thread-608989][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:23:12,357 [DEBUG][       Thread-608989][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:23:12,357 [DEBUG][       Thread-608989][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:23:12,361 [DEBUG][       Thread-608989][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:23:12,375 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:23:12,375 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:23:12,378 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:23:12,380 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:23:12,386 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:23:12,388 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:23:12,388 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:23:12,389 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:23:12,389 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.557579 -999.00  +14.10  36.96     50   +4.00 1 1 2 1 1   887    0 9.95 -3.58 ----- 30.8 37.0 19.6 46.9 16.4 -23.8 15.6 -24.7 16.1 -24.1 16.8 -22.6
2025-07-01 15:23:12,389 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:23:12,389 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:23:12,389 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.557579
2025-07-01 15:23:12,390 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:23:12,391 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:23:12,391 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:23:12,391 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:23:12,391 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:23:12,391 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:22:54', tmtdew=11.63, humidity=45.48, cloud=0.0, wind=35.38, temperature=14.29, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:22:54.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:23:12,391 [DEBUG][       Thread-608989][   transport.py][1871] : EOF in transport thread
2025-07-01 15:23:12,468 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:23:12,478 [DEBUG][       Thread-608992][   transport.py][1871] : starting thread (client mode): 0x827d540
2025-07-01 15:23:12,478 [DEBUG][       Thread-608992][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:23:12,493 [DEBUG][       Thread-608992][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:23:12,493 [ INFO][       Thread-608992][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:23:12,501 [DEBUG][       Thread-608992][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:23:12,501 [DEBUG][       Thread-608992][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:23:12,501 [DEBUG][       Thread-608992][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:23:12,501 [DEBUG][       Thread-608992][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:23:12,502 [DEBUG][       Thread-608992][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:23:12,502 [DEBUG][       Thread-608992][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:23:12,502 [DEBUG][       Thread-608992][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:23:12,502 [DEBUG][       Thread-608992][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:23:12,502 [DEBUG][       Thread-608992][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:23:12,502 [DEBUG][       Thread-608992][   transport.py][1871] : client lang: <none>
2025-07-01 15:23:12,502 [DEBUG][       Thread-608992][   transport.py][1871] : server lang: <none>
2025-07-01 15:23:12,502 [DEBUG][       Thread-608992][   transport.py][1871] : kex follows: False
2025-07-01 15:23:12,502 [DEBUG][       Thread-608992][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:23:12,502 [DEBUG][       Thread-608992][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:23:12,502 [DEBUG][       Thread-608992][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:23:12,502 [DEBUG][       Thread-608992][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:23:12,502 [DEBUG][       Thread-608992][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:23:12,502 [DEBUG][       Thread-608992][   transport.py][1871] : Compression: none
2025-07-01 15:23:12,502 [DEBUG][       Thread-608992][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:23:12,561 [DEBUG][       Thread-608992][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:23:12,562 [DEBUG][       Thread-608992][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:23:12,562 [DEBUG][       Thread-608992][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:23:12,563 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:23:12,563 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:23:12,619 [DEBUG][       Thread-608992][   transport.py][1871] : userauth is OK
2025-07-01 15:23:12,620 [DEBUG][       Thread-608992][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:23:12,620 [DEBUG][       Thread-608992][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:23:12,620 [DEBUG][       Thread-608992][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:23:12,620 [DEBUG][       Thread-608992][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:23:12,639 [ INFO][       Thread-608992][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:23:12,639 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:23:12,640 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:23:13,400 [DEBUG][Thread-608994 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:23:13,659 [DEBUG][       Thread-608992][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:23:13,660 [DEBUG][       Thread-608992][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:23:13,708 [DEBUG][       Thread-608992][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:23:13,708 [DEBUG][       Thread-608992][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:23:13,720 [DEBUG][       Thread-608992][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:23:13,729 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:23:13,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-07-01 15:23:13,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-07-01 15:23:13,747 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:23:13,747 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:23:13,748 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:23:13,756 [DEBUG][       Thread-608992][   transport.py][1871] : EOF in transport thread
2025-07-01 15:23:22,424 [DEBUG][Thread-608995 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:23:23,756 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:23:23,756 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:23:23,756 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:23:23,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-07-01 15:23:24,246 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 22, 54), 11.63, 45.48, 0.0, 35.38, 14.29, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:23:24,246 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:22:54
2025-07-01 15:23:24,329 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:23:24,334 [DEBUG][       Thread-608996][   transport.py][1871] : starting thread (client mode): 0x81724d0
2025-07-01 15:23:24,334 [DEBUG][       Thread-608996][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:23:24,356 [DEBUG][       Thread-608996][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:23:24,356 [ INFO][       Thread-608996][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:23:24,359 [DEBUG][       Thread-608996][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:23:24,359 [DEBUG][       Thread-608996][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:23:24,359 [DEBUG][       Thread-608996][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:23:24,359 [DEBUG][       Thread-608996][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:23:24,359 [DEBUG][       Thread-608996][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:23:24,359 [DEBUG][       Thread-608996][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:23:24,359 [DEBUG][       Thread-608996][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:23:24,360 [DEBUG][       Thread-608996][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:23:24,360 [DEBUG][       Thread-608996][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:23:24,360 [DEBUG][       Thread-608996][   transport.py][1871] : client lang: <none>
2025-07-01 15:23:24,360 [DEBUG][       Thread-608996][   transport.py][1871] : server lang: <none>
2025-07-01 15:23:24,360 [DEBUG][       Thread-608996][   transport.py][1871] : kex follows: False
2025-07-01 15:23:24,360 [DEBUG][       Thread-608996][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:23:24,360 [DEBUG][       Thread-608996][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:23:24,360 [DEBUG][       Thread-608996][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:23:24,360 [DEBUG][       Thread-608996][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:23:24,360 [DEBUG][       Thread-608996][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:23:24,360 [DEBUG][       Thread-608996][   transport.py][1871] : Compression: none
2025-07-01 15:23:24,360 [DEBUG][       Thread-608996][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:23:24,374 [DEBUG][       Thread-608996][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:23:24,374 [DEBUG][       Thread-608996][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:23:24,374 [DEBUG][       Thread-608996][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:23:24,374 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:23:24,374 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:23:24,375 [DEBUG][       Thread-608996][   transport.py][1871] : userauth is OK
2025-07-01 15:23:24,399 [ INFO][       Thread-608996][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:23:24,399 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:23:25,083 [DEBUG][       Thread-608996][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:23:25,083 [DEBUG][       Thread-608996][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:23:25,125 [DEBUG][       Thread-608996][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:23:25,125 [DEBUG][       Thread-608996][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:23:25,129 [DEBUG][       Thread-608996][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:23:25,141 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:23:25,141 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:23:25,143 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:23:25,145 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:23:25,152 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:23:25,154 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:23:25,154 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:23:25,155 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:23:25,155 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.557579 -999.00  +14.10  36.96     50   +4.00 1 1 2 1 1   887    0 9.95 -3.58 ----- 30.8 37.0 19.6 46.9 16.4 -23.8 15.6 -24.7 16.1 -24.1 16.8 -22.6
2025-07-01 15:23:25,155 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:23:25,155 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:23:25,155 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.557579
2025-07-01 15:23:25,156 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:23:25,156 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:23:25,157 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:23:25,157 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:23:25,157 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:23:25,157 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:22:54', tmtdew=11.63, humidity=45.48, cloud=0.0, wind=35.38, temperature=14.29, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:22:54.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:23:25,158 [DEBUG][       Thread-608996][   transport.py][1871] : EOF in transport thread
2025-07-01 15:23:25,240 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:23:25,253 [DEBUG][       Thread-608999][   transport.py][1871] : starting thread (client mode): 0x8393a60
2025-07-01 15:23:25,253 [DEBUG][       Thread-608999][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:23:25,268 [DEBUG][       Thread-608999][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:23:25,268 [ INFO][       Thread-608999][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:23:25,276 [DEBUG][       Thread-608999][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:23:25,276 [DEBUG][       Thread-608999][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:23:25,276 [DEBUG][       Thread-608999][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:23:25,276 [DEBUG][       Thread-608999][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:23:25,276 [DEBUG][       Thread-608999][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:23:25,276 [DEBUG][       Thread-608999][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:23:25,276 [DEBUG][       Thread-608999][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:23:25,276 [DEBUG][       Thread-608999][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:23:25,276 [DEBUG][       Thread-608999][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:23:25,277 [DEBUG][       Thread-608999][   transport.py][1871] : client lang: <none>
2025-07-01 15:23:25,277 [DEBUG][       Thread-608999][   transport.py][1871] : server lang: <none>
2025-07-01 15:23:25,277 [DEBUG][       Thread-608999][   transport.py][1871] : kex follows: False
2025-07-01 15:23:25,277 [DEBUG][       Thread-608999][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:23:25,277 [DEBUG][       Thread-608999][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:23:25,277 [DEBUG][       Thread-608999][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:23:25,277 [DEBUG][       Thread-608999][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:23:25,277 [DEBUG][       Thread-608999][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:23:25,277 [DEBUG][       Thread-608999][   transport.py][1871] : Compression: none
2025-07-01 15:23:25,277 [DEBUG][       Thread-608999][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:23:25,336 [DEBUG][       Thread-608999][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:23:25,336 [DEBUG][       Thread-608999][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:23:25,337 [DEBUG][       Thread-608999][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:23:25,337 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:23:25,338 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:23:25,413 [DEBUG][       Thread-608999][   transport.py][1871] : userauth is OK
2025-07-01 15:23:25,413 [DEBUG][       Thread-608999][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:23:25,413 [DEBUG][       Thread-608999][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:23:25,413 [DEBUG][       Thread-608999][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:23:25,413 [DEBUG][       Thread-608999][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:23:25,432 [ INFO][       Thread-608999][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:23:25,433 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:23:25,433 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:23:26,495 [DEBUG][       Thread-608999][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:23:26,495 [DEBUG][       Thread-608999][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:23:26,544 [DEBUG][       Thread-608999][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:23:26,544 [DEBUG][       Thread-608999][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:23:26,557 [DEBUG][       Thread-608999][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:23:26,568 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:23:26,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-07-01 15:23:26,578 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 15:23:26,591 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:23:26,591 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:23:26,592 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:23:26,600 [DEBUG][       Thread-608999][   transport.py][1871] : EOF in transport thread
2025-07-01 15:23:31,447 [DEBUG][Thread-609001 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:23:36,596 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:23:36,605 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:23:36,605 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:23:36,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-07-01 15:23:36,700 [DEBUG][Thread-609002 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:23:37,087 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 23, 26), 11.52, 45.71, 0.0, 31.26, 14.28, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:23:37,087 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:23:26
2025-07-01 15:23:37,169 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:23:37,174 [DEBUG][       Thread-609003][   transport.py][1871] : starting thread (client mode): 0x81cae60
2025-07-01 15:23:37,174 [DEBUG][       Thread-609003][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:23:37,197 [DEBUG][       Thread-609003][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:23:37,197 [ INFO][       Thread-609003][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:23:37,201 [DEBUG][       Thread-609003][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:23:37,201 [DEBUG][       Thread-609003][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:23:37,201 [DEBUG][       Thread-609003][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:23:37,201 [DEBUG][       Thread-609003][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:23:37,201 [DEBUG][       Thread-609003][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:23:37,201 [DEBUG][       Thread-609003][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:23:37,201 [DEBUG][       Thread-609003][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:23:37,201 [DEBUG][       Thread-609003][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:23:37,201 [DEBUG][       Thread-609003][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:23:37,202 [DEBUG][       Thread-609003][   transport.py][1871] : client lang: <none>
2025-07-01 15:23:37,202 [DEBUG][       Thread-609003][   transport.py][1871] : server lang: <none>
2025-07-01 15:23:37,202 [DEBUG][       Thread-609003][   transport.py][1871] : kex follows: False
2025-07-01 15:23:37,202 [DEBUG][       Thread-609003][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:23:37,202 [DEBUG][       Thread-609003][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:23:37,202 [DEBUG][       Thread-609003][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:23:37,202 [DEBUG][       Thread-609003][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:23:37,202 [DEBUG][       Thread-609003][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:23:37,202 [DEBUG][       Thread-609003][   transport.py][1871] : Compression: none
2025-07-01 15:23:37,202 [DEBUG][       Thread-609003][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:23:37,220 [DEBUG][       Thread-609003][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:23:37,220 [DEBUG][       Thread-609003][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:23:37,221 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:23:37,221 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:23:37,221 [DEBUG][       Thread-609003][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:23:37,222 [DEBUG][       Thread-609003][   transport.py][1871] : userauth is OK
2025-07-01 15:23:37,247 [ INFO][       Thread-609003][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:23:37,248 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:23:37,856 [DEBUG][       Thread-609003][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:23:37,856 [DEBUG][       Thread-609003][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:23:37,897 [DEBUG][       Thread-609003][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:23:37,897 [DEBUG][       Thread-609003][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:23:37,900 [DEBUG][       Thread-609003][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:23:37,912 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:23:37,912 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:23:37,915 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:23:37,917 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:23:37,922 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:23:37,925 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:23:37,925 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:23:37,926 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:23:37,926 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.557579 -999.00  +14.10  36.96     50   +4.00 1 1 2 1 1   887    0 9.95 -3.58 ----- 30.8 37.0 19.6 46.9 16.4 -23.8 15.6 -24.7 16.1 -24.1 16.8 -22.6
2025-07-01 15:23:37,926 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:23:37,926 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:23:37,926 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.557579
2025-07-01 15:23:37,926 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:23:37,927 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:23:37,927 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:23:37,927 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:23:37,927 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:23:37,927 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:23:26', tmtdew=11.52, humidity=45.71, cloud=0.0, wind=31.26, temperature=14.28, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:22:54.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:23:37,928 [DEBUG][       Thread-609003][   transport.py][1871] : EOF in transport thread
2025-07-01 15:23:38,011 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:23:38,021 [DEBUG][       Thread-609006][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 15:23:38,021 [DEBUG][       Thread-609006][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:23:38,037 [DEBUG][       Thread-609006][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:23:38,037 [ INFO][       Thread-609006][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:23:38,044 [DEBUG][       Thread-609006][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:23:38,045 [DEBUG][       Thread-609006][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:23:38,045 [DEBUG][       Thread-609006][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:23:38,045 [DEBUG][       Thread-609006][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:23:38,045 [DEBUG][       Thread-609006][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:23:38,045 [DEBUG][       Thread-609006][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:23:38,045 [DEBUG][       Thread-609006][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:23:38,045 [DEBUG][       Thread-609006][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:23:38,045 [DEBUG][       Thread-609006][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:23:38,045 [DEBUG][       Thread-609006][   transport.py][1871] : client lang: <none>
2025-07-01 15:23:38,045 [DEBUG][       Thread-609006][   transport.py][1871] : server lang: <none>
2025-07-01 15:23:38,045 [DEBUG][       Thread-609006][   transport.py][1871] : kex follows: False
2025-07-01 15:23:38,045 [DEBUG][       Thread-609006][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:23:38,045 [DEBUG][       Thread-609006][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:23:38,045 [DEBUG][       Thread-609006][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:23:38,045 [DEBUG][       Thread-609006][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:23:38,045 [DEBUG][       Thread-609006][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:23:38,045 [DEBUG][       Thread-609006][   transport.py][1871] : Compression: none
2025-07-01 15:23:38,045 [DEBUG][       Thread-609006][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:23:38,103 [DEBUG][       Thread-609006][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:23:38,104 [DEBUG][       Thread-609006][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:23:38,104 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:23:38,105 [DEBUG][       Thread-609006][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:23:38,106 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:23:38,160 [DEBUG][       Thread-609006][   transport.py][1871] : userauth is OK
2025-07-01 15:23:38,160 [DEBUG][       Thread-609006][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:23:38,160 [DEBUG][       Thread-609006][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:23:38,160 [DEBUG][       Thread-609006][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:23:38,160 [DEBUG][       Thread-609006][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:23:38,180 [ INFO][       Thread-609006][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:23:38,180 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:23:38,181 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:23:39,254 [DEBUG][       Thread-609006][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:23:39,254 [DEBUG][       Thread-609006][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:23:39,305 [DEBUG][       Thread-609006][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:23:39,306 [DEBUG][       Thread-609006][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:23:39,320 [DEBUG][       Thread-609006][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:23:39,334 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:23:39,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-07-01 15:23:39,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-07-01 15:23:39,353 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:23:39,353 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:23:39,354 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:23:39,363 [DEBUG][       Thread-609006][   transport.py][1871] : EOF in transport thread
2025-07-01 15:23:40,471 [DEBUG][Thread-609008 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:23:49,364 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:23:49,364 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:23:49,364 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:23:49,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-07-01 15:23:49,501 [DEBUG][Thread-609009 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:23:49,844 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 23, 26), 11.52, 45.71, 0.0, 31.26, 14.28, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:23:49,844 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:23:26
2025-07-01 15:23:49,931 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:23:49,935 [DEBUG][       Thread-609010][   transport.py][1871] : starting thread (client mode): 0x75a8ee0
2025-07-01 15:23:49,935 [DEBUG][       Thread-609010][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:23:49,955 [DEBUG][       Thread-609010][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:23:49,955 [ INFO][       Thread-609010][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:23:49,959 [DEBUG][       Thread-609010][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:23:49,959 [DEBUG][       Thread-609010][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:23:49,959 [DEBUG][       Thread-609010][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:23:49,959 [DEBUG][       Thread-609010][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:23:49,959 [DEBUG][       Thread-609010][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:23:49,959 [DEBUG][       Thread-609010][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:23:49,959 [DEBUG][       Thread-609010][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:23:49,959 [DEBUG][       Thread-609010][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:23:49,959 [DEBUG][       Thread-609010][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:23:49,959 [DEBUG][       Thread-609010][   transport.py][1871] : client lang: <none>
2025-07-01 15:23:49,959 [DEBUG][       Thread-609010][   transport.py][1871] : server lang: <none>
2025-07-01 15:23:49,959 [DEBUG][       Thread-609010][   transport.py][1871] : kex follows: False
2025-07-01 15:23:49,959 [DEBUG][       Thread-609010][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:23:49,959 [DEBUG][       Thread-609010][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:23:49,959 [DEBUG][       Thread-609010][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:23:49,959 [DEBUG][       Thread-609010][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:23:49,959 [DEBUG][       Thread-609010][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:23:49,959 [DEBUG][       Thread-609010][   transport.py][1871] : Compression: none
2025-07-01 15:23:49,959 [DEBUG][       Thread-609010][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:23:49,975 [DEBUG][       Thread-609010][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:23:49,975 [DEBUG][       Thread-609010][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:23:49,975 [DEBUG][       Thread-609010][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:23:49,975 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:23:49,975 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:23:49,976 [DEBUG][       Thread-609010][   transport.py][1871] : userauth is OK
2025-07-01 15:23:50,000 [ INFO][       Thread-609010][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:23:50,000 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:23:50,657 [DEBUG][       Thread-609010][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:23:50,657 [DEBUG][       Thread-609010][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:23:50,701 [DEBUG][       Thread-609010][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:23:50,701 [DEBUG][       Thread-609010][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:23:50,705 [DEBUG][       Thread-609010][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:23:50,719 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:23:50,719 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:23:50,721 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:23:50,723 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:23:50,730 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:23:50,732 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:23:50,733 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:23:50,734 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:23:50,734 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.557926 -999.00  +14.00  42.10     50   +4.00 1 1 2 1 1   887    0 10.06 -3.98 ----- 33.0 42.1 21.8 54.6 16.4 -23.7 15.6 -25.0 16.1 -23.4 16.7 -22.2
2025-07-01 15:23:50,734 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:23:50,734 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:23:50,734 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.557926
2025-07-01 15:23:50,735 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:23:50,736 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:23:50,736 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:23:50,736 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:23:50,736 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:23:50,737 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:23:26', tmtdew=11.52, humidity=45.71, cloud=0.0, wind=31.26, temperature=14.28, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:23:24.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:23:50,737 [DEBUG][       Thread-609010][   transport.py][1871] : EOF in transport thread
2025-07-01 15:23:50,812 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:23:50,826 [DEBUG][       Thread-609013][   transport.py][1871] : starting thread (client mode): 0x81701c0
2025-07-01 15:23:50,826 [DEBUG][       Thread-609013][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:23:50,842 [DEBUG][       Thread-609013][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:23:50,843 [ INFO][       Thread-609013][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:23:50,850 [DEBUG][       Thread-609013][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:23:50,851 [DEBUG][       Thread-609013][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:23:50,851 [DEBUG][       Thread-609013][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:23:50,851 [DEBUG][       Thread-609013][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:23:50,851 [DEBUG][       Thread-609013][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:23:50,851 [DEBUG][       Thread-609013][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:23:50,851 [DEBUG][       Thread-609013][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:23:50,851 [DEBUG][       Thread-609013][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:23:50,851 [DEBUG][       Thread-609013][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:23:50,851 [DEBUG][       Thread-609013][   transport.py][1871] : client lang: <none>
2025-07-01 15:23:50,851 [DEBUG][       Thread-609013][   transport.py][1871] : server lang: <none>
2025-07-01 15:23:50,851 [DEBUG][       Thread-609013][   transport.py][1871] : kex follows: False
2025-07-01 15:23:50,851 [DEBUG][       Thread-609013][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:23:50,851 [DEBUG][       Thread-609013][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:23:50,851 [DEBUG][       Thread-609013][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:23:50,851 [DEBUG][       Thread-609013][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:23:50,852 [DEBUG][       Thread-609013][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:23:50,852 [DEBUG][       Thread-609013][   transport.py][1871] : Compression: none
2025-07-01 15:23:50,852 [DEBUG][       Thread-609013][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:23:50,912 [DEBUG][       Thread-609013][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:23:50,912 [DEBUG][       Thread-609013][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:23:50,913 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:23:50,914 [DEBUG][       Thread-609013][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:23:50,914 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:23:50,968 [DEBUG][       Thread-609013][   transport.py][1871] : userauth is OK
2025-07-01 15:23:50,968 [DEBUG][       Thread-609013][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:23:50,968 [DEBUG][       Thread-609013][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:23:50,968 [DEBUG][       Thread-609013][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:23:50,968 [DEBUG][       Thread-609013][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:23:50,990 [ INFO][       Thread-609013][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:23:50,990 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:23:50,991 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:23:52,006 [DEBUG][       Thread-609013][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:23:52,007 [DEBUG][       Thread-609013][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:23:52,058 [DEBUG][       Thread-609013][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:23:52,058 [DEBUG][       Thread-609013][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:23:52,073 [DEBUG][       Thread-609013][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:23:52,084 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:23:52,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-07-01 15:23:52,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-07-01 15:23:52,102 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:23:52,102 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:23:52,103 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:23:52,111 [DEBUG][       Thread-609013][   transport.py][1871] : EOF in transport thread
2025-07-01 15:23:58,525 [DEBUG][Thread-609015 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:24:02,113 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:24:02,113 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:24:02,113 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:24:02,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-07-01 15:24:02,582 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 23, 58), 11.55, 45.62, 0.0, 32.2, 14.29, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:24:02,582 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:23:58
2025-07-01 15:24:02,664 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:24:02,668 [DEBUG][       Thread-609016][   transport.py][1871] : starting thread (client mode): 0x8171150
2025-07-01 15:24:02,668 [DEBUG][       Thread-609016][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:24:02,690 [DEBUG][       Thread-609016][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:24:02,690 [ INFO][       Thread-609016][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:24:02,693 [DEBUG][       Thread-609016][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:24:02,693 [DEBUG][       Thread-609016][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:24:02,693 [DEBUG][       Thread-609016][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:24:02,693 [DEBUG][       Thread-609016][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:24:02,693 [DEBUG][       Thread-609016][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:24:02,693 [DEBUG][       Thread-609016][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:24:02,693 [DEBUG][       Thread-609016][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:24:02,693 [DEBUG][       Thread-609016][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:24:02,693 [DEBUG][       Thread-609016][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:24:02,693 [DEBUG][       Thread-609016][   transport.py][1871] : client lang: <none>
2025-07-01 15:24:02,693 [DEBUG][       Thread-609016][   transport.py][1871] : server lang: <none>
2025-07-01 15:24:02,693 [DEBUG][       Thread-609016][   transport.py][1871] : kex follows: False
2025-07-01 15:24:02,693 [DEBUG][       Thread-609016][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:24:02,693 [DEBUG][       Thread-609016][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:24:02,693 [DEBUG][       Thread-609016][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:24:02,693 [DEBUG][       Thread-609016][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:24:02,693 [DEBUG][       Thread-609016][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:24:02,693 [DEBUG][       Thread-609016][   transport.py][1871] : Compression: none
2025-07-01 15:24:02,693 [DEBUG][       Thread-609016][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:24:02,712 [DEBUG][       Thread-609016][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:24:02,713 [DEBUG][       Thread-609016][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:24:02,713 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:24:02,713 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:24:02,714 [DEBUG][       Thread-609016][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:24:02,715 [DEBUG][       Thread-609016][   transport.py][1871] : userauth is OK
2025-07-01 15:24:02,740 [ INFO][       Thread-609016][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:24:02,740 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:24:03,399 [DEBUG][       Thread-609016][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:24:03,400 [DEBUG][       Thread-609016][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:24:03,440 [DEBUG][       Thread-609016][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:24:03,441 [DEBUG][       Thread-609016][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:24:03,443 [DEBUG][       Thread-609016][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:24:03,454 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:24:03,454 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:24:03,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:24:03,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:24:03,461 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:24:03,462 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:24:03,462 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:24:03,462 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:24:03,463 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.557926 -999.00  +14.00  42.10     50   +4.00 1 1 2 1 1   887    0 10.06 -3.98 ----- 33.0 42.1 21.8 54.6 16.4 -23.7 15.6 -25.0 16.1 -23.4 16.7 -22.2
2025-07-01 15:24:03,463 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:24:03,463 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:24:03,463 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.557926
2025-07-01 15:24:03,463 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:24:03,463 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:24:03,463 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:24:03,463 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:24:03,463 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:24:03,463 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:23:58', tmtdew=11.55, humidity=45.62, cloud=0.0, wind=32.2, temperature=14.29, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:23:24.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:24:03,464 [DEBUG][       Thread-609016][   transport.py][1871] : EOF in transport thread
2025-07-01 15:24:03,538 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:24:03,547 [DEBUG][       Thread-609019][   transport.py][1871] : starting thread (client mode): 0x81561a0
2025-07-01 15:24:03,547 [DEBUG][       Thread-609019][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:24:03,566 [DEBUG][       Thread-609019][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:24:03,566 [ INFO][       Thread-609019][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:24:03,574 [DEBUG][       Thread-609019][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:24:03,574 [DEBUG][       Thread-609019][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:24:03,574 [DEBUG][       Thread-609019][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:24:03,574 [DEBUG][       Thread-609019][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:24:03,574 [DEBUG][       Thread-609019][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:24:03,574 [DEBUG][       Thread-609019][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:24:03,574 [DEBUG][       Thread-609019][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:24:03,574 [DEBUG][       Thread-609019][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:24:03,574 [DEBUG][       Thread-609019][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:24:03,574 [DEBUG][       Thread-609019][   transport.py][1871] : client lang: <none>
2025-07-01 15:24:03,574 [DEBUG][       Thread-609019][   transport.py][1871] : server lang: <none>
2025-07-01 15:24:03,574 [DEBUG][       Thread-609019][   transport.py][1871] : kex follows: False
2025-07-01 15:24:03,574 [DEBUG][       Thread-609019][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:24:03,574 [DEBUG][       Thread-609019][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:24:03,575 [DEBUG][       Thread-609019][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:24:03,575 [DEBUG][       Thread-609019][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:24:03,575 [DEBUG][       Thread-609019][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:24:03,575 [DEBUG][       Thread-609019][   transport.py][1871] : Compression: none
2025-07-01 15:24:03,575 [DEBUG][       Thread-609019][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:24:03,636 [DEBUG][       Thread-609019][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:24:03,636 [DEBUG][       Thread-609019][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:24:03,637 [DEBUG][       Thread-609019][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:24:03,637 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:24:03,638 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:24:03,691 [DEBUG][       Thread-609019][   transport.py][1871] : userauth is OK
2025-07-01 15:24:03,692 [DEBUG][       Thread-609019][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:24:03,692 [DEBUG][       Thread-609019][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:24:03,692 [DEBUG][       Thread-609019][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:24:03,692 [DEBUG][       Thread-609019][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:24:03,711 [ INFO][       Thread-609019][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:24:03,711 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:24:03,712 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:24:04,761 [DEBUG][       Thread-609019][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:24:04,761 [DEBUG][       Thread-609019][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:24:04,811 [DEBUG][       Thread-609019][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:24:04,811 [DEBUG][       Thread-609019][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:24:04,820 [DEBUG][       Thread-609019][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:24:04,828 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:24:04,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')
2025-07-01 15:24:04,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-07-01 15:24:04,845 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:24:04,845 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:24:04,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:24:04,853 [DEBUG][       Thread-609019][   transport.py][1871] : EOF in transport thread
2025-07-01 15:24:07,548 [DEBUG][Thread-609021 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:24:14,855 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:24:14,856 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:24:14,856 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:24:14,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-07-01 15:24:15,322 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 23, 58), 11.55, 45.62, 0.0, 32.2, 14.29, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:24:15,322 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:23:58
2025-07-01 15:24:15,404 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:24:15,407 [DEBUG][       Thread-609022][   transport.py][1871] : starting thread (client mode): 0x81da080
2025-07-01 15:24:15,407 [DEBUG][       Thread-609022][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:24:15,428 [DEBUG][       Thread-609022][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:24:15,428 [ INFO][       Thread-609022][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:24:15,432 [DEBUG][       Thread-609022][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:24:15,432 [DEBUG][       Thread-609022][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:24:15,432 [DEBUG][       Thread-609022][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:24:15,432 [DEBUG][       Thread-609022][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:24:15,432 [DEBUG][       Thread-609022][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:24:15,432 [DEBUG][       Thread-609022][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:24:15,432 [DEBUG][       Thread-609022][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:24:15,432 [DEBUG][       Thread-609022][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:24:15,432 [DEBUG][       Thread-609022][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:24:15,432 [DEBUG][       Thread-609022][   transport.py][1871] : client lang: <none>
2025-07-01 15:24:15,432 [DEBUG][       Thread-609022][   transport.py][1871] : server lang: <none>
2025-07-01 15:24:15,432 [DEBUG][       Thread-609022][   transport.py][1871] : kex follows: False
2025-07-01 15:24:15,432 [DEBUG][       Thread-609022][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:24:15,432 [DEBUG][       Thread-609022][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:24:15,432 [DEBUG][       Thread-609022][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:24:15,432 [DEBUG][       Thread-609022][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:24:15,432 [DEBUG][       Thread-609022][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:24:15,432 [DEBUG][       Thread-609022][   transport.py][1871] : Compression: none
2025-07-01 15:24:15,432 [DEBUG][       Thread-609022][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:24:15,447 [DEBUG][       Thread-609022][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:24:15,447 [DEBUG][       Thread-609022][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:24:15,448 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:24:15,448 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:24:15,449 [DEBUG][       Thread-609022][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:24:15,450 [DEBUG][       Thread-609022][   transport.py][1871] : userauth is OK
2025-07-01 15:24:15,474 [ INFO][       Thread-609022][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:24:15,475 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:24:16,130 [DEBUG][       Thread-609022][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:24:16,131 [DEBUG][       Thread-609022][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:24:16,173 [DEBUG][       Thread-609022][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:24:16,173 [DEBUG][       Thread-609022][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:24:16,177 [DEBUG][       Thread-609022][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:24:16,189 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:24:16,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:24:16,191 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:24:16,193 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:24:16,199 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:24:16,201 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:24:16,202 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:24:16,202 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:24:16,202 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.558273 -999.00  +14.10  40.86     51   +4.10 1 1 2 1 1   887    0 9.74 -4.48 ----- 31.7 40.9 12.4 47.8 16.4 -24.1 15.7 -24.7 16.1 -23.0 16.8 -22.4
2025-07-01 15:24:16,203 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:24:16,203 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:24:16,203 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.558273
2025-07-01 15:24:16,203 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:24:16,204 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:24:16,204 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:24:16,204 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:24:16,204 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:24:16,204 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:23:58', tmtdew=11.55, humidity=45.62, cloud=0.0, wind=32.2, temperature=14.29, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:23:54.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:24:16,205 [DEBUG][       Thread-609022][   transport.py][1871] : EOF in transport thread
2025-07-01 15:24:16,288 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:24:16,592 [DEBUG][Thread-609025 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:24:25,614 [DEBUG][Thread-609026 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:24:34,633 [DEBUG][Thread-609027 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:24:36,730 [DEBUG][Thread-609028 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:24:43,655 [DEBUG][Thread-609029 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:24:52,678 [DEBUG][Thread-609030 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:25:01,700 [DEBUG][Thread-609031 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:25:10,720 [DEBUG][Thread-609032 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:25:19,746 [DEBUG][Thread-609033 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:25:28,770 [DEBUG][Thread-609034 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:25:36,761 [DEBUG][Thread-609035 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:25:37,791 [DEBUG][Thread-609036 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:25:46,811 [DEBUG][Thread-609037 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:25:55,838 [DEBUG][Thread-609038 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:26:04,860 [DEBUG][Thread-609039 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:26:13,883 [DEBUG][Thread-609040 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:26:22,904 [DEBUG][Thread-609041 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:26: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-07-01 15:26:31,928 [DEBUG][Thread-609042 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:26:36,335 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:26:36,335 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:26:36,335 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:26:36,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-07-01 15:26:36,788 [DEBUG][Thread-609043 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:26:36,831 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 26, 5), 11.64, 45.38, 0.0, 37.03, 14.07, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:26:36,831 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:26:05
2025-07-01 15:26:36,917 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:26:36,921 [DEBUG][       Thread-609044][   transport.py][1871] : starting thread (client mode): 0x81550f0
2025-07-01 15:26:36,921 [DEBUG][       Thread-609044][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:26:36,943 [DEBUG][       Thread-609044][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:26:36,944 [ INFO][       Thread-609044][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:26:36,947 [DEBUG][       Thread-609044][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:26:36,947 [DEBUG][       Thread-609044][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:26:36,947 [DEBUG][       Thread-609044][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:26:36,947 [DEBUG][       Thread-609044][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:26:36,947 [DEBUG][       Thread-609044][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:26:36,947 [DEBUG][       Thread-609044][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:26:36,947 [DEBUG][       Thread-609044][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:26:36,947 [DEBUG][       Thread-609044][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:26:36,947 [DEBUG][       Thread-609044][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:26:36,947 [DEBUG][       Thread-609044][   transport.py][1871] : client lang: <none>
2025-07-01 15:26:36,947 [DEBUG][       Thread-609044][   transport.py][1871] : server lang: <none>
2025-07-01 15:26:36,947 [DEBUG][       Thread-609044][   transport.py][1871] : kex follows: False
2025-07-01 15:26:36,947 [DEBUG][       Thread-609044][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:26:36,947 [DEBUG][       Thread-609044][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:26:36,947 [DEBUG][       Thread-609044][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:26:36,948 [DEBUG][       Thread-609044][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:26:36,948 [DEBUG][       Thread-609044][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:26:36,948 [DEBUG][       Thread-609044][   transport.py][1871] : Compression: none
2025-07-01 15:26:36,948 [DEBUG][       Thread-609044][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:26:36,964 [DEBUG][       Thread-609044][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:26:36,965 [DEBUG][       Thread-609044][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:26:36,965 [DEBUG][       Thread-609044][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:26:36,965 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:26:36,966 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:26:36,967 [DEBUG][       Thread-609044][   transport.py][1871] : userauth is OK
2025-07-01 15:26:36,980 [ INFO][       Thread-609044][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:26:36,980 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:26:37,634 [DEBUG][       Thread-609044][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:26:37,634 [DEBUG][       Thread-609044][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:26:37,677 [DEBUG][       Thread-609044][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:26:37,677 [DEBUG][       Thread-609044][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:26:37,680 [DEBUG][       Thread-609044][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:26:37,693 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:26:37,694 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:26:37,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:26:37,698 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:26:37,703 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:26:37,705 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:26:37,705 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:26:37,706 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:26:37,706 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.559662 -999.00  +13.90  38.36     50   +3.90 1 1 2 1 1   887    0 9.86 -5.87 ----- 40.5 38.4 35.6 54.7 16.2 -24.0 15.6 -24.3 15.9 -23.1 16.4 -22.4
2025-07-01 15:26:37,706 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:26:37,706 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:26:37,706 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.559662
2025-07-01 15:26:37,706 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:26:37,707 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:26:37,707 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:26:37,707 [DEBUG][       Thread-609044][   transport.py][1871] : EOF in transport thread
2025-07-01 15:26:37,707 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:26:37,708 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:26:37,708 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:26:05', tmtdew=11.64, humidity=45.38, cloud=0.0, wind=37.03, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:25:54.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:26:37,790 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:26:37,801 [DEBUG][       Thread-609047][   transport.py][1871] : starting thread (client mode): 0x8393c40
2025-07-01 15:26:37,801 [DEBUG][       Thread-609047][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:26:37,816 [DEBUG][       Thread-609047][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:26:37,816 [ INFO][       Thread-609047][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:26:37,828 [DEBUG][       Thread-609047][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:26:37,828 [DEBUG][       Thread-609047][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:26:37,828 [DEBUG][       Thread-609047][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:26:37,829 [DEBUG][       Thread-609047][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:26:37,829 [DEBUG][       Thread-609047][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:26:37,829 [DEBUG][       Thread-609047][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:26:37,829 [DEBUG][       Thread-609047][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:26:37,829 [DEBUG][       Thread-609047][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:26:37,829 [DEBUG][       Thread-609047][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:26:37,829 [DEBUG][       Thread-609047][   transport.py][1871] : client lang: <none>
2025-07-01 15:26:37,829 [DEBUG][       Thread-609047][   transport.py][1871] : server lang: <none>
2025-07-01 15:26:37,829 [DEBUG][       Thread-609047][   transport.py][1871] : kex follows: False
2025-07-01 15:26:37,829 [DEBUG][       Thread-609047][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:26:37,830 [DEBUG][       Thread-609047][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:26:37,830 [DEBUG][       Thread-609047][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:26:37,830 [DEBUG][       Thread-609047][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:26:37,830 [DEBUG][       Thread-609047][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:26:37,830 [DEBUG][       Thread-609047][   transport.py][1871] : Compression: none
2025-07-01 15:26:37,830 [DEBUG][       Thread-609047][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:26:37,886 [DEBUG][       Thread-609047][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:26:37,886 [DEBUG][       Thread-609047][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:26:37,886 [DEBUG][       Thread-609047][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:26:37,886 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:26:37,887 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:26:37,943 [DEBUG][       Thread-609047][   transport.py][1871] : userauth is OK
2025-07-01 15:26:37,943 [DEBUG][       Thread-609047][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:26:37,943 [DEBUG][       Thread-609047][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:26:37,943 [DEBUG][       Thread-609047][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:26:37,943 [DEBUG][       Thread-609047][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:26:37,961 [ INFO][       Thread-609047][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:26:37,961 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:26:37,961 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:26:38,985 [DEBUG][       Thread-609047][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:26:38,985 [DEBUG][       Thread-609047][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:26:39,035 [DEBUG][       Thread-609047][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:26:39,035 [DEBUG][       Thread-609047][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:26:39,044 [DEBUG][       Thread-609047][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:26:39,052 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:26:39,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-07-01 15:26:39,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-07-01 15:26:39,068 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:26:39,068 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:26:39,068 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:26:39,075 [DEBUG][       Thread-609047][   transport.py][1871] : EOF in transport thread
2025-07-01 15:26:40,950 [DEBUG][Thread-609049 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:26:49,078 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:26:49,078 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:26:49,078 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:26:49,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-07-01 15:26:49,587 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 26, 37), 11.53, 45.86, 0.0, 33.61, 14.12, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:26:49,587 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:26:37
2025-07-01 15:26:49,673 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:26:49,677 [DEBUG][       Thread-609050][   transport.py][1871] : starting thread (client mode): 0x81c8130
2025-07-01 15:26:49,677 [DEBUG][       Thread-609050][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:26:49,698 [DEBUG][       Thread-609050][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:26:49,698 [ INFO][       Thread-609050][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:26:49,702 [DEBUG][       Thread-609050][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:26:49,702 [DEBUG][       Thread-609050][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:26:49,702 [DEBUG][       Thread-609050][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:26:49,702 [DEBUG][       Thread-609050][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:26:49,702 [DEBUG][       Thread-609050][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:26:49,702 [DEBUG][       Thread-609050][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:26:49,702 [DEBUG][       Thread-609050][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:26:49,702 [DEBUG][       Thread-609050][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:26:49,702 [DEBUG][       Thread-609050][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:26:49,702 [DEBUG][       Thread-609050][   transport.py][1871] : client lang: <none>
2025-07-01 15:26:49,702 [DEBUG][       Thread-609050][   transport.py][1871] : server lang: <none>
2025-07-01 15:26:49,702 [DEBUG][       Thread-609050][   transport.py][1871] : kex follows: False
2025-07-01 15:26:49,702 [DEBUG][       Thread-609050][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:26:49,702 [DEBUG][       Thread-609050][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:26:49,702 [DEBUG][       Thread-609050][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:26:49,702 [DEBUG][       Thread-609050][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:26:49,702 [DEBUG][       Thread-609050][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:26:49,702 [DEBUG][       Thread-609050][   transport.py][1871] : Compression: none
2025-07-01 15:26:49,702 [DEBUG][       Thread-609050][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:26:49,718 [DEBUG][       Thread-609050][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:26:49,719 [DEBUG][       Thread-609050][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:26:49,719 [DEBUG][       Thread-609050][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:26:49,720 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:26:49,720 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:26:49,721 [DEBUG][       Thread-609050][   transport.py][1871] : userauth is OK
2025-07-01 15:26:49,745 [ INFO][       Thread-609050][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:26:49,745 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:26:49,984 [DEBUG][Thread-609052 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:26:50,386 [DEBUG][       Thread-609050][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:26:50,386 [DEBUG][       Thread-609050][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:26:50,428 [DEBUG][       Thread-609050][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:26:50,429 [DEBUG][       Thread-609050][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:26:50,432 [DEBUG][       Thread-609050][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:26:50,444 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:26:50,445 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:26:50,447 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:26:50,448 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:26:50,454 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:26:50,455 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:26:50,455 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:26:50,456 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:26:50,456 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.559662 -999.00  +13.90  38.36     50   +3.90 1 1 2 1 1   887    0 9.86 -5.87 ----- 40.5 38.4 35.6 54.7 16.2 -24.0 15.6 -24.3 15.9 -23.1 16.4 -22.4
2025-07-01 15:26:50,456 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:26:50,456 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:26:50,456 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.559662
2025-07-01 15:26:50,457 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:26:50,457 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:26:50,458 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:26:50,458 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:26:50,458 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:26:50,458 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:26:37', tmtdew=11.53, humidity=45.86, cloud=0.0, wind=33.61, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:25:54.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:26:50,458 [DEBUG][       Thread-609050][   transport.py][1871] : EOF in transport thread
2025-07-01 15:26:50,542 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:26:50,551 [DEBUG][       Thread-609054][   transport.py][1871] : starting thread (client mode): 0x8154d30
2025-07-01 15:26:50,551 [DEBUG][       Thread-609054][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:26:50,567 [DEBUG][       Thread-609054][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:26:50,567 [ INFO][       Thread-609054][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:26:50,575 [DEBUG][       Thread-609054][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:26:50,575 [DEBUG][       Thread-609054][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:26:50,575 [DEBUG][       Thread-609054][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:26:50,575 [DEBUG][       Thread-609054][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:26:50,575 [DEBUG][       Thread-609054][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:26:50,575 [DEBUG][       Thread-609054][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:26:50,575 [DEBUG][       Thread-609054][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:26:50,576 [DEBUG][       Thread-609054][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:26:50,576 [DEBUG][       Thread-609054][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:26:50,576 [DEBUG][       Thread-609054][   transport.py][1871] : client lang: <none>
2025-07-01 15:26:50,576 [DEBUG][       Thread-609054][   transport.py][1871] : server lang: <none>
2025-07-01 15:26:50,576 [DEBUG][       Thread-609054][   transport.py][1871] : kex follows: False
2025-07-01 15:26:50,576 [DEBUG][       Thread-609054][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:26:50,576 [DEBUG][       Thread-609054][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:26:50,576 [DEBUG][       Thread-609054][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:26:50,576 [DEBUG][       Thread-609054][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:26:50,576 [DEBUG][       Thread-609054][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:26:50,576 [DEBUG][       Thread-609054][   transport.py][1871] : Compression: none
2025-07-01 15:26:50,576 [DEBUG][       Thread-609054][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:26:50,632 [DEBUG][       Thread-609054][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:26:50,633 [DEBUG][       Thread-609054][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:26:50,633 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:26:50,634 [DEBUG][       Thread-609054][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:26:50,634 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:26:50,688 [DEBUG][       Thread-609054][   transport.py][1871] : userauth is OK
2025-07-01 15:26:50,688 [DEBUG][       Thread-609054][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:26:50,688 [DEBUG][       Thread-609054][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:26:50,688 [DEBUG][       Thread-609054][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:26:50,688 [DEBUG][       Thread-609054][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:26:50,707 [ INFO][       Thread-609054][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:26:50,707 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:26:50,707 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:26:51,750 [DEBUG][       Thread-609054][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:26:51,750 [DEBUG][       Thread-609054][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:26:51,800 [DEBUG][       Thread-609054][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:26:51,800 [DEBUG][       Thread-609054][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:26:51,809 [DEBUG][       Thread-609054][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:26:51,819 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:26:51,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-07-01 15:26:51,833 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 15:26:51,842 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:26:51,843 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:26:51,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:26:51,851 [DEBUG][       Thread-609054][   transport.py][1871] : EOF in transport thread
2025-07-01 15:26:59,006 [DEBUG][Thread-609056 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:27:01,854 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:27:01,854 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:27:01,854 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:27:01,855 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 15:27:02,347 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 26, 37), 11.53, 45.86, 0.0, 33.61, 14.12, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:27:02,347 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:26:37
2025-07-01 15:27:02,433 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:27:02,437 [DEBUG][       Thread-609057][   transport.py][1871] : starting thread (client mode): 0x81ca320
2025-07-01 15:27:02,437 [DEBUG][       Thread-609057][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:27:02,458 [DEBUG][       Thread-609057][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:27:02,458 [ INFO][       Thread-609057][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:27:02,461 [DEBUG][       Thread-609057][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:27:02,461 [DEBUG][       Thread-609057][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:27:02,461 [DEBUG][       Thread-609057][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:27:02,461 [DEBUG][       Thread-609057][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:27:02,461 [DEBUG][       Thread-609057][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:27:02,461 [DEBUG][       Thread-609057][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:27:02,461 [DEBUG][       Thread-609057][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:27:02,461 [DEBUG][       Thread-609057][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:27:02,461 [DEBUG][       Thread-609057][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:27:02,461 [DEBUG][       Thread-609057][   transport.py][1871] : client lang: <none>
2025-07-01 15:27:02,461 [DEBUG][       Thread-609057][   transport.py][1871] : server lang: <none>
2025-07-01 15:27:02,461 [DEBUG][       Thread-609057][   transport.py][1871] : kex follows: False
2025-07-01 15:27:02,461 [DEBUG][       Thread-609057][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:27:02,461 [DEBUG][       Thread-609057][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:27:02,461 [DEBUG][       Thread-609057][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:27:02,461 [DEBUG][       Thread-609057][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:27:02,461 [DEBUG][       Thread-609057][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:27:02,461 [DEBUG][       Thread-609057][   transport.py][1871] : Compression: none
2025-07-01 15:27:02,461 [DEBUG][       Thread-609057][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:27:02,476 [DEBUG][       Thread-609057][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:27:02,476 [DEBUG][       Thread-609057][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:27:02,476 [DEBUG][       Thread-609057][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:27:02,476 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:27:02,476 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:27:02,477 [DEBUG][       Thread-609057][   transport.py][1871] : userauth is OK
2025-07-01 15:27:02,489 [ INFO][       Thread-609057][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:27:02,489 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:27:03,127 [DEBUG][       Thread-609057][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:27:03,127 [DEBUG][       Thread-609057][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:27:03,169 [DEBUG][       Thread-609057][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:27:03,169 [DEBUG][       Thread-609057][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:27:03,172 [DEBUG][       Thread-609057][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:27:03,186 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:27:03,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:27:03,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:27:03,191 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:27:03,196 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:27:03,198 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:27:03,199 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:27:03,199 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:27:03,200 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.560009 -999.00  +13.80  39.41     50   +3.60 1 1 2 1 1   887    0 10.17 -5.77 ----- 45.9 39.4 21.0 49.0 16.1 -24.1 15.5 -24.7 15.8 -23.7 16.3 -24.2
2025-07-01 15:27:03,200 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:27:03,200 [DEBUG][       Thread-609057][   transport.py][1871] : EOF in transport thread
2025-07-01 15:27:03,201 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:27:03,201 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.560009
2025-07-01 15:27:03,202 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:27:03,202 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:27:03,202 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:27:03,202 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:27:03,202 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:27:03,203 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:26:37', tmtdew=11.53, humidity=45.86, cloud=0.0, wind=33.61, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:26:24.778', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:27:03,280 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:27:03,291 [DEBUG][       Thread-609060][   transport.py][1871] : starting thread (client mode): 0x75ab310
2025-07-01 15:27:03,291 [DEBUG][       Thread-609060][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:27:03,309 [DEBUG][       Thread-609060][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:27:03,309 [ INFO][       Thread-609060][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:27:03,318 [DEBUG][       Thread-609060][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:27:03,318 [DEBUG][       Thread-609060][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:27:03,318 [DEBUG][       Thread-609060][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:27:03,318 [DEBUG][       Thread-609060][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:27:03,318 [DEBUG][       Thread-609060][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:27:03,318 [DEBUG][       Thread-609060][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:27:03,318 [DEBUG][       Thread-609060][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:27:03,318 [DEBUG][       Thread-609060][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:27:03,318 [DEBUG][       Thread-609060][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:27:03,318 [DEBUG][       Thread-609060][   transport.py][1871] : client lang: <none>
2025-07-01 15:27:03,318 [DEBUG][       Thread-609060][   transport.py][1871] : server lang: <none>
2025-07-01 15:27:03,319 [DEBUG][       Thread-609060][   transport.py][1871] : kex follows: False
2025-07-01 15:27:03,319 [DEBUG][       Thread-609060][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:27:03,319 [DEBUG][       Thread-609060][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:27:03,319 [DEBUG][       Thread-609060][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:27:03,319 [DEBUG][       Thread-609060][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:27:03,319 [DEBUG][       Thread-609060][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:27:03,319 [DEBUG][       Thread-609060][   transport.py][1871] : Compression: none
2025-07-01 15:27:03,319 [DEBUG][       Thread-609060][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:27:03,376 [DEBUG][       Thread-609060][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:27:03,377 [DEBUG][       Thread-609060][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:27:03,377 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:27:03,378 [DEBUG][       Thread-609060][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:27:03,378 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:27:03,433 [DEBUG][       Thread-609060][   transport.py][1871] : userauth is OK
2025-07-01 15:27:03,433 [DEBUG][       Thread-609060][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:27:03,433 [DEBUG][       Thread-609060][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:27:03,433 [DEBUG][       Thread-609060][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:27:03,434 [DEBUG][       Thread-609060][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:27:03,452 [ INFO][       Thread-609060][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:27:03,453 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:27:03,453 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:27:04,515 [DEBUG][       Thread-609060][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:27:04,515 [DEBUG][       Thread-609060][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:27:04,564 [DEBUG][       Thread-609060][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:27:04,564 [DEBUG][       Thread-609060][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:27:04,574 [DEBUG][       Thread-609060][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:27:04,586 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:27:04,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-07-01 15:27:04,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-07-01 15:27:04,605 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:27:04,606 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:27:04,606 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:27:04,614 [DEBUG][       Thread-609060][   transport.py][1871] : EOF in transport thread
2025-07-01 15:27:08,029 [DEBUG][Thread-609062 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:27:14,616 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:27:14,617 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:27:14,617 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:27:14,618 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 15:27:15,100 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 27, 8), 11.63, 45.43, 0.0, 41.53, 14.11, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:27:15,100 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:27:08
2025-07-01 15:27:15,185 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:27:15,189 [DEBUG][       Thread-609063][   transport.py][1871] : starting thread (client mode): 0x81cb460
2025-07-01 15:27:15,189 [DEBUG][       Thread-609063][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:27:15,209 [DEBUG][       Thread-609063][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:27:15,209 [ INFO][       Thread-609063][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:27:15,213 [DEBUG][       Thread-609063][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:27:15,213 [DEBUG][       Thread-609063][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:27:15,213 [DEBUG][       Thread-609063][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:27:15,213 [DEBUG][       Thread-609063][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:27:15,213 [DEBUG][       Thread-609063][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:27:15,213 [DEBUG][       Thread-609063][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:27:15,213 [DEBUG][       Thread-609063][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:27:15,213 [DEBUG][       Thread-609063][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:27:15,213 [DEBUG][       Thread-609063][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:27:15,213 [DEBUG][       Thread-609063][   transport.py][1871] : client lang: <none>
2025-07-01 15:27:15,213 [DEBUG][       Thread-609063][   transport.py][1871] : server lang: <none>
2025-07-01 15:27:15,213 [DEBUG][       Thread-609063][   transport.py][1871] : kex follows: False
2025-07-01 15:27:15,213 [DEBUG][       Thread-609063][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:27:15,213 [DEBUG][       Thread-609063][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:27:15,213 [DEBUG][       Thread-609063][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:27:15,213 [DEBUG][       Thread-609063][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:27:15,213 [DEBUG][       Thread-609063][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:27:15,213 [DEBUG][       Thread-609063][   transport.py][1871] : Compression: none
2025-07-01 15:27:15,213 [DEBUG][       Thread-609063][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:27:15,230 [DEBUG][       Thread-609063][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:27:15,230 [DEBUG][       Thread-609063][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:27:15,231 [DEBUG][       Thread-609063][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:27:15,231 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:27:15,231 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:27:15,232 [DEBUG][       Thread-609063][   transport.py][1871] : userauth is OK
2025-07-01 15:27:15,257 [ INFO][       Thread-609063][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:27:15,258 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:27:15,934 [DEBUG][       Thread-609063][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:27:15,934 [DEBUG][       Thread-609063][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:27:15,977 [DEBUG][       Thread-609063][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:27:15,977 [DEBUG][       Thread-609063][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:27:15,981 [DEBUG][       Thread-609063][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:27:15,992 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:27:15,993 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:27:15,994 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:27:15,996 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:27:16,002 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:27:16,004 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:27:16,004 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:27:16,005 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:27:16,005 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.560009 -999.00  +13.80  39.41     50   +3.60 1 1 2 1 1   887    0 10.17 -5.77 ----- 45.9 39.4 21.0 49.0 16.1 -24.1 15.5 -24.7 15.8 -23.7 16.3 -24.2
2025-07-01 15:27:16,005 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:27:16,005 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:27:16,005 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.560009
2025-07-01 15:27:16,005 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:27:16,006 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:27:16,006 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:27:16,006 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:27:16,006 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:27:16,006 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:27:08', tmtdew=11.63, humidity=45.43, cloud=0.0, wind=41.53, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:26:24.778', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:27:16,007 [DEBUG][       Thread-609063][   transport.py][1871] : EOF in transport thread
2025-07-01 15:27:16,090 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:27:16,099 [DEBUG][       Thread-609066][   transport.py][1871] : starting thread (client mode): 0x8393790
2025-07-01 15:27:16,099 [DEBUG][       Thread-609066][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:27:16,113 [DEBUG][       Thread-609066][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:27:16,113 [ INFO][       Thread-609066][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:27:16,121 [DEBUG][       Thread-609066][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:27:16,121 [DEBUG][       Thread-609066][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:27:16,121 [DEBUG][       Thread-609066][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:27:16,121 [DEBUG][       Thread-609066][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:27:16,121 [DEBUG][       Thread-609066][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:27:16,121 [DEBUG][       Thread-609066][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:27:16,121 [DEBUG][       Thread-609066][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:27:16,121 [DEBUG][       Thread-609066][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:27:16,121 [DEBUG][       Thread-609066][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:27:16,121 [DEBUG][       Thread-609066][   transport.py][1871] : client lang: <none>
2025-07-01 15:27:16,121 [DEBUG][       Thread-609066][   transport.py][1871] : server lang: <none>
2025-07-01 15:27:16,121 [DEBUG][       Thread-609066][   transport.py][1871] : kex follows: False
2025-07-01 15:27:16,121 [DEBUG][       Thread-609066][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:27:16,121 [DEBUG][       Thread-609066][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:27:16,121 [DEBUG][       Thread-609066][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:27:16,121 [DEBUG][       Thread-609066][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:27:16,121 [DEBUG][       Thread-609066][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:27:16,121 [DEBUG][       Thread-609066][   transport.py][1871] : Compression: none
2025-07-01 15:27:16,121 [DEBUG][       Thread-609066][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:27:16,180 [DEBUG][       Thread-609066][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:27:16,180 [DEBUG][       Thread-609066][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:27:16,181 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:27:16,181 [DEBUG][       Thread-609066][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:27:16,182 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:27:16,236 [DEBUG][       Thread-609066][   transport.py][1871] : userauth is OK
2025-07-01 15:27:16,236 [DEBUG][       Thread-609066][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:27:16,236 [DEBUG][       Thread-609066][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:27:16,236 [DEBUG][       Thread-609066][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:27:16,236 [DEBUG][       Thread-609066][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:27:16,258 [ INFO][       Thread-609066][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:27:16,258 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:27:16,258 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:27:17,050 [DEBUG][Thread-609068 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:27:17,246 [DEBUG][       Thread-609066][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:27:17,246 [DEBUG][       Thread-609066][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:27:17,296 [DEBUG][       Thread-609066][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:27:17,296 [DEBUG][       Thread-609066][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:27:17,305 [DEBUG][       Thread-609066][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:27:17,314 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:27:17,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-07-01 15:27:17,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-07-01 15:27:17,333 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:27:17,333 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:27:17,334 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:27:17,345 [DEBUG][       Thread-609066][   transport.py][1871] : EOF in transport thread
2025-07-01 15:27:26,085 [DEBUG][Thread-609069 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:27:27,344 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:27:27,344 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:27:27,344 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:27:27,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-07-01 15:27:27,847 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 27, 8), 11.63, 45.43, 0.0, 41.53, 14.11, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:27:27,847 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:27:08
2025-07-01 15:27:27,931 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:27:27,937 [DEBUG][       Thread-609070][   transport.py][1871] : starting thread (client mode): 0x81ca140
2025-07-01 15:27:27,937 [DEBUG][       Thread-609070][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:27:27,958 [DEBUG][       Thread-609070][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:27:27,958 [ INFO][       Thread-609070][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:27:27,961 [DEBUG][       Thread-609070][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:27:27,961 [DEBUG][       Thread-609070][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:27:27,961 [DEBUG][       Thread-609070][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:27:27,961 [DEBUG][       Thread-609070][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:27:27,961 [DEBUG][       Thread-609070][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:27:27,961 [DEBUG][       Thread-609070][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:27:27,961 [DEBUG][       Thread-609070][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:27:27,961 [DEBUG][       Thread-609070][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:27:27,961 [DEBUG][       Thread-609070][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:27:27,961 [DEBUG][       Thread-609070][   transport.py][1871] : client lang: <none>
2025-07-01 15:27:27,961 [DEBUG][       Thread-609070][   transport.py][1871] : server lang: <none>
2025-07-01 15:27:27,961 [DEBUG][       Thread-609070][   transport.py][1871] : kex follows: False
2025-07-01 15:27:27,961 [DEBUG][       Thread-609070][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:27:27,961 [DEBUG][       Thread-609070][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:27:27,961 [DEBUG][       Thread-609070][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:27:27,961 [DEBUG][       Thread-609070][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:27:27,961 [DEBUG][       Thread-609070][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:27:27,962 [DEBUG][       Thread-609070][   transport.py][1871] : Compression: none
2025-07-01 15:27:27,962 [DEBUG][       Thread-609070][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:27:27,981 [DEBUG][       Thread-609070][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:27:27,982 [DEBUG][       Thread-609070][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:27:27,982 [DEBUG][       Thread-609070][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:27:27,982 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:27:27,982 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:27:27,983 [DEBUG][       Thread-609070][   transport.py][1871] : userauth is OK
2025-07-01 15:27:28,008 [ INFO][       Thread-609070][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:27:28,009 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:27:28,650 [DEBUG][       Thread-609070][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:27:28,650 [DEBUG][       Thread-609070][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:27:28,693 [DEBUG][       Thread-609070][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:27:28,693 [DEBUG][       Thread-609070][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:27:28,696 [DEBUG][       Thread-609070][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:27:28,709 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:27:28,710 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:27:28,712 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:27:28,714 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:27:28,720 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:27:28,722 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:27:28,722 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:27:28,723 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:27:28,723 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.560009 -999.00  +13.80  39.41     50   +3.60 1 1 2 1 1   887    0 10.17 -5.77 ----- 45.9 39.4 21.0 49.0 16.1 -24.1 15.5 -24.7 15.8 -23.7 16.3 -24.2
2025-07-01 15:27:28,723 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:27:28,723 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:27:28,723 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.560009
2025-07-01 15:27:28,723 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:27:28,724 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:27:28,724 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:27:28,724 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:27:28,724 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:27:28,724 [DEBUG][       Thread-609070][   transport.py][1871] : EOF in transport thread
2025-07-01 15:27:28,725 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:27:08', tmtdew=11.63, humidity=45.43, cloud=0.0, wind=41.53, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:26:24.778', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:27:28,808 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:27:28,822 [DEBUG][       Thread-609073][   transport.py][1871] : starting thread (client mode): 0x8393d90
2025-07-01 15:27:28,822 [DEBUG][       Thread-609073][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:27:28,837 [DEBUG][       Thread-609073][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:27:28,837 [ INFO][       Thread-609073][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:27:28,845 [DEBUG][       Thread-609073][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:27:28,846 [DEBUG][       Thread-609073][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:27:28,846 [DEBUG][       Thread-609073][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:27:28,846 [DEBUG][       Thread-609073][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:27:28,846 [DEBUG][       Thread-609073][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:27:28,846 [DEBUG][       Thread-609073][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:27:28,846 [DEBUG][       Thread-609073][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:27:28,846 [DEBUG][       Thread-609073][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:27:28,846 [DEBUG][       Thread-609073][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:27:28,846 [DEBUG][       Thread-609073][   transport.py][1871] : client lang: <none>
2025-07-01 15:27:28,846 [DEBUG][       Thread-609073][   transport.py][1871] : server lang: <none>
2025-07-01 15:27:28,846 [DEBUG][       Thread-609073][   transport.py][1871] : kex follows: False
2025-07-01 15:27:28,846 [DEBUG][       Thread-609073][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:27:28,846 [DEBUG][       Thread-609073][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:27:28,846 [DEBUG][       Thread-609073][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:27:28,846 [DEBUG][       Thread-609073][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:27:28,846 [DEBUG][       Thread-609073][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:27:28,846 [DEBUG][       Thread-609073][   transport.py][1871] : Compression: none
2025-07-01 15:27:28,846 [DEBUG][       Thread-609073][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:27:28,904 [DEBUG][       Thread-609073][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:27:28,904 [DEBUG][       Thread-609073][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:27:28,905 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:27:28,905 [DEBUG][       Thread-609073][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:27:28,906 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:27:28,960 [DEBUG][       Thread-609073][   transport.py][1871] : userauth is OK
2025-07-01 15:27:28,960 [DEBUG][       Thread-609073][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:27:28,960 [DEBUG][       Thread-609073][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:27:28,960 [DEBUG][       Thread-609073][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:27:28,961 [DEBUG][       Thread-609073][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:27:28,979 [ INFO][       Thread-609073][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:27:28,980 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:27:28,980 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:27:30,014 [DEBUG][       Thread-609073][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:27:30,014 [DEBUG][       Thread-609073][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:27:30,069 [DEBUG][       Thread-609073][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:27:30,069 [DEBUG][       Thread-609073][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:27:30,084 [DEBUG][       Thread-609073][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:27:30,093 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:27:30,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-07-01 15:27:30,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-07-01 15:27:30,110 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:27:30,111 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:27:30,111 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:27:30,119 [DEBUG][       Thread-609073][   transport.py][1871] : EOF in transport thread
2025-07-01 15:27:35,107 [DEBUG][Thread-609075 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:27:36,814 [DEBUG][Thread-609076 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:27:40,120 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:27:40,120 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:27:40,120 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:27:40,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-07-01 15:27:40,606 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 27, 8), 11.63, 45.43, 0.0, 41.53, 14.11, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:27:40,606 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:27:08
2025-07-01 15:27:40,693 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:27:40,698 [DEBUG][       Thread-609077][   transport.py][1871] : starting thread (client mode): 0x81c8f70
2025-07-01 15:27:40,698 [DEBUG][       Thread-609077][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:27:40,717 [DEBUG][       Thread-609077][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:27:40,717 [ INFO][       Thread-609077][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:27:40,721 [DEBUG][       Thread-609077][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:27:40,721 [DEBUG][       Thread-609077][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:27:40,721 [DEBUG][       Thread-609077][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:27:40,721 [DEBUG][       Thread-609077][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:27:40,721 [DEBUG][       Thread-609077][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:27:40,721 [DEBUG][       Thread-609077][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:27:40,721 [DEBUG][       Thread-609077][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:27:40,721 [DEBUG][       Thread-609077][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:27:40,721 [DEBUG][       Thread-609077][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:27:40,721 [DEBUG][       Thread-609077][   transport.py][1871] : client lang: <none>
2025-07-01 15:27:40,721 [DEBUG][       Thread-609077][   transport.py][1871] : server lang: <none>
2025-07-01 15:27:40,721 [DEBUG][       Thread-609077][   transport.py][1871] : kex follows: False
2025-07-01 15:27:40,721 [DEBUG][       Thread-609077][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:27:40,721 [DEBUG][       Thread-609077][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:27:40,721 [DEBUG][       Thread-609077][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:27:40,721 [DEBUG][       Thread-609077][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:27:40,721 [DEBUG][       Thread-609077][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:27:40,721 [DEBUG][       Thread-609077][   transport.py][1871] : Compression: none
2025-07-01 15:27:40,721 [DEBUG][       Thread-609077][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:27:40,740 [DEBUG][       Thread-609077][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:27:40,740 [DEBUG][       Thread-609077][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:27:40,740 [DEBUG][       Thread-609077][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:27:40,740 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:27:40,740 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:27:40,741 [DEBUG][       Thread-609077][   transport.py][1871] : userauth is OK
2025-07-01 15:27:40,765 [ INFO][       Thread-609077][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:27:40,765 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:27:41,446 [DEBUG][       Thread-609077][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:27:41,447 [DEBUG][       Thread-609077][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:27:41,488 [DEBUG][       Thread-609077][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:27:41,488 [DEBUG][       Thread-609077][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:27:41,490 [DEBUG][       Thread-609077][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:27:41,504 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:27:41,504 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:27:41,506 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:27:41,507 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:27:41,511 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:27:41,513 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:27:41,513 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:27:41,513 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:27:41,513 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.560704 -999.00  +13.80  41.55     50   +3.80 1 1 2 1 1   887    0 9.54 -7.43 ----- 37.0 41.5 17.8 52.5 16.1 -24.0 15.5 -24.5 15.8 -22.7 16.4 -22.3
2025-07-01 15:27:41,513 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:27:41,513 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:27:41,513 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.560704
2025-07-01 15:27:41,513 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:27:41,513 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:27:41,513 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:27:41,513 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:27:41,513 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:27:41,513 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:27:08', tmtdew=11.63, humidity=45.43, cloud=0.0, wind=41.53, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:27:24.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:27:41,514 [DEBUG][       Thread-609077][   transport.py][1871] : EOF in transport thread
2025-07-01 15:27:41,585 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:27:41,596 [DEBUG][       Thread-609080][   transport.py][1871] : starting thread (client mode): 0x81579d0
2025-07-01 15:27:41,596 [DEBUG][       Thread-609080][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:27:41,611 [DEBUG][       Thread-609080][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:27:41,611 [ INFO][       Thread-609080][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:27:41,619 [DEBUG][       Thread-609080][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:27:41,619 [DEBUG][       Thread-609080][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:27:41,619 [DEBUG][       Thread-609080][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:27:41,619 [DEBUG][       Thread-609080][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:27:41,619 [DEBUG][       Thread-609080][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:27:41,619 [DEBUG][       Thread-609080][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:27:41,619 [DEBUG][       Thread-609080][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:27:41,619 [DEBUG][       Thread-609080][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:27:41,619 [DEBUG][       Thread-609080][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:27:41,619 [DEBUG][       Thread-609080][   transport.py][1871] : client lang: <none>
2025-07-01 15:27:41,619 [DEBUG][       Thread-609080][   transport.py][1871] : server lang: <none>
2025-07-01 15:27:41,619 [DEBUG][       Thread-609080][   transport.py][1871] : kex follows: False
2025-07-01 15:27:41,619 [DEBUG][       Thread-609080][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:27:41,619 [DEBUG][       Thread-609080][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:27:41,619 [DEBUG][       Thread-609080][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:27:41,619 [DEBUG][       Thread-609080][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:27:41,620 [DEBUG][       Thread-609080][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:27:41,620 [DEBUG][       Thread-609080][   transport.py][1871] : Compression: none
2025-07-01 15:27:41,620 [DEBUG][       Thread-609080][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:27:41,684 [DEBUG][       Thread-609080][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:27:41,684 [DEBUG][       Thread-609080][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:27:41,685 [DEBUG][       Thread-609080][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:27:41,685 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:27:41,685 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:27:41,740 [DEBUG][       Thread-609080][   transport.py][1871] : userauth is OK
2025-07-01 15:27:41,740 [DEBUG][       Thread-609080][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:27:41,740 [DEBUG][       Thread-609080][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:27:41,740 [DEBUG][       Thread-609080][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:27:41,740 [DEBUG][       Thread-609080][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:27:41,755 [ INFO][       Thread-609080][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:27:41,755 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:27:41,755 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:27:42,763 [DEBUG][       Thread-609080][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:27:42,763 [DEBUG][       Thread-609080][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:27:42,811 [DEBUG][       Thread-609080][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:27:42,811 [DEBUG][       Thread-609080][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:27:42,820 [DEBUG][       Thread-609080][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:27:42,828 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:27:42,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-07-01 15:27:42,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-07-01 15:27:42,844 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:27:42,844 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:27:42,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:27:42,852 [DEBUG][       Thread-609080][   transport.py][1871] : EOF in transport thread
2025-07-01 15:27:44,127 [DEBUG][Thread-609082 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:27:52,855 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:27:52,855 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:27:52,855 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:27:52,856 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 15:27:53,149 [DEBUG][Thread-609083 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:27:53,345 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 27, 40), 11.64, 45.41, 0.0, 37.35, 14.16, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:27:53,345 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:27:40
2025-07-01 15:27:53,431 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:27:53,437 [DEBUG][       Thread-609084][   transport.py][1871] : starting thread (client mode): 0x75a9e70
2025-07-01 15:27:53,437 [DEBUG][       Thread-609084][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:27:53,457 [DEBUG][       Thread-609084][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:27:53,457 [ INFO][       Thread-609084][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:27:53,461 [DEBUG][       Thread-609084][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:27:53,461 [DEBUG][       Thread-609084][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:27:53,461 [DEBUG][       Thread-609084][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:27:53,461 [DEBUG][       Thread-609084][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:27:53,461 [DEBUG][       Thread-609084][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:27:53,461 [DEBUG][       Thread-609084][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:27:53,461 [DEBUG][       Thread-609084][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:27:53,461 [DEBUG][       Thread-609084][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:27:53,461 [DEBUG][       Thread-609084][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:27:53,461 [DEBUG][       Thread-609084][   transport.py][1871] : client lang: <none>
2025-07-01 15:27:53,461 [DEBUG][       Thread-609084][   transport.py][1871] : server lang: <none>
2025-07-01 15:27:53,461 [DEBUG][       Thread-609084][   transport.py][1871] : kex follows: False
2025-07-01 15:27:53,461 [DEBUG][       Thread-609084][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:27:53,461 [DEBUG][       Thread-609084][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:27:53,461 [DEBUG][       Thread-609084][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:27:53,461 [DEBUG][       Thread-609084][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:27:53,461 [DEBUG][       Thread-609084][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:27:53,462 [DEBUG][       Thread-609084][   transport.py][1871] : Compression: none
2025-07-01 15:27:53,462 [DEBUG][       Thread-609084][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:27:53,478 [DEBUG][       Thread-609084][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:27:53,479 [DEBUG][       Thread-609084][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:27:53,479 [DEBUG][       Thread-609084][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:27:53,480 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:27:53,480 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:27:53,481 [DEBUG][       Thread-609084][   transport.py][1871] : userauth is OK
2025-07-01 15:27:53,494 [ INFO][       Thread-609084][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:27:53,494 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:27:54,108 [DEBUG][       Thread-609084][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:27:54,108 [DEBUG][       Thread-609084][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:27:54,149 [DEBUG][       Thread-609084][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:27:54,149 [DEBUG][       Thread-609084][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:27:54,153 [DEBUG][       Thread-609084][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:27:54,166 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:27:54,167 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:27:54,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:27:54,171 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:27:54,176 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:27:54,178 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:27:54,179 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:27:54,179 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:27:54,179 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.560704 -999.00  +13.80  41.55     50   +3.80 1 1 2 1 1   887    0 9.54 -7.43 ----- 37.0 41.5 17.8 52.5 16.1 -24.0 15.5 -24.5 15.8 -22.7 16.4 -22.3
2025-07-01 15:27:54,179 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:27:54,180 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:27:54,180 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.560704
2025-07-01 15:27:54,180 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:27:54,181 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:27:54,181 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:27:54,181 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:27:54,181 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:27:54,181 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:27:40', tmtdew=11.64, humidity=45.41, cloud=0.0, wind=37.35, temperature=14.16, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:27:24.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:27:54,182 [DEBUG][       Thread-609084][   transport.py][1871] : EOF in transport thread
2025-07-01 15:27:54,264 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:28:02,170 [DEBUG][Thread-609087 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:28:11,204 [DEBUG][Thread-609088 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:28:20,224 [DEBUG][Thread-609089 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:28:29,251 [DEBUG][Thread-609090 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:28:36,846 [DEBUG][Thread-609091 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:28:38,274 [DEBUG][Thread-609092 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:28:47,296 [DEBUG][Thread-609093 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:28:56,316 [DEBUG][Thread-609094 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:29:05,338 [DEBUG][Thread-609095 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:29:14,361 [DEBUG][Thread-609096 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:29:23,384 [DEBUG][Thread-609097 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:29:32,406 [DEBUG][Thread-609098 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:29:36,877 [DEBUG][Thread-609099 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:29:41,426 [DEBUG][Thread-609100 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:29:50,450 [DEBUG][Thread-609101 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:29:59,477 [DEBUG][Thread-609102 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:30:03,412 [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-07-01 15:30:08,499 [DEBUG][Thread-609103 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:30:13,422 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:30:13,423 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:30:13,423 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:30:13,426 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 15:30:13,938 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 29, 48), 11.62, 45.46, 0.0, 29.22, 14.12, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:30:13,939 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:29:48
2025-07-01 15:30:14,025 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:30:14,029 [DEBUG][       Thread-609104][   transport.py][1871] : starting thread (client mode): 0x75a8760
2025-07-01 15:30:14,029 [DEBUG][       Thread-609104][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:30:14,049 [DEBUG][       Thread-609104][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:30:14,049 [ INFO][       Thread-609104][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:30:14,052 [DEBUG][       Thread-609104][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:30:14,052 [DEBUG][       Thread-609104][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:30:14,052 [DEBUG][       Thread-609104][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:30:14,052 [DEBUG][       Thread-609104][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:30:14,052 [DEBUG][       Thread-609104][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:30:14,052 [DEBUG][       Thread-609104][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:30:14,052 [DEBUG][       Thread-609104][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:30:14,052 [DEBUG][       Thread-609104][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:30:14,052 [DEBUG][       Thread-609104][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:30:14,052 [DEBUG][       Thread-609104][   transport.py][1871] : client lang: <none>
2025-07-01 15:30:14,052 [DEBUG][       Thread-609104][   transport.py][1871] : server lang: <none>
2025-07-01 15:30:14,052 [DEBUG][       Thread-609104][   transport.py][1871] : kex follows: False
2025-07-01 15:30:14,052 [DEBUG][       Thread-609104][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:30:14,052 [DEBUG][       Thread-609104][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:30:14,052 [DEBUG][       Thread-609104][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:30:14,052 [DEBUG][       Thread-609104][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:30:14,052 [DEBUG][       Thread-609104][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:30:14,052 [DEBUG][       Thread-609104][   transport.py][1871] : Compression: none
2025-07-01 15:30:14,052 [DEBUG][       Thread-609104][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:30:14,060 [DEBUG][       Thread-609104][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:30:14,060 [DEBUG][       Thread-609104][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:30:14,061 [DEBUG][       Thread-609104][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:30:14,061 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:30:14,061 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:30:14,062 [DEBUG][       Thread-609104][   transport.py][1871] : userauth is OK
2025-07-01 15:30:14,087 [ INFO][       Thread-609104][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:30:14,088 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:30:14,725 [DEBUG][       Thread-609104][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:30:14,725 [DEBUG][       Thread-609104][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:30:14,769 [DEBUG][       Thread-609104][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:30:14,769 [DEBUG][       Thread-609104][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:30:14,772 [DEBUG][       Thread-609104][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:30:14,783 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:30:14,784 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:30:14,786 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:30:14,787 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:30:14,793 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:30:14,795 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:30:14,795 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:30:14,796 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:30:14,796 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.562093 -999.00  +13.70  43.13     51   +3.80 1 1 2 1 1   887    0 10.00 -6.92 ----- 34.2 43.1 24.8 52.6 16.0 -24.3 15.3 -24.7 15.7 -23.1 16.2 -23.2
2025-07-01 15:30:14,796 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:30:14,796 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:30:14,796 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.562093
2025-07-01 15:30:14,796 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:30:14,797 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:30:14,797 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:30:14,797 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:30:14,797 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:30:14,797 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:29:48', tmtdew=11.62, humidity=45.46, cloud=0.0, wind=29.22, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:29:24.835', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:30:14,798 [DEBUG][       Thread-609104][   transport.py][1871] : EOF in transport thread
2025-07-01 15:30:14,881 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:30:14,894 [DEBUG][       Thread-609107][   transport.py][1871] : starting thread (client mode): 0x8393ee0
2025-07-01 15:30:14,894 [DEBUG][       Thread-609107][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:30:14,909 [DEBUG][       Thread-609107][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:30:14,910 [ INFO][       Thread-609107][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:30:14,917 [DEBUG][       Thread-609107][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:30:14,917 [DEBUG][       Thread-609107][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:30:14,917 [DEBUG][       Thread-609107][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:30:14,917 [DEBUG][       Thread-609107][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:30:14,917 [DEBUG][       Thread-609107][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:30:14,917 [DEBUG][       Thread-609107][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:30:14,917 [DEBUG][       Thread-609107][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:30:14,917 [DEBUG][       Thread-609107][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:30:14,917 [DEBUG][       Thread-609107][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:30:14,918 [DEBUG][       Thread-609107][   transport.py][1871] : client lang: <none>
2025-07-01 15:30:14,918 [DEBUG][       Thread-609107][   transport.py][1871] : server lang: <none>
2025-07-01 15:30:14,918 [DEBUG][       Thread-609107][   transport.py][1871] : kex follows: False
2025-07-01 15:30:14,918 [DEBUG][       Thread-609107][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:30:14,918 [DEBUG][       Thread-609107][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:30:14,918 [DEBUG][       Thread-609107][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:30:14,918 [DEBUG][       Thread-609107][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:30:14,918 [DEBUG][       Thread-609107][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:30:14,918 [DEBUG][       Thread-609107][   transport.py][1871] : Compression: none
2025-07-01 15:30:14,918 [DEBUG][       Thread-609107][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:30:14,977 [DEBUG][       Thread-609107][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:30:14,978 [DEBUG][       Thread-609107][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:30:14,978 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:30:14,979 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:30:14,979 [DEBUG][       Thread-609107][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:30:15,033 [DEBUG][       Thread-609107][   transport.py][1871] : userauth is OK
2025-07-01 15:30:15,033 [DEBUG][       Thread-609107][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:30:15,033 [DEBUG][       Thread-609107][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:30:15,033 [DEBUG][       Thread-609107][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:30:15,033 [DEBUG][       Thread-609107][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:30:15,052 [ INFO][       Thread-609107][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:30:15,053 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:30:15,053 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:30:16,100 [DEBUG][       Thread-609107][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:30:16,100 [DEBUG][       Thread-609107][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:30:16,148 [DEBUG][       Thread-609107][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:30:16,148 [DEBUG][       Thread-609107][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:30:16,157 [DEBUG][       Thread-609107][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:30:16,166 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:30: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')
2025-07-01 15:30:16,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-07-01 15:30:16,185 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:30:16,185 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:30:16,186 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:30:16,194 [DEBUG][       Thread-609107][   transport.py][1871] : EOF in transport thread
2025-07-01 15:30:17,518 [DEBUG][Thread-609109 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:30:26,196 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:30:26,196 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:30:26,196 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:30:26,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-07-01 15:30:26,558 [DEBUG][Thread-609110 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:30:26,702 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 30, 20), 11.6, 45.43, 0.0, 44.6, 14.12, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:30:26,702 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:30:20
2025-07-01 15:30:26,787 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:30:26,792 [DEBUG][       Thread-609111][   transport.py][1871] : starting thread (client mode): 0x81c9540
2025-07-01 15:30:26,792 [DEBUG][       Thread-609111][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:30:26,812 [DEBUG][       Thread-609111][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:30:26,812 [ INFO][       Thread-609111][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:30:26,816 [DEBUG][       Thread-609111][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:30:26,816 [DEBUG][       Thread-609111][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:30:26,816 [DEBUG][       Thread-609111][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:30:26,816 [DEBUG][       Thread-609111][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:30:26,816 [DEBUG][       Thread-609111][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:30:26,816 [DEBUG][       Thread-609111][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:30:26,816 [DEBUG][       Thread-609111][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:30:26,816 [DEBUG][       Thread-609111][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:30:26,816 [DEBUG][       Thread-609111][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:30:26,816 [DEBUG][       Thread-609111][   transport.py][1871] : client lang: <none>
2025-07-01 15:30:26,816 [DEBUG][       Thread-609111][   transport.py][1871] : server lang: <none>
2025-07-01 15:30:26,816 [DEBUG][       Thread-609111][   transport.py][1871] : kex follows: False
2025-07-01 15:30:26,816 [DEBUG][       Thread-609111][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:30:26,816 [DEBUG][       Thread-609111][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:30:26,816 [DEBUG][       Thread-609111][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:30:26,816 [DEBUG][       Thread-609111][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:30:26,816 [DEBUG][       Thread-609111][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:30:26,816 [DEBUG][       Thread-609111][   transport.py][1871] : Compression: none
2025-07-01 15:30:26,816 [DEBUG][       Thread-609111][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:30:26,833 [DEBUG][       Thread-609111][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:30:26,833 [DEBUG][       Thread-609111][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:30:26,834 [DEBUG][       Thread-609111][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:30:26,834 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:30:26,834 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:30:26,836 [DEBUG][       Thread-609111][   transport.py][1871] : userauth is OK
2025-07-01 15:30:26,861 [ INFO][       Thread-609111][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:30:26,861 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:30:27,410 [DEBUG][       Thread-609111][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:30:27,410 [DEBUG][       Thread-609111][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:30:27,453 [DEBUG][       Thread-609111][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:30:27,453 [DEBUG][       Thread-609111][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:30:27,457 [DEBUG][       Thread-609111][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:30:27,469 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:30:27,469 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:30:27,471 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:30:27,473 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:30:27,479 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:30:27,481 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:30:27,481 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:30:27,482 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:30:27,482 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.562440 -999.00  +13.80  29.31     51   +3.90 1 1 1 1 1   887    0 9.61 -7.11 ----- 37.0 29.3 10.9 40.8 16.0 -24.0 15.4 -24.7 15.7 -23.1 16.2 -22.5
2025-07-01 15:30:27,482 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:30:27,482 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:30:27,482 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.562440
2025-07-01 15:30:27,483 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:30:27,484 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:30:27,484 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:30:27,484 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:30:27,484 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:30:27,485 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:30:20', tmtdew=11.6, humidity=45.43, cloud=0.0, wind=44.6, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:29:54.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:30:27,485 [DEBUG][       Thread-609111][   transport.py][1871] : EOF in transport thread
2025-07-01 15:30:27,577 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:30:27,589 [DEBUG][       Thread-609114][   transport.py][1871] : starting thread (client mode): 0x83c8790
2025-07-01 15:30:27,589 [DEBUG][       Thread-609114][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:30:27,606 [DEBUG][       Thread-609114][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:30:27,606 [ INFO][       Thread-609114][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:30:27,614 [DEBUG][       Thread-609114][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:30:27,614 [DEBUG][       Thread-609114][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:30:27,614 [DEBUG][       Thread-609114][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:30:27,614 [DEBUG][       Thread-609114][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:30:27,614 [DEBUG][       Thread-609114][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:30:27,614 [DEBUG][       Thread-609114][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:30:27,614 [DEBUG][       Thread-609114][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:30:27,614 [DEBUG][       Thread-609114][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:30:27,614 [DEBUG][       Thread-609114][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:30:27,614 [DEBUG][       Thread-609114][   transport.py][1871] : client lang: <none>
2025-07-01 15:30:27,614 [DEBUG][       Thread-609114][   transport.py][1871] : server lang: <none>
2025-07-01 15:30:27,614 [DEBUG][       Thread-609114][   transport.py][1871] : kex follows: False
2025-07-01 15:30:27,614 [DEBUG][       Thread-609114][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:30:27,614 [DEBUG][       Thread-609114][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:30:27,614 [DEBUG][       Thread-609114][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:30:27,614 [DEBUG][       Thread-609114][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:30:27,614 [DEBUG][       Thread-609114][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:30:27,614 [DEBUG][       Thread-609114][   transport.py][1871] : Compression: none
2025-07-01 15:30:27,614 [DEBUG][       Thread-609114][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:30:27,672 [DEBUG][       Thread-609114][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:30:27,673 [DEBUG][       Thread-609114][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:30:27,673 [DEBUG][       Thread-609114][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:30:27,673 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:30:27,674 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:30:27,732 [DEBUG][       Thread-609114][   transport.py][1871] : userauth is OK
2025-07-01 15:30:27,733 [DEBUG][       Thread-609114][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:30:27,733 [DEBUG][       Thread-609114][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:30:27,733 [DEBUG][       Thread-609114][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:30:27,733 [DEBUG][       Thread-609114][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:30:27,753 [ INFO][       Thread-609114][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:30:27,754 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:30:27,754 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:30:28,829 [DEBUG][       Thread-609114][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:30:28,829 [DEBUG][       Thread-609114][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:30:28,880 [DEBUG][       Thread-609114][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:30:28,880 [DEBUG][       Thread-609114][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:30:28,890 [DEBUG][       Thread-609114][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:30:28,905 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:30:28,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-07-01 15:30:28,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-07-01 15:30:28,923 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:30:28,923 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:30:28,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:30:28,931 [DEBUG][       Thread-609114][   transport.py][1871] : EOF in transport thread
2025-07-01 15:30:35,582 [DEBUG][Thread-609116 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:30:36,903 [DEBUG][Thread-609117 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:30:38,934 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:30:38,934 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:30:38,934 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:30:38,937 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 15:30:39,438 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 30, 20), 11.6, 45.43, 0.0, 44.6, 14.12, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:30:39,438 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:30:20
2025-07-01 15:30:39,525 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:30:39,529 [DEBUG][       Thread-609118][   transport.py][1871] : starting thread (client mode): 0x8172800
2025-07-01 15:30:39,529 [DEBUG][       Thread-609118][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:30:39,549 [DEBUG][       Thread-609118][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:30:39,549 [ INFO][       Thread-609118][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:30:39,552 [DEBUG][       Thread-609118][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:30:39,552 [DEBUG][       Thread-609118][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:30:39,552 [DEBUG][       Thread-609118][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:30:39,552 [DEBUG][       Thread-609118][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:30:39,552 [DEBUG][       Thread-609118][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:30:39,552 [DEBUG][       Thread-609118][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:30:39,552 [DEBUG][       Thread-609118][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:30:39,552 [DEBUG][       Thread-609118][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:30:39,552 [DEBUG][       Thread-609118][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:30:39,552 [DEBUG][       Thread-609118][   transport.py][1871] : client lang: <none>
2025-07-01 15:30:39,552 [DEBUG][       Thread-609118][   transport.py][1871] : server lang: <none>
2025-07-01 15:30:39,552 [DEBUG][       Thread-609118][   transport.py][1871] : kex follows: False
2025-07-01 15:30:39,552 [DEBUG][       Thread-609118][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:30:39,552 [DEBUG][       Thread-609118][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:30:39,552 [DEBUG][       Thread-609118][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:30:39,552 [DEBUG][       Thread-609118][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:30:39,552 [DEBUG][       Thread-609118][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:30:39,552 [DEBUG][       Thread-609118][   transport.py][1871] : Compression: none
2025-07-01 15:30:39,552 [DEBUG][       Thread-609118][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:30:39,565 [DEBUG][       Thread-609118][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:30:39,566 [DEBUG][       Thread-609118][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:30:39,566 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:30:39,567 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:30:39,567 [DEBUG][       Thread-609118][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:30:39,568 [DEBUG][       Thread-609118][   transport.py][1871] : userauth is OK
2025-07-01 15:30:39,592 [ INFO][       Thread-609118][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:30:39,593 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:30:40,309 [DEBUG][       Thread-609118][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:30:40,310 [DEBUG][       Thread-609118][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:30:40,353 [DEBUG][       Thread-609118][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:30:40,353 [DEBUG][       Thread-609118][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:30:40,356 [DEBUG][       Thread-609118][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:30:40,369 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:30:40,370 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:30:40,374 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:30:40,376 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:30:40,381 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:30:40,383 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:30:40,383 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:30:40,384 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:30:40,384 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.562440 -999.00  +13.80  29.31     51   +3.90 1 1 1 1 1   887    0 9.61 -7.11 ----- 37.0 29.3 10.9 40.8 16.0 -24.0 15.4 -24.7 15.7 -23.1 16.2 -22.5
2025-07-01 15:30:40,384 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:30:40,384 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:30:40,384 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.562440
2025-07-01 15:30:40,385 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:30:40,385 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:30:40,385 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:30:40,385 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:30:40,385 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:30:40,386 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:30:20', tmtdew=11.6, humidity=45.43, cloud=0.0, wind=44.6, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:29:54.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:30:40,386 [DEBUG][       Thread-609118][   transport.py][1871] : EOF in transport thread
2025-07-01 15:30:40,469 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:30:40,478 [DEBUG][       Thread-609121][   transport.py][1871] : starting thread (client mode): 0x81db670
2025-07-01 15:30:40,479 [DEBUG][       Thread-609121][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:30:40,493 [DEBUG][       Thread-609121][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:30:40,493 [ INFO][       Thread-609121][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:30:40,501 [DEBUG][       Thread-609121][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:30:40,501 [DEBUG][       Thread-609121][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:30:40,501 [DEBUG][       Thread-609121][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:30:40,501 [DEBUG][       Thread-609121][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:30:40,501 [DEBUG][       Thread-609121][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:30:40,501 [DEBUG][       Thread-609121][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:30:40,501 [DEBUG][       Thread-609121][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:30:40,502 [DEBUG][       Thread-609121][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:30:40,502 [DEBUG][       Thread-609121][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:30:40,502 [DEBUG][       Thread-609121][   transport.py][1871] : client lang: <none>
2025-07-01 15:30:40,502 [DEBUG][       Thread-609121][   transport.py][1871] : server lang: <none>
2025-07-01 15:30:40,502 [DEBUG][       Thread-609121][   transport.py][1871] : kex follows: False
2025-07-01 15:30:40,502 [DEBUG][       Thread-609121][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:30:40,502 [DEBUG][       Thread-609121][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:30:40,502 [DEBUG][       Thread-609121][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:30:40,502 [DEBUG][       Thread-609121][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:30:40,502 [DEBUG][       Thread-609121][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:30:40,502 [DEBUG][       Thread-609121][   transport.py][1871] : Compression: none
2025-07-01 15:30:40,502 [DEBUG][       Thread-609121][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:30:40,560 [DEBUG][       Thread-609121][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:30:40,561 [DEBUG][       Thread-609121][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:30:40,561 [DEBUG][       Thread-609121][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:30:40,562 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:30:40,562 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:30:40,617 [DEBUG][       Thread-609121][   transport.py][1871] : userauth is OK
2025-07-01 15:30:40,617 [DEBUG][       Thread-609121][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:30:40,617 [DEBUG][       Thread-609121][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:30:40,617 [DEBUG][       Thread-609121][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:30:40,617 [DEBUG][       Thread-609121][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:30:40,636 [ INFO][       Thread-609121][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:30:40,637 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:30:40,637 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:30:41,708 [DEBUG][       Thread-609121][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:30:41,708 [DEBUG][       Thread-609121][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:30:41,755 [DEBUG][       Thread-609121][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:30:41,755 [DEBUG][       Thread-609121][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:30:41,764 [DEBUG][       Thread-609121][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:30:41,774 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:30:41,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-07-01 15:30: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-07-01 15:30:41,793 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:30:41,793 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:30:41,793 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:30:41,801 [DEBUG][       Thread-609121][   transport.py][1871] : EOF in transport thread
2025-07-01 15:30:44,625 [DEBUG][Thread-609123 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:30:51,804 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:30:51,804 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:30:51,804 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:30:51,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-07-01 15:30:52,329 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 30, 20), 11.6, 45.43, 0.0, 44.6, 14.12, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:30:52,329 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:30:20
2025-07-01 15:30:52,418 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:30:52,424 [DEBUG][       Thread-609124][   transport.py][1871] : starting thread (client mode): 0x81d8850
2025-07-01 15:30:52,424 [DEBUG][       Thread-609124][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:30:52,444 [DEBUG][       Thread-609124][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:30:52,444 [ INFO][       Thread-609124][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:30:52,447 [DEBUG][       Thread-609124][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:30:52,447 [DEBUG][       Thread-609124][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:30:52,447 [DEBUG][       Thread-609124][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:30:52,447 [DEBUG][       Thread-609124][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:30:52,447 [DEBUG][       Thread-609124][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:30:52,447 [DEBUG][       Thread-609124][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:30:52,447 [DEBUG][       Thread-609124][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:30:52,447 [DEBUG][       Thread-609124][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:30:52,447 [DEBUG][       Thread-609124][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:30:52,447 [DEBUG][       Thread-609124][   transport.py][1871] : client lang: <none>
2025-07-01 15:30:52,447 [DEBUG][       Thread-609124][   transport.py][1871] : server lang: <none>
2025-07-01 15:30:52,447 [DEBUG][       Thread-609124][   transport.py][1871] : kex follows: False
2025-07-01 15:30:52,447 [DEBUG][       Thread-609124][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:30:52,447 [DEBUG][       Thread-609124][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:30:52,447 [DEBUG][       Thread-609124][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:30:52,447 [DEBUG][       Thread-609124][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:30:52,447 [DEBUG][       Thread-609124][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:30:52,447 [DEBUG][       Thread-609124][   transport.py][1871] : Compression: none
2025-07-01 15:30:52,447 [DEBUG][       Thread-609124][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:30:52,461 [DEBUG][       Thread-609124][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:30:52,461 [DEBUG][       Thread-609124][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:30:52,461 [DEBUG][       Thread-609124][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:30:52,461 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:30:52,462 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:30:52,462 [DEBUG][       Thread-609124][   transport.py][1871] : userauth is OK
2025-07-01 15:30:52,486 [ INFO][       Thread-609124][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:30:52,487 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:30:53,096 [DEBUG][       Thread-609124][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:30:53,096 [DEBUG][       Thread-609124][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:30:53,136 [DEBUG][       Thread-609124][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:30:53,136 [DEBUG][       Thread-609124][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:30:53,138 [DEBUG][       Thread-609124][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:30:53,150 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:30:53,150 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:30:53,151 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:30:53,152 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:30:53,155 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:30:53,156 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:30:53,156 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:30:53,156 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:30:53,156 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.562787 -999.00  +13.80  41.31     50   +3.80 1 1 2 1 1   887    0 9.95 -7.15 ----- 44.7 41.3 22.8 51.7 15.9 -24.4 15.3 -24.8 15.6 -23.6 16.2 -23.1
2025-07-01 15:30:53,156 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:30:53,156 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:30:53,156 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.562787
2025-07-01 15:30:53,156 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:30:53,156 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:30:53,156 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:30:53,156 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:30:53,156 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:30:53,156 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:30:20', tmtdew=11.6, humidity=45.43, cloud=0.0, wind=44.6, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:30:24.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:30:53,157 [DEBUG][       Thread-609124][   transport.py][1871] : EOF in transport thread
2025-07-01 15:30:53,231 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:30:53,242 [DEBUG][       Thread-609127][   transport.py][1871] : starting thread (client mode): 0x75ab160
2025-07-01 15:30:53,242 [DEBUG][       Thread-609127][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:30:53,257 [DEBUG][       Thread-609127][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:30:53,257 [ INFO][       Thread-609127][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:30:53,264 [DEBUG][       Thread-609127][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:30:53,264 [DEBUG][       Thread-609127][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:30:53,264 [DEBUG][       Thread-609127][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:30:53,264 [DEBUG][       Thread-609127][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:30:53,264 [DEBUG][       Thread-609127][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:30:53,264 [DEBUG][       Thread-609127][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:30:53,264 [DEBUG][       Thread-609127][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:30:53,264 [DEBUG][       Thread-609127][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:30:53,264 [DEBUG][       Thread-609127][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:30:53,264 [DEBUG][       Thread-609127][   transport.py][1871] : client lang: <none>
2025-07-01 15:30:53,264 [DEBUG][       Thread-609127][   transport.py][1871] : server lang: <none>
2025-07-01 15:30:53,264 [DEBUG][       Thread-609127][   transport.py][1871] : kex follows: False
2025-07-01 15:30:53,264 [DEBUG][       Thread-609127][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:30:53,264 [DEBUG][       Thread-609127][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:30:53,264 [DEBUG][       Thread-609127][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:30:53,264 [DEBUG][       Thread-609127][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:30:53,264 [DEBUG][       Thread-609127][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:30:53,264 [DEBUG][       Thread-609127][   transport.py][1871] : Compression: none
2025-07-01 15:30:53,264 [DEBUG][       Thread-609127][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:30:53,323 [DEBUG][       Thread-609127][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:30:53,323 [DEBUG][       Thread-609127][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:30:53,323 [DEBUG][       Thread-609127][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:30:53,323 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:30:53,323 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:30:53,380 [DEBUG][       Thread-609127][   transport.py][1871] : userauth is OK
2025-07-01 15:30:53,380 [DEBUG][       Thread-609127][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:30:53,380 [DEBUG][       Thread-609127][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:30:53,380 [DEBUG][       Thread-609127][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:30:53,380 [DEBUG][       Thread-609127][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:30:53,394 [ INFO][       Thread-609127][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:30:53,394 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:30:53,394 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:30:53,643 [DEBUG][Thread-609129 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:30:54,405 [DEBUG][       Thread-609127][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:30:54,405 [DEBUG][       Thread-609127][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:30:54,456 [DEBUG][       Thread-609127][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:30:54,456 [DEBUG][       Thread-609127][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:30:54,465 [DEBUG][       Thread-609127][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:30:54,474 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:30:54,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-07-01 15:30:54,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-07-01 15:30:54,493 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:30:54,494 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:30:54,494 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:30:54,504 [DEBUG][       Thread-609127][   transport.py][1871] : EOF in transport thread
2025-07-01 15:31:02,664 [DEBUG][Thread-609130 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:31:04,504 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:31:04,505 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:31:04,505 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:31:04,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-07-01 15:31:05,015 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 30, 52), 11.57, 45.51, 0.0, 41.09, 14.08, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:31:05,015 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:30:52
2025-07-01 15:31:05,101 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:31:05,105 [DEBUG][       Thread-609131][   transport.py][1871] : starting thread (client mode): 0x81d9b70
2025-07-01 15:31:05,105 [DEBUG][       Thread-609131][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:31:05,125 [DEBUG][       Thread-609131][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:31:05,125 [ INFO][       Thread-609131][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:31:05,128 [DEBUG][       Thread-609131][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:31:05,128 [DEBUG][       Thread-609131][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:31:05,128 [DEBUG][       Thread-609131][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:31:05,128 [DEBUG][       Thread-609131][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:31:05,128 [DEBUG][       Thread-609131][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:31:05,128 [DEBUG][       Thread-609131][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:31:05,128 [DEBUG][       Thread-609131][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:31:05,128 [DEBUG][       Thread-609131][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:31:05,128 [DEBUG][       Thread-609131][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:31:05,128 [DEBUG][       Thread-609131][   transport.py][1871] : client lang: <none>
2025-07-01 15:31:05,128 [DEBUG][       Thread-609131][   transport.py][1871] : server lang: <none>
2025-07-01 15:31:05,128 [DEBUG][       Thread-609131][   transport.py][1871] : kex follows: False
2025-07-01 15:31:05,128 [DEBUG][       Thread-609131][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:31:05,129 [DEBUG][       Thread-609131][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:31:05,129 [DEBUG][       Thread-609131][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:31:05,129 [DEBUG][       Thread-609131][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:31:05,129 [DEBUG][       Thread-609131][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:31:05,129 [DEBUG][       Thread-609131][   transport.py][1871] : Compression: none
2025-07-01 15:31:05,129 [DEBUG][       Thread-609131][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:31:05,148 [DEBUG][       Thread-609131][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:31:05,149 [DEBUG][       Thread-609131][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:31:05,149 [DEBUG][       Thread-609131][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:31:05,149 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:31:05,150 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:31:05,151 [DEBUG][       Thread-609131][   transport.py][1871] : userauth is OK
2025-07-01 15:31:05,175 [ INFO][       Thread-609131][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:31:05,176 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:31:05,956 [DEBUG][       Thread-609131][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:31:05,957 [DEBUG][       Thread-609131][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:31:06,001 [DEBUG][       Thread-609131][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:31:06,001 [DEBUG][       Thread-609131][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:31:06,004 [DEBUG][       Thread-609131][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:31:06,014 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:31:06,014 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:31:06,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:31:06,018 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:31:06,021 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:31:06,022 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:31:06,023 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:31:06,023 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:31:06,024 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.562787 -999.00  +13.80  41.31     50   +3.80 1 1 2 1 1   887    0 9.95 -7.15 ----- 44.7 41.3 22.8 51.7 15.9 -24.4 15.3 -24.8 15.6 -23.6 16.2 -23.1
2025-07-01 15:31:06,024 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:31:06,024 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:31:06,024 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.562787
2025-07-01 15:31:06,024 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:31:06,025 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:31:06,025 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:31:06,025 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:31:06,025 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:31:06,025 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:30:52', tmtdew=11.57, humidity=45.51, cloud=0.0, wind=41.09, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:30:24.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:31:06,026 [DEBUG][       Thread-609131][   transport.py][1871] : EOF in transport thread
2025-07-01 15:31:06,110 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:31:06,120 [DEBUG][       Thread-609134][   transport.py][1871] : starting thread (client mode): 0x81c9570
2025-07-01 15:31:06,120 [DEBUG][       Thread-609134][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:31:06,134 [DEBUG][       Thread-609134][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:31:06,135 [ INFO][       Thread-609134][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:31:06,142 [DEBUG][       Thread-609134][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:31:06,142 [DEBUG][       Thread-609134][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:31:06,142 [DEBUG][       Thread-609134][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:31:06,143 [DEBUG][       Thread-609134][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:31:06,143 [DEBUG][       Thread-609134][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:31:06,143 [DEBUG][       Thread-609134][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:31:06,143 [DEBUG][       Thread-609134][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:31:06,143 [DEBUG][       Thread-609134][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:31:06,143 [DEBUG][       Thread-609134][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:31:06,143 [DEBUG][       Thread-609134][   transport.py][1871] : client lang: <none>
2025-07-01 15:31:06,143 [DEBUG][       Thread-609134][   transport.py][1871] : server lang: <none>
2025-07-01 15:31:06,143 [DEBUG][       Thread-609134][   transport.py][1871] : kex follows: False
2025-07-01 15:31:06,143 [DEBUG][       Thread-609134][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:31:06,143 [DEBUG][       Thread-609134][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:31:06,143 [DEBUG][       Thread-609134][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:31:06,143 [DEBUG][       Thread-609134][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:31:06,143 [DEBUG][       Thread-609134][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:31:06,143 [DEBUG][       Thread-609134][   transport.py][1871] : Compression: none
2025-07-01 15:31:06,143 [DEBUG][       Thread-609134][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:31:06,203 [DEBUG][       Thread-609134][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:31:06,203 [DEBUG][       Thread-609134][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:31:06,204 [DEBUG][       Thread-609134][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:31:06,204 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:31:06,205 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:31:06,263 [DEBUG][       Thread-609134][   transport.py][1871] : userauth is OK
2025-07-01 15:31:06,264 [DEBUG][       Thread-609134][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:31:06,264 [DEBUG][       Thread-609134][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:31:06,264 [DEBUG][       Thread-609134][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:31:06,264 [DEBUG][       Thread-609134][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:31:06,282 [ INFO][       Thread-609134][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:31:06,283 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:31:06,283 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:31:07,324 [DEBUG][       Thread-609134][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:31:07,324 [DEBUG][       Thread-609134][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:31:07,375 [DEBUG][       Thread-609134][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:31:07,376 [DEBUG][       Thread-609134][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:31:07,385 [DEBUG][       Thread-609134][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:31:07,395 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:31: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-07-01 15:31:07,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-07-01 15:31:07,413 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:31:07,413 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:31:07,414 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:31:07,422 [DEBUG][       Thread-609134][   transport.py][1871] : EOF in transport thread
2025-07-01 15:31:11,685 [DEBUG][Thread-609136 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:31:17,424 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:31:17,424 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:31:17,424 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:31:17,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-07-01 15:31:17,929 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 30, 52), 11.57, 45.51, 0.0, 41.09, 14.08, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:31:17,929 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:30:52
2025-07-01 15:31:18,016 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:31:18,021 [DEBUG][       Thread-609137][   transport.py][1871] : starting thread (client mode): 0x81dbdf0
2025-07-01 15:31:18,021 [DEBUG][       Thread-609137][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:31:18,035 [DEBUG][       Thread-609137][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:31:18,035 [ INFO][       Thread-609137][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:31:18,037 [DEBUG][       Thread-609137][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:31:18,037 [DEBUG][       Thread-609137][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:31:18,037 [DEBUG][       Thread-609137][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:31:18,037 [DEBUG][       Thread-609137][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:31:18,037 [DEBUG][       Thread-609137][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:31:18,037 [DEBUG][       Thread-609137][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:31:18,037 [DEBUG][       Thread-609137][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:31:18,037 [DEBUG][       Thread-609137][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:31:18,037 [DEBUG][       Thread-609137][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:31:18,037 [DEBUG][       Thread-609137][   transport.py][1871] : client lang: <none>
2025-07-01 15:31:18,037 [DEBUG][       Thread-609137][   transport.py][1871] : server lang: <none>
2025-07-01 15:31:18,037 [DEBUG][       Thread-609137][   transport.py][1871] : kex follows: False
2025-07-01 15:31:18,038 [DEBUG][       Thread-609137][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:31:18,038 [DEBUG][       Thread-609137][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:31:18,038 [DEBUG][       Thread-609137][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:31:18,038 [DEBUG][       Thread-609137][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:31:18,038 [DEBUG][       Thread-609137][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:31:18,038 [DEBUG][       Thread-609137][   transport.py][1871] : Compression: none
2025-07-01 15:31:18,038 [DEBUG][       Thread-609137][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:31:18,055 [DEBUG][       Thread-609137][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:31:18,056 [DEBUG][       Thread-609137][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:31:18,056 [DEBUG][       Thread-609137][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:31:18,056 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:31:18,057 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:31:18,058 [DEBUG][       Thread-609137][   transport.py][1871] : userauth is OK
2025-07-01 15:31:18,082 [ INFO][       Thread-609137][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:31:18,083 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:31:18,866 [DEBUG][       Thread-609137][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:31:18,866 [DEBUG][       Thread-609137][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:31:18,909 [DEBUG][       Thread-609137][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:31:18,909 [DEBUG][       Thread-609137][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:31:18,913 [DEBUG][       Thread-609137][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:31:18,926 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:31:18,927 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:31:18,929 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:31:18,931 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:31:18,937 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:31:18,939 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:31:18,939 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:31:18,940 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:31:18,940 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.562787 -999.00  +13.80  41.31     50   +3.80 1 1 2 1 1   887    0 9.95 -7.15 ----- 44.7 41.3 22.8 51.7 15.9 -24.4 15.3 -24.8 15.6 -23.6 16.2 -23.1
2025-07-01 15:31:18,941 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:31:18,941 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:31:18,941 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.562787
2025-07-01 15:31:18,941 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:31:18,942 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:31:18,942 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:31:18,942 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:31:18,942 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:31:18,942 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:30:52', tmtdew=11.57, humidity=45.51, cloud=0.0, wind=41.09, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:30:24.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:31:18,943 [DEBUG][       Thread-609137][   transport.py][1871] : EOF in transport thread
2025-07-01 15:31:19,027 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:31:19,039 [DEBUG][       Thread-609140][   transport.py][1871] : starting thread (client mode): 0x75a82e0
2025-07-01 15:31:19,039 [DEBUG][       Thread-609140][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:31:19,054 [DEBUG][       Thread-609140][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:31:19,055 [ INFO][       Thread-609140][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:31:19,062 [DEBUG][       Thread-609140][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:31:19,062 [DEBUG][       Thread-609140][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:31:19,062 [DEBUG][       Thread-609140][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:31:19,062 [DEBUG][       Thread-609140][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:31:19,062 [DEBUG][       Thread-609140][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:31:19,062 [DEBUG][       Thread-609140][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:31:19,062 [DEBUG][       Thread-609140][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:31:19,062 [DEBUG][       Thread-609140][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:31:19,062 [DEBUG][       Thread-609140][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:31:19,063 [DEBUG][       Thread-609140][   transport.py][1871] : client lang: <none>
2025-07-01 15:31:19,063 [DEBUG][       Thread-609140][   transport.py][1871] : server lang: <none>
2025-07-01 15:31:19,063 [DEBUG][       Thread-609140][   transport.py][1871] : kex follows: False
2025-07-01 15:31:19,063 [DEBUG][       Thread-609140][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:31:19,063 [DEBUG][       Thread-609140][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:31:19,063 [DEBUG][       Thread-609140][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:31:19,063 [DEBUG][       Thread-609140][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:31:19,063 [DEBUG][       Thread-609140][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:31:19,063 [DEBUG][       Thread-609140][   transport.py][1871] : Compression: none
2025-07-01 15:31:19,063 [DEBUG][       Thread-609140][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:31:19,121 [DEBUG][       Thread-609140][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:31:19,121 [DEBUG][       Thread-609140][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:31:19,122 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:31:19,123 [DEBUG][       Thread-609140][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:31:19,123 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:31:19,177 [DEBUG][       Thread-609140][   transport.py][1871] : userauth is OK
2025-07-01 15:31:19,177 [DEBUG][       Thread-609140][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:31:19,177 [DEBUG][       Thread-609140][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:31:19,177 [DEBUG][       Thread-609140][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:31:19,177 [DEBUG][       Thread-609140][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:31:19,196 [ INFO][       Thread-609140][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:31:19,196 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:31:19,197 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:31:20,214 [DEBUG][       Thread-609140][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:31:20,214 [DEBUG][       Thread-609140][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:31:20,264 [DEBUG][       Thread-609140][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:31:20,264 [DEBUG][       Thread-609140][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:31:20,273 [DEBUG][       Thread-609140][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:31:20,283 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:31:20,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-07-01 15:31:20,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-07-01 15:31:20,304 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:31:20,305 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:31:20,305 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:31:20,313 [DEBUG][       Thread-609140][   transport.py][1871] : EOF in transport thread
2025-07-01 15:31:20,723 [DEBUG][Thread-609142 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:31:29,746 [DEBUG][Thread-609143 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:31:30,313 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:31:30,314 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:31:30,314 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:31:30,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-07-01 15:31:30,826 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 31, 23), 11.49, 45.96, 0.0, 43.83, 14.05, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:31:30,826 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:31:23
2025-07-01 15:31:30,913 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:31:30,919 [DEBUG][       Thread-609144][   transport.py][1871] : starting thread (client mode): 0x81dace0
2025-07-01 15:31:30,919 [DEBUG][       Thread-609144][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:31:30,940 [DEBUG][       Thread-609144][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:31:30,940 [ INFO][       Thread-609144][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:31:30,943 [DEBUG][       Thread-609144][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:31:30,943 [DEBUG][       Thread-609144][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:31:30,943 [DEBUG][       Thread-609144][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:31:30,943 [DEBUG][       Thread-609144][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:31:30,943 [DEBUG][       Thread-609144][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:31:30,943 [DEBUG][       Thread-609144][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:31:30,943 [DEBUG][       Thread-609144][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:31:30,943 [DEBUG][       Thread-609144][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:31:30,943 [DEBUG][       Thread-609144][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:31:30,943 [DEBUG][       Thread-609144][   transport.py][1871] : client lang: <none>
2025-07-01 15:31:30,943 [DEBUG][       Thread-609144][   transport.py][1871] : server lang: <none>
2025-07-01 15:31:30,944 [DEBUG][       Thread-609144][   transport.py][1871] : kex follows: False
2025-07-01 15:31:30,944 [DEBUG][       Thread-609144][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:31:30,944 [DEBUG][       Thread-609144][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:31:30,944 [DEBUG][       Thread-609144][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:31:30,944 [DEBUG][       Thread-609144][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:31:30,944 [DEBUG][       Thread-609144][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:31:30,944 [DEBUG][       Thread-609144][   transport.py][1871] : Compression: none
2025-07-01 15:31:30,944 [DEBUG][       Thread-609144][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:31:30,961 [DEBUG][       Thread-609144][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:31:30,961 [DEBUG][       Thread-609144][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:31:30,962 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:31:30,962 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:31:30,962 [DEBUG][       Thread-609144][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:31:30,963 [DEBUG][       Thread-609144][   transport.py][1871] : userauth is OK
2025-07-01 15:31:30,987 [ INFO][       Thread-609144][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:31:30,988 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:31:31,639 [DEBUG][       Thread-609144][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:31:31,639 [DEBUG][       Thread-609144][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:31:31,681 [DEBUG][       Thread-609144][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:31:31,681 [DEBUG][       Thread-609144][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:31:31,683 [DEBUG][       Thread-609144][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:31:31,694 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:31:31,695 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:31:31,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:31:31,698 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:31:31,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:31:31,704 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:31:31,704 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:31:31,705 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:31:31,705 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.563134 -999.00  +13.70  26.56     51   +3.80 1 1 1 1 1   887    0 9.75 -7.55 ----- 36.1 26.6 30.0 55.5 15.9 -23.9 15.3 -24.7 15.6 -24.6 16.1 -22.8
2025-07-01 15:31:31,705 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:31:31,705 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:31:31,705 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.563134
2025-07-01 15:31:31,706 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:31:31,706 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:31:31,706 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:31:31,706 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:31:31,706 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:31:31,707 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:31:23', tmtdew=11.49, humidity=45.96, cloud=0.0, wind=43.83, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:30:54.778', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:31:31,707 [DEBUG][       Thread-609144][   transport.py][1871] : EOF in transport thread
2025-07-01 15:31:31,790 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:31:31,801 [DEBUG][       Thread-609147][   transport.py][1871] : starting thread (client mode): 0x81545b0
2025-07-01 15:31:31,801 [DEBUG][       Thread-609147][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:31:31,817 [DEBUG][       Thread-609147][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:31:31,817 [ INFO][       Thread-609147][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:31:31,824 [DEBUG][       Thread-609147][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:31:31,825 [DEBUG][       Thread-609147][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:31:31,825 [DEBUG][       Thread-609147][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:31:31,825 [DEBUG][       Thread-609147][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:31:31,825 [DEBUG][       Thread-609147][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:31:31,825 [DEBUG][       Thread-609147][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:31:31,825 [DEBUG][       Thread-609147][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:31:31,825 [DEBUG][       Thread-609147][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:31:31,825 [DEBUG][       Thread-609147][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:31:31,825 [DEBUG][       Thread-609147][   transport.py][1871] : client lang: <none>
2025-07-01 15:31:31,825 [DEBUG][       Thread-609147][   transport.py][1871] : server lang: <none>
2025-07-01 15:31:31,825 [DEBUG][       Thread-609147][   transport.py][1871] : kex follows: False
2025-07-01 15:31:31,825 [DEBUG][       Thread-609147][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:31:31,825 [DEBUG][       Thread-609147][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:31:31,825 [DEBUG][       Thread-609147][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:31:31,825 [DEBUG][       Thread-609147][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:31:31,825 [DEBUG][       Thread-609147][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:31:31,825 [DEBUG][       Thread-609147][   transport.py][1871] : Compression: none
2025-07-01 15:31:31,825 [DEBUG][       Thread-609147][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:31:31,885 [DEBUG][       Thread-609147][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:31:31,886 [DEBUG][       Thread-609147][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:31:31,886 [DEBUG][       Thread-609147][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:31:31,887 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:31:31,887 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:31:31,941 [DEBUG][       Thread-609147][   transport.py][1871] : userauth is OK
2025-07-01 15:31:31,941 [DEBUG][       Thread-609147][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:31:31,941 [DEBUG][       Thread-609147][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:31:31,941 [DEBUG][       Thread-609147][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:31:31,941 [DEBUG][       Thread-609147][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:31:31,961 [ INFO][       Thread-609147][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:31:31,961 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:31:31,962 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:31:33,032 [DEBUG][       Thread-609147][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:31:33,032 [DEBUG][       Thread-609147][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:31:33,080 [DEBUG][       Thread-609147][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:31:33,080 [DEBUG][       Thread-609147][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:31:33,089 [DEBUG][       Thread-609147][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:31:33,098 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:31:33,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-07-01 15:31:33,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-07-01 15:31:33,115 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:31:33,116 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:31:33,116 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:31:33,124 [DEBUG][       Thread-609147][   transport.py][1871] : EOF in transport thread
2025-07-01 15:31:36,932 [DEBUG][Thread-609149 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:31:38,767 [DEBUG][Thread-609150 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:31:43,119 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:31:43,119 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:31:43,119 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:31:43,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-07-01 15:31:43,614 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 31, 23), 11.49, 45.96, 0.0, 43.83, 14.05, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:31:43,614 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:31:23
2025-07-01 15:31:43,700 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:31:43,704 [DEBUG][       Thread-609151][   transport.py][1871] : starting thread (client mode): 0x81cbc40
2025-07-01 15:31:43,705 [DEBUG][       Thread-609151][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:31:43,729 [DEBUG][       Thread-609151][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:31:43,729 [ INFO][       Thread-609151][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:31:43,732 [DEBUG][       Thread-609151][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:31:43,732 [DEBUG][       Thread-609151][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:31:43,732 [DEBUG][       Thread-609151][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:31:43,733 [DEBUG][       Thread-609151][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:31:43,733 [DEBUG][       Thread-609151][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:31:43,733 [DEBUG][       Thread-609151][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:31:43,733 [DEBUG][       Thread-609151][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:31:43,733 [DEBUG][       Thread-609151][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:31:43,733 [DEBUG][       Thread-609151][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:31:43,733 [DEBUG][       Thread-609151][   transport.py][1871] : client lang: <none>
2025-07-01 15:31:43,733 [DEBUG][       Thread-609151][   transport.py][1871] : server lang: <none>
2025-07-01 15:31:43,733 [DEBUG][       Thread-609151][   transport.py][1871] : kex follows: False
2025-07-01 15:31:43,733 [DEBUG][       Thread-609151][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:31:43,733 [DEBUG][       Thread-609151][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:31:43,733 [DEBUG][       Thread-609151][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:31:43,733 [DEBUG][       Thread-609151][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:31:43,733 [DEBUG][       Thread-609151][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:31:43,733 [DEBUG][       Thread-609151][   transport.py][1871] : Compression: none
2025-07-01 15:31:43,733 [DEBUG][       Thread-609151][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:31:43,751 [DEBUG][       Thread-609151][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:31:43,752 [DEBUG][       Thread-609151][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:31:43,752 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:31:43,752 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:31:43,753 [DEBUG][       Thread-609151][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:31:43,754 [DEBUG][       Thread-609151][   transport.py][1871] : userauth is OK
2025-07-01 15:31:43,778 [ INFO][       Thread-609151][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:31:43,778 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:31:44,628 [DEBUG][       Thread-609151][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:31:44,628 [DEBUG][       Thread-609151][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:31:44,669 [DEBUG][       Thread-609151][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:31:44,669 [DEBUG][       Thread-609151][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:31:44,672 [DEBUG][       Thread-609151][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:31:44,679 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:31:44,679 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:31:44,681 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:31:44,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:31:44,689 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:31:44,691 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:31:44,691 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:31:44,692 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:31:44,692 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.563134 -999.00  +13.70  26.56     51   +3.80 1 1 1 1 1   887    0 9.75 -7.55 ----- 36.1 26.6 30.0 55.5 15.9 -23.9 15.3 -24.7 15.6 -24.6 16.1 -22.8
2025-07-01 15:31:44,692 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:31:44,692 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:31:44,692 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.563134
2025-07-01 15:31:44,692 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:31:44,693 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:31:44,693 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:31:44,693 [DEBUG][       Thread-609151][   transport.py][1871] : EOF in transport thread
2025-07-01 15:31:44,693 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:31:44,694 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:31:44,694 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:31:23', tmtdew=11.49, humidity=45.96, cloud=0.0, wind=43.83, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:30:54.778', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:31:44,777 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:31:44,786 [DEBUG][       Thread-609154][   transport.py][1871] : starting thread (client mode): 0x81d90f0
2025-07-01 15:31:44,786 [DEBUG][       Thread-609154][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:31:44,801 [DEBUG][       Thread-609154][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:31:44,801 [ INFO][       Thread-609154][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:31:44,809 [DEBUG][       Thread-609154][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:31:44,809 [DEBUG][       Thread-609154][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:31:44,809 [DEBUG][       Thread-609154][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:31:44,809 [DEBUG][       Thread-609154][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:31:44,809 [DEBUG][       Thread-609154][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:31:44,809 [DEBUG][       Thread-609154][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:31:44,809 [DEBUG][       Thread-609154][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:31:44,809 [DEBUG][       Thread-609154][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:31:44,809 [DEBUG][       Thread-609154][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:31:44,809 [DEBUG][       Thread-609154][   transport.py][1871] : client lang: <none>
2025-07-01 15:31:44,809 [DEBUG][       Thread-609154][   transport.py][1871] : server lang: <none>
2025-07-01 15:31:44,809 [DEBUG][       Thread-609154][   transport.py][1871] : kex follows: False
2025-07-01 15:31:44,809 [DEBUG][       Thread-609154][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:31:44,809 [DEBUG][       Thread-609154][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:31:44,809 [DEBUG][       Thread-609154][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:31:44,809 [DEBUG][       Thread-609154][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:31:44,809 [DEBUG][       Thread-609154][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:31:44,809 [DEBUG][       Thread-609154][   transport.py][1871] : Compression: none
2025-07-01 15:31:44,809 [DEBUG][       Thread-609154][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:31:44,868 [DEBUG][       Thread-609154][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:31:44,868 [DEBUG][       Thread-609154][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:31:44,869 [DEBUG][       Thread-609154][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:31:44,869 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:31:44,870 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:31:44,924 [DEBUG][       Thread-609154][   transport.py][1871] : userauth is OK
2025-07-01 15:31:44,925 [DEBUG][       Thread-609154][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:31:44,925 [DEBUG][       Thread-609154][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:31:44,925 [DEBUG][       Thread-609154][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:31:44,925 [DEBUG][       Thread-609154][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:31:44,943 [ INFO][       Thread-609154][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:31:44,944 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:31:44,944 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:31:45,947 [DEBUG][       Thread-609154][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:31:45,947 [DEBUG][       Thread-609154][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:31:45,996 [DEBUG][       Thread-609154][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:31:45,996 [DEBUG][       Thread-609154][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:31:46,006 [DEBUG][       Thread-609154][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:31:46,015 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:31:46,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-07-01 15:31:46,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-07-01 15:31:46,033 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:31:46,033 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:31:46,034 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:31:46,042 [DEBUG][       Thread-609154][   transport.py][1871] : EOF in transport thread
2025-07-01 15:31:47,801 [DEBUG][Thread-609156 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:31:56,044 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:31:56,044 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:31:56,044 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:31:56,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-07-01 15:31:56,572 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 31, 23), 11.49, 45.96, 0.0, 43.83, 14.05, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:31:56,572 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:31:23
2025-07-01 15:31:56,678 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:31:56,684 [DEBUG][       Thread-609157][   transport.py][1871] : starting thread (client mode): 0x81d92a0
2025-07-01 15:31:56,684 [DEBUG][       Thread-609157][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:31:56,704 [DEBUG][       Thread-609157][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:31:56,704 [ INFO][       Thread-609157][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:31:56,705 [DEBUG][       Thread-609157][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:31:56,705 [DEBUG][       Thread-609157][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:31:56,705 [DEBUG][       Thread-609157][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:31:56,705 [DEBUG][       Thread-609157][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:31:56,705 [DEBUG][       Thread-609157][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:31:56,705 [DEBUG][       Thread-609157][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:31:56,705 [DEBUG][       Thread-609157][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:31:56,705 [DEBUG][       Thread-609157][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:31:56,705 [DEBUG][       Thread-609157][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:31:56,705 [DEBUG][       Thread-609157][   transport.py][1871] : client lang: <none>
2025-07-01 15:31:56,705 [DEBUG][       Thread-609157][   transport.py][1871] : server lang: <none>
2025-07-01 15:31:56,705 [DEBUG][       Thread-609157][   transport.py][1871] : kex follows: False
2025-07-01 15:31:56,705 [DEBUG][       Thread-609157][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:31:56,705 [DEBUG][       Thread-609157][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:31:56,705 [DEBUG][       Thread-609157][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:31:56,705 [DEBUG][       Thread-609157][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:31:56,705 [DEBUG][       Thread-609157][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:31:56,705 [DEBUG][       Thread-609157][   transport.py][1871] : Compression: none
2025-07-01 15:31:56,705 [DEBUG][       Thread-609157][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:31:56,712 [DEBUG][       Thread-609157][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:31:56,712 [DEBUG][       Thread-609157][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:31:56,712 [DEBUG][       Thread-609157][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:31:56,712 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:31:56,712 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:31:56,713 [DEBUG][       Thread-609157][   transport.py][1871] : userauth is OK
2025-07-01 15:31:56,736 [ INFO][       Thread-609157][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:31:56,737 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:31:56,822 [DEBUG][Thread-609159 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:31:57,403 [DEBUG][       Thread-609157][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:31:57,403 [DEBUG][       Thread-609157][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:31:57,444 [DEBUG][       Thread-609157][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:31:57,444 [DEBUG][       Thread-609157][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:31:57,447 [DEBUG][       Thread-609157][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:31:57,459 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:31:57,459 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:31:57,460 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:31:57,461 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:31:57,463 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:31:57,464 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:31:57,464 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:31:57,464 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:31:57,464 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.563481 -999.00  +13.80  38.33     51   +3.90 1 1 2 1 1   887    0 9.93 -8.10 ----- 28.9 38.3 22.2 42.6 15.9 -24.0 15.3 -24.7 15.6 -23.6 16.2 -24.0
2025-07-01 15:31:57,464 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:31:57,464 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:31:57,464 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.563481
2025-07-01 15:31:57,464 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:31:57,464 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:31:57,464 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:31:57,464 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:31:57,464 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:31:57,464 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:31:23', tmtdew=11.49, humidity=45.96, cloud=0.0, wind=43.83, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:31:24.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:31:57,465 [DEBUG][       Thread-609157][   transport.py][1871] : EOF in transport thread
2025-07-01 15:31:57,537 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:31:57,548 [DEBUG][       Thread-609161][   transport.py][1871] : starting thread (client mode): 0x83938e0
2025-07-01 15:31:57,548 [DEBUG][       Thread-609161][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:31:57,563 [DEBUG][       Thread-609161][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:31:57,563 [ INFO][       Thread-609161][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:31:57,571 [DEBUG][       Thread-609161][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:31:57,571 [DEBUG][       Thread-609161][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:31:57,571 [DEBUG][       Thread-609161][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:31:57,571 [DEBUG][       Thread-609161][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:31:57,571 [DEBUG][       Thread-609161][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:31:57,571 [DEBUG][       Thread-609161][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:31:57,571 [DEBUG][       Thread-609161][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:31:57,571 [DEBUG][       Thread-609161][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:31:57,571 [DEBUG][       Thread-609161][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:31:57,571 [DEBUG][       Thread-609161][   transport.py][1871] : client lang: <none>
2025-07-01 15:31:57,571 [DEBUG][       Thread-609161][   transport.py][1871] : server lang: <none>
2025-07-01 15:31:57,571 [DEBUG][       Thread-609161][   transport.py][1871] : kex follows: False
2025-07-01 15:31:57,571 [DEBUG][       Thread-609161][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:31:57,571 [DEBUG][       Thread-609161][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:31:57,571 [DEBUG][       Thread-609161][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:31:57,571 [DEBUG][       Thread-609161][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:31:57,571 [DEBUG][       Thread-609161][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:31:57,571 [DEBUG][       Thread-609161][   transport.py][1871] : Compression: none
2025-07-01 15:31:57,571 [DEBUG][       Thread-609161][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:31:57,631 [DEBUG][       Thread-609161][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:31:57,632 [DEBUG][       Thread-609161][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:31:57,632 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:31:57,633 [DEBUG][       Thread-609161][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:31:57,634 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:31:57,689 [DEBUG][       Thread-609161][   transport.py][1871] : userauth is OK
2025-07-01 15:31:57,689 [DEBUG][       Thread-609161][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:31:57,689 [DEBUG][       Thread-609161][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:31:57,689 [DEBUG][       Thread-609161][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:31:57,689 [DEBUG][       Thread-609161][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:31:57,710 [ INFO][       Thread-609161][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:31:57,710 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:31:57,711 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:31:58,709 [DEBUG][       Thread-609161][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:31:58,709 [DEBUG][       Thread-609161][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:31:58,760 [DEBUG][       Thread-609161][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:31:58,760 [DEBUG][       Thread-609161][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:31:58,769 [DEBUG][       Thread-609161][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:31:58,778 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:31:58,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-07-01 15:31:58,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-07-01 15:31:58,796 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:31:58,797 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:31:58,797 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:31:58,805 [DEBUG][       Thread-609161][   transport.py][1871] : EOF in transport thread
2025-07-01 15:32:05,839 [DEBUG][Thread-609163 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:32:08,807 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:32:08,808 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:32:08,808 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:32:08,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-07-01 15:32:09,317 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 31, 55), 11.52, 45.89, 0.0, 39.54, 14.06, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:32:09,317 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:31:55
2025-07-01 15:32:09,404 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:32:09,408 [DEBUG][       Thread-609164][   transport.py][1871] : starting thread (client mode): 0x81cad10
2025-07-01 15:32:09,408 [DEBUG][       Thread-609164][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:32:09,430 [DEBUG][       Thread-609164][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:32:09,430 [ INFO][       Thread-609164][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:32:09,433 [DEBUG][       Thread-609164][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:32:09,433 [DEBUG][       Thread-609164][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:32:09,433 [DEBUG][       Thread-609164][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:32:09,433 [DEBUG][       Thread-609164][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:32:09,433 [DEBUG][       Thread-609164][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:32:09,433 [DEBUG][       Thread-609164][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:32:09,433 [DEBUG][       Thread-609164][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:32:09,433 [DEBUG][       Thread-609164][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:32:09,433 [DEBUG][       Thread-609164][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:32:09,433 [DEBUG][       Thread-609164][   transport.py][1871] : client lang: <none>
2025-07-01 15:32:09,433 [DEBUG][       Thread-609164][   transport.py][1871] : server lang: <none>
2025-07-01 15:32:09,433 [DEBUG][       Thread-609164][   transport.py][1871] : kex follows: False
2025-07-01 15:32:09,433 [DEBUG][       Thread-609164][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:32:09,434 [DEBUG][       Thread-609164][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:32:09,434 [DEBUG][       Thread-609164][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:32:09,434 [DEBUG][       Thread-609164][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:32:09,434 [DEBUG][       Thread-609164][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:32:09,434 [DEBUG][       Thread-609164][   transport.py][1871] : Compression: none
2025-07-01 15:32:09,434 [DEBUG][       Thread-609164][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:32:09,451 [DEBUG][       Thread-609164][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:32:09,451 [DEBUG][       Thread-609164][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:32:09,452 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:32:09,452 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:32:09,452 [DEBUG][       Thread-609164][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:32:09,453 [DEBUG][       Thread-609164][   transport.py][1871] : userauth is OK
2025-07-01 15:32:09,477 [ INFO][       Thread-609164][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:32:09,478 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:32:10,288 [DEBUG][       Thread-609164][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:32:10,289 [DEBUG][       Thread-609164][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:32:10,332 [DEBUG][       Thread-609164][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:32:10,332 [DEBUG][       Thread-609164][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:32:10,335 [DEBUG][       Thread-609164][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:32:10,348 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:32:10,348 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:32:10,350 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:32:10,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:32:10,354 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:32:10,356 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:32:10,356 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:32:10,356 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:32:10,356 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.563481 -999.00  +13.80  38.33     51   +3.90 1 1 2 1 1   887    0 9.93 -8.10 ----- 28.9 38.3 22.2 42.6 15.9 -24.0 15.3 -24.7 15.6 -23.6 16.2 -24.0
2025-07-01 15:32:10,356 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:32:10,356 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:32:10,357 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.563481
2025-07-01 15:32:10,357 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:32:10,357 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:32:10,357 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:32:10,357 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:32:10,357 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:32:10,357 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:31:55', tmtdew=11.52, humidity=45.89, cloud=0.0, wind=39.54, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:31:24.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:32:10,358 [DEBUG][       Thread-609164][   transport.py][1871] : EOF in transport thread
2025-07-01 15:32:10,441 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:32:10,451 [DEBUG][       Thread-609167][   transport.py][1871] : starting thread (client mode): 0x81d87f0
2025-07-01 15:32:10,451 [DEBUG][       Thread-609167][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:32:10,466 [DEBUG][       Thread-609167][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:32:10,467 [ INFO][       Thread-609167][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:32:10,474 [DEBUG][       Thread-609167][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:32:10,474 [DEBUG][       Thread-609167][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:32:10,474 [DEBUG][       Thread-609167][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:32:10,474 [DEBUG][       Thread-609167][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:32:10,474 [DEBUG][       Thread-609167][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:32:10,474 [DEBUG][       Thread-609167][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:32:10,475 [DEBUG][       Thread-609167][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:32:10,475 [DEBUG][       Thread-609167][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:32:10,475 [DEBUG][       Thread-609167][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:32:10,475 [DEBUG][       Thread-609167][   transport.py][1871] : client lang: <none>
2025-07-01 15:32:10,475 [DEBUG][       Thread-609167][   transport.py][1871] : server lang: <none>
2025-07-01 15:32:10,475 [DEBUG][       Thread-609167][   transport.py][1871] : kex follows: False
2025-07-01 15:32:10,475 [DEBUG][       Thread-609167][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:32:10,475 [DEBUG][       Thread-609167][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:32:10,475 [DEBUG][       Thread-609167][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:32:10,475 [DEBUG][       Thread-609167][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:32:10,475 [DEBUG][       Thread-609167][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:32:10,475 [DEBUG][       Thread-609167][   transport.py][1871] : Compression: none
2025-07-01 15:32:10,475 [DEBUG][       Thread-609167][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:32:10,532 [DEBUG][       Thread-609167][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:32:10,533 [DEBUG][       Thread-609167][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:32:10,533 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:32:10,534 [DEBUG][       Thread-609167][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:32:10,535 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:32:10,589 [DEBUG][       Thread-609167][   transport.py][1871] : userauth is OK
2025-07-01 15:32:10,589 [DEBUG][       Thread-609167][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:32:10,589 [DEBUG][       Thread-609167][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:32:10,589 [DEBUG][       Thread-609167][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:32:10,589 [DEBUG][       Thread-609167][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:32:10,606 [ INFO][       Thread-609167][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:32:10,606 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:32:10,606 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:32:11,635 [DEBUG][       Thread-609167][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:32:11,635 [DEBUG][       Thread-609167][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:32:11,684 [DEBUG][       Thread-609167][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:32:11,684 [DEBUG][       Thread-609167][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:32:11,693 [DEBUG][       Thread-609167][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:32:11,702 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:32:11,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-07-01 15:32:11,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-07-01 15:32:11,721 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:32:11,721 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:32:11,721 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:32:11,730 [DEBUG][       Thread-609167][   transport.py][1871] : EOF in transport thread
2025-07-01 15:32:14,857 [DEBUG][Thread-609169 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:32:21,722 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:32:21,723 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:32:21,723 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:32:21,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-07-01 15:32:22,234 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 31, 55), 11.52, 45.89, 0.0, 39.54, 14.06, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:32:22,234 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:31:55
2025-07-01 15:32:22,321 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:32:22,325 [DEBUG][       Thread-609170][   transport.py][1871] : starting thread (client mode): 0x8157160
2025-07-01 15:32:22,325 [DEBUG][       Thread-609170][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:32:22,341 [DEBUG][       Thread-609170][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:32:22,341 [ INFO][       Thread-609170][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:32:22,344 [DEBUG][       Thread-609170][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:32:22,344 [DEBUG][       Thread-609170][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:32:22,344 [DEBUG][       Thread-609170][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:32:22,344 [DEBUG][       Thread-609170][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:32:22,344 [DEBUG][       Thread-609170][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:32:22,344 [DEBUG][       Thread-609170][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:32:22,344 [DEBUG][       Thread-609170][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:32:22,344 [DEBUG][       Thread-609170][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:32:22,344 [DEBUG][       Thread-609170][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:32:22,345 [DEBUG][       Thread-609170][   transport.py][1871] : client lang: <none>
2025-07-01 15:32:22,345 [DEBUG][       Thread-609170][   transport.py][1871] : server lang: <none>
2025-07-01 15:32:22,345 [DEBUG][       Thread-609170][   transport.py][1871] : kex follows: False
2025-07-01 15:32:22,345 [DEBUG][       Thread-609170][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:32:22,345 [DEBUG][       Thread-609170][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:32:22,345 [DEBUG][       Thread-609170][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:32:22,345 [DEBUG][       Thread-609170][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:32:22,345 [DEBUG][       Thread-609170][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:32:22,345 [DEBUG][       Thread-609170][   transport.py][1871] : Compression: none
2025-07-01 15:32:22,345 [DEBUG][       Thread-609170][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:32:22,362 [DEBUG][       Thread-609170][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:32:22,363 [DEBUG][       Thread-609170][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:32:22,363 [DEBUG][       Thread-609170][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:32:22,363 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:32:22,364 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:32:22,365 [DEBUG][       Thread-609170][   transport.py][1871] : userauth is OK
2025-07-01 15:32:22,377 [ INFO][       Thread-609170][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:32:22,378 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:32:23,191 [DEBUG][       Thread-609170][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:32:23,192 [DEBUG][       Thread-609170][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:32:23,233 [DEBUG][       Thread-609170][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:32:23,233 [DEBUG][       Thread-609170][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:32:23,236 [DEBUG][       Thread-609170][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:32:23,247 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:32:23,247 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:32:23,249 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:32:23,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:32:23,257 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:32:23,258 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:32:23,258 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:32:23,259 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:32:23,259 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.563481 -999.00  +13.80  38.33     51   +3.90 1 1 2 1 1   887    0 9.93 -8.10 ----- 28.9 38.3 22.2 42.6 15.9 -24.0 15.3 -24.7 15.6 -23.6 16.2 -24.0
2025-07-01 15:32:23,259 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:32:23,259 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:32:23,259 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.563481
2025-07-01 15:32:23,260 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:32:23,260 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:32:23,261 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:32:23,261 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:32:23,261 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:32:23,261 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:31:55', tmtdew=11.52, humidity=45.89, cloud=0.0, wind=39.54, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:31:24.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:32:23,261 [DEBUG][       Thread-609170][   transport.py][1871] : EOF in transport thread
2025-07-01 15:32:23,344 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:32:23,358 [DEBUG][       Thread-609173][   transport.py][1871] : starting thread (client mode): 0x827db40
2025-07-01 15:32:23,358 [DEBUG][       Thread-609173][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:32:23,373 [DEBUG][       Thread-609173][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:32:23,373 [ INFO][       Thread-609173][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:32:23,380 [DEBUG][       Thread-609173][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:32:23,380 [DEBUG][       Thread-609173][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:32:23,381 [DEBUG][       Thread-609173][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:32:23,381 [DEBUG][       Thread-609173][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:32:23,381 [DEBUG][       Thread-609173][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:32:23,381 [DEBUG][       Thread-609173][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:32:23,381 [DEBUG][       Thread-609173][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:32:23,381 [DEBUG][       Thread-609173][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:32:23,381 [DEBUG][       Thread-609173][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:32:23,381 [DEBUG][       Thread-609173][   transport.py][1871] : client lang: <none>
2025-07-01 15:32:23,381 [DEBUG][       Thread-609173][   transport.py][1871] : server lang: <none>
2025-07-01 15:32:23,381 [DEBUG][       Thread-609173][   transport.py][1871] : kex follows: False
2025-07-01 15:32:23,381 [DEBUG][       Thread-609173][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:32:23,381 [DEBUG][       Thread-609173][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:32:23,381 [DEBUG][       Thread-609173][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:32:23,381 [DEBUG][       Thread-609173][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:32:23,381 [DEBUG][       Thread-609173][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:32:23,381 [DEBUG][       Thread-609173][   transport.py][1871] : Compression: none
2025-07-01 15:32:23,381 [DEBUG][       Thread-609173][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:32:23,438 [DEBUG][       Thread-609173][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:32:23,438 [DEBUG][       Thread-609173][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:32:23,439 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:32:23,439 [DEBUG][       Thread-609173][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:32:23,440 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:32:23,501 [DEBUG][       Thread-609173][   transport.py][1871] : userauth is OK
2025-07-01 15:32:23,501 [DEBUG][       Thread-609173][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:32:23,501 [DEBUG][       Thread-609173][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:32:23,501 [DEBUG][       Thread-609173][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:32:23,502 [DEBUG][       Thread-609173][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:32:23,522 [ INFO][       Thread-609173][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:32:23,522 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:32:23,523 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:32:23,900 [DEBUG][Thread-609175 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:32:24,585 [DEBUG][       Thread-609173][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:32:24,586 [DEBUG][       Thread-609173][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:32:24,636 [DEBUG][       Thread-609173][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:32:24,636 [DEBUG][       Thread-609173][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:32:24,645 [DEBUG][       Thread-609173][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:32:24,654 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:32:24,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-07-01 15:32:24,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-07-01 15:32:24,673 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:32:24,673 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:32:24,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:32:24,682 [DEBUG][       Thread-609173][   transport.py][1871] : EOF in transport thread
2025-07-01 15:32:32,921 [DEBUG][Thread-609176 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:32:34,679 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:32:34,679 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:32:34,680 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:32:34,682 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 15:32:35,189 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 32, 26), 11.48, 46.01, 0.0, 39.47, 14.03, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:32:35,189 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:32:26
2025-07-01 15:32:35,275 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:32:35,282 [DEBUG][       Thread-609177][   transport.py][1871] : starting thread (client mode): 0x8155480
2025-07-01 15:32:35,282 [DEBUG][       Thread-609177][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:32:35,302 [DEBUG][       Thread-609177][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:32:35,302 [ INFO][       Thread-609177][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:32:35,306 [DEBUG][       Thread-609177][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:32:35,306 [DEBUG][       Thread-609177][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:32:35,306 [DEBUG][       Thread-609177][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:32:35,306 [DEBUG][       Thread-609177][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:32:35,306 [DEBUG][       Thread-609177][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:32:35,306 [DEBUG][       Thread-609177][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:32:35,306 [DEBUG][       Thread-609177][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:32:35,306 [DEBUG][       Thread-609177][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:32:35,306 [DEBUG][       Thread-609177][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:32:35,306 [DEBUG][       Thread-609177][   transport.py][1871] : client lang: <none>
2025-07-01 15:32:35,306 [DEBUG][       Thread-609177][   transport.py][1871] : server lang: <none>
2025-07-01 15:32:35,306 [DEBUG][       Thread-609177][   transport.py][1871] : kex follows: False
2025-07-01 15:32:35,306 [DEBUG][       Thread-609177][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:32:35,306 [DEBUG][       Thread-609177][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:32:35,306 [DEBUG][       Thread-609177][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:32:35,306 [DEBUG][       Thread-609177][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:32:35,306 [DEBUG][       Thread-609177][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:32:35,306 [DEBUG][       Thread-609177][   transport.py][1871] : Compression: none
2025-07-01 15:32:35,306 [DEBUG][       Thread-609177][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:32:35,323 [DEBUG][       Thread-609177][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:32:35,323 [DEBUG][       Thread-609177][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:32:35,324 [DEBUG][       Thread-609177][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:32:35,324 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:32:35,325 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:32:35,326 [DEBUG][       Thread-609177][   transport.py][1871] : userauth is OK
2025-07-01 15:32:35,339 [ INFO][       Thread-609177][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:32:35,340 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:32:35,954 [DEBUG][       Thread-609177][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:32:35,955 [DEBUG][       Thread-609177][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:32:35,997 [DEBUG][       Thread-609177][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:32:35,997 [DEBUG][       Thread-609177][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:32:35,999 [DEBUG][       Thread-609177][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:32:36,013 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:32:36,014 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:32:36,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:32:36,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:32:36,022 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:32:36,024 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:32:36,024 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:32:36,025 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:32:36,025 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.564176 -999.00  +13.70  32.85     51   +3.80 1 1 2 1 1   887    0 9.87 -7.99 ----- 33.8 32.9 25.4 48.1 15.9 -23.8 15.2 -24.6 15.5 -23.1 16.1 -22.8
2025-07-01 15:32:36,025 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:32:36,025 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:32:36,025 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.564176
2025-07-01 15:32:36,026 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:32:36,027 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:32:36,027 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:32:36,027 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:32:36,027 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:32:36,027 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:32:26', tmtdew=11.48, humidity=46.01, cloud=0.0, wind=39.47, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:32:24.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:32:36,027 [DEBUG][       Thread-609177][   transport.py][1871] : EOF in transport thread
2025-07-01 15:32:36,111 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:32:36,120 [DEBUG][       Thread-609180][   transport.py][1871] : starting thread (client mode): 0x75ab160
2025-07-01 15:32:36,120 [DEBUG][       Thread-609180][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:32:36,136 [DEBUG][       Thread-609180][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:32:36,136 [ INFO][       Thread-609180][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:32:36,143 [DEBUG][       Thread-609180][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:32:36,143 [DEBUG][       Thread-609180][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:32:36,144 [DEBUG][       Thread-609180][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:32:36,144 [DEBUG][       Thread-609180][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:32:36,144 [DEBUG][       Thread-609180][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:32:36,144 [DEBUG][       Thread-609180][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:32:36,144 [DEBUG][       Thread-609180][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:32:36,144 [DEBUG][       Thread-609180][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:32:36,144 [DEBUG][       Thread-609180][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:32:36,144 [DEBUG][       Thread-609180][   transport.py][1871] : client lang: <none>
2025-07-01 15:32:36,144 [DEBUG][       Thread-609180][   transport.py][1871] : server lang: <none>
2025-07-01 15:32:36,144 [DEBUG][       Thread-609180][   transport.py][1871] : kex follows: False
2025-07-01 15:32:36,144 [DEBUG][       Thread-609180][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:32:36,144 [DEBUG][       Thread-609180][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:32:36,144 [DEBUG][       Thread-609180][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:32:36,144 [DEBUG][       Thread-609180][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:32:36,144 [DEBUG][       Thread-609180][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:32:36,144 [DEBUG][       Thread-609180][   transport.py][1871] : Compression: none
2025-07-01 15:32:36,144 [DEBUG][       Thread-609180][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:32:36,201 [DEBUG][       Thread-609180][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:32:36,201 [DEBUG][       Thread-609180][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:32:36,202 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:32:36,202 [DEBUG][       Thread-609180][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:32:36,203 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:32:36,257 [DEBUG][       Thread-609180][   transport.py][1871] : userauth is OK
2025-07-01 15:32:36,257 [DEBUG][       Thread-609180][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:32:36,257 [DEBUG][       Thread-609180][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:32:36,258 [DEBUG][       Thread-609180][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:32:36,258 [DEBUG][       Thread-609180][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:32:36,277 [ INFO][       Thread-609180][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:32:36,277 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:32:36,278 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:32:36,964 [DEBUG][Thread-609182 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:32:37,336 [DEBUG][       Thread-609180][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:32:37,336 [DEBUG][       Thread-609180][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:32:37,385 [DEBUG][       Thread-609180][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:32:37,385 [DEBUG][       Thread-609180][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:32:37,398 [DEBUG][       Thread-609180][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:32:37,411 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:32:37,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')
2025-07-01 15:32:37,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-07-01 15:32:37,429 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:32:37,429 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:32:37,429 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:32:37,437 [DEBUG][       Thread-609180][   transport.py][1871] : EOF in transport thread
2025-07-01 15:32:41,941 [DEBUG][Thread-609183 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:32:47,440 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:32:47,440 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:32:47,440 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:32:47,443 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 15:32:47,945 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 32, 26), 11.48, 46.01, 0.0, 39.47, 14.03, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:32:47,945 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:32:26
2025-07-01 15:32:48,030 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:32:48,034 [DEBUG][       Thread-609184][   transport.py][1871] : starting thread (client mode): 0x81e4820
2025-07-01 15:32:48,035 [DEBUG][       Thread-609184][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:32:48,055 [DEBUG][       Thread-609184][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:32:48,055 [ INFO][       Thread-609184][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:32:48,059 [DEBUG][       Thread-609184][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:32:48,059 [DEBUG][       Thread-609184][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:32:48,059 [DEBUG][       Thread-609184][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:32:48,059 [DEBUG][       Thread-609184][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:32:48,059 [DEBUG][       Thread-609184][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:32:48,059 [DEBUG][       Thread-609184][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:32:48,059 [DEBUG][       Thread-609184][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:32:48,059 [DEBUG][       Thread-609184][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:32:48,059 [DEBUG][       Thread-609184][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:32:48,059 [DEBUG][       Thread-609184][   transport.py][1871] : client lang: <none>
2025-07-01 15:32:48,059 [DEBUG][       Thread-609184][   transport.py][1871] : server lang: <none>
2025-07-01 15:32:48,059 [DEBUG][       Thread-609184][   transport.py][1871] : kex follows: False
2025-07-01 15:32:48,059 [DEBUG][       Thread-609184][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:32:48,059 [DEBUG][       Thread-609184][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:32:48,059 [DEBUG][       Thread-609184][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:32:48,059 [DEBUG][       Thread-609184][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:32:48,059 [DEBUG][       Thread-609184][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:32:48,059 [DEBUG][       Thread-609184][   transport.py][1871] : Compression: none
2025-07-01 15:32:48,059 [DEBUG][       Thread-609184][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:32:48,067 [DEBUG][       Thread-609184][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:32:48,067 [DEBUG][       Thread-609184][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:32:48,068 [DEBUG][       Thread-609184][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:32:48,068 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:32:48,068 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:32:48,069 [DEBUG][       Thread-609184][   transport.py][1871] : userauth is OK
2025-07-01 15:32:48,082 [ INFO][       Thread-609184][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:32:48,083 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:32:48,870 [DEBUG][       Thread-609184][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:32:48,870 [DEBUG][       Thread-609184][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:32:48,913 [DEBUG][       Thread-609184][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:32:48,913 [DEBUG][       Thread-609184][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:32:48,917 [DEBUG][       Thread-609184][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:32:48,928 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:32:48,929 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:32:48,931 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:32:48,933 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:32:48,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:32:48,941 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:32:48,941 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:32:48,942 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:32:48,942 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.564176 -999.00  +13.70  32.85     51   +3.80 1 1 2 1 1   887    0 9.87 -7.99 ----- 33.8 32.9 25.4 48.1 15.9 -23.8 15.2 -24.6 15.5 -23.1 16.1 -22.8
2025-07-01 15:32:48,942 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:32:48,942 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:32:48,942 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.564176
2025-07-01 15:32:48,943 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:32:48,943 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:32:48,943 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:32:48,943 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:32:48,943 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:32:48,944 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:32:26', tmtdew=11.48, humidity=46.01, cloud=0.0, wind=39.47, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:32:24.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:32:48,945 [DEBUG][       Thread-609184][   transport.py][1871] : EOF in transport thread
2025-07-01 15:32:49,027 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:32:49,038 [DEBUG][       Thread-609187][   transport.py][1871] : starting thread (client mode): 0x81c9300
2025-07-01 15:32:49,038 [DEBUG][       Thread-609187][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:32:49,059 [DEBUG][       Thread-609187][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:32:49,059 [ INFO][       Thread-609187][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:32:49,067 [DEBUG][       Thread-609187][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:32:49,067 [DEBUG][       Thread-609187][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:32:49,067 [DEBUG][       Thread-609187][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:32:49,068 [DEBUG][       Thread-609187][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:32:49,068 [DEBUG][       Thread-609187][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:32:49,068 [DEBUG][       Thread-609187][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:32:49,068 [DEBUG][       Thread-609187][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:32:49,068 [DEBUG][       Thread-609187][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:32:49,068 [DEBUG][       Thread-609187][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:32:49,068 [DEBUG][       Thread-609187][   transport.py][1871] : client lang: <none>
2025-07-01 15:32:49,068 [DEBUG][       Thread-609187][   transport.py][1871] : server lang: <none>
2025-07-01 15:32:49,068 [DEBUG][       Thread-609187][   transport.py][1871] : kex follows: False
2025-07-01 15:32:49,068 [DEBUG][       Thread-609187][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:32:49,068 [DEBUG][       Thread-609187][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:32:49,068 [DEBUG][       Thread-609187][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:32:49,068 [DEBUG][       Thread-609187][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:32:49,068 [DEBUG][       Thread-609187][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:32:49,068 [DEBUG][       Thread-609187][   transport.py][1871] : Compression: none
2025-07-01 15:32:49,068 [DEBUG][       Thread-609187][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:32:49,130 [DEBUG][       Thread-609187][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:32:49,130 [DEBUG][       Thread-609187][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:32:49,131 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:32:49,131 [DEBUG][       Thread-609187][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:32:49,132 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:32:49,185 [DEBUG][       Thread-609187][   transport.py][1871] : userauth is OK
2025-07-01 15:32:49,185 [DEBUG][       Thread-609187][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:32:49,185 [DEBUG][       Thread-609187][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:32:49,185 [DEBUG][       Thread-609187][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:32:49,186 [DEBUG][       Thread-609187][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:32:49,204 [ INFO][       Thread-609187][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:32:49,205 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:32:49,205 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:32:50,260 [DEBUG][       Thread-609187][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:32:50,260 [DEBUG][       Thread-609187][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:32:50,312 [DEBUG][       Thread-609187][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:32:50,312 [DEBUG][       Thread-609187][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:32:50,325 [DEBUG][       Thread-609187][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:32:50,334 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:32: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')
2025-07-01 15:32:50,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-07-01 15:32:50,352 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:32:50,352 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:32:50,352 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:32:50,360 [DEBUG][       Thread-609187][   transport.py][1871] : EOF in transport thread
2025-07-01 15:32:50,964 [DEBUG][Thread-609189 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:32:59,985 [DEBUG][Thread-609190 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:33:00,363 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:33:00,363 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:33:00,363 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:33:00,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-07-01 15:33:00,885 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 32, 26), 11.48, 46.01, 0.0, 39.47, 14.03, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:33:00,885 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:32:26
2025-07-01 15:33:00,978 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:33:00,984 [DEBUG][       Thread-609191][   transport.py][1871] : starting thread (client mode): 0x81ca890
2025-07-01 15:33:00,984 [DEBUG][       Thread-609191][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:33:01,004 [DEBUG][       Thread-609191][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:33:01,004 [ INFO][       Thread-609191][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:33:01,007 [DEBUG][       Thread-609191][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:33:01,007 [DEBUG][       Thread-609191][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:33:01,007 [DEBUG][       Thread-609191][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:33:01,007 [DEBUG][       Thread-609191][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:33:01,007 [DEBUG][       Thread-609191][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:33:01,007 [DEBUG][       Thread-609191][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:33:01,007 [DEBUG][       Thread-609191][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:33:01,007 [DEBUG][       Thread-609191][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:33:01,007 [DEBUG][       Thread-609191][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:33:01,007 [DEBUG][       Thread-609191][   transport.py][1871] : client lang: <none>
2025-07-01 15:33:01,007 [DEBUG][       Thread-609191][   transport.py][1871] : server lang: <none>
2025-07-01 15:33:01,007 [DEBUG][       Thread-609191][   transport.py][1871] : kex follows: False
2025-07-01 15:33:01,007 [DEBUG][       Thread-609191][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:33:01,007 [DEBUG][       Thread-609191][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:33:01,007 [DEBUG][       Thread-609191][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:33:01,007 [DEBUG][       Thread-609191][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:33:01,007 [DEBUG][       Thread-609191][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:33:01,007 [DEBUG][       Thread-609191][   transport.py][1871] : Compression: none
2025-07-01 15:33:01,007 [DEBUG][       Thread-609191][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:33:01,024 [DEBUG][       Thread-609191][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:33:01,024 [DEBUG][       Thread-609191][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:33:01,024 [DEBUG][       Thread-609191][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:33:01,024 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:33:01,024 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:33:01,025 [DEBUG][       Thread-609191][   transport.py][1871] : userauth is OK
2025-07-01 15:33:01,037 [ INFO][       Thread-609191][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:33:01,037 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:33:01,815 [DEBUG][       Thread-609191][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:33:01,815 [DEBUG][       Thread-609191][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:33:01,856 [DEBUG][       Thread-609191][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:33:01,857 [DEBUG][       Thread-609191][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:33:01,861 [DEBUG][       Thread-609191][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:33:01,873 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:33:01,874 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:33:01,877 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:33:01,878 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:33:01,883 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:33:01,885 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:33:01,885 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:33:01,886 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:33:01,886 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.564176 -999.00  +13.70  32.85     51   +3.80 1 1 2 1 1   887    0 9.87 -7.99 ----- 33.8 32.9 25.4 48.1 15.9 -23.8 15.2 -24.6 15.5 -23.1 16.1 -22.8
2025-07-01 15:33:01,886 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:33:01,886 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:33:01,886 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.564176
2025-07-01 15:33:01,886 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:33:01,887 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:33:01,887 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:33:01,887 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:33:01,887 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:33:01,887 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:32:26', tmtdew=11.48, humidity=46.01, cloud=0.0, wind=39.47, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:32:24.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:33:01,888 [DEBUG][       Thread-609191][   transport.py][1871] : EOF in transport thread
2025-07-01 15:33:01,970 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:33:01,979 [DEBUG][       Thread-609194][   transport.py][1871] : starting thread (client mode): 0x8155ab0
2025-07-01 15:33:01,979 [DEBUG][       Thread-609194][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:33:01,994 [DEBUG][       Thread-609194][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:33:01,994 [ INFO][       Thread-609194][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:33:02,002 [DEBUG][       Thread-609194][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:33:02,002 [DEBUG][       Thread-609194][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:33:02,002 [DEBUG][       Thread-609194][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:33:02,002 [DEBUG][       Thread-609194][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:33:02,002 [DEBUG][       Thread-609194][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:33:02,002 [DEBUG][       Thread-609194][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:33:02,002 [DEBUG][       Thread-609194][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:33:02,002 [DEBUG][       Thread-609194][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:33:02,002 [DEBUG][       Thread-609194][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:33:02,002 [DEBUG][       Thread-609194][   transport.py][1871] : client lang: <none>
2025-07-01 15:33:02,002 [DEBUG][       Thread-609194][   transport.py][1871] : server lang: <none>
2025-07-01 15:33:02,002 [DEBUG][       Thread-609194][   transport.py][1871] : kex follows: False
2025-07-01 15:33:02,002 [DEBUG][       Thread-609194][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:33:02,003 [DEBUG][       Thread-609194][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:33:02,003 [DEBUG][       Thread-609194][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:33:02,003 [DEBUG][       Thread-609194][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:33:02,003 [DEBUG][       Thread-609194][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:33:02,003 [DEBUG][       Thread-609194][   transport.py][1871] : Compression: none
2025-07-01 15:33:02,003 [DEBUG][       Thread-609194][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:33:02,061 [DEBUG][       Thread-609194][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:33:02,062 [DEBUG][       Thread-609194][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:33:02,062 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:33:02,063 [DEBUG][       Thread-609194][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:33:02,064 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:33:02,117 [DEBUG][       Thread-609194][   transport.py][1871] : userauth is OK
2025-07-01 15:33:02,117 [DEBUG][       Thread-609194][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:33:02,117 [DEBUG][       Thread-609194][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:33:02,118 [DEBUG][       Thread-609194][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:33:02,118 [DEBUG][       Thread-609194][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:33:02,136 [ INFO][       Thread-609194][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:33:02,136 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:33:02,137 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:33:03,244 [DEBUG][       Thread-609194][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:33:03,244 [DEBUG][       Thread-609194][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:33:03,296 [DEBUG][       Thread-609194][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:33:03,296 [DEBUG][       Thread-609194][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:33:03,305 [DEBUG][       Thread-609194][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:33:03,314 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:33:03,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-07-01 15:33:03,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-07-01 15:33:03,331 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:33:03,331 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:33:03,332 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:33:03,340 [DEBUG][       Thread-609194][   transport.py][1871] : EOF in transport thread
2025-07-01 15:33:09,004 [DEBUG][Thread-609196 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:33:13,342 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:33:13,343 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:33:13,343 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:33:13,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-07-01 15:33:13,838 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 32, 58), 11.48, 46.02, 0.0, 30.49, 14.02, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:33:13,838 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:32:58
2025-07-01 15:33:13,924 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:33:13,928 [DEBUG][       Thread-609197][   transport.py][1871] : starting thread (client mode): 0x81561d0
2025-07-01 15:33:13,928 [DEBUG][       Thread-609197][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:33:13,947 [DEBUG][       Thread-609197][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:33:13,947 [ INFO][       Thread-609197][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:33:13,951 [DEBUG][       Thread-609197][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:33:13,951 [DEBUG][       Thread-609197][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:33:13,951 [DEBUG][       Thread-609197][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:33:13,951 [DEBUG][       Thread-609197][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:33:13,951 [DEBUG][       Thread-609197][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:33:13,951 [DEBUG][       Thread-609197][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:33:13,951 [DEBUG][       Thread-609197][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:33:13,951 [DEBUG][       Thread-609197][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:33:13,951 [DEBUG][       Thread-609197][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:33:13,951 [DEBUG][       Thread-609197][   transport.py][1871] : client lang: <none>
2025-07-01 15:33:13,951 [DEBUG][       Thread-609197][   transport.py][1871] : server lang: <none>
2025-07-01 15:33:13,951 [DEBUG][       Thread-609197][   transport.py][1871] : kex follows: False
2025-07-01 15:33:13,951 [DEBUG][       Thread-609197][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:33:13,951 [DEBUG][       Thread-609197][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:33:13,951 [DEBUG][       Thread-609197][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:33:13,951 [DEBUG][       Thread-609197][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:33:13,951 [DEBUG][       Thread-609197][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:33:13,951 [DEBUG][       Thread-609197][   transport.py][1871] : Compression: none
2025-07-01 15:33:13,951 [DEBUG][       Thread-609197][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:33:13,966 [DEBUG][       Thread-609197][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:33:13,966 [DEBUG][       Thread-609197][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:33:13,967 [DEBUG][       Thread-609197][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:33:13,967 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:33:13,967 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:33:13,968 [DEBUG][       Thread-609197][   transport.py][1871] : userauth is OK
2025-07-01 15:33:13,981 [ INFO][       Thread-609197][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:33:13,982 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:33:14,657 [DEBUG][       Thread-609197][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:33:14,657 [DEBUG][       Thread-609197][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:33:14,701 [DEBUG][       Thread-609197][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:33:14,701 [DEBUG][       Thread-609197][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:33:14,704 [DEBUG][       Thread-609197][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:33:14,716 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:33:14,717 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:33:14,719 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:33:14,721 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:33:14,726 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:33:14,728 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:33:14,728 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:33:14,729 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:33:14,729 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.564523 -999.00  +13.70  34.91     51   +3.70 1 1 2 1 1   887    0 9.76 -8.50 ----- 45.9 34.9 17.4 53.8 15.8 -24.2 15.2 -24.7 15.5 -24.3 16.1 -24.0
2025-07-01 15:33:14,729 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:33:14,729 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:33:14,729 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.564523
2025-07-01 15:33:14,729 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:33:14,730 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:33:14,730 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:33:14,730 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:33:14,730 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:33:14,730 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:32:58', tmtdew=11.48, humidity=46.02, cloud=0.0, wind=30.49, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:32:54.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:33:14,731 [DEBUG][       Thread-609197][   transport.py][1871] : EOF in transport thread
2025-07-01 15:33:14,814 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:33:14,833 [DEBUG][       Thread-609200][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 15:33:14,834 [DEBUG][       Thread-609200][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:33:14,849 [DEBUG][       Thread-609200][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:33:14,849 [ INFO][       Thread-609200][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:33:14,857 [DEBUG][       Thread-609200][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:33:14,857 [DEBUG][       Thread-609200][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:33:14,857 [DEBUG][       Thread-609200][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:33:14,857 [DEBUG][       Thread-609200][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:33:14,857 [DEBUG][       Thread-609200][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:33:14,857 [DEBUG][       Thread-609200][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:33:14,857 [DEBUG][       Thread-609200][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:33:14,857 [DEBUG][       Thread-609200][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:33:14,857 [DEBUG][       Thread-609200][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:33:14,857 [DEBUG][       Thread-609200][   transport.py][1871] : client lang: <none>
2025-07-01 15:33:14,857 [DEBUG][       Thread-609200][   transport.py][1871] : server lang: <none>
2025-07-01 15:33:14,857 [DEBUG][       Thread-609200][   transport.py][1871] : kex follows: False
2025-07-01 15:33:14,858 [DEBUG][       Thread-609200][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:33:14,858 [DEBUG][       Thread-609200][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:33:14,858 [DEBUG][       Thread-609200][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:33:14,858 [DEBUG][       Thread-609200][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:33:14,858 [DEBUG][       Thread-609200][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:33:14,858 [DEBUG][       Thread-609200][   transport.py][1871] : Compression: none
2025-07-01 15:33:14,858 [DEBUG][       Thread-609200][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:33:14,917 [DEBUG][       Thread-609200][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:33:14,918 [DEBUG][       Thread-609200][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:33:14,918 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:33:14,919 [DEBUG][       Thread-609200][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:33:14,920 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:33:14,973 [DEBUG][       Thread-609200][   transport.py][1871] : userauth is OK
2025-07-01 15:33:14,974 [DEBUG][       Thread-609200][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:33:14,974 [DEBUG][       Thread-609200][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:33:14,974 [DEBUG][       Thread-609200][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:33:14,974 [DEBUG][       Thread-609200][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:33:14,993 [ INFO][       Thread-609200][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:33:14,993 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:33:14,994 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:33:16,028 [DEBUG][       Thread-609200][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:33:16,028 [DEBUG][       Thread-609200][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:33:16,076 [DEBUG][       Thread-609200][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:33:16,076 [DEBUG][       Thread-609200][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:33:16,085 [DEBUG][       Thread-609200][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:33:16,094 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:33:16,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-07-01 15:33:16,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') -> 00000000
2025-07-01 15:33:16,113 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:33:16,113 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:33:16,114 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:33:16,122 [DEBUG][       Thread-609200][   transport.py][1871] : EOF in transport thread
2025-07-01 15:33:18,025 [DEBUG][Thread-609202 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:33:26,123 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:33:26,123 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:33:26,124 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:33:26,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-07-01 15:33:26,612 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 32, 58), 11.48, 46.02, 0.0, 30.49, 14.02, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:33:26,612 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:32:58
2025-07-01 15:33:26,698 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:33:26,704 [DEBUG][       Thread-609203][   transport.py][1871] : starting thread (client mode): 0x81d9960
2025-07-01 15:33:26,704 [DEBUG][       Thread-609203][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:33:26,715 [DEBUG][       Thread-609203][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:33:26,715 [ INFO][       Thread-609203][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:33:26,718 [DEBUG][       Thread-609203][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:33:26,718 [DEBUG][       Thread-609203][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:33:26,719 [DEBUG][       Thread-609203][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:33:26,719 [DEBUG][       Thread-609203][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:33:26,719 [DEBUG][       Thread-609203][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:33:26,719 [DEBUG][       Thread-609203][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:33:26,719 [DEBUG][       Thread-609203][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:33:26,719 [DEBUG][       Thread-609203][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:33:26,719 [DEBUG][       Thread-609203][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:33:26,719 [DEBUG][       Thread-609203][   transport.py][1871] : client lang: <none>
2025-07-01 15:33:26,719 [DEBUG][       Thread-609203][   transport.py][1871] : server lang: <none>
2025-07-01 15:33:26,719 [DEBUG][       Thread-609203][   transport.py][1871] : kex follows: False
2025-07-01 15:33:26,719 [DEBUG][       Thread-609203][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:33:26,719 [DEBUG][       Thread-609203][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:33:26,719 [DEBUG][       Thread-609203][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:33:26,719 [DEBUG][       Thread-609203][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:33:26,719 [DEBUG][       Thread-609203][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:33:26,719 [DEBUG][       Thread-609203][   transport.py][1871] : Compression: none
2025-07-01 15:33:26,719 [DEBUG][       Thread-609203][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:33:26,735 [DEBUG][       Thread-609203][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:33:26,736 [DEBUG][       Thread-609203][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:33:26,736 [DEBUG][       Thread-609203][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:33:26,736 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:33:26,737 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:33:26,738 [DEBUG][       Thread-609203][   transport.py][1871] : userauth is OK
2025-07-01 15:33:26,750 [ INFO][       Thread-609203][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:33:26,751 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:33:27,055 [DEBUG][Thread-609205 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:33:27,571 [DEBUG][       Thread-609203][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:33:27,571 [DEBUG][       Thread-609203][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:33:27,613 [DEBUG][       Thread-609203][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:33:27,613 [DEBUG][       Thread-609203][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:33:27,617 [DEBUG][       Thread-609203][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:33:27,629 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:33:27,630 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:33:27,632 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:33:27,633 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:33:27,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:33:27,641 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:33:27,641 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:33:27,642 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:33:27,642 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.564523 -999.00  +13.70  34.91     51   +3.70 1 1 2 1 1   887    0 9.76 -8.50 ----- 45.9 34.9 17.4 53.8 15.8 -24.2 15.2 -24.7 15.5 -24.3 16.1 -24.0
2025-07-01 15:33:27,642 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:33:27,642 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:33:27,642 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.564523
2025-07-01 15:33:27,643 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:33:27,643 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:33:27,643 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:33:27,643 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:33:27,643 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:33:27,644 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:32:58', tmtdew=11.48, humidity=46.02, cloud=0.0, wind=30.49, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:32:54.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:33:27,644 [DEBUG][       Thread-609203][   transport.py][1871] : EOF in transport thread
2025-07-01 15:33:27,728 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:33:27,741 [DEBUG][       Thread-609207][   transport.py][1871] : starting thread (client mode): 0x8393790
2025-07-01 15:33:27,741 [DEBUG][       Thread-609207][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:33:27,756 [DEBUG][       Thread-609207][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:33:27,756 [ INFO][       Thread-609207][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:33:27,764 [DEBUG][       Thread-609207][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:33:27,764 [DEBUG][       Thread-609207][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:33:27,764 [DEBUG][       Thread-609207][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:33:27,764 [DEBUG][       Thread-609207][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:33:27,764 [DEBUG][       Thread-609207][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:33:27,764 [DEBUG][       Thread-609207][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:33:27,764 [DEBUG][       Thread-609207][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:33:27,764 [DEBUG][       Thread-609207][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:33:27,764 [DEBUG][       Thread-609207][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:33:27,764 [DEBUG][       Thread-609207][   transport.py][1871] : client lang: <none>
2025-07-01 15:33:27,764 [DEBUG][       Thread-609207][   transport.py][1871] : server lang: <none>
2025-07-01 15:33:27,764 [DEBUG][       Thread-609207][   transport.py][1871] : kex follows: False
2025-07-01 15:33:27,764 [DEBUG][       Thread-609207][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:33:27,764 [DEBUG][       Thread-609207][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:33:27,764 [DEBUG][       Thread-609207][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:33:27,764 [DEBUG][       Thread-609207][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:33:27,765 [DEBUG][       Thread-609207][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:33:27,765 [DEBUG][       Thread-609207][   transport.py][1871] : Compression: none
2025-07-01 15:33:27,765 [DEBUG][       Thread-609207][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:33:27,822 [DEBUG][       Thread-609207][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:33:27,822 [DEBUG][       Thread-609207][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:33:27,823 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:33:27,823 [DEBUG][       Thread-609207][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:33:27,824 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:33:27,879 [DEBUG][       Thread-609207][   transport.py][1871] : userauth is OK
2025-07-01 15:33:27,879 [DEBUG][       Thread-609207][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:33:27,879 [DEBUG][       Thread-609207][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:33:27,879 [DEBUG][       Thread-609207][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:33:27,879 [DEBUG][       Thread-609207][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:33:27,898 [ INFO][       Thread-609207][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:33:27,899 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:33:27,899 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:33:28,975 [DEBUG][       Thread-609207][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:33:28,975 [DEBUG][       Thread-609207][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:33:29,025 [DEBUG][       Thread-609207][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:33:29,026 [DEBUG][       Thread-609207][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:33:29,038 [DEBUG][       Thread-609207][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:33:29,046 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:33:29,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-07-01 15:33:29,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-07-01 15:33:29,064 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:33:29,064 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:33:29,065 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:33:29,072 [DEBUG][       Thread-609207][   transport.py][1871] : EOF in transport thread
2025-07-01 15:33:36,076 [DEBUG][Thread-609209 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:33:36,993 [DEBUG][Thread-609210 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:33:39,070 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:33:39,071 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:33:39,071 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:33:39,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-07-01 15:33:39,553 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 33, 31), 11.49, 46.01, 0.0, 36.72, 14.09, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:33:39,553 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:33:31
2025-07-01 15:33:39,640 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:33:39,644 [DEBUG][       Thread-609211][   transport.py][1871] : starting thread (client mode): 0x81dae60
2025-07-01 15:33:39,644 [DEBUG][       Thread-609211][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:33:39,665 [DEBUG][       Thread-609211][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:33:39,665 [ INFO][       Thread-609211][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:33:39,668 [DEBUG][       Thread-609211][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:33:39,668 [DEBUG][       Thread-609211][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:33:39,668 [DEBUG][       Thread-609211][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:33:39,668 [DEBUG][       Thread-609211][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:33:39,668 [DEBUG][       Thread-609211][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:33:39,668 [DEBUG][       Thread-609211][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:33:39,668 [DEBUG][       Thread-609211][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:33:39,668 [DEBUG][       Thread-609211][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:33:39,668 [DEBUG][       Thread-609211][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:33:39,668 [DEBUG][       Thread-609211][   transport.py][1871] : client lang: <none>
2025-07-01 15:33:39,668 [DEBUG][       Thread-609211][   transport.py][1871] : server lang: <none>
2025-07-01 15:33:39,668 [DEBUG][       Thread-609211][   transport.py][1871] : kex follows: False
2025-07-01 15:33:39,668 [DEBUG][       Thread-609211][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:33:39,668 [DEBUG][       Thread-609211][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:33:39,668 [DEBUG][       Thread-609211][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:33:39,668 [DEBUG][       Thread-609211][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:33:39,668 [DEBUG][       Thread-609211][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:33:39,668 [DEBUG][       Thread-609211][   transport.py][1871] : Compression: none
2025-07-01 15:33:39,668 [DEBUG][       Thread-609211][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:33:39,684 [DEBUG][       Thread-609211][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:33:39,685 [DEBUG][       Thread-609211][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:33:39,685 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:33:39,686 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:33:39,686 [DEBUG][       Thread-609211][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:33:39,686 [DEBUG][       Thread-609211][   transport.py][1871] : userauth is OK
2025-07-01 15:33:39,699 [ INFO][       Thread-609211][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:33:39,699 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:33:40,329 [DEBUG][       Thread-609211][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:33:40,329 [DEBUG][       Thread-609211][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:33:40,373 [DEBUG][       Thread-609211][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:33:40,373 [DEBUG][       Thread-609211][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:33:40,376 [DEBUG][       Thread-609211][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:33:40,389 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:33:40,390 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:33:40,391 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:33:40,393 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:33:40,397 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:33:40,399 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:33:40,399 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:33:40,400 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:33:40,400 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.564870 -999.00  +13.50  38.89     51   +3.60 1 1 2 1 1   887    0 9.98 -8.91 ----- 41.3 38.9 4.0 58.2 15.8 -24.3 15.1 -25.0 15.5 -24.0 15.9 -24.8
2025-07-01 15:33:40,400 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:33:40,400 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:33:40,400 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.564870
2025-07-01 15:33:40,401 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:33:40,401 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:33:40,401 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:33:40,402 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:33:40,402 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:33:40,402 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:33:31', tmtdew=11.49, humidity=46.01, cloud=0.0, wind=36.72, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:33:24.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:33:40,402 [DEBUG][       Thread-609211][   transport.py][1871] : EOF in transport thread
2025-07-01 15:33:40,486 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:33:40,495 [DEBUG][       Thread-609214][   transport.py][1871] : starting thread (client mode): 0x8171810
2025-07-01 15:33:40,496 [DEBUG][       Thread-609214][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:33:40,510 [DEBUG][       Thread-609214][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:33:40,511 [ INFO][       Thread-609214][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:33:40,518 [DEBUG][       Thread-609214][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:33:40,518 [DEBUG][       Thread-609214][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:33:40,518 [DEBUG][       Thread-609214][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:33:40,518 [DEBUG][       Thread-609214][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:33:40,518 [DEBUG][       Thread-609214][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:33:40,518 [DEBUG][       Thread-609214][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:33:40,518 [DEBUG][       Thread-609214][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:33:40,518 [DEBUG][       Thread-609214][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:33:40,518 [DEBUG][       Thread-609214][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:33:40,518 [DEBUG][       Thread-609214][   transport.py][1871] : client lang: <none>
2025-07-01 15:33:40,518 [DEBUG][       Thread-609214][   transport.py][1871] : server lang: <none>
2025-07-01 15:33:40,518 [DEBUG][       Thread-609214][   transport.py][1871] : kex follows: False
2025-07-01 15:33:40,518 [DEBUG][       Thread-609214][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:33:40,518 [DEBUG][       Thread-609214][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:33:40,518 [DEBUG][       Thread-609214][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:33:40,518 [DEBUG][       Thread-609214][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:33:40,518 [DEBUG][       Thread-609214][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:33:40,518 [DEBUG][       Thread-609214][   transport.py][1871] : Compression: none
2025-07-01 15:33:40,518 [DEBUG][       Thread-609214][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:33:40,576 [DEBUG][       Thread-609214][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:33:40,576 [DEBUG][       Thread-609214][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:33:40,576 [DEBUG][       Thread-609214][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:33:40,576 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:33:40,576 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:33:40,635 [DEBUG][       Thread-609214][   transport.py][1871] : userauth is OK
2025-07-01 15:33:40,636 [DEBUG][       Thread-609214][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:33:40,636 [DEBUG][       Thread-609214][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:33:40,636 [DEBUG][       Thread-609214][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:33:40,636 [DEBUG][       Thread-609214][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:33:40,659 [ INFO][       Thread-609214][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:33:40,659 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:33:40,660 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:33:41,657 [DEBUG][       Thread-609214][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:33:41,657 [DEBUG][       Thread-609214][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:33:41,707 [DEBUG][       Thread-609214][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:33:41,708 [DEBUG][       Thread-609214][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:33:41,716 [DEBUG][       Thread-609214][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:33:41,725 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:33:41,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-07-01 15:33:41,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-07-01 15:33:41,742 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:33:41,743 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:33:41,743 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:33:41,751 [DEBUG][       Thread-609214][   transport.py][1871] : EOF in transport thread
2025-07-01 15:33:45,099 [DEBUG][Thread-609216 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:33:51,753 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:33:51,754 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:33:51,754 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:33: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-07-01 15:33:52,234 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 33, 31), 11.49, 46.01, 0.0, 36.72, 14.09, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:33:52,234 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:33:31
2025-07-01 15:33:52,320 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:33:52,325 [DEBUG][       Thread-609217][   transport.py][1871] : starting thread (client mode): 0x81db3a0
2025-07-01 15:33:52,325 [DEBUG][       Thread-609217][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:33:52,349 [DEBUG][       Thread-609217][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:33:52,349 [ INFO][       Thread-609217][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:33:52,352 [DEBUG][       Thread-609217][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:33:52,352 [DEBUG][       Thread-609217][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:33:52,352 [DEBUG][       Thread-609217][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:33:52,352 [DEBUG][       Thread-609217][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:33:52,353 [DEBUG][       Thread-609217][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:33:52,353 [DEBUG][       Thread-609217][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:33:52,353 [DEBUG][       Thread-609217][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:33:52,353 [DEBUG][       Thread-609217][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:33:52,353 [DEBUG][       Thread-609217][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:33:52,353 [DEBUG][       Thread-609217][   transport.py][1871] : client lang: <none>
2025-07-01 15:33:52,353 [DEBUG][       Thread-609217][   transport.py][1871] : server lang: <none>
2025-07-01 15:33:52,353 [DEBUG][       Thread-609217][   transport.py][1871] : kex follows: False
2025-07-01 15:33:52,353 [DEBUG][       Thread-609217][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:33:52,353 [DEBUG][       Thread-609217][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:33:52,353 [DEBUG][       Thread-609217][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:33:52,353 [DEBUG][       Thread-609217][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:33:52,353 [DEBUG][       Thread-609217][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:33:52,353 [DEBUG][       Thread-609217][   transport.py][1871] : Compression: none
2025-07-01 15:33:52,353 [DEBUG][       Thread-609217][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:33:52,370 [DEBUG][       Thread-609217][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:33:52,370 [DEBUG][       Thread-609217][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:33:52,371 [DEBUG][       Thread-609217][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:33:52,371 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:33:52,371 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:33:52,373 [DEBUG][       Thread-609217][   transport.py][1871] : userauth is OK
2025-07-01 15:33:52,420 [ INFO][       Thread-609217][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:33:52,420 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:33:53,245 [DEBUG][       Thread-609217][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:33:53,245 [DEBUG][       Thread-609217][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:33:53,289 [DEBUG][       Thread-609217][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:33:53,289 [DEBUG][       Thread-609217][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:33:53,292 [DEBUG][       Thread-609217][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:33:53,304 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:33:53,305 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:33:53,306 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:33:53,308 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:33:53,313 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:33:53,315 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:33:53,315 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:33:53,316 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:33:53,316 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.564870 -999.00  +13.50  38.89     51   +3.60 1 1 2 1 1   887    0 9.98 -8.91 ----- 41.3 38.9 4.0 58.2 15.8 -24.3 15.1 -25.0 15.5 -24.0 15.9 -24.8
2025-07-01 15:33:53,316 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:33:53,316 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:33:53,316 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.564870
2025-07-01 15:33:53,317 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:33:53,317 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:33:53,317 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:33:53,317 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:33:53,317 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:33:53,317 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:33:31', tmtdew=11.49, humidity=46.01, cloud=0.0, wind=36.72, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:33:24.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:33:53,318 [DEBUG][       Thread-609217][   transport.py][1871] : EOF in transport thread
2025-07-01 15:33:53,401 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:33:53,412 [DEBUG][       Thread-609220][   transport.py][1871] : starting thread (client mode): 0x8155300
2025-07-01 15:33:53,412 [DEBUG][       Thread-609220][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:33:53,427 [DEBUG][       Thread-609220][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:33:53,427 [ INFO][       Thread-609220][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:33:53,435 [DEBUG][       Thread-609220][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:33:53,435 [DEBUG][       Thread-609220][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:33:53,435 [DEBUG][       Thread-609220][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:33:53,435 [DEBUG][       Thread-609220][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:33:53,435 [DEBUG][       Thread-609220][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:33:53,435 [DEBUG][       Thread-609220][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:33:53,435 [DEBUG][       Thread-609220][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:33:53,435 [DEBUG][       Thread-609220][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:33:53,435 [DEBUG][       Thread-609220][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:33:53,435 [DEBUG][       Thread-609220][   transport.py][1871] : client lang: <none>
2025-07-01 15:33:53,435 [DEBUG][       Thread-609220][   transport.py][1871] : server lang: <none>
2025-07-01 15:33:53,435 [DEBUG][       Thread-609220][   transport.py][1871] : kex follows: False
2025-07-01 15:33:53,435 [DEBUG][       Thread-609220][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:33:53,435 [DEBUG][       Thread-609220][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:33:53,435 [DEBUG][       Thread-609220][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:33:53,436 [DEBUG][       Thread-609220][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:33:53,436 [DEBUG][       Thread-609220][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:33:53,436 [DEBUG][       Thread-609220][   transport.py][1871] : Compression: none
2025-07-01 15:33:53,436 [DEBUG][       Thread-609220][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:33:53,493 [DEBUG][       Thread-609220][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:33:53,493 [DEBUG][       Thread-609220][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:33:53,494 [DEBUG][       Thread-609220][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:33:53,494 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:33:53,495 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:33:53,554 [DEBUG][       Thread-609220][   transport.py][1871] : userauth is OK
2025-07-01 15:33:53,554 [DEBUG][       Thread-609220][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:33:53,554 [DEBUG][       Thread-609220][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:33:53,555 [DEBUG][       Thread-609220][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:33:53,555 [DEBUG][       Thread-609220][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:33:53,574 [ INFO][       Thread-609220][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:33:53,574 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:33:53,575 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:33:54,142 [DEBUG][Thread-609222 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:33:54,569 [DEBUG][       Thread-609220][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:33:54,570 [DEBUG][       Thread-609220][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:33:54,620 [DEBUG][       Thread-609220][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:33:54,620 [DEBUG][       Thread-609220][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:33:54,629 [DEBUG][       Thread-609220][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:33:54,638 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:33:54,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-07-01 15:33:54,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-07-01 15:33:54,657 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:33:54,657 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:33:54,658 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:33:54,667 [DEBUG][       Thread-609220][   transport.py][1871] : EOF in transport thread
2025-07-01 15:34:03,161 [DEBUG][Thread-609223 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:34:04,668 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:34:04,668 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:34:04,668 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:34:04,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-07-01 15:34:05,154 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 34, 2), 11.56, 45.77, 0.0, 41.55, 14.05, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:34:05,155 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:34:02
2025-07-01 15:34:05,238 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:34:05,242 [DEBUG][       Thread-609224][   transport.py][1871] : starting thread (client mode): 0x81da170
2025-07-01 15:34:05,242 [DEBUG][       Thread-609224][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:34:05,264 [DEBUG][       Thread-609224][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:34:05,264 [ INFO][       Thread-609224][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:34:05,267 [DEBUG][       Thread-609224][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:34:05,267 [DEBUG][       Thread-609224][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:34:05,268 [DEBUG][       Thread-609224][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:34:05,268 [DEBUG][       Thread-609224][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:34:05,268 [DEBUG][       Thread-609224][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:34:05,268 [DEBUG][       Thread-609224][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:34:05,268 [DEBUG][       Thread-609224][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:34:05,268 [DEBUG][       Thread-609224][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:34:05,268 [DEBUG][       Thread-609224][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:34:05,268 [DEBUG][       Thread-609224][   transport.py][1871] : client lang: <none>
2025-07-01 15:34:05,268 [DEBUG][       Thread-609224][   transport.py][1871] : server lang: <none>
2025-07-01 15:34:05,268 [DEBUG][       Thread-609224][   transport.py][1871] : kex follows: False
2025-07-01 15:34:05,268 [DEBUG][       Thread-609224][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:34:05,268 [DEBUG][       Thread-609224][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:34:05,268 [DEBUG][       Thread-609224][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:34:05,268 [DEBUG][       Thread-609224][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:34:05,268 [DEBUG][       Thread-609224][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:34:05,268 [DEBUG][       Thread-609224][   transport.py][1871] : Compression: none
2025-07-01 15:34:05,268 [DEBUG][       Thread-609224][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:34:05,286 [DEBUG][       Thread-609224][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:34:05,286 [DEBUG][       Thread-609224][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:34:05,287 [DEBUG][       Thread-609224][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:34:05,287 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:34:05,287 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:34:05,288 [DEBUG][       Thread-609224][   transport.py][1871] : userauth is OK
2025-07-01 15:34:05,313 [ INFO][       Thread-609224][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:34:05,314 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:34:05,914 [DEBUG][       Thread-609224][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:34:05,914 [DEBUG][       Thread-609224][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:34:05,957 [DEBUG][       Thread-609224][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:34:05,957 [DEBUG][       Thread-609224][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:34:05,960 [DEBUG][       Thread-609224][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:34:05,974 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:34:05,974 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:34:05,976 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:34:05,978 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:34:05,984 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:34:05,985 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:34:05,986 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:34:05,986 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:34:05,986 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.564870 -999.00  +13.50  38.89     51   +3.60 1 1 2 1 1   887    0 9.98 -8.91 ----- 41.3 38.9 4.0 58.2 15.8 -24.3 15.1 -25.0 15.5 -24.0 15.9 -24.8
2025-07-01 15:34:05,986 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:34:05,986 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:34:05,986 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.564870
2025-07-01 15:34:05,987 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:34:05,987 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:34:05,988 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:34:05,988 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:34:05,988 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:34:05,988 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:34:02', tmtdew=11.56, humidity=45.77, cloud=0.0, wind=41.55, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:33:24.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:34:05,989 [DEBUG][       Thread-609224][   transport.py][1871] : EOF in transport thread
2025-07-01 15:34:06,072 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:34:06,081 [DEBUG][       Thread-609227][   transport.py][1871] : starting thread (client mode): 0x8155480
2025-07-01 15:34:06,081 [DEBUG][       Thread-609227][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:34:06,096 [DEBUG][       Thread-609227][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:34:06,096 [ INFO][       Thread-609227][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:34:06,103 [DEBUG][       Thread-609227][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:34:06,103 [DEBUG][       Thread-609227][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:34:06,103 [DEBUG][       Thread-609227][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:34:06,104 [DEBUG][       Thread-609227][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:34:06,104 [DEBUG][       Thread-609227][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:34:06,104 [DEBUG][       Thread-609227][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:34:06,104 [DEBUG][       Thread-609227][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:34:06,104 [DEBUG][       Thread-609227][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:34:06,104 [DEBUG][       Thread-609227][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:34:06,104 [DEBUG][       Thread-609227][   transport.py][1871] : client lang: <none>
2025-07-01 15:34:06,104 [DEBUG][       Thread-609227][   transport.py][1871] : server lang: <none>
2025-07-01 15:34:06,104 [DEBUG][       Thread-609227][   transport.py][1871] : kex follows: False
2025-07-01 15:34:06,104 [DEBUG][       Thread-609227][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:34:06,104 [DEBUG][       Thread-609227][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:34:06,104 [DEBUG][       Thread-609227][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:34:06,104 [DEBUG][       Thread-609227][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:34:06,104 [DEBUG][       Thread-609227][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:34:06,104 [DEBUG][       Thread-609227][   transport.py][1871] : Compression: none
2025-07-01 15:34:06,104 [DEBUG][       Thread-609227][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:34:06,163 [DEBUG][       Thread-609227][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:34:06,163 [DEBUG][       Thread-609227][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:34:06,164 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:34:06,164 [DEBUG][       Thread-609227][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:34:06,165 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:34:06,223 [DEBUG][       Thread-609227][   transport.py][1871] : userauth is OK
2025-07-01 15:34:06,224 [DEBUG][       Thread-609227][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:34:06,224 [DEBUG][       Thread-609227][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:34:06,224 [DEBUG][       Thread-609227][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:34:06,224 [DEBUG][       Thread-609227][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:34:06,243 [ INFO][       Thread-609227][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:34:06,244 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:34:06,244 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:34:07,245 [DEBUG][       Thread-609227][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:34:07,245 [DEBUG][       Thread-609227][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:34:07,296 [DEBUG][       Thread-609227][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:34:07,296 [DEBUG][       Thread-609227][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:34:07,306 [DEBUG][       Thread-609227][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:34:07,315 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:34:07,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-07-01 15:34:07,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-07-01 15:34:07,333 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:34:07,333 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:34:07,334 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:34:07,342 [DEBUG][       Thread-609227][   transport.py][1871] : EOF in transport thread
2025-07-01 15:34:12,183 [DEBUG][Thread-609229 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:34:17,344 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:34:17,344 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:34:17,344 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:34:17,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-07-01 15:34:17,823 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 34, 2), 11.56, 45.77, 0.0, 41.55, 14.05, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:34:17,823 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:34:02
2025-07-01 15:34:17,907 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:34:17,913 [DEBUG][       Thread-609230][   transport.py][1871] : starting thread (client mode): 0x81da9b0
2025-07-01 15:34:17,913 [DEBUG][       Thread-609230][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:34:17,940 [DEBUG][       Thread-609230][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:34:17,940 [ INFO][       Thread-609230][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:34:17,944 [DEBUG][       Thread-609230][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:34:17,944 [DEBUG][       Thread-609230][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:34:17,944 [DEBUG][       Thread-609230][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:34:17,944 [DEBUG][       Thread-609230][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:34:17,944 [DEBUG][       Thread-609230][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:34:17,944 [DEBUG][       Thread-609230][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:34:17,944 [DEBUG][       Thread-609230][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:34:17,944 [DEBUG][       Thread-609230][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:34:17,944 [DEBUG][       Thread-609230][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:34:17,944 [DEBUG][       Thread-609230][   transport.py][1871] : client lang: <none>
2025-07-01 15:34:17,944 [DEBUG][       Thread-609230][   transport.py][1871] : server lang: <none>
2025-07-01 15:34:17,944 [DEBUG][       Thread-609230][   transport.py][1871] : kex follows: False
2025-07-01 15:34:17,945 [DEBUG][       Thread-609230][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:34:17,945 [DEBUG][       Thread-609230][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:34:17,945 [DEBUG][       Thread-609230][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:34:17,945 [DEBUG][       Thread-609230][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:34:17,945 [DEBUG][       Thread-609230][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:34:17,945 [DEBUG][       Thread-609230][   transport.py][1871] : Compression: none
2025-07-01 15:34:17,945 [DEBUG][       Thread-609230][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:34:17,964 [DEBUG][       Thread-609230][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:34:17,964 [DEBUG][       Thread-609230][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:34:17,964 [DEBUG][       Thread-609230][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:34:17,965 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:34:17,965 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:34:17,966 [DEBUG][       Thread-609230][   transport.py][1871] : userauth is OK
2025-07-01 15:34:17,978 [ INFO][       Thread-609230][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:34:17,979 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:34:18,609 [DEBUG][       Thread-609230][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:34:18,610 [DEBUG][       Thread-609230][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:34:18,653 [DEBUG][       Thread-609230][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:34:18,653 [DEBUG][       Thread-609230][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:34:18,655 [DEBUG][       Thread-609230][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:34:18,667 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:34:18,667 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:34:18,669 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:34:18,670 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:34:18,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:34:18,675 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:34:18,675 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:34:18,675 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:34:18,675 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.565217 -999.00  +13.50  37.79     51   +3.50 1 1 2 1 1   887    0 9.64 -7.38 ----- 37.5 37.8 351.9 47.9 15.7 -24.3 15.1 -25.1 15.3 -24.3 15.9 -24.2
2025-07-01 15:34:18,675 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:34:18,675 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:34:18,675 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.565217
2025-07-01 15:34:18,675 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:34:18,675 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:34:18,675 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:34:18,676 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:34:18,676 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:34:18,676 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:34:02', tmtdew=11.56, humidity=45.77, cloud=0.0, wind=41.55, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:33:54.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:34:18,676 [DEBUG][       Thread-609230][   transport.py][1871] : EOF in transport thread
2025-07-01 15:34:18,747 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:34:21,215 [DEBUG][Thread-609233 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:34:30,239 [DEBUG][Thread-609234 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:34:37,020 [DEBUG][Thread-609235 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:34:39,255 [DEBUG][Thread-609236 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:34:48,275 [DEBUG][Thread-609237 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:34:57,300 [DEBUG][Thread-609238 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:35:06,323 [DEBUG][Thread-609239 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:35:15,341 [DEBUG][Thread-609240 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:35:24,365 [DEBUG][Thread-609241 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:35:33,389 [DEBUG][Thread-609242 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:35:37,050 [DEBUG][Thread-609243 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:35:42,411 [DEBUG][Thread-609244 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:35:51,435 [DEBUG][Thread-609245 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:36:00,456 [DEBUG][Thread-609246 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:36:09,481 [DEBUG][Thread-609247 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:36:18,504 [DEBUG][Thread-609248 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:36:27,525 [DEBUG][Thread-609249 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:36:28,436 [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-07-01 15:36:36,545 [DEBUG][Thread-609250 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:36:37,081 [DEBUG][Thread-609251 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:36:38,440 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:36:38,440 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:36:38,440 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:36:38,443 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 15:36:38,943 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 36, 10), 11.26, 46.45, 0.0, 38.46, 13.74, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:36:38,943 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:36:10
2025-07-01 15:36:39,030 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:36:39,034 [DEBUG][       Thread-609252][   transport.py][1871] : starting thread (client mode): 0x75a97e0
2025-07-01 15:36:39,034 [DEBUG][       Thread-609252][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:36:39,056 [DEBUG][       Thread-609252][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:36:39,056 [ INFO][       Thread-609252][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:36:39,060 [DEBUG][       Thread-609252][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:36:39,060 [DEBUG][       Thread-609252][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:36:39,060 [DEBUG][       Thread-609252][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:36:39,060 [DEBUG][       Thread-609252][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:36:39,060 [DEBUG][       Thread-609252][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:36:39,060 [DEBUG][       Thread-609252][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:36:39,060 [DEBUG][       Thread-609252][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:36:39,060 [DEBUG][       Thread-609252][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:36:39,060 [DEBUG][       Thread-609252][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:36:39,060 [DEBUG][       Thread-609252][   transport.py][1871] : client lang: <none>
2025-07-01 15:36:39,060 [DEBUG][       Thread-609252][   transport.py][1871] : server lang: <none>
2025-07-01 15:36:39,060 [DEBUG][       Thread-609252][   transport.py][1871] : kex follows: False
2025-07-01 15:36:39,060 [DEBUG][       Thread-609252][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:36:39,060 [DEBUG][       Thread-609252][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:36:39,060 [DEBUG][       Thread-609252][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:36:39,060 [DEBUG][       Thread-609252][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:36:39,060 [DEBUG][       Thread-609252][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:36:39,060 [DEBUG][       Thread-609252][   transport.py][1871] : Compression: none
2025-07-01 15:36:39,060 [DEBUG][       Thread-609252][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:36:39,077 [DEBUG][       Thread-609252][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:36:39,077 [DEBUG][       Thread-609252][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:36:39,078 [DEBUG][       Thread-609252][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:36:39,078 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:36:39,078 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:36:39,080 [DEBUG][       Thread-609252][   transport.py][1871] : userauth is OK
2025-07-01 15:36:39,093 [ INFO][       Thread-609252][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:36:39,094 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:36:39,739 [DEBUG][       Thread-609252][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:36:39,739 [DEBUG][       Thread-609252][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:36:39,781 [DEBUG][       Thread-609252][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:36:39,781 [DEBUG][       Thread-609252][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:36:39,784 [DEBUG][       Thread-609252][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:36:39,799 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:36:39,799 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:36:39,801 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:36:39,803 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:36:39,809 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:36:39,811 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:36:39,811 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:36:39,812 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:36:39,812 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.566606 -999.00  +13.60  31.40     51   +3.80 1 1 2 1 1   887    0 9.86 -6.77 ----- 31.9 31.4 19.4 42.3 15.5 -24.1 15.0 -24.3 15.2 -23.4 15.8 -22.6
2025-07-01 15:36:39,812 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:36:39,813 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:36:39,813 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.566606
2025-07-01 15:36:39,813 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:36:39,814 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:36:39,814 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:36:39,814 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:36:39,814 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:36:39,814 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:36:10', tmtdew=11.26, humidity=46.45, cloud=0.0, wind=38.46, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:35:54.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:36:39,814 [DEBUG][       Thread-609252][   transport.py][1871] : EOF in transport thread
2025-07-01 15:36:39,900 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:36:39,911 [DEBUG][       Thread-609255][   transport.py][1871] : starting thread (client mode): 0x8a65e70
2025-07-01 15:36:39,911 [DEBUG][       Thread-609255][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:36:39,927 [DEBUG][       Thread-609255][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:36:39,928 [ INFO][       Thread-609255][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:36:39,935 [DEBUG][       Thread-609255][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:36:39,936 [DEBUG][       Thread-609255][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:36:39,936 [DEBUG][       Thread-609255][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:36:39,936 [DEBUG][       Thread-609255][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:36:39,936 [DEBUG][       Thread-609255][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:36:39,936 [DEBUG][       Thread-609255][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:36:39,936 [DEBUG][       Thread-609255][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:36:39,936 [DEBUG][       Thread-609255][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:36:39,936 [DEBUG][       Thread-609255][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:36:39,936 [DEBUG][       Thread-609255][   transport.py][1871] : client lang: <none>
2025-07-01 15:36:39,936 [DEBUG][       Thread-609255][   transport.py][1871] : server lang: <none>
2025-07-01 15:36:39,936 [DEBUG][       Thread-609255][   transport.py][1871] : kex follows: False
2025-07-01 15:36:39,936 [DEBUG][       Thread-609255][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:36:39,936 [DEBUG][       Thread-609255][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:36:39,936 [DEBUG][       Thread-609255][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:36:39,936 [DEBUG][       Thread-609255][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:36:39,936 [DEBUG][       Thread-609255][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:36:39,936 [DEBUG][       Thread-609255][   transport.py][1871] : Compression: none
2025-07-01 15:36:39,936 [DEBUG][       Thread-609255][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:36:39,994 [DEBUG][       Thread-609255][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:36:39,994 [DEBUG][       Thread-609255][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:36:39,995 [DEBUG][       Thread-609255][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:36:39,995 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:36:39,996 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:36:40,049 [DEBUG][       Thread-609255][   transport.py][1871] : userauth is OK
2025-07-01 15:36:40,049 [DEBUG][       Thread-609255][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:36:40,050 [DEBUG][       Thread-609255][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:36:40,050 [DEBUG][       Thread-609255][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:36:40,050 [DEBUG][       Thread-609255][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:36:40,069 [ INFO][       Thread-609255][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:36:40,070 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:36:40,070 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:36:41,088 [DEBUG][       Thread-609255][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:36:41,089 [DEBUG][       Thread-609255][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:36:41,139 [DEBUG][       Thread-609255][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:36:41,139 [DEBUG][       Thread-609255][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:36:41,148 [DEBUG][       Thread-609255][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:36:41,156 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:36:41,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')
2025-07-01 15:36:41,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-07-01 15:36:41,172 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:36:41,172 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:36:41,172 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:36:41,180 [DEBUG][       Thread-609255][   transport.py][1871] : EOF in transport thread
2025-07-01 15:36:45,569 [DEBUG][Thread-609257 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:36:51,183 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:36:51,183 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:36:51,192 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:36:51,195 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 15:36:51,705 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 36, 41), 11.25, 46.48, 0.0, 42.27, 13.76, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:36:51,705 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:36:41
2025-07-01 15:36:51,791 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:36:51,795 [DEBUG][       Thread-609258][   transport.py][1871] : starting thread (client mode): 0x8170340
2025-07-01 15:36:51,795 [DEBUG][       Thread-609258][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:36:51,814 [DEBUG][       Thread-609258][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:36:51,815 [ INFO][       Thread-609258][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:36:51,818 [DEBUG][       Thread-609258][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:36:51,818 [DEBUG][       Thread-609258][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:36:51,818 [DEBUG][       Thread-609258][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:36:51,818 [DEBUG][       Thread-609258][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:36:51,818 [DEBUG][       Thread-609258][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:36:51,818 [DEBUG][       Thread-609258][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:36:51,819 [DEBUG][       Thread-609258][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:36:51,819 [DEBUG][       Thread-609258][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:36:51,819 [DEBUG][       Thread-609258][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:36:51,819 [DEBUG][       Thread-609258][   transport.py][1871] : client lang: <none>
2025-07-01 15:36:51,819 [DEBUG][       Thread-609258][   transport.py][1871] : server lang: <none>
2025-07-01 15:36:51,819 [DEBUG][       Thread-609258][   transport.py][1871] : kex follows: False
2025-07-01 15:36:51,819 [DEBUG][       Thread-609258][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:36:51,819 [DEBUG][       Thread-609258][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:36:51,819 [DEBUG][       Thread-609258][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:36:51,819 [DEBUG][       Thread-609258][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:36:51,819 [DEBUG][       Thread-609258][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:36:51,819 [DEBUG][       Thread-609258][   transport.py][1871] : Compression: none
2025-07-01 15:36:51,819 [DEBUG][       Thread-609258][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:36:51,834 [DEBUG][       Thread-609258][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:36:51,834 [DEBUG][       Thread-609258][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:36:51,835 [DEBUG][       Thread-609258][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:36:51,835 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:36:51,835 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:36:51,836 [DEBUG][       Thread-609258][   transport.py][1871] : userauth is OK
2025-07-01 15:36:51,861 [ INFO][       Thread-609258][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:36:51,861 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:36:52,510 [DEBUG][       Thread-609258][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:36:52,510 [DEBUG][       Thread-609258][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:36:52,553 [DEBUG][       Thread-609258][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:36:52,553 [DEBUG][       Thread-609258][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:36:52,557 [DEBUG][       Thread-609258][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:36:52,568 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:36:52,569 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:36:52,571 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:36:52,573 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:36:52,579 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:36:52,581 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:36:52,581 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:36:52,582 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:36:52,582 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.566606 -999.00  +13.60  31.40     51   +3.80 1 1 2 1 1   887    0 9.86 -6.77 ----- 31.9 31.4 19.4 42.3 15.5 -24.1 15.0 -24.3 15.2 -23.4 15.8 -22.6
2025-07-01 15:36:52,582 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:36:52,582 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:36:52,582 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.566606
2025-07-01 15:36:52,583 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:36:52,583 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:36:52,583 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:36:52,583 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:36:52,583 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:36:52,584 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:36:41', tmtdew=11.25, humidity=46.48, cloud=0.0, wind=42.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:35:54.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:36:52,585 [DEBUG][       Thread-609258][   transport.py][1871] : EOF in transport thread
2025-07-01 15:36:52,667 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:36:52,677 [DEBUG][       Thread-609261][   transport.py][1871] : starting thread (client mode): 0x8157820
2025-07-01 15:36:52,677 [DEBUG][       Thread-609261][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:36:52,693 [DEBUG][       Thread-609261][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:36:52,693 [ INFO][       Thread-609261][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:36:52,700 [DEBUG][       Thread-609261][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:36:52,700 [DEBUG][       Thread-609261][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:36:52,700 [DEBUG][       Thread-609261][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:36:52,701 [DEBUG][       Thread-609261][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:36:52,701 [DEBUG][       Thread-609261][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:36:52,701 [DEBUG][       Thread-609261][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:36:52,701 [DEBUG][       Thread-609261][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:36:52,701 [DEBUG][       Thread-609261][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:36:52,701 [DEBUG][       Thread-609261][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:36:52,701 [DEBUG][       Thread-609261][   transport.py][1871] : client lang: <none>
2025-07-01 15:36:52,701 [DEBUG][       Thread-609261][   transport.py][1871] : server lang: <none>
2025-07-01 15:36:52,701 [DEBUG][       Thread-609261][   transport.py][1871] : kex follows: False
2025-07-01 15:36:52,701 [DEBUG][       Thread-609261][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:36:52,701 [DEBUG][       Thread-609261][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:36:52,701 [DEBUG][       Thread-609261][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:36:52,701 [DEBUG][       Thread-609261][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:36:52,701 [DEBUG][       Thread-609261][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:36:52,701 [DEBUG][       Thread-609261][   transport.py][1871] : Compression: none
2025-07-01 15:36:52,701 [DEBUG][       Thread-609261][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:36:52,761 [DEBUG][       Thread-609261][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:36:52,761 [DEBUG][       Thread-609261][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:36:52,762 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:36:52,763 [DEBUG][       Thread-609261][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:36:52,764 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:36:52,816 [DEBUG][       Thread-609261][   transport.py][1871] : userauth is OK
2025-07-01 15:36:52,817 [DEBUG][       Thread-609261][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:36:52,817 [DEBUG][       Thread-609261][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:36:52,817 [DEBUG][       Thread-609261][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:36:52,817 [DEBUG][       Thread-609261][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:36:52,850 [ INFO][       Thread-609261][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:36:52,850 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:36:52,850 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:36:53,871 [DEBUG][       Thread-609261][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:36:53,871 [DEBUG][       Thread-609261][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:36:53,921 [DEBUG][       Thread-609261][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:36:53,921 [DEBUG][       Thread-609261][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:36:53,933 [DEBUG][       Thread-609261][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:36:53,942 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:36:53,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-07-01 15:36:53,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-07-01 15:36:53,964 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:36:53,965 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:36:53,965 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:36:53,975 [DEBUG][       Thread-609261][   transport.py][1871] : EOF in transport thread
2025-07-01 15:36:54,613 [DEBUG][Thread-609263 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:37:03,647 [DEBUG][Thread-609264 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:37:03,976 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:37:03,976 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:37:03,976 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:37:03,979 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 15:37:04,477 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 36, 41), 11.25, 46.48, 0.0, 42.27, 13.76, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:37:04,478 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:36:41
2025-07-01 15:37:04,564 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:37:04,568 [DEBUG][       Thread-609265][   transport.py][1871] : starting thread (client mode): 0x81d8460
2025-07-01 15:37:04,568 [DEBUG][       Thread-609265][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:37:04,588 [DEBUG][       Thread-609265][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:37:04,588 [ INFO][       Thread-609265][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:37:04,592 [DEBUG][       Thread-609265][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:37:04,592 [DEBUG][       Thread-609265][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:37:04,592 [DEBUG][       Thread-609265][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:37:04,592 [DEBUG][       Thread-609265][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:37:04,592 [DEBUG][       Thread-609265][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:37:04,592 [DEBUG][       Thread-609265][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:37:04,592 [DEBUG][       Thread-609265][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:37:04,592 [DEBUG][       Thread-609265][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:37:04,592 [DEBUG][       Thread-609265][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:37:04,592 [DEBUG][       Thread-609265][   transport.py][1871] : client lang: <none>
2025-07-01 15:37:04,592 [DEBUG][       Thread-609265][   transport.py][1871] : server lang: <none>
2025-07-01 15:37:04,592 [DEBUG][       Thread-609265][   transport.py][1871] : kex follows: False
2025-07-01 15:37:04,592 [DEBUG][       Thread-609265][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:37:04,592 [DEBUG][       Thread-609265][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:37:04,592 [DEBUG][       Thread-609265][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:37:04,592 [DEBUG][       Thread-609265][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:37:04,592 [DEBUG][       Thread-609265][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:37:04,592 [DEBUG][       Thread-609265][   transport.py][1871] : Compression: none
2025-07-01 15:37:04,592 [DEBUG][       Thread-609265][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:37:04,607 [DEBUG][       Thread-609265][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:37:04,608 [DEBUG][       Thread-609265][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:37:04,609 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:37:04,609 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:37:04,609 [DEBUG][       Thread-609265][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:37:04,610 [DEBUG][       Thread-609265][   transport.py][1871] : userauth is OK
2025-07-01 15:37:04,623 [ INFO][       Thread-609265][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:37:04,623 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:37:05,232 [DEBUG][       Thread-609265][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:37:05,232 [DEBUG][       Thread-609265][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:37:05,273 [DEBUG][       Thread-609265][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:37:05,273 [DEBUG][       Thread-609265][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:37:05,276 [DEBUG][       Thread-609265][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:37:05,287 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:37:05,287 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:37:05,289 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:37:05,291 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:37:05,296 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:37:05,297 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:37:05,298 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:37:05,298 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:37:05,298 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.566954 -999.00  +13.50  38.21     51   +3.70 1 1 2 1 1   887    0 9.64 -6.51 ----- 34.5 38.2 358.5 51.7 15.5 -24.4 15.0 -24.5 15.2 -23.9 15.8 -25.1
2025-07-01 15:37:05,298 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:37:05,299 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:37:05,299 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.566954
2025-07-01 15:37:05,299 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:37:05,300 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:37:05,300 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:37:05,300 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:37:05,300 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:37:05,300 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:36:41', tmtdew=11.25, humidity=46.48, cloud=0.0, wind=42.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:36:24.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:37:05,301 [DEBUG][       Thread-609265][   transport.py][1871] : EOF in transport thread
2025-07-01 15:37:05,383 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:37:05,395 [DEBUG][       Thread-609268][   transport.py][1871] : starting thread (client mode): 0x81ca140
2025-07-01 15:37:05,395 [DEBUG][       Thread-609268][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:37:05,410 [DEBUG][       Thread-609268][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:37:05,410 [ INFO][       Thread-609268][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:37:05,418 [DEBUG][       Thread-609268][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:37:05,418 [DEBUG][       Thread-609268][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:37:05,418 [DEBUG][       Thread-609268][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:37:05,418 [DEBUG][       Thread-609268][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:37:05,418 [DEBUG][       Thread-609268][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:37:05,418 [DEBUG][       Thread-609268][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:37:05,418 [DEBUG][       Thread-609268][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:37:05,418 [DEBUG][       Thread-609268][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:37:05,418 [DEBUG][       Thread-609268][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:37:05,418 [DEBUG][       Thread-609268][   transport.py][1871] : client lang: <none>
2025-07-01 15:37:05,419 [DEBUG][       Thread-609268][   transport.py][1871] : server lang: <none>
2025-07-01 15:37:05,419 [DEBUG][       Thread-609268][   transport.py][1871] : kex follows: False
2025-07-01 15:37:05,419 [DEBUG][       Thread-609268][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:37:05,419 [DEBUG][       Thread-609268][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:37:05,419 [DEBUG][       Thread-609268][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:37:05,419 [DEBUG][       Thread-609268][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:37:05,419 [DEBUG][       Thread-609268][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:37:05,419 [DEBUG][       Thread-609268][   transport.py][1871] : Compression: none
2025-07-01 15:37:05,419 [DEBUG][       Thread-609268][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:37:05,476 [DEBUG][       Thread-609268][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:37:05,476 [DEBUG][       Thread-609268][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:37:05,477 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:37:05,477 [DEBUG][       Thread-609268][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:37:05,478 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:37:05,531 [DEBUG][       Thread-609268][   transport.py][1871] : userauth is OK
2025-07-01 15:37:05,531 [DEBUG][       Thread-609268][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:37:05,531 [DEBUG][       Thread-609268][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:37:05,531 [DEBUG][       Thread-609268][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:37:05,531 [DEBUG][       Thread-609268][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:37:05,545 [ INFO][       Thread-609268][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:37:05,545 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:37:05,545 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:37:06,566 [DEBUG][       Thread-609268][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:37:06,567 [DEBUG][       Thread-609268][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:37:06,616 [DEBUG][       Thread-609268][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:37:06,616 [DEBUG][       Thread-609268][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:37:06,625 [DEBUG][       Thread-609268][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:37:06,635 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:37:06,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-07-01 15:37:06,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-07-01 15:37:06,660 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:37:06,661 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:37:06,661 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:37:06,669 [DEBUG][       Thread-609268][   transport.py][1871] : EOF in transport thread
2025-07-01 15:37:12,665 [DEBUG][Thread-609270 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:37:16,672 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:37:16,672 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:37:16,672 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:37:16,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-07-01 15:37:17,183 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 37, 13), 11.21, 46.5, 0.0, 38.41, 13.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:37:17,183 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:37:13
2025-07-01 15:37:17,268 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:37:17,272 [DEBUG][       Thread-609271][   transport.py][1871] : starting thread (client mode): 0x81cad10
2025-07-01 15:37:17,272 [DEBUG][       Thread-609271][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:37:17,293 [DEBUG][       Thread-609271][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:37:17,293 [ INFO][       Thread-609271][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:37:17,296 [DEBUG][       Thread-609271][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:37:17,296 [DEBUG][       Thread-609271][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:37:17,296 [DEBUG][       Thread-609271][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:37:17,296 [DEBUG][       Thread-609271][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:37:17,296 [DEBUG][       Thread-609271][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:37:17,296 [DEBUG][       Thread-609271][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:37:17,296 [DEBUG][       Thread-609271][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:37:17,296 [DEBUG][       Thread-609271][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:37:17,296 [DEBUG][       Thread-609271][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:37:17,296 [DEBUG][       Thread-609271][   transport.py][1871] : client lang: <none>
2025-07-01 15:37:17,296 [DEBUG][       Thread-609271][   transport.py][1871] : server lang: <none>
2025-07-01 15:37:17,296 [DEBUG][       Thread-609271][   transport.py][1871] : kex follows: False
2025-07-01 15:37:17,296 [DEBUG][       Thread-609271][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:37:17,296 [DEBUG][       Thread-609271][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:37:17,297 [DEBUG][       Thread-609271][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:37:17,297 [DEBUG][       Thread-609271][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:37:17,297 [DEBUG][       Thread-609271][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:37:17,297 [DEBUG][       Thread-609271][   transport.py][1871] : Compression: none
2025-07-01 15:37:17,297 [DEBUG][       Thread-609271][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:37:17,313 [DEBUG][       Thread-609271][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:37:17,314 [DEBUG][       Thread-609271][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:37:17,315 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:37:17,315 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:37:17,315 [DEBUG][       Thread-609271][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:37:17,316 [DEBUG][       Thread-609271][   transport.py][1871] : userauth is OK
2025-07-01 15:37:17,329 [ INFO][       Thread-609271][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:37:17,330 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:37:17,977 [DEBUG][       Thread-609271][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:37:17,977 [DEBUG][       Thread-609271][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:37:18,021 [DEBUG][       Thread-609271][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:37:18,021 [DEBUG][       Thread-609271][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:37:18,024 [DEBUG][       Thread-609271][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:37:18,038 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:37:18,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:37:18,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:37:18,041 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:37:18,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:37:18,048 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:37:18,048 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:37:18,049 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:37:18,049 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.566954 -999.00  +13.50  38.21     51   +3.70 1 1 2 1 1   887    0 9.64 -6.51 ----- 34.5 38.2 358.5 51.7 15.5 -24.4 15.0 -24.5 15.2 -23.9 15.8 -25.1
2025-07-01 15:37:18,049 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:37:18,049 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:37:18,049 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.566954
2025-07-01 15:37:18,049 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:37:18,050 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:37:18,050 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:37:18,050 [DEBUG][       Thread-609271][   transport.py][1871] : EOF in transport thread
2025-07-01 15:37:18,050 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:37:18,051 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:37:18,051 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:37:13', tmtdew=11.21, humidity=46.5, cloud=0.0, wind=38.41, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:36:24.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:37:18,134 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:37:18,143 [DEBUG][       Thread-609274][   transport.py][1871] : starting thread (client mode): 0x8a65e70
2025-07-01 15:37:18,143 [DEBUG][       Thread-609274][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:37:18,158 [DEBUG][       Thread-609274][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:37:18,158 [ INFO][       Thread-609274][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:37:18,166 [DEBUG][       Thread-609274][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:37:18,166 [DEBUG][       Thread-609274][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:37:18,166 [DEBUG][       Thread-609274][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:37:18,166 [DEBUG][       Thread-609274][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:37:18,166 [DEBUG][       Thread-609274][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:37:18,166 [DEBUG][       Thread-609274][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:37:18,166 [DEBUG][       Thread-609274][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:37:18,166 [DEBUG][       Thread-609274][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:37:18,166 [DEBUG][       Thread-609274][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:37:18,166 [DEBUG][       Thread-609274][   transport.py][1871] : client lang: <none>
2025-07-01 15:37:18,166 [DEBUG][       Thread-609274][   transport.py][1871] : server lang: <none>
2025-07-01 15:37:18,167 [DEBUG][       Thread-609274][   transport.py][1871] : kex follows: False
2025-07-01 15:37:18,167 [DEBUG][       Thread-609274][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:37:18,167 [DEBUG][       Thread-609274][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:37:18,167 [DEBUG][       Thread-609274][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:37:18,167 [DEBUG][       Thread-609274][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:37:18,167 [DEBUG][       Thread-609274][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:37:18,167 [DEBUG][       Thread-609274][   transport.py][1871] : Compression: none
2025-07-01 15:37:18,167 [DEBUG][       Thread-609274][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:37:18,226 [DEBUG][       Thread-609274][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:37:18,227 [DEBUG][       Thread-609274][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:37:18,227 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:37:18,228 [DEBUG][       Thread-609274][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:37:18,228 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:37:18,282 [DEBUG][       Thread-609274][   transport.py][1871] : userauth is OK
2025-07-01 15:37:18,282 [DEBUG][       Thread-609274][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:37:18,282 [DEBUG][       Thread-609274][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:37:18,282 [DEBUG][       Thread-609274][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:37:18,282 [DEBUG][       Thread-609274][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:37:18,296 [ INFO][       Thread-609274][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:37:18,296 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:37:18,296 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:37:19,294 [DEBUG][       Thread-609274][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:37:19,294 [DEBUG][       Thread-609274][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:37:19,344 [DEBUG][       Thread-609274][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:37:19,344 [DEBUG][       Thread-609274][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:37:19,353 [DEBUG][       Thread-609274][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:37:19,362 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:37:19,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-07-01 15:37:19,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-07-01 15:37:19,380 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:37:19,381 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:37:19,381 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:37:19,389 [DEBUG][       Thread-609274][   transport.py][1871] : EOF in transport thread
2025-07-01 15:37:21,685 [DEBUG][Thread-609276 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:37:29,391 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:37:29,392 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:37:29,392 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:37:29,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-07-01 15:37:29,893 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 37, 13), 11.21, 46.5, 0.0, 38.41, 13.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:37:29,893 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:37:13
2025-07-01 15:37:29,980 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:37:29,986 [DEBUG][       Thread-609277][   transport.py][1871] : starting thread (client mode): 0x8157b20
2025-07-01 15:37:29,986 [DEBUG][       Thread-609277][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:37:30,002 [DEBUG][       Thread-609277][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:37:30,002 [ INFO][       Thread-609277][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:37:30,006 [DEBUG][       Thread-609277][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:37:30,006 [DEBUG][       Thread-609277][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:37:30,006 [DEBUG][       Thread-609277][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:37:30,006 [DEBUG][       Thread-609277][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:37:30,006 [DEBUG][       Thread-609277][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:37:30,006 [DEBUG][       Thread-609277][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:37:30,006 [DEBUG][       Thread-609277][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:37:30,006 [DEBUG][       Thread-609277][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:37:30,006 [DEBUG][       Thread-609277][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:37:30,006 [DEBUG][       Thread-609277][   transport.py][1871] : client lang: <none>
2025-07-01 15:37:30,006 [DEBUG][       Thread-609277][   transport.py][1871] : server lang: <none>
2025-07-01 15:37:30,006 [DEBUG][       Thread-609277][   transport.py][1871] : kex follows: False
2025-07-01 15:37:30,006 [DEBUG][       Thread-609277][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:37:30,006 [DEBUG][       Thread-609277][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:37:30,006 [DEBUG][       Thread-609277][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:37:30,006 [DEBUG][       Thread-609277][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:37:30,006 [DEBUG][       Thread-609277][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:37:30,006 [DEBUG][       Thread-609277][   transport.py][1871] : Compression: none
2025-07-01 15:37:30,006 [DEBUG][       Thread-609277][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:37:30,023 [DEBUG][       Thread-609277][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:37:30,024 [DEBUG][       Thread-609277][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:37:30,024 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:37:30,025 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:37:30,025 [DEBUG][       Thread-609277][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:37:30,026 [DEBUG][       Thread-609277][   transport.py][1871] : userauth is OK
2025-07-01 15:37:30,050 [ INFO][       Thread-609277][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:37:30,051 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:37:30,719 [DEBUG][Thread-609279 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:37:30,726 [DEBUG][       Thread-609277][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:37:30,726 [DEBUG][       Thread-609277][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:37:30,768 [DEBUG][       Thread-609277][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:37:30,768 [DEBUG][       Thread-609277][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:37:30,771 [DEBUG][       Thread-609277][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:37:30,782 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:37:30,782 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:37:30,783 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:37:30,785 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:37:30,788 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:37:30,789 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:37:30,789 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:37:30,789 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:37:30,789 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.567301 -999.00  +13.50  28.43     51   +3.70 1 1 1 1 1   887    0 9.68 -7.09 ----- 33.5 28.4 20.0 47.2 15.4 -24.3 15.0 -24.3 15.1 -23.7 15.5 -25.1
2025-07-01 15:37:30,789 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:37:30,789 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:37:30,789 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.567301
2025-07-01 15:37:30,789 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:37:30,789 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:37:30,789 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:37:30,789 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:37:30,789 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:37:30,789 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:37:13', tmtdew=11.21, humidity=46.5, cloud=0.0, wind=38.41, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:36:54.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:37:30,790 [DEBUG][       Thread-609277][   transport.py][1871] : EOF in transport thread
2025-07-01 15:37:30,860 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:37:30,872 [DEBUG][       Thread-609281][   transport.py][1871] : starting thread (client mode): 0x474e8130
2025-07-01 15:37:30,872 [DEBUG][       Thread-609281][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:37:30,888 [DEBUG][       Thread-609281][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:37:30,888 [ INFO][       Thread-609281][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:37:30,895 [DEBUG][       Thread-609281][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:37:30,896 [DEBUG][       Thread-609281][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:37:30,896 [DEBUG][       Thread-609281][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:37:30,896 [DEBUG][       Thread-609281][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:37:30,896 [DEBUG][       Thread-609281][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:37:30,896 [DEBUG][       Thread-609281][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:37:30,896 [DEBUG][       Thread-609281][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:37:30,896 [DEBUG][       Thread-609281][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:37:30,896 [DEBUG][       Thread-609281][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:37:30,896 [DEBUG][       Thread-609281][   transport.py][1871] : client lang: <none>
2025-07-01 15:37:30,896 [DEBUG][       Thread-609281][   transport.py][1871] : server lang: <none>
2025-07-01 15:37:30,896 [DEBUG][       Thread-609281][   transport.py][1871] : kex follows: False
2025-07-01 15:37:30,896 [DEBUG][       Thread-609281][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:37:30,896 [DEBUG][       Thread-609281][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:37:30,896 [DEBUG][       Thread-609281][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:37:30,896 [DEBUG][       Thread-609281][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:37:30,896 [DEBUG][       Thread-609281][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:37:30,897 [DEBUG][       Thread-609281][   transport.py][1871] : Compression: none
2025-07-01 15:37:30,897 [DEBUG][       Thread-609281][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:37:30,954 [DEBUG][       Thread-609281][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:37:30,954 [DEBUG][       Thread-609281][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:37:30,955 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:37:30,956 [DEBUG][       Thread-609281][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:37:30,956 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:37:31,009 [DEBUG][       Thread-609281][   transport.py][1871] : userauth is OK
2025-07-01 15:37:31,010 [DEBUG][       Thread-609281][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:37:31,010 [DEBUG][       Thread-609281][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:37:31,010 [DEBUG][       Thread-609281][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:37:31,010 [DEBUG][       Thread-609281][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:37:31,031 [ INFO][       Thread-609281][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:37:31,031 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:37:31,031 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:37:32,070 [DEBUG][       Thread-609281][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:37:32,071 [DEBUG][       Thread-609281][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:37:32,120 [DEBUG][       Thread-609281][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:37:32,120 [DEBUG][       Thread-609281][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:37:32,129 [DEBUG][       Thread-609281][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:37:32,138 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:37:32,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-07-01 15:37:32,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') -> 00000000
2025-07-01 15:37:32,157 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:37:32,157 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:37:32,157 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:37:32,165 [DEBUG][       Thread-609281][   transport.py][1871] : EOF in transport thread
2025-07-01 15:37:37,120 [DEBUG][Thread-609283 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:37:39,740 [DEBUG][Thread-609284 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:37:42,164 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:37:42,164 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:37:42,164 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:37:42,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-07-01 15:37:42,666 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 37, 13), 11.21, 46.5, 0.0, 38.41, 13.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:37:42,667 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:37:13
2025-07-01 15:37:42,751 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:37:42,755 [DEBUG][       Thread-609285][   transport.py][1871] : starting thread (client mode): 0x81e56c0
2025-07-01 15:37:42,755 [DEBUG][       Thread-609285][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:37:42,776 [DEBUG][       Thread-609285][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:37:42,776 [ INFO][       Thread-609285][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:37:42,780 [DEBUG][       Thread-609285][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:37:42,780 [DEBUG][       Thread-609285][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:37:42,780 [DEBUG][       Thread-609285][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:37:42,780 [DEBUG][       Thread-609285][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:37:42,780 [DEBUG][       Thread-609285][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:37:42,780 [DEBUG][       Thread-609285][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:37:42,780 [DEBUG][       Thread-609285][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:37:42,780 [DEBUG][       Thread-609285][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:37:42,780 [DEBUG][       Thread-609285][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:37:42,780 [DEBUG][       Thread-609285][   transport.py][1871] : client lang: <none>
2025-07-01 15:37:42,780 [DEBUG][       Thread-609285][   transport.py][1871] : server lang: <none>
2025-07-01 15:37:42,780 [DEBUG][       Thread-609285][   transport.py][1871] : kex follows: False
2025-07-01 15:37:42,780 [DEBUG][       Thread-609285][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:37:42,780 [DEBUG][       Thread-609285][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:37:42,780 [DEBUG][       Thread-609285][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:37:42,781 [DEBUG][       Thread-609285][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:37:42,781 [DEBUG][       Thread-609285][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:37:42,781 [DEBUG][       Thread-609285][   transport.py][1871] : Compression: none
2025-07-01 15:37:42,781 [DEBUG][       Thread-609285][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:37:42,800 [DEBUG][       Thread-609285][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:37:42,800 [DEBUG][       Thread-609285][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:37:42,801 [DEBUG][       Thread-609285][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:37:42,801 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:37:42,801 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:37:42,802 [DEBUG][       Thread-609285][   transport.py][1871] : userauth is OK
2025-07-01 15:37:42,829 [ INFO][       Thread-609285][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:37:42,829 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:37:43,430 [DEBUG][       Thread-609285][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:37:43,430 [DEBUG][       Thread-609285][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:37:43,473 [DEBUG][       Thread-609285][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:37:43,473 [DEBUG][       Thread-609285][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:37:43,475 [DEBUG][       Thread-609285][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:37:43,489 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:37:43,489 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:37:43,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:37:43,492 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:37:43,496 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:37:43,497 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:37:43,497 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:37:43,498 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:37:43,498 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.567301 -999.00  +13.50  28.43     51   +3.70 1 1 1 1 1   887    0 9.68 -7.09 ----- 33.5 28.4 20.0 47.2 15.4 -24.3 15.0 -24.3 15.1 -23.7 15.5 -25.1
2025-07-01 15:37:43,498 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:37:43,498 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:37:43,498 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.567301
2025-07-01 15:37:43,498 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:37:43,498 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:37:43,499 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:37:43,499 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:37:43,499 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:37:43,499 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:37:13', tmtdew=11.21, humidity=46.5, cloud=0.0, wind=38.41, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:36:54.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:37:43,499 [DEBUG][       Thread-609285][   transport.py][1871] : EOF in transport thread
2025-07-01 15:37:43,582 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:37:43,592 [DEBUG][       Thread-609288][   transport.py][1871] : starting thread (client mode): 0x75a9030
2025-07-01 15:37:43,592 [DEBUG][       Thread-609288][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:37:43,611 [DEBUG][       Thread-609288][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:37:43,611 [ INFO][       Thread-609288][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:37:43,619 [DEBUG][       Thread-609288][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:37:43,619 [DEBUG][       Thread-609288][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:37:43,619 [DEBUG][       Thread-609288][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:37:43,619 [DEBUG][       Thread-609288][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:37:43,619 [DEBUG][       Thread-609288][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:37:43,619 [DEBUG][       Thread-609288][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:37:43,619 [DEBUG][       Thread-609288][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:37:43,619 [DEBUG][       Thread-609288][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:37:43,619 [DEBUG][       Thread-609288][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:37:43,619 [DEBUG][       Thread-609288][   transport.py][1871] : client lang: <none>
2025-07-01 15:37:43,619 [DEBUG][       Thread-609288][   transport.py][1871] : server lang: <none>
2025-07-01 15:37:43,619 [DEBUG][       Thread-609288][   transport.py][1871] : kex follows: False
2025-07-01 15:37:43,620 [DEBUG][       Thread-609288][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:37:43,620 [DEBUG][       Thread-609288][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:37:43,620 [DEBUG][       Thread-609288][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:37:43,620 [DEBUG][       Thread-609288][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:37:43,620 [DEBUG][       Thread-609288][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:37:43,620 [DEBUG][       Thread-609288][   transport.py][1871] : Compression: none
2025-07-01 15:37:43,620 [DEBUG][       Thread-609288][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:37:43,676 [DEBUG][       Thread-609288][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:37:43,677 [DEBUG][       Thread-609288][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:37:43,677 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:37:43,678 [DEBUG][       Thread-609288][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:37:43,679 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:37:43,732 [DEBUG][       Thread-609288][   transport.py][1871] : userauth is OK
2025-07-01 15:37:43,733 [DEBUG][       Thread-609288][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:37:43,733 [DEBUG][       Thread-609288][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:37:43,733 [DEBUG][       Thread-609288][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:37:43,733 [DEBUG][       Thread-609288][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:37:43,751 [ INFO][       Thread-609288][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:37:43,751 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:37:43,751 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:37:44,794 [DEBUG][       Thread-609288][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:37:44,794 [DEBUG][       Thread-609288][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:37:44,844 [DEBUG][       Thread-609288][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:37:44,844 [DEBUG][       Thread-609288][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:37:44,853 [DEBUG][       Thread-609288][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:37:44,862 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:37:44,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-07-01 15:37:44,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-07-01 15:37:44,880 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:37:44,880 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:37:44,881 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:37:44,889 [DEBUG][       Thread-609288][   transport.py][1871] : EOF in transport thread
2025-07-01 15:37:48,763 [DEBUG][Thread-609290 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:37:54,891 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:37:54,891 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:37:54,892 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:37:54,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-07-01 15:37:55,392 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 37, 45), 11.18, 46.63, 0.0, 40.85, 13.77, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:37:55,392 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:37:45
2025-07-01 15:37:55,477 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:37:55,483 [DEBUG][       Thread-609291][   transport.py][1871] : starting thread (client mode): 0x81e73d0
2025-07-01 15:37:55,483 [DEBUG][       Thread-609291][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:37:55,504 [DEBUG][       Thread-609291][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:37:55,504 [ INFO][       Thread-609291][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:37:55,507 [DEBUG][       Thread-609291][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:37:55,507 [DEBUG][       Thread-609291][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:37:55,507 [DEBUG][       Thread-609291][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:37:55,507 [DEBUG][       Thread-609291][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:37:55,507 [DEBUG][       Thread-609291][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:37:55,507 [DEBUG][       Thread-609291][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:37:55,507 [DEBUG][       Thread-609291][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:37:55,507 [DEBUG][       Thread-609291][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:37:55,507 [DEBUG][       Thread-609291][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:37:55,507 [DEBUG][       Thread-609291][   transport.py][1871] : client lang: <none>
2025-07-01 15:37:55,507 [DEBUG][       Thread-609291][   transport.py][1871] : server lang: <none>
2025-07-01 15:37:55,507 [DEBUG][       Thread-609291][   transport.py][1871] : kex follows: False
2025-07-01 15:37:55,507 [DEBUG][       Thread-609291][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:37:55,507 [DEBUG][       Thread-609291][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:37:55,508 [DEBUG][       Thread-609291][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:37:55,508 [DEBUG][       Thread-609291][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:37:55,508 [DEBUG][       Thread-609291][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:37:55,508 [DEBUG][       Thread-609291][   transport.py][1871] : Compression: none
2025-07-01 15:37:55,508 [DEBUG][       Thread-609291][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:37:55,516 [DEBUG][       Thread-609291][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:37:55,517 [DEBUG][       Thread-609291][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:37:55,517 [DEBUG][       Thread-609291][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:37:55,517 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:37:55,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:37:55,519 [DEBUG][       Thread-609291][   transport.py][1871] : userauth is OK
2025-07-01 15:37:55,532 [ INFO][       Thread-609291][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:37:55,532 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:37:56,184 [DEBUG][       Thread-609291][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:37:56,185 [DEBUG][       Thread-609291][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:37:56,229 [DEBUG][       Thread-609291][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:37:56,229 [DEBUG][       Thread-609291][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:37:56,232 [DEBUG][       Thread-609291][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:37:56,245 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:37:56,246 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:37:56,248 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:37:56,249 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:37:56,255 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:37:56,257 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:37:56,257 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:37:56,258 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:37:56,258 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.567301 -999.00  +13.50  28.43     51   +3.70 1 1 1 1 1   887    0 9.68 -7.09 ----- 33.5 28.4 20.0 47.2 15.4 -24.3 15.0 -24.3 15.1 -23.7 15.5 -25.1
2025-07-01 15:37:56,258 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:37:56,258 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:37:56,258 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.567301
2025-07-01 15:37:56,258 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:37:56,259 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:37:56,259 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:37:56,259 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:37:56,259 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:37:56,259 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:37:45', tmtdew=11.18, humidity=46.63, cloud=0.0, wind=40.85, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:36:54.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:37:56,260 [DEBUG][       Thread-609291][   transport.py][1871] : EOF in transport thread
2025-07-01 15:37:56,343 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:37:56,354 [DEBUG][       Thread-609294][   transport.py][1871] : starting thread (client mode): 0x75abee0
2025-07-01 15:37:56,354 [DEBUG][       Thread-609294][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:37:56,370 [DEBUG][       Thread-609294][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:37:56,370 [ INFO][       Thread-609294][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:37:56,380 [DEBUG][       Thread-609294][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:37:56,381 [DEBUG][       Thread-609294][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:37:56,381 [DEBUG][       Thread-609294][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:37:56,381 [DEBUG][       Thread-609294][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:37:56,381 [DEBUG][       Thread-609294][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:37:56,381 [DEBUG][       Thread-609294][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:37:56,381 [DEBUG][       Thread-609294][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:37:56,381 [DEBUG][       Thread-609294][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:37:56,381 [DEBUG][       Thread-609294][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:37:56,381 [DEBUG][       Thread-609294][   transport.py][1871] : client lang: <none>
2025-07-01 15:37:56,381 [DEBUG][       Thread-609294][   transport.py][1871] : server lang: <none>
2025-07-01 15:37:56,381 [DEBUG][       Thread-609294][   transport.py][1871] : kex follows: False
2025-07-01 15:37:56,381 [DEBUG][       Thread-609294][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:37:56,381 [DEBUG][       Thread-609294][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:37:56,381 [DEBUG][       Thread-609294][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:37:56,381 [DEBUG][       Thread-609294][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:37:56,381 [DEBUG][       Thread-609294][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:37:56,382 [DEBUG][       Thread-609294][   transport.py][1871] : Compression: none
2025-07-01 15:37:56,382 [DEBUG][       Thread-609294][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:37:56,440 [DEBUG][       Thread-609294][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:37:56,441 [DEBUG][       Thread-609294][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:37:56,441 [DEBUG][       Thread-609294][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:37:56,441 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:37:56,442 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:37:56,496 [DEBUG][       Thread-609294][   transport.py][1871] : userauth is OK
2025-07-01 15:37:56,497 [DEBUG][       Thread-609294][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:37:56,497 [DEBUG][       Thread-609294][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:37:56,497 [DEBUG][       Thread-609294][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:37:56,497 [DEBUG][       Thread-609294][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:37:56,516 [ INFO][       Thread-609294][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:37:56,516 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:37:56,517 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:37:57,537 [DEBUG][       Thread-609294][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:37:57,538 [DEBUG][       Thread-609294][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:37:57,588 [DEBUG][       Thread-609294][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:37:57,588 [DEBUG][       Thread-609294][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:37:57,597 [DEBUG][       Thread-609294][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:37:57,607 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:37:57,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')
2025-07-01 15:37:57,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-07-01 15:37:57,626 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:37:57,626 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:37:57,626 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:37:57,635 [DEBUG][       Thread-609294][   transport.py][1871] : EOF in transport thread
2025-07-01 15:37:57,782 [DEBUG][Thread-609296 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:38:06,825 [DEBUG][Thread-609297 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:38:07,637 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:38:07,637 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:38:07,637 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:38:07,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-07-01 15:38:08,146 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 37, 45), 11.18, 46.63, 0.0, 40.85, 13.77, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:38:08,146 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:37:45
2025-07-01 15:38:08,231 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:38:08,235 [DEBUG][       Thread-609298][   transport.py][1871] : starting thread (client mode): 0x8171b40
2025-07-01 15:38:08,235 [DEBUG][       Thread-609298][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:38:08,256 [DEBUG][       Thread-609298][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:38:08,257 [ INFO][       Thread-609298][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:38:08,260 [DEBUG][       Thread-609298][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:38:08,260 [DEBUG][       Thread-609298][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:38:08,260 [DEBUG][       Thread-609298][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:38:08,260 [DEBUG][       Thread-609298][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:38:08,260 [DEBUG][       Thread-609298][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:38:08,260 [DEBUG][       Thread-609298][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:38:08,260 [DEBUG][       Thread-609298][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:38:08,260 [DEBUG][       Thread-609298][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:38:08,260 [DEBUG][       Thread-609298][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:38:08,260 [DEBUG][       Thread-609298][   transport.py][1871] : client lang: <none>
2025-07-01 15:38:08,260 [DEBUG][       Thread-609298][   transport.py][1871] : server lang: <none>
2025-07-01 15:38:08,260 [DEBUG][       Thread-609298][   transport.py][1871] : kex follows: False
2025-07-01 15:38:08,261 [DEBUG][       Thread-609298][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:38:08,261 [DEBUG][       Thread-609298][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:38:08,261 [DEBUG][       Thread-609298][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:38:08,261 [DEBUG][       Thread-609298][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:38:08,261 [DEBUG][       Thread-609298][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:38:08,261 [DEBUG][       Thread-609298][   transport.py][1871] : Compression: none
2025-07-01 15:38:08,261 [DEBUG][       Thread-609298][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:38:08,277 [DEBUG][       Thread-609298][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:38:08,277 [DEBUG][       Thread-609298][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:38:08,278 [DEBUG][       Thread-609298][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:38:08,278 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:38:08,278 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:38:08,280 [DEBUG][       Thread-609298][   transport.py][1871] : userauth is OK
2025-07-01 15:38:08,304 [ INFO][       Thread-609298][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:38:08,305 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:38:08,961 [DEBUG][       Thread-609298][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:38:08,961 [DEBUG][       Thread-609298][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:38:09,004 [DEBUG][       Thread-609298][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:38:09,005 [DEBUG][       Thread-609298][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:38:09,008 [DEBUG][       Thread-609298][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:38:09,019 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:38:09,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:38:09,021 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:38:09,023 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:38:09,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:38:09,029 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:38:09,029 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:38:09,030 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:38:09,030 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.567995 -999.00  +13.40  37.55     51   +3.70 1 1 2 1 1   887    0 9.93 -6.58 ----- 29.9 37.5 12.5 50.6 15.3 -24.5 14.9 -24.5 15.0 -23.3 15.4 -22.9
2025-07-01 15:38:09,030 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:38:09,030 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:38:09,030 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.567995
2025-07-01 15:38:09,031 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:38:09,031 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:38:09,031 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:38:09,031 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:38:09,031 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:38:09,031 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:37:45', tmtdew=11.18, humidity=46.63, cloud=0.0, wind=40.85, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:37:54.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:38:09,032 [DEBUG][       Thread-609298][   transport.py][1871] : EOF in transport thread
2025-07-01 15:38:09,108 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:38:09,117 [DEBUG][       Thread-609301][   transport.py][1871] : starting thread (client mode): 0x81c8be0
2025-07-01 15:38:09,117 [DEBUG][       Thread-609301][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:38:09,134 [DEBUG][       Thread-609301][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:38:09,134 [ INFO][       Thread-609301][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:38:09,141 [DEBUG][       Thread-609301][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:38:09,141 [DEBUG][       Thread-609301][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:38:09,141 [DEBUG][       Thread-609301][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:38:09,141 [DEBUG][       Thread-609301][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:38:09,141 [DEBUG][       Thread-609301][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:38:09,141 [DEBUG][       Thread-609301][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:38:09,141 [DEBUG][       Thread-609301][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:38:09,141 [DEBUG][       Thread-609301][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:38:09,141 [DEBUG][       Thread-609301][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:38:09,141 [DEBUG][       Thread-609301][   transport.py][1871] : client lang: <none>
2025-07-01 15:38:09,141 [DEBUG][       Thread-609301][   transport.py][1871] : server lang: <none>
2025-07-01 15:38:09,141 [DEBUG][       Thread-609301][   transport.py][1871] : kex follows: False
2025-07-01 15:38:09,141 [DEBUG][       Thread-609301][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:38:09,142 [DEBUG][       Thread-609301][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:38:09,142 [DEBUG][       Thread-609301][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:38:09,142 [DEBUG][       Thread-609301][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:38:09,142 [DEBUG][       Thread-609301][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:38:09,142 [DEBUG][       Thread-609301][   transport.py][1871] : Compression: none
2025-07-01 15:38:09,142 [DEBUG][       Thread-609301][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:38:09,204 [DEBUG][       Thread-609301][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:38:09,205 [DEBUG][       Thread-609301][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:38:09,205 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:38:09,206 [DEBUG][       Thread-609301][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:38:09,206 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:38:09,263 [DEBUG][       Thread-609301][   transport.py][1871] : userauth is OK
2025-07-01 15:38:09,263 [DEBUG][       Thread-609301][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:38:09,263 [DEBUG][       Thread-609301][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:38:09,264 [DEBUG][       Thread-609301][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:38:09,264 [DEBUG][       Thread-609301][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:38:09,283 [ INFO][       Thread-609301][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:38:09,283 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:38:09,284 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:38:10,315 [DEBUG][       Thread-609301][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:38:10,315 [DEBUG][       Thread-609301][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:38:10,364 [DEBUG][       Thread-609301][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:38:10,364 [DEBUG][       Thread-609301][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:38:10,374 [DEBUG][       Thread-609301][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:38:10,383 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:38:10,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-07-01 15:38:10,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-07-01 15:38:10,407 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:38:10,408 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:38:10,408 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:38:10,416 [DEBUG][       Thread-609301][   transport.py][1871] : EOF in transport thread
2025-07-01 15:38:15,846 [DEBUG][Thread-609303 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:38:20,418 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:38:20,419 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:38:20,419 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:38:20,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-07-01 15:38:20,931 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 38, 16), 11.16, 46.93, 0.0, 38.23, 13.77, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:38:20,932 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:38:16
2025-07-01 15:38:21,017 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:38:21,021 [DEBUG][       Thread-609304][   transport.py][1871] : starting thread (client mode): 0x8157160
2025-07-01 15:38:21,021 [DEBUG][       Thread-609304][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:38:21,040 [DEBUG][       Thread-609304][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:38:21,040 [ INFO][       Thread-609304][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:38:21,044 [DEBUG][       Thread-609304][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:38:21,044 [DEBUG][       Thread-609304][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:38:21,044 [DEBUG][       Thread-609304][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:38:21,044 [DEBUG][       Thread-609304][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:38:21,044 [DEBUG][       Thread-609304][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:38:21,044 [DEBUG][       Thread-609304][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:38:21,044 [DEBUG][       Thread-609304][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:38:21,044 [DEBUG][       Thread-609304][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:38:21,044 [DEBUG][       Thread-609304][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:38:21,044 [DEBUG][       Thread-609304][   transport.py][1871] : client lang: <none>
2025-07-01 15:38:21,044 [DEBUG][       Thread-609304][   transport.py][1871] : server lang: <none>
2025-07-01 15:38:21,044 [DEBUG][       Thread-609304][   transport.py][1871] : kex follows: False
2025-07-01 15:38:21,044 [DEBUG][       Thread-609304][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:38:21,044 [DEBUG][       Thread-609304][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:38:21,044 [DEBUG][       Thread-609304][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:38:21,044 [DEBUG][       Thread-609304][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:38:21,044 [DEBUG][       Thread-609304][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:38:21,044 [DEBUG][       Thread-609304][   transport.py][1871] : Compression: none
2025-07-01 15:38:21,044 [DEBUG][       Thread-609304][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:38:21,062 [DEBUG][       Thread-609304][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:38:21,062 [DEBUG][       Thread-609304][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:38:21,063 [DEBUG][       Thread-609304][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:38:21,063 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:38:21,063 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:38:21,064 [DEBUG][       Thread-609304][   transport.py][1871] : userauth is OK
2025-07-01 15:38:21,077 [ INFO][       Thread-609304][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:38:21,077 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:38:21,724 [DEBUG][       Thread-609304][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:38:21,724 [DEBUG][       Thread-609304][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:38:21,765 [DEBUG][       Thread-609304][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:38:21,765 [DEBUG][       Thread-609304][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:38:21,768 [DEBUG][       Thread-609304][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:38:21,780 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:38:21,781 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:38:21,783 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:38:21,785 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:38:21,790 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:38:21,791 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:38:21,791 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:38:21,792 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:38:21,792 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.567995 -999.00  +13.40  37.55     51   +3.70 1 1 2 1 1   887    0 9.93 -6.58 ----- 29.9 37.5 12.5 50.6 15.3 -24.5 14.9 -24.5 15.0 -23.3 15.4 -22.9
2025-07-01 15:38:21,792 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:38:21,792 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:38:21,792 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.567995
2025-07-01 15:38:21,793 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:38:21,793 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:38:21,793 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:38:21,794 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:38:21,794 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:38:21,794 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:38:16', tmtdew=11.16, humidity=46.93, cloud=0.0, wind=38.23, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:37:54.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:38:21,795 [DEBUG][       Thread-609304][   transport.py][1871] : EOF in transport thread
2025-07-01 15:38:21,877 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:38:21,887 [DEBUG][       Thread-609307][   transport.py][1871] : starting thread (client mode): 0x81db460
2025-07-01 15:38:21,887 [DEBUG][       Thread-609307][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:38:21,902 [DEBUG][       Thread-609307][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:38:21,902 [ INFO][       Thread-609307][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:38:21,909 [DEBUG][       Thread-609307][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:38:21,910 [DEBUG][       Thread-609307][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:38:21,910 [DEBUG][       Thread-609307][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:38:21,910 [DEBUG][       Thread-609307][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:38:21,910 [DEBUG][       Thread-609307][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:38:21,910 [DEBUG][       Thread-609307][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:38:21,910 [DEBUG][       Thread-609307][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:38:21,910 [DEBUG][       Thread-609307][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:38:21,910 [DEBUG][       Thread-609307][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:38:21,910 [DEBUG][       Thread-609307][   transport.py][1871] : client lang: <none>
2025-07-01 15:38:21,910 [DEBUG][       Thread-609307][   transport.py][1871] : server lang: <none>
2025-07-01 15:38:21,910 [DEBUG][       Thread-609307][   transport.py][1871] : kex follows: False
2025-07-01 15:38:21,910 [DEBUG][       Thread-609307][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:38:21,910 [DEBUG][       Thread-609307][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:38:21,910 [DEBUG][       Thread-609307][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:38:21,910 [DEBUG][       Thread-609307][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:38:21,910 [DEBUG][       Thread-609307][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:38:21,910 [DEBUG][       Thread-609307][   transport.py][1871] : Compression: none
2025-07-01 15:38:21,910 [DEBUG][       Thread-609307][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:38:21,970 [DEBUG][       Thread-609307][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:38:21,971 [DEBUG][       Thread-609307][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:38:21,972 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:38:21,972 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:38:21,973 [DEBUG][       Thread-609307][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:38:22,026 [DEBUG][       Thread-609307][   transport.py][1871] : userauth is OK
2025-07-01 15:38:22,026 [DEBUG][       Thread-609307][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:38:22,026 [DEBUG][       Thread-609307][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:38:22,027 [DEBUG][       Thread-609307][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:38:22,027 [DEBUG][       Thread-609307][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:38:22,050 [ INFO][       Thread-609307][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:38:22,050 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:38:22,051 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:38:23,055 [DEBUG][       Thread-609307][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:38:23,055 [DEBUG][       Thread-609307][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:38:23,103 [DEBUG][       Thread-609307][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:38:23,104 [DEBUG][       Thread-609307][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:38:23,113 [DEBUG][       Thread-609307][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:38:23,121 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:38:23,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-07-01 15:38:23,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-07-01 15:38:23,138 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:38:23,138 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:38:23,139 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:38:23,148 [DEBUG][       Thread-609307][   transport.py][1871] : EOF in transport thread
2025-07-01 15:38:24,864 [DEBUG][Thread-609309 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:38:33,148 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:38:33,148 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:38:33,148 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:38:33,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-07-01 15:38:33,644 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 38, 16), 11.16, 46.93, 0.0, 38.23, 13.77, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:38:33,644 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:38:16
2025-07-01 15:38:33,731 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:38:33,735 [DEBUG][       Thread-609310][   transport.py][1871] : starting thread (client mode): 0x81da740
2025-07-01 15:38:33,735 [DEBUG][       Thread-609310][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:38:33,748 [DEBUG][       Thread-609310][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:38:33,748 [ INFO][       Thread-609310][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:38:33,750 [DEBUG][       Thread-609310][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:38:33,750 [DEBUG][       Thread-609310][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:38:33,750 [DEBUG][       Thread-609310][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:38:33,750 [DEBUG][       Thread-609310][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:38:33,750 [DEBUG][       Thread-609310][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:38:33,751 [DEBUG][       Thread-609310][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:38:33,751 [DEBUG][       Thread-609310][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:38:33,751 [DEBUG][       Thread-609310][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:38:33,751 [DEBUG][       Thread-609310][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:38:33,751 [DEBUG][       Thread-609310][   transport.py][1871] : client lang: <none>
2025-07-01 15:38:33,751 [DEBUG][       Thread-609310][   transport.py][1871] : server lang: <none>
2025-07-01 15:38:33,751 [DEBUG][       Thread-609310][   transport.py][1871] : kex follows: False
2025-07-01 15:38:33,751 [DEBUG][       Thread-609310][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:38:33,751 [DEBUG][       Thread-609310][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:38:33,751 [DEBUG][       Thread-609310][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:38:33,751 [DEBUG][       Thread-609310][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:38:33,751 [DEBUG][       Thread-609310][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:38:33,751 [DEBUG][       Thread-609310][   transport.py][1871] : Compression: none
2025-07-01 15:38:33,751 [DEBUG][       Thread-609310][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:38:33,759 [DEBUG][       Thread-609310][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:38:33,760 [DEBUG][       Thread-609310][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:38:33,760 [DEBUG][       Thread-609310][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:38:33,760 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:38:33,760 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:38:33,761 [DEBUG][       Thread-609310][   transport.py][1871] : userauth is OK
2025-07-01 15:38:33,785 [ INFO][       Thread-609310][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:38:33,786 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:38:33,896 [DEBUG][Thread-609312 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:38:34,394 [DEBUG][       Thread-609310][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:38:34,394 [DEBUG][       Thread-609310][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:38:34,437 [DEBUG][       Thread-609310][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:38:34,437 [DEBUG][       Thread-609310][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:38:34,439 [DEBUG][       Thread-609310][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:38:34,449 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:38:34,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:38:34,451 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:38:34,453 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:38:34,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:38:34,459 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:38:34,459 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:38:34,460 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:38:34,460 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.568342 -999.00  +13.30  34.77     52   +3.70 1 1 2 1 1   887    0 9.93 -6.94 ----- 38.3 34.8 15.0 53.4 15.2 -24.2 14.8 -24.6 14.9 -23.3 15.3 -24.1
2025-07-01 15:38:34,460 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:38:34,460 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:38:34,460 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.568342
2025-07-01 15:38:34,460 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:38:34,461 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:38:34,461 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:38:34,461 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:38:34,461 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:38:34,461 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:38:16', tmtdew=11.16, humidity=46.93, cloud=0.0, wind=38.23, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:38:24.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:38:34,462 [DEBUG][       Thread-609310][   transport.py][1871] : EOF in transport thread
2025-07-01 15:38:34,545 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:38:34,556 [DEBUG][       Thread-609314][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 15:38:34,557 [DEBUG][       Thread-609314][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:38:34,572 [DEBUG][       Thread-609314][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:38:34,573 [ INFO][       Thread-609314][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:38:34,580 [DEBUG][       Thread-609314][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:38:34,580 [DEBUG][       Thread-609314][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:38:34,580 [DEBUG][       Thread-609314][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:38:34,580 [DEBUG][       Thread-609314][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:38:34,580 [DEBUG][       Thread-609314][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:38:34,580 [DEBUG][       Thread-609314][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:38:34,581 [DEBUG][       Thread-609314][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:38:34,581 [DEBUG][       Thread-609314][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:38:34,581 [DEBUG][       Thread-609314][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:38:34,581 [DEBUG][       Thread-609314][   transport.py][1871] : client lang: <none>
2025-07-01 15:38:34,581 [DEBUG][       Thread-609314][   transport.py][1871] : server lang: <none>
2025-07-01 15:38:34,581 [DEBUG][       Thread-609314][   transport.py][1871] : kex follows: False
2025-07-01 15:38:34,581 [DEBUG][       Thread-609314][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:38:34,581 [DEBUG][       Thread-609314][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:38:34,581 [DEBUG][       Thread-609314][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:38:34,581 [DEBUG][       Thread-609314][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:38:34,581 [DEBUG][       Thread-609314][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:38:34,581 [DEBUG][       Thread-609314][   transport.py][1871] : Compression: none
2025-07-01 15:38:34,581 [DEBUG][       Thread-609314][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:38:34,639 [DEBUG][       Thread-609314][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:38:34,640 [DEBUG][       Thread-609314][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:38:34,641 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:38:34,641 [DEBUG][       Thread-609314][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:38:34,642 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:38:34,698 [DEBUG][       Thread-609314][   transport.py][1871] : userauth is OK
2025-07-01 15:38:34,698 [DEBUG][       Thread-609314][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:38:34,698 [DEBUG][       Thread-609314][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:38:34,698 [DEBUG][       Thread-609314][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:38:34,698 [DEBUG][       Thread-609314][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:38:34,717 [ INFO][       Thread-609314][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:38:34,717 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:38:34,718 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:38:35,751 [DEBUG][       Thread-609314][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:38:35,752 [DEBUG][       Thread-609314][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:38:35,804 [DEBUG][       Thread-609314][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:38:35,804 [DEBUG][       Thread-609314][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:38:35,814 [DEBUG][       Thread-609314][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:38:35,828 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:38:35,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-07-01 15:38:35,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') -> 00000000
2025-07-01 15:38:35,851 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:38:35,851 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:38:35,852 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:38:35,860 [DEBUG][       Thread-609314][   transport.py][1871] : EOF in transport thread
2025-07-01 15:38:37,151 [DEBUG][Thread-609316 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:38:42,918 [DEBUG][Thread-609317 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:38:45,853 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:38:45,853 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:38:45,853 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:38:45,855 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 15:38:46,343 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 38, 16), 11.16, 46.93, 0.0, 38.23, 13.77, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:38:46,343 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:38:16
2025-07-01 15:38:46,429 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:38:46,433 [DEBUG][       Thread-609318][   transport.py][1871] : starting thread (client mode): 0x81e79a0
2025-07-01 15:38:46,433 [DEBUG][       Thread-609318][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:38:46,453 [DEBUG][       Thread-609318][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:38:46,453 [ INFO][       Thread-609318][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:38:46,457 [DEBUG][       Thread-609318][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:38:46,457 [DEBUG][       Thread-609318][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:38:46,457 [DEBUG][       Thread-609318][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:38:46,457 [DEBUG][       Thread-609318][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:38:46,457 [DEBUG][       Thread-609318][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:38:46,457 [DEBUG][       Thread-609318][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:38:46,457 [DEBUG][       Thread-609318][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:38:46,457 [DEBUG][       Thread-609318][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:38:46,457 [DEBUG][       Thread-609318][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:38:46,457 [DEBUG][       Thread-609318][   transport.py][1871] : client lang: <none>
2025-07-01 15:38:46,458 [DEBUG][       Thread-609318][   transport.py][1871] : server lang: <none>
2025-07-01 15:38:46,458 [DEBUG][       Thread-609318][   transport.py][1871] : kex follows: False
2025-07-01 15:38:46,458 [DEBUG][       Thread-609318][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:38:46,458 [DEBUG][       Thread-609318][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:38:46,458 [DEBUG][       Thread-609318][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:38:46,458 [DEBUG][       Thread-609318][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:38:46,458 [DEBUG][       Thread-609318][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:38:46,458 [DEBUG][       Thread-609318][   transport.py][1871] : Compression: none
2025-07-01 15:38:46,458 [DEBUG][       Thread-609318][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:38:46,478 [DEBUG][       Thread-609318][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:38:46,479 [DEBUG][       Thread-609318][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:38:46,479 [DEBUG][       Thread-609318][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:38:46,480 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:38:46,480 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:38:46,481 [DEBUG][       Thread-609318][   transport.py][1871] : userauth is OK
2025-07-01 15:38:46,494 [ INFO][       Thread-609318][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:38:46,495 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:38:47,140 [DEBUG][       Thread-609318][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:38:47,141 [DEBUG][       Thread-609318][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:38:47,181 [DEBUG][       Thread-609318][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:38:47,181 [DEBUG][       Thread-609318][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:38:47,185 [DEBUG][       Thread-609318][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:38:47,197 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:38:47,197 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:38:47,199 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:38:47,201 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:38:47,207 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:38:47,209 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:38:47,210 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:38:47,210 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:38:47,210 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.568342 -999.00  +13.30  34.77     52   +3.70 1 1 2 1 1   887    0 9.93 -6.94 ----- 38.3 34.8 15.0 53.4 15.2 -24.2 14.8 -24.6 14.9 -23.3 15.3 -24.1
2025-07-01 15:38:47,210 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:38:47,211 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:38:47,211 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.568342
2025-07-01 15:38:47,211 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:38:47,212 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:38:47,212 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:38:47,212 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:38:47,212 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:38:47,212 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:38:16', tmtdew=11.16, humidity=46.93, cloud=0.0, wind=38.23, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:38:24.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:38:47,213 [DEBUG][       Thread-609318][   transport.py][1871] : EOF in transport thread
2025-07-01 15:38:47,292 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:38:47,302 [DEBUG][       Thread-609321][   transport.py][1871] : starting thread (client mode): 0x81dae60
2025-07-01 15:38:47,302 [DEBUG][       Thread-609321][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:38:47,317 [DEBUG][       Thread-609321][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:38:47,317 [ INFO][       Thread-609321][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:38:47,325 [DEBUG][       Thread-609321][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:38:47,325 [DEBUG][       Thread-609321][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:38:47,325 [DEBUG][       Thread-609321][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:38:47,325 [DEBUG][       Thread-609321][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:38:47,325 [DEBUG][       Thread-609321][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:38:47,325 [DEBUG][       Thread-609321][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:38:47,325 [DEBUG][       Thread-609321][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:38:47,325 [DEBUG][       Thread-609321][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:38:47,325 [DEBUG][       Thread-609321][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:38:47,325 [DEBUG][       Thread-609321][   transport.py][1871] : client lang: <none>
2025-07-01 15:38:47,325 [DEBUG][       Thread-609321][   transport.py][1871] : server lang: <none>
2025-07-01 15:38:47,326 [DEBUG][       Thread-609321][   transport.py][1871] : kex follows: False
2025-07-01 15:38:47,326 [DEBUG][       Thread-609321][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:38:47,326 [DEBUG][       Thread-609321][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:38:47,326 [DEBUG][       Thread-609321][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:38:47,326 [DEBUG][       Thread-609321][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:38:47,326 [DEBUG][       Thread-609321][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:38:47,326 [DEBUG][       Thread-609321][   transport.py][1871] : Compression: none
2025-07-01 15:38:47,326 [DEBUG][       Thread-609321][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:38:47,385 [DEBUG][       Thread-609321][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:38:47,386 [DEBUG][       Thread-609321][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:38:47,386 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:38:47,387 [DEBUG][       Thread-609321][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:38:47,388 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:38:47,441 [DEBUG][       Thread-609321][   transport.py][1871] : userauth is OK
2025-07-01 15:38:47,441 [DEBUG][       Thread-609321][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:38:47,441 [DEBUG][       Thread-609321][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:38:47,441 [DEBUG][       Thread-609321][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:38:47,441 [DEBUG][       Thread-609321][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:38:47,460 [ INFO][       Thread-609321][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:38:47,460 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:38:47,461 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:38:48,502 [DEBUG][       Thread-609321][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:38:48,502 [DEBUG][       Thread-609321][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:38:48,551 [DEBUG][       Thread-609321][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:38:48,551 [DEBUG][       Thread-609321][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:38:48,560 [DEBUG][       Thread-609321][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:38:48,567 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:38:48,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-07-01 15:38: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') -> 00000000
2025-07-01 15:38:48,583 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:38:48,583 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:38:48,583 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:38:48,592 [DEBUG][       Thread-609321][   transport.py][1871] : EOF in transport thread
2025-07-01 15:38:51,939 [DEBUG][Thread-609323 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:38:58,589 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:38:58,589 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:38:58,589 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:38:58,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-07-01 15:38:59,088 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 38, 49), 11.18, 46.85, 0.0, 42.08, 13.76, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:38:59,088 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:38:49
2025-07-01 15:38:59,175 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:38:59,179 [DEBUG][       Thread-609324][   transport.py][1871] : starting thread (client mode): 0x81e76d0
2025-07-01 15:38:59,179 [DEBUG][       Thread-609324][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:38:59,200 [DEBUG][       Thread-609324][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:38:59,200 [ INFO][       Thread-609324][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:38:59,203 [DEBUG][       Thread-609324][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:38:59,203 [DEBUG][       Thread-609324][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:38:59,203 [DEBUG][       Thread-609324][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:38:59,203 [DEBUG][       Thread-609324][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:38:59,203 [DEBUG][       Thread-609324][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:38:59,203 [DEBUG][       Thread-609324][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:38:59,203 [DEBUG][       Thread-609324][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:38:59,203 [DEBUG][       Thread-609324][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:38:59,203 [DEBUG][       Thread-609324][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:38:59,203 [DEBUG][       Thread-609324][   transport.py][1871] : client lang: <none>
2025-07-01 15:38:59,203 [DEBUG][       Thread-609324][   transport.py][1871] : server lang: <none>
2025-07-01 15:38:59,203 [DEBUG][       Thread-609324][   transport.py][1871] : kex follows: False
2025-07-01 15:38:59,204 [DEBUG][       Thread-609324][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:38:59,204 [DEBUG][       Thread-609324][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:38:59,204 [DEBUG][       Thread-609324][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:38:59,204 [DEBUG][       Thread-609324][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:38:59,204 [DEBUG][       Thread-609324][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:38:59,204 [DEBUG][       Thread-609324][   transport.py][1871] : Compression: none
2025-07-01 15:38:59,204 [DEBUG][       Thread-609324][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:38:59,222 [DEBUG][       Thread-609324][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:38:59,222 [DEBUG][       Thread-609324][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:38:59,223 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:38:59,223 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:38:59,223 [DEBUG][       Thread-609324][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:38:59,224 [DEBUG][       Thread-609324][   transport.py][1871] : userauth is OK
2025-07-01 15:38:59,237 [ INFO][       Thread-609324][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:38:59,238 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:38:59,887 [DEBUG][       Thread-609324][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:38:59,887 [DEBUG][       Thread-609324][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:38:59,929 [DEBUG][       Thread-609324][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:38:59,929 [DEBUG][       Thread-609324][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:38:59,933 [DEBUG][       Thread-609324][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:38:59,944 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:38:59,944 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:38:59,947 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:38:59,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:38:59,955 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:38:59,957 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:38:59,957 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:38:59,958 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:38:59,958 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.568342 -999.00  +13.30  34.77     52   +3.70 1 1 2 1 1   887    0 9.93 -6.94 ----- 38.3 34.8 15.0 53.4 15.2 -24.2 14.8 -24.6 14.9 -23.3 15.3 -24.1
2025-07-01 15:38:59,958 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:38:59,958 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:38:59,958 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.568342
2025-07-01 15:38:59,958 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:38:59,959 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:38:59,959 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:38:59,959 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:38:59,959 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:38:59,959 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:38:49', tmtdew=11.18, humidity=46.85, cloud=0.0, wind=42.08, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:38:24.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:38:59,960 [DEBUG][       Thread-609324][   transport.py][1871] : EOF in transport thread
2025-07-01 15:39:00,043 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:39:00,960 [DEBUG][Thread-609327 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:39:09,985 [DEBUG][Thread-609328 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:39:19,008 [DEBUG][Thread-609329 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:39:28,029 [DEBUG][Thread-609330 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:39:37,052 [DEBUG][Thread-609331 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:39:37,182 [DEBUG][Thread-609332 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:39:46,071 [DEBUG][Thread-609333 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:39:55,092 [DEBUG][Thread-609334 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:40:04,113 [DEBUG][Thread-609335 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:40:13,136 [DEBUG][Thread-609336 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:40:22,155 [DEBUG][Thread-609337 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:40:31,171 [DEBUG][Thread-609338 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:40:37,211 [DEBUG][Thread-609339 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:40:40,193 [DEBUG][Thread-609340 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:40:49,217 [DEBUG][Thread-609341 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:40:58,237 [DEBUG][Thread-609342 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:41:07,256 [DEBUG][Thread-609343 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:41:09,012 [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-07-01 15:41:16,277 [DEBUG][Thread-609344 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:41:19,022 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:41:19,023 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:41:19,023 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:41:19,026 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 15:41:19,536 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 40, 57), 11.13, 46.97, 0.0, 36.17, 13.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:41:19,536 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:40:57
2025-07-01 15:41:19,623 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:41:19,627 [DEBUG][       Thread-609345][   transport.py][1871] : starting thread (client mode): 0x81e42e0
2025-07-01 15:41:19,627 [DEBUG][       Thread-609345][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:41:19,644 [DEBUG][       Thread-609345][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:41:19,644 [ INFO][       Thread-609345][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:41:19,645 [DEBUG][       Thread-609345][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:41:19,646 [DEBUG][       Thread-609345][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:41:19,646 [DEBUG][       Thread-609345][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:41:19,646 [DEBUG][       Thread-609345][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:41:19,646 [DEBUG][       Thread-609345][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:41:19,646 [DEBUG][       Thread-609345][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:41:19,646 [DEBUG][       Thread-609345][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:41:19,646 [DEBUG][       Thread-609345][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:41:19,646 [DEBUG][       Thread-609345][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:41:19,646 [DEBUG][       Thread-609345][   transport.py][1871] : client lang: <none>
2025-07-01 15:41:19,646 [DEBUG][       Thread-609345][   transport.py][1871] : server lang: <none>
2025-07-01 15:41:19,646 [DEBUG][       Thread-609345][   transport.py][1871] : kex follows: False
2025-07-01 15:41:19,646 [DEBUG][       Thread-609345][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:41:19,646 [DEBUG][       Thread-609345][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:41:19,646 [DEBUG][       Thread-609345][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:41:19,646 [DEBUG][       Thread-609345][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:41:19,646 [DEBUG][       Thread-609345][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:41:19,646 [DEBUG][       Thread-609345][   transport.py][1871] : Compression: none
2025-07-01 15:41:19,646 [DEBUG][       Thread-609345][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:41:19,655 [DEBUG][       Thread-609345][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:41:19,655 [DEBUG][       Thread-609345][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:41:19,655 [DEBUG][       Thread-609345][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:41:19,655 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:41:19,656 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:41:19,657 [DEBUG][       Thread-609345][   transport.py][1871] : userauth is OK
2025-07-01 15:41:19,683 [ INFO][       Thread-609345][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:41:19,684 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:41:20,292 [DEBUG][       Thread-609345][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:41:20,292 [DEBUG][       Thread-609345][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:41:20,333 [DEBUG][       Thread-609345][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:41:20,333 [DEBUG][       Thread-609345][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:41:20,336 [DEBUG][       Thread-609345][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:41:20,347 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:41:20,348 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:41:20,350 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:41:20,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:41:20,357 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:41:20,359 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:41:20,359 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:41:20,359 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:41:20,360 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.570078 -999.00  +13.40  39.45     52   +3.80 1 1 2 1 1   887    0 9.32 -14.58 ----- 34.4 39.5 19.6 47.6 15.0 -23.9 14.7 -24.3 14.7 -22.6 15.1 -22.6
2025-07-01 15:41:20,360 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:41:20,360 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:41:20,360 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.570078
2025-07-01 15:41:20,360 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:41:20,361 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:41:20,361 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:41:20,361 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:41:20,361 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:41:20,361 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:40:57', tmtdew=11.13, humidity=46.97, cloud=0.0, wind=36.17, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:40:54.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:41:20,362 [DEBUG][       Thread-609345][   transport.py][1871] : EOF in transport thread
2025-07-01 15:41:20,445 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:41:20,456 [DEBUG][       Thread-609348][   transport.py][1871] : starting thread (client mode): 0x75a9540
2025-07-01 15:41:20,456 [DEBUG][       Thread-609348][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:41:20,480 [DEBUG][       Thread-609348][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:41:20,480 [ INFO][       Thread-609348][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:41:20,488 [DEBUG][       Thread-609348][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:41:20,488 [DEBUG][       Thread-609348][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:41:20,488 [DEBUG][       Thread-609348][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:41:20,488 [DEBUG][       Thread-609348][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:41:20,488 [DEBUG][       Thread-609348][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:41:20,488 [DEBUG][       Thread-609348][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:41:20,489 [DEBUG][       Thread-609348][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:41:20,489 [DEBUG][       Thread-609348][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:41:20,489 [DEBUG][       Thread-609348][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:41:20,489 [DEBUG][       Thread-609348][   transport.py][1871] : client lang: <none>
2025-07-01 15:41:20,489 [DEBUG][       Thread-609348][   transport.py][1871] : server lang: <none>
2025-07-01 15:41:20,489 [DEBUG][       Thread-609348][   transport.py][1871] : kex follows: False
2025-07-01 15:41:20,489 [DEBUG][       Thread-609348][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:41:20,489 [DEBUG][       Thread-609348][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:41:20,489 [DEBUG][       Thread-609348][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:41:20,489 [DEBUG][       Thread-609348][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:41:20,489 [DEBUG][       Thread-609348][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:41:20,489 [DEBUG][       Thread-609348][   transport.py][1871] : Compression: none
2025-07-01 15:41:20,489 [DEBUG][       Thread-609348][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:41:20,545 [DEBUG][       Thread-609348][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:41:20,545 [DEBUG][       Thread-609348][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:41:20,546 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:41:20,546 [DEBUG][       Thread-609348][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:41:20,547 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:41:20,601 [DEBUG][       Thread-609348][   transport.py][1871] : userauth is OK
2025-07-01 15:41:20,601 [DEBUG][       Thread-609348][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:41:20,601 [DEBUG][       Thread-609348][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:41:20,601 [DEBUG][       Thread-609348][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:41:20,601 [DEBUG][       Thread-609348][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:41:20,621 [ INFO][       Thread-609348][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:41:20,621 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:41:20,621 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:41:21,676 [DEBUG][       Thread-609348][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:41:21,676 [DEBUG][       Thread-609348][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:41:21,728 [DEBUG][       Thread-609348][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:41:21,728 [DEBUG][       Thread-609348][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:41:21,737 [DEBUG][       Thread-609348][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:41:21,747 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:41:21,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-07-01 15:41:21,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-07-01 15:41:21,765 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:41:21,765 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:41:21,766 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:41:21,774 [DEBUG][       Thread-609348][   transport.py][1871] : EOF in transport thread
2025-07-01 15:41:25,300 [DEBUG][Thread-609350 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:41:31,776 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:41:31,776 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:41:31,776 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:41:31,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-07-01 15:41:32,269 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 41, 28), 11.1, 47.09, 0.0, 38.48, 13.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:41:32,270 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:41:28
2025-07-01 15:41:32,355 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:41:32,360 [DEBUG][       Thread-609351][   transport.py][1871] : starting thread (client mode): 0x81e78b0
2025-07-01 15:41:32,360 [DEBUG][       Thread-609351][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:41:32,380 [DEBUG][       Thread-609351][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:41:32,380 [ INFO][       Thread-609351][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:41:32,383 [DEBUG][       Thread-609351][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:41:32,383 [DEBUG][       Thread-609351][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:41:32,383 [DEBUG][       Thread-609351][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:41:32,383 [DEBUG][       Thread-609351][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:41:32,383 [DEBUG][       Thread-609351][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:41:32,383 [DEBUG][       Thread-609351][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:41:32,383 [DEBUG][       Thread-609351][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:41:32,383 [DEBUG][       Thread-609351][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:41:32,384 [DEBUG][       Thread-609351][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:41:32,384 [DEBUG][       Thread-609351][   transport.py][1871] : client lang: <none>
2025-07-01 15:41:32,384 [DEBUG][       Thread-609351][   transport.py][1871] : server lang: <none>
2025-07-01 15:41:32,384 [DEBUG][       Thread-609351][   transport.py][1871] : kex follows: False
2025-07-01 15:41:32,384 [DEBUG][       Thread-609351][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:41:32,384 [DEBUG][       Thread-609351][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:41:32,384 [DEBUG][       Thread-609351][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:41:32,384 [DEBUG][       Thread-609351][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:41:32,384 [DEBUG][       Thread-609351][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:41:32,384 [DEBUG][       Thread-609351][   transport.py][1871] : Compression: none
2025-07-01 15:41:32,384 [DEBUG][       Thread-609351][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:41:32,399 [DEBUG][       Thread-609351][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:41:32,400 [DEBUG][       Thread-609351][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:41:32,400 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:41:32,400 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:41:32,401 [DEBUG][       Thread-609351][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:41:32,401 [DEBUG][       Thread-609351][   transport.py][1871] : userauth is OK
2025-07-01 15:41:32,414 [ INFO][       Thread-609351][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:41:32,414 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:41:33,055 [DEBUG][       Thread-609351][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:41:33,056 [DEBUG][       Thread-609351][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:41:33,097 [DEBUG][       Thread-609351][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:41:33,097 [DEBUG][       Thread-609351][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:41:33,100 [DEBUG][       Thread-609351][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:41:33,115 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:41:33,115 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:41:33,117 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:41:33,119 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:41:33,124 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:41:33,126 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:41:33,126 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:41:33,127 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:41:33,127 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.570078 -999.00  +13.40  39.45     52   +3.80 1 1 2 1 1   887    0 9.32 -14.58 ----- 34.4 39.5 19.6 47.6 15.0 -23.9 14.7 -24.3 14.7 -22.6 15.1 -22.6
2025-07-01 15:41:33,127 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:41:33,127 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:41:33,127 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.570078
2025-07-01 15:41:33,128 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:41:33,128 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:41:33,128 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:41:33,128 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:41:33,128 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:41:33,128 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:41:28', tmtdew=11.1, humidity=47.09, cloud=0.0, wind=38.48, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:40:54.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:41:33,130 [DEBUG][       Thread-609351][   transport.py][1871] : EOF in transport thread
2025-07-01 15:41:33,213 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:41:33,225 [DEBUG][       Thread-609354][   transport.py][1871] : starting thread (client mode): 0x8155ab0
2025-07-01 15:41:33,225 [DEBUG][       Thread-609354][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:41:33,242 [DEBUG][       Thread-609354][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:41:33,242 [ INFO][       Thread-609354][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:41:33,254 [DEBUG][       Thread-609354][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:41:33,254 [DEBUG][       Thread-609354][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:41:33,254 [DEBUG][       Thread-609354][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:41:33,254 [DEBUG][       Thread-609354][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:41:33,254 [DEBUG][       Thread-609354][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:41:33,254 [DEBUG][       Thread-609354][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:41:33,254 [DEBUG][       Thread-609354][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:41:33,254 [DEBUG][       Thread-609354][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:41:33,254 [DEBUG][       Thread-609354][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:41:33,254 [DEBUG][       Thread-609354][   transport.py][1871] : client lang: <none>
2025-07-01 15:41:33,254 [DEBUG][       Thread-609354][   transport.py][1871] : server lang: <none>
2025-07-01 15:41:33,254 [DEBUG][       Thread-609354][   transport.py][1871] : kex follows: False
2025-07-01 15:41:33,254 [DEBUG][       Thread-609354][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:41:33,254 [DEBUG][       Thread-609354][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:41:33,255 [DEBUG][       Thread-609354][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:41:33,255 [DEBUG][       Thread-609354][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:41:33,255 [DEBUG][       Thread-609354][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:41:33,255 [DEBUG][       Thread-609354][   transport.py][1871] : Compression: none
2025-07-01 15:41:33,255 [DEBUG][       Thread-609354][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:41:33,308 [DEBUG][       Thread-609354][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:41:33,308 [DEBUG][       Thread-609354][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:41:33,309 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:41:33,309 [DEBUG][       Thread-609354][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:41:33,310 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:41:33,364 [DEBUG][       Thread-609354][   transport.py][1871] : userauth is OK
2025-07-01 15:41:33,365 [DEBUG][       Thread-609354][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:41:33,365 [DEBUG][       Thread-609354][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:41:33,365 [DEBUG][       Thread-609354][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:41:33,365 [DEBUG][       Thread-609354][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:41:33,384 [ INFO][       Thread-609354][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:41:33,384 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:41:33,384 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:41:34,340 [DEBUG][Thread-609356 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:41:34,394 [DEBUG][       Thread-609354][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:41:34,394 [DEBUG][       Thread-609354][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:41:34,444 [DEBUG][       Thread-609354][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:41:34,444 [DEBUG][       Thread-609354][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:41:34,453 [DEBUG][       Thread-609354][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:41:34,465 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:41:34,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-07-01 15:41:34,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') -> 00000000
2025-07-01 15:41:34,485 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:41:34,486 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:41:34,486 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:41:34,494 [DEBUG][       Thread-609354][   transport.py][1871] : EOF in transport thread
2025-07-01 15:41:37,237 [DEBUG][Thread-609357 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:41:43,371 [DEBUG][Thread-609358 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:41:44,496 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:41:44,496 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:41:44,496 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:41:44,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-07-01 15:41:45,003 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 41, 28), 11.1, 47.09, 0.0, 38.48, 13.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:41:45,003 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:41:28
2025-07-01 15:41:45,089 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:41:45,094 [DEBUG][       Thread-609359][   transport.py][1871] : starting thread (client mode): 0x81e5f30
2025-07-01 15:41:45,094 [DEBUG][       Thread-609359][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:41:45,112 [DEBUG][       Thread-609359][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:41:45,112 [ INFO][       Thread-609359][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:41:45,115 [DEBUG][       Thread-609359][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:41:45,115 [DEBUG][       Thread-609359][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:41:45,115 [DEBUG][       Thread-609359][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:41:45,115 [DEBUG][       Thread-609359][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:41:45,115 [DEBUG][       Thread-609359][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:41:45,115 [DEBUG][       Thread-609359][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:41:45,115 [DEBUG][       Thread-609359][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:41:45,115 [DEBUG][       Thread-609359][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:41:45,115 [DEBUG][       Thread-609359][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:41:45,115 [DEBUG][       Thread-609359][   transport.py][1871] : client lang: <none>
2025-07-01 15:41:45,115 [DEBUG][       Thread-609359][   transport.py][1871] : server lang: <none>
2025-07-01 15:41:45,115 [DEBUG][       Thread-609359][   transport.py][1871] : kex follows: False
2025-07-01 15:41:45,115 [DEBUG][       Thread-609359][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:41:45,115 [DEBUG][       Thread-609359][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:41:45,115 [DEBUG][       Thread-609359][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:41:45,115 [DEBUG][       Thread-609359][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:41:45,115 [DEBUG][       Thread-609359][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:41:45,116 [DEBUG][       Thread-609359][   transport.py][1871] : Compression: none
2025-07-01 15:41:45,116 [DEBUG][       Thread-609359][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:41:45,133 [DEBUG][       Thread-609359][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:41:45,134 [DEBUG][       Thread-609359][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:41:45,134 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:41:45,134 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:41:45,135 [DEBUG][       Thread-609359][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:41:45,136 [DEBUG][       Thread-609359][   transport.py][1871] : userauth is OK
2025-07-01 15:41:45,160 [ INFO][       Thread-609359][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:41:45,161 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:41:45,815 [DEBUG][       Thread-609359][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:41:45,816 [DEBUG][       Thread-609359][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:41:45,857 [DEBUG][       Thread-609359][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:41:45,857 [DEBUG][       Thread-609359][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:41:45,859 [DEBUG][       Thread-609359][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:41:45,872 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:41:45,872 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:41:45,873 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:41:45,873 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:41:45,876 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:41:45,877 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:41:45,877 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:41:45,877 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:41:45,877 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.570078 -999.00  +13.40  39.45     52   +3.80 1 1 2 1 1   887    0 9.32 -14.58 ----- 34.4 39.5 19.6 47.6 15.0 -23.9 14.7 -24.3 14.7 -22.6 15.1 -22.6
2025-07-01 15:41:45,877 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:41:45,877 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:41:45,877 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.570078
2025-07-01 15:41:45,877 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:41:45,877 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:41:45,877 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:41:45,877 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:41:45,877 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 15:41:45,877 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:41:28', tmtdew=11.1, humidity=47.09, cloud=0.0, wind=38.48, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:40:54.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:41:45,878 [DEBUG][       Thread-609359][   transport.py][1871] : EOF in transport thread
2025-07-01 15:41:45,949 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:41:45,958 [DEBUG][       Thread-609362][   transport.py][1871] : starting thread (client mode): 0x8170b80
2025-07-01 15:41:45,958 [DEBUG][       Thread-609362][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:41:45,974 [DEBUG][       Thread-609362][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:41:45,975 [ INFO][       Thread-609362][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:41:45,982 [DEBUG][       Thread-609362][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:41:45,983 [DEBUG][       Thread-609362][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:41:45,983 [DEBUG][       Thread-609362][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:41:45,983 [DEBUG][       Thread-609362][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:41:45,983 [DEBUG][       Thread-609362][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:41:45,983 [DEBUG][       Thread-609362][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:41:45,983 [DEBUG][       Thread-609362][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:41:45,983 [DEBUG][       Thread-609362][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:41:45,983 [DEBUG][       Thread-609362][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:41:45,983 [DEBUG][       Thread-609362][   transport.py][1871] : client lang: <none>
2025-07-01 15:41:45,983 [DEBUG][       Thread-609362][   transport.py][1871] : server lang: <none>
2025-07-01 15:41:45,983 [DEBUG][       Thread-609362][   transport.py][1871] : kex follows: False
2025-07-01 15:41:45,983 [DEBUG][       Thread-609362][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:41:45,983 [DEBUG][       Thread-609362][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:41:45,983 [DEBUG][       Thread-609362][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:41:45,983 [DEBUG][       Thread-609362][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:41:45,983 [DEBUG][       Thread-609362][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:41:45,983 [DEBUG][       Thread-609362][   transport.py][1871] : Compression: none
2025-07-01 15:41:45,983 [DEBUG][       Thread-609362][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:41:46,040 [DEBUG][       Thread-609362][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:41:46,040 [DEBUG][       Thread-609362][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:41:46,041 [DEBUG][       Thread-609362][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:41:46,041 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:41:46,042 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:41:46,100 [DEBUG][       Thread-609362][   transport.py][1871] : userauth is OK
2025-07-01 15:41:46,100 [DEBUG][       Thread-609362][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:41:46,100 [DEBUG][       Thread-609362][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:41:46,100 [DEBUG][       Thread-609362][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:41:46,101 [DEBUG][       Thread-609362][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:41:46,119 [ INFO][       Thread-609362][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:41:46,119 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:41:46,119 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:41:47,144 [DEBUG][       Thread-609362][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:41:47,144 [DEBUG][       Thread-609362][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:41:47,201 [DEBUG][       Thread-609362][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:41:47,201 [DEBUG][       Thread-609362][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:41:47,214 [DEBUG][       Thread-609362][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:41:47,224 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:41:47,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')
2025-07-01 15:41:47,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-07-01 15:41:47,242 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:41:47,243 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:41:47,243 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:41:47,251 [DEBUG][       Thread-609362][   transport.py][1871] : EOF in transport thread
2025-07-01 15:41:52,394 [DEBUG][Thread-609364 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:41:57,246 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:41:57,247 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:41:57,247 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:41:57,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-07-01 15:41:57,744 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 41, 28), 11.1, 47.09, 0.0, 38.48, 13.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:41:57,744 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:41:28
2025-07-01 15:41:57,830 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:41:57,834 [DEBUG][       Thread-609365][   transport.py][1871] : starting thread (client mode): 0x81e5750
2025-07-01 15:41:57,834 [DEBUG][       Thread-609365][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:41:57,853 [DEBUG][       Thread-609365][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:41:57,853 [ INFO][       Thread-609365][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:41:57,855 [DEBUG][       Thread-609365][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:41:57,855 [DEBUG][       Thread-609365][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:41:57,855 [DEBUG][       Thread-609365][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:41:57,855 [DEBUG][       Thread-609365][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:41:57,855 [DEBUG][       Thread-609365][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:41:57,855 [DEBUG][       Thread-609365][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:41:57,855 [DEBUG][       Thread-609365][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:41:57,855 [DEBUG][       Thread-609365][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:41:57,855 [DEBUG][       Thread-609365][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:41:57,855 [DEBUG][       Thread-609365][   transport.py][1871] : client lang: <none>
2025-07-01 15:41:57,855 [DEBUG][       Thread-609365][   transport.py][1871] : server lang: <none>
2025-07-01 15:41:57,855 [DEBUG][       Thread-609365][   transport.py][1871] : kex follows: False
2025-07-01 15:41:57,855 [DEBUG][       Thread-609365][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:41:57,855 [DEBUG][       Thread-609365][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:41:57,855 [DEBUG][       Thread-609365][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:41:57,855 [DEBUG][       Thread-609365][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:41:57,855 [DEBUG][       Thread-609365][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:41:57,855 [DEBUG][       Thread-609365][   transport.py][1871] : Compression: none
2025-07-01 15:41:57,855 [DEBUG][       Thread-609365][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:41:57,865 [DEBUG][       Thread-609365][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:41:57,866 [DEBUG][       Thread-609365][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:41:57,866 [DEBUG][       Thread-609365][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:41:57,866 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:41:57,867 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:41:57,868 [DEBUG][       Thread-609365][   transport.py][1871] : userauth is OK
2025-07-01 15:41:57,880 [ INFO][       Thread-609365][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:41:57,881 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:41:58,482 [DEBUG][       Thread-609365][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:41:58,482 [DEBUG][       Thread-609365][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:41:58,525 [DEBUG][       Thread-609365][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:41:58,525 [DEBUG][       Thread-609365][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:41:58,529 [DEBUG][       Thread-609365][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:41:58,541 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:41:58,542 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:41:58,544 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:41:58,546 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:41:58,551 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:41:58,553 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:41:58,554 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:41:58,554 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:41:58,555 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.570426 -999.00  +13.30  30.39     51   +3.60 1 2 2 1 1   887    0 9.40 -16.34 ----- 26.5 30.4 3.6 47.5 15.0 -23.6 14.7 -23.7 14.7 -22.1 15.0 -22.6
2025-07-01 15:41:58,555 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:41:58,555 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:41:58,555 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.570426
2025-07-01 15:41:58,555 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:41:58,556 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:41:58,556 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:41:58,556 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:41:58,556 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:41:58,556 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:41:28', tmtdew=11.1, humidity=47.09, cloud=0.0, wind=38.48, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:41:24.806', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:41:58,557 [DEBUG][       Thread-609365][   transport.py][1871] : EOF in transport thread
2025-07-01 15:41:58,640 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:41:58,652 [DEBUG][       Thread-609368][   transport.py][1871] : starting thread (client mode): 0x81d8c40
2025-07-01 15:41:58,652 [DEBUG][       Thread-609368][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:41:58,669 [DEBUG][       Thread-609368][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:41:58,670 [ INFO][       Thread-609368][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:41:58,678 [DEBUG][       Thread-609368][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:41:58,678 [DEBUG][       Thread-609368][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:41:58,678 [DEBUG][       Thread-609368][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:41:58,678 [DEBUG][       Thread-609368][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:41:58,678 [DEBUG][       Thread-609368][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:41:58,679 [DEBUG][       Thread-609368][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:41:58,679 [DEBUG][       Thread-609368][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:41:58,679 [DEBUG][       Thread-609368][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:41:58,679 [DEBUG][       Thread-609368][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:41:58,679 [DEBUG][       Thread-609368][   transport.py][1871] : client lang: <none>
2025-07-01 15:41:58,679 [DEBUG][       Thread-609368][   transport.py][1871] : server lang: <none>
2025-07-01 15:41:58,679 [DEBUG][       Thread-609368][   transport.py][1871] : kex follows: False
2025-07-01 15:41:58,679 [DEBUG][       Thread-609368][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:41:58,679 [DEBUG][       Thread-609368][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:41:58,679 [DEBUG][       Thread-609368][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:41:58,679 [DEBUG][       Thread-609368][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:41:58,679 [DEBUG][       Thread-609368][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:41:58,679 [DEBUG][       Thread-609368][   transport.py][1871] : Compression: none
2025-07-01 15:41:58,679 [DEBUG][       Thread-609368][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:41:58,735 [DEBUG][       Thread-609368][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:41:58,736 [DEBUG][       Thread-609368][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:41:58,737 [DEBUG][       Thread-609368][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:41:58,737 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:41:58,737 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:41:58,791 [DEBUG][       Thread-609368][   transport.py][1871] : userauth is OK
2025-07-01 15:41:58,791 [DEBUG][       Thread-609368][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:41:58,792 [DEBUG][       Thread-609368][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:41:58,792 [DEBUG][       Thread-609368][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:41:58,792 [DEBUG][       Thread-609368][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:41:58,811 [ INFO][       Thread-609368][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:41:58,812 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:41:58,812 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:41:59,875 [DEBUG][       Thread-609368][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:41:59,875 [DEBUG][       Thread-609368][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:41:59,924 [DEBUG][       Thread-609368][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:41:59,924 [DEBUG][       Thread-609368][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:41:59,933 [DEBUG][       Thread-609368][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:41:59,942 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:41:59,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-07-01 15:41:59,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-07-01 15:41:59,961 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:41:59,961 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:41:59,962 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:41:59,970 [DEBUG][       Thread-609368][   transport.py][1871] : EOF in transport thread
2025-07-01 15:42:01,413 [DEBUG][Thread-609370 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:42:09,972 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:42:09,972 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:42:09,973 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:42:09,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-07-01 15:42:10,435 [DEBUG][Thread-609371 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:42:10,463 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 42), 11.1, 47.07, 0.0, 34.71, 13.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:42:10,463 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:42:00
2025-07-01 15:42:10,550 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:42:10,553 [DEBUG][       Thread-609372][   transport.py][1871] : starting thread (client mode): 0x81d9b10
2025-07-01 15:42:10,553 [DEBUG][       Thread-609372][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:42:10,571 [DEBUG][       Thread-609372][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:42:10,571 [ INFO][       Thread-609372][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:42:10,574 [DEBUG][       Thread-609372][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:42:10,574 [DEBUG][       Thread-609372][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:42:10,574 [DEBUG][       Thread-609372][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:42:10,574 [DEBUG][       Thread-609372][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:42:10,574 [DEBUG][       Thread-609372][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:42:10,574 [DEBUG][       Thread-609372][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:42:10,574 [DEBUG][       Thread-609372][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:42:10,574 [DEBUG][       Thread-609372][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:42:10,574 [DEBUG][       Thread-609372][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:42:10,574 [DEBUG][       Thread-609372][   transport.py][1871] : client lang: <none>
2025-07-01 15:42:10,574 [DEBUG][       Thread-609372][   transport.py][1871] : server lang: <none>
2025-07-01 15:42:10,575 [DEBUG][       Thread-609372][   transport.py][1871] : kex follows: False
2025-07-01 15:42:10,575 [DEBUG][       Thread-609372][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:42:10,575 [DEBUG][       Thread-609372][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:42:10,575 [DEBUG][       Thread-609372][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:42:10,575 [DEBUG][       Thread-609372][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:42:10,575 [DEBUG][       Thread-609372][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:42:10,575 [DEBUG][       Thread-609372][   transport.py][1871] : Compression: none
2025-07-01 15:42:10,575 [DEBUG][       Thread-609372][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:42:10,582 [DEBUG][       Thread-609372][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:42:10,583 [DEBUG][       Thread-609372][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:42:10,583 [DEBUG][       Thread-609372][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:42:10,583 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:42:10,584 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:42:10,584 [DEBUG][       Thread-609372][   transport.py][1871] : userauth is OK
2025-07-01 15:42:10,597 [ INFO][       Thread-609372][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:42:10,597 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:42:11,182 [DEBUG][       Thread-609372][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:42:11,183 [DEBUG][       Thread-609372][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:42:11,225 [DEBUG][       Thread-609372][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:42:11,225 [DEBUG][       Thread-609372][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:42:11,228 [DEBUG][       Thread-609372][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:42:11,241 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:42:11,241 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:42:11,243 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:42:11,245 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:42:11,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:42:11,253 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:42:11,253 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:42:11,253 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:42:11,254 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.570426 -999.00  +13.30  30.39     51   +3.60 1 2 2 1 1   887    0 9.40 -16.34 ----- 26.5 30.4 3.6 47.5 15.0 -23.6 14.7 -23.7 14.7 -22.1 15.0 -22.6
2025-07-01 15:42:11,254 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:42:11,254 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:42:11,254 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.570426
2025-07-01 15:42:11,254 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:42:11,255 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:42:11,255 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:42:11,255 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:42:11,255 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:42:11,255 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:42:00', tmtdew=11.1, humidity=47.07, cloud=0.0, wind=34.71, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:41:24.806', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:42:11,255 [DEBUG][       Thread-609372][   transport.py][1871] : EOF in transport thread
2025-07-01 15:42:11,339 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:42:11,348 [DEBUG][       Thread-609375][   transport.py][1871] : starting thread (client mode): 0x8155a80
2025-07-01 15:42:11,348 [DEBUG][       Thread-609375][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:42:11,363 [DEBUG][       Thread-609375][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:42:11,363 [ INFO][       Thread-609375][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:42:11,371 [DEBUG][       Thread-609375][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:42:11,371 [DEBUG][       Thread-609375][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:42:11,371 [DEBUG][       Thread-609375][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:42:11,371 [DEBUG][       Thread-609375][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:42:11,371 [DEBUG][       Thread-609375][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:42:11,371 [DEBUG][       Thread-609375][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:42:11,371 [DEBUG][       Thread-609375][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:42:11,371 [DEBUG][       Thread-609375][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:42:11,371 [DEBUG][       Thread-609375][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:42:11,371 [DEBUG][       Thread-609375][   transport.py][1871] : client lang: <none>
2025-07-01 15:42:11,371 [DEBUG][       Thread-609375][   transport.py][1871] : server lang: <none>
2025-07-01 15:42:11,371 [DEBUG][       Thread-609375][   transport.py][1871] : kex follows: False
2025-07-01 15:42:11,371 [DEBUG][       Thread-609375][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:42:11,371 [DEBUG][       Thread-609375][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:42:11,371 [DEBUG][       Thread-609375][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:42:11,371 [DEBUG][       Thread-609375][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:42:11,371 [DEBUG][       Thread-609375][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:42:11,371 [DEBUG][       Thread-609375][   transport.py][1871] : Compression: none
2025-07-01 15:42:11,371 [DEBUG][       Thread-609375][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:42:11,433 [DEBUG][       Thread-609375][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:42:11,434 [DEBUG][       Thread-609375][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:42:11,434 [DEBUG][       Thread-609375][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:42:11,434 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:42:11,435 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:42:11,495 [DEBUG][       Thread-609375][   transport.py][1871] : userauth is OK
2025-07-01 15:42:11,495 [DEBUG][       Thread-609375][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:42:11,495 [DEBUG][       Thread-609375][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:42:11,495 [DEBUG][       Thread-609375][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:42:11,496 [DEBUG][       Thread-609375][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:42:11,514 [ INFO][       Thread-609375][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:42:11,515 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:42:11,515 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:42:12,554 [DEBUG][       Thread-609375][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:42:12,554 [DEBUG][       Thread-609375][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:42:12,604 [DEBUG][       Thread-609375][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:42:12,604 [DEBUG][       Thread-609375][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:42:12,613 [DEBUG][       Thread-609375][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:42:12,622 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:42:12,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-07-01 15:42:12,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-07-01 15:42:12,642 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:42:12,643 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:42:12,643 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:42:12,656 [DEBUG][       Thread-609375][   transport.py][1871] : EOF in transport thread
2025-07-01 15:42:19,454 [DEBUG][Thread-609377 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:42:22,653 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:42:22,654 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:42:22,654 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:42:22,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-07-01 15:42:23,143 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 42), 11.1, 47.07, 0.0, 34.71, 13.69, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:42:23,144 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:42:00
2025-07-01 15:42:23,230 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:42:23,237 [DEBUG][       Thread-609378][   transport.py][1871] : starting thread (client mode): 0x8173fa0
2025-07-01 15:42:23,237 [DEBUG][       Thread-609378][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:42:23,258 [DEBUG][       Thread-609378][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:42:23,258 [ INFO][       Thread-609378][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:42:23,261 [DEBUG][       Thread-609378][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:42:23,261 [DEBUG][       Thread-609378][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:42:23,261 [DEBUG][       Thread-609378][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:42:23,261 [DEBUG][       Thread-609378][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:42:23,261 [DEBUG][       Thread-609378][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:42:23,261 [DEBUG][       Thread-609378][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:42:23,261 [DEBUG][       Thread-609378][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:42:23,261 [DEBUG][       Thread-609378][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:42:23,261 [DEBUG][       Thread-609378][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:42:23,261 [DEBUG][       Thread-609378][   transport.py][1871] : client lang: <none>
2025-07-01 15:42:23,261 [DEBUG][       Thread-609378][   transport.py][1871] : server lang: <none>
2025-07-01 15:42:23,261 [DEBUG][       Thread-609378][   transport.py][1871] : kex follows: False
2025-07-01 15:42:23,261 [DEBUG][       Thread-609378][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:42:23,261 [DEBUG][       Thread-609378][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:42:23,261 [DEBUG][       Thread-609378][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:42:23,261 [DEBUG][       Thread-609378][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:42:23,261 [DEBUG][       Thread-609378][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:42:23,261 [DEBUG][       Thread-609378][   transport.py][1871] : Compression: none
2025-07-01 15:42:23,261 [DEBUG][       Thread-609378][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:42:23,278 [DEBUG][       Thread-609378][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:42:23,278 [DEBUG][       Thread-609378][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:42:23,278 [DEBUG][       Thread-609378][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:42:23,278 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:42:23,278 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:42:23,279 [DEBUG][       Thread-609378][   transport.py][1871] : userauth is OK
2025-07-01 15:42:23,291 [ INFO][       Thread-609378][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:42:23,292 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:42:24,052 [DEBUG][       Thread-609378][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:42:24,053 [DEBUG][       Thread-609378][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:42:24,097 [DEBUG][       Thread-609378][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:42:24,097 [DEBUG][       Thread-609378][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:42:24,101 [DEBUG][       Thread-609378][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:42:24,113 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:42:24,114 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:42:24,116 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:42:24,118 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:42:24,124 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:42:24,128 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:42:24,128 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:42:24,129 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:42:24,129 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.570426 -999.00  +13.30  30.39     51   +3.60 1 2 2 1 1   887    0 9.40 -16.34 ----- 26.5 30.4 3.6 47.5 15.0 -23.6 14.7 -23.7 14.7 -22.1 15.0 -22.6
2025-07-01 15:42:24,129 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:42:24,129 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:42:24,129 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.570426
2025-07-01 15:42:24,130 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:42:24,130 [DEBUG][       Thread-609378][   transport.py][1871] : EOF in transport thread
2025-07-01 15:42:24,130 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:42:24,131 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:42:24,131 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:42:24,131 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:42:24,131 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:42:00', tmtdew=11.1, humidity=47.07, cloud=0.0, wind=34.71, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:41:24.806', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:42:24,214 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:42:24,227 [DEBUG][       Thread-609381][   transport.py][1871] : starting thread (client mode): 0x47398550
2025-07-01 15:42:24,227 [DEBUG][       Thread-609381][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:42:24,248 [DEBUG][       Thread-609381][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:42:24,248 [ INFO][       Thread-609381][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:42:24,256 [DEBUG][       Thread-609381][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:42:24,256 [DEBUG][       Thread-609381][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:42:24,256 [DEBUG][       Thread-609381][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:42:24,257 [DEBUG][       Thread-609381][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:42:24,257 [DEBUG][       Thread-609381][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:42:24,257 [DEBUG][       Thread-609381][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:42:24,257 [DEBUG][       Thread-609381][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:42:24,257 [DEBUG][       Thread-609381][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:42:24,257 [DEBUG][       Thread-609381][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:42:24,257 [DEBUG][       Thread-609381][   transport.py][1871] : client lang: <none>
2025-07-01 15:42:24,257 [DEBUG][       Thread-609381][   transport.py][1871] : server lang: <none>
2025-07-01 15:42:24,257 [DEBUG][       Thread-609381][   transport.py][1871] : kex follows: False
2025-07-01 15:42:24,257 [DEBUG][       Thread-609381][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:42:24,257 [DEBUG][       Thread-609381][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:42:24,257 [DEBUG][       Thread-609381][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:42:24,257 [DEBUG][       Thread-609381][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:42:24,257 [DEBUG][       Thread-609381][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:42:24,257 [DEBUG][       Thread-609381][   transport.py][1871] : Compression: none
2025-07-01 15:42:24,257 [DEBUG][       Thread-609381][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:42:24,314 [DEBUG][       Thread-609381][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:42:24,315 [DEBUG][       Thread-609381][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:42:24,315 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:42:24,316 [DEBUG][       Thread-609381][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:42:24,317 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:42:24,374 [DEBUG][       Thread-609381][   transport.py][1871] : userauth is OK
2025-07-01 15:42:24,375 [DEBUG][       Thread-609381][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:42:24,375 [DEBUG][       Thread-609381][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:42:24,375 [DEBUG][       Thread-609381][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:42:24,375 [DEBUG][       Thread-609381][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:42:24,394 [ INFO][       Thread-609381][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:42:24,395 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:42:24,395 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:42:25,426 [DEBUG][       Thread-609381][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:42:25,427 [DEBUG][       Thread-609381][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:42:25,476 [DEBUG][       Thread-609381][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:42:25,476 [DEBUG][       Thread-609381][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:42:25,486 [DEBUG][       Thread-609381][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:42:25,495 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:42:25,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-07-01 15:42:25,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-07-01 15:42:25,514 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:42:25,514 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:42:25,514 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:42:25,522 [DEBUG][       Thread-609381][   transport.py][1871] : EOF in transport thread
2025-07-01 15:42:28,486 [DEBUG][Thread-609383 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:42:35,525 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:42:35,525 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:42:35,525 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:42:35,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-07-01 15:42:36,024 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 42, 32), 11.09, 46.99, 0.0, 37.56, 13.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:42:36,024 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:42:32
2025-07-01 15:42:36,110 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:42:36,116 [DEBUG][       Thread-609384][   transport.py][1871] : starting thread (client mode): 0x75a9540
2025-07-01 15:42:36,116 [DEBUG][       Thread-609384][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:42:36,136 [DEBUG][       Thread-609384][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:42:36,136 [ INFO][       Thread-609384][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:42:36,139 [DEBUG][       Thread-609384][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:42:36,140 [DEBUG][       Thread-609384][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:42:36,140 [DEBUG][       Thread-609384][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:42:36,140 [DEBUG][       Thread-609384][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:42:36,140 [DEBUG][       Thread-609384][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:42:36,140 [DEBUG][       Thread-609384][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:42:36,140 [DEBUG][       Thread-609384][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:42:36,140 [DEBUG][       Thread-609384][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:42:36,140 [DEBUG][       Thread-609384][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:42:36,140 [DEBUG][       Thread-609384][   transport.py][1871] : client lang: <none>
2025-07-01 15:42:36,140 [DEBUG][       Thread-609384][   transport.py][1871] : server lang: <none>
2025-07-01 15:42:36,140 [DEBUG][       Thread-609384][   transport.py][1871] : kex follows: False
2025-07-01 15:42:36,140 [DEBUG][       Thread-609384][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:42:36,140 [DEBUG][       Thread-609384][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:42:36,140 [DEBUG][       Thread-609384][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:42:36,140 [DEBUG][       Thread-609384][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:42:36,140 [DEBUG][       Thread-609384][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:42:36,140 [DEBUG][       Thread-609384][   transport.py][1871] : Compression: none
2025-07-01 15:42:36,140 [DEBUG][       Thread-609384][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:42:36,158 [DEBUG][       Thread-609384][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:42:36,158 [DEBUG][       Thread-609384][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:42:36,158 [DEBUG][       Thread-609384][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:42:36,159 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:42:36,159 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:42:36,160 [DEBUG][       Thread-609384][   transport.py][1871] : userauth is OK
2025-07-01 15:42:36,173 [ INFO][       Thread-609384][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:42:36,173 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:42:36,766 [DEBUG][       Thread-609384][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:42:36,766 [DEBUG][       Thread-609384][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:42:36,809 [DEBUG][       Thread-609384][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:42:36,809 [DEBUG][       Thread-609384][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:42:36,812 [DEBUG][       Thread-609384][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:42:36,817 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:42:36,817 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:42:36,818 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:42:36,820 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:42:36,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:42:36,826 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:42:36,826 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:42:36,827 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:42:36,827 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.570773 -999.00  +13.30  34.00     52   +3.70 1 2 2 1 1   887    0 9.18 -18.63 ----- 46.1 34.0 20.2 41.9 14.9 -23.3 14.7 -23.4 14.6 -21.6 14.9 -21.6
2025-07-01 15:42:36,827 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:42:36,827 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:42:36,827 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.570773
2025-07-01 15:42:36,828 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:42:36,828 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:42:36,828 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:42:36,829 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:42:36,829 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:42:36,829 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:42:32', tmtdew=11.09, humidity=46.99, cloud=0.0, wind=37.56, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:41:54.787', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:42:36,829 [DEBUG][       Thread-609384][   transport.py][1871] : EOF in transport thread
2025-07-01 15:42:36,912 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:42:36,922 [DEBUG][       Thread-609387][   transport.py][1871] : starting thread (client mode): 0x81e7eb0
2025-07-01 15:42:36,922 [DEBUG][       Thread-609387][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:42:36,936 [DEBUG][       Thread-609387][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:42:36,936 [ INFO][       Thread-609387][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:42:36,944 [DEBUG][       Thread-609387][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:42:36,944 [DEBUG][       Thread-609387][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:42:36,944 [DEBUG][       Thread-609387][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:42:36,944 [DEBUG][       Thread-609387][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:42:36,944 [DEBUG][       Thread-609387][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:42:36,944 [DEBUG][       Thread-609387][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:42:36,944 [DEBUG][       Thread-609387][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:42:36,944 [DEBUG][       Thread-609387][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:42:36,944 [DEBUG][       Thread-609387][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:42:36,944 [DEBUG][       Thread-609387][   transport.py][1871] : client lang: <none>
2025-07-01 15:42:36,944 [DEBUG][       Thread-609387][   transport.py][1871] : server lang: <none>
2025-07-01 15:42:36,944 [DEBUG][       Thread-609387][   transport.py][1871] : kex follows: False
2025-07-01 15:42:36,944 [DEBUG][       Thread-609387][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:42:36,944 [DEBUG][       Thread-609387][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:42:36,944 [DEBUG][       Thread-609387][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:42:36,944 [DEBUG][       Thread-609387][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:42:36,945 [DEBUG][       Thread-609387][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:42:36,945 [DEBUG][       Thread-609387][   transport.py][1871] : Compression: none
2025-07-01 15:42:36,945 [DEBUG][       Thread-609387][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:42:37,002 [DEBUG][       Thread-609387][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:42:37,003 [DEBUG][       Thread-609387][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:42:37,003 [DEBUG][       Thread-609387][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:42:37,004 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:42:37,005 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:42:37,062 [DEBUG][       Thread-609387][   transport.py][1871] : userauth is OK
2025-07-01 15:42:37,062 [DEBUG][       Thread-609387][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:42:37,062 [DEBUG][       Thread-609387][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:42:37,063 [DEBUG][       Thread-609387][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:42:37,063 [DEBUG][       Thread-609387][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:42:37,082 [ INFO][       Thread-609387][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:42:37,082 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:42:37,082 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:42:37,269 [DEBUG][Thread-609389 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:42:37,505 [DEBUG][Thread-609390 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:42:38,101 [DEBUG][       Thread-609387][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:42:38,101 [DEBUG][       Thread-609387][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:42:38,152 [DEBUG][       Thread-609387][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:42:38,152 [DEBUG][       Thread-609387][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:42:38,161 [DEBUG][       Thread-609387][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:42:38,170 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:42:38,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-07-01 15:42:38,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-07-01 15:42:38,189 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:42:38,189 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:42:38,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:42:38,197 [DEBUG][       Thread-609387][   transport.py][1871] : EOF in transport thread
2025-07-01 15:42:46,540 [DEBUG][Thread-609391 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:42:48,200 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:42:48,200 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:42:48,200 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:42:48,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-07-01 15:42:48,693 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 42, 32), 11.09, 46.99, 0.0, 37.56, 13.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:42:48,693 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:42:32
2025-07-01 15:42:48,779 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:42:48,783 [DEBUG][       Thread-609392][   transport.py][1871] : starting thread (client mode): 0x81e77f0
2025-07-01 15:42:48,783 [DEBUG][       Thread-609392][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:42:48,804 [DEBUG][       Thread-609392][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:42:48,804 [ INFO][       Thread-609392][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:42:48,807 [DEBUG][       Thread-609392][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:42:48,807 [DEBUG][       Thread-609392][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:42:48,807 [DEBUG][       Thread-609392][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:42:48,807 [DEBUG][       Thread-609392][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:42:48,807 [DEBUG][       Thread-609392][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:42:48,807 [DEBUG][       Thread-609392][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:42:48,807 [DEBUG][       Thread-609392][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:42:48,807 [DEBUG][       Thread-609392][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:42:48,807 [DEBUG][       Thread-609392][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:42:48,807 [DEBUG][       Thread-609392][   transport.py][1871] : client lang: <none>
2025-07-01 15:42:48,807 [DEBUG][       Thread-609392][   transport.py][1871] : server lang: <none>
2025-07-01 15:42:48,807 [DEBUG][       Thread-609392][   transport.py][1871] : kex follows: False
2025-07-01 15:42:48,807 [DEBUG][       Thread-609392][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:42:48,807 [DEBUG][       Thread-609392][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:42:48,807 [DEBUG][       Thread-609392][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:42:48,807 [DEBUG][       Thread-609392][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:42:48,807 [DEBUG][       Thread-609392][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:42:48,807 [DEBUG][       Thread-609392][   transport.py][1871] : Compression: none
2025-07-01 15:42:48,807 [DEBUG][       Thread-609392][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:42:48,824 [DEBUG][       Thread-609392][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:42:48,825 [DEBUG][       Thread-609392][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:42:48,825 [DEBUG][       Thread-609392][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:42:48,825 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:42:48,826 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:42:48,827 [DEBUG][       Thread-609392][   transport.py][1871] : userauth is OK
2025-07-01 15:42:48,840 [ INFO][       Thread-609392][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:42:48,840 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:42:49,618 [DEBUG][       Thread-609392][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:42:49,618 [DEBUG][       Thread-609392][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:42:49,661 [DEBUG][       Thread-609392][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:42:49,661 [DEBUG][       Thread-609392][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:42:49,663 [DEBUG][       Thread-609392][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:42:49,677 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:42:49,678 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:42:49,679 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:42:49,681 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:42:49,685 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:42:49,687 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:42:49,687 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:42:49,688 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:42:49,688 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.570773 -999.00  +13.30  34.00     52   +3.70 1 2 2 1 1   887    0 9.18 -18.63 ----- 46.1 34.0 20.2 41.9 14.9 -23.3 14.7 -23.4 14.6 -21.6 14.9 -21.6
2025-07-01 15:42:49,688 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:42:49,688 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:42:49,688 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.570773
2025-07-01 15:42:49,689 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:42:49,689 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:42:49,689 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:42:49,689 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:42:49,689 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:42:49,690 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:42:32', tmtdew=11.09, humidity=46.99, cloud=0.0, wind=37.56, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:41:54.787', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:42:49,690 [DEBUG][       Thread-609392][   transport.py][1871] : EOF in transport thread
2025-07-01 15:42:49,773 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:42:49,784 [DEBUG][       Thread-609395][   transport.py][1871] : starting thread (client mode): 0x81c9c30
2025-07-01 15:42:49,784 [DEBUG][       Thread-609395][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:42:49,802 [DEBUG][       Thread-609395][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:42:49,802 [ INFO][       Thread-609395][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:42:49,809 [DEBUG][       Thread-609395][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:42:49,809 [DEBUG][       Thread-609395][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:42:49,809 [DEBUG][       Thread-609395][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:42:49,809 [DEBUG][       Thread-609395][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:42:49,809 [DEBUG][       Thread-609395][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:42:49,809 [DEBUG][       Thread-609395][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:42:49,809 [DEBUG][       Thread-609395][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:42:49,809 [DEBUG][       Thread-609395][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:42:49,809 [DEBUG][       Thread-609395][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:42:49,809 [DEBUG][       Thread-609395][   transport.py][1871] : client lang: <none>
2025-07-01 15:42:49,810 [DEBUG][       Thread-609395][   transport.py][1871] : server lang: <none>
2025-07-01 15:42:49,810 [DEBUG][       Thread-609395][   transport.py][1871] : kex follows: False
2025-07-01 15:42:49,810 [DEBUG][       Thread-609395][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:42:49,810 [DEBUG][       Thread-609395][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:42:49,810 [DEBUG][       Thread-609395][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:42:49,810 [DEBUG][       Thread-609395][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:42:49,810 [DEBUG][       Thread-609395][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:42:49,810 [DEBUG][       Thread-609395][   transport.py][1871] : Compression: none
2025-07-01 15:42:49,810 [DEBUG][       Thread-609395][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:42:49,868 [DEBUG][       Thread-609395][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:42:49,868 [DEBUG][       Thread-609395][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:42:49,869 [DEBUG][       Thread-609395][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:42:49,869 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:42:49,870 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:42:49,929 [DEBUG][       Thread-609395][   transport.py][1871] : userauth is OK
2025-07-01 15:42:49,930 [DEBUG][       Thread-609395][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:42:49,930 [DEBUG][       Thread-609395][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:42:49,930 [DEBUG][       Thread-609395][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:42:49,930 [DEBUG][       Thread-609395][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:42:49,949 [ INFO][       Thread-609395][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:42:49,949 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:42:49,950 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:42:51,008 [DEBUG][       Thread-609395][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:42:51,009 [DEBUG][       Thread-609395][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:42:51,060 [DEBUG][       Thread-609395][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:42:51,060 [DEBUG][       Thread-609395][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:42:51,068 [DEBUG][       Thread-609395][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:42:51,079 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:42:51,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-07-01 15:42:51,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-07-01 15:42:51,097 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:42:51,098 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:42:51,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:42:51,106 [DEBUG][       Thread-609395][   transport.py][1871] : EOF in transport thread
2025-07-01 15:42:55,559 [DEBUG][Thread-609397 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:43:01,109 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:43:01,109 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:43:01,109 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:43:01,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-07-01 15:43:01,591 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 42, 32), 11.09, 46.99, 0.0, 37.56, 13.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:43:01,592 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:42:32
2025-07-01 15:43:01,677 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:43:01,683 [DEBUG][       Thread-609398][   transport.py][1871] : starting thread (client mode): 0x81d8580
2025-07-01 15:43:01,683 [DEBUG][       Thread-609398][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:43:01,703 [DEBUG][       Thread-609398][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:43:01,703 [ INFO][       Thread-609398][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:43:01,706 [DEBUG][       Thread-609398][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:43:01,707 [DEBUG][       Thread-609398][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:43:01,707 [DEBUG][       Thread-609398][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:43:01,707 [DEBUG][       Thread-609398][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:43:01,707 [DEBUG][       Thread-609398][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:43:01,707 [DEBUG][       Thread-609398][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:43:01,707 [DEBUG][       Thread-609398][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:43:01,707 [DEBUG][       Thread-609398][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:43:01,707 [DEBUG][       Thread-609398][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:43:01,707 [DEBUG][       Thread-609398][   transport.py][1871] : client lang: <none>
2025-07-01 15:43:01,707 [DEBUG][       Thread-609398][   transport.py][1871] : server lang: <none>
2025-07-01 15:43:01,707 [DEBUG][       Thread-609398][   transport.py][1871] : kex follows: False
2025-07-01 15:43:01,707 [DEBUG][       Thread-609398][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:43:01,707 [DEBUG][       Thread-609398][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:43:01,707 [DEBUG][       Thread-609398][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:43:01,707 [DEBUG][       Thread-609398][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:43:01,707 [DEBUG][       Thread-609398][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:43:01,707 [DEBUG][       Thread-609398][   transport.py][1871] : Compression: none
2025-07-01 15:43:01,707 [DEBUG][       Thread-609398][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:43:01,724 [DEBUG][       Thread-609398][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:43:01,725 [DEBUG][       Thread-609398][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:43:01,725 [DEBUG][       Thread-609398][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:43:01,726 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:43:01,726 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:43:01,727 [DEBUG][       Thread-609398][   transport.py][1871] : userauth is OK
2025-07-01 15:43:01,752 [ INFO][       Thread-609398][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:43:01,753 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:43:02,407 [DEBUG][       Thread-609398][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:43:02,407 [DEBUG][       Thread-609398][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:43:02,449 [DEBUG][       Thread-609398][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:43:02,449 [DEBUG][       Thread-609398][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:43:02,453 [DEBUG][       Thread-609398][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:43:02,465 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:43:02,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:43:02,467 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:43:02,469 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:43:02,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:43:02,477 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:43:02,477 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:43:02,478 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:43:02,478 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.571467 -999.00  +13.20  37.47     52   +3.70 1 2 2 1 1   887    0 9.28 -23.34 ----- 32.1 37.5 21.2 53.4 14.8 -22.8 14.5 -22.5 14.5 -20.8 14.8 -20.6
2025-07-01 15:43:02,478 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:43:02,478 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:43:02,478 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.571467
2025-07-01 15:43:02,479 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:43:02,479 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:43:02,479 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:43:02,479 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:43:02,479 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:43:02,479 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:42:32', tmtdew=11.09, humidity=46.99, cloud=0.0, wind=37.56, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:42:54.749', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:43:02,480 [DEBUG][       Thread-609398][   transport.py][1871] : EOF in transport thread
2025-07-01 15:43:02,563 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:43:04,579 [DEBUG][Thread-609401 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:43:13,600 [DEBUG][Thread-609402 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:43:22,622 [DEBUG][Thread-609403 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:43:31,641 [DEBUG][Thread-609404 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:43:37,296 [DEBUG][Thread-609405 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:43:40,658 [DEBUG][Thread-609406 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:43:49,679 [DEBUG][Thread-609407 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:43:58,702 [DEBUG][Thread-609408 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:44:07,724 [DEBUG][Thread-609409 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:44:16,743 [DEBUG][Thread-609410 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:44:25,768 [DEBUG][Thread-609411 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:44:34,790 [DEBUG][Thread-609412 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:44:37,327 [DEBUG][Thread-609413 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:44:43,810 [DEBUG][Thread-609414 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:44:52,830 [DEBUG][Thread-609415 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:45:01,850 [DEBUG][Thread-609416 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:45:10,871 [DEBUG][Thread-609417 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:45:12,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-07-01 15:45:19,894 [DEBUG][Thread-609418 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:45:22,734 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:45:22,734 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:45:22,735 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:45:22,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-07-01 15:45:23,235 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 45, 12), 10.93, 47.51, 0.0, 36.26, 13.47, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:45:23,235 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:45:12
2025-07-01 15:45:23,322 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:45:23,327 [DEBUG][       Thread-609419][   transport.py][1871] : starting thread (client mode): 0x81da3b0
2025-07-01 15:45:23,327 [DEBUG][       Thread-609419][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:45:23,347 [DEBUG][       Thread-609419][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:45:23,347 [ INFO][       Thread-609419][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:45:23,350 [DEBUG][       Thread-609419][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:45:23,350 [DEBUG][       Thread-609419][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:45:23,350 [DEBUG][       Thread-609419][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:45:23,350 [DEBUG][       Thread-609419][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:45:23,350 [DEBUG][       Thread-609419][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:45:23,350 [DEBUG][       Thread-609419][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:45:23,350 [DEBUG][       Thread-609419][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:45:23,350 [DEBUG][       Thread-609419][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:45:23,350 [DEBUG][       Thread-609419][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:45:23,350 [DEBUG][       Thread-609419][   transport.py][1871] : client lang: <none>
2025-07-01 15:45:23,350 [DEBUG][       Thread-609419][   transport.py][1871] : server lang: <none>
2025-07-01 15:45:23,350 [DEBUG][       Thread-609419][   transport.py][1871] : kex follows: False
2025-07-01 15:45:23,350 [DEBUG][       Thread-609419][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:45:23,350 [DEBUG][       Thread-609419][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:45:23,351 [DEBUG][       Thread-609419][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:45:23,351 [DEBUG][       Thread-609419][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:45:23,351 [DEBUG][       Thread-609419][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:45:23,351 [DEBUG][       Thread-609419][   transport.py][1871] : Compression: none
2025-07-01 15:45:23,351 [DEBUG][       Thread-609419][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:45:23,371 [DEBUG][       Thread-609419][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:45:23,371 [DEBUG][       Thread-609419][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:45:23,372 [DEBUG][       Thread-609419][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:45:23,372 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:45:23,372 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:45:23,373 [DEBUG][       Thread-609419][   transport.py][1871] : userauth is OK
2025-07-01 15:45:23,398 [ INFO][       Thread-609419][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:45:23,398 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:45:24,068 [DEBUG][       Thread-609419][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:45:24,069 [DEBUG][       Thread-609419][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:45:24,113 [DEBUG][       Thread-609419][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:45:24,113 [DEBUG][       Thread-609419][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:45:24,116 [DEBUG][       Thread-609419][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:45:24,128 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:45:24,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:45:24,130 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:45:24,131 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:45:24,136 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:45:24,138 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:45:24,138 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:45:24,138 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:45:24,139 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.572856 -999.00  +13.20  29.41     52   +3.80 1 2 1 1 1   887    0 9.16 -29.40 ----- 33.7 29.4 7.4 39.1 14.7 -21.2 14.5 -21.2 14.4 -19.0 14.7 -19.3
2025-07-01 15:45:24,139 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:45:24,139 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:45:24,139 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.572856
2025-07-01 15:45:24,139 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:45:24,140 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:45:24,140 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:45:24,140 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:45:24,140 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:45:24,140 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:45:12', tmtdew=10.93, humidity=47.51, cloud=0.0, wind=36.26, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:44:54.758', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:45:24,140 [DEBUG][       Thread-609419][   transport.py][1871] : EOF in transport thread
2025-07-01 15:45:24,224 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:45:28,912 [DEBUG][Thread-609422 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:45:37,357 [DEBUG][Thread-609423 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:45:37,948 [DEBUG][Thread-609424 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:45:46,971 [DEBUG][Thread-609425 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:45:55,994 [DEBUG][Thread-609426 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:46:05,014 [DEBUG][Thread-609427 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:46:14,032 [DEBUG][Thread-609428 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:46:23,053 [DEBUG][Thread-609429 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:46:32,076 [DEBUG][Thread-609430 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:46:37,398 [DEBUG][Thread-609431 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:46:41,097 [DEBUG][Thread-609432 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:46:50,116 [DEBUG][Thread-609433 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:46:59,139 [DEBUG][Thread-609434 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:47:08,161 [DEBUG][Thread-609435 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:47:17,183 [DEBUG][Thread-609436 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:47:26,206 [DEBUG][Thread-609437 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:47:34,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-07-01 15:47:35,229 [DEBUG][Thread-609438 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:47:37,430 [DEBUG][Thread-609439 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:47:44,044 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:47:44,044 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:47:44,044 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:47: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-07-01 15:47:44,249 [DEBUG][Thread-609440 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:47:44,565 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 47, 18), 10.99, 47.46, 0.0, 30.24, 13.57, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:47:44,565 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:47:18
2025-07-01 15:47:44,652 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:47:44,656 [DEBUG][       Thread-609441][   transport.py][1871] : starting thread (client mode): 0x81db0d0
2025-07-01 15:47:44,656 [DEBUG][       Thread-609441][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:47:44,677 [DEBUG][       Thread-609441][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:47:44,677 [ INFO][       Thread-609441][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:47:44,680 [DEBUG][       Thread-609441][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:47:44,680 [DEBUG][       Thread-609441][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:47:44,680 [DEBUG][       Thread-609441][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:47:44,680 [DEBUG][       Thread-609441][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:47:44,680 [DEBUG][       Thread-609441][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:47:44,680 [DEBUG][       Thread-609441][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:47:44,680 [DEBUG][       Thread-609441][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:47:44,680 [DEBUG][       Thread-609441][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:47:44,680 [DEBUG][       Thread-609441][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:47:44,680 [DEBUG][       Thread-609441][   transport.py][1871] : client lang: <none>
2025-07-01 15:47:44,680 [DEBUG][       Thread-609441][   transport.py][1871] : server lang: <none>
2025-07-01 15:47:44,680 [DEBUG][       Thread-609441][   transport.py][1871] : kex follows: False
2025-07-01 15:47:44,680 [DEBUG][       Thread-609441][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:47:44,680 [DEBUG][       Thread-609441][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:47:44,680 [DEBUG][       Thread-609441][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:47:44,680 [DEBUG][       Thread-609441][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:47:44,680 [DEBUG][       Thread-609441][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:47:44,680 [DEBUG][       Thread-609441][   transport.py][1871] : Compression: none
2025-07-01 15:47:44,680 [DEBUG][       Thread-609441][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:47:44,697 [DEBUG][       Thread-609441][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:47:44,698 [DEBUG][       Thread-609441][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:47:44,698 [DEBUG][       Thread-609441][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:47:44,699 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:47:44,699 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:47:44,700 [DEBUG][       Thread-609441][   transport.py][1871] : userauth is OK
2025-07-01 15:47:44,725 [ INFO][       Thread-609441][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:47:44,726 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:47:45,372 [DEBUG][       Thread-609441][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:47:45,372 [DEBUG][       Thread-609441][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:47:45,413 [DEBUG][       Thread-609441][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:47:45,413 [DEBUG][       Thread-609441][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:47:45,416 [DEBUG][       Thread-609441][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:47:45,430 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:47:45,431 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:47:45,433 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:47:45,435 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:47:45,441 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:47:45,442 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:47:45,443 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:47:45,443 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:47:45,444 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.574245 -999.00  +13.30  37.46     52   +3.80 1 2 2 1 1   887    0 8.75 -34.99 ----- 33.2 37.5 28.6 48.6 14.9 -19.4 14.5 -19.6 14.5 -17.4 15.0 -17.0
2025-07-01 15:47:45,444 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:47:45,444 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:47:45,444 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.574245
2025-07-01 15:47:45,444 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:47:45,445 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:47:45,445 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:47:45,445 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:47:45,445 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:47:45,445 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:47:18', tmtdew=10.99, humidity=47.46, cloud=0.0, wind=30.24, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:46:54.768', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:47:45,446 [DEBUG][       Thread-609441][   transport.py][1871] : EOF in transport thread
2025-07-01 15:47:45,534 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:47:45,548 [DEBUG][       Thread-609444][   transport.py][1871] : starting thread (client mode): 0x4701ec20
2025-07-01 15:47:45,548 [DEBUG][       Thread-609444][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:47:45,566 [DEBUG][       Thread-609444][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:47:45,567 [ INFO][       Thread-609444][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:47:45,574 [DEBUG][       Thread-609444][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:47:45,574 [DEBUG][       Thread-609444][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:47:45,574 [DEBUG][       Thread-609444][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:47:45,574 [DEBUG][       Thread-609444][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:47:45,574 [DEBUG][       Thread-609444][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:47:45,574 [DEBUG][       Thread-609444][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:47:45,575 [DEBUG][       Thread-609444][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:47:45,575 [DEBUG][       Thread-609444][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:47:45,575 [DEBUG][       Thread-609444][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:47:45,575 [DEBUG][       Thread-609444][   transport.py][1871] : client lang: <none>
2025-07-01 15:47:45,575 [DEBUG][       Thread-609444][   transport.py][1871] : server lang: <none>
2025-07-01 15:47:45,575 [DEBUG][       Thread-609444][   transport.py][1871] : kex follows: False
2025-07-01 15:47:45,575 [DEBUG][       Thread-609444][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:47:45,575 [DEBUG][       Thread-609444][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:47:45,575 [DEBUG][       Thread-609444][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:47:45,575 [DEBUG][       Thread-609444][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:47:45,575 [DEBUG][       Thread-609444][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:47:45,575 [DEBUG][       Thread-609444][   transport.py][1871] : Compression: none
2025-07-01 15:47:45,575 [DEBUG][       Thread-609444][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:47:45,632 [DEBUG][       Thread-609444][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:47:45,633 [DEBUG][       Thread-609444][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:47:45,634 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:47:45,634 [DEBUG][       Thread-609444][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:47:45,635 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:47:45,688 [DEBUG][       Thread-609444][   transport.py][1871] : userauth is OK
2025-07-01 15:47:45,689 [DEBUG][       Thread-609444][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:47:45,689 [DEBUG][       Thread-609444][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:47:45,689 [DEBUG][       Thread-609444][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:47:45,689 [DEBUG][       Thread-609444][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:47:45,708 [ INFO][       Thread-609444][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:47:45,709 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:47:45,709 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:47:46,743 [DEBUG][       Thread-609444][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:47:46,743 [DEBUG][       Thread-609444][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:47:46,791 [DEBUG][       Thread-609444][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:47:46,791 [DEBUG][       Thread-609444][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:47:46,800 [DEBUG][       Thread-609444][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:47:46,808 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:47:46,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-07-01 15:47: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') -> 00000000
2025-07-01 15:47:46,824 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:47:46,824 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:47:46,824 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:47:46,832 [DEBUG][       Thread-609444][   transport.py][1871] : EOF in transport thread
2025-07-01 15:47:53,269 [DEBUG][Thread-609446 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:47:56,834 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:47:56,835 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:47:56,835 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:47:56,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-07-01 15:47:57,348 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 47, 51), 11.0, 47.43, 0.0, 34.33, 13.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:47:57,348 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:47:51
2025-07-01 15:47:57,435 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:47:57,439 [DEBUG][       Thread-609447][   transport.py][1871] : starting thread (client mode): 0x81e6710
2025-07-01 15:47:57,439 [DEBUG][       Thread-609447][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:47:57,457 [DEBUG][       Thread-609447][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:47:57,457 [ INFO][       Thread-609447][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:47:57,459 [DEBUG][       Thread-609447][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:47:57,459 [DEBUG][       Thread-609447][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:47:57,459 [DEBUG][       Thread-609447][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:47:57,459 [DEBUG][       Thread-609447][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:47:57,459 [DEBUG][       Thread-609447][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:47:57,459 [DEBUG][       Thread-609447][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:47:57,459 [DEBUG][       Thread-609447][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:47:57,459 [DEBUG][       Thread-609447][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:47:57,459 [DEBUG][       Thread-609447][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:47:57,459 [DEBUG][       Thread-609447][   transport.py][1871] : client lang: <none>
2025-07-01 15:47:57,459 [DEBUG][       Thread-609447][   transport.py][1871] : server lang: <none>
2025-07-01 15:47:57,459 [DEBUG][       Thread-609447][   transport.py][1871] : kex follows: False
2025-07-01 15:47:57,459 [DEBUG][       Thread-609447][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:47:57,459 [DEBUG][       Thread-609447][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:47:57,459 [DEBUG][       Thread-609447][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:47:57,459 [DEBUG][       Thread-609447][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:47:57,459 [DEBUG][       Thread-609447][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:47:57,459 [DEBUG][       Thread-609447][   transport.py][1871] : Compression: none
2025-07-01 15:47:57,459 [DEBUG][       Thread-609447][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:47:57,469 [DEBUG][       Thread-609447][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:47:57,470 [DEBUG][       Thread-609447][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:47:57,470 [DEBUG][       Thread-609447][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:47:57,470 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:47:57,470 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:47:57,471 [DEBUG][       Thread-609447][   transport.py][1871] : userauth is OK
2025-07-01 15:47:57,496 [ INFO][       Thread-609447][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:47:57,496 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:47:58,061 [DEBUG][       Thread-609447][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:47:58,062 [DEBUG][       Thread-609447][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:47:58,105 [DEBUG][       Thread-609447][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:47:58,105 [DEBUG][       Thread-609447][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:47:58,108 [DEBUG][       Thread-609447][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:47:58,115 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:47:58,115 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:47:58,116 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:47:58,117 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:47:58,122 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:47:58,123 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:47:58,124 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:47:58,124 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:47:58,124 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.574592 -999.00  +13.40  36.35     52   +3.80 1 2 2 1 1   887    0 8.94 -33.71 ----- 30.9 36.4 30.2 47.0 14.9 -19.2 14.5 -19.1 14.6 -17.2 15.1 -16.6
2025-07-01 15:47:58,125 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:47:58,125 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:47:58,125 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.574592
2025-07-01 15:47:58,125 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:47:58,126 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:47:58,126 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:47:58,126 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:47:58,126 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:47:58,126 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:47:51', tmtdew=11.0, humidity=47.43, cloud=0.0, wind=34.33, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:47:24.749', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:47:58,126 [DEBUG][       Thread-609447][   transport.py][1871] : EOF in transport thread
2025-07-01 15:47:58,214 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:47:58,226 [DEBUG][       Thread-609450][   transport.py][1871] : starting thread (client mode): 0x8154340
2025-07-01 15:47:58,226 [DEBUG][       Thread-609450][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:47:58,242 [DEBUG][       Thread-609450][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:47:58,242 [ INFO][       Thread-609450][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:47:58,251 [DEBUG][       Thread-609450][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:47:58,251 [DEBUG][       Thread-609450][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:47:58,251 [DEBUG][       Thread-609450][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:47:58,251 [DEBUG][       Thread-609450][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:47:58,251 [DEBUG][       Thread-609450][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:47:58,251 [DEBUG][       Thread-609450][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:47:58,251 [DEBUG][       Thread-609450][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:47:58,251 [DEBUG][       Thread-609450][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:47:58,251 [DEBUG][       Thread-609450][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:47:58,251 [DEBUG][       Thread-609450][   transport.py][1871] : client lang: <none>
2025-07-01 15:47:58,251 [DEBUG][       Thread-609450][   transport.py][1871] : server lang: <none>
2025-07-01 15:47:58,251 [DEBUG][       Thread-609450][   transport.py][1871] : kex follows: False
2025-07-01 15:47:58,251 [DEBUG][       Thread-609450][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:47:58,251 [DEBUG][       Thread-609450][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:47:58,252 [DEBUG][       Thread-609450][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:47:58,252 [DEBUG][       Thread-609450][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:47:58,252 [DEBUG][       Thread-609450][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:47:58,252 [DEBUG][       Thread-609450][   transport.py][1871] : Compression: none
2025-07-01 15:47:58,252 [DEBUG][       Thread-609450][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:47:58,306 [DEBUG][       Thread-609450][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:47:58,306 [DEBUG][       Thread-609450][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:47:58,306 [DEBUG][       Thread-609450][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:47:58,306 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:47:58,307 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:47:58,364 [DEBUG][       Thread-609450][   transport.py][1871] : userauth is OK
2025-07-01 15:47:58,364 [DEBUG][       Thread-609450][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:47:58,364 [DEBUG][       Thread-609450][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:47:58,364 [DEBUG][       Thread-609450][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:47:58,364 [DEBUG][       Thread-609450][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:47:58,377 [ INFO][       Thread-609450][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:47:58,378 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:47:58,378 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:47:59,405 [DEBUG][       Thread-609450][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:47:59,405 [DEBUG][       Thread-609450][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:47:59,455 [DEBUG][       Thread-609450][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:47:59,455 [DEBUG][       Thread-609450][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:47:59,464 [DEBUG][       Thread-609450][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:47:59,472 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:47:59,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-07-01 15:47: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-07-01 15:47:59,488 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:47:59,488 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:47:59,488 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:47:59,496 [DEBUG][       Thread-609450][   transport.py][1871] : EOF in transport thread
2025-07-01 15:48:02,307 [DEBUG][Thread-609452 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:48:09,498 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:48:09,499 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:48:09,499 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:48:09,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-07-01 15:48:09,998 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 47, 51), 11.0, 47.43, 0.0, 34.33, 13.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:48:09,998 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:47:51
2025-07-01 15:48:10,085 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:48:10,089 [DEBUG][       Thread-609453][   transport.py][1871] : starting thread (client mode): 0x81d9b10
2025-07-01 15:48:10,089 [DEBUG][       Thread-609453][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:48:10,110 [DEBUG][       Thread-609453][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:48:10,110 [ INFO][       Thread-609453][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:48:10,113 [DEBUG][       Thread-609453][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:48:10,113 [DEBUG][       Thread-609453][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:48:10,114 [DEBUG][       Thread-609453][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:48:10,114 [DEBUG][       Thread-609453][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:48:10,114 [DEBUG][       Thread-609453][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:48:10,114 [DEBUG][       Thread-609453][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:48:10,114 [DEBUG][       Thread-609453][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:48:10,114 [DEBUG][       Thread-609453][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:48:10,114 [DEBUG][       Thread-609453][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:48:10,114 [DEBUG][       Thread-609453][   transport.py][1871] : client lang: <none>
2025-07-01 15:48:10,114 [DEBUG][       Thread-609453][   transport.py][1871] : server lang: <none>
2025-07-01 15:48:10,114 [DEBUG][       Thread-609453][   transport.py][1871] : kex follows: False
2025-07-01 15:48:10,114 [DEBUG][       Thread-609453][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:48:10,114 [DEBUG][       Thread-609453][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:48:10,114 [DEBUG][       Thread-609453][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:48:10,114 [DEBUG][       Thread-609453][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:48:10,114 [DEBUG][       Thread-609453][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:48:10,114 [DEBUG][       Thread-609453][   transport.py][1871] : Compression: none
2025-07-01 15:48:10,114 [DEBUG][       Thread-609453][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:48:10,130 [DEBUG][       Thread-609453][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:48:10,130 [DEBUG][       Thread-609453][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:48:10,131 [DEBUG][       Thread-609453][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:48:10,131 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:48:10,131 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:48:10,133 [DEBUG][       Thread-609453][   transport.py][1871] : userauth is OK
2025-07-01 15:48:10,145 [ INFO][       Thread-609453][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:48:10,146 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:48:10,774 [DEBUG][       Thread-609453][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:48:10,774 [DEBUG][       Thread-609453][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:48:10,817 [DEBUG][       Thread-609453][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:48:10,817 [DEBUG][       Thread-609453][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:48:10,820 [DEBUG][       Thread-609453][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:48:10,834 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:48:10,835 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:48:10,837 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:48:10,839 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:48:10,844 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:48:10,847 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:48:10,847 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:48:10,848 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:48:10,848 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.574592 -999.00  +13.40  36.35     52   +3.80 1 2 2 1 1   887    0 8.94 -33.71 ----- 30.9 36.4 30.2 47.0 14.9 -19.2 14.5 -19.1 14.6 -17.2 15.1 -16.6
2025-07-01 15:48:10,848 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:48:10,848 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:48:10,848 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.574592
2025-07-01 15:48:10,848 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:48:10,849 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:48:10,849 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:48:10,849 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:48:10,849 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:48:10,849 [DEBUG][       Thread-609453][   transport.py][1871] : EOF in transport thread
2025-07-01 15:48:10,850 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:47:51', tmtdew=11.0, humidity=47.43, cloud=0.0, wind=34.33, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:47:24.749', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:48:10,934 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:48:10,945 [DEBUG][       Thread-609456][   transport.py][1871] : starting thread (client mode): 0x81569b0
2025-07-01 15:48:10,945 [DEBUG][       Thread-609456][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:48:10,960 [DEBUG][       Thread-609456][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:48:10,960 [ INFO][       Thread-609456][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:48:10,967 [DEBUG][       Thread-609456][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:48:10,967 [DEBUG][       Thread-609456][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:48:10,968 [DEBUG][       Thread-609456][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:48:10,968 [DEBUG][       Thread-609456][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:48:10,968 [DEBUG][       Thread-609456][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:48:10,968 [DEBUG][       Thread-609456][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:48:10,968 [DEBUG][       Thread-609456][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:48:10,968 [DEBUG][       Thread-609456][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:48:10,968 [DEBUG][       Thread-609456][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:48:10,968 [DEBUG][       Thread-609456][   transport.py][1871] : client lang: <none>
2025-07-01 15:48:10,968 [DEBUG][       Thread-609456][   transport.py][1871] : server lang: <none>
2025-07-01 15:48:10,968 [DEBUG][       Thread-609456][   transport.py][1871] : kex follows: False
2025-07-01 15:48:10,968 [DEBUG][       Thread-609456][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:48:10,968 [DEBUG][       Thread-609456][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:48:10,968 [DEBUG][       Thread-609456][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:48:10,968 [DEBUG][       Thread-609456][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:48:10,968 [DEBUG][       Thread-609456][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:48:10,968 [DEBUG][       Thread-609456][   transport.py][1871] : Compression: none
2025-07-01 15:48:10,968 [DEBUG][       Thread-609456][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:48:11,027 [DEBUG][       Thread-609456][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:48:11,027 [DEBUG][       Thread-609456][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:48:11,028 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:48:11,028 [DEBUG][       Thread-609456][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:48:11,029 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:48:11,086 [DEBUG][       Thread-609456][   transport.py][1871] : userauth is OK
2025-07-01 15:48:11,087 [DEBUG][       Thread-609456][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:48:11,087 [DEBUG][       Thread-609456][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:48:11,087 [DEBUG][       Thread-609456][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:48:11,087 [DEBUG][       Thread-609456][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:48:11,105 [ INFO][       Thread-609456][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:48:11,105 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:48:11,106 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:48:11,333 [DEBUG][Thread-609458 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:48:12,086 [DEBUG][       Thread-609456][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:48:12,086 [DEBUG][       Thread-609456][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:48:12,136 [DEBUG][       Thread-609456][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:48:12,136 [DEBUG][       Thread-609456][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:48:12,145 [DEBUG][       Thread-609456][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:48:12,154 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:48:12,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-07-01 15:48:12,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-07-01 15:48:12,172 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:48:12,172 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:48:12,173 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:48:12,181 [DEBUG][       Thread-609456][   transport.py][1871] : EOF in transport thread
2025-07-01 15:48:20,355 [DEBUG][Thread-609459 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:48:22,183 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:48:22,184 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:48:22,184 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:48:22,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-07-01 15:48:22,691 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 47, 51), 11.0, 47.43, 0.0, 34.33, 13.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:48:22,691 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:47:51
2025-07-01 15:48:22,778 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:48:22,783 [DEBUG][       Thread-609460][   transport.py][1871] : starting thread (client mode): 0x81d9c60
2025-07-01 15:48:22,783 [DEBUG][       Thread-609460][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:48:22,808 [DEBUG][       Thread-609460][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:48:22,808 [ INFO][       Thread-609460][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:48:22,812 [DEBUG][       Thread-609460][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:48:22,812 [DEBUG][       Thread-609460][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:48:22,812 [DEBUG][       Thread-609460][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:48:22,812 [DEBUG][       Thread-609460][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:48:22,812 [DEBUG][       Thread-609460][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:48:22,812 [DEBUG][       Thread-609460][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:48:22,812 [DEBUG][       Thread-609460][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:48:22,812 [DEBUG][       Thread-609460][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:48:22,812 [DEBUG][       Thread-609460][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:48:22,812 [DEBUG][       Thread-609460][   transport.py][1871] : client lang: <none>
2025-07-01 15:48:22,812 [DEBUG][       Thread-609460][   transport.py][1871] : server lang: <none>
2025-07-01 15:48:22,812 [DEBUG][       Thread-609460][   transport.py][1871] : kex follows: False
2025-07-01 15:48:22,812 [DEBUG][       Thread-609460][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:48:22,812 [DEBUG][       Thread-609460][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:48:22,812 [DEBUG][       Thread-609460][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:48:22,813 [DEBUG][       Thread-609460][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:48:22,813 [DEBUG][       Thread-609460][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:48:22,813 [DEBUG][       Thread-609460][   transport.py][1871] : Compression: none
2025-07-01 15:48:22,813 [DEBUG][       Thread-609460][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:48:22,829 [DEBUG][       Thread-609460][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:48:22,830 [DEBUG][       Thread-609460][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:48:22,830 [DEBUG][       Thread-609460][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:48:22,831 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:48:22,831 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:48:22,832 [DEBUG][       Thread-609460][   transport.py][1871] : userauth is OK
2025-07-01 15:48:22,845 [ INFO][       Thread-609460][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:48:22,846 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:48:23,487 [DEBUG][       Thread-609460][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:48:23,487 [DEBUG][       Thread-609460][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:48:23,528 [DEBUG][       Thread-609460][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:48:23,528 [DEBUG][       Thread-609460][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:48:23,531 [DEBUG][       Thread-609460][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:48:23,545 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:48:23,545 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:48:23,546 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:48:23,547 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:48:23,550 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:48:23,551 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:48:23,551 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:48:23,551 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:48:23,551 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.574592 -999.00  +13.40  36.35     52   +3.80 1 2 2 1 1   887    0 8.94 -33.71 ----- 30.9 36.4 30.2 47.0 14.9 -19.2 14.5 -19.1 14.6 -17.2 15.1 -16.6
2025-07-01 15:48:23,551 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:48:23,551 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:48:23,551 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.574592
2025-07-01 15:48:23,551 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:48:23,551 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:48:23,551 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:48:23,551 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:48:23,551 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:48:23,551 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:47:51', tmtdew=11.0, humidity=47.43, cloud=0.0, wind=34.33, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:47:24.749', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:48:23,552 [DEBUG][       Thread-609460][   transport.py][1871] : EOF in transport thread
2025-07-01 15:48:23,626 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:48:23,646 [DEBUG][       Thread-609463][   transport.py][1871] : starting thread (client mode): 0x8155a80
2025-07-01 15:48:23,646 [DEBUG][       Thread-609463][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:48:23,662 [DEBUG][       Thread-609463][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:48:23,662 [ INFO][       Thread-609463][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:48:23,673 [DEBUG][       Thread-609463][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:48:23,673 [DEBUG][       Thread-609463][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:48:23,673 [DEBUG][       Thread-609463][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:48:23,673 [DEBUG][       Thread-609463][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:48:23,673 [DEBUG][       Thread-609463][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:48:23,673 [DEBUG][       Thread-609463][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:48:23,673 [DEBUG][       Thread-609463][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:48:23,673 [DEBUG][       Thread-609463][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:48:23,673 [DEBUG][       Thread-609463][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:48:23,673 [DEBUG][       Thread-609463][   transport.py][1871] : client lang: <none>
2025-07-01 15:48:23,673 [DEBUG][       Thread-609463][   transport.py][1871] : server lang: <none>
2025-07-01 15:48:23,673 [DEBUG][       Thread-609463][   transport.py][1871] : kex follows: False
2025-07-01 15:48:23,673 [DEBUG][       Thread-609463][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:48:23,673 [DEBUG][       Thread-609463][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:48:23,673 [DEBUG][       Thread-609463][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:48:23,673 [DEBUG][       Thread-609463][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:48:23,673 [DEBUG][       Thread-609463][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:48:23,673 [DEBUG][       Thread-609463][   transport.py][1871] : Compression: none
2025-07-01 15:48:23,673 [DEBUG][       Thread-609463][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:48:23,731 [DEBUG][       Thread-609463][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:48:23,731 [DEBUG][       Thread-609463][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:48:23,731 [DEBUG][       Thread-609463][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:48:23,731 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:48:23,732 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:48:23,787 [DEBUG][       Thread-609463][   transport.py][1871] : userauth is OK
2025-07-01 15:48:23,787 [DEBUG][       Thread-609463][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:48:23,787 [DEBUG][       Thread-609463][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:48:23,787 [DEBUG][       Thread-609463][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:48:23,787 [DEBUG][       Thread-609463][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:48:23,801 [ INFO][       Thread-609463][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:48:23,801 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:48:23,801 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:48:24,793 [DEBUG][       Thread-609463][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:48:24,794 [DEBUG][       Thread-609463][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:48:24,844 [DEBUG][       Thread-609463][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:48:24,845 [DEBUG][       Thread-609463][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:48:24,856 [DEBUG][       Thread-609463][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:48:24,871 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:48:24,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-07-01 15:48:24,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-07-01 15:48:24,888 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:48:24,889 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:48:24,889 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:48:24,897 [DEBUG][       Thread-609463][   transport.py][1871] : EOF in transport thread
2025-07-01 15:48:29,377 [DEBUG][Thread-609465 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:48:34,890 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:48:34,890 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:48:34,890 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:48:34,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-07-01 15:48:35,385 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 48, 22), 11.12, 47.16, 0.0, 31.05, 13.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:48:35,385 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:48:22
2025-07-01 15:48:35,472 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:48:35,477 [DEBUG][       Thread-609466][   transport.py][1871] : starting thread (client mode): 0x81db4c0
2025-07-01 15:48:35,477 [DEBUG][       Thread-609466][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:48:35,498 [DEBUG][       Thread-609466][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:48:35,498 [ INFO][       Thread-609466][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:48:35,501 [DEBUG][       Thread-609466][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:48:35,501 [DEBUG][       Thread-609466][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:48:35,501 [DEBUG][       Thread-609466][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:48:35,501 [DEBUG][       Thread-609466][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:48:35,501 [DEBUG][       Thread-609466][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:48:35,501 [DEBUG][       Thread-609466][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:48:35,501 [DEBUG][       Thread-609466][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:48:35,501 [DEBUG][       Thread-609466][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:48:35,501 [DEBUG][       Thread-609466][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:48:35,501 [DEBUG][       Thread-609466][   transport.py][1871] : client lang: <none>
2025-07-01 15:48:35,501 [DEBUG][       Thread-609466][   transport.py][1871] : server lang: <none>
2025-07-01 15:48:35,501 [DEBUG][       Thread-609466][   transport.py][1871] : kex follows: False
2025-07-01 15:48:35,501 [DEBUG][       Thread-609466][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:48:35,501 [DEBUG][       Thread-609466][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:48:35,501 [DEBUG][       Thread-609466][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:48:35,501 [DEBUG][       Thread-609466][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:48:35,501 [DEBUG][       Thread-609466][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:48:35,501 [DEBUG][       Thread-609466][   transport.py][1871] : Compression: none
2025-07-01 15:48:35,501 [DEBUG][       Thread-609466][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:48:35,518 [DEBUG][       Thread-609466][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:48:35,518 [DEBUG][       Thread-609466][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:48:35,519 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:48:35,519 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:48:35,519 [DEBUG][       Thread-609466][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:48:35,520 [DEBUG][       Thread-609466][   transport.py][1871] : userauth is OK
2025-07-01 15:48:35,544 [ INFO][       Thread-609466][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:48:35,545 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:48:36,165 [DEBUG][       Thread-609466][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:48:36,165 [DEBUG][       Thread-609466][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:48:36,209 [DEBUG][       Thread-609466][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:48:36,209 [DEBUG][       Thread-609466][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:48:36,213 [DEBUG][       Thread-609466][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:48:36,226 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:48:36,227 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:48:36,229 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:48:36,230 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:48:36,237 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:48:36,239 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:48:36,239 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:48:36,240 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:48:36,240 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.575287 -999.00  +13.50  42.24     51   +3.60 1 2 2 1 1   887    0 8.81 -34.82 ----- 44.1 42.2 41.4 52.6 15.1 -18.5 14.6 -18.8 14.8 -16.9 15.3 -16.0
2025-07-01 15:48:36,240 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:48:36,240 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:48:36,240 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.575287
2025-07-01 15:48:36,241 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:48:36,241 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:48:36,241 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:48:36,242 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:48:36,242 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:48:36,242 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:48:22', tmtdew=11.12, humidity=47.16, cloud=0.0, wind=31.05, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:48:24.797', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:48:36,242 [DEBUG][       Thread-609466][   transport.py][1871] : EOF in transport thread
2025-07-01 15:48:36,326 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:48:36,335 [DEBUG][       Thread-609469][   transport.py][1871] : starting thread (client mode): 0x81e5c60
2025-07-01 15:48:36,335 [DEBUG][       Thread-609469][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:48:36,351 [DEBUG][       Thread-609469][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:48:36,351 [ INFO][       Thread-609469][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:48:36,359 [DEBUG][       Thread-609469][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:48:36,359 [DEBUG][       Thread-609469][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:48:36,359 [DEBUG][       Thread-609469][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:48:36,359 [DEBUG][       Thread-609469][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:48:36,359 [DEBUG][       Thread-609469][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:48:36,359 [DEBUG][       Thread-609469][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:48:36,359 [DEBUG][       Thread-609469][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:48:36,359 [DEBUG][       Thread-609469][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:48:36,359 [DEBUG][       Thread-609469][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:48:36,359 [DEBUG][       Thread-609469][   transport.py][1871] : client lang: <none>
2025-07-01 15:48:36,359 [DEBUG][       Thread-609469][   transport.py][1871] : server lang: <none>
2025-07-01 15:48:36,359 [DEBUG][       Thread-609469][   transport.py][1871] : kex follows: False
2025-07-01 15:48:36,359 [DEBUG][       Thread-609469][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:48:36,359 [DEBUG][       Thread-609469][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:48:36,359 [DEBUG][       Thread-609469][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:48:36,359 [DEBUG][       Thread-609469][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:48:36,359 [DEBUG][       Thread-609469][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:48:36,360 [DEBUG][       Thread-609469][   transport.py][1871] : Compression: none
2025-07-01 15:48:36,360 [DEBUG][       Thread-609469][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:48:36,415 [DEBUG][       Thread-609469][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:48:36,415 [DEBUG][       Thread-609469][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:48:36,416 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:48:36,416 [DEBUG][       Thread-609469][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:48:36,417 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:48:36,472 [DEBUG][       Thread-609469][   transport.py][1871] : userauth is OK
2025-07-01 15:48:36,472 [DEBUG][       Thread-609469][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:48:36,472 [DEBUG][       Thread-609469][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:48:36,472 [DEBUG][       Thread-609469][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:48:36,472 [DEBUG][       Thread-609469][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:48:36,489 [ INFO][       Thread-609469][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:48:36,489 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:48:36,489 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:48:37,457 [DEBUG][Thread-609471 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:48:37,482 [DEBUG][       Thread-609469][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:48:37,482 [DEBUG][       Thread-609469][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:48:37,531 [DEBUG][       Thread-609469][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:48:37,531 [DEBUG][       Thread-609469][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:48:37,539 [DEBUG][       Thread-609469][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:48:37,547 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:48:37,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-07-01 15:48: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') -> 00000000
2025-07-01 15:48:37,563 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:48:37,563 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:48:37,564 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:48:37,571 [DEBUG][       Thread-609469][   transport.py][1871] : EOF in transport thread
2025-07-01 15:48:38,396 [DEBUG][Thread-609472 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:48:47,433 [DEBUG][Thread-609473 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:48:47,572 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:48:47,572 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:48:47,572 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:48:47,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-07-01 15:48:48,063 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 48, 22), 11.12, 47.16, 0.0, 31.05, 13.68, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:48:48,063 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:48:22
2025-07-01 15:48:48,150 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:48:48,154 [DEBUG][       Thread-609474][   transport.py][1871] : starting thread (client mode): 0x81db460
2025-07-01 15:48:48,154 [DEBUG][       Thread-609474][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:48:48,175 [DEBUG][       Thread-609474][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:48:48,175 [ INFO][       Thread-609474][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:48:48,178 [DEBUG][       Thread-609474][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:48:48,178 [DEBUG][       Thread-609474][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:48:48,178 [DEBUG][       Thread-609474][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:48:48,178 [DEBUG][       Thread-609474][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:48:48,178 [DEBUG][       Thread-609474][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:48:48,178 [DEBUG][       Thread-609474][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:48:48,178 [DEBUG][       Thread-609474][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:48:48,178 [DEBUG][       Thread-609474][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:48:48,178 [DEBUG][       Thread-609474][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:48:48,178 [DEBUG][       Thread-609474][   transport.py][1871] : client lang: <none>
2025-07-01 15:48:48,178 [DEBUG][       Thread-609474][   transport.py][1871] : server lang: <none>
2025-07-01 15:48:48,178 [DEBUG][       Thread-609474][   transport.py][1871] : kex follows: False
2025-07-01 15:48:48,178 [DEBUG][       Thread-609474][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:48:48,178 [DEBUG][       Thread-609474][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:48:48,178 [DEBUG][       Thread-609474][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:48:48,179 [DEBUG][       Thread-609474][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:48:48,179 [DEBUG][       Thread-609474][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:48:48,179 [DEBUG][       Thread-609474][   transport.py][1871] : Compression: none
2025-07-01 15:48:48,179 [DEBUG][       Thread-609474][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:48:48,195 [DEBUG][       Thread-609474][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:48:48,195 [DEBUG][       Thread-609474][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:48:48,196 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:48:48,196 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:48:48,197 [DEBUG][       Thread-609474][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:48:48,197 [DEBUG][       Thread-609474][   transport.py][1871] : userauth is OK
2025-07-01 15:48:48,210 [ INFO][       Thread-609474][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:48:48,211 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:48:48,828 [DEBUG][       Thread-609474][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:48:48,828 [DEBUG][       Thread-609474][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:48:48,869 [DEBUG][       Thread-609474][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:48:48,869 [DEBUG][       Thread-609474][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:48:48,872 [DEBUG][       Thread-609474][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:48:48,886 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:48:48,886 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:48:48,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:48:48,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:48:48,897 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:48:48,899 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:48:48,899 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:48:48,899 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:48:48,900 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.575287 -999.00  +13.50  42.24     51   +3.60 1 2 2 1 1   887    0 8.81 -34.82 ----- 44.1 42.2 41.4 52.6 15.1 -18.5 14.6 -18.8 14.8 -16.9 15.3 -16.0
2025-07-01 15:48:48,900 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:48:48,900 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:48:48,900 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.575287
2025-07-01 15:48:48,900 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:48:48,901 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:48:48,901 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:48:48,901 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:48:48,901 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:48:48,901 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:48:22', tmtdew=11.12, humidity=47.16, cloud=0.0, wind=31.05, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:48:24.797', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:48:48,901 [DEBUG][       Thread-609474][   transport.py][1871] : EOF in transport thread
2025-07-01 15:48:48,985 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:48:48,997 [DEBUG][       Thread-609477][   transport.py][1871] : starting thread (client mode): 0x827db40
2025-07-01 15:48:48,997 [DEBUG][       Thread-609477][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:48:49,013 [DEBUG][       Thread-609477][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:48:49,013 [ INFO][       Thread-609477][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:48:49,020 [DEBUG][       Thread-609477][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:48:49,020 [DEBUG][       Thread-609477][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:48:49,020 [DEBUG][       Thread-609477][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:48:49,020 [DEBUG][       Thread-609477][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:48:49,020 [DEBUG][       Thread-609477][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:48:49,020 [DEBUG][       Thread-609477][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:48:49,020 [DEBUG][       Thread-609477][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:48:49,020 [DEBUG][       Thread-609477][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:48:49,020 [DEBUG][       Thread-609477][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:48:49,020 [DEBUG][       Thread-609477][   transport.py][1871] : client lang: <none>
2025-07-01 15:48:49,020 [DEBUG][       Thread-609477][   transport.py][1871] : server lang: <none>
2025-07-01 15:48:49,020 [DEBUG][       Thread-609477][   transport.py][1871] : kex follows: False
2025-07-01 15:48:49,020 [DEBUG][       Thread-609477][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:48:49,020 [DEBUG][       Thread-609477][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:48:49,020 [DEBUG][       Thread-609477][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:48:49,020 [DEBUG][       Thread-609477][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:48:49,020 [DEBUG][       Thread-609477][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:48:49,020 [DEBUG][       Thread-609477][   transport.py][1871] : Compression: none
2025-07-01 15:48:49,020 [DEBUG][       Thread-609477][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:48:49,081 [DEBUG][       Thread-609477][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:48:49,081 [DEBUG][       Thread-609477][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:48:49,081 [DEBUG][       Thread-609477][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:48:49,081 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:48:49,081 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:48:49,139 [DEBUG][       Thread-609477][   transport.py][1871] : userauth is OK
2025-07-01 15:48:49,140 [DEBUG][       Thread-609477][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:48:49,140 [DEBUG][       Thread-609477][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:48:49,140 [DEBUG][       Thread-609477][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:48:49,140 [DEBUG][       Thread-609477][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:48:49,159 [ INFO][       Thread-609477][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:48:49,159 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:48:49,160 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:48:50,176 [DEBUG][       Thread-609477][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:48:50,177 [DEBUG][       Thread-609477][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:48:50,228 [DEBUG][       Thread-609477][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:48:50,228 [DEBUG][       Thread-609477][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:48:50,238 [DEBUG][       Thread-609477][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:48:50,247 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:48:50,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-07-01 15:48:50,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-07-01 15:48:50,265 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:48:50,265 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:48:50,266 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:48:50,274 [DEBUG][       Thread-609477][   transport.py][1871] : EOF in transport thread
2025-07-01 15:48:56,453 [DEBUG][Thread-609479 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:49:00,276 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:49:00,277 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:49:00,277 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:49:00,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-07-01 15:49:00,778 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 48, 54), 11.11, 47.21, 0.0, 35.38, 13.73, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:49:00,778 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:48:54
2025-07-01 15:49:00,865 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:49:00,869 [DEBUG][       Thread-609480][   transport.py][1871] : starting thread (client mode): 0x8171840
2025-07-01 15:49:00,869 [DEBUG][       Thread-609480][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:49:00,890 [DEBUG][       Thread-609480][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:49:00,891 [ INFO][       Thread-609480][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:49:00,894 [DEBUG][       Thread-609480][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:49:00,894 [DEBUG][       Thread-609480][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:49:00,894 [DEBUG][       Thread-609480][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:49:00,894 [DEBUG][       Thread-609480][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:49:00,894 [DEBUG][       Thread-609480][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:49:00,894 [DEBUG][       Thread-609480][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:49:00,894 [DEBUG][       Thread-609480][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:49:00,894 [DEBUG][       Thread-609480][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:49:00,894 [DEBUG][       Thread-609480][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:49:00,894 [DEBUG][       Thread-609480][   transport.py][1871] : client lang: <none>
2025-07-01 15:49:00,894 [DEBUG][       Thread-609480][   transport.py][1871] : server lang: <none>
2025-07-01 15:49:00,894 [DEBUG][       Thread-609480][   transport.py][1871] : kex follows: False
2025-07-01 15:49:00,894 [DEBUG][       Thread-609480][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:49:00,894 [DEBUG][       Thread-609480][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:49:00,894 [DEBUG][       Thread-609480][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:49:00,894 [DEBUG][       Thread-609480][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:49:00,894 [DEBUG][       Thread-609480][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:49:00,894 [DEBUG][       Thread-609480][   transport.py][1871] : Compression: none
2025-07-01 15:49:00,894 [DEBUG][       Thread-609480][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:49:00,907 [DEBUG][       Thread-609480][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:49:00,908 [DEBUG][       Thread-609480][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:49:00,908 [DEBUG][       Thread-609480][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:49:00,909 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:49:00,909 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:49:00,910 [DEBUG][       Thread-609480][   transport.py][1871] : userauth is OK
2025-07-01 15:49:00,935 [ INFO][       Thread-609480][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:49:00,935 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:49:01,549 [DEBUG][       Thread-609480][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:49:01,549 [DEBUG][       Thread-609480][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:49:01,593 [DEBUG][       Thread-609480][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:49:01,593 [DEBUG][       Thread-609480][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:49:01,596 [DEBUG][       Thread-609480][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:49:01,610 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:49:01,610 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:49:01,612 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:49:01,614 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:49:01,620 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:49:01,622 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:49:01,622 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:49:01,623 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:49:01,623 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.575287 -999.00  +13.50  42.24     51   +3.60 1 2 2 1 1   887    0 8.81 -34.82 ----- 44.1 42.2 41.4 52.6 15.1 -18.5 14.6 -18.8 14.8 -16.9 15.3 -16.0
2025-07-01 15:49:01,623 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:49:01,623 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:49:01,623 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.575287
2025-07-01 15:49:01,624 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:49:01,624 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:49:01,624 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:49:01,624 [DEBUG][       Thread-609480][   transport.py][1871] : EOF in transport thread
2025-07-01 15:49:01,625 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:49:01,625 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:49:01,625 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:48:54', tmtdew=11.11, humidity=47.21, cloud=0.0, wind=35.38, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:48:24.797', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:49:01,709 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:49:01,719 [DEBUG][       Thread-609483][   transport.py][1871] : starting thread (client mode): 0x81c8e20
2025-07-01 15:49:01,719 [DEBUG][       Thread-609483][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:49:01,734 [DEBUG][       Thread-609483][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:49:01,734 [ INFO][       Thread-609483][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:49:01,741 [DEBUG][       Thread-609483][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:49:01,741 [DEBUG][       Thread-609483][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:49:01,741 [DEBUG][       Thread-609483][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:49:01,741 [DEBUG][       Thread-609483][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:49:01,742 [DEBUG][       Thread-609483][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:49:01,742 [DEBUG][       Thread-609483][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:49:01,742 [DEBUG][       Thread-609483][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:49:01,742 [DEBUG][       Thread-609483][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:49:01,742 [DEBUG][       Thread-609483][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:49:01,742 [DEBUG][       Thread-609483][   transport.py][1871] : client lang: <none>
2025-07-01 15:49:01,742 [DEBUG][       Thread-609483][   transport.py][1871] : server lang: <none>
2025-07-01 15:49:01,742 [DEBUG][       Thread-609483][   transport.py][1871] : kex follows: False
2025-07-01 15:49:01,742 [DEBUG][       Thread-609483][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:49:01,742 [DEBUG][       Thread-609483][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:49:01,742 [DEBUG][       Thread-609483][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:49:01,742 [DEBUG][       Thread-609483][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:49:01,742 [DEBUG][       Thread-609483][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:49:01,742 [DEBUG][       Thread-609483][   transport.py][1871] : Compression: none
2025-07-01 15:49:01,742 [DEBUG][       Thread-609483][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:49:01,800 [DEBUG][       Thread-609483][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:49:01,800 [DEBUG][       Thread-609483][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:49:01,800 [DEBUG][       Thread-609483][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:49:01,800 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:49:01,801 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:49:01,860 [DEBUG][       Thread-609483][   transport.py][1871] : userauth is OK
2025-07-01 15:49:01,860 [DEBUG][       Thread-609483][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:49:01,860 [DEBUG][       Thread-609483][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:49:01,860 [DEBUG][       Thread-609483][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:49:01,860 [DEBUG][       Thread-609483][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:49:01,878 [ INFO][       Thread-609483][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:49:01,878 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:49:01,878 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:49:02,958 [DEBUG][       Thread-609483][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:49:02,959 [DEBUG][       Thread-609483][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:49:03,008 [DEBUG][       Thread-609483][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:49:03,008 [DEBUG][       Thread-609483][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:49:03,017 [DEBUG][       Thread-609483][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:49:03,026 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:49:03,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-07-01 15:49: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') -> 00000000
2025-07-01 15:49:03,044 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:49:03,045 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:49:03,045 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:49:03,053 [DEBUG][       Thread-609483][   transport.py][1871] : EOF in transport thread
2025-07-01 15:49:05,473 [DEBUG][Thread-609485 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:49:13,056 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:49:13,056 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:49:13,056 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:49:13,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-07-01 15:49:13,558 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 48, 54), 11.11, 47.21, 0.0, 35.38, 13.73, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:49:13,558 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:48:54
2025-07-01 15:49:13,645 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:49:13,649 [DEBUG][       Thread-609486][   transport.py][1871] : starting thread (client mode): 0x81e4ac0
2025-07-01 15:49:13,649 [DEBUG][       Thread-609486][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:49:13,669 [DEBUG][       Thread-609486][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:49:13,670 [ INFO][       Thread-609486][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:49:13,673 [DEBUG][       Thread-609486][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:49:13,673 [DEBUG][       Thread-609486][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:49:13,673 [DEBUG][       Thread-609486][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:49:13,673 [DEBUG][       Thread-609486][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:49:13,673 [DEBUG][       Thread-609486][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:49:13,673 [DEBUG][       Thread-609486][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:49:13,673 [DEBUG][       Thread-609486][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:49:13,673 [DEBUG][       Thread-609486][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:49:13,673 [DEBUG][       Thread-609486][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:49:13,673 [DEBUG][       Thread-609486][   transport.py][1871] : client lang: <none>
2025-07-01 15:49:13,673 [DEBUG][       Thread-609486][   transport.py][1871] : server lang: <none>
2025-07-01 15:49:13,673 [DEBUG][       Thread-609486][   transport.py][1871] : kex follows: False
2025-07-01 15:49:13,673 [DEBUG][       Thread-609486][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:49:13,673 [DEBUG][       Thread-609486][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:49:13,674 [DEBUG][       Thread-609486][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:49:13,674 [DEBUG][       Thread-609486][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:49:13,674 [DEBUG][       Thread-609486][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:49:13,674 [DEBUG][       Thread-609486][   transport.py][1871] : Compression: none
2025-07-01 15:49:13,674 [DEBUG][       Thread-609486][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:49:13,692 [DEBUG][       Thread-609486][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:49:13,692 [DEBUG][       Thread-609486][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:49:13,693 [DEBUG][       Thread-609486][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:49:13,693 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:49:13,693 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:49:13,694 [DEBUG][       Thread-609486][   transport.py][1871] : userauth is OK
2025-07-01 15:49:13,708 [ INFO][       Thread-609486][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:49:13,708 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:49:14,381 [DEBUG][       Thread-609486][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:49:14,382 [DEBUG][       Thread-609486][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:49:14,425 [DEBUG][       Thread-609486][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:49:14,425 [DEBUG][       Thread-609486][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:49:14,428 [DEBUG][       Thread-609486][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:49:14,437 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:49:14,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:49:14,439 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:49:14,441 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:49:14,446 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:49:14,448 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:49:14,448 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:49:14,449 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:49:14,449 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.575634 -999.00  +13.60  41.44     51   +3.70 1 2 2 1 1   887    0 8.77 -30.93 ----- 38.7 41.4 20.4 47.1 15.2 -18.5 14.7 -18.4 14.9 -16.3 15.5 -16.0
2025-07-01 15:49:14,449 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:49:14,449 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:49:14,449 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.575634
2025-07-01 15:49:14,450 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:49:14,450 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:49:14,451 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:49:14,451 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:49:14,451 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:49:14,451 [DEBUG][       Thread-609486][   transport.py][1871] : EOF in transport thread
2025-07-01 15:49:14,451 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:48:54', tmtdew=11.11, humidity=47.21, cloud=0.0, wind=35.38, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:48:54.778', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:49:14,510 [DEBUG][Thread-609489 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:49:14,535 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:49:14,547 [DEBUG][       Thread-609490][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 15:49:14,547 [DEBUG][       Thread-609490][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:49:14,562 [DEBUG][       Thread-609490][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:49:14,562 [ INFO][       Thread-609490][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:49:14,572 [DEBUG][       Thread-609490][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:49:14,572 [DEBUG][       Thread-609490][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:49:14,573 [DEBUG][       Thread-609490][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:49:14,573 [DEBUG][       Thread-609490][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:49:14,573 [DEBUG][       Thread-609490][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:49:14,573 [DEBUG][       Thread-609490][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:49:14,573 [DEBUG][       Thread-609490][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:49:14,573 [DEBUG][       Thread-609490][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:49:14,573 [DEBUG][       Thread-609490][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:49:14,573 [DEBUG][       Thread-609490][   transport.py][1871] : client lang: <none>
2025-07-01 15:49:14,573 [DEBUG][       Thread-609490][   transport.py][1871] : server lang: <none>
2025-07-01 15:49:14,573 [DEBUG][       Thread-609490][   transport.py][1871] : kex follows: False
2025-07-01 15:49:14,573 [DEBUG][       Thread-609490][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:49:14,573 [DEBUG][       Thread-609490][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:49:14,573 [DEBUG][       Thread-609490][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:49:14,573 [DEBUG][       Thread-609490][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:49:14,573 [DEBUG][       Thread-609490][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:49:14,573 [DEBUG][       Thread-609490][   transport.py][1871] : Compression: none
2025-07-01 15:49:14,573 [DEBUG][       Thread-609490][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:49:14,635 [DEBUG][       Thread-609490][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:49:14,635 [DEBUG][       Thread-609490][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:49:14,636 [DEBUG][       Thread-609490][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:49:14,636 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:49:14,637 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:49:14,691 [DEBUG][       Thread-609490][   transport.py][1871] : userauth is OK
2025-07-01 15:49:14,691 [DEBUG][       Thread-609490][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:49:14,691 [DEBUG][       Thread-609490][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:49:14,691 [DEBUG][       Thread-609490][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:49:14,691 [DEBUG][       Thread-609490][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:49:14,711 [ INFO][       Thread-609490][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:49:14,711 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:49:14,712 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:49:15,704 [DEBUG][       Thread-609490][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:49:15,704 [DEBUG][       Thread-609490][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:49:15,755 [DEBUG][       Thread-609490][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:49:15,755 [DEBUG][       Thread-609490][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:49:15,764 [DEBUG][       Thread-609490][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:49:15,771 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:49:15,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-07-01 15:49:15,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-07-01 15:49:15,787 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:49:15,788 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:49:15,788 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:49:15,796 [DEBUG][       Thread-609490][   transport.py][1871] : EOF in transport thread
2025-07-01 15:49:23,530 [DEBUG][Thread-609492 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:49:25,791 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:49:25,791 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:49:25,791 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:49:25,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-07-01 15:49:26,292 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 48, 54), 11.11, 47.21, 0.0, 35.38, 13.73, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:49:26,292 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:48:54
2025-07-01 15:49:26,379 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:49:26,386 [DEBUG][       Thread-609493][   transport.py][1871] : starting thread (client mode): 0x81561d0
2025-07-01 15:49:26,386 [DEBUG][       Thread-609493][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:49:26,409 [DEBUG][       Thread-609493][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:49:26,409 [ INFO][       Thread-609493][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:49:26,412 [DEBUG][       Thread-609493][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:49:26,412 [DEBUG][       Thread-609493][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:49:26,412 [DEBUG][       Thread-609493][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:49:26,412 [DEBUG][       Thread-609493][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:49:26,412 [DEBUG][       Thread-609493][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:49:26,412 [DEBUG][       Thread-609493][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:49:26,412 [DEBUG][       Thread-609493][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:49:26,412 [DEBUG][       Thread-609493][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:49:26,412 [DEBUG][       Thread-609493][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:49:26,412 [DEBUG][       Thread-609493][   transport.py][1871] : client lang: <none>
2025-07-01 15:49:26,412 [DEBUG][       Thread-609493][   transport.py][1871] : server lang: <none>
2025-07-01 15:49:26,412 [DEBUG][       Thread-609493][   transport.py][1871] : kex follows: False
2025-07-01 15:49:26,412 [DEBUG][       Thread-609493][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:49:26,412 [DEBUG][       Thread-609493][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:49:26,412 [DEBUG][       Thread-609493][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:49:26,412 [DEBUG][       Thread-609493][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:49:26,412 [DEBUG][       Thread-609493][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:49:26,412 [DEBUG][       Thread-609493][   transport.py][1871] : Compression: none
2025-07-01 15:49:26,412 [DEBUG][       Thread-609493][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:49:26,427 [DEBUG][       Thread-609493][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:49:26,428 [DEBUG][       Thread-609493][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:49:26,428 [DEBUG][       Thread-609493][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:49:26,428 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:49:26,428 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:49:26,428 [DEBUG][       Thread-609493][   transport.py][1871] : userauth is OK
2025-07-01 15:49:26,452 [ INFO][       Thread-609493][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:49:26,453 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:49:27,113 [DEBUG][       Thread-609493][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:49:27,113 [DEBUG][       Thread-609493][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:49:27,157 [DEBUG][       Thread-609493][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:49:27,157 [DEBUG][       Thread-609493][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:49:27,159 [DEBUG][       Thread-609493][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:49:27,170 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:49:27,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:49:27,171 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:49:27,172 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:49:27,175 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:49:27,176 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:49:27,176 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:49:27,176 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:49:27,176 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.575634 -999.00  +13.60  41.44     51   +3.70 1 2 2 1 1   887    0 8.77 -30.93 ----- 38.7 41.4 20.4 47.1 15.2 -18.5 14.7 -18.4 14.9 -16.3 15.5 -16.0
2025-07-01 15:49:27,176 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:49:27,176 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:49:27,176 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.575634
2025-07-01 15:49:27,176 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:49:27,176 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:49:27,176 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:49:27,176 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:49:27,176 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:49:27,176 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:48:54', tmtdew=11.11, humidity=47.21, cloud=0.0, wind=35.38, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:48:54.778', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:49:27,177 [DEBUG][       Thread-609493][   transport.py][1871] : EOF in transport thread
2025-07-01 15:49:27,251 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:49:27,263 [DEBUG][       Thread-609496][   transport.py][1871] : starting thread (client mode): 0x81e5210
2025-07-01 15:49:27,263 [DEBUG][       Thread-609496][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:49:27,288 [DEBUG][       Thread-609496][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:49:27,288 [ INFO][       Thread-609496][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:49:27,296 [DEBUG][       Thread-609496][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:49:27,296 [DEBUG][       Thread-609496][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:49:27,296 [DEBUG][       Thread-609496][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:49:27,296 [DEBUG][       Thread-609496][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:49:27,296 [DEBUG][       Thread-609496][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:49:27,296 [DEBUG][       Thread-609496][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:49:27,296 [DEBUG][       Thread-609496][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:49:27,296 [DEBUG][       Thread-609496][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:49:27,296 [DEBUG][       Thread-609496][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:49:27,296 [DEBUG][       Thread-609496][   transport.py][1871] : client lang: <none>
2025-07-01 15:49:27,296 [DEBUG][       Thread-609496][   transport.py][1871] : server lang: <none>
2025-07-01 15:49:27,296 [DEBUG][       Thread-609496][   transport.py][1871] : kex follows: False
2025-07-01 15:49:27,296 [DEBUG][       Thread-609496][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:49:27,296 [DEBUG][       Thread-609496][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:49:27,296 [DEBUG][       Thread-609496][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:49:27,296 [DEBUG][       Thread-609496][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:49:27,296 [DEBUG][       Thread-609496][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:49:27,296 [DEBUG][       Thread-609496][   transport.py][1871] : Compression: none
2025-07-01 15:49:27,296 [DEBUG][       Thread-609496][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:49:27,357 [DEBUG][       Thread-609496][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:49:27,357 [DEBUG][       Thread-609496][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:49:27,357 [DEBUG][       Thread-609496][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:49:27,357 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:49:27,357 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:49:27,422 [DEBUG][       Thread-609496][   transport.py][1871] : userauth is OK
2025-07-01 15:49:27,422 [DEBUG][       Thread-609496][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:49:27,422 [DEBUG][       Thread-609496][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:49:27,422 [DEBUG][       Thread-609496][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:49:27,422 [DEBUG][       Thread-609496][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:49:27,436 [ INFO][       Thread-609496][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:49:27,437 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:49:27,437 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:49:28,492 [DEBUG][       Thread-609496][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:49:28,493 [DEBUG][       Thread-609496][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:49:28,546 [DEBUG][       Thread-609496][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:49:28,546 [DEBUG][       Thread-609496][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:49:28,558 [DEBUG][       Thread-609496][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:49:28,570 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:49:28,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-07-01 15:49:28,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') -> 00000000
2025-07-01 15:49:28,593 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:49:28,594 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:49:28,594 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:49:28,603 [DEBUG][       Thread-609496][   transport.py][1871] : EOF in transport thread
2025-07-01 15:49:32,550 [DEBUG][Thread-609498 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:49:37,486 [DEBUG][Thread-609499 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:49:38,604 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:49:38,604 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:49:38,604 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:49:38,607 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 15:49:39,094 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 49, 26), 11.16, 46.92, 0.0, 36.59, 13.79, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:49:39,094 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:49:26
2025-07-01 15:49:39,180 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:49:39,184 [DEBUG][       Thread-609500][   transport.py][1871] : starting thread (client mode): 0x818d090
2025-07-01 15:49:39,184 [DEBUG][       Thread-609500][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:49:39,198 [DEBUG][       Thread-609500][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:49:39,198 [ INFO][       Thread-609500][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:49:39,200 [DEBUG][       Thread-609500][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:49:39,200 [DEBUG][       Thread-609500][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:49:39,200 [DEBUG][       Thread-609500][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:49:39,200 [DEBUG][       Thread-609500][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:49:39,200 [DEBUG][       Thread-609500][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:49:39,200 [DEBUG][       Thread-609500][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:49:39,200 [DEBUG][       Thread-609500][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:49:39,200 [DEBUG][       Thread-609500][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:49:39,200 [DEBUG][       Thread-609500][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:49:39,200 [DEBUG][       Thread-609500][   transport.py][1871] : client lang: <none>
2025-07-01 15:49:39,200 [DEBUG][       Thread-609500][   transport.py][1871] : server lang: <none>
2025-07-01 15:49:39,200 [DEBUG][       Thread-609500][   transport.py][1871] : kex follows: False
2025-07-01 15:49:39,200 [DEBUG][       Thread-609500][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:49:39,200 [DEBUG][       Thread-609500][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:49:39,200 [DEBUG][       Thread-609500][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:49:39,200 [DEBUG][       Thread-609500][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:49:39,200 [DEBUG][       Thread-609500][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:49:39,200 [DEBUG][       Thread-609500][   transport.py][1871] : Compression: none
2025-07-01 15:49:39,200 [DEBUG][       Thread-609500][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:49:39,215 [DEBUG][       Thread-609500][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:49:39,216 [DEBUG][       Thread-609500][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:49:39,216 [DEBUG][       Thread-609500][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:49:39,216 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:49:39,216 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:49:39,217 [DEBUG][       Thread-609500][   transport.py][1871] : userauth is OK
2025-07-01 15:49:39,230 [ INFO][       Thread-609500][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:49:39,230 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:49:39,848 [DEBUG][       Thread-609500][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:49:39,848 [DEBUG][       Thread-609500][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:49:39,889 [DEBUG][       Thread-609500][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:49:39,889 [DEBUG][       Thread-609500][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:49:39,892 [DEBUG][       Thread-609500][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:49:39,904 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:49:39,905 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:49:39,906 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:49:39,908 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:49:39,913 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:49:39,915 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:49:39,915 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:49:39,916 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:49:39,916 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.575981 -999.00  +13.70  37.74     51   +3.90 1 2 2 1 1   887    0 8.79 -30.82 ----- 35.5 37.7 24.0 47.5 15.3 -18.2 14.8 -18.3 15.0 -16.0 15.5 -15.9
2025-07-01 15:49:39,916 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:49:39,916 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:49:39,916 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.575981
2025-07-01 15:49:39,917 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:49:39,917 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:49:39,917 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:49:39,917 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:49:39,917 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:49:39,918 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:49:26', tmtdew=11.16, humidity=46.92, cloud=0.0, wind=36.59, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:49:24.758', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:49:39,919 [DEBUG][       Thread-609500][   transport.py][1871] : EOF in transport thread
2025-07-01 15:49:40,001 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:49:40,010 [DEBUG][       Thread-609503][   transport.py][1871] : starting thread (client mode): 0x75aae30
2025-07-01 15:49:40,011 [DEBUG][       Thread-609503][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:49:40,026 [DEBUG][       Thread-609503][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:49:40,026 [ INFO][       Thread-609503][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:49:40,034 [DEBUG][       Thread-609503][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:49:40,034 [DEBUG][       Thread-609503][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:49:40,034 [DEBUG][       Thread-609503][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:49:40,034 [DEBUG][       Thread-609503][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:49:40,034 [DEBUG][       Thread-609503][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:49:40,034 [DEBUG][       Thread-609503][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:49:40,034 [DEBUG][       Thread-609503][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:49:40,034 [DEBUG][       Thread-609503][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:49:40,034 [DEBUG][       Thread-609503][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:49:40,034 [DEBUG][       Thread-609503][   transport.py][1871] : client lang: <none>
2025-07-01 15:49:40,034 [DEBUG][       Thread-609503][   transport.py][1871] : server lang: <none>
2025-07-01 15:49:40,034 [DEBUG][       Thread-609503][   transport.py][1871] : kex follows: False
2025-07-01 15:49:40,034 [DEBUG][       Thread-609503][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:49:40,034 [DEBUG][       Thread-609503][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:49:40,034 [DEBUG][       Thread-609503][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:49:40,034 [DEBUG][       Thread-609503][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:49:40,034 [DEBUG][       Thread-609503][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:49:40,034 [DEBUG][       Thread-609503][   transport.py][1871] : Compression: none
2025-07-01 15:49:40,035 [DEBUG][       Thread-609503][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:49:40,090 [DEBUG][       Thread-609503][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:49:40,091 [DEBUG][       Thread-609503][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:49:40,091 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:49:40,092 [DEBUG][       Thread-609503][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:49:40,093 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:49:40,146 [DEBUG][       Thread-609503][   transport.py][1871] : userauth is OK
2025-07-01 15:49:40,147 [DEBUG][       Thread-609503][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:49:40,147 [DEBUG][       Thread-609503][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:49:40,147 [DEBUG][       Thread-609503][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:49:40,147 [DEBUG][       Thread-609503][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:49:40,165 [ INFO][       Thread-609503][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:49:40,166 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:49:40,166 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:49:41,181 [DEBUG][       Thread-609503][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:49:41,181 [DEBUG][       Thread-609503][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:49:41,233 [DEBUG][       Thread-609503][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:49:41,233 [DEBUG][       Thread-609503][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:49:41,247 [DEBUG][       Thread-609503][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:49:41,256 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:49:41,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-07-01 15:49:41,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-07-01 15:49:41,273 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:49:41,273 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:49:41,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:49:41,282 [DEBUG][       Thread-609503][   transport.py][1871] : EOF in transport thread
2025-07-01 15:49:41,573 [DEBUG][Thread-609505 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:49:50,611 [DEBUG][Thread-609506 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:49:51,284 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:49:51,284 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:49:51,284 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:49:51,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-07-01 15:49:51,765 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 49, 26), 11.16, 46.92, 0.0, 36.59, 13.79, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:49:51,765 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:49:26
2025-07-01 15:49:51,852 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:49:51,858 [DEBUG][       Thread-609507][   transport.py][1871] : starting thread (client mode): 0x818c400
2025-07-01 15:49:51,858 [DEBUG][       Thread-609507][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:49:51,879 [DEBUG][       Thread-609507][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:49:51,879 [ INFO][       Thread-609507][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:49:51,883 [DEBUG][       Thread-609507][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:49:51,883 [DEBUG][       Thread-609507][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:49:51,883 [DEBUG][       Thread-609507][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:49:51,883 [DEBUG][       Thread-609507][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:49:51,883 [DEBUG][       Thread-609507][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:49:51,883 [DEBUG][       Thread-609507][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:49:51,883 [DEBUG][       Thread-609507][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:49:51,883 [DEBUG][       Thread-609507][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:49:51,883 [DEBUG][       Thread-609507][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:49:51,883 [DEBUG][       Thread-609507][   transport.py][1871] : client lang: <none>
2025-07-01 15:49:51,883 [DEBUG][       Thread-609507][   transport.py][1871] : server lang: <none>
2025-07-01 15:49:51,883 [DEBUG][       Thread-609507][   transport.py][1871] : kex follows: False
2025-07-01 15:49:51,883 [DEBUG][       Thread-609507][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:49:51,883 [DEBUG][       Thread-609507][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:49:51,883 [DEBUG][       Thread-609507][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:49:51,883 [DEBUG][       Thread-609507][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:49:51,883 [DEBUG][       Thread-609507][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:49:51,883 [DEBUG][       Thread-609507][   transport.py][1871] : Compression: none
2025-07-01 15:49:51,883 [DEBUG][       Thread-609507][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:49:51,901 [DEBUG][       Thread-609507][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:49:51,901 [DEBUG][       Thread-609507][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:49:51,902 [DEBUG][       Thread-609507][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:49:51,902 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:49:51,902 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:49:51,903 [DEBUG][       Thread-609507][   transport.py][1871] : userauth is OK
2025-07-01 15:49:51,917 [ INFO][       Thread-609507][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:49:51,917 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:49:52,574 [DEBUG][       Thread-609507][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:49:52,574 [DEBUG][       Thread-609507][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:49:52,617 [DEBUG][       Thread-609507][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:49:52,617 [DEBUG][       Thread-609507][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:49:52,621 [DEBUG][       Thread-609507][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:49:52,633 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:49:52,633 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:49:52,635 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:49:52,637 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:49:52,643 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:49:52,645 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:49:52,645 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:49:52,646 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:49:52,646 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.575981 -999.00  +13.70  37.74     51   +3.90 1 2 2 1 1   887    0 8.79 -30.82 ----- 35.5 37.7 24.0 47.5 15.3 -18.2 14.8 -18.3 15.0 -16.0 15.5 -15.9
2025-07-01 15:49:52,646 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:49:52,646 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:49:52,646 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.575981
2025-07-01 15:49:52,647 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:49:52,647 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:49:52,648 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:49:52,648 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:49:52,648 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:49:52,648 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:49:26', tmtdew=11.16, humidity=46.92, cloud=0.0, wind=36.59, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:49:24.758', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:49:52,649 [DEBUG][       Thread-609507][   transport.py][1871] : EOF in transport thread
2025-07-01 15:49:52,730 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:49:52,741 [DEBUG][       Thread-609510][   transport.py][1871] : starting thread (client mode): 0x81db8b0
2025-07-01 15:49:52,741 [DEBUG][       Thread-609510][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:49:52,756 [DEBUG][       Thread-609510][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:49:52,756 [ INFO][       Thread-609510][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:49:52,763 [DEBUG][       Thread-609510][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:49:52,763 [DEBUG][       Thread-609510][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:49:52,763 [DEBUG][       Thread-609510][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:49:52,763 [DEBUG][       Thread-609510][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:49:52,763 [DEBUG][       Thread-609510][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:49:52,763 [DEBUG][       Thread-609510][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:49:52,764 [DEBUG][       Thread-609510][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:49:52,764 [DEBUG][       Thread-609510][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:49:52,764 [DEBUG][       Thread-609510][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:49:52,764 [DEBUG][       Thread-609510][   transport.py][1871] : client lang: <none>
2025-07-01 15:49:52,764 [DEBUG][       Thread-609510][   transport.py][1871] : server lang: <none>
2025-07-01 15:49:52,764 [DEBUG][       Thread-609510][   transport.py][1871] : kex follows: False
2025-07-01 15:49:52,764 [DEBUG][       Thread-609510][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:49:52,764 [DEBUG][       Thread-609510][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:49:52,764 [DEBUG][       Thread-609510][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:49:52,764 [DEBUG][       Thread-609510][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:49:52,764 [DEBUG][       Thread-609510][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:49:52,764 [DEBUG][       Thread-609510][   transport.py][1871] : Compression: none
2025-07-01 15:49:52,764 [DEBUG][       Thread-609510][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:49:52,822 [DEBUG][       Thread-609510][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:49:52,822 [DEBUG][       Thread-609510][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:49:52,823 [DEBUG][       Thread-609510][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:49:52,823 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:49:52,823 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:49:52,881 [DEBUG][       Thread-609510][   transport.py][1871] : userauth is OK
2025-07-01 15:49:52,881 [DEBUG][       Thread-609510][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:49:52,881 [DEBUG][       Thread-609510][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:49:52,881 [DEBUG][       Thread-609510][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:49:52,881 [DEBUG][       Thread-609510][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:49:52,898 [ INFO][       Thread-609510][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:49:52,899 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:49:52,899 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:49:53,878 [DEBUG][       Thread-609510][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:49:53,878 [DEBUG][       Thread-609510][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:49:53,927 [DEBUG][       Thread-609510][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:49:53,927 [DEBUG][       Thread-609510][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:49:53,935 [DEBUG][       Thread-609510][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:49:53,943 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:49:53,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-07-01 15:49:53,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-07-01 15:49:53,959 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:49:53,959 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:49:53,959 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:49:53,967 [DEBUG][       Thread-609510][   transport.py][1871] : EOF in transport thread
2025-07-01 15:49:59,629 [DEBUG][Thread-609512 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:50:03,970 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:50:03,970 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:50:03,970 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:50:03,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-07-01 15:50:04,473 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 49, 58), 11.18, 46.87, 0.0, 37.07, 13.83, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:50:04,473 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:49:58
2025-07-01 15:50:04,559 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:50:04,563 [DEBUG][       Thread-609513][   transport.py][1871] : starting thread (client mode): 0x818ecb0
2025-07-01 15:50:04,563 [DEBUG][       Thread-609513][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:50:04,584 [DEBUG][       Thread-609513][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:50:04,584 [ INFO][       Thread-609513][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:50:04,588 [DEBUG][       Thread-609513][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:50:04,588 [DEBUG][       Thread-609513][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:50:04,588 [DEBUG][       Thread-609513][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:50:04,588 [DEBUG][       Thread-609513][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:50:04,588 [DEBUG][       Thread-609513][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:50:04,588 [DEBUG][       Thread-609513][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:50:04,588 [DEBUG][       Thread-609513][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:50:04,588 [DEBUG][       Thread-609513][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:50:04,588 [DEBUG][       Thread-609513][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:50:04,588 [DEBUG][       Thread-609513][   transport.py][1871] : client lang: <none>
2025-07-01 15:50:04,588 [DEBUG][       Thread-609513][   transport.py][1871] : server lang: <none>
2025-07-01 15:50:04,588 [DEBUG][       Thread-609513][   transport.py][1871] : kex follows: False
2025-07-01 15:50:04,588 [DEBUG][       Thread-609513][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:50:04,589 [DEBUG][       Thread-609513][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:50:04,589 [DEBUG][       Thread-609513][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:50:04,589 [DEBUG][       Thread-609513][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:50:04,589 [DEBUG][       Thread-609513][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:50:04,589 [DEBUG][       Thread-609513][   transport.py][1871] : Compression: none
2025-07-01 15:50:04,589 [DEBUG][       Thread-609513][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:50:04,606 [DEBUG][       Thread-609513][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:50:04,606 [DEBUG][       Thread-609513][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:50:04,607 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:50:04,607 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:50:04,608 [DEBUG][       Thread-609513][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:50:04,608 [DEBUG][       Thread-609513][   transport.py][1871] : userauth is OK
2025-07-01 15:50:04,621 [ INFO][       Thread-609513][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:50:04,622 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:50:05,282 [DEBUG][       Thread-609513][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:50:05,283 [DEBUG][       Thread-609513][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:50:05,325 [DEBUG][       Thread-609513][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:50:05,325 [DEBUG][       Thread-609513][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:50:05,328 [DEBUG][       Thread-609513][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:50:05,343 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:50:05,343 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:50:05,345 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:50:05,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:50:05,352 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:50:05,354 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:50:05,355 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:50:05,355 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:50:05,355 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.575981 -999.00  +13.70  37.74     51   +3.90 1 2 2 1 1   887    0 8.79 -30.82 ----- 35.5 37.7 24.0 47.5 15.3 -18.2 14.8 -18.3 15.0 -16.0 15.5 -15.9
2025-07-01 15:50:05,356 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:50:05,356 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:50:05,356 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.575981
2025-07-01 15:50:05,356 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:50:05,357 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:50:05,357 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:50:05,357 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:50:05,357 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:50:05,357 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:49:58', tmtdew=11.18, humidity=46.87, cloud=0.0, wind=37.07, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:49:24.758', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:50:05,358 [DEBUG][       Thread-609513][   transport.py][1871] : EOF in transport thread
2025-07-01 15:50:05,443 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:50:05,452 [DEBUG][       Thread-609516][   transport.py][1871] : starting thread (client mode): 0x75a9f90
2025-07-01 15:50:05,452 [DEBUG][       Thread-609516][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:50:05,467 [DEBUG][       Thread-609516][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:50:05,467 [ INFO][       Thread-609516][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:50:05,476 [DEBUG][       Thread-609516][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:50:05,476 [DEBUG][       Thread-609516][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:50:05,476 [DEBUG][       Thread-609516][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:50:05,476 [DEBUG][       Thread-609516][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:50:05,477 [DEBUG][       Thread-609516][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:50:05,477 [DEBUG][       Thread-609516][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:50:05,477 [DEBUG][       Thread-609516][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:50:05,477 [DEBUG][       Thread-609516][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:50:05,477 [DEBUG][       Thread-609516][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:50:05,477 [DEBUG][       Thread-609516][   transport.py][1871] : client lang: <none>
2025-07-01 15:50:05,477 [DEBUG][       Thread-609516][   transport.py][1871] : server lang: <none>
2025-07-01 15:50:05,477 [DEBUG][       Thread-609516][   transport.py][1871] : kex follows: False
2025-07-01 15:50:05,477 [DEBUG][       Thread-609516][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:50:05,477 [DEBUG][       Thread-609516][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:50:05,477 [DEBUG][       Thread-609516][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:50:05,477 [DEBUG][       Thread-609516][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:50:05,477 [DEBUG][       Thread-609516][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:50:05,477 [DEBUG][       Thread-609516][   transport.py][1871] : Compression: none
2025-07-01 15:50:05,477 [DEBUG][       Thread-609516][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:50:05,534 [DEBUG][       Thread-609516][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:50:05,534 [DEBUG][       Thread-609516][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:50:05,535 [DEBUG][       Thread-609516][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:50:05,535 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:50:05,536 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:50:05,594 [DEBUG][       Thread-609516][   transport.py][1871] : userauth is OK
2025-07-01 15:50:05,594 [DEBUG][       Thread-609516][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:50:05,594 [DEBUG][       Thread-609516][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:50:05,594 [DEBUG][       Thread-609516][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:50:05,594 [DEBUG][       Thread-609516][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:50:05,613 [ INFO][       Thread-609516][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:50:05,614 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:50:05,614 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:50:06,680 [DEBUG][       Thread-609516][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:50:06,681 [DEBUG][       Thread-609516][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:50:06,732 [DEBUG][       Thread-609516][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:50:06,733 [DEBUG][       Thread-609516][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:50:06,742 [DEBUG][       Thread-609516][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:50:06,751 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:50:06,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-07-01 15:50:06,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-07-01 15:50:06,769 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:50:06,769 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:50:06,769 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:50:06,778 [DEBUG][       Thread-609516][   transport.py][1871] : EOF in transport thread
2025-07-01 15:50:08,649 [DEBUG][Thread-609518 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:50:16,779 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:50:16,780 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:50:16,780 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:50:16,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-07-01 15:50:17,279 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 49, 58), 11.18, 46.87, 0.0, 37.07, 13.83, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:50:17,279 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:49:58
2025-07-01 15:50:17,366 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:50:17,371 [DEBUG][       Thread-609519][   transport.py][1871] : starting thread (client mode): 0x81e7d60
2025-07-01 15:50:17,371 [DEBUG][       Thread-609519][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:50:17,391 [DEBUG][       Thread-609519][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:50:17,391 [ INFO][       Thread-609519][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:50:17,395 [DEBUG][       Thread-609519][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:50:17,395 [DEBUG][       Thread-609519][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:50:17,395 [DEBUG][       Thread-609519][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:50:17,395 [DEBUG][       Thread-609519][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:50:17,395 [DEBUG][       Thread-609519][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:50:17,395 [DEBUG][       Thread-609519][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:50:17,395 [DEBUG][       Thread-609519][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:50:17,395 [DEBUG][       Thread-609519][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:50:17,395 [DEBUG][       Thread-609519][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:50:17,395 [DEBUG][       Thread-609519][   transport.py][1871] : client lang: <none>
2025-07-01 15:50:17,395 [DEBUG][       Thread-609519][   transport.py][1871] : server lang: <none>
2025-07-01 15:50:17,395 [DEBUG][       Thread-609519][   transport.py][1871] : kex follows: False
2025-07-01 15:50:17,395 [DEBUG][       Thread-609519][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:50:17,395 [DEBUG][       Thread-609519][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:50:17,395 [DEBUG][       Thread-609519][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:50:17,395 [DEBUG][       Thread-609519][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:50:17,395 [DEBUG][       Thread-609519][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:50:17,395 [DEBUG][       Thread-609519][   transport.py][1871] : Compression: none
2025-07-01 15:50:17,395 [DEBUG][       Thread-609519][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:50:17,412 [DEBUG][       Thread-609519][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:50:17,413 [DEBUG][       Thread-609519][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:50:17,413 [DEBUG][       Thread-609519][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:50:17,414 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:50:17,414 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:50:17,415 [DEBUG][       Thread-609519][   transport.py][1871] : userauth is OK
2025-07-01 15:50:17,440 [ INFO][       Thread-609519][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:50:17,440 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:50:17,684 [DEBUG][Thread-609521 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:50:18,105 [DEBUG][       Thread-609519][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:50:18,105 [DEBUG][       Thread-609519][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:50:18,153 [DEBUG][       Thread-609519][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:50:18,153 [DEBUG][       Thread-609519][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:50:18,156 [DEBUG][       Thread-609519][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:50:18,167 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:50:18,167 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:50:18,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:50:18,171 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:50:18,176 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:50:18,178 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:50:18,178 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:50:18,179 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:50:18,179 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.576328 -999.00  +13.70  40.08     51   +3.80 1 2 2 1 1   887    0 8.70 -31.57 ----- 44.5 40.1 19.1 46.8 15.4 -17.6 14.8 -17.9 15.1 -16.2 15.6 -15.7
2025-07-01 15:50:18,179 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:50:18,179 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:50:18,179 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.576328
2025-07-01 15:50:18,179 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:50:18,180 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:50:18,180 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:50:18,180 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:50:18,180 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:50:18,180 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:49:58', tmtdew=11.18, humidity=46.87, cloud=0.0, wind=37.07, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:49:54.739', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:50:18,181 [DEBUG][       Thread-609519][   transport.py][1871] : EOF in transport thread
2025-07-01 15:50:18,266 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:50:18,276 [DEBUG][       Thread-609523][   transport.py][1871] : starting thread (client mode): 0x8157160
2025-07-01 15:50:18,276 [DEBUG][       Thread-609523][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:50:18,291 [DEBUG][       Thread-609523][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:50:18,291 [ INFO][       Thread-609523][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:50:18,298 [DEBUG][       Thread-609523][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:50:18,298 [DEBUG][       Thread-609523][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:50:18,298 [DEBUG][       Thread-609523][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:50:18,298 [DEBUG][       Thread-609523][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:50:18,298 [DEBUG][       Thread-609523][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:50:18,298 [DEBUG][       Thread-609523][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:50:18,298 [DEBUG][       Thread-609523][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:50:18,298 [DEBUG][       Thread-609523][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:50:18,298 [DEBUG][       Thread-609523][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:50:18,298 [DEBUG][       Thread-609523][   transport.py][1871] : client lang: <none>
2025-07-01 15:50:18,298 [DEBUG][       Thread-609523][   transport.py][1871] : server lang: <none>
2025-07-01 15:50:18,298 [DEBUG][       Thread-609523][   transport.py][1871] : kex follows: False
2025-07-01 15:50:18,298 [DEBUG][       Thread-609523][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:50:18,298 [DEBUG][       Thread-609523][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:50:18,299 [DEBUG][       Thread-609523][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:50:18,299 [DEBUG][       Thread-609523][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:50:18,299 [DEBUG][       Thread-609523][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:50:18,299 [DEBUG][       Thread-609523][   transport.py][1871] : Compression: none
2025-07-01 15:50:18,299 [DEBUG][       Thread-609523][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:50:18,357 [DEBUG][       Thread-609523][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:50:18,358 [DEBUG][       Thread-609523][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:50:18,359 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:50:18,359 [DEBUG][       Thread-609523][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:50:18,360 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:50:18,414 [DEBUG][       Thread-609523][   transport.py][1871] : userauth is OK
2025-07-01 15:50:18,415 [DEBUG][       Thread-609523][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:50:18,415 [DEBUG][       Thread-609523][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:50:18,415 [DEBUG][       Thread-609523][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:50:18,415 [DEBUG][       Thread-609523][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:50:18,435 [ INFO][       Thread-609523][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:50:18,435 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:50:18,436 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:50:19,436 [DEBUG][       Thread-609523][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:50:19,437 [DEBUG][       Thread-609523][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:50:19,488 [DEBUG][       Thread-609523][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:50:19,488 [DEBUG][       Thread-609523][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:50:19,498 [DEBUG][       Thread-609523][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:50:19,510 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:50:19,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-07-01 15:50:19,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-07-01 15:50:19,528 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:50:19,528 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:50:19,529 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:50:19,536 [DEBUG][       Thread-609523][   transport.py][1871] : EOF in transport thread
2025-07-01 15:50:26,709 [DEBUG][Thread-609525 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:50:29,532 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:50:29,533 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:50:29,533 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:50:29,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-07-01 15:50:30,020 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 49, 58), 11.18, 46.87, 0.0, 37.07, 13.83, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:50:30,020 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:49:58
2025-07-01 15:50:30,107 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:50:30,110 [DEBUG][       Thread-609526][   transport.py][1871] : starting thread (client mode): 0x81c8e20
2025-07-01 15:50:30,110 [DEBUG][       Thread-609526][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:50:30,131 [DEBUG][       Thread-609526][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:50:30,131 [ INFO][       Thread-609526][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:50:30,134 [DEBUG][       Thread-609526][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:50:30,134 [DEBUG][       Thread-609526][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:50:30,134 [DEBUG][       Thread-609526][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:50:30,134 [DEBUG][       Thread-609526][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:50:30,134 [DEBUG][       Thread-609526][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:50:30,134 [DEBUG][       Thread-609526][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:50:30,134 [DEBUG][       Thread-609526][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:50:30,134 [DEBUG][       Thread-609526][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:50:30,134 [DEBUG][       Thread-609526][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:50:30,134 [DEBUG][       Thread-609526][   transport.py][1871] : client lang: <none>
2025-07-01 15:50:30,134 [DEBUG][       Thread-609526][   transport.py][1871] : server lang: <none>
2025-07-01 15:50:30,134 [DEBUG][       Thread-609526][   transport.py][1871] : kex follows: False
2025-07-01 15:50:30,134 [DEBUG][       Thread-609526][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:50:30,134 [DEBUG][       Thread-609526][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:50:30,134 [DEBUG][       Thread-609526][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:50:30,134 [DEBUG][       Thread-609526][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:50:30,134 [DEBUG][       Thread-609526][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:50:30,134 [DEBUG][       Thread-609526][   transport.py][1871] : Compression: none
2025-07-01 15:50:30,134 [DEBUG][       Thread-609526][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:50:30,148 [DEBUG][       Thread-609526][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:50:30,148 [DEBUG][       Thread-609526][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:50:30,148 [DEBUG][       Thread-609526][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:50:30,149 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:50:30,149 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:50:30,149 [DEBUG][       Thread-609526][   transport.py][1871] : userauth is OK
2025-07-01 15:50:30,173 [ INFO][       Thread-609526][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:50:30,173 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:50:30,810 [DEBUG][       Thread-609526][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:50:30,810 [DEBUG][       Thread-609526][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:50:30,853 [DEBUG][       Thread-609526][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:50:30,853 [DEBUG][       Thread-609526][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:50:30,855 [DEBUG][       Thread-609526][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:50:30,866 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:50:30,866 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:50:30,868 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:50:30,869 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:50:30,872 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:50:30,873 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:50:30,873 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:50:30,874 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:50:30,874 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.576328 -999.00  +13.70  40.08     51   +3.80 1 2 2 1 1   887    0 8.70 -31.57 ----- 44.5 40.1 19.1 46.8 15.4 -17.6 14.8 -17.9 15.1 -16.2 15.6 -15.7
2025-07-01 15:50:30,874 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:50:30,874 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:50:30,874 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.576328
2025-07-01 15:50:30,874 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:50:30,874 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:50:30,874 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:50:30,874 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:50:30,874 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:50:30,874 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:49:58', tmtdew=11.18, humidity=46.87, cloud=0.0, wind=37.07, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:49:54.739', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:50:30,875 [DEBUG][       Thread-609526][   transport.py][1871] : EOF in transport thread
2025-07-01 15:50:30,949 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:50:30,960 [DEBUG][       Thread-609529][   transport.py][1871] : starting thread (client mode): 0x81d9540
2025-07-01 15:50:30,960 [DEBUG][       Thread-609529][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:50:30,976 [DEBUG][       Thread-609529][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:50:30,976 [ INFO][       Thread-609529][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:50:30,983 [DEBUG][       Thread-609529][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:50:30,983 [DEBUG][       Thread-609529][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:50:30,983 [DEBUG][       Thread-609529][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:50:30,983 [DEBUG][       Thread-609529][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:50:30,983 [DEBUG][       Thread-609529][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:50:30,983 [DEBUG][       Thread-609529][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:50:30,983 [DEBUG][       Thread-609529][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:50:30,983 [DEBUG][       Thread-609529][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:50:30,983 [DEBUG][       Thread-609529][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:50:30,983 [DEBUG][       Thread-609529][   transport.py][1871] : client lang: <none>
2025-07-01 15:50:30,983 [DEBUG][       Thread-609529][   transport.py][1871] : server lang: <none>
2025-07-01 15:50:30,983 [DEBUG][       Thread-609529][   transport.py][1871] : kex follows: False
2025-07-01 15:50:30,983 [DEBUG][       Thread-609529][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:50:30,983 [DEBUG][       Thread-609529][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:50:30,983 [DEBUG][       Thread-609529][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:50:30,983 [DEBUG][       Thread-609529][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:50:30,983 [DEBUG][       Thread-609529][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:50:30,983 [DEBUG][       Thread-609529][   transport.py][1871] : Compression: none
2025-07-01 15:50:30,983 [DEBUG][       Thread-609529][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:50:31,050 [DEBUG][       Thread-609529][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:50:31,050 [DEBUG][       Thread-609529][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:50:31,050 [DEBUG][       Thread-609529][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:50:31,050 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:50:31,051 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:50:31,109 [DEBUG][       Thread-609529][   transport.py][1871] : userauth is OK
2025-07-01 15:50:31,109 [DEBUG][       Thread-609529][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:50:31,109 [DEBUG][       Thread-609529][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:50:31,109 [DEBUG][       Thread-609529][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:50:31,109 [DEBUG][       Thread-609529][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:50:31,123 [ INFO][       Thread-609529][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:50:31,123 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:50:31,123 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:50:32,197 [DEBUG][       Thread-609529][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:50:32,197 [DEBUG][       Thread-609529][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:50:32,247 [DEBUG][       Thread-609529][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:50:32,247 [DEBUG][       Thread-609529][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:50:32,255 [DEBUG][       Thread-609529][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:50:32,263 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:50:32,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-07-01 15:50:32,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-07-01 15:50:32,280 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:50:32,280 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:50:32,280 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:50:32,287 [DEBUG][       Thread-609529][   transport.py][1871] : EOF in transport thread
2025-07-01 15:50:35,727 [DEBUG][Thread-609531 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:50:37,515 [DEBUG][Thread-609532 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:50:42,290 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:50:42,290 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:50:42,290 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:50:42,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-07-01 15:50:42,785 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 50, 30), 11.26, 46.72, 0.0, 38.37, 13.88, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:50:42,785 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:50:30
2025-07-01 15:50:42,870 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:50:42,874 [DEBUG][       Thread-609533][   transport.py][1871] : starting thread (client mode): 0x81d8ac0
2025-07-01 15:50:42,874 [DEBUG][       Thread-609533][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:50:42,894 [DEBUG][       Thread-609533][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:50:42,894 [ INFO][       Thread-609533][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:50:42,896 [DEBUG][       Thread-609533][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:50:42,896 [DEBUG][       Thread-609533][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:50:42,896 [DEBUG][       Thread-609533][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:50:42,896 [DEBUG][       Thread-609533][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:50:42,896 [DEBUG][       Thread-609533][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:50:42,896 [DEBUG][       Thread-609533][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:50:42,896 [DEBUG][       Thread-609533][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:50:42,896 [DEBUG][       Thread-609533][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:50:42,896 [DEBUG][       Thread-609533][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:50:42,896 [DEBUG][       Thread-609533][   transport.py][1871] : client lang: <none>
2025-07-01 15:50:42,896 [DEBUG][       Thread-609533][   transport.py][1871] : server lang: <none>
2025-07-01 15:50:42,896 [DEBUG][       Thread-609533][   transport.py][1871] : kex follows: False
2025-07-01 15:50:42,896 [DEBUG][       Thread-609533][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:50:42,896 [DEBUG][       Thread-609533][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:50:42,896 [DEBUG][       Thread-609533][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:50:42,896 [DEBUG][       Thread-609533][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:50:42,896 [DEBUG][       Thread-609533][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:50:42,896 [DEBUG][       Thread-609533][   transport.py][1871] : Compression: none
2025-07-01 15:50:42,896 [DEBUG][       Thread-609533][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:50:42,905 [DEBUG][       Thread-609533][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:50:42,905 [DEBUG][       Thread-609533][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:50:42,905 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:50:42,906 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:50:42,906 [DEBUG][       Thread-609533][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:50:42,906 [DEBUG][       Thread-609533][   transport.py][1871] : userauth is OK
2025-07-01 15:50:42,919 [ INFO][       Thread-609533][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:50:42,919 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:50:43,544 [DEBUG][       Thread-609533][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:50:43,544 [DEBUG][       Thread-609533][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:50:43,584 [DEBUG][       Thread-609533][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:50:43,585 [DEBUG][       Thread-609533][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:50:43,587 [DEBUG][       Thread-609533][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:50:43,600 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:50:43,600 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:50:43,602 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:50:43,604 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:50:43,610 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:50:43,612 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:50:43,612 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:50:43,613 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:50:43,613 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.576675 -999.00  +13.70  29.76     51   +4.00 1 2 1 1 1   887    0 9.00 -31.45 ----- 31.5 29.8 1.8 51.5 15.5 -17.0 14.9 -17.5 15.2 -16.1 15.8 -15.4
2025-07-01 15:50:43,613 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:50:43,613 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:50:43,613 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.576675
2025-07-01 15:50:43,613 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:50:43,614 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:50:43,614 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:50:43,614 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:50:43,614 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:50:43,614 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:50:30', tmtdew=11.26, humidity=46.72, cloud=0.0, wind=38.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:50:24.720', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:50:43,615 [DEBUG][       Thread-609533][   transport.py][1871] : EOF in transport thread
2025-07-01 15:50:43,699 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:50:43,708 [DEBUG][       Thread-609536][   transport.py][1871] : starting thread (client mode): 0x75aa770
2025-07-01 15:50:43,708 [DEBUG][       Thread-609536][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:50:43,722 [DEBUG][       Thread-609536][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:50:43,722 [ INFO][       Thread-609536][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:50:43,730 [DEBUG][       Thread-609536][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:50:43,730 [DEBUG][       Thread-609536][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:50:43,730 [DEBUG][       Thread-609536][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:50:43,730 [DEBUG][       Thread-609536][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:50:43,730 [DEBUG][       Thread-609536][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:50:43,730 [DEBUG][       Thread-609536][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:50:43,730 [DEBUG][       Thread-609536][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:50:43,730 [DEBUG][       Thread-609536][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:50:43,730 [DEBUG][       Thread-609536][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:50:43,730 [DEBUG][       Thread-609536][   transport.py][1871] : client lang: <none>
2025-07-01 15:50:43,730 [DEBUG][       Thread-609536][   transport.py][1871] : server lang: <none>
2025-07-01 15:50:43,730 [DEBUG][       Thread-609536][   transport.py][1871] : kex follows: False
2025-07-01 15:50:43,730 [DEBUG][       Thread-609536][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:50:43,730 [DEBUG][       Thread-609536][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:50:43,730 [DEBUG][       Thread-609536][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:50:43,730 [DEBUG][       Thread-609536][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:50:43,730 [DEBUG][       Thread-609536][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:50:43,730 [DEBUG][       Thread-609536][   transport.py][1871] : Compression: none
2025-07-01 15:50:43,730 [DEBUG][       Thread-609536][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:50:43,789 [DEBUG][       Thread-609536][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:50:43,790 [DEBUG][       Thread-609536][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:50:43,791 [DEBUG][       Thread-609536][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:50:43,791 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:50:43,791 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:50:43,845 [DEBUG][       Thread-609536][   transport.py][1871] : userauth is OK
2025-07-01 15:50:43,845 [DEBUG][       Thread-609536][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:50:43,845 [DEBUG][       Thread-609536][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:50:43,845 [DEBUG][       Thread-609536][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:50:43,846 [DEBUG][       Thread-609536][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:50:43,865 [ INFO][       Thread-609536][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:50:43,865 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:50:43,865 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:50:44,749 [DEBUG][Thread-609538 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:50:44,836 [DEBUG][       Thread-609536][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:50:44,836 [DEBUG][       Thread-609536][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:50:44,887 [DEBUG][       Thread-609536][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:50:44,887 [DEBUG][       Thread-609536][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:50:44,897 [DEBUG][       Thread-609536][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:50:44,906 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:50: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')
2025-07-01 15:50:44,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') -> 00000000
2025-07-01 15:50:44,925 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:50:44,925 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:50:44,925 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:50:44,933 [DEBUG][       Thread-609536][   transport.py][1871] : EOF in transport thread
2025-07-01 15:50:53,783 [DEBUG][Thread-609539 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:50:54,929 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:50:54,930 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:50:54,930 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:50:54,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-07-01 15:50:55,412 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 50, 30), 11.26, 46.72, 0.0, 38.37, 13.88, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:50:55,412 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:50:30
2025-07-01 15:50:55,497 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:50:55,502 [DEBUG][       Thread-609540][   transport.py][1871] : starting thread (client mode): 0x818f3a0
2025-07-01 15:50:55,502 [DEBUG][       Thread-609540][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:50:55,525 [DEBUG][       Thread-609540][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:50:55,525 [ INFO][       Thread-609540][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:50:55,528 [DEBUG][       Thread-609540][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:50:55,528 [DEBUG][       Thread-609540][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:50:55,528 [DEBUG][       Thread-609540][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:50:55,528 [DEBUG][       Thread-609540][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:50:55,528 [DEBUG][       Thread-609540][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:50:55,528 [DEBUG][       Thread-609540][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:50:55,528 [DEBUG][       Thread-609540][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:50:55,528 [DEBUG][       Thread-609540][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:50:55,528 [DEBUG][       Thread-609540][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:50:55,528 [DEBUG][       Thread-609540][   transport.py][1871] : client lang: <none>
2025-07-01 15:50:55,528 [DEBUG][       Thread-609540][   transport.py][1871] : server lang: <none>
2025-07-01 15:50:55,528 [DEBUG][       Thread-609540][   transport.py][1871] : kex follows: False
2025-07-01 15:50:55,528 [DEBUG][       Thread-609540][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:50:55,528 [DEBUG][       Thread-609540][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:50:55,528 [DEBUG][       Thread-609540][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:50:55,529 [DEBUG][       Thread-609540][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:50:55,529 [DEBUG][       Thread-609540][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:50:55,529 [DEBUG][       Thread-609540][   transport.py][1871] : Compression: none
2025-07-01 15:50:55,529 [DEBUG][       Thread-609540][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:50:55,545 [DEBUG][       Thread-609540][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:50:55,545 [DEBUG][       Thread-609540][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:50:55,546 [DEBUG][       Thread-609540][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:50:55,546 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:50:55,546 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:50:55,547 [DEBUG][       Thread-609540][   transport.py][1871] : userauth is OK
2025-07-01 15:50:55,572 [ INFO][       Thread-609540][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:50:55,573 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:50:56,189 [DEBUG][       Thread-609540][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:50:56,190 [DEBUG][       Thread-609540][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:50:56,233 [DEBUG][       Thread-609540][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:50:56,233 [DEBUG][       Thread-609540][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:50:56,236 [DEBUG][       Thread-609540][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:50:56,248 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:50:56,248 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:50:56,250 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:50:56,253 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:50:56,259 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:50:56,261 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:50:56,261 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:50:56,261 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:50:56,262 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.576675 -999.00  +13.70  29.76     51   +4.00 1 2 1 1 1   887    0 9.00 -31.45 ----- 31.5 29.8 1.8 51.5 15.5 -17.0 14.9 -17.5 15.2 -16.1 15.8 -15.4
2025-07-01 15:50:56,262 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:50:56,262 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:50:56,262 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.576675
2025-07-01 15:50:56,262 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:50:56,263 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:50:56,263 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:50:56,263 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:50:56,263 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:50:56,263 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:50:30', tmtdew=11.26, humidity=46.72, cloud=0.0, wind=38.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:50:24.720', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:50:56,263 [DEBUG][       Thread-609540][   transport.py][1871] : EOF in transport thread
2025-07-01 15:50:56,349 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:50:56,360 [DEBUG][       Thread-609543][   transport.py][1871] : starting thread (client mode): 0x8170fa0
2025-07-01 15:50:56,360 [DEBUG][       Thread-609543][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:50:56,375 [DEBUG][       Thread-609543][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:50:56,375 [ INFO][       Thread-609543][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:50:56,383 [DEBUG][       Thread-609543][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:50:56,383 [DEBUG][       Thread-609543][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:50:56,383 [DEBUG][       Thread-609543][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:50:56,383 [DEBUG][       Thread-609543][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:50:56,383 [DEBUG][       Thread-609543][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:50:56,383 [DEBUG][       Thread-609543][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:50:56,383 [DEBUG][       Thread-609543][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:50:56,383 [DEBUG][       Thread-609543][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:50:56,383 [DEBUG][       Thread-609543][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:50:56,383 [DEBUG][       Thread-609543][   transport.py][1871] : client lang: <none>
2025-07-01 15:50:56,383 [DEBUG][       Thread-609543][   transport.py][1871] : server lang: <none>
2025-07-01 15:50:56,383 [DEBUG][       Thread-609543][   transport.py][1871] : kex follows: False
2025-07-01 15:50:56,383 [DEBUG][       Thread-609543][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:50:56,383 [DEBUG][       Thread-609543][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:50:56,383 [DEBUG][       Thread-609543][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:50:56,384 [DEBUG][       Thread-609543][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:50:56,384 [DEBUG][       Thread-609543][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:50:56,384 [DEBUG][       Thread-609543][   transport.py][1871] : Compression: none
2025-07-01 15:50:56,384 [DEBUG][       Thread-609543][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:50:56,441 [DEBUG][       Thread-609543][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:50:56,441 [DEBUG][       Thread-609543][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:50:56,442 [DEBUG][       Thread-609543][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:50:56,442 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:50:56,443 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:50:56,503 [DEBUG][       Thread-609543][   transport.py][1871] : userauth is OK
2025-07-01 15:50:56,504 [DEBUG][       Thread-609543][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:50:56,504 [DEBUG][       Thread-609543][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:50:56,504 [DEBUG][       Thread-609543][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:50:56,504 [DEBUG][       Thread-609543][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:50:56,523 [ INFO][       Thread-609543][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:50:56,523 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:50:56,524 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:50:57,536 [DEBUG][       Thread-609543][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:50:57,537 [DEBUG][       Thread-609543][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:50:57,588 [DEBUG][       Thread-609543][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:50:57,588 [DEBUG][       Thread-609543][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:50:57,597 [DEBUG][       Thread-609543][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:50:57,606 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:50:57,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-07-01 15:50:57,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') -> 00000000
2025-07-01 15:50:57,628 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:50:57,628 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:50:57,629 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:50:57,639 [DEBUG][       Thread-609543][   transport.py][1871] : EOF in transport thread
2025-07-01 15:51:02,802 [DEBUG][Thread-609545 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:51:07,639 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:51:07,639 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:51:07,640 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:51:07,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-07-01 15:51:08,132 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 51, 1), 11.25, 46.77, 0.0, 36.45, 13.89, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:51:08,133 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:51:01
2025-07-01 15:51:08,218 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:51:08,222 [DEBUG][       Thread-609546][   transport.py][1871] : starting thread (client mode): 0x818c5b0
2025-07-01 15:51:08,222 [DEBUG][       Thread-609546][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:51:08,242 [DEBUG][       Thread-609546][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:51:08,242 [ INFO][       Thread-609546][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:51:08,246 [DEBUG][       Thread-609546][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:51:08,246 [DEBUG][       Thread-609546][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:51:08,246 [DEBUG][       Thread-609546][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:51:08,246 [DEBUG][       Thread-609546][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:51:08,246 [DEBUG][       Thread-609546][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:51:08,247 [DEBUG][       Thread-609546][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:51:08,247 [DEBUG][       Thread-609546][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:51:08,247 [DEBUG][       Thread-609546][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:51:08,247 [DEBUG][       Thread-609546][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:51:08,247 [DEBUG][       Thread-609546][   transport.py][1871] : client lang: <none>
2025-07-01 15:51:08,247 [DEBUG][       Thread-609546][   transport.py][1871] : server lang: <none>
2025-07-01 15:51:08,247 [DEBUG][       Thread-609546][   transport.py][1871] : kex follows: False
2025-07-01 15:51:08,247 [DEBUG][       Thread-609546][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:51:08,247 [DEBUG][       Thread-609546][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:51:08,247 [DEBUG][       Thread-609546][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:51:08,247 [DEBUG][       Thread-609546][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:51:08,247 [DEBUG][       Thread-609546][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:51:08,247 [DEBUG][       Thread-609546][   transport.py][1871] : Compression: none
2025-07-01 15:51:08,247 [DEBUG][       Thread-609546][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:51:08,263 [DEBUG][       Thread-609546][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:51:08,264 [DEBUG][       Thread-609546][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:51:08,264 [DEBUG][       Thread-609546][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:51:08,264 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:51:08,265 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:51:08,266 [DEBUG][       Thread-609546][   transport.py][1871] : userauth is OK
2025-07-01 15:51:08,292 [ INFO][       Thread-609546][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:51:08,292 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:51:08,940 [DEBUG][       Thread-609546][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:51:08,940 [DEBUG][       Thread-609546][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:51:08,981 [DEBUG][       Thread-609546][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:51:08,981 [DEBUG][       Thread-609546][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:51:08,984 [DEBUG][       Thread-609546][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:51:08,997 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:51:08,997 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:51:08,999 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:51:09,000 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:51:09,005 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:51:09,007 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:51:09,007 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:51:09,008 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:51:09,008 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.576675 -999.00  +13.70  29.76     51   +4.00 1 2 1 1 1   887    0 9.00 -31.45 ----- 31.5 29.8 1.8 51.5 15.5 -17.0 14.9 -17.5 15.2 -16.1 15.8 -15.4
2025-07-01 15:51:09,008 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:51:09,008 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:51:09,008 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.576675
2025-07-01 15:51:09,009 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:51:09,009 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:51:09,009 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:51:09,009 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:51:09,009 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:51:09,009 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:51:01', tmtdew=11.25, humidity=46.77, cloud=0.0, wind=36.45, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:50:24.720', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:51:09,010 [DEBUG][       Thread-609546][   transport.py][1871] : EOF in transport thread
2025-07-01 15:51:09,093 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:51:09,102 [DEBUG][       Thread-609549][   transport.py][1871] : starting thread (client mode): 0x75abd90
2025-07-01 15:51:09,102 [DEBUG][       Thread-609549][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:51:09,117 [DEBUG][       Thread-609549][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:51:09,117 [ INFO][       Thread-609549][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:51:09,125 [DEBUG][       Thread-609549][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:51:09,125 [DEBUG][       Thread-609549][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:51:09,125 [DEBUG][       Thread-609549][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:51:09,125 [DEBUG][       Thread-609549][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:51:09,125 [DEBUG][       Thread-609549][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:51:09,125 [DEBUG][       Thread-609549][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:51:09,125 [DEBUG][       Thread-609549][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:51:09,125 [DEBUG][       Thread-609549][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:51:09,125 [DEBUG][       Thread-609549][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:51:09,125 [DEBUG][       Thread-609549][   transport.py][1871] : client lang: <none>
2025-07-01 15:51:09,125 [DEBUG][       Thread-609549][   transport.py][1871] : server lang: <none>
2025-07-01 15:51:09,125 [DEBUG][       Thread-609549][   transport.py][1871] : kex follows: False
2025-07-01 15:51:09,125 [DEBUG][       Thread-609549][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:51:09,125 [DEBUG][       Thread-609549][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:51:09,125 [DEBUG][       Thread-609549][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:51:09,125 [DEBUG][       Thread-609549][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:51:09,125 [DEBUG][       Thread-609549][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:51:09,125 [DEBUG][       Thread-609549][   transport.py][1871] : Compression: none
2025-07-01 15:51:09,125 [DEBUG][       Thread-609549][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:51:09,183 [DEBUG][       Thread-609549][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:51:09,184 [DEBUG][       Thread-609549][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:51:09,184 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:51:09,185 [DEBUG][       Thread-609549][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:51:09,186 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:51:09,240 [DEBUG][       Thread-609549][   transport.py][1871] : userauth is OK
2025-07-01 15:51:09,241 [DEBUG][       Thread-609549][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:51:09,241 [DEBUG][       Thread-609549][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:51:09,241 [DEBUG][       Thread-609549][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:51:09,241 [DEBUG][       Thread-609549][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:51:09,260 [ INFO][       Thread-609549][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:51:09,260 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:51:09,261 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:51:10,242 [DEBUG][       Thread-609549][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:51:10,242 [DEBUG][       Thread-609549][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:51:10,292 [DEBUG][       Thread-609549][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:51:10,292 [DEBUG][       Thread-609549][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:51:10,303 [DEBUG][       Thread-609549][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:51:10,312 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:51:10,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')
2025-07-01 15:51:10,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-07-01 15:51:10,330 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:51:10,330 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:51:10,331 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:51:10,339 [DEBUG][       Thread-609549][   transport.py][1871] : EOF in transport thread
2025-07-01 15:51:11,819 [DEBUG][Thread-609551 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:51:20,341 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:51:20,341 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:51:20,341 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:51:20,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-07-01 15:51:20,831 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 51, 1), 11.25, 46.77, 0.0, 36.45, 13.89, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:51:20,831 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:51:01
2025-07-01 15:51:20,841 [DEBUG][Thread-609552 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:51:20,915 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:51:20,919 [DEBUG][       Thread-609553][   transport.py][1871] : starting thread (client mode): 0x818c370
2025-07-01 15:51:20,919 [DEBUG][       Thread-609553][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:51:20,938 [DEBUG][       Thread-609553][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:51:20,938 [ INFO][       Thread-609553][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:51:20,942 [DEBUG][       Thread-609553][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:51:20,942 [DEBUG][       Thread-609553][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:51:20,942 [DEBUG][       Thread-609553][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:51:20,942 [DEBUG][       Thread-609553][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:51:20,942 [DEBUG][       Thread-609553][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:51:20,942 [DEBUG][       Thread-609553][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:51:20,942 [DEBUG][       Thread-609553][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:51:20,942 [DEBUG][       Thread-609553][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:51:20,942 [DEBUG][       Thread-609553][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:51:20,942 [DEBUG][       Thread-609553][   transport.py][1871] : client lang: <none>
2025-07-01 15:51:20,942 [DEBUG][       Thread-609553][   transport.py][1871] : server lang: <none>
2025-07-01 15:51:20,942 [DEBUG][       Thread-609553][   transport.py][1871] : kex follows: False
2025-07-01 15:51:20,942 [DEBUG][       Thread-609553][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:51:20,942 [DEBUG][       Thread-609553][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:51:20,942 [DEBUG][       Thread-609553][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:51:20,942 [DEBUG][       Thread-609553][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:51:20,942 [DEBUG][       Thread-609553][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:51:20,942 [DEBUG][       Thread-609553][   transport.py][1871] : Compression: none
2025-07-01 15:51:20,942 [DEBUG][       Thread-609553][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:51:20,958 [DEBUG][       Thread-609553][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:51:20,958 [DEBUG][       Thread-609553][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:51:20,959 [DEBUG][       Thread-609553][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:51:20,959 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:51:20,959 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:51:20,960 [DEBUG][       Thread-609553][   transport.py][1871] : userauth is OK
2025-07-01 15:51:20,985 [ INFO][       Thread-609553][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:51:20,986 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:51:21,631 [DEBUG][       Thread-609553][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:51:21,631 [DEBUG][       Thread-609553][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:51:21,673 [DEBUG][       Thread-609553][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:51:21,673 [DEBUG][       Thread-609553][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:51:21,676 [DEBUG][       Thread-609553][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:51:21,687 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:51:21,688 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:51:21,689 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:51:21,691 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:51:21,695 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:51:21,697 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:51:21,697 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:51:21,698 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:51:21,698 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.577023 -999.00  +13.80  42.24     51   +3.90 1 2 2 1 1   887    0 9.00 -27.93 ----- 34.0 42.2 28.6 49.0 15.5 -17.5 14.9 -17.5 15.3 -16.0 15.9 -15.7
2025-07-01 15:51:21,698 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:51:21,698 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:51:21,698 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.577023
2025-07-01 15:51:21,698 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:51:21,699 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:51:21,699 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:51:21,699 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:51:21,699 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:51:21,699 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:51:01', tmtdew=11.25, humidity=46.77, cloud=0.0, wind=36.45, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:50:54.787', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:51:21,700 [DEBUG][       Thread-609553][   transport.py][1871] : EOF in transport thread
2025-07-01 15:51:21,784 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:51:21,793 [DEBUG][       Thread-609556][   transport.py][1871] : starting thread (client mode): 0x8393910
2025-07-01 15:51:21,793 [DEBUG][       Thread-609556][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:51:21,808 [DEBUG][       Thread-609556][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:51:21,809 [ INFO][       Thread-609556][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:51:21,816 [DEBUG][       Thread-609556][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:51:21,816 [DEBUG][       Thread-609556][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:51:21,816 [DEBUG][       Thread-609556][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:51:21,816 [DEBUG][       Thread-609556][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:51:21,816 [DEBUG][       Thread-609556][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:51:21,816 [DEBUG][       Thread-609556][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:51:21,816 [DEBUG][       Thread-609556][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:51:21,817 [DEBUG][       Thread-609556][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:51:21,817 [DEBUG][       Thread-609556][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:51:21,817 [DEBUG][       Thread-609556][   transport.py][1871] : client lang: <none>
2025-07-01 15:51:21,817 [DEBUG][       Thread-609556][   transport.py][1871] : server lang: <none>
2025-07-01 15:51:21,817 [DEBUG][       Thread-609556][   transport.py][1871] : kex follows: False
2025-07-01 15:51:21,817 [DEBUG][       Thread-609556][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:51:21,817 [DEBUG][       Thread-609556][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:51:21,817 [DEBUG][       Thread-609556][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:51:21,817 [DEBUG][       Thread-609556][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:51:21,817 [DEBUG][       Thread-609556][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:51:21,817 [DEBUG][       Thread-609556][   transport.py][1871] : Compression: none
2025-07-01 15:51:21,817 [DEBUG][       Thread-609556][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:51:21,876 [DEBUG][       Thread-609556][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:51:21,876 [DEBUG][       Thread-609556][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:51:21,877 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:51:21,877 [DEBUG][       Thread-609556][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:51:21,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:51:21,932 [DEBUG][       Thread-609556][   transport.py][1871] : userauth is OK
2025-07-01 15:51:21,933 [DEBUG][       Thread-609556][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:51:21,933 [DEBUG][       Thread-609556][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:51:21,933 [DEBUG][       Thread-609556][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:51:21,933 [DEBUG][       Thread-609556][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:51:21,952 [ INFO][       Thread-609556][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:51:21,953 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:51:21,953 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:51:22,964 [DEBUG][       Thread-609556][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:51:22,964 [DEBUG][       Thread-609556][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:51:23,012 [DEBUG][       Thread-609556][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:51:23,012 [DEBUG][       Thread-609556][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:51:23,021 [DEBUG][       Thread-609556][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:51:23,039 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:51:23,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-07-01 15:51:23,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-07-01 15:51:23,057 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:51:23,058 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:51:23,058 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:51:23,066 [DEBUG][       Thread-609556][   transport.py][1871] : EOF in transport thread
2025-07-01 15:51:29,863 [DEBUG][Thread-609558 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:51:33,068 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:51:33,069 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:51:33,069 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:51:33,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-07-01 15:51:33,543 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 51, 1), 11.25, 46.77, 0.0, 36.45, 13.89, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:51:33,552 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:51:01
2025-07-01 15:51:33,635 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:51:33,639 [DEBUG][       Thread-609559][   transport.py][1871] : starting thread (client mode): 0x81d8be0
2025-07-01 15:51:33,639 [DEBUG][       Thread-609559][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:51:33,658 [DEBUG][       Thread-609559][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:51:33,658 [ INFO][       Thread-609559][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:51:33,662 [DEBUG][       Thread-609559][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:51:33,662 [DEBUG][       Thread-609559][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:51:33,662 [DEBUG][       Thread-609559][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:51:33,662 [DEBUG][       Thread-609559][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:51:33,662 [DEBUG][       Thread-609559][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:51:33,662 [DEBUG][       Thread-609559][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:51:33,662 [DEBUG][       Thread-609559][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:51:33,662 [DEBUG][       Thread-609559][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:51:33,662 [DEBUG][       Thread-609559][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:51:33,662 [DEBUG][       Thread-609559][   transport.py][1871] : client lang: <none>
2025-07-01 15:51:33,662 [DEBUG][       Thread-609559][   transport.py][1871] : server lang: <none>
2025-07-01 15:51:33,662 [DEBUG][       Thread-609559][   transport.py][1871] : kex follows: False
2025-07-01 15:51:33,662 [DEBUG][       Thread-609559][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:51:33,662 [DEBUG][       Thread-609559][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:51:33,662 [DEBUG][       Thread-609559][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:51:33,662 [DEBUG][       Thread-609559][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:51:33,662 [DEBUG][       Thread-609559][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:51:33,662 [DEBUG][       Thread-609559][   transport.py][1871] : Compression: none
2025-07-01 15:51:33,662 [DEBUG][       Thread-609559][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:51:33,677 [DEBUG][       Thread-609559][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:51:33,677 [DEBUG][       Thread-609559][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:51:33,677 [DEBUG][       Thread-609559][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:51:33,677 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:51:33,677 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:51:33,678 [DEBUG][       Thread-609559][   transport.py][1871] : userauth is OK
2025-07-01 15:51:33,702 [ INFO][       Thread-609559][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:51:33,702 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:51:34,356 [DEBUG][       Thread-609559][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:51:34,356 [DEBUG][       Thread-609559][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:51:34,396 [DEBUG][       Thread-609559][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:51:34,397 [DEBUG][       Thread-609559][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:51:34,399 [DEBUG][       Thread-609559][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:51:34,411 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:51:34,411 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:51:34,412 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:51:34,413 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:51:34,417 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:51:34,418 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:51:34,418 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:51:34,418 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:51:34,418 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.577023 -999.00  +13.80  42.24     51   +3.90 1 2 2 1 1   887    0 9.00 -27.93 ----- 34.0 42.2 28.6 49.0 15.5 -17.5 14.9 -17.5 15.3 -16.0 15.9 -15.7
2025-07-01 15:51:34,418 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:51:34,418 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:51:34,418 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.577023
2025-07-01 15:51:34,418 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:51:34,418 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:51:34,418 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:51:34,418 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:51:34,418 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:51:34,418 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:51:01', tmtdew=11.25, humidity=46.77, cloud=0.0, wind=36.45, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:50:54.787', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:51:34,419 [DEBUG][       Thread-609559][   transport.py][1871] : EOF in transport thread
2025-07-01 15:51:34,493 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:51:34,505 [DEBUG][       Thread-609562][   transport.py][1871] : starting thread (client mode): 0x818c8e0
2025-07-01 15:51:34,505 [DEBUG][       Thread-609562][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:51:34,523 [DEBUG][       Thread-609562][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:51:34,523 [ INFO][       Thread-609562][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:51:34,532 [DEBUG][       Thread-609562][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:51:34,532 [DEBUG][       Thread-609562][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:51:34,532 [DEBUG][       Thread-609562][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:51:34,532 [DEBUG][       Thread-609562][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:51:34,532 [DEBUG][       Thread-609562][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:51:34,532 [DEBUG][       Thread-609562][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:51:34,532 [DEBUG][       Thread-609562][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:51:34,532 [DEBUG][       Thread-609562][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:51:34,532 [DEBUG][       Thread-609562][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:51:34,532 [DEBUG][       Thread-609562][   transport.py][1871] : client lang: <none>
2025-07-01 15:51:34,532 [DEBUG][       Thread-609562][   transport.py][1871] : server lang: <none>
2025-07-01 15:51:34,532 [DEBUG][       Thread-609562][   transport.py][1871] : kex follows: False
2025-07-01 15:51:34,532 [DEBUG][       Thread-609562][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:51:34,532 [DEBUG][       Thread-609562][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:51:34,532 [DEBUG][       Thread-609562][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:51:34,532 [DEBUG][       Thread-609562][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:51:34,532 [DEBUG][       Thread-609562][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:51:34,532 [DEBUG][       Thread-609562][   transport.py][1871] : Compression: none
2025-07-01 15:51:34,532 [DEBUG][       Thread-609562][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:51:34,595 [DEBUG][       Thread-609562][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:51:34,595 [DEBUG][       Thread-609562][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:51:34,596 [DEBUG][       Thread-609562][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:51:34,596 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:51:34,596 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:51:34,651 [DEBUG][       Thread-609562][   transport.py][1871] : userauth is OK
2025-07-01 15:51:34,651 [DEBUG][       Thread-609562][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:51:34,651 [DEBUG][       Thread-609562][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:51:34,651 [DEBUG][       Thread-609562][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:51:34,651 [DEBUG][       Thread-609562][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:51:34,666 [ INFO][       Thread-609562][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:51:34,666 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:51:34,666 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:51:35,683 [DEBUG][       Thread-609562][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:51:35,683 [DEBUG][       Thread-609562][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:51:35,732 [DEBUG][       Thread-609562][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:51:35,732 [DEBUG][       Thread-609562][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:51:35,741 [DEBUG][       Thread-609562][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:51:35,749 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:51:35,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-07-01 15:51:35,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') -> 00000000
2025-07-01 15:51:35,767 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:51:35,767 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:51:35,767 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:51:35,775 [DEBUG][       Thread-609562][   transport.py][1871] : EOF in transport thread
2025-07-01 15:51:37,545 [DEBUG][Thread-609564 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:51:38,884 [DEBUG][Thread-609565 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:51:45,778 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:51:45,778 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:51:45,778 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:51:45,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-07-01 15:51:46,268 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 51, 33), 11.24, 46.68, 0.0, 28.21, 13.92, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:51:46,268 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:51:33
2025-07-01 15:51:46,352 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:51:46,356 [DEBUG][       Thread-609566][   transport.py][1871] : starting thread (client mode): 0x818fee0
2025-07-01 15:51:46,356 [DEBUG][       Thread-609566][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:51:46,375 [DEBUG][       Thread-609566][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:51:46,375 [ INFO][       Thread-609566][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:51:46,378 [DEBUG][       Thread-609566][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:51:46,379 [DEBUG][       Thread-609566][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:51:46,379 [DEBUG][       Thread-609566][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:51:46,379 [DEBUG][       Thread-609566][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:51:46,379 [DEBUG][       Thread-609566][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:51:46,379 [DEBUG][       Thread-609566][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:51:46,379 [DEBUG][       Thread-609566][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:51:46,379 [DEBUG][       Thread-609566][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:51:46,379 [DEBUG][       Thread-609566][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:51:46,379 [DEBUG][       Thread-609566][   transport.py][1871] : client lang: <none>
2025-07-01 15:51:46,379 [DEBUG][       Thread-609566][   transport.py][1871] : server lang: <none>
2025-07-01 15:51:46,379 [DEBUG][       Thread-609566][   transport.py][1871] : kex follows: False
2025-07-01 15:51:46,379 [DEBUG][       Thread-609566][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:51:46,379 [DEBUG][       Thread-609566][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:51:46,379 [DEBUG][       Thread-609566][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:51:46,379 [DEBUG][       Thread-609566][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:51:46,379 [DEBUG][       Thread-609566][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:51:46,379 [DEBUG][       Thread-609566][   transport.py][1871] : Compression: none
2025-07-01 15:51:46,379 [DEBUG][       Thread-609566][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:51:46,393 [DEBUG][       Thread-609566][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:51:46,394 [DEBUG][       Thread-609566][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:51:46,394 [DEBUG][       Thread-609566][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:51:46,394 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:51:46,394 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:51:46,395 [DEBUG][       Thread-609566][   transport.py][1871] : userauth is OK
2025-07-01 15:51:46,419 [ INFO][       Thread-609566][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:51:46,419 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:51:47,056 [DEBUG][       Thread-609566][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:51:47,056 [DEBUG][       Thread-609566][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:51:47,097 [DEBUG][       Thread-609566][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:51:47,097 [DEBUG][       Thread-609566][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:51:47,101 [DEBUG][       Thread-609566][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:51:47,112 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:51:47,113 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:51:47,115 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:51:47,117 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:51:47,123 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:51:47,125 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:51:47,125 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:51:47,126 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:51:47,126 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.577023 -999.00  +13.80  42.24     51   +3.90 1 2 2 1 1   887    0 9.00 -27.93 ----- 34.0 42.2 28.6 49.0 15.5 -17.5 14.9 -17.5 15.3 -16.0 15.9 -15.7
2025-07-01 15:51:47,126 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:51:47,126 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:51:47,126 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.577023
2025-07-01 15:51:47,126 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:51:47,127 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:51:47,127 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:51:47,127 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:51:47,127 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:51:47,127 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:51:33', tmtdew=11.24, humidity=46.68, cloud=0.0, wind=28.21, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:50:54.787', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:51:47,128 [DEBUG][       Thread-609566][   transport.py][1871] : EOF in transport thread
2025-07-01 15:51:47,214 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:51:47,223 [DEBUG][       Thread-609569][   transport.py][1871] : starting thread (client mode): 0x8171cf0
2025-07-01 15:51:47,223 [DEBUG][       Thread-609569][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:51:47,240 [DEBUG][       Thread-609569][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:51:47,240 [ INFO][       Thread-609569][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:51:47,254 [DEBUG][       Thread-609569][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:51:47,254 [DEBUG][       Thread-609569][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:51:47,254 [DEBUG][       Thread-609569][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:51:47,254 [DEBUG][       Thread-609569][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:51:47,254 [DEBUG][       Thread-609569][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:51:47,254 [DEBUG][       Thread-609569][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:51:47,254 [DEBUG][       Thread-609569][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:51:47,254 [DEBUG][       Thread-609569][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:51:47,255 [DEBUG][       Thread-609569][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:51:47,255 [DEBUG][       Thread-609569][   transport.py][1871] : client lang: <none>
2025-07-01 15:51:47,255 [DEBUG][       Thread-609569][   transport.py][1871] : server lang: <none>
2025-07-01 15:51:47,255 [DEBUG][       Thread-609569][   transport.py][1871] : kex follows: False
2025-07-01 15:51:47,255 [DEBUG][       Thread-609569][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:51:47,255 [DEBUG][       Thread-609569][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:51:47,255 [DEBUG][       Thread-609569][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:51:47,255 [DEBUG][       Thread-609569][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:51:47,255 [DEBUG][       Thread-609569][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:51:47,255 [DEBUG][       Thread-609569][   transport.py][1871] : Compression: none
2025-07-01 15:51:47,255 [DEBUG][       Thread-609569][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:51:47,310 [DEBUG][       Thread-609569][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:51:47,311 [DEBUG][       Thread-609569][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:51:47,311 [DEBUG][       Thread-609569][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:51:47,312 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:51:47,312 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:51:47,368 [DEBUG][       Thread-609569][   transport.py][1871] : userauth is OK
2025-07-01 15:51:47,368 [DEBUG][       Thread-609569][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:51:47,368 [DEBUG][       Thread-609569][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:51:47,368 [DEBUG][       Thread-609569][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:51:47,369 [DEBUG][       Thread-609569][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:51:47,387 [ INFO][       Thread-609569][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:51:47,387 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:51:47,388 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:51:47,914 [DEBUG][Thread-609571 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:51:48,402 [DEBUG][       Thread-609569][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:51:48,402 [DEBUG][       Thread-609569][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:51:48,452 [DEBUG][       Thread-609569][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:51:48,452 [DEBUG][       Thread-609569][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:51:48,462 [DEBUG][       Thread-609569][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:51:48,471 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:51:48,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-07-01 15:51:48,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-07-01 15:51:48,489 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:51:48,489 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:51:48,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:51:48,497 [DEBUG][       Thread-609569][   transport.py][1871] : EOF in transport thread
2025-07-01 15:51:56,948 [DEBUG][Thread-609572 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:51:58,500 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:51:58,500 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:51:58,501 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:51:58,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-07-01 15:51:58,975 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 51, 33), 11.24, 46.68, 0.0, 28.21, 13.92, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:51:58,975 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:51:33
2025-07-01 15:51:59,060 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:51:59,064 [DEBUG][       Thread-609573][   transport.py][1871] : starting thread (client mode): 0x81e7520
2025-07-01 15:51:59,064 [DEBUG][       Thread-609573][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:51:59,083 [DEBUG][       Thread-609573][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:51:59,083 [ INFO][       Thread-609573][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:51:59,086 [DEBUG][       Thread-609573][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:51:59,087 [DEBUG][       Thread-609573][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:51:59,087 [DEBUG][       Thread-609573][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:51:59,087 [DEBUG][       Thread-609573][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:51:59,087 [DEBUG][       Thread-609573][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:51:59,087 [DEBUG][       Thread-609573][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:51:59,087 [DEBUG][       Thread-609573][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:51:59,087 [DEBUG][       Thread-609573][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:51:59,087 [DEBUG][       Thread-609573][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:51:59,087 [DEBUG][       Thread-609573][   transport.py][1871] : client lang: <none>
2025-07-01 15:51:59,087 [DEBUG][       Thread-609573][   transport.py][1871] : server lang: <none>
2025-07-01 15:51:59,087 [DEBUG][       Thread-609573][   transport.py][1871] : kex follows: False
2025-07-01 15:51:59,087 [DEBUG][       Thread-609573][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:51:59,087 [DEBUG][       Thread-609573][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:51:59,087 [DEBUG][       Thread-609573][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:51:59,087 [DEBUG][       Thread-609573][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:51:59,087 [DEBUG][       Thread-609573][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:51:59,087 [DEBUG][       Thread-609573][   transport.py][1871] : Compression: none
2025-07-01 15:51:59,087 [DEBUG][       Thread-609573][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:51:59,101 [DEBUG][       Thread-609573][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:51:59,102 [DEBUG][       Thread-609573][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:51:59,102 [DEBUG][       Thread-609573][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:51:59,103 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:51:59,103 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:51:59,104 [DEBUG][       Thread-609573][   transport.py][1871] : userauth is OK
2025-07-01 15:51:59,129 [ INFO][       Thread-609573][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:51:59,129 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:51:59,809 [DEBUG][       Thread-609573][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:51:59,809 [DEBUG][       Thread-609573][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:51:59,853 [DEBUG][       Thread-609573][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:51:59,853 [DEBUG][       Thread-609573][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:51:59,856 [DEBUG][       Thread-609573][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:51:59,870 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:51:59,870 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:51:59,872 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:51:59,873 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:51:59,878 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:51:59,880 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:51:59,880 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:51:59,881 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:51:59,881 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.577370 -999.00  +13.80  29.71     51   +3.90 1 2 1 1 1   887    0 9.14 -26.16 ----- 34.0 29.7 28.6 45.0 15.6 -17.6 15.0 -17.3 15.3 -16.2 15.9 -16.3
2025-07-01 15:51:59,881 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:51:59,881 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:51:59,881 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.577370
2025-07-01 15:51:59,882 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:51:59,882 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:51:59,882 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:51:59,882 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:51:59,882 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:51:59,883 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:51:33', tmtdew=11.24, humidity=46.68, cloud=0.0, wind=28.21, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:51:24.768', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:51:59,883 [DEBUG][       Thread-609573][   transport.py][1871] : EOF in transport thread
2025-07-01 15:51:59,967 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:51:59,979 [DEBUG][       Thread-609576][   transport.py][1871] : starting thread (client mode): 0x8156620
2025-07-01 15:51:59,979 [DEBUG][       Thread-609576][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:51:59,994 [DEBUG][       Thread-609576][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:51:59,994 [ INFO][       Thread-609576][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:52:00,002 [DEBUG][       Thread-609576][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:52:00,002 [DEBUG][       Thread-609576][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:52:00,002 [DEBUG][       Thread-609576][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:52:00,002 [DEBUG][       Thread-609576][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:52:00,002 [DEBUG][       Thread-609576][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:52:00,002 [DEBUG][       Thread-609576][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:52:00,002 [DEBUG][       Thread-609576][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:52:00,002 [DEBUG][       Thread-609576][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:52:00,002 [DEBUG][       Thread-609576][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:52:00,002 [DEBUG][       Thread-609576][   transport.py][1871] : client lang: <none>
2025-07-01 15:52:00,002 [DEBUG][       Thread-609576][   transport.py][1871] : server lang: <none>
2025-07-01 15:52:00,002 [DEBUG][       Thread-609576][   transport.py][1871] : kex follows: False
2025-07-01 15:52:00,002 [DEBUG][       Thread-609576][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:52:00,003 [DEBUG][       Thread-609576][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:52:00,003 [DEBUG][       Thread-609576][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:52:00,003 [DEBUG][       Thread-609576][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:52:00,003 [DEBUG][       Thread-609576][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:52:00,003 [DEBUG][       Thread-609576][   transport.py][1871] : Compression: none
2025-07-01 15:52:00,003 [DEBUG][       Thread-609576][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:52:00,059 [DEBUG][       Thread-609576][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:52:00,060 [DEBUG][       Thread-609576][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:52:00,061 [DEBUG][       Thread-609576][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:52:00,061 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:52:00,061 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:52:00,115 [DEBUG][       Thread-609576][   transport.py][1871] : userauth is OK
2025-07-01 15:52:00,116 [DEBUG][       Thread-609576][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:52:00,116 [DEBUG][       Thread-609576][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:52:00,116 [DEBUG][       Thread-609576][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:52:00,116 [DEBUG][       Thread-609576][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:52:00,135 [ INFO][       Thread-609576][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:52:00,136 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:52:00,136 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:52:01,166 [DEBUG][       Thread-609576][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:52:01,166 [DEBUG][       Thread-609576][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:52:01,216 [DEBUG][       Thread-609576][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:52:01,216 [DEBUG][       Thread-609576][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:52:01,226 [DEBUG][       Thread-609576][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:52:01,235 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:52:01,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-07-01 15:52:01,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-07-01 15:52:01,254 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:52:01,254 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:52:01,255 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:52:01,263 [DEBUG][       Thread-609576][   transport.py][1871] : EOF in transport thread
2025-07-01 15:52:05,970 [DEBUG][Thread-609578 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:52:11,264 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:52:11,264 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:52:11,264 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:52:11,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-07-01 15:52:11,734 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 52, 4), 11.23, 46.73, 0.0, 23.55, 13.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:52:11,734 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:52:04
2025-07-01 15:52:11,820 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:52:11,824 [DEBUG][       Thread-609579][   transport.py][1871] : starting thread (client mode): 0x81c9120
2025-07-01 15:52:11,824 [DEBUG][       Thread-609579][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:52:11,844 [DEBUG][       Thread-609579][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:52:11,844 [ INFO][       Thread-609579][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:52:11,847 [DEBUG][       Thread-609579][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:52:11,847 [DEBUG][       Thread-609579][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:52:11,847 [DEBUG][       Thread-609579][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:52:11,848 [DEBUG][       Thread-609579][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:52:11,848 [DEBUG][       Thread-609579][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:52:11,848 [DEBUG][       Thread-609579][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:52:11,848 [DEBUG][       Thread-609579][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:52:11,848 [DEBUG][       Thread-609579][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:52:11,848 [DEBUG][       Thread-609579][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:52:11,848 [DEBUG][       Thread-609579][   transport.py][1871] : client lang: <none>
2025-07-01 15:52:11,848 [DEBUG][       Thread-609579][   transport.py][1871] : server lang: <none>
2025-07-01 15:52:11,848 [DEBUG][       Thread-609579][   transport.py][1871] : kex follows: False
2025-07-01 15:52:11,848 [DEBUG][       Thread-609579][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:52:11,848 [DEBUG][       Thread-609579][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:52:11,848 [DEBUG][       Thread-609579][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:52:11,848 [DEBUG][       Thread-609579][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:52:11,848 [DEBUG][       Thread-609579][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:52:11,848 [DEBUG][       Thread-609579][   transport.py][1871] : Compression: none
2025-07-01 15:52:11,848 [DEBUG][       Thread-609579][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:52:11,864 [DEBUG][       Thread-609579][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:52:11,864 [DEBUG][       Thread-609579][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:52:11,865 [DEBUG][       Thread-609579][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:52:11,865 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:52:11,865 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:52:11,866 [DEBUG][       Thread-609579][   transport.py][1871] : userauth is OK
2025-07-01 15:52:11,892 [ INFO][       Thread-609579][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:52:11,892 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:52:12,544 [DEBUG][       Thread-609579][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:52:12,544 [DEBUG][       Thread-609579][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:52:12,585 [DEBUG][       Thread-609579][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:52:12,585 [DEBUG][       Thread-609579][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:52:12,588 [DEBUG][       Thread-609579][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:52:12,602 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:52:12,602 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:52:12,604 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:52:12,606 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:52:12,611 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:52:12,613 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:52:12,613 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:52:12,614 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:52:12,614 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.577370 -999.00  +13.80  29.71     51   +3.90 1 2 1 1 1   887    0 9.14 -26.16 ----- 34.0 29.7 28.6 45.0 15.6 -17.6 15.0 -17.3 15.3 -16.2 15.9 -16.3
2025-07-01 15:52:12,614 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:52:12,614 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:52:12,614 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.577370
2025-07-01 15:52:12,615 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:52:12,615 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:52:12,615 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:52:12,615 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:52:12,615 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:52:12,615 [DEBUG][       Thread-609579][   transport.py][1871] : EOF in transport thread
2025-07-01 15:52:12,616 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:52:04', tmtdew=11.23, humidity=46.73, cloud=0.0, wind=23.55, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:51:24.768', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:52:12,705 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:52:12,714 [DEBUG][       Thread-609582][   transport.py][1871] : starting thread (client mode): 0x75ab310
2025-07-01 15:52:12,714 [DEBUG][       Thread-609582][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:52:12,731 [DEBUG][       Thread-609582][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:52:12,731 [ INFO][       Thread-609582][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:52:12,738 [DEBUG][       Thread-609582][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:52:12,738 [DEBUG][       Thread-609582][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:52:12,738 [DEBUG][       Thread-609582][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:52:12,739 [DEBUG][       Thread-609582][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:52:12,739 [DEBUG][       Thread-609582][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:52:12,739 [DEBUG][       Thread-609582][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:52:12,739 [DEBUG][       Thread-609582][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:52:12,739 [DEBUG][       Thread-609582][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:52:12,739 [DEBUG][       Thread-609582][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:52:12,739 [DEBUG][       Thread-609582][   transport.py][1871] : client lang: <none>
2025-07-01 15:52:12,739 [DEBUG][       Thread-609582][   transport.py][1871] : server lang: <none>
2025-07-01 15:52:12,739 [DEBUG][       Thread-609582][   transport.py][1871] : kex follows: False
2025-07-01 15:52:12,739 [DEBUG][       Thread-609582][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:52:12,739 [DEBUG][       Thread-609582][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:52:12,739 [DEBUG][       Thread-609582][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:52:12,739 [DEBUG][       Thread-609582][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:52:12,739 [DEBUG][       Thread-609582][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:52:12,739 [DEBUG][       Thread-609582][   transport.py][1871] : Compression: none
2025-07-01 15:52:12,739 [DEBUG][       Thread-609582][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:52:12,799 [DEBUG][       Thread-609582][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:52:12,799 [DEBUG][       Thread-609582][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:52:12,800 [DEBUG][       Thread-609582][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:52:12,800 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:52:12,801 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:52:12,855 [DEBUG][       Thread-609582][   transport.py][1871] : userauth is OK
2025-07-01 15:52:12,856 [DEBUG][       Thread-609582][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:52:12,856 [DEBUG][       Thread-609582][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:52:12,856 [DEBUG][       Thread-609582][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:52:12,856 [DEBUG][       Thread-609582][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:52:12,875 [ INFO][       Thread-609582][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:52:12,875 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:52:12,876 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:52:13,912 [DEBUG][       Thread-609582][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:52:13,913 [DEBUG][       Thread-609582][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:52:13,964 [DEBUG][       Thread-609582][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:52:13,964 [DEBUG][       Thread-609582][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:52:13,973 [DEBUG][       Thread-609582][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:52:13,982 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:52:13,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-07-01 15:52:13,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-07-01 15:52:14,000 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:52:14,000 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:52:14,001 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:52:14,014 [DEBUG][       Thread-609582][   transport.py][1871] : EOF in transport thread
2025-07-01 15:52:14,993 [DEBUG][Thread-609584 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:52:24,011 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:52:24,012 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:52:24,012 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:52:24,015 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 15:52:24,029 [DEBUG][Thread-609585 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:52:24,499 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 52, 4), 11.23, 46.73, 0.0, 23.55, 13.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:52:24,499 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:52:04
2025-07-01 15:52:24,584 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:52:24,591 [DEBUG][       Thread-609586][   transport.py][1871] : starting thread (client mode): 0x81a4c40
2025-07-01 15:52:24,591 [DEBUG][       Thread-609586][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:52:24,612 [DEBUG][       Thread-609586][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:52:24,612 [ INFO][       Thread-609586][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:52:24,613 [DEBUG][       Thread-609586][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:52:24,614 [DEBUG][       Thread-609586][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:52:24,614 [DEBUG][       Thread-609586][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:52:24,614 [DEBUG][       Thread-609586][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:52:24,614 [DEBUG][       Thread-609586][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:52:24,614 [DEBUG][       Thread-609586][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:52:24,614 [DEBUG][       Thread-609586][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:52:24,614 [DEBUG][       Thread-609586][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:52:24,614 [DEBUG][       Thread-609586][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:52:24,614 [DEBUG][       Thread-609586][   transport.py][1871] : client lang: <none>
2025-07-01 15:52:24,614 [DEBUG][       Thread-609586][   transport.py][1871] : server lang: <none>
2025-07-01 15:52:24,614 [DEBUG][       Thread-609586][   transport.py][1871] : kex follows: False
2025-07-01 15:52:24,614 [DEBUG][       Thread-609586][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:52:24,614 [DEBUG][       Thread-609586][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:52:24,614 [DEBUG][       Thread-609586][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:52:24,614 [DEBUG][       Thread-609586][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:52:24,614 [DEBUG][       Thread-609586][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:52:24,614 [DEBUG][       Thread-609586][   transport.py][1871] : Compression: none
2025-07-01 15:52:24,614 [DEBUG][       Thread-609586][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:52:24,633 [DEBUG][       Thread-609586][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:52:24,633 [DEBUG][       Thread-609586][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:52:24,634 [DEBUG][       Thread-609586][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:52:24,634 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:52:24,634 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:52:24,635 [DEBUG][       Thread-609586][   transport.py][1871] : userauth is OK
2025-07-01 15:52:24,649 [ INFO][       Thread-609586][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:52:24,649 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:52:25,207 [DEBUG][       Thread-609586][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:52:25,207 [DEBUG][       Thread-609586][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:52:25,249 [DEBUG][       Thread-609586][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:52:25,249 [DEBUG][       Thread-609586][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:52:25,252 [DEBUG][       Thread-609586][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:52:25,264 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:52:25,264 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:52:25,266 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:52:25,268 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:52:25,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:52:25,276 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:52:25,277 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:52:25,277 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:52:25,277 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.577717 -999.00  +13.80  27.80     51   +4.00 1 2 1 1 1   887    0 9.07 -24.47 ----- 29.6 27.8 26.2 45.9 15.7 -17.1 15.1 -17.3 15.4 -16.4 16.0 -16.3
2025-07-01 15:52:25,278 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:52:25,278 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:52:25,278 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.577717
2025-07-01 15:52:25,278 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:52:25,279 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:52:25,279 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:52:25,279 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:52:25,279 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:52:25,279 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:52:04', tmtdew=11.23, humidity=46.73, cloud=0.0, wind=23.55, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:51:54.749', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:52:25,279 [DEBUG][       Thread-609586][   transport.py][1871] : EOF in transport thread
2025-07-01 15:52:25,363 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:52:25,375 [DEBUG][       Thread-609589][   transport.py][1871] : starting thread (client mode): 0x81715a0
2025-07-01 15:52:25,375 [DEBUG][       Thread-609589][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:52:25,390 [DEBUG][       Thread-609589][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:52:25,390 [ INFO][       Thread-609589][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:52:25,398 [DEBUG][       Thread-609589][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:52:25,398 [DEBUG][       Thread-609589][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:52:25,398 [DEBUG][       Thread-609589][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:52:25,398 [DEBUG][       Thread-609589][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:52:25,398 [DEBUG][       Thread-609589][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:52:25,398 [DEBUG][       Thread-609589][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:52:25,398 [DEBUG][       Thread-609589][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:52:25,398 [DEBUG][       Thread-609589][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:52:25,398 [DEBUG][       Thread-609589][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:52:25,398 [DEBUG][       Thread-609589][   transport.py][1871] : client lang: <none>
2025-07-01 15:52:25,398 [DEBUG][       Thread-609589][   transport.py][1871] : server lang: <none>
2025-07-01 15:52:25,398 [DEBUG][       Thread-609589][   transport.py][1871] : kex follows: False
2025-07-01 15:52:25,399 [DEBUG][       Thread-609589][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:52:25,399 [DEBUG][       Thread-609589][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:52:25,399 [DEBUG][       Thread-609589][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:52:25,399 [DEBUG][       Thread-609589][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:52:25,399 [DEBUG][       Thread-609589][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:52:25,399 [DEBUG][       Thread-609589][   transport.py][1871] : Compression: none
2025-07-01 15:52:25,399 [DEBUG][       Thread-609589][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:52:25,455 [DEBUG][       Thread-609589][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:52:25,455 [DEBUG][       Thread-609589][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:52:25,456 [DEBUG][       Thread-609589][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:52:25,456 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:52:25,457 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:52:25,511 [DEBUG][       Thread-609589][   transport.py][1871] : userauth is OK
2025-07-01 15:52:25,512 [DEBUG][       Thread-609589][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:52:25,512 [DEBUG][       Thread-609589][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:52:25,512 [DEBUG][       Thread-609589][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:52:25,512 [DEBUG][       Thread-609589][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:52:25,530 [ INFO][       Thread-609589][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:52:25,531 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:52:25,531 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:52:26,558 [DEBUG][       Thread-609589][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:52:26,558 [DEBUG][       Thread-609589][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:52:26,610 [DEBUG][       Thread-609589][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:52:26,611 [DEBUG][       Thread-609589][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:52:26,622 [DEBUG][       Thread-609589][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:52:26,633 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:52:26,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')
2025-07-01 15:52:26,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') -> 00000000
2025-07-01 15:52:26,652 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:52:26,652 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:52:26,652 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:52:26,660 [DEBUG][       Thread-609589][   transport.py][1871] : EOF in transport thread
2025-07-01 15:52:33,046 [DEBUG][Thread-609591 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:52:36,663 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:52:36,663 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:52:36,663 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:52:36,666 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 15:52:37,148 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 52, 4), 11.23, 46.73, 0.0, 23.55, 13.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:52:37,148 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:52:04
2025-07-01 15:52:37,234 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:52:37,238 [DEBUG][       Thread-609592][   transport.py][1871] : starting thread (client mode): 0x81a6e60
2025-07-01 15:52:37,238 [DEBUG][       Thread-609592][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:52:37,257 [DEBUG][       Thread-609592][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:52:37,257 [ INFO][       Thread-609592][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:52:37,261 [DEBUG][       Thread-609592][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:52:37,261 [DEBUG][       Thread-609592][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:52:37,261 [DEBUG][       Thread-609592][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:52:37,261 [DEBUG][       Thread-609592][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:52:37,261 [DEBUG][       Thread-609592][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:52:37,261 [DEBUG][       Thread-609592][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:52:37,261 [DEBUG][       Thread-609592][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:52:37,261 [DEBUG][       Thread-609592][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:52:37,261 [DEBUG][       Thread-609592][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:52:37,261 [DEBUG][       Thread-609592][   transport.py][1871] : client lang: <none>
2025-07-01 15:52:37,261 [DEBUG][       Thread-609592][   transport.py][1871] : server lang: <none>
2025-07-01 15:52:37,261 [DEBUG][       Thread-609592][   transport.py][1871] : kex follows: False
2025-07-01 15:52:37,261 [DEBUG][       Thread-609592][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:52:37,261 [DEBUG][       Thread-609592][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:52:37,261 [DEBUG][       Thread-609592][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:52:37,261 [DEBUG][       Thread-609592][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:52:37,261 [DEBUG][       Thread-609592][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:52:37,261 [DEBUG][       Thread-609592][   transport.py][1871] : Compression: none
2025-07-01 15:52:37,261 [DEBUG][       Thread-609592][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:52:37,276 [DEBUG][       Thread-609592][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:52:37,276 [DEBUG][       Thread-609592][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:52:37,276 [DEBUG][       Thread-609592][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:52:37,277 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:52:37,277 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:52:37,277 [DEBUG][       Thread-609592][   transport.py][1871] : userauth is OK
2025-07-01 15:52:37,302 [ INFO][       Thread-609592][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:52:37,302 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:52:37,572 [DEBUG][Thread-609594 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:52:37,909 [DEBUG][       Thread-609592][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:52:37,909 [DEBUG][       Thread-609592][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:52:37,952 [DEBUG][       Thread-609592][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:52:37,953 [DEBUG][       Thread-609592][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:52:37,955 [DEBUG][       Thread-609592][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:52:37,967 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:52:37,967 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:52:37,968 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:52:37,969 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:52:37,972 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:52:37,973 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:52:37,973 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:52:37,973 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:52:37,973 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.577717 -999.00  +13.80  27.80     51   +4.00 1 2 1 1 1   887    0 9.07 -24.47 ----- 29.6 27.8 26.2 45.9 15.7 -17.1 15.1 -17.3 15.4 -16.4 16.0 -16.3
2025-07-01 15:52:37,973 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:52:37,973 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:52:37,973 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.577717
2025-07-01 15:52:37,973 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:52:37,973 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:52:37,973 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:52:37,973 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:52:37,973 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:52:37,973 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:52:04', tmtdew=11.23, humidity=46.73, cloud=0.0, wind=23.55, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:51:54.749', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:52:37,974 [DEBUG][       Thread-609592][   transport.py][1871] : EOF in transport thread
2025-07-01 15:52:38,047 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:52:38,056 [DEBUG][       Thread-609596][   transport.py][1871] : starting thread (client mode): 0x75abee0
2025-07-01 15:52:38,056 [DEBUG][       Thread-609596][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:52:38,073 [DEBUG][       Thread-609596][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:52:38,073 [ INFO][       Thread-609596][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:52:38,082 [DEBUG][       Thread-609596][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:52:38,082 [DEBUG][       Thread-609596][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:52:38,082 [DEBUG][       Thread-609596][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:52:38,082 [DEBUG][       Thread-609596][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:52:38,082 [DEBUG][       Thread-609596][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:52:38,082 [DEBUG][       Thread-609596][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:52:38,082 [DEBUG][       Thread-609596][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:52:38,082 [DEBUG][       Thread-609596][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:52:38,082 [DEBUG][       Thread-609596][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:52:38,082 [DEBUG][       Thread-609596][   transport.py][1871] : client lang: <none>
2025-07-01 15:52:38,082 [DEBUG][       Thread-609596][   transport.py][1871] : server lang: <none>
2025-07-01 15:52:38,082 [DEBUG][       Thread-609596][   transport.py][1871] : kex follows: False
2025-07-01 15:52:38,082 [DEBUG][       Thread-609596][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:52:38,082 [DEBUG][       Thread-609596][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:52:38,082 [DEBUG][       Thread-609596][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:52:38,082 [DEBUG][       Thread-609596][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:52:38,082 [DEBUG][       Thread-609596][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:52:38,082 [DEBUG][       Thread-609596][   transport.py][1871] : Compression: none
2025-07-01 15:52:38,082 [DEBUG][       Thread-609596][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:52:38,137 [DEBUG][       Thread-609596][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:52:38,138 [DEBUG][       Thread-609596][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:52:38,138 [DEBUG][       Thread-609596][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:52:38,138 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:52:38,138 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:52:38,197 [DEBUG][       Thread-609596][   transport.py][1871] : userauth is OK
2025-07-01 15:52:38,197 [DEBUG][       Thread-609596][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:52:38,197 [DEBUG][       Thread-609596][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:52:38,197 [DEBUG][       Thread-609596][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:52:38,197 [DEBUG][       Thread-609596][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:52:38,217 [ INFO][       Thread-609596][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:52:38,218 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:52:38,218 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:52:39,243 [DEBUG][       Thread-609596][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:52:39,243 [DEBUG][       Thread-609596][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:52:39,291 [DEBUG][       Thread-609596][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:52:39,291 [DEBUG][       Thread-609596][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:52:39,300 [DEBUG][       Thread-609596][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:52:39,308 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:52:39,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-07-01 15:52:39,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-07-01 15:52:39,324 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:52:39,324 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:52:39,324 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:52:39,332 [DEBUG][       Thread-609596][   transport.py][1871] : EOF in transport thread
2025-07-01 15:52:42,065 [DEBUG][Thread-609598 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:52:49,334 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:52:49,334 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:52:49,335 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:52:49,337 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 15:52:49,802 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 52, 36), 11.3, 46.62, 0.0, 31.74, 13.99, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:52:49,802 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:52:36
2025-07-01 15:52:49,887 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:52:49,893 [DEBUG][       Thread-609599][   transport.py][1871] : starting thread (client mode): 0x818ef80
2025-07-01 15:52:49,893 [DEBUG][       Thread-609599][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:52:49,914 [DEBUG][       Thread-609599][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:52:49,914 [ INFO][       Thread-609599][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:52:49,917 [DEBUG][       Thread-609599][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:52:49,917 [DEBUG][       Thread-609599][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:52:49,917 [DEBUG][       Thread-609599][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:52:49,917 [DEBUG][       Thread-609599][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:52:49,917 [DEBUG][       Thread-609599][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:52:49,917 [DEBUG][       Thread-609599][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:52:49,917 [DEBUG][       Thread-609599][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:52:49,917 [DEBUG][       Thread-609599][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:52:49,917 [DEBUG][       Thread-609599][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:52:49,917 [DEBUG][       Thread-609599][   transport.py][1871] : client lang: <none>
2025-07-01 15:52:49,917 [DEBUG][       Thread-609599][   transport.py][1871] : server lang: <none>
2025-07-01 15:52:49,917 [DEBUG][       Thread-609599][   transport.py][1871] : kex follows: False
2025-07-01 15:52:49,917 [DEBUG][       Thread-609599][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:52:49,917 [DEBUG][       Thread-609599][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:52:49,918 [DEBUG][       Thread-609599][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:52:49,918 [DEBUG][       Thread-609599][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:52:49,918 [DEBUG][       Thread-609599][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:52:49,918 [DEBUG][       Thread-609599][   transport.py][1871] : Compression: none
2025-07-01 15:52:49,918 [DEBUG][       Thread-609599][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:52:49,934 [DEBUG][       Thread-609599][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:52:49,935 [DEBUG][       Thread-609599][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:52:49,935 [DEBUG][       Thread-609599][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:52:49,936 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:52:49,936 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:52:49,937 [DEBUG][       Thread-609599][   transport.py][1871] : userauth is OK
2025-07-01 15:52:49,950 [ INFO][       Thread-609599][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:52:49,951 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:52:50,617 [DEBUG][       Thread-609599][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:52:50,617 [DEBUG][       Thread-609599][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:52:50,661 [DEBUG][       Thread-609599][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:52:50,661 [DEBUG][       Thread-609599][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:52:50,665 [DEBUG][       Thread-609599][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:52:50,671 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:52:50,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:52:50,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:52:50,676 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:52:50,682 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:52:50,683 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:52:50,684 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:52:50,684 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:52:50,685 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.577717 -999.00  +13.80  27.80     51   +4.00 1 2 1 1 1   887    0 9.07 -24.47 ----- 29.6 27.8 26.2 45.9 15.7 -17.1 15.1 -17.3 15.4 -16.4 16.0 -16.3
2025-07-01 15:52:50,685 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:52:50,685 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:52:50,685 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.577717
2025-07-01 15:52:50,685 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:52:50,686 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:52:50,686 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:52:50,686 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:52:50,686 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:52:50,686 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:52:36', tmtdew=11.3, humidity=46.62, cloud=0.0, wind=31.74, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:51:54.749', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:52:50,687 [DEBUG][       Thread-609599][   transport.py][1871] : EOF in transport thread
2025-07-01 15:52:50,770 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:52:50,780 [DEBUG][       Thread-609602][   transport.py][1871] : starting thread (client mode): 0x81c9120
2025-07-01 15:52:50,780 [DEBUG][       Thread-609602][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:52:50,797 [DEBUG][       Thread-609602][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:52:50,797 [ INFO][       Thread-609602][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:52:50,805 [DEBUG][       Thread-609602][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:52:50,805 [DEBUG][       Thread-609602][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:52:50,805 [DEBUG][       Thread-609602][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:52:50,805 [DEBUG][       Thread-609602][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:52:50,805 [DEBUG][       Thread-609602][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:52:50,805 [DEBUG][       Thread-609602][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:52:50,805 [DEBUG][       Thread-609602][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:52:50,805 [DEBUG][       Thread-609602][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:52:50,805 [DEBUG][       Thread-609602][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:52:50,805 [DEBUG][       Thread-609602][   transport.py][1871] : client lang: <none>
2025-07-01 15:52:50,805 [DEBUG][       Thread-609602][   transport.py][1871] : server lang: <none>
2025-07-01 15:52:50,805 [DEBUG][       Thread-609602][   transport.py][1871] : kex follows: False
2025-07-01 15:52:50,805 [DEBUG][       Thread-609602][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:52:50,806 [DEBUG][       Thread-609602][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:52:50,806 [DEBUG][       Thread-609602][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:52:50,806 [DEBUG][       Thread-609602][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:52:50,806 [DEBUG][       Thread-609602][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:52:50,806 [DEBUG][       Thread-609602][   transport.py][1871] : Compression: none
2025-07-01 15:52:50,806 [DEBUG][       Thread-609602][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:52:50,863 [DEBUG][       Thread-609602][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:52:50,864 [DEBUG][       Thread-609602][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:52:50,864 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:52:50,865 [DEBUG][       Thread-609602][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:52:50,865 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:52:50,919 [DEBUG][       Thread-609602][   transport.py][1871] : userauth is OK
2025-07-01 15:52:50,919 [DEBUG][       Thread-609602][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:52:50,919 [DEBUG][       Thread-609602][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:52:50,919 [DEBUG][       Thread-609602][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:52:50,919 [DEBUG][       Thread-609602][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:52:50,938 [ INFO][       Thread-609602][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:52:50,938 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:52:50,939 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:52:51,086 [DEBUG][Thread-609604 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:52:51,978 [DEBUG][       Thread-609602][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:52:51,978 [DEBUG][       Thread-609602][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:52:52,030 [DEBUG][       Thread-609602][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:52:52,030 [DEBUG][       Thread-609602][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:52:52,039 [DEBUG][       Thread-609602][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:52:52,048 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:52:52,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-07-01 15:52: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') -> 00000000
2025-07-01 15:52:52,068 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:52:52,069 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:52:52,069 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:52:52,077 [DEBUG][       Thread-609602][   transport.py][1871] : EOF in transport thread
2025-07-01 15:53:00,121 [DEBUG][Thread-609605 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:53:02,076 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:53:02,076 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:53:02,085 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:53:02,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-07-01 15:53:02,563 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 52, 36), 11.3, 46.62, 0.0, 31.74, 13.99, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:53:02,563 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:52:36
2025-07-01 15:53:02,650 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:53:02,654 [DEBUG][       Thread-609606][   transport.py][1871] : starting thread (client mode): 0x818f880
2025-07-01 15:53:02,654 [DEBUG][       Thread-609606][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:53:02,675 [DEBUG][       Thread-609606][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:53:02,675 [ INFO][       Thread-609606][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:53:02,678 [DEBUG][       Thread-609606][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:53:02,678 [DEBUG][       Thread-609606][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:53:02,678 [DEBUG][       Thread-609606][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:53:02,678 [DEBUG][       Thread-609606][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:53:02,678 [DEBUG][       Thread-609606][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:53:02,678 [DEBUG][       Thread-609606][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:53:02,678 [DEBUG][       Thread-609606][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:53:02,678 [DEBUG][       Thread-609606][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:53:02,678 [DEBUG][       Thread-609606][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:53:02,678 [DEBUG][       Thread-609606][   transport.py][1871] : client lang: <none>
2025-07-01 15:53:02,678 [DEBUG][       Thread-609606][   transport.py][1871] : server lang: <none>
2025-07-01 15:53:02,678 [DEBUG][       Thread-609606][   transport.py][1871] : kex follows: False
2025-07-01 15:53:02,678 [DEBUG][       Thread-609606][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:53:02,678 [DEBUG][       Thread-609606][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:53:02,678 [DEBUG][       Thread-609606][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:53:02,678 [DEBUG][       Thread-609606][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:53:02,678 [DEBUG][       Thread-609606][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:53:02,678 [DEBUG][       Thread-609606][   transport.py][1871] : Compression: none
2025-07-01 15:53:02,678 [DEBUG][       Thread-609606][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:53:02,695 [DEBUG][       Thread-609606][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:53:02,695 [DEBUG][       Thread-609606][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:53:02,696 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:53:02,696 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:53:02,697 [DEBUG][       Thread-609606][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:53:02,697 [DEBUG][       Thread-609606][   transport.py][1871] : userauth is OK
2025-07-01 15:53:02,710 [ INFO][       Thread-609606][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:53:02,710 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:53:03,330 [DEBUG][       Thread-609606][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:53:03,330 [DEBUG][       Thread-609606][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:53:03,373 [DEBUG][       Thread-609606][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:53:03,373 [DEBUG][       Thread-609606][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:53:03,376 [DEBUG][       Thread-609606][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:53:03,389 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:53:03,390 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:53:03,392 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:53:03,394 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:53:03,400 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:53:03,402 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:53:03,402 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:53:03,403 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:53:03,403 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.578064 -999.00  +14.00  35.94     51   +4.10 1 2 2 1 1   887    0 8.73 -24.41 ----- 38.0 35.9 32.0 41.1 15.8 -17.3 15.2 -17.2 15.5 -16.7 16.1 -16.6
2025-07-01 15:53:03,403 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:53:03,403 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:53:03,403 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.578064
2025-07-01 15:53:03,404 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:53:03,404 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:53:03,404 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:53:03,404 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:53:03,404 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:53:03,405 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:52:36', tmtdew=11.3, humidity=46.62, cloud=0.0, wind=31.74, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:52:24.730', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:53:03,406 [DEBUG][       Thread-609606][   transport.py][1871] : EOF in transport thread
2025-07-01 15:53:03,488 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:53:03,497 [DEBUG][       Thread-609609][   transport.py][1871] : starting thread (client mode): 0x4701ec20
2025-07-01 15:53:03,497 [DEBUG][       Thread-609609][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:53:03,513 [DEBUG][       Thread-609609][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:53:03,513 [ INFO][       Thread-609609][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:53:03,520 [DEBUG][       Thread-609609][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:53:03,520 [DEBUG][       Thread-609609][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:53:03,520 [DEBUG][       Thread-609609][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:53:03,520 [DEBUG][       Thread-609609][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:53:03,520 [DEBUG][       Thread-609609][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:53:03,520 [DEBUG][       Thread-609609][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:53:03,521 [DEBUG][       Thread-609609][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:53:03,521 [DEBUG][       Thread-609609][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:53:03,521 [DEBUG][       Thread-609609][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:53:03,521 [DEBUG][       Thread-609609][   transport.py][1871] : client lang: <none>
2025-07-01 15:53:03,521 [DEBUG][       Thread-609609][   transport.py][1871] : server lang: <none>
2025-07-01 15:53:03,521 [DEBUG][       Thread-609609][   transport.py][1871] : kex follows: False
2025-07-01 15:53:03,521 [DEBUG][       Thread-609609][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:53:03,521 [DEBUG][       Thread-609609][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:53:03,521 [DEBUG][       Thread-609609][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:53:03,521 [DEBUG][       Thread-609609][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:53:03,521 [DEBUG][       Thread-609609][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:53:03,521 [DEBUG][       Thread-609609][   transport.py][1871] : Compression: none
2025-07-01 15:53:03,521 [DEBUG][       Thread-609609][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:53:03,583 [DEBUG][       Thread-609609][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:53:03,584 [DEBUG][       Thread-609609][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:53:03,584 [DEBUG][       Thread-609609][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:53:03,585 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:53:03,585 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:53:03,641 [DEBUG][       Thread-609609][   transport.py][1871] : userauth is OK
2025-07-01 15:53:03,641 [DEBUG][       Thread-609609][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:53:03,641 [DEBUG][       Thread-609609][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:53:03,641 [DEBUG][       Thread-609609][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:53:03,641 [DEBUG][       Thread-609609][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:53:03,660 [ INFO][       Thread-609609][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:53:03,660 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:53:03,661 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:53:04,692 [DEBUG][       Thread-609609][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:53:04,692 [DEBUG][       Thread-609609][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:53:04,740 [DEBUG][       Thread-609609][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:53:04,740 [DEBUG][       Thread-609609][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:53:04,750 [DEBUG][       Thread-609609][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:53:04,759 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:53:04,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-07-01 15:53:04,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-07-01 15:53:04,778 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:53:04,778 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:53:04,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:53:04,786 [DEBUG][       Thread-609609][   transport.py][1871] : EOF in transport thread
2025-07-01 15:53:09,139 [DEBUG][Thread-609611 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:53:14,789 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:53:14,789 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:53:14,789 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:53:14,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-07-01 15:53:15,254 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 53, 8), 11.28, 46.7, 0.0, 31.94, 14.03, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:53:15,255 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:53:08
2025-07-01 15:53:15,340 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:53:15,345 [DEBUG][       Thread-609612][   transport.py][1871] : starting thread (client mode): 0x81e75e0
2025-07-01 15:53:15,345 [DEBUG][       Thread-609612][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:53:15,365 [DEBUG][       Thread-609612][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:53:15,365 [ INFO][       Thread-609612][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:53:15,368 [DEBUG][       Thread-609612][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:53:15,368 [DEBUG][       Thread-609612][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:53:15,368 [DEBUG][       Thread-609612][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:53:15,368 [DEBUG][       Thread-609612][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:53:15,368 [DEBUG][       Thread-609612][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:53:15,368 [DEBUG][       Thread-609612][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:53:15,369 [DEBUG][       Thread-609612][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:53:15,369 [DEBUG][       Thread-609612][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:53:15,369 [DEBUG][       Thread-609612][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:53:15,369 [DEBUG][       Thread-609612][   transport.py][1871] : client lang: <none>
2025-07-01 15:53:15,369 [DEBUG][       Thread-609612][   transport.py][1871] : server lang: <none>
2025-07-01 15:53:15,369 [DEBUG][       Thread-609612][   transport.py][1871] : kex follows: False
2025-07-01 15:53:15,369 [DEBUG][       Thread-609612][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:53:15,369 [DEBUG][       Thread-609612][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:53:15,369 [DEBUG][       Thread-609612][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:53:15,369 [DEBUG][       Thread-609612][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:53:15,369 [DEBUG][       Thread-609612][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:53:15,369 [DEBUG][       Thread-609612][   transport.py][1871] : Compression: none
2025-07-01 15:53:15,369 [DEBUG][       Thread-609612][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:53:15,385 [DEBUG][       Thread-609612][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:53:15,386 [DEBUG][       Thread-609612][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:53:15,386 [DEBUG][       Thread-609612][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:53:15,386 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:53:15,387 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:53:15,388 [DEBUG][       Thread-609612][   transport.py][1871] : userauth is OK
2025-07-01 15:53:15,413 [ INFO][       Thread-609612][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:53:15,414 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:53:16,052 [DEBUG][       Thread-609612][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:53:16,052 [DEBUG][       Thread-609612][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:53:16,093 [DEBUG][       Thread-609612][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:53:16,093 [DEBUG][       Thread-609612][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:53:16,097 [DEBUG][       Thread-609612][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:53:16,109 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:53:16,110 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:53:16,112 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:53:16,114 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:53:16,120 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:53:16,122 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:53:16,122 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:53:16,123 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:53:16,123 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.578064 -999.00  +14.00  35.94     51   +4.10 1 2 2 1 1   887    0 8.73 -24.41 ----- 38.0 35.9 32.0 41.1 15.8 -17.3 15.2 -17.2 15.5 -16.7 16.1 -16.6
2025-07-01 15:53:16,123 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:53:16,123 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:53:16,123 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.578064
2025-07-01 15:53:16,124 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:53:16,124 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:53:16,124 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:53:16,124 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:53:16,124 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:53:16,124 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:53:08', tmtdew=11.28, humidity=46.7, cloud=0.0, wind=31.94, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:52:24.730', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:53:16,126 [DEBUG][       Thread-609612][   transport.py][1871] : EOF in transport thread
2025-07-01 15:53:16,208 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:53:16,222 [DEBUG][       Thread-609615][   transport.py][1871] : starting thread (client mode): 0x81c9300
2025-07-01 15:53:16,222 [DEBUG][       Thread-609615][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:53:16,237 [DEBUG][       Thread-609615][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:53:16,237 [ INFO][       Thread-609615][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:53:16,249 [DEBUG][       Thread-609615][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:53:16,249 [DEBUG][       Thread-609615][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:53:16,249 [DEBUG][       Thread-609615][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:53:16,249 [DEBUG][       Thread-609615][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:53:16,249 [DEBUG][       Thread-609615][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:53:16,249 [DEBUG][       Thread-609615][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:53:16,249 [DEBUG][       Thread-609615][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:53:16,249 [DEBUG][       Thread-609615][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:53:16,249 [DEBUG][       Thread-609615][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:53:16,249 [DEBUG][       Thread-609615][   transport.py][1871] : client lang: <none>
2025-07-01 15:53:16,250 [DEBUG][       Thread-609615][   transport.py][1871] : server lang: <none>
2025-07-01 15:53:16,250 [DEBUG][       Thread-609615][   transport.py][1871] : kex follows: False
2025-07-01 15:53:16,250 [DEBUG][       Thread-609615][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:53:16,250 [DEBUG][       Thread-609615][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:53:16,250 [DEBUG][       Thread-609615][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:53:16,250 [DEBUG][       Thread-609615][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:53:16,250 [DEBUG][       Thread-609615][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:53:16,250 [DEBUG][       Thread-609615][   transport.py][1871] : Compression: none
2025-07-01 15:53:16,250 [DEBUG][       Thread-609615][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:53:16,306 [DEBUG][       Thread-609615][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:53:16,307 [DEBUG][       Thread-609615][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:53:16,307 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:53:16,308 [DEBUG][       Thread-609615][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:53:16,309 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:53:16,362 [DEBUG][       Thread-609615][   transport.py][1871] : userauth is OK
2025-07-01 15:53:16,363 [DEBUG][       Thread-609615][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:53:16,363 [DEBUG][       Thread-609615][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:53:16,363 [DEBUG][       Thread-609615][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:53:16,363 [DEBUG][       Thread-609615][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:53:16,381 [ INFO][       Thread-609615][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:53:16,382 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:53:16,382 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:53:17,406 [DEBUG][       Thread-609615][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:53:17,406 [DEBUG][       Thread-609615][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:53:17,456 [DEBUG][       Thread-609615][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:53:17,456 [DEBUG][       Thread-609615][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:53:17,468 [DEBUG][       Thread-609615][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:53:17,480 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:53: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')
2025-07-01 15:53:17,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-07-01 15:53:17,501 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:53:17,501 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:53:17,502 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:53:17,512 [DEBUG][       Thread-609615][   transport.py][1871] : EOF in transport thread
2025-07-01 15:53:18,159 [DEBUG][Thread-609617 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:53:27,204 [DEBUG][Thread-609618 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:53:27,512 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:53:27,512 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:53:27,512 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:53:27,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-07-01 15:53:27,982 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 53, 8), 11.28, 46.7, 0.0, 31.94, 14.03, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:53:27,982 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:53:08
2025-07-01 15:53:28,068 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:53:28,072 [DEBUG][       Thread-609619][   transport.py][1871] : starting thread (client mode): 0x81d8040
2025-07-01 15:53:28,072 [DEBUG][       Thread-609619][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:53:28,092 [DEBUG][       Thread-609619][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:53:28,092 [ INFO][       Thread-609619][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:53:28,097 [DEBUG][       Thread-609619][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:53:28,097 [DEBUG][       Thread-609619][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:53:28,097 [DEBUG][       Thread-609619][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:53:28,097 [DEBUG][       Thread-609619][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:53:28,097 [DEBUG][       Thread-609619][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:53:28,097 [DEBUG][       Thread-609619][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:53:28,097 [DEBUG][       Thread-609619][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:53:28,097 [DEBUG][       Thread-609619][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:53:28,097 [DEBUG][       Thread-609619][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:53:28,097 [DEBUG][       Thread-609619][   transport.py][1871] : client lang: <none>
2025-07-01 15:53:28,097 [DEBUG][       Thread-609619][   transport.py][1871] : server lang: <none>
2025-07-01 15:53:28,097 [DEBUG][       Thread-609619][   transport.py][1871] : kex follows: False
2025-07-01 15:53:28,097 [DEBUG][       Thread-609619][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:53:28,097 [DEBUG][       Thread-609619][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:53:28,097 [DEBUG][       Thread-609619][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:53:28,097 [DEBUG][       Thread-609619][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:53:28,097 [DEBUG][       Thread-609619][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:53:28,097 [DEBUG][       Thread-609619][   transport.py][1871] : Compression: none
2025-07-01 15:53:28,097 [DEBUG][       Thread-609619][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:53:28,111 [DEBUG][       Thread-609619][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:53:28,112 [DEBUG][       Thread-609619][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:53:28,112 [DEBUG][       Thread-609619][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:53:28,113 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:53:28,113 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:53:28,114 [DEBUG][       Thread-609619][   transport.py][1871] : userauth is OK
2025-07-01 15:53:28,126 [ INFO][       Thread-609619][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:53:28,127 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:53:28,670 [DEBUG][       Thread-609619][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:53:28,670 [DEBUG][       Thread-609619][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:53:28,713 [DEBUG][       Thread-609619][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:53:28,713 [DEBUG][       Thread-609619][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:53:28,716 [DEBUG][       Thread-609619][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:53:28,732 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:53:28,733 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:53:28,735 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:53:28,736 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:53:28,741 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:53:28,743 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:53:28,743 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:53:28,744 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:53:28,744 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.578759 -999.00  +14.00  35.52     51   +4.00 1 2 2 1 1   887    0 9.14 -19.61 ----- 33.1 35.5 42.0 39.8 15.8 -17.9 15.2 -17.6 15.6 -17.4 16.2 -17.6
2025-07-01 15:53:28,744 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:53:28,744 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:53:28,744 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.578759
2025-07-01 15:53:28,745 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:53:28,745 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:53:28,745 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:53:28,745 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:53:28,745 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:53:28,745 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:53:08', tmtdew=11.28, humidity=46.7, cloud=0.0, wind=31.94, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:53:24.778', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:53:28,747 [DEBUG][       Thread-609619][   transport.py][1871] : EOF in transport thread
2025-07-01 15:53:28,829 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:53:28,847 [DEBUG][       Thread-609622][   transport.py][1871] : starting thread (client mode): 0x827d540
2025-07-01 15:53:28,847 [DEBUG][       Thread-609622][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:53:28,862 [DEBUG][       Thread-609622][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:53:28,862 [ INFO][       Thread-609622][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:53:28,870 [DEBUG][       Thread-609622][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:53:28,870 [DEBUG][       Thread-609622][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:53:28,870 [DEBUG][       Thread-609622][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:53:28,870 [DEBUG][       Thread-609622][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:53:28,870 [DEBUG][       Thread-609622][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:53:28,870 [DEBUG][       Thread-609622][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:53:28,870 [DEBUG][       Thread-609622][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:53:28,870 [DEBUG][       Thread-609622][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:53:28,870 [DEBUG][       Thread-609622][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:53:28,870 [DEBUG][       Thread-609622][   transport.py][1871] : client lang: <none>
2025-07-01 15:53:28,870 [DEBUG][       Thread-609622][   transport.py][1871] : server lang: <none>
2025-07-01 15:53:28,870 [DEBUG][       Thread-609622][   transport.py][1871] : kex follows: False
2025-07-01 15:53:28,870 [DEBUG][       Thread-609622][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:53:28,870 [DEBUG][       Thread-609622][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:53:28,871 [DEBUG][       Thread-609622][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:53:28,871 [DEBUG][       Thread-609622][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:53:28,871 [DEBUG][       Thread-609622][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:53:28,871 [DEBUG][       Thread-609622][   transport.py][1871] : Compression: none
2025-07-01 15:53:28,871 [DEBUG][       Thread-609622][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:53:28,931 [DEBUG][       Thread-609622][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:53:28,931 [DEBUG][       Thread-609622][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:53:28,932 [DEBUG][       Thread-609622][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:53:28,932 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:53:28,933 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:53:28,986 [DEBUG][       Thread-609622][   transport.py][1871] : userauth is OK
2025-07-01 15:53:28,986 [DEBUG][       Thread-609622][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:53:28,987 [DEBUG][       Thread-609622][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:53:28,987 [DEBUG][       Thread-609622][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:53:28,987 [DEBUG][       Thread-609622][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:53:29,007 [ INFO][       Thread-609622][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:53:29,007 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:53:29,008 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:53:30,068 [DEBUG][       Thread-609622][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:53:30,068 [DEBUG][       Thread-609622][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:53:30,116 [DEBUG][       Thread-609622][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:53:30,116 [DEBUG][       Thread-609622][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:53:30,126 [DEBUG][       Thread-609622][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:53:30,134 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:53:30,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-07-01 15:53:30,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-07-01 15:53:30,153 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:53:30,153 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:53:30,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:53:30,162 [DEBUG][       Thread-609622][   transport.py][1871] : EOF in transport thread
2025-07-01 15:53:36,227 [DEBUG][Thread-609624 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:53:37,615 [DEBUG][Thread-609625 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:53:40,163 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:53:40,163 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:53:40,163 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:53:40,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-07-01 15:53:40,642 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 53, 8), 11.28, 46.7, 0.0, 31.94, 14.03, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:53:40,642 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:53:08
2025-07-01 15:53:40,729 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:53:40,733 [DEBUG][       Thread-609626][   transport.py][1871] : starting thread (client mode): 0x81d8130
2025-07-01 15:53:40,733 [DEBUG][       Thread-609626][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:53:40,749 [DEBUG][       Thread-609626][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:53:40,749 [ INFO][       Thread-609626][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:53:40,751 [DEBUG][       Thread-609626][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:53:40,751 [DEBUG][       Thread-609626][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:53:40,751 [DEBUG][       Thread-609626][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:53:40,751 [DEBUG][       Thread-609626][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:53:40,751 [DEBUG][       Thread-609626][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:53:40,751 [DEBUG][       Thread-609626][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:53:40,751 [DEBUG][       Thread-609626][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:53:40,751 [DEBUG][       Thread-609626][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:53:40,751 [DEBUG][       Thread-609626][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:53:40,751 [DEBUG][       Thread-609626][   transport.py][1871] : client lang: <none>
2025-07-01 15:53:40,751 [DEBUG][       Thread-609626][   transport.py][1871] : server lang: <none>
2025-07-01 15:53:40,751 [DEBUG][       Thread-609626][   transport.py][1871] : kex follows: False
2025-07-01 15:53:40,751 [DEBUG][       Thread-609626][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:53:40,752 [DEBUG][       Thread-609626][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:53:40,752 [DEBUG][       Thread-609626][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:53:40,752 [DEBUG][       Thread-609626][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:53:40,752 [DEBUG][       Thread-609626][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:53:40,752 [DEBUG][       Thread-609626][   transport.py][1871] : Compression: none
2025-07-01 15:53:40,752 [DEBUG][       Thread-609626][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:53:40,763 [DEBUG][       Thread-609626][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:53:40,764 [DEBUG][       Thread-609626][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:53:40,764 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:53:40,764 [DEBUG][       Thread-609626][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:53:40,764 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:53:40,765 [DEBUG][       Thread-609626][   transport.py][1871] : userauth is OK
2025-07-01 15:53:40,777 [ INFO][       Thread-609626][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:53:40,777 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:53:41,390 [DEBUG][       Thread-609626][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:53:41,390 [DEBUG][       Thread-609626][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:53:41,432 [DEBUG][       Thread-609626][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:53:41,432 [DEBUG][       Thread-609626][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:53:41,435 [DEBUG][       Thread-609626][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:53:41,446 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:53:41,446 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:53:41,447 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:53:41,448 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:53:41,452 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:53:41,453 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:53:41,453 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:53:41,453 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:53:41,453 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.578759 -999.00  +14.00  35.52     51   +4.00 1 2 2 1 1   887    0 9.14 -19.61 ----- 33.1 35.5 42.0 39.8 15.8 -17.9 15.2 -17.6 15.6 -17.4 16.2 -17.6
2025-07-01 15:53:41,453 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:53:41,453 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:53:41,453 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.578759
2025-07-01 15:53:41,453 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:53:41,453 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:53:41,453 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:53:41,453 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:53:41,453 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:53:41,453 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:53:08', tmtdew=11.28, humidity=46.7, cloud=0.0, wind=31.94, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:53:24.778', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:53:41,453 [DEBUG][       Thread-609626][   transport.py][1871] : EOF in transport thread
2025-07-01 15:53:41,528 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:53:41,538 [DEBUG][       Thread-609629][   transport.py][1871] : starting thread (client mode): 0x75a85b0
2025-07-01 15:53:41,538 [DEBUG][       Thread-609629][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:53:41,554 [DEBUG][       Thread-609629][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:53:41,554 [ INFO][       Thread-609629][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:53:41,562 [DEBUG][       Thread-609629][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:53:41,562 [DEBUG][       Thread-609629][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:53:41,562 [DEBUG][       Thread-609629][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:53:41,562 [DEBUG][       Thread-609629][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:53:41,562 [DEBUG][       Thread-609629][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:53:41,562 [DEBUG][       Thread-609629][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:53:41,562 [DEBUG][       Thread-609629][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:53:41,562 [DEBUG][       Thread-609629][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:53:41,562 [DEBUG][       Thread-609629][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:53:41,562 [DEBUG][       Thread-609629][   transport.py][1871] : client lang: <none>
2025-07-01 15:53:41,562 [DEBUG][       Thread-609629][   transport.py][1871] : server lang: <none>
2025-07-01 15:53:41,562 [DEBUG][       Thread-609629][   transport.py][1871] : kex follows: False
2025-07-01 15:53:41,562 [DEBUG][       Thread-609629][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:53:41,562 [DEBUG][       Thread-609629][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:53:41,562 [DEBUG][       Thread-609629][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:53:41,562 [DEBUG][       Thread-609629][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:53:41,562 [DEBUG][       Thread-609629][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:53:41,562 [DEBUG][       Thread-609629][   transport.py][1871] : Compression: none
2025-07-01 15:53:41,562 [DEBUG][       Thread-609629][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:53:41,617 [DEBUG][       Thread-609629][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:53:41,617 [DEBUG][       Thread-609629][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:53:41,618 [DEBUG][       Thread-609629][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:53:41,618 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:53:41,618 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:53:41,678 [DEBUG][       Thread-609629][   transport.py][1871] : userauth is OK
2025-07-01 15:53:41,678 [DEBUG][       Thread-609629][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:53:41,678 [DEBUG][       Thread-609629][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:53:41,678 [DEBUG][       Thread-609629][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:53:41,678 [DEBUG][       Thread-609629][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:53:41,693 [ INFO][       Thread-609629][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:53:41,693 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:53:41,694 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:53:42,711 [DEBUG][       Thread-609629][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:53:42,711 [DEBUG][       Thread-609629][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:53:42,760 [DEBUG][       Thread-609629][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:53:42,760 [DEBUG][       Thread-609629][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:53:42,769 [DEBUG][       Thread-609629][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:53:42,778 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:53:42,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-07-01 15:53:42,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-07-01 15:53:42,795 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:53:42,796 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:53:42,796 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:53:42,804 [DEBUG][       Thread-609629][   transport.py][1871] : EOF in transport thread
2025-07-01 15:53:45,246 [DEBUG][Thread-609631 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:53:52,798 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:53:52,798 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:53:52,798 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:53:52,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-07-01 15:53:53,279 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 53, 40), 11.38, 46.51, 0.0, 32.41, 14.11, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:53:53,279 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:53:40
2025-07-01 15:53:53,363 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:53:53,368 [DEBUG][       Thread-609632][   transport.py][1871] : starting thread (client mode): 0x81da140
2025-07-01 15:53:53,368 [DEBUG][       Thread-609632][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:53:53,390 [DEBUG][       Thread-609632][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:53:53,390 [ INFO][       Thread-609632][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:53:53,392 [DEBUG][       Thread-609632][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:53:53,392 [DEBUG][       Thread-609632][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:53:53,392 [DEBUG][       Thread-609632][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:53:53,392 [DEBUG][       Thread-609632][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:53:53,392 [DEBUG][       Thread-609632][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:53:53,392 [DEBUG][       Thread-609632][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:53:53,392 [DEBUG][       Thread-609632][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:53:53,392 [DEBUG][       Thread-609632][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:53:53,392 [DEBUG][       Thread-609632][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:53:53,392 [DEBUG][       Thread-609632][   transport.py][1871] : client lang: <none>
2025-07-01 15:53:53,392 [DEBUG][       Thread-609632][   transport.py][1871] : server lang: <none>
2025-07-01 15:53:53,392 [DEBUG][       Thread-609632][   transport.py][1871] : kex follows: False
2025-07-01 15:53:53,392 [DEBUG][       Thread-609632][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:53:53,392 [DEBUG][       Thread-609632][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:53:53,392 [DEBUG][       Thread-609632][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:53:53,392 [DEBUG][       Thread-609632][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:53:53,392 [DEBUG][       Thread-609632][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:53:53,392 [DEBUG][       Thread-609632][   transport.py][1871] : Compression: none
2025-07-01 15:53:53,392 [DEBUG][       Thread-609632][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:53:53,403 [DEBUG][       Thread-609632][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:53:53,404 [DEBUG][       Thread-609632][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:53:53,404 [DEBUG][       Thread-609632][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:53:53,404 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:53:53,404 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:53:53,404 [DEBUG][       Thread-609632][   transport.py][1871] : userauth is OK
2025-07-01 15:53:53,429 [ INFO][       Thread-609632][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:53:53,429 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:53:54,087 [DEBUG][       Thread-609632][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:53:54,087 [DEBUG][       Thread-609632][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:53:54,129 [DEBUG][       Thread-609632][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:53:54,129 [DEBUG][       Thread-609632][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:53:54,132 [DEBUG][       Thread-609632][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:53:54,145 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:53:54,145 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:53:54,147 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:53:54,149 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:53:54,155 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:53:54,157 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:53:54,157 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:53:54,158 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:53:54,158 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.578759 -999.00  +14.00  35.52     51   +4.00 1 2 2 1 1   887    0 9.14 -19.61 ----- 33.1 35.5 42.0 39.8 15.8 -17.9 15.2 -17.6 15.6 -17.4 16.2 -17.6
2025-07-01 15:53:54,158 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:53:54,158 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:53:54,159 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.578759
2025-07-01 15:53:54,159 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:53:54,160 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:53:54,160 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:53:54,160 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:53:54,160 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:53:54,160 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:53:40', tmtdew=11.38, humidity=46.51, cloud=0.0, wind=32.41, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:53:24.778', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:53:54,161 [DEBUG][       Thread-609632][   transport.py][1871] : EOF in transport thread
2025-07-01 15:53:54,243 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:53:54,255 [DEBUG][       Thread-609635][   transport.py][1871] : starting thread (client mode): 0x75aad10
2025-07-01 15:53:54,255 [DEBUG][       Thread-609635][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:53:54,264 [DEBUG][Thread-609636 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:53:54,271 [DEBUG][       Thread-609635][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:53:54,271 [ INFO][       Thread-609635][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:53:54,278 [DEBUG][       Thread-609635][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:53:54,278 [DEBUG][       Thread-609635][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:53:54,278 [DEBUG][       Thread-609635][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:53:54,278 [DEBUG][       Thread-609635][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:53:54,278 [DEBUG][       Thread-609635][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:53:54,278 [DEBUG][       Thread-609635][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:53:54,278 [DEBUG][       Thread-609635][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:53:54,278 [DEBUG][       Thread-609635][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:53:54,278 [DEBUG][       Thread-609635][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:53:54,278 [DEBUG][       Thread-609635][   transport.py][1871] : client lang: <none>
2025-07-01 15:53:54,278 [DEBUG][       Thread-609635][   transport.py][1871] : server lang: <none>
2025-07-01 15:53:54,278 [DEBUG][       Thread-609635][   transport.py][1871] : kex follows: False
2025-07-01 15:53:54,279 [DEBUG][       Thread-609635][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:53:54,279 [DEBUG][       Thread-609635][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:53:54,279 [DEBUG][       Thread-609635][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:53:54,279 [DEBUG][       Thread-609635][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:53:54,279 [DEBUG][       Thread-609635][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:53:54,279 [DEBUG][       Thread-609635][   transport.py][1871] : Compression: none
2025-07-01 15:53:54,279 [DEBUG][       Thread-609635][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:53:54,337 [DEBUG][       Thread-609635][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:53:54,337 [DEBUG][       Thread-609635][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:53:54,338 [DEBUG][       Thread-609635][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:53:54,338 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:53:54,338 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:53:54,394 [DEBUG][       Thread-609635][   transport.py][1871] : userauth is OK
2025-07-01 15:53:54,394 [DEBUG][       Thread-609635][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:53:54,394 [DEBUG][       Thread-609635][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:53:54,394 [DEBUG][       Thread-609635][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:53:54,394 [DEBUG][       Thread-609635][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:53:54,414 [ INFO][       Thread-609635][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:53:54,414 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:53:54,415 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:53:55,433 [DEBUG][       Thread-609635][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:53:55,433 [DEBUG][       Thread-609635][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:53:55,487 [DEBUG][       Thread-609635][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:53:55,487 [DEBUG][       Thread-609635][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:53:55,496 [DEBUG][       Thread-609635][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:53:55,505 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:53:55,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')
2025-07-01 15:53:55,514 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 15:53:55,523 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:53:55,523 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:53:55,524 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:53:55,532 [DEBUG][       Thread-609635][   transport.py][1871] : EOF in transport thread
2025-07-01 15:54:03,290 [DEBUG][Thread-609638 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:54:05,528 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:54:05,528 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:54:05,528 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:54:05,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-07-01 15:54:06,016 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 53, 40), 11.38, 46.51, 0.0, 32.41, 14.11, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:54:06,016 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:53:40
2025-07-01 15:54:06,101 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:54:06,105 [DEBUG][       Thread-609639][   transport.py][1871] : starting thread (client mode): 0x818c400
2025-07-01 15:54:06,105 [DEBUG][       Thread-609639][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:54:06,125 [DEBUG][       Thread-609639][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:54:06,125 [ INFO][       Thread-609639][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:54:06,128 [DEBUG][       Thread-609639][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:54:06,129 [DEBUG][       Thread-609639][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:54:06,129 [DEBUG][       Thread-609639][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:54:06,129 [DEBUG][       Thread-609639][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:54:06,129 [DEBUG][       Thread-609639][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:54:06,129 [DEBUG][       Thread-609639][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:54:06,129 [DEBUG][       Thread-609639][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:54:06,129 [DEBUG][       Thread-609639][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:54:06,129 [DEBUG][       Thread-609639][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:54:06,129 [DEBUG][       Thread-609639][   transport.py][1871] : client lang: <none>
2025-07-01 15:54:06,129 [DEBUG][       Thread-609639][   transport.py][1871] : server lang: <none>
2025-07-01 15:54:06,129 [DEBUG][       Thread-609639][   transport.py][1871] : kex follows: False
2025-07-01 15:54:06,129 [DEBUG][       Thread-609639][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:54:06,129 [DEBUG][       Thread-609639][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:54:06,129 [DEBUG][       Thread-609639][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:54:06,129 [DEBUG][       Thread-609639][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:54:06,129 [DEBUG][       Thread-609639][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:54:06,129 [DEBUG][       Thread-609639][   transport.py][1871] : Compression: none
2025-07-01 15:54:06,129 [DEBUG][       Thread-609639][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:54:06,149 [DEBUG][       Thread-609639][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:54:06,149 [DEBUG][       Thread-609639][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:54:06,150 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:54:06,150 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:54:06,150 [DEBUG][       Thread-609639][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:54:06,152 [DEBUG][       Thread-609639][   transport.py][1871] : userauth is OK
2025-07-01 15:54:06,181 [ INFO][       Thread-609639][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:54:06,181 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:54:06,750 [DEBUG][       Thread-609639][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:54:06,750 [DEBUG][       Thread-609639][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:54:06,797 [DEBUG][       Thread-609639][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:54:06,797 [DEBUG][       Thread-609639][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:54:06,800 [DEBUG][       Thread-609639][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:54:06,812 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:54:06,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:54:06,814 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:54:06,816 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:54:06,822 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:54:06,824 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:54:06,824 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:54:06,825 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:54:06,825 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.579106 -999.00  +14.00  35.04     50   +3.90 1 2 2 1 1   887    0 9.44 -18.01 ----- 29.9 35.0 37.0 40.9 15.8 -18.4 15.3 -18.0 15.5 -17.9 16.2 -18.3
2025-07-01 15:54:06,825 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:54:06,825 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:54:06,825 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.579106
2025-07-01 15:54:06,825 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:54:06,826 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:54:06,826 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:54:06,826 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:54:06,826 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:54:06,826 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:53:40', tmtdew=11.38, humidity=46.51, cloud=0.0, wind=32.41, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:53:54.758', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:54:06,827 [DEBUG][       Thread-609639][   transport.py][1871] : EOF in transport thread
2025-07-01 15:54:06,910 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:54:06,920 [DEBUG][       Thread-609642][   transport.py][1871] : starting thread (client mode): 0x81c8640
2025-07-01 15:54:06,920 [DEBUG][       Thread-609642][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:54:06,935 [DEBUG][       Thread-609642][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:54:06,935 [ INFO][       Thread-609642][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:54:06,943 [DEBUG][       Thread-609642][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:54:06,943 [DEBUG][       Thread-609642][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:54:06,943 [DEBUG][       Thread-609642][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:54:06,943 [DEBUG][       Thread-609642][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:54:06,943 [DEBUG][       Thread-609642][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:54:06,943 [DEBUG][       Thread-609642][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:54:06,943 [DEBUG][       Thread-609642][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:54:06,943 [DEBUG][       Thread-609642][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:54:06,943 [DEBUG][       Thread-609642][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:54:06,943 [DEBUG][       Thread-609642][   transport.py][1871] : client lang: <none>
2025-07-01 15:54:06,943 [DEBUG][       Thread-609642][   transport.py][1871] : server lang: <none>
2025-07-01 15:54:06,943 [DEBUG][       Thread-609642][   transport.py][1871] : kex follows: False
2025-07-01 15:54:06,943 [DEBUG][       Thread-609642][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:54:06,944 [DEBUG][       Thread-609642][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:54:06,944 [DEBUG][       Thread-609642][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:54:06,944 [DEBUG][       Thread-609642][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:54:06,944 [DEBUG][       Thread-609642][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:54:06,944 [DEBUG][       Thread-609642][   transport.py][1871] : Compression: none
2025-07-01 15:54:06,944 [DEBUG][       Thread-609642][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:54:07,007 [DEBUG][       Thread-609642][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:54:07,007 [DEBUG][       Thread-609642][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:54:07,008 [DEBUG][       Thread-609642][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:54:07,008 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:54:07,009 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:54:07,069 [DEBUG][       Thread-609642][   transport.py][1871] : userauth is OK
2025-07-01 15:54:07,069 [DEBUG][       Thread-609642][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:54:07,069 [DEBUG][       Thread-609642][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:54:07,069 [DEBUG][       Thread-609642][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:54:07,069 [DEBUG][       Thread-609642][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:54:07,088 [ INFO][       Thread-609642][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:54:07,088 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:54:07,089 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:54:08,138 [DEBUG][       Thread-609642][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:54:08,138 [DEBUG][       Thread-609642][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:54:08,188 [DEBUG][       Thread-609642][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:54:08,188 [DEBUG][       Thread-609642][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:54:08,198 [DEBUG][       Thread-609642][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:54:08,207 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:54:08,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-07-01 15:54:08,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-07-01 15:54:08,225 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:54:08,225 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:54:08,226 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:54:08,233 [DEBUG][       Thread-609642][   transport.py][1871] : EOF in transport thread
2025-07-01 15:54:12,311 [DEBUG][Thread-609644 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:54:18,236 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:54:18,236 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:54:18,236 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:54:18,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-07-01 15:54:18,720 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 54, 12), 11.43, 46.1, 0.0, 35.73, 14.05, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:54:18,720 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:54:12
2025-07-01 15:54:18,807 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:54:18,811 [DEBUG][       Thread-609645][   transport.py][1871] : starting thread (client mode): 0x81e47c0
2025-07-01 15:54:18,811 [DEBUG][       Thread-609645][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:54:18,833 [DEBUG][       Thread-609645][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:54:18,833 [ INFO][       Thread-609645][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:54:18,836 [DEBUG][       Thread-609645][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:54:18,836 [DEBUG][       Thread-609645][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:54:18,836 [DEBUG][       Thread-609645][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:54:18,836 [DEBUG][       Thread-609645][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:54:18,836 [DEBUG][       Thread-609645][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:54:18,836 [DEBUG][       Thread-609645][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:54:18,836 [DEBUG][       Thread-609645][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:54:18,836 [DEBUG][       Thread-609645][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:54:18,836 [DEBUG][       Thread-609645][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:54:18,836 [DEBUG][       Thread-609645][   transport.py][1871] : client lang: <none>
2025-07-01 15:54:18,837 [DEBUG][       Thread-609645][   transport.py][1871] : server lang: <none>
2025-07-01 15:54:18,837 [DEBUG][       Thread-609645][   transport.py][1871] : kex follows: False
2025-07-01 15:54:18,837 [DEBUG][       Thread-609645][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:54:18,837 [DEBUG][       Thread-609645][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:54:18,837 [DEBUG][       Thread-609645][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:54:18,837 [DEBUG][       Thread-609645][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:54:18,837 [DEBUG][       Thread-609645][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:54:18,837 [DEBUG][       Thread-609645][   transport.py][1871] : Compression: none
2025-07-01 15:54:18,837 [DEBUG][       Thread-609645][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:54:18,851 [DEBUG][       Thread-609645][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:54:18,851 [DEBUG][       Thread-609645][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:54:18,852 [DEBUG][       Thread-609645][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:54:18,852 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:54:18,852 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:54:18,852 [DEBUG][       Thread-609645][   transport.py][1871] : userauth is OK
2025-07-01 15:54:18,865 [ INFO][       Thread-609645][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:54:18,865 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:54:19,650 [DEBUG][       Thread-609645][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:54:19,650 [DEBUG][       Thread-609645][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:54:19,693 [DEBUG][       Thread-609645][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:54:19,693 [DEBUG][       Thread-609645][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:54:19,697 [DEBUG][       Thread-609645][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:54:19,702 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:54:19,703 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:54:19,704 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:54:19,706 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:54:19,711 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:54:19,713 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:54:19,713 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:54:19,713 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:54:19,714 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.579106 -999.00  +14.00  35.04     50   +3.90 1 2 2 1 1   887    0 9.44 -18.01 ----- 29.9 35.0 37.0 40.9 15.8 -18.4 15.3 -18.0 15.5 -17.9 16.2 -18.3
2025-07-01 15:54:19,714 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:54:19,714 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:54:19,714 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.579106
2025-07-01 15:54:19,714 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:54:19,715 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:54:19,715 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:54:19,715 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:54:19,715 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:54:19,715 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:54:12', tmtdew=11.43, humidity=46.1, cloud=0.0, wind=35.73, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:53:54.758', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:54:19,716 [DEBUG][       Thread-609645][   transport.py][1871] : EOF in transport thread
2025-07-01 15:54:19,799 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:54:19,810 [DEBUG][       Thread-609648][   transport.py][1871] : starting thread (client mode): 0x827d540
2025-07-01 15:54:19,810 [DEBUG][       Thread-609648][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:54:19,825 [DEBUG][       Thread-609648][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:54:19,825 [ INFO][       Thread-609648][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:54:19,833 [DEBUG][       Thread-609648][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:54:19,833 [DEBUG][       Thread-609648][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:54:19,833 [DEBUG][       Thread-609648][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:54:19,833 [DEBUG][       Thread-609648][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:54:19,833 [DEBUG][       Thread-609648][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:54:19,833 [DEBUG][       Thread-609648][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:54:19,833 [DEBUG][       Thread-609648][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:54:19,833 [DEBUG][       Thread-609648][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:54:19,833 [DEBUG][       Thread-609648][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:54:19,833 [DEBUG][       Thread-609648][   transport.py][1871] : client lang: <none>
2025-07-01 15:54:19,833 [DEBUG][       Thread-609648][   transport.py][1871] : server lang: <none>
2025-07-01 15:54:19,833 [DEBUG][       Thread-609648][   transport.py][1871] : kex follows: False
2025-07-01 15:54:19,833 [DEBUG][       Thread-609648][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:54:19,833 [DEBUG][       Thread-609648][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:54:19,833 [DEBUG][       Thread-609648][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:54:19,833 [DEBUG][       Thread-609648][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:54:19,833 [DEBUG][       Thread-609648][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:54:19,833 [DEBUG][       Thread-609648][   transport.py][1871] : Compression: none
2025-07-01 15:54:19,833 [DEBUG][       Thread-609648][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:54:19,890 [DEBUG][       Thread-609648][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:54:19,890 [DEBUG][       Thread-609648][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:54:19,891 [DEBUG][       Thread-609648][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:54:19,891 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:54:19,892 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:54:19,946 [DEBUG][       Thread-609648][   transport.py][1871] : userauth is OK
2025-07-01 15:54:19,946 [DEBUG][       Thread-609648][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:54:19,946 [DEBUG][       Thread-609648][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:54:19,946 [DEBUG][       Thread-609648][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:54:19,946 [DEBUG][       Thread-609648][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:54:19,965 [ INFO][       Thread-609648][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:54:19,965 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:54:19,966 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:54:20,960 [DEBUG][       Thread-609648][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:54:20,960 [DEBUG][       Thread-609648][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:54:21,009 [DEBUG][       Thread-609648][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:54:21,009 [DEBUG][       Thread-609648][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:54:21,020 [DEBUG][       Thread-609648][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:54:21,035 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:54:21,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-07-01 15:54:21,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-07-01 15:54:21,054 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:54:21,054 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:54:21,055 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:54:21,063 [DEBUG][       Thread-609648][   transport.py][1871] : EOF in transport thread
2025-07-01 15:54:21,331 [DEBUG][Thread-609650 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:54:30,364 [DEBUG][Thread-609651 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:54:31,060 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:54:31,060 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:54:31,060 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:54:31,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-07-01 15:54:31,549 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 54, 12), 11.43, 46.1, 0.0, 35.73, 14.05, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:54:31,549 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:54:12
2025-07-01 15:54:31,635 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:54:31,641 [DEBUG][       Thread-609652][   transport.py][1871] : starting thread (client mode): 0x818f550
2025-07-01 15:54:31,641 [DEBUG][       Thread-609652][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:54:31,663 [DEBUG][       Thread-609652][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:54:31,663 [ INFO][       Thread-609652][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:54:31,666 [DEBUG][       Thread-609652][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:54:31,666 [DEBUG][       Thread-609652][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:54:31,667 [DEBUG][       Thread-609652][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:54:31,667 [DEBUG][       Thread-609652][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:54:31,667 [DEBUG][       Thread-609652][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:54:31,667 [DEBUG][       Thread-609652][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:54:31,667 [DEBUG][       Thread-609652][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:54:31,667 [DEBUG][       Thread-609652][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:54:31,667 [DEBUG][       Thread-609652][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:54:31,667 [DEBUG][       Thread-609652][   transport.py][1871] : client lang: <none>
2025-07-01 15:54:31,667 [DEBUG][       Thread-609652][   transport.py][1871] : server lang: <none>
2025-07-01 15:54:31,667 [DEBUG][       Thread-609652][   transport.py][1871] : kex follows: False
2025-07-01 15:54:31,667 [DEBUG][       Thread-609652][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:54:31,667 [DEBUG][       Thread-609652][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:54:31,667 [DEBUG][       Thread-609652][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:54:31,667 [DEBUG][       Thread-609652][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:54:31,667 [DEBUG][       Thread-609652][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:54:31,667 [DEBUG][       Thread-609652][   transport.py][1871] : Compression: none
2025-07-01 15:54:31,667 [DEBUG][       Thread-609652][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:54:31,684 [DEBUG][       Thread-609652][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:54:31,684 [DEBUG][       Thread-609652][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:54:31,685 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:54:31,685 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:54:31,686 [DEBUG][       Thread-609652][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:54:31,686 [DEBUG][       Thread-609652][   transport.py][1871] : userauth is OK
2025-07-01 15:54:31,699 [ INFO][       Thread-609652][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:54:31,699 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:54:32,449 [DEBUG][       Thread-609652][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:54:32,449 [DEBUG][       Thread-609652][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:54:32,493 [DEBUG][       Thread-609652][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:54:32,493 [DEBUG][       Thread-609652][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:54:32,496 [DEBUG][       Thread-609652][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:54:32,512 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:54:32,513 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:54:32,515 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:54:32,516 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:54:32,521 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:54:32,522 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:54:32,523 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:54:32,523 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:54:32,523 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.579106 -999.00  +14.00  35.04     50   +3.90 1 2 2 1 1   887    0 9.44 -18.01 ----- 29.9 35.0 37.0 40.9 15.8 -18.4 15.3 -18.0 15.5 -17.9 16.2 -18.3
2025-07-01 15:54:32,523 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:54:32,524 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:54:32,524 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.579106
2025-07-01 15:54:32,524 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:54:32,525 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:54:32,525 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:54:32,525 [DEBUG][       Thread-609652][   transport.py][1871] : EOF in transport thread
2025-07-01 15:54:32,525 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:54:32,526 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:54:32,526 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:54:12', tmtdew=11.43, humidity=46.1, cloud=0.0, wind=35.73, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:53:54.758', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:54:32,608 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:54:32,620 [DEBUG][       Thread-609655][   transport.py][1871] : starting thread (client mode): 0x81da170
2025-07-01 15:54:32,621 [DEBUG][       Thread-609655][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:54:32,640 [DEBUG][       Thread-609655][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:54:32,640 [ INFO][       Thread-609655][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:54:32,648 [DEBUG][       Thread-609655][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:54:32,648 [DEBUG][       Thread-609655][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:54:32,648 [DEBUG][       Thread-609655][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:54:32,648 [DEBUG][       Thread-609655][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:54:32,649 [DEBUG][       Thread-609655][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:54:32,649 [DEBUG][       Thread-609655][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:54:32,649 [DEBUG][       Thread-609655][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:54:32,649 [DEBUG][       Thread-609655][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:54:32,649 [DEBUG][       Thread-609655][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:54:32,649 [DEBUG][       Thread-609655][   transport.py][1871] : client lang: <none>
2025-07-01 15:54:32,649 [DEBUG][       Thread-609655][   transport.py][1871] : server lang: <none>
2025-07-01 15:54:32,649 [DEBUG][       Thread-609655][   transport.py][1871] : kex follows: False
2025-07-01 15:54:32,649 [DEBUG][       Thread-609655][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:54:32,649 [DEBUG][       Thread-609655][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:54:32,649 [DEBUG][       Thread-609655][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:54:32,649 [DEBUG][       Thread-609655][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:54:32,649 [DEBUG][       Thread-609655][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:54:32,649 [DEBUG][       Thread-609655][   transport.py][1871] : Compression: none
2025-07-01 15:54:32,649 [DEBUG][       Thread-609655][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:54:32,705 [DEBUG][       Thread-609655][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:54:32,705 [DEBUG][       Thread-609655][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:54:32,706 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:54:32,706 [DEBUG][       Thread-609655][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:54:32,707 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:54:32,761 [DEBUG][       Thread-609655][   transport.py][1871] : userauth is OK
2025-07-01 15:54:32,762 [DEBUG][       Thread-609655][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:54:32,762 [DEBUG][       Thread-609655][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:54:32,762 [DEBUG][       Thread-609655][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:54:32,762 [DEBUG][       Thread-609655][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:54:32,781 [ INFO][       Thread-609655][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:54:32,781 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:54:32,782 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:54:33,799 [DEBUG][       Thread-609655][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:54:33,800 [DEBUG][       Thread-609655][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:54:33,849 [DEBUG][       Thread-609655][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:54:33,849 [DEBUG][       Thread-609655][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:54:33,860 [DEBUG][       Thread-609655][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:54:33,871 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:54:33,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')
2025-07-01 15:54:33,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') -> 00000000
2025-07-01 15:54:33,890 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:54:33,891 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:54:33,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:54:33,899 [DEBUG][       Thread-609655][   transport.py][1871] : EOF in transport thread
2025-07-01 15:54:37,644 [DEBUG][Thread-609657 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:54:39,385 [DEBUG][Thread-609658 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:54:43,901 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:54:43,902 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:54:43,902 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:54:43,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-07-01 15:54:44,387 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 54, 12), 11.43, 46.1, 0.0, 35.73, 14.05, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:54:44,387 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:54:12
2025-07-01 15:54:44,474 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:54:44,477 [DEBUG][       Thread-609659][   transport.py][1871] : starting thread (client mode): 0x81db8b0
2025-07-01 15:54:44,477 [DEBUG][       Thread-609659][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:54:44,499 [DEBUG][       Thread-609659][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:54:44,499 [ INFO][       Thread-609659][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:54:44,503 [DEBUG][       Thread-609659][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:54:44,503 [DEBUG][       Thread-609659][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:54:44,503 [DEBUG][       Thread-609659][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:54:44,503 [DEBUG][       Thread-609659][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:54:44,503 [DEBUG][       Thread-609659][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:54:44,503 [DEBUG][       Thread-609659][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:54:44,503 [DEBUG][       Thread-609659][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:54:44,503 [DEBUG][       Thread-609659][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:54:44,503 [DEBUG][       Thread-609659][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:54:44,503 [DEBUG][       Thread-609659][   transport.py][1871] : client lang: <none>
2025-07-01 15:54:44,503 [DEBUG][       Thread-609659][   transport.py][1871] : server lang: <none>
2025-07-01 15:54:44,503 [DEBUG][       Thread-609659][   transport.py][1871] : kex follows: False
2025-07-01 15:54:44,503 [DEBUG][       Thread-609659][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:54:44,503 [DEBUG][       Thread-609659][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:54:44,503 [DEBUG][       Thread-609659][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:54:44,503 [DEBUG][       Thread-609659][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:54:44,503 [DEBUG][       Thread-609659][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:54:44,503 [DEBUG][       Thread-609659][   transport.py][1871] : Compression: none
2025-07-01 15:54:44,503 [DEBUG][       Thread-609659][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:54:44,517 [DEBUG][       Thread-609659][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:54:44,517 [DEBUG][       Thread-609659][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:54:44,517 [DEBUG][       Thread-609659][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:54:44,517 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:54:44,517 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:54:44,518 [DEBUG][       Thread-609659][   transport.py][1871] : userauth is OK
2025-07-01 15:54:44,541 [ INFO][       Thread-609659][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:54:44,541 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:54:45,202 [DEBUG][       Thread-609659][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:54:45,202 [DEBUG][       Thread-609659][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:54:45,244 [DEBUG][       Thread-609659][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:54:45,244 [DEBUG][       Thread-609659][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:54:45,249 [DEBUG][       Thread-609659][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:54:45,256 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:54:45,257 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:54:45,257 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:54:45,258 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:54:45,260 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:54:45,261 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:54:45,261 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:54:45,261 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:54:45,261 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.579453 -999.00  +14.00  39.49     50   +4.00 1 2 2 1 1   887    0 9.34 -16.58 ----- 35.4 39.5 34.2 45.6 15.8 -18.9 15.3 -18.7 15.6 -18.3 16.1 -19.6
2025-07-01 15:54:45,261 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:54:45,261 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:54:45,261 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.579453
2025-07-01 15:54:45,261 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:54:45,261 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:54:45,261 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:54:45,261 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:54:45,261 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:54:45,261 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:54:12', tmtdew=11.43, humidity=46.1, cloud=0.0, wind=35.73, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:54:24.739', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:54:45,261 [DEBUG][       Thread-609659][   transport.py][1871] : EOF in transport thread
2025-07-01 15:54:45,336 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:54:45,346 [DEBUG][       Thread-609662][   transport.py][1871] : starting thread (client mode): 0x81715a0
2025-07-01 15:54:45,346 [DEBUG][       Thread-609662][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:54:45,361 [DEBUG][       Thread-609662][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:54:45,361 [ INFO][       Thread-609662][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:54:45,369 [DEBUG][       Thread-609662][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:54:45,369 [DEBUG][       Thread-609662][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:54:45,369 [DEBUG][       Thread-609662][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:54:45,369 [DEBUG][       Thread-609662][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:54:45,369 [DEBUG][       Thread-609662][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:54:45,369 [DEBUG][       Thread-609662][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:54:45,369 [DEBUG][       Thread-609662][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:54:45,369 [DEBUG][       Thread-609662][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:54:45,369 [DEBUG][       Thread-609662][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:54:45,369 [DEBUG][       Thread-609662][   transport.py][1871] : client lang: <none>
2025-07-01 15:54:45,369 [DEBUG][       Thread-609662][   transport.py][1871] : server lang: <none>
2025-07-01 15:54:45,369 [DEBUG][       Thread-609662][   transport.py][1871] : kex follows: False
2025-07-01 15:54:45,369 [DEBUG][       Thread-609662][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:54:45,369 [DEBUG][       Thread-609662][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:54:45,369 [DEBUG][       Thread-609662][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:54:45,369 [DEBUG][       Thread-609662][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:54:45,369 [DEBUG][       Thread-609662][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:54:45,369 [DEBUG][       Thread-609662][   transport.py][1871] : Compression: none
2025-07-01 15:54:45,369 [DEBUG][       Thread-609662][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:54:45,423 [DEBUG][       Thread-609662][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:54:45,423 [DEBUG][       Thread-609662][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:54:45,423 [DEBUG][       Thread-609662][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:54:45,423 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:54:45,424 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:54:45,481 [DEBUG][       Thread-609662][   transport.py][1871] : userauth is OK
2025-07-01 15:54:45,481 [DEBUG][       Thread-609662][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:54:45,481 [DEBUG][       Thread-609662][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:54:45,481 [DEBUG][       Thread-609662][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:54:45,481 [DEBUG][       Thread-609662][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:54:45,495 [ INFO][       Thread-609662][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:54:45,495 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:54:45,495 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:54:46,506 [DEBUG][       Thread-609662][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:54:46,507 [DEBUG][       Thread-609662][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:54:46,556 [DEBUG][       Thread-609662][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:54:46,556 [DEBUG][       Thread-609662][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:54:46,565 [DEBUG][       Thread-609662][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:54:46,574 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:54:46,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-07-01 15:54:46,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-07-01 15:54:46,593 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:54:46,593 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:54:46,593 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:54:46,601 [DEBUG][       Thread-609662][   transport.py][1871] : EOF in transport thread
2025-07-01 15:54:48,412 [DEBUG][Thread-609664 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:54:56,602 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:54:56,602 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:54:56,602 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:54:56,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-07-01 15:54:57,093 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 54, 44), 11.42, 46.13, 0.0, 37.62, 14.01, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:54:57,095 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:54:44
2025-07-01 15:54:57,181 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:54:57,186 [DEBUG][       Thread-609665][   transport.py][1871] : starting thread (client mode): 0x81a40a0
2025-07-01 15:54:57,186 [DEBUG][       Thread-609665][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:54:57,207 [DEBUG][       Thread-609665][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:54:57,208 [ INFO][       Thread-609665][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:54:57,211 [DEBUG][       Thread-609665][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:54:57,211 [DEBUG][       Thread-609665][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:54:57,211 [DEBUG][       Thread-609665][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:54:57,211 [DEBUG][       Thread-609665][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:54:57,211 [DEBUG][       Thread-609665][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:54:57,211 [DEBUG][       Thread-609665][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:54:57,211 [DEBUG][       Thread-609665][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:54:57,211 [DEBUG][       Thread-609665][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:54:57,211 [DEBUG][       Thread-609665][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:54:57,211 [DEBUG][       Thread-609665][   transport.py][1871] : client lang: <none>
2025-07-01 15:54:57,211 [DEBUG][       Thread-609665][   transport.py][1871] : server lang: <none>
2025-07-01 15:54:57,211 [DEBUG][       Thread-609665][   transport.py][1871] : kex follows: False
2025-07-01 15:54:57,211 [DEBUG][       Thread-609665][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:54:57,211 [DEBUG][       Thread-609665][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:54:57,211 [DEBUG][       Thread-609665][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:54:57,211 [DEBUG][       Thread-609665][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:54:57,211 [DEBUG][       Thread-609665][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:54:57,211 [DEBUG][       Thread-609665][   transport.py][1871] : Compression: none
2025-07-01 15:54:57,211 [DEBUG][       Thread-609665][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:54:57,218 [DEBUG][       Thread-609665][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:54:57,218 [DEBUG][       Thread-609665][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:54:57,218 [DEBUG][       Thread-609665][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:54:57,218 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:54:57,218 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:54:57,218 [DEBUG][       Thread-609665][   transport.py][1871] : userauth is OK
2025-07-01 15:54:57,231 [ INFO][       Thread-609665][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:54:57,231 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:54:57,433 [DEBUG][Thread-609667 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:54:58,082 [DEBUG][       Thread-609665][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:54:58,082 [DEBUG][       Thread-609665][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:54:58,125 [DEBUG][       Thread-609665][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:54:58,125 [DEBUG][       Thread-609665][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:54:58,128 [DEBUG][       Thread-609665][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:54:58,142 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:54:58,143 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:54:58,144 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:54:58,147 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:54:58,152 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:54:58,154 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:54:58,154 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:54:58,155 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:54:58,155 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.579453 -999.00  +14.00  39.49     50   +4.00 1 2 2 1 1   887    0 9.34 -16.58 ----- 35.4 39.5 34.2 45.6 15.8 -18.9 15.3 -18.7 15.6 -18.3 16.1 -19.6
2025-07-01 15:54:58,155 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:54:58,155 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:54:58,155 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.579453
2025-07-01 15:54:58,155 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:54:58,156 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:54:58,156 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:54:58,156 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:54:58,156 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:54:58,156 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:54:44', tmtdew=11.42, humidity=46.13, cloud=0.0, wind=37.62, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:54:24.739', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:54:58,157 [DEBUG][       Thread-609665][   transport.py][1871] : EOF in transport thread
2025-07-01 15:54:58,241 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:54:58,252 [DEBUG][       Thread-609669][   transport.py][1871] : starting thread (client mode): 0x81ca980
2025-07-01 15:54:58,252 [DEBUG][       Thread-609669][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:54:58,268 [DEBUG][       Thread-609669][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:54:58,269 [ INFO][       Thread-609669][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:54:58,276 [DEBUG][       Thread-609669][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:54:58,276 [DEBUG][       Thread-609669][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:54:58,277 [DEBUG][       Thread-609669][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:54:58,277 [DEBUG][       Thread-609669][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:54:58,277 [DEBUG][       Thread-609669][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:54:58,277 [DEBUG][       Thread-609669][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:54:58,277 [DEBUG][       Thread-609669][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:54:58,277 [DEBUG][       Thread-609669][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:54:58,277 [DEBUG][       Thread-609669][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:54:58,277 [DEBUG][       Thread-609669][   transport.py][1871] : client lang: <none>
2025-07-01 15:54:58,277 [DEBUG][       Thread-609669][   transport.py][1871] : server lang: <none>
2025-07-01 15:54:58,277 [DEBUG][       Thread-609669][   transport.py][1871] : kex follows: False
2025-07-01 15:54:58,277 [DEBUG][       Thread-609669][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:54:58,277 [DEBUG][       Thread-609669][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:54:58,277 [DEBUG][       Thread-609669][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:54:58,277 [DEBUG][       Thread-609669][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:54:58,277 [DEBUG][       Thread-609669][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:54:58,277 [DEBUG][       Thread-609669][   transport.py][1871] : Compression: none
2025-07-01 15:54:58,277 [DEBUG][       Thread-609669][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:54:58,331 [DEBUG][       Thread-609669][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:54:58,331 [DEBUG][       Thread-609669][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:54:58,331 [DEBUG][       Thread-609669][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:54:58,331 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:54:58,331 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:54:58,389 [DEBUG][       Thread-609669][   transport.py][1871] : userauth is OK
2025-07-01 15:54:58,390 [DEBUG][       Thread-609669][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:54:58,390 [DEBUG][       Thread-609669][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:54:58,390 [DEBUG][       Thread-609669][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:54:58,390 [DEBUG][       Thread-609669][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:54:58,409 [ INFO][       Thread-609669][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:54:58,410 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:54:58,410 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:54:59,429 [DEBUG][       Thread-609669][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:54:59,429 [DEBUG][       Thread-609669][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:54:59,480 [DEBUG][       Thread-609669][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:54:59,480 [DEBUG][       Thread-609669][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:54:59,489 [DEBUG][       Thread-609669][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:54:59,500 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:54:59,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-07-01 15:54:59,514 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 15:54:59,523 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:54:59,524 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:54:59,524 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:54:59,534 [DEBUG][       Thread-609669][   transport.py][1871] : EOF in transport thread
2025-07-01 15:55:06,453 [DEBUG][Thread-609671 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:55:09,535 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:55:09,535 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:55:09,535 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:55:09,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-07-01 15:55:10,018 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 54, 44), 11.42, 46.13, 0.0, 37.62, 14.01, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:55:10,018 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:54:44
2025-07-01 15:55:10,104 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:55:10,108 [DEBUG][       Thread-609672][   transport.py][1871] : starting thread (client mode): 0x81a79a0
2025-07-01 15:55:10,108 [DEBUG][       Thread-609672][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:55:10,128 [DEBUG][       Thread-609672][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:55:10,128 [ INFO][       Thread-609672][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:55:10,131 [DEBUG][       Thread-609672][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:55:10,131 [DEBUG][       Thread-609672][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:55:10,131 [DEBUG][       Thread-609672][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:55:10,131 [DEBUG][       Thread-609672][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:55:10,131 [DEBUG][       Thread-609672][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:55:10,131 [DEBUG][       Thread-609672][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:55:10,131 [DEBUG][       Thread-609672][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:55:10,131 [DEBUG][       Thread-609672][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:55:10,131 [DEBUG][       Thread-609672][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:55:10,131 [DEBUG][       Thread-609672][   transport.py][1871] : client lang: <none>
2025-07-01 15:55:10,132 [DEBUG][       Thread-609672][   transport.py][1871] : server lang: <none>
2025-07-01 15:55:10,132 [DEBUG][       Thread-609672][   transport.py][1871] : kex follows: False
2025-07-01 15:55:10,132 [DEBUG][       Thread-609672][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:55:10,132 [DEBUG][       Thread-609672][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:55:10,132 [DEBUG][       Thread-609672][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:55:10,132 [DEBUG][       Thread-609672][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:55:10,132 [DEBUG][       Thread-609672][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:55:10,132 [DEBUG][       Thread-609672][   transport.py][1871] : Compression: none
2025-07-01 15:55:10,132 [DEBUG][       Thread-609672][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:55:10,151 [DEBUG][       Thread-609672][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:55:10,151 [DEBUG][       Thread-609672][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:55:10,152 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:55:10,152 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:55:10,153 [DEBUG][       Thread-609672][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:55:10,153 [DEBUG][       Thread-609672][   transport.py][1871] : userauth is OK
2025-07-01 15:55:10,166 [ INFO][       Thread-609672][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:55:10,167 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:55:10,843 [DEBUG][       Thread-609672][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:55:10,843 [DEBUG][       Thread-609672][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:55:10,885 [DEBUG][       Thread-609672][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:55:10,885 [DEBUG][       Thread-609672][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:55:10,889 [DEBUG][       Thread-609672][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:55:10,901 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:55:10,901 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:55:10,903 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:55:10,905 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:55:10,911 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:55:10,913 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:55:10,913 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:55:10,914 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:55:10,914 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.579800 -999.00  +14.00  41.95     50   +3.90 1 2 2 1 1   887    0 9.10 -12.73 ----- 31.3 42.0 23.7 45.9 15.8 -19.3 15.3 -19.3 15.5 -19.2 16.1 -19.5
2025-07-01 15:55:10,914 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:55:10,914 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:55:10,915 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.579800
2025-07-01 15:55:10,915 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:55:10,916 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:55:10,916 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:55:10,916 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:55:10,916 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:55:10,916 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:54:44', tmtdew=11.42, humidity=46.13, cloud=0.0, wind=37.62, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:54:54.720', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:55:10,917 [DEBUG][       Thread-609672][   transport.py][1871] : EOF in transport thread
2025-07-01 15:55:11,003 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:55:11,012 [DEBUG][       Thread-609675][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 15:55:11,012 [DEBUG][       Thread-609675][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:55:11,028 [DEBUG][       Thread-609675][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:55:11,029 [ INFO][       Thread-609675][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:55:11,036 [DEBUG][       Thread-609675][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:55:11,036 [DEBUG][       Thread-609675][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:55:11,037 [DEBUG][       Thread-609675][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:55:11,037 [DEBUG][       Thread-609675][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:55:11,037 [DEBUG][       Thread-609675][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:55:11,037 [DEBUG][       Thread-609675][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:55:11,037 [DEBUG][       Thread-609675][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:55:11,037 [DEBUG][       Thread-609675][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:55:11,037 [DEBUG][       Thread-609675][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:55:11,037 [DEBUG][       Thread-609675][   transport.py][1871] : client lang: <none>
2025-07-01 15:55:11,037 [DEBUG][       Thread-609675][   transport.py][1871] : server lang: <none>
2025-07-01 15:55:11,037 [DEBUG][       Thread-609675][   transport.py][1871] : kex follows: False
2025-07-01 15:55:11,037 [DEBUG][       Thread-609675][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:55:11,037 [DEBUG][       Thread-609675][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:55:11,037 [DEBUG][       Thread-609675][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:55:11,037 [DEBUG][       Thread-609675][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:55:11,037 [DEBUG][       Thread-609675][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:55:11,037 [DEBUG][       Thread-609675][   transport.py][1871] : Compression: none
2025-07-01 15:55:11,037 [DEBUG][       Thread-609675][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:55:11,093 [DEBUG][       Thread-609675][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:55:11,093 [DEBUG][       Thread-609675][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:55:11,094 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:55:11,094 [DEBUG][       Thread-609675][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:55:11,095 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:55:11,149 [DEBUG][       Thread-609675][   transport.py][1871] : userauth is OK
2025-07-01 15:55:11,149 [DEBUG][       Thread-609675][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:55:11,149 [DEBUG][       Thread-609675][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:55:11,149 [DEBUG][       Thread-609675][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:55:11,149 [DEBUG][       Thread-609675][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:55:11,168 [ INFO][       Thread-609675][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:55:11,169 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:55:11,169 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:55:12,203 [DEBUG][       Thread-609675][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:55:12,203 [DEBUG][       Thread-609675][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:55:12,252 [DEBUG][       Thread-609675][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:55:12,252 [DEBUG][       Thread-609675][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:55:12,262 [DEBUG][       Thread-609675][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:55:12,271 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:55:12,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-07-01 15:55:12,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-07-01 15:55:12,288 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:55:12,289 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:55:12,289 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:55:12,297 [DEBUG][       Thread-609675][   transport.py][1871] : EOF in transport thread
2025-07-01 15:55:15,488 [DEBUG][Thread-609677 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:55:22,300 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:55:22,300 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:55:22,300 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:55:22,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-07-01 15:55:22,767 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 55, 17), 11.49, 45.89, 0.0, 34.81, 13.98, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:55:22,767 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:55:17
2025-07-01 15:55:22,850 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:55:22,854 [DEBUG][       Thread-609678][   transport.py][1871] : starting thread (client mode): 0x81d9c90
2025-07-01 15:55:22,854 [DEBUG][       Thread-609678][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:55:22,876 [DEBUG][       Thread-609678][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:55:22,876 [ INFO][       Thread-609678][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:55:22,879 [DEBUG][       Thread-609678][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:55:22,879 [DEBUG][       Thread-609678][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:55:22,879 [DEBUG][       Thread-609678][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:55:22,879 [DEBUG][       Thread-609678][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:55:22,879 [DEBUG][       Thread-609678][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:55:22,879 [DEBUG][       Thread-609678][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:55:22,879 [DEBUG][       Thread-609678][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:55:22,879 [DEBUG][       Thread-609678][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:55:22,879 [DEBUG][       Thread-609678][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:55:22,880 [DEBUG][       Thread-609678][   transport.py][1871] : client lang: <none>
2025-07-01 15:55:22,880 [DEBUG][       Thread-609678][   transport.py][1871] : server lang: <none>
2025-07-01 15:55:22,880 [DEBUG][       Thread-609678][   transport.py][1871] : kex follows: False
2025-07-01 15:55:22,880 [DEBUG][       Thread-609678][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:55:22,880 [DEBUG][       Thread-609678][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:55:22,880 [DEBUG][       Thread-609678][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:55:22,880 [DEBUG][       Thread-609678][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:55:22,880 [DEBUG][       Thread-609678][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:55:22,880 [DEBUG][       Thread-609678][   transport.py][1871] : Compression: none
2025-07-01 15:55:22,880 [DEBUG][       Thread-609678][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:55:22,896 [DEBUG][       Thread-609678][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:55:22,896 [DEBUG][       Thread-609678][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:55:22,897 [DEBUG][       Thread-609678][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:55:22,897 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:55:22,897 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:55:22,898 [DEBUG][       Thread-609678][   transport.py][1871] : userauth is OK
2025-07-01 15:55:22,911 [ INFO][       Thread-609678][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:55:22,912 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:55:23,737 [DEBUG][       Thread-609678][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:55:23,737 [DEBUG][       Thread-609678][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:55:23,781 [DEBUG][       Thread-609678][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:55:23,781 [DEBUG][       Thread-609678][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:55:23,785 [DEBUG][       Thread-609678][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:55:23,797 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:55:23,797 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:55:23,799 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:55:23,800 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:55:23,805 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:55:23,806 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:55:23,806 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:55:23,807 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:55:23,807 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.579800 -999.00  +14.00  41.95     50   +3.90 1 2 2 1 1   887    0 9.10 -12.73 ----- 31.3 42.0 23.7 45.9 15.8 -19.3 15.3 -19.3 15.5 -19.2 16.1 -19.5
2025-07-01 15:55:23,807 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:55:23,807 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:55:23,807 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.579800
2025-07-01 15:55:23,808 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:55:23,808 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:55:23,808 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:55:23,808 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:55:23,808 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:55:23,809 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:55:17', tmtdew=11.49, humidity=45.89, cloud=0.0, wind=34.81, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:54:54.720', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:55:23,810 [DEBUG][       Thread-609678][   transport.py][1871] : EOF in transport thread
2025-07-01 15:55:23,892 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:55:23,902 [DEBUG][       Thread-609681][   transport.py][1871] : starting thread (client mode): 0x81e77f0
2025-07-01 15:55:23,902 [DEBUG][       Thread-609681][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:55:23,917 [DEBUG][       Thread-609681][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:55:23,917 [ INFO][       Thread-609681][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:55:23,924 [DEBUG][       Thread-609681][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:55:23,925 [DEBUG][       Thread-609681][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:55:23,925 [DEBUG][       Thread-609681][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:55:23,925 [DEBUG][       Thread-609681][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:55:23,925 [DEBUG][       Thread-609681][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:55:23,925 [DEBUG][       Thread-609681][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:55:23,925 [DEBUG][       Thread-609681][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:55:23,925 [DEBUG][       Thread-609681][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:55:23,925 [DEBUG][       Thread-609681][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:55:23,925 [DEBUG][       Thread-609681][   transport.py][1871] : client lang: <none>
2025-07-01 15:55:23,925 [DEBUG][       Thread-609681][   transport.py][1871] : server lang: <none>
2025-07-01 15:55:23,925 [DEBUG][       Thread-609681][   transport.py][1871] : kex follows: False
2025-07-01 15:55:23,925 [DEBUG][       Thread-609681][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:55:23,925 [DEBUG][       Thread-609681][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:55:23,925 [DEBUG][       Thread-609681][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:55:23,925 [DEBUG][       Thread-609681][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:55:23,925 [DEBUG][       Thread-609681][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:55:23,925 [DEBUG][       Thread-609681][   transport.py][1871] : Compression: none
2025-07-01 15:55:23,925 [DEBUG][       Thread-609681][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:55:23,987 [DEBUG][       Thread-609681][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:55:23,988 [DEBUG][       Thread-609681][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:55:23,988 [DEBUG][       Thread-609681][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:55:23,989 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:55:23,989 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:55:24,046 [DEBUG][       Thread-609681][   transport.py][1871] : userauth is OK
2025-07-01 15:55:24,046 [DEBUG][       Thread-609681][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:55:24,046 [DEBUG][       Thread-609681][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:55:24,046 [DEBUG][       Thread-609681][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:55:24,046 [DEBUG][       Thread-609681][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:55:24,070 [ INFO][       Thread-609681][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:55:24,071 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:55:24,071 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:55:24,511 [DEBUG][Thread-609683 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:55:25,090 [DEBUG][       Thread-609681][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:55:25,090 [DEBUG][       Thread-609681][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:55:25,140 [DEBUG][       Thread-609681][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:55:25,140 [DEBUG][       Thread-609681][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:55:25,149 [DEBUG][       Thread-609681][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:55:25,158 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:55:25,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-07-01 15:55:25,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-07-01 15:55:25,177 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:55:25,177 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:55:25,178 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:55:25,185 [DEBUG][       Thread-609681][   transport.py][1871] : EOF in transport thread
2025-07-01 15:55:33,552 [DEBUG][Thread-609684 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:55:35,188 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:55:35,188 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:55:35,188 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:55:35,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-07-01 15:55:35,669 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 55, 17), 11.49, 45.89, 0.0, 34.81, 13.98, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:55:35,670 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:55:17
2025-07-01 15:55:35,753 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:55:35,760 [DEBUG][       Thread-609685][   transport.py][1871] : starting thread (client mode): 0x81e7e50
2025-07-01 15:55:35,760 [DEBUG][       Thread-609685][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:55:35,779 [DEBUG][       Thread-609685][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:55:35,779 [ INFO][       Thread-609685][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:55:35,782 [DEBUG][       Thread-609685][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:55:35,783 [DEBUG][       Thread-609685][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:55:35,783 [DEBUG][       Thread-609685][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:55:35,783 [DEBUG][       Thread-609685][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:55:35,783 [DEBUG][       Thread-609685][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:55:35,783 [DEBUG][       Thread-609685][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:55:35,783 [DEBUG][       Thread-609685][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:55:35,783 [DEBUG][       Thread-609685][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:55:35,783 [DEBUG][       Thread-609685][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:55:35,783 [DEBUG][       Thread-609685][   transport.py][1871] : client lang: <none>
2025-07-01 15:55:35,783 [DEBUG][       Thread-609685][   transport.py][1871] : server lang: <none>
2025-07-01 15:55:35,783 [DEBUG][       Thread-609685][   transport.py][1871] : kex follows: False
2025-07-01 15:55:35,783 [DEBUG][       Thread-609685][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:55:35,783 [DEBUG][       Thread-609685][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:55:35,783 [DEBUG][       Thread-609685][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:55:35,783 [DEBUG][       Thread-609685][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:55:35,783 [DEBUG][       Thread-609685][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:55:35,783 [DEBUG][       Thread-609685][   transport.py][1871] : Compression: none
2025-07-01 15:55:35,783 [DEBUG][       Thread-609685][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:55:35,800 [DEBUG][       Thread-609685][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:55:35,800 [DEBUG][       Thread-609685][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:55:35,801 [DEBUG][       Thread-609685][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:55:35,801 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:55:35,801 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:55:35,802 [DEBUG][       Thread-609685][   transport.py][1871] : userauth is OK
2025-07-01 15:55:35,815 [ INFO][       Thread-609685][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:55:35,816 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:55:36,627 [DEBUG][       Thread-609685][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:55:36,627 [DEBUG][       Thread-609685][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:55:36,668 [DEBUG][       Thread-609685][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:55:36,668 [DEBUG][       Thread-609685][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:55:36,671 [DEBUG][       Thread-609685][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:55:36,682 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:55:36,682 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:55:36,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:55:36,684 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:55:36,687 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:55:36,687 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:55:36,687 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:55:36,688 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:55:36,688 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.579800 -999.00  +14.00  41.95     50   +3.90 1 2 2 1 1   887    0 9.10 -12.73 ----- 31.3 42.0 23.7 45.9 15.8 -19.3 15.3 -19.3 15.5 -19.2 16.1 -19.5
2025-07-01 15:55:36,688 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:55:36,688 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:55:36,688 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.579800
2025-07-01 15:55:36,688 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:55:36,688 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:55:36,688 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:55:36,688 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:55:36,688 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:55:36,688 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:55:17', tmtdew=11.49, humidity=45.89, cloud=0.0, wind=34.81, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:54:54.720', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:55:36,689 [DEBUG][       Thread-609685][   transport.py][1871] : EOF in transport thread
2025-07-01 15:55:36,760 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:55:36,772 [DEBUG][       Thread-609688][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 15:55:36,772 [DEBUG][       Thread-609688][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:55:36,786 [DEBUG][       Thread-609688][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:55:36,786 [ INFO][       Thread-609688][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:55:36,794 [DEBUG][       Thread-609688][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:55:36,794 [DEBUG][       Thread-609688][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:55:36,794 [DEBUG][       Thread-609688][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:55:36,795 [DEBUG][       Thread-609688][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:55:36,795 [DEBUG][       Thread-609688][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:55:36,795 [DEBUG][       Thread-609688][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:55:36,795 [DEBUG][       Thread-609688][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:55:36,795 [DEBUG][       Thread-609688][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:55:36,795 [DEBUG][       Thread-609688][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:55:36,795 [DEBUG][       Thread-609688][   transport.py][1871] : client lang: <none>
2025-07-01 15:55:36,795 [DEBUG][       Thread-609688][   transport.py][1871] : server lang: <none>
2025-07-01 15:55:36,795 [DEBUG][       Thread-609688][   transport.py][1871] : kex follows: False
2025-07-01 15:55:36,795 [DEBUG][       Thread-609688][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:55:36,795 [DEBUG][       Thread-609688][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:55:36,795 [DEBUG][       Thread-609688][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:55:36,795 [DEBUG][       Thread-609688][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:55:36,795 [DEBUG][       Thread-609688][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:55:36,795 [DEBUG][       Thread-609688][   transport.py][1871] : Compression: none
2025-07-01 15:55:36,795 [DEBUG][       Thread-609688][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:55:36,853 [DEBUG][       Thread-609688][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:55:36,854 [DEBUG][       Thread-609688][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:55:36,854 [DEBUG][       Thread-609688][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:55:36,855 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:55:36,855 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:55:36,913 [DEBUG][       Thread-609688][   transport.py][1871] : userauth is OK
2025-07-01 15:55:36,913 [DEBUG][       Thread-609688][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:55:36,913 [DEBUG][       Thread-609688][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:55:36,913 [DEBUG][       Thread-609688][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:55:36,913 [DEBUG][       Thread-609688][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:55:36,931 [ INFO][       Thread-609688][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:55:36,932 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:55:36,932 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:55:37,675 [DEBUG][Thread-609690 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:55:37,966 [DEBUG][       Thread-609688][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:55:37,967 [DEBUG][       Thread-609688][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:55:38,020 [DEBUG][       Thread-609688][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:55:38,020 [DEBUG][       Thread-609688][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:55:38,029 [DEBUG][       Thread-609688][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:55:38,038 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:55:38,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-07-01 15:55:38,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-07-01 15:55:38,056 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:55:38,056 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:55:38,056 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:55:38,064 [DEBUG][       Thread-609688][   transport.py][1871] : EOF in transport thread
2025-07-01 15:55:42,569 [DEBUG][Thread-609691 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:55:48,067 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:55:48,067 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:55:48,067 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:55:48,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-07-01 15:55:48,536 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 55, 17), 11.49, 45.89, 0.0, 34.81, 13.98, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:55:48,536 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:55:17
2025-07-01 15:55:48,623 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:55:48,627 [DEBUG][       Thread-609692][   transport.py][1871] : starting thread (client mode): 0x8170dc0
2025-07-01 15:55:48,627 [DEBUG][       Thread-609692][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:55:48,648 [DEBUG][       Thread-609692][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:55:48,648 [ INFO][       Thread-609692][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:55:48,652 [DEBUG][       Thread-609692][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:55:48,652 [DEBUG][       Thread-609692][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:55:48,652 [DEBUG][       Thread-609692][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:55:48,652 [DEBUG][       Thread-609692][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:55:48,652 [DEBUG][       Thread-609692][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:55:48,652 [DEBUG][       Thread-609692][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:55:48,652 [DEBUG][       Thread-609692][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:55:48,652 [DEBUG][       Thread-609692][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:55:48,652 [DEBUG][       Thread-609692][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:55:48,652 [DEBUG][       Thread-609692][   transport.py][1871] : client lang: <none>
2025-07-01 15:55:48,652 [DEBUG][       Thread-609692][   transport.py][1871] : server lang: <none>
2025-07-01 15:55:48,652 [DEBUG][       Thread-609692][   transport.py][1871] : kex follows: False
2025-07-01 15:55:48,652 [DEBUG][       Thread-609692][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:55:48,652 [DEBUG][       Thread-609692][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:55:48,652 [DEBUG][       Thread-609692][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:55:48,652 [DEBUG][       Thread-609692][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:55:48,653 [DEBUG][       Thread-609692][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:55:48,653 [DEBUG][       Thread-609692][   transport.py][1871] : Compression: none
2025-07-01 15:55:48,653 [DEBUG][       Thread-609692][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:55:48,666 [DEBUG][       Thread-609692][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:55:48,666 [DEBUG][       Thread-609692][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:55:48,667 [DEBUG][       Thread-609692][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:55:48,667 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:55:48,667 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:55:48,668 [DEBUG][       Thread-609692][   transport.py][1871] : userauth is OK
2025-07-01 15:55:48,692 [ INFO][       Thread-609692][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:55:48,693 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:55:49,295 [DEBUG][       Thread-609692][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:55:49,296 [DEBUG][       Thread-609692][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:55:49,337 [DEBUG][       Thread-609692][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:55:49,337 [DEBUG][       Thread-609692][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:55:49,339 [DEBUG][       Thread-609692][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:55:49,350 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:55:49,350 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:55:49,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:55:49,352 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:55:49,355 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:55:49,356 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:55:49,356 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:55:49,356 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:55:49,356 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.580148 -999.00  +13.90  37.78     50   +3.70 1 2 2 1 1   887    0 9.45 -10.06 ----- 34.0 37.8 25.8 46.2 15.8 -20.9 15.3 -19.7 15.5 -19.8 16.0 -20.2
2025-07-01 15:55:49,356 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:55:49,356 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:55:49,356 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.580148
2025-07-01 15:55:49,356 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:55:49,356 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:55:49,356 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:55:49,356 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:55:49,356 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:55:49,356 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:55:17', tmtdew=11.49, humidity=45.89, cloud=0.0, wind=34.81, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:55:24.787', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:55:49,356 [DEBUG][       Thread-609692][   transport.py][1871] : EOF in transport thread
2025-07-01 15:55:49,431 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:55:49,440 [DEBUG][       Thread-609695][   transport.py][1871] : starting thread (client mode): 0x81e6b90
2025-07-01 15:55:49,440 [DEBUG][       Thread-609695][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:55:49,458 [DEBUG][       Thread-609695][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:55:49,458 [ INFO][       Thread-609695][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:55:49,467 [DEBUG][       Thread-609695][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:55:49,467 [DEBUG][       Thread-609695][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:55:49,467 [DEBUG][       Thread-609695][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:55:49,467 [DEBUG][       Thread-609695][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:55:49,467 [DEBUG][       Thread-609695][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:55:49,467 [DEBUG][       Thread-609695][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:55:49,467 [DEBUG][       Thread-609695][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:55:49,467 [DEBUG][       Thread-609695][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:55:49,467 [DEBUG][       Thread-609695][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:55:49,467 [DEBUG][       Thread-609695][   transport.py][1871] : client lang: <none>
2025-07-01 15:55:49,467 [DEBUG][       Thread-609695][   transport.py][1871] : server lang: <none>
2025-07-01 15:55:49,467 [DEBUG][       Thread-609695][   transport.py][1871] : kex follows: False
2025-07-01 15:55:49,467 [DEBUG][       Thread-609695][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:55:49,467 [DEBUG][       Thread-609695][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:55:49,467 [DEBUG][       Thread-609695][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:55:49,467 [DEBUG][       Thread-609695][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:55:49,467 [DEBUG][       Thread-609695][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:55:49,467 [DEBUG][       Thread-609695][   transport.py][1871] : Compression: none
2025-07-01 15:55:49,467 [DEBUG][       Thread-609695][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:55:49,527 [DEBUG][       Thread-609695][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:55:49,527 [DEBUG][       Thread-609695][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:55:49,527 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:55:49,528 [DEBUG][       Thread-609695][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:55:49,528 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:55:49,584 [DEBUG][       Thread-609695][   transport.py][1871] : userauth is OK
2025-07-01 15:55:49,584 [DEBUG][       Thread-609695][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:55:49,584 [DEBUG][       Thread-609695][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:55:49,584 [DEBUG][       Thread-609695][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:55:49,584 [DEBUG][       Thread-609695][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:55:49,598 [ INFO][       Thread-609695][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:55:49,598 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:55:49,598 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:55:50,629 [DEBUG][       Thread-609695][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:55:50,629 [DEBUG][       Thread-609695][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:55:50,685 [DEBUG][       Thread-609695][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:55:50,685 [DEBUG][       Thread-609695][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:55:50,693 [DEBUG][       Thread-609695][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:55:50,702 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:55:50,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-07-01 15:55:50,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-07-01 15:55:50,719 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:55:50,719 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:55:50,720 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:55:50,727 [DEBUG][       Thread-609695][   transport.py][1871] : EOF in transport thread
2025-07-01 15:55:51,588 [DEBUG][Thread-609697 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:56:00,610 [DEBUG][Thread-609698 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:56:00,730 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:56:00,730 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:56:00,731 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:56:00,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-07-01 15:56:01,203 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 55, 48), 11.47, 45.93, 0.0, 30.22, 13.97, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:56:01,203 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:55:48
2025-07-01 15:56:01,289 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:56:01,295 [DEBUG][       Thread-609699][   transport.py][1871] : starting thread (client mode): 0x81e7970
2025-07-01 15:56:01,295 [DEBUG][       Thread-609699][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:56:01,315 [DEBUG][       Thread-609699][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:56:01,315 [ INFO][       Thread-609699][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:56:01,319 [DEBUG][       Thread-609699][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:56:01,319 [DEBUG][       Thread-609699][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:56:01,319 [DEBUG][       Thread-609699][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:56:01,319 [DEBUG][       Thread-609699][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:56:01,319 [DEBUG][       Thread-609699][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:56:01,319 [DEBUG][       Thread-609699][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:56:01,319 [DEBUG][       Thread-609699][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:56:01,319 [DEBUG][       Thread-609699][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:56:01,319 [DEBUG][       Thread-609699][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:56:01,319 [DEBUG][       Thread-609699][   transport.py][1871] : client lang: <none>
2025-07-01 15:56:01,319 [DEBUG][       Thread-609699][   transport.py][1871] : server lang: <none>
2025-07-01 15:56:01,319 [DEBUG][       Thread-609699][   transport.py][1871] : kex follows: False
2025-07-01 15:56:01,319 [DEBUG][       Thread-609699][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:56:01,319 [DEBUG][       Thread-609699][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:56:01,319 [DEBUG][       Thread-609699][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:56:01,319 [DEBUG][       Thread-609699][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:56:01,319 [DEBUG][       Thread-609699][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:56:01,319 [DEBUG][       Thread-609699][   transport.py][1871] : Compression: none
2025-07-01 15:56:01,319 [DEBUG][       Thread-609699][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:56:01,335 [DEBUG][       Thread-609699][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:56:01,335 [DEBUG][       Thread-609699][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:56:01,335 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:56:01,336 [DEBUG][       Thread-609699][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:56:01,336 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:56:01,337 [DEBUG][       Thread-609699][   transport.py][1871] : userauth is OK
2025-07-01 15:56:01,351 [ INFO][       Thread-609699][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:56:01,351 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:56:02,013 [DEBUG][       Thread-609699][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:56:02,013 [DEBUG][       Thread-609699][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:56:02,057 [DEBUG][       Thread-609699][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:56:02,057 [DEBUG][       Thread-609699][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:56:02,061 [DEBUG][       Thread-609699][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:56:02,073 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:56:02,073 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:56:02,075 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:56:02,076 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:56:02,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:56:02,084 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:56:02,084 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:56:02,085 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:56:02,085 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.580148 -999.00  +13.90  37.78     50   +3.70 1 2 2 1 1   887    0 9.45 -10.06 ----- 34.0 37.8 25.8 46.2 15.8 -20.9 15.3 -19.7 15.5 -19.8 16.0 -20.2
2025-07-01 15:56:02,085 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:56:02,085 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:56:02,085 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.580148
2025-07-01 15:56:02,086 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:56:02,086 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:56:02,086 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:56:02,086 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:56:02,086 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:56:02,087 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:55:48', tmtdew=11.47, humidity=45.93, cloud=0.0, wind=30.22, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:55:24.787', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:56:02,088 [DEBUG][       Thread-609699][   transport.py][1871] : EOF in transport thread
2025-07-01 15:56:02,178 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:56:02,189 [DEBUG][       Thread-609702][   transport.py][1871] : starting thread (client mode): 0x81a7af0
2025-07-01 15:56:02,189 [DEBUG][       Thread-609702][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:56:02,204 [DEBUG][       Thread-609702][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:56:02,204 [ INFO][       Thread-609702][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:56:02,212 [DEBUG][       Thread-609702][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:56:02,212 [DEBUG][       Thread-609702][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:56:02,212 [DEBUG][       Thread-609702][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:56:02,212 [DEBUG][       Thread-609702][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:56:02,212 [DEBUG][       Thread-609702][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:56:02,212 [DEBUG][       Thread-609702][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:56:02,212 [DEBUG][       Thread-609702][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:56:02,212 [DEBUG][       Thread-609702][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:56:02,212 [DEBUG][       Thread-609702][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:56:02,212 [DEBUG][       Thread-609702][   transport.py][1871] : client lang: <none>
2025-07-01 15:56:02,212 [DEBUG][       Thread-609702][   transport.py][1871] : server lang: <none>
2025-07-01 15:56:02,212 [DEBUG][       Thread-609702][   transport.py][1871] : kex follows: False
2025-07-01 15:56:02,212 [DEBUG][       Thread-609702][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:56:02,212 [DEBUG][       Thread-609702][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:56:02,212 [DEBUG][       Thread-609702][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:56:02,212 [DEBUG][       Thread-609702][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:56:02,212 [DEBUG][       Thread-609702][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:56:02,212 [DEBUG][       Thread-609702][   transport.py][1871] : Compression: none
2025-07-01 15:56:02,212 [DEBUG][       Thread-609702][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:56:02,273 [DEBUG][       Thread-609702][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:56:02,274 [DEBUG][       Thread-609702][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:56:02,274 [DEBUG][       Thread-609702][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:56:02,274 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:56:02,275 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:56:02,346 [DEBUG][       Thread-609702][   transport.py][1871] : userauth is OK
2025-07-01 15:56:02,346 [DEBUG][       Thread-609702][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:56:02,346 [DEBUG][       Thread-609702][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:56:02,346 [DEBUG][       Thread-609702][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:56:02,346 [DEBUG][       Thread-609702][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:56:02,365 [ INFO][       Thread-609702][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:56:02,366 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:56:02,366 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:56:03,448 [DEBUG][       Thread-609702][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:56:03,449 [DEBUG][       Thread-609702][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:56:03,496 [DEBUG][       Thread-609702][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:56:03,496 [DEBUG][       Thread-609702][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:56:03,505 [DEBUG][       Thread-609702][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:56:03,514 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:56:03,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-07-01 15:56:03,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-07-01 15:56:03,533 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:56:03,533 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:56:03,534 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:56:03,542 [DEBUG][       Thread-609702][   transport.py][1871] : EOF in transport thread
2025-07-01 15:56:09,632 [DEBUG][Thread-609704 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:56:13,544 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:56:13,545 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:56:13,545 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:56:13,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-07-01 15:56:14,024 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 55, 48), 11.47, 45.93, 0.0, 30.22, 13.97, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:56:14,024 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:55:48
2025-07-01 15:56:14,115 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:56:14,119 [DEBUG][       Thread-609705][   transport.py][1871] : starting thread (client mode): 0x81a6890
2025-07-01 15:56:14,119 [DEBUG][       Thread-609705][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:56:14,139 [DEBUG][       Thread-609705][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:56:14,139 [ INFO][       Thread-609705][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:56:14,142 [DEBUG][       Thread-609705][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:56:14,142 [DEBUG][       Thread-609705][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:56:14,142 [DEBUG][       Thread-609705][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:56:14,142 [DEBUG][       Thread-609705][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:56:14,142 [DEBUG][       Thread-609705][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:56:14,143 [DEBUG][       Thread-609705][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:56:14,143 [DEBUG][       Thread-609705][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:56:14,143 [DEBUG][       Thread-609705][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:56:14,143 [DEBUG][       Thread-609705][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:56:14,143 [DEBUG][       Thread-609705][   transport.py][1871] : client lang: <none>
2025-07-01 15:56:14,143 [DEBUG][       Thread-609705][   transport.py][1871] : server lang: <none>
2025-07-01 15:56:14,143 [DEBUG][       Thread-609705][   transport.py][1871] : kex follows: False
2025-07-01 15:56:14,143 [DEBUG][       Thread-609705][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:56:14,143 [DEBUG][       Thread-609705][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:56:14,143 [DEBUG][       Thread-609705][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:56:14,143 [DEBUG][       Thread-609705][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:56:14,143 [DEBUG][       Thread-609705][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:56:14,143 [DEBUG][       Thread-609705][   transport.py][1871] : Compression: none
2025-07-01 15:56:14,143 [DEBUG][       Thread-609705][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:56:14,158 [DEBUG][       Thread-609705][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:56:14,158 [DEBUG][       Thread-609705][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:56:14,159 [DEBUG][       Thread-609705][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:56:14,159 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:56:14,159 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:56:14,160 [DEBUG][       Thread-609705][   transport.py][1871] : userauth is OK
2025-07-01 15:56:14,174 [ INFO][       Thread-609705][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:56:14,174 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:56:14,806 [DEBUG][       Thread-609705][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:56:14,806 [DEBUG][       Thread-609705][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:56:14,848 [DEBUG][       Thread-609705][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:56:14,848 [DEBUG][       Thread-609705][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:56:14,850 [DEBUG][       Thread-609705][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:56:14,862 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:56:14,862 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:56:14,863 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:56:14,865 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:56:14,867 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:56:14,868 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:56:14,868 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:56:14,868 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:56:14,869 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.580495 -999.00  +13.80  37.62     50   +3.80 1 2 2 1 1   887    0 9.67 -7.75 ----- 26.6 37.6 45.6 44.5 15.8 -20.6 15.3 -19.9 15.5 -20.2 16.1 -20.6
2025-07-01 15:56:14,869 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:56:14,869 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:56:14,869 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.580495
2025-07-01 15:56:14,869 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:56:14,869 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:56:14,869 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:56:14,869 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:56:14,869 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:56:14,869 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:55:48', tmtdew=11.47, humidity=45.93, cloud=0.0, wind=30.22, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:55:54.768', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:56:14,869 [DEBUG][       Thread-609705][   transport.py][1871] : EOF in transport thread
2025-07-01 15:56:14,944 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:56:14,953 [DEBUG][       Thread-609708][   transport.py][1871] : starting thread (client mode): 0x8393790
2025-07-01 15:56:14,953 [DEBUG][       Thread-609708][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:56:14,968 [DEBUG][       Thread-609708][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:56:14,968 [ INFO][       Thread-609708][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:56:14,976 [DEBUG][       Thread-609708][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:56:14,976 [DEBUG][       Thread-609708][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:56:14,976 [DEBUG][       Thread-609708][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:56:14,976 [DEBUG][       Thread-609708][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:56:14,976 [DEBUG][       Thread-609708][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:56:14,976 [DEBUG][       Thread-609708][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:56:14,976 [DEBUG][       Thread-609708][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:56:14,976 [DEBUG][       Thread-609708][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:56:14,976 [DEBUG][       Thread-609708][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:56:14,976 [DEBUG][       Thread-609708][   transport.py][1871] : client lang: <none>
2025-07-01 15:56:14,976 [DEBUG][       Thread-609708][   transport.py][1871] : server lang: <none>
2025-07-01 15:56:14,976 [DEBUG][       Thread-609708][   transport.py][1871] : kex follows: False
2025-07-01 15:56:14,976 [DEBUG][       Thread-609708][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:56:14,976 [DEBUG][       Thread-609708][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:56:14,977 [DEBUG][       Thread-609708][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:56:14,977 [DEBUG][       Thread-609708][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:56:14,977 [DEBUG][       Thread-609708][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:56:14,977 [DEBUG][       Thread-609708][   transport.py][1871] : Compression: none
2025-07-01 15:56:14,977 [DEBUG][       Thread-609708][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:56:15,039 [DEBUG][       Thread-609708][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:56:15,040 [DEBUG][       Thread-609708][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:56:15,040 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:56:15,041 [DEBUG][       Thread-609708][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:56:15,042 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:56:15,096 [DEBUG][       Thread-609708][   transport.py][1871] : userauth is OK
2025-07-01 15:56:15,096 [DEBUG][       Thread-609708][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:56:15,096 [DEBUG][       Thread-609708][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:56:15,096 [DEBUG][       Thread-609708][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:56:15,096 [DEBUG][       Thread-609708][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:56:15,115 [ INFO][       Thread-609708][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:56:15,115 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:56:15,116 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:56:16,118 [DEBUG][       Thread-609708][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:56:16,118 [DEBUG][       Thread-609708][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:56:16,168 [DEBUG][       Thread-609708][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:56:16,168 [DEBUG][       Thread-609708][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:56:16,178 [DEBUG][       Thread-609708][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:56:16,187 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:56:16,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')
2025-07-01 15:56: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') -> 00000000
2025-07-01 15:56:16,209 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:56:16,209 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:56:16,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:56:16,221 [DEBUG][       Thread-609708][   transport.py][1871] : EOF in transport thread
2025-07-01 15:56:18,671 [DEBUG][Thread-609710 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:56:26,220 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:56:26,220 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:56:26,220 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:56:26,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-07-01 15:56:26,694 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 56, 20), 11.47, 45.93, 0.0, 35.64, 13.99, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:56:26,694 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:56:20
2025-07-01 15:56:26,780 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:56:26,786 [DEBUG][       Thread-609711][   transport.py][1871] : starting thread (client mode): 0x81a4d60
2025-07-01 15:56:26,786 [DEBUG][       Thread-609711][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:56:26,808 [DEBUG][       Thread-609711][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:56:26,808 [ INFO][       Thread-609711][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:56:26,810 [DEBUG][       Thread-609711][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:56:26,810 [DEBUG][       Thread-609711][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:56:26,810 [DEBUG][       Thread-609711][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:56:26,810 [DEBUG][       Thread-609711][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:56:26,810 [DEBUG][       Thread-609711][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:56:26,810 [DEBUG][       Thread-609711][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:56:26,811 [DEBUG][       Thread-609711][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:56:26,811 [DEBUG][       Thread-609711][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:56:26,811 [DEBUG][       Thread-609711][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:56:26,811 [DEBUG][       Thread-609711][   transport.py][1871] : client lang: <none>
2025-07-01 15:56:26,811 [DEBUG][       Thread-609711][   transport.py][1871] : server lang: <none>
2025-07-01 15:56:26,811 [DEBUG][       Thread-609711][   transport.py][1871] : kex follows: False
2025-07-01 15:56:26,811 [DEBUG][       Thread-609711][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:56:26,811 [DEBUG][       Thread-609711][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:56:26,811 [DEBUG][       Thread-609711][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:56:26,811 [DEBUG][       Thread-609711][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:56:26,811 [DEBUG][       Thread-609711][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:56:26,811 [DEBUG][       Thread-609711][   transport.py][1871] : Compression: none
2025-07-01 15:56:26,811 [DEBUG][       Thread-609711][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:56:26,828 [DEBUG][       Thread-609711][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:56:26,828 [DEBUG][       Thread-609711][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:56:26,828 [DEBUG][       Thread-609711][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:56:26,829 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:56:26,829 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:56:26,830 [DEBUG][       Thread-609711][   transport.py][1871] : userauth is OK
2025-07-01 15:56:26,843 [ INFO][       Thread-609711][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:56:26,844 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:56:27,517 [DEBUG][       Thread-609711][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:56:27,517 [DEBUG][       Thread-609711][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:56:27,561 [DEBUG][       Thread-609711][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:56:27,561 [DEBUG][       Thread-609711][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:56:27,565 [DEBUG][       Thread-609711][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:56:27,578 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:56:27,579 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:56:27,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:56:27,583 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:56:27,589 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:56:27,591 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:56:27,591 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:56:27,592 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:56:27,592 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.580495 -999.00  +13.80  37.62     50   +3.80 1 2 2 1 1   887    0 9.67 -7.75 ----- 26.6 37.6 45.6 44.5 15.8 -20.6 15.3 -19.9 15.5 -20.2 16.1 -20.6
2025-07-01 15:56:27,592 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:56:27,592 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:56:27,592 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.580495
2025-07-01 15:56:27,592 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:56:27,593 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:56:27,593 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:56:27,593 [DEBUG][       Thread-609711][   transport.py][1871] : EOF in transport thread
2025-07-01 15:56:27,593 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:56:27,594 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:56:27,594 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:56:20', tmtdew=11.47, humidity=45.93, cloud=0.0, wind=35.64, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:55:54.768', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:56:27,675 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:56:27,686 [DEBUG][       Thread-609714][   transport.py][1871] : starting thread (client mode): 0x8393910
2025-07-01 15:56:27,686 [DEBUG][       Thread-609714][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:56:27,690 [DEBUG][Thread-609715 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:56:27,701 [DEBUG][       Thread-609714][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:56:27,701 [ INFO][       Thread-609714][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:56:27,708 [DEBUG][       Thread-609714][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:56:27,709 [DEBUG][       Thread-609714][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:56:27,709 [DEBUG][       Thread-609714][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:56:27,709 [DEBUG][       Thread-609714][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:56:27,709 [DEBUG][       Thread-609714][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:56:27,709 [DEBUG][       Thread-609714][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:56:27,709 [DEBUG][       Thread-609714][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:56:27,709 [DEBUG][       Thread-609714][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:56:27,709 [DEBUG][       Thread-609714][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:56:27,709 [DEBUG][       Thread-609714][   transport.py][1871] : client lang: <none>
2025-07-01 15:56:27,709 [DEBUG][       Thread-609714][   transport.py][1871] : server lang: <none>
2025-07-01 15:56:27,709 [DEBUG][       Thread-609714][   transport.py][1871] : kex follows: False
2025-07-01 15:56:27,709 [DEBUG][       Thread-609714][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:56:27,709 [DEBUG][       Thread-609714][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:56:27,709 [DEBUG][       Thread-609714][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:56:27,709 [DEBUG][       Thread-609714][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:56:27,709 [DEBUG][       Thread-609714][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:56:27,709 [DEBUG][       Thread-609714][   transport.py][1871] : Compression: none
2025-07-01 15:56:27,709 [DEBUG][       Thread-609714][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:56:27,768 [DEBUG][       Thread-609714][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:56:27,768 [DEBUG][       Thread-609714][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:56:27,769 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:56:27,769 [DEBUG][       Thread-609714][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:56:27,770 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:56:27,829 [DEBUG][       Thread-609714][   transport.py][1871] : userauth is OK
2025-07-01 15:56:27,830 [DEBUG][       Thread-609714][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:56:27,830 [DEBUG][       Thread-609714][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:56:27,830 [DEBUG][       Thread-609714][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:56:27,830 [DEBUG][       Thread-609714][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:56:27,850 [ INFO][       Thread-609714][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:56:27,850 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:56:27,851 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:56:28,868 [DEBUG][       Thread-609714][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:56:28,868 [DEBUG][       Thread-609714][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:56:28,916 [DEBUG][       Thread-609714][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:56:28,916 [DEBUG][       Thread-609714][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:56:28,926 [DEBUG][       Thread-609714][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:56:28,935 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:56:28,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-07-01 15:56: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') -> 00000000
2025-07-01 15:56:28,952 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:56:28,952 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:56:28,953 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:56:28,961 [DEBUG][       Thread-609714][   transport.py][1871] : EOF in transport thread
2025-07-01 15:56:36,716 [DEBUG][Thread-609717 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:56:37,718 [DEBUG][Thread-609718 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:56:38,960 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:56:38,960 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:56:38,960 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:56:38,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-07-01 15:56:39,438 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 56, 20), 11.47, 45.93, 0.0, 35.64, 13.99, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:56:39,439 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:56:20
2025-07-01 15:56:39,525 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:56:39,529 [DEBUG][       Thread-609719][   transport.py][1871] : starting thread (client mode): 0x81a58a0
2025-07-01 15:56:39,529 [DEBUG][       Thread-609719][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:56:39,550 [DEBUG][       Thread-609719][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:56:39,551 [ INFO][       Thread-609719][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:56:39,554 [DEBUG][       Thread-609719][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:56:39,554 [DEBUG][       Thread-609719][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:56:39,554 [DEBUG][       Thread-609719][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:56:39,554 [DEBUG][       Thread-609719][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:56:39,554 [DEBUG][       Thread-609719][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:56:39,554 [DEBUG][       Thread-609719][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:56:39,554 [DEBUG][       Thread-609719][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:56:39,554 [DEBUG][       Thread-609719][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:56:39,554 [DEBUG][       Thread-609719][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:56:39,554 [DEBUG][       Thread-609719][   transport.py][1871] : client lang: <none>
2025-07-01 15:56:39,554 [DEBUG][       Thread-609719][   transport.py][1871] : server lang: <none>
2025-07-01 15:56:39,554 [DEBUG][       Thread-609719][   transport.py][1871] : kex follows: False
2025-07-01 15:56:39,554 [DEBUG][       Thread-609719][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:56:39,554 [DEBUG][       Thread-609719][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:56:39,554 [DEBUG][       Thread-609719][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:56:39,554 [DEBUG][       Thread-609719][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:56:39,554 [DEBUG][       Thread-609719][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:56:39,554 [DEBUG][       Thread-609719][   transport.py][1871] : Compression: none
2025-07-01 15:56:39,554 [DEBUG][       Thread-609719][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:56:39,570 [DEBUG][       Thread-609719][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:56:39,571 [DEBUG][       Thread-609719][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:56:39,571 [DEBUG][       Thread-609719][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:56:39,571 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:56:39,571 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:56:39,572 [DEBUG][       Thread-609719][   transport.py][1871] : userauth is OK
2025-07-01 15:56:39,585 [ INFO][       Thread-609719][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:56:39,585 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:56:40,287 [DEBUG][       Thread-609719][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:56:40,288 [DEBUG][       Thread-609719][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:56:40,329 [DEBUG][       Thread-609719][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:56:40,329 [DEBUG][       Thread-609719][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:56:40,332 [DEBUG][       Thread-609719][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:56:40,343 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:56:40,344 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:56:40,346 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:56:40,348 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:56:40,357 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:56:40,359 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:56:40,359 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:56:40,359 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:56:40,360 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.580495 -999.00  +13.80  37.62     50   +3.80 1 2 2 1 1   887    0 9.67 -7.75 ----- 26.6 37.6 45.6 44.5 15.8 -20.6 15.3 -19.9 15.5 -20.2 16.1 -20.6
2025-07-01 15:56:40,360 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:56:40,360 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:56:40,360 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.580495
2025-07-01 15:56:40,360 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:56:40,361 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:56:40,361 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:56:40,361 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:56:40,361 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:56:40,361 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:56:20', tmtdew=11.47, humidity=45.93, cloud=0.0, wind=35.64, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:55:54.768', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:56:40,362 [DEBUG][       Thread-609719][   transport.py][1871] : EOF in transport thread
2025-07-01 15:56:40,446 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:56:40,455 [DEBUG][       Thread-609722][   transport.py][1871] : starting thread (client mode): 0x81e6680
2025-07-01 15:56:40,455 [DEBUG][       Thread-609722][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:56:40,469 [DEBUG][       Thread-609722][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:56:40,470 [ INFO][       Thread-609722][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:56:40,477 [DEBUG][       Thread-609722][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:56:40,477 [DEBUG][       Thread-609722][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:56:40,477 [DEBUG][       Thread-609722][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:56:40,477 [DEBUG][       Thread-609722][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:56:40,477 [DEBUG][       Thread-609722][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:56:40,477 [DEBUG][       Thread-609722][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:56:40,477 [DEBUG][       Thread-609722][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:56:40,477 [DEBUG][       Thread-609722][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:56:40,477 [DEBUG][       Thread-609722][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:56:40,477 [DEBUG][       Thread-609722][   transport.py][1871] : client lang: <none>
2025-07-01 15:56:40,477 [DEBUG][       Thread-609722][   transport.py][1871] : server lang: <none>
2025-07-01 15:56:40,477 [DEBUG][       Thread-609722][   transport.py][1871] : kex follows: False
2025-07-01 15:56:40,477 [DEBUG][       Thread-609722][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:56:40,477 [DEBUG][       Thread-609722][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:56:40,477 [DEBUG][       Thread-609722][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:56:40,477 [DEBUG][       Thread-609722][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:56:40,477 [DEBUG][       Thread-609722][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:56:40,477 [DEBUG][       Thread-609722][   transport.py][1871] : Compression: none
2025-07-01 15:56:40,478 [DEBUG][       Thread-609722][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:56:40,535 [DEBUG][       Thread-609722][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:56:40,536 [DEBUG][       Thread-609722][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:56:40,536 [DEBUG][       Thread-609722][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:56:40,537 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:56:40,537 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:56:40,591 [DEBUG][       Thread-609722][   transport.py][1871] : userauth is OK
2025-07-01 15:56:40,592 [DEBUG][       Thread-609722][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:56:40,592 [DEBUG][       Thread-609722][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:56:40,592 [DEBUG][       Thread-609722][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:56:40,592 [DEBUG][       Thread-609722][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:56:40,611 [ INFO][       Thread-609722][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:56:40,612 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:56:40,612 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:56:41,650 [DEBUG][       Thread-609722][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:56:41,651 [DEBUG][       Thread-609722][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:56:41,700 [DEBUG][       Thread-609722][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:56:41,700 [DEBUG][       Thread-609722][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:56:41,709 [DEBUG][       Thread-609722][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:56:41,717 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:56:41,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-07-01 15:56:41,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-07-01 15:56:41,743 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:56:41,743 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:56:41,744 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:56:41,751 [DEBUG][       Thread-609722][   transport.py][1871] : EOF in transport thread
2025-07-01 15:56:45,742 [DEBUG][Thread-609724 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:56:51,754 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:56:51,754 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:56:51,754 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:56: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-07-01 15:56:52,222 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 56, 20), 11.47, 45.93, 0.0, 35.64, 13.99, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:56:52,222 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:56:20
2025-07-01 15:56:52,309 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:56:52,314 [DEBUG][       Thread-609725][   transport.py][1871] : starting thread (client mode): 0x75a8ee0
2025-07-01 15:56:52,314 [DEBUG][       Thread-609725][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:56:52,335 [DEBUG][       Thread-609725][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:56:52,335 [ INFO][       Thread-609725][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:56:52,338 [DEBUG][       Thread-609725][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:56:52,338 [DEBUG][       Thread-609725][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:56:52,338 [DEBUG][       Thread-609725][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:56:52,338 [DEBUG][       Thread-609725][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:56:52,338 [DEBUG][       Thread-609725][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:56:52,338 [DEBUG][       Thread-609725][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:56:52,339 [DEBUG][       Thread-609725][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:56:52,339 [DEBUG][       Thread-609725][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:56:52,339 [DEBUG][       Thread-609725][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:56:52,339 [DEBUG][       Thread-609725][   transport.py][1871] : client lang: <none>
2025-07-01 15:56:52,339 [DEBUG][       Thread-609725][   transport.py][1871] : server lang: <none>
2025-07-01 15:56:52,339 [DEBUG][       Thread-609725][   transport.py][1871] : kex follows: False
2025-07-01 15:56:52,339 [DEBUG][       Thread-609725][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:56:52,339 [DEBUG][       Thread-609725][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:56:52,339 [DEBUG][       Thread-609725][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:56:52,339 [DEBUG][       Thread-609725][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:56:52,339 [DEBUG][       Thread-609725][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:56:52,339 [DEBUG][       Thread-609725][   transport.py][1871] : Compression: none
2025-07-01 15:56:52,339 [DEBUG][       Thread-609725][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:56:52,353 [DEBUG][       Thread-609725][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:56:52,353 [DEBUG][       Thread-609725][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:56:52,353 [DEBUG][       Thread-609725][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:56:52,353 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:56:52,353 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:56:52,354 [DEBUG][       Thread-609725][   transport.py][1871] : userauth is OK
2025-07-01 15:56:52,378 [ INFO][       Thread-609725][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:56:52,379 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:56:53,021 [DEBUG][       Thread-609725][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:56:53,021 [DEBUG][       Thread-609725][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:56:53,064 [DEBUG][       Thread-609725][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:56:53,065 [DEBUG][       Thread-609725][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:56:53,067 [DEBUG][       Thread-609725][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:56:53,079 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:56:53,079 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:56:53,080 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:56:53,081 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:56:53,083 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:56:53,084 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:56:53,084 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:56:53,084 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:56:53,084 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.580843 -999.00  +13.80  39.81     50   +3.70 1 2 2 1 1   887    0 9.90 -4.02 ----- 30.1 39.8 17.0 49.7 15.8 -21.2 15.3 -21.1 15.4 -21.0 15.9 -22.2
2025-07-01 15:56:53,084 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:56:53,084 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:56:53,084 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.580843
2025-07-01 15:56:53,085 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:56:53,085 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:56:53,085 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:56:53,085 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:56:53,085 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:56:53,085 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:56:20', tmtdew=11.47, humidity=45.93, cloud=0.0, wind=35.64, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:56:24.835', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:56:53,086 [DEBUG][       Thread-609725][   transport.py][1871] : EOF in transport thread
2025-07-01 15:56:53,159 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:56:53,171 [DEBUG][       Thread-609728][   transport.py][1871] : starting thread (client mode): 0x474e8130
2025-07-01 15:56:53,171 [DEBUG][       Thread-609728][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:56:53,186 [DEBUG][       Thread-609728][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:56:53,187 [ INFO][       Thread-609728][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:56:53,194 [DEBUG][       Thread-609728][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:56:53,194 [DEBUG][       Thread-609728][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:56:53,194 [DEBUG][       Thread-609728][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:56:53,194 [DEBUG][       Thread-609728][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:56:53,194 [DEBUG][       Thread-609728][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:56:53,194 [DEBUG][       Thread-609728][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:56:53,194 [DEBUG][       Thread-609728][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:56:53,194 [DEBUG][       Thread-609728][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:56:53,194 [DEBUG][       Thread-609728][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:56:53,194 [DEBUG][       Thread-609728][   transport.py][1871] : client lang: <none>
2025-07-01 15:56:53,194 [DEBUG][       Thread-609728][   transport.py][1871] : server lang: <none>
2025-07-01 15:56:53,194 [DEBUG][       Thread-609728][   transport.py][1871] : kex follows: False
2025-07-01 15:56:53,194 [DEBUG][       Thread-609728][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:56:53,194 [DEBUG][       Thread-609728][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:56:53,194 [DEBUG][       Thread-609728][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:56:53,194 [DEBUG][       Thread-609728][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:56:53,194 [DEBUG][       Thread-609728][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:56:53,194 [DEBUG][       Thread-609728][   transport.py][1871] : Compression: none
2025-07-01 15:56:53,194 [DEBUG][       Thread-609728][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:56:53,250 [DEBUG][       Thread-609728][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:56:53,250 [DEBUG][       Thread-609728][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:56:53,250 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:56:53,250 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:56:53,250 [DEBUG][       Thread-609728][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:56:53,311 [DEBUG][       Thread-609728][   transport.py][1871] : userauth is OK
2025-07-01 15:56:53,311 [DEBUG][       Thread-609728][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:56:53,311 [DEBUG][       Thread-609728][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:56:53,311 [DEBUG][       Thread-609728][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:56:53,311 [DEBUG][       Thread-609728][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:56:53,325 [ INFO][       Thread-609728][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:56:53,326 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:56:53,326 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:56:54,355 [DEBUG][       Thread-609728][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:56:54,356 [DEBUG][       Thread-609728][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:56:54,405 [DEBUG][       Thread-609728][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:56:54,405 [DEBUG][       Thread-609728][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:56:54,415 [DEBUG][       Thread-609728][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:56:54,423 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:56:54,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-07-01 15:56:54,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-07-01 15:56:54,439 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:56:54,439 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:56:54,439 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:56:54,446 [DEBUG][       Thread-609728][   transport.py][1871] : EOF in transport thread
2025-07-01 15:56:54,763 [DEBUG][Thread-609730 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:57:03,782 [DEBUG][Thread-609731 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:57:04,449 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:57:04,449 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:57:04,449 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:57:04,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-07-01 15:57:04,919 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 56, 52), 11.43, 46.06, 0.0, 34.28, 13.97, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:57:04,919 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:56:52
2025-07-01 15:57:05,006 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:57:05,010 [DEBUG][       Thread-609732][   transport.py][1871] : starting thread (client mode): 0x8171480
2025-07-01 15:57:05,010 [DEBUG][       Thread-609732][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:57:05,031 [DEBUG][       Thread-609732][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:57:05,032 [ INFO][       Thread-609732][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:57:05,035 [DEBUG][       Thread-609732][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:57:05,035 [DEBUG][       Thread-609732][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:57:05,035 [DEBUG][       Thread-609732][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:57:05,035 [DEBUG][       Thread-609732][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:57:05,035 [DEBUG][       Thread-609732][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:57:05,035 [DEBUG][       Thread-609732][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:57:05,035 [DEBUG][       Thread-609732][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:57:05,035 [DEBUG][       Thread-609732][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:57:05,035 [DEBUG][       Thread-609732][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:57:05,035 [DEBUG][       Thread-609732][   transport.py][1871] : client lang: <none>
2025-07-01 15:57:05,035 [DEBUG][       Thread-609732][   transport.py][1871] : server lang: <none>
2025-07-01 15:57:05,035 [DEBUG][       Thread-609732][   transport.py][1871] : kex follows: False
2025-07-01 15:57:05,035 [DEBUG][       Thread-609732][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:57:05,035 [DEBUG][       Thread-609732][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:57:05,035 [DEBUG][       Thread-609732][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:57:05,036 [DEBUG][       Thread-609732][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:57:05,036 [DEBUG][       Thread-609732][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:57:05,036 [DEBUG][       Thread-609732][   transport.py][1871] : Compression: none
2025-07-01 15:57:05,036 [DEBUG][       Thread-609732][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:57:05,052 [DEBUG][       Thread-609732][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:57:05,052 [DEBUG][       Thread-609732][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:57:05,053 [DEBUG][       Thread-609732][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:57:05,053 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:57:05,053 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:57:05,054 [DEBUG][       Thread-609732][   transport.py][1871] : userauth is OK
2025-07-01 15:57:05,079 [ INFO][       Thread-609732][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:57:05,079 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:57:05,678 [DEBUG][       Thread-609732][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:57:05,678 [DEBUG][       Thread-609732][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:57:05,721 [DEBUG][       Thread-609732][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:57:05,721 [DEBUG][       Thread-609732][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:57:05,724 [DEBUG][       Thread-609732][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:57:05,738 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:57:05,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:57:05,740 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:57:05,742 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:57:05,748 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:57:05,750 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:57:05,750 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:57:05,750 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:57:05,751 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.580843 -999.00  +13.80  39.81     50   +3.70 1 2 2 1 1   887    0 9.90 -4.02 ----- 30.1 39.8 17.0 49.7 15.8 -21.2 15.3 -21.1 15.4 -21.0 15.9 -22.2
2025-07-01 15:57:05,751 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:57:05,751 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:57:05,751 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.580843
2025-07-01 15:57:05,751 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:57:05,752 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:57:05,752 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:57:05,752 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:57:05,752 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:57:05,752 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:56:52', tmtdew=11.43, humidity=46.06, cloud=0.0, wind=34.28, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:56:24.835', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:57:05,753 [DEBUG][       Thread-609732][   transport.py][1871] : EOF in transport thread
2025-07-01 15:57:05,837 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:57:05,846 [DEBUG][       Thread-609735][   transport.py][1871] : starting thread (client mode): 0x81e62c0
2025-07-01 15:57:05,846 [DEBUG][       Thread-609735][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:57:05,866 [DEBUG][       Thread-609735][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:57:05,866 [ INFO][       Thread-609735][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:57:05,874 [DEBUG][       Thread-609735][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:57:05,874 [DEBUG][       Thread-609735][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:57:05,874 [DEBUG][       Thread-609735][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:57:05,874 [DEBUG][       Thread-609735][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:57:05,874 [DEBUG][       Thread-609735][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:57:05,874 [DEBUG][       Thread-609735][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:57:05,874 [DEBUG][       Thread-609735][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:57:05,874 [DEBUG][       Thread-609735][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:57:05,874 [DEBUG][       Thread-609735][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:57:05,875 [DEBUG][       Thread-609735][   transport.py][1871] : client lang: <none>
2025-07-01 15:57:05,875 [DEBUG][       Thread-609735][   transport.py][1871] : server lang: <none>
2025-07-01 15:57:05,875 [DEBUG][       Thread-609735][   transport.py][1871] : kex follows: False
2025-07-01 15:57:05,875 [DEBUG][       Thread-609735][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:57:05,875 [DEBUG][       Thread-609735][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:57:05,875 [DEBUG][       Thread-609735][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:57:05,875 [DEBUG][       Thread-609735][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:57:05,875 [DEBUG][       Thread-609735][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:57:05,875 [DEBUG][       Thread-609735][   transport.py][1871] : Compression: none
2025-07-01 15:57:05,875 [DEBUG][       Thread-609735][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:57:05,935 [DEBUG][       Thread-609735][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:57:05,936 [DEBUG][       Thread-609735][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:57:05,937 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:57:05,937 [DEBUG][       Thread-609735][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:57:05,938 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:57:05,991 [DEBUG][       Thread-609735][   transport.py][1871] : userauth is OK
2025-07-01 15:57:05,992 [DEBUG][       Thread-609735][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:57:05,992 [DEBUG][       Thread-609735][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:57:05,992 [DEBUG][       Thread-609735][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:57:05,992 [DEBUG][       Thread-609735][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:57:06,010 [ INFO][       Thread-609735][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:57:06,011 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:57:06,011 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:57:07,068 [DEBUG][       Thread-609735][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:57:07,069 [DEBUG][       Thread-609735][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:57:07,120 [DEBUG][       Thread-609735][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:57:07,120 [DEBUG][       Thread-609735][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:57:07,130 [DEBUG][       Thread-609735][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:57:07,138 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:57:07,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-07-01 15:57:07,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') -> 00000000
2025-07-01 15:57:07,156 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:57:07,156 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:57:07,157 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:57:07,165 [DEBUG][       Thread-609735][   transport.py][1871] : EOF in transport thread
2025-07-01 15:57:12,803 [DEBUG][Thread-609737 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:57:17,165 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:57:17,165 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:57:17,174 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:57:17,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-07-01 15:57:17,639 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 56, 52), 11.43, 46.06, 0.0, 34.28, 13.97, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:57:17,639 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:56:52
2025-07-01 15:57:17,726 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:57:17,730 [DEBUG][       Thread-609738][   transport.py][1871] : starting thread (client mode): 0x81e5480
2025-07-01 15:57:17,730 [DEBUG][       Thread-609738][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:57:17,750 [DEBUG][       Thread-609738][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:57:17,750 [ INFO][       Thread-609738][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:57:17,753 [DEBUG][       Thread-609738][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:57:17,753 [DEBUG][       Thread-609738][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:57:17,753 [DEBUG][       Thread-609738][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:57:17,753 [DEBUG][       Thread-609738][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:57:17,753 [DEBUG][       Thread-609738][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:57:17,754 [DEBUG][       Thread-609738][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:57:17,754 [DEBUG][       Thread-609738][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:57:17,754 [DEBUG][       Thread-609738][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:57:17,754 [DEBUG][       Thread-609738][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:57:17,754 [DEBUG][       Thread-609738][   transport.py][1871] : client lang: <none>
2025-07-01 15:57:17,754 [DEBUG][       Thread-609738][   transport.py][1871] : server lang: <none>
2025-07-01 15:57:17,754 [DEBUG][       Thread-609738][   transport.py][1871] : kex follows: False
2025-07-01 15:57:17,754 [DEBUG][       Thread-609738][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:57:17,754 [DEBUG][       Thread-609738][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:57:17,754 [DEBUG][       Thread-609738][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:57:17,754 [DEBUG][       Thread-609738][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:57:17,754 [DEBUG][       Thread-609738][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:57:17,754 [DEBUG][       Thread-609738][   transport.py][1871] : Compression: none
2025-07-01 15:57:17,754 [DEBUG][       Thread-609738][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:57:17,772 [DEBUG][       Thread-609738][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:57:17,773 [DEBUG][       Thread-609738][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:57:17,773 [DEBUG][       Thread-609738][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:57:17,773 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:57:17,774 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:57:17,775 [DEBUG][       Thread-609738][   transport.py][1871] : userauth is OK
2025-07-01 15:57:17,788 [ INFO][       Thread-609738][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:57:17,789 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:57:18,445 [DEBUG][       Thread-609738][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:57:18,445 [DEBUG][       Thread-609738][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:57:18,489 [DEBUG][       Thread-609738][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:57:18,489 [DEBUG][       Thread-609738][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:57:18,492 [DEBUG][       Thread-609738][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:57:18,504 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:57:18,504 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:57:18,506 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:57:18,508 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:57:18,513 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:57:18,515 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:57:18,515 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:57:18,516 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:57:18,516 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.580843 -999.00  +13.80  39.81     50   +3.70 1 2 2 1 1   887    0 9.90 -4.02 ----- 30.1 39.8 17.0 49.7 15.8 -21.2 15.3 -21.1 15.4 -21.0 15.9 -22.2
2025-07-01 15:57:18,516 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:57:18,516 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:57:18,516 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.580843
2025-07-01 15:57:18,516 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:57:18,517 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:57:18,517 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:57:18,517 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:57:18,517 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:57:18,517 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:56:52', tmtdew=11.43, humidity=46.06, cloud=0.0, wind=34.28, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:56:24.835', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:57:18,518 [DEBUG][       Thread-609738][   transport.py][1871] : EOF in transport thread
2025-07-01 15:57:18,601 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:57:18,612 [DEBUG][       Thread-609741][   transport.py][1871] : starting thread (client mode): 0x8157a00
2025-07-01 15:57:18,612 [DEBUG][       Thread-609741][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:57:18,627 [DEBUG][       Thread-609741][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:57:18,627 [ INFO][       Thread-609741][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:57:18,635 [DEBUG][       Thread-609741][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:57:18,635 [DEBUG][       Thread-609741][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:57:18,635 [DEBUG][       Thread-609741][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:57:18,635 [DEBUG][       Thread-609741][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:57:18,635 [DEBUG][       Thread-609741][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:57:18,635 [DEBUG][       Thread-609741][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:57:18,635 [DEBUG][       Thread-609741][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:57:18,635 [DEBUG][       Thread-609741][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:57:18,635 [DEBUG][       Thread-609741][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:57:18,635 [DEBUG][       Thread-609741][   transport.py][1871] : client lang: <none>
2025-07-01 15:57:18,635 [DEBUG][       Thread-609741][   transport.py][1871] : server lang: <none>
2025-07-01 15:57:18,635 [DEBUG][       Thread-609741][   transport.py][1871] : kex follows: False
2025-07-01 15:57:18,635 [DEBUG][       Thread-609741][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:57:18,635 [DEBUG][       Thread-609741][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:57:18,635 [DEBUG][       Thread-609741][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:57:18,635 [DEBUG][       Thread-609741][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:57:18,635 [DEBUG][       Thread-609741][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:57:18,635 [DEBUG][       Thread-609741][   transport.py][1871] : Compression: none
2025-07-01 15:57:18,635 [DEBUG][       Thread-609741][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:57:18,691 [DEBUG][       Thread-609741][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:57:18,692 [DEBUG][       Thread-609741][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:57:18,692 [DEBUG][       Thread-609741][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:57:18,693 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:57:18,693 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:57:18,747 [DEBUG][       Thread-609741][   transport.py][1871] : userauth is OK
2025-07-01 15:57:18,747 [DEBUG][       Thread-609741][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:57:18,747 [DEBUG][       Thread-609741][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:57:18,748 [DEBUG][       Thread-609741][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:57:18,748 [DEBUG][       Thread-609741][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:57:18,766 [ INFO][       Thread-609741][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:57:18,766 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:57:18,767 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:57:19,792 [DEBUG][       Thread-609741][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:57:19,792 [DEBUG][       Thread-609741][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:57:19,850 [DEBUG][       Thread-609741][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:57:19,850 [DEBUG][       Thread-609741][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:57:19,860 [DEBUG][       Thread-609741][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:57:19,869 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:57:19,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-07-01 15:57: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-07-01 15:57:19,887 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:57:19,887 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:57:19,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:57:19,895 [DEBUG][       Thread-609741][   transport.py][1871] : EOF in transport thread
2025-07-01 15:57:21,836 [DEBUG][Thread-609743 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:57:29,892 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:57:29,892 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:57:29,892 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:57:29,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-07-01 15:57:30,374 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 57, 24), 11.38, 46.12, 0.0, 32.82, 13.91, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:57:30,374 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:57:24
2025-07-01 15:57:30,461 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:57:30,467 [DEBUG][       Thread-609744][   transport.py][1871] : starting thread (client mode): 0x81a7430
2025-07-01 15:57:30,467 [DEBUG][       Thread-609744][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:57:30,482 [DEBUG][       Thread-609744][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:57:30,482 [ INFO][       Thread-609744][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:57:30,483 [DEBUG][       Thread-609744][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:57:30,483 [DEBUG][       Thread-609744][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:57:30,484 [DEBUG][       Thread-609744][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:57:30,484 [DEBUG][       Thread-609744][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:57:30,484 [DEBUG][       Thread-609744][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:57:30,484 [DEBUG][       Thread-609744][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:57:30,484 [DEBUG][       Thread-609744][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:57:30,484 [DEBUG][       Thread-609744][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:57:30,484 [DEBUG][       Thread-609744][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:57:30,484 [DEBUG][       Thread-609744][   transport.py][1871] : client lang: <none>
2025-07-01 15:57:30,484 [DEBUG][       Thread-609744][   transport.py][1871] : server lang: <none>
2025-07-01 15:57:30,484 [DEBUG][       Thread-609744][   transport.py][1871] : kex follows: False
2025-07-01 15:57:30,484 [DEBUG][       Thread-609744][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:57:30,484 [DEBUG][       Thread-609744][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:57:30,484 [DEBUG][       Thread-609744][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:57:30,484 [DEBUG][       Thread-609744][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:57:30,484 [DEBUG][       Thread-609744][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:57:30,484 [DEBUG][       Thread-609744][   transport.py][1871] : Compression: none
2025-07-01 15:57:30,484 [DEBUG][       Thread-609744][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:57:30,502 [DEBUG][       Thread-609744][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:57:30,503 [DEBUG][       Thread-609744][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:57:30,503 [DEBUG][       Thread-609744][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:57:30,503 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:57:30,504 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:57:30,505 [DEBUG][       Thread-609744][   transport.py][1871] : userauth is OK
2025-07-01 15:57:30,529 [ INFO][       Thread-609744][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:57:30,530 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:57:30,857 [DEBUG][Thread-609746 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:57:31,202 [DEBUG][       Thread-609744][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:57:31,203 [DEBUG][       Thread-609744][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:57:31,245 [DEBUG][       Thread-609744][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:57:31,245 [DEBUG][       Thread-609744][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:57:31,248 [DEBUG][       Thread-609744][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:57:31,260 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:57:31,260 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:57:31,262 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:57:31,264 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:57:31,270 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:57:31,271 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:57:31,272 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:57:31,272 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:57:31,272 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.581189 -999.00  +13.80  36.81     50   +3.80 1 2 2 1 1   887    0 9.92 -1.76 ----- 32.2 36.8 15.4 42.2 15.8 -21.6 15.2 -21.3 15.5 -21.0 16.0 -21.2
2025-07-01 15:57:31,273 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:57:31,273 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:57:31,273 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.581189
2025-07-01 15:57:31,273 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:57:31,274 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:57:31,274 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:57:31,274 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:57:31,274 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:57:31,274 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:57:24', tmtdew=11.38, humidity=46.12, cloud=0.0, wind=32.82, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:56:54.730', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:57:31,275 [DEBUG][       Thread-609744][   transport.py][1871] : EOF in transport thread
2025-07-01 15:57:31,357 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:57:31,371 [DEBUG][       Thread-609748][   transport.py][1871] : starting thread (client mode): 0x818e560
2025-07-01 15:57:31,371 [DEBUG][       Thread-609748][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:57:31,387 [DEBUG][       Thread-609748][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:57:31,387 [ INFO][       Thread-609748][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:57:31,395 [DEBUG][       Thread-609748][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:57:31,395 [DEBUG][       Thread-609748][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:57:31,395 [DEBUG][       Thread-609748][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:57:31,395 [DEBUG][       Thread-609748][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:57:31,395 [DEBUG][       Thread-609748][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:57:31,395 [DEBUG][       Thread-609748][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:57:31,395 [DEBUG][       Thread-609748][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:57:31,395 [DEBUG][       Thread-609748][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:57:31,395 [DEBUG][       Thread-609748][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:57:31,395 [DEBUG][       Thread-609748][   transport.py][1871] : client lang: <none>
2025-07-01 15:57:31,396 [DEBUG][       Thread-609748][   transport.py][1871] : server lang: <none>
2025-07-01 15:57:31,396 [DEBUG][       Thread-609748][   transport.py][1871] : kex follows: False
2025-07-01 15:57:31,396 [DEBUG][       Thread-609748][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:57:31,396 [DEBUG][       Thread-609748][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:57:31,396 [DEBUG][       Thread-609748][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:57:31,396 [DEBUG][       Thread-609748][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:57:31,396 [DEBUG][       Thread-609748][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:57:31,396 [DEBUG][       Thread-609748][   transport.py][1871] : Compression: none
2025-07-01 15:57:31,396 [DEBUG][       Thread-609748][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:57:31,455 [DEBUG][       Thread-609748][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:57:31,455 [DEBUG][       Thread-609748][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:57:31,456 [DEBUG][       Thread-609748][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:57:31,456 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:57:31,457 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:57:31,511 [DEBUG][       Thread-609748][   transport.py][1871] : userauth is OK
2025-07-01 15:57:31,511 [DEBUG][       Thread-609748][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:57:31,511 [DEBUG][       Thread-609748][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:57:31,511 [DEBUG][       Thread-609748][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:57:31,511 [DEBUG][       Thread-609748][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:57:31,530 [ INFO][       Thread-609748][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:57:31,530 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:57:31,531 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:57:32,532 [DEBUG][       Thread-609748][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:57:32,533 [DEBUG][       Thread-609748][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:57:32,584 [DEBUG][       Thread-609748][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:57:32,584 [DEBUG][       Thread-609748][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:57:32,593 [DEBUG][       Thread-609748][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:57:32,602 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:57:32,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-07-01 15:57:32,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-07-01 15:57:32,621 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:57:32,621 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:57:32,621 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:57:32,629 [DEBUG][       Thread-609748][   transport.py][1871] : EOF in transport thread
2025-07-01 15:57:37,755 [DEBUG][Thread-609750 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:57:39,877 [DEBUG][Thread-609751 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:57:42,632 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:57:42,632 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:57:42,632 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:57:42,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-07-01 15:57:43,092 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 57, 24), 11.38, 46.12, 0.0, 32.82, 13.91, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:57:43,092 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:57:24
2025-07-01 15:57:43,177 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:57:43,181 [DEBUG][       Thread-609752][   transport.py][1871] : starting thread (client mode): 0x81a4640
2025-07-01 15:57:43,181 [DEBUG][       Thread-609752][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:57:43,202 [DEBUG][       Thread-609752][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:57:43,202 [ INFO][       Thread-609752][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:57:43,205 [DEBUG][       Thread-609752][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:57:43,205 [DEBUG][       Thread-609752][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:57:43,205 [DEBUG][       Thread-609752][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:57:43,205 [DEBUG][       Thread-609752][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:57:43,205 [DEBUG][       Thread-609752][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:57:43,205 [DEBUG][       Thread-609752][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:57:43,205 [DEBUG][       Thread-609752][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:57:43,205 [DEBUG][       Thread-609752][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:57:43,205 [DEBUG][       Thread-609752][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:57:43,205 [DEBUG][       Thread-609752][   transport.py][1871] : client lang: <none>
2025-07-01 15:57:43,205 [DEBUG][       Thread-609752][   transport.py][1871] : server lang: <none>
2025-07-01 15:57:43,205 [DEBUG][       Thread-609752][   transport.py][1871] : kex follows: False
2025-07-01 15:57:43,205 [DEBUG][       Thread-609752][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:57:43,205 [DEBUG][       Thread-609752][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:57:43,205 [DEBUG][       Thread-609752][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:57:43,205 [DEBUG][       Thread-609752][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:57:43,205 [DEBUG][       Thread-609752][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:57:43,205 [DEBUG][       Thread-609752][   transport.py][1871] : Compression: none
2025-07-01 15:57:43,205 [DEBUG][       Thread-609752][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:57:43,224 [DEBUG][       Thread-609752][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:57:43,225 [DEBUG][       Thread-609752][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:57:43,225 [DEBUG][       Thread-609752][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:57:43,225 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:57:43,225 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:57:43,227 [DEBUG][       Thread-609752][   transport.py][1871] : userauth is OK
2025-07-01 15:57:43,252 [ INFO][       Thread-609752][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:57:43,253 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:57:43,911 [DEBUG][       Thread-609752][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:57:43,912 [DEBUG][       Thread-609752][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:57:43,953 [DEBUG][       Thread-609752][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:57:43,953 [DEBUG][       Thread-609752][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:57:43,956 [DEBUG][       Thread-609752][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:57:43,967 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:57:43,968 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:57:43,970 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:57:43,972 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:57:43,978 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:57:43,979 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:57:43,980 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:57:43,980 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:57:43,980 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.581189 -999.00  +13.80  36.81     50   +3.80 1 2 2 1 1   887    0 9.92 -1.76 ----- 32.2 36.8 15.4 42.2 15.8 -21.6 15.2 -21.3 15.5 -21.0 16.0 -21.2
2025-07-01 15:57:43,980 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:57:43,981 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:57:43,981 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.581189
2025-07-01 15:57:43,981 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:57:43,982 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:57:43,982 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:57:43,982 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:57:43,982 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:57:43,982 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:57:24', tmtdew=11.38, humidity=46.12, cloud=0.0, wind=32.82, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:56:54.730', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:57:43,982 [DEBUG][       Thread-609752][   transport.py][1871] : EOF in transport thread
2025-07-01 15:57:44,064 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:57:44,073 [DEBUG][       Thread-609755][   transport.py][1871] : starting thread (client mode): 0x81c9300
2025-07-01 15:57:44,073 [DEBUG][       Thread-609755][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:57:44,088 [DEBUG][       Thread-609755][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:57:44,088 [ INFO][       Thread-609755][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:57:44,096 [DEBUG][       Thread-609755][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:57:44,096 [DEBUG][       Thread-609755][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:57:44,096 [DEBUG][       Thread-609755][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:57:44,096 [DEBUG][       Thread-609755][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:57:44,096 [DEBUG][       Thread-609755][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:57:44,096 [DEBUG][       Thread-609755][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:57:44,096 [DEBUG][       Thread-609755][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:57:44,096 [DEBUG][       Thread-609755][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:57:44,096 [DEBUG][       Thread-609755][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:57:44,096 [DEBUG][       Thread-609755][   transport.py][1871] : client lang: <none>
2025-07-01 15:57:44,096 [DEBUG][       Thread-609755][   transport.py][1871] : server lang: <none>
2025-07-01 15:57:44,096 [DEBUG][       Thread-609755][   transport.py][1871] : kex follows: False
2025-07-01 15:57:44,096 [DEBUG][       Thread-609755][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:57:44,096 [DEBUG][       Thread-609755][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:57:44,096 [DEBUG][       Thread-609755][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:57:44,096 [DEBUG][       Thread-609755][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:57:44,096 [DEBUG][       Thread-609755][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:57:44,096 [DEBUG][       Thread-609755][   transport.py][1871] : Compression: none
2025-07-01 15:57:44,096 [DEBUG][       Thread-609755][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:57:44,155 [DEBUG][       Thread-609755][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:57:44,156 [DEBUG][       Thread-609755][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:57:44,156 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:57:44,157 [DEBUG][       Thread-609755][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:57:44,157 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:57:44,210 [DEBUG][       Thread-609755][   transport.py][1871] : userauth is OK
2025-07-01 15:57:44,211 [DEBUG][       Thread-609755][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:57:44,211 [DEBUG][       Thread-609755][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:57:44,211 [DEBUG][       Thread-609755][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:57:44,211 [DEBUG][       Thread-609755][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:57:44,224 [ INFO][       Thread-609755][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:57:44,225 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:57:44,225 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:57:45,247 [DEBUG][       Thread-609755][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:57:45,247 [DEBUG][       Thread-609755][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:57:45,296 [DEBUG][       Thread-609755][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:57:45,296 [DEBUG][       Thread-609755][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:57:45,305 [DEBUG][       Thread-609755][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:57:45,314 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:57:45,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-07-01 15:57:45,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-07-01 15:57:45,333 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:57:45,333 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:57:45,334 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:57:45,342 [DEBUG][       Thread-609755][   transport.py][1871] : EOF in transport thread
2025-07-01 15:57:48,916 [DEBUG][Thread-609757 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:57:55,344 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:57:55,344 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:57:55,344 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:57:55,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-07-01 15:57:55,826 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 57, 24), 11.38, 46.12, 0.0, 32.82, 13.91, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:57:55,826 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:57:24
2025-07-01 15:57:55,910 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:57:55,915 [DEBUG][       Thread-609758][   transport.py][1871] : starting thread (client mode): 0x81a4610
2025-07-01 15:57:55,916 [DEBUG][       Thread-609758][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:57:55,931 [DEBUG][       Thread-609758][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:57:55,931 [ INFO][       Thread-609758][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:57:55,934 [DEBUG][       Thread-609758][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:57:55,934 [DEBUG][       Thread-609758][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:57:55,934 [DEBUG][       Thread-609758][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:57:55,935 [DEBUG][       Thread-609758][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:57:55,935 [DEBUG][       Thread-609758][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:57:55,935 [DEBUG][       Thread-609758][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:57:55,935 [DEBUG][       Thread-609758][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:57:55,935 [DEBUG][       Thread-609758][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:57:55,935 [DEBUG][       Thread-609758][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:57:55,935 [DEBUG][       Thread-609758][   transport.py][1871] : client lang: <none>
2025-07-01 15:57:55,935 [DEBUG][       Thread-609758][   transport.py][1871] : server lang: <none>
2025-07-01 15:57:55,935 [DEBUG][       Thread-609758][   transport.py][1871] : kex follows: False
2025-07-01 15:57:55,935 [DEBUG][       Thread-609758][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:57:55,935 [DEBUG][       Thread-609758][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:57:55,935 [DEBUG][       Thread-609758][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:57:55,935 [DEBUG][       Thread-609758][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:57:55,935 [DEBUG][       Thread-609758][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:57:55,935 [DEBUG][       Thread-609758][   transport.py][1871] : Compression: none
2025-07-01 15:57:55,935 [DEBUG][       Thread-609758][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:57:55,950 [DEBUG][       Thread-609758][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:57:55,950 [DEBUG][       Thread-609758][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:57:55,951 [DEBUG][       Thread-609758][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:57:55,951 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:57:55,951 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:57:55,993 [DEBUG][       Thread-609758][   transport.py][1871] : userauth is OK
2025-07-01 15:57:56,018 [ INFO][       Thread-609758][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:57:56,019 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:57:56,644 [DEBUG][       Thread-609758][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:57:56,644 [DEBUG][       Thread-609758][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:57:56,688 [DEBUG][       Thread-609758][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:57:56,688 [DEBUG][       Thread-609758][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:57:56,691 [DEBUG][       Thread-609758][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:57:56,703 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:57:56,703 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:57:56,704 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:57:56,705 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:57:56,708 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:57:56,708 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:57:56,708 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:57:56,708 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:57:56,708 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.581536 -999.00  +13.80  32.43     51   +4.00 1 2 2 1 1   887    0 9.65 -0.36 ----- 35.0 32.4 28.0 38.4 15.8 -22.1 15.3 -21.3 15.5 -21.6 15.9 -21.6
2025-07-01 15:57:56,708 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:57:56,708 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:57:56,708 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.581536
2025-07-01 15:57:56,709 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:57:56,709 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:57:56,709 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:57:56,709 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:57:56,709 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:57:56,709 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:57:24', tmtdew=11.38, humidity=46.12, cloud=0.0, wind=32.82, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:57:24.710', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:57:56,710 [DEBUG][       Thread-609758][   transport.py][1871] : EOF in transport thread
2025-07-01 15:57:56,783 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:57:56,795 [DEBUG][       Thread-609761][   transport.py][1871] : starting thread (client mode): 0x81e7580
2025-07-01 15:57:56,795 [DEBUG][       Thread-609761][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:57:56,810 [DEBUG][       Thread-609761][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:57:56,810 [ INFO][       Thread-609761][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:57:56,818 [DEBUG][       Thread-609761][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:57:56,818 [DEBUG][       Thread-609761][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:57:56,818 [DEBUG][       Thread-609761][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:57:56,818 [DEBUG][       Thread-609761][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:57:56,818 [DEBUG][       Thread-609761][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:57:56,818 [DEBUG][       Thread-609761][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:57:56,818 [DEBUG][       Thread-609761][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:57:56,818 [DEBUG][       Thread-609761][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:57:56,818 [DEBUG][       Thread-609761][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:57:56,818 [DEBUG][       Thread-609761][   transport.py][1871] : client lang: <none>
2025-07-01 15:57:56,818 [DEBUG][       Thread-609761][   transport.py][1871] : server lang: <none>
2025-07-01 15:57:56,818 [DEBUG][       Thread-609761][   transport.py][1871] : kex follows: False
2025-07-01 15:57:56,818 [DEBUG][       Thread-609761][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:57:56,818 [DEBUG][       Thread-609761][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:57:56,818 [DEBUG][       Thread-609761][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:57:56,818 [DEBUG][       Thread-609761][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:57:56,818 [DEBUG][       Thread-609761][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:57:56,818 [DEBUG][       Thread-609761][   transport.py][1871] : Compression: none
2025-07-01 15:57:56,818 [DEBUG][       Thread-609761][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:57:56,875 [DEBUG][       Thread-609761][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:57:56,875 [DEBUG][       Thread-609761][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:57:56,875 [DEBUG][       Thread-609761][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:57:56,875 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:57:56,875 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:57:56,933 [DEBUG][       Thread-609761][   transport.py][1871] : userauth is OK
2025-07-01 15:57:56,933 [DEBUG][       Thread-609761][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:57:56,933 [DEBUG][       Thread-609761][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:57:56,933 [DEBUG][       Thread-609761][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:57:56,933 [DEBUG][       Thread-609761][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:57:56,948 [ INFO][       Thread-609761][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:57:56,948 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:57:56,948 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:57:57,934 [DEBUG][Thread-609763 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:57:57,967 [DEBUG][       Thread-609761][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:57:57,967 [DEBUG][       Thread-609761][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:57:58,016 [DEBUG][       Thread-609761][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:57:58,016 [DEBUG][       Thread-609761][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:57:58,025 [DEBUG][       Thread-609761][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:57:58,036 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:57:58,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-07-01 15:57: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') -> 00000000
2025-07-01 15:57:58,053 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:57:58,054 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:57:58,054 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:57:58,062 [DEBUG][       Thread-609761][   transport.py][1871] : EOF in transport thread
2025-07-01 15:58:06,954 [DEBUG][Thread-609764 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:58:08,061 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:58:08,061 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:58:08,062 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:58:08,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-07-01 15:58:08,530 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 57, 56), 11.38, 46.11, 0.0, 31.23, 13.9, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:58:08,530 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:57:56
2025-07-01 15:58:08,613 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:58:08,618 [DEBUG][       Thread-609765][   transport.py][1871] : starting thread (client mode): 0x818e410
2025-07-01 15:58:08,618 [DEBUG][       Thread-609765][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:58:08,639 [DEBUG][       Thread-609765][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:58:08,639 [ INFO][       Thread-609765][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:58:08,642 [DEBUG][       Thread-609765][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:58:08,642 [DEBUG][       Thread-609765][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:58:08,642 [DEBUG][       Thread-609765][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:58:08,642 [DEBUG][       Thread-609765][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:58:08,642 [DEBUG][       Thread-609765][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:58:08,642 [DEBUG][       Thread-609765][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:58:08,642 [DEBUG][       Thread-609765][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:58:08,642 [DEBUG][       Thread-609765][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:58:08,642 [DEBUG][       Thread-609765][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:58:08,643 [DEBUG][       Thread-609765][   transport.py][1871] : client lang: <none>
2025-07-01 15:58:08,643 [DEBUG][       Thread-609765][   transport.py][1871] : server lang: <none>
2025-07-01 15:58:08,643 [DEBUG][       Thread-609765][   transport.py][1871] : kex follows: False
2025-07-01 15:58:08,643 [DEBUG][       Thread-609765][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:58:08,643 [DEBUG][       Thread-609765][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:58:08,643 [DEBUG][       Thread-609765][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:58:08,643 [DEBUG][       Thread-609765][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:58:08,643 [DEBUG][       Thread-609765][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:58:08,643 [DEBUG][       Thread-609765][   transport.py][1871] : Compression: none
2025-07-01 15:58:08,643 [DEBUG][       Thread-609765][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:58:08,658 [DEBUG][       Thread-609765][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:58:08,658 [DEBUG][       Thread-609765][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:58:08,658 [DEBUG][       Thread-609765][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:58:08,659 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:58:08,659 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:58:08,659 [DEBUG][       Thread-609765][   transport.py][1871] : userauth is OK
2025-07-01 15:58:08,683 [ INFO][       Thread-609765][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:58:08,683 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:58:09,289 [DEBUG][       Thread-609765][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:58:09,289 [DEBUG][       Thread-609765][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:58:09,333 [DEBUG][       Thread-609765][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:58:09,333 [DEBUG][       Thread-609765][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:58:09,336 [DEBUG][       Thread-609765][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:58:09,349 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:58:09,350 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:58:09,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:58:09,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:58:09,357 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:58:09,358 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:58:09,359 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:58:09,359 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:58:09,359 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.581536 -999.00  +13.80  32.43     51   +4.00 1 2 2 1 1   887    0 9.65 -0.36 ----- 35.0 32.4 28.0 38.4 15.8 -22.1 15.3 -21.3 15.5 -21.6 15.9 -21.6
2025-07-01 15:58:09,359 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:58:09,359 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:58:09,359 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.581536
2025-07-01 15:58:09,360 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:58:09,360 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:58:09,360 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:58:09,361 [DEBUG][       Thread-609765][   transport.py][1871] : EOF in transport thread
2025-07-01 15:58:09,361 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:58:09,361 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:58:09,361 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:57:56', tmtdew=11.38, humidity=46.11, cloud=0.0, wind=31.23, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:57:24.710', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:58:09,445 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:58:09,454 [DEBUG][       Thread-609768][   transport.py][1871] : starting thread (client mode): 0x81735b0
2025-07-01 15:58:09,454 [DEBUG][       Thread-609768][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:58:09,471 [DEBUG][       Thread-609768][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:58:09,471 [ INFO][       Thread-609768][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:58:09,480 [DEBUG][       Thread-609768][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:58:09,480 [DEBUG][       Thread-609768][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:58:09,480 [DEBUG][       Thread-609768][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:58:09,480 [DEBUG][       Thread-609768][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:58:09,480 [DEBUG][       Thread-609768][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:58:09,480 [DEBUG][       Thread-609768][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:58:09,480 [DEBUG][       Thread-609768][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:58:09,480 [DEBUG][       Thread-609768][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:58:09,480 [DEBUG][       Thread-609768][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:58:09,480 [DEBUG][       Thread-609768][   transport.py][1871] : client lang: <none>
2025-07-01 15:58:09,480 [DEBUG][       Thread-609768][   transport.py][1871] : server lang: <none>
2025-07-01 15:58:09,480 [DEBUG][       Thread-609768][   transport.py][1871] : kex follows: False
2025-07-01 15:58:09,480 [DEBUG][       Thread-609768][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:58:09,480 [DEBUG][       Thread-609768][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:58:09,480 [DEBUG][       Thread-609768][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:58:09,480 [DEBUG][       Thread-609768][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:58:09,480 [DEBUG][       Thread-609768][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:58:09,480 [DEBUG][       Thread-609768][   transport.py][1871] : Compression: none
2025-07-01 15:58:09,480 [DEBUG][       Thread-609768][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:58:09,538 [DEBUG][       Thread-609768][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:58:09,539 [DEBUG][       Thread-609768][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:58:09,539 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:58:09,540 [DEBUG][       Thread-609768][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:58:09,541 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:58:09,595 [DEBUG][       Thread-609768][   transport.py][1871] : userauth is OK
2025-07-01 15:58:09,595 [DEBUG][       Thread-609768][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:58:09,595 [DEBUG][       Thread-609768][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:58:09,596 [DEBUG][       Thread-609768][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:58:09,596 [DEBUG][       Thread-609768][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:58:09,614 [ INFO][       Thread-609768][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:58:09,614 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:58:09,615 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:58:10,657 [DEBUG][       Thread-609768][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:58:10,658 [DEBUG][       Thread-609768][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:58:10,708 [DEBUG][       Thread-609768][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:58:10,708 [DEBUG][       Thread-609768][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:58:10,720 [DEBUG][       Thread-609768][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:58:10,729 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:58:10,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-07-01 15:58:10,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-07-01 15:58:10,748 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:58:10,748 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:58:10,749 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:58:10,756 [DEBUG][       Thread-609768][   transport.py][1871] : EOF in transport thread
2025-07-01 15:58:15,971 [DEBUG][Thread-609770 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:58:20,759 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:58:20,760 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:58:20,760 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:58:20,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-07-01 15:58:21,231 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 57, 56), 11.38, 46.11, 0.0, 31.23, 13.9, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:58:21,232 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:57:56
2025-07-01 15:58:21,318 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:58:21,323 [DEBUG][       Thread-609771][   transport.py][1871] : starting thread (client mode): 0x81a69b0
2025-07-01 15:58:21,323 [DEBUG][       Thread-609771][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:58:21,344 [DEBUG][       Thread-609771][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:58:21,344 [ INFO][       Thread-609771][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:58:21,348 [DEBUG][       Thread-609771][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:58:21,348 [DEBUG][       Thread-609771][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:58:21,348 [DEBUG][       Thread-609771][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:58:21,348 [DEBUG][       Thread-609771][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:58:21,348 [DEBUG][       Thread-609771][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:58:21,348 [DEBUG][       Thread-609771][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:58:21,348 [DEBUG][       Thread-609771][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:58:21,348 [DEBUG][       Thread-609771][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:58:21,348 [DEBUG][       Thread-609771][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:58:21,348 [DEBUG][       Thread-609771][   transport.py][1871] : client lang: <none>
2025-07-01 15:58:21,348 [DEBUG][       Thread-609771][   transport.py][1871] : server lang: <none>
2025-07-01 15:58:21,348 [DEBUG][       Thread-609771][   transport.py][1871] : kex follows: False
2025-07-01 15:58:21,348 [DEBUG][       Thread-609771][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:58:21,348 [DEBUG][       Thread-609771][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:58:21,348 [DEBUG][       Thread-609771][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:58:21,348 [DEBUG][       Thread-609771][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:58:21,348 [DEBUG][       Thread-609771][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:58:21,349 [DEBUG][       Thread-609771][   transport.py][1871] : Compression: none
2025-07-01 15:58:21,349 [DEBUG][       Thread-609771][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:58:21,366 [DEBUG][       Thread-609771][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:58:21,366 [DEBUG][       Thread-609771][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:58:21,367 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:58:21,367 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:58:21,367 [DEBUG][       Thread-609771][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:58:21,368 [DEBUG][       Thread-609771][   transport.py][1871] : userauth is OK
2025-07-01 15:58:21,381 [ INFO][       Thread-609771][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:58:21,381 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:58:22,071 [DEBUG][       Thread-609771][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:58:22,071 [DEBUG][       Thread-609771][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:58:22,113 [DEBUG][       Thread-609771][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:58:22,113 [DEBUG][       Thread-609771][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:58:22,117 [DEBUG][       Thread-609771][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:58:22,128 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:58:22,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:58:22,130 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:58:22,132 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:58:22,138 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:58:22,140 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:58:22,140 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:58:22,141 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:58:22,141 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.581536 -999.00  +13.80  32.43     51   +4.00 1 2 2 1 1   887    0 9.65 -0.36 ----- 35.0 32.4 28.0 38.4 15.8 -22.1 15.3 -21.3 15.5 -21.6 15.9 -21.6
2025-07-01 15:58:22,141 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:58:22,141 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:58:22,141 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.581536
2025-07-01 15:58:22,142 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:58:22,142 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:58:22,143 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:58:22,143 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:58:22,143 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:58:22,143 [DEBUG][       Thread-609771][   transport.py][1871] : EOF in transport thread
2025-07-01 15:58:22,143 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:57:56', tmtdew=11.38, humidity=46.11, cloud=0.0, wind=31.23, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:57:24.710', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:58:22,227 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:58:22,238 [DEBUG][       Thread-609774][   transport.py][1871] : starting thread (client mode): 0x75a82e0
2025-07-01 15:58:22,239 [DEBUG][       Thread-609774][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:58:22,253 [DEBUG][       Thread-609774][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:58:22,253 [ INFO][       Thread-609774][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:58:22,261 [DEBUG][       Thread-609774][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:58:22,261 [DEBUG][       Thread-609774][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:58:22,261 [DEBUG][       Thread-609774][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:58:22,261 [DEBUG][       Thread-609774][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:58:22,261 [DEBUG][       Thread-609774][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:58:22,261 [DEBUG][       Thread-609774][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:58:22,261 [DEBUG][       Thread-609774][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:58:22,261 [DEBUG][       Thread-609774][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:58:22,261 [DEBUG][       Thread-609774][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:58:22,261 [DEBUG][       Thread-609774][   transport.py][1871] : client lang: <none>
2025-07-01 15:58:22,261 [DEBUG][       Thread-609774][   transport.py][1871] : server lang: <none>
2025-07-01 15:58:22,261 [DEBUG][       Thread-609774][   transport.py][1871] : kex follows: False
2025-07-01 15:58:22,261 [DEBUG][       Thread-609774][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:58:22,261 [DEBUG][       Thread-609774][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:58:22,261 [DEBUG][       Thread-609774][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:58:22,261 [DEBUG][       Thread-609774][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:58:22,261 [DEBUG][       Thread-609774][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:58:22,261 [DEBUG][       Thread-609774][   transport.py][1871] : Compression: none
2025-07-01 15:58:22,261 [DEBUG][       Thread-609774][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:58:22,318 [DEBUG][       Thread-609774][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:58:22,318 [DEBUG][       Thread-609774][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:58:22,319 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:58:22,320 [DEBUG][       Thread-609774][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:58:22,320 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:58:22,375 [DEBUG][       Thread-609774][   transport.py][1871] : userauth is OK
2025-07-01 15:58:22,375 [DEBUG][       Thread-609774][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:58:22,375 [DEBUG][       Thread-609774][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:58:22,375 [DEBUG][       Thread-609774][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:58:22,375 [DEBUG][       Thread-609774][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:58:22,399 [ INFO][       Thread-609774][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:58:22,400 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:58:22,400 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:58:23,425 [DEBUG][       Thread-609774][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:58:23,425 [DEBUG][       Thread-609774][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:58:23,476 [DEBUG][       Thread-609774][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:58:23,476 [DEBUG][       Thread-609774][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:58:23,485 [DEBUG][       Thread-609774][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:58:23,494 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:58:23,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')
2025-07-01 15:58:23,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-07-01 15:58:23,512 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:58:23,513 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:58:23,513 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:58:23,521 [DEBUG][       Thread-609774][   transport.py][1871] : EOF in transport thread
2025-07-01 15:58:24,999 [DEBUG][Thread-609776 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:58:33,523 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:58:33,524 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:58:33,524 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:58:33,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-07-01 15:58:34,002 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 58, 27), 11.34, 46.37, 0.0, 34.17, 13.97, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:58:34,002 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:58:27
2025-07-01 15:58:34,019 [DEBUG][Thread-609777 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:58:34,089 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:58:34,094 [DEBUG][       Thread-609778][   transport.py][1871] : starting thread (client mode): 0x81e4730
2025-07-01 15:58:34,094 [DEBUG][       Thread-609778][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:58:34,115 [DEBUG][       Thread-609778][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:58:34,115 [ INFO][       Thread-609778][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:58:34,119 [DEBUG][       Thread-609778][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:58:34,119 [DEBUG][       Thread-609778][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:58:34,119 [DEBUG][       Thread-609778][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:58:34,119 [DEBUG][       Thread-609778][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:58:34,119 [DEBUG][       Thread-609778][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:58:34,119 [DEBUG][       Thread-609778][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:58:34,119 [DEBUG][       Thread-609778][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:58:34,119 [DEBUG][       Thread-609778][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:58:34,119 [DEBUG][       Thread-609778][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:58:34,119 [DEBUG][       Thread-609778][   transport.py][1871] : client lang: <none>
2025-07-01 15:58:34,119 [DEBUG][       Thread-609778][   transport.py][1871] : server lang: <none>
2025-07-01 15:58:34,119 [DEBUG][       Thread-609778][   transport.py][1871] : kex follows: False
2025-07-01 15:58:34,119 [DEBUG][       Thread-609778][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:58:34,119 [DEBUG][       Thread-609778][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:58:34,120 [DEBUG][       Thread-609778][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:58:34,120 [DEBUG][       Thread-609778][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:58:34,120 [DEBUG][       Thread-609778][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:58:34,120 [DEBUG][       Thread-609778][   transport.py][1871] : Compression: none
2025-07-01 15:58:34,120 [DEBUG][       Thread-609778][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:58:34,137 [DEBUG][       Thread-609778][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:58:34,137 [DEBUG][       Thread-609778][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:58:34,138 [DEBUG][       Thread-609778][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:58:34,138 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:58:34,138 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:58:34,139 [DEBUG][       Thread-609778][   transport.py][1871] : userauth is OK
2025-07-01 15:58:34,152 [ INFO][       Thread-609778][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:58:34,152 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:58:34,766 [DEBUG][       Thread-609778][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:58:34,767 [DEBUG][       Thread-609778][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:58:34,809 [DEBUG][       Thread-609778][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:58:34,809 [DEBUG][       Thread-609778][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:58:34,812 [DEBUG][       Thread-609778][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:58:34,835 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:58:34,835 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:58:34,837 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:58:34,839 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:58:34,844 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:58:34,846 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:58:34,846 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:58:34,847 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:58:34,847 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.581884 -999.00  +13.90  37.17     51   +3.90 1 2 2 1 1   887    0 9.62 1.08 ----- 30.6 37.2 27.4 44.2 15.8 -22.6 15.3 -22.1 15.4 -21.9 16.0 -21.9
2025-07-01 15:58:34,847 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:58:34,847 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:58:34,847 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.581884
2025-07-01 15:58:34,848 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:58:34,848 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:58:34,848 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:58:34,848 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:58:34,848 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:58:34,849 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:58:27', tmtdew=11.34, humidity=46.37, cloud=0.0, wind=34.17, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:57:54.778', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:58:34,850 [DEBUG][       Thread-609778][   transport.py][1871] : EOF in transport thread
2025-07-01 15:58:34,937 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:58:34,949 [DEBUG][       Thread-609781][   transport.py][1871] : starting thread (client mode): 0x8157160
2025-07-01 15:58:34,949 [DEBUG][       Thread-609781][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:58:34,965 [DEBUG][       Thread-609781][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:58:34,965 [ INFO][       Thread-609781][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:58:34,973 [DEBUG][       Thread-609781][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:58:34,973 [DEBUG][       Thread-609781][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:58:34,973 [DEBUG][       Thread-609781][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:58:34,973 [DEBUG][       Thread-609781][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:58:34,973 [DEBUG][       Thread-609781][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:58:34,973 [DEBUG][       Thread-609781][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:58:34,973 [DEBUG][       Thread-609781][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:58:34,973 [DEBUG][       Thread-609781][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:58:34,973 [DEBUG][       Thread-609781][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:58:34,973 [DEBUG][       Thread-609781][   transport.py][1871] : client lang: <none>
2025-07-01 15:58:34,973 [DEBUG][       Thread-609781][   transport.py][1871] : server lang: <none>
2025-07-01 15:58:34,973 [DEBUG][       Thread-609781][   transport.py][1871] : kex follows: False
2025-07-01 15:58:34,973 [DEBUG][       Thread-609781][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:58:34,973 [DEBUG][       Thread-609781][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:58:34,973 [DEBUG][       Thread-609781][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:58:34,973 [DEBUG][       Thread-609781][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:58:34,973 [DEBUG][       Thread-609781][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:58:34,974 [DEBUG][       Thread-609781][   transport.py][1871] : Compression: none
2025-07-01 15:58:34,974 [DEBUG][       Thread-609781][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:58:35,030 [DEBUG][       Thread-609781][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:58:35,031 [DEBUG][       Thread-609781][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:58:35,031 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:58:35,032 [DEBUG][       Thread-609781][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:58:35,033 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:58:35,086 [DEBUG][       Thread-609781][   transport.py][1871] : userauth is OK
2025-07-01 15:58:35,087 [DEBUG][       Thread-609781][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:58:35,087 [DEBUG][       Thread-609781][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:58:35,087 [DEBUG][       Thread-609781][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:58:35,087 [DEBUG][       Thread-609781][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:58:35,107 [ INFO][       Thread-609781][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:58:35,108 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:58:35,108 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:58:36,124 [DEBUG][       Thread-609781][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:58:36,124 [DEBUG][       Thread-609781][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:58:36,172 [DEBUG][       Thread-609781][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:58:36,172 [DEBUG][       Thread-609781][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:58:36,181 [DEBUG][       Thread-609781][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:58:36,190 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:58:36,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')
2025-07-01 15:58:36,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-07-01 15:58:36,208 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:58:36,208 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:58:36,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:58:36,217 [DEBUG][       Thread-609781][   transport.py][1871] : EOF in transport thread
2025-07-01 15:58:37,786 [DEBUG][Thread-609783 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:58:43,040 [DEBUG][Thread-609784 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:58:46,216 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:58:46,216 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:58:46,216 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:58:46,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-07-01 15:58:46,678 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 58, 27), 11.34, 46.37, 0.0, 34.17, 13.97, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:58:46,678 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:58:27
2025-07-01 15:58:46,763 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:58:46,767 [DEBUG][       Thread-609785][   transport.py][1871] : starting thread (client mode): 0x818faf0
2025-07-01 15:58:46,767 [DEBUG][       Thread-609785][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:58:46,788 [DEBUG][       Thread-609785][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:58:46,788 [ INFO][       Thread-609785][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:58:46,791 [DEBUG][       Thread-609785][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:58:46,791 [DEBUG][       Thread-609785][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:58:46,791 [DEBUG][       Thread-609785][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:58:46,791 [DEBUG][       Thread-609785][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:58:46,791 [DEBUG][       Thread-609785][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:58:46,791 [DEBUG][       Thread-609785][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:58:46,791 [DEBUG][       Thread-609785][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:58:46,791 [DEBUG][       Thread-609785][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:58:46,791 [DEBUG][       Thread-609785][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:58:46,791 [DEBUG][       Thread-609785][   transport.py][1871] : client lang: <none>
2025-07-01 15:58:46,791 [DEBUG][       Thread-609785][   transport.py][1871] : server lang: <none>
2025-07-01 15:58:46,791 [DEBUG][       Thread-609785][   transport.py][1871] : kex follows: False
2025-07-01 15:58:46,791 [DEBUG][       Thread-609785][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:58:46,791 [DEBUG][       Thread-609785][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:58:46,791 [DEBUG][       Thread-609785][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:58:46,791 [DEBUG][       Thread-609785][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:58:46,791 [DEBUG][       Thread-609785][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:58:46,791 [DEBUG][       Thread-609785][   transport.py][1871] : Compression: none
2025-07-01 15:58:46,791 [DEBUG][       Thread-609785][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:58:46,808 [DEBUG][       Thread-609785][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:58:46,808 [DEBUG][       Thread-609785][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:58:46,809 [DEBUG][       Thread-609785][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:58:46,809 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:58:46,809 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:58:46,810 [DEBUG][       Thread-609785][   transport.py][1871] : userauth is OK
2025-07-01 15:58:46,835 [ INFO][       Thread-609785][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:58:46,836 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:58:47,467 [DEBUG][       Thread-609785][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:58:47,467 [DEBUG][       Thread-609785][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:58:47,509 [DEBUG][       Thread-609785][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:58:47,509 [DEBUG][       Thread-609785][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:58:47,512 [DEBUG][       Thread-609785][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:58:47,526 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:58:47,527 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:58:47,529 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:58:47,530 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:58:47,536 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:58:47,538 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:58:47,538 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:58:47,539 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:58:47,539 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.581884 -999.00  +13.90  37.17     51   +3.90 1 2 2 1 1   887    0 9.62 1.08 ----- 30.6 37.2 27.4 44.2 15.8 -22.6 15.3 -22.1 15.4 -21.9 16.0 -21.9
2025-07-01 15:58:47,539 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:58:47,539 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:58:47,539 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.581884
2025-07-01 15:58:47,540 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:58:47,540 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:58:47,540 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:58:47,540 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:58:47,540 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:58:47,541 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:58:27', tmtdew=11.34, humidity=46.37, cloud=0.0, wind=34.17, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:57:54.778', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:58:47,541 [DEBUG][       Thread-609785][   transport.py][1871] : EOF in transport thread
2025-07-01 15:58:47,625 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:58:47,635 [DEBUG][       Thread-609788][   transport.py][1871] : starting thread (client mode): 0x8157160
2025-07-01 15:58:47,635 [DEBUG][       Thread-609788][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:58:47,650 [DEBUG][       Thread-609788][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:58:47,650 [ INFO][       Thread-609788][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:58:47,658 [DEBUG][       Thread-609788][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:58:47,658 [DEBUG][       Thread-609788][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:58:47,658 [DEBUG][       Thread-609788][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:58:47,658 [DEBUG][       Thread-609788][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:58:47,658 [DEBUG][       Thread-609788][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:58:47,658 [DEBUG][       Thread-609788][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:58:47,658 [DEBUG][       Thread-609788][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:58:47,658 [DEBUG][       Thread-609788][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:58:47,658 [DEBUG][       Thread-609788][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:58:47,658 [DEBUG][       Thread-609788][   transport.py][1871] : client lang: <none>
2025-07-01 15:58:47,658 [DEBUG][       Thread-609788][   transport.py][1871] : server lang: <none>
2025-07-01 15:58:47,658 [DEBUG][       Thread-609788][   transport.py][1871] : kex follows: False
2025-07-01 15:58:47,658 [DEBUG][       Thread-609788][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:58:47,658 [DEBUG][       Thread-609788][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:58:47,658 [DEBUG][       Thread-609788][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:58:47,658 [DEBUG][       Thread-609788][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:58:47,659 [DEBUG][       Thread-609788][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:58:47,659 [DEBUG][       Thread-609788][   transport.py][1871] : Compression: none
2025-07-01 15:58:47,659 [DEBUG][       Thread-609788][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:58:47,713 [DEBUG][       Thread-609788][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:58:47,713 [DEBUG][       Thread-609788][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:58:47,714 [DEBUG][       Thread-609788][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:58:47,714 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:58:47,714 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:58:47,771 [DEBUG][       Thread-609788][   transport.py][1871] : userauth is OK
2025-07-01 15:58:47,771 [DEBUG][       Thread-609788][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:58:47,772 [DEBUG][       Thread-609788][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:58:47,772 [DEBUG][       Thread-609788][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:58:47,772 [DEBUG][       Thread-609788][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:58:47,791 [ INFO][       Thread-609788][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:58:47,791 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:58:47,791 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:58:48,829 [DEBUG][       Thread-609788][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:58:48,829 [DEBUG][       Thread-609788][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:58:48,880 [DEBUG][       Thread-609788][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:58:48,880 [DEBUG][       Thread-609788][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:58:48,889 [DEBUG][       Thread-609788][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:58:48,899 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:58:48,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-07-01 15:58:48,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-07-01 15:58:48,917 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:58:48,917 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:58:48,918 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:58:48,926 [DEBUG][       Thread-609788][   transport.py][1871] : EOF in transport thread
2025-07-01 15:58:52,071 [DEBUG][Thread-609790 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:58:58,918 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:58:58,918 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:58:58,918 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:58:58,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-07-01 15:58:59,362 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 58, 27), 11.34, 46.37, 0.0, 34.17, 13.97, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:58:59,362 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:58:27
2025-07-01 15:58:59,447 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:58:59,452 [DEBUG][       Thread-609791][   transport.py][1871] : starting thread (client mode): 0x818fb50
2025-07-01 15:58:59,452 [DEBUG][       Thread-609791][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:58:59,472 [DEBUG][       Thread-609791][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:58:59,472 [ INFO][       Thread-609791][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:58:59,473 [DEBUG][       Thread-609791][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:58:59,473 [DEBUG][       Thread-609791][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:58:59,474 [DEBUG][       Thread-609791][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:58:59,474 [DEBUG][       Thread-609791][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:58:59,474 [DEBUG][       Thread-609791][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:58:59,474 [DEBUG][       Thread-609791][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:58:59,474 [DEBUG][       Thread-609791][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:58:59,474 [DEBUG][       Thread-609791][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:58:59,474 [DEBUG][       Thread-609791][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:58:59,474 [DEBUG][       Thread-609791][   transport.py][1871] : client lang: <none>
2025-07-01 15:58:59,474 [DEBUG][       Thread-609791][   transport.py][1871] : server lang: <none>
2025-07-01 15:58:59,474 [DEBUG][       Thread-609791][   transport.py][1871] : kex follows: False
2025-07-01 15:58:59,474 [DEBUG][       Thread-609791][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:58:59,474 [DEBUG][       Thread-609791][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:58:59,474 [DEBUG][       Thread-609791][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:58:59,474 [DEBUG][       Thread-609791][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:58:59,474 [DEBUG][       Thread-609791][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:58:59,474 [DEBUG][       Thread-609791][   transport.py][1871] : Compression: none
2025-07-01 15:58:59,474 [DEBUG][       Thread-609791][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:58:59,482 [DEBUG][       Thread-609791][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:58:59,482 [DEBUG][       Thread-609791][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:58:59,482 [DEBUG][       Thread-609791][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:58:59,483 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:58:59,483 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:58:59,483 [DEBUG][       Thread-609791][   transport.py][1871] : userauth is OK
2025-07-01 15:58:59,507 [ INFO][       Thread-609791][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:58:59,508 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:59:00,151 [DEBUG][       Thread-609791][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:59:00,151 [DEBUG][       Thread-609791][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:59:00,192 [DEBUG][       Thread-609791][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:59:00,192 [DEBUG][       Thread-609791][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:59:00,195 [DEBUG][       Thread-609791][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:59:00,209 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:59:00,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:59:00,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:59:00,210 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:59:00,212 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:59:00,213 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:59:00,213 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:59:00,213 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:59:00,213 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.582578 -999.00  +13.80  36.35     50   +3.80 1 2 2 1 1   887    0 9.71 4.02 ----- 32.5 36.4 21.9 52.6 15.7 -23.0 15.2 -22.8 15.5 -22.2 15.9 -22.4
2025-07-01 15:59:00,213 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:59:00,213 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:59:00,213 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.582578
2025-07-01 15:59:00,213 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:59:00,213 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:59:00,214 [DEBUG][       Thread-609791][   transport.py][1871] : EOF in transport thread
2025-07-01 15:59:00,214 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:59:00,214 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:59:00,214 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:59:00,214 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:58:27', tmtdew=11.34, humidity=46.37, cloud=0.0, wind=34.17, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:58:54.739', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:59:00,290 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:59:00,301 [DEBUG][       Thread-609794][   transport.py][1871] : starting thread (client mode): 0x81736d0
2025-07-01 15:59:00,302 [DEBUG][       Thread-609794][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:59:00,319 [DEBUG][       Thread-609794][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:59:00,319 [ INFO][       Thread-609794][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:59:00,332 [DEBUG][       Thread-609794][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:59:00,332 [DEBUG][       Thread-609794][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:59:00,332 [DEBUG][       Thread-609794][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:59:00,332 [DEBUG][       Thread-609794][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:59:00,332 [DEBUG][       Thread-609794][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:59:00,332 [DEBUG][       Thread-609794][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:59:00,332 [DEBUG][       Thread-609794][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:59:00,332 [DEBUG][       Thread-609794][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:59:00,332 [DEBUG][       Thread-609794][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:59:00,332 [DEBUG][       Thread-609794][   transport.py][1871] : client lang: <none>
2025-07-01 15:59:00,332 [DEBUG][       Thread-609794][   transport.py][1871] : server lang: <none>
2025-07-01 15:59:00,332 [DEBUG][       Thread-609794][   transport.py][1871] : kex follows: False
2025-07-01 15:59:00,332 [DEBUG][       Thread-609794][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:59:00,332 [DEBUG][       Thread-609794][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:59:00,332 [DEBUG][       Thread-609794][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:59:00,332 [DEBUG][       Thread-609794][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:59:00,332 [DEBUG][       Thread-609794][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:59:00,332 [DEBUG][       Thread-609794][   transport.py][1871] : Compression: none
2025-07-01 15:59:00,332 [DEBUG][       Thread-609794][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:59:00,389 [DEBUG][       Thread-609794][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:59:00,389 [DEBUG][       Thread-609794][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:59:00,389 [DEBUG][       Thread-609794][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:59:00,389 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:59:00,389 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:59:00,446 [DEBUG][       Thread-609794][   transport.py][1871] : userauth is OK
2025-07-01 15:59:00,446 [DEBUG][       Thread-609794][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:59:00,446 [DEBUG][       Thread-609794][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:59:00,446 [DEBUG][       Thread-609794][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:59:00,446 [DEBUG][       Thread-609794][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:59:00,460 [ INFO][       Thread-609794][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:59:00,460 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:59:00,460 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:59:01,087 [DEBUG][Thread-609796 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:59:01,514 [DEBUG][       Thread-609794][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:59:01,514 [DEBUG][       Thread-609794][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:59:01,566 [DEBUG][       Thread-609794][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:59:01,566 [DEBUG][       Thread-609794][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:59:01,574 [DEBUG][       Thread-609794][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:59:01,582 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:59:01,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-07-01 15:59:01,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-07-01 15:59:01,599 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:59:01,599 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:59:01,600 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:59:01,607 [DEBUG][       Thread-609794][   transport.py][1871] : EOF in transport thread
2025-07-01 15:59:10,108 [DEBUG][Thread-609797 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:59:11,610 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:59:11,610 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:59:11,610 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:59:11,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-07-01 15:59:12,086 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 58, 59), 11.31, 46.46, 0.0, 29.29, 13.97, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:59:12,086 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:58:59
2025-07-01 15:59:12,170 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:59:12,174 [DEBUG][       Thread-609798][   transport.py][1871] : starting thread (client mode): 0x818ef80
2025-07-01 15:59:12,174 [DEBUG][       Thread-609798][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:59:12,194 [DEBUG][       Thread-609798][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:59:12,194 [ INFO][       Thread-609798][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:59:12,197 [DEBUG][       Thread-609798][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:59:12,197 [DEBUG][       Thread-609798][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:59:12,197 [DEBUG][       Thread-609798][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:59:12,197 [DEBUG][       Thread-609798][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:59:12,197 [DEBUG][       Thread-609798][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:59:12,198 [DEBUG][       Thread-609798][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:59:12,198 [DEBUG][       Thread-609798][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:59:12,198 [DEBUG][       Thread-609798][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:59:12,198 [DEBUG][       Thread-609798][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:59:12,198 [DEBUG][       Thread-609798][   transport.py][1871] : client lang: <none>
2025-07-01 15:59:12,198 [DEBUG][       Thread-609798][   transport.py][1871] : server lang: <none>
2025-07-01 15:59:12,198 [DEBUG][       Thread-609798][   transport.py][1871] : kex follows: False
2025-07-01 15:59:12,198 [DEBUG][       Thread-609798][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:59:12,198 [DEBUG][       Thread-609798][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:59:12,198 [DEBUG][       Thread-609798][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:59:12,198 [DEBUG][       Thread-609798][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:59:12,198 [DEBUG][       Thread-609798][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:59:12,198 [DEBUG][       Thread-609798][   transport.py][1871] : Compression: none
2025-07-01 15:59:12,198 [DEBUG][       Thread-609798][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:59:12,215 [DEBUG][       Thread-609798][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:59:12,215 [DEBUG][       Thread-609798][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:59:12,216 [DEBUG][       Thread-609798][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:59:12,216 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:59:12,216 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:59:12,217 [DEBUG][       Thread-609798][   transport.py][1871] : userauth is OK
2025-07-01 15:59:12,242 [ INFO][       Thread-609798][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:59:12,243 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:59:12,885 [DEBUG][       Thread-609798][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:59:12,885 [DEBUG][       Thread-609798][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:59:12,929 [DEBUG][       Thread-609798][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:59:12,929 [DEBUG][       Thread-609798][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:59:12,933 [DEBUG][       Thread-609798][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:59:12,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:59:12,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:59:12,947 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:59:12,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:59:12,955 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:59:12,957 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:59:12,957 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:59:12,958 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:59:12,958 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.582578 -999.00  +13.80  36.35     50   +3.80 1 2 2 1 1   887    0 9.71 4.02 ----- 32.5 36.4 21.9 52.6 15.7 -23.0 15.2 -22.8 15.5 -22.2 15.9 -22.4
2025-07-01 15:59:12,958 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:59:12,958 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:59:12,958 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.582578
2025-07-01 15:59:12,959 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:59:12,960 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:59:12,960 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:59:12,960 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:59:12,960 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:59:12,960 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:58:59', tmtdew=11.31, humidity=46.46, cloud=0.0, wind=29.29, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:58:54.739', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:59:12,961 [DEBUG][       Thread-609798][   transport.py][1871] : EOF in transport thread
2025-07-01 15:59:13,044 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:59:13,053 [DEBUG][       Thread-609801][   transport.py][1871] : starting thread (client mode): 0x81e5540
2025-07-01 15:59:13,054 [DEBUG][       Thread-609801][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:59:13,073 [DEBUG][       Thread-609801][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:59:13,073 [ INFO][       Thread-609801][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:59:13,085 [DEBUG][       Thread-609801][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:59:13,086 [DEBUG][       Thread-609801][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:59:13,086 [DEBUG][       Thread-609801][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:59:13,086 [DEBUG][       Thread-609801][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:59:13,086 [DEBUG][       Thread-609801][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:59:13,086 [DEBUG][       Thread-609801][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:59:13,086 [DEBUG][       Thread-609801][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:59:13,086 [DEBUG][       Thread-609801][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:59:13,086 [DEBUG][       Thread-609801][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:59:13,086 [DEBUG][       Thread-609801][   transport.py][1871] : client lang: <none>
2025-07-01 15:59:13,086 [DEBUG][       Thread-609801][   transport.py][1871] : server lang: <none>
2025-07-01 15:59:13,086 [DEBUG][       Thread-609801][   transport.py][1871] : kex follows: False
2025-07-01 15:59:13,086 [DEBUG][       Thread-609801][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:59:13,086 [DEBUG][       Thread-609801][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:59:13,086 [DEBUG][       Thread-609801][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:59:13,086 [DEBUG][       Thread-609801][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:59:13,086 [DEBUG][       Thread-609801][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:59:13,087 [DEBUG][       Thread-609801][   transport.py][1871] : Compression: none
2025-07-01 15:59:13,087 [DEBUG][       Thread-609801][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:59:13,138 [DEBUG][       Thread-609801][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:59:13,139 [DEBUG][       Thread-609801][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:59:13,139 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:59:13,140 [DEBUG][       Thread-609801][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:59:13,141 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:59:13,194 [DEBUG][       Thread-609801][   transport.py][1871] : userauth is OK
2025-07-01 15:59:13,194 [DEBUG][       Thread-609801][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:59:13,194 [DEBUG][       Thread-609801][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:59:13,195 [DEBUG][       Thread-609801][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:59:13,195 [DEBUG][       Thread-609801][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:59:13,214 [ INFO][       Thread-609801][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:59:13,214 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:59:13,215 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:59:14,221 [DEBUG][       Thread-609801][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:59:14,222 [DEBUG][       Thread-609801][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:59:14,275 [DEBUG][       Thread-609801][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:59:14,275 [DEBUG][       Thread-609801][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:59:14,287 [DEBUG][       Thread-609801][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:59:14,297 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:59:14,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-07-01 15:59:14,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-07-01 15:59:14,316 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:59:14,316 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:59:14,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:59:14,324 [DEBUG][       Thread-609801][   transport.py][1871] : EOF in transport thread
2025-07-01 15:59:19,130 [DEBUG][Thread-609803 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:59:24,327 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:59:24,327 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:59:24,328 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:59:24,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-07-01 15:59:24,815 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 58, 59), 11.31, 46.46, 0.0, 29.29, 13.97, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:59:24,815 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:58:59
2025-07-01 15:59:24,899 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:59:24,904 [DEBUG][       Thread-609804][   transport.py][1871] : starting thread (client mode): 0x81a51b0
2025-07-01 15:59:24,904 [DEBUG][       Thread-609804][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:59:24,924 [DEBUG][       Thread-609804][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:59:24,924 [ INFO][       Thread-609804][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:59:24,927 [DEBUG][       Thread-609804][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:59:24,928 [DEBUG][       Thread-609804][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:59:24,928 [DEBUG][       Thread-609804][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:59:24,928 [DEBUG][       Thread-609804][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:59:24,928 [DEBUG][       Thread-609804][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:59:24,928 [DEBUG][       Thread-609804][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:59:24,928 [DEBUG][       Thread-609804][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:59:24,928 [DEBUG][       Thread-609804][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:59:24,928 [DEBUG][       Thread-609804][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:59:24,928 [DEBUG][       Thread-609804][   transport.py][1871] : client lang: <none>
2025-07-01 15:59:24,928 [DEBUG][       Thread-609804][   transport.py][1871] : server lang: <none>
2025-07-01 15:59:24,928 [DEBUG][       Thread-609804][   transport.py][1871] : kex follows: False
2025-07-01 15:59:24,928 [DEBUG][       Thread-609804][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:59:24,928 [DEBUG][       Thread-609804][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:59:24,928 [DEBUG][       Thread-609804][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:59:24,928 [DEBUG][       Thread-609804][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:59:24,928 [DEBUG][       Thread-609804][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:59:24,928 [DEBUG][       Thread-609804][   transport.py][1871] : Compression: none
2025-07-01 15:59:24,928 [DEBUG][       Thread-609804][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:59:24,945 [DEBUG][       Thread-609804][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:59:24,946 [DEBUG][       Thread-609804][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:59:24,946 [DEBUG][       Thread-609804][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:59:24,946 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:59:24,947 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:59:24,948 [DEBUG][       Thread-609804][   transport.py][1871] : userauth is OK
2025-07-01 15:59:24,961 [ INFO][       Thread-609804][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:59:24,962 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:59:25,591 [DEBUG][       Thread-609804][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:59:25,591 [DEBUG][       Thread-609804][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:59:25,633 [DEBUG][       Thread-609804][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:59:25,633 [DEBUG][       Thread-609804][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:59:25,636 [DEBUG][       Thread-609804][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:59:25,648 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:59:25,649 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:59:25,651 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:59:25,653 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:59:25,659 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:59:25,661 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:59:25,661 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:59:25,661 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:59:25,662 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.582578 -999.00  +13.80  36.35     50   +3.80 1 2 2 1 1   887    0 9.71 4.02 ----- 32.5 36.4 21.9 52.6 15.7 -23.0 15.2 -22.8 15.5 -22.2 15.9 -22.4
2025-07-01 15:59:25,662 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:59:25,662 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:59:25,662 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.582578
2025-07-01 15:59:25,662 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:59:25,663 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:59:25,663 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:59:25,663 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:59:25,663 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:59:25,663 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:58:59', tmtdew=11.31, humidity=46.46, cloud=0.0, wind=29.29, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:58:54.739', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:59:25,663 [DEBUG][       Thread-609804][   transport.py][1871] : EOF in transport thread
2025-07-01 15:59:25,747 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:59:25,759 [DEBUG][       Thread-609807][   transport.py][1871] : starting thread (client mode): 0x8170dc0
2025-07-01 15:59:25,759 [DEBUG][       Thread-609807][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:59:25,774 [DEBUG][       Thread-609807][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:59:25,775 [ INFO][       Thread-609807][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:59:25,782 [DEBUG][       Thread-609807][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:59:25,782 [DEBUG][       Thread-609807][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:59:25,782 [DEBUG][       Thread-609807][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:59:25,782 [DEBUG][       Thread-609807][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:59:25,782 [DEBUG][       Thread-609807][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:59:25,782 [DEBUG][       Thread-609807][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:59:25,782 [DEBUG][       Thread-609807][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:59:25,782 [DEBUG][       Thread-609807][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:59:25,782 [DEBUG][       Thread-609807][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:59:25,782 [DEBUG][       Thread-609807][   transport.py][1871] : client lang: <none>
2025-07-01 15:59:25,783 [DEBUG][       Thread-609807][   transport.py][1871] : server lang: <none>
2025-07-01 15:59:25,783 [DEBUG][       Thread-609807][   transport.py][1871] : kex follows: False
2025-07-01 15:59:25,783 [DEBUG][       Thread-609807][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:59:25,783 [DEBUG][       Thread-609807][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:59:25,783 [DEBUG][       Thread-609807][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:59:25,783 [DEBUG][       Thread-609807][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:59:25,783 [DEBUG][       Thread-609807][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:59:25,783 [DEBUG][       Thread-609807][   transport.py][1871] : Compression: none
2025-07-01 15:59:25,783 [DEBUG][       Thread-609807][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:59:25,842 [DEBUG][       Thread-609807][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:59:25,843 [DEBUG][       Thread-609807][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:59:25,843 [DEBUG][       Thread-609807][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:59:25,843 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:59:25,844 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:59:25,899 [DEBUG][       Thread-609807][   transport.py][1871] : userauth is OK
2025-07-01 15:59:25,899 [DEBUG][       Thread-609807][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:59:25,899 [DEBUG][       Thread-609807][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:59:25,899 [DEBUG][       Thread-609807][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:59:25,899 [DEBUG][       Thread-609807][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:59:25,913 [ INFO][       Thread-609807][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:59:25,913 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:59:25,913 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:59:26,938 [DEBUG][       Thread-609807][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:59:26,938 [DEBUG][       Thread-609807][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:59:26,988 [DEBUG][       Thread-609807][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:59:26,989 [DEBUG][       Thread-609807][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:59:26,998 [DEBUG][       Thread-609807][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:59:27,008 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:59:27,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-07-01 15:59:27,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-07-01 15:59:27,027 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:59:27,027 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:59:27,028 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:59:27,036 [DEBUG][       Thread-609807][   transport.py][1871] : EOF in transport thread
2025-07-01 15:59:28,174 [DEBUG][Thread-609809 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:59:37,038 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:59:37,038 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:59:37,038 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:59:37,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-07-01 15:59:37,190 [DEBUG][Thread-609810 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:59:37,532 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 59, 31), 11.39, 46.1, 0.0, 33.95, 13.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:59:37,532 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:59:31
2025-07-01 15:59:37,619 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:59:37,623 [DEBUG][       Thread-609811][   transport.py][1871] : starting thread (client mode): 0x818ee60
2025-07-01 15:59:37,623 [DEBUG][       Thread-609811][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:59:37,644 [DEBUG][       Thread-609811][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:59:37,644 [ INFO][       Thread-609811][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:59:37,647 [DEBUG][       Thread-609811][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:59:37,647 [DEBUG][       Thread-609811][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:59:37,647 [DEBUG][       Thread-609811][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:59:37,647 [DEBUG][       Thread-609811][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:59:37,647 [DEBUG][       Thread-609811][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:59:37,647 [DEBUG][       Thread-609811][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:59:37,647 [DEBUG][       Thread-609811][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:59:37,647 [DEBUG][       Thread-609811][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:59:37,647 [DEBUG][       Thread-609811][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:59:37,647 [DEBUG][       Thread-609811][   transport.py][1871] : client lang: <none>
2025-07-01 15:59:37,647 [DEBUG][       Thread-609811][   transport.py][1871] : server lang: <none>
2025-07-01 15:59:37,647 [DEBUG][       Thread-609811][   transport.py][1871] : kex follows: False
2025-07-01 15:59:37,647 [DEBUG][       Thread-609811][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:59:37,647 [DEBUG][       Thread-609811][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:59:37,647 [DEBUG][       Thread-609811][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:59:37,648 [DEBUG][       Thread-609811][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:59:37,648 [DEBUG][       Thread-609811][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:59:37,648 [DEBUG][       Thread-609811][   transport.py][1871] : Compression: none
2025-07-01 15:59:37,648 [DEBUG][       Thread-609811][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:59:37,664 [DEBUG][       Thread-609811][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:59:37,665 [DEBUG][       Thread-609811][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:59:37,665 [DEBUG][       Thread-609811][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:59:37,665 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:59:37,666 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:59:37,667 [DEBUG][       Thread-609811][   transport.py][1871] : userauth is OK
2025-07-01 15:59:37,691 [ INFO][       Thread-609811][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:59:37,692 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:59:37,816 [DEBUG][Thread-609813 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:59:38,314 [DEBUG][       Thread-609811][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:59:38,314 [DEBUG][       Thread-609811][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:59:38,357 [DEBUG][       Thread-609811][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:59:38,357 [DEBUG][       Thread-609811][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:59:38,360 [DEBUG][       Thread-609811][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:59:38,372 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:59:38,373 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:59:38,375 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:59:38,377 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:59:38,382 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:59:38,384 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:59:38,384 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:59:38,385 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:59:38,385 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.582925 -999.00  +13.80  42.12     50   +3.70 1 2 2 1 1   887    0 10.12 6.61 ----- 39.4 42.1 28.0 54.8 15.7 -23.4 15.2 -23.0 15.4 -22.0 15.9 -22.3
2025-07-01 15:59:38,385 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:59:38,385 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:59:38,385 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.582925
2025-07-01 15:59:38,385 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:59:38,386 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:59:38,386 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:59:38,386 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:59:38,386 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:59:38,386 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:59:31', tmtdew=11.39, humidity=46.1, cloud=0.0, wind=33.95, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:59:24.720', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:59:38,387 [DEBUG][       Thread-609811][   transport.py][1871] : EOF in transport thread
2025-07-01 15:59:38,471 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:59:38,480 [DEBUG][       Thread-609815][   transport.py][1871] : starting thread (client mode): 0x75abd90
2025-07-01 15:59:38,480 [DEBUG][       Thread-609815][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:59:38,495 [DEBUG][       Thread-609815][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:59:38,495 [ INFO][       Thread-609815][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:59:38,504 [DEBUG][       Thread-609815][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:59:38,504 [DEBUG][       Thread-609815][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:59:38,504 [DEBUG][       Thread-609815][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:59:38,504 [DEBUG][       Thread-609815][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:59:38,504 [DEBUG][       Thread-609815][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:59:38,504 [DEBUG][       Thread-609815][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:59:38,504 [DEBUG][       Thread-609815][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:59:38,504 [DEBUG][       Thread-609815][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:59:38,504 [DEBUG][       Thread-609815][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:59:38,504 [DEBUG][       Thread-609815][   transport.py][1871] : client lang: <none>
2025-07-01 15:59:38,504 [DEBUG][       Thread-609815][   transport.py][1871] : server lang: <none>
2025-07-01 15:59:38,504 [DEBUG][       Thread-609815][   transport.py][1871] : kex follows: False
2025-07-01 15:59:38,504 [DEBUG][       Thread-609815][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:59:38,505 [DEBUG][       Thread-609815][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:59:38,505 [DEBUG][       Thread-609815][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:59:38,505 [DEBUG][       Thread-609815][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:59:38,505 [DEBUG][       Thread-609815][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:59:38,505 [DEBUG][       Thread-609815][   transport.py][1871] : Compression: none
2025-07-01 15:59:38,505 [DEBUG][       Thread-609815][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:59:38,562 [DEBUG][       Thread-609815][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:59:38,562 [DEBUG][       Thread-609815][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:59:38,563 [DEBUG][       Thread-609815][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:59:38,563 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:59:38,564 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:59:38,618 [DEBUG][       Thread-609815][   transport.py][1871] : userauth is OK
2025-07-01 15:59:38,618 [DEBUG][       Thread-609815][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:59:38,618 [DEBUG][       Thread-609815][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:59:38,618 [DEBUG][       Thread-609815][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:59:38,618 [DEBUG][       Thread-609815][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:59:38,640 [ INFO][       Thread-609815][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:59:38,641 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:59:38,641 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:59:39,624 [DEBUG][       Thread-609815][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:59:39,625 [DEBUG][       Thread-609815][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:59:39,676 [DEBUG][       Thread-609815][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:59:39,676 [DEBUG][       Thread-609815][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:59:39,693 [DEBUG][       Thread-609815][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:59:39,702 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:59: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-07-01 15:59:39,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-07-01 15:59:39,721 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:59:39,721 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:59:39,721 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:59:39,729 [DEBUG][       Thread-609815][   transport.py][1871] : EOF in transport thread
2025-07-01 15:59:46,210 [DEBUG][Thread-609817 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 15:59:49,732 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 15:59:49,732 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 15:59:49,732 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 15:59:49,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-07-01 15:59:50,225 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 59, 31), 11.39, 46.1, 0.0, 33.95, 13.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 15:59:50,225 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:59:31
2025-07-01 15:59:50,311 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 15:59:50,315 [DEBUG][       Thread-609818][   transport.py][1871] : starting thread (client mode): 0x818c5e0
2025-07-01 15:59:50,315 [DEBUG][       Thread-609818][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:59:50,336 [DEBUG][       Thread-609818][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 15:59:50,336 [ INFO][       Thread-609818][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 15:59:50,339 [DEBUG][       Thread-609818][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:59:50,339 [DEBUG][       Thread-609818][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 15:59:50,339 [DEBUG][       Thread-609818][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:59:50,339 [DEBUG][       Thread-609818][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:59:50,339 [DEBUG][       Thread-609818][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:59:50,339 [DEBUG][       Thread-609818][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:59:50,339 [DEBUG][       Thread-609818][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:59:50,339 [DEBUG][       Thread-609818][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:59:50,339 [DEBUG][       Thread-609818][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:59:50,339 [DEBUG][       Thread-609818][   transport.py][1871] : client lang: <none>
2025-07-01 15:59:50,339 [DEBUG][       Thread-609818][   transport.py][1871] : server lang: <none>
2025-07-01 15:59:50,339 [DEBUG][       Thread-609818][   transport.py][1871] : kex follows: False
2025-07-01 15:59:50,339 [DEBUG][       Thread-609818][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:59:50,339 [DEBUG][       Thread-609818][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:59:50,339 [DEBUG][       Thread-609818][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:59:50,340 [DEBUG][       Thread-609818][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:59:50,340 [DEBUG][       Thread-609818][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:59:50,340 [DEBUG][       Thread-609818][   transport.py][1871] : Compression: none
2025-07-01 15:59:50,340 [DEBUG][       Thread-609818][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:59:50,364 [DEBUG][       Thread-609818][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:59:50,364 [DEBUG][       Thread-609818][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:59:50,365 [DEBUG][       Thread-609818][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 15:59:50,365 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 15:59:50,365 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 15:59:50,366 [DEBUG][       Thread-609818][   transport.py][1871] : userauth is OK
2025-07-01 15:59:50,391 [ INFO][       Thread-609818][   transport.py][1871] : Authentication (password) successful!
2025-07-01 15:59:50,392 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:59:51,033 [DEBUG][       Thread-609818][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:59:51,033 [DEBUG][       Thread-609818][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:59:51,077 [DEBUG][       Thread-609818][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:59:51,077 [DEBUG][       Thread-609818][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:59:51,080 [DEBUG][       Thread-609818][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:59:51,092 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:59:51,092 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 15:59:51,094 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 15:59:51,096 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 15:59:51,102 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:59:51,104 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:59:51,104 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:59:51,105 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 15:59:51,105 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.582925 -999.00  +13.80  42.12     50   +3.70 1 2 2 1 1   887    0 10.12 6.61 ----- 39.4 42.1 28.0 54.8 15.7 -23.4 15.2 -23.0 15.4 -22.0 15.9 -22.3
2025-07-01 15:59:51,105 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 15:59:51,105 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 15:59:51,105 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.582925
2025-07-01 15:59:51,106 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 15:59:51,106 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 15:59:51,106 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 15:59:51,106 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 15:59:51,107 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 15:59:51,107 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:59:31', tmtdew=11.39, humidity=46.1, cloud=0.0, wind=33.95, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:59:24.720', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 15:59:51,107 [DEBUG][       Thread-609818][   transport.py][1871] : EOF in transport thread
2025-07-01 15:59:51,193 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 15:59:51,204 [DEBUG][       Thread-609821][   transport.py][1871] : starting thread (client mode): 0x8156620
2025-07-01 15:59:51,205 [DEBUG][       Thread-609821][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 15:59:51,219 [DEBUG][       Thread-609821][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 15:59:51,219 [ INFO][       Thread-609821][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 15:59:51,226 [DEBUG][       Thread-609821][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 15:59:51,227 [DEBUG][       Thread-609821][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 15:59:51,227 [DEBUG][       Thread-609821][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 15:59:51,227 [DEBUG][       Thread-609821][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:59:51,227 [DEBUG][       Thread-609821][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 15:59:51,227 [DEBUG][       Thread-609821][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:59:51,227 [DEBUG][       Thread-609821][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 15:59:51,227 [DEBUG][       Thread-609821][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 15:59:51,227 [DEBUG][       Thread-609821][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 15:59:51,227 [DEBUG][       Thread-609821][   transport.py][1871] : client lang: <none>
2025-07-01 15:59:51,227 [DEBUG][       Thread-609821][   transport.py][1871] : server lang: <none>
2025-07-01 15:59:51,227 [DEBUG][       Thread-609821][   transport.py][1871] : kex follows: False
2025-07-01 15:59:51,227 [DEBUG][       Thread-609821][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 15:59:51,227 [DEBUG][       Thread-609821][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 15:59:51,227 [DEBUG][       Thread-609821][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 15:59:51,227 [DEBUG][       Thread-609821][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 15:59:51,227 [DEBUG][       Thread-609821][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 15:59:51,227 [DEBUG][       Thread-609821][   transport.py][1871] : Compression: none
2025-07-01 15:59:51,227 [DEBUG][       Thread-609821][   transport.py][1871] : === End of kex handshake ===
2025-07-01 15:59:51,286 [DEBUG][       Thread-609821][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 15:59:51,287 [DEBUG][       Thread-609821][   transport.py][1871] : Switch to new keys ...
2025-07-01 15:59:51,287 [DEBUG][       Thread-609821][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 15:59:51,287 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 15:59:51,288 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 15:59:51,342 [DEBUG][       Thread-609821][   transport.py][1871] : userauth is OK
2025-07-01 15:59:51,342 [DEBUG][       Thread-609821][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 15:59:51,342 [DEBUG][       Thread-609821][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 15:59:51,343 [DEBUG][       Thread-609821][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 15:59:51,343 [DEBUG][       Thread-609821][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 15:59:51,362 [ INFO][       Thread-609821][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 15:59:51,362 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 15:59:51,363 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 15:59:52,384 [DEBUG][       Thread-609821][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 15:59:52,384 [DEBUG][       Thread-609821][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 15:59:52,433 [DEBUG][       Thread-609821][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 15:59:52,434 [DEBUG][       Thread-609821][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 15:59:52,443 [DEBUG][       Thread-609821][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 15:59:52,452 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 15:59: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-07-01 15:59: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-07-01 15:59:52,471 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 15:59:52,471 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 15:59:52,472 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 15:59:52,480 [DEBUG][       Thread-609821][   transport.py][1871] : EOF in transport thread
2025-07-01 15:59:55,253 [DEBUG][Thread-609823 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:00:02,482 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:00:02,482 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:00:02,482 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:00:02,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-07-01 16:00:02,976 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 15, 59, 31), 11.39, 46.1, 0.0, 33.95, 13.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:00:02,976 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 15:59:31
2025-07-01 16:00:03,061 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:00:03,066 [DEBUG][       Thread-609824][   transport.py][1871] : starting thread (client mode): 0x818faf0
2025-07-01 16:00:03,066 [DEBUG][       Thread-609824][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:00:03,082 [DEBUG][       Thread-609824][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:00:03,082 [ INFO][       Thread-609824][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:00:03,086 [DEBUG][       Thread-609824][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:00:03,086 [DEBUG][       Thread-609824][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:00:03,086 [DEBUG][       Thread-609824][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:00:03,086 [DEBUG][       Thread-609824][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:00:03,086 [DEBUG][       Thread-609824][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:00:03,086 [DEBUG][       Thread-609824][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:00:03,086 [DEBUG][       Thread-609824][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:00:03,086 [DEBUG][       Thread-609824][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:00:03,086 [DEBUG][       Thread-609824][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:00:03,086 [DEBUG][       Thread-609824][   transport.py][1871] : client lang: <none>
2025-07-01 16:00:03,086 [DEBUG][       Thread-609824][   transport.py][1871] : server lang: <none>
2025-07-01 16:00:03,086 [DEBUG][       Thread-609824][   transport.py][1871] : kex follows: False
2025-07-01 16:00:03,086 [DEBUG][       Thread-609824][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:00:03,086 [DEBUG][       Thread-609824][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:00:03,086 [DEBUG][       Thread-609824][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:00:03,086 [DEBUG][       Thread-609824][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:00:03,086 [DEBUG][       Thread-609824][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:00:03,086 [DEBUG][       Thread-609824][   transport.py][1871] : Compression: none
2025-07-01 16:00:03,086 [DEBUG][       Thread-609824][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:00:03,102 [DEBUG][       Thread-609824][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:00:03,103 [DEBUG][       Thread-609824][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:00:03,103 [DEBUG][       Thread-609824][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:00:03,103 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:00:03,104 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:00:03,104 [DEBUG][       Thread-609824][   transport.py][1871] : userauth is OK
2025-07-01 16:00:03,117 [ INFO][       Thread-609824][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:00:03,118 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:00:04,273 [DEBUG][Thread-609826 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:00:04,462 [DEBUG][       Thread-609824][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:00:04,462 [DEBUG][       Thread-609824][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:00:04,504 [DEBUG][       Thread-609824][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:00:04,504 [DEBUG][       Thread-609824][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:00:04,506 [DEBUG][       Thread-609824][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:00:04,520 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:00:04,520 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:00:04,520 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:00:04,521 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:00:04,523 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:00:04,524 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:00:04,524 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:00:04,524 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:00:04,524 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.582925 -999.00  +13.80  42.12     50   +3.70 1 2 2 1 1   887    0 10.12 6.61 ----- 39.4 42.1 28.0 54.8 15.7 -23.4 15.2 -23.0 15.4 -22.0 15.9 -22.3
2025-07-01 16:00:04,524 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:00:04,524 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:00:04,524 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.582925
2025-07-01 16:00:04,524 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:00:04,524 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:00:04,524 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:00:04,524 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:00:04,524 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:00:04,525 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T15:59:31', tmtdew=11.39, humidity=46.1, cloud=0.0, wind=33.95, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:59:24.720', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:00:04,525 [DEBUG][       Thread-609824][   transport.py][1871] : EOF in transport thread
2025-07-01 16:00:04,599 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:00:04,609 [DEBUG][       Thread-609828][   transport.py][1871] : starting thread (client mode): 0x75a8190
2025-07-01 16:00:04,609 [DEBUG][       Thread-609828][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:00:04,625 [DEBUG][       Thread-609828][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:00:04,625 [ INFO][       Thread-609828][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:00:04,632 [DEBUG][       Thread-609828][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:00:04,632 [DEBUG][       Thread-609828][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:00:04,632 [DEBUG][       Thread-609828][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:00:04,632 [DEBUG][       Thread-609828][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:00:04,632 [DEBUG][       Thread-609828][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:00:04,632 [DEBUG][       Thread-609828][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:00:04,632 [DEBUG][       Thread-609828][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:00:04,632 [DEBUG][       Thread-609828][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:00:04,632 [DEBUG][       Thread-609828][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:00:04,632 [DEBUG][       Thread-609828][   transport.py][1871] : client lang: <none>
2025-07-01 16:00:04,632 [DEBUG][       Thread-609828][   transport.py][1871] : server lang: <none>
2025-07-01 16:00:04,632 [DEBUG][       Thread-609828][   transport.py][1871] : kex follows: False
2025-07-01 16:00:04,632 [DEBUG][       Thread-609828][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:00:04,633 [DEBUG][       Thread-609828][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:00:04,633 [DEBUG][       Thread-609828][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:00:04,633 [DEBUG][       Thread-609828][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:00:04,633 [DEBUG][       Thread-609828][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:00:04,633 [DEBUG][       Thread-609828][   transport.py][1871] : Compression: none
2025-07-01 16:00:04,633 [DEBUG][       Thread-609828][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:00:04,695 [DEBUG][       Thread-609828][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:00:04,695 [DEBUG][       Thread-609828][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:00:04,695 [DEBUG][       Thread-609828][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:00:04,695 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:00:04,695 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:00:04,758 [DEBUG][       Thread-609828][   transport.py][1871] : userauth is OK
2025-07-01 16:00:04,758 [DEBUG][       Thread-609828][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:00:04,758 [DEBUG][       Thread-609828][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:00:04,758 [DEBUG][       Thread-609828][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:00:04,758 [DEBUG][       Thread-609828][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:00:04,774 [ INFO][       Thread-609828][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:00:04,774 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:00:04,774 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:00:05,893 [DEBUG][       Thread-609828][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:00:05,893 [DEBUG][       Thread-609828][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:00:05,944 [DEBUG][       Thread-609828][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:00:05,944 [DEBUG][       Thread-609828][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:00:05,958 [DEBUG][       Thread-609828][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:00:05,967 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:00:05,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-07-01 16:00:05,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-07-01 16:00:05,986 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:00:05,986 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:00:05,987 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:00:05,995 [DEBUG][       Thread-609828][   transport.py][1871] : EOF in transport thread
2025-07-01 16:00:13,292 [DEBUG][Thread-609830 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:00:15,997 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:00:15,998 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:00:15,998 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:00:16,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-07-01 16:00:16,498 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 0, 2), 11.38, 46.11, 0.0, 32.45, 13.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:00:16,498 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:00:02
2025-07-01 16:00:16,584 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:00:16,589 [DEBUG][       Thread-609831][   transport.py][1871] : starting thread (client mode): 0x818e350
2025-07-01 16:00:16,589 [DEBUG][       Thread-609831][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:00:16,613 [DEBUG][       Thread-609831][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:00:16,613 [ INFO][       Thread-609831][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:00:16,617 [DEBUG][       Thread-609831][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:00:16,617 [DEBUG][       Thread-609831][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:00:16,618 [DEBUG][       Thread-609831][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:00:16,618 [DEBUG][       Thread-609831][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:00:16,618 [DEBUG][       Thread-609831][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:00:16,618 [DEBUG][       Thread-609831][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:00:16,618 [DEBUG][       Thread-609831][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:00:16,618 [DEBUG][       Thread-609831][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:00:16,618 [DEBUG][       Thread-609831][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:00:16,618 [DEBUG][       Thread-609831][   transport.py][1871] : client lang: <none>
2025-07-01 16:00:16,618 [DEBUG][       Thread-609831][   transport.py][1871] : server lang: <none>
2025-07-01 16:00:16,618 [DEBUG][       Thread-609831][   transport.py][1871] : kex follows: False
2025-07-01 16:00:16,618 [DEBUG][       Thread-609831][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:00:16,618 [DEBUG][       Thread-609831][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:00:16,618 [DEBUG][       Thread-609831][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:00:16,618 [DEBUG][       Thread-609831][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:00:16,618 [DEBUG][       Thread-609831][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:00:16,618 [DEBUG][       Thread-609831][   transport.py][1871] : Compression: none
2025-07-01 16:00:16,618 [DEBUG][       Thread-609831][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:00:16,635 [DEBUG][       Thread-609831][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:00:16,636 [DEBUG][       Thread-609831][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:00:16,637 [DEBUG][       Thread-609831][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:00:16,637 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:00:16,637 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:00:16,638 [DEBUG][       Thread-609831][   transport.py][1871] : userauth is OK
2025-07-01 16:00:16,662 [ INFO][       Thread-609831][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:00:16,663 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:00:17,284 [DEBUG][       Thread-609831][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:00:17,284 [DEBUG][       Thread-609831][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:00:17,325 [DEBUG][       Thread-609831][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:00:17,325 [DEBUG][       Thread-609831][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:00:17,329 [DEBUG][       Thread-609831][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:00:17,340 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:00:17,341 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:00:17,343 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:00:17,345 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:00:17,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:00:17,353 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:00:17,353 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:00:17,354 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:00:17,355 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.583273 -999.00  +13.70  42.16     50   +3.60 1 2 2 1 1   887    0 9.84 8.42 ----- 33.1 42.2 12.7 51.0 15.7 -23.1 15.2 -23.7 15.4 -22.2 15.8 -22.4
2025-07-01 16:00:17,355 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:00:17,355 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:00:17,355 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.583273
2025-07-01 16:00:17,356 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:00:17,356 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:00:17,357 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:00:17,357 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:00:17,357 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:00:17,357 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:00:02', tmtdew=11.38, humidity=46.11, cloud=0.0, wind=32.45, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:59:54.787', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:00:17,358 [DEBUG][       Thread-609831][   transport.py][1871] : EOF in transport thread
2025-07-01 16:00:17,436 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:00:17,447 [DEBUG][       Thread-609834][   transport.py][1871] : starting thread (client mode): 0x81da770
2025-07-01 16:00:17,447 [DEBUG][       Thread-609834][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:00:17,463 [DEBUG][       Thread-609834][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:00:17,463 [ INFO][       Thread-609834][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:00:17,471 [DEBUG][       Thread-609834][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:00:17,471 [DEBUG][       Thread-609834][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:00:17,471 [DEBUG][       Thread-609834][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:00:17,471 [DEBUG][       Thread-609834][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:00:17,471 [DEBUG][       Thread-609834][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:00:17,471 [DEBUG][       Thread-609834][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:00:17,471 [DEBUG][       Thread-609834][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:00:17,471 [DEBUG][       Thread-609834][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:00:17,471 [DEBUG][       Thread-609834][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:00:17,471 [DEBUG][       Thread-609834][   transport.py][1871] : client lang: <none>
2025-07-01 16:00:17,471 [DEBUG][       Thread-609834][   transport.py][1871] : server lang: <none>
2025-07-01 16:00:17,471 [DEBUG][       Thread-609834][   transport.py][1871] : kex follows: False
2025-07-01 16:00:17,471 [DEBUG][       Thread-609834][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:00:17,471 [DEBUG][       Thread-609834][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:00:17,471 [DEBUG][       Thread-609834][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:00:17,471 [DEBUG][       Thread-609834][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:00:17,472 [DEBUG][       Thread-609834][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:00:17,472 [DEBUG][       Thread-609834][   transport.py][1871] : Compression: none
2025-07-01 16:00:17,472 [DEBUG][       Thread-609834][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:00:17,537 [DEBUG][       Thread-609834][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:00:17,538 [DEBUG][       Thread-609834][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:00:17,539 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:00:17,539 [DEBUG][       Thread-609834][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:00:17,540 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:00:17,593 [DEBUG][       Thread-609834][   transport.py][1871] : userauth is OK
2025-07-01 16:00:17,594 [DEBUG][       Thread-609834][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:00:17,594 [DEBUG][       Thread-609834][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:00:17,594 [DEBUG][       Thread-609834][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:00:17,594 [DEBUG][       Thread-609834][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:00:17,613 [ INFO][       Thread-609834][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:00:17,614 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:00:17,614 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:00:18,628 [DEBUG][       Thread-609834][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:00:18,629 [DEBUG][       Thread-609834][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:00:18,680 [DEBUG][       Thread-609834][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:00:18,680 [DEBUG][       Thread-609834][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:00:18,691 [DEBUG][       Thread-609834][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:00:18,707 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:00:18,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-07-01 16:00:18,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-07-01 16:00:18,725 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:00:18,726 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:00:18,726 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:00:18,734 [DEBUG][       Thread-609834][   transport.py][1871] : EOF in transport thread
2025-07-01 16:00:22,316 [DEBUG][Thread-609836 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:00:28,736 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:00:28,737 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:00:28,737 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:00:28,740 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:00:29,220 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 0, 2), 11.38, 46.11, 0.0, 32.45, 13.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:00:29,220 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:00:02
2025-07-01 16:00:29,305 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:00:29,311 [DEBUG][       Thread-609837][   transport.py][1871] : starting thread (client mode): 0x818ef80
2025-07-01 16:00:29,311 [DEBUG][       Thread-609837][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:00:29,332 [DEBUG][       Thread-609837][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:00:29,332 [ INFO][       Thread-609837][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:00:29,336 [DEBUG][       Thread-609837][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:00:29,336 [DEBUG][       Thread-609837][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:00:29,336 [DEBUG][       Thread-609837][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:00:29,336 [DEBUG][       Thread-609837][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:00:29,336 [DEBUG][       Thread-609837][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:00:29,336 [DEBUG][       Thread-609837][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:00:29,336 [DEBUG][       Thread-609837][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:00:29,336 [DEBUG][       Thread-609837][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:00:29,336 [DEBUG][       Thread-609837][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:00:29,336 [DEBUG][       Thread-609837][   transport.py][1871] : client lang: <none>
2025-07-01 16:00:29,336 [DEBUG][       Thread-609837][   transport.py][1871] : server lang: <none>
2025-07-01 16:00:29,336 [DEBUG][       Thread-609837][   transport.py][1871] : kex follows: False
2025-07-01 16:00:29,336 [DEBUG][       Thread-609837][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:00:29,336 [DEBUG][       Thread-609837][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:00:29,336 [DEBUG][       Thread-609837][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:00:29,336 [DEBUG][       Thread-609837][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:00:29,336 [DEBUG][       Thread-609837][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:00:29,336 [DEBUG][       Thread-609837][   transport.py][1871] : Compression: none
2025-07-01 16:00:29,336 [DEBUG][       Thread-609837][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:00:29,345 [DEBUG][       Thread-609837][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:00:29,345 [DEBUG][       Thread-609837][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:00:29,345 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:00:29,346 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:00:29,346 [DEBUG][       Thread-609837][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:00:29,347 [DEBUG][       Thread-609837][   transport.py][1871] : userauth is OK
2025-07-01 16:00:29,359 [ INFO][       Thread-609837][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:00:29,360 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:00:30,032 [DEBUG][       Thread-609837][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:00:30,032 [DEBUG][       Thread-609837][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:00:30,073 [DEBUG][       Thread-609837][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:00:30,073 [DEBUG][       Thread-609837][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:00:30,076 [DEBUG][       Thread-609837][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:00:30,090 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:00:30,090 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:00:30,092 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:00:30,094 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:00:30,100 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:00:30,101 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:00:30,102 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:00:30,102 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:00:30,102 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.583273 -999.00  +13.70  42.16     50   +3.60 1 2 2 1 1   887    0 9.84 8.42 ----- 33.1 42.2 12.7 51.0 15.7 -23.1 15.2 -23.7 15.4 -22.2 15.8 -22.4
2025-07-01 16:00:30,102 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:00:30,102 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:00:30,103 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.583273
2025-07-01 16:00:30,103 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:00:30,103 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:00:30,104 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:00:30,104 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:00:30,104 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:00:30,104 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:00:02', tmtdew=11.38, humidity=46.11, cloud=0.0, wind=32.45, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T13:59:54.787', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:00:30,104 [DEBUG][       Thread-609837][   transport.py][1871] : EOF in transport thread
2025-07-01 16:00:30,188 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:00:30,200 [DEBUG][       Thread-609840][   transport.py][1871] : starting thread (client mode): 0x8157160
2025-07-01 16:00:30,200 [DEBUG][       Thread-609840][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:00:30,215 [DEBUG][       Thread-609840][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:00:30,215 [ INFO][       Thread-609840][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:00:30,223 [DEBUG][       Thread-609840][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:00:30,223 [DEBUG][       Thread-609840][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:00:30,223 [DEBUG][       Thread-609840][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:00:30,223 [DEBUG][       Thread-609840][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:00:30,223 [DEBUG][       Thread-609840][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:00:30,223 [DEBUG][       Thread-609840][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:00:30,223 [DEBUG][       Thread-609840][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:00:30,223 [DEBUG][       Thread-609840][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:00:30,223 [DEBUG][       Thread-609840][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:00:30,223 [DEBUG][       Thread-609840][   transport.py][1871] : client lang: <none>
2025-07-01 16:00:30,223 [DEBUG][       Thread-609840][   transport.py][1871] : server lang: <none>
2025-07-01 16:00:30,223 [DEBUG][       Thread-609840][   transport.py][1871] : kex follows: False
2025-07-01 16:00:30,223 [DEBUG][       Thread-609840][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:00:30,224 [DEBUG][       Thread-609840][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:00:30,224 [DEBUG][       Thread-609840][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:00:30,224 [DEBUG][       Thread-609840][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:00:30,224 [DEBUG][       Thread-609840][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:00:30,224 [DEBUG][       Thread-609840][   transport.py][1871] : Compression: none
2025-07-01 16:00:30,224 [DEBUG][       Thread-609840][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:00:30,282 [DEBUG][       Thread-609840][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:00:30,282 [DEBUG][       Thread-609840][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:00:30,283 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:00:30,284 [DEBUG][       Thread-609840][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:00:30,284 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:00:30,341 [DEBUG][       Thread-609840][   transport.py][1871] : userauth is OK
2025-07-01 16:00:30,342 [DEBUG][       Thread-609840][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:00:30,342 [DEBUG][       Thread-609840][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:00:30,342 [DEBUG][       Thread-609840][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:00:30,342 [DEBUG][       Thread-609840][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:00:30,361 [ INFO][       Thread-609840][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:00:30,362 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:00:30,362 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:00:31,350 [DEBUG][Thread-609842 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:00:31,363 [DEBUG][       Thread-609840][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:00:31,364 [DEBUG][       Thread-609840][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:00:31,413 [DEBUG][       Thread-609840][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:00:31,414 [DEBUG][       Thread-609840][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:00:31,431 [DEBUG][       Thread-609840][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:00:31,442 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:00: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-07-01 16:00:31,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-07-01 16:00:31,460 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:00:31,461 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:00:31,461 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:00:31,469 [DEBUG][       Thread-609840][   transport.py][1871] : EOF in transport thread
2025-07-01 16:00:37,846 [DEBUG][Thread-609843 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:00:40,371 [DEBUG][Thread-609844 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:00:41,472 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:00:41,472 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:00:41,472 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:00:41,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-07-01 16:00:41,957 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 0, 34), 11.47, 46.05, 0.0, 34.16, 13.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:00:41,957 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:00:34
2025-07-01 16:00:42,041 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:00:42,045 [DEBUG][       Thread-609845][   transport.py][1871] : starting thread (client mode): 0x81a4250
2025-07-01 16:00:42,045 [DEBUG][       Thread-609845][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:00:42,065 [DEBUG][       Thread-609845][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:00:42,065 [ INFO][       Thread-609845][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:00:42,068 [DEBUG][       Thread-609845][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:00:42,068 [DEBUG][       Thread-609845][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:00:42,068 [DEBUG][       Thread-609845][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:00:42,068 [DEBUG][       Thread-609845][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:00:42,068 [DEBUG][       Thread-609845][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:00:42,068 [DEBUG][       Thread-609845][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:00:42,069 [DEBUG][       Thread-609845][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:00:42,069 [DEBUG][       Thread-609845][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:00:42,069 [DEBUG][       Thread-609845][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:00:42,069 [DEBUG][       Thread-609845][   transport.py][1871] : client lang: <none>
2025-07-01 16:00:42,069 [DEBUG][       Thread-609845][   transport.py][1871] : server lang: <none>
2025-07-01 16:00:42,069 [DEBUG][       Thread-609845][   transport.py][1871] : kex follows: False
2025-07-01 16:00:42,069 [DEBUG][       Thread-609845][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:00:42,069 [DEBUG][       Thread-609845][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:00:42,069 [DEBUG][       Thread-609845][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:00:42,069 [DEBUG][       Thread-609845][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:00:42,069 [DEBUG][       Thread-609845][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:00:42,069 [DEBUG][       Thread-609845][   transport.py][1871] : Compression: none
2025-07-01 16:00:42,069 [DEBUG][       Thread-609845][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:00:42,080 [DEBUG][       Thread-609845][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:00:42,080 [DEBUG][       Thread-609845][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:00:42,081 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:00:42,081 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:00:42,082 [DEBUG][       Thread-609845][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:00:42,082 [DEBUG][       Thread-609845][   transport.py][1871] : userauth is OK
2025-07-01 16:00:42,106 [ INFO][       Thread-609845][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:00:42,107 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:00:42,761 [DEBUG][       Thread-609845][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:00:42,761 [DEBUG][       Thread-609845][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:00:42,805 [DEBUG][       Thread-609845][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:00:42,805 [DEBUG][       Thread-609845][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:00:42,808 [DEBUG][       Thread-609845][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:00:42,821 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:00:42,822 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:00:42,823 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:00:42,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:00:42,831 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:00:42,833 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:00:42,833 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:00:42,834 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:00:42,834 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.583620 -999.00  +13.80  34.62     51   +3.90 1 2 2 1 1   887    0 10.14 9.76 ----- 28.4 34.6 6.1 43.6 15.8 -23.1 15.2 -23.1 15.5 -21.9 16.0 -21.3
2025-07-01 16:00:42,834 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:00:42,834 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:00:42,834 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.583620
2025-07-01 16:00:42,835 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:00:42,835 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:00:42,835 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:00:42,835 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:00:42,835 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:00:42,836 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:00:34', tmtdew=11.47, humidity=46.05, cloud=0.0, wind=34.16, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:00:24.768', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:00:42,836 [DEBUG][       Thread-609845][   transport.py][1871] : EOF in transport thread
2025-07-01 16:00:42,920 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:00:49,388 [DEBUG][Thread-609848 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:00:58,412 [DEBUG][Thread-609849 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:01:07,432 [DEBUG][Thread-609850 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:01:16,450 [DEBUG][Thread-609851 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:01:25,471 [DEBUG][Thread-609852 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:01:34,489 [DEBUG][Thread-609853 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:01:37,876 [DEBUG][Thread-609854 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:01:43,508 [DEBUG][Thread-609855 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:01:52,528 [DEBUG][Thread-609856 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:02:01,549 [DEBUG][Thread-609857 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:02:10,566 [DEBUG][Thread-609858 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:02:19,588 [DEBUG][Thread-609859 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:02:28,612 [DEBUG][Thread-609860 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:02:37,635 [DEBUG][Thread-609861 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:02:37,906 [DEBUG][Thread-609862 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:02:46,655 [DEBUG][Thread-609863 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:02:51,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-07-01 16:02:55,680 [DEBUG][Thread-609864 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:03:01,550 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:03:01,551 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:03:01,551 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:03:01,553 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:03:02,058 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 2, 42), 11.51, 45.95, 0.0, 32.27, 14.03, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:03:02,058 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:02:42
2025-07-01 16:03:02,144 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:03:02,148 [DEBUG][       Thread-609865][   transport.py][1871] : starting thread (client mode): 0x81a5b70
2025-07-01 16:03:02,148 [DEBUG][       Thread-609865][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:03:02,168 [DEBUG][       Thread-609865][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:03:02,168 [ INFO][       Thread-609865][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:03:02,172 [DEBUG][       Thread-609865][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:03:02,172 [DEBUG][       Thread-609865][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:03:02,172 [DEBUG][       Thread-609865][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:03:02,172 [DEBUG][       Thread-609865][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:03:02,172 [DEBUG][       Thread-609865][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:03:02,172 [DEBUG][       Thread-609865][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:03:02,172 [DEBUG][       Thread-609865][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:03:02,172 [DEBUG][       Thread-609865][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:03:02,172 [DEBUG][       Thread-609865][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:03:02,172 [DEBUG][       Thread-609865][   transport.py][1871] : client lang: <none>
2025-07-01 16:03:02,172 [DEBUG][       Thread-609865][   transport.py][1871] : server lang: <none>
2025-07-01 16:03:02,172 [DEBUG][       Thread-609865][   transport.py][1871] : kex follows: False
2025-07-01 16:03:02,172 [DEBUG][       Thread-609865][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:03:02,172 [DEBUG][       Thread-609865][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:03:02,172 [DEBUG][       Thread-609865][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:03:02,172 [DEBUG][       Thread-609865][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:03:02,172 [DEBUG][       Thread-609865][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:03:02,172 [DEBUG][       Thread-609865][   transport.py][1871] : Compression: none
2025-07-01 16:03:02,172 [DEBUG][       Thread-609865][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:03:02,188 [DEBUG][       Thread-609865][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:03:02,189 [DEBUG][       Thread-609865][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:03:02,189 [DEBUG][       Thread-609865][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:03:02,189 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:03:02,190 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:03:02,190 [DEBUG][       Thread-609865][   transport.py][1871] : userauth is OK
2025-07-01 16:03:02,214 [ INFO][       Thread-609865][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:03:02,215 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:03:02,834 [DEBUG][       Thread-609865][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:03:02,834 [DEBUG][       Thread-609865][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:03:02,877 [DEBUG][       Thread-609865][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:03:02,877 [DEBUG][       Thread-609865][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:03:02,880 [DEBUG][       Thread-609865][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:03:02,891 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:03:02,892 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:03:02,894 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:03:02,895 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:03:02,901 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:03:02,903 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:03:02,903 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:03:02,903 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:03:02,904 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.585009 -999.00  +13.90  43.17     50   +3.80 1 2 2 1 1   887    0 10.48 18.26 ----- 37.9 43.2 22.8 49.8 15.8 -23.1 15.2 -23.5 15.6 -22.0 16.1 -21.6
2025-07-01 16:03:02,904 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:03:02,904 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:03:02,904 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.585009
2025-07-01 16:03:02,904 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:03:02,905 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:03:02,905 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:03:02,905 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:03:02,905 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:03:02,905 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:02:42', tmtdew=11.51, humidity=45.95, cloud=0.0, wind=32.27, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:02:24.778', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:03:02,906 [DEBUG][       Thread-609865][   transport.py][1871] : EOF in transport thread
2025-07-01 16:03:02,990 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:03:03,003 [DEBUG][       Thread-609868][   transport.py][1871] : starting thread (client mode): 0x81d82b0
2025-07-01 16:03:03,003 [DEBUG][       Thread-609868][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:03:03,020 [DEBUG][       Thread-609868][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:03:03,021 [ INFO][       Thread-609868][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:03:03,034 [DEBUG][       Thread-609868][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:03:03,034 [DEBUG][       Thread-609868][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:03:03,034 [DEBUG][       Thread-609868][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:03:03,034 [DEBUG][       Thread-609868][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:03:03,034 [DEBUG][       Thread-609868][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:03:03,034 [DEBUG][       Thread-609868][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:03:03,034 [DEBUG][       Thread-609868][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:03:03,034 [DEBUG][       Thread-609868][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:03:03,034 [DEBUG][       Thread-609868][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:03:03,034 [DEBUG][       Thread-609868][   transport.py][1871] : client lang: <none>
2025-07-01 16:03:03,034 [DEBUG][       Thread-609868][   transport.py][1871] : server lang: <none>
2025-07-01 16:03:03,034 [DEBUG][       Thread-609868][   transport.py][1871] : kex follows: False
2025-07-01 16:03:03,034 [DEBUG][       Thread-609868][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:03:03,034 [DEBUG][       Thread-609868][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:03:03,035 [DEBUG][       Thread-609868][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:03:03,035 [DEBUG][       Thread-609868][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:03:03,035 [DEBUG][       Thread-609868][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:03:03,035 [DEBUG][       Thread-609868][   transport.py][1871] : Compression: none
2025-07-01 16:03:03,035 [DEBUG][       Thread-609868][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:03:03,093 [DEBUG][       Thread-609868][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:03:03,094 [DEBUG][       Thread-609868][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:03:03,095 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:03:03,095 [DEBUG][       Thread-609868][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:03:03,096 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:03:03,160 [DEBUG][       Thread-609868][   transport.py][1871] : userauth is OK
2025-07-01 16:03:03,161 [DEBUG][       Thread-609868][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:03:03,161 [DEBUG][       Thread-609868][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:03:03,161 [DEBUG][       Thread-609868][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:03:03,161 [DEBUG][       Thread-609868][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:03:03,184 [ INFO][       Thread-609868][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:03:03,184 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:03:03,185 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:03:04,201 [DEBUG][       Thread-609868][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:03:04,202 [DEBUG][       Thread-609868][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:03:04,252 [DEBUG][       Thread-609868][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:03:04,252 [DEBUG][       Thread-609868][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:03:04,262 [DEBUG][       Thread-609868][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:03:04,270 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:03:04,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-07-01 16:03:04,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-07-01 16:03:04,290 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:03:04,290 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:03:04,290 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:03:04,298 [DEBUG][       Thread-609868][   transport.py][1871] : EOF in transport thread
2025-07-01 16:03:04,701 [DEBUG][Thread-609870 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:03:13,727 [DEBUG][Thread-609871 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:03:14,301 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:03:14,301 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:03:14,301 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:03:14,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-07-01 16:03:14,824 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 2, 42), 11.51, 45.95, 0.0, 32.27, 14.03, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:03:14,824 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:02:42
2025-07-01 16:03:14,915 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:03:14,919 [DEBUG][       Thread-609872][   transport.py][1871] : starting thread (client mode): 0x8171480
2025-07-01 16:03:14,919 [DEBUG][       Thread-609872][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:03:14,940 [DEBUG][       Thread-609872][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:03:14,940 [ INFO][       Thread-609872][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:03:14,943 [DEBUG][       Thread-609872][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:03:14,943 [DEBUG][       Thread-609872][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:03:14,943 [DEBUG][       Thread-609872][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:03:14,943 [DEBUG][       Thread-609872][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:03:14,943 [DEBUG][       Thread-609872][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:03:14,943 [DEBUG][       Thread-609872][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:03:14,943 [DEBUG][       Thread-609872][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:03:14,943 [DEBUG][       Thread-609872][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:03:14,943 [DEBUG][       Thread-609872][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:03:14,943 [DEBUG][       Thread-609872][   transport.py][1871] : client lang: <none>
2025-07-01 16:03:14,943 [DEBUG][       Thread-609872][   transport.py][1871] : server lang: <none>
2025-07-01 16:03:14,943 [DEBUG][       Thread-609872][   transport.py][1871] : kex follows: False
2025-07-01 16:03:14,943 [DEBUG][       Thread-609872][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:03:14,943 [DEBUG][       Thread-609872][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:03:14,943 [DEBUG][       Thread-609872][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:03:14,943 [DEBUG][       Thread-609872][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:03:14,943 [DEBUG][       Thread-609872][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:03:14,943 [DEBUG][       Thread-609872][   transport.py][1871] : Compression: none
2025-07-01 16:03:14,943 [DEBUG][       Thread-609872][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:03:14,960 [DEBUG][       Thread-609872][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:03:14,960 [DEBUG][       Thread-609872][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:03:14,960 [DEBUG][       Thread-609872][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:03:14,960 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:03:14,960 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:03:14,960 [DEBUG][       Thread-609872][   transport.py][1871] : userauth is OK
2025-07-01 16:03:14,984 [ INFO][       Thread-609872][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:03:14,985 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:03:15,639 [DEBUG][       Thread-609872][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:03:15,639 [DEBUG][       Thread-609872][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:03:15,680 [DEBUG][       Thread-609872][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:03:15,680 [DEBUG][       Thread-609872][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:03:15,683 [DEBUG][       Thread-609872][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:03:15,694 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:03:15,694 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:03:15,695 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:03:15,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:03:15,699 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:03:15,700 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:03:15,700 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:03:15,700 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:03:15,700 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.585009 -999.00  +13.90  43.17     50   +3.80 1 2 2 1 1   887    0 10.48 18.26 ----- 37.9 43.2 22.8 49.8 15.8 -23.1 15.2 -23.5 15.6 -22.0 16.1 -21.6
2025-07-01 16:03:15,700 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:03:15,700 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:03:15,700 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.585009
2025-07-01 16:03:15,700 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:03:15,701 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:03:15,701 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:03:15,701 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:03:15,701 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:03:15,701 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:02:42', tmtdew=11.51, humidity=45.95, cloud=0.0, wind=32.27, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:02:24.778', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:03:15,701 [DEBUG][       Thread-609872][   transport.py][1871] : EOF in transport thread
2025-07-01 16:03:15,774 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:03:15,783 [DEBUG][       Thread-609875][   transport.py][1871] : starting thread (client mode): 0x75ab1f0
2025-07-01 16:03:15,783 [DEBUG][       Thread-609875][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:03:15,797 [DEBUG][       Thread-609875][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:03:15,797 [ INFO][       Thread-609875][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:03:15,805 [DEBUG][       Thread-609875][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:03:15,805 [DEBUG][       Thread-609875][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:03:15,805 [DEBUG][       Thread-609875][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:03:15,805 [DEBUG][       Thread-609875][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:03:15,805 [DEBUG][       Thread-609875][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:03:15,805 [DEBUG][       Thread-609875][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:03:15,805 [DEBUG][       Thread-609875][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:03:15,805 [DEBUG][       Thread-609875][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:03:15,805 [DEBUG][       Thread-609875][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:03:15,805 [DEBUG][       Thread-609875][   transport.py][1871] : client lang: <none>
2025-07-01 16:03:15,805 [DEBUG][       Thread-609875][   transport.py][1871] : server lang: <none>
2025-07-01 16:03:15,805 [DEBUG][       Thread-609875][   transport.py][1871] : kex follows: False
2025-07-01 16:03:15,805 [DEBUG][       Thread-609875][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:03:15,805 [DEBUG][       Thread-609875][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:03:15,805 [DEBUG][       Thread-609875][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:03:15,805 [DEBUG][       Thread-609875][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:03:15,805 [DEBUG][       Thread-609875][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:03:15,805 [DEBUG][       Thread-609875][   transport.py][1871] : Compression: none
2025-07-01 16:03:15,805 [DEBUG][       Thread-609875][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:03:15,867 [DEBUG][       Thread-609875][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:03:15,867 [DEBUG][       Thread-609875][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:03:15,868 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:03:15,868 [DEBUG][       Thread-609875][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:03:15,869 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:03:15,924 [DEBUG][       Thread-609875][   transport.py][1871] : userauth is OK
2025-07-01 16:03:15,925 [DEBUG][       Thread-609875][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:03:15,925 [DEBUG][       Thread-609875][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:03:15,925 [DEBUG][       Thread-609875][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:03:15,925 [DEBUG][       Thread-609875][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:03:15,943 [ INFO][       Thread-609875][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:03:15,944 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:03:15,944 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:03:16,943 [DEBUG][       Thread-609875][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:03:16,944 [DEBUG][       Thread-609875][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:03:16,995 [DEBUG][       Thread-609875][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:03:16,995 [DEBUG][       Thread-609875][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:03:17,003 [DEBUG][       Thread-609875][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:03:17,011 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:03:17,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-07-01 16:03:17,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-07-01 16:03:17,027 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:03:17,027 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:03:17,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:03:17,035 [DEBUG][       Thread-609875][   transport.py][1871] : EOF in transport thread
2025-07-01 16:03:22,745 [DEBUG][Thread-609877 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:03:27,038 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:03:27,038 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:03:27,038 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:03:27,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-07-01 16:03:27,553 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 3, 13), 11.46, 46.0, 0.0, 30.35, 13.99, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:03:27,553 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:03:13
2025-07-01 16:03:27,638 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:03:27,643 [DEBUG][       Thread-609878][   transport.py][1871] : starting thread (client mode): 0x81a5810
2025-07-01 16:03:27,643 [DEBUG][       Thread-609878][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:03:27,663 [DEBUG][       Thread-609878][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:03:27,663 [ INFO][       Thread-609878][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:03:27,665 [DEBUG][       Thread-609878][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:03:27,665 [DEBUG][       Thread-609878][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:03:27,665 [DEBUG][       Thread-609878][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:03:27,665 [DEBUG][       Thread-609878][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:03:27,665 [DEBUG][       Thread-609878][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:03:27,665 [DEBUG][       Thread-609878][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:03:27,665 [DEBUG][       Thread-609878][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:03:27,665 [DEBUG][       Thread-609878][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:03:27,665 [DEBUG][       Thread-609878][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:03:27,665 [DEBUG][       Thread-609878][   transport.py][1871] : client lang: <none>
2025-07-01 16:03:27,665 [DEBUG][       Thread-609878][   transport.py][1871] : server lang: <none>
2025-07-01 16:03:27,665 [DEBUG][       Thread-609878][   transport.py][1871] : kex follows: False
2025-07-01 16:03:27,665 [DEBUG][       Thread-609878][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:03:27,665 [DEBUG][       Thread-609878][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:03:27,665 [DEBUG][       Thread-609878][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:03:27,665 [DEBUG][       Thread-609878][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:03:27,665 [DEBUG][       Thread-609878][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:03:27,665 [DEBUG][       Thread-609878][   transport.py][1871] : Compression: none
2025-07-01 16:03:27,665 [DEBUG][       Thread-609878][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:03:27,673 [DEBUG][       Thread-609878][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:03:27,673 [DEBUG][       Thread-609878][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:03:27,674 [DEBUG][       Thread-609878][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:03:27,674 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:03:27,674 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:03:27,675 [DEBUG][       Thread-609878][   transport.py][1871] : userauth is OK
2025-07-01 16:03:27,688 [ INFO][       Thread-609878][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:03:27,689 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:03:28,316 [DEBUG][       Thread-609878][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:03:28,316 [DEBUG][       Thread-609878][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:03:28,357 [DEBUG][       Thread-609878][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:03:28,357 [DEBUG][       Thread-609878][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:03:28,361 [DEBUG][       Thread-609878][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:03:28,372 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:03:28,373 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:03:28,375 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:03:28,376 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:03:28,382 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:03:28,383 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:03:28,384 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:03:28,384 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:03:28,384 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.585356 -999.00  +13.80  37.74     50   +3.60 1 1 2 1 1   887    0 10.59 21.52 ----- 28.9 37.7 14.2 41.9 15.8 -22.8 15.2 -23.7 15.6 -22.4 16.1 -21.6
2025-07-01 16:03:28,384 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:03:28,384 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:03:28,385 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.585356
2025-07-01 16:03:28,385 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:03:28,386 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:03:28,386 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:03:28,386 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:03:28,386 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 16:03:28,386 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:03:13', tmtdew=11.46, humidity=46.0, cloud=0.0, wind=30.35, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:02:54.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:03:28,387 [DEBUG][       Thread-609878][   transport.py][1871] : EOF in transport thread
2025-07-01 16:03:28,471 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:03:28,486 [DEBUG][       Thread-609881][   transport.py][1871] : starting thread (client mode): 0x818fdc0
2025-07-01 16:03:28,486 [DEBUG][       Thread-609881][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:03:28,502 [DEBUG][       Thread-609881][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:03:28,502 [ INFO][       Thread-609881][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:03:28,510 [DEBUG][       Thread-609881][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:03:28,510 [DEBUG][       Thread-609881][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:03:28,511 [DEBUG][       Thread-609881][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:03:28,511 [DEBUG][       Thread-609881][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:03:28,511 [DEBUG][       Thread-609881][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:03:28,511 [DEBUG][       Thread-609881][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:03:28,511 [DEBUG][       Thread-609881][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:03:28,511 [DEBUG][       Thread-609881][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:03:28,511 [DEBUG][       Thread-609881][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:03:28,511 [DEBUG][       Thread-609881][   transport.py][1871] : client lang: <none>
2025-07-01 16:03:28,511 [DEBUG][       Thread-609881][   transport.py][1871] : server lang: <none>
2025-07-01 16:03:28,511 [DEBUG][       Thread-609881][   transport.py][1871] : kex follows: False
2025-07-01 16:03:28,511 [DEBUG][       Thread-609881][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:03:28,511 [DEBUG][       Thread-609881][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:03:28,511 [DEBUG][       Thread-609881][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:03:28,511 [DEBUG][       Thread-609881][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:03:28,511 [DEBUG][       Thread-609881][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:03:28,511 [DEBUG][       Thread-609881][   transport.py][1871] : Compression: none
2025-07-01 16:03:28,512 [DEBUG][       Thread-609881][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:03:28,573 [DEBUG][       Thread-609881][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:03:28,574 [DEBUG][       Thread-609881][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:03:28,574 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:03:28,575 [DEBUG][       Thread-609881][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:03:28,575 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:03:28,632 [DEBUG][       Thread-609881][   transport.py][1871] : userauth is OK
2025-07-01 16:03:28,632 [DEBUG][       Thread-609881][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:03:28,632 [DEBUG][       Thread-609881][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:03:28,632 [DEBUG][       Thread-609881][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:03:28,633 [DEBUG][       Thread-609881][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:03:28,652 [ INFO][       Thread-609881][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:03:28,653 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:03:28,653 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:03:29,684 [DEBUG][       Thread-609881][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:03:29,684 [DEBUG][       Thread-609881][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:03:29,736 [DEBUG][       Thread-609881][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:03:29,737 [DEBUG][       Thread-609881][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:03:29,747 [DEBUG][       Thread-609881][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:03:29,756 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:03:29,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-07-01 16:03:29,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') -> 00000000
2025-07-01 16:03:29,776 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:03:29,776 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:03:29,777 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:03:29,785 [DEBUG][       Thread-609881][   transport.py][1871] : EOF in transport thread
2025-07-01 16:03:31,772 [DEBUG][Thread-609883 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:03:37,936 [DEBUG][Thread-609884 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:03:39,787 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:03:39,787 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:03:39,787 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:03:39,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-07-01 16:03:40,282 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 3, 13), 11.46, 46.0, 0.0, 30.35, 13.99, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:03:40,282 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:03:13
2025-07-01 16:03:40,367 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:03:40,371 [DEBUG][       Thread-609885][   transport.py][1871] : starting thread (client mode): 0x81a5810
2025-07-01 16:03:40,371 [DEBUG][       Thread-609885][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:03:40,393 [DEBUG][       Thread-609885][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:03:40,393 [ INFO][       Thread-609885][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:03:40,394 [DEBUG][       Thread-609885][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:03:40,394 [DEBUG][       Thread-609885][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:03:40,395 [DEBUG][       Thread-609885][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:03:40,395 [DEBUG][       Thread-609885][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:03:40,395 [DEBUG][       Thread-609885][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:03:40,395 [DEBUG][       Thread-609885][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:03:40,395 [DEBUG][       Thread-609885][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:03:40,395 [DEBUG][       Thread-609885][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:03:40,395 [DEBUG][       Thread-609885][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:03:40,395 [DEBUG][       Thread-609885][   transport.py][1871] : client lang: <none>
2025-07-01 16:03:40,395 [DEBUG][       Thread-609885][   transport.py][1871] : server lang: <none>
2025-07-01 16:03:40,395 [DEBUG][       Thread-609885][   transport.py][1871] : kex follows: False
2025-07-01 16:03:40,395 [DEBUG][       Thread-609885][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:03:40,395 [DEBUG][       Thread-609885][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:03:40,395 [DEBUG][       Thread-609885][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:03:40,395 [DEBUG][       Thread-609885][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:03:40,395 [DEBUG][       Thread-609885][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:03:40,395 [DEBUG][       Thread-609885][   transport.py][1871] : Compression: none
2025-07-01 16:03:40,395 [DEBUG][       Thread-609885][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:03:40,404 [DEBUG][       Thread-609885][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:03:40,405 [DEBUG][       Thread-609885][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:03:40,405 [DEBUG][       Thread-609885][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:03:40,405 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:03:40,406 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:03:40,406 [DEBUG][       Thread-609885][   transport.py][1871] : userauth is OK
2025-07-01 16:03:40,419 [ INFO][       Thread-609885][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:03:40,420 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:03:40,807 [DEBUG][Thread-609887 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:03:41,045 [DEBUG][       Thread-609885][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:03:41,046 [DEBUG][       Thread-609885][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:03:41,089 [DEBUG][       Thread-609885][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:03:41,089 [DEBUG][       Thread-609885][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:03:41,092 [DEBUG][       Thread-609885][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:03:41,104 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:03:41,105 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:03:41,107 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:03:41,108 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:03:41,115 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:03:41,117 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:03:41,117 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:03:41,118 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:03:41,118 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.585356 -999.00  +13.80  37.74     50   +3.60 1 1 2 1 1   887    0 10.59 21.52 ----- 28.9 37.7 14.2 41.9 15.8 -22.8 15.2 -23.7 15.6 -22.4 16.1 -21.6
2025-07-01 16:03:41,118 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:03:41,118 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:03:41,118 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.585356
2025-07-01 16:03:41,119 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:03:41,119 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:03:41,120 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:03:41,120 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:03:41,120 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 16:03:41,120 [DEBUG][       Thread-609885][   transport.py][1871] : EOF in transport thread
2025-07-01 16:03:41,120 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:03:13', tmtdew=11.46, humidity=46.0, cloud=0.0, wind=30.35, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:02:54.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:03:41,204 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:03:41,213 [DEBUG][       Thread-609889][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 16:03:41,213 [DEBUG][       Thread-609889][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:03:41,228 [DEBUG][       Thread-609889][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:03:41,228 [ INFO][       Thread-609889][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:03:41,235 [DEBUG][       Thread-609889][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:03:41,236 [DEBUG][       Thread-609889][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:03:41,236 [DEBUG][       Thread-609889][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:03:41,236 [DEBUG][       Thread-609889][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:03:41,236 [DEBUG][       Thread-609889][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:03:41,236 [DEBUG][       Thread-609889][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:03:41,236 [DEBUG][       Thread-609889][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:03:41,236 [DEBUG][       Thread-609889][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:03:41,236 [DEBUG][       Thread-609889][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:03:41,236 [DEBUG][       Thread-609889][   transport.py][1871] : client lang: <none>
2025-07-01 16:03:41,236 [DEBUG][       Thread-609889][   transport.py][1871] : server lang: <none>
2025-07-01 16:03:41,236 [DEBUG][       Thread-609889][   transport.py][1871] : kex follows: False
2025-07-01 16:03:41,236 [DEBUG][       Thread-609889][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:03:41,236 [DEBUG][       Thread-609889][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:03:41,236 [DEBUG][       Thread-609889][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:03:41,236 [DEBUG][       Thread-609889][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:03:41,236 [DEBUG][       Thread-609889][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:03:41,236 [DEBUG][       Thread-609889][   transport.py][1871] : Compression: none
2025-07-01 16:03:41,236 [DEBUG][       Thread-609889][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:03:41,298 [DEBUG][       Thread-609889][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:03:41,299 [DEBUG][       Thread-609889][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:03:41,299 [DEBUG][       Thread-609889][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:03:41,299 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:03:41,300 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:03:41,356 [DEBUG][       Thread-609889][   transport.py][1871] : userauth is OK
2025-07-01 16:03:41,356 [DEBUG][       Thread-609889][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:03:41,356 [DEBUG][       Thread-609889][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:03:41,356 [DEBUG][       Thread-609889][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:03:41,356 [DEBUG][       Thread-609889][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:03:41,375 [ INFO][       Thread-609889][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:03:41,375 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:03:41,376 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:03:42,401 [DEBUG][       Thread-609889][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:03:42,402 [DEBUG][       Thread-609889][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:03:42,452 [DEBUG][       Thread-609889][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:03:42,452 [DEBUG][       Thread-609889][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:03:42,461 [DEBUG][       Thread-609889][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:03:42,470 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:03: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-07-01 16:03: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-07-01 16:03:42,490 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:03:42,491 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:03:42,491 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:03:42,499 [DEBUG][       Thread-609889][   transport.py][1871] : EOF in transport thread
2025-07-01 16:03:49,829 [DEBUG][Thread-609891 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:03:52,501 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:03:52,502 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:03:52,502 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:03:52,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-07-01 16:03:52,998 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 3, 45), 11.6, 45.58, 0.0, 32.76, 13.99, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:03:52,998 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:03:45
2025-07-01 16:03:53,083 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:03:53,086 [DEBUG][       Thread-609892][   transport.py][1871] : starting thread (client mode): 0x818f850
2025-07-01 16:03:53,086 [DEBUG][       Thread-609892][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:03:53,099 [DEBUG][       Thread-609892][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:03:53,099 [ INFO][       Thread-609892][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:03:53,101 [DEBUG][       Thread-609892][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:03:53,101 [DEBUG][       Thread-609892][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:03:53,101 [DEBUG][       Thread-609892][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:03:53,101 [DEBUG][       Thread-609892][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:03:53,101 [DEBUG][       Thread-609892][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:03:53,101 [DEBUG][       Thread-609892][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:03:53,101 [DEBUG][       Thread-609892][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:03:53,101 [DEBUG][       Thread-609892][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:03:53,101 [DEBUG][       Thread-609892][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:03:53,101 [DEBUG][       Thread-609892][   transport.py][1871] : client lang: <none>
2025-07-01 16:03:53,101 [DEBUG][       Thread-609892][   transport.py][1871] : server lang: <none>
2025-07-01 16:03:53,101 [DEBUG][       Thread-609892][   transport.py][1871] : kex follows: False
2025-07-01 16:03:53,101 [DEBUG][       Thread-609892][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:03:53,101 [DEBUG][       Thread-609892][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:03:53,101 [DEBUG][       Thread-609892][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:03:53,101 [DEBUG][       Thread-609892][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:03:53,101 [DEBUG][       Thread-609892][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:03:53,101 [DEBUG][       Thread-609892][   transport.py][1871] : Compression: none
2025-07-01 16:03:53,101 [DEBUG][       Thread-609892][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:03:53,108 [DEBUG][       Thread-609892][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:03:53,108 [DEBUG][       Thread-609892][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:03:53,109 [DEBUG][       Thread-609892][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:03:53,109 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:03:53,109 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:03:53,109 [DEBUG][       Thread-609892][   transport.py][1871] : userauth is OK
2025-07-01 16:03:53,122 [ INFO][       Thread-609892][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:03:53,122 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:03:53,754 [DEBUG][       Thread-609892][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:03:53,754 [DEBUG][       Thread-609892][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:03:53,797 [DEBUG][       Thread-609892][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:03:53,797 [DEBUG][       Thread-609892][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:03:53,800 [DEBUG][       Thread-609892][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:03:53,812 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:03:53,812 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:03:53,814 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:03:53,816 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:03:53,821 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:03:53,823 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:03:53,823 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:03:53,824 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:03:53,824 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.585356 -999.00  +13.80  37.74     50   +3.60 1 1 2 1 1   887    0 10.59 21.52 ----- 28.9 37.7 14.2 41.9 15.8 -22.8 15.2 -23.7 15.6 -22.4 16.1 -21.6
2025-07-01 16:03:53,824 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:03:53,824 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:03:53,824 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.585356
2025-07-01 16:03:53,825 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:03:53,825 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:03:53,825 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:03:53,826 [DEBUG][       Thread-609892][   transport.py][1871] : EOF in transport thread
2025-07-01 16:03:53,826 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:03:53,826 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 16:03:53,827 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:03:45', tmtdew=11.6, humidity=45.58, cloud=0.0, wind=32.76, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:02:54.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:03:53,909 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:03:53,921 [DEBUG][       Thread-609895][   transport.py][1871] : starting thread (client mode): 0x81a70d0
2025-07-01 16:03:53,921 [DEBUG][       Thread-609895][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:03:53,936 [DEBUG][       Thread-609895][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:03:53,936 [ INFO][       Thread-609895][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:03:53,944 [DEBUG][       Thread-609895][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:03:53,944 [DEBUG][       Thread-609895][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:03:53,944 [DEBUG][       Thread-609895][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:03:53,944 [DEBUG][       Thread-609895][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:03:53,944 [DEBUG][       Thread-609895][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:03:53,944 [DEBUG][       Thread-609895][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:03:53,944 [DEBUG][       Thread-609895][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:03:53,944 [DEBUG][       Thread-609895][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:03:53,945 [DEBUG][       Thread-609895][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:03:53,945 [DEBUG][       Thread-609895][   transport.py][1871] : client lang: <none>
2025-07-01 16:03:53,945 [DEBUG][       Thread-609895][   transport.py][1871] : server lang: <none>
2025-07-01 16:03:53,945 [DEBUG][       Thread-609895][   transport.py][1871] : kex follows: False
2025-07-01 16:03:53,945 [DEBUG][       Thread-609895][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:03:53,945 [DEBUG][       Thread-609895][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:03:53,945 [DEBUG][       Thread-609895][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:03:53,945 [DEBUG][       Thread-609895][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:03:53,945 [DEBUG][       Thread-609895][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:03:53,945 [DEBUG][       Thread-609895][   transport.py][1871] : Compression: none
2025-07-01 16:03:53,945 [DEBUG][       Thread-609895][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:03:54,003 [DEBUG][       Thread-609895][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:03:54,004 [DEBUG][       Thread-609895][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:03:54,005 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:03:54,005 [DEBUG][       Thread-609895][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:03:54,006 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:03:54,068 [DEBUG][       Thread-609895][   transport.py][1871] : userauth is OK
2025-07-01 16:03:54,068 [DEBUG][       Thread-609895][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:03:54,068 [DEBUG][       Thread-609895][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:03:54,068 [DEBUG][       Thread-609895][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:03:54,068 [DEBUG][       Thread-609895][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:03:54,090 [ INFO][       Thread-609895][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:03:54,091 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:03:54,091 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:03:55,137 [DEBUG][       Thread-609895][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:03:55,137 [DEBUG][       Thread-609895][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:03:55,188 [DEBUG][       Thread-609895][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:03:55,188 [DEBUG][       Thread-609895][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:03:55,197 [DEBUG][       Thread-609895][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:03:55,206 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:03:55,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-07-01 16:03:55,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-07-01 16:03:55,224 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:03:55,225 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:03:55,225 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:03:55,233 [DEBUG][       Thread-609895][   transport.py][1871] : EOF in transport thread
2025-07-01 16:03:58,849 [DEBUG][Thread-609897 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:04:05,232 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:04:05,232 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:04:05,232 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:04:05,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-07-01 16:04:05,727 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 3, 45), 11.6, 45.58, 0.0, 32.76, 13.99, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:04:05,727 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:03:45
2025-07-01 16:04:05,813 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:04:05,817 [DEBUG][       Thread-609898][   transport.py][1871] : starting thread (client mode): 0x81e6da0
2025-07-01 16:04:05,817 [DEBUG][       Thread-609898][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:04:05,838 [DEBUG][       Thread-609898][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:04:05,838 [ INFO][       Thread-609898][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:04:05,841 [DEBUG][       Thread-609898][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:04:05,841 [DEBUG][       Thread-609898][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:04:05,841 [DEBUG][       Thread-609898][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:04:05,841 [DEBUG][       Thread-609898][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:04:05,841 [DEBUG][       Thread-609898][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:04:05,841 [DEBUG][       Thread-609898][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:04:05,841 [DEBUG][       Thread-609898][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:04:05,841 [DEBUG][       Thread-609898][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:04:05,842 [DEBUG][       Thread-609898][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:04:05,842 [DEBUG][       Thread-609898][   transport.py][1871] : client lang: <none>
2025-07-01 16:04:05,842 [DEBUG][       Thread-609898][   transport.py][1871] : server lang: <none>
2025-07-01 16:04:05,842 [DEBUG][       Thread-609898][   transport.py][1871] : kex follows: False
2025-07-01 16:04:05,842 [DEBUG][       Thread-609898][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:04:05,842 [DEBUG][       Thread-609898][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:04:05,842 [DEBUG][       Thread-609898][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:04:05,842 [DEBUG][       Thread-609898][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:04:05,842 [DEBUG][       Thread-609898][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:04:05,842 [DEBUG][       Thread-609898][   transport.py][1871] : Compression: none
2025-07-01 16:04:05,842 [DEBUG][       Thread-609898][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:04:05,859 [DEBUG][       Thread-609898][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:04:05,860 [DEBUG][       Thread-609898][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:04:05,860 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:04:05,860 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:04:05,861 [DEBUG][       Thread-609898][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:04:05,862 [DEBUG][       Thread-609898][   transport.py][1871] : userauth is OK
2025-07-01 16:04:05,887 [ INFO][       Thread-609898][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:04:05,888 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:04:06,457 [DEBUG][       Thread-609898][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:04:06,457 [DEBUG][       Thread-609898][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:04:06,501 [DEBUG][       Thread-609898][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:04:06,501 [DEBUG][       Thread-609898][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:04:06,505 [DEBUG][       Thread-609898][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:04:06,518 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:04:06,518 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:04:06,520 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:04:06,522 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:04:06,531 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:04:06,533 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:04:06,534 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:04:06,534 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:04:06,534 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.586050 -999.00  +14.00  32.78     50   +3.90 1 2 2 1 1   887    0 10.69 24.48 ----- 36.9 32.8 33.8 40.0 15.8 -22.6 15.3 -22.8 15.6 -21.5 16.2 -21.4
2025-07-01 16:04:06,534 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:04:06,535 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:04:06,535 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.586050
2025-07-01 16:04:06,535 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:04:06,536 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:04:06,536 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:04:06,536 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:04:06,536 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:04:06,536 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:03:45', tmtdew=11.6, humidity=45.58, cloud=0.0, wind=32.76, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:03:54.720', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:04:06,537 [DEBUG][       Thread-609898][   transport.py][1871] : EOF in transport thread
2025-07-01 16:04:06,622 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:04:06,635 [DEBUG][       Thread-609901][   transport.py][1871] : starting thread (client mode): 0x81da770
2025-07-01 16:04:06,635 [DEBUG][       Thread-609901][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:04:06,650 [DEBUG][       Thread-609901][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:04:06,651 [ INFO][       Thread-609901][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:04:06,658 [DEBUG][       Thread-609901][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:04:06,658 [DEBUG][       Thread-609901][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:04:06,658 [DEBUG][       Thread-609901][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:04:06,658 [DEBUG][       Thread-609901][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:04:06,658 [DEBUG][       Thread-609901][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:04:06,658 [DEBUG][       Thread-609901][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:04:06,658 [DEBUG][       Thread-609901][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:04:06,658 [DEBUG][       Thread-609901][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:04:06,659 [DEBUG][       Thread-609901][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:04:06,659 [DEBUG][       Thread-609901][   transport.py][1871] : client lang: <none>
2025-07-01 16:04:06,659 [DEBUG][       Thread-609901][   transport.py][1871] : server lang: <none>
2025-07-01 16:04:06,659 [DEBUG][       Thread-609901][   transport.py][1871] : kex follows: False
2025-07-01 16:04:06,659 [DEBUG][       Thread-609901][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:04:06,659 [DEBUG][       Thread-609901][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:04:06,659 [DEBUG][       Thread-609901][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:04:06,659 [DEBUG][       Thread-609901][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:04:06,659 [DEBUG][       Thread-609901][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:04:06,659 [DEBUG][       Thread-609901][   transport.py][1871] : Compression: none
2025-07-01 16:04:06,659 [DEBUG][       Thread-609901][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:04:06,715 [DEBUG][       Thread-609901][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:04:06,716 [DEBUG][       Thread-609901][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:04:06,716 [DEBUG][       Thread-609901][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:04:06,717 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:04:06,717 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:04:06,772 [DEBUG][       Thread-609901][   transport.py][1871] : userauth is OK
2025-07-01 16:04:06,772 [DEBUG][       Thread-609901][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:04:06,772 [DEBUG][       Thread-609901][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:04:06,772 [DEBUG][       Thread-609901][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:04:06,772 [DEBUG][       Thread-609901][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:04:06,791 [ INFO][       Thread-609901][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:04:06,792 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:04:06,792 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:04:07,824 [DEBUG][       Thread-609901][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:04:07,824 [DEBUG][       Thread-609901][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:04:07,872 [DEBUG][       Thread-609901][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:04:07,872 [DEBUG][       Thread-609901][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:04:07,882 [DEBUG][       Thread-609901][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:04:07,882 [DEBUG][Thread-609903 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:04:07,891 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:04:07,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-07-01 16:04: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-07-01 16:04:07,909 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:04:07,909 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:04:07,910 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:04:07,920 [DEBUG][       Thread-609901][   transport.py][1871] : EOF in transport thread
2025-07-01 16:04:16,925 [DEBUG][Thread-609904 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:04:17,920 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:04:17,920 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:04:17,920 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:04:17,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-07-01 16:04:18,440 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 3, 45), 11.6, 45.58, 0.0, 32.76, 13.99, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:04:18,440 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:03:45
2025-07-01 16:04:18,532 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:04:18,537 [DEBUG][       Thread-609905][   transport.py][1871] : starting thread (client mode): 0x81e7f70
2025-07-01 16:04:18,537 [DEBUG][       Thread-609905][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:04:18,558 [DEBUG][       Thread-609905][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:04:18,558 [ INFO][       Thread-609905][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:04:18,561 [DEBUG][       Thread-609905][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:04:18,561 [DEBUG][       Thread-609905][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:04:18,561 [DEBUG][       Thread-609905][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:04:18,561 [DEBUG][       Thread-609905][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:04:18,561 [DEBUG][       Thread-609905][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:04:18,561 [DEBUG][       Thread-609905][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:04:18,561 [DEBUG][       Thread-609905][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:04:18,561 [DEBUG][       Thread-609905][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:04:18,561 [DEBUG][       Thread-609905][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:04:18,561 [DEBUG][       Thread-609905][   transport.py][1871] : client lang: <none>
2025-07-01 16:04:18,561 [DEBUG][       Thread-609905][   transport.py][1871] : server lang: <none>
2025-07-01 16:04:18,561 [DEBUG][       Thread-609905][   transport.py][1871] : kex follows: False
2025-07-01 16:04:18,561 [DEBUG][       Thread-609905][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:04:18,561 [DEBUG][       Thread-609905][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:04:18,561 [DEBUG][       Thread-609905][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:04:18,561 [DEBUG][       Thread-609905][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:04:18,561 [DEBUG][       Thread-609905][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:04:18,561 [DEBUG][       Thread-609905][   transport.py][1871] : Compression: none
2025-07-01 16:04:18,561 [DEBUG][       Thread-609905][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:04:18,579 [DEBUG][       Thread-609905][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:04:18,579 [DEBUG][       Thread-609905][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:04:18,579 [DEBUG][       Thread-609905][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:04:18,579 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:04:18,579 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:04:18,580 [DEBUG][       Thread-609905][   transport.py][1871] : userauth is OK
2025-07-01 16:04:18,603 [ INFO][       Thread-609905][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:04:18,604 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:04:19,357 [DEBUG][       Thread-609905][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:04:19,357 [DEBUG][       Thread-609905][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:04:19,400 [DEBUG][       Thread-609905][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:04:19,400 [DEBUG][       Thread-609905][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:04:19,403 [DEBUG][       Thread-609905][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:04:19,411 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:04:19,411 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:04:19,412 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:04:19,413 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:04:19,416 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:04:19,417 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:04:19,417 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:04:19,418 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:04:19,418 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.586050 -999.00  +14.00  32.78     50   +3.90 1 2 2 1 1   887    0 10.69 24.48 ----- 36.9 32.8 33.8 40.0 15.8 -22.6 15.3 -22.8 15.6 -21.5 16.2 -21.4
2025-07-01 16:04:19,418 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:04:19,418 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:04:19,418 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.586050
2025-07-01 16:04:19,418 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:04:19,418 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:04:19,418 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:04:19,418 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:04:19,418 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:04:19,418 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:03:45', tmtdew=11.6, humidity=45.58, cloud=0.0, wind=32.76, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:03:54.720', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:04:19,419 [DEBUG][       Thread-609905][   transport.py][1871] : EOF in transport thread
2025-07-01 16:04:19,490 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:04:19,501 [DEBUG][       Thread-609908][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 16:04:19,501 [DEBUG][       Thread-609908][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:04:19,516 [DEBUG][       Thread-609908][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:04:19,517 [ INFO][       Thread-609908][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:04:19,527 [DEBUG][       Thread-609908][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:04:19,527 [DEBUG][       Thread-609908][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:04:19,527 [DEBUG][       Thread-609908][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:04:19,527 [DEBUG][       Thread-609908][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:04:19,527 [DEBUG][       Thread-609908][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:04:19,527 [DEBUG][       Thread-609908][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:04:19,527 [DEBUG][       Thread-609908][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:04:19,527 [DEBUG][       Thread-609908][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:04:19,527 [DEBUG][       Thread-609908][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:04:19,527 [DEBUG][       Thread-609908][   transport.py][1871] : client lang: <none>
2025-07-01 16:04:19,527 [DEBUG][       Thread-609908][   transport.py][1871] : server lang: <none>
2025-07-01 16:04:19,527 [DEBUG][       Thread-609908][   transport.py][1871] : kex follows: False
2025-07-01 16:04:19,527 [DEBUG][       Thread-609908][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:04:19,527 [DEBUG][       Thread-609908][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:04:19,527 [DEBUG][       Thread-609908][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:04:19,528 [DEBUG][       Thread-609908][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:04:19,528 [DEBUG][       Thread-609908][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:04:19,528 [DEBUG][       Thread-609908][   transport.py][1871] : Compression: none
2025-07-01 16:04:19,528 [DEBUG][       Thread-609908][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:04:19,583 [DEBUG][       Thread-609908][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:04:19,584 [DEBUG][       Thread-609908][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:04:19,584 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:04:19,585 [DEBUG][       Thread-609908][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:04:19,586 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:04:19,640 [DEBUG][       Thread-609908][   transport.py][1871] : userauth is OK
2025-07-01 16:04:19,640 [DEBUG][       Thread-609908][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:04:19,640 [DEBUG][       Thread-609908][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:04:19,640 [DEBUG][       Thread-609908][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:04:19,640 [DEBUG][       Thread-609908][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:04:19,661 [ INFO][       Thread-609908][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:04:19,661 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:04:19,662 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:04:20,708 [DEBUG][       Thread-609908][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:04:20,709 [DEBUG][       Thread-609908][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:04:20,760 [DEBUG][       Thread-609908][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:04:20,760 [DEBUG][       Thread-609908][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:04:20,769 [DEBUG][       Thread-609908][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:04:20,778 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:04:20,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')
2025-07-01 16:04:20,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-07-01 16:04:20,802 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:04:20,803 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:04:20,803 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:04:20,818 [DEBUG][       Thread-609908][   transport.py][1871] : EOF in transport thread
2025-07-01 16:04:25,948 [DEBUG][Thread-609910 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:04:30,813 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:04:30,814 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:04:30,814 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:04:30,816 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:04:31,310 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 4, 17), 11.56, 45.6, 0.0, 37.33, 14.05, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:04:31,310 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:04:17
2025-07-01 16:04:31,395 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:04:31,401 [DEBUG][       Thread-609911][   transport.py][1871] : starting thread (client mode): 0x81a7c10
2025-07-01 16:04:31,401 [DEBUG][       Thread-609911][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:04:31,421 [DEBUG][       Thread-609911][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:04:31,421 [ INFO][       Thread-609911][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:04:31,425 [DEBUG][       Thread-609911][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:04:31,425 [DEBUG][       Thread-609911][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:04:31,425 [DEBUG][       Thread-609911][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:04:31,425 [DEBUG][       Thread-609911][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:04:31,425 [DEBUG][       Thread-609911][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:04:31,425 [DEBUG][       Thread-609911][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:04:31,425 [DEBUG][       Thread-609911][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:04:31,425 [DEBUG][       Thread-609911][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:04:31,425 [DEBUG][       Thread-609911][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:04:31,425 [DEBUG][       Thread-609911][   transport.py][1871] : client lang: <none>
2025-07-01 16:04:31,425 [DEBUG][       Thread-609911][   transport.py][1871] : server lang: <none>
2025-07-01 16:04:31,425 [DEBUG][       Thread-609911][   transport.py][1871] : kex follows: False
2025-07-01 16:04:31,425 [DEBUG][       Thread-609911][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:04:31,425 [DEBUG][       Thread-609911][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:04:31,425 [DEBUG][       Thread-609911][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:04:31,425 [DEBUG][       Thread-609911][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:04:31,425 [DEBUG][       Thread-609911][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:04:31,425 [DEBUG][       Thread-609911][   transport.py][1871] : Compression: none
2025-07-01 16:04:31,425 [DEBUG][       Thread-609911][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:04:31,441 [DEBUG][       Thread-609911][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:04:31,442 [DEBUG][       Thread-609911][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:04:31,442 [DEBUG][       Thread-609911][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:04:31,442 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:04:31,443 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:04:31,444 [DEBUG][       Thread-609911][   transport.py][1871] : userauth is OK
2025-07-01 16:04:31,468 [ INFO][       Thread-609911][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:04:31,468 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:04:32,080 [DEBUG][       Thread-609911][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:04:32,081 [DEBUG][       Thread-609911][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:04:32,125 [DEBUG][       Thread-609911][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:04:32,125 [DEBUG][       Thread-609911][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:04:32,129 [DEBUG][       Thread-609911][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:04:32,141 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:04:32,142 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:04:32,143 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:04:32,145 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:04:32,149 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:04:32,151 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:04:32,151 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:04:32,152 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:04:32,152 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.586397 -999.00  +14.10  27.90     50   +4.00 1 2 1 1 1   887    0 10.54 27.34 ----- 30.5 27.9 26.1 39.7 15.8 -22.8 15.3 -23.0 15.7 -21.5 16.2 -21.4
2025-07-01 16:04:32,152 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:04:32,152 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:04:32,152 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.586397
2025-07-01 16:04:32,152 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:04:32,153 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:04:32,153 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:04:32,153 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:04:32,153 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:04:32,153 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:04:17', tmtdew=11.56, humidity=45.6, cloud=0.0, wind=37.33, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:04:24.701', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:04:32,153 [DEBUG][       Thread-609911][   transport.py][1871] : EOF in transport thread
2025-07-01 16:04:32,236 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:04:32,251 [DEBUG][       Thread-609914][   transport.py][1871] : starting thread (client mode): 0x818ff10
2025-07-01 16:04:32,251 [DEBUG][       Thread-609914][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:04:32,268 [DEBUG][       Thread-609914][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:04:32,269 [ INFO][       Thread-609914][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:04:32,279 [DEBUG][       Thread-609914][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:04:32,280 [DEBUG][       Thread-609914][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:04:32,280 [DEBUG][       Thread-609914][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:04:32,280 [DEBUG][       Thread-609914][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:04:32,280 [DEBUG][       Thread-609914][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:04:32,280 [DEBUG][       Thread-609914][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:04:32,280 [DEBUG][       Thread-609914][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:04:32,280 [DEBUG][       Thread-609914][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:04:32,280 [DEBUG][       Thread-609914][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:04:32,280 [DEBUG][       Thread-609914][   transport.py][1871] : client lang: <none>
2025-07-01 16:04:32,280 [DEBUG][       Thread-609914][   transport.py][1871] : server lang: <none>
2025-07-01 16:04:32,280 [DEBUG][       Thread-609914][   transport.py][1871] : kex follows: False
2025-07-01 16:04:32,280 [DEBUG][       Thread-609914][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:04:32,280 [DEBUG][       Thread-609914][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:04:32,280 [DEBUG][       Thread-609914][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:04:32,280 [DEBUG][       Thread-609914][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:04:32,280 [DEBUG][       Thread-609914][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:04:32,281 [DEBUG][       Thread-609914][   transport.py][1871] : Compression: none
2025-07-01 16:04:32,281 [DEBUG][       Thread-609914][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:04:32,335 [DEBUG][       Thread-609914][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:04:32,335 [DEBUG][       Thread-609914][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:04:32,335 [DEBUG][       Thread-609914][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:04:32,336 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:04:32,336 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:04:32,392 [DEBUG][       Thread-609914][   transport.py][1871] : userauth is OK
2025-07-01 16:04:32,392 [DEBUG][       Thread-609914][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:04:32,392 [DEBUG][       Thread-609914][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:04:32,392 [DEBUG][       Thread-609914][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:04:32,392 [DEBUG][       Thread-609914][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:04:32,412 [ INFO][       Thread-609914][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:04:32,412 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:04:32,413 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:04:33,405 [DEBUG][       Thread-609914][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:04:33,406 [DEBUG][       Thread-609914][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:04:33,456 [DEBUG][       Thread-609914][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:04:33,456 [DEBUG][       Thread-609914][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:04:33,466 [DEBUG][       Thread-609914][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:04:33,475 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:04:33,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-07-01 16:04:33,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-07-01 16:04:33,493 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:04:33,493 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:04:33,494 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:04:33,502 [DEBUG][       Thread-609914][   transport.py][1871] : EOF in transport thread
2025-07-01 16:04:34,968 [DEBUG][Thread-609916 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:04:37,962 [DEBUG][Thread-609917 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:04:43,504 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:04:43,504 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:04:43,505 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:04:43,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-07-01 16:04:43,990 [DEBUG][Thread-609918 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:04:44,002 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 4, 17), 11.56, 45.6, 0.0, 37.33, 14.05, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:04:44,002 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:04:17
2025-07-01 16:04:44,087 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:04:44,091 [DEBUG][       Thread-609919][   transport.py][1871] : starting thread (client mode): 0x8171c00
2025-07-01 16:04:44,091 [DEBUG][       Thread-609919][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:04:44,112 [DEBUG][       Thread-609919][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:04:44,112 [ INFO][       Thread-609919][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:04:44,113 [DEBUG][       Thread-609919][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:04:44,113 [DEBUG][       Thread-609919][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:04:44,113 [DEBUG][       Thread-609919][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:04:44,113 [DEBUG][       Thread-609919][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:04:44,113 [DEBUG][       Thread-609919][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:04:44,114 [DEBUG][       Thread-609919][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:04:44,114 [DEBUG][       Thread-609919][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:04:44,114 [DEBUG][       Thread-609919][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:04:44,114 [DEBUG][       Thread-609919][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:04:44,114 [DEBUG][       Thread-609919][   transport.py][1871] : client lang: <none>
2025-07-01 16:04:44,114 [DEBUG][       Thread-609919][   transport.py][1871] : server lang: <none>
2025-07-01 16:04:44,114 [DEBUG][       Thread-609919][   transport.py][1871] : kex follows: False
2025-07-01 16:04:44,114 [DEBUG][       Thread-609919][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:04:44,114 [DEBUG][       Thread-609919][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:04:44,114 [DEBUG][       Thread-609919][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:04:44,114 [DEBUG][       Thread-609919][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:04:44,114 [DEBUG][       Thread-609919][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:04:44,114 [DEBUG][       Thread-609919][   transport.py][1871] : Compression: none
2025-07-01 16:04:44,114 [DEBUG][       Thread-609919][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:04:44,127 [DEBUG][       Thread-609919][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:04:44,128 [DEBUG][       Thread-609919][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:04:44,128 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:04:44,128 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:04:44,129 [DEBUG][       Thread-609919][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:04:44,129 [DEBUG][       Thread-609919][   transport.py][1871] : userauth is OK
2025-07-01 16:04:44,154 [ INFO][       Thread-609919][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:04:44,154 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:04:44,771 [DEBUG][       Thread-609919][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:04:44,771 [DEBUG][       Thread-609919][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:04:44,813 [DEBUG][       Thread-609919][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:04:44,813 [DEBUG][       Thread-609919][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:04:44,816 [DEBUG][       Thread-609919][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:04:44,827 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:04:44,827 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:04:44,829 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:04:44,830 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:04:44,835 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:04:44,837 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:04:44,837 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:04:44,838 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:04:44,838 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.586397 -999.00  +14.10  27.90     50   +4.00 1 2 1 1 1   887    0 10.54 27.34 ----- 30.5 27.9 26.1 39.7 15.8 -22.8 15.3 -23.0 15.7 -21.5 16.2 -21.4
2025-07-01 16:04:44,838 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:04:44,838 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:04:44,838 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.586397
2025-07-01 16:04:44,839 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:04:44,839 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:04:44,839 [DEBUG][       Thread-609919][   transport.py][1871] : EOF in transport thread
2025-07-01 16:04:44,840 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:04:44,840 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:04:44,840 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:04:44,840 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:04:17', tmtdew=11.56, humidity=45.6, cloud=0.0, wind=37.33, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:04:24.701', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:04:44,916 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:04:44,925 [DEBUG][       Thread-609922][   transport.py][1871] : starting thread (client mode): 0x8157160
2025-07-01 16:04:44,925 [DEBUG][       Thread-609922][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:04:44,940 [DEBUG][       Thread-609922][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:04:44,940 [ INFO][       Thread-609922][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:04:44,947 [DEBUG][       Thread-609922][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:04:44,947 [DEBUG][       Thread-609922][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:04:44,947 [DEBUG][       Thread-609922][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:04:44,948 [DEBUG][       Thread-609922][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:04:44,948 [DEBUG][       Thread-609922][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:04:44,948 [DEBUG][       Thread-609922][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:04:44,948 [DEBUG][       Thread-609922][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:04:44,948 [DEBUG][       Thread-609922][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:04:44,948 [DEBUG][       Thread-609922][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:04:44,948 [DEBUG][       Thread-609922][   transport.py][1871] : client lang: <none>
2025-07-01 16:04:44,948 [DEBUG][       Thread-609922][   transport.py][1871] : server lang: <none>
2025-07-01 16:04:44,948 [DEBUG][       Thread-609922][   transport.py][1871] : kex follows: False
2025-07-01 16:04:44,948 [DEBUG][       Thread-609922][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:04:44,948 [DEBUG][       Thread-609922][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:04:44,948 [DEBUG][       Thread-609922][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:04:44,948 [DEBUG][       Thread-609922][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:04:44,948 [DEBUG][       Thread-609922][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:04:44,948 [DEBUG][       Thread-609922][   transport.py][1871] : Compression: none
2025-07-01 16:04:44,948 [DEBUG][       Thread-609922][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:04:45,011 [DEBUG][       Thread-609922][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:04:45,012 [DEBUG][       Thread-609922][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:04:45,012 [DEBUG][       Thread-609922][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:04:45,013 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:04:45,013 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:04:45,068 [DEBUG][       Thread-609922][   transport.py][1871] : userauth is OK
2025-07-01 16:04:45,068 [DEBUG][       Thread-609922][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:04:45,068 [DEBUG][       Thread-609922][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:04:45,068 [DEBUG][       Thread-609922][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:04:45,068 [DEBUG][       Thread-609922][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:04:45,087 [ INFO][       Thread-609922][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:04:45,087 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:04:45,088 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:04:46,073 [DEBUG][       Thread-609922][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:04:46,073 [DEBUG][       Thread-609922][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:04:46,128 [DEBUG][       Thread-609922][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:04:46,128 [DEBUG][       Thread-609922][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:04:46,142 [DEBUG][       Thread-609922][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:04:46,152 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:04:46,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-07-01 16:04:46,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-07-01 16:04:46,178 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:04:46,178 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:04:46,179 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:04:46,188 [DEBUG][       Thread-609922][   transport.py][1871] : EOF in transport thread
2025-07-01 16:04:53,013 [DEBUG][Thread-609924 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:04:56,189 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:04:56,189 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:04:56,189 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:04:56,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-07-01 16:04:56,693 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 4, 49), 11.46, 45.88, 0.0, 36.5, 14.02, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:04:56,693 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:04:49
2025-07-01 16:04:56,779 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:04:56,784 [DEBUG][       Thread-609925][   transport.py][1871] : starting thread (client mode): 0x81a6cb0
2025-07-01 16:04:56,784 [DEBUG][       Thread-609925][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:04:56,804 [DEBUG][       Thread-609925][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:04:56,804 [ INFO][       Thread-609925][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:04:56,808 [DEBUG][       Thread-609925][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:04:56,808 [DEBUG][       Thread-609925][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:04:56,808 [DEBUG][       Thread-609925][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:04:56,808 [DEBUG][       Thread-609925][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:04:56,808 [DEBUG][       Thread-609925][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:04:56,808 [DEBUG][       Thread-609925][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:04:56,808 [DEBUG][       Thread-609925][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:04:56,808 [DEBUG][       Thread-609925][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:04:56,808 [DEBUG][       Thread-609925][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:04:56,808 [DEBUG][       Thread-609925][   transport.py][1871] : client lang: <none>
2025-07-01 16:04:56,808 [DEBUG][       Thread-609925][   transport.py][1871] : server lang: <none>
2025-07-01 16:04:56,808 [DEBUG][       Thread-609925][   transport.py][1871] : kex follows: False
2025-07-01 16:04:56,808 [DEBUG][       Thread-609925][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:04:56,808 [DEBUG][       Thread-609925][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:04:56,808 [DEBUG][       Thread-609925][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:04:56,808 [DEBUG][       Thread-609925][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:04:56,808 [DEBUG][       Thread-609925][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:04:56,808 [DEBUG][       Thread-609925][   transport.py][1871] : Compression: none
2025-07-01 16:04:56,808 [DEBUG][       Thread-609925][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:04:56,829 [DEBUG][       Thread-609925][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:04:56,829 [DEBUG][       Thread-609925][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:04:56,829 [DEBUG][       Thread-609925][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:04:56,829 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:04:56,829 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:04:56,830 [DEBUG][       Thread-609925][   transport.py][1871] : userauth is OK
2025-07-01 16:04:56,854 [ INFO][       Thread-609925][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:04:56,855 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:04:57,653 [DEBUG][       Thread-609925][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:04:57,653 [DEBUG][       Thread-609925][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:04:57,697 [DEBUG][       Thread-609925][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:04:57,697 [DEBUG][       Thread-609925][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:04:57,700 [DEBUG][       Thread-609925][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:04:57,706 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:04:57,706 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:04:57,708 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:04:57,710 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:04:57,715 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:04:57,717 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:04:57,717 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:04:57,718 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:04:57,718 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.586397 -999.00  +14.10  27.90     50   +4.00 1 2 1 1 1   887    0 10.54 27.34 ----- 30.5 27.9 26.1 39.7 15.8 -22.8 15.3 -23.0 15.7 -21.5 16.2 -21.4
2025-07-01 16:04:57,718 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:04:57,718 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:04:57,718 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.586397
2025-07-01 16:04:57,718 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:04:57,719 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:04:57,719 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:04:57,719 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:04:57,719 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:04:57,719 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:04:49', tmtdew=11.46, humidity=45.88, cloud=0.0, wind=36.5, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:04:24.701', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:04:57,720 [DEBUG][       Thread-609925][   transport.py][1871] : EOF in transport thread
2025-07-01 16:04:57,803 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:04:57,814 [DEBUG][       Thread-609928][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 16:04:57,814 [DEBUG][       Thread-609928][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:04:57,829 [DEBUG][       Thread-609928][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:04:57,829 [ INFO][       Thread-609928][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:04:57,837 [DEBUG][       Thread-609928][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:04:57,837 [DEBUG][       Thread-609928][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:04:57,837 [DEBUG][       Thread-609928][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:04:57,837 [DEBUG][       Thread-609928][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:04:57,837 [DEBUG][       Thread-609928][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:04:57,837 [DEBUG][       Thread-609928][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:04:57,837 [DEBUG][       Thread-609928][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:04:57,837 [DEBUG][       Thread-609928][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:04:57,837 [DEBUG][       Thread-609928][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:04:57,837 [DEBUG][       Thread-609928][   transport.py][1871] : client lang: <none>
2025-07-01 16:04:57,837 [DEBUG][       Thread-609928][   transport.py][1871] : server lang: <none>
2025-07-01 16:04:57,837 [DEBUG][       Thread-609928][   transport.py][1871] : kex follows: False
2025-07-01 16:04:57,837 [DEBUG][       Thread-609928][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:04:57,837 [DEBUG][       Thread-609928][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:04:57,837 [DEBUG][       Thread-609928][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:04:57,837 [DEBUG][       Thread-609928][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:04:57,837 [DEBUG][       Thread-609928][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:04:57,838 [DEBUG][       Thread-609928][   transport.py][1871] : Compression: none
2025-07-01 16:04:57,838 [DEBUG][       Thread-609928][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:04:57,895 [DEBUG][       Thread-609928][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:04:57,895 [DEBUG][       Thread-609928][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:04:57,896 [DEBUG][       Thread-609928][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:04:57,896 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:04:57,897 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:04:57,951 [DEBUG][       Thread-609928][   transport.py][1871] : userauth is OK
2025-07-01 16:04:57,952 [DEBUG][       Thread-609928][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:04:57,952 [DEBUG][       Thread-609928][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:04:57,952 [DEBUG][       Thread-609928][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:04:57,952 [DEBUG][       Thread-609928][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:04:57,971 [ INFO][       Thread-609928][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:04:57,971 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:04:57,972 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:04:59,006 [DEBUG][       Thread-609928][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:04:59,006 [DEBUG][       Thread-609928][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:04:59,060 [DEBUG][       Thread-609928][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:04:59,060 [DEBUG][       Thread-609928][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:04:59,069 [DEBUG][       Thread-609928][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:04:59,078 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:04:59,078 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 16:04:59,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-07-01 16:04:59,096 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:04:59,096 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:04:59,097 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:04:59,105 [DEBUG][       Thread-609928][   transport.py][1871] : EOF in transport thread
2025-07-01 16:05:02,033 [DEBUG][Thread-609930 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:05:09,107 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:05:09,107 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:05:09,107 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:05:09,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-07-01 16:05:09,608 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 4, 49), 11.46, 45.88, 0.0, 36.5, 14.02, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:05:09,608 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:04:49
2025-07-01 16:05:09,694 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:05:09,698 [DEBUG][       Thread-609931][   transport.py][1871] : starting thread (client mode): 0x81d9960
2025-07-01 16:05:09,698 [DEBUG][       Thread-609931][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:05:09,714 [DEBUG][       Thread-609931][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:05:09,714 [ INFO][       Thread-609931][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:05:09,717 [DEBUG][       Thread-609931][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:05:09,717 [DEBUG][       Thread-609931][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:05:09,717 [DEBUG][       Thread-609931][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:05:09,717 [DEBUG][       Thread-609931][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:05:09,717 [DEBUG][       Thread-609931][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:05:09,717 [DEBUG][       Thread-609931][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:05:09,717 [DEBUG][       Thread-609931][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:05:09,717 [DEBUG][       Thread-609931][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:05:09,717 [DEBUG][       Thread-609931][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:05:09,717 [DEBUG][       Thread-609931][   transport.py][1871] : client lang: <none>
2025-07-01 16:05:09,717 [DEBUG][       Thread-609931][   transport.py][1871] : server lang: <none>
2025-07-01 16:05:09,717 [DEBUG][       Thread-609931][   transport.py][1871] : kex follows: False
2025-07-01 16:05:09,717 [DEBUG][       Thread-609931][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:05:09,717 [DEBUG][       Thread-609931][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:05:09,717 [DEBUG][       Thread-609931][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:05:09,718 [DEBUG][       Thread-609931][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:05:09,718 [DEBUG][       Thread-609931][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:05:09,718 [DEBUG][       Thread-609931][   transport.py][1871] : Compression: none
2025-07-01 16:05:09,718 [DEBUG][       Thread-609931][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:05:09,733 [DEBUG][       Thread-609931][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:05:09,733 [DEBUG][       Thread-609931][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:05:09,734 [DEBUG][       Thread-609931][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:05:09,734 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:05:09,734 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:05:09,736 [DEBUG][       Thread-609931][   transport.py][1871] : userauth is OK
2025-07-01 16:05:09,760 [ INFO][       Thread-609931][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:05:09,761 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:05:10,390 [DEBUG][       Thread-609931][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:05:10,390 [DEBUG][       Thread-609931][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:05:10,433 [DEBUG][       Thread-609931][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:05:10,433 [DEBUG][       Thread-609931][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:05:10,435 [DEBUG][       Thread-609931][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:05:10,443 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:05:10,443 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:05:10,444 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:05:10,445 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:05:10,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:05:10,451 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:05:10,451 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:05:10,451 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:05:10,451 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.586745 -999.00  +14.10  31.46     50   +4.00 1 2 2 1 1   887    0 10.77 29.06 ----- 30.5 31.5 25.4 38.5 15.9 -23.2 15.3 -22.7 15.7 -22.1 16.1 -21.7
2025-07-01 16:05:10,451 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:05:10,451 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:05:10,452 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.586745
2025-07-01 16:05:10,452 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:05:10,452 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:05:10,452 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:05:10,452 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:05:10,452 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:05:10,453 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:04:49', tmtdew=11.46, humidity=45.88, cloud=0.0, wind=36.5, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:04:54.768', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:05:10,453 [DEBUG][       Thread-609931][   transport.py][1871] : EOF in transport thread
2025-07-01 16:05:10,536 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:05:10,548 [DEBUG][       Thread-609934][   transport.py][1871] : starting thread (client mode): 0x75a9f90
2025-07-01 16:05:10,548 [DEBUG][       Thread-609934][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:05:10,566 [DEBUG][       Thread-609934][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:05:10,566 [ INFO][       Thread-609934][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:05:10,573 [DEBUG][       Thread-609934][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:05:10,573 [DEBUG][       Thread-609934][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:05:10,573 [DEBUG][       Thread-609934][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:05:10,574 [DEBUG][       Thread-609934][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:05:10,574 [DEBUG][       Thread-609934][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:05:10,574 [DEBUG][       Thread-609934][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:05:10,574 [DEBUG][       Thread-609934][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:05:10,574 [DEBUG][       Thread-609934][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:05:10,574 [DEBUG][       Thread-609934][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:05:10,574 [DEBUG][       Thread-609934][   transport.py][1871] : client lang: <none>
2025-07-01 16:05:10,574 [DEBUG][       Thread-609934][   transport.py][1871] : server lang: <none>
2025-07-01 16:05:10,574 [DEBUG][       Thread-609934][   transport.py][1871] : kex follows: False
2025-07-01 16:05:10,574 [DEBUG][       Thread-609934][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:05:10,574 [DEBUG][       Thread-609934][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:05:10,574 [DEBUG][       Thread-609934][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:05:10,574 [DEBUG][       Thread-609934][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:05:10,574 [DEBUG][       Thread-609934][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:05:10,574 [DEBUG][       Thread-609934][   transport.py][1871] : Compression: none
2025-07-01 16:05:10,574 [DEBUG][       Thread-609934][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:05:10,633 [DEBUG][       Thread-609934][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:05:10,634 [DEBUG][       Thread-609934][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:05:10,634 [DEBUG][       Thread-609934][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:05:10,635 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:05:10,635 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:05:10,695 [DEBUG][       Thread-609934][   transport.py][1871] : userauth is OK
2025-07-01 16:05:10,695 [DEBUG][       Thread-609934][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:05:10,695 [DEBUG][       Thread-609934][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:05:10,695 [DEBUG][       Thread-609934][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:05:10,695 [DEBUG][       Thread-609934][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:05:10,714 [ INFO][       Thread-609934][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:05:10,715 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:05:10,715 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:05:11,074 [DEBUG][Thread-609936 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:05:11,752 [DEBUG][       Thread-609934][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:05:11,752 [DEBUG][       Thread-609934][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:05:11,808 [DEBUG][       Thread-609934][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:05:11,808 [DEBUG][       Thread-609934][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:05:11,824 [DEBUG][       Thread-609934][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:05:11,833 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:05:11,833 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 16:05:11,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-07-01 16:05:11,853 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:05:11,853 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:05:11,854 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:05:11,862 [DEBUG][       Thread-609934][   transport.py][1871] : EOF in transport thread
2025-07-01 16:05:20,096 [DEBUG][Thread-609937 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:05:21,864 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:05:21,864 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:05:21,864 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:05:21,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-07-01 16:05:22,395 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 4, 49), 11.46, 45.88, 0.0, 36.5, 14.02, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:05:22,395 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:04:49
2025-07-01 16:05:22,488 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:05:22,494 [DEBUG][       Thread-609938][   transport.py][1871] : starting thread (client mode): 0x81db010
2025-07-01 16:05:22,495 [DEBUG][       Thread-609938][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:05:22,515 [DEBUG][       Thread-609938][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:05:22,515 [ INFO][       Thread-609938][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:05:22,518 [DEBUG][       Thread-609938][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:05:22,518 [DEBUG][       Thread-609938][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:05:22,518 [DEBUG][       Thread-609938][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:05:22,518 [DEBUG][       Thread-609938][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:05:22,518 [DEBUG][       Thread-609938][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:05:22,518 [DEBUG][       Thread-609938][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:05:22,518 [DEBUG][       Thread-609938][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:05:22,518 [DEBUG][       Thread-609938][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:05:22,518 [DEBUG][       Thread-609938][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:05:22,518 [DEBUG][       Thread-609938][   transport.py][1871] : client lang: <none>
2025-07-01 16:05:22,518 [DEBUG][       Thread-609938][   transport.py][1871] : server lang: <none>
2025-07-01 16:05:22,518 [DEBUG][       Thread-609938][   transport.py][1871] : kex follows: False
2025-07-01 16:05:22,518 [DEBUG][       Thread-609938][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:05:22,518 [DEBUG][       Thread-609938][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:05:22,518 [DEBUG][       Thread-609938][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:05:22,518 [DEBUG][       Thread-609938][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:05:22,518 [DEBUG][       Thread-609938][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:05:22,518 [DEBUG][       Thread-609938][   transport.py][1871] : Compression: none
2025-07-01 16:05:22,518 [DEBUG][       Thread-609938][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:05:22,535 [DEBUG][       Thread-609938][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:05:22,535 [DEBUG][       Thread-609938][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:05:22,535 [DEBUG][       Thread-609938][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:05:22,535 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:05:22,535 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:05:22,535 [DEBUG][       Thread-609938][   transport.py][1871] : userauth is OK
2025-07-01 16:05:22,548 [ INFO][       Thread-609938][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:05:22,548 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:05:23,345 [DEBUG][       Thread-609938][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:05:23,345 [DEBUG][       Thread-609938][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:05:23,389 [DEBUG][       Thread-609938][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:05:23,389 [DEBUG][       Thread-609938][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:05:23,393 [DEBUG][       Thread-609938][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:05:23,404 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:05:23,405 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:05:23,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:05:23,409 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:05:23,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:05:23,417 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:05:23,417 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:05:23,418 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:05:23,418 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.586745 -999.00  +14.10  31.46     50   +4.00 1 2 2 1 1   887    0 10.77 29.06 ----- 30.5 31.5 25.4 38.5 15.9 -23.2 15.3 -22.7 15.7 -22.1 16.1 -21.7
2025-07-01 16:05:23,418 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:05:23,418 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:05:23,418 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.586745
2025-07-01 16:05:23,419 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:05:23,419 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:05:23,419 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:05:23,420 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:05:23,420 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:05:23,420 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:04:49', tmtdew=11.46, humidity=45.88, cloud=0.0, wind=36.5, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:04:54.768', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:05:23,421 [DEBUG][       Thread-609938][   transport.py][1871] : EOF in transport thread
2025-07-01 16:05:23,505 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:05:23,516 [DEBUG][       Thread-609941][   transport.py][1871] : starting thread (client mode): 0x81c9120
2025-07-01 16:05:23,516 [DEBUG][       Thread-609941][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:05:23,531 [DEBUG][       Thread-609941][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:05:23,531 [ INFO][       Thread-609941][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:05:23,538 [DEBUG][       Thread-609941][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:05:23,539 [DEBUG][       Thread-609941][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:05:23,539 [DEBUG][       Thread-609941][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:05:23,539 [DEBUG][       Thread-609941][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:05:23,539 [DEBUG][       Thread-609941][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:05:23,539 [DEBUG][       Thread-609941][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:05:23,539 [DEBUG][       Thread-609941][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:05:23,539 [DEBUG][       Thread-609941][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:05:23,539 [DEBUG][       Thread-609941][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:05:23,539 [DEBUG][       Thread-609941][   transport.py][1871] : client lang: <none>
2025-07-01 16:05:23,539 [DEBUG][       Thread-609941][   transport.py][1871] : server lang: <none>
2025-07-01 16:05:23,539 [DEBUG][       Thread-609941][   transport.py][1871] : kex follows: False
2025-07-01 16:05:23,539 [DEBUG][       Thread-609941][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:05:23,539 [DEBUG][       Thread-609941][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:05:23,539 [DEBUG][       Thread-609941][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:05:23,539 [DEBUG][       Thread-609941][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:05:23,539 [DEBUG][       Thread-609941][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:05:23,539 [DEBUG][       Thread-609941][   transport.py][1871] : Compression: none
2025-07-01 16:05:23,539 [DEBUG][       Thread-609941][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:05:23,594 [DEBUG][       Thread-609941][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:05:23,595 [DEBUG][       Thread-609941][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:05:23,596 [DEBUG][       Thread-609941][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:05:23,596 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:05:23,597 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:05:23,651 [DEBUG][       Thread-609941][   transport.py][1871] : userauth is OK
2025-07-01 16:05:23,651 [DEBUG][       Thread-609941][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:05:23,652 [DEBUG][       Thread-609941][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:05:23,652 [DEBUG][       Thread-609941][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:05:23,652 [DEBUG][       Thread-609941][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:05:23,671 [ INFO][       Thread-609941][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:05:23,671 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:05:23,672 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:05:24,679 [DEBUG][       Thread-609941][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:05:24,680 [DEBUG][       Thread-609941][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:05:24,731 [DEBUG][       Thread-609941][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:05:24,731 [DEBUG][       Thread-609941][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:05:24,740 [DEBUG][       Thread-609941][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:05:24,748 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:05:24,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-07-01 16:05:24,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-07-01 16:05:24,766 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:05:24,766 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:05:24,766 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:05:24,777 [DEBUG][       Thread-609941][   transport.py][1871] : EOF in transport thread
2025-07-01 16:05:29,120 [DEBUG][Thread-609943 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:05:34,776 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:05:34,776 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:05:34,776 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:05:34,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-07-01 16:05:35,259 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 5, 20), 11.62, 45.36, 0.0, 31.0, 14.08, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:05:35,259 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:05:20
2025-07-01 16:05:35,343 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:05:35,350 [DEBUG][       Thread-609944][   transport.py][1871] : starting thread (client mode): 0x81d97e0
2025-07-01 16:05:35,350 [DEBUG][       Thread-609944][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:05:35,372 [DEBUG][       Thread-609944][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:05:35,372 [ INFO][       Thread-609944][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:05:35,376 [DEBUG][       Thread-609944][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:05:35,376 [DEBUG][       Thread-609944][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:05:35,376 [DEBUG][       Thread-609944][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:05:35,376 [DEBUG][       Thread-609944][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:05:35,376 [DEBUG][       Thread-609944][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:05:35,376 [DEBUG][       Thread-609944][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:05:35,376 [DEBUG][       Thread-609944][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:05:35,376 [DEBUG][       Thread-609944][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:05:35,376 [DEBUG][       Thread-609944][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:05:35,376 [DEBUG][       Thread-609944][   transport.py][1871] : client lang: <none>
2025-07-01 16:05:35,376 [DEBUG][       Thread-609944][   transport.py][1871] : server lang: <none>
2025-07-01 16:05:35,376 [DEBUG][       Thread-609944][   transport.py][1871] : kex follows: False
2025-07-01 16:05:35,376 [DEBUG][       Thread-609944][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:05:35,376 [DEBUG][       Thread-609944][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:05:35,376 [DEBUG][       Thread-609944][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:05:35,376 [DEBUG][       Thread-609944][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:05:35,376 [DEBUG][       Thread-609944][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:05:35,376 [DEBUG][       Thread-609944][   transport.py][1871] : Compression: none
2025-07-01 16:05:35,376 [DEBUG][       Thread-609944][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:05:35,394 [DEBUG][       Thread-609944][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:05:35,394 [DEBUG][       Thread-609944][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:05:35,395 [DEBUG][       Thread-609944][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:05:35,395 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:05:35,395 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:05:35,396 [DEBUG][       Thread-609944][   transport.py][1871] : userauth is OK
2025-07-01 16:05:35,421 [ INFO][       Thread-609944][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:05:35,422 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:05:36,222 [DEBUG][       Thread-609944][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:05:36,223 [DEBUG][       Thread-609944][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:05:36,265 [DEBUG][       Thread-609944][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:05:36,265 [DEBUG][       Thread-609944][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:05:36,268 [DEBUG][       Thread-609944][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:05:36,282 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:05:36,282 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:05:36,284 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:05:36,285 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:05:36,291 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:05:36,293 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:05:36,293 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:05:36,293 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:05:36,294 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.586745 -999.00  +14.10  31.46     50   +4.00 1 2 2 1 1   887    0 10.77 29.06 ----- 30.5 31.5 25.4 38.5 15.9 -23.2 15.3 -22.7 15.7 -22.1 16.1 -21.7
2025-07-01 16:05:36,294 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:05:36,294 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:05:36,294 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.586745
2025-07-01 16:05:36,294 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:05:36,295 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:05:36,295 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:05:36,295 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:05:36,295 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:05:36,295 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:05:20', tmtdew=11.62, humidity=45.36, cloud=0.0, wind=31.0, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:04:54.768', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:05:36,295 [DEBUG][       Thread-609944][   transport.py][1871] : EOF in transport thread
2025-07-01 16:05:36,379 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:05:36,388 [DEBUG][       Thread-609947][   transport.py][1871] : starting thread (client mode): 0x81c9810
2025-07-01 16:05:36,388 [DEBUG][       Thread-609947][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:05:36,406 [DEBUG][       Thread-609947][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:05:36,406 [ INFO][       Thread-609947][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:05:36,413 [DEBUG][       Thread-609947][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:05:36,413 [DEBUG][       Thread-609947][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:05:36,413 [DEBUG][       Thread-609947][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:05:36,413 [DEBUG][       Thread-609947][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:05:36,413 [DEBUG][       Thread-609947][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:05:36,413 [DEBUG][       Thread-609947][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:05:36,413 [DEBUG][       Thread-609947][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:05:36,413 [DEBUG][       Thread-609947][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:05:36,413 [DEBUG][       Thread-609947][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:05:36,414 [DEBUG][       Thread-609947][   transport.py][1871] : client lang: <none>
2025-07-01 16:05:36,414 [DEBUG][       Thread-609947][   transport.py][1871] : server lang: <none>
2025-07-01 16:05:36,414 [DEBUG][       Thread-609947][   transport.py][1871] : kex follows: False
2025-07-01 16:05:36,414 [DEBUG][       Thread-609947][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:05:36,414 [DEBUG][       Thread-609947][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:05:36,414 [DEBUG][       Thread-609947][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:05:36,414 [DEBUG][       Thread-609947][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:05:36,414 [DEBUG][       Thread-609947][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:05:36,414 [DEBUG][       Thread-609947][   transport.py][1871] : Compression: none
2025-07-01 16:05:36,414 [DEBUG][       Thread-609947][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:05:36,475 [DEBUG][       Thread-609947][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:05:36,475 [DEBUG][       Thread-609947][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:05:36,476 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:05:36,476 [DEBUG][       Thread-609947][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:05:36,477 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:05:36,539 [DEBUG][       Thread-609947][   transport.py][1871] : userauth is OK
2025-07-01 16:05:36,539 [DEBUG][       Thread-609947][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:05:36,539 [DEBUG][       Thread-609947][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:05:36,540 [DEBUG][       Thread-609947][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:05:36,540 [DEBUG][       Thread-609947][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:05:36,559 [ INFO][       Thread-609947][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:05:36,559 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:05:36,560 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:05:37,602 [DEBUG][       Thread-609947][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:05:37,603 [DEBUG][       Thread-609947][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:05:37,656 [DEBUG][       Thread-609947][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:05:37,656 [DEBUG][       Thread-609947][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:05:37,665 [DEBUG][       Thread-609947][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:05:37,674 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:05:37,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-07-01 16:05:37,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-07-01 16:05:37,692 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:05:37,692 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:05:37,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:05:37,700 [DEBUG][       Thread-609947][   transport.py][1871] : EOF in transport thread
2025-07-01 16:05:37,992 [DEBUG][Thread-609949 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:05:38,142 [DEBUG][Thread-609950 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:05:47,177 [DEBUG][Thread-609951 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:05:47,703 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:05:47,703 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:05:47,703 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:05:47,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-07-01 16:05:48,199 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 5, 20), 11.62, 45.36, 0.0, 31.0, 14.08, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:05:48,199 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:05:20
2025-07-01 16:05:48,284 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:05:48,287 [DEBUG][       Thread-609952][   transport.py][1871] : starting thread (client mode): 0x81a7370
2025-07-01 16:05:48,287 [DEBUG][       Thread-609952][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:05:48,307 [DEBUG][       Thread-609952][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:05:48,307 [ INFO][       Thread-609952][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:05:48,310 [DEBUG][       Thread-609952][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:05:48,310 [DEBUG][       Thread-609952][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:05:48,310 [DEBUG][       Thread-609952][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:05:48,310 [DEBUG][       Thread-609952][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:05:48,310 [DEBUG][       Thread-609952][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:05:48,310 [DEBUG][       Thread-609952][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:05:48,310 [DEBUG][       Thread-609952][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:05:48,310 [DEBUG][       Thread-609952][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:05:48,310 [DEBUG][       Thread-609952][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:05:48,310 [DEBUG][       Thread-609952][   transport.py][1871] : client lang: <none>
2025-07-01 16:05:48,310 [DEBUG][       Thread-609952][   transport.py][1871] : server lang: <none>
2025-07-01 16:05:48,310 [DEBUG][       Thread-609952][   transport.py][1871] : kex follows: False
2025-07-01 16:05:48,310 [DEBUG][       Thread-609952][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:05:48,310 [DEBUG][       Thread-609952][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:05:48,310 [DEBUG][       Thread-609952][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:05:48,310 [DEBUG][       Thread-609952][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:05:48,310 [DEBUG][       Thread-609952][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:05:48,310 [DEBUG][       Thread-609952][   transport.py][1871] : Compression: none
2025-07-01 16:05:48,310 [DEBUG][       Thread-609952][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:05:48,325 [DEBUG][       Thread-609952][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:05:48,325 [DEBUG][       Thread-609952][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:05:48,325 [DEBUG][       Thread-609952][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:05:48,325 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:05:48,325 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:05:48,326 [DEBUG][       Thread-609952][   transport.py][1871] : userauth is OK
2025-07-01 16:05:48,349 [ INFO][       Thread-609952][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:05:48,350 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:05:49,025 [DEBUG][       Thread-609952][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:05:49,025 [DEBUG][       Thread-609952][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:05:49,069 [DEBUG][       Thread-609952][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:05:49,069 [DEBUG][       Thread-609952][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:05:49,072 [DEBUG][       Thread-609952][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:05:49,086 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:05:49,086 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:05:49,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:05:49,090 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:05:49,096 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:05:49,098 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:05:49,099 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:05:49,099 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:05:49,099 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.587092 -999.00  +14.00  31.75     50   +3.90 1 2 2 1 1   887    0 10.62 30.64 ----- 27.8 31.8 28.4 46.1 15.8 -23.2 15.3 -22.8 15.6 -22.2 16.1 -22.1
2025-07-01 16:05:49,099 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:05:49,100 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:05:49,100 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.587092
2025-07-01 16:05:49,100 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:05:49,101 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:05:49,101 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:05:49,101 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:05:49,101 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:05:49,101 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:05:20', tmtdew=11.62, humidity=45.36, cloud=0.0, wind=31.0, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:05:24.749', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:05:49,102 [DEBUG][       Thread-609952][   transport.py][1871] : EOF in transport thread
2025-07-01 16:05:49,185 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:05:49,197 [DEBUG][       Thread-609955][   transport.py][1871] : starting thread (client mode): 0x818f400
2025-07-01 16:05:49,197 [DEBUG][       Thread-609955][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:05:49,211 [DEBUG][       Thread-609955][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:05:49,211 [ INFO][       Thread-609955][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:05:49,219 [DEBUG][       Thread-609955][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:05:49,219 [DEBUG][       Thread-609955][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:05:49,219 [DEBUG][       Thread-609955][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:05:49,219 [DEBUG][       Thread-609955][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:05:49,219 [DEBUG][       Thread-609955][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:05:49,219 [DEBUG][       Thread-609955][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:05:49,219 [DEBUG][       Thread-609955][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:05:49,219 [DEBUG][       Thread-609955][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:05:49,219 [DEBUG][       Thread-609955][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:05:49,219 [DEBUG][       Thread-609955][   transport.py][1871] : client lang: <none>
2025-07-01 16:05:49,219 [DEBUG][       Thread-609955][   transport.py][1871] : server lang: <none>
2025-07-01 16:05:49,219 [DEBUG][       Thread-609955][   transport.py][1871] : kex follows: False
2025-07-01 16:05:49,219 [DEBUG][       Thread-609955][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:05:49,219 [DEBUG][       Thread-609955][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:05:49,219 [DEBUG][       Thread-609955][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:05:49,219 [DEBUG][       Thread-609955][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:05:49,220 [DEBUG][       Thread-609955][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:05:49,220 [DEBUG][       Thread-609955][   transport.py][1871] : Compression: none
2025-07-01 16:05:49,220 [DEBUG][       Thread-609955][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:05:49,279 [DEBUG][       Thread-609955][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:05:49,280 [DEBUG][       Thread-609955][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:05:49,280 [DEBUG][       Thread-609955][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:05:49,280 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:05:49,281 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:05:49,334 [DEBUG][       Thread-609955][   transport.py][1871] : userauth is OK
2025-07-01 16:05:49,335 [DEBUG][       Thread-609955][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:05:49,335 [DEBUG][       Thread-609955][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:05:49,335 [DEBUG][       Thread-609955][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:05:49,335 [DEBUG][       Thread-609955][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:05:49,354 [ INFO][       Thread-609955][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:05:49,354 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:05:49,355 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:05:50,450 [DEBUG][       Thread-609955][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:05:50,450 [DEBUG][       Thread-609955][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:05:50,500 [DEBUG][       Thread-609955][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:05:50,500 [DEBUG][       Thread-609955][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:05:50,510 [DEBUG][       Thread-609955][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:05:50,518 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:05:50,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')
2025-07-01 16:05:50,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-07-01 16:05:50,536 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:05:50,536 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:05:50,537 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:05:50,545 [DEBUG][       Thread-609955][   transport.py][1871] : EOF in transport thread
2025-07-01 16:05:56,199 [DEBUG][Thread-609957 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:06:00,541 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:06:00,541 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:06:00,541 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:06:00,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-07-01 16:06:01,027 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 5, 52), 11.54, 45.57, 0.0, 31.79, 14.01, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:06:01,027 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:05:52
2025-07-01 16:06:01,111 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:06:01,117 [DEBUG][       Thread-609958][   transport.py][1871] : starting thread (client mode): 0x81e42e0
2025-07-01 16:06:01,117 [DEBUG][       Thread-609958][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:06:01,138 [DEBUG][       Thread-609958][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:06:01,138 [ INFO][       Thread-609958][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:06:01,141 [DEBUG][       Thread-609958][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:06:01,141 [DEBUG][       Thread-609958][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:06:01,141 [DEBUG][       Thread-609958][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:06:01,141 [DEBUG][       Thread-609958][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:06:01,141 [DEBUG][       Thread-609958][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:06:01,141 [DEBUG][       Thread-609958][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:06:01,141 [DEBUG][       Thread-609958][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:06:01,141 [DEBUG][       Thread-609958][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:06:01,142 [DEBUG][       Thread-609958][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:06:01,142 [DEBUG][       Thread-609958][   transport.py][1871] : client lang: <none>
2025-07-01 16:06:01,142 [DEBUG][       Thread-609958][   transport.py][1871] : server lang: <none>
2025-07-01 16:06:01,142 [DEBUG][       Thread-609958][   transport.py][1871] : kex follows: False
2025-07-01 16:06:01,142 [DEBUG][       Thread-609958][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:06:01,142 [DEBUG][       Thread-609958][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:06:01,142 [DEBUG][       Thread-609958][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:06:01,142 [DEBUG][       Thread-609958][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:06:01,142 [DEBUG][       Thread-609958][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:06:01,142 [DEBUG][       Thread-609958][   transport.py][1871] : Compression: none
2025-07-01 16:06:01,142 [DEBUG][       Thread-609958][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:06:01,159 [DEBUG][       Thread-609958][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:06:01,159 [DEBUG][       Thread-609958][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:06:01,159 [DEBUG][       Thread-609958][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:06:01,160 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:06:01,160 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:06:01,161 [DEBUG][       Thread-609958][   transport.py][1871] : userauth is OK
2025-07-01 16:06:01,186 [ INFO][       Thread-609958][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:06:01,187 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:06:01,969 [DEBUG][       Thread-609958][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:06:01,969 [DEBUG][       Thread-609958][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:06:02,013 [DEBUG][       Thread-609958][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:06:02,013 [DEBUG][       Thread-609958][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:06:02,016 [DEBUG][       Thread-609958][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:06:02,029 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:06:02,029 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:06:02,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:06:02,033 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:06:02,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:06:02,041 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:06:02,041 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:06:02,041 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:06:02,042 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.587092 -999.00  +14.00  31.75     50   +3.90 1 2 2 1 1   887    0 10.62 30.64 ----- 27.8 31.8 28.4 46.1 15.8 -23.2 15.3 -22.8 15.6 -22.2 16.1 -22.1
2025-07-01 16:06:02,042 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:06:02,042 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:06:02,042 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.587092
2025-07-01 16:06:02,042 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:06:02,043 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:06:02,043 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:06:02,043 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:06:02,043 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:06:02,043 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:05:52', tmtdew=11.54, humidity=45.57, cloud=0.0, wind=31.79, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:05:24.749', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:06:02,043 [DEBUG][       Thread-609958][   transport.py][1871] : EOF in transport thread
2025-07-01 16:06:02,124 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:06:02,133 [DEBUG][       Thread-609961][   transport.py][1871] : starting thread (client mode): 0x8171810
2025-07-01 16:06:02,133 [DEBUG][       Thread-609961][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:06:02,151 [DEBUG][       Thread-609961][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:06:02,151 [ INFO][       Thread-609961][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:06:02,159 [DEBUG][       Thread-609961][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:06:02,159 [DEBUG][       Thread-609961][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:06:02,159 [DEBUG][       Thread-609961][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:06:02,159 [DEBUG][       Thread-609961][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:06:02,159 [DEBUG][       Thread-609961][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:06:02,159 [DEBUG][       Thread-609961][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:06:02,159 [DEBUG][       Thread-609961][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:06:02,159 [DEBUG][       Thread-609961][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:06:02,159 [DEBUG][       Thread-609961][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:06:02,159 [DEBUG][       Thread-609961][   transport.py][1871] : client lang: <none>
2025-07-01 16:06:02,159 [DEBUG][       Thread-609961][   transport.py][1871] : server lang: <none>
2025-07-01 16:06:02,159 [DEBUG][       Thread-609961][   transport.py][1871] : kex follows: False
2025-07-01 16:06:02,159 [DEBUG][       Thread-609961][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:06:02,159 [DEBUG][       Thread-609961][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:06:02,159 [DEBUG][       Thread-609961][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:06:02,159 [DEBUG][       Thread-609961][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:06:02,159 [DEBUG][       Thread-609961][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:06:02,159 [DEBUG][       Thread-609961][   transport.py][1871] : Compression: none
2025-07-01 16:06:02,159 [DEBUG][       Thread-609961][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:06:02,224 [DEBUG][       Thread-609961][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:06:02,225 [DEBUG][       Thread-609961][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:06:02,225 [DEBUG][       Thread-609961][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:06:02,226 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:06:02,226 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:06:02,282 [DEBUG][       Thread-609961][   transport.py][1871] : userauth is OK
2025-07-01 16:06:02,283 [DEBUG][       Thread-609961][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:06:02,283 [DEBUG][       Thread-609961][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:06:02,283 [DEBUG][       Thread-609961][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:06:02,283 [DEBUG][       Thread-609961][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:06:02,306 [ INFO][       Thread-609961][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:06:02,306 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:06:02,306 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:06:03,347 [DEBUG][       Thread-609961][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:06:03,348 [DEBUG][       Thread-609961][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:06:03,396 [DEBUG][       Thread-609961][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:06:03,396 [DEBUG][       Thread-609961][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:06:03,405 [DEBUG][       Thread-609961][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:06:03,414 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:06:03,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')
2025-07-01 16:06:03,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-07-01 16:06:03,437 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:06:03,437 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:06:03,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:06:03,451 [DEBUG][       Thread-609961][   transport.py][1871] : EOF in transport thread
2025-07-01 16:06:05,221 [DEBUG][Thread-609963 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:06:13,448 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:06:13,449 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:06:13,449 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:06:13,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-07-01 16:06:13,932 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 5, 52), 11.54, 45.57, 0.0, 31.79, 14.01, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:06:13,932 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:05:52
2025-07-01 16:06:14,017 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:06:14,021 [DEBUG][       Thread-609964][   transport.py][1871] : starting thread (client mode): 0x81a4dc0
2025-07-01 16:06:14,021 [DEBUG][       Thread-609964][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:06:14,041 [DEBUG][       Thread-609964][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:06:14,041 [ INFO][       Thread-609964][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:06:14,044 [DEBUG][       Thread-609964][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:06:14,044 [DEBUG][       Thread-609964][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:06:14,044 [DEBUG][       Thread-609964][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:06:14,044 [DEBUG][       Thread-609964][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:06:14,044 [DEBUG][       Thread-609964][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:06:14,044 [DEBUG][       Thread-609964][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:06:14,045 [DEBUG][       Thread-609964][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:06:14,045 [DEBUG][       Thread-609964][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:06:14,045 [DEBUG][       Thread-609964][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:06:14,045 [DEBUG][       Thread-609964][   transport.py][1871] : client lang: <none>
2025-07-01 16:06:14,045 [DEBUG][       Thread-609964][   transport.py][1871] : server lang: <none>
2025-07-01 16:06:14,045 [DEBUG][       Thread-609964][   transport.py][1871] : kex follows: False
2025-07-01 16:06:14,045 [DEBUG][       Thread-609964][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:06:14,045 [DEBUG][       Thread-609964][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:06:14,045 [DEBUG][       Thread-609964][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:06:14,045 [DEBUG][       Thread-609964][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:06:14,045 [DEBUG][       Thread-609964][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:06:14,045 [DEBUG][       Thread-609964][   transport.py][1871] : Compression: none
2025-07-01 16:06:14,045 [DEBUG][       Thread-609964][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:06:14,062 [DEBUG][       Thread-609964][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:06:14,062 [DEBUG][       Thread-609964][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:06:14,062 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:06:14,063 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:06:14,063 [DEBUG][       Thread-609964][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:06:14,064 [DEBUG][       Thread-609964][   transport.py][1871] : userauth is OK
2025-07-01 16:06:14,077 [ INFO][       Thread-609964][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:06:14,078 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:06:14,256 [DEBUG][Thread-609966 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:06:14,691 [DEBUG][       Thread-609964][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:06:14,691 [DEBUG][       Thread-609964][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:06:14,733 [DEBUG][       Thread-609964][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:06:14,733 [DEBUG][       Thread-609964][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:06:14,736 [DEBUG][       Thread-609964][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:06:14,750 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:06:14,750 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:06:14,752 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:06:14,754 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:06:14,760 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:06:14,763 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:06:14,763 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:06:14,763 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:06:14,764 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.587439 -999.00  +14.00  34.72     50   +3.80 1 2 2 1 1   887    0 10.87 31.98 ----- 26.6 34.7 16.0 42.0 15.8 -22.8 15.3 -23.3 15.6 -22.1 16.0 -23.3
2025-07-01 16:06:14,764 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:06:14,764 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:06:14,764 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.587439
2025-07-01 16:06:14,764 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:06:14,765 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:06:14,765 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:06:14,765 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:06:14,765 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:06:14,765 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:05:52', tmtdew=11.54, humidity=45.57, cloud=0.0, wind=31.79, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:05:54.730', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:06:14,766 [DEBUG][       Thread-609964][   transport.py][1871] : EOF in transport thread
2025-07-01 16:06:14,851 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:06:14,863 [DEBUG][       Thread-609968][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 16:06:14,863 [DEBUG][       Thread-609968][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:06:14,878 [DEBUG][       Thread-609968][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:06:14,878 [ INFO][       Thread-609968][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:06:14,886 [DEBUG][       Thread-609968][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:06:14,886 [DEBUG][       Thread-609968][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:06:14,886 [DEBUG][       Thread-609968][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:06:14,886 [DEBUG][       Thread-609968][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:06:14,886 [DEBUG][       Thread-609968][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:06:14,886 [DEBUG][       Thread-609968][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:06:14,886 [DEBUG][       Thread-609968][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:06:14,886 [DEBUG][       Thread-609968][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:06:14,886 [DEBUG][       Thread-609968][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:06:14,886 [DEBUG][       Thread-609968][   transport.py][1871] : client lang: <none>
2025-07-01 16:06:14,886 [DEBUG][       Thread-609968][   transport.py][1871] : server lang: <none>
2025-07-01 16:06:14,886 [DEBUG][       Thread-609968][   transport.py][1871] : kex follows: False
2025-07-01 16:06:14,886 [DEBUG][       Thread-609968][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:06:14,886 [DEBUG][       Thread-609968][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:06:14,886 [DEBUG][       Thread-609968][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:06:14,887 [DEBUG][       Thread-609968][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:06:14,887 [DEBUG][       Thread-609968][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:06:14,887 [DEBUG][       Thread-609968][   transport.py][1871] : Compression: none
2025-07-01 16:06:14,887 [DEBUG][       Thread-609968][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:06:14,947 [DEBUG][       Thread-609968][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:06:14,947 [DEBUG][       Thread-609968][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:06:14,948 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:06:14,949 [DEBUG][       Thread-609968][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:06:14,949 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:06:15,009 [DEBUG][       Thread-609968][   transport.py][1871] : userauth is OK
2025-07-01 16:06:15,009 [DEBUG][       Thread-609968][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:06:15,009 [DEBUG][       Thread-609968][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:06:15,009 [DEBUG][       Thread-609968][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:06:15,009 [DEBUG][       Thread-609968][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:06:15,029 [ INFO][       Thread-609968][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:06:15,029 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:06:15,030 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:06:16,082 [DEBUG][       Thread-609968][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:06:16,082 [DEBUG][       Thread-609968][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:06:16,132 [DEBUG][       Thread-609968][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:06:16,132 [DEBUG][       Thread-609968][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:06:16,142 [DEBUG][       Thread-609968][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:06:16,151 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:06:16,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-07-01 16:06:16,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-07-01 16:06:16,169 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:06:16,170 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:06:16,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:06:16,178 [DEBUG][       Thread-609968][   transport.py][1871] : EOF in transport thread
2025-07-01 16:06:23,278 [DEBUG][Thread-609970 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:06:26,180 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:06:26,180 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:06:26,180 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:06:26,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-07-01 16:06:26,697 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 5, 52), 11.54, 45.57, 0.0, 31.79, 14.01, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:06:26,697 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:05:52
2025-07-01 16:06:26,781 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:06:26,788 [DEBUG][       Thread-609971][   transport.py][1871] : starting thread (client mode): 0x75aad10
2025-07-01 16:06:26,788 [DEBUG][       Thread-609971][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:06:26,808 [DEBUG][       Thread-609971][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:06:26,808 [ INFO][       Thread-609971][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:06:26,811 [DEBUG][       Thread-609971][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:06:26,811 [DEBUG][       Thread-609971][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:06:26,811 [DEBUG][       Thread-609971][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:06:26,812 [DEBUG][       Thread-609971][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:06:26,812 [DEBUG][       Thread-609971][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:06:26,812 [DEBUG][       Thread-609971][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:06:26,812 [DEBUG][       Thread-609971][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:06:26,812 [DEBUG][       Thread-609971][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:06:26,812 [DEBUG][       Thread-609971][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:06:26,812 [DEBUG][       Thread-609971][   transport.py][1871] : client lang: <none>
2025-07-01 16:06:26,812 [DEBUG][       Thread-609971][   transport.py][1871] : server lang: <none>
2025-07-01 16:06:26,812 [DEBUG][       Thread-609971][   transport.py][1871] : kex follows: False
2025-07-01 16:06:26,812 [DEBUG][       Thread-609971][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:06:26,812 [DEBUG][       Thread-609971][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:06:26,812 [DEBUG][       Thread-609971][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:06:26,812 [DEBUG][       Thread-609971][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:06:26,812 [DEBUG][       Thread-609971][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:06:26,812 [DEBUG][       Thread-609971][   transport.py][1871] : Compression: none
2025-07-01 16:06:26,812 [DEBUG][       Thread-609971][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:06:26,829 [DEBUG][       Thread-609971][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:06:26,829 [DEBUG][       Thread-609971][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:06:26,830 [DEBUG][       Thread-609971][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:06:26,830 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:06:26,830 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:06:26,831 [DEBUG][       Thread-609971][   transport.py][1871] : userauth is OK
2025-07-01 16:06:26,844 [ INFO][       Thread-609971][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:06:26,845 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:06:27,673 [DEBUG][       Thread-609971][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:06:27,673 [DEBUG][       Thread-609971][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:06:27,717 [DEBUG][       Thread-609971][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:06:27,717 [DEBUG][       Thread-609971][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:06:27,721 [DEBUG][       Thread-609971][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:06:27,735 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:06:27,735 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:06:27,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:06:27,739 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:06:27,745 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:06:27,747 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:06:27,747 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:06:27,747 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:06:27,748 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.587439 -999.00  +14.00  34.72     50   +3.80 1 2 2 1 1   887    0 10.87 31.98 ----- 26.6 34.7 16.0 42.0 15.8 -22.8 15.3 -23.3 15.6 -22.1 16.0 -23.3
2025-07-01 16:06:27,748 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:06:27,748 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:06:27,748 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.587439
2025-07-01 16:06:27,748 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:06:27,749 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:06:27,749 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:06:27,749 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:06:27,749 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:06:27,749 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:05:52', tmtdew=11.54, humidity=45.57, cloud=0.0, wind=31.79, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:05:54.730', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:06:27,750 [DEBUG][       Thread-609971][   transport.py][1871] : EOF in transport thread
2025-07-01 16:06:27,834 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:06:27,845 [DEBUG][       Thread-609974][   transport.py][1871] : starting thread (client mode): 0x81a6f80
2025-07-01 16:06:27,846 [DEBUG][       Thread-609974][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:06:27,864 [DEBUG][       Thread-609974][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:06:27,864 [ INFO][       Thread-609974][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:06:27,872 [DEBUG][       Thread-609974][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:06:27,872 [DEBUG][       Thread-609974][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:06:27,872 [DEBUG][       Thread-609974][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:06:27,872 [DEBUG][       Thread-609974][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:06:27,872 [DEBUG][       Thread-609974][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:06:27,872 [DEBUG][       Thread-609974][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:06:27,873 [DEBUG][       Thread-609974][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:06:27,873 [DEBUG][       Thread-609974][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:06:27,873 [DEBUG][       Thread-609974][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:06:27,873 [DEBUG][       Thread-609974][   transport.py][1871] : client lang: <none>
2025-07-01 16:06:27,873 [DEBUG][       Thread-609974][   transport.py][1871] : server lang: <none>
2025-07-01 16:06:27,873 [DEBUG][       Thread-609974][   transport.py][1871] : kex follows: False
2025-07-01 16:06:27,873 [DEBUG][       Thread-609974][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:06:27,873 [DEBUG][       Thread-609974][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:06:27,873 [DEBUG][       Thread-609974][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:06:27,873 [DEBUG][       Thread-609974][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:06:27,873 [DEBUG][       Thread-609974][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:06:27,873 [DEBUG][       Thread-609974][   transport.py][1871] : Compression: none
2025-07-01 16:06:27,873 [DEBUG][       Thread-609974][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:06:27,931 [DEBUG][       Thread-609974][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:06:27,931 [DEBUG][       Thread-609974][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:06:27,932 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:06:27,933 [DEBUG][       Thread-609974][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:06:27,933 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:06:27,986 [DEBUG][       Thread-609974][   transport.py][1871] : userauth is OK
2025-07-01 16:06:27,987 [DEBUG][       Thread-609974][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:06:27,987 [DEBUG][       Thread-609974][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:06:27,987 [DEBUG][       Thread-609974][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:06:27,987 [DEBUG][       Thread-609974][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:06:28,005 [ INFO][       Thread-609974][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:06:28,006 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:06:28,006 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:06:29,034 [DEBUG][       Thread-609974][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:06:29,034 [DEBUG][       Thread-609974][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:06:29,083 [DEBUG][       Thread-609974][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:06:29,083 [DEBUG][       Thread-609974][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:06:29,092 [DEBUG][       Thread-609974][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:06:29,100 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:06: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')
2025-07-01 16:06:29,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-07-01 16:06:29,116 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:06:29,116 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:06:29,116 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:06:29,123 [DEBUG][       Thread-609974][   transport.py][1871] : EOF in transport thread
2025-07-01 16:06:32,297 [DEBUG][Thread-609976 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:06:38,024 [DEBUG][Thread-609977 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:06:39,126 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:06:39,126 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:06:39,126 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:06:39,129 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:06:39,609 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 6, 24), 11.57, 45.61, 0.0, 36.86, 14.02, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:06:39,609 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:06:24
2025-07-01 16:06:39,693 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:06:39,697 [DEBUG][       Thread-609978][   transport.py][1871] : starting thread (client mode): 0x75aa650
2025-07-01 16:06:39,697 [DEBUG][       Thread-609978][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:06:39,717 [DEBUG][       Thread-609978][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:06:39,717 [ INFO][       Thread-609978][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:06:39,720 [DEBUG][       Thread-609978][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:06:39,721 [DEBUG][       Thread-609978][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:06:39,721 [DEBUG][       Thread-609978][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:06:39,721 [DEBUG][       Thread-609978][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:06:39,721 [DEBUG][       Thread-609978][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:06:39,721 [DEBUG][       Thread-609978][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:06:39,721 [DEBUG][       Thread-609978][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:06:39,721 [DEBUG][       Thread-609978][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:06:39,721 [DEBUG][       Thread-609978][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:06:39,721 [DEBUG][       Thread-609978][   transport.py][1871] : client lang: <none>
2025-07-01 16:06:39,721 [DEBUG][       Thread-609978][   transport.py][1871] : server lang: <none>
2025-07-01 16:06:39,721 [DEBUG][       Thread-609978][   transport.py][1871] : kex follows: False
2025-07-01 16:06:39,721 [DEBUG][       Thread-609978][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:06:39,721 [DEBUG][       Thread-609978][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:06:39,721 [DEBUG][       Thread-609978][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:06:39,721 [DEBUG][       Thread-609978][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:06:39,721 [DEBUG][       Thread-609978][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:06:39,721 [DEBUG][       Thread-609978][   transport.py][1871] : Compression: none
2025-07-01 16:06:39,721 [DEBUG][       Thread-609978][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:06:39,738 [DEBUG][       Thread-609978][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:06:39,738 [DEBUG][       Thread-609978][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:06:39,739 [DEBUG][       Thread-609978][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:06:39,739 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:06:39,739 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:06:39,740 [DEBUG][       Thread-609978][   transport.py][1871] : userauth is OK
2025-07-01 16:06:39,764 [ INFO][       Thread-609978][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:06:39,765 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:06:40,566 [DEBUG][       Thread-609978][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:06:40,567 [DEBUG][       Thread-609978][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:06:40,609 [DEBUG][       Thread-609978][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:06:40,609 [DEBUG][       Thread-609978][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:06:40,612 [DEBUG][       Thread-609978][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:06:40,624 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:06:40,625 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:06:40,627 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:06:40,628 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:06:40,633 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:06:40,635 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:06:40,636 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:06:40,636 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:06:40,636 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.587439 -999.00  +14.00  34.72     50   +3.80 1 2 2 1 1   887    0 10.87 31.98 ----- 26.6 34.7 16.0 42.0 15.8 -22.8 15.3 -23.3 15.6 -22.1 16.0 -23.3
2025-07-01 16:06:40,637 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:06:40,637 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:06:40,637 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.587439
2025-07-01 16:06:40,637 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:06:40,638 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:06:40,638 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:06:40,638 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:06:40,638 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:06:40,638 [DEBUG][       Thread-609978][   transport.py][1871] : EOF in transport thread
2025-07-01 16:06:40,639 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:06:24', tmtdew=11.57, humidity=45.61, cloud=0.0, wind=36.86, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:05:54.730', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:06:40,722 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:06:40,733 [DEBUG][       Thread-609981][   transport.py][1871] : starting thread (client mode): 0x8172530
2025-07-01 16:06:40,733 [DEBUG][       Thread-609981][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:06:40,751 [DEBUG][       Thread-609981][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:06:40,751 [ INFO][       Thread-609981][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:06:40,758 [DEBUG][       Thread-609981][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:06:40,759 [DEBUG][       Thread-609981][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:06:40,759 [DEBUG][       Thread-609981][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:06:40,759 [DEBUG][       Thread-609981][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:06:40,759 [DEBUG][       Thread-609981][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:06:40,759 [DEBUG][       Thread-609981][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:06:40,759 [DEBUG][       Thread-609981][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:06:40,759 [DEBUG][       Thread-609981][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:06:40,759 [DEBUG][       Thread-609981][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:06:40,759 [DEBUG][       Thread-609981][   transport.py][1871] : client lang: <none>
2025-07-01 16:06:40,759 [DEBUG][       Thread-609981][   transport.py][1871] : server lang: <none>
2025-07-01 16:06:40,759 [DEBUG][       Thread-609981][   transport.py][1871] : kex follows: False
2025-07-01 16:06:40,759 [DEBUG][       Thread-609981][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:06:40,759 [DEBUG][       Thread-609981][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:06:40,759 [DEBUG][       Thread-609981][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:06:40,759 [DEBUG][       Thread-609981][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:06:40,759 [DEBUG][       Thread-609981][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:06:40,759 [DEBUG][       Thread-609981][   transport.py][1871] : Compression: none
2025-07-01 16:06:40,759 [DEBUG][       Thread-609981][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:06:40,820 [DEBUG][       Thread-609981][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:06:40,821 [DEBUG][       Thread-609981][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:06:40,821 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:06:40,822 [DEBUG][       Thread-609981][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:06:40,823 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:06:40,885 [DEBUG][       Thread-609981][   transport.py][1871] : userauth is OK
2025-07-01 16:06:40,885 [DEBUG][       Thread-609981][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:06:40,886 [DEBUG][       Thread-609981][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:06:40,886 [DEBUG][       Thread-609981][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:06:40,886 [DEBUG][       Thread-609981][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:06:40,904 [ INFO][       Thread-609981][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:06:40,905 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:06:40,905 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:06:41,319 [DEBUG][Thread-609983 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:06:41,949 [DEBUG][       Thread-609981][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:06:41,949 [DEBUG][       Thread-609981][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:06:42,000 [DEBUG][       Thread-609981][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:06:42,000 [DEBUG][       Thread-609981][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:06:42,010 [DEBUG][       Thread-609981][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:06:42,019 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:06: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-07-01 16:06: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-07-01 16:06:42,038 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:06:42,038 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:06:42,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:06:42,046 [DEBUG][       Thread-609981][   transport.py][1871] : EOF in transport thread
2025-07-01 16:06:50,352 [DEBUG][Thread-609984 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:06:52,049 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:06:52,049 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:06:52,049 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:06:52,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-07-01 16:06:52,527 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 6, 24), 11.57, 45.61, 0.0, 36.86, 14.02, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:06:52,527 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:06:24
2025-07-01 16:06:52,611 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:06:52,617 [DEBUG][       Thread-609985][   transport.py][1871] : starting thread (client mode): 0x75a8190
2025-07-01 16:06:52,617 [DEBUG][       Thread-609985][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:06:52,637 [DEBUG][       Thread-609985][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:06:52,637 [ INFO][       Thread-609985][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:06:52,640 [DEBUG][       Thread-609985][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:06:52,640 [DEBUG][       Thread-609985][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:06:52,640 [DEBUG][       Thread-609985][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:06:52,640 [DEBUG][       Thread-609985][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:06:52,640 [DEBUG][       Thread-609985][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:06:52,640 [DEBUG][       Thread-609985][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:06:52,640 [DEBUG][       Thread-609985][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:06:52,640 [DEBUG][       Thread-609985][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:06:52,640 [DEBUG][       Thread-609985][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:06:52,640 [DEBUG][       Thread-609985][   transport.py][1871] : client lang: <none>
2025-07-01 16:06:52,640 [DEBUG][       Thread-609985][   transport.py][1871] : server lang: <none>
2025-07-01 16:06:52,640 [DEBUG][       Thread-609985][   transport.py][1871] : kex follows: False
2025-07-01 16:06:52,640 [DEBUG][       Thread-609985][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:06:52,641 [DEBUG][       Thread-609985][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:06:52,641 [DEBUG][       Thread-609985][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:06:52,641 [DEBUG][       Thread-609985][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:06:52,641 [DEBUG][       Thread-609985][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:06:52,641 [DEBUG][       Thread-609985][   transport.py][1871] : Compression: none
2025-07-01 16:06:52,641 [DEBUG][       Thread-609985][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:06:52,657 [DEBUG][       Thread-609985][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:06:52,658 [DEBUG][       Thread-609985][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:06:52,658 [DEBUG][       Thread-609985][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:06:52,659 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:06:52,659 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:06:52,660 [DEBUG][       Thread-609985][   transport.py][1871] : userauth is OK
2025-07-01 16:06:52,673 [ INFO][       Thread-609985][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:06:52,674 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:06:53,336 [DEBUG][       Thread-609985][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:06:53,337 [DEBUG][       Thread-609985][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:06:53,381 [DEBUG][       Thread-609985][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:06:53,381 [DEBUG][       Thread-609985][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:06:53,385 [DEBUG][       Thread-609985][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:06:53,396 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:06:53,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:06:53,398 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:06:53,400 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:06:53,405 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:06:53,406 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:06:53,407 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:06:53,407 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:06:53,407 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.587786 -999.00  +13.90  30.55     50   +3.80 1 2 2 1 1   887    0 10.73 31.28 ----- 28.2 30.6 27.4 39.2 15.7 -22.7 15.3 -23.0 15.5 -22.0 16.0 -23.4
2025-07-01 16:06:53,407 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:06:53,408 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:06:53,408 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.587786
2025-07-01 16:06:53,408 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:06:53,409 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:06:53,409 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:06:53,409 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:06:53,409 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:06:53,409 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:06:24', tmtdew=11.57, humidity=45.61, cloud=0.0, wind=36.86, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:06:24.710', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:06:53,410 [DEBUG][       Thread-609985][   transport.py][1871] : EOF in transport thread
2025-07-01 16:06:53,492 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:06:53,503 [DEBUG][       Thread-609988][   transport.py][1871] : starting thread (client mode): 0x8173f40
2025-07-01 16:06:53,504 [DEBUG][       Thread-609988][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:06:53,518 [DEBUG][       Thread-609988][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:06:53,518 [ INFO][       Thread-609988][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:06:53,526 [DEBUG][       Thread-609988][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:06:53,526 [DEBUG][       Thread-609988][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:06:53,526 [DEBUG][       Thread-609988][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:06:53,526 [DEBUG][       Thread-609988][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:06:53,526 [DEBUG][       Thread-609988][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:06:53,526 [DEBUG][       Thread-609988][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:06:53,526 [DEBUG][       Thread-609988][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:06:53,526 [DEBUG][       Thread-609988][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:06:53,526 [DEBUG][       Thread-609988][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:06:53,526 [DEBUG][       Thread-609988][   transport.py][1871] : client lang: <none>
2025-07-01 16:06:53,526 [DEBUG][       Thread-609988][   transport.py][1871] : server lang: <none>
2025-07-01 16:06:53,526 [DEBUG][       Thread-609988][   transport.py][1871] : kex follows: False
2025-07-01 16:06:53,526 [DEBUG][       Thread-609988][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:06:53,527 [DEBUG][       Thread-609988][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:06:53,527 [DEBUG][       Thread-609988][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:06:53,527 [DEBUG][       Thread-609988][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:06:53,527 [DEBUG][       Thread-609988][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:06:53,527 [DEBUG][       Thread-609988][   transport.py][1871] : Compression: none
2025-07-01 16:06:53,527 [DEBUG][       Thread-609988][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:06:53,582 [DEBUG][       Thread-609988][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:06:53,582 [DEBUG][       Thread-609988][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:06:53,583 [DEBUG][       Thread-609988][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:06:53,583 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:06:53,584 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:06:53,639 [DEBUG][       Thread-609988][   transport.py][1871] : userauth is OK
2025-07-01 16:06:53,639 [DEBUG][       Thread-609988][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:06:53,639 [DEBUG][       Thread-609988][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:06:53,639 [DEBUG][       Thread-609988][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:06:53,639 [DEBUG][       Thread-609988][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:06:53,659 [ INFO][       Thread-609988][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:06:53,659 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:06:53,660 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:06:54,736 [DEBUG][       Thread-609988][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:06:54,737 [DEBUG][       Thread-609988][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:06:54,788 [DEBUG][       Thread-609988][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:06:54,788 [DEBUG][       Thread-609988][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:06:54,797 [DEBUG][       Thread-609988][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:06:54,808 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:06:54,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-07-01 16:06:54,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-07-01 16:06:54,826 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:06:54,826 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:06:54,827 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:06:54,834 [DEBUG][       Thread-609988][   transport.py][1871] : EOF in transport thread
2025-07-01 16:06:59,375 [DEBUG][Thread-609990 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:07:04,837 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:07:04,837 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:07:04,837 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:07:04,840 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:07:05,331 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 6, 56), 11.58, 45.56, 0.0, 38.97, 14.03, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:07:05,331 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:06:56
2025-07-01 16:07:05,416 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:07:05,420 [DEBUG][       Thread-609991][   transport.py][1871] : starting thread (client mode): 0x81e6140
2025-07-01 16:07:05,420 [DEBUG][       Thread-609991][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:07:05,430 [DEBUG][       Thread-609991][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:07:05,430 [ INFO][       Thread-609991][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:07:05,432 [DEBUG][       Thread-609991][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:07:05,432 [DEBUG][       Thread-609991][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:07:05,432 [DEBUG][       Thread-609991][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:07:05,432 [DEBUG][       Thread-609991][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:07:05,432 [DEBUG][       Thread-609991][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:07:05,432 [DEBUG][       Thread-609991][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:07:05,432 [DEBUG][       Thread-609991][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:07:05,432 [DEBUG][       Thread-609991][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:07:05,432 [DEBUG][       Thread-609991][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:07:05,432 [DEBUG][       Thread-609991][   transport.py][1871] : client lang: <none>
2025-07-01 16:07:05,432 [DEBUG][       Thread-609991][   transport.py][1871] : server lang: <none>
2025-07-01 16:07:05,432 [DEBUG][       Thread-609991][   transport.py][1871] : kex follows: False
2025-07-01 16:07:05,432 [DEBUG][       Thread-609991][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:07:05,432 [DEBUG][       Thread-609991][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:07:05,432 [DEBUG][       Thread-609991][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:07:05,432 [DEBUG][       Thread-609991][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:07:05,432 [DEBUG][       Thread-609991][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:07:05,432 [DEBUG][       Thread-609991][   transport.py][1871] : Compression: none
2025-07-01 16:07:05,432 [DEBUG][       Thread-609991][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:07:05,441 [DEBUG][       Thread-609991][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:07:05,441 [DEBUG][       Thread-609991][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:07:05,442 [DEBUG][       Thread-609991][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:07:05,442 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:07:05,442 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:07:05,442 [DEBUG][       Thread-609991][   transport.py][1871] : userauth is OK
2025-07-01 16:07:05,455 [ INFO][       Thread-609991][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:07:05,456 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:07:06,252 [DEBUG][       Thread-609991][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:07:06,252 [DEBUG][       Thread-609991][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:07:06,297 [DEBUG][       Thread-609991][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:07:06,297 [DEBUG][       Thread-609991][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:07:06,300 [DEBUG][       Thread-609991][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:07:06,313 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:07:06,313 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:07:06,315 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:07:06,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:07:06,322 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:07:06,323 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:07:06,324 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:07:06,324 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:07:06,324 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.587786 -999.00  +13.90  30.55     50   +3.80 1 2 2 1 1   887    0 10.73 31.28 ----- 28.2 30.6 27.4 39.2 15.7 -22.7 15.3 -23.0 15.5 -22.0 16.0 -23.4
2025-07-01 16:07:06,324 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:07:06,324 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:07:06,325 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.587786
2025-07-01 16:07:06,325 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:07:06,325 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:07:06,326 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:07:06,326 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:07:06,326 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:07:06,326 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:06:56', tmtdew=11.58, humidity=45.56, cloud=0.0, wind=38.97, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:06:24.710', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:07:06,327 [DEBUG][       Thread-609991][   transport.py][1871] : EOF in transport thread
2025-07-01 16:07:06,409 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:07:06,418 [DEBUG][       Thread-609994][   transport.py][1871] : starting thread (client mode): 0x474e8130
2025-07-01 16:07:06,418 [DEBUG][       Thread-609994][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:07:06,433 [DEBUG][       Thread-609994][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:07:06,433 [ INFO][       Thread-609994][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:07:06,440 [DEBUG][       Thread-609994][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:07:06,440 [DEBUG][       Thread-609994][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:07:06,440 [DEBUG][       Thread-609994][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:07:06,440 [DEBUG][       Thread-609994][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:07:06,441 [DEBUG][       Thread-609994][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:07:06,441 [DEBUG][       Thread-609994][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:07:06,441 [DEBUG][       Thread-609994][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:07:06,441 [DEBUG][       Thread-609994][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:07:06,441 [DEBUG][       Thread-609994][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:07:06,441 [DEBUG][       Thread-609994][   transport.py][1871] : client lang: <none>
2025-07-01 16:07:06,441 [DEBUG][       Thread-609994][   transport.py][1871] : server lang: <none>
2025-07-01 16:07:06,441 [DEBUG][       Thread-609994][   transport.py][1871] : kex follows: False
2025-07-01 16:07:06,441 [DEBUG][       Thread-609994][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:07:06,441 [DEBUG][       Thread-609994][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:07:06,441 [DEBUG][       Thread-609994][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:07:06,441 [DEBUG][       Thread-609994][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:07:06,441 [DEBUG][       Thread-609994][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:07:06,441 [DEBUG][       Thread-609994][   transport.py][1871] : Compression: none
2025-07-01 16:07:06,441 [DEBUG][       Thread-609994][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:07:06,498 [DEBUG][       Thread-609994][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:07:06,498 [DEBUG][       Thread-609994][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:07:06,499 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:07:06,499 [DEBUG][       Thread-609994][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:07:06,500 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:07:06,559 [DEBUG][       Thread-609994][   transport.py][1871] : userauth is OK
2025-07-01 16:07:06,559 [DEBUG][       Thread-609994][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:07:06,559 [DEBUG][       Thread-609994][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:07:06,560 [DEBUG][       Thread-609994][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:07:06,560 [DEBUG][       Thread-609994][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:07:06,584 [ INFO][       Thread-609994][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:07:06,585 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:07:06,585 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:07:07,646 [DEBUG][       Thread-609994][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:07:07,646 [DEBUG][       Thread-609994][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:07:07,695 [DEBUG][       Thread-609994][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:07:07,695 [DEBUG][       Thread-609994][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:07:07,704 [DEBUG][       Thread-609994][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:07:07,711 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:07:07,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-07-01 16:07:07,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-07-01 16:07:07,726 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:07:07,727 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:07:07,727 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:07:07,734 [DEBUG][       Thread-609994][   transport.py][1871] : EOF in transport thread
2025-07-01 16:07:08,393 [DEBUG][Thread-609996 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:07:17,419 [DEBUG][Thread-609997 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:07:17,727 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:07:17,728 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:07:17,728 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:07:17,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-07-01 16:07:18,199 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 6, 56), 11.58, 45.56, 0.0, 38.97, 14.03, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:07:18,199 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:06:56
2025-07-01 16:07:18,282 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:07:18,287 [DEBUG][       Thread-609998][   transport.py][1871] : starting thread (client mode): 0x81a5270
2025-07-01 16:07:18,287 [DEBUG][       Thread-609998][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:07:18,301 [DEBUG][       Thread-609998][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:07:18,301 [ INFO][       Thread-609998][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:07:18,304 [DEBUG][       Thread-609998][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:07:18,304 [DEBUG][       Thread-609998][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:07:18,304 [DEBUG][       Thread-609998][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:07:18,304 [DEBUG][       Thread-609998][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:07:18,305 [DEBUG][       Thread-609998][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:07:18,305 [DEBUG][       Thread-609998][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:07:18,305 [DEBUG][       Thread-609998][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:07:18,305 [DEBUG][       Thread-609998][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:07:18,305 [DEBUG][       Thread-609998][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:07:18,305 [DEBUG][       Thread-609998][   transport.py][1871] : client lang: <none>
2025-07-01 16:07:18,305 [DEBUG][       Thread-609998][   transport.py][1871] : server lang: <none>
2025-07-01 16:07:18,305 [DEBUG][       Thread-609998][   transport.py][1871] : kex follows: False
2025-07-01 16:07:18,305 [DEBUG][       Thread-609998][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:07:18,305 [DEBUG][       Thread-609998][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:07:18,305 [DEBUG][       Thread-609998][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:07:18,305 [DEBUG][       Thread-609998][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:07:18,305 [DEBUG][       Thread-609998][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:07:18,305 [DEBUG][       Thread-609998][   transport.py][1871] : Compression: none
2025-07-01 16:07:18,305 [DEBUG][       Thread-609998][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:07:18,321 [DEBUG][       Thread-609998][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:07:18,321 [DEBUG][       Thread-609998][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:07:18,322 [DEBUG][       Thread-609998][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:07:18,322 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:07:18,322 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:07:18,323 [DEBUG][       Thread-609998][   transport.py][1871] : userauth is OK
2025-07-01 16:07:18,347 [ INFO][       Thread-609998][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:07:18,348 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:07:18,954 [DEBUG][       Thread-609998][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:07:18,954 [DEBUG][       Thread-609998][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:07:18,997 [DEBUG][       Thread-609998][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:07:18,997 [DEBUG][       Thread-609998][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:07:19,000 [DEBUG][       Thread-609998][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:07:19,013 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:07:19,013 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:07:19,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:07:19,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:07:19,022 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:07:19,024 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:07:19,024 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:07:19,025 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:07:19,025 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.588133 -999.00  +14.00  28.89     50   +3.90 1 2 1 1 1   887    0 10.77 34.65 ----- 38.4 28.9 16.5 43.7 15.7 -23.4 15.3 -22.9 15.5 -21.9 16.0 -21.9
2025-07-01 16:07:19,025 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:07:19,025 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:07:19,025 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.588133
2025-07-01 16:07:19,026 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:07:19,026 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:07:19,027 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:07:19,027 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:07:19,027 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:07:19,027 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:06:56', tmtdew=11.58, humidity=45.56, cloud=0.0, wind=38.97, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:06:54.691', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:07:19,027 [DEBUG][       Thread-609998][   transport.py][1871] : EOF in transport thread
2025-07-01 16:07:19,110 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:07:19,120 [DEBUG][       Thread-610001][   transport.py][1871] : starting thread (client mode): 0x474e8130
2025-07-01 16:07:19,120 [DEBUG][       Thread-610001][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:07:19,135 [DEBUG][       Thread-610001][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:07:19,136 [ INFO][       Thread-610001][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:07:19,143 [DEBUG][       Thread-610001][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:07:19,143 [DEBUG][       Thread-610001][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:07:19,143 [DEBUG][       Thread-610001][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:07:19,143 [DEBUG][       Thread-610001][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:07:19,143 [DEBUG][       Thread-610001][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:07:19,143 [DEBUG][       Thread-610001][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:07:19,143 [DEBUG][       Thread-610001][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:07:19,143 [DEBUG][       Thread-610001][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:07:19,143 [DEBUG][       Thread-610001][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:07:19,143 [DEBUG][       Thread-610001][   transport.py][1871] : client lang: <none>
2025-07-01 16:07:19,144 [DEBUG][       Thread-610001][   transport.py][1871] : server lang: <none>
2025-07-01 16:07:19,144 [DEBUG][       Thread-610001][   transport.py][1871] : kex follows: False
2025-07-01 16:07:19,144 [DEBUG][       Thread-610001][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:07:19,144 [DEBUG][       Thread-610001][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:07:19,144 [DEBUG][       Thread-610001][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:07:19,144 [DEBUG][       Thread-610001][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:07:19,144 [DEBUG][       Thread-610001][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:07:19,144 [DEBUG][       Thread-610001][   transport.py][1871] : Compression: none
2025-07-01 16:07:19,144 [DEBUG][       Thread-610001][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:07:19,209 [DEBUG][       Thread-610001][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:07:19,209 [DEBUG][       Thread-610001][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:07:19,210 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:07:19,210 [DEBUG][       Thread-610001][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:07:19,211 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:07:19,266 [DEBUG][       Thread-610001][   transport.py][1871] : userauth is OK
2025-07-01 16:07:19,266 [DEBUG][       Thread-610001][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:07:19,266 [DEBUG][       Thread-610001][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:07:19,266 [DEBUG][       Thread-610001][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:07:19,267 [DEBUG][       Thread-610001][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:07:19,287 [ INFO][       Thread-610001][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:07:19,288 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:07:19,288 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:07:20,333 [DEBUG][       Thread-610001][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:07:20,333 [DEBUG][       Thread-610001][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:07:20,384 [DEBUG][       Thread-610001][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:07:20,384 [DEBUG][       Thread-610001][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:07:20,394 [DEBUG][       Thread-610001][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:07:20,403 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:07:20,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-07-01 16:07:20,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-07-01 16:07:20,421 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:07:20,422 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:07:20,422 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:07:20,430 [DEBUG][       Thread-610001][   transport.py][1871] : EOF in transport thread
2025-07-01 16:07:26,442 [DEBUG][Thread-610003 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:07:30,432 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:07:30,432 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:07:30,432 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:07:30,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-07-01 16:07:30,902 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 7, 28), 11.55, 45.56, 0.0, 31.42, 14.06, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:07:30,903 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:07:28
2025-07-01 16:07:30,995 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:07:31,001 [DEBUG][       Thread-610004][   transport.py][1871] : starting thread (client mode): 0x81e4e50
2025-07-01 16:07:31,001 [DEBUG][       Thread-610004][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:07:31,021 [DEBUG][       Thread-610004][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:07:31,021 [ INFO][       Thread-610004][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:07:31,024 [DEBUG][       Thread-610004][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:07:31,024 [DEBUG][       Thread-610004][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:07:31,024 [DEBUG][       Thread-610004][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:07:31,024 [DEBUG][       Thread-610004][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:07:31,024 [DEBUG][       Thread-610004][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:07:31,024 [DEBUG][       Thread-610004][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:07:31,024 [DEBUG][       Thread-610004][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:07:31,024 [DEBUG][       Thread-610004][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:07:31,024 [DEBUG][       Thread-610004][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:07:31,025 [DEBUG][       Thread-610004][   transport.py][1871] : client lang: <none>
2025-07-01 16:07:31,025 [DEBUG][       Thread-610004][   transport.py][1871] : server lang: <none>
2025-07-01 16:07:31,025 [DEBUG][       Thread-610004][   transport.py][1871] : kex follows: False
2025-07-01 16:07:31,025 [DEBUG][       Thread-610004][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:07:31,025 [DEBUG][       Thread-610004][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:07:31,025 [DEBUG][       Thread-610004][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:07:31,025 [DEBUG][       Thread-610004][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:07:31,025 [DEBUG][       Thread-610004][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:07:31,025 [DEBUG][       Thread-610004][   transport.py][1871] : Compression: none
2025-07-01 16:07:31,025 [DEBUG][       Thread-610004][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:07:31,041 [DEBUG][       Thread-610004][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:07:31,041 [DEBUG][       Thread-610004][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:07:31,042 [DEBUG][       Thread-610004][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:07:31,042 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:07:31,042 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:07:31,043 [DEBUG][       Thread-610004][   transport.py][1871] : userauth is OK
2025-07-01 16:07:31,068 [ INFO][       Thread-610004][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:07:31,068 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:07:31,697 [DEBUG][       Thread-610004][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:07:31,698 [DEBUG][       Thread-610004][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:07:31,741 [DEBUG][       Thread-610004][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:07:31,741 [DEBUG][       Thread-610004][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:07:31,744 [DEBUG][       Thread-610004][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:07:31,757 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:07:31,758 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:07:31,760 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:07:31,761 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:07:31,767 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:07:31,768 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:07:31,769 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:07:31,769 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:07:31,769 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.588133 -999.00  +14.00  28.89     50   +3.90 1 2 1 1 1   887    0 10.77 34.65 ----- 38.4 28.9 16.5 43.7 15.7 -23.4 15.3 -22.9 15.5 -21.9 16.0 -21.9
2025-07-01 16:07:31,769 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:07:31,769 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:07:31,770 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.588133
2025-07-01 16:07:31,770 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:07:31,771 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:07:31,771 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:07:31,771 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:07:31,771 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:07:31,771 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:07:28', tmtdew=11.55, humidity=45.56, cloud=0.0, wind=31.42, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:06:54.691', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:07:31,771 [DEBUG][       Thread-610004][   transport.py][1871] : EOF in transport thread
2025-07-01 16:07:31,855 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:07:31,866 [DEBUG][       Thread-610007][   transport.py][1871] : starting thread (client mode): 0x75ab1f0
2025-07-01 16:07:31,866 [DEBUG][       Thread-610007][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:07:31,881 [DEBUG][       Thread-610007][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:07:31,881 [ INFO][       Thread-610007][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:07:31,889 [DEBUG][       Thread-610007][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:07:31,889 [DEBUG][       Thread-610007][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:07:31,889 [DEBUG][       Thread-610007][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:07:31,889 [DEBUG][       Thread-610007][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:07:31,889 [DEBUG][       Thread-610007][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:07:31,889 [DEBUG][       Thread-610007][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:07:31,890 [DEBUG][       Thread-610007][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:07:31,890 [DEBUG][       Thread-610007][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:07:31,890 [DEBUG][       Thread-610007][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:07:31,890 [DEBUG][       Thread-610007][   transport.py][1871] : client lang: <none>
2025-07-01 16:07:31,890 [DEBUG][       Thread-610007][   transport.py][1871] : server lang: <none>
2025-07-01 16:07:31,890 [DEBUG][       Thread-610007][   transport.py][1871] : kex follows: False
2025-07-01 16:07:31,890 [DEBUG][       Thread-610007][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:07:31,890 [DEBUG][       Thread-610007][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:07:31,890 [DEBUG][       Thread-610007][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:07:31,890 [DEBUG][       Thread-610007][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:07:31,890 [DEBUG][       Thread-610007][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:07:31,890 [DEBUG][       Thread-610007][   transport.py][1871] : Compression: none
2025-07-01 16:07:31,890 [DEBUG][       Thread-610007][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:07:31,946 [DEBUG][       Thread-610007][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:07:31,947 [DEBUG][       Thread-610007][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:07:31,947 [DEBUG][       Thread-610007][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:07:31,948 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:07:31,948 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:07:32,002 [DEBUG][       Thread-610007][   transport.py][1871] : userauth is OK
2025-07-01 16:07:32,002 [DEBUG][       Thread-610007][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:07:32,002 [DEBUG][       Thread-610007][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:07:32,002 [DEBUG][       Thread-610007][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:07:32,003 [DEBUG][       Thread-610007][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:07:32,021 [ INFO][       Thread-610007][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:07:32,022 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:07:32,022 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:07:33,050 [DEBUG][       Thread-610007][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:07:33,051 [DEBUG][       Thread-610007][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:07:33,100 [DEBUG][       Thread-610007][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:07:33,100 [DEBUG][       Thread-610007][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:07:33,109 [DEBUG][       Thread-610007][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:07:33,118 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:07:33,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-07-01 16:07:33,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-07-01 16:07:33,135 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:07:33,136 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:07:33,136 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:07:33,144 [DEBUG][       Thread-610007][   transport.py][1871] : EOF in transport thread
2025-07-01 16:07:35,462 [DEBUG][Thread-610009 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:07:38,055 [DEBUG][Thread-610010 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:07:43,147 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:07:43,147 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:07:43,147 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:07:43,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-07-01 16:07:43,633 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 7, 28), 11.55, 45.56, 0.0, 31.42, 14.06, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:07:43,633 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:07:28
2025-07-01 16:07:43,717 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:07:43,721 [DEBUG][       Thread-610011][   transport.py][1871] : starting thread (client mode): 0x81e4a60
2025-07-01 16:07:43,721 [DEBUG][       Thread-610011][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:07:43,742 [DEBUG][       Thread-610011][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:07:43,743 [ INFO][       Thread-610011][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:07:43,746 [DEBUG][       Thread-610011][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:07:43,746 [DEBUG][       Thread-610011][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:07:43,746 [DEBUG][       Thread-610011][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:07:43,746 [DEBUG][       Thread-610011][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:07:43,746 [DEBUG][       Thread-610011][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:07:43,746 [DEBUG][       Thread-610011][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:07:43,747 [DEBUG][       Thread-610011][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:07:43,747 [DEBUG][       Thread-610011][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:07:43,747 [DEBUG][       Thread-610011][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:07:43,747 [DEBUG][       Thread-610011][   transport.py][1871] : client lang: <none>
2025-07-01 16:07:43,747 [DEBUG][       Thread-610011][   transport.py][1871] : server lang: <none>
2025-07-01 16:07:43,747 [DEBUG][       Thread-610011][   transport.py][1871] : kex follows: False
2025-07-01 16:07:43,747 [DEBUG][       Thread-610011][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:07:43,747 [DEBUG][       Thread-610011][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:07:43,747 [DEBUG][       Thread-610011][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:07:43,747 [DEBUG][       Thread-610011][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:07:43,747 [DEBUG][       Thread-610011][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:07:43,747 [DEBUG][       Thread-610011][   transport.py][1871] : Compression: none
2025-07-01 16:07:43,747 [DEBUG][       Thread-610011][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:07:43,766 [DEBUG][       Thread-610011][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:07:43,766 [DEBUG][       Thread-610011][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:07:43,766 [DEBUG][       Thread-610011][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:07:43,767 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:07:43,767 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:07:43,768 [DEBUG][       Thread-610011][   transport.py][1871] : userauth is OK
2025-07-01 16:07:43,781 [ INFO][       Thread-610011][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:07:43,781 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:07:44,435 [DEBUG][       Thread-610011][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:07:44,435 [DEBUG][       Thread-610011][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:07:44,477 [DEBUG][       Thread-610011][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:07:44,477 [DEBUG][       Thread-610011][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:07:44,480 [DEBUG][       Thread-610011][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:07:44,488 [DEBUG][Thread-610013 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:07:44,492 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:07:44,492 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:07:44,494 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:07:44,496 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:07:44,501 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:07:44,503 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:07:44,503 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:07:44,503 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:07:44,504 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.588133 -999.00  +14.00  28.89     50   +3.90 1 2 1 1 1   887    0 10.77 34.65 ----- 38.4 28.9 16.5 43.7 15.7 -23.4 15.3 -22.9 15.5 -21.9 16.0 -21.9
2025-07-01 16:07:44,504 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:07:44,504 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:07:44,504 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.588133
2025-07-01 16:07:44,504 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:07:44,505 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:07:44,505 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:07:44,505 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:07:44,505 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:07:44,505 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:07:28', tmtdew=11.55, humidity=45.56, cloud=0.0, wind=31.42, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:06:54.691', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:07:44,506 [DEBUG][       Thread-610011][   transport.py][1871] : EOF in transport thread
2025-07-01 16:07:44,593 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:07:44,602 [DEBUG][       Thread-610015][   transport.py][1871] : starting thread (client mode): 0x81dae60
2025-07-01 16:07:44,602 [DEBUG][       Thread-610015][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:07:44,618 [DEBUG][       Thread-610015][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:07:44,618 [ INFO][       Thread-610015][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:07:44,626 [DEBUG][       Thread-610015][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:07:44,626 [DEBUG][       Thread-610015][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:07:44,626 [DEBUG][       Thread-610015][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:07:44,626 [DEBUG][       Thread-610015][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:07:44,626 [DEBUG][       Thread-610015][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:07:44,626 [DEBUG][       Thread-610015][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:07:44,626 [DEBUG][       Thread-610015][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:07:44,626 [DEBUG][       Thread-610015][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:07:44,626 [DEBUG][       Thread-610015][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:07:44,626 [DEBUG][       Thread-610015][   transport.py][1871] : client lang: <none>
2025-07-01 16:07:44,626 [DEBUG][       Thread-610015][   transport.py][1871] : server lang: <none>
2025-07-01 16:07:44,626 [DEBUG][       Thread-610015][   transport.py][1871] : kex follows: False
2025-07-01 16:07:44,626 [DEBUG][       Thread-610015][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:07:44,626 [DEBUG][       Thread-610015][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:07:44,626 [DEBUG][       Thread-610015][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:07:44,627 [DEBUG][       Thread-610015][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:07:44,627 [DEBUG][       Thread-610015][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:07:44,627 [DEBUG][       Thread-610015][   transport.py][1871] : Compression: none
2025-07-01 16:07:44,627 [DEBUG][       Thread-610015][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:07:44,686 [DEBUG][       Thread-610015][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:07:44,687 [DEBUG][       Thread-610015][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:07:44,687 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:07:44,688 [DEBUG][       Thread-610015][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:07:44,688 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:07:44,741 [DEBUG][       Thread-610015][   transport.py][1871] : userauth is OK
2025-07-01 16:07:44,741 [DEBUG][       Thread-610015][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:07:44,741 [DEBUG][       Thread-610015][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:07:44,741 [DEBUG][       Thread-610015][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:07:44,742 [DEBUG][       Thread-610015][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:07:44,756 [ INFO][       Thread-610015][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:07:44,756 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:07:44,756 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:07:45,767 [DEBUG][       Thread-610015][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:07:45,767 [DEBUG][       Thread-610015][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:07:45,816 [DEBUG][       Thread-610015][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:07:45,816 [DEBUG][       Thread-610015][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:07:45,825 [DEBUG][       Thread-610015][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:07:45,839 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:07:45,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-07-01 16:07:45,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-07-01 16:07:45,857 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:07:45,857 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:07:45,857 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:07:45,865 [DEBUG][       Thread-610015][   transport.py][1871] : EOF in transport thread
2025-07-01 16:07:53,509 [DEBUG][Thread-610017 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:07:55,857 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:07:55,858 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:07:55,858 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:07:55,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-07-01 16:07:56,321 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 7, 28), 11.55, 45.56, 0.0, 31.42, 14.06, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:07:56,321 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:07:28
2025-07-01 16:07:56,405 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:07:56,411 [DEBUG][       Thread-610018][   transport.py][1871] : starting thread (client mode): 0x81a69b0
2025-07-01 16:07:56,411 [DEBUG][       Thread-610018][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:07:56,432 [DEBUG][       Thread-610018][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:07:56,432 [ INFO][       Thread-610018][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:07:56,436 [DEBUG][       Thread-610018][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:07:56,436 [DEBUG][       Thread-610018][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:07:56,436 [DEBUG][       Thread-610018][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:07:56,436 [DEBUG][       Thread-610018][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:07:56,436 [DEBUG][       Thread-610018][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:07:56,436 [DEBUG][       Thread-610018][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:07:56,436 [DEBUG][       Thread-610018][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:07:56,436 [DEBUG][       Thread-610018][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:07:56,436 [DEBUG][       Thread-610018][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:07:56,436 [DEBUG][       Thread-610018][   transport.py][1871] : client lang: <none>
2025-07-01 16:07:56,436 [DEBUG][       Thread-610018][   transport.py][1871] : server lang: <none>
2025-07-01 16:07:56,436 [DEBUG][       Thread-610018][   transport.py][1871] : kex follows: False
2025-07-01 16:07:56,436 [DEBUG][       Thread-610018][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:07:56,436 [DEBUG][       Thread-610018][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:07:56,436 [DEBUG][       Thread-610018][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:07:56,436 [DEBUG][       Thread-610018][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:07:56,436 [DEBUG][       Thread-610018][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:07:56,436 [DEBUG][       Thread-610018][   transport.py][1871] : Compression: none
2025-07-01 16:07:56,436 [DEBUG][       Thread-610018][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:07:56,453 [DEBUG][       Thread-610018][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:07:56,454 [DEBUG][       Thread-610018][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:07:56,454 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:07:56,454 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:07:56,455 [DEBUG][       Thread-610018][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:07:56,455 [DEBUG][       Thread-610018][   transport.py][1871] : userauth is OK
2025-07-01 16:07:56,468 [ INFO][       Thread-610018][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:07:56,469 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:07:57,100 [DEBUG][       Thread-610018][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:07:57,101 [DEBUG][       Thread-610018][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:07:57,145 [DEBUG][       Thread-610018][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:07:57,145 [DEBUG][       Thread-610018][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:07:57,148 [DEBUG][       Thread-610018][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:07:57,162 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:07:57,163 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:07:57,164 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:07:57,167 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:07:57,172 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:07:57,174 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:07:57,174 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:07:57,175 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:07:57,175 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.588481 -999.00  +13.90  37.48     50   +3.80 1 2 2 1 1   887    0 10.81 34.20 ----- 30.9 37.5 16.2 44.0 15.7 -23.4 15.2 -23.4 15.5 -21.9 15.9 -22.3
2025-07-01 16:07:57,175 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:07:57,175 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:07:57,175 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.588481
2025-07-01 16:07:57,176 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:07:57,177 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:07:57,177 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:07:57,177 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:07:57,177 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:07:57,177 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:07:28', tmtdew=11.55, humidity=45.56, cloud=0.0, wind=31.42, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:07:24.758', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:07:57,178 [DEBUG][       Thread-610018][   transport.py][1871] : EOF in transport thread
2025-07-01 16:07:57,259 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:07:57,271 [DEBUG][       Thread-610021][   transport.py][1871] : starting thread (client mode): 0x81e5960
2025-07-01 16:07:57,271 [DEBUG][       Thread-610021][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:07:57,286 [DEBUG][       Thread-610021][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:07:57,286 [ INFO][       Thread-610021][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:07:57,294 [DEBUG][       Thread-610021][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:07:57,294 [DEBUG][       Thread-610021][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:07:57,294 [DEBUG][       Thread-610021][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:07:57,294 [DEBUG][       Thread-610021][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:07:57,294 [DEBUG][       Thread-610021][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:07:57,294 [DEBUG][       Thread-610021][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:07:57,294 [DEBUG][       Thread-610021][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:07:57,294 [DEBUG][       Thread-610021][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:07:57,294 [DEBUG][       Thread-610021][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:07:57,294 [DEBUG][       Thread-610021][   transport.py][1871] : client lang: <none>
2025-07-01 16:07:57,294 [DEBUG][       Thread-610021][   transport.py][1871] : server lang: <none>
2025-07-01 16:07:57,294 [DEBUG][       Thread-610021][   transport.py][1871] : kex follows: False
2025-07-01 16:07:57,294 [DEBUG][       Thread-610021][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:07:57,294 [DEBUG][       Thread-610021][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:07:57,294 [DEBUG][       Thread-610021][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:07:57,294 [DEBUG][       Thread-610021][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:07:57,294 [DEBUG][       Thread-610021][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:07:57,294 [DEBUG][       Thread-610021][   transport.py][1871] : Compression: none
2025-07-01 16:07:57,294 [DEBUG][       Thread-610021][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:07:57,350 [DEBUG][       Thread-610021][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:07:57,350 [DEBUG][       Thread-610021][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:07:57,351 [DEBUG][       Thread-610021][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:07:57,351 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:07:57,352 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:07:57,407 [DEBUG][       Thread-610021][   transport.py][1871] : userauth is OK
2025-07-01 16:07:57,407 [DEBUG][       Thread-610021][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:07:57,407 [DEBUG][       Thread-610021][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:07:57,408 [DEBUG][       Thread-610021][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:07:57,408 [DEBUG][       Thread-610021][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:07:57,427 [ INFO][       Thread-610021][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:07:57,428 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:07:57,428 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:07:58,448 [DEBUG][       Thread-610021][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:07:58,448 [DEBUG][       Thread-610021][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:07:58,496 [DEBUG][       Thread-610021][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:07:58,496 [DEBUG][       Thread-610021][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:07:58,506 [DEBUG][       Thread-610021][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:07:58,517 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:07:58,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-07-01 16:07:58,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-07-01 16:07:58,540 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:07:58,540 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:07:58,541 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:07:58,548 [DEBUG][       Thread-610021][   transport.py][1871] : EOF in transport thread
2025-07-01 16:08:02,529 [DEBUG][Thread-610023 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:08:08,549 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:08:08,549 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:08:08,549 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:08:08,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-07-01 16:08:09,017 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 7, 28), 11.55, 45.56, 0.0, 31.42, 14.06, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:08:09,018 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:07:28
2025-07-01 16:08:09,100 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:08:09,104 [DEBUG][       Thread-610024][   transport.py][1871] : starting thread (client mode): 0x81a4b50
2025-07-01 16:08:09,104 [DEBUG][       Thread-610024][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:08:09,124 [DEBUG][       Thread-610024][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:08:09,124 [ INFO][       Thread-610024][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:08:09,128 [DEBUG][       Thread-610024][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:08:09,128 [DEBUG][       Thread-610024][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:08:09,128 [DEBUG][       Thread-610024][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:08:09,128 [DEBUG][       Thread-610024][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:08:09,128 [DEBUG][       Thread-610024][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:08:09,128 [DEBUG][       Thread-610024][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:08:09,128 [DEBUG][       Thread-610024][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:08:09,128 [DEBUG][       Thread-610024][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:08:09,128 [DEBUG][       Thread-610024][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:08:09,128 [DEBUG][       Thread-610024][   transport.py][1871] : client lang: <none>
2025-07-01 16:08:09,128 [DEBUG][       Thread-610024][   transport.py][1871] : server lang: <none>
2025-07-01 16:08:09,128 [DEBUG][       Thread-610024][   transport.py][1871] : kex follows: False
2025-07-01 16:08:09,128 [DEBUG][       Thread-610024][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:08:09,128 [DEBUG][       Thread-610024][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:08:09,128 [DEBUG][       Thread-610024][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:08:09,128 [DEBUG][       Thread-610024][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:08:09,128 [DEBUG][       Thread-610024][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:08:09,128 [DEBUG][       Thread-610024][   transport.py][1871] : Compression: none
2025-07-01 16:08:09,128 [DEBUG][       Thread-610024][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:08:09,145 [DEBUG][       Thread-610024][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:08:09,146 [DEBUG][       Thread-610024][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:08:09,146 [DEBUG][       Thread-610024][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:08:09,146 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:08:09,146 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:08:09,147 [DEBUG][       Thread-610024][   transport.py][1871] : userauth is OK
2025-07-01 16:08:09,172 [ INFO][       Thread-610024][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:08:09,173 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:08:09,813 [DEBUG][       Thread-610024][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:08:09,814 [DEBUG][       Thread-610024][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:08:09,857 [DEBUG][       Thread-610024][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:08:09,857 [DEBUG][       Thread-610024][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:08:09,860 [DEBUG][       Thread-610024][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:08:09,875 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:08:09,875 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:08:09,877 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:08:09,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:08:09,885 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:08:09,887 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:08:09,887 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:08:09,888 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:08:09,888 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.588481 -999.00  +13.90  37.48     50   +3.80 1 2 2 1 1   887    0 10.81 34.20 ----- 30.9 37.5 16.2 44.0 15.7 -23.4 15.2 -23.4 15.5 -21.9 15.9 -22.3
2025-07-01 16:08:09,888 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:08:09,888 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:08:09,888 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.588481
2025-07-01 16:08:09,889 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:08:09,889 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:08:09,889 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:08:09,889 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:08:09,889 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:08:09,890 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:07:28', tmtdew=11.55, humidity=45.56, cloud=0.0, wind=31.42, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:07:24.758', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:08:09,891 [DEBUG][       Thread-610024][   transport.py][1871] : EOF in transport thread
2025-07-01 16:08:09,973 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:08:09,983 [DEBUG][       Thread-610027][   transport.py][1871] : starting thread (client mode): 0x81cb310
2025-07-01 16:08:09,983 [DEBUG][       Thread-610027][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:08:09,999 [DEBUG][       Thread-610027][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:08:09,999 [ INFO][       Thread-610027][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:08:10,007 [DEBUG][       Thread-610027][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:08:10,007 [DEBUG][       Thread-610027][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:08:10,007 [DEBUG][       Thread-610027][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:08:10,007 [DEBUG][       Thread-610027][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:08:10,007 [DEBUG][       Thread-610027][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:08:10,007 [DEBUG][       Thread-610027][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:08:10,007 [DEBUG][       Thread-610027][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:08:10,008 [DEBUG][       Thread-610027][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:08:10,008 [DEBUG][       Thread-610027][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:08:10,008 [DEBUG][       Thread-610027][   transport.py][1871] : client lang: <none>
2025-07-01 16:08:10,008 [DEBUG][       Thread-610027][   transport.py][1871] : server lang: <none>
2025-07-01 16:08:10,008 [DEBUG][       Thread-610027][   transport.py][1871] : kex follows: False
2025-07-01 16:08:10,008 [DEBUG][       Thread-610027][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:08:10,008 [DEBUG][       Thread-610027][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:08:10,008 [DEBUG][       Thread-610027][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:08:10,008 [DEBUG][       Thread-610027][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:08:10,008 [DEBUG][       Thread-610027][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:08:10,008 [DEBUG][       Thread-610027][   transport.py][1871] : Compression: none
2025-07-01 16:08:10,008 [DEBUG][       Thread-610027][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:08:10,070 [DEBUG][       Thread-610027][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:08:10,071 [DEBUG][       Thread-610027][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:08:10,071 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:08:10,072 [DEBUG][       Thread-610027][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:08:10,073 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:08:10,130 [DEBUG][       Thread-610027][   transport.py][1871] : userauth is OK
2025-07-01 16:08:10,130 [DEBUG][       Thread-610027][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:08:10,130 [DEBUG][       Thread-610027][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:08:10,130 [DEBUG][       Thread-610027][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:08:10,130 [DEBUG][       Thread-610027][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:08:10,150 [ INFO][       Thread-610027][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:08:10,151 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:08:10,151 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:08:11,210 [DEBUG][       Thread-610027][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:08:11,210 [DEBUG][       Thread-610027][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:08:11,260 [DEBUG][       Thread-610027][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:08:11,260 [DEBUG][       Thread-610027][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:08:11,269 [DEBUG][       Thread-610027][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:08:11,279 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:08:11,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')
2025-07-01 16:08:11,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-07-01 16:08:11,296 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:08:11,296 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:08:11,297 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:08:11,305 [DEBUG][       Thread-610027][   transport.py][1871] : EOF in transport thread
2025-07-01 16:08:11,551 [DEBUG][Thread-610029 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:08:20,574 [DEBUG][Thread-610030 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:08:21,307 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:08:21,307 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:08:21,307 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:08:21,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-07-01 16:08:21,771 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 7, 28), 11.55, 45.56, 0.0, 31.42, 14.06, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:08:21,771 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:07:28
2025-07-01 16:08:21,854 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:08:21,860 [DEBUG][       Thread-610031][   transport.py][1871] : starting thread (client mode): 0x81a50f0
2025-07-01 16:08:21,860 [DEBUG][       Thread-610031][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:08:21,879 [DEBUG][       Thread-610031][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:08:21,879 [ INFO][       Thread-610031][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:08:21,883 [DEBUG][       Thread-610031][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:08:21,883 [DEBUG][       Thread-610031][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:08:21,883 [DEBUG][       Thread-610031][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:08:21,883 [DEBUG][       Thread-610031][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:08:21,883 [DEBUG][       Thread-610031][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:08:21,883 [DEBUG][       Thread-610031][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:08:21,883 [DEBUG][       Thread-610031][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:08:21,883 [DEBUG][       Thread-610031][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:08:21,883 [DEBUG][       Thread-610031][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:08:21,883 [DEBUG][       Thread-610031][   transport.py][1871] : client lang: <none>
2025-07-01 16:08:21,883 [DEBUG][       Thread-610031][   transport.py][1871] : server lang: <none>
2025-07-01 16:08:21,883 [DEBUG][       Thread-610031][   transport.py][1871] : kex follows: False
2025-07-01 16:08:21,884 [DEBUG][       Thread-610031][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:08:21,884 [DEBUG][       Thread-610031][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:08:21,884 [DEBUG][       Thread-610031][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:08:21,884 [DEBUG][       Thread-610031][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:08:21,884 [DEBUG][       Thread-610031][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:08:21,884 [DEBUG][       Thread-610031][   transport.py][1871] : Compression: none
2025-07-01 16:08:21,884 [DEBUG][       Thread-610031][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:08:21,900 [DEBUG][       Thread-610031][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:08:21,901 [DEBUG][       Thread-610031][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:08:21,901 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:08:21,901 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:08:21,902 [DEBUG][       Thread-610031][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:08:21,903 [DEBUG][       Thread-610031][   transport.py][1871] : userauth is OK
2025-07-01 16:08:21,916 [ INFO][       Thread-610031][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:08:21,916 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:08:22,579 [DEBUG][       Thread-610031][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:08:22,579 [DEBUG][       Thread-610031][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:08:22,621 [DEBUG][       Thread-610031][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:08:22,621 [DEBUG][       Thread-610031][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:08:22,624 [DEBUG][       Thread-610031][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:08:22,636 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:08:22,637 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:08:22,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:08:22,641 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:08:22,646 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:08:22,649 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:08:22,649 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:08:22,650 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:08:22,650 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.588481 -999.00  +13.90  37.48     50   +3.80 1 2 2 1 1   887    0 10.81 34.20 ----- 30.9 37.5 16.2 44.0 15.7 -23.4 15.2 -23.4 15.5 -21.9 15.9 -22.3
2025-07-01 16:08:22,650 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:08:22,650 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:08:22,650 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.588481
2025-07-01 16:08:22,650 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:08:22,651 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:08:22,651 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:08:22,651 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:08:22,651 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:08:22,651 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:07:28', tmtdew=11.55, humidity=45.56, cloud=0.0, wind=31.42, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:07:24.758', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:08:22,652 [DEBUG][       Thread-610031][   transport.py][1871] : EOF in transport thread
2025-07-01 16:08:22,736 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:08:22,746 [DEBUG][       Thread-610034][   transport.py][1871] : starting thread (client mode): 0x81d9480
2025-07-01 16:08:22,746 [DEBUG][       Thread-610034][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:08:22,762 [DEBUG][       Thread-610034][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:08:22,762 [ INFO][       Thread-610034][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:08:22,769 [DEBUG][       Thread-610034][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:08:22,769 [DEBUG][       Thread-610034][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:08:22,770 [DEBUG][       Thread-610034][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:08:22,770 [DEBUG][       Thread-610034][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:08:22,770 [DEBUG][       Thread-610034][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:08:22,770 [DEBUG][       Thread-610034][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:08:22,770 [DEBUG][       Thread-610034][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:08:22,770 [DEBUG][       Thread-610034][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:08:22,770 [DEBUG][       Thread-610034][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:08:22,770 [DEBUG][       Thread-610034][   transport.py][1871] : client lang: <none>
2025-07-01 16:08:22,770 [DEBUG][       Thread-610034][   transport.py][1871] : server lang: <none>
2025-07-01 16:08:22,770 [DEBUG][       Thread-610034][   transport.py][1871] : kex follows: False
2025-07-01 16:08:22,770 [DEBUG][       Thread-610034][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:08:22,770 [DEBUG][       Thread-610034][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:08:22,770 [DEBUG][       Thread-610034][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:08:22,770 [DEBUG][       Thread-610034][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:08:22,770 [DEBUG][       Thread-610034][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:08:22,770 [DEBUG][       Thread-610034][   transport.py][1871] : Compression: none
2025-07-01 16:08:22,770 [DEBUG][       Thread-610034][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:08:22,832 [DEBUG][       Thread-610034][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:08:22,832 [DEBUG][       Thread-610034][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:08:22,833 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:08:22,834 [DEBUG][       Thread-610034][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:08:22,834 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:08:22,890 [DEBUG][       Thread-610034][   transport.py][1871] : userauth is OK
2025-07-01 16:08:22,890 [DEBUG][       Thread-610034][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:08:22,900 [DEBUG][       Thread-610034][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:08:22,900 [DEBUG][       Thread-610034][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:08:22,900 [DEBUG][       Thread-610034][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:08:22,920 [ INFO][       Thread-610034][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:08:22,921 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:08:22,921 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:08:23,951 [DEBUG][       Thread-610034][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:08:23,951 [DEBUG][       Thread-610034][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:08:23,999 [DEBUG][       Thread-610034][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:08:23,999 [DEBUG][       Thread-610034][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:08:24,008 [DEBUG][       Thread-610034][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:08:24,016 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:08:24,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-07-01 16:08:24,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') -> 00000000
2025-07-01 16:08:24,034 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:08:24,034 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:08:24,034 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:08:24,044 [DEBUG][       Thread-610034][   transport.py][1871] : EOF in transport thread
2025-07-01 16:08:29,597 [DEBUG][Thread-610036 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:08:34,044 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:08:34,044 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:08:34,044 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:08:34,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-07-01 16:08:34,516 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 8, 31), 11.48, 46.0, 0.0, 33.51, 14.06, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:08:34,516 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:08:31
2025-07-01 16:08:34,601 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:08:34,605 [DEBUG][       Thread-610037][   transport.py][1871] : starting thread (client mode): 0x8171b40
2025-07-01 16:08:34,605 [DEBUG][       Thread-610037][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:08:34,627 [DEBUG][       Thread-610037][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:08:34,627 [ INFO][       Thread-610037][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:08:34,630 [DEBUG][       Thread-610037][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:08:34,630 [DEBUG][       Thread-610037][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:08:34,630 [DEBUG][       Thread-610037][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:08:34,630 [DEBUG][       Thread-610037][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:08:34,630 [DEBUG][       Thread-610037][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:08:34,630 [DEBUG][       Thread-610037][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:08:34,630 [DEBUG][       Thread-610037][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:08:34,630 [DEBUG][       Thread-610037][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:08:34,630 [DEBUG][       Thread-610037][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:08:34,630 [DEBUG][       Thread-610037][   transport.py][1871] : client lang: <none>
2025-07-01 16:08:34,630 [DEBUG][       Thread-610037][   transport.py][1871] : server lang: <none>
2025-07-01 16:08:34,630 [DEBUG][       Thread-610037][   transport.py][1871] : kex follows: False
2025-07-01 16:08:34,630 [DEBUG][       Thread-610037][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:08:34,630 [DEBUG][       Thread-610037][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:08:34,630 [DEBUG][       Thread-610037][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:08:34,630 [DEBUG][       Thread-610037][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:08:34,630 [DEBUG][       Thread-610037][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:08:34,630 [DEBUG][       Thread-610037][   transport.py][1871] : Compression: none
2025-07-01 16:08:34,630 [DEBUG][       Thread-610037][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:08:34,646 [DEBUG][       Thread-610037][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:08:34,646 [DEBUG][       Thread-610037][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:08:34,646 [DEBUG][       Thread-610037][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:08:34,646 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:08:34,646 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:08:34,647 [DEBUG][       Thread-610037][   transport.py][1871] : userauth is OK
2025-07-01 16:08:34,660 [ INFO][       Thread-610037][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:08:34,660 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:08:35,317 [DEBUG][       Thread-610037][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:08:35,317 [DEBUG][       Thread-610037][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:08:35,361 [DEBUG][       Thread-610037][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:08:35,361 [DEBUG][       Thread-610037][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:08:35,364 [DEBUG][       Thread-610037][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:08:35,377 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:08:35,377 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:08:35,379 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:08:35,381 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:08:35,387 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:08:35,389 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:08:35,389 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:08:35,390 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:08:35,390 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.588828 -999.00  +13.90  35.31     50   +3.80 1 2 2 1 1   887    0 11.09 37.25 ----- 28.7 35.3 15.2 42.7 15.7 -23.3 15.2 -23.0 15.5 -21.9 15.9 -22.8
2025-07-01 16:08:35,390 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:08:35,390 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:08:35,390 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.588828
2025-07-01 16:08:35,391 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:08:35,391 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:08:35,391 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:08:35,391 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:08:35,391 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:08:35,392 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:08:31', tmtdew=11.48, humidity=46.0, cloud=0.0, wind=33.51, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:07:54.739', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:08:35,393 [DEBUG][       Thread-610037][   transport.py][1871] : EOF in transport thread
2025-07-01 16:08:35,476 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:08:35,488 [DEBUG][       Thread-610040][   transport.py][1871] : starting thread (client mode): 0x474e8130
2025-07-01 16:08:35,488 [DEBUG][       Thread-610040][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:08:35,503 [DEBUG][       Thread-610040][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:08:35,503 [ INFO][       Thread-610040][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:08:35,511 [DEBUG][       Thread-610040][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:08:35,511 [DEBUG][       Thread-610040][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:08:35,511 [DEBUG][       Thread-610040][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:08:35,511 [DEBUG][       Thread-610040][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:08:35,511 [DEBUG][       Thread-610040][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:08:35,511 [DEBUG][       Thread-610040][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:08:35,511 [DEBUG][       Thread-610040][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:08:35,511 [DEBUG][       Thread-610040][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:08:35,511 [DEBUG][       Thread-610040][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:08:35,511 [DEBUG][       Thread-610040][   transport.py][1871] : client lang: <none>
2025-07-01 16:08:35,511 [DEBUG][       Thread-610040][   transport.py][1871] : server lang: <none>
2025-07-01 16:08:35,511 [DEBUG][       Thread-610040][   transport.py][1871] : kex follows: False
2025-07-01 16:08:35,511 [DEBUG][       Thread-610040][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:08:35,511 [DEBUG][       Thread-610040][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:08:35,511 [DEBUG][       Thread-610040][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:08:35,511 [DEBUG][       Thread-610040][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:08:35,511 [DEBUG][       Thread-610040][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:08:35,511 [DEBUG][       Thread-610040][   transport.py][1871] : Compression: none
2025-07-01 16:08:35,511 [DEBUG][       Thread-610040][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:08:35,570 [DEBUG][       Thread-610040][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:08:35,570 [DEBUG][       Thread-610040][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:08:35,571 [DEBUG][       Thread-610040][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:08:35,571 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:08:35,572 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:08:35,630 [DEBUG][       Thread-610040][   transport.py][1871] : userauth is OK
2025-07-01 16:08:35,630 [DEBUG][       Thread-610040][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:08:35,630 [DEBUG][       Thread-610040][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:08:35,630 [DEBUG][       Thread-610040][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:08:35,630 [DEBUG][       Thread-610040][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:08:35,648 [ INFO][       Thread-610040][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:08:35,649 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:08:35,649 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:08:36,633 [DEBUG][       Thread-610040][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:08:36,633 [DEBUG][       Thread-610040][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:08:36,685 [DEBUG][       Thread-610040][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:08:36,685 [DEBUG][       Thread-610040][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:08:36,695 [DEBUG][       Thread-610040][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:08:36,708 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:08:36,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-07-01 16:08: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') -> 00000000
2025-07-01 16:08:36,726 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:08:36,727 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:08:36,727 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:08:36,735 [DEBUG][       Thread-610040][   transport.py][1871] : EOF in transport thread
2025-07-01 16:08:38,085 [DEBUG][Thread-610042 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:08:38,618 [DEBUG][Thread-610043 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:08:46,735 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:08:46,735 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:08:46,735 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:08:46,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-07-01 16:08:47,204 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 8, 31), 11.48, 46.0, 0.0, 33.51, 14.06, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:08:47,204 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:08:31
2025-07-01 16:08:47,290 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:08:47,294 [DEBUG][       Thread-610044][   transport.py][1871] : starting thread (client mode): 0x81a4f70
2025-07-01 16:08:47,294 [DEBUG][       Thread-610044][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:08:47,316 [DEBUG][       Thread-610044][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:08:47,316 [ INFO][       Thread-610044][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:08:47,320 [DEBUG][       Thread-610044][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:08:47,320 [DEBUG][       Thread-610044][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:08:47,320 [DEBUG][       Thread-610044][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:08:47,320 [DEBUG][       Thread-610044][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:08:47,320 [DEBUG][       Thread-610044][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:08:47,320 [DEBUG][       Thread-610044][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:08:47,320 [DEBUG][       Thread-610044][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:08:47,320 [DEBUG][       Thread-610044][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:08:47,320 [DEBUG][       Thread-610044][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:08:47,320 [DEBUG][       Thread-610044][   transport.py][1871] : client lang: <none>
2025-07-01 16:08:47,320 [DEBUG][       Thread-610044][   transport.py][1871] : server lang: <none>
2025-07-01 16:08:47,320 [DEBUG][       Thread-610044][   transport.py][1871] : kex follows: False
2025-07-01 16:08:47,321 [DEBUG][       Thread-610044][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:08:47,321 [DEBUG][       Thread-610044][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:08:47,321 [DEBUG][       Thread-610044][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:08:47,321 [DEBUG][       Thread-610044][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:08:47,321 [DEBUG][       Thread-610044][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:08:47,321 [DEBUG][       Thread-610044][   transport.py][1871] : Compression: none
2025-07-01 16:08:47,321 [DEBUG][       Thread-610044][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:08:47,338 [DEBUG][       Thread-610044][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:08:47,338 [DEBUG][       Thread-610044][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:08:47,339 [DEBUG][       Thread-610044][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:08:47,339 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:08:47,339 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:08:47,340 [DEBUG][       Thread-610044][   transport.py][1871] : userauth is OK
2025-07-01 16:08:47,365 [ INFO][       Thread-610044][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:08:47,366 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:08:47,652 [DEBUG][Thread-610046 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:08:48,033 [DEBUG][       Thread-610044][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:08:48,033 [DEBUG][       Thread-610044][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:08:48,077 [DEBUG][       Thread-610044][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:08:48,077 [DEBUG][       Thread-610044][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:08:48,080 [DEBUG][       Thread-610044][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:08:48,093 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:08:48,093 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:08:48,095 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:08:48,097 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:08:48,102 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:08:48,104 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:08:48,104 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:08:48,105 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:08:48,105 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.588828 -999.00  +13.90  35.31     50   +3.80 1 2 2 1 1   887    0 11.09 37.25 ----- 28.7 35.3 15.2 42.7 15.7 -23.3 15.2 -23.0 15.5 -21.9 15.9 -22.8
2025-07-01 16:08:48,105 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:08:48,105 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:08:48,105 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.588828
2025-07-01 16:08:48,106 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:08:48,106 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:08:48,106 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:08:48,106 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:08:48,106 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:08:48,107 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:08:31', tmtdew=11.48, humidity=46.0, cloud=0.0, wind=33.51, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:07:54.739', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:08:48,108 [DEBUG][       Thread-610044][   transport.py][1871] : EOF in transport thread
2025-07-01 16:08:48,191 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:08:48,201 [DEBUG][       Thread-610048][   transport.py][1871] : starting thread (client mode): 0x75a9540
2025-07-01 16:08:48,201 [DEBUG][       Thread-610048][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:08:48,216 [DEBUG][       Thread-610048][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:08:48,216 [ INFO][       Thread-610048][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:08:48,223 [DEBUG][       Thread-610048][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:08:48,223 [DEBUG][       Thread-610048][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:08:48,223 [DEBUG][       Thread-610048][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:08:48,223 [DEBUG][       Thread-610048][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:08:48,223 [DEBUG][       Thread-610048][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:08:48,223 [DEBUG][       Thread-610048][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:08:48,223 [DEBUG][       Thread-610048][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:08:48,224 [DEBUG][       Thread-610048][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:08:48,224 [DEBUG][       Thread-610048][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:08:48,224 [DEBUG][       Thread-610048][   transport.py][1871] : client lang: <none>
2025-07-01 16:08:48,224 [DEBUG][       Thread-610048][   transport.py][1871] : server lang: <none>
2025-07-01 16:08:48,224 [DEBUG][       Thread-610048][   transport.py][1871] : kex follows: False
2025-07-01 16:08:48,224 [DEBUG][       Thread-610048][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:08:48,224 [DEBUG][       Thread-610048][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:08:48,224 [DEBUG][       Thread-610048][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:08:48,224 [DEBUG][       Thread-610048][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:08:48,224 [DEBUG][       Thread-610048][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:08:48,224 [DEBUG][       Thread-610048][   transport.py][1871] : Compression: none
2025-07-01 16:08:48,224 [DEBUG][       Thread-610048][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:08:48,286 [DEBUG][       Thread-610048][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:08:48,286 [DEBUG][       Thread-610048][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:08:48,287 [DEBUG][       Thread-610048][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:08:48,287 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:08:48,288 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:08:48,342 [DEBUG][       Thread-610048][   transport.py][1871] : userauth is OK
2025-07-01 16:08:48,342 [DEBUG][       Thread-610048][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:08:48,342 [DEBUG][       Thread-610048][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:08:48,342 [DEBUG][       Thread-610048][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:08:48,342 [DEBUG][       Thread-610048][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:08:48,361 [ INFO][       Thread-610048][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:08:48,362 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:08:48,362 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:08:49,374 [DEBUG][       Thread-610048][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:08:49,374 [DEBUG][       Thread-610048][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:08:49,430 [DEBUG][       Thread-610048][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:08:49,430 [DEBUG][       Thread-610048][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:08:49,443 [DEBUG][       Thread-610048][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:08:49,455 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:08: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-07-01 16:08:49,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-07-01 16:08:49,478 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:08:49,478 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:08:49,478 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:08:49,486 [DEBUG][       Thread-610048][   transport.py][1871] : EOF in transport thread
2025-07-01 16:08:56,676 [DEBUG][Thread-610050 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:08:59,488 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:08:59,488 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:08:59,488 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:08:59,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-07-01 16:08:59,948 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 8, 31), 11.48, 46.0, 0.0, 33.51, 14.06, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:08:59,949 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:08:31
2025-07-01 16:09:00,034 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:09:00,038 [DEBUG][       Thread-610051][   transport.py][1871] : starting thread (client mode): 0x75a9030
2025-07-01 16:09:00,038 [DEBUG][       Thread-610051][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:09:00,059 [DEBUG][       Thread-610051][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:09:00,059 [ INFO][       Thread-610051][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:09:00,062 [DEBUG][       Thread-610051][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:09:00,063 [DEBUG][       Thread-610051][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:09:00,063 [DEBUG][       Thread-610051][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:09:00,063 [DEBUG][       Thread-610051][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:09:00,063 [DEBUG][       Thread-610051][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:09:00,063 [DEBUG][       Thread-610051][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:09:00,063 [DEBUG][       Thread-610051][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:09:00,063 [DEBUG][       Thread-610051][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:09:00,063 [DEBUG][       Thread-610051][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:09:00,063 [DEBUG][       Thread-610051][   transport.py][1871] : client lang: <none>
2025-07-01 16:09:00,063 [DEBUG][       Thread-610051][   transport.py][1871] : server lang: <none>
2025-07-01 16:09:00,063 [DEBUG][       Thread-610051][   transport.py][1871] : kex follows: False
2025-07-01 16:09:00,063 [DEBUG][       Thread-610051][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:09:00,063 [DEBUG][       Thread-610051][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:09:00,063 [DEBUG][       Thread-610051][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:09:00,063 [DEBUG][       Thread-610051][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:09:00,063 [DEBUG][       Thread-610051][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:09:00,063 [DEBUG][       Thread-610051][   transport.py][1871] : Compression: none
2025-07-01 16:09:00,063 [DEBUG][       Thread-610051][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:09:00,079 [DEBUG][       Thread-610051][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:09:00,080 [DEBUG][       Thread-610051][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:09:00,080 [DEBUG][       Thread-610051][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:09:00,081 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:09:00,081 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:09:00,082 [DEBUG][       Thread-610051][   transport.py][1871] : userauth is OK
2025-07-01 16:09:00,107 [ INFO][       Thread-610051][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:09:00,107 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:09:00,751 [DEBUG][       Thread-610051][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:09:00,751 [DEBUG][       Thread-610051][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:09:00,793 [DEBUG][       Thread-610051][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:09:00,793 [DEBUG][       Thread-610051][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:09:00,797 [DEBUG][       Thread-610051][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:09:00,810 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:09:00,810 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:09:00,812 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:09:00,814 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:09:00,819 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:09:00,821 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:09:00,821 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:09:00,822 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:09:00,822 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.589175 -999.00  +13.90  35.83     50   +3.80 1 2 2 1 1   887    0 10.86 36.20 ----- 39.9 35.8 14.0 44.9 15.7 -23.3 15.2 -23.1 15.4 -22.1 15.9 -22.1
2025-07-01 16:09:00,822 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:09:00,822 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:09:00,822 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.589175
2025-07-01 16:09:00,823 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:09:00,823 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:09:00,823 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:09:00,823 [DEBUG][       Thread-610051][   transport.py][1871] : EOF in transport thread
2025-07-01 16:09:00,823 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:09:00,824 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:09:00,824 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:08:31', tmtdew=11.48, humidity=46.0, cloud=0.0, wind=33.51, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:08:24.720', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:09:00,907 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:09:00,917 [DEBUG][       Thread-610054][   transport.py][1871] : starting thread (client mode): 0x47398550
2025-07-01 16:09:00,917 [DEBUG][       Thread-610054][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:09:00,932 [DEBUG][       Thread-610054][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:09:00,932 [ INFO][       Thread-610054][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:09:00,939 [DEBUG][       Thread-610054][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:09:00,939 [DEBUG][       Thread-610054][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:09:00,939 [DEBUG][       Thread-610054][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:09:00,940 [DEBUG][       Thread-610054][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:09:00,940 [DEBUG][       Thread-610054][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:09:00,940 [DEBUG][       Thread-610054][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:09:00,940 [DEBUG][       Thread-610054][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:09:00,940 [DEBUG][       Thread-610054][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:09:00,940 [DEBUG][       Thread-610054][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:09:00,940 [DEBUG][       Thread-610054][   transport.py][1871] : client lang: <none>
2025-07-01 16:09:00,940 [DEBUG][       Thread-610054][   transport.py][1871] : server lang: <none>
2025-07-01 16:09:00,940 [DEBUG][       Thread-610054][   transport.py][1871] : kex follows: False
2025-07-01 16:09:00,940 [DEBUG][       Thread-610054][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:09:00,940 [DEBUG][       Thread-610054][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:09:00,940 [DEBUG][       Thread-610054][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:09:00,940 [DEBUG][       Thread-610054][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:09:00,940 [DEBUG][       Thread-610054][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:09:00,940 [DEBUG][       Thread-610054][   transport.py][1871] : Compression: none
2025-07-01 16:09:00,940 [DEBUG][       Thread-610054][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:09:00,997 [DEBUG][       Thread-610054][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:09:00,998 [DEBUG][       Thread-610054][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:09:00,998 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:09:00,999 [DEBUG][       Thread-610054][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:09:00,999 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:09:01,054 [DEBUG][       Thread-610054][   transport.py][1871] : userauth is OK
2025-07-01 16:09:01,054 [DEBUG][       Thread-610054][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:09:01,054 [DEBUG][       Thread-610054][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:09:01,054 [DEBUG][       Thread-610054][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:09:01,054 [DEBUG][       Thread-610054][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:09:01,073 [ INFO][       Thread-610054][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:09:01,073 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:09:01,074 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:09:02,069 [DEBUG][       Thread-610054][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:09:02,069 [DEBUG][       Thread-610054][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:09:02,120 [DEBUG][       Thread-610054][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:09:02,120 [DEBUG][       Thread-610054][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:09:02,129 [DEBUG][       Thread-610054][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:09:02,138 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:09:02,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-07-01 16:09:02,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') -> 00000000
2025-07-01 16:09:02,156 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:09:02,156 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:09:02,157 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:09:02,164 [DEBUG][       Thread-610054][   transport.py][1871] : EOF in transport thread
2025-07-01 16:09:05,694 [DEBUG][Thread-610056 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:09:12,167 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:09:12,167 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:09:12,167 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:09:12,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-07-01 16:09:12,630 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 9, 3), 11.52, 45.89, 0.0, 35.48, 14.02, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:09:12,630 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:09:03
2025-07-01 16:09:12,713 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:09:12,717 [DEBUG][       Thread-610057][   transport.py][1871] : starting thread (client mode): 0x75a9540
2025-07-01 16:09:12,717 [DEBUG][       Thread-610057][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:09:12,738 [DEBUG][       Thread-610057][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:09:12,738 [ INFO][       Thread-610057][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:09:12,741 [DEBUG][       Thread-610057][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:09:12,741 [DEBUG][       Thread-610057][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:09:12,741 [DEBUG][       Thread-610057][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:09:12,741 [DEBUG][       Thread-610057][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:09:12,742 [DEBUG][       Thread-610057][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:09:12,742 [DEBUG][       Thread-610057][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:09:12,742 [DEBUG][       Thread-610057][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:09:12,742 [DEBUG][       Thread-610057][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:09:12,742 [DEBUG][       Thread-610057][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:09:12,742 [DEBUG][       Thread-610057][   transport.py][1871] : client lang: <none>
2025-07-01 16:09:12,742 [DEBUG][       Thread-610057][   transport.py][1871] : server lang: <none>
2025-07-01 16:09:12,742 [DEBUG][       Thread-610057][   transport.py][1871] : kex follows: False
2025-07-01 16:09:12,742 [DEBUG][       Thread-610057][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:09:12,742 [DEBUG][       Thread-610057][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:09:12,742 [DEBUG][       Thread-610057][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:09:12,742 [DEBUG][       Thread-610057][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:09:12,742 [DEBUG][       Thread-610057][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:09:12,742 [DEBUG][       Thread-610057][   transport.py][1871] : Compression: none
2025-07-01 16:09:12,742 [DEBUG][       Thread-610057][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:09:12,759 [DEBUG][       Thread-610057][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:09:12,760 [DEBUG][       Thread-610057][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:09:12,760 [DEBUG][       Thread-610057][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:09:12,760 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:09:12,761 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:09:12,762 [DEBUG][       Thread-610057][   transport.py][1871] : userauth is OK
2025-07-01 16:09:12,787 [ INFO][       Thread-610057][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:09:12,787 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:09:13,377 [DEBUG][       Thread-610057][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:09:13,377 [DEBUG][       Thread-610057][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:09:13,421 [DEBUG][       Thread-610057][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:09:13,421 [DEBUG][       Thread-610057][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:09:13,425 [DEBUG][       Thread-610057][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:09:13,437 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:09:13,437 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:09:13,439 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:09:13,441 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:09:13,446 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:09:13,448 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:09:13,448 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:09:13,449 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:09:13,449 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.589175 -999.00  +13.90  35.83     50   +3.80 1 2 2 1 1   887    0 10.86 36.20 ----- 39.9 35.8 14.0 44.9 15.7 -23.3 15.2 -23.1 15.4 -22.1 15.9 -22.1
2025-07-01 16:09:13,449 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:09:13,449 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:09:13,449 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.589175
2025-07-01 16:09:13,450 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:09:13,450 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:09:13,451 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:09:13,451 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:09:13,451 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:09:13,451 [DEBUG][       Thread-610057][   transport.py][1871] : EOF in transport thread
2025-07-01 16:09:13,451 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:09:03', tmtdew=11.52, humidity=45.89, cloud=0.0, wind=35.48, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:08:24.720', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:09:13,536 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:09:13,545 [DEBUG][       Thread-610060][   transport.py][1871] : starting thread (client mode): 0x81c8910
2025-07-01 16:09:13,545 [DEBUG][       Thread-610060][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:09:13,561 [DEBUG][       Thread-610060][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:09:13,561 [ INFO][       Thread-610060][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:09:13,568 [DEBUG][       Thread-610060][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:09:13,568 [DEBUG][       Thread-610060][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:09:13,568 [DEBUG][       Thread-610060][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:09:13,569 [DEBUG][       Thread-610060][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:09:13,569 [DEBUG][       Thread-610060][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:09:13,569 [DEBUG][       Thread-610060][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:09:13,569 [DEBUG][       Thread-610060][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:09:13,569 [DEBUG][       Thread-610060][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:09:13,569 [DEBUG][       Thread-610060][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:09:13,569 [DEBUG][       Thread-610060][   transport.py][1871] : client lang: <none>
2025-07-01 16:09:13,569 [DEBUG][       Thread-610060][   transport.py][1871] : server lang: <none>
2025-07-01 16:09:13,569 [DEBUG][       Thread-610060][   transport.py][1871] : kex follows: False
2025-07-01 16:09:13,569 [DEBUG][       Thread-610060][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:09:13,569 [DEBUG][       Thread-610060][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:09:13,569 [DEBUG][       Thread-610060][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:09:13,569 [DEBUG][       Thread-610060][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:09:13,569 [DEBUG][       Thread-610060][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:09:13,569 [DEBUG][       Thread-610060][   transport.py][1871] : Compression: none
2025-07-01 16:09:13,569 [DEBUG][       Thread-610060][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:09:13,625 [DEBUG][       Thread-610060][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:09:13,626 [DEBUG][       Thread-610060][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:09:13,626 [DEBUG][       Thread-610060][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:09:13,627 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:09:13,627 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:09:13,682 [DEBUG][       Thread-610060][   transport.py][1871] : userauth is OK
2025-07-01 16:09:13,682 [DEBUG][       Thread-610060][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:09:13,682 [DEBUG][       Thread-610060][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:09:13,682 [DEBUG][       Thread-610060][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:09:13,682 [DEBUG][       Thread-610060][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:09:13,701 [ INFO][       Thread-610060][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:09:13,701 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:09:13,701 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:09:14,713 [DEBUG][Thread-610062 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:09:14,745 [DEBUG][       Thread-610060][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:09:14,745 [DEBUG][       Thread-610060][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:09:14,796 [DEBUG][       Thread-610060][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:09:14,796 [DEBUG][       Thread-610060][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:09:14,806 [DEBUG][       Thread-610060][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:09:14,815 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:09:14,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-07-01 16:09:14,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-07-01 16:09:14,834 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:09:14,834 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:09:14,835 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:09:14,845 [DEBUG][       Thread-610060][   transport.py][1871] : EOF in transport thread
2025-07-01 16:09:23,748 [DEBUG][Thread-610063 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:09:24,845 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:09:24,845 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:09:24,845 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:09:24,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-07-01 16:09:25,322 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 9, 3), 11.52, 45.89, 0.0, 35.48, 14.02, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:09:25,322 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:09:03
2025-07-01 16:09:25,405 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:09:25,412 [DEBUG][       Thread-610064][   transport.py][1871] : starting thread (client mode): 0x818e9b0
2025-07-01 16:09:25,412 [DEBUG][       Thread-610064][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:09:25,433 [DEBUG][       Thread-610064][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:09:25,433 [ INFO][       Thread-610064][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:09:25,436 [DEBUG][       Thread-610064][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:09:25,436 [DEBUG][       Thread-610064][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:09:25,436 [DEBUG][       Thread-610064][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:09:25,436 [DEBUG][       Thread-610064][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:09:25,436 [DEBUG][       Thread-610064][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:09:25,436 [DEBUG][       Thread-610064][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:09:25,436 [DEBUG][       Thread-610064][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:09:25,436 [DEBUG][       Thread-610064][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:09:25,436 [DEBUG][       Thread-610064][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:09:25,436 [DEBUG][       Thread-610064][   transport.py][1871] : client lang: <none>
2025-07-01 16:09:25,436 [DEBUG][       Thread-610064][   transport.py][1871] : server lang: <none>
2025-07-01 16:09:25,436 [DEBUG][       Thread-610064][   transport.py][1871] : kex follows: False
2025-07-01 16:09:25,437 [DEBUG][       Thread-610064][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:09:25,437 [DEBUG][       Thread-610064][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:09:25,437 [DEBUG][       Thread-610064][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:09:25,437 [DEBUG][       Thread-610064][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:09:25,437 [DEBUG][       Thread-610064][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:09:25,437 [DEBUG][       Thread-610064][   transport.py][1871] : Compression: none
2025-07-01 16:09:25,437 [DEBUG][       Thread-610064][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:09:25,453 [DEBUG][       Thread-610064][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:09:25,454 [DEBUG][       Thread-610064][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:09:25,454 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:09:25,454 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:09:25,455 [DEBUG][       Thread-610064][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:09:25,456 [DEBUG][       Thread-610064][   transport.py][1871] : userauth is OK
2025-07-01 16:09:25,481 [ INFO][       Thread-610064][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:09:25,481 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:09:26,135 [DEBUG][       Thread-610064][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:09:26,135 [DEBUG][       Thread-610064][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:09:26,177 [DEBUG][       Thread-610064][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:09:26,177 [DEBUG][       Thread-610064][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:09:26,181 [DEBUG][       Thread-610064][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:09:26,193 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:09:26,193 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:09:26,195 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:09:26,197 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:09:26,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:09:26,204 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:09:26,205 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:09:26,205 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:09:26,205 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.589175 -999.00  +13.90  35.83     50   +3.80 1 2 2 1 1   887    0 10.86 36.20 ----- 39.9 35.8 14.0 44.9 15.7 -23.3 15.2 -23.1 15.4 -22.1 15.9 -22.1
2025-07-01 16:09:26,205 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:09:26,206 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:09:26,206 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.589175
2025-07-01 16:09:26,206 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:09:26,207 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:09:26,207 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:09:26,207 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:09:26,207 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:09:26,207 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:09:03', tmtdew=11.52, humidity=45.89, cloud=0.0, wind=35.48, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:08:24.720', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:09:26,208 [DEBUG][       Thread-610064][   transport.py][1871] : EOF in transport thread
2025-07-01 16:09:26,299 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:09:26,311 [DEBUG][       Thread-610067][   transport.py][1871] : starting thread (client mode): 0x81c8640
2025-07-01 16:09:26,311 [DEBUG][       Thread-610067][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:09:26,327 [DEBUG][       Thread-610067][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:09:26,327 [ INFO][       Thread-610067][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:09:26,334 [DEBUG][       Thread-610067][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:09:26,334 [DEBUG][       Thread-610067][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:09:26,334 [DEBUG][       Thread-610067][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:09:26,334 [DEBUG][       Thread-610067][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:09:26,334 [DEBUG][       Thread-610067][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:09:26,335 [DEBUG][       Thread-610067][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:09:26,335 [DEBUG][       Thread-610067][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:09:26,335 [DEBUG][       Thread-610067][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:09:26,335 [DEBUG][       Thread-610067][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:09:26,335 [DEBUG][       Thread-610067][   transport.py][1871] : client lang: <none>
2025-07-01 16:09:26,335 [DEBUG][       Thread-610067][   transport.py][1871] : server lang: <none>
2025-07-01 16:09:26,335 [DEBUG][       Thread-610067][   transport.py][1871] : kex follows: False
2025-07-01 16:09:26,335 [DEBUG][       Thread-610067][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:09:26,335 [DEBUG][       Thread-610067][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:09:26,335 [DEBUG][       Thread-610067][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:09:26,335 [DEBUG][       Thread-610067][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:09:26,335 [DEBUG][       Thread-610067][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:09:26,335 [DEBUG][       Thread-610067][   transport.py][1871] : Compression: none
2025-07-01 16:09:26,335 [DEBUG][       Thread-610067][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:09:26,393 [DEBUG][       Thread-610067][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:09:26,394 [DEBUG][       Thread-610067][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:09:26,395 [DEBUG][       Thread-610067][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:09:26,395 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:09:26,395 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:09:26,450 [DEBUG][       Thread-610067][   transport.py][1871] : userauth is OK
2025-07-01 16:09:26,450 [DEBUG][       Thread-610067][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:09:26,450 [DEBUG][       Thread-610067][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:09:26,450 [DEBUG][       Thread-610067][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:09:26,450 [DEBUG][       Thread-610067][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:09:26,469 [ INFO][       Thread-610067][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:09:26,470 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:09:26,470 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:09:27,505 [DEBUG][       Thread-610067][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:09:27,505 [DEBUG][       Thread-610067][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:09:27,555 [DEBUG][       Thread-610067][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:09:27,555 [DEBUG][       Thread-610067][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:09:27,564 [DEBUG][       Thread-610067][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:09:27,572 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:09:27,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-07-01 16:09:27,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-07-01 16:09:27,590 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:09:27,590 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:09:27,590 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:09:27,598 [DEBUG][       Thread-610067][   transport.py][1871] : EOF in transport thread
2025-07-01 16:09:32,772 [DEBUG][Thread-610069 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:09:37,601 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:09:37,601 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:09:37,601 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:09:37,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-07-01 16:09:38,085 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 9, 35), 11.46, 45.74, 0.0, 26.87, 14.06, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:09:38,085 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:09:35
2025-07-01 16:09:38,118 [DEBUG][Thread-610070 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:09:38,169 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:09:38,173 [DEBUG][       Thread-610071][   transport.py][1871] : starting thread (client mode): 0x81e5570
2025-07-01 16:09:38,173 [DEBUG][       Thread-610071][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:09:38,193 [DEBUG][       Thread-610071][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:09:38,193 [ INFO][       Thread-610071][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:09:38,196 [DEBUG][       Thread-610071][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:09:38,197 [DEBUG][       Thread-610071][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:09:38,197 [DEBUG][       Thread-610071][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:09:38,197 [DEBUG][       Thread-610071][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:09:38,197 [DEBUG][       Thread-610071][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:09:38,197 [DEBUG][       Thread-610071][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:09:38,197 [DEBUG][       Thread-610071][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:09:38,197 [DEBUG][       Thread-610071][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:09:38,197 [DEBUG][       Thread-610071][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:09:38,197 [DEBUG][       Thread-610071][   transport.py][1871] : client lang: <none>
2025-07-01 16:09:38,197 [DEBUG][       Thread-610071][   transport.py][1871] : server lang: <none>
2025-07-01 16:09:38,197 [DEBUG][       Thread-610071][   transport.py][1871] : kex follows: False
2025-07-01 16:09:38,197 [DEBUG][       Thread-610071][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:09:38,197 [DEBUG][       Thread-610071][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:09:38,197 [DEBUG][       Thread-610071][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:09:38,197 [DEBUG][       Thread-610071][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:09:38,197 [DEBUG][       Thread-610071][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:09:38,197 [DEBUG][       Thread-610071][   transport.py][1871] : Compression: none
2025-07-01 16:09:38,197 [DEBUG][       Thread-610071][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:09:38,214 [DEBUG][       Thread-610071][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:09:38,215 [DEBUG][       Thread-610071][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:09:38,215 [DEBUG][       Thread-610071][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:09:38,215 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:09:38,216 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:09:38,217 [DEBUG][       Thread-610071][   transport.py][1871] : userauth is OK
2025-07-01 16:09:38,243 [ INFO][       Thread-610071][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:09:38,243 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:09:38,899 [DEBUG][       Thread-610071][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:09:38,900 [DEBUG][       Thread-610071][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:09:38,941 [DEBUG][       Thread-610071][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:09:38,941 [DEBUG][       Thread-610071][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:09:38,945 [DEBUG][       Thread-610071][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:09:38,956 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:09:38,957 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:09:38,959 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:09:38,961 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:09:38,966 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:09:38,968 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:09:38,969 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:09:38,969 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:09:38,969 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.589870 -999.00  +13.80  30.12     50   +3.80 1 2 2 1 1   887    0 10.92 32.38 ----- 36.1 30.1 33.3 50.8 15.6 -23.4 15.2 -23.4 15.4 -22.6 15.8 -22.4
2025-07-01 16:09:38,970 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:09:38,970 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:09:38,970 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.589870
2025-07-01 16:09:38,970 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:09:38,971 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:09:38,971 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:09:38,971 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:09:38,971 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:09:38,971 [DEBUG][       Thread-610071][   transport.py][1871] : EOF in transport thread
2025-07-01 16:09:38,971 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:09:35', tmtdew=11.46, humidity=45.74, cloud=0.0, wind=26.87, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:09:24.768', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:09:39,055 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:09:39,064 [DEBUG][       Thread-610074][   transport.py][1871] : starting thread (client mode): 0x8156620
2025-07-01 16:09:39,064 [DEBUG][       Thread-610074][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:09:39,079 [DEBUG][       Thread-610074][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:09:39,079 [ INFO][       Thread-610074][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:09:39,087 [DEBUG][       Thread-610074][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:09:39,087 [DEBUG][       Thread-610074][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:09:39,087 [DEBUG][       Thread-610074][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:09:39,087 [DEBUG][       Thread-610074][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:09:39,087 [DEBUG][       Thread-610074][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:09:39,087 [DEBUG][       Thread-610074][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:09:39,087 [DEBUG][       Thread-610074][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:09:39,087 [DEBUG][       Thread-610074][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:09:39,087 [DEBUG][       Thread-610074][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:09:39,087 [DEBUG][       Thread-610074][   transport.py][1871] : client lang: <none>
2025-07-01 16:09:39,087 [DEBUG][       Thread-610074][   transport.py][1871] : server lang: <none>
2025-07-01 16:09:39,087 [DEBUG][       Thread-610074][   transport.py][1871] : kex follows: False
2025-07-01 16:09:39,087 [DEBUG][       Thread-610074][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:09:39,088 [DEBUG][       Thread-610074][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:09:39,088 [DEBUG][       Thread-610074][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:09:39,088 [DEBUG][       Thread-610074][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:09:39,088 [DEBUG][       Thread-610074][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:09:39,088 [DEBUG][       Thread-610074][   transport.py][1871] : Compression: none
2025-07-01 16:09:39,088 [DEBUG][       Thread-610074][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:09:39,145 [DEBUG][       Thread-610074][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:09:39,146 [DEBUG][       Thread-610074][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:09:39,146 [DEBUG][       Thread-610074][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:09:39,147 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:09:39,147 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:09:39,201 [DEBUG][       Thread-610074][   transport.py][1871] : userauth is OK
2025-07-01 16:09:39,201 [DEBUG][       Thread-610074][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:09:39,202 [DEBUG][       Thread-610074][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:09:39,202 [DEBUG][       Thread-610074][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:09:39,202 [DEBUG][       Thread-610074][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:09:39,220 [ INFO][       Thread-610074][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:09:39,221 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:09:39,221 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:09:40,233 [DEBUG][       Thread-610074][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:09:40,234 [DEBUG][       Thread-610074][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:09:40,284 [DEBUG][       Thread-610074][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:09:40,284 [DEBUG][       Thread-610074][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:09:40,293 [DEBUG][       Thread-610074][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:09:40,301 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:09:40,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-07-01 16:09:40,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-07-01 16:09:40,320 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:09:40,320 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:09:40,321 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:09:40,329 [DEBUG][       Thread-610074][   transport.py][1871] : EOF in transport thread
2025-07-01 16:09:41,790 [DEBUG][Thread-610076 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:09:50,324 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:09:50,324 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:09:50,324 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:09:50,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-07-01 16:09:50,798 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 9, 35), 11.46, 45.74, 0.0, 26.87, 14.06, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:09:50,798 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:09:35
2025-07-01 16:09:50,812 [DEBUG][Thread-610077 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:09:50,882 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:09:50,888 [DEBUG][       Thread-610078][   transport.py][1871] : starting thread (client mode): 0x81a5810
2025-07-01 16:09:50,888 [DEBUG][       Thread-610078][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:09:50,908 [DEBUG][       Thread-610078][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:09:50,908 [ INFO][       Thread-610078][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:09:50,911 [DEBUG][       Thread-610078][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:09:50,911 [DEBUG][       Thread-610078][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:09:50,911 [DEBUG][       Thread-610078][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:09:50,911 [DEBUG][       Thread-610078][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:09:50,911 [DEBUG][       Thread-610078][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:09:50,911 [DEBUG][       Thread-610078][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:09:50,911 [DEBUG][       Thread-610078][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:09:50,911 [DEBUG][       Thread-610078][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:09:50,911 [DEBUG][       Thread-610078][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:09:50,911 [DEBUG][       Thread-610078][   transport.py][1871] : client lang: <none>
2025-07-01 16:09:50,911 [DEBUG][       Thread-610078][   transport.py][1871] : server lang: <none>
2025-07-01 16:09:50,911 [DEBUG][       Thread-610078][   transport.py][1871] : kex follows: False
2025-07-01 16:09:50,911 [DEBUG][       Thread-610078][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:09:50,911 [DEBUG][       Thread-610078][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:09:50,912 [DEBUG][       Thread-610078][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:09:50,912 [DEBUG][       Thread-610078][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:09:50,912 [DEBUG][       Thread-610078][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:09:50,912 [DEBUG][       Thread-610078][   transport.py][1871] : Compression: none
2025-07-01 16:09:50,912 [DEBUG][       Thread-610078][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:09:50,929 [DEBUG][       Thread-610078][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:09:50,930 [DEBUG][       Thread-610078][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:09:50,930 [DEBUG][       Thread-610078][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:09:50,930 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:09:50,931 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:09:50,932 [DEBUG][       Thread-610078][   transport.py][1871] : userauth is OK
2025-07-01 16:09:50,957 [ INFO][       Thread-610078][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:09:50,957 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:09:51,583 [DEBUG][       Thread-610078][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:09:51,583 [DEBUG][       Thread-610078][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:09:51,625 [DEBUG][       Thread-610078][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:09:51,625 [DEBUG][       Thread-610078][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:09:51,629 [DEBUG][       Thread-610078][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:09:51,640 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:09:51,640 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:09:51,642 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:09:51,644 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:09:51,649 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:09:51,651 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:09:51,651 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:09:51,652 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:09:51,652 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.589870 -999.00  +13.80  30.12     50   +3.80 1 2 2 1 1   887    0 10.92 32.38 ----- 36.1 30.1 33.3 50.8 15.6 -23.4 15.2 -23.4 15.4 -22.6 15.8 -22.4
2025-07-01 16:09:51,652 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:09:51,652 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:09:51,652 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.589870
2025-07-01 16:09:51,653 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:09:51,653 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:09:51,653 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:09:51,654 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:09:51,654 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:09:51,654 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:09:35', tmtdew=11.46, humidity=45.74, cloud=0.0, wind=26.87, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:09:24.768', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:09:51,655 [DEBUG][       Thread-610078][   transport.py][1871] : EOF in transport thread
2025-07-01 16:09:51,737 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:09:51,749 [DEBUG][       Thread-610081][   transport.py][1871] : starting thread (client mode): 0x8393910
2025-07-01 16:09:51,749 [DEBUG][       Thread-610081][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:09:51,765 [DEBUG][       Thread-610081][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:09:51,765 [ INFO][       Thread-610081][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:09:51,773 [DEBUG][       Thread-610081][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:09:51,773 [DEBUG][       Thread-610081][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:09:51,773 [DEBUG][       Thread-610081][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:09:51,773 [DEBUG][       Thread-610081][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:09:51,773 [DEBUG][       Thread-610081][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:09:51,773 [DEBUG][       Thread-610081][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:09:51,773 [DEBUG][       Thread-610081][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:09:51,773 [DEBUG][       Thread-610081][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:09:51,773 [DEBUG][       Thread-610081][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:09:51,773 [DEBUG][       Thread-610081][   transport.py][1871] : client lang: <none>
2025-07-01 16:09:51,773 [DEBUG][       Thread-610081][   transport.py][1871] : server lang: <none>
2025-07-01 16:09:51,773 [DEBUG][       Thread-610081][   transport.py][1871] : kex follows: False
2025-07-01 16:09:51,773 [DEBUG][       Thread-610081][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:09:51,773 [DEBUG][       Thread-610081][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:09:51,773 [DEBUG][       Thread-610081][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:09:51,773 [DEBUG][       Thread-610081][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:09:51,774 [DEBUG][       Thread-610081][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:09:51,774 [DEBUG][       Thread-610081][   transport.py][1871] : Compression: none
2025-07-01 16:09:51,774 [DEBUG][       Thread-610081][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:09:51,837 [DEBUG][       Thread-610081][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:09:51,837 [DEBUG][       Thread-610081][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:09:51,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:09:51,839 [DEBUG][       Thread-610081][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:09:51,839 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:09:51,893 [DEBUG][       Thread-610081][   transport.py][1871] : userauth is OK
2025-07-01 16:09:51,894 [DEBUG][       Thread-610081][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:09:51,894 [DEBUG][       Thread-610081][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:09:51,894 [DEBUG][       Thread-610081][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:09:51,894 [DEBUG][       Thread-610081][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:09:51,913 [ INFO][       Thread-610081][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:09:51,913 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:09:51,914 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:09:52,904 [DEBUG][       Thread-610081][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:09:52,904 [DEBUG][       Thread-610081][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:09:52,952 [DEBUG][       Thread-610081][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:09:52,952 [DEBUG][       Thread-610081][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:09:52,962 [DEBUG][       Thread-610081][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:09:52,971 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:09:52,972 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 16:09:52,981 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 16:09:52,990 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:09:52,991 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:09:52,991 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:09:52,999 [DEBUG][       Thread-610081][   transport.py][1871] : EOF in transport thread
2025-07-01 16:09:59,835 [DEBUG][Thread-610083 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:10:02,998 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:10:02,998 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:10:02,998 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:10:03,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-07-01 16:10:03,467 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 9, 35), 11.46, 45.74, 0.0, 26.87, 14.06, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:10:03,467 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:09:35
2025-07-01 16:10:03,551 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:10:03,555 [DEBUG][       Thread-610084][   transport.py][1871] : starting thread (client mode): 0x81e6a10
2025-07-01 16:10:03,555 [DEBUG][       Thread-610084][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:10:03,575 [DEBUG][       Thread-610084][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:10:03,575 [ INFO][       Thread-610084][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:10:03,576 [DEBUG][       Thread-610084][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:10:03,576 [DEBUG][       Thread-610084][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:10:03,576 [DEBUG][       Thread-610084][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:10:03,576 [DEBUG][       Thread-610084][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:10:03,576 [DEBUG][       Thread-610084][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:10:03,576 [DEBUG][       Thread-610084][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:10:03,576 [DEBUG][       Thread-610084][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:10:03,576 [DEBUG][       Thread-610084][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:10:03,576 [DEBUG][       Thread-610084][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:10:03,576 [DEBUG][       Thread-610084][   transport.py][1871] : client lang: <none>
2025-07-01 16:10:03,576 [DEBUG][       Thread-610084][   transport.py][1871] : server lang: <none>
2025-07-01 16:10:03,576 [DEBUG][       Thread-610084][   transport.py][1871] : kex follows: False
2025-07-01 16:10:03,576 [DEBUG][       Thread-610084][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:10:03,576 [DEBUG][       Thread-610084][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:10:03,577 [DEBUG][       Thread-610084][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:10:03,577 [DEBUG][       Thread-610084][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:10:03,577 [DEBUG][       Thread-610084][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:10:03,577 [DEBUG][       Thread-610084][   transport.py][1871] : Compression: none
2025-07-01 16:10:03,577 [DEBUG][       Thread-610084][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:10:03,584 [DEBUG][       Thread-610084][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:10:03,585 [DEBUG][       Thread-610084][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:10:03,585 [DEBUG][       Thread-610084][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:10:03,585 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:10:03,585 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:10:03,586 [DEBUG][       Thread-610084][   transport.py][1871] : userauth is OK
2025-07-01 16:10:03,599 [ INFO][       Thread-610084][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:10:03,600 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:10:04,192 [DEBUG][       Thread-610084][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:10:04,193 [DEBUG][       Thread-610084][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:10:04,236 [DEBUG][       Thread-610084][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:10:04,237 [DEBUG][       Thread-610084][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:10:04,238 [DEBUG][       Thread-610084][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:10:04,249 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:10:04,249 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:10:04,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:10:04,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:10:04,257 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:10:04,259 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:10:04,259 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:10:04,259 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:10:04,259 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.590217 -999.00  +13.80  39.36     50   +3.80 1 2 2 1 1   887    0 10.91 33.28 ----- 40.9 39.4 20.2 47.8 15.6 -23.5 15.2 -23.5 15.3 -22.4 15.8 -22.8
2025-07-01 16:10:04,260 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:10:04,260 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:10:04,260 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.590217
2025-07-01 16:10:04,260 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:10:04,261 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:10:04,261 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:10:04,261 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:10:04,261 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:10:04,261 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:09:35', tmtdew=11.46, humidity=45.74, cloud=0.0, wind=26.87, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:09:54.749', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:10:04,262 [DEBUG][       Thread-610084][   transport.py][1871] : EOF in transport thread
2025-07-01 16:10:04,333 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:10:04,343 [DEBUG][       Thread-610087][   transport.py][1871] : starting thread (client mode): 0x818e770
2025-07-01 16:10:04,343 [DEBUG][       Thread-610087][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:10:04,358 [DEBUG][       Thread-610087][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:10:04,358 [ INFO][       Thread-610087][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:10:04,365 [DEBUG][       Thread-610087][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:10:04,365 [DEBUG][       Thread-610087][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:10:04,365 [DEBUG][       Thread-610087][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:10:04,366 [DEBUG][       Thread-610087][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:10:04,366 [DEBUG][       Thread-610087][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:10:04,366 [DEBUG][       Thread-610087][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:10:04,366 [DEBUG][       Thread-610087][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:10:04,366 [DEBUG][       Thread-610087][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:10:04,366 [DEBUG][       Thread-610087][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:10:04,366 [DEBUG][       Thread-610087][   transport.py][1871] : client lang: <none>
2025-07-01 16:10:04,366 [DEBUG][       Thread-610087][   transport.py][1871] : server lang: <none>
2025-07-01 16:10:04,366 [DEBUG][       Thread-610087][   transport.py][1871] : kex follows: False
2025-07-01 16:10:04,366 [DEBUG][       Thread-610087][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:10:04,366 [DEBUG][       Thread-610087][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:10:04,366 [DEBUG][       Thread-610087][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:10:04,366 [DEBUG][       Thread-610087][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:10:04,366 [DEBUG][       Thread-610087][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:10:04,366 [DEBUG][       Thread-610087][   transport.py][1871] : Compression: none
2025-07-01 16:10:04,366 [DEBUG][       Thread-610087][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:10:04,425 [DEBUG][       Thread-610087][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:10:04,426 [DEBUG][       Thread-610087][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:10:04,427 [DEBUG][       Thread-610087][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:10:04,427 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:10:04,428 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:10:04,481 [DEBUG][       Thread-610087][   transport.py][1871] : userauth is OK
2025-07-01 16:10:04,481 [DEBUG][       Thread-610087][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:10:04,481 [DEBUG][       Thread-610087][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:10:04,482 [DEBUG][       Thread-610087][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:10:04,482 [DEBUG][       Thread-610087][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:10:04,507 [ INFO][       Thread-610087][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:10:04,507 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:10:04,508 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:10:05,557 [DEBUG][       Thread-610087][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:10:05,558 [DEBUG][       Thread-610087][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:10:05,608 [DEBUG][       Thread-610087][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:10:05,608 [DEBUG][       Thread-610087][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:10:05,617 [DEBUG][       Thread-610087][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:10:05,626 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:10:05,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-07-01 16:10:05,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-07-01 16:10:05,645 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:10:05,645 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:10:05,646 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:10:05,653 [DEBUG][       Thread-610087][   transport.py][1871] : EOF in transport thread
2025-07-01 16:10:08,854 [DEBUG][Thread-610089 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:10:15,656 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:10:15,656 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:10:15,656 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:10:15,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-07-01 16:10:16,131 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 10, 6), 11.47, 45.71, 0.0, 29.47, 14.05, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:10:16,132 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:10:06
2025-07-01 16:10:16,215 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:10:16,221 [DEBUG][       Thread-610090][   transport.py][1871] : starting thread (client mode): 0x81dbee0
2025-07-01 16:10:16,221 [DEBUG][       Thread-610090][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:10:16,241 [DEBUG][       Thread-610090][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:10:16,241 [ INFO][       Thread-610090][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:10:16,245 [DEBUG][       Thread-610090][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:10:16,245 [DEBUG][       Thread-610090][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:10:16,245 [DEBUG][       Thread-610090][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:10:16,245 [DEBUG][       Thread-610090][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:10:16,245 [DEBUG][       Thread-610090][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:10:16,245 [DEBUG][       Thread-610090][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:10:16,245 [DEBUG][       Thread-610090][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:10:16,245 [DEBUG][       Thread-610090][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:10:16,245 [DEBUG][       Thread-610090][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:10:16,245 [DEBUG][       Thread-610090][   transport.py][1871] : client lang: <none>
2025-07-01 16:10:16,245 [DEBUG][       Thread-610090][   transport.py][1871] : server lang: <none>
2025-07-01 16:10:16,245 [DEBUG][       Thread-610090][   transport.py][1871] : kex follows: False
2025-07-01 16:10:16,245 [DEBUG][       Thread-610090][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:10:16,245 [DEBUG][       Thread-610090][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:10:16,245 [DEBUG][       Thread-610090][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:10:16,246 [DEBUG][       Thread-610090][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:10:16,246 [DEBUG][       Thread-610090][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:10:16,246 [DEBUG][       Thread-610090][   transport.py][1871] : Compression: none
2025-07-01 16:10:16,246 [DEBUG][       Thread-610090][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:10:16,262 [DEBUG][       Thread-610090][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:10:16,262 [DEBUG][       Thread-610090][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:10:16,263 [DEBUG][       Thread-610090][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:10:16,263 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:10:16,263 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:10:16,264 [DEBUG][       Thread-610090][   transport.py][1871] : userauth is OK
2025-07-01 16:10:16,277 [ INFO][       Thread-610090][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:10:16,278 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:10:16,911 [DEBUG][       Thread-610090][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:10:16,912 [DEBUG][       Thread-610090][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:10:16,953 [DEBUG][       Thread-610090][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:10:16,953 [DEBUG][       Thread-610090][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:10:16,956 [DEBUG][       Thread-610090][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:10:16,971 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:10:16,971 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:10:16,973 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:10:16,975 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:10:16,981 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:10:16,983 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:10:16,983 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:10:16,984 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:10:16,984 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.590217 -999.00  +13.80  39.36     50   +3.80 1 2 2 1 1   887    0 10.91 33.28 ----- 40.9 39.4 20.2 47.8 15.6 -23.5 15.2 -23.5 15.3 -22.4 15.8 -22.8
2025-07-01 16:10:16,984 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:10:16,984 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:10:16,984 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.590217
2025-07-01 16:10:16,984 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:10:16,985 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:10:16,985 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:10:16,985 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:10:16,985 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:10:16,985 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:10:06', tmtdew=11.47, humidity=45.71, cloud=0.0, wind=29.47, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:09:54.749', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:10:16,986 [DEBUG][       Thread-610090][   transport.py][1871] : EOF in transport thread
2025-07-01 16:10:17,069 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:10:17,084 [DEBUG][       Thread-610093][   transport.py][1871] : starting thread (client mode): 0x8171c00
2025-07-01 16:10:17,084 [DEBUG][       Thread-610093][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:10:17,102 [DEBUG][       Thread-610093][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:10:17,102 [ INFO][       Thread-610093][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:10:17,109 [DEBUG][       Thread-610093][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:10:17,110 [DEBUG][       Thread-610093][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:10:17,110 [DEBUG][       Thread-610093][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:10:17,110 [DEBUG][       Thread-610093][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:10:17,110 [DEBUG][       Thread-610093][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:10:17,110 [DEBUG][       Thread-610093][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:10:17,110 [DEBUG][       Thread-610093][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:10:17,110 [DEBUG][       Thread-610093][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:10:17,110 [DEBUG][       Thread-610093][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:10:17,110 [DEBUG][       Thread-610093][   transport.py][1871] : client lang: <none>
2025-07-01 16:10:17,110 [DEBUG][       Thread-610093][   transport.py][1871] : server lang: <none>
2025-07-01 16:10:17,110 [DEBUG][       Thread-610093][   transport.py][1871] : kex follows: False
2025-07-01 16:10:17,110 [DEBUG][       Thread-610093][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:10:17,110 [DEBUG][       Thread-610093][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:10:17,110 [DEBUG][       Thread-610093][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:10:17,110 [DEBUG][       Thread-610093][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:10:17,110 [DEBUG][       Thread-610093][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:10:17,110 [DEBUG][       Thread-610093][   transport.py][1871] : Compression: none
2025-07-01 16:10:17,111 [DEBUG][       Thread-610093][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:10:17,174 [DEBUG][       Thread-610093][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:10:17,175 [DEBUG][       Thread-610093][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:10:17,175 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:10:17,176 [DEBUG][       Thread-610093][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:10:17,177 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:10:17,233 [DEBUG][       Thread-610093][   transport.py][1871] : userauth is OK
2025-07-01 16:10:17,233 [DEBUG][       Thread-610093][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:10:17,233 [DEBUG][       Thread-610093][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:10:17,233 [DEBUG][       Thread-610093][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:10:17,233 [DEBUG][       Thread-610093][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:10:17,248 [ INFO][       Thread-610093][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:10:17,248 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:10:17,248 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:10:17,874 [DEBUG][Thread-610095 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:10:18,284 [DEBUG][       Thread-610093][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:10:18,284 [DEBUG][       Thread-610093][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:10:18,335 [DEBUG][       Thread-610093][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:10:18,335 [DEBUG][       Thread-610093][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:10:18,344 [DEBUG][       Thread-610093][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:10:18,351 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:10:18,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-07-01 16:10:18,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-07-01 16:10:18,367 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:10:18,367 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:10:18,368 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:10:18,375 [DEBUG][       Thread-610093][   transport.py][1871] : EOF in transport thread
2025-07-01 16:10:26,902 [DEBUG][Thread-610096 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:10:28,378 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:10:28,378 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:10:28,378 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:10:28,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-07-01 16:10:28,852 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 10, 6), 11.47, 45.71, 0.0, 29.47, 14.05, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:10:28,852 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:10:06
2025-07-01 16:10:28,936 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:10:28,942 [DEBUG][       Thread-610097][   transport.py][1871] : starting thread (client mode): 0x81d8e80
2025-07-01 16:10:28,942 [DEBUG][       Thread-610097][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:10:28,962 [DEBUG][       Thread-610097][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:10:28,962 [ INFO][       Thread-610097][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:10:28,963 [DEBUG][       Thread-610097][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:10:28,963 [DEBUG][       Thread-610097][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:10:28,963 [DEBUG][       Thread-610097][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:10:28,963 [DEBUG][       Thread-610097][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:10:28,963 [DEBUG][       Thread-610097][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:10:28,963 [DEBUG][       Thread-610097][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:10:28,963 [DEBUG][       Thread-610097][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:10:28,964 [DEBUG][       Thread-610097][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:10:28,964 [DEBUG][       Thread-610097][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:10:28,964 [DEBUG][       Thread-610097][   transport.py][1871] : client lang: <none>
2025-07-01 16:10:28,964 [DEBUG][       Thread-610097][   transport.py][1871] : server lang: <none>
2025-07-01 16:10:28,964 [DEBUG][       Thread-610097][   transport.py][1871] : kex follows: False
2025-07-01 16:10:28,964 [DEBUG][       Thread-610097][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:10:28,964 [DEBUG][       Thread-610097][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:10:28,964 [DEBUG][       Thread-610097][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:10:28,964 [DEBUG][       Thread-610097][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:10:28,964 [DEBUG][       Thread-610097][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:10:28,964 [DEBUG][       Thread-610097][   transport.py][1871] : Compression: none
2025-07-01 16:10:28,964 [DEBUG][       Thread-610097][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:10:28,972 [DEBUG][       Thread-610097][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:10:28,972 [DEBUG][       Thread-610097][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:10:28,973 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:10:28,973 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:10:28,973 [DEBUG][       Thread-610097][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:10:28,974 [DEBUG][       Thread-610097][   transport.py][1871] : userauth is OK
2025-07-01 16:10:28,986 [ INFO][       Thread-610097][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:10:28,987 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:10:29,594 [DEBUG][       Thread-610097][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:10:29,595 [DEBUG][       Thread-610097][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:10:29,637 [DEBUG][       Thread-610097][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:10:29,637 [DEBUG][       Thread-610097][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:10:29,640 [DEBUG][       Thread-610097][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:10:29,651 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:10:29,651 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:10:29,653 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:10:29,653 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:10:29,656 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:10:29,657 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:10:29,657 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:10:29,657 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:10:29,657 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.590217 -999.00  +13.80  39.36     50   +3.80 1 2 2 1 1   887    0 10.91 33.28 ----- 40.9 39.4 20.2 47.8 15.6 -23.5 15.2 -23.5 15.3 -22.4 15.8 -22.8
2025-07-01 16:10:29,657 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:10:29,657 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:10:29,657 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.590217
2025-07-01 16:10:29,658 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:10:29,658 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:10:29,658 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:10:29,658 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:10:29,658 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:10:29,658 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:10:06', tmtdew=11.47, humidity=45.71, cloud=0.0, wind=29.47, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:09:54.749', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:10:29,658 [DEBUG][       Thread-610097][   transport.py][1871] : EOF in transport thread
2025-07-01 16:10:29,730 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:10:29,741 [DEBUG][       Thread-610100][   transport.py][1871] : starting thread (client mode): 0x81ca6e0
2025-07-01 16:10:29,742 [DEBUG][       Thread-610100][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:10:29,757 [DEBUG][       Thread-610100][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:10:29,757 [ INFO][       Thread-610100][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:10:29,764 [DEBUG][       Thread-610100][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:10:29,764 [DEBUG][       Thread-610100][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:10:29,764 [DEBUG][       Thread-610100][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:10:29,764 [DEBUG][       Thread-610100][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:10:29,764 [DEBUG][       Thread-610100][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:10:29,764 [DEBUG][       Thread-610100][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:10:29,764 [DEBUG][       Thread-610100][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:10:29,764 [DEBUG][       Thread-610100][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:10:29,764 [DEBUG][       Thread-610100][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:10:29,765 [DEBUG][       Thread-610100][   transport.py][1871] : client lang: <none>
2025-07-01 16:10:29,765 [DEBUG][       Thread-610100][   transport.py][1871] : server lang: <none>
2025-07-01 16:10:29,765 [DEBUG][       Thread-610100][   transport.py][1871] : kex follows: False
2025-07-01 16:10:29,765 [DEBUG][       Thread-610100][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:10:29,765 [DEBUG][       Thread-610100][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:10:29,765 [DEBUG][       Thread-610100][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:10:29,765 [DEBUG][       Thread-610100][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:10:29,765 [DEBUG][       Thread-610100][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:10:29,765 [DEBUG][       Thread-610100][   transport.py][1871] : Compression: none
2025-07-01 16:10:29,765 [DEBUG][       Thread-610100][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:10:29,825 [DEBUG][       Thread-610100][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:10:29,825 [DEBUG][       Thread-610100][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:10:29,826 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:10:29,826 [DEBUG][       Thread-610100][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:10:29,827 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:10:29,882 [DEBUG][       Thread-610100][   transport.py][1871] : userauth is OK
2025-07-01 16:10:29,882 [DEBUG][       Thread-610100][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:10:29,882 [DEBUG][       Thread-610100][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:10:29,882 [DEBUG][       Thread-610100][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:10:29,882 [DEBUG][       Thread-610100][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:10:29,902 [ INFO][       Thread-610100][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:10:29,902 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:10:29,903 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:10:30,943 [DEBUG][       Thread-610100][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:10:30,944 [DEBUG][       Thread-610100][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:10:30,992 [DEBUG][       Thread-610100][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:10:30,992 [DEBUG][       Thread-610100][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:10:31,002 [DEBUG][       Thread-610100][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:10:31,011 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:10:31,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-07-01 16:10:31,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-07-01 16:10:31,029 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:10:31,029 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:10:31,029 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:10:31,037 [DEBUG][       Thread-610100][   transport.py][1871] : EOF in transport thread
2025-07-01 16:10:35,926 [DEBUG][Thread-610102 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:10:38,149 [DEBUG][Thread-610103 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:10:41,040 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:10:41,040 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:10:41,040 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:10:41,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-07-01 16:10:41,504 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 10, 6), 11.47, 45.71, 0.0, 29.47, 14.05, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:10:41,504 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:10:06
2025-07-01 16:10:41,588 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:10:41,592 [DEBUG][       Thread-610104][   transport.py][1871] : starting thread (client mode): 0x81a4070
2025-07-01 16:10:41,592 [DEBUG][       Thread-610104][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:10:41,613 [DEBUG][       Thread-610104][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:10:41,613 [ INFO][       Thread-610104][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:10:41,616 [DEBUG][       Thread-610104][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:10:41,617 [DEBUG][       Thread-610104][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:10:41,617 [DEBUG][       Thread-610104][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:10:41,617 [DEBUG][       Thread-610104][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:10:41,617 [DEBUG][       Thread-610104][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:10:41,617 [DEBUG][       Thread-610104][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:10:41,617 [DEBUG][       Thread-610104][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:10:41,617 [DEBUG][       Thread-610104][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:10:41,617 [DEBUG][       Thread-610104][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:10:41,617 [DEBUG][       Thread-610104][   transport.py][1871] : client lang: <none>
2025-07-01 16:10:41,617 [DEBUG][       Thread-610104][   transport.py][1871] : server lang: <none>
2025-07-01 16:10:41,617 [DEBUG][       Thread-610104][   transport.py][1871] : kex follows: False
2025-07-01 16:10:41,617 [DEBUG][       Thread-610104][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:10:41,617 [DEBUG][       Thread-610104][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:10:41,617 [DEBUG][       Thread-610104][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:10:41,617 [DEBUG][       Thread-610104][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:10:41,617 [DEBUG][       Thread-610104][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:10:41,617 [DEBUG][       Thread-610104][   transport.py][1871] : Compression: none
2025-07-01 16:10:41,617 [DEBUG][       Thread-610104][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:10:41,633 [DEBUG][       Thread-610104][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:10:41,634 [DEBUG][       Thread-610104][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:10:41,634 [DEBUG][       Thread-610104][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:10:41,634 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:10:41,634 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:10:41,636 [DEBUG][       Thread-610104][   transport.py][1871] : userauth is OK
2025-07-01 16:10:41,661 [ INFO][       Thread-610104][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:10:41,661 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:10:42,319 [DEBUG][       Thread-610104][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:10:42,320 [DEBUG][       Thread-610104][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:10:42,361 [DEBUG][       Thread-610104][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:10:42,361 [DEBUG][       Thread-610104][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:10:42,364 [DEBUG][       Thread-610104][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:10:42,376 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:10:42,376 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:10:42,378 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:10:42,380 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:10:42,386 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:10:42,388 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:10:42,388 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:10:42,389 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:10:42,389 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.590564 -999.00  +13.80  43.01     50   +3.70 1 1 2 1 1   887    0 11.00 34.02 ----- 31.9 43.0 26.8 57.8 15.6 -23.4 15.2 -23.7 15.3 -22.7 15.7 -22.9
2025-07-01 16:10:42,389 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:10:42,389 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:10:42,389 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.590564
2025-07-01 16:10:42,389 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:10:42,390 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:10:42,390 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:10:42,390 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:10:42,390 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 16:10:42,390 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:10:06', tmtdew=11.47, humidity=45.71, cloud=0.0, wind=29.47, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:10:24.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:10:42,391 [DEBUG][       Thread-610104][   transport.py][1871] : EOF in transport thread
2025-07-01 16:10:42,474 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:10:42,483 [DEBUG][       Thread-610107][   transport.py][1871] : starting thread (client mode): 0x81735b0
2025-07-01 16:10:42,483 [DEBUG][       Thread-610107][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:10:42,498 [DEBUG][       Thread-610107][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:10:42,498 [ INFO][       Thread-610107][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:10:42,506 [DEBUG][       Thread-610107][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:10:42,506 [DEBUG][       Thread-610107][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:10:42,506 [DEBUG][       Thread-610107][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:10:42,506 [DEBUG][       Thread-610107][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:10:42,506 [DEBUG][       Thread-610107][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:10:42,506 [DEBUG][       Thread-610107][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:10:42,506 [DEBUG][       Thread-610107][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:10:42,506 [DEBUG][       Thread-610107][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:10:42,506 [DEBUG][       Thread-610107][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:10:42,506 [DEBUG][       Thread-610107][   transport.py][1871] : client lang: <none>
2025-07-01 16:10:42,506 [DEBUG][       Thread-610107][   transport.py][1871] : server lang: <none>
2025-07-01 16:10:42,506 [DEBUG][       Thread-610107][   transport.py][1871] : kex follows: False
2025-07-01 16:10:42,506 [DEBUG][       Thread-610107][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:10:42,506 [DEBUG][       Thread-610107][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:10:42,506 [DEBUG][       Thread-610107][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:10:42,507 [DEBUG][       Thread-610107][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:10:42,507 [DEBUG][       Thread-610107][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:10:42,507 [DEBUG][       Thread-610107][   transport.py][1871] : Compression: none
2025-07-01 16:10:42,507 [DEBUG][       Thread-610107][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:10:42,565 [DEBUG][       Thread-610107][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:10:42,566 [DEBUG][       Thread-610107][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:10:42,566 [DEBUG][       Thread-610107][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:10:42,567 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:10:42,567 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:10:42,627 [DEBUG][       Thread-610107][   transport.py][1871] : userauth is OK
2025-07-01 16:10:42,627 [DEBUG][       Thread-610107][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:10:42,627 [DEBUG][       Thread-610107][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:10:42,627 [DEBUG][       Thread-610107][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:10:42,627 [DEBUG][       Thread-610107][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:10:42,647 [ INFO][       Thread-610107][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:10:42,648 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:10:42,648 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:10:43,660 [DEBUG][       Thread-610107][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:10:43,660 [DEBUG][       Thread-610107][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:10:43,708 [DEBUG][       Thread-610107][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:10:43,708 [DEBUG][       Thread-610107][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:10:43,717 [DEBUG][       Thread-610107][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:10:43,725 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:10:43,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-07-01 16:10: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-07-01 16:10:43,742 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:10:43,742 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:10:43,742 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:10:43,750 [DEBUG][       Thread-610107][   transport.py][1871] : EOF in transport thread
2025-07-01 16:10:44,946 [DEBUG][Thread-610109 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:10:53,753 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:10:53,753 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:10:53,753 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:10:53,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-07-01 16:10:53,979 [DEBUG][Thread-610110 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:10:54,232 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 10, 38), 11.54, 45.57, 0.0, 30.36, 14.06, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:10:54,232 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:10:38
2025-07-01 16:10:54,317 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:10:54,323 [DEBUG][       Thread-610111][   transport.py][1871] : starting thread (client mode): 0x81a7fd0
2025-07-01 16:10:54,323 [DEBUG][       Thread-610111][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:10:54,345 [DEBUG][       Thread-610111][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:10:54,345 [ INFO][       Thread-610111][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:10:54,348 [DEBUG][       Thread-610111][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:10:54,348 [DEBUG][       Thread-610111][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:10:54,348 [DEBUG][       Thread-610111][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:10:54,348 [DEBUG][       Thread-610111][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:10:54,349 [DEBUG][       Thread-610111][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:10:54,349 [DEBUG][       Thread-610111][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:10:54,349 [DEBUG][       Thread-610111][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:10:54,349 [DEBUG][       Thread-610111][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:10:54,349 [DEBUG][       Thread-610111][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:10:54,349 [DEBUG][       Thread-610111][   transport.py][1871] : client lang: <none>
2025-07-01 16:10:54,349 [DEBUG][       Thread-610111][   transport.py][1871] : server lang: <none>
2025-07-01 16:10:54,349 [DEBUG][       Thread-610111][   transport.py][1871] : kex follows: False
2025-07-01 16:10:54,349 [DEBUG][       Thread-610111][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:10:54,349 [DEBUG][       Thread-610111][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:10:54,349 [DEBUG][       Thread-610111][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:10:54,349 [DEBUG][       Thread-610111][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:10:54,349 [DEBUG][       Thread-610111][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:10:54,349 [DEBUG][       Thread-610111][   transport.py][1871] : Compression: none
2025-07-01 16:10:54,349 [DEBUG][       Thread-610111][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:10:54,367 [DEBUG][       Thread-610111][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:10:54,367 [DEBUG][       Thread-610111][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:10:54,368 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:10:54,368 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:10:54,369 [DEBUG][       Thread-610111][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:10:54,369 [DEBUG][       Thread-610111][   transport.py][1871] : userauth is OK
2025-07-01 16:10:54,394 [ INFO][       Thread-610111][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:10:54,395 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:10:55,029 [DEBUG][       Thread-610111][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:10:55,029 [DEBUG][       Thread-610111][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:10:55,072 [DEBUG][       Thread-610111][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:10:55,073 [DEBUG][       Thread-610111][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:10:55,075 [DEBUG][       Thread-610111][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:10:55,086 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:10:55,087 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:10:55,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:10:55,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:10:55,091 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:10:55,092 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:10:55,092 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:10:55,092 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:10:55,092 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.590564 -999.00  +13.80  43.01     50   +3.70 1 1 2 1 1   887    0 11.00 34.02 ----- 31.9 43.0 26.8 57.8 15.6 -23.4 15.2 -23.7 15.3 -22.7 15.7 -22.9
2025-07-01 16:10:55,092 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:10:55,092 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:10:55,092 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.590564
2025-07-01 16:10:55,092 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:10:55,092 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:10:55,092 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:10:55,092 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:10:55,093 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 16:10:55,093 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:10:38', tmtdew=11.54, humidity=45.57, cloud=0.0, wind=30.36, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:10:24.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:10:55,093 [DEBUG][       Thread-610111][   transport.py][1871] : EOF in transport thread
2025-07-01 16:10:55,167 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:10:55,178 [DEBUG][       Thread-610114][   transport.py][1871] : starting thread (client mode): 0x8a65e70
2025-07-01 16:10:55,178 [DEBUG][       Thread-610114][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:10:55,194 [DEBUG][       Thread-610114][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:10:55,194 [ INFO][       Thread-610114][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:10:55,201 [DEBUG][       Thread-610114][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:10:55,201 [DEBUG][       Thread-610114][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:10:55,201 [DEBUG][       Thread-610114][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:10:55,201 [DEBUG][       Thread-610114][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:10:55,201 [DEBUG][       Thread-610114][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:10:55,201 [DEBUG][       Thread-610114][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:10:55,201 [DEBUG][       Thread-610114][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:10:55,201 [DEBUG][       Thread-610114][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:10:55,201 [DEBUG][       Thread-610114][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:10:55,201 [DEBUG][       Thread-610114][   transport.py][1871] : client lang: <none>
2025-07-01 16:10:55,201 [DEBUG][       Thread-610114][   transport.py][1871] : server lang: <none>
2025-07-01 16:10:55,201 [DEBUG][       Thread-610114][   transport.py][1871] : kex follows: False
2025-07-01 16:10:55,201 [DEBUG][       Thread-610114][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:10:55,201 [DEBUG][       Thread-610114][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:10:55,201 [DEBUG][       Thread-610114][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:10:55,201 [DEBUG][       Thread-610114][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:10:55,201 [DEBUG][       Thread-610114][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:10:55,201 [DEBUG][       Thread-610114][   transport.py][1871] : Compression: none
2025-07-01 16:10:55,201 [DEBUG][       Thread-610114][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:10:55,257 [DEBUG][       Thread-610114][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:10:55,257 [DEBUG][       Thread-610114][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:10:55,257 [DEBUG][       Thread-610114][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:10:55,257 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:10:55,257 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:10:55,314 [DEBUG][       Thread-610114][   transport.py][1871] : userauth is OK
2025-07-01 16:10:55,314 [DEBUG][       Thread-610114][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:10:55,314 [DEBUG][       Thread-610114][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:10:55,314 [DEBUG][       Thread-610114][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:10:55,314 [DEBUG][       Thread-610114][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:10:55,328 [ INFO][       Thread-610114][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:10:55,328 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:10:55,328 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:10:56,321 [DEBUG][       Thread-610114][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:10:56,321 [DEBUG][       Thread-610114][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:10:56,379 [DEBUG][       Thread-610114][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:10:56,379 [DEBUG][       Thread-610114][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:10:56,388 [DEBUG][       Thread-610114][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:10:56,398 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:10:56,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-07-01 16:10:56,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-07-01 16:10:56,414 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:10:56,414 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:10:56,414 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:10:56,422 [DEBUG][       Thread-610114][   transport.py][1871] : EOF in transport thread
2025-07-01 16:11:03,000 [DEBUG][Thread-610116 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:11:06,424 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:11:06,425 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:11:06,425 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:11:06,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-07-01 16:11:06,876 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 10, 38), 11.54, 45.57, 0.0, 30.36, 14.06, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:11:06,876 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:10:38
2025-07-01 16:11:06,958 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:11:06,962 [DEBUG][       Thread-610117][   transport.py][1871] : starting thread (client mode): 0x818e680
2025-07-01 16:11:06,963 [DEBUG][       Thread-610117][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:11:06,983 [DEBUG][       Thread-610117][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:11:06,983 [ INFO][       Thread-610117][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:11:06,987 [DEBUG][       Thread-610117][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:11:06,987 [DEBUG][       Thread-610117][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:11:06,987 [DEBUG][       Thread-610117][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:11:06,987 [DEBUG][       Thread-610117][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:11:06,987 [DEBUG][       Thread-610117][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:11:06,987 [DEBUG][       Thread-610117][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:11:06,987 [DEBUG][       Thread-610117][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:11:06,987 [DEBUG][       Thread-610117][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:11:06,987 [DEBUG][       Thread-610117][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:11:06,987 [DEBUG][       Thread-610117][   transport.py][1871] : client lang: <none>
2025-07-01 16:11:06,987 [DEBUG][       Thread-610117][   transport.py][1871] : server lang: <none>
2025-07-01 16:11:06,987 [DEBUG][       Thread-610117][   transport.py][1871] : kex follows: False
2025-07-01 16:11:06,987 [DEBUG][       Thread-610117][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:11:06,987 [DEBUG][       Thread-610117][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:11:06,987 [DEBUG][       Thread-610117][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:11:06,987 [DEBUG][       Thread-610117][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:11:06,987 [DEBUG][       Thread-610117][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:11:06,987 [DEBUG][       Thread-610117][   transport.py][1871] : Compression: none
2025-07-01 16:11:06,987 [DEBUG][       Thread-610117][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:11:07,003 [DEBUG][       Thread-610117][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:11:07,003 [DEBUG][       Thread-610117][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:11:07,003 [DEBUG][       Thread-610117][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:11:07,003 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:11:07,003 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:11:07,004 [DEBUG][       Thread-610117][   transport.py][1871] : userauth is OK
2025-07-01 16:11:07,016 [ INFO][       Thread-610117][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:11:07,017 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:11:07,647 [DEBUG][       Thread-610117][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:11:07,647 [DEBUG][       Thread-610117][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:11:07,689 [DEBUG][       Thread-610117][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:11:07,689 [DEBUG][       Thread-610117][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:11:07,692 [DEBUG][       Thread-610117][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:11:07,706 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:11:07,706 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:11:07,708 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:11:07,710 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:11:07,715 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:11:07,717 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:11:07,718 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:11:07,718 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:11:07,718 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.590564 -999.00  +13.80  43.01     50   +3.70 1 1 2 1 1   887    0 11.00 34.02 ----- 31.9 43.0 26.8 57.8 15.6 -23.4 15.2 -23.7 15.3 -22.7 15.7 -22.9
2025-07-01 16:11:07,718 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:11:07,718 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:11:07,718 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.590564
2025-07-01 16:11:07,719 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:11:07,719 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:11:07,720 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:11:07,720 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:11:07,720 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 16:11:07,720 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:10:38', tmtdew=11.54, humidity=45.57, cloud=0.0, wind=30.36, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:10:24.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:11:07,721 [DEBUG][       Thread-610117][   transport.py][1871] : EOF in transport thread
2025-07-01 16:11:07,813 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:11:07,823 [DEBUG][       Thread-610120][   transport.py][1871] : starting thread (client mode): 0x81e7970
2025-07-01 16:11:07,823 [DEBUG][       Thread-610120][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:11:07,839 [DEBUG][       Thread-610120][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:11:07,839 [ INFO][       Thread-610120][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:11:07,846 [DEBUG][       Thread-610120][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:11:07,847 [DEBUG][       Thread-610120][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:11:07,847 [DEBUG][       Thread-610120][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:11:07,847 [DEBUG][       Thread-610120][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:11:07,847 [DEBUG][       Thread-610120][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:11:07,847 [DEBUG][       Thread-610120][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:11:07,847 [DEBUG][       Thread-610120][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:11:07,847 [DEBUG][       Thread-610120][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:11:07,847 [DEBUG][       Thread-610120][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:11:07,847 [DEBUG][       Thread-610120][   transport.py][1871] : client lang: <none>
2025-07-01 16:11:07,847 [DEBUG][       Thread-610120][   transport.py][1871] : server lang: <none>
2025-07-01 16:11:07,847 [DEBUG][       Thread-610120][   transport.py][1871] : kex follows: False
2025-07-01 16:11:07,847 [DEBUG][       Thread-610120][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:11:07,847 [DEBUG][       Thread-610120][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:11:07,847 [DEBUG][       Thread-610120][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:11:07,847 [DEBUG][       Thread-610120][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:11:07,847 [DEBUG][       Thread-610120][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:11:07,847 [DEBUG][       Thread-610120][   transport.py][1871] : Compression: none
2025-07-01 16:11:07,847 [DEBUG][       Thread-610120][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:11:07,906 [DEBUG][       Thread-610120][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:11:07,906 [DEBUG][       Thread-610120][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:11:07,907 [DEBUG][       Thread-610120][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:11:07,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:11:07,908 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:11:07,967 [DEBUG][       Thread-610120][   transport.py][1871] : userauth is OK
2025-07-01 16:11:07,968 [DEBUG][       Thread-610120][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:11:07,968 [DEBUG][       Thread-610120][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:11:07,968 [DEBUG][       Thread-610120][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:11:07,968 [DEBUG][       Thread-610120][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:11:07,988 [ INFO][       Thread-610120][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:11:07,988 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:11:07,988 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:11:09,037 [DEBUG][       Thread-610120][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:11:09,037 [DEBUG][       Thread-610120][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:11:09,087 [DEBUG][       Thread-610120][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:11:09,087 [DEBUG][       Thread-610120][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:11:09,096 [DEBUG][       Thread-610120][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:11:09,105 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:11:09,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-07-01 16:11:09,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-07-01 16:11:09,122 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:11:09,122 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:11:09,122 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:11:09,130 [DEBUG][       Thread-610120][   transport.py][1871] : EOF in transport thread
2025-07-01 16:11:12,040 [DEBUG][Thread-610122 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:11:19,133 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:11:19,133 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:11:19,133 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:11:19,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-07-01 16:11:19,603 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 11, 11), 11.53, 45.62, 0.0, 33.11, 14.01, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:11:19,604 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:11:11
2025-07-01 16:11:19,687 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:11:19,692 [DEBUG][       Thread-610123][   transport.py][1871] : starting thread (client mode): 0x81e5540
2025-07-01 16:11:19,692 [DEBUG][       Thread-610123][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:11:19,713 [DEBUG][       Thread-610123][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:11:19,713 [ INFO][       Thread-610123][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:11:19,717 [DEBUG][       Thread-610123][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:11:19,717 [DEBUG][       Thread-610123][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:11:19,717 [DEBUG][       Thread-610123][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:11:19,717 [DEBUG][       Thread-610123][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:11:19,717 [DEBUG][       Thread-610123][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:11:19,717 [DEBUG][       Thread-610123][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:11:19,717 [DEBUG][       Thread-610123][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:11:19,717 [DEBUG][       Thread-610123][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:11:19,717 [DEBUG][       Thread-610123][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:11:19,717 [DEBUG][       Thread-610123][   transport.py][1871] : client lang: <none>
2025-07-01 16:11:19,717 [DEBUG][       Thread-610123][   transport.py][1871] : server lang: <none>
2025-07-01 16:11:19,718 [DEBUG][       Thread-610123][   transport.py][1871] : kex follows: False
2025-07-01 16:11:19,718 [DEBUG][       Thread-610123][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:11:19,718 [DEBUG][       Thread-610123][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:11:19,718 [DEBUG][       Thread-610123][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:11:19,718 [DEBUG][       Thread-610123][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:11:19,718 [DEBUG][       Thread-610123][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:11:19,718 [DEBUG][       Thread-610123][   transport.py][1871] : Compression: none
2025-07-01 16:11:19,718 [DEBUG][       Thread-610123][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:11:19,735 [DEBUG][       Thread-610123][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:11:19,735 [DEBUG][       Thread-610123][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:11:19,736 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:11:19,736 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:11:19,736 [DEBUG][       Thread-610123][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:11:19,737 [DEBUG][       Thread-610123][   transport.py][1871] : userauth is OK
2025-07-01 16:11:19,751 [ INFO][       Thread-610123][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:11:19,751 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:11:20,413 [DEBUG][       Thread-610123][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:11:20,414 [DEBUG][       Thread-610123][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:11:20,457 [DEBUG][       Thread-610123][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:11:20,457 [DEBUG][       Thread-610123][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:11:20,461 [DEBUG][       Thread-610123][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:11:20,473 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:11:20,473 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:11:20,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:11:20,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:11:20,483 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:11:20,485 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:11:20,485 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:11:20,486 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:11:20,486 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.590911 -999.00  +13.80  19.68     50   +3.80 1 2 1 1 1   887    0 10.75 30.43 ----- 44.3 19.7 2.3 49.6 15.5 -23.6 15.1 -23.4 15.2 -22.6 15.7 -22.6
2025-07-01 16:11:20,486 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:11:20,486 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:11:20,487 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.590911
2025-07-01 16:11:20,487 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:11:20,488 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:11:20,488 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:11:20,488 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:11:20,488 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:11:20,488 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:11:11', tmtdew=11.53, humidity=45.62, cloud=0.0, wind=33.11, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:10:54.710', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:11:20,489 [DEBUG][       Thread-610123][   transport.py][1871] : EOF in transport thread
2025-07-01 16:11:20,564 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:11:20,576 [DEBUG][       Thread-610126][   transport.py][1871] : starting thread (client mode): 0x8157160
2025-07-01 16:11:20,576 [DEBUG][       Thread-610126][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:11:20,591 [DEBUG][       Thread-610126][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:11:20,591 [ INFO][       Thread-610126][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:11:20,599 [DEBUG][       Thread-610126][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:11:20,599 [DEBUG][       Thread-610126][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:11:20,599 [DEBUG][       Thread-610126][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:11:20,599 [DEBUG][       Thread-610126][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:11:20,600 [DEBUG][       Thread-610126][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:11:20,600 [DEBUG][       Thread-610126][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:11:20,600 [DEBUG][       Thread-610126][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:11:20,600 [DEBUG][       Thread-610126][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:11:20,600 [DEBUG][       Thread-610126][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:11:20,600 [DEBUG][       Thread-610126][   transport.py][1871] : client lang: <none>
2025-07-01 16:11:20,600 [DEBUG][       Thread-610126][   transport.py][1871] : server lang: <none>
2025-07-01 16:11:20,600 [DEBUG][       Thread-610126][   transport.py][1871] : kex follows: False
2025-07-01 16:11:20,600 [DEBUG][       Thread-610126][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:11:20,600 [DEBUG][       Thread-610126][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:11:20,600 [DEBUG][       Thread-610126][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:11:20,600 [DEBUG][       Thread-610126][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:11:20,600 [DEBUG][       Thread-610126][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:11:20,600 [DEBUG][       Thread-610126][   transport.py][1871] : Compression: none
2025-07-01 16:11:20,600 [DEBUG][       Thread-610126][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:11:20,659 [DEBUG][       Thread-610126][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:11:20,660 [DEBUG][       Thread-610126][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:11:20,661 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:11:20,661 [DEBUG][       Thread-610126][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:11:20,662 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:11:20,718 [DEBUG][       Thread-610126][   transport.py][1871] : userauth is OK
2025-07-01 16:11:20,718 [DEBUG][       Thread-610126][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:11:20,718 [DEBUG][       Thread-610126][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:11:20,718 [DEBUG][       Thread-610126][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:11:20,718 [DEBUG][       Thread-610126][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:11:20,737 [ INFO][       Thread-610126][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:11:20,738 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:11:20,738 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:11:21,059 [DEBUG][Thread-610128 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:11:21,734 [DEBUG][       Thread-610126][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:11:21,734 [DEBUG][       Thread-610126][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:11:21,784 [DEBUG][       Thread-610126][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:11:21,784 [DEBUG][       Thread-610126][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:11:21,793 [DEBUG][       Thread-610126][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:11:21,802 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:11:21,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-07-01 16:11:21,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-07-01 16:11:21,826 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:11:21,826 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:11:21,826 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:11:21,840 [DEBUG][       Thread-610126][   transport.py][1871] : EOF in transport thread
2025-07-01 16:11:30,106 [DEBUG][Thread-610129 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:11:31,837 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:11:31,837 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:11:31,837 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:11:31,840 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:11:32,301 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 11, 11), 11.53, 45.62, 0.0, 33.11, 14.01, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:11:32,301 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:11:11
2025-07-01 16:11:32,384 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:11:32,389 [DEBUG][       Thread-610130][   transport.py][1871] : starting thread (client mode): 0x81e6050
2025-07-01 16:11:32,389 [DEBUG][       Thread-610130][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:11:32,409 [DEBUG][       Thread-610130][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:11:32,409 [ INFO][       Thread-610130][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:11:32,412 [DEBUG][       Thread-610130][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:11:32,412 [DEBUG][       Thread-610130][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:11:32,412 [DEBUG][       Thread-610130][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:11:32,412 [DEBUG][       Thread-610130][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:11:32,412 [DEBUG][       Thread-610130][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:11:32,412 [DEBUG][       Thread-610130][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:11:32,412 [DEBUG][       Thread-610130][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:11:32,412 [DEBUG][       Thread-610130][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:11:32,412 [DEBUG][       Thread-610130][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:11:32,412 [DEBUG][       Thread-610130][   transport.py][1871] : client lang: <none>
2025-07-01 16:11:32,412 [DEBUG][       Thread-610130][   transport.py][1871] : server lang: <none>
2025-07-01 16:11:32,412 [DEBUG][       Thread-610130][   transport.py][1871] : kex follows: False
2025-07-01 16:11:32,412 [DEBUG][       Thread-610130][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:11:32,412 [DEBUG][       Thread-610130][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:11:32,412 [DEBUG][       Thread-610130][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:11:32,413 [DEBUG][       Thread-610130][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:11:32,413 [DEBUG][       Thread-610130][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:11:32,413 [DEBUG][       Thread-610130][   transport.py][1871] : Compression: none
2025-07-01 16:11:32,413 [DEBUG][       Thread-610130][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:11:32,428 [DEBUG][       Thread-610130][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:11:32,429 [DEBUG][       Thread-610130][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:11:32,429 [DEBUG][       Thread-610130][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:11:32,430 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:11:32,430 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:11:32,431 [DEBUG][       Thread-610130][   transport.py][1871] : userauth is OK
2025-07-01 16:11:32,456 [ INFO][       Thread-610130][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:11:32,456 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:11:33,101 [DEBUG][       Thread-610130][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:11:33,101 [DEBUG][       Thread-610130][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:11:33,145 [DEBUG][       Thread-610130][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:11:33,145 [DEBUG][       Thread-610130][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:11:33,149 [DEBUG][       Thread-610130][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:11:33,160 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:11:33,160 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:11:33,162 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:11:33,164 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:11:33,171 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:11:33,173 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:11:33,173 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:11:33,174 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:11:33,174 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.590911 -999.00  +13.80  19.68     50   +3.80 1 2 1 1 1   887    0 10.75 30.43 ----- 44.3 19.7 2.3 49.6 15.5 -23.6 15.1 -23.4 15.2 -22.6 15.7 -22.6
2025-07-01 16:11:33,174 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:11:33,174 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:11:33,174 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.590911
2025-07-01 16:11:33,175 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:11:33,175 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:11:33,176 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:11:33,176 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:11:33,176 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:11:33,176 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:11:11', tmtdew=11.53, humidity=45.62, cloud=0.0, wind=33.11, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:10:54.710', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:11:33,176 [DEBUG][       Thread-610130][   transport.py][1871] : EOF in transport thread
2025-07-01 16:11:33,262 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:11:33,279 [DEBUG][       Thread-610133][   transport.py][1871] : starting thread (client mode): 0x81a5900
2025-07-01 16:11:33,280 [DEBUG][       Thread-610133][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:11:33,297 [DEBUG][       Thread-610133][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:11:33,297 [ INFO][       Thread-610133][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:11:33,304 [DEBUG][       Thread-610133][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:11:33,304 [DEBUG][       Thread-610133][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:11:33,304 [DEBUG][       Thread-610133][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:11:33,304 [DEBUG][       Thread-610133][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:11:33,304 [DEBUG][       Thread-610133][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:11:33,304 [DEBUG][       Thread-610133][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:11:33,304 [DEBUG][       Thread-610133][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:11:33,304 [DEBUG][       Thread-610133][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:11:33,304 [DEBUG][       Thread-610133][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:11:33,304 [DEBUG][       Thread-610133][   transport.py][1871] : client lang: <none>
2025-07-01 16:11:33,304 [DEBUG][       Thread-610133][   transport.py][1871] : server lang: <none>
2025-07-01 16:11:33,304 [DEBUG][       Thread-610133][   transport.py][1871] : kex follows: False
2025-07-01 16:11:33,304 [DEBUG][       Thread-610133][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:11:33,304 [DEBUG][       Thread-610133][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:11:33,304 [DEBUG][       Thread-610133][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:11:33,304 [DEBUG][       Thread-610133][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:11:33,304 [DEBUG][       Thread-610133][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:11:33,304 [DEBUG][       Thread-610133][   transport.py][1871] : Compression: none
2025-07-01 16:11:33,304 [DEBUG][       Thread-610133][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:11:33,359 [DEBUG][       Thread-610133][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:11:33,359 [DEBUG][       Thread-610133][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:11:33,360 [DEBUG][       Thread-610133][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:11:33,360 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:11:33,360 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:11:33,416 [DEBUG][       Thread-610133][   transport.py][1871] : userauth is OK
2025-07-01 16:11:33,416 [DEBUG][       Thread-610133][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:11:33,416 [DEBUG][       Thread-610133][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:11:33,416 [DEBUG][       Thread-610133][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:11:33,416 [DEBUG][       Thread-610133][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:11:33,431 [ INFO][       Thread-610133][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:11:33,431 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:11:33,431 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:11:34,449 [DEBUG][       Thread-610133][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:11:34,449 [DEBUG][       Thread-610133][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:11:34,499 [DEBUG][       Thread-610133][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:11:34,499 [DEBUG][       Thread-610133][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:11:34,508 [DEBUG][       Thread-610133][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:11:34,516 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:11:34,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')
2025-07-01 16:11:34,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-07-01 16:11:34,531 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:11:34,531 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:11:34,532 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:11:34,539 [DEBUG][       Thread-610133][   transport.py][1871] : EOF in transport thread
2025-07-01 16:11:38,175 [DEBUG][Thread-610135 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:11:39,126 [DEBUG][Thread-610136 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:11:44,542 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:11:44,542 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:11:44,542 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:11:44,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-07-01 16:11:45,038 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 11, 11), 11.53, 45.62, 0.0, 33.11, 14.01, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:11:45,038 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:11:11
2025-07-01 16:11:45,121 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:11:45,125 [DEBUG][       Thread-610137][   transport.py][1871] : starting thread (client mode): 0x81e7fa0
2025-07-01 16:11:45,125 [DEBUG][       Thread-610137][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:11:45,152 [DEBUG][       Thread-610137][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:11:45,152 [ INFO][       Thread-610137][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:11:45,155 [DEBUG][       Thread-610137][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:11:45,155 [DEBUG][       Thread-610137][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:11:45,155 [DEBUG][       Thread-610137][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:11:45,155 [DEBUG][       Thread-610137][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:11:45,155 [DEBUG][       Thread-610137][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:11:45,155 [DEBUG][       Thread-610137][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:11:45,155 [DEBUG][       Thread-610137][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:11:45,155 [DEBUG][       Thread-610137][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:11:45,155 [DEBUG][       Thread-610137][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:11:45,156 [DEBUG][       Thread-610137][   transport.py][1871] : client lang: <none>
2025-07-01 16:11:45,156 [DEBUG][       Thread-610137][   transport.py][1871] : server lang: <none>
2025-07-01 16:11:45,156 [DEBUG][       Thread-610137][   transport.py][1871] : kex follows: False
2025-07-01 16:11:45,156 [DEBUG][       Thread-610137][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:11:45,156 [DEBUG][       Thread-610137][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:11:45,156 [DEBUG][       Thread-610137][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:11:45,156 [DEBUG][       Thread-610137][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:11:45,156 [DEBUG][       Thread-610137][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:11:45,156 [DEBUG][       Thread-610137][   transport.py][1871] : Compression: none
2025-07-01 16:11:45,156 [DEBUG][       Thread-610137][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:11:45,176 [DEBUG][       Thread-610137][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:11:45,177 [DEBUG][       Thread-610137][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:11:45,177 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:11:45,178 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:11:45,178 [DEBUG][       Thread-610137][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:11:45,178 [DEBUG][       Thread-610137][   transport.py][1871] : userauth is OK
2025-07-01 16:11:45,203 [ INFO][       Thread-610137][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:11:45,204 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:11:45,850 [DEBUG][       Thread-610137][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:11:45,850 [DEBUG][       Thread-610137][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:11:45,893 [DEBUG][       Thread-610137][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:11:45,893 [DEBUG][       Thread-610137][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:11:45,896 [DEBUG][       Thread-610137][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:11:45,911 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:11:45,911 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:11:45,913 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:11:45,915 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:11:45,920 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:11:45,922 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:11:45,922 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:11:45,923 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:11:45,923 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.591258 -999.00  +13.70  30.30     50   +3.70 1 1 2 1 1   887    0 10.86 30.10 ----- 34.9 30.3 17.3 49.5 15.5 -23.6 15.1 -23.5 15.2 -22.9 15.6 -22.9
2025-07-01 16:11:45,923 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:11:45,923 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:11:45,923 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.591258
2025-07-01 16:11:45,924 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:11:45,924 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:11:45,925 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:11:45,925 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:11:45,925 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 16:11:45,925 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:11:11', tmtdew=11.53, humidity=45.62, cloud=0.0, wind=33.11, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:11:24.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:11:45,926 [DEBUG][       Thread-610137][   transport.py][1871] : EOF in transport thread
2025-07-01 16:11:46,008 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:11:46,018 [DEBUG][       Thread-610140][   transport.py][1871] : starting thread (client mode): 0x81da740
2025-07-01 16:11:46,018 [DEBUG][       Thread-610140][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:11:46,033 [DEBUG][       Thread-610140][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:11:46,033 [ INFO][       Thread-610140][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:11:46,041 [DEBUG][       Thread-610140][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:11:46,041 [DEBUG][       Thread-610140][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:11:46,041 [DEBUG][       Thread-610140][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:11:46,041 [DEBUG][       Thread-610140][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:11:46,041 [DEBUG][       Thread-610140][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:11:46,041 [DEBUG][       Thread-610140][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:11:46,041 [DEBUG][       Thread-610140][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:11:46,041 [DEBUG][       Thread-610140][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:11:46,041 [DEBUG][       Thread-610140][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:11:46,041 [DEBUG][       Thread-610140][   transport.py][1871] : client lang: <none>
2025-07-01 16:11:46,041 [DEBUG][       Thread-610140][   transport.py][1871] : server lang: <none>
2025-07-01 16:11:46,041 [DEBUG][       Thread-610140][   transport.py][1871] : kex follows: False
2025-07-01 16:11:46,041 [DEBUG][       Thread-610140][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:11:46,042 [DEBUG][       Thread-610140][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:11:46,042 [DEBUG][       Thread-610140][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:11:46,042 [DEBUG][       Thread-610140][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:11:46,042 [DEBUG][       Thread-610140][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:11:46,042 [DEBUG][       Thread-610140][   transport.py][1871] : Compression: none
2025-07-01 16:11:46,042 [DEBUG][       Thread-610140][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:11:46,099 [DEBUG][       Thread-610140][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:11:46,100 [DEBUG][       Thread-610140][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:11:46,100 [DEBUG][       Thread-610140][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:11:46,101 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:11:46,101 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:11:46,157 [DEBUG][       Thread-610140][   transport.py][1871] : userauth is OK
2025-07-01 16:11:46,158 [DEBUG][       Thread-610140][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:11:46,158 [DEBUG][       Thread-610140][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:11:46,158 [DEBUG][       Thread-610140][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:11:46,158 [DEBUG][       Thread-610140][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:11:46,177 [ INFO][       Thread-610140][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:11:46,177 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:11:46,178 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:11:47,238 [DEBUG][       Thread-610140][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:11:47,238 [DEBUG][       Thread-610140][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:11:47,288 [DEBUG][       Thread-610140][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:11:47,288 [DEBUG][       Thread-610140][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:11:47,297 [DEBUG][       Thread-610140][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:11:47,306 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:11:47,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-07-01 16:11:47,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') -> 00000000
2025-07-01 16:11:47,324 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:11:47,325 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:11:47,325 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:11:47,333 [DEBUG][       Thread-610140][   transport.py][1871] : EOF in transport thread
2025-07-01 16:11:48,151 [DEBUG][Thread-610142 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:11:57,188 [DEBUG][Thread-610143 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:11:57,335 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:11:57,336 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:11:57,336 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:11:57,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-07-01 16:11:57,824 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 11, 42), 11.53, 45.6, 0.0, 29.64, 13.97, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:11:57,824 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:11:42
2025-07-01 16:11:57,906 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:11:57,910 [DEBUG][       Thread-610144][   transport.py][1871] : starting thread (client mode): 0x81e4be0
2025-07-01 16:11:57,910 [DEBUG][       Thread-610144][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:11:57,931 [DEBUG][       Thread-610144][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:11:57,931 [ INFO][       Thread-610144][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:11:57,935 [DEBUG][       Thread-610144][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:11:57,935 [DEBUG][       Thread-610144][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:11:57,935 [DEBUG][       Thread-610144][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:11:57,935 [DEBUG][       Thread-610144][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:11:57,935 [DEBUG][       Thread-610144][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:11:57,935 [DEBUG][       Thread-610144][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:11:57,935 [DEBUG][       Thread-610144][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:11:57,935 [DEBUG][       Thread-610144][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:11:57,935 [DEBUG][       Thread-610144][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:11:57,935 [DEBUG][       Thread-610144][   transport.py][1871] : client lang: <none>
2025-07-01 16:11:57,935 [DEBUG][       Thread-610144][   transport.py][1871] : server lang: <none>
2025-07-01 16:11:57,935 [DEBUG][       Thread-610144][   transport.py][1871] : kex follows: False
2025-07-01 16:11:57,935 [DEBUG][       Thread-610144][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:11:57,935 [DEBUG][       Thread-610144][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:11:57,935 [DEBUG][       Thread-610144][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:11:57,935 [DEBUG][       Thread-610144][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:11:57,935 [DEBUG][       Thread-610144][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:11:57,935 [DEBUG][       Thread-610144][   transport.py][1871] : Compression: none
2025-07-01 16:11:57,935 [DEBUG][       Thread-610144][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:11:57,951 [DEBUG][       Thread-610144][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:11:57,951 [DEBUG][       Thread-610144][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:11:57,952 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:11:57,952 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:11:57,953 [DEBUG][       Thread-610144][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:11:57,953 [DEBUG][       Thread-610144][   transport.py][1871] : userauth is OK
2025-07-01 16:11:57,978 [ INFO][       Thread-610144][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:11:57,979 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:11:58,596 [DEBUG][       Thread-610144][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:11:58,597 [DEBUG][       Thread-610144][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:11:58,641 [DEBUG][       Thread-610144][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:11:58,641 [DEBUG][       Thread-610144][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:11:58,644 [DEBUG][       Thread-610144][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:11:58,659 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:11:58,659 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:11:58,661 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:11:58,663 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:11:58,669 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:11:58,671 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:11:58,671 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:11:58,672 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:11:58,672 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.591258 -999.00  +13.70  30.30     50   +3.70 1 1 2 1 1   887    0 10.86 30.10 ----- 34.9 30.3 17.3 49.5 15.5 -23.6 15.1 -23.5 15.2 -22.9 15.6 -22.9
2025-07-01 16:11:58,672 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:11:58,672 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:11:58,672 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.591258
2025-07-01 16:11:58,673 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:11:58,673 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:11:58,673 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:11:58,673 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:11:58,673 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 16:11:58,674 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:11:42', tmtdew=11.53, humidity=45.6, cloud=0.0, wind=29.64, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:11:24.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:11:58,674 [DEBUG][       Thread-610144][   transport.py][1871] : EOF in transport thread
2025-07-01 16:11:58,757 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:11:58,769 [DEBUG][       Thread-610147][   transport.py][1871] : starting thread (client mode): 0x81da740
2025-07-01 16:11:58,769 [DEBUG][       Thread-610147][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:11:58,783 [DEBUG][       Thread-610147][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:11:58,783 [ INFO][       Thread-610147][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:11:58,792 [DEBUG][       Thread-610147][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:11:58,792 [DEBUG][       Thread-610147][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:11:58,792 [DEBUG][       Thread-610147][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:11:58,792 [DEBUG][       Thread-610147][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:11:58,792 [DEBUG][       Thread-610147][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:11:58,792 [DEBUG][       Thread-610147][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:11:58,792 [DEBUG][       Thread-610147][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:11:58,792 [DEBUG][       Thread-610147][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:11:58,792 [DEBUG][       Thread-610147][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:11:58,792 [DEBUG][       Thread-610147][   transport.py][1871] : client lang: <none>
2025-07-01 16:11:58,792 [DEBUG][       Thread-610147][   transport.py][1871] : server lang: <none>
2025-07-01 16:11:58,792 [DEBUG][       Thread-610147][   transport.py][1871] : kex follows: False
2025-07-01 16:11:58,792 [DEBUG][       Thread-610147][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:11:58,792 [DEBUG][       Thread-610147][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:11:58,792 [DEBUG][       Thread-610147][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:11:58,792 [DEBUG][       Thread-610147][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:11:58,792 [DEBUG][       Thread-610147][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:11:58,792 [DEBUG][       Thread-610147][   transport.py][1871] : Compression: none
2025-07-01 16:11:58,792 [DEBUG][       Thread-610147][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:11:58,855 [DEBUG][       Thread-610147][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:11:58,856 [DEBUG][       Thread-610147][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:11:58,857 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:11:58,857 [DEBUG][       Thread-610147][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:11:58,858 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:11:58,915 [DEBUG][       Thread-610147][   transport.py][1871] : userauth is OK
2025-07-01 16:11:58,915 [DEBUG][       Thread-610147][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:11:58,915 [DEBUG][       Thread-610147][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:11:58,915 [DEBUG][       Thread-610147][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:11:58,915 [DEBUG][       Thread-610147][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:11:58,934 [ INFO][       Thread-610147][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:11:58,935 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:11:58,935 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:11:59,976 [DEBUG][       Thread-610147][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:11:59,976 [DEBUG][       Thread-610147][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:12:00,035 [DEBUG][       Thread-610147][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:12:00,036 [DEBUG][       Thread-610147][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:12:00,047 [DEBUG][       Thread-610147][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:12:00,058 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:12:00,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-07-01 16:12:00,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-07-01 16:12:00,082 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:12:00,082 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:12:00,083 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:12:00,091 [DEBUG][       Thread-610147][   transport.py][1871] : EOF in transport thread
2025-07-01 16:12:06,208 [DEBUG][Thread-610149 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:12:10,093 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:12:10,094 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:12:10,094 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:12:10,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-07-01 16:12:10,566 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 11, 42), 11.53, 45.6, 0.0, 29.64, 13.97, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:12:10,566 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:11:42
2025-07-01 16:12:10,648 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:12:10,652 [DEBUG][       Thread-610150][   transport.py][1871] : starting thread (client mode): 0x818f6a0
2025-07-01 16:12:10,652 [DEBUG][       Thread-610150][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:12:10,673 [DEBUG][       Thread-610150][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:12:10,673 [ INFO][       Thread-610150][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:12:10,676 [DEBUG][       Thread-610150][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:12:10,676 [DEBUG][       Thread-610150][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:12:10,676 [DEBUG][       Thread-610150][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:12:10,676 [DEBUG][       Thread-610150][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:12:10,676 [DEBUG][       Thread-610150][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:12:10,676 [DEBUG][       Thread-610150][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:12:10,676 [DEBUG][       Thread-610150][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:12:10,676 [DEBUG][       Thread-610150][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:12:10,676 [DEBUG][       Thread-610150][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:12:10,676 [DEBUG][       Thread-610150][   transport.py][1871] : client lang: <none>
2025-07-01 16:12:10,676 [DEBUG][       Thread-610150][   transport.py][1871] : server lang: <none>
2025-07-01 16:12:10,676 [DEBUG][       Thread-610150][   transport.py][1871] : kex follows: False
2025-07-01 16:12:10,677 [DEBUG][       Thread-610150][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:12:10,677 [DEBUG][       Thread-610150][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:12:10,677 [DEBUG][       Thread-610150][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:12:10,677 [DEBUG][       Thread-610150][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:12:10,677 [DEBUG][       Thread-610150][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:12:10,677 [DEBUG][       Thread-610150][   transport.py][1871] : Compression: none
2025-07-01 16:12:10,677 [DEBUG][       Thread-610150][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:12:10,693 [DEBUG][       Thread-610150][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:12:10,693 [DEBUG][       Thread-610150][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:12:10,694 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:12:10,694 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:12:10,695 [DEBUG][       Thread-610150][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:12:10,695 [DEBUG][       Thread-610150][   transport.py][1871] : userauth is OK
2025-07-01 16:12:10,719 [ INFO][       Thread-610150][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:12:10,720 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:12:11,353 [DEBUG][       Thread-610150][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:12:11,353 [DEBUG][       Thread-610150][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:12:11,396 [DEBUG][       Thread-610150][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:12:11,396 [DEBUG][       Thread-610150][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:12:11,399 [DEBUG][       Thread-610150][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:12:11,412 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:12:11,412 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:12:11,413 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:12:11,414 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:12:11,417 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:12:11,418 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:12:11,418 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:12:11,418 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:12:11,418 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.591258 -999.00  +13.70  30.30     50   +3.70 1 1 2 1 1   887    0 10.86 30.10 ----- 34.9 30.3 17.3 49.5 15.5 -23.6 15.1 -23.5 15.2 -22.9 15.6 -22.9
2025-07-01 16:12:11,418 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:12:11,418 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:12:11,418 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.591258
2025-07-01 16:12:11,418 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:12:11,418 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:12:11,418 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:12:11,418 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:12:11,418 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 16:12:11,418 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:11:42', tmtdew=11.53, humidity=45.6, cloud=0.0, wind=29.64, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:11:24.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:12:11,419 [DEBUG][       Thread-610150][   transport.py][1871] : EOF in transport thread
2025-07-01 16:12:11,493 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:12:11,503 [DEBUG][       Thread-610153][   transport.py][1871] : starting thread (client mode): 0x81e64a0
2025-07-01 16:12:11,503 [DEBUG][       Thread-610153][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:12:11,521 [DEBUG][       Thread-610153][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:12:11,521 [ INFO][       Thread-610153][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:12:11,530 [DEBUG][       Thread-610153][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:12:11,530 [DEBUG][       Thread-610153][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:12:11,530 [DEBUG][       Thread-610153][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:12:11,530 [DEBUG][       Thread-610153][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:12:11,530 [DEBUG][       Thread-610153][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:12:11,530 [DEBUG][       Thread-610153][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:12:11,530 [DEBUG][       Thread-610153][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:12:11,530 [DEBUG][       Thread-610153][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:12:11,530 [DEBUG][       Thread-610153][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:12:11,530 [DEBUG][       Thread-610153][   transport.py][1871] : client lang: <none>
2025-07-01 16:12:11,530 [DEBUG][       Thread-610153][   transport.py][1871] : server lang: <none>
2025-07-01 16:12:11,530 [DEBUG][       Thread-610153][   transport.py][1871] : kex follows: False
2025-07-01 16:12:11,530 [DEBUG][       Thread-610153][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:12:11,531 [DEBUG][       Thread-610153][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:12:11,531 [DEBUG][       Thread-610153][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:12:11,531 [DEBUG][       Thread-610153][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:12:11,531 [DEBUG][       Thread-610153][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:12:11,531 [DEBUG][       Thread-610153][   transport.py][1871] : Compression: none
2025-07-01 16:12:11,531 [DEBUG][       Thread-610153][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:12:11,585 [DEBUG][       Thread-610153][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:12:11,586 [DEBUG][       Thread-610153][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:12:11,586 [DEBUG][       Thread-610153][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:12:11,586 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:12:11,586 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:12:11,643 [DEBUG][       Thread-610153][   transport.py][1871] : userauth is OK
2025-07-01 16:12:11,643 [DEBUG][       Thread-610153][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:12:11,643 [DEBUG][       Thread-610153][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:12:11,643 [DEBUG][       Thread-610153][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:12:11,643 [DEBUG][       Thread-610153][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:12:11,658 [ INFO][       Thread-610153][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:12:11,658 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:12:11,658 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:12:12,668 [DEBUG][       Thread-610153][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:12:12,668 [DEBUG][       Thread-610153][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:12:12,719 [DEBUG][       Thread-610153][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:12:12,719 [DEBUG][       Thread-610153][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:12:12,728 [DEBUG][       Thread-610153][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:12:12,736 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:12:12,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-07-01 16:12: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-07-01 16:12:12,752 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:12:12,752 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:12:12,752 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:12:12,760 [DEBUG][       Thread-610153][   transport.py][1871] : EOF in transport thread
2025-07-01 16:12:15,239 [DEBUG][Thread-610155 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:12:22,762 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:12:22,762 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:12:22,762 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:12: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-07-01 16:12:23,250 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 12, 14), 11.47, 46.02, 0.0, 31.7, 13.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:12:23,250 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:12:14
2025-07-01 16:12:23,336 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:12:23,340 [DEBUG][       Thread-610156][   transport.py][1871] : starting thread (client mode): 0x81736d0
2025-07-01 16:12:23,340 [DEBUG][       Thread-610156][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:12:23,360 [DEBUG][       Thread-610156][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:12:23,360 [ INFO][       Thread-610156][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:12:23,364 [DEBUG][       Thread-610156][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:12:23,364 [DEBUG][       Thread-610156][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:12:23,364 [DEBUG][       Thread-610156][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:12:23,364 [DEBUG][       Thread-610156][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:12:23,364 [DEBUG][       Thread-610156][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:12:23,364 [DEBUG][       Thread-610156][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:12:23,364 [DEBUG][       Thread-610156][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:12:23,364 [DEBUG][       Thread-610156][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:12:23,364 [DEBUG][       Thread-610156][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:12:23,364 [DEBUG][       Thread-610156][   transport.py][1871] : client lang: <none>
2025-07-01 16:12:23,364 [DEBUG][       Thread-610156][   transport.py][1871] : server lang: <none>
2025-07-01 16:12:23,364 [DEBUG][       Thread-610156][   transport.py][1871] : kex follows: False
2025-07-01 16:12:23,364 [DEBUG][       Thread-610156][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:12:23,364 [DEBUG][       Thread-610156][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:12:23,364 [DEBUG][       Thread-610156][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:12:23,364 [DEBUG][       Thread-610156][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:12:23,364 [DEBUG][       Thread-610156][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:12:23,364 [DEBUG][       Thread-610156][   transport.py][1871] : Compression: none
2025-07-01 16:12:23,364 [DEBUG][       Thread-610156][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:12:23,380 [DEBUG][       Thread-610156][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:12:23,380 [DEBUG][       Thread-610156][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:12:23,381 [DEBUG][       Thread-610156][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:12:23,381 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:12:23,381 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:12:23,382 [DEBUG][       Thread-610156][   transport.py][1871] : userauth is OK
2025-07-01 16:12:23,406 [ INFO][       Thread-610156][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:12:23,407 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:12:24,064 [DEBUG][       Thread-610156][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:12:24,064 [DEBUG][       Thread-610156][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:12:24,105 [DEBUG][       Thread-610156][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:12:24,105 [DEBUG][       Thread-610156][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:12:24,109 [DEBUG][       Thread-610156][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:12:24,122 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:12:24,123 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:12:24,125 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:12:24,127 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:12:24,132 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:12:24,134 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:12:24,134 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:12:24,135 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:12:24,135 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.591606 -999.00  +13.70  30.00     51   +3.90 1 2 2 1 1   887    0 10.98 30.22 ----- 29.0 30.0 36.6 41.1 15.5 -23.5 15.1 -23.3 15.2 -22.3 15.6 -22.4
2025-07-01 16:12:24,135 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:12:24,135 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:12:24,135 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.591606
2025-07-01 16:12:24,136 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:12:24,136 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:12:24,137 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:12:24,137 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:12:24,137 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:12:24,137 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:12:14', tmtdew=11.47, humidity=46.02, cloud=0.0, wind=31.7, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:11:54.758', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:12:24,137 [DEBUG][       Thread-610156][   transport.py][1871] : EOF in transport thread
2025-07-01 16:12:24,220 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:12:24,233 [DEBUG][       Thread-610159][   transport.py][1871] : starting thread (client mode): 0x81e5420
2025-07-01 16:12:24,233 [DEBUG][       Thread-610159][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:12:24,254 [DEBUG][       Thread-610159][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:12:24,254 [ INFO][       Thread-610159][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:12:24,260 [DEBUG][Thread-610161 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:12:24,270 [DEBUG][       Thread-610159][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:12:24,270 [DEBUG][       Thread-610159][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:12:24,270 [DEBUG][       Thread-610159][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:12:24,270 [DEBUG][       Thread-610159][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:12:24,270 [DEBUG][       Thread-610159][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:12:24,270 [DEBUG][       Thread-610159][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:12:24,270 [DEBUG][       Thread-610159][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:12:24,270 [DEBUG][       Thread-610159][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:12:24,270 [DEBUG][       Thread-610159][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:12:24,270 [DEBUG][       Thread-610159][   transport.py][1871] : client lang: <none>
2025-07-01 16:12:24,271 [DEBUG][       Thread-610159][   transport.py][1871] : server lang: <none>
2025-07-01 16:12:24,271 [DEBUG][       Thread-610159][   transport.py][1871] : kex follows: False
2025-07-01 16:12:24,271 [DEBUG][       Thread-610159][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:12:24,271 [DEBUG][       Thread-610159][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:12:24,271 [DEBUG][       Thread-610159][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:12:24,271 [DEBUG][       Thread-610159][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:12:24,271 [DEBUG][       Thread-610159][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:12:24,271 [DEBUG][       Thread-610159][   transport.py][1871] : Compression: none
2025-07-01 16:12:24,271 [DEBUG][       Thread-610159][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:12:24,328 [DEBUG][       Thread-610159][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:12:24,328 [DEBUG][       Thread-610159][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:12:24,329 [DEBUG][       Thread-610159][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:12:24,329 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:12:24,329 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:12:24,388 [DEBUG][       Thread-610159][   transport.py][1871] : userauth is OK
2025-07-01 16:12:24,388 [DEBUG][       Thread-610159][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:12:24,388 [DEBUG][       Thread-610159][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:12:24,388 [DEBUG][       Thread-610159][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:12:24,388 [DEBUG][       Thread-610159][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:12:24,413 [ INFO][       Thread-610159][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:12:24,414 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:12:24,414 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:12:25,445 [DEBUG][       Thread-610159][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:12:25,446 [DEBUG][       Thread-610159][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:12:25,496 [DEBUG][       Thread-610159][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:12:25,496 [DEBUG][       Thread-610159][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:12:25,506 [DEBUG][       Thread-610159][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:12:25,516 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:12:25,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')
2025-07-01 16:12:25,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') -> 00000000
2025-07-01 16:12:25,536 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:12:25,536 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:12:25,537 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:12:25,549 [DEBUG][       Thread-610159][   transport.py][1871] : EOF in transport thread
2025-07-01 16:12:33,303 [DEBUG][Thread-610162 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:12:35,547 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:12:35,548 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:12:35,548 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:12:35,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-07-01 16:12:36,022 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 12, 14), 11.47, 46.02, 0.0, 31.7, 13.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:12:36,022 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:12:14
2025-07-01 16:12:36,107 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:12:36,112 [DEBUG][       Thread-610163][   transport.py][1871] : starting thread (client mode): 0x818f790
2025-07-01 16:12:36,112 [DEBUG][       Thread-610163][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:12:36,132 [DEBUG][       Thread-610163][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:12:36,132 [ INFO][       Thread-610163][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:12:36,135 [DEBUG][       Thread-610163][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:12:36,135 [DEBUG][       Thread-610163][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:12:36,135 [DEBUG][       Thread-610163][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:12:36,135 [DEBUG][       Thread-610163][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:12:36,135 [DEBUG][       Thread-610163][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:12:36,135 [DEBUG][       Thread-610163][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:12:36,135 [DEBUG][       Thread-610163][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:12:36,135 [DEBUG][       Thread-610163][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:12:36,135 [DEBUG][       Thread-610163][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:12:36,135 [DEBUG][       Thread-610163][   transport.py][1871] : client lang: <none>
2025-07-01 16:12:36,135 [DEBUG][       Thread-610163][   transport.py][1871] : server lang: <none>
2025-07-01 16:12:36,135 [DEBUG][       Thread-610163][   transport.py][1871] : kex follows: False
2025-07-01 16:12:36,135 [DEBUG][       Thread-610163][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:12:36,136 [DEBUG][       Thread-610163][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:12:36,136 [DEBUG][       Thread-610163][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:12:36,136 [DEBUG][       Thread-610163][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:12:36,136 [DEBUG][       Thread-610163][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:12:36,136 [DEBUG][       Thread-610163][   transport.py][1871] : Compression: none
2025-07-01 16:12:36,136 [DEBUG][       Thread-610163][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:12:36,144 [DEBUG][       Thread-610163][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:12:36,144 [DEBUG][       Thread-610163][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:12:36,145 [DEBUG][       Thread-610163][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:12:36,145 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:12:36,145 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:12:36,146 [DEBUG][       Thread-610163][   transport.py][1871] : userauth is OK
2025-07-01 16:12:36,159 [ INFO][       Thread-610163][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:12:36,160 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:12:36,813 [DEBUG][       Thread-610163][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:12:36,813 [DEBUG][       Thread-610163][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:12:36,857 [DEBUG][       Thread-610163][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:12:36,857 [DEBUG][       Thread-610163][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:12:36,860 [DEBUG][       Thread-610163][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:12:36,874 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:12:36,874 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:12:36,876 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:12:36,878 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:12:36,885 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:12:36,887 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:12:36,888 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:12:36,888 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:12:36,889 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.591606 -999.00  +13.70  30.00     51   +3.90 1 2 2 1 1   887    0 10.98 30.22 ----- 29.0 30.0 36.6 41.1 15.5 -23.5 15.1 -23.3 15.2 -22.3 15.6 -22.4
2025-07-01 16:12:36,889 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:12:36,889 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:12:36,889 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.591606
2025-07-01 16:12:36,889 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:12:36,890 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:12:36,890 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:12:36,890 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:12:36,890 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:12:36,890 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:12:14', tmtdew=11.47, humidity=46.02, cloud=0.0, wind=31.7, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:11:54.758', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:12:36,891 [DEBUG][       Thread-610163][   transport.py][1871] : EOF in transport thread
2025-07-01 16:12:36,978 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:12:36,987 [DEBUG][       Thread-610166][   transport.py][1871] : starting thread (client mode): 0x8157a00
2025-07-01 16:12:36,987 [DEBUG][       Thread-610166][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:12:37,003 [DEBUG][       Thread-610166][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:12:37,003 [ INFO][       Thread-610166][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:12:37,011 [DEBUG][       Thread-610166][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:12:37,011 [DEBUG][       Thread-610166][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:12:37,011 [DEBUG][       Thread-610166][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:12:37,011 [DEBUG][       Thread-610166][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:12:37,011 [DEBUG][       Thread-610166][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:12:37,011 [DEBUG][       Thread-610166][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:12:37,011 [DEBUG][       Thread-610166][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:12:37,011 [DEBUG][       Thread-610166][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:12:37,011 [DEBUG][       Thread-610166][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:12:37,011 [DEBUG][       Thread-610166][   transport.py][1871] : client lang: <none>
2025-07-01 16:12:37,011 [DEBUG][       Thread-610166][   transport.py][1871] : server lang: <none>
2025-07-01 16:12:37,011 [DEBUG][       Thread-610166][   transport.py][1871] : kex follows: False
2025-07-01 16:12:37,011 [DEBUG][       Thread-610166][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:12:37,011 [DEBUG][       Thread-610166][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:12:37,011 [DEBUG][       Thread-610166][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:12:37,011 [DEBUG][       Thread-610166][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:12:37,011 [DEBUG][       Thread-610166][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:12:37,012 [DEBUG][       Thread-610166][   transport.py][1871] : Compression: none
2025-07-01 16:12:37,012 [DEBUG][       Thread-610166][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:12:37,069 [DEBUG][       Thread-610166][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:12:37,070 [DEBUG][       Thread-610166][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:12:37,070 [DEBUG][       Thread-610166][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:12:37,071 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:12:37,071 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:12:37,124 [DEBUG][       Thread-610166][   transport.py][1871] : userauth is OK
2025-07-01 16:12:37,125 [DEBUG][       Thread-610166][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:12:37,125 [DEBUG][       Thread-610166][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:12:37,125 [DEBUG][       Thread-610166][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:12:37,125 [DEBUG][       Thread-610166][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:12:37,144 [ INFO][       Thread-610166][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:12:37,144 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:12:37,145 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:12:38,173 [DEBUG][       Thread-610166][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:12:38,174 [DEBUG][       Thread-610166][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:12:38,205 [DEBUG][Thread-610168 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:12:38,223 [DEBUG][       Thread-610166][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:12:38,223 [DEBUG][       Thread-610166][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:12:38,232 [DEBUG][       Thread-610166][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:12:38,243 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:12:38,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-07-01 16:12:38,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') -> 00000000
2025-07-01 16:12:38,266 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:12:38,267 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:12:38,267 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:12:38,278 [DEBUG][       Thread-610166][   transport.py][1871] : EOF in transport thread
2025-07-01 16:12:42,325 [DEBUG][Thread-610169 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:12:48,277 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:12:48,277 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:12:48,277 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:12:48,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-07-01 16:12:48,755 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 12, 14), 11.47, 46.02, 0.0, 31.7, 13.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:12:48,755 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:12:14
2025-07-01 16:12:48,841 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:12:48,845 [DEBUG][       Thread-610170][   transport.py][1871] : starting thread (client mode): 0x81a43d0
2025-07-01 16:12:48,845 [DEBUG][       Thread-610170][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:12:48,864 [DEBUG][       Thread-610170][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:12:48,864 [ INFO][       Thread-610170][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:12:48,867 [DEBUG][       Thread-610170][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:12:48,867 [DEBUG][       Thread-610170][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:12:48,867 [DEBUG][       Thread-610170][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:12:48,867 [DEBUG][       Thread-610170][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:12:48,867 [DEBUG][       Thread-610170][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:12:48,867 [DEBUG][       Thread-610170][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:12:48,867 [DEBUG][       Thread-610170][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:12:48,867 [DEBUG][       Thread-610170][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:12:48,867 [DEBUG][       Thread-610170][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:12:48,867 [DEBUG][       Thread-610170][   transport.py][1871] : client lang: <none>
2025-07-01 16:12:48,867 [DEBUG][       Thread-610170][   transport.py][1871] : server lang: <none>
2025-07-01 16:12:48,867 [DEBUG][       Thread-610170][   transport.py][1871] : kex follows: False
2025-07-01 16:12:48,867 [DEBUG][       Thread-610170][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:12:48,867 [DEBUG][       Thread-610170][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:12:48,867 [DEBUG][       Thread-610170][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:12:48,867 [DEBUG][       Thread-610170][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:12:48,867 [DEBUG][       Thread-610170][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:12:48,867 [DEBUG][       Thread-610170][   transport.py][1871] : Compression: none
2025-07-01 16:12:48,867 [DEBUG][       Thread-610170][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:12:48,875 [DEBUG][       Thread-610170][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:12:48,875 [DEBUG][       Thread-610170][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:12:48,876 [DEBUG][       Thread-610170][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:12:48,876 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:12:48,876 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:12:48,877 [DEBUG][       Thread-610170][   transport.py][1871] : userauth is OK
2025-07-01 16:12:48,890 [ INFO][       Thread-610170][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:12:48,891 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:12:49,476 [DEBUG][       Thread-610170][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:12:49,477 [DEBUG][       Thread-610170][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:12:49,521 [DEBUG][       Thread-610170][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:12:49,521 [DEBUG][       Thread-610170][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:12:49,524 [DEBUG][       Thread-610170][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:12:49,538 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:12:49,538 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:12:49,540 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:12:49,542 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:12:49,547 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:12:49,549 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:12:49,549 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:12:49,550 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:12:49,550 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.591953 -999.00  +13.70  37.59     50   +3.70 1 1 2 1 1   887    0 10.71 28.06 ----- 37.6 37.6 32.3 43.6 15.4 -23.6 15.0 -23.7 15.2 -22.8 15.6 -22.8
2025-07-01 16:12:49,550 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:12:49,550 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:12:49,550 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.591953
2025-07-01 16:12:49,550 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:12:49,551 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:12:49,551 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:12:49,551 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:12:49,551 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 16:12:49,551 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:12:14', tmtdew=11.47, humidity=46.02, cloud=0.0, wind=31.7, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:12:24.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:12:49,552 [DEBUG][       Thread-610170][   transport.py][1871] : EOF in transport thread
2025-07-01 16:12:49,639 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:12:49,649 [DEBUG][       Thread-610173][   transport.py][1871] : starting thread (client mode): 0x81e7fa0
2025-07-01 16:12:49,649 [DEBUG][       Thread-610173][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:12:49,665 [DEBUG][       Thread-610173][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:12:49,665 [ INFO][       Thread-610173][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:12:49,672 [DEBUG][       Thread-610173][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:12:49,672 [DEBUG][       Thread-610173][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:12:49,672 [DEBUG][       Thread-610173][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:12:49,672 [DEBUG][       Thread-610173][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:12:49,672 [DEBUG][       Thread-610173][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:12:49,672 [DEBUG][       Thread-610173][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:12:49,672 [DEBUG][       Thread-610173][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:12:49,672 [DEBUG][       Thread-610173][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:12:49,672 [DEBUG][       Thread-610173][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:12:49,672 [DEBUG][       Thread-610173][   transport.py][1871] : client lang: <none>
2025-07-01 16:12:49,672 [DEBUG][       Thread-610173][   transport.py][1871] : server lang: <none>
2025-07-01 16:12:49,672 [DEBUG][       Thread-610173][   transport.py][1871] : kex follows: False
2025-07-01 16:12:49,672 [DEBUG][       Thread-610173][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:12:49,672 [DEBUG][       Thread-610173][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:12:49,672 [DEBUG][       Thread-610173][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:12:49,672 [DEBUG][       Thread-610173][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:12:49,672 [DEBUG][       Thread-610173][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:12:49,672 [DEBUG][       Thread-610173][   transport.py][1871] : Compression: none
2025-07-01 16:12:49,672 [DEBUG][       Thread-610173][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:12:49,732 [DEBUG][       Thread-610173][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:12:49,732 [DEBUG][       Thread-610173][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:12:49,733 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:12:49,733 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:12:49,733 [DEBUG][       Thread-610173][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:12:49,789 [DEBUG][       Thread-610173][   transport.py][1871] : userauth is OK
2025-07-01 16:12:49,789 [DEBUG][       Thread-610173][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:12:49,789 [DEBUG][       Thread-610173][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:12:49,789 [DEBUG][       Thread-610173][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:12:49,789 [DEBUG][       Thread-610173][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:12:49,803 [ INFO][       Thread-610173][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:12:49,803 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:12:49,804 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:12:50,815 [DEBUG][       Thread-610173][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:12:50,815 [DEBUG][       Thread-610173][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:12:50,863 [DEBUG][       Thread-610173][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:12:50,863 [DEBUG][       Thread-610173][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:12:50,872 [DEBUG][       Thread-610173][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:12:50,880 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:12: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-07-01 16:12:50,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-07-01 16:12:50,899 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:12:50,899 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:12:50,899 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:12:50,907 [DEBUG][       Thread-610173][   transport.py][1871] : EOF in transport thread
2025-07-01 16:12:51,342 [DEBUG][Thread-610175 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:13:00,379 [DEBUG][Thread-610176 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:13:00,904 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:13:00,905 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:13:00,905 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:13:00,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-07-01 16:13:01,382 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 12, 46), 11.49, 45.96, 0.0, 27.54, 13.96, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:13:01,382 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:12:46
2025-07-01 16:13:01,468 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:13:01,472 [DEBUG][       Thread-610177][   transport.py][1871] : starting thread (client mode): 0x81a5d50
2025-07-01 16:13:01,472 [DEBUG][       Thread-610177][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:13:01,493 [DEBUG][       Thread-610177][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:13:01,493 [ INFO][       Thread-610177][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:13:01,496 [DEBUG][       Thread-610177][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:13:01,497 [DEBUG][       Thread-610177][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:13:01,497 [DEBUG][       Thread-610177][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:13:01,497 [DEBUG][       Thread-610177][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:13:01,497 [DEBUG][       Thread-610177][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:13:01,497 [DEBUG][       Thread-610177][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:13:01,497 [DEBUG][       Thread-610177][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:13:01,497 [DEBUG][       Thread-610177][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:13:01,497 [DEBUG][       Thread-610177][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:13:01,497 [DEBUG][       Thread-610177][   transport.py][1871] : client lang: <none>
2025-07-01 16:13:01,497 [DEBUG][       Thread-610177][   transport.py][1871] : server lang: <none>
2025-07-01 16:13:01,497 [DEBUG][       Thread-610177][   transport.py][1871] : kex follows: False
2025-07-01 16:13:01,497 [DEBUG][       Thread-610177][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:13:01,497 [DEBUG][       Thread-610177][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:13:01,497 [DEBUG][       Thread-610177][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:13:01,497 [DEBUG][       Thread-610177][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:13:01,497 [DEBUG][       Thread-610177][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:13:01,497 [DEBUG][       Thread-610177][   transport.py][1871] : Compression: none
2025-07-01 16:13:01,497 [DEBUG][       Thread-610177][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:13:01,512 [DEBUG][       Thread-610177][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:13:01,513 [DEBUG][       Thread-610177][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:13:01,513 [DEBUG][       Thread-610177][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:13:01,513 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:13:01,514 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:13:01,515 [DEBUG][       Thread-610177][   transport.py][1871] : userauth is OK
2025-07-01 16:13:01,540 [ INFO][       Thread-610177][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:13:01,540 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:13:02,198 [DEBUG][       Thread-610177][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:13:02,198 [DEBUG][       Thread-610177][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:13:02,241 [DEBUG][       Thread-610177][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:13:02,241 [DEBUG][       Thread-610177][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:13:02,244 [DEBUG][       Thread-610177][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:13:02,257 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:13:02,257 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:13:02,259 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:13:02,260 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:13:02,265 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:13:02,267 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:13:02,267 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:13:02,267 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:13:02,267 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.591953 -999.00  +13.70  37.59     50   +3.70 1 1 2 1 1   887    0 10.71 28.06 ----- 37.6 37.6 32.3 43.6 15.4 -23.6 15.0 -23.7 15.2 -22.8 15.6 -22.8
2025-07-01 16:13:02,267 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:13:02,268 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:13:02,268 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.591953
2025-07-01 16:13:02,268 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:13:02,269 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:13:02,269 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:13:02,269 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:13:02,269 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 16:13:02,269 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:12:46', tmtdew=11.49, humidity=45.96, cloud=0.0, wind=27.54, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:12:24.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:13:02,270 [DEBUG][       Thread-610177][   transport.py][1871] : EOF in transport thread
2025-07-01 16:13:02,348 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:13:02,358 [DEBUG][       Thread-610180][   transport.py][1871] : starting thread (client mode): 0x81712d0
2025-07-01 16:13:02,358 [DEBUG][       Thread-610180][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:13:02,373 [DEBUG][       Thread-610180][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:13:02,373 [ INFO][       Thread-610180][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:13:02,380 [DEBUG][       Thread-610180][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:13:02,381 [DEBUG][       Thread-610180][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:13:02,381 [DEBUG][       Thread-610180][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:13:02,381 [DEBUG][       Thread-610180][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:13:02,381 [DEBUG][       Thread-610180][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:13:02,381 [DEBUG][       Thread-610180][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:13:02,381 [DEBUG][       Thread-610180][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:13:02,381 [DEBUG][       Thread-610180][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:13:02,381 [DEBUG][       Thread-610180][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:13:02,381 [DEBUG][       Thread-610180][   transport.py][1871] : client lang: <none>
2025-07-01 16:13:02,381 [DEBUG][       Thread-610180][   transport.py][1871] : server lang: <none>
2025-07-01 16:13:02,381 [DEBUG][       Thread-610180][   transport.py][1871] : kex follows: False
2025-07-01 16:13:02,381 [DEBUG][       Thread-610180][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:13:02,381 [DEBUG][       Thread-610180][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:13:02,381 [DEBUG][       Thread-610180][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:13:02,381 [DEBUG][       Thread-610180][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:13:02,381 [DEBUG][       Thread-610180][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:13:02,381 [DEBUG][       Thread-610180][   transport.py][1871] : Compression: none
2025-07-01 16:13:02,381 [DEBUG][       Thread-610180][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:13:02,438 [DEBUG][       Thread-610180][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:13:02,439 [DEBUG][       Thread-610180][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:13:02,439 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:13:02,440 [DEBUG][       Thread-610180][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:13:02,440 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:13:02,494 [DEBUG][       Thread-610180][   transport.py][1871] : userauth is OK
2025-07-01 16:13:02,494 [DEBUG][       Thread-610180][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:13:02,495 [DEBUG][       Thread-610180][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:13:02,495 [DEBUG][       Thread-610180][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:13:02,495 [DEBUG][       Thread-610180][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:13:02,514 [ INFO][       Thread-610180][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:13:02,514 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:13:02,515 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:13:03,536 [DEBUG][       Thread-610180][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:13:03,536 [DEBUG][       Thread-610180][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:13:03,584 [DEBUG][       Thread-610180][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:13:03,584 [DEBUG][       Thread-610180][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:13:03,593 [DEBUG][       Thread-610180][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:13:03,602 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:13:03,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')
2025-07-01 16:13:03,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-07-01 16:13:03,620 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:13:03,620 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:13:03,621 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:13:03,628 [DEBUG][       Thread-610180][   transport.py][1871] : EOF in transport thread
2025-07-01 16:13:09,400 [DEBUG][Thread-610182 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:13:13,631 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:13:13,631 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:13:13,631 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:13:13,634 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:13:14,099 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 12, 46), 11.49, 45.96, 0.0, 27.54, 13.96, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:13:14,099 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:12:46
2025-07-01 16:13:14,185 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:13:14,189 [DEBUG][       Thread-610183][   transport.py][1871] : starting thread (client mode): 0x81a6680
2025-07-01 16:13:14,189 [DEBUG][       Thread-610183][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:13:14,211 [DEBUG][       Thread-610183][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:13:14,211 [ INFO][       Thread-610183][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:13:14,215 [DEBUG][       Thread-610183][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:13:14,215 [DEBUG][       Thread-610183][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:13:14,215 [DEBUG][       Thread-610183][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:13:14,215 [DEBUG][       Thread-610183][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:13:14,215 [DEBUG][       Thread-610183][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:13:14,215 [DEBUG][       Thread-610183][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:13:14,215 [DEBUG][       Thread-610183][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:13:14,215 [DEBUG][       Thread-610183][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:13:14,215 [DEBUG][       Thread-610183][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:13:14,216 [DEBUG][       Thread-610183][   transport.py][1871] : client lang: <none>
2025-07-01 16:13:14,216 [DEBUG][       Thread-610183][   transport.py][1871] : server lang: <none>
2025-07-01 16:13:14,216 [DEBUG][       Thread-610183][   transport.py][1871] : kex follows: False
2025-07-01 16:13:14,216 [DEBUG][       Thread-610183][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:13:14,216 [DEBUG][       Thread-610183][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:13:14,216 [DEBUG][       Thread-610183][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:13:14,216 [DEBUG][       Thread-610183][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:13:14,216 [DEBUG][       Thread-610183][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:13:14,216 [DEBUG][       Thread-610183][   transport.py][1871] : Compression: none
2025-07-01 16:13:14,216 [DEBUG][       Thread-610183][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:13:14,232 [DEBUG][       Thread-610183][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:13:14,232 [DEBUG][       Thread-610183][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:13:14,233 [DEBUG][       Thread-610183][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:13:14,233 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:13:14,233 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:13:14,234 [DEBUG][       Thread-610183][   transport.py][1871] : userauth is OK
2025-07-01 16:13:14,259 [ INFO][       Thread-610183][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:13:14,261 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:13:14,921 [DEBUG][       Thread-610183][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:13:14,922 [DEBUG][       Thread-610183][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:13:14,965 [DEBUG][       Thread-610183][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:13:14,965 [DEBUG][       Thread-610183][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:13:14,968 [DEBUG][       Thread-610183][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:13:14,980 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:13:14,981 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:13:14,982 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:13:14,984 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:13:14,988 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:13:14,990 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:13:14,990 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:13:14,991 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:13:14,991 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.591953 -999.00  +13.70  37.59     50   +3.70 1 1 2 1 1   887    0 10.71 28.06 ----- 37.6 37.6 32.3 43.6 15.4 -23.6 15.0 -23.7 15.2 -22.8 15.6 -22.8
2025-07-01 16:13:14,991 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:13:14,991 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:13:14,991 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.591953
2025-07-01 16:13:14,992 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:13:14,992 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:13:14,992 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:13:14,992 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:13:14,992 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 16:13:14,993 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:12:46', tmtdew=11.49, humidity=45.96, cloud=0.0, wind=27.54, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:12:24.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:13:14,993 [DEBUG][       Thread-610183][   transport.py][1871] : EOF in transport thread
2025-07-01 16:13:15,076 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:13:15,089 [DEBUG][       Thread-610186][   transport.py][1871] : starting thread (client mode): 0x81c9570
2025-07-01 16:13:15,089 [DEBUG][       Thread-610186][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:13:15,104 [DEBUG][       Thread-610186][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:13:15,104 [ INFO][       Thread-610186][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:13:15,111 [DEBUG][       Thread-610186][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:13:15,111 [DEBUG][       Thread-610186][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:13:15,112 [DEBUG][       Thread-610186][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:13:15,112 [DEBUG][       Thread-610186][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:13:15,112 [DEBUG][       Thread-610186][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:13:15,112 [DEBUG][       Thread-610186][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:13:15,112 [DEBUG][       Thread-610186][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:13:15,112 [DEBUG][       Thread-610186][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:13:15,112 [DEBUG][       Thread-610186][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:13:15,112 [DEBUG][       Thread-610186][   transport.py][1871] : client lang: <none>
2025-07-01 16:13:15,112 [DEBUG][       Thread-610186][   transport.py][1871] : server lang: <none>
2025-07-01 16:13:15,112 [DEBUG][       Thread-610186][   transport.py][1871] : kex follows: False
2025-07-01 16:13:15,112 [DEBUG][       Thread-610186][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:13:15,112 [DEBUG][       Thread-610186][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:13:15,112 [DEBUG][       Thread-610186][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:13:15,112 [DEBUG][       Thread-610186][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:13:15,112 [DEBUG][       Thread-610186][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:13:15,112 [DEBUG][       Thread-610186][   transport.py][1871] : Compression: none
2025-07-01 16:13:15,112 [DEBUG][       Thread-610186][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:13:15,170 [DEBUG][       Thread-610186][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:13:15,171 [DEBUG][       Thread-610186][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:13:15,171 [DEBUG][       Thread-610186][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:13:15,171 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:13:15,172 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:13:15,231 [DEBUG][       Thread-610186][   transport.py][1871] : userauth is OK
2025-07-01 16:13:15,231 [DEBUG][       Thread-610186][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:13:15,231 [DEBUG][       Thread-610186][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:13:15,231 [DEBUG][       Thread-610186][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:13:15,231 [DEBUG][       Thread-610186][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:13:15,250 [ INFO][       Thread-610186][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:13:15,251 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:13:15,251 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:13:16,297 [DEBUG][       Thread-610186][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:13:16,297 [DEBUG][       Thread-610186][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:13:16,347 [DEBUG][       Thread-610186][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:13:16,348 [DEBUG][       Thread-610186][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:13:16,356 [DEBUG][       Thread-610186][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:13:16,365 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:13:16,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-07-01 16:13:16,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-07-01 16:13:16,382 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:13:16,382 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:13:16,383 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:13:16,390 [DEBUG][       Thread-610186][   transport.py][1871] : EOF in transport thread
2025-07-01 16:13:18,437 [DEBUG][Thread-610188 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:13:26,393 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:13:26,393 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:13:26,393 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:13:26,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-07-01 16:13:26,861 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 13, 18), 11.47, 46.03, 0.0, 38.99, 13.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:13:26,861 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:13:18
2025-07-01 16:13:26,946 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:13:26,952 [DEBUG][       Thread-610189][   transport.py][1871] : starting thread (client mode): 0x81e6710
2025-07-01 16:13:26,952 [DEBUG][       Thread-610189][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:13:26,976 [DEBUG][       Thread-610189][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:13:26,976 [ INFO][       Thread-610189][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:13:26,980 [DEBUG][       Thread-610189][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:13:26,980 [DEBUG][       Thread-610189][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:13:26,980 [DEBUG][       Thread-610189][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:13:26,980 [DEBUG][       Thread-610189][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:13:26,980 [DEBUG][       Thread-610189][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:13:26,980 [DEBUG][       Thread-610189][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:13:26,980 [DEBUG][       Thread-610189][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:13:26,980 [DEBUG][       Thread-610189][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:13:26,980 [DEBUG][       Thread-610189][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:13:26,980 [DEBUG][       Thread-610189][   transport.py][1871] : client lang: <none>
2025-07-01 16:13:26,980 [DEBUG][       Thread-610189][   transport.py][1871] : server lang: <none>
2025-07-01 16:13:26,980 [DEBUG][       Thread-610189][   transport.py][1871] : kex follows: False
2025-07-01 16:13:26,980 [DEBUG][       Thread-610189][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:13:26,980 [DEBUG][       Thread-610189][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:13:26,981 [DEBUG][       Thread-610189][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:13:26,981 [DEBUG][       Thread-610189][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:13:26,981 [DEBUG][       Thread-610189][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:13:26,981 [DEBUG][       Thread-610189][   transport.py][1871] : Compression: none
2025-07-01 16:13:26,981 [DEBUG][       Thread-610189][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:13:27,000 [DEBUG][       Thread-610189][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:13:27,000 [DEBUG][       Thread-610189][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:13:27,001 [DEBUG][       Thread-610189][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:13:27,001 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:13:27,001 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:13:27,002 [DEBUG][       Thread-610189][   transport.py][1871] : userauth is OK
2025-07-01 16:13:27,027 [ INFO][       Thread-610189][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:13:27,027 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:13:27,459 [DEBUG][Thread-610191 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:13:27,675 [DEBUG][       Thread-610189][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:13:27,676 [DEBUG][       Thread-610189][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:13:27,716 [DEBUG][       Thread-610189][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:13:27,717 [DEBUG][       Thread-610189][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:13:27,719 [DEBUG][       Thread-610189][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:13:27,732 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:13:27,732 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:13:27,733 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:13:27,734 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:13:27,737 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:13:27,738 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:13:27,738 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:13:27,738 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:13:27,738 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.592300 -999.00  +13.70  30.63     51   +3.70 1 1 2 1 1   887    0 10.99 23.87 ----- 39.2 30.6 28.4 47.5 15.4 -23.7 15.0 -23.7 15.1 -23.0 15.5 -23.0
2025-07-01 16:13:27,738 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:13:27,738 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:13:27,738 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.592300
2025-07-01 16:13:27,738 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:13:27,739 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:13:27,739 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:13:27,739 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:13:27,739 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 16:13:27,739 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:13:18', tmtdew=11.47, humidity=46.03, cloud=0.0, wind=38.99, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:12:54.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:13:27,739 [DEBUG][       Thread-610189][   transport.py][1871] : EOF in transport thread
2025-07-01 16:13:27,813 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:13:27,826 [DEBUG][       Thread-610193][   transport.py][1871] : starting thread (client mode): 0x81db4c0
2025-07-01 16:13:27,826 [DEBUG][       Thread-610193][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:13:27,841 [DEBUG][       Thread-610193][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:13:27,842 [ INFO][       Thread-610193][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:13:27,849 [DEBUG][       Thread-610193][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:13:27,849 [DEBUG][       Thread-610193][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:13:27,849 [DEBUG][       Thread-610193][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:13:27,849 [DEBUG][       Thread-610193][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:13:27,849 [DEBUG][       Thread-610193][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:13:27,849 [DEBUG][       Thread-610193][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:13:27,849 [DEBUG][       Thread-610193][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:13:27,849 [DEBUG][       Thread-610193][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:13:27,849 [DEBUG][       Thread-610193][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:13:27,849 [DEBUG][       Thread-610193][   transport.py][1871] : client lang: <none>
2025-07-01 16:13:27,849 [DEBUG][       Thread-610193][   transport.py][1871] : server lang: <none>
2025-07-01 16:13:27,849 [DEBUG][       Thread-610193][   transport.py][1871] : kex follows: False
2025-07-01 16:13:27,849 [DEBUG][       Thread-610193][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:13:27,849 [DEBUG][       Thread-610193][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:13:27,849 [DEBUG][       Thread-610193][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:13:27,849 [DEBUG][       Thread-610193][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:13:27,849 [DEBUG][       Thread-610193][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:13:27,849 [DEBUG][       Thread-610193][   transport.py][1871] : Compression: none
2025-07-01 16:13:27,849 [DEBUG][       Thread-610193][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:13:27,910 [DEBUG][       Thread-610193][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:13:27,910 [DEBUG][       Thread-610193][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:13:27,910 [DEBUG][       Thread-610193][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:13:27,911 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:13:27,911 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:13:27,967 [DEBUG][       Thread-610193][   transport.py][1871] : userauth is OK
2025-07-01 16:13:27,967 [DEBUG][       Thread-610193][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:13:27,967 [DEBUG][       Thread-610193][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:13:27,967 [DEBUG][       Thread-610193][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:13:27,967 [DEBUG][       Thread-610193][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:13:27,982 [ INFO][       Thread-610193][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:13:27,982 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:13:27,982 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:13:29,058 [DEBUG][       Thread-610193][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:13:29,058 [DEBUG][       Thread-610193][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:13:29,107 [DEBUG][       Thread-610193][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:13:29,107 [DEBUG][       Thread-610193][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:13:29,116 [DEBUG][       Thread-610193][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:13:29,124 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:13:29,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-07-01 16:13:29,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-07-01 16:13:29,139 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:13:29,139 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:13:29,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:13:29,148 [DEBUG][       Thread-610193][   transport.py][1871] : EOF in transport thread
2025-07-01 16:13:36,479 [DEBUG][Thread-610195 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:13:38,244 [DEBUG][Thread-610196 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:13:39,148 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:13:39,148 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:13:39,148 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:13:39,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-07-01 16:13:39,613 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 13, 18), 11.47, 46.03, 0.0, 38.99, 13.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:13:39,613 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:13:18
2025-07-01 16:13:39,698 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:13:39,702 [DEBUG][       Thread-610197][   transport.py][1871] : starting thread (client mode): 0x818f250
2025-07-01 16:13:39,702 [DEBUG][       Thread-610197][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:13:39,724 [DEBUG][       Thread-610197][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:13:39,724 [ INFO][       Thread-610197][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:13:39,727 [DEBUG][       Thread-610197][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:13:39,727 [DEBUG][       Thread-610197][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:13:39,727 [DEBUG][       Thread-610197][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:13:39,727 [DEBUG][       Thread-610197][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:13:39,727 [DEBUG][       Thread-610197][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:13:39,727 [DEBUG][       Thread-610197][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:13:39,727 [DEBUG][       Thread-610197][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:13:39,727 [DEBUG][       Thread-610197][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:13:39,727 [DEBUG][       Thread-610197][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:13:39,727 [DEBUG][       Thread-610197][   transport.py][1871] : client lang: <none>
2025-07-01 16:13:39,727 [DEBUG][       Thread-610197][   transport.py][1871] : server lang: <none>
2025-07-01 16:13:39,728 [DEBUG][       Thread-610197][   transport.py][1871] : kex follows: False
2025-07-01 16:13:39,728 [DEBUG][       Thread-610197][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:13:39,728 [DEBUG][       Thread-610197][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:13:39,728 [DEBUG][       Thread-610197][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:13:39,728 [DEBUG][       Thread-610197][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:13:39,728 [DEBUG][       Thread-610197][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:13:39,728 [DEBUG][       Thread-610197][   transport.py][1871] : Compression: none
2025-07-01 16:13:39,728 [DEBUG][       Thread-610197][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:13:39,746 [DEBUG][       Thread-610197][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:13:39,746 [DEBUG][       Thread-610197][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:13:39,747 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:13:39,747 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:13:39,748 [DEBUG][       Thread-610197][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:13:39,749 [DEBUG][       Thread-610197][   transport.py][1871] : userauth is OK
2025-07-01 16:13:39,774 [ INFO][       Thread-610197][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:13:39,774 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:13:40,398 [DEBUG][       Thread-610197][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:13:40,398 [DEBUG][       Thread-610197][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:13:40,441 [DEBUG][       Thread-610197][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:13:40,441 [DEBUG][       Thread-610197][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:13:40,445 [DEBUG][       Thread-610197][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:13:40,456 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:13:40,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:13:40,458 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:13:40,460 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:13:40,467 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:13:40,469 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:13:40,469 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:13:40,470 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:13:40,470 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.592300 -999.00  +13.70  30.63     51   +3.70 1 1 2 1 1   887    0 10.99 23.87 ----- 39.2 30.6 28.4 47.5 15.4 -23.7 15.0 -23.7 15.1 -23.0 15.5 -23.0
2025-07-01 16:13:40,470 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:13:40,470 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:13:40,470 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.592300
2025-07-01 16:13:40,470 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:13:40,471 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:13:40,471 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:13:40,471 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:13:40,471 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 16:13:40,471 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:13:18', tmtdew=11.47, humidity=46.03, cloud=0.0, wind=38.99, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:12:54.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:13:40,472 [DEBUG][       Thread-610197][   transport.py][1871] : EOF in transport thread
2025-07-01 16:13:40,565 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:13:40,574 [DEBUG][       Thread-610200][   transport.py][1871] : starting thread (client mode): 0x75a82e0
2025-07-01 16:13:40,575 [DEBUG][       Thread-610200][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:13:40,590 [DEBUG][       Thread-610200][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:13:40,591 [ INFO][       Thread-610200][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:13:40,600 [DEBUG][       Thread-610200][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:13:40,600 [DEBUG][       Thread-610200][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:13:40,600 [DEBUG][       Thread-610200][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:13:40,600 [DEBUG][       Thread-610200][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:13:40,600 [DEBUG][       Thread-610200][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:13:40,600 [DEBUG][       Thread-610200][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:13:40,600 [DEBUG][       Thread-610200][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:13:40,600 [DEBUG][       Thread-610200][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:13:40,600 [DEBUG][       Thread-610200][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:13:40,600 [DEBUG][       Thread-610200][   transport.py][1871] : client lang: <none>
2025-07-01 16:13:40,600 [DEBUG][       Thread-610200][   transport.py][1871] : server lang: <none>
2025-07-01 16:13:40,600 [DEBUG][       Thread-610200][   transport.py][1871] : kex follows: False
2025-07-01 16:13:40,600 [DEBUG][       Thread-610200][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:13:40,600 [DEBUG][       Thread-610200][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:13:40,600 [DEBUG][       Thread-610200][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:13:40,601 [DEBUG][       Thread-610200][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:13:40,601 [DEBUG][       Thread-610200][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:13:40,601 [DEBUG][       Thread-610200][   transport.py][1871] : Compression: none
2025-07-01 16:13:40,601 [DEBUG][       Thread-610200][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:13:40,660 [DEBUG][       Thread-610200][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:13:40,661 [DEBUG][       Thread-610200][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:13:40,661 [DEBUG][       Thread-610200][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:13:40,662 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:13:40,662 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:13:40,717 [DEBUG][       Thread-610200][   transport.py][1871] : userauth is OK
2025-07-01 16:13:40,717 [DEBUG][       Thread-610200][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:13:40,717 [DEBUG][       Thread-610200][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:13:40,717 [DEBUG][       Thread-610200][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:13:40,717 [DEBUG][       Thread-610200][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:13:40,736 [ INFO][       Thread-610200][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:13:40,736 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:13:40,737 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:13:41,755 [DEBUG][       Thread-610200][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:13:41,756 [DEBUG][       Thread-610200][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:13:41,803 [DEBUG][       Thread-610200][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:13:41,804 [DEBUG][       Thread-610200][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:13:41,814 [DEBUG][       Thread-610200][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:13:41,822 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:13:41,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-07-01 16:13:41,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-07-01 16:13:41,841 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:13:41,841 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:13:41,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:13:41,849 [DEBUG][       Thread-610200][   transport.py][1871] : EOF in transport thread
2025-07-01 16:13:45,510 [DEBUG][Thread-610202 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:13:51,848 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:13:51,848 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:13:51,848 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:13:51,849 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:13:52,319 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 13, 18), 11.47, 46.03, 0.0, 38.99, 13.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:13:52,319 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:13:18
2025-07-01 16:13:52,402 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:13:52,408 [DEBUG][       Thread-610203][   transport.py][1871] : starting thread (client mode): 0x81e7e50
2025-07-01 16:13:52,408 [DEBUG][       Thread-610203][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:13:52,428 [DEBUG][       Thread-610203][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:13:52,428 [ INFO][       Thread-610203][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:13:52,432 [DEBUG][       Thread-610203][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:13:52,432 [DEBUG][       Thread-610203][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:13:52,432 [DEBUG][       Thread-610203][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:13:52,432 [DEBUG][       Thread-610203][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:13:52,432 [DEBUG][       Thread-610203][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:13:52,432 [DEBUG][       Thread-610203][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:13:52,432 [DEBUG][       Thread-610203][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:13:52,432 [DEBUG][       Thread-610203][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:13:52,432 [DEBUG][       Thread-610203][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:13:52,432 [DEBUG][       Thread-610203][   transport.py][1871] : client lang: <none>
2025-07-01 16:13:52,432 [DEBUG][       Thread-610203][   transport.py][1871] : server lang: <none>
2025-07-01 16:13:52,432 [DEBUG][       Thread-610203][   transport.py][1871] : kex follows: False
2025-07-01 16:13:52,432 [DEBUG][       Thread-610203][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:13:52,432 [DEBUG][       Thread-610203][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:13:52,432 [DEBUG][       Thread-610203][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:13:52,432 [DEBUG][       Thread-610203][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:13:52,432 [DEBUG][       Thread-610203][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:13:52,432 [DEBUG][       Thread-610203][   transport.py][1871] : Compression: none
2025-07-01 16:13:52,432 [DEBUG][       Thread-610203][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:13:52,448 [DEBUG][       Thread-610203][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:13:52,448 [DEBUG][       Thread-610203][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:13:52,449 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:13:52,449 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:13:52,449 [DEBUG][       Thread-610203][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:13:52,451 [DEBUG][       Thread-610203][   transport.py][1871] : userauth is OK
2025-07-01 16:13:52,464 [ INFO][       Thread-610203][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:13:52,465 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:13:53,102 [DEBUG][       Thread-610203][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:13:53,103 [DEBUG][       Thread-610203][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:13:53,145 [DEBUG][       Thread-610203][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:13:53,145 [DEBUG][       Thread-610203][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:13:53,148 [DEBUG][       Thread-610203][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:13:53,161 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:13:53,162 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:13:53,163 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:13:53,165 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:13:53,171 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:13:53,172 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:13:53,173 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:13:53,173 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:13:53,173 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.592300 -999.00  +13.70  30.63     51   +3.70 1 1 2 1 1   887    0 10.99 23.87 ----- 39.2 30.6 28.4 47.5 15.4 -23.7 15.0 -23.7 15.1 -23.0 15.5 -23.0
2025-07-01 16:13:53,174 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:13:53,174 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:13:53,174 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.592300
2025-07-01 16:13:53,174 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:13:53,175 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:13:53,175 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:13:53,175 [DEBUG][       Thread-610203][   transport.py][1871] : EOF in transport thread
2025-07-01 16:13:53,175 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:13:53,175 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 16:13:53,176 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:13:18', tmtdew=11.47, humidity=46.03, cloud=0.0, wind=38.99, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:12:54.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:13:53,269 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:13:53,282 [DEBUG][       Thread-610206][   transport.py][1871] : starting thread (client mode): 0x8173bb0
2025-07-01 16:13:53,282 [DEBUG][       Thread-610206][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:13:53,297 [DEBUG][       Thread-610206][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:13:53,297 [ INFO][       Thread-610206][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:13:53,305 [DEBUG][       Thread-610206][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:13:53,305 [DEBUG][       Thread-610206][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:13:53,305 [DEBUG][       Thread-610206][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:13:53,305 [DEBUG][       Thread-610206][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:13:53,305 [DEBUG][       Thread-610206][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:13:53,305 [DEBUG][       Thread-610206][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:13:53,305 [DEBUG][       Thread-610206][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:13:53,305 [DEBUG][       Thread-610206][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:13:53,305 [DEBUG][       Thread-610206][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:13:53,305 [DEBUG][       Thread-610206][   transport.py][1871] : client lang: <none>
2025-07-01 16:13:53,305 [DEBUG][       Thread-610206][   transport.py][1871] : server lang: <none>
2025-07-01 16:13:53,305 [DEBUG][       Thread-610206][   transport.py][1871] : kex follows: False
2025-07-01 16:13:53,305 [DEBUG][       Thread-610206][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:13:53,306 [DEBUG][       Thread-610206][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:13:53,306 [DEBUG][       Thread-610206][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:13:53,306 [DEBUG][       Thread-610206][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:13:53,306 [DEBUG][       Thread-610206][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:13:53,306 [DEBUG][       Thread-610206][   transport.py][1871] : Compression: none
2025-07-01 16:13:53,306 [DEBUG][       Thread-610206][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:13:53,361 [DEBUG][       Thread-610206][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:13:53,362 [DEBUG][       Thread-610206][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:13:53,362 [DEBUG][       Thread-610206][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:13:53,362 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:13:53,363 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:13:53,417 [DEBUG][       Thread-610206][   transport.py][1871] : userauth is OK
2025-07-01 16:13:53,418 [DEBUG][       Thread-610206][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:13:53,418 [DEBUG][       Thread-610206][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:13:53,418 [DEBUG][       Thread-610206][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:13:53,418 [DEBUG][       Thread-610206][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:13:53,437 [ INFO][       Thread-610206][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:13:53,437 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:13:53,437 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:13:54,459 [DEBUG][       Thread-610206][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:13:54,459 [DEBUG][       Thread-610206][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:13:54,508 [DEBUG][       Thread-610206][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:13:54,508 [DEBUG][       Thread-610206][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:13:54,519 [DEBUG][       Thread-610206][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:13:54,530 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:13:54,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-07-01 16:13:54,533 [DEBUG][Thread-610208 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:13:54,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-07-01 16:13:54,548 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:13:54,548 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:13:54,549 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:13:54,556 [DEBUG][       Thread-610206][   transport.py][1871] : EOF in transport thread
2025-07-01 16:14:03,556 [DEBUG][Thread-610209 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:14:04,559 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:14:04,559 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:14:04,560 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:14:04,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-07-01 16:14:05,048 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 13, 50), 11.45, 46.07, 0.0, 38.32, 13.9, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:14:05,048 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:13:50
2025-07-01 16:14:05,128 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:14:05,132 [DEBUG][       Thread-610210][   transport.py][1871] : starting thread (client mode): 0x81e7d60
2025-07-01 16:14:05,132 [DEBUG][       Thread-610210][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:14:05,147 [DEBUG][       Thread-610210][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:14:05,147 [ INFO][       Thread-610210][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:14:05,150 [DEBUG][       Thread-610210][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:14:05,150 [DEBUG][       Thread-610210][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:14:05,150 [DEBUG][       Thread-610210][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:14:05,150 [DEBUG][       Thread-610210][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:14:05,150 [DEBUG][       Thread-610210][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:14:05,150 [DEBUG][       Thread-610210][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:14:05,150 [DEBUG][       Thread-610210][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:14:05,151 [DEBUG][       Thread-610210][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:14:05,151 [DEBUG][       Thread-610210][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:14:05,151 [DEBUG][       Thread-610210][   transport.py][1871] : client lang: <none>
2025-07-01 16:14:05,151 [DEBUG][       Thread-610210][   transport.py][1871] : server lang: <none>
2025-07-01 16:14:05,151 [DEBUG][       Thread-610210][   transport.py][1871] : kex follows: False
2025-07-01 16:14:05,151 [DEBUG][       Thread-610210][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:14:05,151 [DEBUG][       Thread-610210][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:14:05,151 [DEBUG][       Thread-610210][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:14:05,151 [DEBUG][       Thread-610210][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:14:05,151 [DEBUG][       Thread-610210][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:14:05,151 [DEBUG][       Thread-610210][   transport.py][1871] : Compression: none
2025-07-01 16:14:05,151 [DEBUG][       Thread-610210][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:14:05,168 [DEBUG][       Thread-610210][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:14:05,168 [DEBUG][       Thread-610210][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:14:05,169 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:14:05,169 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:14:05,169 [DEBUG][       Thread-610210][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:14:05,171 [DEBUG][       Thread-610210][   transport.py][1871] : userauth is OK
2025-07-01 16:14:05,196 [ INFO][       Thread-610210][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:14:05,197 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:14:05,848 [DEBUG][       Thread-610210][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:14:05,848 [DEBUG][       Thread-610210][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:14:05,892 [DEBUG][       Thread-610210][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:14:05,892 [DEBUG][       Thread-610210][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:14:05,895 [DEBUG][       Thread-610210][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:14:05,908 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:14:05,908 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:14:05,909 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:14:05,911 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:14:05,914 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:14:05,915 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:14:05,915 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:14:05,915 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:14:05,915 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.592648 -999.00  +13.70  39.97     51   +3.80 1 1 2 1 1   887    0 10.57 22.46 ----- 47.8 40.0 32.6 49.0 15.4 -23.7 15.0 -23.8 15.1 -22.9 15.5 -22.7
2025-07-01 16:14:05,915 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:14:05,915 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:14:05,915 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.592648
2025-07-01 16:14:05,915 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:14:05,915 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:14:05,915 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:14:05,915 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:14:05,915 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 16:14:05,915 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:13:50', tmtdew=11.45, humidity=46.07, cloud=0.0, wind=38.32, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:13:24.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:14:05,916 [DEBUG][       Thread-610210][   transport.py][1871] : EOF in transport thread
2025-07-01 16:14:05,990 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:14:06,001 [DEBUG][       Thread-610213][   transport.py][1871] : starting thread (client mode): 0x75ab1f0
2025-07-01 16:14:06,002 [DEBUG][       Thread-610213][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:14:06,016 [DEBUG][       Thread-610213][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:14:06,016 [ INFO][       Thread-610213][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:14:06,024 [DEBUG][       Thread-610213][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:14:06,024 [DEBUG][       Thread-610213][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:14:06,024 [DEBUG][       Thread-610213][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:14:06,024 [DEBUG][       Thread-610213][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:14:06,024 [DEBUG][       Thread-610213][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:14:06,024 [DEBUG][       Thread-610213][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:14:06,024 [DEBUG][       Thread-610213][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:14:06,024 [DEBUG][       Thread-610213][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:14:06,024 [DEBUG][       Thread-610213][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:14:06,024 [DEBUG][       Thread-610213][   transport.py][1871] : client lang: <none>
2025-07-01 16:14:06,024 [DEBUG][       Thread-610213][   transport.py][1871] : server lang: <none>
2025-07-01 16:14:06,024 [DEBUG][       Thread-610213][   transport.py][1871] : kex follows: False
2025-07-01 16:14:06,024 [DEBUG][       Thread-610213][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:14:06,024 [DEBUG][       Thread-610213][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:14:06,024 [DEBUG][       Thread-610213][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:14:06,024 [DEBUG][       Thread-610213][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:14:06,024 [DEBUG][       Thread-610213][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:14:06,024 [DEBUG][       Thread-610213][   transport.py][1871] : Compression: none
2025-07-01 16:14:06,024 [DEBUG][       Thread-610213][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:14:06,080 [DEBUG][       Thread-610213][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:14:06,080 [DEBUG][       Thread-610213][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:14:06,080 [DEBUG][       Thread-610213][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:14:06,080 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:14:06,080 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:14:06,146 [DEBUG][       Thread-610213][   transport.py][1871] : userauth is OK
2025-07-01 16:14:06,146 [DEBUG][       Thread-610213][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:14:06,147 [DEBUG][       Thread-610213][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:14:06,147 [DEBUG][       Thread-610213][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:14:06,147 [DEBUG][       Thread-610213][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:14:06,164 [ INFO][       Thread-610213][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:14:06,164 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:14:06,164 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:14:07,200 [DEBUG][       Thread-610213][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:14:07,200 [DEBUG][       Thread-610213][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:14:07,251 [DEBUG][       Thread-610213][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:14:07,251 [DEBUG][       Thread-610213][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:14:07,259 [DEBUG][       Thread-610213][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:14:07,269 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:14:07,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-07-01 16:14:07,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-07-01 16:14:07,285 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:14:07,285 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:14:07,285 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:14:07,293 [DEBUG][       Thread-610213][   transport.py][1871] : EOF in transport thread
2025-07-01 16:14:12,576 [DEBUG][Thread-610215 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:14:17,287 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:14:17,287 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:14:17,288 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:14:17,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-07-01 16:14:17,755 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 13, 50), 11.45, 46.07, 0.0, 38.32, 13.9, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:14:17,755 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:13:50
2025-07-01 16:14:17,839 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:14:17,843 [DEBUG][       Thread-610216][   transport.py][1871] : starting thread (client mode): 0x81e7490
2025-07-01 16:14:17,843 [DEBUG][       Thread-610216][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:14:17,864 [DEBUG][       Thread-610216][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:14:17,864 [ INFO][       Thread-610216][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:14:17,867 [DEBUG][       Thread-610216][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:14:17,867 [DEBUG][       Thread-610216][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:14:17,867 [DEBUG][       Thread-610216][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:14:17,867 [DEBUG][       Thread-610216][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:14:17,867 [DEBUG][       Thread-610216][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:14:17,867 [DEBUG][       Thread-610216][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:14:17,867 [DEBUG][       Thread-610216][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:14:17,867 [DEBUG][       Thread-610216][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:14:17,867 [DEBUG][       Thread-610216][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:14:17,867 [DEBUG][       Thread-610216][   transport.py][1871] : client lang: <none>
2025-07-01 16:14:17,867 [DEBUG][       Thread-610216][   transport.py][1871] : server lang: <none>
2025-07-01 16:14:17,867 [DEBUG][       Thread-610216][   transport.py][1871] : kex follows: False
2025-07-01 16:14:17,867 [DEBUG][       Thread-610216][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:14:17,867 [DEBUG][       Thread-610216][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:14:17,867 [DEBUG][       Thread-610216][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:14:17,867 [DEBUG][       Thread-610216][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:14:17,867 [DEBUG][       Thread-610216][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:14:17,867 [DEBUG][       Thread-610216][   transport.py][1871] : Compression: none
2025-07-01 16:14:17,868 [DEBUG][       Thread-610216][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:14:17,877 [DEBUG][       Thread-610216][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:14:17,877 [DEBUG][       Thread-610216][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:14:17,878 [DEBUG][       Thread-610216][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:14:17,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:14:17,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:14:17,921 [DEBUG][       Thread-610216][   transport.py][1871] : userauth is OK
2025-07-01 16:14:17,946 [ INFO][       Thread-610216][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:14:17,946 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:14:18,590 [DEBUG][       Thread-610216][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:14:18,590 [DEBUG][       Thread-610216][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:14:18,633 [DEBUG][       Thread-610216][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:14:18,633 [DEBUG][       Thread-610216][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:14:18,637 [DEBUG][       Thread-610216][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:14:18,649 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:14:18,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:14:18,651 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:14:18,653 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:14:18,659 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:14:18,661 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:14:18,661 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:14:18,662 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:14:18,662 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.592648 -999.00  +13.70  39.97     51   +3.80 1 1 2 1 1   887    0 10.57 22.46 ----- 47.8 40.0 32.6 49.0 15.4 -23.7 15.0 -23.8 15.1 -22.9 15.5 -22.7
2025-07-01 16:14:18,662 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:14:18,662 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:14:18,662 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.592648
2025-07-01 16:14:18,663 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:14:18,664 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:14:18,664 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:14:18,664 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:14:18,664 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 16:14:18,664 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:13:50', tmtdew=11.45, humidity=46.07, cloud=0.0, wind=38.32, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:13:24.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:14:18,665 [DEBUG][       Thread-610216][   transport.py][1871] : EOF in transport thread
2025-07-01 16:14:18,747 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:14:18,761 [DEBUG][       Thread-610219][   transport.py][1871] : starting thread (client mode): 0x827d540
2025-07-01 16:14:18,761 [DEBUG][       Thread-610219][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:14:18,776 [DEBUG][       Thread-610219][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:14:18,777 [ INFO][       Thread-610219][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:14:18,784 [DEBUG][       Thread-610219][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:14:18,784 [DEBUG][       Thread-610219][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:14:18,784 [DEBUG][       Thread-610219][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:14:18,784 [DEBUG][       Thread-610219][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:14:18,784 [DEBUG][       Thread-610219][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:14:18,784 [DEBUG][       Thread-610219][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:14:18,784 [DEBUG][       Thread-610219][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:14:18,784 [DEBUG][       Thread-610219][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:14:18,784 [DEBUG][       Thread-610219][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:14:18,785 [DEBUG][       Thread-610219][   transport.py][1871] : client lang: <none>
2025-07-01 16:14:18,785 [DEBUG][       Thread-610219][   transport.py][1871] : server lang: <none>
2025-07-01 16:14:18,785 [DEBUG][       Thread-610219][   transport.py][1871] : kex follows: False
2025-07-01 16:14:18,785 [DEBUG][       Thread-610219][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:14:18,785 [DEBUG][       Thread-610219][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:14:18,785 [DEBUG][       Thread-610219][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:14:18,785 [DEBUG][       Thread-610219][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:14:18,785 [DEBUG][       Thread-610219][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:14:18,785 [DEBUG][       Thread-610219][   transport.py][1871] : Compression: none
2025-07-01 16:14:18,785 [DEBUG][       Thread-610219][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:14:18,842 [DEBUG][       Thread-610219][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:14:18,843 [DEBUG][       Thread-610219][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:14:18,843 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:14:18,844 [DEBUG][       Thread-610219][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:14:18,845 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:14:18,898 [DEBUG][       Thread-610219][   transport.py][1871] : userauth is OK
2025-07-01 16:14:18,899 [DEBUG][       Thread-610219][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:14:18,899 [DEBUG][       Thread-610219][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:14:18,899 [DEBUG][       Thread-610219][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:14:18,899 [DEBUG][       Thread-610219][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:14:18,918 [ INFO][       Thread-610219][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:14:18,919 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:14:18,919 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:14:19,936 [DEBUG][       Thread-610219][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:14:19,936 [DEBUG][       Thread-610219][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:14:19,987 [DEBUG][       Thread-610219][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:14:19,987 [DEBUG][       Thread-610219][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:14:19,996 [DEBUG][       Thread-610219][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:14:20,004 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:14:20,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')
2025-07-01 16:14:20,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-07-01 16:14:20,020 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:14:20,020 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:14:20,020 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:14:20,028 [DEBUG][       Thread-610219][   transport.py][1871] : EOF in transport thread
2025-07-01 16:14:21,612 [DEBUG][Thread-610221 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:14:30,030 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:14:30,030 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:14:30,031 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:14:30,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-07-01 16:14:30,516 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 14, 21), 11.38, 46.18, 0.0, 28.11, 13.88, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:14:30,516 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:14:21
2025-07-01 16:14:30,601 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:14:30,604 [DEBUG][       Thread-610222][   transport.py][1871] : starting thread (client mode): 0x81e6530
2025-07-01 16:14:30,604 [DEBUG][       Thread-610222][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:14:30,624 [DEBUG][       Thread-610222][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:14:30,624 [ INFO][       Thread-610222][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:14:30,628 [DEBUG][       Thread-610222][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:14:30,628 [DEBUG][       Thread-610222][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:14:30,628 [DEBUG][       Thread-610222][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:14:30,628 [DEBUG][       Thread-610222][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:14:30,628 [DEBUG][       Thread-610222][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:14:30,628 [DEBUG][       Thread-610222][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:14:30,628 [DEBUG][       Thread-610222][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:14:30,628 [DEBUG][       Thread-610222][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:14:30,628 [DEBUG][       Thread-610222][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:14:30,628 [DEBUG][       Thread-610222][   transport.py][1871] : client lang: <none>
2025-07-01 16:14:30,628 [DEBUG][       Thread-610222][   transport.py][1871] : server lang: <none>
2025-07-01 16:14:30,628 [DEBUG][       Thread-610222][   transport.py][1871] : kex follows: False
2025-07-01 16:14:30,628 [DEBUG][       Thread-610222][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:14:30,628 [DEBUG][       Thread-610222][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:14:30,628 [DEBUG][       Thread-610222][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:14:30,628 [DEBUG][       Thread-610222][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:14:30,628 [DEBUG][       Thread-610222][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:14:30,628 [DEBUG][       Thread-610222][   transport.py][1871] : Compression: none
2025-07-01 16:14:30,629 [DEBUG][       Thread-610222][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:14:30,634 [DEBUG][Thread-610224 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:14:30,644 [DEBUG][       Thread-610222][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:14:30,645 [DEBUG][       Thread-610222][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:14:30,645 [DEBUG][       Thread-610222][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:14:30,646 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:14:30,646 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:14:30,647 [DEBUG][       Thread-610222][   transport.py][1871] : userauth is OK
2025-07-01 16:14:30,659 [ INFO][       Thread-610222][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:14:30,660 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:14:31,300 [DEBUG][       Thread-610222][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:14:31,300 [DEBUG][       Thread-610222][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:14:31,341 [DEBUG][       Thread-610222][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:14:31,341 [DEBUG][       Thread-610222][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:14:31,345 [DEBUG][       Thread-610222][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:14:31,358 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:14:31,358 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:14:31,361 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:14:31,363 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:14:31,369 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:14:31,370 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:14:31,371 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:14:31,371 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:14:31,371 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.592995 -999.00  +13.70  37.05     51   +3.70 1 1 2 1 1   887    0 10.62 19.44 ----- 42.3 37.0 34.0 55.7 15.3 -23.8 14.9 -23.8 15.0 -22.8 15.4 -22.6
2025-07-01 16:14:31,372 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:14:31,372 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:14:31,372 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.592995
2025-07-01 16:14:31,372 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:14:31,373 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:14:31,373 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:14:31,373 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:14:31,373 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 16:14:31,373 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:14:21', tmtdew=11.38, humidity=46.18, cloud=0.0, wind=28.11, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:13:54.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:14:31,374 [DEBUG][       Thread-610222][   transport.py][1871] : EOF in transport thread
2025-07-01 16:14:31,446 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:14:31,458 [DEBUG][       Thread-610226][   transport.py][1871] : starting thread (client mode): 0x75aa770
2025-07-01 16:14:31,458 [DEBUG][       Thread-610226][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:14:31,475 [DEBUG][       Thread-610226][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:14:31,475 [ INFO][       Thread-610226][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:14:31,483 [DEBUG][       Thread-610226][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:14:31,483 [DEBUG][       Thread-610226][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:14:31,483 [DEBUG][       Thread-610226][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:14:31,483 [DEBUG][       Thread-610226][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:14:31,483 [DEBUG][       Thread-610226][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:14:31,483 [DEBUG][       Thread-610226][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:14:31,484 [DEBUG][       Thread-610226][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:14:31,484 [DEBUG][       Thread-610226][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:14:31,484 [DEBUG][       Thread-610226][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:14:31,484 [DEBUG][       Thread-610226][   transport.py][1871] : client lang: <none>
2025-07-01 16:14:31,484 [DEBUG][       Thread-610226][   transport.py][1871] : server lang: <none>
2025-07-01 16:14:31,484 [DEBUG][       Thread-610226][   transport.py][1871] : kex follows: False
2025-07-01 16:14:31,484 [DEBUG][       Thread-610226][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:14:31,484 [DEBUG][       Thread-610226][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:14:31,484 [DEBUG][       Thread-610226][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:14:31,484 [DEBUG][       Thread-610226][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:14:31,484 [DEBUG][       Thread-610226][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:14:31,484 [DEBUG][       Thread-610226][   transport.py][1871] : Compression: none
2025-07-01 16:14:31,484 [DEBUG][       Thread-610226][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:14:31,539 [DEBUG][       Thread-610226][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:14:31,540 [DEBUG][       Thread-610226][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:14:31,540 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:14:31,541 [DEBUG][       Thread-610226][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:14:31,542 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:14:31,595 [DEBUG][       Thread-610226][   transport.py][1871] : userauth is OK
2025-07-01 16:14:31,595 [DEBUG][       Thread-610226][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:14:31,596 [DEBUG][       Thread-610226][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:14:31,596 [DEBUG][       Thread-610226][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:14:31,596 [DEBUG][       Thread-610226][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:14:31,615 [ INFO][       Thread-610226][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:14:31,615 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:14:31,616 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:14:32,620 [DEBUG][       Thread-610226][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:14:32,620 [DEBUG][       Thread-610226][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:14:32,667 [DEBUG][       Thread-610226][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:14:32,668 [DEBUG][       Thread-610226][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:14:32,676 [DEBUG][       Thread-610226][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:14:32,685 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:14:32,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-07-01 16:14:32,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-07-01 16:14:32,702 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:14:32,702 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:14:32,703 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:14:32,710 [DEBUG][       Thread-610226][   transport.py][1871] : EOF in transport thread
2025-07-01 16:14:38,273 [DEBUG][Thread-610228 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:14:39,655 [DEBUG][Thread-610229 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:14:42,712 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:14:42,712 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:14:42,712 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:14:42,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-07-01 16:14:43,179 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 14, 21), 11.38, 46.18, 0.0, 28.11, 13.88, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:14:43,179 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:14:21
2025-07-01 16:14:43,263 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:14:43,267 [DEBUG][       Thread-610230][   transport.py][1871] : starting thread (client mode): 0x81e6680
2025-07-01 16:14:43,272 [DEBUG][       Thread-610230][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:14:43,288 [DEBUG][       Thread-610230][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:14:43,288 [ INFO][       Thread-610230][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:14:43,291 [DEBUG][       Thread-610230][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:14:43,291 [DEBUG][       Thread-610230][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:14:43,291 [DEBUG][       Thread-610230][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:14:43,291 [DEBUG][       Thread-610230][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:14:43,291 [DEBUG][       Thread-610230][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:14:43,291 [DEBUG][       Thread-610230][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:14:43,291 [DEBUG][       Thread-610230][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:14:43,291 [DEBUG][       Thread-610230][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:14:43,291 [DEBUG][       Thread-610230][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:14:43,291 [DEBUG][       Thread-610230][   transport.py][1871] : client lang: <none>
2025-07-01 16:14:43,292 [DEBUG][       Thread-610230][   transport.py][1871] : server lang: <none>
2025-07-01 16:14:43,292 [DEBUG][       Thread-610230][   transport.py][1871] : kex follows: False
2025-07-01 16:14:43,292 [DEBUG][       Thread-610230][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:14:43,292 [DEBUG][       Thread-610230][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:14:43,292 [DEBUG][       Thread-610230][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:14:43,292 [DEBUG][       Thread-610230][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:14:43,292 [DEBUG][       Thread-610230][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:14:43,292 [DEBUG][       Thread-610230][   transport.py][1871] : Compression: none
2025-07-01 16:14:43,292 [DEBUG][       Thread-610230][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:14:43,310 [DEBUG][       Thread-610230][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:14:43,310 [DEBUG][       Thread-610230][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:14:43,310 [DEBUG][       Thread-610230][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:14:43,311 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:14:43,311 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:14:43,312 [DEBUG][       Thread-610230][   transport.py][1871] : userauth is OK
2025-07-01 16:14:43,337 [ INFO][       Thread-610230][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:14:43,337 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:14:43,962 [DEBUG][       Thread-610230][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:14:43,962 [DEBUG][       Thread-610230][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:14:44,004 [DEBUG][       Thread-610230][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:14:44,004 [DEBUG][       Thread-610230][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:14:44,007 [DEBUG][       Thread-610230][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:14:44,020 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:14:44,021 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:14:44,022 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:14:44,023 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:14:44,025 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:14:44,026 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:14:44,026 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:14:44,027 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:14:44,027 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.592995 -999.00  +13.70  37.05     51   +3.70 1 1 2 1 1   887    0 10.62 19.44 ----- 42.3 37.0 34.0 55.7 15.3 -23.8 14.9 -23.8 15.0 -22.8 15.4 -22.6
2025-07-01 16:14:44,027 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:14:44,027 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:14:44,027 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.592995
2025-07-01 16:14:44,027 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:14:44,027 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:14:44,027 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:14:44,027 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:14:44,027 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 16:14:44,027 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:14:21', tmtdew=11.38, humidity=46.18, cloud=0.0, wind=28.11, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:13:54.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:14:44,028 [DEBUG][       Thread-610230][   transport.py][1871] : EOF in transport thread
2025-07-01 16:14:44,100 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:14:44,110 [DEBUG][       Thread-610233][   transport.py][1871] : starting thread (client mode): 0x81d88e0
2025-07-01 16:14:44,110 [DEBUG][       Thread-610233][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:14:44,124 [DEBUG][       Thread-610233][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:14:44,124 [ INFO][       Thread-610233][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:14:44,132 [DEBUG][       Thread-610233][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:14:44,132 [DEBUG][       Thread-610233][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:14:44,132 [DEBUG][       Thread-610233][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:14:44,132 [DEBUG][       Thread-610233][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:14:44,132 [DEBUG][       Thread-610233][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:14:44,132 [DEBUG][       Thread-610233][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:14:44,132 [DEBUG][       Thread-610233][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:14:44,132 [DEBUG][       Thread-610233][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:14:44,132 [DEBUG][       Thread-610233][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:14:44,132 [DEBUG][       Thread-610233][   transport.py][1871] : client lang: <none>
2025-07-01 16:14:44,132 [DEBUG][       Thread-610233][   transport.py][1871] : server lang: <none>
2025-07-01 16:14:44,132 [DEBUG][       Thread-610233][   transport.py][1871] : kex follows: False
2025-07-01 16:14:44,132 [DEBUG][       Thread-610233][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:14:44,132 [DEBUG][       Thread-610233][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:14:44,132 [DEBUG][       Thread-610233][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:14:44,132 [DEBUG][       Thread-610233][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:14:44,132 [DEBUG][       Thread-610233][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:14:44,132 [DEBUG][       Thread-610233][   transport.py][1871] : Compression: none
2025-07-01 16:14:44,132 [DEBUG][       Thread-610233][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:14:44,190 [DEBUG][       Thread-610233][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:14:44,190 [DEBUG][       Thread-610233][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:14:44,190 [DEBUG][       Thread-610233][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:14:44,190 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:14:44,190 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:14:44,251 [DEBUG][       Thread-610233][   transport.py][1871] : userauth is OK
2025-07-01 16:14:44,251 [DEBUG][       Thread-610233][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:14:44,251 [DEBUG][       Thread-610233][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:14:44,251 [DEBUG][       Thread-610233][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:14:44,251 [DEBUG][       Thread-610233][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:14:44,265 [ INFO][       Thread-610233][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:14:44,265 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:14:44,265 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:14:45,260 [DEBUG][       Thread-610233][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:14:45,260 [DEBUG][       Thread-610233][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:14:45,311 [DEBUG][       Thread-610233][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:14:45,311 [DEBUG][       Thread-610233][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:14:45,320 [DEBUG][       Thread-610233][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:14:45,328 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:14:45,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')
2025-07-01 16:14:45,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') -> 00000000
2025-07-01 16:14:45,344 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:14:45,344 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:14:45,344 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:14:45,352 [DEBUG][       Thread-610233][   transport.py][1871] : EOF in transport thread
2025-07-01 16:14:48,687 [DEBUG][Thread-610235 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:14:55,352 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:14:55,352 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:14:55,352 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:14:55,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-07-01 16:14:55,834 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 14, 21), 11.38, 46.18, 0.0, 28.11, 13.88, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:14:55,834 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:14:21
2025-07-01 16:14:55,917 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:14:55,921 [DEBUG][       Thread-610236][   transport.py][1871] : starting thread (client mode): 0x81e7af0
2025-07-01 16:14:55,921 [DEBUG][       Thread-610236][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:14:55,943 [DEBUG][       Thread-610236][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:14:55,943 [ INFO][       Thread-610236][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:14:55,947 [DEBUG][       Thread-610236][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:14:55,947 [DEBUG][       Thread-610236][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:14:55,947 [DEBUG][       Thread-610236][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:14:55,947 [DEBUG][       Thread-610236][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:14:55,947 [DEBUG][       Thread-610236][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:14:55,947 [DEBUG][       Thread-610236][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:14:55,947 [DEBUG][       Thread-610236][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:14:55,947 [DEBUG][       Thread-610236][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:14:55,947 [DEBUG][       Thread-610236][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:14:55,947 [DEBUG][       Thread-610236][   transport.py][1871] : client lang: <none>
2025-07-01 16:14:55,947 [DEBUG][       Thread-610236][   transport.py][1871] : server lang: <none>
2025-07-01 16:14:55,947 [DEBUG][       Thread-610236][   transport.py][1871] : kex follows: False
2025-07-01 16:14:55,947 [DEBUG][       Thread-610236][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:14:55,947 [DEBUG][       Thread-610236][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:14:55,947 [DEBUG][       Thread-610236][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:14:55,947 [DEBUG][       Thread-610236][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:14:55,947 [DEBUG][       Thread-610236][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:14:55,947 [DEBUG][       Thread-610236][   transport.py][1871] : Compression: none
2025-07-01 16:14:55,947 [DEBUG][       Thread-610236][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:14:55,965 [DEBUG][       Thread-610236][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:14:55,965 [DEBUG][       Thread-610236][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:14:55,966 [DEBUG][       Thread-610236][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:14:55,966 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:14:55,966 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:14:55,967 [DEBUG][       Thread-610236][   transport.py][1871] : userauth is OK
2025-07-01 16:14:55,980 [ INFO][       Thread-610236][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:14:55,981 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:14:56,607 [DEBUG][       Thread-610236][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:14:56,608 [DEBUG][       Thread-610236][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:14:56,649 [DEBUG][       Thread-610236][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:14:56,649 [DEBUG][       Thread-610236][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:14:56,660 [DEBUG][       Thread-610236][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:14:56,673 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:14:56,673 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:14:56,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:14:56,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:14:56,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:14:56,685 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:14:56,685 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:14:56,686 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:14:56,686 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.592995 -999.00  +13.70  37.05     51   +3.70 1 1 2 1 1   887    0 10.62 19.44 ----- 42.3 37.0 34.0 55.7 15.3 -23.8 14.9 -23.8 15.0 -22.8 15.4 -22.6
2025-07-01 16:14:56,686 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:14:56,686 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:14:56,686 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.592995
2025-07-01 16:14:56,687 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:14:56,687 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:14:56,687 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:14:56,687 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:14:56,687 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 16:14:56,688 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:14:21', tmtdew=11.38, humidity=46.18, cloud=0.0, wind=28.11, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:13:54.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:14:56,689 [DEBUG][       Thread-610236][   transport.py][1871] : EOF in transport thread
2025-07-01 16:14:56,770 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:14:56,781 [DEBUG][       Thread-610239][   transport.py][1871] : starting thread (client mode): 0x8170b80
2025-07-01 16:14:56,781 [DEBUG][       Thread-610239][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:14:56,795 [DEBUG][       Thread-610239][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:14:56,796 [ INFO][       Thread-610239][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:14:56,803 [DEBUG][       Thread-610239][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:14:56,803 [DEBUG][       Thread-610239][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:14:56,803 [DEBUG][       Thread-610239][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:14:56,803 [DEBUG][       Thread-610239][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:14:56,803 [DEBUG][       Thread-610239][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:14:56,803 [DEBUG][       Thread-610239][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:14:56,803 [DEBUG][       Thread-610239][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:14:56,803 [DEBUG][       Thread-610239][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:14:56,803 [DEBUG][       Thread-610239][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:14:56,803 [DEBUG][       Thread-610239][   transport.py][1871] : client lang: <none>
2025-07-01 16:14:56,803 [DEBUG][       Thread-610239][   transport.py][1871] : server lang: <none>
2025-07-01 16:14:56,803 [DEBUG][       Thread-610239][   transport.py][1871] : kex follows: False
2025-07-01 16:14:56,803 [DEBUG][       Thread-610239][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:14:56,803 [DEBUG][       Thread-610239][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:14:56,804 [DEBUG][       Thread-610239][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:14:56,804 [DEBUG][       Thread-610239][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:14:56,804 [DEBUG][       Thread-610239][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:14:56,804 [DEBUG][       Thread-610239][   transport.py][1871] : Compression: none
2025-07-01 16:14:56,804 [DEBUG][       Thread-610239][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:14:56,867 [DEBUG][       Thread-610239][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:14:56,868 [DEBUG][       Thread-610239][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:14:56,869 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:14:56,869 [DEBUG][       Thread-610239][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:14:56,870 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:14:56,924 [DEBUG][       Thread-610239][   transport.py][1871] : userauth is OK
2025-07-01 16:14:56,925 [DEBUG][       Thread-610239][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:14:56,925 [DEBUG][       Thread-610239][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:14:56,925 [DEBUG][       Thread-610239][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:14:56,925 [DEBUG][       Thread-610239][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:14:56,943 [ INFO][       Thread-610239][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:14:56,944 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:14:56,944 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:14:57,710 [DEBUG][Thread-610241 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:14:57,935 [DEBUG][       Thread-610239][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:14:57,935 [DEBUG][       Thread-610239][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:14:57,984 [DEBUG][       Thread-610239][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:14:57,984 [DEBUG][       Thread-610239][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:14:57,993 [DEBUG][       Thread-610239][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:14:58,008 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:14:58,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')
2025-07-01 16:14:58,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-07-01 16:14:58,026 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:14:58,026 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:14:58,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:14:58,035 [DEBUG][       Thread-610239][   transport.py][1871] : EOF in transport thread
2025-07-01 16:15:06,733 [DEBUG][Thread-610242 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:15:08,037 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:15:08,037 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:15:08,038 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:15:08,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-07-01 16:15:08,513 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 14, 53), 11.36, 46.25, 0.0, 31.56, 13.9, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:15:08,514 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:14:53
2025-07-01 16:15:08,598 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:15:08,603 [DEBUG][       Thread-610243][   transport.py][1871] : starting thread (client mode): 0x8173430
2025-07-01 16:15:08,603 [DEBUG][       Thread-610243][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:15:08,623 [DEBUG][       Thread-610243][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:15:08,623 [ INFO][       Thread-610243][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:15:08,625 [DEBUG][       Thread-610243][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:15:08,625 [DEBUG][       Thread-610243][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:15:08,625 [DEBUG][       Thread-610243][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:15:08,625 [DEBUG][       Thread-610243][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:15:08,625 [DEBUG][       Thread-610243][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:15:08,625 [DEBUG][       Thread-610243][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:15:08,625 [DEBUG][       Thread-610243][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:15:08,625 [DEBUG][       Thread-610243][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:15:08,625 [DEBUG][       Thread-610243][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:15:08,625 [DEBUG][       Thread-610243][   transport.py][1871] : client lang: <none>
2025-07-01 16:15:08,625 [DEBUG][       Thread-610243][   transport.py][1871] : server lang: <none>
2025-07-01 16:15:08,625 [DEBUG][       Thread-610243][   transport.py][1871] : kex follows: False
2025-07-01 16:15:08,625 [DEBUG][       Thread-610243][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:15:08,625 [DEBUG][       Thread-610243][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:15:08,625 [DEBUG][       Thread-610243][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:15:08,625 [DEBUG][       Thread-610243][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:15:08,625 [DEBUG][       Thread-610243][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:15:08,625 [DEBUG][       Thread-610243][   transport.py][1871] : Compression: none
2025-07-01 16:15:08,625 [DEBUG][       Thread-610243][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:15:08,632 [DEBUG][       Thread-610243][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:15:08,633 [DEBUG][       Thread-610243][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:15:08,633 [DEBUG][       Thread-610243][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:15:08,633 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:15:08,633 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:15:08,633 [DEBUG][       Thread-610243][   transport.py][1871] : userauth is OK
2025-07-01 16:15:08,646 [ INFO][       Thread-610243][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:15:08,646 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:15:09,335 [DEBUG][       Thread-610243][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:15:09,336 [DEBUG][       Thread-610243][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:15:09,377 [DEBUG][       Thread-610243][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:15:09,377 [DEBUG][       Thread-610243][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:15:09,380 [DEBUG][       Thread-610243][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:15:09,393 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:15:09,393 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:15:09,395 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:15:09,397 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:15:09,403 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:15:09,404 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:15:09,404 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:15:09,405 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:15:09,405 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.593689 -999.00  +13.60  32.93     51   +3.70 1 1 2 1 1   887    0 10.36 14.28 ----- 40.1 32.9 31.0 45.6 15.2 -23.7 14.9 -23.6 15.0 -22.6 15.3 -22.4
2025-07-01 16:15:09,405 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:15:09,405 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:15:09,405 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.593689
2025-07-01 16:15:09,406 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:15:09,406 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:15:09,406 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:15:09,406 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:15:09,406 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 16:15:09,406 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:14:53', tmtdew=11.36, humidity=46.25, cloud=0.0, wind=31.56, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:14:54.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:15:09,407 [DEBUG][       Thread-610243][   transport.py][1871] : EOF in transport thread
2025-07-01 16:15:09,485 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:15:09,495 [DEBUG][       Thread-610246][   transport.py][1871] : starting thread (client mode): 0x81c9300
2025-07-01 16:15:09,495 [DEBUG][       Thread-610246][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:15:09,511 [DEBUG][       Thread-610246][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:15:09,511 [ INFO][       Thread-610246][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:15:09,519 [DEBUG][       Thread-610246][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:15:09,519 [DEBUG][       Thread-610246][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:15:09,519 [DEBUG][       Thread-610246][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:15:09,519 [DEBUG][       Thread-610246][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:15:09,519 [DEBUG][       Thread-610246][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:15:09,519 [DEBUG][       Thread-610246][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:15:09,519 [DEBUG][       Thread-610246][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:15:09,519 [DEBUG][       Thread-610246][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:15:09,519 [DEBUG][       Thread-610246][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:15:09,519 [DEBUG][       Thread-610246][   transport.py][1871] : client lang: <none>
2025-07-01 16:15:09,519 [DEBUG][       Thread-610246][   transport.py][1871] : server lang: <none>
2025-07-01 16:15:09,519 [DEBUG][       Thread-610246][   transport.py][1871] : kex follows: False
2025-07-01 16:15:09,519 [DEBUG][       Thread-610246][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:15:09,519 [DEBUG][       Thread-610246][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:15:09,519 [DEBUG][       Thread-610246][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:15:09,519 [DEBUG][       Thread-610246][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:15:09,520 [DEBUG][       Thread-610246][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:15:09,520 [DEBUG][       Thread-610246][   transport.py][1871] : Compression: none
2025-07-01 16:15:09,520 [DEBUG][       Thread-610246][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:15:09,577 [DEBUG][       Thread-610246][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:15:09,577 [DEBUG][       Thread-610246][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:15:09,578 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:15:09,579 [DEBUG][       Thread-610246][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:15:09,579 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:15:09,634 [DEBUG][       Thread-610246][   transport.py][1871] : userauth is OK
2025-07-01 16:15:09,635 [DEBUG][       Thread-610246][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:15:09,635 [DEBUG][       Thread-610246][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:15:09,635 [DEBUG][       Thread-610246][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:15:09,635 [DEBUG][       Thread-610246][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:15:09,658 [ INFO][       Thread-610246][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:15:09,658 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:15:09,659 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:15:10,718 [DEBUG][       Thread-610246][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:15:10,719 [DEBUG][       Thread-610246][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:15:10,768 [DEBUG][       Thread-610246][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:15:10,768 [DEBUG][       Thread-610246][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:15:10,778 [DEBUG][       Thread-610246][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:15:10,787 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:15:10,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-07-01 16:15:10,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-07-01 16:15:10,805 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:15:10,805 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:15:10,805 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:15:10,814 [DEBUG][       Thread-610246][   transport.py][1871] : EOF in transport thread
2025-07-01 16:15:15,755 [DEBUG][Thread-610248 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:15:20,816 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:15:20,816 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:15:20,816 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:15:20,818 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:15:21,309 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 14, 53), 11.36, 46.25, 0.0, 31.56, 13.9, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:15:21,309 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:14:53
2025-07-01 16:15:21,401 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:15:21,405 [DEBUG][       Thread-610249][   transport.py][1871] : starting thread (client mode): 0x81a5480
2025-07-01 16:15:21,405 [DEBUG][       Thread-610249][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:15:21,425 [DEBUG][       Thread-610249][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:15:21,425 [ INFO][       Thread-610249][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:15:21,428 [DEBUG][       Thread-610249][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:15:21,428 [DEBUG][       Thread-610249][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:15:21,428 [DEBUG][       Thread-610249][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:15:21,428 [DEBUG][       Thread-610249][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:15:21,428 [DEBUG][       Thread-610249][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:15:21,428 [DEBUG][       Thread-610249][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:15:21,428 [DEBUG][       Thread-610249][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:15:21,428 [DEBUG][       Thread-610249][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:15:21,428 [DEBUG][       Thread-610249][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:15:21,428 [DEBUG][       Thread-610249][   transport.py][1871] : client lang: <none>
2025-07-01 16:15:21,428 [DEBUG][       Thread-610249][   transport.py][1871] : server lang: <none>
2025-07-01 16:15:21,428 [DEBUG][       Thread-610249][   transport.py][1871] : kex follows: False
2025-07-01 16:15:21,428 [DEBUG][       Thread-610249][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:15:21,428 [DEBUG][       Thread-610249][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:15:21,428 [DEBUG][       Thread-610249][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:15:21,428 [DEBUG][       Thread-610249][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:15:21,428 [DEBUG][       Thread-610249][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:15:21,428 [DEBUG][       Thread-610249][   transport.py][1871] : Compression: none
2025-07-01 16:15:21,428 [DEBUG][       Thread-610249][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:15:21,447 [DEBUG][       Thread-610249][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:15:21,447 [DEBUG][       Thread-610249][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:15:21,447 [DEBUG][       Thread-610249][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:15:21,447 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:15:21,448 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:15:21,448 [DEBUG][       Thread-610249][   transport.py][1871] : userauth is OK
2025-07-01 16:15:21,472 [ INFO][       Thread-610249][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:15:21,472 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:15:22,134 [DEBUG][       Thread-610249][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:15:22,134 [DEBUG][       Thread-610249][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:15:22,176 [DEBUG][       Thread-610249][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:15:22,177 [DEBUG][       Thread-610249][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:15:22,179 [DEBUG][       Thread-610249][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:15:22,192 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:15:22,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:15:22,193 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:15:22,194 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:15:22,197 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:15:22,198 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:15:22,198 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:15:22,198 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:15:22,198 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.593689 -999.00  +13.60  32.93     51   +3.70 1 1 2 1 1   887    0 10.36 14.28 ----- 40.1 32.9 31.0 45.6 15.2 -23.7 14.9 -23.6 15.0 -22.6 15.3 -22.4
2025-07-01 16:15:22,198 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:15:22,198 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:15:22,198 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.593689
2025-07-01 16:15:22,198 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:15:22,198 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:15:22,198 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:15:22,198 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:15:22,198 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 16:15:22,198 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:14:53', tmtdew=11.36, humidity=46.25, cloud=0.0, wind=31.56, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:14:54.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:15:22,199 [DEBUG][       Thread-610249][   transport.py][1871] : EOF in transport thread
2025-07-01 16:15:22,273 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:15:22,282 [DEBUG][       Thread-610252][   transport.py][1871] : starting thread (client mode): 0x81732e0
2025-07-01 16:15:22,282 [DEBUG][       Thread-610252][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:15:22,297 [DEBUG][       Thread-610252][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:15:22,297 [ INFO][       Thread-610252][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:15:22,304 [DEBUG][       Thread-610252][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:15:22,304 [DEBUG][       Thread-610252][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:15:22,304 [DEBUG][       Thread-610252][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:15:22,304 [DEBUG][       Thread-610252][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:15:22,304 [DEBUG][       Thread-610252][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:15:22,304 [DEBUG][       Thread-610252][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:15:22,304 [DEBUG][       Thread-610252][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:15:22,304 [DEBUG][       Thread-610252][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:15:22,304 [DEBUG][       Thread-610252][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:15:22,304 [DEBUG][       Thread-610252][   transport.py][1871] : client lang: <none>
2025-07-01 16:15:22,304 [DEBUG][       Thread-610252][   transport.py][1871] : server lang: <none>
2025-07-01 16:15:22,304 [DEBUG][       Thread-610252][   transport.py][1871] : kex follows: False
2025-07-01 16:15:22,304 [DEBUG][       Thread-610252][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:15:22,304 [DEBUG][       Thread-610252][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:15:22,304 [DEBUG][       Thread-610252][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:15:22,304 [DEBUG][       Thread-610252][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:15:22,304 [DEBUG][       Thread-610252][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:15:22,304 [DEBUG][       Thread-610252][   transport.py][1871] : Compression: none
2025-07-01 16:15:22,304 [DEBUG][       Thread-610252][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:15:22,359 [DEBUG][       Thread-610252][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:15:22,360 [DEBUG][       Thread-610252][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:15:22,360 [DEBUG][       Thread-610252][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:15:22,360 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:15:22,360 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:15:22,417 [DEBUG][       Thread-610252][   transport.py][1871] : userauth is OK
2025-07-01 16:15:22,417 [DEBUG][       Thread-610252][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:15:22,417 [DEBUG][       Thread-610252][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:15:22,417 [DEBUG][       Thread-610252][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:15:22,417 [DEBUG][       Thread-610252][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:15:22,431 [ INFO][       Thread-610252][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:15:22,431 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:15:22,431 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:15:23,465 [DEBUG][       Thread-610252][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:15:23,465 [DEBUG][       Thread-610252][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:15:23,515 [DEBUG][       Thread-610252][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:15:23,515 [DEBUG][       Thread-610252][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:15:23,526 [DEBUG][       Thread-610252][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:15:23,538 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:15:23,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')
2025-07-01 16:15:23,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-07-01 16:15:23,554 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:15:23,554 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:15:23,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:15:23,562 [DEBUG][       Thread-610252][   transport.py][1871] : EOF in transport thread
2025-07-01 16:15:24,787 [DEBUG][Thread-610254 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:15:33,564 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:15:33,565 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:15:33,565 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:15:33,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-07-01 16:15:33,806 [DEBUG][Thread-610255 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:15:34,051 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 15, 25), 11.41, 46.1, 0.0, 28.39, 13.88, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:15:34,051 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:15:25
2025-07-01 16:15:34,136 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:15:34,140 [DEBUG][       Thread-610256][   transport.py][1871] : starting thread (client mode): 0x81a4430
2025-07-01 16:15:34,140 [DEBUG][       Thread-610256][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:15:34,161 [DEBUG][       Thread-610256][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:15:34,161 [ INFO][       Thread-610256][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:15:34,162 [DEBUG][       Thread-610256][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:15:34,162 [DEBUG][       Thread-610256][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:15:34,162 [DEBUG][       Thread-610256][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:15:34,162 [DEBUG][       Thread-610256][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:15:34,162 [DEBUG][       Thread-610256][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:15:34,162 [DEBUG][       Thread-610256][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:15:34,162 [DEBUG][       Thread-610256][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:15:34,162 [DEBUG][       Thread-610256][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:15:34,162 [DEBUG][       Thread-610256][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:15:34,162 [DEBUG][       Thread-610256][   transport.py][1871] : client lang: <none>
2025-07-01 16:15:34,162 [DEBUG][       Thread-610256][   transport.py][1871] : server lang: <none>
2025-07-01 16:15:34,163 [DEBUG][       Thread-610256][   transport.py][1871] : kex follows: False
2025-07-01 16:15:34,163 [DEBUG][       Thread-610256][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:15:34,163 [DEBUG][       Thread-610256][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:15:34,163 [DEBUG][       Thread-610256][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:15:34,163 [DEBUG][       Thread-610256][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:15:34,163 [DEBUG][       Thread-610256][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:15:34,163 [DEBUG][       Thread-610256][   transport.py][1871] : Compression: none
2025-07-01 16:15:34,163 [DEBUG][       Thread-610256][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:15:34,172 [DEBUG][       Thread-610256][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:15:34,172 [DEBUG][       Thread-610256][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:15:34,173 [DEBUG][       Thread-610256][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:15:34,173 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:15:34,173 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:15:34,174 [DEBUG][       Thread-610256][   transport.py][1871] : userauth is OK
2025-07-01 16:15:34,200 [ INFO][       Thread-610256][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:15:34,200 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:15:34,820 [DEBUG][       Thread-610256][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:15:34,820 [DEBUG][       Thread-610256][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:15:34,861 [DEBUG][       Thread-610256][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:15:34,861 [DEBUG][       Thread-610256][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:15:34,863 [DEBUG][       Thread-610256][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:15:34,877 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:15:34,878 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:15:34,880 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:15:34,882 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:15:34,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:15:34,890 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:15:34,890 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:15:34,891 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:15:34,891 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.594036 -999.00  +13.60  34.88     51   +3.80 1 1 2 1 1   887    0 10.28 12.52 ----- 35.4 34.9 33.0 42.4 15.2 -23.7 14.9 -23.6 14.9 -22.6 15.3 -22.1
2025-07-01 16:15:34,891 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:15:34,891 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:15:34,891 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.594036
2025-07-01 16:15:34,892 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:15:34,892 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:15:34,893 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:15:34,893 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:15:34,893 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 16:15:34,893 [DEBUG][       Thread-610256][   transport.py][1871] : EOF in transport thread
2025-07-01 16:15:34,893 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:15:25', tmtdew=11.41, humidity=46.1, cloud=0.0, wind=28.39, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:15:24.710', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:15:34,978 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:15:34,989 [DEBUG][       Thread-610259][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 16:15:34,989 [DEBUG][       Thread-610259][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:15:35,005 [DEBUG][       Thread-610259][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:15:35,005 [ INFO][       Thread-610259][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:15:35,013 [DEBUG][       Thread-610259][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:15:35,014 [DEBUG][       Thread-610259][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:15:35,014 [DEBUG][       Thread-610259][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:15:35,014 [DEBUG][       Thread-610259][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:15:35,014 [DEBUG][       Thread-610259][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:15:35,014 [DEBUG][       Thread-610259][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:15:35,014 [DEBUG][       Thread-610259][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:15:35,014 [DEBUG][       Thread-610259][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:15:35,014 [DEBUG][       Thread-610259][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:15:35,014 [DEBUG][       Thread-610259][   transport.py][1871] : client lang: <none>
2025-07-01 16:15:35,014 [DEBUG][       Thread-610259][   transport.py][1871] : server lang: <none>
2025-07-01 16:15:35,014 [DEBUG][       Thread-610259][   transport.py][1871] : kex follows: False
2025-07-01 16:15:35,014 [DEBUG][       Thread-610259][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:15:35,014 [DEBUG][       Thread-610259][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:15:35,014 [DEBUG][       Thread-610259][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:15:35,014 [DEBUG][       Thread-610259][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:15:35,014 [DEBUG][       Thread-610259][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:15:35,014 [DEBUG][       Thread-610259][   transport.py][1871] : Compression: none
2025-07-01 16:15:35,014 [DEBUG][       Thread-610259][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:15:35,074 [DEBUG][       Thread-610259][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:15:35,075 [DEBUG][       Thread-610259][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:15:35,075 [DEBUG][       Thread-610259][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:15:35,076 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:15:35,077 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:15:35,130 [DEBUG][       Thread-610259][   transport.py][1871] : userauth is OK
2025-07-01 16:15:35,131 [DEBUG][       Thread-610259][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:15:35,131 [DEBUG][       Thread-610259][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:15:35,131 [DEBUG][       Thread-610259][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:15:35,131 [DEBUG][       Thread-610259][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:15:35,150 [ INFO][       Thread-610259][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:15:35,150 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:15:35,151 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:15:36,197 [DEBUG][       Thread-610259][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:15:36,197 [DEBUG][       Thread-610259][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:15:36,249 [DEBUG][       Thread-610259][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:15:36,249 [DEBUG][       Thread-610259][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:15:36,259 [DEBUG][       Thread-610259][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:15:36,267 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:15:36,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-07-01 16:15:36,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-07-01 16:15:36,285 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:15:36,285 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:15:36,286 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:15:36,294 [DEBUG][       Thread-610259][   transport.py][1871] : EOF in transport thread
2025-07-01 16:15:38,303 [DEBUG][Thread-610261 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:15:42,829 [DEBUG][Thread-610262 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:15:46,296 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:15:46,297 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:15:46,297 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:15:46,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-07-01 16:15:46,776 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 15, 25), 11.41, 46.1, 0.0, 28.39, 13.88, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:15:46,776 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:15:25
2025-07-01 16:15:46,861 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:15:46,865 [DEBUG][       Thread-610263][   transport.py][1871] : starting thread (client mode): 0x81a40a0
2025-07-01 16:15:46,865 [DEBUG][       Thread-610263][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:15:46,885 [DEBUG][       Thread-610263][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:15:46,885 [ INFO][       Thread-610263][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:15:46,888 [DEBUG][       Thread-610263][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:15:46,888 [DEBUG][       Thread-610263][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:15:46,888 [DEBUG][       Thread-610263][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:15:46,888 [DEBUG][       Thread-610263][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:15:46,889 [DEBUG][       Thread-610263][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:15:46,889 [DEBUG][       Thread-610263][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:15:46,889 [DEBUG][       Thread-610263][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:15:46,889 [DEBUG][       Thread-610263][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:15:46,889 [DEBUG][       Thread-610263][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:15:46,889 [DEBUG][       Thread-610263][   transport.py][1871] : client lang: <none>
2025-07-01 16:15:46,889 [DEBUG][       Thread-610263][   transport.py][1871] : server lang: <none>
2025-07-01 16:15:46,889 [DEBUG][       Thread-610263][   transport.py][1871] : kex follows: False
2025-07-01 16:15:46,889 [DEBUG][       Thread-610263][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:15:46,889 [DEBUG][       Thread-610263][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:15:46,889 [DEBUG][       Thread-610263][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:15:46,889 [DEBUG][       Thread-610263][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:15:46,889 [DEBUG][       Thread-610263][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:15:46,889 [DEBUG][       Thread-610263][   transport.py][1871] : Compression: none
2025-07-01 16:15:46,889 [DEBUG][       Thread-610263][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:15:46,909 [DEBUG][       Thread-610263][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:15:46,909 [DEBUG][       Thread-610263][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:15:46,910 [DEBUG][       Thread-610263][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:15:46,910 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:15:46,910 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:15:46,911 [DEBUG][       Thread-610263][   transport.py][1871] : userauth is OK
2025-07-01 16:15:46,936 [ INFO][       Thread-610263][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:15:46,936 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:15:47,516 [DEBUG][       Thread-610263][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:15:47,517 [DEBUG][       Thread-610263][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:15:47,557 [DEBUG][       Thread-610263][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:15:47,557 [DEBUG][       Thread-610263][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:15:47,559 [DEBUG][       Thread-610263][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:15:47,572 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:15:47,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:15:47,574 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:15:47,576 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:15:47,582 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:15:47,584 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:15:47,584 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:15:47,585 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:15:47,585 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.594036 -999.00  +13.60  34.88     51   +3.80 1 1 2 1 1   887    0 10.28 12.52 ----- 35.4 34.9 33.0 42.4 15.2 -23.7 14.9 -23.6 14.9 -22.6 15.3 -22.1
2025-07-01 16:15:47,585 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:15:47,585 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:15:47,585 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.594036
2025-07-01 16:15:47,586 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:15:47,586 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:15:47,586 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:15:47,586 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:15:47,587 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 16:15:47,587 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:15:25', tmtdew=11.41, humidity=46.1, cloud=0.0, wind=28.39, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:15:24.710', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:15:47,587 [DEBUG][       Thread-610263][   transport.py][1871] : EOF in transport thread
2025-07-01 16:15:47,670 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:15:47,680 [DEBUG][       Thread-610266][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 16:15:47,680 [DEBUG][       Thread-610266][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:15:47,702 [DEBUG][       Thread-610266][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:15:47,703 [ INFO][       Thread-610266][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:15:47,710 [DEBUG][       Thread-610266][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:15:47,710 [DEBUG][       Thread-610266][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:15:47,710 [DEBUG][       Thread-610266][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:15:47,710 [DEBUG][       Thread-610266][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:15:47,710 [DEBUG][       Thread-610266][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:15:47,710 [DEBUG][       Thread-610266][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:15:47,710 [DEBUG][       Thread-610266][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:15:47,710 [DEBUG][       Thread-610266][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:15:47,711 [DEBUG][       Thread-610266][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:15:47,711 [DEBUG][       Thread-610266][   transport.py][1871] : client lang: <none>
2025-07-01 16:15:47,711 [DEBUG][       Thread-610266][   transport.py][1871] : server lang: <none>
2025-07-01 16:15:47,711 [DEBUG][       Thread-610266][   transport.py][1871] : kex follows: False
2025-07-01 16:15:47,711 [DEBUG][       Thread-610266][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:15:47,711 [DEBUG][       Thread-610266][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:15:47,711 [DEBUG][       Thread-610266][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:15:47,711 [DEBUG][       Thread-610266][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:15:47,711 [DEBUG][       Thread-610266][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:15:47,711 [DEBUG][       Thread-610266][   transport.py][1871] : Compression: none
2025-07-01 16:15:47,711 [DEBUG][       Thread-610266][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:15:47,774 [DEBUG][       Thread-610266][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:15:47,774 [DEBUG][       Thread-610266][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:15:47,775 [DEBUG][       Thread-610266][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:15:47,775 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:15:47,776 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:15:47,836 [DEBUG][       Thread-610266][   transport.py][1871] : userauth is OK
2025-07-01 16:15:47,836 [DEBUG][       Thread-610266][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:15:47,837 [DEBUG][       Thread-610266][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:15:47,837 [DEBUG][       Thread-610266][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:15:47,837 [DEBUG][       Thread-610266][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:15:47,861 [ INFO][       Thread-610266][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:15:47,861 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:15:47,862 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:15:48,935 [DEBUG][       Thread-610266][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:15:48,935 [DEBUG][       Thread-610266][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:15:48,984 [DEBUG][       Thread-610266][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:15:48,984 [DEBUG][       Thread-610266][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:15:48,994 [DEBUG][       Thread-610266][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:15:49,003 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:15:49,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-07-01 16:15:49,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-07-01 16:15:49,022 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:15:49,022 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:15:49,023 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:15:49,037 [DEBUG][       Thread-610266][   transport.py][1871] : EOF in transport thread
2025-07-01 16:15:51,868 [DEBUG][Thread-610268 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:15:59,032 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:15:59,032 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:15:59,032 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:15:59,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-07-01 16:15:59,547 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 15, 25), 11.41, 46.1, 0.0, 28.39, 13.88, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:15:59,547 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:15:25
2025-07-01 16:15:59,640 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:15:59,646 [DEBUG][       Thread-610269][   transport.py][1871] : starting thread (client mode): 0x81a4d00
2025-07-01 16:15:59,646 [DEBUG][       Thread-610269][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:15:59,666 [DEBUG][       Thread-610269][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:15:59,666 [ INFO][       Thread-610269][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:15:59,669 [DEBUG][       Thread-610269][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:15:59,669 [DEBUG][       Thread-610269][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:15:59,669 [DEBUG][       Thread-610269][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:15:59,669 [DEBUG][       Thread-610269][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:15:59,669 [DEBUG][       Thread-610269][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:15:59,669 [DEBUG][       Thread-610269][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:15:59,669 [DEBUG][       Thread-610269][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:15:59,669 [DEBUG][       Thread-610269][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:15:59,669 [DEBUG][       Thread-610269][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:15:59,669 [DEBUG][       Thread-610269][   transport.py][1871] : client lang: <none>
2025-07-01 16:15:59,669 [DEBUG][       Thread-610269][   transport.py][1871] : server lang: <none>
2025-07-01 16:15:59,669 [DEBUG][       Thread-610269][   transport.py][1871] : kex follows: False
2025-07-01 16:15:59,669 [DEBUG][       Thread-610269][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:15:59,669 [DEBUG][       Thread-610269][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:15:59,669 [DEBUG][       Thread-610269][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:15:59,669 [DEBUG][       Thread-610269][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:15:59,669 [DEBUG][       Thread-610269][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:15:59,669 [DEBUG][       Thread-610269][   transport.py][1871] : Compression: none
2025-07-01 16:15:59,669 [DEBUG][       Thread-610269][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:15:59,684 [DEBUG][       Thread-610269][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:15:59,684 [DEBUG][       Thread-610269][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:15:59,684 [DEBUG][       Thread-610269][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:15:59,684 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:15:59,684 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:15:59,685 [DEBUG][       Thread-610269][   transport.py][1871] : userauth is OK
2025-07-01 16:15:59,709 [ INFO][       Thread-610269][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:15:59,710 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:16:00,438 [DEBUG][       Thread-610269][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:16:00,438 [DEBUG][       Thread-610269][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:16:00,480 [DEBUG][       Thread-610269][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:16:00,480 [DEBUG][       Thread-610269][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:16:00,483 [DEBUG][       Thread-610269][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:16:00,490 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:16:00,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:16:00,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:16:00,491 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:16:00,493 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:16:00,494 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:16:00,494 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:16:00,494 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:16:00,494 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.594036 -999.00  +13.60  34.88     51   +3.80 1 1 2 1 1   887    0 10.28 12.52 ----- 35.4 34.9 33.0 42.4 15.2 -23.7 14.9 -23.6 14.9 -22.6 15.3 -22.1
2025-07-01 16:16:00,494 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:16:00,494 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:16:00,494 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.594036
2025-07-01 16:16:00,494 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:16:00,494 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:16:00,494 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:16:00,494 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:16:00,494 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 16:16:00,494 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:15:25', tmtdew=11.41, humidity=46.1, cloud=0.0, wind=28.39, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:15:24.710', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:16:00,495 [DEBUG][       Thread-610269][   transport.py][1871] : EOF in transport thread
2025-07-01 16:16:00,568 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:16:00,583 [DEBUG][       Thread-610272][   transport.py][1871] : starting thread (client mode): 0x81c80d0
2025-07-01 16:16:00,583 [DEBUG][       Thread-610272][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:16:00,597 [DEBUG][       Thread-610272][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:16:00,597 [ INFO][       Thread-610272][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:16:00,609 [DEBUG][       Thread-610272][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:16:00,609 [DEBUG][       Thread-610272][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:16:00,609 [DEBUG][       Thread-610272][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:16:00,609 [DEBUG][       Thread-610272][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:16:00,609 [DEBUG][       Thread-610272][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:16:00,609 [DEBUG][       Thread-610272][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:16:00,609 [DEBUG][       Thread-610272][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:16:00,609 [DEBUG][       Thread-610272][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:16:00,609 [DEBUG][       Thread-610272][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:16:00,609 [DEBUG][       Thread-610272][   transport.py][1871] : client lang: <none>
2025-07-01 16:16:00,609 [DEBUG][       Thread-610272][   transport.py][1871] : server lang: <none>
2025-07-01 16:16:00,609 [DEBUG][       Thread-610272][   transport.py][1871] : kex follows: False
2025-07-01 16:16:00,609 [DEBUG][       Thread-610272][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:16:00,609 [DEBUG][       Thread-610272][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:16:00,609 [DEBUG][       Thread-610272][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:16:00,609 [DEBUG][       Thread-610272][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:16:00,609 [DEBUG][       Thread-610272][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:16:00,609 [DEBUG][       Thread-610272][   transport.py][1871] : Compression: none
2025-07-01 16:16:00,609 [DEBUG][       Thread-610272][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:16:00,661 [DEBUG][       Thread-610272][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:16:00,661 [DEBUG][       Thread-610272][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:16:00,662 [DEBUG][       Thread-610272][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:16:00,662 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:16:00,662 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:16:00,719 [DEBUG][       Thread-610272][   transport.py][1871] : userauth is OK
2025-07-01 16:16:00,719 [DEBUG][       Thread-610272][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:16:00,719 [DEBUG][       Thread-610272][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:16:00,719 [DEBUG][       Thread-610272][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:16:00,719 [DEBUG][       Thread-610272][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:16:00,733 [ INFO][       Thread-610272][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:16:00,733 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:16:00,733 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:16:00,886 [DEBUG][Thread-610274 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:16:01,799 [DEBUG][       Thread-610272][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:16:01,799 [DEBUG][       Thread-610272][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:16:01,849 [DEBUG][       Thread-610272][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:16:01,849 [DEBUG][       Thread-610272][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:16:01,857 [DEBUG][       Thread-610272][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:16:01,865 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:16:01,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-07-01 16:16:01,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-07-01 16:16:01,881 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:16:01,881 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:16:01,881 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:16:01,890 [DEBUG][       Thread-610272][   transport.py][1871] : EOF in transport thread
2025-07-01 16:16:09,907 [DEBUG][Thread-610275 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:16:11,892 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:16:11,892 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:16:11,892 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:16:11,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-07-01 16:16:12,383 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 15, 56), 11.41, 46.11, 0.0, 32.73, 13.88, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:16:12,383 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:15:56
2025-07-01 16:16:12,467 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:16:12,471 [DEBUG][       Thread-610276][   transport.py][1871] : starting thread (client mode): 0x81e5c60
2025-07-01 16:16:12,472 [DEBUG][       Thread-610276][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:16:12,492 [DEBUG][       Thread-610276][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:16:12,492 [ INFO][       Thread-610276][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:16:12,495 [DEBUG][       Thread-610276][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:16:12,496 [DEBUG][       Thread-610276][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:16:12,496 [DEBUG][       Thread-610276][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:16:12,496 [DEBUG][       Thread-610276][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:16:12,496 [DEBUG][       Thread-610276][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:16:12,496 [DEBUG][       Thread-610276][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:16:12,496 [DEBUG][       Thread-610276][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:16:12,496 [DEBUG][       Thread-610276][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:16:12,496 [DEBUG][       Thread-610276][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:16:12,496 [DEBUG][       Thread-610276][   transport.py][1871] : client lang: <none>
2025-07-01 16:16:12,496 [DEBUG][       Thread-610276][   transport.py][1871] : server lang: <none>
2025-07-01 16:16:12,496 [DEBUG][       Thread-610276][   transport.py][1871] : kex follows: False
2025-07-01 16:16:12,496 [DEBUG][       Thread-610276][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:16:12,496 [DEBUG][       Thread-610276][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:16:12,496 [DEBUG][       Thread-610276][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:16:12,496 [DEBUG][       Thread-610276][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:16:12,496 [DEBUG][       Thread-610276][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:16:12,496 [DEBUG][       Thread-610276][   transport.py][1871] : Compression: none
2025-07-01 16:16:12,496 [DEBUG][       Thread-610276][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:16:12,512 [DEBUG][       Thread-610276][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:16:12,513 [DEBUG][       Thread-610276][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:16:12,513 [DEBUG][       Thread-610276][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:16:12,513 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:16:12,513 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:16:12,514 [DEBUG][       Thread-610276][   transport.py][1871] : userauth is OK
2025-07-01 16:16:12,527 [ INFO][       Thread-610276][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:16:12,528 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:16:13,172 [DEBUG][       Thread-610276][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:16:13,172 [DEBUG][       Thread-610276][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:16:13,213 [DEBUG][       Thread-610276][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:16:13,213 [DEBUG][       Thread-610276][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:16:13,216 [DEBUG][       Thread-610276][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:16:13,224 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:16:13,224 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:16:13,228 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:16:13,232 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:16:13,242 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:16:13,243 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:16:13,244 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:16:13,244 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:16:13,244 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.594383 -999.00  +13.60  30.84     51   +3.80 1 1 2 1 1   887    0 10.36 9.82 ----- 33.5 30.8 12.4 46.1 15.2 -23.5 14.8 -23.5 14.9 -22.7 15.3 -22.1
2025-07-01 16:16:13,244 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:16:13,244 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:16:13,245 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.594383
2025-07-01 16:16:13,245 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:16:13,246 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:16:13,246 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:16:13,246 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:16:13,246 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 16:16:13,246 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:15:56', tmtdew=11.41, humidity=46.11, cloud=0.0, wind=32.73, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:15:54.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:16:13,247 [DEBUG][       Thread-610276][   transport.py][1871] : EOF in transport thread
2025-07-01 16:16:13,330 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:16:13,339 [DEBUG][       Thread-610279][   transport.py][1871] : starting thread (client mode): 0x75aad10
2025-07-01 16:16:13,339 [DEBUG][       Thread-610279][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:16:13,354 [DEBUG][       Thread-610279][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:16:13,354 [ INFO][       Thread-610279][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:16:13,361 [DEBUG][       Thread-610279][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:16:13,361 [DEBUG][       Thread-610279][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:16:13,361 [DEBUG][       Thread-610279][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:16:13,361 [DEBUG][       Thread-610279][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:16:13,361 [DEBUG][       Thread-610279][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:16:13,361 [DEBUG][       Thread-610279][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:16:13,362 [DEBUG][       Thread-610279][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:16:13,362 [DEBUG][       Thread-610279][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:16:13,362 [DEBUG][       Thread-610279][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:16:13,362 [DEBUG][       Thread-610279][   transport.py][1871] : client lang: <none>
2025-07-01 16:16:13,362 [DEBUG][       Thread-610279][   transport.py][1871] : server lang: <none>
2025-07-01 16:16:13,362 [DEBUG][       Thread-610279][   transport.py][1871] : kex follows: False
2025-07-01 16:16:13,362 [DEBUG][       Thread-610279][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:16:13,362 [DEBUG][       Thread-610279][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:16:13,362 [DEBUG][       Thread-610279][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:16:13,362 [DEBUG][       Thread-610279][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:16:13,362 [DEBUG][       Thread-610279][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:16:13,362 [DEBUG][       Thread-610279][   transport.py][1871] : Compression: none
2025-07-01 16:16:13,362 [DEBUG][       Thread-610279][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:16:13,419 [DEBUG][       Thread-610279][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:16:13,419 [DEBUG][       Thread-610279][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:16:13,420 [DEBUG][       Thread-610279][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:16:13,420 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:16:13,421 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:16:13,488 [DEBUG][       Thread-610279][   transport.py][1871] : userauth is OK
2025-07-01 16:16:13,488 [DEBUG][       Thread-610279][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:16:13,488 [DEBUG][       Thread-610279][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:16:13,488 [DEBUG][       Thread-610279][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:16:13,488 [DEBUG][       Thread-610279][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:16:13,507 [ INFO][       Thread-610279][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:16:13,507 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:16:13,507 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:16:14,592 [DEBUG][       Thread-610279][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:16:14,592 [DEBUG][       Thread-610279][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:16:14,640 [DEBUG][       Thread-610279][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:16:14,640 [DEBUG][       Thread-610279][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:16:14,650 [DEBUG][       Thread-610279][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:16:14,659 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:16:14,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-07-01 16:16:14,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-07-01 16:16:14,677 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:16:14,677 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:16:14,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:16:14,685 [DEBUG][       Thread-610279][   transport.py][1871] : EOF in transport thread
2025-07-01 16:16:18,930 [DEBUG][Thread-610281 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:16:24,680 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:16:24,681 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:16:24,681 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:16:24,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-07-01 16:16:25,158 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 15, 56), 11.41, 46.11, 0.0, 32.73, 13.88, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:16:25,158 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:15:56
2025-07-01 16:16:25,243 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:16:25,250 [DEBUG][       Thread-610282][   transport.py][1871] : starting thread (client mode): 0x81a7d90
2025-07-01 16:16:25,250 [DEBUG][       Thread-610282][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:16:25,270 [DEBUG][       Thread-610282][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:16:25,270 [ INFO][       Thread-610282][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:16:25,273 [DEBUG][       Thread-610282][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:16:25,273 [DEBUG][       Thread-610282][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:16:25,273 [DEBUG][       Thread-610282][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:16:25,273 [DEBUG][       Thread-610282][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:16:25,273 [DEBUG][       Thread-610282][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:16:25,273 [DEBUG][       Thread-610282][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:16:25,273 [DEBUG][       Thread-610282][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:16:25,273 [DEBUG][       Thread-610282][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:16:25,273 [DEBUG][       Thread-610282][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:16:25,273 [DEBUG][       Thread-610282][   transport.py][1871] : client lang: <none>
2025-07-01 16:16:25,273 [DEBUG][       Thread-610282][   transport.py][1871] : server lang: <none>
2025-07-01 16:16:25,273 [DEBUG][       Thread-610282][   transport.py][1871] : kex follows: False
2025-07-01 16:16:25,273 [DEBUG][       Thread-610282][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:16:25,273 [DEBUG][       Thread-610282][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:16:25,273 [DEBUG][       Thread-610282][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:16:25,273 [DEBUG][       Thread-610282][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:16:25,274 [DEBUG][       Thread-610282][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:16:25,274 [DEBUG][       Thread-610282][   transport.py][1871] : Compression: none
2025-07-01 16:16:25,274 [DEBUG][       Thread-610282][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:16:25,293 [DEBUG][       Thread-610282][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:16:25,293 [DEBUG][       Thread-610282][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:16:25,294 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:16:25,294 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:16:25,295 [DEBUG][       Thread-610282][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:16:25,295 [DEBUG][       Thread-610282][   transport.py][1871] : userauth is OK
2025-07-01 16:16:25,308 [ INFO][       Thread-610282][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:16:25,308 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:16:26,053 [DEBUG][       Thread-610282][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:16:26,053 [DEBUG][       Thread-610282][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:16:26,097 [DEBUG][       Thread-610282][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:16:26,097 [DEBUG][       Thread-610282][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:16:26,101 [DEBUG][       Thread-610282][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:16:26,115 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:16:26,115 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:16:26,117 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:16:26,121 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:16:26,130 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:16:26,132 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:16:26,132 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:16:26,133 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:16:26,133 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.594383 -999.00  +13.60  30.84     51   +3.80 1 1 2 1 1   887    0 10.36 9.82 ----- 33.5 30.8 12.4 46.1 15.2 -23.5 14.8 -23.5 14.9 -22.7 15.3 -22.1
2025-07-01 16:16:26,133 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:16:26,133 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:16:26,133 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.594383
2025-07-01 16:16:26,134 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:16:26,134 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:16:26,135 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:16:26,135 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:16:26,135 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 16:16:26,135 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:15:56', tmtdew=11.41, humidity=46.11, cloud=0.0, wind=32.73, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:15:54.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:16:26,136 [DEBUG][       Thread-610282][   transport.py][1871] : EOF in transport thread
2025-07-01 16:16:26,219 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:16:26,230 [DEBUG][       Thread-610285][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 16:16:26,230 [DEBUG][       Thread-610285][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:16:26,246 [DEBUG][       Thread-610285][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:16:26,246 [ INFO][       Thread-610285][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:16:26,254 [DEBUG][       Thread-610285][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:16:26,254 [DEBUG][       Thread-610285][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:16:26,254 [DEBUG][       Thread-610285][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:16:26,254 [DEBUG][       Thread-610285][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:16:26,254 [DEBUG][       Thread-610285][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:16:26,254 [DEBUG][       Thread-610285][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:16:26,254 [DEBUG][       Thread-610285][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:16:26,254 [DEBUG][       Thread-610285][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:16:26,254 [DEBUG][       Thread-610285][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:16:26,255 [DEBUG][       Thread-610285][   transport.py][1871] : client lang: <none>
2025-07-01 16:16:26,255 [DEBUG][       Thread-610285][   transport.py][1871] : server lang: <none>
2025-07-01 16:16:26,255 [DEBUG][       Thread-610285][   transport.py][1871] : kex follows: False
2025-07-01 16:16:26,255 [DEBUG][       Thread-610285][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:16:26,255 [DEBUG][       Thread-610285][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:16:26,255 [DEBUG][       Thread-610285][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:16:26,255 [DEBUG][       Thread-610285][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:16:26,255 [DEBUG][       Thread-610285][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:16:26,255 [DEBUG][       Thread-610285][   transport.py][1871] : Compression: none
2025-07-01 16:16:26,255 [DEBUG][       Thread-610285][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:16:26,316 [DEBUG][       Thread-610285][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:16:26,317 [DEBUG][       Thread-610285][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:16:26,317 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:16:26,318 [DEBUG][       Thread-610285][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:16:26,319 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:16:26,372 [DEBUG][       Thread-610285][   transport.py][1871] : userauth is OK
2025-07-01 16:16:26,373 [DEBUG][       Thread-610285][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:16:26,373 [DEBUG][       Thread-610285][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:16:26,373 [DEBUG][       Thread-610285][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:16:26,373 [DEBUG][       Thread-610285][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:16:26,392 [ INFO][       Thread-610285][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:16:26,392 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:16:26,393 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:16:27,474 [DEBUG][       Thread-610285][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:16:27,474 [DEBUG][       Thread-610285][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:16:27,523 [DEBUG][       Thread-610285][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:16:27,523 [DEBUG][       Thread-610285][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:16:27,532 [DEBUG][       Thread-610285][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:16:27,540 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:16:27,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-07-01 16:16:27,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-07-01 16:16:27,556 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:16:27,556 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:16:27,556 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:16:27,568 [DEBUG][       Thread-610285][   transport.py][1871] : EOF in transport thread
2025-07-01 16:16:27,975 [DEBUG][Thread-610287 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:16:36,994 [DEBUG][Thread-610288 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:16:37,564 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:16:37,564 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:16:37,564 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:16:37,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-07-01 16:16:38,067 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 16, 28), 11.36, 46.14, 0.0, 26.91, 13.86, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:16:38,067 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:16:28
2025-07-01 16:16:38,159 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:16:38,163 [DEBUG][       Thread-610289][   transport.py][1871] : starting thread (client mode): 0x81e7f70
2025-07-01 16:16:38,163 [DEBUG][       Thread-610289][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:16:38,183 [DEBUG][       Thread-610289][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:16:38,183 [ INFO][       Thread-610289][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:16:38,187 [DEBUG][       Thread-610289][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:16:38,187 [DEBUG][       Thread-610289][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:16:38,187 [DEBUG][       Thread-610289][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:16:38,187 [DEBUG][       Thread-610289][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:16:38,187 [DEBUG][       Thread-610289][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:16:38,187 [DEBUG][       Thread-610289][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:16:38,187 [DEBUG][       Thread-610289][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:16:38,187 [DEBUG][       Thread-610289][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:16:38,187 [DEBUG][       Thread-610289][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:16:38,187 [DEBUG][       Thread-610289][   transport.py][1871] : client lang: <none>
2025-07-01 16:16:38,187 [DEBUG][       Thread-610289][   transport.py][1871] : server lang: <none>
2025-07-01 16:16:38,187 [DEBUG][       Thread-610289][   transport.py][1871] : kex follows: False
2025-07-01 16:16:38,187 [DEBUG][       Thread-610289][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:16:38,187 [DEBUG][       Thread-610289][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:16:38,187 [DEBUG][       Thread-610289][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:16:38,187 [DEBUG][       Thread-610289][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:16:38,187 [DEBUG][       Thread-610289][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:16:38,187 [DEBUG][       Thread-610289][   transport.py][1871] : Compression: none
2025-07-01 16:16:38,187 [DEBUG][       Thread-610289][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:16:38,201 [DEBUG][       Thread-610289][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:16:38,201 [DEBUG][       Thread-610289][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:16:38,201 [DEBUG][       Thread-610289][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:16:38,201 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:16:38,202 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:16:38,202 [DEBUG][       Thread-610289][   transport.py][1871] : userauth is OK
2025-07-01 16:16:38,215 [ INFO][       Thread-610289][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:16:38,215 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:16:38,329 [DEBUG][Thread-610291 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:16:38,961 [DEBUG][       Thread-610289][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:16:38,961 [DEBUG][       Thread-610289][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:16:39,004 [DEBUG][       Thread-610289][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:16:39,004 [DEBUG][       Thread-610289][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:16:39,008 [DEBUG][       Thread-610289][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:16:39,019 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:16:39,020 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:16:39,021 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:16:39,021 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:16:39,024 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:16:39,025 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:16:39,025 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:16:39,025 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:16:39,025 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.594383 -999.00  +13.60  30.84     51   +3.80 1 1 2 1 1   887    0 10.36 9.82 ----- 33.5 30.8 12.4 46.1 15.2 -23.5 14.8 -23.5 14.9 -22.7 15.3 -22.1
2025-07-01 16:16:39,025 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:16:39,025 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:16:39,025 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.594383
2025-07-01 16:16:39,025 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:16:39,025 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:16:39,025 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:16:39,025 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:16:39,025 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-07-01 16:16:39,025 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:16:28', tmtdew=11.36, humidity=46.14, cloud=0.0, wind=26.91, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:15:54.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:16:39,026 [DEBUG][       Thread-610289][   transport.py][1871] : EOF in transport thread
2025-07-01 16:16:39,099 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:16:39,108 [DEBUG][       Thread-610293][   transport.py][1871] : starting thread (client mode): 0x81dbee0
2025-07-01 16:16:39,108 [DEBUG][       Thread-610293][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:16:39,123 [DEBUG][       Thread-610293][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:16:39,123 [ INFO][       Thread-610293][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:16:39,131 [DEBUG][       Thread-610293][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:16:39,131 [DEBUG][       Thread-610293][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:16:39,131 [DEBUG][       Thread-610293][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:16:39,131 [DEBUG][       Thread-610293][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:16:39,131 [DEBUG][       Thread-610293][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:16:39,131 [DEBUG][       Thread-610293][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:16:39,131 [DEBUG][       Thread-610293][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:16:39,131 [DEBUG][       Thread-610293][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:16:39,131 [DEBUG][       Thread-610293][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:16:39,131 [DEBUG][       Thread-610293][   transport.py][1871] : client lang: <none>
2025-07-01 16:16:39,131 [DEBUG][       Thread-610293][   transport.py][1871] : server lang: <none>
2025-07-01 16:16:39,131 [DEBUG][       Thread-610293][   transport.py][1871] : kex follows: False
2025-07-01 16:16:39,131 [DEBUG][       Thread-610293][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:16:39,131 [DEBUG][       Thread-610293][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:16:39,131 [DEBUG][       Thread-610293][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:16:39,131 [DEBUG][       Thread-610293][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:16:39,131 [DEBUG][       Thread-610293][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:16:39,131 [DEBUG][       Thread-610293][   transport.py][1871] : Compression: none
2025-07-01 16:16:39,131 [DEBUG][       Thread-610293][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:16:39,187 [DEBUG][       Thread-610293][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:16:39,187 [DEBUG][       Thread-610293][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:16:39,187 [DEBUG][       Thread-610293][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:16:39,187 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:16:39,187 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:16:39,245 [DEBUG][       Thread-610293][   transport.py][1871] : userauth is OK
2025-07-01 16:16:39,245 [DEBUG][       Thread-610293][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:16:39,245 [DEBUG][       Thread-610293][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:16:39,245 [DEBUG][       Thread-610293][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:16:39,245 [DEBUG][       Thread-610293][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:16:39,260 [ INFO][       Thread-610293][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:16:39,260 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:16:39,260 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:16:40,278 [DEBUG][       Thread-610293][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:16:40,279 [DEBUG][       Thread-610293][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:16:40,327 [DEBUG][       Thread-610293][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:16:40,327 [DEBUG][       Thread-610293][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:16:40,336 [DEBUG][       Thread-610293][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:16:40,346 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:16:40,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-07-01 16:16:40,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-07-01 16:16:40,362 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:16:40,362 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:16:40,362 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:16:40,370 [DEBUG][       Thread-610293][   transport.py][1871] : EOF in transport thread
2025-07-01 16:16:46,013 [DEBUG][Thread-610295 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:16:50,373 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:16:50,373 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:16:50,382 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:16:50,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-07-01 16:16:50,865 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 16, 28), 11.36, 46.14, 0.0, 26.91, 13.86, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:16:50,865 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:16:28
2025-07-01 16:16:50,950 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:16:50,956 [DEBUG][       Thread-610296][   transport.py][1871] : starting thread (client mode): 0x81e7e50
2025-07-01 16:16:50,956 [DEBUG][       Thread-610296][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:16:50,977 [DEBUG][       Thread-610296][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:16:50,977 [ INFO][       Thread-610296][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:16:50,980 [DEBUG][       Thread-610296][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:16:50,981 [DEBUG][       Thread-610296][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:16:50,981 [DEBUG][       Thread-610296][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:16:50,981 [DEBUG][       Thread-610296][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:16:50,981 [DEBUG][       Thread-610296][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:16:50,981 [DEBUG][       Thread-610296][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:16:50,981 [DEBUG][       Thread-610296][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:16:50,981 [DEBUG][       Thread-610296][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:16:50,981 [DEBUG][       Thread-610296][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:16:50,981 [DEBUG][       Thread-610296][   transport.py][1871] : client lang: <none>
2025-07-01 16:16:50,981 [DEBUG][       Thread-610296][   transport.py][1871] : server lang: <none>
2025-07-01 16:16:50,981 [DEBUG][       Thread-610296][   transport.py][1871] : kex follows: False
2025-07-01 16:16:50,981 [DEBUG][       Thread-610296][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:16:50,981 [DEBUG][       Thread-610296][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:16:50,981 [DEBUG][       Thread-610296][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:16:50,981 [DEBUG][       Thread-610296][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:16:50,981 [DEBUG][       Thread-610296][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:16:50,981 [DEBUG][       Thread-610296][   transport.py][1871] : Compression: none
2025-07-01 16:16:50,981 [DEBUG][       Thread-610296][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:16:50,998 [DEBUG][       Thread-610296][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:16:50,999 [DEBUG][       Thread-610296][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:16:50,999 [DEBUG][       Thread-610296][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:16:51,000 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:16:51,000 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:16:51,001 [DEBUG][       Thread-610296][   transport.py][1871] : userauth is OK
2025-07-01 16:16:51,015 [ INFO][       Thread-610296][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:16:51,015 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:16:51,721 [DEBUG][       Thread-610296][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:16:51,721 [DEBUG][       Thread-610296][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:16:51,769 [DEBUG][       Thread-610296][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:16:51,769 [DEBUG][       Thread-610296][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:16:51,772 [DEBUG][       Thread-610296][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:16:51,784 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:16:51,784 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:16:51,786 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:16:51,787 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:16:51,792 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:16:51,793 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:16:51,793 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:16:51,794 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:16:51,794 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.594731 -999.00  +13.60  32.77     51   +3.80 1 2 2 1 1   887    0 10.05 7.53 ----- 33.3 32.8 42.2 44.0 15.2 -23.7 14.8 -23.5 14.9 -22.3 15.3 -22.0
2025-07-01 16:16:51,794 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:16:51,794 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:16:51,794 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.594731
2025-07-01 16:16:51,795 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:16:51,795 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:16:51,795 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:16:51,795 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:16:51,796 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:16:51,796 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:16:28', tmtdew=11.36, humidity=46.14, cloud=0.0, wind=26.91, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:16:24.758', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:16:51,796 [DEBUG][       Thread-610296][   transport.py][1871] : EOF in transport thread
2025-07-01 16:16:51,879 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:16:51,890 [DEBUG][       Thread-610299][   transport.py][1871] : starting thread (client mode): 0x8170760
2025-07-01 16:16:51,891 [DEBUG][       Thread-610299][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:16:51,907 [DEBUG][       Thread-610299][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:16:51,907 [ INFO][       Thread-610299][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:16:51,918 [DEBUG][       Thread-610299][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:16:51,918 [DEBUG][       Thread-610299][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:16:51,918 [DEBUG][       Thread-610299][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:16:51,918 [DEBUG][       Thread-610299][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:16:51,918 [DEBUG][       Thread-610299][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:16:51,918 [DEBUG][       Thread-610299][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:16:51,918 [DEBUG][       Thread-610299][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:16:51,918 [DEBUG][       Thread-610299][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:16:51,918 [DEBUG][       Thread-610299][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:16:51,918 [DEBUG][       Thread-610299][   transport.py][1871] : client lang: <none>
2025-07-01 16:16:51,918 [DEBUG][       Thread-610299][   transport.py][1871] : server lang: <none>
2025-07-01 16:16:51,919 [DEBUG][       Thread-610299][   transport.py][1871] : kex follows: False
2025-07-01 16:16:51,919 [DEBUG][       Thread-610299][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:16:51,919 [DEBUG][       Thread-610299][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:16:51,919 [DEBUG][       Thread-610299][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:16:51,919 [DEBUG][       Thread-610299][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:16:51,919 [DEBUG][       Thread-610299][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:16:51,919 [DEBUG][       Thread-610299][   transport.py][1871] : Compression: none
2025-07-01 16:16:51,919 [DEBUG][       Thread-610299][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:16:51,944 [DEBUG][       Thread-610299][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:16:51,944 [DEBUG][       Thread-610299][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:16:51,945 [DEBUG][       Thread-610299][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:16:51,945 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:16:51,946 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:16:52,001 [DEBUG][       Thread-610299][   transport.py][1871] : userauth is OK
2025-07-01 16:16:52,001 [DEBUG][       Thread-610299][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:16:52,002 [DEBUG][       Thread-610299][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:16:52,002 [DEBUG][       Thread-610299][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:16:52,002 [DEBUG][       Thread-610299][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:16:52,021 [ INFO][       Thread-610299][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:16:52,022 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:16:52,022 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:16:53,066 [DEBUG][       Thread-610299][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:16:53,066 [DEBUG][       Thread-610299][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:16:53,116 [DEBUG][       Thread-610299][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:16:53,116 [DEBUG][       Thread-610299][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:16:53,126 [DEBUG][       Thread-610299][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:16:53,135 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:16: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-07-01 16:16: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-07-01 16:16:53,153 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:16:53,153 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:16:53,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:16:53,162 [DEBUG][       Thread-610299][   transport.py][1871] : EOF in transport thread
2025-07-01 16:16:55,050 [DEBUG][Thread-610301 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:17:03,164 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:17:03,165 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:17:03,165 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:17:03,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-07-01 16:17:03,637 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 17), 11.35, 46.16, 0.0, 31.95, 13.85, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:17:03,637 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:17:00
2025-07-01 16:17:03,723 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:17:03,726 [DEBUG][       Thread-610302][   transport.py][1871] : starting thread (client mode): 0x81e5480
2025-07-01 16:17:03,727 [DEBUG][       Thread-610302][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:17:03,746 [DEBUG][       Thread-610302][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:17:03,746 [ INFO][       Thread-610302][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:17:03,749 [DEBUG][       Thread-610302][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:17:03,749 [DEBUG][       Thread-610302][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:17:03,749 [DEBUG][       Thread-610302][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:17:03,749 [DEBUG][       Thread-610302][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:17:03,749 [DEBUG][       Thread-610302][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:17:03,749 [DEBUG][       Thread-610302][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:17:03,749 [DEBUG][       Thread-610302][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:17:03,749 [DEBUG][       Thread-610302][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:17:03,749 [DEBUG][       Thread-610302][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:17:03,749 [DEBUG][       Thread-610302][   transport.py][1871] : client lang: <none>
2025-07-01 16:17:03,749 [DEBUG][       Thread-610302][   transport.py][1871] : server lang: <none>
2025-07-01 16:17:03,749 [DEBUG][       Thread-610302][   transport.py][1871] : kex follows: False
2025-07-01 16:17:03,749 [DEBUG][       Thread-610302][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:17:03,749 [DEBUG][       Thread-610302][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:17:03,749 [DEBUG][       Thread-610302][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:17:03,749 [DEBUG][       Thread-610302][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:17:03,750 [DEBUG][       Thread-610302][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:17:03,750 [DEBUG][       Thread-610302][   transport.py][1871] : Compression: none
2025-07-01 16:17:03,750 [DEBUG][       Thread-610302][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:17:03,765 [DEBUG][       Thread-610302][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:17:03,766 [DEBUG][       Thread-610302][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:17:03,766 [DEBUG][       Thread-610302][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:17:03,766 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:17:03,766 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:17:03,768 [DEBUG][       Thread-610302][   transport.py][1871] : userauth is OK
2025-07-01 16:17:03,780 [ INFO][       Thread-610302][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:17:03,781 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:17:04,093 [DEBUG][Thread-610304 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:17:04,575 [DEBUG][       Thread-610302][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:17:04,575 [DEBUG][       Thread-610302][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:17:04,621 [DEBUG][       Thread-610302][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:17:04,621 [DEBUG][       Thread-610302][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:17:04,624 [DEBUG][       Thread-610302][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:17:04,636 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:17:04,636 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:17:04,638 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:17:04,640 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:17:04,646 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:17:04,648 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:17:04,648 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:17:04,649 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:17:04,649 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.594731 -999.00  +13.60  32.77     51   +3.80 1 2 2 1 1   887    0 10.05 7.53 ----- 33.3 32.8 42.2 44.0 15.2 -23.7 14.8 -23.5 14.9 -22.3 15.3 -22.0
2025-07-01 16:17:04,649 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:17:04,649 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:17:04,649 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.594731
2025-07-01 16:17:04,650 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:17:04,650 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:17:04,650 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:17:04,650 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:17:04,650 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:17:04,651 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:17:00', tmtdew=11.35, humidity=46.16, cloud=0.0, wind=31.95, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:16:24.758', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:17:04,652 [DEBUG][       Thread-610302][   transport.py][1871] : EOF in transport thread
2025-07-01 16:17:04,734 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:17:04,743 [DEBUG][       Thread-610306][   transport.py][1871] : starting thread (client mode): 0x8156620
2025-07-01 16:17:04,743 [DEBUG][       Thread-610306][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:17:04,764 [DEBUG][       Thread-610306][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:17:04,764 [ INFO][       Thread-610306][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:17:04,771 [DEBUG][       Thread-610306][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:17:04,771 [DEBUG][       Thread-610306][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:17:04,772 [DEBUG][       Thread-610306][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:17:04,772 [DEBUG][       Thread-610306][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:17:04,772 [DEBUG][       Thread-610306][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:17:04,772 [DEBUG][       Thread-610306][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:17:04,772 [DEBUG][       Thread-610306][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:17:04,772 [DEBUG][       Thread-610306][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:17:04,772 [DEBUG][       Thread-610306][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:17:04,772 [DEBUG][       Thread-610306][   transport.py][1871] : client lang: <none>
2025-07-01 16:17:04,772 [DEBUG][       Thread-610306][   transport.py][1871] : server lang: <none>
2025-07-01 16:17:04,772 [DEBUG][       Thread-610306][   transport.py][1871] : kex follows: False
2025-07-01 16:17:04,772 [DEBUG][       Thread-610306][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:17:04,772 [DEBUG][       Thread-610306][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:17:04,772 [DEBUG][       Thread-610306][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:17:04,772 [DEBUG][       Thread-610306][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:17:04,772 [DEBUG][       Thread-610306][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:17:04,772 [DEBUG][       Thread-610306][   transport.py][1871] : Compression: none
2025-07-01 16:17:04,772 [DEBUG][       Thread-610306][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:17:04,830 [DEBUG][       Thread-610306][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:17:04,830 [DEBUG][       Thread-610306][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:17:04,831 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:17:04,831 [DEBUG][       Thread-610306][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:17:04,832 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:17:04,890 [DEBUG][       Thread-610306][   transport.py][1871] : userauth is OK
2025-07-01 16:17:04,890 [DEBUG][       Thread-610306][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:17:04,890 [DEBUG][       Thread-610306][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:17:04,890 [DEBUG][       Thread-610306][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:17:04,890 [DEBUG][       Thread-610306][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:17:04,905 [ INFO][       Thread-610306][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:17:04,905 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:17:04,906 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:17:06,093 [DEBUG][       Thread-610306][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:17:06,094 [DEBUG][       Thread-610306][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:17:06,146 [DEBUG][       Thread-610306][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:17:06,146 [DEBUG][       Thread-610306][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:17:06,155 [DEBUG][       Thread-610306][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:17:06,164 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:17:06,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-07-01 16:17:06,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-07-01 16:17:06,182 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:17:06,182 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:17:06,182 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:17:06,190 [DEBUG][       Thread-610306][   transport.py][1871] : EOF in transport thread
2025-07-01 16:17:13,114 [DEBUG][Thread-610308 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:17:16,193 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:17:16,193 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:17:16,193 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:17:16,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-07-01 16:17:16,691 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 17), 11.35, 46.16, 0.0, 31.95, 13.85, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:17:16,691 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:17:00
2025-07-01 16:17:16,782 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:17:16,788 [DEBUG][       Thread-610309][   transport.py][1871] : starting thread (client mode): 0x818fb50
2025-07-01 16:17:16,788 [DEBUG][       Thread-610309][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:17:16,804 [DEBUG][       Thread-610309][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:17:16,804 [ INFO][       Thread-610309][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:17:16,807 [DEBUG][       Thread-610309][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:17:16,807 [DEBUG][       Thread-610309][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:17:16,807 [DEBUG][       Thread-610309][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:17:16,807 [DEBUG][       Thread-610309][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:17:16,807 [DEBUG][       Thread-610309][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:17:16,807 [DEBUG][       Thread-610309][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:17:16,807 [DEBUG][       Thread-610309][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:17:16,807 [DEBUG][       Thread-610309][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:17:16,807 [DEBUG][       Thread-610309][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:17:16,807 [DEBUG][       Thread-610309][   transport.py][1871] : client lang: <none>
2025-07-01 16:17:16,807 [DEBUG][       Thread-610309][   transport.py][1871] : server lang: <none>
2025-07-01 16:17:16,807 [DEBUG][       Thread-610309][   transport.py][1871] : kex follows: False
2025-07-01 16:17:16,807 [DEBUG][       Thread-610309][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:17:16,807 [DEBUG][       Thread-610309][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:17:16,807 [DEBUG][       Thread-610309][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:17:16,807 [DEBUG][       Thread-610309][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:17:16,807 [DEBUG][       Thread-610309][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:17:16,807 [DEBUG][       Thread-610309][   transport.py][1871] : Compression: none
2025-07-01 16:17:16,807 [DEBUG][       Thread-610309][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:17:16,822 [DEBUG][       Thread-610309][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:17:16,822 [DEBUG][       Thread-610309][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:17:16,822 [DEBUG][       Thread-610309][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:17:16,822 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:17:16,822 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:17:16,823 [DEBUG][       Thread-610309][   transport.py][1871] : userauth is OK
2025-07-01 16:17:16,835 [ INFO][       Thread-610309][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:17:16,836 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:17:17,523 [DEBUG][       Thread-610309][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:17:17,523 [DEBUG][       Thread-610309][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:17:17,564 [DEBUG][       Thread-610309][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:17:17,564 [DEBUG][       Thread-610309][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:17:17,567 [DEBUG][       Thread-610309][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:17:17,578 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:17:17,578 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:17:17,579 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:17:17,580 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:17:17,583 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:17:17,584 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:17:17,584 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:17:17,584 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:17:17,584 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.595078 -999.00  +13.60  28.29     51   +3.90 1 2 1 1 1   887    0 10.18 4.72 ----- 29.5 28.3 29.4 42.9 15.2 -23.5 -999.0 -999.0 14.9 -22.0 15.3 -22.2
2025-07-01 16:17:17,584 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:17:17,584 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:17:17,584 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.595078
2025-07-01 16:17:17,584 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:17:17,584 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:17:17,584 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:17:17,585 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:17:17,585 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:17:17,585 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:17:00', tmtdew=11.35, humidity=46.16, cloud=0.0, wind=31.95, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:16:54.739', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:17:17,585 [DEBUG][       Thread-610309][   transport.py][1871] : EOF in transport thread
2025-07-01 16:17:17,658 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:17:17,670 [DEBUG][       Thread-610312][   transport.py][1871] : starting thread (client mode): 0x8171480
2025-07-01 16:17:17,670 [DEBUG][       Thread-610312][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:17:17,686 [DEBUG][       Thread-610312][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:17:17,686 [ INFO][       Thread-610312][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:17:17,694 [DEBUG][       Thread-610312][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:17:17,694 [DEBUG][       Thread-610312][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:17:17,694 [DEBUG][       Thread-610312][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:17:17,694 [DEBUG][       Thread-610312][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:17:17,694 [DEBUG][       Thread-610312][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:17:17,694 [DEBUG][       Thread-610312][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:17:17,694 [DEBUG][       Thread-610312][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:17:17,694 [DEBUG][       Thread-610312][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:17:17,694 [DEBUG][       Thread-610312][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:17:17,694 [DEBUG][       Thread-610312][   transport.py][1871] : client lang: <none>
2025-07-01 16:17:17,694 [DEBUG][       Thread-610312][   transport.py][1871] : server lang: <none>
2025-07-01 16:17:17,694 [DEBUG][       Thread-610312][   transport.py][1871] : kex follows: False
2025-07-01 16:17:17,694 [DEBUG][       Thread-610312][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:17:17,694 [DEBUG][       Thread-610312][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:17:17,694 [DEBUG][       Thread-610312][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:17:17,694 [DEBUG][       Thread-610312][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:17:17,694 [DEBUG][       Thread-610312][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:17:17,694 [DEBUG][       Thread-610312][   transport.py][1871] : Compression: none
2025-07-01 16:17:17,694 [DEBUG][       Thread-610312][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:17:17,752 [DEBUG][       Thread-610312][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:17:17,752 [DEBUG][       Thread-610312][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:17:17,752 [DEBUG][       Thread-610312][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:17:17,753 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:17:17,753 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:17:17,810 [DEBUG][       Thread-610312][   transport.py][1871] : userauth is OK
2025-07-01 16:17:17,810 [DEBUG][       Thread-610312][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:17:17,810 [DEBUG][       Thread-610312][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:17:17,810 [DEBUG][       Thread-610312][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:17:17,810 [DEBUG][       Thread-610312][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:17:17,824 [ INFO][       Thread-610312][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:17:17,824 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:17:17,824 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:17:18,840 [DEBUG][       Thread-610312][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:17:18,840 [DEBUG][       Thread-610312][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:17:18,894 [DEBUG][       Thread-610312][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:17:18,895 [DEBUG][       Thread-610312][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:17:18,908 [DEBUG][       Thread-610312][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:17:18,916 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:17:18,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-07-01 16:17:18,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-07-01 16:17:18,934 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:17:18,934 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:17:18,934 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:17:18,942 [DEBUG][       Thread-610312][   transport.py][1871] : EOF in transport thread
2025-07-01 16:17:22,154 [DEBUG][Thread-610314 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:17:28,945 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:17:28,945 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:17:28,945 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:17:28,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-07-01 16:17:29,419 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 17), 11.35, 46.16, 0.0, 31.95, 13.85, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:17:29,419 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:17:00
2025-07-01 16:17:29,504 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:17:29,510 [DEBUG][       Thread-610315][   transport.py][1871] : starting thread (client mode): 0x81a6d10
2025-07-01 16:17:29,510 [DEBUG][       Thread-610315][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:17:29,531 [DEBUG][       Thread-610315][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:17:29,531 [ INFO][       Thread-610315][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:17:29,533 [DEBUG][       Thread-610315][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:17:29,533 [DEBUG][       Thread-610315][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:17:29,533 [DEBUG][       Thread-610315][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:17:29,533 [DEBUG][       Thread-610315][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:17:29,533 [DEBUG][       Thread-610315][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:17:29,533 [DEBUG][       Thread-610315][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:17:29,533 [DEBUG][       Thread-610315][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:17:29,533 [DEBUG][       Thread-610315][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:17:29,533 [DEBUG][       Thread-610315][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:17:29,533 [DEBUG][       Thread-610315][   transport.py][1871] : client lang: <none>
2025-07-01 16:17:29,533 [DEBUG][       Thread-610315][   transport.py][1871] : server lang: <none>
2025-07-01 16:17:29,533 [DEBUG][       Thread-610315][   transport.py][1871] : kex follows: False
2025-07-01 16:17:29,533 [DEBUG][       Thread-610315][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:17:29,533 [DEBUG][       Thread-610315][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:17:29,533 [DEBUG][       Thread-610315][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:17:29,533 [DEBUG][       Thread-610315][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:17:29,533 [DEBUG][       Thread-610315][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:17:29,533 [DEBUG][       Thread-610315][   transport.py][1871] : Compression: none
2025-07-01 16:17:29,533 [DEBUG][       Thread-610315][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:17:29,546 [DEBUG][       Thread-610315][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:17:29,547 [DEBUG][       Thread-610315][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:17:29,547 [DEBUG][       Thread-610315][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:17:29,547 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:17:29,547 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:17:29,548 [DEBUG][       Thread-610315][   transport.py][1871] : userauth is OK
2025-07-01 16:17:29,573 [ INFO][       Thread-610315][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:17:29,574 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:17:30,392 [DEBUG][       Thread-610315][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:17:30,392 [DEBUG][       Thread-610315][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:17:30,433 [DEBUG][       Thread-610315][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:17:30,433 [DEBUG][       Thread-610315][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:17:30,435 [DEBUG][       Thread-610315][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:17:30,448 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:17:30,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:17:30,451 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:17:30,452 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:17:30,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:17:30,459 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:17:30,459 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:17:30,460 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:17:30,460 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.595078 -999.00  +13.60  28.29     51   +3.90 1 2 1 1 1   887    0 10.18 4.72 ----- 29.5 28.3 29.4 42.9 15.2 -23.5 -999.0 -999.0 14.9 -22.0 15.3 -22.2
2025-07-01 16:17:30,460 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:17:30,460 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:17:30,460 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.595078
2025-07-01 16:17:30,461 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:17:30,461 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:17:30,461 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:17:30,461 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:17:30,461 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:17:30,462 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:17:00', tmtdew=11.35, humidity=46.16, cloud=0.0, wind=31.95, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:16:54.739', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:17:30,462 [DEBUG][       Thread-610315][   transport.py][1871] : EOF in transport thread
2025-07-01 16:17:30,545 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:17:30,557 [DEBUG][       Thread-610318][   transport.py][1871] : starting thread (client mode): 0x81e4f10
2025-07-01 16:17:30,557 [DEBUG][       Thread-610318][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:17:30,572 [DEBUG][       Thread-610318][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:17:30,573 [ INFO][       Thread-610318][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:17:30,580 [DEBUG][       Thread-610318][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:17:30,580 [DEBUG][       Thread-610318][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:17:30,580 [DEBUG][       Thread-610318][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:17:30,580 [DEBUG][       Thread-610318][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:17:30,580 [DEBUG][       Thread-610318][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:17:30,581 [DEBUG][       Thread-610318][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:17:30,581 [DEBUG][       Thread-610318][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:17:30,581 [DEBUG][       Thread-610318][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:17:30,581 [DEBUG][       Thread-610318][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:17:30,581 [DEBUG][       Thread-610318][   transport.py][1871] : client lang: <none>
2025-07-01 16:17:30,581 [DEBUG][       Thread-610318][   transport.py][1871] : server lang: <none>
2025-07-01 16:17:30,581 [DEBUG][       Thread-610318][   transport.py][1871] : kex follows: False
2025-07-01 16:17:30,581 [DEBUG][       Thread-610318][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:17:30,581 [DEBUG][       Thread-610318][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:17:30,581 [DEBUG][       Thread-610318][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:17:30,581 [DEBUG][       Thread-610318][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:17:30,581 [DEBUG][       Thread-610318][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:17:30,581 [DEBUG][       Thread-610318][   transport.py][1871] : Compression: none
2025-07-01 16:17:30,581 [DEBUG][       Thread-610318][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:17:30,643 [DEBUG][       Thread-610318][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:17:30,643 [DEBUG][       Thread-610318][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:17:30,644 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:17:30,644 [DEBUG][       Thread-610318][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:17:30,645 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:17:30,698 [DEBUG][       Thread-610318][   transport.py][1871] : userauth is OK
2025-07-01 16:17:30,699 [DEBUG][       Thread-610318][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:17:30,699 [DEBUG][       Thread-610318][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:17:30,699 [DEBUG][       Thread-610318][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:17:30,699 [DEBUG][       Thread-610318][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:17:30,718 [ INFO][       Thread-610318][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:17:30,718 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:17:30,719 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:17:31,175 [DEBUG][Thread-610320 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:17:31,758 [DEBUG][       Thread-610318][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:17:31,758 [DEBUG][       Thread-610318][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:17:31,808 [DEBUG][       Thread-610318][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:17:31,808 [DEBUG][       Thread-610318][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:17:31,817 [DEBUG][       Thread-610318][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:17:31,826 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:17:31,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-07-01 16:17:31,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-07-01 16:17:31,843 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:17:31,843 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:17:31,844 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:17:31,852 [DEBUG][       Thread-610318][   transport.py][1871] : EOF in transport thread
2025-07-01 16:17:38,359 [DEBUG][Thread-610321 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:17:40,197 [DEBUG][Thread-610322 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:17:41,847 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:17:41,847 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:17:41,847 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:17:41,849 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:17:42,339 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 17, 32), 11.39, 46.15, 0.0, 34.44, 13.88, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:17:42,339 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:17:32
2025-07-01 16:17:42,424 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:17:42,428 [DEBUG][       Thread-610323][   transport.py][1871] : starting thread (client mode): 0x81e7490
2025-07-01 16:17:42,428 [DEBUG][       Thread-610323][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:17:42,448 [DEBUG][       Thread-610323][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:17:42,448 [ INFO][       Thread-610323][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:17:42,451 [DEBUG][       Thread-610323][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:17:42,451 [DEBUG][       Thread-610323][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:17:42,451 [DEBUG][       Thread-610323][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:17:42,451 [DEBUG][       Thread-610323][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:17:42,451 [DEBUG][       Thread-610323][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:17:42,451 [DEBUG][       Thread-610323][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:17:42,451 [DEBUG][       Thread-610323][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:17:42,451 [DEBUG][       Thread-610323][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:17:42,451 [DEBUG][       Thread-610323][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:17:42,451 [DEBUG][       Thread-610323][   transport.py][1871] : client lang: <none>
2025-07-01 16:17:42,451 [DEBUG][       Thread-610323][   transport.py][1871] : server lang: <none>
2025-07-01 16:17:42,451 [DEBUG][       Thread-610323][   transport.py][1871] : kex follows: False
2025-07-01 16:17:42,451 [DEBUG][       Thread-610323][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:17:42,451 [DEBUG][       Thread-610323][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:17:42,451 [DEBUG][       Thread-610323][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:17:42,452 [DEBUG][       Thread-610323][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:17:42,452 [DEBUG][       Thread-610323][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:17:42,452 [DEBUG][       Thread-610323][   transport.py][1871] : Compression: none
2025-07-01 16:17:42,452 [DEBUG][       Thread-610323][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:17:42,472 [DEBUG][       Thread-610323][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:17:42,472 [DEBUG][       Thread-610323][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:17:42,473 [DEBUG][       Thread-610323][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:17:42,473 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:17:42,473 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:17:42,474 [DEBUG][       Thread-610323][   transport.py][1871] : userauth is OK
2025-07-01 16:17:42,499 [ INFO][       Thread-610323][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:17:42,500 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:17:43,254 [DEBUG][       Thread-610323][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:17:43,254 [DEBUG][       Thread-610323][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:17:43,297 [DEBUG][       Thread-610323][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:17:43,297 [DEBUG][       Thread-610323][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:17:43,300 [DEBUG][       Thread-610323][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:17:43,313 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:17:43,313 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:17:43,315 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:17:43,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:17:43,323 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:17:43,324 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:17:43,325 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:17:43,325 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:17:43,325 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.595078 -999.00  +13.60  28.29     51   +3.90 1 2 1 1 1   887    0 10.18 4.72 ----- 29.5 28.3 29.4 42.9 15.2 -23.5 -999.0 -999.0 14.9 -22.0 15.3 -22.2
2025-07-01 16:17:43,325 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:17:43,325 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:17:43,325 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.595078
2025-07-01 16:17:43,326 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:17:43,326 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:17:43,327 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:17:43,327 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:17:43,327 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:17:43,327 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:17:32', tmtdew=11.39, humidity=46.15, cloud=0.0, wind=34.44, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:16:54.739', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:17:43,327 [DEBUG][       Thread-610323][   transport.py][1871] : EOF in transport thread
2025-07-01 16:17:43,410 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:17:43,426 [DEBUG][       Thread-610326][   transport.py][1871] : starting thread (client mode): 0x4701ec20
2025-07-01 16:17:43,426 [DEBUG][       Thread-610326][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:17:43,443 [DEBUG][       Thread-610326][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:17:43,443 [ INFO][       Thread-610326][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:17:43,450 [DEBUG][       Thread-610326][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:17:43,450 [DEBUG][       Thread-610326][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:17:43,451 [DEBUG][       Thread-610326][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:17:43,451 [DEBUG][       Thread-610326][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:17:43,451 [DEBUG][       Thread-610326][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:17:43,451 [DEBUG][       Thread-610326][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:17:43,451 [DEBUG][       Thread-610326][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:17:43,451 [DEBUG][       Thread-610326][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:17:43,451 [DEBUG][       Thread-610326][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:17:43,451 [DEBUG][       Thread-610326][   transport.py][1871] : client lang: <none>
2025-07-01 16:17:43,451 [DEBUG][       Thread-610326][   transport.py][1871] : server lang: <none>
2025-07-01 16:17:43,451 [DEBUG][       Thread-610326][   transport.py][1871] : kex follows: False
2025-07-01 16:17:43,451 [DEBUG][       Thread-610326][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:17:43,451 [DEBUG][       Thread-610326][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:17:43,451 [DEBUG][       Thread-610326][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:17:43,451 [DEBUG][       Thread-610326][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:17:43,451 [DEBUG][       Thread-610326][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:17:43,451 [DEBUG][       Thread-610326][   transport.py][1871] : Compression: none
2025-07-01 16:17:43,451 [DEBUG][       Thread-610326][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:17:43,508 [DEBUG][       Thread-610326][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:17:43,508 [DEBUG][       Thread-610326][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:17:43,509 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:17:43,509 [DEBUG][       Thread-610326][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:17:43,510 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:17:43,567 [DEBUG][       Thread-610326][   transport.py][1871] : userauth is OK
2025-07-01 16:17:43,567 [DEBUG][       Thread-610326][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:17:43,567 [DEBUG][       Thread-610326][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:17:43,567 [DEBUG][       Thread-610326][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:17:43,567 [DEBUG][       Thread-610326][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:17:43,586 [ INFO][       Thread-610326][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:17:43,586 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:17:43,587 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:17:44,604 [DEBUG][       Thread-610326][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:17:44,604 [DEBUG][       Thread-610326][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:17:44,656 [DEBUG][       Thread-610326][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:17:44,656 [DEBUG][       Thread-610326][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:17:44,666 [DEBUG][       Thread-610326][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:17:44,675 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:17:44,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-07-01 16:17:44,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-07-01 16:17:44,694 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:17:44,694 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:17:44,694 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:17:44,702 [DEBUG][       Thread-610326][   transport.py][1871] : EOF in transport thread
2025-07-01 16:17:49,219 [DEBUG][Thread-610328 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:17:54,704 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:17:54,704 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:17:54,704 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:17:54,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-07-01 16:17:55,178 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 17, 32), 11.39, 46.15, 0.0, 34.44, 13.88, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:17:55,178 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:17:32
2025-07-01 16:17:55,268 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:17:55,274 [DEBUG][       Thread-610329][   transport.py][1871] : starting thread (client mode): 0x81a66e0
2025-07-01 16:17:55,274 [DEBUG][       Thread-610329][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:17:55,292 [DEBUG][       Thread-610329][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:17:55,292 [ INFO][       Thread-610329][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:17:55,294 [DEBUG][       Thread-610329][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:17:55,294 [DEBUG][       Thread-610329][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:17:55,294 [DEBUG][       Thread-610329][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:17:55,294 [DEBUG][       Thread-610329][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:17:55,294 [DEBUG][       Thread-610329][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:17:55,294 [DEBUG][       Thread-610329][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:17:55,294 [DEBUG][       Thread-610329][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:17:55,294 [DEBUG][       Thread-610329][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:17:55,294 [DEBUG][       Thread-610329][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:17:55,294 [DEBUG][       Thread-610329][   transport.py][1871] : client lang: <none>
2025-07-01 16:17:55,294 [DEBUG][       Thread-610329][   transport.py][1871] : server lang: <none>
2025-07-01 16:17:55,294 [DEBUG][       Thread-610329][   transport.py][1871] : kex follows: False
2025-07-01 16:17:55,294 [DEBUG][       Thread-610329][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:17:55,294 [DEBUG][       Thread-610329][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:17:55,294 [DEBUG][       Thread-610329][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:17:55,294 [DEBUG][       Thread-610329][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:17:55,294 [DEBUG][       Thread-610329][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:17:55,294 [DEBUG][       Thread-610329][   transport.py][1871] : Compression: none
2025-07-01 16:17:55,294 [DEBUG][       Thread-610329][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:17:55,303 [DEBUG][       Thread-610329][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:17:55,303 [DEBUG][       Thread-610329][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:17:55,303 [DEBUG][       Thread-610329][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:17:55,303 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:17:55,304 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:17:55,304 [DEBUG][       Thread-610329][   transport.py][1871] : userauth is OK
2025-07-01 16:17:55,317 [ INFO][       Thread-610329][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:17:55,317 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:17:55,979 [DEBUG][       Thread-610329][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:17:55,979 [DEBUG][       Thread-610329][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:17:56,020 [DEBUG][       Thread-610329][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:17:56,020 [DEBUG][       Thread-610329][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:17:56,022 [DEBUG][       Thread-610329][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:17:56,035 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:17:56,035 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:17:56,036 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:17:56,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:17:56,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:17:56,041 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:17:56,041 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:17:56,041 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:17:56,041 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.595425 -999.00  +13.60  34.75     51   +3.70 1 2 2 1 1   887    0 9.97 2.79 ----- 36.7 34.8 17.4 39.1 15.1 -23.3 14.8 -23.0 14.8 -22.2 15.3 -23.1
2025-07-01 16:17:56,041 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:17:56,041 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:17:56,041 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.595425
2025-07-01 16:17:56,041 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:17:56,041 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:17:56,041 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:17:56,041 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:17:56,041 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:17:56,041 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:17:32', tmtdew=11.39, humidity=46.15, cloud=0.0, wind=34.44, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:17:24.720', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:17:56,042 [DEBUG][       Thread-610329][   transport.py][1871] : EOF in transport thread
2025-07-01 16:17:56,114 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:17:56,125 [DEBUG][       Thread-610332][   transport.py][1871] : starting thread (client mode): 0x81e77c0
2025-07-01 16:17:56,125 [DEBUG][       Thread-610332][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:17:56,140 [DEBUG][       Thread-610332][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:17:56,140 [ INFO][       Thread-610332][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:17:56,148 [DEBUG][       Thread-610332][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:17:56,148 [DEBUG][       Thread-610332][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:17:56,148 [DEBUG][       Thread-610332][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:17:56,148 [DEBUG][       Thread-610332][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:17:56,148 [DEBUG][       Thread-610332][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:17:56,148 [DEBUG][       Thread-610332][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:17:56,148 [DEBUG][       Thread-610332][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:17:56,148 [DEBUG][       Thread-610332][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:17:56,148 [DEBUG][       Thread-610332][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:17:56,148 [DEBUG][       Thread-610332][   transport.py][1871] : client lang: <none>
2025-07-01 16:17:56,148 [DEBUG][       Thread-610332][   transport.py][1871] : server lang: <none>
2025-07-01 16:17:56,148 [DEBUG][       Thread-610332][   transport.py][1871] : kex follows: False
2025-07-01 16:17:56,148 [DEBUG][       Thread-610332][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:17:56,148 [DEBUG][       Thread-610332][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:17:56,148 [DEBUG][       Thread-610332][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:17:56,148 [DEBUG][       Thread-610332][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:17:56,148 [DEBUG][       Thread-610332][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:17:56,148 [DEBUG][       Thread-610332][   transport.py][1871] : Compression: none
2025-07-01 16:17:56,148 [DEBUG][       Thread-610332][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:17:56,205 [DEBUG][       Thread-610332][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:17:56,206 [DEBUG][       Thread-610332][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:17:56,206 [DEBUG][       Thread-610332][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:17:56,206 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:17:56,206 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:17:56,266 [DEBUG][       Thread-610332][   transport.py][1871] : userauth is OK
2025-07-01 16:17:56,266 [DEBUG][       Thread-610332][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:17:56,266 [DEBUG][       Thread-610332][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:17:56,266 [DEBUG][       Thread-610332][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:17:56,266 [DEBUG][       Thread-610332][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:17:56,282 [ INFO][       Thread-610332][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:17:56,282 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:17:56,282 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:17:57,313 [DEBUG][       Thread-610332][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:17:57,313 [DEBUG][       Thread-610332][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:17:57,364 [DEBUG][       Thread-610332][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:17:57,364 [DEBUG][       Thread-610332][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:17:57,374 [DEBUG][       Thread-610332][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:17:57,382 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:17:57,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-07-01 16:17:57,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-07-01 16:17:57,401 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:17:57,401 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:17:57,401 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:17:57,410 [DEBUG][       Thread-610332][   transport.py][1871] : EOF in transport thread
2025-07-01 16:17:58,251 [DEBUG][Thread-610334 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:18:07,272 [DEBUG][Thread-610335 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:18:07,412 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:18:07,412 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:18:07,412 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:18:07,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-07-01 16:18:07,891 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 18, 4), 11.36, 46.25, 0.0, 35.16, 13.85, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:18:07,891 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:18:04
2025-07-01 16:18:07,976 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:18:07,980 [DEBUG][       Thread-610336][   transport.py][1871] : starting thread (client mode): 0x8171f00
2025-07-01 16:18:07,980 [DEBUG][       Thread-610336][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:18:07,995 [DEBUG][       Thread-610336][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:18:07,995 [ INFO][       Thread-610336][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:18:07,998 [DEBUG][       Thread-610336][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:18:07,999 [DEBUG][       Thread-610336][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:18:07,999 [DEBUG][       Thread-610336][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:18:07,999 [DEBUG][       Thread-610336][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:18:07,999 [DEBUG][       Thread-610336][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:18:07,999 [DEBUG][       Thread-610336][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:18:07,999 [DEBUG][       Thread-610336][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:18:07,999 [DEBUG][       Thread-610336][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:18:07,999 [DEBUG][       Thread-610336][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:18:07,999 [DEBUG][       Thread-610336][   transport.py][1871] : client lang: <none>
2025-07-01 16:18:07,999 [DEBUG][       Thread-610336][   transport.py][1871] : server lang: <none>
2025-07-01 16:18:07,999 [DEBUG][       Thread-610336][   transport.py][1871] : kex follows: False
2025-07-01 16:18:07,999 [DEBUG][       Thread-610336][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:18:07,999 [DEBUG][       Thread-610336][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:18:07,999 [DEBUG][       Thread-610336][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:18:07,999 [DEBUG][       Thread-610336][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:18:07,999 [DEBUG][       Thread-610336][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:18:07,999 [DEBUG][       Thread-610336][   transport.py][1871] : Compression: none
2025-07-01 16:18:07,999 [DEBUG][       Thread-610336][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:18:08,015 [DEBUG][       Thread-610336][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:18:08,016 [DEBUG][       Thread-610336][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:18:08,016 [DEBUG][       Thread-610336][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:18:08,016 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:18:08,017 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:18:08,018 [DEBUG][       Thread-610336][   transport.py][1871] : userauth is OK
2025-07-01 16:18:08,042 [ INFO][       Thread-610336][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:18:08,042 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:18:08,915 [DEBUG][       Thread-610336][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:18:08,916 [DEBUG][       Thread-610336][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:18:08,957 [DEBUG][       Thread-610336][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:18:08,957 [DEBUG][       Thread-610336][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:18:08,959 [DEBUG][       Thread-610336][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:18:08,972 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:18:08,972 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:18:08,974 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:18:08,975 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:18:08,980 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:18:08,982 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:18:08,982 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:18:08,983 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:18:08,983 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.595425 -999.00  +13.60  34.75     51   +3.70 1 2 2 1 1   887    0 9.97 2.79 ----- 36.7 34.8 17.4 39.1 15.1 -23.3 14.8 -23.0 14.8 -22.2 15.3 -23.1
2025-07-01 16:18:08,983 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:18:08,983 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:18:08,983 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.595425
2025-07-01 16:18:08,984 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:18:08,984 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:18:08,984 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:18:08,984 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:18:08,984 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:18:08,985 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:18:04', tmtdew=11.36, humidity=46.25, cloud=0.0, wind=35.16, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:17:24.720', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:18:08,985 [DEBUG][       Thread-610336][   transport.py][1871] : EOF in transport thread
2025-07-01 16:18:09,070 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:18:09,079 [DEBUG][       Thread-610339][   transport.py][1871] : starting thread (client mode): 0x75a82e0
2025-07-01 16:18:09,079 [DEBUG][       Thread-610339][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:18:09,101 [DEBUG][       Thread-610339][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:18:09,101 [ INFO][       Thread-610339][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:18:09,109 [DEBUG][       Thread-610339][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:18:09,109 [DEBUG][       Thread-610339][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:18:09,109 [DEBUG][       Thread-610339][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:18:09,109 [DEBUG][       Thread-610339][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:18:09,109 [DEBUG][       Thread-610339][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:18:09,109 [DEBUG][       Thread-610339][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:18:09,109 [DEBUG][       Thread-610339][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:18:09,109 [DEBUG][       Thread-610339][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:18:09,109 [DEBUG][       Thread-610339][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:18:09,110 [DEBUG][       Thread-610339][   transport.py][1871] : client lang: <none>
2025-07-01 16:18:09,110 [DEBUG][       Thread-610339][   transport.py][1871] : server lang: <none>
2025-07-01 16:18:09,110 [DEBUG][       Thread-610339][   transport.py][1871] : kex follows: False
2025-07-01 16:18:09,110 [DEBUG][       Thread-610339][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:18:09,110 [DEBUG][       Thread-610339][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:18:09,110 [DEBUG][       Thread-610339][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:18:09,110 [DEBUG][       Thread-610339][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:18:09,110 [DEBUG][       Thread-610339][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:18:09,110 [DEBUG][       Thread-610339][   transport.py][1871] : Compression: none
2025-07-01 16:18:09,110 [DEBUG][       Thread-610339][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:18:09,167 [DEBUG][       Thread-610339][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:18:09,168 [DEBUG][       Thread-610339][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:18:09,168 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:18:09,169 [DEBUG][       Thread-610339][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:18:09,169 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:18:09,224 [DEBUG][       Thread-610339][   transport.py][1871] : userauth is OK
2025-07-01 16:18:09,224 [DEBUG][       Thread-610339][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:18:09,224 [DEBUG][       Thread-610339][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:18:09,224 [DEBUG][       Thread-610339][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:18:09,224 [DEBUG][       Thread-610339][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:18:09,243 [ INFO][       Thread-610339][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:18:09,243 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:18:09,243 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:18:10,224 [DEBUG][       Thread-610339][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:18:10,225 [DEBUG][       Thread-610339][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:18:10,279 [DEBUG][       Thread-610339][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:18:10,280 [DEBUG][       Thread-610339][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:18:10,293 [DEBUG][       Thread-610339][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:18:10,301 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:18:10,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-07-01 16:18:10,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-07-01 16:18:10,319 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:18:10,319 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:18:10,319 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:18:10,327 [DEBUG][       Thread-610339][   transport.py][1871] : EOF in transport thread
2025-07-01 16:18:16,294 [DEBUG][Thread-610341 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:18:20,324 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:18:20,325 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:18:20,325 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:18:20,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-07-01 16:18:20,803 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 18, 4), 11.36, 46.25, 0.0, 35.16, 13.85, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:18:20,803 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:18:04
2025-07-01 16:18:20,888 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:18:20,894 [DEBUG][       Thread-610342][   transport.py][1871] : starting thread (client mode): 0x81a7ca0
2025-07-01 16:18:20,894 [DEBUG][       Thread-610342][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:18:20,910 [DEBUG][       Thread-610342][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:18:20,911 [ INFO][       Thread-610342][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:18:20,913 [DEBUG][       Thread-610342][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:18:20,913 [DEBUG][       Thread-610342][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:18:20,913 [DEBUG][       Thread-610342][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:18:20,913 [DEBUG][       Thread-610342][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:18:20,913 [DEBUG][       Thread-610342][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:18:20,913 [DEBUG][       Thread-610342][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:18:20,913 [DEBUG][       Thread-610342][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:18:20,913 [DEBUG][       Thread-610342][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:18:20,913 [DEBUG][       Thread-610342][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:18:20,913 [DEBUG][       Thread-610342][   transport.py][1871] : client lang: <none>
2025-07-01 16:18:20,913 [DEBUG][       Thread-610342][   transport.py][1871] : server lang: <none>
2025-07-01 16:18:20,913 [DEBUG][       Thread-610342][   transport.py][1871] : kex follows: False
2025-07-01 16:18:20,913 [DEBUG][       Thread-610342][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:18:20,913 [DEBUG][       Thread-610342][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:18:20,913 [DEBUG][       Thread-610342][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:18:20,913 [DEBUG][       Thread-610342][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:18:20,913 [DEBUG][       Thread-610342][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:18:20,913 [DEBUG][       Thread-610342][   transport.py][1871] : Compression: none
2025-07-01 16:18:20,913 [DEBUG][       Thread-610342][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:18:20,927 [DEBUG][       Thread-610342][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:18:20,927 [DEBUG][       Thread-610342][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:18:20,928 [DEBUG][       Thread-610342][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:18:20,928 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:18:20,928 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:18:20,929 [DEBUG][       Thread-610342][   transport.py][1871] : userauth is OK
2025-07-01 16:18:20,942 [ INFO][       Thread-610342][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:18:20,942 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:18:21,529 [DEBUG][       Thread-610342][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:18:21,529 [DEBUG][       Thread-610342][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:18:21,573 [DEBUG][       Thread-610342][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:18:21,573 [DEBUG][       Thread-610342][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:18:21,576 [DEBUG][       Thread-610342][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:18:21,584 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:18:21,584 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:18:21,586 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:18:21,587 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:18:21,592 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:18:21,594 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:18:21,594 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:18:21,595 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:18:21,595 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.595772 -999.00  +13.60  26.14     51   +3.90 1 2 1 1 1   887    0 10.04 0.60 ----- 29.1 26.1 33.0 42.5 15.2 -23.4 14.8 -23.0 14.8 -21.8 15.2 -22.7
2025-07-01 16:18:21,595 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:18:21,595 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:18:21,595 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.595772
2025-07-01 16:18:21,596 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:18:21,596 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:18:21,596 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:18:21,596 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:18:21,596 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:18:21,596 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:18:04', tmtdew=11.36, humidity=46.25, cloud=0.0, wind=35.16, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:17:54.701', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:18:21,598 [DEBUG][       Thread-610342][   transport.py][1871] : EOF in transport thread
2025-07-01 16:18:21,679 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:18:21,689 [DEBUG][       Thread-610345][   transport.py][1871] : starting thread (client mode): 0x81c9510
2025-07-01 16:18:21,689 [DEBUG][       Thread-610345][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:18:21,708 [DEBUG][       Thread-610345][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:18:21,708 [ INFO][       Thread-610345][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:18:21,716 [DEBUG][       Thread-610345][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:18:21,716 [DEBUG][       Thread-610345][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:18:21,716 [DEBUG][       Thread-610345][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:18:21,716 [DEBUG][       Thread-610345][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:18:21,716 [DEBUG][       Thread-610345][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:18:21,716 [DEBUG][       Thread-610345][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:18:21,716 [DEBUG][       Thread-610345][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:18:21,716 [DEBUG][       Thread-610345][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:18:21,716 [DEBUG][       Thread-610345][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:18:21,716 [DEBUG][       Thread-610345][   transport.py][1871] : client lang: <none>
2025-07-01 16:18:21,716 [DEBUG][       Thread-610345][   transport.py][1871] : server lang: <none>
2025-07-01 16:18:21,716 [DEBUG][       Thread-610345][   transport.py][1871] : kex follows: False
2025-07-01 16:18:21,716 [DEBUG][       Thread-610345][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:18:21,716 [DEBUG][       Thread-610345][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:18:21,716 [DEBUG][       Thread-610345][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:18:21,716 [DEBUG][       Thread-610345][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:18:21,717 [DEBUG][       Thread-610345][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:18:21,717 [DEBUG][       Thread-610345][   transport.py][1871] : Compression: none
2025-07-01 16:18:21,717 [DEBUG][       Thread-610345][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:18:21,772 [DEBUG][       Thread-610345][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:18:21,773 [DEBUG][       Thread-610345][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:18:21,773 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:18:21,774 [DEBUG][       Thread-610345][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:18:21,775 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:18:21,828 [DEBUG][       Thread-610345][   transport.py][1871] : userauth is OK
2025-07-01 16:18:21,829 [DEBUG][       Thread-610345][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:18:21,829 [DEBUG][       Thread-610345][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:18:21,829 [DEBUG][       Thread-610345][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:18:21,829 [DEBUG][       Thread-610345][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:18:21,852 [ INFO][       Thread-610345][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:18:21,853 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:18:21,853 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:18:22,877 [DEBUG][       Thread-610345][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:18:22,878 [DEBUG][       Thread-610345][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:18:22,928 [DEBUG][       Thread-610345][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:18:22,928 [DEBUG][       Thread-610345][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:18:22,937 [DEBUG][       Thread-610345][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:18:22,946 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:18:22,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')
2025-07-01 16:18:22,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-07-01 16:18:22,965 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:18:22,965 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:18:22,966 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:18:22,974 [DEBUG][       Thread-610345][   transport.py][1871] : EOF in transport thread
2025-07-01 16:18:25,340 [DEBUG][Thread-610347 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:18:32,976 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:18:32,976 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:18:32,976 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:18:32,977 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:18:33,466 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 18, 4), 11.36, 46.25, 0.0, 35.16, 13.85, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:18:33,466 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:18:04
2025-07-01 16:18:33,557 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:18:33,563 [DEBUG][       Thread-610348][   transport.py][1871] : starting thread (client mode): 0x81e7af0
2025-07-01 16:18:33,563 [DEBUG][       Thread-610348][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:18:33,584 [DEBUG][       Thread-610348][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:18:33,584 [ INFO][       Thread-610348][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:18:33,588 [DEBUG][       Thread-610348][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:18:33,588 [DEBUG][       Thread-610348][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:18:33,588 [DEBUG][       Thread-610348][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:18:33,588 [DEBUG][       Thread-610348][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:18:33,588 [DEBUG][       Thread-610348][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:18:33,588 [DEBUG][       Thread-610348][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:18:33,588 [DEBUG][       Thread-610348][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:18:33,588 [DEBUG][       Thread-610348][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:18:33,588 [DEBUG][       Thread-610348][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:18:33,588 [DEBUG][       Thread-610348][   transport.py][1871] : client lang: <none>
2025-07-01 16:18:33,588 [DEBUG][       Thread-610348][   transport.py][1871] : server lang: <none>
2025-07-01 16:18:33,588 [DEBUG][       Thread-610348][   transport.py][1871] : kex follows: False
2025-07-01 16:18:33,588 [DEBUG][       Thread-610348][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:18:33,588 [DEBUG][       Thread-610348][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:18:33,588 [DEBUG][       Thread-610348][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:18:33,588 [DEBUG][       Thread-610348][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:18:33,588 [DEBUG][       Thread-610348][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:18:33,588 [DEBUG][       Thread-610348][   transport.py][1871] : Compression: none
2025-07-01 16:18:33,588 [DEBUG][       Thread-610348][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:18:33,605 [DEBUG][       Thread-610348][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:18:33,606 [DEBUG][       Thread-610348][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:18:33,606 [DEBUG][       Thread-610348][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:18:33,606 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:18:33,606 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:18:33,607 [DEBUG][       Thread-610348][   transport.py][1871] : userauth is OK
2025-07-01 16:18:33,632 [ INFO][       Thread-610348][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:18:33,632 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:18:34,359 [DEBUG][Thread-610350 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:18:34,441 [DEBUG][       Thread-610348][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:18:34,441 [DEBUG][       Thread-610348][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:18:34,484 [DEBUG][       Thread-610348][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:18:34,484 [DEBUG][       Thread-610348][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:18:34,487 [DEBUG][       Thread-610348][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:18:34,500 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:18:34,500 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:18:34,501 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:18:34,502 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:18:34,505 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:18:34,506 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:18:34,506 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:18:34,506 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:18:34,506 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.595772 -999.00  +13.60  26.14     51   +3.90 1 2 1 1 1   887    0 10.04 0.60 ----- 29.1 26.1 33.0 42.5 15.2 -23.4 14.8 -23.0 14.8 -21.8 15.2 -22.7
2025-07-01 16:18:34,506 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:18:34,506 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:18:34,506 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.595772
2025-07-01 16:18:34,506 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:18:34,506 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:18:34,506 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:18:34,506 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:18:34,506 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:18:34,506 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:18:04', tmtdew=11.36, humidity=46.25, cloud=0.0, wind=35.16, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:17:54.701', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:18:34,507 [DEBUG][       Thread-610348][   transport.py][1871] : EOF in transport thread
2025-07-01 16:18:34,579 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:18:34,591 [DEBUG][       Thread-610352][   transport.py][1871] : starting thread (client mode): 0x827db40
2025-07-01 16:18:34,591 [DEBUG][       Thread-610352][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:18:34,607 [DEBUG][       Thread-610352][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:18:34,607 [ INFO][       Thread-610352][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:18:34,614 [DEBUG][       Thread-610352][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:18:34,614 [DEBUG][       Thread-610352][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:18:34,614 [DEBUG][       Thread-610352][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:18:34,614 [DEBUG][       Thread-610352][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:18:34,614 [DEBUG][       Thread-610352][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:18:34,614 [DEBUG][       Thread-610352][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:18:34,614 [DEBUG][       Thread-610352][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:18:34,614 [DEBUG][       Thread-610352][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:18:34,614 [DEBUG][       Thread-610352][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:18:34,614 [DEBUG][       Thread-610352][   transport.py][1871] : client lang: <none>
2025-07-01 16:18:34,614 [DEBUG][       Thread-610352][   transport.py][1871] : server lang: <none>
2025-07-01 16:18:34,614 [DEBUG][       Thread-610352][   transport.py][1871] : kex follows: False
2025-07-01 16:18:34,614 [DEBUG][       Thread-610352][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:18:34,614 [DEBUG][       Thread-610352][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:18:34,614 [DEBUG][       Thread-610352][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:18:34,614 [DEBUG][       Thread-610352][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:18:34,614 [DEBUG][       Thread-610352][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:18:34,614 [DEBUG][       Thread-610352][   transport.py][1871] : Compression: none
2025-07-01 16:18:34,615 [DEBUG][       Thread-610352][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:18:34,673 [DEBUG][       Thread-610352][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:18:34,674 [DEBUG][       Thread-610352][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:18:34,674 [DEBUG][       Thread-610352][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:18:34,674 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:18:34,674 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:18:34,732 [DEBUG][       Thread-610352][   transport.py][1871] : userauth is OK
2025-07-01 16:18:34,732 [DEBUG][       Thread-610352][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:18:34,732 [DEBUG][       Thread-610352][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:18:34,732 [DEBUG][       Thread-610352][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:18:34,732 [DEBUG][       Thread-610352][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:18:34,747 [ INFO][       Thread-610352][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:18:34,747 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:18:34,747 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:18:35,798 [DEBUG][       Thread-610352][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:18:35,798 [DEBUG][       Thread-610352][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:18:35,848 [DEBUG][       Thread-610352][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:18:35,849 [DEBUG][       Thread-610352][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:18:35,858 [DEBUG][       Thread-610352][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:18:35,867 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:18:35,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-07-01 16:18:35,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') -> 00000000
2025-07-01 16:18:35,886 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:18:35,886 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:18:35,887 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:18:35,895 [DEBUG][       Thread-610352][   transport.py][1871] : EOF in transport thread
2025-07-01 16:18:38,400 [DEBUG][Thread-610354 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:18:43,379 [DEBUG][Thread-610355 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:18:45,896 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:18:45,896 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:18:45,896 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:18:45,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-07-01 16:18:46,376 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 18, 36), 11.36, 46.24, 0.0, 26.57, 13.84, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:18:46,376 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:18:36
2025-07-01 16:18:46,462 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:18:46,466 [DEBUG][       Thread-610356][   transport.py][1871] : starting thread (client mode): 0x81a67d0
2025-07-01 16:18:46,466 [DEBUG][       Thread-610356][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:18:46,486 [DEBUG][       Thread-610356][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:18:46,487 [ INFO][       Thread-610356][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:18:46,490 [DEBUG][       Thread-610356][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:18:46,490 [DEBUG][       Thread-610356][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:18:46,490 [DEBUG][       Thread-610356][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:18:46,490 [DEBUG][       Thread-610356][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:18:46,490 [DEBUG][       Thread-610356][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:18:46,490 [DEBUG][       Thread-610356][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:18:46,490 [DEBUG][       Thread-610356][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:18:46,490 [DEBUG][       Thread-610356][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:18:46,490 [DEBUG][       Thread-610356][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:18:46,490 [DEBUG][       Thread-610356][   transport.py][1871] : client lang: <none>
2025-07-01 16:18:46,490 [DEBUG][       Thread-610356][   transport.py][1871] : server lang: <none>
2025-07-01 16:18:46,490 [DEBUG][       Thread-610356][   transport.py][1871] : kex follows: False
2025-07-01 16:18:46,490 [DEBUG][       Thread-610356][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:18:46,490 [DEBUG][       Thread-610356][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:18:46,490 [DEBUG][       Thread-610356][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:18:46,490 [DEBUG][       Thread-610356][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:18:46,490 [DEBUG][       Thread-610356][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:18:46,490 [DEBUG][       Thread-610356][   transport.py][1871] : Compression: none
2025-07-01 16:18:46,490 [DEBUG][       Thread-610356][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:18:46,506 [DEBUG][       Thread-610356][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:18:46,507 [DEBUG][       Thread-610356][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:18:46,507 [DEBUG][       Thread-610356][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:18:46,507 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:18:46,508 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:18:46,509 [DEBUG][       Thread-610356][   transport.py][1871] : userauth is OK
2025-07-01 16:18:46,522 [ INFO][       Thread-610356][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:18:46,522 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:18:47,147 [DEBUG][       Thread-610356][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:18:47,148 [DEBUG][       Thread-610356][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:18:47,189 [DEBUG][       Thread-610356][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:18:47,189 [DEBUG][       Thread-610356][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:18:47,192 [DEBUG][       Thread-610356][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:18:47,202 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:18:47,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:18:47,204 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:18:47,206 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:18:47,211 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:18:47,212 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:18:47,213 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:18:47,213 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:18:47,213 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.595772 -999.00  +13.60  26.14     51   +3.90 1 2 1 1 1   887    0 10.04 0.60 ----- 29.1 26.1 33.0 42.5 15.2 -23.4 14.8 -23.0 14.8 -21.8 15.2 -22.7
2025-07-01 16:18:47,213 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:18:47,213 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:18:47,214 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.595772
2025-07-01 16:18:47,214 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:18:47,215 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:18:47,215 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:18:47,215 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:18:47,215 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:18:47,215 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:18:36', tmtdew=11.36, humidity=46.24, cloud=0.0, wind=26.57, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:17:54.701', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:18:47,216 [DEBUG][       Thread-610356][   transport.py][1871] : EOF in transport thread
2025-07-01 16:18:47,300 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:18:47,309 [DEBUG][       Thread-610359][   transport.py][1871] : starting thread (client mode): 0x818fb50
2025-07-01 16:18:47,309 [DEBUG][       Thread-610359][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:18:47,324 [DEBUG][       Thread-610359][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:18:47,324 [ INFO][       Thread-610359][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:18:47,332 [DEBUG][       Thread-610359][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:18:47,332 [DEBUG][       Thread-610359][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:18:47,332 [DEBUG][       Thread-610359][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:18:47,332 [DEBUG][       Thread-610359][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:18:47,332 [DEBUG][       Thread-610359][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:18:47,332 [DEBUG][       Thread-610359][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:18:47,332 [DEBUG][       Thread-610359][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:18:47,332 [DEBUG][       Thread-610359][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:18:47,332 [DEBUG][       Thread-610359][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:18:47,332 [DEBUG][       Thread-610359][   transport.py][1871] : client lang: <none>
2025-07-01 16:18:47,332 [DEBUG][       Thread-610359][   transport.py][1871] : server lang: <none>
2025-07-01 16:18:47,332 [DEBUG][       Thread-610359][   transport.py][1871] : kex follows: False
2025-07-01 16:18:47,332 [DEBUG][       Thread-610359][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:18:47,332 [DEBUG][       Thread-610359][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:18:47,332 [DEBUG][       Thread-610359][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:18:47,332 [DEBUG][       Thread-610359][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:18:47,332 [DEBUG][       Thread-610359][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:18:47,332 [DEBUG][       Thread-610359][   transport.py][1871] : Compression: none
2025-07-01 16:18:47,332 [DEBUG][       Thread-610359][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:18:47,394 [DEBUG][       Thread-610359][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:18:47,394 [DEBUG][       Thread-610359][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:18:47,395 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:18:47,395 [DEBUG][       Thread-610359][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:18:47,396 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:18:47,449 [DEBUG][       Thread-610359][   transport.py][1871] : userauth is OK
2025-07-01 16:18:47,449 [DEBUG][       Thread-610359][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:18:47,449 [DEBUG][       Thread-610359][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:18:47,449 [DEBUG][       Thread-610359][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:18:47,449 [DEBUG][       Thread-610359][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:18:47,468 [ INFO][       Thread-610359][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:18:47,469 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:18:47,469 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:18:48,496 [DEBUG][       Thread-610359][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:18:48,496 [DEBUG][       Thread-610359][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:18:48,544 [DEBUG][       Thread-610359][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:18:48,544 [DEBUG][       Thread-610359][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:18:48,553 [DEBUG][       Thread-610359][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:18:48,563 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:18:48,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')
2025-07-01 16:18:48,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-07-01 16:18:48,580 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:18:48,580 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:18:48,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:18:48,589 [DEBUG][       Thread-610359][   transport.py][1871] : EOF in transport thread
2025-07-01 16:18:52,401 [DEBUG][Thread-610361 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:18:58,591 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:18:58,592 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:18:58,592 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:18:58,595 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:18:59,062 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 18, 36), 11.36, 46.24, 0.0, 26.57, 13.84, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:18:59,062 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:18:36
2025-07-01 16:18:59,147 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:18:59,153 [DEBUG][       Thread-610362][   transport.py][1871] : starting thread (client mode): 0x818fee0
2025-07-01 16:18:59,153 [DEBUG][       Thread-610362][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:18:59,174 [DEBUG][       Thread-610362][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:18:59,174 [ INFO][       Thread-610362][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:18:59,177 [DEBUG][       Thread-610362][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:18:59,177 [DEBUG][       Thread-610362][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:18:59,177 [DEBUG][       Thread-610362][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:18:59,177 [DEBUG][       Thread-610362][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:18:59,177 [DEBUG][       Thread-610362][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:18:59,177 [DEBUG][       Thread-610362][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:18:59,177 [DEBUG][       Thread-610362][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:18:59,178 [DEBUG][       Thread-610362][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:18:59,178 [DEBUG][       Thread-610362][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:18:59,178 [DEBUG][       Thread-610362][   transport.py][1871] : client lang: <none>
2025-07-01 16:18:59,178 [DEBUG][       Thread-610362][   transport.py][1871] : server lang: <none>
2025-07-01 16:18:59,178 [DEBUG][       Thread-610362][   transport.py][1871] : kex follows: False
2025-07-01 16:18:59,178 [DEBUG][       Thread-610362][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:18:59,178 [DEBUG][       Thread-610362][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:18:59,178 [DEBUG][       Thread-610362][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:18:59,178 [DEBUG][       Thread-610362][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:18:59,178 [DEBUG][       Thread-610362][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:18:59,178 [DEBUG][       Thread-610362][   transport.py][1871] : Compression: none
2025-07-01 16:18:59,178 [DEBUG][       Thread-610362][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:18:59,195 [DEBUG][       Thread-610362][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:18:59,195 [DEBUG][       Thread-610362][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:18:59,196 [DEBUG][       Thread-610362][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:18:59,196 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:18:59,196 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:18:59,197 [DEBUG][       Thread-610362][   transport.py][1871] : userauth is OK
2025-07-01 16:18:59,210 [ INFO][       Thread-610362][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:18:59,211 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:18:59,914 [DEBUG][       Thread-610362][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:18:59,914 [DEBUG][       Thread-610362][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:18:59,957 [DEBUG][       Thread-610362][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:18:59,957 [DEBUG][       Thread-610362][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:18:59,961 [DEBUG][       Thread-610362][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:18:59,975 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:18:59,975 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:18:59,976 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:18:59,977 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:18:59,980 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:18:59,981 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:18:59,981 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:18:59,981 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:18:59,981 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.596119 -999.00  +13.60  34.04     51   +3.70 1 2 2 1 1   887    0 9.88 -0.79 ----- 35.0 34.0 20.5 47.2 15.2 -23.3 14.8 -23.1 14.8 -21.8 15.2 -22.1
2025-07-01 16:18:59,981 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:18:59,981 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:18:59,981 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.596119
2025-07-01 16:18:59,981 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:18:59,981 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:18:59,981 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:18:59,981 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:18:59,981 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:18:59,982 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:18:36', tmtdew=11.36, humidity=46.24, cloud=0.0, wind=26.57, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:18:24.682', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:18:59,982 [DEBUG][       Thread-610362][   transport.py][1871] : EOF in transport thread
2025-07-01 16:19:00,053 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:19:00,064 [DEBUG][       Thread-610365][   transport.py][1871] : starting thread (client mode): 0x81561d0
2025-07-01 16:19:00,064 [DEBUG][       Thread-610365][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:19:00,081 [DEBUG][       Thread-610365][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:19:00,081 [ INFO][       Thread-610365][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:19:00,088 [DEBUG][       Thread-610365][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:19:00,088 [DEBUG][       Thread-610365][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:19:00,088 [DEBUG][       Thread-610365][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:19:00,088 [DEBUG][       Thread-610365][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:19:00,088 [DEBUG][       Thread-610365][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:19:00,088 [DEBUG][       Thread-610365][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:19:00,088 [DEBUG][       Thread-610365][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:19:00,088 [DEBUG][       Thread-610365][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:19:00,088 [DEBUG][       Thread-610365][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:19:00,088 [DEBUG][       Thread-610365][   transport.py][1871] : client lang: <none>
2025-07-01 16:19:00,088 [DEBUG][       Thread-610365][   transport.py][1871] : server lang: <none>
2025-07-01 16:19:00,088 [DEBUG][       Thread-610365][   transport.py][1871] : kex follows: False
2025-07-01 16:19:00,088 [DEBUG][       Thread-610365][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:19:00,088 [DEBUG][       Thread-610365][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:19:00,088 [DEBUG][       Thread-610365][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:19:00,088 [DEBUG][       Thread-610365][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:19:00,088 [DEBUG][       Thread-610365][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:19:00,088 [DEBUG][       Thread-610365][   transport.py][1871] : Compression: none
2025-07-01 16:19:00,088 [DEBUG][       Thread-610365][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:19:00,145 [DEBUG][       Thread-610365][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:19:00,146 [DEBUG][       Thread-610365][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:19:00,146 [DEBUG][       Thread-610365][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:19:00,147 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:19:00,147 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:19:00,209 [DEBUG][       Thread-610365][   transport.py][1871] : userauth is OK
2025-07-01 16:19:00,209 [DEBUG][       Thread-610365][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:19:00,209 [DEBUG][       Thread-610365][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:19:00,209 [DEBUG][       Thread-610365][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:19:00,210 [DEBUG][       Thread-610365][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:19:00,228 [ INFO][       Thread-610365][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:19:00,229 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:19:00,229 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:19:01,335 [DEBUG][       Thread-610365][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:19:01,335 [DEBUG][       Thread-610365][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:19:01,384 [DEBUG][       Thread-610365][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:19:01,384 [DEBUG][       Thread-610365][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:19:01,394 [DEBUG][       Thread-610365][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:19:01,402 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:19:01,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-07-01 16:19:01,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-07-01 16:19:01,428 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:19:01,429 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:19:01,429 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:19:01,434 [DEBUG][Thread-610367 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:19:01,440 [DEBUG][       Thread-610365][   transport.py][1871] : EOF in transport thread
2025-07-01 16:19:10,453 [DEBUG][Thread-610368 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:19:11,439 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:19:11,439 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:19:11,440 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:19:11,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-07-01 16:19:11,931 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 19, 8), 11.33, 46.35, 0.0, 27.28, 13.85, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:19:11,931 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:19:08
2025-07-01 16:19:12,021 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:19:12,026 [DEBUG][       Thread-610369][   transport.py][1871] : starting thread (client mode): 0x81a5cc0
2025-07-01 16:19:12,026 [DEBUG][       Thread-610369][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:19:12,048 [DEBUG][       Thread-610369][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:19:12,048 [ INFO][       Thread-610369][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:19:12,051 [DEBUG][       Thread-610369][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:19:12,051 [DEBUG][       Thread-610369][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:19:12,051 [DEBUG][       Thread-610369][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:19:12,051 [DEBUG][       Thread-610369][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:19:12,051 [DEBUG][       Thread-610369][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:19:12,051 [DEBUG][       Thread-610369][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:19:12,051 [DEBUG][       Thread-610369][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:19:12,051 [DEBUG][       Thread-610369][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:19:12,051 [DEBUG][       Thread-610369][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:19:12,051 [DEBUG][       Thread-610369][   transport.py][1871] : client lang: <none>
2025-07-01 16:19:12,051 [DEBUG][       Thread-610369][   transport.py][1871] : server lang: <none>
2025-07-01 16:19:12,051 [DEBUG][       Thread-610369][   transport.py][1871] : kex follows: False
2025-07-01 16:19:12,051 [DEBUG][       Thread-610369][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:19:12,051 [DEBUG][       Thread-610369][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:19:12,051 [DEBUG][       Thread-610369][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:19:12,051 [DEBUG][       Thread-610369][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:19:12,051 [DEBUG][       Thread-610369][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:19:12,051 [DEBUG][       Thread-610369][   transport.py][1871] : Compression: none
2025-07-01 16:19:12,051 [DEBUG][       Thread-610369][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:19:12,067 [DEBUG][       Thread-610369][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:19:12,067 [DEBUG][       Thread-610369][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:19:12,067 [DEBUG][       Thread-610369][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:19:12,067 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:19:12,067 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:19:12,068 [DEBUG][       Thread-610369][   transport.py][1871] : userauth is OK
2025-07-01 16:19:12,092 [ INFO][       Thread-610369][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:19:12,092 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:19:12,769 [DEBUG][       Thread-610369][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:19:12,769 [DEBUG][       Thread-610369][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:19:12,812 [DEBUG][       Thread-610369][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:19:12,813 [DEBUG][       Thread-610369][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:19:12,815 [DEBUG][       Thread-610369][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:19:12,828 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:19:12,828 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:19:12,829 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:19:12,830 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:19:12,833 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:19:12,833 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:19:12,833 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:19:12,834 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:19:12,834 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.596119 -999.00  +13.60  34.04     51   +3.70 1 2 2 1 1   887    0 9.88 -0.79 ----- 35.0 34.0 20.5 47.2 15.2 -23.3 14.8 -23.1 14.8 -21.8 15.2 -22.1
2025-07-01 16:19:12,834 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:19:12,834 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:19:12,834 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.596119
2025-07-01 16:19:12,834 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:19:12,834 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:19:12,834 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:19:12,834 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:19:12,834 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:19:12,834 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:19:08', tmtdew=11.33, humidity=46.35, cloud=0.0, wind=27.28, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:18:24.682', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:19:12,834 [DEBUG][       Thread-610369][   transport.py][1871] : EOF in transport thread
2025-07-01 16:19:12,906 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:19:12,915 [DEBUG][       Thread-610372][   transport.py][1871] : starting thread (client mode): 0x8170760
2025-07-01 16:19:12,915 [DEBUG][       Thread-610372][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:19:12,930 [DEBUG][       Thread-610372][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:19:12,930 [ INFO][       Thread-610372][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:19:12,937 [DEBUG][       Thread-610372][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:19:12,937 [DEBUG][       Thread-610372][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:19:12,937 [DEBUG][       Thread-610372][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:19:12,937 [DEBUG][       Thread-610372][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:19:12,937 [DEBUG][       Thread-610372][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:19:12,937 [DEBUG][       Thread-610372][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:19:12,938 [DEBUG][       Thread-610372][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:19:12,938 [DEBUG][       Thread-610372][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:19:12,938 [DEBUG][       Thread-610372][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:19:12,938 [DEBUG][       Thread-610372][   transport.py][1871] : client lang: <none>
2025-07-01 16:19:12,938 [DEBUG][       Thread-610372][   transport.py][1871] : server lang: <none>
2025-07-01 16:19:12,938 [DEBUG][       Thread-610372][   transport.py][1871] : kex follows: False
2025-07-01 16:19:12,938 [DEBUG][       Thread-610372][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:19:12,938 [DEBUG][       Thread-610372][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:19:12,938 [DEBUG][       Thread-610372][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:19:12,938 [DEBUG][       Thread-610372][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:19:12,938 [DEBUG][       Thread-610372][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:19:12,938 [DEBUG][       Thread-610372][   transport.py][1871] : Compression: none
2025-07-01 16:19:12,938 [DEBUG][       Thread-610372][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:19:12,996 [DEBUG][       Thread-610372][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:19:12,996 [DEBUG][       Thread-610372][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:19:12,997 [DEBUG][       Thread-610372][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:19:12,997 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:19:12,997 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:19:13,053 [DEBUG][       Thread-610372][   transport.py][1871] : userauth is OK
2025-07-01 16:19:13,053 [DEBUG][       Thread-610372][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:19:13,053 [DEBUG][       Thread-610372][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:19:13,054 [DEBUG][       Thread-610372][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:19:13,054 [DEBUG][       Thread-610372][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:19:13,071 [ INFO][       Thread-610372][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:19:13,072 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:19:13,072 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:19:14,094 [DEBUG][       Thread-610372][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:19:14,094 [DEBUG][       Thread-610372][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:19:14,144 [DEBUG][       Thread-610372][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:19:14,144 [DEBUG][       Thread-610372][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:19:14,154 [DEBUG][       Thread-610372][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:19:14,164 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:19:14,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-07-01 16:19:14,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-07-01 16:19:14,183 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:19:14,183 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:19:14,184 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:19:14,193 [DEBUG][       Thread-610372][   transport.py][1871] : EOF in transport thread
2025-07-01 16:19:19,474 [DEBUG][Thread-610374 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:19:24,195 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:19:24,195 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:19:24,195 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:19:24,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-07-01 16:19:24,679 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 19, 8), 11.33, 46.35, 0.0, 27.28, 13.85, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:19:24,679 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:19:08
2025-07-01 16:19:24,765 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:19:24,772 [DEBUG][       Thread-610375][   transport.py][1871] : starting thread (client mode): 0x81a5240
2025-07-01 16:19:24,772 [DEBUG][       Thread-610375][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:19:24,793 [DEBUG][       Thread-610375][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:19:24,793 [ INFO][       Thread-610375][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:19:24,797 [DEBUG][       Thread-610375][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:19:24,797 [DEBUG][       Thread-610375][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:19:24,797 [DEBUG][       Thread-610375][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:19:24,797 [DEBUG][       Thread-610375][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:19:24,797 [DEBUG][       Thread-610375][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:19:24,797 [DEBUG][       Thread-610375][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:19:24,797 [DEBUG][       Thread-610375][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:19:24,797 [DEBUG][       Thread-610375][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:19:24,797 [DEBUG][       Thread-610375][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:19:24,797 [DEBUG][       Thread-610375][   transport.py][1871] : client lang: <none>
2025-07-01 16:19:24,797 [DEBUG][       Thread-610375][   transport.py][1871] : server lang: <none>
2025-07-01 16:19:24,797 [DEBUG][       Thread-610375][   transport.py][1871] : kex follows: False
2025-07-01 16:19:24,797 [DEBUG][       Thread-610375][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:19:24,797 [DEBUG][       Thread-610375][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:19:24,797 [DEBUG][       Thread-610375][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:19:24,797 [DEBUG][       Thread-610375][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:19:24,797 [DEBUG][       Thread-610375][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:19:24,797 [DEBUG][       Thread-610375][   transport.py][1871] : Compression: none
2025-07-01 16:19:24,797 [DEBUG][       Thread-610375][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:19:24,816 [DEBUG][       Thread-610375][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:19:24,817 [DEBUG][       Thread-610375][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:19:24,817 [DEBUG][       Thread-610375][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:19:24,817 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:19:24,818 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:19:24,819 [DEBUG][       Thread-610375][   transport.py][1871] : userauth is OK
2025-07-01 16:19:24,832 [ INFO][       Thread-610375][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:19:24,832 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:19:25,498 [DEBUG][       Thread-610375][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:19:25,498 [DEBUG][       Thread-610375][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:19:25,540 [DEBUG][       Thread-610375][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:19:25,541 [DEBUG][       Thread-610375][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:19:25,542 [DEBUG][       Thread-610375][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:19:25,549 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:19:25,550 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:19:25,551 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:19:25,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:19:25,557 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:19:25,558 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:19:25,559 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:19:25,559 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:19:25,560 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.596119 -999.00  +13.60  34.04     51   +3.70 1 2 2 1 1   887    0 9.88 -0.79 ----- 35.0 34.0 20.5 47.2 15.2 -23.3 14.8 -23.1 14.8 -21.8 15.2 -22.1
2025-07-01 16:19:25,560 [DEBUG][       Thread-610375][   transport.py][1871] : EOF in transport thread
2025-07-01 16:19:25,560 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:19:25,561 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:19:25,561 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.596119
2025-07-01 16:19:25,562 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:19:25,562 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:19:25,562 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:19:25,563 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:19:25,563 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:19:25,563 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:19:08', tmtdew=11.33, humidity=46.35, cloud=0.0, wind=27.28, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:18:24.682', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:19:25,648 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:19:25,659 [DEBUG][       Thread-610378][   transport.py][1871] : starting thread (client mode): 0x827d540
2025-07-01 16:19:25,659 [DEBUG][       Thread-610378][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:19:25,675 [DEBUG][       Thread-610378][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:19:25,675 [ INFO][       Thread-610378][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:19:25,684 [DEBUG][       Thread-610378][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:19:25,684 [DEBUG][       Thread-610378][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:19:25,684 [DEBUG][       Thread-610378][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:19:25,684 [DEBUG][       Thread-610378][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:19:25,684 [DEBUG][       Thread-610378][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:19:25,684 [DEBUG][       Thread-610378][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:19:25,684 [DEBUG][       Thread-610378][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:19:25,684 [DEBUG][       Thread-610378][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:19:25,684 [DEBUG][       Thread-610378][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:19:25,684 [DEBUG][       Thread-610378][   transport.py][1871] : client lang: <none>
2025-07-01 16:19:25,684 [DEBUG][       Thread-610378][   transport.py][1871] : server lang: <none>
2025-07-01 16:19:25,684 [DEBUG][       Thread-610378][   transport.py][1871] : kex follows: False
2025-07-01 16:19:25,684 [DEBUG][       Thread-610378][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:19:25,685 [DEBUG][       Thread-610378][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:19:25,685 [DEBUG][       Thread-610378][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:19:25,685 [DEBUG][       Thread-610378][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:19:25,685 [DEBUG][       Thread-610378][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:19:25,685 [DEBUG][       Thread-610378][   transport.py][1871] : Compression: none
2025-07-01 16:19:25,685 [DEBUG][       Thread-610378][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:19:25,741 [DEBUG][       Thread-610378][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:19:25,742 [DEBUG][       Thread-610378][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:19:25,742 [DEBUG][       Thread-610378][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:19:25,743 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:19:25,743 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:19:25,798 [DEBUG][       Thread-610378][   transport.py][1871] : userauth is OK
2025-07-01 16:19:25,798 [DEBUG][       Thread-610378][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:19:25,798 [DEBUG][       Thread-610378][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:19:25,798 [DEBUG][       Thread-610378][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:19:25,798 [DEBUG][       Thread-610378][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:19:25,817 [ INFO][       Thread-610378][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:19:25,818 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:19:25,818 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:19:26,862 [DEBUG][       Thread-610378][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:19:26,862 [DEBUG][       Thread-610378][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:19:26,911 [DEBUG][       Thread-610378][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:19:26,911 [DEBUG][       Thread-610378][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:19:26,920 [DEBUG][       Thread-610378][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:19:26,929 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:19:26,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-07-01 16:19:26,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-07-01 16:19:26,947 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:19:26,947 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:19:26,948 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:19:26,955 [DEBUG][       Thread-610378][   transport.py][1871] : EOF in transport thread
2025-07-01 16:19:28,507 [DEBUG][Thread-610380 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:19:36,958 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:19:36,959 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:19:36,959 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:19:36,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-07-01 16:19:37,440 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 19, 8), 11.33, 46.35, 0.0, 27.28, 13.85, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:19:37,440 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:19:08
2025-07-01 16:19:37,525 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:19:37,526 [DEBUG][Thread-610381 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:19:37,529 [DEBUG][       Thread-610382][   transport.py][1871] : starting thread (client mode): 0x81cbe80
2025-07-01 16:19:37,529 [DEBUG][       Thread-610382][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:19:37,549 [DEBUG][       Thread-610382][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:19:37,549 [ INFO][       Thread-610382][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:19:37,553 [DEBUG][       Thread-610382][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:19:37,553 [DEBUG][       Thread-610382][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:19:37,553 [DEBUG][       Thread-610382][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:19:37,553 [DEBUG][       Thread-610382][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:19:37,553 [DEBUG][       Thread-610382][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:19:37,553 [DEBUG][       Thread-610382][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:19:37,553 [DEBUG][       Thread-610382][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:19:37,553 [DEBUG][       Thread-610382][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:19:37,553 [DEBUG][       Thread-610382][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:19:37,553 [DEBUG][       Thread-610382][   transport.py][1871] : client lang: <none>
2025-07-01 16:19:37,553 [DEBUG][       Thread-610382][   transport.py][1871] : server lang: <none>
2025-07-01 16:19:37,553 [DEBUG][       Thread-610382][   transport.py][1871] : kex follows: False
2025-07-01 16:19:37,553 [DEBUG][       Thread-610382][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:19:37,553 [DEBUG][       Thread-610382][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:19:37,553 [DEBUG][       Thread-610382][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:19:37,553 [DEBUG][       Thread-610382][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:19:37,553 [DEBUG][       Thread-610382][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:19:37,553 [DEBUG][       Thread-610382][   transport.py][1871] : Compression: none
2025-07-01 16:19:37,553 [DEBUG][       Thread-610382][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:19:37,570 [DEBUG][       Thread-610382][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:19:37,571 [DEBUG][       Thread-610382][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:19:37,571 [DEBUG][       Thread-610382][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:19:37,572 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:19:37,572 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:19:37,573 [DEBUG][       Thread-610382][   transport.py][1871] : userauth is OK
2025-07-01 16:19:37,598 [ INFO][       Thread-610382][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:19:37,598 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:19:38,264 [DEBUG][       Thread-610382][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:19:38,265 [DEBUG][       Thread-610382][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:19:38,309 [DEBUG][       Thread-610382][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:19:38,309 [DEBUG][       Thread-610382][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:19:38,313 [DEBUG][       Thread-610382][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:19:38,325 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:19:38,326 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:19:38,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:19:38,330 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:19:38,337 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:19:38,339 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:19:38,339 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:19:38,340 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:19:38,340 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.596467 -999.00  +13.60  28.79     51   +3.80 1 2 1 1 1   887    0 9.84 -1.80 ----- 24.7 28.8 37.4 45.0 15.1 -23.1 14.8 -23.0 14.8 -22.0 15.2 -22.0
2025-07-01 16:19:38,340 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:19:38,340 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:19:38,340 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.596467
2025-07-01 16:19:38,340 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:19:38,341 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:19:38,341 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:19:38,341 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:19:38,341 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:19:38,341 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:19:08', tmtdew=11.33, humidity=46.35, cloud=0.0, wind=27.28, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:18:54.749', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:19:38,343 [DEBUG][       Thread-610382][   transport.py][1871] : EOF in transport thread
2025-07-01 16:19:38,425 [DEBUG][Thread-610385 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:19:38,426 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:19:46,544 [DEBUG][Thread-610386 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:19:55,565 [DEBUG][Thread-610387 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:20:04,587 [DEBUG][Thread-610388 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:20:13,606 [DEBUG][Thread-610389 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:20:22,627 [DEBUG][Thread-610390 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:20:31,648 [DEBUG][Thread-610391 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:20:38,457 [DEBUG][Thread-610392 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:20:40,670 [DEBUG][Thread-610393 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:20:49,692 [DEBUG][Thread-610394 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:20:58,715 [DEBUG][Thread-610395 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:21:07,737 [DEBUG][Thread-610396 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:21:16,757 [DEBUG][Thread-610397 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:21:25,781 [DEBUG][Thread-610398 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:21:34,805 [DEBUG][Thread-610399 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:21:38,488 [DEBUG][Thread-610400 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:21:43,821 [DEBUG][Thread-610401 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:21:48,180 [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-07-01 16:21:52,842 [DEBUG][Thread-610402 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:21:58,190 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:21:58,191 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:21:58,191 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:21:58,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-07-01 16:21:58,705 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 21, 47), 11.16, 46.88, 0.0, 23.29, 13.8, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:21:58,705 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:21:47
2025-07-01 16:21:58,791 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:21:58,796 [DEBUG][       Thread-610403][   transport.py][1871] : starting thread (client mode): 0x81d80d0
2025-07-01 16:21:58,797 [DEBUG][       Thread-610403][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:21:58,816 [DEBUG][       Thread-610403][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:21:58,816 [ INFO][       Thread-610403][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:21:58,820 [DEBUG][       Thread-610403][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:21:58,820 [DEBUG][       Thread-610403][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:21:58,820 [DEBUG][       Thread-610403][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:21:58,820 [DEBUG][       Thread-610403][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:21:58,820 [DEBUG][       Thread-610403][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:21:58,820 [DEBUG][       Thread-610403][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:21:58,820 [DEBUG][       Thread-610403][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:21:58,820 [DEBUG][       Thread-610403][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:21:58,820 [DEBUG][       Thread-610403][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:21:58,820 [DEBUG][       Thread-610403][   transport.py][1871] : client lang: <none>
2025-07-01 16:21:58,820 [DEBUG][       Thread-610403][   transport.py][1871] : server lang: <none>
2025-07-01 16:21:58,820 [DEBUG][       Thread-610403][   transport.py][1871] : kex follows: False
2025-07-01 16:21:58,820 [DEBUG][       Thread-610403][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:21:58,820 [DEBUG][       Thread-610403][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:21:58,820 [DEBUG][       Thread-610403][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:21:58,820 [DEBUG][       Thread-610403][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:21:58,820 [DEBUG][       Thread-610403][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:21:58,820 [DEBUG][       Thread-610403][   transport.py][1871] : Compression: none
2025-07-01 16:21:58,820 [DEBUG][       Thread-610403][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:21:58,836 [DEBUG][       Thread-610403][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:21:58,837 [DEBUG][       Thread-610403][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:21:58,837 [DEBUG][       Thread-610403][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:21:58,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:21:58,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:21:58,839 [DEBUG][       Thread-610403][   transport.py][1871] : userauth is OK
2025-07-01 16:21:58,863 [ INFO][       Thread-610403][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:21:58,864 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:21:59,522 [DEBUG][       Thread-610403][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:21:59,523 [DEBUG][       Thread-610403][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:21:59,565 [DEBUG][       Thread-610403][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:21:59,565 [DEBUG][       Thread-610403][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:21:59,568 [DEBUG][       Thread-610403][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:21:59,581 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:21:59,582 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:21:59,584 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:21:59,586 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:21:59,592 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:21:59,593 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:21:59,594 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:21:59,594 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:21:59,594 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.598203 -999.00  +13.50  32.58     51   +3.80 1 2 2 1 1   887    0 9.79 -9.77 ----- 25.8 32.6 33.1 38.7 14.9 -22.5 14.7 -22.2 14.7 -21.1 15.1 -21.0
2025-07-01 16:21:59,595 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:21:59,595 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:21:59,595 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.598203
2025-07-01 16:21:59,595 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:21:59,596 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:21:59,596 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:21:59,596 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:21:59,596 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:21:59,596 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:21:47', tmtdew=11.16, humidity=46.88, cloud=0.0, wind=23.29, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:21:24.739', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:21:59,597 [DEBUG][       Thread-610403][   transport.py][1871] : EOF in transport thread
2025-07-01 16:21:59,680 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:21:59,691 [DEBUG][       Thread-610406][   transport.py][1871] : starting thread (client mode): 0x81a7fd0
2025-07-01 16:21:59,691 [DEBUG][       Thread-610406][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:21:59,706 [DEBUG][       Thread-610406][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:21:59,706 [ INFO][       Thread-610406][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:21:59,714 [DEBUG][       Thread-610406][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:21:59,714 [DEBUG][       Thread-610406][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:21:59,714 [DEBUG][       Thread-610406][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:21:59,714 [DEBUG][       Thread-610406][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:21:59,714 [DEBUG][       Thread-610406][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:21:59,714 [DEBUG][       Thread-610406][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:21:59,714 [DEBUG][       Thread-610406][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:21:59,714 [DEBUG][       Thread-610406][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:21:59,714 [DEBUG][       Thread-610406][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:21:59,714 [DEBUG][       Thread-610406][   transport.py][1871] : client lang: <none>
2025-07-01 16:21:59,714 [DEBUG][       Thread-610406][   transport.py][1871] : server lang: <none>
2025-07-01 16:21:59,714 [DEBUG][       Thread-610406][   transport.py][1871] : kex follows: False
2025-07-01 16:21:59,714 [DEBUG][       Thread-610406][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:21:59,714 [DEBUG][       Thread-610406][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:21:59,714 [DEBUG][       Thread-610406][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:21:59,714 [DEBUG][       Thread-610406][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:21:59,714 [DEBUG][       Thread-610406][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:21:59,714 [DEBUG][       Thread-610406][   transport.py][1871] : Compression: none
2025-07-01 16:21:59,715 [DEBUG][       Thread-610406][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:21:59,770 [DEBUG][       Thread-610406][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:21:59,770 [DEBUG][       Thread-610406][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:21:59,771 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:21:59,772 [DEBUG][       Thread-610406][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:21:59,772 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:21:59,830 [DEBUG][       Thread-610406][   transport.py][1871] : userauth is OK
2025-07-01 16:21:59,830 [DEBUG][       Thread-610406][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:21:59,830 [DEBUG][       Thread-610406][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:21:59,830 [DEBUG][       Thread-610406][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:21:59,830 [DEBUG][       Thread-610406][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:21:59,848 [ INFO][       Thread-610406][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:21:59,849 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:21:59,849 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:22:00,895 [DEBUG][       Thread-610406][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:22:00,895 [DEBUG][       Thread-610406][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:22:00,944 [DEBUG][       Thread-610406][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:22:00,944 [DEBUG][       Thread-610406][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:22:00,953 [DEBUG][       Thread-610406][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:22:00,963 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:22:00,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-07-01 16:22:00,972 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 16:22:00,981 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:22:00,981 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:22:00,982 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:22:00,990 [DEBUG][       Thread-610406][   transport.py][1871] : EOF in transport thread
2025-07-01 16:22:01,867 [DEBUG][Thread-610408 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:22:10,902 [DEBUG][Thread-610409 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:22:10,992 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:22:10,992 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:22:10,992 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:22:10,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-07-01 16:22:11,499 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 21, 47), 11.16, 46.88, 0.0, 23.29, 13.8, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:22:11,500 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:21:47
2025-07-01 16:22:11,585 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:22:11,589 [DEBUG][       Thread-610410][   transport.py][1871] : starting thread (client mode): 0x81e55d0
2025-07-01 16:22:11,589 [DEBUG][       Thread-610410][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:22:11,605 [DEBUG][       Thread-610410][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:22:11,605 [ INFO][       Thread-610410][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:22:11,608 [DEBUG][       Thread-610410][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:22:11,608 [DEBUG][       Thread-610410][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:22:11,608 [DEBUG][       Thread-610410][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:22:11,608 [DEBUG][       Thread-610410][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:22:11,608 [DEBUG][       Thread-610410][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:22:11,608 [DEBUG][       Thread-610410][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:22:11,608 [DEBUG][       Thread-610410][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:22:11,608 [DEBUG][       Thread-610410][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:22:11,608 [DEBUG][       Thread-610410][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:22:11,608 [DEBUG][       Thread-610410][   transport.py][1871] : client lang: <none>
2025-07-01 16:22:11,608 [DEBUG][       Thread-610410][   transport.py][1871] : server lang: <none>
2025-07-01 16:22:11,608 [DEBUG][       Thread-610410][   transport.py][1871] : kex follows: False
2025-07-01 16:22:11,608 [DEBUG][       Thread-610410][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:22:11,608 [DEBUG][       Thread-610410][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:22:11,608 [DEBUG][       Thread-610410][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:22:11,608 [DEBUG][       Thread-610410][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:22:11,608 [DEBUG][       Thread-610410][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:22:11,608 [DEBUG][       Thread-610410][   transport.py][1871] : Compression: none
2025-07-01 16:22:11,608 [DEBUG][       Thread-610410][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:22:11,626 [DEBUG][       Thread-610410][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:22:11,626 [DEBUG][       Thread-610410][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:22:11,626 [DEBUG][       Thread-610410][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:22:11,627 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:22:11,627 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:22:11,628 [DEBUG][       Thread-610410][   transport.py][1871] : userauth is OK
2025-07-01 16:22:11,641 [ INFO][       Thread-610410][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:22:11,641 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:22:12,223 [DEBUG][       Thread-610410][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:22:12,223 [DEBUG][       Thread-610410][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:22:12,265 [DEBUG][       Thread-610410][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:22:12,265 [DEBUG][       Thread-610410][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:22:12,268 [DEBUG][       Thread-610410][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:22:12,280 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:22:12,281 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:22:12,283 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:22:12,285 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:22:12,291 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:22:12,293 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:22:12,293 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:22:12,294 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:22:12,294 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.598550 -999.00  +13.50  32.02     52   +3.90 1 2 2 1 1   887    0 9.48 -11.19 ----- 31.3 32.0 28.0 37.8 14.9 -22.3 14.6 -22.1 14.6 -21.2 15.0 -21.2
2025-07-01 16:22:12,294 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:22:12,294 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:22:12,294 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.598550
2025-07-01 16:22:12,295 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:22:12,295 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:22:12,295 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:22:12,295 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:22:12,295 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:22:12,296 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:21:47', tmtdew=11.16, humidity=46.88, cloud=0.0, wind=23.29, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:21:54.720', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:22:12,297 [DEBUG][       Thread-610410][   transport.py][1871] : EOF in transport thread
2025-07-01 16:22:12,379 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:22:12,388 [DEBUG][       Thread-610413][   transport.py][1871] : starting thread (client mode): 0x81cbc40
2025-07-01 16:22:12,388 [DEBUG][       Thread-610413][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:22:12,404 [DEBUG][       Thread-610413][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:22:12,404 [ INFO][       Thread-610413][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:22:12,415 [DEBUG][       Thread-610413][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:22:12,415 [DEBUG][       Thread-610413][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:22:12,415 [DEBUG][       Thread-610413][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:22:12,415 [DEBUG][       Thread-610413][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:22:12,415 [DEBUG][       Thread-610413][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:22:12,415 [DEBUG][       Thread-610413][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:22:12,415 [DEBUG][       Thread-610413][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:22:12,415 [DEBUG][       Thread-610413][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:22:12,415 [DEBUG][       Thread-610413][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:22:12,415 [DEBUG][       Thread-610413][   transport.py][1871] : client lang: <none>
2025-07-01 16:22:12,415 [DEBUG][       Thread-610413][   transport.py][1871] : server lang: <none>
2025-07-01 16:22:12,415 [DEBUG][       Thread-610413][   transport.py][1871] : kex follows: False
2025-07-01 16:22:12,415 [DEBUG][       Thread-610413][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:22:12,415 [DEBUG][       Thread-610413][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:22:12,415 [DEBUG][       Thread-610413][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:22:12,415 [DEBUG][       Thread-610413][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:22:12,416 [DEBUG][       Thread-610413][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:22:12,416 [DEBUG][       Thread-610413][   transport.py][1871] : Compression: none
2025-07-01 16:22:12,416 [DEBUG][       Thread-610413][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:22:12,471 [DEBUG][       Thread-610413][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:22:12,471 [DEBUG][       Thread-610413][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:22:12,472 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:22:12,473 [DEBUG][       Thread-610413][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:22:12,473 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:22:12,530 [DEBUG][       Thread-610413][   transport.py][1871] : userauth is OK
2025-07-01 16:22:12,530 [DEBUG][       Thread-610413][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:22:12,530 [DEBUG][       Thread-610413][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:22:12,530 [DEBUG][       Thread-610413][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:22:12,531 [DEBUG][       Thread-610413][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:22:12,550 [ INFO][       Thread-610413][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:22:12,550 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:22:12,550 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:22:13,616 [DEBUG][       Thread-610413][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:22:13,617 [DEBUG][       Thread-610413][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:22:13,668 [DEBUG][       Thread-610413][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:22:13,668 [DEBUG][       Thread-610413][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:22:13,678 [DEBUG][       Thread-610413][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:22:13,687 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:22:13,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-07-01 16:22:13,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-07-01 16:22:13,705 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:22:13,705 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:22:13,706 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:22:13,714 [DEBUG][       Thread-610413][   transport.py][1871] : EOF in transport thread
2025-07-01 16:22:19,920 [DEBUG][Thread-610415 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:22:23,716 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:22:23,717 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:22:23,717 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:22:23,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-07-01 16:22:24,234 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 22, 18), 11.15, 46.9, 0.0, 19.78, 13.77, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:22:24,234 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:22:18
2025-07-01 16:22:24,320 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:22:24,326 [DEBUG][       Thread-610416][   transport.py][1871] : starting thread (client mode): 0x81da140
2025-07-01 16:22:24,326 [DEBUG][       Thread-610416][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:22:24,350 [DEBUG][       Thread-610416][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:22:24,350 [ INFO][       Thread-610416][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:22:24,353 [DEBUG][       Thread-610416][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:22:24,353 [DEBUG][       Thread-610416][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:22:24,353 [DEBUG][       Thread-610416][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:22:24,353 [DEBUG][       Thread-610416][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:22:24,353 [DEBUG][       Thread-610416][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:22:24,353 [DEBUG][       Thread-610416][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:22:24,353 [DEBUG][       Thread-610416][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:22:24,353 [DEBUG][       Thread-610416][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:22:24,353 [DEBUG][       Thread-610416][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:22:24,353 [DEBUG][       Thread-610416][   transport.py][1871] : client lang: <none>
2025-07-01 16:22:24,353 [DEBUG][       Thread-610416][   transport.py][1871] : server lang: <none>
2025-07-01 16:22:24,353 [DEBUG][       Thread-610416][   transport.py][1871] : kex follows: False
2025-07-01 16:22:24,353 [DEBUG][       Thread-610416][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:22:24,354 [DEBUG][       Thread-610416][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:22:24,354 [DEBUG][       Thread-610416][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:22:24,354 [DEBUG][       Thread-610416][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:22:24,354 [DEBUG][       Thread-610416][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:22:24,354 [DEBUG][       Thread-610416][   transport.py][1871] : Compression: none
2025-07-01 16:22:24,354 [DEBUG][       Thread-610416][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:22:24,371 [DEBUG][       Thread-610416][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:22:24,371 [DEBUG][       Thread-610416][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:22:24,372 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:22:24,372 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:22:24,373 [DEBUG][       Thread-610416][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:22:24,373 [DEBUG][       Thread-610416][   transport.py][1871] : userauth is OK
2025-07-01 16:22:24,386 [ INFO][       Thread-610416][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:22:24,387 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:22:25,038 [DEBUG][       Thread-610416][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:22:25,038 [DEBUG][       Thread-610416][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:22:25,081 [DEBUG][       Thread-610416][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:22:25,081 [DEBUG][       Thread-610416][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:22:25,085 [DEBUG][       Thread-610416][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:22:25,098 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:22:25,099 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:22:25,100 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:22:25,102 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:22:25,107 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:22:25,109 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:22:25,109 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:22:25,110 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:22:25,110 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.598550 -999.00  +13.50  32.02     52   +3.90 1 2 2 1 1   887    0 9.48 -11.19 ----- 31.3 32.0 28.0 37.8 14.9 -22.3 14.6 -22.1 14.6 -21.2 15.0 -21.2
2025-07-01 16:22:25,110 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:22:25,110 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:22:25,110 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.598550
2025-07-01 16:22:25,110 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:22:25,111 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:22:25,111 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:22:25,111 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:22:25,111 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:22:25,111 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:22:18', tmtdew=11.15, humidity=46.9, cloud=0.0, wind=19.78, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:21:54.720', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:22:25,112 [DEBUG][       Thread-610416][   transport.py][1871] : EOF in transport thread
2025-07-01 16:22:25,194 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:22:25,206 [DEBUG][       Thread-610419][   transport.py][1871] : starting thread (client mode): 0x75aba90
2025-07-01 16:22:25,206 [DEBUG][       Thread-610419][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:22:25,221 [DEBUG][       Thread-610419][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:22:25,221 [ INFO][       Thread-610419][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:22:25,228 [DEBUG][       Thread-610419][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:22:25,229 [DEBUG][       Thread-610419][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:22:25,229 [DEBUG][       Thread-610419][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:22:25,229 [DEBUG][       Thread-610419][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:22:25,229 [DEBUG][       Thread-610419][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:22:25,229 [DEBUG][       Thread-610419][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:22:25,229 [DEBUG][       Thread-610419][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:22:25,229 [DEBUG][       Thread-610419][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:22:25,229 [DEBUG][       Thread-610419][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:22:25,229 [DEBUG][       Thread-610419][   transport.py][1871] : client lang: <none>
2025-07-01 16:22:25,229 [DEBUG][       Thread-610419][   transport.py][1871] : server lang: <none>
2025-07-01 16:22:25,229 [DEBUG][       Thread-610419][   transport.py][1871] : kex follows: False
2025-07-01 16:22:25,229 [DEBUG][       Thread-610419][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:22:25,229 [DEBUG][       Thread-610419][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:22:25,229 [DEBUG][       Thread-610419][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:22:25,229 [DEBUG][       Thread-610419][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:22:25,229 [DEBUG][       Thread-610419][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:22:25,229 [DEBUG][       Thread-610419][   transport.py][1871] : Compression: none
2025-07-01 16:22:25,229 [DEBUG][       Thread-610419][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:22:25,288 [DEBUG][       Thread-610419][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:22:25,289 [DEBUG][       Thread-610419][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:22:25,289 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:22:25,290 [DEBUG][       Thread-610419][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:22:25,291 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:22:25,346 [DEBUG][       Thread-610419][   transport.py][1871] : userauth is OK
2025-07-01 16:22:25,346 [DEBUG][       Thread-610419][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:22:25,346 [DEBUG][       Thread-610419][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:22:25,346 [DEBUG][       Thread-610419][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:22:25,346 [DEBUG][       Thread-610419][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:22:25,360 [ INFO][       Thread-610419][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:22:25,360 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:22:25,361 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:22:26,423 [DEBUG][       Thread-610419][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:22:26,424 [DEBUG][       Thread-610419][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:22:26,472 [DEBUG][       Thread-610419][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:22:26,472 [DEBUG][       Thread-610419][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:22:26,481 [DEBUG][       Thread-610419][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:22:26,490 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:22:26,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-07-01 16:22:26,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-07-01 16:22:26,508 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:22:26,509 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:22:26,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:22:26,517 [DEBUG][       Thread-610419][   transport.py][1871] : EOF in transport thread
2025-07-01 16:22:28,941 [DEBUG][Thread-610421 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:22:36,516 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:22:36,516 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:22:36,516 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:22:36,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-07-01 16:22:37,031 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 22, 18), 11.15, 46.9, 0.0, 19.78, 13.77, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:22:37,031 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:22:18
2025-07-01 16:22:37,117 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:22:37,122 [DEBUG][       Thread-610422][   transport.py][1871] : starting thread (client mode): 0x81a4460
2025-07-01 16:22:37,122 [DEBUG][       Thread-610422][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:22:37,142 [DEBUG][       Thread-610422][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:22:37,142 [ INFO][       Thread-610422][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:22:37,146 [DEBUG][       Thread-610422][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:22:37,146 [DEBUG][       Thread-610422][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:22:37,146 [DEBUG][       Thread-610422][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:22:37,146 [DEBUG][       Thread-610422][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:22:37,146 [DEBUG][       Thread-610422][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:22:37,146 [DEBUG][       Thread-610422][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:22:37,146 [DEBUG][       Thread-610422][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:22:37,146 [DEBUG][       Thread-610422][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:22:37,146 [DEBUG][       Thread-610422][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:22:37,146 [DEBUG][       Thread-610422][   transport.py][1871] : client lang: <none>
2025-07-01 16:22:37,146 [DEBUG][       Thread-610422][   transport.py][1871] : server lang: <none>
2025-07-01 16:22:37,146 [DEBUG][       Thread-610422][   transport.py][1871] : kex follows: False
2025-07-01 16:22:37,146 [DEBUG][       Thread-610422][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:22:37,146 [DEBUG][       Thread-610422][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:22:37,146 [DEBUG][       Thread-610422][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:22:37,146 [DEBUG][       Thread-610422][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:22:37,146 [DEBUG][       Thread-610422][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:22:37,146 [DEBUG][       Thread-610422][   transport.py][1871] : Compression: none
2025-07-01 16:22:37,146 [DEBUG][       Thread-610422][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:22:37,164 [DEBUG][       Thread-610422][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:22:37,165 [DEBUG][       Thread-610422][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:22:37,165 [DEBUG][       Thread-610422][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:22:37,166 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:22:37,166 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:22:37,167 [DEBUG][       Thread-610422][   transport.py][1871] : userauth is OK
2025-07-01 16:22:37,192 [ INFO][       Thread-610422][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:22:37,192 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:22:37,811 [DEBUG][       Thread-610422][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:22:37,811 [DEBUG][       Thread-610422][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:22:37,852 [DEBUG][       Thread-610422][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:22:37,852 [DEBUG][       Thread-610422][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:22:37,855 [DEBUG][       Thread-610422][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:22:37,867 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:22:37,867 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:22:37,868 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:22:37,869 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:22:37,873 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:22:37,874 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:22:37,874 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:22:37,874 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:22:37,874 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.598550 -999.00  +13.50  32.02     52   +3.90 1 2 2 1 1   887    0 9.48 -11.19 ----- 31.3 32.0 28.0 37.8 14.9 -22.3 14.6 -22.1 14.6 -21.2 15.0 -21.2
2025-07-01 16:22:37,874 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:22:37,874 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:22:37,874 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.598550
2025-07-01 16:22:37,874 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:22:37,874 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:22:37,874 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:22:37,874 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:22:37,875 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:22:37,875 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:22:18', tmtdew=11.15, humidity=46.9, cloud=0.0, wind=19.78, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:21:54.720', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:22:37,875 [DEBUG][       Thread-610422][   transport.py][1871] : EOF in transport thread
2025-07-01 16:22:37,945 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:22:37,955 [DEBUG][       Thread-610425][   transport.py][1871] : starting thread (client mode): 0x474e8130
2025-07-01 16:22:37,955 [DEBUG][       Thread-610425][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:22:37,970 [DEBUG][       Thread-610425][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:22:37,970 [ INFO][       Thread-610425][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:22:37,978 [DEBUG][       Thread-610425][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:22:37,978 [DEBUG][       Thread-610425][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:22:37,978 [DEBUG][       Thread-610425][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:22:37,978 [DEBUG][       Thread-610425][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:22:37,978 [DEBUG][       Thread-610425][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:22:37,978 [DEBUG][       Thread-610425][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:22:37,978 [DEBUG][       Thread-610425][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:22:37,978 [DEBUG][       Thread-610425][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:22:37,978 [DEBUG][       Thread-610425][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:22:37,978 [DEBUG][       Thread-610425][   transport.py][1871] : client lang: <none>
2025-07-01 16:22:37,978 [DEBUG][       Thread-610425][   transport.py][1871] : server lang: <none>
2025-07-01 16:22:37,978 [DEBUG][       Thread-610425][   transport.py][1871] : kex follows: False
2025-07-01 16:22:37,978 [DEBUG][       Thread-610425][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:22:37,978 [DEBUG][       Thread-610425][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:22:37,979 [DEBUG][       Thread-610425][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:22:37,979 [DEBUG][       Thread-610425][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:22:37,979 [DEBUG][       Thread-610425][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:22:37,979 [DEBUG][       Thread-610425][   transport.py][1871] : Compression: none
2025-07-01 16:22:37,979 [DEBUG][       Thread-610425][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:22:37,982 [DEBUG][Thread-610427 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:22:38,036 [DEBUG][       Thread-610425][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:22:38,036 [DEBUG][       Thread-610425][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:22:38,037 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:22:38,038 [DEBUG][       Thread-610425][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:22:38,038 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:22:38,097 [DEBUG][       Thread-610425][   transport.py][1871] : userauth is OK
2025-07-01 16:22:38,098 [DEBUG][       Thread-610425][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:22:38,098 [DEBUG][       Thread-610425][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:22:38,098 [DEBUG][       Thread-610425][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:22:38,098 [DEBUG][       Thread-610425][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:22:38,118 [ INFO][       Thread-610425][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:22:38,118 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:22:38,119 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:22:38,520 [DEBUG][Thread-610428 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:22:39,126 [DEBUG][       Thread-610425][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:22:39,126 [DEBUG][       Thread-610425][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:22:39,176 [DEBUG][       Thread-610425][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:22:39,176 [DEBUG][       Thread-610425][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:22:39,185 [DEBUG][       Thread-610425][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:22:39,194 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:22:39,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-07-01 16:22:39,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-07-01 16:22:39,212 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:22:39,213 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:22:39,213 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:22:39,221 [DEBUG][       Thread-610425][   transport.py][1871] : EOF in transport thread
2025-07-01 16:22:47,006 [DEBUG][Thread-610429 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:22:49,216 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:22:49,216 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:22:49,216 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:22:49,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-07-01 16:22:49,730 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 22, 18), 11.15, 46.9, 0.0, 19.78, 13.77, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:22:49,730 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:22:18
2025-07-01 16:22:49,817 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:22:49,823 [DEBUG][       Thread-610430][   transport.py][1871] : starting thread (client mode): 0x81c9120
2025-07-01 16:22:49,823 [DEBUG][       Thread-610430][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:22:49,843 [DEBUG][       Thread-610430][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:22:49,843 [ INFO][       Thread-610430][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:22:49,847 [DEBUG][       Thread-610430][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:22:49,847 [DEBUG][       Thread-610430][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:22:49,847 [DEBUG][       Thread-610430][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:22:49,847 [DEBUG][       Thread-610430][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:22:49,847 [DEBUG][       Thread-610430][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:22:49,847 [DEBUG][       Thread-610430][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:22:49,847 [DEBUG][       Thread-610430][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:22:49,847 [DEBUG][       Thread-610430][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:22:49,847 [DEBUG][       Thread-610430][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:22:49,847 [DEBUG][       Thread-610430][   transport.py][1871] : client lang: <none>
2025-07-01 16:22:49,847 [DEBUG][       Thread-610430][   transport.py][1871] : server lang: <none>
2025-07-01 16:22:49,847 [DEBUG][       Thread-610430][   transport.py][1871] : kex follows: False
2025-07-01 16:22:49,847 [DEBUG][       Thread-610430][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:22:49,847 [DEBUG][       Thread-610430][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:22:49,847 [DEBUG][       Thread-610430][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:22:49,847 [DEBUG][       Thread-610430][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:22:49,847 [DEBUG][       Thread-610430][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:22:49,847 [DEBUG][       Thread-610430][   transport.py][1871] : Compression: none
2025-07-01 16:22:49,847 [DEBUG][       Thread-610430][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:22:49,866 [DEBUG][       Thread-610430][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:22:49,867 [DEBUG][       Thread-610430][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:22:49,867 [DEBUG][       Thread-610430][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:22:49,868 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:22:49,868 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:22:49,869 [DEBUG][       Thread-610430][   transport.py][1871] : userauth is OK
2025-07-01 16:22:49,883 [ INFO][       Thread-610430][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:22:49,883 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:22:50,497 [DEBUG][       Thread-610430][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:22:50,497 [DEBUG][       Thread-610430][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:22:50,541 [DEBUG][       Thread-610430][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:22:50,541 [DEBUG][       Thread-610430][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:22:50,545 [DEBUG][       Thread-610430][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:22:50,557 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:22:50,557 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:22:50,559 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:22:50,561 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:22:50,566 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:22:50,568 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:22:50,568 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:22:50,568 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:22:50,569 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.598897 -999.00  +13.50  32.86     51   +3.80 1 2 2 1 1   887    0 9.53 -12.75 ----- 37.1 32.9 3.4 47.6 14.9 -22.3 14.7 -22.2 14.6 -21.1 14.9 -21.5
2025-07-01 16:22:50,569 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:22:50,569 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:22:50,569 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.598897
2025-07-01 16:22:50,569 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:22:50,570 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:22:50,570 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:22:50,570 [DEBUG][       Thread-610430][   transport.py][1871] : EOF in transport thread
2025-07-01 16:22:50,570 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:22:50,571 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:22:50,571 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:22:18', tmtdew=11.15, humidity=46.9, cloud=0.0, wind=19.78, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:22:24.701', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:22:50,654 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:22:50,667 [DEBUG][       Thread-610433][   transport.py][1871] : starting thread (client mode): 0x81a5300
2025-07-01 16:22:50,667 [DEBUG][       Thread-610433][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:22:50,684 [DEBUG][       Thread-610433][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:22:50,685 [ INFO][       Thread-610433][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:22:50,692 [DEBUG][       Thread-610433][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:22:50,692 [DEBUG][       Thread-610433][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:22:50,692 [DEBUG][       Thread-610433][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:22:50,692 [DEBUG][       Thread-610433][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:22:50,692 [DEBUG][       Thread-610433][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:22:50,692 [DEBUG][       Thread-610433][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:22:50,692 [DEBUG][       Thread-610433][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:22:50,693 [DEBUG][       Thread-610433][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:22:50,693 [DEBUG][       Thread-610433][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:22:50,693 [DEBUG][       Thread-610433][   transport.py][1871] : client lang: <none>
2025-07-01 16:22:50,693 [DEBUG][       Thread-610433][   transport.py][1871] : server lang: <none>
2025-07-01 16:22:50,693 [DEBUG][       Thread-610433][   transport.py][1871] : kex follows: False
2025-07-01 16:22:50,693 [DEBUG][       Thread-610433][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:22:50,693 [DEBUG][       Thread-610433][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:22:50,693 [DEBUG][       Thread-610433][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:22:50,693 [DEBUG][       Thread-610433][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:22:50,693 [DEBUG][       Thread-610433][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:22:50,693 [DEBUG][       Thread-610433][   transport.py][1871] : Compression: none
2025-07-01 16:22:50,693 [DEBUG][       Thread-610433][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:22:50,757 [DEBUG][       Thread-610433][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:22:50,757 [DEBUG][       Thread-610433][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:22:50,758 [DEBUG][       Thread-610433][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:22:50,758 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:22:50,759 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:22:50,816 [DEBUG][       Thread-610433][   transport.py][1871] : userauth is OK
2025-07-01 16:22:50,817 [DEBUG][       Thread-610433][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:22:50,817 [DEBUG][       Thread-610433][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:22:50,817 [DEBUG][       Thread-610433][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:22:50,817 [DEBUG][       Thread-610433][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:22:50,836 [ INFO][       Thread-610433][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:22:50,836 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:22:50,836 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:22:51,847 [DEBUG][       Thread-610433][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:22:51,847 [DEBUG][       Thread-610433][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:22:51,897 [DEBUG][       Thread-610433][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:22:51,897 [DEBUG][       Thread-610433][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:22:51,906 [DEBUG][       Thread-610433][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:22:51,914 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:22:51,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-07-01 16:22:51,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') -> 00000000
2025-07-01 16:22:51,930 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:22:51,930 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:22:51,930 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:22:51,938 [DEBUG][       Thread-610433][   transport.py][1871] : EOF in transport thread
2025-07-01 16:22:56,024 [DEBUG][Thread-610435 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:23:01,940 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:23:01,941 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:23:01,941 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:23:01,943 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:23:02,445 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 22, 51), 11.15, 46.93, 0.0, 28.56, 13.78, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:23:02,445 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:22:51
2025-07-01 16:23:02,531 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:23:02,535 [DEBUG][       Thread-610436][   transport.py][1871] : starting thread (client mode): 0x82b2620
2025-07-01 16:23:02,535 [DEBUG][       Thread-610436][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:23:02,555 [DEBUG][       Thread-610436][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:23:02,556 [ INFO][       Thread-610436][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:23:02,557 [DEBUG][       Thread-610436][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:23:02,557 [DEBUG][       Thread-610436][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:23:02,557 [DEBUG][       Thread-610436][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:23:02,557 [DEBUG][       Thread-610436][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:23:02,557 [DEBUG][       Thread-610436][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:23:02,557 [DEBUG][       Thread-610436][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:23:02,557 [DEBUG][       Thread-610436][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:23:02,557 [DEBUG][       Thread-610436][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:23:02,557 [DEBUG][       Thread-610436][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:23:02,557 [DEBUG][       Thread-610436][   transport.py][1871] : client lang: <none>
2025-07-01 16:23:02,557 [DEBUG][       Thread-610436][   transport.py][1871] : server lang: <none>
2025-07-01 16:23:02,557 [DEBUG][       Thread-610436][   transport.py][1871] : kex follows: False
2025-07-01 16:23:02,557 [DEBUG][       Thread-610436][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:23:02,557 [DEBUG][       Thread-610436][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:23:02,557 [DEBUG][       Thread-610436][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:23:02,557 [DEBUG][       Thread-610436][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:23:02,557 [DEBUG][       Thread-610436][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:23:02,558 [DEBUG][       Thread-610436][   transport.py][1871] : Compression: none
2025-07-01 16:23:02,558 [DEBUG][       Thread-610436][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:23:02,575 [DEBUG][       Thread-610436][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:23:02,576 [DEBUG][       Thread-610436][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:23:02,576 [DEBUG][       Thread-610436][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:23:02,576 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:23:02,577 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:23:02,577 [DEBUG][       Thread-610436][   transport.py][1871] : userauth is OK
2025-07-01 16:23:02,590 [ INFO][       Thread-610436][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:23:02,591 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:23:03,241 [DEBUG][       Thread-610436][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:23:03,242 [DEBUG][       Thread-610436][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:23:03,285 [DEBUG][       Thread-610436][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:23:03,285 [DEBUG][       Thread-610436][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:23:03,288 [DEBUG][       Thread-610436][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:23:03,301 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:23:03,301 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:23:03,303 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:23:03,305 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:23:03,311 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:23:03,313 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:23:03,313 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:23:03,314 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:23:03,314 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.598897 -999.00  +13.50  32.86     51   +3.80 1 2 2 1 1   887    0 9.53 -12.75 ----- 37.1 32.9 3.4 47.6 14.9 -22.3 14.7 -22.2 14.6 -21.1 14.9 -21.5
2025-07-01 16:23:03,314 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:23:03,314 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:23:03,314 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.598897
2025-07-01 16:23:03,315 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:23:03,315 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:23:03,315 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:23:03,315 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:23:03,315 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:23:03,316 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:22:51', tmtdew=11.15, humidity=46.93, cloud=0.0, wind=28.56, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:22:24.701', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:23:03,317 [DEBUG][       Thread-610436][   transport.py][1871] : EOF in transport thread
2025-07-01 16:23:03,399 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:23:03,415 [DEBUG][       Thread-610439][   transport.py][1871] : starting thread (client mode): 0x8157160
2025-07-01 16:23:03,415 [DEBUG][       Thread-610439][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:23:03,430 [DEBUG][       Thread-610439][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:23:03,430 [ INFO][       Thread-610439][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:23:03,438 [DEBUG][       Thread-610439][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:23:03,438 [DEBUG][       Thread-610439][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:23:03,438 [DEBUG][       Thread-610439][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:23:03,438 [DEBUG][       Thread-610439][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:23:03,438 [DEBUG][       Thread-610439][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:23:03,438 [DEBUG][       Thread-610439][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:23:03,438 [DEBUG][       Thread-610439][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:23:03,438 [DEBUG][       Thread-610439][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:23:03,438 [DEBUG][       Thread-610439][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:23:03,438 [DEBUG][       Thread-610439][   transport.py][1871] : client lang: <none>
2025-07-01 16:23:03,438 [DEBUG][       Thread-610439][   transport.py][1871] : server lang: <none>
2025-07-01 16:23:03,438 [DEBUG][       Thread-610439][   transport.py][1871] : kex follows: False
2025-07-01 16:23:03,438 [DEBUG][       Thread-610439][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:23:03,439 [DEBUG][       Thread-610439][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:23:03,439 [DEBUG][       Thread-610439][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:23:03,439 [DEBUG][       Thread-610439][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:23:03,439 [DEBUG][       Thread-610439][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:23:03,439 [DEBUG][       Thread-610439][   transport.py][1871] : Compression: none
2025-07-01 16:23:03,439 [DEBUG][       Thread-610439][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:23:03,497 [DEBUG][       Thread-610439][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:23:03,498 [DEBUG][       Thread-610439][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:23:03,498 [DEBUG][       Thread-610439][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:23:03,499 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:23:03,499 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:23:03,556 [DEBUG][       Thread-610439][   transport.py][1871] : userauth is OK
2025-07-01 16:23:03,556 [DEBUG][       Thread-610439][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:23:03,556 [DEBUG][       Thread-610439][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:23:03,557 [DEBUG][       Thread-610439][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:23:03,557 [DEBUG][       Thread-610439][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:23:03,575 [ INFO][       Thread-610439][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:23:03,576 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:23:03,576 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:23:04,651 [DEBUG][       Thread-610439][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:23:04,651 [DEBUG][       Thread-610439][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:23:04,706 [DEBUG][       Thread-610439][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:23:04,707 [DEBUG][       Thread-610439][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:23:04,716 [DEBUG][       Thread-610439][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:23:04,725 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:23:04,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-07-01 16:23:04,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-07-01 16:23:04,743 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:23:04,744 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:23:04,744 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:23:04,752 [DEBUG][       Thread-610439][   transport.py][1871] : EOF in transport thread
2025-07-01 16:23:05,043 [DEBUG][Thread-610441 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:23:14,078 [DEBUG][Thread-610442 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:23:14,755 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:23:14,755 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:23:14,755 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:23:14,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-07-01 16:23:15,258 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 22, 51), 11.15, 46.93, 0.0, 28.56, 13.78, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:23:15,258 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:22:51
2025-07-01 16:23:15,344 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:23:15,350 [DEBUG][       Thread-610443][   transport.py][1871] : starting thread (client mode): 0x82b1810
2025-07-01 16:23:15,350 [DEBUG][       Thread-610443][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:23:15,370 [DEBUG][       Thread-610443][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:23:15,370 [ INFO][       Thread-610443][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:23:15,373 [DEBUG][       Thread-610443][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:23:15,374 [DEBUG][       Thread-610443][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:23:15,374 [DEBUG][       Thread-610443][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:23:15,374 [DEBUG][       Thread-610443][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:23:15,374 [DEBUG][       Thread-610443][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:23:15,374 [DEBUG][       Thread-610443][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:23:15,374 [DEBUG][       Thread-610443][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:23:15,374 [DEBUG][       Thread-610443][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:23:15,374 [DEBUG][       Thread-610443][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:23:15,374 [DEBUG][       Thread-610443][   transport.py][1871] : client lang: <none>
2025-07-01 16:23:15,374 [DEBUG][       Thread-610443][   transport.py][1871] : server lang: <none>
2025-07-01 16:23:15,374 [DEBUG][       Thread-610443][   transport.py][1871] : kex follows: False
2025-07-01 16:23:15,374 [DEBUG][       Thread-610443][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:23:15,374 [DEBUG][       Thread-610443][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:23:15,374 [DEBUG][       Thread-610443][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:23:15,374 [DEBUG][       Thread-610443][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:23:15,374 [DEBUG][       Thread-610443][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:23:15,374 [DEBUG][       Thread-610443][   transport.py][1871] : Compression: none
2025-07-01 16:23:15,374 [DEBUG][       Thread-610443][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:23:15,392 [DEBUG][       Thread-610443][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:23:15,393 [DEBUG][       Thread-610443][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:23:15,393 [DEBUG][       Thread-610443][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:23:15,393 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:23:15,393 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:23:15,395 [DEBUG][       Thread-610443][   transport.py][1871] : userauth is OK
2025-07-01 16:23:15,408 [ INFO][       Thread-610443][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:23:15,409 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:23:16,008 [DEBUG][       Thread-610443][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:23:16,009 [DEBUG][       Thread-610443][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:23:16,049 [DEBUG][       Thread-610443][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:23:16,049 [DEBUG][       Thread-610443][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:23:16,053 [DEBUG][       Thread-610443][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:23:16,069 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:23:16,070 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:23:16,071 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:23:16,074 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:23:16,081 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:23:16,083 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:23:16,083 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:23:16,084 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:23:16,084 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.598897 -999.00  +13.50  32.86     51   +3.80 1 2 2 1 1   887    0 9.53 -12.75 ----- 37.1 32.9 3.4 47.6 14.9 -22.3 14.7 -22.2 14.6 -21.1 14.9 -21.5
2025-07-01 16:23:16,084 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:23:16,084 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:23:16,084 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.598897
2025-07-01 16:23:16,085 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:23:16,085 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:23:16,085 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:23:16,085 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:23:16,086 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:23:16,086 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:22:51', tmtdew=11.15, humidity=46.93, cloud=0.0, wind=28.56, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:22:24.701', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:23:16,086 [DEBUG][       Thread-610443][   transport.py][1871] : EOF in transport thread
2025-07-01 16:23:16,169 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:23:16,180 [DEBUG][       Thread-610446][   transport.py][1871] : starting thread (client mode): 0x8170b80
2025-07-01 16:23:16,180 [DEBUG][       Thread-610446][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:23:16,196 [DEBUG][       Thread-610446][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:23:16,196 [ INFO][       Thread-610446][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:23:16,204 [DEBUG][       Thread-610446][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:23:16,204 [DEBUG][       Thread-610446][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:23:16,204 [DEBUG][       Thread-610446][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:23:16,204 [DEBUG][       Thread-610446][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:23:16,204 [DEBUG][       Thread-610446][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:23:16,204 [DEBUG][       Thread-610446][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:23:16,204 [DEBUG][       Thread-610446][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:23:16,204 [DEBUG][       Thread-610446][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:23:16,204 [DEBUG][       Thread-610446][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:23:16,204 [DEBUG][       Thread-610446][   transport.py][1871] : client lang: <none>
2025-07-01 16:23:16,204 [DEBUG][       Thread-610446][   transport.py][1871] : server lang: <none>
2025-07-01 16:23:16,204 [DEBUG][       Thread-610446][   transport.py][1871] : kex follows: False
2025-07-01 16:23:16,204 [DEBUG][       Thread-610446][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:23:16,204 [DEBUG][       Thread-610446][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:23:16,204 [DEBUG][       Thread-610446][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:23:16,204 [DEBUG][       Thread-610446][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:23:16,205 [DEBUG][       Thread-610446][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:23:16,205 [DEBUG][       Thread-610446][   transport.py][1871] : Compression: none
2025-07-01 16:23:16,205 [DEBUG][       Thread-610446][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:23:16,264 [DEBUG][       Thread-610446][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:23:16,265 [DEBUG][       Thread-610446][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:23:16,265 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:23:16,266 [DEBUG][       Thread-610446][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:23:16,266 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:23:16,324 [DEBUG][       Thread-610446][   transport.py][1871] : userauth is OK
2025-07-01 16:23:16,324 [DEBUG][       Thread-610446][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:23:16,324 [DEBUG][       Thread-610446][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:23:16,324 [DEBUG][       Thread-610446][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:23:16,325 [DEBUG][       Thread-610446][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:23:16,344 [ INFO][       Thread-610446][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:23:16,345 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:23:16,345 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:23:17,369 [DEBUG][       Thread-610446][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:23:17,370 [DEBUG][       Thread-610446][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:23:17,420 [DEBUG][       Thread-610446][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:23:17,420 [DEBUG][       Thread-610446][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:23:17,432 [DEBUG][       Thread-610446][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:23:17,441 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:23:17,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-07-01 16:23:17,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-07-01 16:23:17,463 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:23:17,463 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:23:17,464 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:23:17,472 [DEBUG][       Thread-610446][   transport.py][1871] : EOF in transport thread
2025-07-01 16:23:23,101 [DEBUG][Thread-610448 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:23:27,474 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:23:27,475 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:23:27,475 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:23:27,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-07-01 16:23:27,978 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 23, 22), 11.17, 46.83, 0.0, 29.84, 13.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:23:27,978 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:23:22
2025-07-01 16:23:28,065 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:23:28,072 [DEBUG][       Thread-610449][   transport.py][1871] : starting thread (client mode): 0x82b2f20
2025-07-01 16:23:28,072 [DEBUG][       Thread-610449][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:23:28,094 [DEBUG][       Thread-610449][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:23:28,094 [ INFO][       Thread-610449][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:23:28,098 [DEBUG][       Thread-610449][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:23:28,098 [DEBUG][       Thread-610449][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:23:28,098 [DEBUG][       Thread-610449][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:23:28,098 [DEBUG][       Thread-610449][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:23:28,098 [DEBUG][       Thread-610449][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:23:28,098 [DEBUG][       Thread-610449][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:23:28,098 [DEBUG][       Thread-610449][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:23:28,098 [DEBUG][       Thread-610449][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:23:28,098 [DEBUG][       Thread-610449][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:23:28,098 [DEBUG][       Thread-610449][   transport.py][1871] : client lang: <none>
2025-07-01 16:23:28,098 [DEBUG][       Thread-610449][   transport.py][1871] : server lang: <none>
2025-07-01 16:23:28,098 [DEBUG][       Thread-610449][   transport.py][1871] : kex follows: False
2025-07-01 16:23:28,098 [DEBUG][       Thread-610449][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:23:28,098 [DEBUG][       Thread-610449][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:23:28,098 [DEBUG][       Thread-610449][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:23:28,098 [DEBUG][       Thread-610449][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:23:28,098 [DEBUG][       Thread-610449][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:23:28,098 [DEBUG][       Thread-610449][   transport.py][1871] : Compression: none
2025-07-01 16:23:28,099 [DEBUG][       Thread-610449][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:23:28,116 [DEBUG][       Thread-610449][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:23:28,116 [DEBUG][       Thread-610449][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:23:28,117 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:23:28,117 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:23:28,117 [DEBUG][       Thread-610449][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:23:28,118 [DEBUG][       Thread-610449][   transport.py][1871] : userauth is OK
2025-07-01 16:23:28,142 [ INFO][       Thread-610449][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:23:28,143 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:23:28,778 [DEBUG][       Thread-610449][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:23:28,778 [DEBUG][       Thread-610449][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:23:28,821 [DEBUG][       Thread-610449][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:23:28,821 [DEBUG][       Thread-610449][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:23:28,824 [DEBUG][       Thread-610449][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:23:28,836 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:23:28,837 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:23:28,838 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:23:28,840 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:23:28,846 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:23:28,848 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:23:28,848 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:23:28,849 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:23:28,849 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.599244 -999.00  +13.50  37.42     52   +3.80 1 2 2 1 1   887    0 9.63 -14.46 ----- 39.4 37.4 22.1 46.0 14.8 -22.3 14.6 -22.0 14.6 -21.1 14.9 -21.0
2025-07-01 16:23:28,849 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:23:28,849 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:23:28,849 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.599244
2025-07-01 16:23:28,849 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:23:28,850 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:23:28,850 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:23:28,850 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:23:28,850 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:23:28,850 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:23:22', tmtdew=11.17, humidity=46.83, cloud=0.0, wind=29.84, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:22:54.682', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:23:28,851 [DEBUG][       Thread-610449][   transport.py][1871] : EOF in transport thread
2025-07-01 16:23:28,934 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:23:28,946 [DEBUG][       Thread-610452][   transport.py][1871] : starting thread (client mode): 0x75ab1f0
2025-07-01 16:23:28,946 [DEBUG][       Thread-610452][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:23:28,961 [DEBUG][       Thread-610452][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:23:28,961 [ INFO][       Thread-610452][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:23:28,968 [DEBUG][       Thread-610452][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:23:28,969 [DEBUG][       Thread-610452][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:23:28,969 [DEBUG][       Thread-610452][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:23:28,969 [DEBUG][       Thread-610452][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:23:28,969 [DEBUG][       Thread-610452][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:23:28,969 [DEBUG][       Thread-610452][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:23:28,969 [DEBUG][       Thread-610452][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:23:28,969 [DEBUG][       Thread-610452][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:23:28,969 [DEBUG][       Thread-610452][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:23:28,969 [DEBUG][       Thread-610452][   transport.py][1871] : client lang: <none>
2025-07-01 16:23:28,969 [DEBUG][       Thread-610452][   transport.py][1871] : server lang: <none>
2025-07-01 16:23:28,969 [DEBUG][       Thread-610452][   transport.py][1871] : kex follows: False
2025-07-01 16:23:28,969 [DEBUG][       Thread-610452][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:23:28,969 [DEBUG][       Thread-610452][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:23:28,969 [DEBUG][       Thread-610452][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:23:28,969 [DEBUG][       Thread-610452][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:23:28,969 [DEBUG][       Thread-610452][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:23:28,969 [DEBUG][       Thread-610452][   transport.py][1871] : Compression: none
2025-07-01 16:23:28,969 [DEBUG][       Thread-610452][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:23:29,027 [DEBUG][       Thread-610452][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:23:29,028 [DEBUG][       Thread-610452][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:23:29,029 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:23:29,029 [DEBUG][       Thread-610452][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:23:29,030 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:23:29,084 [DEBUG][       Thread-610452][   transport.py][1871] : userauth is OK
2025-07-01 16:23:29,084 [DEBUG][       Thread-610452][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:23:29,085 [DEBUG][       Thread-610452][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:23:29,085 [DEBUG][       Thread-610452][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:23:29,085 [DEBUG][       Thread-610452][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:23:29,103 [ INFO][       Thread-610452][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:23:29,104 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:23:29,104 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:23:30,137 [DEBUG][       Thread-610452][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:23:30,137 [DEBUG][       Thread-610452][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:23:30,188 [DEBUG][       Thread-610452][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:23:30,188 [DEBUG][       Thread-610452][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:23:30,197 [DEBUG][       Thread-610452][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:23:30,206 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:23:30,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-07-01 16:23:30,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-07-01 16:23:30,224 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:23:30,225 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:23:30,225 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:23:30,233 [DEBUG][       Thread-610452][   transport.py][1871] : EOF in transport thread
2025-07-01 16:23:32,119 [DEBUG][Thread-610454 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:23:38,550 [DEBUG][Thread-610455 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:23:40,235 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:23:40,236 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:23:40,236 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:23:40,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-07-01 16:23:40,736 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 23, 22), 11.17, 46.83, 0.0, 29.84, 13.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:23:40,736 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:23:22
2025-07-01 16:23:40,823 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:23:40,827 [DEBUG][       Thread-610456][   transport.py][1871] : starting thread (client mode): 0x81e6b00
2025-07-01 16:23:40,828 [DEBUG][       Thread-610456][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:23:40,847 [DEBUG][       Thread-610456][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:23:40,847 [ INFO][       Thread-610456][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:23:40,850 [DEBUG][       Thread-610456][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:23:40,851 [DEBUG][       Thread-610456][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:23:40,851 [DEBUG][       Thread-610456][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:23:40,851 [DEBUG][       Thread-610456][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:23:40,851 [DEBUG][       Thread-610456][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:23:40,851 [DEBUG][       Thread-610456][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:23:40,851 [DEBUG][       Thread-610456][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:23:40,851 [DEBUG][       Thread-610456][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:23:40,851 [DEBUG][       Thread-610456][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:23:40,851 [DEBUG][       Thread-610456][   transport.py][1871] : client lang: <none>
2025-07-01 16:23:40,851 [DEBUG][       Thread-610456][   transport.py][1871] : server lang: <none>
2025-07-01 16:23:40,851 [DEBUG][       Thread-610456][   transport.py][1871] : kex follows: False
2025-07-01 16:23:40,851 [DEBUG][       Thread-610456][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:23:40,851 [DEBUG][       Thread-610456][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:23:40,851 [DEBUG][       Thread-610456][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:23:40,851 [DEBUG][       Thread-610456][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:23:40,851 [DEBUG][       Thread-610456][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:23:40,851 [DEBUG][       Thread-610456][   transport.py][1871] : Compression: none
2025-07-01 16:23:40,851 [DEBUG][       Thread-610456][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:23:40,859 [DEBUG][       Thread-610456][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:23:40,860 [DEBUG][       Thread-610456][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:23:40,861 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:23:40,861 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:23:40,861 [DEBUG][       Thread-610456][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:23:40,862 [DEBUG][       Thread-610456][   transport.py][1871] : userauth is OK
2025-07-01 16:23:40,874 [ INFO][       Thread-610456][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:23:40,875 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:23:41,149 [DEBUG][Thread-610458 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:23:41,501 [DEBUG][       Thread-610456][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:23:41,501 [DEBUG][       Thread-610456][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:23:41,545 [DEBUG][       Thread-610456][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:23:41,545 [DEBUG][       Thread-610456][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:23:41,548 [DEBUG][       Thread-610456][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:23:41,558 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:23:41,559 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:23:41,560 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:23:41,562 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:23:41,567 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:23:41,569 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:23:41,569 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:23:41,570 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:23:41,570 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.599244 -999.00  +13.50  37.42     52   +3.80 1 2 2 1 1   887    0 9.63 -14.46 ----- 39.4 37.4 22.1 46.0 14.8 -22.3 14.6 -22.0 14.6 -21.1 14.9 -21.0
2025-07-01 16:23:41,570 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:23:41,570 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:23:41,570 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.599244
2025-07-01 16:23:41,571 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:23:41,571 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:23:41,571 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:23:41,571 [DEBUG][       Thread-610456][   transport.py][1871] : EOF in transport thread
2025-07-01 16:23:41,571 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:23:41,572 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:23:41,572 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:23:22', tmtdew=11.17, humidity=46.83, cloud=0.0, wind=29.84, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:22:54.682', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:23:41,655 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:23:41,667 [DEBUG][       Thread-610460][   transport.py][1871] : starting thread (client mode): 0x75aba90
2025-07-01 16:23:41,667 [DEBUG][       Thread-610460][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:23:41,684 [DEBUG][       Thread-610460][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:23:41,684 [ INFO][       Thread-610460][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:23:41,692 [DEBUG][       Thread-610460][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:23:41,692 [DEBUG][       Thread-610460][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:23:41,692 [DEBUG][       Thread-610460][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:23:41,692 [DEBUG][       Thread-610460][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:23:41,692 [DEBUG][       Thread-610460][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:23:41,692 [DEBUG][       Thread-610460][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:23:41,692 [DEBUG][       Thread-610460][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:23:41,692 [DEBUG][       Thread-610460][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:23:41,692 [DEBUG][       Thread-610460][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:23:41,692 [DEBUG][       Thread-610460][   transport.py][1871] : client lang: <none>
2025-07-01 16:23:41,692 [DEBUG][       Thread-610460][   transport.py][1871] : server lang: <none>
2025-07-01 16:23:41,692 [DEBUG][       Thread-610460][   transport.py][1871] : kex follows: False
2025-07-01 16:23:41,692 [DEBUG][       Thread-610460][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:23:41,692 [DEBUG][       Thread-610460][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:23:41,692 [DEBUG][       Thread-610460][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:23:41,692 [DEBUG][       Thread-610460][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:23:41,693 [DEBUG][       Thread-610460][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:23:41,693 [DEBUG][       Thread-610460][   transport.py][1871] : Compression: none
2025-07-01 16:23:41,693 [DEBUG][       Thread-610460][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:23:41,747 [DEBUG][       Thread-610460][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:23:41,748 [DEBUG][       Thread-610460][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:23:41,748 [DEBUG][       Thread-610460][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:23:41,749 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:23:41,749 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:23:41,804 [DEBUG][       Thread-610460][   transport.py][1871] : userauth is OK
2025-07-01 16:23:41,804 [DEBUG][       Thread-610460][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:23:41,804 [DEBUG][       Thread-610460][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:23:41,804 [DEBUG][       Thread-610460][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:23:41,804 [DEBUG][       Thread-610460][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:23:41,823 [ INFO][       Thread-610460][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:23:41,823 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:23:41,823 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:23:42,857 [DEBUG][       Thread-610460][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:23:42,858 [DEBUG][       Thread-610460][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:23:42,908 [DEBUG][       Thread-610460][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:23:42,908 [DEBUG][       Thread-610460][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:23:42,918 [DEBUG][       Thread-610460][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:23:42,927 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:23:42,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-07-01 16:23:42,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-07-01 16:23:42,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:23:42,946 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:23:42,946 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:23:42,954 [DEBUG][       Thread-610460][   transport.py][1871] : EOF in transport thread
2025-07-01 16:23:50,172 [DEBUG][Thread-610462 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:23:52,957 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:23:52,957 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:23:52,957 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:23:52,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-07-01 16:23:53,464 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 23, 22), 11.17, 46.83, 0.0, 29.84, 13.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:23:53,464 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:23:22
2025-07-01 16:23:53,550 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:23:53,556 [DEBUG][       Thread-610463][   transport.py][1871] : starting thread (client mode): 0x818dd80
2025-07-01 16:23:53,556 [DEBUG][       Thread-610463][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:23:53,577 [DEBUG][       Thread-610463][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:23:53,577 [ INFO][       Thread-610463][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:23:53,580 [DEBUG][       Thread-610463][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:23:53,580 [DEBUG][       Thread-610463][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:23:53,580 [DEBUG][       Thread-610463][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:23:53,581 [DEBUG][       Thread-610463][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:23:53,581 [DEBUG][       Thread-610463][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:23:53,581 [DEBUG][       Thread-610463][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:23:53,581 [DEBUG][       Thread-610463][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:23:53,581 [DEBUG][       Thread-610463][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:23:53,581 [DEBUG][       Thread-610463][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:23:53,581 [DEBUG][       Thread-610463][   transport.py][1871] : client lang: <none>
2025-07-01 16:23:53,581 [DEBUG][       Thread-610463][   transport.py][1871] : server lang: <none>
2025-07-01 16:23:53,581 [DEBUG][       Thread-610463][   transport.py][1871] : kex follows: False
2025-07-01 16:23:53,581 [DEBUG][       Thread-610463][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:23:53,581 [DEBUG][       Thread-610463][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:23:53,581 [DEBUG][       Thread-610463][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:23:53,581 [DEBUG][       Thread-610463][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:23:53,581 [DEBUG][       Thread-610463][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:23:53,581 [DEBUG][       Thread-610463][   transport.py][1871] : Compression: none
2025-07-01 16:23:53,581 [DEBUG][       Thread-610463][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:23:53,591 [DEBUG][       Thread-610463][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:23:53,591 [DEBUG][       Thread-610463][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:23:53,592 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:23:53,592 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:23:53,593 [DEBUG][       Thread-610463][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:23:53,594 [DEBUG][       Thread-610463][   transport.py][1871] : userauth is OK
2025-07-01 16:23:53,607 [ INFO][       Thread-610463][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:23:53,608 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:23:54,228 [DEBUG][       Thread-610463][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:23:54,229 [DEBUG][       Thread-610463][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:23:54,269 [DEBUG][       Thread-610463][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:23:54,269 [DEBUG][       Thread-610463][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:23:54,273 [DEBUG][       Thread-610463][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:23:54,287 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:23:54,287 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:23:54,290 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:23:54,292 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:23:54,298 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:23:54,300 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:23:54,300 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:23:54,301 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:23:54,301 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.599592 -999.00  +13.50  33.42     52   +3.90 1 2 2 1 1   887    0 9.55 -15.66 ----- 28.4 33.4 33.2 44.8 14.8 -22.2 14.6 -22.1 14.6 -21.1 14.9 -21.2
2025-07-01 16:23:54,301 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:23:54,301 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:23:54,301 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.599592
2025-07-01 16:23:54,302 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:23:54,302 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:23:54,302 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:23:54,302 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:23:54,302 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:23:54,303 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:23:22', tmtdew=11.17, humidity=46.83, cloud=0.0, wind=29.84, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:23:24.749', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:23:54,303 [DEBUG][       Thread-610463][   transport.py][1871] : EOF in transport thread
2025-07-01 16:23:54,386 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:23:54,398 [DEBUG][       Thread-610466][   transport.py][1871] : starting thread (client mode): 0x82b38e0
2025-07-01 16:23:54,398 [DEBUG][       Thread-610466][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:23:54,413 [DEBUG][       Thread-610466][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:23:54,413 [ INFO][       Thread-610466][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:23:54,421 [DEBUG][       Thread-610466][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:23:54,421 [DEBUG][       Thread-610466][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:23:54,421 [DEBUG][       Thread-610466][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:23:54,421 [DEBUG][       Thread-610466][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:23:54,421 [DEBUG][       Thread-610466][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:23:54,421 [DEBUG][       Thread-610466][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:23:54,421 [DEBUG][       Thread-610466][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:23:54,421 [DEBUG][       Thread-610466][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:23:54,421 [DEBUG][       Thread-610466][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:23:54,421 [DEBUG][       Thread-610466][   transport.py][1871] : client lang: <none>
2025-07-01 16:23:54,421 [DEBUG][       Thread-610466][   transport.py][1871] : server lang: <none>
2025-07-01 16:23:54,421 [DEBUG][       Thread-610466][   transport.py][1871] : kex follows: False
2025-07-01 16:23:54,421 [DEBUG][       Thread-610466][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:23:54,421 [DEBUG][       Thread-610466][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:23:54,422 [DEBUG][       Thread-610466][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:23:54,422 [DEBUG][       Thread-610466][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:23:54,422 [DEBUG][       Thread-610466][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:23:54,422 [DEBUG][       Thread-610466][   transport.py][1871] : Compression: none
2025-07-01 16:23:54,422 [DEBUG][       Thread-610466][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:23:54,481 [DEBUG][       Thread-610466][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:23:54,481 [DEBUG][       Thread-610466][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:23:54,482 [DEBUG][       Thread-610466][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:23:54,482 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:23:54,483 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:23:54,539 [DEBUG][       Thread-610466][   transport.py][1871] : userauth is OK
2025-07-01 16:23:54,539 [DEBUG][       Thread-610466][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:23:54,540 [DEBUG][       Thread-610466][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:23:54,540 [DEBUG][       Thread-610466][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:23:54,540 [DEBUG][       Thread-610466][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:23:54,558 [ INFO][       Thread-610466][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:23:54,559 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:23:54,559 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:23:55,596 [DEBUG][       Thread-610466][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:23:55,596 [DEBUG][       Thread-610466][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:23:55,647 [DEBUG][       Thread-610466][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:23:55,647 [DEBUG][       Thread-610466][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:23:55,656 [DEBUG][       Thread-610466][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:23:55,663 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:23:55,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-07-01 16:23:55,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') -> 00000000
2025-07-01 16:23:55,683 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:23:55,683 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:23:55,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:23:55,694 [DEBUG][       Thread-610466][   transport.py][1871] : EOF in transport thread
2025-07-01 16:23:59,194 [DEBUG][Thread-610468 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:24:05,693 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:24:05,694 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:24:05,694 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:24:05,697 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:24:06,203 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 23, 54), 11.17, 46.86, 0.0, 31.25, 13.74, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:24:06,203 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:23:54
2025-07-01 16:24:06,288 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:24:06,294 [DEBUG][       Thread-610469][   transport.py][1871] : starting thread (client mode): 0x82b1fc0
2025-07-01 16:24:06,294 [DEBUG][       Thread-610469][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:24:06,309 [DEBUG][       Thread-610469][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:24:06,309 [ INFO][       Thread-610469][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:24:06,313 [DEBUG][       Thread-610469][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:24:06,313 [DEBUG][       Thread-610469][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:24:06,313 [DEBUG][       Thread-610469][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:24:06,313 [DEBUG][       Thread-610469][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:24:06,313 [DEBUG][       Thread-610469][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:24:06,313 [DEBUG][       Thread-610469][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:24:06,313 [DEBUG][       Thread-610469][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:24:06,313 [DEBUG][       Thread-610469][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:24:06,313 [DEBUG][       Thread-610469][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:24:06,313 [DEBUG][       Thread-610469][   transport.py][1871] : client lang: <none>
2025-07-01 16:24:06,313 [DEBUG][       Thread-610469][   transport.py][1871] : server lang: <none>
2025-07-01 16:24:06,313 [DEBUG][       Thread-610469][   transport.py][1871] : kex follows: False
2025-07-01 16:24:06,313 [DEBUG][       Thread-610469][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:24:06,313 [DEBUG][       Thread-610469][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:24:06,313 [DEBUG][       Thread-610469][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:24:06,313 [DEBUG][       Thread-610469][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:24:06,313 [DEBUG][       Thread-610469][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:24:06,313 [DEBUG][       Thread-610469][   transport.py][1871] : Compression: none
2025-07-01 16:24:06,313 [DEBUG][       Thread-610469][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:24:06,330 [DEBUG][       Thread-610469][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:24:06,330 [DEBUG][       Thread-610469][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:24:06,331 [DEBUG][       Thread-610469][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:24:06,331 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:24:06,331 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:24:06,332 [DEBUG][       Thread-610469][   transport.py][1871] : userauth is OK
2025-07-01 16:24:06,345 [ INFO][       Thread-610469][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:24:06,346 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:24:06,962 [DEBUG][       Thread-610469][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:24:06,962 [DEBUG][       Thread-610469][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:24:07,005 [DEBUG][       Thread-610469][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:24:07,005 [DEBUG][       Thread-610469][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:24:07,009 [DEBUG][       Thread-610469][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:24:07,020 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:24:07,021 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:24:07,023 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:24:07,025 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:24:07,030 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:24:07,032 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:24:07,033 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:24:07,033 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:24:07,033 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.599592 -999.00  +13.50  33.42     52   +3.90 1 2 2 1 1   887    0 9.55 -15.66 ----- 28.4 33.4 33.2 44.8 14.8 -22.2 14.6 -22.1 14.6 -21.1 14.9 -21.2
2025-07-01 16:24:07,033 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:24:07,033 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:24:07,033 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.599592
2025-07-01 16:24:07,034 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:24:07,034 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:24:07,035 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:24:07,035 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:24:07,035 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:24:07,035 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:23:54', tmtdew=11.17, humidity=46.86, cloud=0.0, wind=31.25, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:23:24.749', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:24:07,035 [DEBUG][       Thread-610469][   transport.py][1871] : EOF in transport thread
2025-07-01 16:24:07,120 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:24:07,130 [DEBUG][       Thread-610472][   transport.py][1871] : starting thread (client mode): 0x818d540
2025-07-01 16:24:07,130 [DEBUG][       Thread-610472][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:24:07,149 [DEBUG][       Thread-610472][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:24:07,149 [ INFO][       Thread-610472][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:24:07,156 [DEBUG][       Thread-610472][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:24:07,157 [DEBUG][       Thread-610472][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:24:07,157 [DEBUG][       Thread-610472][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:24:07,157 [DEBUG][       Thread-610472][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:24:07,157 [DEBUG][       Thread-610472][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:24:07,157 [DEBUG][       Thread-610472][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:24:07,157 [DEBUG][       Thread-610472][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:24:07,157 [DEBUG][       Thread-610472][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:24:07,157 [DEBUG][       Thread-610472][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:24:07,157 [DEBUG][       Thread-610472][   transport.py][1871] : client lang: <none>
2025-07-01 16:24:07,157 [DEBUG][       Thread-610472][   transport.py][1871] : server lang: <none>
2025-07-01 16:24:07,157 [DEBUG][       Thread-610472][   transport.py][1871] : kex follows: False
2025-07-01 16:24:07,157 [DEBUG][       Thread-610472][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:24:07,157 [DEBUG][       Thread-610472][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:24:07,157 [DEBUG][       Thread-610472][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:24:07,157 [DEBUG][       Thread-610472][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:24:07,157 [DEBUG][       Thread-610472][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:24:07,157 [DEBUG][       Thread-610472][   transport.py][1871] : Compression: none
2025-07-01 16:24:07,157 [DEBUG][       Thread-610472][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:24:07,221 [DEBUG][       Thread-610472][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:24:07,221 [DEBUG][       Thread-610472][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:24:07,222 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:24:07,222 [DEBUG][       Thread-610472][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:24:07,223 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:24:07,277 [DEBUG][       Thread-610472][   transport.py][1871] : userauth is OK
2025-07-01 16:24:07,277 [DEBUG][       Thread-610472][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:24:07,277 [DEBUG][       Thread-610472][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:24:07,277 [DEBUG][       Thread-610472][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:24:07,278 [DEBUG][       Thread-610472][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:24:07,296 [ INFO][       Thread-610472][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:24:07,296 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:24:07,296 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:24:08,217 [DEBUG][Thread-610474 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:24:08,316 [DEBUG][       Thread-610472][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:24:08,317 [DEBUG][       Thread-610472][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:24:08,368 [DEBUG][       Thread-610472][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:24:08,368 [DEBUG][       Thread-610472][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:24:08,377 [DEBUG][       Thread-610472][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:24:08,387 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:24:08,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-07-01 16:24:08,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-07-01 16:24:08,406 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:24:08,407 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:24:08,408 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:24:08,418 [DEBUG][       Thread-610472][   transport.py][1871] : EOF in transport thread
2025-07-01 16:24:17,248 [DEBUG][Thread-610475 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:24:18,411 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:24:18,411 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:24:18,411 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:24:18,414 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:24:18,904 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 23, 54), 11.17, 46.86, 0.0, 31.25, 13.74, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:24:18,904 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:23:54
2025-07-01 16:24:18,990 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:24:18,996 [DEBUG][       Thread-610476][   transport.py][1871] : starting thread (client mode): 0x82b3670
2025-07-01 16:24:18,996 [DEBUG][       Thread-610476][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:24:19,015 [DEBUG][       Thread-610476][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:24:19,015 [ INFO][       Thread-610476][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:24:19,019 [DEBUG][       Thread-610476][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:24:19,019 [DEBUG][       Thread-610476][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:24:19,019 [DEBUG][       Thread-610476][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:24:19,019 [DEBUG][       Thread-610476][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:24:19,019 [DEBUG][       Thread-610476][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:24:19,019 [DEBUG][       Thread-610476][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:24:19,019 [DEBUG][       Thread-610476][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:24:19,019 [DEBUG][       Thread-610476][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:24:19,019 [DEBUG][       Thread-610476][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:24:19,019 [DEBUG][       Thread-610476][   transport.py][1871] : client lang: <none>
2025-07-01 16:24:19,019 [DEBUG][       Thread-610476][   transport.py][1871] : server lang: <none>
2025-07-01 16:24:19,019 [DEBUG][       Thread-610476][   transport.py][1871] : kex follows: False
2025-07-01 16:24:19,019 [DEBUG][       Thread-610476][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:24:19,019 [DEBUG][       Thread-610476][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:24:19,019 [DEBUG][       Thread-610476][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:24:19,019 [DEBUG][       Thread-610476][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:24:19,019 [DEBUG][       Thread-610476][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:24:19,019 [DEBUG][       Thread-610476][   transport.py][1871] : Compression: none
2025-07-01 16:24:19,019 [DEBUG][       Thread-610476][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:24:19,035 [DEBUG][       Thread-610476][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:24:19,035 [DEBUG][       Thread-610476][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:24:19,036 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:24:19,036 [DEBUG][       Thread-610476][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:24:19,036 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:24:19,038 [DEBUG][       Thread-610476][   transport.py][1871] : userauth is OK
2025-07-01 16:24:19,051 [ INFO][       Thread-610476][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:24:19,052 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:24:19,687 [DEBUG][       Thread-610476][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:24:19,687 [DEBUG][       Thread-610476][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:24:19,729 [DEBUG][       Thread-610476][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:24:19,729 [DEBUG][       Thread-610476][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:24:19,733 [DEBUG][       Thread-610476][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:24:19,744 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:24:19,745 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:24:19,747 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:24:19,749 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:24:19,755 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:24:19,757 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:24:19,757 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:24:19,757 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:24:19,758 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.599592 -999.00  +13.50  33.42     52   +3.90 1 2 2 1 1   887    0 9.55 -15.66 ----- 28.4 33.4 33.2 44.8 14.8 -22.2 14.6 -22.1 14.6 -21.1 14.9 -21.2
2025-07-01 16:24:19,758 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:24:19,758 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:24:19,758 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.599592
2025-07-01 16:24:19,758 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:24:19,759 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:24:19,759 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:24:19,759 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:24:19,759 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:24:19,759 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:23:54', tmtdew=11.17, humidity=46.86, cloud=0.0, wind=31.25, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:23:24.749', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:24:19,759 [DEBUG][       Thread-610476][   transport.py][1871] : EOF in transport thread
2025-07-01 16:24:19,843 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:24:19,854 [DEBUG][       Thread-610479][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 16:24:19,854 [DEBUG][       Thread-610479][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:24:19,871 [DEBUG][       Thread-610479][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:24:19,871 [ INFO][       Thread-610479][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:24:19,878 [DEBUG][       Thread-610479][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:24:19,878 [DEBUG][       Thread-610479][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:24:19,879 [DEBUG][       Thread-610479][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:24:19,879 [DEBUG][       Thread-610479][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:24:19,879 [DEBUG][       Thread-610479][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:24:19,879 [DEBUG][       Thread-610479][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:24:19,879 [DEBUG][       Thread-610479][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:24:19,879 [DEBUG][       Thread-610479][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:24:19,879 [DEBUG][       Thread-610479][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:24:19,879 [DEBUG][       Thread-610479][   transport.py][1871] : client lang: <none>
2025-07-01 16:24:19,879 [DEBUG][       Thread-610479][   transport.py][1871] : server lang: <none>
2025-07-01 16:24:19,879 [DEBUG][       Thread-610479][   transport.py][1871] : kex follows: False
2025-07-01 16:24:19,879 [DEBUG][       Thread-610479][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:24:19,879 [DEBUG][       Thread-610479][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:24:19,879 [DEBUG][       Thread-610479][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:24:19,879 [DEBUG][       Thread-610479][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:24:19,879 [DEBUG][       Thread-610479][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:24:19,879 [DEBUG][       Thread-610479][   transport.py][1871] : Compression: none
2025-07-01 16:24:19,879 [DEBUG][       Thread-610479][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:24:19,943 [DEBUG][       Thread-610479][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:24:19,943 [DEBUG][       Thread-610479][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:24:19,944 [DEBUG][       Thread-610479][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:24:19,944 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:24:19,945 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:24:20,001 [DEBUG][       Thread-610479][   transport.py][1871] : userauth is OK
2025-07-01 16:24:20,001 [DEBUG][       Thread-610479][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:24:20,002 [DEBUG][       Thread-610479][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:24:20,002 [DEBUG][       Thread-610479][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:24:20,002 [DEBUG][       Thread-610479][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:24:20,024 [ INFO][       Thread-610479][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:24:20,024 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:24:20,025 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:24:21,052 [DEBUG][       Thread-610479][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:24:21,053 [DEBUG][       Thread-610479][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:24:21,104 [DEBUG][       Thread-610479][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:24:21,104 [DEBUG][       Thread-610479][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:24:21,114 [DEBUG][       Thread-610479][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:24:21,123 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:24:21,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-07-01 16:24:21,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-07-01 16:24:21,142 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:24:21,142 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:24:21,143 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:24:21,151 [DEBUG][       Thread-610479][   transport.py][1871] : EOF in transport thread
2025-07-01 16:24:26,272 [DEBUG][Thread-610481 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:24:31,153 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:24:31,154 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:24:31,154 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:24:31,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-07-01 16:24:31,647 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 24, 26), 11.13, 46.87, 0.0, 30.82, 13.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:24:31,647 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:24:26
2025-07-01 16:24:31,733 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:24:31,737 [DEBUG][       Thread-610482][   transport.py][1871] : starting thread (client mode): 0x82b1540
2025-07-01 16:24:31,737 [DEBUG][       Thread-610482][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:24:31,757 [DEBUG][       Thread-610482][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:24:31,757 [ INFO][       Thread-610482][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:24:31,761 [DEBUG][       Thread-610482][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:24:31,761 [DEBUG][       Thread-610482][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:24:31,761 [DEBUG][       Thread-610482][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:24:31,761 [DEBUG][       Thread-610482][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:24:31,761 [DEBUG][       Thread-610482][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:24:31,761 [DEBUG][       Thread-610482][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:24:31,761 [DEBUG][       Thread-610482][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:24:31,761 [DEBUG][       Thread-610482][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:24:31,761 [DEBUG][       Thread-610482][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:24:31,761 [DEBUG][       Thread-610482][   transport.py][1871] : client lang: <none>
2025-07-01 16:24:31,761 [DEBUG][       Thread-610482][   transport.py][1871] : server lang: <none>
2025-07-01 16:24:31,761 [DEBUG][       Thread-610482][   transport.py][1871] : kex follows: False
2025-07-01 16:24:31,761 [DEBUG][       Thread-610482][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:24:31,761 [DEBUG][       Thread-610482][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:24:31,761 [DEBUG][       Thread-610482][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:24:31,761 [DEBUG][       Thread-610482][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:24:31,761 [DEBUG][       Thread-610482][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:24:31,761 [DEBUG][       Thread-610482][   transport.py][1871] : Compression: none
2025-07-01 16:24:31,761 [DEBUG][       Thread-610482][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:24:31,778 [DEBUG][       Thread-610482][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:24:31,778 [DEBUG][       Thread-610482][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:24:31,778 [DEBUG][       Thread-610482][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:24:31,779 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:24:31,779 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:24:31,780 [DEBUG][       Thread-610482][   transport.py][1871] : userauth is OK
2025-07-01 16:24:31,805 [ INFO][       Thread-610482][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:24:31,806 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:24:32,461 [DEBUG][       Thread-610482][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:24:32,461 [DEBUG][       Thread-610482][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:24:32,505 [DEBUG][       Thread-610482][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:24:32,505 [DEBUG][       Thread-610482][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:24:32,509 [DEBUG][       Thread-610482][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:24:32,520 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:24:32,521 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:24:32,523 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:24:32,524 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:24:32,530 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:24:32,533 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:24:32,533 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:24:32,533 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:24:32,534 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.599939 -999.00  +13.50  24.62     52   +3.90 1 2 1 1 1   887    0 9.36 -17.03 ----- 35.2 24.6 28.8 38.2 14.8 -22.1 14.6 -21.8 14.5 -21.0 14.9 -21.0
2025-07-01 16:24:32,534 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:24:32,534 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:24:32,534 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.599939
2025-07-01 16:24:32,534 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:24:32,535 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:24:32,535 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:24:32,535 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:24:32,535 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:24:32,535 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:24:26', tmtdew=11.13, humidity=46.87, cloud=0.0, wind=30.82, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:23:54.730', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:24:32,535 [DEBUG][       Thread-610482][   transport.py][1871] : EOF in transport thread
2025-07-01 16:24:32,619 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:24:32,633 [DEBUG][       Thread-610485][   transport.py][1871] : starting thread (client mode): 0x81d9480
2025-07-01 16:24:32,634 [DEBUG][       Thread-610485][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:24:32,652 [DEBUG][       Thread-610485][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:24:32,652 [ INFO][       Thread-610485][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:24:32,660 [DEBUG][       Thread-610485][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:24:32,660 [DEBUG][       Thread-610485][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:24:32,661 [DEBUG][       Thread-610485][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:24:32,661 [DEBUG][       Thread-610485][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:24:32,661 [DEBUG][       Thread-610485][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:24:32,661 [DEBUG][       Thread-610485][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:24:32,661 [DEBUG][       Thread-610485][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:24:32,661 [DEBUG][       Thread-610485][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:24:32,661 [DEBUG][       Thread-610485][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:24:32,661 [DEBUG][       Thread-610485][   transport.py][1871] : client lang: <none>
2025-07-01 16:24:32,661 [DEBUG][       Thread-610485][   transport.py][1871] : server lang: <none>
2025-07-01 16:24:32,661 [DEBUG][       Thread-610485][   transport.py][1871] : kex follows: False
2025-07-01 16:24:32,661 [DEBUG][       Thread-610485][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:24:32,661 [DEBUG][       Thread-610485][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:24:32,661 [DEBUG][       Thread-610485][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:24:32,661 [DEBUG][       Thread-610485][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:24:32,661 [DEBUG][       Thread-610485][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:24:32,661 [DEBUG][       Thread-610485][   transport.py][1871] : Compression: none
2025-07-01 16:24:32,661 [DEBUG][       Thread-610485][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:24:32,722 [DEBUG][       Thread-610485][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:24:32,722 [DEBUG][       Thread-610485][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:24:32,723 [DEBUG][       Thread-610485][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:24:32,723 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:24:32,724 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:24:32,777 [DEBUG][       Thread-610485][   transport.py][1871] : userauth is OK
2025-07-01 16:24:32,778 [DEBUG][       Thread-610485][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:24:32,778 [DEBUG][       Thread-610485][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:24:32,778 [DEBUG][       Thread-610485][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:24:32,778 [DEBUG][       Thread-610485][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:24:32,797 [ INFO][       Thread-610485][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:24:32,797 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:24:32,798 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:24:33,820 [DEBUG][       Thread-610485][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:24:33,820 [DEBUG][       Thread-610485][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:24:33,868 [DEBUG][       Thread-610485][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:24:33,868 [DEBUG][       Thread-610485][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:24:33,878 [DEBUG][       Thread-610485][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:24:33,886 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:24:33,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-07-01 16:24:33,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-07-01 16:24:33,904 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:24:33,905 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:24:33,905 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:24:33,913 [DEBUG][       Thread-610485][   transport.py][1871] : EOF in transport thread
2025-07-01 16:24:35,293 [DEBUG][Thread-610487 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:24:38,585 [DEBUG][Thread-610488 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:24:43,916 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:24:43,916 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:24:43,916 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:24:43,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-07-01 16:24:44,331 [DEBUG][Thread-610489 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:24:44,403 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 24, 26), 11.13, 46.87, 0.0, 30.82, 13.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:24:44,403 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:24:26
2025-07-01 16:24:44,489 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:24:44,493 [DEBUG][       Thread-610490][   transport.py][1871] : starting thread (client mode): 0x82b2860
2025-07-01 16:24:44,493 [DEBUG][       Thread-610490][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:24:44,515 [DEBUG][       Thread-610490][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:24:44,515 [ INFO][       Thread-610490][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:24:44,519 [DEBUG][       Thread-610490][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:24:44,519 [DEBUG][       Thread-610490][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:24:44,519 [DEBUG][       Thread-610490][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:24:44,519 [DEBUG][       Thread-610490][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:24:44,519 [DEBUG][       Thread-610490][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:24:44,519 [DEBUG][       Thread-610490][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:24:44,519 [DEBUG][       Thread-610490][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:24:44,519 [DEBUG][       Thread-610490][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:24:44,519 [DEBUG][       Thread-610490][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:24:44,519 [DEBUG][       Thread-610490][   transport.py][1871] : client lang: <none>
2025-07-01 16:24:44,519 [DEBUG][       Thread-610490][   transport.py][1871] : server lang: <none>
2025-07-01 16:24:44,519 [DEBUG][       Thread-610490][   transport.py][1871] : kex follows: False
2025-07-01 16:24:44,519 [DEBUG][       Thread-610490][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:24:44,519 [DEBUG][       Thread-610490][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:24:44,519 [DEBUG][       Thread-610490][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:24:44,519 [DEBUG][       Thread-610490][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:24:44,519 [DEBUG][       Thread-610490][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:24:44,519 [DEBUG][       Thread-610490][   transport.py][1871] : Compression: none
2025-07-01 16:24:44,519 [DEBUG][       Thread-610490][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:24:44,535 [DEBUG][       Thread-610490][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:24:44,536 [DEBUG][       Thread-610490][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:24:44,536 [DEBUG][       Thread-610490][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:24:44,536 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:24:44,536 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:24:44,536 [DEBUG][       Thread-610490][   transport.py][1871] : userauth is OK
2025-07-01 16:24:44,549 [ INFO][       Thread-610490][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:24:44,550 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:24:45,190 [DEBUG][       Thread-610490][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:24:45,190 [DEBUG][       Thread-610490][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:24:45,233 [DEBUG][       Thread-610490][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:24:45,233 [DEBUG][       Thread-610490][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:24:45,237 [DEBUG][       Thread-610490][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:24:45,248 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:24:45,249 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:24:45,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:24:45,254 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:24:45,259 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:24:45,261 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:24:45,262 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:24:45,263 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:24:45,263 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.599939 -999.00  +13.50  24.62     52   +3.90 1 2 1 1 1   887    0 9.36 -17.03 ----- 35.2 24.6 28.8 38.2 14.8 -22.1 14.6 -21.8 14.5 -21.0 14.9 -21.0
2025-07-01 16:24:45,263 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:24:45,263 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:24:45,263 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.599939
2025-07-01 16:24:45,264 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:24:45,265 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:24:45,265 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:24:45,265 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:24:45,265 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:24:45,265 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:24:26', tmtdew=11.13, humidity=46.87, cloud=0.0, wind=30.82, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:23:54.730', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:24:45,266 [DEBUG][       Thread-610490][   transport.py][1871] : EOF in transport thread
2025-07-01 16:24:45,345 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:24:45,359 [DEBUG][       Thread-610493][   transport.py][1871] : starting thread (client mode): 0x81d9480
2025-07-01 16:24:45,359 [DEBUG][       Thread-610493][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:24:45,374 [DEBUG][       Thread-610493][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:24:45,374 [ INFO][       Thread-610493][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:24:45,388 [DEBUG][       Thread-610493][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:24:45,388 [DEBUG][       Thread-610493][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:24:45,388 [DEBUG][       Thread-610493][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:24:45,388 [DEBUG][       Thread-610493][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:24:45,388 [DEBUG][       Thread-610493][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:24:45,388 [DEBUG][       Thread-610493][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:24:45,388 [DEBUG][       Thread-610493][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:24:45,388 [DEBUG][       Thread-610493][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:24:45,388 [DEBUG][       Thread-610493][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:24:45,388 [DEBUG][       Thread-610493][   transport.py][1871] : client lang: <none>
2025-07-01 16:24:45,388 [DEBUG][       Thread-610493][   transport.py][1871] : server lang: <none>
2025-07-01 16:24:45,388 [DEBUG][       Thread-610493][   transport.py][1871] : kex follows: False
2025-07-01 16:24:45,388 [DEBUG][       Thread-610493][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:24:45,388 [DEBUG][       Thread-610493][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:24:45,388 [DEBUG][       Thread-610493][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:24:45,388 [DEBUG][       Thread-610493][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:24:45,388 [DEBUG][       Thread-610493][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:24:45,388 [DEBUG][       Thread-610493][   transport.py][1871] : Compression: none
2025-07-01 16:24:45,388 [DEBUG][       Thread-610493][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:24:45,444 [DEBUG][       Thread-610493][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:24:45,444 [DEBUG][       Thread-610493][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:24:45,444 [DEBUG][       Thread-610493][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:24:45,444 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:24:45,444 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:24:45,501 [DEBUG][       Thread-610493][   transport.py][1871] : userauth is OK
2025-07-01 16:24:45,502 [DEBUG][       Thread-610493][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:24:45,502 [DEBUG][       Thread-610493][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:24:45,502 [DEBUG][       Thread-610493][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:24:45,502 [DEBUG][       Thread-610493][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:24:45,521 [ INFO][       Thread-610493][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:24:45,521 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:24:45,522 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:24:46,537 [DEBUG][       Thread-610493][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:24:46,537 [DEBUG][       Thread-610493][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:24:46,588 [DEBUG][       Thread-610493][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:24:46,588 [DEBUG][       Thread-610493][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:24:46,597 [DEBUG][       Thread-610493][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:24:46,606 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:24:46,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-07-01 16:24:46,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') -> 00000000
2025-07-01 16:24:46,624 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:24:46,624 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:24:46,624 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:24:46,632 [DEBUG][       Thread-610493][   transport.py][1871] : EOF in transport thread
2025-07-01 16:24:53,350 [DEBUG][Thread-610495 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:24:56,635 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:24:56,635 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:24:56,635 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:24:56,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-07-01 16:24:57,138 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 24, 26), 11.13, 46.87, 0.0, 30.82, 13.7, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:24:57,138 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:24:26
2025-07-01 16:24:57,225 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:24:57,229 [DEBUG][       Thread-610497][   transport.py][1871] : starting thread (client mode): 0x82b21d0
2025-07-01 16:24:57,229 [DEBUG][       Thread-610497][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:24:57,248 [DEBUG][       Thread-610497][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:24:57,248 [ INFO][       Thread-610497][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:24:57,251 [DEBUG][       Thread-610497][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:24:57,251 [DEBUG][       Thread-610497][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:24:57,251 [DEBUG][       Thread-610497][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:24:57,251 [DEBUG][       Thread-610497][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:24:57,251 [DEBUG][       Thread-610497][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:24:57,251 [DEBUG][       Thread-610497][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:24:57,251 [DEBUG][       Thread-610497][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:24:57,251 [DEBUG][       Thread-610497][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:24:57,251 [DEBUG][       Thread-610497][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:24:57,252 [DEBUG][       Thread-610497][   transport.py][1871] : client lang: <none>
2025-07-01 16:24:57,252 [DEBUG][       Thread-610497][   transport.py][1871] : server lang: <none>
2025-07-01 16:24:57,252 [DEBUG][       Thread-610497][   transport.py][1871] : kex follows: False
2025-07-01 16:24:57,252 [DEBUG][       Thread-610497][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:24:57,252 [DEBUG][       Thread-610497][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:24:57,252 [DEBUG][       Thread-610497][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:24:57,252 [DEBUG][       Thread-610497][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:24:57,252 [DEBUG][       Thread-610497][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:24:57,252 [DEBUG][       Thread-610497][   transport.py][1871] : Compression: none
2025-07-01 16:24:57,252 [DEBUG][       Thread-610497][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:24:57,268 [DEBUG][       Thread-610497][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:24:57,269 [DEBUG][       Thread-610497][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:24:57,269 [DEBUG][       Thread-610497][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:24:57,269 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:24:57,269 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:24:57,270 [DEBUG][       Thread-610497][   transport.py][1871] : userauth is OK
2025-07-01 16:24:57,283 [ INFO][       Thread-610497][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:24:57,284 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:24:57,910 [DEBUG][       Thread-610497][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:24:57,910 [DEBUG][       Thread-610497][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:24:57,953 [DEBUG][       Thread-610497][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:24:57,953 [DEBUG][       Thread-610497][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:24:57,957 [DEBUG][       Thread-610497][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:24:57,969 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:24:57,969 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:24:57,971 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:24:57,972 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:24:57,976 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:24:57,978 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:24:57,978 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:24:57,979 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:24:57,979 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.600286 -999.00  +13.50  34.23     52   +4.00 1 2 2 1 1   887    0 9.53 -19.25 ----- 30.5 34.2 30.0 41.8 14.8 -21.9 14.6 -21.8 14.5 -21.1 14.9 -21.1
2025-07-01 16:24:57,979 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:24:57,979 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:24:57,979 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.600286
2025-07-01 16:24:57,980 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:24:57,980 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:24:57,980 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:24:57,980 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:24:57,980 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:24:57,981 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:24:26', tmtdew=11.13, humidity=46.87, cloud=0.0, wind=30.82, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:24:24.710', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:24:57,981 [DEBUG][       Thread-610497][   transport.py][1871] : EOF in transport thread
2025-07-01 16:24:58,064 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:24:58,075 [DEBUG][       Thread-610500][   transport.py][1871] : starting thread (client mode): 0x818dd80
2025-07-01 16:24:58,075 [DEBUG][       Thread-610500][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:24:58,090 [DEBUG][       Thread-610500][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:24:58,090 [ INFO][       Thread-610500][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:24:58,098 [DEBUG][       Thread-610500][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:24:58,098 [DEBUG][       Thread-610500][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:24:58,098 [DEBUG][       Thread-610500][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:24:58,098 [DEBUG][       Thread-610500][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:24:58,098 [DEBUG][       Thread-610500][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:24:58,098 [DEBUG][       Thread-610500][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:24:58,098 [DEBUG][       Thread-610500][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:24:58,098 [DEBUG][       Thread-610500][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:24:58,098 [DEBUG][       Thread-610500][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:24:58,098 [DEBUG][       Thread-610500][   transport.py][1871] : client lang: <none>
2025-07-01 16:24:58,098 [DEBUG][       Thread-610500][   transport.py][1871] : server lang: <none>
2025-07-01 16:24:58,098 [DEBUG][       Thread-610500][   transport.py][1871] : kex follows: False
2025-07-01 16:24:58,098 [DEBUG][       Thread-610500][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:24:58,098 [DEBUG][       Thread-610500][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:24:58,098 [DEBUG][       Thread-610500][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:24:58,099 [DEBUG][       Thread-610500][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:24:58,099 [DEBUG][       Thread-610500][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:24:58,099 [DEBUG][       Thread-610500][   transport.py][1871] : Compression: none
2025-07-01 16:24:58,099 [DEBUG][       Thread-610500][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:24:58,157 [DEBUG][       Thread-610500][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:24:58,158 [DEBUG][       Thread-610500][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:24:58,159 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:24:58,159 [DEBUG][       Thread-610500][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:24:58,160 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:24:58,218 [DEBUG][       Thread-610500][   transport.py][1871] : userauth is OK
2025-07-01 16:24:58,218 [DEBUG][       Thread-610500][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:24:58,218 [DEBUG][       Thread-610500][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:24:58,219 [DEBUG][       Thread-610500][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:24:58,219 [DEBUG][       Thread-610500][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:24:58,238 [ INFO][       Thread-610500][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:24:58,238 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:24:58,239 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:24:59,278 [DEBUG][       Thread-610500][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:24:59,278 [DEBUG][       Thread-610500][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:24:59,327 [DEBUG][       Thread-610500][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:24:59,327 [DEBUG][       Thread-610500][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:24:59,336 [DEBUG][       Thread-610500][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:24:59,343 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:24:59,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-07-01 16:24:59,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-07-01 16:24:59,360 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:24:59,360 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:24:59,361 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:24:59,368 [DEBUG][       Thread-610500][   transport.py][1871] : EOF in transport thread
2025-07-01 16:25:02,372 [DEBUG][Thread-610502 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:25:09,368 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:25:09,368 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:25:09,368 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:25:09,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-07-01 16:25:09,865 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 24, 58), 11.11, 46.95, 0.0, 28.42, 13.74, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:25:09,865 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:24:58
2025-07-01 16:25:09,952 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:25:09,956 [DEBUG][       Thread-610503][   transport.py][1871] : starting thread (client mode): 0x818d540
2025-07-01 16:25:09,956 [DEBUG][       Thread-610503][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:25:09,977 [DEBUG][       Thread-610503][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:25:09,978 [ INFO][       Thread-610503][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:25:09,981 [DEBUG][       Thread-610503][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:25:09,981 [DEBUG][       Thread-610503][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:25:09,981 [DEBUG][       Thread-610503][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:25:09,981 [DEBUG][       Thread-610503][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:25:09,981 [DEBUG][       Thread-610503][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:25:09,981 [DEBUG][       Thread-610503][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:25:09,981 [DEBUG][       Thread-610503][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:25:09,981 [DEBUG][       Thread-610503][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:25:09,981 [DEBUG][       Thread-610503][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:25:09,982 [DEBUG][       Thread-610503][   transport.py][1871] : client lang: <none>
2025-07-01 16:25:09,982 [DEBUG][       Thread-610503][   transport.py][1871] : server lang: <none>
2025-07-01 16:25:09,982 [DEBUG][       Thread-610503][   transport.py][1871] : kex follows: False
2025-07-01 16:25:09,982 [DEBUG][       Thread-610503][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:25:09,982 [DEBUG][       Thread-610503][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:25:09,982 [DEBUG][       Thread-610503][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:25:09,982 [DEBUG][       Thread-610503][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:25:09,982 [DEBUG][       Thread-610503][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:25:09,982 [DEBUG][       Thread-610503][   transport.py][1871] : Compression: none
2025-07-01 16:25:09,982 [DEBUG][       Thread-610503][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:25:09,999 [DEBUG][       Thread-610503][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:25:10,000 [DEBUG][       Thread-610503][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:25:10,000 [DEBUG][       Thread-610503][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:25:10,000 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:25:10,001 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:25:10,002 [DEBUG][       Thread-610503][   transport.py][1871] : userauth is OK
2025-07-01 16:25:10,026 [ INFO][       Thread-610503][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:25:10,027 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:25:10,644 [DEBUG][       Thread-610503][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:25:10,644 [DEBUG][       Thread-610503][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:25:10,685 [DEBUG][       Thread-610503][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:25:10,685 [DEBUG][       Thread-610503][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:25:10,689 [DEBUG][       Thread-610503][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:25:10,695 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:25:10,695 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:25:10,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:25:10,699 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:25:10,704 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:25:10,705 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:25:10,706 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:25:10,706 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:25:10,706 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.600286 -999.00  +13.50  34.23     52   +4.00 1 2 2 1 1   887    0 9.53 -19.25 ----- 30.5 34.2 30.0 41.8 14.8 -21.9 14.6 -21.8 14.5 -21.1 14.9 -21.1
2025-07-01 16:25:10,706 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:25:10,706 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:25:10,707 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.600286
2025-07-01 16:25:10,707 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:25:10,708 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:25:10,708 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:25:10,708 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:25:10,708 [DEBUG][       Thread-610503][   transport.py][1871] : EOF in transport thread
2025-07-01 16:25:10,708 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:25:10,709 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:24:58', tmtdew=11.11, humidity=46.95, cloud=0.0, wind=28.42, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:24:24.710', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:25:10,791 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:25:10,801 [DEBUG][       Thread-610506][   transport.py][1871] : starting thread (client mode): 0x474e8130
2025-07-01 16:25:10,801 [DEBUG][       Thread-610506][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:25:10,816 [DEBUG][       Thread-610506][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:25:10,816 [ INFO][       Thread-610506][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:25:10,825 [DEBUG][       Thread-610506][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:25:10,825 [DEBUG][       Thread-610506][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:25:10,825 [DEBUG][       Thread-610506][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:25:10,825 [DEBUG][       Thread-610506][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:25:10,825 [DEBUG][       Thread-610506][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:25:10,825 [DEBUG][       Thread-610506][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:25:10,825 [DEBUG][       Thread-610506][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:25:10,825 [DEBUG][       Thread-610506][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:25:10,825 [DEBUG][       Thread-610506][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:25:10,825 [DEBUG][       Thread-610506][   transport.py][1871] : client lang: <none>
2025-07-01 16:25:10,825 [DEBUG][       Thread-610506][   transport.py][1871] : server lang: <none>
2025-07-01 16:25:10,825 [DEBUG][       Thread-610506][   transport.py][1871] : kex follows: False
2025-07-01 16:25:10,825 [DEBUG][       Thread-610506][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:25:10,825 [DEBUG][       Thread-610506][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:25:10,825 [DEBUG][       Thread-610506][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:25:10,825 [DEBUG][       Thread-610506][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:25:10,826 [DEBUG][       Thread-610506][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:25:10,826 [DEBUG][       Thread-610506][   transport.py][1871] : Compression: none
2025-07-01 16:25:10,826 [DEBUG][       Thread-610506][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:25:10,882 [DEBUG][       Thread-610506][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:25:10,882 [DEBUG][       Thread-610506][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:25:10,883 [DEBUG][       Thread-610506][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:25:10,883 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:25:10,884 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:25:10,938 [DEBUG][       Thread-610506][   transport.py][1871] : userauth is OK
2025-07-01 16:25:10,938 [DEBUG][       Thread-610506][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:25:10,938 [DEBUG][       Thread-610506][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:25:10,938 [DEBUG][       Thread-610506][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:25:10,939 [DEBUG][       Thread-610506][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:25:10,957 [ INFO][       Thread-610506][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:25:10,957 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:25:10,958 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:25:11,394 [DEBUG][Thread-610508 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:25:11,985 [DEBUG][       Thread-610506][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:25:11,985 [DEBUG][       Thread-610506][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:25:12,036 [DEBUG][       Thread-610506][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:25:12,036 [DEBUG][       Thread-610506][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:25:12,045 [DEBUG][       Thread-610506][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:25:12,054 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:25:12,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-07-01 16:25:12,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') -> 00000000
2025-07-01 16:25:12,074 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:25:12,074 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:25:12,075 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:25:12,084 [DEBUG][       Thread-610506][   transport.py][1871] : EOF in transport thread
2025-07-01 16:25:20,427 [DEBUG][Thread-610509 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:25:22,085 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:25:22,086 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:25:22,086 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:25:22,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-07-01 16:25:22,570 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 24, 58), 11.11, 46.95, 0.0, 28.42, 13.74, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:25:22,570 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:24:58
2025-07-01 16:25:22,657 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:25:22,661 [DEBUG][       Thread-610510][   transport.py][1871] : starting thread (client mode): 0x81e51e0
2025-07-01 16:25:22,661 [DEBUG][       Thread-610510][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:25:22,680 [DEBUG][       Thread-610510][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:25:22,680 [ INFO][       Thread-610510][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:25:22,683 [DEBUG][       Thread-610510][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:25:22,683 [DEBUG][       Thread-610510][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:25:22,683 [DEBUG][       Thread-610510][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:25:22,683 [DEBUG][       Thread-610510][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:25:22,683 [DEBUG][       Thread-610510][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:25:22,683 [DEBUG][       Thread-610510][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:25:22,683 [DEBUG][       Thread-610510][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:25:22,683 [DEBUG][       Thread-610510][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:25:22,683 [DEBUG][       Thread-610510][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:25:22,683 [DEBUG][       Thread-610510][   transport.py][1871] : client lang: <none>
2025-07-01 16:25:22,683 [DEBUG][       Thread-610510][   transport.py][1871] : server lang: <none>
2025-07-01 16:25:22,683 [DEBUG][       Thread-610510][   transport.py][1871] : kex follows: False
2025-07-01 16:25:22,683 [DEBUG][       Thread-610510][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:25:22,684 [DEBUG][       Thread-610510][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:25:22,684 [DEBUG][       Thread-610510][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:25:22,684 [DEBUG][       Thread-610510][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:25:22,684 [DEBUG][       Thread-610510][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:25:22,684 [DEBUG][       Thread-610510][   transport.py][1871] : Compression: none
2025-07-01 16:25:22,684 [DEBUG][       Thread-610510][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:25:22,698 [DEBUG][       Thread-610510][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:25:22,699 [DEBUG][       Thread-610510][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:25:22,699 [DEBUG][       Thread-610510][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:25:22,699 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:25:22,699 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:25:22,699 [DEBUG][       Thread-610510][   transport.py][1871] : userauth is OK
2025-07-01 16:25:22,723 [ INFO][       Thread-610510][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:25:22,723 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:25:23,384 [DEBUG][       Thread-610510][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:25:23,384 [DEBUG][       Thread-610510][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:25:23,425 [DEBUG][       Thread-610510][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:25:23,425 [DEBUG][       Thread-610510][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:25:23,429 [DEBUG][       Thread-610510][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:25:23,440 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:25:23,440 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:25:23,442 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:25:23,444 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:25:23,450 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:25:23,452 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:25:23,452 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:25:23,453 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:25:23,453 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.600286 -999.00  +13.50  34.23     52   +4.00 1 2 2 1 1   887    0 9.53 -19.25 ----- 30.5 34.2 30.0 41.8 14.8 -21.9 14.6 -21.8 14.5 -21.1 14.9 -21.1
2025-07-01 16:25:23,453 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:25:23,453 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:25:23,453 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.600286
2025-07-01 16:25:23,453 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:25:23,454 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:25:23,454 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:25:23,454 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:25:23,454 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:25:23,454 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:24:58', tmtdew=11.11, humidity=46.95, cloud=0.0, wind=28.42, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:24:24.710', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:25:23,455 [DEBUG][       Thread-610510][   transport.py][1871] : EOF in transport thread
2025-07-01 16:25:23,539 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:25:23,554 [DEBUG][       Thread-610513][   transport.py][1871] : starting thread (client mode): 0x81d9480
2025-07-01 16:25:23,554 [DEBUG][       Thread-610513][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:25:23,579 [DEBUG][       Thread-610513][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:25:23,579 [ INFO][       Thread-610513][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:25:23,587 [DEBUG][       Thread-610513][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:25:23,587 [DEBUG][       Thread-610513][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:25:23,587 [DEBUG][       Thread-610513][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:25:23,587 [DEBUG][       Thread-610513][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:25:23,587 [DEBUG][       Thread-610513][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:25:23,587 [DEBUG][       Thread-610513][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:25:23,587 [DEBUG][       Thread-610513][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:25:23,587 [DEBUG][       Thread-610513][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:25:23,587 [DEBUG][       Thread-610513][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:25:23,587 [DEBUG][       Thread-610513][   transport.py][1871] : client lang: <none>
2025-07-01 16:25:23,587 [DEBUG][       Thread-610513][   transport.py][1871] : server lang: <none>
2025-07-01 16:25:23,587 [DEBUG][       Thread-610513][   transport.py][1871] : kex follows: False
2025-07-01 16:25:23,587 [DEBUG][       Thread-610513][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:25:23,588 [DEBUG][       Thread-610513][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:25:23,588 [DEBUG][       Thread-610513][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:25:23,588 [DEBUG][       Thread-610513][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:25:23,588 [DEBUG][       Thread-610513][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:25:23,588 [DEBUG][       Thread-610513][   transport.py][1871] : Compression: none
2025-07-01 16:25:23,588 [DEBUG][       Thread-610513][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:25:23,650 [DEBUG][       Thread-610513][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:25:23,651 [DEBUG][       Thread-610513][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:25:23,651 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:25:23,652 [DEBUG][       Thread-610513][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:25:23,653 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:25:23,706 [DEBUG][       Thread-610513][   transport.py][1871] : userauth is OK
2025-07-01 16:25:23,707 [DEBUG][       Thread-610513][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:25:23,707 [DEBUG][       Thread-610513][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:25:23,707 [DEBUG][       Thread-610513][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:25:23,707 [DEBUG][       Thread-610513][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:25:23,726 [ INFO][       Thread-610513][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:25:23,726 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:25:23,727 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:25:24,783 [DEBUG][       Thread-610513][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:25:24,784 [DEBUG][       Thread-610513][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:25:24,832 [DEBUG][       Thread-610513][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:25:24,832 [DEBUG][       Thread-610513][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:25:24,841 [DEBUG][       Thread-610513][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:25:24,853 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:25: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')
2025-07-01 16:25: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') -> 00000000
2025-07-01 16:25:24,878 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:25:24,879 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:25:24,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:25:24,887 [DEBUG][       Thread-610513][   transport.py][1871] : EOF in transport thread
2025-07-01 16:25:29,445 [DEBUG][Thread-610515 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:25:34,890 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:25:34,890 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:25:34,890 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:25:34,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-07-01 16:25:35,382 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 25, 30), 11.02, 47.25, 0.0, 33.51, 13.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:25:35,382 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:25:30
2025-07-01 16:25:35,469 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:25:35,473 [DEBUG][       Thread-610516][   transport.py][1871] : starting thread (client mode): 0x81e6080
2025-07-01 16:25:35,473 [DEBUG][       Thread-610516][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:25:35,493 [DEBUG][       Thread-610516][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:25:35,493 [ INFO][       Thread-610516][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:25:35,497 [DEBUG][       Thread-610516][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:25:35,497 [DEBUG][       Thread-610516][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:25:35,497 [DEBUG][       Thread-610516][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:25:35,497 [DEBUG][       Thread-610516][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:25:35,497 [DEBUG][       Thread-610516][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:25:35,497 [DEBUG][       Thread-610516][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:25:35,497 [DEBUG][       Thread-610516][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:25:35,497 [DEBUG][       Thread-610516][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:25:35,497 [DEBUG][       Thread-610516][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:25:35,497 [DEBUG][       Thread-610516][   transport.py][1871] : client lang: <none>
2025-07-01 16:25:35,497 [DEBUG][       Thread-610516][   transport.py][1871] : server lang: <none>
2025-07-01 16:25:35,497 [DEBUG][       Thread-610516][   transport.py][1871] : kex follows: False
2025-07-01 16:25:35,497 [DEBUG][       Thread-610516][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:25:35,497 [DEBUG][       Thread-610516][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:25:35,497 [DEBUG][       Thread-610516][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:25:35,497 [DEBUG][       Thread-610516][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:25:35,497 [DEBUG][       Thread-610516][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:25:35,497 [DEBUG][       Thread-610516][   transport.py][1871] : Compression: none
2025-07-01 16:25:35,497 [DEBUG][       Thread-610516][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:25:35,514 [DEBUG][       Thread-610516][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:25:35,514 [DEBUG][       Thread-610516][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:25:35,514 [DEBUG][       Thread-610516][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:25:35,514 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:25:35,514 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:25:35,515 [DEBUG][       Thread-610516][   transport.py][1871] : userauth is OK
2025-07-01 16:25:35,538 [ INFO][       Thread-610516][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:25:35,539 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:25:36,167 [DEBUG][       Thread-610516][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:25:36,167 [DEBUG][       Thread-610516][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:25:36,208 [DEBUG][       Thread-610516][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:25:36,209 [DEBUG][       Thread-610516][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:25:36,211 [DEBUG][       Thread-610516][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:25:36,223 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:25:36,223 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:25:36,224 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:25:36,226 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:25:36,230 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:25:36,231 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:25:36,232 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:25:36,232 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:25:36,232 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.600980 -999.00  +13.50  33.30     52   +3.90 1 2 2 1 1   887    0 9.37 -18.47 ----- 40.8 33.3 42.0 46.6 14.8 -22.0 14.5 -21.9 14.5 -21.4 14.8 -21.2
2025-07-01 16:25:36,232 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:25:36,232 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:25:36,233 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.600980
2025-07-01 16:25:36,233 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:25:36,233 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:25:36,234 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:25:36,234 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:25:36,234 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:25:36,234 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:25:30', tmtdew=11.02, humidity=47.25, cloud=0.0, wind=33.51, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:25:24.672', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:25:36,235 [DEBUG][       Thread-610516][   transport.py][1871] : EOF in transport thread
2025-07-01 16:25:36,315 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:25:36,327 [DEBUG][       Thread-610519][   transport.py][1871] : starting thread (client mode): 0x81caa40
2025-07-01 16:25:36,327 [DEBUG][       Thread-610519][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:25:36,342 [DEBUG][       Thread-610519][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:25:36,342 [ INFO][       Thread-610519][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:25:36,349 [DEBUG][       Thread-610519][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:25:36,349 [DEBUG][       Thread-610519][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:25:36,350 [DEBUG][       Thread-610519][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:25:36,350 [DEBUG][       Thread-610519][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:25:36,350 [DEBUG][       Thread-610519][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:25:36,350 [DEBUG][       Thread-610519][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:25:36,350 [DEBUG][       Thread-610519][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:25:36,350 [DEBUG][       Thread-610519][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:25:36,350 [DEBUG][       Thread-610519][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:25:36,350 [DEBUG][       Thread-610519][   transport.py][1871] : client lang: <none>
2025-07-01 16:25:36,350 [DEBUG][       Thread-610519][   transport.py][1871] : server lang: <none>
2025-07-01 16:25:36,350 [DEBUG][       Thread-610519][   transport.py][1871] : kex follows: False
2025-07-01 16:25:36,350 [DEBUG][       Thread-610519][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:25:36,350 [DEBUG][       Thread-610519][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:25:36,350 [DEBUG][       Thread-610519][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:25:36,350 [DEBUG][       Thread-610519][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:25:36,350 [DEBUG][       Thread-610519][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:25:36,350 [DEBUG][       Thread-610519][   transport.py][1871] : Compression: none
2025-07-01 16:25:36,350 [DEBUG][       Thread-610519][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:25:36,405 [DEBUG][       Thread-610519][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:25:36,406 [DEBUG][       Thread-610519][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:25:36,407 [DEBUG][       Thread-610519][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:25:36,407 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:25:36,408 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:25:36,463 [DEBUG][       Thread-610519][   transport.py][1871] : userauth is OK
2025-07-01 16:25:36,463 [DEBUG][       Thread-610519][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:25:36,463 [DEBUG][       Thread-610519][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:25:36,463 [DEBUG][       Thread-610519][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:25:36,463 [DEBUG][       Thread-610519][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:25:36,485 [ INFO][       Thread-610519][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:25:36,486 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:25:36,486 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:25:37,537 [DEBUG][       Thread-610519][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:25:37,537 [DEBUG][       Thread-610519][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:25:37,589 [DEBUG][       Thread-610519][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:25:37,590 [DEBUG][       Thread-610519][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:25:37,602 [DEBUG][       Thread-610519][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:25:37,611 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:25:37,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-07-01 16:25:37,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-07-01 16:25:37,629 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:25:37,629 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:25:37,629 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:25:37,637 [DEBUG][       Thread-610519][   transport.py][1871] : EOF in transport thread
2025-07-01 16:25:38,466 [DEBUG][Thread-610521 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:25:38,616 [DEBUG][Thread-610522 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:25:47,499 [DEBUG][Thread-610523 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:25:47,636 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:25:47,636 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:25:47,636 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:25:47,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-07-01 16:25:48,116 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 25, 30), 11.02, 47.25, 0.0, 33.51, 13.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:25:48,116 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:25:30
2025-07-01 16:25:48,203 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:25:48,207 [DEBUG][       Thread-610524][   transport.py][1871] : starting thread (client mode): 0x81e42e0
2025-07-01 16:25:48,207 [DEBUG][       Thread-610524][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:25:48,227 [DEBUG][       Thread-610524][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:25:48,227 [ INFO][       Thread-610524][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:25:48,230 [DEBUG][       Thread-610524][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:25:48,231 [DEBUG][       Thread-610524][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:25:48,231 [DEBUG][       Thread-610524][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:25:48,231 [DEBUG][       Thread-610524][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:25:48,231 [DEBUG][       Thread-610524][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:25:48,231 [DEBUG][       Thread-610524][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:25:48,231 [DEBUG][       Thread-610524][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:25:48,231 [DEBUG][       Thread-610524][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:25:48,231 [DEBUG][       Thread-610524][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:25:48,231 [DEBUG][       Thread-610524][   transport.py][1871] : client lang: <none>
2025-07-01 16:25:48,231 [DEBUG][       Thread-610524][   transport.py][1871] : server lang: <none>
2025-07-01 16:25:48,231 [DEBUG][       Thread-610524][   transport.py][1871] : kex follows: False
2025-07-01 16:25:48,231 [DEBUG][       Thread-610524][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:25:48,231 [DEBUG][       Thread-610524][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:25:48,231 [DEBUG][       Thread-610524][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:25:48,231 [DEBUG][       Thread-610524][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:25:48,231 [DEBUG][       Thread-610524][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:25:48,231 [DEBUG][       Thread-610524][   transport.py][1871] : Compression: none
2025-07-01 16:25:48,231 [DEBUG][       Thread-610524][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:25:48,248 [DEBUG][       Thread-610524][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:25:48,249 [DEBUG][       Thread-610524][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:25:48,249 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:25:48,250 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:25:48,250 [DEBUG][       Thread-610524][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:25:48,251 [DEBUG][       Thread-610524][   transport.py][1871] : userauth is OK
2025-07-01 16:25:48,276 [ INFO][       Thread-610524][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:25:48,276 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:25:48,915 [DEBUG][       Thread-610524][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:25:48,915 [DEBUG][       Thread-610524][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:25:48,957 [DEBUG][       Thread-610524][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:25:48,957 [DEBUG][       Thread-610524][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:25:48,960 [DEBUG][       Thread-610524][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:25:48,973 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:25:48,973 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:25:48,975 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:25:48,977 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:25:48,984 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:25:48,986 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:25:48,986 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:25:48,987 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:25:48,987 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.600980 -999.00  +13.50  33.30     52   +3.90 1 2 2 1 1   887    0 9.37 -18.47 ----- 40.8 33.3 42.0 46.6 14.8 -22.0 14.5 -21.9 14.5 -21.4 14.8 -21.2
2025-07-01 16:25:48,987 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:25:48,987 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:25:48,987 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.600980
2025-07-01 16:25:48,988 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:25:48,988 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:25:48,988 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:25:48,988 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:25:48,989 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:25:48,989 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:25:30', tmtdew=11.02, humidity=47.25, cloud=0.0, wind=33.51, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:25:24.672', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:25:48,990 [DEBUG][       Thread-610524][   transport.py][1871] : EOF in transport thread
2025-07-01 16:25:49,072 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:25:49,082 [DEBUG][       Thread-610527][   transport.py][1871] : starting thread (client mode): 0x83c8430
2025-07-01 16:25:49,082 [DEBUG][       Thread-610527][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:25:49,097 [DEBUG][       Thread-610527][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:25:49,097 [ INFO][       Thread-610527][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:25:49,104 [DEBUG][       Thread-610527][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:25:49,104 [DEBUG][       Thread-610527][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:25:49,104 [DEBUG][       Thread-610527][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:25:49,104 [DEBUG][       Thread-610527][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:25:49,104 [DEBUG][       Thread-610527][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:25:49,105 [DEBUG][       Thread-610527][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:25:49,105 [DEBUG][       Thread-610527][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:25:49,105 [DEBUG][       Thread-610527][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:25:49,105 [DEBUG][       Thread-610527][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:25:49,105 [DEBUG][       Thread-610527][   transport.py][1871] : client lang: <none>
2025-07-01 16:25:49,105 [DEBUG][       Thread-610527][   transport.py][1871] : server lang: <none>
2025-07-01 16:25:49,105 [DEBUG][       Thread-610527][   transport.py][1871] : kex follows: False
2025-07-01 16:25:49,105 [DEBUG][       Thread-610527][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:25:49,105 [DEBUG][       Thread-610527][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:25:49,105 [DEBUG][       Thread-610527][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:25:49,105 [DEBUG][       Thread-610527][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:25:49,105 [DEBUG][       Thread-610527][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:25:49,105 [DEBUG][       Thread-610527][   transport.py][1871] : Compression: none
2025-07-01 16:25:49,105 [DEBUG][       Thread-610527][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:25:49,163 [DEBUG][       Thread-610527][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:25:49,163 [DEBUG][       Thread-610527][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:25:49,164 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:25:49,165 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:25:49,165 [DEBUG][       Thread-610527][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:25:49,219 [DEBUG][       Thread-610527][   transport.py][1871] : userauth is OK
2025-07-01 16:25:49,219 [DEBUG][       Thread-610527][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:25:49,219 [DEBUG][       Thread-610527][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:25:49,219 [DEBUG][       Thread-610527][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:25:49,219 [DEBUG][       Thread-610527][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:25:49,244 [ INFO][       Thread-610527][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:25:49,244 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:25:49,245 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:25:50,280 [DEBUG][       Thread-610527][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:25:50,280 [DEBUG][       Thread-610527][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:25:50,328 [DEBUG][       Thread-610527][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:25:50,328 [DEBUG][       Thread-610527][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:25:50,337 [DEBUG][       Thread-610527][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:25:50,346 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:25:50,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-07-01 16:25:50,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-07-01 16:25:50,366 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:25:50,367 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:25:50,367 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:25:50,380 [DEBUG][       Thread-610527][   transport.py][1871] : EOF in transport thread
2025-07-01 16:25:56,521 [DEBUG][Thread-610529 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:26:00,376 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:26:00,376 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:26:00,376 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:26:00,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-07-01 16:26:00,857 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 25, 30), 11.02, 47.25, 0.0, 33.51, 13.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:26:00,857 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:25:30
2025-07-01 16:26:00,944 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:26:00,948 [DEBUG][       Thread-610530][   transport.py][1871] : starting thread (client mode): 0x81d9180
2025-07-01 16:26:00,948 [DEBUG][       Thread-610530][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:26:00,968 [DEBUG][       Thread-610530][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:26:00,968 [ INFO][       Thread-610530][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:26:00,971 [DEBUG][       Thread-610530][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:26:00,971 [DEBUG][       Thread-610530][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:26:00,971 [DEBUG][       Thread-610530][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:26:00,971 [DEBUG][       Thread-610530][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:26:00,971 [DEBUG][       Thread-610530][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:26:00,971 [DEBUG][       Thread-610530][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:26:00,971 [DEBUG][       Thread-610530][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:26:00,971 [DEBUG][       Thread-610530][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:26:00,971 [DEBUG][       Thread-610530][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:26:00,971 [DEBUG][       Thread-610530][   transport.py][1871] : client lang: <none>
2025-07-01 16:26:00,971 [DEBUG][       Thread-610530][   transport.py][1871] : server lang: <none>
2025-07-01 16:26:00,971 [DEBUG][       Thread-610530][   transport.py][1871] : kex follows: False
2025-07-01 16:26:00,971 [DEBUG][       Thread-610530][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:26:00,971 [DEBUG][       Thread-610530][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:26:00,971 [DEBUG][       Thread-610530][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:26:00,971 [DEBUG][       Thread-610530][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:26:00,971 [DEBUG][       Thread-610530][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:26:00,971 [DEBUG][       Thread-610530][   transport.py][1871] : Compression: none
2025-07-01 16:26:00,971 [DEBUG][       Thread-610530][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:26:00,989 [DEBUG][       Thread-610530][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:26:00,989 [DEBUG][       Thread-610530][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:26:00,990 [DEBUG][       Thread-610530][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:26:00,990 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:26:00,990 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:26:00,991 [DEBUG][       Thread-610530][   transport.py][1871] : userauth is OK
2025-07-01 16:26:01,003 [ INFO][       Thread-610530][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:26:01,004 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:26:01,612 [DEBUG][       Thread-610530][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:26:01,613 [DEBUG][       Thread-610530][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:26:01,657 [DEBUG][       Thread-610530][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:26:01,657 [DEBUG][       Thread-610530][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:26:01,660 [DEBUG][       Thread-610530][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:26:01,673 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:26:01,673 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:26:01,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:26:01,678 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:26:01,684 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:26:01,685 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:26:01,686 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:26:01,686 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:26:01,687 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.600980 -999.00  +13.50  33.30     52   +3.90 1 2 2 1 1   887    0 9.37 -18.47 ----- 40.8 33.3 42.0 46.6 14.8 -22.0 14.5 -21.9 14.5 -21.4 14.8 -21.2
2025-07-01 16:26:01,687 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:26:01,687 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:26:01,687 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.600980
2025-07-01 16:26:01,687 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:26:01,688 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:26:01,688 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:26:01,688 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:26:01,688 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:26:01,688 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:25:30', tmtdew=11.02, humidity=47.25, cloud=0.0, wind=33.51, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:25:24.672', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:26:01,690 [DEBUG][       Thread-610530][   transport.py][1871] : EOF in transport thread
2025-07-01 16:26:01,772 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:26:01,784 [DEBUG][       Thread-610533][   transport.py][1871] : starting thread (client mode): 0x82b20b0
2025-07-01 16:26:01,784 [DEBUG][       Thread-610533][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:26:01,800 [DEBUG][       Thread-610533][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:26:01,800 [ INFO][       Thread-610533][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:26:01,807 [DEBUG][       Thread-610533][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:26:01,808 [DEBUG][       Thread-610533][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:26:01,808 [DEBUG][       Thread-610533][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:26:01,808 [DEBUG][       Thread-610533][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:26:01,808 [DEBUG][       Thread-610533][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:26:01,808 [DEBUG][       Thread-610533][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:26:01,808 [DEBUG][       Thread-610533][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:26:01,808 [DEBUG][       Thread-610533][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:26:01,808 [DEBUG][       Thread-610533][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:26:01,808 [DEBUG][       Thread-610533][   transport.py][1871] : client lang: <none>
2025-07-01 16:26:01,808 [DEBUG][       Thread-610533][   transport.py][1871] : server lang: <none>
2025-07-01 16:26:01,808 [DEBUG][       Thread-610533][   transport.py][1871] : kex follows: False
2025-07-01 16:26:01,808 [DEBUG][       Thread-610533][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:26:01,808 [DEBUG][       Thread-610533][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:26:01,808 [DEBUG][       Thread-610533][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:26:01,808 [DEBUG][       Thread-610533][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:26:01,808 [DEBUG][       Thread-610533][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:26:01,808 [DEBUG][       Thread-610533][   transport.py][1871] : Compression: none
2025-07-01 16:26:01,808 [DEBUG][       Thread-610533][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:26:01,868 [DEBUG][       Thread-610533][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:26:01,869 [DEBUG][       Thread-610533][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:26:01,869 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:26:01,870 [DEBUG][       Thread-610533][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:26:01,871 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:26:01,930 [DEBUG][       Thread-610533][   transport.py][1871] : userauth is OK
2025-07-01 16:26:01,930 [DEBUG][       Thread-610533][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:26:01,930 [DEBUG][       Thread-610533][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:26:01,931 [DEBUG][       Thread-610533][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:26:01,931 [DEBUG][       Thread-610533][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:26:01,945 [ INFO][       Thread-610533][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:26:01,945 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:26:01,945 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:26:03,030 [DEBUG][       Thread-610533][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:26:03,030 [DEBUG][       Thread-610533][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:26:03,083 [DEBUG][       Thread-610533][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:26:03,083 [DEBUG][       Thread-610533][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:26:03,097 [DEBUG][       Thread-610533][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:26:03,108 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:26:03,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-07-01 16:26: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-07-01 16:26:03,132 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:26:03,132 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:26:03,132 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:26:03,144 [DEBUG][       Thread-610533][   transport.py][1871] : EOF in transport thread
2025-07-01 16:26:05,538 [DEBUG][Thread-610535 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:26:13,143 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:26:13,143 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:26:13,143 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:26:13,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-07-01 16:26:13,617 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 26, 1), 11.03, 47.19, 0.0, 36.08, 13.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:26:13,617 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:26:01
2025-07-01 16:26:13,702 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:26:13,706 [DEBUG][       Thread-610536][   transport.py][1871] : starting thread (client mode): 0x818cc70
2025-07-01 16:26:13,707 [DEBUG][       Thread-610536][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:26:13,727 [DEBUG][       Thread-610536][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:26:13,727 [ INFO][       Thread-610536][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:26:13,730 [DEBUG][       Thread-610536][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:26:13,730 [DEBUG][       Thread-610536][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:26:13,730 [DEBUG][       Thread-610536][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:26:13,730 [DEBUG][       Thread-610536][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:26:13,730 [DEBUG][       Thread-610536][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:26:13,730 [DEBUG][       Thread-610536][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:26:13,730 [DEBUG][       Thread-610536][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:26:13,730 [DEBUG][       Thread-610536][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:26:13,731 [DEBUG][       Thread-610536][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:26:13,731 [DEBUG][       Thread-610536][   transport.py][1871] : client lang: <none>
2025-07-01 16:26:13,731 [DEBUG][       Thread-610536][   transport.py][1871] : server lang: <none>
2025-07-01 16:26:13,731 [DEBUG][       Thread-610536][   transport.py][1871] : kex follows: False
2025-07-01 16:26:13,731 [DEBUG][       Thread-610536][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:26:13,731 [DEBUG][       Thread-610536][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:26:13,731 [DEBUG][       Thread-610536][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:26:13,731 [DEBUG][       Thread-610536][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:26:13,731 [DEBUG][       Thread-610536][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:26:13,731 [DEBUG][       Thread-610536][   transport.py][1871] : Compression: none
2025-07-01 16:26:13,731 [DEBUG][       Thread-610536][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:26:13,750 [DEBUG][       Thread-610536][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:26:13,750 [DEBUG][       Thread-610536][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:26:13,751 [DEBUG][       Thread-610536][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:26:13,751 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:26:13,751 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:26:13,752 [DEBUG][       Thread-610536][   transport.py][1871] : userauth is OK
2025-07-01 16:26:13,778 [ INFO][       Thread-610536][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:26:13,778 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:26:14,424 [DEBUG][       Thread-610536][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:26:14,424 [DEBUG][       Thread-610536][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:26:14,465 [DEBUG][       Thread-610536][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:26:14,465 [DEBUG][       Thread-610536][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:26:14,468 [DEBUG][       Thread-610536][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:26:14,481 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:26:14,481 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:26:14,483 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:26:14,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:26:14,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:26:14,492 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:26:14,492 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:26:14,493 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:26:14,493 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.601328 -999.00  +13.50  37.43     52   +4.00 1 2 2 1 1   887    0 9.43 -17.95 ----- 32.9 37.4 43.8 53.5 14.8 -22.0 14.5 -21.8 14.4 -21.1 14.8 -21.1
2025-07-01 16:26:14,493 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:26:14,493 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:26:14,493 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.601328
2025-07-01 16:26:14,494 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:26:14,494 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:26:14,494 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:26:14,494 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:26:14,494 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:26:14,495 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:26:01', tmtdew=11.03, humidity=47.19, cloud=0.0, wind=36.08, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:25:54.739', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:26:14,496 [DEBUG][       Thread-610536][   transport.py][1871] : EOF in transport thread
2025-07-01 16:26:14,555 [DEBUG][Thread-610539 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:26:14,578 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:26:14,587 [DEBUG][       Thread-610540][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 16:26:14,588 [DEBUG][       Thread-610540][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:26:14,603 [DEBUG][       Thread-610540][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:26:14,603 [ INFO][       Thread-610540][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:26:14,610 [DEBUG][       Thread-610540][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:26:14,610 [DEBUG][       Thread-610540][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:26:14,611 [DEBUG][       Thread-610540][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:26:14,611 [DEBUG][       Thread-610540][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:26:14,611 [DEBUG][       Thread-610540][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:26:14,611 [DEBUG][       Thread-610540][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:26:14,611 [DEBUG][       Thread-610540][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:26:14,611 [DEBUG][       Thread-610540][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:26:14,611 [DEBUG][       Thread-610540][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:26:14,611 [DEBUG][       Thread-610540][   transport.py][1871] : client lang: <none>
2025-07-01 16:26:14,611 [DEBUG][       Thread-610540][   transport.py][1871] : server lang: <none>
2025-07-01 16:26:14,611 [DEBUG][       Thread-610540][   transport.py][1871] : kex follows: False
2025-07-01 16:26:14,611 [DEBUG][       Thread-610540][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:26:14,611 [DEBUG][       Thread-610540][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:26:14,611 [DEBUG][       Thread-610540][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:26:14,611 [DEBUG][       Thread-610540][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:26:14,611 [DEBUG][       Thread-610540][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:26:14,611 [DEBUG][       Thread-610540][   transport.py][1871] : Compression: none
2025-07-01 16:26:14,611 [DEBUG][       Thread-610540][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:26:14,669 [DEBUG][       Thread-610540][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:26:14,670 [DEBUG][       Thread-610540][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:26:14,670 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:26:14,671 [DEBUG][       Thread-610540][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:26:14,672 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:26:14,727 [DEBUG][       Thread-610540][   transport.py][1871] : userauth is OK
2025-07-01 16:26:14,727 [DEBUG][       Thread-610540][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:26:14,727 [DEBUG][       Thread-610540][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:26:14,728 [DEBUG][       Thread-610540][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:26:14,728 [DEBUG][       Thread-610540][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:26:14,747 [ INFO][       Thread-610540][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:26:14,748 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:26:14,748 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:26:15,814 [DEBUG][       Thread-610540][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:26:15,814 [DEBUG][       Thread-610540][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:26:15,864 [DEBUG][       Thread-610540][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:26:15,864 [DEBUG][       Thread-610540][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:26:15,876 [DEBUG][       Thread-610540][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:26:15,886 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:26:15,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-07-01 16:26:15,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-07-01 16:26:15,904 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:26:15,905 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:26:15,905 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:26:15,913 [DEBUG][       Thread-610540][   transport.py][1871] : EOF in transport thread
2025-07-01 16:26:23,581 [DEBUG][Thread-610542 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:26:25,915 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:26:25,916 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:26:25,916 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:26:25,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-07-01 16:26:26,385 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 26, 1), 11.03, 47.19, 0.0, 36.08, 13.66, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:26:26,385 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:26:01
2025-07-01 16:26:26,471 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:26:26,477 [DEBUG][       Thread-610543][   transport.py][1871] : starting thread (client mode): 0x81cb310
2025-07-01 16:26:26,477 [DEBUG][       Thread-610543][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:26:26,498 [DEBUG][       Thread-610543][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:26:26,498 [ INFO][       Thread-610543][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:26:26,501 [DEBUG][       Thread-610543][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:26:26,501 [DEBUG][       Thread-610543][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:26:26,501 [DEBUG][       Thread-610543][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:26:26,501 [DEBUG][       Thread-610543][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:26:26,501 [DEBUG][       Thread-610543][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:26:26,501 [DEBUG][       Thread-610543][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:26:26,501 [DEBUG][       Thread-610543][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:26:26,502 [DEBUG][       Thread-610543][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:26:26,502 [DEBUG][       Thread-610543][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:26:26,502 [DEBUG][       Thread-610543][   transport.py][1871] : client lang: <none>
2025-07-01 16:26:26,502 [DEBUG][       Thread-610543][   transport.py][1871] : server lang: <none>
2025-07-01 16:26:26,502 [DEBUG][       Thread-610543][   transport.py][1871] : kex follows: False
2025-07-01 16:26:26,502 [DEBUG][       Thread-610543][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:26:26,502 [DEBUG][       Thread-610543][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:26:26,502 [DEBUG][       Thread-610543][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:26:26,502 [DEBUG][       Thread-610543][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:26:26,502 [DEBUG][       Thread-610543][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:26:26,502 [DEBUG][       Thread-610543][   transport.py][1871] : Compression: none
2025-07-01 16:26:26,502 [DEBUG][       Thread-610543][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:26:26,519 [DEBUG][       Thread-610543][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:26:26,520 [DEBUG][       Thread-610543][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:26:26,520 [DEBUG][       Thread-610543][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:26:26,521 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:26:26,521 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:26:26,522 [DEBUG][       Thread-610543][   transport.py][1871] : userauth is OK
2025-07-01 16:26:26,546 [ INFO][       Thread-610543][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:26:26,547 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:26:27,194 [DEBUG][       Thread-610543][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:26:27,194 [DEBUG][       Thread-610543][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:26:27,237 [DEBUG][       Thread-610543][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:26:27,237 [DEBUG][       Thread-610543][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:26:27,240 [DEBUG][       Thread-610543][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:26:27,252 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:26:27,253 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:26:27,254 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:26:27,256 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:26:27,262 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:26:27,264 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:26:27,264 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:26:27,265 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:26:27,265 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.601328 -999.00  +13.50  37.43     52   +4.00 1 2 2 1 1   887    0 9.43 -17.95 ----- 32.9 37.4 43.8 53.5 14.8 -22.0 14.5 -21.8 14.4 -21.1 14.8 -21.1
2025-07-01 16:26:27,265 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:26:27,265 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:26:27,265 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.601328
2025-07-01 16:26:27,266 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:26:27,266 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:26:27,266 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:26:27,266 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:26:27,266 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:26:27,266 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:26:01', tmtdew=11.03, humidity=47.19, cloud=0.0, wind=36.08, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:25:54.739', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:26:27,267 [DEBUG][       Thread-610543][   transport.py][1871] : EOF in transport thread
2025-07-01 16:26:27,350 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:26:27,362 [DEBUG][       Thread-610546][   transport.py][1871] : starting thread (client mode): 0x81712d0
2025-07-01 16:26:27,362 [DEBUG][       Thread-610546][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:26:27,377 [DEBUG][       Thread-610546][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:26:27,377 [ INFO][       Thread-610546][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:26:27,385 [DEBUG][       Thread-610546][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:26:27,385 [DEBUG][       Thread-610546][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:26:27,385 [DEBUG][       Thread-610546][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:26:27,385 [DEBUG][       Thread-610546][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:26:27,385 [DEBUG][       Thread-610546][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:26:27,385 [DEBUG][       Thread-610546][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:26:27,385 [DEBUG][       Thread-610546][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:26:27,385 [DEBUG][       Thread-610546][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:26:27,385 [DEBUG][       Thread-610546][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:26:27,385 [DEBUG][       Thread-610546][   transport.py][1871] : client lang: <none>
2025-07-01 16:26:27,385 [DEBUG][       Thread-610546][   transport.py][1871] : server lang: <none>
2025-07-01 16:26:27,385 [DEBUG][       Thread-610546][   transport.py][1871] : kex follows: False
2025-07-01 16:26:27,385 [DEBUG][       Thread-610546][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:26:27,386 [DEBUG][       Thread-610546][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:26:27,386 [DEBUG][       Thread-610546][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:26:27,386 [DEBUG][       Thread-610546][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:26:27,386 [DEBUG][       Thread-610546][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:26:27,386 [DEBUG][       Thread-610546][   transport.py][1871] : Compression: none
2025-07-01 16:26:27,386 [DEBUG][       Thread-610546][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:26:27,446 [DEBUG][       Thread-610546][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:26:27,447 [DEBUG][       Thread-610546][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:26:27,447 [DEBUG][       Thread-610546][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:26:27,448 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:26:27,448 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:26:27,503 [DEBUG][       Thread-610546][   transport.py][1871] : userauth is OK
2025-07-01 16:26:27,503 [DEBUG][       Thread-610546][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:26:27,503 [DEBUG][       Thread-610546][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:26:27,503 [DEBUG][       Thread-610546][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:26:27,504 [DEBUG][       Thread-610546][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:26:27,526 [ INFO][       Thread-610546][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:26:27,526 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:26:27,527 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:26:28,589 [DEBUG][       Thread-610546][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:26:28,589 [DEBUG][       Thread-610546][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:26:28,640 [DEBUG][       Thread-610546][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:26:28,640 [DEBUG][       Thread-610546][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:26:28,649 [DEBUG][       Thread-610546][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:26:28,658 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:26:28,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-07-01 16:26:28,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-07-01 16:26:28,675 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:26:28,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:26:28,676 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:26:28,684 [DEBUG][       Thread-610546][   transport.py][1871] : EOF in transport thread
2025-07-01 16:26:32,603 [DEBUG][Thread-610548 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:26:38,647 [DEBUG][Thread-610549 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:26:38,684 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:26:38,684 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:26:38,684 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:26:38,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-07-01 16:26:39,151 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 26, 33), 10.98, 47.26, 0.0, 35.89, 13.67, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:26:39,151 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:26:33
2025-07-01 16:26:39,237 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:26:39,242 [DEBUG][       Thread-610550][   transport.py][1871] : starting thread (client mode): 0x82b25c0
2025-07-01 16:26:39,242 [DEBUG][       Thread-610550][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:26:39,263 [DEBUG][       Thread-610550][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:26:39,263 [ INFO][       Thread-610550][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:26:39,265 [DEBUG][       Thread-610550][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:26:39,265 [DEBUG][       Thread-610550][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:26:39,265 [DEBUG][       Thread-610550][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:26:39,265 [DEBUG][       Thread-610550][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:26:39,265 [DEBUG][       Thread-610550][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:26:39,265 [DEBUG][       Thread-610550][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:26:39,265 [DEBUG][       Thread-610550][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:26:39,265 [DEBUG][       Thread-610550][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:26:39,265 [DEBUG][       Thread-610550][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:26:39,265 [DEBUG][       Thread-610550][   transport.py][1871] : client lang: <none>
2025-07-01 16:26:39,265 [DEBUG][       Thread-610550][   transport.py][1871] : server lang: <none>
2025-07-01 16:26:39,265 [DEBUG][       Thread-610550][   transport.py][1871] : kex follows: False
2025-07-01 16:26:39,265 [DEBUG][       Thread-610550][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:26:39,265 [DEBUG][       Thread-610550][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:26:39,265 [DEBUG][       Thread-610550][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:26:39,265 [DEBUG][       Thread-610550][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:26:39,265 [DEBUG][       Thread-610550][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:26:39,265 [DEBUG][       Thread-610550][   transport.py][1871] : Compression: none
2025-07-01 16:26:39,265 [DEBUG][       Thread-610550][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:26:39,273 [DEBUG][       Thread-610550][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:26:39,273 [DEBUG][       Thread-610550][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:26:39,274 [DEBUG][       Thread-610550][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:26:39,274 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:26:39,274 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:26:39,275 [DEBUG][       Thread-610550][   transport.py][1871] : userauth is OK
2025-07-01 16:26:39,288 [ INFO][       Thread-610550][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:26:39,288 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:26:39,923 [DEBUG][       Thread-610550][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:26:39,923 [DEBUG][       Thread-610550][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:26:39,965 [DEBUG][       Thread-610550][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:26:39,965 [DEBUG][       Thread-610550][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:26:39,971 [DEBUG][       Thread-610550][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:26:39,984 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:26:39,984 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:26:39,986 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:26:39,988 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:26:39,993 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:26:39,995 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:26:39,995 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:26:39,996 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:26:39,996 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.601675 -999.00  +13.50  40.78     52   +3.80 1 2 2 1 1   887    0 9.21 -18.69 ----- 38.6 40.8 42.2 52.0 14.8 -22.1 14.5 -22.0 14.4 -21.4 14.8 -21.4
2025-07-01 16:26:39,996 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:26:39,996 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:26:39,996 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.601675
2025-07-01 16:26:39,997 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:26:39,997 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:26:39,997 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:26:39,997 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:26:39,997 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:26:39,998 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:26:33', tmtdew=10.98, humidity=47.26, cloud=0.0, wind=35.89, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:26:24.720', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:26:39,999 [DEBUG][       Thread-610550][   transport.py][1871] : EOF in transport thread
2025-07-01 16:26:40,093 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:26:41,621 [DEBUG][Thread-610553 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:26:50,646 [DEBUG][Thread-610554 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:26:59,669 [DEBUG][Thread-610555 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:27:08,689 [DEBUG][Thread-610556 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:27:17,709 [DEBUG][Thread-610557 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:27:26,732 [DEBUG][Thread-610558 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:27:35,755 [DEBUG][Thread-610559 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:27:38,674 [DEBUG][Thread-610560 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:27:44,775 [DEBUG][Thread-610561 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:27:53,797 [DEBUG][Thread-610562 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:28:02,817 [DEBUG][Thread-610563 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:28:11,839 [DEBUG][Thread-610564 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:28:20,862 [DEBUG][Thread-610565 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:28:29,886 [DEBUG][Thread-610566 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:28:38,701 [DEBUG][Thread-610567 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:28:38,903 [DEBUG][Thread-610568 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:28:47,923 [DEBUG][Thread-610569 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:28:50,068 [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-07-01 16:28:56,946 [DEBUG][Thread-610570 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:29:00,076 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:29:00,076 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:29:00,076 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:29:00,078 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:29:00,596 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 28, 40), 11.02, 47.45, 0.0, 34.28, 13.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:29:00,596 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:28:40
2025-07-01 16:29:00,682 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:29:00,687 [DEBUG][       Thread-610571][   transport.py][1871] : starting thread (client mode): 0x82b3670
2025-07-01 16:29:00,687 [DEBUG][       Thread-610571][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:29:00,707 [DEBUG][       Thread-610571][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:29:00,707 [ INFO][       Thread-610571][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:29:00,710 [DEBUG][       Thread-610571][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:29:00,710 [DEBUG][       Thread-610571][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:29:00,710 [DEBUG][       Thread-610571][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:29:00,710 [DEBUG][       Thread-610571][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:29:00,710 [DEBUG][       Thread-610571][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:29:00,711 [DEBUG][       Thread-610571][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:29:00,711 [DEBUG][       Thread-610571][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:29:00,711 [DEBUG][       Thread-610571][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:29:00,711 [DEBUG][       Thread-610571][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:29:00,711 [DEBUG][       Thread-610571][   transport.py][1871] : client lang: <none>
2025-07-01 16:29:00,711 [DEBUG][       Thread-610571][   transport.py][1871] : server lang: <none>
2025-07-01 16:29:00,711 [DEBUG][       Thread-610571][   transport.py][1871] : kex follows: False
2025-07-01 16:29:00,711 [DEBUG][       Thread-610571][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:29:00,711 [DEBUG][       Thread-610571][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:29:00,711 [DEBUG][       Thread-610571][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:29:00,711 [DEBUG][       Thread-610571][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:29:00,711 [DEBUG][       Thread-610571][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:29:00,711 [DEBUG][       Thread-610571][   transport.py][1871] : Compression: none
2025-07-01 16:29:00,711 [DEBUG][       Thread-610571][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:29:00,727 [DEBUG][       Thread-610571][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:29:00,727 [DEBUG][       Thread-610571][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:29:00,728 [DEBUG][       Thread-610571][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:29:00,728 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:29:00,728 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:29:00,769 [DEBUG][       Thread-610571][   transport.py][1871] : userauth is OK
2025-07-01 16:29:00,794 [ INFO][       Thread-610571][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:29:00,794 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:29:01,361 [DEBUG][       Thread-610571][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:29:01,362 [DEBUG][       Thread-610571][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:29:01,408 [DEBUG][       Thread-610571][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:29:01,408 [DEBUG][       Thread-610571][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:29:01,411 [DEBUG][       Thread-610571][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:29:01,417 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:29:01,418 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:29:01,418 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:29:01,419 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:29:01,421 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:29:01,422 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:29:01,422 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:29:01,422 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:29:01,422 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.603064 -999.00  +13.40  42.56     52   +3.80 1 2 2 1 1   887    0 9.09 -23.73 ----- 40.0 42.6 43.4 50.9 14.7 -22.3 14.5 -22.2 14.3 -21.1 14.8 -21.1
2025-07-01 16:29:01,422 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:29:01,422 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:29:01,422 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.603064
2025-07-01 16:29:01,422 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:29:01,422 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:29:01,422 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:29:01,422 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:29:01,422 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:29:01,423 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:28:40', tmtdew=11.02, humidity=47.45, cloud=0.0, wind=34.28, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:28:24.730', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:29:01,423 [DEBUG][       Thread-610571][   transport.py][1871] : EOF in transport thread
2025-07-01 16:29:01,496 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:29:01,507 [DEBUG][       Thread-610574][   transport.py][1871] : starting thread (client mode): 0x75a85b0
2025-07-01 16:29:01,507 [DEBUG][       Thread-610574][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:29:01,522 [DEBUG][       Thread-610574][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:29:01,522 [ INFO][       Thread-610574][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:29:01,530 [DEBUG][       Thread-610574][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:29:01,530 [DEBUG][       Thread-610574][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:29:01,530 [DEBUG][       Thread-610574][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:29:01,530 [DEBUG][       Thread-610574][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:29:01,530 [DEBUG][       Thread-610574][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:29:01,530 [DEBUG][       Thread-610574][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:29:01,530 [DEBUG][       Thread-610574][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:29:01,530 [DEBUG][       Thread-610574][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:29:01,530 [DEBUG][       Thread-610574][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:29:01,530 [DEBUG][       Thread-610574][   transport.py][1871] : client lang: <none>
2025-07-01 16:29:01,530 [DEBUG][       Thread-610574][   transport.py][1871] : server lang: <none>
2025-07-01 16:29:01,530 [DEBUG][       Thread-610574][   transport.py][1871] : kex follows: False
2025-07-01 16:29:01,530 [DEBUG][       Thread-610574][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:29:01,530 [DEBUG][       Thread-610574][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:29:01,530 [DEBUG][       Thread-610574][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:29:01,530 [DEBUG][       Thread-610574][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:29:01,530 [DEBUG][       Thread-610574][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:29:01,530 [DEBUG][       Thread-610574][   transport.py][1871] : Compression: none
2025-07-01 16:29:01,530 [DEBUG][       Thread-610574][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:29:01,590 [DEBUG][       Thread-610574][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:29:01,590 [DEBUG][       Thread-610574][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:29:01,591 [DEBUG][       Thread-610574][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:29:01,591 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:29:01,592 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:29:01,646 [DEBUG][       Thread-610574][   transport.py][1871] : userauth is OK
2025-07-01 16:29:01,646 [DEBUG][       Thread-610574][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:29:01,646 [DEBUG][       Thread-610574][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:29:01,646 [DEBUG][       Thread-610574][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:29:01,646 [DEBUG][       Thread-610574][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:29:01,666 [ INFO][       Thread-610574][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:29:01,666 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:29:01,666 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:29:02,703 [DEBUG][       Thread-610574][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:29:02,703 [DEBUG][       Thread-610574][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:29:02,751 [DEBUG][       Thread-610574][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:29:02,752 [DEBUG][       Thread-610574][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:29:02,760 [DEBUG][       Thread-610574][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:29:02,769 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:29:02,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-07-01 16:29:02,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-07-01 16:29:02,787 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:29:02,787 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:29:02,787 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:29:02,795 [DEBUG][       Thread-610574][   transport.py][1871] : EOF in transport thread
2025-07-01 16:29:05,969 [DEBUG][Thread-610576 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:29:12,792 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:29:12,792 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:29:12,792 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:29:12,793 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:29:13,350 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 28, 40), 11.02, 47.45, 0.0, 34.28, 13.63, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:29:13,350 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:28:40
2025-07-01 16:29:13,445 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:29:13,450 [DEBUG][       Thread-610577][   transport.py][1871] : starting thread (client mode): 0x75a82e0
2025-07-01 16:29:13,450 [DEBUG][       Thread-610577][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:29:13,470 [DEBUG][       Thread-610577][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:29:13,470 [ INFO][       Thread-610577][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:29:13,474 [DEBUG][       Thread-610577][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:29:13,474 [DEBUG][       Thread-610577][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:29:13,474 [DEBUG][       Thread-610577][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:29:13,474 [DEBUG][       Thread-610577][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:29:13,474 [DEBUG][       Thread-610577][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:29:13,474 [DEBUG][       Thread-610577][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:29:13,474 [DEBUG][       Thread-610577][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:29:13,474 [DEBUG][       Thread-610577][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:29:13,474 [DEBUG][       Thread-610577][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:29:13,474 [DEBUG][       Thread-610577][   transport.py][1871] : client lang: <none>
2025-07-01 16:29:13,474 [DEBUG][       Thread-610577][   transport.py][1871] : server lang: <none>
2025-07-01 16:29:13,474 [DEBUG][       Thread-610577][   transport.py][1871] : kex follows: False
2025-07-01 16:29:13,474 [DEBUG][       Thread-610577][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:29:13,474 [DEBUG][       Thread-610577][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:29:13,474 [DEBUG][       Thread-610577][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:29:13,474 [DEBUG][       Thread-610577][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:29:13,474 [DEBUG][       Thread-610577][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:29:13,474 [DEBUG][       Thread-610577][   transport.py][1871] : Compression: none
2025-07-01 16:29:13,474 [DEBUG][       Thread-610577][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:29:13,492 [DEBUG][       Thread-610577][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:29:13,492 [DEBUG][       Thread-610577][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:29:13,492 [DEBUG][       Thread-610577][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:29:13,493 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:29:13,493 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:29:13,493 [DEBUG][       Thread-610577][   transport.py][1871] : userauth is OK
2025-07-01 16:29:13,517 [ INFO][       Thread-610577][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:29:13,517 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:29:14,295 [DEBUG][       Thread-610577][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:29:14,295 [DEBUG][       Thread-610577][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:29:14,337 [DEBUG][       Thread-610577][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:29:14,337 [DEBUG][       Thread-610577][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:29:14,339 [DEBUG][       Thread-610577][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:29:14,347 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:29:14,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:29:14,348 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:29:14,349 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:29:14,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:29:14,352 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:29:14,352 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:29:14,352 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:29:14,352 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.603064 -999.00  +13.40  42.56     52   +3.80 1 2 2 1 1   887    0 9.09 -23.73 ----- 40.0 42.6 43.4 50.9 14.7 -22.3 14.5 -22.2 14.3 -21.1 14.8 -21.1
2025-07-01 16:29:14,352 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:29:14,352 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:29:14,352 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.603064
2025-07-01 16:29:14,353 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:29:14,353 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:29:14,353 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:29:14,353 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:29:14,353 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:29:14,353 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:28:40', tmtdew=11.02, humidity=47.45, cloud=0.0, wind=34.28, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:28:24.730', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:29:14,353 [DEBUG][       Thread-610577][   transport.py][1871] : EOF in transport thread
2025-07-01 16:29:14,428 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:29:14,437 [DEBUG][       Thread-610580][   transport.py][1871] : starting thread (client mode): 0x81cbe80
2025-07-01 16:29:14,437 [DEBUG][       Thread-610580][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:29:14,452 [DEBUG][       Thread-610580][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:29:14,452 [ INFO][       Thread-610580][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:29:14,460 [DEBUG][       Thread-610580][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:29:14,460 [DEBUG][       Thread-610580][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:29:14,460 [DEBUG][       Thread-610580][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:29:14,460 [DEBUG][       Thread-610580][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:29:14,460 [DEBUG][       Thread-610580][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:29:14,460 [DEBUG][       Thread-610580][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:29:14,460 [DEBUG][       Thread-610580][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:29:14,460 [DEBUG][       Thread-610580][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:29:14,460 [DEBUG][       Thread-610580][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:29:14,460 [DEBUG][       Thread-610580][   transport.py][1871] : client lang: <none>
2025-07-01 16:29:14,460 [DEBUG][       Thread-610580][   transport.py][1871] : server lang: <none>
2025-07-01 16:29:14,460 [DEBUG][       Thread-610580][   transport.py][1871] : kex follows: False
2025-07-01 16:29:14,460 [DEBUG][       Thread-610580][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:29:14,460 [DEBUG][       Thread-610580][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:29:14,460 [DEBUG][       Thread-610580][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:29:14,460 [DEBUG][       Thread-610580][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:29:14,460 [DEBUG][       Thread-610580][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:29:14,460 [DEBUG][       Thread-610580][   transport.py][1871] : Compression: none
2025-07-01 16:29:14,460 [DEBUG][       Thread-610580][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:29:14,517 [DEBUG][       Thread-610580][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:29:14,517 [DEBUG][       Thread-610580][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:29:14,517 [DEBUG][       Thread-610580][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:29:14,517 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:29:14,517 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:29:14,573 [DEBUG][       Thread-610580][   transport.py][1871] : userauth is OK
2025-07-01 16:29:14,573 [DEBUG][       Thread-610580][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:29:14,573 [DEBUG][       Thread-610580][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:29:14,573 [DEBUG][       Thread-610580][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:29:14,573 [DEBUG][       Thread-610580][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:29:14,590 [ INFO][       Thread-610580][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:29:14,590 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:29:14,590 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:29:15,001 [DEBUG][Thread-610582 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:29:15,658 [DEBUG][       Thread-610580][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:29:15,658 [DEBUG][       Thread-610580][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:29:15,707 [DEBUG][       Thread-610580][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:29:15,707 [DEBUG][       Thread-610580][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:29:15,716 [DEBUG][       Thread-610580][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:29:15,723 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:29:15,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-07-01 16:29: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-07-01 16:29:15,739 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:29:15,739 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:29:15,739 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:29:15,747 [DEBUG][       Thread-610580][   transport.py][1871] : EOF in transport thread
2025-07-01 16:29:24,021 [DEBUG][Thread-610583 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:29:25,750 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:29:25,750 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:29:25,750 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:29:25,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-07-01 16:29:26,249 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 29, 12), 11.05, 47.13, 0.0, 32.87, 13.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:29:26,250 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:29:12
2025-07-01 16:29:26,336 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:29:26,342 [DEBUG][       Thread-610584][   transport.py][1871] : starting thread (client mode): 0x82b1fc0
2025-07-01 16:29:26,342 [DEBUG][       Thread-610584][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:29:26,361 [DEBUG][       Thread-610584][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:29:26,361 [ INFO][       Thread-610584][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:29:26,364 [DEBUG][       Thread-610584][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:29:26,364 [DEBUG][       Thread-610584][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:29:26,364 [DEBUG][       Thread-610584][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:29:26,364 [DEBUG][       Thread-610584][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:29:26,364 [DEBUG][       Thread-610584][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:29:26,364 [DEBUG][       Thread-610584][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:29:26,364 [DEBUG][       Thread-610584][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:29:26,364 [DEBUG][       Thread-610584][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:29:26,364 [DEBUG][       Thread-610584][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:29:26,364 [DEBUG][       Thread-610584][   transport.py][1871] : client lang: <none>
2025-07-01 16:29:26,364 [DEBUG][       Thread-610584][   transport.py][1871] : server lang: <none>
2025-07-01 16:29:26,365 [DEBUG][       Thread-610584][   transport.py][1871] : kex follows: False
2025-07-01 16:29:26,365 [DEBUG][       Thread-610584][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:29:26,365 [DEBUG][       Thread-610584][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:29:26,365 [DEBUG][       Thread-610584][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:29:26,365 [DEBUG][       Thread-610584][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:29:26,365 [DEBUG][       Thread-610584][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:29:26,365 [DEBUG][       Thread-610584][   transport.py][1871] : Compression: none
2025-07-01 16:29:26,365 [DEBUG][       Thread-610584][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:29:26,380 [DEBUG][       Thread-610584][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:29:26,381 [DEBUG][       Thread-610584][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:29:26,381 [DEBUG][       Thread-610584][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:29:26,382 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:29:26,382 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:29:26,383 [DEBUG][       Thread-610584][   transport.py][1871] : userauth is OK
2025-07-01 16:29:26,407 [ INFO][       Thread-610584][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:29:26,408 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:29:27,009 [DEBUG][       Thread-610584][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:29:27,009 [DEBUG][       Thread-610584][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:29:27,053 [DEBUG][       Thread-610584][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:29:27,053 [DEBUG][       Thread-610584][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:29:27,056 [DEBUG][       Thread-610584][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:29:27,069 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:29:27,070 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:29:27,072 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:29:27,073 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:29:27,079 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:29:27,081 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:29:27,081 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:29:27,082 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:29:27,082 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.603411 -999.00  +13.40  36.61     52   +3.80 1 2 2 1 1   887    0 9.17 -22.39 ----- 36.5 36.6 43.4 48.7 14.7 -22.3 14.4 -22.2 14.3 -21.3 14.7 -21.0
2025-07-01 16:29:27,082 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:29:27,082 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:29:27,082 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.603411
2025-07-01 16:29:27,083 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:29:27,083 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:29:27,084 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:29:27,084 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:29:27,084 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:29:27,084 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:29:12', tmtdew=11.05, humidity=47.13, cloud=0.0, wind=32.87, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:28:54.710', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:29:27,084 [DEBUG][       Thread-610584][   transport.py][1871] : EOF in transport thread
2025-07-01 16:29:27,174 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:29:27,185 [DEBUG][       Thread-610587][   transport.py][1871] : starting thread (client mode): 0x818da20
2025-07-01 16:29:27,185 [DEBUG][       Thread-610587][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:29:27,201 [DEBUG][       Thread-610587][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:29:27,201 [ INFO][       Thread-610587][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:29:27,208 [DEBUG][       Thread-610587][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:29:27,209 [DEBUG][       Thread-610587][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:29:27,209 [DEBUG][       Thread-610587][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:29:27,209 [DEBUG][       Thread-610587][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:29:27,209 [DEBUG][       Thread-610587][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:29:27,209 [DEBUG][       Thread-610587][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:29:27,209 [DEBUG][       Thread-610587][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:29:27,209 [DEBUG][       Thread-610587][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:29:27,209 [DEBUG][       Thread-610587][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:29:27,209 [DEBUG][       Thread-610587][   transport.py][1871] : client lang: <none>
2025-07-01 16:29:27,209 [DEBUG][       Thread-610587][   transport.py][1871] : server lang: <none>
2025-07-01 16:29:27,209 [DEBUG][       Thread-610587][   transport.py][1871] : kex follows: False
2025-07-01 16:29:27,209 [DEBUG][       Thread-610587][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:29:27,209 [DEBUG][       Thread-610587][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:29:27,209 [DEBUG][       Thread-610587][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:29:27,209 [DEBUG][       Thread-610587][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:29:27,209 [DEBUG][       Thread-610587][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:29:27,209 [DEBUG][       Thread-610587][   transport.py][1871] : Compression: none
2025-07-01 16:29:27,209 [DEBUG][       Thread-610587][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:29:27,266 [DEBUG][       Thread-610587][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:29:27,267 [DEBUG][       Thread-610587][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:29:27,267 [DEBUG][       Thread-610587][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:29:27,268 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:29:27,269 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:29:27,322 [DEBUG][       Thread-610587][   transport.py][1871] : userauth is OK
2025-07-01 16:29:27,322 [DEBUG][       Thread-610587][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:29:27,322 [DEBUG][       Thread-610587][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:29:27,322 [DEBUG][       Thread-610587][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:29:27,322 [DEBUG][       Thread-610587][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:29:27,341 [ INFO][       Thread-610587][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:29:27,342 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:29:27,342 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:29:28,371 [DEBUG][       Thread-610587][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:29:28,371 [DEBUG][       Thread-610587][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:29:28,420 [DEBUG][       Thread-610587][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:29:28,420 [DEBUG][       Thread-610587][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:29:28,429 [DEBUG][       Thread-610587][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:29:28,438 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:29:28,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-07-01 16:29:28,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-07-01 16:29:28,457 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:29:28,457 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:29:28,458 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:29:28,466 [DEBUG][       Thread-610587][   transport.py][1871] : EOF in transport thread
2025-07-01 16:29:33,044 [DEBUG][Thread-610589 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:29:38,468 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:29:38,469 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:29:38,469 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:29:38,472 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:29:38,727 [DEBUG][Thread-610590 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:29:38,975 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 29, 12), 11.05, 47.13, 0.0, 32.87, 13.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:29:38,975 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:29:12
2025-07-01 16:29:39,060 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:29:39,064 [DEBUG][       Thread-610591][   transport.py][1871] : starting thread (client mode): 0x82b3790
2025-07-01 16:29:39,064 [DEBUG][       Thread-610591][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:29:39,083 [DEBUG][       Thread-610591][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:29:39,083 [ INFO][       Thread-610591][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:29:39,085 [DEBUG][       Thread-610591][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:29:39,086 [DEBUG][       Thread-610591][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:29:39,086 [DEBUG][       Thread-610591][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:29:39,086 [DEBUG][       Thread-610591][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:29:39,086 [DEBUG][       Thread-610591][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:29:39,086 [DEBUG][       Thread-610591][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:29:39,086 [DEBUG][       Thread-610591][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:29:39,086 [DEBUG][       Thread-610591][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:29:39,086 [DEBUG][       Thread-610591][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:29:39,086 [DEBUG][       Thread-610591][   transport.py][1871] : client lang: <none>
2025-07-01 16:29:39,086 [DEBUG][       Thread-610591][   transport.py][1871] : server lang: <none>
2025-07-01 16:29:39,086 [DEBUG][       Thread-610591][   transport.py][1871] : kex follows: False
2025-07-01 16:29:39,086 [DEBUG][       Thread-610591][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:29:39,086 [DEBUG][       Thread-610591][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:29:39,086 [DEBUG][       Thread-610591][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:29:39,086 [DEBUG][       Thread-610591][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:29:39,086 [DEBUG][       Thread-610591][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:29:39,086 [DEBUG][       Thread-610591][   transport.py][1871] : Compression: none
2025-07-01 16:29:39,086 [DEBUG][       Thread-610591][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:29:39,106 [DEBUG][       Thread-610591][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:29:39,106 [DEBUG][       Thread-610591][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:29:39,107 [DEBUG][       Thread-610591][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:29:39,107 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:29:39,107 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:29:39,108 [DEBUG][       Thread-610591][   transport.py][1871] : userauth is OK
2025-07-01 16:29:39,121 [ INFO][       Thread-610591][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:29:39,122 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:29:39,925 [DEBUG][       Thread-610591][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:29:39,925 [DEBUG][       Thread-610591][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:29:39,969 [DEBUG][       Thread-610591][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:29:39,970 [DEBUG][       Thread-610591][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:29:39,971 [DEBUG][       Thread-610591][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:29:39,978 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:29:39,979 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:29:39,980 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:29:39,981 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:29:39,985 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:29:39,987 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:29:39,987 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:29:39,987 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:29:39,988 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.603411 -999.00  +13.40  36.61     52   +3.80 1 2 2 1 1   887    0 9.17 -22.39 ----- 36.5 36.6 43.4 48.7 14.7 -22.3 14.4 -22.2 14.3 -21.3 14.7 -21.0
2025-07-01 16:29:39,988 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:29:39,988 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:29:39,988 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.603411
2025-07-01 16:29:39,988 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:29:39,989 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:29:39,989 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:29:39,989 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:29:39,989 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:29:39,989 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:29:12', tmtdew=11.05, humidity=47.13, cloud=0.0, wind=32.87, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:28:54.710', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:29:39,990 [DEBUG][       Thread-610591][   transport.py][1871] : EOF in transport thread
2025-07-01 16:29:40,073 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:29:42,077 [DEBUG][Thread-610594 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:29:51,098 [DEBUG][Thread-610595 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:30:00,118 [DEBUG][Thread-610596 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:30:09,140 [DEBUG][Thread-610597 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:30:18,160 [DEBUG][Thread-610598 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:30:27,184 [DEBUG][Thread-610599 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:30:36,204 [DEBUG][Thread-610600 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:30:38,759 [DEBUG][Thread-610601 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:30:45,226 [DEBUG][Thread-610602 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:30:54,248 [DEBUG][Thread-610603 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:31:03,271 [DEBUG][Thread-610604 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:31:12,289 [DEBUG][Thread-610605 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:31:21,307 [DEBUG][Thread-610606 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:31:30,329 [DEBUG][Thread-610607 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:31:38,790 [DEBUG][Thread-610608 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:31:39,352 [DEBUG][Thread-610609 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:31:48,244 [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-07-01 16:31:48,369 [DEBUG][Thread-610610 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:31:57,389 [DEBUG][Thread-610611 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:31:58,254 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:31:58,255 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:31:58,255 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:31:58,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-07-01 16:31:58,770 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 31, 50), 10.9, 47.83, 0.0, 31.05, 13.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:31:58,770 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:31:50
2025-07-01 16:31:58,857 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:31:58,863 [DEBUG][       Thread-610612][   transport.py][1871] : starting thread (client mode): 0x82b16c0
2025-07-01 16:31:58,863 [DEBUG][       Thread-610612][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:31:58,883 [DEBUG][       Thread-610612][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:31:58,883 [ INFO][       Thread-610612][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:31:58,886 [DEBUG][       Thread-610612][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:31:58,887 [DEBUG][       Thread-610612][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:31:58,887 [DEBUG][       Thread-610612][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:31:58,887 [DEBUG][       Thread-610612][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:31:58,887 [DEBUG][       Thread-610612][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:31:58,887 [DEBUG][       Thread-610612][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:31:58,887 [DEBUG][       Thread-610612][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:31:58,887 [DEBUG][       Thread-610612][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:31:58,887 [DEBUG][       Thread-610612][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:31:58,887 [DEBUG][       Thread-610612][   transport.py][1871] : client lang: <none>
2025-07-01 16:31:58,887 [DEBUG][       Thread-610612][   transport.py][1871] : server lang: <none>
2025-07-01 16:31:58,887 [DEBUG][       Thread-610612][   transport.py][1871] : kex follows: False
2025-07-01 16:31:58,887 [DEBUG][       Thread-610612][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:31:58,887 [DEBUG][       Thread-610612][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:31:58,887 [DEBUG][       Thread-610612][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:31:58,887 [DEBUG][       Thread-610612][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:31:58,887 [DEBUG][       Thread-610612][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:31:58,887 [DEBUG][       Thread-610612][   transport.py][1871] : Compression: none
2025-07-01 16:31:58,887 [DEBUG][       Thread-610612][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:31:58,906 [DEBUG][       Thread-610612][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:31:58,907 [DEBUG][       Thread-610612][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:31:58,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:31:58,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:31:58,908 [DEBUG][       Thread-610612][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:31:58,909 [DEBUG][       Thread-610612][   transport.py][1871] : userauth is OK
2025-07-01 16:31:58,922 [ INFO][       Thread-610612][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:31:58,923 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:31:59,619 [DEBUG][       Thread-610612][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:31:59,619 [DEBUG][       Thread-610612][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:31:59,661 [DEBUG][       Thread-610612][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:31:59,661 [DEBUG][       Thread-610612][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:31:59,665 [DEBUG][       Thread-610612][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:31:59,677 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:31:59,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:31:59,679 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:31:59,681 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:31:59,687 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:31:59,689 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:31:59,689 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:31:59,690 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:31:59,690 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.605147 -999.00  +13.40  32.98     52   +3.90 1 2 2 1 1   887    0 8.82 -27.35 ----- 37.2 33.0 30.2 45.1 14.6 -22.4 14.3 -22.0 14.3 -20.8 14.7 -21.4
2025-07-01 16:31:59,690 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:31:59,690 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:31:59,690 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.605147
2025-07-01 16:31:59,691 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:31:59,691 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:31:59,691 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:31:59,691 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:31:59,691 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:31:59,691 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:31:50', tmtdew=10.9, humidity=47.83, cloud=0.0, wind=31.05, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:31:24.701', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:31:59,692 [DEBUG][       Thread-610612][   transport.py][1871] : EOF in transport thread
2025-07-01 16:31:59,781 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:31:59,793 [DEBUG][       Thread-610615][   transport.py][1871] : starting thread (client mode): 0x81d9540
2025-07-01 16:31:59,793 [DEBUG][       Thread-610615][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:31:59,809 [DEBUG][       Thread-610615][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:31:59,810 [ INFO][       Thread-610615][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:31:59,817 [DEBUG][       Thread-610615][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:31:59,817 [DEBUG][       Thread-610615][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:31:59,817 [DEBUG][       Thread-610615][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:31:59,817 [DEBUG][       Thread-610615][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:31:59,817 [DEBUG][       Thread-610615][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:31:59,817 [DEBUG][       Thread-610615][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:31:59,818 [DEBUG][       Thread-610615][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:31:59,818 [DEBUG][       Thread-610615][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:31:59,818 [DEBUG][       Thread-610615][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:31:59,818 [DEBUG][       Thread-610615][   transport.py][1871] : client lang: <none>
2025-07-01 16:31:59,818 [DEBUG][       Thread-610615][   transport.py][1871] : server lang: <none>
2025-07-01 16:31:59,818 [DEBUG][       Thread-610615][   transport.py][1871] : kex follows: False
2025-07-01 16:31:59,818 [DEBUG][       Thread-610615][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:31:59,818 [DEBUG][       Thread-610615][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:31:59,818 [DEBUG][       Thread-610615][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:31:59,818 [DEBUG][       Thread-610615][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:31:59,818 [DEBUG][       Thread-610615][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:31:59,818 [DEBUG][       Thread-610615][   transport.py][1871] : Compression: none
2025-07-01 16:31:59,818 [DEBUG][       Thread-610615][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:31:59,875 [DEBUG][       Thread-610615][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:31:59,876 [DEBUG][       Thread-610615][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:31:59,877 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:31:59,877 [DEBUG][       Thread-610615][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:31:59,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:31:59,931 [DEBUG][       Thread-610615][   transport.py][1871] : userauth is OK
2025-07-01 16:31:59,932 [DEBUG][       Thread-610615][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:31:59,932 [DEBUG][       Thread-610615][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:31:59,932 [DEBUG][       Thread-610615][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:31:59,932 [DEBUG][       Thread-610615][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:31:59,952 [ INFO][       Thread-610615][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:31:59,952 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:31:59,953 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:32:01,027 [DEBUG][       Thread-610615][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:32:01,027 [DEBUG][       Thread-610615][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:32:01,075 [DEBUG][       Thread-610615][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:32:01,075 [DEBUG][       Thread-610615][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:32:01,084 [DEBUG][       Thread-610615][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:32:01,092 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:32:01,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-07-01 16:32:01,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-07-01 16:32:01,108 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:32:01,108 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:32:01,108 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:32:01,116 [DEBUG][       Thread-610615][   transport.py][1871] : EOF in transport thread
2025-07-01 16:32:06,412 [DEBUG][Thread-610617 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:32:11,118 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:32:11,119 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:32:11,119 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:32:11,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-07-01 16:32:11,641 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 31, 50), 10.9, 47.83, 0.0, 31.05, 13.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:32:11,641 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:31:50
2025-07-01 16:32:11,728 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:32:11,732 [DEBUG][       Thread-610618][   transport.py][1871] : starting thread (client mode): 0x82b17e0
2025-07-01 16:32:11,732 [DEBUG][       Thread-610618][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:32:11,753 [DEBUG][       Thread-610618][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:32:11,753 [ INFO][       Thread-610618][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:32:11,756 [DEBUG][       Thread-610618][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:32:11,757 [DEBUG][       Thread-610618][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:32:11,757 [DEBUG][       Thread-610618][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:32:11,757 [DEBUG][       Thread-610618][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:32:11,757 [DEBUG][       Thread-610618][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:32:11,757 [DEBUG][       Thread-610618][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:32:11,757 [DEBUG][       Thread-610618][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:32:11,757 [DEBUG][       Thread-610618][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:32:11,757 [DEBUG][       Thread-610618][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:32:11,757 [DEBUG][       Thread-610618][   transport.py][1871] : client lang: <none>
2025-07-01 16:32:11,757 [DEBUG][       Thread-610618][   transport.py][1871] : server lang: <none>
2025-07-01 16:32:11,757 [DEBUG][       Thread-610618][   transport.py][1871] : kex follows: False
2025-07-01 16:32:11,757 [DEBUG][       Thread-610618][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:32:11,757 [DEBUG][       Thread-610618][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:32:11,757 [DEBUG][       Thread-610618][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:32:11,757 [DEBUG][       Thread-610618][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:32:11,757 [DEBUG][       Thread-610618][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:32:11,757 [DEBUG][       Thread-610618][   transport.py][1871] : Compression: none
2025-07-01 16:32:11,757 [DEBUG][       Thread-610618][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:32:11,773 [DEBUG][       Thread-610618][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:32:11,774 [DEBUG][       Thread-610618][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:32:11,774 [DEBUG][       Thread-610618][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:32:11,775 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:32:11,775 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:32:11,776 [DEBUG][       Thread-610618][   transport.py][1871] : userauth is OK
2025-07-01 16:32:11,789 [ INFO][       Thread-610618][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:32:11,790 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:32:12,400 [DEBUG][       Thread-610618][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:32:12,400 [DEBUG][       Thread-610618][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:32:12,441 [DEBUG][       Thread-610618][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:32:12,441 [DEBUG][       Thread-610618][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:32:12,444 [DEBUG][       Thread-610618][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:32:12,456 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:32:12,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:32:12,458 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:32:12,460 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:32:12,466 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:32:12,468 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:32:12,468 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:32:12,469 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:32:12,469 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.605494 -999.00  +13.40  31.65     52   +3.90 1 2 2 1 1   887    0 8.68 -29.77 ----- 28.5 31.6 12.2 42.2 14.6 -22.1 14.3 -21.9 14.3 -20.6 14.6 -20.7
2025-07-01 16:32:12,469 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:32:12,469 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:32:12,469 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.605494
2025-07-01 16:32:12,470 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:32:12,470 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:32:12,470 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:32:12,470 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:32:12,470 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:32:12,471 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:31:50', tmtdew=10.9, humidity=47.83, cloud=0.0, wind=31.05, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:31:54.682', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:32:12,471 [DEBUG][       Thread-610618][   transport.py][1871] : EOF in transport thread
2025-07-01 16:32:12,554 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:32:12,564 [DEBUG][       Thread-610621][   transport.py][1871] : starting thread (client mode): 0x81caa40
2025-07-01 16:32:12,564 [DEBUG][       Thread-610621][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:32:12,580 [DEBUG][       Thread-610621][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:32:12,580 [ INFO][       Thread-610621][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:32:12,587 [DEBUG][       Thread-610621][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:32:12,587 [DEBUG][       Thread-610621][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:32:12,588 [DEBUG][       Thread-610621][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:32:12,588 [DEBUG][       Thread-610621][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:32:12,588 [DEBUG][       Thread-610621][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:32:12,588 [DEBUG][       Thread-610621][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:32:12,588 [DEBUG][       Thread-610621][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:32:12,588 [DEBUG][       Thread-610621][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:32:12,588 [DEBUG][       Thread-610621][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:32:12,588 [DEBUG][       Thread-610621][   transport.py][1871] : client lang: <none>
2025-07-01 16:32:12,588 [DEBUG][       Thread-610621][   transport.py][1871] : server lang: <none>
2025-07-01 16:32:12,588 [DEBUG][       Thread-610621][   transport.py][1871] : kex follows: False
2025-07-01 16:32:12,588 [DEBUG][       Thread-610621][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:32:12,588 [DEBUG][       Thread-610621][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:32:12,588 [DEBUG][       Thread-610621][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:32:12,588 [DEBUG][       Thread-610621][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:32:12,588 [DEBUG][       Thread-610621][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:32:12,588 [DEBUG][       Thread-610621][   transport.py][1871] : Compression: none
2025-07-01 16:32:12,588 [DEBUG][       Thread-610621][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:32:12,647 [DEBUG][       Thread-610621][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:32:12,648 [DEBUG][       Thread-610621][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:32:12,649 [DEBUG][       Thread-610621][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:32:12,649 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:32:12,650 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:32:12,703 [DEBUG][       Thread-610621][   transport.py][1871] : userauth is OK
2025-07-01 16:32:12,704 [DEBUG][       Thread-610621][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:32:12,704 [DEBUG][       Thread-610621][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:32:12,704 [DEBUG][       Thread-610621][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:32:12,704 [DEBUG][       Thread-610621][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:32:12,723 [ INFO][       Thread-610621][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:32:12,724 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:32:12,724 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:32:13,747 [DEBUG][       Thread-610621][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:32:13,748 [DEBUG][       Thread-610621][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:32:13,796 [DEBUG][       Thread-610621][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:32:13,796 [DEBUG][       Thread-610621][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:32:13,805 [DEBUG][       Thread-610621][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:32:13,814 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:32:13,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-07-01 16:32:13,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-07-01 16:32:13,833 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:32:13,833 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:32:13,834 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:32:13,841 [DEBUG][       Thread-610621][   transport.py][1871] : EOF in transport thread
2025-07-01 16:32:15,446 [DEBUG][Thread-610623 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:32:23,844 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:32:23,844 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:32:23,844 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:32:23,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-07-01 16:32:24,415 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 31, 50), 10.9, 47.83, 0.0, 31.05, 13.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:32:24,415 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:31:50
2025-07-01 16:32:24,468 [DEBUG][Thread-610624 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:32:24,511 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:32:24,517 [DEBUG][       Thread-610625][   transport.py][1871] : starting thread (client mode): 0x82b2fe0
2025-07-01 16:32:24,517 [DEBUG][       Thread-610625][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:32:24,537 [DEBUG][       Thread-610625][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:32:24,537 [ INFO][       Thread-610625][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:32:24,540 [DEBUG][       Thread-610625][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:32:24,541 [DEBUG][       Thread-610625][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:32:24,541 [DEBUG][       Thread-610625][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:32:24,541 [DEBUG][       Thread-610625][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:32:24,541 [DEBUG][       Thread-610625][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:32:24,541 [DEBUG][       Thread-610625][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:32:24,541 [DEBUG][       Thread-610625][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:32:24,541 [DEBUG][       Thread-610625][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:32:24,541 [DEBUG][       Thread-610625][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:32:24,541 [DEBUG][       Thread-610625][   transport.py][1871] : client lang: <none>
2025-07-01 16:32:24,541 [DEBUG][       Thread-610625][   transport.py][1871] : server lang: <none>
2025-07-01 16:32:24,541 [DEBUG][       Thread-610625][   transport.py][1871] : kex follows: False
2025-07-01 16:32:24,541 [DEBUG][       Thread-610625][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:32:24,541 [DEBUG][       Thread-610625][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:32:24,541 [DEBUG][       Thread-610625][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:32:24,541 [DEBUG][       Thread-610625][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:32:24,541 [DEBUG][       Thread-610625][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:32:24,541 [DEBUG][       Thread-610625][   transport.py][1871] : Compression: none
2025-07-01 16:32:24,541 [DEBUG][       Thread-610625][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:32:24,547 [DEBUG][       Thread-610625][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:32:24,548 [DEBUG][       Thread-610625][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:32:24,548 [DEBUG][       Thread-610625][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:32:24,548 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:32:24,548 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:32:24,549 [DEBUG][       Thread-610625][   transport.py][1871] : userauth is OK
2025-07-01 16:32:24,562 [ INFO][       Thread-610625][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:32:24,562 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:32:25,212 [DEBUG][       Thread-610625][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:32:25,212 [DEBUG][       Thread-610625][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:32:25,253 [DEBUG][       Thread-610625][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:32:25,253 [DEBUG][       Thread-610625][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:32:25,255 [DEBUG][       Thread-610625][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:32:25,267 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:32:25,267 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:32:25,268 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:32:25,269 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:32:25,273 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:32:25,274 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:32:25,274 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:32:25,274 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:32:25,274 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.605494 -999.00  +13.40  31.65     52   +3.90 1 2 2 1 1   887    0 8.68 -29.77 ----- 28.5 31.6 12.2 42.2 14.6 -22.1 14.3 -21.9 14.3 -20.6 14.6 -20.7
2025-07-01 16:32:25,274 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:32:25,274 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:32:25,274 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.605494
2025-07-01 16:32:25,274 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:32:25,274 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:32:25,274 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:32:25,274 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:32:25,274 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:32:25,274 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:31:50', tmtdew=10.9, humidity=47.83, cloud=0.0, wind=31.05, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:31:54.682', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:32:25,275 [DEBUG][       Thread-610625][   transport.py][1871] : EOF in transport thread
2025-07-01 16:32:25,347 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:32:25,358 [DEBUG][       Thread-610628][   transport.py][1871] : starting thread (client mode): 0x827d540
2025-07-01 16:32:25,358 [DEBUG][       Thread-610628][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:32:25,373 [DEBUG][       Thread-610628][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:32:25,373 [ INFO][       Thread-610628][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:32:25,381 [DEBUG][       Thread-610628][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:32:25,381 [DEBUG][       Thread-610628][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:32:25,381 [DEBUG][       Thread-610628][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:32:25,381 [DEBUG][       Thread-610628][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:32:25,381 [DEBUG][       Thread-610628][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:32:25,381 [DEBUG][       Thread-610628][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:32:25,381 [DEBUG][       Thread-610628][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:32:25,381 [DEBUG][       Thread-610628][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:32:25,381 [DEBUG][       Thread-610628][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:32:25,381 [DEBUG][       Thread-610628][   transport.py][1871] : client lang: <none>
2025-07-01 16:32:25,381 [DEBUG][       Thread-610628][   transport.py][1871] : server lang: <none>
2025-07-01 16:32:25,381 [DEBUG][       Thread-610628][   transport.py][1871] : kex follows: False
2025-07-01 16:32:25,381 [DEBUG][       Thread-610628][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:32:25,381 [DEBUG][       Thread-610628][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:32:25,381 [DEBUG][       Thread-610628][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:32:25,381 [DEBUG][       Thread-610628][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:32:25,381 [DEBUG][       Thread-610628][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:32:25,381 [DEBUG][       Thread-610628][   transport.py][1871] : Compression: none
2025-07-01 16:32:25,381 [DEBUG][       Thread-610628][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:32:25,438 [DEBUG][       Thread-610628][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:32:25,438 [DEBUG][       Thread-610628][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:32:25,438 [DEBUG][       Thread-610628][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:32:25,438 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:32:25,438 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:32:25,499 [DEBUG][       Thread-610628][   transport.py][1871] : userauth is OK
2025-07-01 16:32:25,499 [DEBUG][       Thread-610628][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:32:25,499 [DEBUG][       Thread-610628][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:32:25,499 [DEBUG][       Thread-610628][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:32:25,499 [DEBUG][       Thread-610628][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:32:25,513 [ INFO][       Thread-610628][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:32:25,513 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:32:25,513 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:32:26,573 [DEBUG][       Thread-610628][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:32:26,573 [DEBUG][       Thread-610628][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:32:26,623 [DEBUG][       Thread-610628][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:32:26,623 [DEBUG][       Thread-610628][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:32:26,632 [DEBUG][       Thread-610628][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:32:26,641 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:32:26,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-07-01 16:32:26,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-07-01 16:32:26,657 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:32:26,657 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:32:26,657 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:32:26,665 [DEBUG][       Thread-610628][   transport.py][1871] : EOF in transport thread
2025-07-01 16:32:33,488 [DEBUG][Thread-610630 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:32:36,668 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:32:36,668 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:32:36,668 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:32:36,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-07-01 16:32:37,176 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 32, 22), 10.93, 47.75, 0.0, 31.07, 13.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:32:37,177 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:32:22
2025-07-01 16:32:37,264 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:32:37,268 [DEBUG][       Thread-610631][   transport.py][1871] : starting thread (client mode): 0x82b1b10
2025-07-01 16:32:37,268 [DEBUG][       Thread-610631][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:32:37,288 [DEBUG][       Thread-610631][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:32:37,288 [ INFO][       Thread-610631][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:32:37,291 [DEBUG][       Thread-610631][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:32:37,291 [DEBUG][       Thread-610631][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:32:37,292 [DEBUG][       Thread-610631][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:32:37,292 [DEBUG][       Thread-610631][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:32:37,292 [DEBUG][       Thread-610631][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:32:37,292 [DEBUG][       Thread-610631][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:32:37,292 [DEBUG][       Thread-610631][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:32:37,292 [DEBUG][       Thread-610631][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:32:37,292 [DEBUG][       Thread-610631][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:32:37,292 [DEBUG][       Thread-610631][   transport.py][1871] : client lang: <none>
2025-07-01 16:32:37,292 [DEBUG][       Thread-610631][   transport.py][1871] : server lang: <none>
2025-07-01 16:32:37,292 [DEBUG][       Thread-610631][   transport.py][1871] : kex follows: False
2025-07-01 16:32:37,292 [DEBUG][       Thread-610631][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:32:37,292 [DEBUG][       Thread-610631][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:32:37,292 [DEBUG][       Thread-610631][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:32:37,292 [DEBUG][       Thread-610631][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:32:37,292 [DEBUG][       Thread-610631][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:32:37,292 [DEBUG][       Thread-610631][   transport.py][1871] : Compression: none
2025-07-01 16:32:37,292 [DEBUG][       Thread-610631][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:32:37,309 [DEBUG][       Thread-610631][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:32:37,309 [DEBUG][       Thread-610631][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:32:37,310 [DEBUG][       Thread-610631][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:32:37,310 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:32:37,310 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:32:37,311 [DEBUG][       Thread-610631][   transport.py][1871] : userauth is OK
2025-07-01 16:32:37,336 [ INFO][       Thread-610631][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:32:37,336 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:32:37,986 [DEBUG][       Thread-610631][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:32:37,986 [DEBUG][       Thread-610631][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:32:38,033 [DEBUG][       Thread-610631][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:32:38,033 [DEBUG][       Thread-610631][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:32:38,036 [DEBUG][       Thread-610631][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:32:38,048 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:32:38,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:32:38,050 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:32:38,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:32:38,057 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:32:38,059 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:32:38,059 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:32:38,060 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:32:38,060 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.605494 -999.00  +13.40  31.65     52   +3.90 1 2 2 1 1   887    0 8.68 -29.77 ----- 28.5 31.6 12.2 42.2 14.6 -22.1 14.3 -21.9 14.3 -20.6 14.6 -20.7
2025-07-01 16:32:38,060 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:32:38,060 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:32:38,060 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.605494
2025-07-01 16:32:38,061 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:32:38,061 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:32:38,062 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:32:38,062 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:32:38,062 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:32:38,062 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:32:22', tmtdew=10.93, humidity=47.75, cloud=0.0, wind=31.07, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:31:54.682', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:32:38,063 [DEBUG][       Thread-610631][   transport.py][1871] : EOF in transport thread
2025-07-01 16:32:38,145 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:32:38,155 [DEBUG][       Thread-610634][   transport.py][1871] : starting thread (client mode): 0x8171480
2025-07-01 16:32:38,155 [DEBUG][       Thread-610634][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:32:38,169 [DEBUG][       Thread-610634][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:32:38,170 [ INFO][       Thread-610634][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:32:38,177 [DEBUG][       Thread-610634][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:32:38,177 [DEBUG][       Thread-610634][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:32:38,177 [DEBUG][       Thread-610634][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:32:38,177 [DEBUG][       Thread-610634][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:32:38,177 [DEBUG][       Thread-610634][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:32:38,177 [DEBUG][       Thread-610634][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:32:38,177 [DEBUG][       Thread-610634][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:32:38,177 [DEBUG][       Thread-610634][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:32:38,178 [DEBUG][       Thread-610634][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:32:38,178 [DEBUG][       Thread-610634][   transport.py][1871] : client lang: <none>
2025-07-01 16:32:38,178 [DEBUG][       Thread-610634][   transport.py][1871] : server lang: <none>
2025-07-01 16:32:38,178 [DEBUG][       Thread-610634][   transport.py][1871] : kex follows: False
2025-07-01 16:32:38,178 [DEBUG][       Thread-610634][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:32:38,178 [DEBUG][       Thread-610634][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:32:38,178 [DEBUG][       Thread-610634][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:32:38,178 [DEBUG][       Thread-610634][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:32:38,178 [DEBUG][       Thread-610634][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:32:38,178 [DEBUG][       Thread-610634][   transport.py][1871] : Compression: none
2025-07-01 16:32:38,178 [DEBUG][       Thread-610634][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:32:38,240 [DEBUG][       Thread-610634][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:32:38,241 [DEBUG][       Thread-610634][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:32:38,241 [DEBUG][       Thread-610634][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:32:38,242 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:32:38,242 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:32:38,308 [DEBUG][       Thread-610634][   transport.py][1871] : userauth is OK
2025-07-01 16:32:38,308 [DEBUG][       Thread-610634][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:32:38,308 [DEBUG][       Thread-610634][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:32:38,308 [DEBUG][       Thread-610634][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:32:38,308 [DEBUG][       Thread-610634][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:32:38,327 [ INFO][       Thread-610634][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:32:38,327 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:32:38,327 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:32:38,822 [DEBUG][Thread-610636 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:32:39,322 [DEBUG][       Thread-610634][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:32:39,322 [DEBUG][       Thread-610634][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:32:39,372 [DEBUG][       Thread-610634][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:32:39,372 [DEBUG][       Thread-610634][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:32:39,381 [DEBUG][       Thread-610634][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:32:39,390 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:32:39,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')
2025-07-01 16:32:39,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') -> 00000000
2025-07-01 16:32:39,412 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:32:39,412 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:32:39,413 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:32:39,421 [DEBUG][       Thread-610634][   transport.py][1871] : EOF in transport thread
2025-07-01 16:32:42,510 [DEBUG][Thread-610637 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:32:49,413 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:32:49,414 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:32:49,414 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:32:49,416 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:32:49,917 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 32, 22), 10.93, 47.75, 0.0, 31.07, 13.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:32:49,918 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:32:22
2025-07-01 16:32:50,003 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:32:50,008 [DEBUG][       Thread-610638][   transport.py][1871] : starting thread (client mode): 0x82b2d40
2025-07-01 16:32:50,008 [DEBUG][       Thread-610638][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:32:50,031 [DEBUG][       Thread-610638][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:32:50,031 [ INFO][       Thread-610638][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:32:50,034 [DEBUG][       Thread-610638][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:32:50,034 [DEBUG][       Thread-610638][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:32:50,034 [DEBUG][       Thread-610638][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:32:50,034 [DEBUG][       Thread-610638][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:32:50,034 [DEBUG][       Thread-610638][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:32:50,034 [DEBUG][       Thread-610638][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:32:50,034 [DEBUG][       Thread-610638][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:32:50,034 [DEBUG][       Thread-610638][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:32:50,034 [DEBUG][       Thread-610638][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:32:50,034 [DEBUG][       Thread-610638][   transport.py][1871] : client lang: <none>
2025-07-01 16:32:50,034 [DEBUG][       Thread-610638][   transport.py][1871] : server lang: <none>
2025-07-01 16:32:50,034 [DEBUG][       Thread-610638][   transport.py][1871] : kex follows: False
2025-07-01 16:32:50,034 [DEBUG][       Thread-610638][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:32:50,035 [DEBUG][       Thread-610638][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:32:50,035 [DEBUG][       Thread-610638][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:32:50,035 [DEBUG][       Thread-610638][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:32:50,035 [DEBUG][       Thread-610638][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:32:50,035 [DEBUG][       Thread-610638][   transport.py][1871] : Compression: none
2025-07-01 16:32:50,035 [DEBUG][       Thread-610638][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:32:50,052 [DEBUG][       Thread-610638][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:32:50,052 [DEBUG][       Thread-610638][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:32:50,053 [DEBUG][       Thread-610638][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:32:50,053 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:32:50,053 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:32:50,054 [DEBUG][       Thread-610638][   transport.py][1871] : userauth is OK
2025-07-01 16:32:50,080 [ INFO][       Thread-610638][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:32:50,080 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:32:50,729 [DEBUG][       Thread-610638][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:32:50,729 [DEBUG][       Thread-610638][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:32:50,773 [DEBUG][       Thread-610638][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:32:50,773 [DEBUG][       Thread-610638][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:32:50,775 [DEBUG][       Thread-610638][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:32:50,790 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:32:50,790 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:32:50,791 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:32:50,792 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:32:50,796 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:32:50,797 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:32:50,797 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:32:50,797 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:32:50,797 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.605841 -999.00  +13.40  26.97     53   +4.00 1 2 1 1 1   887    0 8.71 -32.65 ----- 23.1 27.0 40.4 34.9 14.6 -22.0 14.3 -21.6 14.2 -20.6 14.6 -20.9
2025-07-01 16:32:50,797 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:32:50,797 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:32:50,797 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.605841
2025-07-01 16:32:50,797 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:32:50,797 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:32:50,797 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:32:50,797 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:32:50,797 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:32:50,797 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:32:22', tmtdew=10.93, humidity=47.75, cloud=0.0, wind=31.07, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:32:24.662', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:32:50,798 [DEBUG][       Thread-610638][   transport.py][1871] : EOF in transport thread
2025-07-01 16:32:50,869 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:32:50,880 [DEBUG][       Thread-610641][   transport.py][1871] : starting thread (client mode): 0x82b26e0
2025-07-01 16:32:50,880 [DEBUG][       Thread-610641][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:32:50,896 [DEBUG][       Thread-610641][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:32:50,896 [ INFO][       Thread-610641][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:32:50,904 [DEBUG][       Thread-610641][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:32:50,904 [DEBUG][       Thread-610641][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:32:50,904 [DEBUG][       Thread-610641][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:32:50,904 [DEBUG][       Thread-610641][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:32:50,904 [DEBUG][       Thread-610641][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:32:50,904 [DEBUG][       Thread-610641][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:32:50,904 [DEBUG][       Thread-610641][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:32:50,904 [DEBUG][       Thread-610641][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:32:50,904 [DEBUG][       Thread-610641][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:32:50,904 [DEBUG][       Thread-610641][   transport.py][1871] : client lang: <none>
2025-07-01 16:32:50,904 [DEBUG][       Thread-610641][   transport.py][1871] : server lang: <none>
2025-07-01 16:32:50,904 [DEBUG][       Thread-610641][   transport.py][1871] : kex follows: False
2025-07-01 16:32:50,904 [DEBUG][       Thread-610641][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:32:50,904 [DEBUG][       Thread-610641][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:32:50,904 [DEBUG][       Thread-610641][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:32:50,904 [DEBUG][       Thread-610641][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:32:50,904 [DEBUG][       Thread-610641][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:32:50,904 [DEBUG][       Thread-610641][   transport.py][1871] : Compression: none
2025-07-01 16:32:50,904 [DEBUG][       Thread-610641][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:32:50,964 [DEBUG][       Thread-610641][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:32:50,964 [DEBUG][       Thread-610641][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:32:50,965 [DEBUG][       Thread-610641][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:32:50,965 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:32:50,966 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:32:51,028 [DEBUG][       Thread-610641][   transport.py][1871] : userauth is OK
2025-07-01 16:32:51,028 [DEBUG][       Thread-610641][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:32:51,028 [DEBUG][       Thread-610641][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:32:51,029 [DEBUG][       Thread-610641][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:32:51,029 [DEBUG][       Thread-610641][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:32:51,047 [ INFO][       Thread-610641][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:32:51,048 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:32:51,048 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:32:51,547 [DEBUG][Thread-610643 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:32:52,080 [DEBUG][       Thread-610641][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:32:52,081 [DEBUG][       Thread-610641][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:32:52,132 [DEBUG][       Thread-610641][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:32:52,132 [DEBUG][       Thread-610641][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:32:52,141 [DEBUG][       Thread-610641][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:32:52,150 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:32:52,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-07-01 16:32:52,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-07-01 16:32:52,169 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:32:52,169 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:32:52,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:32:52,178 [DEBUG][       Thread-610641][   transport.py][1871] : EOF in transport thread
2025-07-01 16:33:00,568 [DEBUG][Thread-610644 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:33:02,180 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:33:02,180 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:33:02,180 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:33:02,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-07-01 16:33:02,696 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 32, 54), 10.94, 47.73, 0.0, 29.75, 13.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:33:02,696 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:32:54
2025-07-01 16:33:02,786 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:33:02,790 [DEBUG][       Thread-610645][   transport.py][1871] : starting thread (client mode): 0x75a8490
2025-07-01 16:33:02,790 [DEBUG][       Thread-610645][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:33:02,811 [DEBUG][       Thread-610645][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:33:02,811 [ INFO][       Thread-610645][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:33:02,814 [DEBUG][       Thread-610645][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:33:02,814 [DEBUG][       Thread-610645][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:33:02,814 [DEBUG][       Thread-610645][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:33:02,814 [DEBUG][       Thread-610645][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:33:02,814 [DEBUG][       Thread-610645][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:33:02,814 [DEBUG][       Thread-610645][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:33:02,814 [DEBUG][       Thread-610645][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:33:02,814 [DEBUG][       Thread-610645][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:33:02,814 [DEBUG][       Thread-610645][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:33:02,814 [DEBUG][       Thread-610645][   transport.py][1871] : client lang: <none>
2025-07-01 16:33:02,814 [DEBUG][       Thread-610645][   transport.py][1871] : server lang: <none>
2025-07-01 16:33:02,814 [DEBUG][       Thread-610645][   transport.py][1871] : kex follows: False
2025-07-01 16:33:02,814 [DEBUG][       Thread-610645][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:33:02,815 [DEBUG][       Thread-610645][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:33:02,815 [DEBUG][       Thread-610645][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:33:02,815 [DEBUG][       Thread-610645][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:33:02,815 [DEBUG][       Thread-610645][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:33:02,815 [DEBUG][       Thread-610645][   transport.py][1871] : Compression: none
2025-07-01 16:33:02,815 [DEBUG][       Thread-610645][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:33:02,831 [DEBUG][       Thread-610645][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:33:02,831 [DEBUG][       Thread-610645][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:33:02,831 [DEBUG][       Thread-610645][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:33:02,831 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:33:02,831 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:33:02,832 [DEBUG][       Thread-610645][   transport.py][1871] : userauth is OK
2025-07-01 16:33:02,857 [ INFO][       Thread-610645][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:33:02,857 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:33:03,530 [DEBUG][       Thread-610645][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:33:03,530 [DEBUG][       Thread-610645][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:33:03,572 [DEBUG][       Thread-610645][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:33:03,572 [DEBUG][       Thread-610645][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:33:03,575 [DEBUG][       Thread-610645][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:33:03,587 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:33:03,587 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:33:03,588 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:33:03,588 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:33:03,591 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:33:03,592 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:33:03,592 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:33:03,592 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:33:03,592 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.605841 -999.00  +13.40  26.97     53   +4.00 1 2 1 1 1   887    0 8.71 -32.65 ----- 23.1 27.0 40.4 34.9 14.6 -22.0 14.3 -21.6 14.2 -20.6 14.6 -20.9
2025-07-01 16:33:03,592 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:33:03,592 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:33:03,592 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.605841
2025-07-01 16:33:03,592 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:33:03,592 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:33:03,592 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:33:03,592 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:33:03,592 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:33:03,592 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:32:54', tmtdew=10.94, humidity=47.73, cloud=0.0, wind=29.75, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:32:24.662', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:33:03,593 [DEBUG][       Thread-610645][   transport.py][1871] : EOF in transport thread
2025-07-01 16:33:03,665 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:33:03,679 [DEBUG][       Thread-610648][   transport.py][1871] : starting thread (client mode): 0x8170dc0
2025-07-01 16:33:03,679 [DEBUG][       Thread-610648][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:33:03,698 [DEBUG][       Thread-610648][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:33:03,698 [ INFO][       Thread-610648][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:33:03,711 [DEBUG][       Thread-610648][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:33:03,711 [DEBUG][       Thread-610648][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:33:03,711 [DEBUG][       Thread-610648][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:33:03,711 [DEBUG][       Thread-610648][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:33:03,711 [DEBUG][       Thread-610648][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:33:03,711 [DEBUG][       Thread-610648][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:33:03,711 [DEBUG][       Thread-610648][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:33:03,711 [DEBUG][       Thread-610648][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:33:03,711 [DEBUG][       Thread-610648][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:33:03,711 [DEBUG][       Thread-610648][   transport.py][1871] : client lang: <none>
2025-07-01 16:33:03,711 [DEBUG][       Thread-610648][   transport.py][1871] : server lang: <none>
2025-07-01 16:33:03,711 [DEBUG][       Thread-610648][   transport.py][1871] : kex follows: False
2025-07-01 16:33:03,711 [DEBUG][       Thread-610648][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:33:03,711 [DEBUG][       Thread-610648][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:33:03,711 [DEBUG][       Thread-610648][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:33:03,711 [DEBUG][       Thread-610648][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:33:03,711 [DEBUG][       Thread-610648][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:33:03,711 [DEBUG][       Thread-610648][   transport.py][1871] : Compression: none
2025-07-01 16:33:03,711 [DEBUG][       Thread-610648][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:33:03,770 [DEBUG][       Thread-610648][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:33:03,771 [DEBUG][       Thread-610648][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:33:03,771 [DEBUG][       Thread-610648][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:33:03,771 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:33:03,771 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:33:03,833 [DEBUG][       Thread-610648][   transport.py][1871] : userauth is OK
2025-07-01 16:33:03,833 [DEBUG][       Thread-610648][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:33:03,833 [DEBUG][       Thread-610648][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:33:03,833 [DEBUG][       Thread-610648][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:33:03,833 [DEBUG][       Thread-610648][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:33:03,850 [ INFO][       Thread-610648][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:33:03,850 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:33:03,850 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:33:04,917 [DEBUG][       Thread-610648][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:33:04,918 [DEBUG][       Thread-610648][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:33:04,967 [DEBUG][       Thread-610648][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:33:04,967 [DEBUG][       Thread-610648][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:33:04,976 [DEBUG][       Thread-610648][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:33:04,984 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:33: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-07-01 16:33: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-07-01 16:33:05,000 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:33:05,000 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:33:05,000 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:33:05,008 [DEBUG][       Thread-610648][   transport.py][1871] : EOF in transport thread
2025-07-01 16:33:09,587 [DEBUG][Thread-610650 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:33:15,010 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:33:15,011 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:33:15,011 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:33:15,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-07-01 16:33:15,506 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 32, 54), 10.94, 47.73, 0.0, 29.75, 13.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:33:15,506 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:32:54
2025-07-01 16:33:15,592 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:33:15,598 [DEBUG][       Thread-610651][   transport.py][1871] : starting thread (client mode): 0x81a5ed0
2025-07-01 16:33:15,598 [DEBUG][       Thread-610651][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:33:15,612 [DEBUG][       Thread-610651][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:33:15,612 [ INFO][       Thread-610651][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:33:15,615 [DEBUG][       Thread-610651][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:33:15,615 [DEBUG][       Thread-610651][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:33:15,615 [DEBUG][       Thread-610651][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:33:15,615 [DEBUG][       Thread-610651][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:33:15,615 [DEBUG][       Thread-610651][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:33:15,615 [DEBUG][       Thread-610651][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:33:15,615 [DEBUG][       Thread-610651][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:33:15,615 [DEBUG][       Thread-610651][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:33:15,615 [DEBUG][       Thread-610651][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:33:15,615 [DEBUG][       Thread-610651][   transport.py][1871] : client lang: <none>
2025-07-01 16:33:15,615 [DEBUG][       Thread-610651][   transport.py][1871] : server lang: <none>
2025-07-01 16:33:15,615 [DEBUG][       Thread-610651][   transport.py][1871] : kex follows: False
2025-07-01 16:33:15,615 [DEBUG][       Thread-610651][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:33:15,615 [DEBUG][       Thread-610651][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:33:15,615 [DEBUG][       Thread-610651][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:33:15,615 [DEBUG][       Thread-610651][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:33:15,615 [DEBUG][       Thread-610651][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:33:15,615 [DEBUG][       Thread-610651][   transport.py][1871] : Compression: none
2025-07-01 16:33:15,615 [DEBUG][       Thread-610651][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:33:15,623 [DEBUG][       Thread-610651][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:33:15,623 [DEBUG][       Thread-610651][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:33:15,623 [DEBUG][       Thread-610651][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:33:15,623 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:33:15,624 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:33:15,624 [DEBUG][       Thread-610651][   transport.py][1871] : userauth is OK
2025-07-01 16:33:15,637 [ INFO][       Thread-610651][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:33:15,638 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:33:16,237 [DEBUG][       Thread-610651][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:33:16,237 [DEBUG][       Thread-610651][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:33:16,281 [DEBUG][       Thread-610651][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:33:16,281 [DEBUG][       Thread-610651][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:33:16,283 [DEBUG][       Thread-610651][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:33:16,289 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:33:16,290 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:33:16,291 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:33:16,292 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:33:16,297 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:33:16,300 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:33:16,301 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:33:16,301 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:33:16,301 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.606189 -999.00  +13.30  24.14     53   +4.00 1 2 1 1 1   887    0 8.74 -32.66 ----- 24.7 24.1 19.0 34.6 14.6 -22.0 14.3 -21.6 14.3 -20.4 14.6 -20.9
2025-07-01 16:33:16,302 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:33:16,302 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:33:16,302 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.606189
2025-07-01 16:33:16,302 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:33:16,303 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:33:16,303 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:33:16,303 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:33:16,303 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:33:16,303 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:32:54', tmtdew=10.94, humidity=47.73, cloud=0.0, wind=29.75, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:32:54.730', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:33:16,304 [DEBUG][       Thread-610651][   transport.py][1871] : EOF in transport thread
2025-07-01 16:33:16,387 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:33:16,398 [DEBUG][       Thread-610654][   transport.py][1871] : starting thread (client mode): 0x47398550
2025-07-01 16:33:16,398 [DEBUG][       Thread-610654][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:33:16,413 [DEBUG][       Thread-610654][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:33:16,413 [ INFO][       Thread-610654][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:33:16,421 [DEBUG][       Thread-610654][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:33:16,421 [DEBUG][       Thread-610654][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:33:16,421 [DEBUG][       Thread-610654][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:33:16,421 [DEBUG][       Thread-610654][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:33:16,421 [DEBUG][       Thread-610654][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:33:16,421 [DEBUG][       Thread-610654][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:33:16,421 [DEBUG][       Thread-610654][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:33:16,421 [DEBUG][       Thread-610654][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:33:16,421 [DEBUG][       Thread-610654][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:33:16,421 [DEBUG][       Thread-610654][   transport.py][1871] : client lang: <none>
2025-07-01 16:33:16,421 [DEBUG][       Thread-610654][   transport.py][1871] : server lang: <none>
2025-07-01 16:33:16,421 [DEBUG][       Thread-610654][   transport.py][1871] : kex follows: False
2025-07-01 16:33:16,421 [DEBUG][       Thread-610654][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:33:16,421 [DEBUG][       Thread-610654][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:33:16,421 [DEBUG][       Thread-610654][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:33:16,421 [DEBUG][       Thread-610654][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:33:16,421 [DEBUG][       Thread-610654][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:33:16,421 [DEBUG][       Thread-610654][   transport.py][1871] : Compression: none
2025-07-01 16:33:16,421 [DEBUG][       Thread-610654][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:33:16,480 [DEBUG][       Thread-610654][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:33:16,481 [DEBUG][       Thread-610654][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:33:16,481 [DEBUG][       Thread-610654][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:33:16,482 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:33:16,482 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:33:16,536 [DEBUG][       Thread-610654][   transport.py][1871] : userauth is OK
2025-07-01 16:33:16,536 [DEBUG][       Thread-610654][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:33:16,536 [DEBUG][       Thread-610654][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:33:16,537 [DEBUG][       Thread-610654][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:33:16,537 [DEBUG][       Thread-610654][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:33:16,556 [ INFO][       Thread-610654][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:33:16,556 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:33:16,556 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:33:17,569 [DEBUG][       Thread-610654][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:33:17,569 [DEBUG][       Thread-610654][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:33:17,620 [DEBUG][       Thread-610654][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:33:17,620 [DEBUG][       Thread-610654][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:33:17,629 [DEBUG][       Thread-610654][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:33:17,638 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:33:17,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-07-01 16:33:17,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-07-01 16:33:17,655 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:33:17,655 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:33:17,656 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:33:17,664 [DEBUG][       Thread-610654][   transport.py][1871] : EOF in transport thread
2025-07-01 16:33:18,618 [DEBUG][Thread-610656 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:33:27,641 [DEBUG][Thread-610657 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:33:27,664 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:33:27,664 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:33:27,664 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:33:27,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-07-01 16:33:28,186 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 32, 54), 10.94, 47.73, 0.0, 29.75, 13.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:33:28,186 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:32:54
2025-07-01 16:33:28,278 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:33:28,284 [DEBUG][       Thread-610658][   transport.py][1871] : starting thread (client mode): 0x81c8910
2025-07-01 16:33:28,284 [DEBUG][       Thread-610658][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:33:28,305 [DEBUG][       Thread-610658][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:33:28,305 [ INFO][       Thread-610658][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:33:28,308 [DEBUG][       Thread-610658][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:33:28,308 [DEBUG][       Thread-610658][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:33:28,308 [DEBUG][       Thread-610658][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:33:28,308 [DEBUG][       Thread-610658][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:33:28,308 [DEBUG][       Thread-610658][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:33:28,308 [DEBUG][       Thread-610658][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:33:28,308 [DEBUG][       Thread-610658][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:33:28,308 [DEBUG][       Thread-610658][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:33:28,308 [DEBUG][       Thread-610658][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:33:28,308 [DEBUG][       Thread-610658][   transport.py][1871] : client lang: <none>
2025-07-01 16:33:28,308 [DEBUG][       Thread-610658][   transport.py][1871] : server lang: <none>
2025-07-01 16:33:28,308 [DEBUG][       Thread-610658][   transport.py][1871] : kex follows: False
2025-07-01 16:33:28,308 [DEBUG][       Thread-610658][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:33:28,308 [DEBUG][       Thread-610658][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:33:28,308 [DEBUG][       Thread-610658][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:33:28,308 [DEBUG][       Thread-610658][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:33:28,308 [DEBUG][       Thread-610658][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:33:28,308 [DEBUG][       Thread-610658][   transport.py][1871] : Compression: none
2025-07-01 16:33:28,308 [DEBUG][       Thread-610658][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:33:28,323 [DEBUG][       Thread-610658][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:33:28,323 [DEBUG][       Thread-610658][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:33:28,323 [DEBUG][       Thread-610658][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:33:28,323 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:33:28,323 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:33:28,324 [DEBUG][       Thread-610658][   transport.py][1871] : userauth is OK
2025-07-01 16:33:28,336 [ INFO][       Thread-610658][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:33:28,336 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:33:28,997 [DEBUG][       Thread-610658][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:33:28,997 [DEBUG][       Thread-610658][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:33:29,041 [DEBUG][       Thread-610658][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:33:29,041 [DEBUG][       Thread-610658][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:33:29,045 [DEBUG][       Thread-610658][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:33:29,057 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:33:29,057 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:33:29,059 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:33:29,061 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:33:29,066 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:33:29,067 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:33:29,067 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:33:29,068 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:33:29,068 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.606189 -999.00  +13.30  24.14     53   +4.00 1 2 1 1 1   887    0 8.74 -32.66 ----- 24.7 24.1 19.0 34.6 14.6 -22.0 14.3 -21.6 14.3 -20.4 14.6 -20.9
2025-07-01 16:33:29,068 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:33:29,068 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:33:29,068 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.606189
2025-07-01 16:33:29,069 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:33:29,070 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:33:29,070 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:33:29,070 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:33:29,070 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:33:29,070 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:32:54', tmtdew=10.94, humidity=47.73, cloud=0.0, wind=29.75, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:32:54.730', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:33:29,070 [DEBUG][       Thread-610658][   transport.py][1871] : EOF in transport thread
2025-07-01 16:33:29,154 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:33:29,165 [DEBUG][       Thread-610661][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 16:33:29,165 [DEBUG][       Thread-610661][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:33:29,180 [DEBUG][       Thread-610661][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:33:29,180 [ INFO][       Thread-610661][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:33:29,187 [DEBUG][       Thread-610661][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:33:29,187 [DEBUG][       Thread-610661][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:33:29,187 [DEBUG][       Thread-610661][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:33:29,188 [DEBUG][       Thread-610661][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:33:29,188 [DEBUG][       Thread-610661][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:33:29,188 [DEBUG][       Thread-610661][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:33:29,188 [DEBUG][       Thread-610661][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:33:29,188 [DEBUG][       Thread-610661][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:33:29,188 [DEBUG][       Thread-610661][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:33:29,188 [DEBUG][       Thread-610661][   transport.py][1871] : client lang: <none>
2025-07-01 16:33:29,188 [DEBUG][       Thread-610661][   transport.py][1871] : server lang: <none>
2025-07-01 16:33:29,188 [DEBUG][       Thread-610661][   transport.py][1871] : kex follows: False
2025-07-01 16:33:29,188 [DEBUG][       Thread-610661][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:33:29,188 [DEBUG][       Thread-610661][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:33:29,188 [DEBUG][       Thread-610661][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:33:29,188 [DEBUG][       Thread-610661][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:33:29,188 [DEBUG][       Thread-610661][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:33:29,188 [DEBUG][       Thread-610661][   transport.py][1871] : Compression: none
2025-07-01 16:33:29,188 [DEBUG][       Thread-610661][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:33:29,244 [DEBUG][       Thread-610661][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:33:29,245 [DEBUG][       Thread-610661][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:33:29,245 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:33:29,246 [DEBUG][       Thread-610661][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:33:29,246 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:33:29,300 [DEBUG][       Thread-610661][   transport.py][1871] : userauth is OK
2025-07-01 16:33:29,301 [DEBUG][       Thread-610661][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:33:29,301 [DEBUG][       Thread-610661][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:33:29,301 [DEBUG][       Thread-610661][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:33:29,301 [DEBUG][       Thread-610661][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:33:29,322 [ INFO][       Thread-610661][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:33:29,323 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:33:29,323 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:33:30,377 [DEBUG][       Thread-610661][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:33:30,378 [DEBUG][       Thread-610661][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:33:30,430 [DEBUG][       Thread-610661][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:33:30,430 [DEBUG][       Thread-610661][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:33:30,443 [DEBUG][       Thread-610661][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:33:30,452 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:33:30,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-07-01 16:33:30,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') -> 00000000
2025-07-01 16:33:30,470 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:33:30,470 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:33:30,471 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:33:30,480 [DEBUG][       Thread-610661][   transport.py][1871] : EOF in transport thread
2025-07-01 16:33:36,661 [DEBUG][Thread-610663 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:33:38,855 [DEBUG][Thread-610664 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:33:40,480 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:33:40,480 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:33:40,480 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:33:40,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-07-01 16:33:40,981 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 33, 26), 10.9, 47.49, 0.0, 29.27, 13.57, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:33:40,981 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:33:26
2025-07-01 16:33:41,073 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:33:41,077 [DEBUG][       Thread-610665][   transport.py][1871] : starting thread (client mode): 0x81d9480
2025-07-01 16:33:41,077 [DEBUG][       Thread-610665][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:33:41,097 [DEBUG][       Thread-610665][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:33:41,097 [ INFO][       Thread-610665][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:33:41,100 [DEBUG][       Thread-610665][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:33:41,100 [DEBUG][       Thread-610665][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:33:41,100 [DEBUG][       Thread-610665][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:33:41,100 [DEBUG][       Thread-610665][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:33:41,100 [DEBUG][       Thread-610665][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:33:41,100 [DEBUG][       Thread-610665][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:33:41,100 [DEBUG][       Thread-610665][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:33:41,101 [DEBUG][       Thread-610665][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:33:41,101 [DEBUG][       Thread-610665][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:33:41,101 [DEBUG][       Thread-610665][   transport.py][1871] : client lang: <none>
2025-07-01 16:33:41,101 [DEBUG][       Thread-610665][   transport.py][1871] : server lang: <none>
2025-07-01 16:33:41,101 [DEBUG][       Thread-610665][   transport.py][1871] : kex follows: False
2025-07-01 16:33:41,101 [DEBUG][       Thread-610665][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:33:41,101 [DEBUG][       Thread-610665][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:33:41,101 [DEBUG][       Thread-610665][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:33:41,101 [DEBUG][       Thread-610665][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:33:41,101 [DEBUG][       Thread-610665][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:33:41,101 [DEBUG][       Thread-610665][   transport.py][1871] : Compression: none
2025-07-01 16:33:41,101 [DEBUG][       Thread-610665][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:33:41,107 [DEBUG][       Thread-610665][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:33:41,108 [DEBUG][       Thread-610665][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:33:41,108 [DEBUG][       Thread-610665][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:33:41,108 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:33:41,108 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:33:41,108 [DEBUG][       Thread-610665][   transport.py][1871] : userauth is OK
2025-07-01 16:33:41,121 [ INFO][       Thread-610665][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:33:41,121 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:33:41,725 [DEBUG][       Thread-610665][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:33:41,725 [DEBUG][       Thread-610665][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:33:41,768 [DEBUG][       Thread-610665][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:33:41,768 [DEBUG][       Thread-610665][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:33:41,771 [DEBUG][       Thread-610665][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:33:41,783 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:33:41,783 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:33:41,784 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:33:41,785 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:33:41,787 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:33:41,787 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:33:41,787 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:33:41,788 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:33:41,788 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.606189 -999.00  +13.30  24.14     53   +4.00 1 2 1 1 1   887    0 8.74 -32.66 ----- 24.7 24.1 19.0 34.6 14.6 -22.0 14.3 -21.6 14.3 -20.4 14.6 -20.9
2025-07-01 16:33:41,788 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:33:41,788 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:33:41,788 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.606189
2025-07-01 16:33:41,788 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:33:41,788 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:33:41,788 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:33:41,788 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:33:41,788 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:33:41,788 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:33:26', tmtdew=10.9, humidity=47.49, cloud=0.0, wind=29.27, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:32:54.730', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:33:41,788 [DEBUG][       Thread-610665][   transport.py][1871] : EOF in transport thread
2025-07-01 16:33:41,863 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:33:41,872 [DEBUG][       Thread-610668][   transport.py][1871] : starting thread (client mode): 0x8393790
2025-07-01 16:33:41,872 [DEBUG][       Thread-610668][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:33:41,887 [DEBUG][       Thread-610668][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:33:41,887 [ INFO][       Thread-610668][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:33:41,894 [DEBUG][       Thread-610668][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:33:41,895 [DEBUG][       Thread-610668][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:33:41,895 [DEBUG][       Thread-610668][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:33:41,895 [DEBUG][       Thread-610668][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:33:41,895 [DEBUG][       Thread-610668][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:33:41,895 [DEBUG][       Thread-610668][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:33:41,895 [DEBUG][       Thread-610668][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:33:41,895 [DEBUG][       Thread-610668][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:33:41,895 [DEBUG][       Thread-610668][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:33:41,895 [DEBUG][       Thread-610668][   transport.py][1871] : client lang: <none>
2025-07-01 16:33:41,895 [DEBUG][       Thread-610668][   transport.py][1871] : server lang: <none>
2025-07-01 16:33:41,895 [DEBUG][       Thread-610668][   transport.py][1871] : kex follows: False
2025-07-01 16:33:41,895 [DEBUG][       Thread-610668][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:33:41,895 [DEBUG][       Thread-610668][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:33:41,895 [DEBUG][       Thread-610668][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:33:41,895 [DEBUG][       Thread-610668][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:33:41,895 [DEBUG][       Thread-610668][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:33:41,895 [DEBUG][       Thread-610668][   transport.py][1871] : Compression: none
2025-07-01 16:33:41,895 [DEBUG][       Thread-610668][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:33:41,954 [DEBUG][       Thread-610668][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:33:41,954 [DEBUG][       Thread-610668][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:33:41,954 [DEBUG][       Thread-610668][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:33:41,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:33:41,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:33:42,012 [DEBUG][       Thread-610668][   transport.py][1871] : userauth is OK
2025-07-01 16:33:42,012 [DEBUG][       Thread-610668][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:33:42,012 [DEBUG][       Thread-610668][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:33:42,012 [DEBUG][       Thread-610668][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:33:42,012 [DEBUG][       Thread-610668][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:33:42,027 [ INFO][       Thread-610668][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:33:42,027 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:33:42,027 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:33:43,070 [DEBUG][       Thread-610668][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:33:43,070 [DEBUG][       Thread-610668][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:33:43,119 [DEBUG][       Thread-610668][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:33:43,119 [DEBUG][       Thread-610668][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:33:43,128 [DEBUG][       Thread-610668][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:33:43,135 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:33: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-07-01 16:33:43,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-07-01 16:33:43,152 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:33:43,152 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:33:43,153 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:33:43,160 [DEBUG][       Thread-610668][   transport.py][1871] : EOF in transport thread
2025-07-01 16:33:45,680 [DEBUG][Thread-610670 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:33:53,163 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:33:53,163 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:33:53,163 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:33:53,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-07-01 16:33:53,660 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 33, 26), 10.9, 47.49, 0.0, 29.27, 13.57, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:33:53,660 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:33:26
2025-07-01 16:33:53,746 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:33:53,751 [DEBUG][       Thread-610671][   transport.py][1871] : starting thread (client mode): 0x81a5900
2025-07-01 16:33:53,751 [DEBUG][       Thread-610671][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:33:53,772 [DEBUG][       Thread-610671][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:33:53,772 [ INFO][       Thread-610671][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:33:53,775 [DEBUG][       Thread-610671][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:33:53,775 [DEBUG][       Thread-610671][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:33:53,775 [DEBUG][       Thread-610671][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:33:53,775 [DEBUG][       Thread-610671][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:33:53,775 [DEBUG][       Thread-610671][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:33:53,775 [DEBUG][       Thread-610671][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:33:53,775 [DEBUG][       Thread-610671][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:33:53,775 [DEBUG][       Thread-610671][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:33:53,775 [DEBUG][       Thread-610671][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:33:53,775 [DEBUG][       Thread-610671][   transport.py][1871] : client lang: <none>
2025-07-01 16:33:53,775 [DEBUG][       Thread-610671][   transport.py][1871] : server lang: <none>
2025-07-01 16:33:53,775 [DEBUG][       Thread-610671][   transport.py][1871] : kex follows: False
2025-07-01 16:33:53,775 [DEBUG][       Thread-610671][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:33:53,775 [DEBUG][       Thread-610671][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:33:53,776 [DEBUG][       Thread-610671][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:33:53,776 [DEBUG][       Thread-610671][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:33:53,776 [DEBUG][       Thread-610671][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:33:53,776 [DEBUG][       Thread-610671][   transport.py][1871] : Compression: none
2025-07-01 16:33:53,776 [DEBUG][       Thread-610671][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:33:53,793 [DEBUG][       Thread-610671][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:33:53,793 [DEBUG][       Thread-610671][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:33:53,794 [DEBUG][       Thread-610671][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:33:53,794 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:33:53,795 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:33:53,796 [DEBUG][       Thread-610671][   transport.py][1871] : userauth is OK
2025-07-01 16:33:53,809 [ INFO][       Thread-610671][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:33:53,810 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:33:54,441 [DEBUG][       Thread-610671][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:33:54,442 [DEBUG][       Thread-610671][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:33:54,485 [DEBUG][       Thread-610671][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:33:54,485 [DEBUG][       Thread-610671][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:33:54,488 [DEBUG][       Thread-610671][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:33:54,501 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:33:54,502 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:33:54,504 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:33:54,506 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:33:54,511 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:33:54,513 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:33:54,514 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:33:54,514 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:33:54,514 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.606536 -999.00  +13.30  24.06     53   +4.10 1 2 1 1 1   887    0 8.51 -34.58 ----- 27.0 24.1 43.2 32.5 14.6 -21.9 14.4 -21.6 14.3 -20.2 14.6 -20.8
2025-07-01 16:33:54,514 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:33:54,515 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:33:54,515 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.606536
2025-07-01 16:33:54,515 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:33:54,516 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:33:54,516 [DEBUG][       Thread-610671][   transport.py][1871] : EOF in transport thread
2025-07-01 16:33:54,516 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:33:54,516 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:33:54,517 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:33:54,517 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:33:26', tmtdew=10.9, humidity=47.49, cloud=0.0, wind=29.27, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:33:24.710', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:33:54,600 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:33:54,612 [DEBUG][       Thread-610674][   transport.py][1871] : starting thread (client mode): 0x81d92d0
2025-07-01 16:33:54,612 [DEBUG][       Thread-610674][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:33:54,630 [DEBUG][       Thread-610674][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:33:54,630 [ INFO][       Thread-610674][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:33:54,640 [DEBUG][       Thread-610674][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:33:54,640 [DEBUG][       Thread-610674][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:33:54,640 [DEBUG][       Thread-610674][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:33:54,640 [DEBUG][       Thread-610674][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:33:54,640 [DEBUG][       Thread-610674][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:33:54,640 [DEBUG][       Thread-610674][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:33:54,640 [DEBUG][       Thread-610674][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:33:54,640 [DEBUG][       Thread-610674][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:33:54,640 [DEBUG][       Thread-610674][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:33:54,640 [DEBUG][       Thread-610674][   transport.py][1871] : client lang: <none>
2025-07-01 16:33:54,640 [DEBUG][       Thread-610674][   transport.py][1871] : server lang: <none>
2025-07-01 16:33:54,640 [DEBUG][       Thread-610674][   transport.py][1871] : kex follows: False
2025-07-01 16:33:54,641 [DEBUG][       Thread-610674][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:33:54,641 [DEBUG][       Thread-610674][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:33:54,641 [DEBUG][       Thread-610674][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:33:54,641 [DEBUG][       Thread-610674][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:33:54,641 [DEBUG][       Thread-610674][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:33:54,641 [DEBUG][       Thread-610674][   transport.py][1871] : Compression: none
2025-07-01 16:33:54,641 [DEBUG][       Thread-610674][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:33:54,699 [DEBUG][       Thread-610674][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:33:54,700 [DEBUG][       Thread-610674][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:33:54,701 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:33:54,701 [DEBUG][       Thread-610674][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:33:54,702 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:33:54,721 [DEBUG][Thread-610676 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:33:54,758 [DEBUG][       Thread-610674][   transport.py][1871] : userauth is OK
2025-07-01 16:33:54,758 [DEBUG][       Thread-610674][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:33:54,758 [DEBUG][       Thread-610674][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:33:54,758 [DEBUG][       Thread-610674][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:33:54,758 [DEBUG][       Thread-610674][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:33:54,785 [ INFO][       Thread-610674][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:33:54,785 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:33:54,786 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:33:55,864 [DEBUG][       Thread-610674][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:33:55,865 [DEBUG][       Thread-610674][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:33:55,916 [DEBUG][       Thread-610674][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:33:55,916 [DEBUG][       Thread-610674][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:33:55,925 [DEBUG][       Thread-610674][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:33:55,935 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:33:55,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-07-01 16:33:55,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-07-01 16:33:55,953 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:33:55,953 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:33:55,953 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:33:55,961 [DEBUG][       Thread-610674][   transport.py][1871] : EOF in transport thread
2025-07-01 16:34:03,742 [DEBUG][Thread-610677 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:34:05,960 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:34:05,960 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:34:05,960 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:34:05,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-07-01 16:34:06,463 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 33, 58), 10.91, 47.47, 0.0, 23.57, 13.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:34:06,463 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:33:58
2025-07-01 16:34:06,550 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:34:06,554 [DEBUG][       Thread-610678][   transport.py][1871] : starting thread (client mode): 0x818c3a0
2025-07-01 16:34:06,554 [DEBUG][       Thread-610678][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:34:06,575 [DEBUG][       Thread-610678][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:34:06,575 [ INFO][       Thread-610678][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:34:06,578 [DEBUG][       Thread-610678][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:34:06,578 [DEBUG][       Thread-610678][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:34:06,578 [DEBUG][       Thread-610678][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:34:06,578 [DEBUG][       Thread-610678][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:34:06,578 [DEBUG][       Thread-610678][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:34:06,578 [DEBUG][       Thread-610678][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:34:06,578 [DEBUG][       Thread-610678][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:34:06,578 [DEBUG][       Thread-610678][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:34:06,578 [DEBUG][       Thread-610678][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:34:06,578 [DEBUG][       Thread-610678][   transport.py][1871] : client lang: <none>
2025-07-01 16:34:06,578 [DEBUG][       Thread-610678][   transport.py][1871] : server lang: <none>
2025-07-01 16:34:06,578 [DEBUG][       Thread-610678][   transport.py][1871] : kex follows: False
2025-07-01 16:34:06,578 [DEBUG][       Thread-610678][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:34:06,579 [DEBUG][       Thread-610678][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:34:06,579 [DEBUG][       Thread-610678][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:34:06,579 [DEBUG][       Thread-610678][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:34:06,579 [DEBUG][       Thread-610678][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:34:06,579 [DEBUG][       Thread-610678][   transport.py][1871] : Compression: none
2025-07-01 16:34:06,579 [DEBUG][       Thread-610678][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:34:06,587 [DEBUG][       Thread-610678][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:34:06,587 [DEBUG][       Thread-610678][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:34:06,588 [DEBUG][       Thread-610678][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:34:06,588 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:34:06,588 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:34:06,589 [DEBUG][       Thread-610678][   transport.py][1871] : userauth is OK
2025-07-01 16:34:06,602 [ INFO][       Thread-610678][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:34:06,603 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:34:07,255 [DEBUG][       Thread-610678][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:34:07,255 [DEBUG][       Thread-610678][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:34:07,297 [DEBUG][       Thread-610678][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:34:07,297 [DEBUG][       Thread-610678][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:34:07,300 [DEBUG][       Thread-610678][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:34:07,312 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:34:07,312 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:34:07,314 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:34:07,316 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:34:07,322 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:34:07,324 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:34:07,324 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:34:07,325 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:34:07,325 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.606536 -999.00  +13.30  24.06     53   +4.10 1 2 1 1 1   887    0 8.51 -34.58 ----- 27.0 24.1 43.2 32.5 14.6 -21.9 14.4 -21.6 14.3 -20.2 14.6 -20.8
2025-07-01 16:34:07,325 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:34:07,325 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:34:07,325 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.606536
2025-07-01 16:34:07,326 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:34:07,326 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:34:07,326 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:34:07,326 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:34:07,326 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:34:07,326 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:33:58', tmtdew=10.91, humidity=47.47, cloud=0.0, wind=23.57, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:33:24.710', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:34:07,327 [DEBUG][       Thread-610678][   transport.py][1871] : EOF in transport thread
2025-07-01 16:34:07,410 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:34:07,420 [DEBUG][       Thread-610681][   transport.py][1871] : starting thread (client mode): 0x81ca890
2025-07-01 16:34:07,420 [DEBUG][       Thread-610681][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:34:07,435 [DEBUG][       Thread-610681][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:34:07,435 [ INFO][       Thread-610681][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:34:07,442 [DEBUG][       Thread-610681][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:34:07,442 [DEBUG][       Thread-610681][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:34:07,442 [DEBUG][       Thread-610681][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:34:07,443 [DEBUG][       Thread-610681][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:34:07,443 [DEBUG][       Thread-610681][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:34:07,443 [DEBUG][       Thread-610681][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:34:07,443 [DEBUG][       Thread-610681][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:34:07,443 [DEBUG][       Thread-610681][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:34:07,443 [DEBUG][       Thread-610681][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:34:07,443 [DEBUG][       Thread-610681][   transport.py][1871] : client lang: <none>
2025-07-01 16:34:07,443 [DEBUG][       Thread-610681][   transport.py][1871] : server lang: <none>
2025-07-01 16:34:07,443 [DEBUG][       Thread-610681][   transport.py][1871] : kex follows: False
2025-07-01 16:34:07,443 [DEBUG][       Thread-610681][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:34:07,443 [DEBUG][       Thread-610681][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:34:07,443 [DEBUG][       Thread-610681][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:34:07,443 [DEBUG][       Thread-610681][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:34:07,443 [DEBUG][       Thread-610681][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:34:07,443 [DEBUG][       Thread-610681][   transport.py][1871] : Compression: none
2025-07-01 16:34:07,443 [DEBUG][       Thread-610681][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:34:07,505 [DEBUG][       Thread-610681][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:34:07,506 [DEBUG][       Thread-610681][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:34:07,506 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:34:07,507 [DEBUG][       Thread-610681][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:34:07,507 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:34:07,561 [DEBUG][       Thread-610681][   transport.py][1871] : userauth is OK
2025-07-01 16:34:07,561 [DEBUG][       Thread-610681][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:34:07,561 [DEBUG][       Thread-610681][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:34:07,561 [DEBUG][       Thread-610681][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:34:07,561 [DEBUG][       Thread-610681][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:34:07,580 [ INFO][       Thread-610681][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:34:07,580 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:34:07,581 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:34:08,631 [DEBUG][       Thread-610681][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:34:08,631 [DEBUG][       Thread-610681][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:34:08,679 [DEBUG][       Thread-610681][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:34:08,679 [DEBUG][       Thread-610681][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:34:08,688 [DEBUG][       Thread-610681][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:34:08,696 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:34:08,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-07-01 16:34: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-07-01 16:34:08,712 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:34:08,712 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:34:08,712 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:34:08,720 [DEBUG][       Thread-610681][   transport.py][1871] : EOF in transport thread
2025-07-01 16:34:12,764 [DEBUG][Thread-610683 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:34:18,720 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:34:18,720 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:34:18,720 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:34:18,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-07-01 16:34:19,238 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 33, 58), 10.91, 47.47, 0.0, 23.57, 13.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:34:19,238 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:33:58
2025-07-01 16:34:19,331 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:34:19,335 [DEBUG][       Thread-610684][   transport.py][1871] : starting thread (client mode): 0x818f6a0
2025-07-01 16:34:19,335 [DEBUG][       Thread-610684][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:34:19,357 [DEBUG][       Thread-610684][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:34:19,357 [ INFO][       Thread-610684][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:34:19,360 [DEBUG][       Thread-610684][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:34:19,361 [DEBUG][       Thread-610684][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:34:19,361 [DEBUG][       Thread-610684][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:34:19,361 [DEBUG][       Thread-610684][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:34:19,361 [DEBUG][       Thread-610684][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:34:19,361 [DEBUG][       Thread-610684][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:34:19,361 [DEBUG][       Thread-610684][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:34:19,361 [DEBUG][       Thread-610684][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:34:19,361 [DEBUG][       Thread-610684][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:34:19,361 [DEBUG][       Thread-610684][   transport.py][1871] : client lang: <none>
2025-07-01 16:34:19,361 [DEBUG][       Thread-610684][   transport.py][1871] : server lang: <none>
2025-07-01 16:34:19,361 [DEBUG][       Thread-610684][   transport.py][1871] : kex follows: False
2025-07-01 16:34:19,361 [DEBUG][       Thread-610684][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:34:19,361 [DEBUG][       Thread-610684][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:34:19,361 [DEBUG][       Thread-610684][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:34:19,361 [DEBUG][       Thread-610684][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:34:19,361 [DEBUG][       Thread-610684][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:34:19,361 [DEBUG][       Thread-610684][   transport.py][1871] : Compression: none
2025-07-01 16:34:19,361 [DEBUG][       Thread-610684][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:34:19,375 [DEBUG][       Thread-610684][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:34:19,375 [DEBUG][       Thread-610684][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:34:19,375 [DEBUG][       Thread-610684][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:34:19,376 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:34:19,376 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:34:19,376 [DEBUG][       Thread-610684][   transport.py][1871] : userauth is OK
2025-07-01 16:34:19,389 [ INFO][       Thread-610684][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:34:19,389 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:34:20,040 [DEBUG][       Thread-610684][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:34:20,040 [DEBUG][       Thread-610684][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:34:20,084 [DEBUG][       Thread-610684][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:34:20,084 [DEBUG][       Thread-610684][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:34:20,087 [DEBUG][       Thread-610684][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:34:20,100 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:34:20,100 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:34:20,101 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:34:20,102 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:34:20,104 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:34:20,104 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:34:20,104 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:34:20,104 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:34:20,104 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.606536 -999.00  +13.30  24.06     53   +4.10 1 2 1 1 1   887    0 8.51 -34.58 ----- 27.0 24.1 43.2 32.5 14.6 -21.9 14.4 -21.6 14.3 -20.2 14.6 -20.8
2025-07-01 16:34:20,104 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:34:20,104 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:34:20,104 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.606536
2025-07-01 16:34:20,105 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:34:20,105 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:34:20,105 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:34:20,105 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:34:20,105 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:34:20,105 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:33:58', tmtdew=10.91, humidity=47.47, cloud=0.0, wind=23.57, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:33:24.710', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:34:20,105 [DEBUG][       Thread-610684][   transport.py][1871] : EOF in transport thread
2025-07-01 16:34:20,179 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:34:20,191 [DEBUG][       Thread-610687][   transport.py][1871] : starting thread (client mode): 0x81708b0
2025-07-01 16:34:20,191 [DEBUG][       Thread-610687][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:34:20,206 [DEBUG][       Thread-610687][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:34:20,206 [ INFO][       Thread-610687][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:34:20,213 [DEBUG][       Thread-610687][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:34:20,213 [DEBUG][       Thread-610687][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:34:20,213 [DEBUG][       Thread-610687][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:34:20,213 [DEBUG][       Thread-610687][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:34:20,213 [DEBUG][       Thread-610687][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:34:20,213 [DEBUG][       Thread-610687][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:34:20,213 [DEBUG][       Thread-610687][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:34:20,213 [DEBUG][       Thread-610687][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:34:20,213 [DEBUG][       Thread-610687][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:34:20,213 [DEBUG][       Thread-610687][   transport.py][1871] : client lang: <none>
2025-07-01 16:34:20,213 [DEBUG][       Thread-610687][   transport.py][1871] : server lang: <none>
2025-07-01 16:34:20,213 [DEBUG][       Thread-610687][   transport.py][1871] : kex follows: False
2025-07-01 16:34:20,213 [DEBUG][       Thread-610687][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:34:20,213 [DEBUG][       Thread-610687][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:34:20,213 [DEBUG][       Thread-610687][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:34:20,213 [DEBUG][       Thread-610687][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:34:20,213 [DEBUG][       Thread-610687][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:34:20,213 [DEBUG][       Thread-610687][   transport.py][1871] : Compression: none
2025-07-01 16:34:20,213 [DEBUG][       Thread-610687][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:34:20,274 [DEBUG][       Thread-610687][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:34:20,274 [DEBUG][       Thread-610687][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:34:20,274 [DEBUG][       Thread-610687][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:34:20,274 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:34:20,275 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:34:20,335 [DEBUG][       Thread-610687][   transport.py][1871] : userauth is OK
2025-07-01 16:34:20,335 [DEBUG][       Thread-610687][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:34:20,335 [DEBUG][       Thread-610687][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:34:20,335 [DEBUG][       Thread-610687][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:34:20,335 [DEBUG][       Thread-610687][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:34:20,349 [ INFO][       Thread-610687][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:34:20,349 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:34:20,350 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:34:21,364 [DEBUG][       Thread-610687][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:34:21,364 [DEBUG][       Thread-610687][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:34:21,415 [DEBUG][       Thread-610687][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:34:21,415 [DEBUG][       Thread-610687][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:34:21,424 [DEBUG][       Thread-610687][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:34:21,436 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:34:21,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-07-01 16:34:21,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-07-01 16:34:21,452 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:34:21,452 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:34:21,452 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:34:21,460 [DEBUG][       Thread-610687][   transport.py][1871] : EOF in transport thread
2025-07-01 16:34:21,801 [DEBUG][Thread-610689 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:34:30,820 [DEBUG][Thread-610690 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:34:31,460 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:34:31,460 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:34:31,460 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:34:31,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-07-01 16:34:31,974 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 33, 58), 10.91, 47.47, 0.0, 23.57, 13.58, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:34:31,974 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:33:58
2025-07-01 16:34:32,065 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:34:32,070 [DEBUG][       Thread-610691][   transport.py][1871] : starting thread (client mode): 0x818d6f0
2025-07-01 16:34:32,070 [DEBUG][       Thread-610691][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:34:32,090 [DEBUG][       Thread-610691][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:34:32,090 [ INFO][       Thread-610691][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:34:32,094 [DEBUG][       Thread-610691][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:34:32,094 [DEBUG][       Thread-610691][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:34:32,094 [DEBUG][       Thread-610691][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:34:32,094 [DEBUG][       Thread-610691][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:34:32,094 [DEBUG][       Thread-610691][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:34:32,094 [DEBUG][       Thread-610691][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:34:32,094 [DEBUG][       Thread-610691][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:34:32,094 [DEBUG][       Thread-610691][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:34:32,094 [DEBUG][       Thread-610691][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:34:32,094 [DEBUG][       Thread-610691][   transport.py][1871] : client lang: <none>
2025-07-01 16:34:32,094 [DEBUG][       Thread-610691][   transport.py][1871] : server lang: <none>
2025-07-01 16:34:32,094 [DEBUG][       Thread-610691][   transport.py][1871] : kex follows: False
2025-07-01 16:34:32,094 [DEBUG][       Thread-610691][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:34:32,094 [DEBUG][       Thread-610691][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:34:32,094 [DEBUG][       Thread-610691][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:34:32,094 [DEBUG][       Thread-610691][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:34:32,094 [DEBUG][       Thread-610691][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:34:32,094 [DEBUG][       Thread-610691][   transport.py][1871] : Compression: none
2025-07-01 16:34:32,094 [DEBUG][       Thread-610691][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:34:32,110 [DEBUG][       Thread-610691][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:34:32,110 [DEBUG][       Thread-610691][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:34:32,110 [DEBUG][       Thread-610691][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:34:32,110 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:34:32,110 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:34:32,111 [DEBUG][       Thread-610691][   transport.py][1871] : userauth is OK
2025-07-01 16:34:32,135 [ INFO][       Thread-610691][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:34:32,135 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:34:32,750 [DEBUG][       Thread-610691][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:34:32,750 [DEBUG][       Thread-610691][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:34:32,793 [DEBUG][       Thread-610691][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:34:32,793 [DEBUG][       Thread-610691][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:34:32,797 [DEBUG][       Thread-610691][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:34:32,811 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:34:32,811 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:34:32,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:34:32,815 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:34:32,821 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:34:32,823 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:34:32,823 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:34:32,824 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:34:32,824 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.606883 -999.00  +13.30  26.32     53   +4.00 1 2 1 1 1   887    0 8.36 -37.85 ----- 30.3 26.3 39.6 31.8 14.6 -21.9 14.3 -21.5 14.2 -20.5 14.7 -20.7
2025-07-01 16:34:32,824 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:34:32,824 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:34:32,825 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.606883
2025-07-01 16:34:32,825 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:34:32,826 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:34:32,826 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:34:32,826 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:34:32,826 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:34:32,826 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:33:58', tmtdew=10.91, humidity=47.47, cloud=0.0, wind=23.57, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:33:54.691', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:34:32,826 [DEBUG][       Thread-610691][   transport.py][1871] : EOF in transport thread
2025-07-01 16:34:32,911 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:34:32,923 [DEBUG][       Thread-610694][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 16:34:32,923 [DEBUG][       Thread-610694][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:34:32,943 [DEBUG][       Thread-610694][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:34:32,944 [ INFO][       Thread-610694][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:34:32,951 [DEBUG][       Thread-610694][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:34:32,951 [DEBUG][       Thread-610694][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:34:32,951 [DEBUG][       Thread-610694][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:34:32,951 [DEBUG][       Thread-610694][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:34:32,951 [DEBUG][       Thread-610694][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:34:32,952 [DEBUG][       Thread-610694][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:34:32,952 [DEBUG][       Thread-610694][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:34:32,952 [DEBUG][       Thread-610694][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:34:32,952 [DEBUG][       Thread-610694][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:34:32,952 [DEBUG][       Thread-610694][   transport.py][1871] : client lang: <none>
2025-07-01 16:34:32,952 [DEBUG][       Thread-610694][   transport.py][1871] : server lang: <none>
2025-07-01 16:34:32,952 [DEBUG][       Thread-610694][   transport.py][1871] : kex follows: False
2025-07-01 16:34:32,952 [DEBUG][       Thread-610694][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:34:32,952 [DEBUG][       Thread-610694][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:34:32,952 [DEBUG][       Thread-610694][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:34:32,952 [DEBUG][       Thread-610694][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:34:32,952 [DEBUG][       Thread-610694][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:34:32,952 [DEBUG][       Thread-610694][   transport.py][1871] : Compression: none
2025-07-01 16:34:32,952 [DEBUG][       Thread-610694][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:34:33,009 [DEBUG][       Thread-610694][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:34:33,010 [DEBUG][       Thread-610694][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:34:33,011 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:34:33,011 [DEBUG][       Thread-610694][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:34:33,012 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:34:33,066 [DEBUG][       Thread-610694][   transport.py][1871] : userauth is OK
2025-07-01 16:34:33,066 [DEBUG][       Thread-610694][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:34:33,066 [DEBUG][       Thread-610694][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:34:33,066 [DEBUG][       Thread-610694][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:34:33,066 [DEBUG][       Thread-610694][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:34:33,085 [ INFO][       Thread-610694][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:34:33,085 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:34:33,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:34:34,137 [DEBUG][       Thread-610694][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:34:34,137 [DEBUG][       Thread-610694][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:34:34,188 [DEBUG][       Thread-610694][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:34:34,188 [DEBUG][       Thread-610694][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:34:34,198 [DEBUG][       Thread-610694][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:34:34,206 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:34:34,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-07-01 16:34:34,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-07-01 16:34:34,225 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:34:34,226 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:34:34,226 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:34:34,234 [DEBUG][       Thread-610694][   transport.py][1871] : EOF in transport thread
2025-07-01 16:34:38,884 [DEBUG][Thread-610696 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:34:39,839 [DEBUG][Thread-610697 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:34:44,237 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:34:44,237 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:34:44,237 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:34:44,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-07-01 16:34:44,731 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 34, 30), 10.79, 47.98, 0.0, 26.64, 13.54, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:34:44,731 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:34:30
2025-07-01 16:34:44,818 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:34:44,823 [DEBUG][       Thread-610698][   transport.py][1871] : starting thread (client mode): 0x82b3d90
2025-07-01 16:34:44,823 [DEBUG][       Thread-610698][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:34:44,845 [DEBUG][       Thread-610698][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:34:44,845 [ INFO][       Thread-610698][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:34:44,848 [DEBUG][       Thread-610698][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:34:44,849 [DEBUG][       Thread-610698][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:34:44,849 [DEBUG][       Thread-610698][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:34:44,849 [DEBUG][       Thread-610698][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:34:44,849 [DEBUG][       Thread-610698][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:34:44,849 [DEBUG][       Thread-610698][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:34:44,849 [DEBUG][       Thread-610698][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:34:44,849 [DEBUG][       Thread-610698][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:34:44,849 [DEBUG][       Thread-610698][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:34:44,849 [DEBUG][       Thread-610698][   transport.py][1871] : client lang: <none>
2025-07-01 16:34:44,849 [DEBUG][       Thread-610698][   transport.py][1871] : server lang: <none>
2025-07-01 16:34:44,849 [DEBUG][       Thread-610698][   transport.py][1871] : kex follows: False
2025-07-01 16:34:44,849 [DEBUG][       Thread-610698][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:34:44,849 [DEBUG][       Thread-610698][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:34:44,849 [DEBUG][       Thread-610698][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:34:44,849 [DEBUG][       Thread-610698][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:34:44,849 [DEBUG][       Thread-610698][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:34:44,849 [DEBUG][       Thread-610698][   transport.py][1871] : Compression: none
2025-07-01 16:34:44,849 [DEBUG][       Thread-610698][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:34:44,866 [DEBUG][       Thread-610698][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:34:44,866 [DEBUG][       Thread-610698][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:34:44,867 [DEBUG][       Thread-610698][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:34:44,867 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:34:44,867 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:34:44,868 [DEBUG][       Thread-610698][   transport.py][1871] : userauth is OK
2025-07-01 16:34:44,882 [ INFO][       Thread-610698][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:34:44,883 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:34:45,500 [DEBUG][       Thread-610698][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:34:45,501 [DEBUG][       Thread-610698][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:34:45,545 [DEBUG][       Thread-610698][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:34:45,545 [DEBUG][       Thread-610698][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:34:45,548 [DEBUG][       Thread-610698][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:34:45,560 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:34:45,561 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:34:45,563 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:34:45,565 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:34:45,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:34:45,572 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:34:45,573 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:34:45,573 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:34:45,573 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.606883 -999.00  +13.30  26.32     53   +4.00 1 2 1 1 1   887    0 8.36 -37.85 ----- 30.3 26.3 39.6 31.8 14.6 -21.9 14.3 -21.5 14.2 -20.5 14.7 -20.7
2025-07-01 16:34:45,573 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:34:45,573 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:34:45,573 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.606883
2025-07-01 16:34:45,574 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:34:45,574 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:34:45,575 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:34:45,575 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:34:45,575 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:34:45,575 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:34:30', tmtdew=10.79, humidity=47.98, cloud=0.0, wind=26.64, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:33:54.691', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:34:45,575 [DEBUG][       Thread-610698][   transport.py][1871] : EOF in transport thread
2025-07-01 16:34:45,659 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:34:45,668 [DEBUG][       Thread-610701][   transport.py][1871] : starting thread (client mode): 0x75ab160
2025-07-01 16:34:45,668 [DEBUG][       Thread-610701][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:34:45,685 [DEBUG][       Thread-610701][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:34:45,685 [ INFO][       Thread-610701][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:34:45,693 [DEBUG][       Thread-610701][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:34:45,693 [DEBUG][       Thread-610701][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:34:45,693 [DEBUG][       Thread-610701][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:34:45,693 [DEBUG][       Thread-610701][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:34:45,693 [DEBUG][       Thread-610701][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:34:45,693 [DEBUG][       Thread-610701][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:34:45,693 [DEBUG][       Thread-610701][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:34:45,693 [DEBUG][       Thread-610701][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:34:45,693 [DEBUG][       Thread-610701][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:34:45,693 [DEBUG][       Thread-610701][   transport.py][1871] : client lang: <none>
2025-07-01 16:34:45,693 [DEBUG][       Thread-610701][   transport.py][1871] : server lang: <none>
2025-07-01 16:34:45,693 [DEBUG][       Thread-610701][   transport.py][1871] : kex follows: False
2025-07-01 16:34:45,693 [DEBUG][       Thread-610701][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:34:45,694 [DEBUG][       Thread-610701][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:34:45,694 [DEBUG][       Thread-610701][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:34:45,694 [DEBUG][       Thread-610701][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:34:45,694 [DEBUG][       Thread-610701][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:34:45,694 [DEBUG][       Thread-610701][   transport.py][1871] : Compression: none
2025-07-01 16:34:45,694 [DEBUG][       Thread-610701][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:34:45,753 [DEBUG][       Thread-610701][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:34:45,753 [DEBUG][       Thread-610701][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:34:45,754 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:34:45,755 [DEBUG][       Thread-610701][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:34:45,755 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:34:45,809 [DEBUG][       Thread-610701][   transport.py][1871] : userauth is OK
2025-07-01 16:34:45,809 [DEBUG][       Thread-610701][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:34:45,809 [DEBUG][       Thread-610701][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:34:45,810 [DEBUG][       Thread-610701][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:34:45,810 [DEBUG][       Thread-610701][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:34:45,828 [ INFO][       Thread-610701][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:34:45,829 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:34:45,829 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:34:46,900 [DEBUG][       Thread-610701][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:34:46,900 [DEBUG][       Thread-610701][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:34:46,947 [DEBUG][       Thread-610701][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:34:46,948 [DEBUG][       Thread-610701][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:34:46,957 [DEBUG][       Thread-610701][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:34:46,965 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:34:46,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-07-01 16:34:46,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-07-01 16:34:46,982 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:34:46,982 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:34:46,983 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:34:46,990 [DEBUG][       Thread-610701][   transport.py][1871] : EOF in transport thread
2025-07-01 16:34:48,861 [DEBUG][Thread-610703 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:34:56,993 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:34:56,993 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:34:56,993 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:34:56,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-07-01 16:34:57,491 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 34, 30), 10.79, 47.98, 0.0, 26.64, 13.54, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:34:57,491 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:34:30
2025-07-01 16:34:57,582 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:34:57,586 [DEBUG][       Thread-610704][   transport.py][1871] : starting thread (client mode): 0x82b1e40
2025-07-01 16:34:57,586 [DEBUG][       Thread-610704][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:34:57,605 [DEBUG][       Thread-610704][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:34:57,606 [ INFO][       Thread-610704][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:34:57,609 [DEBUG][       Thread-610704][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:34:57,609 [DEBUG][       Thread-610704][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:34:57,609 [DEBUG][       Thread-610704][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:34:57,609 [DEBUG][       Thread-610704][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:34:57,609 [DEBUG][       Thread-610704][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:34:57,609 [DEBUG][       Thread-610704][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:34:57,609 [DEBUG][       Thread-610704][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:34:57,609 [DEBUG][       Thread-610704][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:34:57,609 [DEBUG][       Thread-610704][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:34:57,609 [DEBUG][       Thread-610704][   transport.py][1871] : client lang: <none>
2025-07-01 16:34:57,609 [DEBUG][       Thread-610704][   transport.py][1871] : server lang: <none>
2025-07-01 16:34:57,609 [DEBUG][       Thread-610704][   transport.py][1871] : kex follows: False
2025-07-01 16:34:57,609 [DEBUG][       Thread-610704][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:34:57,609 [DEBUG][       Thread-610704][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:34:57,609 [DEBUG][       Thread-610704][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:34:57,609 [DEBUG][       Thread-610704][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:34:57,609 [DEBUG][       Thread-610704][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:34:57,609 [DEBUG][       Thread-610704][   transport.py][1871] : Compression: none
2025-07-01 16:34:57,609 [DEBUG][       Thread-610704][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:34:57,625 [DEBUG][       Thread-610704][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:34:57,625 [DEBUG][       Thread-610704][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:34:57,625 [DEBUG][       Thread-610704][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:34:57,625 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:34:57,625 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:34:57,626 [DEBUG][       Thread-610704][   transport.py][1871] : userauth is OK
2025-07-01 16:34:57,650 [ INFO][       Thread-610704][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:34:57,650 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:34:57,893 [DEBUG][Thread-610706 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:34:58,308 [DEBUG][       Thread-610704][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:34:58,308 [DEBUG][       Thread-610704][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:34:58,353 [DEBUG][       Thread-610704][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:34:58,353 [DEBUG][       Thread-610704][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:34:58,355 [DEBUG][       Thread-610704][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:34:58,367 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:34:58,367 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:34:58,369 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:34:58,370 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:34:58,374 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:34:58,375 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:34:58,375 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:34:58,375 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:34:58,375 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.607230 -999.00  +13.30  23.36     53   +4.10 1 2 1 1 1   887    0 8.65 -38.39 ----- 24.4 23.4 32.8 33.8 14.6 -21.8 14.3 -21.5 14.2 -20.1 14.6 -20.3
2025-07-01 16:34:58,375 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:34:58,375 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:34:58,375 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.607230
2025-07-01 16:34:58,375 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:34:58,375 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:34:58,375 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:34:58,375 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:34:58,375 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:34:58,375 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:34:30', tmtdew=10.79, humidity=47.98, cloud=0.0, wind=26.64, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:34:24.672', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:34:58,376 [DEBUG][       Thread-610704][   transport.py][1871] : EOF in transport thread
2025-07-01 16:34:58,450 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:34:58,463 [DEBUG][       Thread-610708][   transport.py][1871] : starting thread (client mode): 0x8156620
2025-07-01 16:34:58,463 [DEBUG][       Thread-610708][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:34:58,479 [DEBUG][       Thread-610708][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:34:58,479 [ INFO][       Thread-610708][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:34:58,487 [DEBUG][       Thread-610708][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:34:58,487 [DEBUG][       Thread-610708][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:34:58,487 [DEBUG][       Thread-610708][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:34:58,487 [DEBUG][       Thread-610708][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:34:58,487 [DEBUG][       Thread-610708][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:34:58,487 [DEBUG][       Thread-610708][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:34:58,487 [DEBUG][       Thread-610708][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:34:58,487 [DEBUG][       Thread-610708][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:34:58,487 [DEBUG][       Thread-610708][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:34:58,487 [DEBUG][       Thread-610708][   transport.py][1871] : client lang: <none>
2025-07-01 16:34:58,487 [DEBUG][       Thread-610708][   transport.py][1871] : server lang: <none>
2025-07-01 16:34:58,487 [DEBUG][       Thread-610708][   transport.py][1871] : kex follows: False
2025-07-01 16:34:58,487 [DEBUG][       Thread-610708][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:34:58,487 [DEBUG][       Thread-610708][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:34:58,487 [DEBUG][       Thread-610708][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:34:58,487 [DEBUG][       Thread-610708][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:34:58,487 [DEBUG][       Thread-610708][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:34:58,487 [DEBUG][       Thread-610708][   transport.py][1871] : Compression: none
2025-07-01 16:34:58,487 [DEBUG][       Thread-610708][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:34:58,546 [DEBUG][       Thread-610708][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:34:58,546 [DEBUG][       Thread-610708][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:34:58,546 [DEBUG][       Thread-610708][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:34:58,546 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:34:58,546 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:34:58,609 [DEBUG][       Thread-610708][   transport.py][1871] : userauth is OK
2025-07-01 16:34:58,609 [DEBUG][       Thread-610708][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:34:58,609 [DEBUG][       Thread-610708][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:34:58,609 [DEBUG][       Thread-610708][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:34:58,609 [DEBUG][       Thread-610708][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:34:58,623 [ INFO][       Thread-610708][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:34:58,623 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:34:58,623 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:34:59,646 [DEBUG][       Thread-610708][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:34:59,646 [DEBUG][       Thread-610708][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:34:59,695 [DEBUG][       Thread-610708][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:34:59,695 [DEBUG][       Thread-610708][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:34:59,704 [DEBUG][       Thread-610708][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:34:59,712 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:34:59,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')
2025-07-01 16:34:59,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-07-01 16:34:59,732 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:34:59,732 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:34:59,732 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:34:59,740 [DEBUG][       Thread-610708][   transport.py][1871] : EOF in transport thread
2025-07-01 16:35:06,911 [DEBUG][Thread-610710 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:35:09,742 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:35:09,742 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:35:09,743 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:35:09,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-07-01 16:35:10,224 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 35, 2), 10.75, 48.11, 0.0, 27.19, 13.48, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:35:10,224 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:35:02
2025-07-01 16:35:10,311 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:35:10,315 [DEBUG][       Thread-610711][   transport.py][1871] : starting thread (client mode): 0x81701f0
2025-07-01 16:35:10,315 [DEBUG][       Thread-610711][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:35:10,336 [DEBUG][       Thread-610711][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:35:10,336 [ INFO][       Thread-610711][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:35:10,338 [DEBUG][       Thread-610711][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:35:10,338 [DEBUG][       Thread-610711][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:35:10,338 [DEBUG][       Thread-610711][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:35:10,338 [DEBUG][       Thread-610711][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:35:10,338 [DEBUG][       Thread-610711][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:35:10,338 [DEBUG][       Thread-610711][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:35:10,338 [DEBUG][       Thread-610711][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:35:10,338 [DEBUG][       Thread-610711][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:35:10,339 [DEBUG][       Thread-610711][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:35:10,339 [DEBUG][       Thread-610711][   transport.py][1871] : client lang: <none>
2025-07-01 16:35:10,339 [DEBUG][       Thread-610711][   transport.py][1871] : server lang: <none>
2025-07-01 16:35:10,339 [DEBUG][       Thread-610711][   transport.py][1871] : kex follows: False
2025-07-01 16:35:10,339 [DEBUG][       Thread-610711][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:35:10,339 [DEBUG][       Thread-610711][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:35:10,339 [DEBUG][       Thread-610711][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:35:10,339 [DEBUG][       Thread-610711][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:35:10,339 [DEBUG][       Thread-610711][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:35:10,339 [DEBUG][       Thread-610711][   transport.py][1871] : Compression: none
2025-07-01 16:35:10,339 [DEBUG][       Thread-610711][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:35:10,355 [DEBUG][       Thread-610711][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:35:10,355 [DEBUG][       Thread-610711][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:35:10,356 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:35:10,356 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:35:10,356 [DEBUG][       Thread-610711][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:35:10,357 [DEBUG][       Thread-610711][   transport.py][1871] : userauth is OK
2025-07-01 16:35:10,382 [ INFO][       Thread-610711][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:35:10,383 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:35:10,998 [DEBUG][       Thread-610711][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:35:10,999 [DEBUG][       Thread-610711][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:35:11,041 [DEBUG][       Thread-610711][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:35:11,041 [DEBUG][       Thread-610711][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:35:11,044 [DEBUG][       Thread-610711][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:35:11,057 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:35:11,058 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:35:11,060 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:35:11,062 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:35:11,068 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:35:11,070 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:35:11,070 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:35:11,070 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:35:11,071 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.607230 -999.00  +13.30  23.36     53   +4.10 1 2 1 1 1   887    0 8.65 -38.39 ----- 24.4 23.4 32.8 33.8 14.6 -21.8 14.3 -21.5 14.2 -20.1 14.6 -20.3
2025-07-01 16:35:11,071 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:35:11,071 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:35:11,071 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.607230
2025-07-01 16:35:11,071 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:35:11,072 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:35:11,072 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:35:11,072 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:35:11,072 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:35:11,072 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:35:02', tmtdew=10.75, humidity=48.11, cloud=0.0, wind=27.19, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:34:24.672', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:35:11,073 [DEBUG][       Thread-610711][   transport.py][1871] : EOF in transport thread
2025-07-01 16:35:11,157 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:35:11,167 [DEBUG][       Thread-610714][   transport.py][1871] : starting thread (client mode): 0x818e1a0
2025-07-01 16:35:11,167 [DEBUG][       Thread-610714][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:35:11,188 [DEBUG][       Thread-610714][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:35:11,188 [ INFO][       Thread-610714][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:35:11,195 [DEBUG][       Thread-610714][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:35:11,196 [DEBUG][       Thread-610714][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:35:11,196 [DEBUG][       Thread-610714][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:35:11,196 [DEBUG][       Thread-610714][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:35:11,196 [DEBUG][       Thread-610714][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:35:11,196 [DEBUG][       Thread-610714][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:35:11,196 [DEBUG][       Thread-610714][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:35:11,196 [DEBUG][       Thread-610714][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:35:11,196 [DEBUG][       Thread-610714][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:35:11,196 [DEBUG][       Thread-610714][   transport.py][1871] : client lang: <none>
2025-07-01 16:35:11,196 [DEBUG][       Thread-610714][   transport.py][1871] : server lang: <none>
2025-07-01 16:35:11,196 [DEBUG][       Thread-610714][   transport.py][1871] : kex follows: False
2025-07-01 16:35:11,196 [DEBUG][       Thread-610714][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:35:11,196 [DEBUG][       Thread-610714][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:35:11,196 [DEBUG][       Thread-610714][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:35:11,196 [DEBUG][       Thread-610714][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:35:11,197 [DEBUG][       Thread-610714][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:35:11,197 [DEBUG][       Thread-610714][   transport.py][1871] : Compression: none
2025-07-01 16:35:11,197 [DEBUG][       Thread-610714][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:35:11,253 [DEBUG][       Thread-610714][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:35:11,254 [DEBUG][       Thread-610714][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:35:11,254 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:35:11,255 [DEBUG][       Thread-610714][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:35:11,256 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:35:11,314 [DEBUG][       Thread-610714][   transport.py][1871] : userauth is OK
2025-07-01 16:35:11,314 [DEBUG][       Thread-610714][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:35:11,314 [DEBUG][       Thread-610714][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:35:11,314 [DEBUG][       Thread-610714][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:35:11,314 [DEBUG][       Thread-610714][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:35:11,333 [ INFO][       Thread-610714][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:35:11,333 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:35:11,334 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:35:12,387 [DEBUG][       Thread-610714][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:35:12,388 [DEBUG][       Thread-610714][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:35:12,436 [DEBUG][       Thread-610714][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:35:12,436 [DEBUG][       Thread-610714][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:35:12,446 [DEBUG][       Thread-610714][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:35:12,455 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:35:12,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-07-01 16:35:12,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-07-01 16:35:12,473 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:35:12,473 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:35:12,474 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:35:12,482 [DEBUG][       Thread-610714][   transport.py][1871] : EOF in transport thread
2025-07-01 16:35:15,932 [DEBUG][Thread-610716 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:35:22,484 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:35:22,484 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:35:22,493 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:35:22,496 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:35:22,985 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 35, 2), 10.75, 48.11, 0.0, 27.19, 13.48, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:35:22,985 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:35:02
2025-07-01 16:35:23,072 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:35:23,076 [DEBUG][       Thread-610717][   transport.py][1871] : starting thread (client mode): 0x81e64a0
2025-07-01 16:35:23,076 [DEBUG][       Thread-610717][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:35:23,097 [DEBUG][       Thread-610717][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:35:23,097 [ INFO][       Thread-610717][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:35:23,100 [DEBUG][       Thread-610717][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:35:23,100 [DEBUG][       Thread-610717][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:35:23,100 [DEBUG][       Thread-610717][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:35:23,100 [DEBUG][       Thread-610717][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:35:23,100 [DEBUG][       Thread-610717][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:35:23,100 [DEBUG][       Thread-610717][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:35:23,100 [DEBUG][       Thread-610717][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:35:23,100 [DEBUG][       Thread-610717][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:35:23,100 [DEBUG][       Thread-610717][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:35:23,100 [DEBUG][       Thread-610717][   transport.py][1871] : client lang: <none>
2025-07-01 16:35:23,100 [DEBUG][       Thread-610717][   transport.py][1871] : server lang: <none>
2025-07-01 16:35:23,100 [DEBUG][       Thread-610717][   transport.py][1871] : kex follows: False
2025-07-01 16:35:23,100 [DEBUG][       Thread-610717][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:35:23,100 [DEBUG][       Thread-610717][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:35:23,100 [DEBUG][       Thread-610717][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:35:23,101 [DEBUG][       Thread-610717][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:35:23,101 [DEBUG][       Thread-610717][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:35:23,101 [DEBUG][       Thread-610717][   transport.py][1871] : Compression: none
2025-07-01 16:35:23,101 [DEBUG][       Thread-610717][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:35:23,117 [DEBUG][       Thread-610717][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:35:23,117 [DEBUG][       Thread-610717][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:35:23,118 [DEBUG][       Thread-610717][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:35:23,118 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:35:23,118 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:35:23,119 [DEBUG][       Thread-610717][   transport.py][1871] : userauth is OK
2025-07-01 16:35:23,132 [ INFO][       Thread-610717][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:35:23,133 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:35:23,785 [DEBUG][       Thread-610717][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:35:23,785 [DEBUG][       Thread-610717][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:35:23,829 [DEBUG][       Thread-610717][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:35:23,829 [DEBUG][       Thread-610717][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:35:23,832 [DEBUG][       Thread-610717][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:35:23,844 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:35:23,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:35:23,846 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:35:23,848 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:35:23,854 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:35:23,856 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:35:23,856 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:35:23,857 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:35:23,857 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.607230 -999.00  +13.30  23.36     53   +4.10 1 2 1 1 1   887    0 8.65 -38.39 ----- 24.4 23.4 32.8 33.8 14.6 -21.8 14.3 -21.5 14.2 -20.1 14.6 -20.3
2025-07-01 16:35:23,857 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:35:23,857 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:35:23,857 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.607230
2025-07-01 16:35:23,857 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:35:23,858 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:35:23,858 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:35:23,858 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:35:23,858 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:35:23,858 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:35:02', tmtdew=10.75, humidity=48.11, cloud=0.0, wind=27.19, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:34:24.672', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:35:23,859 [DEBUG][       Thread-610717][   transport.py][1871] : EOF in transport thread
2025-07-01 16:35:23,942 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:35:23,953 [DEBUG][       Thread-610720][   transport.py][1871] : starting thread (client mode): 0x8156620
2025-07-01 16:35:23,953 [DEBUG][       Thread-610720][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:35:23,968 [DEBUG][       Thread-610720][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:35:23,968 [ INFO][       Thread-610720][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:35:23,976 [DEBUG][       Thread-610720][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:35:23,976 [DEBUG][       Thread-610720][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:35:23,976 [DEBUG][       Thread-610720][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:35:23,976 [DEBUG][       Thread-610720][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:35:23,976 [DEBUG][       Thread-610720][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:35:23,976 [DEBUG][       Thread-610720][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:35:23,976 [DEBUG][       Thread-610720][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:35:23,976 [DEBUG][       Thread-610720][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:35:23,976 [DEBUG][       Thread-610720][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:35:23,976 [DEBUG][       Thread-610720][   transport.py][1871] : client lang: <none>
2025-07-01 16:35:23,976 [DEBUG][       Thread-610720][   transport.py][1871] : server lang: <none>
2025-07-01 16:35:23,976 [DEBUG][       Thread-610720][   transport.py][1871] : kex follows: False
2025-07-01 16:35:23,976 [DEBUG][       Thread-610720][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:35:23,976 [DEBUG][       Thread-610720][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:35:23,977 [DEBUG][       Thread-610720][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:35:23,977 [DEBUG][       Thread-610720][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:35:23,977 [DEBUG][       Thread-610720][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:35:23,977 [DEBUG][       Thread-610720][   transport.py][1871] : Compression: none
2025-07-01 16:35:23,977 [DEBUG][       Thread-610720][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:35:24,034 [DEBUG][       Thread-610720][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:35:24,034 [DEBUG][       Thread-610720][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:35:24,035 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:35:24,035 [DEBUG][       Thread-610720][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:35:24,036 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:35:24,091 [DEBUG][       Thread-610720][   transport.py][1871] : userauth is OK
2025-07-01 16:35:24,091 [DEBUG][       Thread-610720][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:35:24,091 [DEBUG][       Thread-610720][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:35:24,091 [DEBUG][       Thread-610720][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:35:24,091 [DEBUG][       Thread-610720][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:35:24,113 [ INFO][       Thread-610720][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:35:24,113 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:35:24,113 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:35:24,967 [DEBUG][Thread-610722 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:35:25,160 [DEBUG][       Thread-610720][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:35:25,161 [DEBUG][       Thread-610720][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:35:25,212 [DEBUG][       Thread-610720][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:35:25,212 [DEBUG][       Thread-610720][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:35:25,221 [DEBUG][       Thread-610720][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:35:25,230 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:35: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-07-01 16:35: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-07-01 16:35:25,249 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:35:25,249 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:35:25,250 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:35:25,258 [DEBUG][       Thread-610720][   transport.py][1871] : EOF in transport thread
2025-07-01 16:35:33,989 [DEBUG][Thread-610723 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:35:35,260 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:35:35,260 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:35:35,260 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:35:35,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-07-01 16:35:35,771 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 35, 2), 10.75, 48.11, 0.0, 27.19, 13.48, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:35:35,771 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:35:02
2025-07-01 16:35:35,866 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:35:35,870 [DEBUG][       Thread-610724][   transport.py][1871] : starting thread (client mode): 0x81e6bc0
2025-07-01 16:35:35,870 [DEBUG][       Thread-610724][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:35:35,892 [DEBUG][       Thread-610724][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:35:35,892 [ INFO][       Thread-610724][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:35:35,894 [DEBUG][       Thread-610724][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:35:35,894 [DEBUG][       Thread-610724][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:35:35,894 [DEBUG][       Thread-610724][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:35:35,894 [DEBUG][       Thread-610724][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:35:35,894 [DEBUG][       Thread-610724][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:35:35,894 [DEBUG][       Thread-610724][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:35:35,894 [DEBUG][       Thread-610724][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:35:35,894 [DEBUG][       Thread-610724][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:35:35,894 [DEBUG][       Thread-610724][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:35:35,894 [DEBUG][       Thread-610724][   transport.py][1871] : client lang: <none>
2025-07-01 16:35:35,894 [DEBUG][       Thread-610724][   transport.py][1871] : server lang: <none>
2025-07-01 16:35:35,894 [DEBUG][       Thread-610724][   transport.py][1871] : kex follows: False
2025-07-01 16:35:35,894 [DEBUG][       Thread-610724][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:35:35,894 [DEBUG][       Thread-610724][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:35:35,894 [DEBUG][       Thread-610724][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:35:35,894 [DEBUG][       Thread-610724][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:35:35,894 [DEBUG][       Thread-610724][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:35:35,894 [DEBUG][       Thread-610724][   transport.py][1871] : Compression: none
2025-07-01 16:35:35,894 [DEBUG][       Thread-610724][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:35:35,902 [DEBUG][       Thread-610724][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:35:35,902 [DEBUG][       Thread-610724][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:35:35,902 [DEBUG][       Thread-610724][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:35:35,903 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:35:35,903 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:35:35,903 [DEBUG][       Thread-610724][   transport.py][1871] : userauth is OK
2025-07-01 16:35:35,915 [ INFO][       Thread-610724][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:35:35,916 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:35:36,579 [DEBUG][       Thread-610724][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:35:36,579 [DEBUG][       Thread-610724][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:35:36,620 [DEBUG][       Thread-610724][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:35:36,621 [DEBUG][       Thread-610724][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:35:36,623 [DEBUG][       Thread-610724][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:35:36,635 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:35:36,635 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:35:36,636 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:35:36,638 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:35:36,641 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:35:36,642 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:35:36,642 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:35:36,642 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:35:36,642 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.607577 -999.00  +13.30  32.19     53   +3.90 1 2 2 1 1   887    0 8.33 -39.58 ----- 22.2 32.2 37.6 42.7 14.6 -21.5 14.3 -21.2 14.3 -20.0 14.6 -20.2
2025-07-01 16:35:36,642 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:35:36,642 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:35:36,642 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.607577
2025-07-01 16:35:36,642 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:35:36,642 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:35:36,642 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:35:36,642 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:35:36,642 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:35:36,642 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:35:02', tmtdew=10.75, humidity=48.11, cloud=0.0, wind=27.19, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:34:54.653', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:35:36,643 [DEBUG][       Thread-610724][   transport.py][1871] : EOF in transport thread
2025-07-01 16:35:36,716 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:35:36,725 [DEBUG][       Thread-610727][   transport.py][1871] : starting thread (client mode): 0x81a71f0
2025-07-01 16:35:36,725 [DEBUG][       Thread-610727][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:35:36,741 [DEBUG][       Thread-610727][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:35:36,741 [ INFO][       Thread-610727][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:35:36,748 [DEBUG][       Thread-610727][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:35:36,748 [DEBUG][       Thread-610727][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:35:36,748 [DEBUG][       Thread-610727][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:35:36,748 [DEBUG][       Thread-610727][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:35:36,748 [DEBUG][       Thread-610727][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:35:36,748 [DEBUG][       Thread-610727][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:35:36,748 [DEBUG][       Thread-610727][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:35:36,748 [DEBUG][       Thread-610727][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:35:36,748 [DEBUG][       Thread-610727][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:35:36,748 [DEBUG][       Thread-610727][   transport.py][1871] : client lang: <none>
2025-07-01 16:35:36,748 [DEBUG][       Thread-610727][   transport.py][1871] : server lang: <none>
2025-07-01 16:35:36,748 [DEBUG][       Thread-610727][   transport.py][1871] : kex follows: False
2025-07-01 16:35:36,748 [DEBUG][       Thread-610727][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:35:36,748 [DEBUG][       Thread-610727][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:35:36,748 [DEBUG][       Thread-610727][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:35:36,748 [DEBUG][       Thread-610727][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:35:36,748 [DEBUG][       Thread-610727][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:35:36,748 [DEBUG][       Thread-610727][   transport.py][1871] : Compression: none
2025-07-01 16:35:36,748 [DEBUG][       Thread-610727][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:35:36,808 [DEBUG][       Thread-610727][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:35:36,808 [DEBUG][       Thread-610727][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:35:36,808 [DEBUG][       Thread-610727][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:35:36,808 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:35:36,808 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:35:36,865 [DEBUG][       Thread-610727][   transport.py][1871] : userauth is OK
2025-07-01 16:35:36,865 [DEBUG][       Thread-610727][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:35:36,865 [DEBUG][       Thread-610727][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:35:36,865 [DEBUG][       Thread-610727][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:35:36,865 [DEBUG][       Thread-610727][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:35:36,879 [ INFO][       Thread-610727][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:35:36,879 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:35:36,879 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:35:37,924 [DEBUG][       Thread-610727][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:35:37,924 [DEBUG][       Thread-610727][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:35:37,971 [DEBUG][       Thread-610727][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:35:37,971 [DEBUG][       Thread-610727][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:35:37,980 [DEBUG][       Thread-610727][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:35:37,988 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:35:37,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')
2025-07-01 16:35:37,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-07-01 16:35:38,004 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:35:38,004 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:35:38,004 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:35:38,011 [DEBUG][       Thread-610727][   transport.py][1871] : EOF in transport thread
2025-07-01 16:35:38,911 [DEBUG][Thread-610729 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:35:43,009 [DEBUG][Thread-610730 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:35:48,014 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:35:48,014 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:35:48,023 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:35:48,026 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:35:48,510 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 35, 34), 10.75, 48.21, 0.0, 24.0, 13.49, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:35:48,510 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:35:34
2025-07-01 16:35:48,595 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:35:48,599 [DEBUG][       Thread-610731][   transport.py][1871] : starting thread (client mode): 0x82b3760
2025-07-01 16:35:48,599 [DEBUG][       Thread-610731][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:35:48,616 [DEBUG][       Thread-610731][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:35:48,616 [ INFO][       Thread-610731][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:35:48,620 [DEBUG][       Thread-610731][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:35:48,620 [DEBUG][       Thread-610731][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:35:48,620 [DEBUG][       Thread-610731][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:35:48,620 [DEBUG][       Thread-610731][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:35:48,620 [DEBUG][       Thread-610731][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:35:48,620 [DEBUG][       Thread-610731][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:35:48,620 [DEBUG][       Thread-610731][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:35:48,620 [DEBUG][       Thread-610731][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:35:48,620 [DEBUG][       Thread-610731][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:35:48,620 [DEBUG][       Thread-610731][   transport.py][1871] : client lang: <none>
2025-07-01 16:35:48,620 [DEBUG][       Thread-610731][   transport.py][1871] : server lang: <none>
2025-07-01 16:35:48,620 [DEBUG][       Thread-610731][   transport.py][1871] : kex follows: False
2025-07-01 16:35:48,620 [DEBUG][       Thread-610731][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:35:48,620 [DEBUG][       Thread-610731][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:35:48,620 [DEBUG][       Thread-610731][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:35:48,620 [DEBUG][       Thread-610731][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:35:48,620 [DEBUG][       Thread-610731][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:35:48,620 [DEBUG][       Thread-610731][   transport.py][1871] : Compression: none
2025-07-01 16:35:48,620 [DEBUG][       Thread-610731][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:35:48,636 [DEBUG][       Thread-610731][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:35:48,637 [DEBUG][       Thread-610731][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:35:48,637 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:35:48,638 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:35:48,638 [DEBUG][       Thread-610731][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:35:48,639 [DEBUG][       Thread-610731][   transport.py][1871] : userauth is OK
2025-07-01 16:35:48,652 [ INFO][       Thread-610731][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:35:48,652 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:35:49,511 [DEBUG][       Thread-610731][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:35:49,512 [DEBUG][       Thread-610731][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:35:49,552 [DEBUG][       Thread-610731][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:35:49,553 [DEBUG][       Thread-610731][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:35:49,555 [DEBUG][       Thread-610731][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:35:49,568 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:35:49,569 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:35:49,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:35:49,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:35:49,577 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:35:49,579 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:35:49,579 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:35:49,580 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:35:49,580 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.607577 -999.00  +13.30  32.19     53   +3.90 1 2 2 1 1   887    0 8.33 -39.58 ----- 22.2 32.2 37.6 42.7 14.6 -21.5 14.3 -21.2 14.3 -20.0 14.6 -20.2
2025-07-01 16:35:49,580 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:35:49,580 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:35:49,580 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.607577
2025-07-01 16:35:49,581 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:35:49,581 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:35:49,581 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:35:49,581 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:35:49,581 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:35:49,581 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:35:34', tmtdew=10.75, humidity=48.21, cloud=0.0, wind=24.0, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:34:54.653', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:35:49,582 [DEBUG][       Thread-610731][   transport.py][1871] : EOF in transport thread
2025-07-01 16:35:49,665 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:35:49,677 [DEBUG][       Thread-610734][   transport.py][1871] : starting thread (client mode): 0x81708b0
2025-07-01 16:35:49,677 [DEBUG][       Thread-610734][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:35:49,694 [DEBUG][       Thread-610734][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:35:49,694 [ INFO][       Thread-610734][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:35:49,702 [DEBUG][       Thread-610734][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:35:49,702 [DEBUG][       Thread-610734][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:35:49,702 [DEBUG][       Thread-610734][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:35:49,702 [DEBUG][       Thread-610734][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:35:49,702 [DEBUG][       Thread-610734][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:35:49,702 [DEBUG][       Thread-610734][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:35:49,702 [DEBUG][       Thread-610734][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:35:49,702 [DEBUG][       Thread-610734][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:35:49,702 [DEBUG][       Thread-610734][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:35:49,702 [DEBUG][       Thread-610734][   transport.py][1871] : client lang: <none>
2025-07-01 16:35:49,702 [DEBUG][       Thread-610734][   transport.py][1871] : server lang: <none>
2025-07-01 16:35:49,702 [DEBUG][       Thread-610734][   transport.py][1871] : kex follows: False
2025-07-01 16:35:49,702 [DEBUG][       Thread-610734][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:35:49,702 [DEBUG][       Thread-610734][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:35:49,702 [DEBUG][       Thread-610734][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:35:49,702 [DEBUG][       Thread-610734][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:35:49,702 [DEBUG][       Thread-610734][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:35:49,702 [DEBUG][       Thread-610734][   transport.py][1871] : Compression: none
2025-07-01 16:35:49,702 [DEBUG][       Thread-610734][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:35:49,768 [DEBUG][       Thread-610734][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:35:49,768 [DEBUG][       Thread-610734][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:35:49,769 [DEBUG][       Thread-610734][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:35:49,769 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:35:49,770 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:35:49,826 [DEBUG][       Thread-610734][   transport.py][1871] : userauth is OK
2025-07-01 16:35:49,826 [DEBUG][       Thread-610734][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:35:49,827 [DEBUG][       Thread-610734][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:35:49,827 [DEBUG][       Thread-610734][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:35:49,827 [DEBUG][       Thread-610734][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:35:49,845 [ INFO][       Thread-610734][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:35:49,846 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:35:49,846 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:35:50,903 [DEBUG][       Thread-610734][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:35:50,903 [DEBUG][       Thread-610734][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:35:50,951 [DEBUG][       Thread-610734][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:35:50,952 [DEBUG][       Thread-610734][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:35:50,960 [DEBUG][       Thread-610734][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:35:50,969 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:35:50,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-07-01 16:35:50,978 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 16:35:50,986 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:35:50,987 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:35:50,987 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:35:50,994 [DEBUG][       Thread-610734][   transport.py][1871] : EOF in transport thread
2025-07-01 16:35:52,035 [DEBUG][Thread-610736 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:36:00,997 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:36:00,998 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:36:00,998 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:36:01,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-07-01 16:36:01,076 [DEBUG][Thread-610737 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:36:01,464 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 35, 34), 10.75, 48.21, 0.0, 24.0, 13.49, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:36:01,464 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:35:34
2025-07-01 16:36:01,550 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:36:01,554 [DEBUG][       Thread-610738][   transport.py][1871] : starting thread (client mode): 0x81e5690
2025-07-01 16:36:01,554 [DEBUG][       Thread-610738][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:36:01,573 [DEBUG][       Thread-610738][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:36:01,573 [ INFO][       Thread-610738][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:36:01,576 [DEBUG][       Thread-610738][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:36:01,576 [DEBUG][       Thread-610738][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:36:01,576 [DEBUG][       Thread-610738][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:36:01,576 [DEBUG][       Thread-610738][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:36:01,576 [DEBUG][       Thread-610738][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:36:01,576 [DEBUG][       Thread-610738][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:36:01,576 [DEBUG][       Thread-610738][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:36:01,576 [DEBUG][       Thread-610738][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:36:01,576 [DEBUG][       Thread-610738][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:36:01,576 [DEBUG][       Thread-610738][   transport.py][1871] : client lang: <none>
2025-07-01 16:36:01,576 [DEBUG][       Thread-610738][   transport.py][1871] : server lang: <none>
2025-07-01 16:36:01,576 [DEBUG][       Thread-610738][   transport.py][1871] : kex follows: False
2025-07-01 16:36:01,576 [DEBUG][       Thread-610738][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:36:01,576 [DEBUG][       Thread-610738][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:36:01,576 [DEBUG][       Thread-610738][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:36:01,576 [DEBUG][       Thread-610738][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:36:01,576 [DEBUG][       Thread-610738][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:36:01,576 [DEBUG][       Thread-610738][   transport.py][1871] : Compression: none
2025-07-01 16:36:01,576 [DEBUG][       Thread-610738][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:36:01,584 [DEBUG][       Thread-610738][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:36:01,584 [DEBUG][       Thread-610738][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:36:01,584 [DEBUG][       Thread-610738][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:36:01,584 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:36:01,585 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:36:01,585 [DEBUG][       Thread-610738][   transport.py][1871] : userauth is OK
2025-07-01 16:36:01,597 [ INFO][       Thread-610738][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:36:01,598 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:36:02,153 [DEBUG][       Thread-610738][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:36:02,153 [DEBUG][       Thread-610738][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:36:02,198 [DEBUG][       Thread-610738][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:36:02,198 [DEBUG][       Thread-610738][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:36:02,202 [DEBUG][       Thread-610738][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:36:02,209 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:36:02,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:36:02,211 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:36:02,212 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:36:02,217 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:36:02,219 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:36:02,219 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:36:02,220 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:36:02,220 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.608272 -999.00  +13.30  30.95     52   +3.90 1 2 2 1 1   887    0 8.31 -42.22 ----- 46.0 30.9 32.8 42.5 14.6 -21.2 14.3 -21.2 14.2 -19.9 14.6 -19.8
2025-07-01 16:36:02,220 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:36:02,220 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:36:02,220 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.608272
2025-07-01 16:36:02,221 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:36:02,222 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:36:02,222 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:36:02,222 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:36:02,222 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:36:02,222 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:35:34', tmtdew=10.75, humidity=48.21, cloud=0.0, wind=24.0, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:35:54.701', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:36:02,223 [DEBUG][       Thread-610738][   transport.py][1871] : EOF in transport thread
2025-07-01 16:36:02,306 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:36:02,315 [DEBUG][       Thread-610741][   transport.py][1871] : starting thread (client mode): 0x47398550
2025-07-01 16:36:02,315 [DEBUG][       Thread-610741][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:36:02,330 [DEBUG][       Thread-610741][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:36:02,330 [ INFO][       Thread-610741][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:36:02,338 [DEBUG][       Thread-610741][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:36:02,338 [DEBUG][       Thread-610741][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:36:02,338 [DEBUG][       Thread-610741][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:36:02,338 [DEBUG][       Thread-610741][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:36:02,338 [DEBUG][       Thread-610741][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:36:02,338 [DEBUG][       Thread-610741][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:36:02,338 [DEBUG][       Thread-610741][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:36:02,338 [DEBUG][       Thread-610741][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:36:02,338 [DEBUG][       Thread-610741][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:36:02,338 [DEBUG][       Thread-610741][   transport.py][1871] : client lang: <none>
2025-07-01 16:36:02,338 [DEBUG][       Thread-610741][   transport.py][1871] : server lang: <none>
2025-07-01 16:36:02,338 [DEBUG][       Thread-610741][   transport.py][1871] : kex follows: False
2025-07-01 16:36:02,338 [DEBUG][       Thread-610741][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:36:02,338 [DEBUG][       Thread-610741][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:36:02,339 [DEBUG][       Thread-610741][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:36:02,339 [DEBUG][       Thread-610741][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:36:02,339 [DEBUG][       Thread-610741][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:36:02,339 [DEBUG][       Thread-610741][   transport.py][1871] : Compression: none
2025-07-01 16:36:02,339 [DEBUG][       Thread-610741][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:36:02,398 [DEBUG][       Thread-610741][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:36:02,398 [DEBUG][       Thread-610741][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:36:02,399 [DEBUG][       Thread-610741][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:36:02,399 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:36:02,400 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:36:02,456 [DEBUG][       Thread-610741][   transport.py][1871] : userauth is OK
2025-07-01 16:36:02,456 [DEBUG][       Thread-610741][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:36:02,456 [DEBUG][       Thread-610741][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:36:02,456 [DEBUG][       Thread-610741][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:36:02,456 [DEBUG][       Thread-610741][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:36:02,475 [ INFO][       Thread-610741][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:36:02,475 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:36:02,476 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:36:03,491 [DEBUG][       Thread-610741][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:36:03,491 [DEBUG][       Thread-610741][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:36:03,540 [DEBUG][       Thread-610741][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:36:03,540 [DEBUG][       Thread-610741][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:36:03,551 [DEBUG][       Thread-610741][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:36:03,565 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:36: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-07-01 16:36:03,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-07-01 16:36:03,583 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:36:03,583 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:36:03,584 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:36:03,592 [DEBUG][       Thread-610741][   transport.py][1871] : EOF in transport thread
2025-07-01 16:36:10,096 [DEBUG][Thread-610743 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:36:13,594 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:36:13,594 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:36:13,594 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:36:13,595 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:36:14,099 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 36, 5), 10.75, 48.22, 0.0, 23.64, 13.49, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:36:14,099 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:36:05
2025-07-01 16:36:14,192 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:36:14,196 [DEBUG][       Thread-610744][   transport.py][1871] : starting thread (client mode): 0x82b3be0
2025-07-01 16:36:14,196 [DEBUG][       Thread-610744][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:36:14,217 [DEBUG][       Thread-610744][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:36:14,217 [ INFO][       Thread-610744][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:36:14,220 [DEBUG][       Thread-610744][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:36:14,220 [DEBUG][       Thread-610744][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:36:14,220 [DEBUG][       Thread-610744][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:36:14,220 [DEBUG][       Thread-610744][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:36:14,220 [DEBUG][       Thread-610744][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:36:14,220 [DEBUG][       Thread-610744][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:36:14,220 [DEBUG][       Thread-610744][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:36:14,220 [DEBUG][       Thread-610744][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:36:14,220 [DEBUG][       Thread-610744][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:36:14,220 [DEBUG][       Thread-610744][   transport.py][1871] : client lang: <none>
2025-07-01 16:36:14,220 [DEBUG][       Thread-610744][   transport.py][1871] : server lang: <none>
2025-07-01 16:36:14,220 [DEBUG][       Thread-610744][   transport.py][1871] : kex follows: False
2025-07-01 16:36:14,220 [DEBUG][       Thread-610744][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:36:14,220 [DEBUG][       Thread-610744][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:36:14,220 [DEBUG][       Thread-610744][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:36:14,220 [DEBUG][       Thread-610744][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:36:14,220 [DEBUG][       Thread-610744][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:36:14,220 [DEBUG][       Thread-610744][   transport.py][1871] : Compression: none
2025-07-01 16:36:14,220 [DEBUG][       Thread-610744][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:36:14,234 [DEBUG][       Thread-610744][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:36:14,234 [DEBUG][       Thread-610744][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:36:14,234 [DEBUG][       Thread-610744][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:36:14,235 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:36:14,235 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:36:14,235 [DEBUG][       Thread-610744][   transport.py][1871] : userauth is OK
2025-07-01 16:36:14,247 [ INFO][       Thread-610744][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:36:14,247 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:36:14,884 [DEBUG][       Thread-610744][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:36:14,884 [DEBUG][       Thread-610744][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:36:14,929 [DEBUG][       Thread-610744][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:36:14,929 [DEBUG][       Thread-610744][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:36:14,931 [DEBUG][       Thread-610744][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:36:14,944 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:36:14,944 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:36:14,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:36:14,946 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:36:14,950 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:36:14,951 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:36:14,951 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:36:14,952 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:36:14,952 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.608272 -999.00  +13.30  30.95     52   +3.90 1 2 2 1 1   887    0 8.31 -42.22 ----- 46.0 30.9 32.8 42.5 14.6 -21.2 14.3 -21.2 14.2 -19.9 14.6 -19.8
2025-07-01 16:36:14,952 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:36:14,952 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:36:14,952 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.608272
2025-07-01 16:36:14,952 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:36:14,952 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:36:14,952 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:36:14,952 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:36:14,952 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:36:14,952 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:36:05', tmtdew=10.75, humidity=48.22, cloud=0.0, wind=23.64, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:35:54.701', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:36:14,953 [DEBUG][       Thread-610744][   transport.py][1871] : EOF in transport thread
2025-07-01 16:36:15,026 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:36:15,037 [DEBUG][       Thread-610747][   transport.py][1871] : starting thread (client mode): 0x83c8430
2025-07-01 16:36:15,037 [DEBUG][       Thread-610747][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:36:15,052 [DEBUG][       Thread-610747][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:36:15,052 [ INFO][       Thread-610747][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:36:15,060 [DEBUG][       Thread-610747][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:36:15,060 [DEBUG][       Thread-610747][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:36:15,060 [DEBUG][       Thread-610747][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:36:15,060 [DEBUG][       Thread-610747][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:36:15,060 [DEBUG][       Thread-610747][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:36:15,060 [DEBUG][       Thread-610747][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:36:15,060 [DEBUG][       Thread-610747][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:36:15,060 [DEBUG][       Thread-610747][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:36:15,060 [DEBUG][       Thread-610747][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:36:15,060 [DEBUG][       Thread-610747][   transport.py][1871] : client lang: <none>
2025-07-01 16:36:15,060 [DEBUG][       Thread-610747][   transport.py][1871] : server lang: <none>
2025-07-01 16:36:15,060 [DEBUG][       Thread-610747][   transport.py][1871] : kex follows: False
2025-07-01 16:36:15,060 [DEBUG][       Thread-610747][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:36:15,060 [DEBUG][       Thread-610747][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:36:15,060 [DEBUG][       Thread-610747][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:36:15,060 [DEBUG][       Thread-610747][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:36:15,060 [DEBUG][       Thread-610747][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:36:15,060 [DEBUG][       Thread-610747][   transport.py][1871] : Compression: none
2025-07-01 16:36:15,060 [DEBUG][       Thread-610747][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:36:15,116 [DEBUG][       Thread-610747][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:36:15,116 [DEBUG][       Thread-610747][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:36:15,117 [DEBUG][       Thread-610747][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:36:15,117 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:36:15,117 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:36:15,173 [DEBUG][       Thread-610747][   transport.py][1871] : userauth is OK
2025-07-01 16:36:15,173 [DEBUG][       Thread-610747][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:36:15,173 [DEBUG][       Thread-610747][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:36:15,173 [DEBUG][       Thread-610747][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:36:15,173 [DEBUG][       Thread-610747][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:36:15,187 [ INFO][       Thread-610747][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:36:15,188 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:36:15,188 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:36:16,242 [DEBUG][       Thread-610747][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:36:16,242 [DEBUG][       Thread-610747][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:36:16,291 [DEBUG][       Thread-610747][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:36:16,291 [DEBUG][       Thread-610747][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:36:16,302 [DEBUG][       Thread-610747][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:36:16,310 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:36:16,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-07-01 16:36:16,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') -> 00000000
2025-07-01 16:36:16,326 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:36:16,327 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:36:16,327 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:36:16,335 [DEBUG][       Thread-610747][   transport.py][1871] : EOF in transport thread
2025-07-01 16:36:19,117 [DEBUG][Thread-610749 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:36:26,328 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:36:26,329 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:36:26,329 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:36:26,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-07-01 16:36:26,806 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 36, 5), 10.75, 48.22, 0.0, 23.64, 13.49, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:36:26,806 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:36:05
2025-07-01 16:36:26,892 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:36:26,899 [DEBUG][       Thread-610750][   transport.py][1871] : starting thread (client mode): 0x82b3a30
2025-07-01 16:36:26,899 [DEBUG][       Thread-610750][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:36:26,920 [DEBUG][       Thread-610750][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:36:26,920 [ INFO][       Thread-610750][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:36:26,923 [DEBUG][       Thread-610750][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:36:26,923 [DEBUG][       Thread-610750][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:36:26,923 [DEBUG][       Thread-610750][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:36:26,923 [DEBUG][       Thread-610750][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:36:26,923 [DEBUG][       Thread-610750][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:36:26,924 [DEBUG][       Thread-610750][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:36:26,924 [DEBUG][       Thread-610750][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:36:26,924 [DEBUG][       Thread-610750][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:36:26,924 [DEBUG][       Thread-610750][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:36:26,924 [DEBUG][       Thread-610750][   transport.py][1871] : client lang: <none>
2025-07-01 16:36:26,924 [DEBUG][       Thread-610750][   transport.py][1871] : server lang: <none>
2025-07-01 16:36:26,924 [DEBUG][       Thread-610750][   transport.py][1871] : kex follows: False
2025-07-01 16:36:26,924 [DEBUG][       Thread-610750][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:36:26,924 [DEBUG][       Thread-610750][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:36:26,924 [DEBUG][       Thread-610750][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:36:26,924 [DEBUG][       Thread-610750][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:36:26,924 [DEBUG][       Thread-610750][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:36:26,924 [DEBUG][       Thread-610750][   transport.py][1871] : Compression: none
2025-07-01 16:36:26,924 [DEBUG][       Thread-610750][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:36:26,942 [DEBUG][       Thread-610750][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:36:26,942 [DEBUG][       Thread-610750][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:36:26,943 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:36:26,943 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:36:26,943 [DEBUG][       Thread-610750][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:36:26,944 [DEBUG][       Thread-610750][   transport.py][1871] : userauth is OK
2025-07-01 16:36:26,957 [ INFO][       Thread-610750][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:36:26,957 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:36:27,600 [DEBUG][       Thread-610750][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:36:27,601 [DEBUG][       Thread-610750][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:36:27,645 [DEBUG][       Thread-610750][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:36:27,645 [DEBUG][       Thread-610750][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:36:27,649 [DEBUG][       Thread-610750][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:36:27,659 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:36:27,660 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:36:27,662 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:36:27,663 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:36:27,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:36:27,670 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:36:27,670 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:36:27,671 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:36:27,671 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.608272 -999.00  +13.30  30.95     52   +3.90 1 2 2 1 1   887    0 8.31 -42.22 ----- 46.0 30.9 32.8 42.5 14.6 -21.2 14.3 -21.2 14.2 -19.9 14.6 -19.8
2025-07-01 16:36:27,671 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:36:27,671 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:36:27,671 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.608272
2025-07-01 16:36:27,672 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:36:27,672 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:36:27,673 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:36:27,673 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:36:27,673 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:36:27,673 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:36:05', tmtdew=10.75, humidity=48.22, cloud=0.0, wind=23.64, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:35:54.701', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:36:27,674 [DEBUG][       Thread-610750][   transport.py][1871] : EOF in transport thread
2025-07-01 16:36:27,756 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:36:27,768 [DEBUG][       Thread-610753][   transport.py][1871] : starting thread (client mode): 0x83c8430
2025-07-01 16:36:27,768 [DEBUG][       Thread-610753][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:36:27,785 [DEBUG][       Thread-610753][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:36:27,785 [ INFO][       Thread-610753][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:36:27,793 [DEBUG][       Thread-610753][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:36:27,793 [DEBUG][       Thread-610753][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:36:27,793 [DEBUG][       Thread-610753][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:36:27,793 [DEBUG][       Thread-610753][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:36:27,793 [DEBUG][       Thread-610753][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:36:27,793 [DEBUG][       Thread-610753][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:36:27,793 [DEBUG][       Thread-610753][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:36:27,793 [DEBUG][       Thread-610753][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:36:27,794 [DEBUG][       Thread-610753][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:36:27,794 [DEBUG][       Thread-610753][   transport.py][1871] : client lang: <none>
2025-07-01 16:36:27,794 [DEBUG][       Thread-610753][   transport.py][1871] : server lang: <none>
2025-07-01 16:36:27,794 [DEBUG][       Thread-610753][   transport.py][1871] : kex follows: False
2025-07-01 16:36:27,794 [DEBUG][       Thread-610753][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:36:27,794 [DEBUG][       Thread-610753][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:36:27,794 [DEBUG][       Thread-610753][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:36:27,794 [DEBUG][       Thread-610753][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:36:27,794 [DEBUG][       Thread-610753][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:36:27,794 [DEBUG][       Thread-610753][   transport.py][1871] : Compression: none
2025-07-01 16:36:27,794 [DEBUG][       Thread-610753][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:36:27,852 [DEBUG][       Thread-610753][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:36:27,853 [DEBUG][       Thread-610753][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:36:27,853 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:36:27,854 [DEBUG][       Thread-610753][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:36:27,855 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:36:27,913 [DEBUG][       Thread-610753][   transport.py][1871] : userauth is OK
2025-07-01 16:36:27,914 [DEBUG][       Thread-610753][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:36:27,914 [DEBUG][       Thread-610753][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:36:27,914 [DEBUG][       Thread-610753][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:36:27,914 [DEBUG][       Thread-610753][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:36:27,933 [ INFO][       Thread-610753][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:36:27,933 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:36:27,934 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:36:28,153 [DEBUG][Thread-610755 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:36:28,934 [DEBUG][       Thread-610753][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:36:28,934 [DEBUG][       Thread-610753][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:36:28,984 [DEBUG][       Thread-610753][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:36:28,984 [DEBUG][       Thread-610753][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:36:28,993 [DEBUG][       Thread-610753][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:36:29,001 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:36:29,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-07-01 16:36:29,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-07-01 16:36:29,018 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:36:29,018 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:36:29,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:36:29,026 [DEBUG][       Thread-610753][   transport.py][1871] : EOF in transport thread
2025-07-01 16:36:37,176 [DEBUG][Thread-610756 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:36:38,945 [DEBUG][Thread-610757 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:36:39,028 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:36:39,028 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:36:39,028 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:36:39,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-07-01 16:36:39,539 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 36, 5), 10.75, 48.22, 0.0, 23.64, 13.49, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:36:39,539 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:36:05
2025-07-01 16:36:39,631 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:36:39,635 [DEBUG][       Thread-610758][   transport.py][1871] : starting thread (client mode): 0x82b3a90
2025-07-01 16:36:39,635 [DEBUG][       Thread-610758][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:36:39,656 [DEBUG][       Thread-610758][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:36:39,656 [ INFO][       Thread-610758][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:36:39,659 [DEBUG][       Thread-610758][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:36:39,659 [DEBUG][       Thread-610758][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:36:39,659 [DEBUG][       Thread-610758][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:36:39,659 [DEBUG][       Thread-610758][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:36:39,659 [DEBUG][       Thread-610758][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:36:39,659 [DEBUG][       Thread-610758][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:36:39,659 [DEBUG][       Thread-610758][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:36:39,659 [DEBUG][       Thread-610758][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:36:39,659 [DEBUG][       Thread-610758][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:36:39,659 [DEBUG][       Thread-610758][   transport.py][1871] : client lang: <none>
2025-07-01 16:36:39,659 [DEBUG][       Thread-610758][   transport.py][1871] : server lang: <none>
2025-07-01 16:36:39,659 [DEBUG][       Thread-610758][   transport.py][1871] : kex follows: False
2025-07-01 16:36:39,659 [DEBUG][       Thread-610758][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:36:39,659 [DEBUG][       Thread-610758][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:36:39,659 [DEBUG][       Thread-610758][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:36:39,659 [DEBUG][       Thread-610758][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:36:39,659 [DEBUG][       Thread-610758][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:36:39,659 [DEBUG][       Thread-610758][   transport.py][1871] : Compression: none
2025-07-01 16:36:39,659 [DEBUG][       Thread-610758][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:36:39,674 [DEBUG][       Thread-610758][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:36:39,674 [DEBUG][       Thread-610758][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:36:39,674 [DEBUG][       Thread-610758][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:36:39,674 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:36:39,675 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:36:39,675 [DEBUG][       Thread-610758][   transport.py][1871] : userauth is OK
2025-07-01 16:36:39,699 [ INFO][       Thread-610758][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:36:39,699 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:36:40,325 [DEBUG][       Thread-610758][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:36:40,325 [DEBUG][       Thread-610758][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:36:40,369 [DEBUG][       Thread-610758][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:36:40,369 [DEBUG][       Thread-610758][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:36:40,371 [DEBUG][       Thread-610758][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:36:40,383 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:36:40,383 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:36:40,385 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:36:40,386 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:36:40,389 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:36:40,390 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:36:40,390 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:36:40,390 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:36:40,390 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.608619 -999.00  +13.30  39.58     52   +3.80 1 2 2 1 1   887    0 8.51 -38.32 ----- 42.6 39.6 43.8 56.0 14.5 -21.0 14.3 -20.8 14.2 -19.6 14.5 -19.9
2025-07-01 16:36:40,390 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:36:40,390 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:36:40,390 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.608619
2025-07-01 16:36:40,390 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:36:40,390 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:36:40,390 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:36:40,390 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:36:40,390 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:36:40,390 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:36:05', tmtdew=10.75, humidity=48.22, cloud=0.0, wind=23.64, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:36:24.682', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:36:40,391 [DEBUG][       Thread-610758][   transport.py][1871] : EOF in transport thread
2025-07-01 16:36:40,465 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:36:40,474 [DEBUG][       Thread-610761][   transport.py][1871] : starting thread (client mode): 0x827d540
2025-07-01 16:36:40,474 [DEBUG][       Thread-610761][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:36:40,492 [DEBUG][       Thread-610761][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:36:40,492 [ INFO][       Thread-610761][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:36:40,501 [DEBUG][       Thread-610761][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:36:40,501 [DEBUG][       Thread-610761][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:36:40,501 [DEBUG][       Thread-610761][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:36:40,501 [DEBUG][       Thread-610761][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:36:40,501 [DEBUG][       Thread-610761][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:36:40,501 [DEBUG][       Thread-610761][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:36:40,501 [DEBUG][       Thread-610761][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:36:40,501 [DEBUG][       Thread-610761][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:36:40,501 [DEBUG][       Thread-610761][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:36:40,501 [DEBUG][       Thread-610761][   transport.py][1871] : client lang: <none>
2025-07-01 16:36:40,501 [DEBUG][       Thread-610761][   transport.py][1871] : server lang: <none>
2025-07-01 16:36:40,501 [DEBUG][       Thread-610761][   transport.py][1871] : kex follows: False
2025-07-01 16:36:40,501 [DEBUG][       Thread-610761][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:36:40,501 [DEBUG][       Thread-610761][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:36:40,501 [DEBUG][       Thread-610761][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:36:40,501 [DEBUG][       Thread-610761][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:36:40,501 [DEBUG][       Thread-610761][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:36:40,501 [DEBUG][       Thread-610761][   transport.py][1871] : Compression: none
2025-07-01 16:36:40,501 [DEBUG][       Thread-610761][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:36:40,556 [DEBUG][       Thread-610761][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:36:40,556 [DEBUG][       Thread-610761][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:36:40,557 [DEBUG][       Thread-610761][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:36:40,557 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:36:40,557 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:36:40,613 [DEBUG][       Thread-610761][   transport.py][1871] : userauth is OK
2025-07-01 16:36:40,614 [DEBUG][       Thread-610761][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:36:40,614 [DEBUG][       Thread-610761][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:36:40,614 [DEBUG][       Thread-610761][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:36:40,614 [DEBUG][       Thread-610761][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:36:40,628 [ INFO][       Thread-610761][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:36:40,628 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:36:40,628 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:36:41,684 [DEBUG][       Thread-610761][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:36:41,684 [DEBUG][       Thread-610761][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:36:41,735 [DEBUG][       Thread-610761][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:36:41,736 [DEBUG][       Thread-610761][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:36:41,744 [DEBUG][       Thread-610761][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:36:41,754 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:36:41,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-07-01 16:36:41,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-07-01 16:36:41,771 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:36:41,771 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:36:41,771 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:36:41,779 [DEBUG][       Thread-610761][   transport.py][1871] : EOF in transport thread
2025-07-01 16:36:46,202 [DEBUG][Thread-610763 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:36:51,780 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:36:51,780 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:36:51,780 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:36:51,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-07-01 16:36:52,295 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 36, 37), 10.78, 48.25, 0.0, 38.38, 13.49, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:36:52,295 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:36:37
2025-07-01 16:36:52,383 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:36:52,388 [DEBUG][       Thread-610764][   transport.py][1871] : starting thread (client mode): 0x818ece0
2025-07-01 16:36:52,388 [DEBUG][       Thread-610764][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:36:52,409 [DEBUG][       Thread-610764][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:36:52,409 [ INFO][       Thread-610764][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:36:52,412 [DEBUG][       Thread-610764][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:36:52,412 [DEBUG][       Thread-610764][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:36:52,412 [DEBUG][       Thread-610764][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:36:52,412 [DEBUG][       Thread-610764][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:36:52,412 [DEBUG][       Thread-610764][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:36:52,412 [DEBUG][       Thread-610764][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:36:52,412 [DEBUG][       Thread-610764][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:36:52,412 [DEBUG][       Thread-610764][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:36:52,412 [DEBUG][       Thread-610764][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:36:52,412 [DEBUG][       Thread-610764][   transport.py][1871] : client lang: <none>
2025-07-01 16:36:52,412 [DEBUG][       Thread-610764][   transport.py][1871] : server lang: <none>
2025-07-01 16:36:52,412 [DEBUG][       Thread-610764][   transport.py][1871] : kex follows: False
2025-07-01 16:36:52,412 [DEBUG][       Thread-610764][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:36:52,412 [DEBUG][       Thread-610764][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:36:52,412 [DEBUG][       Thread-610764][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:36:52,412 [DEBUG][       Thread-610764][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:36:52,412 [DEBUG][       Thread-610764][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:36:52,412 [DEBUG][       Thread-610764][   transport.py][1871] : Compression: none
2025-07-01 16:36:52,412 [DEBUG][       Thread-610764][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:36:52,428 [DEBUG][       Thread-610764][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:36:52,428 [DEBUG][       Thread-610764][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:36:52,428 [DEBUG][       Thread-610764][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:36:52,428 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:36:52,428 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:36:52,429 [DEBUG][       Thread-610764][   transport.py][1871] : userauth is OK
2025-07-01 16:36:52,452 [ INFO][       Thread-610764][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:36:52,453 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:36:53,037 [DEBUG][       Thread-610764][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:36:53,037 [DEBUG][       Thread-610764][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:36:53,080 [DEBUG][       Thread-610764][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:36:53,081 [DEBUG][       Thread-610764][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:36:53,083 [DEBUG][       Thread-610764][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:36:53,094 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:36:53,094 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:36:53,095 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:36:53,097 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:36:53,099 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:36:53,100 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:36:53,100 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:36:53,100 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:36:53,100 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.608619 -999.00  +13.30  39.58     52   +3.80 1 2 2 1 1   887    0 8.51 -38.32 ----- 42.6 39.6 43.8 56.0 14.5 -21.0 14.3 -20.8 14.2 -19.6 14.5 -19.9
2025-07-01 16:36:53,100 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:36:53,100 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:36:53,100 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.608619
2025-07-01 16:36:53,101 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:36:53,101 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:36:53,101 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:36:53,101 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:36:53,101 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:36:53,101 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:36:37', tmtdew=10.78, humidity=48.25, cloud=0.0, wind=38.38, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:36:24.682', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:36:53,101 [DEBUG][       Thread-610764][   transport.py][1871] : EOF in transport thread
2025-07-01 16:36:53,175 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:36:53,187 [DEBUG][       Thread-610767][   transport.py][1871] : starting thread (client mode): 0x82b31f0
2025-07-01 16:36:53,187 [DEBUG][       Thread-610767][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:36:53,202 [DEBUG][       Thread-610767][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:36:53,202 [ INFO][       Thread-610767][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:36:53,209 [DEBUG][       Thread-610767][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:36:53,209 [DEBUG][       Thread-610767][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:36:53,209 [DEBUG][       Thread-610767][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:36:53,209 [DEBUG][       Thread-610767][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:36:53,209 [DEBUG][       Thread-610767][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:36:53,209 [DEBUG][       Thread-610767][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:36:53,209 [DEBUG][       Thread-610767][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:36:53,209 [DEBUG][       Thread-610767][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:36:53,209 [DEBUG][       Thread-610767][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:36:53,209 [DEBUG][       Thread-610767][   transport.py][1871] : client lang: <none>
2025-07-01 16:36:53,209 [DEBUG][       Thread-610767][   transport.py][1871] : server lang: <none>
2025-07-01 16:36:53,209 [DEBUG][       Thread-610767][   transport.py][1871] : kex follows: False
2025-07-01 16:36:53,209 [DEBUG][       Thread-610767][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:36:53,209 [DEBUG][       Thread-610767][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:36:53,209 [DEBUG][       Thread-610767][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:36:53,209 [DEBUG][       Thread-610767][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:36:53,209 [DEBUG][       Thread-610767][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:36:53,209 [DEBUG][       Thread-610767][   transport.py][1871] : Compression: none
2025-07-01 16:36:53,209 [DEBUG][       Thread-610767][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:36:53,264 [DEBUG][       Thread-610767][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:36:53,264 [DEBUG][       Thread-610767][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:36:53,264 [DEBUG][       Thread-610767][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:36:53,264 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:36:53,264 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:36:53,321 [DEBUG][       Thread-610767][   transport.py][1871] : userauth is OK
2025-07-01 16:36:53,322 [DEBUG][       Thread-610767][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:36:53,322 [DEBUG][       Thread-610767][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:36:53,322 [DEBUG][       Thread-610767][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:36:53,322 [DEBUG][       Thread-610767][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:36:53,335 [ INFO][       Thread-610767][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:36:53,335 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:36:53,335 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:36:54,306 [DEBUG][       Thread-610767][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:36:54,306 [DEBUG][       Thread-610767][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:36:54,355 [DEBUG][       Thread-610767][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:36:54,355 [DEBUG][       Thread-610767][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:36:54,363 [DEBUG][       Thread-610767][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:36:54,371 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:36:54,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-07-01 16:36:54,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') -> 00000000
2025-07-01 16:36:54,387 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:36:54,387 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:36:54,387 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:36:54,395 [DEBUG][       Thread-610767][   transport.py][1871] : EOF in transport thread
2025-07-01 16:36:55,220 [DEBUG][Thread-610769 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:37:04,247 [DEBUG][Thread-610770 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:37:04,397 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:37:04,397 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:37:04,398 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:37:04,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-07-01 16:37:04,883 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 36, 37), 10.78, 48.25, 0.0, 38.38, 13.49, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:37:04,883 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:36:37
2025-07-01 16:37:04,969 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:37:04,973 [DEBUG][       Thread-610771][   transport.py][1871] : starting thread (client mode): 0x81e77f0
2025-07-01 16:37:04,973 [DEBUG][       Thread-610771][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:37:04,994 [DEBUG][       Thread-610771][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:37:04,994 [ INFO][       Thread-610771][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:37:04,996 [DEBUG][       Thread-610771][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:37:04,996 [DEBUG][       Thread-610771][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:37:04,996 [DEBUG][       Thread-610771][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:37:04,996 [DEBUG][       Thread-610771][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:37:04,996 [DEBUG][       Thread-610771][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:37:04,996 [DEBUG][       Thread-610771][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:37:04,996 [DEBUG][       Thread-610771][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:37:04,996 [DEBUG][       Thread-610771][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:37:04,996 [DEBUG][       Thread-610771][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:37:04,996 [DEBUG][       Thread-610771][   transport.py][1871] : client lang: <none>
2025-07-01 16:37:04,996 [DEBUG][       Thread-610771][   transport.py][1871] : server lang: <none>
2025-07-01 16:37:04,996 [DEBUG][       Thread-610771][   transport.py][1871] : kex follows: False
2025-07-01 16:37:04,996 [DEBUG][       Thread-610771][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:37:04,996 [DEBUG][       Thread-610771][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:37:04,996 [DEBUG][       Thread-610771][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:37:04,996 [DEBUG][       Thread-610771][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:37:04,996 [DEBUG][       Thread-610771][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:37:04,996 [DEBUG][       Thread-610771][   transport.py][1871] : Compression: none
2025-07-01 16:37:04,996 [DEBUG][       Thread-610771][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:37:05,011 [DEBUG][       Thread-610771][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:37:05,012 [DEBUG][       Thread-610771][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:37:05,012 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:37:05,013 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:37:05,013 [DEBUG][       Thread-610771][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:37:05,013 [DEBUG][       Thread-610771][   transport.py][1871] : userauth is OK
2025-07-01 16:37:05,038 [ INFO][       Thread-610771][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:37:05,038 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:37:05,688 [DEBUG][       Thread-610771][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:37:05,688 [DEBUG][       Thread-610771][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:37:05,729 [DEBUG][       Thread-610771][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:37:05,729 [DEBUG][       Thread-610771][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:37:05,732 [DEBUG][       Thread-610771][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:37:05,744 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:37:05,744 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:37:05,746 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:37:05,748 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:37:05,752 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:37:05,754 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:37:05,754 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:37:05,755 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:37:05,755 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.608619 -999.00  +13.30  39.58     52   +3.80 1 2 2 1 1   887    0 8.51 -38.32 ----- 42.6 39.6 43.8 56.0 14.5 -21.0 14.3 -20.8 14.2 -19.6 14.5 -19.9
2025-07-01 16:37:05,755 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:37:05,755 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:37:05,755 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.608619
2025-07-01 16:37:05,756 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:37:05,756 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:37:05,756 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:37:05,756 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:37:05,756 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:37:05,757 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:36:37', tmtdew=10.78, humidity=48.25, cloud=0.0, wind=38.38, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:36:24.682', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:37:05,757 [DEBUG][       Thread-610771][   transport.py][1871] : EOF in transport thread
2025-07-01 16:37:05,842 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:37:05,858 [DEBUG][       Thread-610774][   transport.py][1871] : starting thread (client mode): 0x81da3b0
2025-07-01 16:37:05,858 [DEBUG][       Thread-610774][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:37:05,873 [DEBUG][       Thread-610774][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:37:05,873 [ INFO][       Thread-610774][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:37:05,881 [DEBUG][       Thread-610774][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:37:05,881 [DEBUG][       Thread-610774][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:37:05,881 [DEBUG][       Thread-610774][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:37:05,881 [DEBUG][       Thread-610774][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:37:05,881 [DEBUG][       Thread-610774][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:37:05,881 [DEBUG][       Thread-610774][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:37:05,881 [DEBUG][       Thread-610774][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:37:05,881 [DEBUG][       Thread-610774][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:37:05,881 [DEBUG][       Thread-610774][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:37:05,882 [DEBUG][       Thread-610774][   transport.py][1871] : client lang: <none>
2025-07-01 16:37:05,882 [DEBUG][       Thread-610774][   transport.py][1871] : server lang: <none>
2025-07-01 16:37:05,882 [DEBUG][       Thread-610774][   transport.py][1871] : kex follows: False
2025-07-01 16:37:05,882 [DEBUG][       Thread-610774][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:37:05,882 [DEBUG][       Thread-610774][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:37:05,882 [DEBUG][       Thread-610774][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:37:05,882 [DEBUG][       Thread-610774][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:37:05,882 [DEBUG][       Thread-610774][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:37:05,882 [DEBUG][       Thread-610774][   transport.py][1871] : Compression: none
2025-07-01 16:37:05,882 [DEBUG][       Thread-610774][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:37:05,942 [DEBUG][       Thread-610774][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:37:05,942 [DEBUG][       Thread-610774][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:37:05,942 [DEBUG][       Thread-610774][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:37:05,942 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:37:05,942 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:37:05,999 [DEBUG][       Thread-610774][   transport.py][1871] : userauth is OK
2025-07-01 16:37:05,999 [DEBUG][       Thread-610774][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:37:05,999 [DEBUG][       Thread-610774][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:37:05,999 [DEBUG][       Thread-610774][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:37:05,999 [DEBUG][       Thread-610774][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:37:06,015 [ INFO][       Thread-610774][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:37:06,015 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:37:06,016 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:37:07,029 [DEBUG][       Thread-610774][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:37:07,030 [DEBUG][       Thread-610774][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:37:07,082 [DEBUG][       Thread-610774][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:37:07,082 [DEBUG][       Thread-610774][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:37:07,091 [DEBUG][       Thread-610774][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:37:07,100 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:37:07,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')
2025-07-01 16:37:07,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-07-01 16:37:07,118 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:37:07,119 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:37:07,119 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:37:07,127 [DEBUG][       Thread-610774][   transport.py][1871] : EOF in transport thread
2025-07-01 16:37:13,268 [DEBUG][Thread-610776 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:37:17,130 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:37:17,130 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:37:17,130 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:37:17,133 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:37:17,620 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 37, 10), 10.78, 48.24, 0.0, 26.73, 13.49, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:37:17,620 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:37:10
2025-07-01 16:37:17,707 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:37:17,712 [DEBUG][       Thread-610777][   transport.py][1871] : starting thread (client mode): 0x81da740
2025-07-01 16:37:17,712 [DEBUG][       Thread-610777][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:37:17,736 [DEBUG][       Thread-610777][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:37:17,736 [ INFO][       Thread-610777][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:37:17,740 [DEBUG][       Thread-610777][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:37:17,740 [DEBUG][       Thread-610777][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:37:17,740 [DEBUG][       Thread-610777][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:37:17,740 [DEBUG][       Thread-610777][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:37:17,740 [DEBUG][       Thread-610777][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:37:17,740 [DEBUG][       Thread-610777][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:37:17,740 [DEBUG][       Thread-610777][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:37:17,740 [DEBUG][       Thread-610777][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:37:17,740 [DEBUG][       Thread-610777][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:37:17,740 [DEBUG][       Thread-610777][   transport.py][1871] : client lang: <none>
2025-07-01 16:37:17,740 [DEBUG][       Thread-610777][   transport.py][1871] : server lang: <none>
2025-07-01 16:37:17,740 [DEBUG][       Thread-610777][   transport.py][1871] : kex follows: False
2025-07-01 16:37:17,740 [DEBUG][       Thread-610777][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:37:17,740 [DEBUG][       Thread-610777][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:37:17,740 [DEBUG][       Thread-610777][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:37:17,740 [DEBUG][       Thread-610777][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:37:17,740 [DEBUG][       Thread-610777][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:37:17,740 [DEBUG][       Thread-610777][   transport.py][1871] : Compression: none
2025-07-01 16:37:17,740 [DEBUG][       Thread-610777][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:37:17,758 [DEBUG][       Thread-610777][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:37:17,758 [DEBUG][       Thread-610777][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:37:17,759 [DEBUG][       Thread-610777][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:37:17,759 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:37:17,759 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:37:17,760 [DEBUG][       Thread-610777][   transport.py][1871] : userauth is OK
2025-07-01 16:37:17,773 [ INFO][       Thread-610777][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:37:17,773 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:37:18,427 [DEBUG][       Thread-610777][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:37:18,427 [DEBUG][       Thread-610777][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:37:18,469 [DEBUG][       Thread-610777][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:37:18,469 [DEBUG][       Thread-610777][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:37:18,471 [DEBUG][       Thread-610777][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:37:18,485 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:37:18,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:37:18,486 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:37:18,487 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:37:18,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:37:18,491 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:37:18,491 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:37:18,492 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:37:18,492 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.608966 -999.00  +13.30  40.40     52   +3.80 1 2 2 1 1   887    0 8.55 -40.31 ----- 32.9 40.4 23.0 50.1 14.5 -20.9 14.3 -20.6 14.2 -19.5 14.6 -19.7
2025-07-01 16:37:18,492 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:37:18,492 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:37:18,492 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.608966
2025-07-01 16:37:18,492 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:37:18,492 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:37:18,492 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:37:18,492 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:37:18,492 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:37:18,492 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:37:10', tmtdew=10.78, humidity=48.24, cloud=0.0, wind=26.73, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:36:54.662', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:37:18,493 [DEBUG][       Thread-610777][   transport.py][1871] : EOF in transport thread
2025-07-01 16:37:18,564 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:37:18,575 [DEBUG][       Thread-610780][   transport.py][1871] : starting thread (client mode): 0x82b1c00
2025-07-01 16:37:18,576 [DEBUG][       Thread-610780][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:37:18,590 [DEBUG][       Thread-610780][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:37:18,590 [ INFO][       Thread-610780][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:37:18,598 [DEBUG][       Thread-610780][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:37:18,598 [DEBUG][       Thread-610780][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:37:18,598 [DEBUG][       Thread-610780][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:37:18,598 [DEBUG][       Thread-610780][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:37:18,598 [DEBUG][       Thread-610780][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:37:18,598 [DEBUG][       Thread-610780][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:37:18,598 [DEBUG][       Thread-610780][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:37:18,598 [DEBUG][       Thread-610780][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:37:18,598 [DEBUG][       Thread-610780][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:37:18,598 [DEBUG][       Thread-610780][   transport.py][1871] : client lang: <none>
2025-07-01 16:37:18,598 [DEBUG][       Thread-610780][   transport.py][1871] : server lang: <none>
2025-07-01 16:37:18,598 [DEBUG][       Thread-610780][   transport.py][1871] : kex follows: False
2025-07-01 16:37:18,598 [DEBUG][       Thread-610780][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:37:18,599 [DEBUG][       Thread-610780][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:37:18,599 [DEBUG][       Thread-610780][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:37:18,599 [DEBUG][       Thread-610780][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:37:18,599 [DEBUG][       Thread-610780][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:37:18,599 [DEBUG][       Thread-610780][   transport.py][1871] : Compression: none
2025-07-01 16:37:18,599 [DEBUG][       Thread-610780][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:37:18,655 [DEBUG][       Thread-610780][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:37:18,655 [DEBUG][       Thread-610780][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:37:18,665 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:37:18,665 [DEBUG][       Thread-610780][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:37:18,666 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:37:18,711 [DEBUG][       Thread-610780][   transport.py][1871] : userauth is OK
2025-07-01 16:37:18,711 [DEBUG][       Thread-610780][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:37:18,711 [DEBUG][       Thread-610780][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:37:18,711 [DEBUG][       Thread-610780][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:37:18,711 [DEBUG][       Thread-610780][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:37:18,730 [ INFO][       Thread-610780][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:37:18,730 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:37:18,731 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:37:19,762 [DEBUG][       Thread-610780][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:37:19,763 [DEBUG][       Thread-610780][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:37:19,812 [DEBUG][       Thread-610780][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:37:19,812 [DEBUG][       Thread-610780][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:37:19,821 [DEBUG][       Thread-610780][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:37:19,831 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:37:19,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-07-01 16:37:19,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-07-01 16:37:19,849 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:37:19,849 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:37:19,850 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:37:19,858 [DEBUG][       Thread-610780][   transport.py][1871] : EOF in transport thread
2025-07-01 16:37:22,288 [DEBUG][Thread-610782 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:37:29,860 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:37:29,860 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:37:29,860 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:37:29,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-07-01 16:37:30,364 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 37, 10), 10.78, 48.24, 0.0, 26.73, 13.49, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:37:30,364 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:37:10
2025-07-01 16:37:30,454 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:37:30,458 [DEBUG][       Thread-610783][   transport.py][1871] : starting thread (client mode): 0x82b15a0
2025-07-01 16:37:30,458 [DEBUG][       Thread-610783][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:37:30,477 [DEBUG][       Thread-610783][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:37:30,477 [ INFO][       Thread-610783][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:37:30,479 [DEBUG][       Thread-610783][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:37:30,479 [DEBUG][       Thread-610783][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:37:30,479 [DEBUG][       Thread-610783][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:37:30,479 [DEBUG][       Thread-610783][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:37:30,479 [DEBUG][       Thread-610783][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:37:30,479 [DEBUG][       Thread-610783][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:37:30,479 [DEBUG][       Thread-610783][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:37:30,479 [DEBUG][       Thread-610783][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:37:30,479 [DEBUG][       Thread-610783][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:37:30,479 [DEBUG][       Thread-610783][   transport.py][1871] : client lang: <none>
2025-07-01 16:37:30,479 [DEBUG][       Thread-610783][   transport.py][1871] : server lang: <none>
2025-07-01 16:37:30,479 [DEBUG][       Thread-610783][   transport.py][1871] : kex follows: False
2025-07-01 16:37:30,479 [DEBUG][       Thread-610783][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:37:30,479 [DEBUG][       Thread-610783][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:37:30,479 [DEBUG][       Thread-610783][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:37:30,479 [DEBUG][       Thread-610783][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:37:30,479 [DEBUG][       Thread-610783][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:37:30,479 [DEBUG][       Thread-610783][   transport.py][1871] : Compression: none
2025-07-01 16:37:30,479 [DEBUG][       Thread-610783][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:37:30,491 [DEBUG][       Thread-610783][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:37:30,491 [DEBUG][       Thread-610783][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:37:30,491 [DEBUG][       Thread-610783][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:37:30,492 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:37:30,492 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:37:30,492 [DEBUG][       Thread-610783][   transport.py][1871] : userauth is OK
2025-07-01 16:37:30,516 [ INFO][       Thread-610783][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:37:30,516 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:37:31,174 [DEBUG][       Thread-610783][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:37:31,174 [DEBUG][       Thread-610783][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:37:31,217 [DEBUG][       Thread-610783][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:37:31,217 [DEBUG][       Thread-610783][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:37:31,219 [DEBUG][       Thread-610783][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:37:31,230 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:37:31,230 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:37:31,231 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:37:31,232 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:37:31,235 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:37:31,236 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:37:31,236 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:37:31,236 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:37:31,236 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.608966 -999.00  +13.30  40.40     52   +3.80 1 2 2 1 1   887    0 8.55 -40.31 ----- 32.9 40.4 23.0 50.1 14.5 -20.9 14.3 -20.6 14.2 -19.5 14.6 -19.7
2025-07-01 16:37:31,236 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:37:31,236 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:37:31,236 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.608966
2025-07-01 16:37:31,236 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:37:31,237 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:37:31,237 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:37:31,237 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:37:31,237 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:37:31,237 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:37:10', tmtdew=10.78, humidity=48.24, cloud=0.0, wind=26.73, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:36:54.662', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:37:31,237 [DEBUG][       Thread-610783][   transport.py][1871] : EOF in transport thread
2025-07-01 16:37:31,309 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:37:31,319 [DEBUG][Thread-610786 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:37:31,321 [DEBUG][       Thread-610787][   transport.py][1871] : starting thread (client mode): 0x75aa650
2025-07-01 16:37:31,321 [DEBUG][       Thread-610787][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:37:31,336 [DEBUG][       Thread-610787][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:37:31,336 [ INFO][       Thread-610787][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:37:31,343 [DEBUG][       Thread-610787][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:37:31,343 [DEBUG][       Thread-610787][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:37:31,343 [DEBUG][       Thread-610787][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:37:31,343 [DEBUG][       Thread-610787][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:37:31,343 [DEBUG][       Thread-610787][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:37:31,343 [DEBUG][       Thread-610787][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:37:31,343 [DEBUG][       Thread-610787][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:37:31,343 [DEBUG][       Thread-610787][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:37:31,343 [DEBUG][       Thread-610787][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:37:31,343 [DEBUG][       Thread-610787][   transport.py][1871] : client lang: <none>
2025-07-01 16:37:31,343 [DEBUG][       Thread-610787][   transport.py][1871] : server lang: <none>
2025-07-01 16:37:31,343 [DEBUG][       Thread-610787][   transport.py][1871] : kex follows: False
2025-07-01 16:37:31,343 [DEBUG][       Thread-610787][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:37:31,343 [DEBUG][       Thread-610787][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:37:31,343 [DEBUG][       Thread-610787][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:37:31,343 [DEBUG][       Thread-610787][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:37:31,343 [DEBUG][       Thread-610787][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:37:31,343 [DEBUG][       Thread-610787][   transport.py][1871] : Compression: none
2025-07-01 16:37:31,343 [DEBUG][       Thread-610787][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:37:31,405 [DEBUG][       Thread-610787][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:37:31,405 [DEBUG][       Thread-610787][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:37:31,405 [DEBUG][       Thread-610787][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:37:31,405 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:37:31,405 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:37:31,472 [DEBUG][       Thread-610787][   transport.py][1871] : userauth is OK
2025-07-01 16:37:31,472 [DEBUG][       Thread-610787][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:37:31,472 [DEBUG][       Thread-610787][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:37:31,472 [DEBUG][       Thread-610787][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:37:31,472 [DEBUG][       Thread-610787][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:37:31,486 [ INFO][       Thread-610787][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:37:31,486 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:37:31,486 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:37:32,491 [DEBUG][       Thread-610787][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:37:32,491 [DEBUG][       Thread-610787][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:37:32,539 [DEBUG][       Thread-610787][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:37:32,539 [DEBUG][       Thread-610787][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:37:32,547 [DEBUG][       Thread-610787][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:37:32,555 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:37:32,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-07-01 16:37:32,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-07-01 16:37:32,571 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:37:32,571 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:37:32,571 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:37:32,579 [DEBUG][       Thread-610787][   transport.py][1871] : EOF in transport thread
2025-07-01 16:37:38,975 [DEBUG][Thread-610789 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:37:40,339 [DEBUG][Thread-610790 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:37:42,573 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:37:42,573 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:37:42,573 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:37:42,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-07-01 16:37:43,076 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 37, 10), 10.78, 48.24, 0.0, 26.73, 13.49, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:37:43,076 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:37:10
2025-07-01 16:37:43,169 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:37:43,173 [DEBUG][       Thread-610791][   transport.py][1871] : starting thread (client mode): 0x82b2380
2025-07-01 16:37:43,173 [DEBUG][       Thread-610791][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:37:43,194 [DEBUG][       Thread-610791][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:37:43,194 [ INFO][       Thread-610791][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:37:43,197 [DEBUG][       Thread-610791][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:37:43,197 [DEBUG][       Thread-610791][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:37:43,197 [DEBUG][       Thread-610791][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:37:43,197 [DEBUG][       Thread-610791][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:37:43,197 [DEBUG][       Thread-610791][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:37:43,197 [DEBUG][       Thread-610791][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:37:43,197 [DEBUG][       Thread-610791][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:37:43,197 [DEBUG][       Thread-610791][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:37:43,197 [DEBUG][       Thread-610791][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:37:43,197 [DEBUG][       Thread-610791][   transport.py][1871] : client lang: <none>
2025-07-01 16:37:43,197 [DEBUG][       Thread-610791][   transport.py][1871] : server lang: <none>
2025-07-01 16:37:43,197 [DEBUG][       Thread-610791][   transport.py][1871] : kex follows: False
2025-07-01 16:37:43,197 [DEBUG][       Thread-610791][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:37:43,197 [DEBUG][       Thread-610791][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:37:43,197 [DEBUG][       Thread-610791][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:37:43,197 [DEBUG][       Thread-610791][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:37:43,197 [DEBUG][       Thread-610791][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:37:43,197 [DEBUG][       Thread-610791][   transport.py][1871] : Compression: none
2025-07-01 16:37:43,197 [DEBUG][       Thread-610791][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:37:43,211 [DEBUG][       Thread-610791][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:37:43,211 [DEBUG][       Thread-610791][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:37:43,211 [DEBUG][       Thread-610791][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:37:43,211 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:37:43,211 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:37:43,212 [DEBUG][       Thread-610791][   transport.py][1871] : userauth is OK
2025-07-01 16:37:43,236 [ INFO][       Thread-610791][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:37:43,236 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:37:43,892 [DEBUG][       Thread-610791][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:37:43,892 [DEBUG][       Thread-610791][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:37:43,936 [DEBUG][       Thread-610791][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:37:43,937 [DEBUG][       Thread-610791][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:37:43,939 [DEBUG][       Thread-610791][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:37:43,951 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:37:43,951 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:37:43,953 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:37:43,953 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:37:43,956 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:37:43,957 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:37:43,957 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:37:43,957 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:37:43,957 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.609314 -999.00  +13.30  29.57     52   +3.90 1 2 1 1 1   887    0 8.85 -40.51 ----- 25.3 29.6 9.8 49.2 14.5 -20.6 14.3 -20.6 14.2 -19.6 14.5 -19.7
2025-07-01 16:37:43,957 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:37:43,957 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:37:43,957 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.609314
2025-07-01 16:37:43,957 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:37:43,957 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:37:43,957 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:37:43,957 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:37:43,957 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:37:43,957 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:37:10', tmtdew=10.78, humidity=48.24, cloud=0.0, wind=26.73, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:37:24.730', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:37:43,958 [DEBUG][       Thread-610791][   transport.py][1871] : EOF in transport thread
2025-07-01 16:37:44,032 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:37:44,041 [DEBUG][       Thread-610794][   transport.py][1871] : starting thread (client mode): 0x8156620
2025-07-01 16:37:44,041 [DEBUG][       Thread-610794][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:37:44,056 [DEBUG][       Thread-610794][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:37:44,056 [ INFO][       Thread-610794][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:37:44,071 [DEBUG][       Thread-610794][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:37:44,071 [DEBUG][       Thread-610794][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:37:44,071 [DEBUG][       Thread-610794][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:37:44,071 [DEBUG][       Thread-610794][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:37:44,071 [DEBUG][       Thread-610794][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:37:44,071 [DEBUG][       Thread-610794][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:37:44,071 [DEBUG][       Thread-610794][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:37:44,071 [DEBUG][       Thread-610794][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:37:44,071 [DEBUG][       Thread-610794][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:37:44,071 [DEBUG][       Thread-610794][   transport.py][1871] : client lang: <none>
2025-07-01 16:37:44,071 [DEBUG][       Thread-610794][   transport.py][1871] : server lang: <none>
2025-07-01 16:37:44,071 [DEBUG][       Thread-610794][   transport.py][1871] : kex follows: False
2025-07-01 16:37:44,071 [DEBUG][       Thread-610794][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:37:44,071 [DEBUG][       Thread-610794][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:37:44,071 [DEBUG][       Thread-610794][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:37:44,071 [DEBUG][       Thread-610794][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:37:44,071 [DEBUG][       Thread-610794][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:37:44,071 [DEBUG][       Thread-610794][   transport.py][1871] : Compression: none
2025-07-01 16:37:44,071 [DEBUG][       Thread-610794][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:37:44,126 [DEBUG][       Thread-610794][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:37:44,126 [DEBUG][       Thread-610794][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:37:44,126 [DEBUG][       Thread-610794][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:37:44,126 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:37:44,126 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:37:44,186 [DEBUG][       Thread-610794][   transport.py][1871] : userauth is OK
2025-07-01 16:37:44,186 [DEBUG][       Thread-610794][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:37:44,186 [DEBUG][       Thread-610794][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:37:44,186 [DEBUG][       Thread-610794][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:37:44,186 [DEBUG][       Thread-610794][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:37:44,199 [ INFO][       Thread-610794][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:37:44,200 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:37:44,200 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:37:45,254 [DEBUG][       Thread-610794][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:37:45,254 [DEBUG][       Thread-610794][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:37:45,304 [DEBUG][       Thread-610794][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:37:45,304 [DEBUG][       Thread-610794][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:37:45,314 [DEBUG][       Thread-610794][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:37:45,322 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:37:45,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-07-01 16:37:45,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-07-01 16:37:45,341 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:37:45,341 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:37:45,341 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:37:45,351 [DEBUG][       Thread-610794][   transport.py][1871] : EOF in transport thread
2025-07-01 16:37:49,360 [DEBUG][Thread-610796 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:37:55,348 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:37:55,348 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:37:55,348 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:37:55,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-07-01 16:37:55,832 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 37, 42), 10.73, 48.38, 0.0, 22.23, 13.47, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:37:55,832 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:37:42
2025-07-01 16:37:55,919 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:37:55,923 [DEBUG][       Thread-610797][   transport.py][1871] : starting thread (client mode): 0x82b1f00
2025-07-01 16:37:55,923 [DEBUG][       Thread-610797][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:37:55,943 [DEBUG][       Thread-610797][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:37:55,943 [ INFO][       Thread-610797][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:37:55,947 [DEBUG][       Thread-610797][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:37:55,947 [DEBUG][       Thread-610797][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:37:55,947 [DEBUG][       Thread-610797][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:37:55,947 [DEBUG][       Thread-610797][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:37:55,947 [DEBUG][       Thread-610797][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:37:55,947 [DEBUG][       Thread-610797][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:37:55,947 [DEBUG][       Thread-610797][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:37:55,947 [DEBUG][       Thread-610797][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:37:55,947 [DEBUG][       Thread-610797][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:37:55,947 [DEBUG][       Thread-610797][   transport.py][1871] : client lang: <none>
2025-07-01 16:37:55,947 [DEBUG][       Thread-610797][   transport.py][1871] : server lang: <none>
2025-07-01 16:37:55,947 [DEBUG][       Thread-610797][   transport.py][1871] : kex follows: False
2025-07-01 16:37:55,947 [DEBUG][       Thread-610797][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:37:55,947 [DEBUG][       Thread-610797][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:37:55,947 [DEBUG][       Thread-610797][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:37:55,947 [DEBUG][       Thread-610797][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:37:55,947 [DEBUG][       Thread-610797][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:37:55,947 [DEBUG][       Thread-610797][   transport.py][1871] : Compression: none
2025-07-01 16:37:55,947 [DEBUG][       Thread-610797][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:37:55,964 [DEBUG][       Thread-610797][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:37:55,964 [DEBUG][       Thread-610797][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:37:55,965 [DEBUG][       Thread-610797][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:37:55,965 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:37:55,965 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:37:56,009 [DEBUG][       Thread-610797][   transport.py][1871] : userauth is OK
2025-07-01 16:37:56,033 [ INFO][       Thread-610797][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:37:56,034 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:37:56,710 [DEBUG][       Thread-610797][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:37:56,710 [DEBUG][       Thread-610797][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:37:56,753 [DEBUG][       Thread-610797][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:37:56,753 [DEBUG][       Thread-610797][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:37:56,757 [DEBUG][       Thread-610797][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:37:56,768 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:37:56,769 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:37:56,771 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:37:56,773 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:37:56,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:37:56,780 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:37:56,780 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:37:56,781 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:37:56,781 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.609314 -999.00  +13.30  29.57     52   +3.90 1 2 1 1 1   887    0 8.85 -40.51 ----- 25.3 29.6 9.8 49.2 14.5 -20.6 14.3 -20.6 14.2 -19.6 14.5 -19.7
2025-07-01 16:37:56,781 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:37:56,781 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:37:56,781 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.609314
2025-07-01 16:37:56,781 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:37:56,782 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:37:56,782 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:37:56,782 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:37:56,782 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:37:56,782 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:37:42', tmtdew=10.73, humidity=48.38, cloud=0.0, wind=22.23, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:37:24.730', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:37:56,783 [DEBUG][       Thread-610797][   transport.py][1871] : EOF in transport thread
2025-07-01 16:37:56,868 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:37:56,879 [DEBUG][       Thread-610800][   transport.py][1871] : starting thread (client mode): 0x75a8ee0
2025-07-01 16:37:56,879 [DEBUG][       Thread-610800][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:37:56,896 [DEBUG][       Thread-610800][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:37:56,896 [ INFO][       Thread-610800][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:37:56,904 [DEBUG][       Thread-610800][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:37:56,904 [DEBUG][       Thread-610800][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:37:56,904 [DEBUG][       Thread-610800][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:37:56,904 [DEBUG][       Thread-610800][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:37:56,904 [DEBUG][       Thread-610800][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:37:56,904 [DEBUG][       Thread-610800][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:37:56,904 [DEBUG][       Thread-610800][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:37:56,904 [DEBUG][       Thread-610800][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:37:56,904 [DEBUG][       Thread-610800][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:37:56,904 [DEBUG][       Thread-610800][   transport.py][1871] : client lang: <none>
2025-07-01 16:37:56,904 [DEBUG][       Thread-610800][   transport.py][1871] : server lang: <none>
2025-07-01 16:37:56,904 [DEBUG][       Thread-610800][   transport.py][1871] : kex follows: False
2025-07-01 16:37:56,904 [DEBUG][       Thread-610800][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:37:56,904 [DEBUG][       Thread-610800][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:37:56,904 [DEBUG][       Thread-610800][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:37:56,904 [DEBUG][       Thread-610800][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:37:56,905 [DEBUG][       Thread-610800][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:37:56,905 [DEBUG][       Thread-610800][   transport.py][1871] : Compression: none
2025-07-01 16:37:56,905 [DEBUG][       Thread-610800][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:37:56,962 [DEBUG][       Thread-610800][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:37:56,963 [DEBUG][       Thread-610800][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:37:56,963 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:37:56,964 [DEBUG][       Thread-610800][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:37:56,964 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:37:57,018 [DEBUG][       Thread-610800][   transport.py][1871] : userauth is OK
2025-07-01 16:37:57,019 [DEBUG][       Thread-610800][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:37:57,019 [DEBUG][       Thread-610800][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:37:57,019 [DEBUG][       Thread-610800][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:37:57,019 [DEBUG][       Thread-610800][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:37:57,039 [ INFO][       Thread-610800][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:37:57,039 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:37:57,039 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:37:58,076 [DEBUG][       Thread-610800][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:37:58,077 [DEBUG][       Thread-610800][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:37:58,131 [DEBUG][       Thread-610800][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:37:58,131 [DEBUG][       Thread-610800][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:37:58,143 [DEBUG][       Thread-610800][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:37:58,152 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:37:58,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-07-01 16:37:58,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-07-01 16:37:58,170 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:37:58,171 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:37:58,171 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:37:58,179 [DEBUG][       Thread-610800][   transport.py][1871] : EOF in transport thread
2025-07-01 16:37:58,381 [DEBUG][Thread-610802 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:38:07,420 [DEBUG][Thread-610803 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:38:08,180 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:38:08,180 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:38:08,180 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:38:08,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-07-01 16:38:08,662 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 37, 42), 10.73, 48.38, 0.0, 22.23, 13.47, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:38:08,662 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:37:42
2025-07-01 16:38:08,754 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:38:08,759 [DEBUG][       Thread-610804][   transport.py][1871] : starting thread (client mode): 0x82b3d90
2025-07-01 16:38:08,759 [DEBUG][       Thread-610804][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:38:08,779 [DEBUG][       Thread-610804][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:38:08,779 [ INFO][       Thread-610804][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:38:08,783 [DEBUG][       Thread-610804][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:38:08,783 [DEBUG][       Thread-610804][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:38:08,783 [DEBUG][       Thread-610804][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:38:08,783 [DEBUG][       Thread-610804][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:38:08,783 [DEBUG][       Thread-610804][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:38:08,783 [DEBUG][       Thread-610804][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:38:08,783 [DEBUG][       Thread-610804][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:38:08,783 [DEBUG][       Thread-610804][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:38:08,783 [DEBUG][       Thread-610804][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:38:08,783 [DEBUG][       Thread-610804][   transport.py][1871] : client lang: <none>
2025-07-01 16:38:08,783 [DEBUG][       Thread-610804][   transport.py][1871] : server lang: <none>
2025-07-01 16:38:08,783 [DEBUG][       Thread-610804][   transport.py][1871] : kex follows: False
2025-07-01 16:38:08,783 [DEBUG][       Thread-610804][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:38:08,783 [DEBUG][       Thread-610804][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:38:08,783 [DEBUG][       Thread-610804][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:38:08,783 [DEBUG][       Thread-610804][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:38:08,783 [DEBUG][       Thread-610804][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:38:08,783 [DEBUG][       Thread-610804][   transport.py][1871] : Compression: none
2025-07-01 16:38:08,783 [DEBUG][       Thread-610804][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:38:08,797 [DEBUG][       Thread-610804][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:38:08,797 [DEBUG][       Thread-610804][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:38:08,797 [DEBUG][       Thread-610804][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:38:08,797 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:38:08,797 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:38:08,798 [DEBUG][       Thread-610804][   transport.py][1871] : userauth is OK
2025-07-01 16:38:08,821 [ INFO][       Thread-610804][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:38:08,822 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:38:09,451 [DEBUG][       Thread-610804][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:38:09,451 [DEBUG][       Thread-610804][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:38:09,492 [DEBUG][       Thread-610804][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:38:09,492 [DEBUG][       Thread-610804][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:38:09,495 [DEBUG][       Thread-610804][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:38:09,506 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:38:09,506 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:38:09,507 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:38:09,508 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:38:09,511 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:38:09,512 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:38:09,512 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:38:09,512 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:38:09,512 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.609314 -999.00  +13.30  29.57     52   +3.90 1 2 1 1 1   887    0 8.85 -40.51 ----- 25.3 29.6 9.8 49.2 14.5 -20.6 14.3 -20.6 14.2 -19.6 14.5 -19.7
2025-07-01 16:38:09,512 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:38:09,512 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:38:09,512 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.609314
2025-07-01 16:38:09,512 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:38:09,512 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:38:09,512 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:38:09,512 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:38:09,512 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:38:09,512 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:37:42', tmtdew=10.73, humidity=48.38, cloud=0.0, wind=22.23, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:37:24.730', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:38:09,513 [DEBUG][       Thread-610804][   transport.py][1871] : EOF in transport thread
2025-07-01 16:38:09,585 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:38:09,595 [DEBUG][       Thread-610807][   transport.py][1871] : starting thread (client mode): 0x75ab1f0
2025-07-01 16:38:09,595 [DEBUG][       Thread-610807][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:38:09,610 [DEBUG][       Thread-610807][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:38:09,610 [ INFO][       Thread-610807][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:38:09,617 [DEBUG][       Thread-610807][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:38:09,617 [DEBUG][       Thread-610807][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:38:09,617 [DEBUG][       Thread-610807][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:38:09,617 [DEBUG][       Thread-610807][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:38:09,617 [DEBUG][       Thread-610807][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:38:09,617 [DEBUG][       Thread-610807][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:38:09,618 [DEBUG][       Thread-610807][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:38:09,618 [DEBUG][       Thread-610807][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:38:09,618 [DEBUG][       Thread-610807][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:38:09,618 [DEBUG][       Thread-610807][   transport.py][1871] : client lang: <none>
2025-07-01 16:38:09,618 [DEBUG][       Thread-610807][   transport.py][1871] : server lang: <none>
2025-07-01 16:38:09,618 [DEBUG][       Thread-610807][   transport.py][1871] : kex follows: False
2025-07-01 16:38:09,618 [DEBUG][       Thread-610807][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:38:09,618 [DEBUG][       Thread-610807][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:38:09,618 [DEBUG][       Thread-610807][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:38:09,618 [DEBUG][       Thread-610807][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:38:09,618 [DEBUG][       Thread-610807][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:38:09,618 [DEBUG][       Thread-610807][   transport.py][1871] : Compression: none
2025-07-01 16:38:09,618 [DEBUG][       Thread-610807][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:38:09,673 [DEBUG][       Thread-610807][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:38:09,673 [DEBUG][       Thread-610807][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:38:09,673 [DEBUG][       Thread-610807][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:38:09,673 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:38:09,673 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:38:09,730 [DEBUG][       Thread-610807][   transport.py][1871] : userauth is OK
2025-07-01 16:38:09,730 [DEBUG][       Thread-610807][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:38:09,730 [DEBUG][       Thread-610807][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:38:09,730 [DEBUG][       Thread-610807][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:38:09,730 [DEBUG][       Thread-610807][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:38:09,745 [ INFO][       Thread-610807][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:38:09,745 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:38:09,745 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:38:10,772 [DEBUG][       Thread-610807][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:38:10,772 [DEBUG][       Thread-610807][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:38:10,823 [DEBUG][       Thread-610807][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:38:10,823 [DEBUG][       Thread-610807][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:38:10,831 [DEBUG][       Thread-610807][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:38:10,839 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:38:10,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-07-01 16:38:10,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-07-01 16:38:10,856 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:38:10,856 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:38:10,856 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:38:10,864 [DEBUG][       Thread-610807][   transport.py][1871] : EOF in transport thread
2025-07-01 16:38:16,440 [DEBUG][Thread-610809 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:38:20,866 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:38:20,866 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:38:20,866 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:38:20,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-07-01 16:38:21,341 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 38, 14), 10.72, 48.42, 0.0, 31.9, 13.44, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:38:21,341 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:38:14
2025-07-01 16:38:21,428 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:38:21,432 [DEBUG][       Thread-610810][   transport.py][1871] : starting thread (client mode): 0x81e7580
2025-07-01 16:38:21,432 [DEBUG][       Thread-610810][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:38:21,451 [DEBUG][       Thread-610810][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:38:21,451 [ INFO][       Thread-610810][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:38:21,453 [DEBUG][       Thread-610810][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:38:21,453 [DEBUG][       Thread-610810][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:38:21,453 [DEBUG][       Thread-610810][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:38:21,453 [DEBUG][       Thread-610810][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:38:21,453 [DEBUG][       Thread-610810][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:38:21,453 [DEBUG][       Thread-610810][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:38:21,453 [DEBUG][       Thread-610810][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:38:21,453 [DEBUG][       Thread-610810][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:38:21,453 [DEBUG][       Thread-610810][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:38:21,453 [DEBUG][       Thread-610810][   transport.py][1871] : client lang: <none>
2025-07-01 16:38:21,453 [DEBUG][       Thread-610810][   transport.py][1871] : server lang: <none>
2025-07-01 16:38:21,453 [DEBUG][       Thread-610810][   transport.py][1871] : kex follows: False
2025-07-01 16:38:21,453 [DEBUG][       Thread-610810][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:38:21,453 [DEBUG][       Thread-610810][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:38:21,453 [DEBUG][       Thread-610810][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:38:21,453 [DEBUG][       Thread-610810][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:38:21,453 [DEBUG][       Thread-610810][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:38:21,453 [DEBUG][       Thread-610810][   transport.py][1871] : Compression: none
2025-07-01 16:38:21,453 [DEBUG][       Thread-610810][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:38:21,463 [DEBUG][       Thread-610810][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:38:21,464 [DEBUG][       Thread-610810][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:38:21,464 [DEBUG][       Thread-610810][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:38:21,464 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:38:21,464 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:38:21,465 [DEBUG][       Thread-610810][   transport.py][1871] : userauth is OK
2025-07-01 16:38:21,478 [ INFO][       Thread-610810][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:38:21,479 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:38:22,143 [DEBUG][       Thread-610810][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:38:22,143 [DEBUG][       Thread-610810][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:38:22,185 [DEBUG][       Thread-610810][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:38:22,185 [DEBUG][       Thread-610810][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:38:22,189 [DEBUG][       Thread-610810][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:38:22,200 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:38:22,200 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:38:22,202 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:38:22,204 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:38:22,210 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:38:22,212 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:38:22,212 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:38:22,213 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:38:22,214 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.609661 -999.00  +13.30  37.63     52   +3.80 1 2 2 1 1   887    0 8.70 -39.93 ----- 42.1 37.6 45.8 47.7 14.5 -20.5 14.2 -20.3 14.1 -19.6 14.5 -19.7
2025-07-01 16:38:22,214 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:38:22,214 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:38:22,214 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.609661
2025-07-01 16:38:22,215 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:38:22,215 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:38:22,216 [DEBUG][       Thread-610810][   transport.py][1871] : EOF in transport thread
2025-07-01 16:38:22,216 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:38:22,216 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:38:22,216 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:38:22,217 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:38:14', tmtdew=10.72, humidity=48.42, cloud=0.0, wind=31.9, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:37:54.710', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:38:22,316 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:38:22,327 [DEBUG][       Thread-610813][   transport.py][1871] : starting thread (client mode): 0x81da500
2025-07-01 16:38:22,327 [DEBUG][       Thread-610813][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:38:22,342 [DEBUG][       Thread-610813][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:38:22,342 [ INFO][       Thread-610813][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:38:22,350 [DEBUG][       Thread-610813][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:38:22,350 [DEBUG][       Thread-610813][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:38:22,350 [DEBUG][       Thread-610813][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:38:22,350 [DEBUG][       Thread-610813][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:38:22,350 [DEBUG][       Thread-610813][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:38:22,350 [DEBUG][       Thread-610813][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:38:22,350 [DEBUG][       Thread-610813][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:38:22,350 [DEBUG][       Thread-610813][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:38:22,350 [DEBUG][       Thread-610813][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:38:22,350 [DEBUG][       Thread-610813][   transport.py][1871] : client lang: <none>
2025-07-01 16:38:22,350 [DEBUG][       Thread-610813][   transport.py][1871] : server lang: <none>
2025-07-01 16:38:22,350 [DEBUG][       Thread-610813][   transport.py][1871] : kex follows: False
2025-07-01 16:38:22,350 [DEBUG][       Thread-610813][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:38:22,350 [DEBUG][       Thread-610813][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:38:22,350 [DEBUG][       Thread-610813][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:38:22,350 [DEBUG][       Thread-610813][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:38:22,351 [DEBUG][       Thread-610813][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:38:22,351 [DEBUG][       Thread-610813][   transport.py][1871] : Compression: none
2025-07-01 16:38:22,351 [DEBUG][       Thread-610813][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:38:22,407 [DEBUG][       Thread-610813][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:38:22,407 [DEBUG][       Thread-610813][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:38:22,408 [DEBUG][       Thread-610813][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:38:22,408 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:38:22,408 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:38:22,463 [DEBUG][       Thread-610813][   transport.py][1871] : userauth is OK
2025-07-01 16:38:22,463 [DEBUG][       Thread-610813][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:38:22,463 [DEBUG][       Thread-610813][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:38:22,463 [DEBUG][       Thread-610813][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:38:22,463 [DEBUG][       Thread-610813][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:38:22,482 [ INFO][       Thread-610813][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:38:22,483 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:38:22,483 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:38:23,542 [DEBUG][       Thread-610813][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:38:23,542 [DEBUG][       Thread-610813][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:38:23,596 [DEBUG][       Thread-610813][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:38:23,596 [DEBUG][       Thread-610813][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:38:23,605 [DEBUG][       Thread-610813][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:38:23,614 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:38:23,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-07-01 16:38:23,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-07-01 16:38:23,633 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:38:23,633 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:38:23,634 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:38:23,641 [DEBUG][       Thread-610813][   transport.py][1871] : EOF in transport thread
2025-07-01 16:38:25,466 [DEBUG][Thread-610815 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:38:33,644 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:38:33,644 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:38:33,644 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:38:33,647 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:38:34,124 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 38, 14), 10.72, 48.42, 0.0, 31.9, 13.44, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:38:34,124 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:38:14
2025-07-01 16:38:34,210 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:38:34,214 [DEBUG][       Thread-610816][   transport.py][1871] : starting thread (client mode): 0x818de70
2025-07-01 16:38:34,214 [DEBUG][       Thread-610816][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:38:34,234 [DEBUG][       Thread-610816][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:38:34,234 [ INFO][       Thread-610816][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:38:34,235 [DEBUG][       Thread-610816][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:38:34,235 [DEBUG][       Thread-610816][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:38:34,235 [DEBUG][       Thread-610816][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:38:34,235 [DEBUG][       Thread-610816][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:38:34,235 [DEBUG][       Thread-610816][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:38:34,235 [DEBUG][       Thread-610816][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:38:34,235 [DEBUG][       Thread-610816][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:38:34,235 [DEBUG][       Thread-610816][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:38:34,235 [DEBUG][       Thread-610816][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:38:34,235 [DEBUG][       Thread-610816][   transport.py][1871] : client lang: <none>
2025-07-01 16:38:34,235 [DEBUG][       Thread-610816][   transport.py][1871] : server lang: <none>
2025-07-01 16:38:34,235 [DEBUG][       Thread-610816][   transport.py][1871] : kex follows: False
2025-07-01 16:38:34,235 [DEBUG][       Thread-610816][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:38:34,235 [DEBUG][       Thread-610816][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:38:34,236 [DEBUG][       Thread-610816][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:38:34,236 [DEBUG][       Thread-610816][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:38:34,236 [DEBUG][       Thread-610816][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:38:34,236 [DEBUG][       Thread-610816][   transport.py][1871] : Compression: none
2025-07-01 16:38:34,236 [DEBUG][       Thread-610816][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:38:34,244 [DEBUG][       Thread-610816][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:38:34,245 [DEBUG][       Thread-610816][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:38:34,245 [DEBUG][       Thread-610816][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:38:34,245 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:38:34,245 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:38:34,246 [DEBUG][       Thread-610816][   transport.py][1871] : userauth is OK
2025-07-01 16:38:34,270 [ INFO][       Thread-610816][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:38:34,271 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:38:34,506 [DEBUG][Thread-610818 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:38:34,911 [DEBUG][       Thread-610816][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:38:34,911 [DEBUG][       Thread-610816][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:38:34,953 [DEBUG][       Thread-610816][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:38:34,953 [DEBUG][       Thread-610816][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:38:34,956 [DEBUG][       Thread-610816][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:38:34,968 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:38:34,969 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:38:34,971 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:38:34,973 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:38:34,978 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:38:34,981 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:38:34,981 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:38:34,981 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:38:34,982 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.609661 -999.00  +13.30  37.63     52   +3.80 1 2 2 1 1   887    0 8.70 -39.93 ----- 42.1 37.6 45.8 47.7 14.5 -20.5 14.2 -20.3 14.1 -19.6 14.5 -19.7
2025-07-01 16:38:34,982 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:38:34,982 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:38:34,982 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.609661
2025-07-01 16:38:34,982 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:38:34,983 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:38:34,983 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:38:34,983 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:38:34,983 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:38:34,983 [DEBUG][       Thread-610816][   transport.py][1871] : EOF in transport thread
2025-07-01 16:38:34,983 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:38:14', tmtdew=10.72, humidity=48.42, cloud=0.0, wind=31.9, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:37:54.710', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:38:35,067 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:38:35,079 [DEBUG][       Thread-610820][   transport.py][1871] : starting thread (client mode): 0x8157a00
2025-07-01 16:38:35,079 [DEBUG][       Thread-610820][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:38:35,094 [DEBUG][       Thread-610820][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:38:35,094 [ INFO][       Thread-610820][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:38:35,101 [DEBUG][       Thread-610820][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:38:35,101 [DEBUG][       Thread-610820][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:38:35,101 [DEBUG][       Thread-610820][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:38:35,101 [DEBUG][       Thread-610820][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:38:35,101 [DEBUG][       Thread-610820][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:38:35,101 [DEBUG][       Thread-610820][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:38:35,101 [DEBUG][       Thread-610820][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:38:35,102 [DEBUG][       Thread-610820][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:38:35,102 [DEBUG][       Thread-610820][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:38:35,102 [DEBUG][       Thread-610820][   transport.py][1871] : client lang: <none>
2025-07-01 16:38:35,102 [DEBUG][       Thread-610820][   transport.py][1871] : server lang: <none>
2025-07-01 16:38:35,102 [DEBUG][       Thread-610820][   transport.py][1871] : kex follows: False
2025-07-01 16:38:35,102 [DEBUG][       Thread-610820][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:38:35,102 [DEBUG][       Thread-610820][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:38:35,102 [DEBUG][       Thread-610820][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:38:35,102 [DEBUG][       Thread-610820][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:38:35,102 [DEBUG][       Thread-610820][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:38:35,102 [DEBUG][       Thread-610820][   transport.py][1871] : Compression: none
2025-07-01 16:38:35,102 [DEBUG][       Thread-610820][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:38:35,159 [DEBUG][       Thread-610820][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:38:35,160 [DEBUG][       Thread-610820][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:38:35,161 [DEBUG][       Thread-610820][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:38:35,161 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:38:35,162 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:38:35,215 [DEBUG][       Thread-610820][   transport.py][1871] : userauth is OK
2025-07-01 16:38:35,215 [DEBUG][       Thread-610820][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:38:35,215 [DEBUG][       Thread-610820][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:38:35,215 [DEBUG][       Thread-610820][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:38:35,216 [DEBUG][       Thread-610820][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:38:35,234 [ INFO][       Thread-610820][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:38:35,234 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:38:35,235 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:38:36,257 [DEBUG][       Thread-610820][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:38:36,257 [DEBUG][       Thread-610820][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:38:36,308 [DEBUG][       Thread-610820][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:38:36,308 [DEBUG][       Thread-610820][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:38:36,317 [DEBUG][       Thread-610820][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:38:36,326 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:38:36,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-07-01 16:38:36,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') -> 00000000
2025-07-01 16:38:36,344 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:38:36,344 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:38:36,344 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:38:36,352 [DEBUG][       Thread-610820][   transport.py][1871] : EOF in transport thread
2025-07-01 16:38:39,006 [DEBUG][Thread-610822 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:38:43,527 [DEBUG][Thread-610823 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:38:46,353 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:38:46,353 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:38:46,353 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:38:46,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-07-01 16:38:46,870 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 38, 14), 10.72, 48.42, 0.0, 31.9, 13.44, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:38:46,870 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:38:14
2025-07-01 16:38:46,966 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:38:46,971 [DEBUG][       Thread-610824][   transport.py][1871] : starting thread (client mode): 0x82b2e90
2025-07-01 16:38:46,971 [DEBUG][       Thread-610824][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:38:46,983 [DEBUG][       Thread-610824][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:38:46,983 [ INFO][       Thread-610824][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:38:46,984 [DEBUG][       Thread-610824][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:38:46,984 [DEBUG][       Thread-610824][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:38:46,984 [DEBUG][       Thread-610824][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:38:46,984 [DEBUG][       Thread-610824][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:38:46,984 [DEBUG][       Thread-610824][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:38:46,984 [DEBUG][       Thread-610824][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:38:46,984 [DEBUG][       Thread-610824][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:38:46,984 [DEBUG][       Thread-610824][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:38:46,984 [DEBUG][       Thread-610824][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:38:46,984 [DEBUG][       Thread-610824][   transport.py][1871] : client lang: <none>
2025-07-01 16:38:46,984 [DEBUG][       Thread-610824][   transport.py][1871] : server lang: <none>
2025-07-01 16:38:46,984 [DEBUG][       Thread-610824][   transport.py][1871] : kex follows: False
2025-07-01 16:38:46,984 [DEBUG][       Thread-610824][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:38:46,984 [DEBUG][       Thread-610824][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:38:46,984 [DEBUG][       Thread-610824][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:38:46,984 [DEBUG][       Thread-610824][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:38:46,984 [DEBUG][       Thread-610824][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:38:46,984 [DEBUG][       Thread-610824][   transport.py][1871] : Compression: none
2025-07-01 16:38:46,984 [DEBUG][       Thread-610824][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:38:46,991 [DEBUG][       Thread-610824][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:38:46,991 [DEBUG][       Thread-610824][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:38:46,991 [DEBUG][       Thread-610824][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:38:46,991 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:38:46,991 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:38:46,992 [DEBUG][       Thread-610824][   transport.py][1871] : userauth is OK
2025-07-01 16:38:47,004 [ INFO][       Thread-610824][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:38:47,004 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:38:47,631 [DEBUG][       Thread-610824][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:38:47,631 [DEBUG][       Thread-610824][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:38:47,672 [DEBUG][       Thread-610824][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:38:47,673 [DEBUG][       Thread-610824][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:38:47,675 [DEBUG][       Thread-610824][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:38:47,687 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:38:47,687 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:38:47,688 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:38:47,689 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:38:47,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:38:47,693 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:38:47,693 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:38:47,693 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:38:47,693 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.610008 -999.00  +13.30  33.81     53   +3.90 1 2 2 1 1   887    0 8.52 -40.07 ----- 42.0 33.8 39.8 46.9 14.5 -20.4 14.3 -20.0 14.1 -19.3 14.4 -19.3
2025-07-01 16:38:47,693 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:38:47,693 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:38:47,693 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.610008
2025-07-01 16:38:47,693 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:38:47,693 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:38:47,693 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:38:47,693 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:38:47,693 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:38:47,693 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:38:14', tmtdew=10.72, humidity=48.42, cloud=0.0, wind=31.9, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:38:24.691', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:38:47,694 [DEBUG][       Thread-610824][   transport.py][1871] : EOF in transport thread
2025-07-01 16:38:47,768 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:38:47,778 [DEBUG][       Thread-610827][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 16:38:47,778 [DEBUG][       Thread-610827][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:38:47,793 [DEBUG][       Thread-610827][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:38:47,793 [ INFO][       Thread-610827][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:38:47,801 [DEBUG][       Thread-610827][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:38:47,801 [DEBUG][       Thread-610827][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:38:47,801 [DEBUG][       Thread-610827][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:38:47,801 [DEBUG][       Thread-610827][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:38:47,801 [DEBUG][       Thread-610827][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:38:47,801 [DEBUG][       Thread-610827][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:38:47,801 [DEBUG][       Thread-610827][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:38:47,801 [DEBUG][       Thread-610827][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:38:47,801 [DEBUG][       Thread-610827][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:38:47,801 [DEBUG][       Thread-610827][   transport.py][1871] : client lang: <none>
2025-07-01 16:38:47,801 [DEBUG][       Thread-610827][   transport.py][1871] : server lang: <none>
2025-07-01 16:38:47,801 [DEBUG][       Thread-610827][   transport.py][1871] : kex follows: False
2025-07-01 16:38:47,801 [DEBUG][       Thread-610827][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:38:47,801 [DEBUG][       Thread-610827][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:38:47,801 [DEBUG][       Thread-610827][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:38:47,801 [DEBUG][       Thread-610827][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:38:47,801 [DEBUG][       Thread-610827][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:38:47,801 [DEBUG][       Thread-610827][   transport.py][1871] : Compression: none
2025-07-01 16:38:47,801 [DEBUG][       Thread-610827][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:38:47,857 [DEBUG][       Thread-610827][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:38:47,857 [DEBUG][       Thread-610827][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:38:47,857 [DEBUG][       Thread-610827][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:38:47,858 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:38:47,858 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:38:47,918 [DEBUG][       Thread-610827][   transport.py][1871] : userauth is OK
2025-07-01 16:38:47,918 [DEBUG][       Thread-610827][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:38:47,919 [DEBUG][       Thread-610827][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:38:47,919 [DEBUG][       Thread-610827][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:38:47,919 [DEBUG][       Thread-610827][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:38:47,933 [ INFO][       Thread-610827][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:38:47,933 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:38:47,933 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:38:48,981 [DEBUG][       Thread-610827][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:38:48,981 [DEBUG][       Thread-610827][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:38:49,040 [DEBUG][       Thread-610827][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:38:49,040 [DEBUG][       Thread-610827][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:38:49,049 [DEBUG][       Thread-610827][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:38:49,057 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:38:49,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-07-01 16:38:49,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') -> 00000000
2025-07-01 16:38:49,073 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:38:49,073 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:38:49,073 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:38:49,081 [DEBUG][       Thread-610827][   transport.py][1871] : EOF in transport thread
2025-07-01 16:38:52,546 [DEBUG][Thread-610829 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:38:59,084 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:38:59,084 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:38:59,084 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:38:59,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-07-01 16:38:59,565 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 38, 46), 10.75, 48.31, 0.0, 33.91, 13.46, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:38:59,565 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:38:46
2025-07-01 16:38:59,650 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:38:59,657 [DEBUG][       Thread-610830][   transport.py][1871] : starting thread (client mode): 0x8170be0
2025-07-01 16:38:59,657 [DEBUG][       Thread-610830][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:38:59,678 [DEBUG][       Thread-610830][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:38:59,678 [ INFO][       Thread-610830][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:38:59,680 [DEBUG][       Thread-610830][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:38:59,680 [DEBUG][       Thread-610830][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:38:59,680 [DEBUG][       Thread-610830][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:38:59,680 [DEBUG][       Thread-610830][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:38:59,680 [DEBUG][       Thread-610830][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:38:59,680 [DEBUG][       Thread-610830][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:38:59,680 [DEBUG][       Thread-610830][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:38:59,680 [DEBUG][       Thread-610830][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:38:59,680 [DEBUG][       Thread-610830][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:38:59,680 [DEBUG][       Thread-610830][   transport.py][1871] : client lang: <none>
2025-07-01 16:38:59,680 [DEBUG][       Thread-610830][   transport.py][1871] : server lang: <none>
2025-07-01 16:38:59,680 [DEBUG][       Thread-610830][   transport.py][1871] : kex follows: False
2025-07-01 16:38:59,680 [DEBUG][       Thread-610830][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:38:59,680 [DEBUG][       Thread-610830][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:38:59,680 [DEBUG][       Thread-610830][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:38:59,680 [DEBUG][       Thread-610830][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:38:59,680 [DEBUG][       Thread-610830][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:38:59,680 [DEBUG][       Thread-610830][   transport.py][1871] : Compression: none
2025-07-01 16:38:59,680 [DEBUG][       Thread-610830][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:38:59,693 [DEBUG][       Thread-610830][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:38:59,693 [DEBUG][       Thread-610830][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:38:59,694 [DEBUG][       Thread-610830][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:38:59,694 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:38:59,694 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:38:59,695 [DEBUG][       Thread-610830][   transport.py][1871] : userauth is OK
2025-07-01 16:38:59,720 [ INFO][       Thread-610830][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:38:59,720 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:39:00,482 [DEBUG][       Thread-610830][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:39:00,482 [DEBUG][       Thread-610830][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:39:00,529 [DEBUG][       Thread-610830][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:39:00,529 [DEBUG][       Thread-610830][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:39:00,533 [DEBUG][       Thread-610830][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:39:00,544 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:39:00,545 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:39:00,546 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:39:00,549 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:39:00,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:39:00,557 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:39:00,557 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:39:00,557 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:39:00,558 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.610008 -999.00  +13.30  33.81     53   +3.90 1 2 2 1 1   887    0 8.52 -40.07 ----- 42.0 33.8 39.8 46.9 14.5 -20.4 14.3 -20.0 14.1 -19.3 14.4 -19.3
2025-07-01 16:39:00,558 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:39:00,558 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:39:00,558 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.610008
2025-07-01 16:39:00,558 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:39:00,559 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:39:00,559 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:39:00,559 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:39:00,559 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:39:00,559 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:38:46', tmtdew=10.75, humidity=48.31, cloud=0.0, wind=33.91, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:38:24.691', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:39:00,559 [DEBUG][       Thread-610830][   transport.py][1871] : EOF in transport thread
2025-07-01 16:39:00,643 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:39:00,654 [DEBUG][       Thread-610833][   transport.py][1871] : starting thread (client mode): 0x75a9f90
2025-07-01 16:39:00,654 [DEBUG][       Thread-610833][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:39:00,674 [DEBUG][       Thread-610833][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:39:00,674 [ INFO][       Thread-610833][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:39:00,681 [DEBUG][       Thread-610833][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:39:00,681 [DEBUG][       Thread-610833][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:39:00,682 [DEBUG][       Thread-610833][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:39:00,682 [DEBUG][       Thread-610833][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:39:00,682 [DEBUG][       Thread-610833][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:39:00,682 [DEBUG][       Thread-610833][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:39:00,682 [DEBUG][       Thread-610833][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:39:00,682 [DEBUG][       Thread-610833][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:39:00,682 [DEBUG][       Thread-610833][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:39:00,682 [DEBUG][       Thread-610833][   transport.py][1871] : client lang: <none>
2025-07-01 16:39:00,682 [DEBUG][       Thread-610833][   transport.py][1871] : server lang: <none>
2025-07-01 16:39:00,682 [DEBUG][       Thread-610833][   transport.py][1871] : kex follows: False
2025-07-01 16:39:00,682 [DEBUG][       Thread-610833][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:39:00,682 [DEBUG][       Thread-610833][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:39:00,682 [DEBUG][       Thread-610833][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:39:00,682 [DEBUG][       Thread-610833][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:39:00,682 [DEBUG][       Thread-610833][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:39:00,682 [DEBUG][       Thread-610833][   transport.py][1871] : Compression: none
2025-07-01 16:39:00,682 [DEBUG][       Thread-610833][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:39:00,739 [DEBUG][       Thread-610833][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:39:00,739 [DEBUG][       Thread-610833][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:39:00,740 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:39:00,740 [DEBUG][       Thread-610833][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:39:00,741 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:39:00,799 [DEBUG][       Thread-610833][   transport.py][1871] : userauth is OK
2025-07-01 16:39:00,799 [DEBUG][       Thread-610833][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:39:00,800 [DEBUG][       Thread-610833][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:39:00,800 [DEBUG][       Thread-610833][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:39:00,800 [DEBUG][       Thread-610833][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:39:00,819 [ INFO][       Thread-610833][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:39:00,819 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:39:00,820 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:39:01,569 [DEBUG][Thread-610835 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:39:01,879 [DEBUG][       Thread-610833][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:39:01,879 [DEBUG][       Thread-610833][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:39:01,928 [DEBUG][       Thread-610833][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:39:01,928 [DEBUG][       Thread-610833][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:39:01,937 [DEBUG][       Thread-610833][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:39:01,946 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:39:01,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')
2025-07-01 16:39:01,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-07-01 16:39:01,965 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:39:01,965 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:39:01,966 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:39:01,973 [DEBUG][       Thread-610833][   transport.py][1871] : EOF in transport thread
2025-07-01 16:39:10,602 [DEBUG][Thread-610836 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:39:11,970 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:39:11,970 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:39:11,970 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:39:11,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-07-01 16:39:12,451 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 38, 46), 10.75, 48.31, 0.0, 33.91, 13.46, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:39:12,451 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:38:46
2025-07-01 16:39:12,537 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:39:12,541 [DEBUG][       Thread-610837][   transport.py][1871] : starting thread (client mode): 0x82b14e0
2025-07-01 16:39:12,542 [DEBUG][       Thread-610837][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:39:12,565 [DEBUG][       Thread-610837][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:39:12,566 [ INFO][       Thread-610837][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:39:12,569 [DEBUG][       Thread-610837][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:39:12,569 [DEBUG][       Thread-610837][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:39:12,569 [DEBUG][       Thread-610837][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:39:12,569 [DEBUG][       Thread-610837][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:39:12,570 [DEBUG][       Thread-610837][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:39:12,570 [DEBUG][       Thread-610837][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:39:12,570 [DEBUG][       Thread-610837][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:39:12,570 [DEBUG][       Thread-610837][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:39:12,570 [DEBUG][       Thread-610837][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:39:12,570 [DEBUG][       Thread-610837][   transport.py][1871] : client lang: <none>
2025-07-01 16:39:12,570 [DEBUG][       Thread-610837][   transport.py][1871] : server lang: <none>
2025-07-01 16:39:12,570 [DEBUG][       Thread-610837][   transport.py][1871] : kex follows: False
2025-07-01 16:39:12,570 [DEBUG][       Thread-610837][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:39:12,570 [DEBUG][       Thread-610837][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:39:12,570 [DEBUG][       Thread-610837][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:39:12,570 [DEBUG][       Thread-610837][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:39:12,570 [DEBUG][       Thread-610837][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:39:12,570 [DEBUG][       Thread-610837][   transport.py][1871] : Compression: none
2025-07-01 16:39:12,570 [DEBUG][       Thread-610837][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:39:12,587 [DEBUG][       Thread-610837][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:39:12,587 [DEBUG][       Thread-610837][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:39:12,588 [DEBUG][       Thread-610837][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:39:12,588 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:39:12,588 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:39:12,589 [DEBUG][       Thread-610837][   transport.py][1871] : userauth is OK
2025-07-01 16:39:12,614 [ INFO][       Thread-610837][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:39:12,614 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:39:13,344 [DEBUG][       Thread-610837][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:39:13,345 [DEBUG][       Thread-610837][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:39:13,393 [DEBUG][       Thread-610837][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:39:13,393 [DEBUG][       Thread-610837][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:39:13,396 [DEBUG][       Thread-610837][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:39:13,403 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:39:13,404 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:39:13,406 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:39:13,408 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:39:13,413 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:39:13,415 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:39:13,415 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:39:13,416 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:39:13,416 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.610008 -999.00  +13.30  33.81     53   +3.90 1 2 2 1 1   887    0 8.52 -40.07 ----- 42.0 33.8 39.8 46.9 14.5 -20.4 14.3 -20.0 14.1 -19.3 14.4 -19.3
2025-07-01 16:39:13,416 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:39:13,416 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:39:13,416 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.610008
2025-07-01 16:39:13,417 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:39:13,417 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:39:13,417 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:39:13,418 [DEBUG][       Thread-610837][   transport.py][1871] : EOF in transport thread
2025-07-01 16:39:13,418 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:39:13,418 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:39:13,419 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:38:46', tmtdew=10.75, humidity=48.31, cloud=0.0, wind=33.91, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:38:24.691', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:39:13,502 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:39:13,512 [DEBUG][       Thread-610840][   transport.py][1871] : starting thread (client mode): 0x81a7520
2025-07-01 16:39:13,512 [DEBUG][       Thread-610840][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:39:13,528 [DEBUG][       Thread-610840][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:39:13,528 [ INFO][       Thread-610840][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:39:13,538 [DEBUG][       Thread-610840][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:39:13,538 [DEBUG][       Thread-610840][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:39:13,538 [DEBUG][       Thread-610840][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:39:13,538 [DEBUG][       Thread-610840][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:39:13,538 [DEBUG][       Thread-610840][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:39:13,538 [DEBUG][       Thread-610840][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:39:13,538 [DEBUG][       Thread-610840][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:39:13,538 [DEBUG][       Thread-610840][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:39:13,538 [DEBUG][       Thread-610840][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:39:13,538 [DEBUG][       Thread-610840][   transport.py][1871] : client lang: <none>
2025-07-01 16:39:13,538 [DEBUG][       Thread-610840][   transport.py][1871] : server lang: <none>
2025-07-01 16:39:13,538 [DEBUG][       Thread-610840][   transport.py][1871] : kex follows: False
2025-07-01 16:39:13,538 [DEBUG][       Thread-610840][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:39:13,538 [DEBUG][       Thread-610840][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:39:13,538 [DEBUG][       Thread-610840][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:39:13,538 [DEBUG][       Thread-610840][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:39:13,538 [DEBUG][       Thread-610840][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:39:13,538 [DEBUG][       Thread-610840][   transport.py][1871] : Compression: none
2025-07-01 16:39:13,538 [DEBUG][       Thread-610840][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:39:13,593 [DEBUG][       Thread-610840][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:39:13,593 [DEBUG][       Thread-610840][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:39:13,593 [DEBUG][       Thread-610840][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:39:13,593 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:39:13,594 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:39:13,651 [DEBUG][       Thread-610840][   transport.py][1871] : userauth is OK
2025-07-01 16:39:13,651 [DEBUG][       Thread-610840][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:39:13,651 [DEBUG][       Thread-610840][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:39:13,651 [DEBUG][       Thread-610840][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:39:13,651 [DEBUG][       Thread-610840][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:39:13,670 [ INFO][       Thread-610840][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:39:13,671 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:39:13,671 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:39:14,752 [DEBUG][       Thread-610840][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:39:14,753 [DEBUG][       Thread-610840][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:39:14,804 [DEBUG][       Thread-610840][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:39:14,804 [DEBUG][       Thread-610840][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:39:14,813 [DEBUG][       Thread-610840][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:39:14,822 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:39:14,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-07-01 16:39:14,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-07-01 16:39:14,840 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:39:14,841 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:39:14,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:39:14,849 [DEBUG][       Thread-610840][   transport.py][1871] : EOF in transport thread
2025-07-01 16:39:19,620 [DEBUG][Thread-610842 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:39:24,848 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:39:24,848 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:39:24,848 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:39:24,849 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:39:25,351 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 39, 17), 10.74, 48.24, 0.0, 27.86, 13.43, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:39:25,351 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:39:17
2025-07-01 16:39:25,442 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:39:25,450 [DEBUG][       Thread-610843][   transport.py][1871] : starting thread (client mode): 0x818fe80
2025-07-01 16:39:25,450 [DEBUG][       Thread-610843][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:39:25,470 [DEBUG][       Thread-610843][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:39:25,470 [ INFO][       Thread-610843][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:39:25,473 [DEBUG][       Thread-610843][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:39:25,473 [DEBUG][       Thread-610843][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:39:25,473 [DEBUG][       Thread-610843][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:39:25,473 [DEBUG][       Thread-610843][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:39:25,473 [DEBUG][       Thread-610843][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:39:25,473 [DEBUG][       Thread-610843][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:39:25,473 [DEBUG][       Thread-610843][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:39:25,473 [DEBUG][       Thread-610843][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:39:25,473 [DEBUG][       Thread-610843][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:39:25,473 [DEBUG][       Thread-610843][   transport.py][1871] : client lang: <none>
2025-07-01 16:39:25,473 [DEBUG][       Thread-610843][   transport.py][1871] : server lang: <none>
2025-07-01 16:39:25,473 [DEBUG][       Thread-610843][   transport.py][1871] : kex follows: False
2025-07-01 16:39:25,473 [DEBUG][       Thread-610843][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:39:25,474 [DEBUG][       Thread-610843][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:39:25,474 [DEBUG][       Thread-610843][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:39:25,474 [DEBUG][       Thread-610843][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:39:25,474 [DEBUG][       Thread-610843][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:39:25,474 [DEBUG][       Thread-610843][   transport.py][1871] : Compression: none
2025-07-01 16:39:25,474 [DEBUG][       Thread-610843][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:39:25,492 [DEBUG][       Thread-610843][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:39:25,492 [DEBUG][       Thread-610843][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:39:25,492 [DEBUG][       Thread-610843][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:39:25,492 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:39:25,492 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:39:25,492 [DEBUG][       Thread-610843][   transport.py][1871] : userauth is OK
2025-07-01 16:39:25,516 [ INFO][       Thread-610843][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:39:25,516 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:39:26,105 [DEBUG][       Thread-610843][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:39:26,105 [DEBUG][       Thread-610843][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:39:26,148 [DEBUG][       Thread-610843][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:39:26,148 [DEBUG][       Thread-610843][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:39:26,151 [DEBUG][       Thread-610843][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:39:26,166 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:39:26,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:39:26,167 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:39:26,167 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:39:26,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:39:26,170 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:39:26,170 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:39:26,170 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:39:26,170 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.610356 -999.00  +13.30  35.13     53   +3.90 1 2 2 1 1   887    0 8.41 -39.70 ----- 34.8 35.1 22.2 49.5 14.4 -20.3 14.2 -20.2 14.1 -19.3 14.5 -19.4
2025-07-01 16:39:26,170 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:39:26,170 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:39:26,170 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.610356
2025-07-01 16:39:26,170 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:39:26,170 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:39:26,170 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:39:26,170 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:39:26,170 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:39:26,170 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:39:17', tmtdew=10.74, humidity=48.24, cloud=0.0, wind=27.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:38:54.758', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:39:26,171 [DEBUG][       Thread-610843][   transport.py][1871] : EOF in transport thread
2025-07-01 16:39:26,243 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:39:26,255 [DEBUG][       Thread-610846][   transport.py][1871] : starting thread (client mode): 0x818f250
2025-07-01 16:39:26,255 [DEBUG][       Thread-610846][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:39:26,270 [DEBUG][       Thread-610846][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:39:26,270 [ INFO][       Thread-610846][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:39:26,277 [DEBUG][       Thread-610846][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:39:26,277 [DEBUG][       Thread-610846][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:39:26,277 [DEBUG][       Thread-610846][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:39:26,277 [DEBUG][       Thread-610846][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:39:26,277 [DEBUG][       Thread-610846][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:39:26,277 [DEBUG][       Thread-610846][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:39:26,277 [DEBUG][       Thread-610846][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:39:26,277 [DEBUG][       Thread-610846][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:39:26,277 [DEBUG][       Thread-610846][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:39:26,277 [DEBUG][       Thread-610846][   transport.py][1871] : client lang: <none>
2025-07-01 16:39:26,277 [DEBUG][       Thread-610846][   transport.py][1871] : server lang: <none>
2025-07-01 16:39:26,277 [DEBUG][       Thread-610846][   transport.py][1871] : kex follows: False
2025-07-01 16:39:26,277 [DEBUG][       Thread-610846][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:39:26,277 [DEBUG][       Thread-610846][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:39:26,277 [DEBUG][       Thread-610846][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:39:26,277 [DEBUG][       Thread-610846][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:39:26,277 [DEBUG][       Thread-610846][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:39:26,277 [DEBUG][       Thread-610846][   transport.py][1871] : Compression: none
2025-07-01 16:39:26,277 [DEBUG][       Thread-610846][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:39:26,333 [DEBUG][       Thread-610846][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:39:26,333 [DEBUG][       Thread-610846][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:39:26,334 [DEBUG][       Thread-610846][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:39:26,334 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:39:26,334 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:39:26,391 [DEBUG][       Thread-610846][   transport.py][1871] : userauth is OK
2025-07-01 16:39:26,391 [DEBUG][       Thread-610846][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:39:26,391 [DEBUG][       Thread-610846][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:39:26,391 [DEBUG][       Thread-610846][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:39:26,391 [DEBUG][       Thread-610846][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:39:26,405 [ INFO][       Thread-610846][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:39:26,405 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:39:26,405 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:39:27,446 [DEBUG][       Thread-610846][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:39:27,446 [DEBUG][       Thread-610846][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:39:27,495 [DEBUG][       Thread-610846][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:39:27,495 [DEBUG][       Thread-610846][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:39:27,504 [DEBUG][       Thread-610846][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:39:27,512 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:39:27,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-07-01 16:39:27,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-07-01 16:39:27,528 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:39:27,528 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:39:27,528 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:39:27,536 [DEBUG][       Thread-610846][   transport.py][1871] : EOF in transport thread
2025-07-01 16:39:28,639 [DEBUG][Thread-610848 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:39:37,530 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:39:37,530 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:39:37,530 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:39:37,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-07-01 16:39:37,673 [DEBUG][Thread-610849 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:39:38,020 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 39, 17), 10.74, 48.24, 0.0, 27.86, 13.43, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:39:38,020 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:39:17
2025-07-01 16:39:38,107 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:39:38,111 [DEBUG][       Thread-610850][   transport.py][1871] : starting thread (client mode): 0x82b2230
2025-07-01 16:39:38,111 [DEBUG][       Thread-610850][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:39:38,131 [DEBUG][       Thread-610850][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:39:38,131 [ INFO][       Thread-610850][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:39:38,134 [DEBUG][       Thread-610850][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:39:38,134 [DEBUG][       Thread-610850][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:39:38,134 [DEBUG][       Thread-610850][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:39:38,134 [DEBUG][       Thread-610850][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:39:38,134 [DEBUG][       Thread-610850][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:39:38,134 [DEBUG][       Thread-610850][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:39:38,134 [DEBUG][       Thread-610850][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:39:38,134 [DEBUG][       Thread-610850][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:39:38,134 [DEBUG][       Thread-610850][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:39:38,134 [DEBUG][       Thread-610850][   transport.py][1871] : client lang: <none>
2025-07-01 16:39:38,134 [DEBUG][       Thread-610850][   transport.py][1871] : server lang: <none>
2025-07-01 16:39:38,134 [DEBUG][       Thread-610850][   transport.py][1871] : kex follows: False
2025-07-01 16:39:38,134 [DEBUG][       Thread-610850][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:39:38,134 [DEBUG][       Thread-610850][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:39:38,134 [DEBUG][       Thread-610850][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:39:38,135 [DEBUG][       Thread-610850][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:39:38,135 [DEBUG][       Thread-610850][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:39:38,135 [DEBUG][       Thread-610850][   transport.py][1871] : Compression: none
2025-07-01 16:39:38,135 [DEBUG][       Thread-610850][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:39:38,149 [DEBUG][       Thread-610850][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:39:38,149 [DEBUG][       Thread-610850][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:39:38,150 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:39:38,150 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:39:38,151 [DEBUG][       Thread-610850][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:39:38,151 [DEBUG][       Thread-610850][   transport.py][1871] : userauth is OK
2025-07-01 16:39:38,175 [ INFO][       Thread-610850][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:39:38,176 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:39:38,902 [DEBUG][       Thread-610850][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:39:38,902 [DEBUG][       Thread-610850][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:39:38,945 [DEBUG][       Thread-610850][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:39:38,945 [DEBUG][       Thread-610850][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:39:38,948 [DEBUG][       Thread-610850][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:39:38,958 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:39:38,958 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:39:38,960 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:39:38,962 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:39:38,968 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:39:38,970 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:39:38,970 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:39:38,971 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:39:38,971 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.610356 -999.00  +13.30  35.13     53   +3.90 1 2 2 1 1   887    0 8.41 -39.70 ----- 34.8 35.1 22.2 49.5 14.4 -20.3 14.2 -20.2 14.1 -19.3 14.5 -19.4
2025-07-01 16:39:38,971 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:39:38,971 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:39:38,972 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.610356
2025-07-01 16:39:38,972 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:39:38,973 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:39:38,973 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:39:38,973 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:39:38,973 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:39:38,973 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:39:17', tmtdew=10.74, humidity=48.24, cloud=0.0, wind=27.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:38:54.758', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:39:38,974 [DEBUG][       Thread-610850][   transport.py][1871] : EOF in transport thread
2025-07-01 16:39:39,031 [DEBUG][Thread-610853 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:39:39,057 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:39:39,066 [DEBUG][       Thread-610854][   transport.py][1871] : starting thread (client mode): 0x8393790
2025-07-01 16:39:39,066 [DEBUG][       Thread-610854][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:39:39,081 [DEBUG][       Thread-610854][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:39:39,081 [ INFO][       Thread-610854][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:39:39,088 [DEBUG][       Thread-610854][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:39:39,089 [DEBUG][       Thread-610854][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:39:39,089 [DEBUG][       Thread-610854][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:39:39,089 [DEBUG][       Thread-610854][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:39:39,089 [DEBUG][       Thread-610854][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:39:39,089 [DEBUG][       Thread-610854][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:39:39,089 [DEBUG][       Thread-610854][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:39:39,089 [DEBUG][       Thread-610854][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:39:39,089 [DEBUG][       Thread-610854][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:39:39,089 [DEBUG][       Thread-610854][   transport.py][1871] : client lang: <none>
2025-07-01 16:39:39,089 [DEBUG][       Thread-610854][   transport.py][1871] : server lang: <none>
2025-07-01 16:39:39,089 [DEBUG][       Thread-610854][   transport.py][1871] : kex follows: False
2025-07-01 16:39:39,089 [DEBUG][       Thread-610854][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:39:39,089 [DEBUG][       Thread-610854][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:39:39,089 [DEBUG][       Thread-610854][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:39:39,089 [DEBUG][       Thread-610854][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:39:39,089 [DEBUG][       Thread-610854][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:39:39,089 [DEBUG][       Thread-610854][   transport.py][1871] : Compression: none
2025-07-01 16:39:39,089 [DEBUG][       Thread-610854][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:39:39,148 [DEBUG][       Thread-610854][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:39:39,148 [DEBUG][       Thread-610854][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:39:39,149 [DEBUG][       Thread-610854][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:39:39,149 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:39:39,150 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:39:39,207 [DEBUG][       Thread-610854][   transport.py][1871] : userauth is OK
2025-07-01 16:39:39,207 [DEBUG][       Thread-610854][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:39:39,208 [DEBUG][       Thread-610854][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:39:39,208 [DEBUG][       Thread-610854][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:39:39,208 [DEBUG][       Thread-610854][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:39:39,227 [ INFO][       Thread-610854][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:39:39,227 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:39:39,228 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:39:40,233 [DEBUG][       Thread-610854][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:39:40,233 [DEBUG][       Thread-610854][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:39:40,287 [DEBUG][       Thread-610854][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:39:40,287 [DEBUG][       Thread-610854][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:39:40,298 [DEBUG][       Thread-610854][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:39:40,307 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:39:40,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-07-01 16:39:40,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-07-01 16:39:40,326 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:39:40,326 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:39:40,327 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:39:40,334 [DEBUG][       Thread-610854][   transport.py][1871] : EOF in transport thread
2025-07-01 16:39:46,694 [DEBUG][Thread-610856 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:39:50,334 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:39:50,334 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:39:50,334 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:39:50,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-07-01 16:39:50,844 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 39, 17), 10.74, 48.24, 0.0, 27.86, 13.43, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:39:50,844 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:39:17
2025-07-01 16:39:50,936 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:39:50,942 [DEBUG][       Thread-610857][   transport.py][1871] : starting thread (client mode): 0x81e6290
2025-07-01 16:39:50,942 [DEBUG][       Thread-610857][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:39:50,961 [DEBUG][       Thread-610857][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:39:50,961 [ INFO][       Thread-610857][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:39:50,964 [DEBUG][       Thread-610857][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:39:50,964 [DEBUG][       Thread-610857][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:39:50,964 [DEBUG][       Thread-610857][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:39:50,964 [DEBUG][       Thread-610857][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:39:50,964 [DEBUG][       Thread-610857][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:39:50,964 [DEBUG][       Thread-610857][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:39:50,964 [DEBUG][       Thread-610857][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:39:50,964 [DEBUG][       Thread-610857][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:39:50,964 [DEBUG][       Thread-610857][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:39:50,964 [DEBUG][       Thread-610857][   transport.py][1871] : client lang: <none>
2025-07-01 16:39:50,964 [DEBUG][       Thread-610857][   transport.py][1871] : server lang: <none>
2025-07-01 16:39:50,964 [DEBUG][       Thread-610857][   transport.py][1871] : kex follows: False
2025-07-01 16:39:50,964 [DEBUG][       Thread-610857][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:39:50,964 [DEBUG][       Thread-610857][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:39:50,964 [DEBUG][       Thread-610857][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:39:50,964 [DEBUG][       Thread-610857][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:39:50,964 [DEBUG][       Thread-610857][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:39:50,964 [DEBUG][       Thread-610857][   transport.py][1871] : Compression: none
2025-07-01 16:39:50,964 [DEBUG][       Thread-610857][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:39:50,979 [DEBUG][       Thread-610857][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:39:50,979 [DEBUG][       Thread-610857][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:39:50,979 [DEBUG][       Thread-610857][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:39:50,979 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:39:50,979 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:39:50,979 [DEBUG][       Thread-610857][   transport.py][1871] : userauth is OK
2025-07-01 16:39:50,992 [ INFO][       Thread-610857][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:39:50,993 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:39:51,790 [DEBUG][       Thread-610857][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:39:51,790 [DEBUG][       Thread-610857][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:39:51,833 [DEBUG][       Thread-610857][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:39:51,833 [DEBUG][       Thread-610857][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:39:51,837 [DEBUG][       Thread-610857][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:39:51,850 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:39:51,851 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:39:51,852 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:39:51,857 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:39:51,866 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:39:51,869 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:39:51,869 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:39:51,870 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:39:51,870 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.610356 -999.00  +13.30  35.13     53   +3.90 1 2 2 1 1   887    0 8.41 -39.70 ----- 34.8 35.1 22.2 49.5 14.4 -20.3 14.2 -20.2 14.1 -19.3 14.5 -19.4
2025-07-01 16:39:51,870 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:39:51,870 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:39:51,870 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.610356
2025-07-01 16:39:51,870 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:39:51,871 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:39:51,871 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:39:51,871 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:39:51,871 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:39:51,871 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:39:17', tmtdew=10.74, humidity=48.24, cloud=0.0, wind=27.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:38:54.758', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:39:51,872 [DEBUG][       Thread-610857][   transport.py][1871] : EOF in transport thread
2025-07-01 16:39:51,949 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:39:51,962 [DEBUG][       Thread-610860][   transport.py][1871] : starting thread (client mode): 0x81a44f0
2025-07-01 16:39:51,962 [DEBUG][       Thread-610860][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:39:51,976 [DEBUG][       Thread-610860][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:39:51,976 [ INFO][       Thread-610860][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:39:51,984 [DEBUG][       Thread-610860][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:39:51,984 [DEBUG][       Thread-610860][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:39:51,984 [DEBUG][       Thread-610860][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:39:51,984 [DEBUG][       Thread-610860][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:39:51,984 [DEBUG][       Thread-610860][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:39:51,984 [DEBUG][       Thread-610860][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:39:51,984 [DEBUG][       Thread-610860][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:39:51,984 [DEBUG][       Thread-610860][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:39:51,985 [DEBUG][       Thread-610860][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:39:51,985 [DEBUG][       Thread-610860][   transport.py][1871] : client lang: <none>
2025-07-01 16:39:51,985 [DEBUG][       Thread-610860][   transport.py][1871] : server lang: <none>
2025-07-01 16:39:51,985 [DEBUG][       Thread-610860][   transport.py][1871] : kex follows: False
2025-07-01 16:39:51,985 [DEBUG][       Thread-610860][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:39:51,985 [DEBUG][       Thread-610860][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:39:51,985 [DEBUG][       Thread-610860][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:39:51,985 [DEBUG][       Thread-610860][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:39:51,985 [DEBUG][       Thread-610860][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:39:51,985 [DEBUG][       Thread-610860][   transport.py][1871] : Compression: none
2025-07-01 16:39:51,985 [DEBUG][       Thread-610860][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:39:52,047 [DEBUG][       Thread-610860][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:39:52,048 [DEBUG][       Thread-610860][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:39:52,049 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:39:52,049 [DEBUG][       Thread-610860][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:39:52,050 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:39:52,108 [DEBUG][       Thread-610860][   transport.py][1871] : userauth is OK
2025-07-01 16:39:52,108 [DEBUG][       Thread-610860][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:39:52,108 [DEBUG][       Thread-610860][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:39:52,108 [DEBUG][       Thread-610860][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:39:52,108 [DEBUG][       Thread-610860][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:39:52,127 [ INFO][       Thread-610860][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:39:52,127 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:39:52,128 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:39:53,122 [DEBUG][       Thread-610860][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:39:53,122 [DEBUG][       Thread-610860][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:39:53,172 [DEBUG][       Thread-610860][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:39:53,172 [DEBUG][       Thread-610860][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:39:53,181 [DEBUG][       Thread-610860][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:39:53,191 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:39:53,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')
2025-07-01 16:39:53,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-07-01 16:39:53,209 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:39:53,209 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:39:53,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:39:53,217 [DEBUG][       Thread-610860][   transport.py][1871] : EOF in transport thread
2025-07-01 16:39:55,713 [DEBUG][Thread-610862 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:40:03,216 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:40:03,216 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:40:03,216 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:40:03,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-07-01 16:40:03,723 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 39, 49), 10.74, 48.25, 0.0, 34.63, 13.46, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:40:03,723 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:39:49
2025-07-01 16:40:03,810 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:40:03,814 [DEBUG][       Thread-610863][   transport.py][1871] : starting thread (client mode): 0x81a4610
2025-07-01 16:40:03,814 [DEBUG][       Thread-610863][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:40:03,834 [DEBUG][       Thread-610863][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:40:03,834 [ INFO][       Thread-610863][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:40:03,836 [DEBUG][       Thread-610863][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:40:03,836 [DEBUG][       Thread-610863][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:40:03,836 [DEBUG][       Thread-610863][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:40:03,836 [DEBUG][       Thread-610863][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:40:03,836 [DEBUG][       Thread-610863][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:40:03,836 [DEBUG][       Thread-610863][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:40:03,836 [DEBUG][       Thread-610863][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:40:03,836 [DEBUG][       Thread-610863][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:40:03,836 [DEBUG][       Thread-610863][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:40:03,836 [DEBUG][       Thread-610863][   transport.py][1871] : client lang: <none>
2025-07-01 16:40:03,836 [DEBUG][       Thread-610863][   transport.py][1871] : server lang: <none>
2025-07-01 16:40:03,836 [DEBUG][       Thread-610863][   transport.py][1871] : kex follows: False
2025-07-01 16:40:03,836 [DEBUG][       Thread-610863][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:40:03,836 [DEBUG][       Thread-610863][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:40:03,836 [DEBUG][       Thread-610863][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:40:03,836 [DEBUG][       Thread-610863][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:40:03,836 [DEBUG][       Thread-610863][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:40:03,836 [DEBUG][       Thread-610863][   transport.py][1871] : Compression: none
2025-07-01 16:40:03,836 [DEBUG][       Thread-610863][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:40:03,848 [DEBUG][       Thread-610863][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:40:03,848 [DEBUG][       Thread-610863][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:40:03,848 [DEBUG][       Thread-610863][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:40:03,848 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:40:03,848 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:40:03,849 [DEBUG][       Thread-610863][   transport.py][1871] : userauth is OK
2025-07-01 16:40:03,872 [ INFO][       Thread-610863][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:40:03,872 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:40:04,477 [DEBUG][       Thread-610863][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:40:04,477 [DEBUG][       Thread-610863][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:40:04,520 [DEBUG][       Thread-610863][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:40:04,520 [DEBUG][       Thread-610863][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:40:04,522 [DEBUG][       Thread-610863][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:40:04,534 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:40:04,534 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:40:04,535 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:40:04,536 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:40:04,537 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:40:04,538 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:40:04,538 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:40:04,538 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:40:04,538 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.610702 -999.00  +13.20  34.26     53   +3.90 1 2 2 1 1   887    0 8.35 -37.40 ----- 36.2 34.3 23.7 43.1 14.4 -20.3 14.2 -20.0 14.1 -19.3 14.4 -19.6
2025-07-01 16:40:04,538 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:40:04,538 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:40:04,538 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.610702
2025-07-01 16:40:04,538 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:40:04,538 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:40:04,538 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:40:04,538 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:40:04,538 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:40:04,538 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:39:49', tmtdew=10.74, humidity=48.25, cloud=0.0, wind=34.63, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:39:24.653', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:40:04,539 [DEBUG][       Thread-610863][   transport.py][1871] : EOF in transport thread
2025-07-01 16:40:04,611 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:40:04,620 [DEBUG][       Thread-610866][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 16:40:04,620 [DEBUG][       Thread-610866][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:40:04,635 [DEBUG][       Thread-610866][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:40:04,635 [ INFO][       Thread-610866][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:40:04,642 [DEBUG][       Thread-610866][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:40:04,642 [DEBUG][       Thread-610866][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:40:04,642 [DEBUG][       Thread-610866][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:40:04,642 [DEBUG][       Thread-610866][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:40:04,642 [DEBUG][       Thread-610866][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:40:04,642 [DEBUG][       Thread-610866][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:40:04,643 [DEBUG][       Thread-610866][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:40:04,643 [DEBUG][       Thread-610866][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:40:04,643 [DEBUG][       Thread-610866][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:40:04,643 [DEBUG][       Thread-610866][   transport.py][1871] : client lang: <none>
2025-07-01 16:40:04,643 [DEBUG][       Thread-610866][   transport.py][1871] : server lang: <none>
2025-07-01 16:40:04,643 [DEBUG][       Thread-610866][   transport.py][1871] : kex follows: False
2025-07-01 16:40:04,643 [DEBUG][       Thread-610866][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:40:04,643 [DEBUG][       Thread-610866][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:40:04,643 [DEBUG][       Thread-610866][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:40:04,643 [DEBUG][       Thread-610866][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:40:04,643 [DEBUG][       Thread-610866][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:40:04,643 [DEBUG][       Thread-610866][   transport.py][1871] : Compression: none
2025-07-01 16:40:04,643 [DEBUG][       Thread-610866][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:40:04,698 [DEBUG][       Thread-610866][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:40:04,698 [DEBUG][       Thread-610866][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:40:04,698 [DEBUG][       Thread-610866][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:40:04,698 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:40:04,698 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:40:04,730 [DEBUG][Thread-610868 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:40:04,755 [DEBUG][       Thread-610866][   transport.py][1871] : userauth is OK
2025-07-01 16:40:04,755 [DEBUG][       Thread-610866][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:40:04,755 [DEBUG][       Thread-610866][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:40:04,755 [DEBUG][       Thread-610866][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:40:04,755 [DEBUG][       Thread-610866][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:40:04,769 [ INFO][       Thread-610866][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:40:04,770 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:40:04,770 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:40:05,787 [DEBUG][       Thread-610866][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:40:05,787 [DEBUG][       Thread-610866][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:40:05,835 [DEBUG][       Thread-610866][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:40:05,835 [DEBUG][       Thread-610866][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:40:05,844 [DEBUG][       Thread-610866][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:40:05,852 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:40:05,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')
2025-07-01 16:40:05,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') -> 00000000
2025-07-01 16:40:05,872 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:40:05,872 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:40:05,872 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:40:05,880 [DEBUG][       Thread-610866][   transport.py][1871] : EOF in transport thread
2025-07-01 16:40:13,764 [DEBUG][Thread-610869 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:40:15,883 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:40:15,883 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:40:15,883 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:40:15,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-07-01 16:40:16,378 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 39, 49), 10.74, 48.25, 0.0, 34.63, 13.46, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:40:16,378 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:39:49
2025-07-01 16:40:16,465 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:40:16,471 [DEBUG][       Thread-610870][   transport.py][1871] : starting thread (client mode): 0x81a4d60
2025-07-01 16:40:16,471 [DEBUG][       Thread-610870][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:40:16,491 [DEBUG][       Thread-610870][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:40:16,491 [ INFO][       Thread-610870][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:40:16,494 [DEBUG][       Thread-610870][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:40:16,494 [DEBUG][       Thread-610870][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:40:16,494 [DEBUG][       Thread-610870][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:40:16,494 [DEBUG][       Thread-610870][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:40:16,494 [DEBUG][       Thread-610870][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:40:16,494 [DEBUG][       Thread-610870][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:40:16,494 [DEBUG][       Thread-610870][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:40:16,494 [DEBUG][       Thread-610870][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:40:16,494 [DEBUG][       Thread-610870][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:40:16,495 [DEBUG][       Thread-610870][   transport.py][1871] : client lang: <none>
2025-07-01 16:40:16,495 [DEBUG][       Thread-610870][   transport.py][1871] : server lang: <none>
2025-07-01 16:40:16,495 [DEBUG][       Thread-610870][   transport.py][1871] : kex follows: False
2025-07-01 16:40:16,495 [DEBUG][       Thread-610870][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:40:16,495 [DEBUG][       Thread-610870][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:40:16,495 [DEBUG][       Thread-610870][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:40:16,495 [DEBUG][       Thread-610870][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:40:16,495 [DEBUG][       Thread-610870][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:40:16,495 [DEBUG][       Thread-610870][   transport.py][1871] : Compression: none
2025-07-01 16:40:16,495 [DEBUG][       Thread-610870][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:40:16,515 [DEBUG][       Thread-610870][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:40:16,515 [DEBUG][       Thread-610870][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:40:16,515 [DEBUG][       Thread-610870][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:40:16,516 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:40:16,516 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:40:16,517 [DEBUG][       Thread-610870][   transport.py][1871] : userauth is OK
2025-07-01 16:40:16,530 [ INFO][       Thread-610870][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:40:16,530 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:40:17,353 [DEBUG][       Thread-610870][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:40:17,353 [DEBUG][       Thread-610870][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:40:17,397 [DEBUG][       Thread-610870][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:40:17,397 [DEBUG][       Thread-610870][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:40:17,400 [DEBUG][       Thread-610870][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:40:17,407 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:40:17,408 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:40:17,409 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:40:17,411 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:40:17,416 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:40:17,418 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:40:17,418 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:40:17,419 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:40:17,419 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.610702 -999.00  +13.20  34.26     53   +3.90 1 2 2 1 1   887    0 8.35 -37.40 ----- 36.2 34.3 23.7 43.1 14.4 -20.3 14.2 -20.0 14.1 -19.3 14.4 -19.6
2025-07-01 16:40:17,419 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:40:17,419 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:40:17,419 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.610702
2025-07-01 16:40:17,420 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:40:17,420 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:40:17,420 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:40:17,420 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:40:17,420 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:40:17,421 [DEBUG][       Thread-610870][   transport.py][1871] : EOF in transport thread
2025-07-01 16:40:17,421 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:39:49', tmtdew=10.74, humidity=48.25, cloud=0.0, wind=34.63, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:39:24.653', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:40:17,504 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:40:17,515 [DEBUG][       Thread-610873][   transport.py][1871] : starting thread (client mode): 0x8170ca0
2025-07-01 16:40:17,515 [DEBUG][       Thread-610873][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:40:17,530 [DEBUG][       Thread-610873][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:40:17,530 [ INFO][       Thread-610873][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:40:17,538 [DEBUG][       Thread-610873][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:40:17,538 [DEBUG][       Thread-610873][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:40:17,538 [DEBUG][       Thread-610873][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:40:17,538 [DEBUG][       Thread-610873][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:40:17,538 [DEBUG][       Thread-610873][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:40:17,538 [DEBUG][       Thread-610873][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:40:17,538 [DEBUG][       Thread-610873][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:40:17,538 [DEBUG][       Thread-610873][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:40:17,538 [DEBUG][       Thread-610873][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:40:17,538 [DEBUG][       Thread-610873][   transport.py][1871] : client lang: <none>
2025-07-01 16:40:17,538 [DEBUG][       Thread-610873][   transport.py][1871] : server lang: <none>
2025-07-01 16:40:17,538 [DEBUG][       Thread-610873][   transport.py][1871] : kex follows: False
2025-07-01 16:40:17,538 [DEBUG][       Thread-610873][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:40:17,538 [DEBUG][       Thread-610873][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:40:17,539 [DEBUG][       Thread-610873][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:40:17,539 [DEBUG][       Thread-610873][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:40:17,539 [DEBUG][       Thread-610873][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:40:17,539 [DEBUG][       Thread-610873][   transport.py][1871] : Compression: none
2025-07-01 16:40:17,539 [DEBUG][       Thread-610873][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:40:17,595 [DEBUG][       Thread-610873][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:40:17,596 [DEBUG][       Thread-610873][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:40:17,597 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:40:17,597 [DEBUG][       Thread-610873][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:40:17,598 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:40:17,652 [DEBUG][       Thread-610873][   transport.py][1871] : userauth is OK
2025-07-01 16:40:17,652 [DEBUG][       Thread-610873][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:40:17,652 [DEBUG][       Thread-610873][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:40:17,652 [DEBUG][       Thread-610873][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:40:17,652 [DEBUG][       Thread-610873][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:40:17,674 [ INFO][       Thread-610873][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:40:17,674 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:40:17,675 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:40:18,664 [DEBUG][       Thread-610873][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:40:18,664 [DEBUG][       Thread-610873][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:40:18,716 [DEBUG][       Thread-610873][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:40:18,716 [DEBUG][       Thread-610873][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:40:18,725 [DEBUG][       Thread-610873][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:40:18,734 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:40:18,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-07-01 16:40:18,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-07-01 16:40:18,752 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:40:18,752 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:40:18,752 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:40:18,760 [DEBUG][       Thread-610873][   transport.py][1871] : EOF in transport thread
2025-07-01 16:40:22,783 [DEBUG][Thread-610875 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:40:28,763 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:40:28,763 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:40:28,763 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:40:28,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-07-01 16:40:29,241 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 40, 21), 10.76, 48.19, 0.0, 30.75, 13.45, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:40:29,241 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:40:21
2025-07-01 16:40:29,328 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:40:29,335 [DEBUG][       Thread-610876][   transport.py][1871] : starting thread (client mode): 0x81a5b70
2025-07-01 16:40:29,335 [DEBUG][       Thread-610876][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:40:29,355 [DEBUG][       Thread-610876][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:40:29,356 [ INFO][       Thread-610876][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:40:29,359 [DEBUG][       Thread-610876][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:40:29,359 [DEBUG][       Thread-610876][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:40:29,359 [DEBUG][       Thread-610876][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:40:29,359 [DEBUG][       Thread-610876][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:40:29,359 [DEBUG][       Thread-610876][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:40:29,359 [DEBUG][       Thread-610876][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:40:29,359 [DEBUG][       Thread-610876][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:40:29,359 [DEBUG][       Thread-610876][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:40:29,359 [DEBUG][       Thread-610876][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:40:29,359 [DEBUG][       Thread-610876][   transport.py][1871] : client lang: <none>
2025-07-01 16:40:29,359 [DEBUG][       Thread-610876][   transport.py][1871] : server lang: <none>
2025-07-01 16:40:29,359 [DEBUG][       Thread-610876][   transport.py][1871] : kex follows: False
2025-07-01 16:40:29,359 [DEBUG][       Thread-610876][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:40:29,359 [DEBUG][       Thread-610876][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:40:29,359 [DEBUG][       Thread-610876][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:40:29,359 [DEBUG][       Thread-610876][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:40:29,359 [DEBUG][       Thread-610876][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:40:29,359 [DEBUG][       Thread-610876][   transport.py][1871] : Compression: none
2025-07-01 16:40:29,359 [DEBUG][       Thread-610876][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:40:29,383 [DEBUG][       Thread-610876][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:40:29,384 [DEBUG][       Thread-610876][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:40:29,385 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:40:29,385 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:40:29,385 [DEBUG][       Thread-610876][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:40:29,386 [DEBUG][       Thread-610876][   transport.py][1871] : userauth is OK
2025-07-01 16:40:29,399 [ INFO][       Thread-610876][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:40:29,399 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:40:30,037 [DEBUG][       Thread-610876][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:40:30,038 [DEBUG][       Thread-610876][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:40:30,081 [DEBUG][       Thread-610876][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:40:30,081 [DEBUG][       Thread-610876][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:40:30,084 [DEBUG][       Thread-610876][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:40:30,095 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:40:30,095 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:40:30,097 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:40:30,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:40:30,102 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:40:30,104 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:40:30,104 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:40:30,105 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:40:30,105 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.611050 -999.00  +13.20  36.81     53   +3.90 1 2 2 1 1   887    0 8.27 -38.49 ----- 34.7 36.8 23.8 44.1 14.4 -20.3 14.2 -19.9 14.1 -19.2 14.4 -19.8
2025-07-01 16:40:30,105 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:40:30,105 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:40:30,105 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.611050
2025-07-01 16:40:30,105 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:40:30,106 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:40:30,106 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:40:30,106 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:40:30,106 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:40:30,106 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:40:21', tmtdew=10.76, humidity=48.19, cloud=0.0, wind=30.75, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:39:54.720', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:40:30,107 [DEBUG][       Thread-610876][   transport.py][1871] : EOF in transport thread
2025-07-01 16:40:30,190 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:40:30,201 [DEBUG][       Thread-610879][   transport.py][1871] : starting thread (client mode): 0x75a8490
2025-07-01 16:40:30,201 [DEBUG][       Thread-610879][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:40:30,217 [DEBUG][       Thread-610879][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:40:30,217 [ INFO][       Thread-610879][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:40:30,225 [DEBUG][       Thread-610879][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:40:30,225 [DEBUG][       Thread-610879][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:40:30,225 [DEBUG][       Thread-610879][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:40:30,225 [DEBUG][       Thread-610879][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:40:30,225 [DEBUG][       Thread-610879][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:40:30,225 [DEBUG][       Thread-610879][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:40:30,225 [DEBUG][       Thread-610879][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:40:30,225 [DEBUG][       Thread-610879][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:40:30,225 [DEBUG][       Thread-610879][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:40:30,225 [DEBUG][       Thread-610879][   transport.py][1871] : client lang: <none>
2025-07-01 16:40:30,225 [DEBUG][       Thread-610879][   transport.py][1871] : server lang: <none>
2025-07-01 16:40:30,225 [DEBUG][       Thread-610879][   transport.py][1871] : kex follows: False
2025-07-01 16:40:30,225 [DEBUG][       Thread-610879][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:40:30,225 [DEBUG][       Thread-610879][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:40:30,225 [DEBUG][       Thread-610879][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:40:30,226 [DEBUG][       Thread-610879][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:40:30,226 [DEBUG][       Thread-610879][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:40:30,226 [DEBUG][       Thread-610879][   transport.py][1871] : Compression: none
2025-07-01 16:40:30,226 [DEBUG][       Thread-610879][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:40:30,283 [DEBUG][       Thread-610879][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:40:30,284 [DEBUG][       Thread-610879][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:40:30,284 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:40:30,285 [DEBUG][       Thread-610879][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:40:30,286 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:40:30,344 [DEBUG][       Thread-610879][   transport.py][1871] : userauth is OK
2025-07-01 16:40:30,344 [DEBUG][       Thread-610879][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:40:30,344 [DEBUG][       Thread-610879][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:40:30,344 [DEBUG][       Thread-610879][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:40:30,344 [DEBUG][       Thread-610879][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:40:30,363 [ INFO][       Thread-610879][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:40:30,364 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:40:30,364 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:40:31,412 [DEBUG][       Thread-610879][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:40:31,412 [DEBUG][       Thread-610879][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:40:31,462 [DEBUG][       Thread-610879][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:40:31,462 [DEBUG][       Thread-610879][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:40:31,471 [DEBUG][       Thread-610879][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:40:31,488 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:40:31,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-07-01 16:40:31,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-07-01 16:40:31,506 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:40:31,507 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:40:31,507 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:40:31,515 [DEBUG][       Thread-610879][   transport.py][1871] : EOF in transport thread
2025-07-01 16:40:31,805 [DEBUG][Thread-610881 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:40:39,062 [DEBUG][Thread-610882 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:40:40,840 [DEBUG][Thread-610883 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:40:41,517 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:40:41,518 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:40:41,518 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:40:41,518 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:40:42,011 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 40, 21), 10.76, 48.19, 0.0, 30.75, 13.45, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:40:42,011 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:40:21
2025-07-01 16:40:42,100 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:40:42,103 [DEBUG][       Thread-610884][   transport.py][1871] : starting thread (client mode): 0x81a59f0
2025-07-01 16:40:42,104 [DEBUG][       Thread-610884][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:40:42,119 [DEBUG][       Thread-610884][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:40:42,119 [ INFO][       Thread-610884][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:40:42,122 [DEBUG][       Thread-610884][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:40:42,122 [DEBUG][       Thread-610884][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:40:42,122 [DEBUG][       Thread-610884][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:40:42,122 [DEBUG][       Thread-610884][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:40:42,122 [DEBUG][       Thread-610884][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:40:42,122 [DEBUG][       Thread-610884][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:40:42,122 [DEBUG][       Thread-610884][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:40:42,122 [DEBUG][       Thread-610884][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:40:42,122 [DEBUG][       Thread-610884][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:40:42,122 [DEBUG][       Thread-610884][   transport.py][1871] : client lang: <none>
2025-07-01 16:40:42,122 [DEBUG][       Thread-610884][   transport.py][1871] : server lang: <none>
2025-07-01 16:40:42,122 [DEBUG][       Thread-610884][   transport.py][1871] : kex follows: False
2025-07-01 16:40:42,122 [DEBUG][       Thread-610884][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:40:42,122 [DEBUG][       Thread-610884][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:40:42,122 [DEBUG][       Thread-610884][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:40:42,122 [DEBUG][       Thread-610884][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:40:42,122 [DEBUG][       Thread-610884][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:40:42,122 [DEBUG][       Thread-610884][   transport.py][1871] : Compression: none
2025-07-01 16:40:42,122 [DEBUG][       Thread-610884][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:40:42,133 [DEBUG][       Thread-610884][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:40:42,133 [DEBUG][       Thread-610884][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:40:42,134 [DEBUG][       Thread-610884][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:40:42,134 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:40:42,134 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:40:42,134 [DEBUG][       Thread-610884][   transport.py][1871] : userauth is OK
2025-07-01 16:40:42,158 [ INFO][       Thread-610884][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:40:42,158 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:40:42,991 [DEBUG][       Thread-610884][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:40:42,991 [DEBUG][       Thread-610884][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:40:43,032 [DEBUG][       Thread-610884][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:40:43,032 [DEBUG][       Thread-610884][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:40:43,035 [DEBUG][       Thread-610884][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:40:43,048 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:40:43,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:40:43,049 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:40:43,050 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:40:43,053 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:40:43,053 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:40:43,054 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:40:43,054 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:40:43,054 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.611050 -999.00  +13.20  36.81     53   +3.90 1 2 2 1 1   887    0 8.27 -38.49 ----- 34.7 36.8 23.8 44.1 14.4 -20.3 14.2 -19.9 14.1 -19.2 14.4 -19.8
2025-07-01 16:40:43,054 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:40:43,054 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:40:43,054 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.611050
2025-07-01 16:40:43,054 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:40:43,054 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:40:43,054 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:40:43,054 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:40:43,054 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:40:43,054 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:40:21', tmtdew=10.76, humidity=48.19, cloud=0.0, wind=30.75, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:39:54.720', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:40:43,055 [DEBUG][       Thread-610884][   transport.py][1871] : EOF in transport thread
2025-07-01 16:40:43,128 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:40:43,138 [DEBUG][       Thread-610887][   transport.py][1871] : starting thread (client mode): 0x81db4c0
2025-07-01 16:40:43,138 [DEBUG][       Thread-610887][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:40:43,153 [DEBUG][       Thread-610887][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:40:43,153 [ INFO][       Thread-610887][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:40:43,160 [DEBUG][       Thread-610887][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:40:43,160 [DEBUG][       Thread-610887][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:40:43,160 [DEBUG][       Thread-610887][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:40:43,160 [DEBUG][       Thread-610887][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:40:43,160 [DEBUG][       Thread-610887][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:40:43,160 [DEBUG][       Thread-610887][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:40:43,160 [DEBUG][       Thread-610887][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:40:43,160 [DEBUG][       Thread-610887][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:40:43,160 [DEBUG][       Thread-610887][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:40:43,160 [DEBUG][       Thread-610887][   transport.py][1871] : client lang: <none>
2025-07-01 16:40:43,160 [DEBUG][       Thread-610887][   transport.py][1871] : server lang: <none>
2025-07-01 16:40:43,160 [DEBUG][       Thread-610887][   transport.py][1871] : kex follows: False
2025-07-01 16:40:43,160 [DEBUG][       Thread-610887][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:40:43,160 [DEBUG][       Thread-610887][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:40:43,160 [DEBUG][       Thread-610887][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:40:43,160 [DEBUG][       Thread-610887][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:40:43,160 [DEBUG][       Thread-610887][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:40:43,160 [DEBUG][       Thread-610887][   transport.py][1871] : Compression: none
2025-07-01 16:40:43,160 [DEBUG][       Thread-610887][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:40:43,218 [DEBUG][       Thread-610887][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:40:43,218 [DEBUG][       Thread-610887][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:40:43,218 [DEBUG][       Thread-610887][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:40:43,218 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:40:43,218 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:40:43,275 [DEBUG][       Thread-610887][   transport.py][1871] : userauth is OK
2025-07-01 16:40:43,275 [DEBUG][       Thread-610887][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:40:43,275 [DEBUG][       Thread-610887][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:40:43,275 [DEBUG][       Thread-610887][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:40:43,275 [DEBUG][       Thread-610887][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:40:43,289 [ INFO][       Thread-610887][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:40:43,290 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:40:43,290 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:40:44,294 [DEBUG][       Thread-610887][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:40:44,294 [DEBUG][       Thread-610887][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:40:44,343 [DEBUG][       Thread-610887][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:40:44,343 [DEBUG][       Thread-610887][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:40:44,351 [DEBUG][       Thread-610887][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:40:44,359 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:40:44,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-07-01 16:40:44,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-07-01 16:40:44,375 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:40:44,375 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:40:44,375 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:40:44,383 [DEBUG][       Thread-610887][   transport.py][1871] : EOF in transport thread
2025-07-01 16:40:49,861 [DEBUG][Thread-610889 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:40:54,384 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:40:54,384 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:40:54,384 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:40:54,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-07-01 16:40:54,892 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 40, 21), 10.76, 48.19, 0.0, 30.75, 13.45, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:40:54,893 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:40:21
2025-07-01 16:40:54,985 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:40:54,991 [DEBUG][       Thread-610890][   transport.py][1871] : starting thread (client mode): 0x81e4d30
2025-07-01 16:40:54,991 [DEBUG][       Thread-610890][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:40:55,012 [DEBUG][       Thread-610890][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:40:55,012 [ INFO][       Thread-610890][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:40:55,015 [DEBUG][       Thread-610890][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:40:55,015 [DEBUG][       Thread-610890][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:40:55,015 [DEBUG][       Thread-610890][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:40:55,015 [DEBUG][       Thread-610890][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:40:55,015 [DEBUG][       Thread-610890][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:40:55,015 [DEBUG][       Thread-610890][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:40:55,015 [DEBUG][       Thread-610890][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:40:55,015 [DEBUG][       Thread-610890][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:40:55,015 [DEBUG][       Thread-610890][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:40:55,015 [DEBUG][       Thread-610890][   transport.py][1871] : client lang: <none>
2025-07-01 16:40:55,015 [DEBUG][       Thread-610890][   transport.py][1871] : server lang: <none>
2025-07-01 16:40:55,015 [DEBUG][       Thread-610890][   transport.py][1871] : kex follows: False
2025-07-01 16:40:55,015 [DEBUG][       Thread-610890][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:40:55,015 [DEBUG][       Thread-610890][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:40:55,015 [DEBUG][       Thread-610890][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:40:55,015 [DEBUG][       Thread-610890][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:40:55,015 [DEBUG][       Thread-610890][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:40:55,015 [DEBUG][       Thread-610890][   transport.py][1871] : Compression: none
2025-07-01 16:40:55,015 [DEBUG][       Thread-610890][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:40:55,030 [DEBUG][       Thread-610890][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:40:55,030 [DEBUG][       Thread-610890][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:40:55,030 [DEBUG][       Thread-610890][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:40:55,030 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:40:55,030 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:40:55,031 [DEBUG][       Thread-610890][   transport.py][1871] : userauth is OK
2025-07-01 16:40:55,055 [ INFO][       Thread-610890][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:40:55,055 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:40:55,849 [DEBUG][       Thread-610890][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:40:55,849 [DEBUG][       Thread-610890][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:40:55,893 [DEBUG][       Thread-610890][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:40:55,893 [DEBUG][       Thread-610890][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:40:55,896 [DEBUG][       Thread-610890][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:40:55,908 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:40:55,908 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:40:55,910 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:40:55,912 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:40:55,918 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:40:55,920 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:40:55,920 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:40:55,921 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:40:55,921 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.611050 -999.00  +13.20  36.81     53   +3.90 1 2 2 1 1   887    0 8.27 -38.49 ----- 34.7 36.8 23.8 44.1 14.4 -20.3 14.2 -19.9 14.1 -19.2 14.4 -19.8
2025-07-01 16:40:55,921 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:40:55,921 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:40:55,921 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.611050
2025-07-01 16:40:55,922 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:40:55,922 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:40:55,923 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:40:55,923 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:40:55,923 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:40:55,923 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:40:21', tmtdew=10.76, humidity=48.19, cloud=0.0, wind=30.75, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:39:54.720', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:40:55,924 [DEBUG][       Thread-610890][   transport.py][1871] : EOF in transport thread
2025-07-01 16:40:56,019 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:40:56,030 [DEBUG][       Thread-610893][   transport.py][1871] : starting thread (client mode): 0x818f130
2025-07-01 16:40:56,030 [DEBUG][       Thread-610893][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:40:56,046 [DEBUG][       Thread-610893][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:40:56,046 [ INFO][       Thread-610893][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:40:56,055 [DEBUG][       Thread-610893][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:40:56,055 [DEBUG][       Thread-610893][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:40:56,055 [DEBUG][       Thread-610893][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:40:56,055 [DEBUG][       Thread-610893][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:40:56,055 [DEBUG][       Thread-610893][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:40:56,055 [DEBUG][       Thread-610893][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:40:56,055 [DEBUG][       Thread-610893][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:40:56,055 [DEBUG][       Thread-610893][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:40:56,056 [DEBUG][       Thread-610893][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:40:56,056 [DEBUG][       Thread-610893][   transport.py][1871] : client lang: <none>
2025-07-01 16:40:56,056 [DEBUG][       Thread-610893][   transport.py][1871] : server lang: <none>
2025-07-01 16:40:56,056 [DEBUG][       Thread-610893][   transport.py][1871] : kex follows: False
2025-07-01 16:40:56,056 [DEBUG][       Thread-610893][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:40:56,056 [DEBUG][       Thread-610893][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:40:56,056 [DEBUG][       Thread-610893][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:40:56,056 [DEBUG][       Thread-610893][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:40:56,056 [DEBUG][       Thread-610893][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:40:56,056 [DEBUG][       Thread-610893][   transport.py][1871] : Compression: none
2025-07-01 16:40:56,056 [DEBUG][       Thread-610893][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:40:56,114 [DEBUG][       Thread-610893][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:40:56,114 [DEBUG][       Thread-610893][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:40:56,115 [DEBUG][       Thread-610893][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:40:56,115 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:40:56,115 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:40:56,172 [DEBUG][       Thread-610893][   transport.py][1871] : userauth is OK
2025-07-01 16:40:56,172 [DEBUG][       Thread-610893][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:40:56,172 [DEBUG][       Thread-610893][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:40:56,172 [DEBUG][       Thread-610893][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:40:56,172 [DEBUG][       Thread-610893][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:40:56,190 [ INFO][       Thread-610893][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:40:56,191 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:40:56,191 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:40:57,221 [DEBUG][       Thread-610893][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:40:57,222 [DEBUG][       Thread-610893][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:40:57,272 [DEBUG][       Thread-610893][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:40:57,272 [DEBUG][       Thread-610893][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:40:57,281 [DEBUG][       Thread-610893][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:40:57,290 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:40:57,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-07-01 16:40: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') -> 00000000
2025-07-01 16:40:57,308 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:40:57,308 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:40:57,308 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:40:57,316 [DEBUG][       Thread-610893][   transport.py][1871] : EOF in transport thread
2025-07-01 16:40:58,883 [DEBUG][Thread-610895 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:41:07,319 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:41:07,319 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:41:07,319 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:41:07,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-07-01 16:41:07,803 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 40, 52), 10.76, 48.17, 0.0, 31.46, 13.45, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:41:07,804 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:40:52
2025-07-01 16:41:07,889 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:41:07,894 [DEBUG][       Thread-610896][   transport.py][1871] : starting thread (client mode): 0x82b1db0
2025-07-01 16:41:07,894 [DEBUG][       Thread-610896][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:41:07,903 [DEBUG][Thread-610897 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:41:07,915 [DEBUG][       Thread-610896][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:41:07,915 [ INFO][       Thread-610896][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:41:07,917 [DEBUG][       Thread-610896][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:41:07,917 [DEBUG][       Thread-610896][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:41:07,917 [DEBUG][       Thread-610896][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:41:07,917 [DEBUG][       Thread-610896][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:41:07,917 [DEBUG][       Thread-610896][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:41:07,917 [DEBUG][       Thread-610896][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:41:07,917 [DEBUG][       Thread-610896][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:41:07,917 [DEBUG][       Thread-610896][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:41:07,917 [DEBUG][       Thread-610896][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:41:07,917 [DEBUG][       Thread-610896][   transport.py][1871] : client lang: <none>
2025-07-01 16:41:07,917 [DEBUG][       Thread-610896][   transport.py][1871] : server lang: <none>
2025-07-01 16:41:07,917 [DEBUG][       Thread-610896][   transport.py][1871] : kex follows: False
2025-07-01 16:41:07,917 [DEBUG][       Thread-610896][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:41:07,917 [DEBUG][       Thread-610896][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:41:07,917 [DEBUG][       Thread-610896][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:41:07,917 [DEBUG][       Thread-610896][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:41:07,917 [DEBUG][       Thread-610896][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:41:07,917 [DEBUG][       Thread-610896][   transport.py][1871] : Compression: none
2025-07-01 16:41:07,917 [DEBUG][       Thread-610896][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:41:07,934 [DEBUG][       Thread-610896][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:41:07,934 [DEBUG][       Thread-610896][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:41:07,935 [DEBUG][       Thread-610896][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:41:07,935 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:41:07,935 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:41:07,936 [DEBUG][       Thread-610896][   transport.py][1871] : userauth is OK
2025-07-01 16:41:07,948 [ INFO][       Thread-610896][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:41:07,949 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:41:08,584 [DEBUG][       Thread-610896][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:41:08,584 [DEBUG][       Thread-610896][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:41:08,625 [DEBUG][       Thread-610896][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:41:08,625 [DEBUG][       Thread-610896][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:41:08,629 [DEBUG][       Thread-610896][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:41:08,639 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:41:08,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:41:08,641 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:41:08,642 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:41:08,644 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:41:08,645 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:41:08,645 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:41:08,645 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:41:08,645 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.611744 -999.00  +13.20  27.00     53   +4.00 1 2 1 1 1   887    0 8.27 -42.80 ----- 27.2 27.0 22.4 34.9 14.4 -20.3 14.2 -19.8 14.0 -19.3 14.4 -19.4
2025-07-01 16:41:08,645 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:41:08,645 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:41:08,645 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.611744
2025-07-01 16:41:08,646 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:41:08,646 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:41:08,646 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:41:08,646 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:41:08,646 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:41:08,646 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:40:52', tmtdew=10.76, humidity=48.17, cloud=0.0, wind=31.46, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:40:54.682', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:41:08,646 [DEBUG][       Thread-610896][   transport.py][1871] : EOF in transport thread
2025-07-01 16:41:08,719 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:41:08,728 [DEBUG][       Thread-610900][   transport.py][1871] : starting thread (client mode): 0x75a8490
2025-07-01 16:41:08,728 [DEBUG][       Thread-610900][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:41:08,743 [DEBUG][       Thread-610900][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:41:08,743 [ INFO][       Thread-610900][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:41:08,751 [DEBUG][       Thread-610900][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:41:08,751 [DEBUG][       Thread-610900][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:41:08,751 [DEBUG][       Thread-610900][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:41:08,751 [DEBUG][       Thread-610900][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:41:08,751 [DEBUG][       Thread-610900][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:41:08,751 [DEBUG][       Thread-610900][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:41:08,751 [DEBUG][       Thread-610900][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:41:08,751 [DEBUG][       Thread-610900][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:41:08,751 [DEBUG][       Thread-610900][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:41:08,751 [DEBUG][       Thread-610900][   transport.py][1871] : client lang: <none>
2025-07-01 16:41:08,751 [DEBUG][       Thread-610900][   transport.py][1871] : server lang: <none>
2025-07-01 16:41:08,751 [DEBUG][       Thread-610900][   transport.py][1871] : kex follows: False
2025-07-01 16:41:08,751 [DEBUG][       Thread-610900][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:41:08,751 [DEBUG][       Thread-610900][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:41:08,751 [DEBUG][       Thread-610900][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:41:08,751 [DEBUG][       Thread-610900][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:41:08,751 [DEBUG][       Thread-610900][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:41:08,751 [DEBUG][       Thread-610900][   transport.py][1871] : Compression: none
2025-07-01 16:41:08,751 [DEBUG][       Thread-610900][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:41:08,806 [DEBUG][       Thread-610900][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:41:08,806 [DEBUG][       Thread-610900][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:41:08,807 [DEBUG][       Thread-610900][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:41:08,807 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:41:08,807 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:41:08,863 [DEBUG][       Thread-610900][   transport.py][1871] : userauth is OK
2025-07-01 16:41:08,864 [DEBUG][       Thread-610900][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:41:08,864 [DEBUG][       Thread-610900][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:41:08,864 [DEBUG][       Thread-610900][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:41:08,864 [DEBUG][       Thread-610900][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:41:08,883 [ INFO][       Thread-610900][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:41:08,883 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:41:08,884 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:41:09,904 [DEBUG][       Thread-610900][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:41:09,904 [DEBUG][       Thread-610900][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:41:09,951 [DEBUG][       Thread-610900][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:41:09,952 [DEBUG][       Thread-610900][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:41:09,961 [DEBUG][       Thread-610900][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:41:09,969 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:41:09,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-07-01 16:41:09,978 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 16:41:09,987 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:41:09,987 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:41:09,987 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:41:09,995 [DEBUG][       Thread-610900][   transport.py][1871] : EOF in transport thread
2025-07-01 16:41:16,926 [DEBUG][Thread-610902 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:41:19,992 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:41:19,992 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:41:19,993 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:41:19,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-07-01 16:41:20,481 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 40, 52), 10.76, 48.17, 0.0, 31.46, 13.45, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:41:20,481 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:40:52
2025-07-01 16:41:20,571 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:41:20,576 [DEBUG][       Thread-610903][   transport.py][1871] : starting thread (client mode): 0x81e4e50
2025-07-01 16:41:20,576 [DEBUG][       Thread-610903][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:41:20,598 [DEBUG][       Thread-610903][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:41:20,598 [ INFO][       Thread-610903][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:41:20,601 [DEBUG][       Thread-610903][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:41:20,601 [DEBUG][       Thread-610903][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:41:20,601 [DEBUG][       Thread-610903][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:41:20,601 [DEBUG][       Thread-610903][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:41:20,601 [DEBUG][       Thread-610903][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:41:20,601 [DEBUG][       Thread-610903][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:41:20,601 [DEBUG][       Thread-610903][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:41:20,601 [DEBUG][       Thread-610903][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:41:20,601 [DEBUG][       Thread-610903][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:41:20,601 [DEBUG][       Thread-610903][   transport.py][1871] : client lang: <none>
2025-07-01 16:41:20,601 [DEBUG][       Thread-610903][   transport.py][1871] : server lang: <none>
2025-07-01 16:41:20,601 [DEBUG][       Thread-610903][   transport.py][1871] : kex follows: False
2025-07-01 16:41:20,601 [DEBUG][       Thread-610903][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:41:20,601 [DEBUG][       Thread-610903][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:41:20,601 [DEBUG][       Thread-610903][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:41:20,601 [DEBUG][       Thread-610903][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:41:20,601 [DEBUG][       Thread-610903][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:41:20,601 [DEBUG][       Thread-610903][   transport.py][1871] : Compression: none
2025-07-01 16:41:20,601 [DEBUG][       Thread-610903][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:41:20,617 [DEBUG][       Thread-610903][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:41:20,617 [DEBUG][       Thread-610903][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:41:20,617 [DEBUG][       Thread-610903][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:41:20,618 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:41:20,618 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:41:20,618 [DEBUG][       Thread-610903][   transport.py][1871] : userauth is OK
2025-07-01 16:41:20,642 [ INFO][       Thread-610903][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:41:20,642 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:41:21,447 [DEBUG][       Thread-610903][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:41:21,447 [DEBUG][       Thread-610903][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:41:21,488 [DEBUG][       Thread-610903][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:41:21,488 [DEBUG][       Thread-610903][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:41:21,491 [DEBUG][       Thread-610903][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:41:21,502 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:41:21,502 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:41:21,503 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:41:21,504 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:41:21,507 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:41:21,508 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:41:21,508 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:41:21,508 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:41:21,508 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.611744 -999.00  +13.20  27.00     53   +4.00 1 2 1 1 1   887    0 8.27 -42.80 ----- 27.2 27.0 22.4 34.9 14.4 -20.3 14.2 -19.8 14.0 -19.3 14.4 -19.4
2025-07-01 16:41:21,508 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:41:21,508 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:41:21,508 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.611744
2025-07-01 16:41:21,508 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:41:21,509 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:41:21,509 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:41:21,509 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:41:21,509 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:41:21,509 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:40:52', tmtdew=10.76, humidity=48.17, cloud=0.0, wind=31.46, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:40:54.682', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:41:21,509 [DEBUG][       Thread-610903][   transport.py][1871] : EOF in transport thread
2025-07-01 16:41:21,582 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:41:25,962 [DEBUG][Thread-610906 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:41:34,983 [DEBUG][Thread-610907 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:41:39,093 [DEBUG][Thread-610908 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:41:44,006 [DEBUG][Thread-610909 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:41:53,028 [DEBUG][Thread-610910 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:42:02,047 [DEBUG][Thread-610911 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:42:11,070 [DEBUG][Thread-610912 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:42:20,093 [DEBUG][Thread-610913 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:42:29,116 [DEBUG][Thread-610914 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:42:38,131 [DEBUG][Thread-610915 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:42:39,124 [DEBUG][Thread-610916 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:42:47,153 [DEBUG][Thread-610917 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:42:56,175 [DEBUG][Thread-610918 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:43:05,198 [DEBUG][Thread-610919 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:43:14,215 [DEBUG][Thread-610920 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:43:23,238 [DEBUG][Thread-610921 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:43:30,708 [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-07-01 16:43:32,261 [DEBUG][Thread-610922 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:43:39,154 [DEBUG][Thread-610923 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:43:40,719 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:43:40,719 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:43:40,719 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:43:40,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-07-01 16:43:41,237 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 43, 32), 10.71, 48.24, 0.0, 28.3, 13.44, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:43:41,237 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:43:32
2025-07-01 16:43:41,279 [DEBUG][Thread-610924 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:43:41,322 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:43:41,326 [DEBUG][       Thread-610925][   transport.py][1871] : starting thread (client mode): 0x81e6290
2025-07-01 16:43:41,326 [DEBUG][       Thread-610925][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:43:41,348 [DEBUG][       Thread-610925][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:43:41,348 [ INFO][       Thread-610925][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:43:41,350 [DEBUG][       Thread-610925][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:43:41,350 [DEBUG][       Thread-610925][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:43:41,350 [DEBUG][       Thread-610925][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:43:41,350 [DEBUG][       Thread-610925][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:43:41,350 [DEBUG][       Thread-610925][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:43:41,350 [DEBUG][       Thread-610925][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:43:41,350 [DEBUG][       Thread-610925][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:43:41,350 [DEBUG][       Thread-610925][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:43:41,350 [DEBUG][       Thread-610925][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:43:41,350 [DEBUG][       Thread-610925][   transport.py][1871] : client lang: <none>
2025-07-01 16:43:41,350 [DEBUG][       Thread-610925][   transport.py][1871] : server lang: <none>
2025-07-01 16:43:41,350 [DEBUG][       Thread-610925][   transport.py][1871] : kex follows: False
2025-07-01 16:43:41,350 [DEBUG][       Thread-610925][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:43:41,350 [DEBUG][       Thread-610925][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:43:41,350 [DEBUG][       Thread-610925][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:43:41,350 [DEBUG][       Thread-610925][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:43:41,350 [DEBUG][       Thread-610925][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:43:41,350 [DEBUG][       Thread-610925][   transport.py][1871] : Compression: none
2025-07-01 16:43:41,350 [DEBUG][       Thread-610925][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:43:41,359 [DEBUG][       Thread-610925][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:43:41,359 [DEBUG][       Thread-610925][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:43:41,360 [DEBUG][       Thread-610925][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:43:41,360 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:43:41,360 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:43:41,362 [DEBUG][       Thread-610925][   transport.py][1871] : userauth is OK
2025-07-01 16:43:41,386 [ INFO][       Thread-610925][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:43:41,386 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:43:42,050 [DEBUG][       Thread-610925][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:43:42,051 [DEBUG][       Thread-610925][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:43:42,097 [DEBUG][       Thread-610925][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:43:42,097 [DEBUG][       Thread-610925][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:43:42,100 [DEBUG][       Thread-610925][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:43:42,114 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:43:42,114 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:43:42,116 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:43:42,118 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:43:42,123 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:43:42,125 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:43:42,125 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:43:42,125 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:43:42,125 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.613133 -999.00  +13.20  28.29     53   +4.00 1 2 1 1 1   887    0 8.49 -43.59 ----- 26.5 28.3 33.0 36.7 14.3 -20.5 14.1 -20.1 14.0 -19.5 14.3 -19.6
2025-07-01 16:43:42,126 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:43:42,126 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:43:42,126 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.613133
2025-07-01 16:43:42,126 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:43:42,127 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:43:42,127 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:43:42,127 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:43:42,127 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:43:42,127 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:43:32', tmtdew=10.71, humidity=48.24, cloud=0.0, wind=28.3, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:42:54.691', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:43:42,127 [DEBUG][       Thread-610925][   transport.py][1871] : EOF in transport thread
2025-07-01 16:43:42,211 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:43:42,223 [DEBUG][       Thread-610928][   transport.py][1871] : starting thread (client mode): 0x81da350
2025-07-01 16:43:42,223 [DEBUG][       Thread-610928][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:43:42,240 [DEBUG][       Thread-610928][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:43:42,240 [ INFO][       Thread-610928][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:43:42,252 [DEBUG][       Thread-610928][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:43:42,252 [DEBUG][       Thread-610928][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:43:42,252 [DEBUG][       Thread-610928][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:43:42,252 [DEBUG][       Thread-610928][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:43:42,252 [DEBUG][       Thread-610928][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:43:42,252 [DEBUG][       Thread-610928][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:43:42,252 [DEBUG][       Thread-610928][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:43:42,252 [DEBUG][       Thread-610928][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:43:42,252 [DEBUG][       Thread-610928][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:43:42,252 [DEBUG][       Thread-610928][   transport.py][1871] : client lang: <none>
2025-07-01 16:43:42,252 [DEBUG][       Thread-610928][   transport.py][1871] : server lang: <none>
2025-07-01 16:43:42,252 [DEBUG][       Thread-610928][   transport.py][1871] : kex follows: False
2025-07-01 16:43:42,252 [DEBUG][       Thread-610928][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:43:42,252 [DEBUG][       Thread-610928][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:43:42,253 [DEBUG][       Thread-610928][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:43:42,253 [DEBUG][       Thread-610928][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:43:42,253 [DEBUG][       Thread-610928][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:43:42,253 [DEBUG][       Thread-610928][   transport.py][1871] : Compression: none
2025-07-01 16:43:42,253 [DEBUG][       Thread-610928][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:43:42,305 [DEBUG][       Thread-610928][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:43:42,305 [DEBUG][       Thread-610928][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:43:42,306 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:43:42,307 [DEBUG][       Thread-610928][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:43:42,307 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:43:42,361 [DEBUG][       Thread-610928][   transport.py][1871] : userauth is OK
2025-07-01 16:43:42,361 [DEBUG][       Thread-610928][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:43:42,361 [DEBUG][       Thread-610928][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:43:42,361 [DEBUG][       Thread-610928][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:43:42,361 [DEBUG][       Thread-610928][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:43:42,380 [ INFO][       Thread-610928][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:43:42,381 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:43:42,381 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:43:43,441 [DEBUG][       Thread-610928][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:43:43,441 [DEBUG][       Thread-610928][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:43:43,495 [DEBUG][       Thread-610928][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:43:43,495 [DEBUG][       Thread-610928][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:43:43,506 [DEBUG][       Thread-610928][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:43:43,515 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:43:43,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-07-01 16:43:43,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-07-01 16:43:43,533 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:43:43,533 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:43:43,533 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:43:43,545 [DEBUG][       Thread-610928][   transport.py][1871] : EOF in transport thread
2025-07-01 16:43:50,298 [DEBUG][Thread-610930 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:43:53,540 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:43:53,540 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:43:53,540 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:43:53,541 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:43:54,038 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 43, 32), 10.71, 48.24, 0.0, 28.3, 13.44, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:43:54,038 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:43:32
2025-07-01 16:43:54,123 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:43:54,128 [DEBUG][       Thread-610931][   transport.py][1871] : starting thread (client mode): 0x81e7fa0
2025-07-01 16:43:54,128 [DEBUG][       Thread-610931][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:43:54,149 [DEBUG][       Thread-610931][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:43:54,149 [ INFO][       Thread-610931][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:43:54,152 [DEBUG][       Thread-610931][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:43:54,152 [DEBUG][       Thread-610931][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:43:54,152 [DEBUG][       Thread-610931][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:43:54,152 [DEBUG][       Thread-610931][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:43:54,153 [DEBUG][       Thread-610931][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:43:54,153 [DEBUG][       Thread-610931][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:43:54,153 [DEBUG][       Thread-610931][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:43:54,153 [DEBUG][       Thread-610931][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:43:54,153 [DEBUG][       Thread-610931][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:43:54,153 [DEBUG][       Thread-610931][   transport.py][1871] : client lang: <none>
2025-07-01 16:43:54,153 [DEBUG][       Thread-610931][   transport.py][1871] : server lang: <none>
2025-07-01 16:43:54,153 [DEBUG][       Thread-610931][   transport.py][1871] : kex follows: False
2025-07-01 16:43:54,153 [DEBUG][       Thread-610931][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:43:54,153 [DEBUG][       Thread-610931][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:43:54,153 [DEBUG][       Thread-610931][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:43:54,153 [DEBUG][       Thread-610931][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:43:54,153 [DEBUG][       Thread-610931][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:43:54,153 [DEBUG][       Thread-610931][   transport.py][1871] : Compression: none
2025-07-01 16:43:54,153 [DEBUG][       Thread-610931][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:43:54,169 [DEBUG][       Thread-610931][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:43:54,169 [DEBUG][       Thread-610931][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:43:54,170 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:43:54,170 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:43:54,170 [DEBUG][       Thread-610931][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:43:54,171 [DEBUG][       Thread-610931][   transport.py][1871] : userauth is OK
2025-07-01 16:43:54,195 [ INFO][       Thread-610931][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:43:54,196 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:43:54,835 [DEBUG][       Thread-610931][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:43:54,835 [DEBUG][       Thread-610931][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:43:54,877 [DEBUG][       Thread-610931][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:43:54,877 [DEBUG][       Thread-610931][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:43:54,880 [DEBUG][       Thread-610931][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:43:54,892 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:43:54,892 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:43:54,894 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:43:54,897 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:43:54,902 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:43:54,904 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:43:54,905 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:43:54,905 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:43:54,905 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.613480 -999.00  +13.20  32.44     53   +3.90 1 2 2 1 1   887    0 8.29 -46.11 ----- 27.3 32.4 9.6 38.9 14.3 -20.4 14.1 -19.9 13.9 -19.6 14.3 -19.7
2025-07-01 16:43:54,906 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:43:54,906 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:43:54,906 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.613480
2025-07-01 16:43:54,906 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:43:54,907 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:43:54,907 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:43:54,907 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:43:54,907 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:43:54,907 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:43:32', tmtdew=10.71, humidity=48.24, cloud=0.0, wind=28.3, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:43:24.672', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:43:54,907 [DEBUG][       Thread-610931][   transport.py][1871] : EOF in transport thread
2025-07-01 16:43:54,997 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:43:55,007 [DEBUG][       Thread-610934][   transport.py][1871] : starting thread (client mode): 0x8170fa0
2025-07-01 16:43:55,007 [DEBUG][       Thread-610934][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:43:55,026 [DEBUG][       Thread-610934][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:43:55,026 [ INFO][       Thread-610934][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:43:55,034 [DEBUG][       Thread-610934][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:43:55,034 [DEBUG][       Thread-610934][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:43:55,034 [DEBUG][       Thread-610934][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:43:55,034 [DEBUG][       Thread-610934][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:43:55,034 [DEBUG][       Thread-610934][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:43:55,034 [DEBUG][       Thread-610934][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:43:55,034 [DEBUG][       Thread-610934][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:43:55,035 [DEBUG][       Thread-610934][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:43:55,035 [DEBUG][       Thread-610934][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:43:55,035 [DEBUG][       Thread-610934][   transport.py][1871] : client lang: <none>
2025-07-01 16:43:55,035 [DEBUG][       Thread-610934][   transport.py][1871] : server lang: <none>
2025-07-01 16:43:55,035 [DEBUG][       Thread-610934][   transport.py][1871] : kex follows: False
2025-07-01 16:43:55,035 [DEBUG][       Thread-610934][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:43:55,035 [DEBUG][       Thread-610934][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:43:55,035 [DEBUG][       Thread-610934][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:43:55,035 [DEBUG][       Thread-610934][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:43:55,035 [DEBUG][       Thread-610934][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:43:55,035 [DEBUG][       Thread-610934][   transport.py][1871] : Compression: none
2025-07-01 16:43:55,035 [DEBUG][       Thread-610934][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:43:55,093 [DEBUG][       Thread-610934][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:43:55,094 [DEBUG][       Thread-610934][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:43:55,095 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:43:55,095 [DEBUG][       Thread-610934][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:43:55,096 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:43:55,153 [DEBUG][       Thread-610934][   transport.py][1871] : userauth is OK
2025-07-01 16:43:55,153 [DEBUG][       Thread-610934][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:43:55,153 [DEBUG][       Thread-610934][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:43:55,153 [DEBUG][       Thread-610934][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:43:55,153 [DEBUG][       Thread-610934][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:43:55,171 [ INFO][       Thread-610934][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:43:55,172 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:43:55,172 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:43:56,188 [DEBUG][       Thread-610934][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:43:56,188 [DEBUG][       Thread-610934][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:43:56,236 [DEBUG][       Thread-610934][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:43:56,236 [DEBUG][       Thread-610934][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:43:56,245 [DEBUG][       Thread-610934][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:43:56,254 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:43:56,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-07-01 16:43:56,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-07-01 16:43:56,273 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:43:56,273 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:43:56,273 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:43:56,281 [DEBUG][       Thread-610934][   transport.py][1871] : EOF in transport thread
2025-07-01 16:43:59,322 [DEBUG][Thread-610936 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:44:06,280 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:44:06,280 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:44:06,280 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:44:06,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-07-01 16:44:06,796 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 44, 4), 10.68, 48.34, 0.0, 26.08, 13.44, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:44:06,796 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:44:04
2025-07-01 16:44:06,881 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:44:06,885 [DEBUG][       Thread-610937][   transport.py][1871] : starting thread (client mode): 0x82b3cd0
2025-07-01 16:44:06,885 [DEBUG][       Thread-610937][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:44:06,907 [DEBUG][       Thread-610937][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:44:06,907 [ INFO][       Thread-610937][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:44:06,911 [DEBUG][       Thread-610937][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:44:06,911 [DEBUG][       Thread-610937][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:44:06,911 [DEBUG][       Thread-610937][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:44:06,911 [DEBUG][       Thread-610937][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:44:06,911 [DEBUG][       Thread-610937][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:44:06,911 [DEBUG][       Thread-610937][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:44:06,911 [DEBUG][       Thread-610937][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:44:06,911 [DEBUG][       Thread-610937][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:44:06,911 [DEBUG][       Thread-610937][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:44:06,911 [DEBUG][       Thread-610937][   transport.py][1871] : client lang: <none>
2025-07-01 16:44:06,911 [DEBUG][       Thread-610937][   transport.py][1871] : server lang: <none>
2025-07-01 16:44:06,911 [DEBUG][       Thread-610937][   transport.py][1871] : kex follows: False
2025-07-01 16:44:06,911 [DEBUG][       Thread-610937][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:44:06,911 [DEBUG][       Thread-610937][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:44:06,911 [DEBUG][       Thread-610937][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:44:06,911 [DEBUG][       Thread-610937][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:44:06,911 [DEBUG][       Thread-610937][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:44:06,911 [DEBUG][       Thread-610937][   transport.py][1871] : Compression: none
2025-07-01 16:44:06,911 [DEBUG][       Thread-610937][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:44:06,929 [DEBUG][       Thread-610937][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:44:06,929 [DEBUG][       Thread-610937][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:44:06,930 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:44:06,930 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:44:06,930 [DEBUG][       Thread-610937][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:44:06,932 [DEBUG][       Thread-610937][   transport.py][1871] : userauth is OK
2025-07-01 16:44:06,945 [ INFO][       Thread-610937][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:44:06,945 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:44:07,601 [DEBUG][       Thread-610937][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:44:07,601 [DEBUG][       Thread-610937][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:44:07,645 [DEBUG][       Thread-610937][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:44:07,645 [DEBUG][       Thread-610937][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:44:07,648 [DEBUG][       Thread-610937][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:44:07,660 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:44:07,661 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:44:07,662 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:44:07,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:44:07,670 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:44:07,671 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:44:07,672 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:44:07,672 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:44:07,672 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.613480 -999.00  +13.20  32.44     53   +3.90 1 2 2 1 1   887    0 8.29 -46.11 ----- 27.3 32.4 9.6 38.9 14.3 -20.4 14.1 -19.9 13.9 -19.6 14.3 -19.7
2025-07-01 16:44:07,672 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:44:07,672 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:44:07,673 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.613480
2025-07-01 16:44:07,673 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:44:07,674 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:44:07,674 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:44:07,674 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:44:07,674 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:44:07,674 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:44:04', tmtdew=10.68, humidity=48.34, cloud=0.0, wind=26.08, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:43:24.672', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:44:07,674 [DEBUG][       Thread-610937][   transport.py][1871] : EOF in transport thread
2025-07-01 16:44:07,758 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:44:07,769 [DEBUG][       Thread-610940][   transport.py][1871] : starting thread (client mode): 0x81a6f20
2025-07-01 16:44:07,769 [DEBUG][       Thread-610940][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:44:07,785 [DEBUG][       Thread-610940][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:44:07,785 [ INFO][       Thread-610940][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:44:07,793 [DEBUG][       Thread-610940][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:44:07,794 [DEBUG][       Thread-610940][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:44:07,794 [DEBUG][       Thread-610940][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:44:07,794 [DEBUG][       Thread-610940][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:44:07,794 [DEBUG][       Thread-610940][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:44:07,794 [DEBUG][       Thread-610940][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:44:07,794 [DEBUG][       Thread-610940][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:44:07,794 [DEBUG][       Thread-610940][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:44:07,794 [DEBUG][       Thread-610940][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:44:07,794 [DEBUG][       Thread-610940][   transport.py][1871] : client lang: <none>
2025-07-01 16:44:07,794 [DEBUG][       Thread-610940][   transport.py][1871] : server lang: <none>
2025-07-01 16:44:07,794 [DEBUG][       Thread-610940][   transport.py][1871] : kex follows: False
2025-07-01 16:44:07,794 [DEBUG][       Thread-610940][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:44:07,794 [DEBUG][       Thread-610940][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:44:07,794 [DEBUG][       Thread-610940][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:44:07,794 [DEBUG][       Thread-610940][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:44:07,794 [DEBUG][       Thread-610940][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:44:07,795 [DEBUG][       Thread-610940][   transport.py][1871] : Compression: none
2025-07-01 16:44:07,795 [DEBUG][       Thread-610940][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:44:07,858 [DEBUG][       Thread-610940][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:44:07,859 [DEBUG][       Thread-610940][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:44:07,859 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:44:07,860 [DEBUG][       Thread-610940][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:44:07,860 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:44:07,921 [DEBUG][       Thread-610940][   transport.py][1871] : userauth is OK
2025-07-01 16:44:07,921 [DEBUG][       Thread-610940][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:44:07,921 [DEBUG][       Thread-610940][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:44:07,921 [DEBUG][       Thread-610940][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:44:07,921 [DEBUG][       Thread-610940][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:44:07,940 [ INFO][       Thread-610940][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:44:07,941 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:44:07,941 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:44:08,348 [DEBUG][Thread-610942 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:44:08,980 [DEBUG][       Thread-610940][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:44:08,980 [DEBUG][       Thread-610940][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:44:09,032 [DEBUG][       Thread-610940][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:44:09,032 [DEBUG][       Thread-610940][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:44:09,041 [DEBUG][       Thread-610940][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:44:09,050 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:44:09,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-07-01 16:44:09,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-07-01 16:44:09,067 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:44:09,067 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:44:09,067 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:44:09,076 [DEBUG][       Thread-610940][   transport.py][1871] : EOF in transport thread
2025-07-01 16:44:17,384 [DEBUG][Thread-610943 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:44:19,078 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:44:19,078 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:44:19,078 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:44:19,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-07-01 16:44:19,580 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 44, 4), 10.68, 48.34, 0.0, 26.08, 13.44, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:44:19,580 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:44:04
2025-07-01 16:44:19,665 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:44:19,669 [DEBUG][       Thread-610944][   transport.py][1871] : starting thread (client mode): 0x81a5270
2025-07-01 16:44:19,669 [DEBUG][       Thread-610944][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:44:19,690 [DEBUG][       Thread-610944][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:44:19,690 [ INFO][       Thread-610944][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:44:19,693 [DEBUG][       Thread-610944][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:44:19,693 [DEBUG][       Thread-610944][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:44:19,693 [DEBUG][       Thread-610944][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:44:19,693 [DEBUG][       Thread-610944][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:44:19,693 [DEBUG][       Thread-610944][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:44:19,693 [DEBUG][       Thread-610944][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:44:19,693 [DEBUG][       Thread-610944][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:44:19,693 [DEBUG][       Thread-610944][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:44:19,693 [DEBUG][       Thread-610944][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:44:19,693 [DEBUG][       Thread-610944][   transport.py][1871] : client lang: <none>
2025-07-01 16:44:19,693 [DEBUG][       Thread-610944][   transport.py][1871] : server lang: <none>
2025-07-01 16:44:19,693 [DEBUG][       Thread-610944][   transport.py][1871] : kex follows: False
2025-07-01 16:44:19,693 [DEBUG][       Thread-610944][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:44:19,693 [DEBUG][       Thread-610944][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:44:19,693 [DEBUG][       Thread-610944][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:44:19,693 [DEBUG][       Thread-610944][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:44:19,693 [DEBUG][       Thread-610944][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:44:19,693 [DEBUG][       Thread-610944][   transport.py][1871] : Compression: none
2025-07-01 16:44:19,693 [DEBUG][       Thread-610944][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:44:19,711 [DEBUG][       Thread-610944][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:44:19,711 [DEBUG][       Thread-610944][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:44:19,711 [DEBUG][       Thread-610944][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:44:19,712 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:44:19,712 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:44:19,713 [DEBUG][       Thread-610944][   transport.py][1871] : userauth is OK
2025-07-01 16:44:19,726 [ INFO][       Thread-610944][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:44:19,727 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:44:20,340 [DEBUG][       Thread-610944][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:44:20,340 [DEBUG][       Thread-610944][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:44:20,381 [DEBUG][       Thread-610944][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:44:20,381 [DEBUG][       Thread-610944][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:44:20,383 [DEBUG][       Thread-610944][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:44:20,394 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:44:20,395 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:44:20,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:44:20,398 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:44:20,403 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:44:20,405 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:44:20,405 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:44:20,406 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:44:20,406 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.613827 -999.00  +13.20  22.96     53   +3.90 1 2 1 1 1   887    0 7.81 -44.28 ----- 33.0 23.0 15.2 41.8 14.3 -20.4 14.1 -20.3 13.9 -19.6 14.3 -19.8
2025-07-01 16:44:20,406 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:44:20,406 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:44:20,406 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.613827
2025-07-01 16:44:20,406 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:44:20,407 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:44:20,407 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:44:20,407 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:44:20,407 [DEBUG][       Thread-610944][   transport.py][1871] : EOF in transport thread
2025-07-01 16:44:20,408 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:44:20,408 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:44:04', tmtdew=10.68, humidity=48.34, cloud=0.0, wind=26.08, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:43:54.653', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:44:20,491 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:44:20,500 [DEBUG][       Thread-610947][   transport.py][1871] : starting thread (client mode): 0x8172c50
2025-07-01 16:44:20,500 [DEBUG][       Thread-610947][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:44:20,515 [DEBUG][       Thread-610947][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:44:20,515 [ INFO][       Thread-610947][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:44:20,523 [DEBUG][       Thread-610947][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:44:20,523 [DEBUG][       Thread-610947][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:44:20,523 [DEBUG][       Thread-610947][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:44:20,523 [DEBUG][       Thread-610947][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:44:20,523 [DEBUG][       Thread-610947][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:44:20,523 [DEBUG][       Thread-610947][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:44:20,523 [DEBUG][       Thread-610947][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:44:20,523 [DEBUG][       Thread-610947][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:44:20,523 [DEBUG][       Thread-610947][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:44:20,523 [DEBUG][       Thread-610947][   transport.py][1871] : client lang: <none>
2025-07-01 16:44:20,523 [DEBUG][       Thread-610947][   transport.py][1871] : server lang: <none>
2025-07-01 16:44:20,524 [DEBUG][       Thread-610947][   transport.py][1871] : kex follows: False
2025-07-01 16:44:20,524 [DEBUG][       Thread-610947][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:44:20,524 [DEBUG][       Thread-610947][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:44:20,524 [DEBUG][       Thread-610947][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:44:20,524 [DEBUG][       Thread-610947][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:44:20,524 [DEBUG][       Thread-610947][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:44:20,524 [DEBUG][       Thread-610947][   transport.py][1871] : Compression: none
2025-07-01 16:44:20,524 [DEBUG][       Thread-610947][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:44:20,583 [DEBUG][       Thread-610947][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:44:20,584 [DEBUG][       Thread-610947][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:44:20,584 [DEBUG][       Thread-610947][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:44:20,584 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:44:20,585 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:44:20,641 [DEBUG][       Thread-610947][   transport.py][1871] : userauth is OK
2025-07-01 16:44:20,641 [DEBUG][       Thread-610947][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:44:20,641 [DEBUG][       Thread-610947][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:44:20,641 [DEBUG][       Thread-610947][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:44:20,642 [DEBUG][       Thread-610947][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:44:20,663 [ INFO][       Thread-610947][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:44:20,663 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:44:20,664 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:44:21,691 [DEBUG][       Thread-610947][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:44:21,691 [DEBUG][       Thread-610947][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:44:21,740 [DEBUG][       Thread-610947][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:44:21,740 [DEBUG][       Thread-610947][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:44:21,748 [DEBUG][       Thread-610947][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:44:21,756 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:44:21,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-07-01 16:44:21,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') -> 00000000
2025-07-01 16:44:21,774 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:44:21,774 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:44:21,775 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:44:21,783 [DEBUG][       Thread-610947][   transport.py][1871] : EOF in transport thread
2025-07-01 16:44:26,407 [DEBUG][Thread-610949 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:44:31,784 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:44:31,784 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:44:31,784 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:44:31,786 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:44:32,281 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 44, 4), 10.68, 48.34, 0.0, 26.08, 13.44, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:44:32,281 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:44:04
2025-07-01 16:44:32,365 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:44:32,368 [DEBUG][       Thread-610950][   transport.py][1871] : starting thread (client mode): 0x81a64a0
2025-07-01 16:44:32,368 [DEBUG][       Thread-610950][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:44:32,389 [DEBUG][       Thread-610950][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:44:32,389 [ INFO][       Thread-610950][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:44:32,392 [DEBUG][       Thread-610950][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:44:32,392 [DEBUG][       Thread-610950][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:44:32,392 [DEBUG][       Thread-610950][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:44:32,392 [DEBUG][       Thread-610950][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:44:32,392 [DEBUG][       Thread-610950][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:44:32,392 [DEBUG][       Thread-610950][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:44:32,392 [DEBUG][       Thread-610950][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:44:32,392 [DEBUG][       Thread-610950][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:44:32,392 [DEBUG][       Thread-610950][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:44:32,392 [DEBUG][       Thread-610950][   transport.py][1871] : client lang: <none>
2025-07-01 16:44:32,392 [DEBUG][       Thread-610950][   transport.py][1871] : server lang: <none>
2025-07-01 16:44:32,392 [DEBUG][       Thread-610950][   transport.py][1871] : kex follows: False
2025-07-01 16:44:32,392 [DEBUG][       Thread-610950][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:44:32,392 [DEBUG][       Thread-610950][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:44:32,392 [DEBUG][       Thread-610950][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:44:32,392 [DEBUG][       Thread-610950][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:44:32,392 [DEBUG][       Thread-610950][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:44:32,392 [DEBUG][       Thread-610950][   transport.py][1871] : Compression: none
2025-07-01 16:44:32,392 [DEBUG][       Thread-610950][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:44:32,408 [DEBUG][       Thread-610950][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:44:32,409 [DEBUG][       Thread-610950][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:44:32,409 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:44:32,409 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:44:32,410 [DEBUG][       Thread-610950][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:44:32,410 [DEBUG][       Thread-610950][   transport.py][1871] : userauth is OK
2025-07-01 16:44:32,435 [ INFO][       Thread-610950][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:44:32,436 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:44:33,084 [DEBUG][       Thread-610950][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:44:33,084 [DEBUG][       Thread-610950][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:44:33,125 [DEBUG][       Thread-610950][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:44:33,125 [DEBUG][       Thread-610950][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:44:33,129 [DEBUG][       Thread-610950][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:44:33,140 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:44:33,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:44:33,142 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:44:33,145 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:44:33,151 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:44:33,153 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:44:33,153 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:44:33,154 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:44:33,154 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.613827 -999.00  +13.20  22.96     53   +3.90 1 2 1 1 1   887    0 7.81 -44.28 ----- 33.0 23.0 15.2 41.8 14.3 -20.4 14.1 -20.3 13.9 -19.6 14.3 -19.8
2025-07-01 16:44:33,154 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:44:33,154 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:44:33,154 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.613827
2025-07-01 16:44:33,154 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:44:33,155 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:44:33,155 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:44:33,155 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:44:33,155 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:44:33,155 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:44:04', tmtdew=10.68, humidity=48.34, cloud=0.0, wind=26.08, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:43:54.653', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:44:33,156 [DEBUG][       Thread-610950][   transport.py][1871] : EOF in transport thread
2025-07-01 16:44:33,239 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:44:33,254 [DEBUG][       Thread-610953][   transport.py][1871] : starting thread (client mode): 0x8170ca0
2025-07-01 16:44:33,255 [DEBUG][       Thread-610953][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:44:33,270 [DEBUG][       Thread-610953][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:44:33,270 [ INFO][       Thread-610953][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:44:33,278 [DEBUG][       Thread-610953][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:44:33,278 [DEBUG][       Thread-610953][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:44:33,278 [DEBUG][       Thread-610953][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:44:33,278 [DEBUG][       Thread-610953][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:44:33,278 [DEBUG][       Thread-610953][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:44:33,278 [DEBUG][       Thread-610953][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:44:33,278 [DEBUG][       Thread-610953][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:44:33,278 [DEBUG][       Thread-610953][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:44:33,278 [DEBUG][       Thread-610953][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:44:33,279 [DEBUG][       Thread-610953][   transport.py][1871] : client lang: <none>
2025-07-01 16:44:33,279 [DEBUG][       Thread-610953][   transport.py][1871] : server lang: <none>
2025-07-01 16:44:33,279 [DEBUG][       Thread-610953][   transport.py][1871] : kex follows: False
2025-07-01 16:44:33,279 [DEBUG][       Thread-610953][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:44:33,279 [DEBUG][       Thread-610953][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:44:33,279 [DEBUG][       Thread-610953][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:44:33,279 [DEBUG][       Thread-610953][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:44:33,279 [DEBUG][       Thread-610953][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:44:33,279 [DEBUG][       Thread-610953][   transport.py][1871] : Compression: none
2025-07-01 16:44:33,279 [DEBUG][       Thread-610953][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:44:33,337 [DEBUG][       Thread-610953][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:44:33,338 [DEBUG][       Thread-610953][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:44:33,338 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:44:33,339 [DEBUG][       Thread-610953][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:44:33,339 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:44:33,393 [DEBUG][       Thread-610953][   transport.py][1871] : userauth is OK
2025-07-01 16:44:33,393 [DEBUG][       Thread-610953][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:44:33,393 [DEBUG][       Thread-610953][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:44:33,394 [DEBUG][       Thread-610953][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:44:33,394 [DEBUG][       Thread-610953][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:44:33,412 [ INFO][       Thread-610953][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:44:33,413 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:44:33,413 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:44:34,438 [DEBUG][       Thread-610953][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:44:34,438 [DEBUG][       Thread-610953][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:44:34,488 [DEBUG][       Thread-610953][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:44:34,488 [DEBUG][       Thread-610953][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:44:34,498 [DEBUG][       Thread-610953][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:44:34,509 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:44:34,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-07-01 16:44:34,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-07-01 16:44:34,530 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:44:34,530 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:44:34,531 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:44:34,545 [DEBUG][       Thread-610953][   transport.py][1871] : EOF in transport thread
2025-07-01 16:44:35,426 [DEBUG][Thread-610955 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:44:39,186 [DEBUG][Thread-610956 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:44:44,453 [DEBUG][Thread-610957 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:44:44,541 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:44:44,541 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:44:44,541 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:44:44,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-07-01 16:44:45,059 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 44, 35), 10.68, 48.35, 0.0, 28.21, 13.41, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:44:45,059 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:44:35
2025-07-01 16:44:45,144 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:44:45,148 [DEBUG][       Thread-610958][   transport.py][1871] : starting thread (client mode): 0x81a69b0
2025-07-01 16:44:45,148 [DEBUG][       Thread-610958][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:44:45,170 [DEBUG][       Thread-610958][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:44:45,170 [ INFO][       Thread-610958][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:44:45,174 [DEBUG][       Thread-610958][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:44:45,174 [DEBUG][       Thread-610958][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:44:45,174 [DEBUG][       Thread-610958][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:44:45,174 [DEBUG][       Thread-610958][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:44:45,174 [DEBUG][       Thread-610958][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:44:45,174 [DEBUG][       Thread-610958][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:44:45,174 [DEBUG][       Thread-610958][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:44:45,174 [DEBUG][       Thread-610958][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:44:45,174 [DEBUG][       Thread-610958][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:44:45,174 [DEBUG][       Thread-610958][   transport.py][1871] : client lang: <none>
2025-07-01 16:44:45,174 [DEBUG][       Thread-610958][   transport.py][1871] : server lang: <none>
2025-07-01 16:44:45,174 [DEBUG][       Thread-610958][   transport.py][1871] : kex follows: False
2025-07-01 16:44:45,174 [DEBUG][       Thread-610958][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:44:45,174 [DEBUG][       Thread-610958][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:44:45,174 [DEBUG][       Thread-610958][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:44:45,175 [DEBUG][       Thread-610958][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:44:45,175 [DEBUG][       Thread-610958][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:44:45,175 [DEBUG][       Thread-610958][   transport.py][1871] : Compression: none
2025-07-01 16:44:45,175 [DEBUG][       Thread-610958][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:44:45,190 [DEBUG][       Thread-610958][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:44:45,190 [DEBUG][       Thread-610958][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:44:45,191 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:44:45,191 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:44:45,191 [DEBUG][       Thread-610958][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:44:45,192 [DEBUG][       Thread-610958][   transport.py][1871] : userauth is OK
2025-07-01 16:44:45,216 [ INFO][       Thread-610958][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:44:45,217 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:44:45,884 [DEBUG][       Thread-610958][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:44:45,884 [DEBUG][       Thread-610958][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:44:45,925 [DEBUG][       Thread-610958][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:44:45,925 [DEBUG][       Thread-610958][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:44:45,928 [DEBUG][       Thread-610958][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:44:45,940 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:44:45,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:44:45,942 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:44:45,944 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:44:45,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:44:45,951 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:44:45,951 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:44:45,952 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:44:45,952 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.613827 -999.00  +13.20  22.96     53   +3.90 1 2 1 1 1   887    0 7.81 -44.28 ----- 33.0 23.0 15.2 41.8 14.3 -20.4 14.1 -20.3 13.9 -19.6 14.3 -19.8
2025-07-01 16:44:45,952 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:44:45,952 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:44:45,952 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.613827
2025-07-01 16:44:45,953 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:44:45,953 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:44:45,953 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:44:45,953 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:44:45,953 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:44:45,954 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:44:35', tmtdew=10.68, humidity=48.35, cloud=0.0, wind=28.21, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:43:54.653', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:44:45,955 [DEBUG][       Thread-610958][   transport.py][1871] : EOF in transport thread
2025-07-01 16:44:46,037 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:44:46,046 [DEBUG][       Thread-610961][   transport.py][1871] : starting thread (client mode): 0x81d92d0
2025-07-01 16:44:46,047 [DEBUG][       Thread-610961][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:44:46,061 [DEBUG][       Thread-610961][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:44:46,061 [ INFO][       Thread-610961][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:44:46,075 [DEBUG][       Thread-610961][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:44:46,075 [DEBUG][       Thread-610961][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:44:46,075 [DEBUG][       Thread-610961][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:44:46,076 [DEBUG][       Thread-610961][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:44:46,076 [DEBUG][       Thread-610961][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:44:46,076 [DEBUG][       Thread-610961][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:44:46,076 [DEBUG][       Thread-610961][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:44:46,076 [DEBUG][       Thread-610961][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:44:46,076 [DEBUG][       Thread-610961][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:44:46,076 [DEBUG][       Thread-610961][   transport.py][1871] : client lang: <none>
2025-07-01 16:44:46,076 [DEBUG][       Thread-610961][   transport.py][1871] : server lang: <none>
2025-07-01 16:44:46,076 [DEBUG][       Thread-610961][   transport.py][1871] : kex follows: False
2025-07-01 16:44:46,077 [DEBUG][       Thread-610961][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:44:46,077 [DEBUG][       Thread-610961][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:44:46,077 [DEBUG][       Thread-610961][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:44:46,077 [DEBUG][       Thread-610961][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:44:46,077 [DEBUG][       Thread-610961][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:44:46,077 [DEBUG][       Thread-610961][   transport.py][1871] : Compression: none
2025-07-01 16:44:46,077 [DEBUG][       Thread-610961][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:44:46,134 [DEBUG][       Thread-610961][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:44:46,135 [DEBUG][       Thread-610961][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:44:46,136 [DEBUG][       Thread-610961][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:44:46,136 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:44:46,137 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:44:46,195 [DEBUG][       Thread-610961][   transport.py][1871] : userauth is OK
2025-07-01 16:44:46,195 [DEBUG][       Thread-610961][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:44:46,195 [DEBUG][       Thread-610961][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:44:46,195 [DEBUG][       Thread-610961][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:44:46,196 [DEBUG][       Thread-610961][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:44:46,227 [ INFO][       Thread-610961][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:44:46,228 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:44:46,228 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:44:47,282 [DEBUG][       Thread-610961][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:44:47,282 [DEBUG][       Thread-610961][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:44:47,337 [DEBUG][       Thread-610961][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:44:47,337 [DEBUG][       Thread-610961][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:44:47,347 [DEBUG][       Thread-610961][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:44:47,356 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:44:47,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-07-01 16:44:47,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-07-01 16:44:47,378 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:44:47,378 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:44:47,379 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:44:47,387 [DEBUG][       Thread-610961][   transport.py][1871] : EOF in transport thread
2025-07-01 16:44:53,475 [DEBUG][Thread-610963 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:44:57,389 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:44:57,389 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:44:57,390 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:44:57,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-07-01 16:44:57,902 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 44, 35), 10.68, 48.35, 0.0, 28.21, 13.41, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:44:57,903 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:44:35
2025-07-01 16:44:57,987 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:44:57,991 [DEBUG][       Thread-610964][   transport.py][1871] : starting thread (client mode): 0x81a6440
2025-07-01 16:44:57,991 [DEBUG][       Thread-610964][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:44:58,011 [DEBUG][       Thread-610964][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:44:58,012 [ INFO][       Thread-610964][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:44:58,015 [DEBUG][       Thread-610964][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:44:58,015 [DEBUG][       Thread-610964][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:44:58,015 [DEBUG][       Thread-610964][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:44:58,015 [DEBUG][       Thread-610964][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:44:58,015 [DEBUG][       Thread-610964][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:44:58,015 [DEBUG][       Thread-610964][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:44:58,015 [DEBUG][       Thread-610964][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:44:58,015 [DEBUG][       Thread-610964][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:44:58,015 [DEBUG][       Thread-610964][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:44:58,015 [DEBUG][       Thread-610964][   transport.py][1871] : client lang: <none>
2025-07-01 16:44:58,016 [DEBUG][       Thread-610964][   transport.py][1871] : server lang: <none>
2025-07-01 16:44:58,016 [DEBUG][       Thread-610964][   transport.py][1871] : kex follows: False
2025-07-01 16:44:58,016 [DEBUG][       Thread-610964][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:44:58,016 [DEBUG][       Thread-610964][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:44:58,016 [DEBUG][       Thread-610964][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:44:58,016 [DEBUG][       Thread-610964][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:44:58,016 [DEBUG][       Thread-610964][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:44:58,016 [DEBUG][       Thread-610964][   transport.py][1871] : Compression: none
2025-07-01 16:44:58,016 [DEBUG][       Thread-610964][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:44:58,035 [DEBUG][       Thread-610964][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:44:58,035 [DEBUG][       Thread-610964][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:44:58,036 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:44:58,036 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:44:58,036 [DEBUG][       Thread-610964][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:44:58,037 [DEBUG][       Thread-610964][   transport.py][1871] : userauth is OK
2025-07-01 16:44:58,063 [ INFO][       Thread-610964][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:44:58,064 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:44:58,725 [DEBUG][       Thread-610964][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:44:58,725 [DEBUG][       Thread-610964][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:44:58,769 [DEBUG][       Thread-610964][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:44:58,769 [DEBUG][       Thread-610964][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:44:58,772 [DEBUG][       Thread-610964][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:44:58,784 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:44:58,784 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:44:58,786 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:44:58,788 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:44:58,791 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:44:58,792 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:44:58,792 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:44:58,793 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:44:58,793 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.614175 -999.00  +13.20  30.76     53   +4.00 1 2 2 1 1   887    0 8.38 -39.49 ----- 29.5 30.8 25.9 42.2 14.3 -20.7 14.1 -20.0 13.9 -19.7 14.3 -20.2
2025-07-01 16:44:58,793 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:44:58,793 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:44:58,793 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.614175
2025-07-01 16:44:58,793 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:44:58,794 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:44:58,794 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:44:58,794 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:44:58,794 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:44:58,794 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:44:35', tmtdew=10.68, humidity=48.35, cloud=0.0, wind=28.21, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:44:24.720', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:44:58,795 [DEBUG][       Thread-610964][   transport.py][1871] : EOF in transport thread
2025-07-01 16:44:58,877 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:44:58,888 [DEBUG][       Thread-610967][   transport.py][1871] : starting thread (client mode): 0x81cbe80
2025-07-01 16:44:58,888 [DEBUG][       Thread-610967][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:44:58,903 [DEBUG][       Thread-610967][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:44:58,903 [ INFO][       Thread-610967][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:44:58,911 [DEBUG][       Thread-610967][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:44:58,911 [DEBUG][       Thread-610967][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:44:58,911 [DEBUG][       Thread-610967][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:44:58,911 [DEBUG][       Thread-610967][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:44:58,911 [DEBUG][       Thread-610967][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:44:58,911 [DEBUG][       Thread-610967][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:44:58,911 [DEBUG][       Thread-610967][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:44:58,911 [DEBUG][       Thread-610967][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:44:58,911 [DEBUG][       Thread-610967][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:44:58,911 [DEBUG][       Thread-610967][   transport.py][1871] : client lang: <none>
2025-07-01 16:44:58,911 [DEBUG][       Thread-610967][   transport.py][1871] : server lang: <none>
2025-07-01 16:44:58,911 [DEBUG][       Thread-610967][   transport.py][1871] : kex follows: False
2025-07-01 16:44:58,912 [DEBUG][       Thread-610967][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:44:58,912 [DEBUG][       Thread-610967][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:44:58,912 [DEBUG][       Thread-610967][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:44:58,912 [DEBUG][       Thread-610967][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:44:58,912 [DEBUG][       Thread-610967][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:44:58,912 [DEBUG][       Thread-610967][   transport.py][1871] : Compression: none
2025-07-01 16:44:58,912 [DEBUG][       Thread-610967][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:44:58,967 [DEBUG][       Thread-610967][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:44:58,967 [DEBUG][       Thread-610967][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:44:58,968 [DEBUG][       Thread-610967][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:44:58,968 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:44:58,968 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:44:59,024 [DEBUG][       Thread-610967][   transport.py][1871] : userauth is OK
2025-07-01 16:44:59,024 [DEBUG][       Thread-610967][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:44:59,024 [DEBUG][       Thread-610967][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:44:59,024 [DEBUG][       Thread-610967][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:44:59,024 [DEBUG][       Thread-610967][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:44:59,038 [ INFO][       Thread-610967][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:44:59,038 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:44:59,038 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:45:00,116 [DEBUG][       Thread-610967][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:45:00,116 [DEBUG][       Thread-610967][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:45:00,164 [DEBUG][       Thread-610967][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:45:00,164 [DEBUG][       Thread-610967][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:45:00,173 [DEBUG][       Thread-610967][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:45:00,182 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:45:00,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-07-01 16:45:00,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-07-01 16:45:00,200 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:45:00,200 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:45:00,201 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:45:00,208 [DEBUG][       Thread-610967][   transport.py][1871] : EOF in transport thread
2025-07-01 16:45:02,508 [DEBUG][Thread-610969 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:45:10,211 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:45:10,212 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:45:10,212 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:45:10,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-07-01 16:45:10,712 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 45, 7), 10.61, 48.59, 0.0, 32.25, 13.39, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:45:10,712 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:45:07
2025-07-01 16:45:10,798 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:45:10,803 [DEBUG][       Thread-610970][   transport.py][1871] : starting thread (client mode): 0x82b1450
2025-07-01 16:45:10,803 [DEBUG][       Thread-610970][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:45:10,824 [DEBUG][       Thread-610970][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:45:10,824 [ INFO][       Thread-610970][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:45:10,827 [DEBUG][       Thread-610970][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:45:10,827 [DEBUG][       Thread-610970][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:45:10,827 [DEBUG][       Thread-610970][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:45:10,827 [DEBUG][       Thread-610970][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:45:10,827 [DEBUG][       Thread-610970][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:45:10,827 [DEBUG][       Thread-610970][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:45:10,827 [DEBUG][       Thread-610970][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:45:10,827 [DEBUG][       Thread-610970][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:45:10,827 [DEBUG][       Thread-610970][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:45:10,827 [DEBUG][       Thread-610970][   transport.py][1871] : client lang: <none>
2025-07-01 16:45:10,827 [DEBUG][       Thread-610970][   transport.py][1871] : server lang: <none>
2025-07-01 16:45:10,827 [DEBUG][       Thread-610970][   transport.py][1871] : kex follows: False
2025-07-01 16:45:10,827 [DEBUG][       Thread-610970][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:45:10,827 [DEBUG][       Thread-610970][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:45:10,828 [DEBUG][       Thread-610970][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:45:10,828 [DEBUG][       Thread-610970][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:45:10,828 [DEBUG][       Thread-610970][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:45:10,828 [DEBUG][       Thread-610970][   transport.py][1871] : Compression: none
2025-07-01 16:45:10,828 [DEBUG][       Thread-610970][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:45:10,847 [DEBUG][       Thread-610970][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:45:10,847 [DEBUG][       Thread-610970][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:45:10,848 [DEBUG][       Thread-610970][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:45:10,848 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:45:10,848 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:45:10,849 [DEBUG][       Thread-610970][   transport.py][1871] : userauth is OK
2025-07-01 16:45:10,865 [ INFO][       Thread-610970][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:45:10,866 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:45:11,419 [DEBUG][       Thread-610970][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:45:11,419 [DEBUG][       Thread-610970][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:45:11,460 [DEBUG][       Thread-610970][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:45:11,460 [DEBUG][       Thread-610970][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:45:11,463 [DEBUG][       Thread-610970][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:45:11,474 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:45:11,474 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:45:11,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:45:11,476 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:45:11,480 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:45:11,481 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:45:11,481 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:45:11,481 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:45:11,481 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.614175 -999.00  +13.20  30.76     53   +4.00 1 2 2 1 1   887    0 8.38 -39.49 ----- 29.5 30.8 25.9 42.2 14.3 -20.7 14.1 -20.0 13.9 -19.7 14.3 -20.2
2025-07-01 16:45:11,481 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:45:11,481 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:45:11,481 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.614175
2025-07-01 16:45:11,481 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:45:11,481 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:45:11,481 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:45:11,481 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:45:11,481 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:45:11,481 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:45:07', tmtdew=10.61, humidity=48.59, cloud=0.0, wind=32.25, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:44:24.720', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:45:11,482 [DEBUG][       Thread-610970][   transport.py][1871] : EOF in transport thread
2025-07-01 16:45:11,524 [DEBUG][Thread-610973 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:45:11,553 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:45:11,562 [DEBUG][       Thread-610974][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 16:45:11,562 [DEBUG][       Thread-610974][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:45:11,578 [DEBUG][       Thread-610974][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:45:11,578 [ INFO][       Thread-610974][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:45:11,586 [DEBUG][       Thread-610974][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:45:11,586 [DEBUG][       Thread-610974][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:45:11,586 [DEBUG][       Thread-610974][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:45:11,586 [DEBUG][       Thread-610974][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:45:11,586 [DEBUG][       Thread-610974][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:45:11,587 [DEBUG][       Thread-610974][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:45:11,587 [DEBUG][       Thread-610974][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:45:11,587 [DEBUG][       Thread-610974][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:45:11,587 [DEBUG][       Thread-610974][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:45:11,587 [DEBUG][       Thread-610974][   transport.py][1871] : client lang: <none>
2025-07-01 16:45:11,587 [DEBUG][       Thread-610974][   transport.py][1871] : server lang: <none>
2025-07-01 16:45:11,587 [DEBUG][       Thread-610974][   transport.py][1871] : kex follows: False
2025-07-01 16:45:11,587 [DEBUG][       Thread-610974][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:45:11,587 [DEBUG][       Thread-610974][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:45:11,587 [DEBUG][       Thread-610974][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:45:11,587 [DEBUG][       Thread-610974][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:45:11,587 [DEBUG][       Thread-610974][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:45:11,587 [DEBUG][       Thread-610974][   transport.py][1871] : Compression: none
2025-07-01 16:45:11,587 [DEBUG][       Thread-610974][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:45:11,643 [DEBUG][       Thread-610974][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:45:11,644 [DEBUG][       Thread-610974][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:45:11,644 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:45:11,645 [DEBUG][       Thread-610974][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:45:11,646 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:45:11,702 [DEBUG][       Thread-610974][   transport.py][1871] : userauth is OK
2025-07-01 16:45:11,703 [DEBUG][       Thread-610974][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:45:11,703 [DEBUG][       Thread-610974][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:45:11,703 [DEBUG][       Thread-610974][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:45:11,703 [DEBUG][       Thread-610974][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:45:11,728 [ INFO][       Thread-610974][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:45:11,729 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:45:11,729 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:45:12,765 [DEBUG][       Thread-610974][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:45:12,765 [DEBUG][       Thread-610974][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:45:12,816 [DEBUG][       Thread-610974][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:45:12,817 [DEBUG][       Thread-610974][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:45:12,826 [DEBUG][       Thread-610974][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:45:12,837 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:45:12,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-07-01 16:45:12,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-07-01 16:45:12,858 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:45:12,859 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:45:12,859 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:45:12,867 [DEBUG][       Thread-610974][   transport.py][1871] : EOF in transport thread
2025-07-01 16:45:20,550 [DEBUG][Thread-610976 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:45:22,870 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:45:22,870 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:45:22,870 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:45:22,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-07-01 16:45:23,375 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 45, 7), 10.61, 48.59, 0.0, 32.25, 13.39, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:45:23,376 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:45:07
2025-07-01 16:45:23,461 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:45:23,467 [DEBUG][       Thread-610977][   transport.py][1871] : starting thread (client mode): 0x818f8b0
2025-07-01 16:45:23,467 [DEBUG][       Thread-610977][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:45:23,488 [DEBUG][       Thread-610977][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:45:23,488 [ INFO][       Thread-610977][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:45:23,491 [DEBUG][       Thread-610977][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:45:23,491 [DEBUG][       Thread-610977][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:45:23,491 [DEBUG][       Thread-610977][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:45:23,491 [DEBUG][       Thread-610977][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:45:23,491 [DEBUG][       Thread-610977][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:45:23,491 [DEBUG][       Thread-610977][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:45:23,491 [DEBUG][       Thread-610977][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:45:23,491 [DEBUG][       Thread-610977][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:45:23,491 [DEBUG][       Thread-610977][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:45:23,491 [DEBUG][       Thread-610977][   transport.py][1871] : client lang: <none>
2025-07-01 16:45:23,491 [DEBUG][       Thread-610977][   transport.py][1871] : server lang: <none>
2025-07-01 16:45:23,491 [DEBUG][       Thread-610977][   transport.py][1871] : kex follows: False
2025-07-01 16:45:23,491 [DEBUG][       Thread-610977][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:45:23,492 [DEBUG][       Thread-610977][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:45:23,492 [DEBUG][       Thread-610977][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:45:23,492 [DEBUG][       Thread-610977][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:45:23,492 [DEBUG][       Thread-610977][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:45:23,492 [DEBUG][       Thread-610977][   transport.py][1871] : Compression: none
2025-07-01 16:45:23,492 [DEBUG][       Thread-610977][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:45:23,508 [DEBUG][       Thread-610977][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:45:23,509 [DEBUG][       Thread-610977][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:45:23,509 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:45:23,510 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:45:23,510 [DEBUG][       Thread-610977][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:45:23,552 [DEBUG][       Thread-610977][   transport.py][1871] : userauth is OK
2025-07-01 16:45:23,577 [ INFO][       Thread-610977][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:45:23,578 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:45:24,169 [DEBUG][       Thread-610977][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:45:24,169 [DEBUG][       Thread-610977][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:45:24,213 [DEBUG][       Thread-610977][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:45:24,213 [DEBUG][       Thread-610977][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:45:24,215 [DEBUG][       Thread-610977][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:45:24,224 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:45:24,225 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:45:24,226 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:45:24,228 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:45:24,232 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:45:24,234 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:45:24,234 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:45:24,235 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:45:24,235 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.614522 -999.00  +13.20  17.91     53   +4.00 1 2 1 1 1   887    0 8.40 -36.02 ----- 26.2 17.9 20.0 42.6 14.3 -20.6 14.1 -20.4 13.9 -19.6 14.2 -19.8
2025-07-01 16:45:24,235 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:45:24,235 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:45:24,235 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.614522
2025-07-01 16:45:24,236 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:45:24,236 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:45:24,236 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:45:24,236 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:45:24,237 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:45:24,237 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:45:07', tmtdew=10.61, humidity=48.59, cloud=0.0, wind=32.25, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:44:54.701', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:45:24,237 [DEBUG][       Thread-610977][   transport.py][1871] : EOF in transport thread
2025-07-01 16:45:24,320 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:45:24,337 [DEBUG][       Thread-610980][   transport.py][1871] : starting thread (client mode): 0x81a7940
2025-07-01 16:45:24,337 [DEBUG][       Thread-610980][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:45:24,352 [DEBUG][       Thread-610980][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:45:24,352 [ INFO][       Thread-610980][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:45:24,360 [DEBUG][       Thread-610980][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:45:24,360 [DEBUG][       Thread-610980][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:45:24,360 [DEBUG][       Thread-610980][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:45:24,360 [DEBUG][       Thread-610980][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:45:24,360 [DEBUG][       Thread-610980][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:45:24,360 [DEBUG][       Thread-610980][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:45:24,360 [DEBUG][       Thread-610980][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:45:24,360 [DEBUG][       Thread-610980][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:45:24,360 [DEBUG][       Thread-610980][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:45:24,360 [DEBUG][       Thread-610980][   transport.py][1871] : client lang: <none>
2025-07-01 16:45:24,360 [DEBUG][       Thread-610980][   transport.py][1871] : server lang: <none>
2025-07-01 16:45:24,360 [DEBUG][       Thread-610980][   transport.py][1871] : kex follows: False
2025-07-01 16:45:24,360 [DEBUG][       Thread-610980][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:45:24,361 [DEBUG][       Thread-610980][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:45:24,361 [DEBUG][       Thread-610980][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:45:24,361 [DEBUG][       Thread-610980][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:45:24,361 [DEBUG][       Thread-610980][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:45:24,361 [DEBUG][       Thread-610980][   transport.py][1871] : Compression: none
2025-07-01 16:45:24,361 [DEBUG][       Thread-610980][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:45:24,419 [DEBUG][       Thread-610980][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:45:24,419 [DEBUG][       Thread-610980][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:45:24,420 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:45:24,421 [DEBUG][       Thread-610980][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:45:24,421 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:45:24,475 [DEBUG][       Thread-610980][   transport.py][1871] : userauth is OK
2025-07-01 16:45:24,475 [DEBUG][       Thread-610980][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:45:24,475 [DEBUG][       Thread-610980][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:45:24,475 [DEBUG][       Thread-610980][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:45:24,475 [DEBUG][       Thread-610980][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:45:24,494 [ INFO][       Thread-610980][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:45:24,494 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:45:24,495 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:45:25,504 [DEBUG][       Thread-610980][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:45:25,505 [DEBUG][       Thread-610980][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:45:25,557 [DEBUG][       Thread-610980][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:45:25,557 [DEBUG][       Thread-610980][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:45:25,568 [DEBUG][       Thread-610980][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:45:25,579 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:45: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-07-01 16:45: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-07-01 16:45:25,596 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:45:25,597 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:45:25,597 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:45:25,605 [DEBUG][       Thread-610980][   transport.py][1871] : EOF in transport thread
2025-07-01 16:45:29,575 [DEBUG][Thread-610982 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:45:35,607 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:45:35,607 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:45:35,608 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:45:35,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-07-01 16:45:36,115 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 45, 7), 10.61, 48.59, 0.0, 32.25, 13.39, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:45:36,115 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:45:07
2025-07-01 16:45:36,200 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:45:36,204 [DEBUG][       Thread-610983][   transport.py][1871] : starting thread (client mode): 0x81e6860
2025-07-01 16:45:36,204 [DEBUG][       Thread-610983][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:45:36,226 [DEBUG][       Thread-610983][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:45:36,226 [ INFO][       Thread-610983][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:45:36,230 [DEBUG][       Thread-610983][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:45:36,230 [DEBUG][       Thread-610983][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:45:36,230 [DEBUG][       Thread-610983][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:45:36,230 [DEBUG][       Thread-610983][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:45:36,230 [DEBUG][       Thread-610983][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:45:36,230 [DEBUG][       Thread-610983][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:45:36,230 [DEBUG][       Thread-610983][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:45:36,230 [DEBUG][       Thread-610983][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:45:36,230 [DEBUG][       Thread-610983][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:45:36,230 [DEBUG][       Thread-610983][   transport.py][1871] : client lang: <none>
2025-07-01 16:45:36,230 [DEBUG][       Thread-610983][   transport.py][1871] : server lang: <none>
2025-07-01 16:45:36,230 [DEBUG][       Thread-610983][   transport.py][1871] : kex follows: False
2025-07-01 16:45:36,230 [DEBUG][       Thread-610983][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:45:36,230 [DEBUG][       Thread-610983][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:45:36,230 [DEBUG][       Thread-610983][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:45:36,230 [DEBUG][       Thread-610983][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:45:36,230 [DEBUG][       Thread-610983][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:45:36,230 [DEBUG][       Thread-610983][   transport.py][1871] : Compression: none
2025-07-01 16:45:36,230 [DEBUG][       Thread-610983][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:45:36,245 [DEBUG][       Thread-610983][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:45:36,246 [DEBUG][       Thread-610983][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:45:36,246 [DEBUG][       Thread-610983][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:45:36,247 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:45:36,247 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:45:36,248 [DEBUG][       Thread-610983][   transport.py][1871] : userauth is OK
2025-07-01 16:45:36,273 [ INFO][       Thread-610983][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:45:36,273 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:45:36,915 [DEBUG][       Thread-610983][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:45:36,916 [DEBUG][       Thread-610983][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:45:36,957 [DEBUG][       Thread-610983][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:45:36,957 [DEBUG][       Thread-610983][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:45:36,960 [DEBUG][       Thread-610983][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:45:36,974 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:45:36,974 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:45:36,975 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:45:36,977 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:45:36,982 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:45:36,984 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:45:36,984 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:45:36,985 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:45:36,985 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.614522 -999.00  +13.20  17.91     53   +4.00 1 2 1 1 1   887    0 8.40 -36.02 ----- 26.2 17.9 20.0 42.6 14.3 -20.6 14.1 -20.4 13.9 -19.6 14.2 -19.8
2025-07-01 16:45:36,985 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:45:36,985 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:45:36,985 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.614522
2025-07-01 16:45:36,986 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:45:36,986 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:45:36,986 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:45:36,986 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:45:36,986 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:45:36,987 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:45:07', tmtdew=10.61, humidity=48.59, cloud=0.0, wind=32.25, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:44:54.701', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:45:36,988 [DEBUG][       Thread-610983][   transport.py][1871] : EOF in transport thread
2025-07-01 16:45:37,070 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:45:37,080 [DEBUG][       Thread-610986][   transport.py][1871] : starting thread (client mode): 0x8a65e70
2025-07-01 16:45:37,080 [DEBUG][       Thread-610986][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:45:37,095 [DEBUG][       Thread-610986][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:45:37,095 [ INFO][       Thread-610986][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:45:37,102 [DEBUG][       Thread-610986][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:45:37,103 [DEBUG][       Thread-610986][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:45:37,103 [DEBUG][       Thread-610986][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:45:37,103 [DEBUG][       Thread-610986][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:45:37,103 [DEBUG][       Thread-610986][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:45:37,103 [DEBUG][       Thread-610986][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:45:37,103 [DEBUG][       Thread-610986][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:45:37,103 [DEBUG][       Thread-610986][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:45:37,103 [DEBUG][       Thread-610986][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:45:37,103 [DEBUG][       Thread-610986][   transport.py][1871] : client lang: <none>
2025-07-01 16:45:37,103 [DEBUG][       Thread-610986][   transport.py][1871] : server lang: <none>
2025-07-01 16:45:37,103 [DEBUG][       Thread-610986][   transport.py][1871] : kex follows: False
2025-07-01 16:45:37,103 [DEBUG][       Thread-610986][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:45:37,103 [DEBUG][       Thread-610986][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:45:37,103 [DEBUG][       Thread-610986][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:45:37,103 [DEBUG][       Thread-610986][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:45:37,103 [DEBUG][       Thread-610986][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:45:37,103 [DEBUG][       Thread-610986][   transport.py][1871] : Compression: none
2025-07-01 16:45:37,103 [DEBUG][       Thread-610986][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:45:37,161 [DEBUG][       Thread-610986][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:45:37,162 [DEBUG][       Thread-610986][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:45:37,162 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:45:37,163 [DEBUG][       Thread-610986][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:45:37,164 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:45:37,218 [DEBUG][       Thread-610986][   transport.py][1871] : userauth is OK
2025-07-01 16:45:37,218 [DEBUG][       Thread-610986][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:45:37,218 [DEBUG][       Thread-610986][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:45:37,218 [DEBUG][       Thread-610986][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:45:37,218 [DEBUG][       Thread-610986][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:45:37,236 [ INFO][       Thread-610986][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:45:37,237 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:45:37,237 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:45:38,261 [DEBUG][       Thread-610986][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:45:38,261 [DEBUG][       Thread-610986][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:45:38,312 [DEBUG][       Thread-610986][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:45:38,312 [DEBUG][       Thread-610986][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:45:38,321 [DEBUG][       Thread-610986][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:45:38,330 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:45:38,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-07-01 16:45:38,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') -> 00000000
2025-07-01 16:45:38,348 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:45:38,348 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:45:38,349 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:45:38,357 [DEBUG][       Thread-610986][   transport.py][1871] : EOF in transport thread
2025-07-01 16:45:38,600 [DEBUG][Thread-610988 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:45:39,215 [DEBUG][Thread-610989 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:45:47,617 [DEBUG][Thread-610990 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:45:48,359 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:45:48,360 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:45:48,360 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:45:48,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-07-01 16:45:48,856 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 45, 39), 10.61, 48.56, 0.0, 37.39, 13.37, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:45:48,856 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:45:39
2025-07-01 16:45:48,941 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:45:48,945 [DEBUG][       Thread-610991][   transport.py][1871] : starting thread (client mode): 0x82b3d90
2025-07-01 16:45:48,945 [DEBUG][       Thread-610991][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:45:48,966 [DEBUG][       Thread-610991][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:45:48,966 [ INFO][       Thread-610991][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:45:48,969 [DEBUG][       Thread-610991][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:45:48,969 [DEBUG][       Thread-610991][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:45:48,969 [DEBUG][       Thread-610991][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:45:48,969 [DEBUG][       Thread-610991][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:45:48,969 [DEBUG][       Thread-610991][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:45:48,969 [DEBUG][       Thread-610991][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:45:48,969 [DEBUG][       Thread-610991][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:45:48,969 [DEBUG][       Thread-610991][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:45:48,969 [DEBUG][       Thread-610991][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:45:48,969 [DEBUG][       Thread-610991][   transport.py][1871] : client lang: <none>
2025-07-01 16:45:48,969 [DEBUG][       Thread-610991][   transport.py][1871] : server lang: <none>
2025-07-01 16:45:48,969 [DEBUG][       Thread-610991][   transport.py][1871] : kex follows: False
2025-07-01 16:45:48,969 [DEBUG][       Thread-610991][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:45:48,969 [DEBUG][       Thread-610991][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:45:48,969 [DEBUG][       Thread-610991][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:45:48,969 [DEBUG][       Thread-610991][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:45:48,969 [DEBUG][       Thread-610991][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:45:48,969 [DEBUG][       Thread-610991][   transport.py][1871] : Compression: none
2025-07-01 16:45:48,969 [DEBUG][       Thread-610991][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:45:48,986 [DEBUG][       Thread-610991][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:45:48,987 [DEBUG][       Thread-610991][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:45:48,987 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:45:48,987 [DEBUG][       Thread-610991][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:45:48,988 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:45:48,989 [DEBUG][       Thread-610991][   transport.py][1871] : userauth is OK
2025-07-01 16:45:49,013 [ INFO][       Thread-610991][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:45:49,013 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:45:49,645 [DEBUG][       Thread-610991][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:45:49,645 [DEBUG][       Thread-610991][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:45:49,689 [DEBUG][       Thread-610991][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:45:49,689 [DEBUG][       Thread-610991][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:45:49,693 [DEBUG][       Thread-610991][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:45:49,705 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:45:49,705 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:45:49,707 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:45:49,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:45:49,714 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:45:49,716 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:45:49,717 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:45:49,717 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:45:49,717 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.614522 -999.00  +13.20  17.91     53   +4.00 1 2 1 1 1   887    0 8.40 -36.02 ----- 26.2 17.9 20.0 42.6 14.3 -20.6 14.1 -20.4 13.9 -19.6 14.2 -19.8
2025-07-01 16:45:49,717 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:45:49,718 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:45:49,718 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.614522
2025-07-01 16:45:49,718 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:45:49,719 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:45:49,719 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:45:49,719 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:45:49,719 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:45:49,719 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:45:39', tmtdew=10.61, humidity=48.56, cloud=0.0, wind=37.39, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:44:54.701', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:45:49,719 [DEBUG][       Thread-610991][   transport.py][1871] : EOF in transport thread
2025-07-01 16:45:49,803 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:45:49,814 [DEBUG][       Thread-610994][   transport.py][1871] : starting thread (client mode): 0x81708b0
2025-07-01 16:45:49,814 [DEBUG][       Thread-610994][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:45:49,829 [DEBUG][       Thread-610994][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:45:49,829 [ INFO][       Thread-610994][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:45:49,837 [DEBUG][       Thread-610994][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:45:49,837 [DEBUG][       Thread-610994][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:45:49,837 [DEBUG][       Thread-610994][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:45:49,837 [DEBUG][       Thread-610994][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:45:49,837 [DEBUG][       Thread-610994][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:45:49,837 [DEBUG][       Thread-610994][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:45:49,838 [DEBUG][       Thread-610994][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:45:49,838 [DEBUG][       Thread-610994][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:45:49,838 [DEBUG][       Thread-610994][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:45:49,838 [DEBUG][       Thread-610994][   transport.py][1871] : client lang: <none>
2025-07-01 16:45:49,838 [DEBUG][       Thread-610994][   transport.py][1871] : server lang: <none>
2025-07-01 16:45:49,838 [DEBUG][       Thread-610994][   transport.py][1871] : kex follows: False
2025-07-01 16:45:49,838 [DEBUG][       Thread-610994][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:45:49,838 [DEBUG][       Thread-610994][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:45:49,838 [DEBUG][       Thread-610994][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:45:49,838 [DEBUG][       Thread-610994][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:45:49,838 [DEBUG][       Thread-610994][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:45:49,838 [DEBUG][       Thread-610994][   transport.py][1871] : Compression: none
2025-07-01 16:45:49,838 [DEBUG][       Thread-610994][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:45:49,896 [DEBUG][       Thread-610994][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:45:49,897 [DEBUG][       Thread-610994][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:45:49,897 [DEBUG][       Thread-610994][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:45:49,898 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:45:49,898 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:45:49,952 [DEBUG][       Thread-610994][   transport.py][1871] : userauth is OK
2025-07-01 16:45:49,953 [DEBUG][       Thread-610994][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:45:49,953 [DEBUG][       Thread-610994][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:45:49,953 [DEBUG][       Thread-610994][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:45:49,953 [DEBUG][       Thread-610994][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:45:49,972 [ INFO][       Thread-610994][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:45:49,972 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:45:49,973 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:45:51,024 [DEBUG][       Thread-610994][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:45:51,025 [DEBUG][       Thread-610994][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:45:51,076 [DEBUG][       Thread-610994][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:45:51,076 [DEBUG][       Thread-610994][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:45:51,085 [DEBUG][       Thread-610994][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:45:51,094 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:45:51,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-07-01 16:45:51,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-07-01 16:45:51,112 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:45:51,113 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:45:51,113 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:45:51,121 [DEBUG][       Thread-610994][   transport.py][1871] : EOF in transport thread
2025-07-01 16:45:56,640 [DEBUG][Thread-610996 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:46:01,123 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:46:01,124 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:46:01,124 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:46:01,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-07-01 16:46:01,633 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 45, 39), 10.61, 48.56, 0.0, 37.39, 13.37, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:46:01,633 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:45:39
2025-07-01 16:46:01,718 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:46:01,722 [DEBUG][       Thread-610997][   transport.py][1871] : starting thread (client mode): 0x82b1d20
2025-07-01 16:46:01,722 [DEBUG][       Thread-610997][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:46:01,743 [DEBUG][       Thread-610997][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:46:01,743 [ INFO][       Thread-610997][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:46:01,746 [DEBUG][       Thread-610997][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:46:01,746 [DEBUG][       Thread-610997][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:46:01,746 [DEBUG][       Thread-610997][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:46:01,746 [DEBUG][       Thread-610997][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:46:01,746 [DEBUG][       Thread-610997][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:46:01,746 [DEBUG][       Thread-610997][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:46:01,746 [DEBUG][       Thread-610997][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:46:01,746 [DEBUG][       Thread-610997][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:46:01,746 [DEBUG][       Thread-610997][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:46:01,746 [DEBUG][       Thread-610997][   transport.py][1871] : client lang: <none>
2025-07-01 16:46:01,746 [DEBUG][       Thread-610997][   transport.py][1871] : server lang: <none>
2025-07-01 16:46:01,746 [DEBUG][       Thread-610997][   transport.py][1871] : kex follows: False
2025-07-01 16:46:01,746 [DEBUG][       Thread-610997][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:46:01,746 [DEBUG][       Thread-610997][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:46:01,747 [DEBUG][       Thread-610997][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:46:01,747 [DEBUG][       Thread-610997][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:46:01,747 [DEBUG][       Thread-610997][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:46:01,747 [DEBUG][       Thread-610997][   transport.py][1871] : Compression: none
2025-07-01 16:46:01,747 [DEBUG][       Thread-610997][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:46:01,763 [DEBUG][       Thread-610997][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:46:01,763 [DEBUG][       Thread-610997][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:46:01,764 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:46:01,764 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:46:01,765 [DEBUG][       Thread-610997][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:46:01,765 [DEBUG][       Thread-610997][   transport.py][1871] : userauth is OK
2025-07-01 16:46:01,790 [ INFO][       Thread-610997][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:46:01,790 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:46:02,421 [DEBUG][       Thread-610997][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:46:02,421 [DEBUG][       Thread-610997][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:46:02,465 [DEBUG][       Thread-610997][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:46:02,465 [DEBUG][       Thread-610997][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:46:02,469 [DEBUG][       Thread-610997][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:46:02,480 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:46:02,480 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:46:02,483 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:46:02,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:46:02,491 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:46:02,492 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:46:02,493 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:46:02,494 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:46:02,494 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.614869 -999.00  +13.20  31.01     53   +4.00 1 2 2 1 1   887    0 8.66 -33.75 ----- 31.5 31.0 33.6 38.8 14.2 -20.8 14.1 -20.3 13.9 -19.7 14.2 -19.7
2025-07-01 16:46:02,494 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:46:02,494 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:46:02,494 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.614869
2025-07-01 16:46:02,495 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:46:02,495 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:46:02,496 [DEBUG][       Thread-610997][   transport.py][1871] : EOF in transport thread
2025-07-01 16:46:02,496 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:46:02,496 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:46:02,497 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:46:02,497 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:45:39', tmtdew=10.61, humidity=48.56, cloud=0.0, wind=37.39, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:45:24.682', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:46:02,582 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:46:02,592 [DEBUG][       Thread-611000][   transport.py][1871] : starting thread (client mode): 0x81561d0
2025-07-01 16:46:02,592 [DEBUG][       Thread-611000][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:46:02,608 [DEBUG][       Thread-611000][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:46:02,608 [ INFO][       Thread-611000][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:46:02,616 [DEBUG][       Thread-611000][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:46:02,616 [DEBUG][       Thread-611000][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:46:02,616 [DEBUG][       Thread-611000][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:46:02,616 [DEBUG][       Thread-611000][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:46:02,616 [DEBUG][       Thread-611000][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:46:02,616 [DEBUG][       Thread-611000][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:46:02,616 [DEBUG][       Thread-611000][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:46:02,616 [DEBUG][       Thread-611000][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:46:02,616 [DEBUG][       Thread-611000][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:46:02,616 [DEBUG][       Thread-611000][   transport.py][1871] : client lang: <none>
2025-07-01 16:46:02,616 [DEBUG][       Thread-611000][   transport.py][1871] : server lang: <none>
2025-07-01 16:46:02,616 [DEBUG][       Thread-611000][   transport.py][1871] : kex follows: False
2025-07-01 16:46:02,616 [DEBUG][       Thread-611000][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:46:02,616 [DEBUG][       Thread-611000][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:46:02,616 [DEBUG][       Thread-611000][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:46:02,616 [DEBUG][       Thread-611000][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:46:02,616 [DEBUG][       Thread-611000][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:46:02,616 [DEBUG][       Thread-611000][   transport.py][1871] : Compression: none
2025-07-01 16:46:02,616 [DEBUG][       Thread-611000][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:46:02,675 [DEBUG][       Thread-611000][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:46:02,676 [DEBUG][       Thread-611000][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:46:02,676 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:46:02,677 [DEBUG][       Thread-611000][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:46:02,678 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:46:02,736 [DEBUG][       Thread-611000][   transport.py][1871] : userauth is OK
2025-07-01 16:46:02,736 [DEBUG][       Thread-611000][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:46:02,736 [DEBUG][       Thread-611000][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:46:02,736 [DEBUG][       Thread-611000][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:46:02,736 [DEBUG][       Thread-611000][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:46:02,756 [ INFO][       Thread-611000][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:46:02,756 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:46:02,756 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:46:03,822 [DEBUG][       Thread-611000][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:46:03,822 [DEBUG][       Thread-611000][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:46:03,872 [DEBUG][       Thread-611000][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:46:03,872 [DEBUG][       Thread-611000][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:46:03,882 [DEBUG][       Thread-611000][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:46:03,891 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:46:03,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-07-01 16:46:03,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-07-01 16:46:03,911 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:46:03,911 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:46:03,912 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:46:03,920 [DEBUG][       Thread-611000][   transport.py][1871] : EOF in transport thread
2025-07-01 16:46:05,676 [DEBUG][Thread-611002 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:46:13,917 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:46:13,917 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:46:13,918 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:46:13,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-07-01 16:46:14,416 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 46, 10), 10.62, 48.56, 0.0, 31.88, 13.39, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:46:14,416 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:46:10
2025-07-01 16:46:14,501 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:46:14,505 [DEBUG][       Thread-611003][   transport.py][1871] : starting thread (client mode): 0x82b1ab0
2025-07-01 16:46:14,505 [DEBUG][       Thread-611003][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:46:14,525 [DEBUG][       Thread-611003][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:46:14,525 [ INFO][       Thread-611003][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:46:14,529 [DEBUG][       Thread-611003][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:46:14,529 [DEBUG][       Thread-611003][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:46:14,529 [DEBUG][       Thread-611003][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:46:14,529 [DEBUG][       Thread-611003][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:46:14,529 [DEBUG][       Thread-611003][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:46:14,529 [DEBUG][       Thread-611003][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:46:14,529 [DEBUG][       Thread-611003][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:46:14,529 [DEBUG][       Thread-611003][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:46:14,529 [DEBUG][       Thread-611003][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:46:14,529 [DEBUG][       Thread-611003][   transport.py][1871] : client lang: <none>
2025-07-01 16:46:14,529 [DEBUG][       Thread-611003][   transport.py][1871] : server lang: <none>
2025-07-01 16:46:14,529 [DEBUG][       Thread-611003][   transport.py][1871] : kex follows: False
2025-07-01 16:46:14,529 [DEBUG][       Thread-611003][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:46:14,529 [DEBUG][       Thread-611003][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:46:14,529 [DEBUG][       Thread-611003][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:46:14,529 [DEBUG][       Thread-611003][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:46:14,529 [DEBUG][       Thread-611003][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:46:14,529 [DEBUG][       Thread-611003][   transport.py][1871] : Compression: none
2025-07-01 16:46:14,529 [DEBUG][       Thread-611003][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:46:14,545 [DEBUG][       Thread-611003][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:46:14,546 [DEBUG][       Thread-611003][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:46:14,546 [DEBUG][       Thread-611003][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:46:14,547 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:46:14,547 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:46:14,548 [DEBUG][       Thread-611003][   transport.py][1871] : userauth is OK
2025-07-01 16:46:14,573 [ INFO][       Thread-611003][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:46:14,573 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:46:14,695 [DEBUG][Thread-611005 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:46:15,189 [DEBUG][       Thread-611003][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:46:15,190 [DEBUG][       Thread-611003][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:46:15,233 [DEBUG][       Thread-611003][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:46:15,233 [DEBUG][       Thread-611003][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:46:15,237 [DEBUG][       Thread-611003][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:46:15,250 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:46:15,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:46:15,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:46:15,255 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:46:15,261 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:46:15,263 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:46:15,263 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:46:15,263 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:46:15,264 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.614869 -999.00  +13.20  31.01     53   +4.00 1 2 2 1 1   887    0 8.66 -33.75 ----- 31.5 31.0 33.6 38.8 14.2 -20.8 14.1 -20.3 13.9 -19.7 14.2 -19.7
2025-07-01 16:46:15,264 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:46:15,264 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:46:15,264 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.614869
2025-07-01 16:46:15,264 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:46:15,265 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:46:15,265 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:46:15,265 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:46:15,265 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:46:15,265 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:46:10', tmtdew=10.62, humidity=48.56, cloud=0.0, wind=31.88, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:45:24.682', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:46:15,266 [DEBUG][       Thread-611003][   transport.py][1871] : EOF in transport thread
2025-07-01 16:46:15,349 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:46:15,361 [DEBUG][       Thread-611007][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 16:46:15,361 [DEBUG][       Thread-611007][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:46:15,376 [DEBUG][       Thread-611007][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:46:15,376 [ INFO][       Thread-611007][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:46:15,383 [DEBUG][       Thread-611007][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:46:15,383 [DEBUG][       Thread-611007][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:46:15,383 [DEBUG][       Thread-611007][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:46:15,383 [DEBUG][       Thread-611007][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:46:15,383 [DEBUG][       Thread-611007][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:46:15,383 [DEBUG][       Thread-611007][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:46:15,383 [DEBUG][       Thread-611007][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:46:15,383 [DEBUG][       Thread-611007][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:46:15,384 [DEBUG][       Thread-611007][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:46:15,384 [DEBUG][       Thread-611007][   transport.py][1871] : client lang: <none>
2025-07-01 16:46:15,384 [DEBUG][       Thread-611007][   transport.py][1871] : server lang: <none>
2025-07-01 16:46:15,384 [DEBUG][       Thread-611007][   transport.py][1871] : kex follows: False
2025-07-01 16:46:15,384 [DEBUG][       Thread-611007][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:46:15,384 [DEBUG][       Thread-611007][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:46:15,384 [DEBUG][       Thread-611007][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:46:15,384 [DEBUG][       Thread-611007][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:46:15,384 [DEBUG][       Thread-611007][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:46:15,384 [DEBUG][       Thread-611007][   transport.py][1871] : Compression: none
2025-07-01 16:46:15,384 [DEBUG][       Thread-611007][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:46:15,443 [DEBUG][       Thread-611007][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:46:15,444 [DEBUG][       Thread-611007][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:46:15,444 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:46:15,445 [DEBUG][       Thread-611007][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:46:15,446 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:46:15,499 [DEBUG][       Thread-611007][   transport.py][1871] : userauth is OK
2025-07-01 16:46:15,499 [DEBUG][       Thread-611007][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:46:15,499 [DEBUG][       Thread-611007][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:46:15,499 [DEBUG][       Thread-611007][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:46:15,500 [DEBUG][       Thread-611007][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:46:15,518 [ INFO][       Thread-611007][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:46:15,518 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:46:15,519 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:46:16,553 [DEBUG][       Thread-611007][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:46:16,553 [DEBUG][       Thread-611007][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:46:16,604 [DEBUG][       Thread-611007][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:46:16,604 [DEBUG][       Thread-611007][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:46:16,621 [DEBUG][       Thread-611007][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:46:16,630 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:46:16,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-07-01 16:46: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') -> 00000000
2025-07-01 16:46:16,648 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:46:16,648 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:46:16,649 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:46:16,657 [DEBUG][       Thread-611007][   transport.py][1871] : EOF in transport thread
2025-07-01 16:46:23,714 [DEBUG][Thread-611009 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:46:26,659 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:46:26,659 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:46:26,660 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:46:26,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-07-01 16:46:27,146 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 46, 10), 10.62, 48.56, 0.0, 31.88, 13.39, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:46:27,146 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:46:10
2025-07-01 16:46:27,226 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:46:27,233 [DEBUG][       Thread-611010][   transport.py][1871] : starting thread (client mode): 0x82b1960
2025-07-01 16:46:27,233 [DEBUG][       Thread-611010][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:46:27,253 [DEBUG][       Thread-611010][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:46:27,253 [ INFO][       Thread-611010][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:46:27,256 [DEBUG][       Thread-611010][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:46:27,256 [DEBUG][       Thread-611010][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:46:27,256 [DEBUG][       Thread-611010][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:46:27,256 [DEBUG][       Thread-611010][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:46:27,256 [DEBUG][       Thread-611010][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:46:27,256 [DEBUG][       Thread-611010][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:46:27,256 [DEBUG][       Thread-611010][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:46:27,256 [DEBUG][       Thread-611010][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:46:27,256 [DEBUG][       Thread-611010][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:46:27,256 [DEBUG][       Thread-611010][   transport.py][1871] : client lang: <none>
2025-07-01 16:46:27,256 [DEBUG][       Thread-611010][   transport.py][1871] : server lang: <none>
2025-07-01 16:46:27,256 [DEBUG][       Thread-611010][   transport.py][1871] : kex follows: False
2025-07-01 16:46:27,256 [DEBUG][       Thread-611010][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:46:27,257 [DEBUG][       Thread-611010][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:46:27,257 [DEBUG][       Thread-611010][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:46:27,257 [DEBUG][       Thread-611010][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:46:27,257 [DEBUG][       Thread-611010][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:46:27,257 [DEBUG][       Thread-611010][   transport.py][1871] : Compression: none
2025-07-01 16:46:27,257 [DEBUG][       Thread-611010][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:46:27,273 [DEBUG][       Thread-611010][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:46:27,274 [DEBUG][       Thread-611010][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:46:27,274 [DEBUG][       Thread-611010][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:46:27,275 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:46:27,275 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:46:27,276 [DEBUG][       Thread-611010][   transport.py][1871] : userauth is OK
2025-07-01 16:46:27,301 [ INFO][       Thread-611010][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:46:27,301 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:46:27,939 [DEBUG][       Thread-611010][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:46:27,939 [DEBUG][       Thread-611010][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:46:27,981 [DEBUG][       Thread-611010][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:46:27,981 [DEBUG][       Thread-611010][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:46:27,985 [DEBUG][       Thread-611010][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:46:27,996 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:46:27,996 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:46:27,998 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:46:28,000 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:46:28,006 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:46:28,008 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:46:28,008 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:46:28,009 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:46:28,009 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.614869 -999.00  +13.20  31.01     53   +4.00 1 2 2 1 1   887    0 8.66 -33.75 ----- 31.5 31.0 33.6 38.8 14.2 -20.8 14.1 -20.3 13.9 -19.7 14.2 -19.7
2025-07-01 16:46:28,009 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:46:28,009 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:46:28,009 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.614869
2025-07-01 16:46:28,010 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:46:28,010 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:46:28,010 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:46:28,010 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:46:28,010 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:46:28,011 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:46:10', tmtdew=10.62, humidity=48.56, cloud=0.0, wind=31.88, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:45:24.682', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:46:28,011 [DEBUG][       Thread-611010][   transport.py][1871] : EOF in transport thread
2025-07-01 16:46:28,094 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:46:28,107 [DEBUG][       Thread-611013][   transport.py][1871] : starting thread (client mode): 0x8173490
2025-07-01 16:46:28,107 [DEBUG][       Thread-611013][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:46:28,122 [DEBUG][       Thread-611013][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:46:28,122 [ INFO][       Thread-611013][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:46:28,129 [DEBUG][       Thread-611013][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:46:28,129 [DEBUG][       Thread-611013][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:46:28,129 [DEBUG][       Thread-611013][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:46:28,130 [DEBUG][       Thread-611013][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:46:28,130 [DEBUG][       Thread-611013][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:46:28,130 [DEBUG][       Thread-611013][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:46:28,130 [DEBUG][       Thread-611013][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:46:28,130 [DEBUG][       Thread-611013][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:46:28,130 [DEBUG][       Thread-611013][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:46:28,130 [DEBUG][       Thread-611013][   transport.py][1871] : client lang: <none>
2025-07-01 16:46:28,130 [DEBUG][       Thread-611013][   transport.py][1871] : server lang: <none>
2025-07-01 16:46:28,130 [DEBUG][       Thread-611013][   transport.py][1871] : kex follows: False
2025-07-01 16:46:28,130 [DEBUG][       Thread-611013][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:46:28,130 [DEBUG][       Thread-611013][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:46:28,130 [DEBUG][       Thread-611013][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:46:28,130 [DEBUG][       Thread-611013][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:46:28,130 [DEBUG][       Thread-611013][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:46:28,130 [DEBUG][       Thread-611013][   transport.py][1871] : Compression: none
2025-07-01 16:46:28,130 [DEBUG][       Thread-611013][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:46:28,190 [DEBUG][       Thread-611013][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:46:28,191 [DEBUG][       Thread-611013][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:46:28,191 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:46:28,192 [DEBUG][       Thread-611013][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:46:28,193 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:46:28,246 [DEBUG][       Thread-611013][   transport.py][1871] : userauth is OK
2025-07-01 16:46:28,247 [DEBUG][       Thread-611013][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:46:28,247 [DEBUG][       Thread-611013][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:46:28,247 [DEBUG][       Thread-611013][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:46:28,247 [DEBUG][       Thread-611013][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:46:28,268 [ INFO][       Thread-611013][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:46:28,268 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:46:28,269 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:46:29,252 [DEBUG][       Thread-611013][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:46:29,252 [DEBUG][       Thread-611013][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:46:29,303 [DEBUG][       Thread-611013][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:46:29,304 [DEBUG][       Thread-611013][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:46:29,313 [DEBUG][       Thread-611013][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:46:29,321 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:46:29,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-07-01 16:46:29,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') -> 00000000
2025-07-01 16:46:29,339 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:46:29,339 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:46:29,339 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:46:29,347 [DEBUG][       Thread-611013][   transport.py][1871] : EOF in transport thread
2025-07-01 16:46:32,740 [DEBUG][Thread-611015 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:46:39,245 [DEBUG][Thread-611016 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:46:39,349 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:46:39,350 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:46:39,350 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:46:39,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-07-01 16:46:39,847 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 46, 10), 10.62, 48.56, 0.0, 31.88, 13.39, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:46:39,847 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:46:10
2025-07-01 16:46:39,928 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:46:39,932 [DEBUG][       Thread-611017][   transport.py][1871] : starting thread (client mode): 0x82b24a0
2025-07-01 16:46:39,932 [DEBUG][       Thread-611017][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:46:39,952 [DEBUG][       Thread-611017][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:46:39,952 [ INFO][       Thread-611017][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:46:39,955 [DEBUG][       Thread-611017][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:46:39,956 [DEBUG][       Thread-611017][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:46:39,956 [DEBUG][       Thread-611017][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:46:39,956 [DEBUG][       Thread-611017][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:46:39,956 [DEBUG][       Thread-611017][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:46:39,956 [DEBUG][       Thread-611017][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:46:39,956 [DEBUG][       Thread-611017][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:46:39,956 [DEBUG][       Thread-611017][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:46:39,956 [DEBUG][       Thread-611017][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:46:39,956 [DEBUG][       Thread-611017][   transport.py][1871] : client lang: <none>
2025-07-01 16:46:39,956 [DEBUG][       Thread-611017][   transport.py][1871] : server lang: <none>
2025-07-01 16:46:39,956 [DEBUG][       Thread-611017][   transport.py][1871] : kex follows: False
2025-07-01 16:46:39,956 [DEBUG][       Thread-611017][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:46:39,956 [DEBUG][       Thread-611017][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:46:39,956 [DEBUG][       Thread-611017][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:46:39,956 [DEBUG][       Thread-611017][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:46:39,956 [DEBUG][       Thread-611017][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:46:39,956 [DEBUG][       Thread-611017][   transport.py][1871] : Compression: none
2025-07-01 16:46:39,956 [DEBUG][       Thread-611017][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:46:39,973 [DEBUG][       Thread-611017][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:46:39,974 [DEBUG][       Thread-611017][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:46:39,974 [DEBUG][       Thread-611017][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:46:39,975 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:46:39,975 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:46:39,976 [DEBUG][       Thread-611017][   transport.py][1871] : userauth is OK
2025-07-01 16:46:39,989 [ INFO][       Thread-611017][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:46:39,990 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:46:40,635 [DEBUG][       Thread-611017][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:46:40,636 [DEBUG][       Thread-611017][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:46:40,677 [DEBUG][       Thread-611017][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:46:40,677 [DEBUG][       Thread-611017][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:46:40,681 [DEBUG][       Thread-611017][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:46:40,694 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:46:40,694 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:46:40,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:46:40,698 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:46:40,704 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:46:40,706 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:46:40,706 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:46:40,707 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:46:40,707 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.615563 -999.00  +13.20  35.99     53   +4.00 1 2 2 1 1   887    0 8.46 -33.31 ----- 32.1 36.0 18.8 44.4 14.2 -20.6 14.1 -20.3 13.9 -19.7 14.2 -19.7
2025-07-01 16:46:40,707 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:46:40,707 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:46:40,707 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.615563
2025-07-01 16:46:40,707 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:46:40,708 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:46:40,708 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:46:40,708 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:46:40,708 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:46:40,708 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:46:10', tmtdew=10.62, humidity=48.56, cloud=0.0, wind=31.88, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:46:24.643', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:46:40,710 [DEBUG][       Thread-611017][   transport.py][1871] : EOF in transport thread
2025-07-01 16:46:40,793 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:46:40,803 [DEBUG][       Thread-611020][   transport.py][1871] : starting thread (client mode): 0x8393790
2025-07-01 16:46:40,803 [DEBUG][       Thread-611020][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:46:40,819 [DEBUG][       Thread-611020][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:46:40,819 [ INFO][       Thread-611020][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:46:40,832 [DEBUG][       Thread-611020][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:46:40,832 [DEBUG][       Thread-611020][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:46:40,833 [DEBUG][       Thread-611020][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:46:40,833 [DEBUG][       Thread-611020][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:46:40,833 [DEBUG][       Thread-611020][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:46:40,833 [DEBUG][       Thread-611020][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:46:40,833 [DEBUG][       Thread-611020][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:46:40,833 [DEBUG][       Thread-611020][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:46:40,833 [DEBUG][       Thread-611020][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:46:40,833 [DEBUG][       Thread-611020][   transport.py][1871] : client lang: <none>
2025-07-01 16:46:40,833 [DEBUG][       Thread-611020][   transport.py][1871] : server lang: <none>
2025-07-01 16:46:40,833 [DEBUG][       Thread-611020][   transport.py][1871] : kex follows: False
2025-07-01 16:46:40,833 [DEBUG][       Thread-611020][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:46:40,833 [DEBUG][       Thread-611020][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:46:40,833 [DEBUG][       Thread-611020][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:46:40,833 [DEBUG][       Thread-611020][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:46:40,833 [DEBUG][       Thread-611020][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:46:40,833 [DEBUG][       Thread-611020][   transport.py][1871] : Compression: none
2025-07-01 16:46:40,834 [DEBUG][       Thread-611020][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:46:40,888 [DEBUG][       Thread-611020][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:46:40,888 [DEBUG][       Thread-611020][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:46:40,889 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:46:40,889 [DEBUG][       Thread-611020][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:46:40,890 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:46:40,950 [DEBUG][       Thread-611020][   transport.py][1871] : userauth is OK
2025-07-01 16:46:40,950 [DEBUG][       Thread-611020][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:46:40,950 [DEBUG][       Thread-611020][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:46:40,951 [DEBUG][       Thread-611020][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:46:40,951 [DEBUG][       Thread-611020][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:46:40,969 [ INFO][       Thread-611020][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:46:40,970 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:46:40,970 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:46:41,761 [DEBUG][Thread-611022 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:46:41,985 [DEBUG][       Thread-611020][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:46:41,985 [DEBUG][       Thread-611020][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:46:42,036 [DEBUG][       Thread-611020][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:46:42,036 [DEBUG][       Thread-611020][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:46:42,045 [DEBUG][       Thread-611020][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:46:42,053 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:46:42,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-07-01 16:46: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') -> 00000000
2025-07-01 16:46:42,071 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:46:42,071 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:46:42,071 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:46:42,079 [DEBUG][       Thread-611020][   transport.py][1871] : EOF in transport thread
2025-07-01 16:46:50,784 [DEBUG][Thread-611023 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:46:52,082 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:46:52,082 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:46:52,082 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:46:52,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-07-01 16:46:52,581 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 46, 42), 10.57, 48.7, 0.0, 29.36, 13.36, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:46:52,581 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:46:42
2025-07-01 16:46:52,662 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:46:52,668 [DEBUG][       Thread-611024][   transport.py][1871] : starting thread (client mode): 0x81a7d00
2025-07-01 16:46:52,668 [DEBUG][       Thread-611024][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:46:52,691 [DEBUG][       Thread-611024][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:46:52,691 [ INFO][       Thread-611024][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:46:52,695 [DEBUG][       Thread-611024][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:46:52,695 [DEBUG][       Thread-611024][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:46:52,695 [DEBUG][       Thread-611024][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:46:52,695 [DEBUG][       Thread-611024][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:46:52,695 [DEBUG][       Thread-611024][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:46:52,695 [DEBUG][       Thread-611024][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:46:52,695 [DEBUG][       Thread-611024][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:46:52,695 [DEBUG][       Thread-611024][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:46:52,695 [DEBUG][       Thread-611024][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:46:52,695 [DEBUG][       Thread-611024][   transport.py][1871] : client lang: <none>
2025-07-01 16:46:52,695 [DEBUG][       Thread-611024][   transport.py][1871] : server lang: <none>
2025-07-01 16:46:52,695 [DEBUG][       Thread-611024][   transport.py][1871] : kex follows: False
2025-07-01 16:46:52,695 [DEBUG][       Thread-611024][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:46:52,695 [DEBUG][       Thread-611024][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:46:52,695 [DEBUG][       Thread-611024][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:46:52,695 [DEBUG][       Thread-611024][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:46:52,695 [DEBUG][       Thread-611024][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:46:52,695 [DEBUG][       Thread-611024][   transport.py][1871] : Compression: none
2025-07-01 16:46:52,695 [DEBUG][       Thread-611024][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:46:52,713 [DEBUG][       Thread-611024][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:46:52,714 [DEBUG][       Thread-611024][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:46:52,714 [DEBUG][       Thread-611024][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:46:52,715 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:46:52,715 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:46:52,716 [DEBUG][       Thread-611024][   transport.py][1871] : userauth is OK
2025-07-01 16:46:52,743 [ INFO][       Thread-611024][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:46:52,744 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:46:53,383 [DEBUG][       Thread-611024][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:46:53,383 [DEBUG][       Thread-611024][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:46:53,425 [DEBUG][       Thread-611024][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:46:53,425 [DEBUG][       Thread-611024][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:46:53,428 [DEBUG][       Thread-611024][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:46:53,440 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:46:53,441 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:46:53,443 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:46:53,445 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:46:53,450 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:46:53,452 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:46:53,452 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:46:53,453 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:46:53,453 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.615563 -999.00  +13.20  35.99     53   +4.00 1 2 2 1 1   887    0 8.46 -33.31 ----- 32.1 36.0 18.8 44.4 14.2 -20.6 14.1 -20.3 13.9 -19.7 14.2 -19.7
2025-07-01 16:46:53,453 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:46:53,453 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:46:53,453 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.615563
2025-07-01 16:46:53,454 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:46:53,454 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:46:53,454 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:46:53,454 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:46:53,454 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:46:53,455 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:46:42', tmtdew=10.57, humidity=48.7, cloud=0.0, wind=29.36, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:46:24.643', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:46:53,455 [DEBUG][       Thread-611024][   transport.py][1871] : EOF in transport thread
2025-07-01 16:46:53,548 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:46:53,561 [DEBUG][       Thread-611027][   transport.py][1871] : starting thread (client mode): 0x81561d0
2025-07-01 16:46:53,561 [DEBUG][       Thread-611027][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:46:53,576 [DEBUG][       Thread-611027][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:46:53,576 [ INFO][       Thread-611027][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:46:53,584 [DEBUG][       Thread-611027][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:46:53,584 [DEBUG][       Thread-611027][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:46:53,584 [DEBUG][       Thread-611027][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:46:53,584 [DEBUG][       Thread-611027][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:46:53,584 [DEBUG][       Thread-611027][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:46:53,584 [DEBUG][       Thread-611027][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:46:53,584 [DEBUG][       Thread-611027][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:46:53,584 [DEBUG][       Thread-611027][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:46:53,584 [DEBUG][       Thread-611027][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:46:53,584 [DEBUG][       Thread-611027][   transport.py][1871] : client lang: <none>
2025-07-01 16:46:53,584 [DEBUG][       Thread-611027][   transport.py][1871] : server lang: <none>
2025-07-01 16:46:53,584 [DEBUG][       Thread-611027][   transport.py][1871] : kex follows: False
2025-07-01 16:46:53,585 [DEBUG][       Thread-611027][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:46:53,585 [DEBUG][       Thread-611027][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:46:53,585 [DEBUG][       Thread-611027][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:46:53,585 [DEBUG][       Thread-611027][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:46:53,585 [DEBUG][       Thread-611027][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:46:53,585 [DEBUG][       Thread-611027][   transport.py][1871] : Compression: none
2025-07-01 16:46:53,585 [DEBUG][       Thread-611027][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:46:53,641 [DEBUG][       Thread-611027][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:46:53,642 [DEBUG][       Thread-611027][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:46:53,642 [DEBUG][       Thread-611027][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:46:53,643 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:46:53,643 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:46:53,701 [DEBUG][       Thread-611027][   transport.py][1871] : userauth is OK
2025-07-01 16:46:53,701 [DEBUG][       Thread-611027][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:46:53,702 [DEBUG][       Thread-611027][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:46:53,702 [DEBUG][       Thread-611027][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:46:53,702 [DEBUG][       Thread-611027][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:46:53,721 [ INFO][       Thread-611027][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:46:53,721 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:46:53,722 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:46:54,769 [DEBUG][       Thread-611027][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:46:54,769 [DEBUG][       Thread-611027][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:46:54,820 [DEBUG][       Thread-611027][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:46:54,820 [DEBUG][       Thread-611027][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:46:54,829 [DEBUG][       Thread-611027][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:46:54,838 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:46:54,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-07-01 16:46:54,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-07-01 16:46:54,857 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:46:54,858 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:46:54,858 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:46:54,867 [DEBUG][       Thread-611027][   transport.py][1871] : EOF in transport thread
2025-07-01 16:46:59,804 [DEBUG][Thread-611029 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:47:04,860 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:47:04,861 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:47:04,861 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:47:04,864 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:47:05,351 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 46, 42), 10.57, 48.7, 0.0, 29.36, 13.36, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:47:05,351 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:46:42
2025-07-01 16:47:05,432 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:47:05,436 [DEBUG][       Thread-611030][   transport.py][1871] : starting thread (client mode): 0x8170760
2025-07-01 16:47:05,436 [DEBUG][       Thread-611030][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:47:05,447 [DEBUG][       Thread-611030][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:47:05,447 [ INFO][       Thread-611030][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:47:05,450 [DEBUG][       Thread-611030][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:47:05,450 [DEBUG][       Thread-611030][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:47:05,450 [DEBUG][       Thread-611030][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:47:05,450 [DEBUG][       Thread-611030][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:47:05,450 [DEBUG][       Thread-611030][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:47:05,450 [DEBUG][       Thread-611030][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:47:05,450 [DEBUG][       Thread-611030][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:47:05,450 [DEBUG][       Thread-611030][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:47:05,450 [DEBUG][       Thread-611030][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:47:05,450 [DEBUG][       Thread-611030][   transport.py][1871] : client lang: <none>
2025-07-01 16:47:05,450 [DEBUG][       Thread-611030][   transport.py][1871] : server lang: <none>
2025-07-01 16:47:05,450 [DEBUG][       Thread-611030][   transport.py][1871] : kex follows: False
2025-07-01 16:47:05,450 [DEBUG][       Thread-611030][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:47:05,450 [DEBUG][       Thread-611030][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:47:05,450 [DEBUG][       Thread-611030][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:47:05,450 [DEBUG][       Thread-611030][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:47:05,450 [DEBUG][       Thread-611030][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:47:05,450 [DEBUG][       Thread-611030][   transport.py][1871] : Compression: none
2025-07-01 16:47:05,450 [DEBUG][       Thread-611030][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:47:05,466 [DEBUG][       Thread-611030][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:47:05,467 [DEBUG][       Thread-611030][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:47:05,467 [DEBUG][       Thread-611030][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:47:05,467 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:47:05,468 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:47:05,469 [DEBUG][       Thread-611030][   transport.py][1871] : userauth is OK
2025-07-01 16:47:05,481 [ INFO][       Thread-611030][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:47:05,482 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:47:06,076 [DEBUG][       Thread-611030][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:47:06,077 [DEBUG][       Thread-611030][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:47:06,121 [DEBUG][       Thread-611030][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:47:06,121 [DEBUG][       Thread-611030][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:47:06,124 [DEBUG][       Thread-611030][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:47:06,139 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:47:06,139 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:47:06,141 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:47:06,143 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:47:06,148 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:47:06,151 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:47:06,151 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:47:06,152 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:47:06,152 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.615910 -999.00  +13.10  29.12     53   +4.00 1 2 1 1 1   887    0 8.15 -32.62 ----- 38.1 29.1 26.4 37.4 14.2 -20.7 14.0 -20.2 13.9 -19.6 14.2 -19.6
2025-07-01 16:47:06,152 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:47:06,152 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:47:06,152 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.615910
2025-07-01 16:47:06,153 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:47:06,153 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:47:06,153 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:47:06,153 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:47:06,153 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:47:06,153 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:46:42', tmtdew=10.57, humidity=48.7, cloud=0.0, wind=29.36, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:46:54.624', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:47:06,155 [DEBUG][       Thread-611030][   transport.py][1871] : EOF in transport thread
2025-07-01 16:47:06,238 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:47:06,251 [DEBUG][       Thread-611033][   transport.py][1871] : starting thread (client mode): 0x75a9f90
2025-07-01 16:47:06,251 [DEBUG][       Thread-611033][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:47:06,266 [DEBUG][       Thread-611033][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:47:06,267 [ INFO][       Thread-611033][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:47:06,274 [DEBUG][       Thread-611033][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:47:06,274 [DEBUG][       Thread-611033][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:47:06,274 [DEBUG][       Thread-611033][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:47:06,274 [DEBUG][       Thread-611033][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:47:06,274 [DEBUG][       Thread-611033][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:47:06,274 [DEBUG][       Thread-611033][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:47:06,274 [DEBUG][       Thread-611033][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:47:06,274 [DEBUG][       Thread-611033][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:47:06,274 [DEBUG][       Thread-611033][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:47:06,274 [DEBUG][       Thread-611033][   transport.py][1871] : client lang: <none>
2025-07-01 16:47:06,275 [DEBUG][       Thread-611033][   transport.py][1871] : server lang: <none>
2025-07-01 16:47:06,275 [DEBUG][       Thread-611033][   transport.py][1871] : kex follows: False
2025-07-01 16:47:06,275 [DEBUG][       Thread-611033][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:47:06,275 [DEBUG][       Thread-611033][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:47:06,275 [DEBUG][       Thread-611033][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:47:06,275 [DEBUG][       Thread-611033][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:47:06,275 [DEBUG][       Thread-611033][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:47:06,275 [DEBUG][       Thread-611033][   transport.py][1871] : Compression: none
2025-07-01 16:47:06,275 [DEBUG][       Thread-611033][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:47:06,332 [DEBUG][       Thread-611033][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:47:06,332 [DEBUG][       Thread-611033][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:47:06,333 [DEBUG][       Thread-611033][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:47:06,333 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:47:06,334 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:47:06,398 [DEBUG][       Thread-611033][   transport.py][1871] : userauth is OK
2025-07-01 16:47:06,399 [DEBUG][       Thread-611033][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:47:06,399 [DEBUG][       Thread-611033][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:47:06,399 [DEBUG][       Thread-611033][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:47:06,399 [DEBUG][       Thread-611033][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:47:06,418 [ INFO][       Thread-611033][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:47:06,418 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:47:06,418 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:47:07,476 [DEBUG][       Thread-611033][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:47:07,477 [DEBUG][       Thread-611033][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:47:07,528 [DEBUG][       Thread-611033][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:47:07,528 [DEBUG][       Thread-611033][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:47:07,538 [DEBUG][       Thread-611033][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:47:07,547 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:47:07,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-07-01 16:47:07,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-07-01 16:47:07,565 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:47:07,565 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:47:07,566 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:47:07,573 [DEBUG][       Thread-611033][   transport.py][1871] : EOF in transport thread
2025-07-01 16:47:08,828 [DEBUG][Thread-611035 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:47:17,576 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:47:17,576 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:47:17,576 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:47:17,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-07-01 16:47:17,849 [DEBUG][Thread-611036 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:47:18,065 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 47, 14), 10.53, 49.08, 0.0, 31.83, 13.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:47:18,065 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:47:14
2025-07-01 16:47:18,142 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:47:18,147 [DEBUG][       Thread-611037][   transport.py][1871] : starting thread (client mode): 0x81a7370
2025-07-01 16:47:18,147 [DEBUG][       Thread-611037][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:47:18,168 [DEBUG][       Thread-611037][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:47:18,168 [ INFO][       Thread-611037][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:47:18,171 [DEBUG][       Thread-611037][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:47:18,171 [DEBUG][       Thread-611037][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:47:18,171 [DEBUG][       Thread-611037][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:47:18,172 [DEBUG][       Thread-611037][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:47:18,172 [DEBUG][       Thread-611037][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:47:18,172 [DEBUG][       Thread-611037][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:47:18,172 [DEBUG][       Thread-611037][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:47:18,172 [DEBUG][       Thread-611037][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:47:18,172 [DEBUG][       Thread-611037][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:47:18,172 [DEBUG][       Thread-611037][   transport.py][1871] : client lang: <none>
2025-07-01 16:47:18,172 [DEBUG][       Thread-611037][   transport.py][1871] : server lang: <none>
2025-07-01 16:47:18,172 [DEBUG][       Thread-611037][   transport.py][1871] : kex follows: False
2025-07-01 16:47:18,172 [DEBUG][       Thread-611037][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:47:18,172 [DEBUG][       Thread-611037][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:47:18,172 [DEBUG][       Thread-611037][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:47:18,172 [DEBUG][       Thread-611037][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:47:18,172 [DEBUG][       Thread-611037][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:47:18,172 [DEBUG][       Thread-611037][   transport.py][1871] : Compression: none
2025-07-01 16:47:18,172 [DEBUG][       Thread-611037][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:47:18,188 [DEBUG][       Thread-611037][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:47:18,189 [DEBUG][       Thread-611037][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:47:18,189 [DEBUG][       Thread-611037][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:47:18,190 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:47:18,190 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:47:18,191 [DEBUG][       Thread-611037][   transport.py][1871] : userauth is OK
2025-07-01 16:47:18,215 [ INFO][       Thread-611037][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:47:18,216 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:47:18,829 [DEBUG][       Thread-611037][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:47:18,829 [DEBUG][       Thread-611037][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:47:18,873 [DEBUG][       Thread-611037][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:47:18,873 [DEBUG][       Thread-611037][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:47:18,876 [DEBUG][       Thread-611037][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:47:18,889 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:47:18,890 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:47:18,892 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:47:18,894 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:47:18,899 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:47:18,901 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:47:18,902 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:47:18,902 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:47:18,902 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.615910 -999.00  +13.10  29.12     53   +4.00 1 2 1 1 1   887    0 8.15 -32.62 ----- 38.1 29.1 26.4 37.4 14.2 -20.7 14.0 -20.2 13.9 -19.6 14.2 -19.6
2025-07-01 16:47:18,903 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:47:18,903 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:47:18,903 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.615910
2025-07-01 16:47:18,903 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:47:18,904 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:47:18,904 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:47:18,904 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:47:18,904 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:47:18,904 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:47:14', tmtdew=10.53, humidity=49.08, cloud=0.0, wind=31.83, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:46:54.624', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:47:18,904 [DEBUG][       Thread-611037][   transport.py][1871] : EOF in transport thread
2025-07-01 16:47:18,988 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:47:18,999 [DEBUG][       Thread-611040][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 16:47:18,999 [DEBUG][       Thread-611040][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:47:19,015 [DEBUG][       Thread-611040][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:47:19,015 [ INFO][       Thread-611040][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:47:19,025 [DEBUG][       Thread-611040][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:47:19,025 [DEBUG][       Thread-611040][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:47:19,025 [DEBUG][       Thread-611040][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:47:19,025 [DEBUG][       Thread-611040][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:47:19,025 [DEBUG][       Thread-611040][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:47:19,025 [DEBUG][       Thread-611040][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:47:19,025 [DEBUG][       Thread-611040][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:47:19,025 [DEBUG][       Thread-611040][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:47:19,025 [DEBUG][       Thread-611040][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:47:19,025 [DEBUG][       Thread-611040][   transport.py][1871] : client lang: <none>
2025-07-01 16:47:19,025 [DEBUG][       Thread-611040][   transport.py][1871] : server lang: <none>
2025-07-01 16:47:19,025 [DEBUG][       Thread-611040][   transport.py][1871] : kex follows: False
2025-07-01 16:47:19,025 [DEBUG][       Thread-611040][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:47:19,025 [DEBUG][       Thread-611040][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:47:19,025 [DEBUG][       Thread-611040][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:47:19,025 [DEBUG][       Thread-611040][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:47:19,025 [DEBUG][       Thread-611040][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:47:19,025 [DEBUG][       Thread-611040][   transport.py][1871] : Compression: none
2025-07-01 16:47:19,025 [DEBUG][       Thread-611040][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:47:19,083 [DEBUG][       Thread-611040][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:47:19,083 [DEBUG][       Thread-611040][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:47:19,083 [DEBUG][       Thread-611040][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:47:19,084 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:47:19,085 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:47:19,143 [DEBUG][       Thread-611040][   transport.py][1871] : userauth is OK
2025-07-01 16:47:19,143 [DEBUG][       Thread-611040][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:47:19,144 [DEBUG][       Thread-611040][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:47:19,144 [DEBUG][       Thread-611040][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:47:19,144 [DEBUG][       Thread-611040][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:47:19,163 [ INFO][       Thread-611040][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:47:19,163 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:47:19,164 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:47:20,179 [DEBUG][       Thread-611040][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:47:20,179 [DEBUG][       Thread-611040][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:47:20,228 [DEBUG][       Thread-611040][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:47:20,228 [DEBUG][       Thread-611040][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:47:20,238 [DEBUG][       Thread-611040][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:47:20,247 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:47:20,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-07-01 16:47:20,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-07-01 16:47:20,265 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:47:20,266 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:47:20,266 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:47:20,277 [DEBUG][       Thread-611040][   transport.py][1871] : EOF in transport thread
2025-07-01 16:47:26,875 [DEBUG][Thread-611042 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:47:30,272 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:47:30,272 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:47:30,272 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:47:30,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-07-01 16:47:30,758 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 47, 14), 10.53, 49.08, 0.0, 31.83, 13.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:47:30,758 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:47:14
2025-07-01 16:47:30,835 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:47:30,840 [DEBUG][       Thread-611043][   transport.py][1871] : starting thread (client mode): 0x81a59c0
2025-07-01 16:47:30,840 [DEBUG][       Thread-611043][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:47:30,862 [DEBUG][       Thread-611043][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:47:30,862 [ INFO][       Thread-611043][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:47:30,865 [DEBUG][       Thread-611043][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:47:30,865 [DEBUG][       Thread-611043][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:47:30,865 [DEBUG][       Thread-611043][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:47:30,865 [DEBUG][       Thread-611043][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:47:30,865 [DEBUG][       Thread-611043][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:47:30,865 [DEBUG][       Thread-611043][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:47:30,865 [DEBUG][       Thread-611043][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:47:30,865 [DEBUG][       Thread-611043][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:47:30,865 [DEBUG][       Thread-611043][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:47:30,865 [DEBUG][       Thread-611043][   transport.py][1871] : client lang: <none>
2025-07-01 16:47:30,865 [DEBUG][       Thread-611043][   transport.py][1871] : server lang: <none>
2025-07-01 16:47:30,865 [DEBUG][       Thread-611043][   transport.py][1871] : kex follows: False
2025-07-01 16:47:30,865 [DEBUG][       Thread-611043][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:47:30,865 [DEBUG][       Thread-611043][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:47:30,865 [DEBUG][       Thread-611043][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:47:30,865 [DEBUG][       Thread-611043][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:47:30,865 [DEBUG][       Thread-611043][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:47:30,866 [DEBUG][       Thread-611043][   transport.py][1871] : Compression: none
2025-07-01 16:47:30,866 [DEBUG][       Thread-611043][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:47:30,883 [DEBUG][       Thread-611043][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:47:30,883 [DEBUG][       Thread-611043][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:47:30,884 [DEBUG][       Thread-611043][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:47:30,884 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:47:30,884 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:47:30,886 [DEBUG][       Thread-611043][   transport.py][1871] : userauth is OK
2025-07-01 16:47:30,911 [ INFO][       Thread-611043][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:47:30,912 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:47:31,537 [DEBUG][       Thread-611043][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:47:31,538 [DEBUG][       Thread-611043][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:47:31,581 [DEBUG][       Thread-611043][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:47:31,581 [DEBUG][       Thread-611043][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:47:31,584 [DEBUG][       Thread-611043][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:47:31,596 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:47:31,596 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:47:31,598 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:47:31,600 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:47:31,606 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:47:31,608 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:47:31,608 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:47:31,609 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:47:31,609 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.615910 -999.00  +13.10  29.12     53   +4.00 1 2 1 1 1   887    0 8.15 -32.62 ----- 38.1 29.1 26.4 37.4 14.2 -20.7 14.0 -20.2 13.9 -19.6 14.2 -19.6
2025-07-01 16:47:31,609 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:47:31,609 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:47:31,609 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.615910
2025-07-01 16:47:31,610 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:47:31,610 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:47:31,610 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:47:31,610 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:47:31,610 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:47:31,611 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:47:14', tmtdew=10.53, humidity=49.08, cloud=0.0, wind=31.83, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:46:54.624', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:47:31,612 [DEBUG][       Thread-611043][   transport.py][1871] : EOF in transport thread
2025-07-01 16:47:31,693 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:47:31,705 [DEBUG][       Thread-611046][   transport.py][1871] : starting thread (client mode): 0x75ab1f0
2025-07-01 16:47:31,705 [DEBUG][       Thread-611046][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:47:31,720 [DEBUG][       Thread-611046][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:47:31,720 [ INFO][       Thread-611046][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:47:31,728 [DEBUG][       Thread-611046][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:47:31,728 [DEBUG][       Thread-611046][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:47:31,728 [DEBUG][       Thread-611046][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:47:31,728 [DEBUG][       Thread-611046][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:47:31,728 [DEBUG][       Thread-611046][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:47:31,728 [DEBUG][       Thread-611046][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:47:31,728 [DEBUG][       Thread-611046][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:47:31,728 [DEBUG][       Thread-611046][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:47:31,728 [DEBUG][       Thread-611046][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:47:31,728 [DEBUG][       Thread-611046][   transport.py][1871] : client lang: <none>
2025-07-01 16:47:31,728 [DEBUG][       Thread-611046][   transport.py][1871] : server lang: <none>
2025-07-01 16:47:31,728 [DEBUG][       Thread-611046][   transport.py][1871] : kex follows: False
2025-07-01 16:47:31,728 [DEBUG][       Thread-611046][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:47:31,728 [DEBUG][       Thread-611046][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:47:31,729 [DEBUG][       Thread-611046][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:47:31,729 [DEBUG][       Thread-611046][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:47:31,729 [DEBUG][       Thread-611046][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:47:31,729 [DEBUG][       Thread-611046][   transport.py][1871] : Compression: none
2025-07-01 16:47:31,729 [DEBUG][       Thread-611046][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:47:31,787 [DEBUG][       Thread-611046][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:47:31,787 [DEBUG][       Thread-611046][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:47:31,788 [DEBUG][       Thread-611046][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:47:31,788 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:47:31,788 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:47:31,846 [DEBUG][       Thread-611046][   transport.py][1871] : userauth is OK
2025-07-01 16:47:31,847 [DEBUG][       Thread-611046][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:47:31,847 [DEBUG][       Thread-611046][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:47:31,847 [DEBUG][       Thread-611046][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:47:31,847 [DEBUG][       Thread-611046][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:47:31,866 [ INFO][       Thread-611046][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:47:31,867 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:47:31,867 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:47:32,893 [DEBUG][       Thread-611046][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:47:32,893 [DEBUG][       Thread-611046][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:47:32,944 [DEBUG][       Thread-611046][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:47:32,944 [DEBUG][       Thread-611046][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:47:32,953 [DEBUG][       Thread-611046][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:47:32,962 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:47: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')
2025-07-01 16:47:32,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') -> 00000000
2025-07-01 16:47:32,980 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:47:32,980 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:47:32,980 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:47:32,988 [DEBUG][       Thread-611046][   transport.py][1871] : EOF in transport thread
2025-07-01 16:47:35,908 [DEBUG][Thread-611048 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:47:39,271 [DEBUG][Thread-611049 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:47:42,991 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:47:42,991 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:47:42,991 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:47:42,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-07-01 16:47:43,472 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 47, 14), 10.53, 49.08, 0.0, 31.83, 13.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:47:43,472 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:47:14
2025-07-01 16:47:43,552 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:47:43,556 [DEBUG][       Thread-611050][   transport.py][1871] : starting thread (client mode): 0x81a6110
2025-07-01 16:47:43,556 [DEBUG][       Thread-611050][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:47:43,576 [DEBUG][       Thread-611050][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:47:43,576 [ INFO][       Thread-611050][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:47:43,579 [DEBUG][       Thread-611050][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:47:43,579 [DEBUG][       Thread-611050][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:47:43,579 [DEBUG][       Thread-611050][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:47:43,579 [DEBUG][       Thread-611050][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:47:43,579 [DEBUG][       Thread-611050][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:47:43,579 [DEBUG][       Thread-611050][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:47:43,579 [DEBUG][       Thread-611050][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:47:43,579 [DEBUG][       Thread-611050][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:47:43,579 [DEBUG][       Thread-611050][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:47:43,579 [DEBUG][       Thread-611050][   transport.py][1871] : client lang: <none>
2025-07-01 16:47:43,580 [DEBUG][       Thread-611050][   transport.py][1871] : server lang: <none>
2025-07-01 16:47:43,580 [DEBUG][       Thread-611050][   transport.py][1871] : kex follows: False
2025-07-01 16:47:43,580 [DEBUG][       Thread-611050][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:47:43,580 [DEBUG][       Thread-611050][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:47:43,580 [DEBUG][       Thread-611050][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:47:43,580 [DEBUG][       Thread-611050][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:47:43,580 [DEBUG][       Thread-611050][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:47:43,580 [DEBUG][       Thread-611050][   transport.py][1871] : Compression: none
2025-07-01 16:47:43,580 [DEBUG][       Thread-611050][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:47:43,595 [DEBUG][       Thread-611050][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:47:43,596 [DEBUG][       Thread-611050][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:47:43,596 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:47:43,596 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:47:43,597 [DEBUG][       Thread-611050][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:47:43,597 [DEBUG][       Thread-611050][   transport.py][1871] : userauth is OK
2025-07-01 16:47:43,622 [ INFO][       Thread-611050][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:47:43,623 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:47:44,295 [DEBUG][       Thread-611050][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:47:44,296 [DEBUG][       Thread-611050][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:47:44,337 [DEBUG][       Thread-611050][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:47:44,337 [DEBUG][       Thread-611050][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:47:44,341 [DEBUG][       Thread-611050][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:47:44,353 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:47:44,354 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:47:44,356 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:47:44,358 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:47:44,369 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:47:44,371 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:47:44,371 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:47:44,372 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:47:44,372 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.616258 -999.00  +13.20  26.60     53   +3.90 1 2 1 1 1   887    0 8.53 -29.97 ----- 26.7 26.6 18.0 40.9 14.2 -20.5 14.0 -20.1 13.9 -19.3 14.2 -19.5
2025-07-01 16:47:44,372 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:47:44,372 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:47:44,372 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.616258
2025-07-01 16:47:44,373 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:47:44,373 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:47:44,373 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:47:44,373 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:47:44,374 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:47:44,374 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:47:14', tmtdew=10.53, humidity=49.08, cloud=0.0, wind=31.83, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:47:24.691', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:47:44,375 [DEBUG][       Thread-611050][   transport.py][1871] : EOF in transport thread
2025-07-01 16:47:44,458 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:47:44,468 [DEBUG][       Thread-611053][   transport.py][1871] : starting thread (client mode): 0x8173f40
2025-07-01 16:47:44,468 [DEBUG][       Thread-611053][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:47:44,486 [DEBUG][       Thread-611053][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:47:44,486 [ INFO][       Thread-611053][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:47:44,497 [DEBUG][       Thread-611053][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:47:44,497 [DEBUG][       Thread-611053][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:47:44,497 [DEBUG][       Thread-611053][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:47:44,497 [DEBUG][       Thread-611053][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:47:44,497 [DEBUG][       Thread-611053][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:47:44,497 [DEBUG][       Thread-611053][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:47:44,497 [DEBUG][       Thread-611053][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:47:44,497 [DEBUG][       Thread-611053][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:47:44,497 [DEBUG][       Thread-611053][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:47:44,497 [DEBUG][       Thread-611053][   transport.py][1871] : client lang: <none>
2025-07-01 16:47:44,497 [DEBUG][       Thread-611053][   transport.py][1871] : server lang: <none>
2025-07-01 16:47:44,497 [DEBUG][       Thread-611053][   transport.py][1871] : kex follows: False
2025-07-01 16:47:44,498 [DEBUG][       Thread-611053][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:47:44,498 [DEBUG][       Thread-611053][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:47:44,498 [DEBUG][       Thread-611053][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:47:44,498 [DEBUG][       Thread-611053][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:47:44,498 [DEBUG][       Thread-611053][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:47:44,498 [DEBUG][       Thread-611053][   transport.py][1871] : Compression: none
2025-07-01 16:47:44,498 [DEBUG][       Thread-611053][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:47:44,555 [DEBUG][       Thread-611053][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:47:44,556 [DEBUG][       Thread-611053][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:47:44,556 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:47:44,557 [DEBUG][       Thread-611053][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:47:44,557 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:47:44,614 [DEBUG][       Thread-611053][   transport.py][1871] : userauth is OK
2025-07-01 16:47:44,614 [DEBUG][       Thread-611053][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:47:44,615 [DEBUG][       Thread-611053][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:47:44,615 [DEBUG][       Thread-611053][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:47:44,615 [DEBUG][       Thread-611053][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:47:44,633 [ INFO][       Thread-611053][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:47:44,634 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:47:44,634 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:47:44,935 [DEBUG][Thread-611055 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:47:45,645 [DEBUG][       Thread-611053][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:47:45,645 [DEBUG][       Thread-611053][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:47:45,696 [DEBUG][       Thread-611053][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:47:45,696 [DEBUG][       Thread-611053][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:47:45,705 [DEBUG][       Thread-611053][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:47:45,714 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:47:45,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-07-01 16:47:45,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-07-01 16:47:45,732 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:47:45,732 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:47:45,733 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:47:45,741 [DEBUG][       Thread-611053][   transport.py][1871] : EOF in transport thread
2025-07-01 16:47:53,956 [DEBUG][Thread-611056 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:47:55,743 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:47:55,743 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:47:55,743 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:47:55,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-07-01 16:47:56,225 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 47, 46), 10.52, 49.09, 0.0, 29.29, 13.35, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:47:56,225 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:47:46
2025-07-01 16:47:56,307 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:47:56,311 [DEBUG][       Thread-611057][   transport.py][1871] : starting thread (client mode): 0x82b3a60
2025-07-01 16:47:56,311 [DEBUG][       Thread-611057][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:47:56,331 [DEBUG][       Thread-611057][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:47:56,331 [ INFO][       Thread-611057][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:47:56,334 [DEBUG][       Thread-611057][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:47:56,334 [DEBUG][       Thread-611057][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:47:56,334 [DEBUG][       Thread-611057][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:47:56,334 [DEBUG][       Thread-611057][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:47:56,334 [DEBUG][       Thread-611057][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:47:56,334 [DEBUG][       Thread-611057][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:47:56,334 [DEBUG][       Thread-611057][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:47:56,334 [DEBUG][       Thread-611057][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:47:56,334 [DEBUG][       Thread-611057][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:47:56,334 [DEBUG][       Thread-611057][   transport.py][1871] : client lang: <none>
2025-07-01 16:47:56,334 [DEBUG][       Thread-611057][   transport.py][1871] : server lang: <none>
2025-07-01 16:47:56,334 [DEBUG][       Thread-611057][   transport.py][1871] : kex follows: False
2025-07-01 16:47:56,334 [DEBUG][       Thread-611057][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:47:56,334 [DEBUG][       Thread-611057][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:47:56,334 [DEBUG][       Thread-611057][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:47:56,334 [DEBUG][       Thread-611057][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:47:56,334 [DEBUG][       Thread-611057][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:47:56,334 [DEBUG][       Thread-611057][   transport.py][1871] : Compression: none
2025-07-01 16:47:56,334 [DEBUG][       Thread-611057][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:47:56,349 [DEBUG][       Thread-611057][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:47:56,349 [DEBUG][       Thread-611057][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:47:56,349 [DEBUG][       Thread-611057][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:47:56,349 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:47:56,349 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:47:56,350 [DEBUG][       Thread-611057][   transport.py][1871] : userauth is OK
2025-07-01 16:47:56,363 [ INFO][       Thread-611057][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:47:56,363 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:47:57,000 [DEBUG][       Thread-611057][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:47:57,000 [DEBUG][       Thread-611057][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:47:57,041 [DEBUG][       Thread-611057][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:47:57,041 [DEBUG][       Thread-611057][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:47:57,045 [DEBUG][       Thread-611057][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:47:57,057 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:47:57,057 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:47:57,059 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:47:57,061 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:47:57,066 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:47:57,068 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:47:57,068 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:47:57,069 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:47:57,069 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.616258 -999.00  +13.20  26.60     53   +3.90 1 2 1 1 1   887    0 8.53 -29.97 ----- 26.7 26.6 18.0 40.9 14.2 -20.5 14.0 -20.1 13.9 -19.3 14.2 -19.5
2025-07-01 16:47:57,069 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:47:57,069 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:47:57,069 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.616258
2025-07-01 16:47:57,069 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:47:57,070 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:47:57,070 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:47:57,070 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:47:57,070 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:47:57,070 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:47:46', tmtdew=10.52, humidity=49.09, cloud=0.0, wind=29.29, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:47:24.691', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:47:57,071 [DEBUG][       Thread-611057][   transport.py][1871] : EOF in transport thread
2025-07-01 16:47:57,154 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:47:57,165 [DEBUG][       Thread-611060][   transport.py][1871] : starting thread (client mode): 0x81e6710
2025-07-01 16:47:57,165 [DEBUG][       Thread-611060][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:47:57,180 [DEBUG][       Thread-611060][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:47:57,181 [ INFO][       Thread-611060][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:47:57,190 [DEBUG][       Thread-611060][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:47:57,190 [DEBUG][       Thread-611060][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:47:57,190 [DEBUG][       Thread-611060][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:47:57,190 [DEBUG][       Thread-611060][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:47:57,191 [DEBUG][       Thread-611060][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:47:57,191 [DEBUG][       Thread-611060][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:47:57,191 [DEBUG][       Thread-611060][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:47:57,191 [DEBUG][       Thread-611060][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:47:57,191 [DEBUG][       Thread-611060][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:47:57,191 [DEBUG][       Thread-611060][   transport.py][1871] : client lang: <none>
2025-07-01 16:47:57,191 [DEBUG][       Thread-611060][   transport.py][1871] : server lang: <none>
2025-07-01 16:47:57,191 [DEBUG][       Thread-611060][   transport.py][1871] : kex follows: False
2025-07-01 16:47:57,191 [DEBUG][       Thread-611060][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:47:57,191 [DEBUG][       Thread-611060][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:47:57,191 [DEBUG][       Thread-611060][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:47:57,191 [DEBUG][       Thread-611060][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:47:57,191 [DEBUG][       Thread-611060][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:47:57,191 [DEBUG][       Thread-611060][   transport.py][1871] : Compression: none
2025-07-01 16:47:57,191 [DEBUG][       Thread-611060][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:47:57,256 [DEBUG][       Thread-611060][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:47:57,256 [DEBUG][       Thread-611060][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:47:57,257 [DEBUG][       Thread-611060][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:47:57,257 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:47:57,258 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:47:57,313 [DEBUG][       Thread-611060][   transport.py][1871] : userauth is OK
2025-07-01 16:47:57,314 [DEBUG][       Thread-611060][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:47:57,314 [DEBUG][       Thread-611060][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:47:57,314 [DEBUG][       Thread-611060][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:47:57,314 [DEBUG][       Thread-611060][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:47:57,334 [ INFO][       Thread-611060][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:47:57,334 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:47:57,334 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:47:58,359 [DEBUG][       Thread-611060][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:47:58,359 [DEBUG][       Thread-611060][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:47:58,408 [DEBUG][       Thread-611060][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:47:58,408 [DEBUG][       Thread-611060][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:47:58,417 [DEBUG][       Thread-611060][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:47:58,427 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:47:58,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-07-01 16:47:58,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-07-01 16:47:58,445 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:47:58,446 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:47:58,446 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:47:58,457 [DEBUG][       Thread-611060][   transport.py][1871] : EOF in transport thread
2025-07-01 16:48:02,979 [DEBUG][Thread-611062 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:48:08,457 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:48:08,457 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:48:08,457 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:48:08,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-07-01 16:48:08,947 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 47, 46), 10.52, 49.09, 0.0, 29.29, 13.35, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:48:08,947 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:47:46
2025-07-01 16:48:09,030 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:48:09,034 [DEBUG][       Thread-611063][   transport.py][1871] : starting thread (client mode): 0x81c84c0
2025-07-01 16:48:09,034 [DEBUG][       Thread-611063][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:48:09,055 [DEBUG][       Thread-611063][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:48:09,055 [ INFO][       Thread-611063][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:48:09,058 [DEBUG][       Thread-611063][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:48:09,059 [DEBUG][       Thread-611063][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:48:09,059 [DEBUG][       Thread-611063][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:48:09,059 [DEBUG][       Thread-611063][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:48:09,059 [DEBUG][       Thread-611063][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:48:09,059 [DEBUG][       Thread-611063][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:48:09,059 [DEBUG][       Thread-611063][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:48:09,059 [DEBUG][       Thread-611063][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:48:09,059 [DEBUG][       Thread-611063][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:48:09,059 [DEBUG][       Thread-611063][   transport.py][1871] : client lang: <none>
2025-07-01 16:48:09,059 [DEBUG][       Thread-611063][   transport.py][1871] : server lang: <none>
2025-07-01 16:48:09,059 [DEBUG][       Thread-611063][   transport.py][1871] : kex follows: False
2025-07-01 16:48:09,059 [DEBUG][       Thread-611063][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:48:09,059 [DEBUG][       Thread-611063][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:48:09,059 [DEBUG][       Thread-611063][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:48:09,059 [DEBUG][       Thread-611063][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:48:09,059 [DEBUG][       Thread-611063][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:48:09,059 [DEBUG][       Thread-611063][   transport.py][1871] : Compression: none
2025-07-01 16:48:09,059 [DEBUG][       Thread-611063][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:48:09,075 [DEBUG][       Thread-611063][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:48:09,076 [DEBUG][       Thread-611063][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:48:09,076 [DEBUG][       Thread-611063][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:48:09,076 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:48:09,077 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:48:09,078 [DEBUG][       Thread-611063][   transport.py][1871] : userauth is OK
2025-07-01 16:48:09,092 [ INFO][       Thread-611063][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:48:09,092 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:48:09,639 [DEBUG][       Thread-611063][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:48:09,639 [DEBUG][       Thread-611063][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:48:09,680 [DEBUG][       Thread-611063][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:48:09,681 [DEBUG][       Thread-611063][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:48:09,684 [DEBUG][       Thread-611063][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:48:09,689 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:48:09,690 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:48:09,691 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:48:09,693 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:48:09,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:48:09,699 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:48:09,699 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:48:09,699 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:48:09,700 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.616258 -999.00  +13.20  26.60     53   +3.90 1 2 1 1 1   887    0 8.53 -29.97 ----- 26.7 26.6 18.0 40.9 14.2 -20.5 14.0 -20.1 13.9 -19.3 14.2 -19.5
2025-07-01 16:48:09,700 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:48:09,700 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:48:09,700 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.616258
2025-07-01 16:48:09,700 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:48:09,701 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:48:09,701 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:48:09,701 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:48:09,701 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:48:09,701 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:47:46', tmtdew=10.52, humidity=49.09, cloud=0.0, wind=29.29, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:47:24.691', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:48:09,702 [DEBUG][       Thread-611063][   transport.py][1871] : EOF in transport thread
2025-07-01 16:48:09,785 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:48:09,794 [DEBUG][       Thread-611066][   transport.py][1871] : starting thread (client mode): 0x8173430
2025-07-01 16:48:09,794 [DEBUG][       Thread-611066][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:48:09,810 [DEBUG][       Thread-611066][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:48:09,810 [ INFO][       Thread-611066][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:48:09,817 [DEBUG][       Thread-611066][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:48:09,817 [DEBUG][       Thread-611066][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:48:09,817 [DEBUG][       Thread-611066][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:48:09,817 [DEBUG][       Thread-611066][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:48:09,817 [DEBUG][       Thread-611066][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:48:09,817 [DEBUG][       Thread-611066][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:48:09,817 [DEBUG][       Thread-611066][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:48:09,817 [DEBUG][       Thread-611066][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:48:09,818 [DEBUG][       Thread-611066][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:48:09,818 [DEBUG][       Thread-611066][   transport.py][1871] : client lang: <none>
2025-07-01 16:48:09,818 [DEBUG][       Thread-611066][   transport.py][1871] : server lang: <none>
2025-07-01 16:48:09,818 [DEBUG][       Thread-611066][   transport.py][1871] : kex follows: False
2025-07-01 16:48:09,818 [DEBUG][       Thread-611066][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:48:09,818 [DEBUG][       Thread-611066][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:48:09,818 [DEBUG][       Thread-611066][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:48:09,818 [DEBUG][       Thread-611066][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:48:09,818 [DEBUG][       Thread-611066][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:48:09,818 [DEBUG][       Thread-611066][   transport.py][1871] : Compression: none
2025-07-01 16:48:09,818 [DEBUG][       Thread-611066][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:48:09,876 [DEBUG][       Thread-611066][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:48:09,876 [DEBUG][       Thread-611066][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:48:09,876 [DEBUG][       Thread-611066][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:48:09,876 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:48:09,877 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:48:09,932 [DEBUG][       Thread-611066][   transport.py][1871] : userauth is OK
2025-07-01 16:48:09,932 [DEBUG][       Thread-611066][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:48:09,932 [DEBUG][       Thread-611066][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:48:09,932 [DEBUG][       Thread-611066][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:48:09,932 [DEBUG][       Thread-611066][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:48:09,952 [ INFO][       Thread-611066][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:48:09,952 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:48:09,952 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:48:10,976 [DEBUG][       Thread-611066][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:48:10,976 [DEBUG][       Thread-611066][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:48:11,028 [DEBUG][       Thread-611066][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:48:11,028 [DEBUG][       Thread-611066][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:48:11,037 [DEBUG][       Thread-611066][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:48:11,046 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:48:11,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-07-01 16:48:11,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-07-01 16:48:11,064 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:48:11,064 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:48:11,064 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:48:11,072 [DEBUG][       Thread-611066][   transport.py][1871] : EOF in transport thread
2025-07-01 16:48:12,021 [DEBUG][Thread-611068 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:48:21,040 [DEBUG][Thread-611069 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:48:21,075 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:48:21,075 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:48:21,075 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:48:21,078 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:48:21,568 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 48, 18), 10.53, 49.03, 0.0, 28.19, 13.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:48:21,569 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:48:18
2025-07-01 16:48:21,651 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:48:21,654 [DEBUG][       Thread-611070][   transport.py][1871] : starting thread (client mode): 0x82b1a80
2025-07-01 16:48:21,654 [DEBUG][       Thread-611070][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:48:21,676 [DEBUG][       Thread-611070][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:48:21,676 [ INFO][       Thread-611070][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:48:21,681 [DEBUG][       Thread-611070][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:48:21,681 [DEBUG][       Thread-611070][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:48:21,681 [DEBUG][       Thread-611070][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:48:21,681 [DEBUG][       Thread-611070][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:48:21,681 [DEBUG][       Thread-611070][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:48:21,681 [DEBUG][       Thread-611070][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:48:21,681 [DEBUG][       Thread-611070][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:48:21,681 [DEBUG][       Thread-611070][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:48:21,681 [DEBUG][       Thread-611070][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:48:21,681 [DEBUG][       Thread-611070][   transport.py][1871] : client lang: <none>
2025-07-01 16:48:21,681 [DEBUG][       Thread-611070][   transport.py][1871] : server lang: <none>
2025-07-01 16:48:21,681 [DEBUG][       Thread-611070][   transport.py][1871] : kex follows: False
2025-07-01 16:48:21,681 [DEBUG][       Thread-611070][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:48:21,681 [DEBUG][       Thread-611070][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:48:21,681 [DEBUG][       Thread-611070][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:48:21,681 [DEBUG][       Thread-611070][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:48:21,681 [DEBUG][       Thread-611070][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:48:21,681 [DEBUG][       Thread-611070][   transport.py][1871] : Compression: none
2025-07-01 16:48:21,681 [DEBUG][       Thread-611070][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:48:21,702 [DEBUG][       Thread-611070][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:48:21,703 [DEBUG][       Thread-611070][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:48:21,703 [DEBUG][       Thread-611070][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:48:21,703 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:48:21,703 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:48:21,704 [DEBUG][       Thread-611070][   transport.py][1871] : userauth is OK
2025-07-01 16:48:21,730 [ INFO][       Thread-611070][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:48:21,731 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:48:22,414 [DEBUG][       Thread-611070][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:48:22,414 [DEBUG][       Thread-611070][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:48:22,457 [DEBUG][       Thread-611070][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:48:22,457 [DEBUG][       Thread-611070][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:48:22,460 [DEBUG][       Thread-611070][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:48:22,472 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:48:22,472 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:48:22,474 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:48:22,476 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:48:22,482 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:48:22,484 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:48:22,484 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:48:22,485 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:48:22,485 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.616605 -999.00  +13.10  27.94     53   +4.00 1 2 1 1 1   887    0 8.73 -27.22 ----- 29.0 27.9 28.8 37.9 14.2 -20.4 14.0 -20.1 13.9 -19.3 14.2 -19.5
2025-07-01 16:48:22,485 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:48:22,485 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:48:22,485 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.616605
2025-07-01 16:48:22,485 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:48:22,486 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:48:22,486 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:48:22,486 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:48:22,486 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:48:22,486 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:48:18', tmtdew=10.53, humidity=49.03, cloud=0.0, wind=28.19, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:47:54.672', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:48:22,487 [DEBUG][       Thread-611070][   transport.py][1871] : EOF in transport thread
2025-07-01 16:48:22,570 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:48:22,580 [DEBUG][       Thread-611073][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 16:48:22,580 [DEBUG][       Thread-611073][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:48:22,595 [DEBUG][       Thread-611073][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:48:22,595 [ INFO][       Thread-611073][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:48:22,603 [DEBUG][       Thread-611073][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:48:22,603 [DEBUG][       Thread-611073][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:48:22,603 [DEBUG][       Thread-611073][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:48:22,603 [DEBUG][       Thread-611073][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:48:22,603 [DEBUG][       Thread-611073][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:48:22,603 [DEBUG][       Thread-611073][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:48:22,603 [DEBUG][       Thread-611073][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:48:22,603 [DEBUG][       Thread-611073][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:48:22,603 [DEBUG][       Thread-611073][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:48:22,603 [DEBUG][       Thread-611073][   transport.py][1871] : client lang: <none>
2025-07-01 16:48:22,603 [DEBUG][       Thread-611073][   transport.py][1871] : server lang: <none>
2025-07-01 16:48:22,603 [DEBUG][       Thread-611073][   transport.py][1871] : kex follows: False
2025-07-01 16:48:22,603 [DEBUG][       Thread-611073][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:48:22,603 [DEBUG][       Thread-611073][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:48:22,603 [DEBUG][       Thread-611073][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:48:22,603 [DEBUG][       Thread-611073][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:48:22,603 [DEBUG][       Thread-611073][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:48:22,603 [DEBUG][       Thread-611073][   transport.py][1871] : Compression: none
2025-07-01 16:48:22,603 [DEBUG][       Thread-611073][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:48:22,660 [DEBUG][       Thread-611073][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:48:22,660 [DEBUG][       Thread-611073][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:48:22,661 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:48:22,661 [DEBUG][       Thread-611073][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:48:22,662 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:48:22,716 [DEBUG][       Thread-611073][   transport.py][1871] : userauth is OK
2025-07-01 16:48:22,716 [DEBUG][       Thread-611073][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:48:22,717 [DEBUG][       Thread-611073][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:48:22,717 [DEBUG][       Thread-611073][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:48:22,717 [DEBUG][       Thread-611073][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:48:22,736 [ INFO][       Thread-611073][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:48:22,736 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:48:22,737 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:48:23,753 [DEBUG][       Thread-611073][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:48:23,753 [DEBUG][       Thread-611073][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:48:23,804 [DEBUG][       Thread-611073][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:48:23,804 [DEBUG][       Thread-611073][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:48:23,813 [DEBUG][       Thread-611073][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:48:23,823 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:48:23,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')
2025-07-01 16:48:23,832 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 16:48:23,845 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:48:23,845 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:48:23,846 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:48:23,853 [DEBUG][       Thread-611073][   transport.py][1871] : EOF in transport thread
2025-07-01 16:48:30,066 [DEBUG][Thread-611075 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:48:33,856 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:48:33,856 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:48:33,856 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:48:33,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-07-01 16:48:34,338 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 48, 18), 10.53, 49.03, 0.0, 28.19, 13.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:48:34,338 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:48:18
2025-07-01 16:48:34,420 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:48:34,425 [DEBUG][       Thread-611076][   transport.py][1871] : starting thread (client mode): 0x82b1330
2025-07-01 16:48:34,425 [DEBUG][       Thread-611076][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:48:34,446 [DEBUG][       Thread-611076][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:48:34,446 [ INFO][       Thread-611076][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:48:34,449 [DEBUG][       Thread-611076][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:48:34,450 [DEBUG][       Thread-611076][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:48:34,450 [DEBUG][       Thread-611076][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:48:34,450 [DEBUG][       Thread-611076][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:48:34,450 [DEBUG][       Thread-611076][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:48:34,450 [DEBUG][       Thread-611076][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:48:34,450 [DEBUG][       Thread-611076][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:48:34,450 [DEBUG][       Thread-611076][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:48:34,450 [DEBUG][       Thread-611076][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:48:34,450 [DEBUG][       Thread-611076][   transport.py][1871] : client lang: <none>
2025-07-01 16:48:34,450 [DEBUG][       Thread-611076][   transport.py][1871] : server lang: <none>
2025-07-01 16:48:34,450 [DEBUG][       Thread-611076][   transport.py][1871] : kex follows: False
2025-07-01 16:48:34,450 [DEBUG][       Thread-611076][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:48:34,450 [DEBUG][       Thread-611076][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:48:34,450 [DEBUG][       Thread-611076][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:48:34,450 [DEBUG][       Thread-611076][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:48:34,450 [DEBUG][       Thread-611076][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:48:34,450 [DEBUG][       Thread-611076][   transport.py][1871] : Compression: none
2025-07-01 16:48:34,450 [DEBUG][       Thread-611076][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:48:34,467 [DEBUG][       Thread-611076][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:48:34,467 [DEBUG][       Thread-611076][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:48:34,468 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:48:34,468 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:48:34,469 [DEBUG][       Thread-611076][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:48:34,469 [DEBUG][       Thread-611076][   transport.py][1871] : userauth is OK
2025-07-01 16:48:34,494 [ INFO][       Thread-611076][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:48:34,495 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:48:35,069 [DEBUG][       Thread-611076][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:48:35,069 [DEBUG][       Thread-611076][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:48:35,113 [DEBUG][       Thread-611076][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:48:35,113 [DEBUG][       Thread-611076][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:48:35,116 [DEBUG][       Thread-611076][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:48:35,129 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:48:35,130 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:48:35,132 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:48:35,134 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:48:35,139 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:48:35,141 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:48:35,141 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:48:35,142 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:48:35,142 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.616605 -999.00  +13.10  27.94     53   +4.00 1 2 1 1 1   887    0 8.73 -27.22 ----- 29.0 27.9 28.8 37.9 14.2 -20.4 14.0 -20.1 13.9 -19.3 14.2 -19.5
2025-07-01 16:48:35,142 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:48:35,142 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:48:35,142 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.616605
2025-07-01 16:48:35,142 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:48:35,143 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:48:35,143 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:48:35,143 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:48:35,143 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:48:35,143 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:48:18', tmtdew=10.53, humidity=49.03, cloud=0.0, wind=28.19, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:47:54.672', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:48:35,144 [DEBUG][       Thread-611076][   transport.py][1871] : EOF in transport thread
2025-07-01 16:48:35,227 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:48:35,238 [DEBUG][       Thread-611079][   transport.py][1871] : starting thread (client mode): 0x83c8430
2025-07-01 16:48:35,238 [DEBUG][       Thread-611079][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:48:35,254 [DEBUG][       Thread-611079][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:48:35,254 [ INFO][       Thread-611079][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:48:35,261 [DEBUG][       Thread-611079][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:48:35,262 [DEBUG][       Thread-611079][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:48:35,262 [DEBUG][       Thread-611079][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:48:35,262 [DEBUG][       Thread-611079][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:48:35,262 [DEBUG][       Thread-611079][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:48:35,262 [DEBUG][       Thread-611079][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:48:35,262 [DEBUG][       Thread-611079][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:48:35,262 [DEBUG][       Thread-611079][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:48:35,262 [DEBUG][       Thread-611079][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:48:35,262 [DEBUG][       Thread-611079][   transport.py][1871] : client lang: <none>
2025-07-01 16:48:35,262 [DEBUG][       Thread-611079][   transport.py][1871] : server lang: <none>
2025-07-01 16:48:35,262 [DEBUG][       Thread-611079][   transport.py][1871] : kex follows: False
2025-07-01 16:48:35,262 [DEBUG][       Thread-611079][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:48:35,262 [DEBUG][       Thread-611079][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:48:35,262 [DEBUG][       Thread-611079][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:48:35,262 [DEBUG][       Thread-611079][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:48:35,262 [DEBUG][       Thread-611079][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:48:35,263 [DEBUG][       Thread-611079][   transport.py][1871] : Compression: none
2025-07-01 16:48:35,263 [DEBUG][       Thread-611079][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:48:35,319 [DEBUG][       Thread-611079][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:48:35,320 [DEBUG][       Thread-611079][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:48:35,321 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:48:35,321 [DEBUG][       Thread-611079][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:48:35,322 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:48:35,379 [DEBUG][       Thread-611079][   transport.py][1871] : userauth is OK
2025-07-01 16:48:35,380 [DEBUG][       Thread-611079][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:48:35,380 [DEBUG][       Thread-611079][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:48:35,380 [DEBUG][       Thread-611079][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:48:35,380 [DEBUG][       Thread-611079][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:48:35,399 [ INFO][       Thread-611079][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:48:35,399 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:48:35,400 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:48:36,436 [DEBUG][       Thread-611079][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:48:36,436 [DEBUG][       Thread-611079][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:48:36,487 [DEBUG][       Thread-611079][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:48:36,487 [DEBUG][       Thread-611079][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:48:36,496 [DEBUG][       Thread-611079][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:48:36,506 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:48:36,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-07-01 16:48:36,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-07-01 16:48:36,524 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:48:36,525 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:48:36,525 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:48:36,533 [DEBUG][       Thread-611079][   transport.py][1871] : EOF in transport thread
2025-07-01 16:48:39,099 [DEBUG][Thread-611081 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:48:39,301 [DEBUG][Thread-611082 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:48:46,535 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:48:46,536 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:48:46,536 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:48:46,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-07-01 16:48:47,018 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 48, 18), 10.53, 49.03, 0.0, 28.19, 13.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:48:47,018 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:48:18
2025-07-01 16:48:47,100 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:48:47,105 [DEBUG][       Thread-611083][   transport.py][1871] : starting thread (client mode): 0x82b16c0
2025-07-01 16:48:47,105 [DEBUG][       Thread-611083][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:48:47,124 [DEBUG][       Thread-611083][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:48:47,124 [ INFO][       Thread-611083][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:48:47,128 [DEBUG][       Thread-611083][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:48:47,128 [DEBUG][       Thread-611083][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:48:47,128 [DEBUG][       Thread-611083][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:48:47,128 [DEBUG][       Thread-611083][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:48:47,128 [DEBUG][       Thread-611083][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:48:47,128 [DEBUG][       Thread-611083][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:48:47,128 [DEBUG][       Thread-611083][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:48:47,128 [DEBUG][       Thread-611083][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:48:47,128 [DEBUG][       Thread-611083][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:48:47,128 [DEBUG][       Thread-611083][   transport.py][1871] : client lang: <none>
2025-07-01 16:48:47,128 [DEBUG][       Thread-611083][   transport.py][1871] : server lang: <none>
2025-07-01 16:48:47,128 [DEBUG][       Thread-611083][   transport.py][1871] : kex follows: False
2025-07-01 16:48:47,128 [DEBUG][       Thread-611083][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:48:47,128 [DEBUG][       Thread-611083][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:48:47,128 [DEBUG][       Thread-611083][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:48:47,128 [DEBUG][       Thread-611083][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:48:47,128 [DEBUG][       Thread-611083][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:48:47,128 [DEBUG][       Thread-611083][   transport.py][1871] : Compression: none
2025-07-01 16:48:47,128 [DEBUG][       Thread-611083][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:48:47,145 [DEBUG][       Thread-611083][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:48:47,145 [DEBUG][       Thread-611083][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:48:47,146 [DEBUG][       Thread-611083][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:48:47,146 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:48:47,146 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:48:47,147 [DEBUG][       Thread-611083][   transport.py][1871] : userauth is OK
2025-07-01 16:48:47,172 [ INFO][       Thread-611083][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:48:47,173 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:48:47,789 [DEBUG][       Thread-611083][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:48:47,790 [DEBUG][       Thread-611083][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:48:47,833 [DEBUG][       Thread-611083][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:48:47,833 [DEBUG][       Thread-611083][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:48:47,836 [DEBUG][       Thread-611083][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:48:47,850 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:48:47,850 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:48:47,852 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:48:47,854 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:48:47,860 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:48:47,862 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:48:47,862 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:48:47,863 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:48:47,863 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.616952 -999.00  +13.10  27.71     54   +4.00 1 2 1 1 1   887    0 8.56 -24.73 ----- 22.1 27.7 25.1 33.3 14.2 -20.4 14.0 -20.0 13.8 -19.2 14.2 -19.4
2025-07-01 16:48:47,863 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:48:47,863 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:48:47,863 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.616952
2025-07-01 16:48:47,864 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:48:47,864 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:48:47,864 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:48:47,864 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:48:47,864 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:48:47,865 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:48:18', tmtdew=10.53, humidity=49.03, cloud=0.0, wind=28.19, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:48:24.653', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:48:47,866 [DEBUG][       Thread-611083][   transport.py][1871] : EOF in transport thread
2025-07-01 16:48:47,948 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:48:47,958 [DEBUG][       Thread-611086][   transport.py][1871] : starting thread (client mode): 0x81c84c0
2025-07-01 16:48:47,958 [DEBUG][       Thread-611086][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:48:47,975 [DEBUG][       Thread-611086][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:48:47,976 [ INFO][       Thread-611086][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:48:47,983 [DEBUG][       Thread-611086][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:48:47,983 [DEBUG][       Thread-611086][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:48:47,983 [DEBUG][       Thread-611086][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:48:47,983 [DEBUG][       Thread-611086][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:48:47,983 [DEBUG][       Thread-611086][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:48:47,983 [DEBUG][       Thread-611086][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:48:47,984 [DEBUG][       Thread-611086][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:48:47,984 [DEBUG][       Thread-611086][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:48:47,984 [DEBUG][       Thread-611086][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:48:47,984 [DEBUG][       Thread-611086][   transport.py][1871] : client lang: <none>
2025-07-01 16:48:47,984 [DEBUG][       Thread-611086][   transport.py][1871] : server lang: <none>
2025-07-01 16:48:47,984 [DEBUG][       Thread-611086][   transport.py][1871] : kex follows: False
2025-07-01 16:48:47,984 [DEBUG][       Thread-611086][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:48:47,984 [DEBUG][       Thread-611086][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:48:47,984 [DEBUG][       Thread-611086][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:48:47,984 [DEBUG][       Thread-611086][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:48:47,984 [DEBUG][       Thread-611086][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:48:47,984 [DEBUG][       Thread-611086][   transport.py][1871] : Compression: none
2025-07-01 16:48:47,984 [DEBUG][       Thread-611086][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:48:48,043 [DEBUG][       Thread-611086][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:48:48,044 [DEBUG][       Thread-611086][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:48:48,045 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:48:48,045 [DEBUG][       Thread-611086][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:48:48,046 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:48:48,103 [DEBUG][       Thread-611086][   transport.py][1871] : userauth is OK
2025-07-01 16:48:48,103 [DEBUG][       Thread-611086][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:48:48,103 [DEBUG][       Thread-611086][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:48:48,103 [DEBUG][       Thread-611086][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:48:48,103 [DEBUG][       Thread-611086][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:48:48,120 [DEBUG][Thread-611088 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:48:48,122 [ INFO][       Thread-611086][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:48:48,122 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:48:48,123 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:48:49,192 [DEBUG][       Thread-611086][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:48:49,192 [DEBUG][       Thread-611086][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:48:49,243 [DEBUG][       Thread-611086][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:48:49,243 [DEBUG][       Thread-611086][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:48:49,252 [DEBUG][       Thread-611086][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:48:49,260 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:48:49,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-07-01 16:48:49,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-07-01 16:48:49,276 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:48:49,276 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:48:49,276 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:48:49,285 [DEBUG][       Thread-611086][   transport.py][1871] : EOF in transport thread
2025-07-01 16:48:57,139 [DEBUG][Thread-611089 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:48:59,280 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:48:59,280 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:48:59,280 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:48:59,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-07-01 16:48:59,758 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 48, 49), 10.53, 49.05, 0.0, 23.93, 13.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:48:59,758 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:48:49
2025-07-01 16:48:59,844 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:48:59,849 [DEBUG][       Thread-611090][   transport.py][1871] : starting thread (client mode): 0x82b3670
2025-07-01 16:48:59,849 [DEBUG][       Thread-611090][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:48:59,869 [DEBUG][       Thread-611090][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:48:59,869 [ INFO][       Thread-611090][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:48:59,873 [DEBUG][       Thread-611090][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:48:59,873 [DEBUG][       Thread-611090][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:48:59,873 [DEBUG][       Thread-611090][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:48:59,873 [DEBUG][       Thread-611090][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:48:59,873 [DEBUG][       Thread-611090][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:48:59,873 [DEBUG][       Thread-611090][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:48:59,873 [DEBUG][       Thread-611090][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:48:59,873 [DEBUG][       Thread-611090][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:48:59,873 [DEBUG][       Thread-611090][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:48:59,873 [DEBUG][       Thread-611090][   transport.py][1871] : client lang: <none>
2025-07-01 16:48:59,873 [DEBUG][       Thread-611090][   transport.py][1871] : server lang: <none>
2025-07-01 16:48:59,873 [DEBUG][       Thread-611090][   transport.py][1871] : kex follows: False
2025-07-01 16:48:59,873 [DEBUG][       Thread-611090][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:48:59,873 [DEBUG][       Thread-611090][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:48:59,873 [DEBUG][       Thread-611090][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:48:59,873 [DEBUG][       Thread-611090][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:48:59,873 [DEBUG][       Thread-611090][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:48:59,873 [DEBUG][       Thread-611090][   transport.py][1871] : Compression: none
2025-07-01 16:48:59,873 [DEBUG][       Thread-611090][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:48:59,889 [DEBUG][       Thread-611090][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:48:59,889 [DEBUG][       Thread-611090][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:48:59,890 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:48:59,890 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:48:59,891 [DEBUG][       Thread-611090][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:48:59,891 [DEBUG][       Thread-611090][   transport.py][1871] : userauth is OK
2025-07-01 16:48:59,916 [ INFO][       Thread-611090][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:48:59,916 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:49:00,574 [DEBUG][       Thread-611090][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:49:00,574 [DEBUG][       Thread-611090][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:49:00,617 [DEBUG][       Thread-611090][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:49:00,617 [DEBUG][       Thread-611090][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:49:00,621 [DEBUG][       Thread-611090][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:49:00,634 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:49:00,635 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:49:00,636 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:49:00,638 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:49:00,643 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:49:00,645 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:49:00,645 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:49:00,646 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:49:00,646 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.616952 -999.00  +13.10  27.71     54   +4.00 1 2 1 1 1   887    0 8.56 -24.73 ----- 22.1 27.7 25.1 33.3 14.2 -20.4 14.0 -20.0 13.8 -19.2 14.2 -19.4
2025-07-01 16:49:00,646 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:49:00,646 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:49:00,646 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.616952
2025-07-01 16:49:00,646 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:49:00,647 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:49:00,647 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:49:00,647 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:49:00,647 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:49:00,647 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:48:49', tmtdew=10.53, humidity=49.05, cloud=0.0, wind=23.93, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:48:24.653', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:49:00,648 [DEBUG][       Thread-611090][   transport.py][1871] : EOF in transport thread
2025-07-01 16:49:00,731 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:49:00,742 [DEBUG][       Thread-611093][   transport.py][1871] : starting thread (client mode): 0x75aa650
2025-07-01 16:49:00,742 [DEBUG][       Thread-611093][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:49:00,757 [DEBUG][       Thread-611093][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:49:00,757 [ INFO][       Thread-611093][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:49:00,765 [DEBUG][       Thread-611093][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:49:00,765 [DEBUG][       Thread-611093][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:49:00,765 [DEBUG][       Thread-611093][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:49:00,765 [DEBUG][       Thread-611093][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:49:00,765 [DEBUG][       Thread-611093][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:49:00,765 [DEBUG][       Thread-611093][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:49:00,765 [DEBUG][       Thread-611093][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:49:00,765 [DEBUG][       Thread-611093][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:49:00,765 [DEBUG][       Thread-611093][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:49:00,765 [DEBUG][       Thread-611093][   transport.py][1871] : client lang: <none>
2025-07-01 16:49:00,765 [DEBUG][       Thread-611093][   transport.py][1871] : server lang: <none>
2025-07-01 16:49:00,765 [DEBUG][       Thread-611093][   transport.py][1871] : kex follows: False
2025-07-01 16:49:00,765 [DEBUG][       Thread-611093][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:49:00,766 [DEBUG][       Thread-611093][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:49:00,766 [DEBUG][       Thread-611093][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:49:00,766 [DEBUG][       Thread-611093][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:49:00,766 [DEBUG][       Thread-611093][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:49:00,766 [DEBUG][       Thread-611093][   transport.py][1871] : Compression: none
2025-07-01 16:49:00,766 [DEBUG][       Thread-611093][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:49:00,827 [DEBUG][       Thread-611093][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:49:00,827 [DEBUG][       Thread-611093][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:49:00,828 [DEBUG][       Thread-611093][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:49:00,828 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:49:00,829 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:49:00,882 [DEBUG][       Thread-611093][   transport.py][1871] : userauth is OK
2025-07-01 16:49:00,883 [DEBUG][       Thread-611093][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:49:00,883 [DEBUG][       Thread-611093][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:49:00,883 [DEBUG][       Thread-611093][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:49:00,883 [DEBUG][       Thread-611093][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:49:00,902 [ INFO][       Thread-611093][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:49:00,902 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:49:00,902 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:49:01,967 [DEBUG][       Thread-611093][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:49:01,967 [DEBUG][       Thread-611093][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:49:02,016 [DEBUG][       Thread-611093][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:49:02,016 [DEBUG][       Thread-611093][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:49:02,025 [DEBUG][       Thread-611093][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:49:02,034 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:49:02,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-07-01 16:49:02,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-07-01 16:49:02,051 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:49:02,051 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:49:02,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:49:02,060 [DEBUG][       Thread-611093][   transport.py][1871] : EOF in transport thread
2025-07-01 16:49:06,160 [DEBUG][Thread-611095 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:49:12,062 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:49:12,063 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:49:12,063 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:49:12,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-07-01 16:49:12,546 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 48, 49), 10.53, 49.05, 0.0, 23.93, 13.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:49:12,546 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:48:49
2025-07-01 16:49:12,633 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:49:12,637 [DEBUG][       Thread-611096][   transport.py][1871] : starting thread (client mode): 0x81a6a40
2025-07-01 16:49:12,637 [DEBUG][       Thread-611096][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:49:12,657 [DEBUG][       Thread-611096][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:49:12,657 [ INFO][       Thread-611096][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:49:12,660 [DEBUG][       Thread-611096][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:49:12,660 [DEBUG][       Thread-611096][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:49:12,660 [DEBUG][       Thread-611096][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:49:12,660 [DEBUG][       Thread-611096][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:49:12,660 [DEBUG][       Thread-611096][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:49:12,660 [DEBUG][       Thread-611096][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:49:12,660 [DEBUG][       Thread-611096][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:49:12,660 [DEBUG][       Thread-611096][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:49:12,660 [DEBUG][       Thread-611096][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:49:12,660 [DEBUG][       Thread-611096][   transport.py][1871] : client lang: <none>
2025-07-01 16:49:12,660 [DEBUG][       Thread-611096][   transport.py][1871] : server lang: <none>
2025-07-01 16:49:12,660 [DEBUG][       Thread-611096][   transport.py][1871] : kex follows: False
2025-07-01 16:49:12,660 [DEBUG][       Thread-611096][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:49:12,660 [DEBUG][       Thread-611096][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:49:12,660 [DEBUG][       Thread-611096][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:49:12,661 [DEBUG][       Thread-611096][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:49:12,661 [DEBUG][       Thread-611096][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:49:12,661 [DEBUG][       Thread-611096][   transport.py][1871] : Compression: none
2025-07-01 16:49:12,661 [DEBUG][       Thread-611096][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:49:12,678 [DEBUG][       Thread-611096][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:49:12,678 [DEBUG][       Thread-611096][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:49:12,679 [DEBUG][       Thread-611096][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:49:12,679 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:49:12,679 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:49:12,680 [DEBUG][       Thread-611096][   transport.py][1871] : userauth is OK
2025-07-01 16:49:12,705 [ INFO][       Thread-611096][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:49:12,706 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:49:13,372 [DEBUG][       Thread-611096][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:49:13,372 [DEBUG][       Thread-611096][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:49:13,413 [DEBUG][       Thread-611096][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:49:13,413 [DEBUG][       Thread-611096][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:49:13,417 [DEBUG][       Thread-611096][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:49:13,429 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:49:13,430 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:49:13,432 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:49:13,434 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:49:13,440 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:49:13,442 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:49:13,442 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:49:13,443 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:49:13,443 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.616952 -999.00  +13.10  27.71     54   +4.00 1 2 1 1 1   887    0 8.56 -24.73 ----- 22.1 27.7 25.1 33.3 14.2 -20.4 14.0 -20.0 13.8 -19.2 14.2 -19.4
2025-07-01 16:49:13,443 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:49:13,443 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:49:13,443 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.616952
2025-07-01 16:49:13,444 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:49:13,444 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:49:13,444 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:49:13,444 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:49:13,444 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:49:13,445 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:48:49', tmtdew=10.53, humidity=49.05, cloud=0.0, wind=23.93, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:48:24.653', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:49:13,446 [DEBUG][       Thread-611096][   transport.py][1871] : EOF in transport thread
2025-07-01 16:49:13,528 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:49:13,537 [DEBUG][       Thread-611099][   transport.py][1871] : starting thread (client mode): 0x8157a00
2025-07-01 16:49:13,537 [DEBUG][       Thread-611099][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:49:13,553 [DEBUG][       Thread-611099][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:49:13,553 [ INFO][       Thread-611099][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:49:13,567 [DEBUG][       Thread-611099][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:49:13,568 [DEBUG][       Thread-611099][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:49:13,568 [DEBUG][       Thread-611099][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:49:13,568 [DEBUG][       Thread-611099][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:49:13,568 [DEBUG][       Thread-611099][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:49:13,568 [DEBUG][       Thread-611099][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:49:13,568 [DEBUG][       Thread-611099][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:49:13,568 [DEBUG][       Thread-611099][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:49:13,568 [DEBUG][       Thread-611099][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:49:13,568 [DEBUG][       Thread-611099][   transport.py][1871] : client lang: <none>
2025-07-01 16:49:13,568 [DEBUG][       Thread-611099][   transport.py][1871] : server lang: <none>
2025-07-01 16:49:13,568 [DEBUG][       Thread-611099][   transport.py][1871] : kex follows: False
2025-07-01 16:49:13,568 [DEBUG][       Thread-611099][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:49:13,568 [DEBUG][       Thread-611099][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:49:13,569 [DEBUG][       Thread-611099][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:49:13,569 [DEBUG][       Thread-611099][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:49:13,569 [DEBUG][       Thread-611099][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:49:13,569 [DEBUG][       Thread-611099][   transport.py][1871] : Compression: none
2025-07-01 16:49:13,569 [DEBUG][       Thread-611099][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:49:13,628 [DEBUG][       Thread-611099][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:49:13,628 [DEBUG][       Thread-611099][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:49:13,629 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:49:13,630 [DEBUG][       Thread-611099][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:49:13,630 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:49:13,685 [DEBUG][       Thread-611099][   transport.py][1871] : userauth is OK
2025-07-01 16:49:13,686 [DEBUG][       Thread-611099][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:49:13,686 [DEBUG][       Thread-611099][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:49:13,686 [DEBUG][       Thread-611099][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:49:13,686 [DEBUG][       Thread-611099][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:49:13,705 [ INFO][       Thread-611099][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:49:13,705 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:49:13,705 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:49:14,736 [DEBUG][       Thread-611099][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:49:14,737 [DEBUG][       Thread-611099][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:49:14,787 [DEBUG][       Thread-611099][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:49:14,787 [DEBUG][       Thread-611099][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:49:14,796 [DEBUG][       Thread-611099][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:49:14,805 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:49:14,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-07-01 16:49:14,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-07-01 16:49:14,822 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:49:14,822 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:49:14,823 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:49:14,830 [DEBUG][       Thread-611099][   transport.py][1871] : EOF in transport thread
2025-07-01 16:49:15,203 [DEBUG][Thread-611101 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:49:24,228 [DEBUG][Thread-611102 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:49:24,833 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:49:24,833 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:49:24,833 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:49:24,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-07-01 16:49:25,313 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 49, 22), 10.51, 49.02, 0.0, 29.02, 13.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:49:25,313 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:49:22
2025-07-01 16:49:25,399 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:49:25,406 [DEBUG][       Thread-611103][   transport.py][1871] : starting thread (client mode): 0x82b2920
2025-07-01 16:49:25,406 [DEBUG][       Thread-611103][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:49:25,427 [DEBUG][       Thread-611103][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:49:25,427 [ INFO][       Thread-611103][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:49:25,430 [DEBUG][       Thread-611103][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:49:25,430 [DEBUG][       Thread-611103][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:49:25,430 [DEBUG][       Thread-611103][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:49:25,430 [DEBUG][       Thread-611103][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:49:25,430 [DEBUG][       Thread-611103][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:49:25,430 [DEBUG][       Thread-611103][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:49:25,430 [DEBUG][       Thread-611103][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:49:25,430 [DEBUG][       Thread-611103][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:49:25,430 [DEBUG][       Thread-611103][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:49:25,431 [DEBUG][       Thread-611103][   transport.py][1871] : client lang: <none>
2025-07-01 16:49:25,431 [DEBUG][       Thread-611103][   transport.py][1871] : server lang: <none>
2025-07-01 16:49:25,431 [DEBUG][       Thread-611103][   transport.py][1871] : kex follows: False
2025-07-01 16:49:25,431 [DEBUG][       Thread-611103][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:49:25,431 [DEBUG][       Thread-611103][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:49:25,431 [DEBUG][       Thread-611103][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:49:25,431 [DEBUG][       Thread-611103][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:49:25,431 [DEBUG][       Thread-611103][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:49:25,431 [DEBUG][       Thread-611103][   transport.py][1871] : Compression: none
2025-07-01 16:49:25,431 [DEBUG][       Thread-611103][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:49:25,447 [DEBUG][       Thread-611103][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:49:25,447 [DEBUG][       Thread-611103][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:49:25,448 [DEBUG][       Thread-611103][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:49:25,448 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:49:25,448 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:49:25,449 [DEBUG][       Thread-611103][   transport.py][1871] : userauth is OK
2025-07-01 16:49:25,462 [ INFO][       Thread-611103][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:49:25,463 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:49:26,104 [DEBUG][       Thread-611103][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:49:26,105 [DEBUG][       Thread-611103][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:49:26,149 [DEBUG][       Thread-611103][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:49:26,149 [DEBUG][       Thread-611103][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:49:26,152 [DEBUG][       Thread-611103][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:49:26,166 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:49:26,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:49:26,168 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:49:26,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:49:26,176 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:49:26,178 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:49:26,178 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:49:26,178 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:49:26,179 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.617299 -999.00  +13.10  25.69     54   +4.00 1 2 1 1 1   887    0 8.74 -24.57 ----- 33.2 25.7 23.8 40.7 14.2 -20.3 14.0 -19.7 13.8 -19.2 14.2 -19.3
2025-07-01 16:49:26,179 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:49:26,179 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:49:26,179 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.617299
2025-07-01 16:49:26,179 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:49:26,180 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:49:26,180 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:49:26,180 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:49:26,180 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:49:26,180 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:49:22', tmtdew=10.51, humidity=49.02, cloud=0.0, wind=29.02, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:48:54.634', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:49:26,181 [DEBUG][       Thread-611103][   transport.py][1871] : EOF in transport thread
2025-07-01 16:49:26,263 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:49:26,275 [DEBUG][       Thread-611106][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 16:49:26,276 [DEBUG][       Thread-611106][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:49:26,290 [DEBUG][       Thread-611106][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:49:26,291 [ INFO][       Thread-611106][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:49:26,298 [DEBUG][       Thread-611106][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:49:26,298 [DEBUG][       Thread-611106][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:49:26,298 [DEBUG][       Thread-611106][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:49:26,298 [DEBUG][       Thread-611106][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:49:26,298 [DEBUG][       Thread-611106][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:49:26,298 [DEBUG][       Thread-611106][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:49:26,298 [DEBUG][       Thread-611106][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:49:26,298 [DEBUG][       Thread-611106][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:49:26,298 [DEBUG][       Thread-611106][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:49:26,298 [DEBUG][       Thread-611106][   transport.py][1871] : client lang: <none>
2025-07-01 16:49:26,298 [DEBUG][       Thread-611106][   transport.py][1871] : server lang: <none>
2025-07-01 16:49:26,299 [DEBUG][       Thread-611106][   transport.py][1871] : kex follows: False
2025-07-01 16:49:26,299 [DEBUG][       Thread-611106][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:49:26,299 [DEBUG][       Thread-611106][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:49:26,299 [DEBUG][       Thread-611106][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:49:26,299 [DEBUG][       Thread-611106][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:49:26,299 [DEBUG][       Thread-611106][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:49:26,299 [DEBUG][       Thread-611106][   transport.py][1871] : Compression: none
2025-07-01 16:49:26,299 [DEBUG][       Thread-611106][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:49:26,357 [DEBUG][       Thread-611106][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:49:26,358 [DEBUG][       Thread-611106][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:49:26,358 [DEBUG][       Thread-611106][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:49:26,359 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:49:26,359 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:49:26,413 [DEBUG][       Thread-611106][   transport.py][1871] : userauth is OK
2025-07-01 16:49:26,413 [DEBUG][       Thread-611106][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:49:26,413 [DEBUG][       Thread-611106][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:49:26,414 [DEBUG][       Thread-611106][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:49:26,414 [DEBUG][       Thread-611106][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:49:26,432 [ INFO][       Thread-611106][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:49:26,432 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:49:26,433 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:49:27,493 [DEBUG][       Thread-611106][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:49:27,493 [DEBUG][       Thread-611106][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:49:27,552 [DEBUG][       Thread-611106][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:49:27,552 [DEBUG][       Thread-611106][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:49:27,561 [DEBUG][       Thread-611106][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:49:27,570 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:49:27,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-07-01 16:49:27,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-07-01 16:49:27,589 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:49:27,590 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:49:27,590 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:49:27,598 [DEBUG][       Thread-611106][   transport.py][1871] : EOF in transport thread
2025-07-01 16:49:33,246 [DEBUG][Thread-611108 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:49:37,599 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:49:37,600 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:49:37,600 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:49:37,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-07-01 16:49:38,079 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 49, 22), 10.51, 49.02, 0.0, 29.02, 13.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:49:38,079 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:49:22
2025-07-01 16:49:38,166 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:49:38,169 [DEBUG][       Thread-611109][   transport.py][1871] : starting thread (client mode): 0x82b1b40
2025-07-01 16:49:38,169 [DEBUG][       Thread-611109][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:49:38,189 [DEBUG][       Thread-611109][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:49:38,189 [ INFO][       Thread-611109][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:49:38,193 [DEBUG][       Thread-611109][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:49:38,193 [DEBUG][       Thread-611109][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:49:38,193 [DEBUG][       Thread-611109][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:49:38,193 [DEBUG][       Thread-611109][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:49:38,193 [DEBUG][       Thread-611109][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:49:38,193 [DEBUG][       Thread-611109][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:49:38,193 [DEBUG][       Thread-611109][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:49:38,193 [DEBUG][       Thread-611109][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:49:38,193 [DEBUG][       Thread-611109][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:49:38,193 [DEBUG][       Thread-611109][   transport.py][1871] : client lang: <none>
2025-07-01 16:49:38,193 [DEBUG][       Thread-611109][   transport.py][1871] : server lang: <none>
2025-07-01 16:49:38,193 [DEBUG][       Thread-611109][   transport.py][1871] : kex follows: False
2025-07-01 16:49:38,193 [DEBUG][       Thread-611109][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:49:38,193 [DEBUG][       Thread-611109][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:49:38,193 [DEBUG][       Thread-611109][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:49:38,193 [DEBUG][       Thread-611109][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:49:38,193 [DEBUG][       Thread-611109][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:49:38,193 [DEBUG][       Thread-611109][   transport.py][1871] : Compression: none
2025-07-01 16:49:38,193 [DEBUG][       Thread-611109][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:49:38,209 [DEBUG][       Thread-611109][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:49:38,209 [DEBUG][       Thread-611109][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:49:38,210 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:49:38,210 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:49:38,210 [DEBUG][       Thread-611109][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:49:38,211 [DEBUG][       Thread-611109][   transport.py][1871] : userauth is OK
2025-07-01 16:49:38,224 [ INFO][       Thread-611109][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:49:38,224 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:49:38,853 [DEBUG][       Thread-611109][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:49:38,854 [DEBUG][       Thread-611109][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:49:38,897 [DEBUG][       Thread-611109][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:49:38,897 [DEBUG][       Thread-611109][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:49:38,900 [DEBUG][       Thread-611109][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:49:38,912 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:49:38,912 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:49:38,914 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:49:38,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:49:38,922 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:49:38,924 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:49:38,925 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:49:38,925 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:49:38,925 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.617299 -999.00  +13.10  25.69     54   +4.00 1 2 1 1 1   887    0 8.74 -24.57 ----- 33.2 25.7 23.8 40.7 14.2 -20.3 14.0 -19.7 13.8 -19.2 14.2 -19.3
2025-07-01 16:49:38,925 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:49:38,925 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:49:38,926 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.617299
2025-07-01 16:49:38,926 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:49:38,926 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:49:38,927 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:49:38,927 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:49:38,927 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:49:38,927 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:49:22', tmtdew=10.51, humidity=49.02, cloud=0.0, wind=29.02, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:48:54.634', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:49:38,928 [DEBUG][       Thread-611109][   transport.py][1871] : EOF in transport thread
2025-07-01 16:49:39,012 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:49:39,022 [DEBUG][       Thread-611112][   transport.py][1871] : starting thread (client mode): 0x8170ca0
2025-07-01 16:49:39,022 [DEBUG][       Thread-611112][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:49:39,038 [DEBUG][       Thread-611112][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:49:39,038 [ INFO][       Thread-611112][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:49:39,050 [DEBUG][       Thread-611112][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:49:39,050 [DEBUG][       Thread-611112][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:49:39,050 [DEBUG][       Thread-611112][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:49:39,050 [DEBUG][       Thread-611112][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:49:39,050 [DEBUG][       Thread-611112][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:49:39,050 [DEBUG][       Thread-611112][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:49:39,050 [DEBUG][       Thread-611112][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:49:39,050 [DEBUG][       Thread-611112][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:49:39,050 [DEBUG][       Thread-611112][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:49:39,050 [DEBUG][       Thread-611112][   transport.py][1871] : client lang: <none>
2025-07-01 16:49:39,050 [DEBUG][       Thread-611112][   transport.py][1871] : server lang: <none>
2025-07-01 16:49:39,050 [DEBUG][       Thread-611112][   transport.py][1871] : kex follows: False
2025-07-01 16:49:39,050 [DEBUG][       Thread-611112][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:49:39,050 [DEBUG][       Thread-611112][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:49:39,050 [DEBUG][       Thread-611112][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:49:39,050 [DEBUG][       Thread-611112][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:49:39,050 [DEBUG][       Thread-611112][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:49:39,050 [DEBUG][       Thread-611112][   transport.py][1871] : Compression: none
2025-07-01 16:49:39,050 [DEBUG][       Thread-611112][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:49:39,104 [DEBUG][       Thread-611112][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:49:39,104 [DEBUG][       Thread-611112][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:49:39,105 [DEBUG][       Thread-611112][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:49:39,105 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:49:39,106 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:49:39,160 [DEBUG][       Thread-611112][   transport.py][1871] : userauth is OK
2025-07-01 16:49:39,160 [DEBUG][       Thread-611112][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:49:39,161 [DEBUG][       Thread-611112][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:49:39,161 [DEBUG][       Thread-611112][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:49:39,161 [DEBUG][       Thread-611112][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:49:39,179 [ INFO][       Thread-611112][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:49:39,180 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:49:39,180 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:49:39,330 [DEBUG][Thread-611114 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:49:40,196 [DEBUG][       Thread-611112][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:49:40,197 [DEBUG][       Thread-611112][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:49:40,248 [DEBUG][       Thread-611112][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:49:40,248 [DEBUG][       Thread-611112][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:49:40,258 [DEBUG][       Thread-611112][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:49:40,267 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:49:40,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-07-01 16:49:40,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-07-01 16:49:40,285 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:49:40,286 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:49:40,286 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:49:40,296 [DEBUG][       Thread-611112][   transport.py][1871] : EOF in transport thread
2025-07-01 16:49:42,270 [DEBUG][Thread-611115 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:49:50,296 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:49:50,296 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:49:50,296 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:49:50,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-07-01 16:49:50,770 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 49, 22), 10.51, 49.02, 0.0, 29.02, 13.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:49:50,770 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:49:22
2025-07-01 16:49:50,856 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:49:50,862 [DEBUG][       Thread-611116][   transport.py][1871] : starting thread (client mode): 0x82b3f40
2025-07-01 16:49:50,862 [DEBUG][       Thread-611116][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:49:50,882 [DEBUG][       Thread-611116][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:49:50,882 [ INFO][       Thread-611116][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:49:50,884 [DEBUG][       Thread-611116][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:49:50,884 [DEBUG][       Thread-611116][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:49:50,884 [DEBUG][       Thread-611116][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:49:50,884 [DEBUG][       Thread-611116][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:49:50,884 [DEBUG][       Thread-611116][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:49:50,884 [DEBUG][       Thread-611116][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:49:50,884 [DEBUG][       Thread-611116][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:49:50,884 [DEBUG][       Thread-611116][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:49:50,884 [DEBUG][       Thread-611116][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:49:50,884 [DEBUG][       Thread-611116][   transport.py][1871] : client lang: <none>
2025-07-01 16:49:50,884 [DEBUG][       Thread-611116][   transport.py][1871] : server lang: <none>
2025-07-01 16:49:50,884 [DEBUG][       Thread-611116][   transport.py][1871] : kex follows: False
2025-07-01 16:49:50,884 [DEBUG][       Thread-611116][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:49:50,884 [DEBUG][       Thread-611116][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:49:50,884 [DEBUG][       Thread-611116][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:49:50,884 [DEBUG][       Thread-611116][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:49:50,884 [DEBUG][       Thread-611116][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:49:50,884 [DEBUG][       Thread-611116][   transport.py][1871] : Compression: none
2025-07-01 16:49:50,884 [DEBUG][       Thread-611116][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:49:50,894 [DEBUG][       Thread-611116][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:49:50,894 [DEBUG][       Thread-611116][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:49:50,895 [DEBUG][       Thread-611116][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:49:50,895 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:49:50,895 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:49:50,896 [DEBUG][       Thread-611116][   transport.py][1871] : userauth is OK
2025-07-01 16:49:50,909 [ INFO][       Thread-611116][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:49:50,909 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:49:51,294 [DEBUG][Thread-611118 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:49:51,494 [DEBUG][       Thread-611116][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:49:51,494 [DEBUG][       Thread-611116][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:49:51,536 [DEBUG][       Thread-611116][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:49:51,537 [DEBUG][       Thread-611116][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:49:51,539 [DEBUG][       Thread-611116][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:49:51,549 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:49:51,550 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:49:51,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:49:51,553 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:49:51,559 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:49:51,561 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:49:51,561 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:49:51,561 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:49:51,562 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.617704 -999.00  +13.10  28.70     54   +4.00 1 2 1 1 1   887    0 8.59 -24.81 ----- 23.7 28.7 30.4 39.3 14.2 -20.4 14.0 -19.9 13.9 -19.2 14.2 -19.3
2025-07-01 16:49:51,562 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:49:51,562 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:49:51,562 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.617704
2025-07-01 16:49:51,562 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:49:51,563 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:49:51,563 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:49:51,563 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:49:51,563 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:49:51,563 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:49:22', tmtdew=10.51, humidity=49.02, cloud=0.0, wind=29.02, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:49:29.626', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:49:51,563 [DEBUG][       Thread-611116][   transport.py][1871] : EOF in transport thread
2025-07-01 16:49:51,646 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:49:51,658 [DEBUG][       Thread-611120][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 16:49:51,658 [DEBUG][       Thread-611120][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:49:51,674 [DEBUG][       Thread-611120][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:49:51,674 [ INFO][       Thread-611120][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:49:51,681 [DEBUG][       Thread-611120][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:49:51,682 [DEBUG][       Thread-611120][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:49:51,682 [DEBUG][       Thread-611120][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:49:51,682 [DEBUG][       Thread-611120][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:49:51,682 [DEBUG][       Thread-611120][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:49:51,682 [DEBUG][       Thread-611120][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:49:51,682 [DEBUG][       Thread-611120][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:49:51,682 [DEBUG][       Thread-611120][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:49:51,682 [DEBUG][       Thread-611120][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:49:51,682 [DEBUG][       Thread-611120][   transport.py][1871] : client lang: <none>
2025-07-01 16:49:51,682 [DEBUG][       Thread-611120][   transport.py][1871] : server lang: <none>
2025-07-01 16:49:51,682 [DEBUG][       Thread-611120][   transport.py][1871] : kex follows: False
2025-07-01 16:49:51,682 [DEBUG][       Thread-611120][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:49:51,682 [DEBUG][       Thread-611120][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:49:51,682 [DEBUG][       Thread-611120][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:49:51,682 [DEBUG][       Thread-611120][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:49:51,682 [DEBUG][       Thread-611120][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:49:51,682 [DEBUG][       Thread-611120][   transport.py][1871] : Compression: none
2025-07-01 16:49:51,683 [DEBUG][       Thread-611120][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:49:51,740 [DEBUG][       Thread-611120][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:49:51,741 [DEBUG][       Thread-611120][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:49:51,741 [DEBUG][       Thread-611120][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:49:51,741 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:49:51,742 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:49:51,799 [DEBUG][       Thread-611120][   transport.py][1871] : userauth is OK
2025-07-01 16:49:51,800 [DEBUG][       Thread-611120][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:49:51,800 [DEBUG][       Thread-611120][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:49:51,800 [DEBUG][       Thread-611120][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:49:51,800 [DEBUG][       Thread-611120][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:49:51,819 [ INFO][       Thread-611120][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:49:51,819 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:49:51,820 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:49:52,818 [DEBUG][       Thread-611120][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:49:52,819 [DEBUG][       Thread-611120][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:49:52,867 [DEBUG][       Thread-611120][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:49:52,867 [DEBUG][       Thread-611120][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:49:52,876 [DEBUG][       Thread-611120][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:49:52,884 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:49:52,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-07-01 16:49:52,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-07-01 16:49:52,901 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:49:52,901 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:49:52,902 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:49:52,910 [DEBUG][       Thread-611120][   transport.py][1871] : EOF in transport thread
2025-07-01 16:50:00,315 [DEBUG][Thread-611122 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:50:02,912 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:50:02,912 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:50:02,913 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:50:02,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-07-01 16:50:03,387 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 49, 53), 10.5, 49.04, 0.0, 31.62, 13.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:50:03,387 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:49:53
2025-07-01 16:50:03,473 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:50:03,477 [DEBUG][       Thread-611123][   transport.py][1871] : starting thread (client mode): 0x82b3460
2025-07-01 16:50:03,477 [DEBUG][       Thread-611123][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:50:03,495 [DEBUG][       Thread-611123][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:50:03,495 [ INFO][       Thread-611123][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:50:03,498 [DEBUG][       Thread-611123][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:50:03,498 [DEBUG][       Thread-611123][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:50:03,498 [DEBUG][       Thread-611123][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:50:03,498 [DEBUG][       Thread-611123][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:50:03,498 [DEBUG][       Thread-611123][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:50:03,498 [DEBUG][       Thread-611123][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:50:03,498 [DEBUG][       Thread-611123][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:50:03,498 [DEBUG][       Thread-611123][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:50:03,498 [DEBUG][       Thread-611123][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:50:03,498 [DEBUG][       Thread-611123][   transport.py][1871] : client lang: <none>
2025-07-01 16:50:03,498 [DEBUG][       Thread-611123][   transport.py][1871] : server lang: <none>
2025-07-01 16:50:03,498 [DEBUG][       Thread-611123][   transport.py][1871] : kex follows: False
2025-07-01 16:50:03,498 [DEBUG][       Thread-611123][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:50:03,499 [DEBUG][       Thread-611123][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:50:03,499 [DEBUG][       Thread-611123][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:50:03,499 [DEBUG][       Thread-611123][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:50:03,499 [DEBUG][       Thread-611123][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:50:03,499 [DEBUG][       Thread-611123][   transport.py][1871] : Compression: none
2025-07-01 16:50:03,499 [DEBUG][       Thread-611123][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:50:03,514 [DEBUG][       Thread-611123][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:50:03,515 [DEBUG][       Thread-611123][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:50:03,515 [DEBUG][       Thread-611123][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:50:03,515 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:50:03,516 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:50:03,516 [DEBUG][       Thread-611123][   transport.py][1871] : userauth is OK
2025-07-01 16:50:03,530 [ INFO][       Thread-611123][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:50:03,530 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:50:04,211 [DEBUG][       Thread-611123][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:50:04,211 [DEBUG][       Thread-611123][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:50:04,253 [DEBUG][       Thread-611123][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:50:04,253 [DEBUG][       Thread-611123][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:50:04,256 [DEBUG][       Thread-611123][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:50:04,268 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:50:04,268 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:50:04,270 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:50:04,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:50:04,278 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:50:04,280 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:50:04,280 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:50:04,281 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:50:04,281 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.617704 -999.00  +13.10  28.70     54   +4.00 1 2 1 1 1   887    0 8.59 -24.81 ----- 23.7 28.7 30.4 39.3 14.2 -20.4 14.0 -19.9 13.9 -19.2 14.2 -19.3
2025-07-01 16:50:04,281 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:50:04,281 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:50:04,281 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.617704
2025-07-01 16:50:04,281 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:50:04,282 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:50:04,282 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:50:04,282 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:50:04,282 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:50:04,282 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:49:53', tmtdew=10.5, humidity=49.04, cloud=0.0, wind=31.62, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:49:29.626', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:50:04,283 [DEBUG][       Thread-611123][   transport.py][1871] : EOF in transport thread
2025-07-01 16:50:04,366 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:50:04,380 [DEBUG][       Thread-611126][   transport.py][1871] : starting thread (client mode): 0x81c8910
2025-07-01 16:50:04,380 [DEBUG][       Thread-611126][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:50:04,402 [DEBUG][       Thread-611126][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:50:04,402 [ INFO][       Thread-611126][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:50:04,413 [DEBUG][       Thread-611126][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:50:04,413 [DEBUG][       Thread-611126][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:50:04,413 [DEBUG][       Thread-611126][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:50:04,413 [DEBUG][       Thread-611126][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:50:04,413 [DEBUG][       Thread-611126][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:50:04,413 [DEBUG][       Thread-611126][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:50:04,413 [DEBUG][       Thread-611126][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:50:04,414 [DEBUG][       Thread-611126][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:50:04,414 [DEBUG][       Thread-611126][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:50:04,414 [DEBUG][       Thread-611126][   transport.py][1871] : client lang: <none>
2025-07-01 16:50:04,414 [DEBUG][       Thread-611126][   transport.py][1871] : server lang: <none>
2025-07-01 16:50:04,414 [DEBUG][       Thread-611126][   transport.py][1871] : kex follows: False
2025-07-01 16:50:04,414 [DEBUG][       Thread-611126][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:50:04,414 [DEBUG][       Thread-611126][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:50:04,414 [DEBUG][       Thread-611126][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:50:04,414 [DEBUG][       Thread-611126][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:50:04,414 [DEBUG][       Thread-611126][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:50:04,414 [DEBUG][       Thread-611126][   transport.py][1871] : Compression: none
2025-07-01 16:50:04,414 [DEBUG][       Thread-611126][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:50:04,475 [DEBUG][       Thread-611126][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:50:04,476 [DEBUG][       Thread-611126][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:50:04,476 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:50:04,477 [DEBUG][       Thread-611126][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:50:04,478 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:50:04,531 [DEBUG][       Thread-611126][   transport.py][1871] : userauth is OK
2025-07-01 16:50:04,532 [DEBUG][       Thread-611126][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:50:04,532 [DEBUG][       Thread-611126][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:50:04,532 [DEBUG][       Thread-611126][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:50:04,532 [DEBUG][       Thread-611126][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:50:04,551 [ INFO][       Thread-611126][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:50:04,551 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:50:04,552 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:50:05,589 [DEBUG][       Thread-611126][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:50:05,590 [DEBUG][       Thread-611126][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:50:05,640 [DEBUG][       Thread-611126][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:50:05,640 [DEBUG][       Thread-611126][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:50:05,650 [DEBUG][       Thread-611126][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:50:05,664 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:50: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-07-01 16:50:05,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-07-01 16:50:05,682 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:50:05,683 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:50:05,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:50:05,691 [DEBUG][       Thread-611126][   transport.py][1871] : EOF in transport thread
2025-07-01 16:50:09,337 [DEBUG][Thread-611128 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:50:15,693 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:50:15,694 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:50:15,694 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:50:15,697 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:50:16,169 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 49, 53), 10.5, 49.04, 0.0, 31.62, 13.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:50:16,170 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:49:53
2025-07-01 16:50:16,257 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:50:16,263 [DEBUG][       Thread-611129][   transport.py][1871] : starting thread (client mode): 0x81e6170
2025-07-01 16:50:16,263 [DEBUG][       Thread-611129][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:50:16,275 [DEBUG][       Thread-611129][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:50:16,276 [ INFO][       Thread-611129][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:50:16,279 [DEBUG][       Thread-611129][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:50:16,279 [DEBUG][       Thread-611129][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:50:16,279 [DEBUG][       Thread-611129][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:50:16,279 [DEBUG][       Thread-611129][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:50:16,279 [DEBUG][       Thread-611129][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:50:16,279 [DEBUG][       Thread-611129][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:50:16,279 [DEBUG][       Thread-611129][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:50:16,279 [DEBUG][       Thread-611129][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:50:16,279 [DEBUG][       Thread-611129][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:50:16,279 [DEBUG][       Thread-611129][   transport.py][1871] : client lang: <none>
2025-07-01 16:50:16,279 [DEBUG][       Thread-611129][   transport.py][1871] : server lang: <none>
2025-07-01 16:50:16,279 [DEBUG][       Thread-611129][   transport.py][1871] : kex follows: False
2025-07-01 16:50:16,279 [DEBUG][       Thread-611129][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:50:16,279 [DEBUG][       Thread-611129][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:50:16,279 [DEBUG][       Thread-611129][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:50:16,279 [DEBUG][       Thread-611129][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:50:16,279 [DEBUG][       Thread-611129][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:50:16,279 [DEBUG][       Thread-611129][   transport.py][1871] : Compression: none
2025-07-01 16:50:16,279 [DEBUG][       Thread-611129][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:50:16,293 [DEBUG][       Thread-611129][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:50:16,293 [DEBUG][       Thread-611129][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:50:16,293 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:50:16,293 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:50:16,293 [DEBUG][       Thread-611129][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:50:16,294 [DEBUG][       Thread-611129][   transport.py][1871] : userauth is OK
2025-07-01 16:50:16,318 [ INFO][       Thread-611129][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:50:16,318 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:50:16,972 [DEBUG][       Thread-611129][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:50:16,972 [DEBUG][       Thread-611129][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:50:17,016 [DEBUG][       Thread-611129][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:50:17,017 [DEBUG][       Thread-611129][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:50:17,019 [DEBUG][       Thread-611129][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:50:17,032 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:50:17,032 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:50:17,034 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:50:17,035 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:50:17,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:50:17,042 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:50:17,042 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:50:17,043 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:50:17,043 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.617704 -999.00  +13.10  28.70     54   +4.00 1 2 1 1 1   887    0 8.59 -24.81 ----- 23.7 28.7 30.4 39.3 14.2 -20.4 14.0 -19.9 13.9 -19.2 14.2 -19.3
2025-07-01 16:50:17,043 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:50:17,043 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:50:17,043 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.617704
2025-07-01 16:50:17,043 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:50:17,044 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:50:17,044 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:50:17,044 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:50:17,044 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:50:17,044 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:49:53', tmtdew=10.5, humidity=49.04, cloud=0.0, wind=31.62, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:49:29.626', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:50:17,045 [DEBUG][       Thread-611129][   transport.py][1871] : EOF in transport thread
2025-07-01 16:50:17,129 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:50:17,140 [DEBUG][       Thread-611132][   transport.py][1871] : starting thread (client mode): 0x81d82b0
2025-07-01 16:50:17,140 [DEBUG][       Thread-611132][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:50:17,155 [DEBUG][       Thread-611132][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:50:17,155 [ INFO][       Thread-611132][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:50:17,165 [DEBUG][       Thread-611132][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:50:17,166 [DEBUG][       Thread-611132][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:50:17,166 [DEBUG][       Thread-611132][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:50:17,166 [DEBUG][       Thread-611132][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:50:17,166 [DEBUG][       Thread-611132][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:50:17,166 [DEBUG][       Thread-611132][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:50:17,166 [DEBUG][       Thread-611132][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:50:17,166 [DEBUG][       Thread-611132][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:50:17,166 [DEBUG][       Thread-611132][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:50:17,166 [DEBUG][       Thread-611132][   transport.py][1871] : client lang: <none>
2025-07-01 16:50:17,166 [DEBUG][       Thread-611132][   transport.py][1871] : server lang: <none>
2025-07-01 16:50:17,166 [DEBUG][       Thread-611132][   transport.py][1871] : kex follows: False
2025-07-01 16:50:17,166 [DEBUG][       Thread-611132][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:50:17,166 [DEBUG][       Thread-611132][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:50:17,166 [DEBUG][       Thread-611132][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:50:17,166 [DEBUG][       Thread-611132][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:50:17,166 [DEBUG][       Thread-611132][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:50:17,166 [DEBUG][       Thread-611132][   transport.py][1871] : Compression: none
2025-07-01 16:50:17,166 [DEBUG][       Thread-611132][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:50:17,225 [DEBUG][       Thread-611132][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:50:17,225 [DEBUG][       Thread-611132][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:50:17,226 [DEBUG][       Thread-611132][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:50:17,226 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:50:17,227 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:50:17,286 [DEBUG][       Thread-611132][   transport.py][1871] : userauth is OK
2025-07-01 16:50:17,286 [DEBUG][       Thread-611132][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:50:17,286 [DEBUG][       Thread-611132][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:50:17,286 [DEBUG][       Thread-611132][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:50:17,286 [DEBUG][       Thread-611132][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:50:17,310 [ INFO][       Thread-611132][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:50:17,310 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:50:17,311 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:50:18,306 [DEBUG][       Thread-611132][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:50:18,306 [DEBUG][       Thread-611132][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:50:18,356 [DEBUG][       Thread-611132][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:50:18,356 [DEBUG][       Thread-611132][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:50:18,365 [DEBUG][       Thread-611132][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:50:18,374 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:50:18,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-07-01 16:50:18,376 [DEBUG][Thread-611134 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:50:18,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-07-01 16:50:18,391 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:50:18,391 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:50:18,392 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:50:18,399 [DEBUG][       Thread-611132][   transport.py][1871] : EOF in transport thread
2025-07-01 16:50:27,395 [DEBUG][Thread-611135 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:50:28,396 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:50:28,397 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:50:28,397 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:50:28,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-07-01 16:50:28,871 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 50, 25), 10.54, 48.91, 0.0, 30.63, 13.3, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:50:28,871 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:50:25
2025-07-01 16:50:28,953 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:50:28,957 [DEBUG][       Thread-611136][   transport.py][1871] : starting thread (client mode): 0x82b2320
2025-07-01 16:50:28,958 [DEBUG][       Thread-611136][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:50:28,978 [DEBUG][       Thread-611136][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:50:28,978 [ INFO][       Thread-611136][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:50:28,981 [DEBUG][       Thread-611136][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:50:28,981 [DEBUG][       Thread-611136][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:50:28,981 [DEBUG][       Thread-611136][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:50:28,981 [DEBUG][       Thread-611136][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:50:28,981 [DEBUG][       Thread-611136][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:50:28,981 [DEBUG][       Thread-611136][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:50:28,981 [DEBUG][       Thread-611136][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:50:28,981 [DEBUG][       Thread-611136][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:50:28,981 [DEBUG][       Thread-611136][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:50:28,981 [DEBUG][       Thread-611136][   transport.py][1871] : client lang: <none>
2025-07-01 16:50:28,981 [DEBUG][       Thread-611136][   transport.py][1871] : server lang: <none>
2025-07-01 16:50:28,982 [DEBUG][       Thread-611136][   transport.py][1871] : kex follows: False
2025-07-01 16:50:28,982 [DEBUG][       Thread-611136][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:50:28,982 [DEBUG][       Thread-611136][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:50:28,982 [DEBUG][       Thread-611136][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:50:28,982 [DEBUG][       Thread-611136][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:50:28,982 [DEBUG][       Thread-611136][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:50:28,982 [DEBUG][       Thread-611136][   transport.py][1871] : Compression: none
2025-07-01 16:50:28,982 [DEBUG][       Thread-611136][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:50:28,998 [DEBUG][       Thread-611136][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:50:28,999 [DEBUG][       Thread-611136][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:50:28,999 [DEBUG][       Thread-611136][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:50:28,999 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:50:28,999 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:50:29,000 [DEBUG][       Thread-611136][   transport.py][1871] : userauth is OK
2025-07-01 16:50:29,013 [ INFO][       Thread-611136][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:50:29,014 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:50:29,581 [DEBUG][       Thread-611136][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:50:29,581 [DEBUG][       Thread-611136][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:50:29,625 [DEBUG][       Thread-611136][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:50:29,625 [DEBUG][       Thread-611136][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:50:29,628 [DEBUG][       Thread-611136][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:50:29,642 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:50:29,643 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:50:29,644 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:50:29,646 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:50:29,651 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:50:29,653 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:50:29,654 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:50:29,654 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:50:29,654 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.617994 -999.00  +13.10  33.54     54   +4.00 1 2 2 1 1   887    0 8.67 -24.17 ----- 26.3 33.5 17.6 38.0 14.2 -20.1 13.9 -19.9 13.8 -19.1 14.2 -19.0
2025-07-01 16:50:29,654 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:50:29,655 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:50:29,655 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.617994
2025-07-01 16:50:29,655 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:50:29,656 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:50:29,656 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:50:29,656 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:50:29,656 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:50:29,656 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:50:25', tmtdew=10.54, humidity=48.91, cloud=0.0, wind=30.63, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:49:54.682', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:50:29,657 [DEBUG][       Thread-611136][   transport.py][1871] : EOF in transport thread
2025-07-01 16:50:29,732 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:50:29,744 [DEBUG][       Thread-611139][   transport.py][1871] : starting thread (client mode): 0x81712d0
2025-07-01 16:50:29,744 [DEBUG][       Thread-611139][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:50:29,759 [DEBUG][       Thread-611139][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:50:29,760 [ INFO][       Thread-611139][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:50:29,768 [DEBUG][       Thread-611139][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:50:29,768 [DEBUG][       Thread-611139][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:50:29,769 [DEBUG][       Thread-611139][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:50:29,769 [DEBUG][       Thread-611139][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:50:29,769 [DEBUG][       Thread-611139][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:50:29,769 [DEBUG][       Thread-611139][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:50:29,769 [DEBUG][       Thread-611139][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:50:29,769 [DEBUG][       Thread-611139][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:50:29,769 [DEBUG][       Thread-611139][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:50:29,769 [DEBUG][       Thread-611139][   transport.py][1871] : client lang: <none>
2025-07-01 16:50:29,769 [DEBUG][       Thread-611139][   transport.py][1871] : server lang: <none>
2025-07-01 16:50:29,769 [DEBUG][       Thread-611139][   transport.py][1871] : kex follows: False
2025-07-01 16:50:29,769 [DEBUG][       Thread-611139][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:50:29,769 [DEBUG][       Thread-611139][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:50:29,769 [DEBUG][       Thread-611139][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:50:29,769 [DEBUG][       Thread-611139][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:50:29,769 [DEBUG][       Thread-611139][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:50:29,769 [DEBUG][       Thread-611139][   transport.py][1871] : Compression: none
2025-07-01 16:50:29,769 [DEBUG][       Thread-611139][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:50:29,826 [DEBUG][       Thread-611139][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:50:29,827 [DEBUG][       Thread-611139][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:50:29,828 [DEBUG][       Thread-611139][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:50:29,828 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:50:29,828 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:50:29,887 [DEBUG][       Thread-611139][   transport.py][1871] : userauth is OK
2025-07-01 16:50:29,888 [DEBUG][       Thread-611139][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:50:29,888 [DEBUG][       Thread-611139][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:50:29,888 [DEBUG][       Thread-611139][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:50:29,888 [DEBUG][       Thread-611139][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:50:29,910 [ INFO][       Thread-611139][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:50:29,911 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:50:29,911 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:50:30,930 [DEBUG][       Thread-611139][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:50:30,930 [DEBUG][       Thread-611139][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:50:30,980 [DEBUG][       Thread-611139][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:50:30,980 [DEBUG][       Thread-611139][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:50:30,989 [DEBUG][       Thread-611139][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:50:30,998 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:50:30,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')
2025-07-01 16:50:31,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-07-01 16:50:31,017 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:50:31,017 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:50:31,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:50:31,025 [DEBUG][       Thread-611139][   transport.py][1871] : EOF in transport thread
2025-07-01 16:50:36,416 [DEBUG][Thread-611141 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:50:39,361 [DEBUG][Thread-611142 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:50:41,023 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:50:41,023 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:50:41,023 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:50:41,026 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:50:41,490 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 50, 25), 10.54, 48.91, 0.0, 30.63, 13.3, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:50:41,490 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:50:25
2025-07-01 16:50:41,573 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:50:41,576 [DEBUG][       Thread-611143][   transport.py][1871] : starting thread (client mode): 0x81e62c0
2025-07-01 16:50:41,577 [DEBUG][       Thread-611143][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:50:41,596 [DEBUG][       Thread-611143][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:50:41,596 [ INFO][       Thread-611143][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:50:41,599 [DEBUG][       Thread-611143][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:50:41,600 [DEBUG][       Thread-611143][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:50:41,600 [DEBUG][       Thread-611143][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:50:41,600 [DEBUG][       Thread-611143][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:50:41,600 [DEBUG][       Thread-611143][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:50:41,600 [DEBUG][       Thread-611143][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:50:41,600 [DEBUG][       Thread-611143][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:50:41,600 [DEBUG][       Thread-611143][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:50:41,600 [DEBUG][       Thread-611143][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:50:41,600 [DEBUG][       Thread-611143][   transport.py][1871] : client lang: <none>
2025-07-01 16:50:41,600 [DEBUG][       Thread-611143][   transport.py][1871] : server lang: <none>
2025-07-01 16:50:41,600 [DEBUG][       Thread-611143][   transport.py][1871] : kex follows: False
2025-07-01 16:50:41,600 [DEBUG][       Thread-611143][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:50:41,600 [DEBUG][       Thread-611143][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:50:41,600 [DEBUG][       Thread-611143][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:50:41,600 [DEBUG][       Thread-611143][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:50:41,600 [DEBUG][       Thread-611143][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:50:41,600 [DEBUG][       Thread-611143][   transport.py][1871] : Compression: none
2025-07-01 16:50:41,600 [DEBUG][       Thread-611143][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:50:41,618 [DEBUG][       Thread-611143][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:50:41,619 [DEBUG][       Thread-611143][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:50:41,619 [DEBUG][       Thread-611143][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:50:41,619 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:50:41,620 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:50:41,621 [DEBUG][       Thread-611143][   transport.py][1871] : userauth is OK
2025-07-01 16:50:41,645 [ INFO][       Thread-611143][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:50:41,646 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:50:42,399 [DEBUG][       Thread-611143][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:50:42,399 [DEBUG][       Thread-611143][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:50:42,441 [DEBUG][       Thread-611143][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:50:42,441 [DEBUG][       Thread-611143][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:50:42,444 [DEBUG][       Thread-611143][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:50:42,456 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:50:42,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:50:42,458 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:50:42,460 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:50:42,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:50:42,467 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:50:42,467 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:50:42,468 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:50:42,468 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.617994 -999.00  +13.10  33.54     54   +4.00 1 2 2 1 1   887    0 8.67 -24.17 ----- 26.3 33.5 17.6 38.0 14.2 -20.1 13.9 -19.9 13.8 -19.1 14.2 -19.0
2025-07-01 16:50:42,468 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:50:42,468 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:50:42,468 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.617994
2025-07-01 16:50:42,469 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:50:42,469 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:50:42,469 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:50:42,469 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:50:42,469 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:50:42,470 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:50:25', tmtdew=10.54, humidity=48.91, cloud=0.0, wind=30.63, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:49:54.682', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:50:42,471 [DEBUG][       Thread-611143][   transport.py][1871] : EOF in transport thread
2025-07-01 16:50:42,553 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:50:42,563 [DEBUG][       Thread-611146][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 16:50:42,563 [DEBUG][       Thread-611146][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:50:42,578 [DEBUG][       Thread-611146][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:50:42,578 [ INFO][       Thread-611146][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:50:42,585 [DEBUG][       Thread-611146][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:50:42,585 [DEBUG][       Thread-611146][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:50:42,585 [DEBUG][       Thread-611146][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:50:42,585 [DEBUG][       Thread-611146][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:50:42,585 [DEBUG][       Thread-611146][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:50:42,585 [DEBUG][       Thread-611146][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:50:42,585 [DEBUG][       Thread-611146][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:50:42,585 [DEBUG][       Thread-611146][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:50:42,585 [DEBUG][       Thread-611146][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:50:42,585 [DEBUG][       Thread-611146][   transport.py][1871] : client lang: <none>
2025-07-01 16:50:42,586 [DEBUG][       Thread-611146][   transport.py][1871] : server lang: <none>
2025-07-01 16:50:42,586 [DEBUG][       Thread-611146][   transport.py][1871] : kex follows: False
2025-07-01 16:50:42,586 [DEBUG][       Thread-611146][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:50:42,586 [DEBUG][       Thread-611146][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:50:42,586 [DEBUG][       Thread-611146][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:50:42,586 [DEBUG][       Thread-611146][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:50:42,586 [DEBUG][       Thread-611146][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:50:42,586 [DEBUG][       Thread-611146][   transport.py][1871] : Compression: none
2025-07-01 16:50:42,586 [DEBUG][       Thread-611146][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:50:42,646 [DEBUG][       Thread-611146][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:50:42,647 [DEBUG][       Thread-611146][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:50:42,648 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:50:42,648 [DEBUG][       Thread-611146][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:50:42,649 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:50:42,706 [DEBUG][       Thread-611146][   transport.py][1871] : userauth is OK
2025-07-01 16:50:42,706 [DEBUG][       Thread-611146][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:50:42,707 [DEBUG][       Thread-611146][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:50:42,707 [DEBUG][       Thread-611146][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:50:42,707 [DEBUG][       Thread-611146][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:50:42,725 [ INFO][       Thread-611146][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:50:42,726 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:50:42,726 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:50:43,753 [DEBUG][       Thread-611146][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:50:43,753 [DEBUG][       Thread-611146][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:50:43,804 [DEBUG][       Thread-611146][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:50:43,804 [DEBUG][       Thread-611146][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:50:43,813 [DEBUG][       Thread-611146][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:50:43,822 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:50:43,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')
2025-07-01 16:50:43,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-07-01 16:50:43,841 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:50:43,841 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:50:43,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:50:43,850 [DEBUG][       Thread-611146][   transport.py][1871] : EOF in transport thread
2025-07-01 16:50:45,449 [DEBUG][Thread-611148 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:50:53,852 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:50:53,852 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:50:53,852 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:50:53,855 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:50:54,315 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 50, 25), 10.54, 48.91, 0.0, 30.63, 13.3, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:50:54,315 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:50:25
2025-07-01 16:50:54,401 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:50:54,406 [DEBUG][       Thread-611149][   transport.py][1871] : starting thread (client mode): 0x82b17e0
2025-07-01 16:50:54,406 [DEBUG][       Thread-611149][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:50:54,426 [DEBUG][       Thread-611149][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:50:54,426 [ INFO][       Thread-611149][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:50:54,430 [DEBUG][       Thread-611149][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:50:54,430 [DEBUG][       Thread-611149][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:50:54,430 [DEBUG][       Thread-611149][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:50:54,430 [DEBUG][       Thread-611149][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:50:54,430 [DEBUG][       Thread-611149][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:50:54,430 [DEBUG][       Thread-611149][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:50:54,430 [DEBUG][       Thread-611149][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:50:54,430 [DEBUG][       Thread-611149][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:50:54,430 [DEBUG][       Thread-611149][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:50:54,430 [DEBUG][       Thread-611149][   transport.py][1871] : client lang: <none>
2025-07-01 16:50:54,430 [DEBUG][       Thread-611149][   transport.py][1871] : server lang: <none>
2025-07-01 16:50:54,430 [DEBUG][       Thread-611149][   transport.py][1871] : kex follows: False
2025-07-01 16:50:54,430 [DEBUG][       Thread-611149][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:50:54,430 [DEBUG][       Thread-611149][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:50:54,430 [DEBUG][       Thread-611149][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:50:54,430 [DEBUG][       Thread-611149][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:50:54,430 [DEBUG][       Thread-611149][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:50:54,430 [DEBUG][       Thread-611149][   transport.py][1871] : Compression: none
2025-07-01 16:50:54,430 [DEBUG][       Thread-611149][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:50:54,447 [DEBUG][       Thread-611149][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:50:54,447 [DEBUG][       Thread-611149][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:50:54,448 [DEBUG][       Thread-611149][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:50:54,448 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:50:54,448 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:50:54,449 [DEBUG][       Thread-611149][   transport.py][1871] : userauth is OK
2025-07-01 16:50:54,462 [ INFO][       Thread-611149][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:50:54,463 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:50:54,471 [DEBUG][Thread-611151 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:50:55,183 [DEBUG][       Thread-611149][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:50:55,183 [DEBUG][       Thread-611149][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:50:55,225 [DEBUG][       Thread-611149][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:50:55,225 [DEBUG][       Thread-611149][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:50:55,231 [DEBUG][       Thread-611149][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:50:55,233 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:50:55,233 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:50:55,235 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:50:55,236 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:50:55,241 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:50:55,242 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:50:55,242 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:50:55,243 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:50:55,243 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.617994 -999.00  +13.10  33.54     54   +4.00 1 2 2 1 1   887    0 8.67 -24.17 ----- 26.3 33.5 17.6 38.0 14.2 -20.1 13.9 -19.9 13.8 -19.1 14.2 -19.0
2025-07-01 16:50:55,243 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:50:55,243 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:50:55,243 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.617994
2025-07-01 16:50:55,244 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:50:55,244 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:50:55,245 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:50:55,245 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:50:55,245 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:50:55,245 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:50:25', tmtdew=10.54, humidity=48.91, cloud=0.0, wind=30.63, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:49:54.682', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:50:55,245 [DEBUG][       Thread-611149][   transport.py][1871] : EOF in transport thread
2025-07-01 16:50:55,329 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:50:55,342 [DEBUG][       Thread-611153][   transport.py][1871] : starting thread (client mode): 0x8156620
2025-07-01 16:50:55,342 [DEBUG][       Thread-611153][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:50:55,356 [DEBUG][       Thread-611153][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:50:55,356 [ INFO][       Thread-611153][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:50:55,365 [DEBUG][       Thread-611153][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:50:55,365 [DEBUG][       Thread-611153][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:50:55,365 [DEBUG][       Thread-611153][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:50:55,365 [DEBUG][       Thread-611153][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:50:55,365 [DEBUG][       Thread-611153][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:50:55,366 [DEBUG][       Thread-611153][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:50:55,366 [DEBUG][       Thread-611153][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:50:55,366 [DEBUG][       Thread-611153][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:50:55,366 [DEBUG][       Thread-611153][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:50:55,366 [DEBUG][       Thread-611153][   transport.py][1871] : client lang: <none>
2025-07-01 16:50:55,366 [DEBUG][       Thread-611153][   transport.py][1871] : server lang: <none>
2025-07-01 16:50:55,366 [DEBUG][       Thread-611153][   transport.py][1871] : kex follows: False
2025-07-01 16:50:55,366 [DEBUG][       Thread-611153][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:50:55,366 [DEBUG][       Thread-611153][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:50:55,366 [DEBUG][       Thread-611153][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:50:55,366 [DEBUG][       Thread-611153][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:50:55,366 [DEBUG][       Thread-611153][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:50:55,366 [DEBUG][       Thread-611153][   transport.py][1871] : Compression: none
2025-07-01 16:50:55,366 [DEBUG][       Thread-611153][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:50:55,426 [DEBUG][       Thread-611153][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:50:55,426 [DEBUG][       Thread-611153][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:50:55,427 [DEBUG][       Thread-611153][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:50:55,427 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:50:55,428 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:50:55,485 [DEBUG][       Thread-611153][   transport.py][1871] : userauth is OK
2025-07-01 16:50:55,486 [DEBUG][       Thread-611153][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:50:55,486 [DEBUG][       Thread-611153][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:50:55,486 [DEBUG][       Thread-611153][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:50:55,486 [DEBUG][       Thread-611153][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:50:55,506 [ INFO][       Thread-611153][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:50:55,506 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:50:55,507 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:50:56,556 [DEBUG][       Thread-611153][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:50:56,556 [DEBUG][       Thread-611153][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:50:56,605 [DEBUG][       Thread-611153][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:50:56,605 [DEBUG][       Thread-611153][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:50:56,614 [DEBUG][       Thread-611153][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:50:56,623 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:50:56,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-07-01 16:50:56,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-07-01 16:50:56,643 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:50:56,643 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:50:56,644 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:50:56,652 [DEBUG][       Thread-611153][   transport.py][1871] : EOF in transport thread
2025-07-01 16:51:03,492 [DEBUG][Thread-611155 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:51:06,651 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:51:06,651 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:51:06,651 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:51:06,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-07-01 16:51:07,117 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 50, 56), 10.52, 48.99, 0.0, 29.46, 13.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:51:07,117 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:50:56
2025-07-01 16:51:07,203 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:51:07,207 [DEBUG][       Thread-611156][   transport.py][1871] : starting thread (client mode): 0x82b36a0
2025-07-01 16:51:07,207 [DEBUG][       Thread-611156][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:51:07,228 [DEBUG][       Thread-611156][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:51:07,228 [ INFO][       Thread-611156][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:51:07,231 [DEBUG][       Thread-611156][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:51:07,232 [DEBUG][       Thread-611156][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:51:07,232 [DEBUG][       Thread-611156][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:51:07,232 [DEBUG][       Thread-611156][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:51:07,232 [DEBUG][       Thread-611156][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:51:07,232 [DEBUG][       Thread-611156][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:51:07,232 [DEBUG][       Thread-611156][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:51:07,232 [DEBUG][       Thread-611156][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:51:07,232 [DEBUG][       Thread-611156][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:51:07,232 [DEBUG][       Thread-611156][   transport.py][1871] : client lang: <none>
2025-07-01 16:51:07,232 [DEBUG][       Thread-611156][   transport.py][1871] : server lang: <none>
2025-07-01 16:51:07,232 [DEBUG][       Thread-611156][   transport.py][1871] : kex follows: False
2025-07-01 16:51:07,232 [DEBUG][       Thread-611156][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:51:07,232 [DEBUG][       Thread-611156][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:51:07,232 [DEBUG][       Thread-611156][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:51:07,232 [DEBUG][       Thread-611156][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:51:07,232 [DEBUG][       Thread-611156][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:51:07,232 [DEBUG][       Thread-611156][   transport.py][1871] : Compression: none
2025-07-01 16:51:07,232 [DEBUG][       Thread-611156][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:51:07,248 [DEBUG][       Thread-611156][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:51:07,248 [DEBUG][       Thread-611156][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:51:07,249 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:51:07,249 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:51:07,249 [DEBUG][       Thread-611156][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:51:07,250 [DEBUG][       Thread-611156][   transport.py][1871] : userauth is OK
2025-07-01 16:51:07,275 [ INFO][       Thread-611156][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:51:07,276 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:51:07,852 [DEBUG][       Thread-611156][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:51:07,853 [DEBUG][       Thread-611156][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:51:07,897 [DEBUG][       Thread-611156][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:51:07,897 [DEBUG][       Thread-611156][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:51:07,900 [DEBUG][       Thread-611156][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:51:07,913 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:51:07,913 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:51:07,915 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:51:07,917 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:51:07,923 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:51:07,925 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:51:07,925 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:51:07,926 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:51:07,926 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.618341 -999.00  +13.10  29.19     54   +4.00 1 2 1 1 1   887    0 8.61 -23.88 ----- 35.9 29.2 27.4 44.0 14.2 -20.0 13.9 -19.7 13.8 -19.0 14.2 -19.0
2025-07-01 16:51:07,926 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:51:07,926 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:51:07,926 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.618341
2025-07-01 16:51:07,927 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:51:07,927 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:51:07,927 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:51:07,927 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:51:07,928 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:51:07,928 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:50:56', tmtdew=10.52, humidity=48.99, cloud=0.0, wind=29.46, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:50:24.662', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:51:07,929 [DEBUG][       Thread-611156][   transport.py][1871] : EOF in transport thread
2025-07-01 16:51:08,011 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:51:08,021 [DEBUG][       Thread-611159][   transport.py][1871] : starting thread (client mode): 0x81a4cd0
2025-07-01 16:51:08,021 [DEBUG][       Thread-611159][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:51:08,037 [DEBUG][       Thread-611159][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:51:08,038 [ INFO][       Thread-611159][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:51:08,050 [DEBUG][       Thread-611159][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:51:08,051 [DEBUG][       Thread-611159][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:51:08,051 [DEBUG][       Thread-611159][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:51:08,051 [DEBUG][       Thread-611159][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:51:08,051 [DEBUG][       Thread-611159][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:51:08,051 [DEBUG][       Thread-611159][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:51:08,051 [DEBUG][       Thread-611159][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:51:08,051 [DEBUG][       Thread-611159][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:51:08,051 [DEBUG][       Thread-611159][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:51:08,051 [DEBUG][       Thread-611159][   transport.py][1871] : client lang: <none>
2025-07-01 16:51:08,051 [DEBUG][       Thread-611159][   transport.py][1871] : server lang: <none>
2025-07-01 16:51:08,051 [DEBUG][       Thread-611159][   transport.py][1871] : kex follows: False
2025-07-01 16:51:08,051 [DEBUG][       Thread-611159][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:51:08,051 [DEBUG][       Thread-611159][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:51:08,051 [DEBUG][       Thread-611159][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:51:08,052 [DEBUG][       Thread-611159][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:51:08,052 [DEBUG][       Thread-611159][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:51:08,052 [DEBUG][       Thread-611159][   transport.py][1871] : Compression: none
2025-07-01 16:51:08,052 [DEBUG][       Thread-611159][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:51:08,109 [DEBUG][       Thread-611159][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:51:08,110 [DEBUG][       Thread-611159][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:51:08,110 [DEBUG][       Thread-611159][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:51:08,111 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:51:08,111 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:51:08,165 [DEBUG][       Thread-611159][   transport.py][1871] : userauth is OK
2025-07-01 16:51:08,165 [DEBUG][       Thread-611159][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:51:08,165 [DEBUG][       Thread-611159][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:51:08,165 [DEBUG][       Thread-611159][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:51:08,165 [DEBUG][       Thread-611159][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:51:08,184 [ INFO][       Thread-611159][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:51:08,184 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:51:08,185 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:51:09,247 [DEBUG][       Thread-611159][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:51:09,247 [DEBUG][       Thread-611159][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:51:09,295 [DEBUG][       Thread-611159][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:51:09,295 [DEBUG][       Thread-611159][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:51:09,304 [DEBUG][       Thread-611159][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:51:09,312 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:51:09,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')
2025-07-01 16:51:09,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-07-01 16:51:09,331 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:51:09,332 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:51:09,332 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:51:09,340 [DEBUG][       Thread-611159][   transport.py][1871] : EOF in transport thread
2025-07-01 16:51:12,513 [DEBUG][Thread-611161 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:51:19,342 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:51:19,343 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:51:19,343 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:51:19,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-07-01 16:51:19,819 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 50, 56), 10.52, 48.99, 0.0, 29.46, 13.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:51:19,819 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:50:56
2025-07-01 16:51:19,904 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:51:19,908 [DEBUG][       Thread-611162][   transport.py][1871] : starting thread (client mode): 0x818fe20
2025-07-01 16:51:19,908 [DEBUG][       Thread-611162][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:51:19,930 [DEBUG][       Thread-611162][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:51:19,930 [ INFO][       Thread-611162][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:51:19,933 [DEBUG][       Thread-611162][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:51:19,933 [DEBUG][       Thread-611162][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:51:19,933 [DEBUG][       Thread-611162][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:51:19,933 [DEBUG][       Thread-611162][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:51:19,933 [DEBUG][       Thread-611162][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:51:19,933 [DEBUG][       Thread-611162][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:51:19,933 [DEBUG][       Thread-611162][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:51:19,933 [DEBUG][       Thread-611162][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:51:19,933 [DEBUG][       Thread-611162][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:51:19,933 [DEBUG][       Thread-611162][   transport.py][1871] : client lang: <none>
2025-07-01 16:51:19,933 [DEBUG][       Thread-611162][   transport.py][1871] : server lang: <none>
2025-07-01 16:51:19,933 [DEBUG][       Thread-611162][   transport.py][1871] : kex follows: False
2025-07-01 16:51:19,933 [DEBUG][       Thread-611162][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:51:19,933 [DEBUG][       Thread-611162][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:51:19,934 [DEBUG][       Thread-611162][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:51:19,934 [DEBUG][       Thread-611162][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:51:19,934 [DEBUG][       Thread-611162][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:51:19,934 [DEBUG][       Thread-611162][   transport.py][1871] : Compression: none
2025-07-01 16:51:19,934 [DEBUG][       Thread-611162][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:51:19,950 [DEBUG][       Thread-611162][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:51:19,950 [DEBUG][       Thread-611162][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:51:19,950 [DEBUG][       Thread-611162][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:51:19,951 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:51:19,951 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:51:19,952 [DEBUG][       Thread-611162][   transport.py][1871] : userauth is OK
2025-07-01 16:51:19,964 [ INFO][       Thread-611162][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:51:19,965 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:51:20,692 [DEBUG][       Thread-611162][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:51:20,692 [DEBUG][       Thread-611162][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:51:20,733 [DEBUG][       Thread-611162][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:51:20,733 [DEBUG][       Thread-611162][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:51:20,737 [DEBUG][       Thread-611162][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:51:20,750 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:51:20,750 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:51:20,753 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:51:20,754 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:51:20,760 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:51:20,762 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:51:20,763 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:51:20,763 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:51:20,763 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.618341 -999.00  +13.10  29.19     54   +4.00 1 2 1 1 1   887    0 8.61 -23.88 ----- 35.9 29.2 27.4 44.0 14.2 -20.0 13.9 -19.7 13.8 -19.0 14.2 -19.0
2025-07-01 16:51:20,763 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:51:20,764 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:51:20,764 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.618341
2025-07-01 16:51:20,764 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:51:20,765 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:51:20,765 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:51:20,765 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:51:20,765 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:51:20,765 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:50:56', tmtdew=10.52, humidity=48.99, cloud=0.0, wind=29.46, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:50:24.662', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:51:20,765 [DEBUG][       Thread-611162][   transport.py][1871] : EOF in transport thread
2025-07-01 16:51:20,848 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:51:20,864 [DEBUG][       Thread-611165][   transport.py][1871] : starting thread (client mode): 0x818e650
2025-07-01 16:51:20,864 [DEBUG][       Thread-611165][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:51:20,880 [DEBUG][       Thread-611165][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:51:20,880 [ INFO][       Thread-611165][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:51:20,887 [DEBUG][       Thread-611165][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:51:20,887 [DEBUG][       Thread-611165][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:51:20,888 [DEBUG][       Thread-611165][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:51:20,888 [DEBUG][       Thread-611165][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:51:20,888 [DEBUG][       Thread-611165][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:51:20,888 [DEBUG][       Thread-611165][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:51:20,888 [DEBUG][       Thread-611165][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:51:20,888 [DEBUG][       Thread-611165][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:51:20,888 [DEBUG][       Thread-611165][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:51:20,888 [DEBUG][       Thread-611165][   transport.py][1871] : client lang: <none>
2025-07-01 16:51:20,888 [DEBUG][       Thread-611165][   transport.py][1871] : server lang: <none>
2025-07-01 16:51:20,888 [DEBUG][       Thread-611165][   transport.py][1871] : kex follows: False
2025-07-01 16:51:20,888 [DEBUG][       Thread-611165][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:51:20,888 [DEBUG][       Thread-611165][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:51:20,888 [DEBUG][       Thread-611165][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:51:20,888 [DEBUG][       Thread-611165][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:51:20,889 [DEBUG][       Thread-611165][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:51:20,889 [DEBUG][       Thread-611165][   transport.py][1871] : Compression: none
2025-07-01 16:51:20,889 [DEBUG][       Thread-611165][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:51:20,943 [DEBUG][       Thread-611165][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:51:20,944 [DEBUG][       Thread-611165][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:51:20,945 [DEBUG][       Thread-611165][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:51:20,945 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:51:20,946 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:51:21,000 [DEBUG][       Thread-611165][   transport.py][1871] : userauth is OK
2025-07-01 16:51:21,000 [DEBUG][       Thread-611165][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:51:21,000 [DEBUG][       Thread-611165][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:51:21,000 [DEBUG][       Thread-611165][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:51:21,000 [DEBUG][       Thread-611165][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:51:21,018 [ INFO][       Thread-611165][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:51:21,018 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:51:21,018 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:51:21,560 [DEBUG][Thread-611167 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:51:22,018 [DEBUG][       Thread-611165][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:51:22,018 [DEBUG][       Thread-611165][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:51:22,068 [DEBUG][       Thread-611165][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:51:22,068 [DEBUG][       Thread-611165][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:51:22,078 [DEBUG][       Thread-611165][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:51:22,088 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:51:22,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-07-01 16:51:22,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-07-01 16:51:22,107 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:51:22,107 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:51:22,108 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:51:22,116 [DEBUG][       Thread-611165][   transport.py][1871] : EOF in transport thread
2025-07-01 16:51:30,580 [DEBUG][Thread-611168 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:51:32,118 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:51:32,118 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:51:32,118 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:51:32,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-07-01 16:51:32,598 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 51, 28), 10.49, 49.07, 0.0, 26.78, 13.3, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:51:32,598 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:51:28
2025-07-01 16:51:32,681 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:51:32,688 [DEBUG][       Thread-611169][   transport.py][1871] : starting thread (client mode): 0x82b1a80
2025-07-01 16:51:32,688 [DEBUG][       Thread-611169][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:51:32,709 [DEBUG][       Thread-611169][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:51:32,709 [ INFO][       Thread-611169][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:51:32,712 [DEBUG][       Thread-611169][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:51:32,712 [DEBUG][       Thread-611169][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:51:32,712 [DEBUG][       Thread-611169][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:51:32,712 [DEBUG][       Thread-611169][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:51:32,712 [DEBUG][       Thread-611169][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:51:32,712 [DEBUG][       Thread-611169][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:51:32,712 [DEBUG][       Thread-611169][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:51:32,712 [DEBUG][       Thread-611169][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:51:32,712 [DEBUG][       Thread-611169][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:51:32,712 [DEBUG][       Thread-611169][   transport.py][1871] : client lang: <none>
2025-07-01 16:51:32,712 [DEBUG][       Thread-611169][   transport.py][1871] : server lang: <none>
2025-07-01 16:51:32,712 [DEBUG][       Thread-611169][   transport.py][1871] : kex follows: False
2025-07-01 16:51:32,712 [DEBUG][       Thread-611169][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:51:32,712 [DEBUG][       Thread-611169][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:51:32,713 [DEBUG][       Thread-611169][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:51:32,713 [DEBUG][       Thread-611169][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:51:32,713 [DEBUG][       Thread-611169][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:51:32,713 [DEBUG][       Thread-611169][   transport.py][1871] : Compression: none
2025-07-01 16:51:32,713 [DEBUG][       Thread-611169][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:51:32,730 [DEBUG][       Thread-611169][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:51:32,730 [DEBUG][       Thread-611169][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:51:32,731 [DEBUG][       Thread-611169][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:51:32,731 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:51:32,731 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:51:32,732 [DEBUG][       Thread-611169][   transport.py][1871] : userauth is OK
2025-07-01 16:51:32,746 [ INFO][       Thread-611169][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:51:32,746 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:51:33,382 [DEBUG][       Thread-611169][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:51:33,382 [DEBUG][       Thread-611169][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:51:33,425 [DEBUG][       Thread-611169][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:51:33,425 [DEBUG][       Thread-611169][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:51:33,428 [DEBUG][       Thread-611169][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:51:33,440 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:51:33,440 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:51:33,442 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:51:33,444 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:51:33,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:51:33,451 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:51:33,451 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:51:33,452 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:51:33,452 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.619035 -999.00  +13.10  21.77     53   +3.90 1 2 1 1 1   887    0 8.65 -23.33 ----- 24.6 21.8 11.3 40.4 14.1 -19.9 13.9 -19.7 13.8 -19.0 14.1 -18.8
2025-07-01 16:51:33,452 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:51:33,452 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:51:33,452 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.619035
2025-07-01 16:51:33,453 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:51:33,453 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:51:33,453 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:51:33,454 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:51:33,454 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:51:33,454 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:51:28', tmtdew=10.49, humidity=49.07, cloud=0.0, wind=26.78, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:51:24.624', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:51:33,455 [DEBUG][       Thread-611169][   transport.py][1871] : EOF in transport thread
2025-07-01 16:51:33,537 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:51:33,549 [DEBUG][       Thread-611172][   transport.py][1871] : starting thread (client mode): 0x81c9510
2025-07-01 16:51:33,549 [DEBUG][       Thread-611172][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:51:33,564 [DEBUG][       Thread-611172][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:51:33,564 [ INFO][       Thread-611172][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:51:33,572 [DEBUG][       Thread-611172][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:51:33,572 [DEBUG][       Thread-611172][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:51:33,572 [DEBUG][       Thread-611172][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:51:33,572 [DEBUG][       Thread-611172][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:51:33,572 [DEBUG][       Thread-611172][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:51:33,572 [DEBUG][       Thread-611172][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:51:33,572 [DEBUG][       Thread-611172][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:51:33,572 [DEBUG][       Thread-611172][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:51:33,572 [DEBUG][       Thread-611172][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:51:33,572 [DEBUG][       Thread-611172][   transport.py][1871] : client lang: <none>
2025-07-01 16:51:33,572 [DEBUG][       Thread-611172][   transport.py][1871] : server lang: <none>
2025-07-01 16:51:33,573 [DEBUG][       Thread-611172][   transport.py][1871] : kex follows: False
2025-07-01 16:51:33,573 [DEBUG][       Thread-611172][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:51:33,573 [DEBUG][       Thread-611172][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:51:33,573 [DEBUG][       Thread-611172][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:51:33,573 [DEBUG][       Thread-611172][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:51:33,573 [DEBUG][       Thread-611172][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:51:33,573 [DEBUG][       Thread-611172][   transport.py][1871] : Compression: none
2025-07-01 16:51:33,573 [DEBUG][       Thread-611172][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:51:33,632 [DEBUG][       Thread-611172][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:51:33,632 [DEBUG][       Thread-611172][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:51:33,633 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:51:33,633 [DEBUG][       Thread-611172][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:51:33,634 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:51:33,688 [DEBUG][       Thread-611172][   transport.py][1871] : userauth is OK
2025-07-01 16:51:33,688 [DEBUG][       Thread-611172][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:51:33,688 [DEBUG][       Thread-611172][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:51:33,688 [DEBUG][       Thread-611172][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:51:33,688 [DEBUG][       Thread-611172][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:51:33,707 [ INFO][       Thread-611172][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:51:33,707 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:51:33,707 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:51:34,780 [DEBUG][       Thread-611172][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:51:34,781 [DEBUG][       Thread-611172][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:51:34,833 [DEBUG][       Thread-611172][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:51:34,834 [DEBUG][       Thread-611172][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:51:34,843 [DEBUG][       Thread-611172][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:51:34,852 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:51:34,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')
2025-07-01 16:51:34,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') -> 00000000
2025-07-01 16:51:34,870 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:51:34,870 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:51:34,871 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:51:34,879 [DEBUG][       Thread-611172][   transport.py][1871] : EOF in transport thread
2025-07-01 16:51:39,405 [DEBUG][Thread-611174 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:51:39,601 [DEBUG][Thread-611175 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:51:44,881 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:51:44,881 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:51:44,881 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:51:44,884 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:51:45,346 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 51, 28), 10.49, 49.07, 0.0, 26.78, 13.3, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:51:45,346 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:51:28
2025-07-01 16:51:45,425 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:51:45,429 [DEBUG][       Thread-611176][   transport.py][1871] : starting thread (client mode): 0x81a4310
2025-07-01 16:51:45,429 [DEBUG][       Thread-611176][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:51:45,449 [DEBUG][       Thread-611176][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:51:45,449 [ INFO][       Thread-611176][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:51:45,453 [DEBUG][       Thread-611176][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:51:45,453 [DEBUG][       Thread-611176][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:51:45,453 [DEBUG][       Thread-611176][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:51:45,453 [DEBUG][       Thread-611176][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:51:45,453 [DEBUG][       Thread-611176][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:51:45,453 [DEBUG][       Thread-611176][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:51:45,453 [DEBUG][       Thread-611176][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:51:45,453 [DEBUG][       Thread-611176][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:51:45,453 [DEBUG][       Thread-611176][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:51:45,453 [DEBUG][       Thread-611176][   transport.py][1871] : client lang: <none>
2025-07-01 16:51:45,453 [DEBUG][       Thread-611176][   transport.py][1871] : server lang: <none>
2025-07-01 16:51:45,453 [DEBUG][       Thread-611176][   transport.py][1871] : kex follows: False
2025-07-01 16:51:45,453 [DEBUG][       Thread-611176][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:51:45,453 [DEBUG][       Thread-611176][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:51:45,453 [DEBUG][       Thread-611176][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:51:45,453 [DEBUG][       Thread-611176][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:51:45,453 [DEBUG][       Thread-611176][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:51:45,453 [DEBUG][       Thread-611176][   transport.py][1871] : Compression: none
2025-07-01 16:51:45,453 [DEBUG][       Thread-611176][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:51:45,470 [DEBUG][       Thread-611176][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:51:45,470 [DEBUG][       Thread-611176][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:51:45,471 [DEBUG][       Thread-611176][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:51:45,471 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:51:45,471 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:51:45,472 [DEBUG][       Thread-611176][   transport.py][1871] : userauth is OK
2025-07-01 16:51:45,485 [ INFO][       Thread-611176][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:51:45,486 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:51:46,278 [DEBUG][       Thread-611176][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:51:46,278 [DEBUG][       Thread-611176][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:51:46,321 [DEBUG][       Thread-611176][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:51:46,321 [DEBUG][       Thread-611176][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:51:46,324 [DEBUG][       Thread-611176][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:51:46,336 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:51:46,337 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:51:46,338 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:51:46,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:51:46,344 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:51:46,345 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:51:46,346 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:51:46,346 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:51:46,346 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.619035 -999.00  +13.10  21.77     53   +3.90 1 2 1 1 1   887    0 8.65 -23.33 ----- 24.6 21.8 11.3 40.4 14.1 -19.9 13.9 -19.7 13.8 -19.0 14.1 -18.8
2025-07-01 16:51:46,346 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:51:46,347 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:51:46,347 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.619035
2025-07-01 16:51:46,347 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:51:46,348 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:51:46,348 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:51:46,348 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:51:46,348 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:51:46,348 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:51:28', tmtdew=10.49, humidity=49.07, cloud=0.0, wind=26.78, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:51:24.624', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:51:46,349 [DEBUG][       Thread-611176][   transport.py][1871] : EOF in transport thread
2025-07-01 16:51:46,431 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:51:46,441 [DEBUG][       Thread-611179][   transport.py][1871] : starting thread (client mode): 0x81c9ab0
2025-07-01 16:51:46,441 [DEBUG][       Thread-611179][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:51:46,456 [DEBUG][       Thread-611179][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:51:46,456 [ INFO][       Thread-611179][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:51:46,464 [DEBUG][       Thread-611179][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:51:46,464 [DEBUG][       Thread-611179][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:51:46,464 [DEBUG][       Thread-611179][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:51:46,464 [DEBUG][       Thread-611179][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:51:46,464 [DEBUG][       Thread-611179][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:51:46,464 [DEBUG][       Thread-611179][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:51:46,464 [DEBUG][       Thread-611179][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:51:46,464 [DEBUG][       Thread-611179][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:51:46,464 [DEBUG][       Thread-611179][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:51:46,464 [DEBUG][       Thread-611179][   transport.py][1871] : client lang: <none>
2025-07-01 16:51:46,464 [DEBUG][       Thread-611179][   transport.py][1871] : server lang: <none>
2025-07-01 16:51:46,464 [DEBUG][       Thread-611179][   transport.py][1871] : kex follows: False
2025-07-01 16:51:46,464 [DEBUG][       Thread-611179][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:51:46,464 [DEBUG][       Thread-611179][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:51:46,465 [DEBUG][       Thread-611179][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:51:46,465 [DEBUG][       Thread-611179][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:51:46,465 [DEBUG][       Thread-611179][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:51:46,465 [DEBUG][       Thread-611179][   transport.py][1871] : Compression: none
2025-07-01 16:51:46,465 [DEBUG][       Thread-611179][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:51:46,522 [DEBUG][       Thread-611179][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:51:46,522 [DEBUG][       Thread-611179][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:51:46,522 [DEBUG][       Thread-611179][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:51:46,522 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:51:46,522 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:51:46,579 [DEBUG][       Thread-611179][   transport.py][1871] : userauth is OK
2025-07-01 16:51:46,579 [DEBUG][       Thread-611179][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:51:46,579 [DEBUG][       Thread-611179][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:51:46,579 [DEBUG][       Thread-611179][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:51:46,579 [DEBUG][       Thread-611179][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:51:46,593 [ INFO][       Thread-611179][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:51:46,593 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:51:46,593 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:51:47,635 [DEBUG][       Thread-611179][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:51:47,635 [DEBUG][       Thread-611179][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:51:47,684 [DEBUG][       Thread-611179][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:51:47,684 [DEBUG][       Thread-611179][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:51:47,693 [DEBUG][       Thread-611179][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:51:47,702 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:51:47,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-07-01 16:51:47,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-07-01 16:51:47,720 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:51:47,720 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:51:47,721 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:51:47,729 [DEBUG][       Thread-611179][   transport.py][1871] : EOF in transport thread
2025-07-01 16:51:48,643 [DEBUG][Thread-611181 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:51:57,667 [DEBUG][Thread-611182 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:51:57,731 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:51:57,731 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:51:57,731 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:51:57,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-07-01 16:51:58,211 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 51, 28), 10.49, 49.07, 0.0, 26.78, 13.3, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:51:58,211 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:51:28
2025-07-01 16:51:58,291 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:51:58,297 [DEBUG][       Thread-611183][   transport.py][1871] : starting thread (client mode): 0x81e62f0
2025-07-01 16:51:58,297 [DEBUG][       Thread-611183][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:51:58,316 [DEBUG][       Thread-611183][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:51:58,316 [ INFO][       Thread-611183][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:51:58,318 [DEBUG][       Thread-611183][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:51:58,318 [DEBUG][       Thread-611183][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:51:58,318 [DEBUG][       Thread-611183][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:51:58,318 [DEBUG][       Thread-611183][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:51:58,318 [DEBUG][       Thread-611183][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:51:58,318 [DEBUG][       Thread-611183][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:51:58,318 [DEBUG][       Thread-611183][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:51:58,318 [DEBUG][       Thread-611183][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:51:58,318 [DEBUG][       Thread-611183][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:51:58,318 [DEBUG][       Thread-611183][   transport.py][1871] : client lang: <none>
2025-07-01 16:51:58,318 [DEBUG][       Thread-611183][   transport.py][1871] : server lang: <none>
2025-07-01 16:51:58,318 [DEBUG][       Thread-611183][   transport.py][1871] : kex follows: False
2025-07-01 16:51:58,318 [DEBUG][       Thread-611183][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:51:58,318 [DEBUG][       Thread-611183][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:51:58,318 [DEBUG][       Thread-611183][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:51:58,318 [DEBUG][       Thread-611183][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:51:58,318 [DEBUG][       Thread-611183][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:51:58,318 [DEBUG][       Thread-611183][   transport.py][1871] : Compression: none
2025-07-01 16:51:58,318 [DEBUG][       Thread-611183][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:51:58,331 [DEBUG][       Thread-611183][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:51:58,331 [DEBUG][       Thread-611183][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:51:58,332 [DEBUG][       Thread-611183][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:51:58,332 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:51:58,332 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:51:58,333 [DEBUG][       Thread-611183][   transport.py][1871] : userauth is OK
2025-07-01 16:51:58,359 [ INFO][       Thread-611183][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:51:58,360 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:51:59,223 [DEBUG][       Thread-611183][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:51:59,223 [DEBUG][       Thread-611183][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:51:59,269 [DEBUG][       Thread-611183][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:51:59,269 [DEBUG][       Thread-611183][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:51:59,271 [DEBUG][       Thread-611183][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:51:59,277 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:51:59,277 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:51:59,279 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:51:59,280 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:51:59,283 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:51:59,284 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:51:59,284 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:51:59,284 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:51:59,284 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.619035 -999.00  +13.10  21.77     53   +3.90 1 2 1 1 1   887    0 8.65 -23.33 ----- 24.6 21.8 11.3 40.4 14.1 -19.9 13.9 -19.7 13.8 -19.0 14.1 -18.8
2025-07-01 16:51:59,284 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:51:59,284 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:51:59,284 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.619035
2025-07-01 16:51:59,284 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:51:59,284 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:51:59,284 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:51:59,284 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:51:59,284 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:51:59,284 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:51:28', tmtdew=10.49, humidity=49.07, cloud=0.0, wind=26.78, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:51:24.624', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:51:59,285 [DEBUG][       Thread-611183][   transport.py][1871] : EOF in transport thread
2025-07-01 16:51:59,355 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:51:59,366 [DEBUG][       Thread-611186][   transport.py][1871] : starting thread (client mode): 0x81d9480
2025-07-01 16:51:59,366 [DEBUG][       Thread-611186][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:51:59,382 [DEBUG][       Thread-611186][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:51:59,382 [ INFO][       Thread-611186][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:51:59,392 [DEBUG][       Thread-611186][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:51:59,393 [DEBUG][       Thread-611186][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:51:59,393 [DEBUG][       Thread-611186][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:51:59,393 [DEBUG][       Thread-611186][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:51:59,393 [DEBUG][       Thread-611186][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:51:59,393 [DEBUG][       Thread-611186][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:51:59,393 [DEBUG][       Thread-611186][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:51:59,393 [DEBUG][       Thread-611186][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:51:59,393 [DEBUG][       Thread-611186][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:51:59,393 [DEBUG][       Thread-611186][   transport.py][1871] : client lang: <none>
2025-07-01 16:51:59,393 [DEBUG][       Thread-611186][   transport.py][1871] : server lang: <none>
2025-07-01 16:51:59,393 [DEBUG][       Thread-611186][   transport.py][1871] : kex follows: False
2025-07-01 16:51:59,393 [DEBUG][       Thread-611186][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:51:59,393 [DEBUG][       Thread-611186][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:51:59,393 [DEBUG][       Thread-611186][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:51:59,393 [DEBUG][       Thread-611186][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:51:59,393 [DEBUG][       Thread-611186][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:51:59,393 [DEBUG][       Thread-611186][   transport.py][1871] : Compression: none
2025-07-01 16:51:59,394 [DEBUG][       Thread-611186][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:51:59,457 [DEBUG][       Thread-611186][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:51:59,458 [DEBUG][       Thread-611186][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:51:59,458 [DEBUG][       Thread-611186][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:51:59,459 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:51:59,459 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:51:59,522 [DEBUG][       Thread-611186][   transport.py][1871] : userauth is OK
2025-07-01 16:51:59,522 [DEBUG][       Thread-611186][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:51:59,522 [DEBUG][       Thread-611186][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:51:59,522 [DEBUG][       Thread-611186][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:51:59,522 [DEBUG][       Thread-611186][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:51:59,541 [ INFO][       Thread-611186][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:51:59,541 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:51:59,542 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:52:00,548 [DEBUG][       Thread-611186][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:52:00,548 [DEBUG][       Thread-611186][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:52:00,596 [DEBUG][       Thread-611186][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:52:00,596 [DEBUG][       Thread-611186][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:52:00,605 [DEBUG][       Thread-611186][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:52:00,614 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:52:00,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-07-01 16:52:00,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-07-01 16:52:00,633 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:52:00,633 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:52:00,633 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:52:00,642 [DEBUG][       Thread-611186][   transport.py][1871] : EOF in transport thread
2025-07-01 16:52:06,687 [DEBUG][Thread-611188 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:52:10,644 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:52:10,644 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:52:10,644 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:52:10,647 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:52:11,128 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 52), 10.49, 49.09, 0.0, 32.66, 13.3, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:52:11,128 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:52:00
2025-07-01 16:52:11,213 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:52:11,217 [DEBUG][       Thread-611189][   transport.py][1871] : starting thread (client mode): 0x81a7a30
2025-07-01 16:52:11,217 [DEBUG][       Thread-611189][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:52:11,236 [DEBUG][       Thread-611189][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:52:11,236 [ INFO][       Thread-611189][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:52:11,239 [DEBUG][       Thread-611189][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:52:11,240 [DEBUG][       Thread-611189][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:52:11,240 [DEBUG][       Thread-611189][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:52:11,240 [DEBUG][       Thread-611189][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:52:11,240 [DEBUG][       Thread-611189][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:52:11,240 [DEBUG][       Thread-611189][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:52:11,240 [DEBUG][       Thread-611189][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:52:11,240 [DEBUG][       Thread-611189][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:52:11,240 [DEBUG][       Thread-611189][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:52:11,240 [DEBUG][       Thread-611189][   transport.py][1871] : client lang: <none>
2025-07-01 16:52:11,240 [DEBUG][       Thread-611189][   transport.py][1871] : server lang: <none>
2025-07-01 16:52:11,240 [DEBUG][       Thread-611189][   transport.py][1871] : kex follows: False
2025-07-01 16:52:11,240 [DEBUG][       Thread-611189][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:52:11,240 [DEBUG][       Thread-611189][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:52:11,240 [DEBUG][       Thread-611189][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:52:11,240 [DEBUG][       Thread-611189][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:52:11,240 [DEBUG][       Thread-611189][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:52:11,240 [DEBUG][       Thread-611189][   transport.py][1871] : Compression: none
2025-07-01 16:52:11,240 [DEBUG][       Thread-611189][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:52:11,257 [DEBUG][       Thread-611189][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:52:11,258 [DEBUG][       Thread-611189][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:52:11,258 [DEBUG][       Thread-611189][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:52:11,258 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:52:11,259 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:52:11,260 [DEBUG][       Thread-611189][   transport.py][1871] : userauth is OK
2025-07-01 16:52:11,284 [ INFO][       Thread-611189][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:52:11,284 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:52:11,961 [DEBUG][       Thread-611189][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:52:11,962 [DEBUG][       Thread-611189][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:52:12,005 [DEBUG][       Thread-611189][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:52:12,005 [DEBUG][       Thread-611189][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:52:12,008 [DEBUG][       Thread-611189][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:52:12,019 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:52:12,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:52:12,021 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:52:12,023 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:52:12,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:52:12,029 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:52:12,029 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:52:12,030 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:52:12,030 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.619383 -999.00  +13.10  23.87     53   +3.90 1 2 1 1 1   887    0 8.59 -22.23 ----- 28.7 23.9 18.6 37.3 14.1 -19.8 14.0 -19.5 13.8 -18.9 14.1 -19.0
2025-07-01 16:52:12,030 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:52:12,030 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:52:12,030 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.619383
2025-07-01 16:52:12,030 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:52:12,031 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:52:12,031 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:52:12,031 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:52:12,031 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:52:12,031 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:52:00', tmtdew=10.49, humidity=49.09, cloud=0.0, wind=32.66, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:51:54.691', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:52:12,032 [DEBUG][       Thread-611189][   transport.py][1871] : EOF in transport thread
2025-07-01 16:52:12,115 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:52:12,129 [DEBUG][       Thread-611192][   transport.py][1871] : starting thread (client mode): 0x81561d0
2025-07-01 16:52:12,129 [DEBUG][       Thread-611192][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:52:12,145 [DEBUG][       Thread-611192][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:52:12,145 [ INFO][       Thread-611192][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:52:12,153 [DEBUG][       Thread-611192][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:52:12,153 [DEBUG][       Thread-611192][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:52:12,153 [DEBUG][       Thread-611192][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:52:12,153 [DEBUG][       Thread-611192][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:52:12,153 [DEBUG][       Thread-611192][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:52:12,153 [DEBUG][       Thread-611192][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:52:12,153 [DEBUG][       Thread-611192][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:52:12,153 [DEBUG][       Thread-611192][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:52:12,153 [DEBUG][       Thread-611192][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:52:12,153 [DEBUG][       Thread-611192][   transport.py][1871] : client lang: <none>
2025-07-01 16:52:12,153 [DEBUG][       Thread-611192][   transport.py][1871] : server lang: <none>
2025-07-01 16:52:12,153 [DEBUG][       Thread-611192][   transport.py][1871] : kex follows: False
2025-07-01 16:52:12,153 [DEBUG][       Thread-611192][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:52:12,153 [DEBUG][       Thread-611192][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:52:12,154 [DEBUG][       Thread-611192][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:52:12,154 [DEBUG][       Thread-611192][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:52:12,154 [DEBUG][       Thread-611192][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:52:12,154 [DEBUG][       Thread-611192][   transport.py][1871] : Compression: none
2025-07-01 16:52:12,154 [DEBUG][       Thread-611192][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:52:12,210 [DEBUG][       Thread-611192][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:52:12,211 [DEBUG][       Thread-611192][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:52:12,212 [DEBUG][       Thread-611192][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:52:12,212 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:52:12,213 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:52:12,272 [DEBUG][       Thread-611192][   transport.py][1871] : userauth is OK
2025-07-01 16:52:12,272 [DEBUG][       Thread-611192][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:52:12,272 [DEBUG][       Thread-611192][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:52:12,272 [DEBUG][       Thread-611192][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:52:12,272 [DEBUG][       Thread-611192][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:52:12,290 [ INFO][       Thread-611192][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:52:12,291 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:52:12,291 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:52:13,284 [DEBUG][       Thread-611192][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:52:13,284 [DEBUG][       Thread-611192][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:52:13,331 [DEBUG][       Thread-611192][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:52:13,332 [DEBUG][       Thread-611192][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:52:13,341 [DEBUG][       Thread-611192][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:52:13,349 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:52:13,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-07-01 16:52:13,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-07-01 16:52:13,366 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:52:13,366 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:52:13,367 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:52:13,374 [DEBUG][       Thread-611192][   transport.py][1871] : EOF in transport thread
2025-07-01 16:52:15,708 [DEBUG][Thread-611194 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:52:23,377 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:52:23,378 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:52:23,378 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:52:23,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-07-01 16:52:23,841 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 52), 10.49, 49.09, 0.0, 32.66, 13.3, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:52:23,841 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:52:00
2025-07-01 16:52:23,927 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:52:23,932 [DEBUG][       Thread-611195][   transport.py][1871] : starting thread (client mode): 0x818eaa0
2025-07-01 16:52:23,932 [DEBUG][       Thread-611195][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:52:23,952 [DEBUG][       Thread-611195][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:52:23,952 [ INFO][       Thread-611195][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:52:23,955 [DEBUG][       Thread-611195][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:52:23,955 [DEBUG][       Thread-611195][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:52:23,955 [DEBUG][       Thread-611195][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:52:23,955 [DEBUG][       Thread-611195][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:52:23,955 [DEBUG][       Thread-611195][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:52:23,955 [DEBUG][       Thread-611195][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:52:23,955 [DEBUG][       Thread-611195][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:52:23,955 [DEBUG][       Thread-611195][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:52:23,955 [DEBUG][       Thread-611195][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:52:23,955 [DEBUG][       Thread-611195][   transport.py][1871] : client lang: <none>
2025-07-01 16:52:23,955 [DEBUG][       Thread-611195][   transport.py][1871] : server lang: <none>
2025-07-01 16:52:23,955 [DEBUG][       Thread-611195][   transport.py][1871] : kex follows: False
2025-07-01 16:52:23,955 [DEBUG][       Thread-611195][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:52:23,955 [DEBUG][       Thread-611195][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:52:23,955 [DEBUG][       Thread-611195][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:52:23,955 [DEBUG][       Thread-611195][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:52:23,955 [DEBUG][       Thread-611195][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:52:23,955 [DEBUG][       Thread-611195][   transport.py][1871] : Compression: none
2025-07-01 16:52:23,955 [DEBUG][       Thread-611195][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:52:23,967 [DEBUG][       Thread-611195][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:52:23,967 [DEBUG][       Thread-611195][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:52:23,967 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:52:23,967 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:52:23,967 [DEBUG][       Thread-611195][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:52:23,967 [DEBUG][       Thread-611195][   transport.py][1871] : userauth is OK
2025-07-01 16:52:23,992 [ INFO][       Thread-611195][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:52:23,992 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:52:24,750 [DEBUG][Thread-611197 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:52:24,823 [DEBUG][       Thread-611195][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:52:24,823 [DEBUG][       Thread-611195][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:52:24,865 [DEBUG][       Thread-611195][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:52:24,865 [DEBUG][       Thread-611195][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:52:24,869 [DEBUG][       Thread-611195][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:52:24,880 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:52:24,881 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:52:24,883 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:52:24,885 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:52:24,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:52:24,893 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:52:24,893 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:52:24,894 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:52:24,894 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.619383 -999.00  +13.10  23.87     53   +3.90 1 2 1 1 1   887    0 8.59 -22.23 ----- 28.7 23.9 18.6 37.3 14.1 -19.8 14.0 -19.5 13.8 -18.9 14.1 -19.0
2025-07-01 16:52:24,894 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:52:24,894 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:52:24,894 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.619383
2025-07-01 16:52:24,895 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:52:24,895 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:52:24,895 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:52:24,895 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:52:24,895 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:52:24,896 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:52:00', tmtdew=10.49, humidity=49.09, cloud=0.0, wind=32.66, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:51:54.691', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:52:24,896 [DEBUG][       Thread-611195][   transport.py][1871] : EOF in transport thread
2025-07-01 16:52:24,979 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:52:24,992 [DEBUG][       Thread-611199][   transport.py][1871] : starting thread (client mode): 0x8173bb0
2025-07-01 16:52:24,992 [DEBUG][       Thread-611199][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:52:25,007 [DEBUG][       Thread-611199][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:52:25,007 [ INFO][       Thread-611199][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:52:25,014 [DEBUG][       Thread-611199][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:52:25,015 [DEBUG][       Thread-611199][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:52:25,015 [DEBUG][       Thread-611199][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:52:25,015 [DEBUG][       Thread-611199][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:52:25,015 [DEBUG][       Thread-611199][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:52:25,015 [DEBUG][       Thread-611199][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:52:25,015 [DEBUG][       Thread-611199][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:52:25,015 [DEBUG][       Thread-611199][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:52:25,015 [DEBUG][       Thread-611199][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:52:25,015 [DEBUG][       Thread-611199][   transport.py][1871] : client lang: <none>
2025-07-01 16:52:25,015 [DEBUG][       Thread-611199][   transport.py][1871] : server lang: <none>
2025-07-01 16:52:25,015 [DEBUG][       Thread-611199][   transport.py][1871] : kex follows: False
2025-07-01 16:52:25,015 [DEBUG][       Thread-611199][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:52:25,015 [DEBUG][       Thread-611199][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:52:25,015 [DEBUG][       Thread-611199][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:52:25,015 [DEBUG][       Thread-611199][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:52:25,015 [DEBUG][       Thread-611199][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:52:25,015 [DEBUG][       Thread-611199][   transport.py][1871] : Compression: none
2025-07-01 16:52:25,015 [DEBUG][       Thread-611199][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:52:25,074 [DEBUG][       Thread-611199][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:52:25,075 [DEBUG][       Thread-611199][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:52:25,075 [DEBUG][       Thread-611199][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:52:25,076 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:52:25,076 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:52:25,134 [DEBUG][       Thread-611199][   transport.py][1871] : userauth is OK
2025-07-01 16:52:25,135 [DEBUG][       Thread-611199][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:52:25,135 [DEBUG][       Thread-611199][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:52:25,135 [DEBUG][       Thread-611199][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:52:25,135 [DEBUG][       Thread-611199][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:52:25,153 [ INFO][       Thread-611199][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:52:25,154 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:52:25,154 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:52:26,160 [DEBUG][       Thread-611199][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:52:26,160 [DEBUG][       Thread-611199][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:52:26,209 [DEBUG][       Thread-611199][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:52:26,209 [DEBUG][       Thread-611199][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:52:26,223 [DEBUG][       Thread-611199][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:52:26,239 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:52: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-07-01 16:52:26,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-07-01 16:52:26,259 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:52:26,259 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:52:26,260 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:52:26,267 [DEBUG][       Thread-611199][   transport.py][1871] : EOF in transport thread
2025-07-01 16:52:33,769 [DEBUG][Thread-611201 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:52:36,270 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:52:36,270 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:52:36,271 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:52:36,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-07-01 16:52:36,757 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 52, 32), 10.47, 49.13, 0.0, 26.78, 13.26, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:52:36,765 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:52:32
2025-07-01 16:52:36,850 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:52:36,854 [DEBUG][       Thread-611202][   transport.py][1871] : starting thread (client mode): 0x81e6b00
2025-07-01 16:52:36,854 [DEBUG][       Thread-611202][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:52:36,867 [DEBUG][       Thread-611202][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:52:36,867 [ INFO][       Thread-611202][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:52:36,871 [DEBUG][       Thread-611202][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:52:36,871 [DEBUG][       Thread-611202][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:52:36,871 [DEBUG][       Thread-611202][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:52:36,871 [DEBUG][       Thread-611202][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:52:36,871 [DEBUG][       Thread-611202][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:52:36,871 [DEBUG][       Thread-611202][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:52:36,871 [DEBUG][       Thread-611202][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:52:36,871 [DEBUG][       Thread-611202][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:52:36,872 [DEBUG][       Thread-611202][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:52:36,872 [DEBUG][       Thread-611202][   transport.py][1871] : client lang: <none>
2025-07-01 16:52:36,872 [DEBUG][       Thread-611202][   transport.py][1871] : server lang: <none>
2025-07-01 16:52:36,872 [DEBUG][       Thread-611202][   transport.py][1871] : kex follows: False
2025-07-01 16:52:36,872 [DEBUG][       Thread-611202][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:52:36,872 [DEBUG][       Thread-611202][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:52:36,872 [DEBUG][       Thread-611202][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:52:36,872 [DEBUG][       Thread-611202][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:52:36,872 [DEBUG][       Thread-611202][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:52:36,872 [DEBUG][       Thread-611202][   transport.py][1871] : Compression: none
2025-07-01 16:52:36,872 [DEBUG][       Thread-611202][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:52:36,887 [DEBUG][       Thread-611202][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:52:36,888 [DEBUG][       Thread-611202][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:52:36,888 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:52:36,888 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:52:36,889 [DEBUG][       Thread-611202][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:52:36,889 [DEBUG][       Thread-611202][   transport.py][1871] : userauth is OK
2025-07-01 16:52:36,913 [ INFO][       Thread-611202][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:52:36,914 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:52:37,499 [DEBUG][       Thread-611202][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:52:37,499 [DEBUG][       Thread-611202][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:52:37,541 [DEBUG][       Thread-611202][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:52:37,541 [DEBUG][       Thread-611202][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:52:37,545 [DEBUG][       Thread-611202][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:52:37,560 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:52:37,560 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:52:37,562 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:52:37,564 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:52:37,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:52:37,572 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:52:37,572 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:52:37,573 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:52:37,573 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.619730 -999.00  +13.10  21.31     54   +4.00 1 2 1 1 1   887    0 8.68 -23.51 ----- 24.4 21.3 26.2 31.9 14.1 -19.9 13.9 -19.5 13.8 -19.0 14.1 -18.8
2025-07-01 16:52:37,573 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:52:37,573 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:52:37,573 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.619730
2025-07-01 16:52:37,574 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:52:37,574 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:52:37,574 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:52:37,575 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:52:37,575 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:52:37,575 [DEBUG][       Thread-611202][   transport.py][1871] : EOF in transport thread
2025-07-01 16:52:37,575 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:52:32', tmtdew=10.47, humidity=49.13, cloud=0.0, wind=26.78, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:52:24.672', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:52:37,657 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:52:37,666 [DEBUG][       Thread-611205][   transport.py][1871] : starting thread (client mode): 0x8a65e70
2025-07-01 16:52:37,666 [DEBUG][       Thread-611205][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:52:37,681 [DEBUG][       Thread-611205][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:52:37,681 [ INFO][       Thread-611205][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:52:37,689 [DEBUG][       Thread-611205][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:52:37,689 [DEBUG][       Thread-611205][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:52:37,689 [DEBUG][       Thread-611205][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:52:37,689 [DEBUG][       Thread-611205][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:52:37,689 [DEBUG][       Thread-611205][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:52:37,689 [DEBUG][       Thread-611205][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:52:37,689 [DEBUG][       Thread-611205][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:52:37,689 [DEBUG][       Thread-611205][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:52:37,689 [DEBUG][       Thread-611205][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:52:37,689 [DEBUG][       Thread-611205][   transport.py][1871] : client lang: <none>
2025-07-01 16:52:37,689 [DEBUG][       Thread-611205][   transport.py][1871] : server lang: <none>
2025-07-01 16:52:37,689 [DEBUG][       Thread-611205][   transport.py][1871] : kex follows: False
2025-07-01 16:52:37,689 [DEBUG][       Thread-611205][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:52:37,689 [DEBUG][       Thread-611205][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:52:37,689 [DEBUG][       Thread-611205][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:52:37,689 [DEBUG][       Thread-611205][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:52:37,689 [DEBUG][       Thread-611205][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:52:37,689 [DEBUG][       Thread-611205][   transport.py][1871] : Compression: none
2025-07-01 16:52:37,689 [DEBUG][       Thread-611205][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:52:37,745 [DEBUG][       Thread-611205][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:52:37,746 [DEBUG][       Thread-611205][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:52:37,747 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:52:37,747 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:52:37,748 [DEBUG][       Thread-611205][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:52:37,801 [DEBUG][       Thread-611205][   transport.py][1871] : userauth is OK
2025-07-01 16:52:37,802 [DEBUG][       Thread-611205][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:52:37,802 [DEBUG][       Thread-611205][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:52:37,802 [DEBUG][       Thread-611205][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:52:37,802 [DEBUG][       Thread-611205][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:52:37,821 [ INFO][       Thread-611205][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:52:37,821 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:52:37,822 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:52:38,823 [DEBUG][       Thread-611205][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:52:38,823 [DEBUG][       Thread-611205][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:52:38,872 [DEBUG][       Thread-611205][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:52:38,872 [DEBUG][       Thread-611205][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:52:38,881 [DEBUG][       Thread-611205][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:52:38,890 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:52:38,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-07-01 16:52:38,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-07-01 16:52:38,909 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:52:38,909 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:52:38,909 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:52:38,917 [DEBUG][       Thread-611205][   transport.py][1871] : EOF in transport thread
2025-07-01 16:52:39,435 [DEBUG][Thread-611207 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:52:42,785 [DEBUG][Thread-611208 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:52:48,920 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:52:48,920 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:52:48,920 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:52:48,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-07-01 16:52:49,400 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 52, 32), 10.47, 49.13, 0.0, 26.78, 13.26, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:52:49,400 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:52:32
2025-07-01 16:52:49,485 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:52:49,489 [DEBUG][       Thread-611209][   transport.py][1871] : starting thread (client mode): 0x81e5570
2025-07-01 16:52:49,489 [DEBUG][       Thread-611209][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:52:49,506 [DEBUG][       Thread-611209][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:52:49,506 [ INFO][       Thread-611209][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:52:49,509 [DEBUG][       Thread-611209][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:52:49,510 [DEBUG][       Thread-611209][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:52:49,510 [DEBUG][       Thread-611209][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:52:49,510 [DEBUG][       Thread-611209][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:52:49,510 [DEBUG][       Thread-611209][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:52:49,510 [DEBUG][       Thread-611209][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:52:49,510 [DEBUG][       Thread-611209][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:52:49,510 [DEBUG][       Thread-611209][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:52:49,510 [DEBUG][       Thread-611209][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:52:49,510 [DEBUG][       Thread-611209][   transport.py][1871] : client lang: <none>
2025-07-01 16:52:49,510 [DEBUG][       Thread-611209][   transport.py][1871] : server lang: <none>
2025-07-01 16:52:49,510 [DEBUG][       Thread-611209][   transport.py][1871] : kex follows: False
2025-07-01 16:52:49,510 [DEBUG][       Thread-611209][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:52:49,510 [DEBUG][       Thread-611209][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:52:49,510 [DEBUG][       Thread-611209][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:52:49,510 [DEBUG][       Thread-611209][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:52:49,510 [DEBUG][       Thread-611209][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:52:49,510 [DEBUG][       Thread-611209][   transport.py][1871] : Compression: none
2025-07-01 16:52:49,510 [DEBUG][       Thread-611209][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:52:49,517 [DEBUG][       Thread-611209][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:52:49,518 [DEBUG][       Thread-611209][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:52:49,518 [DEBUG][       Thread-611209][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:52:49,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:52:49,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:52:49,519 [DEBUG][       Thread-611209][   transport.py][1871] : userauth is OK
2025-07-01 16:52:49,532 [ INFO][       Thread-611209][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:52:49,532 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:52:50,333 [DEBUG][       Thread-611209][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:52:50,333 [DEBUG][       Thread-611209][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:52:50,377 [DEBUG][       Thread-611209][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:52:50,377 [DEBUG][       Thread-611209][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:52:50,381 [DEBUG][       Thread-611209][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:52:50,394 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:52:50,394 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:52:50,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:52:50,398 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:52:50,404 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:52:50,406 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:52:50,406 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:52:50,406 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:52:50,407 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.619730 -999.00  +13.10  21.31     54   +4.00 1 2 1 1 1   887    0 8.68 -23.51 ----- 24.4 21.3 26.2 31.9 14.1 -19.9 13.9 -19.5 13.8 -19.0 14.1 -18.8
2025-07-01 16:52:50,407 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:52:50,407 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:52:50,407 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.619730
2025-07-01 16:52:50,407 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:52:50,408 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:52:50,408 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:52:50,408 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:52:50,408 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:52:50,408 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:52:32', tmtdew=10.47, humidity=49.13, cloud=0.0, wind=26.78, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:52:24.672', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:52:50,408 [DEBUG][       Thread-611209][   transport.py][1871] : EOF in transport thread
2025-07-01 16:52:50,492 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:52:50,503 [DEBUG][       Thread-611212][   transport.py][1871] : starting thread (client mode): 0x818fe50
2025-07-01 16:52:50,503 [DEBUG][       Thread-611212][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:52:50,519 [DEBUG][       Thread-611212][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:52:50,519 [ INFO][       Thread-611212][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:52:50,526 [DEBUG][       Thread-611212][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:52:50,526 [DEBUG][       Thread-611212][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:52:50,526 [DEBUG][       Thread-611212][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:52:50,526 [DEBUG][       Thread-611212][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:52:50,527 [DEBUG][       Thread-611212][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:52:50,527 [DEBUG][       Thread-611212][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:52:50,527 [DEBUG][       Thread-611212][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:52:50,527 [DEBUG][       Thread-611212][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:52:50,527 [DEBUG][       Thread-611212][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:52:50,527 [DEBUG][       Thread-611212][   transport.py][1871] : client lang: <none>
2025-07-01 16:52:50,527 [DEBUG][       Thread-611212][   transport.py][1871] : server lang: <none>
2025-07-01 16:52:50,527 [DEBUG][       Thread-611212][   transport.py][1871] : kex follows: False
2025-07-01 16:52:50,527 [DEBUG][       Thread-611212][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:52:50,527 [DEBUG][       Thread-611212][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:52:50,527 [DEBUG][       Thread-611212][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:52:50,527 [DEBUG][       Thread-611212][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:52:50,527 [DEBUG][       Thread-611212][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:52:50,527 [DEBUG][       Thread-611212][   transport.py][1871] : Compression: none
2025-07-01 16:52:50,527 [DEBUG][       Thread-611212][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:52:50,594 [DEBUG][       Thread-611212][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:52:50,595 [DEBUG][       Thread-611212][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:52:50,595 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:52:50,596 [DEBUG][       Thread-611212][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:52:50,597 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:52:50,653 [DEBUG][       Thread-611212][   transport.py][1871] : userauth is OK
2025-07-01 16:52:50,653 [DEBUG][       Thread-611212][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:52:50,654 [DEBUG][       Thread-611212][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:52:50,654 [DEBUG][       Thread-611212][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:52:50,654 [DEBUG][       Thread-611212][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:52:50,672 [ INFO][       Thread-611212][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:52:50,673 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:52:50,673 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:52:51,680 [DEBUG][       Thread-611212][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:52:51,680 [DEBUG][       Thread-611212][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:52:51,728 [DEBUG][       Thread-611212][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:52:51,728 [DEBUG][       Thread-611212][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:52:51,738 [DEBUG][       Thread-611212][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:52:51,749 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:52:51,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-07-01 16:52:51,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-07-01 16:52:51,768 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:52:51,768 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:52:51,768 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:52:51,776 [DEBUG][       Thread-611212][   transport.py][1871] : EOF in transport thread
2025-07-01 16:52:51,821 [DEBUG][Thread-611214 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:53:00,844 [DEBUG][Thread-611215 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:53:01,777 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:53:01,777 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:53:01,777 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:53:01,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-07-01 16:53:02,241 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 52, 32), 10.47, 49.13, 0.0, 26.78, 13.26, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:53:02,241 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:52:32
2025-07-01 16:53:02,327 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:53:02,332 [DEBUG][       Thread-611216][   transport.py][1871] : starting thread (client mode): 0x818caf0
2025-07-01 16:53:02,332 [DEBUG][       Thread-611216][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:53:02,352 [DEBUG][       Thread-611216][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:53:02,353 [ INFO][       Thread-611216][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:53:02,356 [DEBUG][       Thread-611216][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:53:02,356 [DEBUG][       Thread-611216][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:53:02,356 [DEBUG][       Thread-611216][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:53:02,356 [DEBUG][       Thread-611216][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:53:02,356 [DEBUG][       Thread-611216][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:53:02,356 [DEBUG][       Thread-611216][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:53:02,356 [DEBUG][       Thread-611216][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:53:02,356 [DEBUG][       Thread-611216][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:53:02,356 [DEBUG][       Thread-611216][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:53:02,356 [DEBUG][       Thread-611216][   transport.py][1871] : client lang: <none>
2025-07-01 16:53:02,356 [DEBUG][       Thread-611216][   transport.py][1871] : server lang: <none>
2025-07-01 16:53:02,356 [DEBUG][       Thread-611216][   transport.py][1871] : kex follows: False
2025-07-01 16:53:02,356 [DEBUG][       Thread-611216][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:53:02,356 [DEBUG][       Thread-611216][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:53:02,356 [DEBUG][       Thread-611216][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:53:02,357 [DEBUG][       Thread-611216][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:53:02,357 [DEBUG][       Thread-611216][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:53:02,357 [DEBUG][       Thread-611216][   transport.py][1871] : Compression: none
2025-07-01 16:53:02,357 [DEBUG][       Thread-611216][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:53:02,375 [DEBUG][       Thread-611216][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:53:02,375 [DEBUG][       Thread-611216][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:53:02,376 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:53:02,376 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:53:02,377 [DEBUG][       Thread-611216][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:53:02,377 [DEBUG][       Thread-611216][   transport.py][1871] : userauth is OK
2025-07-01 16:53:02,401 [ INFO][       Thread-611216][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:53:02,402 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:53:03,209 [DEBUG][       Thread-611216][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:53:03,210 [DEBUG][       Thread-611216][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:53:03,253 [DEBUG][       Thread-611216][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:53:03,253 [DEBUG][       Thread-611216][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:53:03,257 [DEBUG][       Thread-611216][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:53:03,268 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:53:03,269 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:53:03,271 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:53:03,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:53:03,278 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:53:03,279 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:53:03,279 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:53:03,280 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:53:03,280 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.619730 -999.00  +13.10  21.31     54   +4.00 1 2 1 1 1   887    0 8.68 -23.51 ----- 24.4 21.3 26.2 31.9 14.1 -19.9 13.9 -19.5 13.8 -19.0 14.1 -18.8
2025-07-01 16:53:03,280 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:53:03,280 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:53:03,280 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.619730
2025-07-01 16:53:03,281 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:53:03,281 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:53:03,281 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:53:03,281 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:53:03,281 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:53:03,282 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:52:32', tmtdew=10.47, humidity=49.13, cloud=0.0, wind=26.78, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:52:24.672', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:53:03,282 [DEBUG][       Thread-611216][   transport.py][1871] : EOF in transport thread
2025-07-01 16:53:03,365 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:53:03,375 [DEBUG][       Thread-611219][   transport.py][1871] : starting thread (client mode): 0x83c8430
2025-07-01 16:53:03,375 [DEBUG][       Thread-611219][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:53:03,389 [DEBUG][       Thread-611219][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:53:03,389 [ INFO][       Thread-611219][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:53:03,397 [DEBUG][       Thread-611219][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:53:03,397 [DEBUG][       Thread-611219][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:53:03,397 [DEBUG][       Thread-611219][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:53:03,397 [DEBUG][       Thread-611219][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:53:03,397 [DEBUG][       Thread-611219][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:53:03,397 [DEBUG][       Thread-611219][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:53:03,397 [DEBUG][       Thread-611219][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:53:03,397 [DEBUG][       Thread-611219][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:53:03,397 [DEBUG][       Thread-611219][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:53:03,397 [DEBUG][       Thread-611219][   transport.py][1871] : client lang: <none>
2025-07-01 16:53:03,397 [DEBUG][       Thread-611219][   transport.py][1871] : server lang: <none>
2025-07-01 16:53:03,397 [DEBUG][       Thread-611219][   transport.py][1871] : kex follows: False
2025-07-01 16:53:03,397 [DEBUG][       Thread-611219][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:53:03,398 [DEBUG][       Thread-611219][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:53:03,398 [DEBUG][       Thread-611219][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:53:03,398 [DEBUG][       Thread-611219][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:53:03,398 [DEBUG][       Thread-611219][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:53:03,398 [DEBUG][       Thread-611219][   transport.py][1871] : Compression: none
2025-07-01 16:53:03,398 [DEBUG][       Thread-611219][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:53:03,461 [DEBUG][       Thread-611219][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:53:03,461 [DEBUG][       Thread-611219][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:53:03,462 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:53:03,462 [DEBUG][       Thread-611219][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:53:03,463 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:53:03,517 [DEBUG][       Thread-611219][   transport.py][1871] : userauth is OK
2025-07-01 16:53:03,517 [DEBUG][       Thread-611219][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:53:03,517 [DEBUG][       Thread-611219][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:53:03,517 [DEBUG][       Thread-611219][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:53:03,517 [DEBUG][       Thread-611219][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:53:03,536 [ INFO][       Thread-611219][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:53:03,537 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:53:03,537 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:53:04,563 [DEBUG][       Thread-611219][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:53:04,563 [DEBUG][       Thread-611219][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:53:04,612 [DEBUG][       Thread-611219][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:53:04,612 [DEBUG][       Thread-611219][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:53:04,621 [DEBUG][       Thread-611219][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:53:04,630 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:53:04,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-07-01 16:53:04,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-07-01 16:53:04,650 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:53:04,650 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:53:04,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:53:04,658 [DEBUG][       Thread-611219][   transport.py][1871] : EOF in transport thread
2025-07-01 16:53:09,864 [DEBUG][Thread-611221 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:53:14,661 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:53:14,661 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:53:14,661 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:53:14,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-07-01 16:53:15,128 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 53, 4), 10.46, 49.17, 0.0, 21.93, 13.28, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:53:15,128 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:53:04
2025-07-01 16:53:15,211 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:53:15,215 [DEBUG][       Thread-611222][   transport.py][1871] : starting thread (client mode): 0x818f3d0
2025-07-01 16:53:15,215 [DEBUG][       Thread-611222][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:53:15,235 [DEBUG][       Thread-611222][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:53:15,235 [ INFO][       Thread-611222][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:53:15,238 [DEBUG][       Thread-611222][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:53:15,238 [DEBUG][       Thread-611222][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:53:15,238 [DEBUG][       Thread-611222][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:53:15,238 [DEBUG][       Thread-611222][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:53:15,239 [DEBUG][       Thread-611222][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:53:15,239 [DEBUG][       Thread-611222][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:53:15,239 [DEBUG][       Thread-611222][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:53:15,239 [DEBUG][       Thread-611222][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:53:15,239 [DEBUG][       Thread-611222][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:53:15,239 [DEBUG][       Thread-611222][   transport.py][1871] : client lang: <none>
2025-07-01 16:53:15,239 [DEBUG][       Thread-611222][   transport.py][1871] : server lang: <none>
2025-07-01 16:53:15,239 [DEBUG][       Thread-611222][   transport.py][1871] : kex follows: False
2025-07-01 16:53:15,239 [DEBUG][       Thread-611222][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:53:15,239 [DEBUG][       Thread-611222][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:53:15,239 [DEBUG][       Thread-611222][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:53:15,239 [DEBUG][       Thread-611222][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:53:15,239 [DEBUG][       Thread-611222][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:53:15,239 [DEBUG][       Thread-611222][   transport.py][1871] : Compression: none
2025-07-01 16:53:15,239 [DEBUG][       Thread-611222][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:53:15,255 [DEBUG][       Thread-611222][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:53:15,256 [DEBUG][       Thread-611222][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:53:15,256 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:53:15,256 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:53:15,257 [DEBUG][       Thread-611222][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:53:15,257 [DEBUG][       Thread-611222][   transport.py][1871] : userauth is OK
2025-07-01 16:53:15,270 [ INFO][       Thread-611222][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:53:15,271 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:53:15,865 [DEBUG][       Thread-611222][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:53:15,865 [DEBUG][       Thread-611222][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:53:15,909 [DEBUG][       Thread-611222][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:53:15,909 [DEBUG][       Thread-611222][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:53:15,912 [DEBUG][       Thread-611222][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:53:15,924 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:53:15,925 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:53:15,927 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:53:15,929 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:53:15,934 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:53:15,936 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:53:15,936 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:53:15,937 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:53:15,937 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.620077 -999.00  +13.10  30.56     54   +4.00 1 2 2 1 1   887    0 8.57 -22.93 ----- 25.6 30.6 34.8 36.4 14.1 -19.9 13.9 -19.7 13.7 -19.0 14.1 -18.9
2025-07-01 16:53:15,937 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:53:15,937 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:53:15,937 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.620077
2025-07-01 16:53:15,937 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:53:15,938 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:53:15,938 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:53:15,938 [DEBUG][       Thread-611222][   transport.py][1871] : EOF in transport thread
2025-07-01 16:53:15,938 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:53:15,939 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:53:15,939 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:53:04', tmtdew=10.46, humidity=49.17, cloud=0.0, wind=21.93, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:52:54.653', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:53:16,018 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:53:16,030 [DEBUG][       Thread-611225][   transport.py][1871] : starting thread (client mode): 0x81c9120
2025-07-01 16:53:16,030 [DEBUG][       Thread-611225][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:53:16,046 [DEBUG][       Thread-611225][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:53:16,046 [ INFO][       Thread-611225][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:53:16,054 [DEBUG][       Thread-611225][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:53:16,054 [DEBUG][       Thread-611225][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:53:16,054 [DEBUG][       Thread-611225][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:53:16,054 [DEBUG][       Thread-611225][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:53:16,054 [DEBUG][       Thread-611225][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:53:16,054 [DEBUG][       Thread-611225][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:53:16,054 [DEBUG][       Thread-611225][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:53:16,054 [DEBUG][       Thread-611225][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:53:16,054 [DEBUG][       Thread-611225][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:53:16,054 [DEBUG][       Thread-611225][   transport.py][1871] : client lang: <none>
2025-07-01 16:53:16,054 [DEBUG][       Thread-611225][   transport.py][1871] : server lang: <none>
2025-07-01 16:53:16,054 [DEBUG][       Thread-611225][   transport.py][1871] : kex follows: False
2025-07-01 16:53:16,054 [DEBUG][       Thread-611225][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:53:16,054 [DEBUG][       Thread-611225][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:53:16,054 [DEBUG][       Thread-611225][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:53:16,055 [DEBUG][       Thread-611225][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:53:16,055 [DEBUG][       Thread-611225][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:53:16,055 [DEBUG][       Thread-611225][   transport.py][1871] : Compression: none
2025-07-01 16:53:16,055 [DEBUG][       Thread-611225][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:53:16,112 [DEBUG][       Thread-611225][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:53:16,112 [DEBUG][       Thread-611225][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:53:16,113 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:53:16,113 [DEBUG][       Thread-611225][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:53:16,114 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:53:16,168 [DEBUG][       Thread-611225][   transport.py][1871] : userauth is OK
2025-07-01 16:53:16,169 [DEBUG][       Thread-611225][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:53:16,169 [DEBUG][       Thread-611225][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:53:16,169 [DEBUG][       Thread-611225][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:53:16,169 [DEBUG][       Thread-611225][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:53:16,193 [ INFO][       Thread-611225][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:53:16,194 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:53:16,194 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:53:17,263 [DEBUG][       Thread-611225][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:53:17,264 [DEBUG][       Thread-611225][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:53:17,312 [DEBUG][       Thread-611225][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:53:17,312 [DEBUG][       Thread-611225][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:53:17,321 [DEBUG][       Thread-611225][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:53:17,331 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:53:17,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-07-01 16:53:17,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-07-01 16:53:17,349 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:53:17,349 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:53:17,350 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:53:17,358 [DEBUG][       Thread-611225][   transport.py][1871] : EOF in transport thread
2025-07-01 16:53:18,885 [DEBUG][Thread-611227 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:53:27,360 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:53:27,361 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:53:27,361 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:53:27,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-07-01 16:53:27,826 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 53, 4), 10.46, 49.17, 0.0, 21.93, 13.28, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:53:27,826 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:53:04
2025-07-01 16:53:27,909 [DEBUG][Thread-611228 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:53:27,911 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:53:27,918 [DEBUG][       Thread-611229][   transport.py][1871] : starting thread (client mode): 0x82b2d40
2025-07-01 16:53:27,918 [DEBUG][       Thread-611229][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:53:27,939 [DEBUG][       Thread-611229][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:53:27,939 [ INFO][       Thread-611229][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:53:27,941 [DEBUG][       Thread-611229][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:53:27,941 [DEBUG][       Thread-611229][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:53:27,941 [DEBUG][       Thread-611229][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:53:27,941 [DEBUG][       Thread-611229][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:53:27,941 [DEBUG][       Thread-611229][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:53:27,941 [DEBUG][       Thread-611229][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:53:27,941 [DEBUG][       Thread-611229][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:53:27,941 [DEBUG][       Thread-611229][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:53:27,941 [DEBUG][       Thread-611229][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:53:27,941 [DEBUG][       Thread-611229][   transport.py][1871] : client lang: <none>
2025-07-01 16:53:27,941 [DEBUG][       Thread-611229][   transport.py][1871] : server lang: <none>
2025-07-01 16:53:27,941 [DEBUG][       Thread-611229][   transport.py][1871] : kex follows: False
2025-07-01 16:53:27,941 [DEBUG][       Thread-611229][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:53:27,941 [DEBUG][       Thread-611229][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:53:27,941 [DEBUG][       Thread-611229][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:53:27,941 [DEBUG][       Thread-611229][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:53:27,941 [DEBUG][       Thread-611229][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:53:27,941 [DEBUG][       Thread-611229][   transport.py][1871] : Compression: none
2025-07-01 16:53:27,941 [DEBUG][       Thread-611229][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:53:27,950 [DEBUG][       Thread-611229][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:53:27,950 [DEBUG][       Thread-611229][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:53:27,951 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:53:27,951 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:53:27,951 [DEBUG][       Thread-611229][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:53:27,952 [DEBUG][       Thread-611229][   transport.py][1871] : userauth is OK
2025-07-01 16:53:27,977 [ INFO][       Thread-611229][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:53:27,977 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:53:28,538 [DEBUG][       Thread-611229][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:53:28,539 [DEBUG][       Thread-611229][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:53:28,581 [DEBUG][       Thread-611229][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:53:28,581 [DEBUG][       Thread-611229][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:53:28,584 [DEBUG][       Thread-611229][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:53:28,590 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:53:28,591 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:53:28,592 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:53:28,594 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:53:28,598 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:53:28,600 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:53:28,600 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:53:28,601 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:53:28,601 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.620077 -999.00  +13.10  30.56     54   +4.00 1 2 2 1 1   887    0 8.57 -22.93 ----- 25.6 30.6 34.8 36.4 14.1 -19.9 13.9 -19.7 13.7 -19.0 14.1 -18.9
2025-07-01 16:53:28,601 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:53:28,601 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:53:28,601 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.620077
2025-07-01 16:53:28,602 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:53:28,602 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:53:28,602 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:53:28,602 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:53:28,602 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:53:28,603 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:53:04', tmtdew=10.46, humidity=49.17, cloud=0.0, wind=21.93, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:52:54.653', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:53:28,603 [DEBUG][       Thread-611229][   transport.py][1871] : EOF in transport thread
2025-07-01 16:53:28,686 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:53:28,699 [DEBUG][       Thread-611232][   transport.py][1871] : starting thread (client mode): 0x81c8640
2025-07-01 16:53:28,699 [DEBUG][       Thread-611232][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:53:28,715 [DEBUG][       Thread-611232][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:53:28,715 [ INFO][       Thread-611232][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:53:28,722 [DEBUG][       Thread-611232][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:53:28,723 [DEBUG][       Thread-611232][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:53:28,723 [DEBUG][       Thread-611232][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:53:28,723 [DEBUG][       Thread-611232][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:53:28,723 [DEBUG][       Thread-611232][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:53:28,723 [DEBUG][       Thread-611232][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:53:28,723 [DEBUG][       Thread-611232][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:53:28,723 [DEBUG][       Thread-611232][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:53:28,723 [DEBUG][       Thread-611232][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:53:28,723 [DEBUG][       Thread-611232][   transport.py][1871] : client lang: <none>
2025-07-01 16:53:28,723 [DEBUG][       Thread-611232][   transport.py][1871] : server lang: <none>
2025-07-01 16:53:28,723 [DEBUG][       Thread-611232][   transport.py][1871] : kex follows: False
2025-07-01 16:53:28,723 [DEBUG][       Thread-611232][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:53:28,723 [DEBUG][       Thread-611232][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:53:28,723 [DEBUG][       Thread-611232][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:53:28,723 [DEBUG][       Thread-611232][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:53:28,723 [DEBUG][       Thread-611232][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:53:28,723 [DEBUG][       Thread-611232][   transport.py][1871] : Compression: none
2025-07-01 16:53:28,724 [DEBUG][       Thread-611232][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:53:28,779 [DEBUG][       Thread-611232][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:53:28,780 [DEBUG][       Thread-611232][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:53:28,781 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:53:28,781 [DEBUG][       Thread-611232][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:53:28,782 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:53:28,836 [DEBUG][       Thread-611232][   transport.py][1871] : userauth is OK
2025-07-01 16:53:28,837 [DEBUG][       Thread-611232][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:53:28,837 [DEBUG][       Thread-611232][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:53:28,837 [DEBUG][       Thread-611232][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:53:28,837 [DEBUG][       Thread-611232][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:53:28,856 [ INFO][       Thread-611232][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:53:28,856 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:53:28,857 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:53:29,889 [DEBUG][       Thread-611232][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:53:29,890 [DEBUG][       Thread-611232][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:53:29,940 [DEBUG][       Thread-611232][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:53:29,940 [DEBUG][       Thread-611232][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:53:29,950 [DEBUG][       Thread-611232][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:53:29,959 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:53:29,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-07-01 16:53:29,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-07-01 16:53:29,977 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:53:29,977 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:53:29,978 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:53:29,986 [DEBUG][       Thread-611232][   transport.py][1871] : EOF in transport thread
2025-07-01 16:53:36,927 [DEBUG][Thread-611234 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:53:39,466 [DEBUG][Thread-611235 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:53:39,984 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:53:39,984 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:53:39,985 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:53:39,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-07-01 16:53:40,456 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 53, 36), 10.45, 49.19, 0.0, 26.11, 13.29, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:53:40,456 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:53:36
2025-07-01 16:53:40,542 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:53:40,546 [DEBUG][       Thread-611236][   transport.py][1871] : starting thread (client mode): 0x82b3220
2025-07-01 16:53:40,546 [DEBUG][       Thread-611236][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:53:40,566 [DEBUG][       Thread-611236][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:53:40,566 [ INFO][       Thread-611236][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:53:40,570 [DEBUG][       Thread-611236][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:53:40,570 [DEBUG][       Thread-611236][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:53:40,570 [DEBUG][       Thread-611236][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:53:40,570 [DEBUG][       Thread-611236][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:53:40,570 [DEBUG][       Thread-611236][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:53:40,570 [DEBUG][       Thread-611236][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:53:40,570 [DEBUG][       Thread-611236][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:53:40,570 [DEBUG][       Thread-611236][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:53:40,570 [DEBUG][       Thread-611236][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:53:40,570 [DEBUG][       Thread-611236][   transport.py][1871] : client lang: <none>
2025-07-01 16:53:40,570 [DEBUG][       Thread-611236][   transport.py][1871] : server lang: <none>
2025-07-01 16:53:40,570 [DEBUG][       Thread-611236][   transport.py][1871] : kex follows: False
2025-07-01 16:53:40,570 [DEBUG][       Thread-611236][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:53:40,570 [DEBUG][       Thread-611236][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:53:40,570 [DEBUG][       Thread-611236][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:53:40,570 [DEBUG][       Thread-611236][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:53:40,570 [DEBUG][       Thread-611236][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:53:40,570 [DEBUG][       Thread-611236][   transport.py][1871] : Compression: none
2025-07-01 16:53:40,570 [DEBUG][       Thread-611236][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:53:40,586 [DEBUG][       Thread-611236][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:53:40,586 [DEBUG][       Thread-611236][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:53:40,587 [DEBUG][       Thread-611236][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:53:40,587 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:53:40,587 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:53:40,588 [DEBUG][       Thread-611236][   transport.py][1871] : userauth is OK
2025-07-01 16:53:40,602 [ INFO][       Thread-611236][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:53:40,602 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:53:41,182 [DEBUG][       Thread-611236][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:53:41,182 [DEBUG][       Thread-611236][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:53:41,225 [DEBUG][       Thread-611236][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:53:41,225 [DEBUG][       Thread-611236][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:53:41,232 [DEBUG][       Thread-611236][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:53:41,244 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:53:41,244 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:53:41,245 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:53:41,247 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:53:41,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:53:41,254 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:53:41,254 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:53:41,255 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:53:41,255 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.620077 -999.00  +13.10  30.56     54   +4.00 1 2 2 1 1   887    0 8.57 -22.93 ----- 25.6 30.6 34.8 36.4 14.1 -19.9 13.9 -19.7 13.7 -19.0 14.1 -18.9
2025-07-01 16:53:41,255 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:53:41,255 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:53:41,255 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.620077
2025-07-01 16:53:41,256 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:53:41,256 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:53:41,256 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:53:41,256 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:53:41,257 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:53:41,257 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:53:36', tmtdew=10.45, humidity=49.19, cloud=0.0, wind=26.11, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:52:54.653', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:53:41,257 [DEBUG][       Thread-611236][   transport.py][1871] : EOF in transport thread
2025-07-01 16:53:41,340 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:53:41,350 [DEBUG][       Thread-611239][   transport.py][1871] : starting thread (client mode): 0x75aa650
2025-07-01 16:53:41,350 [DEBUG][       Thread-611239][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:53:41,365 [DEBUG][       Thread-611239][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:53:41,365 [ INFO][       Thread-611239][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:53:41,372 [DEBUG][       Thread-611239][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:53:41,372 [DEBUG][       Thread-611239][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:53:41,372 [DEBUG][       Thread-611239][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:53:41,372 [DEBUG][       Thread-611239][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:53:41,372 [DEBUG][       Thread-611239][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:53:41,372 [DEBUG][       Thread-611239][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:53:41,373 [DEBUG][       Thread-611239][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:53:41,373 [DEBUG][       Thread-611239][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:53:41,373 [DEBUG][       Thread-611239][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:53:41,373 [DEBUG][       Thread-611239][   transport.py][1871] : client lang: <none>
2025-07-01 16:53:41,373 [DEBUG][       Thread-611239][   transport.py][1871] : server lang: <none>
2025-07-01 16:53:41,373 [DEBUG][       Thread-611239][   transport.py][1871] : kex follows: False
2025-07-01 16:53:41,373 [DEBUG][       Thread-611239][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:53:41,373 [DEBUG][       Thread-611239][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:53:41,373 [DEBUG][       Thread-611239][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:53:41,373 [DEBUG][       Thread-611239][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:53:41,373 [DEBUG][       Thread-611239][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:53:41,373 [DEBUG][       Thread-611239][   transport.py][1871] : Compression: none
2025-07-01 16:53:41,373 [DEBUG][       Thread-611239][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:53:41,431 [DEBUG][       Thread-611239][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:53:41,431 [DEBUG][       Thread-611239][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:53:41,432 [DEBUG][       Thread-611239][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:53:41,432 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:53:41,433 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:53:41,491 [DEBUG][       Thread-611239][   transport.py][1871] : userauth is OK
2025-07-01 16:53:41,492 [DEBUG][       Thread-611239][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:53:41,492 [DEBUG][       Thread-611239][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:53:41,492 [DEBUG][       Thread-611239][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:53:41,492 [DEBUG][       Thread-611239][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:53:41,510 [ INFO][       Thread-611239][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:53:41,511 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:53:41,511 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:53:42,555 [DEBUG][       Thread-611239][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:53:42,556 [DEBUG][       Thread-611239][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:53:42,604 [DEBUG][       Thread-611239][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:53:42,604 [DEBUG][       Thread-611239][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:53:42,615 [DEBUG][       Thread-611239][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:53:42,625 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:53:42,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-07-01 16:53:42,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-07-01 16:53:42,644 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:53:42,644 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:53:42,645 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:53:42,653 [DEBUG][       Thread-611239][   transport.py][1871] : EOF in transport thread
2025-07-01 16:53:45,947 [DEBUG][Thread-611241 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:53:52,655 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:53:52,656 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:53:52,656 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:53:52,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-07-01 16:53:53,131 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 53, 36), 10.45, 49.19, 0.0, 26.11, 13.29, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:53:53,131 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:53:36
2025-07-01 16:53:53,217 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:53:53,223 [DEBUG][       Thread-611242][   transport.py][1871] : starting thread (client mode): 0x82b1450
2025-07-01 16:53:53,223 [DEBUG][       Thread-611242][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:53:53,245 [DEBUG][       Thread-611242][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:53:53,245 [ INFO][       Thread-611242][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:53:53,249 [DEBUG][       Thread-611242][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:53:53,249 [DEBUG][       Thread-611242][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:53:53,249 [DEBUG][       Thread-611242][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:53:53,249 [DEBUG][       Thread-611242][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:53:53,249 [DEBUG][       Thread-611242][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:53:53,249 [DEBUG][       Thread-611242][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:53:53,249 [DEBUG][       Thread-611242][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:53:53,249 [DEBUG][       Thread-611242][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:53:53,249 [DEBUG][       Thread-611242][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:53:53,249 [DEBUG][       Thread-611242][   transport.py][1871] : client lang: <none>
2025-07-01 16:53:53,249 [DEBUG][       Thread-611242][   transport.py][1871] : server lang: <none>
2025-07-01 16:53:53,249 [DEBUG][       Thread-611242][   transport.py][1871] : kex follows: False
2025-07-01 16:53:53,249 [DEBUG][       Thread-611242][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:53:53,249 [DEBUG][       Thread-611242][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:53:53,249 [DEBUG][       Thread-611242][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:53:53,249 [DEBUG][       Thread-611242][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:53:53,249 [DEBUG][       Thread-611242][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:53:53,249 [DEBUG][       Thread-611242][   transport.py][1871] : Compression: none
2025-07-01 16:53:53,249 [DEBUG][       Thread-611242][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:53:53,266 [DEBUG][       Thread-611242][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:53:53,266 [DEBUG][       Thread-611242][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:53:53,267 [DEBUG][       Thread-611242][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:53:53,267 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:53:53,267 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:53:53,268 [DEBUG][       Thread-611242][   transport.py][1871] : userauth is OK
2025-07-01 16:53:53,294 [ INFO][       Thread-611242][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:53:53,294 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:53:53,884 [DEBUG][       Thread-611242][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:53:53,884 [DEBUG][       Thread-611242][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:53:53,929 [DEBUG][       Thread-611242][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:53:53,929 [DEBUG][       Thread-611242][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:53:53,931 [DEBUG][       Thread-611242][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:53:53,944 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:53:53,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:53:53,946 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:53:53,948 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:53:53,955 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:53:53,957 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:53:53,957 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:53:53,958 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:53:53,958 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.620424 -999.00  +13.10  33.74     53   +3.90 1 2 2 1 1   887    0 8.52 -23.10 ----- 36.2 33.7 15.8 37.9 14.1 -19.8 13.9 -19.4 13.8 -18.9 14.1 -19.1
2025-07-01 16:53:53,958 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:53:53,958 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:53:53,958 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.620424
2025-07-01 16:53:53,958 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:53:53,959 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:53:53,959 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:53:53,959 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:53:53,959 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:53:53,959 [DEBUG][       Thread-611242][   transport.py][1871] : EOF in transport thread
2025-07-01 16:53:53,959 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:53:36', tmtdew=10.45, humidity=49.19, cloud=0.0, wind=26.11, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:53:24.634', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:53:54,043 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:53:54,055 [DEBUG][       Thread-611245][   transport.py][1871] : starting thread (client mode): 0x81a7d30
2025-07-01 16:53:54,055 [DEBUG][       Thread-611245][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:53:54,075 [DEBUG][       Thread-611245][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:53:54,075 [ INFO][       Thread-611245][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:53:54,083 [DEBUG][       Thread-611245][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:53:54,083 [DEBUG][       Thread-611245][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:53:54,083 [DEBUG][       Thread-611245][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:53:54,083 [DEBUG][       Thread-611245][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:53:54,083 [DEBUG][       Thread-611245][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:53:54,083 [DEBUG][       Thread-611245][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:53:54,083 [DEBUG][       Thread-611245][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:53:54,083 [DEBUG][       Thread-611245][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:53:54,083 [DEBUG][       Thread-611245][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:53:54,083 [DEBUG][       Thread-611245][   transport.py][1871] : client lang: <none>
2025-07-01 16:53:54,083 [DEBUG][       Thread-611245][   transport.py][1871] : server lang: <none>
2025-07-01 16:53:54,083 [DEBUG][       Thread-611245][   transport.py][1871] : kex follows: False
2025-07-01 16:53:54,083 [DEBUG][       Thread-611245][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:53:54,084 [DEBUG][       Thread-611245][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:53:54,084 [DEBUG][       Thread-611245][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:53:54,084 [DEBUG][       Thread-611245][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:53:54,084 [DEBUG][       Thread-611245][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:53:54,084 [DEBUG][       Thread-611245][   transport.py][1871] : Compression: none
2025-07-01 16:53:54,084 [DEBUG][       Thread-611245][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:53:54,141 [DEBUG][       Thread-611245][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:53:54,142 [DEBUG][       Thread-611245][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:53:54,142 [DEBUG][       Thread-611245][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:53:54,142 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:53:54,142 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:53:54,199 [DEBUG][       Thread-611245][   transport.py][1871] : userauth is OK
2025-07-01 16:53:54,199 [DEBUG][       Thread-611245][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:53:54,199 [DEBUG][       Thread-611245][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:53:54,199 [DEBUG][       Thread-611245][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:53:54,199 [DEBUG][       Thread-611245][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:53:54,213 [ INFO][       Thread-611245][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:53:54,213 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:53:54,213 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:53:54,988 [DEBUG][Thread-611247 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:53:55,244 [DEBUG][       Thread-611245][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:53:55,245 [DEBUG][       Thread-611245][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:53:55,296 [DEBUG][       Thread-611245][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:53:55,296 [DEBUG][       Thread-611245][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:53:55,305 [DEBUG][       Thread-611245][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:53:55,314 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:53:55,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-07-01 16:53:55,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-07-01 16:53:55,332 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:53:55,332 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:53:55,333 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:53:55,341 [DEBUG][       Thread-611245][   transport.py][1871] : EOF in transport thread
2025-07-01 16:54:04,009 [DEBUG][Thread-611248 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:54:05,343 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:54:05,343 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:54:05,344 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:54:05,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-07-01 16:54:05,805 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 53, 36), 10.45, 49.19, 0.0, 26.11, 13.29, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:54:05,805 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:53:36
2025-07-01 16:54:05,889 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:54:05,893 [DEBUG][       Thread-611249][   transport.py][1871] : starting thread (client mode): 0x82b15d0
2025-07-01 16:54:05,893 [DEBUG][       Thread-611249][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:54:05,914 [DEBUG][       Thread-611249][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:54:05,914 [ INFO][       Thread-611249][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:54:05,918 [DEBUG][       Thread-611249][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:54:05,918 [DEBUG][       Thread-611249][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:54:05,918 [DEBUG][       Thread-611249][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:54:05,918 [DEBUG][       Thread-611249][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:54:05,918 [DEBUG][       Thread-611249][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:54:05,918 [DEBUG][       Thread-611249][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:54:05,918 [DEBUG][       Thread-611249][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:54:05,918 [DEBUG][       Thread-611249][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:54:05,918 [DEBUG][       Thread-611249][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:54:05,918 [DEBUG][       Thread-611249][   transport.py][1871] : client lang: <none>
2025-07-01 16:54:05,918 [DEBUG][       Thread-611249][   transport.py][1871] : server lang: <none>
2025-07-01 16:54:05,918 [DEBUG][       Thread-611249][   transport.py][1871] : kex follows: False
2025-07-01 16:54:05,918 [DEBUG][       Thread-611249][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:54:05,918 [DEBUG][       Thread-611249][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:54:05,918 [DEBUG][       Thread-611249][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:54:05,918 [DEBUG][       Thread-611249][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:54:05,918 [DEBUG][       Thread-611249][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:54:05,918 [DEBUG][       Thread-611249][   transport.py][1871] : Compression: none
2025-07-01 16:54:05,918 [DEBUG][       Thread-611249][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:54:05,935 [DEBUG][       Thread-611249][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:54:05,936 [DEBUG][       Thread-611249][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:54:05,936 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:54:05,936 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:54:05,937 [DEBUG][       Thread-611249][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:54:05,938 [DEBUG][       Thread-611249][   transport.py][1871] : userauth is OK
2025-07-01 16:54:05,951 [ INFO][       Thread-611249][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:54:05,952 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:54:06,605 [DEBUG][       Thread-611249][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:54:06,605 [DEBUG][       Thread-611249][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:54:06,649 [DEBUG][       Thread-611249][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:54:06,649 [DEBUG][       Thread-611249][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:54:06,651 [DEBUG][       Thread-611249][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:54:06,665 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:54:06,665 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:54:06,667 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:54:06,669 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:54:06,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:54:06,676 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:54:06,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:54:06,677 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:54:06,677 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.620424 -999.00  +13.10  33.74     53   +3.90 1 2 2 1 1   887    0 8.52 -23.10 ----- 36.2 33.7 15.8 37.9 14.1 -19.8 13.9 -19.4 13.8 -18.9 14.1 -19.1
2025-07-01 16:54:06,677 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:54:06,677 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:54:06,677 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.620424
2025-07-01 16:54:06,678 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:54:06,678 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:54:06,678 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:54:06,678 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:54:06,678 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:54:06,678 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:53:36', tmtdew=10.45, humidity=49.19, cloud=0.0, wind=26.11, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:53:24.634', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:54:06,679 [DEBUG][       Thread-611249][   transport.py][1871] : EOF in transport thread
2025-07-01 16:54:06,762 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:54:06,772 [DEBUG][       Thread-611252][   transport.py][1871] : starting thread (client mode): 0x81a7430
2025-07-01 16:54:06,772 [DEBUG][       Thread-611252][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:54:06,788 [DEBUG][       Thread-611252][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:54:06,788 [ INFO][       Thread-611252][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:54:06,795 [DEBUG][       Thread-611252][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:54:06,796 [DEBUG][       Thread-611252][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:54:06,796 [DEBUG][       Thread-611252][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:54:06,796 [DEBUG][       Thread-611252][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:54:06,796 [DEBUG][       Thread-611252][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:54:06,796 [DEBUG][       Thread-611252][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:54:06,796 [DEBUG][       Thread-611252][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:54:06,796 [DEBUG][       Thread-611252][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:54:06,796 [DEBUG][       Thread-611252][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:54:06,796 [DEBUG][       Thread-611252][   transport.py][1871] : client lang: <none>
2025-07-01 16:54:06,796 [DEBUG][       Thread-611252][   transport.py][1871] : server lang: <none>
2025-07-01 16:54:06,796 [DEBUG][       Thread-611252][   transport.py][1871] : kex follows: False
2025-07-01 16:54:06,796 [DEBUG][       Thread-611252][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:54:06,796 [DEBUG][       Thread-611252][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:54:06,796 [DEBUG][       Thread-611252][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:54:06,796 [DEBUG][       Thread-611252][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:54:06,796 [DEBUG][       Thread-611252][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:54:06,796 [DEBUG][       Thread-611252][   transport.py][1871] : Compression: none
2025-07-01 16:54:06,796 [DEBUG][       Thread-611252][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:54:06,855 [DEBUG][       Thread-611252][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:54:06,855 [DEBUG][       Thread-611252][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:54:06,856 [DEBUG][       Thread-611252][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:54:06,856 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:54:06,856 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:54:06,911 [DEBUG][       Thread-611252][   transport.py][1871] : userauth is OK
2025-07-01 16:54:06,911 [DEBUG][       Thread-611252][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:54:06,911 [DEBUG][       Thread-611252][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:54:06,912 [DEBUG][       Thread-611252][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:54:06,912 [DEBUG][       Thread-611252][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:54:06,940 [ INFO][       Thread-611252][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:54:06,940 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:54:06,941 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:54:07,978 [DEBUG][       Thread-611252][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:54:07,978 [DEBUG][       Thread-611252][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:54:08,028 [DEBUG][       Thread-611252][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:54:08,028 [DEBUG][       Thread-611252][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:54:08,037 [DEBUG][       Thread-611252][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:54:08,046 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:54:08,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-07-01 16:54:08,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-07-01 16:54:08,065 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:54:08,065 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:54:08,065 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:54:08,074 [DEBUG][       Thread-611252][   transport.py][1871] : EOF in transport thread
2025-07-01 16:54:13,031 [DEBUG][Thread-611254 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:54:18,072 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:54:18,072 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:54:18,072 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:54:18,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-07-01 16:54:18,559 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 54, 7), 10.48, 49.1, 0.0, 25.53, 13.28, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:54:18,559 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:54:07
2025-07-01 16:54:18,644 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:54:18,697 [DEBUG][       Thread-611255][   transport.py][1871] : starting thread (client mode): 0x818fdf0
2025-07-01 16:54:18,698 [DEBUG][       Thread-611255][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:54:18,721 [DEBUG][       Thread-611255][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:54:18,721 [ INFO][       Thread-611255][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:54:18,722 [DEBUG][       Thread-611255][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:54:18,723 [DEBUG][       Thread-611255][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:54:18,723 [DEBUG][       Thread-611255][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:54:18,723 [DEBUG][       Thread-611255][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:54:18,723 [DEBUG][       Thread-611255][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:54:18,723 [DEBUG][       Thread-611255][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:54:18,723 [DEBUG][       Thread-611255][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:54:18,723 [DEBUG][       Thread-611255][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:54:18,723 [DEBUG][       Thread-611255][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:54:18,723 [DEBUG][       Thread-611255][   transport.py][1871] : client lang: <none>
2025-07-01 16:54:18,723 [DEBUG][       Thread-611255][   transport.py][1871] : server lang: <none>
2025-07-01 16:54:18,723 [DEBUG][       Thread-611255][   transport.py][1871] : kex follows: False
2025-07-01 16:54:18,723 [DEBUG][       Thread-611255][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:54:18,723 [DEBUG][       Thread-611255][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:54:18,723 [DEBUG][       Thread-611255][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:54:18,723 [DEBUG][       Thread-611255][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:54:18,724 [DEBUG][       Thread-611255][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:54:18,724 [DEBUG][       Thread-611255][   transport.py][1871] : Compression: none
2025-07-01 16:54:18,724 [DEBUG][       Thread-611255][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:54:18,732 [DEBUG][       Thread-611255][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:54:18,733 [DEBUG][       Thread-611255][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:54:18,733 [DEBUG][       Thread-611255][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:54:18,733 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:54:18,733 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:54:18,734 [DEBUG][       Thread-611255][   transport.py][1871] : userauth is OK
2025-07-01 16:54:18,747 [ INFO][       Thread-611255][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:54:18,748 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:54:19,453 [DEBUG][       Thread-611255][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:54:19,454 [DEBUG][       Thread-611255][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:54:19,501 [DEBUG][       Thread-611255][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:54:19,501 [DEBUG][       Thread-611255][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:54:19,504 [DEBUG][       Thread-611255][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:54:19,519 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:54:19,520 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:54:19,522 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:54:19,524 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:54:19,530 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:54:19,532 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:54:19,532 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:54:19,533 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:54:19,533 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.620771 -999.00  +13.10  32.03     53   +3.90 1 2 2 1 1   887    0 8.59 -24.55 ----- 34.2 32.0 26.4 40.9 14.1 -19.8 13.9 -19.5 13.7 -18.7 14.1 -18.8
2025-07-01 16:54:19,533 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:54:19,533 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:54:19,533 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.620771
2025-07-01 16:54:19,534 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:54:19,534 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:54:19,534 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:54:19,534 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:54:19,534 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:54:19,534 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:54:07', tmtdew=10.48, humidity=49.1, cloud=0.0, wind=25.53, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:53:54.614', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:54:19,536 [DEBUG][       Thread-611255][   transport.py][1871] : EOF in transport thread
2025-07-01 16:54:19,612 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:54:19,623 [DEBUG][       Thread-611258][   transport.py][1871] : starting thread (client mode): 0x81e6a10
2025-07-01 16:54:19,623 [DEBUG][       Thread-611258][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:54:19,639 [DEBUG][       Thread-611258][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:54:19,639 [ INFO][       Thread-611258][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:54:19,647 [DEBUG][       Thread-611258][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:54:19,647 [DEBUG][       Thread-611258][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:54:19,647 [DEBUG][       Thread-611258][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:54:19,647 [DEBUG][       Thread-611258][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:54:19,647 [DEBUG][       Thread-611258][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:54:19,647 [DEBUG][       Thread-611258][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:54:19,647 [DEBUG][       Thread-611258][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:54:19,647 [DEBUG][       Thread-611258][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:54:19,647 [DEBUG][       Thread-611258][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:54:19,647 [DEBUG][       Thread-611258][   transport.py][1871] : client lang: <none>
2025-07-01 16:54:19,647 [DEBUG][       Thread-611258][   transport.py][1871] : server lang: <none>
2025-07-01 16:54:19,647 [DEBUG][       Thread-611258][   transport.py][1871] : kex follows: False
2025-07-01 16:54:19,647 [DEBUG][       Thread-611258][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:54:19,647 [DEBUG][       Thread-611258][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:54:19,648 [DEBUG][       Thread-611258][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:54:19,648 [DEBUG][       Thread-611258][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:54:19,648 [DEBUG][       Thread-611258][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:54:19,648 [DEBUG][       Thread-611258][   transport.py][1871] : Compression: none
2025-07-01 16:54:19,648 [DEBUG][       Thread-611258][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:54:19,707 [DEBUG][       Thread-611258][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:54:19,708 [DEBUG][       Thread-611258][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:54:19,708 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:54:19,709 [DEBUG][       Thread-611258][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:54:19,709 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:54:19,762 [DEBUG][       Thread-611258][   transport.py][1871] : userauth is OK
2025-07-01 16:54:19,763 [DEBUG][       Thread-611258][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:54:19,763 [DEBUG][       Thread-611258][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:54:19,763 [DEBUG][       Thread-611258][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:54:19,763 [DEBUG][       Thread-611258][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:54:19,782 [ INFO][       Thread-611258][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:54:19,782 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:54:19,782 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:54:20,811 [DEBUG][       Thread-611258][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:54:20,811 [DEBUG][       Thread-611258][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:54:20,860 [DEBUG][       Thread-611258][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:54:20,860 [DEBUG][       Thread-611258][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:54:20,871 [DEBUG][       Thread-611258][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:54:20,880 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:54:20,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-07-01 16:54:20,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-07-01 16:54:20,897 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:54:20,898 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:54:20,898 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:54:20,906 [DEBUG][       Thread-611258][   transport.py][1871] : EOF in transport thread
2025-07-01 16:54:22,057 [DEBUG][Thread-611260 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:54:30,909 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:54:30,909 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:54:30,909 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:54:30,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-07-01 16:54:31,093 [DEBUG][Thread-611261 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:54:31,380 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 54, 7), 10.48, 49.1, 0.0, 25.53, 13.28, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:54:31,380 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:54:07
2025-07-01 16:54:31,463 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:54:31,469 [DEBUG][       Thread-611262][   transport.py][1871] : starting thread (client mode): 0x81ca980
2025-07-01 16:54:31,469 [DEBUG][       Thread-611262][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:54:31,490 [DEBUG][       Thread-611262][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:54:31,490 [ INFO][       Thread-611262][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:54:31,493 [DEBUG][       Thread-611262][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:54:31,493 [DEBUG][       Thread-611262][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:54:31,493 [DEBUG][       Thread-611262][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:54:31,493 [DEBUG][       Thread-611262][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:54:31,493 [DEBUG][       Thread-611262][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:54:31,493 [DEBUG][       Thread-611262][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:54:31,493 [DEBUG][       Thread-611262][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:54:31,493 [DEBUG][       Thread-611262][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:54:31,493 [DEBUG][       Thread-611262][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:54:31,493 [DEBUG][       Thread-611262][   transport.py][1871] : client lang: <none>
2025-07-01 16:54:31,493 [DEBUG][       Thread-611262][   transport.py][1871] : server lang: <none>
2025-07-01 16:54:31,493 [DEBUG][       Thread-611262][   transport.py][1871] : kex follows: False
2025-07-01 16:54:31,493 [DEBUG][       Thread-611262][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:54:31,493 [DEBUG][       Thread-611262][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:54:31,493 [DEBUG][       Thread-611262][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:54:31,493 [DEBUG][       Thread-611262][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:54:31,493 [DEBUG][       Thread-611262][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:54:31,493 [DEBUG][       Thread-611262][   transport.py][1871] : Compression: none
2025-07-01 16:54:31,493 [DEBUG][       Thread-611262][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:54:31,508 [DEBUG][       Thread-611262][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:54:31,509 [DEBUG][       Thread-611262][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:54:31,509 [DEBUG][       Thread-611262][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:54:31,509 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:54:31,509 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:54:31,509 [DEBUG][       Thread-611262][   transport.py][1871] : userauth is OK
2025-07-01 16:54:31,533 [ INFO][       Thread-611262][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:54:31,534 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:54:32,164 [DEBUG][       Thread-611262][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:54:32,164 [DEBUG][       Thread-611262][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:54:32,205 [DEBUG][       Thread-611262][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:54:32,205 [DEBUG][       Thread-611262][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:54:32,208 [DEBUG][       Thread-611262][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:54:32,220 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:54:32,221 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:54:32,223 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:54:32,225 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:54:32,230 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:54:32,232 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:54:32,232 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:54:32,233 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:54:32,233 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.620771 -999.00  +13.10  32.03     53   +3.90 1 2 2 1 1   887    0 8.59 -24.55 ----- 34.2 32.0 26.4 40.9 14.1 -19.8 13.9 -19.5 13.7 -18.7 14.1 -18.8
2025-07-01 16:54:32,233 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:54:32,233 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:54:32,233 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.620771
2025-07-01 16:54:32,234 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:54:32,234 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:54:32,234 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:54:32,234 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:54:32,234 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:54:32,235 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:54:07', tmtdew=10.48, humidity=49.1, cloud=0.0, wind=25.53, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:53:54.614', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:54:32,235 [DEBUG][       Thread-611262][   transport.py][1871] : EOF in transport thread
2025-07-01 16:54:32,318 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:54:32,334 [DEBUG][       Thread-611265][   transport.py][1871] : starting thread (client mode): 0x8157a00
2025-07-01 16:54:32,334 [DEBUG][       Thread-611265][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:54:32,350 [DEBUG][       Thread-611265][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:54:32,350 [ INFO][       Thread-611265][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:54:32,358 [DEBUG][       Thread-611265][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:54:32,358 [DEBUG][       Thread-611265][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:54:32,358 [DEBUG][       Thread-611265][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:54:32,358 [DEBUG][       Thread-611265][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:54:32,358 [DEBUG][       Thread-611265][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:54:32,358 [DEBUG][       Thread-611265][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:54:32,358 [DEBUG][       Thread-611265][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:54:32,358 [DEBUG][       Thread-611265][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:54:32,358 [DEBUG][       Thread-611265][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:54:32,358 [DEBUG][       Thread-611265][   transport.py][1871] : client lang: <none>
2025-07-01 16:54:32,358 [DEBUG][       Thread-611265][   transport.py][1871] : server lang: <none>
2025-07-01 16:54:32,358 [DEBUG][       Thread-611265][   transport.py][1871] : kex follows: False
2025-07-01 16:54:32,358 [DEBUG][       Thread-611265][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:54:32,358 [DEBUG][       Thread-611265][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:54:32,359 [DEBUG][       Thread-611265][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:54:32,359 [DEBUG][       Thread-611265][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:54:32,359 [DEBUG][       Thread-611265][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:54:32,359 [DEBUG][       Thread-611265][   transport.py][1871] : Compression: none
2025-07-01 16:54:32,359 [DEBUG][       Thread-611265][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:54:32,415 [DEBUG][       Thread-611265][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:54:32,415 [DEBUG][       Thread-611265][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:54:32,416 [DEBUG][       Thread-611265][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:54:32,416 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:54:32,417 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:54:32,470 [DEBUG][       Thread-611265][   transport.py][1871] : userauth is OK
2025-07-01 16:54:32,470 [DEBUG][       Thread-611265][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:54:32,470 [DEBUG][       Thread-611265][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:54:32,470 [DEBUG][       Thread-611265][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:54:32,470 [DEBUG][       Thread-611265][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:54:32,495 [ INFO][       Thread-611265][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:54:32,495 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:54:32,496 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:54:33,502 [DEBUG][       Thread-611265][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:54:33,503 [DEBUG][       Thread-611265][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:54:33,552 [DEBUG][       Thread-611265][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:54:33,552 [DEBUG][       Thread-611265][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:54:33,561 [DEBUG][       Thread-611265][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:54:33,570 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:54: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')
2025-07-01 16:54:33,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-07-01 16:54:33,590 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:54:33,590 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:54:33,591 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:54:33,602 [DEBUG][       Thread-611265][   transport.py][1871] : EOF in transport thread
2025-07-01 16:54:39,492 [DEBUG][Thread-611267 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:54:40,113 [DEBUG][Thread-611268 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:54:43,601 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:54:43,602 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:54:43,602 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:54:43,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-07-01 16:54:44,086 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 54, 39), 10.51, 49.11, 0.0, 25.83, 13.31, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:54:44,086 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:54:39
2025-07-01 16:54:44,171 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:54:44,175 [DEBUG][       Thread-611269][   transport.py][1871] : starting thread (client mode): 0x81e40d0
2025-07-01 16:54:44,175 [DEBUG][       Thread-611269][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:54:44,196 [DEBUG][       Thread-611269][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:54:44,196 [ INFO][       Thread-611269][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:54:44,199 [DEBUG][       Thread-611269][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:54:44,199 [DEBUG][       Thread-611269][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:54:44,199 [DEBUG][       Thread-611269][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:54:44,199 [DEBUG][       Thread-611269][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:54:44,199 [DEBUG][       Thread-611269][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:54:44,199 [DEBUG][       Thread-611269][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:54:44,199 [DEBUG][       Thread-611269][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:54:44,199 [DEBUG][       Thread-611269][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:54:44,199 [DEBUG][       Thread-611269][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:54:44,199 [DEBUG][       Thread-611269][   transport.py][1871] : client lang: <none>
2025-07-01 16:54:44,199 [DEBUG][       Thread-611269][   transport.py][1871] : server lang: <none>
2025-07-01 16:54:44,199 [DEBUG][       Thread-611269][   transport.py][1871] : kex follows: False
2025-07-01 16:54:44,200 [DEBUG][       Thread-611269][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:54:44,200 [DEBUG][       Thread-611269][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:54:44,200 [DEBUG][       Thread-611269][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:54:44,200 [DEBUG][       Thread-611269][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:54:44,200 [DEBUG][       Thread-611269][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:54:44,200 [DEBUG][       Thread-611269][   transport.py][1871] : Compression: none
2025-07-01 16:54:44,200 [DEBUG][       Thread-611269][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:54:44,216 [DEBUG][       Thread-611269][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:54:44,216 [DEBUG][       Thread-611269][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:54:44,217 [DEBUG][       Thread-611269][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:54:44,217 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:54:44,217 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:54:44,218 [DEBUG][       Thread-611269][   transport.py][1871] : userauth is OK
2025-07-01 16:54:44,245 [ INFO][       Thread-611269][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:54:44,245 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:54:44,870 [DEBUG][       Thread-611269][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:54:44,870 [DEBUG][       Thread-611269][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:54:44,913 [DEBUG][       Thread-611269][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:54:44,913 [DEBUG][       Thread-611269][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:54:44,916 [DEBUG][       Thread-611269][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:54:44,927 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:54:44,928 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:54:44,929 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:54:44,931 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:54:44,937 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:54:44,939 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:54:44,939 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:54:44,940 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:54:44,940 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.620771 -999.00  +13.10  32.03     53   +3.90 1 2 2 1 1   887    0 8.59 -24.55 ----- 34.2 32.0 26.4 40.9 14.1 -19.8 13.9 -19.5 13.7 -18.7 14.1 -18.8
2025-07-01 16:54:44,940 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:54:44,940 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:54:44,940 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.620771
2025-07-01 16:54:44,941 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:54:44,941 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:54:44,941 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:54:44,941 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:54:44,941 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:54:44,942 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:54:39', tmtdew=10.51, humidity=49.11, cloud=0.0, wind=25.83, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:53:54.614', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:54:44,943 [DEBUG][       Thread-611269][   transport.py][1871] : EOF in transport thread
2025-07-01 16:54:45,025 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:54:45,035 [DEBUG][       Thread-611272][   transport.py][1871] : starting thread (client mode): 0x81a4c40
2025-07-01 16:54:45,035 [DEBUG][       Thread-611272][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:54:45,050 [DEBUG][       Thread-611272][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:54:45,050 [ INFO][       Thread-611272][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:54:45,058 [DEBUG][       Thread-611272][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:54:45,058 [DEBUG][       Thread-611272][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:54:45,058 [DEBUG][       Thread-611272][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:54:45,058 [DEBUG][       Thread-611272][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:54:45,058 [DEBUG][       Thread-611272][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:54:45,058 [DEBUG][       Thread-611272][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:54:45,058 [DEBUG][       Thread-611272][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:54:45,058 [DEBUG][       Thread-611272][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:54:45,058 [DEBUG][       Thread-611272][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:54:45,058 [DEBUG][       Thread-611272][   transport.py][1871] : client lang: <none>
2025-07-01 16:54:45,058 [DEBUG][       Thread-611272][   transport.py][1871] : server lang: <none>
2025-07-01 16:54:45,058 [DEBUG][       Thread-611272][   transport.py][1871] : kex follows: False
2025-07-01 16:54:45,058 [DEBUG][       Thread-611272][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:54:45,058 [DEBUG][       Thread-611272][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:54:45,058 [DEBUG][       Thread-611272][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:54:45,058 [DEBUG][       Thread-611272][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:54:45,059 [DEBUG][       Thread-611272][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:54:45,059 [DEBUG][       Thread-611272][   transport.py][1871] : Compression: none
2025-07-01 16:54:45,059 [DEBUG][       Thread-611272][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:54:45,118 [DEBUG][       Thread-611272][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:54:45,118 [DEBUG][       Thread-611272][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:54:45,119 [DEBUG][       Thread-611272][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:54:45,119 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:54:45,120 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:54:45,174 [DEBUG][       Thread-611272][   transport.py][1871] : userauth is OK
2025-07-01 16:54:45,175 [DEBUG][       Thread-611272][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:54:45,175 [DEBUG][       Thread-611272][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:54:45,175 [DEBUG][       Thread-611272][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:54:45,175 [DEBUG][       Thread-611272][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:54:45,194 [ INFO][       Thread-611272][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:54:45,194 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:54:45,195 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:54:46,192 [DEBUG][       Thread-611272][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:54:46,192 [DEBUG][       Thread-611272][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:54:46,241 [DEBUG][       Thread-611272][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:54:46,241 [DEBUG][       Thread-611272][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:54:46,253 [DEBUG][       Thread-611272][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:54:46,262 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:54:46,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-07-01 16:54:46,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-07-01 16:54:46,283 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:54:46,284 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:54:46,284 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:54:46,293 [DEBUG][       Thread-611272][   transport.py][1871] : EOF in transport thread
2025-07-01 16:54:49,137 [DEBUG][Thread-611274 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:54:56,295 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:54:56,295 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:54:56,295 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:54:56,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-07-01 16:54:56,787 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 54, 39), 10.51, 49.11, 0.0, 25.83, 13.31, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:54:56,788 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:54:39
2025-07-01 16:54:56,873 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:54:56,879 [DEBUG][       Thread-611275][   transport.py][1871] : starting thread (client mode): 0x818cf40
2025-07-01 16:54:56,879 [DEBUG][       Thread-611275][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:54:56,899 [DEBUG][       Thread-611275][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:54:56,899 [ INFO][       Thread-611275][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:54:56,903 [DEBUG][       Thread-611275][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:54:56,903 [DEBUG][       Thread-611275][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:54:56,903 [DEBUG][       Thread-611275][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:54:56,903 [DEBUG][       Thread-611275][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:54:56,903 [DEBUG][       Thread-611275][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:54:56,903 [DEBUG][       Thread-611275][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:54:56,903 [DEBUG][       Thread-611275][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:54:56,903 [DEBUG][       Thread-611275][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:54:56,903 [DEBUG][       Thread-611275][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:54:56,903 [DEBUG][       Thread-611275][   transport.py][1871] : client lang: <none>
2025-07-01 16:54:56,903 [DEBUG][       Thread-611275][   transport.py][1871] : server lang: <none>
2025-07-01 16:54:56,903 [DEBUG][       Thread-611275][   transport.py][1871] : kex follows: False
2025-07-01 16:54:56,903 [DEBUG][       Thread-611275][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:54:56,904 [DEBUG][       Thread-611275][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:54:56,904 [DEBUG][       Thread-611275][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:54:56,904 [DEBUG][       Thread-611275][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:54:56,904 [DEBUG][       Thread-611275][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:54:56,904 [DEBUG][       Thread-611275][   transport.py][1871] : Compression: none
2025-07-01 16:54:56,904 [DEBUG][       Thread-611275][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:54:56,924 [DEBUG][       Thread-611275][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:54:56,924 [DEBUG][       Thread-611275][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:54:56,924 [DEBUG][       Thread-611275][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:54:56,925 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:54:56,925 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:54:56,926 [DEBUG][       Thread-611275][   transport.py][1871] : userauth is OK
2025-07-01 16:54:56,940 [ INFO][       Thread-611275][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:54:56,940 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:54:57,589 [DEBUG][       Thread-611275][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:54:57,589 [DEBUG][       Thread-611275][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:54:57,633 [DEBUG][       Thread-611275][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:54:57,633 [DEBUG][       Thread-611275][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:54:57,636 [DEBUG][       Thread-611275][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:54:57,648 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:54:57,649 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:54:57,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:54:57,652 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:54:57,657 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:54:57,658 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:54:57,659 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:54:57,659 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:54:57,659 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.621119 -999.00  +13.10  39.84     53   +3.80 1 2 2 1 1   887    0 8.69 -23.44 ----- 34.8 39.8 16.8 43.6 14.1 -19.6 13.9 -19.3 13.7 -18.8 14.1 -18.7
2025-07-01 16:54:57,659 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:54:57,660 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:54:57,660 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.621119
2025-07-01 16:54:57,660 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:54:57,661 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:54:57,661 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:54:57,661 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:54:57,661 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:54:57,661 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:54:39', tmtdew=10.51, humidity=49.11, cloud=0.0, wind=25.83, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:54:24.682', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:54:57,662 [DEBUG][       Thread-611275][   transport.py][1871] : EOF in transport thread
2025-07-01 16:54:57,745 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:54:57,756 [DEBUG][       Thread-611278][   transport.py][1871] : starting thread (client mode): 0x8171480
2025-07-01 16:54:57,756 [DEBUG][       Thread-611278][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:54:57,771 [DEBUG][       Thread-611278][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:54:57,771 [ INFO][       Thread-611278][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:54:57,779 [DEBUG][       Thread-611278][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:54:57,779 [DEBUG][       Thread-611278][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:54:57,779 [DEBUG][       Thread-611278][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:54:57,779 [DEBUG][       Thread-611278][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:54:57,779 [DEBUG][       Thread-611278][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:54:57,779 [DEBUG][       Thread-611278][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:54:57,779 [DEBUG][       Thread-611278][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:54:57,779 [DEBUG][       Thread-611278][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:54:57,779 [DEBUG][       Thread-611278][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:54:57,780 [DEBUG][       Thread-611278][   transport.py][1871] : client lang: <none>
2025-07-01 16:54:57,780 [DEBUG][       Thread-611278][   transport.py][1871] : server lang: <none>
2025-07-01 16:54:57,780 [DEBUG][       Thread-611278][   transport.py][1871] : kex follows: False
2025-07-01 16:54:57,780 [DEBUG][       Thread-611278][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:54:57,780 [DEBUG][       Thread-611278][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:54:57,780 [DEBUG][       Thread-611278][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:54:57,780 [DEBUG][       Thread-611278][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:54:57,780 [DEBUG][       Thread-611278][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:54:57,780 [DEBUG][       Thread-611278][   transport.py][1871] : Compression: none
2025-07-01 16:54:57,780 [DEBUG][       Thread-611278][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:54:57,837 [DEBUG][       Thread-611278][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:54:57,838 [DEBUG][       Thread-611278][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:54:57,838 [DEBUG][       Thread-611278][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:54:57,839 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:54:57,839 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:54:57,894 [DEBUG][       Thread-611278][   transport.py][1871] : userauth is OK
2025-07-01 16:54:57,894 [DEBUG][       Thread-611278][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:54:57,894 [DEBUG][       Thread-611278][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:54:57,894 [DEBUG][       Thread-611278][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:54:57,894 [DEBUG][       Thread-611278][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:54:57,912 [ INFO][       Thread-611278][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:54:57,913 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:54:57,913 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:54:58,174 [DEBUG][Thread-611280 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:54:58,947 [DEBUG][       Thread-611278][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:54:58,947 [DEBUG][       Thread-611278][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:54:58,996 [DEBUG][       Thread-611278][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:54:58,996 [DEBUG][       Thread-611278][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:54:59,007 [DEBUG][       Thread-611278][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:54:59,016 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:54:59,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-07-01 16:54:59,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') -> 00000000
2025-07-01 16:54:59,036 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:54:59,036 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:54:59,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:54:59,044 [DEBUG][       Thread-611278][   transport.py][1871] : EOF in transport thread
2025-07-01 16:55:07,198 [DEBUG][Thread-611281 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:55:09,044 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:55:09,044 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:55:09,044 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:55:09,046 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:55:09,533 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 54, 39), 10.51, 49.11, 0.0, 25.83, 13.31, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:55:09,533 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:54:39
2025-07-01 16:55:09,618 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:55:09,622 [DEBUG][       Thread-611282][   transport.py][1871] : starting thread (client mode): 0x818cb20
2025-07-01 16:55:09,622 [DEBUG][       Thread-611282][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:55:09,641 [DEBUG][       Thread-611282][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:55:09,641 [ INFO][       Thread-611282][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:55:09,644 [DEBUG][       Thread-611282][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:55:09,644 [DEBUG][       Thread-611282][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:55:09,644 [DEBUG][       Thread-611282][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:55:09,644 [DEBUG][       Thread-611282][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:55:09,644 [DEBUG][       Thread-611282][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:55:09,644 [DEBUG][       Thread-611282][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:55:09,644 [DEBUG][       Thread-611282][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:55:09,644 [DEBUG][       Thread-611282][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:55:09,644 [DEBUG][       Thread-611282][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:55:09,644 [DEBUG][       Thread-611282][   transport.py][1871] : client lang: <none>
2025-07-01 16:55:09,644 [DEBUG][       Thread-611282][   transport.py][1871] : server lang: <none>
2025-07-01 16:55:09,644 [DEBUG][       Thread-611282][   transport.py][1871] : kex follows: False
2025-07-01 16:55:09,644 [DEBUG][       Thread-611282][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:55:09,644 [DEBUG][       Thread-611282][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:55:09,644 [DEBUG][       Thread-611282][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:55:09,644 [DEBUG][       Thread-611282][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:55:09,644 [DEBUG][       Thread-611282][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:55:09,644 [DEBUG][       Thread-611282][   transport.py][1871] : Compression: none
2025-07-01 16:55:09,644 [DEBUG][       Thread-611282][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:55:09,661 [DEBUG][       Thread-611282][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:55:09,661 [DEBUG][       Thread-611282][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:55:09,662 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:55:09,662 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:55:09,663 [DEBUG][       Thread-611282][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:55:09,663 [DEBUG][       Thread-611282][   transport.py][1871] : userauth is OK
2025-07-01 16:55:09,688 [ INFO][       Thread-611282][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:55:09,688 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:55:10,299 [DEBUG][       Thread-611282][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:55:10,299 [DEBUG][       Thread-611282][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:55:10,341 [DEBUG][       Thread-611282][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:55:10,341 [DEBUG][       Thread-611282][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:55:10,343 [DEBUG][       Thread-611282][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:55:10,356 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:55:10,356 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:55:10,357 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:55:10,358 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:55:10,362 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:55:10,362 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:55:10,362 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:55:10,363 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:55:10,363 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.621119 -999.00  +13.10  39.84     53   +3.80 1 2 2 1 1   887    0 8.69 -23.44 ----- 34.8 39.8 16.8 43.6 14.1 -19.6 13.9 -19.3 13.7 -18.8 14.1 -18.7
2025-07-01 16:55:10,363 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:55:10,363 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:55:10,363 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.621119
2025-07-01 16:55:10,363 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:55:10,363 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:55:10,363 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:55:10,363 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:55:10,363 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:55:10,363 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:54:39', tmtdew=10.51, humidity=49.11, cloud=0.0, wind=25.83, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:54:24.682', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:55:10,364 [DEBUG][       Thread-611282][   transport.py][1871] : EOF in transport thread
2025-07-01 16:55:10,441 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:55:10,453 [DEBUG][       Thread-611285][   transport.py][1871] : starting thread (client mode): 0x818dc30
2025-07-01 16:55:10,453 [DEBUG][       Thread-611285][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:55:10,469 [DEBUG][       Thread-611285][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:55:10,469 [ INFO][       Thread-611285][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:55:10,477 [DEBUG][       Thread-611285][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:55:10,477 [DEBUG][       Thread-611285][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:55:10,477 [DEBUG][       Thread-611285][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:55:10,477 [DEBUG][       Thread-611285][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:55:10,477 [DEBUG][       Thread-611285][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:55:10,477 [DEBUG][       Thread-611285][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:55:10,477 [DEBUG][       Thread-611285][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:55:10,477 [DEBUG][       Thread-611285][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:55:10,477 [DEBUG][       Thread-611285][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:55:10,477 [DEBUG][       Thread-611285][   transport.py][1871] : client lang: <none>
2025-07-01 16:55:10,477 [DEBUG][       Thread-611285][   transport.py][1871] : server lang: <none>
2025-07-01 16:55:10,477 [DEBUG][       Thread-611285][   transport.py][1871] : kex follows: False
2025-07-01 16:55:10,477 [DEBUG][       Thread-611285][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:55:10,477 [DEBUG][       Thread-611285][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:55:10,477 [DEBUG][       Thread-611285][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:55:10,477 [DEBUG][       Thread-611285][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:55:10,477 [DEBUG][       Thread-611285][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:55:10,478 [DEBUG][       Thread-611285][   transport.py][1871] : Compression: none
2025-07-01 16:55:10,478 [DEBUG][       Thread-611285][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:55:10,533 [DEBUG][       Thread-611285][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:55:10,534 [DEBUG][       Thread-611285][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:55:10,534 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:55:10,535 [DEBUG][       Thread-611285][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:55:10,536 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:55:10,589 [DEBUG][       Thread-611285][   transport.py][1871] : userauth is OK
2025-07-01 16:55:10,590 [DEBUG][       Thread-611285][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:55:10,590 [DEBUG][       Thread-611285][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:55:10,590 [DEBUG][       Thread-611285][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:55:10,590 [DEBUG][       Thread-611285][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:55:10,609 [ INFO][       Thread-611285][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:55:10,610 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:55:10,610 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:55:11,652 [DEBUG][       Thread-611285][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:55:11,653 [DEBUG][       Thread-611285][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:55:11,709 [DEBUG][       Thread-611285][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:55:11,709 [DEBUG][       Thread-611285][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:55:11,719 [DEBUG][       Thread-611285][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:55:11,728 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:55:11,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-07-01 16:55:11,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-07-01 16:55:11,747 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:55:11,748 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:55:11,748 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:55:11,757 [DEBUG][       Thread-611285][   transport.py][1871] : EOF in transport thread
2025-07-01 16:55:16,216 [DEBUG][Thread-611287 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:55:21,750 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:55:21,751 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:55:21,751 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:55:21,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-07-01 16:55:22,238 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 55, 11), 10.41, 49.12, 0.0, 24.52, 13.23, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:55:22,238 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:55:11
2025-07-01 16:55:22,323 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:55:22,329 [DEBUG][       Thread-611288][   transport.py][1871] : starting thread (client mode): 0x81e4b20
2025-07-01 16:55:22,329 [DEBUG][       Thread-611288][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:55:22,349 [DEBUG][       Thread-611288][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:55:22,350 [ INFO][       Thread-611288][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:55:22,353 [DEBUG][       Thread-611288][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:55:22,353 [DEBUG][       Thread-611288][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:55:22,353 [DEBUG][       Thread-611288][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:55:22,353 [DEBUG][       Thread-611288][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:55:22,353 [DEBUG][       Thread-611288][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:55:22,353 [DEBUG][       Thread-611288][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:55:22,353 [DEBUG][       Thread-611288][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:55:22,353 [DEBUG][       Thread-611288][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:55:22,353 [DEBUG][       Thread-611288][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:55:22,353 [DEBUG][       Thread-611288][   transport.py][1871] : client lang: <none>
2025-07-01 16:55:22,353 [DEBUG][       Thread-611288][   transport.py][1871] : server lang: <none>
2025-07-01 16:55:22,353 [DEBUG][       Thread-611288][   transport.py][1871] : kex follows: False
2025-07-01 16:55:22,353 [DEBUG][       Thread-611288][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:55:22,353 [DEBUG][       Thread-611288][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:55:22,353 [DEBUG][       Thread-611288][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:55:22,353 [DEBUG][       Thread-611288][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:55:22,353 [DEBUG][       Thread-611288][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:55:22,353 [DEBUG][       Thread-611288][   transport.py][1871] : Compression: none
2025-07-01 16:55:22,353 [DEBUG][       Thread-611288][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:55:22,369 [DEBUG][       Thread-611288][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:55:22,370 [DEBUG][       Thread-611288][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:55:22,370 [DEBUG][       Thread-611288][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:55:22,370 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:55:22,371 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:55:22,372 [DEBUG][       Thread-611288][   transport.py][1871] : userauth is OK
2025-07-01 16:55:22,385 [ INFO][       Thread-611288][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:55:22,386 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:55:22,969 [DEBUG][       Thread-611288][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:55:22,969 [DEBUG][       Thread-611288][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:55:23,013 [DEBUG][       Thread-611288][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:55:23,013 [DEBUG][       Thread-611288][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:55:23,016 [DEBUG][       Thread-611288][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:55:23,029 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:55:23,029 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:55:23,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:55:23,032 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:55:23,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:55:23,039 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:55:23,039 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:55:23,040 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:55:23,040 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.621466 -999.00  +13.10  28.58     53   +3.90 1 2 1 1 1   887    0 8.45 -23.33 ----- 27.8 28.6 24.9 38.3 14.1 -19.6 13.9 -19.5 13.7 -18.7 14.0 -18.7
2025-07-01 16:55:23,040 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:55:23,040 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:55:23,040 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.621466
2025-07-01 16:55:23,041 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:55:23,041 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:55:23,042 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:55:23,042 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:55:23,042 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:55:23,042 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:55:11', tmtdew=10.41, humidity=49.12, cloud=0.0, wind=24.52, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:54:54.662', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:55:23,043 [DEBUG][       Thread-611288][   transport.py][1871] : EOF in transport thread
2025-07-01 16:55:23,125 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:55:23,140 [DEBUG][       Thread-611291][   transport.py][1871] : starting thread (client mode): 0x8171b40
2025-07-01 16:55:23,140 [DEBUG][       Thread-611291][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:55:23,155 [DEBUG][       Thread-611291][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:55:23,155 [ INFO][       Thread-611291][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:55:23,163 [DEBUG][       Thread-611291][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:55:23,163 [DEBUG][       Thread-611291][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:55:23,163 [DEBUG][       Thread-611291][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:55:23,163 [DEBUG][       Thread-611291][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:55:23,163 [DEBUG][       Thread-611291][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:55:23,163 [DEBUG][       Thread-611291][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:55:23,163 [DEBUG][       Thread-611291][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:55:23,163 [DEBUG][       Thread-611291][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:55:23,163 [DEBUG][       Thread-611291][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:55:23,163 [DEBUG][       Thread-611291][   transport.py][1871] : client lang: <none>
2025-07-01 16:55:23,163 [DEBUG][       Thread-611291][   transport.py][1871] : server lang: <none>
2025-07-01 16:55:23,163 [DEBUG][       Thread-611291][   transport.py][1871] : kex follows: False
2025-07-01 16:55:23,163 [DEBUG][       Thread-611291][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:55:23,164 [DEBUG][       Thread-611291][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:55:23,164 [DEBUG][       Thread-611291][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:55:23,164 [DEBUG][       Thread-611291][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:55:23,164 [DEBUG][       Thread-611291][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:55:23,164 [DEBUG][       Thread-611291][   transport.py][1871] : Compression: none
2025-07-01 16:55:23,164 [DEBUG][       Thread-611291][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:55:23,221 [DEBUG][       Thread-611291][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:55:23,221 [DEBUG][       Thread-611291][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:55:23,222 [DEBUG][       Thread-611291][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:55:23,222 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:55:23,223 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:55:23,277 [DEBUG][       Thread-611291][   transport.py][1871] : userauth is OK
2025-07-01 16:55:23,277 [DEBUG][       Thread-611291][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:55:23,277 [DEBUG][       Thread-611291][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:55:23,277 [DEBUG][       Thread-611291][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:55:23,277 [DEBUG][       Thread-611291][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:55:23,296 [ INFO][       Thread-611291][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:55:23,297 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:55:23,297 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:55:24,283 [DEBUG][       Thread-611291][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:55:24,283 [DEBUG][       Thread-611291][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:55:24,334 [DEBUG][       Thread-611291][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:55:24,334 [DEBUG][       Thread-611291][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:55:24,343 [DEBUG][       Thread-611291][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:55:24,351 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:55:24,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-07-01 16:55:24,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-07-01 16:55:24,367 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:55:24,367 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:55:24,368 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:55:24,376 [DEBUG][       Thread-611291][   transport.py][1871] : EOF in transport thread
2025-07-01 16:55:25,239 [DEBUG][Thread-611293 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:55:34,286 [DEBUG][Thread-611294 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:55:34,378 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:55:34,378 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:55:34,378 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:55:34,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-07-01 16:55:34,851 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 55, 11), 10.41, 49.12, 0.0, 24.52, 13.23, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:55:34,851 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:55:11
2025-07-01 16:55:34,936 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:55:34,940 [DEBUG][       Thread-611295][   transport.py][1871] : starting thread (client mode): 0x81a7940
2025-07-01 16:55:34,940 [DEBUG][       Thread-611295][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:55:34,960 [DEBUG][       Thread-611295][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:55:34,960 [ INFO][       Thread-611295][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:55:34,964 [DEBUG][       Thread-611295][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:55:34,964 [DEBUG][       Thread-611295][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:55:34,964 [DEBUG][       Thread-611295][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:55:34,964 [DEBUG][       Thread-611295][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:55:34,964 [DEBUG][       Thread-611295][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:55:34,964 [DEBUG][       Thread-611295][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:55:34,964 [DEBUG][       Thread-611295][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:55:34,964 [DEBUG][       Thread-611295][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:55:34,964 [DEBUG][       Thread-611295][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:55:34,964 [DEBUG][       Thread-611295][   transport.py][1871] : client lang: <none>
2025-07-01 16:55:34,964 [DEBUG][       Thread-611295][   transport.py][1871] : server lang: <none>
2025-07-01 16:55:34,964 [DEBUG][       Thread-611295][   transport.py][1871] : kex follows: False
2025-07-01 16:55:34,965 [DEBUG][       Thread-611295][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:55:34,965 [DEBUG][       Thread-611295][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:55:34,965 [DEBUG][       Thread-611295][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:55:34,965 [DEBUG][       Thread-611295][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:55:34,965 [DEBUG][       Thread-611295][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:55:34,965 [DEBUG][       Thread-611295][   transport.py][1871] : Compression: none
2025-07-01 16:55:34,965 [DEBUG][       Thread-611295][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:55:34,983 [DEBUG][       Thread-611295][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:55:34,984 [DEBUG][       Thread-611295][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:55:34,984 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:55:34,984 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:55:34,985 [DEBUG][       Thread-611295][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:55:34,986 [DEBUG][       Thread-611295][   transport.py][1871] : userauth is OK
2025-07-01 16:55:35,010 [ INFO][       Thread-611295][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:55:35,011 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:55:35,626 [DEBUG][       Thread-611295][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:55:35,627 [DEBUG][       Thread-611295][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:55:35,669 [DEBUG][       Thread-611295][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:55:35,669 [DEBUG][       Thread-611295][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:55:35,672 [DEBUG][       Thread-611295][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:55:35,684 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:55:35,685 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:55:35,687 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:55:35,688 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:55:35,694 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:55:35,696 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:55:35,696 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:55:35,697 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:55:35,697 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.621466 -999.00  +13.10  28.58     53   +3.90 1 2 1 1 1   887    0 8.45 -23.33 ----- 27.8 28.6 24.9 38.3 14.1 -19.6 13.9 -19.5 13.7 -18.7 14.0 -18.7
2025-07-01 16:55:35,697 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:55:35,697 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:55:35,697 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.621466
2025-07-01 16:55:35,698 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:55:35,698 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:55:35,698 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:55:35,698 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:55:35,698 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:55:35,699 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:55:11', tmtdew=10.41, humidity=49.12, cloud=0.0, wind=24.52, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:54:54.662', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:55:35,699 [DEBUG][       Thread-611295][   transport.py][1871] : EOF in transport thread
2025-07-01 16:55:35,782 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:55:35,794 [DEBUG][       Thread-611298][   transport.py][1871] : starting thread (client mode): 0x75aad10
2025-07-01 16:55:35,794 [DEBUG][       Thread-611298][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:55:35,809 [DEBUG][       Thread-611298][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:55:35,810 [ INFO][       Thread-611298][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:55:35,817 [DEBUG][       Thread-611298][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:55:35,817 [DEBUG][       Thread-611298][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:55:35,817 [DEBUG][       Thread-611298][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:55:35,817 [DEBUG][       Thread-611298][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:55:35,817 [DEBUG][       Thread-611298][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:55:35,817 [DEBUG][       Thread-611298][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:55:35,817 [DEBUG][       Thread-611298][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:55:35,817 [DEBUG][       Thread-611298][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:55:35,817 [DEBUG][       Thread-611298][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:55:35,817 [DEBUG][       Thread-611298][   transport.py][1871] : client lang: <none>
2025-07-01 16:55:35,818 [DEBUG][       Thread-611298][   transport.py][1871] : server lang: <none>
2025-07-01 16:55:35,818 [DEBUG][       Thread-611298][   transport.py][1871] : kex follows: False
2025-07-01 16:55:35,818 [DEBUG][       Thread-611298][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:55:35,818 [DEBUG][       Thread-611298][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:55:35,818 [DEBUG][       Thread-611298][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:55:35,818 [DEBUG][       Thread-611298][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:55:35,818 [DEBUG][       Thread-611298][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:55:35,818 [DEBUG][       Thread-611298][   transport.py][1871] : Compression: none
2025-07-01 16:55:35,818 [DEBUG][       Thread-611298][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:55:35,876 [DEBUG][       Thread-611298][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:55:35,877 [DEBUG][       Thread-611298][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:55:35,878 [DEBUG][       Thread-611298][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:55:35,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:55:35,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:55:35,948 [DEBUG][       Thread-611298][   transport.py][1871] : userauth is OK
2025-07-01 16:55:35,949 [DEBUG][       Thread-611298][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:55:35,949 [DEBUG][       Thread-611298][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:55:35,949 [DEBUG][       Thread-611298][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:55:35,949 [DEBUG][       Thread-611298][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:55:35,974 [ INFO][       Thread-611298][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:55:35,974 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:55:35,975 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:55:36,944 [DEBUG][       Thread-611298][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:55:36,945 [DEBUG][       Thread-611298][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:55:36,996 [DEBUG][       Thread-611298][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:55:36,996 [DEBUG][       Thread-611298][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:55:37,005 [DEBUG][       Thread-611298][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:55:37,014 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:55:37,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-07-01 16:55:37,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-07-01 16:55:37,033 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:55:37,033 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:55:37,033 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:55:37,041 [DEBUG][       Thread-611298][   transport.py][1871] : EOF in transport thread
2025-07-01 16:55:39,522 [DEBUG][Thread-611300 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:55:43,308 [DEBUG][Thread-611301 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:55:47,044 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:55:47,044 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:55:47,044 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:55:47,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-07-01 16:55:47,520 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 55, 43), 10.4, 49.16, 0.0, 24.51, 13.22, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:55:47,520 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:55:43
2025-07-01 16:55:47,601 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:55:47,605 [DEBUG][       Thread-611302][   transport.py][1871] : starting thread (client mode): 0x81e67d0
2025-07-01 16:55:47,605 [DEBUG][       Thread-611302][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:55:47,626 [DEBUG][       Thread-611302][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:55:47,626 [ INFO][       Thread-611302][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:55:47,629 [DEBUG][       Thread-611302][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:55:47,629 [DEBUG][       Thread-611302][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:55:47,629 [DEBUG][       Thread-611302][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:55:47,629 [DEBUG][       Thread-611302][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:55:47,629 [DEBUG][       Thread-611302][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:55:47,629 [DEBUG][       Thread-611302][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:55:47,629 [DEBUG][       Thread-611302][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:55:47,629 [DEBUG][       Thread-611302][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:55:47,629 [DEBUG][       Thread-611302][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:55:47,629 [DEBUG][       Thread-611302][   transport.py][1871] : client lang: <none>
2025-07-01 16:55:47,629 [DEBUG][       Thread-611302][   transport.py][1871] : server lang: <none>
2025-07-01 16:55:47,629 [DEBUG][       Thread-611302][   transport.py][1871] : kex follows: False
2025-07-01 16:55:47,629 [DEBUG][       Thread-611302][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:55:47,630 [DEBUG][       Thread-611302][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:55:47,630 [DEBUG][       Thread-611302][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:55:47,630 [DEBUG][       Thread-611302][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:55:47,630 [DEBUG][       Thread-611302][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:55:47,630 [DEBUG][       Thread-611302][   transport.py][1871] : Compression: none
2025-07-01 16:55:47,630 [DEBUG][       Thread-611302][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:55:47,646 [DEBUG][       Thread-611302][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:55:47,647 [DEBUG][       Thread-611302][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:55:47,647 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:55:47,647 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:55:47,648 [DEBUG][       Thread-611302][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:55:47,648 [DEBUG][       Thread-611302][   transport.py][1871] : userauth is OK
2025-07-01 16:55:47,662 [ INFO][       Thread-611302][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:55:47,663 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:55:48,268 [DEBUG][       Thread-611302][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:55:48,269 [DEBUG][       Thread-611302][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:55:48,313 [DEBUG][       Thread-611302][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:55:48,313 [DEBUG][       Thread-611302][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:55:48,316 [DEBUG][       Thread-611302][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:55:48,330 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:55:48,330 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:55:48,332 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:55:48,334 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:55:48,339 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:55:48,341 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:55:48,342 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:55:48,342 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:55:48,342 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.621466 -999.00  +13.10  28.58     53   +3.90 1 2 1 1 1   887    0 8.45 -23.33 ----- 27.8 28.6 24.9 38.3 14.1 -19.6 13.9 -19.5 13.7 -18.7 14.0 -18.7
2025-07-01 16:55:48,342 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:55:48,343 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:55:48,343 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.621466
2025-07-01 16:55:48,343 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:55:48,344 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:55:48,344 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:55:48,344 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:55:48,344 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:55:48,344 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:55:43', tmtdew=10.4, humidity=49.16, cloud=0.0, wind=24.51, temperature=13.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:54:54.662', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:55:48,345 [DEBUG][       Thread-611302][   transport.py][1871] : EOF in transport thread
2025-07-01 16:55:48,428 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:55:48,437 [DEBUG][       Thread-611305][   transport.py][1871] : starting thread (client mode): 0x818f460
2025-07-01 16:55:48,437 [DEBUG][       Thread-611305][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:55:48,451 [DEBUG][       Thread-611305][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:55:48,451 [ INFO][       Thread-611305][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:55:48,459 [DEBUG][       Thread-611305][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:55:48,459 [DEBUG][       Thread-611305][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:55:48,459 [DEBUG][       Thread-611305][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:55:48,459 [DEBUG][       Thread-611305][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:55:48,459 [DEBUG][       Thread-611305][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:55:48,459 [DEBUG][       Thread-611305][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:55:48,459 [DEBUG][       Thread-611305][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:55:48,459 [DEBUG][       Thread-611305][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:55:48,459 [DEBUG][       Thread-611305][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:55:48,459 [DEBUG][       Thread-611305][   transport.py][1871] : client lang: <none>
2025-07-01 16:55:48,459 [DEBUG][       Thread-611305][   transport.py][1871] : server lang: <none>
2025-07-01 16:55:48,459 [DEBUG][       Thread-611305][   transport.py][1871] : kex follows: False
2025-07-01 16:55:48,459 [DEBUG][       Thread-611305][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:55:48,459 [DEBUG][       Thread-611305][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:55:48,459 [DEBUG][       Thread-611305][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:55:48,459 [DEBUG][       Thread-611305][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:55:48,459 [DEBUG][       Thread-611305][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:55:48,459 [DEBUG][       Thread-611305][   transport.py][1871] : Compression: none
2025-07-01 16:55:48,459 [DEBUG][       Thread-611305][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:55:48,516 [DEBUG][       Thread-611305][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:55:48,517 [DEBUG][       Thread-611305][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:55:48,517 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:55:48,518 [DEBUG][       Thread-611305][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:55:48,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:55:48,577 [DEBUG][       Thread-611305][   transport.py][1871] : userauth is OK
2025-07-01 16:55:48,577 [DEBUG][       Thread-611305][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:55:48,577 [DEBUG][       Thread-611305][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:55:48,577 [DEBUG][       Thread-611305][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:55:48,577 [DEBUG][       Thread-611305][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:55:48,595 [ INFO][       Thread-611305][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:55:48,596 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:55:48,596 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:55:49,628 [DEBUG][       Thread-611305][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:55:49,629 [DEBUG][       Thread-611305][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:55:49,680 [DEBUG][       Thread-611305][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:55:49,680 [DEBUG][       Thread-611305][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:55:49,689 [DEBUG][       Thread-611305][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:55:49,698 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:55:49,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-07-01 16:55:49,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') -> 00000000
2025-07-01 16:55:49,717 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:55:49,717 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:55:49,717 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:55:49,725 [DEBUG][       Thread-611305][   transport.py][1871] : EOF in transport thread
2025-07-01 16:55:52,327 [DEBUG][Thread-611307 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:55:59,728 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:55:59,728 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:55:59,728 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:55:59,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-07-01 16:56:00,201 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 55, 43), 10.4, 49.16, 0.0, 24.51, 13.22, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:56:00,201 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:55:43
2025-07-01 16:56:00,283 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:56:00,287 [DEBUG][       Thread-611308][   transport.py][1871] : starting thread (client mode): 0x81c8910
2025-07-01 16:56:00,287 [DEBUG][       Thread-611308][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:56:00,308 [DEBUG][       Thread-611308][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:56:00,308 [ INFO][       Thread-611308][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:56:00,311 [DEBUG][       Thread-611308][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:56:00,312 [DEBUG][       Thread-611308][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:56:00,312 [DEBUG][       Thread-611308][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:56:00,312 [DEBUG][       Thread-611308][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:56:00,312 [DEBUG][       Thread-611308][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:56:00,312 [DEBUG][       Thread-611308][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:56:00,312 [DEBUG][       Thread-611308][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:56:00,312 [DEBUG][       Thread-611308][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:56:00,312 [DEBUG][       Thread-611308][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:56:00,312 [DEBUG][       Thread-611308][   transport.py][1871] : client lang: <none>
2025-07-01 16:56:00,312 [DEBUG][       Thread-611308][   transport.py][1871] : server lang: <none>
2025-07-01 16:56:00,312 [DEBUG][       Thread-611308][   transport.py][1871] : kex follows: False
2025-07-01 16:56:00,312 [DEBUG][       Thread-611308][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:56:00,312 [DEBUG][       Thread-611308][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:56:00,312 [DEBUG][       Thread-611308][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:56:00,312 [DEBUG][       Thread-611308][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:56:00,312 [DEBUG][       Thread-611308][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:56:00,312 [DEBUG][       Thread-611308][   transport.py][1871] : Compression: none
2025-07-01 16:56:00,312 [DEBUG][       Thread-611308][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:56:00,331 [DEBUG][       Thread-611308][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:56:00,332 [DEBUG][       Thread-611308][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:56:00,332 [DEBUG][       Thread-611308][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:56:00,332 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:56:00,333 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:56:00,334 [DEBUG][       Thread-611308][   transport.py][1871] : userauth is OK
2025-07-01 16:56:00,358 [ INFO][       Thread-611308][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:56:00,359 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:56:00,982 [DEBUG][       Thread-611308][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:56:00,982 [DEBUG][       Thread-611308][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:56:01,025 [DEBUG][       Thread-611308][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:56:01,025 [DEBUG][       Thread-611308][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:56:01,028 [DEBUG][       Thread-611308][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:56:01,042 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:56:01,042 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:56:01,044 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:56:01,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:56:01,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:56:01,054 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:56:01,054 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:56:01,055 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:56:01,055 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.621813 -999.00  +13.10  26.27     53   +3.90 1 2 1 1 1   887    0 8.69 -21.95 ----- 24.6 26.3 25.7 35.1 14.1 -19.6 13.9 -19.4 13.7 -18.7 14.0 -19.0
2025-07-01 16:56:01,055 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:56:01,055 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:56:01,055 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.621813
2025-07-01 16:56:01,056 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:56:01,056 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:56:01,056 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:56:01,056 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:56:01,056 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:56:01,057 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:55:43', tmtdew=10.4, humidity=49.16, cloud=0.0, wind=24.51, temperature=13.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:55:24.643', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:56:01,057 [DEBUG][       Thread-611308][   transport.py][1871] : EOF in transport thread
2025-07-01 16:56:01,138 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:56:01,150 [DEBUG][       Thread-611311][   transport.py][1871] : starting thread (client mode): 0x818c8e0
2025-07-01 16:56:01,150 [DEBUG][       Thread-611311][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:56:01,166 [DEBUG][       Thread-611311][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:56:01,166 [ INFO][       Thread-611311][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:56:01,174 [DEBUG][       Thread-611311][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:56:01,174 [DEBUG][       Thread-611311][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:56:01,174 [DEBUG][       Thread-611311][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:56:01,174 [DEBUG][       Thread-611311][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:56:01,174 [DEBUG][       Thread-611311][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:56:01,174 [DEBUG][       Thread-611311][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:56:01,174 [DEBUG][       Thread-611311][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:56:01,174 [DEBUG][       Thread-611311][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:56:01,174 [DEBUG][       Thread-611311][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:56:01,174 [DEBUG][       Thread-611311][   transport.py][1871] : client lang: <none>
2025-07-01 16:56:01,174 [DEBUG][       Thread-611311][   transport.py][1871] : server lang: <none>
2025-07-01 16:56:01,174 [DEBUG][       Thread-611311][   transport.py][1871] : kex follows: False
2025-07-01 16:56:01,175 [DEBUG][       Thread-611311][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:56:01,175 [DEBUG][       Thread-611311][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:56:01,175 [DEBUG][       Thread-611311][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:56:01,175 [DEBUG][       Thread-611311][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:56:01,175 [DEBUG][       Thread-611311][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:56:01,175 [DEBUG][       Thread-611311][   transport.py][1871] : Compression: none
2025-07-01 16:56:01,175 [DEBUG][       Thread-611311][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:56:01,232 [DEBUG][       Thread-611311][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:56:01,232 [DEBUG][       Thread-611311][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:56:01,233 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:56:01,234 [DEBUG][       Thread-611311][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:56:01,234 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:56:01,296 [DEBUG][       Thread-611311][   transport.py][1871] : userauth is OK
2025-07-01 16:56:01,296 [DEBUG][       Thread-611311][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:56:01,296 [DEBUG][       Thread-611311][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:56:01,296 [DEBUG][       Thread-611311][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:56:01,297 [DEBUG][       Thread-611311][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:56:01,320 [ INFO][       Thread-611311][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:56:01,320 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:56:01,320 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:56:01,360 [DEBUG][Thread-611313 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:56:02,346 [DEBUG][       Thread-611311][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:56:02,346 [DEBUG][       Thread-611311][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:56:02,396 [DEBUG][       Thread-611311][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:56:02,396 [DEBUG][       Thread-611311][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:56:02,405 [DEBUG][       Thread-611311][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:56:02,415 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:56:02,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')
2025-07-01 16:56:02,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-07-01 16:56:02,434 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:56:02,434 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:56:02,434 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:56:02,442 [DEBUG][       Thread-611311][   transport.py][1871] : EOF in transport thread
2025-07-01 16:56:10,382 [DEBUG][Thread-611314 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:56:12,445 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:56:12,445 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:56:12,445 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:56:12,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-07-01 16:56:12,916 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 55, 43), 10.4, 49.16, 0.0, 24.51, 13.22, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:56:12,916 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:55:43
2025-07-01 16:56:12,997 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:56:13,001 [DEBUG][       Thread-611315][   transport.py][1871] : starting thread (client mode): 0x81c9ab0
2025-07-01 16:56:13,001 [DEBUG][       Thread-611315][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:56:13,022 [DEBUG][       Thread-611315][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:56:13,022 [ INFO][       Thread-611315][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:56:13,025 [DEBUG][       Thread-611315][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:56:13,025 [DEBUG][       Thread-611315][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:56:13,025 [DEBUG][       Thread-611315][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:56:13,025 [DEBUG][       Thread-611315][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:56:13,025 [DEBUG][       Thread-611315][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:56:13,025 [DEBUG][       Thread-611315][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:56:13,025 [DEBUG][       Thread-611315][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:56:13,025 [DEBUG][       Thread-611315][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:56:13,025 [DEBUG][       Thread-611315][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:56:13,025 [DEBUG][       Thread-611315][   transport.py][1871] : client lang: <none>
2025-07-01 16:56:13,026 [DEBUG][       Thread-611315][   transport.py][1871] : server lang: <none>
2025-07-01 16:56:13,026 [DEBUG][       Thread-611315][   transport.py][1871] : kex follows: False
2025-07-01 16:56:13,026 [DEBUG][       Thread-611315][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:56:13,026 [DEBUG][       Thread-611315][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:56:13,026 [DEBUG][       Thread-611315][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:56:13,026 [DEBUG][       Thread-611315][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:56:13,026 [DEBUG][       Thread-611315][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:56:13,026 [DEBUG][       Thread-611315][   transport.py][1871] : Compression: none
2025-07-01 16:56:13,026 [DEBUG][       Thread-611315][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:56:13,043 [DEBUG][       Thread-611315][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:56:13,044 [DEBUG][       Thread-611315][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:56:13,044 [DEBUG][       Thread-611315][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:56:13,045 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:56:13,045 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:56:13,046 [DEBUG][       Thread-611315][   transport.py][1871] : userauth is OK
2025-07-01 16:56:13,070 [ INFO][       Thread-611315][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:56:13,071 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:56:13,690 [DEBUG][       Thread-611315][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:56:13,690 [DEBUG][       Thread-611315][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:56:13,733 [DEBUG][       Thread-611315][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:56:13,733 [DEBUG][       Thread-611315][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:56:13,736 [DEBUG][       Thread-611315][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:56:13,748 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:56:13,748 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:56:13,750 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:56:13,752 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:56:13,758 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:56:13,760 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:56:13,760 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:56:13,761 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:56:13,761 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.621813 -999.00  +13.10  26.27     53   +3.90 1 2 1 1 1   887    0 8.69 -21.95 ----- 24.6 26.3 25.7 35.1 14.1 -19.6 13.9 -19.4 13.7 -18.7 14.0 -19.0
2025-07-01 16:56:13,761 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:56:13,761 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:56:13,761 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.621813
2025-07-01 16:56:13,762 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:56:13,762 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:56:13,762 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:56:13,762 [DEBUG][       Thread-611315][   transport.py][1871] : EOF in transport thread
2025-07-01 16:56:13,763 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:56:13,763 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:56:13,763 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:55:43', tmtdew=10.4, humidity=49.16, cloud=0.0, wind=24.51, temperature=13.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:55:24.643', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:56:13,846 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:56:13,856 [DEBUG][       Thread-611318][   transport.py][1871] : starting thread (client mode): 0x818d750
2025-07-01 16:56:13,856 [DEBUG][       Thread-611318][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:56:13,871 [DEBUG][       Thread-611318][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:56:13,871 [ INFO][       Thread-611318][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:56:13,881 [DEBUG][       Thread-611318][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:56:13,881 [DEBUG][       Thread-611318][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:56:13,881 [DEBUG][       Thread-611318][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:56:13,881 [DEBUG][       Thread-611318][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:56:13,881 [DEBUG][       Thread-611318][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:56:13,881 [DEBUG][       Thread-611318][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:56:13,881 [DEBUG][       Thread-611318][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:56:13,881 [DEBUG][       Thread-611318][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:56:13,881 [DEBUG][       Thread-611318][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:56:13,881 [DEBUG][       Thread-611318][   transport.py][1871] : client lang: <none>
2025-07-01 16:56:13,881 [DEBUG][       Thread-611318][   transport.py][1871] : server lang: <none>
2025-07-01 16:56:13,881 [DEBUG][       Thread-611318][   transport.py][1871] : kex follows: False
2025-07-01 16:56:13,881 [DEBUG][       Thread-611318][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:56:13,881 [DEBUG][       Thread-611318][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:56:13,881 [DEBUG][       Thread-611318][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:56:13,881 [DEBUG][       Thread-611318][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:56:13,882 [DEBUG][       Thread-611318][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:56:13,882 [DEBUG][       Thread-611318][   transport.py][1871] : Compression: none
2025-07-01 16:56:13,882 [DEBUG][       Thread-611318][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:56:13,944 [DEBUG][       Thread-611318][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:56:13,945 [DEBUG][       Thread-611318][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:56:13,945 [DEBUG][       Thread-611318][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:56:13,946 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:56:13,946 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:56:14,000 [DEBUG][       Thread-611318][   transport.py][1871] : userauth is OK
2025-07-01 16:56:14,000 [DEBUG][       Thread-611318][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:56:14,001 [DEBUG][       Thread-611318][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:56:14,001 [DEBUG][       Thread-611318][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:56:14,001 [DEBUG][       Thread-611318][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:56:14,019 [ INFO][       Thread-611318][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:56:14,020 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:56:14,020 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:56:15,052 [DEBUG][       Thread-611318][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:56:15,052 [DEBUG][       Thread-611318][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:56:15,100 [DEBUG][       Thread-611318][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:56:15,100 [DEBUG][       Thread-611318][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:56:15,109 [DEBUG][       Thread-611318][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:56:15,118 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:56:15,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-07-01 16:56:15,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-07-01 16:56:15,136 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:56:15,136 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:56:15,137 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:56:15,145 [DEBUG][       Thread-611318][   transport.py][1871] : EOF in transport thread
2025-07-01 16:56:19,404 [DEBUG][Thread-611320 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:56:25,147 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:56:25,147 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:56:25,148 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:56:25,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-07-01 16:56:25,620 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 56, 15), 10.4, 49.48, 0.0, 24.98, 13.22, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:56:25,620 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:56:15
2025-07-01 16:56:25,701 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:56:25,708 [DEBUG][       Thread-611321][   transport.py][1871] : starting thread (client mode): 0x81cbc40
2025-07-01 16:56:25,708 [DEBUG][       Thread-611321][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:56:25,727 [DEBUG][       Thread-611321][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:56:25,727 [ INFO][       Thread-611321][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:56:25,731 [DEBUG][       Thread-611321][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:56:25,731 [DEBUG][       Thread-611321][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:56:25,731 [DEBUG][       Thread-611321][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:56:25,731 [DEBUG][       Thread-611321][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:56:25,731 [DEBUG][       Thread-611321][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:56:25,731 [DEBUG][       Thread-611321][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:56:25,731 [DEBUG][       Thread-611321][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:56:25,731 [DEBUG][       Thread-611321][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:56:25,731 [DEBUG][       Thread-611321][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:56:25,731 [DEBUG][       Thread-611321][   transport.py][1871] : client lang: <none>
2025-07-01 16:56:25,731 [DEBUG][       Thread-611321][   transport.py][1871] : server lang: <none>
2025-07-01 16:56:25,731 [DEBUG][       Thread-611321][   transport.py][1871] : kex follows: False
2025-07-01 16:56:25,731 [DEBUG][       Thread-611321][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:56:25,731 [DEBUG][       Thread-611321][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:56:25,731 [DEBUG][       Thread-611321][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:56:25,731 [DEBUG][       Thread-611321][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:56:25,731 [DEBUG][       Thread-611321][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:56:25,731 [DEBUG][       Thread-611321][   transport.py][1871] : Compression: none
2025-07-01 16:56:25,731 [DEBUG][       Thread-611321][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:56:25,748 [DEBUG][       Thread-611321][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:56:25,749 [DEBUG][       Thread-611321][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:56:25,749 [DEBUG][       Thread-611321][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:56:25,750 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:56:25,750 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:56:25,751 [DEBUG][       Thread-611321][   transport.py][1871] : userauth is OK
2025-07-01 16:56:25,776 [ INFO][       Thread-611321][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:56:25,776 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:56:26,391 [DEBUG][       Thread-611321][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:56:26,391 [DEBUG][       Thread-611321][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:56:26,433 [DEBUG][       Thread-611321][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:56:26,433 [DEBUG][       Thread-611321][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:56:26,437 [DEBUG][       Thread-611321][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:56:26,448 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:56:26,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:56:26,451 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:56:26,453 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:56:26,459 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:56:26,461 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:56:26,461 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:56:26,462 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:56:26,462 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.621813 -999.00  +13.10  26.27     53   +3.90 1 2 1 1 1   887    0 8.69 -21.95 ----- 24.6 26.3 25.7 35.1 14.1 -19.6 13.9 -19.4 13.7 -18.7 14.0 -19.0
2025-07-01 16:56:26,462 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:56:26,462 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:56:26,462 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.621813
2025-07-01 16:56:26,463 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:56:26,463 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:56:26,463 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:56:26,464 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:56:26,464 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:56:26,464 [DEBUG][       Thread-611321][   transport.py][1871] : EOF in transport thread
2025-07-01 16:56:26,464 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:56:15', tmtdew=10.4, humidity=49.48, cloud=0.0, wind=24.98, temperature=13.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:55:24.643', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:56:26,548 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:56:26,565 [DEBUG][       Thread-611324][   transport.py][1871] : starting thread (client mode): 0x81c8640
2025-07-01 16:56:26,565 [DEBUG][       Thread-611324][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:56:26,580 [DEBUG][       Thread-611324][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:56:26,580 [ INFO][       Thread-611324][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:56:26,591 [DEBUG][       Thread-611324][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:56:26,591 [DEBUG][       Thread-611324][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:56:26,591 [DEBUG][       Thread-611324][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:56:26,591 [DEBUG][       Thread-611324][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:56:26,591 [DEBUG][       Thread-611324][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:56:26,591 [DEBUG][       Thread-611324][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:56:26,591 [DEBUG][       Thread-611324][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:56:26,591 [DEBUG][       Thread-611324][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:56:26,591 [DEBUG][       Thread-611324][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:56:26,591 [DEBUG][       Thread-611324][   transport.py][1871] : client lang: <none>
2025-07-01 16:56:26,591 [DEBUG][       Thread-611324][   transport.py][1871] : server lang: <none>
2025-07-01 16:56:26,591 [DEBUG][       Thread-611324][   transport.py][1871] : kex follows: False
2025-07-01 16:56:26,591 [DEBUG][       Thread-611324][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:56:26,591 [DEBUG][       Thread-611324][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:56:26,591 [DEBUG][       Thread-611324][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:56:26,591 [DEBUG][       Thread-611324][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:56:26,591 [DEBUG][       Thread-611324][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:56:26,591 [DEBUG][       Thread-611324][   transport.py][1871] : Compression: none
2025-07-01 16:56:26,591 [DEBUG][       Thread-611324][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:56:26,647 [DEBUG][       Thread-611324][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:56:26,647 [DEBUG][       Thread-611324][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:56:26,647 [DEBUG][       Thread-611324][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:56:26,647 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:56:26,647 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:56:26,703 [DEBUG][       Thread-611324][   transport.py][1871] : userauth is OK
2025-07-01 16:56:26,704 [DEBUG][       Thread-611324][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:56:26,704 [DEBUG][       Thread-611324][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:56:26,704 [DEBUG][       Thread-611324][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:56:26,704 [DEBUG][       Thread-611324][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:56:26,723 [ INFO][       Thread-611324][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:56:26,723 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:56:26,724 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:56:27,741 [DEBUG][       Thread-611324][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:56:27,742 [DEBUG][       Thread-611324][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:56:27,792 [DEBUG][       Thread-611324][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:56:27,792 [DEBUG][       Thread-611324][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:56:27,801 [DEBUG][       Thread-611324][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:56:27,810 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:56:27,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')
2025-07-01 16:56:27,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-07-01 16:56:27,828 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:56:27,829 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:56:27,829 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:56:27,837 [DEBUG][       Thread-611324][   transport.py][1871] : EOF in transport thread
2025-07-01 16:56:28,428 [DEBUG][Thread-611326 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:56:37,460 [DEBUG][Thread-611327 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:56:37,840 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:56:37,840 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:56:37,840 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:56:37,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-07-01 16:56:38,312 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 56, 15), 10.4, 49.48, 0.0, 24.98, 13.22, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:56:38,312 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:56:15
2025-07-01 16:56:38,397 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:56:38,401 [DEBUG][       Thread-611328][   transport.py][1871] : starting thread (client mode): 0x818fdc0
2025-07-01 16:56:38,401 [DEBUG][       Thread-611328][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:56:38,421 [DEBUG][       Thread-611328][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:56:38,421 [ INFO][       Thread-611328][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:56:38,424 [DEBUG][       Thread-611328][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:56:38,424 [DEBUG][       Thread-611328][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:56:38,424 [DEBUG][       Thread-611328][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:56:38,424 [DEBUG][       Thread-611328][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:56:38,424 [DEBUG][       Thread-611328][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:56:38,424 [DEBUG][       Thread-611328][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:56:38,424 [DEBUG][       Thread-611328][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:56:38,424 [DEBUG][       Thread-611328][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:56:38,425 [DEBUG][       Thread-611328][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:56:38,425 [DEBUG][       Thread-611328][   transport.py][1871] : client lang: <none>
2025-07-01 16:56:38,425 [DEBUG][       Thread-611328][   transport.py][1871] : server lang: <none>
2025-07-01 16:56:38,425 [DEBUG][       Thread-611328][   transport.py][1871] : kex follows: False
2025-07-01 16:56:38,425 [DEBUG][       Thread-611328][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:56:38,425 [DEBUG][       Thread-611328][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:56:38,425 [DEBUG][       Thread-611328][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:56:38,425 [DEBUG][       Thread-611328][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:56:38,425 [DEBUG][       Thread-611328][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:56:38,425 [DEBUG][       Thread-611328][   transport.py][1871] : Compression: none
2025-07-01 16:56:38,425 [DEBUG][       Thread-611328][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:56:38,434 [DEBUG][       Thread-611328][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:56:38,434 [DEBUG][       Thread-611328][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:56:38,435 [DEBUG][       Thread-611328][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:56:38,435 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:56:38,435 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:56:38,436 [DEBUG][       Thread-611328][   transport.py][1871] : userauth is OK
2025-07-01 16:56:38,449 [ INFO][       Thread-611328][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:56:38,450 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:56:39,030 [DEBUG][       Thread-611328][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:56:39,030 [DEBUG][       Thread-611328][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:56:39,072 [DEBUG][       Thread-611328][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:56:39,072 [DEBUG][       Thread-611328][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:56:39,075 [DEBUG][       Thread-611328][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:56:39,086 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:56:39,087 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:56:39,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:56:39,089 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:56:39,093 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:56:39,094 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:56:39,094 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:56:39,094 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:56:39,094 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.622160 -999.00  +13.00  25.72     54   +4.00 1 2 1 1 1   887    0 8.75 -20.32 ----- 27.1 25.7 27.2 34.2 14.0 -19.6 13.8 -19.5 13.7 -18.7 14.0 -18.7
2025-07-01 16:56:39,094 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:56:39,094 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:56:39,094 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.622160
2025-07-01 16:56:39,094 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:56:39,094 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:56:39,094 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:56:39,094 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:56:39,094 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:56:39,094 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:56:15', tmtdew=10.4, humidity=49.48, cloud=0.0, wind=24.98, temperature=13.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:55:54.624', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:56:39,095 [DEBUG][       Thread-611328][   transport.py][1871] : EOF in transport thread
2025-07-01 16:56:39,165 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:56:39,174 [DEBUG][       Thread-611331][   transport.py][1871] : starting thread (client mode): 0x81a4310
2025-07-01 16:56:39,174 [DEBUG][       Thread-611331][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:56:39,190 [DEBUG][       Thread-611331][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:56:39,190 [ INFO][       Thread-611331][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:56:39,199 [DEBUG][       Thread-611331][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:56:39,199 [DEBUG][       Thread-611331][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:56:39,199 [DEBUG][       Thread-611331][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:56:39,199 [DEBUG][       Thread-611331][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:56:39,199 [DEBUG][       Thread-611331][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:56:39,200 [DEBUG][       Thread-611331][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:56:39,200 [DEBUG][       Thread-611331][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:56:39,200 [DEBUG][       Thread-611331][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:56:39,200 [DEBUG][       Thread-611331][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:56:39,200 [DEBUG][       Thread-611331][   transport.py][1871] : client lang: <none>
2025-07-01 16:56:39,200 [DEBUG][       Thread-611331][   transport.py][1871] : server lang: <none>
2025-07-01 16:56:39,200 [DEBUG][       Thread-611331][   transport.py][1871] : kex follows: False
2025-07-01 16:56:39,200 [DEBUG][       Thread-611331][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:56:39,200 [DEBUG][       Thread-611331][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:56:39,200 [DEBUG][       Thread-611331][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:56:39,200 [DEBUG][       Thread-611331][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:56:39,200 [DEBUG][       Thread-611331][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:56:39,200 [DEBUG][       Thread-611331][   transport.py][1871] : Compression: none
2025-07-01 16:56:39,200 [DEBUG][       Thread-611331][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:56:39,255 [DEBUG][       Thread-611331][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:56:39,256 [DEBUG][       Thread-611331][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:56:39,257 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:56:39,257 [DEBUG][       Thread-611331][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:56:39,258 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:56:39,311 [DEBUG][       Thread-611331][   transport.py][1871] : userauth is OK
2025-07-01 16:56:39,312 [DEBUG][       Thread-611331][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:56:39,312 [DEBUG][       Thread-611331][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:56:39,312 [DEBUG][       Thread-611331][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:56:39,312 [DEBUG][       Thread-611331][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:56:39,331 [ INFO][       Thread-611331][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:56:39,331 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:56:39,331 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:56:39,551 [DEBUG][Thread-611333 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:56:40,357 [DEBUG][       Thread-611331][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:56:40,357 [DEBUG][       Thread-611331][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:56:40,415 [DEBUG][       Thread-611331][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:56:40,416 [DEBUG][       Thread-611331][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:56:40,425 [DEBUG][       Thread-611331][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:56:40,434 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:56:40,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-07-01 16:56:40,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-07-01 16:56:40,453 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:56:40,453 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:56:40,453 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:56:40,464 [DEBUG][       Thread-611331][   transport.py][1871] : EOF in transport thread
2025-07-01 16:56:46,482 [DEBUG][Thread-611334 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:56:50,464 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:56:50,464 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:56:50,464 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:56:50,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-07-01 16:56:50,946 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 56, 47), 10.4, 49.48, 0.0, 25.39, 13.21, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:56:50,946 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:56:47
2025-07-01 16:56:51,032 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:56:51,037 [DEBUG][       Thread-611335][   transport.py][1871] : starting thread (client mode): 0x818d780
2025-07-01 16:56:51,037 [DEBUG][       Thread-611335][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:56:51,058 [DEBUG][       Thread-611335][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:56:51,058 [ INFO][       Thread-611335][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:56:51,062 [DEBUG][       Thread-611335][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:56:51,062 [DEBUG][       Thread-611335][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:56:51,062 [DEBUG][       Thread-611335][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:56:51,062 [DEBUG][       Thread-611335][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:56:51,062 [DEBUG][       Thread-611335][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:56:51,062 [DEBUG][       Thread-611335][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:56:51,062 [DEBUG][       Thread-611335][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:56:51,062 [DEBUG][       Thread-611335][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:56:51,062 [DEBUG][       Thread-611335][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:56:51,062 [DEBUG][       Thread-611335][   transport.py][1871] : client lang: <none>
2025-07-01 16:56:51,062 [DEBUG][       Thread-611335][   transport.py][1871] : server lang: <none>
2025-07-01 16:56:51,062 [DEBUG][       Thread-611335][   transport.py][1871] : kex follows: False
2025-07-01 16:56:51,062 [DEBUG][       Thread-611335][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:56:51,062 [DEBUG][       Thread-611335][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:56:51,062 [DEBUG][       Thread-611335][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:56:51,062 [DEBUG][       Thread-611335][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:56:51,062 [DEBUG][       Thread-611335][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:56:51,062 [DEBUG][       Thread-611335][   transport.py][1871] : Compression: none
2025-07-01 16:56:51,062 [DEBUG][       Thread-611335][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:56:51,079 [DEBUG][       Thread-611335][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:56:51,080 [DEBUG][       Thread-611335][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:56:51,080 [DEBUG][       Thread-611335][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:56:51,080 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:56:51,081 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:56:51,082 [DEBUG][       Thread-611335][   transport.py][1871] : userauth is OK
2025-07-01 16:56:51,106 [ INFO][       Thread-611335][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:56:51,107 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:56:51,755 [DEBUG][       Thread-611335][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:56:51,756 [DEBUG][       Thread-611335][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:56:51,797 [DEBUG][       Thread-611335][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:56:51,797 [DEBUG][       Thread-611335][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:56:51,800 [DEBUG][       Thread-611335][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:56:51,812 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:56:51,812 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:56:51,814 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:56:51,817 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:56:51,823 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:56:51,825 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:56:51,825 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:56:51,826 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:56:51,826 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.622160 -999.00  +13.00  25.72     54   +4.00 1 2 1 1 1   887    0 8.75 -20.32 ----- 27.1 25.7 27.2 34.2 14.0 -19.6 13.8 -19.5 13.7 -18.7 14.0 -18.7
2025-07-01 16:56:51,826 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:56:51,826 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:56:51,826 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.622160
2025-07-01 16:56:51,826 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:56:51,827 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:56:51,827 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:56:51,827 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:56:51,827 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:56:51,827 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:56:47', tmtdew=10.4, humidity=49.48, cloud=0.0, wind=25.39, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:55:54.624', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:56:51,828 [DEBUG][       Thread-611335][   transport.py][1871] : EOF in transport thread
2025-07-01 16:56:51,911 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:56:51,927 [DEBUG][       Thread-611338][   transport.py][1871] : starting thread (client mode): 0x81d82b0
2025-07-01 16:56:51,927 [DEBUG][       Thread-611338][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:56:51,943 [DEBUG][       Thread-611338][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:56:51,943 [ INFO][       Thread-611338][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:56:51,950 [DEBUG][       Thread-611338][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:56:51,951 [DEBUG][       Thread-611338][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:56:51,951 [DEBUG][       Thread-611338][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:56:51,951 [DEBUG][       Thread-611338][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:56:51,951 [DEBUG][       Thread-611338][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:56:51,951 [DEBUG][       Thread-611338][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:56:51,951 [DEBUG][       Thread-611338][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:56:51,951 [DEBUG][       Thread-611338][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:56:51,951 [DEBUG][       Thread-611338][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:56:51,951 [DEBUG][       Thread-611338][   transport.py][1871] : client lang: <none>
2025-07-01 16:56:51,951 [DEBUG][       Thread-611338][   transport.py][1871] : server lang: <none>
2025-07-01 16:56:51,951 [DEBUG][       Thread-611338][   transport.py][1871] : kex follows: False
2025-07-01 16:56:51,951 [DEBUG][       Thread-611338][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:56:51,951 [DEBUG][       Thread-611338][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:56:51,951 [DEBUG][       Thread-611338][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:56:51,951 [DEBUG][       Thread-611338][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:56:51,952 [DEBUG][       Thread-611338][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:56:51,952 [DEBUG][       Thread-611338][   transport.py][1871] : Compression: none
2025-07-01 16:56:51,952 [DEBUG][       Thread-611338][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:56:52,007 [DEBUG][       Thread-611338][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:56:52,007 [DEBUG][       Thread-611338][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:56:52,008 [DEBUG][       Thread-611338][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:56:52,008 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:56:52,009 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:56:52,067 [DEBUG][       Thread-611338][   transport.py][1871] : userauth is OK
2025-07-01 16:56:52,067 [DEBUG][       Thread-611338][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:56:52,067 [DEBUG][       Thread-611338][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:56:52,067 [DEBUG][       Thread-611338][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:56:52,067 [DEBUG][       Thread-611338][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:56:52,086 [ INFO][       Thread-611338][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:56:52,086 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:56:52,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:56:53,081 [DEBUG][       Thread-611338][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:56:53,081 [DEBUG][       Thread-611338][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:56:53,132 [DEBUG][       Thread-611338][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:56:53,132 [DEBUG][       Thread-611338][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:56:53,141 [DEBUG][       Thread-611338][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:56:53,150 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:56:53,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-07-01 16:56:53,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-07-01 16:56:53,168 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:56:53,169 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:56:53,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:56:53,178 [DEBUG][       Thread-611338][   transport.py][1871] : EOF in transport thread
2025-07-01 16:56:55,505 [DEBUG][Thread-611340 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:57:03,180 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:57:03,180 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:57:03,180 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:57:03,183 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:57:03,650 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 56, 47), 10.4, 49.48, 0.0, 25.39, 13.21, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:57:03,650 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:56:47
2025-07-01 16:57:03,736 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:57:03,740 [DEBUG][       Thread-611341][   transport.py][1871] : starting thread (client mode): 0x82b3d30
2025-07-01 16:57:03,740 [DEBUG][       Thread-611341][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:57:03,760 [DEBUG][       Thread-611341][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:57:03,760 [ INFO][       Thread-611341][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:57:03,764 [DEBUG][       Thread-611341][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:57:03,764 [DEBUG][       Thread-611341][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:57:03,764 [DEBUG][       Thread-611341][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:57:03,764 [DEBUG][       Thread-611341][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:57:03,764 [DEBUG][       Thread-611341][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:57:03,764 [DEBUG][       Thread-611341][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:57:03,764 [DEBUG][       Thread-611341][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:57:03,764 [DEBUG][       Thread-611341][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:57:03,764 [DEBUG][       Thread-611341][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:57:03,764 [DEBUG][       Thread-611341][   transport.py][1871] : client lang: <none>
2025-07-01 16:57:03,764 [DEBUG][       Thread-611341][   transport.py][1871] : server lang: <none>
2025-07-01 16:57:03,764 [DEBUG][       Thread-611341][   transport.py][1871] : kex follows: False
2025-07-01 16:57:03,764 [DEBUG][       Thread-611341][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:57:03,764 [DEBUG][       Thread-611341][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:57:03,764 [DEBUG][       Thread-611341][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:57:03,764 [DEBUG][       Thread-611341][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:57:03,764 [DEBUG][       Thread-611341][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:57:03,764 [DEBUG][       Thread-611341][   transport.py][1871] : Compression: none
2025-07-01 16:57:03,764 [DEBUG][       Thread-611341][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:57:03,783 [DEBUG][       Thread-611341][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:57:03,784 [DEBUG][       Thread-611341][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:57:03,784 [DEBUG][       Thread-611341][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:57:03,785 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:57:03,785 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:57:03,786 [DEBUG][       Thread-611341][   transport.py][1871] : userauth is OK
2025-07-01 16:57:03,799 [ INFO][       Thread-611341][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:57:03,800 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:57:04,455 [DEBUG][       Thread-611341][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:57:04,455 [DEBUG][       Thread-611341][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:57:04,497 [DEBUG][       Thread-611341][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:57:04,497 [DEBUG][       Thread-611341][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:57:04,500 [DEBUG][       Thread-611341][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:57:04,511 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:57:04,512 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:57:04,514 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:57:04,515 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:57:04,521 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:57:04,523 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:57:04,523 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:57:04,523 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:57:04,523 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.622855 -999.00  +13.00  34.36     54   +3.90 1 2 2 1 1   887    0 8.70 -20.72 ----- 32.5 34.4 27.2 38.2 14.0 -19.3 13.8 -19.3 13.7 -18.5 14.0 -18.6
2025-07-01 16:57:04,523 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:57:04,523 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:57:04,523 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.622855
2025-07-01 16:57:04,523 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:57:04,523 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:57:04,523 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:57:04,523 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:57:04,523 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:57:04,523 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:56:47', tmtdew=10.4, humidity=49.48, cloud=0.0, wind=25.39, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:56:54.672', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:57:04,524 [DEBUG][       Thread-611341][   transport.py][1871] : EOF in transport thread
2025-07-01 16:57:04,537 [DEBUG][Thread-611344 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:57:04,605 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:57:04,615 [DEBUG][       Thread-611345][   transport.py][1871] : starting thread (client mode): 0x827d540
2025-07-01 16:57:04,615 [DEBUG][       Thread-611345][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:57:04,633 [DEBUG][       Thread-611345][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:57:04,633 [ INFO][       Thread-611345][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:57:04,642 [DEBUG][       Thread-611345][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:57:04,642 [DEBUG][       Thread-611345][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:57:04,642 [DEBUG][       Thread-611345][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:57:04,642 [DEBUG][       Thread-611345][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:57:04,642 [DEBUG][       Thread-611345][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:57:04,642 [DEBUG][       Thread-611345][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:57:04,642 [DEBUG][       Thread-611345][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:57:04,642 [DEBUG][       Thread-611345][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:57:04,642 [DEBUG][       Thread-611345][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:57:04,642 [DEBUG][       Thread-611345][   transport.py][1871] : client lang: <none>
2025-07-01 16:57:04,642 [DEBUG][       Thread-611345][   transport.py][1871] : server lang: <none>
2025-07-01 16:57:04,642 [DEBUG][       Thread-611345][   transport.py][1871] : kex follows: False
2025-07-01 16:57:04,642 [DEBUG][       Thread-611345][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:57:04,643 [DEBUG][       Thread-611345][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:57:04,643 [DEBUG][       Thread-611345][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:57:04,643 [DEBUG][       Thread-611345][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:57:04,643 [DEBUG][       Thread-611345][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:57:04,643 [DEBUG][       Thread-611345][   transport.py][1871] : Compression: none
2025-07-01 16:57:04,643 [DEBUG][       Thread-611345][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:57:04,699 [DEBUG][       Thread-611345][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:57:04,700 [DEBUG][       Thread-611345][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:57:04,700 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:57:04,701 [DEBUG][       Thread-611345][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:57:04,702 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:57:04,755 [DEBUG][       Thread-611345][   transport.py][1871] : userauth is OK
2025-07-01 16:57:04,755 [DEBUG][       Thread-611345][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:57:04,755 [DEBUG][       Thread-611345][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:57:04,756 [DEBUG][       Thread-611345][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:57:04,756 [DEBUG][       Thread-611345][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:57:04,774 [ INFO][       Thread-611345][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:57:04,775 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:57:04,775 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:57:05,841 [DEBUG][       Thread-611345][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:57:05,842 [DEBUG][       Thread-611345][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:57:05,892 [DEBUG][       Thread-611345][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:57:05,892 [DEBUG][       Thread-611345][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:57:05,902 [DEBUG][       Thread-611345][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:57:05,911 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:57:05,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-07-01 16:57:05,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-07-01 16:57:05,929 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:57:05,930 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:57:05,930 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:57:05,939 [DEBUG][       Thread-611345][   transport.py][1871] : EOF in transport thread
2025-07-01 16:57:13,556 [DEBUG][Thread-611347 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:57:15,941 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:57:15,941 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:57:15,941 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:57:15,943 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:57:16,412 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 56, 47), 10.4, 49.48, 0.0, 25.39, 13.21, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:57:16,412 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:56:47
2025-07-01 16:57:16,497 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:57:16,503 [DEBUG][       Thread-611348][   transport.py][1871] : starting thread (client mode): 0x81e7e50
2025-07-01 16:57:16,503 [DEBUG][       Thread-611348][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:57:16,524 [DEBUG][       Thread-611348][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:57:16,524 [ INFO][       Thread-611348][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:57:16,527 [DEBUG][       Thread-611348][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:57:16,527 [DEBUG][       Thread-611348][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:57:16,527 [DEBUG][       Thread-611348][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:57:16,528 [DEBUG][       Thread-611348][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:57:16,528 [DEBUG][       Thread-611348][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:57:16,528 [DEBUG][       Thread-611348][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:57:16,528 [DEBUG][       Thread-611348][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:57:16,528 [DEBUG][       Thread-611348][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:57:16,528 [DEBUG][       Thread-611348][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:57:16,528 [DEBUG][       Thread-611348][   transport.py][1871] : client lang: <none>
2025-07-01 16:57:16,528 [DEBUG][       Thread-611348][   transport.py][1871] : server lang: <none>
2025-07-01 16:57:16,528 [DEBUG][       Thread-611348][   transport.py][1871] : kex follows: False
2025-07-01 16:57:16,528 [DEBUG][       Thread-611348][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:57:16,528 [DEBUG][       Thread-611348][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:57:16,528 [DEBUG][       Thread-611348][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:57:16,528 [DEBUG][       Thread-611348][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:57:16,528 [DEBUG][       Thread-611348][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:57:16,528 [DEBUG][       Thread-611348][   transport.py][1871] : Compression: none
2025-07-01 16:57:16,528 [DEBUG][       Thread-611348][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:57:16,545 [DEBUG][       Thread-611348][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:57:16,545 [DEBUG][       Thread-611348][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:57:16,545 [DEBUG][       Thread-611348][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:57:16,546 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:57:16,546 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:57:16,547 [DEBUG][       Thread-611348][   transport.py][1871] : userauth is OK
2025-07-01 16:57:16,560 [ INFO][       Thread-611348][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:57:16,561 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:57:17,216 [DEBUG][       Thread-611348][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:57:17,217 [DEBUG][       Thread-611348][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:57:17,261 [DEBUG][       Thread-611348][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:57:17,261 [DEBUG][       Thread-611348][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:57:17,264 [DEBUG][       Thread-611348][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:57:17,279 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:57:17,279 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:57:17,281 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:57:17,283 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:57:17,288 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:57:17,290 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:57:17,290 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:57:17,291 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:57:17,291 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.622855 -999.00  +13.00  34.36     54   +3.90 1 2 2 1 1   887    0 8.70 -20.72 ----- 32.5 34.4 27.2 38.2 14.0 -19.3 13.8 -19.3 13.7 -18.5 14.0 -18.6
2025-07-01 16:57:17,291 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:57:17,291 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:57:17,291 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.622855
2025-07-01 16:57:17,292 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:57:17,292 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:57:17,292 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:57:17,292 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:57:17,293 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:57:17,293 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:56:47', tmtdew=10.4, humidity=49.48, cloud=0.0, wind=25.39, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:56:54.672', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:57:17,294 [DEBUG][       Thread-611348][   transport.py][1871] : EOF in transport thread
2025-07-01 16:57:17,377 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:57:17,389 [DEBUG][       Thread-611351][   transport.py][1871] : starting thread (client mode): 0x8173f40
2025-07-01 16:57:17,389 [DEBUG][       Thread-611351][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:57:17,404 [DEBUG][       Thread-611351][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:57:17,405 [ INFO][       Thread-611351][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:57:17,412 [DEBUG][       Thread-611351][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:57:17,412 [DEBUG][       Thread-611351][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:57:17,412 [DEBUG][       Thread-611351][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:57:17,412 [DEBUG][       Thread-611351][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:57:17,412 [DEBUG][       Thread-611351][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:57:17,412 [DEBUG][       Thread-611351][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:57:17,412 [DEBUG][       Thread-611351][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:57:17,412 [DEBUG][       Thread-611351][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:57:17,413 [DEBUG][       Thread-611351][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:57:17,413 [DEBUG][       Thread-611351][   transport.py][1871] : client lang: <none>
2025-07-01 16:57:17,413 [DEBUG][       Thread-611351][   transport.py][1871] : server lang: <none>
2025-07-01 16:57:17,413 [DEBUG][       Thread-611351][   transport.py][1871] : kex follows: False
2025-07-01 16:57:17,413 [DEBUG][       Thread-611351][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:57:17,413 [DEBUG][       Thread-611351][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:57:17,413 [DEBUG][       Thread-611351][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:57:17,413 [DEBUG][       Thread-611351][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:57:17,413 [DEBUG][       Thread-611351][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:57:17,413 [DEBUG][       Thread-611351][   transport.py][1871] : Compression: none
2025-07-01 16:57:17,413 [DEBUG][       Thread-611351][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:57:17,474 [DEBUG][       Thread-611351][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:57:17,474 [DEBUG][       Thread-611351][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:57:17,475 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:57:17,475 [DEBUG][       Thread-611351][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:57:17,476 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:57:17,532 [DEBUG][       Thread-611351][   transport.py][1871] : userauth is OK
2025-07-01 16:57:17,532 [DEBUG][       Thread-611351][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:57:17,532 [DEBUG][       Thread-611351][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:57:17,533 [DEBUG][       Thread-611351][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:57:17,533 [DEBUG][       Thread-611351][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:57:17,552 [ INFO][       Thread-611351][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:57:17,552 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:57:17,553 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:57:18,572 [DEBUG][       Thread-611351][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:57:18,572 [DEBUG][       Thread-611351][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:57:18,620 [DEBUG][       Thread-611351][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:57:18,620 [DEBUG][       Thread-611351][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:57:18,628 [DEBUG][       Thread-611351][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:57:18,637 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:57:18,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-07-01 16:57:18,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-07-01 16:57:18,655 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:57:18,656 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:57:18,656 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:57:18,664 [DEBUG][       Thread-611351][   transport.py][1871] : EOF in transport thread
2025-07-01 16:57:22,577 [DEBUG][Thread-611353 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:57:28,666 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:57:28,667 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:57:28,667 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:57:28,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-07-01 16:57:29,154 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 57, 18), 10.38, 49.55, 0.0, 25.58, 13.21, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:57:29,154 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:57:18
2025-07-01 16:57:29,240 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:57:29,247 [DEBUG][       Thread-611354][   transport.py][1871] : starting thread (client mode): 0x81e5a20
2025-07-01 16:57:29,247 [DEBUG][       Thread-611354][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:57:29,267 [DEBUG][       Thread-611354][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:57:29,267 [ INFO][       Thread-611354][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:57:29,270 [DEBUG][       Thread-611354][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:57:29,270 [DEBUG][       Thread-611354][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:57:29,270 [DEBUG][       Thread-611354][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:57:29,270 [DEBUG][       Thread-611354][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:57:29,270 [DEBUG][       Thread-611354][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:57:29,270 [DEBUG][       Thread-611354][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:57:29,270 [DEBUG][       Thread-611354][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:57:29,270 [DEBUG][       Thread-611354][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:57:29,270 [DEBUG][       Thread-611354][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:57:29,270 [DEBUG][       Thread-611354][   transport.py][1871] : client lang: <none>
2025-07-01 16:57:29,270 [DEBUG][       Thread-611354][   transport.py][1871] : server lang: <none>
2025-07-01 16:57:29,270 [DEBUG][       Thread-611354][   transport.py][1871] : kex follows: False
2025-07-01 16:57:29,270 [DEBUG][       Thread-611354][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:57:29,270 [DEBUG][       Thread-611354][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:57:29,270 [DEBUG][       Thread-611354][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:57:29,271 [DEBUG][       Thread-611354][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:57:29,271 [DEBUG][       Thread-611354][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:57:29,271 [DEBUG][       Thread-611354][   transport.py][1871] : Compression: none
2025-07-01 16:57:29,271 [DEBUG][       Thread-611354][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:57:29,287 [DEBUG][       Thread-611354][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:57:29,288 [DEBUG][       Thread-611354][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:57:29,288 [DEBUG][       Thread-611354][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:57:29,289 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:57:29,289 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:57:29,290 [DEBUG][       Thread-611354][   transport.py][1871] : userauth is OK
2025-07-01 16:57:29,303 [ INFO][       Thread-611354][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:57:29,304 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:57:29,941 [DEBUG][       Thread-611354][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:57:29,942 [DEBUG][       Thread-611354][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:57:29,989 [DEBUG][       Thread-611354][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:57:29,989 [DEBUG][       Thread-611354][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:57:29,992 [DEBUG][       Thread-611354][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:57:30,004 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:57:30,005 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:57:30,007 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:57:30,009 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:57:30,014 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:57:30,016 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:57:30,017 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:57:30,017 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:57:30,017 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.622855 -999.00  +13.00  34.36     54   +3.90 1 2 2 1 1   887    0 8.70 -20.72 ----- 32.5 34.4 27.2 38.2 14.0 -19.3 13.8 -19.3 13.7 -18.5 14.0 -18.6
2025-07-01 16:57:30,018 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:57:30,018 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:57:30,018 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.622855
2025-07-01 16:57:30,018 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:57:30,019 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:57:30,019 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:57:30,019 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:57:30,019 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:57:30,019 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:57:18', tmtdew=10.38, humidity=49.55, cloud=0.0, wind=25.58, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:56:54.672', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:57:30,019 [DEBUG][       Thread-611354][   transport.py][1871] : EOF in transport thread
2025-07-01 16:57:30,102 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:57:30,114 [DEBUG][       Thread-611357][   transport.py][1871] : starting thread (client mode): 0x75ab1f0
2025-07-01 16:57:30,114 [DEBUG][       Thread-611357][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:57:30,131 [DEBUG][       Thread-611357][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:57:30,131 [ INFO][       Thread-611357][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:57:30,138 [DEBUG][       Thread-611357][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:57:30,138 [DEBUG][       Thread-611357][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:57:30,138 [DEBUG][       Thread-611357][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:57:30,138 [DEBUG][       Thread-611357][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:57:30,139 [DEBUG][       Thread-611357][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:57:30,139 [DEBUG][       Thread-611357][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:57:30,139 [DEBUG][       Thread-611357][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:57:30,139 [DEBUG][       Thread-611357][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:57:30,139 [DEBUG][       Thread-611357][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:57:30,139 [DEBUG][       Thread-611357][   transport.py][1871] : client lang: <none>
2025-07-01 16:57:30,139 [DEBUG][       Thread-611357][   transport.py][1871] : server lang: <none>
2025-07-01 16:57:30,139 [DEBUG][       Thread-611357][   transport.py][1871] : kex follows: False
2025-07-01 16:57:30,139 [DEBUG][       Thread-611357][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:57:30,139 [DEBUG][       Thread-611357][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:57:30,139 [DEBUG][       Thread-611357][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:57:30,139 [DEBUG][       Thread-611357][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:57:30,139 [DEBUG][       Thread-611357][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:57:30,139 [DEBUG][       Thread-611357][   transport.py][1871] : Compression: none
2025-07-01 16:57:30,139 [DEBUG][       Thread-611357][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:57:30,204 [DEBUG][       Thread-611357][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:57:30,204 [DEBUG][       Thread-611357][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:57:30,205 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:57:30,205 [DEBUG][       Thread-611357][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:57:30,206 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:57:30,263 [DEBUG][       Thread-611357][   transport.py][1871] : userauth is OK
2025-07-01 16:57:30,263 [DEBUG][       Thread-611357][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:57:30,263 [DEBUG][       Thread-611357][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:57:30,263 [DEBUG][       Thread-611357][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:57:30,263 [DEBUG][       Thread-611357][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:57:30,284 [ INFO][       Thread-611357][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:57:30,284 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:57:30,285 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:57:31,341 [DEBUG][       Thread-611357][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:57:31,342 [DEBUG][       Thread-611357][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:57:31,392 [DEBUG][       Thread-611357][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:57:31,392 [DEBUG][       Thread-611357][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:57:31,402 [DEBUG][       Thread-611357][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:57:31,411 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:57:31,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')
2025-07-01 16:57:31,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-07-01 16:57:31,437 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:57:31,437 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:57:31,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:57:31,446 [DEBUG][       Thread-611357][   transport.py][1871] : EOF in transport thread
2025-07-01 16:57:31,600 [DEBUG][Thread-611359 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:57:39,581 [DEBUG][Thread-611360 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:57:40,644 [DEBUG][Thread-611361 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:57:41,448 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:57:41,448 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:57:41,448 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:57:41,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-07-01 16:57:41,916 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 57, 18), 10.38, 49.55, 0.0, 25.58, 13.21, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:57:41,916 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:57:18
2025-07-01 16:57:42,001 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:57:42,005 [DEBUG][       Thread-611362][   transport.py][1871] : starting thread (client mode): 0x818f6a0
2025-07-01 16:57:42,005 [DEBUG][       Thread-611362][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:57:42,026 [DEBUG][       Thread-611362][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:57:42,026 [ INFO][       Thread-611362][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:57:42,029 [DEBUG][       Thread-611362][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:57:42,029 [DEBUG][       Thread-611362][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:57:42,029 [DEBUG][       Thread-611362][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:57:42,029 [DEBUG][       Thread-611362][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:57:42,029 [DEBUG][       Thread-611362][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:57:42,029 [DEBUG][       Thread-611362][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:57:42,029 [DEBUG][       Thread-611362][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:57:42,029 [DEBUG][       Thread-611362][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:57:42,029 [DEBUG][       Thread-611362][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:57:42,029 [DEBUG][       Thread-611362][   transport.py][1871] : client lang: <none>
2025-07-01 16:57:42,029 [DEBUG][       Thread-611362][   transport.py][1871] : server lang: <none>
2025-07-01 16:57:42,029 [DEBUG][       Thread-611362][   transport.py][1871] : kex follows: False
2025-07-01 16:57:42,029 [DEBUG][       Thread-611362][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:57:42,029 [DEBUG][       Thread-611362][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:57:42,029 [DEBUG][       Thread-611362][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:57:42,029 [DEBUG][       Thread-611362][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:57:42,029 [DEBUG][       Thread-611362][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:57:42,029 [DEBUG][       Thread-611362][   transport.py][1871] : Compression: none
2025-07-01 16:57:42,029 [DEBUG][       Thread-611362][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:57:42,047 [DEBUG][       Thread-611362][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:57:42,048 [DEBUG][       Thread-611362][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:57:42,048 [DEBUG][       Thread-611362][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:57:42,048 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:57:42,049 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:57:42,050 [DEBUG][       Thread-611362][   transport.py][1871] : userauth is OK
2025-07-01 16:57:42,075 [ INFO][       Thread-611362][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:57:42,076 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:57:42,705 [DEBUG][       Thread-611362][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:57:42,705 [DEBUG][       Thread-611362][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:57:42,749 [DEBUG][       Thread-611362][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:57:42,749 [DEBUG][       Thread-611362][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:57:42,752 [DEBUG][       Thread-611362][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:57:42,765 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:57:42,765 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:57:42,767 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:57:42,769 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:57:42,776 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:57:42,778 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:57:42,778 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:57:42,778 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:57:42,779 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.623202 -999.00  +13.10  44.51     53   +3.80 1 2 2 1 1   887    0 8.47 -22.10 ----- 31.3 44.5 19.4 48.7 14.0 -19.3 13.8 -19.2 13.7 -18.3 14.0 -18.4
2025-07-01 16:57:42,779 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:57:42,779 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:57:42,779 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.623202
2025-07-01 16:57:42,779 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:57:42,780 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:57:42,780 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:57:42,780 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:57:42,780 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:57:42,780 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:57:18', tmtdew=10.38, humidity=49.55, cloud=0.0, wind=25.58, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:57:24.653', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:57:42,781 [DEBUG][       Thread-611362][   transport.py][1871] : EOF in transport thread
2025-07-01 16:57:42,862 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:57:42,871 [DEBUG][       Thread-611365][   transport.py][1871] : starting thread (client mode): 0x8171480
2025-07-01 16:57:42,871 [DEBUG][       Thread-611365][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:57:42,886 [DEBUG][       Thread-611365][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:57:42,886 [ INFO][       Thread-611365][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:57:42,894 [DEBUG][       Thread-611365][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:57:42,894 [DEBUG][       Thread-611365][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:57:42,894 [DEBUG][       Thread-611365][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:57:42,894 [DEBUG][       Thread-611365][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:57:42,894 [DEBUG][       Thread-611365][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:57:42,894 [DEBUG][       Thread-611365][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:57:42,894 [DEBUG][       Thread-611365][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:57:42,894 [DEBUG][       Thread-611365][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:57:42,894 [DEBUG][       Thread-611365][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:57:42,894 [DEBUG][       Thread-611365][   transport.py][1871] : client lang: <none>
2025-07-01 16:57:42,894 [DEBUG][       Thread-611365][   transport.py][1871] : server lang: <none>
2025-07-01 16:57:42,894 [DEBUG][       Thread-611365][   transport.py][1871] : kex follows: False
2025-07-01 16:57:42,894 [DEBUG][       Thread-611365][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:57:42,894 [DEBUG][       Thread-611365][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:57:42,895 [DEBUG][       Thread-611365][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:57:42,895 [DEBUG][       Thread-611365][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:57:42,895 [DEBUG][       Thread-611365][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:57:42,895 [DEBUG][       Thread-611365][   transport.py][1871] : Compression: none
2025-07-01 16:57:42,895 [DEBUG][       Thread-611365][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:57:42,955 [DEBUG][       Thread-611365][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:57:42,955 [DEBUG][       Thread-611365][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:57:42,956 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:57:42,957 [DEBUG][       Thread-611365][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:57:42,957 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:57:43,014 [DEBUG][       Thread-611365][   transport.py][1871] : userauth is OK
2025-07-01 16:57:43,014 [DEBUG][       Thread-611365][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:57:43,015 [DEBUG][       Thread-611365][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:57:43,015 [DEBUG][       Thread-611365][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:57:43,015 [DEBUG][       Thread-611365][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:57:43,033 [ INFO][       Thread-611365][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:57:43,033 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:57:43,034 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:57:44,055 [DEBUG][       Thread-611365][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:57:44,056 [DEBUG][       Thread-611365][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:57:44,109 [DEBUG][       Thread-611365][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:57:44,109 [DEBUG][       Thread-611365][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:57:44,120 [DEBUG][       Thread-611365][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:57:44,129 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:57:44,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')
2025-07-01 16:57:44,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') -> 00000000
2025-07-01 16:57:44,150 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:57:44,150 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:57:44,151 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:57:44,159 [DEBUG][       Thread-611365][   transport.py][1871] : EOF in transport thread
2025-07-01 16:57:49,663 [DEBUG][Thread-611367 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:57:54,155 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:57:54,156 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:57:54,156 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:57:54,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-07-01 16:57:54,646 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 57, 50), 10.39, 49.5, 0.0, 31.11, 13.18, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:57:54,646 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:57:50
2025-07-01 16:57:54,730 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:57:54,736 [DEBUG][       Thread-611368][   transport.py][1871] : starting thread (client mode): 0x818f8b0
2025-07-01 16:57:54,736 [DEBUG][       Thread-611368][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:57:54,758 [DEBUG][       Thread-611368][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:57:54,758 [ INFO][       Thread-611368][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:57:54,761 [DEBUG][       Thread-611368][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:57:54,761 [DEBUG][       Thread-611368][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:57:54,761 [DEBUG][       Thread-611368][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:57:54,761 [DEBUG][       Thread-611368][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:57:54,761 [DEBUG][       Thread-611368][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:57:54,761 [DEBUG][       Thread-611368][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:57:54,762 [DEBUG][       Thread-611368][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:57:54,762 [DEBUG][       Thread-611368][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:57:54,762 [DEBUG][       Thread-611368][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:57:54,762 [DEBUG][       Thread-611368][   transport.py][1871] : client lang: <none>
2025-07-01 16:57:54,762 [DEBUG][       Thread-611368][   transport.py][1871] : server lang: <none>
2025-07-01 16:57:54,762 [DEBUG][       Thread-611368][   transport.py][1871] : kex follows: False
2025-07-01 16:57:54,762 [DEBUG][       Thread-611368][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:57:54,762 [DEBUG][       Thread-611368][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:57:54,762 [DEBUG][       Thread-611368][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:57:54,762 [DEBUG][       Thread-611368][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:57:54,762 [DEBUG][       Thread-611368][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:57:54,762 [DEBUG][       Thread-611368][   transport.py][1871] : Compression: none
2025-07-01 16:57:54,762 [DEBUG][       Thread-611368][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:57:54,779 [DEBUG][       Thread-611368][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:57:54,780 [DEBUG][       Thread-611368][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:57:54,780 [DEBUG][       Thread-611368][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:57:54,781 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:57:54,781 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:57:54,782 [DEBUG][       Thread-611368][   transport.py][1871] : userauth is OK
2025-07-01 16:57:54,795 [ INFO][       Thread-611368][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:57:54,796 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:57:55,428 [DEBUG][       Thread-611368][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:57:55,428 [DEBUG][       Thread-611368][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:57:55,469 [DEBUG][       Thread-611368][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:57:55,469 [DEBUG][       Thread-611368][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:57:55,473 [DEBUG][       Thread-611368][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:57:55,485 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:57:55,486 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:57:55,488 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:57:55,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:57:55,496 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:57:55,498 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:57:55,498 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:57:55,499 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:57:55,499 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.623202 -999.00  +13.10  44.51     53   +3.80 1 2 2 1 1   887    0 8.47 -22.10 ----- 31.3 44.5 19.4 48.7 14.0 -19.3 13.8 -19.2 13.7 -18.3 14.0 -18.4
2025-07-01 16:57:55,499 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:57:55,499 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:57:55,499 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.623202
2025-07-01 16:57:55,500 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:57:55,500 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:57:55,500 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:57:55,500 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:57:55,500 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:57:55,501 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:57:50', tmtdew=10.39, humidity=49.5, cloud=0.0, wind=31.11, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:57:24.653', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:57:55,502 [DEBUG][       Thread-611368][   transport.py][1871] : EOF in transport thread
2025-07-01 16:57:55,585 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:57:55,598 [DEBUG][       Thread-611371][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 16:57:55,598 [DEBUG][       Thread-611371][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:57:55,612 [DEBUG][       Thread-611371][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:57:55,612 [ INFO][       Thread-611371][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:57:55,621 [DEBUG][       Thread-611371][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:57:55,621 [DEBUG][       Thread-611371][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:57:55,622 [DEBUG][       Thread-611371][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:57:55,622 [DEBUG][       Thread-611371][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:57:55,622 [DEBUG][       Thread-611371][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:57:55,622 [DEBUG][       Thread-611371][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:57:55,622 [DEBUG][       Thread-611371][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:57:55,622 [DEBUG][       Thread-611371][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:57:55,622 [DEBUG][       Thread-611371][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:57:55,622 [DEBUG][       Thread-611371][   transport.py][1871] : client lang: <none>
2025-07-01 16:57:55,622 [DEBUG][       Thread-611371][   transport.py][1871] : server lang: <none>
2025-07-01 16:57:55,622 [DEBUG][       Thread-611371][   transport.py][1871] : kex follows: False
2025-07-01 16:57:55,622 [DEBUG][       Thread-611371][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:57:55,622 [DEBUG][       Thread-611371][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:57:55,622 [DEBUG][       Thread-611371][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:57:55,622 [DEBUG][       Thread-611371][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:57:55,622 [DEBUG][       Thread-611371][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:57:55,622 [DEBUG][       Thread-611371][   transport.py][1871] : Compression: none
2025-07-01 16:57:55,622 [DEBUG][       Thread-611371][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:57:55,679 [DEBUG][       Thread-611371][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:57:55,680 [DEBUG][       Thread-611371][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:57:55,680 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:57:55,681 [DEBUG][       Thread-611371][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:57:55,682 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:57:55,738 [DEBUG][       Thread-611371][   transport.py][1871] : userauth is OK
2025-07-01 16:57:55,738 [DEBUG][       Thread-611371][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:57:55,738 [DEBUG][       Thread-611371][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:57:55,738 [DEBUG][       Thread-611371][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:57:55,738 [DEBUG][       Thread-611371][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:57:55,757 [ INFO][       Thread-611371][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:57:55,757 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:57:55,757 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:57:56,782 [DEBUG][       Thread-611371][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:57:56,782 [DEBUG][       Thread-611371][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:57:56,831 [DEBUG][       Thread-611371][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:57:56,831 [DEBUG][       Thread-611371][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:57:56,839 [DEBUG][       Thread-611371][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:57:56,847 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:57:56,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')
2025-07-01 16:57:56,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') -> 00000000
2025-07-01 16:57:56,864 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:57:56,864 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:57:56,864 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:57:56,872 [DEBUG][       Thread-611371][   transport.py][1871] : EOF in transport thread
2025-07-01 16:57:58,686 [DEBUG][Thread-611373 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:58:06,865 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:58:06,865 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:58:06,865 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:58:06,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-07-01 16:58:07,341 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 57, 50), 10.39, 49.5, 0.0, 31.11, 13.18, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:58:07,341 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:57:50
2025-07-01 16:58:07,421 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:58:07,425 [DEBUG][       Thread-611374][   transport.py][1871] : starting thread (client mode): 0x81a7070
2025-07-01 16:58:07,425 [DEBUG][       Thread-611374][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:58:07,445 [DEBUG][       Thread-611374][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:58:07,445 [ INFO][       Thread-611374][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:58:07,448 [DEBUG][       Thread-611374][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:58:07,448 [DEBUG][       Thread-611374][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:58:07,448 [DEBUG][       Thread-611374][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:58:07,448 [DEBUG][       Thread-611374][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:58:07,448 [DEBUG][       Thread-611374][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:58:07,448 [DEBUG][       Thread-611374][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:58:07,448 [DEBUG][       Thread-611374][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:58:07,448 [DEBUG][       Thread-611374][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:58:07,448 [DEBUG][       Thread-611374][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:58:07,448 [DEBUG][       Thread-611374][   transport.py][1871] : client lang: <none>
2025-07-01 16:58:07,448 [DEBUG][       Thread-611374][   transport.py][1871] : server lang: <none>
2025-07-01 16:58:07,448 [DEBUG][       Thread-611374][   transport.py][1871] : kex follows: False
2025-07-01 16:58:07,448 [DEBUG][       Thread-611374][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:58:07,448 [DEBUG][       Thread-611374][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:58:07,448 [DEBUG][       Thread-611374][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:58:07,448 [DEBUG][       Thread-611374][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:58:07,448 [DEBUG][       Thread-611374][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:58:07,448 [DEBUG][       Thread-611374][   transport.py][1871] : Compression: none
2025-07-01 16:58:07,448 [DEBUG][       Thread-611374][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:58:07,469 [DEBUG][       Thread-611374][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:58:07,469 [DEBUG][       Thread-611374][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:58:07,470 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:58:07,470 [DEBUG][       Thread-611374][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:58:07,470 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:58:07,472 [DEBUG][       Thread-611374][   transport.py][1871] : userauth is OK
2025-07-01 16:58:07,496 [ INFO][       Thread-611374][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:58:07,497 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:58:07,730 [DEBUG][Thread-611376 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:58:08,062 [DEBUG][       Thread-611374][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:58:08,062 [DEBUG][       Thread-611374][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:58:08,105 [DEBUG][       Thread-611374][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:58:08,105 [DEBUG][       Thread-611374][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:58:08,109 [DEBUG][       Thread-611374][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:58:08,123 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:58:08,123 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:58:08,129 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:58:08,130 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:58:08,136 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:58:08,138 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:58:08,138 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:58:08,138 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:58:08,139 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.623549 -999.00  +13.10  38.35     53   +3.80 1 2 2 1 1   887    0 8.66 -21.19 ----- 29.4 38.4 20.4 47.0 14.0 -19.3 13.8 -19.1 13.7 -18.5 14.0 -18.4
2025-07-01 16:58:08,139 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:58:08,139 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:58:08,139 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.623549
2025-07-01 16:58:08,139 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:58:08,140 [DEBUG][       Thread-611374][   transport.py][1871] : EOF in transport thread
2025-07-01 16:58:08,140 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:58:08,141 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:58:08,141 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:58:08,141 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:58:08,141 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:57:50', tmtdew=10.39, humidity=49.5, cloud=0.0, wind=31.11, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:57:54.634', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:58:08,224 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:58:08,233 [DEBUG][       Thread-611378][   transport.py][1871] : starting thread (client mode): 0x81e7fa0
2025-07-01 16:58:08,233 [DEBUG][       Thread-611378][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:58:08,248 [DEBUG][       Thread-611378][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:58:08,249 [ INFO][       Thread-611378][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:58:08,256 [DEBUG][       Thread-611378][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:58:08,256 [DEBUG][       Thread-611378][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:58:08,256 [DEBUG][       Thread-611378][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:58:08,256 [DEBUG][       Thread-611378][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:58:08,256 [DEBUG][       Thread-611378][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:58:08,256 [DEBUG][       Thread-611378][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:58:08,256 [DEBUG][       Thread-611378][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:58:08,257 [DEBUG][       Thread-611378][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:58:08,257 [DEBUG][       Thread-611378][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:58:08,257 [DEBUG][       Thread-611378][   transport.py][1871] : client lang: <none>
2025-07-01 16:58:08,257 [DEBUG][       Thread-611378][   transport.py][1871] : server lang: <none>
2025-07-01 16:58:08,257 [DEBUG][       Thread-611378][   transport.py][1871] : kex follows: False
2025-07-01 16:58:08,257 [DEBUG][       Thread-611378][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:58:08,257 [DEBUG][       Thread-611378][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:58:08,257 [DEBUG][       Thread-611378][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:58:08,257 [DEBUG][       Thread-611378][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:58:08,257 [DEBUG][       Thread-611378][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:58:08,257 [DEBUG][       Thread-611378][   transport.py][1871] : Compression: none
2025-07-01 16:58:08,257 [DEBUG][       Thread-611378][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:58:08,314 [DEBUG][       Thread-611378][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:58:08,315 [DEBUG][       Thread-611378][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:58:08,315 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:58:08,316 [DEBUG][       Thread-611378][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:58:08,317 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:58:08,369 [DEBUG][       Thread-611378][   transport.py][1871] : userauth is OK
2025-07-01 16:58:08,369 [DEBUG][       Thread-611378][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:58:08,370 [DEBUG][       Thread-611378][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:58:08,370 [DEBUG][       Thread-611378][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:58:08,370 [DEBUG][       Thread-611378][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:58:08,388 [ INFO][       Thread-611378][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:58:08,389 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:58:08,389 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:58:09,418 [DEBUG][       Thread-611378][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:58:09,418 [DEBUG][       Thread-611378][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:58:09,467 [DEBUG][       Thread-611378][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:58:09,468 [DEBUG][       Thread-611378][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:58:09,477 [DEBUG][       Thread-611378][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:58:09,486 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:58:09,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-07-01 16:58: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-07-01 16:58:09,503 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:58:09,504 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:58:09,504 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:58:09,512 [DEBUG][       Thread-611378][   transport.py][1871] : EOF in transport thread
2025-07-01 16:58:16,753 [DEBUG][Thread-611380 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:58:19,514 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:58:19,515 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:58:19,515 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:58:19,518 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:58:19,990 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 57, 50), 10.39, 49.5, 0.0, 31.11, 13.18, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:58:19,990 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:57:50
2025-07-01 16:58:20,070 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:58:20,075 [DEBUG][       Thread-611381][   transport.py][1871] : starting thread (client mode): 0x82b2d40
2025-07-01 16:58:20,075 [DEBUG][       Thread-611381][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:58:20,096 [DEBUG][       Thread-611381][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:58:20,096 [ INFO][       Thread-611381][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:58:20,099 [DEBUG][       Thread-611381][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:58:20,099 [DEBUG][       Thread-611381][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:58:20,099 [DEBUG][       Thread-611381][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:58:20,099 [DEBUG][       Thread-611381][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:58:20,099 [DEBUG][       Thread-611381][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:58:20,099 [DEBUG][       Thread-611381][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:58:20,099 [DEBUG][       Thread-611381][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:58:20,099 [DEBUG][       Thread-611381][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:58:20,099 [DEBUG][       Thread-611381][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:58:20,099 [DEBUG][       Thread-611381][   transport.py][1871] : client lang: <none>
2025-07-01 16:58:20,099 [DEBUG][       Thread-611381][   transport.py][1871] : server lang: <none>
2025-07-01 16:58:20,099 [DEBUG][       Thread-611381][   transport.py][1871] : kex follows: False
2025-07-01 16:58:20,099 [DEBUG][       Thread-611381][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:58:20,099 [DEBUG][       Thread-611381][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:58:20,099 [DEBUG][       Thread-611381][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:58:20,099 [DEBUG][       Thread-611381][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:58:20,100 [DEBUG][       Thread-611381][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:58:20,100 [DEBUG][       Thread-611381][   transport.py][1871] : Compression: none
2025-07-01 16:58:20,100 [DEBUG][       Thread-611381][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:58:20,117 [DEBUG][       Thread-611381][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:58:20,117 [DEBUG][       Thread-611381][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:58:20,118 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:58:20,118 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:58:20,118 [DEBUG][       Thread-611381][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:58:20,120 [DEBUG][       Thread-611381][   transport.py][1871] : userauth is OK
2025-07-01 16:58:20,132 [ INFO][       Thread-611381][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:58:20,133 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:58:20,725 [DEBUG][       Thread-611381][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:58:20,725 [DEBUG][       Thread-611381][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:58:20,769 [DEBUG][       Thread-611381][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:58:20,769 [DEBUG][       Thread-611381][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:58:20,772 [DEBUG][       Thread-611381][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:58:20,784 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:58:20,785 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:58:20,787 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:58:20,789 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:58:20,795 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:58:20,797 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:58:20,797 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:58:20,797 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:58:20,798 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.623549 -999.00  +13.10  38.35     53   +3.80 1 2 2 1 1   887    0 8.66 -21.19 ----- 29.4 38.4 20.4 47.0 14.0 -19.3 13.8 -19.1 13.7 -18.5 14.0 -18.4
2025-07-01 16:58:20,798 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:58:20,798 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:58:20,798 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.623549
2025-07-01 16:58:20,798 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:58:20,799 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:58:20,799 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:58:20,799 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:58:20,799 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:58:20,799 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:57:50', tmtdew=10.39, humidity=49.5, cloud=0.0, wind=31.11, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:57:54.634', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:58:20,799 [DEBUG][       Thread-611381][   transport.py][1871] : EOF in transport thread
2025-07-01 16:58:20,883 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:58:20,894 [DEBUG][       Thread-611384][   transport.py][1871] : starting thread (client mode): 0x81ca890
2025-07-01 16:58:20,895 [DEBUG][       Thread-611384][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:58:20,911 [DEBUG][       Thread-611384][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:58:20,912 [ INFO][       Thread-611384][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:58:20,919 [DEBUG][       Thread-611384][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:58:20,919 [DEBUG][       Thread-611384][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:58:20,919 [DEBUG][       Thread-611384][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:58:20,919 [DEBUG][       Thread-611384][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:58:20,919 [DEBUG][       Thread-611384][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:58:20,919 [DEBUG][       Thread-611384][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:58:20,919 [DEBUG][       Thread-611384][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:58:20,919 [DEBUG][       Thread-611384][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:58:20,919 [DEBUG][       Thread-611384][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:58:20,919 [DEBUG][       Thread-611384][   transport.py][1871] : client lang: <none>
2025-07-01 16:58:20,919 [DEBUG][       Thread-611384][   transport.py][1871] : server lang: <none>
2025-07-01 16:58:20,920 [DEBUG][       Thread-611384][   transport.py][1871] : kex follows: False
2025-07-01 16:58:20,920 [DEBUG][       Thread-611384][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:58:20,920 [DEBUG][       Thread-611384][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:58:20,920 [DEBUG][       Thread-611384][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:58:20,920 [DEBUG][       Thread-611384][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:58:20,920 [DEBUG][       Thread-611384][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:58:20,920 [DEBUG][       Thread-611384][   transport.py][1871] : Compression: none
2025-07-01 16:58:20,920 [DEBUG][       Thread-611384][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:58:20,977 [DEBUG][       Thread-611384][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:58:20,978 [DEBUG][       Thread-611384][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:58:20,979 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:58:20,979 [DEBUG][       Thread-611384][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:58:20,980 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:58:21,033 [DEBUG][       Thread-611384][   transport.py][1871] : userauth is OK
2025-07-01 16:58:21,033 [DEBUG][       Thread-611384][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:58:21,034 [DEBUG][       Thread-611384][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:58:21,034 [DEBUG][       Thread-611384][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:58:21,034 [DEBUG][       Thread-611384][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:58:21,053 [ INFO][       Thread-611384][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:58:21,053 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:58:21,053 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:58:22,080 [DEBUG][       Thread-611384][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:58:22,080 [DEBUG][       Thread-611384][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:58:22,128 [DEBUG][       Thread-611384][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:58:22,128 [DEBUG][       Thread-611384][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:58:22,141 [DEBUG][       Thread-611384][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:58:22,150 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:58:22,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-07-01 16:58:22,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-07-01 16:58:22,168 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:58:22,169 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:58:22,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:58:22,177 [DEBUG][       Thread-611384][   transport.py][1871] : EOF in transport thread
2025-07-01 16:58:25,773 [DEBUG][Thread-611386 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:58:32,180 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:58:32,180 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:58:32,180 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:58:32,183 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 16:58:32,671 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 58, 22), 10.45, 49.1, 0.0, 29.57, 13.18, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:58:32,671 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:58:22
2025-07-01 16:58:32,753 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:58:32,758 [DEBUG][       Thread-611387][   transport.py][1871] : starting thread (client mode): 0x818c850
2025-07-01 16:58:32,758 [DEBUG][       Thread-611387][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:58:32,777 [DEBUG][       Thread-611387][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:58:32,777 [ INFO][       Thread-611387][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:58:32,781 [DEBUG][       Thread-611387][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:58:32,781 [DEBUG][       Thread-611387][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:58:32,781 [DEBUG][       Thread-611387][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:58:32,781 [DEBUG][       Thread-611387][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:58:32,781 [DEBUG][       Thread-611387][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:58:32,781 [DEBUG][       Thread-611387][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:58:32,781 [DEBUG][       Thread-611387][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:58:32,781 [DEBUG][       Thread-611387][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:58:32,781 [DEBUG][       Thread-611387][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:58:32,781 [DEBUG][       Thread-611387][   transport.py][1871] : client lang: <none>
2025-07-01 16:58:32,781 [DEBUG][       Thread-611387][   transport.py][1871] : server lang: <none>
2025-07-01 16:58:32,781 [DEBUG][       Thread-611387][   transport.py][1871] : kex follows: False
2025-07-01 16:58:32,781 [DEBUG][       Thread-611387][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:58:32,781 [DEBUG][       Thread-611387][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:58:32,781 [DEBUG][       Thread-611387][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:58:32,781 [DEBUG][       Thread-611387][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:58:32,781 [DEBUG][       Thread-611387][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:58:32,781 [DEBUG][       Thread-611387][   transport.py][1871] : Compression: none
2025-07-01 16:58:32,781 [DEBUG][       Thread-611387][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:58:32,790 [DEBUG][       Thread-611387][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:58:32,790 [DEBUG][       Thread-611387][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:58:32,790 [DEBUG][       Thread-611387][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:58:32,791 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:58:32,791 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:58:32,792 [DEBUG][       Thread-611387][   transport.py][1871] : userauth is OK
2025-07-01 16:58:32,817 [ INFO][       Thread-611387][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:58:32,817 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:58:33,439 [DEBUG][       Thread-611387][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:58:33,439 [DEBUG][       Thread-611387][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:58:33,481 [DEBUG][       Thread-611387][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:58:33,481 [DEBUG][       Thread-611387][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:58:33,484 [DEBUG][       Thread-611387][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:58:33,496 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:58:33,497 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:58:33,498 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:58:33,500 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:58:33,504 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:58:33,506 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:58:33,506 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:58:33,507 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:58:33,507 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.623549 -999.00  +13.10  38.35     53   +3.80 1 2 2 1 1   887    0 8.66 -21.19 ----- 29.4 38.4 20.4 47.0 14.0 -19.3 13.8 -19.1 13.7 -18.5 14.0 -18.4
2025-07-01 16:58:33,507 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:58:33,507 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:58:33,507 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.623549
2025-07-01 16:58:33,508 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:58:33,508 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:58:33,509 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:58:33,509 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:58:33,509 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:58:33,509 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:58:22', tmtdew=10.45, humidity=49.1, cloud=0.0, wind=29.57, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:57:54.634', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:58:33,510 [DEBUG][       Thread-611387][   transport.py][1871] : EOF in transport thread
2025-07-01 16:58:33,593 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:58:33,605 [DEBUG][       Thread-611390][   transport.py][1871] : starting thread (client mode): 0x81e6140
2025-07-01 16:58:33,605 [DEBUG][       Thread-611390][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:58:33,623 [DEBUG][       Thread-611390][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:58:33,623 [ INFO][       Thread-611390][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:58:33,631 [DEBUG][       Thread-611390][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:58:33,631 [DEBUG][       Thread-611390][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:58:33,631 [DEBUG][       Thread-611390][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:58:33,631 [DEBUG][       Thread-611390][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:58:33,631 [DEBUG][       Thread-611390][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:58:33,631 [DEBUG][       Thread-611390][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:58:33,632 [DEBUG][       Thread-611390][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:58:33,632 [DEBUG][       Thread-611390][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:58:33,632 [DEBUG][       Thread-611390][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:58:33,632 [DEBUG][       Thread-611390][   transport.py][1871] : client lang: <none>
2025-07-01 16:58:33,632 [DEBUG][       Thread-611390][   transport.py][1871] : server lang: <none>
2025-07-01 16:58:33,632 [DEBUG][       Thread-611390][   transport.py][1871] : kex follows: False
2025-07-01 16:58:33,632 [DEBUG][       Thread-611390][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:58:33,632 [DEBUG][       Thread-611390][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:58:33,632 [DEBUG][       Thread-611390][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:58:33,632 [DEBUG][       Thread-611390][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:58:33,632 [DEBUG][       Thread-611390][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:58:33,632 [DEBUG][       Thread-611390][   transport.py][1871] : Compression: none
2025-07-01 16:58:33,632 [DEBUG][       Thread-611390][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:58:33,689 [DEBUG][       Thread-611390][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:58:33,690 [DEBUG][       Thread-611390][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:58:33,690 [DEBUG][       Thread-611390][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:58:33,691 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:58:33,691 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:58:33,750 [DEBUG][       Thread-611390][   transport.py][1871] : userauth is OK
2025-07-01 16:58:33,750 [DEBUG][       Thread-611390][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:58:33,750 [DEBUG][       Thread-611390][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:58:33,750 [DEBUG][       Thread-611390][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:58:33,751 [DEBUG][       Thread-611390][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:58:33,769 [ INFO][       Thread-611390][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:58:33,770 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:58:33,770 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:58:34,768 [DEBUG][       Thread-611390][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:58:34,769 [DEBUG][       Thread-611390][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:58:34,793 [DEBUG][Thread-611392 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:58:34,820 [DEBUG][       Thread-611390][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:58:34,820 [DEBUG][       Thread-611390][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:58:34,829 [DEBUG][       Thread-611390][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:58:34,838 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:58:34,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-07-01 16:58:34,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-07-01 16:58:34,857 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:58:34,857 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:58:34,857 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:58:34,866 [DEBUG][       Thread-611390][   transport.py][1871] : EOF in transport thread
2025-07-01 16:58:39,613 [DEBUG][Thread-611393 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:58:43,827 [DEBUG][Thread-611394 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:58:44,868 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:58:44,868 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:58:44,868 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:58:44,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-07-01 16:58:45,343 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 58, 22), 10.45, 49.1, 0.0, 29.57, 13.18, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:58:45,343 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:58:22
2025-07-01 16:58:45,426 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:58:45,430 [DEBUG][       Thread-611395][   transport.py][1871] : starting thread (client mode): 0x81e66e0
2025-07-01 16:58:45,430 [DEBUG][       Thread-611395][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:58:45,451 [DEBUG][       Thread-611395][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:58:45,451 [ INFO][       Thread-611395][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:58:45,455 [DEBUG][       Thread-611395][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:58:45,455 [DEBUG][       Thread-611395][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:58:45,455 [DEBUG][       Thread-611395][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:58:45,455 [DEBUG][       Thread-611395][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:58:45,455 [DEBUG][       Thread-611395][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:58:45,455 [DEBUG][       Thread-611395][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:58:45,455 [DEBUG][       Thread-611395][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:58:45,455 [DEBUG][       Thread-611395][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:58:45,455 [DEBUG][       Thread-611395][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:58:45,455 [DEBUG][       Thread-611395][   transport.py][1871] : client lang: <none>
2025-07-01 16:58:45,455 [DEBUG][       Thread-611395][   transport.py][1871] : server lang: <none>
2025-07-01 16:58:45,455 [DEBUG][       Thread-611395][   transport.py][1871] : kex follows: False
2025-07-01 16:58:45,455 [DEBUG][       Thread-611395][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:58:45,455 [DEBUG][       Thread-611395][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:58:45,455 [DEBUG][       Thread-611395][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:58:45,455 [DEBUG][       Thread-611395][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:58:45,455 [DEBUG][       Thread-611395][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:58:45,455 [DEBUG][       Thread-611395][   transport.py][1871] : Compression: none
2025-07-01 16:58:45,455 [DEBUG][       Thread-611395][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:58:45,471 [DEBUG][       Thread-611395][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:58:45,472 [DEBUG][       Thread-611395][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:58:45,472 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:58:45,472 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:58:45,473 [DEBUG][       Thread-611395][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:58:45,473 [DEBUG][       Thread-611395][   transport.py][1871] : userauth is OK
2025-07-01 16:58:45,487 [ INFO][       Thread-611395][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:58:45,488 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:58:46,132 [DEBUG][       Thread-611395][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:58:46,132 [DEBUG][       Thread-611395][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:58:46,173 [DEBUG][       Thread-611395][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:58:46,173 [DEBUG][       Thread-611395][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:58:46,177 [DEBUG][       Thread-611395][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:58:46,188 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:58:46,188 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:58:46,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:58:46,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:58:46,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:58:46,200 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:58:46,200 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:58:46,201 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:58:46,201 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.623896 -999.00  +13.00  25.88     53   +3.90 1 2 1 1 1   887    0 8.59 -21.18 ----- 39.9 25.9 24.2 35.0 14.0 -19.2 13.8 -19.1 13.7 -18.4 14.0 -18.3
2025-07-01 16:58:46,201 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:58:46,201 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:58:46,201 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.623896
2025-07-01 16:58:46,202 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:58:46,202 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:58:46,203 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:58:46,203 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:58:46,203 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:58:46,203 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:58:22', tmtdew=10.45, humidity=49.1, cloud=0.0, wind=29.57, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:58:24.614', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:58:46,203 [DEBUG][       Thread-611395][   transport.py][1871] : EOF in transport thread
2025-07-01 16:58:46,278 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:58:46,287 [DEBUG][       Thread-611398][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 16:58:46,287 [DEBUG][       Thread-611398][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:58:46,302 [DEBUG][       Thread-611398][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:58:46,303 [ INFO][       Thread-611398][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:58:46,310 [DEBUG][       Thread-611398][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:58:46,310 [DEBUG][       Thread-611398][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:58:46,311 [DEBUG][       Thread-611398][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:58:46,311 [DEBUG][       Thread-611398][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:58:46,311 [DEBUG][       Thread-611398][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:58:46,311 [DEBUG][       Thread-611398][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:58:46,311 [DEBUG][       Thread-611398][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:58:46,311 [DEBUG][       Thread-611398][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:58:46,311 [DEBUG][       Thread-611398][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:58:46,311 [DEBUG][       Thread-611398][   transport.py][1871] : client lang: <none>
2025-07-01 16:58:46,311 [DEBUG][       Thread-611398][   transport.py][1871] : server lang: <none>
2025-07-01 16:58:46,311 [DEBUG][       Thread-611398][   transport.py][1871] : kex follows: False
2025-07-01 16:58:46,311 [DEBUG][       Thread-611398][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:58:46,311 [DEBUG][       Thread-611398][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:58:46,311 [DEBUG][       Thread-611398][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:58:46,311 [DEBUG][       Thread-611398][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:58:46,311 [DEBUG][       Thread-611398][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:58:46,311 [DEBUG][       Thread-611398][   transport.py][1871] : Compression: none
2025-07-01 16:58:46,311 [DEBUG][       Thread-611398][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:58:46,370 [DEBUG][       Thread-611398][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:58:46,371 [DEBUG][       Thread-611398][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:58:46,371 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:58:46,372 [DEBUG][       Thread-611398][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:58:46,373 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:58:46,429 [DEBUG][       Thread-611398][   transport.py][1871] : userauth is OK
2025-07-01 16:58:46,429 [DEBUG][       Thread-611398][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:58:46,429 [DEBUG][       Thread-611398][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:58:46,429 [DEBUG][       Thread-611398][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:58:46,429 [DEBUG][       Thread-611398][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:58:46,448 [ INFO][       Thread-611398][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:58:46,449 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:58:46,449 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:58:47,495 [DEBUG][       Thread-611398][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:58:47,495 [DEBUG][       Thread-611398][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:58:47,544 [DEBUG][       Thread-611398][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:58:47,544 [DEBUG][       Thread-611398][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:58:47,553 [DEBUG][       Thread-611398][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:58:47,562 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:58:47,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')
2025-07-01 16:58:47,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-07-01 16:58:47,581 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:58:47,581 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:58:47,582 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:58:47,589 [DEBUG][       Thread-611398][   transport.py][1871] : EOF in transport thread
2025-07-01 16:58:52,849 [DEBUG][Thread-611400 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:58:57,588 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:58:57,588 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:58:57,588 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:58:57,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-07-01 16:58:58,072 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 58, 54), 10.43, 49.15, 0.0, 27.07, 13.19, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:58:58,073 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:58:54
2025-07-01 16:58:58,155 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:58:58,160 [DEBUG][       Thread-611401][   transport.py][1871] : starting thread (client mode): 0x818f850
2025-07-01 16:58:58,160 [DEBUG][       Thread-611401][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:58:58,179 [DEBUG][       Thread-611401][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:58:58,179 [ INFO][       Thread-611401][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:58:58,182 [DEBUG][       Thread-611401][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:58:58,183 [DEBUG][       Thread-611401][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:58:58,183 [DEBUG][       Thread-611401][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:58:58,183 [DEBUG][       Thread-611401][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:58:58,183 [DEBUG][       Thread-611401][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:58:58,183 [DEBUG][       Thread-611401][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:58:58,183 [DEBUG][       Thread-611401][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:58:58,183 [DEBUG][       Thread-611401][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:58:58,183 [DEBUG][       Thread-611401][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:58:58,183 [DEBUG][       Thread-611401][   transport.py][1871] : client lang: <none>
2025-07-01 16:58:58,183 [DEBUG][       Thread-611401][   transport.py][1871] : server lang: <none>
2025-07-01 16:58:58,183 [DEBUG][       Thread-611401][   transport.py][1871] : kex follows: False
2025-07-01 16:58:58,183 [DEBUG][       Thread-611401][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:58:58,183 [DEBUG][       Thread-611401][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:58:58,183 [DEBUG][       Thread-611401][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:58:58,183 [DEBUG][       Thread-611401][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:58:58,183 [DEBUG][       Thread-611401][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:58:58,183 [DEBUG][       Thread-611401][   transport.py][1871] : Compression: none
2025-07-01 16:58:58,183 [DEBUG][       Thread-611401][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:58:58,199 [DEBUG][       Thread-611401][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:58:58,199 [DEBUG][       Thread-611401][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:58:58,199 [DEBUG][       Thread-611401][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:58:58,200 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:58:58,200 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:58:58,201 [DEBUG][       Thread-611401][   transport.py][1871] : userauth is OK
2025-07-01 16:58:58,226 [ INFO][       Thread-611401][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:58:58,226 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:58:58,879 [DEBUG][       Thread-611401][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:58:58,879 [DEBUG][       Thread-611401][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:58:58,921 [DEBUG][       Thread-611401][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:58:58,921 [DEBUG][       Thread-611401][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:58:58,925 [DEBUG][       Thread-611401][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:58:58,938 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:58:58,938 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:58:58,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:58:58,942 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:58:58,947 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:58:58,949 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:58:58,950 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:58:58,950 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:58:58,950 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.623896 -999.00  +13.00  25.88     53   +3.90 1 2 1 1 1   887    0 8.59 -21.18 ----- 39.9 25.9 24.2 35.0 14.0 -19.2 13.8 -19.1 13.7 -18.4 14.0 -18.3
2025-07-01 16:58:58,950 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:58:58,951 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:58:58,951 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.623896
2025-07-01 16:58:58,951 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:58:58,952 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:58:58,952 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:58:58,952 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:58:58,952 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:58:58,952 [DEBUG][       Thread-611401][   transport.py][1871] : EOF in transport thread
2025-07-01 16:58:58,952 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:58:54', tmtdew=10.43, humidity=49.15, cloud=0.0, wind=27.07, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:58:24.614', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:58:59,038 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:58:59,048 [DEBUG][       Thread-611404][   transport.py][1871] : starting thread (client mode): 0x82b1b40
2025-07-01 16:58:59,048 [DEBUG][       Thread-611404][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:58:59,063 [DEBUG][       Thread-611404][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:58:59,063 [ INFO][       Thread-611404][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:58:59,070 [DEBUG][       Thread-611404][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:58:59,070 [DEBUG][       Thread-611404][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:58:59,070 [DEBUG][       Thread-611404][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:58:59,070 [DEBUG][       Thread-611404][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:58:59,070 [DEBUG][       Thread-611404][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:58:59,070 [DEBUG][       Thread-611404][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:58:59,070 [DEBUG][       Thread-611404][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:58:59,070 [DEBUG][       Thread-611404][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:58:59,070 [DEBUG][       Thread-611404][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:58:59,070 [DEBUG][       Thread-611404][   transport.py][1871] : client lang: <none>
2025-07-01 16:58:59,070 [DEBUG][       Thread-611404][   transport.py][1871] : server lang: <none>
2025-07-01 16:58:59,070 [DEBUG][       Thread-611404][   transport.py][1871] : kex follows: False
2025-07-01 16:58:59,070 [DEBUG][       Thread-611404][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:58:59,070 [DEBUG][       Thread-611404][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:58:59,070 [DEBUG][       Thread-611404][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:58:59,070 [DEBUG][       Thread-611404][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:58:59,070 [DEBUG][       Thread-611404][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:58:59,070 [DEBUG][       Thread-611404][   transport.py][1871] : Compression: none
2025-07-01 16:58:59,070 [DEBUG][       Thread-611404][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:58:59,127 [DEBUG][       Thread-611404][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:58:59,128 [DEBUG][       Thread-611404][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:58:59,128 [DEBUG][       Thread-611404][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:58:59,128 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:58:59,129 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:58:59,187 [DEBUG][       Thread-611404][   transport.py][1871] : userauth is OK
2025-07-01 16:58:59,187 [DEBUG][       Thread-611404][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:58:59,188 [DEBUG][       Thread-611404][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:58:59,188 [DEBUG][       Thread-611404][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:58:59,188 [DEBUG][       Thread-611404][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:58:59,206 [ INFO][       Thread-611404][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:58:59,206 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:58:59,207 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:59:00,185 [DEBUG][       Thread-611404][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:59:00,186 [DEBUG][       Thread-611404][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:59:00,236 [DEBUG][       Thread-611404][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:59:00,236 [DEBUG][       Thread-611404][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:59:00,246 [DEBUG][       Thread-611404][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:59:00,260 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:59:00,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-07-01 16:59:00,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-07-01 16:59:00,277 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:59:00,278 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:59:00,278 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:59:00,286 [DEBUG][       Thread-611404][   transport.py][1871] : EOF in transport thread
2025-07-01 16:59:01,870 [DEBUG][Thread-611406 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:59:10,289 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:59:10,289 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:59:10,289 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:59:10,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-07-01 16:59:10,773 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 58, 54), 10.43, 49.15, 0.0, 27.07, 13.19, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:59:10,773 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:58:54
2025-07-01 16:59:10,859 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:59:10,863 [DEBUG][       Thread-611407][   transport.py][1871] : starting thread (client mode): 0x818d540
2025-07-01 16:59:10,863 [DEBUG][       Thread-611407][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:59:10,883 [DEBUG][       Thread-611407][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:59:10,883 [ INFO][       Thread-611407][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:59:10,886 [DEBUG][       Thread-611407][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:59:10,886 [DEBUG][       Thread-611407][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:59:10,886 [DEBUG][       Thread-611407][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:59:10,887 [DEBUG][       Thread-611407][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:59:10,887 [DEBUG][       Thread-611407][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:59:10,887 [DEBUG][       Thread-611407][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:59:10,887 [DEBUG][       Thread-611407][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:59:10,887 [DEBUG][       Thread-611407][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:59:10,887 [DEBUG][       Thread-611407][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:59:10,887 [DEBUG][       Thread-611407][   transport.py][1871] : client lang: <none>
2025-07-01 16:59:10,887 [DEBUG][       Thread-611407][   transport.py][1871] : server lang: <none>
2025-07-01 16:59:10,887 [DEBUG][       Thread-611407][   transport.py][1871] : kex follows: False
2025-07-01 16:59:10,887 [DEBUG][       Thread-611407][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:59:10,887 [DEBUG][       Thread-611407][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:59:10,887 [DEBUG][       Thread-611407][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:59:10,887 [DEBUG][       Thread-611407][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:59:10,887 [DEBUG][       Thread-611407][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:59:10,887 [DEBUG][       Thread-611407][   transport.py][1871] : Compression: none
2025-07-01 16:59:10,887 [DEBUG][       Thread-611407][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:59:10,902 [DEBUG][Thread-611409 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:59:10,903 [DEBUG][       Thread-611407][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:59:10,904 [DEBUG][       Thread-611407][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:59:10,904 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:59:10,904 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:59:10,905 [DEBUG][       Thread-611407][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:59:10,905 [DEBUG][       Thread-611407][   transport.py][1871] : userauth is OK
2025-07-01 16:59:10,930 [ INFO][       Thread-611407][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:59:10,930 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:59:11,581 [DEBUG][       Thread-611407][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:59:11,581 [DEBUG][       Thread-611407][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:59:11,625 [DEBUG][       Thread-611407][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:59:11,625 [DEBUG][       Thread-611407][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:59:11,628 [DEBUG][       Thread-611407][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:59:11,640 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:59:11,640 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:59:11,642 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:59:11,644 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:59:11,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:59:11,651 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:59:11,652 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:59:11,652 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:59:11,652 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.623896 -999.00  +13.00  25.88     53   +3.90 1 2 1 1 1   887    0 8.59 -21.18 ----- 39.9 25.9 24.2 35.0 14.0 -19.2 13.8 -19.1 13.7 -18.4 14.0 -18.3
2025-07-01 16:59:11,652 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:59:11,652 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:59:11,653 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.623896
2025-07-01 16:59:11,653 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:59:11,654 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:59:11,654 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:59:11,654 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:59:11,654 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:59:11,654 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:58:54', tmtdew=10.43, humidity=49.15, cloud=0.0, wind=27.07, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:58:24.614', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:59:11,654 [DEBUG][       Thread-611407][   transport.py][1871] : EOF in transport thread
2025-07-01 16:59:11,737 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:59:11,751 [DEBUG][       Thread-611411][   transport.py][1871] : starting thread (client mode): 0x81c9c30
2025-07-01 16:59:11,751 [DEBUG][       Thread-611411][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:59:11,767 [DEBUG][       Thread-611411][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:59:11,767 [ INFO][       Thread-611411][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:59:11,775 [DEBUG][       Thread-611411][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:59:11,775 [DEBUG][       Thread-611411][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:59:11,775 [DEBUG][       Thread-611411][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:59:11,775 [DEBUG][       Thread-611411][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:59:11,775 [DEBUG][       Thread-611411][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:59:11,775 [DEBUG][       Thread-611411][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:59:11,775 [DEBUG][       Thread-611411][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:59:11,775 [DEBUG][       Thread-611411][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:59:11,775 [DEBUG][       Thread-611411][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:59:11,775 [DEBUG][       Thread-611411][   transport.py][1871] : client lang: <none>
2025-07-01 16:59:11,775 [DEBUG][       Thread-611411][   transport.py][1871] : server lang: <none>
2025-07-01 16:59:11,775 [DEBUG][       Thread-611411][   transport.py][1871] : kex follows: False
2025-07-01 16:59:11,775 [DEBUG][       Thread-611411][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:59:11,775 [DEBUG][       Thread-611411][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:59:11,776 [DEBUG][       Thread-611411][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:59:11,776 [DEBUG][       Thread-611411][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:59:11,776 [DEBUG][       Thread-611411][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:59:11,776 [DEBUG][       Thread-611411][   transport.py][1871] : Compression: none
2025-07-01 16:59:11,776 [DEBUG][       Thread-611411][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:59:11,832 [DEBUG][       Thread-611411][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:59:11,833 [DEBUG][       Thread-611411][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:59:11,833 [DEBUG][       Thread-611411][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:59:11,833 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:59:11,834 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:59:11,889 [DEBUG][       Thread-611411][   transport.py][1871] : userauth is OK
2025-07-01 16:59:11,889 [DEBUG][       Thread-611411][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:59:11,889 [DEBUG][       Thread-611411][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:59:11,889 [DEBUG][       Thread-611411][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:59:11,889 [DEBUG][       Thread-611411][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:59:11,908 [ INFO][       Thread-611411][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:59:11,909 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:59:11,909 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:59:12,938 [DEBUG][       Thread-611411][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:59:12,938 [DEBUG][       Thread-611411][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:59:12,988 [DEBUG][       Thread-611411][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:59:12,988 [DEBUG][       Thread-611411][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:59:12,998 [DEBUG][       Thread-611411][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:59:13,007 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:59:13,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-07-01 16:59:13,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-07-01 16:59:13,025 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:59:13,025 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:59:13,026 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:59:13,033 [DEBUG][       Thread-611411][   transport.py][1871] : EOF in transport thread
2025-07-01 16:59:19,927 [DEBUG][Thread-611413 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:59:23,028 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:59:23,028 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:59:23,028 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:59:23,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-07-01 16:59:23,507 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 58, 54), 10.43, 49.15, 0.0, 27.07, 13.19, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:59:23,507 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:58:54
2025-07-01 16:59:23,593 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:59:23,600 [DEBUG][       Thread-611414][   transport.py][1871] : starting thread (client mode): 0x818efb0
2025-07-01 16:59:23,600 [DEBUG][       Thread-611414][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:59:23,625 [DEBUG][       Thread-611414][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:59:23,625 [ INFO][       Thread-611414][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:59:23,628 [DEBUG][       Thread-611414][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:59:23,629 [DEBUG][       Thread-611414][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:59:23,629 [DEBUG][       Thread-611414][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:59:23,629 [DEBUG][       Thread-611414][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:59:23,629 [DEBUG][       Thread-611414][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:59:23,629 [DEBUG][       Thread-611414][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:59:23,629 [DEBUG][       Thread-611414][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:59:23,629 [DEBUG][       Thread-611414][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:59:23,629 [DEBUG][       Thread-611414][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:59:23,629 [DEBUG][       Thread-611414][   transport.py][1871] : client lang: <none>
2025-07-01 16:59:23,629 [DEBUG][       Thread-611414][   transport.py][1871] : server lang: <none>
2025-07-01 16:59:23,629 [DEBUG][       Thread-611414][   transport.py][1871] : kex follows: False
2025-07-01 16:59:23,629 [DEBUG][       Thread-611414][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:59:23,629 [DEBUG][       Thread-611414][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:59:23,629 [DEBUG][       Thread-611414][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:59:23,629 [DEBUG][       Thread-611414][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:59:23,629 [DEBUG][       Thread-611414][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:59:23,629 [DEBUG][       Thread-611414][   transport.py][1871] : Compression: none
2025-07-01 16:59:23,629 [DEBUG][       Thread-611414][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:59:23,649 [DEBUG][       Thread-611414][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:59:23,649 [DEBUG][       Thread-611414][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:59:23,650 [DEBUG][       Thread-611414][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:59:23,650 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:59:23,650 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:59:23,651 [DEBUG][       Thread-611414][   transport.py][1871] : userauth is OK
2025-07-01 16:59:23,675 [ INFO][       Thread-611414][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:59:23,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:59:24,358 [DEBUG][       Thread-611414][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:59:24,359 [DEBUG][       Thread-611414][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:59:24,401 [DEBUG][       Thread-611414][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:59:24,401 [DEBUG][       Thread-611414][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:59:24,405 [DEBUG][       Thread-611414][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:59:24,418 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:59:24,418 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:59:24,420 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:59:24,422 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:59:24,429 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:59:24,431 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:59:24,431 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:59:24,432 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:59:24,432 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.624244 -999.00  +13.10  32.12     53   +3.80 1 2 2 1 1   887    0 8.65 -18.97 ----- 37.4 32.1 29.2 47.3 14.0 -19.1 13.8 -19.1 13.6 -18.4 14.0 -18.1
2025-07-01 16:59:24,432 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:59:24,432 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:59:24,432 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.624244
2025-07-01 16:59:24,433 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:59:24,433 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:59:24,433 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:59:24,434 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:59:24,434 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:59:24,434 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:58:54', tmtdew=10.43, humidity=49.15, cloud=0.0, wind=27.07, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:58:54.682', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:59:24,434 [DEBUG][       Thread-611414][   transport.py][1871] : EOF in transport thread
2025-07-01 16:59:24,517 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:59:24,528 [DEBUG][       Thread-611417][   transport.py][1871] : starting thread (client mode): 0x8171480
2025-07-01 16:59:24,528 [DEBUG][       Thread-611417][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:59:24,543 [DEBUG][       Thread-611417][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:59:24,543 [ INFO][       Thread-611417][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:59:24,551 [DEBUG][       Thread-611417][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:59:24,551 [DEBUG][       Thread-611417][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:59:24,551 [DEBUG][       Thread-611417][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:59:24,551 [DEBUG][       Thread-611417][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:59:24,551 [DEBUG][       Thread-611417][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:59:24,551 [DEBUG][       Thread-611417][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:59:24,551 [DEBUG][       Thread-611417][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:59:24,551 [DEBUG][       Thread-611417][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:59:24,551 [DEBUG][       Thread-611417][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:59:24,551 [DEBUG][       Thread-611417][   transport.py][1871] : client lang: <none>
2025-07-01 16:59:24,551 [DEBUG][       Thread-611417][   transport.py][1871] : server lang: <none>
2025-07-01 16:59:24,551 [DEBUG][       Thread-611417][   transport.py][1871] : kex follows: False
2025-07-01 16:59:24,551 [DEBUG][       Thread-611417][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:59:24,551 [DEBUG][       Thread-611417][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:59:24,552 [DEBUG][       Thread-611417][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:59:24,552 [DEBUG][       Thread-611417][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:59:24,552 [DEBUG][       Thread-611417][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:59:24,552 [DEBUG][       Thread-611417][   transport.py][1871] : Compression: none
2025-07-01 16:59:24,552 [DEBUG][       Thread-611417][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:59:24,608 [DEBUG][       Thread-611417][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:59:24,609 [DEBUG][       Thread-611417][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:59:24,609 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:59:24,610 [DEBUG][       Thread-611417][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:59:24,611 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:59:24,664 [DEBUG][       Thread-611417][   transport.py][1871] : userauth is OK
2025-07-01 16:59:24,664 [DEBUG][       Thread-611417][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:59:24,664 [DEBUG][       Thread-611417][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:59:24,665 [DEBUG][       Thread-611417][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:59:24,665 [DEBUG][       Thread-611417][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:59:24,683 [ INFO][       Thread-611417][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:59:24,684 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:59:24,684 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:59:25,713 [DEBUG][       Thread-611417][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:59:25,714 [DEBUG][       Thread-611417][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:59:25,765 [DEBUG][       Thread-611417][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:59:25,765 [DEBUG][       Thread-611417][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:59:25,776 [DEBUG][       Thread-611417][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:59:25,785 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:59:25,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')
2025-07-01 16:59:25,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-07-01 16:59:25,804 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:59:25,804 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:59:25,805 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:59:25,812 [DEBUG][       Thread-611417][   transport.py][1871] : EOF in transport thread
2025-07-01 16:59:28,950 [DEBUG][Thread-611419 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:59:35,815 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:59:35,816 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:59:35,816 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:59:35,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-07-01 16:59:36,301 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 59, 26), 10.36, 49.28, 0.0, 22.62, 13.15, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:59:36,301 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:59:26
2025-07-01 16:59:36,387 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:59:36,391 [DEBUG][       Thread-611420][   transport.py][1871] : starting thread (client mode): 0x81dae60
2025-07-01 16:59:36,391 [DEBUG][       Thread-611420][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:59:36,412 [DEBUG][       Thread-611420][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:59:36,412 [ INFO][       Thread-611420][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:59:36,415 [DEBUG][       Thread-611420][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:59:36,415 [DEBUG][       Thread-611420][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:59:36,415 [DEBUG][       Thread-611420][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:59:36,416 [DEBUG][       Thread-611420][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:59:36,416 [DEBUG][       Thread-611420][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:59:36,416 [DEBUG][       Thread-611420][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:59:36,416 [DEBUG][       Thread-611420][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:59:36,416 [DEBUG][       Thread-611420][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:59:36,416 [DEBUG][       Thread-611420][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:59:36,416 [DEBUG][       Thread-611420][   transport.py][1871] : client lang: <none>
2025-07-01 16:59:36,416 [DEBUG][       Thread-611420][   transport.py][1871] : server lang: <none>
2025-07-01 16:59:36,416 [DEBUG][       Thread-611420][   transport.py][1871] : kex follows: False
2025-07-01 16:59:36,416 [DEBUG][       Thread-611420][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:59:36,416 [DEBUG][       Thread-611420][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:59:36,416 [DEBUG][       Thread-611420][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:59:36,416 [DEBUG][       Thread-611420][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:59:36,416 [DEBUG][       Thread-611420][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:59:36,416 [DEBUG][       Thread-611420][   transport.py][1871] : Compression: none
2025-07-01 16:59:36,416 [DEBUG][       Thread-611420][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:59:36,431 [DEBUG][       Thread-611420][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:59:36,431 [DEBUG][       Thread-611420][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:59:36,431 [DEBUG][       Thread-611420][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:59:36,431 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:59:36,431 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:59:36,432 [DEBUG][       Thread-611420][   transport.py][1871] : userauth is OK
2025-07-01 16:59:36,456 [ INFO][       Thread-611420][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:59:36,456 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:59:37,057 [DEBUG][       Thread-611420][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:59:37,057 [DEBUG][       Thread-611420][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:59:37,101 [DEBUG][       Thread-611420][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:59:37,101 [DEBUG][       Thread-611420][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:59:37,104 [DEBUG][       Thread-611420][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:59:37,116 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:59:37,117 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:59:37,119 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:59:37,120 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:59:37,126 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:59:37,128 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:59:37,128 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:59:37,129 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:59:37,129 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.624244 -999.00  +13.10  32.12     53   +3.80 1 2 2 1 1   887    0 8.65 -18.97 ----- 37.4 32.1 29.2 47.3 14.0 -19.1 13.8 -19.1 13.6 -18.4 14.0 -18.1
2025-07-01 16:59:37,129 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:59:37,129 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:59:37,129 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.624244
2025-07-01 16:59:37,130 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:59:37,130 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:59:37,130 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:59:37,130 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:59:37,131 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:59:37,131 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:59:26', tmtdew=10.36, humidity=49.28, cloud=0.0, wind=22.62, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:58:54.682', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:59:37,132 [DEBUG][       Thread-611420][   transport.py][1871] : EOF in transport thread
2025-07-01 16:59:37,214 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:59:37,224 [DEBUG][       Thread-611423][   transport.py][1871] : starting thread (client mode): 0x83c8430
2025-07-01 16:59:37,224 [DEBUG][       Thread-611423][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:59:37,239 [DEBUG][       Thread-611423][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:59:37,239 [ INFO][       Thread-611423][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:59:37,247 [DEBUG][       Thread-611423][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:59:37,247 [DEBUG][       Thread-611423][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:59:37,247 [DEBUG][       Thread-611423][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:59:37,247 [DEBUG][       Thread-611423][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:59:37,247 [DEBUG][       Thread-611423][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:59:37,247 [DEBUG][       Thread-611423][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:59:37,247 [DEBUG][       Thread-611423][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:59:37,247 [DEBUG][       Thread-611423][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:59:37,247 [DEBUG][       Thread-611423][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:59:37,247 [DEBUG][       Thread-611423][   transport.py][1871] : client lang: <none>
2025-07-01 16:59:37,247 [DEBUG][       Thread-611423][   transport.py][1871] : server lang: <none>
2025-07-01 16:59:37,247 [DEBUG][       Thread-611423][   transport.py][1871] : kex follows: False
2025-07-01 16:59:37,247 [DEBUG][       Thread-611423][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:59:37,247 [DEBUG][       Thread-611423][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:59:37,247 [DEBUG][       Thread-611423][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:59:37,247 [DEBUG][       Thread-611423][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:59:37,247 [DEBUG][       Thread-611423][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:59:37,247 [DEBUG][       Thread-611423][   transport.py][1871] : Compression: none
2025-07-01 16:59:37,247 [DEBUG][       Thread-611423][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:59:37,304 [DEBUG][       Thread-611423][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:59:37,304 [DEBUG][       Thread-611423][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:59:37,305 [DEBUG][       Thread-611423][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:59:37,305 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:59:37,306 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:59:37,359 [DEBUG][       Thread-611423][   transport.py][1871] : userauth is OK
2025-07-01 16:59:37,359 [DEBUG][       Thread-611423][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:59:37,359 [DEBUG][       Thread-611423][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:59:37,359 [DEBUG][       Thread-611423][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:59:37,359 [DEBUG][       Thread-611423][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:59:37,373 [ INFO][       Thread-611423][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:59:37,374 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:59:37,374 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:59:37,972 [DEBUG][Thread-611425 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:59:38,421 [DEBUG][       Thread-611423][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:59:38,421 [DEBUG][       Thread-611423][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:59:38,472 [DEBUG][       Thread-611423][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:59:38,472 [DEBUG][       Thread-611423][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:59:38,482 [DEBUG][       Thread-611423][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:59:38,491 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:59: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-07-01 16:59: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-07-01 16:59:38,510 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:59:38,510 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:59:38,511 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:59:38,519 [DEBUG][       Thread-611423][   transport.py][1871] : EOF in transport thread
2025-07-01 16:59:39,644 [DEBUG][Thread-611426 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:59:47,006 [DEBUG][Thread-611427 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 16:59:48,521 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 16:59:48,521 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 16:59:48,522 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 16:59:48,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-07-01 16:59:48,987 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 59, 26), 10.36, 49.28, 0.0, 22.62, 13.15, 0, 0, 0, 2, 0, 0),)
2025-07-01 16:59:48,987 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:59:26
2025-07-01 16:59:49,072 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 16:59:49,076 [DEBUG][       Thread-611428][   transport.py][1871] : starting thread (client mode): 0x818eaa0
2025-07-01 16:59:49,076 [DEBUG][       Thread-611428][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:59:49,094 [DEBUG][       Thread-611428][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 16:59:49,094 [ INFO][       Thread-611428][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 16:59:49,098 [DEBUG][       Thread-611428][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:59:49,098 [DEBUG][       Thread-611428][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 16:59:49,098 [DEBUG][       Thread-611428][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:59:49,098 [DEBUG][       Thread-611428][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:59:49,098 [DEBUG][       Thread-611428][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:59:49,098 [DEBUG][       Thread-611428][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:59:49,098 [DEBUG][       Thread-611428][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:59:49,098 [DEBUG][       Thread-611428][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:59:49,098 [DEBUG][       Thread-611428][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:59:49,098 [DEBUG][       Thread-611428][   transport.py][1871] : client lang: <none>
2025-07-01 16:59:49,098 [DEBUG][       Thread-611428][   transport.py][1871] : server lang: <none>
2025-07-01 16:59:49,098 [DEBUG][       Thread-611428][   transport.py][1871] : kex follows: False
2025-07-01 16:59:49,098 [DEBUG][       Thread-611428][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:59:49,098 [DEBUG][       Thread-611428][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:59:49,098 [DEBUG][       Thread-611428][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:59:49,099 [DEBUG][       Thread-611428][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:59:49,099 [DEBUG][       Thread-611428][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:59:49,099 [DEBUG][       Thread-611428][   transport.py][1871] : Compression: none
2025-07-01 16:59:49,099 [DEBUG][       Thread-611428][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:59:49,116 [DEBUG][       Thread-611428][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:59:49,116 [DEBUG][       Thread-611428][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:59:49,117 [DEBUG][       Thread-611428][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 16:59:49,117 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 16:59:49,117 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 16:59:49,119 [DEBUG][       Thread-611428][   transport.py][1871] : userauth is OK
2025-07-01 16:59:49,143 [ INFO][       Thread-611428][   transport.py][1871] : Authentication (password) successful!
2025-07-01 16:59:49,144 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:59:49,771 [DEBUG][       Thread-611428][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:59:49,771 [DEBUG][       Thread-611428][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:59:49,813 [DEBUG][       Thread-611428][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:59:49,813 [DEBUG][       Thread-611428][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:59:49,816 [DEBUG][       Thread-611428][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:59:49,827 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:59:49,827 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 16:59:49,830 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 16:59:49,832 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 16:59:49,838 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:59:49,840 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:59:49,840 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:59:49,841 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 16:59:49,841 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.624591 -999.00  +13.00  23.54     53   +3.90 1 2 1 1 1   887    0 8.78 -18.23 ----- 20.6 23.5 49.7 39.5 14.0 -19.1 13.8 -19.0 13.6 -18.4 14.0 -18.4
2025-07-01 16:59:49,841 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 16:59:49,841 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 16:59:49,841 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.624591
2025-07-01 16:59:49,841 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 16:59:49,842 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 16:59:49,842 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 16:59:49,842 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 16:59:49,842 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 16:59:49,842 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:59:26', tmtdew=10.36, humidity=49.28, cloud=0.0, wind=22.62, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:59:24.662', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 16:59:49,843 [DEBUG][       Thread-611428][   transport.py][1871] : EOF in transport thread
2025-07-01 16:59:49,926 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 16:59:49,945 [DEBUG][       Thread-611431][   transport.py][1871] : starting thread (client mode): 0x81561d0
2025-07-01 16:59:49,945 [DEBUG][       Thread-611431][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 16:59:49,960 [DEBUG][       Thread-611431][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 16:59:49,961 [ INFO][       Thread-611431][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 16:59:49,969 [DEBUG][       Thread-611431][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 16:59:49,969 [DEBUG][       Thread-611431][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 16:59:49,969 [DEBUG][       Thread-611431][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 16:59:49,969 [DEBUG][       Thread-611431][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:59:49,969 [DEBUG][       Thread-611431][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 16:59:49,969 [DEBUG][       Thread-611431][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:59:49,969 [DEBUG][       Thread-611431][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 16:59:49,970 [DEBUG][       Thread-611431][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 16:59:49,970 [DEBUG][       Thread-611431][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 16:59:49,970 [DEBUG][       Thread-611431][   transport.py][1871] : client lang: <none>
2025-07-01 16:59:49,970 [DEBUG][       Thread-611431][   transport.py][1871] : server lang: <none>
2025-07-01 16:59:49,970 [DEBUG][       Thread-611431][   transport.py][1871] : kex follows: False
2025-07-01 16:59:49,970 [DEBUG][       Thread-611431][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 16:59:49,970 [DEBUG][       Thread-611431][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 16:59:49,970 [DEBUG][       Thread-611431][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 16:59:49,970 [DEBUG][       Thread-611431][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 16:59:49,970 [DEBUG][       Thread-611431][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 16:59:49,970 [DEBUG][       Thread-611431][   transport.py][1871] : Compression: none
2025-07-01 16:59:49,970 [DEBUG][       Thread-611431][   transport.py][1871] : === End of kex handshake ===
2025-07-01 16:59:50,032 [DEBUG][       Thread-611431][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 16:59:50,032 [DEBUG][       Thread-611431][   transport.py][1871] : Switch to new keys ...
2025-07-01 16:59:50,033 [DEBUG][       Thread-611431][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 16:59:50,033 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 16:59:50,034 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 16:59:50,089 [DEBUG][       Thread-611431][   transport.py][1871] : userauth is OK
2025-07-01 16:59:50,090 [DEBUG][       Thread-611431][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 16:59:50,090 [DEBUG][       Thread-611431][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 16:59:50,090 [DEBUG][       Thread-611431][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 16:59:50,090 [DEBUG][       Thread-611431][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 16:59:50,108 [ INFO][       Thread-611431][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 16:59:50,109 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 16:59:50,109 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 16:59:51,165 [DEBUG][       Thread-611431][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 16:59:51,165 [DEBUG][       Thread-611431][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 16:59:51,216 [DEBUG][       Thread-611431][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 16:59:51,216 [DEBUG][       Thread-611431][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 16:59:51,226 [DEBUG][       Thread-611431][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 16:59:51,234 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 16:59:51,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-07-01 16:59:51,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-07-01 16:59:51,253 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 16:59:51,253 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 16:59:51,254 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 16:59:51,261 [DEBUG][       Thread-611431][   transport.py][1871] : EOF in transport thread
2025-07-01 16:59:56,031 [DEBUG][Thread-611433 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:00:01,264 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:00:01,264 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:00:01,264 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:00:01,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-07-01 17:00:01,810 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 59, 58), 10.36, 49.27, 0.0, 21.75, 13.13, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:00:01,810 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:59:58
2025-07-01 17:00:01,897 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:00:01,901 [DEBUG][       Thread-611434][   transport.py][1871] : starting thread (client mode): 0x81a7100
2025-07-01 17:00:01,901 [DEBUG][       Thread-611434][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:00:01,920 [DEBUG][       Thread-611434][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:00:01,920 [ INFO][       Thread-611434][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:00:01,923 [DEBUG][       Thread-611434][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:00:01,923 [DEBUG][       Thread-611434][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:00:01,923 [DEBUG][       Thread-611434][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:00:01,923 [DEBUG][       Thread-611434][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:00:01,923 [DEBUG][       Thread-611434][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:00:01,923 [DEBUG][       Thread-611434][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:00:01,923 [DEBUG][       Thread-611434][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:00:01,923 [DEBUG][       Thread-611434][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:00:01,923 [DEBUG][       Thread-611434][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:00:01,923 [DEBUG][       Thread-611434][   transport.py][1871] : client lang: <none>
2025-07-01 17:00:01,923 [DEBUG][       Thread-611434][   transport.py][1871] : server lang: <none>
2025-07-01 17:00:01,923 [DEBUG][       Thread-611434][   transport.py][1871] : kex follows: False
2025-07-01 17:00:01,923 [DEBUG][       Thread-611434][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:00:01,923 [DEBUG][       Thread-611434][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:00:01,923 [DEBUG][       Thread-611434][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:00:01,923 [DEBUG][       Thread-611434][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:00:01,923 [DEBUG][       Thread-611434][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:00:01,923 [DEBUG][       Thread-611434][   transport.py][1871] : Compression: none
2025-07-01 17:00:01,923 [DEBUG][       Thread-611434][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:00:01,938 [DEBUG][       Thread-611434][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:00:01,938 [DEBUG][       Thread-611434][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:00:01,938 [DEBUG][       Thread-611434][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:00:01,938 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:00:01,938 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:00:01,939 [DEBUG][       Thread-611434][   transport.py][1871] : userauth is OK
2025-07-01 17:00:01,963 [ INFO][       Thread-611434][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:00:01,963 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:00:02,608 [DEBUG][       Thread-611434][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:00:02,609 [DEBUG][       Thread-611434][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:00:02,653 [DEBUG][       Thread-611434][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:00:02,653 [DEBUG][       Thread-611434][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:00:02,655 [DEBUG][       Thread-611434][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:00:02,668 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:00:02,669 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:00:02,670 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:00:02,671 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:00:02,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:00:02,676 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:00:02,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:00:02,677 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:00:02,677 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.624591 -999.00  +13.00  23.54     53   +3.90 1 2 1 1 1   887    0 8.78 -18.23 ----- 20.6 23.5 49.7 39.5 14.0 -19.1 13.8 -19.0 13.6 -18.4 14.0 -18.4
2025-07-01 17:00:02,677 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:00:02,677 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:00:02,677 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.624591
2025-07-01 17:00:02,678 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:00:02,678 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:00:02,678 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:00:02,678 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:00:02,678 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:00:02,678 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:59:58', tmtdew=10.36, humidity=49.27, cloud=0.0, wind=21.75, temperature=13.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:59:24.662', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:00:02,679 [DEBUG][       Thread-611434][   transport.py][1871] : EOF in transport thread
2025-07-01 17:00:02,761 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:00:02,772 [DEBUG][       Thread-611437][   transport.py][1871] : starting thread (client mode): 0x81e62f0
2025-07-01 17:00:02,772 [DEBUG][       Thread-611437][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:00:02,787 [DEBUG][       Thread-611437][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:00:02,787 [ INFO][       Thread-611437][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:00:02,797 [DEBUG][       Thread-611437][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:00:02,798 [DEBUG][       Thread-611437][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:00:02,798 [DEBUG][       Thread-611437][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:00:02,798 [DEBUG][       Thread-611437][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:00:02,798 [DEBUG][       Thread-611437][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:00:02,798 [DEBUG][       Thread-611437][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:00:02,798 [DEBUG][       Thread-611437][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:00:02,798 [DEBUG][       Thread-611437][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:00:02,798 [DEBUG][       Thread-611437][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:00:02,798 [DEBUG][       Thread-611437][   transport.py][1871] : client lang: <none>
2025-07-01 17:00:02,798 [DEBUG][       Thread-611437][   transport.py][1871] : server lang: <none>
2025-07-01 17:00:02,798 [DEBUG][       Thread-611437][   transport.py][1871] : kex follows: False
2025-07-01 17:00:02,798 [DEBUG][       Thread-611437][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:00:02,798 [DEBUG][       Thread-611437][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:00:02,798 [DEBUG][       Thread-611437][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:00:02,798 [DEBUG][       Thread-611437][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:00:02,798 [DEBUG][       Thread-611437][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:00:02,799 [DEBUG][       Thread-611437][   transport.py][1871] : Compression: none
2025-07-01 17:00:02,799 [DEBUG][       Thread-611437][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:00:02,858 [DEBUG][       Thread-611437][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:00:02,859 [DEBUG][       Thread-611437][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:00:02,859 [DEBUG][       Thread-611437][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:00:02,859 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:00:02,860 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:00:02,929 [DEBUG][       Thread-611437][   transport.py][1871] : userauth is OK
2025-07-01 17:00:02,929 [DEBUG][       Thread-611437][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:00:02,929 [DEBUG][       Thread-611437][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:00:02,929 [DEBUG][       Thread-611437][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:00:02,929 [DEBUG][       Thread-611437][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:00:02,946 [ INFO][       Thread-611437][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:00:02,946 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:00:02,946 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:00:03,954 [DEBUG][       Thread-611437][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:00:03,954 [DEBUG][       Thread-611437][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:00:04,004 [DEBUG][       Thread-611437][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:00:04,004 [DEBUG][       Thread-611437][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:00:04,013 [DEBUG][       Thread-611437][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:00:04,022 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:00:04,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')
2025-07-01 17:00:04,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-07-01 17:00:04,041 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:00:04,041 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:00:04,041 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:00:04,049 [DEBUG][       Thread-611437][   transport.py][1871] : EOF in transport thread
2025-07-01 17:00:05,052 [DEBUG][Thread-611439 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:00:14,052 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:00:14,052 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:00:14,052 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:00:14,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-07-01 17:00:14,086 [DEBUG][Thread-611440 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:00:14,537 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 59, 58), 10.36, 49.27, 0.0, 21.75, 13.13, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:00:14,537 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:59:58
2025-07-01 17:00:14,616 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:00:14,621 [DEBUG][       Thread-611441][   transport.py][1871] : starting thread (client mode): 0x81a5db0
2025-07-01 17:00:14,621 [DEBUG][       Thread-611441][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:00:14,642 [DEBUG][       Thread-611441][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:00:14,642 [ INFO][       Thread-611441][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:00:14,645 [DEBUG][       Thread-611441][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:00:14,646 [DEBUG][       Thread-611441][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:00:14,646 [DEBUG][       Thread-611441][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:00:14,646 [DEBUG][       Thread-611441][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:00:14,646 [DEBUG][       Thread-611441][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:00:14,646 [DEBUG][       Thread-611441][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:00:14,646 [DEBUG][       Thread-611441][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:00:14,646 [DEBUG][       Thread-611441][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:00:14,646 [DEBUG][       Thread-611441][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:00:14,646 [DEBUG][       Thread-611441][   transport.py][1871] : client lang: <none>
2025-07-01 17:00:14,646 [DEBUG][       Thread-611441][   transport.py][1871] : server lang: <none>
2025-07-01 17:00:14,646 [DEBUG][       Thread-611441][   transport.py][1871] : kex follows: False
2025-07-01 17:00:14,646 [DEBUG][       Thread-611441][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:00:14,646 [DEBUG][       Thread-611441][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:00:14,646 [DEBUG][       Thread-611441][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:00:14,646 [DEBUG][       Thread-611441][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:00:14,646 [DEBUG][       Thread-611441][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:00:14,646 [DEBUG][       Thread-611441][   transport.py][1871] : Compression: none
2025-07-01 17:00:14,646 [DEBUG][       Thread-611441][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:00:14,665 [DEBUG][       Thread-611441][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:00:14,665 [DEBUG][       Thread-611441][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:00:14,666 [DEBUG][       Thread-611441][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:00:14,666 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:00:14,666 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:00:14,667 [DEBUG][       Thread-611441][   transport.py][1871] : userauth is OK
2025-07-01 17:00:14,692 [ INFO][       Thread-611441][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:00:14,693 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:00:15,351 [DEBUG][       Thread-611441][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:00:15,352 [DEBUG][       Thread-611441][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:00:15,393 [DEBUG][       Thread-611441][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:00:15,393 [DEBUG][       Thread-611441][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:00:15,397 [DEBUG][       Thread-611441][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:00:15,409 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:00:15,410 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:00:15,411 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:00:15,413 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:00:15,418 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:00:15,420 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:00:15,420 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:00:15,421 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:00:15,421 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.624591 -999.00  +13.00  23.54     53   +3.90 1 2 1 1 1   887    0 8.78 -18.23 ----- 20.6 23.5 49.7 39.5 14.0 -19.1 13.8 -19.0 13.6 -18.4 14.0 -18.4
2025-07-01 17:00:15,421 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:00:15,421 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:00:15,421 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.624591
2025-07-01 17:00:15,421 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:00:15,422 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:00:15,422 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:00:15,422 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:00:15,422 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:00:15,422 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:59:58', tmtdew=10.36, humidity=49.27, cloud=0.0, wind=21.75, temperature=13.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:59:24.662', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:00:15,423 [DEBUG][       Thread-611441][   transport.py][1871] : EOF in transport thread
2025-07-01 17:00:15,506 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:00:15,521 [DEBUG][       Thread-611444][   transport.py][1871] : starting thread (client mode): 0x75a8490
2025-07-01 17:00:15,521 [DEBUG][       Thread-611444][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:00:15,536 [DEBUG][       Thread-611444][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:00:15,536 [ INFO][       Thread-611444][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:00:15,544 [DEBUG][       Thread-611444][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:00:15,544 [DEBUG][       Thread-611444][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:00:15,544 [DEBUG][       Thread-611444][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:00:15,544 [DEBUG][       Thread-611444][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:00:15,544 [DEBUG][       Thread-611444][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:00:15,544 [DEBUG][       Thread-611444][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:00:15,544 [DEBUG][       Thread-611444][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:00:15,544 [DEBUG][       Thread-611444][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:00:15,544 [DEBUG][       Thread-611444][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:00:15,544 [DEBUG][       Thread-611444][   transport.py][1871] : client lang: <none>
2025-07-01 17:00:15,544 [DEBUG][       Thread-611444][   transport.py][1871] : server lang: <none>
2025-07-01 17:00:15,544 [DEBUG][       Thread-611444][   transport.py][1871] : kex follows: False
2025-07-01 17:00:15,544 [DEBUG][       Thread-611444][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:00:15,544 [DEBUG][       Thread-611444][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:00:15,544 [DEBUG][       Thread-611444][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:00:15,544 [DEBUG][       Thread-611444][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:00:15,544 [DEBUG][       Thread-611444][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:00:15,544 [DEBUG][       Thread-611444][   transport.py][1871] : Compression: none
2025-07-01 17:00:15,544 [DEBUG][       Thread-611444][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:00:15,610 [DEBUG][       Thread-611444][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:00:15,610 [DEBUG][       Thread-611444][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:00:15,611 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:00:15,612 [DEBUG][       Thread-611444][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:00:15,612 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:00:15,667 [DEBUG][       Thread-611444][   transport.py][1871] : userauth is OK
2025-07-01 17:00:15,668 [DEBUG][       Thread-611444][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:00:15,668 [DEBUG][       Thread-611444][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:00:15,668 [DEBUG][       Thread-611444][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:00:15,668 [DEBUG][       Thread-611444][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:00:15,687 [ INFO][       Thread-611444][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:00:15,687 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:00:15,688 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:00:16,684 [DEBUG][       Thread-611444][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:00:16,684 [DEBUG][       Thread-611444][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:00:16,732 [DEBUG][       Thread-611444][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:00:16,732 [DEBUG][       Thread-611444][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:00:16,741 [DEBUG][       Thread-611444][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:00:16,750 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:00:16,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-07-01 17:00:16,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-07-01 17:00:16,769 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:00:16,769 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:00:16,769 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:00:16,777 [DEBUG][       Thread-611444][   transport.py][1871] : EOF in transport thread
2025-07-01 17:00:23,104 [DEBUG][Thread-611446 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:00:26,780 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:00:26,780 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:00:26,780 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:00:26,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-07-01 17:00:27,262 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 16, 59, 58), 10.36, 49.27, 0.0, 21.75, 13.13, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:00:27,262 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 16:59:58
2025-07-01 17:00:27,347 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:00:27,351 [DEBUG][       Thread-611447][   transport.py][1871] : starting thread (client mode): 0x81a5ed0
2025-07-01 17:00:27,351 [DEBUG][       Thread-611447][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:00:27,371 [DEBUG][       Thread-611447][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:00:27,371 [ INFO][       Thread-611447][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:00:27,374 [DEBUG][       Thread-611447][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:00:27,375 [DEBUG][       Thread-611447][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:00:27,375 [DEBUG][       Thread-611447][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:00:27,375 [DEBUG][       Thread-611447][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:00:27,375 [DEBUG][       Thread-611447][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:00:27,375 [DEBUG][       Thread-611447][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:00:27,375 [DEBUG][       Thread-611447][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:00:27,375 [DEBUG][       Thread-611447][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:00:27,375 [DEBUG][       Thread-611447][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:00:27,375 [DEBUG][       Thread-611447][   transport.py][1871] : client lang: <none>
2025-07-01 17:00:27,375 [DEBUG][       Thread-611447][   transport.py][1871] : server lang: <none>
2025-07-01 17:00:27,375 [DEBUG][       Thread-611447][   transport.py][1871] : kex follows: False
2025-07-01 17:00:27,375 [DEBUG][       Thread-611447][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:00:27,375 [DEBUG][       Thread-611447][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:00:27,375 [DEBUG][       Thread-611447][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:00:27,375 [DEBUG][       Thread-611447][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:00:27,375 [DEBUG][       Thread-611447][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:00:27,375 [DEBUG][       Thread-611447][   transport.py][1871] : Compression: none
2025-07-01 17:00:27,375 [DEBUG][       Thread-611447][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:00:27,393 [DEBUG][       Thread-611447][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:00:27,393 [DEBUG][       Thread-611447][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:00:27,394 [DEBUG][       Thread-611447][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:00:27,394 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:00:27,394 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:00:27,395 [DEBUG][       Thread-611447][   transport.py][1871] : userauth is OK
2025-07-01 17:00:27,408 [ INFO][       Thread-611447][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:00:27,408 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:00:28,026 [DEBUG][       Thread-611447][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:00:28,027 [DEBUG][       Thread-611447][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:00:28,068 [DEBUG][       Thread-611447][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:00:28,069 [DEBUG][       Thread-611447][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:00:28,071 [DEBUG][       Thread-611447][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:00:28,085 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:00:28,085 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:00:28,086 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:00:28,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:00:28,093 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:00:28,095 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:00:28,095 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:00:28,096 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:00:28,096 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.624938 -999.00  +13.00  34.66     53   +3.80 1 2 2 1 1   887    0 8.57 -17.75 ----- 40.1 34.7 32.0 46.4 13.9 -19.0 13.8 -19.1 13.6 -18.3 14.0 -18.2
2025-07-01 17:00:28,096 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:00:28,096 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:00:28,096 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.624938
2025-07-01 17:00:28,097 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:00:28,097 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:00:28,097 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:00:28,097 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:00:28,097 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:00:28,097 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T16:59:58', tmtdew=10.36, humidity=49.27, cloud=0.0, wind=21.75, temperature=13.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:59:54.643', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:00:28,098 [DEBUG][       Thread-611447][   transport.py][1871] : EOF in transport thread
2025-07-01 17:00:28,181 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:00:28,193 [DEBUG][       Thread-611450][   transport.py][1871] : starting thread (client mode): 0x81a59c0
2025-07-01 17:00:28,193 [DEBUG][       Thread-611450][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:00:28,208 [DEBUG][       Thread-611450][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:00:28,208 [ INFO][       Thread-611450][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:00:28,215 [DEBUG][       Thread-611450][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:00:28,215 [DEBUG][       Thread-611450][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:00:28,215 [DEBUG][       Thread-611450][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:00:28,215 [DEBUG][       Thread-611450][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:00:28,215 [DEBUG][       Thread-611450][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:00:28,215 [DEBUG][       Thread-611450][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:00:28,215 [DEBUG][       Thread-611450][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:00:28,215 [DEBUG][       Thread-611450][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:00:28,215 [DEBUG][       Thread-611450][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:00:28,215 [DEBUG][       Thread-611450][   transport.py][1871] : client lang: <none>
2025-07-01 17:00:28,215 [DEBUG][       Thread-611450][   transport.py][1871] : server lang: <none>
2025-07-01 17:00:28,215 [DEBUG][       Thread-611450][   transport.py][1871] : kex follows: False
2025-07-01 17:00:28,215 [DEBUG][       Thread-611450][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:00:28,215 [DEBUG][       Thread-611450][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:00:28,215 [DEBUG][       Thread-611450][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:00:28,215 [DEBUG][       Thread-611450][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:00:28,215 [DEBUG][       Thread-611450][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:00:28,215 [DEBUG][       Thread-611450][   transport.py][1871] : Compression: none
2025-07-01 17:00:28,215 [DEBUG][       Thread-611450][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:00:28,276 [DEBUG][       Thread-611450][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:00:28,276 [DEBUG][       Thread-611450][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:00:28,277 [DEBUG][       Thread-611450][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:00:28,277 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:00:28,278 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:00:28,335 [DEBUG][       Thread-611450][   transport.py][1871] : userauth is OK
2025-07-01 17:00:28,335 [DEBUG][       Thread-611450][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:00:28,335 [DEBUG][       Thread-611450][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:00:28,335 [DEBUG][       Thread-611450][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:00:28,335 [DEBUG][       Thread-611450][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:00:28,357 [ INFO][       Thread-611450][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:00:28,357 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:00:28,357 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:00:29,432 [DEBUG][       Thread-611450][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:00:29,432 [DEBUG][       Thread-611450][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:00:29,480 [DEBUG][       Thread-611450][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:00:29,480 [DEBUG][       Thread-611450][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:00:29,491 [DEBUG][       Thread-611450][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:00:29,501 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:00:29,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-07-01 17:00:29,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-07-01 17:00:29,519 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:00:29,519 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:00:29,520 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:00:29,528 [DEBUG][       Thread-611450][   transport.py][1871] : EOF in transport thread
2025-07-01 17:00:32,125 [DEBUG][Thread-611452 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:00:39,530 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:00:39,531 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:00:39,531 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:00:39,534 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:00:39,670 [DEBUG][Thread-611453 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:00:40,019 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 0, 29), 10.37, 49.57, 0.0, 24.97, 13.13, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:00:40,019 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:00:29
2025-07-01 17:00:40,104 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:00:40,108 [DEBUG][       Thread-611454][   transport.py][1871] : starting thread (client mode): 0x81e6530
2025-07-01 17:00:40,108 [DEBUG][       Thread-611454][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:00:40,130 [DEBUG][       Thread-611454][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:00:40,130 [ INFO][       Thread-611454][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:00:40,133 [DEBUG][       Thread-611454][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:00:40,133 [DEBUG][       Thread-611454][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:00:40,133 [DEBUG][       Thread-611454][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:00:40,133 [DEBUG][       Thread-611454][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:00:40,133 [DEBUG][       Thread-611454][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:00:40,133 [DEBUG][       Thread-611454][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:00:40,133 [DEBUG][       Thread-611454][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:00:40,134 [DEBUG][       Thread-611454][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:00:40,134 [DEBUG][       Thread-611454][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:00:40,134 [DEBUG][       Thread-611454][   transport.py][1871] : client lang: <none>
2025-07-01 17:00:40,134 [DEBUG][       Thread-611454][   transport.py][1871] : server lang: <none>
2025-07-01 17:00:40,134 [DEBUG][       Thread-611454][   transport.py][1871] : kex follows: False
2025-07-01 17:00:40,134 [DEBUG][       Thread-611454][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:00:40,134 [DEBUG][       Thread-611454][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:00:40,134 [DEBUG][       Thread-611454][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:00:40,134 [DEBUG][       Thread-611454][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:00:40,134 [DEBUG][       Thread-611454][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:00:40,134 [DEBUG][       Thread-611454][   transport.py][1871] : Compression: none
2025-07-01 17:00:40,134 [DEBUG][       Thread-611454][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:00:40,152 [DEBUG][       Thread-611454][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:00:40,152 [DEBUG][       Thread-611454][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:00:40,153 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:00:40,153 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:00:40,153 [DEBUG][       Thread-611454][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:00:40,154 [DEBUG][       Thread-611454][   transport.py][1871] : userauth is OK
2025-07-01 17:00:40,168 [ INFO][       Thread-611454][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:00:40,168 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:00:40,821 [DEBUG][       Thread-611454][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:00:40,821 [DEBUG][       Thread-611454][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:00:40,865 [DEBUG][       Thread-611454][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:00:40,865 [DEBUG][       Thread-611454][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:00:40,868 [DEBUG][       Thread-611454][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:00:40,880 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:00:40,881 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:00:40,883 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:00:40,885 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:00:40,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:00:40,893 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:00:40,893 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:00:40,894 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:00:40,894 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.624938 -999.00  +13.00  34.66     53   +3.80 1 2 2 1 1   887    0 8.57 -17.75 ----- 40.1 34.7 32.0 46.4 13.9 -19.0 13.8 -19.1 13.6 -18.3 14.0 -18.2
2025-07-01 17:00:40,894 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:00:40,894 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:00:40,895 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.624938
2025-07-01 17:00:40,895 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:00:40,895 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:00:40,896 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:00:40,896 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:00:40,896 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:00:40,896 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:00:29', tmtdew=10.37, humidity=49.57, cloud=0.0, wind=24.97, temperature=13.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T14:59:54.643', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:00:40,897 [DEBUG][       Thread-611454][   transport.py][1871] : EOF in transport thread
2025-07-01 17:00:40,980 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:00:40,989 [DEBUG][       Thread-611457][   transport.py][1871] : starting thread (client mode): 0x81a6a40
2025-07-01 17:00:40,989 [DEBUG][       Thread-611457][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:00:41,007 [DEBUG][       Thread-611457][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:00:41,007 [ INFO][       Thread-611457][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:00:41,016 [DEBUG][       Thread-611457][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:00:41,016 [DEBUG][       Thread-611457][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:00:41,016 [DEBUG][       Thread-611457][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:00:41,016 [DEBUG][       Thread-611457][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:00:41,016 [DEBUG][       Thread-611457][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:00:41,016 [DEBUG][       Thread-611457][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:00:41,016 [DEBUG][       Thread-611457][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:00:41,016 [DEBUG][       Thread-611457][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:00:41,016 [DEBUG][       Thread-611457][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:00:41,017 [DEBUG][       Thread-611457][   transport.py][1871] : client lang: <none>
2025-07-01 17:00:41,017 [DEBUG][       Thread-611457][   transport.py][1871] : server lang: <none>
2025-07-01 17:00:41,017 [DEBUG][       Thread-611457][   transport.py][1871] : kex follows: False
2025-07-01 17:00:41,017 [DEBUG][       Thread-611457][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:00:41,017 [DEBUG][       Thread-611457][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:00:41,017 [DEBUG][       Thread-611457][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:00:41,017 [DEBUG][       Thread-611457][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:00:41,017 [DEBUG][       Thread-611457][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:00:41,017 [DEBUG][       Thread-611457][   transport.py][1871] : Compression: none
2025-07-01 17:00:41,017 [DEBUG][       Thread-611457][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:00:41,074 [DEBUG][       Thread-611457][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:00:41,075 [DEBUG][       Thread-611457][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:00:41,075 [DEBUG][       Thread-611457][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:00:41,075 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:00:41,076 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:00:41,131 [DEBUG][       Thread-611457][   transport.py][1871] : userauth is OK
2025-07-01 17:00:41,131 [DEBUG][       Thread-611457][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:00:41,131 [DEBUG][       Thread-611457][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:00:41,132 [DEBUG][       Thread-611457][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:00:41,132 [DEBUG][       Thread-611457][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:00:41,147 [DEBUG][Thread-611459 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:00:41,152 [ INFO][       Thread-611457][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:00:41,152 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:00:41,152 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:00:42,168 [DEBUG][       Thread-611457][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:00:42,168 [DEBUG][       Thread-611457][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:00:42,216 [DEBUG][       Thread-611457][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:00:42,216 [DEBUG][       Thread-611457][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:00:42,227 [DEBUG][       Thread-611457][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:00:42,235 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:00:42,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-07-01 17:00: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-07-01 17:00:42,254 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:00:42,254 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:00:42,254 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:00:42,262 [DEBUG][       Thread-611457][   transport.py][1871] : EOF in transport thread
2025-07-01 17:00:50,182 [DEBUG][Thread-611460 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:00:52,260 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:00:52,260 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:00:52,260 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:00:52,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-07-01 17:00:52,745 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 0, 29), 10.37, 49.57, 0.0, 24.97, 13.13, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:00:52,745 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:00:29
2025-07-01 17:00:52,830 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:00:52,834 [DEBUG][       Thread-611461][   transport.py][1871] : starting thread (client mode): 0x818ecb0
2025-07-01 17:00:52,834 [DEBUG][       Thread-611461][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:00:52,850 [DEBUG][       Thread-611461][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:00:52,850 [ INFO][       Thread-611461][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:00:52,853 [DEBUG][       Thread-611461][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:00:52,853 [DEBUG][       Thread-611461][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:00:52,853 [DEBUG][       Thread-611461][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:00:52,853 [DEBUG][       Thread-611461][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:00:52,853 [DEBUG][       Thread-611461][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:00:52,853 [DEBUG][       Thread-611461][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:00:52,853 [DEBUG][       Thread-611461][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:00:52,853 [DEBUG][       Thread-611461][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:00:52,853 [DEBUG][       Thread-611461][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:00:52,853 [DEBUG][       Thread-611461][   transport.py][1871] : client lang: <none>
2025-07-01 17:00:52,853 [DEBUG][       Thread-611461][   transport.py][1871] : server lang: <none>
2025-07-01 17:00:52,853 [DEBUG][       Thread-611461][   transport.py][1871] : kex follows: False
2025-07-01 17:00:52,853 [DEBUG][       Thread-611461][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:00:52,853 [DEBUG][       Thread-611461][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:00:52,853 [DEBUG][       Thread-611461][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:00:52,853 [DEBUG][       Thread-611461][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:00:52,853 [DEBUG][       Thread-611461][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:00:52,853 [DEBUG][       Thread-611461][   transport.py][1871] : Compression: none
2025-07-01 17:00:52,853 [DEBUG][       Thread-611461][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:00:52,868 [DEBUG][       Thread-611461][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:00:52,869 [DEBUG][       Thread-611461][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:00:52,869 [DEBUG][       Thread-611461][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:00:52,869 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:00:52,869 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:00:52,869 [DEBUG][       Thread-611461][   transport.py][1871] : userauth is OK
2025-07-01 17:00:52,893 [ INFO][       Thread-611461][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:00:52,893 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:00:53,502 [DEBUG][       Thread-611461][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:00:53,502 [DEBUG][       Thread-611461][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:00:53,545 [DEBUG][       Thread-611461][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:00:53,545 [DEBUG][       Thread-611461][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:00:53,548 [DEBUG][       Thread-611461][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:00:53,560 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:00:53,560 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:00:53,562 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:00:53,563 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:00:53,568 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:00:53,570 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:00:53,570 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:00:53,570 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:00:53,571 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.625285 -999.00  +13.10  34.65     53   +3.80 1 2 2 1 1   887    0 8.77 -16.66 ----- 34.2 34.6 41.0 42.1 14.0 -19.1 13.8 -19.1 13.6 -18.4 14.0 -18.2
2025-07-01 17:00:53,571 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:00:53,571 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:00:53,571 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.625285
2025-07-01 17:00:53,571 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:00:53,572 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:00:53,572 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:00:53,572 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:00:53,572 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:00:53,572 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:00:29', tmtdew=10.37, humidity=49.57, cloud=0.0, wind=24.97, temperature=13.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:00:24.624', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:00:53,572 [DEBUG][       Thread-611461][   transport.py][1871] : EOF in transport thread
2025-07-01 17:00:53,656 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:00:53,667 [DEBUG][       Thread-611464][   transport.py][1871] : starting thread (client mode): 0x81caa40
2025-07-01 17:00:53,667 [DEBUG][       Thread-611464][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:00:53,685 [DEBUG][       Thread-611464][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:00:53,685 [ INFO][       Thread-611464][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:00:53,693 [DEBUG][       Thread-611464][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:00:53,693 [DEBUG][       Thread-611464][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:00:53,702 [DEBUG][       Thread-611464][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:00:53,702 [DEBUG][       Thread-611464][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:00:53,702 [DEBUG][       Thread-611464][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:00:53,702 [DEBUG][       Thread-611464][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:00:53,702 [DEBUG][       Thread-611464][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:00:53,702 [DEBUG][       Thread-611464][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:00:53,702 [DEBUG][       Thread-611464][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:00:53,702 [DEBUG][       Thread-611464][   transport.py][1871] : client lang: <none>
2025-07-01 17:00:53,702 [DEBUG][       Thread-611464][   transport.py][1871] : server lang: <none>
2025-07-01 17:00:53,702 [DEBUG][       Thread-611464][   transport.py][1871] : kex follows: False
2025-07-01 17:00:53,702 [DEBUG][       Thread-611464][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:00:53,703 [DEBUG][       Thread-611464][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:00:53,703 [DEBUG][       Thread-611464][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:00:53,703 [DEBUG][       Thread-611464][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:00:53,703 [DEBUG][       Thread-611464][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:00:53,703 [DEBUG][       Thread-611464][   transport.py][1871] : Compression: none
2025-07-01 17:00:53,703 [DEBUG][       Thread-611464][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:00:53,755 [DEBUG][       Thread-611464][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:00:53,755 [DEBUG][       Thread-611464][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:00:53,756 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:00:53,757 [DEBUG][       Thread-611464][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:00:53,757 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:00:53,815 [DEBUG][       Thread-611464][   transport.py][1871] : userauth is OK
2025-07-01 17:00:53,815 [DEBUG][       Thread-611464][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:00:53,815 [DEBUG][       Thread-611464][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:00:53,815 [DEBUG][       Thread-611464][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:00:53,815 [DEBUG][       Thread-611464][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:00:53,834 [ INFO][       Thread-611464][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:00:53,834 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:00:53,835 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:00:54,844 [DEBUG][       Thread-611464][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:00:54,844 [DEBUG][       Thread-611464][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:00:54,892 [DEBUG][       Thread-611464][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:00:54,892 [DEBUG][       Thread-611464][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:00:54,901 [DEBUG][       Thread-611464][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:00:54,910 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:00:54,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-07-01 17:00:54,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-07-01 17:00:54,928 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:00:54,929 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:00:54,929 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:00:54,937 [DEBUG][       Thread-611464][   transport.py][1871] : EOF in transport thread
2025-07-01 17:00:59,204 [DEBUG][Thread-611466 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:01:04,940 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:01:04,940 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:01:04,940 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:01:04,943 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:01:05,428 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 1, 1), 10.4, 49.49, 0.0, 26.2, 13.14, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:01:05,428 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:01:01
2025-07-01 17:01:05,511 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:01:05,515 [DEBUG][       Thread-611467][   transport.py][1871] : starting thread (client mode): 0x82b3be0
2025-07-01 17:01:05,515 [DEBUG][       Thread-611467][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:01:05,536 [DEBUG][       Thread-611467][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:01:05,536 [ INFO][       Thread-611467][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:01:05,538 [DEBUG][       Thread-611467][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:01:05,539 [DEBUG][       Thread-611467][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:01:05,539 [DEBUG][       Thread-611467][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:01:05,539 [DEBUG][       Thread-611467][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:01:05,539 [DEBUG][       Thread-611467][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:01:05,539 [DEBUG][       Thread-611467][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:01:05,539 [DEBUG][       Thread-611467][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:01:05,539 [DEBUG][       Thread-611467][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:01:05,539 [DEBUG][       Thread-611467][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:01:05,539 [DEBUG][       Thread-611467][   transport.py][1871] : client lang: <none>
2025-07-01 17:01:05,539 [DEBUG][       Thread-611467][   transport.py][1871] : server lang: <none>
2025-07-01 17:01:05,539 [DEBUG][       Thread-611467][   transport.py][1871] : kex follows: False
2025-07-01 17:01:05,539 [DEBUG][       Thread-611467][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:01:05,539 [DEBUG][       Thread-611467][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:01:05,539 [DEBUG][       Thread-611467][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:01:05,539 [DEBUG][       Thread-611467][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:01:05,539 [DEBUG][       Thread-611467][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:01:05,539 [DEBUG][       Thread-611467][   transport.py][1871] : Compression: none
2025-07-01 17:01:05,539 [DEBUG][       Thread-611467][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:01:05,553 [DEBUG][       Thread-611467][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:01:05,553 [DEBUG][       Thread-611467][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:01:05,553 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:01:05,554 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:01:05,554 [DEBUG][       Thread-611467][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:01:05,555 [DEBUG][       Thread-611467][   transport.py][1871] : userauth is OK
2025-07-01 17:01:05,580 [ INFO][       Thread-611467][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:01:05,581 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:01:06,198 [DEBUG][       Thread-611467][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:01:06,198 [DEBUG][       Thread-611467][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:01:06,241 [DEBUG][       Thread-611467][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:01:06,241 [DEBUG][       Thread-611467][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:01:06,244 [DEBUG][       Thread-611467][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:01:06,258 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:01:06,258 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:01:06,260 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:01:06,262 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:01:06,268 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:01:06,270 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:01:06,270 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:01:06,271 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:01:06,271 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.625285 -999.00  +13.10  34.65     53   +3.80 1 2 2 1 1   887    0 8.77 -16.66 ----- 34.2 34.6 41.0 42.1 14.0 -19.1 13.8 -19.1 13.6 -18.4 14.0 -18.2
2025-07-01 17:01:06,271 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:01:06,271 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:01:06,271 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.625285
2025-07-01 17:01:06,271 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:01:06,272 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:01:06,272 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:01:06,272 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:01:06,272 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:01:06,272 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:01:01', tmtdew=10.4, humidity=49.49, cloud=0.0, wind=26.2, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:00:24.624', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:01:06,273 [DEBUG][       Thread-611467][   transport.py][1871] : EOF in transport thread
2025-07-01 17:01:06,356 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:01:06,366 [DEBUG][       Thread-611470][   transport.py][1871] : starting thread (client mode): 0x81a4790
2025-07-01 17:01:06,366 [DEBUG][       Thread-611470][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:01:06,381 [DEBUG][       Thread-611470][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:01:06,381 [ INFO][       Thread-611470][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:01:06,389 [DEBUG][       Thread-611470][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:01:06,389 [DEBUG][       Thread-611470][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:01:06,389 [DEBUG][       Thread-611470][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:01:06,389 [DEBUG][       Thread-611470][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:01:06,389 [DEBUG][       Thread-611470][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:01:06,389 [DEBUG][       Thread-611470][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:01:06,389 [DEBUG][       Thread-611470][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:01:06,389 [DEBUG][       Thread-611470][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:01:06,389 [DEBUG][       Thread-611470][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:01:06,390 [DEBUG][       Thread-611470][   transport.py][1871] : client lang: <none>
2025-07-01 17:01:06,390 [DEBUG][       Thread-611470][   transport.py][1871] : server lang: <none>
2025-07-01 17:01:06,390 [DEBUG][       Thread-611470][   transport.py][1871] : kex follows: False
2025-07-01 17:01:06,390 [DEBUG][       Thread-611470][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:01:06,390 [DEBUG][       Thread-611470][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:01:06,390 [DEBUG][       Thread-611470][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:01:06,390 [DEBUG][       Thread-611470][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:01:06,390 [DEBUG][       Thread-611470][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:01:06,390 [DEBUG][       Thread-611470][   transport.py][1871] : Compression: none
2025-07-01 17:01:06,390 [DEBUG][       Thread-611470][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:01:06,451 [DEBUG][       Thread-611470][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:01:06,451 [DEBUG][       Thread-611470][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:01:06,452 [DEBUG][       Thread-611470][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:01:06,452 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:01:06,453 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:01:06,515 [DEBUG][       Thread-611470][   transport.py][1871] : userauth is OK
2025-07-01 17:01:06,516 [DEBUG][       Thread-611470][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:01:06,516 [DEBUG][       Thread-611470][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:01:06,516 [DEBUG][       Thread-611470][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:01:06,516 [DEBUG][       Thread-611470][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:01:06,534 [ INFO][       Thread-611470][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:01:06,535 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:01:06,535 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:01:07,592 [DEBUG][       Thread-611470][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:01:07,592 [DEBUG][       Thread-611470][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:01:07,640 [DEBUG][       Thread-611470][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:01:07,640 [DEBUG][       Thread-611470][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:01:07,649 [DEBUG][       Thread-611470][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:01:07,658 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:01: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')
2025-07-01 17:01:07,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-07-01 17:01:07,676 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:01:07,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:01:07,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:01:07,686 [DEBUG][       Thread-611470][   transport.py][1871] : EOF in transport thread
2025-07-01 17:01:08,222 [DEBUG][Thread-611472 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:01:17,257 [DEBUG][Thread-611473 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:01:17,687 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:01:17,687 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:01:17,688 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:01:17,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-07-01 17:01:18,160 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 1, 1), 10.4, 49.49, 0.0, 26.2, 13.14, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:01:18,160 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:01:01
2025-07-01 17:01:18,243 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:01:18,247 [DEBUG][       Thread-611474][   transport.py][1871] : starting thread (client mode): 0x818fdf0
2025-07-01 17:01:18,247 [DEBUG][       Thread-611474][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:01:18,268 [DEBUG][       Thread-611474][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:01:18,268 [ INFO][       Thread-611474][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:01:18,271 [DEBUG][       Thread-611474][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:01:18,271 [DEBUG][       Thread-611474][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:01:18,271 [DEBUG][       Thread-611474][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:01:18,271 [DEBUG][       Thread-611474][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:01:18,271 [DEBUG][       Thread-611474][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:01:18,271 [DEBUG][       Thread-611474][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:01:18,271 [DEBUG][       Thread-611474][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:01:18,271 [DEBUG][       Thread-611474][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:01:18,271 [DEBUG][       Thread-611474][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:01:18,271 [DEBUG][       Thread-611474][   transport.py][1871] : client lang: <none>
2025-07-01 17:01:18,271 [DEBUG][       Thread-611474][   transport.py][1871] : server lang: <none>
2025-07-01 17:01:18,271 [DEBUG][       Thread-611474][   transport.py][1871] : kex follows: False
2025-07-01 17:01:18,271 [DEBUG][       Thread-611474][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:01:18,271 [DEBUG][       Thread-611474][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:01:18,271 [DEBUG][       Thread-611474][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:01:18,271 [DEBUG][       Thread-611474][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:01:18,271 [DEBUG][       Thread-611474][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:01:18,271 [DEBUG][       Thread-611474][   transport.py][1871] : Compression: none
2025-07-01 17:01:18,271 [DEBUG][       Thread-611474][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:01:18,289 [DEBUG][       Thread-611474][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:01:18,289 [DEBUG][       Thread-611474][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:01:18,290 [DEBUG][       Thread-611474][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:01:18,290 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:01:18,290 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:01:18,291 [DEBUG][       Thread-611474][   transport.py][1871] : userauth is OK
2025-07-01 17:01:18,305 [ INFO][       Thread-611474][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:01:18,305 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:01:18,994 [DEBUG][       Thread-611474][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:01:18,994 [DEBUG][       Thread-611474][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:01:19,037 [DEBUG][       Thread-611474][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:01:19,037 [DEBUG][       Thread-611474][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:01:19,039 [DEBUG][       Thread-611474][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:01:19,051 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:01:19,051 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:01:19,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:01:19,053 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:01:19,056 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:01:19,057 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:01:19,057 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:01:19,057 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:01:19,057 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.625285 -999.00  +13.10  34.65     53   +3.80 1 2 2 1 1   887    0 8.77 -16.66 ----- 34.2 34.6 41.0 42.1 14.0 -19.1 13.8 -19.1 13.6 -18.4 14.0 -18.2
2025-07-01 17:01:19,057 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:01:19,057 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:01:19,057 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.625285
2025-07-01 17:01:19,057 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:01:19,057 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:01:19,057 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:01:19,057 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:01:19,057 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:01:19,057 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:01:01', tmtdew=10.4, humidity=49.49, cloud=0.0, wind=26.2, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:00:24.624', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:01:19,058 [DEBUG][       Thread-611474][   transport.py][1871] : EOF in transport thread
2025-07-01 17:01:19,129 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:01:19,140 [DEBUG][       Thread-611477][   transport.py][1871] : starting thread (client mode): 0x827db40
2025-07-01 17:01:19,140 [DEBUG][       Thread-611477][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:01:19,159 [DEBUG][       Thread-611477][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:01:19,159 [ INFO][       Thread-611477][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:01:19,166 [DEBUG][       Thread-611477][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:01:19,166 [DEBUG][       Thread-611477][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:01:19,166 [DEBUG][       Thread-611477][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:01:19,167 [DEBUG][       Thread-611477][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:01:19,167 [DEBUG][       Thread-611477][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:01:19,167 [DEBUG][       Thread-611477][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:01:19,167 [DEBUG][       Thread-611477][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:01:19,167 [DEBUG][       Thread-611477][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:01:19,167 [DEBUG][       Thread-611477][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:01:19,167 [DEBUG][       Thread-611477][   transport.py][1871] : client lang: <none>
2025-07-01 17:01:19,167 [DEBUG][       Thread-611477][   transport.py][1871] : server lang: <none>
2025-07-01 17:01:19,167 [DEBUG][       Thread-611477][   transport.py][1871] : kex follows: False
2025-07-01 17:01:19,167 [DEBUG][       Thread-611477][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:01:19,167 [DEBUG][       Thread-611477][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:01:19,167 [DEBUG][       Thread-611477][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:01:19,167 [DEBUG][       Thread-611477][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:01:19,167 [DEBUG][       Thread-611477][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:01:19,167 [DEBUG][       Thread-611477][   transport.py][1871] : Compression: none
2025-07-01 17:01:19,167 [DEBUG][       Thread-611477][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:01:19,227 [DEBUG][       Thread-611477][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:01:19,228 [DEBUG][       Thread-611477][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:01:19,228 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:01:19,229 [DEBUG][       Thread-611477][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:01:19,229 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:01:19,283 [DEBUG][       Thread-611477][   transport.py][1871] : userauth is OK
2025-07-01 17:01:19,283 [DEBUG][       Thread-611477][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:01:19,283 [DEBUG][       Thread-611477][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:01:19,283 [DEBUG][       Thread-611477][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:01:19,283 [DEBUG][       Thread-611477][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:01:19,302 [ INFO][       Thread-611477][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:01:19,303 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:01:19,303 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:01:20,338 [DEBUG][       Thread-611477][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:01:20,339 [DEBUG][       Thread-611477][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:01:20,388 [DEBUG][       Thread-611477][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:01:20,388 [DEBUG][       Thread-611477][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:01:20,398 [DEBUG][       Thread-611477][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:01:20,407 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:01:20,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-07-01 17:01:20,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') -> 00000000
2025-07-01 17:01:20,427 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:01:20,427 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:01:20,427 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:01:20,436 [DEBUG][       Thread-611477][   transport.py][1871] : EOF in transport thread
2025-07-01 17:01:26,281 [DEBUG][Thread-611479 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:01:30,434 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:01:30,434 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:01:30,434 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:01:30,437 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:01:30,918 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 1, 1), 10.4, 49.49, 0.0, 26.2, 13.14, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:01:30,918 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:01:01
2025-07-01 17:01:31,001 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:01:31,006 [DEBUG][       Thread-611480][   transport.py][1871] : starting thread (client mode): 0x818e4d0
2025-07-01 17:01:31,006 [DEBUG][       Thread-611480][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:01:31,025 [DEBUG][       Thread-611480][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:01:31,025 [ INFO][       Thread-611480][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:01:31,029 [DEBUG][       Thread-611480][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:01:31,029 [DEBUG][       Thread-611480][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:01:31,029 [DEBUG][       Thread-611480][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:01:31,029 [DEBUG][       Thread-611480][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:01:31,029 [DEBUG][       Thread-611480][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:01:31,029 [DEBUG][       Thread-611480][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:01:31,029 [DEBUG][       Thread-611480][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:01:31,029 [DEBUG][       Thread-611480][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:01:31,029 [DEBUG][       Thread-611480][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:01:31,029 [DEBUG][       Thread-611480][   transport.py][1871] : client lang: <none>
2025-07-01 17:01:31,029 [DEBUG][       Thread-611480][   transport.py][1871] : server lang: <none>
2025-07-01 17:01:31,029 [DEBUG][       Thread-611480][   transport.py][1871] : kex follows: False
2025-07-01 17:01:31,029 [DEBUG][       Thread-611480][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:01:31,029 [DEBUG][       Thread-611480][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:01:31,029 [DEBUG][       Thread-611480][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:01:31,029 [DEBUG][       Thread-611480][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:01:31,029 [DEBUG][       Thread-611480][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:01:31,029 [DEBUG][       Thread-611480][   transport.py][1871] : Compression: none
2025-07-01 17:01:31,029 [DEBUG][       Thread-611480][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:01:31,046 [DEBUG][       Thread-611480][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:01:31,046 [DEBUG][       Thread-611480][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:01:31,047 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:01:31,047 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:01:31,047 [DEBUG][       Thread-611480][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:01:31,048 [DEBUG][       Thread-611480][   transport.py][1871] : userauth is OK
2025-07-01 17:01:31,073 [ INFO][       Thread-611480][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:01:31,073 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:01:31,699 [DEBUG][       Thread-611480][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:01:31,699 [DEBUG][       Thread-611480][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:01:31,741 [DEBUG][       Thread-611480][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:01:31,741 [DEBUG][       Thread-611480][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:01:31,744 [DEBUG][       Thread-611480][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:01:31,756 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:01:31,756 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:01:31,758 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:01:31,760 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:01:31,766 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:01:31,767 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:01:31,768 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:01:31,768 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:01:31,768 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.625632 -999.00  +13.10  33.16     53   +3.80 1 2 2 1 1   887    0 8.76 -14.31 ----- 35.2 33.2 30.2 42.8 13.9 -19.1 13.8 -19.2 13.7 -18.3 14.0 -18.2
2025-07-01 17:01:31,769 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:01:31,769 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:01:31,769 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.625632
2025-07-01 17:01:31,769 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:01:31,770 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:01:31,770 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:01:31,770 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:01:31,770 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:01:31,770 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:01:01', tmtdew=10.4, humidity=49.49, cloud=0.0, wind=26.2, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:00:54.605', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:01:31,771 [DEBUG][       Thread-611480][   transport.py][1871] : EOF in transport thread
2025-07-01 17:01:31,854 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:01:31,875 [DEBUG][       Thread-611483][   transport.py][1871] : starting thread (client mode): 0x81db280
2025-07-01 17:01:31,875 [DEBUG][       Thread-611483][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:01:31,891 [DEBUG][       Thread-611483][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:01:31,891 [ INFO][       Thread-611483][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:01:31,899 [DEBUG][       Thread-611483][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:01:31,899 [DEBUG][       Thread-611483][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:01:31,899 [DEBUG][       Thread-611483][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:01:31,899 [DEBUG][       Thread-611483][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:01:31,899 [DEBUG][       Thread-611483][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:01:31,899 [DEBUG][       Thread-611483][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:01:31,899 [DEBUG][       Thread-611483][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:01:31,899 [DEBUG][       Thread-611483][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:01:31,899 [DEBUG][       Thread-611483][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:01:31,899 [DEBUG][       Thread-611483][   transport.py][1871] : client lang: <none>
2025-07-01 17:01:31,899 [DEBUG][       Thread-611483][   transport.py][1871] : server lang: <none>
2025-07-01 17:01:31,899 [DEBUG][       Thread-611483][   transport.py][1871] : kex follows: False
2025-07-01 17:01:31,900 [DEBUG][       Thread-611483][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:01:31,900 [DEBUG][       Thread-611483][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:01:31,900 [DEBUG][       Thread-611483][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:01:31,900 [DEBUG][       Thread-611483][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:01:31,900 [DEBUG][       Thread-611483][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:01:31,900 [DEBUG][       Thread-611483][   transport.py][1871] : Compression: none
2025-07-01 17:01:31,900 [DEBUG][       Thread-611483][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:01:31,959 [DEBUG][       Thread-611483][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:01:31,959 [DEBUG][       Thread-611483][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:01:31,960 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:01:31,960 [DEBUG][       Thread-611483][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:01:31,961 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:01:32,014 [DEBUG][       Thread-611483][   transport.py][1871] : userauth is OK
2025-07-01 17:01:32,014 [DEBUG][       Thread-611483][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:01:32,014 [DEBUG][       Thread-611483][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:01:32,015 [DEBUG][       Thread-611483][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:01:32,015 [DEBUG][       Thread-611483][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:01:32,034 [ INFO][       Thread-611483][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:01:32,034 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:01:32,034 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:01:33,046 [DEBUG][       Thread-611483][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:01:33,047 [DEBUG][       Thread-611483][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:01:33,096 [DEBUG][       Thread-611483][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:01:33,096 [DEBUG][       Thread-611483][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:01:33,106 [DEBUG][       Thread-611483][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:01:33,115 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:01:33,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-07-01 17:01:33,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') -> 00000000
2025-07-01 17:01:33,133 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:01:33,134 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:01:33,134 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:01:33,142 [DEBUG][       Thread-611483][   transport.py][1871] : EOF in transport thread
2025-07-01 17:01:35,300 [DEBUG][Thread-611485 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:01:39,696 [DEBUG][Thread-611486 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:01:43,140 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:01:43,140 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:01:43,149 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:01:43,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-07-01 17:01:43,602 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 1, 33), 10.42, 49.07, 0.0, 33.58, 13.13, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:01:43,602 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:01:33
2025-07-01 17:01:43,687 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:01:43,691 [DEBUG][       Thread-611487][   transport.py][1871] : starting thread (client mode): 0x818fdc0
2025-07-01 17:01:43,691 [DEBUG][       Thread-611487][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:01:43,706 [DEBUG][       Thread-611487][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:01:43,706 [ INFO][       Thread-611487][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:01:43,709 [DEBUG][       Thread-611487][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:01:43,709 [DEBUG][       Thread-611487][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:01:43,709 [DEBUG][       Thread-611487][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:01:43,709 [DEBUG][       Thread-611487][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:01:43,709 [DEBUG][       Thread-611487][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:01:43,709 [DEBUG][       Thread-611487][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:01:43,709 [DEBUG][       Thread-611487][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:01:43,709 [DEBUG][       Thread-611487][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:01:43,710 [DEBUG][       Thread-611487][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:01:43,710 [DEBUG][       Thread-611487][   transport.py][1871] : client lang: <none>
2025-07-01 17:01:43,710 [DEBUG][       Thread-611487][   transport.py][1871] : server lang: <none>
2025-07-01 17:01:43,710 [DEBUG][       Thread-611487][   transport.py][1871] : kex follows: False
2025-07-01 17:01:43,710 [DEBUG][       Thread-611487][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:01:43,710 [DEBUG][       Thread-611487][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:01:43,710 [DEBUG][       Thread-611487][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:01:43,710 [DEBUG][       Thread-611487][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:01:43,710 [DEBUG][       Thread-611487][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:01:43,710 [DEBUG][       Thread-611487][   transport.py][1871] : Compression: none
2025-07-01 17:01:43,710 [DEBUG][       Thread-611487][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:01:43,717 [DEBUG][       Thread-611487][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:01:43,718 [DEBUG][       Thread-611487][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:01:43,718 [DEBUG][       Thread-611487][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:01:43,718 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:01:43,718 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:01:43,719 [DEBUG][       Thread-611487][   transport.py][1871] : userauth is OK
2025-07-01 17:01:43,732 [ INFO][       Thread-611487][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:01:43,733 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:01:44,318 [DEBUG][Thread-611489 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:01:44,363 [DEBUG][       Thread-611487][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:01:44,363 [DEBUG][       Thread-611487][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:01:44,405 [DEBUG][       Thread-611487][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:01:44,405 [DEBUG][       Thread-611487][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:01:44,408 [DEBUG][       Thread-611487][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:01:44,419 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:01:44,420 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:01:44,422 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:01:44,423 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:01:44,429 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:01:44,431 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:01:44,431 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:01:44,432 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:01:44,432 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.625632 -999.00  +13.10  33.16     53   +3.80 1 2 2 1 1   887    0 8.76 -14.31 ----- 35.2 33.2 30.2 42.8 13.9 -19.1 13.8 -19.2 13.7 -18.3 14.0 -18.2
2025-07-01 17:01:44,432 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:01:44,432 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:01:44,432 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.625632
2025-07-01 17:01:44,432 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:01:44,433 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:01:44,433 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:01:44,433 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:01:44,433 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:01:44,433 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:01:33', tmtdew=10.42, humidity=49.07, cloud=0.0, wind=33.58, temperature=13.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:00:54.605', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:01:44,434 [DEBUG][       Thread-611487][   transport.py][1871] : EOF in transport thread
2025-07-01 17:01:44,516 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:01:44,526 [DEBUG][       Thread-611491][   transport.py][1871] : starting thread (client mode): 0x83c8430
2025-07-01 17:01:44,526 [DEBUG][       Thread-611491][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:01:44,546 [DEBUG][       Thread-611491][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:01:44,546 [ INFO][       Thread-611491][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:01:44,554 [DEBUG][       Thread-611491][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:01:44,554 [DEBUG][       Thread-611491][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:01:44,554 [DEBUG][       Thread-611491][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:01:44,554 [DEBUG][       Thread-611491][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:01:44,555 [DEBUG][       Thread-611491][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:01:44,555 [DEBUG][       Thread-611491][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:01:44,555 [DEBUG][       Thread-611491][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:01:44,555 [DEBUG][       Thread-611491][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:01:44,555 [DEBUG][       Thread-611491][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:01:44,555 [DEBUG][       Thread-611491][   transport.py][1871] : client lang: <none>
2025-07-01 17:01:44,555 [DEBUG][       Thread-611491][   transport.py][1871] : server lang: <none>
2025-07-01 17:01:44,555 [DEBUG][       Thread-611491][   transport.py][1871] : kex follows: False
2025-07-01 17:01:44,555 [DEBUG][       Thread-611491][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:01:44,555 [DEBUG][       Thread-611491][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:01:44,555 [DEBUG][       Thread-611491][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:01:44,555 [DEBUG][       Thread-611491][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:01:44,555 [DEBUG][       Thread-611491][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:01:44,555 [DEBUG][       Thread-611491][   transport.py][1871] : Compression: none
2025-07-01 17:01:44,555 [DEBUG][       Thread-611491][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:01:44,614 [DEBUG][       Thread-611491][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:01:44,615 [DEBUG][       Thread-611491][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:01:44,616 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:01:44,616 [DEBUG][       Thread-611491][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:01:44,617 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:01:44,684 [DEBUG][       Thread-611491][   transport.py][1871] : userauth is OK
2025-07-01 17:01:44,684 [DEBUG][       Thread-611491][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:01:44,684 [DEBUG][       Thread-611491][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:01:44,684 [DEBUG][       Thread-611491][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:01:44,684 [DEBUG][       Thread-611491][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:01:44,702 [ INFO][       Thread-611491][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:01:44,703 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:01:44,703 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:01:45,681 [DEBUG][       Thread-611491][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:01:45,682 [DEBUG][       Thread-611491][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:01:45,732 [DEBUG][       Thread-611491][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:01:45,732 [DEBUG][       Thread-611491][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:01:45,741 [DEBUG][       Thread-611491][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:01:45,751 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:01: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')
2025-07-01 17:01:45,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-07-01 17:01:45,769 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:01:45,769 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:01:45,770 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:01:45,778 [DEBUG][       Thread-611491][   transport.py][1871] : EOF in transport thread
2025-07-01 17:01:53,340 [DEBUG][Thread-611493 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:01:55,780 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:01:55,781 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:01:55,781 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:01:55,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-07-01 17:01:56,262 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 1, 33), 10.42, 49.07, 0.0, 33.58, 13.13, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:01:56,262 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:01:33
2025-07-01 17:01:56,347 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:01:56,353 [DEBUG][       Thread-611494][   transport.py][1871] : starting thread (client mode): 0x81e4d30
2025-07-01 17:01:56,353 [DEBUG][       Thread-611494][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:01:56,373 [DEBUG][       Thread-611494][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:01:56,374 [ INFO][       Thread-611494][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:01:56,377 [DEBUG][       Thread-611494][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:01:56,377 [DEBUG][       Thread-611494][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:01:56,377 [DEBUG][       Thread-611494][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:01:56,377 [DEBUG][       Thread-611494][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:01:56,377 [DEBUG][       Thread-611494][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:01:56,377 [DEBUG][       Thread-611494][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:01:56,377 [DEBUG][       Thread-611494][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:01:56,377 [DEBUG][       Thread-611494][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:01:56,377 [DEBUG][       Thread-611494][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:01:56,377 [DEBUG][       Thread-611494][   transport.py][1871] : client lang: <none>
2025-07-01 17:01:56,377 [DEBUG][       Thread-611494][   transport.py][1871] : server lang: <none>
2025-07-01 17:01:56,377 [DEBUG][       Thread-611494][   transport.py][1871] : kex follows: False
2025-07-01 17:01:56,377 [DEBUG][       Thread-611494][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:01:56,377 [DEBUG][       Thread-611494][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:01:56,377 [DEBUG][       Thread-611494][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:01:56,377 [DEBUG][       Thread-611494][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:01:56,377 [DEBUG][       Thread-611494][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:01:56,377 [DEBUG][       Thread-611494][   transport.py][1871] : Compression: none
2025-07-01 17:01:56,377 [DEBUG][       Thread-611494][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:01:56,392 [DEBUG][       Thread-611494][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:01:56,392 [DEBUG][       Thread-611494][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:01:56,392 [DEBUG][       Thread-611494][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:01:56,392 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:01:56,392 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:01:56,393 [DEBUG][       Thread-611494][   transport.py][1871] : userauth is OK
2025-07-01 17:01:56,405 [ INFO][       Thread-611494][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:01:56,405 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:01:57,130 [DEBUG][       Thread-611494][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:01:57,130 [DEBUG][       Thread-611494][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:01:57,173 [DEBUG][       Thread-611494][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:01:57,173 [DEBUG][       Thread-611494][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:01:57,176 [DEBUG][       Thread-611494][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:01:57,186 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:01:57,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:01:57,188 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:01:57,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:01:57,196 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:01:57,197 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:01:57,198 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:01:57,198 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:01:57,199 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.625632 -999.00  +13.10  33.16     53   +3.80 1 2 2 1 1   887    0 8.76 -14.31 ----- 35.2 33.2 30.2 42.8 13.9 -19.1 13.8 -19.2 13.7 -18.3 14.0 -18.2
2025-07-01 17:01:57,199 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:01:57,199 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:01:57,199 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.625632
2025-07-01 17:01:57,199 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:01:57,200 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:01:57,200 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:01:57,200 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:01:57,200 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:01:57,200 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:01:33', tmtdew=10.42, humidity=49.07, cloud=0.0, wind=33.58, temperature=13.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:00:54.605', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:01:57,204 [DEBUG][       Thread-611494][   transport.py][1871] : EOF in transport thread
2025-07-01 17:01:57,283 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:01:57,296 [DEBUG][       Thread-611497][   transport.py][1871] : starting thread (client mode): 0x75ab160
2025-07-01 17:01:57,296 [DEBUG][       Thread-611497][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:01:57,313 [DEBUG][       Thread-611497][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:01:57,313 [ INFO][       Thread-611497][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:01:57,321 [DEBUG][       Thread-611497][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:01:57,321 [DEBUG][       Thread-611497][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:01:57,321 [DEBUG][       Thread-611497][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:01:57,321 [DEBUG][       Thread-611497][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:01:57,321 [DEBUG][       Thread-611497][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:01:57,321 [DEBUG][       Thread-611497][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:01:57,321 [DEBUG][       Thread-611497][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:01:57,321 [DEBUG][       Thread-611497][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:01:57,321 [DEBUG][       Thread-611497][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:01:57,322 [DEBUG][       Thread-611497][   transport.py][1871] : client lang: <none>
2025-07-01 17:01:57,322 [DEBUG][       Thread-611497][   transport.py][1871] : server lang: <none>
2025-07-01 17:01:57,322 [DEBUG][       Thread-611497][   transport.py][1871] : kex follows: False
2025-07-01 17:01:57,322 [DEBUG][       Thread-611497][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:01:57,322 [DEBUG][       Thread-611497][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:01:57,322 [DEBUG][       Thread-611497][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:01:57,322 [DEBUG][       Thread-611497][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:01:57,322 [DEBUG][       Thread-611497][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:01:57,322 [DEBUG][       Thread-611497][   transport.py][1871] : Compression: none
2025-07-01 17:01:57,322 [DEBUG][       Thread-611497][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:01:57,381 [DEBUG][       Thread-611497][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:01:57,381 [DEBUG][       Thread-611497][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:01:57,382 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:01:57,382 [DEBUG][       Thread-611497][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:01:57,383 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:01:57,438 [DEBUG][       Thread-611497][   transport.py][1871] : userauth is OK
2025-07-01 17:01:57,439 [DEBUG][       Thread-611497][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:01:57,439 [DEBUG][       Thread-611497][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:01:57,439 [DEBUG][       Thread-611497][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:01:57,439 [DEBUG][       Thread-611497][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:01:57,458 [ INFO][       Thread-611497][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:01:57,458 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:01:57,459 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:01:58,437 [DEBUG][       Thread-611497][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:01:58,438 [DEBUG][       Thread-611497][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:01:58,488 [DEBUG][       Thread-611497][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:01:58,488 [DEBUG][       Thread-611497][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:01:58,499 [DEBUG][       Thread-611497][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:01:58,512 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:01: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')
2025-07-01 17:01:58,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-07-01 17:01:58,530 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:01:58,531 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:01:58,531 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:01:58,539 [DEBUG][       Thread-611497][   transport.py][1871] : EOF in transport thread
2025-07-01 17:02:02,367 [DEBUG][Thread-611499 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:02:08,541 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:02:08,542 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:02:08,542 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:02:08,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-07-01 17:02:09,023 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 2, 5), 10.45, 48.99, 0.0, 27.05, 13.14, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:02:09,023 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:02:05
2025-07-01 17:02:09,107 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:02:09,111 [DEBUG][       Thread-611500][   transport.py][1871] : starting thread (client mode): 0x81a5d80
2025-07-01 17:02:09,111 [DEBUG][       Thread-611500][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:02:09,131 [DEBUG][       Thread-611500][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:02:09,131 [ INFO][       Thread-611500][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:02:09,134 [DEBUG][       Thread-611500][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:02:09,134 [DEBUG][       Thread-611500][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:02:09,134 [DEBUG][       Thread-611500][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:02:09,134 [DEBUG][       Thread-611500][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:02:09,134 [DEBUG][       Thread-611500][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:02:09,134 [DEBUG][       Thread-611500][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:02:09,134 [DEBUG][       Thread-611500][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:02:09,134 [DEBUG][       Thread-611500][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:02:09,134 [DEBUG][       Thread-611500][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:02:09,134 [DEBUG][       Thread-611500][   transport.py][1871] : client lang: <none>
2025-07-01 17:02:09,134 [DEBUG][       Thread-611500][   transport.py][1871] : server lang: <none>
2025-07-01 17:02:09,134 [DEBUG][       Thread-611500][   transport.py][1871] : kex follows: False
2025-07-01 17:02:09,134 [DEBUG][       Thread-611500][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:02:09,134 [DEBUG][       Thread-611500][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:02:09,134 [DEBUG][       Thread-611500][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:02:09,134 [DEBUG][       Thread-611500][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:02:09,134 [DEBUG][       Thread-611500][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:02:09,134 [DEBUG][       Thread-611500][   transport.py][1871] : Compression: none
2025-07-01 17:02:09,134 [DEBUG][       Thread-611500][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:02:09,151 [DEBUG][       Thread-611500][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:02:09,151 [DEBUG][       Thread-611500][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:02:09,152 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:02:09,152 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:02:09,152 [DEBUG][       Thread-611500][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:02:09,153 [DEBUG][       Thread-611500][   transport.py][1871] : userauth is OK
2025-07-01 17:02:09,165 [ INFO][       Thread-611500][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:02:09,166 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:02:09,799 [DEBUG][       Thread-611500][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:02:09,799 [DEBUG][       Thread-611500][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:02:09,841 [DEBUG][       Thread-611500][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:02:09,841 [DEBUG][       Thread-611500][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:02:09,845 [DEBUG][       Thread-611500][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:02:09,853 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:02:09,853 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:02:09,855 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:02:09,857 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:02:09,862 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:02:09,864 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:02:09,865 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:02:09,865 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:02:09,866 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.626327 -999.00  +13.10  30.03     53   +3.70 1 2 2 1 1   887    0 9.07 -10.43 ----- 32.7 30.0 16.0 46.1 14.0 -19.0 13.8 -18.9 13.6 -18.1 13.9 -18.0
2025-07-01 17:02:09,866 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:02:09,866 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:02:09,866 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.626327
2025-07-01 17:02:09,866 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:02:09,867 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:02:09,867 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:02:09,867 [DEBUG][       Thread-611500][   transport.py][1871] : EOF in transport thread
2025-07-01 17:02:09,867 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:02:09,868 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:02:09,868 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:02:05', tmtdew=10.45, humidity=48.99, cloud=0.0, wind=27.05, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:01:54.653', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:02:09,951 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:02:09,960 [DEBUG][       Thread-611503][   transport.py][1871] : starting thread (client mode): 0x83c8430
2025-07-01 17:02:09,960 [DEBUG][       Thread-611503][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:02:09,975 [DEBUG][       Thread-611503][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:02:09,975 [ INFO][       Thread-611503][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:02:09,983 [DEBUG][       Thread-611503][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:02:09,983 [DEBUG][       Thread-611503][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:02:09,983 [DEBUG][       Thread-611503][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:02:09,983 [DEBUG][       Thread-611503][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:02:09,983 [DEBUG][       Thread-611503][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:02:09,983 [DEBUG][       Thread-611503][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:02:09,983 [DEBUG][       Thread-611503][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:02:09,983 [DEBUG][       Thread-611503][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:02:09,983 [DEBUG][       Thread-611503][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:02:09,984 [DEBUG][       Thread-611503][   transport.py][1871] : client lang: <none>
2025-07-01 17:02:09,984 [DEBUG][       Thread-611503][   transport.py][1871] : server lang: <none>
2025-07-01 17:02:09,984 [DEBUG][       Thread-611503][   transport.py][1871] : kex follows: False
2025-07-01 17:02:09,984 [DEBUG][       Thread-611503][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:02:09,984 [DEBUG][       Thread-611503][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:02:09,984 [DEBUG][       Thread-611503][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:02:09,984 [DEBUG][       Thread-611503][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:02:09,984 [DEBUG][       Thread-611503][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:02:09,984 [DEBUG][       Thread-611503][   transport.py][1871] : Compression: none
2025-07-01 17:02:09,984 [DEBUG][       Thread-611503][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:02:10,046 [DEBUG][       Thread-611503][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:02:10,046 [DEBUG][       Thread-611503][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:02:10,047 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:02:10,047 [DEBUG][       Thread-611503][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:02:10,048 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:02:10,102 [DEBUG][       Thread-611503][   transport.py][1871] : userauth is OK
2025-07-01 17:02:10,102 [DEBUG][       Thread-611503][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:02:10,102 [DEBUG][       Thread-611503][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:02:10,102 [DEBUG][       Thread-611503][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:02:10,102 [DEBUG][       Thread-611503][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:02:10,121 [ INFO][       Thread-611503][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:02:10,121 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:02:10,121 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:02:11,107 [DEBUG][       Thread-611503][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:02:11,108 [DEBUG][       Thread-611503][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:02:11,159 [DEBUG][       Thread-611503][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:02:11,160 [DEBUG][       Thread-611503][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:02:11,169 [DEBUG][       Thread-611503][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:02:11,178 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:02:11,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-07-01 17:02:11,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-07-01 17:02:11,197 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:02:11,197 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:02:11,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:02:11,206 [DEBUG][       Thread-611503][   transport.py][1871] : EOF in transport thread
2025-07-01 17:02:11,388 [DEBUG][Thread-611505 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:02:20,422 [DEBUG][Thread-611506 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:02:21,204 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:02:21,204 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:02:21,204 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:02:21,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-07-01 17:02:21,678 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 2, 5), 10.45, 48.99, 0.0, 27.05, 13.14, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:02:21,678 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:02:05
2025-07-01 17:02:21,763 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:02:21,792 [DEBUG][       Thread-611507][   transport.py][1871] : starting thread (client mode): 0x81e5c60
2025-07-01 17:02:21,792 [DEBUG][       Thread-611507][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:02:21,812 [DEBUG][       Thread-611507][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:02:21,812 [ INFO][       Thread-611507][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:02:21,815 [DEBUG][       Thread-611507][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:02:21,815 [DEBUG][       Thread-611507][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:02:21,815 [DEBUG][       Thread-611507][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:02:21,815 [DEBUG][       Thread-611507][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:02:21,815 [DEBUG][       Thread-611507][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:02:21,815 [DEBUG][       Thread-611507][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:02:21,816 [DEBUG][       Thread-611507][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:02:21,816 [DEBUG][       Thread-611507][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:02:21,816 [DEBUG][       Thread-611507][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:02:21,816 [DEBUG][       Thread-611507][   transport.py][1871] : client lang: <none>
2025-07-01 17:02:21,816 [DEBUG][       Thread-611507][   transport.py][1871] : server lang: <none>
2025-07-01 17:02:21,816 [DEBUG][       Thread-611507][   transport.py][1871] : kex follows: False
2025-07-01 17:02:21,816 [DEBUG][       Thread-611507][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:02:21,816 [DEBUG][       Thread-611507][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:02:21,816 [DEBUG][       Thread-611507][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:02:21,816 [DEBUG][       Thread-611507][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:02:21,816 [DEBUG][       Thread-611507][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:02:21,816 [DEBUG][       Thread-611507][   transport.py][1871] : Compression: none
2025-07-01 17:02:21,817 [DEBUG][       Thread-611507][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:02:21,834 [DEBUG][       Thread-611507][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:02:21,834 [DEBUG][       Thread-611507][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:02:21,834 [DEBUG][       Thread-611507][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:02:21,835 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:02:21,835 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:02:21,836 [DEBUG][       Thread-611507][   transport.py][1871] : userauth is OK
2025-07-01 17:02:21,861 [ INFO][       Thread-611507][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:02:21,861 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:02:22,610 [DEBUG][       Thread-611507][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:02:22,610 [DEBUG][       Thread-611507][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:02:22,653 [DEBUG][       Thread-611507][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:02:22,653 [DEBUG][       Thread-611507][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:02:22,657 [DEBUG][       Thread-611507][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:02:22,670 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:02:22,671 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:02:22,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:02:22,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:02:22,680 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:02:22,681 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:02:22,682 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:02:22,682 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:02:22,682 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.626327 -999.00  +13.10  30.03     53   +3.70 1 2 2 1 1   887    0 9.07 -10.43 ----- 32.7 30.0 16.0 46.1 14.0 -19.0 13.8 -18.9 13.6 -18.1 13.9 -18.0
2025-07-01 17:02:22,682 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:02:22,682 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:02:22,683 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.626327
2025-07-01 17:02:22,683 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:02:22,684 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:02:22,684 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:02:22,684 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:02:22,684 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:02:22,684 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:02:05', tmtdew=10.45, humidity=48.99, cloud=0.0, wind=27.05, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:01:54.653', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:02:22,685 [DEBUG][       Thread-611507][   transport.py][1871] : EOF in transport thread
2025-07-01 17:02:22,768 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:02:22,779 [DEBUG][       Thread-611510][   transport.py][1871] : starting thread (client mode): 0x83c8430
2025-07-01 17:02:22,779 [DEBUG][       Thread-611510][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:02:22,795 [DEBUG][       Thread-611510][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:02:22,795 [ INFO][       Thread-611510][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:02:22,802 [DEBUG][       Thread-611510][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:02:22,802 [DEBUG][       Thread-611510][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:02:22,802 [DEBUG][       Thread-611510][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:02:22,803 [DEBUG][       Thread-611510][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:02:22,803 [DEBUG][       Thread-611510][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:02:22,803 [DEBUG][       Thread-611510][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:02:22,803 [DEBUG][       Thread-611510][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:02:22,803 [DEBUG][       Thread-611510][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:02:22,803 [DEBUG][       Thread-611510][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:02:22,803 [DEBUG][       Thread-611510][   transport.py][1871] : client lang: <none>
2025-07-01 17:02:22,803 [DEBUG][       Thread-611510][   transport.py][1871] : server lang: <none>
2025-07-01 17:02:22,803 [DEBUG][       Thread-611510][   transport.py][1871] : kex follows: False
2025-07-01 17:02:22,803 [DEBUG][       Thread-611510][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:02:22,803 [DEBUG][       Thread-611510][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:02:22,803 [DEBUG][       Thread-611510][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:02:22,803 [DEBUG][       Thread-611510][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:02:22,803 [DEBUG][       Thread-611510][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:02:22,803 [DEBUG][       Thread-611510][   transport.py][1871] : Compression: none
2025-07-01 17:02:22,803 [DEBUG][       Thread-611510][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:02:22,863 [DEBUG][       Thread-611510][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:02:22,863 [DEBUG][       Thread-611510][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:02:22,864 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:02:22,864 [DEBUG][       Thread-611510][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:02:22,865 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:02:22,921 [DEBUG][       Thread-611510][   transport.py][1871] : userauth is OK
2025-07-01 17:02:22,922 [DEBUG][       Thread-611510][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:02:22,922 [DEBUG][       Thread-611510][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:02:22,922 [DEBUG][       Thread-611510][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:02:22,922 [DEBUG][       Thread-611510][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:02:22,941 [ INFO][       Thread-611510][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:02:22,941 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:02:22,942 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:02:23,952 [DEBUG][       Thread-611510][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:02:23,952 [DEBUG][       Thread-611510][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:02:24,000 [DEBUG][       Thread-611510][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:02:24,000 [DEBUG][       Thread-611510][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:02:24,009 [DEBUG][       Thread-611510][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:02:24,017 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:02:24,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-07-01 17:02:24,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-07-01 17:02:24,041 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:02:24,041 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:02:24,042 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:02:24,050 [DEBUG][       Thread-611510][   transport.py][1871] : EOF in transport thread
2025-07-01 17:02:29,446 [DEBUG][Thread-611512 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:02:34,052 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:02:34,052 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:02:34,053 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:02:34,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-07-01 17:02:34,523 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 2, 5), 10.45, 48.99, 0.0, 27.05, 13.14, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:02:34,523 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:02:05
2025-07-01 17:02:34,609 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:02:34,615 [DEBUG][       Thread-611513][   transport.py][1871] : starting thread (client mode): 0x82b3310
2025-07-01 17:02:34,615 [DEBUG][       Thread-611513][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:02:34,636 [DEBUG][       Thread-611513][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:02:34,636 [ INFO][       Thread-611513][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:02:34,639 [DEBUG][       Thread-611513][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:02:34,639 [DEBUG][       Thread-611513][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:02:34,640 [DEBUG][       Thread-611513][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:02:34,640 [DEBUG][       Thread-611513][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:02:34,640 [DEBUG][       Thread-611513][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:02:34,640 [DEBUG][       Thread-611513][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:02:34,640 [DEBUG][       Thread-611513][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:02:34,640 [DEBUG][       Thread-611513][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:02:34,640 [DEBUG][       Thread-611513][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:02:34,640 [DEBUG][       Thread-611513][   transport.py][1871] : client lang: <none>
2025-07-01 17:02:34,640 [DEBUG][       Thread-611513][   transport.py][1871] : server lang: <none>
2025-07-01 17:02:34,640 [DEBUG][       Thread-611513][   transport.py][1871] : kex follows: False
2025-07-01 17:02:34,640 [DEBUG][       Thread-611513][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:02:34,640 [DEBUG][       Thread-611513][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:02:34,640 [DEBUG][       Thread-611513][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:02:34,640 [DEBUG][       Thread-611513][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:02:34,640 [DEBUG][       Thread-611513][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:02:34,640 [DEBUG][       Thread-611513][   transport.py][1871] : Compression: none
2025-07-01 17:02:34,640 [DEBUG][       Thread-611513][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:02:34,655 [DEBUG][       Thread-611513][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:02:34,656 [DEBUG][       Thread-611513][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:02:34,656 [DEBUG][       Thread-611513][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:02:34,657 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:02:34,657 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:02:34,658 [DEBUG][       Thread-611513][   transport.py][1871] : userauth is OK
2025-07-01 17:02:34,683 [ INFO][       Thread-611513][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:02:34,684 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:02:35,402 [DEBUG][       Thread-611513][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:02:35,403 [DEBUG][       Thread-611513][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:02:35,445 [DEBUG][       Thread-611513][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:02:35,445 [DEBUG][       Thread-611513][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:02:35,448 [DEBUG][       Thread-611513][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:02:35,463 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:02:35,464 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:02:35,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:02:35,467 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:02:35,472 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:02:35,474 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:02:35,474 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:02:35,475 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:02:35,475 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.626674 -999.00  +13.00  33.78     53   +3.80 1 2 2 1 1   887    0 8.87 -8.81 ----- 29.3 33.8 21.4 36.0 13.9 -18.9 13.8 -18.9 13.6 -18.0 14.0 -17.9
2025-07-01 17:02:35,475 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:02:35,475 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:02:35,475 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.626674
2025-07-01 17:02:35,476 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:02:35,476 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:02:35,477 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:02:35,477 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:02:35,477 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:02:35,477 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:02:05', tmtdew=10.45, humidity=48.99, cloud=0.0, wind=27.05, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:02:24.634', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:02:35,478 [DEBUG][       Thread-611513][   transport.py][1871] : EOF in transport thread
2025-07-01 17:02:35,560 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:02:35,573 [DEBUG][       Thread-611516][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 17:02:35,573 [DEBUG][       Thread-611516][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:02:35,591 [DEBUG][       Thread-611516][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:02:35,591 [ INFO][       Thread-611516][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:02:35,603 [DEBUG][       Thread-611516][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:02:35,604 [DEBUG][       Thread-611516][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:02:35,604 [DEBUG][       Thread-611516][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:02:35,604 [DEBUG][       Thread-611516][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:02:35,604 [DEBUG][       Thread-611516][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:02:35,604 [DEBUG][       Thread-611516][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:02:35,604 [DEBUG][       Thread-611516][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:02:35,604 [DEBUG][       Thread-611516][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:02:35,604 [DEBUG][       Thread-611516][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:02:35,604 [DEBUG][       Thread-611516][   transport.py][1871] : client lang: <none>
2025-07-01 17:02:35,604 [DEBUG][       Thread-611516][   transport.py][1871] : server lang: <none>
2025-07-01 17:02:35,604 [DEBUG][       Thread-611516][   transport.py][1871] : kex follows: False
2025-07-01 17:02:35,604 [DEBUG][       Thread-611516][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:02:35,604 [DEBUG][       Thread-611516][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:02:35,604 [DEBUG][       Thread-611516][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:02:35,605 [DEBUG][       Thread-611516][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:02:35,605 [DEBUG][       Thread-611516][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:02:35,605 [DEBUG][       Thread-611516][   transport.py][1871] : Compression: none
2025-07-01 17:02:35,605 [DEBUG][       Thread-611516][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:02:35,660 [DEBUG][       Thread-611516][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:02:35,661 [DEBUG][       Thread-611516][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:02:35,670 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:02:35,671 [DEBUG][       Thread-611516][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:02:35,672 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:02:35,717 [DEBUG][       Thread-611516][   transport.py][1871] : userauth is OK
2025-07-01 17:02:35,718 [DEBUG][       Thread-611516][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:02:35,718 [DEBUG][       Thread-611516][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:02:35,718 [DEBUG][       Thread-611516][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:02:35,718 [DEBUG][       Thread-611516][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:02:35,736 [ INFO][       Thread-611516][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:02:35,737 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:02:35,737 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:02:36,720 [DEBUG][       Thread-611516][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:02:36,721 [DEBUG][       Thread-611516][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:02:36,782 [DEBUG][       Thread-611516][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:02:36,783 [DEBUG][       Thread-611516][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:02:36,794 [DEBUG][       Thread-611516][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:02:36,804 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:02:36,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-07-01 17:02:36,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-07-01 17:02:36,822 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:02:36,822 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:02:36,823 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:02:36,831 [DEBUG][       Thread-611516][   transport.py][1871] : EOF in transport thread
2025-07-01 17:02:38,466 [DEBUG][Thread-611518 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:02:39,727 [DEBUG][Thread-611519 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:02:46,830 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:02:46,831 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:02:46,831 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:02:46,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-07-01 17:02:47,303 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 2, 36), 10.53, 48.81, 0.0, 27.79, 13.16, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:02:47,303 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:02:36
2025-07-01 17:02:47,388 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:02:47,392 [DEBUG][       Thread-611520][   transport.py][1871] : starting thread (client mode): 0x82b0e50
2025-07-01 17:02:47,392 [DEBUG][       Thread-611520][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:02:47,414 [DEBUG][       Thread-611520][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:02:47,414 [ INFO][       Thread-611520][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:02:47,418 [DEBUG][       Thread-611520][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:02:47,419 [DEBUG][       Thread-611520][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:02:47,419 [DEBUG][       Thread-611520][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:02:47,419 [DEBUG][       Thread-611520][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:02:47,419 [DEBUG][       Thread-611520][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:02:47,419 [DEBUG][       Thread-611520][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:02:47,419 [DEBUG][       Thread-611520][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:02:47,419 [DEBUG][       Thread-611520][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:02:47,419 [DEBUG][       Thread-611520][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:02:47,419 [DEBUG][       Thread-611520][   transport.py][1871] : client lang: <none>
2025-07-01 17:02:47,419 [DEBUG][       Thread-611520][   transport.py][1871] : server lang: <none>
2025-07-01 17:02:47,419 [DEBUG][       Thread-611520][   transport.py][1871] : kex follows: False
2025-07-01 17:02:47,419 [DEBUG][       Thread-611520][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:02:47,419 [DEBUG][       Thread-611520][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:02:47,419 [DEBUG][       Thread-611520][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:02:47,419 [DEBUG][       Thread-611520][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:02:47,419 [DEBUG][       Thread-611520][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:02:47,419 [DEBUG][       Thread-611520][   transport.py][1871] : Compression: none
2025-07-01 17:02:47,419 [DEBUG][       Thread-611520][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:02:47,437 [DEBUG][       Thread-611520][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:02:47,437 [DEBUG][       Thread-611520][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:02:47,438 [DEBUG][       Thread-611520][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:02:47,438 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:02:47,438 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:02:47,439 [DEBUG][       Thread-611520][   transport.py][1871] : userauth is OK
2025-07-01 17:02:47,452 [ INFO][       Thread-611520][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:02:47,453 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:02:47,486 [DEBUG][Thread-611522 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:02:48,288 [DEBUG][       Thread-611520][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:02:48,289 [DEBUG][       Thread-611520][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:02:48,333 [DEBUG][       Thread-611520][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:02:48,333 [DEBUG][       Thread-611520][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:02:48,337 [DEBUG][       Thread-611520][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:02:48,349 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:02:48,349 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:02:48,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:02:48,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:02:48,358 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:02:48,360 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:02:48,360 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:02:48,361 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:02:48,361 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.626674 -999.00  +13.00  33.78     53   +3.80 1 2 2 1 1   887    0 8.87 -8.81 ----- 29.3 33.8 21.4 36.0 13.9 -18.9 13.8 -18.9 13.6 -18.0 14.0 -17.9
2025-07-01 17:02:48,361 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:02:48,361 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:02:48,361 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.626674
2025-07-01 17:02:48,362 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:02:48,362 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:02:48,362 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:02:48,362 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:02:48,362 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:02:48,362 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:02:36', tmtdew=10.53, humidity=48.81, cloud=0.0, wind=27.79, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:02:24.634', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:02:48,363 [DEBUG][       Thread-611520][   transport.py][1871] : EOF in transport thread
2025-07-01 17:02:48,446 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:02:48,455 [DEBUG][       Thread-611524][   transport.py][1871] : starting thread (client mode): 0x81a4490
2025-07-01 17:02:48,455 [DEBUG][       Thread-611524][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:02:48,471 [DEBUG][       Thread-611524][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:02:48,471 [ INFO][       Thread-611524][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:02:48,479 [DEBUG][       Thread-611524][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:02:48,479 [DEBUG][       Thread-611524][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:02:48,479 [DEBUG][       Thread-611524][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:02:48,479 [DEBUG][       Thread-611524][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:02:48,479 [DEBUG][       Thread-611524][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:02:48,479 [DEBUG][       Thread-611524][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:02:48,479 [DEBUG][       Thread-611524][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:02:48,479 [DEBUG][       Thread-611524][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:02:48,479 [DEBUG][       Thread-611524][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:02:48,479 [DEBUG][       Thread-611524][   transport.py][1871] : client lang: <none>
2025-07-01 17:02:48,479 [DEBUG][       Thread-611524][   transport.py][1871] : server lang: <none>
2025-07-01 17:02:48,479 [DEBUG][       Thread-611524][   transport.py][1871] : kex follows: False
2025-07-01 17:02:48,479 [DEBUG][       Thread-611524][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:02:48,479 [DEBUG][       Thread-611524][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:02:48,479 [DEBUG][       Thread-611524][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:02:48,479 [DEBUG][       Thread-611524][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:02:48,479 [DEBUG][       Thread-611524][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:02:48,479 [DEBUG][       Thread-611524][   transport.py][1871] : Compression: none
2025-07-01 17:02:48,479 [DEBUG][       Thread-611524][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:02:48,539 [DEBUG][       Thread-611524][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:02:48,539 [DEBUG][       Thread-611524][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:02:48,540 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:02:48,541 [DEBUG][       Thread-611524][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:02:48,541 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:02:48,598 [DEBUG][       Thread-611524][   transport.py][1871] : userauth is OK
2025-07-01 17:02:48,598 [DEBUG][       Thread-611524][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:02:48,598 [DEBUG][       Thread-611524][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:02:48,598 [DEBUG][       Thread-611524][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:02:48,599 [DEBUG][       Thread-611524][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:02:48,620 [ INFO][       Thread-611524][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:02:48,621 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:02:48,621 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:02:49,663 [DEBUG][       Thread-611524][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:02:49,663 [DEBUG][       Thread-611524][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:02:49,712 [DEBUG][       Thread-611524][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:02:49,712 [DEBUG][       Thread-611524][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:02:49,721 [DEBUG][       Thread-611524][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:02:49,730 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:02:49,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-07-01 17:02:49,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-07-01 17:02:49,749 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:02:49,749 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:02:49,750 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:02:49,758 [DEBUG][       Thread-611524][   transport.py][1871] : EOF in transport thread
2025-07-01 17:02:56,506 [DEBUG][Thread-611526 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:02:59,760 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:02:59,761 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:02:59,761 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:02:59,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-07-01 17:03:00,228 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 2, 36), 10.53, 48.81, 0.0, 27.79, 13.16, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:03:00,228 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:02:36
2025-07-01 17:03:00,312 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:03:00,318 [DEBUG][       Thread-611527][   transport.py][1871] : starting thread (client mode): 0x818f790
2025-07-01 17:03:00,318 [DEBUG][       Thread-611527][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:03:00,339 [DEBUG][       Thread-611527][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:03:00,339 [ INFO][       Thread-611527][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:03:00,342 [DEBUG][       Thread-611527][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:03:00,342 [DEBUG][       Thread-611527][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:03:00,342 [DEBUG][       Thread-611527][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:03:00,343 [DEBUG][       Thread-611527][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:03:00,343 [DEBUG][       Thread-611527][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:03:00,343 [DEBUG][       Thread-611527][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:03:00,343 [DEBUG][       Thread-611527][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:03:00,343 [DEBUG][       Thread-611527][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:03:00,343 [DEBUG][       Thread-611527][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:03:00,343 [DEBUG][       Thread-611527][   transport.py][1871] : client lang: <none>
2025-07-01 17:03:00,343 [DEBUG][       Thread-611527][   transport.py][1871] : server lang: <none>
2025-07-01 17:03:00,343 [DEBUG][       Thread-611527][   transport.py][1871] : kex follows: False
2025-07-01 17:03:00,343 [DEBUG][       Thread-611527][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:03:00,343 [DEBUG][       Thread-611527][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:03:00,343 [DEBUG][       Thread-611527][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:03:00,343 [DEBUG][       Thread-611527][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:03:00,343 [DEBUG][       Thread-611527][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:03:00,343 [DEBUG][       Thread-611527][   transport.py][1871] : Compression: none
2025-07-01 17:03:00,343 [DEBUG][       Thread-611527][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:03:00,364 [DEBUG][       Thread-611527][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:03:00,365 [DEBUG][       Thread-611527][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:03:00,365 [DEBUG][       Thread-611527][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:03:00,366 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:03:00,366 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:03:00,367 [DEBUG][       Thread-611527][   transport.py][1871] : userauth is OK
2025-07-01 17:03:00,391 [ INFO][       Thread-611527][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:03:00,392 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:03:01,211 [DEBUG][       Thread-611527][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:03:01,211 [DEBUG][       Thread-611527][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:03:01,253 [DEBUG][       Thread-611527][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:03:01,253 [DEBUG][       Thread-611527][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:03:01,256 [DEBUG][       Thread-611527][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:03:01,270 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:03:01,270 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:03:01,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:03:01,273 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:03:01,279 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:03:01,281 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:03:01,281 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:03:01,282 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:03:01,282 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.626674 -999.00  +13.00  33.78     53   +3.80 1 2 2 1 1   887    0 8.87 -8.81 ----- 29.3 33.8 21.4 36.0 13.9 -18.9 13.8 -18.9 13.6 -18.0 14.0 -17.9
2025-07-01 17:03:01,282 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:03:01,282 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:03:01,282 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.626674
2025-07-01 17:03:01,282 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:03:01,283 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:03:01,283 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:03:01,283 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:03:01,283 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:03:01,283 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:02:36', tmtdew=10.53, humidity=48.81, cloud=0.0, wind=27.79, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:02:24.634', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:03:01,284 [DEBUG][       Thread-611527][   transport.py][1871] : EOF in transport thread
2025-07-01 17:03:01,367 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:03:01,377 [DEBUG][       Thread-611530][   transport.py][1871] : starting thread (client mode): 0x827d540
2025-07-01 17:03:01,377 [DEBUG][       Thread-611530][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:03:01,393 [DEBUG][       Thread-611530][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:03:01,393 [ INFO][       Thread-611530][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:03:01,400 [DEBUG][       Thread-611530][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:03:01,400 [DEBUG][       Thread-611530][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:03:01,400 [DEBUG][       Thread-611530][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:03:01,400 [DEBUG][       Thread-611530][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:03:01,400 [DEBUG][       Thread-611530][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:03:01,401 [DEBUG][       Thread-611530][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:03:01,401 [DEBUG][       Thread-611530][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:03:01,401 [DEBUG][       Thread-611530][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:03:01,401 [DEBUG][       Thread-611530][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:03:01,401 [DEBUG][       Thread-611530][   transport.py][1871] : client lang: <none>
2025-07-01 17:03:01,401 [DEBUG][       Thread-611530][   transport.py][1871] : server lang: <none>
2025-07-01 17:03:01,401 [DEBUG][       Thread-611530][   transport.py][1871] : kex follows: False
2025-07-01 17:03:01,401 [DEBUG][       Thread-611530][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:03:01,401 [DEBUG][       Thread-611530][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:03:01,401 [DEBUG][       Thread-611530][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:03:01,401 [DEBUG][       Thread-611530][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:03:01,401 [DEBUG][       Thread-611530][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:03:01,401 [DEBUG][       Thread-611530][   transport.py][1871] : Compression: none
2025-07-01 17:03:01,401 [DEBUG][       Thread-611530][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:03:01,464 [DEBUG][       Thread-611530][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:03:01,465 [DEBUG][       Thread-611530][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:03:01,465 [DEBUG][       Thread-611530][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:03:01,465 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:03:01,466 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:03:01,521 [DEBUG][       Thread-611530][   transport.py][1871] : userauth is OK
2025-07-01 17:03:01,521 [DEBUG][       Thread-611530][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:03:01,521 [DEBUG][       Thread-611530][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:03:01,521 [DEBUG][       Thread-611530][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:03:01,522 [DEBUG][       Thread-611530][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:03:01,541 [ INFO][       Thread-611530][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:03:01,541 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:03:01,541 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:03:02,618 [DEBUG][       Thread-611530][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:03:02,619 [DEBUG][       Thread-611530][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:03:02,674 [DEBUG][       Thread-611530][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:03:02,674 [DEBUG][       Thread-611530][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:03:02,683 [DEBUG][       Thread-611530][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:03:02,692 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:03:02,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-07-01 17:03: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') -> 00000000
2025-07-01 17:03:02,710 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:03:02,711 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:03:02,711 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:03:02,719 [DEBUG][       Thread-611530][   transport.py][1871] : EOF in transport thread
2025-07-01 17:03:05,532 [DEBUG][Thread-611532 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:03:12,722 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:03:12,722 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:03:12,722 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:03: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-07-01 17:03:13,187 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 3, 8), 10.55, 48.76, 0.0, 29.8, 13.18, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:03:13,187 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:03:08
2025-07-01 17:03:13,270 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:03:13,274 [DEBUG][       Thread-611533][   transport.py][1871] : starting thread (client mode): 0x82b1e40
2025-07-01 17:03:13,274 [DEBUG][       Thread-611533][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:03:13,293 [DEBUG][       Thread-611533][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:03:13,293 [ INFO][       Thread-611533][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:03:13,296 [DEBUG][       Thread-611533][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:03:13,296 [DEBUG][       Thread-611533][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:03:13,296 [DEBUG][       Thread-611533][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:03:13,296 [DEBUG][       Thread-611533][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:03:13,297 [DEBUG][       Thread-611533][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:03:13,297 [DEBUG][       Thread-611533][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:03:13,297 [DEBUG][       Thread-611533][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:03:13,297 [DEBUG][       Thread-611533][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:03:13,297 [DEBUG][       Thread-611533][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:03:13,297 [DEBUG][       Thread-611533][   transport.py][1871] : client lang: <none>
2025-07-01 17:03:13,297 [DEBUG][       Thread-611533][   transport.py][1871] : server lang: <none>
2025-07-01 17:03:13,297 [DEBUG][       Thread-611533][   transport.py][1871] : kex follows: False
2025-07-01 17:03:13,297 [DEBUG][       Thread-611533][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:03:13,297 [DEBUG][       Thread-611533][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:03:13,297 [DEBUG][       Thread-611533][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:03:13,297 [DEBUG][       Thread-611533][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:03:13,297 [DEBUG][       Thread-611533][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:03:13,297 [DEBUG][       Thread-611533][   transport.py][1871] : Compression: none
2025-07-01 17:03:13,297 [DEBUG][       Thread-611533][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:03:13,312 [DEBUG][       Thread-611533][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:03:13,313 [DEBUG][       Thread-611533][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:03:13,313 [DEBUG][       Thread-611533][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:03:13,313 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:03:13,314 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:03:13,315 [DEBUG][       Thread-611533][   transport.py][1871] : userauth is OK
2025-07-01 17:03:13,328 [ INFO][       Thread-611533][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:03:13,328 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:03:14,005 [DEBUG][       Thread-611533][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:03:14,006 [DEBUG][       Thread-611533][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:03:14,049 [DEBUG][       Thread-611533][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:03:14,049 [DEBUG][       Thread-611533][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:03:14,053 [DEBUG][       Thread-611533][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:03:14,064 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:03:14,065 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:03:14,067 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:03:14,069 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:03:14,075 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:03:14,077 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:03:14,077 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:03:14,078 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:03:14,078 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.627021 -999.00  +13.00  32.28     53   +3.80 1 2 2 1 1   887    0 8.95 -8.45 ----- 34.1 32.3 16.4 38.2 13.9 -18.8 13.8 -18.8 13.6 -17.9 13.9 -17.8
2025-07-01 17:03:14,078 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:03:14,078 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:03:14,078 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.627021
2025-07-01 17:03:14,079 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:03:14,079 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:03:14,079 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:03:14,079 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:03:14,079 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:03:14,080 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:03:08', tmtdew=10.55, humidity=48.76, cloud=0.0, wind=29.8, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:02:54.614', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:03:14,081 [DEBUG][       Thread-611533][   transport.py][1871] : EOF in transport thread
2025-07-01 17:03:14,163 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:03:14,173 [DEBUG][       Thread-611536][   transport.py][1871] : starting thread (client mode): 0x81d9c90
2025-07-01 17:03:14,173 [DEBUG][       Thread-611536][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:03:14,187 [DEBUG][       Thread-611536][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:03:14,187 [ INFO][       Thread-611536][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:03:14,195 [DEBUG][       Thread-611536][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:03:14,195 [DEBUG][       Thread-611536][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:03:14,195 [DEBUG][       Thread-611536][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:03:14,195 [DEBUG][       Thread-611536][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:03:14,195 [DEBUG][       Thread-611536][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:03:14,195 [DEBUG][       Thread-611536][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:03:14,195 [DEBUG][       Thread-611536][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:03:14,195 [DEBUG][       Thread-611536][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:03:14,195 [DEBUG][       Thread-611536][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:03:14,195 [DEBUG][       Thread-611536][   transport.py][1871] : client lang: <none>
2025-07-01 17:03:14,195 [DEBUG][       Thread-611536][   transport.py][1871] : server lang: <none>
2025-07-01 17:03:14,195 [DEBUG][       Thread-611536][   transport.py][1871] : kex follows: False
2025-07-01 17:03:14,195 [DEBUG][       Thread-611536][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:03:14,195 [DEBUG][       Thread-611536][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:03:14,195 [DEBUG][       Thread-611536][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:03:14,195 [DEBUG][       Thread-611536][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:03:14,195 [DEBUG][       Thread-611536][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:03:14,195 [DEBUG][       Thread-611536][   transport.py][1871] : Compression: none
2025-07-01 17:03:14,195 [DEBUG][       Thread-611536][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:03:14,252 [DEBUG][       Thread-611536][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:03:14,252 [DEBUG][       Thread-611536][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:03:14,252 [DEBUG][       Thread-611536][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:03:14,253 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:03:14,253 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:03:14,315 [DEBUG][       Thread-611536][   transport.py][1871] : userauth is OK
2025-07-01 17:03:14,316 [DEBUG][       Thread-611536][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:03:14,316 [DEBUG][       Thread-611536][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:03:14,316 [DEBUG][       Thread-611536][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:03:14,316 [DEBUG][       Thread-611536][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:03:14,334 [ INFO][       Thread-611536][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:03:14,335 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:03:14,335 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:03:14,553 [DEBUG][Thread-611538 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:03:15,344 [DEBUG][       Thread-611536][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:03:15,344 [DEBUG][       Thread-611536][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:03:15,392 [DEBUG][       Thread-611536][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:03:15,392 [DEBUG][       Thread-611536][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:03:15,402 [DEBUG][       Thread-611536][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:03:15,411 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:03:15,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')
2025-07-01 17:03: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-07-01 17:03:15,429 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:03:15,430 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:03:15,430 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:03:15,438 [DEBUG][       Thread-611536][   transport.py][1871] : EOF in transport thread
2025-07-01 17:03:23,588 [DEBUG][Thread-611539 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:03:25,440 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:03:25,441 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:03:25,441 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:03:25,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-07-01 17:03:25,905 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 3, 8), 10.55, 48.76, 0.0, 29.8, 13.18, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:03:25,905 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:03:08
2025-07-01 17:03:25,989 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:03:25,996 [DEBUG][       Thread-611540][   transport.py][1871] : starting thread (client mode): 0x81c9120
2025-07-01 17:03:25,996 [DEBUG][       Thread-611540][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:03:26,017 [DEBUG][       Thread-611540][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:03:26,017 [ INFO][       Thread-611540][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:03:26,020 [DEBUG][       Thread-611540][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:03:26,021 [DEBUG][       Thread-611540][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:03:26,021 [DEBUG][       Thread-611540][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:03:26,021 [DEBUG][       Thread-611540][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:03:26,021 [DEBUG][       Thread-611540][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:03:26,021 [DEBUG][       Thread-611540][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:03:26,021 [DEBUG][       Thread-611540][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:03:26,021 [DEBUG][       Thread-611540][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:03:26,021 [DEBUG][       Thread-611540][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:03:26,021 [DEBUG][       Thread-611540][   transport.py][1871] : client lang: <none>
2025-07-01 17:03:26,021 [DEBUG][       Thread-611540][   transport.py][1871] : server lang: <none>
2025-07-01 17:03:26,021 [DEBUG][       Thread-611540][   transport.py][1871] : kex follows: False
2025-07-01 17:03:26,021 [DEBUG][       Thread-611540][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:03:26,021 [DEBUG][       Thread-611540][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:03:26,021 [DEBUG][       Thread-611540][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:03:26,021 [DEBUG][       Thread-611540][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:03:26,021 [DEBUG][       Thread-611540][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:03:26,021 [DEBUG][       Thread-611540][   transport.py][1871] : Compression: none
2025-07-01 17:03:26,021 [DEBUG][       Thread-611540][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:03:26,042 [DEBUG][       Thread-611540][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:03:26,042 [DEBUG][       Thread-611540][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:03:26,043 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:03:26,043 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:03:26,044 [DEBUG][       Thread-611540][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:03:26,045 [DEBUG][       Thread-611540][   transport.py][1871] : userauth is OK
2025-07-01 17:03:26,058 [ INFO][       Thread-611540][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:03:26,059 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:03:26,870 [DEBUG][       Thread-611540][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:03:26,870 [DEBUG][       Thread-611540][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:03:26,912 [DEBUG][       Thread-611540][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:03:26,912 [DEBUG][       Thread-611540][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:03:26,915 [DEBUG][       Thread-611540][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:03:26,926 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:03:26,926 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:03:26,927 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:03:26,928 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:03:26,931 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:03:26,932 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:03:26,932 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:03:26,932 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:03:26,932 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.627021 -999.00  +13.00  32.28     53   +3.80 1 2 2 1 1   887    0 8.95 -8.45 ----- 34.1 32.3 16.4 38.2 13.9 -18.8 13.8 -18.8 13.6 -17.9 13.9 -17.8
2025-07-01 17:03:26,932 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:03:26,932 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:03:26,932 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.627021
2025-07-01 17:03:26,932 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:03:26,932 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:03:26,932 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:03:26,932 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:03:26,932 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:03:26,932 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:03:08', tmtdew=10.55, humidity=48.76, cloud=0.0, wind=29.8, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:02:54.614', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:03:26,933 [DEBUG][       Thread-611540][   transport.py][1871] : EOF in transport thread
2025-07-01 17:03:27,003 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:03:27,014 [DEBUG][       Thread-611543][   transport.py][1871] : starting thread (client mode): 0x8171900
2025-07-01 17:03:27,014 [DEBUG][       Thread-611543][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:03:27,034 [DEBUG][       Thread-611543][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:03:27,034 [ INFO][       Thread-611543][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:03:27,041 [DEBUG][       Thread-611543][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:03:27,041 [DEBUG][       Thread-611543][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:03:27,041 [DEBUG][       Thread-611543][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:03:27,041 [DEBUG][       Thread-611543][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:03:27,041 [DEBUG][       Thread-611543][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:03:27,041 [DEBUG][       Thread-611543][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:03:27,041 [DEBUG][       Thread-611543][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:03:27,041 [DEBUG][       Thread-611543][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:03:27,041 [DEBUG][       Thread-611543][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:03:27,041 [DEBUG][       Thread-611543][   transport.py][1871] : client lang: <none>
2025-07-01 17:03:27,041 [DEBUG][       Thread-611543][   transport.py][1871] : server lang: <none>
2025-07-01 17:03:27,041 [DEBUG][       Thread-611543][   transport.py][1871] : kex follows: False
2025-07-01 17:03:27,041 [DEBUG][       Thread-611543][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:03:27,041 [DEBUG][       Thread-611543][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:03:27,041 [DEBUG][       Thread-611543][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:03:27,041 [DEBUG][       Thread-611543][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:03:27,041 [DEBUG][       Thread-611543][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:03:27,041 [DEBUG][       Thread-611543][   transport.py][1871] : Compression: none
2025-07-01 17:03:27,041 [DEBUG][       Thread-611543][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:03:27,100 [DEBUG][       Thread-611543][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:03:27,101 [DEBUG][       Thread-611543][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:03:27,101 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:03:27,102 [DEBUG][       Thread-611543][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:03:27,103 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:03:27,157 [DEBUG][       Thread-611543][   transport.py][1871] : userauth is OK
2025-07-01 17:03:27,157 [DEBUG][       Thread-611543][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:03:27,157 [DEBUG][       Thread-611543][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:03:27,157 [DEBUG][       Thread-611543][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:03:27,157 [DEBUG][       Thread-611543][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:03:27,176 [ INFO][       Thread-611543][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:03:27,176 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:03:27,177 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:03:28,196 [DEBUG][       Thread-611543][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:03:28,197 [DEBUG][       Thread-611543][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:03:28,248 [DEBUG][       Thread-611543][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:03:28,248 [DEBUG][       Thread-611543][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:03:28,257 [DEBUG][       Thread-611543][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:03:28,266 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:03: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')
2025-07-01 17:03:28,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-07-01 17:03:28,284 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:03:28,284 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:03:28,285 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:03:28,292 [DEBUG][       Thread-611543][   transport.py][1871] : EOF in transport thread
2025-07-01 17:03:32,608 [DEBUG][Thread-611545 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:03:38,288 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:03:38,288 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:03:38,288 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:03:38,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-07-01 17:03:38,737 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 3, 8), 10.55, 48.76, 0.0, 29.8, 13.18, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:03:38,737 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:03:08
2025-07-01 17:03:38,821 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:03:38,825 [DEBUG][       Thread-611546][   transport.py][1871] : starting thread (client mode): 0x81e5f30
2025-07-01 17:03:38,825 [DEBUG][       Thread-611546][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:03:38,845 [DEBUG][       Thread-611546][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:03:38,845 [ INFO][       Thread-611546][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:03:38,849 [DEBUG][       Thread-611546][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:03:38,849 [DEBUG][       Thread-611546][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:03:38,849 [DEBUG][       Thread-611546][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:03:38,849 [DEBUG][       Thread-611546][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:03:38,849 [DEBUG][       Thread-611546][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:03:38,849 [DEBUG][       Thread-611546][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:03:38,849 [DEBUG][       Thread-611546][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:03:38,849 [DEBUG][       Thread-611546][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:03:38,849 [DEBUG][       Thread-611546][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:03:38,849 [DEBUG][       Thread-611546][   transport.py][1871] : client lang: <none>
2025-07-01 17:03:38,849 [DEBUG][       Thread-611546][   transport.py][1871] : server lang: <none>
2025-07-01 17:03:38,849 [DEBUG][       Thread-611546][   transport.py][1871] : kex follows: False
2025-07-01 17:03:38,849 [DEBUG][       Thread-611546][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:03:38,849 [DEBUG][       Thread-611546][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:03:38,849 [DEBUG][       Thread-611546][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:03:38,849 [DEBUG][       Thread-611546][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:03:38,849 [DEBUG][       Thread-611546][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:03:38,849 [DEBUG][       Thread-611546][   transport.py][1871] : Compression: none
2025-07-01 17:03:38,849 [DEBUG][       Thread-611546][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:03:38,865 [DEBUG][       Thread-611546][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:03:38,865 [DEBUG][       Thread-611546][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:03:38,866 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:03:38,866 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:03:38,866 [DEBUG][       Thread-611546][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:03:38,867 [DEBUG][       Thread-611546][   transport.py][1871] : userauth is OK
2025-07-01 17:03:38,892 [ INFO][       Thread-611546][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:03:38,893 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:03:39,520 [DEBUG][       Thread-611546][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:03:39,520 [DEBUG][       Thread-611546][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:03:39,565 [DEBUG][       Thread-611546][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:03:39,565 [DEBUG][       Thread-611546][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:03:39,567 [DEBUG][       Thread-611546][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:03:39,581 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:03:39,582 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:03:39,584 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:03:39,586 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:03:39,591 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:03:39,593 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:03:39,593 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:03:39,594 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:03:39,594 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.627369 -999.00  +13.00  23.34     53   +3.80 1 2 1 1 1   887    0 8.92 -7.92 ----- 25.2 23.3 23.6 38.3 13.9 -18.8 13.8 -18.6 13.6 -17.7 13.9 -17.6
2025-07-01 17:03:39,594 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:03:39,594 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:03:39,594 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.627369
2025-07-01 17:03:39,595 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:03:39,595 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:03:39,595 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:03:39,595 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:03:39,595 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:03:39,596 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:03:08', tmtdew=10.55, humidity=48.76, cloud=0.0, wind=29.8, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:03:24.682', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:03:39,596 [DEBUG][       Thread-611546][   transport.py][1871] : EOF in transport thread
2025-07-01 17:03:39,679 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:03:39,688 [DEBUG][       Thread-611549][   transport.py][1871] : starting thread (client mode): 0x81d8e80
2025-07-01 17:03:39,688 [DEBUG][       Thread-611549][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:03:39,704 [DEBUG][       Thread-611549][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:03:39,704 [ INFO][       Thread-611549][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:03:39,711 [DEBUG][       Thread-611549][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:03:39,711 [DEBUG][       Thread-611549][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:03:39,711 [DEBUG][       Thread-611549][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:03:39,711 [DEBUG][       Thread-611549][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:03:39,711 [DEBUG][       Thread-611549][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:03:39,711 [DEBUG][       Thread-611549][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:03:39,711 [DEBUG][       Thread-611549][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:03:39,711 [DEBUG][       Thread-611549][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:03:39,711 [DEBUG][       Thread-611549][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:03:39,711 [DEBUG][       Thread-611549][   transport.py][1871] : client lang: <none>
2025-07-01 17:03:39,711 [DEBUG][       Thread-611549][   transport.py][1871] : server lang: <none>
2025-07-01 17:03:39,712 [DEBUG][       Thread-611549][   transport.py][1871] : kex follows: False
2025-07-01 17:03:39,712 [DEBUG][       Thread-611549][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:03:39,712 [DEBUG][       Thread-611549][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:03:39,712 [DEBUG][       Thread-611549][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:03:39,712 [DEBUG][       Thread-611549][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:03:39,712 [DEBUG][       Thread-611549][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:03:39,712 [DEBUG][       Thread-611549][   transport.py][1871] : Compression: none
2025-07-01 17:03:39,712 [DEBUG][       Thread-611549][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:03:39,758 [DEBUG][Thread-611551 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:03:39,767 [DEBUG][       Thread-611549][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:03:39,767 [DEBUG][       Thread-611549][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:03:39,767 [DEBUG][       Thread-611549][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:03:39,767 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:03:39,767 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:03:39,830 [DEBUG][       Thread-611549][   transport.py][1871] : userauth is OK
2025-07-01 17:03:39,830 [DEBUG][       Thread-611549][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:03:39,830 [DEBUG][       Thread-611549][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:03:39,830 [DEBUG][       Thread-611549][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:03:39,830 [DEBUG][       Thread-611549][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:03:39,849 [ INFO][       Thread-611549][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:03:39,850 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:03:39,850 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:03:40,859 [DEBUG][       Thread-611549][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:03:40,859 [DEBUG][       Thread-611549][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:03:40,911 [DEBUG][       Thread-611549][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:03:40,911 [DEBUG][       Thread-611549][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:03:40,920 [DEBUG][       Thread-611549][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:03:40,928 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:03:40,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-07-01 17:03:40,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') -> 00000000
2025-07-01 17:03:40,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:03:40,945 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:03:40,946 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:03:40,953 [DEBUG][       Thread-611549][   transport.py][1871] : EOF in transport thread
2025-07-01 17:03:41,626 [DEBUG][Thread-611552 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:03:50,647 [DEBUG][Thread-611553 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:03:50,956 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:03:50,956 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:03:50,956 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:03:50,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-07-01 17:03:51,420 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 3, 40), 10.54, 48.79, 0.0, 29.91, 13.16, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:03:51,420 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:03:40
2025-07-01 17:03:51,504 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:03:51,510 [DEBUG][       Thread-611554][   transport.py][1871] : starting thread (client mode): 0x81a7460
2025-07-01 17:03:51,510 [DEBUG][       Thread-611554][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:03:51,531 [DEBUG][       Thread-611554][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:03:51,532 [ INFO][       Thread-611554][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:03:51,535 [DEBUG][       Thread-611554][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:03:51,535 [DEBUG][       Thread-611554][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:03:51,535 [DEBUG][       Thread-611554][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:03:51,535 [DEBUG][       Thread-611554][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:03:51,535 [DEBUG][       Thread-611554][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:03:51,535 [DEBUG][       Thread-611554][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:03:51,535 [DEBUG][       Thread-611554][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:03:51,535 [DEBUG][       Thread-611554][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:03:51,535 [DEBUG][       Thread-611554][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:03:51,535 [DEBUG][       Thread-611554][   transport.py][1871] : client lang: <none>
2025-07-01 17:03:51,535 [DEBUG][       Thread-611554][   transport.py][1871] : server lang: <none>
2025-07-01 17:03:51,535 [DEBUG][       Thread-611554][   transport.py][1871] : kex follows: False
2025-07-01 17:03:51,535 [DEBUG][       Thread-611554][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:03:51,535 [DEBUG][       Thread-611554][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:03:51,535 [DEBUG][       Thread-611554][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:03:51,535 [DEBUG][       Thread-611554][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:03:51,535 [DEBUG][       Thread-611554][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:03:51,535 [DEBUG][       Thread-611554][   transport.py][1871] : Compression: none
2025-07-01 17:03:51,535 [DEBUG][       Thread-611554][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:03:51,549 [DEBUG][       Thread-611554][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:03:51,549 [DEBUG][       Thread-611554][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:03:51,549 [DEBUG][       Thread-611554][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:03:51,549 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:03:51,549 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:03:51,550 [DEBUG][       Thread-611554][   transport.py][1871] : userauth is OK
2025-07-01 17:03:51,573 [ INFO][       Thread-611554][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:03:51,574 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:03:52,362 [DEBUG][       Thread-611554][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:03:52,362 [DEBUG][       Thread-611554][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:03:52,405 [DEBUG][       Thread-611554][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:03:52,405 [DEBUG][       Thread-611554][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:03:52,408 [DEBUG][       Thread-611554][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:03:52,420 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:03:52,420 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:03:52,422 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:03:52,424 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:03:52,430 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:03:52,432 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:03:52,432 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:03:52,433 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:03:52,433 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.627369 -999.00  +13.00  23.34     53   +3.80 1 2 1 1 1   887    0 8.92 -7.92 ----- 25.2 23.3 23.6 38.3 13.9 -18.8 13.8 -18.6 13.6 -17.7 13.9 -17.6
2025-07-01 17:03:52,433 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:03:52,433 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:03:52,433 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.627369
2025-07-01 17:03:52,433 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:03:52,434 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:03:52,434 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:03:52,434 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:03:52,434 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:03:52,435 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:03:40', tmtdew=10.54, humidity=48.79, cloud=0.0, wind=29.91, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:03:24.682', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:03:52,436 [DEBUG][       Thread-611554][   transport.py][1871] : EOF in transport thread
2025-07-01 17:03:52,511 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:03:52,521 [DEBUG][       Thread-611557][   transport.py][1871] : starting thread (client mode): 0x818d780
2025-07-01 17:03:52,521 [DEBUG][       Thread-611557][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:03:52,536 [DEBUG][       Thread-611557][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:03:52,536 [ INFO][       Thread-611557][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:03:52,544 [DEBUG][       Thread-611557][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:03:52,544 [DEBUG][       Thread-611557][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:03:52,544 [DEBUG][       Thread-611557][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:03:52,544 [DEBUG][       Thread-611557][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:03:52,544 [DEBUG][       Thread-611557][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:03:52,544 [DEBUG][       Thread-611557][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:03:52,544 [DEBUG][       Thread-611557][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:03:52,544 [DEBUG][       Thread-611557][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:03:52,544 [DEBUG][       Thread-611557][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:03:52,544 [DEBUG][       Thread-611557][   transport.py][1871] : client lang: <none>
2025-07-01 17:03:52,544 [DEBUG][       Thread-611557][   transport.py][1871] : server lang: <none>
2025-07-01 17:03:52,544 [DEBUG][       Thread-611557][   transport.py][1871] : kex follows: False
2025-07-01 17:03:52,544 [DEBUG][       Thread-611557][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:03:52,544 [DEBUG][       Thread-611557][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:03:52,544 [DEBUG][       Thread-611557][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:03:52,545 [DEBUG][       Thread-611557][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:03:52,545 [DEBUG][       Thread-611557][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:03:52,545 [DEBUG][       Thread-611557][   transport.py][1871] : Compression: none
2025-07-01 17:03:52,545 [DEBUG][       Thread-611557][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:03:52,599 [DEBUG][       Thread-611557][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:03:52,600 [DEBUG][       Thread-611557][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:03:52,601 [DEBUG][       Thread-611557][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:03:52,601 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:03:52,601 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:03:52,659 [DEBUG][       Thread-611557][   transport.py][1871] : userauth is OK
2025-07-01 17:03:52,659 [DEBUG][       Thread-611557][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:03:52,659 [DEBUG][       Thread-611557][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:03:52,660 [DEBUG][       Thread-611557][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:03:52,660 [DEBUG][       Thread-611557][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:03:52,678 [ INFO][       Thread-611557][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:03:52,679 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:03:52,679 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:03:53,674 [DEBUG][       Thread-611557][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:03:53,674 [DEBUG][       Thread-611557][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:03:53,724 [DEBUG][       Thread-611557][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:03:53,724 [DEBUG][       Thread-611557][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:03:53,734 [DEBUG][       Thread-611557][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:03:53,743 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:03: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-07-01 17:03:53,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-07-01 17:03:53,761 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:03:53,761 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:03:53,762 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:03:53,770 [DEBUG][       Thread-611557][   transport.py][1871] : EOF in transport thread
2025-07-01 17:03:59,672 [DEBUG][Thread-611559 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:04:03,772 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:04:03,773 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:04:03,773 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:04:03,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-07-01 17:04:04,249 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 3, 40), 10.54, 48.79, 0.0, 29.91, 13.16, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:04:04,249 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:03:40
2025-07-01 17:04:04,333 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:04:04,337 [DEBUG][       Thread-611560][   transport.py][1871] : starting thread (client mode): 0x818ee60
2025-07-01 17:04:04,337 [DEBUG][       Thread-611560][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:04:04,352 [DEBUG][       Thread-611560][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:04:04,352 [ INFO][       Thread-611560][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:04:04,356 [DEBUG][       Thread-611560][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:04:04,356 [DEBUG][       Thread-611560][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:04:04,356 [DEBUG][       Thread-611560][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:04:04,356 [DEBUG][       Thread-611560][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:04:04,356 [DEBUG][       Thread-611560][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:04:04,356 [DEBUG][       Thread-611560][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:04:04,356 [DEBUG][       Thread-611560][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:04:04,356 [DEBUG][       Thread-611560][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:04:04,356 [DEBUG][       Thread-611560][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:04:04,356 [DEBUG][       Thread-611560][   transport.py][1871] : client lang: <none>
2025-07-01 17:04:04,356 [DEBUG][       Thread-611560][   transport.py][1871] : server lang: <none>
2025-07-01 17:04:04,356 [DEBUG][       Thread-611560][   transport.py][1871] : kex follows: False
2025-07-01 17:04:04,356 [DEBUG][       Thread-611560][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:04:04,356 [DEBUG][       Thread-611560][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:04:04,356 [DEBUG][       Thread-611560][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:04:04,356 [DEBUG][       Thread-611560][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:04:04,356 [DEBUG][       Thread-611560][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:04:04,356 [DEBUG][       Thread-611560][   transport.py][1871] : Compression: none
2025-07-01 17:04:04,356 [DEBUG][       Thread-611560][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:04:04,371 [DEBUG][       Thread-611560][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:04:04,372 [DEBUG][       Thread-611560][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:04:04,372 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:04:04,372 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:04:04,373 [DEBUG][       Thread-611560][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:04:04,373 [DEBUG][       Thread-611560][   transport.py][1871] : userauth is OK
2025-07-01 17:04:04,398 [ INFO][       Thread-611560][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:04:04,399 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:04:05,230 [DEBUG][       Thread-611560][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:04:05,231 [DEBUG][       Thread-611560][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:04:05,273 [DEBUG][       Thread-611560][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:04:05,273 [DEBUG][       Thread-611560][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:04:05,277 [DEBUG][       Thread-611560][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:04:05,290 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:04:05,291 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:04:05,293 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:04:05,295 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:04:05,300 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:04:05,302 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:04:05,303 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:04:05,303 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:04:05,303 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.627369 -999.00  +13.00  23.34     53   +3.80 1 2 1 1 1   887    0 8.92 -7.92 ----- 25.2 23.3 23.6 38.3 13.9 -18.8 13.8 -18.6 13.6 -17.7 13.9 -17.6
2025-07-01 17:04:05,303 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:04:05,303 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:04:05,304 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.627369
2025-07-01 17:04:05,304 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:04:05,305 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:04:05,305 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:04:05,305 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:04:05,305 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:04:05,305 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:03:40', tmtdew=10.54, humidity=48.79, cloud=0.0, wind=29.91, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:03:24.682', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:04:05,306 [DEBUG][       Thread-611560][   transport.py][1871] : EOF in transport thread
2025-07-01 17:04:05,389 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:04:05,398 [DEBUG][       Thread-611563][   transport.py][1871] : starting thread (client mode): 0x82b1780
2025-07-01 17:04:05,398 [DEBUG][       Thread-611563][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:04:05,414 [DEBUG][       Thread-611563][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:04:05,414 [ INFO][       Thread-611563][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:04:05,422 [DEBUG][       Thread-611563][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:04:05,422 [DEBUG][       Thread-611563][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:04:05,422 [DEBUG][       Thread-611563][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:04:05,422 [DEBUG][       Thread-611563][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:04:05,422 [DEBUG][       Thread-611563][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:04:05,422 [DEBUG][       Thread-611563][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:04:05,422 [DEBUG][       Thread-611563][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:04:05,422 [DEBUG][       Thread-611563][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:04:05,422 [DEBUG][       Thread-611563][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:04:05,422 [DEBUG][       Thread-611563][   transport.py][1871] : client lang: <none>
2025-07-01 17:04:05,422 [DEBUG][       Thread-611563][   transport.py][1871] : server lang: <none>
2025-07-01 17:04:05,423 [DEBUG][       Thread-611563][   transport.py][1871] : kex follows: False
2025-07-01 17:04:05,423 [DEBUG][       Thread-611563][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:04:05,423 [DEBUG][       Thread-611563][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:04:05,423 [DEBUG][       Thread-611563][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:04:05,423 [DEBUG][       Thread-611563][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:04:05,423 [DEBUG][       Thread-611563][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:04:05,423 [DEBUG][       Thread-611563][   transport.py][1871] : Compression: none
2025-07-01 17:04:05,423 [DEBUG][       Thread-611563][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:04:05,483 [DEBUG][       Thread-611563][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:04:05,483 [DEBUG][       Thread-611563][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:04:05,483 [DEBUG][       Thread-611563][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:04:05,483 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:04:05,483 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:04:05,547 [DEBUG][       Thread-611563][   transport.py][1871] : userauth is OK
2025-07-01 17:04:05,548 [DEBUG][       Thread-611563][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:04:05,548 [DEBUG][       Thread-611563][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:04:05,548 [DEBUG][       Thread-611563][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:04:05,548 [DEBUG][       Thread-611563][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:04:05,567 [ INFO][       Thread-611563][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:04:05,567 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:04:05,568 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:04:06,556 [DEBUG][       Thread-611563][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:04:06,557 [DEBUG][       Thread-611563][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:04:06,607 [DEBUG][       Thread-611563][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:04:06,607 [DEBUG][       Thread-611563][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:04:06,616 [DEBUG][       Thread-611563][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:04:06,624 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:04:06,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-07-01 17:04:06,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-07-01 17:04:06,640 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:04:06,640 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:04:06,641 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:04:06,649 [DEBUG][       Thread-611563][   transport.py][1871] : EOF in transport thread
2025-07-01 17:04:08,713 [DEBUG][Thread-611565 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:04:16,651 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:04:16,651 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:04:16,651 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:04:16,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-07-01 17:04:17,118 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 4, 12), 10.57, 48.93, 0.0, 32.23, 13.18, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:04:17,118 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:04:12
2025-07-01 17:04:17,203 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:04:17,209 [DEBUG][       Thread-611566][   transport.py][1871] : starting thread (client mode): 0x81a4cd0
2025-07-01 17:04:17,209 [DEBUG][       Thread-611566][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:04:17,229 [DEBUG][       Thread-611566][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:04:17,229 [ INFO][       Thread-611566][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:04:17,232 [DEBUG][       Thread-611566][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:04:17,232 [DEBUG][       Thread-611566][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:04:17,232 [DEBUG][       Thread-611566][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:04:17,232 [DEBUG][       Thread-611566][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:04:17,232 [DEBUG][       Thread-611566][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:04:17,232 [DEBUG][       Thread-611566][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:04:17,233 [DEBUG][       Thread-611566][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:04:17,233 [DEBUG][       Thread-611566][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:04:17,233 [DEBUG][       Thread-611566][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:04:17,233 [DEBUG][       Thread-611566][   transport.py][1871] : client lang: <none>
2025-07-01 17:04:17,233 [DEBUG][       Thread-611566][   transport.py][1871] : server lang: <none>
2025-07-01 17:04:17,233 [DEBUG][       Thread-611566][   transport.py][1871] : kex follows: False
2025-07-01 17:04:17,233 [DEBUG][       Thread-611566][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:04:17,233 [DEBUG][       Thread-611566][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:04:17,233 [DEBUG][       Thread-611566][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:04:17,233 [DEBUG][       Thread-611566][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:04:17,233 [DEBUG][       Thread-611566][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:04:17,233 [DEBUG][       Thread-611566][   transport.py][1871] : Compression: none
2025-07-01 17:04:17,233 [DEBUG][       Thread-611566][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:04:17,249 [DEBUG][       Thread-611566][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:04:17,250 [DEBUG][       Thread-611566][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:04:17,250 [DEBUG][       Thread-611566][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:04:17,250 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:04:17,251 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:04:17,252 [DEBUG][       Thread-611566][   transport.py][1871] : userauth is OK
2025-07-01 17:04:17,264 [ INFO][       Thread-611566][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:04:17,265 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:04:17,731 [DEBUG][Thread-611568 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:04:17,948 [DEBUG][       Thread-611566][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:04:17,949 [DEBUG][       Thread-611566][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:04:17,993 [DEBUG][       Thread-611566][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:04:17,993 [DEBUG][       Thread-611566][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:04:17,996 [DEBUG][       Thread-611566][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:04:18,011 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:04:18,011 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:04:18,013 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:04:18,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:04:18,021 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:04:18,023 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:04:18,023 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:04:18,024 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:04:18,024 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.627716 -999.00  +12.90  25.89     53   +3.80 1 2 1 1 1   887    0 8.78 -8.21 ----- 32.4 25.9 20.6 31.8 13.9 -18.6 13.7 -18.5 13.6 -17.4 14.0 -17.4
2025-07-01 17:04:18,024 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:04:18,024 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:04:18,024 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.627716
2025-07-01 17:04:18,024 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:04:18,025 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:04:18,025 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:04:18,025 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:04:18,025 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:04:18,025 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:04:12', tmtdew=10.57, humidity=48.93, cloud=0.0, wind=32.23, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:03:54.662', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:04:18,026 [DEBUG][       Thread-611566][   transport.py][1871] : EOF in transport thread
2025-07-01 17:04:18,109 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:04:18,118 [DEBUG][       Thread-611570][   transport.py][1871] : starting thread (client mode): 0x81ca6e0
2025-07-01 17:04:18,119 [DEBUG][       Thread-611570][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:04:18,133 [DEBUG][       Thread-611570][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:04:18,133 [ INFO][       Thread-611570][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:04:18,141 [DEBUG][       Thread-611570][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:04:18,142 [DEBUG][       Thread-611570][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:04:18,142 [DEBUG][       Thread-611570][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:04:18,142 [DEBUG][       Thread-611570][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:04:18,142 [DEBUG][       Thread-611570][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:04:18,142 [DEBUG][       Thread-611570][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:04:18,142 [DEBUG][       Thread-611570][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:04:18,142 [DEBUG][       Thread-611570][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:04:18,142 [DEBUG][       Thread-611570][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:04:18,142 [DEBUG][       Thread-611570][   transport.py][1871] : client lang: <none>
2025-07-01 17:04:18,142 [DEBUG][       Thread-611570][   transport.py][1871] : server lang: <none>
2025-07-01 17:04:18,142 [DEBUG][       Thread-611570][   transport.py][1871] : kex follows: False
2025-07-01 17:04:18,142 [DEBUG][       Thread-611570][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:04:18,142 [DEBUG][       Thread-611570][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:04:18,142 [DEBUG][       Thread-611570][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:04:18,142 [DEBUG][       Thread-611570][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:04:18,142 [DEBUG][       Thread-611570][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:04:18,142 [DEBUG][       Thread-611570][   transport.py][1871] : Compression: none
2025-07-01 17:04:18,142 [DEBUG][       Thread-611570][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:04:18,201 [DEBUG][       Thread-611570][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:04:18,202 [DEBUG][       Thread-611570][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:04:18,203 [DEBUG][       Thread-611570][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:04:18,203 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:04:18,204 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:04:18,264 [DEBUG][       Thread-611570][   transport.py][1871] : userauth is OK
2025-07-01 17:04:18,264 [DEBUG][       Thread-611570][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:04:18,264 [DEBUG][       Thread-611570][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:04:18,264 [DEBUG][       Thread-611570][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:04:18,264 [DEBUG][       Thread-611570][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:04:18,287 [ INFO][       Thread-611570][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:04:18,287 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:04:18,288 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:04:19,298 [DEBUG][       Thread-611570][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:04:19,298 [DEBUG][       Thread-611570][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:04:19,348 [DEBUG][       Thread-611570][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:04:19,348 [DEBUG][       Thread-611570][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:04:19,358 [DEBUG][       Thread-611570][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:04:19,367 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:04:19,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-07-01 17:04:19,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-07-01 17:04:19,386 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:04:19,386 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:04:19,386 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:04:19,394 [DEBUG][       Thread-611570][   transport.py][1871] : EOF in transport thread
2025-07-01 17:04:26,756 [DEBUG][Thread-611572 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:04:29,397 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:04:29,397 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:04:29,397 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:04:29,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-07-01 17:04:29,872 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 4, 12), 10.57, 48.93, 0.0, 32.23, 13.18, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:04:29,872 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:04:12
2025-07-01 17:04:29,957 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:04:29,964 [DEBUG][       Thread-611573][   transport.py][1871] : starting thread (client mode): 0x82b18a0
2025-07-01 17:04:29,964 [DEBUG][       Thread-611573][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:04:29,985 [DEBUG][       Thread-611573][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:04:29,985 [ INFO][       Thread-611573][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:04:29,989 [DEBUG][       Thread-611573][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:04:29,989 [DEBUG][       Thread-611573][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:04:29,989 [DEBUG][       Thread-611573][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:04:29,989 [DEBUG][       Thread-611573][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:04:29,989 [DEBUG][       Thread-611573][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:04:29,989 [DEBUG][       Thread-611573][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:04:29,989 [DEBUG][       Thread-611573][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:04:29,989 [DEBUG][       Thread-611573][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:04:29,989 [DEBUG][       Thread-611573][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:04:29,989 [DEBUG][       Thread-611573][   transport.py][1871] : client lang: <none>
2025-07-01 17:04:29,989 [DEBUG][       Thread-611573][   transport.py][1871] : server lang: <none>
2025-07-01 17:04:29,989 [DEBUG][       Thread-611573][   transport.py][1871] : kex follows: False
2025-07-01 17:04:29,989 [DEBUG][       Thread-611573][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:04:29,989 [DEBUG][       Thread-611573][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:04:29,989 [DEBUG][       Thread-611573][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:04:29,989 [DEBUG][       Thread-611573][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:04:29,989 [DEBUG][       Thread-611573][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:04:29,989 [DEBUG][       Thread-611573][   transport.py][1871] : Compression: none
2025-07-01 17:04:29,989 [DEBUG][       Thread-611573][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:04:30,007 [DEBUG][       Thread-611573][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:04:30,008 [DEBUG][       Thread-611573][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:04:30,009 [DEBUG][       Thread-611573][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:04:30,009 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:04:30,009 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:04:30,010 [DEBUG][       Thread-611573][   transport.py][1871] : userauth is OK
2025-07-01 17:04:30,024 [ INFO][       Thread-611573][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:04:30,025 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:04:30,701 [DEBUG][       Thread-611573][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:04:30,701 [DEBUG][       Thread-611573][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:04:30,745 [DEBUG][       Thread-611573][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:04:30,745 [DEBUG][       Thread-611573][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:04:30,749 [DEBUG][       Thread-611573][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:04:30,763 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:04:30,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:04:30,765 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:04:30,766 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:04:30,771 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:04:30,773 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:04:30,773 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:04:30,774 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:04:30,774 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.627716 -999.00  +12.90  25.89     53   +3.80 1 2 1 1 1   887    0 8.78 -8.21 ----- 32.4 25.9 20.6 31.8 13.9 -18.6 13.7 -18.5 13.6 -17.4 14.0 -17.4
2025-07-01 17:04:30,774 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:04:30,774 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:04:30,774 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.627716
2025-07-01 17:04:30,775 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:04:30,775 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:04:30,776 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:04:30,776 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:04:30,776 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:04:30,776 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:04:12', tmtdew=10.57, humidity=48.93, cloud=0.0, wind=32.23, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:03:54.662', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:04:30,777 [DEBUG][       Thread-611573][   transport.py][1871] : EOF in transport thread
2025-07-01 17:04:30,859 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:04:30,874 [DEBUG][       Thread-611576][   transport.py][1871] : starting thread (client mode): 0x81db460
2025-07-01 17:04:30,874 [DEBUG][       Thread-611576][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:04:30,890 [DEBUG][       Thread-611576][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:04:30,891 [ INFO][       Thread-611576][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:04:30,898 [DEBUG][       Thread-611576][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:04:30,898 [DEBUG][       Thread-611576][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:04:30,898 [DEBUG][       Thread-611576][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:04:30,899 [DEBUG][       Thread-611576][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:04:30,899 [DEBUG][       Thread-611576][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:04:30,899 [DEBUG][       Thread-611576][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:04:30,899 [DEBUG][       Thread-611576][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:04:30,899 [DEBUG][       Thread-611576][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:04:30,899 [DEBUG][       Thread-611576][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:04:30,899 [DEBUG][       Thread-611576][   transport.py][1871] : client lang: <none>
2025-07-01 17:04:30,899 [DEBUG][       Thread-611576][   transport.py][1871] : server lang: <none>
2025-07-01 17:04:30,899 [DEBUG][       Thread-611576][   transport.py][1871] : kex follows: False
2025-07-01 17:04:30,899 [DEBUG][       Thread-611576][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:04:30,899 [DEBUG][       Thread-611576][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:04:30,899 [DEBUG][       Thread-611576][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:04:30,899 [DEBUG][       Thread-611576][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:04:30,899 [DEBUG][       Thread-611576][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:04:30,899 [DEBUG][       Thread-611576][   transport.py][1871] : Compression: none
2025-07-01 17:04:30,899 [DEBUG][       Thread-611576][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:04:30,956 [DEBUG][       Thread-611576][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:04:30,956 [DEBUG][       Thread-611576][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:04:30,957 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:04:30,957 [DEBUG][       Thread-611576][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:04:30,958 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:04:31,012 [DEBUG][       Thread-611576][   transport.py][1871] : userauth is OK
2025-07-01 17:04:31,012 [DEBUG][       Thread-611576][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:04:31,012 [DEBUG][       Thread-611576][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:04:31,012 [DEBUG][       Thread-611576][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:04:31,012 [DEBUG][       Thread-611576][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:04:31,032 [ INFO][       Thread-611576][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:04:31,032 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:04:31,032 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:04:32,079 [DEBUG][       Thread-611576][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:04:32,079 [DEBUG][       Thread-611576][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:04:32,127 [DEBUG][       Thread-611576][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:04:32,127 [DEBUG][       Thread-611576][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:04:32,136 [DEBUG][       Thread-611576][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:04:32,145 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:04: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')
2025-07-01 17:04:32,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-07-01 17:04:32,162 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:04:32,162 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:04:32,163 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:04:32,170 [DEBUG][       Thread-611576][   transport.py][1871] : EOF in transport thread
2025-07-01 17:04:35,788 [DEBUG][Thread-611578 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:04:39,789 [DEBUG][Thread-611579 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:04:42,164 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:04:42,164 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:04:42,164 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:04:42,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-07-01 17:04:42,627 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 4, 12), 10.57, 48.93, 0.0, 32.23, 13.18, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:04:42,627 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:04:12
2025-07-01 17:04:42,713 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:04:42,716 [DEBUG][       Thread-611580][   transport.py][1871] : starting thread (client mode): 0x82b1720
2025-07-01 17:04:42,717 [DEBUG][       Thread-611580][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:04:42,737 [DEBUG][       Thread-611580][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:04:42,737 [ INFO][       Thread-611580][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:04:42,741 [DEBUG][       Thread-611580][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:04:42,741 [DEBUG][       Thread-611580][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:04:42,741 [DEBUG][       Thread-611580][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:04:42,741 [DEBUG][       Thread-611580][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:04:42,741 [DEBUG][       Thread-611580][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:04:42,741 [DEBUG][       Thread-611580][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:04:42,741 [DEBUG][       Thread-611580][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:04:42,741 [DEBUG][       Thread-611580][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:04:42,741 [DEBUG][       Thread-611580][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:04:42,741 [DEBUG][       Thread-611580][   transport.py][1871] : client lang: <none>
2025-07-01 17:04:42,741 [DEBUG][       Thread-611580][   transport.py][1871] : server lang: <none>
2025-07-01 17:04:42,741 [DEBUG][       Thread-611580][   transport.py][1871] : kex follows: False
2025-07-01 17:04:42,741 [DEBUG][       Thread-611580][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:04:42,741 [DEBUG][       Thread-611580][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:04:42,741 [DEBUG][       Thread-611580][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:04:42,741 [DEBUG][       Thread-611580][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:04:42,741 [DEBUG][       Thread-611580][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:04:42,741 [DEBUG][       Thread-611580][   transport.py][1871] : Compression: none
2025-07-01 17:04:42,741 [DEBUG][       Thread-611580][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:04:42,758 [DEBUG][       Thread-611580][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:04:42,759 [DEBUG][       Thread-611580][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:04:42,759 [DEBUG][       Thread-611580][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:04:42,760 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:04:42,760 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:04:42,761 [DEBUG][       Thread-611580][   transport.py][1871] : userauth is OK
2025-07-01 17:04:42,775 [ INFO][       Thread-611580][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:04:42,776 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:04:43,384 [DEBUG][       Thread-611580][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:04:43,384 [DEBUG][       Thread-611580][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:04:43,425 [DEBUG][       Thread-611580][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:04:43,425 [DEBUG][       Thread-611580][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:04:43,427 [DEBUG][       Thread-611580][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:04:43,439 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:04:43,440 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:04:43,442 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:04:43,443 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:04:43,448 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:04:43,450 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:04:43,450 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:04:43,451 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:04:43,451 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.627716 -999.00  +12.90  25.89     53   +3.80 1 2 1 1 1   887    0 8.78 -8.21 ----- 32.4 25.9 20.6 31.8 13.9 -18.6 13.7 -18.5 13.6 -17.4 14.0 -17.4
2025-07-01 17:04:43,451 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:04:43,451 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:04:43,451 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.627716
2025-07-01 17:04:43,452 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:04:43,452 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:04:43,452 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:04:43,452 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:04:43,453 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:04:43,453 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:04:12', tmtdew=10.57, humidity=48.93, cloud=0.0, wind=32.23, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:03:54.662', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:04:43,453 [DEBUG][       Thread-611580][   transport.py][1871] : EOF in transport thread
2025-07-01 17:04:43,536 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:04:43,547 [DEBUG][       Thread-611583][   transport.py][1871] : starting thread (client mode): 0x474e8130
2025-07-01 17:04:43,547 [DEBUG][       Thread-611583][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:04:43,563 [DEBUG][       Thread-611583][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:04:43,563 [ INFO][       Thread-611583][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:04:43,571 [DEBUG][       Thread-611583][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:04:43,571 [DEBUG][       Thread-611583][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:04:43,571 [DEBUG][       Thread-611583][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:04:43,571 [DEBUG][       Thread-611583][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:04:43,571 [DEBUG][       Thread-611583][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:04:43,571 [DEBUG][       Thread-611583][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:04:43,571 [DEBUG][       Thread-611583][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:04:43,571 [DEBUG][       Thread-611583][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:04:43,571 [DEBUG][       Thread-611583][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:04:43,571 [DEBUG][       Thread-611583][   transport.py][1871] : client lang: <none>
2025-07-01 17:04:43,571 [DEBUG][       Thread-611583][   transport.py][1871] : server lang: <none>
2025-07-01 17:04:43,571 [DEBUG][       Thread-611583][   transport.py][1871] : kex follows: False
2025-07-01 17:04:43,571 [DEBUG][       Thread-611583][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:04:43,571 [DEBUG][       Thread-611583][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:04:43,571 [DEBUG][       Thread-611583][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:04:43,572 [DEBUG][       Thread-611583][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:04:43,572 [DEBUG][       Thread-611583][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:04:43,572 [DEBUG][       Thread-611583][   transport.py][1871] : Compression: none
2025-07-01 17:04:43,572 [DEBUG][       Thread-611583][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:04:43,626 [DEBUG][       Thread-611583][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:04:43,626 [DEBUG][       Thread-611583][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:04:43,626 [DEBUG][       Thread-611583][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:04:43,626 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:04:43,627 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:04:43,684 [DEBUG][       Thread-611583][   transport.py][1871] : userauth is OK
2025-07-01 17:04:43,684 [DEBUG][       Thread-611583][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:04:43,684 [DEBUG][       Thread-611583][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:04:43,684 [DEBUG][       Thread-611583][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:04:43,685 [DEBUG][       Thread-611583][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:04:43,703 [ INFO][       Thread-611583][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:04:43,704 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:04:43,704 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:04:44,756 [DEBUG][       Thread-611583][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:04:44,756 [DEBUG][       Thread-611583][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:04:44,807 [DEBUG][       Thread-611583][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:04:44,807 [DEBUG][       Thread-611583][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:04:44,807 [DEBUG][Thread-611585 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:04:44,816 [DEBUG][       Thread-611583][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:04:44,824 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:04:44,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')
2025-07-01 17:04:44,832 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 17:04:44,840 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:04:44,840 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:04:44,840 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:04:44,847 [DEBUG][       Thread-611583][   transport.py][1871] : EOF in transport thread
2025-07-01 17:04:53,825 [DEBUG][Thread-611586 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:04:54,850 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:04:54,850 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:04:54,850 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:04:54,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-07-01 17:04:55,336 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 4, 44), 10.6, 48.82, 0.0, 22.34, 13.14, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:04:55,336 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:04:44
2025-07-01 17:04:55,421 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:04:55,426 [DEBUG][       Thread-611587][   transport.py][1871] : starting thread (client mode): 0x81e6b00
2025-07-01 17:04:55,426 [DEBUG][       Thread-611587][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:04:55,448 [DEBUG][       Thread-611587][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:04:55,448 [ INFO][       Thread-611587][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:04:55,451 [DEBUG][       Thread-611587][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:04:55,451 [DEBUG][       Thread-611587][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:04:55,452 [DEBUG][       Thread-611587][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:04:55,452 [DEBUG][       Thread-611587][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:04:55,452 [DEBUG][       Thread-611587][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:04:55,452 [DEBUG][       Thread-611587][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:04:55,452 [DEBUG][       Thread-611587][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:04:55,452 [DEBUG][       Thread-611587][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:04:55,452 [DEBUG][       Thread-611587][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:04:55,452 [DEBUG][       Thread-611587][   transport.py][1871] : client lang: <none>
2025-07-01 17:04:55,452 [DEBUG][       Thread-611587][   transport.py][1871] : server lang: <none>
2025-07-01 17:04:55,452 [DEBUG][       Thread-611587][   transport.py][1871] : kex follows: False
2025-07-01 17:04:55,452 [DEBUG][       Thread-611587][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:04:55,452 [DEBUG][       Thread-611587][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:04:55,452 [DEBUG][       Thread-611587][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:04:55,452 [DEBUG][       Thread-611587][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:04:55,452 [DEBUG][       Thread-611587][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:04:55,452 [DEBUG][       Thread-611587][   transport.py][1871] : Compression: none
2025-07-01 17:04:55,452 [DEBUG][       Thread-611587][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:04:55,469 [DEBUG][       Thread-611587][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:04:55,469 [DEBUG][       Thread-611587][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:04:55,470 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:04:55,470 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:04:55,471 [DEBUG][       Thread-611587][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:04:55,472 [DEBUG][       Thread-611587][   transport.py][1871] : userauth is OK
2025-07-01 17:04:55,496 [ INFO][       Thread-611587][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:04:55,497 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:04:56,136 [DEBUG][       Thread-611587][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:04:56,137 [DEBUG][       Thread-611587][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:04:56,181 [DEBUG][       Thread-611587][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:04:56,181 [DEBUG][       Thread-611587][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:04:56,185 [DEBUG][       Thread-611587][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:04:56,198 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:04:56,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:04:56,200 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:04:56,202 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:04:56,207 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:04:56,210 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:04:56,210 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:04:56,210 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:04:56,211 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.628063 -999.00  +12.90  33.09     53   +3.70 1 2 2 1 1   887    0 9.11 -8.65 ----- 32.5 33.1 29.0 38.8 13.9 -18.4 13.8 -18.4 13.6 -17.4 13.9 -17.3
2025-07-01 17:04:56,211 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:04:56,211 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:04:56,211 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.628063
2025-07-01 17:04:56,211 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:04:56,212 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:04:56,212 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:04:56,212 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:04:56,212 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:04:56,212 [DEBUG][       Thread-611587][   transport.py][1871] : EOF in transport thread
2025-07-01 17:04:56,213 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:04:44', tmtdew=10.6, humidity=48.82, cloud=0.0, wind=22.34, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:04:24.643', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:04:56,296 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:04:56,313 [DEBUG][       Thread-611590][   transport.py][1871] : starting thread (client mode): 0x75a85b0
2025-07-01 17:04:56,313 [DEBUG][       Thread-611590][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:04:56,332 [DEBUG][       Thread-611590][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:04:56,332 [ INFO][       Thread-611590][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:04:56,340 [DEBUG][       Thread-611590][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:04:56,340 [DEBUG][       Thread-611590][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:04:56,340 [DEBUG][       Thread-611590][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:04:56,340 [DEBUG][       Thread-611590][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:04:56,340 [DEBUG][       Thread-611590][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:04:56,340 [DEBUG][       Thread-611590][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:04:56,340 [DEBUG][       Thread-611590][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:04:56,340 [DEBUG][       Thread-611590][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:04:56,340 [DEBUG][       Thread-611590][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:04:56,340 [DEBUG][       Thread-611590][   transport.py][1871] : client lang: <none>
2025-07-01 17:04:56,340 [DEBUG][       Thread-611590][   transport.py][1871] : server lang: <none>
2025-07-01 17:04:56,340 [DEBUG][       Thread-611590][   transport.py][1871] : kex follows: False
2025-07-01 17:04:56,340 [DEBUG][       Thread-611590][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:04:56,341 [DEBUG][       Thread-611590][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:04:56,341 [DEBUG][       Thread-611590][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:04:56,341 [DEBUG][       Thread-611590][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:04:56,341 [DEBUG][       Thread-611590][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:04:56,341 [DEBUG][       Thread-611590][   transport.py][1871] : Compression: none
2025-07-01 17:04:56,341 [DEBUG][       Thread-611590][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:04:56,400 [DEBUG][       Thread-611590][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:04:56,401 [DEBUG][       Thread-611590][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:04:56,401 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:04:56,402 [DEBUG][       Thread-611590][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:04:56,403 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:04:56,464 [DEBUG][       Thread-611590][   transport.py][1871] : userauth is OK
2025-07-01 17:04:56,464 [DEBUG][       Thread-611590][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:04:56,464 [DEBUG][       Thread-611590][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:04:56,465 [DEBUG][       Thread-611590][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:04:56,465 [DEBUG][       Thread-611590][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:04:56,484 [ INFO][       Thread-611590][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:04:56,484 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:04:56,485 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:04:57,521 [DEBUG][       Thread-611590][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:04:57,522 [DEBUG][       Thread-611590][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:04:57,572 [DEBUG][       Thread-611590][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:04:57,572 [DEBUG][       Thread-611590][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:04:57,581 [DEBUG][       Thread-611590][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:04:57,590 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:04:57,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-07-01 17:04:57,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-07-01 17:04:57,608 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:04:57,608 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:04:57,609 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:04:57,617 [DEBUG][       Thread-611590][   transport.py][1871] : EOF in transport thread
2025-07-01 17:05:02,847 [DEBUG][Thread-611592 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:05:07,619 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:05:07,620 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:05:07,620 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:05:07,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-07-01 17:05:08,088 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 4, 44), 10.6, 48.82, 0.0, 22.34, 13.14, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:05:08,088 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:04:44
2025-07-01 17:05:08,174 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:05:08,177 [DEBUG][       Thread-611593][   transport.py][1871] : starting thread (client mode): 0x82b1720
2025-07-01 17:05:08,178 [DEBUG][       Thread-611593][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:05:08,199 [DEBUG][       Thread-611593][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:05:08,199 [ INFO][       Thread-611593][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:05:08,202 [DEBUG][       Thread-611593][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:05:08,202 [DEBUG][       Thread-611593][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:05:08,202 [DEBUG][       Thread-611593][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:05:08,202 [DEBUG][       Thread-611593][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:05:08,203 [DEBUG][       Thread-611593][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:05:08,203 [DEBUG][       Thread-611593][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:05:08,203 [DEBUG][       Thread-611593][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:05:08,203 [DEBUG][       Thread-611593][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:05:08,203 [DEBUG][       Thread-611593][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:05:08,203 [DEBUG][       Thread-611593][   transport.py][1871] : client lang: <none>
2025-07-01 17:05:08,203 [DEBUG][       Thread-611593][   transport.py][1871] : server lang: <none>
2025-07-01 17:05:08,203 [DEBUG][       Thread-611593][   transport.py][1871] : kex follows: False
2025-07-01 17:05:08,203 [DEBUG][       Thread-611593][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:05:08,203 [DEBUG][       Thread-611593][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:05:08,203 [DEBUG][       Thread-611593][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:05:08,203 [DEBUG][       Thread-611593][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:05:08,203 [DEBUG][       Thread-611593][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:05:08,203 [DEBUG][       Thread-611593][   transport.py][1871] : Compression: none
2025-07-01 17:05:08,203 [DEBUG][       Thread-611593][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:05:08,220 [DEBUG][       Thread-611593][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:05:08,220 [DEBUG][       Thread-611593][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:05:08,221 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:05:08,221 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:05:08,221 [DEBUG][       Thread-611593][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:05:08,222 [DEBUG][       Thread-611593][   transport.py][1871] : userauth is OK
2025-07-01 17:05:08,247 [ INFO][       Thread-611593][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:05:08,247 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:05:08,921 [DEBUG][       Thread-611593][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:05:08,921 [DEBUG][       Thread-611593][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:05:08,965 [DEBUG][       Thread-611593][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:05:08,965 [DEBUG][       Thread-611593][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:05:08,968 [DEBUG][       Thread-611593][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:05:08,980 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:05:08,980 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:05:08,982 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:05:08,984 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:05:08,989 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:05:08,991 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:05:08,991 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:05:08,992 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:05:08,992 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.628063 -999.00  +12.90  33.09     53   +3.70 1 2 2 1 1   887    0 9.11 -8.65 ----- 32.5 33.1 29.0 38.8 13.9 -18.4 13.8 -18.4 13.6 -17.4 13.9 -17.3
2025-07-01 17:05:08,992 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:05:08,992 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:05:08,992 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.628063
2025-07-01 17:05:08,993 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:05:08,993 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:05:08,994 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:05:08,994 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:05:08,994 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:05:08,994 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:04:44', tmtdew=10.6, humidity=48.82, cloud=0.0, wind=22.34, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:04:24.643', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:05:08,994 [DEBUG][       Thread-611593][   transport.py][1871] : EOF in transport thread
2025-07-01 17:05:09,076 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:05:09,085 [DEBUG][       Thread-611596][   transport.py][1871] : starting thread (client mode): 0x81a6ce0
2025-07-01 17:05:09,085 [DEBUG][       Thread-611596][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:05:09,100 [DEBUG][       Thread-611596][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:05:09,100 [ INFO][       Thread-611596][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:05:09,108 [DEBUG][       Thread-611596][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:05:09,108 [DEBUG][       Thread-611596][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:05:09,108 [DEBUG][       Thread-611596][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:05:09,108 [DEBUG][       Thread-611596][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:05:09,108 [DEBUG][       Thread-611596][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:05:09,108 [DEBUG][       Thread-611596][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:05:09,108 [DEBUG][       Thread-611596][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:05:09,108 [DEBUG][       Thread-611596][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:05:09,108 [DEBUG][       Thread-611596][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:05:09,108 [DEBUG][       Thread-611596][   transport.py][1871] : client lang: <none>
2025-07-01 17:05:09,108 [DEBUG][       Thread-611596][   transport.py][1871] : server lang: <none>
2025-07-01 17:05:09,108 [DEBUG][       Thread-611596][   transport.py][1871] : kex follows: False
2025-07-01 17:05:09,108 [DEBUG][       Thread-611596][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:05:09,108 [DEBUG][       Thread-611596][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:05:09,108 [DEBUG][       Thread-611596][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:05:09,108 [DEBUG][       Thread-611596][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:05:09,109 [DEBUG][       Thread-611596][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:05:09,109 [DEBUG][       Thread-611596][   transport.py][1871] : Compression: none
2025-07-01 17:05:09,109 [DEBUG][       Thread-611596][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:05:09,167 [DEBUG][       Thread-611596][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:05:09,167 [DEBUG][       Thread-611596][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:05:09,168 [DEBUG][       Thread-611596][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:05:09,168 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:05:09,169 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:05:09,225 [DEBUG][       Thread-611596][   transport.py][1871] : userauth is OK
2025-07-01 17:05:09,225 [DEBUG][       Thread-611596][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:05:09,225 [DEBUG][       Thread-611596][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:05:09,225 [DEBUG][       Thread-611596][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:05:09,225 [DEBUG][       Thread-611596][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:05:09,249 [ INFO][       Thread-611596][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:05:09,250 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:05:09,250 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:05:10,275 [DEBUG][       Thread-611596][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:05:10,276 [DEBUG][       Thread-611596][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:05:10,324 [DEBUG][       Thread-611596][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:05:10,324 [DEBUG][       Thread-611596][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:05:10,334 [DEBUG][       Thread-611596][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:05:10,343 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:05:10,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-07-01 17:05:10,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-07-01 17:05:10,362 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:05:10,362 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:05:10,362 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:05:10,370 [DEBUG][       Thread-611596][   transport.py][1871] : EOF in transport thread
2025-07-01 17:05:11,881 [DEBUG][Thread-611598 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:05:20,373 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:05:20,373 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:05:20,373 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:05:20,376 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:05:20,849 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 5, 16), 10.68, 48.54, 0.0, 34.09, 13.13, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:05:20,849 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:05:16
2025-07-01 17:05:20,901 [DEBUG][Thread-611599 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:05:20,934 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:05:20,940 [DEBUG][       Thread-611600][   transport.py][1871] : starting thread (client mode): 0x81e4520
2025-07-01 17:05:20,940 [DEBUG][       Thread-611600][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:05:20,959 [DEBUG][       Thread-611600][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:05:20,959 [ INFO][       Thread-611600][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:05:20,963 [DEBUG][       Thread-611600][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:05:20,963 [DEBUG][       Thread-611600][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:05:20,963 [DEBUG][       Thread-611600][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:05:20,963 [DEBUG][       Thread-611600][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:05:20,963 [DEBUG][       Thread-611600][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:05:20,963 [DEBUG][       Thread-611600][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:05:20,963 [DEBUG][       Thread-611600][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:05:20,963 [DEBUG][       Thread-611600][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:05:20,963 [DEBUG][       Thread-611600][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:05:20,963 [DEBUG][       Thread-611600][   transport.py][1871] : client lang: <none>
2025-07-01 17:05:20,963 [DEBUG][       Thread-611600][   transport.py][1871] : server lang: <none>
2025-07-01 17:05:20,963 [DEBUG][       Thread-611600][   transport.py][1871] : kex follows: False
2025-07-01 17:05:20,963 [DEBUG][       Thread-611600][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:05:20,963 [DEBUG][       Thread-611600][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:05:20,963 [DEBUG][       Thread-611600][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:05:20,963 [DEBUG][       Thread-611600][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:05:20,963 [DEBUG][       Thread-611600][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:05:20,963 [DEBUG][       Thread-611600][   transport.py][1871] : Compression: none
2025-07-01 17:05:20,963 [DEBUG][       Thread-611600][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:05:20,981 [DEBUG][       Thread-611600][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:05:20,982 [DEBUG][       Thread-611600][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:05:20,982 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:05:20,982 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:05:20,983 [DEBUG][       Thread-611600][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:05:20,984 [DEBUG][       Thread-611600][   transport.py][1871] : userauth is OK
2025-07-01 17:05:20,997 [ INFO][       Thread-611600][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:05:20,998 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:05:21,667 [DEBUG][       Thread-611600][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:05:21,667 [DEBUG][       Thread-611600][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:05:21,709 [DEBUG][       Thread-611600][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:05:21,709 [DEBUG][       Thread-611600][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:05:21,713 [DEBUG][       Thread-611600][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:05:21,722 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:05:21,722 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:05:21,724 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:05:21,726 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:05:21,731 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:05:21,733 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:05:21,734 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:05:21,734 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:05:21,734 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.628410 -999.00  +12.90  26.33     53   +3.70 1 2 1 1 1   887    0 9.08 -8.14 ----- 27.2 26.3 27.2 38.0 13.9 -18.2 13.8 -18.3 13.6 -17.3 13.9 -17.2
2025-07-01 17:05:21,735 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:05:21,735 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:05:21,735 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.628410
2025-07-01 17:05:21,735 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:05:21,736 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:05:21,736 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:05:21,736 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:05:21,736 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:05:21,736 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:05:16', tmtdew=10.68, humidity=48.54, cloud=0.0, wind=34.09, temperature=13.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:04:54.624', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:05:21,737 [DEBUG][       Thread-611600][   transport.py][1871] : EOF in transport thread
2025-07-01 17:05:21,819 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:05:21,829 [DEBUG][       Thread-611603][   transport.py][1871] : starting thread (client mode): 0x8157a00
2025-07-01 17:05:21,829 [DEBUG][       Thread-611603][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:05:21,845 [DEBUG][       Thread-611603][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:05:21,845 [ INFO][       Thread-611603][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:05:21,852 [DEBUG][       Thread-611603][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:05:21,852 [DEBUG][       Thread-611603][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:05:21,852 [DEBUG][       Thread-611603][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:05:21,852 [DEBUG][       Thread-611603][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:05:21,852 [DEBUG][       Thread-611603][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:05:21,853 [DEBUG][       Thread-611603][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:05:21,853 [DEBUG][       Thread-611603][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:05:21,853 [DEBUG][       Thread-611603][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:05:21,853 [DEBUG][       Thread-611603][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:05:21,853 [DEBUG][       Thread-611603][   transport.py][1871] : client lang: <none>
2025-07-01 17:05:21,853 [DEBUG][       Thread-611603][   transport.py][1871] : server lang: <none>
2025-07-01 17:05:21,853 [DEBUG][       Thread-611603][   transport.py][1871] : kex follows: False
2025-07-01 17:05:21,853 [DEBUG][       Thread-611603][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:05:21,853 [DEBUG][       Thread-611603][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:05:21,853 [DEBUG][       Thread-611603][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:05:21,853 [DEBUG][       Thread-611603][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:05:21,853 [DEBUG][       Thread-611603][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:05:21,853 [DEBUG][       Thread-611603][   transport.py][1871] : Compression: none
2025-07-01 17:05:21,853 [DEBUG][       Thread-611603][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:05:21,915 [DEBUG][       Thread-611603][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:05:21,916 [DEBUG][       Thread-611603][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:05:21,916 [DEBUG][       Thread-611603][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:05:21,916 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:05:21,917 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:05:21,975 [DEBUG][       Thread-611603][   transport.py][1871] : userauth is OK
2025-07-01 17:05:21,975 [DEBUG][       Thread-611603][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:05:21,975 [DEBUG][       Thread-611603][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:05:21,975 [DEBUG][       Thread-611603][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:05:21,975 [DEBUG][       Thread-611603][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:05:21,991 [ INFO][       Thread-611603][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:05:21,992 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:05:21,992 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:05:23,060 [DEBUG][       Thread-611603][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:05:23,060 [DEBUG][       Thread-611603][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:05:23,107 [DEBUG][       Thread-611603][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:05:23,107 [DEBUG][       Thread-611603][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:05:23,117 [DEBUG][       Thread-611603][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:05:23,125 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:05:23,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')
2025-07-01 17:05:23,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-07-01 17:05:23,143 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:05:23,143 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:05:23,144 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:05:23,152 [DEBUG][       Thread-611603][   transport.py][1871] : EOF in transport thread
2025-07-01 17:05:29,922 [DEBUG][Thread-611605 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:05:33,154 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:05:33,154 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:05:33,155 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:05:33,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-07-01 17:05:33,637 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 5, 16), 10.68, 48.54, 0.0, 34.09, 13.13, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:05:33,637 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:05:16
2025-07-01 17:05:33,721 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:05:33,728 [DEBUG][       Thread-611606][   transport.py][1871] : starting thread (client mode): 0x82b2830
2025-07-01 17:05:33,728 [DEBUG][       Thread-611606][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:05:33,748 [DEBUG][       Thread-611606][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:05:33,748 [ INFO][       Thread-611606][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:05:33,751 [DEBUG][       Thread-611606][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:05:33,751 [DEBUG][       Thread-611606][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:05:33,751 [DEBUG][       Thread-611606][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:05:33,751 [DEBUG][       Thread-611606][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:05:33,751 [DEBUG][       Thread-611606][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:05:33,752 [DEBUG][       Thread-611606][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:05:33,752 [DEBUG][       Thread-611606][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:05:33,752 [DEBUG][       Thread-611606][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:05:33,752 [DEBUG][       Thread-611606][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:05:33,752 [DEBUG][       Thread-611606][   transport.py][1871] : client lang: <none>
2025-07-01 17:05:33,752 [DEBUG][       Thread-611606][   transport.py][1871] : server lang: <none>
2025-07-01 17:05:33,752 [DEBUG][       Thread-611606][   transport.py][1871] : kex follows: False
2025-07-01 17:05:33,752 [DEBUG][       Thread-611606][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:05:33,752 [DEBUG][       Thread-611606][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:05:33,752 [DEBUG][       Thread-611606][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:05:33,752 [DEBUG][       Thread-611606][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:05:33,752 [DEBUG][       Thread-611606][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:05:33,752 [DEBUG][       Thread-611606][   transport.py][1871] : Compression: none
2025-07-01 17:05:33,752 [DEBUG][       Thread-611606][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:05:33,768 [DEBUG][       Thread-611606][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:05:33,769 [DEBUG][       Thread-611606][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:05:33,769 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:05:33,769 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:05:33,770 [DEBUG][       Thread-611606][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:05:33,770 [DEBUG][       Thread-611606][   transport.py][1871] : userauth is OK
2025-07-01 17:05:33,783 [ INFO][       Thread-611606][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:05:33,784 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:05:34,431 [DEBUG][       Thread-611606][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:05:34,431 [DEBUG][       Thread-611606][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:05:34,473 [DEBUG][       Thread-611606][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:05:34,473 [DEBUG][       Thread-611606][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:05:34,476 [DEBUG][       Thread-611606][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:05:34,488 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:05:34,488 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:05:34,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:05:34,492 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:05:34,498 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:05:34,500 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:05:34,500 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:05:34,501 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:05:34,501 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.628410 -999.00  +12.90  26.33     53   +3.70 1 2 1 1 1   887    0 9.08 -8.14 ----- 27.2 26.3 27.2 38.0 13.9 -18.2 13.8 -18.3 13.6 -17.3 13.9 -17.2
2025-07-01 17:05:34,501 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:05:34,501 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:05:34,501 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.628410
2025-07-01 17:05:34,502 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:05:34,502 [DEBUG][       Thread-611606][   transport.py][1871] : EOF in transport thread
2025-07-01 17:05:34,503 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:05:34,503 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:05:34,503 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:05:34,503 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:05:34,504 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:05:16', tmtdew=10.68, humidity=48.54, cloud=0.0, wind=34.09, temperature=13.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:04:54.624', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:05:34,587 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:05:34,600 [DEBUG][       Thread-611609][   transport.py][1871] : starting thread (client mode): 0x8156620
2025-07-01 17:05:34,600 [DEBUG][       Thread-611609][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:05:34,616 [DEBUG][       Thread-611609][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:05:34,616 [ INFO][       Thread-611609][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:05:34,623 [DEBUG][       Thread-611609][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:05:34,624 [DEBUG][       Thread-611609][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:05:34,624 [DEBUG][       Thread-611609][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:05:34,624 [DEBUG][       Thread-611609][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:05:34,624 [DEBUG][       Thread-611609][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:05:34,624 [DEBUG][       Thread-611609][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:05:34,624 [DEBUG][       Thread-611609][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:05:34,624 [DEBUG][       Thread-611609][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:05:34,624 [DEBUG][       Thread-611609][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:05:34,624 [DEBUG][       Thread-611609][   transport.py][1871] : client lang: <none>
2025-07-01 17:05:34,624 [DEBUG][       Thread-611609][   transport.py][1871] : server lang: <none>
2025-07-01 17:05:34,624 [DEBUG][       Thread-611609][   transport.py][1871] : kex follows: False
2025-07-01 17:05:34,624 [DEBUG][       Thread-611609][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:05:34,624 [DEBUG][       Thread-611609][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:05:34,624 [DEBUG][       Thread-611609][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:05:34,624 [DEBUG][       Thread-611609][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:05:34,624 [DEBUG][       Thread-611609][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:05:34,625 [DEBUG][       Thread-611609][   transport.py][1871] : Compression: none
2025-07-01 17:05:34,625 [DEBUG][       Thread-611609][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:05:34,683 [DEBUG][       Thread-611609][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:05:34,684 [DEBUG][       Thread-611609][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:05:34,684 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:05:34,685 [DEBUG][       Thread-611609][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:05:34,686 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:05:34,739 [DEBUG][       Thread-611609][   transport.py][1871] : userauth is OK
2025-07-01 17:05:34,739 [DEBUG][       Thread-611609][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:05:34,740 [DEBUG][       Thread-611609][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:05:34,740 [DEBUG][       Thread-611609][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:05:34,740 [DEBUG][       Thread-611609][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:05:34,759 [ INFO][       Thread-611609][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:05:34,759 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:05:34,760 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:05:35,870 [DEBUG][       Thread-611609][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:05:35,870 [DEBUG][       Thread-611609][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:05:35,920 [DEBUG][       Thread-611609][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:05:35,920 [DEBUG][       Thread-611609][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:05:35,929 [DEBUG][       Thread-611609][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:05:35,938 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:05:35,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-07-01 17:05:35,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-07-01 17:05:35,956 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:05:35,956 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:05:35,957 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:05:35,972 [DEBUG][       Thread-611609][   transport.py][1871] : EOF in transport thread
2025-07-01 17:05:38,965 [DEBUG][Thread-611611 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:05:39,818 [DEBUG][Thread-611612 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:05:45,964 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:05:45,965 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:05:45,965 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:05:45,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-07-01 17:05:46,434 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 5, 16), 10.68, 48.54, 0.0, 34.09, 13.13, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:05:46,434 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:05:16
2025-07-01 17:05:46,519 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:05:46,523 [DEBUG][       Thread-611613][   transport.py][1871] : starting thread (client mode): 0x82b2fe0
2025-07-01 17:05:46,523 [DEBUG][       Thread-611613][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:05:46,543 [DEBUG][       Thread-611613][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:05:46,543 [ INFO][       Thread-611613][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:05:46,545 [DEBUG][       Thread-611613][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:05:46,545 [DEBUG][       Thread-611613][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:05:46,545 [DEBUG][       Thread-611613][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:05:46,545 [DEBUG][       Thread-611613][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:05:46,545 [DEBUG][       Thread-611613][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:05:46,545 [DEBUG][       Thread-611613][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:05:46,545 [DEBUG][       Thread-611613][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:05:46,545 [DEBUG][       Thread-611613][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:05:46,545 [DEBUG][       Thread-611613][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:05:46,545 [DEBUG][       Thread-611613][   transport.py][1871] : client lang: <none>
2025-07-01 17:05:46,545 [DEBUG][       Thread-611613][   transport.py][1871] : server lang: <none>
2025-07-01 17:05:46,545 [DEBUG][       Thread-611613][   transport.py][1871] : kex follows: False
2025-07-01 17:05:46,545 [DEBUG][       Thread-611613][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:05:46,545 [DEBUG][       Thread-611613][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:05:46,545 [DEBUG][       Thread-611613][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:05:46,545 [DEBUG][       Thread-611613][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:05:46,545 [DEBUG][       Thread-611613][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:05:46,546 [DEBUG][       Thread-611613][   transport.py][1871] : Compression: none
2025-07-01 17:05:46,546 [DEBUG][       Thread-611613][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:05:46,554 [DEBUG][       Thread-611613][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:05:46,555 [DEBUG][       Thread-611613][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:05:46,555 [DEBUG][       Thread-611613][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:05:46,555 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:05:46,556 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:05:46,557 [DEBUG][       Thread-611613][   transport.py][1871] : userauth is OK
2025-07-01 17:05:46,570 [ INFO][       Thread-611613][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:05:46,571 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:05:47,206 [DEBUG][       Thread-611613][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:05:47,206 [DEBUG][       Thread-611613][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:05:47,249 [DEBUG][       Thread-611613][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:05:47,249 [DEBUG][       Thread-611613][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:05:47,253 [DEBUG][       Thread-611613][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:05:47,266 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:05:47,267 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:05:47,268 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:05:47,270 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:05:47,276 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:05:47,278 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:05:47,278 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:05:47,278 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:05:47,279 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.628410 -999.00  +12.90  26.33     53   +3.70 1 2 1 1 1   887    0 9.08 -8.14 ----- 27.2 26.3 27.2 38.0 13.9 -18.2 13.8 -18.3 13.6 -17.3 13.9 -17.2
2025-07-01 17:05:47,279 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:05:47,279 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:05:47,279 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.628410
2025-07-01 17:05:47,279 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:05:47,280 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:05:47,280 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:05:47,280 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:05:47,280 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:05:47,280 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:05:16', tmtdew=10.68, humidity=48.54, cloud=0.0, wind=34.09, temperature=13.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:04:54.624', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:05:47,281 [DEBUG][       Thread-611613][   transport.py][1871] : EOF in transport thread
2025-07-01 17:05:47,364 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:05:47,373 [DEBUG][       Thread-611616][   transport.py][1871] : starting thread (client mode): 0x81736d0
2025-07-01 17:05:47,373 [DEBUG][       Thread-611616][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:05:47,388 [DEBUG][       Thread-611616][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:05:47,388 [ INFO][       Thread-611616][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:05:47,396 [DEBUG][       Thread-611616][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:05:47,396 [DEBUG][       Thread-611616][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:05:47,396 [DEBUG][       Thread-611616][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:05:47,396 [DEBUG][       Thread-611616][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:05:47,396 [DEBUG][       Thread-611616][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:05:47,396 [DEBUG][       Thread-611616][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:05:47,396 [DEBUG][       Thread-611616][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:05:47,396 [DEBUG][       Thread-611616][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:05:47,396 [DEBUG][       Thread-611616][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:05:47,396 [DEBUG][       Thread-611616][   transport.py][1871] : client lang: <none>
2025-07-01 17:05:47,396 [DEBUG][       Thread-611616][   transport.py][1871] : server lang: <none>
2025-07-01 17:05:47,396 [DEBUG][       Thread-611616][   transport.py][1871] : kex follows: False
2025-07-01 17:05:47,397 [DEBUG][       Thread-611616][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:05:47,397 [DEBUG][       Thread-611616][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:05:47,397 [DEBUG][       Thread-611616][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:05:47,397 [DEBUG][       Thread-611616][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:05:47,397 [DEBUG][       Thread-611616][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:05:47,397 [DEBUG][       Thread-611616][   transport.py][1871] : Compression: none
2025-07-01 17:05:47,397 [DEBUG][       Thread-611616][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:05:47,455 [DEBUG][       Thread-611616][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:05:47,456 [DEBUG][       Thread-611616][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:05:47,457 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:05:47,457 [DEBUG][       Thread-611616][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:05:47,458 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:05:47,511 [DEBUG][       Thread-611616][   transport.py][1871] : userauth is OK
2025-07-01 17:05:47,511 [DEBUG][       Thread-611616][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:05:47,511 [DEBUG][       Thread-611616][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:05:47,512 [DEBUG][       Thread-611616][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:05:47,512 [DEBUG][       Thread-611616][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:05:47,530 [ INFO][       Thread-611616][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:05:47,530 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:05:47,531 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:05:47,986 [DEBUG][Thread-611618 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:05:48,624 [DEBUG][       Thread-611616][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:05:48,624 [DEBUG][       Thread-611616][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:05:48,675 [DEBUG][       Thread-611616][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:05:48,675 [DEBUG][       Thread-611616][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:05:48,683 [DEBUG][       Thread-611616][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:05:48,691 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:05:48,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-07-01 17:05:48,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-07-01 17:05:48,707 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:05:48,707 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:05:48,707 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:05:48,715 [DEBUG][       Thread-611616][   transport.py][1871] : EOF in transport thread
2025-07-01 17:05:57,009 [DEBUG][Thread-611619 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:05:58,717 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:05:58,718 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:05:58,718 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:05:58,721 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:05:59,210 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 5, 47), 10.68, 48.54, 0.0, 33.81, 13.16, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:05:59,210 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:05:47
2025-07-01 17:05:59,296 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:05:59,301 [DEBUG][       Thread-611620][   transport.py][1871] : starting thread (client mode): 0x81a5480
2025-07-01 17:05:59,302 [DEBUG][       Thread-611620][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:05:59,322 [DEBUG][       Thread-611620][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:05:59,322 [ INFO][       Thread-611620][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:05:59,326 [DEBUG][       Thread-611620][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:05:59,326 [DEBUG][       Thread-611620][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:05:59,326 [DEBUG][       Thread-611620][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:05:59,326 [DEBUG][       Thread-611620][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:05:59,326 [DEBUG][       Thread-611620][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:05:59,326 [DEBUG][       Thread-611620][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:05:59,326 [DEBUG][       Thread-611620][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:05:59,326 [DEBUG][       Thread-611620][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:05:59,326 [DEBUG][       Thread-611620][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:05:59,326 [DEBUG][       Thread-611620][   transport.py][1871] : client lang: <none>
2025-07-01 17:05:59,326 [DEBUG][       Thread-611620][   transport.py][1871] : server lang: <none>
2025-07-01 17:05:59,326 [DEBUG][       Thread-611620][   transport.py][1871] : kex follows: False
2025-07-01 17:05:59,326 [DEBUG][       Thread-611620][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:05:59,326 [DEBUG][       Thread-611620][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:05:59,326 [DEBUG][       Thread-611620][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:05:59,326 [DEBUG][       Thread-611620][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:05:59,326 [DEBUG][       Thread-611620][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:05:59,326 [DEBUG][       Thread-611620][   transport.py][1871] : Compression: none
2025-07-01 17:05:59,326 [DEBUG][       Thread-611620][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:05:59,345 [DEBUG][       Thread-611620][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:05:59,345 [DEBUG][       Thread-611620][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:05:59,346 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:05:59,346 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:05:59,347 [DEBUG][       Thread-611620][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:05:59,347 [DEBUG][       Thread-611620][   transport.py][1871] : userauth is OK
2025-07-01 17:05:59,372 [ INFO][       Thread-611620][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:05:59,373 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:06:00,051 [DEBUG][       Thread-611620][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:06:00,052 [DEBUG][       Thread-611620][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:06:00,093 [DEBUG][       Thread-611620][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:06:00,093 [DEBUG][       Thread-611620][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:06:00,096 [DEBUG][       Thread-611620][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:06:00,108 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:06:00,108 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:06:00,110 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:06:00,112 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:06:00,118 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:06:00,120 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:06:00,120 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:06:00,121 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:06:00,121 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.628757 -999.00  +12.90  26.35     53   +3.60 1 2 1 1 1   887    0 8.85 -7.33 ----- 27.4 26.4 43.8 36.6 13.9 -18.2 13.7 -18.0 13.6 -17.2 14.0 -17.2
2025-07-01 17:06:00,121 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:06:00,121 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:06:00,121 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.628757
2025-07-01 17:06:00,122 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:06:00,122 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:06:00,122 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:06:00,122 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:06:00,122 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:06:00,122 [DEBUG][       Thread-611620][   transport.py][1871] : EOF in transport thread
2025-07-01 17:06:00,123 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:05:47', tmtdew=10.68, humidity=48.54, cloud=0.0, wind=33.81, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:05:24.605', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:06:00,206 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:06:00,219 [DEBUG][       Thread-611623][   transport.py][1871] : starting thread (client mode): 0x81ca6e0
2025-07-01 17:06:00,219 [DEBUG][       Thread-611623][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:06:00,240 [DEBUG][       Thread-611623][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:06:00,240 [ INFO][       Thread-611623][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:06:00,250 [DEBUG][       Thread-611623][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:06:00,250 [DEBUG][       Thread-611623][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:06:00,250 [DEBUG][       Thread-611623][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:06:00,250 [DEBUG][       Thread-611623][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:06:00,250 [DEBUG][       Thread-611623][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:06:00,250 [DEBUG][       Thread-611623][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:06:00,250 [DEBUG][       Thread-611623][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:06:00,250 [DEBUG][       Thread-611623][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:06:00,250 [DEBUG][       Thread-611623][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:06:00,250 [DEBUG][       Thread-611623][   transport.py][1871] : client lang: <none>
2025-07-01 17:06:00,250 [DEBUG][       Thread-611623][   transport.py][1871] : server lang: <none>
2025-07-01 17:06:00,251 [DEBUG][       Thread-611623][   transport.py][1871] : kex follows: False
2025-07-01 17:06:00,251 [DEBUG][       Thread-611623][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:06:00,251 [DEBUG][       Thread-611623][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:06:00,251 [DEBUG][       Thread-611623][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:06:00,251 [DEBUG][       Thread-611623][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:06:00,251 [DEBUG][       Thread-611623][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:06:00,251 [DEBUG][       Thread-611623][   transport.py][1871] : Compression: none
2025-07-01 17:06:00,251 [DEBUG][       Thread-611623][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:06:00,310 [DEBUG][       Thread-611623][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:06:00,311 [DEBUG][       Thread-611623][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:06:00,311 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:06:00,312 [DEBUG][       Thread-611623][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:06:00,312 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:06:00,370 [DEBUG][       Thread-611623][   transport.py][1871] : userauth is OK
2025-07-01 17:06:00,370 [DEBUG][       Thread-611623][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:06:00,371 [DEBUG][       Thread-611623][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:06:00,371 [DEBUG][       Thread-611623][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:06:00,371 [DEBUG][       Thread-611623][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:06:00,391 [ INFO][       Thread-611623][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:06:00,391 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:06:00,391 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:06:01,437 [DEBUG][       Thread-611623][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:06:01,437 [DEBUG][       Thread-611623][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:06:01,489 [DEBUG][       Thread-611623][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:06:01,489 [DEBUG][       Thread-611623][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:06:01,502 [DEBUG][       Thread-611623][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:06:01,514 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:06:01,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-07-01 17:06:01,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-07-01 17:06:01,535 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:06:01,535 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:06:01,536 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:06:01,544 [DEBUG][       Thread-611623][   transport.py][1871] : EOF in transport thread
2025-07-01 17:06:06,026 [DEBUG][Thread-611625 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:06:11,545 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:06:11,545 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:06:11,545 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:06:11,546 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:06:12,009 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 5, 47), 10.68, 48.54, 0.0, 33.81, 13.16, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:06:12,009 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:05:47
2025-07-01 17:06:12,093 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:06:12,097 [DEBUG][       Thread-611626][   transport.py][1871] : starting thread (client mode): 0x81e7f70
2025-07-01 17:06:12,098 [DEBUG][       Thread-611626][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:06:12,118 [DEBUG][       Thread-611626][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:06:12,118 [ INFO][       Thread-611626][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:06:12,121 [DEBUG][       Thread-611626][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:06:12,121 [DEBUG][       Thread-611626][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:06:12,121 [DEBUG][       Thread-611626][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:06:12,121 [DEBUG][       Thread-611626][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:06:12,121 [DEBUG][       Thread-611626][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:06:12,122 [DEBUG][       Thread-611626][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:06:12,122 [DEBUG][       Thread-611626][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:06:12,122 [DEBUG][       Thread-611626][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:06:12,122 [DEBUG][       Thread-611626][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:06:12,122 [DEBUG][       Thread-611626][   transport.py][1871] : client lang: <none>
2025-07-01 17:06:12,122 [DEBUG][       Thread-611626][   transport.py][1871] : server lang: <none>
2025-07-01 17:06:12,122 [DEBUG][       Thread-611626][   transport.py][1871] : kex follows: False
2025-07-01 17:06:12,122 [DEBUG][       Thread-611626][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:06:12,122 [DEBUG][       Thread-611626][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:06:12,122 [DEBUG][       Thread-611626][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:06:12,122 [DEBUG][       Thread-611626][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:06:12,122 [DEBUG][       Thread-611626][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:06:12,122 [DEBUG][       Thread-611626][   transport.py][1871] : Compression: none
2025-07-01 17:06:12,122 [DEBUG][       Thread-611626][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:06:12,139 [DEBUG][       Thread-611626][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:06:12,139 [DEBUG][       Thread-611626][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:06:12,140 [DEBUG][       Thread-611626][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:06:12,140 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:06:12,140 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:06:12,142 [DEBUG][       Thread-611626][   transport.py][1871] : userauth is OK
2025-07-01 17:06:12,168 [ INFO][       Thread-611626][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:06:12,169 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:06:12,796 [DEBUG][       Thread-611626][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:06:12,796 [DEBUG][       Thread-611626][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:06:12,837 [DEBUG][       Thread-611626][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:06:12,837 [DEBUG][       Thread-611626][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:06:12,841 [DEBUG][       Thread-611626][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:06:12,853 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:06:12,853 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:06:12,855 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:06:12,857 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:06:12,863 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:06:12,865 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:06:12,865 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:06:12,866 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:06:12,866 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.628757 -999.00  +12.90  26.35     53   +3.60 1 2 1 1 1   887    0 8.85 -7.33 ----- 27.4 26.4 43.8 36.6 13.9 -18.2 13.7 -18.0 13.6 -17.2 14.0 -17.2
2025-07-01 17:06:12,866 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:06:12,866 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:06:12,866 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.628757
2025-07-01 17:06:12,867 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:06:12,867 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:06:12,867 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:06:12,868 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:06:12,868 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:06:12,868 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:05:47', tmtdew=10.68, humidity=48.54, cloud=0.0, wind=33.81, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:05:24.605', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:06:12,869 [DEBUG][       Thread-611626][   transport.py][1871] : EOF in transport thread
2025-07-01 17:06:12,952 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:06:12,961 [DEBUG][       Thread-611629][   transport.py][1871] : starting thread (client mode): 0x818c0d0
2025-07-01 17:06:12,961 [DEBUG][       Thread-611629][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:06:12,976 [DEBUG][       Thread-611629][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:06:12,976 [ INFO][       Thread-611629][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:06:12,984 [DEBUG][       Thread-611629][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:06:12,984 [DEBUG][       Thread-611629][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:06:12,984 [DEBUG][       Thread-611629][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:06:12,984 [DEBUG][       Thread-611629][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:06:12,985 [DEBUG][       Thread-611629][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:06:12,985 [DEBUG][       Thread-611629][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:06:12,985 [DEBUG][       Thread-611629][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:06:12,985 [DEBUG][       Thread-611629][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:06:12,985 [DEBUG][       Thread-611629][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:06:12,985 [DEBUG][       Thread-611629][   transport.py][1871] : client lang: <none>
2025-07-01 17:06:12,985 [DEBUG][       Thread-611629][   transport.py][1871] : server lang: <none>
2025-07-01 17:06:12,985 [DEBUG][       Thread-611629][   transport.py][1871] : kex follows: False
2025-07-01 17:06:12,985 [DEBUG][       Thread-611629][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:06:12,985 [DEBUG][       Thread-611629][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:06:12,985 [DEBUG][       Thread-611629][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:06:12,985 [DEBUG][       Thread-611629][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:06:12,985 [DEBUG][       Thread-611629][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:06:12,985 [DEBUG][       Thread-611629][   transport.py][1871] : Compression: none
2025-07-01 17:06:12,985 [DEBUG][       Thread-611629][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:06:13,043 [DEBUG][       Thread-611629][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:06:13,043 [DEBUG][       Thread-611629][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:06:13,044 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:06:13,045 [DEBUG][       Thread-611629][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:06:13,045 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:06:13,099 [DEBUG][       Thread-611629][   transport.py][1871] : userauth is OK
2025-07-01 17:06:13,099 [DEBUG][       Thread-611629][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:06:13,099 [DEBUG][       Thread-611629][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:06:13,099 [DEBUG][       Thread-611629][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:06:13,099 [DEBUG][       Thread-611629][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:06:13,118 [ INFO][       Thread-611629][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:06:13,118 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:06:13,119 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:06:14,139 [DEBUG][       Thread-611629][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:06:14,139 [DEBUG][       Thread-611629][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:06:14,188 [DEBUG][       Thread-611629][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:06:14,188 [DEBUG][       Thread-611629][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:06:14,197 [DEBUG][       Thread-611629][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:06:14,206 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:06:14,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-07-01 17:06:14,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-07-01 17:06:14,225 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:06:14,225 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:06:14,225 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:06:14,233 [DEBUG][       Thread-611629][   transport.py][1871] : EOF in transport thread
2025-07-01 17:06:15,052 [DEBUG][Thread-611631 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:06:24,074 [DEBUG][Thread-611632 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:06:24,236 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:06:24,236 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:06:24,236 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:06:24,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-07-01 17:06:24,705 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 6, 19), 10.73, 48.26, 0.0, 33.61, 13.18, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:06:24,705 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:06:19
2025-07-01 17:06:24,790 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:06:24,796 [DEBUG][       Thread-611633][   transport.py][1871] : starting thread (client mode): 0x818d000
2025-07-01 17:06:24,796 [DEBUG][       Thread-611633][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:06:24,816 [DEBUG][       Thread-611633][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:06:24,816 [ INFO][       Thread-611633][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:06:24,819 [DEBUG][       Thread-611633][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:06:24,819 [DEBUG][       Thread-611633][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:06:24,819 [DEBUG][       Thread-611633][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:06:24,819 [DEBUG][       Thread-611633][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:06:24,820 [DEBUG][       Thread-611633][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:06:24,820 [DEBUG][       Thread-611633][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:06:24,820 [DEBUG][       Thread-611633][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:06:24,820 [DEBUG][       Thread-611633][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:06:24,820 [DEBUG][       Thread-611633][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:06:24,820 [DEBUG][       Thread-611633][   transport.py][1871] : client lang: <none>
2025-07-01 17:06:24,820 [DEBUG][       Thread-611633][   transport.py][1871] : server lang: <none>
2025-07-01 17:06:24,820 [DEBUG][       Thread-611633][   transport.py][1871] : kex follows: False
2025-07-01 17:06:24,820 [DEBUG][       Thread-611633][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:06:24,820 [DEBUG][       Thread-611633][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:06:24,820 [DEBUG][       Thread-611633][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:06:24,820 [DEBUG][       Thread-611633][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:06:24,820 [DEBUG][       Thread-611633][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:06:24,820 [DEBUG][       Thread-611633][   transport.py][1871] : Compression: none
2025-07-01 17:06:24,820 [DEBUG][       Thread-611633][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:06:24,839 [DEBUG][       Thread-611633][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:06:24,839 [DEBUG][       Thread-611633][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:06:24,840 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:06:24,840 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:06:24,841 [DEBUG][       Thread-611633][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:06:24,841 [DEBUG][       Thread-611633][   transport.py][1871] : userauth is OK
2025-07-01 17:06:24,866 [ INFO][       Thread-611633][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:06:24,867 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:06:25,468 [DEBUG][       Thread-611633][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:06:25,468 [DEBUG][       Thread-611633][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:06:25,509 [DEBUG][       Thread-611633][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:06:25,509 [DEBUG][       Thread-611633][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:06:25,512 [DEBUG][       Thread-611633][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:06:25,523 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:06:25,524 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:06:25,525 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:06:25,527 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:06:25,533 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:06:25,535 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:06:25,535 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:06:25,536 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:06:25,536 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.629105 -999.00  +13.00  32.80     52   +3.60 1 2 2 1 1   887    0 8.97 -5.59 ----- 26.8 32.8 41.0 44.4 13.9 -18.0 13.7 -17.9 13.6 -17.2 13.9 -17.2
2025-07-01 17:06:25,536 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:06:25,536 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:06:25,536 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.629105
2025-07-01 17:06:25,536 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:06:25,537 [DEBUG][       Thread-611633][   transport.py][1871] : EOF in transport thread
2025-07-01 17:06:25,537 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:06:25,538 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:06:25,538 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:06:25,538 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:06:25,538 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:06:19', tmtdew=10.73, humidity=48.26, cloud=0.0, wind=33.61, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:05:54.672', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:06:25,621 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:06:25,637 [DEBUG][       Thread-611636][   transport.py][1871] : starting thread (client mode): 0x47398550
2025-07-01 17:06:25,637 [DEBUG][       Thread-611636][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:06:25,652 [DEBUG][       Thread-611636][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:06:25,652 [ INFO][       Thread-611636][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:06:25,660 [DEBUG][       Thread-611636][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:06:25,660 [DEBUG][       Thread-611636][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:06:25,660 [DEBUG][       Thread-611636][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:06:25,660 [DEBUG][       Thread-611636][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:06:25,660 [DEBUG][       Thread-611636][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:06:25,661 [DEBUG][       Thread-611636][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:06:25,661 [DEBUG][       Thread-611636][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:06:25,661 [DEBUG][       Thread-611636][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:06:25,661 [DEBUG][       Thread-611636][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:06:25,661 [DEBUG][       Thread-611636][   transport.py][1871] : client lang: <none>
2025-07-01 17:06:25,661 [DEBUG][       Thread-611636][   transport.py][1871] : server lang: <none>
2025-07-01 17:06:25,661 [DEBUG][       Thread-611636][   transport.py][1871] : kex follows: False
2025-07-01 17:06:25,661 [DEBUG][       Thread-611636][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:06:25,661 [DEBUG][       Thread-611636][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:06:25,661 [DEBUG][       Thread-611636][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:06:25,661 [DEBUG][       Thread-611636][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:06:25,661 [DEBUG][       Thread-611636][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:06:25,661 [DEBUG][       Thread-611636][   transport.py][1871] : Compression: none
2025-07-01 17:06:25,661 [DEBUG][       Thread-611636][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:06:25,719 [DEBUG][       Thread-611636][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:06:25,720 [DEBUG][       Thread-611636][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:06:25,720 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:06:25,721 [DEBUG][       Thread-611636][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:06:25,721 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:06:25,774 [DEBUG][       Thread-611636][   transport.py][1871] : userauth is OK
2025-07-01 17:06:25,775 [DEBUG][       Thread-611636][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:06:25,775 [DEBUG][       Thread-611636][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:06:25,775 [DEBUG][       Thread-611636][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:06:25,775 [DEBUG][       Thread-611636][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:06:25,795 [ INFO][       Thread-611636][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:06:25,795 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:06:25,796 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:06:26,861 [DEBUG][       Thread-611636][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:06:26,861 [DEBUG][       Thread-611636][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:06:26,916 [DEBUG][       Thread-611636][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:06:26,916 [DEBUG][       Thread-611636][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:06:26,925 [DEBUG][       Thread-611636][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:06:26,934 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:06:26,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-07-01 17:06:26,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') -> 00000000
2025-07-01 17:06:26,953 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:06:26,953 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:06:26,954 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:06:26,964 [DEBUG][       Thread-611636][   transport.py][1871] : EOF in transport thread
2025-07-01 17:06:33,095 [DEBUG][Thread-611638 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:06:36,964 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:06:36,964 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:06:36,964 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:06:36,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-07-01 17:06:37,437 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 6, 19), 10.73, 48.26, 0.0, 33.61, 13.18, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:06:37,437 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:06:19
2025-07-01 17:06:37,521 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:06:37,525 [DEBUG][       Thread-611639][   transport.py][1871] : starting thread (client mode): 0x81e77f0
2025-07-01 17:06:37,525 [DEBUG][       Thread-611639][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:06:37,546 [DEBUG][       Thread-611639][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:06:37,546 [ INFO][       Thread-611639][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:06:37,549 [DEBUG][       Thread-611639][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:06:37,549 [DEBUG][       Thread-611639][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:06:37,549 [DEBUG][       Thread-611639][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:06:37,549 [DEBUG][       Thread-611639][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:06:37,549 [DEBUG][       Thread-611639][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:06:37,549 [DEBUG][       Thread-611639][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:06:37,549 [DEBUG][       Thread-611639][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:06:37,549 [DEBUG][       Thread-611639][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:06:37,549 [DEBUG][       Thread-611639][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:06:37,549 [DEBUG][       Thread-611639][   transport.py][1871] : client lang: <none>
2025-07-01 17:06:37,549 [DEBUG][       Thread-611639][   transport.py][1871] : server lang: <none>
2025-07-01 17:06:37,550 [DEBUG][       Thread-611639][   transport.py][1871] : kex follows: False
2025-07-01 17:06:37,550 [DEBUG][       Thread-611639][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:06:37,550 [DEBUG][       Thread-611639][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:06:37,550 [DEBUG][       Thread-611639][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:06:37,550 [DEBUG][       Thread-611639][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:06:37,550 [DEBUG][       Thread-611639][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:06:37,550 [DEBUG][       Thread-611639][   transport.py][1871] : Compression: none
2025-07-01 17:06:37,550 [DEBUG][       Thread-611639][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:06:37,567 [DEBUG][       Thread-611639][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:06:37,567 [DEBUG][       Thread-611639][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:06:37,567 [DEBUG][       Thread-611639][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:06:37,568 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:06:37,568 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:06:37,569 [DEBUG][       Thread-611639][   transport.py][1871] : userauth is OK
2025-07-01 17:06:37,593 [ INFO][       Thread-611639][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:06:37,594 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:06:38,245 [DEBUG][       Thread-611639][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:06:38,245 [DEBUG][       Thread-611639][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:06:38,289 [DEBUG][       Thread-611639][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:06:38,289 [DEBUG][       Thread-611639][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:06:38,292 [DEBUG][       Thread-611639][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:06:38,305 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:06:38,306 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:06:38,307 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:06:38,309 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:06:38,315 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:06:38,317 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:06:38,317 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:06:38,318 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:06:38,318 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.629105 -999.00  +13.00  32.80     52   +3.60 1 2 2 1 1   887    0 8.97 -5.59 ----- 26.8 32.8 41.0 44.4 13.9 -18.0 13.7 -17.9 13.6 -17.2 13.9 -17.2
2025-07-01 17:06:38,318 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:06:38,318 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:06:38,318 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.629105
2025-07-01 17:06:38,318 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:06:38,319 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:06:38,319 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:06:38,319 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:06:38,319 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:06:38,319 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:06:19', tmtdew=10.73, humidity=48.26, cloud=0.0, wind=33.61, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:05:54.672', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:06:38,320 [DEBUG][       Thread-611639][   transport.py][1871] : EOF in transport thread
2025-07-01 17:06:38,396 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:06:38,405 [DEBUG][       Thread-611642][   transport.py][1871] : starting thread (client mode): 0x8172530
2025-07-01 17:06:38,405 [DEBUG][       Thread-611642][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:06:38,421 [DEBUG][       Thread-611642][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:06:38,421 [ INFO][       Thread-611642][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:06:38,428 [DEBUG][       Thread-611642][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:06:38,429 [DEBUG][       Thread-611642][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:06:38,429 [DEBUG][       Thread-611642][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:06:38,429 [DEBUG][       Thread-611642][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:06:38,429 [DEBUG][       Thread-611642][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:06:38,429 [DEBUG][       Thread-611642][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:06:38,429 [DEBUG][       Thread-611642][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:06:38,429 [DEBUG][       Thread-611642][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:06:38,429 [DEBUG][       Thread-611642][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:06:38,429 [DEBUG][       Thread-611642][   transport.py][1871] : client lang: <none>
2025-07-01 17:06:38,429 [DEBUG][       Thread-611642][   transport.py][1871] : server lang: <none>
2025-07-01 17:06:38,429 [DEBUG][       Thread-611642][   transport.py][1871] : kex follows: False
2025-07-01 17:06:38,429 [DEBUG][       Thread-611642][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:06:38,429 [DEBUG][       Thread-611642][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:06:38,429 [DEBUG][       Thread-611642][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:06:38,429 [DEBUG][       Thread-611642][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:06:38,429 [DEBUG][       Thread-611642][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:06:38,429 [DEBUG][       Thread-611642][   transport.py][1871] : Compression: none
2025-07-01 17:06:38,429 [DEBUG][       Thread-611642][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:06:38,487 [DEBUG][       Thread-611642][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:06:38,487 [DEBUG][       Thread-611642][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:06:38,488 [DEBUG][       Thread-611642][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:06:38,488 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:06:38,489 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:06:38,542 [DEBUG][       Thread-611642][   transport.py][1871] : userauth is OK
2025-07-01 17:06:38,543 [DEBUG][       Thread-611642][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:06:38,543 [DEBUG][       Thread-611642][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:06:38,543 [DEBUG][       Thread-611642][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:06:38,543 [DEBUG][       Thread-611642][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:06:38,562 [ INFO][       Thread-611642][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:06:38,562 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:06:38,563 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:06:39,568 [DEBUG][       Thread-611642][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:06:39,568 [DEBUG][       Thread-611642][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:06:39,615 [DEBUG][       Thread-611642][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:06:39,615 [DEBUG][       Thread-611642][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:06:39,624 [DEBUG][       Thread-611642][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:06:39,631 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:06:39,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-07-01 17:06:39,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-07-01 17:06:39,648 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:06:39,648 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:06:39,648 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:06:39,656 [DEBUG][       Thread-611642][   transport.py][1871] : EOF in transport thread
2025-07-01 17:06:39,848 [DEBUG][Thread-611644 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:06:42,125 [DEBUG][Thread-611645 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:06:49,658 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:06:49,659 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:06:49,659 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:06:49,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-07-01 17:06:50,106 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 6, 19), 10.73, 48.26, 0.0, 33.61, 13.18, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:06:50,106 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:06:19
2025-07-01 17:06:50,190 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:06:50,197 [DEBUG][       Thread-611646][   transport.py][1871] : starting thread (client mode): 0x81e7580
2025-07-01 17:06:50,197 [DEBUG][       Thread-611646][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:06:50,218 [DEBUG][       Thread-611646][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:06:50,218 [ INFO][       Thread-611646][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:06:50,221 [DEBUG][       Thread-611646][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:06:50,221 [DEBUG][       Thread-611646][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:06:50,221 [DEBUG][       Thread-611646][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:06:50,221 [DEBUG][       Thread-611646][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:06:50,221 [DEBUG][       Thread-611646][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:06:50,221 [DEBUG][       Thread-611646][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:06:50,221 [DEBUG][       Thread-611646][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:06:50,221 [DEBUG][       Thread-611646][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:06:50,221 [DEBUG][       Thread-611646][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:06:50,221 [DEBUG][       Thread-611646][   transport.py][1871] : client lang: <none>
2025-07-01 17:06:50,222 [DEBUG][       Thread-611646][   transport.py][1871] : server lang: <none>
2025-07-01 17:06:50,222 [DEBUG][       Thread-611646][   transport.py][1871] : kex follows: False
2025-07-01 17:06:50,222 [DEBUG][       Thread-611646][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:06:50,222 [DEBUG][       Thread-611646][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:06:50,222 [DEBUG][       Thread-611646][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:06:50,222 [DEBUG][       Thread-611646][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:06:50,222 [DEBUG][       Thread-611646][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:06:50,222 [DEBUG][       Thread-611646][   transport.py][1871] : Compression: none
2025-07-01 17:06:50,222 [DEBUG][       Thread-611646][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:06:50,238 [DEBUG][       Thread-611646][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:06:50,239 [DEBUG][       Thread-611646][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:06:50,239 [DEBUG][       Thread-611646][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:06:50,239 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:06:50,240 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:06:50,241 [DEBUG][       Thread-611646][   transport.py][1871] : userauth is OK
2025-07-01 17:06:50,265 [ INFO][       Thread-611646][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:06:50,266 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:06:50,876 [DEBUG][       Thread-611646][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:06:50,876 [DEBUG][       Thread-611646][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:06:50,917 [DEBUG][       Thread-611646][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:06:50,917 [DEBUG][       Thread-611646][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:06:50,920 [DEBUG][       Thread-611646][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:06:50,932 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:06:50,932 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:06:50,934 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:06:50,935 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:06:50,941 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:06:50,943 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:06:50,943 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:06:50,944 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:06:50,944 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.629105 -999.00  +13.00  32.80     52   +3.60 1 2 2 1 1   887    0 8.97 -5.59 ----- 26.8 32.8 41.0 44.4 13.9 -18.0 13.7 -17.9 13.6 -17.2 13.9 -17.2
2025-07-01 17:06:50,944 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:06:50,944 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:06:50,944 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.629105
2025-07-01 17:06:50,944 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:06:50,945 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:06:50,945 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:06:50,945 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:06:50,945 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:06:50,945 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:06:19', tmtdew=10.73, humidity=48.26, cloud=0.0, wind=33.61, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:05:54.672', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:06:50,946 [DEBUG][       Thread-611646][   transport.py][1871] : EOF in transport thread
2025-07-01 17:06:51,029 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:06:51,040 [DEBUG][       Thread-611649][   transport.py][1871] : starting thread (client mode): 0x8393790
2025-07-01 17:06:51,040 [DEBUG][       Thread-611649][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:06:51,055 [DEBUG][       Thread-611649][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:06:51,055 [ INFO][       Thread-611649][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:06:51,062 [DEBUG][       Thread-611649][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:06:51,063 [DEBUG][       Thread-611649][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:06:51,063 [DEBUG][       Thread-611649][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:06:51,063 [DEBUG][       Thread-611649][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:06:51,063 [DEBUG][       Thread-611649][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:06:51,063 [DEBUG][       Thread-611649][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:06:51,063 [DEBUG][       Thread-611649][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:06:51,063 [DEBUG][       Thread-611649][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:06:51,063 [DEBUG][       Thread-611649][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:06:51,063 [DEBUG][       Thread-611649][   transport.py][1871] : client lang: <none>
2025-07-01 17:06:51,063 [DEBUG][       Thread-611649][   transport.py][1871] : server lang: <none>
2025-07-01 17:06:51,063 [DEBUG][       Thread-611649][   transport.py][1871] : kex follows: False
2025-07-01 17:06:51,063 [DEBUG][       Thread-611649][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:06:51,063 [DEBUG][       Thread-611649][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:06:51,063 [DEBUG][       Thread-611649][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:06:51,063 [DEBUG][       Thread-611649][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:06:51,063 [DEBUG][       Thread-611649][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:06:51,063 [DEBUG][       Thread-611649][   transport.py][1871] : Compression: none
2025-07-01 17:06:51,063 [DEBUG][       Thread-611649][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:06:51,122 [DEBUG][       Thread-611649][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:06:51,123 [DEBUG][       Thread-611649][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:06:51,124 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:06:51,124 [DEBUG][       Thread-611649][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:06:51,125 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:06:51,147 [DEBUG][Thread-611651 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:06:51,182 [DEBUG][       Thread-611649][   transport.py][1871] : userauth is OK
2025-07-01 17:06:51,183 [DEBUG][       Thread-611649][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:06:51,183 [DEBUG][       Thread-611649][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:06:51,183 [DEBUG][       Thread-611649][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:06:51,183 [DEBUG][       Thread-611649][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:06:51,202 [ INFO][       Thread-611649][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:06:51,202 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:06:51,202 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:06:52,228 [DEBUG][       Thread-611649][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:06:52,228 [DEBUG][       Thread-611649][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:06:52,279 [DEBUG][       Thread-611649][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:06:52,279 [DEBUG][       Thread-611649][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:06:52,288 [DEBUG][       Thread-611649][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:06:52,301 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:06:52,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-07-01 17:06:52,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') -> 00000000
2025-07-01 17:06:52,322 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:06:52,322 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:06:52,322 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:06:52,330 [DEBUG][       Thread-611649][   transport.py][1871] : EOF in transport thread
2025-07-01 17:07:00,169 [DEBUG][Thread-611652 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:07:02,333 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:07:02,333 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:07:02,342 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:07:02,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-07-01 17:07:02,808 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 6, 51), 10.73, 48.25, 0.0, 35.39, 13.17, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:07:02,808 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:06:51
2025-07-01 17:07:02,892 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:07:02,896 [DEBUG][       Thread-611653][   transport.py][1871] : starting thread (client mode): 0x81e7970
2025-07-01 17:07:02,896 [DEBUG][       Thread-611653][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:07:02,916 [DEBUG][       Thread-611653][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:07:02,916 [ INFO][       Thread-611653][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:07:02,920 [DEBUG][       Thread-611653][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:07:02,920 [DEBUG][       Thread-611653][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:07:02,920 [DEBUG][       Thread-611653][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:07:02,920 [DEBUG][       Thread-611653][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:07:02,920 [DEBUG][       Thread-611653][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:07:02,920 [DEBUG][       Thread-611653][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:07:02,920 [DEBUG][       Thread-611653][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:07:02,920 [DEBUG][       Thread-611653][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:07:02,920 [DEBUG][       Thread-611653][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:07:02,920 [DEBUG][       Thread-611653][   transport.py][1871] : client lang: <none>
2025-07-01 17:07:02,920 [DEBUG][       Thread-611653][   transport.py][1871] : server lang: <none>
2025-07-01 17:07:02,920 [DEBUG][       Thread-611653][   transport.py][1871] : kex follows: False
2025-07-01 17:07:02,920 [DEBUG][       Thread-611653][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:07:02,920 [DEBUG][       Thread-611653][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:07:02,920 [DEBUG][       Thread-611653][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:07:02,920 [DEBUG][       Thread-611653][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:07:02,920 [DEBUG][       Thread-611653][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:07:02,920 [DEBUG][       Thread-611653][   transport.py][1871] : Compression: none
2025-07-01 17:07:02,920 [DEBUG][       Thread-611653][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:07:02,938 [DEBUG][       Thread-611653][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:07:02,938 [DEBUG][       Thread-611653][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:07:02,939 [DEBUG][       Thread-611653][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:07:02,939 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:07:02,939 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:07:02,940 [DEBUG][       Thread-611653][   transport.py][1871] : userauth is OK
2025-07-01 17:07:02,964 [ INFO][       Thread-611653][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:07:02,965 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:07:03,607 [DEBUG][       Thread-611653][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:07:03,607 [DEBUG][       Thread-611653][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:07:03,649 [DEBUG][       Thread-611653][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:07:03,649 [DEBUG][       Thread-611653][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:07:03,652 [DEBUG][       Thread-611653][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:07:03,664 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:07:03,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:07:03,666 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:07:03,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:07:03,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:07:03,676 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:07:03,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:07:03,677 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:07:03,677 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.629452 -999.00  +13.00  37.21     52   +3.50 1 2 2 1 1   887    0 9.22 -4.18 ----- 24.3 37.2 24.4 44.2 13.9 -18.0 13.7 -17.9 13.6 -17.2 13.9 -17.3
2025-07-01 17:07:03,677 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:07:03,677 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:07:03,677 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.629452
2025-07-01 17:07:03,678 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:07:03,678 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:07:03,678 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:07:03,678 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:07:03,678 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:07:03,679 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:06:51', tmtdew=10.73, humidity=48.25, cloud=0.0, wind=35.39, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:06:24.653', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:07:03,680 [DEBUG][       Thread-611653][   transport.py][1871] : EOF in transport thread
2025-07-01 17:07:03,762 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:07:03,772 [DEBUG][       Thread-611656][   transport.py][1871] : starting thread (client mode): 0x8156620
2025-07-01 17:07:03,772 [DEBUG][       Thread-611656][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:07:03,788 [DEBUG][       Thread-611656][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:07:03,788 [ INFO][       Thread-611656][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:07:03,796 [DEBUG][       Thread-611656][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:07:03,796 [DEBUG][       Thread-611656][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:07:03,796 [DEBUG][       Thread-611656][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:07:03,796 [DEBUG][       Thread-611656][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:07:03,796 [DEBUG][       Thread-611656][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:07:03,796 [DEBUG][       Thread-611656][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:07:03,796 [DEBUG][       Thread-611656][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:07:03,796 [DEBUG][       Thread-611656][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:07:03,796 [DEBUG][       Thread-611656][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:07:03,796 [DEBUG][       Thread-611656][   transport.py][1871] : client lang: <none>
2025-07-01 17:07:03,796 [DEBUG][       Thread-611656][   transport.py][1871] : server lang: <none>
2025-07-01 17:07:03,796 [DEBUG][       Thread-611656][   transport.py][1871] : kex follows: False
2025-07-01 17:07:03,796 [DEBUG][       Thread-611656][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:07:03,796 [DEBUG][       Thread-611656][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:07:03,796 [DEBUG][       Thread-611656][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:07:03,796 [DEBUG][       Thread-611656][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:07:03,796 [DEBUG][       Thread-611656][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:07:03,797 [DEBUG][       Thread-611656][   transport.py][1871] : Compression: none
2025-07-01 17:07:03,797 [DEBUG][       Thread-611656][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:07:03,855 [DEBUG][       Thread-611656][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:07:03,855 [DEBUG][       Thread-611656][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:07:03,856 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:07:03,856 [DEBUG][       Thread-611656][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:07:03,857 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:07:03,910 [DEBUG][       Thread-611656][   transport.py][1871] : userauth is OK
2025-07-01 17:07:03,911 [DEBUG][       Thread-611656][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:07:03,911 [DEBUG][       Thread-611656][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:07:03,911 [DEBUG][       Thread-611656][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:07:03,911 [DEBUG][       Thread-611656][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:07:03,931 [ INFO][       Thread-611656][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:07:03,931 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:07:03,931 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:07:04,965 [DEBUG][       Thread-611656][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:07:04,966 [DEBUG][       Thread-611656][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:07:05,017 [DEBUG][       Thread-611656][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:07:05,017 [DEBUG][       Thread-611656][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:07:05,028 [DEBUG][       Thread-611656][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:07:05,040 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:07:05,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-07-01 17:07:05,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-07-01 17:07:05,058 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:07:05,059 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:07:05,059 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:07:05,074 [DEBUG][       Thread-611656][   transport.py][1871] : EOF in transport thread
2025-07-01 17:07:09,191 [DEBUG][Thread-611658 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:07:15,069 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:07:15,069 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:07:15,069 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:07:15,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-07-01 17:07:15,530 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 6, 51), 10.73, 48.25, 0.0, 35.39, 13.17, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:07:15,530 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:06:51
2025-07-01 17:07:15,613 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:07:15,618 [DEBUG][       Thread-611659][   transport.py][1871] : starting thread (client mode): 0x81dbf10
2025-07-01 17:07:15,618 [DEBUG][       Thread-611659][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:07:15,638 [DEBUG][       Thread-611659][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:07:15,639 [ INFO][       Thread-611659][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:07:15,642 [DEBUG][       Thread-611659][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:07:15,642 [DEBUG][       Thread-611659][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:07:15,642 [DEBUG][       Thread-611659][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:07:15,642 [DEBUG][       Thread-611659][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:07:15,642 [DEBUG][       Thread-611659][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:07:15,642 [DEBUG][       Thread-611659][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:07:15,642 [DEBUG][       Thread-611659][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:07:15,642 [DEBUG][       Thread-611659][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:07:15,642 [DEBUG][       Thread-611659][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:07:15,642 [DEBUG][       Thread-611659][   transport.py][1871] : client lang: <none>
2025-07-01 17:07:15,642 [DEBUG][       Thread-611659][   transport.py][1871] : server lang: <none>
2025-07-01 17:07:15,642 [DEBUG][       Thread-611659][   transport.py][1871] : kex follows: False
2025-07-01 17:07:15,642 [DEBUG][       Thread-611659][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:07:15,642 [DEBUG][       Thread-611659][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:07:15,642 [DEBUG][       Thread-611659][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:07:15,642 [DEBUG][       Thread-611659][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:07:15,642 [DEBUG][       Thread-611659][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:07:15,642 [DEBUG][       Thread-611659][   transport.py][1871] : Compression: none
2025-07-01 17:07:15,642 [DEBUG][       Thread-611659][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:07:15,659 [DEBUG][       Thread-611659][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:07:15,660 [DEBUG][       Thread-611659][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:07:15,660 [DEBUG][       Thread-611659][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:07:15,661 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:07:15,661 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:07:15,662 [DEBUG][       Thread-611659][   transport.py][1871] : userauth is OK
2025-07-01 17:07:15,675 [ INFO][       Thread-611659][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:07:15,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:07:16,325 [DEBUG][       Thread-611659][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:07:16,326 [DEBUG][       Thread-611659][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:07:16,369 [DEBUG][       Thread-611659][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:07:16,369 [DEBUG][       Thread-611659][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:07:16,372 [DEBUG][       Thread-611659][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:07:16,383 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:07:16,384 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:07:16,386 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:07:16,388 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:07:16,394 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:07:16,395 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:07:16,396 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:07:16,396 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:07:16,396 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.629452 -999.00  +13.00  37.21     52   +3.50 1 2 2 1 1   887    0 9.22 -4.18 ----- 24.3 37.2 24.4 44.2 13.9 -18.0 13.7 -17.9 13.6 -17.2 13.9 -17.3
2025-07-01 17:07:16,396 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:07:16,397 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:07:16,397 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.629452
2025-07-01 17:07:16,397 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:07:16,398 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:07:16,398 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:07:16,398 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:07:16,398 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:07:16,398 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:06:51', tmtdew=10.73, humidity=48.25, cloud=0.0, wind=35.39, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:06:24.653', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:07:16,399 [DEBUG][       Thread-611659][   transport.py][1871] : EOF in transport thread
2025-07-01 17:07:16,481 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:07:16,492 [DEBUG][       Thread-611662][   transport.py][1871] : starting thread (client mode): 0x81c84c0
2025-07-01 17:07:16,492 [DEBUG][       Thread-611662][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:07:16,507 [DEBUG][       Thread-611662][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:07:16,507 [ INFO][       Thread-611662][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:07:16,517 [DEBUG][       Thread-611662][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:07:16,517 [DEBUG][       Thread-611662][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:07:16,517 [DEBUG][       Thread-611662][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:07:16,517 [DEBUG][       Thread-611662][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:07:16,517 [DEBUG][       Thread-611662][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:07:16,517 [DEBUG][       Thread-611662][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:07:16,517 [DEBUG][       Thread-611662][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:07:16,517 [DEBUG][       Thread-611662][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:07:16,517 [DEBUG][       Thread-611662][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:07:16,517 [DEBUG][       Thread-611662][   transport.py][1871] : client lang: <none>
2025-07-01 17:07:16,517 [DEBUG][       Thread-611662][   transport.py][1871] : server lang: <none>
2025-07-01 17:07:16,517 [DEBUG][       Thread-611662][   transport.py][1871] : kex follows: False
2025-07-01 17:07:16,517 [DEBUG][       Thread-611662][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:07:16,517 [DEBUG][       Thread-611662][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:07:16,517 [DEBUG][       Thread-611662][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:07:16,517 [DEBUG][       Thread-611662][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:07:16,517 [DEBUG][       Thread-611662][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:07:16,517 [DEBUG][       Thread-611662][   transport.py][1871] : Compression: none
2025-07-01 17:07:16,517 [DEBUG][       Thread-611662][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:07:16,574 [DEBUG][       Thread-611662][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:07:16,574 [DEBUG][       Thread-611662][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:07:16,575 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:07:16,575 [DEBUG][       Thread-611662][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:07:16,576 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:07:16,630 [DEBUG][       Thread-611662][   transport.py][1871] : userauth is OK
2025-07-01 17:07:16,630 [DEBUG][       Thread-611662][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:07:16,630 [DEBUG][       Thread-611662][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:07:16,630 [DEBUG][       Thread-611662][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:07:16,631 [DEBUG][       Thread-611662][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:07:16,650 [ INFO][       Thread-611662][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:07:16,650 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:07:16,650 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:07:17,678 [DEBUG][       Thread-611662][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:07:17,678 [DEBUG][       Thread-611662][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:07:17,728 [DEBUG][       Thread-611662][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:07:17,728 [DEBUG][       Thread-611662][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:07:17,737 [DEBUG][       Thread-611662][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:07:17,747 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:07:17,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-07-01 17:07:17,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-07-01 17:07:17,774 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:07:17,775 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:07:17,775 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:07:17,783 [DEBUG][       Thread-611662][   transport.py][1871] : EOF in transport thread
2025-07-01 17:07:18,230 [DEBUG][Thread-611664 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:07:27,252 [DEBUG][Thread-611665 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:07:27,781 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:07:27,781 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:07:27,781 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:07:27,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-07-01 17:07:28,265 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 7, 23), 10.72, 48.28, 0.0, 28.64, 13.16, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:07:28,265 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:07:23
2025-07-01 17:07:28,351 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:07:28,358 [DEBUG][       Thread-611666][   transport.py][1871] : starting thread (client mode): 0x818fe80
2025-07-01 17:07:28,358 [DEBUG][       Thread-611666][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:07:28,378 [DEBUG][       Thread-611666][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:07:28,378 [ INFO][       Thread-611666][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:07:28,381 [DEBUG][       Thread-611666][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:07:28,382 [DEBUG][       Thread-611666][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:07:28,382 [DEBUG][       Thread-611666][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:07:28,382 [DEBUG][       Thread-611666][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:07:28,382 [DEBUG][       Thread-611666][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:07:28,382 [DEBUG][       Thread-611666][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:07:28,382 [DEBUG][       Thread-611666][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:07:28,382 [DEBUG][       Thread-611666][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:07:28,382 [DEBUG][       Thread-611666][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:07:28,382 [DEBUG][       Thread-611666][   transport.py][1871] : client lang: <none>
2025-07-01 17:07:28,382 [DEBUG][       Thread-611666][   transport.py][1871] : server lang: <none>
2025-07-01 17:07:28,382 [DEBUG][       Thread-611666][   transport.py][1871] : kex follows: False
2025-07-01 17:07:28,382 [DEBUG][       Thread-611666][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:07:28,382 [DEBUG][       Thread-611666][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:07:28,382 [DEBUG][       Thread-611666][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:07:28,382 [DEBUG][       Thread-611666][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:07:28,382 [DEBUG][       Thread-611666][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:07:28,382 [DEBUG][       Thread-611666][   transport.py][1871] : Compression: none
2025-07-01 17:07:28,382 [DEBUG][       Thread-611666][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:07:28,400 [DEBUG][       Thread-611666][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:07:28,400 [DEBUG][       Thread-611666][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:07:28,401 [DEBUG][       Thread-611666][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:07:28,401 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:07:28,401 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:07:28,402 [DEBUG][       Thread-611666][   transport.py][1871] : userauth is OK
2025-07-01 17:07:28,415 [ INFO][       Thread-611666][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:07:28,416 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:07:29,011 [DEBUG][       Thread-611666][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:07:29,012 [DEBUG][       Thread-611666][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:07:29,053 [DEBUG][       Thread-611666][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:07:29,053 [DEBUG][       Thread-611666][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:07:29,057 [DEBUG][       Thread-611666][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:07:29,070 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:07:29,071 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:07:29,073 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:07:29,074 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:07:29,080 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:07:29,082 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:07:29,082 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:07:29,083 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:07:29,083 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.629452 -999.00  +13.00  37.21     52   +3.50 1 2 2 1 1   887    0 9.22 -4.18 ----- 24.3 37.2 24.4 44.2 13.9 -18.0 13.7 -17.9 13.6 -17.2 13.9 -17.3
2025-07-01 17:07:29,083 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:07:29,083 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:07:29,083 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.629452
2025-07-01 17:07:29,084 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:07:29,084 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:07:29,084 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:07:29,084 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:07:29,084 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:07:29,085 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:07:23', tmtdew=10.72, humidity=48.28, cloud=0.0, wind=28.64, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:06:24.653', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:07:29,085 [DEBUG][       Thread-611666][   transport.py][1871] : EOF in transport thread
2025-07-01 17:07:29,168 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:07:29,180 [DEBUG][       Thread-611669][   transport.py][1871] : starting thread (client mode): 0x827d540
2025-07-01 17:07:29,180 [DEBUG][       Thread-611669][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:07:29,194 [DEBUG][       Thread-611669][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:07:29,194 [ INFO][       Thread-611669][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:07:29,202 [DEBUG][       Thread-611669][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:07:29,202 [DEBUG][       Thread-611669][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:07:29,202 [DEBUG][       Thread-611669][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:07:29,202 [DEBUG][       Thread-611669][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:07:29,202 [DEBUG][       Thread-611669][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:07:29,202 [DEBUG][       Thread-611669][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:07:29,202 [DEBUG][       Thread-611669][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:07:29,202 [DEBUG][       Thread-611669][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:07:29,202 [DEBUG][       Thread-611669][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:07:29,202 [DEBUG][       Thread-611669][   transport.py][1871] : client lang: <none>
2025-07-01 17:07:29,202 [DEBUG][       Thread-611669][   transport.py][1871] : server lang: <none>
2025-07-01 17:07:29,202 [DEBUG][       Thread-611669][   transport.py][1871] : kex follows: False
2025-07-01 17:07:29,202 [DEBUG][       Thread-611669][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:07:29,202 [DEBUG][       Thread-611669][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:07:29,203 [DEBUG][       Thread-611669][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:07:29,203 [DEBUG][       Thread-611669][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:07:29,203 [DEBUG][       Thread-611669][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:07:29,203 [DEBUG][       Thread-611669][   transport.py][1871] : Compression: none
2025-07-01 17:07:29,203 [DEBUG][       Thread-611669][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:07:29,259 [DEBUG][       Thread-611669][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:07:29,260 [DEBUG][       Thread-611669][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:07:29,261 [DEBUG][       Thread-611669][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:07:29,261 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:07:29,262 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:07:29,322 [DEBUG][       Thread-611669][   transport.py][1871] : userauth is OK
2025-07-01 17:07:29,322 [DEBUG][       Thread-611669][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:07:29,322 [DEBUG][       Thread-611669][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:07:29,322 [DEBUG][       Thread-611669][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:07:29,322 [DEBUG][       Thread-611669][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:07:29,336 [ INFO][       Thread-611669][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:07:29,336 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:07:29,336 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:07:30,339 [DEBUG][       Thread-611669][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:07:30,340 [DEBUG][       Thread-611669][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:07:30,388 [DEBUG][       Thread-611669][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:07:30,388 [DEBUG][       Thread-611669][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:07:30,397 [DEBUG][       Thread-611669][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:07:30,406 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:07:30,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-07-01 17:07:30,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') -> 00000000
2025-07-01 17:07:30,429 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:07:30,430 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:07:30,430 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:07:30,439 [DEBUG][       Thread-611669][   transport.py][1871] : EOF in transport thread
2025-07-01 17:07:36,273 [DEBUG][Thread-611671 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:07:39,877 [DEBUG][Thread-611672 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:07:40,441 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:07:40,441 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:07:40,441 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:07:40,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-07-01 17:07:40,919 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 7, 23), 10.72, 48.28, 0.0, 28.64, 13.16, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:07:40,919 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:07:23
2025-07-01 17:07:41,003 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:07:41,007 [DEBUG][       Thread-611673][   transport.py][1871] : starting thread (client mode): 0x81e78b0
2025-07-01 17:07:41,008 [DEBUG][       Thread-611673][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:07:41,029 [DEBUG][       Thread-611673][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:07:41,029 [ INFO][       Thread-611673][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:07:41,032 [DEBUG][       Thread-611673][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:07:41,032 [DEBUG][       Thread-611673][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:07:41,032 [DEBUG][       Thread-611673][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:07:41,032 [DEBUG][       Thread-611673][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:07:41,032 [DEBUG][       Thread-611673][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:07:41,032 [DEBUG][       Thread-611673][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:07:41,032 [DEBUG][       Thread-611673][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:07:41,032 [DEBUG][       Thread-611673][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:07:41,032 [DEBUG][       Thread-611673][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:07:41,032 [DEBUG][       Thread-611673][   transport.py][1871] : client lang: <none>
2025-07-01 17:07:41,032 [DEBUG][       Thread-611673][   transport.py][1871] : server lang: <none>
2025-07-01 17:07:41,032 [DEBUG][       Thread-611673][   transport.py][1871] : kex follows: False
2025-07-01 17:07:41,032 [DEBUG][       Thread-611673][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:07:41,032 [DEBUG][       Thread-611673][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:07:41,032 [DEBUG][       Thread-611673][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:07:41,032 [DEBUG][       Thread-611673][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:07:41,032 [DEBUG][       Thread-611673][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:07:41,032 [DEBUG][       Thread-611673][   transport.py][1871] : Compression: none
2025-07-01 17:07:41,032 [DEBUG][       Thread-611673][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:07:41,051 [DEBUG][       Thread-611673][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:07:41,052 [DEBUG][       Thread-611673][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:07:41,052 [DEBUG][       Thread-611673][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:07:41,053 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:07:41,053 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:07:41,054 [DEBUG][       Thread-611673][   transport.py][1871] : userauth is OK
2025-07-01 17:07:41,079 [ INFO][       Thread-611673][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:07:41,080 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:07:41,708 [DEBUG][       Thread-611673][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:07:41,708 [DEBUG][       Thread-611673][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:07:41,748 [DEBUG][       Thread-611673][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:07:41,749 [DEBUG][       Thread-611673][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:07:41,751 [DEBUG][       Thread-611673][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:07:41,763 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:07:41,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:07:41,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:07:41,765 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:07:41,768 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:07:41,769 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:07:41,769 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:07:41,769 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:07:41,769 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.630146 -999.00  +12.90  27.91     52   +3.50 1 2 1 1 1   887    0 8.99 -0.11 ----- 37.2 27.9 26.1 37.5 13.8 -18.0 13.7 -17.8 13.5 -17.4 13.9 -17.3
2025-07-01 17:07:41,769 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:07:41,769 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:07:41,769 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.630146
2025-07-01 17:07:41,769 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:07:41,769 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:07:41,769 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:07:41,769 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:07:41,769 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:07:41,769 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:07:23', tmtdew=10.72, humidity=48.28, cloud=0.0, wind=28.64, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:07:24.614', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:07:41,770 [DEBUG][       Thread-611673][   transport.py][1871] : EOF in transport thread
2025-07-01 17:07:41,841 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:07:41,850 [DEBUG][       Thread-611676][   transport.py][1871] : starting thread (client mode): 0x75a9f90
2025-07-01 17:07:41,850 [DEBUG][       Thread-611676][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:07:41,866 [DEBUG][       Thread-611676][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:07:41,866 [ INFO][       Thread-611676][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:07:41,873 [DEBUG][       Thread-611676][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:07:41,873 [DEBUG][       Thread-611676][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:07:41,873 [DEBUG][       Thread-611676][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:07:41,873 [DEBUG][       Thread-611676][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:07:41,873 [DEBUG][       Thread-611676][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:07:41,873 [DEBUG][       Thread-611676][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:07:41,873 [DEBUG][       Thread-611676][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:07:41,873 [DEBUG][       Thread-611676][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:07:41,873 [DEBUG][       Thread-611676][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:07:41,873 [DEBUG][       Thread-611676][   transport.py][1871] : client lang: <none>
2025-07-01 17:07:41,873 [DEBUG][       Thread-611676][   transport.py][1871] : server lang: <none>
2025-07-01 17:07:41,873 [DEBUG][       Thread-611676][   transport.py][1871] : kex follows: False
2025-07-01 17:07:41,873 [DEBUG][       Thread-611676][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:07:41,873 [DEBUG][       Thread-611676][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:07:41,873 [DEBUG][       Thread-611676][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:07:41,873 [DEBUG][       Thread-611676][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:07:41,873 [DEBUG][       Thread-611676][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:07:41,873 [DEBUG][       Thread-611676][   transport.py][1871] : Compression: none
2025-07-01 17:07:41,873 [DEBUG][       Thread-611676][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:07:41,929 [DEBUG][       Thread-611676][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:07:41,929 [DEBUG][       Thread-611676][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:07:41,930 [DEBUG][       Thread-611676][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:07:41,930 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:07:41,931 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:07:41,986 [DEBUG][       Thread-611676][   transport.py][1871] : userauth is OK
2025-07-01 17:07:41,986 [DEBUG][       Thread-611676][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:07:41,986 [DEBUG][       Thread-611676][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:07:41,986 [DEBUG][       Thread-611676][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:07:41,986 [DEBUG][       Thread-611676][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:07:42,004 [ INFO][       Thread-611676][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:07:42,005 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:07:42,005 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:07:43,036 [DEBUG][       Thread-611676][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:07:43,036 [DEBUG][       Thread-611676][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:07:43,084 [DEBUG][       Thread-611676][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:07:43,084 [DEBUG][       Thread-611676][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:07:43,093 [DEBUG][       Thread-611676][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:07:43,102 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:07:43,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-07-01 17:07:43,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-07-01 17:07:43,121 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:07:43,121 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:07:43,122 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:07:43,130 [DEBUG][       Thread-611676][   transport.py][1871] : EOF in transport thread
2025-07-01 17:07:45,318 [DEBUG][Thread-611678 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:07:53,131 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:07:53,132 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:07:53,141 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:07:53,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-07-01 17:07:53,630 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 7, 23), 10.72, 48.28, 0.0, 28.64, 13.16, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:07:53,630 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:07:23
2025-07-01 17:07:53,715 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:07:53,721 [DEBUG][       Thread-611679][   transport.py][1871] : starting thread (client mode): 0x818d540
2025-07-01 17:07:53,721 [DEBUG][       Thread-611679][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:07:53,742 [DEBUG][       Thread-611679][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:07:53,742 [ INFO][       Thread-611679][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:07:53,745 [DEBUG][       Thread-611679][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:07:53,745 [DEBUG][       Thread-611679][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:07:53,745 [DEBUG][       Thread-611679][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:07:53,745 [DEBUG][       Thread-611679][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:07:53,745 [DEBUG][       Thread-611679][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:07:53,745 [DEBUG][       Thread-611679][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:07:53,745 [DEBUG][       Thread-611679][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:07:53,745 [DEBUG][       Thread-611679][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:07:53,745 [DEBUG][       Thread-611679][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:07:53,745 [DEBUG][       Thread-611679][   transport.py][1871] : client lang: <none>
2025-07-01 17:07:53,745 [DEBUG][       Thread-611679][   transport.py][1871] : server lang: <none>
2025-07-01 17:07:53,745 [DEBUG][       Thread-611679][   transport.py][1871] : kex follows: False
2025-07-01 17:07:53,745 [DEBUG][       Thread-611679][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:07:53,746 [DEBUG][       Thread-611679][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:07:53,746 [DEBUG][       Thread-611679][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:07:53,746 [DEBUG][       Thread-611679][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:07:53,746 [DEBUG][       Thread-611679][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:07:53,746 [DEBUG][       Thread-611679][   transport.py][1871] : Compression: none
2025-07-01 17:07:53,746 [DEBUG][       Thread-611679][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:07:53,762 [DEBUG][       Thread-611679][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:07:53,763 [DEBUG][       Thread-611679][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:07:53,763 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:07:53,763 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:07:53,764 [DEBUG][       Thread-611679][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:07:53,765 [DEBUG][       Thread-611679][   transport.py][1871] : userauth is OK
2025-07-01 17:07:53,782 [ INFO][       Thread-611679][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:07:53,783 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:07:54,340 [DEBUG][Thread-611681 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:07:54,416 [DEBUG][       Thread-611679][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:07:54,416 [DEBUG][       Thread-611679][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:07:54,461 [DEBUG][       Thread-611679][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:07:54,461 [DEBUG][       Thread-611679][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:07:54,464 [DEBUG][       Thread-611679][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:07:54,477 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:07:54,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:07:54,478 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:07:54,480 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:07:54,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:07:54,487 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:07:54,487 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:07:54,488 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:07:54,488 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.630146 -999.00  +12.90  27.91     52   +3.50 1 2 1 1 1   887    0 8.99 -0.11 ----- 37.2 27.9 26.1 37.5 13.8 -18.0 13.7 -17.8 13.5 -17.4 13.9 -17.3
2025-07-01 17:07:54,488 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:07:54,488 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:07:54,488 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.630146
2025-07-01 17:07:54,489 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:07:54,489 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:07:54,489 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:07:54,489 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:07:54,489 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:07:54,489 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:07:23', tmtdew=10.72, humidity=48.28, cloud=0.0, wind=28.64, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:07:24.614', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:07:54,490 [DEBUG][       Thread-611679][   transport.py][1871] : EOF in transport thread
2025-07-01 17:07:54,581 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:07:54,595 [DEBUG][       Thread-611683][   transport.py][1871] : starting thread (client mode): 0x81a6440
2025-07-01 17:07:54,595 [DEBUG][       Thread-611683][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:07:54,611 [DEBUG][       Thread-611683][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:07:54,612 [ INFO][       Thread-611683][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:07:54,623 [DEBUG][       Thread-611683][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:07:54,623 [DEBUG][       Thread-611683][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:07:54,623 [DEBUG][       Thread-611683][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:07:54,624 [DEBUG][       Thread-611683][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:07:54,624 [DEBUG][       Thread-611683][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:07:54,624 [DEBUG][       Thread-611683][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:07:54,624 [DEBUG][       Thread-611683][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:07:54,624 [DEBUG][       Thread-611683][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:07:54,624 [DEBUG][       Thread-611683][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:07:54,624 [DEBUG][       Thread-611683][   transport.py][1871] : client lang: <none>
2025-07-01 17:07:54,624 [DEBUG][       Thread-611683][   transport.py][1871] : server lang: <none>
2025-07-01 17:07:54,624 [DEBUG][       Thread-611683][   transport.py][1871] : kex follows: False
2025-07-01 17:07:54,624 [DEBUG][       Thread-611683][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:07:54,624 [DEBUG][       Thread-611683][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:07:54,624 [DEBUG][       Thread-611683][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:07:54,624 [DEBUG][       Thread-611683][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:07:54,624 [DEBUG][       Thread-611683][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:07:54,624 [DEBUG][       Thread-611683][   transport.py][1871] : Compression: none
2025-07-01 17:07:54,625 [DEBUG][       Thread-611683][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:07:54,682 [DEBUG][       Thread-611683][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:07:54,682 [DEBUG][       Thread-611683][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:07:54,683 [DEBUG][       Thread-611683][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:07:54,683 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:07:54,684 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:07:54,738 [DEBUG][       Thread-611683][   transport.py][1871] : userauth is OK
2025-07-01 17:07:54,738 [DEBUG][       Thread-611683][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:07:54,738 [DEBUG][       Thread-611683][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:07:54,738 [DEBUG][       Thread-611683][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:07:54,738 [DEBUG][       Thread-611683][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:07:54,757 [ INFO][       Thread-611683][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:07:54,757 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:07:54,758 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:07:55,800 [DEBUG][       Thread-611683][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:07:55,800 [DEBUG][       Thread-611683][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:07:55,855 [DEBUG][       Thread-611683][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:07:55,855 [DEBUG][       Thread-611683][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:07:55,863 [DEBUG][       Thread-611683][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:07:55,871 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:07:55,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-07-01 17:07:55,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-07-01 17:07:55,887 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:07:55,887 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:07:55,887 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:07:55,895 [DEBUG][       Thread-611683][   transport.py][1871] : EOF in transport thread
2025-07-01 17:08:03,359 [DEBUG][Thread-611685 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:08:05,897 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:08:05,898 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:08:05,898 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:08:05,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-07-01 17:08:06,379 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 7, 54), 10.71, 48.32, 0.0, 29.73, 13.13, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:08:06,379 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:07:54
2025-07-01 17:08:06,464 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:08:06,469 [DEBUG][       Thread-611686][   transport.py][1871] : starting thread (client mode): 0x82b2f20
2025-07-01 17:08:06,469 [DEBUG][       Thread-611686][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:08:06,491 [DEBUG][       Thread-611686][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:08:06,491 [ INFO][       Thread-611686][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:08:06,495 [DEBUG][       Thread-611686][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:08:06,495 [DEBUG][       Thread-611686][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:08:06,495 [DEBUG][       Thread-611686][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:08:06,495 [DEBUG][       Thread-611686][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:08:06,495 [DEBUG][       Thread-611686][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:08:06,495 [DEBUG][       Thread-611686][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:08:06,495 [DEBUG][       Thread-611686][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:08:06,495 [DEBUG][       Thread-611686][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:08:06,495 [DEBUG][       Thread-611686][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:08:06,495 [DEBUG][       Thread-611686][   transport.py][1871] : client lang: <none>
2025-07-01 17:08:06,495 [DEBUG][       Thread-611686][   transport.py][1871] : server lang: <none>
2025-07-01 17:08:06,495 [DEBUG][       Thread-611686][   transport.py][1871] : kex follows: False
2025-07-01 17:08:06,495 [DEBUG][       Thread-611686][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:08:06,495 [DEBUG][       Thread-611686][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:08:06,496 [DEBUG][       Thread-611686][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:08:06,496 [DEBUG][       Thread-611686][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:08:06,496 [DEBUG][       Thread-611686][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:08:06,496 [DEBUG][       Thread-611686][   transport.py][1871] : Compression: none
2025-07-01 17:08:06,496 [DEBUG][       Thread-611686][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:08:06,512 [DEBUG][       Thread-611686][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:08:06,512 [DEBUG][       Thread-611686][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:08:06,513 [DEBUG][       Thread-611686][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:08:06,513 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:08:06,513 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:08:06,514 [DEBUG][       Thread-611686][   transport.py][1871] : userauth is OK
2025-07-01 17:08:06,539 [ INFO][       Thread-611686][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:08:06,539 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:08:07,173 [DEBUG][       Thread-611686][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:08:07,174 [DEBUG][       Thread-611686][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:08:07,217 [DEBUG][       Thread-611686][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:08:07,217 [DEBUG][       Thread-611686][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:08:07,220 [DEBUG][       Thread-611686][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:08:07,232 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:08:07,232 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:08:07,234 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:08:07,237 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:08:07,242 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:08:07,244 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:08:07,244 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:08:07,245 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:08:07,245 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.630493 -999.00  +13.00  31.02     52   +3.50 1 2 2 1 1   887    0 9.36 2.21 ----- 26.6 31.0 29.2 47.7 13.9 -18.0 13.7 -17.8 13.5 -17.4 13.9 -17.2
2025-07-01 17:08:07,245 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:08:07,246 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:08:07,246 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.630493
2025-07-01 17:08:07,246 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:08:07,247 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:08:07,247 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:08:07,247 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:08:07,247 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:08:07,247 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:07:54', tmtdew=10.71, humidity=48.32, cloud=0.0, wind=29.73, temperature=13.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:07:54.595', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:08:07,247 [DEBUG][       Thread-611686][   transport.py][1871] : EOF in transport thread
2025-07-01 17:08:07,324 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:08:07,338 [DEBUG][       Thread-611689][   transport.py][1871] : starting thread (client mode): 0x81d8be0
2025-07-01 17:08:07,338 [DEBUG][       Thread-611689][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:08:07,361 [DEBUG][       Thread-611689][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:08:07,361 [ INFO][       Thread-611689][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:08:07,375 [DEBUG][       Thread-611689][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:08:07,376 [DEBUG][       Thread-611689][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:08:07,376 [DEBUG][       Thread-611689][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:08:07,376 [DEBUG][       Thread-611689][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:08:07,376 [DEBUG][       Thread-611689][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:08:07,376 [DEBUG][       Thread-611689][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:08:07,376 [DEBUG][       Thread-611689][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:08:07,376 [DEBUG][       Thread-611689][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:08:07,376 [DEBUG][       Thread-611689][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:08:07,376 [DEBUG][       Thread-611689][   transport.py][1871] : client lang: <none>
2025-07-01 17:08:07,376 [DEBUG][       Thread-611689][   transport.py][1871] : server lang: <none>
2025-07-01 17:08:07,376 [DEBUG][       Thread-611689][   transport.py][1871] : kex follows: False
2025-07-01 17:08:07,376 [DEBUG][       Thread-611689][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:08:07,376 [DEBUG][       Thread-611689][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:08:07,377 [DEBUG][       Thread-611689][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:08:07,377 [DEBUG][       Thread-611689][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:08:07,377 [DEBUG][       Thread-611689][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:08:07,377 [DEBUG][       Thread-611689][   transport.py][1871] : Compression: none
2025-07-01 17:08:07,377 [DEBUG][       Thread-611689][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:08:07,431 [DEBUG][       Thread-611689][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:08:07,432 [DEBUG][       Thread-611689][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:08:07,432 [DEBUG][       Thread-611689][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:08:07,433 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:08:07,433 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:08:07,496 [DEBUG][       Thread-611689][   transport.py][1871] : userauth is OK
2025-07-01 17:08:07,497 [DEBUG][       Thread-611689][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:08:07,497 [DEBUG][       Thread-611689][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:08:07,497 [DEBUG][       Thread-611689][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:08:07,497 [DEBUG][       Thread-611689][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:08:07,516 [ INFO][       Thread-611689][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:08:07,517 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:08:07,517 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:08:08,546 [DEBUG][       Thread-611689][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:08:08,547 [DEBUG][       Thread-611689][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:08:08,596 [DEBUG][       Thread-611689][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:08:08,596 [DEBUG][       Thread-611689][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:08:08,606 [DEBUG][       Thread-611689][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:08:08,616 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:08:08,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-07-01 17:08:08,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-07-01 17:08:08,635 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:08:08,635 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:08:08,635 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:08:08,643 [DEBUG][       Thread-611689][   transport.py][1871] : EOF in transport thread
2025-07-01 17:08:12,382 [DEBUG][Thread-611691 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:08:18,644 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:08:18,645 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:08:18,645 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:08:18,647 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:08:19,118 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 7, 54), 10.71, 48.32, 0.0, 29.73, 13.13, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:08:19,118 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:07:54
2025-07-01 17:08:19,204 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:08:19,210 [DEBUG][       Thread-611692][   transport.py][1871] : starting thread (client mode): 0x82b2620
2025-07-01 17:08:19,210 [DEBUG][       Thread-611692][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:08:19,230 [DEBUG][       Thread-611692][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:08:19,231 [ INFO][       Thread-611692][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:08:19,234 [DEBUG][       Thread-611692][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:08:19,234 [DEBUG][       Thread-611692][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:08:19,234 [DEBUG][       Thread-611692][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:08:19,234 [DEBUG][       Thread-611692][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:08:19,234 [DEBUG][       Thread-611692][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:08:19,234 [DEBUG][       Thread-611692][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:08:19,234 [DEBUG][       Thread-611692][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:08:19,234 [DEBUG][       Thread-611692][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:08:19,234 [DEBUG][       Thread-611692][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:08:19,234 [DEBUG][       Thread-611692][   transport.py][1871] : client lang: <none>
2025-07-01 17:08:19,234 [DEBUG][       Thread-611692][   transport.py][1871] : server lang: <none>
2025-07-01 17:08:19,234 [DEBUG][       Thread-611692][   transport.py][1871] : kex follows: False
2025-07-01 17:08:19,234 [DEBUG][       Thread-611692][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:08:19,234 [DEBUG][       Thread-611692][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:08:19,234 [DEBUG][       Thread-611692][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:08:19,234 [DEBUG][       Thread-611692][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:08:19,235 [DEBUG][       Thread-611692][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:08:19,235 [DEBUG][       Thread-611692][   transport.py][1871] : Compression: none
2025-07-01 17:08:19,235 [DEBUG][       Thread-611692][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:08:19,251 [DEBUG][       Thread-611692][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:08:19,252 [DEBUG][       Thread-611692][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:08:19,252 [DEBUG][       Thread-611692][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:08:19,252 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:08:19,253 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:08:19,254 [DEBUG][       Thread-611692][   transport.py][1871] : userauth is OK
2025-07-01 17:08:19,268 [ INFO][       Thread-611692][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:08:19,268 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:08:19,889 [DEBUG][       Thread-611692][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:08:19,889 [DEBUG][       Thread-611692][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:08:19,933 [DEBUG][       Thread-611692][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:08:19,933 [DEBUG][       Thread-611692][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:08:19,936 [DEBUG][       Thread-611692][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:08:19,950 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:08:19,951 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:08:19,953 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:08:19,955 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:08:19,960 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:08:19,962 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:08:19,962 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:08:19,963 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:08:19,963 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.630493 -999.00  +13.00  31.02     52   +3.50 1 2 2 1 1   887    0 9.36 2.21 ----- 26.6 31.0 29.2 47.7 13.9 -18.0 13.7 -17.8 13.5 -17.4 13.9 -17.2
2025-07-01 17:08:19,963 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:08:19,963 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:08:19,963 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.630493
2025-07-01 17:08:19,964 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:08:19,964 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:08:19,965 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:08:19,965 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:08:19,965 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:08:19,965 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:07:54', tmtdew=10.71, humidity=48.32, cloud=0.0, wind=29.73, temperature=13.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:07:54.595', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:08:19,966 [DEBUG][       Thread-611692][   transport.py][1871] : EOF in transport thread
2025-07-01 17:08:20,048 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:08:20,060 [DEBUG][       Thread-611695][   transport.py][1871] : starting thread (client mode): 0x81c9120
2025-07-01 17:08:20,060 [DEBUG][       Thread-611695][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:08:20,079 [DEBUG][       Thread-611695][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:08:20,079 [ INFO][       Thread-611695][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:08:20,087 [DEBUG][       Thread-611695][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:08:20,087 [DEBUG][       Thread-611695][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:08:20,087 [DEBUG][       Thread-611695][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:08:20,087 [DEBUG][       Thread-611695][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:08:20,087 [DEBUG][       Thread-611695][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:08:20,087 [DEBUG][       Thread-611695][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:08:20,087 [DEBUG][       Thread-611695][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:08:20,087 [DEBUG][       Thread-611695][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:08:20,087 [DEBUG][       Thread-611695][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:08:20,087 [DEBUG][       Thread-611695][   transport.py][1871] : client lang: <none>
2025-07-01 17:08:20,087 [DEBUG][       Thread-611695][   transport.py][1871] : server lang: <none>
2025-07-01 17:08:20,087 [DEBUG][       Thread-611695][   transport.py][1871] : kex follows: False
2025-07-01 17:08:20,087 [DEBUG][       Thread-611695][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:08:20,087 [DEBUG][       Thread-611695][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:08:20,088 [DEBUG][       Thread-611695][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:08:20,088 [DEBUG][       Thread-611695][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:08:20,088 [DEBUG][       Thread-611695][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:08:20,088 [DEBUG][       Thread-611695][   transport.py][1871] : Compression: none
2025-07-01 17:08:20,088 [DEBUG][       Thread-611695][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:08:20,146 [DEBUG][       Thread-611695][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:08:20,146 [DEBUG][       Thread-611695][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:08:20,147 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:08:20,147 [DEBUG][       Thread-611695][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:08:20,148 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:08:20,208 [DEBUG][       Thread-611695][   transport.py][1871] : userauth is OK
2025-07-01 17:08:20,208 [DEBUG][       Thread-611695][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:08:20,208 [DEBUG][       Thread-611695][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:08:20,208 [DEBUG][       Thread-611695][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:08:20,208 [DEBUG][       Thread-611695][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:08:20,231 [ INFO][       Thread-611695][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:08:20,231 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:08:20,232 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:08:21,264 [DEBUG][       Thread-611695][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:08:21,265 [DEBUG][       Thread-611695][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:08:21,318 [DEBUG][       Thread-611695][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:08:21,318 [DEBUG][       Thread-611695][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:08:21,328 [DEBUG][       Thread-611695][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:08:21,342 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:08: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-07-01 17:08:21,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-07-01 17:08:21,365 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:08:21,365 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:08:21,365 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:08:21,376 [DEBUG][       Thread-611695][   transport.py][1871] : EOF in transport thread
2025-07-01 17:08:21,418 [DEBUG][Thread-611697 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:08:30,442 [DEBUG][Thread-611698 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:08:31,372 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:08:31,372 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:08:31,372 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:08:31,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-07-01 17:08:31,849 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 8, 26), 10.67, 48.44, 0.0, 31.85, 13.09, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:08:31,849 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:08:26
2025-07-01 17:08:31,935 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:08:31,941 [DEBUG][       Thread-611699][   transport.py][1871] : starting thread (client mode): 0x818ef80
2025-07-01 17:08:31,941 [DEBUG][       Thread-611699][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:08:31,962 [DEBUG][       Thread-611699][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:08:31,962 [ INFO][       Thread-611699][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:08:31,966 [DEBUG][       Thread-611699][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:08:31,966 [DEBUG][       Thread-611699][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:08:31,966 [DEBUG][       Thread-611699][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:08:31,966 [DEBUG][       Thread-611699][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:08:31,966 [DEBUG][       Thread-611699][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:08:31,966 [DEBUG][       Thread-611699][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:08:31,966 [DEBUG][       Thread-611699][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:08:31,966 [DEBUG][       Thread-611699][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:08:31,966 [DEBUG][       Thread-611699][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:08:31,966 [DEBUG][       Thread-611699][   transport.py][1871] : client lang: <none>
2025-07-01 17:08:31,966 [DEBUG][       Thread-611699][   transport.py][1871] : server lang: <none>
2025-07-01 17:08:31,966 [DEBUG][       Thread-611699][   transport.py][1871] : kex follows: False
2025-07-01 17:08:31,966 [DEBUG][       Thread-611699][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:08:31,966 [DEBUG][       Thread-611699][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:08:31,966 [DEBUG][       Thread-611699][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:08:31,966 [DEBUG][       Thread-611699][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:08:31,966 [DEBUG][       Thread-611699][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:08:31,966 [DEBUG][       Thread-611699][   transport.py][1871] : Compression: none
2025-07-01 17:08:31,966 [DEBUG][       Thread-611699][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:08:31,984 [DEBUG][       Thread-611699][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:08:31,984 [DEBUG][       Thread-611699][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:08:31,985 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:08:31,985 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:08:31,985 [DEBUG][       Thread-611699][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:08:31,986 [DEBUG][       Thread-611699][   transport.py][1871] : userauth is OK
2025-07-01 17:08:32,011 [ INFO][       Thread-611699][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:08:32,011 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:08:32,660 [DEBUG][       Thread-611699][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:08:32,660 [DEBUG][       Thread-611699][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:08:32,701 [DEBUG][       Thread-611699][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:08:32,701 [DEBUG][       Thread-611699][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:08:32,704 [DEBUG][       Thread-611699][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:08:32,716 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:08:32,717 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:08:32,719 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:08:32,721 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:08:32,726 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:08:32,728 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:08:32,728 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:08:32,729 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:08:32,729 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.630493 -999.00  +13.00  31.02     52   +3.50 1 2 2 1 1   887    0 9.36 2.21 ----- 26.6 31.0 29.2 47.7 13.9 -18.0 13.7 -17.8 13.5 -17.4 13.9 -17.2
2025-07-01 17:08:32,729 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:08:32,729 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:08:32,729 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.630493
2025-07-01 17:08:32,730 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:08:32,730 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:08:32,730 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:08:32,731 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:08:32,731 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:08:32,731 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:08:26', tmtdew=10.67, humidity=48.44, cloud=0.0, wind=31.85, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:07:54.595', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:08:32,732 [DEBUG][       Thread-611699][   transport.py][1871] : EOF in transport thread
2025-07-01 17:08:32,815 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:08:32,828 [DEBUG][       Thread-611702][   transport.py][1871] : starting thread (client mode): 0x81dbee0
2025-07-01 17:08:32,829 [DEBUG][       Thread-611702][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:08:32,849 [DEBUG][       Thread-611702][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:08:32,849 [ INFO][       Thread-611702][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:08:32,857 [DEBUG][       Thread-611702][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:08:32,857 [DEBUG][       Thread-611702][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:08:32,857 [DEBUG][       Thread-611702][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:08:32,857 [DEBUG][       Thread-611702][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:08:32,857 [DEBUG][       Thread-611702][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:08:32,857 [DEBUG][       Thread-611702][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:08:32,857 [DEBUG][       Thread-611702][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:08:32,857 [DEBUG][       Thread-611702][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:08:32,857 [DEBUG][       Thread-611702][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:08:32,857 [DEBUG][       Thread-611702][   transport.py][1871] : client lang: <none>
2025-07-01 17:08:32,857 [DEBUG][       Thread-611702][   transport.py][1871] : server lang: <none>
2025-07-01 17:08:32,857 [DEBUG][       Thread-611702][   transport.py][1871] : kex follows: False
2025-07-01 17:08:32,857 [DEBUG][       Thread-611702][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:08:32,857 [DEBUG][       Thread-611702][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:08:32,857 [DEBUG][       Thread-611702][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:08:32,858 [DEBUG][       Thread-611702][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:08:32,858 [DEBUG][       Thread-611702][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:08:32,858 [DEBUG][       Thread-611702][   transport.py][1871] : Compression: none
2025-07-01 17:08:32,858 [DEBUG][       Thread-611702][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:08:32,913 [DEBUG][       Thread-611702][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:08:32,914 [DEBUG][       Thread-611702][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:08:32,914 [DEBUG][       Thread-611702][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:08:32,915 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:08:32,915 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:08:32,969 [DEBUG][       Thread-611702][   transport.py][1871] : userauth is OK
2025-07-01 17:08:32,970 [DEBUG][       Thread-611702][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:08:32,970 [DEBUG][       Thread-611702][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:08:32,970 [DEBUG][       Thread-611702][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:08:32,970 [DEBUG][       Thread-611702][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:08:32,989 [ INFO][       Thread-611702][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:08:32,990 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:08:32,990 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:08:34,024 [DEBUG][       Thread-611702][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:08:34,024 [DEBUG][       Thread-611702][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:08:34,073 [DEBUG][       Thread-611702][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:08:34,073 [DEBUG][       Thread-611702][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:08:34,083 [DEBUG][       Thread-611702][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:08:34,091 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:08:34,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-07-01 17:08:34,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-07-01 17:08:34,109 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:08:34,110 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:08:34,110 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:08:34,118 [DEBUG][       Thread-611702][   transport.py][1871] : EOF in transport thread
2025-07-01 17:08:39,460 [DEBUG][Thread-611704 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:08:39,907 [DEBUG][Thread-611705 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:08:44,121 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:08:44,121 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:08:44,121 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:08:44,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-07-01 17:08:44,610 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 8, 26), 10.67, 48.44, 0.0, 31.85, 13.09, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:08:44,610 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:08:26
2025-07-01 17:08:44,696 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:08:44,700 [DEBUG][       Thread-611706][   transport.py][1871] : starting thread (client mode): 0x81a6170
2025-07-01 17:08:44,700 [DEBUG][       Thread-611706][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:08:44,720 [DEBUG][       Thread-611706][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:08:44,720 [ INFO][       Thread-611706][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:08:44,724 [DEBUG][       Thread-611706][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:08:44,724 [DEBUG][       Thread-611706][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:08:44,724 [DEBUG][       Thread-611706][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:08:44,724 [DEBUG][       Thread-611706][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:08:44,724 [DEBUG][       Thread-611706][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:08:44,724 [DEBUG][       Thread-611706][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:08:44,724 [DEBUG][       Thread-611706][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:08:44,724 [DEBUG][       Thread-611706][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:08:44,724 [DEBUG][       Thread-611706][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:08:44,724 [DEBUG][       Thread-611706][   transport.py][1871] : client lang: <none>
2025-07-01 17:08:44,724 [DEBUG][       Thread-611706][   transport.py][1871] : server lang: <none>
2025-07-01 17:08:44,724 [DEBUG][       Thread-611706][   transport.py][1871] : kex follows: False
2025-07-01 17:08:44,724 [DEBUG][       Thread-611706][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:08:44,724 [DEBUG][       Thread-611706][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:08:44,724 [DEBUG][       Thread-611706][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:08:44,724 [DEBUG][       Thread-611706][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:08:44,724 [DEBUG][       Thread-611706][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:08:44,724 [DEBUG][       Thread-611706][   transport.py][1871] : Compression: none
2025-07-01 17:08:44,724 [DEBUG][       Thread-611706][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:08:44,741 [DEBUG][       Thread-611706][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:08:44,742 [DEBUG][       Thread-611706][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:08:44,742 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:08:44,742 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:08:44,743 [DEBUG][       Thread-611706][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:08:44,743 [DEBUG][       Thread-611706][   transport.py][1871] : userauth is OK
2025-07-01 17:08:44,756 [ INFO][       Thread-611706][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:08:44,757 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:08:45,391 [DEBUG][       Thread-611706][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:08:45,391 [DEBUG][       Thread-611706][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:08:45,433 [DEBUG][       Thread-611706][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:08:45,433 [DEBUG][       Thread-611706][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:08:45,436 [DEBUG][       Thread-611706][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:08:45,448 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:08:45,448 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:08:45,450 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:08:45,452 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:08:45,458 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:08:45,460 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:08:45,460 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:08:45,461 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:08:45,461 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.630841 -999.00  +13.00  40.85     52   +3.50 1 2 2 1 1   887    0 9.35 4.58 ----- 35.2 40.9 10.6 50.7 13.9 -18.0 13.7 -17.8 13.6 -17.5 13.9 -17.3
2025-07-01 17:08:45,461 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:08:45,461 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:08:45,461 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.630841
2025-07-01 17:08:45,462 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:08:45,462 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:08:45,462 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:08:45,462 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:08:45,462 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:08:45,463 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:08:26', tmtdew=10.67, humidity=48.44, cloud=0.0, wind=31.85, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:08:24.662', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:08:45,464 [DEBUG][       Thread-611706][   transport.py][1871] : EOF in transport thread
2025-07-01 17:08:45,540 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:08:45,550 [DEBUG][       Thread-611709][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 17:08:45,550 [DEBUG][       Thread-611709][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:08:45,564 [DEBUG][       Thread-611709][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:08:45,565 [ INFO][       Thread-611709][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:08:45,572 [DEBUG][       Thread-611709][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:08:45,572 [DEBUG][       Thread-611709][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:08:45,572 [DEBUG][       Thread-611709][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:08:45,572 [DEBUG][       Thread-611709][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:08:45,572 [DEBUG][       Thread-611709][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:08:45,573 [DEBUG][       Thread-611709][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:08:45,573 [DEBUG][       Thread-611709][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:08:45,573 [DEBUG][       Thread-611709][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:08:45,573 [DEBUG][       Thread-611709][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:08:45,573 [DEBUG][       Thread-611709][   transport.py][1871] : client lang: <none>
2025-07-01 17:08:45,573 [DEBUG][       Thread-611709][   transport.py][1871] : server lang: <none>
2025-07-01 17:08:45,573 [DEBUG][       Thread-611709][   transport.py][1871] : kex follows: False
2025-07-01 17:08:45,573 [DEBUG][       Thread-611709][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:08:45,573 [DEBUG][       Thread-611709][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:08:45,573 [DEBUG][       Thread-611709][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:08:45,573 [DEBUG][       Thread-611709][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:08:45,573 [DEBUG][       Thread-611709][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:08:45,573 [DEBUG][       Thread-611709][   transport.py][1871] : Compression: none
2025-07-01 17:08:45,573 [DEBUG][       Thread-611709][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:08:45,630 [DEBUG][       Thread-611709][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:08:45,630 [DEBUG][       Thread-611709][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:08:45,631 [DEBUG][       Thread-611709][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:08:45,631 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:08:45,632 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:08:45,686 [DEBUG][       Thread-611709][   transport.py][1871] : userauth is OK
2025-07-01 17:08:45,686 [DEBUG][       Thread-611709][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:08:45,686 [DEBUG][       Thread-611709][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:08:45,686 [DEBUG][       Thread-611709][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:08:45,686 [DEBUG][       Thread-611709][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:08:45,707 [ INFO][       Thread-611709][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:08:45,708 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:08:45,708 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:08:46,741 [DEBUG][       Thread-611709][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:08:46,741 [DEBUG][       Thread-611709][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:08:46,792 [DEBUG][       Thread-611709][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:08:46,792 [DEBUG][       Thread-611709][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:08:46,801 [DEBUG][       Thread-611709][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:08:46,810 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:08:46,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')
2025-07-01 17:08:46,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-07-01 17:08:46,829 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:08:46,829 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:08:46,829 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:08:46,837 [DEBUG][       Thread-611709][   transport.py][1871] : EOF in transport thread
2025-07-01 17:08:48,492 [DEBUG][Thread-611711 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:08:56,840 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:08:56,840 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:08:56,840 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:08:56,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-07-01 17:08:57,317 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 8, 26), 10.67, 48.44, 0.0, 31.85, 13.09, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:08:57,317 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:08:26
2025-07-01 17:08:57,403 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:08:57,409 [DEBUG][       Thread-611712][   transport.py][1871] : starting thread (client mode): 0x818fe50
2025-07-01 17:08:57,409 [DEBUG][       Thread-611712][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:08:57,430 [DEBUG][       Thread-611712][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:08:57,430 [ INFO][       Thread-611712][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:08:57,433 [DEBUG][       Thread-611712][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:08:57,433 [DEBUG][       Thread-611712][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:08:57,433 [DEBUG][       Thread-611712][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:08:57,433 [DEBUG][       Thread-611712][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:08:57,433 [DEBUG][       Thread-611712][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:08:57,433 [DEBUG][       Thread-611712][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:08:57,433 [DEBUG][       Thread-611712][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:08:57,433 [DEBUG][       Thread-611712][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:08:57,434 [DEBUG][       Thread-611712][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:08:57,434 [DEBUG][       Thread-611712][   transport.py][1871] : client lang: <none>
2025-07-01 17:08:57,434 [DEBUG][       Thread-611712][   transport.py][1871] : server lang: <none>
2025-07-01 17:08:57,434 [DEBUG][       Thread-611712][   transport.py][1871] : kex follows: False
2025-07-01 17:08:57,434 [DEBUG][       Thread-611712][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:08:57,434 [DEBUG][       Thread-611712][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:08:57,434 [DEBUG][       Thread-611712][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:08:57,434 [DEBUG][       Thread-611712][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:08:57,434 [DEBUG][       Thread-611712][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:08:57,434 [DEBUG][       Thread-611712][   transport.py][1871] : Compression: none
2025-07-01 17:08:57,434 [DEBUG][       Thread-611712][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:08:57,451 [DEBUG][       Thread-611712][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:08:57,451 [DEBUG][       Thread-611712][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:08:57,452 [DEBUG][       Thread-611712][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:08:57,452 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:08:57,452 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:08:57,454 [DEBUG][       Thread-611712][   transport.py][1871] : userauth is OK
2025-07-01 17:08:57,468 [ INFO][       Thread-611712][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:08:57,469 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:08:57,516 [DEBUG][Thread-611714 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:08:58,128 [DEBUG][       Thread-611712][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:08:58,129 [DEBUG][       Thread-611712][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:08:58,173 [DEBUG][       Thread-611712][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:08:58,173 [DEBUG][       Thread-611712][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:08:58,177 [DEBUG][       Thread-611712][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:08:58,189 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:08:58,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:08:58,191 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:08:58,193 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:08:58,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:08:58,200 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:08:58,200 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:08:58,201 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:08:58,201 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.630841 -999.00  +13.00  40.85     52   +3.50 1 2 2 1 1   887    0 9.35 4.58 ----- 35.2 40.9 10.6 50.7 13.9 -18.0 13.7 -17.8 13.6 -17.5 13.9 -17.3
2025-07-01 17:08:58,201 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:08:58,201 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:08:58,201 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.630841
2025-07-01 17:08:58,202 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:08:58,202 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:08:58,202 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:08:58,202 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:08:58,203 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:08:58,203 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:08:26', tmtdew=10.67, humidity=48.44, cloud=0.0, wind=31.85, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:08:24.662', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:08:58,204 [DEBUG][       Thread-611712][   transport.py][1871] : EOF in transport thread
2025-07-01 17:08:58,286 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:08:58,299 [DEBUG][       Thread-611716][   transport.py][1871] : starting thread (client mode): 0x81561d0
2025-07-01 17:08:58,299 [DEBUG][       Thread-611716][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:08:58,314 [DEBUG][       Thread-611716][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:08:58,314 [ INFO][       Thread-611716][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:08:58,322 [DEBUG][       Thread-611716][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:08:58,322 [DEBUG][       Thread-611716][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:08:58,322 [DEBUG][       Thread-611716][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:08:58,322 [DEBUG][       Thread-611716][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:08:58,323 [DEBUG][       Thread-611716][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:08:58,323 [DEBUG][       Thread-611716][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:08:58,323 [DEBUG][       Thread-611716][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:08:58,323 [DEBUG][       Thread-611716][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:08:58,323 [DEBUG][       Thread-611716][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:08:58,323 [DEBUG][       Thread-611716][   transport.py][1871] : client lang: <none>
2025-07-01 17:08:58,323 [DEBUG][       Thread-611716][   transport.py][1871] : server lang: <none>
2025-07-01 17:08:58,323 [DEBUG][       Thread-611716][   transport.py][1871] : kex follows: False
2025-07-01 17:08:58,323 [DEBUG][       Thread-611716][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:08:58,323 [DEBUG][       Thread-611716][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:08:58,323 [DEBUG][       Thread-611716][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:08:58,323 [DEBUG][       Thread-611716][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:08:58,323 [DEBUG][       Thread-611716][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:08:58,323 [DEBUG][       Thread-611716][   transport.py][1871] : Compression: none
2025-07-01 17:08:58,323 [DEBUG][       Thread-611716][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:08:58,381 [DEBUG][       Thread-611716][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:08:58,382 [DEBUG][       Thread-611716][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:08:58,383 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:08:58,383 [DEBUG][       Thread-611716][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:08:58,384 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:08:58,442 [DEBUG][       Thread-611716][   transport.py][1871] : userauth is OK
2025-07-01 17:08:58,442 [DEBUG][       Thread-611716][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:08:58,442 [DEBUG][       Thread-611716][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:08:58,442 [DEBUG][       Thread-611716][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:08:58,442 [DEBUG][       Thread-611716][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:08:58,462 [ INFO][       Thread-611716][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:08:58,462 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:08:58,462 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:08:59,491 [DEBUG][       Thread-611716][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:08:59,491 [DEBUG][       Thread-611716][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:08:59,539 [DEBUG][       Thread-611716][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:08:59,539 [DEBUG][       Thread-611716][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:08:59,548 [DEBUG][       Thread-611716][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:08:59,557 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:08: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')
2025-07-01 17:08:59,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-07-01 17:08:59,573 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:08:59,573 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:08:59,573 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:08:59,581 [DEBUG][       Thread-611716][   transport.py][1871] : EOF in transport thread
2025-07-01 17:09:06,537 [DEBUG][Thread-611718 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:09:09,583 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:09:09,583 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:09:09,583 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:09:09,586 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:09:10,060 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 8, 58), 10.66, 48.48, 0.0, 29.96, 13.09, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:09:10,060 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:08:58
2025-07-01 17:09:10,146 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:09:10,150 [DEBUG][       Thread-611719][   transport.py][1871] : starting thread (client mode): 0x81a6680
2025-07-01 17:09:10,150 [DEBUG][       Thread-611719][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:09:10,170 [DEBUG][       Thread-611719][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:09:10,170 [ INFO][       Thread-611719][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:09:10,174 [DEBUG][       Thread-611719][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:09:10,174 [DEBUG][       Thread-611719][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:09:10,174 [DEBUG][       Thread-611719][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:09:10,174 [DEBUG][       Thread-611719][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:09:10,174 [DEBUG][       Thread-611719][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:09:10,174 [DEBUG][       Thread-611719][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:09:10,174 [DEBUG][       Thread-611719][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:09:10,174 [DEBUG][       Thread-611719][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:09:10,174 [DEBUG][       Thread-611719][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:09:10,174 [DEBUG][       Thread-611719][   transport.py][1871] : client lang: <none>
2025-07-01 17:09:10,174 [DEBUG][       Thread-611719][   transport.py][1871] : server lang: <none>
2025-07-01 17:09:10,174 [DEBUG][       Thread-611719][   transport.py][1871] : kex follows: False
2025-07-01 17:09:10,174 [DEBUG][       Thread-611719][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:09:10,174 [DEBUG][       Thread-611719][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:09:10,174 [DEBUG][       Thread-611719][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:09:10,174 [DEBUG][       Thread-611719][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:09:10,174 [DEBUG][       Thread-611719][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:09:10,174 [DEBUG][       Thread-611719][   transport.py][1871] : Compression: none
2025-07-01 17:09:10,174 [DEBUG][       Thread-611719][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:09:10,183 [DEBUG][       Thread-611719][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:09:10,183 [DEBUG][       Thread-611719][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:09:10,183 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:09:10,184 [DEBUG][       Thread-611719][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:09:10,184 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:09:10,185 [DEBUG][       Thread-611719][   transport.py][1871] : userauth is OK
2025-07-01 17:09:10,198 [ INFO][       Thread-611719][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:09:10,198 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:09:10,815 [DEBUG][       Thread-611719][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:09:10,815 [DEBUG][       Thread-611719][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:09:10,857 [DEBUG][       Thread-611719][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:09:10,857 [DEBUG][       Thread-611719][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:09:10,860 [DEBUG][       Thread-611719][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:09:10,866 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:09:10,866 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:09:10,868 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:09:10,870 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:09:10,876 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:09:10,878 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:09:10,878 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:09:10,879 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:09:10,879 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.631188 -999.00  +13.00  29.75     52   +3.50 1 2 1 1 1   887    0 9.49 6.82 ----- 37.0 29.8 23.4 34.4 13.9 -18.1 13.7 -17.9 13.6 -17.6 13.9 -17.5
2025-07-01 17:09:10,879 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:09:10,879 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:09:10,879 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.631188
2025-07-01 17:09:10,880 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:09:10,880 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:09:10,880 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:09:10,880 [DEBUG][       Thread-611719][   transport.py][1871] : EOF in transport thread
2025-07-01 17:09:10,881 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:09:10,881 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:09:10,881 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:08:58', tmtdew=10.66, humidity=48.48, cloud=0.0, wind=29.96, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:08:54.643', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:09:10,964 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:09:10,974 [DEBUG][       Thread-611722][   transport.py][1871] : starting thread (client mode): 0x81712d0
2025-07-01 17:09:10,974 [DEBUG][       Thread-611722][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:09:10,988 [DEBUG][       Thread-611722][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:09:10,988 [ INFO][       Thread-611722][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:09:10,996 [DEBUG][       Thread-611722][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:09:10,996 [DEBUG][       Thread-611722][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:09:10,996 [DEBUG][       Thread-611722][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:09:10,996 [DEBUG][       Thread-611722][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:09:10,996 [DEBUG][       Thread-611722][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:09:10,996 [DEBUG][       Thread-611722][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:09:10,996 [DEBUG][       Thread-611722][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:09:10,996 [DEBUG][       Thread-611722][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:09:10,996 [DEBUG][       Thread-611722][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:09:10,996 [DEBUG][       Thread-611722][   transport.py][1871] : client lang: <none>
2025-07-01 17:09:10,996 [DEBUG][       Thread-611722][   transport.py][1871] : server lang: <none>
2025-07-01 17:09:10,996 [DEBUG][       Thread-611722][   transport.py][1871] : kex follows: False
2025-07-01 17:09:10,996 [DEBUG][       Thread-611722][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:09:10,996 [DEBUG][       Thread-611722][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:09:10,996 [DEBUG][       Thread-611722][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:09:10,996 [DEBUG][       Thread-611722][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:09:10,996 [DEBUG][       Thread-611722][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:09:10,996 [DEBUG][       Thread-611722][   transport.py][1871] : Compression: none
2025-07-01 17:09:10,996 [DEBUG][       Thread-611722][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:09:11,057 [DEBUG][       Thread-611722][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:09:11,058 [DEBUG][       Thread-611722][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:09:11,059 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:09:11,059 [DEBUG][       Thread-611722][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:09:11,060 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:09:11,113 [DEBUG][       Thread-611722][   transport.py][1871] : userauth is OK
2025-07-01 17:09:11,114 [DEBUG][       Thread-611722][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:09:11,114 [DEBUG][       Thread-611722][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:09:11,114 [DEBUG][       Thread-611722][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:09:11,114 [DEBUG][       Thread-611722][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:09:11,133 [ INFO][       Thread-611722][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:09:11,133 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:09:11,134 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:09:12,168 [DEBUG][       Thread-611722][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:09:12,168 [DEBUG][       Thread-611722][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:09:12,219 [DEBUG][       Thread-611722][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:09:12,219 [DEBUG][       Thread-611722][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:09:12,228 [DEBUG][       Thread-611722][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:09:12,236 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:09:12,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-07-01 17:09:12,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-07-01 17:09:12,252 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:09:12,252 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:09:12,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:09:12,260 [DEBUG][       Thread-611722][   transport.py][1871] : EOF in transport thread
2025-07-01 17:09:15,554 [DEBUG][Thread-611724 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:09:22,263 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:09:22,263 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:09:22,263 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:09:22,266 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:09:22,736 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 8, 58), 10.66, 48.48, 0.0, 29.96, 13.09, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:09:22,736 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:08:58
2025-07-01 17:09:22,821 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:09:22,826 [DEBUG][       Thread-611725][   transport.py][1871] : starting thread (client mode): 0x81a6a40
2025-07-01 17:09:22,826 [DEBUG][       Thread-611725][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:09:22,846 [DEBUG][       Thread-611725][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:09:22,846 [ INFO][       Thread-611725][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:09:22,850 [DEBUG][       Thread-611725][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:09:22,850 [DEBUG][       Thread-611725][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:09:22,850 [DEBUG][       Thread-611725][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:09:22,850 [DEBUG][       Thread-611725][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:09:22,850 [DEBUG][       Thread-611725][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:09:22,850 [DEBUG][       Thread-611725][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:09:22,850 [DEBUG][       Thread-611725][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:09:22,850 [DEBUG][       Thread-611725][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:09:22,850 [DEBUG][       Thread-611725][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:09:22,850 [DEBUG][       Thread-611725][   transport.py][1871] : client lang: <none>
2025-07-01 17:09:22,850 [DEBUG][       Thread-611725][   transport.py][1871] : server lang: <none>
2025-07-01 17:09:22,850 [DEBUG][       Thread-611725][   transport.py][1871] : kex follows: False
2025-07-01 17:09:22,850 [DEBUG][       Thread-611725][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:09:22,850 [DEBUG][       Thread-611725][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:09:22,850 [DEBUG][       Thread-611725][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:09:22,850 [DEBUG][       Thread-611725][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:09:22,850 [DEBUG][       Thread-611725][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:09:22,850 [DEBUG][       Thread-611725][   transport.py][1871] : Compression: none
2025-07-01 17:09:22,851 [DEBUG][       Thread-611725][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:09:22,867 [DEBUG][       Thread-611725][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:09:22,868 [DEBUG][       Thread-611725][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:09:22,868 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:09:22,869 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:09:22,869 [DEBUG][       Thread-611725][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:09:22,870 [DEBUG][       Thread-611725][   transport.py][1871] : userauth is OK
2025-07-01 17:09:22,894 [ INFO][       Thread-611725][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:09:22,895 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:09:23,612 [DEBUG][       Thread-611725][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:09:23,613 [DEBUG][       Thread-611725][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:09:23,657 [DEBUG][       Thread-611725][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:09:23,657 [DEBUG][       Thread-611725][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:09:23,660 [DEBUG][       Thread-611725][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:09:23,672 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:09:23,673 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:09:23,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:09:23,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:09:23,682 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:09:23,684 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:09:23,684 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:09:23,685 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:09:23,685 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.631188 -999.00  +13.00  29.75     52   +3.50 1 2 1 1 1   887    0 9.49 6.82 ----- 37.0 29.8 23.4 34.4 13.9 -18.1 13.7 -17.9 13.6 -17.6 13.9 -17.5
2025-07-01 17:09:23,685 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:09:23,685 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:09:23,685 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.631188
2025-07-01 17:09:23,686 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:09:23,686 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:09:23,686 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:09:23,686 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:09:23,686 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:09:23,686 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:08:58', tmtdew=10.66, humidity=48.48, cloud=0.0, wind=29.96, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:08:54.643', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:09:23,688 [DEBUG][       Thread-611725][   transport.py][1871] : EOF in transport thread
2025-07-01 17:09:23,770 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:09:23,781 [DEBUG][       Thread-611728][   transport.py][1871] : starting thread (client mode): 0x81c9300
2025-07-01 17:09:23,782 [DEBUG][       Thread-611728][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:09:23,796 [DEBUG][       Thread-611728][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:09:23,796 [ INFO][       Thread-611728][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:09:23,804 [DEBUG][       Thread-611728][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:09:23,804 [DEBUG][       Thread-611728][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:09:23,804 [DEBUG][       Thread-611728][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:09:23,804 [DEBUG][       Thread-611728][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:09:23,804 [DEBUG][       Thread-611728][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:09:23,804 [DEBUG][       Thread-611728][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:09:23,804 [DEBUG][       Thread-611728][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:09:23,804 [DEBUG][       Thread-611728][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:09:23,805 [DEBUG][       Thread-611728][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:09:23,805 [DEBUG][       Thread-611728][   transport.py][1871] : client lang: <none>
2025-07-01 17:09:23,805 [DEBUG][       Thread-611728][   transport.py][1871] : server lang: <none>
2025-07-01 17:09:23,805 [DEBUG][       Thread-611728][   transport.py][1871] : kex follows: False
2025-07-01 17:09:23,805 [DEBUG][       Thread-611728][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:09:23,805 [DEBUG][       Thread-611728][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:09:23,805 [DEBUG][       Thread-611728][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:09:23,805 [DEBUG][       Thread-611728][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:09:23,805 [DEBUG][       Thread-611728][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:09:23,805 [DEBUG][       Thread-611728][   transport.py][1871] : Compression: none
2025-07-01 17:09:23,805 [DEBUG][       Thread-611728][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:09:23,862 [DEBUG][       Thread-611728][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:09:23,862 [DEBUG][       Thread-611728][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:09:23,863 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:09:23,863 [DEBUG][       Thread-611728][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:09:23,864 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:09:23,917 [DEBUG][       Thread-611728][   transport.py][1871] : userauth is OK
2025-07-01 17:09:23,917 [DEBUG][       Thread-611728][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:09:23,918 [DEBUG][       Thread-611728][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:09:23,918 [DEBUG][       Thread-611728][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:09:23,918 [DEBUG][       Thread-611728][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:09:23,936 [ INFO][       Thread-611728][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:09:23,937 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:09:23,937 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:09:24,581 [DEBUG][Thread-611730 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:09:24,965 [DEBUG][       Thread-611728][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:09:24,965 [DEBUG][       Thread-611728][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:09:25,016 [DEBUG][       Thread-611728][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:09:25,016 [DEBUG][       Thread-611728][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:09:25,025 [DEBUG][       Thread-611728][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:09:25,034 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:09:25,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-07-01 17:09:25,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-07-01 17:09:25,053 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:09:25,053 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:09:25,054 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:09:25,062 [DEBUG][       Thread-611728][   transport.py][1871] : EOF in transport thread
2025-07-01 17:09:33,602 [DEBUG][Thread-611731 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:09:35,064 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:09:35,065 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:09:35,065 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:09:35,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-07-01 17:09:35,532 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 9, 30), 10.7, 48.1, 0.0, 29.46, 13.13, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:09:35,532 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:09:30
2025-07-01 17:09:35,618 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:09:35,623 [DEBUG][       Thread-611732][   transport.py][1871] : starting thread (client mode): 0x81a7d00
2025-07-01 17:09:35,623 [DEBUG][       Thread-611732][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:09:35,644 [DEBUG][       Thread-611732][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:09:35,645 [ INFO][       Thread-611732][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:09:35,648 [DEBUG][       Thread-611732][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:09:35,648 [DEBUG][       Thread-611732][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:09:35,648 [DEBUG][       Thread-611732][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:09:35,648 [DEBUG][       Thread-611732][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:09:35,648 [DEBUG][       Thread-611732][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:09:35,648 [DEBUG][       Thread-611732][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:09:35,648 [DEBUG][       Thread-611732][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:09:35,648 [DEBUG][       Thread-611732][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:09:35,648 [DEBUG][       Thread-611732][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:09:35,648 [DEBUG][       Thread-611732][   transport.py][1871] : client lang: <none>
2025-07-01 17:09:35,648 [DEBUG][       Thread-611732][   transport.py][1871] : server lang: <none>
2025-07-01 17:09:35,648 [DEBUG][       Thread-611732][   transport.py][1871] : kex follows: False
2025-07-01 17:09:35,648 [DEBUG][       Thread-611732][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:09:35,648 [DEBUG][       Thread-611732][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:09:35,648 [DEBUG][       Thread-611732][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:09:35,648 [DEBUG][       Thread-611732][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:09:35,648 [DEBUG][       Thread-611732][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:09:35,648 [DEBUG][       Thread-611732][   transport.py][1871] : Compression: none
2025-07-01 17:09:35,648 [DEBUG][       Thread-611732][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:09:35,665 [DEBUG][       Thread-611732][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:09:35,666 [DEBUG][       Thread-611732][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:09:35,666 [DEBUG][       Thread-611732][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:09:35,666 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:09:35,666 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:09:35,667 [DEBUG][       Thread-611732][   transport.py][1871] : userauth is OK
2025-07-01 17:09:35,681 [ INFO][       Thread-611732][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:09:35,681 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:09:36,330 [DEBUG][       Thread-611732][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:09:36,330 [DEBUG][       Thread-611732][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:09:36,373 [DEBUG][       Thread-611732][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:09:36,373 [DEBUG][       Thread-611732][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:09:36,376 [DEBUG][       Thread-611732][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:09:36,389 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:09:36,389 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:09:36,391 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:09:36,393 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:09:36,399 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:09:36,401 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:09:36,402 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:09:36,402 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:09:36,402 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.631188 -999.00  +13.00  29.75     52   +3.50 1 2 1 1 1   887    0 9.49 6.82 ----- 37.0 29.8 23.4 34.4 13.9 -18.1 13.7 -17.9 13.6 -17.6 13.9 -17.5
2025-07-01 17:09:36,402 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:09:36,403 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:09:36,403 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.631188
2025-07-01 17:09:36,403 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:09:36,404 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:09:36,404 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:09:36,404 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:09:36,404 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:09:36,404 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:09:30', tmtdew=10.7, humidity=48.1, cloud=0.0, wind=29.46, temperature=13.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:08:54.643', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:09:36,405 [DEBUG][       Thread-611732][   transport.py][1871] : EOF in transport thread
2025-07-01 17:09:36,498 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:09:36,508 [DEBUG][       Thread-611735][   transport.py][1871] : starting thread (client mode): 0x827db40
2025-07-01 17:09:36,508 [DEBUG][       Thread-611735][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:09:36,523 [DEBUG][       Thread-611735][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:09:36,523 [ INFO][       Thread-611735][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:09:36,533 [DEBUG][       Thread-611735][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:09:36,533 [DEBUG][       Thread-611735][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:09:36,533 [DEBUG][       Thread-611735][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:09:36,533 [DEBUG][       Thread-611735][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:09:36,533 [DEBUG][       Thread-611735][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:09:36,533 [DEBUG][       Thread-611735][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:09:36,534 [DEBUG][       Thread-611735][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:09:36,534 [DEBUG][       Thread-611735][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:09:36,534 [DEBUG][       Thread-611735][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:09:36,534 [DEBUG][       Thread-611735][   transport.py][1871] : client lang: <none>
2025-07-01 17:09:36,534 [DEBUG][       Thread-611735][   transport.py][1871] : server lang: <none>
2025-07-01 17:09:36,534 [DEBUG][       Thread-611735][   transport.py][1871] : kex follows: False
2025-07-01 17:09:36,534 [DEBUG][       Thread-611735][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:09:36,534 [DEBUG][       Thread-611735][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:09:36,534 [DEBUG][       Thread-611735][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:09:36,534 [DEBUG][       Thread-611735][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:09:36,534 [DEBUG][       Thread-611735][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:09:36,534 [DEBUG][       Thread-611735][   transport.py][1871] : Compression: none
2025-07-01 17:09:36,534 [DEBUG][       Thread-611735][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:09:36,593 [DEBUG][       Thread-611735][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:09:36,594 [DEBUG][       Thread-611735][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:09:36,595 [DEBUG][       Thread-611735][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:09:36,595 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:09:36,596 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:09:36,649 [DEBUG][       Thread-611735][   transport.py][1871] : userauth is OK
2025-07-01 17:09:36,649 [DEBUG][       Thread-611735][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:09:36,650 [DEBUG][       Thread-611735][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:09:36,650 [DEBUG][       Thread-611735][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:09:36,650 [DEBUG][       Thread-611735][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:09:36,670 [ INFO][       Thread-611735][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:09:36,670 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:09:36,671 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:09:37,693 [DEBUG][       Thread-611735][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:09:37,693 [DEBUG][       Thread-611735][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:09:37,744 [DEBUG][       Thread-611735][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:09:37,744 [DEBUG][       Thread-611735][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:09:37,753 [DEBUG][       Thread-611735][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:09:37,762 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:09: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-07-01 17:09:37,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-07-01 17:09:37,780 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:09:37,781 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:09:37,781 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:09:37,789 [DEBUG][       Thread-611735][   transport.py][1871] : EOF in transport thread
2025-07-01 17:09:39,937 [DEBUG][Thread-611737 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:09:42,624 [DEBUG][Thread-611738 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:09:47,791 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:09:47,792 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:09:47,792 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:09:47,795 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:09:48,262 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 9, 30), 10.7, 48.1, 0.0, 29.46, 13.13, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:09:48,262 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:09:30
2025-07-01 17:09:48,348 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:09:48,352 [DEBUG][       Thread-611739][   transport.py][1871] : starting thread (client mode): 0x81a5b70
2025-07-01 17:09:48,352 [DEBUG][       Thread-611739][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:09:48,374 [DEBUG][       Thread-611739][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:09:48,375 [ INFO][       Thread-611739][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:09:48,378 [DEBUG][       Thread-611739][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:09:48,379 [DEBUG][       Thread-611739][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:09:48,379 [DEBUG][       Thread-611739][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:09:48,379 [DEBUG][       Thread-611739][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:09:48,379 [DEBUG][       Thread-611739][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:09:48,379 [DEBUG][       Thread-611739][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:09:48,379 [DEBUG][       Thread-611739][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:09:48,379 [DEBUG][       Thread-611739][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:09:48,379 [DEBUG][       Thread-611739][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:09:48,379 [DEBUG][       Thread-611739][   transport.py][1871] : client lang: <none>
2025-07-01 17:09:48,379 [DEBUG][       Thread-611739][   transport.py][1871] : server lang: <none>
2025-07-01 17:09:48,379 [DEBUG][       Thread-611739][   transport.py][1871] : kex follows: False
2025-07-01 17:09:48,379 [DEBUG][       Thread-611739][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:09:48,379 [DEBUG][       Thread-611739][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:09:48,379 [DEBUG][       Thread-611739][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:09:48,379 [DEBUG][       Thread-611739][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:09:48,379 [DEBUG][       Thread-611739][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:09:48,379 [DEBUG][       Thread-611739][   transport.py][1871] : Compression: none
2025-07-01 17:09:48,379 [DEBUG][       Thread-611739][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:09:48,397 [DEBUG][       Thread-611739][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:09:48,397 [DEBUG][       Thread-611739][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:09:48,398 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:09:48,398 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:09:48,398 [DEBUG][       Thread-611739][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:09:48,399 [DEBUG][       Thread-611739][   transport.py][1871] : userauth is OK
2025-07-01 17:09:48,412 [ INFO][       Thread-611739][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:09:48,413 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:09:49,068 [DEBUG][       Thread-611739][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:09:49,068 [DEBUG][       Thread-611739][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:09:49,113 [DEBUG][       Thread-611739][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:09:49,113 [DEBUG][       Thread-611739][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:09:49,116 [DEBUG][       Thread-611739][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:09:49,128 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:09:49,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:09:49,130 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:09:49,131 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:09:49,136 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:09:49,138 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:09:49,138 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:09:49,139 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:09:49,139 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.631535 -999.00  +13.00  31.54     52   +3.50 1 2 2 1 1   887    0 9.40 8.60 ----- 28.5 31.5 21.2 40.2 13.8 -18.2 13.6 -17.9 13.5 -17.6 13.9 -17.5
2025-07-01 17:09:49,139 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:09:49,139 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:09:49,139 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.631535
2025-07-01 17:09:49,140 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:09:49,140 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:09:49,140 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:09:49,140 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:09:49,140 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:09:49,141 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:09:30', tmtdew=10.7, humidity=48.1, cloud=0.0, wind=29.46, temperature=13.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:09:24.624', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:09:49,141 [DEBUG][       Thread-611739][   transport.py][1871] : EOF in transport thread
2025-07-01 17:09:49,224 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:09:49,235 [DEBUG][       Thread-611742][   transport.py][1871] : starting thread (client mode): 0x81e5960
2025-07-01 17:09:49,235 [DEBUG][       Thread-611742][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:09:49,252 [DEBUG][       Thread-611742][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:09:49,252 [ INFO][       Thread-611742][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:09:49,260 [DEBUG][       Thread-611742][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:09:49,260 [DEBUG][       Thread-611742][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:09:49,260 [DEBUG][       Thread-611742][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:09:49,260 [DEBUG][       Thread-611742][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:09:49,260 [DEBUG][       Thread-611742][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:09:49,260 [DEBUG][       Thread-611742][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:09:49,260 [DEBUG][       Thread-611742][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:09:49,260 [DEBUG][       Thread-611742][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:09:49,260 [DEBUG][       Thread-611742][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:09:49,260 [DEBUG][       Thread-611742][   transport.py][1871] : client lang: <none>
2025-07-01 17:09:49,260 [DEBUG][       Thread-611742][   transport.py][1871] : server lang: <none>
2025-07-01 17:09:49,260 [DEBUG][       Thread-611742][   transport.py][1871] : kex follows: False
2025-07-01 17:09:49,261 [DEBUG][       Thread-611742][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:09:49,261 [DEBUG][       Thread-611742][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:09:49,261 [DEBUG][       Thread-611742][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:09:49,261 [DEBUG][       Thread-611742][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:09:49,261 [DEBUG][       Thread-611742][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:09:49,261 [DEBUG][       Thread-611742][   transport.py][1871] : Compression: none
2025-07-01 17:09:49,261 [DEBUG][       Thread-611742][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:09:49,317 [DEBUG][       Thread-611742][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:09:49,317 [DEBUG][       Thread-611742][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:09:49,318 [DEBUG][       Thread-611742][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:09:49,318 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:09:49,319 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:09:49,372 [DEBUG][       Thread-611742][   transport.py][1871] : userauth is OK
2025-07-01 17:09:49,372 [DEBUG][       Thread-611742][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:09:49,372 [DEBUG][       Thread-611742][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:09:49,372 [DEBUG][       Thread-611742][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:09:49,372 [DEBUG][       Thread-611742][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:09:49,387 [ INFO][       Thread-611742][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:09:49,388 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:09:49,388 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:09:50,413 [DEBUG][       Thread-611742][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:09:50,413 [DEBUG][       Thread-611742][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:09:50,463 [DEBUG][       Thread-611742][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:09:50,463 [DEBUG][       Thread-611742][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:09:50,472 [DEBUG][       Thread-611742][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:09:50,479 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:09:50,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-07-01 17:09:50,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-07-01 17:09:50,498 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:09:50,498 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:09:50,498 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:09:50,505 [DEBUG][       Thread-611742][   transport.py][1871] : EOF in transport thread
2025-07-01 17:09:51,655 [DEBUG][Thread-611744 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:10:00,507 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:10:00,507 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:10:00,507 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:10:00,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-07-01 17:10:00,672 [DEBUG][Thread-611745 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:10:00,967 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 9, 30), 10.7, 48.1, 0.0, 29.46, 13.13, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:10:00,968 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:09:30
2025-07-01 17:10:01,053 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:10:01,056 [DEBUG][       Thread-611746][   transport.py][1871] : starting thread (client mode): 0x75ab160
2025-07-01 17:10:01,057 [DEBUG][       Thread-611746][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:10:01,069 [DEBUG][       Thread-611746][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:10:01,069 [ INFO][       Thread-611746][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:10:01,070 [DEBUG][       Thread-611746][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:10:01,070 [DEBUG][       Thread-611746][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:10:01,070 [DEBUG][       Thread-611746][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:10:01,070 [DEBUG][       Thread-611746][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:10:01,070 [DEBUG][       Thread-611746][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:10:01,070 [DEBUG][       Thread-611746][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:10:01,070 [DEBUG][       Thread-611746][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:10:01,070 [DEBUG][       Thread-611746][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:10:01,070 [DEBUG][       Thread-611746][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:10:01,070 [DEBUG][       Thread-611746][   transport.py][1871] : client lang: <none>
2025-07-01 17:10:01,070 [DEBUG][       Thread-611746][   transport.py][1871] : server lang: <none>
2025-07-01 17:10:01,070 [DEBUG][       Thread-611746][   transport.py][1871] : kex follows: False
2025-07-01 17:10:01,070 [DEBUG][       Thread-611746][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:10:01,070 [DEBUG][       Thread-611746][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:10:01,070 [DEBUG][       Thread-611746][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:10:01,070 [DEBUG][       Thread-611746][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:10:01,070 [DEBUG][       Thread-611746][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:10:01,070 [DEBUG][       Thread-611746][   transport.py][1871] : Compression: none
2025-07-01 17:10:01,070 [DEBUG][       Thread-611746][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:10:01,082 [DEBUG][       Thread-611746][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:10:01,082 [DEBUG][       Thread-611746][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:10:01,082 [DEBUG][       Thread-611746][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:10:01,082 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:10:01,082 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:10:01,083 [DEBUG][       Thread-611746][   transport.py][1871] : userauth is OK
2025-07-01 17:10:01,107 [ INFO][       Thread-611746][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:10:01,108 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:10:01,673 [DEBUG][       Thread-611746][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:10:01,673 [DEBUG][       Thread-611746][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:10:01,717 [DEBUG][       Thread-611746][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:10:01,717 [DEBUG][       Thread-611746][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:10:01,720 [DEBUG][       Thread-611746][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:10:01,731 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:10:01,732 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:10:01,733 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:10:01,735 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:10:01,740 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:10:01,742 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:10:01,742 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:10:01,743 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:10:01,743 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.631535 -999.00  +13.00  31.54     52   +3.50 1 2 2 1 1   887    0 9.40 8.60 ----- 28.5 31.5 21.2 40.2 13.8 -18.2 13.6 -17.9 13.5 -17.6 13.9 -17.5
2025-07-01 17:10:01,743 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:10:01,743 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:10:01,743 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.631535
2025-07-01 17:10:01,744 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:10:01,744 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:10:01,744 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:10:01,744 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:10:01,744 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:10:01,745 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:09:30', tmtdew=10.7, humidity=48.1, cloud=0.0, wind=29.46, temperature=13.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:09:24.624', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:10:01,745 [DEBUG][       Thread-611746][   transport.py][1871] : EOF in transport thread
2025-07-01 17:10:01,829 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:10:01,838 [DEBUG][       Thread-611749][   transport.py][1871] : starting thread (client mode): 0x8156620
2025-07-01 17:10:01,838 [DEBUG][       Thread-611749][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:10:01,853 [DEBUG][       Thread-611749][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:10:01,853 [ INFO][       Thread-611749][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:10:01,861 [DEBUG][       Thread-611749][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:10:01,861 [DEBUG][       Thread-611749][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:10:01,861 [DEBUG][       Thread-611749][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:10:01,861 [DEBUG][       Thread-611749][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:10:01,861 [DEBUG][       Thread-611749][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:10:01,861 [DEBUG][       Thread-611749][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:10:01,861 [DEBUG][       Thread-611749][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:10:01,861 [DEBUG][       Thread-611749][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:10:01,861 [DEBUG][       Thread-611749][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:10:01,861 [DEBUG][       Thread-611749][   transport.py][1871] : client lang: <none>
2025-07-01 17:10:01,861 [DEBUG][       Thread-611749][   transport.py][1871] : server lang: <none>
2025-07-01 17:10:01,861 [DEBUG][       Thread-611749][   transport.py][1871] : kex follows: False
2025-07-01 17:10:01,861 [DEBUG][       Thread-611749][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:10:01,861 [DEBUG][       Thread-611749][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:10:01,861 [DEBUG][       Thread-611749][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:10:01,861 [DEBUG][       Thread-611749][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:10:01,861 [DEBUG][       Thread-611749][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:10:01,861 [DEBUG][       Thread-611749][   transport.py][1871] : Compression: none
2025-07-01 17:10:01,861 [DEBUG][       Thread-611749][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:10:01,921 [DEBUG][       Thread-611749][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:10:01,921 [DEBUG][       Thread-611749][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:10:01,922 [DEBUG][       Thread-611749][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:10:01,922 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:10:01,923 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:10:01,977 [DEBUG][       Thread-611749][   transport.py][1871] : userauth is OK
2025-07-01 17:10:01,977 [DEBUG][       Thread-611749][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:10:01,977 [DEBUG][       Thread-611749][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:10:01,977 [DEBUG][       Thread-611749][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:10:01,977 [DEBUG][       Thread-611749][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:10:01,996 [ INFO][       Thread-611749][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:10:01,996 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:10:01,997 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:10:03,054 [DEBUG][       Thread-611749][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:10:03,054 [DEBUG][       Thread-611749][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:10:03,103 [DEBUG][       Thread-611749][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:10:03,103 [DEBUG][       Thread-611749][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:10:03,112 [DEBUG][       Thread-611749][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:10:03,120 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:10: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')
2025-07-01 17:10:03,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-07-01 17:10:03,135 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:10:03,135 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:10:03,136 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:10:03,143 [DEBUG][       Thread-611749][   transport.py][1871] : EOF in transport thread
2025-07-01 17:10:09,692 [DEBUG][Thread-611751 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:10:13,140 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:10:13,140 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:10:13,140 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:10: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-07-01 17:10:13,619 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 10, 2), 10.72, 48.04, 0.0, 25.62, 13.13, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:10:13,619 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:10:02
2025-07-01 17:10:13,704 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:10:13,708 [DEBUG][       Thread-611752][   transport.py][1871] : starting thread (client mode): 0x8171900
2025-07-01 17:10:13,708 [DEBUG][       Thread-611752][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:10:13,729 [DEBUG][       Thread-611752][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:10:13,729 [ INFO][       Thread-611752][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:10:13,732 [DEBUG][       Thread-611752][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:10:13,732 [DEBUG][       Thread-611752][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:10:13,732 [DEBUG][       Thread-611752][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:10:13,732 [DEBUG][       Thread-611752][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:10:13,732 [DEBUG][       Thread-611752][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:10:13,732 [DEBUG][       Thread-611752][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:10:13,732 [DEBUG][       Thread-611752][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:10:13,732 [DEBUG][       Thread-611752][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:10:13,732 [DEBUG][       Thread-611752][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:10:13,732 [DEBUG][       Thread-611752][   transport.py][1871] : client lang: <none>
2025-07-01 17:10:13,732 [DEBUG][       Thread-611752][   transport.py][1871] : server lang: <none>
2025-07-01 17:10:13,732 [DEBUG][       Thread-611752][   transport.py][1871] : kex follows: False
2025-07-01 17:10:13,732 [DEBUG][       Thread-611752][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:10:13,732 [DEBUG][       Thread-611752][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:10:13,732 [DEBUG][       Thread-611752][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:10:13,733 [DEBUG][       Thread-611752][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:10:13,733 [DEBUG][       Thread-611752][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:10:13,733 [DEBUG][       Thread-611752][   transport.py][1871] : Compression: none
2025-07-01 17:10:13,733 [DEBUG][       Thread-611752][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:10:13,751 [DEBUG][       Thread-611752][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:10:13,751 [DEBUG][       Thread-611752][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:10:13,752 [DEBUG][       Thread-611752][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:10:13,752 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:10:13,752 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:10:13,753 [DEBUG][       Thread-611752][   transport.py][1871] : userauth is OK
2025-07-01 17:10:13,779 [ INFO][       Thread-611752][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:10:13,779 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:10:14,362 [DEBUG][       Thread-611752][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:10:14,362 [DEBUG][       Thread-611752][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:10:14,405 [DEBUG][       Thread-611752][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:10:14,405 [DEBUG][       Thread-611752][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:10:14,407 [DEBUG][       Thread-611752][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:10:14,413 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:10:14,414 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:10:14,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:10:14,416 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:10:14,421 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:10:14,423 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:10:14,423 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:10:14,423 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:10:14,424 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.631535 -999.00  +13.00  31.54     52   +3.50 1 2 2 1 1   887    0 9.40 8.60 ----- 28.5 31.5 21.2 40.2 13.8 -18.2 13.6 -17.9 13.5 -17.6 13.9 -17.5
2025-07-01 17:10:14,424 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:10:14,424 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:10:14,424 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.631535
2025-07-01 17:10:14,424 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:10:14,425 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:10:14,425 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:10:14,425 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:10:14,425 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:10:14,425 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:10:02', tmtdew=10.72, humidity=48.04, cloud=0.0, wind=25.62, temperature=13.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:09:24.624', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:10:14,426 [DEBUG][       Thread-611752][   transport.py][1871] : EOF in transport thread
2025-07-01 17:10:14,510 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:10:14,521 [DEBUG][       Thread-611755][   transport.py][1871] : starting thread (client mode): 0x82b3ca0
2025-07-01 17:10:14,521 [DEBUG][       Thread-611755][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:10:14,538 [DEBUG][       Thread-611755][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:10:14,538 [ INFO][       Thread-611755][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:10:14,546 [DEBUG][       Thread-611755][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:10:14,546 [DEBUG][       Thread-611755][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:10:14,546 [DEBUG][       Thread-611755][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:10:14,546 [DEBUG][       Thread-611755][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:10:14,546 [DEBUG][       Thread-611755][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:10:14,547 [DEBUG][       Thread-611755][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:10:14,547 [DEBUG][       Thread-611755][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:10:14,547 [DEBUG][       Thread-611755][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:10:14,547 [DEBUG][       Thread-611755][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:10:14,547 [DEBUG][       Thread-611755][   transport.py][1871] : client lang: <none>
2025-07-01 17:10:14,547 [DEBUG][       Thread-611755][   transport.py][1871] : server lang: <none>
2025-07-01 17:10:14,547 [DEBUG][       Thread-611755][   transport.py][1871] : kex follows: False
2025-07-01 17:10:14,547 [DEBUG][       Thread-611755][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:10:14,547 [DEBUG][       Thread-611755][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:10:14,547 [DEBUG][       Thread-611755][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:10:14,547 [DEBUG][       Thread-611755][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:10:14,547 [DEBUG][       Thread-611755][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:10:14,547 [DEBUG][       Thread-611755][   transport.py][1871] : Compression: none
2025-07-01 17:10:14,547 [DEBUG][       Thread-611755][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:10:14,606 [DEBUG][       Thread-611755][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:10:14,607 [DEBUG][       Thread-611755][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:10:14,608 [DEBUG][       Thread-611755][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:10:14,608 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:10:14,609 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:10:14,665 [DEBUG][       Thread-611755][   transport.py][1871] : userauth is OK
2025-07-01 17:10:14,665 [DEBUG][       Thread-611755][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:10:14,665 [DEBUG][       Thread-611755][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:10:14,665 [DEBUG][       Thread-611755][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:10:14,665 [DEBUG][       Thread-611755][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:10:14,685 [ INFO][       Thread-611755][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:10:14,685 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:10:14,685 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:10:15,756 [DEBUG][       Thread-611755][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:10:15,757 [DEBUG][       Thread-611755][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:10:15,811 [DEBUG][       Thread-611755][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:10:15,811 [DEBUG][       Thread-611755][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:10:15,828 [DEBUG][       Thread-611755][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:10:15,837 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:10: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-07-01 17:10:15,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-07-01 17:10:15,856 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:10:15,856 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:10:15,856 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:10:15,864 [DEBUG][       Thread-611755][   transport.py][1871] : EOF in transport thread
2025-07-01 17:10:18,714 [DEBUG][Thread-611757 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:10:25,867 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:10:25,867 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:10:25,867 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:10:25,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-07-01 17:10:26,343 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 10, 2), 10.72, 48.04, 0.0, 25.62, 13.13, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:10:26,344 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:10:02
2025-07-01 17:10:26,428 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:10:26,434 [DEBUG][       Thread-611758][   transport.py][1871] : starting thread (client mode): 0x81a69b0
2025-07-01 17:10:26,435 [DEBUG][       Thread-611758][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:10:26,454 [DEBUG][       Thread-611758][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:10:26,454 [ INFO][       Thread-611758][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:10:26,458 [DEBUG][       Thread-611758][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:10:26,458 [DEBUG][       Thread-611758][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:10:26,458 [DEBUG][       Thread-611758][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:10:26,458 [DEBUG][       Thread-611758][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:10:26,458 [DEBUG][       Thread-611758][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:10:26,458 [DEBUG][       Thread-611758][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:10:26,458 [DEBUG][       Thread-611758][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:10:26,458 [DEBUG][       Thread-611758][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:10:26,458 [DEBUG][       Thread-611758][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:10:26,458 [DEBUG][       Thread-611758][   transport.py][1871] : client lang: <none>
2025-07-01 17:10:26,458 [DEBUG][       Thread-611758][   transport.py][1871] : server lang: <none>
2025-07-01 17:10:26,458 [DEBUG][       Thread-611758][   transport.py][1871] : kex follows: False
2025-07-01 17:10:26,458 [DEBUG][       Thread-611758][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:10:26,458 [DEBUG][       Thread-611758][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:10:26,458 [DEBUG][       Thread-611758][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:10:26,458 [DEBUG][       Thread-611758][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:10:26,458 [DEBUG][       Thread-611758][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:10:26,458 [DEBUG][       Thread-611758][   transport.py][1871] : Compression: none
2025-07-01 17:10:26,458 [DEBUG][       Thread-611758][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:10:26,475 [DEBUG][       Thread-611758][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:10:26,475 [DEBUG][       Thread-611758][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:10:26,476 [DEBUG][       Thread-611758][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:10:26,476 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:10:26,476 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:10:26,477 [DEBUG][       Thread-611758][   transport.py][1871] : userauth is OK
2025-07-01 17:10:26,490 [ INFO][       Thread-611758][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:10:26,491 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:10:27,121 [DEBUG][       Thread-611758][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:10:27,121 [DEBUG][       Thread-611758][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:10:27,165 [DEBUG][       Thread-611758][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:10:27,165 [DEBUG][       Thread-611758][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:10:27,168 [DEBUG][       Thread-611758][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:10:27,181 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:10:27,181 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:10:27,183 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:10:27,185 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:10:27,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:10:27,192 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:10:27,192 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:10:27,192 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:10:27,193 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.631882 -999.00  +12.90  26.32     52   +3.50 1 2 1 1 1   887    0 9.60 9.97 ----- 26.4 26.3 16.5 36.8 13.9 -18.2 13.7 -17.9 13.5 -17.7 13.9 -17.7
2025-07-01 17:10:27,193 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:10:27,193 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:10:27,193 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.631882
2025-07-01 17:10:27,193 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:10:27,194 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:10:27,194 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:10:27,194 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:10:27,194 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:10:27,194 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:10:02', tmtdew=10.72, humidity=48.04, cloud=0.0, wind=25.62, temperature=13.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:09:54.605', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:10:27,195 [DEBUG][       Thread-611758][   transport.py][1871] : EOF in transport thread
2025-07-01 17:10:27,280 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:10:27,756 [DEBUG][Thread-611761 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:10:36,775 [DEBUG][Thread-611762 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:10:39,968 [DEBUG][Thread-611763 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:10:45,796 [DEBUG][Thread-611764 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:10:54,819 [DEBUG][Thread-611765 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:11:03,841 [DEBUG][Thread-611766 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:11:12,861 [DEBUG][Thread-611767 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:11:21,885 [DEBUG][Thread-611768 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:11:30,907 [DEBUG][Thread-611769 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:11:39,928 [DEBUG][Thread-611770 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:11:39,999 [DEBUG][Thread-611771 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:11:48,948 [DEBUG][Thread-611772 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:11:57,972 [DEBUG][Thread-611773 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:12:06,996 [DEBUG][Thread-611774 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:12:16,020 [DEBUG][Thread-611775 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:12:25,043 [DEBUG][Thread-611776 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:12:34,065 [DEBUG][Thread-611777 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:12:35,604 [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-07-01 17:12:40,029 [DEBUG][Thread-611778 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:12:43,084 [DEBUG][Thread-611779 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:12:45,607 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:12:45,607 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:12:45,607 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:12:45,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-07-01 17:12:46,114 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 12, 40), 10.77, 48.02, 0.0, 33.95, 13.14, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:12:46,114 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:12:40
2025-07-01 17:12:46,200 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:12:46,204 [DEBUG][       Thread-611780][   transport.py][1871] : starting thread (client mode): 0x82b1960
2025-07-01 17:12:46,204 [DEBUG][       Thread-611780][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:12:46,223 [DEBUG][       Thread-611780][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:12:46,223 [ INFO][       Thread-611780][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:12:46,226 [DEBUG][       Thread-611780][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:12:46,226 [DEBUG][       Thread-611780][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:12:46,226 [DEBUG][       Thread-611780][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:12:46,226 [DEBUG][       Thread-611780][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:12:46,226 [DEBUG][       Thread-611780][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:12:46,226 [DEBUG][       Thread-611780][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:12:46,226 [DEBUG][       Thread-611780][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:12:46,226 [DEBUG][       Thread-611780][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:12:46,226 [DEBUG][       Thread-611780][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:12:46,226 [DEBUG][       Thread-611780][   transport.py][1871] : client lang: <none>
2025-07-01 17:12:46,226 [DEBUG][       Thread-611780][   transport.py][1871] : server lang: <none>
2025-07-01 17:12:46,226 [DEBUG][       Thread-611780][   transport.py][1871] : kex follows: False
2025-07-01 17:12:46,226 [DEBUG][       Thread-611780][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:12:46,226 [DEBUG][       Thread-611780][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:12:46,226 [DEBUG][       Thread-611780][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:12:46,226 [DEBUG][       Thread-611780][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:12:46,226 [DEBUG][       Thread-611780][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:12:46,226 [DEBUG][       Thread-611780][   transport.py][1871] : Compression: none
2025-07-01 17:12:46,226 [DEBUG][       Thread-611780][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:12:46,242 [DEBUG][       Thread-611780][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:12:46,243 [DEBUG][       Thread-611780][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:12:46,243 [DEBUG][       Thread-611780][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:12:46,243 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:12:46,244 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:12:46,244 [DEBUG][       Thread-611780][   transport.py][1871] : userauth is OK
2025-07-01 17:12:46,268 [ INFO][       Thread-611780][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:12:46,269 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:12:47,048 [DEBUG][       Thread-611780][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:12:47,048 [DEBUG][       Thread-611780][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:12:47,088 [DEBUG][       Thread-611780][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:12:47,089 [DEBUG][       Thread-611780][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:12:47,091 [DEBUG][       Thread-611780][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:12:47,099 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:12:47,099 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:12:47,100 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:12:47,102 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:12:47,106 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:12:47,107 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:12:47,108 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:12:47,108 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:12:47,108 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.633271 -999.00  +12.90  30.61     52   +3.40 1 2 2 1 1   887    0 9.53 14.28 ----- 33.2 30.6 21.8 43.3 13.8 -18.4 13.6 -18.2 13.4 -17.9 13.8 -18.1
2025-07-01 17:12:47,109 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:12:47,109 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:12:47,109 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.633271
2025-07-01 17:12:47,109 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:12:47,110 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:12:47,110 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:12:47,110 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:12:47,110 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:12:47,110 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:12:40', tmtdew=10.77, humidity=48.02, cloud=0.0, wind=33.95, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:11:54.614', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:12:47,110 [DEBUG][       Thread-611780][   transport.py][1871] : EOF in transport thread
2025-07-01 17:12:47,190 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:12:47,201 [DEBUG][       Thread-611783][   transport.py][1871] : starting thread (client mode): 0x75a9f90
2025-07-01 17:12:47,201 [DEBUG][       Thread-611783][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:12:47,218 [DEBUG][       Thread-611783][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:12:47,218 [ INFO][       Thread-611783][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:12:47,225 [DEBUG][       Thread-611783][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:12:47,225 [DEBUG][       Thread-611783][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:12:47,225 [DEBUG][       Thread-611783][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:12:47,225 [DEBUG][       Thread-611783][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:12:47,225 [DEBUG][       Thread-611783][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:12:47,225 [DEBUG][       Thread-611783][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:12:47,226 [DEBUG][       Thread-611783][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:12:47,226 [DEBUG][       Thread-611783][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:12:47,226 [DEBUG][       Thread-611783][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:12:47,226 [DEBUG][       Thread-611783][   transport.py][1871] : client lang: <none>
2025-07-01 17:12:47,226 [DEBUG][       Thread-611783][   transport.py][1871] : server lang: <none>
2025-07-01 17:12:47,226 [DEBUG][       Thread-611783][   transport.py][1871] : kex follows: False
2025-07-01 17:12:47,226 [DEBUG][       Thread-611783][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:12:47,226 [DEBUG][       Thread-611783][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:12:47,226 [DEBUG][       Thread-611783][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:12:47,226 [DEBUG][       Thread-611783][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:12:47,226 [DEBUG][       Thread-611783][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:12:47,226 [DEBUG][       Thread-611783][   transport.py][1871] : Compression: none
2025-07-01 17:12:47,226 [DEBUG][       Thread-611783][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:12:47,284 [DEBUG][       Thread-611783][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:12:47,285 [DEBUG][       Thread-611783][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:12:47,285 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:12:47,286 [DEBUG][       Thread-611783][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:12:47,287 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:12:47,344 [DEBUG][       Thread-611783][   transport.py][1871] : userauth is OK
2025-07-01 17:12:47,345 [DEBUG][       Thread-611783][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:12:47,345 [DEBUG][       Thread-611783][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:12:47,345 [DEBUG][       Thread-611783][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:12:47,345 [DEBUG][       Thread-611783][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:12:47,364 [ INFO][       Thread-611783][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:12:47,364 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:12:47,365 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:12:48,433 [DEBUG][       Thread-611783][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:12:48,434 [DEBUG][       Thread-611783][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:12:48,484 [DEBUG][       Thread-611783][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:12:48,484 [DEBUG][       Thread-611783][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:12:48,494 [DEBUG][       Thread-611783][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:12:48,503 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:12:48,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-07-01 17:12:48,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-07-01 17:12:48,521 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:12:48,521 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:12:48,521 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:12:48,529 [DEBUG][       Thread-611783][   transport.py][1871] : EOF in transport thread
2025-07-01 17:12:52,104 [DEBUG][Thread-611785 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:12:58,532 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:12:58,532 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:12:58,532 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:12:58,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-07-01 17:12:59,037 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 12, 40), 10.77, 48.02, 0.0, 33.95, 13.14, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:12:59,037 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:12:40
2025-07-01 17:12:59,123 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:12:59,127 [DEBUG][       Thread-611786][   transport.py][1871] : starting thread (client mode): 0x818f160
2025-07-01 17:12:59,127 [DEBUG][       Thread-611786][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:12:59,147 [DEBUG][       Thread-611786][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:12:59,147 [ INFO][       Thread-611786][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:12:59,150 [DEBUG][       Thread-611786][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:12:59,150 [DEBUG][       Thread-611786][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:12:59,150 [DEBUG][       Thread-611786][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:12:59,150 [DEBUG][       Thread-611786][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:12:59,150 [DEBUG][       Thread-611786][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:12:59,150 [DEBUG][       Thread-611786][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:12:59,150 [DEBUG][       Thread-611786][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:12:59,150 [DEBUG][       Thread-611786][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:12:59,150 [DEBUG][       Thread-611786][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:12:59,150 [DEBUG][       Thread-611786][   transport.py][1871] : client lang: <none>
2025-07-01 17:12:59,150 [DEBUG][       Thread-611786][   transport.py][1871] : server lang: <none>
2025-07-01 17:12:59,150 [DEBUG][       Thread-611786][   transport.py][1871] : kex follows: False
2025-07-01 17:12:59,150 [DEBUG][       Thread-611786][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:12:59,150 [DEBUG][       Thread-611786][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:12:59,150 [DEBUG][       Thread-611786][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:12:59,150 [DEBUG][       Thread-611786][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:12:59,150 [DEBUG][       Thread-611786][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:12:59,150 [DEBUG][       Thread-611786][   transport.py][1871] : Compression: none
2025-07-01 17:12:59,150 [DEBUG][       Thread-611786][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:12:59,163 [DEBUG][       Thread-611786][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:12:59,164 [DEBUG][       Thread-611786][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:12:59,164 [DEBUG][       Thread-611786][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:12:59,164 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:12:59,164 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:12:59,164 [DEBUG][       Thread-611786][   transport.py][1871] : userauth is OK
2025-07-01 17:12:59,189 [ INFO][       Thread-611786][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:12:59,189 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:12:59,878 [DEBUG][       Thread-611786][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:12:59,878 [DEBUG][       Thread-611786][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:12:59,921 [DEBUG][       Thread-611786][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:12:59,921 [DEBUG][       Thread-611786][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:12:59,924 [DEBUG][       Thread-611786][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:12:59,931 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:12:59,931 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:12:59,932 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:12:59,934 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:12:59,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:12:59,940 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:12:59,940 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:12:59,941 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:12:59,941 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.633271 -999.00  +12.90  30.61     52   +3.40 1 2 2 1 1   887    0 9.53 14.28 ----- 33.2 30.6 21.8 43.3 13.8 -18.4 13.6 -18.2 13.4 -17.9 13.8 -18.1
2025-07-01 17:12:59,941 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:12:59,941 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:12:59,941 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.633271
2025-07-01 17:12:59,942 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:12:59,942 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:12:59,943 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:12:59,943 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:12:59,943 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:12:59,943 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:12:40', tmtdew=10.77, humidity=48.02, cloud=0.0, wind=33.95, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:11:54.614', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:12:59,943 [DEBUG][       Thread-611786][   transport.py][1871] : EOF in transport thread
2025-07-01 17:13:00,027 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:13:00,037 [DEBUG][       Thread-611789][   transport.py][1871] : starting thread (client mode): 0x81dacb0
2025-07-01 17:13:00,037 [DEBUG][       Thread-611789][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:13:00,053 [DEBUG][       Thread-611789][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:13:00,053 [ INFO][       Thread-611789][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:13:00,061 [DEBUG][       Thread-611789][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:13:00,061 [DEBUG][       Thread-611789][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:13:00,061 [DEBUG][       Thread-611789][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:13:00,061 [DEBUG][       Thread-611789][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:13:00,061 [DEBUG][       Thread-611789][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:13:00,061 [DEBUG][       Thread-611789][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:13:00,061 [DEBUG][       Thread-611789][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:13:00,062 [DEBUG][       Thread-611789][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:13:00,062 [DEBUG][       Thread-611789][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:13:00,062 [DEBUG][       Thread-611789][   transport.py][1871] : client lang: <none>
2025-07-01 17:13:00,062 [DEBUG][       Thread-611789][   transport.py][1871] : server lang: <none>
2025-07-01 17:13:00,062 [DEBUG][       Thread-611789][   transport.py][1871] : kex follows: False
2025-07-01 17:13:00,062 [DEBUG][       Thread-611789][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:13:00,062 [DEBUG][       Thread-611789][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:13:00,062 [DEBUG][       Thread-611789][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:13:00,062 [DEBUG][       Thread-611789][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:13:00,062 [DEBUG][       Thread-611789][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:13:00,062 [DEBUG][       Thread-611789][   transport.py][1871] : Compression: none
2025-07-01 17:13:00,062 [DEBUG][       Thread-611789][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:13:00,125 [DEBUG][       Thread-611789][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:13:00,126 [DEBUG][       Thread-611789][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:13:00,126 [DEBUG][       Thread-611789][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:13:00,127 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:13:00,127 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:13:00,184 [DEBUG][       Thread-611789][   transport.py][1871] : userauth is OK
2025-07-01 17:13:00,184 [DEBUG][       Thread-611789][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:13:00,184 [DEBUG][       Thread-611789][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:13:00,185 [DEBUG][       Thread-611789][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:13:00,185 [DEBUG][       Thread-611789][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:13:00,204 [ INFO][       Thread-611789][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:13:00,204 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:13:00,204 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:13:01,136 [DEBUG][Thread-611791 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:13:01,278 [DEBUG][       Thread-611789][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:13:01,278 [DEBUG][       Thread-611789][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:13:01,327 [DEBUG][       Thread-611789][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:13:01,327 [DEBUG][       Thread-611789][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:13:01,336 [DEBUG][       Thread-611789][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:13:01,344 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:13:01,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-07-01 17:13:01,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-07-01 17:13:01,360 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:13:01,360 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:13:01,360 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:13:01,368 [DEBUG][       Thread-611789][   transport.py][1871] : EOF in transport thread
2025-07-01 17:13:10,163 [DEBUG][Thread-611792 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:13:11,365 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:13:11,365 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:13:11,365 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:13:11,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-07-01 17:13:11,874 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 12, 40), 10.77, 48.02, 0.0, 33.95, 13.14, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:13:11,874 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:12:40
2025-07-01 17:13:11,959 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:13:11,964 [DEBUG][       Thread-611793][   transport.py][1871] : starting thread (client mode): 0x82b2a70
2025-07-01 17:13:11,964 [DEBUG][       Thread-611793][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:13:11,984 [DEBUG][       Thread-611793][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:13:11,984 [ INFO][       Thread-611793][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:13:11,987 [DEBUG][       Thread-611793][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:13:11,987 [DEBUG][       Thread-611793][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:13:11,987 [DEBUG][       Thread-611793][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:13:11,988 [DEBUG][       Thread-611793][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:13:11,988 [DEBUG][       Thread-611793][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:13:11,988 [DEBUG][       Thread-611793][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:13:11,988 [DEBUG][       Thread-611793][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:13:11,988 [DEBUG][       Thread-611793][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:13:11,988 [DEBUG][       Thread-611793][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:13:11,988 [DEBUG][       Thread-611793][   transport.py][1871] : client lang: <none>
2025-07-01 17:13:11,988 [DEBUG][       Thread-611793][   transport.py][1871] : server lang: <none>
2025-07-01 17:13:11,988 [DEBUG][       Thread-611793][   transport.py][1871] : kex follows: False
2025-07-01 17:13:11,988 [DEBUG][       Thread-611793][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:13:11,988 [DEBUG][       Thread-611793][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:13:11,988 [DEBUG][       Thread-611793][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:13:11,988 [DEBUG][       Thread-611793][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:13:11,988 [DEBUG][       Thread-611793][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:13:11,988 [DEBUG][       Thread-611793][   transport.py][1871] : Compression: none
2025-07-01 17:13:11,988 [DEBUG][       Thread-611793][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:13:12,005 [DEBUG][       Thread-611793][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:13:12,005 [DEBUG][       Thread-611793][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:13:12,006 [DEBUG][       Thread-611793][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:13:12,006 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:13:12,006 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:13:12,007 [DEBUG][       Thread-611793][   transport.py][1871] : userauth is OK
2025-07-01 17:13:12,020 [ INFO][       Thread-611793][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:13:12,021 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:13:12,673 [DEBUG][       Thread-611793][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:13:12,673 [DEBUG][       Thread-611793][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:13:12,717 [DEBUG][       Thread-611793][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:13:12,717 [DEBUG][       Thread-611793][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:13:12,720 [DEBUG][       Thread-611793][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:13:12,732 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:13:12,732 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:13:12,734 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:13:12,736 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:13:12,740 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:13:12,742 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:13:12,743 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:13:12,743 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:13:12,743 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.633965 -999.00  +12.90  37.09     52   +3.40 1 2 2 1 1   887    0 9.90 16.05 ----- 30.2 37.1 14.8 41.4 13.8 -18.4 13.7 -18.3 13.4 -18.1 13.8 -18.4
2025-07-01 17:13:12,743 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:13:12,744 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:13:12,744 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.633965
2025-07-01 17:13:12,744 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:13:12,745 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:13:12,745 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:13:12,745 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:13:12,745 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:13:12,745 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:12:40', tmtdew=10.77, humidity=48.02, cloud=0.0, wind=33.95, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:12:54.576', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:13:12,746 [DEBUG][       Thread-611793][   transport.py][1871] : EOF in transport thread
2025-07-01 17:13:12,828 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:13:12,842 [DEBUG][       Thread-611796][   transport.py][1871] : starting thread (client mode): 0x81a5900
2025-07-01 17:13:12,842 [DEBUG][       Thread-611796][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:13:12,857 [DEBUG][       Thread-611796][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:13:12,857 [ INFO][       Thread-611796][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:13:12,865 [DEBUG][       Thread-611796][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:13:12,865 [DEBUG][       Thread-611796][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:13:12,865 [DEBUG][       Thread-611796][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:13:12,865 [DEBUG][       Thread-611796][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:13:12,865 [DEBUG][       Thread-611796][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:13:12,865 [DEBUG][       Thread-611796][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:13:12,865 [DEBUG][       Thread-611796][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:13:12,865 [DEBUG][       Thread-611796][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:13:12,865 [DEBUG][       Thread-611796][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:13:12,865 [DEBUG][       Thread-611796][   transport.py][1871] : client lang: <none>
2025-07-01 17:13:12,866 [DEBUG][       Thread-611796][   transport.py][1871] : server lang: <none>
2025-07-01 17:13:12,866 [DEBUG][       Thread-611796][   transport.py][1871] : kex follows: False
2025-07-01 17:13:12,866 [DEBUG][       Thread-611796][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:13:12,866 [DEBUG][       Thread-611796][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:13:12,866 [DEBUG][       Thread-611796][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:13:12,866 [DEBUG][       Thread-611796][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:13:12,866 [DEBUG][       Thread-611796][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:13:12,866 [DEBUG][       Thread-611796][   transport.py][1871] : Compression: none
2025-07-01 17:13:12,866 [DEBUG][       Thread-611796][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:13:12,924 [DEBUG][       Thread-611796][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:13:12,925 [DEBUG][       Thread-611796][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:13:12,925 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:13:12,926 [DEBUG][       Thread-611796][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:13:12,927 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:13:12,983 [DEBUG][       Thread-611796][   transport.py][1871] : userauth is OK
2025-07-01 17:13:12,984 [DEBUG][       Thread-611796][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:13:12,984 [DEBUG][       Thread-611796][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:13:12,984 [DEBUG][       Thread-611796][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:13:12,984 [DEBUG][       Thread-611796][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:13:13,003 [ INFO][       Thread-611796][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:13:13,003 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:13:13,003 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:13:14,006 [DEBUG][       Thread-611796][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:13:14,006 [DEBUG][       Thread-611796][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:13:14,055 [DEBUG][       Thread-611796][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:13:14,055 [DEBUG][       Thread-611796][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:13:14,064 [DEBUG][       Thread-611796][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:13:14,072 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:13:14,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')
2025-07-01 17:13:14,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-07-01 17:13:14,087 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:13:14,087 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:13:14,087 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:13:14,095 [DEBUG][       Thread-611796][   transport.py][1871] : EOF in transport thread
2025-07-01 17:13:19,184 [DEBUG][Thread-611798 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:13:24,096 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:13:24,096 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:13:24,096 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:13:24,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-07-01 17:13:24,598 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 13, 12), 10.78, 47.96, 0.0, 35.82, 13.1, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:13:24,598 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:13:12
2025-07-01 17:13:24,683 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:13:24,687 [DEBUG][       Thread-611799][   transport.py][1871] : starting thread (client mode): 0x81a6680
2025-07-01 17:13:24,687 [DEBUG][       Thread-611799][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:13:24,707 [DEBUG][       Thread-611799][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:13:24,707 [ INFO][       Thread-611799][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:13:24,711 [DEBUG][       Thread-611799][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:13:24,711 [DEBUG][       Thread-611799][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:13:24,711 [DEBUG][       Thread-611799][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:13:24,711 [DEBUG][       Thread-611799][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:13:24,711 [DEBUG][       Thread-611799][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:13:24,711 [DEBUG][       Thread-611799][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:13:24,711 [DEBUG][       Thread-611799][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:13:24,711 [DEBUG][       Thread-611799][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:13:24,711 [DEBUG][       Thread-611799][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:13:24,711 [DEBUG][       Thread-611799][   transport.py][1871] : client lang: <none>
2025-07-01 17:13:24,711 [DEBUG][       Thread-611799][   transport.py][1871] : server lang: <none>
2025-07-01 17:13:24,711 [DEBUG][       Thread-611799][   transport.py][1871] : kex follows: False
2025-07-01 17:13:24,711 [DEBUG][       Thread-611799][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:13:24,711 [DEBUG][       Thread-611799][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:13:24,711 [DEBUG][       Thread-611799][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:13:24,711 [DEBUG][       Thread-611799][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:13:24,711 [DEBUG][       Thread-611799][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:13:24,711 [DEBUG][       Thread-611799][   transport.py][1871] : Compression: none
2025-07-01 17:13:24,711 [DEBUG][       Thread-611799][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:13:24,728 [DEBUG][       Thread-611799][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:13:24,729 [DEBUG][       Thread-611799][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:13:24,729 [DEBUG][       Thread-611799][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:13:24,730 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:13:24,730 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:13:24,731 [DEBUG][       Thread-611799][   transport.py][1871] : userauth is OK
2025-07-01 17:13:24,755 [ INFO][       Thread-611799][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:13:24,756 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:13:25,616 [DEBUG][       Thread-611799][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:13:25,616 [DEBUG][       Thread-611799][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:13:25,657 [DEBUG][       Thread-611799][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:13:25,657 [DEBUG][       Thread-611799][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:13:25,659 [DEBUG][       Thread-611799][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:13:25,668 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:13:25,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:13:25,670 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:13:25,671 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:13:25,676 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:13:25,677 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:13:25,677 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:13:25,678 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:13:25,678 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.633965 -999.00  +12.90  37.09     52   +3.40 1 2 2 1 1   887    0 9.90 16.05 ----- 30.2 37.1 14.8 41.4 13.8 -18.4 13.7 -18.3 13.4 -18.1 13.8 -18.4
2025-07-01 17:13:25,678 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:13:25,678 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:13:25,678 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.633965
2025-07-01 17:13:25,679 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:13:25,679 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:13:25,679 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:13:25,679 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:13:25,679 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:13:25,680 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:13:12', tmtdew=10.78, humidity=47.96, cloud=0.0, wind=35.82, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:12:54.576', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:13:25,681 [DEBUG][       Thread-611799][   transport.py][1871] : EOF in transport thread
2025-07-01 17:13:25,763 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:13:25,775 [DEBUG][       Thread-611802][   transport.py][1871] : starting thread (client mode): 0x82b2050
2025-07-01 17:13:25,775 [DEBUG][       Thread-611802][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:13:25,790 [DEBUG][       Thread-611802][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:13:25,790 [ INFO][       Thread-611802][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:13:25,798 [DEBUG][       Thread-611802][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:13:25,798 [DEBUG][       Thread-611802][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:13:25,798 [DEBUG][       Thread-611802][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:13:25,798 [DEBUG][       Thread-611802][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:13:25,798 [DEBUG][       Thread-611802][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:13:25,798 [DEBUG][       Thread-611802][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:13:25,798 [DEBUG][       Thread-611802][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:13:25,798 [DEBUG][       Thread-611802][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:13:25,798 [DEBUG][       Thread-611802][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:13:25,798 [DEBUG][       Thread-611802][   transport.py][1871] : client lang: <none>
2025-07-01 17:13:25,798 [DEBUG][       Thread-611802][   transport.py][1871] : server lang: <none>
2025-07-01 17:13:25,798 [DEBUG][       Thread-611802][   transport.py][1871] : kex follows: False
2025-07-01 17:13:25,798 [DEBUG][       Thread-611802][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:13:25,798 [DEBUG][       Thread-611802][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:13:25,798 [DEBUG][       Thread-611802][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:13:25,799 [DEBUG][       Thread-611802][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:13:25,799 [DEBUG][       Thread-611802][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:13:25,799 [DEBUG][       Thread-611802][   transport.py][1871] : Compression: none
2025-07-01 17:13:25,799 [DEBUG][       Thread-611802][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:13:25,855 [DEBUG][       Thread-611802][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:13:25,856 [DEBUG][       Thread-611802][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:13:25,857 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:13:25,857 [DEBUG][       Thread-611802][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:13:25,858 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:13:25,915 [DEBUG][       Thread-611802][   transport.py][1871] : userauth is OK
2025-07-01 17:13:25,916 [DEBUG][       Thread-611802][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:13:25,916 [DEBUG][       Thread-611802][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:13:25,916 [DEBUG][       Thread-611802][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:13:25,916 [DEBUG][       Thread-611802][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:13:25,935 [ INFO][       Thread-611802][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:13:25,935 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:13:25,936 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:13:27,019 [DEBUG][       Thread-611802][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:13:27,019 [DEBUG][       Thread-611802][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:13:27,068 [DEBUG][       Thread-611802][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:13:27,068 [DEBUG][       Thread-611802][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:13:27,078 [DEBUG][       Thread-611802][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:13:27,087 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:13:27,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-07-01 17:13:27,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-07-01 17:13:27,103 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:13:27,103 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:13:27,103 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:13:27,111 [DEBUG][       Thread-611802][   transport.py][1871] : EOF in transport thread
2025-07-01 17:13:28,206 [DEBUG][Thread-611804 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:13:37,108 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:13:37,108 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:13:37,108 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:13:37,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-07-01 17:13:37,244 [DEBUG][Thread-611805 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:13:37,607 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 13, 12), 10.78, 47.96, 0.0, 35.82, 13.1, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:13:37,607 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:13:12
2025-07-01 17:13:37,693 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:13:37,699 [DEBUG][       Thread-611806][   transport.py][1871] : starting thread (client mode): 0x818f3a0
2025-07-01 17:13:37,699 [DEBUG][       Thread-611806][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:13:37,721 [DEBUG][       Thread-611806][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:13:37,721 [ INFO][       Thread-611806][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:13:37,724 [DEBUG][       Thread-611806][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:13:37,724 [DEBUG][       Thread-611806][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:13:37,724 [DEBUG][       Thread-611806][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:13:37,724 [DEBUG][       Thread-611806][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:13:37,724 [DEBUG][       Thread-611806][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:13:37,724 [DEBUG][       Thread-611806][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:13:37,724 [DEBUG][       Thread-611806][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:13:37,724 [DEBUG][       Thread-611806][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:13:37,724 [DEBUG][       Thread-611806][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:13:37,725 [DEBUG][       Thread-611806][   transport.py][1871] : client lang: <none>
2025-07-01 17:13:37,725 [DEBUG][       Thread-611806][   transport.py][1871] : server lang: <none>
2025-07-01 17:13:37,725 [DEBUG][       Thread-611806][   transport.py][1871] : kex follows: False
2025-07-01 17:13:37,725 [DEBUG][       Thread-611806][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:13:37,725 [DEBUG][       Thread-611806][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:13:37,725 [DEBUG][       Thread-611806][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:13:37,725 [DEBUG][       Thread-611806][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:13:37,725 [DEBUG][       Thread-611806][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:13:37,725 [DEBUG][       Thread-611806][   transport.py][1871] : Compression: none
2025-07-01 17:13:37,725 [DEBUG][       Thread-611806][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:13:37,742 [DEBUG][       Thread-611806][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:13:37,742 [DEBUG][       Thread-611806][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:13:37,743 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:13:37,743 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:13:37,743 [DEBUG][       Thread-611806][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:13:37,744 [DEBUG][       Thread-611806][   transport.py][1871] : userauth is OK
2025-07-01 17:13:37,768 [ INFO][       Thread-611806][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:13:37,769 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:13:38,402 [DEBUG][       Thread-611806][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:13:38,402 [DEBUG][       Thread-611806][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:13:38,444 [DEBUG][       Thread-611806][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:13:38,444 [DEBUG][       Thread-611806][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:13:38,447 [DEBUG][       Thread-611806][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:13:38,461 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:13:38,461 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:13:38,462 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:13:38,463 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:13:38,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:13:38,466 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:13:38,466 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:13:38,466 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:13:38,466 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.634313 -999.00  +12.90  26.81     52   +3.50 1 2 1 1 1   887    0 9.78 16.57 ----- 36.9 26.8 8.6 41.8 13.8 -18.5 13.6 -18.4 13.4 -18.3 13.8 -18.3
2025-07-01 17:13:38,466 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:13:38,466 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:13:38,466 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.634313
2025-07-01 17:13:38,466 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:13:38,467 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:13:38,467 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:13:38,467 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:13:38,467 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:13:38,467 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:13:12', tmtdew=10.78, humidity=47.96, cloud=0.0, wind=35.82, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:13:24.643', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:13:38,467 [DEBUG][       Thread-611806][   transport.py][1871] : EOF in transport thread
2025-07-01 17:13:38,541 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:13:38,551 [DEBUG][       Thread-611809][   transport.py][1871] : starting thread (client mode): 0x8171b40
2025-07-01 17:13:38,551 [DEBUG][       Thread-611809][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:13:38,566 [DEBUG][       Thread-611809][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:13:38,566 [ INFO][       Thread-611809][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:13:38,574 [DEBUG][       Thread-611809][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:13:38,574 [DEBUG][       Thread-611809][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:13:38,574 [DEBUG][       Thread-611809][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:13:38,574 [DEBUG][       Thread-611809][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:13:38,574 [DEBUG][       Thread-611809][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:13:38,574 [DEBUG][       Thread-611809][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:13:38,574 [DEBUG][       Thread-611809][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:13:38,574 [DEBUG][       Thread-611809][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:13:38,574 [DEBUG][       Thread-611809][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:13:38,574 [DEBUG][       Thread-611809][   transport.py][1871] : client lang: <none>
2025-07-01 17:13:38,574 [DEBUG][       Thread-611809][   transport.py][1871] : server lang: <none>
2025-07-01 17:13:38,574 [DEBUG][       Thread-611809][   transport.py][1871] : kex follows: False
2025-07-01 17:13:38,574 [DEBUG][       Thread-611809][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:13:38,574 [DEBUG][       Thread-611809][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:13:38,574 [DEBUG][       Thread-611809][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:13:38,574 [DEBUG][       Thread-611809][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:13:38,574 [DEBUG][       Thread-611809][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:13:38,574 [DEBUG][       Thread-611809][   transport.py][1871] : Compression: none
2025-07-01 17:13:38,574 [DEBUG][       Thread-611809][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:13:38,630 [DEBUG][       Thread-611809][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:13:38,630 [DEBUG][       Thread-611809][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:13:38,630 [DEBUG][       Thread-611809][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:13:38,630 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:13:38,630 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:13:38,687 [DEBUG][       Thread-611809][   transport.py][1871] : userauth is OK
2025-07-01 17:13:38,687 [DEBUG][       Thread-611809][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:13:38,687 [DEBUG][       Thread-611809][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:13:38,687 [DEBUG][       Thread-611809][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:13:38,687 [DEBUG][       Thread-611809][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:13:38,701 [ INFO][       Thread-611809][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:13:38,701 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:13:38,701 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:13:39,717 [DEBUG][       Thread-611809][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:13:39,717 [DEBUG][       Thread-611809][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:13:39,767 [DEBUG][       Thread-611809][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:13:39,767 [DEBUG][       Thread-611809][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:13:39,776 [DEBUG][       Thread-611809][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:13:39,784 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:13:39,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-07-01 17:13:39,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-07-01 17:13:39,801 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:13:39,801 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:13:39,801 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:13:39,811 [DEBUG][       Thread-611809][   transport.py][1871] : EOF in transport thread
2025-07-01 17:13:40,055 [DEBUG][Thread-611811 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:13:46,260 [DEBUG][Thread-611812 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:13:49,811 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:13:49,812 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:13:49,812 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:13:49,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-07-01 17:13:50,308 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 13, 44), 10.77, 47.99, 0.0, 28.44, 13.12, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:13:50,308 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:13:44
2025-07-01 17:13:50,391 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:13:50,396 [DEBUG][       Thread-611813][   transport.py][1871] : starting thread (client mode): 0x818eaa0
2025-07-01 17:13:50,396 [DEBUG][       Thread-611813][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:13:50,416 [DEBUG][       Thread-611813][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:13:50,416 [ INFO][       Thread-611813][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:13:50,419 [DEBUG][       Thread-611813][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:13:50,419 [DEBUG][       Thread-611813][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:13:50,419 [DEBUG][       Thread-611813][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:13:50,419 [DEBUG][       Thread-611813][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:13:50,419 [DEBUG][       Thread-611813][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:13:50,419 [DEBUG][       Thread-611813][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:13:50,419 [DEBUG][       Thread-611813][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:13:50,419 [DEBUG][       Thread-611813][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:13:50,419 [DEBUG][       Thread-611813][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:13:50,419 [DEBUG][       Thread-611813][   transport.py][1871] : client lang: <none>
2025-07-01 17:13:50,419 [DEBUG][       Thread-611813][   transport.py][1871] : server lang: <none>
2025-07-01 17:13:50,419 [DEBUG][       Thread-611813][   transport.py][1871] : kex follows: False
2025-07-01 17:13:50,419 [DEBUG][       Thread-611813][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:13:50,419 [DEBUG][       Thread-611813][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:13:50,419 [DEBUG][       Thread-611813][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:13:50,419 [DEBUG][       Thread-611813][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:13:50,420 [DEBUG][       Thread-611813][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:13:50,420 [DEBUG][       Thread-611813][   transport.py][1871] : Compression: none
2025-07-01 17:13:50,420 [DEBUG][       Thread-611813][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:13:50,437 [DEBUG][       Thread-611813][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:13:50,437 [DEBUG][       Thread-611813][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:13:50,438 [DEBUG][       Thread-611813][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:13:50,438 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:13:50,438 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:13:50,439 [DEBUG][       Thread-611813][   transport.py][1871] : userauth is OK
2025-07-01 17:13:50,464 [ INFO][       Thread-611813][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:13:50,465 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:13:51,287 [DEBUG][       Thread-611813][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:13:51,287 [DEBUG][       Thread-611813][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:13:51,329 [DEBUG][       Thread-611813][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:13:51,329 [DEBUG][       Thread-611813][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:13:51,333 [DEBUG][       Thread-611813][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:13:51,345 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:13:51,346 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:13:51,348 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:13:51,350 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:13:51,356 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:13:51,358 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:13:51,358 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:13:51,359 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:13:51,359 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.634313 -999.00  +12.90  26.81     52   +3.50 1 2 1 1 1   887    0 9.78 16.57 ----- 36.9 26.8 8.6 41.8 13.8 -18.5 13.6 -18.4 13.4 -18.3 13.8 -18.3
2025-07-01 17:13:51,359 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:13:51,359 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:13:51,359 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.634313
2025-07-01 17:13:51,360 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:13:51,360 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:13:51,360 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:13:51,360 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:13:51,361 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:13:51,361 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:13:44', tmtdew=10.77, humidity=47.99, cloud=0.0, wind=28.44, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:13:24.643', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:13:51,361 [DEBUG][       Thread-611813][   transport.py][1871] : EOF in transport thread
2025-07-01 17:13:51,444 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:13:51,455 [DEBUG][       Thread-611816][   transport.py][1871] : starting thread (client mode): 0x8173310
2025-07-01 17:13:51,455 [DEBUG][       Thread-611816][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:13:51,470 [DEBUG][       Thread-611816][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:13:51,470 [ INFO][       Thread-611816][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:13:51,478 [DEBUG][       Thread-611816][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:13:51,478 [DEBUG][       Thread-611816][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:13:51,478 [DEBUG][       Thread-611816][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:13:51,478 [DEBUG][       Thread-611816][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:13:51,478 [DEBUG][       Thread-611816][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:13:51,478 [DEBUG][       Thread-611816][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:13:51,478 [DEBUG][       Thread-611816][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:13:51,478 [DEBUG][       Thread-611816][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:13:51,478 [DEBUG][       Thread-611816][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:13:51,478 [DEBUG][       Thread-611816][   transport.py][1871] : client lang: <none>
2025-07-01 17:13:51,478 [DEBUG][       Thread-611816][   transport.py][1871] : server lang: <none>
2025-07-01 17:13:51,478 [DEBUG][       Thread-611816][   transport.py][1871] : kex follows: False
2025-07-01 17:13:51,478 [DEBUG][       Thread-611816][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:13:51,479 [DEBUG][       Thread-611816][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:13:51,479 [DEBUG][       Thread-611816][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:13:51,479 [DEBUG][       Thread-611816][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:13:51,479 [DEBUG][       Thread-611816][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:13:51,479 [DEBUG][       Thread-611816][   transport.py][1871] : Compression: none
2025-07-01 17:13:51,479 [DEBUG][       Thread-611816][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:13:51,535 [DEBUG][       Thread-611816][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:13:51,536 [DEBUG][       Thread-611816][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:13:51,536 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:13:51,537 [DEBUG][       Thread-611816][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:13:51,538 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:13:51,591 [DEBUG][       Thread-611816][   transport.py][1871] : userauth is OK
2025-07-01 17:13:51,591 [DEBUG][       Thread-611816][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:13:51,591 [DEBUG][       Thread-611816][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:13:51,591 [DEBUG][       Thread-611816][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:13:51,592 [DEBUG][       Thread-611816][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:13:51,610 [ INFO][       Thread-611816][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:13:51,611 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:13:51,611 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:13:52,660 [DEBUG][       Thread-611816][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:13:52,660 [DEBUG][       Thread-611816][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:13:52,707 [DEBUG][       Thread-611816][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:13:52,708 [DEBUG][       Thread-611816][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:13:52,717 [DEBUG][       Thread-611816][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:13:52,725 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:13:52,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-07-01 17:13:52,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-07-01 17:13:52,743 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:13:52,744 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:13:52,744 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:13:52,752 [DEBUG][       Thread-611816][   transport.py][1871] : EOF in transport thread
2025-07-01 17:13:55,279 [DEBUG][Thread-611818 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:14:02,755 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:14:02,755 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:14:02,755 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:14:02,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-07-01 17:14:03,264 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 13, 44), 10.77, 47.99, 0.0, 28.44, 13.12, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:14:03,264 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:13:44
2025-07-01 17:14:03,347 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:14:03,353 [DEBUG][       Thread-611819][   transport.py][1871] : starting thread (client mode): 0x818f5e0
2025-07-01 17:14:03,353 [DEBUG][       Thread-611819][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:14:03,373 [DEBUG][       Thread-611819][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:14:03,373 [ INFO][       Thread-611819][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:14:03,377 [DEBUG][       Thread-611819][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:14:03,377 [DEBUG][       Thread-611819][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:14:03,377 [DEBUG][       Thread-611819][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:14:03,377 [DEBUG][       Thread-611819][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:14:03,377 [DEBUG][       Thread-611819][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:14:03,377 [DEBUG][       Thread-611819][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:14:03,377 [DEBUG][       Thread-611819][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:14:03,377 [DEBUG][       Thread-611819][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:14:03,377 [DEBUG][       Thread-611819][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:14:03,377 [DEBUG][       Thread-611819][   transport.py][1871] : client lang: <none>
2025-07-01 17:14:03,377 [DEBUG][       Thread-611819][   transport.py][1871] : server lang: <none>
2025-07-01 17:14:03,377 [DEBUG][       Thread-611819][   transport.py][1871] : kex follows: False
2025-07-01 17:14:03,377 [DEBUG][       Thread-611819][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:14:03,378 [DEBUG][       Thread-611819][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:14:03,378 [DEBUG][       Thread-611819][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:14:03,378 [DEBUG][       Thread-611819][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:14:03,378 [DEBUG][       Thread-611819][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:14:03,378 [DEBUG][       Thread-611819][   transport.py][1871] : Compression: none
2025-07-01 17:14:03,378 [DEBUG][       Thread-611819][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:14:03,395 [DEBUG][       Thread-611819][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:14:03,395 [DEBUG][       Thread-611819][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:14:03,396 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:14:03,396 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:14:03,397 [DEBUG][       Thread-611819][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:14:03,397 [DEBUG][       Thread-611819][   transport.py][1871] : userauth is OK
2025-07-01 17:14:03,410 [ INFO][       Thread-611819][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:14:03,410 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:14:04,216 [DEBUG][       Thread-611819][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:14:04,216 [DEBUG][       Thread-611819][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:14:04,257 [DEBUG][       Thread-611819][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:14:04,257 [DEBUG][       Thread-611819][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:14:04,260 [DEBUG][       Thread-611819][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:14:04,271 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:14:04,271 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:14:04,273 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:14:04,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:14:04,279 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:14:04,281 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:14:04,281 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:14:04,282 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:14:04,282 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.634313 -999.00  +12.90  26.81     52   +3.50 1 2 1 1 1   887    0 9.78 16.57 ----- 36.9 26.8 8.6 41.8 13.8 -18.5 13.6 -18.4 13.4 -18.3 13.8 -18.3
2025-07-01 17:14:04,282 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:14:04,282 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:14:04,282 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.634313
2025-07-01 17:14:04,283 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:14:04,283 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:14:04,283 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:14:04,283 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:14:04,283 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:14:04,283 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:13:44', tmtdew=10.77, humidity=47.99, cloud=0.0, wind=28.44, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:13:24.643', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:14:04,284 [DEBUG][       Thread-611819][   transport.py][1871] : EOF in transport thread
2025-07-01 17:14:04,310 [DEBUG][Thread-611822 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:14:04,357 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:14:04,366 [DEBUG][       Thread-611823][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 17:14:04,366 [DEBUG][       Thread-611823][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:14:04,381 [DEBUG][       Thread-611823][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:14:04,381 [ INFO][       Thread-611823][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:14:04,388 [DEBUG][       Thread-611823][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:14:04,388 [DEBUG][       Thread-611823][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:14:04,388 [DEBUG][       Thread-611823][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:14:04,389 [DEBUG][       Thread-611823][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:14:04,389 [DEBUG][       Thread-611823][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:14:04,389 [DEBUG][       Thread-611823][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:14:04,389 [DEBUG][       Thread-611823][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:14:04,389 [DEBUG][       Thread-611823][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:14:04,389 [DEBUG][       Thread-611823][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:14:04,389 [DEBUG][       Thread-611823][   transport.py][1871] : client lang: <none>
2025-07-01 17:14:04,389 [DEBUG][       Thread-611823][   transport.py][1871] : server lang: <none>
2025-07-01 17:14:04,389 [DEBUG][       Thread-611823][   transport.py][1871] : kex follows: False
2025-07-01 17:14:04,389 [DEBUG][       Thread-611823][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:14:04,389 [DEBUG][       Thread-611823][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:14:04,389 [DEBUG][       Thread-611823][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:14:04,389 [DEBUG][       Thread-611823][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:14:04,389 [DEBUG][       Thread-611823][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:14:04,389 [DEBUG][       Thread-611823][   transport.py][1871] : Compression: none
2025-07-01 17:14:04,389 [DEBUG][       Thread-611823][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:14:04,446 [DEBUG][       Thread-611823][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:14:04,446 [DEBUG][       Thread-611823][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:14:04,446 [DEBUG][       Thread-611823][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:14:04,446 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:14:04,446 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:14:04,502 [DEBUG][       Thread-611823][   transport.py][1871] : userauth is OK
2025-07-01 17:14:04,502 [DEBUG][       Thread-611823][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:14:04,503 [DEBUG][       Thread-611823][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:14:04,503 [DEBUG][       Thread-611823][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:14:04,503 [DEBUG][       Thread-611823][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:14:04,516 [ INFO][       Thread-611823][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:14:04,516 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:14:04,517 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:14:05,514 [DEBUG][       Thread-611823][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:14:05,514 [DEBUG][       Thread-611823][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:14:05,566 [DEBUG][       Thread-611823][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:14:05,567 [DEBUG][       Thread-611823][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:14:05,576 [DEBUG][       Thread-611823][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:14:05,588 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:14:05,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-07-01 17:14:05,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-07-01 17:14:05,608 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:14:05,608 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:14:05,608 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:14:05,618 [DEBUG][       Thread-611823][   transport.py][1871] : EOF in transport thread
2025-07-01 17:14:13,331 [DEBUG][Thread-611825 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:14:15,619 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:14:15,619 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:14:15,619 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:14:15,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-07-01 17:14:16,120 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 13, 44), 10.77, 47.99, 0.0, 28.44, 13.12, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:14:16,120 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:13:44
2025-07-01 17:14:16,207 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:14:16,211 [DEBUG][       Thread-611826][   transport.py][1871] : starting thread (client mode): 0x818d750
2025-07-01 17:14:16,211 [DEBUG][       Thread-611826][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:14:16,231 [DEBUG][       Thread-611826][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:14:16,231 [ INFO][       Thread-611826][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:14:16,234 [DEBUG][       Thread-611826][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:14:16,234 [DEBUG][       Thread-611826][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:14:16,234 [DEBUG][       Thread-611826][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:14:16,234 [DEBUG][       Thread-611826][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:14:16,234 [DEBUG][       Thread-611826][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:14:16,234 [DEBUG][       Thread-611826][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:14:16,234 [DEBUG][       Thread-611826][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:14:16,234 [DEBUG][       Thread-611826][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:14:16,234 [DEBUG][       Thread-611826][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:14:16,234 [DEBUG][       Thread-611826][   transport.py][1871] : client lang: <none>
2025-07-01 17:14:16,234 [DEBUG][       Thread-611826][   transport.py][1871] : server lang: <none>
2025-07-01 17:14:16,234 [DEBUG][       Thread-611826][   transport.py][1871] : kex follows: False
2025-07-01 17:14:16,234 [DEBUG][       Thread-611826][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:14:16,234 [DEBUG][       Thread-611826][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:14:16,234 [DEBUG][       Thread-611826][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:14:16,234 [DEBUG][       Thread-611826][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:14:16,234 [DEBUG][       Thread-611826][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:14:16,235 [DEBUG][       Thread-611826][   transport.py][1871] : Compression: none
2025-07-01 17:14:16,235 [DEBUG][       Thread-611826][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:14:16,249 [DEBUG][       Thread-611826][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:14:16,249 [DEBUG][       Thread-611826][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:14:16,249 [DEBUG][       Thread-611826][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:14:16,249 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:14:16,249 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:14:16,250 [DEBUG][       Thread-611826][   transport.py][1871] : userauth is OK
2025-07-01 17:14:16,274 [ INFO][       Thread-611826][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:14:16,274 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:14:16,905 [DEBUG][       Thread-611826][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:14:16,905 [DEBUG][       Thread-611826][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:14:16,948 [DEBUG][       Thread-611826][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:14:16,948 [DEBUG][       Thread-611826][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:14:16,951 [DEBUG][       Thread-611826][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:14:16,962 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:14:16,962 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:14:16,963 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:14:16,964 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:14:16,967 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:14:16,967 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:14:16,968 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:14:16,968 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:14:16,968 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.634660 -999.00  +12.90  23.16     52   +3.40 1 2 1 1 1   887    0 9.75 16.82 ----- 27.9 23.2 356.2 49.4 13.8 -18.5 13.6 -18.5 13.4 -18.3 13.8 -18.3
2025-07-01 17:14:16,968 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:14:16,968 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:14:16,968 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.634660
2025-07-01 17:14:16,968 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:14:16,968 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:14:16,968 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:14:16,968 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:14:16,968 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:14:16,968 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:13:44', tmtdew=10.77, humidity=47.99, cloud=0.0, wind=28.44, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:13:54.624', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:14:16,969 [DEBUG][       Thread-611826][   transport.py][1871] : EOF in transport thread
2025-07-01 17:14:17,042 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:14:17,054 [DEBUG][       Thread-611829][   transport.py][1871] : starting thread (client mode): 0x82b3a30
2025-07-01 17:14:17,054 [DEBUG][       Thread-611829][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:14:17,069 [DEBUG][       Thread-611829][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:14:17,069 [ INFO][       Thread-611829][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:14:17,076 [DEBUG][       Thread-611829][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:14:17,076 [DEBUG][       Thread-611829][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:14:17,076 [DEBUG][       Thread-611829][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:14:17,076 [DEBUG][       Thread-611829][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:14:17,076 [DEBUG][       Thread-611829][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:14:17,076 [DEBUG][       Thread-611829][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:14:17,076 [DEBUG][       Thread-611829][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:14:17,076 [DEBUG][       Thread-611829][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:14:17,076 [DEBUG][       Thread-611829][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:14:17,076 [DEBUG][       Thread-611829][   transport.py][1871] : client lang: <none>
2025-07-01 17:14:17,077 [DEBUG][       Thread-611829][   transport.py][1871] : server lang: <none>
2025-07-01 17:14:17,077 [DEBUG][       Thread-611829][   transport.py][1871] : kex follows: False
2025-07-01 17:14:17,077 [DEBUG][       Thread-611829][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:14:17,077 [DEBUG][       Thread-611829][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:14:17,077 [DEBUG][       Thread-611829][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:14:17,077 [DEBUG][       Thread-611829][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:14:17,077 [DEBUG][       Thread-611829][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:14:17,077 [DEBUG][       Thread-611829][   transport.py][1871] : Compression: none
2025-07-01 17:14:17,077 [DEBUG][       Thread-611829][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:14:17,134 [DEBUG][       Thread-611829][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:14:17,134 [DEBUG][       Thread-611829][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:14:17,135 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:14:17,135 [DEBUG][       Thread-611829][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:14:17,135 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:14:17,199 [DEBUG][       Thread-611829][   transport.py][1871] : userauth is OK
2025-07-01 17:14:17,199 [DEBUG][       Thread-611829][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:14:17,199 [DEBUG][       Thread-611829][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:14:17,199 [DEBUG][       Thread-611829][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:14:17,199 [DEBUG][       Thread-611829][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:14:17,214 [ INFO][       Thread-611829][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:14:17,214 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:14:17,214 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:14:18,233 [DEBUG][       Thread-611829][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:14:18,233 [DEBUG][       Thread-611829][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:14:18,283 [DEBUG][       Thread-611829][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:14:18,283 [DEBUG][       Thread-611829][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:14:18,292 [DEBUG][       Thread-611829][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:14:18,308 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:14: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-07-01 17:14:18,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-07-01 17:14:18,326 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:14:18,326 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:14:18,326 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:14:18,336 [DEBUG][       Thread-611829][   transport.py][1871] : EOF in transport thread
2025-07-01 17:14:22,351 [DEBUG][Thread-611831 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:14:28,336 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:14:28,337 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:14:28,337 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:14:28,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-07-01 17:14:28,826 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 14, 16), 10.73, 48.03, 0.0, 39.77, 13.08, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:14:28,827 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:14:16
2025-07-01 17:14:28,909 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:14:28,915 [DEBUG][       Thread-611832][   transport.py][1871] : starting thread (client mode): 0x82b26b0
2025-07-01 17:14:28,915 [DEBUG][       Thread-611832][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:14:28,935 [DEBUG][       Thread-611832][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:14:28,935 [ INFO][       Thread-611832][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:14:28,938 [DEBUG][       Thread-611832][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:14:28,939 [DEBUG][       Thread-611832][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:14:28,939 [DEBUG][       Thread-611832][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:14:28,939 [DEBUG][       Thread-611832][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:14:28,939 [DEBUG][       Thread-611832][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:14:28,939 [DEBUG][       Thread-611832][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:14:28,939 [DEBUG][       Thread-611832][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:14:28,939 [DEBUG][       Thread-611832][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:14:28,939 [DEBUG][       Thread-611832][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:14:28,939 [DEBUG][       Thread-611832][   transport.py][1871] : client lang: <none>
2025-07-01 17:14:28,939 [DEBUG][       Thread-611832][   transport.py][1871] : server lang: <none>
2025-07-01 17:14:28,939 [DEBUG][       Thread-611832][   transport.py][1871] : kex follows: False
2025-07-01 17:14:28,939 [DEBUG][       Thread-611832][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:14:28,939 [DEBUG][       Thread-611832][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:14:28,939 [DEBUG][       Thread-611832][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:14:28,939 [DEBUG][       Thread-611832][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:14:28,939 [DEBUG][       Thread-611832][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:14:28,939 [DEBUG][       Thread-611832][   transport.py][1871] : Compression: none
2025-07-01 17:14:28,939 [DEBUG][       Thread-611832][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:14:28,955 [DEBUG][       Thread-611832][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:14:28,956 [DEBUG][       Thread-611832][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:14:28,956 [DEBUG][       Thread-611832][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:14:28,957 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:14:28,957 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:14:29,001 [DEBUG][       Thread-611832][   transport.py][1871] : userauth is OK
2025-07-01 17:14:29,025 [ INFO][       Thread-611832][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:14:29,026 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:14:29,816 [DEBUG][       Thread-611832][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:14:29,817 [DEBUG][       Thread-611832][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:14:29,861 [DEBUG][       Thread-611832][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:14:29,861 [DEBUG][       Thread-611832][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:14:29,865 [DEBUG][       Thread-611832][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:14:29,876 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:14:29,876 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:14:29,878 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:14:29,880 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:14:29,886 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:14:29,888 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:14:29,888 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:14:29,889 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:14:29,889 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.634660 -999.00  +12.90  23.16     52   +3.40 1 2 1 1 1   887    0 9.75 16.82 ----- 27.9 23.2 356.2 49.4 13.8 -18.5 13.6 -18.5 13.4 -18.3 13.8 -18.3
2025-07-01 17:14:29,889 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:14:29,889 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:14:29,889 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.634660
2025-07-01 17:14:29,890 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:14:29,890 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:14:29,890 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:14:29,891 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:14:29,891 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:14:29,891 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:14:16', tmtdew=10.73, humidity=48.03, cloud=0.0, wind=39.77, temperature=13.08, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:13:54.624', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:14:29,891 [DEBUG][       Thread-611832][   transport.py][1871] : EOF in transport thread
2025-07-01 17:14:29,975 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:14:29,987 [DEBUG][       Thread-611835][   transport.py][1871] : starting thread (client mode): 0x81c9120
2025-07-01 17:14:29,987 [DEBUG][       Thread-611835][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:14:30,003 [DEBUG][       Thread-611835][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:14:30,003 [ INFO][       Thread-611835][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:14:30,011 [DEBUG][       Thread-611835][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:14:30,011 [DEBUG][       Thread-611835][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:14:30,011 [DEBUG][       Thread-611835][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:14:30,011 [DEBUG][       Thread-611835][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:14:30,011 [DEBUG][       Thread-611835][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:14:30,012 [DEBUG][       Thread-611835][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:14:30,012 [DEBUG][       Thread-611835][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:14:30,012 [DEBUG][       Thread-611835][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:14:30,012 [DEBUG][       Thread-611835][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:14:30,012 [DEBUG][       Thread-611835][   transport.py][1871] : client lang: <none>
2025-07-01 17:14:30,012 [DEBUG][       Thread-611835][   transport.py][1871] : server lang: <none>
2025-07-01 17:14:30,012 [DEBUG][       Thread-611835][   transport.py][1871] : kex follows: False
2025-07-01 17:14:30,012 [DEBUG][       Thread-611835][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:14:30,012 [DEBUG][       Thread-611835][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:14:30,012 [DEBUG][       Thread-611835][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:14:30,012 [DEBUG][       Thread-611835][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:14:30,012 [DEBUG][       Thread-611835][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:14:30,012 [DEBUG][       Thread-611835][   transport.py][1871] : Compression: none
2025-07-01 17:14:30,012 [DEBUG][       Thread-611835][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:14:30,071 [DEBUG][       Thread-611835][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:14:30,071 [DEBUG][       Thread-611835][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:14:30,072 [DEBUG][       Thread-611835][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:14:30,072 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:14:30,073 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:14:30,127 [DEBUG][       Thread-611835][   transport.py][1871] : userauth is OK
2025-07-01 17:14:30,127 [DEBUG][       Thread-611835][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:14:30,128 [DEBUG][       Thread-611835][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:14:30,128 [DEBUG][       Thread-611835][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:14:30,128 [DEBUG][       Thread-611835][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:14:30,147 [ INFO][       Thread-611835][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:14:30,147 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:14:30,148 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:14:31,228 [DEBUG][       Thread-611835][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:14:31,228 [DEBUG][       Thread-611835][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:14:31,276 [DEBUG][       Thread-611835][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:14:31,276 [DEBUG][       Thread-611835][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:14:31,286 [DEBUG][       Thread-611835][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:14:31,295 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:14:31,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-07-01 17:14:31,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-07-01 17:14:31,313 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:14:31,313 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:14:31,313 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:14:31,321 [DEBUG][       Thread-611835][   transport.py][1871] : EOF in transport thread
2025-07-01 17:14:31,377 [DEBUG][Thread-611837 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:14:40,086 [DEBUG][Thread-611838 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:14:40,420 [DEBUG][Thread-611839 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:14:41,324 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:14:41,324 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:14:41,324 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:14:41,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-07-01 17:14:41,820 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 14, 16), 10.73, 48.03, 0.0, 39.77, 13.08, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:14:41,820 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:14:16
2025-07-01 17:14:41,904 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:14:41,908 [DEBUG][       Thread-611840][   transport.py][1871] : starting thread (client mode): 0x82b18d0
2025-07-01 17:14:41,908 [DEBUG][       Thread-611840][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:14:41,928 [DEBUG][       Thread-611840][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:14:41,928 [ INFO][       Thread-611840][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:14:41,930 [DEBUG][       Thread-611840][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:14:41,930 [DEBUG][       Thread-611840][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:14:41,930 [DEBUG][       Thread-611840][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:14:41,930 [DEBUG][       Thread-611840][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:14:41,930 [DEBUG][       Thread-611840][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:14:41,930 [DEBUG][       Thread-611840][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:14:41,930 [DEBUG][       Thread-611840][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:14:41,930 [DEBUG][       Thread-611840][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:14:41,930 [DEBUG][       Thread-611840][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:14:41,930 [DEBUG][       Thread-611840][   transport.py][1871] : client lang: <none>
2025-07-01 17:14:41,930 [DEBUG][       Thread-611840][   transport.py][1871] : server lang: <none>
2025-07-01 17:14:41,930 [DEBUG][       Thread-611840][   transport.py][1871] : kex follows: False
2025-07-01 17:14:41,930 [DEBUG][       Thread-611840][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:14:41,930 [DEBUG][       Thread-611840][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:14:41,930 [DEBUG][       Thread-611840][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:14:41,930 [DEBUG][       Thread-611840][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:14:41,930 [DEBUG][       Thread-611840][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:14:41,930 [DEBUG][       Thread-611840][   transport.py][1871] : Compression: none
2025-07-01 17:14:41,930 [DEBUG][       Thread-611840][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:14:41,942 [DEBUG][       Thread-611840][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:14:41,943 [DEBUG][       Thread-611840][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:14:41,943 [DEBUG][       Thread-611840][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:14:41,943 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:14:41,944 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:14:41,945 [DEBUG][       Thread-611840][   transport.py][1871] : userauth is OK
2025-07-01 17:14:41,958 [ INFO][       Thread-611840][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:14:41,958 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:14:42,598 [DEBUG][       Thread-611840][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:14:42,598 [DEBUG][       Thread-611840][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:14:42,641 [DEBUG][       Thread-611840][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:14:42,641 [DEBUG][       Thread-611840][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:14:42,644 [DEBUG][       Thread-611840][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:14:42,652 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:14:42,653 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:14:42,655 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:14:42,656 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:14:42,661 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:14:42,663 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:14:42,663 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:14:42,664 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:14:42,664 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.635007 -999.00  +12.90  24.86     52   +3.50 1 2 1 1 1   887    0 9.87 17.28 ----- 24.2 24.9 27.4 36.5 13.7 -18.7 13.6 -18.4 13.4 -18.4 13.8 -18.6
2025-07-01 17:14:42,664 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:14:42,664 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:14:42,664 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.635007
2025-07-01 17:14:42,665 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:14:42,665 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:14:42,665 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:14:42,665 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:14:42,666 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:14:42,666 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:14:16', tmtdew=10.73, humidity=48.03, cloud=0.0, wind=39.77, temperature=13.08, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:14:24.605', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:14:42,667 [DEBUG][       Thread-611840][   transport.py][1871] : EOF in transport thread
2025-07-01 17:14:42,749 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:14:42,758 [DEBUG][       Thread-611843][   transport.py][1871] : starting thread (client mode): 0x75a85b0
2025-07-01 17:14:42,758 [DEBUG][       Thread-611843][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:14:42,774 [DEBUG][       Thread-611843][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:14:42,774 [ INFO][       Thread-611843][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:14:42,781 [DEBUG][       Thread-611843][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:14:42,781 [DEBUG][       Thread-611843][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:14:42,782 [DEBUG][       Thread-611843][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:14:42,782 [DEBUG][       Thread-611843][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:14:42,782 [DEBUG][       Thread-611843][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:14:42,782 [DEBUG][       Thread-611843][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:14:42,782 [DEBUG][       Thread-611843][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:14:42,782 [DEBUG][       Thread-611843][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:14:42,782 [DEBUG][       Thread-611843][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:14:42,782 [DEBUG][       Thread-611843][   transport.py][1871] : client lang: <none>
2025-07-01 17:14:42,782 [DEBUG][       Thread-611843][   transport.py][1871] : server lang: <none>
2025-07-01 17:14:42,782 [DEBUG][       Thread-611843][   transport.py][1871] : kex follows: False
2025-07-01 17:14:42,782 [DEBUG][       Thread-611843][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:14:42,782 [DEBUG][       Thread-611843][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:14:42,782 [DEBUG][       Thread-611843][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:14:42,782 [DEBUG][       Thread-611843][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:14:42,782 [DEBUG][       Thread-611843][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:14:42,782 [DEBUG][       Thread-611843][   transport.py][1871] : Compression: none
2025-07-01 17:14:42,782 [DEBUG][       Thread-611843][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:14:42,839 [DEBUG][       Thread-611843][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:14:42,839 [DEBUG][       Thread-611843][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:14:42,840 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:14:42,840 [DEBUG][       Thread-611843][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:14:42,841 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:14:42,899 [DEBUG][       Thread-611843][   transport.py][1871] : userauth is OK
2025-07-01 17:14:42,899 [DEBUG][       Thread-611843][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:14:42,899 [DEBUG][       Thread-611843][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:14:42,899 [DEBUG][       Thread-611843][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:14:42,900 [DEBUG][       Thread-611843][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:14:42,919 [ INFO][       Thread-611843][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:14:42,920 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:14:42,920 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:14:43,994 [DEBUG][       Thread-611843][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:14:43,994 [DEBUG][       Thread-611843][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:14:44,047 [DEBUG][       Thread-611843][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:14:44,047 [DEBUG][       Thread-611843][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:14:44,057 [DEBUG][       Thread-611843][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:14:44,069 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:14:44,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')
2025-07-01 17:14:44,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-07-01 17:14:44,089 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:14:44,090 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:14:44,090 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:14:44,098 [DEBUG][       Thread-611843][   transport.py][1871] : EOF in transport thread
2025-07-01 17:14:49,440 [DEBUG][Thread-611845 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:14:54,101 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:14:54,101 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:14:54,101 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:14:54,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-07-01 17:14:54,588 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 14, 48), 10.72, 48.06, 0.0, 38.5, 13.07, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:14:54,588 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:14:48
2025-07-01 17:14:54,670 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:14:54,675 [DEBUG][       Thread-611846][   transport.py][1871] : starting thread (client mode): 0x82b3a30
2025-07-01 17:14:54,675 [DEBUG][       Thread-611846][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:14:54,685 [DEBUG][       Thread-611846][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:14:54,685 [ INFO][       Thread-611846][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:14:54,687 [DEBUG][       Thread-611846][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:14:54,687 [DEBUG][       Thread-611846][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:14:54,687 [DEBUG][       Thread-611846][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:14:54,687 [DEBUG][       Thread-611846][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:14:54,687 [DEBUG][       Thread-611846][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:14:54,687 [DEBUG][       Thread-611846][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:14:54,687 [DEBUG][       Thread-611846][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:14:54,687 [DEBUG][       Thread-611846][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:14:54,687 [DEBUG][       Thread-611846][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:14:54,687 [DEBUG][       Thread-611846][   transport.py][1871] : client lang: <none>
2025-07-01 17:14:54,687 [DEBUG][       Thread-611846][   transport.py][1871] : server lang: <none>
2025-07-01 17:14:54,687 [DEBUG][       Thread-611846][   transport.py][1871] : kex follows: False
2025-07-01 17:14:54,687 [DEBUG][       Thread-611846][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:14:54,687 [DEBUG][       Thread-611846][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:14:54,687 [DEBUG][       Thread-611846][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:14:54,687 [DEBUG][       Thread-611846][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:14:54,687 [DEBUG][       Thread-611846][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:14:54,687 [DEBUG][       Thread-611846][   transport.py][1871] : Compression: none
2025-07-01 17:14:54,687 [DEBUG][       Thread-611846][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:14:54,695 [DEBUG][       Thread-611846][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:14:54,696 [DEBUG][       Thread-611846][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:14:54,696 [DEBUG][       Thread-611846][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:14:54,696 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:14:54,696 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:14:54,697 [DEBUG][       Thread-611846][   transport.py][1871] : userauth is OK
2025-07-01 17:14:54,710 [ INFO][       Thread-611846][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:14:54,710 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:14:55,535 [DEBUG][       Thread-611846][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:14:55,536 [DEBUG][       Thread-611846][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:14:55,576 [DEBUG][       Thread-611846][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:14:55,576 [DEBUG][       Thread-611846][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:14:55,579 [DEBUG][       Thread-611846][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:14:55,591 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:14:55,591 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:14:55,592 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:14:55,593 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:14:55,595 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:14:55,596 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:14:55,596 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:14:55,596 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:14:55,596 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.635007 -999.00  +12.90  24.86     52   +3.50 1 2 1 1 1   887    0 9.87 17.28 ----- 24.2 24.9 27.4 36.5 13.7 -18.7 13.6 -18.4 13.4 -18.4 13.8 -18.6
2025-07-01 17:14:55,596 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:14:55,596 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:14:55,596 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.635007
2025-07-01 17:14:55,597 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:14:55,597 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:14:55,597 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:14:55,597 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:14:55,597 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:14:55,597 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:14:48', tmtdew=10.72, humidity=48.06, cloud=0.0, wind=38.5, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:14:24.605', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:14:55,597 [DEBUG][       Thread-611846][   transport.py][1871] : EOF in transport thread
2025-07-01 17:14:55,671 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:14:55,683 [DEBUG][       Thread-611849][   transport.py][1871] : starting thread (client mode): 0x8173f40
2025-07-01 17:14:55,684 [DEBUG][       Thread-611849][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:14:55,698 [DEBUG][       Thread-611849][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:14:55,699 [ INFO][       Thread-611849][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:14:55,706 [DEBUG][       Thread-611849][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:14:55,706 [DEBUG][       Thread-611849][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:14:55,706 [DEBUG][       Thread-611849][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:14:55,706 [DEBUG][       Thread-611849][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:14:55,706 [DEBUG][       Thread-611849][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:14:55,706 [DEBUG][       Thread-611849][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:14:55,706 [DEBUG][       Thread-611849][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:14:55,706 [DEBUG][       Thread-611849][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:14:55,706 [DEBUG][       Thread-611849][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:14:55,706 [DEBUG][       Thread-611849][   transport.py][1871] : client lang: <none>
2025-07-01 17:14:55,706 [DEBUG][       Thread-611849][   transport.py][1871] : server lang: <none>
2025-07-01 17:14:55,706 [DEBUG][       Thread-611849][   transport.py][1871] : kex follows: False
2025-07-01 17:14:55,706 [DEBUG][       Thread-611849][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:14:55,706 [DEBUG][       Thread-611849][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:14:55,706 [DEBUG][       Thread-611849][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:14:55,706 [DEBUG][       Thread-611849][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:14:55,706 [DEBUG][       Thread-611849][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:14:55,706 [DEBUG][       Thread-611849][   transport.py][1871] : Compression: none
2025-07-01 17:14:55,706 [DEBUG][       Thread-611849][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:14:55,761 [DEBUG][       Thread-611849][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:14:55,761 [DEBUG][       Thread-611849][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:14:55,761 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:14:55,762 [DEBUG][       Thread-611849][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:14:55,762 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:14:55,820 [DEBUG][       Thread-611849][   transport.py][1871] : userauth is OK
2025-07-01 17:14:55,820 [DEBUG][       Thread-611849][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:14:55,820 [DEBUG][       Thread-611849][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:14:55,820 [DEBUG][       Thread-611849][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:14:55,820 [DEBUG][       Thread-611849][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:14:55,835 [ INFO][       Thread-611849][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:14:55,835 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:14:55,835 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:14:56,888 [DEBUG][       Thread-611849][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:14:56,888 [DEBUG][       Thread-611849][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:14:56,939 [DEBUG][       Thread-611849][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:14:56,939 [DEBUG][       Thread-611849][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:14:56,948 [DEBUG][       Thread-611849][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:14:56,955 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:14:56,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-07-01 17:14:56,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-07-01 17:14:56,971 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:14:56,971 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:14:56,971 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:14:56,979 [DEBUG][       Thread-611849][   transport.py][1871] : EOF in transport thread
2025-07-01 17:14:58,458 [DEBUG][Thread-611851 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:15:06,982 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:15:06,982 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:15:06,982 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:15:06,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-07-01 17:15:07,463 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 14, 48), 10.72, 48.06, 0.0, 38.5, 13.07, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:15:07,463 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:14:48
2025-07-01 17:15:07,490 [DEBUG][Thread-611852 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:15:07,546 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:15:07,550 [DEBUG][       Thread-611853][   transport.py][1871] : starting thread (client mode): 0x82b3e80
2025-07-01 17:15:07,550 [DEBUG][       Thread-611853][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:15:07,573 [DEBUG][       Thread-611853][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:15:07,573 [ INFO][       Thread-611853][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:15:07,577 [DEBUG][       Thread-611853][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:15:07,577 [DEBUG][       Thread-611853][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:15:07,577 [DEBUG][       Thread-611853][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:15:07,577 [DEBUG][       Thread-611853][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:15:07,577 [DEBUG][       Thread-611853][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:15:07,577 [DEBUG][       Thread-611853][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:15:07,577 [DEBUG][       Thread-611853][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:15:07,577 [DEBUG][       Thread-611853][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:15:07,577 [DEBUG][       Thread-611853][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:15:07,577 [DEBUG][       Thread-611853][   transport.py][1871] : client lang: <none>
2025-07-01 17:15:07,577 [DEBUG][       Thread-611853][   transport.py][1871] : server lang: <none>
2025-07-01 17:15:07,577 [DEBUG][       Thread-611853][   transport.py][1871] : kex follows: False
2025-07-01 17:15:07,577 [DEBUG][       Thread-611853][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:15:07,577 [DEBUG][       Thread-611853][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:15:07,577 [DEBUG][       Thread-611853][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:15:07,577 [DEBUG][       Thread-611853][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:15:07,577 [DEBUG][       Thread-611853][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:15:07,577 [DEBUG][       Thread-611853][   transport.py][1871] : Compression: none
2025-07-01 17:15:07,577 [DEBUG][       Thread-611853][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:15:07,594 [DEBUG][       Thread-611853][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:15:07,594 [DEBUG][       Thread-611853][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:15:07,595 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:15:07,595 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:15:07,596 [DEBUG][       Thread-611853][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:15:07,596 [DEBUG][       Thread-611853][   transport.py][1871] : userauth is OK
2025-07-01 17:15:07,611 [ INFO][       Thread-611853][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:15:07,611 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:15:08,420 [DEBUG][       Thread-611853][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:15:08,420 [DEBUG][       Thread-611853][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:15:08,461 [DEBUG][       Thread-611853][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:15:08,461 [DEBUG][       Thread-611853][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:15:08,464 [DEBUG][       Thread-611853][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:15:08,476 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:15:08,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:15:08,479 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:15:08,480 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:15:08,486 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:15:08,488 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:15:08,488 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:15:08,489 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:15:08,489 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.635007 -999.00  +12.90  24.86     52   +3.50 1 2 1 1 1   887    0 9.87 17.28 ----- 24.2 24.9 27.4 36.5 13.7 -18.7 13.6 -18.4 13.4 -18.4 13.8 -18.6
2025-07-01 17:15:08,489 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:15:08,489 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:15:08,489 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.635007
2025-07-01 17:15:08,490 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:15:08,490 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:15:08,490 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:15:08,490 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:15:08,490 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:15:08,491 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:14:48', tmtdew=10.72, humidity=48.06, cloud=0.0, wind=38.5, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:14:24.605', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:15:08,491 [DEBUG][       Thread-611853][   transport.py][1871] : EOF in transport thread
2025-07-01 17:15:08,574 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:15:08,584 [DEBUG][       Thread-611856][   transport.py][1871] : starting thread (client mode): 0x82b2320
2025-07-01 17:15:08,584 [DEBUG][       Thread-611856][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:15:08,600 [DEBUG][       Thread-611856][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:15:08,600 [ INFO][       Thread-611856][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:15:08,608 [DEBUG][       Thread-611856][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:15:08,608 [DEBUG][       Thread-611856][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:15:08,608 [DEBUG][       Thread-611856][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:15:08,608 [DEBUG][       Thread-611856][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:15:08,608 [DEBUG][       Thread-611856][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:15:08,608 [DEBUG][       Thread-611856][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:15:08,608 [DEBUG][       Thread-611856][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:15:08,608 [DEBUG][       Thread-611856][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:15:08,608 [DEBUG][       Thread-611856][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:15:08,608 [DEBUG][       Thread-611856][   transport.py][1871] : client lang: <none>
2025-07-01 17:15:08,608 [DEBUG][       Thread-611856][   transport.py][1871] : server lang: <none>
2025-07-01 17:15:08,608 [DEBUG][       Thread-611856][   transport.py][1871] : kex follows: False
2025-07-01 17:15:08,608 [DEBUG][       Thread-611856][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:15:08,608 [DEBUG][       Thread-611856][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:15:08,608 [DEBUG][       Thread-611856][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:15:08,608 [DEBUG][       Thread-611856][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:15:08,608 [DEBUG][       Thread-611856][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:15:08,609 [DEBUG][       Thread-611856][   transport.py][1871] : Compression: none
2025-07-01 17:15:08,609 [DEBUG][       Thread-611856][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:15:08,669 [DEBUG][       Thread-611856][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:15:08,669 [DEBUG][       Thread-611856][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:15:08,670 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:15:08,671 [DEBUG][       Thread-611856][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:15:08,671 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:15:08,726 [DEBUG][       Thread-611856][   transport.py][1871] : userauth is OK
2025-07-01 17:15:08,726 [DEBUG][       Thread-611856][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:15:08,726 [DEBUG][       Thread-611856][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:15:08,726 [DEBUG][       Thread-611856][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:15:08,726 [DEBUG][       Thread-611856][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:15:08,741 [ INFO][       Thread-611856][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:15:08,741 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:15:08,741 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:15:09,746 [DEBUG][       Thread-611856][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:15:09,746 [DEBUG][       Thread-611856][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:15:09,795 [DEBUG][       Thread-611856][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:15:09,796 [DEBUG][       Thread-611856][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:15:09,807 [DEBUG][       Thread-611856][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:15:09,815 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:15:09,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-07-01 17:15:09,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') -> 00000000
2025-07-01 17:15:09,835 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:15:09,835 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:15:09,835 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:15:09,843 [DEBUG][       Thread-611856][   transport.py][1871] : EOF in transport thread
2025-07-01 17:15:16,512 [DEBUG][Thread-611858 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:15:19,844 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:15:19,844 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:15:19,844 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:15:19,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-07-01 17:15:20,325 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 14, 48), 10.72, 48.06, 0.0, 38.5, 13.07, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:15:20,325 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:14:48
2025-07-01 17:15:20,408 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:15:20,411 [DEBUG][       Thread-611859][   transport.py][1871] : starting thread (client mode): 0x81a40d0
2025-07-01 17:15:20,411 [DEBUG][       Thread-611859][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:15:20,431 [DEBUG][       Thread-611859][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:15:20,431 [ INFO][       Thread-611859][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:15:20,433 [DEBUG][       Thread-611859][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:15:20,433 [DEBUG][       Thread-611859][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:15:20,433 [DEBUG][       Thread-611859][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:15:20,433 [DEBUG][       Thread-611859][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:15:20,433 [DEBUG][       Thread-611859][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:15:20,433 [DEBUG][       Thread-611859][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:15:20,433 [DEBUG][       Thread-611859][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:15:20,433 [DEBUG][       Thread-611859][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:15:20,433 [DEBUG][       Thread-611859][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:15:20,433 [DEBUG][       Thread-611859][   transport.py][1871] : client lang: <none>
2025-07-01 17:15:20,433 [DEBUG][       Thread-611859][   transport.py][1871] : server lang: <none>
2025-07-01 17:15:20,433 [DEBUG][       Thread-611859][   transport.py][1871] : kex follows: False
2025-07-01 17:15:20,433 [DEBUG][       Thread-611859][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:15:20,433 [DEBUG][       Thread-611859][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:15:20,433 [DEBUG][       Thread-611859][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:15:20,433 [DEBUG][       Thread-611859][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:15:20,433 [DEBUG][       Thread-611859][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:15:20,433 [DEBUG][       Thread-611859][   transport.py][1871] : Compression: none
2025-07-01 17:15:20,433 [DEBUG][       Thread-611859][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:15:20,451 [DEBUG][       Thread-611859][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:15:20,451 [DEBUG][       Thread-611859][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:15:20,451 [DEBUG][       Thread-611859][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:15:20,451 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:15:20,451 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:15:20,451 [DEBUG][       Thread-611859][   transport.py][1871] : userauth is OK
2025-07-01 17:15:20,464 [ INFO][       Thread-611859][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:15:20,464 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:15:21,119 [DEBUG][       Thread-611859][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:15:21,119 [DEBUG][       Thread-611859][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:15:21,160 [DEBUG][       Thread-611859][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:15:21,161 [DEBUG][       Thread-611859][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:15:21,163 [DEBUG][       Thread-611859][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:15:21,176 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:15:21,176 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:15:21,178 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:15:21,178 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:15:21,181 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:15:21,182 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:15:21,182 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:15:21,182 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:15:21,182 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.635354 -999.00  +12.80  29.35     53   +3.50 1 2 1 1 1   887    0 9.83 17.12 ----- 25.6 29.4 31.0 32.8 13.7 -18.7 13.6 -18.5 13.4 -18.4 13.8 -18.5
2025-07-01 17:15:21,182 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:15:21,182 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:15:21,182 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.635354
2025-07-01 17:15:21,182 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:15:21,183 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:15:21,183 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:15:21,183 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:15:21,183 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:15:21,183 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:14:48', tmtdew=10.72, humidity=48.06, cloud=0.0, wind=38.5, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:14:54.586', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:15:21,184 [DEBUG][       Thread-611859][   transport.py][1871] : EOF in transport thread
2025-07-01 17:15:21,257 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:15:21,269 [DEBUG][       Thread-611862][   transport.py][1871] : starting thread (client mode): 0x81e62c0
2025-07-01 17:15:21,269 [DEBUG][       Thread-611862][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:15:21,283 [DEBUG][       Thread-611862][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:15:21,283 [ INFO][       Thread-611862][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:15:21,291 [DEBUG][       Thread-611862][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:15:21,291 [DEBUG][       Thread-611862][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:15:21,291 [DEBUG][       Thread-611862][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:15:21,291 [DEBUG][       Thread-611862][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:15:21,291 [DEBUG][       Thread-611862][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:15:21,291 [DEBUG][       Thread-611862][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:15:21,291 [DEBUG][       Thread-611862][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:15:21,291 [DEBUG][       Thread-611862][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:15:21,291 [DEBUG][       Thread-611862][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:15:21,291 [DEBUG][       Thread-611862][   transport.py][1871] : client lang: <none>
2025-07-01 17:15:21,291 [DEBUG][       Thread-611862][   transport.py][1871] : server lang: <none>
2025-07-01 17:15:21,291 [DEBUG][       Thread-611862][   transport.py][1871] : kex follows: False
2025-07-01 17:15:21,291 [DEBUG][       Thread-611862][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:15:21,291 [DEBUG][       Thread-611862][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:15:21,291 [DEBUG][       Thread-611862][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:15:21,291 [DEBUG][       Thread-611862][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:15:21,291 [DEBUG][       Thread-611862][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:15:21,291 [DEBUG][       Thread-611862][   transport.py][1871] : Compression: none
2025-07-01 17:15:21,291 [DEBUG][       Thread-611862][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:15:21,353 [DEBUG][       Thread-611862][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:15:21,353 [DEBUG][       Thread-611862][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:15:21,353 [DEBUG][       Thread-611862][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:15:21,353 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:15:21,353 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:15:21,410 [DEBUG][       Thread-611862][   transport.py][1871] : userauth is OK
2025-07-01 17:15:21,410 [DEBUG][       Thread-611862][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:15:21,410 [DEBUG][       Thread-611862][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:15:21,410 [DEBUG][       Thread-611862][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:15:21,410 [DEBUG][       Thread-611862][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:15:21,424 [ INFO][       Thread-611862][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:15:21,424 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:15:21,424 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:15:22,482 [DEBUG][       Thread-611862][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:15:22,482 [DEBUG][       Thread-611862][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:15:22,536 [DEBUG][       Thread-611862][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:15:22,536 [DEBUG][       Thread-611862][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:15:22,546 [DEBUG][       Thread-611862][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:15:22,554 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:15:22,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-07-01 17:15:22,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-07-01 17:15:22,575 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:15:22,575 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:15:22,576 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:15:22,587 [DEBUG][       Thread-611862][   transport.py][1871] : EOF in transport thread
2025-07-01 17:15:25,535 [DEBUG][Thread-611864 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:15:32,586 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:15:32,586 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:15:32,587 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:15:32,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-07-01 17:15:33,077 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 15, 20), 10.81, 47.83, 0.0, 35.85, 13.08, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:15:33,077 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:15:20
2025-07-01 17:15:33,167 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:15:33,174 [DEBUG][       Thread-611865][   transport.py][1871] : starting thread (client mode): 0x81dbee0
2025-07-01 17:15:33,174 [DEBUG][       Thread-611865][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:15:33,194 [DEBUG][       Thread-611865][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:15:33,194 [ INFO][       Thread-611865][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:15:33,197 [DEBUG][       Thread-611865][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:15:33,198 [DEBUG][       Thread-611865][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:15:33,198 [DEBUG][       Thread-611865][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:15:33,198 [DEBUG][       Thread-611865][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:15:33,198 [DEBUG][       Thread-611865][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:15:33,198 [DEBUG][       Thread-611865][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:15:33,198 [DEBUG][       Thread-611865][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:15:33,198 [DEBUG][       Thread-611865][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:15:33,198 [DEBUG][       Thread-611865][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:15:33,198 [DEBUG][       Thread-611865][   transport.py][1871] : client lang: <none>
2025-07-01 17:15:33,198 [DEBUG][       Thread-611865][   transport.py][1871] : server lang: <none>
2025-07-01 17:15:33,198 [DEBUG][       Thread-611865][   transport.py][1871] : kex follows: False
2025-07-01 17:15:33,198 [DEBUG][       Thread-611865][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:15:33,198 [DEBUG][       Thread-611865][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:15:33,198 [DEBUG][       Thread-611865][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:15:33,198 [DEBUG][       Thread-611865][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:15:33,198 [DEBUG][       Thread-611865][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:15:33,198 [DEBUG][       Thread-611865][   transport.py][1871] : Compression: none
2025-07-01 17:15:33,198 [DEBUG][       Thread-611865][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:15:33,213 [DEBUG][       Thread-611865][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:15:33,213 [DEBUG][       Thread-611865][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:15:33,213 [DEBUG][       Thread-611865][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:15:33,213 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:15:33,213 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:15:33,214 [DEBUG][       Thread-611865][   transport.py][1871] : userauth is OK
2025-07-01 17:15:33,227 [ INFO][       Thread-611865][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:15:33,227 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:15:33,892 [DEBUG][       Thread-611865][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:15:33,892 [DEBUG][       Thread-611865][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:15:33,937 [DEBUG][       Thread-611865][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:15:33,937 [DEBUG][       Thread-611865][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:15:33,939 [DEBUG][       Thread-611865][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:15:33,951 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:15:33,951 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:15:33,952 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:15:33,953 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:15:33,956 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:15:33,957 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:15:33,957 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:15:33,957 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:15:33,957 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.635354 -999.00  +12.80  29.35     53   +3.50 1 2 1 1 1   887    0 9.83 17.12 ----- 25.6 29.4 31.0 32.8 13.7 -18.7 13.6 -18.5 13.4 -18.4 13.8 -18.5
2025-07-01 17:15:33,957 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:15:33,957 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:15:33,957 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.635354
2025-07-01 17:15:33,957 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:15:33,957 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:15:33,957 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:15:33,957 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:15:33,957 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:15:33,957 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:15:20', tmtdew=10.81, humidity=47.83, cloud=0.0, wind=35.85, temperature=13.08, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:14:54.586', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:15:33,958 [DEBUG][       Thread-611865][   transport.py][1871] : EOF in transport thread
2025-07-01 17:15:34,031 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:15:34,043 [DEBUG][       Thread-611868][   transport.py][1871] : starting thread (client mode): 0x47398550
2025-07-01 17:15:34,043 [DEBUG][       Thread-611868][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:15:34,058 [DEBUG][       Thread-611868][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:15:34,059 [ INFO][       Thread-611868][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:15:34,066 [DEBUG][       Thread-611868][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:15:34,066 [DEBUG][       Thread-611868][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:15:34,066 [DEBUG][       Thread-611868][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:15:34,066 [DEBUG][       Thread-611868][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:15:34,066 [DEBUG][       Thread-611868][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:15:34,066 [DEBUG][       Thread-611868][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:15:34,066 [DEBUG][       Thread-611868][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:15:34,066 [DEBUG][       Thread-611868][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:15:34,066 [DEBUG][       Thread-611868][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:15:34,066 [DEBUG][       Thread-611868][   transport.py][1871] : client lang: <none>
2025-07-01 17:15:34,066 [DEBUG][       Thread-611868][   transport.py][1871] : server lang: <none>
2025-07-01 17:15:34,066 [DEBUG][       Thread-611868][   transport.py][1871] : kex follows: False
2025-07-01 17:15:34,066 [DEBUG][       Thread-611868][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:15:34,066 [DEBUG][       Thread-611868][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:15:34,066 [DEBUG][       Thread-611868][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:15:34,066 [DEBUG][       Thread-611868][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:15:34,066 [DEBUG][       Thread-611868][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:15:34,066 [DEBUG][       Thread-611868][   transport.py][1871] : Compression: none
2025-07-01 17:15:34,066 [DEBUG][       Thread-611868][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:15:34,121 [DEBUG][       Thread-611868][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:15:34,122 [DEBUG][       Thread-611868][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:15:34,122 [DEBUG][       Thread-611868][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:15:34,122 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:15:34,122 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:15:34,178 [DEBUG][       Thread-611868][   transport.py][1871] : userauth is OK
2025-07-01 17:15:34,178 [DEBUG][       Thread-611868][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:15:34,178 [DEBUG][       Thread-611868][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:15:34,178 [DEBUG][       Thread-611868][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:15:34,178 [DEBUG][       Thread-611868][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:15:34,192 [ INFO][       Thread-611868][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:15:34,193 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:15:34,193 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:15:34,558 [DEBUG][Thread-611870 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:15:35,209 [DEBUG][       Thread-611868][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:15:35,209 [DEBUG][       Thread-611868][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:15:35,264 [DEBUG][       Thread-611868][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:15:35,264 [DEBUG][       Thread-611868][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:15:35,273 [DEBUG][       Thread-611868][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:15:35,281 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:15:35,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')
2025-07-01 17:15:35,289 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 17:15:35,297 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:15:35,297 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:15:35,297 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:15:35,304 [DEBUG][       Thread-611868][   transport.py][1871] : EOF in transport thread
2025-07-01 17:15:40,116 [DEBUG][Thread-611871 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:15:43,583 [DEBUG][Thread-611872 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:15:45,300 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:15:45,300 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:15:45,309 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:15:45,312 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:15:45,799 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 15, 20), 10.81, 47.83, 0.0, 35.85, 13.08, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:15:45,799 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:15:20
2025-07-01 17:15:45,882 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:15:45,886 [DEBUG][       Thread-611873][   transport.py][1871] : starting thread (client mode): 0x81a7640
2025-07-01 17:15:45,886 [DEBUG][       Thread-611873][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:15:45,903 [DEBUG][       Thread-611873][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:15:45,903 [ INFO][       Thread-611873][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:15:45,906 [DEBUG][       Thread-611873][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:15:45,906 [DEBUG][       Thread-611873][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:15:45,906 [DEBUG][       Thread-611873][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:15:45,906 [DEBUG][       Thread-611873][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:15:45,906 [DEBUG][       Thread-611873][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:15:45,906 [DEBUG][       Thread-611873][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:15:45,906 [DEBUG][       Thread-611873][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:15:45,906 [DEBUG][       Thread-611873][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:15:45,906 [DEBUG][       Thread-611873][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:15:45,906 [DEBUG][       Thread-611873][   transport.py][1871] : client lang: <none>
2025-07-01 17:15:45,906 [DEBUG][       Thread-611873][   transport.py][1871] : server lang: <none>
2025-07-01 17:15:45,906 [DEBUG][       Thread-611873][   transport.py][1871] : kex follows: False
2025-07-01 17:15:45,906 [DEBUG][       Thread-611873][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:15:45,906 [DEBUG][       Thread-611873][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:15:45,907 [DEBUG][       Thread-611873][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:15:45,907 [DEBUG][       Thread-611873][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:15:45,907 [DEBUG][       Thread-611873][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:15:45,907 [DEBUG][       Thread-611873][   transport.py][1871] : Compression: none
2025-07-01 17:15:45,907 [DEBUG][       Thread-611873][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:15:45,914 [DEBUG][       Thread-611873][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:15:45,914 [DEBUG][       Thread-611873][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:15:45,915 [DEBUG][       Thread-611873][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:15:45,915 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:15:45,915 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:15:45,916 [DEBUG][       Thread-611873][   transport.py][1871] : userauth is OK
2025-07-01 17:15:45,929 [ INFO][       Thread-611873][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:15:45,929 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:15:46,500 [DEBUG][       Thread-611873][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:15:46,500 [DEBUG][       Thread-611873][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:15:46,541 [DEBUG][       Thread-611873][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:15:46,541 [DEBUG][       Thread-611873][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:15:46,545 [DEBUG][       Thread-611873][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:15:46,559 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:15:46,559 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:15:46,561 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:15:46,563 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:15:46,568 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:15:46,569 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:15:46,570 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:15:46,570 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:15:46,570 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.635354 -999.00  +12.80  29.35     53   +3.50 1 2 1 1 1   887    0 9.83 17.12 ----- 25.6 29.4 31.0 32.8 13.7 -18.7 13.6 -18.5 13.4 -18.4 13.8 -18.5
2025-07-01 17:15:46,570 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:15:46,571 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:15:46,571 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.635354
2025-07-01 17:15:46,571 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:15:46,572 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:15:46,572 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:15:46,572 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:15:46,572 [DEBUG][       Thread-611873][   transport.py][1871] : EOF in transport thread
2025-07-01 17:15:46,572 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:15:46,573 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:15:20', tmtdew=10.81, humidity=47.83, cloud=0.0, wind=35.85, temperature=13.08, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:14:54.586', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:15:46,655 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:15:46,665 [DEBUG][       Thread-611876][   transport.py][1871] : starting thread (client mode): 0x81e4e50
2025-07-01 17:15:46,665 [DEBUG][       Thread-611876][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:15:46,681 [DEBUG][       Thread-611876][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:15:46,681 [ INFO][       Thread-611876][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:15:46,690 [DEBUG][       Thread-611876][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:15:46,690 [DEBUG][       Thread-611876][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:15:46,690 [DEBUG][       Thread-611876][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:15:46,690 [DEBUG][       Thread-611876][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:15:46,690 [DEBUG][       Thread-611876][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:15:46,690 [DEBUG][       Thread-611876][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:15:46,690 [DEBUG][       Thread-611876][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:15:46,690 [DEBUG][       Thread-611876][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:15:46,690 [DEBUG][       Thread-611876][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:15:46,690 [DEBUG][       Thread-611876][   transport.py][1871] : client lang: <none>
2025-07-01 17:15:46,691 [DEBUG][       Thread-611876][   transport.py][1871] : server lang: <none>
2025-07-01 17:15:46,691 [DEBUG][       Thread-611876][   transport.py][1871] : kex follows: False
2025-07-01 17:15:46,691 [DEBUG][       Thread-611876][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:15:46,691 [DEBUG][       Thread-611876][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:15:46,691 [DEBUG][       Thread-611876][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:15:46,691 [DEBUG][       Thread-611876][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:15:46,691 [DEBUG][       Thread-611876][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:15:46,691 [DEBUG][       Thread-611876][   transport.py][1871] : Compression: none
2025-07-01 17:15:46,691 [DEBUG][       Thread-611876][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:15:46,751 [DEBUG][       Thread-611876][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:15:46,752 [DEBUG][       Thread-611876][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:15:46,752 [DEBUG][       Thread-611876][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:15:46,753 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:15:46,753 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:15:46,812 [DEBUG][       Thread-611876][   transport.py][1871] : userauth is OK
2025-07-01 17:15:46,813 [DEBUG][       Thread-611876][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:15:46,813 [DEBUG][       Thread-611876][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:15:46,813 [DEBUG][       Thread-611876][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:15:46,813 [DEBUG][       Thread-611876][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:15:46,831 [ INFO][       Thread-611876][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:15:46,832 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:15:46,832 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:15:47,851 [DEBUG][       Thread-611876][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:15:47,851 [DEBUG][       Thread-611876][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:15:47,900 [DEBUG][       Thread-611876][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:15:47,900 [DEBUG][       Thread-611876][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:15:47,909 [DEBUG][       Thread-611876][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:15:47,918 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:15:47,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-07-01 17:15:47,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-07-01 17:15:47,937 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:15:47,937 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:15:47,938 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:15:47,946 [DEBUG][       Thread-611876][   transport.py][1871] : EOF in transport thread
2025-07-01 17:15:52,603 [DEBUG][Thread-611878 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:15:57,948 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:15:57,948 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:15:57,948 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:15:57,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-07-01 17:15:58,424 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 15, 52), 10.84, 47.72, 0.0, 34.02, 13.05, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:15:58,424 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:15:52
2025-07-01 17:15:58,507 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:15:58,513 [DEBUG][       Thread-611879][   transport.py][1871] : starting thread (client mode): 0x818cf40
2025-07-01 17:15:58,513 [DEBUG][       Thread-611879][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:15:58,535 [DEBUG][       Thread-611879][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:15:58,535 [ INFO][       Thread-611879][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:15:58,539 [DEBUG][       Thread-611879][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:15:58,539 [DEBUG][       Thread-611879][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:15:58,539 [DEBUG][       Thread-611879][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:15:58,539 [DEBUG][       Thread-611879][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:15:58,539 [DEBUG][       Thread-611879][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:15:58,539 [DEBUG][       Thread-611879][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:15:58,539 [DEBUG][       Thread-611879][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:15:58,539 [DEBUG][       Thread-611879][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:15:58,539 [DEBUG][       Thread-611879][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:15:58,539 [DEBUG][       Thread-611879][   transport.py][1871] : client lang: <none>
2025-07-01 17:15:58,539 [DEBUG][       Thread-611879][   transport.py][1871] : server lang: <none>
2025-07-01 17:15:58,539 [DEBUG][       Thread-611879][   transport.py][1871] : kex follows: False
2025-07-01 17:15:58,539 [DEBUG][       Thread-611879][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:15:58,539 [DEBUG][       Thread-611879][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:15:58,539 [DEBUG][       Thread-611879][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:15:58,539 [DEBUG][       Thread-611879][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:15:58,539 [DEBUG][       Thread-611879][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:15:58,539 [DEBUG][       Thread-611879][   transport.py][1871] : Compression: none
2025-07-01 17:15:58,539 [DEBUG][       Thread-611879][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:15:58,557 [DEBUG][       Thread-611879][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:15:58,558 [DEBUG][       Thread-611879][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:15:58,558 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:15:58,559 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:15:58,559 [DEBUG][       Thread-611879][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:15:58,560 [DEBUG][       Thread-611879][   transport.py][1871] : userauth is OK
2025-07-01 17:15:58,573 [ INFO][       Thread-611879][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:15:58,573 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:15:59,212 [DEBUG][       Thread-611879][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:15:59,212 [DEBUG][       Thread-611879][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:15:59,257 [DEBUG][       Thread-611879][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:15:59,257 [DEBUG][       Thread-611879][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:15:59,260 [DEBUG][       Thread-611879][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:15:59,273 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:15:59,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:15:59,276 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:15:59,278 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:15:59,283 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:15:59,285 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:15:59,285 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:15:59,285 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:15:59,286 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.635702 -999.00  +12.80  39.47     52   +3.40 1 2 2 1 1   887    0 9.83 18.77 ----- 36.5 39.5 20.1 47.8 13.7 -18.9 13.6 -18.7 13.4 -18.6 13.8 -18.7
2025-07-01 17:15:59,286 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:15:59,286 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:15:59,286 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.635702
2025-07-01 17:15:59,286 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:15:59,287 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:15:59,287 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:15:59,287 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:15:59,287 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:15:59,287 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:15:52', tmtdew=10.84, humidity=47.72, cloud=0.0, wind=34.02, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:15:24.653', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:15:59,287 [DEBUG][       Thread-611879][   transport.py][1871] : EOF in transport thread
2025-07-01 17:15:59,371 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:15:59,382 [DEBUG][       Thread-611882][   transport.py][1871] : starting thread (client mode): 0x81e4d30
2025-07-01 17:15:59,382 [DEBUG][       Thread-611882][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:15:59,398 [DEBUG][       Thread-611882][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:15:59,398 [ INFO][       Thread-611882][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:15:59,405 [DEBUG][       Thread-611882][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:15:59,406 [DEBUG][       Thread-611882][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:15:59,406 [DEBUG][       Thread-611882][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:15:59,406 [DEBUG][       Thread-611882][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:15:59,406 [DEBUG][       Thread-611882][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:15:59,406 [DEBUG][       Thread-611882][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:15:59,406 [DEBUG][       Thread-611882][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:15:59,406 [DEBUG][       Thread-611882][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:15:59,406 [DEBUG][       Thread-611882][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:15:59,406 [DEBUG][       Thread-611882][   transport.py][1871] : client lang: <none>
2025-07-01 17:15:59,406 [DEBUG][       Thread-611882][   transport.py][1871] : server lang: <none>
2025-07-01 17:15:59,406 [DEBUG][       Thread-611882][   transport.py][1871] : kex follows: False
2025-07-01 17:15:59,406 [DEBUG][       Thread-611882][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:15:59,406 [DEBUG][       Thread-611882][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:15:59,406 [DEBUG][       Thread-611882][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:15:59,406 [DEBUG][       Thread-611882][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:15:59,406 [DEBUG][       Thread-611882][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:15:59,406 [DEBUG][       Thread-611882][   transport.py][1871] : Compression: none
2025-07-01 17:15:59,406 [DEBUG][       Thread-611882][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:15:59,462 [DEBUG][       Thread-611882][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:15:59,463 [DEBUG][       Thread-611882][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:15:59,463 [DEBUG][       Thread-611882][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:15:59,464 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:15:59,465 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:15:59,518 [DEBUG][       Thread-611882][   transport.py][1871] : userauth is OK
2025-07-01 17:15:59,519 [DEBUG][       Thread-611882][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:15:59,519 [DEBUG][       Thread-611882][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:15:59,519 [DEBUG][       Thread-611882][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:15:59,519 [DEBUG][       Thread-611882][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:15:59,537 [ INFO][       Thread-611882][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:15:59,538 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:15:59,538 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:16:00,551 [DEBUG][       Thread-611882][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:16:00,551 [DEBUG][       Thread-611882][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:16:00,600 [DEBUG][       Thread-611882][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:16:00,600 [DEBUG][       Thread-611882][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:16:00,610 [DEBUG][       Thread-611882][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:16:00,619 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:16:00,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-07-01 17:16:00,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-07-01 17:16:00,637 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:16:00,638 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:16:00,638 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:16:00,646 [DEBUG][       Thread-611882][   transport.py][1871] : EOF in transport thread
2025-07-01 17:16:01,623 [DEBUG][Thread-611884 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:16:10,648 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:16:10,649 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:16:10,649 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:16:10,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-07-01 17:16:10,662 [DEBUG][Thread-611885 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:16:11,125 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 15, 52), 10.84, 47.72, 0.0, 34.02, 13.05, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:16:11,125 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:15:52
2025-07-01 17:16:11,208 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:16:11,213 [DEBUG][       Thread-611886][   transport.py][1871] : starting thread (client mode): 0x818e9b0
2025-07-01 17:16:11,213 [DEBUG][       Thread-611886][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:16:11,234 [DEBUG][       Thread-611886][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:16:11,234 [ INFO][       Thread-611886][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:16:11,238 [DEBUG][       Thread-611886][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:16:11,238 [DEBUG][       Thread-611886][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:16:11,238 [DEBUG][       Thread-611886][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:16:11,238 [DEBUG][       Thread-611886][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:16:11,238 [DEBUG][       Thread-611886][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:16:11,238 [DEBUG][       Thread-611886][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:16:11,238 [DEBUG][       Thread-611886][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:16:11,238 [DEBUG][       Thread-611886][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:16:11,238 [DEBUG][       Thread-611886][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:16:11,238 [DEBUG][       Thread-611886][   transport.py][1871] : client lang: <none>
2025-07-01 17:16:11,238 [DEBUG][       Thread-611886][   transport.py][1871] : server lang: <none>
2025-07-01 17:16:11,238 [DEBUG][       Thread-611886][   transport.py][1871] : kex follows: False
2025-07-01 17:16:11,238 [DEBUG][       Thread-611886][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:16:11,238 [DEBUG][       Thread-611886][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:16:11,238 [DEBUG][       Thread-611886][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:16:11,238 [DEBUG][       Thread-611886][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:16:11,238 [DEBUG][       Thread-611886][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:16:11,238 [DEBUG][       Thread-611886][   transport.py][1871] : Compression: none
2025-07-01 17:16:11,238 [DEBUG][       Thread-611886][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:16:11,255 [DEBUG][       Thread-611886][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:16:11,256 [DEBUG][       Thread-611886][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:16:11,256 [DEBUG][       Thread-611886][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:16:11,256 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:16:11,257 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:16:11,258 [DEBUG][       Thread-611886][   transport.py][1871] : userauth is OK
2025-07-01 17:16:11,283 [ INFO][       Thread-611886][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:16:11,283 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:16:11,923 [DEBUG][       Thread-611886][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:16:11,923 [DEBUG][       Thread-611886][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:16:11,964 [DEBUG][       Thread-611886][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:16:11,964 [DEBUG][       Thread-611886][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:16:11,967 [DEBUG][       Thread-611886][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:16:11,978 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:16:11,978 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:16:11,980 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:16:11,981 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:16:11,984 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:16:11,985 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:16:11,986 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:16:11,986 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:16:11,986 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.635702 -999.00  +12.80  39.47     52   +3.40 1 2 2 1 1   887    0 9.83 18.77 ----- 36.5 39.5 20.1 47.8 13.7 -18.9 13.6 -18.7 13.4 -18.6 13.8 -18.7
2025-07-01 17:16:11,986 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:16:11,986 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:16:11,986 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.635702
2025-07-01 17:16:11,986 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:16:11,986 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:16:11,986 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:16:11,986 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:16:11,986 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:16:11,986 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:15:52', tmtdew=10.84, humidity=47.72, cloud=0.0, wind=34.02, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:15:24.653', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:16:11,987 [DEBUG][       Thread-611886][   transport.py][1871] : EOF in transport thread
2025-07-01 17:16:12,077 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:16:12,087 [DEBUG][       Thread-611889][   transport.py][1871] : starting thread (client mode): 0x8171b40
2025-07-01 17:16:12,087 [DEBUG][       Thread-611889][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:16:12,102 [DEBUG][       Thread-611889][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:16:12,102 [ INFO][       Thread-611889][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:16:12,109 [DEBUG][       Thread-611889][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:16:12,109 [DEBUG][       Thread-611889][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:16:12,109 [DEBUG][       Thread-611889][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:16:12,109 [DEBUG][       Thread-611889][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:16:12,109 [DEBUG][       Thread-611889][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:16:12,109 [DEBUG][       Thread-611889][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:16:12,109 [DEBUG][       Thread-611889][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:16:12,109 [DEBUG][       Thread-611889][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:16:12,109 [DEBUG][       Thread-611889][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:16:12,109 [DEBUG][       Thread-611889][   transport.py][1871] : client lang: <none>
2025-07-01 17:16:12,109 [DEBUG][       Thread-611889][   transport.py][1871] : server lang: <none>
2025-07-01 17:16:12,109 [DEBUG][       Thread-611889][   transport.py][1871] : kex follows: False
2025-07-01 17:16:12,109 [DEBUG][       Thread-611889][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:16:12,109 [DEBUG][       Thread-611889][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:16:12,109 [DEBUG][       Thread-611889][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:16:12,109 [DEBUG][       Thread-611889][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:16:12,109 [DEBUG][       Thread-611889][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:16:12,109 [DEBUG][       Thread-611889][   transport.py][1871] : Compression: none
2025-07-01 17:16:12,109 [DEBUG][       Thread-611889][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:16:12,169 [DEBUG][       Thread-611889][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:16:12,169 [DEBUG][       Thread-611889][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:16:12,169 [DEBUG][       Thread-611889][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:16:12,169 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:16:12,169 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:16:12,226 [DEBUG][       Thread-611889][   transport.py][1871] : userauth is OK
2025-07-01 17:16:12,226 [DEBUG][       Thread-611889][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:16:12,226 [DEBUG][       Thread-611889][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:16:12,226 [DEBUG][       Thread-611889][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:16:12,226 [DEBUG][       Thread-611889][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:16:12,240 [ INFO][       Thread-611889][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:16:12,240 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:16:12,240 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:16:13,296 [DEBUG][       Thread-611889][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:16:13,296 [DEBUG][       Thread-611889][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:16:13,347 [DEBUG][       Thread-611889][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:16:13,347 [DEBUG][       Thread-611889][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:16:13,356 [DEBUG][       Thread-611889][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:16:13,364 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:16:13,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')
2025-07-01 17:16:13,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-07-01 17:16:13,379 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:16:13,379 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:16:13,380 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:16:13,387 [DEBUG][       Thread-611889][   transport.py][1871] : EOF in transport thread
2025-07-01 17:16:19,682 [DEBUG][Thread-611891 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:16:23,390 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:16:23,390 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:16:23,390 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:16:23,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-07-01 17:16:23,869 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 15, 52), 10.84, 47.72, 0.0, 34.02, 13.05, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:16:23,869 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:15:52
2025-07-01 17:16:23,953 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:16:23,959 [DEBUG][       Thread-611892][   transport.py][1871] : starting thread (client mode): 0x818fdc0
2025-07-01 17:16:23,959 [DEBUG][       Thread-611892][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:16:23,978 [DEBUG][       Thread-611892][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:16:23,979 [ INFO][       Thread-611892][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:16:23,982 [DEBUG][       Thread-611892][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:16:23,982 [DEBUG][       Thread-611892][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:16:23,982 [DEBUG][       Thread-611892][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:16:23,982 [DEBUG][       Thread-611892][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:16:23,982 [DEBUG][       Thread-611892][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:16:23,982 [DEBUG][       Thread-611892][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:16:23,982 [DEBUG][       Thread-611892][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:16:23,982 [DEBUG][       Thread-611892][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:16:23,982 [DEBUG][       Thread-611892][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:16:23,982 [DEBUG][       Thread-611892][   transport.py][1871] : client lang: <none>
2025-07-01 17:16:23,982 [DEBUG][       Thread-611892][   transport.py][1871] : server lang: <none>
2025-07-01 17:16:23,982 [DEBUG][       Thread-611892][   transport.py][1871] : kex follows: False
2025-07-01 17:16:23,982 [DEBUG][       Thread-611892][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:16:23,982 [DEBUG][       Thread-611892][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:16:23,982 [DEBUG][       Thread-611892][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:16:23,982 [DEBUG][       Thread-611892][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:16:23,982 [DEBUG][       Thread-611892][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:16:23,982 [DEBUG][       Thread-611892][   transport.py][1871] : Compression: none
2025-07-01 17:16:23,982 [DEBUG][       Thread-611892][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:16:23,990 [DEBUG][       Thread-611892][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:16:23,991 [DEBUG][       Thread-611892][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:16:23,991 [DEBUG][       Thread-611892][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:16:23,992 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:16:23,992 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:16:23,993 [DEBUG][       Thread-611892][   transport.py][1871] : userauth is OK
2025-07-01 17:16:24,017 [ INFO][       Thread-611892][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:16:24,018 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:16:24,656 [DEBUG][       Thread-611892][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:16:24,656 [DEBUG][       Thread-611892][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:16:24,700 [DEBUG][       Thread-611892][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:16:24,700 [DEBUG][       Thread-611892][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:16:24,703 [DEBUG][       Thread-611892][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:16:24,716 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:16:24,716 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:16:24,717 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:16:24,718 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:16:24,721 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:16:24,722 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:16:24,722 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:16:24,722 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:16:24,722 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.636049 -999.00  +12.80  23.82     52   +3.40 1 2 1 1 1   887    0 9.69 20.19 ----- 24.3 23.8 15.6 42.2 13.7 -18.9 13.6 -18.7 13.3 -18.6 13.7 -18.7
2025-07-01 17:16:24,722 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:16:24,722 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:16:24,722 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.636049
2025-07-01 17:16:24,722 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:16:24,722 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:16:24,723 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:16:24,723 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:16:24,723 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:16:24,723 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:15:52', tmtdew=10.84, humidity=47.72, cloud=0.0, wind=34.02, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:15:54.634', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:16:24,723 [DEBUG][       Thread-611892][   transport.py][1871] : EOF in transport thread
2025-07-01 17:16:24,798 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:16:24,812 [DEBUG][       Thread-611895][   transport.py][1871] : starting thread (client mode): 0x81e78b0
2025-07-01 17:16:24,812 [DEBUG][       Thread-611895][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:16:24,829 [DEBUG][       Thread-611895][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:16:24,829 [ INFO][       Thread-611895][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:16:24,838 [DEBUG][       Thread-611895][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:16:24,838 [DEBUG][       Thread-611895][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:16:24,838 [DEBUG][       Thread-611895][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:16:24,838 [DEBUG][       Thread-611895][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:16:24,838 [DEBUG][       Thread-611895][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:16:24,838 [DEBUG][       Thread-611895][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:16:24,838 [DEBUG][       Thread-611895][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:16:24,838 [DEBUG][       Thread-611895][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:16:24,838 [DEBUG][       Thread-611895][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:16:24,838 [DEBUG][       Thread-611895][   transport.py][1871] : client lang: <none>
2025-07-01 17:16:24,838 [DEBUG][       Thread-611895][   transport.py][1871] : server lang: <none>
2025-07-01 17:16:24,838 [DEBUG][       Thread-611895][   transport.py][1871] : kex follows: False
2025-07-01 17:16:24,838 [DEBUG][       Thread-611895][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:16:24,838 [DEBUG][       Thread-611895][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:16:24,838 [DEBUG][       Thread-611895][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:16:24,838 [DEBUG][       Thread-611895][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:16:24,838 [DEBUG][       Thread-611895][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:16:24,838 [DEBUG][       Thread-611895][   transport.py][1871] : Compression: none
2025-07-01 17:16:24,838 [DEBUG][       Thread-611895][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:16:24,897 [DEBUG][       Thread-611895][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:16:24,897 [DEBUG][       Thread-611895][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:16:24,897 [DEBUG][       Thread-611895][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:16:24,897 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:16:24,897 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:16:24,954 [DEBUG][       Thread-611895][   transport.py][1871] : userauth is OK
2025-07-01 17:16:24,954 [DEBUG][       Thread-611895][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:16:24,954 [DEBUG][       Thread-611895][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:16:24,954 [DEBUG][       Thread-611895][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:16:24,954 [DEBUG][       Thread-611895][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:16:24,968 [ INFO][       Thread-611895][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:16:24,968 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:16:24,968 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:16:25,979 [DEBUG][       Thread-611895][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:16:25,979 [DEBUG][       Thread-611895][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:16:26,028 [DEBUG][       Thread-611895][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:16:26,028 [DEBUG][       Thread-611895][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:16:26,037 [DEBUG][       Thread-611895][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:16:26,050 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:16:26,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-07-01 17:16:26,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-07-01 17:16:26,068 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:16:26,068 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:16:26,069 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:16:26,076 [DEBUG][       Thread-611895][   transport.py][1871] : EOF in transport thread
2025-07-01 17:16:28,705 [DEBUG][Thread-611897 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:16:36,079 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:16:36,080 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:16:36,080 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:16:36,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-07-01 17:16:36,567 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 16, 23), 10.79, 48.02, 0.0, 34.28, 13.02, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:16:36,567 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:16:23
2025-07-01 17:16:36,650 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:16:36,654 [DEBUG][       Thread-611898][   transport.py][1871] : starting thread (client mode): 0x81cb430
2025-07-01 17:16:36,654 [DEBUG][       Thread-611898][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:16:36,675 [DEBUG][       Thread-611898][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:16:36,675 [ INFO][       Thread-611898][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:16:36,678 [DEBUG][       Thread-611898][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:16:36,678 [DEBUG][       Thread-611898][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:16:36,678 [DEBUG][       Thread-611898][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:16:36,678 [DEBUG][       Thread-611898][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:16:36,678 [DEBUG][       Thread-611898][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:16:36,678 [DEBUG][       Thread-611898][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:16:36,678 [DEBUG][       Thread-611898][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:16:36,678 [DEBUG][       Thread-611898][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:16:36,678 [DEBUG][       Thread-611898][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:16:36,678 [DEBUG][       Thread-611898][   transport.py][1871] : client lang: <none>
2025-07-01 17:16:36,678 [DEBUG][       Thread-611898][   transport.py][1871] : server lang: <none>
2025-07-01 17:16:36,678 [DEBUG][       Thread-611898][   transport.py][1871] : kex follows: False
2025-07-01 17:16:36,678 [DEBUG][       Thread-611898][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:16:36,678 [DEBUG][       Thread-611898][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:16:36,678 [DEBUG][       Thread-611898][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:16:36,678 [DEBUG][       Thread-611898][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:16:36,678 [DEBUG][       Thread-611898][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:16:36,678 [DEBUG][       Thread-611898][   transport.py][1871] : Compression: none
2025-07-01 17:16:36,678 [DEBUG][       Thread-611898][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:16:36,696 [DEBUG][       Thread-611898][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:16:36,696 [DEBUG][       Thread-611898][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:16:36,697 [DEBUG][       Thread-611898][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:16:36,697 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:16:36,697 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:16:36,698 [DEBUG][       Thread-611898][   transport.py][1871] : userauth is OK
2025-07-01 17:16:36,711 [ INFO][       Thread-611898][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:16:36,712 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:16:37,353 [DEBUG][       Thread-611898][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:16:37,353 [DEBUG][       Thread-611898][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:16:37,397 [DEBUG][       Thread-611898][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:16:37,397 [DEBUG][       Thread-611898][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:16:37,401 [DEBUG][       Thread-611898][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:16:37,412 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:16:37,413 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:16:37,423 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:16:37,425 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:16:37,430 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:16:37,432 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:16:37,432 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:16:37,433 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:16:37,433 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.636049 -999.00  +12.80  23.82     52   +3.40 1 2 1 1 1   887    0 9.69 20.19 ----- 24.3 23.8 15.6 42.2 13.7 -18.9 13.6 -18.7 13.3 -18.6 13.7 -18.7
2025-07-01 17:16:37,433 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:16:37,433 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:16:37,433 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.636049
2025-07-01 17:16:37,434 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:16:37,434 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:16:37,434 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:16:37,434 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:16:37,434 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:16:37,435 [DEBUG][       Thread-611898][   transport.py][1871] : EOF in transport thread
2025-07-01 17:16:37,435 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:16:23', tmtdew=10.79, humidity=48.02, cloud=0.0, wind=34.28, temperature=13.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:15:54.634', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:16:37,511 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:16:37,522 [DEBUG][       Thread-611901][   transport.py][1871] : starting thread (client mode): 0x81a7460
2025-07-01 17:16:37,522 [DEBUG][       Thread-611901][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:16:37,540 [DEBUG][       Thread-611901][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:16:37,540 [ INFO][       Thread-611901][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:16:37,550 [DEBUG][       Thread-611901][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:16:37,550 [DEBUG][       Thread-611901][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:16:37,550 [DEBUG][       Thread-611901][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:16:37,550 [DEBUG][       Thread-611901][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:16:37,550 [DEBUG][       Thread-611901][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:16:37,550 [DEBUG][       Thread-611901][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:16:37,550 [DEBUG][       Thread-611901][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:16:37,550 [DEBUG][       Thread-611901][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:16:37,550 [DEBUG][       Thread-611901][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:16:37,550 [DEBUG][       Thread-611901][   transport.py][1871] : client lang: <none>
2025-07-01 17:16:37,550 [DEBUG][       Thread-611901][   transport.py][1871] : server lang: <none>
2025-07-01 17:16:37,550 [DEBUG][       Thread-611901][   transport.py][1871] : kex follows: False
2025-07-01 17:16:37,551 [DEBUG][       Thread-611901][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:16:37,551 [DEBUG][       Thread-611901][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:16:37,551 [DEBUG][       Thread-611901][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:16:37,551 [DEBUG][       Thread-611901][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:16:37,551 [DEBUG][       Thread-611901][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:16:37,551 [DEBUG][       Thread-611901][   transport.py][1871] : Compression: none
2025-07-01 17:16:37,551 [DEBUG][       Thread-611901][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:16:37,610 [DEBUG][       Thread-611901][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:16:37,611 [DEBUG][       Thread-611901][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:16:37,612 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:16:37,612 [DEBUG][       Thread-611901][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:16:37,613 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:16:37,666 [DEBUG][       Thread-611901][   transport.py][1871] : userauth is OK
2025-07-01 17:16:37,666 [DEBUG][       Thread-611901][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:16:37,667 [DEBUG][       Thread-611901][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:16:37,667 [DEBUG][       Thread-611901][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:16:37,667 [DEBUG][       Thread-611901][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:16:37,685 [ INFO][       Thread-611901][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:16:37,686 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:16:37,686 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:16:37,729 [DEBUG][Thread-611903 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:16:38,675 [DEBUG][       Thread-611901][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:16:38,676 [DEBUG][       Thread-611901][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:16:38,724 [DEBUG][       Thread-611901][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:16:38,724 [DEBUG][       Thread-611901][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:16:38,733 [DEBUG][       Thread-611901][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:16:38,742 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:16:38,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-07-01 17:16:38,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-07-01 17:16:38,760 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:16:38,760 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:16:38,760 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:16:38,768 [DEBUG][       Thread-611901][   transport.py][1871] : EOF in transport thread
2025-07-01 17:16:40,142 [DEBUG][Thread-611904 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:16:46,766 [DEBUG][Thread-611905 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:16:48,771 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:16:48,771 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:16:48,771 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:16:48,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-07-01 17:16:49,278 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 16, 23), 10.79, 48.02, 0.0, 34.28, 13.02, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:16:49,279 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:16:23
2025-07-01 17:16:49,364 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:16:49,368 [DEBUG][       Thread-611906][   transport.py][1871] : starting thread (client mode): 0x818ffa0
2025-07-01 17:16:49,368 [DEBUG][       Thread-611906][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:16:49,390 [DEBUG][       Thread-611906][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:16:49,390 [ INFO][       Thread-611906][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:16:49,393 [DEBUG][       Thread-611906][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:16:49,393 [DEBUG][       Thread-611906][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:16:49,393 [DEBUG][       Thread-611906][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:16:49,393 [DEBUG][       Thread-611906][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:16:49,393 [DEBUG][       Thread-611906][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:16:49,393 [DEBUG][       Thread-611906][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:16:49,393 [DEBUG][       Thread-611906][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:16:49,393 [DEBUG][       Thread-611906][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:16:49,393 [DEBUG][       Thread-611906][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:16:49,393 [DEBUG][       Thread-611906][   transport.py][1871] : client lang: <none>
2025-07-01 17:16:49,393 [DEBUG][       Thread-611906][   transport.py][1871] : server lang: <none>
2025-07-01 17:16:49,393 [DEBUG][       Thread-611906][   transport.py][1871] : kex follows: False
2025-07-01 17:16:49,393 [DEBUG][       Thread-611906][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:16:49,393 [DEBUG][       Thread-611906][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:16:49,393 [DEBUG][       Thread-611906][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:16:49,393 [DEBUG][       Thread-611906][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:16:49,393 [DEBUG][       Thread-611906][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:16:49,393 [DEBUG][       Thread-611906][   transport.py][1871] : Compression: none
2025-07-01 17:16:49,393 [DEBUG][       Thread-611906][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:16:49,410 [DEBUG][       Thread-611906][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:16:49,410 [DEBUG][       Thread-611906][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:16:49,410 [DEBUG][       Thread-611906][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:16:49,410 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:16:49,411 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:16:49,411 [DEBUG][       Thread-611906][   transport.py][1871] : userauth is OK
2025-07-01 17:16:49,436 [ INFO][       Thread-611906][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:16:49,436 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:16:50,097 [DEBUG][       Thread-611906][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:16:50,097 [DEBUG][       Thread-611906][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:16:50,141 [DEBUG][       Thread-611906][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:16:50,141 [DEBUG][       Thread-611906][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:16:50,143 [DEBUG][       Thread-611906][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:16:50,154 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:16:50,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:16:50,156 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:16:50,156 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:16:50,159 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:16:50,161 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:16:50,161 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:16:50,161 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:16:50,161 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.636049 -999.00  +12.80  23.82     52   +3.40 1 2 1 1 1   887    0 9.69 20.19 ----- 24.3 23.8 15.6 42.2 13.7 -18.9 13.6 -18.7 13.3 -18.6 13.7 -18.7
2025-07-01 17:16:50,161 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:16:50,161 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:16:50,161 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.636049
2025-07-01 17:16:50,161 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:16:50,161 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:16:50,161 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:16:50,161 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:16:50,161 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:16:50,161 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:16:23', tmtdew=10.79, humidity=48.02, cloud=0.0, wind=34.28, temperature=13.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:15:54.634', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:16:50,162 [DEBUG][       Thread-611906][   transport.py][1871] : EOF in transport thread
2025-07-01 17:16:50,235 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:16:50,252 [DEBUG][       Thread-611909][   transport.py][1871] : starting thread (client mode): 0x81561d0
2025-07-01 17:16:50,252 [DEBUG][       Thread-611909][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:16:50,271 [DEBUG][       Thread-611909][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:16:50,271 [ INFO][       Thread-611909][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:16:50,278 [DEBUG][       Thread-611909][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:16:50,278 [DEBUG][       Thread-611909][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:16:50,278 [DEBUG][       Thread-611909][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:16:50,278 [DEBUG][       Thread-611909][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:16:50,278 [DEBUG][       Thread-611909][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:16:50,278 [DEBUG][       Thread-611909][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:16:50,278 [DEBUG][       Thread-611909][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:16:50,278 [DEBUG][       Thread-611909][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:16:50,279 [DEBUG][       Thread-611909][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:16:50,279 [DEBUG][       Thread-611909][   transport.py][1871] : client lang: <none>
2025-07-01 17:16:50,279 [DEBUG][       Thread-611909][   transport.py][1871] : server lang: <none>
2025-07-01 17:16:50,279 [DEBUG][       Thread-611909][   transport.py][1871] : kex follows: False
2025-07-01 17:16:50,279 [DEBUG][       Thread-611909][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:16:50,279 [DEBUG][       Thread-611909][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:16:50,279 [DEBUG][       Thread-611909][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:16:50,279 [DEBUG][       Thread-611909][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:16:50,279 [DEBUG][       Thread-611909][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:16:50,279 [DEBUG][       Thread-611909][   transport.py][1871] : Compression: none
2025-07-01 17:16:50,279 [DEBUG][       Thread-611909][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:16:50,340 [DEBUG][       Thread-611909][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:16:50,340 [DEBUG][       Thread-611909][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:16:50,340 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:16:50,341 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:16:50,341 [DEBUG][       Thread-611909][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:16:50,397 [DEBUG][       Thread-611909][   transport.py][1871] : userauth is OK
2025-07-01 17:16:50,397 [DEBUG][       Thread-611909][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:16:50,397 [DEBUG][       Thread-611909][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:16:50,397 [DEBUG][       Thread-611909][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:16:50,397 [DEBUG][       Thread-611909][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:16:50,411 [ INFO][       Thread-611909][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:16:50,411 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:16:50,411 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:16:51,420 [DEBUG][       Thread-611909][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:16:51,420 [DEBUG][       Thread-611909][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:16:51,473 [DEBUG][       Thread-611909][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:16:51,473 [DEBUG][       Thread-611909][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:16:51,481 [DEBUG][       Thread-611909][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:16:51,493 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:16:51,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')
2025-07-01 17:16:51,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-07-01 17:16:51,516 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:16:51,516 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:16:51,516 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:16:51,524 [DEBUG][       Thread-611909][   transport.py][1871] : EOF in transport thread
2025-07-01 17:16:55,786 [DEBUG][Thread-611911 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:17:01,524 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:17:01,524 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:17:01,524 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:17:01,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-07-01 17:17:02,000 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 16, 55), 10.79, 48.03, 0.0, 29.08, 13.01, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:17:02,000 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:16:55
2025-07-01 17:17:02,086 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:17:02,090 [DEBUG][       Thread-611912][   transport.py][1871] : starting thread (client mode): 0x81e4520
2025-07-01 17:17:02,090 [DEBUG][       Thread-611912][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:17:02,112 [DEBUG][       Thread-611912][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:17:02,112 [ INFO][       Thread-611912][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:17:02,115 [DEBUG][       Thread-611912][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:17:02,115 [DEBUG][       Thread-611912][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:17:02,115 [DEBUG][       Thread-611912][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:17:02,115 [DEBUG][       Thread-611912][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:17:02,115 [DEBUG][       Thread-611912][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:17:02,115 [DEBUG][       Thread-611912][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:17:02,115 [DEBUG][       Thread-611912][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:17:02,115 [DEBUG][       Thread-611912][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:17:02,115 [DEBUG][       Thread-611912][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:17:02,115 [DEBUG][       Thread-611912][   transport.py][1871] : client lang: <none>
2025-07-01 17:17:02,115 [DEBUG][       Thread-611912][   transport.py][1871] : server lang: <none>
2025-07-01 17:17:02,115 [DEBUG][       Thread-611912][   transport.py][1871] : kex follows: False
2025-07-01 17:17:02,115 [DEBUG][       Thread-611912][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:17:02,115 [DEBUG][       Thread-611912][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:17:02,115 [DEBUG][       Thread-611912][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:17:02,115 [DEBUG][       Thread-611912][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:17:02,115 [DEBUG][       Thread-611912][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:17:02,115 [DEBUG][       Thread-611912][   transport.py][1871] : Compression: none
2025-07-01 17:17:02,115 [DEBUG][       Thread-611912][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:17:02,133 [DEBUG][       Thread-611912][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:17:02,133 [DEBUG][       Thread-611912][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:17:02,134 [DEBUG][       Thread-611912][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:17:02,134 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:17:02,134 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:17:02,135 [DEBUG][       Thread-611912][   transport.py][1871] : userauth is OK
2025-07-01 17:17:02,148 [ INFO][       Thread-611912][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:17:02,149 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:17:02,796 [DEBUG][       Thread-611912][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:17:02,796 [DEBUG][       Thread-611912][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:17:02,837 [DEBUG][       Thread-611912][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:17:02,837 [DEBUG][       Thread-611912][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:17:02,840 [DEBUG][       Thread-611912][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:17:02,853 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:17:02,853 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:17:02,855 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:17:02,857 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:17:02,862 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:17:02,864 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:17:02,865 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:17:02,865 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:17:02,865 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.636396 -999.00  +12.90  28.20     52   +3.20 1 2 1 1 1   887    0 9.95 20.86 ----- 30.4 28.2 1.2 40.4 13.7 -18.8 13.5 -18.7 13.3 -18.8 13.6 -18.8
2025-07-01 17:17:02,865 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:17:02,865 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:17:02,866 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.636396
2025-07-01 17:17:02,866 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:17:02,866 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:17:02,867 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:17:02,867 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:17:02,867 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:17:02,867 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:16:55', tmtdew=10.79, humidity=48.03, cloud=0.0, wind=29.08, temperature=13.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:16:24.614', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:17:02,867 [DEBUG][       Thread-611912][   transport.py][1871] : EOF in transport thread
2025-07-01 17:17:02,942 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:17:02,952 [DEBUG][       Thread-611915][   transport.py][1871] : starting thread (client mode): 0x82b2320
2025-07-01 17:17:02,952 [DEBUG][       Thread-611915][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:17:02,968 [DEBUG][       Thread-611915][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:17:02,968 [ INFO][       Thread-611915][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:17:02,975 [DEBUG][       Thread-611915][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:17:02,976 [DEBUG][       Thread-611915][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:17:02,976 [DEBUG][       Thread-611915][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:17:02,976 [DEBUG][       Thread-611915][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:17:02,976 [DEBUG][       Thread-611915][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:17:02,976 [DEBUG][       Thread-611915][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:17:02,976 [DEBUG][       Thread-611915][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:17:02,976 [DEBUG][       Thread-611915][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:17:02,976 [DEBUG][       Thread-611915][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:17:02,976 [DEBUG][       Thread-611915][   transport.py][1871] : client lang: <none>
2025-07-01 17:17:02,976 [DEBUG][       Thread-611915][   transport.py][1871] : server lang: <none>
2025-07-01 17:17:02,976 [DEBUG][       Thread-611915][   transport.py][1871] : kex follows: False
2025-07-01 17:17:02,976 [DEBUG][       Thread-611915][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:17:02,976 [DEBUG][       Thread-611915][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:17:02,976 [DEBUG][       Thread-611915][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:17:02,976 [DEBUG][       Thread-611915][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:17:02,976 [DEBUG][       Thread-611915][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:17:02,976 [DEBUG][       Thread-611915][   transport.py][1871] : Compression: none
2025-07-01 17:17:02,976 [DEBUG][       Thread-611915][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:17:03,038 [DEBUG][       Thread-611915][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:17:03,038 [DEBUG][       Thread-611915][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:17:03,039 [DEBUG][       Thread-611915][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:17:03,039 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:17:03,040 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:17:03,094 [DEBUG][       Thread-611915][   transport.py][1871] : userauth is OK
2025-07-01 17:17:03,094 [DEBUG][       Thread-611915][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:17:03,094 [DEBUG][       Thread-611915][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:17:03,094 [DEBUG][       Thread-611915][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:17:03,094 [DEBUG][       Thread-611915][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:17:03,113 [ INFO][       Thread-611915][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:17:03,113 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:17:03,114 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:17:04,122 [DEBUG][       Thread-611915][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:17:04,122 [DEBUG][       Thread-611915][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:17:04,172 [DEBUG][       Thread-611915][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:17:04,172 [DEBUG][       Thread-611915][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:17:04,181 [DEBUG][       Thread-611915][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:17:04,190 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:17:04,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')
2025-07-01 17:17:04,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-07-01 17:17:04,209 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:17:04,209 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:17:04,210 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:17:04,218 [DEBUG][       Thread-611915][   transport.py][1871] : EOF in transport thread
2025-07-01 17:17:04,806 [DEBUG][Thread-611917 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:17:13,839 [DEBUG][Thread-611918 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:17:14,220 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:17:14,220 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:17:14,220 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:17:14,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-07-01 17:17:14,691 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 16, 55), 10.79, 48.03, 0.0, 29.08, 13.01, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:17:14,691 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:16:55
2025-07-01 17:17:14,777 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:17:14,781 [DEBUG][       Thread-611919][   transport.py][1871] : starting thread (client mode): 0x82b3f40
2025-07-01 17:17:14,781 [DEBUG][       Thread-611919][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:17:14,802 [DEBUG][       Thread-611919][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:17:14,802 [ INFO][       Thread-611919][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:17:14,805 [DEBUG][       Thread-611919][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:17:14,805 [DEBUG][       Thread-611919][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:17:14,806 [DEBUG][       Thread-611919][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:17:14,806 [DEBUG][       Thread-611919][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:17:14,806 [DEBUG][       Thread-611919][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:17:14,806 [DEBUG][       Thread-611919][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:17:14,806 [DEBUG][       Thread-611919][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:17:14,806 [DEBUG][       Thread-611919][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:17:14,806 [DEBUG][       Thread-611919][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:17:14,806 [DEBUG][       Thread-611919][   transport.py][1871] : client lang: <none>
2025-07-01 17:17:14,806 [DEBUG][       Thread-611919][   transport.py][1871] : server lang: <none>
2025-07-01 17:17:14,806 [DEBUG][       Thread-611919][   transport.py][1871] : kex follows: False
2025-07-01 17:17:14,806 [DEBUG][       Thread-611919][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:17:14,806 [DEBUG][       Thread-611919][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:17:14,806 [DEBUG][       Thread-611919][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:17:14,806 [DEBUG][       Thread-611919][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:17:14,806 [DEBUG][       Thread-611919][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:17:14,806 [DEBUG][       Thread-611919][   transport.py][1871] : Compression: none
2025-07-01 17:17:14,806 [DEBUG][       Thread-611919][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:17:14,823 [DEBUG][       Thread-611919][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:17:14,824 [DEBUG][       Thread-611919][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:17:14,824 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:17:14,824 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:17:14,825 [DEBUG][       Thread-611919][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:17:14,826 [DEBUG][       Thread-611919][   transport.py][1871] : userauth is OK
2025-07-01 17:17:14,851 [ INFO][       Thread-611919][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:17:14,851 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:17:15,463 [DEBUG][       Thread-611919][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:17:15,463 [DEBUG][       Thread-611919][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:17:15,505 [DEBUG][       Thread-611919][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:17:15,505 [DEBUG][       Thread-611919][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:17:15,508 [DEBUG][       Thread-611919][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:17:15,523 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:17:15,523 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:17:15,525 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:17:15,527 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:17:15,531 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:17:15,533 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:17:15,533 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:17:15,534 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:17:15,534 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.636396 -999.00  +12.90  28.20     52   +3.20 1 2 1 1 1   887    0 9.95 20.86 ----- 30.4 28.2 1.2 40.4 13.7 -18.8 13.5 -18.7 13.3 -18.8 13.6 -18.8
2025-07-01 17:17:15,534 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:17:15,534 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:17:15,534 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.636396
2025-07-01 17:17:15,535 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:17:15,535 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:17:15,535 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:17:15,536 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:17:15,536 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:17:15,536 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:16:55', tmtdew=10.79, humidity=48.03, cloud=0.0, wind=29.08, temperature=13.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:16:24.614', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:17:15,536 [DEBUG][       Thread-611919][   transport.py][1871] : EOF in transport thread
2025-07-01 17:17:15,633 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:17:15,644 [DEBUG][       Thread-611922][   transport.py][1871] : starting thread (client mode): 0x8173f40
2025-07-01 17:17:15,644 [DEBUG][       Thread-611922][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:17:15,659 [DEBUG][       Thread-611922][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:17:15,659 [ INFO][       Thread-611922][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:17:15,666 [DEBUG][       Thread-611922][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:17:15,667 [DEBUG][       Thread-611922][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:17:15,667 [DEBUG][       Thread-611922][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:17:15,667 [DEBUG][       Thread-611922][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:17:15,667 [DEBUG][       Thread-611922][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:17:15,667 [DEBUG][       Thread-611922][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:17:15,667 [DEBUG][       Thread-611922][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:17:15,667 [DEBUG][       Thread-611922][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:17:15,667 [DEBUG][       Thread-611922][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:17:15,667 [DEBUG][       Thread-611922][   transport.py][1871] : client lang: <none>
2025-07-01 17:17:15,667 [DEBUG][       Thread-611922][   transport.py][1871] : server lang: <none>
2025-07-01 17:17:15,667 [DEBUG][       Thread-611922][   transport.py][1871] : kex follows: False
2025-07-01 17:17:15,667 [DEBUG][       Thread-611922][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:17:15,667 [DEBUG][       Thread-611922][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:17:15,667 [DEBUG][       Thread-611922][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:17:15,667 [DEBUG][       Thread-611922][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:17:15,667 [DEBUG][       Thread-611922][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:17:15,667 [DEBUG][       Thread-611922][   transport.py][1871] : Compression: none
2025-07-01 17:17:15,667 [DEBUG][       Thread-611922][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:17:15,726 [DEBUG][       Thread-611922][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:17:15,726 [DEBUG][       Thread-611922][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:17:15,727 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:17:15,727 [DEBUG][       Thread-611922][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:17:15,728 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:17:15,782 [DEBUG][       Thread-611922][   transport.py][1871] : userauth is OK
2025-07-01 17:17:15,783 [DEBUG][       Thread-611922][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:17:15,783 [DEBUG][       Thread-611922][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:17:15,783 [DEBUG][       Thread-611922][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:17:15,783 [DEBUG][       Thread-611922][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:17:15,807 [ INFO][       Thread-611922][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:17:15,808 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:17:15,808 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:17:16,838 [DEBUG][       Thread-611922][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:17:16,838 [DEBUG][       Thread-611922][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:17:16,888 [DEBUG][       Thread-611922][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:17:16,888 [DEBUG][       Thread-611922][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:17:16,897 [DEBUG][       Thread-611922][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:17:16,906 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:17:16,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-07-01 17:17: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') -> 00000000
2025-07-01 17:17:16,924 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:17:16,924 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:17:16,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:17:16,932 [DEBUG][       Thread-611922][   transport.py][1871] : EOF in transport thread
2025-07-01 17:17:22,861 [DEBUG][Thread-611924 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:17:26,935 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:17:26,935 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:17:26,935 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:17:26,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-07-01 17:17:27,421 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 16, 55), 10.79, 48.03, 0.0, 29.08, 13.01, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:17:27,421 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:16:55
2025-07-01 17:17:27,514 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:17:27,520 [DEBUG][       Thread-611925][   transport.py][1871] : starting thread (client mode): 0x81e7e50
2025-07-01 17:17:27,521 [DEBUG][       Thread-611925][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:17:27,541 [DEBUG][       Thread-611925][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:17:27,541 [ INFO][       Thread-611925][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:17:27,544 [DEBUG][       Thread-611925][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:17:27,544 [DEBUG][       Thread-611925][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:17:27,544 [DEBUG][       Thread-611925][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:17:27,544 [DEBUG][       Thread-611925][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:17:27,544 [DEBUG][       Thread-611925][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:17:27,544 [DEBUG][       Thread-611925][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:17:27,544 [DEBUG][       Thread-611925][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:17:27,544 [DEBUG][       Thread-611925][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:17:27,544 [DEBUG][       Thread-611925][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:17:27,544 [DEBUG][       Thread-611925][   transport.py][1871] : client lang: <none>
2025-07-01 17:17:27,544 [DEBUG][       Thread-611925][   transport.py][1871] : server lang: <none>
2025-07-01 17:17:27,544 [DEBUG][       Thread-611925][   transport.py][1871] : kex follows: False
2025-07-01 17:17:27,544 [DEBUG][       Thread-611925][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:17:27,544 [DEBUG][       Thread-611925][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:17:27,544 [DEBUG][       Thread-611925][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:17:27,544 [DEBUG][       Thread-611925][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:17:27,544 [DEBUG][       Thread-611925][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:17:27,544 [DEBUG][       Thread-611925][   transport.py][1871] : Compression: none
2025-07-01 17:17:27,544 [DEBUG][       Thread-611925][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:17:27,559 [DEBUG][       Thread-611925][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:17:27,559 [DEBUG][       Thread-611925][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:17:27,559 [DEBUG][       Thread-611925][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:17:27,559 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:17:27,560 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:17:27,560 [DEBUG][       Thread-611925][   transport.py][1871] : userauth is OK
2025-07-01 17:17:27,573 [ INFO][       Thread-611925][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:17:27,573 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:17:28,172 [DEBUG][       Thread-611925][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:17:28,172 [DEBUG][       Thread-611925][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:17:28,213 [DEBUG][       Thread-611925][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:17:28,213 [DEBUG][       Thread-611925][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:17:28,217 [DEBUG][       Thread-611925][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:17:28,229 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:17:28,229 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:17:28,230 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:17:28,231 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:17:28,234 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:17:28,235 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:17:28,235 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:17:28,235 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:17:28,235 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.636743 -999.00  +12.90  35.55     52   +3.30 1 2 2 1 1   887    0 10.03 23.38 ----- 38.9 35.5 23.2 47.4 13.7 -19.1 13.5 -19.1 13.3 -18.8 13.7 -18.8
2025-07-01 17:17:28,235 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:17:28,235 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:17:28,235 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.636743
2025-07-01 17:17:28,235 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:17:28,235 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:17:28,235 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:17:28,235 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:17:28,235 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:17:28,235 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:16:55', tmtdew=10.79, humidity=48.03, cloud=0.0, wind=29.08, temperature=13.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:16:54.595', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:17:28,236 [DEBUG][       Thread-611925][   transport.py][1871] : EOF in transport thread
2025-07-01 17:17:28,310 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:17:28,326 [DEBUG][       Thread-611928][   transport.py][1871] : starting thread (client mode): 0x75a85b0
2025-07-01 17:17:28,326 [DEBUG][       Thread-611928][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:17:28,347 [DEBUG][       Thread-611928][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:17:28,347 [ INFO][       Thread-611928][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:17:28,358 [DEBUG][       Thread-611928][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:17:28,358 [DEBUG][       Thread-611928][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:17:28,358 [DEBUG][       Thread-611928][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:17:28,358 [DEBUG][       Thread-611928][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:17:28,358 [DEBUG][       Thread-611928][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:17:28,358 [DEBUG][       Thread-611928][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:17:28,358 [DEBUG][       Thread-611928][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:17:28,358 [DEBUG][       Thread-611928][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:17:28,358 [DEBUG][       Thread-611928][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:17:28,358 [DEBUG][       Thread-611928][   transport.py][1871] : client lang: <none>
2025-07-01 17:17:28,358 [DEBUG][       Thread-611928][   transport.py][1871] : server lang: <none>
2025-07-01 17:17:28,358 [DEBUG][       Thread-611928][   transport.py][1871] : kex follows: False
2025-07-01 17:17:28,358 [DEBUG][       Thread-611928][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:17:28,358 [DEBUG][       Thread-611928][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:17:28,358 [DEBUG][       Thread-611928][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:17:28,358 [DEBUG][       Thread-611928][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:17:28,358 [DEBUG][       Thread-611928][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:17:28,358 [DEBUG][       Thread-611928][   transport.py][1871] : Compression: none
2025-07-01 17:17:28,358 [DEBUG][       Thread-611928][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:17:28,416 [DEBUG][       Thread-611928][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:17:28,416 [DEBUG][       Thread-611928][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:17:28,416 [DEBUG][       Thread-611928][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:17:28,416 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:17:28,416 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:17:28,482 [DEBUG][       Thread-611928][   transport.py][1871] : userauth is OK
2025-07-01 17:17:28,482 [DEBUG][       Thread-611928][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:17:28,482 [DEBUG][       Thread-611928][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:17:28,482 [DEBUG][       Thread-611928][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:17:28,482 [DEBUG][       Thread-611928][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:17:28,505 [ INFO][       Thread-611928][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:17:28,505 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:17:28,505 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:17:29,529 [DEBUG][       Thread-611928][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:17:29,529 [DEBUG][       Thread-611928][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:17:29,579 [DEBUG][       Thread-611928][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:17:29,579 [DEBUG][       Thread-611928][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:17:29,589 [DEBUG][       Thread-611928][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:17:29,601 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:17: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')
2025-07-01 17:17: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-07-01 17:17:29,617 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:17:29,617 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:17:29,617 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:17:29,625 [DEBUG][       Thread-611928][   transport.py][1871] : EOF in transport thread
2025-07-01 17:17:31,878 [DEBUG][Thread-611930 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:17:39,627 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:17:39,627 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:17:39,628 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:17:39,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-07-01 17:17:40,079 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 17, 27), 10.84, 47.74, 0.0, 31.62, 13.04, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:17:40,079 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:17:27
2025-07-01 17:17:40,164 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:17:40,167 [DEBUG][       Thread-611931][   transport.py][1871] : starting thread (client mode): 0x82b2320
2025-07-01 17:17:40,167 [DEBUG][       Thread-611931][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:17:40,169 [DEBUG][Thread-611932 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:17:40,188 [DEBUG][       Thread-611931][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:17:40,188 [ INFO][       Thread-611931][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:17:40,191 [DEBUG][       Thread-611931][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:17:40,191 [DEBUG][       Thread-611931][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:17:40,192 [DEBUG][       Thread-611931][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:17:40,192 [DEBUG][       Thread-611931][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:17:40,192 [DEBUG][       Thread-611931][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:17:40,192 [DEBUG][       Thread-611931][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:17:40,192 [DEBUG][       Thread-611931][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:17:40,192 [DEBUG][       Thread-611931][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:17:40,192 [DEBUG][       Thread-611931][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:17:40,192 [DEBUG][       Thread-611931][   transport.py][1871] : client lang: <none>
2025-07-01 17:17:40,192 [DEBUG][       Thread-611931][   transport.py][1871] : server lang: <none>
2025-07-01 17:17:40,192 [DEBUG][       Thread-611931][   transport.py][1871] : kex follows: False
2025-07-01 17:17:40,192 [DEBUG][       Thread-611931][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:17:40,192 [DEBUG][       Thread-611931][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:17:40,192 [DEBUG][       Thread-611931][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:17:40,192 [DEBUG][       Thread-611931][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:17:40,192 [DEBUG][       Thread-611931][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:17:40,192 [DEBUG][       Thread-611931][   transport.py][1871] : Compression: none
2025-07-01 17:17:40,192 [DEBUG][       Thread-611931][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:17:40,210 [DEBUG][       Thread-611931][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:17:40,210 [DEBUG][       Thread-611931][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:17:40,211 [DEBUG][       Thread-611931][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:17:40,211 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:17:40,211 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:17:40,212 [DEBUG][       Thread-611931][   transport.py][1871] : userauth is OK
2025-07-01 17:17:40,237 [ INFO][       Thread-611931][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:17:40,237 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:17:40,875 [DEBUG][       Thread-611931][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:17:40,876 [DEBUG][       Thread-611931][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:17:40,899 [DEBUG][Thread-611934 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:17:40,921 [DEBUG][       Thread-611931][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:17:40,921 [DEBUG][       Thread-611931][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:17:40,924 [DEBUG][       Thread-611931][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:17:40,935 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:17:40,936 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:17:40,938 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:17:40,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:17:40,946 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:17:40,948 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:17:40,948 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:17:40,949 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:17:40,949 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.636743 -999.00  +12.90  35.55     52   +3.30 1 2 2 1 1   887    0 10.03 23.38 ----- 38.9 35.5 23.2 47.4 13.7 -19.1 13.5 -19.1 13.3 -18.8 13.7 -18.8
2025-07-01 17:17:40,949 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:17:40,949 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:17:40,949 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.636743
2025-07-01 17:17:40,949 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:17:40,950 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:17:40,950 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:17:40,950 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:17:40,950 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:17:40,950 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:17:27', tmtdew=10.84, humidity=47.74, cloud=0.0, wind=31.62, temperature=13.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:16:54.595', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:17:40,951 [DEBUG][       Thread-611931][   transport.py][1871] : EOF in transport thread
2025-07-01 17:17:41,034 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:17:41,043 [DEBUG][       Thread-611936][   transport.py][1871] : starting thread (client mode): 0x81e67a0
2025-07-01 17:17:41,043 [DEBUG][       Thread-611936][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:17:41,059 [DEBUG][       Thread-611936][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:17:41,059 [ INFO][       Thread-611936][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:17:41,067 [DEBUG][       Thread-611936][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:17:41,067 [DEBUG][       Thread-611936][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:17:41,067 [DEBUG][       Thread-611936][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:17:41,067 [DEBUG][       Thread-611936][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:17:41,067 [DEBUG][       Thread-611936][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:17:41,067 [DEBUG][       Thread-611936][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:17:41,067 [DEBUG][       Thread-611936][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:17:41,067 [DEBUG][       Thread-611936][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:17:41,067 [DEBUG][       Thread-611936][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:17:41,067 [DEBUG][       Thread-611936][   transport.py][1871] : client lang: <none>
2025-07-01 17:17:41,067 [DEBUG][       Thread-611936][   transport.py][1871] : server lang: <none>
2025-07-01 17:17:41,067 [DEBUG][       Thread-611936][   transport.py][1871] : kex follows: False
2025-07-01 17:17:41,067 [DEBUG][       Thread-611936][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:17:41,067 [DEBUG][       Thread-611936][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:17:41,067 [DEBUG][       Thread-611936][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:17:41,067 [DEBUG][       Thread-611936][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:17:41,067 [DEBUG][       Thread-611936][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:17:41,068 [DEBUG][       Thread-611936][   transport.py][1871] : Compression: none
2025-07-01 17:17:41,068 [DEBUG][       Thread-611936][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:17:41,125 [DEBUG][       Thread-611936][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:17:41,126 [DEBUG][       Thread-611936][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:17:41,126 [DEBUG][       Thread-611936][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:17:41,127 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:17:41,127 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:17:41,182 [DEBUG][       Thread-611936][   transport.py][1871] : userauth is OK
2025-07-01 17:17:41,182 [DEBUG][       Thread-611936][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:17:41,182 [DEBUG][       Thread-611936][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:17:41,182 [DEBUG][       Thread-611936][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:17:41,182 [DEBUG][       Thread-611936][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:17:41,201 [ INFO][       Thread-611936][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:17:41,201 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:17:41,202 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:17:42,255 [DEBUG][       Thread-611936][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:17:42,255 [DEBUG][       Thread-611936][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:17:42,303 [DEBUG][       Thread-611936][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:17:42,303 [DEBUG][       Thread-611936][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:17:42,312 [DEBUG][       Thread-611936][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:17:42,320 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:17:42,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-07-01 17:17:42,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-07-01 17:17:42,336 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:17:42,336 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:17:42,336 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:17:42,344 [DEBUG][       Thread-611936][   transport.py][1871] : EOF in transport thread
2025-07-01 17:17:49,922 [DEBUG][Thread-611938 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:17:52,339 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:17:52,340 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:17:52,340 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:17:52,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-07-01 17:17:52,808 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 17, 27), 10.84, 47.74, 0.0, 31.62, 13.04, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:17:52,808 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:17:27
2025-07-01 17:17:52,892 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:17:52,898 [DEBUG][       Thread-611939][   transport.py][1871] : starting thread (client mode): 0x82b3a00
2025-07-01 17:17:52,898 [DEBUG][       Thread-611939][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:17:52,918 [DEBUG][       Thread-611939][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:17:52,918 [ INFO][       Thread-611939][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:17:52,921 [DEBUG][       Thread-611939][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:17:52,921 [DEBUG][       Thread-611939][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:17:52,921 [DEBUG][       Thread-611939][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:17:52,921 [DEBUG][       Thread-611939][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:17:52,921 [DEBUG][       Thread-611939][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:17:52,921 [DEBUG][       Thread-611939][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:17:52,921 [DEBUG][       Thread-611939][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:17:52,921 [DEBUG][       Thread-611939][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:17:52,921 [DEBUG][       Thread-611939][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:17:52,922 [DEBUG][       Thread-611939][   transport.py][1871] : client lang: <none>
2025-07-01 17:17:52,922 [DEBUG][       Thread-611939][   transport.py][1871] : server lang: <none>
2025-07-01 17:17:52,922 [DEBUG][       Thread-611939][   transport.py][1871] : kex follows: False
2025-07-01 17:17:52,922 [DEBUG][       Thread-611939][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:17:52,922 [DEBUG][       Thread-611939][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:17:52,922 [DEBUG][       Thread-611939][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:17:52,922 [DEBUG][       Thread-611939][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:17:52,922 [DEBUG][       Thread-611939][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:17:52,922 [DEBUG][       Thread-611939][   transport.py][1871] : Compression: none
2025-07-01 17:17:52,922 [DEBUG][       Thread-611939][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:17:52,937 [DEBUG][       Thread-611939][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:17:52,937 [DEBUG][       Thread-611939][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:17:52,938 [DEBUG][       Thread-611939][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:17:52,938 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:17:52,938 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:17:52,939 [DEBUG][       Thread-611939][   transport.py][1871] : userauth is OK
2025-07-01 17:17:52,964 [ INFO][       Thread-611939][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:17:52,965 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:17:53,551 [DEBUG][       Thread-611939][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:17:53,551 [DEBUG][       Thread-611939][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:17:53,593 [DEBUG][       Thread-611939][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:17:53,593 [DEBUG][       Thread-611939][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:17:53,597 [DEBUG][       Thread-611939][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:17:53,608 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:17:53,608 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:17:53,610 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:17:53,612 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:17:53,617 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:17:53,619 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:17:53,619 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:17:53,620 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:17:53,620 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.636743 -999.00  +12.90  35.55     52   +3.30 1 2 2 1 1   887    0 10.03 23.38 ----- 38.9 35.5 23.2 47.4 13.7 -19.1 13.5 -19.1 13.3 -18.8 13.7 -18.8
2025-07-01 17:17:53,620 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:17:53,620 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:17:53,620 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.636743
2025-07-01 17:17:53,621 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:17:53,621 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:17:53,621 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:17:53,621 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:17:53,621 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:17:53,622 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:17:27', tmtdew=10.84, humidity=47.74, cloud=0.0, wind=31.62, temperature=13.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:16:54.595', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:17:53,622 [DEBUG][       Thread-611939][   transport.py][1871] : EOF in transport thread
2025-07-01 17:17:53,707 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:17:53,718 [DEBUG][       Thread-611942][   transport.py][1871] : starting thread (client mode): 0x75a8490
2025-07-01 17:17:53,718 [DEBUG][       Thread-611942][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:17:53,733 [DEBUG][       Thread-611942][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:17:53,733 [ INFO][       Thread-611942][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:17:53,741 [DEBUG][       Thread-611942][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:17:53,741 [DEBUG][       Thread-611942][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:17:53,741 [DEBUG][       Thread-611942][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:17:53,741 [DEBUG][       Thread-611942][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:17:53,741 [DEBUG][       Thread-611942][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:17:53,741 [DEBUG][       Thread-611942][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:17:53,741 [DEBUG][       Thread-611942][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:17:53,741 [DEBUG][       Thread-611942][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:17:53,741 [DEBUG][       Thread-611942][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:17:53,741 [DEBUG][       Thread-611942][   transport.py][1871] : client lang: <none>
2025-07-01 17:17:53,741 [DEBUG][       Thread-611942][   transport.py][1871] : server lang: <none>
2025-07-01 17:17:53,741 [DEBUG][       Thread-611942][   transport.py][1871] : kex follows: False
2025-07-01 17:17:53,741 [DEBUG][       Thread-611942][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:17:53,741 [DEBUG][       Thread-611942][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:17:53,741 [DEBUG][       Thread-611942][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:17:53,741 [DEBUG][       Thread-611942][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:17:53,741 [DEBUG][       Thread-611942][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:17:53,742 [DEBUG][       Thread-611942][   transport.py][1871] : Compression: none
2025-07-01 17:17:53,742 [DEBUG][       Thread-611942][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:17:53,798 [DEBUG][       Thread-611942][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:17:53,798 [DEBUG][       Thread-611942][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:17:53,799 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:17:53,800 [DEBUG][       Thread-611942][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:17:53,800 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:17:53,854 [DEBUG][       Thread-611942][   transport.py][1871] : userauth is OK
2025-07-01 17:17:53,854 [DEBUG][       Thread-611942][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:17:53,854 [DEBUG][       Thread-611942][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:17:53,854 [DEBUG][       Thread-611942][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:17:53,855 [DEBUG][       Thread-611942][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:17:53,873 [ INFO][       Thread-611942][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:17:53,873 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:17:53,874 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:17:54,903 [DEBUG][       Thread-611942][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:17:54,903 [DEBUG][       Thread-611942][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:17:54,956 [DEBUG][       Thread-611942][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:17:54,956 [DEBUG][       Thread-611942][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:17:54,965 [DEBUG][       Thread-611942][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:17:54,974 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:17:54,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-07-01 17:17:54,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-07-01 17:17:54,993 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:17:54,993 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:17:54,994 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:17:55,002 [DEBUG][       Thread-611942][   transport.py][1871] : EOF in transport thread
2025-07-01 17:17:58,954 [DEBUG][Thread-611944 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:18:05,004 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:18:05,005 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:18:05,005 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:18:05,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-07-01 17:18:05,477 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 17, 58), 10.83, 47.77, 0.0, 33.8, 13.03, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:18:05,477 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:17:58
2025-07-01 17:18:05,561 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:18:05,565 [DEBUG][       Thread-611945][   transport.py][1871] : starting thread (client mode): 0x818f9d0
2025-07-01 17:18:05,565 [DEBUG][       Thread-611945][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:18:05,586 [DEBUG][       Thread-611945][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:18:05,586 [ INFO][       Thread-611945][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:18:05,590 [DEBUG][       Thread-611945][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:18:05,590 [DEBUG][       Thread-611945][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:18:05,590 [DEBUG][       Thread-611945][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:18:05,590 [DEBUG][       Thread-611945][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:18:05,590 [DEBUG][       Thread-611945][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:18:05,590 [DEBUG][       Thread-611945][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:18:05,590 [DEBUG][       Thread-611945][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:18:05,590 [DEBUG][       Thread-611945][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:18:05,590 [DEBUG][       Thread-611945][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:18:05,590 [DEBUG][       Thread-611945][   transport.py][1871] : client lang: <none>
2025-07-01 17:18:05,590 [DEBUG][       Thread-611945][   transport.py][1871] : server lang: <none>
2025-07-01 17:18:05,590 [DEBUG][       Thread-611945][   transport.py][1871] : kex follows: False
2025-07-01 17:18:05,590 [DEBUG][       Thread-611945][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:18:05,590 [DEBUG][       Thread-611945][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:18:05,590 [DEBUG][       Thread-611945][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:18:05,590 [DEBUG][       Thread-611945][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:18:05,590 [DEBUG][       Thread-611945][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:18:05,590 [DEBUG][       Thread-611945][   transport.py][1871] : Compression: none
2025-07-01 17:18:05,590 [DEBUG][       Thread-611945][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:18:05,607 [DEBUG][       Thread-611945][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:18:05,608 [DEBUG][       Thread-611945][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:18:05,609 [DEBUG][       Thread-611945][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:18:05,609 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:18:05,609 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:18:05,610 [DEBUG][       Thread-611945][   transport.py][1871] : userauth is OK
2025-07-01 17:18:05,634 [ INFO][       Thread-611945][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:18:05,635 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:18:06,269 [DEBUG][       Thread-611945][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:18:06,269 [DEBUG][       Thread-611945][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:18:06,312 [DEBUG][       Thread-611945][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:18:06,313 [DEBUG][       Thread-611945][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:18:06,315 [DEBUG][       Thread-611945][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:18:06,327 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:18:06,327 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:18:06,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:18:06,330 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:18:06,333 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:18:06,333 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:18:06,333 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:18:06,334 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:18:06,334 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.637438 -999.00  +12.90  26.70     52   +3.30 1 2 1 1 1   887    0 10.32 26.03 ----- 34.4 26.7 319.9 55.6 13.7 -19.4 13.5 -19.2 13.3 -19.0 13.7 -19.1
2025-07-01 17:18:06,334 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:18:06,334 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:18:06,334 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.637438
2025-07-01 17:18:06,334 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:18:06,334 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:18:06,334 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:18:06,334 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:18:06,334 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:18:06,334 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:17:58', tmtdew=10.83, humidity=47.77, cloud=0.0, wind=33.8, temperature=13.03, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:17:54.643', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:18:06,335 [DEBUG][       Thread-611945][   transport.py][1871] : EOF in transport thread
2025-07-01 17:18:06,412 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:18:06,421 [DEBUG][       Thread-611948][   transport.py][1871] : starting thread (client mode): 0x8157a00
2025-07-01 17:18:06,421 [DEBUG][       Thread-611948][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:18:06,437 [DEBUG][       Thread-611948][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:18:06,437 [ INFO][       Thread-611948][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:18:06,450 [DEBUG][       Thread-611948][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:18:06,450 [DEBUG][       Thread-611948][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:18:06,450 [DEBUG][       Thread-611948][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:18:06,450 [DEBUG][       Thread-611948][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:18:06,450 [DEBUG][       Thread-611948][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:18:06,450 [DEBUG][       Thread-611948][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:18:06,450 [DEBUG][       Thread-611948][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:18:06,450 [DEBUG][       Thread-611948][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:18:06,450 [DEBUG][       Thread-611948][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:18:06,450 [DEBUG][       Thread-611948][   transport.py][1871] : client lang: <none>
2025-07-01 17:18:06,450 [DEBUG][       Thread-611948][   transport.py][1871] : server lang: <none>
2025-07-01 17:18:06,450 [DEBUG][       Thread-611948][   transport.py][1871] : kex follows: False
2025-07-01 17:18:06,450 [DEBUG][       Thread-611948][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:18:06,450 [DEBUG][       Thread-611948][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:18:06,450 [DEBUG][       Thread-611948][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:18:06,450 [DEBUG][       Thread-611948][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:18:06,450 [DEBUG][       Thread-611948][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:18:06,450 [DEBUG][       Thread-611948][   transport.py][1871] : Compression: none
2025-07-01 17:18:06,450 [DEBUG][       Thread-611948][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:18:06,504 [DEBUG][       Thread-611948][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:18:06,504 [DEBUG][       Thread-611948][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:18:06,504 [DEBUG][       Thread-611948][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:18:06,504 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:18:06,504 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:18:06,564 [DEBUG][       Thread-611948][   transport.py][1871] : userauth is OK
2025-07-01 17:18:06,564 [DEBUG][       Thread-611948][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:18:06,564 [DEBUG][       Thread-611948][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:18:06,564 [DEBUG][       Thread-611948][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:18:06,564 [DEBUG][       Thread-611948][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:18:06,583 [ INFO][       Thread-611948][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:18:06,583 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:18:06,583 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:18:07,618 [DEBUG][       Thread-611948][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:18:07,618 [DEBUG][       Thread-611948][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:18:07,667 [DEBUG][       Thread-611948][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:18:07,667 [DEBUG][       Thread-611948][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:18:07,676 [DEBUG][       Thread-611948][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:18:07,684 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:18:07,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')
2025-07-01 17:18:07,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-07-01 17:18:07,700 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:18:07,700 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:18:07,700 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:18:07,708 [DEBUG][       Thread-611948][   transport.py][1871] : EOF in transport thread
2025-07-01 17:18:07,971 [DEBUG][Thread-611950 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:18:16,995 [DEBUG][Thread-611951 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:18:17,710 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:18:17,711 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:18:17,711 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:18:17,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-07-01 17:18:18,162 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 17, 58), 10.83, 47.77, 0.0, 33.8, 13.03, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:18:18,162 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:17:58
2025-07-01 17:18:18,246 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:18:18,249 [DEBUG][       Thread-611952][   transport.py][1871] : starting thread (client mode): 0x81d9600
2025-07-01 17:18:18,250 [DEBUG][       Thread-611952][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:18:18,270 [DEBUG][       Thread-611952][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:18:18,270 [ INFO][       Thread-611952][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:18:18,273 [DEBUG][       Thread-611952][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:18:18,273 [DEBUG][       Thread-611952][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:18:18,274 [DEBUG][       Thread-611952][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:18:18,274 [DEBUG][       Thread-611952][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:18:18,274 [DEBUG][       Thread-611952][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:18:18,274 [DEBUG][       Thread-611952][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:18:18,274 [DEBUG][       Thread-611952][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:18:18,274 [DEBUG][       Thread-611952][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:18:18,274 [DEBUG][       Thread-611952][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:18:18,274 [DEBUG][       Thread-611952][   transport.py][1871] : client lang: <none>
2025-07-01 17:18:18,274 [DEBUG][       Thread-611952][   transport.py][1871] : server lang: <none>
2025-07-01 17:18:18,274 [DEBUG][       Thread-611952][   transport.py][1871] : kex follows: False
2025-07-01 17:18:18,274 [DEBUG][       Thread-611952][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:18:18,274 [DEBUG][       Thread-611952][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:18:18,274 [DEBUG][       Thread-611952][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:18:18,274 [DEBUG][       Thread-611952][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:18:18,274 [DEBUG][       Thread-611952][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:18:18,274 [DEBUG][       Thread-611952][   transport.py][1871] : Compression: none
2025-07-01 17:18:18,274 [DEBUG][       Thread-611952][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:18:18,290 [DEBUG][       Thread-611952][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:18:18,290 [DEBUG][       Thread-611952][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:18:18,291 [DEBUG][       Thread-611952][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:18:18,291 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:18:18,291 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:18:18,292 [DEBUG][       Thread-611952][   transport.py][1871] : userauth is OK
2025-07-01 17:18:18,305 [ INFO][       Thread-611952][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:18:18,306 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:18:18,957 [DEBUG][       Thread-611952][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:18:18,957 [DEBUG][       Thread-611952][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:18:19,001 [DEBUG][       Thread-611952][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:18:19,001 [DEBUG][       Thread-611952][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:18:19,004 [DEBUG][       Thread-611952][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:18:19,017 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:18:19,018 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:18:19,020 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:18:19,021 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:18:19,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:18:19,029 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:18:19,029 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:18:19,029 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:18:19,030 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.637438 -999.00  +12.90  26.70     52   +3.30 1 2 1 1 1   887    0 10.32 26.03 ----- 34.4 26.7 319.9 55.6 13.7 -19.4 13.5 -19.2 13.3 -19.0 13.7 -19.1
2025-07-01 17:18:19,030 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:18:19,030 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:18:19,030 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.637438
2025-07-01 17:18:19,030 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:18:19,031 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:18:19,031 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:18:19,031 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:18:19,031 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:18:19,031 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:17:58', tmtdew=10.83, humidity=47.77, cloud=0.0, wind=33.8, temperature=13.03, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:17:54.643', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:18:19,031 [DEBUG][       Thread-611952][   transport.py][1871] : EOF in transport thread
2025-07-01 17:18:19,115 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:18:26,020 [DEBUG][Thread-611955 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:18:35,041 [DEBUG][Thread-611956 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:18:40,200 [DEBUG][Thread-611957 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:18:44,060 [DEBUG][Thread-611958 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:18:53,079 [DEBUG][Thread-611959 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:19:02,100 [DEBUG][Thread-611960 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:19:11,121 [DEBUG][Thread-611961 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:19:20,144 [DEBUG][Thread-611962 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:19:29,163 [DEBUG][Thread-611963 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:19:38,186 [DEBUG][Thread-611964 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:19:40,231 [DEBUG][Thread-611965 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:19:47,211 [DEBUG][Thread-611966 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:19:56,234 [DEBUG][Thread-611967 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:20:05,254 [DEBUG][Thread-611968 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:20:14,275 [DEBUG][Thread-611969 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:20:23,300 [DEBUG][Thread-611970 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:20: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-07-01 17:20:32,323 [DEBUG][Thread-611971 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:20:38,700 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:20:38,700 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:20:38,700 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:20:38,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-07-01 17:20:39,249 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 20, 6), 10.82, 47.81, 0.0, 30.86, 12.98, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:20:39,249 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:20:06
2025-07-01 17:20:39,345 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:20:39,349 [DEBUG][       Thread-611972][   transport.py][1871] : starting thread (client mode): 0x82b25f0
2025-07-01 17:20:39,349 [DEBUG][       Thread-611972][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:20:39,370 [DEBUG][       Thread-611972][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:20:39,370 [ INFO][       Thread-611972][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:20:39,373 [DEBUG][       Thread-611972][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:20:39,373 [DEBUG][       Thread-611972][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:20:39,373 [DEBUG][       Thread-611972][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:20:39,373 [DEBUG][       Thread-611972][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:20:39,373 [DEBUG][       Thread-611972][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:20:39,373 [DEBUG][       Thread-611972][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:20:39,373 [DEBUG][       Thread-611972][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:20:39,373 [DEBUG][       Thread-611972][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:20:39,373 [DEBUG][       Thread-611972][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:20:39,373 [DEBUG][       Thread-611972][   transport.py][1871] : client lang: <none>
2025-07-01 17:20:39,373 [DEBUG][       Thread-611972][   transport.py][1871] : server lang: <none>
2025-07-01 17:20:39,373 [DEBUG][       Thread-611972][   transport.py][1871] : kex follows: False
2025-07-01 17:20:39,373 [DEBUG][       Thread-611972][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:20:39,373 [DEBUG][       Thread-611972][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:20:39,373 [DEBUG][       Thread-611972][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:20:39,373 [DEBUG][       Thread-611972][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:20:39,373 [DEBUG][       Thread-611972][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:20:39,373 [DEBUG][       Thread-611972][   transport.py][1871] : Compression: none
2025-07-01 17:20:39,373 [DEBUG][       Thread-611972][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:20:39,388 [DEBUG][       Thread-611972][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:20:39,388 [DEBUG][       Thread-611972][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:20:39,388 [DEBUG][       Thread-611972][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:20:39,389 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:20:39,389 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:20:39,389 [DEBUG][       Thread-611972][   transport.py][1871] : userauth is OK
2025-07-01 17:20:39,413 [ INFO][       Thread-611972][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:20:39,413 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:20:40,038 [DEBUG][       Thread-611972][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:20:40,038 [DEBUG][       Thread-611972][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:20:40,080 [DEBUG][       Thread-611972][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:20:40,080 [DEBUG][       Thread-611972][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:20:40,082 [DEBUG][       Thread-611972][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:20:40,096 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:20:40,097 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:20:40,097 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:20:40,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:20:40,101 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:20:40,101 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:20:40,101 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:20:40,102 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:20:40,102 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.638826 -999.00  +12.70  26.71     52   +3.30 1 2 1 1 1   887    0 10.05 27.25 ----- 27.5 26.7 16.9 39.5 13.6 -20.0 13.4 -19.6 13.2 -19.2 13.6 -19.3
2025-07-01 17:20:40,102 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:20:40,102 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:20:40,102 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.638826
2025-07-01 17:20:40,102 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:20:40,102 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:20:40,102 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:20:40,102 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:20:40,102 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:20:40,102 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:20:06', tmtdew=10.82, humidity=47.81, cloud=0.0, wind=30.86, temperature=12.98, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:19:54.566', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:20:40,102 [DEBUG][       Thread-611972][   transport.py][1871] : EOF in transport thread
2025-07-01 17:20:40,177 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:20:40,188 [DEBUG][       Thread-611975][   transport.py][1871] : starting thread (client mode): 0x81c9300
2025-07-01 17:20:40,188 [DEBUG][       Thread-611975][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:20:40,203 [DEBUG][       Thread-611975][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:20:40,203 [ INFO][       Thread-611975][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:20:40,211 [DEBUG][       Thread-611975][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:20:40,211 [DEBUG][       Thread-611975][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:20:40,211 [DEBUG][       Thread-611975][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:20:40,211 [DEBUG][       Thread-611975][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:20:40,211 [DEBUG][       Thread-611975][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:20:40,211 [DEBUG][       Thread-611975][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:20:40,211 [DEBUG][       Thread-611975][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:20:40,211 [DEBUG][       Thread-611975][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:20:40,211 [DEBUG][       Thread-611975][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:20:40,211 [DEBUG][       Thread-611975][   transport.py][1871] : client lang: <none>
2025-07-01 17:20:40,211 [DEBUG][       Thread-611975][   transport.py][1871] : server lang: <none>
2025-07-01 17:20:40,211 [DEBUG][       Thread-611975][   transport.py][1871] : kex follows: False
2025-07-01 17:20:40,211 [DEBUG][       Thread-611975][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:20:40,211 [DEBUG][       Thread-611975][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:20:40,211 [DEBUG][       Thread-611975][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:20:40,211 [DEBUG][       Thread-611975][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:20:40,211 [DEBUG][       Thread-611975][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:20:40,211 [DEBUG][       Thread-611975][   transport.py][1871] : Compression: none
2025-07-01 17:20:40,211 [DEBUG][       Thread-611975][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:20:40,257 [DEBUG][Thread-611977 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:20:40,271 [DEBUG][       Thread-611975][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:20:40,271 [DEBUG][       Thread-611975][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:20:40,271 [DEBUG][       Thread-611975][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:20:40,271 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:20:40,271 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:20:40,328 [DEBUG][       Thread-611975][   transport.py][1871] : userauth is OK
2025-07-01 17:20:40,328 [DEBUG][       Thread-611975][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:20:40,328 [DEBUG][       Thread-611975][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:20:40,328 [DEBUG][       Thread-611975][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:20:40,328 [DEBUG][       Thread-611975][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:20:40,342 [ INFO][       Thread-611975][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:20:40,342 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:20:40,342 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:20:41,331 [DEBUG][       Thread-611975][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:20:41,331 [DEBUG][       Thread-611975][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:20:41,347 [DEBUG][Thread-611978 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:20:41,380 [DEBUG][       Thread-611975][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:20:41,380 [DEBUG][       Thread-611975][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:20:41,388 [DEBUG][       Thread-611975][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:20:41,396 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:20:41,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-07-01 17:20:41,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-07-01 17:20:41,413 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:20:41,413 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:20:41,413 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:20:41,421 [DEBUG][       Thread-611975][   transport.py][1871] : EOF in transport thread
2025-07-01 17:20:50,371 [DEBUG][Thread-611979 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:20:51,423 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:20:51,424 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:20:51,424 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:20:51,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-07-01 17:20:51,935 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 20, 38), 10.8, 47.74, 0.0, 33.5, 12.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:20:51,935 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:20:38
2025-07-01 17:20:52,020 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:20:52,024 [DEBUG][       Thread-611980][   transport.py][1871] : starting thread (client mode): 0x82b1e40
2025-07-01 17:20:52,024 [DEBUG][       Thread-611980][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:20:52,044 [DEBUG][       Thread-611980][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:20:52,044 [ INFO][       Thread-611980][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:20:52,047 [DEBUG][       Thread-611980][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:20:52,047 [DEBUG][       Thread-611980][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:20:52,047 [DEBUG][       Thread-611980][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:20:52,047 [DEBUG][       Thread-611980][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:20:52,047 [DEBUG][       Thread-611980][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:20:52,047 [DEBUG][       Thread-611980][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:20:52,047 [DEBUG][       Thread-611980][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:20:52,047 [DEBUG][       Thread-611980][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:20:52,047 [DEBUG][       Thread-611980][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:20:52,047 [DEBUG][       Thread-611980][   transport.py][1871] : client lang: <none>
2025-07-01 17:20:52,047 [DEBUG][       Thread-611980][   transport.py][1871] : server lang: <none>
2025-07-01 17:20:52,048 [DEBUG][       Thread-611980][   transport.py][1871] : kex follows: False
2025-07-01 17:20:52,048 [DEBUG][       Thread-611980][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:20:52,048 [DEBUG][       Thread-611980][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:20:52,048 [DEBUG][       Thread-611980][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:20:52,048 [DEBUG][       Thread-611980][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:20:52,048 [DEBUG][       Thread-611980][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:20:52,048 [DEBUG][       Thread-611980][   transport.py][1871] : Compression: none
2025-07-01 17:20:52,048 [DEBUG][       Thread-611980][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:20:52,062 [DEBUG][       Thread-611980][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:20:52,062 [DEBUG][       Thread-611980][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:20:52,062 [DEBUG][       Thread-611980][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:20:52,062 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:20:52,062 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:20:52,063 [DEBUG][       Thread-611980][   transport.py][1871] : userauth is OK
2025-07-01 17:20:52,089 [ INFO][       Thread-611980][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:20:52,089 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:20:52,718 [DEBUG][       Thread-611980][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:20:52,718 [DEBUG][       Thread-611980][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:20:52,761 [DEBUG][       Thread-611980][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:20:52,761 [DEBUG][       Thread-611980][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:20:52,765 [DEBUG][       Thread-611980][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:20:52,777 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:20:52,777 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:20:52,779 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:20:52,781 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:20:52,787 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:20:52,789 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:20:52,789 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:20:52,790 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:20:52,790 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.639174 -999.00  +12.80  31.93     52   +3.30 1 2 2 1 1   887    0 10.14 27.55 ----- 32.7 31.9 15.8 50.6 13.6 -19.9 13.4 -19.6 13.2 -19.1 13.6 -19.3
2025-07-01 17:20:52,790 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:20:52,790 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:20:52,790 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.639174
2025-07-01 17:20:52,791 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:20:52,791 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:20:52,791 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:20:52,791 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:20:52,791 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:20:52,792 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:20:38', tmtdew=10.8, humidity=47.74, cloud=0.0, wind=33.5, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:20:24.634', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:20:52,792 [DEBUG][       Thread-611980][   transport.py][1871] : EOF in transport thread
2025-07-01 17:20:52,875 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:20:52,885 [DEBUG][       Thread-611983][   transport.py][1871] : starting thread (client mode): 0x818f670
2025-07-01 17:20:52,885 [DEBUG][       Thread-611983][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:20:52,901 [DEBUG][       Thread-611983][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:20:52,901 [ INFO][       Thread-611983][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:20:52,908 [DEBUG][       Thread-611983][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:20:52,909 [DEBUG][       Thread-611983][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:20:52,909 [DEBUG][       Thread-611983][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:20:52,909 [DEBUG][       Thread-611983][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:20:52,909 [DEBUG][       Thread-611983][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:20:52,909 [DEBUG][       Thread-611983][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:20:52,909 [DEBUG][       Thread-611983][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:20:52,909 [DEBUG][       Thread-611983][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:20:52,909 [DEBUG][       Thread-611983][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:20:52,909 [DEBUG][       Thread-611983][   transport.py][1871] : client lang: <none>
2025-07-01 17:20:52,909 [DEBUG][       Thread-611983][   transport.py][1871] : server lang: <none>
2025-07-01 17:20:52,909 [DEBUG][       Thread-611983][   transport.py][1871] : kex follows: False
2025-07-01 17:20:52,909 [DEBUG][       Thread-611983][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:20:52,909 [DEBUG][       Thread-611983][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:20:52,909 [DEBUG][       Thread-611983][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:20:52,909 [DEBUG][       Thread-611983][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:20:52,909 [DEBUG][       Thread-611983][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:20:52,909 [DEBUG][       Thread-611983][   transport.py][1871] : Compression: none
2025-07-01 17:20:52,909 [DEBUG][       Thread-611983][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:20:52,965 [DEBUG][       Thread-611983][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:20:52,966 [DEBUG][       Thread-611983][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:20:52,967 [DEBUG][       Thread-611983][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:20:52,967 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:20:52,968 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:20:53,024 [DEBUG][       Thread-611983][   transport.py][1871] : userauth is OK
2025-07-01 17:20:53,024 [DEBUG][       Thread-611983][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:20:53,024 [DEBUG][       Thread-611983][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:20:53,024 [DEBUG][       Thread-611983][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:20:53,024 [DEBUG][       Thread-611983][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:20:53,047 [ INFO][       Thread-611983][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:20:53,047 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:20:53,048 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:20:54,078 [DEBUG][       Thread-611983][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:20:54,078 [DEBUG][       Thread-611983][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:20:54,128 [DEBUG][       Thread-611983][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:20:54,128 [DEBUG][       Thread-611983][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:20:54,137 [DEBUG][       Thread-611983][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:20:54,146 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:20:54,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-07-01 17:20:54,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-07-01 17:20:54,165 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:20:54,165 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:20:54,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:20:54,174 [DEBUG][       Thread-611983][   transport.py][1871] : EOF in transport thread
2025-07-01 17:20:59,392 [DEBUG][Thread-611985 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:21:04,177 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:21:04,177 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:21:04,177 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:21:04,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-07-01 17:21:04,671 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 20, 38), 10.8, 47.74, 0.0, 33.5, 12.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:21:04,671 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:20:38
2025-07-01 17:21:04,757 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:21:04,762 [DEBUG][       Thread-611986][   transport.py][1871] : starting thread (client mode): 0x81a63b0
2025-07-01 17:21:04,762 [DEBUG][       Thread-611986][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:21:04,783 [DEBUG][       Thread-611986][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:21:04,783 [ INFO][       Thread-611986][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:21:04,786 [DEBUG][       Thread-611986][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:21:04,786 [DEBUG][       Thread-611986][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:21:04,786 [DEBUG][       Thread-611986][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:21:04,786 [DEBUG][       Thread-611986][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:21:04,786 [DEBUG][       Thread-611986][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:21:04,787 [DEBUG][       Thread-611986][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:21:04,787 [DEBUG][       Thread-611986][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:21:04,787 [DEBUG][       Thread-611986][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:21:04,787 [DEBUG][       Thread-611986][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:21:04,787 [DEBUG][       Thread-611986][   transport.py][1871] : client lang: <none>
2025-07-01 17:21:04,787 [DEBUG][       Thread-611986][   transport.py][1871] : server lang: <none>
2025-07-01 17:21:04,787 [DEBUG][       Thread-611986][   transport.py][1871] : kex follows: False
2025-07-01 17:21:04,787 [DEBUG][       Thread-611986][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:21:04,787 [DEBUG][       Thread-611986][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:21:04,787 [DEBUG][       Thread-611986][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:21:04,787 [DEBUG][       Thread-611986][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:21:04,787 [DEBUG][       Thread-611986][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:21:04,787 [DEBUG][       Thread-611986][   transport.py][1871] : Compression: none
2025-07-01 17:21:04,787 [DEBUG][       Thread-611986][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:21:04,804 [DEBUG][       Thread-611986][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:21:04,804 [DEBUG][       Thread-611986][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:21:04,804 [DEBUG][       Thread-611986][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:21:04,805 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:21:04,805 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:21:04,806 [DEBUG][       Thread-611986][   transport.py][1871] : userauth is OK
2025-07-01 17:21:04,831 [ INFO][       Thread-611986][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:21:04,832 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:21:05,455 [DEBUG][       Thread-611986][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:21:05,455 [DEBUG][       Thread-611986][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:21:05,497 [DEBUG][       Thread-611986][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:21:05,497 [DEBUG][       Thread-611986][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:21:05,500 [DEBUG][       Thread-611986][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:21:05,513 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:21:05,513 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:21:05,515 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:21:05,517 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:21:05,522 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:21:05,524 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:21:05,525 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:21:05,525 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:21:05,525 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.639174 -999.00  +12.80  31.93     52   +3.30 1 2 2 1 1   887    0 10.14 27.55 ----- 32.7 31.9 15.8 50.6 13.6 -19.9 13.4 -19.6 13.2 -19.1 13.6 -19.3
2025-07-01 17:21:05,525 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:21:05,525 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:21:05,526 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.639174
2025-07-01 17:21:05,526 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:21:05,527 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:21:05,527 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:21:05,527 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:21:05,527 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:21:05,527 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:20:38', tmtdew=10.8, humidity=47.74, cloud=0.0, wind=33.5, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:20:24.634', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:21:05,528 [DEBUG][       Thread-611986][   transport.py][1871] : EOF in transport thread
2025-07-01 17:21:05,612 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:21:05,625 [DEBUG][       Thread-611989][   transport.py][1871] : starting thread (client mode): 0x8171b40
2025-07-01 17:21:05,625 [DEBUG][       Thread-611989][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:21:05,642 [DEBUG][       Thread-611989][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:21:05,642 [ INFO][       Thread-611989][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:21:05,652 [DEBUG][       Thread-611989][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:21:05,652 [DEBUG][       Thread-611989][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:21:05,652 [DEBUG][       Thread-611989][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:21:05,652 [DEBUG][       Thread-611989][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:21:05,652 [DEBUG][       Thread-611989][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:21:05,652 [DEBUG][       Thread-611989][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:21:05,652 [DEBUG][       Thread-611989][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:21:05,652 [DEBUG][       Thread-611989][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:21:05,652 [DEBUG][       Thread-611989][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:21:05,652 [DEBUG][       Thread-611989][   transport.py][1871] : client lang: <none>
2025-07-01 17:21:05,652 [DEBUG][       Thread-611989][   transport.py][1871] : server lang: <none>
2025-07-01 17:21:05,652 [DEBUG][       Thread-611989][   transport.py][1871] : kex follows: False
2025-07-01 17:21:05,652 [DEBUG][       Thread-611989][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:21:05,652 [DEBUG][       Thread-611989][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:21:05,653 [DEBUG][       Thread-611989][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:21:05,653 [DEBUG][       Thread-611989][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:21:05,653 [DEBUG][       Thread-611989][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:21:05,653 [DEBUG][       Thread-611989][   transport.py][1871] : Compression: none
2025-07-01 17:21:05,653 [DEBUG][       Thread-611989][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:21:05,711 [DEBUG][       Thread-611989][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:21:05,711 [DEBUG][       Thread-611989][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:21:05,712 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:21:05,712 [DEBUG][       Thread-611989][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:21:05,713 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:21:05,771 [DEBUG][       Thread-611989][   transport.py][1871] : userauth is OK
2025-07-01 17:21:05,771 [DEBUG][       Thread-611989][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:21:05,771 [DEBUG][       Thread-611989][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:21:05,771 [DEBUG][       Thread-611989][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:21:05,772 [DEBUG][       Thread-611989][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:21:05,795 [ INFO][       Thread-611989][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:21:05,796 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:21:05,796 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:21:06,843 [DEBUG][       Thread-611989][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:21:06,843 [DEBUG][       Thread-611989][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:21:06,892 [DEBUG][       Thread-611989][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:21:06,892 [DEBUG][       Thread-611989][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:21:06,902 [DEBUG][       Thread-611989][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:21:06,911 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:21:06,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-07-01 17:21:06,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-07-01 17:21:06,929 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:21:06,929 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:21:06,930 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:21:06,937 [DEBUG][       Thread-611989][   transport.py][1871] : EOF in transport thread
2025-07-01 17:21:08,430 [DEBUG][Thread-611991 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:21:16,940 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:21:16,940 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:21:16,940 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:21:16,943 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:21:17,448 [DEBUG][Thread-611992 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:21:17,450 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 21, 10), 10.79, 47.76, 0.0, 40.07, 12.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:21:17,450 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:21:10
2025-07-01 17:21:17,540 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:21:17,544 [DEBUG][       Thread-611993][   transport.py][1871] : starting thread (client mode): 0x8171480
2025-07-01 17:21:17,544 [DEBUG][       Thread-611993][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:21:17,565 [DEBUG][       Thread-611993][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:21:17,565 [ INFO][       Thread-611993][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:21:17,569 [DEBUG][       Thread-611993][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:21:17,569 [DEBUG][       Thread-611993][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:21:17,569 [DEBUG][       Thread-611993][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:21:17,569 [DEBUG][       Thread-611993][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:21:17,569 [DEBUG][       Thread-611993][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:21:17,569 [DEBUG][       Thread-611993][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:21:17,569 [DEBUG][       Thread-611993][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:21:17,569 [DEBUG][       Thread-611993][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:21:17,569 [DEBUG][       Thread-611993][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:21:17,569 [DEBUG][       Thread-611993][   transport.py][1871] : client lang: <none>
2025-07-01 17:21:17,569 [DEBUG][       Thread-611993][   transport.py][1871] : server lang: <none>
2025-07-01 17:21:17,569 [DEBUG][       Thread-611993][   transport.py][1871] : kex follows: False
2025-07-01 17:21:17,569 [DEBUG][       Thread-611993][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:21:17,569 [DEBUG][       Thread-611993][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:21:17,569 [DEBUG][       Thread-611993][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:21:17,569 [DEBUG][       Thread-611993][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:21:17,569 [DEBUG][       Thread-611993][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:21:17,569 [DEBUG][       Thread-611993][   transport.py][1871] : Compression: none
2025-07-01 17:21:17,569 [DEBUG][       Thread-611993][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:21:17,585 [DEBUG][       Thread-611993][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:21:17,585 [DEBUG][       Thread-611993][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:21:17,585 [DEBUG][       Thread-611993][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:21:17,585 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:21:17,585 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:21:17,585 [DEBUG][       Thread-611993][   transport.py][1871] : userauth is OK
2025-07-01 17:21:17,609 [ INFO][       Thread-611993][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:21:17,609 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:21:18,260 [DEBUG][       Thread-611993][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:21:18,260 [DEBUG][       Thread-611993][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:21:18,304 [DEBUG][       Thread-611993][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:21:18,304 [DEBUG][       Thread-611993][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:21:18,306 [DEBUG][       Thread-611993][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:21:18,312 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:21:18,312 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:21:18,313 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:21:18,314 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:21:18,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:21:18,317 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:21:18,317 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:21:18,317 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:21:18,317 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.639174 -999.00  +12.80  31.93     52   +3.30 1 2 2 1 1   887    0 10.14 27.55 ----- 32.7 31.9 15.8 50.6 13.6 -19.9 13.4 -19.6 13.2 -19.1 13.6 -19.3
2025-07-01 17:21:18,317 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:21:18,317 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:21:18,317 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.639174
2025-07-01 17:21:18,318 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:21:18,318 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:21:18,318 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:21:18,318 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:21:18,318 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:21:18,318 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:21:10', tmtdew=10.79, humidity=47.76, cloud=0.0, wind=40.07, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:20:24.634', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:21:18,318 [DEBUG][       Thread-611993][   transport.py][1871] : EOF in transport thread
2025-07-01 17:21:18,392 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:21:18,401 [DEBUG][       Thread-611996][   transport.py][1871] : starting thread (client mode): 0x81db460
2025-07-01 17:21:18,401 [DEBUG][       Thread-611996][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:21:18,416 [DEBUG][       Thread-611996][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:21:18,416 [ INFO][       Thread-611996][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:21:18,423 [DEBUG][       Thread-611996][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:21:18,423 [DEBUG][       Thread-611996][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:21:18,423 [DEBUG][       Thread-611996][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:21:18,423 [DEBUG][       Thread-611996][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:21:18,423 [DEBUG][       Thread-611996][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:21:18,423 [DEBUG][       Thread-611996][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:21:18,423 [DEBUG][       Thread-611996][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:21:18,423 [DEBUG][       Thread-611996][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:21:18,423 [DEBUG][       Thread-611996][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:21:18,423 [DEBUG][       Thread-611996][   transport.py][1871] : client lang: <none>
2025-07-01 17:21:18,423 [DEBUG][       Thread-611996][   transport.py][1871] : server lang: <none>
2025-07-01 17:21:18,423 [DEBUG][       Thread-611996][   transport.py][1871] : kex follows: False
2025-07-01 17:21:18,423 [DEBUG][       Thread-611996][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:21:18,423 [DEBUG][       Thread-611996][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:21:18,423 [DEBUG][       Thread-611996][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:21:18,423 [DEBUG][       Thread-611996][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:21:18,423 [DEBUG][       Thread-611996][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:21:18,423 [DEBUG][       Thread-611996][   transport.py][1871] : Compression: none
2025-07-01 17:21:18,423 [DEBUG][       Thread-611996][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:21:18,481 [DEBUG][       Thread-611996][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:21:18,482 [DEBUG][       Thread-611996][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:21:18,482 [DEBUG][       Thread-611996][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:21:18,482 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:21:18,482 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:21:18,543 [DEBUG][       Thread-611996][   transport.py][1871] : userauth is OK
2025-07-01 17:21:18,543 [DEBUG][       Thread-611996][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:21:18,543 [DEBUG][       Thread-611996][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:21:18,543 [DEBUG][       Thread-611996][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:21:18,543 [DEBUG][       Thread-611996][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:21:18,557 [ INFO][       Thread-611996][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:21:18,557 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:21:18,557 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:21:19,595 [DEBUG][       Thread-611996][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:21:19,595 [DEBUG][       Thread-611996][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:21:19,645 [DEBUG][       Thread-611996][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:21:19,645 [DEBUG][       Thread-611996][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:21:19,653 [DEBUG][       Thread-611996][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:21:19,663 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:21:19,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-07-01 17:21:19,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') -> 00000000
2025-07-01 17:21:19,680 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:21:19,680 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:21:19,680 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:21:19,689 [DEBUG][       Thread-611996][   transport.py][1871] : EOF in transport thread
2025-07-01 17:21:26,469 [DEBUG][Thread-611998 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:21:29,690 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:21:29,690 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:21:29,691 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:21:29,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-07-01 17:21:30,183 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 21, 10), 10.79, 47.76, 0.0, 40.07, 12.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:21:30,183 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:21:10
2025-07-01 17:21:30,268 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:21:30,272 [DEBUG][       Thread-611999][   transport.py][1871] : starting thread (client mode): 0x818d9f0
2025-07-01 17:21:30,272 [DEBUG][       Thread-611999][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:21:30,292 [DEBUG][       Thread-611999][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:21:30,292 [ INFO][       Thread-611999][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:21:30,295 [DEBUG][       Thread-611999][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:21:30,295 [DEBUG][       Thread-611999][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:21:30,295 [DEBUG][       Thread-611999][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:21:30,295 [DEBUG][       Thread-611999][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:21:30,295 [DEBUG][       Thread-611999][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:21:30,295 [DEBUG][       Thread-611999][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:21:30,295 [DEBUG][       Thread-611999][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:21:30,295 [DEBUG][       Thread-611999][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:21:30,295 [DEBUG][       Thread-611999][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:21:30,295 [DEBUG][       Thread-611999][   transport.py][1871] : client lang: <none>
2025-07-01 17:21:30,295 [DEBUG][       Thread-611999][   transport.py][1871] : server lang: <none>
2025-07-01 17:21:30,295 [DEBUG][       Thread-611999][   transport.py][1871] : kex follows: False
2025-07-01 17:21:30,295 [DEBUG][       Thread-611999][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:21:30,295 [DEBUG][       Thread-611999][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:21:30,295 [DEBUG][       Thread-611999][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:21:30,295 [DEBUG][       Thread-611999][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:21:30,295 [DEBUG][       Thread-611999][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:21:30,295 [DEBUG][       Thread-611999][   transport.py][1871] : Compression: none
2025-07-01 17:21:30,295 [DEBUG][       Thread-611999][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:21:30,303 [DEBUG][       Thread-611999][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:21:30,303 [DEBUG][       Thread-611999][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:21:30,304 [DEBUG][       Thread-611999][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:21:30,304 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:21:30,304 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:21:30,305 [DEBUG][       Thread-611999][   transport.py][1871] : userauth is OK
2025-07-01 17:21:30,318 [ INFO][       Thread-611999][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:21:30,319 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:21:31,026 [DEBUG][       Thread-611999][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:21:31,026 [DEBUG][       Thread-611999][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:21:31,069 [DEBUG][       Thread-611999][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:21:31,069 [DEBUG][       Thread-611999][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:21:31,073 [DEBUG][       Thread-611999][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:21:31,085 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:21:31,086 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:21:31,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:21:31,090 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:21:31,096 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:21:31,098 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:21:31,098 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:21:31,099 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:21:31,099 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.639520 -999.00  +12.80  21.52     52   +3.30 1 2 1 1 1   887    0 10.66 30.54 ----- 28.7 21.5 357.6 39.4 13.6 -20.0 13.3 -19.7 13.2 -19.2 13.5 -19.2
2025-07-01 17:21:31,099 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:21:31,099 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:21:31,099 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.639520
2025-07-01 17:21:31,100 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:21:31,100 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:21:31,100 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:21:31,100 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:21:31,100 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:21:31,101 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:21:10', tmtdew=10.79, humidity=47.76, cloud=0.0, wind=40.07, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:20:54.528', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:21:31,101 [DEBUG][       Thread-611999][   transport.py][1871] : EOF in transport thread
2025-07-01 17:21:31,184 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:21:31,198 [DEBUG][       Thread-612002][   transport.py][1871] : starting thread (client mode): 0x81c9300
2025-07-01 17:21:31,198 [DEBUG][       Thread-612002][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:21:31,219 [DEBUG][       Thread-612002][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:21:31,219 [ INFO][       Thread-612002][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:21:31,227 [DEBUG][       Thread-612002][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:21:31,227 [DEBUG][       Thread-612002][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:21:31,227 [DEBUG][       Thread-612002][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:21:31,227 [DEBUG][       Thread-612002][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:21:31,227 [DEBUG][       Thread-612002][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:21:31,228 [DEBUG][       Thread-612002][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:21:31,228 [DEBUG][       Thread-612002][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:21:31,228 [DEBUG][       Thread-612002][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:21:31,228 [DEBUG][       Thread-612002][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:21:31,228 [DEBUG][       Thread-612002][   transport.py][1871] : client lang: <none>
2025-07-01 17:21:31,228 [DEBUG][       Thread-612002][   transport.py][1871] : server lang: <none>
2025-07-01 17:21:31,228 [DEBUG][       Thread-612002][   transport.py][1871] : kex follows: False
2025-07-01 17:21:31,228 [DEBUG][       Thread-612002][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:21:31,228 [DEBUG][       Thread-612002][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:21:31,228 [DEBUG][       Thread-612002][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:21:31,228 [DEBUG][       Thread-612002][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:21:31,228 [DEBUG][       Thread-612002][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:21:31,228 [DEBUG][       Thread-612002][   transport.py][1871] : Compression: none
2025-07-01 17:21:31,228 [DEBUG][       Thread-612002][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:21:31,288 [DEBUG][       Thread-612002][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:21:31,289 [DEBUG][       Thread-612002][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:21:31,289 [DEBUG][       Thread-612002][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:21:31,289 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:21:31,290 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:21:31,345 [DEBUG][       Thread-612002][   transport.py][1871] : userauth is OK
2025-07-01 17:21:31,345 [DEBUG][       Thread-612002][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:21:31,354 [DEBUG][       Thread-612002][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:21:31,354 [DEBUG][       Thread-612002][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:21:31,355 [DEBUG][       Thread-612002][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:21:31,374 [ INFO][       Thread-612002][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:21:31,374 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:21:31,375 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:21:32,420 [DEBUG][       Thread-612002][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:21:32,420 [DEBUG][       Thread-612002][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:21:32,468 [DEBUG][       Thread-612002][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:21:32,468 [DEBUG][       Thread-612002][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:21:32,478 [DEBUG][       Thread-612002][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:21:32,487 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:21:32,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-07-01 17:21:32,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-07-01 17:21:32,505 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:21:32,505 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:21:32,505 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:21:32,513 [DEBUG][       Thread-612002][   transport.py][1871] : EOF in transport thread
2025-07-01 17:21:35,501 [DEBUG][Thread-612004 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:21:40,287 [DEBUG][Thread-612005 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:21:42,508 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:21:42,508 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:21:42,508 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:21:42,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-07-01 17:21:43,053 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 21, 10), 10.79, 47.76, 0.0, 40.07, 12.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:21:43,053 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:21:10
2025-07-01 17:21:43,145 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:21:43,149 [DEBUG][       Thread-612006][   transport.py][1871] : starting thread (client mode): 0x818d990
2025-07-01 17:21:43,149 [DEBUG][       Thread-612006][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:21:43,171 [DEBUG][       Thread-612006][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:21:43,171 [ INFO][       Thread-612006][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:21:43,174 [DEBUG][       Thread-612006][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:21:43,174 [DEBUG][       Thread-612006][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:21:43,174 [DEBUG][       Thread-612006][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:21:43,174 [DEBUG][       Thread-612006][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:21:43,174 [DEBUG][       Thread-612006][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:21:43,174 [DEBUG][       Thread-612006][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:21:43,174 [DEBUG][       Thread-612006][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:21:43,174 [DEBUG][       Thread-612006][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:21:43,174 [DEBUG][       Thread-612006][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:21:43,174 [DEBUG][       Thread-612006][   transport.py][1871] : client lang: <none>
2025-07-01 17:21:43,174 [DEBUG][       Thread-612006][   transport.py][1871] : server lang: <none>
2025-07-01 17:21:43,174 [DEBUG][       Thread-612006][   transport.py][1871] : kex follows: False
2025-07-01 17:21:43,174 [DEBUG][       Thread-612006][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:21:43,174 [DEBUG][       Thread-612006][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:21:43,174 [DEBUG][       Thread-612006][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:21:43,174 [DEBUG][       Thread-612006][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:21:43,174 [DEBUG][       Thread-612006][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:21:43,174 [DEBUG][       Thread-612006][   transport.py][1871] : Compression: none
2025-07-01 17:21:43,174 [DEBUG][       Thread-612006][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:21:43,189 [DEBUG][       Thread-612006][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:21:43,189 [DEBUG][       Thread-612006][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:21:43,189 [DEBUG][       Thread-612006][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:21:43,190 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:21:43,190 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:21:43,190 [DEBUG][       Thread-612006][   transport.py][1871] : userauth is OK
2025-07-01 17:21:43,204 [ INFO][       Thread-612006][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:21:43,204 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:21:43,842 [DEBUG][       Thread-612006][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:21:43,842 [DEBUG][       Thread-612006][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:21:43,885 [DEBUG][       Thread-612006][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:21:43,885 [DEBUG][       Thread-612006][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:21:43,888 [DEBUG][       Thread-612006][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:21:43,901 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:21:43,901 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:21:43,903 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:21:43,905 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:21:43,911 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:21:43,912 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:21:43,912 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:21:43,913 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:21:43,913 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.639520 -999.00  +12.80  21.52     52   +3.30 1 2 1 1 1   887    0 10.66 30.54 ----- 28.7 21.5 357.6 39.4 13.6 -20.0 13.3 -19.7 13.2 -19.2 13.5 -19.2
2025-07-01 17:21:43,913 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:21:43,913 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:21:43,913 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.639520
2025-07-01 17:21:43,914 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:21:43,914 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:21:43,915 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:21:43,915 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:21:43,915 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:21:43,915 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:21:10', tmtdew=10.79, humidity=47.76, cloud=0.0, wind=40.07, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:20:54.528', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:21:43,916 [DEBUG][       Thread-612006][   transport.py][1871] : EOF in transport thread
2025-07-01 17:21:43,999 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:21:44,009 [DEBUG][       Thread-612009][   transport.py][1871] : starting thread (client mode): 0x81da1d0
2025-07-01 17:21:44,009 [DEBUG][       Thread-612009][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:21:44,024 [DEBUG][       Thread-612009][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:21:44,024 [ INFO][       Thread-612009][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:21:44,040 [DEBUG][       Thread-612009][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:21:44,040 [DEBUG][       Thread-612009][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:21:44,040 [DEBUG][       Thread-612009][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:21:44,040 [DEBUG][       Thread-612009][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:21:44,040 [DEBUG][       Thread-612009][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:21:44,040 [DEBUG][       Thread-612009][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:21:44,040 [DEBUG][       Thread-612009][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:21:44,040 [DEBUG][       Thread-612009][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:21:44,040 [DEBUG][       Thread-612009][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:21:44,040 [DEBUG][       Thread-612009][   transport.py][1871] : client lang: <none>
2025-07-01 17:21:44,041 [DEBUG][       Thread-612009][   transport.py][1871] : server lang: <none>
2025-07-01 17:21:44,041 [DEBUG][       Thread-612009][   transport.py][1871] : kex follows: False
2025-07-01 17:21:44,041 [DEBUG][       Thread-612009][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:21:44,041 [DEBUG][       Thread-612009][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:21:44,041 [DEBUG][       Thread-612009][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:21:44,041 [DEBUG][       Thread-612009][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:21:44,041 [DEBUG][       Thread-612009][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:21:44,041 [DEBUG][       Thread-612009][   transport.py][1871] : Compression: none
2025-07-01 17:21:44,041 [DEBUG][       Thread-612009][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:21:44,093 [DEBUG][       Thread-612009][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:21:44,093 [DEBUG][       Thread-612009][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:21:44,094 [DEBUG][       Thread-612009][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:21:44,094 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:21:44,095 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:21:44,148 [DEBUG][       Thread-612009][   transport.py][1871] : userauth is OK
2025-07-01 17:21:44,149 [DEBUG][       Thread-612009][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:21:44,149 [DEBUG][       Thread-612009][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:21:44,149 [DEBUG][       Thread-612009][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:21:44,149 [DEBUG][       Thread-612009][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:21:44,168 [ INFO][       Thread-612009][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:21:44,168 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:21:44,168 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:21:44,521 [DEBUG][Thread-612011 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:21:45,187 [DEBUG][       Thread-612009][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:21:45,187 [DEBUG][       Thread-612009][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:21:45,236 [DEBUG][       Thread-612009][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:21:45,236 [DEBUG][       Thread-612009][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:21:45,245 [DEBUG][       Thread-612009][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:21:45,254 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:21:45,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-07-01 17:21:45,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-07-01 17:21:45,272 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:21:45,272 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:21:45,273 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:21:45,281 [DEBUG][       Thread-612009][   transport.py][1871] : EOF in transport thread
2025-07-01 17:21:53,542 [DEBUG][Thread-612012 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:21:55,283 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:21:55,284 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:21:55,284 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:21:55,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-07-01 17:21:55,803 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 21, 41), 10.83, 47.67, 0.0, 39.51, 12.97, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:21:55,804 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:21:41
2025-07-01 17:21:55,896 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:21:55,900 [DEBUG][       Thread-612013][   transport.py][1871] : starting thread (client mode): 0x818fb50
2025-07-01 17:21:55,900 [DEBUG][       Thread-612013][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:21:55,921 [DEBUG][       Thread-612013][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:21:55,921 [ INFO][       Thread-612013][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:21:55,924 [DEBUG][       Thread-612013][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:21:55,924 [DEBUG][       Thread-612013][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:21:55,924 [DEBUG][       Thread-612013][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:21:55,924 [DEBUG][       Thread-612013][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:21:55,924 [DEBUG][       Thread-612013][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:21:55,924 [DEBUG][       Thread-612013][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:21:55,924 [DEBUG][       Thread-612013][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:21:55,924 [DEBUG][       Thread-612013][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:21:55,924 [DEBUG][       Thread-612013][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:21:55,924 [DEBUG][       Thread-612013][   transport.py][1871] : client lang: <none>
2025-07-01 17:21:55,924 [DEBUG][       Thread-612013][   transport.py][1871] : server lang: <none>
2025-07-01 17:21:55,924 [DEBUG][       Thread-612013][   transport.py][1871] : kex follows: False
2025-07-01 17:21:55,924 [DEBUG][       Thread-612013][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:21:55,924 [DEBUG][       Thread-612013][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:21:55,924 [DEBUG][       Thread-612013][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:21:55,924 [DEBUG][       Thread-612013][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:21:55,924 [DEBUG][       Thread-612013][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:21:55,924 [DEBUG][       Thread-612013][   transport.py][1871] : Compression: none
2025-07-01 17:21:55,924 [DEBUG][       Thread-612013][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:21:55,941 [DEBUG][       Thread-612013][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:21:55,941 [DEBUG][       Thread-612013][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:21:55,941 [DEBUG][       Thread-612013][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:21:55,941 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:21:55,942 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:21:55,942 [DEBUG][       Thread-612013][   transport.py][1871] : userauth is OK
2025-07-01 17:21:55,966 [ INFO][       Thread-612013][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:21:55,966 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:21:56,612 [DEBUG][       Thread-612013][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:21:56,612 [DEBUG][       Thread-612013][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:21:56,656 [DEBUG][       Thread-612013][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:21:56,657 [DEBUG][       Thread-612013][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:21:56,659 [DEBUG][       Thread-612013][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:21:56,673 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:21:56,673 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:21:56,673 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:21:56,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:21:56,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:21:56,678 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:21:56,678 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:21:56,679 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:21:56,679 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.639868 -999.00  +12.70  32.52     52   +3.30 1 2 2 1 1   887    0 10.28 30.74 ----- 22.8 32.5 15.6 36.6 13.6 -19.9 13.4 -19.6 13.2 -19.3 13.5 -19.1
2025-07-01 17:21:56,679 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:21:56,679 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:21:56,679 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.639868
2025-07-01 17:21:56,679 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:21:56,679 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:21:56,679 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:21:56,679 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:21:56,679 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:21:56,679 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:21:41', tmtdew=10.83, humidity=47.67, cloud=0.0, wind=39.51, temperature=12.97, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:21:24.595', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:21:56,680 [DEBUG][       Thread-612013][   transport.py][1871] : EOF in transport thread
2025-07-01 17:21:56,757 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:21:56,768 [DEBUG][       Thread-612016][   transport.py][1871] : starting thread (client mode): 0x81e7d60
2025-07-01 17:21:56,768 [DEBUG][       Thread-612016][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:21:56,784 [DEBUG][       Thread-612016][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:21:56,784 [ INFO][       Thread-612016][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:21:56,791 [DEBUG][       Thread-612016][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:21:56,791 [DEBUG][       Thread-612016][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:21:56,791 [DEBUG][       Thread-612016][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:21:56,791 [DEBUG][       Thread-612016][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:21:56,791 [DEBUG][       Thread-612016][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:21:56,791 [DEBUG][       Thread-612016][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:21:56,791 [DEBUG][       Thread-612016][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:21:56,791 [DEBUG][       Thread-612016][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:21:56,791 [DEBUG][       Thread-612016][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:21:56,791 [DEBUG][       Thread-612016][   transport.py][1871] : client lang: <none>
2025-07-01 17:21:56,791 [DEBUG][       Thread-612016][   transport.py][1871] : server lang: <none>
2025-07-01 17:21:56,791 [DEBUG][       Thread-612016][   transport.py][1871] : kex follows: False
2025-07-01 17:21:56,791 [DEBUG][       Thread-612016][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:21:56,791 [DEBUG][       Thread-612016][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:21:56,791 [DEBUG][       Thread-612016][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:21:56,791 [DEBUG][       Thread-612016][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:21:56,791 [DEBUG][       Thread-612016][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:21:56,791 [DEBUG][       Thread-612016][   transport.py][1871] : Compression: none
2025-07-01 17:21:56,791 [DEBUG][       Thread-612016][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:21:56,848 [DEBUG][       Thread-612016][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:21:56,848 [DEBUG][       Thread-612016][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:21:56,848 [DEBUG][       Thread-612016][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:21:56,848 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:21:56,849 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:21:56,905 [DEBUG][       Thread-612016][   transport.py][1871] : userauth is OK
2025-07-01 17:21:56,905 [DEBUG][       Thread-612016][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:21:56,905 [DEBUG][       Thread-612016][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:21:56,905 [DEBUG][       Thread-612016][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:21:56,905 [DEBUG][       Thread-612016][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:21:56,919 [ INFO][       Thread-612016][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:21:56,920 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:21:56,920 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:21:57,965 [DEBUG][       Thread-612016][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:21:57,965 [DEBUG][       Thread-612016][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:21:58,015 [DEBUG][       Thread-612016][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:21:58,015 [DEBUG][       Thread-612016][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:21:58,024 [DEBUG][       Thread-612016][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:21:58,032 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:21:58,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')
2025-07-01 17:21: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') -> 00000000
2025-07-01 17:21:58,048 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:21:58,048 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:21:58,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:21:58,056 [DEBUG][       Thread-612016][   transport.py][1871] : EOF in transport thread
2025-07-01 17:22:02,561 [DEBUG][Thread-612018 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:22:08,058 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:22:08,058 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:22:08,059 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:22:08,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-07-01 17:22:08,544 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 21, 41), 10.83, 47.67, 0.0, 39.51, 12.97, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:22:08,544 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:21:41
2025-07-01 17:22:08,629 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:22:08,634 [DEBUG][       Thread-612019][   transport.py][1871] : starting thread (client mode): 0x81712d0
2025-07-01 17:22:08,634 [DEBUG][       Thread-612019][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:22:08,654 [DEBUG][       Thread-612019][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:22:08,654 [ INFO][       Thread-612019][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:22:08,657 [DEBUG][       Thread-612019][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:22:08,657 [DEBUG][       Thread-612019][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:22:08,657 [DEBUG][       Thread-612019][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:22:08,657 [DEBUG][       Thread-612019][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:22:08,657 [DEBUG][       Thread-612019][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:22:08,657 [DEBUG][       Thread-612019][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:22:08,657 [DEBUG][       Thread-612019][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:22:08,657 [DEBUG][       Thread-612019][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:22:08,657 [DEBUG][       Thread-612019][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:22:08,657 [DEBUG][       Thread-612019][   transport.py][1871] : client lang: <none>
2025-07-01 17:22:08,657 [DEBUG][       Thread-612019][   transport.py][1871] : server lang: <none>
2025-07-01 17:22:08,657 [DEBUG][       Thread-612019][   transport.py][1871] : kex follows: False
2025-07-01 17:22:08,657 [DEBUG][       Thread-612019][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:22:08,657 [DEBUG][       Thread-612019][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:22:08,657 [DEBUG][       Thread-612019][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:22:08,657 [DEBUG][       Thread-612019][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:22:08,657 [DEBUG][       Thread-612019][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:22:08,657 [DEBUG][       Thread-612019][   transport.py][1871] : Compression: none
2025-07-01 17:22:08,657 [DEBUG][       Thread-612019][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:22:08,673 [DEBUG][       Thread-612019][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:22:08,673 [DEBUG][       Thread-612019][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:22:08,673 [DEBUG][       Thread-612019][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:22:08,674 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:22:08,674 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:22:08,674 [DEBUG][       Thread-612019][   transport.py][1871] : userauth is OK
2025-07-01 17:22:08,686 [ INFO][       Thread-612019][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:22:08,687 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:22:09,288 [DEBUG][       Thread-612019][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:22:09,288 [DEBUG][       Thread-612019][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:22:09,329 [DEBUG][       Thread-612019][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:22:09,329 [DEBUG][       Thread-612019][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:22:09,332 [DEBUG][       Thread-612019][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:22:09,346 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:22:09,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:22:09,348 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:22:09,350 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:22:09,355 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:22:09,357 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:22:09,357 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:22:09,358 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:22:09,358 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.639868 -999.00  +12.70  32.52     52   +3.30 1 2 2 1 1   887    0 10.28 30.74 ----- 22.8 32.5 15.6 36.6 13.6 -19.9 13.4 -19.6 13.2 -19.3 13.5 -19.1
2025-07-01 17:22:09,358 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:22:09,358 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:22:09,358 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.639868
2025-07-01 17:22:09,358 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:22:09,359 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:22:09,359 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:22:09,359 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:22:09,359 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:22:09,359 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:21:41', tmtdew=10.83, humidity=47.67, cloud=0.0, wind=39.51, temperature=12.97, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:21:24.595', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:22:09,359 [DEBUG][       Thread-612019][   transport.py][1871] : EOF in transport thread
2025-07-01 17:22:09,438 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:22:09,450 [DEBUG][       Thread-612022][   transport.py][1871] : starting thread (client mode): 0x75a82e0
2025-07-01 17:22:09,450 [DEBUG][       Thread-612022][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:22:09,476 [DEBUG][       Thread-612022][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:22:09,476 [ INFO][       Thread-612022][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:22:09,483 [DEBUG][       Thread-612022][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:22:09,484 [DEBUG][       Thread-612022][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:22:09,484 [DEBUG][       Thread-612022][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:22:09,484 [DEBUG][       Thread-612022][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:22:09,484 [DEBUG][       Thread-612022][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:22:09,484 [DEBUG][       Thread-612022][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:22:09,484 [DEBUG][       Thread-612022][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:22:09,484 [DEBUG][       Thread-612022][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:22:09,484 [DEBUG][       Thread-612022][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:22:09,484 [DEBUG][       Thread-612022][   transport.py][1871] : client lang: <none>
2025-07-01 17:22:09,484 [DEBUG][       Thread-612022][   transport.py][1871] : server lang: <none>
2025-07-01 17:22:09,484 [DEBUG][       Thread-612022][   transport.py][1871] : kex follows: False
2025-07-01 17:22:09,484 [DEBUG][       Thread-612022][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:22:09,484 [DEBUG][       Thread-612022][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:22:09,484 [DEBUG][       Thread-612022][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:22:09,484 [DEBUG][       Thread-612022][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:22:09,485 [DEBUG][       Thread-612022][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:22:09,485 [DEBUG][       Thread-612022][   transport.py][1871] : Compression: none
2025-07-01 17:22:09,485 [DEBUG][       Thread-612022][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:22:09,542 [DEBUG][       Thread-612022][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:22:09,543 [DEBUG][       Thread-612022][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:22:09,543 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:22:09,544 [DEBUG][       Thread-612022][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:22:09,545 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:22:09,602 [DEBUG][       Thread-612022][   transport.py][1871] : userauth is OK
2025-07-01 17:22:09,602 [DEBUG][       Thread-612022][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:22:09,602 [DEBUG][       Thread-612022][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:22:09,602 [DEBUG][       Thread-612022][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:22:09,602 [DEBUG][       Thread-612022][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:22:09,621 [ INFO][       Thread-612022][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:22:09,621 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:22:09,622 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:22:10,650 [DEBUG][       Thread-612022][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:22:10,650 [DEBUG][       Thread-612022][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:22:10,700 [DEBUG][       Thread-612022][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:22:10,700 [DEBUG][       Thread-612022][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:22:10,709 [DEBUG][       Thread-612022][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:22:10,718 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:22:10,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-07-01 17:22:10,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-07-01 17:22:10,736 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:22:10,736 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:22:10,737 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:22:10,744 [DEBUG][       Thread-612022][   transport.py][1871] : EOF in transport thread
2025-07-01 17:22:11,607 [DEBUG][Thread-612024 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:22:20,631 [DEBUG][Thread-612025 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:22:20,746 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:22:20,746 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:22:20,746 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:22:20,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-07-01 17:22:21,241 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 22, 13), 10.82, 47.67, 0.0, 33.56, 12.94, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:22:21,241 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:22:13
2025-07-01 17:22:21,327 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:22:21,332 [DEBUG][       Thread-612026][   transport.py][1871] : starting thread (client mode): 0x81da350
2025-07-01 17:22:21,332 [DEBUG][       Thread-612026][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:22:21,351 [DEBUG][       Thread-612026][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:22:21,351 [ INFO][       Thread-612026][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:22:21,354 [DEBUG][       Thread-612026][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:22:21,354 [DEBUG][       Thread-612026][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:22:21,354 [DEBUG][       Thread-612026][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:22:21,354 [DEBUG][       Thread-612026][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:22:21,354 [DEBUG][       Thread-612026][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:22:21,354 [DEBUG][       Thread-612026][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:22:21,354 [DEBUG][       Thread-612026][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:22:21,354 [DEBUG][       Thread-612026][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:22:21,354 [DEBUG][       Thread-612026][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:22:21,354 [DEBUG][       Thread-612026][   transport.py][1871] : client lang: <none>
2025-07-01 17:22:21,354 [DEBUG][       Thread-612026][   transport.py][1871] : server lang: <none>
2025-07-01 17:22:21,354 [DEBUG][       Thread-612026][   transport.py][1871] : kex follows: False
2025-07-01 17:22:21,354 [DEBUG][       Thread-612026][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:22:21,355 [DEBUG][       Thread-612026][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:22:21,355 [DEBUG][       Thread-612026][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:22:21,355 [DEBUG][       Thread-612026][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:22:21,355 [DEBUG][       Thread-612026][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:22:21,355 [DEBUG][       Thread-612026][   transport.py][1871] : Compression: none
2025-07-01 17:22:21,355 [DEBUG][       Thread-612026][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:22:21,363 [DEBUG][       Thread-612026][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:22:21,363 [DEBUG][       Thread-612026][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:22:21,364 [DEBUG][       Thread-612026][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:22:21,364 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:22:21,364 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:22:21,365 [DEBUG][       Thread-612026][   transport.py][1871] : userauth is OK
2025-07-01 17:22:21,378 [ INFO][       Thread-612026][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:22:21,379 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:22:22,005 [DEBUG][       Thread-612026][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:22:22,005 [DEBUG][       Thread-612026][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:22:22,049 [DEBUG][       Thread-612026][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:22:22,049 [DEBUG][       Thread-612026][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:22:22,052 [DEBUG][       Thread-612026][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:22:22,064 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:22:22,064 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:22:22,067 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:22:22,069 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:22:22,075 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:22:22,077 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:22:22,077 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:22:22,078 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:22:22,078 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.639868 -999.00  +12.70  32.52     52   +3.30 1 2 2 1 1   887    0 10.28 30.74 ----- 22.8 32.5 15.6 36.6 13.6 -19.9 13.4 -19.6 13.2 -19.3 13.5 -19.1
2025-07-01 17:22:22,078 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:22:22,078 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:22:22,078 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.639868
2025-07-01 17:22:22,079 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:22:22,079 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:22:22,079 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:22:22,079 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:22:22,079 [DEBUG][       Thread-612026][   transport.py][1871] : EOF in transport thread
2025-07-01 17:22:22,080 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:22:22,080 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:22:13', tmtdew=10.82, humidity=47.67, cloud=0.0, wind=33.56, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:21:24.595', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:22:22,163 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:22:22,174 [DEBUG][       Thread-612029][   transport.py][1871] : starting thread (client mode): 0x827db40
2025-07-01 17:22:22,174 [DEBUG][       Thread-612029][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:22:22,189 [DEBUG][       Thread-612029][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:22:22,189 [ INFO][       Thread-612029][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:22:22,196 [DEBUG][       Thread-612029][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:22:22,196 [DEBUG][       Thread-612029][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:22:22,196 [DEBUG][       Thread-612029][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:22:22,196 [DEBUG][       Thread-612029][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:22:22,196 [DEBUG][       Thread-612029][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:22:22,196 [DEBUG][       Thread-612029][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:22:22,196 [DEBUG][       Thread-612029][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:22:22,196 [DEBUG][       Thread-612029][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:22:22,196 [DEBUG][       Thread-612029][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:22:22,196 [DEBUG][       Thread-612029][   transport.py][1871] : client lang: <none>
2025-07-01 17:22:22,197 [DEBUG][       Thread-612029][   transport.py][1871] : server lang: <none>
2025-07-01 17:22:22,197 [DEBUG][       Thread-612029][   transport.py][1871] : kex follows: False
2025-07-01 17:22:22,197 [DEBUG][       Thread-612029][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:22:22,197 [DEBUG][       Thread-612029][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:22:22,197 [DEBUG][       Thread-612029][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:22:22,197 [DEBUG][       Thread-612029][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:22:22,197 [DEBUG][       Thread-612029][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:22:22,197 [DEBUG][       Thread-612029][   transport.py][1871] : Compression: none
2025-07-01 17:22:22,197 [DEBUG][       Thread-612029][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:22:22,259 [DEBUG][       Thread-612029][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:22:22,259 [DEBUG][       Thread-612029][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:22:22,260 [DEBUG][       Thread-612029][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:22:22,260 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:22:22,261 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:22:22,314 [DEBUG][       Thread-612029][   transport.py][1871] : userauth is OK
2025-07-01 17:22:22,314 [DEBUG][       Thread-612029][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:22:22,315 [DEBUG][       Thread-612029][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:22:22,315 [DEBUG][       Thread-612029][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:22:22,315 [DEBUG][       Thread-612029][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:22:22,329 [ INFO][       Thread-612029][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:22:22,329 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:22:22,329 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:22:23,359 [DEBUG][       Thread-612029][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:22:23,359 [DEBUG][       Thread-612029][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:22:23,412 [DEBUG][       Thread-612029][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:22:23,412 [DEBUG][       Thread-612029][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:22:23,425 [DEBUG][       Thread-612029][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:22:23,434 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:22:23,434 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 17:22:23,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-07-01 17:22:23,453 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:22:23,453 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:22:23,454 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:22:23,462 [DEBUG][       Thread-612029][   transport.py][1871] : EOF in transport thread
2025-07-01 17:22:29,656 [DEBUG][Thread-612031 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:22:33,463 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:22:33,463 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:22:33,463 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:22:33,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-07-01 17:22:33,959 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 22, 13), 10.82, 47.67, 0.0, 33.56, 12.94, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:22:33,959 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:22:13
2025-07-01 17:22:34,045 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:22:34,049 [DEBUG][       Thread-612032][   transport.py][1871] : starting thread (client mode): 0x81e5390
2025-07-01 17:22:34,049 [DEBUG][       Thread-612032][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:22:34,070 [DEBUG][       Thread-612032][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:22:34,070 [ INFO][       Thread-612032][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:22:34,072 [DEBUG][       Thread-612032][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:22:34,072 [DEBUG][       Thread-612032][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:22:34,072 [DEBUG][       Thread-612032][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:22:34,072 [DEBUG][       Thread-612032][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:22:34,072 [DEBUG][       Thread-612032][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:22:34,072 [DEBUG][       Thread-612032][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:22:34,072 [DEBUG][       Thread-612032][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:22:34,072 [DEBUG][       Thread-612032][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:22:34,072 [DEBUG][       Thread-612032][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:22:34,072 [DEBUG][       Thread-612032][   transport.py][1871] : client lang: <none>
2025-07-01 17:22:34,072 [DEBUG][       Thread-612032][   transport.py][1871] : server lang: <none>
2025-07-01 17:22:34,072 [DEBUG][       Thread-612032][   transport.py][1871] : kex follows: False
2025-07-01 17:22:34,072 [DEBUG][       Thread-612032][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:22:34,072 [DEBUG][       Thread-612032][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:22:34,072 [DEBUG][       Thread-612032][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:22:34,072 [DEBUG][       Thread-612032][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:22:34,072 [DEBUG][       Thread-612032][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:22:34,072 [DEBUG][       Thread-612032][   transport.py][1871] : Compression: none
2025-07-01 17:22:34,072 [DEBUG][       Thread-612032][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:22:34,083 [DEBUG][       Thread-612032][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:22:34,084 [DEBUG][       Thread-612032][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:22:34,084 [DEBUG][       Thread-612032][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:22:34,085 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:22:34,085 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:22:34,086 [DEBUG][       Thread-612032][   transport.py][1871] : userauth is OK
2025-07-01 17:22:34,098 [ INFO][       Thread-612032][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:22:34,099 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:22:34,746 [DEBUG][       Thread-612032][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:22:34,746 [DEBUG][       Thread-612032][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:22:34,789 [DEBUG][       Thread-612032][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:22:34,789 [DEBUG][       Thread-612032][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:22:34,791 [DEBUG][       Thread-612032][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:22:34,803 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:22:34,804 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:22:34,805 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:22:34,805 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:22:34,808 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:22:34,809 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:22:34,809 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:22:34,809 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:22:34,809 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.640215 -999.00  +12.70  20.98     52   +3.30 1 2 1 1 1   887    0 10.38 28.85 ----- 34.5 21.0 28.8 38.8 13.5 -19.9 13.3 -19.6 13.2 -19.2 13.5 -19.2
2025-07-01 17:22:34,809 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:22:34,809 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:22:34,809 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.640215
2025-07-01 17:22:34,810 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:22:34,810 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:22:34,810 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:22:34,810 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:22:34,810 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:22:34,810 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:22:13', tmtdew=10.82, humidity=47.67, cloud=0.0, wind=33.56, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:21:54.576', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:22:34,811 [DEBUG][       Thread-612032][   transport.py][1871] : EOF in transport thread
2025-07-01 17:22:34,882 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:22:34,895 [DEBUG][       Thread-612035][   transport.py][1871] : starting thread (client mode): 0x827db40
2025-07-01 17:22:34,895 [DEBUG][       Thread-612035][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:22:34,910 [DEBUG][       Thread-612035][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:22:34,910 [ INFO][       Thread-612035][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:22:34,918 [DEBUG][       Thread-612035][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:22:34,918 [DEBUG][       Thread-612035][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:22:34,918 [DEBUG][       Thread-612035][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:22:34,918 [DEBUG][       Thread-612035][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:22:34,918 [DEBUG][       Thread-612035][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:22:34,918 [DEBUG][       Thread-612035][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:22:34,918 [DEBUG][       Thread-612035][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:22:34,918 [DEBUG][       Thread-612035][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:22:34,918 [DEBUG][       Thread-612035][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:22:34,918 [DEBUG][       Thread-612035][   transport.py][1871] : client lang: <none>
2025-07-01 17:22:34,918 [DEBUG][       Thread-612035][   transport.py][1871] : server lang: <none>
2025-07-01 17:22:34,918 [DEBUG][       Thread-612035][   transport.py][1871] : kex follows: False
2025-07-01 17:22:34,918 [DEBUG][       Thread-612035][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:22:34,918 [DEBUG][       Thread-612035][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:22:34,918 [DEBUG][       Thread-612035][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:22:34,918 [DEBUG][       Thread-612035][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:22:34,918 [DEBUG][       Thread-612035][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:22:34,918 [DEBUG][       Thread-612035][   transport.py][1871] : Compression: none
2025-07-01 17:22:34,918 [DEBUG][       Thread-612035][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:22:34,974 [DEBUG][       Thread-612035][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:22:34,974 [DEBUG][       Thread-612035][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:22:34,974 [DEBUG][       Thread-612035][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:22:34,974 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:22:34,974 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:22:35,032 [DEBUG][       Thread-612035][   transport.py][1871] : userauth is OK
2025-07-01 17:22:35,032 [DEBUG][       Thread-612035][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:22:35,032 [DEBUG][       Thread-612035][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:22:35,032 [DEBUG][       Thread-612035][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:22:35,032 [DEBUG][       Thread-612035][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:22:35,051 [ INFO][       Thread-612035][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:22:35,051 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:22:35,051 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:22:36,095 [DEBUG][       Thread-612035][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:22:36,095 [DEBUG][       Thread-612035][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:22:36,143 [DEBUG][       Thread-612035][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:22:36,143 [DEBUG][       Thread-612035][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:22:36,152 [DEBUG][       Thread-612035][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:22:36,160 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:22:36,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-07-01 17:22:36,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-07-01 17:22:36,177 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:22:36,177 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:22:36,177 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:22:36,189 [DEBUG][       Thread-612035][   transport.py][1871] : EOF in transport thread
2025-07-01 17:22:38,687 [DEBUG][Thread-612037 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:22:40,317 [DEBUG][Thread-612038 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:22:46,184 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:22:46,184 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:22:46,184 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:22:46,184 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:22:46,695 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 22, 13), 10.82, 47.67, 0.0, 33.56, 12.94, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:22:46,695 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:22:13
2025-07-01 17:22:46,785 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:22:46,789 [DEBUG][       Thread-612039][   transport.py][1871] : starting thread (client mode): 0x82b2410
2025-07-01 17:22:46,789 [DEBUG][       Thread-612039][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:22:46,809 [DEBUG][       Thread-612039][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:22:46,809 [ INFO][       Thread-612039][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:22:46,812 [DEBUG][       Thread-612039][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:22:46,812 [DEBUG][       Thread-612039][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:22:46,812 [DEBUG][       Thread-612039][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:22:46,812 [DEBUG][       Thread-612039][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:22:46,812 [DEBUG][       Thread-612039][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:22:46,812 [DEBUG][       Thread-612039][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:22:46,812 [DEBUG][       Thread-612039][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:22:46,812 [DEBUG][       Thread-612039][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:22:46,812 [DEBUG][       Thread-612039][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:22:46,812 [DEBUG][       Thread-612039][   transport.py][1871] : client lang: <none>
2025-07-01 17:22:46,812 [DEBUG][       Thread-612039][   transport.py][1871] : server lang: <none>
2025-07-01 17:22:46,812 [DEBUG][       Thread-612039][   transport.py][1871] : kex follows: False
2025-07-01 17:22:46,812 [DEBUG][       Thread-612039][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:22:46,812 [DEBUG][       Thread-612039][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:22:46,812 [DEBUG][       Thread-612039][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:22:46,812 [DEBUG][       Thread-612039][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:22:46,812 [DEBUG][       Thread-612039][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:22:46,812 [DEBUG][       Thread-612039][   transport.py][1871] : Compression: none
2025-07-01 17:22:46,812 [DEBUG][       Thread-612039][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:22:46,819 [DEBUG][       Thread-612039][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:22:46,819 [DEBUG][       Thread-612039][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:22:46,819 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:22:46,819 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:22:46,819 [DEBUG][       Thread-612039][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:22:46,820 [DEBUG][       Thread-612039][   transport.py][1871] : userauth is OK
2025-07-01 17:22:46,833 [ INFO][       Thread-612039][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:22:46,833 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:22:47,421 [DEBUG][       Thread-612039][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:22:47,421 [DEBUG][       Thread-612039][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:22:47,465 [DEBUG][       Thread-612039][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:22:47,465 [DEBUG][       Thread-612039][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:22:47,468 [DEBUG][       Thread-612039][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:22:47,482 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:22:47,483 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:22:47,484 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:22:47,486 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:22:47,491 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:22:47,492 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:22:47,493 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:22:47,493 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:22:47,493 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.640215 -999.00  +12.70  20.98     52   +3.30 1 2 1 1 1   887    0 10.38 28.85 ----- 34.5 21.0 28.8 38.8 13.5 -19.9 13.3 -19.6 13.2 -19.2 13.5 -19.2
2025-07-01 17:22:47,493 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:22:47,494 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:22:47,494 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.640215
2025-07-01 17:22:47,494 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:22:47,495 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:22:47,495 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:22:47,495 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:22:47,495 [DEBUG][       Thread-612039][   transport.py][1871] : EOF in transport thread
2025-07-01 17:22:47,495 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:22:47,496 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:22:13', tmtdew=10.82, humidity=47.67, cloud=0.0, wind=33.56, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:21:54.576', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:22:47,581 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:22:47,591 [DEBUG][       Thread-612042][   transport.py][1871] : starting thread (client mode): 0x75a9f90
2025-07-01 17:22:47,591 [DEBUG][       Thread-612042][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:22:47,606 [DEBUG][       Thread-612042][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:22:47,606 [ INFO][       Thread-612042][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:22:47,613 [DEBUG][       Thread-612042][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:22:47,613 [DEBUG][       Thread-612042][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:22:47,614 [DEBUG][       Thread-612042][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:22:47,614 [DEBUG][       Thread-612042][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:22:47,614 [DEBUG][       Thread-612042][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:22:47,614 [DEBUG][       Thread-612042][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:22:47,614 [DEBUG][       Thread-612042][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:22:47,614 [DEBUG][       Thread-612042][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:22:47,614 [DEBUG][       Thread-612042][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:22:47,614 [DEBUG][       Thread-612042][   transport.py][1871] : client lang: <none>
2025-07-01 17:22:47,614 [DEBUG][       Thread-612042][   transport.py][1871] : server lang: <none>
2025-07-01 17:22:47,614 [DEBUG][       Thread-612042][   transport.py][1871] : kex follows: False
2025-07-01 17:22:47,614 [DEBUG][       Thread-612042][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:22:47,614 [DEBUG][       Thread-612042][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:22:47,614 [DEBUG][       Thread-612042][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:22:47,614 [DEBUG][       Thread-612042][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:22:47,614 [DEBUG][       Thread-612042][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:22:47,614 [DEBUG][       Thread-612042][   transport.py][1871] : Compression: none
2025-07-01 17:22:47,614 [DEBUG][       Thread-612042][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:22:47,672 [DEBUG][       Thread-612042][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:22:47,672 [DEBUG][       Thread-612042][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:22:47,673 [DEBUG][       Thread-612042][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:22:47,673 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:22:47,674 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:22:47,710 [DEBUG][Thread-612044 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:22:47,728 [DEBUG][       Thread-612042][   transport.py][1871] : userauth is OK
2025-07-01 17:22:47,729 [DEBUG][       Thread-612042][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:22:47,729 [DEBUG][       Thread-612042][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:22:47,729 [DEBUG][       Thread-612042][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:22:47,729 [DEBUG][       Thread-612042][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:22:47,747 [ INFO][       Thread-612042][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:22:47,748 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:22:47,748 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:22:48,808 [DEBUG][       Thread-612042][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:22:48,809 [DEBUG][       Thread-612042][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:22:48,860 [DEBUG][       Thread-612042][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:22:48,861 [DEBUG][       Thread-612042][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:22:48,870 [DEBUG][       Thread-612042][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:22:48,879 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:22:48,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-07-01 17:22:48,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-07-01 17:22:48,897 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:22:48,898 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:22:48,898 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:22:48,906 [DEBUG][       Thread-612042][   transport.py][1871] : EOF in transport thread
2025-07-01 17:22:56,733 [DEBUG][Thread-612045 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:22:58,899 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:22:58,899 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:22:58,899 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:22:58,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-07-01 17:22:59,392 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 22, 45), 10.8, 47.74, 0.0, 36.31, 12.94, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:22:59,392 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:22:45
2025-07-01 17:22:59,478 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:22:59,484 [DEBUG][       Thread-612046][   transport.py][1871] : starting thread (client mode): 0x82b3070
2025-07-01 17:22:59,484 [DEBUG][       Thread-612046][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:22:59,506 [DEBUG][       Thread-612046][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:22:59,506 [ INFO][       Thread-612046][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:22:59,508 [DEBUG][       Thread-612046][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:22:59,508 [DEBUG][       Thread-612046][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:22:59,508 [DEBUG][       Thread-612046][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:22:59,508 [DEBUG][       Thread-612046][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:22:59,508 [DEBUG][       Thread-612046][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:22:59,508 [DEBUG][       Thread-612046][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:22:59,508 [DEBUG][       Thread-612046][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:22:59,508 [DEBUG][       Thread-612046][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:22:59,508 [DEBUG][       Thread-612046][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:22:59,508 [DEBUG][       Thread-612046][   transport.py][1871] : client lang: <none>
2025-07-01 17:22:59,508 [DEBUG][       Thread-612046][   transport.py][1871] : server lang: <none>
2025-07-01 17:22:59,508 [DEBUG][       Thread-612046][   transport.py][1871] : kex follows: False
2025-07-01 17:22:59,508 [DEBUG][       Thread-612046][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:22:59,508 [DEBUG][       Thread-612046][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:22:59,508 [DEBUG][       Thread-612046][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:22:59,508 [DEBUG][       Thread-612046][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:22:59,508 [DEBUG][       Thread-612046][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:22:59,508 [DEBUG][       Thread-612046][   transport.py][1871] : Compression: none
2025-07-01 17:22:59,508 [DEBUG][       Thread-612046][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:22:59,516 [DEBUG][       Thread-612046][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:22:59,517 [DEBUG][       Thread-612046][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:22:59,517 [DEBUG][       Thread-612046][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:22:59,517 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:22:59,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:22:59,519 [DEBUG][       Thread-612046][   transport.py][1871] : userauth is OK
2025-07-01 17:22:59,543 [ INFO][       Thread-612046][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:22:59,543 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:23:00,135 [DEBUG][       Thread-612046][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:23:00,135 [DEBUG][       Thread-612046][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:23:00,177 [DEBUG][       Thread-612046][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:23:00,177 [DEBUG][       Thread-612046][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:23:00,180 [DEBUG][       Thread-612046][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:23:00,190 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:23:00,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:23:00,191 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:23:00,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:23:00,196 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:23:00,197 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:23:00,198 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:23:00,198 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:23:00,198 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.640910 -999.00  +12.70  28.93     52   +3.20 1 2 1 1 1   887    0 9.90 23.17 ----- 24.7 28.9 9.0 39.2 13.5 -19.7 13.3 -19.4 13.2 -18.7 13.5 -18.8
2025-07-01 17:23:00,198 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:23:00,198 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:23:00,198 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.640910
2025-07-01 17:23:00,199 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:23:00,199 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:23:00,199 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:23:00,200 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:23:00,200 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:23:00,200 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:22:45', tmtdew=10.8, humidity=47.74, cloud=0.0, wind=36.31, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:22:54.624', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:23:00,201 [DEBUG][       Thread-612046][   transport.py][1871] : EOF in transport thread
2025-07-01 17:23:00,283 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:23:00,294 [DEBUG][       Thread-612049][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 17:23:00,294 [DEBUG][       Thread-612049][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:23:00,311 [DEBUG][       Thread-612049][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:23:00,311 [ INFO][       Thread-612049][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:23:00,319 [DEBUG][       Thread-612049][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:23:00,319 [DEBUG][       Thread-612049][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:23:00,319 [DEBUG][       Thread-612049][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:23:00,319 [DEBUG][       Thread-612049][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:23:00,319 [DEBUG][       Thread-612049][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:23:00,319 [DEBUG][       Thread-612049][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:23:00,319 [DEBUG][       Thread-612049][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:23:00,319 [DEBUG][       Thread-612049][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:23:00,319 [DEBUG][       Thread-612049][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:23:00,319 [DEBUG][       Thread-612049][   transport.py][1871] : client lang: <none>
2025-07-01 17:23:00,319 [DEBUG][       Thread-612049][   transport.py][1871] : server lang: <none>
2025-07-01 17:23:00,319 [DEBUG][       Thread-612049][   transport.py][1871] : kex follows: False
2025-07-01 17:23:00,319 [DEBUG][       Thread-612049][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:23:00,319 [DEBUG][       Thread-612049][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:23:00,319 [DEBUG][       Thread-612049][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:23:00,320 [DEBUG][       Thread-612049][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:23:00,320 [DEBUG][       Thread-612049][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:23:00,320 [DEBUG][       Thread-612049][   transport.py][1871] : Compression: none
2025-07-01 17:23:00,320 [DEBUG][       Thread-612049][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:23:00,376 [DEBUG][       Thread-612049][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:23:00,377 [DEBUG][       Thread-612049][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:23:00,377 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:23:00,378 [DEBUG][       Thread-612049][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:23:00,378 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:23:00,433 [DEBUG][       Thread-612049][   transport.py][1871] : userauth is OK
2025-07-01 17:23:00,433 [DEBUG][       Thread-612049][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:23:00,433 [DEBUG][       Thread-612049][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:23:00,433 [DEBUG][       Thread-612049][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:23:00,433 [DEBUG][       Thread-612049][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:23:00,452 [ INFO][       Thread-612049][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:23:00,452 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:23:00,452 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:23:01,517 [DEBUG][       Thread-612049][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:23:01,517 [DEBUG][       Thread-612049][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:23:01,567 [DEBUG][       Thread-612049][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:23:01,567 [DEBUG][       Thread-612049][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:23:01,576 [DEBUG][       Thread-612049][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:23:01,585 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:23:01,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-07-01 17:23:01,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') -> 00000000
2025-07-01 17:23:01,602 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:23:01,602 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:23:01,602 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:23:01,610 [DEBUG][       Thread-612049][   transport.py][1871] : EOF in transport thread
2025-07-01 17:23:05,755 [DEBUG][Thread-612051 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:23:11,613 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:23:11,613 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:23:11,613 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:23:11,616 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:23:12,090 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 22, 45), 10.8, 47.74, 0.0, 36.31, 12.94, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:23:12,090 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:22:45
2025-07-01 17:23:12,176 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:23:12,180 [DEBUG][       Thread-612052][   transport.py][1871] : starting thread (client mode): 0x82b2aa0
2025-07-01 17:23:12,180 [DEBUG][       Thread-612052][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:23:12,199 [DEBUG][       Thread-612052][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:23:12,199 [ INFO][       Thread-612052][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:23:12,202 [DEBUG][       Thread-612052][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:23:12,202 [DEBUG][       Thread-612052][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:23:12,202 [DEBUG][       Thread-612052][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:23:12,202 [DEBUG][       Thread-612052][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:23:12,202 [DEBUG][       Thread-612052][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:23:12,202 [DEBUG][       Thread-612052][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:23:12,203 [DEBUG][       Thread-612052][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:23:12,203 [DEBUG][       Thread-612052][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:23:12,203 [DEBUG][       Thread-612052][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:23:12,203 [DEBUG][       Thread-612052][   transport.py][1871] : client lang: <none>
2025-07-01 17:23:12,203 [DEBUG][       Thread-612052][   transport.py][1871] : server lang: <none>
2025-07-01 17:23:12,203 [DEBUG][       Thread-612052][   transport.py][1871] : kex follows: False
2025-07-01 17:23:12,203 [DEBUG][       Thread-612052][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:23:12,203 [DEBUG][       Thread-612052][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:23:12,203 [DEBUG][       Thread-612052][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:23:12,203 [DEBUG][       Thread-612052][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:23:12,203 [DEBUG][       Thread-612052][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:23:12,203 [DEBUG][       Thread-612052][   transport.py][1871] : Compression: none
2025-07-01 17:23:12,203 [DEBUG][       Thread-612052][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:23:12,222 [DEBUG][       Thread-612052][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:23:12,223 [DEBUG][       Thread-612052][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:23:12,223 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:23:12,223 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:23:12,224 [DEBUG][       Thread-612052][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:23:12,225 [DEBUG][       Thread-612052][   transport.py][1871] : userauth is OK
2025-07-01 17:23:12,238 [ INFO][       Thread-612052][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:23:12,239 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:23:13,027 [DEBUG][       Thread-612052][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:23:13,027 [DEBUG][       Thread-612052][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:23:13,068 [DEBUG][       Thread-612052][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:23:13,068 [DEBUG][       Thread-612052][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:23:13,070 [DEBUG][       Thread-612052][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:23:13,081 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:23:13,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:23:13,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:23:13,083 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:23:13,085 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:23:13,086 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:23:13,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:23:13,086 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:23:13,086 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.640910 -999.00  +12.70  28.93     52   +3.20 1 2 1 1 1   887    0 9.90 23.17 ----- 24.7 28.9 9.0 39.2 13.5 -19.7 13.3 -19.4 13.2 -18.7 13.5 -18.8
2025-07-01 17:23:13,086 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:23:13,086 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:23:13,086 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.640910
2025-07-01 17:23:13,087 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:23:13,087 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:23:13,087 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:23:13,087 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:23:13,087 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:23:13,087 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:22:45', tmtdew=10.8, humidity=47.74, cloud=0.0, wind=36.31, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:22:54.624', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:23:13,087 [DEBUG][       Thread-612052][   transport.py][1871] : EOF in transport thread
2025-07-01 17:23:13,161 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:23:13,171 [DEBUG][       Thread-612055][   transport.py][1871] : starting thread (client mode): 0x75ab1f0
2025-07-01 17:23:13,171 [DEBUG][       Thread-612055][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:23:13,185 [DEBUG][       Thread-612055][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:23:13,185 [ INFO][       Thread-612055][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:23:13,193 [DEBUG][       Thread-612055][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:23:13,193 [DEBUG][       Thread-612055][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:23:13,193 [DEBUG][       Thread-612055][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:23:13,193 [DEBUG][       Thread-612055][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:23:13,193 [DEBUG][       Thread-612055][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:23:13,193 [DEBUG][       Thread-612055][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:23:13,193 [DEBUG][       Thread-612055][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:23:13,193 [DEBUG][       Thread-612055][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:23:13,193 [DEBUG][       Thread-612055][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:23:13,193 [DEBUG][       Thread-612055][   transport.py][1871] : client lang: <none>
2025-07-01 17:23:13,193 [DEBUG][       Thread-612055][   transport.py][1871] : server lang: <none>
2025-07-01 17:23:13,193 [DEBUG][       Thread-612055][   transport.py][1871] : kex follows: False
2025-07-01 17:23:13,193 [DEBUG][       Thread-612055][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:23:13,193 [DEBUG][       Thread-612055][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:23:13,193 [DEBUG][       Thread-612055][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:23:13,193 [DEBUG][       Thread-612055][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:23:13,193 [DEBUG][       Thread-612055][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:23:13,193 [DEBUG][       Thread-612055][   transport.py][1871] : Compression: none
2025-07-01 17:23:13,193 [DEBUG][       Thread-612055][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:23:13,248 [DEBUG][       Thread-612055][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:23:13,248 [DEBUG][       Thread-612055][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:23:13,248 [DEBUG][       Thread-612055][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:23:13,248 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:23:13,248 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:23:13,305 [DEBUG][       Thread-612055][   transport.py][1871] : userauth is OK
2025-07-01 17:23:13,305 [DEBUG][       Thread-612055][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:23:13,305 [DEBUG][       Thread-612055][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:23:13,305 [DEBUG][       Thread-612055][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:23:13,305 [DEBUG][       Thread-612055][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:23:13,319 [ INFO][       Thread-612055][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:23:13,319 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:23:13,319 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:23:14,333 [DEBUG][       Thread-612055][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:23:14,333 [DEBUG][       Thread-612055][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:23:14,383 [DEBUG][       Thread-612055][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:23:14,383 [DEBUG][       Thread-612055][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:23:14,391 [DEBUG][       Thread-612055][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:23:14,399 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:23:14,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-07-01 17:23: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') -> 00000000
2025-07-01 17:23:14,415 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:23:14,415 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:23:14,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:23:14,423 [DEBUG][       Thread-612055][   transport.py][1871] : EOF in transport thread
2025-07-01 17:23:14,786 [DEBUG][Thread-612057 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:23:23,806 [DEBUG][Thread-612058 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:23:24,426 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:23:24,426 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:23:24,426 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:23:24,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-07-01 17:23:24,923 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 23, 16), 10.77, 47.83, 0.0, 34.42, 12.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:23:24,923 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:23:16
2025-07-01 17:23:25,008 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:23:25,015 [DEBUG][       Thread-612059][   transport.py][1871] : starting thread (client mode): 0x82b2fb0
2025-07-01 17:23:25,015 [DEBUG][       Thread-612059][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:23:25,036 [DEBUG][       Thread-612059][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:23:25,036 [ INFO][       Thread-612059][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:23:25,039 [DEBUG][       Thread-612059][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:23:25,039 [DEBUG][       Thread-612059][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:23:25,039 [DEBUG][       Thread-612059][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:23:25,039 [DEBUG][       Thread-612059][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:23:25,040 [DEBUG][       Thread-612059][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:23:25,040 [DEBUG][       Thread-612059][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:23:25,040 [DEBUG][       Thread-612059][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:23:25,040 [DEBUG][       Thread-612059][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:23:25,040 [DEBUG][       Thread-612059][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:23:25,040 [DEBUG][       Thread-612059][   transport.py][1871] : client lang: <none>
2025-07-01 17:23:25,040 [DEBUG][       Thread-612059][   transport.py][1871] : server lang: <none>
2025-07-01 17:23:25,040 [DEBUG][       Thread-612059][   transport.py][1871] : kex follows: False
2025-07-01 17:23:25,040 [DEBUG][       Thread-612059][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:23:25,040 [DEBUG][       Thread-612059][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:23:25,040 [DEBUG][       Thread-612059][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:23:25,040 [DEBUG][       Thread-612059][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:23:25,040 [DEBUG][       Thread-612059][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:23:25,040 [DEBUG][       Thread-612059][   transport.py][1871] : Compression: none
2025-07-01 17:23:25,040 [DEBUG][       Thread-612059][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:23:25,057 [DEBUG][       Thread-612059][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:23:25,057 [DEBUG][       Thread-612059][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:23:25,058 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:23:25,058 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:23:25,058 [DEBUG][       Thread-612059][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:23:25,059 [DEBUG][       Thread-612059][   transport.py][1871] : userauth is OK
2025-07-01 17:23:25,072 [ INFO][       Thread-612059][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:23:25,073 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:23:25,918 [DEBUG][       Thread-612059][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:23:25,918 [DEBUG][       Thread-612059][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:23:25,961 [DEBUG][       Thread-612059][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:23:25,961 [DEBUG][       Thread-612059][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:23:25,964 [DEBUG][       Thread-612059][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:23:25,976 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:23:25,977 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:23:25,978 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:23:25,980 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:23:25,985 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:23:25,987 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:23:25,987 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:23:25,988 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:23:25,988 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.640910 -999.00  +12.70  28.93     52   +3.20 1 2 1 1 1   887    0 9.90 23.17 ----- 24.7 28.9 9.0 39.2 13.5 -19.7 13.3 -19.4 13.2 -18.7 13.5 -18.8
2025-07-01 17:23:25,988 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:23:25,988 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:23:25,988 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.640910
2025-07-01 17:23:25,989 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:23:25,989 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:23:25,989 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:23:25,990 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:23:25,990 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:23:25,990 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:23:16', tmtdew=10.77, humidity=47.83, cloud=0.0, wind=34.42, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:22:54.624', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:23:25,991 [DEBUG][       Thread-612059][   transport.py][1871] : EOF in transport thread
2025-07-01 17:23:26,073 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:23:26,085 [DEBUG][       Thread-612062][   transport.py][1871] : starting thread (client mode): 0x818c0d0
2025-07-01 17:23:26,085 [DEBUG][       Thread-612062][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:23:26,100 [DEBUG][       Thread-612062][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:23:26,100 [ INFO][       Thread-612062][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:23:26,108 [DEBUG][       Thread-612062][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:23:26,108 [DEBUG][       Thread-612062][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:23:26,108 [DEBUG][       Thread-612062][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:23:26,108 [DEBUG][       Thread-612062][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:23:26,108 [DEBUG][       Thread-612062][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:23:26,108 [DEBUG][       Thread-612062][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:23:26,108 [DEBUG][       Thread-612062][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:23:26,108 [DEBUG][       Thread-612062][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:23:26,108 [DEBUG][       Thread-612062][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:23:26,108 [DEBUG][       Thread-612062][   transport.py][1871] : client lang: <none>
2025-07-01 17:23:26,108 [DEBUG][       Thread-612062][   transport.py][1871] : server lang: <none>
2025-07-01 17:23:26,108 [DEBUG][       Thread-612062][   transport.py][1871] : kex follows: False
2025-07-01 17:23:26,108 [DEBUG][       Thread-612062][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:23:26,108 [DEBUG][       Thread-612062][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:23:26,108 [DEBUG][       Thread-612062][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:23:26,109 [DEBUG][       Thread-612062][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:23:26,109 [DEBUG][       Thread-612062][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:23:26,109 [DEBUG][       Thread-612062][   transport.py][1871] : Compression: none
2025-07-01 17:23:26,109 [DEBUG][       Thread-612062][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:23:26,171 [DEBUG][       Thread-612062][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:23:26,171 [DEBUG][       Thread-612062][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:23:26,172 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:23:26,172 [DEBUG][       Thread-612062][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:23:26,173 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:23:26,230 [DEBUG][       Thread-612062][   transport.py][1871] : userauth is OK
2025-07-01 17:23:26,231 [DEBUG][       Thread-612062][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:23:26,231 [DEBUG][       Thread-612062][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:23:26,231 [DEBUG][       Thread-612062][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:23:26,231 [DEBUG][       Thread-612062][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:23:26,250 [ INFO][       Thread-612062][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:23:26,250 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:23:26,250 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:23:27,276 [DEBUG][       Thread-612062][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:23:27,277 [DEBUG][       Thread-612062][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:23:27,335 [DEBUG][       Thread-612062][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:23:27,335 [DEBUG][       Thread-612062][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:23:27,347 [DEBUG][       Thread-612062][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:23:27,358 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:23: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-07-01 17:23:27,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-07-01 17:23:27,380 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:23:27,381 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:23:27,381 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:23:27,392 [DEBUG][       Thread-612062][   transport.py][1871] : EOF in transport thread
2025-07-01 17:23:32,828 [DEBUG][Thread-612064 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:23:37,390 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:23:37,390 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:23:37,390 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:23:37,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-07-01 17:23:37,869 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 23, 16), 10.77, 47.83, 0.0, 34.42, 12.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:23:37,869 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:23:16
2025-07-01 17:23:37,954 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:23:37,959 [DEBUG][       Thread-612065][   transport.py][1871] : starting thread (client mode): 0x818ece0
2025-07-01 17:23:37,959 [DEBUG][       Thread-612065][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:23:37,982 [DEBUG][       Thread-612065][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:23:37,983 [ INFO][       Thread-612065][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:23:37,986 [DEBUG][       Thread-612065][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:23:37,986 [DEBUG][       Thread-612065][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:23:37,987 [DEBUG][       Thread-612065][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:23:37,987 [DEBUG][       Thread-612065][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:23:37,987 [DEBUG][       Thread-612065][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:23:37,987 [DEBUG][       Thread-612065][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:23:37,987 [DEBUG][       Thread-612065][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:23:37,987 [DEBUG][       Thread-612065][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:23:37,987 [DEBUG][       Thread-612065][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:23:37,987 [DEBUG][       Thread-612065][   transport.py][1871] : client lang: <none>
2025-07-01 17:23:37,987 [DEBUG][       Thread-612065][   transport.py][1871] : server lang: <none>
2025-07-01 17:23:37,987 [DEBUG][       Thread-612065][   transport.py][1871] : kex follows: False
2025-07-01 17:23:37,987 [DEBUG][       Thread-612065][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:23:37,987 [DEBUG][       Thread-612065][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:23:37,987 [DEBUG][       Thread-612065][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:23:37,987 [DEBUG][       Thread-612065][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:23:37,987 [DEBUG][       Thread-612065][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:23:37,987 [DEBUG][       Thread-612065][   transport.py][1871] : Compression: none
2025-07-01 17:23:37,987 [DEBUG][       Thread-612065][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:23:38,004 [DEBUG][       Thread-612065][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:23:38,004 [DEBUG][       Thread-612065][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:23:38,005 [DEBUG][       Thread-612065][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:23:38,005 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:23:38,005 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:23:38,006 [DEBUG][       Thread-612065][   transport.py][1871] : userauth is OK
2025-07-01 17:23:38,031 [ INFO][       Thread-612065][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:23:38,031 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:23:38,621 [DEBUG][       Thread-612065][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:23:38,621 [DEBUG][       Thread-612065][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:23:38,665 [DEBUG][       Thread-612065][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:23:38,665 [DEBUG][       Thread-612065][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:23:38,669 [DEBUG][       Thread-612065][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:23:38,684 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:23:38,684 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:23:38,689 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:23:38,690 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:23:38,695 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:23:38,697 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:23:38,697 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:23:38,698 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:23:38,698 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.641257 -999.00  +12.70  32.36     52   +3.20 1 2 2 1 1   887    0 10.20 24.01 ----- 23.3 32.4 4.6 41.8 13.4 -19.5 13.3 -19.1 13.1 -18.6 13.5 -19.0
2025-07-01 17:23:38,698 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:23:38,698 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:23:38,698 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.641257
2025-07-01 17:23:38,699 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:23:38,699 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:23:38,699 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:23:38,699 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:23:38,699 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:23:38,700 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:23:16', tmtdew=10.77, humidity=47.83, cloud=0.0, wind=34.42, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:23:24.605', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:23:38,701 [DEBUG][       Thread-612065][   transport.py][1871] : EOF in transport thread
2025-07-01 17:23:38,783 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:23:38,793 [DEBUG][       Thread-612068][   transport.py][1871] : starting thread (client mode): 0x81db4c0
2025-07-01 17:23:38,793 [DEBUG][       Thread-612068][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:23:38,808 [DEBUG][       Thread-612068][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:23:38,808 [ INFO][       Thread-612068][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:23:38,816 [DEBUG][       Thread-612068][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:23:38,816 [DEBUG][       Thread-612068][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:23:38,816 [DEBUG][       Thread-612068][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:23:38,816 [DEBUG][       Thread-612068][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:23:38,816 [DEBUG][       Thread-612068][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:23:38,816 [DEBUG][       Thread-612068][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:23:38,816 [DEBUG][       Thread-612068][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:23:38,816 [DEBUG][       Thread-612068][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:23:38,816 [DEBUG][       Thread-612068][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:23:38,816 [DEBUG][       Thread-612068][   transport.py][1871] : client lang: <none>
2025-07-01 17:23:38,816 [DEBUG][       Thread-612068][   transport.py][1871] : server lang: <none>
2025-07-01 17:23:38,816 [DEBUG][       Thread-612068][   transport.py][1871] : kex follows: False
2025-07-01 17:23:38,816 [DEBUG][       Thread-612068][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:23:38,816 [DEBUG][       Thread-612068][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:23:38,816 [DEBUG][       Thread-612068][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:23:38,817 [DEBUG][       Thread-612068][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:23:38,817 [DEBUG][       Thread-612068][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:23:38,817 [DEBUG][       Thread-612068][   transport.py][1871] : Compression: none
2025-07-01 17:23:38,817 [DEBUG][       Thread-612068][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:23:38,879 [DEBUG][       Thread-612068][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:23:38,880 [DEBUG][       Thread-612068][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:23:38,880 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:23:38,881 [DEBUG][       Thread-612068][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:23:38,882 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:23:38,937 [DEBUG][       Thread-612068][   transport.py][1871] : userauth is OK
2025-07-01 17:23:38,937 [DEBUG][       Thread-612068][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:23:38,937 [DEBUG][       Thread-612068][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:23:38,937 [DEBUG][       Thread-612068][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:23:38,938 [DEBUG][       Thread-612068][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:23:38,956 [ INFO][       Thread-612068][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:23:38,956 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:23:38,956 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:23:39,991 [DEBUG][       Thread-612068][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:23:39,991 [DEBUG][       Thread-612068][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:23:40,040 [DEBUG][       Thread-612068][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:23:40,040 [DEBUG][       Thread-612068][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:23:40,051 [DEBUG][       Thread-612068][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:23:40,060 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:23:40,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')
2025-07-01 17:23:40,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-07-01 17:23:40,078 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:23:40,078 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:23:40,078 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:23:40,086 [DEBUG][       Thread-612068][   transport.py][1871] : EOF in transport thread
2025-07-01 17:23:40,348 [DEBUG][Thread-612070 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:23:41,869 [DEBUG][Thread-612071 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:23:50,088 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:23:50,088 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:23:50,088 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:23:50,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-07-01 17:23:50,613 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 23, 16), 10.77, 47.83, 0.0, 34.42, 12.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:23:50,613 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:23:16
2025-07-01 17:23:50,706 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:23:50,712 [DEBUG][       Thread-612072][   transport.py][1871] : starting thread (client mode): 0x818e680
2025-07-01 17:23:50,712 [DEBUG][       Thread-612072][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:23:50,734 [DEBUG][       Thread-612072][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:23:50,734 [ INFO][       Thread-612072][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:23:50,738 [DEBUG][       Thread-612072][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:23:50,738 [DEBUG][       Thread-612072][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:23:50,738 [DEBUG][       Thread-612072][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:23:50,738 [DEBUG][       Thread-612072][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:23:50,738 [DEBUG][       Thread-612072][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:23:50,738 [DEBUG][       Thread-612072][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:23:50,738 [DEBUG][       Thread-612072][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:23:50,738 [DEBUG][       Thread-612072][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:23:50,738 [DEBUG][       Thread-612072][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:23:50,738 [DEBUG][       Thread-612072][   transport.py][1871] : client lang: <none>
2025-07-01 17:23:50,738 [DEBUG][       Thread-612072][   transport.py][1871] : server lang: <none>
2025-07-01 17:23:50,738 [DEBUG][       Thread-612072][   transport.py][1871] : kex follows: False
2025-07-01 17:23:50,738 [DEBUG][       Thread-612072][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:23:50,738 [DEBUG][       Thread-612072][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:23:50,738 [DEBUG][       Thread-612072][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:23:50,738 [DEBUG][       Thread-612072][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:23:50,738 [DEBUG][       Thread-612072][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:23:50,738 [DEBUG][       Thread-612072][   transport.py][1871] : Compression: none
2025-07-01 17:23:50,738 [DEBUG][       Thread-612072][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:23:50,755 [DEBUG][       Thread-612072][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:23:50,755 [DEBUG][       Thread-612072][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:23:50,755 [DEBUG][       Thread-612072][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:23:50,755 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:23:50,755 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:23:50,756 [DEBUG][       Thread-612072][   transport.py][1871] : userauth is OK
2025-07-01 17:23:50,779 [ INFO][       Thread-612072][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:23:50,780 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:23:50,888 [DEBUG][Thread-612074 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:23:51,602 [DEBUG][       Thread-612072][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:23:51,602 [DEBUG][       Thread-612072][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:23:51,644 [DEBUG][       Thread-612072][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:23:51,644 [DEBUG][       Thread-612072][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:23:51,647 [DEBUG][       Thread-612072][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:23:51,654 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:23:51,654 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:23:51,655 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:23:51,656 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:23:51,658 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:23:51,659 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:23:51,659 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:23:51,659 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:23:51,659 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.641257 -999.00  +12.70  32.36     52   +3.20 1 2 2 1 1   887    0 10.20 24.01 ----- 23.3 32.4 4.6 41.8 13.4 -19.5 13.3 -19.1 13.1 -18.6 13.5 -19.0
2025-07-01 17:23:51,659 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:23:51,659 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:23:51,659 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.641257
2025-07-01 17:23:51,660 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:23:51,660 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:23:51,660 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:23:51,660 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:23:51,660 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:23:51,660 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:23:16', tmtdew=10.77, humidity=47.83, cloud=0.0, wind=34.42, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:23:24.605', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:23:51,660 [DEBUG][       Thread-612072][   transport.py][1871] : EOF in transport thread
2025-07-01 17:23:51,732 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:23:51,743 [DEBUG][       Thread-612076][   transport.py][1871] : starting thread (client mode): 0x8171480
2025-07-01 17:23:51,743 [DEBUG][       Thread-612076][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:23:51,764 [DEBUG][       Thread-612076][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:23:51,764 [ INFO][       Thread-612076][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:23:51,771 [DEBUG][       Thread-612076][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:23:51,771 [DEBUG][       Thread-612076][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:23:51,771 [DEBUG][       Thread-612076][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:23:51,771 [DEBUG][       Thread-612076][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:23:51,771 [DEBUG][       Thread-612076][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:23:51,771 [DEBUG][       Thread-612076][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:23:51,771 [DEBUG][       Thread-612076][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:23:51,771 [DEBUG][       Thread-612076][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:23:51,771 [DEBUG][       Thread-612076][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:23:51,772 [DEBUG][       Thread-612076][   transport.py][1871] : client lang: <none>
2025-07-01 17:23:51,772 [DEBUG][       Thread-612076][   transport.py][1871] : server lang: <none>
2025-07-01 17:23:51,772 [DEBUG][       Thread-612076][   transport.py][1871] : kex follows: False
2025-07-01 17:23:51,772 [DEBUG][       Thread-612076][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:23:51,772 [DEBUG][       Thread-612076][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:23:51,772 [DEBUG][       Thread-612076][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:23:51,772 [DEBUG][       Thread-612076][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:23:51,772 [DEBUG][       Thread-612076][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:23:51,772 [DEBUG][       Thread-612076][   transport.py][1871] : Compression: none
2025-07-01 17:23:51,772 [DEBUG][       Thread-612076][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:23:51,833 [DEBUG][       Thread-612076][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:23:51,833 [DEBUG][       Thread-612076][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:23:51,833 [DEBUG][       Thread-612076][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:23:51,834 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:23:51,834 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:23:51,895 [DEBUG][       Thread-612076][   transport.py][1871] : userauth is OK
2025-07-01 17:23:51,895 [DEBUG][       Thread-612076][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:23:51,895 [DEBUG][       Thread-612076][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:23:51,895 [DEBUG][       Thread-612076][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:23:51,895 [DEBUG][       Thread-612076][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:23:51,910 [ INFO][       Thread-612076][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:23:51,910 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:23:51,910 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:23:52,945 [DEBUG][       Thread-612076][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:23:52,945 [DEBUG][       Thread-612076][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:23:52,995 [DEBUG][       Thread-612076][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:23:52,995 [DEBUG][       Thread-612076][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:23:53,004 [DEBUG][       Thread-612076][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:23:53,012 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:23:53,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')
2025-07-01 17:23:53,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-07-01 17:23:53,032 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:23:53,032 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:23:53,033 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:23:53,044 [DEBUG][       Thread-612076][   transport.py][1871] : EOF in transport thread
2025-07-01 17:23:59,908 [DEBUG][Thread-612078 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:24:03,040 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:24:03,040 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:24:03,040 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:24:03,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-07-01 17:24:03,512 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 23, 48), 10.78, 47.81, 0.0, 35.9, 12.92, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:24:03,512 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:23:48
2025-07-01 17:24:03,597 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:24:03,601 [DEBUG][       Thread-612079][   transport.py][1871] : starting thread (client mode): 0x81a59c0
2025-07-01 17:24:03,601 [DEBUG][       Thread-612079][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:24:03,617 [DEBUG][       Thread-612079][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:24:03,618 [ INFO][       Thread-612079][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:24:03,621 [DEBUG][       Thread-612079][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:24:03,621 [DEBUG][       Thread-612079][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:24:03,621 [DEBUG][       Thread-612079][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:24:03,621 [DEBUG][       Thread-612079][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:24:03,621 [DEBUG][       Thread-612079][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:24:03,621 [DEBUG][       Thread-612079][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:24:03,621 [DEBUG][       Thread-612079][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:24:03,621 [DEBUG][       Thread-612079][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:24:03,621 [DEBUG][       Thread-612079][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:24:03,621 [DEBUG][       Thread-612079][   transport.py][1871] : client lang: <none>
2025-07-01 17:24:03,621 [DEBUG][       Thread-612079][   transport.py][1871] : server lang: <none>
2025-07-01 17:24:03,621 [DEBUG][       Thread-612079][   transport.py][1871] : kex follows: False
2025-07-01 17:24:03,621 [DEBUG][       Thread-612079][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:24:03,621 [DEBUG][       Thread-612079][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:24:03,621 [DEBUG][       Thread-612079][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:24:03,621 [DEBUG][       Thread-612079][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:24:03,621 [DEBUG][       Thread-612079][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:24:03,621 [DEBUG][       Thread-612079][   transport.py][1871] : Compression: none
2025-07-01 17:24:03,621 [DEBUG][       Thread-612079][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:24:03,629 [DEBUG][       Thread-612079][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:24:03,629 [DEBUG][       Thread-612079][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:24:03,629 [DEBUG][       Thread-612079][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:24:03,630 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:24:03,630 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:24:03,631 [DEBUG][       Thread-612079][   transport.py][1871] : userauth is OK
2025-07-01 17:24:03,654 [ INFO][       Thread-612079][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:24:03,655 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:24:04,261 [DEBUG][       Thread-612079][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:24:04,261 [DEBUG][       Thread-612079][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:24:04,305 [DEBUG][       Thread-612079][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:24:04,305 [DEBUG][       Thread-612079][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:24:04,308 [DEBUG][       Thread-612079][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:24:04,324 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:24:04,324 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:24:04,325 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:24:04,327 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:24:04,332 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:24:04,334 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:24:04,334 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:24:04,335 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:24:04,335 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.641604 -999.00  +12.60  31.62     52   +3.30 1 2 2 1 1   887    0 10.16 22.31 ----- 29.7 31.6 17.8 37.3 13.4 -19.6 13.3 -19.1 13.1 -18.7 13.4 -18.9
2025-07-01 17:24:04,335 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:24:04,335 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:24:04,335 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.641604
2025-07-01 17:24:04,335 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:24:04,336 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:24:04,336 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:24:04,336 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:24:04,337 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:24:04,337 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:23:48', tmtdew=10.78, humidity=47.81, cloud=0.0, wind=35.9, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:23:54.586', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:24:04,337 [DEBUG][       Thread-612079][   transport.py][1871] : EOF in transport thread
2025-07-01 17:24:04,422 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:24:04,432 [DEBUG][       Thread-612082][   transport.py][1871] : starting thread (client mode): 0x81e7490
2025-07-01 17:24:04,432 [DEBUG][       Thread-612082][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:24:04,447 [DEBUG][       Thread-612082][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:24:04,447 [ INFO][       Thread-612082][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:24:04,455 [DEBUG][       Thread-612082][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:24:04,455 [DEBUG][       Thread-612082][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:24:04,455 [DEBUG][       Thread-612082][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:24:04,455 [DEBUG][       Thread-612082][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:24:04,455 [DEBUG][       Thread-612082][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:24:04,455 [DEBUG][       Thread-612082][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:24:04,455 [DEBUG][       Thread-612082][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:24:04,455 [DEBUG][       Thread-612082][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:24:04,455 [DEBUG][       Thread-612082][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:24:04,455 [DEBUG][       Thread-612082][   transport.py][1871] : client lang: <none>
2025-07-01 17:24:04,455 [DEBUG][       Thread-612082][   transport.py][1871] : server lang: <none>
2025-07-01 17:24:04,455 [DEBUG][       Thread-612082][   transport.py][1871] : kex follows: False
2025-07-01 17:24:04,455 [DEBUG][       Thread-612082][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:24:04,455 [DEBUG][       Thread-612082][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:24:04,455 [DEBUG][       Thread-612082][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:24:04,455 [DEBUG][       Thread-612082][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:24:04,455 [DEBUG][       Thread-612082][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:24:04,455 [DEBUG][       Thread-612082][   transport.py][1871] : Compression: none
2025-07-01 17:24:04,455 [DEBUG][       Thread-612082][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:24:04,513 [DEBUG][       Thread-612082][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:24:04,514 [DEBUG][       Thread-612082][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:24:04,514 [DEBUG][       Thread-612082][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:24:04,514 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:24:04,515 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:24:04,572 [DEBUG][       Thread-612082][   transport.py][1871] : userauth is OK
2025-07-01 17:24:04,573 [DEBUG][       Thread-612082][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:24:04,573 [DEBUG][       Thread-612082][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:24:04,573 [DEBUG][       Thread-612082][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:24:04,573 [DEBUG][       Thread-612082][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:24:04,600 [ INFO][       Thread-612082][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:24:04,600 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:24:04,600 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:24:05,686 [DEBUG][       Thread-612082][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:24:05,687 [DEBUG][       Thread-612082][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:24:05,736 [DEBUG][       Thread-612082][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:24:05,736 [DEBUG][       Thread-612082][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:24:05,745 [DEBUG][       Thread-612082][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:24:05,755 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:24:05,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-07-01 17:24:05,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-07-01 17:24:05,775 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:24:05,775 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:24:05,776 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:24:05,789 [DEBUG][       Thread-612082][   transport.py][1871] : EOF in transport thread
2025-07-01 17:24:08,932 [DEBUG][Thread-612084 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:24:15,786 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:24:15,787 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:24:15,787 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:24:15,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-07-01 17:24:16,267 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 23, 48), 10.78, 47.81, 0.0, 35.9, 12.92, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:24:16,267 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:23:48
2025-07-01 17:24:16,351 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:24:16,357 [DEBUG][       Thread-612085][   transport.py][1871] : starting thread (client mode): 0x81a6ad0
2025-07-01 17:24:16,357 [DEBUG][       Thread-612085][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:24:16,377 [DEBUG][       Thread-612085][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:24:16,378 [ INFO][       Thread-612085][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:24:16,381 [DEBUG][       Thread-612085][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:24:16,381 [DEBUG][       Thread-612085][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:24:16,381 [DEBUG][       Thread-612085][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:24:16,381 [DEBUG][       Thread-612085][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:24:16,381 [DEBUG][       Thread-612085][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:24:16,381 [DEBUG][       Thread-612085][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:24:16,381 [DEBUG][       Thread-612085][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:24:16,381 [DEBUG][       Thread-612085][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:24:16,381 [DEBUG][       Thread-612085][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:24:16,381 [DEBUG][       Thread-612085][   transport.py][1871] : client lang: <none>
2025-07-01 17:24:16,381 [DEBUG][       Thread-612085][   transport.py][1871] : server lang: <none>
2025-07-01 17:24:16,381 [DEBUG][       Thread-612085][   transport.py][1871] : kex follows: False
2025-07-01 17:24:16,381 [DEBUG][       Thread-612085][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:24:16,381 [DEBUG][       Thread-612085][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:24:16,381 [DEBUG][       Thread-612085][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:24:16,381 [DEBUG][       Thread-612085][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:24:16,381 [DEBUG][       Thread-612085][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:24:16,381 [DEBUG][       Thread-612085][   transport.py][1871] : Compression: none
2025-07-01 17:24:16,381 [DEBUG][       Thread-612085][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:24:16,397 [DEBUG][       Thread-612085][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:24:16,398 [DEBUG][       Thread-612085][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:24:16,398 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:24:16,398 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:24:16,399 [DEBUG][       Thread-612085][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:24:16,399 [DEBUG][       Thread-612085][   transport.py][1871] : userauth is OK
2025-07-01 17:24:16,424 [ INFO][       Thread-612085][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:24:16,425 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:24:17,069 [DEBUG][       Thread-612085][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:24:17,069 [DEBUG][       Thread-612085][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:24:17,113 [DEBUG][       Thread-612085][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:24:17,113 [DEBUG][       Thread-612085][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:24:17,116 [DEBUG][       Thread-612085][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:24:17,128 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:24:17,129 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:24:17,131 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:24:17,133 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:24:17,138 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:24:17,140 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:24:17,140 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:24:17,141 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:24:17,141 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.641604 -999.00  +12.60  31.62     52   +3.30 1 2 2 1 1   887    0 10.16 22.31 ----- 29.7 31.6 17.8 37.3 13.4 -19.6 13.3 -19.1 13.1 -18.7 13.4 -18.9
2025-07-01 17:24:17,141 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:24:17,141 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:24:17,141 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.641604
2025-07-01 17:24:17,142 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:24:17,142 [DEBUG][       Thread-612085][   transport.py][1871] : EOF in transport thread
2025-07-01 17:24:17,143 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:24:17,144 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:24:17,144 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:24:17,144 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:24:17,144 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:23:48', tmtdew=10.78, humidity=47.81, cloud=0.0, wind=35.9, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:23:54.586', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:24:17,227 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:24:17,239 [DEBUG][       Thread-612088][   transport.py][1871] : starting thread (client mode): 0x8157a00
2025-07-01 17:24:17,239 [DEBUG][       Thread-612088][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:24:17,259 [DEBUG][       Thread-612088][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:24:17,259 [ INFO][       Thread-612088][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:24:17,267 [DEBUG][       Thread-612088][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:24:17,267 [DEBUG][       Thread-612088][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:24:17,267 [DEBUG][       Thread-612088][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:24:17,267 [DEBUG][       Thread-612088][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:24:17,267 [DEBUG][       Thread-612088][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:24:17,267 [DEBUG][       Thread-612088][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:24:17,267 [DEBUG][       Thread-612088][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:24:17,267 [DEBUG][       Thread-612088][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:24:17,267 [DEBUG][       Thread-612088][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:24:17,267 [DEBUG][       Thread-612088][   transport.py][1871] : client lang: <none>
2025-07-01 17:24:17,267 [DEBUG][       Thread-612088][   transport.py][1871] : server lang: <none>
2025-07-01 17:24:17,267 [DEBUG][       Thread-612088][   transport.py][1871] : kex follows: False
2025-07-01 17:24:17,267 [DEBUG][       Thread-612088][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:24:17,268 [DEBUG][       Thread-612088][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:24:17,268 [DEBUG][       Thread-612088][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:24:17,268 [DEBUG][       Thread-612088][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:24:17,268 [DEBUG][       Thread-612088][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:24:17,268 [DEBUG][       Thread-612088][   transport.py][1871] : Compression: none
2025-07-01 17:24:17,268 [DEBUG][       Thread-612088][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:24:17,325 [DEBUG][       Thread-612088][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:24:17,325 [DEBUG][       Thread-612088][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:24:17,326 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:24:17,327 [DEBUG][       Thread-612088][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:24:17,327 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:24:17,381 [DEBUG][       Thread-612088][   transport.py][1871] : userauth is OK
2025-07-01 17:24:17,381 [DEBUG][       Thread-612088][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:24:17,382 [DEBUG][       Thread-612088][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:24:17,382 [DEBUG][       Thread-612088][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:24:17,382 [DEBUG][       Thread-612088][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:24:17,403 [ INFO][       Thread-612088][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:24:17,403 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:24:17,404 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:24:17,967 [DEBUG][Thread-612090 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:24:18,441 [DEBUG][       Thread-612088][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:24:18,441 [DEBUG][       Thread-612088][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:24:18,492 [DEBUG][       Thread-612088][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:24:18,492 [DEBUG][       Thread-612088][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:24:18,501 [DEBUG][       Thread-612088][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:24:18,510 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:24:18,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-07-01 17:24:18,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-07-01 17:24:18,529 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:24:18,529 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:24:18,529 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:24:18,537 [DEBUG][       Thread-612088][   transport.py][1871] : EOF in transport thread
2025-07-01 17:24:26,991 [DEBUG][Thread-612091 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:24:28,532 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:24:28,532 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:24:28,532 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:24:28,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-07-01 17:24:29,051 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 24, 20), 10.81, 47.82, 0.0, 39.22, 12.96, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:24:29,051 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:24:20
2025-07-01 17:24:29,137 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:24:29,143 [DEBUG][       Thread-612092][   transport.py][1871] : starting thread (client mode): 0x81a6a40
2025-07-01 17:24:29,143 [DEBUG][       Thread-612092][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:24:29,164 [DEBUG][       Thread-612092][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:24:29,164 [ INFO][       Thread-612092][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:24:29,167 [DEBUG][       Thread-612092][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:24:29,167 [DEBUG][       Thread-612092][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:24:29,167 [DEBUG][       Thread-612092][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:24:29,167 [DEBUG][       Thread-612092][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:24:29,167 [DEBUG][       Thread-612092][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:24:29,167 [DEBUG][       Thread-612092][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:24:29,167 [DEBUG][       Thread-612092][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:24:29,167 [DEBUG][       Thread-612092][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:24:29,167 [DEBUG][       Thread-612092][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:24:29,167 [DEBUG][       Thread-612092][   transport.py][1871] : client lang: <none>
2025-07-01 17:24:29,167 [DEBUG][       Thread-612092][   transport.py][1871] : server lang: <none>
2025-07-01 17:24:29,167 [DEBUG][       Thread-612092][   transport.py][1871] : kex follows: False
2025-07-01 17:24:29,167 [DEBUG][       Thread-612092][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:24:29,167 [DEBUG][       Thread-612092][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:24:29,167 [DEBUG][       Thread-612092][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:24:29,167 [DEBUG][       Thread-612092][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:24:29,167 [DEBUG][       Thread-612092][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:24:29,167 [DEBUG][       Thread-612092][   transport.py][1871] : Compression: none
2025-07-01 17:24:29,167 [DEBUG][       Thread-612092][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:24:29,183 [DEBUG][       Thread-612092][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:24:29,184 [DEBUG][       Thread-612092][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:24:29,184 [DEBUG][       Thread-612092][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:24:29,184 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:24:29,184 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:24:29,228 [DEBUG][       Thread-612092][   transport.py][1871] : userauth is OK
2025-07-01 17:24:29,253 [ INFO][       Thread-612092][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:24:29,253 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:24:30,090 [DEBUG][       Thread-612092][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:24:30,090 [DEBUG][       Thread-612092][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:24:30,132 [DEBUG][       Thread-612092][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:24:30,132 [DEBUG][       Thread-612092][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:24:30,135 [DEBUG][       Thread-612092][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:24:30,148 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:24:30,148 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:24:30,149 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:24:30,150 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:24:30,153 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:24:30,154 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:24:30,154 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:24:30,154 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:24:30,154 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.641604 -999.00  +12.60  31.62     52   +3.30 1 2 2 1 1   887    0 10.16 22.31 ----- 29.7 31.6 17.8 37.3 13.4 -19.6 13.3 -19.1 13.1 -18.7 13.4 -18.9
2025-07-01 17:24:30,154 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:24:30,154 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:24:30,154 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.641604
2025-07-01 17:24:30,154 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:24:30,155 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:24:30,155 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:24:30,155 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:24:30,155 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:24:30,155 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:24:20', tmtdew=10.81, humidity=47.82, cloud=0.0, wind=39.22, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:23:54.586', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:24:30,155 [DEBUG][       Thread-612092][   transport.py][1871] : EOF in transport thread
2025-07-01 17:24:30,226 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:24:30,238 [DEBUG][       Thread-612095][   transport.py][1871] : starting thread (client mode): 0x81a7520
2025-07-01 17:24:30,238 [DEBUG][       Thread-612095][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:24:30,254 [DEBUG][       Thread-612095][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:24:30,254 [ INFO][       Thread-612095][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:24:30,262 [DEBUG][       Thread-612095][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:24:30,262 [DEBUG][       Thread-612095][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:24:30,262 [DEBUG][       Thread-612095][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:24:30,262 [DEBUG][       Thread-612095][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:24:30,262 [DEBUG][       Thread-612095][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:24:30,262 [DEBUG][       Thread-612095][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:24:30,262 [DEBUG][       Thread-612095][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:24:30,262 [DEBUG][       Thread-612095][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:24:30,262 [DEBUG][       Thread-612095][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:24:30,262 [DEBUG][       Thread-612095][   transport.py][1871] : client lang: <none>
2025-07-01 17:24:30,262 [DEBUG][       Thread-612095][   transport.py][1871] : server lang: <none>
2025-07-01 17:24:30,262 [DEBUG][       Thread-612095][   transport.py][1871] : kex follows: False
2025-07-01 17:24:30,262 [DEBUG][       Thread-612095][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:24:30,262 [DEBUG][       Thread-612095][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:24:30,262 [DEBUG][       Thread-612095][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:24:30,262 [DEBUG][       Thread-612095][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:24:30,262 [DEBUG][       Thread-612095][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:24:30,262 [DEBUG][       Thread-612095][   transport.py][1871] : Compression: none
2025-07-01 17:24:30,262 [DEBUG][       Thread-612095][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:24:30,321 [DEBUG][       Thread-612095][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:24:30,321 [DEBUG][       Thread-612095][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:24:30,321 [DEBUG][       Thread-612095][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:24:30,321 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:24:30,321 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:24:30,383 [DEBUG][       Thread-612095][   transport.py][1871] : userauth is OK
2025-07-01 17:24:30,383 [DEBUG][       Thread-612095][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:24:30,384 [DEBUG][       Thread-612095][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:24:30,384 [DEBUG][       Thread-612095][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:24:30,384 [DEBUG][       Thread-612095][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:24:30,399 [ INFO][       Thread-612095][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:24:30,399 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:24:30,399 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:24:31,448 [DEBUG][       Thread-612095][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:24:31,448 [DEBUG][       Thread-612095][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:24:31,499 [DEBUG][       Thread-612095][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:24:31,499 [DEBUG][       Thread-612095][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:24:31,508 [DEBUG][       Thread-612095][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:24:31,516 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:24: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')
2025-07-01 17:24:31,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-07-01 17:24:31,532 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:24:31,532 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:24:31,532 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:24:31,539 [DEBUG][       Thread-612095][   transport.py][1871] : EOF in transport thread
2025-07-01 17:24:36,011 [DEBUG][Thread-612097 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:24:40,378 [DEBUG][Thread-612098 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:24:41,540 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:24:41,540 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:24:41,540 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:24:41,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-07-01 17:24:42,010 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 24, 20), 10.81, 47.82, 0.0, 39.22, 12.96, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:24:42,010 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:24:20
2025-07-01 17:24:42,096 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:24:42,100 [DEBUG][       Thread-612099][   transport.py][1871] : starting thread (client mode): 0x81e7340
2025-07-01 17:24:42,100 [DEBUG][       Thread-612099][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:24:42,120 [DEBUG][       Thread-612099][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:24:42,120 [ INFO][       Thread-612099][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:24:42,123 [DEBUG][       Thread-612099][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:24:42,123 [DEBUG][       Thread-612099][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:24:42,123 [DEBUG][       Thread-612099][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:24:42,123 [DEBUG][       Thread-612099][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:24:42,123 [DEBUG][       Thread-612099][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:24:42,123 [DEBUG][       Thread-612099][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:24:42,123 [DEBUG][       Thread-612099][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:24:42,123 [DEBUG][       Thread-612099][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:24:42,123 [DEBUG][       Thread-612099][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:24:42,123 [DEBUG][       Thread-612099][   transport.py][1871] : client lang: <none>
2025-07-01 17:24:42,123 [DEBUG][       Thread-612099][   transport.py][1871] : server lang: <none>
2025-07-01 17:24:42,123 [DEBUG][       Thread-612099][   transport.py][1871] : kex follows: False
2025-07-01 17:24:42,123 [DEBUG][       Thread-612099][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:24:42,123 [DEBUG][       Thread-612099][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:24:42,123 [DEBUG][       Thread-612099][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:24:42,124 [DEBUG][       Thread-612099][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:24:42,124 [DEBUG][       Thread-612099][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:24:42,124 [DEBUG][       Thread-612099][   transport.py][1871] : Compression: none
2025-07-01 17:24:42,124 [DEBUG][       Thread-612099][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:24:42,142 [DEBUG][       Thread-612099][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:24:42,142 [DEBUG][       Thread-612099][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:24:42,143 [DEBUG][       Thread-612099][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:24:42,143 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:24:42,143 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:24:42,144 [DEBUG][       Thread-612099][   transport.py][1871] : userauth is OK
2025-07-01 17:24:42,168 [ INFO][       Thread-612099][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:24:42,169 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:24:42,824 [DEBUG][       Thread-612099][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:24:42,824 [DEBUG][       Thread-612099][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:24:42,865 [DEBUG][       Thread-612099][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:24:42,865 [DEBUG][       Thread-612099][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:24:42,868 [DEBUG][       Thread-612099][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:24:42,882 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:24:42,883 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:24:42,885 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:24:42,887 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:24:42,892 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:24:42,894 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:24:42,894 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:24:42,895 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:24:42,895 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.641951 -999.00  +12.70  30.02     52   +3.20 1 2 2 1 1   887    0 10.21 22.84 ----- 34.0 30.0 10.4 38.3 13.4 -19.4 13.3 -19.1 13.1 -18.5 13.4 -18.7
2025-07-01 17:24:42,895 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:24:42,895 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:24:42,895 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.641951
2025-07-01 17:24:42,896 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:24:42,896 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:24:42,897 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:24:42,897 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:24:42,897 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:24:42,897 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:24:20', tmtdew=10.81, humidity=47.82, cloud=0.0, wind=39.22, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:24:24.566', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:24:42,897 [DEBUG][       Thread-612099][   transport.py][1871] : EOF in transport thread
2025-07-01 17:24:42,981 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:24:42,994 [DEBUG][       Thread-612102][   transport.py][1871] : starting thread (client mode): 0x8172530
2025-07-01 17:24:42,995 [DEBUG][       Thread-612102][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:24:43,009 [DEBUG][       Thread-612102][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:24:43,009 [ INFO][       Thread-612102][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:24:43,017 [DEBUG][       Thread-612102][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:24:43,017 [DEBUG][       Thread-612102][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:24:43,017 [DEBUG][       Thread-612102][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:24:43,017 [DEBUG][       Thread-612102][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:24:43,017 [DEBUG][       Thread-612102][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:24:43,017 [DEBUG][       Thread-612102][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:24:43,017 [DEBUG][       Thread-612102][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:24:43,017 [DEBUG][       Thread-612102][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:24:43,018 [DEBUG][       Thread-612102][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:24:43,018 [DEBUG][       Thread-612102][   transport.py][1871] : client lang: <none>
2025-07-01 17:24:43,018 [DEBUG][       Thread-612102][   transport.py][1871] : server lang: <none>
2025-07-01 17:24:43,018 [DEBUG][       Thread-612102][   transport.py][1871] : kex follows: False
2025-07-01 17:24:43,018 [DEBUG][       Thread-612102][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:24:43,018 [DEBUG][       Thread-612102][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:24:43,018 [DEBUG][       Thread-612102][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:24:43,018 [DEBUG][       Thread-612102][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:24:43,018 [DEBUG][       Thread-612102][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:24:43,018 [DEBUG][       Thread-612102][   transport.py][1871] : Compression: none
2025-07-01 17:24:43,018 [DEBUG][       Thread-612102][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:24:43,074 [DEBUG][       Thread-612102][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:24:43,074 [DEBUG][       Thread-612102][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:24:43,075 [DEBUG][       Thread-612102][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:24:43,075 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:24:43,076 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:24:43,130 [DEBUG][       Thread-612102][   transport.py][1871] : userauth is OK
2025-07-01 17:24:43,130 [DEBUG][       Thread-612102][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:24:43,130 [DEBUG][       Thread-612102][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:24:43,130 [DEBUG][       Thread-612102][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:24:43,130 [DEBUG][       Thread-612102][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:24:43,149 [ INFO][       Thread-612102][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:24:43,150 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:24:43,150 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:24:44,196 [DEBUG][       Thread-612102][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:24:44,196 [DEBUG][       Thread-612102][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:24:44,244 [DEBUG][       Thread-612102][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:24:44,244 [DEBUG][       Thread-612102][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:24:44,254 [DEBUG][       Thread-612102][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:24:44,263 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:24:44,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-07-01 17:24:44,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-07-01 17:24:44,281 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:24:44,281 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:24:44,282 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:24:44,290 [DEBUG][       Thread-612102][   transport.py][1871] : EOF in transport thread
2025-07-01 17:24:45,046 [DEBUG][Thread-612104 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:24:54,066 [DEBUG][Thread-612105 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:24:54,292 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:24:54,292 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:24:54,292 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:24:54,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-07-01 17:24:54,792 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 24, 20), 10.81, 47.82, 0.0, 39.22, 12.96, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:24:54,792 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:24:20
2025-07-01 17:24:54,876 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:24:54,882 [DEBUG][       Thread-612106][   transport.py][1871] : starting thread (client mode): 0x81066b0
2025-07-01 17:24:54,882 [DEBUG][       Thread-612106][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:24:54,902 [DEBUG][       Thread-612106][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:24:54,903 [ INFO][       Thread-612106][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:24:54,906 [DEBUG][       Thread-612106][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:24:54,906 [DEBUG][       Thread-612106][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:24:54,906 [DEBUG][       Thread-612106][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:24:54,906 [DEBUG][       Thread-612106][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:24:54,906 [DEBUG][       Thread-612106][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:24:54,906 [DEBUG][       Thread-612106][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:24:54,906 [DEBUG][       Thread-612106][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:24:54,906 [DEBUG][       Thread-612106][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:24:54,906 [DEBUG][       Thread-612106][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:24:54,906 [DEBUG][       Thread-612106][   transport.py][1871] : client lang: <none>
2025-07-01 17:24:54,906 [DEBUG][       Thread-612106][   transport.py][1871] : server lang: <none>
2025-07-01 17:24:54,906 [DEBUG][       Thread-612106][   transport.py][1871] : kex follows: False
2025-07-01 17:24:54,906 [DEBUG][       Thread-612106][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:24:54,906 [DEBUG][       Thread-612106][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:24:54,906 [DEBUG][       Thread-612106][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:24:54,906 [DEBUG][       Thread-612106][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:24:54,906 [DEBUG][       Thread-612106][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:24:54,906 [DEBUG][       Thread-612106][   transport.py][1871] : Compression: none
2025-07-01 17:24:54,906 [DEBUG][       Thread-612106][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:24:54,915 [DEBUG][       Thread-612106][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:24:54,915 [DEBUG][       Thread-612106][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:24:54,916 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:24:54,916 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:24:54,917 [DEBUG][       Thread-612106][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:24:54,917 [DEBUG][       Thread-612106][   transport.py][1871] : userauth is OK
2025-07-01 17:24:54,931 [ INFO][       Thread-612106][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:24:54,932 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:24:55,732 [DEBUG][       Thread-612106][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:24:55,733 [DEBUG][       Thread-612106][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:24:55,777 [DEBUG][       Thread-612106][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:24:55,777 [DEBUG][       Thread-612106][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:24:55,780 [DEBUG][       Thread-612106][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:24:55,793 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:24:55,793 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:24:55,795 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:24:55,797 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:24:55,803 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:24:55,805 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:24:55,805 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:24:55,806 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:24:55,806 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.641951 -999.00  +12.70  30.02     52   +3.20 1 2 2 1 1   887    0 10.21 22.84 ----- 34.0 30.0 10.4 38.3 13.4 -19.4 13.3 -19.1 13.1 -18.5 13.4 -18.7
2025-07-01 17:24:55,806 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:24:55,806 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:24:55,807 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.641951
2025-07-01 17:24:55,807 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:24:55,807 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:24:55,808 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:24:55,808 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:24:55,808 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:24:55,808 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:24:20', tmtdew=10.81, humidity=47.82, cloud=0.0, wind=39.22, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:24:24.566', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:24:55,808 [DEBUG][       Thread-612106][   transport.py][1871] : EOF in transport thread
2025-07-01 17:24:55,893 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:24:55,904 [DEBUG][       Thread-612109][   transport.py][1871] : starting thread (client mode): 0x81d92d0
2025-07-01 17:24:55,904 [DEBUG][       Thread-612109][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:24:55,920 [DEBUG][       Thread-612109][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:24:55,920 [ INFO][       Thread-612109][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:24:55,928 [DEBUG][       Thread-612109][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:24:55,928 [DEBUG][       Thread-612109][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:24:55,928 [DEBUG][       Thread-612109][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:24:55,928 [DEBUG][       Thread-612109][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:24:55,928 [DEBUG][       Thread-612109][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:24:55,928 [DEBUG][       Thread-612109][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:24:55,928 [DEBUG][       Thread-612109][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:24:55,928 [DEBUG][       Thread-612109][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:24:55,928 [DEBUG][       Thread-612109][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:24:55,928 [DEBUG][       Thread-612109][   transport.py][1871] : client lang: <none>
2025-07-01 17:24:55,928 [DEBUG][       Thread-612109][   transport.py][1871] : server lang: <none>
2025-07-01 17:24:55,928 [DEBUG][       Thread-612109][   transport.py][1871] : kex follows: False
2025-07-01 17:24:55,929 [DEBUG][       Thread-612109][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:24:55,929 [DEBUG][       Thread-612109][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:24:55,929 [DEBUG][       Thread-612109][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:24:55,929 [DEBUG][       Thread-612109][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:24:55,929 [DEBUG][       Thread-612109][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:24:55,929 [DEBUG][       Thread-612109][   transport.py][1871] : Compression: none
2025-07-01 17:24:55,929 [DEBUG][       Thread-612109][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:24:55,986 [DEBUG][       Thread-612109][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:24:55,987 [DEBUG][       Thread-612109][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:24:55,987 [DEBUG][       Thread-612109][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:24:55,988 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:24:55,989 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:24:56,054 [DEBUG][       Thread-612109][   transport.py][1871] : userauth is OK
2025-07-01 17:24:56,054 [DEBUG][       Thread-612109][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:24:56,055 [DEBUG][       Thread-612109][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:24:56,055 [DEBUG][       Thread-612109][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:24:56,055 [DEBUG][       Thread-612109][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:24:56,074 [ INFO][       Thread-612109][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:24:56,074 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:24:56,075 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:24:57,096 [DEBUG][       Thread-612109][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:24:57,096 [DEBUG][       Thread-612109][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:24:57,144 [DEBUG][       Thread-612109][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:24:57,144 [DEBUG][       Thread-612109][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:24:57,153 [DEBUG][       Thread-612109][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:24:57,168 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:24:57,168 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 17:24:57,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-07-01 17:24:57,189 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:24:57,189 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:24:57,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:24:57,197 [DEBUG][       Thread-612109][   transport.py][1871] : EOF in transport thread
2025-07-01 17:25:03,085 [DEBUG][Thread-612111 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:25:07,193 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:25:07,194 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:25:07,194 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:25:07,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-07-01 17:25:07,661 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 24, 52), 10.82, 47.78, 0.0, 37.19, 12.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:25:07,661 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:24:52
2025-07-01 17:25:07,745 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:25:07,749 [DEBUG][       Thread-612112][   transport.py][1871] : starting thread (client mode): 0x81e4580
2025-07-01 17:25:07,749 [DEBUG][       Thread-612112][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:25:07,764 [DEBUG][       Thread-612112][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:25:07,764 [ INFO][       Thread-612112][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:25:07,768 [DEBUG][       Thread-612112][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:25:07,768 [DEBUG][       Thread-612112][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:25:07,768 [DEBUG][       Thread-612112][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:25:07,768 [DEBUG][       Thread-612112][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:25:07,768 [DEBUG][       Thread-612112][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:25:07,768 [DEBUG][       Thread-612112][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:25:07,768 [DEBUG][       Thread-612112][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:25:07,768 [DEBUG][       Thread-612112][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:25:07,768 [DEBUG][       Thread-612112][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:25:07,768 [DEBUG][       Thread-612112][   transport.py][1871] : client lang: <none>
2025-07-01 17:25:07,768 [DEBUG][       Thread-612112][   transport.py][1871] : server lang: <none>
2025-07-01 17:25:07,768 [DEBUG][       Thread-612112][   transport.py][1871] : kex follows: False
2025-07-01 17:25:07,768 [DEBUG][       Thread-612112][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:25:07,768 [DEBUG][       Thread-612112][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:25:07,768 [DEBUG][       Thread-612112][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:25:07,768 [DEBUG][       Thread-612112][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:25:07,768 [DEBUG][       Thread-612112][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:25:07,768 [DEBUG][       Thread-612112][   transport.py][1871] : Compression: none
2025-07-01 17:25:07,768 [DEBUG][       Thread-612112][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:25:07,784 [DEBUG][       Thread-612112][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:25:07,785 [DEBUG][       Thread-612112][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:25:07,785 [DEBUG][       Thread-612112][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:25:07,785 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:25:07,785 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:25:07,787 [DEBUG][       Thread-612112][   transport.py][1871] : userauth is OK
2025-07-01 17:25:07,812 [ INFO][       Thread-612112][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:25:07,813 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:25:08,644 [DEBUG][       Thread-612112][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:25:08,644 [DEBUG][       Thread-612112][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:25:08,684 [DEBUG][       Thread-612112][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:25:08,684 [DEBUG][       Thread-612112][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:25:08,686 [DEBUG][       Thread-612112][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:25:08,699 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:25:08,699 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:25:08,700 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:25:08,701 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:25:08,704 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:25:08,704 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:25:08,704 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:25:08,705 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:25:08,705 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.641951 -999.00  +12.70  30.02     52   +3.20 1 2 2 1 1   887    0 10.21 22.84 ----- 34.0 30.0 10.4 38.3 13.4 -19.4 13.3 -19.1 13.1 -18.5 13.4 -18.7
2025-07-01 17:25:08,705 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:25:08,705 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:25:08,705 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.641951
2025-07-01 17:25:08,705 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:25:08,705 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:25:08,705 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:25:08,705 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:25:08,705 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:25:08,705 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:24:52', tmtdew=10.82, humidity=47.78, cloud=0.0, wind=37.19, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:24:24.566', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:25:08,705 [DEBUG][       Thread-612112][   transport.py][1871] : EOF in transport thread
2025-07-01 17:25:08,778 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:25:08,788 [DEBUG][       Thread-612115][   transport.py][1871] : starting thread (client mode): 0x83c8430
2025-07-01 17:25:08,788 [DEBUG][       Thread-612115][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:25:08,804 [DEBUG][       Thread-612115][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:25:08,804 [ INFO][       Thread-612115][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:25:08,811 [DEBUG][       Thread-612115][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:25:08,811 [DEBUG][       Thread-612115][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:25:08,811 [DEBUG][       Thread-612115][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:25:08,811 [DEBUG][       Thread-612115][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:25:08,811 [DEBUG][       Thread-612115][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:25:08,811 [DEBUG][       Thread-612115][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:25:08,811 [DEBUG][       Thread-612115][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:25:08,811 [DEBUG][       Thread-612115][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:25:08,811 [DEBUG][       Thread-612115][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:25:08,811 [DEBUG][       Thread-612115][   transport.py][1871] : client lang: <none>
2025-07-01 17:25:08,811 [DEBUG][       Thread-612115][   transport.py][1871] : server lang: <none>
2025-07-01 17:25:08,811 [DEBUG][       Thread-612115][   transport.py][1871] : kex follows: False
2025-07-01 17:25:08,811 [DEBUG][       Thread-612115][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:25:08,811 [DEBUG][       Thread-612115][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:25:08,811 [DEBUG][       Thread-612115][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:25:08,811 [DEBUG][       Thread-612115][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:25:08,811 [DEBUG][       Thread-612115][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:25:08,811 [DEBUG][       Thread-612115][   transport.py][1871] : Compression: none
2025-07-01 17:25:08,811 [DEBUG][       Thread-612115][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:25:08,869 [DEBUG][       Thread-612115][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:25:08,869 [DEBUG][       Thread-612115][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:25:08,869 [DEBUG][       Thread-612115][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:25:08,869 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:25:08,870 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:25:08,926 [DEBUG][       Thread-612115][   transport.py][1871] : userauth is OK
2025-07-01 17:25:08,926 [DEBUG][       Thread-612115][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:25:08,926 [DEBUG][       Thread-612115][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:25:08,926 [DEBUG][       Thread-612115][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:25:08,926 [DEBUG][       Thread-612115][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:25:08,943 [ INFO][       Thread-612115][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:25:08,943 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:25:08,944 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:25:10,053 [DEBUG][       Thread-612115][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:25:10,053 [DEBUG][       Thread-612115][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:25:10,106 [DEBUG][       Thread-612115][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:25:10,106 [DEBUG][       Thread-612115][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:25:10,115 [DEBUG][       Thread-612115][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:25:10,123 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:25:10,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-07-01 17:25:10,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-07-01 17:25:10,139 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:25:10,139 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:25:10,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:25:10,147 [DEBUG][       Thread-612115][   transport.py][1871] : EOF in transport thread
2025-07-01 17:25:12,102 [DEBUG][Thread-612117 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:25:20,150 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:25:20,150 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:25:20,150 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:25:20,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-07-01 17:25:20,619 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 24, 52), 10.82, 47.78, 0.0, 37.19, 12.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:25:20,619 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:24:52
2025-07-01 17:25:20,706 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:25:20,710 [DEBUG][       Thread-612118][   transport.py][1871] : starting thread (client mode): 0x8104610
2025-07-01 17:25:20,710 [DEBUG][       Thread-612118][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:25:20,733 [DEBUG][       Thread-612118][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:25:20,733 [ INFO][       Thread-612118][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:25:20,737 [DEBUG][       Thread-612118][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:25:20,737 [DEBUG][       Thread-612118][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:25:20,737 [DEBUG][       Thread-612118][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:25:20,737 [DEBUG][       Thread-612118][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:25:20,737 [DEBUG][       Thread-612118][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:25:20,737 [DEBUG][       Thread-612118][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:25:20,737 [DEBUG][       Thread-612118][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:25:20,737 [DEBUG][       Thread-612118][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:25:20,737 [DEBUG][       Thread-612118][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:25:20,737 [DEBUG][       Thread-612118][   transport.py][1871] : client lang: <none>
2025-07-01 17:25:20,737 [DEBUG][       Thread-612118][   transport.py][1871] : server lang: <none>
2025-07-01 17:25:20,737 [DEBUG][       Thread-612118][   transport.py][1871] : kex follows: False
2025-07-01 17:25:20,737 [DEBUG][       Thread-612118][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:25:20,737 [DEBUG][       Thread-612118][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:25:20,737 [DEBUG][       Thread-612118][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:25:20,737 [DEBUG][       Thread-612118][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:25:20,737 [DEBUG][       Thread-612118][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:25:20,737 [DEBUG][       Thread-612118][   transport.py][1871] : Compression: none
2025-07-01 17:25:20,737 [DEBUG][       Thread-612118][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:25:20,753 [DEBUG][       Thread-612118][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:25:20,754 [DEBUG][       Thread-612118][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:25:20,754 [DEBUG][       Thread-612118][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:25:20,754 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:25:20,755 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:25:20,755 [DEBUG][       Thread-612118][   transport.py][1871] : userauth is OK
2025-07-01 17:25:20,768 [ INFO][       Thread-612118][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:25:20,769 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:25:21,129 [DEBUG][Thread-612120 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:25:21,428 [DEBUG][       Thread-612118][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:25:21,429 [DEBUG][       Thread-612118][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:25:21,473 [DEBUG][       Thread-612118][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:25:21,473 [DEBUG][       Thread-612118][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:25:21,476 [DEBUG][       Thread-612118][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:25:21,491 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:25:21,491 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:25:21,493 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:25:21,494 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:25:21,500 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:25:21,502 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:25:21,502 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:25:21,502 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:25:21,503 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.642299 -999.00  +12.70  33.79     52   +3.20 1 2 2 1 1   887    0 9.85 21.05 ----- 24.1 33.8 20.2 41.4 13.4 -19.5 13.3 -18.9 13.1 -18.4 13.4 -18.6
2025-07-01 17:25:21,503 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:25:21,503 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:25:21,503 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.642299
2025-07-01 17:25:21,503 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:25:21,504 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:25:21,504 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:25:21,504 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:25:21,504 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:25:21,504 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:24:52', tmtdew=10.82, humidity=47.78, cloud=0.0, wind=37.19, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:24:54.634', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:25:21,505 [DEBUG][       Thread-612118][   transport.py][1871] : EOF in transport thread
2025-07-01 17:25:21,589 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:25:21,600 [DEBUG][       Thread-612122][   transport.py][1871] : starting thread (client mode): 0x8173bb0
2025-07-01 17:25:21,600 [DEBUG][       Thread-612122][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:25:21,615 [DEBUG][       Thread-612122][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:25:21,615 [ INFO][       Thread-612122][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:25:21,623 [DEBUG][       Thread-612122][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:25:21,623 [DEBUG][       Thread-612122][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:25:21,624 [DEBUG][       Thread-612122][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:25:21,624 [DEBUG][       Thread-612122][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:25:21,624 [DEBUG][       Thread-612122][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:25:21,624 [DEBUG][       Thread-612122][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:25:21,624 [DEBUG][       Thread-612122][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:25:21,624 [DEBUG][       Thread-612122][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:25:21,624 [DEBUG][       Thread-612122][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:25:21,624 [DEBUG][       Thread-612122][   transport.py][1871] : client lang: <none>
2025-07-01 17:25:21,624 [DEBUG][       Thread-612122][   transport.py][1871] : server lang: <none>
2025-07-01 17:25:21,624 [DEBUG][       Thread-612122][   transport.py][1871] : kex follows: False
2025-07-01 17:25:21,624 [DEBUG][       Thread-612122][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:25:21,624 [DEBUG][       Thread-612122][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:25:21,624 [DEBUG][       Thread-612122][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:25:21,624 [DEBUG][       Thread-612122][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:25:21,624 [DEBUG][       Thread-612122][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:25:21,624 [DEBUG][       Thread-612122][   transport.py][1871] : Compression: none
2025-07-01 17:25:21,624 [DEBUG][       Thread-612122][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:25:21,683 [DEBUG][       Thread-612122][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:25:21,684 [DEBUG][       Thread-612122][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:25:21,685 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:25:21,685 [DEBUG][       Thread-612122][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:25:21,686 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:25:21,740 [DEBUG][       Thread-612122][   transport.py][1871] : userauth is OK
2025-07-01 17:25:21,740 [DEBUG][       Thread-612122][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:25:21,740 [DEBUG][       Thread-612122][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:25:21,740 [DEBUG][       Thread-612122][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:25:21,740 [DEBUG][       Thread-612122][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:25:21,759 [ INFO][       Thread-612122][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:25:21,760 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:25:21,760 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:25:22,806 [DEBUG][       Thread-612122][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:25:22,806 [DEBUG][       Thread-612122][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:25:22,855 [DEBUG][       Thread-612122][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:25:22,855 [DEBUG][       Thread-612122][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:25:22,864 [DEBUG][       Thread-612122][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:25:22,872 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:25:22,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')
2025-07-01 17:25: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') -> 00000000
2025-07-01 17:25:22,888 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:25:22,889 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:25:22,889 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:25:22,897 [DEBUG][       Thread-612122][   transport.py][1871] : EOF in transport thread
2025-07-01 17:25:30,150 [DEBUG][Thread-612124 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:25:32,899 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:25:32,899 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:25:32,900 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:25: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-07-01 17:25:33,383 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 25, 24), 10.78, 47.77, 0.0, 30.19, 12.81, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:25:33,383 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:25:24
2025-07-01 17:25:33,469 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:25:33,475 [DEBUG][       Thread-612125][   transport.py][1871] : starting thread (client mode): 0x8107a60
2025-07-01 17:25:33,475 [DEBUG][       Thread-612125][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:25:33,496 [DEBUG][       Thread-612125][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:25:33,496 [ INFO][       Thread-612125][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:25:33,500 [DEBUG][       Thread-612125][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:25:33,500 [DEBUG][       Thread-612125][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:25:33,500 [DEBUG][       Thread-612125][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:25:33,500 [DEBUG][       Thread-612125][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:25:33,500 [DEBUG][       Thread-612125][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:25:33,500 [DEBUG][       Thread-612125][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:25:33,500 [DEBUG][       Thread-612125][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:25:33,500 [DEBUG][       Thread-612125][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:25:33,500 [DEBUG][       Thread-612125][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:25:33,500 [DEBUG][       Thread-612125][   transport.py][1871] : client lang: <none>
2025-07-01 17:25:33,500 [DEBUG][       Thread-612125][   transport.py][1871] : server lang: <none>
2025-07-01 17:25:33,500 [DEBUG][       Thread-612125][   transport.py][1871] : kex follows: False
2025-07-01 17:25:33,500 [DEBUG][       Thread-612125][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:25:33,500 [DEBUG][       Thread-612125][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:25:33,500 [DEBUG][       Thread-612125][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:25:33,500 [DEBUG][       Thread-612125][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:25:33,500 [DEBUG][       Thread-612125][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:25:33,500 [DEBUG][       Thread-612125][   transport.py][1871] : Compression: none
2025-07-01 17:25:33,500 [DEBUG][       Thread-612125][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:25:33,519 [DEBUG][       Thread-612125][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:25:33,520 [DEBUG][       Thread-612125][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:25:33,520 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:25:33,520 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:25:33,521 [DEBUG][       Thread-612125][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:25:33,521 [DEBUG][       Thread-612125][   transport.py][1871] : userauth is OK
2025-07-01 17:25:33,546 [ INFO][       Thread-612125][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:25:33,546 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:25:34,168 [DEBUG][       Thread-612125][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:25:34,168 [DEBUG][       Thread-612125][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:25:34,213 [DEBUG][       Thread-612125][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:25:34,213 [DEBUG][       Thread-612125][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:25:34,217 [DEBUG][       Thread-612125][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:25:34,223 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:25:34,223 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:25:34,225 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:25:34,227 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:25:34,232 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:25:34,234 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:25:34,234 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:25:34,235 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:25:34,235 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.642299 -999.00  +12.70  33.79     52   +3.20 1 2 2 1 1   887    0 9.85 21.05 ----- 24.1 33.8 20.2 41.4 13.4 -19.5 13.3 -18.9 13.1 -18.4 13.4 -18.6
2025-07-01 17:25:34,235 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:25:34,235 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:25:34,235 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.642299
2025-07-01 17:25:34,235 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:25:34,236 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:25:34,236 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:25:34,236 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:25:34,236 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:25:34,236 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:25:24', tmtdew=10.78, humidity=47.77, cloud=0.0, wind=30.19, temperature=12.81, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:24:54.634', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:25:34,237 [DEBUG][       Thread-612125][   transport.py][1871] : EOF in transport thread
2025-07-01 17:25:34,321 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:25:34,341 [DEBUG][       Thread-612128][   transport.py][1871] : starting thread (client mode): 0x81cb430
2025-07-01 17:25:34,341 [DEBUG][       Thread-612128][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:25:34,359 [DEBUG][       Thread-612128][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:25:34,359 [ INFO][       Thread-612128][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:25:34,369 [DEBUG][       Thread-612128][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:25:34,370 [DEBUG][       Thread-612128][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:25:34,370 [DEBUG][       Thread-612128][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:25:34,370 [DEBUG][       Thread-612128][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:25:34,370 [DEBUG][       Thread-612128][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:25:34,370 [DEBUG][       Thread-612128][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:25:34,370 [DEBUG][       Thread-612128][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:25:34,370 [DEBUG][       Thread-612128][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:25:34,370 [DEBUG][       Thread-612128][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:25:34,370 [DEBUG][       Thread-612128][   transport.py][1871] : client lang: <none>
2025-07-01 17:25:34,370 [DEBUG][       Thread-612128][   transport.py][1871] : server lang: <none>
2025-07-01 17:25:34,370 [DEBUG][       Thread-612128][   transport.py][1871] : kex follows: False
2025-07-01 17:25:34,370 [DEBUG][       Thread-612128][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:25:34,370 [DEBUG][       Thread-612128][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:25:34,370 [DEBUG][       Thread-612128][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:25:34,370 [DEBUG][       Thread-612128][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:25:34,370 [DEBUG][       Thread-612128][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:25:34,371 [DEBUG][       Thread-612128][   transport.py][1871] : Compression: none
2025-07-01 17:25:34,371 [DEBUG][       Thread-612128][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:25:34,431 [DEBUG][       Thread-612128][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:25:34,431 [DEBUG][       Thread-612128][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:25:34,432 [DEBUG][       Thread-612128][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:25:34,432 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:25:34,433 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:25:34,499 [DEBUG][       Thread-612128][   transport.py][1871] : userauth is OK
2025-07-01 17:25:34,499 [DEBUG][       Thread-612128][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:25:34,499 [DEBUG][       Thread-612128][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:25:34,499 [DEBUG][       Thread-612128][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:25:34,500 [DEBUG][       Thread-612128][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:25:34,522 [ INFO][       Thread-612128][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:25:34,522 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:25:34,523 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:25:35,563 [DEBUG][       Thread-612128][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:25:35,563 [DEBUG][       Thread-612128][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:25:35,613 [DEBUG][       Thread-612128][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:25:35,613 [DEBUG][       Thread-612128][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:25:35,633 [DEBUG][       Thread-612128][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:25:35,651 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:25:35,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-07-01 17:25:35,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-07-01 17:25:35,676 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:25:35,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:25:35,676 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:25:35,685 [DEBUG][       Thread-612128][   transport.py][1871] : EOF in transport thread
2025-07-01 17:25:39,173 [DEBUG][Thread-612130 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:25:40,409 [DEBUG][Thread-612131 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:25:45,679 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:25:45,679 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:25:45,679 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:25:45,682 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:25:46,147 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 25, 24), 10.78, 47.77, 0.0, 30.19, 12.81, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:25:46,147 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:25:24
2025-07-01 17:25:46,233 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:25:46,236 [DEBUG][       Thread-612132][   transport.py][1871] : starting thread (client mode): 0x8105bd0
2025-07-01 17:25:46,236 [DEBUG][       Thread-612132][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:25:46,257 [DEBUG][       Thread-612132][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:25:46,257 [ INFO][       Thread-612132][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:25:46,260 [DEBUG][       Thread-612132][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:25:46,260 [DEBUG][       Thread-612132][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:25:46,260 [DEBUG][       Thread-612132][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:25:46,260 [DEBUG][       Thread-612132][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:25:46,260 [DEBUG][       Thread-612132][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:25:46,261 [DEBUG][       Thread-612132][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:25:46,261 [DEBUG][       Thread-612132][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:25:46,261 [DEBUG][       Thread-612132][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:25:46,261 [DEBUG][       Thread-612132][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:25:46,261 [DEBUG][       Thread-612132][   transport.py][1871] : client lang: <none>
2025-07-01 17:25:46,261 [DEBUG][       Thread-612132][   transport.py][1871] : server lang: <none>
2025-07-01 17:25:46,261 [DEBUG][       Thread-612132][   transport.py][1871] : kex follows: False
2025-07-01 17:25:46,261 [DEBUG][       Thread-612132][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:25:46,261 [DEBUG][       Thread-612132][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:25:46,261 [DEBUG][       Thread-612132][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:25:46,261 [DEBUG][       Thread-612132][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:25:46,261 [DEBUG][       Thread-612132][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:25:46,261 [DEBUG][       Thread-612132][   transport.py][1871] : Compression: none
2025-07-01 17:25:46,261 [DEBUG][       Thread-612132][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:25:46,274 [DEBUG][       Thread-612132][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:25:46,274 [DEBUG][       Thread-612132][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:25:46,275 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:25:46,275 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:25:46,275 [DEBUG][       Thread-612132][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:25:46,276 [DEBUG][       Thread-612132][   transport.py][1871] : userauth is OK
2025-07-01 17:25:46,302 [ INFO][       Thread-612132][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:25:46,303 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:25:46,965 [DEBUG][       Thread-612132][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:25:46,965 [DEBUG][       Thread-612132][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:25:47,008 [DEBUG][       Thread-612132][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:25:47,008 [DEBUG][       Thread-612132][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:25:47,011 [DEBUG][       Thread-612132][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:25:47,024 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:25:47,024 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:25:47,025 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:25:47,026 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:25:47,029 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:25:47,030 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:25:47,030 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:25:47,030 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:25:47,030 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.642646 -999.00  +12.60  33.84     52   +3.20 1 2 2 1 1   887    0 10.13 21.26 ----- 26.4 33.8 21.2 38.5 13.4 -19.4 13.2 -18.7 13.0 -18.3 13.4 -18.6
2025-07-01 17:25:47,030 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:25:47,030 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:25:47,030 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.642646
2025-07-01 17:25:47,030 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:25:47,030 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:25:47,030 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:25:47,030 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:25:47,030 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:25:47,030 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:25:24', tmtdew=10.78, humidity=47.77, cloud=0.0, wind=30.19, temperature=12.81, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:25:24.614', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:25:47,031 [DEBUG][       Thread-612132][   transport.py][1871] : EOF in transport thread
2025-07-01 17:25:47,102 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:25:47,112 [DEBUG][       Thread-612135][   transport.py][1871] : starting thread (client mode): 0x8173bb0
2025-07-01 17:25:47,112 [DEBUG][       Thread-612135][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:25:47,126 [DEBUG][       Thread-612135][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:25:47,126 [ INFO][       Thread-612135][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:25:47,134 [DEBUG][       Thread-612135][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:25:47,134 [DEBUG][       Thread-612135][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:25:47,134 [DEBUG][       Thread-612135][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:25:47,134 [DEBUG][       Thread-612135][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:25:47,134 [DEBUG][       Thread-612135][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:25:47,134 [DEBUG][       Thread-612135][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:25:47,134 [DEBUG][       Thread-612135][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:25:47,134 [DEBUG][       Thread-612135][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:25:47,134 [DEBUG][       Thread-612135][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:25:47,134 [DEBUG][       Thread-612135][   transport.py][1871] : client lang: <none>
2025-07-01 17:25:47,134 [DEBUG][       Thread-612135][   transport.py][1871] : server lang: <none>
2025-07-01 17:25:47,134 [DEBUG][       Thread-612135][   transport.py][1871] : kex follows: False
2025-07-01 17:25:47,134 [DEBUG][       Thread-612135][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:25:47,134 [DEBUG][       Thread-612135][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:25:47,134 [DEBUG][       Thread-612135][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:25:47,134 [DEBUG][       Thread-612135][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:25:47,134 [DEBUG][       Thread-612135][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:25:47,134 [DEBUG][       Thread-612135][   transport.py][1871] : Compression: none
2025-07-01 17:25:47,134 [DEBUG][       Thread-612135][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:25:47,191 [DEBUG][       Thread-612135][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:25:47,191 [DEBUG][       Thread-612135][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:25:47,191 [DEBUG][       Thread-612135][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:25:47,191 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:25:47,191 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:25:47,248 [DEBUG][       Thread-612135][   transport.py][1871] : userauth is OK
2025-07-01 17:25:47,248 [DEBUG][       Thread-612135][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:25:47,248 [DEBUG][       Thread-612135][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:25:47,248 [DEBUG][       Thread-612135][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:25:47,248 [DEBUG][       Thread-612135][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:25:47,262 [ INFO][       Thread-612135][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:25:47,262 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:25:47,262 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:25:48,213 [DEBUG][Thread-612137 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:25:48,284 [DEBUG][       Thread-612135][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:25:48,284 [DEBUG][       Thread-612135][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:25:48,331 [DEBUG][       Thread-612135][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:25:48,331 [DEBUG][       Thread-612135][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:25:48,339 [DEBUG][       Thread-612135][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:25:48,347 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:25:48,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-07-01 17:25:48,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-07-01 17:25:48,363 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:25:48,363 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:25:48,363 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:25:48,370 [DEBUG][       Thread-612135][   transport.py][1871] : EOF in transport thread
2025-07-01 17:25:57,230 [DEBUG][Thread-612138 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:25:58,369 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:25:58,370 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:25:58,370 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:25:58,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-07-01 17:25:58,853 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 25, 56), 10.75, 47.86, 0.0, 30.33, 12.81, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:25:58,853 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:25:56
2025-07-01 17:25:58,939 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:25:58,945 [DEBUG][       Thread-612139][   transport.py][1871] : starting thread (client mode): 0x8106b00
2025-07-01 17:25:58,945 [DEBUG][       Thread-612139][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:25:58,973 [DEBUG][       Thread-612139][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:25:58,973 [ INFO][       Thread-612139][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:25:58,976 [DEBUG][       Thread-612139][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:25:58,976 [DEBUG][       Thread-612139][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:25:58,976 [DEBUG][       Thread-612139][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:25:58,977 [DEBUG][       Thread-612139][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:25:58,977 [DEBUG][       Thread-612139][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:25:58,977 [DEBUG][       Thread-612139][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:25:58,977 [DEBUG][       Thread-612139][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:25:58,977 [DEBUG][       Thread-612139][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:25:58,977 [DEBUG][       Thread-612139][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:25:58,977 [DEBUG][       Thread-612139][   transport.py][1871] : client lang: <none>
2025-07-01 17:25:58,977 [DEBUG][       Thread-612139][   transport.py][1871] : server lang: <none>
2025-07-01 17:25:58,977 [DEBUG][       Thread-612139][   transport.py][1871] : kex follows: False
2025-07-01 17:25:58,977 [DEBUG][       Thread-612139][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:25:58,977 [DEBUG][       Thread-612139][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:25:58,977 [DEBUG][       Thread-612139][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:25:58,977 [DEBUG][       Thread-612139][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:25:58,977 [DEBUG][       Thread-612139][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:25:58,977 [DEBUG][       Thread-612139][   transport.py][1871] : Compression: none
2025-07-01 17:25:58,977 [DEBUG][       Thread-612139][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:25:58,995 [DEBUG][       Thread-612139][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:25:58,996 [DEBUG][       Thread-612139][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:25:58,996 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:25:58,997 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:25:58,997 [DEBUG][       Thread-612139][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:25:58,998 [DEBUG][       Thread-612139][   transport.py][1871] : userauth is OK
2025-07-01 17:25:59,011 [ INFO][       Thread-612139][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:25:59,011 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:25:59,652 [DEBUG][       Thread-612139][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:25:59,652 [DEBUG][       Thread-612139][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:25:59,693 [DEBUG][       Thread-612139][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:25:59,693 [DEBUG][       Thread-612139][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:25:59,696 [DEBUG][       Thread-612139][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:25:59,708 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:25:59,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:25:59,711 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:25:59,712 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:25:59,717 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:25:59,718 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:25:59,718 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:25:59,719 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:25:59,719 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.642646 -999.00  +12.60  33.84     52   +3.20 1 2 2 1 1   887    0 10.13 21.26 ----- 26.4 33.8 21.2 38.5 13.4 -19.4 13.2 -18.7 13.0 -18.3 13.4 -18.6
2025-07-01 17:25:59,719 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:25:59,719 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:25:59,719 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.642646
2025-07-01 17:25:59,720 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:25:59,720 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:25:59,721 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:25:59,721 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:25:59,721 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:25:59,721 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:25:56', tmtdew=10.75, humidity=47.86, cloud=0.0, wind=30.33, temperature=12.81, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:25:24.614', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:25:59,722 [DEBUG][       Thread-612139][   transport.py][1871] : EOF in transport thread
2025-07-01 17:25:59,804 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:25:59,816 [DEBUG][       Thread-612142][   transport.py][1871] : starting thread (client mode): 0x81c84c0
2025-07-01 17:25:59,816 [DEBUG][       Thread-612142][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:25:59,831 [DEBUG][       Thread-612142][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:25:59,832 [ INFO][       Thread-612142][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:25:59,839 [DEBUG][       Thread-612142][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:25:59,839 [DEBUG][       Thread-612142][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:25:59,840 [DEBUG][       Thread-612142][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:25:59,840 [DEBUG][       Thread-612142][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:25:59,840 [DEBUG][       Thread-612142][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:25:59,840 [DEBUG][       Thread-612142][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:25:59,840 [DEBUG][       Thread-612142][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:25:59,840 [DEBUG][       Thread-612142][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:25:59,840 [DEBUG][       Thread-612142][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:25:59,840 [DEBUG][       Thread-612142][   transport.py][1871] : client lang: <none>
2025-07-01 17:25:59,840 [DEBUG][       Thread-612142][   transport.py][1871] : server lang: <none>
2025-07-01 17:25:59,840 [DEBUG][       Thread-612142][   transport.py][1871] : kex follows: False
2025-07-01 17:25:59,840 [DEBUG][       Thread-612142][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:25:59,840 [DEBUG][       Thread-612142][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:25:59,840 [DEBUG][       Thread-612142][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:25:59,840 [DEBUG][       Thread-612142][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:25:59,840 [DEBUG][       Thread-612142][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:25:59,840 [DEBUG][       Thread-612142][   transport.py][1871] : Compression: none
2025-07-01 17:25:59,840 [DEBUG][       Thread-612142][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:25:59,908 [DEBUG][       Thread-612142][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:25:59,908 [DEBUG][       Thread-612142][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:25:59,909 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:25:59,909 [DEBUG][       Thread-612142][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:25:59,910 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:25:59,965 [DEBUG][       Thread-612142][   transport.py][1871] : userauth is OK
2025-07-01 17:25:59,965 [DEBUG][       Thread-612142][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:25:59,965 [DEBUG][       Thread-612142][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:25:59,965 [DEBUG][       Thread-612142][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:25:59,965 [DEBUG][       Thread-612142][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:25:59,984 [ INFO][       Thread-612142][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:25:59,984 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:25:59,984 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:26:00,996 [DEBUG][       Thread-612142][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:26:00,996 [DEBUG][       Thread-612142][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:26:01,048 [DEBUG][       Thread-612142][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:26:01,048 [DEBUG][       Thread-612142][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:26:01,057 [DEBUG][       Thread-612142][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:26:01,066 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:26:01,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-07-01 17:26:01,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-07-01 17:26:01,085 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:26:01,085 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:26:01,085 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:26:01,093 [DEBUG][       Thread-612142][   transport.py][1871] : EOF in transport thread
2025-07-01 17:26:06,251 [DEBUG][Thread-612144 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:26:11,096 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:26:11,096 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:26:11,096 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:26:11,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-07-01 17:26:11,582 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 25, 56), 10.75, 47.86, 0.0, 30.33, 12.81, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:26:11,582 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:25:56
2025-07-01 17:26:11,667 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:26:11,671 [DEBUG][       Thread-612145][   transport.py][1871] : starting thread (client mode): 0x81a5ea0
2025-07-01 17:26:11,671 [DEBUG][       Thread-612145][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:26:11,691 [DEBUG][       Thread-612145][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:26:11,691 [ INFO][       Thread-612145][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:26:11,694 [DEBUG][       Thread-612145][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:26:11,694 [DEBUG][       Thread-612145][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:26:11,694 [DEBUG][       Thread-612145][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:26:11,694 [DEBUG][       Thread-612145][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:26:11,694 [DEBUG][       Thread-612145][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:26:11,694 [DEBUG][       Thread-612145][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:26:11,694 [DEBUG][       Thread-612145][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:26:11,694 [DEBUG][       Thread-612145][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:26:11,694 [DEBUG][       Thread-612145][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:26:11,694 [DEBUG][       Thread-612145][   transport.py][1871] : client lang: <none>
2025-07-01 17:26:11,694 [DEBUG][       Thread-612145][   transport.py][1871] : server lang: <none>
2025-07-01 17:26:11,694 [DEBUG][       Thread-612145][   transport.py][1871] : kex follows: False
2025-07-01 17:26:11,694 [DEBUG][       Thread-612145][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:26:11,695 [DEBUG][       Thread-612145][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:26:11,695 [DEBUG][       Thread-612145][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:26:11,695 [DEBUG][       Thread-612145][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:26:11,695 [DEBUG][       Thread-612145][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:26:11,695 [DEBUG][       Thread-612145][   transport.py][1871] : Compression: none
2025-07-01 17:26:11,695 [DEBUG][       Thread-612145][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:26:11,711 [DEBUG][       Thread-612145][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:26:11,711 [DEBUG][       Thread-612145][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:26:11,711 [DEBUG][       Thread-612145][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:26:11,712 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:26:11,712 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:26:11,713 [DEBUG][       Thread-612145][   transport.py][1871] : userauth is OK
2025-07-01 17:26:11,726 [ INFO][       Thread-612145][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:26:11,727 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:26:12,378 [DEBUG][       Thread-612145][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:26:12,378 [DEBUG][       Thread-612145][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:26:12,421 [DEBUG][       Thread-612145][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:26:12,421 [DEBUG][       Thread-612145][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:26:12,424 [DEBUG][       Thread-612145][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:26:12,438 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:26:12,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:26:12,440 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:26:12,442 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:26:12,447 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:26:12,449 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:26:12,449 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:26:12,450 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:26:12,450 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.642646 -999.00  +12.60  33.84     52   +3.20 1 2 2 1 1   887    0 10.13 21.26 ----- 26.4 33.8 21.2 38.5 13.4 -19.4 13.2 -18.7 13.0 -18.3 13.4 -18.6
2025-07-01 17:26:12,450 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:26:12,450 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:26:12,450 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.642646
2025-07-01 17:26:12,451 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:26:12,451 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:26:12,451 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:26:12,451 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:26:12,451 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:26:12,452 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:25:56', tmtdew=10.75, humidity=47.86, cloud=0.0, wind=30.33, temperature=12.81, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:25:24.614', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:26:12,453 [DEBUG][       Thread-612145][   transport.py][1871] : EOF in transport thread
2025-07-01 17:26:12,535 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:26:12,545 [DEBUG][       Thread-612148][   transport.py][1871] : starting thread (client mode): 0x83c8430
2025-07-01 17:26:12,545 [DEBUG][       Thread-612148][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:26:12,560 [DEBUG][       Thread-612148][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:26:12,560 [ INFO][       Thread-612148][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:26:12,567 [DEBUG][       Thread-612148][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:26:12,568 [DEBUG][       Thread-612148][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:26:12,568 [DEBUG][       Thread-612148][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:26:12,568 [DEBUG][       Thread-612148][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:26:12,568 [DEBUG][       Thread-612148][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:26:12,568 [DEBUG][       Thread-612148][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:26:12,568 [DEBUG][       Thread-612148][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:26:12,568 [DEBUG][       Thread-612148][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:26:12,568 [DEBUG][       Thread-612148][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:26:12,568 [DEBUG][       Thread-612148][   transport.py][1871] : client lang: <none>
2025-07-01 17:26:12,568 [DEBUG][       Thread-612148][   transport.py][1871] : server lang: <none>
2025-07-01 17:26:12,568 [DEBUG][       Thread-612148][   transport.py][1871] : kex follows: False
2025-07-01 17:26:12,568 [DEBUG][       Thread-612148][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:26:12,568 [DEBUG][       Thread-612148][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:26:12,568 [DEBUG][       Thread-612148][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:26:12,568 [DEBUG][       Thread-612148][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:26:12,568 [DEBUG][       Thread-612148][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:26:12,568 [DEBUG][       Thread-612148][   transport.py][1871] : Compression: none
2025-07-01 17:26:12,568 [DEBUG][       Thread-612148][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:26:12,625 [DEBUG][       Thread-612148][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:26:12,625 [DEBUG][       Thread-612148][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:26:12,625 [DEBUG][       Thread-612148][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:26:12,625 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:26:12,625 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:26:12,685 [DEBUG][       Thread-612148][   transport.py][1871] : userauth is OK
2025-07-01 17:26:12,685 [DEBUG][       Thread-612148][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:26:12,685 [DEBUG][       Thread-612148][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:26:12,685 [DEBUG][       Thread-612148][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:26:12,685 [DEBUG][       Thread-612148][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:26:12,704 [ INFO][       Thread-612148][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:26:12,704 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:26:12,705 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:26:13,736 [DEBUG][       Thread-612148][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:26:13,737 [DEBUG][       Thread-612148][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:26:13,788 [DEBUG][       Thread-612148][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:26:13,789 [DEBUG][       Thread-612148][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:26:13,798 [DEBUG][       Thread-612148][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:26:13,807 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:26:13,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-07-01 17:26:13,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-07-01 17:26:13,825 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:26:13,825 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:26:13,826 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:26:13,834 [DEBUG][       Thread-612148][   transport.py][1871] : EOF in transport thread
2025-07-01 17:26:15,284 [DEBUG][Thread-612150 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:26:23,828 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:26:23,828 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:26:23,828 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:26:23,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-07-01 17:26:24,299 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 25, 56), 10.75, 47.86, 0.0, 30.33, 12.81, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:26:24,300 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:25:56
2025-07-01 17:26:24,306 [DEBUG][Thread-612151 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:26:24,385 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:26:24,391 [DEBUG][       Thread-612152][   transport.py][1871] : starting thread (client mode): 0x8104d30
2025-07-01 17:26:24,391 [DEBUG][       Thread-612152][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:26:24,412 [DEBUG][       Thread-612152][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:26:24,412 [ INFO][       Thread-612152][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:26:24,416 [DEBUG][       Thread-612152][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:26:24,416 [DEBUG][       Thread-612152][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:26:24,416 [DEBUG][       Thread-612152][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:26:24,416 [DEBUG][       Thread-612152][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:26:24,416 [DEBUG][       Thread-612152][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:26:24,416 [DEBUG][       Thread-612152][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:26:24,416 [DEBUG][       Thread-612152][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:26:24,416 [DEBUG][       Thread-612152][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:26:24,416 [DEBUG][       Thread-612152][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:26:24,416 [DEBUG][       Thread-612152][   transport.py][1871] : client lang: <none>
2025-07-01 17:26:24,416 [DEBUG][       Thread-612152][   transport.py][1871] : server lang: <none>
2025-07-01 17:26:24,416 [DEBUG][       Thread-612152][   transport.py][1871] : kex follows: False
2025-07-01 17:26:24,416 [DEBUG][       Thread-612152][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:26:24,416 [DEBUG][       Thread-612152][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:26:24,416 [DEBUG][       Thread-612152][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:26:24,416 [DEBUG][       Thread-612152][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:26:24,416 [DEBUG][       Thread-612152][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:26:24,417 [DEBUG][       Thread-612152][   transport.py][1871] : Compression: none
2025-07-01 17:26:24,417 [DEBUG][       Thread-612152][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:26:24,433 [DEBUG][       Thread-612152][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:26:24,434 [DEBUG][       Thread-612152][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:26:24,434 [DEBUG][       Thread-612152][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:26:24,435 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:26:24,435 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:26:24,436 [DEBUG][       Thread-612152][   transport.py][1871] : userauth is OK
2025-07-01 17:26:24,461 [ INFO][       Thread-612152][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:26:24,461 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:26:25,061 [DEBUG][       Thread-612152][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:26:25,061 [DEBUG][       Thread-612152][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:26:25,104 [DEBUG][       Thread-612152][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:26:25,105 [DEBUG][       Thread-612152][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:26:25,106 [DEBUG][       Thread-612152][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:26:25,120 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:26:25,120 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:26:25,121 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:26:25,122 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:26:25,125 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:26:25,126 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:26:25,126 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:26:25,126 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:26:25,126 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.642993 -999.00  +12.60  30.65     52   +3.20 1 2 2 1 1   887    0 10.11 17.80 ----- 31.7 30.6 20.2 41.3 13.4 -19.3 13.2 -18.7 13.1 -18.3 13.4 -18.6
2025-07-01 17:26:25,126 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:26:25,126 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:26:25,126 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.642993
2025-07-01 17:26:25,126 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:26:25,126 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:26:25,126 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:26:25,126 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:26:25,126 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:26:25,126 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:25:56', tmtdew=10.75, humidity=47.86, cloud=0.0, wind=30.33, temperature=12.81, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:25:54.595', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:26:25,127 [DEBUG][       Thread-612152][   transport.py][1871] : EOF in transport thread
2025-07-01 17:26:25,198 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:26:33,325 [DEBUG][Thread-612155 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:26:40,438 [DEBUG][Thread-612156 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:26:42,347 [DEBUG][Thread-612157 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:26:51,369 [DEBUG][Thread-612158 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:27:00,389 [DEBUG][Thread-612159 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:27:09,408 [DEBUG][Thread-612160 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:27:18,433 [DEBUG][Thread-612161 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:27:27,460 [DEBUG][Thread-612162 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:27:36,483 [DEBUG][Thread-612163 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:27:40,468 [DEBUG][Thread-612164 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:27:45,500 [DEBUG][Thread-612165 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:27:54,521 [DEBUG][Thread-612166 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:28:03,543 [DEBUG][Thread-612167 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:28:12,564 [DEBUG][Thread-612168 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:28:21,583 [DEBUG][Thread-612169 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:28:30,602 [DEBUG][Thread-612170 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:28:34,068 [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-07-01 17:28:39,624 [DEBUG][Thread-612171 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:28:40,497 [DEBUG][Thread-612172 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:28:44,073 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:28:44,073 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:28:44,073 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:28:44,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-07-01 17:28:44,578 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 28, 35), 10.71, 48.32, 0.0, 36.61, 12.77, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:28:44,578 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:28:35
2025-07-01 17:28:44,663 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:28:44,667 [DEBUG][       Thread-612173][   transport.py][1871] : starting thread (client mode): 0x82b18d0
2025-07-01 17:28:44,668 [DEBUG][       Thread-612173][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:28:44,688 [DEBUG][       Thread-612173][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:28:44,688 [ INFO][       Thread-612173][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:28:44,691 [DEBUG][       Thread-612173][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:28:44,691 [DEBUG][       Thread-612173][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:28:44,691 [DEBUG][       Thread-612173][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:28:44,691 [DEBUG][       Thread-612173][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:28:44,691 [DEBUG][       Thread-612173][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:28:44,691 [DEBUG][       Thread-612173][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:28:44,691 [DEBUG][       Thread-612173][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:28:44,691 [DEBUG][       Thread-612173][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:28:44,691 [DEBUG][       Thread-612173][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:28:44,691 [DEBUG][       Thread-612173][   transport.py][1871] : client lang: <none>
2025-07-01 17:28:44,691 [DEBUG][       Thread-612173][   transport.py][1871] : server lang: <none>
2025-07-01 17:28:44,692 [DEBUG][       Thread-612173][   transport.py][1871] : kex follows: False
2025-07-01 17:28:44,692 [DEBUG][       Thread-612173][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:28:44,692 [DEBUG][       Thread-612173][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:28:44,692 [DEBUG][       Thread-612173][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:28:44,692 [DEBUG][       Thread-612173][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:28:44,692 [DEBUG][       Thread-612173][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:28:44,692 [DEBUG][       Thread-612173][   transport.py][1871] : Compression: none
2025-07-01 17:28:44,692 [DEBUG][       Thread-612173][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:28:44,709 [DEBUG][       Thread-612173][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:28:44,709 [DEBUG][       Thread-612173][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:28:44,710 [DEBUG][       Thread-612173][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:28:44,710 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:28:44,710 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:28:44,711 [DEBUG][       Thread-612173][   transport.py][1871] : userauth is OK
2025-07-01 17:28:44,724 [ INFO][       Thread-612173][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:28:44,725 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:28:45,363 [DEBUG][       Thread-612173][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:28:45,364 [DEBUG][       Thread-612173][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:28:45,405 [DEBUG][       Thread-612173][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:28:45,405 [DEBUG][       Thread-612173][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:28:45,408 [DEBUG][       Thread-612173][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:28:45,421 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:28:45,422 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:28:45,423 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:28:45,425 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:28:45,430 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:28:45,432 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:28:45,432 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:28:45,433 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:28:45,433 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.644729 -999.00  +12.60  30.54     52   +3.20 1 2 2 1 1   887    0 9.76 10.69 ----- 30.9 30.5 351.2 43.6 13.4 -19.5 13.2 -18.7 13.0 -18.4 13.3 -18.7
2025-07-01 17:28:45,433 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:28:45,433 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:28:45,433 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.644729
2025-07-01 17:28:45,433 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:28:45,434 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:28:45,434 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:28:45,434 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:28:45,434 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:28:45,434 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:28:35', tmtdew=10.71, humidity=48.32, cloud=0.0, wind=36.61, temperature=12.77, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:28:24.586', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:28:45,434 [DEBUG][       Thread-612173][   transport.py][1871] : EOF in transport thread
2025-07-01 17:28:45,507 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:28:45,520 [DEBUG][       Thread-612176][   transport.py][1871] : starting thread (client mode): 0x81073d0
2025-07-01 17:28:45,520 [DEBUG][       Thread-612176][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:28:45,535 [DEBUG][       Thread-612176][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:28:45,535 [ INFO][       Thread-612176][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:28:45,543 [DEBUG][       Thread-612176][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:28:45,543 [DEBUG][       Thread-612176][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:28:45,543 [DEBUG][       Thread-612176][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:28:45,544 [DEBUG][       Thread-612176][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:28:45,544 [DEBUG][       Thread-612176][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:28:45,544 [DEBUG][       Thread-612176][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:28:45,544 [DEBUG][       Thread-612176][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:28:45,544 [DEBUG][       Thread-612176][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:28:45,544 [DEBUG][       Thread-612176][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:28:45,544 [DEBUG][       Thread-612176][   transport.py][1871] : client lang: <none>
2025-07-01 17:28:45,544 [DEBUG][       Thread-612176][   transport.py][1871] : server lang: <none>
2025-07-01 17:28:45,544 [DEBUG][       Thread-612176][   transport.py][1871] : kex follows: False
2025-07-01 17:28:45,544 [DEBUG][       Thread-612176][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:28:45,544 [DEBUG][       Thread-612176][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:28:45,544 [DEBUG][       Thread-612176][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:28:45,544 [DEBUG][       Thread-612176][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:28:45,544 [DEBUG][       Thread-612176][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:28:45,544 [DEBUG][       Thread-612176][   transport.py][1871] : Compression: none
2025-07-01 17:28:45,544 [DEBUG][       Thread-612176][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:28:45,603 [DEBUG][       Thread-612176][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:28:45,604 [DEBUG][       Thread-612176][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:28:45,604 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:28:45,605 [DEBUG][       Thread-612176][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:28:45,606 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:28:45,659 [DEBUG][       Thread-612176][   transport.py][1871] : userauth is OK
2025-07-01 17:28:45,659 [DEBUG][       Thread-612176][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:28:45,659 [DEBUG][       Thread-612176][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:28:45,660 [DEBUG][       Thread-612176][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:28:45,660 [DEBUG][       Thread-612176][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:28:45,683 [ INFO][       Thread-612176][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:28:45,683 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:28:45,684 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:28:46,746 [DEBUG][       Thread-612176][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:28:46,746 [DEBUG][       Thread-612176][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:28:46,796 [DEBUG][       Thread-612176][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:28:46,796 [DEBUG][       Thread-612176][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:28:46,806 [DEBUG][       Thread-612176][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:28:46,815 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:28:46,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-07-01 17:28:46,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') -> 00000000
2025-07-01 17:28:46,838 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:28:46,838 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:28:46,839 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:28:46,847 [DEBUG][       Thread-612176][   transport.py][1871] : EOF in transport thread
2025-07-01 17:28:48,649 [DEBUG][Thread-612178 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:28:56,849 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:28:56,849 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:28:56,849 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:28:56,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-07-01 17:28:57,350 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 28, 35), 10.71, 48.32, 0.0, 36.61, 12.77, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:28:57,350 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:28:35
2025-07-01 17:28:57,435 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:28:57,439 [DEBUG][       Thread-612179][   transport.py][1871] : starting thread (client mode): 0x81db460
2025-07-01 17:28:57,439 [DEBUG][       Thread-612179][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:28:57,460 [DEBUG][       Thread-612179][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:28:57,460 [ INFO][       Thread-612179][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:28:57,464 [DEBUG][       Thread-612179][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:28:57,464 [DEBUG][       Thread-612179][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:28:57,464 [DEBUG][       Thread-612179][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:28:57,464 [DEBUG][       Thread-612179][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:28:57,464 [DEBUG][       Thread-612179][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:28:57,464 [DEBUG][       Thread-612179][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:28:57,464 [DEBUG][       Thread-612179][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:28:57,464 [DEBUG][       Thread-612179][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:28:57,464 [DEBUG][       Thread-612179][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:28:57,464 [DEBUG][       Thread-612179][   transport.py][1871] : client lang: <none>
2025-07-01 17:28:57,464 [DEBUG][       Thread-612179][   transport.py][1871] : server lang: <none>
2025-07-01 17:28:57,464 [DEBUG][       Thread-612179][   transport.py][1871] : kex follows: False
2025-07-01 17:28:57,464 [DEBUG][       Thread-612179][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:28:57,464 [DEBUG][       Thread-612179][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:28:57,464 [DEBUG][       Thread-612179][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:28:57,464 [DEBUG][       Thread-612179][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:28:57,464 [DEBUG][       Thread-612179][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:28:57,464 [DEBUG][       Thread-612179][   transport.py][1871] : Compression: none
2025-07-01 17:28:57,464 [DEBUG][       Thread-612179][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:28:57,476 [DEBUG][       Thread-612179][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:28:57,477 [DEBUG][       Thread-612179][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:28:57,477 [DEBUG][       Thread-612179][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:28:57,478 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:28:57,478 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:28:57,479 [DEBUG][       Thread-612179][   transport.py][1871] : userauth is OK
2025-07-01 17:28:57,492 [ INFO][       Thread-612179][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:28:57,492 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:28:57,691 [DEBUG][Thread-612181 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:28:58,180 [DEBUG][       Thread-612179][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:28:58,180 [DEBUG][       Thread-612179][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:28:58,221 [DEBUG][       Thread-612179][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:28:58,221 [DEBUG][       Thread-612179][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:28:58,225 [DEBUG][       Thread-612179][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:28:58,236 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:28:58,237 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:28:58,239 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:28:58,241 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:28:58,247 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:28:58,249 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:28:58,249 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:28:58,250 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:28:58,250 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.644729 -999.00  +12.60  30.54     52   +3.20 1 2 2 1 1   887    0 9.76 10.69 ----- 30.9 30.5 351.2 43.6 13.4 -19.5 13.2 -18.7 13.0 -18.4 13.3 -18.7
2025-07-01 17:28:58,250 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:28:58,250 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:28:58,250 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.644729
2025-07-01 17:28:58,251 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:28:58,252 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:28:58,252 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:28:58,252 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:28:58,252 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:28:58,252 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:28:35', tmtdew=10.71, humidity=48.32, cloud=0.0, wind=36.61, temperature=12.77, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:28:24.586', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:28:58,253 [DEBUG][       Thread-612179][   transport.py][1871] : EOF in transport thread
2025-07-01 17:28:58,336 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:28:58,345 [DEBUG][       Thread-612183][   transport.py][1871] : starting thread (client mode): 0x827db40
2025-07-01 17:28:58,345 [DEBUG][       Thread-612183][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:28:58,361 [DEBUG][       Thread-612183][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:28:58,361 [ INFO][       Thread-612183][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:28:58,368 [DEBUG][       Thread-612183][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:28:58,369 [DEBUG][       Thread-612183][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:28:58,369 [DEBUG][       Thread-612183][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:28:58,369 [DEBUG][       Thread-612183][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:28:58,369 [DEBUG][       Thread-612183][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:28:58,369 [DEBUG][       Thread-612183][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:28:58,369 [DEBUG][       Thread-612183][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:28:58,369 [DEBUG][       Thread-612183][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:28:58,369 [DEBUG][       Thread-612183][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:28:58,369 [DEBUG][       Thread-612183][   transport.py][1871] : client lang: <none>
2025-07-01 17:28:58,369 [DEBUG][       Thread-612183][   transport.py][1871] : server lang: <none>
2025-07-01 17:28:58,369 [DEBUG][       Thread-612183][   transport.py][1871] : kex follows: False
2025-07-01 17:28:58,369 [DEBUG][       Thread-612183][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:28:58,369 [DEBUG][       Thread-612183][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:28:58,369 [DEBUG][       Thread-612183][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:28:58,369 [DEBUG][       Thread-612183][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:28:58,369 [DEBUG][       Thread-612183][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:28:58,369 [DEBUG][       Thread-612183][   transport.py][1871] : Compression: none
2025-07-01 17:28:58,369 [DEBUG][       Thread-612183][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:28:58,428 [DEBUG][       Thread-612183][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:28:58,429 [DEBUG][       Thread-612183][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:28:58,429 [DEBUG][       Thread-612183][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:28:58,430 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:28:58,430 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:28:58,489 [DEBUG][       Thread-612183][   transport.py][1871] : userauth is OK
2025-07-01 17:28:58,489 [DEBUG][       Thread-612183][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:28:58,489 [DEBUG][       Thread-612183][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:28:58,489 [DEBUG][       Thread-612183][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:28:58,489 [DEBUG][       Thread-612183][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:28:58,508 [ INFO][       Thread-612183][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:28:58,508 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:28:58,509 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:28:59,568 [DEBUG][       Thread-612183][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:28:59,568 [DEBUG][       Thread-612183][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:28:59,619 [DEBUG][       Thread-612183][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:28:59,619 [DEBUG][       Thread-612183][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:28:59,627 [DEBUG][       Thread-612183][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:28:59,637 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:28:59,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-07-01 17:28:59,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-07-01 17:28:59,655 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:28:59,655 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:28:59,656 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:28:59,663 [DEBUG][       Thread-612183][   transport.py][1871] : EOF in transport thread
2025-07-01 17:29:06,711 [DEBUG][Thread-612185 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:29:09,666 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:29:09,666 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:29:09,666 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:29:09,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-07-01 17:29:10,189 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 29, 6), 10.72, 48.29, 0.0, 36.61, 12.8, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:29:10,189 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:29:06
2025-07-01 17:29:10,275 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:29:10,279 [DEBUG][       Thread-612186][   transport.py][1871] : starting thread (client mode): 0x82b3040
2025-07-01 17:29:10,279 [DEBUG][       Thread-612186][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:29:10,299 [DEBUG][       Thread-612186][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:29:10,299 [ INFO][       Thread-612186][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:29:10,302 [DEBUG][       Thread-612186][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:29:10,302 [DEBUG][       Thread-612186][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:29:10,302 [DEBUG][       Thread-612186][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:29:10,302 [DEBUG][       Thread-612186][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:29:10,302 [DEBUG][       Thread-612186][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:29:10,302 [DEBUG][       Thread-612186][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:29:10,303 [DEBUG][       Thread-612186][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:29:10,303 [DEBUG][       Thread-612186][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:29:10,303 [DEBUG][       Thread-612186][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:29:10,303 [DEBUG][       Thread-612186][   transport.py][1871] : client lang: <none>
2025-07-01 17:29:10,303 [DEBUG][       Thread-612186][   transport.py][1871] : server lang: <none>
2025-07-01 17:29:10,303 [DEBUG][       Thread-612186][   transport.py][1871] : kex follows: False
2025-07-01 17:29:10,303 [DEBUG][       Thread-612186][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:29:10,303 [DEBUG][       Thread-612186][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:29:10,303 [DEBUG][       Thread-612186][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:29:10,303 [DEBUG][       Thread-612186][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:29:10,303 [DEBUG][       Thread-612186][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:29:10,303 [DEBUG][       Thread-612186][   transport.py][1871] : Compression: none
2025-07-01 17:29:10,303 [DEBUG][       Thread-612186][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:29:10,318 [DEBUG][       Thread-612186][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:29:10,318 [DEBUG][       Thread-612186][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:29:10,319 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:29:10,319 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:29:10,320 [DEBUG][       Thread-612186][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:29:10,360 [DEBUG][       Thread-612186][   transport.py][1871] : userauth is OK
2025-07-01 17:29:10,385 [ INFO][       Thread-612186][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:29:10,385 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:29:11,036 [DEBUG][       Thread-612186][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:29:11,036 [DEBUG][       Thread-612186][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:29:11,077 [DEBUG][       Thread-612186][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:29:11,077 [DEBUG][       Thread-612186][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:29:11,079 [DEBUG][       Thread-612186][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:29:11,091 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:29:11,092 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:29:11,093 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:29:11,095 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:29:11,100 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:29:11,102 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:29:11,102 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:29:11,102 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:29:11,103 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.645076 -999.00  +12.60  33.53     52   +3.20 1 2 2 1 1   886    0 9.65 9.82 ----- 33.5 33.5 8.4 40.9 13.3 -19.6 13.2 -18.8 12.9 -18.3 13.3 -18.9
2025-07-01 17:29:11,103 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:29:11,103 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:29:11,103 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.645076
2025-07-01 17:29:11,103 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:29:11,104 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:29:11,104 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:29:11,104 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:29:11,104 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:29:11,104 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:29:06', tmtdew=10.72, humidity=48.29, cloud=0.0, wind=36.61, temperature=12.8, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:28:54.566', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:29:11,105 [DEBUG][       Thread-612186][   transport.py][1871] : EOF in transport thread
2025-07-01 17:29:11,187 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:29:11,198 [DEBUG][       Thread-612189][   transport.py][1871] : starting thread (client mode): 0x8107df0
2025-07-01 17:29:11,198 [DEBUG][       Thread-612189][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:29:11,213 [DEBUG][       Thread-612189][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:29:11,213 [ INFO][       Thread-612189][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:29:11,220 [DEBUG][       Thread-612189][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:29:11,220 [DEBUG][       Thread-612189][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:29:11,220 [DEBUG][       Thread-612189][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:29:11,220 [DEBUG][       Thread-612189][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:29:11,220 [DEBUG][       Thread-612189][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:29:11,220 [DEBUG][       Thread-612189][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:29:11,220 [DEBUG][       Thread-612189][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:29:11,220 [DEBUG][       Thread-612189][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:29:11,220 [DEBUG][       Thread-612189][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:29:11,221 [DEBUG][       Thread-612189][   transport.py][1871] : client lang: <none>
2025-07-01 17:29:11,221 [DEBUG][       Thread-612189][   transport.py][1871] : server lang: <none>
2025-07-01 17:29:11,221 [DEBUG][       Thread-612189][   transport.py][1871] : kex follows: False
2025-07-01 17:29:11,221 [DEBUG][       Thread-612189][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:29:11,221 [DEBUG][       Thread-612189][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:29:11,221 [DEBUG][       Thread-612189][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:29:11,221 [DEBUG][       Thread-612189][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:29:11,221 [DEBUG][       Thread-612189][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:29:11,221 [DEBUG][       Thread-612189][   transport.py][1871] : Compression: none
2025-07-01 17:29:11,221 [DEBUG][       Thread-612189][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:29:11,282 [DEBUG][       Thread-612189][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:29:11,283 [DEBUG][       Thread-612189][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:29:11,283 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:29:11,284 [DEBUG][       Thread-612189][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:29:11,284 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:29:11,339 [DEBUG][       Thread-612189][   transport.py][1871] : userauth is OK
2025-07-01 17:29:11,340 [DEBUG][       Thread-612189][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:29:11,340 [DEBUG][       Thread-612189][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:29:11,340 [DEBUG][       Thread-612189][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:29:11,340 [DEBUG][       Thread-612189][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:29:11,359 [ INFO][       Thread-612189][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:29:11,360 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:29:11,360 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:29:12,396 [DEBUG][       Thread-612189][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:29:12,396 [DEBUG][       Thread-612189][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:29:12,444 [DEBUG][       Thread-612189][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:29:12,444 [DEBUG][       Thread-612189][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:29:12,454 [DEBUG][       Thread-612189][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:29:12,462 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:29:12,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-07-01 17:29:12,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-07-01 17:29:12,481 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:29:12,481 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:29:12,481 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:29:12,489 [DEBUG][       Thread-612189][   transport.py][1871] : EOF in transport thread
2025-07-01 17:29:15,732 [DEBUG][Thread-612191 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:29:22,492 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:29:22,492 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:29:22,492 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:29: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-07-01 17:29:22,992 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 29, 6), 10.72, 48.29, 0.0, 36.61, 12.8, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:29:22,992 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:29:06
2025-07-01 17:29:23,079 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:29:23,082 [DEBUG][       Thread-612192][   transport.py][1871] : starting thread (client mode): 0x81074f0
2025-07-01 17:29:23,082 [DEBUG][       Thread-612192][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:29:23,103 [DEBUG][       Thread-612192][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:29:23,103 [ INFO][       Thread-612192][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:29:23,106 [DEBUG][       Thread-612192][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:29:23,106 [DEBUG][       Thread-612192][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:29:23,106 [DEBUG][       Thread-612192][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:29:23,106 [DEBUG][       Thread-612192][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:29:23,106 [DEBUG][       Thread-612192][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:29:23,106 [DEBUG][       Thread-612192][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:29:23,107 [DEBUG][       Thread-612192][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:29:23,107 [DEBUG][       Thread-612192][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:29:23,107 [DEBUG][       Thread-612192][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:29:23,107 [DEBUG][       Thread-612192][   transport.py][1871] : client lang: <none>
2025-07-01 17:29:23,107 [DEBUG][       Thread-612192][   transport.py][1871] : server lang: <none>
2025-07-01 17:29:23,107 [DEBUG][       Thread-612192][   transport.py][1871] : kex follows: False
2025-07-01 17:29:23,107 [DEBUG][       Thread-612192][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:29:23,107 [DEBUG][       Thread-612192][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:29:23,107 [DEBUG][       Thread-612192][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:29:23,107 [DEBUG][       Thread-612192][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:29:23,107 [DEBUG][       Thread-612192][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:29:23,107 [DEBUG][       Thread-612192][   transport.py][1871] : Compression: none
2025-07-01 17:29:23,107 [DEBUG][       Thread-612192][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:29:23,126 [DEBUG][       Thread-612192][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:29:23,127 [DEBUG][       Thread-612192][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:29:23,127 [DEBUG][       Thread-612192][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:29:23,128 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:29:23,128 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:29:23,129 [DEBUG][       Thread-612192][   transport.py][1871] : userauth is OK
2025-07-01 17:29:23,142 [ INFO][       Thread-612192][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:29:23,142 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:29:23,778 [DEBUG][       Thread-612192][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:29:23,779 [DEBUG][       Thread-612192][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:29:23,821 [DEBUG][       Thread-612192][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:29:23,821 [DEBUG][       Thread-612192][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:29:23,824 [DEBUG][       Thread-612192][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:29:23,838 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:29:23,839 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:29:23,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:29:23,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:29:23,849 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:29:23,851 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:29:23,851 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:29:23,851 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:29:23,852 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.645076 -999.00  +12.60  33.53     52   +3.20 1 2 2 1 1   886    0 9.65 9.82 ----- 33.5 33.5 8.4 40.9 13.3 -19.6 13.2 -18.8 12.9 -18.3 13.3 -18.9
2025-07-01 17:29:23,852 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:29:23,852 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:29:23,852 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.645076
2025-07-01 17:29:23,852 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:29:23,853 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:29:23,853 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:29:23,853 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:29:23,853 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:29:23,853 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:29:06', tmtdew=10.72, humidity=48.29, cloud=0.0, wind=36.61, temperature=12.8, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:28:54.566', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:29:23,854 [DEBUG][       Thread-612192][   transport.py][1871] : EOF in transport thread
2025-07-01 17:29:23,937 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:29:23,951 [DEBUG][       Thread-612195][   transport.py][1871] : starting thread (client mode): 0x81d8c40
2025-07-01 17:29:23,951 [DEBUG][       Thread-612195][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:29:23,975 [DEBUG][       Thread-612195][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:29:23,976 [ INFO][       Thread-612195][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:29:23,988 [DEBUG][       Thread-612195][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:29:23,988 [DEBUG][       Thread-612195][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:29:23,988 [DEBUG][       Thread-612195][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:29:23,988 [DEBUG][       Thread-612195][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:29:23,988 [DEBUG][       Thread-612195][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:29:23,988 [DEBUG][       Thread-612195][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:29:23,988 [DEBUG][       Thread-612195][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:29:23,988 [DEBUG][       Thread-612195][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:29:23,988 [DEBUG][       Thread-612195][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:29:23,988 [DEBUG][       Thread-612195][   transport.py][1871] : client lang: <none>
2025-07-01 17:29:23,988 [DEBUG][       Thread-612195][   transport.py][1871] : server lang: <none>
2025-07-01 17:29:23,988 [DEBUG][       Thread-612195][   transport.py][1871] : kex follows: False
2025-07-01 17:29:23,989 [DEBUG][       Thread-612195][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:29:23,989 [DEBUG][       Thread-612195][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:29:23,989 [DEBUG][       Thread-612195][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:29:23,989 [DEBUG][       Thread-612195][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:29:23,989 [DEBUG][       Thread-612195][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:29:23,989 [DEBUG][       Thread-612195][   transport.py][1871] : Compression: none
2025-07-01 17:29:23,989 [DEBUG][       Thread-612195][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:29:24,051 [DEBUG][       Thread-612195][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:29:24,052 [DEBUG][       Thread-612195][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:29:24,053 [DEBUG][       Thread-612195][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:29:24,053 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:29:24,054 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:29:24,117 [DEBUG][       Thread-612195][   transport.py][1871] : userauth is OK
2025-07-01 17:29:24,118 [DEBUG][       Thread-612195][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:29:24,118 [DEBUG][       Thread-612195][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:29:24,118 [DEBUG][       Thread-612195][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:29:24,118 [DEBUG][       Thread-612195][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:29:24,141 [ INFO][       Thread-612195][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:29:24,142 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:29:24,142 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:29:24,770 [DEBUG][Thread-612197 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:29:25,193 [DEBUG][       Thread-612195][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:29:25,193 [DEBUG][       Thread-612195][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:29:25,244 [DEBUG][       Thread-612195][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:29:25,244 [DEBUG][       Thread-612195][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:29:25,255 [DEBUG][       Thread-612195][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:29:25,266 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:29:25,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-07-01 17:29:25,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-07-01 17:29:25,284 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:29:25,285 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:29:25,285 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:29:25,293 [DEBUG][       Thread-612195][   transport.py][1871] : EOF in transport thread
2025-07-01 17:29:33,793 [DEBUG][Thread-612198 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:29:35,295 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:29:35,296 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:29:35,296 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:29:35,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-07-01 17:29:35,806 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 29, 6), 10.72, 48.29, 0.0, 36.61, 12.8, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:29:35,806 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:29:06
2025-07-01 17:29:35,893 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:29:35,897 [DEBUG][       Thread-612199][   transport.py][1871] : starting thread (client mode): 0x8104580
2025-07-01 17:29:35,897 [DEBUG][       Thread-612199][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:29:35,916 [DEBUG][       Thread-612199][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:29:35,916 [ INFO][       Thread-612199][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:29:35,917 [DEBUG][       Thread-612199][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:29:35,917 [DEBUG][       Thread-612199][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:29:35,917 [DEBUG][       Thread-612199][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:29:35,917 [DEBUG][       Thread-612199][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:29:35,918 [DEBUG][       Thread-612199][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:29:35,918 [DEBUG][       Thread-612199][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:29:35,918 [DEBUG][       Thread-612199][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:29:35,918 [DEBUG][       Thread-612199][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:29:35,918 [DEBUG][       Thread-612199][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:29:35,918 [DEBUG][       Thread-612199][   transport.py][1871] : client lang: <none>
2025-07-01 17:29:35,918 [DEBUG][       Thread-612199][   transport.py][1871] : server lang: <none>
2025-07-01 17:29:35,918 [DEBUG][       Thread-612199][   transport.py][1871] : kex follows: False
2025-07-01 17:29:35,918 [DEBUG][       Thread-612199][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:29:35,918 [DEBUG][       Thread-612199][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:29:35,918 [DEBUG][       Thread-612199][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:29:35,918 [DEBUG][       Thread-612199][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:29:35,918 [DEBUG][       Thread-612199][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:29:35,918 [DEBUG][       Thread-612199][   transport.py][1871] : Compression: none
2025-07-01 17:29:35,918 [DEBUG][       Thread-612199][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:29:35,925 [DEBUG][       Thread-612199][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:29:35,926 [DEBUG][       Thread-612199][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:29:35,926 [DEBUG][       Thread-612199][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:29:35,926 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:29:35,926 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:29:35,927 [DEBUG][       Thread-612199][   transport.py][1871] : userauth is OK
2025-07-01 17:29:35,952 [ INFO][       Thread-612199][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:29:35,952 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:29:36,564 [DEBUG][       Thread-612199][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:29:36,564 [DEBUG][       Thread-612199][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:29:36,605 [DEBUG][       Thread-612199][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:29:36,605 [DEBUG][       Thread-612199][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:29:36,609 [DEBUG][       Thread-612199][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:29:36,621 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:29:36,621 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:29:36,623 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:29:36,625 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:29:36,630 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:29:36,632 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:29:36,633 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:29:36,633 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:29:36,633 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.645423 -999.00  +12.60  24.49     52   +3.20 1 2 1 1 1   886    0 9.90 8.74 ----- 17.7 24.5 359.6 38.4 13.3 -19.8 13.2 -18.9 13.0 -18.5 13.3 -19.0
2025-07-01 17:29:36,633 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:29:36,633 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:29:36,634 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.645423
2025-07-01 17:29:36,634 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:29:36,635 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:29:36,635 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:29:36,635 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:29:36,635 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:29:36,635 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:29:06', tmtdew=10.72, humidity=48.29, cloud=0.0, wind=36.61, temperature=12.8, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:29:24.547', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:29:36,635 [DEBUG][       Thread-612199][   transport.py][1871] : EOF in transport thread
2025-07-01 17:29:36,720 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:29:36,729 [DEBUG][       Thread-612202][   transport.py][1871] : starting thread (client mode): 0x81561d0
2025-07-01 17:29:36,729 [DEBUG][       Thread-612202][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:29:36,744 [DEBUG][       Thread-612202][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:29:36,745 [ INFO][       Thread-612202][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:29:36,752 [DEBUG][       Thread-612202][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:29:36,752 [DEBUG][       Thread-612202][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:29:36,752 [DEBUG][       Thread-612202][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:29:36,752 [DEBUG][       Thread-612202][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:29:36,752 [DEBUG][       Thread-612202][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:29:36,752 [DEBUG][       Thread-612202][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:29:36,752 [DEBUG][       Thread-612202][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:29:36,752 [DEBUG][       Thread-612202][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:29:36,752 [DEBUG][       Thread-612202][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:29:36,753 [DEBUG][       Thread-612202][   transport.py][1871] : client lang: <none>
2025-07-01 17:29:36,753 [DEBUG][       Thread-612202][   transport.py][1871] : server lang: <none>
2025-07-01 17:29:36,753 [DEBUG][       Thread-612202][   transport.py][1871] : kex follows: False
2025-07-01 17:29:36,753 [DEBUG][       Thread-612202][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:29:36,753 [DEBUG][       Thread-612202][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:29:36,753 [DEBUG][       Thread-612202][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:29:36,753 [DEBUG][       Thread-612202][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:29:36,753 [DEBUG][       Thread-612202][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:29:36,753 [DEBUG][       Thread-612202][   transport.py][1871] : Compression: none
2025-07-01 17:29:36,753 [DEBUG][       Thread-612202][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:29:36,812 [DEBUG][       Thread-612202][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:29:36,812 [DEBUG][       Thread-612202][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:29:36,813 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:29:36,813 [DEBUG][       Thread-612202][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:29:36,814 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:29:36,868 [DEBUG][       Thread-612202][   transport.py][1871] : userauth is OK
2025-07-01 17:29:36,869 [DEBUG][       Thread-612202][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:29:36,869 [DEBUG][       Thread-612202][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:29:36,869 [DEBUG][       Thread-612202][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:29:36,869 [DEBUG][       Thread-612202][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:29:36,887 [ INFO][       Thread-612202][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:29:36,887 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:29:36,887 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:29:37,931 [DEBUG][       Thread-612202][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:29:37,931 [DEBUG][       Thread-612202][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:29:37,979 [DEBUG][       Thread-612202][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:29:37,979 [DEBUG][       Thread-612202][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:29:37,988 [DEBUG][       Thread-612202][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:29:37,995 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:29:37,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-07-01 17:29:38,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-07-01 17:29:38,011 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:29:38,011 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:29:38,011 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:29:38,019 [DEBUG][       Thread-612202][   transport.py][1871] : EOF in transport thread
2025-07-01 17:29:40,524 [DEBUG][Thread-612204 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:29:42,812 [DEBUG][Thread-612205 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:29:48,020 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:29:48,020 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:29:48,020 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:29:48,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-07-01 17:29:48,519 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 29, 38), 10.72, 47.96, 0.0, 37.88, 12.81, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:29:48,519 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:29:38
2025-07-01 17:29:48,605 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:29:48,609 [DEBUG][       Thread-612206][   transport.py][1871] : starting thread (client mode): 0x818c3a0
2025-07-01 17:29:48,609 [DEBUG][       Thread-612206][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:29:48,629 [DEBUG][       Thread-612206][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:29:48,629 [ INFO][       Thread-612206][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:29:48,633 [DEBUG][       Thread-612206][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:29:48,633 [DEBUG][       Thread-612206][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:29:48,633 [DEBUG][       Thread-612206][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:29:48,633 [DEBUG][       Thread-612206][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:29:48,633 [DEBUG][       Thread-612206][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:29:48,633 [DEBUG][       Thread-612206][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:29:48,633 [DEBUG][       Thread-612206][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:29:48,633 [DEBUG][       Thread-612206][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:29:48,633 [DEBUG][       Thread-612206][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:29:48,633 [DEBUG][       Thread-612206][   transport.py][1871] : client lang: <none>
2025-07-01 17:29:48,633 [DEBUG][       Thread-612206][   transport.py][1871] : server lang: <none>
2025-07-01 17:29:48,633 [DEBUG][       Thread-612206][   transport.py][1871] : kex follows: False
2025-07-01 17:29:48,633 [DEBUG][       Thread-612206][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:29:48,633 [DEBUG][       Thread-612206][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:29:48,634 [DEBUG][       Thread-612206][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:29:48,634 [DEBUG][       Thread-612206][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:29:48,634 [DEBUG][       Thread-612206][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:29:48,634 [DEBUG][       Thread-612206][   transport.py][1871] : Compression: none
2025-07-01 17:29:48,634 [DEBUG][       Thread-612206][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:29:48,652 [DEBUG][       Thread-612206][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:29:48,653 [DEBUG][       Thread-612206][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:29:48,653 [DEBUG][       Thread-612206][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:29:48,654 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:29:48,654 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:29:48,655 [DEBUG][       Thread-612206][   transport.py][1871] : userauth is OK
2025-07-01 17:29:48,680 [ INFO][       Thread-612206][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:29:48,680 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:29:49,345 [DEBUG][       Thread-612206][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:29:49,345 [DEBUG][       Thread-612206][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:29:49,389 [DEBUG][       Thread-612206][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:29:49,389 [DEBUG][       Thread-612206][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:29:49,392 [DEBUG][       Thread-612206][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:29:49,404 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:29:49,405 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:29:49,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:29:49,409 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:29:49,414 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:29:49,416 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:29:49,416 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:29:49,417 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:29:49,417 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.645423 -999.00  +12.60  24.49     52   +3.20 1 2 1 1 1   886    0 9.90 8.74 ----- 17.7 24.5 359.6 38.4 13.3 -19.8 13.2 -18.9 13.0 -18.5 13.3 -19.0
2025-07-01 17:29:49,417 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:29:49,417 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:29:49,417 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.645423
2025-07-01 17:29:49,418 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:29:49,418 [DEBUG][       Thread-612206][   transport.py][1871] : EOF in transport thread
2025-07-01 17:29:49,418 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:29:49,419 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:29:49,419 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:29:49,419 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:29:49,419 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:29:38', tmtdew=10.72, humidity=47.96, cloud=0.0, wind=37.88, temperature=12.81, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:29:24.547', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:29:49,503 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:29:49,515 [DEBUG][       Thread-612209][   transport.py][1871] : starting thread (client mode): 0x8173310
2025-07-01 17:29:49,515 [DEBUG][       Thread-612209][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:29:49,533 [DEBUG][       Thread-612209][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:29:49,533 [ INFO][       Thread-612209][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:29:49,540 [DEBUG][       Thread-612209][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:29:49,541 [DEBUG][       Thread-612209][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:29:49,541 [DEBUG][       Thread-612209][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:29:49,541 [DEBUG][       Thread-612209][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:29:49,541 [DEBUG][       Thread-612209][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:29:49,541 [DEBUG][       Thread-612209][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:29:49,541 [DEBUG][       Thread-612209][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:29:49,541 [DEBUG][       Thread-612209][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:29:49,541 [DEBUG][       Thread-612209][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:29:49,541 [DEBUG][       Thread-612209][   transport.py][1871] : client lang: <none>
2025-07-01 17:29:49,541 [DEBUG][       Thread-612209][   transport.py][1871] : server lang: <none>
2025-07-01 17:29:49,541 [DEBUG][       Thread-612209][   transport.py][1871] : kex follows: False
2025-07-01 17:29:49,541 [DEBUG][       Thread-612209][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:29:49,541 [DEBUG][       Thread-612209][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:29:49,541 [DEBUG][       Thread-612209][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:29:49,541 [DEBUG][       Thread-612209][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:29:49,541 [DEBUG][       Thread-612209][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:29:49,541 [DEBUG][       Thread-612209][   transport.py][1871] : Compression: none
2025-07-01 17:29:49,541 [DEBUG][       Thread-612209][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:29:49,601 [DEBUG][       Thread-612209][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:29:49,601 [DEBUG][       Thread-612209][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:29:49,602 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:29:49,602 [DEBUG][       Thread-612209][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:29:49,603 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:29:49,657 [DEBUG][       Thread-612209][   transport.py][1871] : userauth is OK
2025-07-01 17:29:49,657 [DEBUG][       Thread-612209][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:29:49,657 [DEBUG][       Thread-612209][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:29:49,657 [DEBUG][       Thread-612209][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:29:49,657 [DEBUG][       Thread-612209][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:29:49,676 [ INFO][       Thread-612209][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:29:49,677 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:29:49,677 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:29:50,691 [DEBUG][       Thread-612209][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:29:50,691 [DEBUG][       Thread-612209][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:29:50,740 [DEBUG][       Thread-612209][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:29:50,740 [DEBUG][       Thread-612209][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:29:50,749 [DEBUG][       Thread-612209][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:29:50,759 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:29:50,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-07-01 17:29:50,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-07-01 17:29:50,777 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:29:50,777 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:29:50,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:29:50,786 [DEBUG][       Thread-612209][   transport.py][1871] : EOF in transport thread
2025-07-01 17:29:51,834 [DEBUG][Thread-612211 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:30:00,784 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:30:00,784 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:30:00,784 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:30: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-07-01 17:30:00,876 [DEBUG][Thread-612212 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:30:01,289 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 29, 38), 10.72, 47.96, 0.0, 37.88, 12.81, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:30:01,289 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:29:38
2025-07-01 17:30:01,375 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:30:01,379 [DEBUG][       Thread-612213][   transport.py][1871] : starting thread (client mode): 0x818de70
2025-07-01 17:30:01,379 [DEBUG][       Thread-612213][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:30:01,394 [DEBUG][       Thread-612213][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:30:01,394 [ INFO][       Thread-612213][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:30:01,397 [DEBUG][       Thread-612213][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:30:01,398 [DEBUG][       Thread-612213][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:30:01,398 [DEBUG][       Thread-612213][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:30:01,398 [DEBUG][       Thread-612213][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:30:01,398 [DEBUG][       Thread-612213][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:30:01,398 [DEBUG][       Thread-612213][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:30:01,398 [DEBUG][       Thread-612213][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:30:01,398 [DEBUG][       Thread-612213][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:30:01,398 [DEBUG][       Thread-612213][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:30:01,398 [DEBUG][       Thread-612213][   transport.py][1871] : client lang: <none>
2025-07-01 17:30:01,398 [DEBUG][       Thread-612213][   transport.py][1871] : server lang: <none>
2025-07-01 17:30:01,398 [DEBUG][       Thread-612213][   transport.py][1871] : kex follows: False
2025-07-01 17:30:01,398 [DEBUG][       Thread-612213][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:30:01,398 [DEBUG][       Thread-612213][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:30:01,398 [DEBUG][       Thread-612213][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:30:01,398 [DEBUG][       Thread-612213][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:30:01,398 [DEBUG][       Thread-612213][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:30:01,398 [DEBUG][       Thread-612213][   transport.py][1871] : Compression: none
2025-07-01 17:30:01,398 [DEBUG][       Thread-612213][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:30:01,415 [DEBUG][       Thread-612213][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:30:01,415 [DEBUG][       Thread-612213][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:30:01,416 [DEBUG][       Thread-612213][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:30:01,416 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:30:01,416 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:30:01,418 [DEBUG][       Thread-612213][   transport.py][1871] : userauth is OK
2025-07-01 17:30:01,443 [ INFO][       Thread-612213][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:30:01,444 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:30:02,050 [DEBUG][       Thread-612213][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:30:02,050 [DEBUG][       Thread-612213][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:30:02,092 [DEBUG][       Thread-612213][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:30:02,092 [DEBUG][       Thread-612213][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:30:02,094 [DEBUG][       Thread-612213][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:30:02,099 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:30:02,099 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:30:02,100 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:30:02,100 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:30:02,103 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:30:02,104 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:30:02,104 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:30:02,104 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:30:02,104 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.645423 -999.00  +12.60  24.49     52   +3.20 1 2 1 1 1   886    0 9.90 8.74 ----- 17.7 24.5 359.6 38.4 13.3 -19.8 13.2 -18.9 13.0 -18.5 13.3 -19.0
2025-07-01 17:30:02,104 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:30:02,104 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:30:02,104 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.645423
2025-07-01 17:30:02,104 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:30:02,104 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:30:02,104 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:30:02,104 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:30:02,104 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:30:02,104 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:29:38', tmtdew=10.72, humidity=47.96, cloud=0.0, wind=37.88, temperature=12.81, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:29:24.547', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:30:02,105 [DEBUG][       Thread-612213][   transport.py][1871] : EOF in transport thread
2025-07-01 17:30:02,176 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:30:09,897 [DEBUG][Thread-612216 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:30:18,915 [DEBUG][Thread-612217 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:30:27,938 [DEBUG][Thread-612218 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:30:36,961 [DEBUG][Thread-612219 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:30:40,556 [DEBUG][Thread-612220 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:30:45,983 [DEBUG][Thread-612221 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:30:55,003 [DEBUG][Thread-612222 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:31:04,023 [DEBUG][Thread-612223 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:31:13,044 [DEBUG][Thread-612224 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:31:22,064 [DEBUG][Thread-612225 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:31:31,087 [DEBUG][Thread-612226 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:31:40,107 [DEBUG][Thread-612227 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:31:40,586 [DEBUG][Thread-612228 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:31:49,129 [DEBUG][Thread-612229 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:31:58,150 [DEBUG][Thread-612230 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:32:07,171 [DEBUG][Thread-612231 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:32:11,156 [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-07-01 17:32:16,191 [DEBUG][Thread-612232 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:32:21,166 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:32:21,166 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:32:21,167 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:32:21,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-07-01 17:32:21,694 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 32, 18), 10.69, 47.96, 0.0, 38.31, 12.76, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:32:21,695 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:32:18
2025-07-01 17:32:21,781 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:32:21,785 [DEBUG][       Thread-612233][   transport.py][1871] : starting thread (client mode): 0x81ca980
2025-07-01 17:32:21,785 [DEBUG][       Thread-612233][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:32:21,806 [DEBUG][       Thread-612233][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:32:21,806 [ INFO][       Thread-612233][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:32:21,807 [DEBUG][       Thread-612233][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:32:21,807 [DEBUG][       Thread-612233][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:32:21,807 [DEBUG][       Thread-612233][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:32:21,807 [DEBUG][       Thread-612233][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:32:21,807 [DEBUG][       Thread-612233][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:32:21,807 [DEBUG][       Thread-612233][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:32:21,807 [DEBUG][       Thread-612233][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:32:21,807 [DEBUG][       Thread-612233][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:32:21,807 [DEBUG][       Thread-612233][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:32:21,807 [DEBUG][       Thread-612233][   transport.py][1871] : client lang: <none>
2025-07-01 17:32:21,807 [DEBUG][       Thread-612233][   transport.py][1871] : server lang: <none>
2025-07-01 17:32:21,807 [DEBUG][       Thread-612233][   transport.py][1871] : kex follows: False
2025-07-01 17:32:21,807 [DEBUG][       Thread-612233][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:32:21,807 [DEBUG][       Thread-612233][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:32:21,807 [DEBUG][       Thread-612233][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:32:21,807 [DEBUG][       Thread-612233][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:32:21,807 [DEBUG][       Thread-612233][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:32:21,807 [DEBUG][       Thread-612233][   transport.py][1871] : Compression: none
2025-07-01 17:32:21,807 [DEBUG][       Thread-612233][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:32:21,819 [DEBUG][       Thread-612233][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:32:21,819 [DEBUG][       Thread-612233][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:32:21,820 [DEBUG][       Thread-612233][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:32:21,820 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:32:21,820 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:32:21,821 [DEBUG][       Thread-612233][   transport.py][1871] : userauth is OK
2025-07-01 17:32:21,846 [ INFO][       Thread-612233][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:32:21,846 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:32:22,502 [DEBUG][       Thread-612233][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:32:22,502 [DEBUG][       Thread-612233][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:32:22,545 [DEBUG][       Thread-612233][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:32:22,545 [DEBUG][       Thread-612233][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:32:22,547 [DEBUG][       Thread-612233][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:32:22,561 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:32:22,562 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:32:22,564 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:32:22,565 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:32:22,571 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:32:22,573 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:32:22,573 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:32:22,574 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:32:22,574 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.646812 -999.00  +12.70  25.08     52   +3.20 1 2 1 1 1   886    0 9.76 4.95 ----- 37.1 25.1 353.1 47.8 13.3 -19.7 13.2 -19.1 12.9 -18.7 13.3 -19.1
2025-07-01 17:32:22,574 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:32:22,574 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:32:22,574 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.646812
2025-07-01 17:32:22,575 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:32:22,575 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:32:22,575 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:32:22,575 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:32:22,575 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:32:22,576 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:32:18', tmtdew=10.69, humidity=47.96, cloud=0.0, wind=38.31, temperature=12.76, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:31:24.557', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:32:22,577 [DEBUG][       Thread-612233][   transport.py][1871] : EOF in transport thread
2025-07-01 17:32:22,660 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:32:22,673 [DEBUG][       Thread-612236][   transport.py][1871] : starting thread (client mode): 0x75a9030
2025-07-01 17:32:22,673 [DEBUG][       Thread-612236][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:32:22,689 [DEBUG][       Thread-612236][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:32:22,690 [ INFO][       Thread-612236][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:32:22,697 [DEBUG][       Thread-612236][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:32:22,697 [DEBUG][       Thread-612236][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:32:22,697 [DEBUG][       Thread-612236][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:32:22,698 [DEBUG][       Thread-612236][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:32:22,698 [DEBUG][       Thread-612236][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:32:22,698 [DEBUG][       Thread-612236][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:32:22,698 [DEBUG][       Thread-612236][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:32:22,698 [DEBUG][       Thread-612236][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:32:22,698 [DEBUG][       Thread-612236][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:32:22,698 [DEBUG][       Thread-612236][   transport.py][1871] : client lang: <none>
2025-07-01 17:32:22,698 [DEBUG][       Thread-612236][   transport.py][1871] : server lang: <none>
2025-07-01 17:32:22,698 [DEBUG][       Thread-612236][   transport.py][1871] : kex follows: False
2025-07-01 17:32:22,698 [DEBUG][       Thread-612236][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:32:22,698 [DEBUG][       Thread-612236][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:32:22,698 [DEBUG][       Thread-612236][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:32:22,698 [DEBUG][       Thread-612236][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:32:22,698 [DEBUG][       Thread-612236][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:32:22,698 [DEBUG][       Thread-612236][   transport.py][1871] : Compression: none
2025-07-01 17:32:22,698 [DEBUG][       Thread-612236][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:32:22,762 [DEBUG][       Thread-612236][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:32:22,763 [DEBUG][       Thread-612236][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:32:22,763 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:32:22,764 [DEBUG][       Thread-612236][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:32:22,765 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:32:22,820 [DEBUG][       Thread-612236][   transport.py][1871] : userauth is OK
2025-07-01 17:32:22,821 [DEBUG][       Thread-612236][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:32:22,821 [DEBUG][       Thread-612236][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:32:22,821 [DEBUG][       Thread-612236][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:32:22,821 [DEBUG][       Thread-612236][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:32:22,842 [ INFO][       Thread-612236][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:32:22,842 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:32:22,843 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:32:23,871 [DEBUG][       Thread-612236][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:32:23,871 [DEBUG][       Thread-612236][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:32:23,920 [DEBUG][       Thread-612236][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:32:23,920 [DEBUG][       Thread-612236][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:32:23,930 [DEBUG][       Thread-612236][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:32:23,939 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:32:23,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-07-01 17:32:23,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-07-01 17:32:23,957 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:32:23,957 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:32:23,957 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:32:23,966 [DEBUG][       Thread-612236][   transport.py][1871] : EOF in transport thread
2025-07-01 17:32:25,214 [DEBUG][Thread-612238 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:32:33,968 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:32:33,968 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:32:33,968 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:32:33,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-07-01 17:32:34,246 [DEBUG][Thread-612239 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:32:34,477 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 32, 18), 10.69, 47.96, 0.0, 38.31, 12.76, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:32:34,477 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:32:18
2025-07-01 17:32:34,563 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:32:34,568 [DEBUG][       Thread-612240][   transport.py][1871] : starting thread (client mode): 0x818d240
2025-07-01 17:32:34,568 [DEBUG][       Thread-612240][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:32:34,587 [DEBUG][       Thread-612240][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:32:34,588 [ INFO][       Thread-612240][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:32:34,590 [DEBUG][       Thread-612240][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:32:34,590 [DEBUG][       Thread-612240][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:32:34,590 [DEBUG][       Thread-612240][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:32:34,590 [DEBUG][       Thread-612240][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:32:34,590 [DEBUG][       Thread-612240][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:32:34,590 [DEBUG][       Thread-612240][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:32:34,590 [DEBUG][       Thread-612240][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:32:34,590 [DEBUG][       Thread-612240][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:32:34,590 [DEBUG][       Thread-612240][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:32:34,590 [DEBUG][       Thread-612240][   transport.py][1871] : client lang: <none>
2025-07-01 17:32:34,590 [DEBUG][       Thread-612240][   transport.py][1871] : server lang: <none>
2025-07-01 17:32:34,591 [DEBUG][       Thread-612240][   transport.py][1871] : kex follows: False
2025-07-01 17:32:34,591 [DEBUG][       Thread-612240][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:32:34,591 [DEBUG][       Thread-612240][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:32:34,591 [DEBUG][       Thread-612240][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:32:34,591 [DEBUG][       Thread-612240][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:32:34,591 [DEBUG][       Thread-612240][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:32:34,591 [DEBUG][       Thread-612240][   transport.py][1871] : Compression: none
2025-07-01 17:32:34,591 [DEBUG][       Thread-612240][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:32:34,606 [DEBUG][       Thread-612240][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:32:34,606 [DEBUG][       Thread-612240][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:32:34,607 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:32:34,607 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:32:34,607 [DEBUG][       Thread-612240][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:32:34,608 [DEBUG][       Thread-612240][   transport.py][1871] : userauth is OK
2025-07-01 17:32:34,633 [ INFO][       Thread-612240][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:32:34,634 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:32:35,294 [DEBUG][       Thread-612240][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:32:35,294 [DEBUG][       Thread-612240][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:32:35,337 [DEBUG][       Thread-612240][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:32:35,337 [DEBUG][       Thread-612240][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:32:35,340 [DEBUG][       Thread-612240][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:32:35,353 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:32:35,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:32:35,355 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:32:35,357 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:32:35,362 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:32:35,364 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:32:35,364 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:32:35,365 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:32:35,365 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.647159 -999.00  +12.70  35.21     52   +3.20 1 2 2 1 1   886    0 9.43 5.38 ----- 25.4 35.2 16.3 46.3 13.3 -19.7 13.1 -19.1 12.9 -18.8 13.3 -19.2
2025-07-01 17:32:35,365 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:32:35,365 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:32:35,365 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.647159
2025-07-01 17:32:35,366 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:32:35,366 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:32:35,366 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:32:35,366 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:32:35,366 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:32:35,366 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:32:18', tmtdew=10.69, humidity=47.96, cloud=0.0, wind=38.31, temperature=12.76, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:31:54.538', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:32:35,367 [DEBUG][       Thread-612240][   transport.py][1871] : EOF in transport thread
2025-07-01 17:32:35,445 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:32:35,464 [DEBUG][       Thread-612243][   transport.py][1871] : starting thread (client mode): 0x8a65e70
2025-07-01 17:32:35,464 [DEBUG][       Thread-612243][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:32:35,484 [DEBUG][       Thread-612243][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:32:35,484 [ INFO][       Thread-612243][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:32:35,491 [DEBUG][       Thread-612243][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:32:35,491 [DEBUG][       Thread-612243][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:32:35,491 [DEBUG][       Thread-612243][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:32:35,491 [DEBUG][       Thread-612243][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:32:35,491 [DEBUG][       Thread-612243][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:32:35,491 [DEBUG][       Thread-612243][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:32:35,491 [DEBUG][       Thread-612243][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:32:35,491 [DEBUG][       Thread-612243][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:32:35,491 [DEBUG][       Thread-612243][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:32:35,491 [DEBUG][       Thread-612243][   transport.py][1871] : client lang: <none>
2025-07-01 17:32:35,491 [DEBUG][       Thread-612243][   transport.py][1871] : server lang: <none>
2025-07-01 17:32:35,491 [DEBUG][       Thread-612243][   transport.py][1871] : kex follows: False
2025-07-01 17:32:35,491 [DEBUG][       Thread-612243][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:32:35,491 [DEBUG][       Thread-612243][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:32:35,491 [DEBUG][       Thread-612243][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:32:35,491 [DEBUG][       Thread-612243][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:32:35,491 [DEBUG][       Thread-612243][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:32:35,491 [DEBUG][       Thread-612243][   transport.py][1871] : Compression: none
2025-07-01 17:32:35,491 [DEBUG][       Thread-612243][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:32:35,548 [DEBUG][       Thread-612243][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:32:35,548 [DEBUG][       Thread-612243][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:32:35,548 [DEBUG][       Thread-612243][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:32:35,549 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:32:35,549 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:32:35,610 [DEBUG][       Thread-612243][   transport.py][1871] : userauth is OK
2025-07-01 17:32:35,610 [DEBUG][       Thread-612243][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:32:35,610 [DEBUG][       Thread-612243][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:32:35,610 [DEBUG][       Thread-612243][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:32:35,610 [DEBUG][       Thread-612243][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:32:35,630 [ INFO][       Thread-612243][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:32:35,631 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:32:35,631 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:32:36,649 [DEBUG][       Thread-612243][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:32:36,649 [DEBUG][       Thread-612243][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:32:36,700 [DEBUG][       Thread-612243][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:32:36,700 [DEBUG][       Thread-612243][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:32:36,709 [DEBUG][       Thread-612243][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:32:36,718 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:32:36,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-07-01 17:32:36,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-07-01 17:32:36,737 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:32:36,737 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:32:36,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:32:36,745 [DEBUG][       Thread-612243][   transport.py][1871] : EOF in transport thread
2025-07-01 17:32:40,617 [DEBUG][Thread-612245 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:32:43,274 [DEBUG][Thread-612246 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:32:46,748 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:32:46,748 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:32:46,748 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:32:46,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-07-01 17:32:47,254 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 32, 18), 10.69, 47.96, 0.0, 38.31, 12.76, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:32:47,254 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:32:18
2025-07-01 17:32:47,340 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:32:47,344 [DEBUG][       Thread-612247][   transport.py][1871] : starting thread (client mode): 0x8105990
2025-07-01 17:32:47,344 [DEBUG][       Thread-612247][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:32:47,366 [DEBUG][       Thread-612247][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:32:47,366 [ INFO][       Thread-612247][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:32:47,369 [DEBUG][       Thread-612247][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:32:47,369 [DEBUG][       Thread-612247][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:32:47,369 [DEBUG][       Thread-612247][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:32:47,369 [DEBUG][       Thread-612247][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:32:47,369 [DEBUG][       Thread-612247][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:32:47,369 [DEBUG][       Thread-612247][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:32:47,369 [DEBUG][       Thread-612247][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:32:47,369 [DEBUG][       Thread-612247][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:32:47,369 [DEBUG][       Thread-612247][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:32:47,369 [DEBUG][       Thread-612247][   transport.py][1871] : client lang: <none>
2025-07-01 17:32:47,369 [DEBUG][       Thread-612247][   transport.py][1871] : server lang: <none>
2025-07-01 17:32:47,369 [DEBUG][       Thread-612247][   transport.py][1871] : kex follows: False
2025-07-01 17:32:47,369 [DEBUG][       Thread-612247][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:32:47,369 [DEBUG][       Thread-612247][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:32:47,369 [DEBUG][       Thread-612247][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:32:47,369 [DEBUG][       Thread-612247][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:32:47,369 [DEBUG][       Thread-612247][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:32:47,369 [DEBUG][       Thread-612247][   transport.py][1871] : Compression: none
2025-07-01 17:32:47,369 [DEBUG][       Thread-612247][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:32:47,385 [DEBUG][       Thread-612247][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:32:47,385 [DEBUG][       Thread-612247][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:32:47,386 [DEBUG][       Thread-612247][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:32:47,386 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:32:47,386 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:32:47,387 [DEBUG][       Thread-612247][   transport.py][1871] : userauth is OK
2025-07-01 17:32:47,412 [ INFO][       Thread-612247][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:32:47,412 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:32:48,013 [DEBUG][       Thread-612247][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:32:48,014 [DEBUG][       Thread-612247][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:32:48,057 [DEBUG][       Thread-612247][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:32:48,057 [DEBUG][       Thread-612247][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:32:48,060 [DEBUG][       Thread-612247][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:32:48,085 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:32:48,086 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:32:48,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:32:48,090 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:32:48,095 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:32:48,097 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:32:48,097 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:32:48,098 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:32:48,098 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.647159 -999.00  +12.70  35.21     52   +3.20 1 2 2 1 1   886    0 9.43 5.38 ----- 25.4 35.2 16.3 46.3 13.3 -19.7 13.1 -19.1 12.9 -18.8 13.3 -19.2
2025-07-01 17:32:48,098 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:32:48,098 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:32:48,098 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.647159
2025-07-01 17:32:48,099 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:32:48,099 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:32:48,099 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:32:48,099 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:32:48,099 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:32:48,100 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:32:18', tmtdew=10.69, humidity=47.96, cloud=0.0, wind=38.31, temperature=12.76, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:31:54.538', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:32:48,100 [DEBUG][       Thread-612247][   transport.py][1871] : EOF in transport thread
2025-07-01 17:32:48,185 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:32:48,194 [DEBUG][       Thread-612250][   transport.py][1871] : starting thread (client mode): 0x81da1d0
2025-07-01 17:32:48,195 [DEBUG][       Thread-612250][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:32:48,210 [DEBUG][       Thread-612250][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:32:48,210 [ INFO][       Thread-612250][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:32:48,221 [DEBUG][       Thread-612250][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:32:48,222 [DEBUG][       Thread-612250][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:32:48,222 [DEBUG][       Thread-612250][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:32:48,222 [DEBUG][       Thread-612250][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:32:48,222 [DEBUG][       Thread-612250][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:32:48,222 [DEBUG][       Thread-612250][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:32:48,222 [DEBUG][       Thread-612250][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:32:48,222 [DEBUG][       Thread-612250][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:32:48,222 [DEBUG][       Thread-612250][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:32:48,222 [DEBUG][       Thread-612250][   transport.py][1871] : client lang: <none>
2025-07-01 17:32:48,222 [DEBUG][       Thread-612250][   transport.py][1871] : server lang: <none>
2025-07-01 17:32:48,222 [DEBUG][       Thread-612250][   transport.py][1871] : kex follows: False
2025-07-01 17:32:48,222 [DEBUG][       Thread-612250][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:32:48,222 [DEBUG][       Thread-612250][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:32:48,222 [DEBUG][       Thread-612250][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:32:48,222 [DEBUG][       Thread-612250][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:32:48,222 [DEBUG][       Thread-612250][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:32:48,222 [DEBUG][       Thread-612250][   transport.py][1871] : Compression: none
2025-07-01 17:32:48,223 [DEBUG][       Thread-612250][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:32:48,285 [DEBUG][       Thread-612250][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:32:48,286 [DEBUG][       Thread-612250][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:32:48,287 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:32:48,287 [DEBUG][       Thread-612250][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:32:48,288 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:32:48,345 [DEBUG][       Thread-612250][   transport.py][1871] : userauth is OK
2025-07-01 17:32:48,345 [DEBUG][       Thread-612250][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:32:48,345 [DEBUG][       Thread-612250][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:32:48,345 [DEBUG][       Thread-612250][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:32:48,345 [DEBUG][       Thread-612250][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:32:48,367 [ INFO][       Thread-612250][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:32:48,367 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:32:48,367 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:32:49,409 [DEBUG][       Thread-612250][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:32:49,410 [DEBUG][       Thread-612250][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:32:49,459 [DEBUG][       Thread-612250][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:32:49,459 [DEBUG][       Thread-612250][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:32:49,468 [DEBUG][       Thread-612250][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:32:49,476 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:32:49,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-07-01 17:32:49,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-07-01 17:32:49,491 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:32:49,491 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:32:49,492 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:32:49,499 [DEBUG][       Thread-612250][   transport.py][1871] : EOF in transport thread
2025-07-01 17:32:52,292 [DEBUG][Thread-612252 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:32:59,502 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:32:59,502 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:32:59,502 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:32:59,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-07-01 17:33:00,001 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 32, 49), 10.67, 48.02, 0.0, 39.47, 12.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:33:00,002 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:32:49
2025-07-01 17:33:00,087 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:33:00,094 [DEBUG][       Thread-612253][   transport.py][1871] : starting thread (client mode): 0x75aba90
2025-07-01 17:33:00,094 [DEBUG][       Thread-612253][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:33:00,114 [DEBUG][       Thread-612253][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:33:00,114 [ INFO][       Thread-612253][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:33:00,116 [DEBUG][       Thread-612253][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:33:00,116 [DEBUG][       Thread-612253][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:33:00,116 [DEBUG][       Thread-612253][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:33:00,116 [DEBUG][       Thread-612253][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:33:00,116 [DEBUG][       Thread-612253][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:33:00,116 [DEBUG][       Thread-612253][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:33:00,116 [DEBUG][       Thread-612253][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:33:00,116 [DEBUG][       Thread-612253][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:33:00,116 [DEBUG][       Thread-612253][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:33:00,116 [DEBUG][       Thread-612253][   transport.py][1871] : client lang: <none>
2025-07-01 17:33:00,116 [DEBUG][       Thread-612253][   transport.py][1871] : server lang: <none>
2025-07-01 17:33:00,116 [DEBUG][       Thread-612253][   transport.py][1871] : kex follows: False
2025-07-01 17:33:00,116 [DEBUG][       Thread-612253][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:33:00,116 [DEBUG][       Thread-612253][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:33:00,116 [DEBUG][       Thread-612253][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:33:00,116 [DEBUG][       Thread-612253][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:33:00,116 [DEBUG][       Thread-612253][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:33:00,116 [DEBUG][       Thread-612253][   transport.py][1871] : Compression: none
2025-07-01 17:33:00,116 [DEBUG][       Thread-612253][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:33:00,129 [DEBUG][       Thread-612253][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:33:00,130 [DEBUG][       Thread-612253][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:33:00,130 [DEBUG][       Thread-612253][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:33:00,131 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:33:00,131 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:33:00,132 [DEBUG][       Thread-612253][   transport.py][1871] : userauth is OK
2025-07-01 17:33:00,156 [ INFO][       Thread-612253][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:33:00,157 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:33:00,774 [DEBUG][       Thread-612253][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:33:00,775 [DEBUG][       Thread-612253][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:33:00,817 [DEBUG][       Thread-612253][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:33:00,817 [DEBUG][       Thread-612253][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:33:00,821 [DEBUG][       Thread-612253][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:33:00,827 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:33:00,828 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:33:00,829 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:33:00,831 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:33:00,836 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:33:00,837 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:33:00,837 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:33:00,838 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:33:00,838 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.647507 -999.00  +12.60  32.27     52   +3.20 1 2 2 1 1   885    0 9.64 4.74 ----- 38.5 32.3 17.2 45.9 13.3 -19.8 13.1 -19.2 12.9 -18.9 13.3 -19.4
2025-07-01 17:33:00,838 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:33:00,838 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:33:00,839 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.647507
2025-07-01 17:33:00,839 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:33:00,840 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:33:00,840 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:33:00,840 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:33:00,840 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:33:00,840 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:32:49', tmtdew=10.67, humidity=48.02, cloud=0.0, wind=39.47, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:32:24.605', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:33:00,840 [DEBUG][       Thread-612253][   transport.py][1871] : EOF in transport thread
2025-07-01 17:33:00,923 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:33:00,935 [DEBUG][       Thread-612256][   transport.py][1871] : starting thread (client mode): 0x81db3a0
2025-07-01 17:33:00,935 [DEBUG][       Thread-612256][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:33:00,954 [DEBUG][       Thread-612256][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:33:00,954 [ INFO][       Thread-612256][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:33:00,961 [DEBUG][       Thread-612256][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:33:00,961 [DEBUG][       Thread-612256][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:33:00,961 [DEBUG][       Thread-612256][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:33:00,962 [DEBUG][       Thread-612256][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:33:00,962 [DEBUG][       Thread-612256][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:33:00,962 [DEBUG][       Thread-612256][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:33:00,962 [DEBUG][       Thread-612256][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:33:00,962 [DEBUG][       Thread-612256][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:33:00,962 [DEBUG][       Thread-612256][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:33:00,962 [DEBUG][       Thread-612256][   transport.py][1871] : client lang: <none>
2025-07-01 17:33:00,962 [DEBUG][       Thread-612256][   transport.py][1871] : server lang: <none>
2025-07-01 17:33:00,962 [DEBUG][       Thread-612256][   transport.py][1871] : kex follows: False
2025-07-01 17:33:00,962 [DEBUG][       Thread-612256][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:33:00,962 [DEBUG][       Thread-612256][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:33:00,962 [DEBUG][       Thread-612256][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:33:00,962 [DEBUG][       Thread-612256][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:33:00,962 [DEBUG][       Thread-612256][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:33:00,962 [DEBUG][       Thread-612256][   transport.py][1871] : Compression: none
2025-07-01 17:33:00,962 [DEBUG][       Thread-612256][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:33:01,021 [DEBUG][       Thread-612256][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:33:01,022 [DEBUG][       Thread-612256][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:33:01,023 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:33:01,023 [DEBUG][       Thread-612256][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:33:01,024 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:33:01,078 [DEBUG][       Thread-612256][   transport.py][1871] : userauth is OK
2025-07-01 17:33:01,078 [DEBUG][       Thread-612256][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:33:01,078 [DEBUG][       Thread-612256][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:33:01,078 [DEBUG][       Thread-612256][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:33:01,078 [DEBUG][       Thread-612256][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:33:01,098 [ INFO][       Thread-612256][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:33:01,098 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:33:01,098 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:33:01,313 [DEBUG][Thread-612258 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:33:02,225 [DEBUG][       Thread-612256][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:33:02,225 [DEBUG][       Thread-612256][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:33:02,276 [DEBUG][       Thread-612256][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:33:02,276 [DEBUG][       Thread-612256][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:33:02,285 [DEBUG][       Thread-612256][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:33:02,295 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:33:02,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-07-01 17:33:02,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-07-01 17:33:02,313 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:33:02,314 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:33:02,314 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:33:02,322 [DEBUG][       Thread-612256][   transport.py][1871] : EOF in transport thread
2025-07-01 17:33:10,357 [DEBUG][Thread-612259 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:33:12,324 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:33:12,325 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:33:12,325 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:33:12,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-07-01 17:33:12,828 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 32, 49), 10.67, 48.02, 0.0, 39.47, 12.71, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:33:12,828 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:32:49
2025-07-01 17:33:12,915 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:33:12,919 [DEBUG][       Thread-612260][   transport.py][1871] : starting thread (client mode): 0x81a5d80
2025-07-01 17:33:12,919 [DEBUG][       Thread-612260][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:33:12,940 [DEBUG][       Thread-612260][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:33:12,940 [ INFO][       Thread-612260][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:33:12,943 [DEBUG][       Thread-612260][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:33:12,943 [DEBUG][       Thread-612260][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:33:12,943 [DEBUG][       Thread-612260][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:33:12,943 [DEBUG][       Thread-612260][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:33:12,943 [DEBUG][       Thread-612260][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:33:12,943 [DEBUG][       Thread-612260][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:33:12,943 [DEBUG][       Thread-612260][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:33:12,943 [DEBUG][       Thread-612260][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:33:12,943 [DEBUG][       Thread-612260][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:33:12,943 [DEBUG][       Thread-612260][   transport.py][1871] : client lang: <none>
2025-07-01 17:33:12,943 [DEBUG][       Thread-612260][   transport.py][1871] : server lang: <none>
2025-07-01 17:33:12,943 [DEBUG][       Thread-612260][   transport.py][1871] : kex follows: False
2025-07-01 17:33:12,943 [DEBUG][       Thread-612260][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:33:12,944 [DEBUG][       Thread-612260][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:33:12,944 [DEBUG][       Thread-612260][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:33:12,944 [DEBUG][       Thread-612260][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:33:12,944 [DEBUG][       Thread-612260][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:33:12,944 [DEBUG][       Thread-612260][   transport.py][1871] : Compression: none
2025-07-01 17:33:12,944 [DEBUG][       Thread-612260][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:33:12,961 [DEBUG][       Thread-612260][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:33:12,961 [DEBUG][       Thread-612260][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:33:12,962 [DEBUG][       Thread-612260][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:33:12,962 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:33:12,962 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:33:12,963 [DEBUG][       Thread-612260][   transport.py][1871] : userauth is OK
2025-07-01 17:33:12,988 [ INFO][       Thread-612260][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:33:12,988 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:33:13,756 [DEBUG][       Thread-612260][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:33:13,757 [DEBUG][       Thread-612260][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:33:13,805 [DEBUG][       Thread-612260][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:33:13,805 [DEBUG][       Thread-612260][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:33:13,808 [DEBUG][       Thread-612260][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:33:13,823 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:33:13,823 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:33:13,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:33:13,827 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:33:13,832 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:33:13,834 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:33:13,834 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:33:13,835 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:33:13,835 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.647507 -999.00  +12.60  32.27     52   +3.20 1 2 2 1 1   885    0 9.64 4.74 ----- 38.5 32.3 17.2 45.9 13.3 -19.8 13.1 -19.2 12.9 -18.9 13.3 -19.4
2025-07-01 17:33:13,835 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:33:13,835 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:33:13,835 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.647507
2025-07-01 17:33:13,835 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:33:13,836 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:33:13,836 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:33:13,836 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:33:13,836 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:33:13,836 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:32:49', tmtdew=10.67, humidity=48.02, cloud=0.0, wind=39.47, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:32:24.605', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:33:13,837 [DEBUG][       Thread-612260][   transport.py][1871] : EOF in transport thread
2025-07-01 17:33:13,920 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:33:13,930 [DEBUG][       Thread-612263][   transport.py][1871] : starting thread (client mode): 0x81e7d60
2025-07-01 17:33:13,930 [DEBUG][       Thread-612263][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:33:13,945 [DEBUG][       Thread-612263][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:33:13,945 [ INFO][       Thread-612263][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:33:13,952 [DEBUG][       Thread-612263][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:33:13,953 [DEBUG][       Thread-612263][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:33:13,953 [DEBUG][       Thread-612263][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:33:13,953 [DEBUG][       Thread-612263][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:33:13,953 [DEBUG][       Thread-612263][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:33:13,953 [DEBUG][       Thread-612263][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:33:13,953 [DEBUG][       Thread-612263][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:33:13,953 [DEBUG][       Thread-612263][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:33:13,953 [DEBUG][       Thread-612263][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:33:13,953 [DEBUG][       Thread-612263][   transport.py][1871] : client lang: <none>
2025-07-01 17:33:13,953 [DEBUG][       Thread-612263][   transport.py][1871] : server lang: <none>
2025-07-01 17:33:13,953 [DEBUG][       Thread-612263][   transport.py][1871] : kex follows: False
2025-07-01 17:33:13,953 [DEBUG][       Thread-612263][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:33:13,953 [DEBUG][       Thread-612263][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:33:13,953 [DEBUG][       Thread-612263][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:33:13,953 [DEBUG][       Thread-612263][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:33:13,953 [DEBUG][       Thread-612263][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:33:13,953 [DEBUG][       Thread-612263][   transport.py][1871] : Compression: none
2025-07-01 17:33:13,953 [DEBUG][       Thread-612263][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:33:14,011 [DEBUG][       Thread-612263][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:33:14,011 [DEBUG][       Thread-612263][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:33:14,012 [DEBUG][       Thread-612263][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:33:14,012 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:33:14,013 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:33:14,070 [DEBUG][       Thread-612263][   transport.py][1871] : userauth is OK
2025-07-01 17:33:14,071 [DEBUG][       Thread-612263][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:33:14,071 [DEBUG][       Thread-612263][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:33:14,071 [DEBUG][       Thread-612263][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:33:14,071 [DEBUG][       Thread-612263][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:33:14,090 [ INFO][       Thread-612263][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:33:14,090 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:33:14,091 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:33:15,091 [DEBUG][       Thread-612263][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:33:15,092 [DEBUG][       Thread-612263][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:33:15,144 [DEBUG][       Thread-612263][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:33:15,145 [DEBUG][       Thread-612263][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:33:15,153 [DEBUG][       Thread-612263][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:33:15,162 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:33:15,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-07-01 17:33:15,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') -> 00000000
2025-07-01 17:33:15,182 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:33:15,182 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:33:15,183 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:33:15,190 [DEBUG][       Thread-612263][   transport.py][1871] : EOF in transport thread
2025-07-01 17:33:19,378 [DEBUG][Thread-612265 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:33:25,193 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:33:25,193 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:33:25,193 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:33:25,195 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:33:25,679 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 33, 21), 10.71, 47.98, 0.0, 33.12, 12.79, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:33:25,679 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:33:21
2025-07-01 17:33:25,766 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:33:25,772 [DEBUG][       Thread-612266][   transport.py][1871] : starting thread (client mode): 0x81a5330
2025-07-01 17:33:25,772 [DEBUG][       Thread-612266][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:33:25,793 [DEBUG][       Thread-612266][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:33:25,793 [ INFO][       Thread-612266][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:33:25,796 [DEBUG][       Thread-612266][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:33:25,796 [DEBUG][       Thread-612266][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:33:25,796 [DEBUG][       Thread-612266][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:33:25,796 [DEBUG][       Thread-612266][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:33:25,796 [DEBUG][       Thread-612266][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:33:25,796 [DEBUG][       Thread-612266][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:33:25,796 [DEBUG][       Thread-612266][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:33:25,797 [DEBUG][       Thread-612266][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:33:25,797 [DEBUG][       Thread-612266][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:33:25,797 [DEBUG][       Thread-612266][   transport.py][1871] : client lang: <none>
2025-07-01 17:33:25,797 [DEBUG][       Thread-612266][   transport.py][1871] : server lang: <none>
2025-07-01 17:33:25,797 [DEBUG][       Thread-612266][   transport.py][1871] : kex follows: False
2025-07-01 17:33:25,797 [DEBUG][       Thread-612266][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:33:25,797 [DEBUG][       Thread-612266][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:33:25,797 [DEBUG][       Thread-612266][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:33:25,797 [DEBUG][       Thread-612266][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:33:25,797 [DEBUG][       Thread-612266][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:33:25,797 [DEBUG][       Thread-612266][   transport.py][1871] : Compression: none
2025-07-01 17:33:25,797 [DEBUG][       Thread-612266][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:33:25,813 [DEBUG][       Thread-612266][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:33:25,814 [DEBUG][       Thread-612266][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:33:25,814 [DEBUG][       Thread-612266][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:33:25,814 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:33:25,814 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:33:25,815 [DEBUG][       Thread-612266][   transport.py][1871] : userauth is OK
2025-07-01 17:33:25,840 [ INFO][       Thread-612266][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:33:25,841 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:33:26,628 [DEBUG][       Thread-612266][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:33:26,628 [DEBUG][       Thread-612266][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:33:26,673 [DEBUG][       Thread-612266][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:33:26,673 [DEBUG][       Thread-612266][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:33:26,676 [DEBUG][       Thread-612266][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:33:26,683 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:33:26,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:33:26,685 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:33:26,686 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:33:26,691 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:33:26,692 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:33:26,692 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:33:26,693 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:33:26,693 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.647507 -999.00  +12.60  32.27     52   +3.20 1 2 2 1 1   885    0 9.64 4.74 ----- 38.5 32.3 17.2 45.9 13.3 -19.8 13.1 -19.2 12.9 -18.9 13.3 -19.4
2025-07-01 17:33:26,693 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:33:26,693 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:33:26,693 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.647507
2025-07-01 17:33:26,694 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:33:26,694 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:33:26,694 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:33:26,695 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:33:26,695 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:33:26,695 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:33:21', tmtdew=10.71, humidity=47.98, cloud=0.0, wind=33.12, temperature=12.79, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:32:24.605', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:33:26,696 [DEBUG][       Thread-612266][   transport.py][1871] : EOF in transport thread
2025-07-01 17:33:26,778 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:33:26,790 [DEBUG][       Thread-612269][   transport.py][1871] : starting thread (client mode): 0x8171480
2025-07-01 17:33:26,790 [DEBUG][       Thread-612269][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:33:26,805 [DEBUG][       Thread-612269][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:33:26,805 [ INFO][       Thread-612269][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:33:26,816 [DEBUG][       Thread-612269][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:33:26,816 [DEBUG][       Thread-612269][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:33:26,816 [DEBUG][       Thread-612269][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:33:26,816 [DEBUG][       Thread-612269][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:33:26,816 [DEBUG][       Thread-612269][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:33:26,816 [DEBUG][       Thread-612269][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:33:26,816 [DEBUG][       Thread-612269][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:33:26,816 [DEBUG][       Thread-612269][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:33:26,816 [DEBUG][       Thread-612269][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:33:26,816 [DEBUG][       Thread-612269][   transport.py][1871] : client lang: <none>
2025-07-01 17:33:26,816 [DEBUG][       Thread-612269][   transport.py][1871] : server lang: <none>
2025-07-01 17:33:26,816 [DEBUG][       Thread-612269][   transport.py][1871] : kex follows: False
2025-07-01 17:33:26,817 [DEBUG][       Thread-612269][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:33:26,817 [DEBUG][       Thread-612269][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:33:26,817 [DEBUG][       Thread-612269][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:33:26,817 [DEBUG][       Thread-612269][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:33:26,817 [DEBUG][       Thread-612269][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:33:26,817 [DEBUG][       Thread-612269][   transport.py][1871] : Compression: none
2025-07-01 17:33:26,817 [DEBUG][       Thread-612269][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:33:26,871 [DEBUG][       Thread-612269][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:33:26,872 [DEBUG][       Thread-612269][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:33:26,872 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:33:26,873 [DEBUG][       Thread-612269][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:33:26,874 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:33:26,930 [DEBUG][       Thread-612269][   transport.py][1871] : userauth is OK
2025-07-01 17:33:26,930 [DEBUG][       Thread-612269][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:33:26,930 [DEBUG][       Thread-612269][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:33:26,930 [DEBUG][       Thread-612269][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:33:26,931 [DEBUG][       Thread-612269][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:33:26,949 [ INFO][       Thread-612269][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:33:26,950 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:33:26,950 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:33:27,993 [DEBUG][       Thread-612269][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:33:27,993 [DEBUG][       Thread-612269][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:33:28,047 [DEBUG][       Thread-612269][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:33:28,047 [DEBUG][       Thread-612269][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:33:28,060 [DEBUG][       Thread-612269][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:33:28,067 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:33:28,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-07-01 17:33:28,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-07-01 17:33:28,083 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:33:28,083 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:33:28,083 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:33:28,091 [DEBUG][       Thread-612269][   transport.py][1871] : EOF in transport thread
2025-07-01 17:33:28,399 [DEBUG][Thread-612271 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:33:37,431 [DEBUG][Thread-612272 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:33:38,094 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:33:38,094 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:33:38,094 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:33:38,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-07-01 17:33:38,594 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 33, 21), 10.71, 47.98, 0.0, 33.12, 12.79, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:33:38,594 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:33:21
2025-07-01 17:33:38,681 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:33:38,687 [DEBUG][       Thread-612273][   transport.py][1871] : starting thread (client mode): 0x81a4250
2025-07-01 17:33:38,687 [DEBUG][       Thread-612273][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:33:38,707 [DEBUG][       Thread-612273][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:33:38,707 [ INFO][       Thread-612273][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:33:38,708 [DEBUG][       Thread-612273][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:33:38,708 [DEBUG][       Thread-612273][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:33:38,708 [DEBUG][       Thread-612273][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:33:38,708 [DEBUG][       Thread-612273][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:33:38,708 [DEBUG][       Thread-612273][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:33:38,708 [DEBUG][       Thread-612273][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:33:38,708 [DEBUG][       Thread-612273][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:33:38,708 [DEBUG][       Thread-612273][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:33:38,708 [DEBUG][       Thread-612273][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:33:38,708 [DEBUG][       Thread-612273][   transport.py][1871] : client lang: <none>
2025-07-01 17:33:38,708 [DEBUG][       Thread-612273][   transport.py][1871] : server lang: <none>
2025-07-01 17:33:38,709 [DEBUG][       Thread-612273][   transport.py][1871] : kex follows: False
2025-07-01 17:33:38,709 [DEBUG][       Thread-612273][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:33:38,709 [DEBUG][       Thread-612273][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:33:38,709 [DEBUG][       Thread-612273][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:33:38,709 [DEBUG][       Thread-612273][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:33:38,709 [DEBUG][       Thread-612273][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:33:38,709 [DEBUG][       Thread-612273][   transport.py][1871] : Compression: none
2025-07-01 17:33:38,709 [DEBUG][       Thread-612273][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:33:38,720 [DEBUG][       Thread-612273][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:33:38,721 [DEBUG][       Thread-612273][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:33:38,721 [DEBUG][       Thread-612273][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:33:38,722 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:33:38,722 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:33:38,723 [DEBUG][       Thread-612273][   transport.py][1871] : userauth is OK
2025-07-01 17:33:38,747 [ INFO][       Thread-612273][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:33:38,748 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:33:39,396 [DEBUG][       Thread-612273][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:33:39,397 [DEBUG][       Thread-612273][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:33:39,441 [DEBUG][       Thread-612273][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:33:39,441 [DEBUG][       Thread-612273][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:33:39,445 [DEBUG][       Thread-612273][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:33:39,456 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:33:39,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:33:39,459 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:33:39,461 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:33:39,466 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:33:39,467 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:33:39,467 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:33:39,468 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:33:39,468 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.648201 -999.00  +12.60  30.20     52   +3.20 1 2 2 1 1   885    0 9.38 2.43 ----- 27.7 30.2 7.3 42.9 13.2 -19.8 13.1 -19.5 12.9 -19.4 13.2 -19.6
2025-07-01 17:33:39,468 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:33:39,468 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:33:39,468 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.648201
2025-07-01 17:33:39,469 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:33:39,469 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:33:39,469 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:33:39,469 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:33:39,470 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:33:39,470 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:33:21', tmtdew=10.71, humidity=47.98, cloud=0.0, wind=33.12, temperature=12.79, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:33:24.566', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:33:39,470 [DEBUG][       Thread-612273][   transport.py][1871] : EOF in transport thread
2025-07-01 17:33:39,554 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:33:39,564 [DEBUG][       Thread-612276][   transport.py][1871] : starting thread (client mode): 0x81c9570
2025-07-01 17:33:39,564 [DEBUG][       Thread-612276][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:33:39,580 [DEBUG][       Thread-612276][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:33:39,580 [ INFO][       Thread-612276][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:33:39,591 [DEBUG][       Thread-612276][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:33:39,591 [DEBUG][       Thread-612276][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:33:39,591 [DEBUG][       Thread-612276][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:33:39,592 [DEBUG][       Thread-612276][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:33:39,592 [DEBUG][       Thread-612276][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:33:39,592 [DEBUG][       Thread-612276][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:33:39,592 [DEBUG][       Thread-612276][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:33:39,592 [DEBUG][       Thread-612276][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:33:39,592 [DEBUG][       Thread-612276][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:33:39,592 [DEBUG][       Thread-612276][   transport.py][1871] : client lang: <none>
2025-07-01 17:33:39,592 [DEBUG][       Thread-612276][   transport.py][1871] : server lang: <none>
2025-07-01 17:33:39,592 [DEBUG][       Thread-612276][   transport.py][1871] : kex follows: False
2025-07-01 17:33:39,592 [DEBUG][       Thread-612276][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:33:39,592 [DEBUG][       Thread-612276][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:33:39,592 [DEBUG][       Thread-612276][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:33:39,592 [DEBUG][       Thread-612276][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:33:39,592 [DEBUG][       Thread-612276][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:33:39,592 [DEBUG][       Thread-612276][   transport.py][1871] : Compression: none
2025-07-01 17:33:39,592 [DEBUG][       Thread-612276][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:33:39,646 [DEBUG][       Thread-612276][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:33:39,647 [DEBUG][       Thread-612276][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:33:39,648 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:33:39,648 [DEBUG][       Thread-612276][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:33:39,649 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:33:39,702 [DEBUG][       Thread-612276][   transport.py][1871] : userauth is OK
2025-07-01 17:33:39,703 [DEBUG][       Thread-612276][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:33:39,703 [DEBUG][       Thread-612276][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:33:39,703 [DEBUG][       Thread-612276][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:33:39,703 [DEBUG][       Thread-612276][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:33:39,721 [ INFO][       Thread-612276][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:33:39,721 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:33:39,722 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:33:40,647 [DEBUG][Thread-612278 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:33:40,721 [DEBUG][       Thread-612276][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:33:40,722 [DEBUG][       Thread-612276][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:33:40,771 [DEBUG][       Thread-612276][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:33:40,771 [DEBUG][       Thread-612276][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:33:40,780 [DEBUG][       Thread-612276][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:33:40,788 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:33:40,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-07-01 17:33:40,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-07-01 17:33:40,803 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:33:40,803 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:33:40,803 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:33:40,811 [DEBUG][       Thread-612276][   transport.py][1871] : EOF in transport thread
2025-07-01 17:33:46,453 [DEBUG][Thread-612279 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:33:50,814 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:33:50,814 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:33:50,814 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:33: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-07-01 17:33:51,297 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 33, 21), 10.71, 47.98, 0.0, 33.12, 12.79, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:33:51,297 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:33:21
2025-07-01 17:33:51,383 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:33:51,387 [DEBUG][       Thread-612280][   transport.py][1871] : starting thread (client mode): 0x818f160
2025-07-01 17:33:51,387 [DEBUG][       Thread-612280][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:33:51,408 [DEBUG][       Thread-612280][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:33:51,408 [ INFO][       Thread-612280][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:33:51,411 [DEBUG][       Thread-612280][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:33:51,412 [DEBUG][       Thread-612280][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:33:51,412 [DEBUG][       Thread-612280][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:33:51,412 [DEBUG][       Thread-612280][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:33:51,412 [DEBUG][       Thread-612280][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:33:51,412 [DEBUG][       Thread-612280][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:33:51,412 [DEBUG][       Thread-612280][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:33:51,412 [DEBUG][       Thread-612280][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:33:51,412 [DEBUG][       Thread-612280][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:33:51,412 [DEBUG][       Thread-612280][   transport.py][1871] : client lang: <none>
2025-07-01 17:33:51,412 [DEBUG][       Thread-612280][   transport.py][1871] : server lang: <none>
2025-07-01 17:33:51,412 [DEBUG][       Thread-612280][   transport.py][1871] : kex follows: False
2025-07-01 17:33:51,412 [DEBUG][       Thread-612280][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:33:51,412 [DEBUG][       Thread-612280][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:33:51,412 [DEBUG][       Thread-612280][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:33:51,412 [DEBUG][       Thread-612280][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:33:51,412 [DEBUG][       Thread-612280][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:33:51,412 [DEBUG][       Thread-612280][   transport.py][1871] : Compression: none
2025-07-01 17:33:51,412 [DEBUG][       Thread-612280][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:33:51,428 [DEBUG][       Thread-612280][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:33:51,428 [DEBUG][       Thread-612280][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:33:51,429 [DEBUG][       Thread-612280][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:33:51,429 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:33:51,429 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:33:51,430 [DEBUG][       Thread-612280][   transport.py][1871] : userauth is OK
2025-07-01 17:33:51,454 [ INFO][       Thread-612280][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:33:51,455 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:33:52,207 [DEBUG][       Thread-612280][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:33:52,207 [DEBUG][       Thread-612280][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:33:52,249 [DEBUG][       Thread-612280][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:33:52,249 [DEBUG][       Thread-612280][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:33:52,253 [DEBUG][       Thread-612280][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:33:52,261 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:33:52,261 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:33:52,263 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:33:52,265 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:33:52,270 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:33:52,271 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:33:52,272 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:33:52,272 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:33:52,272 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.648201 -999.00  +12.60  30.20     52   +3.20 1 2 2 1 1   885    0 9.38 2.43 ----- 27.7 30.2 7.3 42.9 13.2 -19.8 13.1 -19.5 12.9 -19.4 13.2 -19.6
2025-07-01 17:33:52,272 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:33:52,273 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:33:52,273 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.648201
2025-07-01 17:33:52,273 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:33:52,274 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:33:52,274 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:33:52,274 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:33:52,274 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:33:52,274 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:33:21', tmtdew=10.71, humidity=47.98, cloud=0.0, wind=33.12, temperature=12.79, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:33:24.566', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:33:52,275 [DEBUG][       Thread-612280][   transport.py][1871] : EOF in transport thread
2025-07-01 17:33:52,358 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:33:52,370 [DEBUG][       Thread-612283][   transport.py][1871] : starting thread (client mode): 0x81712d0
2025-07-01 17:33:52,370 [DEBUG][       Thread-612283][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:33:52,386 [DEBUG][       Thread-612283][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:33:52,386 [ INFO][       Thread-612283][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:33:52,394 [DEBUG][       Thread-612283][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:33:52,394 [DEBUG][       Thread-612283][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:33:52,394 [DEBUG][       Thread-612283][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:33:52,394 [DEBUG][       Thread-612283][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:33:52,394 [DEBUG][       Thread-612283][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:33:52,395 [DEBUG][       Thread-612283][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:33:52,395 [DEBUG][       Thread-612283][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:33:52,395 [DEBUG][       Thread-612283][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:33:52,395 [DEBUG][       Thread-612283][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:33:52,395 [DEBUG][       Thread-612283][   transport.py][1871] : client lang: <none>
2025-07-01 17:33:52,395 [DEBUG][       Thread-612283][   transport.py][1871] : server lang: <none>
2025-07-01 17:33:52,395 [DEBUG][       Thread-612283][   transport.py][1871] : kex follows: False
2025-07-01 17:33:52,395 [DEBUG][       Thread-612283][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:33:52,395 [DEBUG][       Thread-612283][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:33:52,395 [DEBUG][       Thread-612283][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:33:52,395 [DEBUG][       Thread-612283][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:33:52,395 [DEBUG][       Thread-612283][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:33:52,395 [DEBUG][       Thread-612283][   transport.py][1871] : Compression: none
2025-07-01 17:33:52,395 [DEBUG][       Thread-612283][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:33:52,450 [DEBUG][       Thread-612283][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:33:52,451 [DEBUG][       Thread-612283][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:33:52,451 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:33:52,452 [DEBUG][       Thread-612283][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:33:52,453 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:33:52,511 [DEBUG][       Thread-612283][   transport.py][1871] : userauth is OK
2025-07-01 17:33:52,511 [DEBUG][       Thread-612283][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:33:52,511 [DEBUG][       Thread-612283][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:33:52,511 [DEBUG][       Thread-612283][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:33:52,511 [DEBUG][       Thread-612283][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:33:52,534 [ INFO][       Thread-612283][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:33:52,534 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:33:52,535 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:33:53,597 [DEBUG][       Thread-612283][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:33:53,597 [DEBUG][       Thread-612283][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:33:53,647 [DEBUG][       Thread-612283][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:33:53,647 [DEBUG][       Thread-612283][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:33:53,656 [DEBUG][       Thread-612283][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:33:53,664 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:33:53,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-07-01 17:33:53,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-07-01 17:33:53,682 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:33:53,682 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:33:53,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:33:53,690 [DEBUG][       Thread-612283][   transport.py][1871] : EOF in transport thread
2025-07-01 17:33:55,473 [DEBUG][Thread-612285 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:34:03,693 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:34:03,693 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:34:03,693 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:34:03,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-07-01 17:34:04,178 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 33, 53), 10.72, 47.95, 0.0, 30.79, 12.76, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:34:04,178 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:33:53
2025-07-01 17:34:04,264 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:34:04,270 [DEBUG][       Thread-612286][   transport.py][1871] : starting thread (client mode): 0x818f940
2025-07-01 17:34:04,270 [DEBUG][       Thread-612286][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:34:04,290 [DEBUG][       Thread-612286][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:34:04,290 [ INFO][       Thread-612286][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:34:04,293 [DEBUG][       Thread-612286][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:34:04,293 [DEBUG][       Thread-612286][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:34:04,293 [DEBUG][       Thread-612286][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:34:04,293 [DEBUG][       Thread-612286][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:34:04,293 [DEBUG][       Thread-612286][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:34:04,293 [DEBUG][       Thread-612286][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:34:04,293 [DEBUG][       Thread-612286][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:34:04,293 [DEBUG][       Thread-612286][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:34:04,293 [DEBUG][       Thread-612286][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:34:04,293 [DEBUG][       Thread-612286][   transport.py][1871] : client lang: <none>
2025-07-01 17:34:04,293 [DEBUG][       Thread-612286][   transport.py][1871] : server lang: <none>
2025-07-01 17:34:04,294 [DEBUG][       Thread-612286][   transport.py][1871] : kex follows: False
2025-07-01 17:34:04,294 [DEBUG][       Thread-612286][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:34:04,294 [DEBUG][       Thread-612286][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:34:04,294 [DEBUG][       Thread-612286][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:34:04,294 [DEBUG][       Thread-612286][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:34:04,294 [DEBUG][       Thread-612286][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:34:04,294 [DEBUG][       Thread-612286][   transport.py][1871] : Compression: none
2025-07-01 17:34:04,294 [DEBUG][       Thread-612286][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:34:04,312 [DEBUG][       Thread-612286][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:34:04,312 [DEBUG][       Thread-612286][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:34:04,313 [DEBUG][       Thread-612286][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:34:04,313 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:34:04,313 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:34:04,314 [DEBUG][       Thread-612286][   transport.py][1871] : userauth is OK
2025-07-01 17:34:04,339 [ INFO][       Thread-612286][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:34:04,339 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:34:04,494 [DEBUG][Thread-612288 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:34:04,957 [DEBUG][       Thread-612286][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:34:04,957 [DEBUG][       Thread-612286][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:34:05,000 [DEBUG][       Thread-612286][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:34:05,000 [DEBUG][       Thread-612286][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:34:05,003 [DEBUG][       Thread-612286][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:34:05,013 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:34:05,013 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:34:05,014 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:34:05,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:34:05,018 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:34:05,018 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:34:05,018 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:34:05,019 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:34:05,019 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.648548 -999.00  +12.50  25.60     53   +3.20 1 2 1 1 1   885    0 9.51 0.20 ----- 30.1 25.6 329.7 41.8 13.2 -20.0 13.1 -19.7 12.8 -19.4 13.2 -19.7
2025-07-01 17:34:05,019 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:34:05,019 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:34:05,019 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.648548
2025-07-01 17:34:05,019 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:34:05,019 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:34:05,019 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:34:05,019 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:34:05,019 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:34:05,019 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:33:53', tmtdew=10.72, humidity=47.95, cloud=0.0, wind=30.79, temperature=12.76, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:33:54.547', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:34:05,019 [DEBUG][       Thread-612286][   transport.py][1871] : EOF in transport thread
2025-07-01 17:34:05,094 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:34:05,103 [DEBUG][       Thread-612290][   transport.py][1871] : starting thread (client mode): 0x8156620
2025-07-01 17:34:05,103 [DEBUG][       Thread-612290][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:34:05,118 [DEBUG][       Thread-612290][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:34:05,118 [ INFO][       Thread-612290][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:34:05,126 [DEBUG][       Thread-612290][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:34:05,126 [DEBUG][       Thread-612290][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:34:05,126 [DEBUG][       Thread-612290][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:34:05,126 [DEBUG][       Thread-612290][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:34:05,126 [DEBUG][       Thread-612290][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:34:05,126 [DEBUG][       Thread-612290][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:34:05,126 [DEBUG][       Thread-612290][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:34:05,126 [DEBUG][       Thread-612290][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:34:05,126 [DEBUG][       Thread-612290][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:34:05,126 [DEBUG][       Thread-612290][   transport.py][1871] : client lang: <none>
2025-07-01 17:34:05,126 [DEBUG][       Thread-612290][   transport.py][1871] : server lang: <none>
2025-07-01 17:34:05,126 [DEBUG][       Thread-612290][   transport.py][1871] : kex follows: False
2025-07-01 17:34:05,126 [DEBUG][       Thread-612290][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:34:05,126 [DEBUG][       Thread-612290][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:34:05,126 [DEBUG][       Thread-612290][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:34:05,126 [DEBUG][       Thread-612290][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:34:05,126 [DEBUG][       Thread-612290][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:34:05,126 [DEBUG][       Thread-612290][   transport.py][1871] : Compression: none
2025-07-01 17:34:05,126 [DEBUG][       Thread-612290][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:34:05,185 [DEBUG][       Thread-612290][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:34:05,185 [DEBUG][       Thread-612290][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:34:05,185 [DEBUG][       Thread-612290][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:34:05,185 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:34:05,185 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:34:05,244 [DEBUG][       Thread-612290][   transport.py][1871] : userauth is OK
2025-07-01 17:34:05,244 [DEBUG][       Thread-612290][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:34:05,244 [DEBUG][       Thread-612290][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:34:05,244 [DEBUG][       Thread-612290][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:34:05,244 [DEBUG][       Thread-612290][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:34:05,261 [ INFO][       Thread-612290][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:34:05,261 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:34:05,261 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:34:06,356 [DEBUG][       Thread-612290][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:34:06,356 [DEBUG][       Thread-612290][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:34:06,410 [DEBUG][       Thread-612290][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:34:06,410 [DEBUG][       Thread-612290][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:34:06,418 [DEBUG][       Thread-612290][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:34:06,426 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:34:06,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')
2025-07-01 17:34:06,434 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 17:34:06,442 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:34:06,442 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:34:06,442 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:34:06,450 [DEBUG][       Thread-612290][   transport.py][1871] : EOF in transport thread
2025-07-01 17:34:13,515 [DEBUG][Thread-612292 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:34:16,449 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:34:16,449 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:34:16,449 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:34:16,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-07-01 17:34:16,931 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 33, 53), 10.72, 47.95, 0.0, 30.79, 12.76, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:34:16,931 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:33:53
2025-07-01 17:34:17,016 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:34:17,020 [DEBUG][       Thread-612293][   transport.py][1871] : starting thread (client mode): 0x81a6a40
2025-07-01 17:34:17,020 [DEBUG][       Thread-612293][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:34:17,042 [DEBUG][       Thread-612293][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:34:17,042 [ INFO][       Thread-612293][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:34:17,045 [DEBUG][       Thread-612293][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:34:17,045 [DEBUG][       Thread-612293][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:34:17,045 [DEBUG][       Thread-612293][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:34:17,046 [DEBUG][       Thread-612293][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:34:17,046 [DEBUG][       Thread-612293][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:34:17,046 [DEBUG][       Thread-612293][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:34:17,046 [DEBUG][       Thread-612293][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:34:17,046 [DEBUG][       Thread-612293][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:34:17,046 [DEBUG][       Thread-612293][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:34:17,046 [DEBUG][       Thread-612293][   transport.py][1871] : client lang: <none>
2025-07-01 17:34:17,046 [DEBUG][       Thread-612293][   transport.py][1871] : server lang: <none>
2025-07-01 17:34:17,046 [DEBUG][       Thread-612293][   transport.py][1871] : kex follows: False
2025-07-01 17:34:17,046 [DEBUG][       Thread-612293][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:34:17,046 [DEBUG][       Thread-612293][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:34:17,046 [DEBUG][       Thread-612293][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:34:17,046 [DEBUG][       Thread-612293][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:34:17,046 [DEBUG][       Thread-612293][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:34:17,046 [DEBUG][       Thread-612293][   transport.py][1871] : Compression: none
2025-07-01 17:34:17,046 [DEBUG][       Thread-612293][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:34:17,063 [DEBUG][       Thread-612293][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:34:17,064 [DEBUG][       Thread-612293][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:34:17,064 [DEBUG][       Thread-612293][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:34:17,064 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:34:17,065 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:34:17,066 [DEBUG][       Thread-612293][   transport.py][1871] : userauth is OK
2025-07-01 17:34:17,090 [ INFO][       Thread-612293][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:34:17,091 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:34:17,936 [DEBUG][       Thread-612293][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:34:17,936 [DEBUG][       Thread-612293][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:34:17,977 [DEBUG][       Thread-612293][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:34:17,977 [DEBUG][       Thread-612293][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:34:17,980 [DEBUG][       Thread-612293][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:34:17,994 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:34:17,995 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:34:17,997 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:34:17,999 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:34:18,004 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:34:18,006 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:34:18,006 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:34:18,006 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:34:18,006 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.648548 -999.00  +12.50  25.60     53   +3.20 1 2 1 1 1   885    0 9.51 0.20 ----- 30.1 25.6 329.7 41.8 13.2 -20.0 13.1 -19.7 12.8 -19.4 13.2 -19.7
2025-07-01 17:34:18,007 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:34:18,007 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:34:18,007 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.648548
2025-07-01 17:34:18,007 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:34:18,008 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:34:18,008 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:34:18,008 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:34:18,008 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:34:18,008 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:33:53', tmtdew=10.72, humidity=47.95, cloud=0.0, wind=30.79, temperature=12.76, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:33:54.547', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:34:18,009 [DEBUG][       Thread-612293][   transport.py][1871] : EOF in transport thread
2025-07-01 17:34:18,089 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:34:18,102 [DEBUG][       Thread-612296][   transport.py][1871] : starting thread (client mode): 0x82b3cd0
2025-07-01 17:34:18,102 [DEBUG][       Thread-612296][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:34:18,117 [DEBUG][       Thread-612296][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:34:18,117 [ INFO][       Thread-612296][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:34:18,124 [DEBUG][       Thread-612296][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:34:18,125 [DEBUG][       Thread-612296][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:34:18,125 [DEBUG][       Thread-612296][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:34:18,125 [DEBUG][       Thread-612296][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:34:18,125 [DEBUG][       Thread-612296][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:34:18,125 [DEBUG][       Thread-612296][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:34:18,125 [DEBUG][       Thread-612296][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:34:18,125 [DEBUG][       Thread-612296][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:34:18,125 [DEBUG][       Thread-612296][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:34:18,125 [DEBUG][       Thread-612296][   transport.py][1871] : client lang: <none>
2025-07-01 17:34:18,125 [DEBUG][       Thread-612296][   transport.py][1871] : server lang: <none>
2025-07-01 17:34:18,125 [DEBUG][       Thread-612296][   transport.py][1871] : kex follows: False
2025-07-01 17:34:18,125 [DEBUG][       Thread-612296][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:34:18,125 [DEBUG][       Thread-612296][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:34:18,125 [DEBUG][       Thread-612296][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:34:18,125 [DEBUG][       Thread-612296][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:34:18,125 [DEBUG][       Thread-612296][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:34:18,125 [DEBUG][       Thread-612296][   transport.py][1871] : Compression: none
2025-07-01 17:34:18,125 [DEBUG][       Thread-612296][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:34:18,182 [DEBUG][       Thread-612296][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:34:18,182 [DEBUG][       Thread-612296][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:34:18,182 [DEBUG][       Thread-612296][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:34:18,182 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:34:18,182 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:34:18,239 [DEBUG][       Thread-612296][   transport.py][1871] : userauth is OK
2025-07-01 17:34:18,239 [DEBUG][       Thread-612296][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:34:18,239 [DEBUG][       Thread-612296][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:34:18,239 [DEBUG][       Thread-612296][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:34:18,240 [DEBUG][       Thread-612296][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:34:18,258 [ INFO][       Thread-612296][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:34:18,258 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:34:18,258 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:34:19,271 [DEBUG][       Thread-612296][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:34:19,271 [DEBUG][       Thread-612296][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:34:19,320 [DEBUG][       Thread-612296][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:34:19,320 [DEBUG][       Thread-612296][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:34:19,329 [DEBUG][       Thread-612296][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:34:19,338 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:34:19,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-07-01 17:34:19,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') -> 00000000
2025-07-01 17:34:19,357 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:34:19,357 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:34:19,358 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:34:19,366 [DEBUG][       Thread-612296][   transport.py][1871] : EOF in transport thread
2025-07-01 17:34:22,552 [DEBUG][Thread-612298 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:34:29,368 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:34:29,369 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:34:29,369 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:34:29,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-07-01 17:34:29,850 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 34, 24), 10.69, 48.29, 0.0, 34.51, 12.74, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:34:29,850 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:34:24
2025-07-01 17:34:29,936 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:34:29,942 [DEBUG][       Thread-612299][   transport.py][1871] : starting thread (client mode): 0x82b20b0
2025-07-01 17:34:29,942 [DEBUG][       Thread-612299][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:34:29,963 [DEBUG][       Thread-612299][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:34:29,964 [ INFO][       Thread-612299][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:34:29,967 [DEBUG][       Thread-612299][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:34:29,967 [DEBUG][       Thread-612299][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:34:29,967 [DEBUG][       Thread-612299][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:34:29,967 [DEBUG][       Thread-612299][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:34:29,967 [DEBUG][       Thread-612299][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:34:29,967 [DEBUG][       Thread-612299][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:34:29,967 [DEBUG][       Thread-612299][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:34:29,967 [DEBUG][       Thread-612299][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:34:29,967 [DEBUG][       Thread-612299][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:34:29,967 [DEBUG][       Thread-612299][   transport.py][1871] : client lang: <none>
2025-07-01 17:34:29,967 [DEBUG][       Thread-612299][   transport.py][1871] : server lang: <none>
2025-07-01 17:34:29,967 [DEBUG][       Thread-612299][   transport.py][1871] : kex follows: False
2025-07-01 17:34:29,967 [DEBUG][       Thread-612299][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:34:29,967 [DEBUG][       Thread-612299][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:34:29,967 [DEBUG][       Thread-612299][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:34:29,967 [DEBUG][       Thread-612299][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:34:29,967 [DEBUG][       Thread-612299][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:34:29,967 [DEBUG][       Thread-612299][   transport.py][1871] : Compression: none
2025-07-01 17:34:29,967 [DEBUG][       Thread-612299][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:34:29,984 [DEBUG][       Thread-612299][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:34:29,985 [DEBUG][       Thread-612299][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:34:29,985 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:34:29,985 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:34:29,986 [DEBUG][       Thread-612299][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:34:29,987 [DEBUG][       Thread-612299][   transport.py][1871] : userauth is OK
2025-07-01 17:34:29,999 [ INFO][       Thread-612299][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:34:30,000 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:34:30,802 [DEBUG][       Thread-612299][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:34:30,802 [DEBUG][       Thread-612299][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:34:30,849 [DEBUG][       Thread-612299][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:34:30,849 [DEBUG][       Thread-612299][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:34:30,852 [DEBUG][       Thread-612299][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:34:30,866 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:34:30,866 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:34:30,868 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:34:30,870 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:34:30,874 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:34:30,876 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:34:30,876 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:34:30,877 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:34:30,877 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.648548 -999.00  +12.50  25.60     53   +3.20 1 2 1 1 1   885    0 9.51 0.20 ----- 30.1 25.6 329.7 41.8 13.2 -20.0 13.1 -19.7 12.8 -19.4 13.2 -19.7
2025-07-01 17:34:30,877 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:34:30,877 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:34:30,877 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.648548
2025-07-01 17:34:30,878 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:34:30,878 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:34:30,878 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:34:30,878 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:34:30,878 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:34:30,879 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:34:24', tmtdew=10.69, humidity=48.29, cloud=0.0, wind=34.51, temperature=12.74, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:33:54.547', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:34:30,879 [DEBUG][       Thread-612299][   transport.py][1871] : EOF in transport thread
2025-07-01 17:34:30,963 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:34:31,573 [DEBUG][Thread-612302 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:34:40,616 [DEBUG][Thread-612303 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:34:40,678 [DEBUG][Thread-612304 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:34:49,638 [DEBUG][Thread-612305 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:34:58,657 [DEBUG][Thread-612306 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:35:07,679 [DEBUG][Thread-612307 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:35:16,701 [DEBUG][Thread-612308 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:35:25,721 [DEBUG][Thread-612309 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:35:34,743 [DEBUG][Thread-612310 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:35:40,710 [DEBUG][Thread-612311 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:35:43,766 [DEBUG][Thread-612312 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:35:52,788 [DEBUG][Thread-612313 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:36:01,807 [DEBUG][Thread-612314 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:36:10,829 [DEBUG][Thread-612315 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:36:19,853 [DEBUG][Thread-612316 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:36:28,877 [DEBUG][Thread-612317 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:36:37,894 [DEBUG][Thread-612318 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:36:39,444 [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-07-01 17:36:40,737 [DEBUG][Thread-612319 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:36:46,914 [DEBUG][Thread-612320 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:36:49,452 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:36:49,452 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:36:49,452 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:36:49,455 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:36:49,966 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 36, 32), 10.52, 48.85, 0.0, 32.2, 12.59, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:36:49,966 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:36:32
2025-07-01 17:36:50,052 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:36:50,058 [DEBUG][       Thread-612321][   transport.py][1871] : starting thread (client mode): 0x82b3d30
2025-07-01 17:36:50,058 [DEBUG][       Thread-612321][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:36:50,078 [DEBUG][       Thread-612321][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:36:50,078 [ INFO][       Thread-612321][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:36:50,081 [DEBUG][       Thread-612321][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:36:50,081 [DEBUG][       Thread-612321][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:36:50,081 [DEBUG][       Thread-612321][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:36:50,081 [DEBUG][       Thread-612321][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:36:50,081 [DEBUG][       Thread-612321][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:36:50,081 [DEBUG][       Thread-612321][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:36:50,081 [DEBUG][       Thread-612321][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:36:50,081 [DEBUG][       Thread-612321][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:36:50,081 [DEBUG][       Thread-612321][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:36:50,081 [DEBUG][       Thread-612321][   transport.py][1871] : client lang: <none>
2025-07-01 17:36:50,081 [DEBUG][       Thread-612321][   transport.py][1871] : server lang: <none>
2025-07-01 17:36:50,081 [DEBUG][       Thread-612321][   transport.py][1871] : kex follows: False
2025-07-01 17:36:50,081 [DEBUG][       Thread-612321][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:36:50,081 [DEBUG][       Thread-612321][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:36:50,081 [DEBUG][       Thread-612321][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:36:50,081 [DEBUG][       Thread-612321][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:36:50,081 [DEBUG][       Thread-612321][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:36:50,081 [DEBUG][       Thread-612321][   transport.py][1871] : Compression: none
2025-07-01 17:36:50,081 [DEBUG][       Thread-612321][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:36:50,099 [DEBUG][       Thread-612321][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:36:50,099 [DEBUG][       Thread-612321][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:36:50,100 [DEBUG][       Thread-612321][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:36:50,100 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:36:50,100 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:36:50,101 [DEBUG][       Thread-612321][   transport.py][1871] : userauth is OK
2025-07-01 17:36:50,114 [ INFO][       Thread-612321][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:36:50,115 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:36:50,713 [DEBUG][       Thread-612321][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:36:50,713 [DEBUG][       Thread-612321][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:36:50,757 [DEBUG][       Thread-612321][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:36:50,757 [DEBUG][       Thread-612321][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:36:50,759 [DEBUG][       Thread-612321][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:36:50,771 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:36:50,772 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:36:50,773 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:36:50,775 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:36:50,779 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:36:50,780 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:36:50,781 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:36:50,781 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:36:50,781 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.650284 -999.00  +12.50  23.72     53   +3.20 1 2 1 1 1   883    0 9.37 -6.90 ----- 32.9 23.7 10.9 42.3 13.1 -20.7 13.0 -20.3 12.8 -20.7 13.1 -20.8
2025-07-01 17:36:50,781 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:36:50,781 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:36:50,782 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.650284
2025-07-01 17:36:50,782 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:36:50,782 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:36:50,783 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:36:50,783 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:36:50,783 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:36:50,783 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:36:32', tmtdew=10.52, humidity=48.85, cloud=0.0, wind=32.2, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:36:24.538', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:36:50,783 [DEBUG][       Thread-612321][   transport.py][1871] : EOF in transport thread
2025-07-01 17:36:50,866 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:36:50,879 [DEBUG][       Thread-612324][   transport.py][1871] : starting thread (client mode): 0x8173bb0
2025-07-01 17:36:50,879 [DEBUG][       Thread-612324][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:36:50,896 [DEBUG][       Thread-612324][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:36:50,896 [ INFO][       Thread-612324][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:36:50,904 [DEBUG][       Thread-612324][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:36:50,904 [DEBUG][       Thread-612324][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:36:50,904 [DEBUG][       Thread-612324][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:36:50,904 [DEBUG][       Thread-612324][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:36:50,904 [DEBUG][       Thread-612324][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:36:50,904 [DEBUG][       Thread-612324][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:36:50,904 [DEBUG][       Thread-612324][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:36:50,904 [DEBUG][       Thread-612324][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:36:50,905 [DEBUG][       Thread-612324][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:36:50,905 [DEBUG][       Thread-612324][   transport.py][1871] : client lang: <none>
2025-07-01 17:36:50,905 [DEBUG][       Thread-612324][   transport.py][1871] : server lang: <none>
2025-07-01 17:36:50,905 [DEBUG][       Thread-612324][   transport.py][1871] : kex follows: False
2025-07-01 17:36:50,905 [DEBUG][       Thread-612324][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:36:50,905 [DEBUG][       Thread-612324][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:36:50,905 [DEBUG][       Thread-612324][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:36:50,905 [DEBUG][       Thread-612324][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:36:50,905 [DEBUG][       Thread-612324][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:36:50,905 [DEBUG][       Thread-612324][   transport.py][1871] : Compression: none
2025-07-01 17:36:50,905 [DEBUG][       Thread-612324][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:36:50,962 [DEBUG][       Thread-612324][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:36:50,962 [DEBUG][       Thread-612324][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:36:50,963 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:36:50,963 [DEBUG][       Thread-612324][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:36:50,964 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:36:51,018 [DEBUG][       Thread-612324][   transport.py][1871] : userauth is OK
2025-07-01 17:36:51,018 [DEBUG][       Thread-612324][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:36:51,018 [DEBUG][       Thread-612324][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:36:51,018 [DEBUG][       Thread-612324][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:36:51,018 [DEBUG][       Thread-612324][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:36:51,037 [ INFO][       Thread-612324][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:36:51,037 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:36:51,038 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:36:52,042 [DEBUG][       Thread-612324][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:36:52,042 [DEBUG][       Thread-612324][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:36:52,092 [DEBUG][       Thread-612324][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:36:52,092 [DEBUG][       Thread-612324][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:36:52,102 [DEBUG][       Thread-612324][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:36:52,110 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:36:52,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-07-01 17:36:52,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-07-01 17:36:52,129 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:36:52,129 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:36:52,129 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:36:52,137 [DEBUG][       Thread-612324][   transport.py][1871] : EOF in transport thread
2025-07-01 17:36:55,936 [DEBUG][Thread-612326 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:37:02,140 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:37:02,140 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:37:02,140 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:37:02,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-07-01 17:37:02,650 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 36, 32), 10.52, 48.85, 0.0, 32.2, 12.59, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:37:02,650 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:36:32
2025-07-01 17:37:02,736 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:37:02,740 [DEBUG][       Thread-612327][   transport.py][1871] : starting thread (client mode): 0x81da1d0
2025-07-01 17:37:02,740 [DEBUG][       Thread-612327][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:37:02,758 [DEBUG][       Thread-612327][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:37:02,759 [ INFO][       Thread-612327][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:37:02,761 [DEBUG][       Thread-612327][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:37:02,761 [DEBUG][       Thread-612327][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:37:02,761 [DEBUG][       Thread-612327][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:37:02,761 [DEBUG][       Thread-612327][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:37:02,761 [DEBUG][       Thread-612327][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:37:02,761 [DEBUG][       Thread-612327][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:37:02,761 [DEBUG][       Thread-612327][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:37:02,761 [DEBUG][       Thread-612327][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:37:02,761 [DEBUG][       Thread-612327][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:37:02,761 [DEBUG][       Thread-612327][   transport.py][1871] : client lang: <none>
2025-07-01 17:37:02,761 [DEBUG][       Thread-612327][   transport.py][1871] : server lang: <none>
2025-07-01 17:37:02,761 [DEBUG][       Thread-612327][   transport.py][1871] : kex follows: False
2025-07-01 17:37:02,761 [DEBUG][       Thread-612327][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:37:02,761 [DEBUG][       Thread-612327][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:37:02,761 [DEBUG][       Thread-612327][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:37:02,761 [DEBUG][       Thread-612327][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:37:02,761 [DEBUG][       Thread-612327][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:37:02,761 [DEBUG][       Thread-612327][   transport.py][1871] : Compression: none
2025-07-01 17:37:02,761 [DEBUG][       Thread-612327][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:37:02,775 [DEBUG][       Thread-612327][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:37:02,775 [DEBUG][       Thread-612327][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:37:02,776 [DEBUG][       Thread-612327][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:37:02,776 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:37:02,776 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:37:02,777 [DEBUG][       Thread-612327][   transport.py][1871] : userauth is OK
2025-07-01 17:37:02,789 [ INFO][       Thread-612327][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:37:02,789 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:37:03,449 [DEBUG][       Thread-612327][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:37:03,449 [DEBUG][       Thread-612327][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:37:03,493 [DEBUG][       Thread-612327][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:37:03,493 [DEBUG][       Thread-612327][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:37:03,496 [DEBUG][       Thread-612327][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:37:03,510 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:37:03,510 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:37:03,512 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:37:03,514 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:37:03,520 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:37:03,522 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:37:03,522 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:37:03,523 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:37:03,523 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.650284 -999.00  +12.50  23.72     53   +3.20 1 2 1 1 1   883    0 9.37 -6.90 ----- 32.9 23.7 10.9 42.3 13.1 -20.7 13.0 -20.3 12.8 -20.7 13.1 -20.8
2025-07-01 17:37:03,523 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:37:03,523 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:37:03,523 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.650284
2025-07-01 17:37:03,523 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:37:03,524 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:37:03,524 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:37:03,524 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:37:03,524 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:37:03,524 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:36:32', tmtdew=10.52, humidity=48.85, cloud=0.0, wind=32.2, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:36:24.538', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:37:03,525 [DEBUG][       Thread-612327][   transport.py][1871] : EOF in transport thread
2025-07-01 17:37:03,598 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:37:03,612 [DEBUG][       Thread-612330][   transport.py][1871] : starting thread (client mode): 0x82b1810
2025-07-01 17:37:03,612 [DEBUG][       Thread-612330][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:37:03,630 [DEBUG][       Thread-612330][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:37:03,630 [ INFO][       Thread-612330][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:37:03,640 [DEBUG][       Thread-612330][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:37:03,640 [DEBUG][       Thread-612330][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:37:03,640 [DEBUG][       Thread-612330][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:37:03,640 [DEBUG][       Thread-612330][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:37:03,641 [DEBUG][       Thread-612330][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:37:03,641 [DEBUG][       Thread-612330][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:37:03,641 [DEBUG][       Thread-612330][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:37:03,641 [DEBUG][       Thread-612330][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:37:03,641 [DEBUG][       Thread-612330][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:37:03,641 [DEBUG][       Thread-612330][   transport.py][1871] : client lang: <none>
2025-07-01 17:37:03,641 [DEBUG][       Thread-612330][   transport.py][1871] : server lang: <none>
2025-07-01 17:37:03,641 [DEBUG][       Thread-612330][   transport.py][1871] : kex follows: False
2025-07-01 17:37:03,641 [DEBUG][       Thread-612330][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:37:03,641 [DEBUG][       Thread-612330][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:37:03,641 [DEBUG][       Thread-612330][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:37:03,641 [DEBUG][       Thread-612330][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:37:03,641 [DEBUG][       Thread-612330][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:37:03,641 [DEBUG][       Thread-612330][   transport.py][1871] : Compression: none
2025-07-01 17:37:03,641 [DEBUG][       Thread-612330][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:37:03,700 [DEBUG][       Thread-612330][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:37:03,701 [DEBUG][       Thread-612330][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:37:03,701 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:37:03,702 [DEBUG][       Thread-612330][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:37:03,703 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:37:03,758 [DEBUG][       Thread-612330][   transport.py][1871] : userauth is OK
2025-07-01 17:37:03,759 [DEBUG][       Thread-612330][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:37:03,759 [DEBUG][       Thread-612330][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:37:03,759 [DEBUG][       Thread-612330][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:37:03,759 [DEBUG][       Thread-612330][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:37:03,778 [ INFO][       Thread-612330][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:37:03,779 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:37:03,779 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:37:04,826 [DEBUG][       Thread-612330][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:37:04,827 [DEBUG][       Thread-612330][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:37:04,875 [DEBUG][       Thread-612330][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:37:04,875 [DEBUG][       Thread-612330][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:37:04,884 [DEBUG][       Thread-612330][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:37:04,892 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:37: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')
2025-07-01 17:37:04,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-07-01 17:37:04,908 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:37:04,908 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:37:04,908 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:37:04,916 [DEBUG][       Thread-612330][   transport.py][1871] : EOF in transport thread
2025-07-01 17:37:04,967 [DEBUG][Thread-612332 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:37:13,987 [DEBUG][Thread-612333 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:37:14,918 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:37:14,919 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:37:14,919 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:37:14,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-07-01 17:37:15,440 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 37, 4), 10.52, 48.83, 0.0, 36.7, 12.59, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:37:15,440 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:37:04
2025-07-01 17:37:15,533 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:37:15,538 [DEBUG][       Thread-612334][   transport.py][1871] : starting thread (client mode): 0x82b3f40
2025-07-01 17:37:15,539 [DEBUG][       Thread-612334][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:37:15,559 [DEBUG][       Thread-612334][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:37:15,559 [ INFO][       Thread-612334][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:37:15,562 [DEBUG][       Thread-612334][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:37:15,562 [DEBUG][       Thread-612334][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:37:15,562 [DEBUG][       Thread-612334][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:37:15,562 [DEBUG][       Thread-612334][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:37:15,562 [DEBUG][       Thread-612334][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:37:15,562 [DEBUG][       Thread-612334][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:37:15,562 [DEBUG][       Thread-612334][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:37:15,562 [DEBUG][       Thread-612334][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:37:15,563 [DEBUG][       Thread-612334][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:37:15,563 [DEBUG][       Thread-612334][   transport.py][1871] : client lang: <none>
2025-07-01 17:37:15,563 [DEBUG][       Thread-612334][   transport.py][1871] : server lang: <none>
2025-07-01 17:37:15,563 [DEBUG][       Thread-612334][   transport.py][1871] : kex follows: False
2025-07-01 17:37:15,563 [DEBUG][       Thread-612334][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:37:15,563 [DEBUG][       Thread-612334][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:37:15,563 [DEBUG][       Thread-612334][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:37:15,563 [DEBUG][       Thread-612334][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:37:15,563 [DEBUG][       Thread-612334][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:37:15,563 [DEBUG][       Thread-612334][   transport.py][1871] : Compression: none
2025-07-01 17:37:15,563 [DEBUG][       Thread-612334][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:37:15,577 [DEBUG][       Thread-612334][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:37:15,577 [DEBUG][       Thread-612334][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:37:15,577 [DEBUG][       Thread-612334][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:37:15,577 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:37:15,577 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:37:15,578 [DEBUG][       Thread-612334][   transport.py][1871] : userauth is OK
2025-07-01 17:37:15,604 [ INFO][       Thread-612334][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:37:15,604 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:37:16,264 [DEBUG][       Thread-612334][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:37:16,264 [DEBUG][       Thread-612334][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:37:16,304 [DEBUG][       Thread-612334][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:37:16,304 [DEBUG][       Thread-612334][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:37:16,306 [DEBUG][       Thread-612334][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:37:16,318 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:37:16,318 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:37:16,319 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:37:16,319 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:37:16,322 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:37:16,323 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:37:16,323 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:37:16,323 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:37:16,323 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.650284 -999.00  +12.50  23.72     53   +3.20 1 2 1 1 1   883    0 9.37 -6.90 ----- 32.9 23.7 10.9 42.3 13.1 -20.7 13.0 -20.3 12.8 -20.7 13.1 -20.8
2025-07-01 17:37:16,323 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:37:16,323 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:37:16,323 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.650284
2025-07-01 17:37:16,323 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:37:16,323 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:37:16,323 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:37:16,323 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:37:16,323 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:37:16,323 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:37:04', tmtdew=10.52, humidity=48.83, cloud=0.0, wind=36.7, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:36:24.538', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:37:16,324 [DEBUG][       Thread-612334][   transport.py][1871] : EOF in transport thread
2025-07-01 17:37:16,398 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:37:16,409 [DEBUG][       Thread-612337][   transport.py][1871] : starting thread (client mode): 0x81d9960
2025-07-01 17:37:16,410 [DEBUG][       Thread-612337][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:37:16,425 [DEBUG][       Thread-612337][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:37:16,425 [ INFO][       Thread-612337][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:37:16,433 [DEBUG][       Thread-612337][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:37:16,433 [DEBUG][       Thread-612337][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:37:16,433 [DEBUG][       Thread-612337][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:37:16,433 [DEBUG][       Thread-612337][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:37:16,433 [DEBUG][       Thread-612337][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:37:16,433 [DEBUG][       Thread-612337][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:37:16,433 [DEBUG][       Thread-612337][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:37:16,433 [DEBUG][       Thread-612337][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:37:16,433 [DEBUG][       Thread-612337][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:37:16,433 [DEBUG][       Thread-612337][   transport.py][1871] : client lang: <none>
2025-07-01 17:37:16,433 [DEBUG][       Thread-612337][   transport.py][1871] : server lang: <none>
2025-07-01 17:37:16,433 [DEBUG][       Thread-612337][   transport.py][1871] : kex follows: False
2025-07-01 17:37:16,433 [DEBUG][       Thread-612337][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:37:16,433 [DEBUG][       Thread-612337][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:37:16,433 [DEBUG][       Thread-612337][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:37:16,433 [DEBUG][       Thread-612337][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:37:16,433 [DEBUG][       Thread-612337][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:37:16,433 [DEBUG][       Thread-612337][   transport.py][1871] : Compression: none
2025-07-01 17:37:16,433 [DEBUG][       Thread-612337][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:37:16,491 [DEBUG][       Thread-612337][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:37:16,491 [DEBUG][       Thread-612337][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:37:16,491 [DEBUG][       Thread-612337][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:37:16,492 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:37:16,492 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:37:16,550 [DEBUG][       Thread-612337][   transport.py][1871] : userauth is OK
2025-07-01 17:37:16,550 [DEBUG][       Thread-612337][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:37:16,550 [DEBUG][       Thread-612337][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:37:16,550 [DEBUG][       Thread-612337][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:37:16,550 [DEBUG][       Thread-612337][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:37:16,564 [ INFO][       Thread-612337][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:37:16,564 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:37:16,565 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:37:17,636 [DEBUG][       Thread-612337][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:37:17,636 [DEBUG][       Thread-612337][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:37:17,687 [DEBUG][       Thread-612337][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:37:17,687 [DEBUG][       Thread-612337][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:37:17,696 [DEBUG][       Thread-612337][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:37:17,704 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:37:17,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-07-01 17:37:17,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-07-01 17:37:17,719 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:37:17,719 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:37:17,719 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:37:17,727 [DEBUG][       Thread-612337][   transport.py][1871] : EOF in transport thread
2025-07-01 17:37:23,006 [DEBUG][Thread-612339 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:37:27,730 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:37:27,730 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:37:27,730 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:37:27,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-07-01 17:37:28,234 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 37, 4), 10.52, 48.83, 0.0, 36.7, 12.59, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:37:28,234 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:37:04
2025-07-01 17:37:28,321 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:37:28,327 [DEBUG][       Thread-612340][   transport.py][1871] : starting thread (client mode): 0x82b0a00
2025-07-01 17:37:28,327 [DEBUG][       Thread-612340][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:37:28,350 [DEBUG][       Thread-612340][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:37:28,350 [ INFO][       Thread-612340][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:37:28,353 [DEBUG][       Thread-612340][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:37:28,354 [DEBUG][       Thread-612340][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:37:28,354 [DEBUG][       Thread-612340][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:37:28,354 [DEBUG][       Thread-612340][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:37:28,354 [DEBUG][       Thread-612340][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:37:28,354 [DEBUG][       Thread-612340][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:37:28,354 [DEBUG][       Thread-612340][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:37:28,354 [DEBUG][       Thread-612340][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:37:28,354 [DEBUG][       Thread-612340][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:37:28,354 [DEBUG][       Thread-612340][   transport.py][1871] : client lang: <none>
2025-07-01 17:37:28,354 [DEBUG][       Thread-612340][   transport.py][1871] : server lang: <none>
2025-07-01 17:37:28,354 [DEBUG][       Thread-612340][   transport.py][1871] : kex follows: False
2025-07-01 17:37:28,354 [DEBUG][       Thread-612340][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:37:28,354 [DEBUG][       Thread-612340][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:37:28,354 [DEBUG][       Thread-612340][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:37:28,354 [DEBUG][       Thread-612340][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:37:28,354 [DEBUG][       Thread-612340][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:37:28,354 [DEBUG][       Thread-612340][   transport.py][1871] : Compression: none
2025-07-01 17:37:28,354 [DEBUG][       Thread-612340][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:37:28,370 [DEBUG][       Thread-612340][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:37:28,371 [DEBUG][       Thread-612340][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:37:28,371 [DEBUG][       Thread-612340][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:37:28,372 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:37:28,372 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:37:28,373 [DEBUG][       Thread-612340][   transport.py][1871] : userauth is OK
2025-07-01 17:37:28,387 [ INFO][       Thread-612340][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:37:28,387 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:37:29,036 [DEBUG][       Thread-612340][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:37:29,037 [DEBUG][       Thread-612340][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:37:29,081 [DEBUG][       Thread-612340][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:37:29,081 [DEBUG][       Thread-612340][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:37:29,085 [DEBUG][       Thread-612340][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:37:29,098 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:37:29,099 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:37:29,101 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:37:29,103 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:37:29,108 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:37:29,110 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:37:29,110 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:37:29,111 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:37:29,111 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.650632 -999.00  +12.50  25.12     53   +3.20 1 2 1 1 1   883    0 9.28 -7.14 ----- 30.8 25.1 349.0 34.0 13.2 -20.9 13.0 -20.6 12.8 -20.8 13.1 -20.8
2025-07-01 17:37:29,111 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:37:29,111 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:37:29,111 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.650632
2025-07-01 17:37:29,112 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:37:29,112 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:37:29,112 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:37:29,113 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:37:29,113 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:37:29,113 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:37:04', tmtdew=10.52, humidity=48.83, cloud=0.0, wind=36.7, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:36:54.605', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:37:29,114 [DEBUG][       Thread-612340][   transport.py][1871] : EOF in transport thread
2025-07-01 17:37:29,196 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:37:29,209 [DEBUG][       Thread-612343][   transport.py][1871] : starting thread (client mode): 0x8171480
2025-07-01 17:37:29,209 [DEBUG][       Thread-612343][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:37:29,226 [DEBUG][       Thread-612343][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:37:29,226 [ INFO][       Thread-612343][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:37:29,233 [DEBUG][       Thread-612343][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:37:29,234 [DEBUG][       Thread-612343][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:37:29,234 [DEBUG][       Thread-612343][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:37:29,234 [DEBUG][       Thread-612343][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:37:29,234 [DEBUG][       Thread-612343][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:37:29,234 [DEBUG][       Thread-612343][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:37:29,234 [DEBUG][       Thread-612343][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:37:29,234 [DEBUG][       Thread-612343][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:37:29,234 [DEBUG][       Thread-612343][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:37:29,234 [DEBUG][       Thread-612343][   transport.py][1871] : client lang: <none>
2025-07-01 17:37:29,234 [DEBUG][       Thread-612343][   transport.py][1871] : server lang: <none>
2025-07-01 17:37:29,234 [DEBUG][       Thread-612343][   transport.py][1871] : kex follows: False
2025-07-01 17:37:29,234 [DEBUG][       Thread-612343][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:37:29,234 [DEBUG][       Thread-612343][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:37:29,234 [DEBUG][       Thread-612343][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:37:29,234 [DEBUG][       Thread-612343][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:37:29,234 [DEBUG][       Thread-612343][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:37:29,235 [DEBUG][       Thread-612343][   transport.py][1871] : Compression: none
2025-07-01 17:37:29,235 [DEBUG][       Thread-612343][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:37:29,296 [DEBUG][       Thread-612343][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:37:29,297 [DEBUG][       Thread-612343][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:37:29,297 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:37:29,298 [DEBUG][       Thread-612343][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:37:29,299 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:37:29,356 [DEBUG][       Thread-612343][   transport.py][1871] : userauth is OK
2025-07-01 17:37:29,357 [DEBUG][       Thread-612343][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:37:29,357 [DEBUG][       Thread-612343][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:37:29,357 [DEBUG][       Thread-612343][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:37:29,357 [DEBUG][       Thread-612343][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:37:29,376 [ INFO][       Thread-612343][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:37:29,377 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:37:29,377 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:37:30,444 [DEBUG][       Thread-612343][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:37:30,445 [DEBUG][       Thread-612343][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:37:30,496 [DEBUG][       Thread-612343][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:37:30,496 [DEBUG][       Thread-612343][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:37:30,505 [DEBUG][       Thread-612343][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:37:30,514 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:37:30,514 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 17:37:30,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-07-01 17:37:30,532 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:37:30,532 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:37:30,533 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:37:30,541 [DEBUG][       Thread-612343][   transport.py][1871] : EOF in transport thread
2025-07-01 17:37:32,038 [DEBUG][Thread-612345 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:37:40,543 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:37:40,543 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:37:40,543 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:37:40,546 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:37:40,764 [DEBUG][Thread-612346 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:37:41,051 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 37, 36), 10.54, 48.78, 0.0, 36.68, 12.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:37:41,051 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:37:36
2025-07-01 17:37:41,057 [DEBUG][Thread-612347 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:37:41,136 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:37:41,140 [DEBUG][       Thread-612348][   transport.py][1871] : starting thread (client mode): 0x82b3d90
2025-07-01 17:37:41,140 [DEBUG][       Thread-612348][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:37:41,162 [DEBUG][       Thread-612348][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:37:41,162 [ INFO][       Thread-612348][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:37:41,165 [DEBUG][       Thread-612348][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:37:41,165 [DEBUG][       Thread-612348][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:37:41,165 [DEBUG][       Thread-612348][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:37:41,165 [DEBUG][       Thread-612348][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:37:41,165 [DEBUG][       Thread-612348][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:37:41,165 [DEBUG][       Thread-612348][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:37:41,165 [DEBUG][       Thread-612348][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:37:41,165 [DEBUG][       Thread-612348][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:37:41,165 [DEBUG][       Thread-612348][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:37:41,165 [DEBUG][       Thread-612348][   transport.py][1871] : client lang: <none>
2025-07-01 17:37:41,165 [DEBUG][       Thread-612348][   transport.py][1871] : server lang: <none>
2025-07-01 17:37:41,165 [DEBUG][       Thread-612348][   transport.py][1871] : kex follows: False
2025-07-01 17:37:41,165 [DEBUG][       Thread-612348][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:37:41,165 [DEBUG][       Thread-612348][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:37:41,165 [DEBUG][       Thread-612348][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:37:41,165 [DEBUG][       Thread-612348][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:37:41,165 [DEBUG][       Thread-612348][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:37:41,166 [DEBUG][       Thread-612348][   transport.py][1871] : Compression: none
2025-07-01 17:37:41,166 [DEBUG][       Thread-612348][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:37:41,183 [DEBUG][       Thread-612348][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:37:41,183 [DEBUG][       Thread-612348][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:37:41,184 [DEBUG][       Thread-612348][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:37:41,184 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:37:41,184 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:37:41,185 [DEBUG][       Thread-612348][   transport.py][1871] : userauth is OK
2025-07-01 17:37:41,211 [ INFO][       Thread-612348][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:37:41,211 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:37:41,848 [DEBUG][       Thread-612348][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:37:41,848 [DEBUG][       Thread-612348][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:37:41,893 [DEBUG][       Thread-612348][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:37:41,893 [DEBUG][       Thread-612348][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:37:41,896 [DEBUG][       Thread-612348][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:37:41,908 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:37:41,909 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:37:41,910 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:37:41,912 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:37:41,918 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:37:41,920 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:37:41,920 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:37:41,920 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:37:41,921 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.650632 -999.00  +12.50  25.12     53   +3.20 1 2 1 1 1   883    0 9.28 -7.14 ----- 30.8 25.1 349.0 34.0 13.2 -20.9 13.0 -20.6 12.8 -20.8 13.1 -20.8
2025-07-01 17:37:41,921 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:37:41,921 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:37:41,921 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.650632
2025-07-01 17:37:41,921 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:37:41,922 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:37:41,922 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:37:41,922 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:37:41,922 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:37:41,922 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:37:36', tmtdew=10.54, humidity=48.78, cloud=0.0, wind=36.68, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:36:54.605', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:37:41,923 [DEBUG][       Thread-612348][   transport.py][1871] : EOF in transport thread
2025-07-01 17:37:42,006 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:37:42,015 [DEBUG][       Thread-612351][   transport.py][1871] : starting thread (client mode): 0x818e8c0
2025-07-01 17:37:42,015 [DEBUG][       Thread-612351][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:37:42,030 [DEBUG][       Thread-612351][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:37:42,030 [ INFO][       Thread-612351][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:37:42,037 [DEBUG][       Thread-612351][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:37:42,037 [DEBUG][       Thread-612351][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:37:42,037 [DEBUG][       Thread-612351][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:37:42,037 [DEBUG][       Thread-612351][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:37:42,037 [DEBUG][       Thread-612351][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:37:42,037 [DEBUG][       Thread-612351][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:37:42,037 [DEBUG][       Thread-612351][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:37:42,037 [DEBUG][       Thread-612351][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:37:42,037 [DEBUG][       Thread-612351][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:37:42,037 [DEBUG][       Thread-612351][   transport.py][1871] : client lang: <none>
2025-07-01 17:37:42,038 [DEBUG][       Thread-612351][   transport.py][1871] : server lang: <none>
2025-07-01 17:37:42,038 [DEBUG][       Thread-612351][   transport.py][1871] : kex follows: False
2025-07-01 17:37:42,038 [DEBUG][       Thread-612351][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:37:42,038 [DEBUG][       Thread-612351][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:37:42,038 [DEBUG][       Thread-612351][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:37:42,038 [DEBUG][       Thread-612351][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:37:42,038 [DEBUG][       Thread-612351][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:37:42,038 [DEBUG][       Thread-612351][   transport.py][1871] : Compression: none
2025-07-01 17:37:42,038 [DEBUG][       Thread-612351][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:37:42,095 [DEBUG][       Thread-612351][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:37:42,095 [DEBUG][       Thread-612351][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:37:42,096 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:37:42,096 [DEBUG][       Thread-612351][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:37:42,097 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:37:42,151 [DEBUG][       Thread-612351][   transport.py][1871] : userauth is OK
2025-07-01 17:37:42,151 [DEBUG][       Thread-612351][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:37:42,151 [DEBUG][       Thread-612351][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:37:42,151 [DEBUG][       Thread-612351][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:37:42,151 [DEBUG][       Thread-612351][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:37:42,170 [ INFO][       Thread-612351][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:37:42,171 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:37:42,171 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:37:43,231 [DEBUG][       Thread-612351][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:37:43,231 [DEBUG][       Thread-612351][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:37:43,280 [DEBUG][       Thread-612351][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:37:43,280 [DEBUG][       Thread-612351][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:37:43,290 [DEBUG][       Thread-612351][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:37:43,299 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:37: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-07-01 17:37:43,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-07-01 17:37:43,317 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:37:43,317 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:37:43,318 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:37:43,326 [DEBUG][       Thread-612351][   transport.py][1871] : EOF in transport thread
2025-07-01 17:37:50,078 [DEBUG][Thread-612353 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:37:53,328 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:37:53,328 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:37:53,328 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:37:53,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-07-01 17:37:53,839 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 37, 36), 10.54, 48.78, 0.0, 36.68, 12.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:37:53,839 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:37:36
2025-07-01 17:37:53,930 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:37:53,936 [DEBUG][       Thread-612354][   transport.py][1871] : starting thread (client mode): 0x82b3a90
2025-07-01 17:37:53,936 [DEBUG][       Thread-612354][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:37:53,962 [DEBUG][       Thread-612354][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:37:53,962 [ INFO][       Thread-612354][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:37:53,966 [DEBUG][       Thread-612354][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:37:53,966 [DEBUG][       Thread-612354][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:37:53,966 [DEBUG][       Thread-612354][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:37:53,966 [DEBUG][       Thread-612354][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:37:53,966 [DEBUG][       Thread-612354][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:37:53,966 [DEBUG][       Thread-612354][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:37:53,966 [DEBUG][       Thread-612354][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:37:53,966 [DEBUG][       Thread-612354][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:37:53,966 [DEBUG][       Thread-612354][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:37:53,966 [DEBUG][       Thread-612354][   transport.py][1871] : client lang: <none>
2025-07-01 17:37:53,966 [DEBUG][       Thread-612354][   transport.py][1871] : server lang: <none>
2025-07-01 17:37:53,966 [DEBUG][       Thread-612354][   transport.py][1871] : kex follows: False
2025-07-01 17:37:53,966 [DEBUG][       Thread-612354][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:37:53,966 [DEBUG][       Thread-612354][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:37:53,966 [DEBUG][       Thread-612354][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:37:53,966 [DEBUG][       Thread-612354][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:37:53,966 [DEBUG][       Thread-612354][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:37:53,966 [DEBUG][       Thread-612354][   transport.py][1871] : Compression: none
2025-07-01 17:37:53,966 [DEBUG][       Thread-612354][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:37:53,981 [DEBUG][       Thread-612354][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:37:53,982 [DEBUG][       Thread-612354][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:37:53,982 [DEBUG][       Thread-612354][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:37:53,982 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:37:53,982 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:37:53,982 [DEBUG][       Thread-612354][   transport.py][1871] : userauth is OK
2025-07-01 17:37:54,006 [ INFO][       Thread-612354][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:37:54,007 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:37:54,603 [DEBUG][       Thread-612354][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:37:54,603 [DEBUG][       Thread-612354][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:37:54,644 [DEBUG][       Thread-612354][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:37:54,644 [DEBUG][       Thread-612354][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:37:54,647 [DEBUG][       Thread-612354][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:37:54,660 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:37:54,660 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:37:54,661 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:37:54,662 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:37:54,665 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:37:54,666 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:37:54,666 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:37:54,666 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:37:54,666 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.650632 -999.00  +12.50  25.12     53   +3.20 1 2 1 1 1   883    0 9.28 -7.14 ----- 30.8 25.1 349.0 34.0 13.2 -20.9 13.0 -20.6 12.8 -20.8 13.1 -20.8
2025-07-01 17:37:54,666 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:37:54,666 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:37:54,666 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.650632
2025-07-01 17:37:54,667 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:37:54,667 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:37:54,667 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:37:54,667 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:37:54,667 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:37:54,667 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:37:36', tmtdew=10.54, humidity=48.78, cloud=0.0, wind=36.68, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:36:54.605', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:37:54,667 [DEBUG][       Thread-612354][   transport.py][1871] : EOF in transport thread
2025-07-01 17:37:54,741 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:37:54,753 [DEBUG][       Thread-612357][   transport.py][1871] : starting thread (client mode): 0x81c9540
2025-07-01 17:37:54,753 [DEBUG][       Thread-612357][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:37:54,768 [DEBUG][       Thread-612357][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:37:54,768 [ INFO][       Thread-612357][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:37:54,776 [DEBUG][       Thread-612357][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:37:54,776 [DEBUG][       Thread-612357][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:37:54,776 [DEBUG][       Thread-612357][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:37:54,776 [DEBUG][       Thread-612357][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:37:54,776 [DEBUG][       Thread-612357][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:37:54,776 [DEBUG][       Thread-612357][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:37:54,776 [DEBUG][       Thread-612357][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:37:54,776 [DEBUG][       Thread-612357][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:37:54,776 [DEBUG][       Thread-612357][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:37:54,776 [DEBUG][       Thread-612357][   transport.py][1871] : client lang: <none>
2025-07-01 17:37:54,776 [DEBUG][       Thread-612357][   transport.py][1871] : server lang: <none>
2025-07-01 17:37:54,776 [DEBUG][       Thread-612357][   transport.py][1871] : kex follows: False
2025-07-01 17:37:54,776 [DEBUG][       Thread-612357][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:37:54,776 [DEBUG][       Thread-612357][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:37:54,776 [DEBUG][       Thread-612357][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:37:54,776 [DEBUG][       Thread-612357][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:37:54,776 [DEBUG][       Thread-612357][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:37:54,776 [DEBUG][       Thread-612357][   transport.py][1871] : Compression: none
2025-07-01 17:37:54,776 [DEBUG][       Thread-612357][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:37:54,833 [DEBUG][       Thread-612357][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:37:54,833 [DEBUG][       Thread-612357][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:37:54,834 [DEBUG][       Thread-612357][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:37:54,834 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:37:54,834 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:37:54,890 [DEBUG][       Thread-612357][   transport.py][1871] : userauth is OK
2025-07-01 17:37:54,890 [DEBUG][       Thread-612357][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:37:54,890 [DEBUG][       Thread-612357][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:37:54,890 [DEBUG][       Thread-612357][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:37:54,890 [DEBUG][       Thread-612357][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:37:54,905 [ INFO][       Thread-612357][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:37:54,905 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:37:54,905 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:37:55,926 [DEBUG][       Thread-612357][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:37:55,926 [DEBUG][       Thread-612357][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:37:55,976 [DEBUG][       Thread-612357][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:37:55,976 [DEBUG][       Thread-612357][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:37:55,985 [DEBUG][       Thread-612357][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:37:55,993 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:37:55,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-07-01 17:37:56,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-07-01 17:37:56,009 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:37:56,009 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:37:56,009 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:37:56,017 [DEBUG][       Thread-612357][   transport.py][1871] : EOF in transport thread
2025-07-01 17:37:59,107 [DEBUG][Thread-612359 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:38:06,019 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:38:06,020 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:38:06,020 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:38:06,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-07-01 17:38:06,514 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 37, 36), 10.54, 48.78, 0.0, 36.68, 12.61, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:38:06,514 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:37:36
2025-07-01 17:38:06,601 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:38:06,605 [DEBUG][       Thread-612360][   transport.py][1871] : starting thread (client mode): 0x82b35b0
2025-07-01 17:38:06,605 [DEBUG][       Thread-612360][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:38:06,627 [DEBUG][       Thread-612360][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:38:06,627 [ INFO][       Thread-612360][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:38:06,630 [DEBUG][       Thread-612360][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:38:06,631 [DEBUG][       Thread-612360][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:38:06,631 [DEBUG][       Thread-612360][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:38:06,631 [DEBUG][       Thread-612360][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:38:06,631 [DEBUG][       Thread-612360][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:38:06,631 [DEBUG][       Thread-612360][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:38:06,631 [DEBUG][       Thread-612360][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:38:06,631 [DEBUG][       Thread-612360][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:38:06,631 [DEBUG][       Thread-612360][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:38:06,631 [DEBUG][       Thread-612360][   transport.py][1871] : client lang: <none>
2025-07-01 17:38:06,631 [DEBUG][       Thread-612360][   transport.py][1871] : server lang: <none>
2025-07-01 17:38:06,631 [DEBUG][       Thread-612360][   transport.py][1871] : kex follows: False
2025-07-01 17:38:06,631 [DEBUG][       Thread-612360][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:38:06,631 [DEBUG][       Thread-612360][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:38:06,631 [DEBUG][       Thread-612360][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:38:06,631 [DEBUG][       Thread-612360][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:38:06,631 [DEBUG][       Thread-612360][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:38:06,631 [DEBUG][       Thread-612360][   transport.py][1871] : Compression: none
2025-07-01 17:38:06,631 [DEBUG][       Thread-612360][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:38:06,648 [DEBUG][       Thread-612360][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:38:06,649 [DEBUG][       Thread-612360][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:38:06,649 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:38:06,649 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:38:06,650 [DEBUG][       Thread-612360][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:38:06,651 [DEBUG][       Thread-612360][   transport.py][1871] : userauth is OK
2025-07-01 17:38:06,676 [ INFO][       Thread-612360][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:38:06,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:38:07,327 [DEBUG][       Thread-612360][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:38:07,327 [DEBUG][       Thread-612360][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:38:07,369 [DEBUG][       Thread-612360][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:38:07,369 [DEBUG][       Thread-612360][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:38:07,373 [DEBUG][       Thread-612360][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:38:07,386 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:38:07,387 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:38:07,389 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:38:07,391 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:38:07,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:38:07,398 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:38:07,398 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:38:07,399 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:38:07,399 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.650979 -999.00  +12.50  29.68     53   +3.20 1 2 1 1 1   882    0 9.09 -8.48 ----- 30.4 29.7 11.5 48.7 13.2 -21.1 13.0 -20.8 12.8 -21.0 13.1 -21.0
2025-07-01 17:38:07,399 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:38:07,399 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:38:07,399 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.650979
2025-07-01 17:38:07,400 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:38:07,400 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:38:07,400 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:38:07,401 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:38:07,401 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:38:07,401 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:37:36', tmtdew=10.54, humidity=48.78, cloud=0.0, wind=36.68, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:37:24.586', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:38:07,401 [DEBUG][       Thread-612360][   transport.py][1871] : EOF in transport thread
2025-07-01 17:38:07,484 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:38:07,494 [DEBUG][       Thread-612363][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 17:38:07,494 [DEBUG][       Thread-612363][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:38:07,509 [DEBUG][       Thread-612363][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:38:07,510 [ INFO][       Thread-612363][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:38:07,517 [DEBUG][       Thread-612363][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:38:07,517 [DEBUG][       Thread-612363][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:38:07,517 [DEBUG][       Thread-612363][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:38:07,517 [DEBUG][       Thread-612363][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:38:07,517 [DEBUG][       Thread-612363][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:38:07,518 [DEBUG][       Thread-612363][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:38:07,518 [DEBUG][       Thread-612363][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:38:07,518 [DEBUG][       Thread-612363][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:38:07,518 [DEBUG][       Thread-612363][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:38:07,518 [DEBUG][       Thread-612363][   transport.py][1871] : client lang: <none>
2025-07-01 17:38:07,518 [DEBUG][       Thread-612363][   transport.py][1871] : server lang: <none>
2025-07-01 17:38:07,518 [DEBUG][       Thread-612363][   transport.py][1871] : kex follows: False
2025-07-01 17:38:07,518 [DEBUG][       Thread-612363][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:38:07,518 [DEBUG][       Thread-612363][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:38:07,518 [DEBUG][       Thread-612363][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:38:07,518 [DEBUG][       Thread-612363][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:38:07,518 [DEBUG][       Thread-612363][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:38:07,518 [DEBUG][       Thread-612363][   transport.py][1871] : Compression: none
2025-07-01 17:38:07,518 [DEBUG][       Thread-612363][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:38:07,576 [DEBUG][       Thread-612363][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:38:07,576 [DEBUG][       Thread-612363][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:38:07,577 [DEBUG][       Thread-612363][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:38:07,577 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:38:07,578 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:38:07,635 [DEBUG][       Thread-612363][   transport.py][1871] : userauth is OK
2025-07-01 17:38:07,636 [DEBUG][       Thread-612363][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:38:07,636 [DEBUG][       Thread-612363][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:38:07,636 [DEBUG][       Thread-612363][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:38:07,636 [DEBUG][       Thread-612363][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:38:07,659 [ INFO][       Thread-612363][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:38:07,659 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:38:07,659 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:38:08,127 [DEBUG][Thread-612365 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:38:08,719 [DEBUG][       Thread-612363][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:38:08,719 [DEBUG][       Thread-612363][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:38:08,767 [DEBUG][       Thread-612363][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:38:08,767 [DEBUG][       Thread-612363][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:38:08,776 [DEBUG][       Thread-612363][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:38:08,784 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:38:08,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-07-01 17:38:08,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-07-01 17:38:08,800 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:38:08,800 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:38:08,800 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:38:08,808 [DEBUG][       Thread-612363][   transport.py][1871] : EOF in transport thread
2025-07-01 17:38:17,148 [DEBUG][Thread-612366 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:38:18,811 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:38:18,811 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:38:18,811 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:38:18,814 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:38:19,313 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 38, 7), 10.55, 48.75, 0.0, 41.34, 12.59, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:38:19,313 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:38:07
2025-07-01 17:38:19,399 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:38:19,406 [DEBUG][       Thread-612367][   transport.py][1871] : starting thread (client mode): 0x818c040
2025-07-01 17:38:19,406 [DEBUG][       Thread-612367][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:38:19,425 [DEBUG][       Thread-612367][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:38:19,425 [ INFO][       Thread-612367][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:38:19,427 [DEBUG][       Thread-612367][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:38:19,427 [DEBUG][       Thread-612367][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:38:19,427 [DEBUG][       Thread-612367][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:38:19,427 [DEBUG][       Thread-612367][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:38:19,427 [DEBUG][       Thread-612367][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:38:19,427 [DEBUG][       Thread-612367][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:38:19,427 [DEBUG][       Thread-612367][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:38:19,427 [DEBUG][       Thread-612367][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:38:19,427 [DEBUG][       Thread-612367][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:38:19,427 [DEBUG][       Thread-612367][   transport.py][1871] : client lang: <none>
2025-07-01 17:38:19,427 [DEBUG][       Thread-612367][   transport.py][1871] : server lang: <none>
2025-07-01 17:38:19,427 [DEBUG][       Thread-612367][   transport.py][1871] : kex follows: False
2025-07-01 17:38:19,427 [DEBUG][       Thread-612367][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:38:19,427 [DEBUG][       Thread-612367][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:38:19,427 [DEBUG][       Thread-612367][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:38:19,427 [DEBUG][       Thread-612367][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:38:19,427 [DEBUG][       Thread-612367][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:38:19,427 [DEBUG][       Thread-612367][   transport.py][1871] : Compression: none
2025-07-01 17:38:19,427 [DEBUG][       Thread-612367][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:38:19,435 [DEBUG][       Thread-612367][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:38:19,436 [DEBUG][       Thread-612367][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:38:19,436 [DEBUG][       Thread-612367][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:38:19,436 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:38:19,436 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:38:19,437 [DEBUG][       Thread-612367][   transport.py][1871] : userauth is OK
2025-07-01 17:38:19,450 [ INFO][       Thread-612367][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:38:19,451 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:38:20,098 [DEBUG][       Thread-612367][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:38:20,098 [DEBUG][       Thread-612367][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:38:20,141 [DEBUG][       Thread-612367][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:38:20,141 [DEBUG][       Thread-612367][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:38:20,145 [DEBUG][       Thread-612367][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:38:20,159 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:38:20,159 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:38:20,161 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:38:20,163 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:38:20,168 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:38:20,170 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:38:20,170 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:38:20,171 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:38:20,171 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.650979 -999.00  +12.50  29.68     53   +3.20 1 2 1 1 1   882    0 9.09 -8.48 ----- 30.4 29.7 11.5 48.7 13.2 -21.1 13.0 -20.8 12.8 -21.0 13.1 -21.0
2025-07-01 17:38:20,171 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:38:20,171 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:38:20,171 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.650979
2025-07-01 17:38:20,172 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:38:20,172 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:38:20,172 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:38:20,172 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:38:20,172 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:38:20,173 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:38:07', tmtdew=10.55, humidity=48.75, cloud=0.0, wind=41.34, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:37:24.586', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:38:20,174 [DEBUG][       Thread-612367][   transport.py][1871] : EOF in transport thread
2025-07-01 17:38:20,246 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:38:20,259 [DEBUG][       Thread-612370][   transport.py][1871] : starting thread (client mode): 0x81736d0
2025-07-01 17:38:20,259 [DEBUG][       Thread-612370][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:38:20,277 [DEBUG][       Thread-612370][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:38:20,278 [ INFO][       Thread-612370][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:38:20,285 [DEBUG][       Thread-612370][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:38:20,285 [DEBUG][       Thread-612370][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:38:20,286 [DEBUG][       Thread-612370][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:38:20,286 [DEBUG][       Thread-612370][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:38:20,286 [DEBUG][       Thread-612370][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:38:20,286 [DEBUG][       Thread-612370][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:38:20,286 [DEBUG][       Thread-612370][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:38:20,286 [DEBUG][       Thread-612370][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:38:20,286 [DEBUG][       Thread-612370][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:38:20,286 [DEBUG][       Thread-612370][   transport.py][1871] : client lang: <none>
2025-07-01 17:38:20,286 [DEBUG][       Thread-612370][   transport.py][1871] : server lang: <none>
2025-07-01 17:38:20,286 [DEBUG][       Thread-612370][   transport.py][1871] : kex follows: False
2025-07-01 17:38:20,286 [DEBUG][       Thread-612370][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:38:20,286 [DEBUG][       Thread-612370][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:38:20,286 [DEBUG][       Thread-612370][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:38:20,286 [DEBUG][       Thread-612370][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:38:20,286 [DEBUG][       Thread-612370][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:38:20,286 [DEBUG][       Thread-612370][   transport.py][1871] : Compression: none
2025-07-01 17:38:20,286 [DEBUG][       Thread-612370][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:38:20,349 [DEBUG][       Thread-612370][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:38:20,350 [DEBUG][       Thread-612370][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:38:20,351 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:38:20,351 [DEBUG][       Thread-612370][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:38:20,352 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:38:20,407 [DEBUG][       Thread-612370][   transport.py][1871] : userauth is OK
2025-07-01 17:38:20,408 [DEBUG][       Thread-612370][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:38:20,408 [DEBUG][       Thread-612370][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:38:20,408 [DEBUG][       Thread-612370][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:38:20,408 [DEBUG][       Thread-612370][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:38:20,427 [ INFO][       Thread-612370][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:38:20,428 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:38:20,428 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:38:21,444 [DEBUG][       Thread-612370][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:38:21,445 [DEBUG][       Thread-612370][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:38:21,496 [DEBUG][       Thread-612370][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:38:21,496 [DEBUG][       Thread-612370][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:38:21,506 [DEBUG][       Thread-612370][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:38:21,516 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:38:21,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')
2025-07-01 17:38:21,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') -> 00000000
2025-07-01 17:38:21,534 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:38:21,534 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:38:21,535 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:38:21,543 [DEBUG][       Thread-612370][   transport.py][1871] : EOF in transport thread
2025-07-01 17:38:26,173 [DEBUG][Thread-612372 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:38:31,536 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:38:31,536 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:38:31,536 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:38:31,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-07-01 17:38:32,031 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 38, 7), 10.55, 48.75, 0.0, 41.34, 12.59, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:38:32,031 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:38:07
2025-07-01 17:38:32,118 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:38:32,122 [DEBUG][       Thread-612373][   transport.py][1871] : starting thread (client mode): 0x82b36a0
2025-07-01 17:38:32,123 [DEBUG][       Thread-612373][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:38:32,142 [DEBUG][       Thread-612373][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:38:32,142 [ INFO][       Thread-612373][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:38:32,146 [DEBUG][       Thread-612373][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:38:32,146 [DEBUG][       Thread-612373][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:38:32,146 [DEBUG][       Thread-612373][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:38:32,146 [DEBUG][       Thread-612373][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:38:32,146 [DEBUG][       Thread-612373][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:38:32,146 [DEBUG][       Thread-612373][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:38:32,146 [DEBUG][       Thread-612373][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:38:32,146 [DEBUG][       Thread-612373][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:38:32,146 [DEBUG][       Thread-612373][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:38:32,146 [DEBUG][       Thread-612373][   transport.py][1871] : client lang: <none>
2025-07-01 17:38:32,146 [DEBUG][       Thread-612373][   transport.py][1871] : server lang: <none>
2025-07-01 17:38:32,146 [DEBUG][       Thread-612373][   transport.py][1871] : kex follows: False
2025-07-01 17:38:32,146 [DEBUG][       Thread-612373][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:38:32,146 [DEBUG][       Thread-612373][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:38:32,146 [DEBUG][       Thread-612373][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:38:32,146 [DEBUG][       Thread-612373][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:38:32,146 [DEBUG][       Thread-612373][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:38:32,146 [DEBUG][       Thread-612373][   transport.py][1871] : Compression: none
2025-07-01 17:38:32,146 [DEBUG][       Thread-612373][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:38:32,162 [DEBUG][       Thread-612373][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:38:32,163 [DEBUG][       Thread-612373][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:38:32,163 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:38:32,163 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:38:32,164 [DEBUG][       Thread-612373][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:38:32,165 [DEBUG][       Thread-612373][   transport.py][1871] : userauth is OK
2025-07-01 17:38:32,190 [ INFO][       Thread-612373][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:38:32,191 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:38:32,853 [DEBUG][       Thread-612373][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:38:32,853 [DEBUG][       Thread-612373][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:38:32,896 [DEBUG][       Thread-612373][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:38:32,896 [DEBUG][       Thread-612373][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:38:32,899 [DEBUG][       Thread-612373][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:38:32,904 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:38:32,904 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:38:32,905 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:38:32,905 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:38:32,908 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:38:32,909 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:38:32,909 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:38:32,909 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:38:32,909 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.651673 -999.00  +12.40  31.81     53   +3.20 1 2 2 1 1   881    0 9.04 -10.61 ----- 30.5 31.8 357.1 46.3 13.1 -21.3 12.9 -21.2 12.7 -21.5 13.1 -21.1
2025-07-01 17:38:32,909 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:38:32,909 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:38:32,909 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.651673
2025-07-01 17:38:32,909 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:38:32,909 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:38:32,909 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:38:32,909 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:38:32,909 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:38:32,909 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:38:07', tmtdew=10.55, humidity=48.75, cloud=0.0, wind=41.34, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:38:24.547', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:38:32,909 [DEBUG][       Thread-612373][   transport.py][1871] : EOF in transport thread
2025-07-01 17:38:32,981 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:38:32,998 [DEBUG][       Thread-612376][   transport.py][1871] : starting thread (client mode): 0x81e47c0
2025-07-01 17:38:32,998 [DEBUG][       Thread-612376][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:38:33,014 [DEBUG][       Thread-612376][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:38:33,014 [ INFO][       Thread-612376][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:38:33,021 [DEBUG][       Thread-612376][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:38:33,021 [DEBUG][       Thread-612376][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:38:33,021 [DEBUG][       Thread-612376][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:38:33,021 [DEBUG][       Thread-612376][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:38:33,021 [DEBUG][       Thread-612376][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:38:33,021 [DEBUG][       Thread-612376][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:38:33,021 [DEBUG][       Thread-612376][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:38:33,021 [DEBUG][       Thread-612376][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:38:33,021 [DEBUG][       Thread-612376][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:38:33,021 [DEBUG][       Thread-612376][   transport.py][1871] : client lang: <none>
2025-07-01 17:38:33,021 [DEBUG][       Thread-612376][   transport.py][1871] : server lang: <none>
2025-07-01 17:38:33,021 [DEBUG][       Thread-612376][   transport.py][1871] : kex follows: False
2025-07-01 17:38:33,021 [DEBUG][       Thread-612376][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:38:33,021 [DEBUG][       Thread-612376][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:38:33,021 [DEBUG][       Thread-612376][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:38:33,021 [DEBUG][       Thread-612376][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:38:33,021 [DEBUG][       Thread-612376][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:38:33,021 [DEBUG][       Thread-612376][   transport.py][1871] : Compression: none
2025-07-01 17:38:33,021 [DEBUG][       Thread-612376][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:38:33,077 [DEBUG][       Thread-612376][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:38:33,077 [DEBUG][       Thread-612376][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:38:33,078 [DEBUG][       Thread-612376][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:38:33,078 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:38:33,078 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:38:33,136 [DEBUG][       Thread-612376][   transport.py][1871] : userauth is OK
2025-07-01 17:38:33,136 [DEBUG][       Thread-612376][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:38:33,136 [DEBUG][       Thread-612376][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:38:33,136 [DEBUG][       Thread-612376][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:38:33,136 [DEBUG][       Thread-612376][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:38:33,151 [ INFO][       Thread-612376][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:38:33,151 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:38:33,151 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:38:34,239 [DEBUG][       Thread-612376][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:38:34,239 [DEBUG][       Thread-612376][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:38:34,287 [DEBUG][       Thread-612376][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:38:34,287 [DEBUG][       Thread-612376][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:38:34,295 [DEBUG][       Thread-612376][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:38:34,303 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:38:34,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')
2025-07-01 17:38:34,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-07-01 17:38:34,319 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:38:34,319 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:38:34,319 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:38:34,327 [DEBUG][       Thread-612376][   transport.py][1871] : EOF in transport thread
2025-07-01 17:38:35,213 [DEBUG][Thread-612378 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:38:40,814 [DEBUG][Thread-612379 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:38:44,233 [DEBUG][Thread-612380 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:38:44,330 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:38:44,330 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:38:44,330 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:38:44,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-07-01 17:38:44,820 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 38, 39), 10.56, 48.7, 0.0, 39.4, 12.64, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:38:44,820 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:38:39
2025-07-01 17:38:44,906 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:38:44,910 [DEBUG][       Thread-612381][   transport.py][1871] : starting thread (client mode): 0x81e4310
2025-07-01 17:38:44,910 [DEBUG][       Thread-612381][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:38:44,930 [DEBUG][       Thread-612381][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:38:44,930 [ INFO][       Thread-612381][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:38:44,934 [DEBUG][       Thread-612381][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:38:44,934 [DEBUG][       Thread-612381][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:38:44,934 [DEBUG][       Thread-612381][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:38:44,934 [DEBUG][       Thread-612381][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:38:44,934 [DEBUG][       Thread-612381][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:38:44,934 [DEBUG][       Thread-612381][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:38:44,934 [DEBUG][       Thread-612381][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:38:44,934 [DEBUG][       Thread-612381][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:38:44,934 [DEBUG][       Thread-612381][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:38:44,934 [DEBUG][       Thread-612381][   transport.py][1871] : client lang: <none>
2025-07-01 17:38:44,934 [DEBUG][       Thread-612381][   transport.py][1871] : server lang: <none>
2025-07-01 17:38:44,934 [DEBUG][       Thread-612381][   transport.py][1871] : kex follows: False
2025-07-01 17:38:44,934 [DEBUG][       Thread-612381][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:38:44,934 [DEBUG][       Thread-612381][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:38:44,934 [DEBUG][       Thread-612381][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:38:44,934 [DEBUG][       Thread-612381][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:38:44,934 [DEBUG][       Thread-612381][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:38:44,934 [DEBUG][       Thread-612381][   transport.py][1871] : Compression: none
2025-07-01 17:38:44,935 [DEBUG][       Thread-612381][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:38:44,949 [DEBUG][       Thread-612381][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:38:44,950 [DEBUG][       Thread-612381][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:38:44,950 [DEBUG][       Thread-612381][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:38:44,951 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:38:44,951 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:38:44,952 [DEBUG][       Thread-612381][   transport.py][1871] : userauth is OK
2025-07-01 17:38:44,977 [ INFO][       Thread-612381][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:38:44,978 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:38:45,626 [DEBUG][       Thread-612381][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:38:45,627 [DEBUG][       Thread-612381][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:38:45,669 [DEBUG][       Thread-612381][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:38:45,669 [DEBUG][       Thread-612381][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:38:45,673 [DEBUG][       Thread-612381][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:38:45,686 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:38:45,686 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:38:45,688 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:38:45,690 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:38:45,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:38:45,698 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:38:45,698 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:38:45,699 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:38:45,699 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.651673 -999.00  +12.40  31.81     53   +3.20 1 2 2 1 1   881    0 9.04 -10.61 ----- 30.5 31.8 357.1 46.3 13.1 -21.3 12.9 -21.2 12.7 -21.5 13.1 -21.1
2025-07-01 17:38:45,699 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:38:45,699 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:38:45,699 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.651673
2025-07-01 17:38:45,699 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:38:45,700 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:38:45,700 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:38:45,700 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:38:45,700 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:38:45,700 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:38:39', tmtdew=10.56, humidity=48.7, cloud=0.0, wind=39.4, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:38:24.547', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:38:45,701 [DEBUG][       Thread-612381][   transport.py][1871] : EOF in transport thread
2025-07-01 17:38:45,785 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:38:45,795 [DEBUG][       Thread-612384][   transport.py][1871] : starting thread (client mode): 0x81a4730
2025-07-01 17:38:45,795 [DEBUG][       Thread-612384][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:38:45,815 [DEBUG][       Thread-612384][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:38:45,815 [ INFO][       Thread-612384][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:38:45,823 [DEBUG][       Thread-612384][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:38:45,823 [DEBUG][       Thread-612384][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:38:45,823 [DEBUG][       Thread-612384][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:38:45,823 [DEBUG][       Thread-612384][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:38:45,823 [DEBUG][       Thread-612384][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:38:45,823 [DEBUG][       Thread-612384][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:38:45,823 [DEBUG][       Thread-612384][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:38:45,823 [DEBUG][       Thread-612384][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:38:45,823 [DEBUG][       Thread-612384][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:38:45,823 [DEBUG][       Thread-612384][   transport.py][1871] : client lang: <none>
2025-07-01 17:38:45,823 [DEBUG][       Thread-612384][   transport.py][1871] : server lang: <none>
2025-07-01 17:38:45,823 [DEBUG][       Thread-612384][   transport.py][1871] : kex follows: False
2025-07-01 17:38:45,823 [DEBUG][       Thread-612384][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:38:45,823 [DEBUG][       Thread-612384][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:38:45,823 [DEBUG][       Thread-612384][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:38:45,823 [DEBUG][       Thread-612384][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:38:45,823 [DEBUG][       Thread-612384][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:38:45,823 [DEBUG][       Thread-612384][   transport.py][1871] : Compression: none
2025-07-01 17:38:45,823 [DEBUG][       Thread-612384][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:38:45,887 [DEBUG][       Thread-612384][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:38:45,888 [DEBUG][       Thread-612384][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:38:45,888 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:38:45,889 [DEBUG][       Thread-612384][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:38:45,890 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:38:45,944 [DEBUG][       Thread-612384][   transport.py][1871] : userauth is OK
2025-07-01 17:38:45,944 [DEBUG][       Thread-612384][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:38:45,945 [DEBUG][       Thread-612384][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:38:45,945 [DEBUG][       Thread-612384][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:38:45,945 [DEBUG][       Thread-612384][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:38:45,964 [ INFO][       Thread-612384][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:38:45,964 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:38:45,965 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:38:46,994 [DEBUG][       Thread-612384][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:38:46,994 [DEBUG][       Thread-612384][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:38:47,045 [DEBUG][       Thread-612384][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:38:47,045 [DEBUG][       Thread-612384][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:38:47,054 [DEBUG][       Thread-612384][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:38:47,067 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:38:47,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-07-01 17:38:47,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-07-01 17:38:47,086 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:38:47,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:38:47,086 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:38:47,094 [DEBUG][       Thread-612384][   transport.py][1871] : EOF in transport thread
2025-07-01 17:38:53,255 [DEBUG][Thread-612386 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:38:57,097 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:38:57,097 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:38:57,097 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:38:57,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-07-01 17:38:57,596 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 38, 39), 10.56, 48.7, 0.0, 39.4, 12.64, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:38:57,596 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:38:39
2025-07-01 17:38:57,682 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:38:57,687 [DEBUG][       Thread-612387][   transport.py][1871] : starting thread (client mode): 0x818cd60
2025-07-01 17:38:57,687 [DEBUG][       Thread-612387][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:38:57,706 [DEBUG][       Thread-612387][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:38:57,706 [ INFO][       Thread-612387][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:38:57,710 [DEBUG][       Thread-612387][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:38:57,710 [DEBUG][       Thread-612387][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:38:57,710 [DEBUG][       Thread-612387][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:38:57,710 [DEBUG][       Thread-612387][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:38:57,710 [DEBUG][       Thread-612387][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:38:57,710 [DEBUG][       Thread-612387][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:38:57,710 [DEBUG][       Thread-612387][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:38:57,710 [DEBUG][       Thread-612387][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:38:57,710 [DEBUG][       Thread-612387][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:38:57,710 [DEBUG][       Thread-612387][   transport.py][1871] : client lang: <none>
2025-07-01 17:38:57,710 [DEBUG][       Thread-612387][   transport.py][1871] : server lang: <none>
2025-07-01 17:38:57,710 [DEBUG][       Thread-612387][   transport.py][1871] : kex follows: False
2025-07-01 17:38:57,710 [DEBUG][       Thread-612387][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:38:57,710 [DEBUG][       Thread-612387][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:38:57,710 [DEBUG][       Thread-612387][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:38:57,710 [DEBUG][       Thread-612387][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:38:57,710 [DEBUG][       Thread-612387][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:38:57,710 [DEBUG][       Thread-612387][   transport.py][1871] : Compression: none
2025-07-01 17:38:57,710 [DEBUG][       Thread-612387][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:38:57,726 [DEBUG][       Thread-612387][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:38:57,726 [DEBUG][       Thread-612387][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:38:57,727 [DEBUG][       Thread-612387][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:38:57,727 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:38:57,727 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:38:57,728 [DEBUG][       Thread-612387][   transport.py][1871] : userauth is OK
2025-07-01 17:38:57,753 [ INFO][       Thread-612387][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:38:57,754 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:38:58,397 [DEBUG][       Thread-612387][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:38:58,398 [DEBUG][       Thread-612387][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:38:58,441 [DEBUG][       Thread-612387][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:38:58,441 [DEBUG][       Thread-612387][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:38:58,445 [DEBUG][       Thread-612387][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:38:58,456 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:38:58,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:38:58,459 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:38:58,460 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:38:58,466 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:38:58,468 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:38:58,468 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:38:58,469 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:38:58,469 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.651673 -999.00  +12.40  31.81     53   +3.20 1 2 2 1 1   881    0 9.04 -10.61 ----- 30.5 31.8 357.1 46.3 13.1 -21.3 12.9 -21.2 12.7 -21.5 13.1 -21.1
2025-07-01 17:38:58,469 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:38:58,469 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:38:58,469 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.651673
2025-07-01 17:38:58,470 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:38:58,470 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:38:58,470 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:38:58,470 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:38:58,470 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:38:58,471 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:38:39', tmtdew=10.56, humidity=48.7, cloud=0.0, wind=39.4, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:38:24.547', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:38:58,472 [DEBUG][       Thread-612387][   transport.py][1871] : EOF in transport thread
2025-07-01 17:38:58,554 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:38:58,566 [DEBUG][       Thread-612390][   transport.py][1871] : starting thread (client mode): 0x81c9ab0
2025-07-01 17:38:58,566 [DEBUG][       Thread-612390][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:38:58,581 [DEBUG][       Thread-612390][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:38:58,581 [ INFO][       Thread-612390][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:38:58,589 [DEBUG][       Thread-612390][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:38:58,589 [DEBUG][       Thread-612390][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:38:58,589 [DEBUG][       Thread-612390][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:38:58,589 [DEBUG][       Thread-612390][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:38:58,589 [DEBUG][       Thread-612390][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:38:58,589 [DEBUG][       Thread-612390][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:38:58,589 [DEBUG][       Thread-612390][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:38:58,589 [DEBUG][       Thread-612390][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:38:58,589 [DEBUG][       Thread-612390][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:38:58,589 [DEBUG][       Thread-612390][   transport.py][1871] : client lang: <none>
2025-07-01 17:38:58,589 [DEBUG][       Thread-612390][   transport.py][1871] : server lang: <none>
2025-07-01 17:38:58,589 [DEBUG][       Thread-612390][   transport.py][1871] : kex follows: False
2025-07-01 17:38:58,589 [DEBUG][       Thread-612390][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:38:58,589 [DEBUG][       Thread-612390][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:38:58,589 [DEBUG][       Thread-612390][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:38:58,589 [DEBUG][       Thread-612390][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:38:58,590 [DEBUG][       Thread-612390][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:38:58,590 [DEBUG][       Thread-612390][   transport.py][1871] : Compression: none
2025-07-01 17:38:58,590 [DEBUG][       Thread-612390][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:38:58,648 [DEBUG][       Thread-612390][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:38:58,648 [DEBUG][       Thread-612390][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:38:58,649 [DEBUG][       Thread-612390][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:38:58,649 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:38:58,650 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:38:58,704 [DEBUG][       Thread-612390][   transport.py][1871] : userauth is OK
2025-07-01 17:38:58,705 [DEBUG][       Thread-612390][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:38:58,705 [DEBUG][       Thread-612390][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:38:58,705 [DEBUG][       Thread-612390][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:38:58,705 [DEBUG][       Thread-612390][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:38:58,727 [ INFO][       Thread-612390][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:38:58,727 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:38:58,728 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:38:59,748 [DEBUG][       Thread-612390][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:38:59,748 [DEBUG][       Thread-612390][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:38:59,796 [DEBUG][       Thread-612390][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:38:59,796 [DEBUG][       Thread-612390][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:38:59,806 [DEBUG][       Thread-612390][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:38:59,815 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:38:59,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-07-01 17:38:59,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-07-01 17:38:59,842 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:38:59,842 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:38:59,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:38:59,851 [DEBUG][       Thread-612390][   transport.py][1871] : EOF in transport thread
2025-07-01 17:39:02,289 [DEBUG][Thread-612392 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:39:09,849 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:39:09,850 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:39:09,850 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:39:09,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-07-01 17:39:10,351 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 38, 39), 10.56, 48.7, 0.0, 39.4, 12.64, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:39:10,351 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:38:39
2025-07-01 17:39:10,438 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:39:10,442 [DEBUG][       Thread-612393][   transport.py][1871] : starting thread (client mode): 0x818d0c0
2025-07-01 17:39:10,442 [DEBUG][       Thread-612393][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:39:10,462 [DEBUG][       Thread-612393][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:39:10,462 [ INFO][       Thread-612393][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:39:10,465 [DEBUG][       Thread-612393][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:39:10,465 [DEBUG][       Thread-612393][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:39:10,465 [DEBUG][       Thread-612393][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:39:10,465 [DEBUG][       Thread-612393][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:39:10,465 [DEBUG][       Thread-612393][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:39:10,465 [DEBUG][       Thread-612393][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:39:10,465 [DEBUG][       Thread-612393][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:39:10,465 [DEBUG][       Thread-612393][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:39:10,465 [DEBUG][       Thread-612393][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:39:10,465 [DEBUG][       Thread-612393][   transport.py][1871] : client lang: <none>
2025-07-01 17:39:10,465 [DEBUG][       Thread-612393][   transport.py][1871] : server lang: <none>
2025-07-01 17:39:10,465 [DEBUG][       Thread-612393][   transport.py][1871] : kex follows: False
2025-07-01 17:39:10,466 [DEBUG][       Thread-612393][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:39:10,466 [DEBUG][       Thread-612393][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:39:10,466 [DEBUG][       Thread-612393][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:39:10,466 [DEBUG][       Thread-612393][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:39:10,466 [DEBUG][       Thread-612393][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:39:10,466 [DEBUG][       Thread-612393][   transport.py][1871] : Compression: none
2025-07-01 17:39:10,466 [DEBUG][       Thread-612393][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:39:10,486 [DEBUG][       Thread-612393][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:39:10,487 [DEBUG][       Thread-612393][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:39:10,487 [DEBUG][       Thread-612393][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:39:10,487 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:39:10,488 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:39:10,489 [DEBUG][       Thread-612393][   transport.py][1871] : userauth is OK
2025-07-01 17:39:10,513 [ INFO][       Thread-612393][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:39:10,514 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:39:11,181 [DEBUG][       Thread-612393][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:39:11,181 [DEBUG][       Thread-612393][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:39:11,224 [DEBUG][       Thread-612393][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:39:11,225 [DEBUG][       Thread-612393][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:39:11,227 [DEBUG][       Thread-612393][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:39:11,238 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:39:11,238 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:39:11,239 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:39:11,240 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:39:11,243 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:39:11,244 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:39:11,244 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:39:11,244 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:39:11,244 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.652020 -999.00  +12.40  22.82     53   +3.20 1 2 1 1 1   881    0 9.08 -11.57 ----- 26.3 22.8 351.6 34.5 13.1 -21.7 12.9 -21.6 12.7 -21.5 13.1 -21.3
2025-07-01 17:39:11,244 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:39:11,244 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:39:11,244 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.652020
2025-07-01 17:39:11,245 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:39:11,245 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:39:11,245 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:39:11,245 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:39:11,245 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:39:11,245 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:38:39', tmtdew=10.56, humidity=48.7, cloud=0.0, wind=39.4, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:38:54.528', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:39:11,245 [DEBUG][       Thread-612393][   transport.py][1871] : EOF in transport thread
2025-07-01 17:39:11,309 [DEBUG][Thread-612396 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:39:11,319 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:39:11,329 [DEBUG][       Thread-612397][   transport.py][1871] : starting thread (client mode): 0x81736d0
2025-07-01 17:39:11,329 [DEBUG][       Thread-612397][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:39:11,346 [DEBUG][       Thread-612397][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:39:11,346 [ INFO][       Thread-612397][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:39:11,354 [DEBUG][       Thread-612397][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:39:11,354 [DEBUG][       Thread-612397][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:39:11,354 [DEBUG][       Thread-612397][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:39:11,354 [DEBUG][       Thread-612397][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:39:11,354 [DEBUG][       Thread-612397][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:39:11,354 [DEBUG][       Thread-612397][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:39:11,354 [DEBUG][       Thread-612397][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:39:11,354 [DEBUG][       Thread-612397][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:39:11,354 [DEBUG][       Thread-612397][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:39:11,354 [DEBUG][       Thread-612397][   transport.py][1871] : client lang: <none>
2025-07-01 17:39:11,354 [DEBUG][       Thread-612397][   transport.py][1871] : server lang: <none>
2025-07-01 17:39:11,354 [DEBUG][       Thread-612397][   transport.py][1871] : kex follows: False
2025-07-01 17:39:11,354 [DEBUG][       Thread-612397][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:39:11,354 [DEBUG][       Thread-612397][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:39:11,354 [DEBUG][       Thread-612397][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:39:11,354 [DEBUG][       Thread-612397][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:39:11,354 [DEBUG][       Thread-612397][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:39:11,354 [DEBUG][       Thread-612397][   transport.py][1871] : Compression: none
2025-07-01 17:39:11,354 [DEBUG][       Thread-612397][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:39:11,410 [DEBUG][       Thread-612397][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:39:11,411 [DEBUG][       Thread-612397][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:39:11,411 [DEBUG][       Thread-612397][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:39:11,411 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:39:11,411 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:39:11,468 [DEBUG][       Thread-612397][   transport.py][1871] : userauth is OK
2025-07-01 17:39:11,468 [DEBUG][       Thread-612397][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:39:11,468 [DEBUG][       Thread-612397][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:39:11,468 [DEBUG][       Thread-612397][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:39:11,468 [DEBUG][       Thread-612397][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:39:11,483 [ INFO][       Thread-612397][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:39:11,483 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:39:11,483 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:39:12,528 [DEBUG][       Thread-612397][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:39:12,528 [DEBUG][       Thread-612397][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:39:12,579 [DEBUG][       Thread-612397][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:39:12,579 [DEBUG][       Thread-612397][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:39:12,588 [DEBUG][       Thread-612397][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:39:12,596 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:39:12,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-07-01 17:39:12,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-07-01 17:39:12,612 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:39:12,612 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:39:12,612 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:39:12,622 [DEBUG][       Thread-612397][   transport.py][1871] : EOF in transport thread
2025-07-01 17:39:20,329 [DEBUG][Thread-612399 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:39:22,622 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:39:22,623 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:39:22,623 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:39:22,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-07-01 17:39:23,118 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 39, 10), 10.55, 48.39, 0.0, 35.48, 12.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:39:23,118 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:39:10
2025-07-01 17:39:23,204 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:39:23,208 [DEBUG][       Thread-612400][   transport.py][1871] : starting thread (client mode): 0x81a4c40
2025-07-01 17:39:23,208 [DEBUG][       Thread-612400][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:39:23,230 [DEBUG][       Thread-612400][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:39:23,230 [ INFO][       Thread-612400][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:39:23,234 [DEBUG][       Thread-612400][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:39:23,234 [DEBUG][       Thread-612400][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:39:23,234 [DEBUG][       Thread-612400][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:39:23,234 [DEBUG][       Thread-612400][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:39:23,234 [DEBUG][       Thread-612400][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:39:23,234 [DEBUG][       Thread-612400][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:39:23,234 [DEBUG][       Thread-612400][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:39:23,234 [DEBUG][       Thread-612400][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:39:23,235 [DEBUG][       Thread-612400][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:39:23,235 [DEBUG][       Thread-612400][   transport.py][1871] : client lang: <none>
2025-07-01 17:39:23,235 [DEBUG][       Thread-612400][   transport.py][1871] : server lang: <none>
2025-07-01 17:39:23,235 [DEBUG][       Thread-612400][   transport.py][1871] : kex follows: False
2025-07-01 17:39:23,235 [DEBUG][       Thread-612400][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:39:23,235 [DEBUG][       Thread-612400][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:39:23,235 [DEBUG][       Thread-612400][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:39:23,235 [DEBUG][       Thread-612400][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:39:23,235 [DEBUG][       Thread-612400][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:39:23,235 [DEBUG][       Thread-612400][   transport.py][1871] : Compression: none
2025-07-01 17:39:23,235 [DEBUG][       Thread-612400][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:39:23,251 [DEBUG][       Thread-612400][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:39:23,252 [DEBUG][       Thread-612400][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:39:23,252 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:39:23,252 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:39:23,253 [DEBUG][       Thread-612400][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:39:23,254 [DEBUG][       Thread-612400][   transport.py][1871] : userauth is OK
2025-07-01 17:39:23,278 [ INFO][       Thread-612400][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:39:23,279 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:39:23,929 [DEBUG][       Thread-612400][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:39:23,929 [DEBUG][       Thread-612400][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:39:23,973 [DEBUG][       Thread-612400][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:39:23,973 [DEBUG][       Thread-612400][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:39:23,977 [DEBUG][       Thread-612400][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:39:23,990 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:39:23,990 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:39:23,992 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:39:23,994 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:39:24,001 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:39:24,003 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:39:24,003 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:39:24,004 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:39:24,004 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.652020 -999.00  +12.40  22.82     53   +3.20 1 2 1 1 1   881    0 9.08 -11.57 ----- 26.3 22.8 351.6 34.5 13.1 -21.7 12.9 -21.6 12.7 -21.5 13.1 -21.3
2025-07-01 17:39:24,004 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:39:24,004 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:39:24,004 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.652020
2025-07-01 17:39:24,004 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:39:24,005 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:39:24,005 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:39:24,005 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:39:24,005 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:39:24,005 [DEBUG][       Thread-612400][   transport.py][1871] : EOF in transport thread
2025-07-01 17:39:24,006 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:39:10', tmtdew=10.55, humidity=48.39, cloud=0.0, wind=35.48, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:38:54.528', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:39:24,089 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:39:24,101 [DEBUG][       Thread-612403][   transport.py][1871] : starting thread (client mode): 0x81c8910
2025-07-01 17:39:24,101 [DEBUG][       Thread-612403][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:39:24,116 [DEBUG][       Thread-612403][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:39:24,116 [ INFO][       Thread-612403][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:39:24,123 [DEBUG][       Thread-612403][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:39:24,124 [DEBUG][       Thread-612403][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:39:24,124 [DEBUG][       Thread-612403][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:39:24,124 [DEBUG][       Thread-612403][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:39:24,124 [DEBUG][       Thread-612403][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:39:24,124 [DEBUG][       Thread-612403][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:39:24,124 [DEBUG][       Thread-612403][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:39:24,124 [DEBUG][       Thread-612403][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:39:24,124 [DEBUG][       Thread-612403][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:39:24,124 [DEBUG][       Thread-612403][   transport.py][1871] : client lang: <none>
2025-07-01 17:39:24,124 [DEBUG][       Thread-612403][   transport.py][1871] : server lang: <none>
2025-07-01 17:39:24,124 [DEBUG][       Thread-612403][   transport.py][1871] : kex follows: False
2025-07-01 17:39:24,124 [DEBUG][       Thread-612403][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:39:24,124 [DEBUG][       Thread-612403][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:39:24,124 [DEBUG][       Thread-612403][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:39:24,124 [DEBUG][       Thread-612403][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:39:24,124 [DEBUG][       Thread-612403][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:39:24,124 [DEBUG][       Thread-612403][   transport.py][1871] : Compression: none
2025-07-01 17:39:24,124 [DEBUG][       Thread-612403][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:39:24,185 [DEBUG][       Thread-612403][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:39:24,185 [DEBUG][       Thread-612403][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:39:24,186 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:39:24,186 [DEBUG][       Thread-612403][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:39:24,187 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:39:24,240 [DEBUG][       Thread-612403][   transport.py][1871] : userauth is OK
2025-07-01 17:39:24,241 [DEBUG][       Thread-612403][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:39:24,241 [DEBUG][       Thread-612403][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:39:24,241 [DEBUG][       Thread-612403][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:39:24,241 [DEBUG][       Thread-612403][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:39:24,264 [ INFO][       Thread-612403][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:39:24,264 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:39:24,265 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:39:25,316 [DEBUG][       Thread-612403][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:39:25,316 [DEBUG][       Thread-612403][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:39:25,367 [DEBUG][       Thread-612403][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:39:25,368 [DEBUG][       Thread-612403][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:39:25,376 [DEBUG][       Thread-612403][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:39:25,385 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:39:25,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-07-01 17:39:25,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-07-01 17:39:25,403 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:39:25,403 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:39:25,403 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:39:25,411 [DEBUG][       Thread-612403][   transport.py][1871] : EOF in transport thread
2025-07-01 17:39:29,351 [DEBUG][Thread-612405 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:39:35,414 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:39:35,414 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:39:35,414 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:39:35,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-07-01 17:39:35,910 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 39, 10), 10.55, 48.39, 0.0, 35.48, 12.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:39:35,910 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:39:10
2025-07-01 17:39:35,996 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:39:36,000 [DEBUG][       Thread-612406][   transport.py][1871] : starting thread (client mode): 0x82b3ac0
2025-07-01 17:39:36,000 [DEBUG][       Thread-612406][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:39:36,021 [DEBUG][       Thread-612406][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:39:36,021 [ INFO][       Thread-612406][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:39:36,023 [DEBUG][       Thread-612406][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:39:36,023 [DEBUG][       Thread-612406][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:39:36,023 [DEBUG][       Thread-612406][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:39:36,023 [DEBUG][       Thread-612406][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:39:36,023 [DEBUG][       Thread-612406][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:39:36,023 [DEBUG][       Thread-612406][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:39:36,023 [DEBUG][       Thread-612406][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:39:36,023 [DEBUG][       Thread-612406][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:39:36,023 [DEBUG][       Thread-612406][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:39:36,023 [DEBUG][       Thread-612406][   transport.py][1871] : client lang: <none>
2025-07-01 17:39:36,023 [DEBUG][       Thread-612406][   transport.py][1871] : server lang: <none>
2025-07-01 17:39:36,023 [DEBUG][       Thread-612406][   transport.py][1871] : kex follows: False
2025-07-01 17:39:36,023 [DEBUG][       Thread-612406][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:39:36,023 [DEBUG][       Thread-612406][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:39:36,023 [DEBUG][       Thread-612406][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:39:36,023 [DEBUG][       Thread-612406][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:39:36,023 [DEBUG][       Thread-612406][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:39:36,023 [DEBUG][       Thread-612406][   transport.py][1871] : Compression: none
2025-07-01 17:39:36,023 [DEBUG][       Thread-612406][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:39:36,038 [DEBUG][       Thread-612406][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:39:36,038 [DEBUG][       Thread-612406][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:39:36,039 [DEBUG][       Thread-612406][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:39:36,039 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:39:36,039 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:39:36,040 [DEBUG][       Thread-612406][   transport.py][1871] : userauth is OK
2025-07-01 17:39:36,065 [ INFO][       Thread-612406][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:39:36,065 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:39:36,707 [DEBUG][       Thread-612406][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:39:36,707 [DEBUG][       Thread-612406][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:39:36,749 [DEBUG][       Thread-612406][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:39:36,749 [DEBUG][       Thread-612406][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:39:36,752 [DEBUG][       Thread-612406][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:39:36,763 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:39:36,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:39:36,765 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:39:36,767 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:39:36,772 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:39:36,773 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:39:36,773 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:39:36,774 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:39:36,774 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.652368 -999.00  +12.40  32.57     53   +3.20 1 2 2 1 1   880    0 8.97 -11.89 ----- 26.8 32.6 20.4 36.8 13.1 -21.4 12.9 -21.6 12.7 -21.4 13.1 -21.0
2025-07-01 17:39:36,774 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:39:36,774 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:39:36,774 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.652368
2025-07-01 17:39:36,775 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:39:36,775 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:39:36,776 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:39:36,776 [DEBUG][       Thread-612406][   transport.py][1871] : EOF in transport thread
2025-07-01 17:39:36,776 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:39:36,776 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:39:36,777 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:39:10', tmtdew=10.55, humidity=48.39, cloud=0.0, wind=35.48, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:39:24.595', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:39:36,859 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:39:36,869 [DEBUG][       Thread-612409][   transport.py][1871] : starting thread (client mode): 0x818d480
2025-07-01 17:39:36,869 [DEBUG][       Thread-612409][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:39:36,888 [DEBUG][       Thread-612409][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:39:36,888 [ INFO][       Thread-612409][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:39:36,896 [DEBUG][       Thread-612409][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:39:36,896 [DEBUG][       Thread-612409][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:39:36,896 [DEBUG][       Thread-612409][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:39:36,896 [DEBUG][       Thread-612409][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:39:36,896 [DEBUG][       Thread-612409][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:39:36,896 [DEBUG][       Thread-612409][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:39:36,896 [DEBUG][       Thread-612409][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:39:36,896 [DEBUG][       Thread-612409][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:39:36,896 [DEBUG][       Thread-612409][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:39:36,896 [DEBUG][       Thread-612409][   transport.py][1871] : client lang: <none>
2025-07-01 17:39:36,897 [DEBUG][       Thread-612409][   transport.py][1871] : server lang: <none>
2025-07-01 17:39:36,897 [DEBUG][       Thread-612409][   transport.py][1871] : kex follows: False
2025-07-01 17:39:36,897 [DEBUG][       Thread-612409][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:39:36,897 [DEBUG][       Thread-612409][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:39:36,897 [DEBUG][       Thread-612409][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:39:36,897 [DEBUG][       Thread-612409][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:39:36,897 [DEBUG][       Thread-612409][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:39:36,897 [DEBUG][       Thread-612409][   transport.py][1871] : Compression: none
2025-07-01 17:39:36,897 [DEBUG][       Thread-612409][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:39:36,952 [DEBUG][       Thread-612409][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:39:36,953 [DEBUG][       Thread-612409][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:39:36,953 [DEBUG][       Thread-612409][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:39:36,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:39:36,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:39:37,014 [DEBUG][       Thread-612409][   transport.py][1871] : userauth is OK
2025-07-01 17:39:37,014 [DEBUG][       Thread-612409][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:39:37,014 [DEBUG][       Thread-612409][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:39:37,015 [DEBUG][       Thread-612409][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:39:37,015 [DEBUG][       Thread-612409][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:39:37,035 [ INFO][       Thread-612409][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:39:37,035 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:39:37,036 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:39:38,047 [DEBUG][       Thread-612409][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:39:38,047 [DEBUG][       Thread-612409][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:39:38,096 [DEBUG][       Thread-612409][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:39:38,096 [DEBUG][       Thread-612409][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:39:38,105 [DEBUG][       Thread-612409][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:39:38,114 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:39: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-07-01 17:39:38,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-07-01 17:39:38,131 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:39:38,132 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:39:38,132 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:39:38,140 [DEBUG][       Thread-612409][   transport.py][1871] : EOF in transport thread
2025-07-01 17:39:38,377 [DEBUG][Thread-612411 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:39:40,868 [DEBUG][Thread-612412 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:39:47,398 [DEBUG][Thread-612413 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:39:48,143 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:39:48,143 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:39:48,143 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:39:48,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-07-01 17:39:48,621 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 39, 42), 10.52, 48.52, 0.0, 35.38, 12.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:39:48,621 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:39:42
2025-07-01 17:39:48,705 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:39:48,709 [DEBUG][       Thread-612414][   transport.py][1871] : starting thread (client mode): 0x81e6170
2025-07-01 17:39:48,709 [DEBUG][       Thread-612414][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:39:48,732 [DEBUG][       Thread-612414][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:39:48,732 [ INFO][       Thread-612414][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:39:48,735 [DEBUG][       Thread-612414][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:39:48,735 [DEBUG][       Thread-612414][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:39:48,736 [DEBUG][       Thread-612414][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:39:48,736 [DEBUG][       Thread-612414][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:39:48,736 [DEBUG][       Thread-612414][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:39:48,736 [DEBUG][       Thread-612414][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:39:48,736 [DEBUG][       Thread-612414][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:39:48,736 [DEBUG][       Thread-612414][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:39:48,736 [DEBUG][       Thread-612414][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:39:48,736 [DEBUG][       Thread-612414][   transport.py][1871] : client lang: <none>
2025-07-01 17:39:48,736 [DEBUG][       Thread-612414][   transport.py][1871] : server lang: <none>
2025-07-01 17:39:48,736 [DEBUG][       Thread-612414][   transport.py][1871] : kex follows: False
2025-07-01 17:39:48,736 [DEBUG][       Thread-612414][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:39:48,736 [DEBUG][       Thread-612414][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:39:48,736 [DEBUG][       Thread-612414][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:39:48,736 [DEBUG][       Thread-612414][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:39:48,736 [DEBUG][       Thread-612414][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:39:48,736 [DEBUG][       Thread-612414][   transport.py][1871] : Compression: none
2025-07-01 17:39:48,736 [DEBUG][       Thread-612414][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:39:48,754 [DEBUG][       Thread-612414][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:39:48,754 [DEBUG][       Thread-612414][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:39:48,755 [DEBUG][       Thread-612414][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:39:48,755 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:39:48,755 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:39:48,757 [DEBUG][       Thread-612414][   transport.py][1871] : userauth is OK
2025-07-01 17:39:48,782 [ INFO][       Thread-612414][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:39:48,783 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:39:49,415 [DEBUG][       Thread-612414][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:39:49,416 [DEBUG][       Thread-612414][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:39:49,457 [DEBUG][       Thread-612414][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:39:49,457 [DEBUG][       Thread-612414][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:39:49,461 [DEBUG][       Thread-612414][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:39:49,474 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:39:49,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:39:49,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:39:49,479 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:39:49,484 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:39:49,486 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:39:49,487 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:39:49,487 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:39:49,487 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.652368 -999.00  +12.40  32.57     53   +3.20 1 2 2 1 1   880    0 8.97 -11.89 ----- 26.8 32.6 20.4 36.8 13.1 -21.4 12.9 -21.6 12.7 -21.4 13.1 -21.0
2025-07-01 17:39:49,487 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:39:49,487 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:39:49,488 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.652368
2025-07-01 17:39:49,488 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:39:49,489 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:39:49,489 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:39:49,489 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:39:49,489 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:39:49,489 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:39:42', tmtdew=10.52, humidity=48.52, cloud=0.0, wind=35.38, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:39:24.595', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:39:49,490 [DEBUG][       Thread-612414][   transport.py][1871] : EOF in transport thread
2025-07-01 17:39:49,567 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:39:49,578 [DEBUG][       Thread-612417][   transport.py][1871] : starting thread (client mode): 0x827d540
2025-07-01 17:39:49,578 [DEBUG][       Thread-612417][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:39:49,594 [DEBUG][       Thread-612417][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:39:49,594 [ INFO][       Thread-612417][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:39:49,602 [DEBUG][       Thread-612417][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:39:49,602 [DEBUG][       Thread-612417][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:39:49,602 [DEBUG][       Thread-612417][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:39:49,602 [DEBUG][       Thread-612417][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:39:49,602 [DEBUG][       Thread-612417][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:39:49,602 [DEBUG][       Thread-612417][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:39:49,603 [DEBUG][       Thread-612417][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:39:49,603 [DEBUG][       Thread-612417][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:39:49,603 [DEBUG][       Thread-612417][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:39:49,603 [DEBUG][       Thread-612417][   transport.py][1871] : client lang: <none>
2025-07-01 17:39:49,603 [DEBUG][       Thread-612417][   transport.py][1871] : server lang: <none>
2025-07-01 17:39:49,603 [DEBUG][       Thread-612417][   transport.py][1871] : kex follows: False
2025-07-01 17:39:49,603 [DEBUG][       Thread-612417][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:39:49,603 [DEBUG][       Thread-612417][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:39:49,603 [DEBUG][       Thread-612417][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:39:49,603 [DEBUG][       Thread-612417][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:39:49,603 [DEBUG][       Thread-612417][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:39:49,603 [DEBUG][       Thread-612417][   transport.py][1871] : Compression: none
2025-07-01 17:39:49,603 [DEBUG][       Thread-612417][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:39:49,661 [DEBUG][       Thread-612417][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:39:49,661 [DEBUG][       Thread-612417][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:39:49,662 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:39:49,663 [DEBUG][       Thread-612417][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:39:49,663 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:39:49,717 [DEBUG][       Thread-612417][   transport.py][1871] : userauth is OK
2025-07-01 17:39:49,717 [DEBUG][       Thread-612417][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:39:49,717 [DEBUG][       Thread-612417][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:39:49,717 [DEBUG][       Thread-612417][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:39:49,717 [DEBUG][       Thread-612417][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:39:49,740 [ INFO][       Thread-612417][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:39:49,741 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:39:49,741 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:39:50,796 [DEBUG][       Thread-612417][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:39:50,796 [DEBUG][       Thread-612417][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:39:50,847 [DEBUG][       Thread-612417][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:39:50,847 [DEBUG][       Thread-612417][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:39:50,855 [DEBUG][       Thread-612417][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:39:50,863 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:39:50,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-07-01 17:39:50,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-07-01 17:39:50,879 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:39:50,879 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:39:50,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:39:50,887 [DEBUG][       Thread-612417][   transport.py][1871] : EOF in transport thread
2025-07-01 17:39:56,418 [DEBUG][Thread-612419 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:40:00,890 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:40:00,890 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:40:00,890 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:40:00,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-07-01 17:40:01,372 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 39, 42), 10.52, 48.52, 0.0, 35.38, 12.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:40:01,372 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:39:42
2025-07-01 17:40:01,455 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:40:01,459 [DEBUG][       Thread-612420][   transport.py][1871] : starting thread (client mode): 0x818cd60
2025-07-01 17:40:01,460 [DEBUG][       Thread-612420][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:40:01,480 [DEBUG][       Thread-612420][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:40:01,480 [ INFO][       Thread-612420][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:40:01,483 [DEBUG][       Thread-612420][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:40:01,483 [DEBUG][       Thread-612420][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:40:01,483 [DEBUG][       Thread-612420][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:40:01,483 [DEBUG][       Thread-612420][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:40:01,483 [DEBUG][       Thread-612420][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:40:01,483 [DEBUG][       Thread-612420][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:40:01,483 [DEBUG][       Thread-612420][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:40:01,483 [DEBUG][       Thread-612420][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:40:01,483 [DEBUG][       Thread-612420][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:40:01,483 [DEBUG][       Thread-612420][   transport.py][1871] : client lang: <none>
2025-07-01 17:40:01,483 [DEBUG][       Thread-612420][   transport.py][1871] : server lang: <none>
2025-07-01 17:40:01,483 [DEBUG][       Thread-612420][   transport.py][1871] : kex follows: False
2025-07-01 17:40:01,483 [DEBUG][       Thread-612420][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:40:01,483 [DEBUG][       Thread-612420][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:40:01,483 [DEBUG][       Thread-612420][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:40:01,483 [DEBUG][       Thread-612420][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:40:01,483 [DEBUG][       Thread-612420][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:40:01,483 [DEBUG][       Thread-612420][   transport.py][1871] : Compression: none
2025-07-01 17:40:01,483 [DEBUG][       Thread-612420][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:40:01,503 [DEBUG][       Thread-612420][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:40:01,503 [DEBUG][       Thread-612420][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:40:01,504 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:40:01,504 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:40:01,505 [DEBUG][       Thread-612420][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:40:01,505 [DEBUG][       Thread-612420][   transport.py][1871] : userauth is OK
2025-07-01 17:40:01,533 [ INFO][       Thread-612420][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:40:01,534 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:40:02,123 [DEBUG][       Thread-612420][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:40:02,124 [DEBUG][       Thread-612420][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:40:02,164 [DEBUG][       Thread-612420][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:40:02,165 [DEBUG][       Thread-612420][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:40:02,167 [DEBUG][       Thread-612420][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:40:02,175 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:40:02,175 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:40:02,177 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:40:02,178 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:40:02,182 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:40:02,183 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:40:02,183 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:40:02,184 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:40:02,184 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.652368 -999.00  +12.40  32.57     53   +3.20 1 2 2 1 1   880    0 8.97 -11.89 ----- 26.8 32.6 20.4 36.8 13.1 -21.4 12.9 -21.6 12.7 -21.4 13.1 -21.0
2025-07-01 17:40:02,184 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:40:02,184 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:40:02,184 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.652368
2025-07-01 17:40:02,185 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:40:02,185 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:40:02,186 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:40:02,186 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:40:02,186 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:40:02,186 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:39:42', tmtdew=10.52, humidity=48.52, cloud=0.0, wind=35.38, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:39:24.595', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:40:02,187 [DEBUG][       Thread-612420][   transport.py][1871] : EOF in transport thread
2025-07-01 17:40:02,269 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:40:02,279 [DEBUG][       Thread-612423][   transport.py][1871] : starting thread (client mode): 0x81712d0
2025-07-01 17:40:02,279 [DEBUG][       Thread-612423][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:40:02,294 [DEBUG][       Thread-612423][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:40:02,294 [ INFO][       Thread-612423][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:40:02,302 [DEBUG][       Thread-612423][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:40:02,302 [DEBUG][       Thread-612423][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:40:02,302 [DEBUG][       Thread-612423][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:40:02,302 [DEBUG][       Thread-612423][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:40:02,302 [DEBUG][       Thread-612423][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:40:02,302 [DEBUG][       Thread-612423][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:40:02,302 [DEBUG][       Thread-612423][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:40:02,302 [DEBUG][       Thread-612423][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:40:02,302 [DEBUG][       Thread-612423][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:40:02,302 [DEBUG][       Thread-612423][   transport.py][1871] : client lang: <none>
2025-07-01 17:40:02,302 [DEBUG][       Thread-612423][   transport.py][1871] : server lang: <none>
2025-07-01 17:40:02,302 [DEBUG][       Thread-612423][   transport.py][1871] : kex follows: False
2025-07-01 17:40:02,302 [DEBUG][       Thread-612423][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:40:02,302 [DEBUG][       Thread-612423][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:40:02,303 [DEBUG][       Thread-612423][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:40:02,303 [DEBUG][       Thread-612423][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:40:02,303 [DEBUG][       Thread-612423][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:40:02,303 [DEBUG][       Thread-612423][   transport.py][1871] : Compression: none
2025-07-01 17:40:02,303 [DEBUG][       Thread-612423][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:40:02,361 [DEBUG][       Thread-612423][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:40:02,362 [DEBUG][       Thread-612423][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:40:02,363 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:40:02,363 [DEBUG][       Thread-612423][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:40:02,364 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:40:02,421 [DEBUG][       Thread-612423][   transport.py][1871] : userauth is OK
2025-07-01 17:40:02,421 [DEBUG][       Thread-612423][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:40:02,421 [DEBUG][       Thread-612423][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:40:02,421 [DEBUG][       Thread-612423][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:40:02,422 [DEBUG][       Thread-612423][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:40:02,440 [ INFO][       Thread-612423][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:40:02,441 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:40:02,441 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:40:03,520 [DEBUG][       Thread-612423][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:40:03,520 [DEBUG][       Thread-612423][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:40:03,567 [DEBUG][       Thread-612423][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:40:03,567 [DEBUG][       Thread-612423][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:40:03,576 [DEBUG][       Thread-612423][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:40:03,584 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:40:03,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-07-01 17:40:03,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-07-01 17:40:03,600 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:40:03,600 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:40:03,600 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:40:03,608 [DEBUG][       Thread-612423][   transport.py][1871] : EOF in transport thread
2025-07-01 17:40:05,455 [DEBUG][Thread-612425 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:40:13,609 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:40:13,609 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:40:13,609 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:40:13,612 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:40:14,091 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 39, 42), 10.52, 48.52, 0.0, 35.38, 12.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:40:14,091 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:39:42
2025-07-01 17:40:14,174 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:40:14,178 [DEBUG][       Thread-612426][   transport.py][1871] : starting thread (client mode): 0x818f8e0
2025-07-01 17:40:14,178 [DEBUG][       Thread-612426][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:40:14,200 [DEBUG][       Thread-612426][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:40:14,200 [ INFO][       Thread-612426][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:40:14,203 [DEBUG][       Thread-612426][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:40:14,203 [DEBUG][       Thread-612426][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:40:14,204 [DEBUG][       Thread-612426][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:40:14,204 [DEBUG][       Thread-612426][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:40:14,204 [DEBUG][       Thread-612426][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:40:14,204 [DEBUG][       Thread-612426][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:40:14,204 [DEBUG][       Thread-612426][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:40:14,204 [DEBUG][       Thread-612426][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:40:14,204 [DEBUG][       Thread-612426][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:40:14,204 [DEBUG][       Thread-612426][   transport.py][1871] : client lang: <none>
2025-07-01 17:40:14,204 [DEBUG][       Thread-612426][   transport.py][1871] : server lang: <none>
2025-07-01 17:40:14,204 [DEBUG][       Thread-612426][   transport.py][1871] : kex follows: False
2025-07-01 17:40:14,204 [DEBUG][       Thread-612426][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:40:14,204 [DEBUG][       Thread-612426][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:40:14,204 [DEBUG][       Thread-612426][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:40:14,204 [DEBUG][       Thread-612426][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:40:14,204 [DEBUG][       Thread-612426][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:40:14,204 [DEBUG][       Thread-612426][   transport.py][1871] : Compression: none
2025-07-01 17:40:14,204 [DEBUG][       Thread-612426][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:40:14,220 [DEBUG][       Thread-612426][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:40:14,221 [DEBUG][       Thread-612426][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:40:14,221 [DEBUG][       Thread-612426][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:40:14,222 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:40:14,222 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:40:14,223 [DEBUG][       Thread-612426][   transport.py][1871] : userauth is OK
2025-07-01 17:40:14,248 [ INFO][       Thread-612426][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:40:14,248 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:40:14,477 [DEBUG][Thread-612428 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:40:14,882 [DEBUG][       Thread-612426][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:40:14,882 [DEBUG][       Thread-612426][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:40:14,925 [DEBUG][       Thread-612426][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:40:14,925 [DEBUG][       Thread-612426][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:40:14,929 [DEBUG][       Thread-612426][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:40:14,940 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:40:14,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:40:14,942 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:40:14,944 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:40:14,950 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:40:14,952 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:40:14,952 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:40:14,953 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:40:14,953 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.652715 -999.00  +12.40  30.25     53   +3.20 1 2 2 1 1   879    0 9.05 -12.46 ----- 24.7 30.2 9.4 43.1 13.0 -21.6 12.9 -21.7 12.7 -21.4 13.0 -21.0
2025-07-01 17:40:14,953 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:40:14,953 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:40:14,954 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.652715
2025-07-01 17:40:14,954 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:40:14,955 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:40:14,955 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:40:14,955 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:40:14,955 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:40:14,955 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:39:42', tmtdew=10.52, humidity=48.52, cloud=0.0, wind=35.38, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:39:54.576', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:40:14,955 [DEBUG][       Thread-612426][   transport.py][1871] : EOF in transport thread
2025-07-01 17:40:15,039 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:40:15,051 [DEBUG][       Thread-612430][   transport.py][1871] : starting thread (client mode): 0x75ab1f0
2025-07-01 17:40:15,051 [DEBUG][       Thread-612430][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:40:15,067 [DEBUG][       Thread-612430][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:40:15,067 [ INFO][       Thread-612430][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:40:15,075 [DEBUG][       Thread-612430][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:40:15,075 [DEBUG][       Thread-612430][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:40:15,075 [DEBUG][       Thread-612430][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:40:15,075 [DEBUG][       Thread-612430][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:40:15,075 [DEBUG][       Thread-612430][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:40:15,075 [DEBUG][       Thread-612430][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:40:15,075 [DEBUG][       Thread-612430][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:40:15,075 [DEBUG][       Thread-612430][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:40:15,075 [DEBUG][       Thread-612430][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:40:15,075 [DEBUG][       Thread-612430][   transport.py][1871] : client lang: <none>
2025-07-01 17:40:15,075 [DEBUG][       Thread-612430][   transport.py][1871] : server lang: <none>
2025-07-01 17:40:15,075 [DEBUG][       Thread-612430][   transport.py][1871] : kex follows: False
2025-07-01 17:40:15,075 [DEBUG][       Thread-612430][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:40:15,076 [DEBUG][       Thread-612430][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:40:15,076 [DEBUG][       Thread-612430][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:40:15,076 [DEBUG][       Thread-612430][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:40:15,076 [DEBUG][       Thread-612430][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:40:15,076 [DEBUG][       Thread-612430][   transport.py][1871] : Compression: none
2025-07-01 17:40:15,076 [DEBUG][       Thread-612430][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:40:15,133 [DEBUG][       Thread-612430][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:40:15,133 [DEBUG][       Thread-612430][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:40:15,134 [DEBUG][       Thread-612430][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:40:15,134 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:40:15,134 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:40:15,189 [DEBUG][       Thread-612430][   transport.py][1871] : userauth is OK
2025-07-01 17:40:15,189 [DEBUG][       Thread-612430][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:40:15,189 [DEBUG][       Thread-612430][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:40:15,189 [DEBUG][       Thread-612430][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:40:15,189 [DEBUG][       Thread-612430][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:40:15,203 [ INFO][       Thread-612430][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:40:15,203 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:40:15,203 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:40:16,262 [DEBUG][       Thread-612430][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:40:16,262 [DEBUG][       Thread-612430][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:40:16,311 [DEBUG][       Thread-612430][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:40:16,311 [DEBUG][       Thread-612430][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:40:16,320 [DEBUG][       Thread-612430][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:40:16,328 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:40:16,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')
2025-07-01 17:40:16,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-07-01 17:40:16,344 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:40:16,344 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:40:16,344 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:40:16,352 [DEBUG][       Thread-612430][   transport.py][1871] : EOF in transport thread
2025-07-01 17:40:23,496 [DEBUG][Thread-612432 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:40:26,349 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:40:26,349 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:40:26,350 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:40:26,352 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:40:26,829 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 40, 15), 10.48, 48.86, 0.0, 33.86, 12.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:40:26,829 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:40:15
2025-07-01 17:40:26,912 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:40:26,919 [DEBUG][       Thread-612433][   transport.py][1871] : starting thread (client mode): 0x81a59c0
2025-07-01 17:40:26,919 [DEBUG][       Thread-612433][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:40:26,938 [DEBUG][       Thread-612433][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:40:26,938 [ INFO][       Thread-612433][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:40:26,941 [DEBUG][       Thread-612433][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:40:26,941 [DEBUG][       Thread-612433][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:40:26,941 [DEBUG][       Thread-612433][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:40:26,941 [DEBUG][       Thread-612433][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:40:26,941 [DEBUG][       Thread-612433][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:40:26,941 [DEBUG][       Thread-612433][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:40:26,941 [DEBUG][       Thread-612433][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:40:26,941 [DEBUG][       Thread-612433][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:40:26,941 [DEBUG][       Thread-612433][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:40:26,942 [DEBUG][       Thread-612433][   transport.py][1871] : client lang: <none>
2025-07-01 17:40:26,942 [DEBUG][       Thread-612433][   transport.py][1871] : server lang: <none>
2025-07-01 17:40:26,942 [DEBUG][       Thread-612433][   transport.py][1871] : kex follows: False
2025-07-01 17:40:26,942 [DEBUG][       Thread-612433][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:40:26,942 [DEBUG][       Thread-612433][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:40:26,942 [DEBUG][       Thread-612433][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:40:26,942 [DEBUG][       Thread-612433][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:40:26,942 [DEBUG][       Thread-612433][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:40:26,942 [DEBUG][       Thread-612433][   transport.py][1871] : Compression: none
2025-07-01 17:40:26,942 [DEBUG][       Thread-612433][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:40:26,959 [DEBUG][       Thread-612433][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:40:26,960 [DEBUG][       Thread-612433][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:40:26,960 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:40:26,960 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:40:26,961 [DEBUG][       Thread-612433][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:40:26,962 [DEBUG][       Thread-612433][   transport.py][1871] : userauth is OK
2025-07-01 17:40:26,986 [ INFO][       Thread-612433][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:40:26,987 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:40:27,637 [DEBUG][       Thread-612433][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:40:27,637 [DEBUG][       Thread-612433][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:40:27,681 [DEBUG][       Thread-612433][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:40:27,681 [DEBUG][       Thread-612433][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:40:27,684 [DEBUG][       Thread-612433][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:40:27,697 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:40:27,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:40:27,699 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:40:27,701 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:40:27,706 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:40:27,708 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:40:27,708 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:40:27,709 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:40:27,709 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.652715 -999.00  +12.40  30.25     53   +3.20 1 2 2 1 1   879    0 9.05 -12.46 ----- 24.7 30.2 9.4 43.1 13.0 -21.6 12.9 -21.7 12.7 -21.4 13.0 -21.0
2025-07-01 17:40:27,709 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:40:27,709 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:40:27,709 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.652715
2025-07-01 17:40:27,710 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:40:27,710 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:40:27,710 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:40:27,710 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:40:27,710 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:40:27,710 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:40:15', tmtdew=10.48, humidity=48.86, cloud=0.0, wind=33.86, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:39:54.576', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:40:27,711 [DEBUG][       Thread-612433][   transport.py][1871] : EOF in transport thread
2025-07-01 17:40:27,794 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:40:27,806 [DEBUG][       Thread-612436][   transport.py][1871] : starting thread (client mode): 0x81a4d60
2025-07-01 17:40:27,806 [DEBUG][       Thread-612436][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:40:27,827 [DEBUG][       Thread-612436][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:40:27,827 [ INFO][       Thread-612436][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:40:27,840 [DEBUG][       Thread-612436][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:40:27,840 [DEBUG][       Thread-612436][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:40:27,840 [DEBUG][       Thread-612436][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:40:27,840 [DEBUG][       Thread-612436][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:40:27,840 [DEBUG][       Thread-612436][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:40:27,840 [DEBUG][       Thread-612436][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:40:27,841 [DEBUG][       Thread-612436][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:40:27,841 [DEBUG][       Thread-612436][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:40:27,841 [DEBUG][       Thread-612436][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:40:27,841 [DEBUG][       Thread-612436][   transport.py][1871] : client lang: <none>
2025-07-01 17:40:27,841 [DEBUG][       Thread-612436][   transport.py][1871] : server lang: <none>
2025-07-01 17:40:27,841 [DEBUG][       Thread-612436][   transport.py][1871] : kex follows: False
2025-07-01 17:40:27,841 [DEBUG][       Thread-612436][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:40:27,841 [DEBUG][       Thread-612436][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:40:27,841 [DEBUG][       Thread-612436][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:40:27,841 [DEBUG][       Thread-612436][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:40:27,841 [DEBUG][       Thread-612436][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:40:27,841 [DEBUG][       Thread-612436][   transport.py][1871] : Compression: none
2025-07-01 17:40:27,841 [DEBUG][       Thread-612436][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:40:27,896 [DEBUG][       Thread-612436][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:40:27,896 [DEBUG][       Thread-612436][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:40:27,897 [DEBUG][       Thread-612436][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:40:27,897 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:40:27,898 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:40:27,954 [DEBUG][       Thread-612436][   transport.py][1871] : userauth is OK
2025-07-01 17:40:27,954 [DEBUG][       Thread-612436][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:40:27,954 [DEBUG][       Thread-612436][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:40:27,954 [DEBUG][       Thread-612436][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:40:27,955 [DEBUG][       Thread-612436][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:40:27,974 [ INFO][       Thread-612436][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:40:27,974 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:40:27,974 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:40:29,014 [DEBUG][       Thread-612436][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:40:29,014 [DEBUG][       Thread-612436][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:40:29,079 [DEBUG][       Thread-612436][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:40:29,079 [DEBUG][       Thread-612436][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:40:29,089 [DEBUG][       Thread-612436][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:40:29,097 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:40:29,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-07-01 17:40:29,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-07-01 17:40:29,113 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:40:29,113 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:40:29,113 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:40:29,121 [DEBUG][       Thread-612436][   transport.py][1871] : EOF in transport thread
2025-07-01 17:40:32,514 [DEBUG][Thread-612438 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:40:39,124 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:40:39,124 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:40:39,124 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:40:39,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-07-01 17:40:39,595 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 40, 15), 10.48, 48.86, 0.0, 33.86, 12.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:40:39,595 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:40:15
2025-07-01 17:40:39,681 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:40:39,685 [DEBUG][       Thread-612439][   transport.py][1871] : starting thread (client mode): 0x818d480
2025-07-01 17:40:39,685 [DEBUG][       Thread-612439][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:40:39,706 [DEBUG][       Thread-612439][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:40:39,706 [ INFO][       Thread-612439][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:40:39,709 [DEBUG][       Thread-612439][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:40:39,710 [DEBUG][       Thread-612439][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:40:39,710 [DEBUG][       Thread-612439][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:40:39,710 [DEBUG][       Thread-612439][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:40:39,710 [DEBUG][       Thread-612439][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:40:39,710 [DEBUG][       Thread-612439][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:40:39,710 [DEBUG][       Thread-612439][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:40:39,710 [DEBUG][       Thread-612439][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:40:39,710 [DEBUG][       Thread-612439][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:40:39,710 [DEBUG][       Thread-612439][   transport.py][1871] : client lang: <none>
2025-07-01 17:40:39,710 [DEBUG][       Thread-612439][   transport.py][1871] : server lang: <none>
2025-07-01 17:40:39,710 [DEBUG][       Thread-612439][   transport.py][1871] : kex follows: False
2025-07-01 17:40:39,710 [DEBUG][       Thread-612439][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:40:39,710 [DEBUG][       Thread-612439][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:40:39,710 [DEBUG][       Thread-612439][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:40:39,710 [DEBUG][       Thread-612439][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:40:39,710 [DEBUG][       Thread-612439][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:40:39,710 [DEBUG][       Thread-612439][   transport.py][1871] : Compression: none
2025-07-01 17:40:39,710 [DEBUG][       Thread-612439][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:40:39,726 [DEBUG][       Thread-612439][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:40:39,727 [DEBUG][       Thread-612439][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:40:39,727 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:40:39,727 [DEBUG][       Thread-612439][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:40:39,727 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:40:39,729 [DEBUG][       Thread-612439][   transport.py][1871] : userauth is OK
2025-07-01 17:40:39,742 [ INFO][       Thread-612439][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:40:39,743 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:40:40,382 [DEBUG][       Thread-612439][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:40:40,382 [DEBUG][       Thread-612439][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:40:40,425 [DEBUG][       Thread-612439][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:40:40,425 [DEBUG][       Thread-612439][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:40:40,428 [DEBUG][       Thread-612439][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:40:40,440 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:40:40,440 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:40:40,442 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:40:40,443 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:40:40,448 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:40:40,450 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:40:40,450 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:40:40,451 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:40:40,451 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.652715 -999.00  +12.40  30.25     53   +3.20 1 2 2 1 1   879    0 9.05 -12.46 ----- 24.7 30.2 9.4 43.1 13.0 -21.6 12.9 -21.7 12.7 -21.4 13.0 -21.0
2025-07-01 17:40:40,451 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:40:40,451 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:40:40,451 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.652715
2025-07-01 17:40:40,452 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:40:40,452 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:40:40,452 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:40:40,452 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:40:40,453 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:40:40,453 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:40:15', tmtdew=10.48, humidity=48.86, cloud=0.0, wind=33.86, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:39:54.576', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:40:40,454 [DEBUG][       Thread-612439][   transport.py][1871] : EOF in transport thread
2025-07-01 17:40:40,536 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:40:40,546 [DEBUG][       Thread-612442][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 17:40:40,546 [DEBUG][       Thread-612442][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:40:40,562 [DEBUG][       Thread-612442][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:40:40,562 [ INFO][       Thread-612442][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:40:40,570 [DEBUG][       Thread-612442][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:40:40,570 [DEBUG][       Thread-612442][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:40:40,570 [DEBUG][       Thread-612442][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:40:40,570 [DEBUG][       Thread-612442][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:40:40,570 [DEBUG][       Thread-612442][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:40:40,570 [DEBUG][       Thread-612442][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:40:40,570 [DEBUG][       Thread-612442][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:40:40,570 [DEBUG][       Thread-612442][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:40:40,570 [DEBUG][       Thread-612442][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:40:40,570 [DEBUG][       Thread-612442][   transport.py][1871] : client lang: <none>
2025-07-01 17:40:40,570 [DEBUG][       Thread-612442][   transport.py][1871] : server lang: <none>
2025-07-01 17:40:40,570 [DEBUG][       Thread-612442][   transport.py][1871] : kex follows: False
2025-07-01 17:40:40,570 [DEBUG][       Thread-612442][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:40:40,570 [DEBUG][       Thread-612442][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:40:40,570 [DEBUG][       Thread-612442][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:40:40,570 [DEBUG][       Thread-612442][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:40:40,571 [DEBUG][       Thread-612442][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:40:40,571 [DEBUG][       Thread-612442][   transport.py][1871] : Compression: none
2025-07-01 17:40:40,571 [DEBUG][       Thread-612442][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:40:40,635 [DEBUG][       Thread-612442][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:40:40,636 [DEBUG][       Thread-612442][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:40:40,636 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:40:40,637 [DEBUG][       Thread-612442][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:40:40,638 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:40:40,693 [DEBUG][       Thread-612442][   transport.py][1871] : userauth is OK
2025-07-01 17:40:40,694 [DEBUG][       Thread-612442][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:40:40,694 [DEBUG][       Thread-612442][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:40:40,694 [DEBUG][       Thread-612442][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:40:40,694 [DEBUG][       Thread-612442][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:40:40,713 [ INFO][       Thread-612442][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:40:40,713 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:40:40,714 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:40:40,917 [DEBUG][Thread-612444 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:40:41,539 [DEBUG][Thread-612445 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:40:41,715 [DEBUG][       Thread-612442][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:40:41,716 [DEBUG][       Thread-612442][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:40:41,766 [DEBUG][       Thread-612442][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:40:41,766 [DEBUG][       Thread-612442][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:40:41,775 [DEBUG][       Thread-612442][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:40:41,783 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:40:41,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-07-01 17:40:41,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-07-01 17:40:41,803 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:40:41,803 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:40:41,804 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:40:41,811 [DEBUG][       Thread-612442][   transport.py][1871] : EOF in transport thread
2025-07-01 17:40:50,564 [DEBUG][Thread-612446 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:40:51,814 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:40:51,814 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:40:51,814 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:40:51,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-07-01 17:40:52,284 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 40, 46), 10.47, 48.87, 0.0, 39.05, 12.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:40:52,284 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:40:46
2025-07-01 17:40:52,370 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:40:52,375 [DEBUG][       Thread-612447][   transport.py][1871] : starting thread (client mode): 0x81dbf10
2025-07-01 17:40:52,375 [DEBUG][       Thread-612447][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:40:52,396 [DEBUG][       Thread-612447][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:40:52,396 [ INFO][       Thread-612447][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:40:52,399 [DEBUG][       Thread-612447][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:40:52,399 [DEBUG][       Thread-612447][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:40:52,399 [DEBUG][       Thread-612447][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:40:52,399 [DEBUG][       Thread-612447][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:40:52,400 [DEBUG][       Thread-612447][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:40:52,400 [DEBUG][       Thread-612447][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:40:52,400 [DEBUG][       Thread-612447][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:40:52,400 [DEBUG][       Thread-612447][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:40:52,400 [DEBUG][       Thread-612447][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:40:52,400 [DEBUG][       Thread-612447][   transport.py][1871] : client lang: <none>
2025-07-01 17:40:52,400 [DEBUG][       Thread-612447][   transport.py][1871] : server lang: <none>
2025-07-01 17:40:52,400 [DEBUG][       Thread-612447][   transport.py][1871] : kex follows: False
2025-07-01 17:40:52,400 [DEBUG][       Thread-612447][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:40:52,400 [DEBUG][       Thread-612447][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:40:52,400 [DEBUG][       Thread-612447][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:40:52,400 [DEBUG][       Thread-612447][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:40:52,400 [DEBUG][       Thread-612447][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:40:52,400 [DEBUG][       Thread-612447][   transport.py][1871] : Compression: none
2025-07-01 17:40:52,400 [DEBUG][       Thread-612447][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:40:52,418 [DEBUG][       Thread-612447][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:40:52,418 [DEBUG][       Thread-612447][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:40:52,419 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:40:52,419 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:40:52,420 [DEBUG][       Thread-612447][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:40:52,420 [DEBUG][       Thread-612447][   transport.py][1871] : userauth is OK
2025-07-01 17:40:52,433 [ INFO][       Thread-612447][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:40:52,434 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:40:53,044 [DEBUG][       Thread-612447][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:40:53,044 [DEBUG][       Thread-612447][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:40:53,085 [DEBUG][       Thread-612447][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:40:53,086 [DEBUG][       Thread-612447][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:40:53,089 [DEBUG][       Thread-612447][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:40:53,103 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:40:53,104 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:40:53,106 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:40:53,108 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:40:53,113 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:40:53,115 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:40:53,115 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:40:53,116 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:40:53,116 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.653062 -999.00  +12.40  31.55     53   +3.20 1 2 2 1 1   878    0 9.04 -13.46 ----- 30.3 31.6 354.8 40.4 13.1 -21.5 12.9 -21.8 12.7 -21.5 13.1 -20.7
2025-07-01 17:40:53,116 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:40:53,116 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:40:53,116 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.653062
2025-07-01 17:40:53,117 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:40:53,117 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:40:53,117 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:40:53,117 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:40:53,117 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:40:53,118 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:40:46', tmtdew=10.47, humidity=48.87, cloud=0.0, wind=39.05, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:40:24.557', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:40:53,119 [DEBUG][       Thread-612447][   transport.py][1871] : EOF in transport thread
2025-07-01 17:40:53,201 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:40:53,212 [DEBUG][       Thread-612450][   transport.py][1871] : starting thread (client mode): 0x8173310
2025-07-01 17:40:53,212 [DEBUG][       Thread-612450][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:40:53,227 [DEBUG][       Thread-612450][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:40:53,227 [ INFO][       Thread-612450][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:40:53,235 [DEBUG][       Thread-612450][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:40:53,235 [DEBUG][       Thread-612450][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:40:53,235 [DEBUG][       Thread-612450][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:40:53,235 [DEBUG][       Thread-612450][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:40:53,235 [DEBUG][       Thread-612450][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:40:53,235 [DEBUG][       Thread-612450][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:40:53,235 [DEBUG][       Thread-612450][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:40:53,235 [DEBUG][       Thread-612450][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:40:53,235 [DEBUG][       Thread-612450][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:40:53,235 [DEBUG][       Thread-612450][   transport.py][1871] : client lang: <none>
2025-07-01 17:40:53,235 [DEBUG][       Thread-612450][   transport.py][1871] : server lang: <none>
2025-07-01 17:40:53,235 [DEBUG][       Thread-612450][   transport.py][1871] : kex follows: False
2025-07-01 17:40:53,235 [DEBUG][       Thread-612450][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:40:53,235 [DEBUG][       Thread-612450][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:40:53,235 [DEBUG][       Thread-612450][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:40:53,235 [DEBUG][       Thread-612450][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:40:53,236 [DEBUG][       Thread-612450][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:40:53,236 [DEBUG][       Thread-612450][   transport.py][1871] : Compression: none
2025-07-01 17:40:53,236 [DEBUG][       Thread-612450][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:40:53,292 [DEBUG][       Thread-612450][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:40:53,292 [DEBUG][       Thread-612450][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:40:53,292 [DEBUG][       Thread-612450][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:40:53,292 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:40:53,292 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:40:53,349 [DEBUG][       Thread-612450][   transport.py][1871] : userauth is OK
2025-07-01 17:40:53,349 [DEBUG][       Thread-612450][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:40:53,349 [DEBUG][       Thread-612450][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:40:53,349 [DEBUG][       Thread-612450][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:40:53,349 [DEBUG][       Thread-612450][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:40:53,363 [ INFO][       Thread-612450][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:40:53,363 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:40:53,364 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:40:54,392 [DEBUG][       Thread-612450][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:40:54,392 [DEBUG][       Thread-612450][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:40:54,439 [DEBUG][       Thread-612450][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:40:54,440 [DEBUG][       Thread-612450][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:40:54,449 [DEBUG][       Thread-612450][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:40:54,457 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:40:54,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-07-01 17:40:54,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-07-01 17:40:54,474 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:40:54,475 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:40:54,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:40:54,482 [DEBUG][       Thread-612450][   transport.py][1871] : EOF in transport thread
2025-07-01 17:40:59,584 [DEBUG][Thread-612452 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:41:04,485 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:41:04,486 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:41:04,486 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:41:04,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-07-01 17:41:04,970 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 40, 46), 10.47, 48.87, 0.0, 39.05, 12.53, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:41:04,970 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:40:46
2025-07-01 17:41:05,055 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:41:05,060 [DEBUG][       Thread-612453][   transport.py][1871] : starting thread (client mode): 0x818d000
2025-07-01 17:41:05,060 [DEBUG][       Thread-612453][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:41:05,079 [DEBUG][       Thread-612453][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:41:05,079 [ INFO][       Thread-612453][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:41:05,083 [DEBUG][       Thread-612453][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:41:05,083 [DEBUG][       Thread-612453][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:41:05,083 [DEBUG][       Thread-612453][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:41:05,083 [DEBUG][       Thread-612453][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:41:05,083 [DEBUG][       Thread-612453][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:41:05,083 [DEBUG][       Thread-612453][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:41:05,083 [DEBUG][       Thread-612453][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:41:05,083 [DEBUG][       Thread-612453][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:41:05,083 [DEBUG][       Thread-612453][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:41:05,083 [DEBUG][       Thread-612453][   transport.py][1871] : client lang: <none>
2025-07-01 17:41:05,083 [DEBUG][       Thread-612453][   transport.py][1871] : server lang: <none>
2025-07-01 17:41:05,083 [DEBUG][       Thread-612453][   transport.py][1871] : kex follows: False
2025-07-01 17:41:05,083 [DEBUG][       Thread-612453][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:41:05,083 [DEBUG][       Thread-612453][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:41:05,083 [DEBUG][       Thread-612453][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:41:05,083 [DEBUG][       Thread-612453][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:41:05,083 [DEBUG][       Thread-612453][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:41:05,083 [DEBUG][       Thread-612453][   transport.py][1871] : Compression: none
2025-07-01 17:41:05,083 [DEBUG][       Thread-612453][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:41:05,102 [DEBUG][       Thread-612453][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:41:05,102 [DEBUG][       Thread-612453][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:41:05,103 [DEBUG][       Thread-612453][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:41:05,103 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:41:05,103 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:41:05,104 [DEBUG][       Thread-612453][   transport.py][1871] : userauth is OK
2025-07-01 17:41:05,129 [ INFO][       Thread-612453][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:41:05,130 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:41:05,759 [DEBUG][       Thread-612453][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:41:05,760 [DEBUG][       Thread-612453][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:41:05,800 [DEBUG][       Thread-612453][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:41:05,800 [DEBUG][       Thread-612453][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:41:05,803 [DEBUG][       Thread-612453][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:41:05,816 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:41:05,817 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:41:05,818 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:41:05,819 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:41:05,822 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:41:05,823 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:41:05,823 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:41:05,823 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:41:05,823 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.653062 -999.00  +12.40  31.55     53   +3.20 1 2 2 1 1   878    0 9.04 -13.46 ----- 30.3 31.6 354.8 40.4 13.1 -21.5 12.9 -21.8 12.7 -21.5 13.1 -20.7
2025-07-01 17:41:05,823 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:41:05,823 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:41:05,823 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.653062
2025-07-01 17:41:05,823 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:41:05,823 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:41:05,823 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:41:05,823 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:41:05,823 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:41:05,823 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:40:46', tmtdew=10.47, humidity=48.87, cloud=0.0, wind=39.05, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:40:24.557', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:41:05,824 [DEBUG][       Thread-612453][   transport.py][1871] : EOF in transport thread
2025-07-01 17:41:05,899 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:41:08,611 [DEBUG][Thread-612456 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:41:17,631 [DEBUG][Thread-612457 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:41:26,655 [DEBUG][Thread-612458 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:41:35,676 [DEBUG][Thread-612459 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:41:40,983 [DEBUG][Thread-612460 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:41:44,695 [DEBUG][Thread-612461 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:41:53,714 [DEBUG][Thread-612462 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:42:02,737 [DEBUG][Thread-612463 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:42:11,760 [DEBUG][Thread-612464 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:42:20,780 [DEBUG][Thread-612465 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:42:29,800 [DEBUG][Thread-612466 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:42:38,821 [DEBUG][Thread-612467 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:42:41,037 [DEBUG][Thread-612468 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:42:47,842 [DEBUG][Thread-612469 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:42:56,864 [DEBUG][Thread-612470 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:43:05,882 [DEBUG][Thread-612471 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:43:14,708 [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-07-01 17:43:14,906 [DEBUG][Thread-612472 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:43:23,931 [DEBUG][Thread-612473 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:43:24,719 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:43:24,719 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:43:24,719 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:43:24,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-07-01 17:43:25,221 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 42, 54), 10.51, 48.87, 0.0, 38.39, 12.6, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:43:25,221 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:42:54
2025-07-01 17:43:25,304 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:43:25,309 [DEBUG][       Thread-612474][   transport.py][1871] : starting thread (client mode): 0x82b3e80
2025-07-01 17:43:25,309 [DEBUG][       Thread-612474][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:43:25,329 [DEBUG][       Thread-612474][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:43:25,329 [ INFO][       Thread-612474][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:43:25,333 [DEBUG][       Thread-612474][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:43:25,333 [DEBUG][       Thread-612474][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:43:25,333 [DEBUG][       Thread-612474][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:43:25,333 [DEBUG][       Thread-612474][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:43:25,333 [DEBUG][       Thread-612474][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:43:25,333 [DEBUG][       Thread-612474][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:43:25,333 [DEBUG][       Thread-612474][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:43:25,333 [DEBUG][       Thread-612474][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:43:25,333 [DEBUG][       Thread-612474][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:43:25,333 [DEBUG][       Thread-612474][   transport.py][1871] : client lang: <none>
2025-07-01 17:43:25,333 [DEBUG][       Thread-612474][   transport.py][1871] : server lang: <none>
2025-07-01 17:43:25,333 [DEBUG][       Thread-612474][   transport.py][1871] : kex follows: False
2025-07-01 17:43:25,333 [DEBUG][       Thread-612474][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:43:25,333 [DEBUG][       Thread-612474][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:43:25,333 [DEBUG][       Thread-612474][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:43:25,333 [DEBUG][       Thread-612474][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:43:25,333 [DEBUG][       Thread-612474][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:43:25,333 [DEBUG][       Thread-612474][   transport.py][1871] : Compression: none
2025-07-01 17:43:25,333 [DEBUG][       Thread-612474][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:43:25,348 [DEBUG][       Thread-612474][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:43:25,349 [DEBUG][       Thread-612474][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:43:25,349 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:43:25,349 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:43:25,350 [DEBUG][       Thread-612474][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:43:25,350 [DEBUG][       Thread-612474][   transport.py][1871] : userauth is OK
2025-07-01 17:43:25,375 [ INFO][       Thread-612474][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:43:25,375 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:43:26,146 [DEBUG][       Thread-612474][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:43:26,146 [DEBUG][       Thread-612474][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:43:26,189 [DEBUG][       Thread-612474][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:43:26,189 [DEBUG][       Thread-612474][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:43:26,191 [DEBUG][       Thread-612474][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:43:26,205 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:43:26,205 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:43:26,206 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:43:26,207 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:43:26,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:43:26,210 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:43:26,210 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:43:26,210 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:43:26,210 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.654451 -999.00  +12.30  23.34     53   +3.20 1 2 1 1 1   874    0 8.88 -16.40 ----- 29.3 23.3 6.0 37.8 13.0 -20.5 12.8 -21.1 12.7 -20.3 13.0 -19.3
2025-07-01 17:43:26,210 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:43:26,210 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:43:26,210 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.654451
2025-07-01 17:43:26,211 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:43:26,211 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:43:26,211 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:43:26,211 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:43:26,211 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:43:26,211 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:42:54', tmtdew=10.51, humidity=48.87, cloud=0.0, wind=38.39, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:42:24.566', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:43:26,212 [DEBUG][       Thread-612474][   transport.py][1871] : EOF in transport thread
2025-07-01 17:43:26,285 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:43:26,296 [DEBUG][       Thread-612477][   transport.py][1871] : starting thread (client mode): 0x827d540
2025-07-01 17:43:26,297 [DEBUG][       Thread-612477][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:43:26,317 [DEBUG][       Thread-612477][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:43:26,317 [ INFO][       Thread-612477][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:43:26,325 [DEBUG][       Thread-612477][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:43:26,325 [DEBUG][       Thread-612477][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:43:26,325 [DEBUG][       Thread-612477][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:43:26,325 [DEBUG][       Thread-612477][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:43:26,325 [DEBUG][       Thread-612477][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:43:26,325 [DEBUG][       Thread-612477][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:43:26,325 [DEBUG][       Thread-612477][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:43:26,325 [DEBUG][       Thread-612477][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:43:26,325 [DEBUG][       Thread-612477][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:43:26,325 [DEBUG][       Thread-612477][   transport.py][1871] : client lang: <none>
2025-07-01 17:43:26,325 [DEBUG][       Thread-612477][   transport.py][1871] : server lang: <none>
2025-07-01 17:43:26,325 [DEBUG][       Thread-612477][   transport.py][1871] : kex follows: False
2025-07-01 17:43:26,325 [DEBUG][       Thread-612477][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:43:26,325 [DEBUG][       Thread-612477][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:43:26,325 [DEBUG][       Thread-612477][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:43:26,325 [DEBUG][       Thread-612477][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:43:26,325 [DEBUG][       Thread-612477][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:43:26,325 [DEBUG][       Thread-612477][   transport.py][1871] : Compression: none
2025-07-01 17:43:26,325 [DEBUG][       Thread-612477][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:43:26,382 [DEBUG][       Thread-612477][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:43:26,383 [DEBUG][       Thread-612477][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:43:26,383 [DEBUG][       Thread-612477][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:43:26,383 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:43:26,383 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:43:26,443 [DEBUG][       Thread-612477][   transport.py][1871] : userauth is OK
2025-07-01 17:43:26,443 [DEBUG][       Thread-612477][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:43:26,443 [DEBUG][       Thread-612477][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:43:26,443 [DEBUG][       Thread-612477][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:43:26,443 [DEBUG][       Thread-612477][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:43:26,458 [ INFO][       Thread-612477][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:43:26,458 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:43:26,458 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:43:27,511 [DEBUG][       Thread-612477][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:43:27,511 [DEBUG][       Thread-612477][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:43:27,561 [DEBUG][       Thread-612477][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:43:27,561 [DEBUG][       Thread-612477][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:43:27,573 [DEBUG][       Thread-612477][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:43:27,581 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:43:27,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-07-01 17:43:27,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-07-01 17:43:27,597 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:43:27,597 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:43:27,597 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:43:27,605 [DEBUG][       Thread-612477][   transport.py][1871] : EOF in transport thread
2025-07-01 17:43:32,953 [DEBUG][Thread-612479 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:43:37,607 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:43:37,608 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:43:37,608 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:43:37,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-07-01 17:43:38,096 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 43, 25), 10.5, 48.66, 0.0, 36.28, 12.54, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:43:38,096 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:43:25
2025-07-01 17:43:38,179 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:43:38,183 [DEBUG][       Thread-612480][   transport.py][1871] : starting thread (client mode): 0x818ee00
2025-07-01 17:43:38,183 [DEBUG][       Thread-612480][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:43:38,204 [DEBUG][       Thread-612480][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:43:38,204 [ INFO][       Thread-612480][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:43:38,207 [DEBUG][       Thread-612480][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:43:38,207 [DEBUG][       Thread-612480][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:43:38,207 [DEBUG][       Thread-612480][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:43:38,207 [DEBUG][       Thread-612480][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:43:38,207 [DEBUG][       Thread-612480][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:43:38,207 [DEBUG][       Thread-612480][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:43:38,207 [DEBUG][       Thread-612480][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:43:38,207 [DEBUG][       Thread-612480][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:43:38,207 [DEBUG][       Thread-612480][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:43:38,207 [DEBUG][       Thread-612480][   transport.py][1871] : client lang: <none>
2025-07-01 17:43:38,207 [DEBUG][       Thread-612480][   transport.py][1871] : server lang: <none>
2025-07-01 17:43:38,207 [DEBUG][       Thread-612480][   transport.py][1871] : kex follows: False
2025-07-01 17:43:38,207 [DEBUG][       Thread-612480][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:43:38,207 [DEBUG][       Thread-612480][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:43:38,207 [DEBUG][       Thread-612480][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:43:38,207 [DEBUG][       Thread-612480][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:43:38,207 [DEBUG][       Thread-612480][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:43:38,207 [DEBUG][       Thread-612480][   transport.py][1871] : Compression: none
2025-07-01 17:43:38,207 [DEBUG][       Thread-612480][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:43:38,222 [DEBUG][       Thread-612480][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:43:38,222 [DEBUG][       Thread-612480][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:43:38,222 [DEBUG][       Thread-612480][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:43:38,223 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:43:38,223 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:43:38,223 [DEBUG][       Thread-612480][   transport.py][1871] : userauth is OK
2025-07-01 17:43:38,235 [ INFO][       Thread-612480][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:43:38,235 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:43:38,882 [DEBUG][       Thread-612480][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:43:38,883 [DEBUG][       Thread-612480][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:43:38,925 [DEBUG][       Thread-612480][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:43:38,925 [DEBUG][       Thread-612480][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:43:38,928 [DEBUG][       Thread-612480][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:43:38,939 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:43:38,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:43:38,941 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:43:38,943 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:43:38,948 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:43:38,950 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:43:38,950 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:43:38,951 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:43:38,951 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.654798 -999.00  +12.40  25.63     53   +3.20 1 2 1 1 1   873    0 8.95 -16.31 ----- 29.2 25.6 5.8 44.4 13.0 -20.2 12.8 -20.9 12.6 -19.9 12.9 -19.0
2025-07-01 17:43:38,951 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:43:38,951 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:43:38,951 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.654798
2025-07-01 17:43:38,951 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:43:38,952 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:43:38,952 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:43:38,952 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:43:38,952 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:43:38,952 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:43:25', tmtdew=10.5, humidity=48.66, cloud=0.0, wind=36.28, temperature=12.54, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:42:54.547', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:43:38,953 [DEBUG][       Thread-612480][   transport.py][1871] : EOF in transport thread
2025-07-01 17:43:39,027 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:43:39,045 [DEBUG][       Thread-612483][   transport.py][1871] : starting thread (client mode): 0x8173310
2025-07-01 17:43:39,045 [DEBUG][       Thread-612483][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:43:39,063 [DEBUG][       Thread-612483][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:43:39,063 [ INFO][       Thread-612483][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:43:39,071 [DEBUG][       Thread-612483][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:43:39,071 [DEBUG][       Thread-612483][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:43:39,071 [DEBUG][       Thread-612483][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:43:39,071 [DEBUG][       Thread-612483][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:43:39,071 [DEBUG][       Thread-612483][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:43:39,071 [DEBUG][       Thread-612483][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:43:39,071 [DEBUG][       Thread-612483][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:43:39,071 [DEBUG][       Thread-612483][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:43:39,071 [DEBUG][       Thread-612483][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:43:39,071 [DEBUG][       Thread-612483][   transport.py][1871] : client lang: <none>
2025-07-01 17:43:39,071 [DEBUG][       Thread-612483][   transport.py][1871] : server lang: <none>
2025-07-01 17:43:39,071 [DEBUG][       Thread-612483][   transport.py][1871] : kex follows: False
2025-07-01 17:43:39,071 [DEBUG][       Thread-612483][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:43:39,071 [DEBUG][       Thread-612483][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:43:39,071 [DEBUG][       Thread-612483][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:43:39,071 [DEBUG][       Thread-612483][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:43:39,071 [DEBUG][       Thread-612483][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:43:39,071 [DEBUG][       Thread-612483][   transport.py][1871] : Compression: none
2025-07-01 17:43:39,071 [DEBUG][       Thread-612483][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:43:39,126 [DEBUG][       Thread-612483][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:43:39,126 [DEBUG][       Thread-612483][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:43:39,126 [DEBUG][       Thread-612483][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:43:39,126 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:43:39,126 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:43:39,183 [DEBUG][       Thread-612483][   transport.py][1871] : userauth is OK
2025-07-01 17:43:39,183 [DEBUG][       Thread-612483][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:43:39,183 [DEBUG][       Thread-612483][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:43:39,183 [DEBUG][       Thread-612483][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:43:39,183 [DEBUG][       Thread-612483][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:43:39,198 [ INFO][       Thread-612483][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:43:39,198 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:43:39,198 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:43:40,207 [DEBUG][       Thread-612483][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:43:40,207 [DEBUG][       Thread-612483][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:43:40,255 [DEBUG][       Thread-612483][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:43:40,255 [DEBUG][       Thread-612483][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:43:40,263 [DEBUG][       Thread-612483][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:43:40,271 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:43: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-07-01 17:43:40,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-07-01 17:43:40,287 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:43:40,287 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:43:40,287 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:43:40,295 [DEBUG][       Thread-612483][   transport.py][1871] : EOF in transport thread
2025-07-01 17:43:41,087 [DEBUG][Thread-612485 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:43:41,990 [DEBUG][Thread-612486 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:43:50,298 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:43:50,298 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:43:50,298 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:43:50,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-07-01 17:43:50,784 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 43, 25), 10.5, 48.66, 0.0, 36.28, 12.54, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:43:50,784 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:43:25
2025-07-01 17:43:50,868 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:43:50,873 [DEBUG][       Thread-612487][   transport.py][1871] : starting thread (client mode): 0x818d480
2025-07-01 17:43:50,874 [DEBUG][       Thread-612487][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:43:50,895 [DEBUG][       Thread-612487][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:43:50,896 [ INFO][       Thread-612487][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:43:50,899 [DEBUG][       Thread-612487][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:43:50,899 [DEBUG][       Thread-612487][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:43:50,900 [DEBUG][       Thread-612487][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:43:50,900 [DEBUG][       Thread-612487][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:43:50,900 [DEBUG][       Thread-612487][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:43:50,900 [DEBUG][       Thread-612487][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:43:50,900 [DEBUG][       Thread-612487][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:43:50,900 [DEBUG][       Thread-612487][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:43:50,900 [DEBUG][       Thread-612487][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:43:50,900 [DEBUG][       Thread-612487][   transport.py][1871] : client lang: <none>
2025-07-01 17:43:50,900 [DEBUG][       Thread-612487][   transport.py][1871] : server lang: <none>
2025-07-01 17:43:50,900 [DEBUG][       Thread-612487][   transport.py][1871] : kex follows: False
2025-07-01 17:43:50,900 [DEBUG][       Thread-612487][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:43:50,900 [DEBUG][       Thread-612487][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:43:50,900 [DEBUG][       Thread-612487][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:43:50,900 [DEBUG][       Thread-612487][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:43:50,900 [DEBUG][       Thread-612487][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:43:50,900 [DEBUG][       Thread-612487][   transport.py][1871] : Compression: none
2025-07-01 17:43:50,900 [DEBUG][       Thread-612487][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:43:50,917 [DEBUG][       Thread-612487][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:43:50,917 [DEBUG][       Thread-612487][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:43:50,918 [DEBUG][       Thread-612487][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:43:50,918 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:43:50,918 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:43:50,919 [DEBUG][       Thread-612487][   transport.py][1871] : userauth is OK
2025-07-01 17:43:50,932 [ INFO][       Thread-612487][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:43:50,933 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:43:51,024 [DEBUG][Thread-612489 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:43:51,770 [DEBUG][       Thread-612487][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:43:51,770 [DEBUG][       Thread-612487][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:43:51,813 [DEBUG][       Thread-612487][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:43:51,813 [DEBUG][       Thread-612487][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:43:51,816 [DEBUG][       Thread-612487][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:43:51,829 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:43:51,829 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:43:51,831 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:43:51,832 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:43:51,838 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:43:51,839 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:43:51,840 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:43:51,840 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:43:51,840 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.654798 -999.00  +12.40  25.63     53   +3.20 1 2 1 1 1   873    0 8.95 -16.31 ----- 29.2 25.6 5.8 44.4 13.0 -20.2 12.8 -20.9 12.6 -19.9 12.9 -19.0
2025-07-01 17:43:51,841 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:43:51,841 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:43:51,841 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.654798
2025-07-01 17:43:51,841 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:43:51,842 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:43:51,842 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:43:51,842 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:43:51,842 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:43:51,842 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:43:25', tmtdew=10.5, humidity=48.66, cloud=0.0, wind=36.28, temperature=12.54, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:42:54.547', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:43:51,843 [DEBUG][       Thread-612487][   transport.py][1871] : EOF in transport thread
2025-07-01 17:43:51,926 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:43:51,938 [DEBUG][       Thread-612491][   transport.py][1871] : starting thread (client mode): 0x81ca6e0
2025-07-01 17:43:51,938 [DEBUG][       Thread-612491][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:43:51,953 [DEBUG][       Thread-612491][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:43:51,953 [ INFO][       Thread-612491][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:43:51,960 [DEBUG][       Thread-612491][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:43:51,961 [DEBUG][       Thread-612491][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:43:51,961 [DEBUG][       Thread-612491][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:43:51,961 [DEBUG][       Thread-612491][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:43:51,961 [DEBUG][       Thread-612491][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:43:51,961 [DEBUG][       Thread-612491][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:43:51,961 [DEBUG][       Thread-612491][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:43:51,961 [DEBUG][       Thread-612491][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:43:51,961 [DEBUG][       Thread-612491][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:43:51,961 [DEBUG][       Thread-612491][   transport.py][1871] : client lang: <none>
2025-07-01 17:43:51,961 [DEBUG][       Thread-612491][   transport.py][1871] : server lang: <none>
2025-07-01 17:43:51,961 [DEBUG][       Thread-612491][   transport.py][1871] : kex follows: False
2025-07-01 17:43:51,961 [DEBUG][       Thread-612491][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:43:51,961 [DEBUG][       Thread-612491][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:43:51,961 [DEBUG][       Thread-612491][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:43:51,961 [DEBUG][       Thread-612491][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:43:51,961 [DEBUG][       Thread-612491][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:43:51,961 [DEBUG][       Thread-612491][   transport.py][1871] : Compression: none
2025-07-01 17:43:51,961 [DEBUG][       Thread-612491][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:43:52,019 [DEBUG][       Thread-612491][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:43:52,020 [DEBUG][       Thread-612491][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:43:52,020 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:43:52,021 [DEBUG][       Thread-612491][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:43:52,022 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:43:52,076 [DEBUG][       Thread-612491][   transport.py][1871] : userauth is OK
2025-07-01 17:43:52,077 [DEBUG][       Thread-612491][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:43:52,077 [DEBUG][       Thread-612491][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:43:52,077 [DEBUG][       Thread-612491][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:43:52,077 [DEBUG][       Thread-612491][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:43:52,095 [ INFO][       Thread-612491][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:43:52,095 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:43:52,096 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:43:53,124 [DEBUG][       Thread-612491][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:43:53,124 [DEBUG][       Thread-612491][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:43:53,172 [DEBUG][       Thread-612491][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:43:53,172 [DEBUG][       Thread-612491][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:43:53,181 [DEBUG][       Thread-612491][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:43:53,190 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:43:53,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-07-01 17:43:53,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-07-01 17:43:53,208 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:43:53,209 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:43:53,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:43:53,219 [DEBUG][       Thread-612491][   transport.py][1871] : EOF in transport thread
2025-07-01 17:44:00,045 [DEBUG][Thread-612493 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:44:03,220 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:44:03,220 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:44:03,220 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:44:03,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-07-01 17:44:03,717 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 43, 57), 10.49, 48.69, 0.0, 37.86, 12.54, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:44:03,718 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:43:57
2025-07-01 17:44:03,801 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:44:03,805 [DEBUG][       Thread-612494][   transport.py][1871] : starting thread (client mode): 0x82b2ef0
2025-07-01 17:44:03,805 [DEBUG][       Thread-612494][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:44:03,826 [DEBUG][       Thread-612494][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:44:03,826 [ INFO][       Thread-612494][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:44:03,829 [DEBUG][       Thread-612494][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:44:03,829 [DEBUG][       Thread-612494][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:44:03,829 [DEBUG][       Thread-612494][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:44:03,829 [DEBUG][       Thread-612494][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:44:03,829 [DEBUG][       Thread-612494][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:44:03,830 [DEBUG][       Thread-612494][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:44:03,830 [DEBUG][       Thread-612494][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:44:03,830 [DEBUG][       Thread-612494][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:44:03,830 [DEBUG][       Thread-612494][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:44:03,830 [DEBUG][       Thread-612494][   transport.py][1871] : client lang: <none>
2025-07-01 17:44:03,830 [DEBUG][       Thread-612494][   transport.py][1871] : server lang: <none>
2025-07-01 17:44:03,830 [DEBUG][       Thread-612494][   transport.py][1871] : kex follows: False
2025-07-01 17:44:03,830 [DEBUG][       Thread-612494][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:44:03,830 [DEBUG][       Thread-612494][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:44:03,830 [DEBUG][       Thread-612494][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:44:03,830 [DEBUG][       Thread-612494][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:44:03,830 [DEBUG][       Thread-612494][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:44:03,830 [DEBUG][       Thread-612494][   transport.py][1871] : Compression: none
2025-07-01 17:44:03,830 [DEBUG][       Thread-612494][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:44:03,849 [DEBUG][       Thread-612494][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:44:03,850 [DEBUG][       Thread-612494][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:44:03,850 [DEBUG][       Thread-612494][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:44:03,851 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:44:03,851 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:44:03,852 [DEBUG][       Thread-612494][   transport.py][1871] : userauth is OK
2025-07-01 17:44:03,878 [ INFO][       Thread-612494][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:44:03,879 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:44:04,480 [DEBUG][       Thread-612494][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:44:04,480 [DEBUG][       Thread-612494][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:44:04,521 [DEBUG][       Thread-612494][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:44:04,521 [DEBUG][       Thread-612494][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:44:04,524 [DEBUG][       Thread-612494][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:44:04,535 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:44:04,536 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:44:04,537 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:44:04,539 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:44:04,543 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:44:04,545 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:44:04,545 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:44:04,546 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:44:04,546 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.655493 -999.00  +12.40  30.50     53   +3.20 1 2 2 1 1   870    0 8.87 -18.50 ----- 33.8 30.5 17.2 38.2 13.0 -19.5 12.8 -20.1 12.6 -19.1 13.0 -18.0
2025-07-01 17:44:04,546 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:44:04,546 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:44:04,546 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.655493
2025-07-01 17:44:04,547 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:44:04,547 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:44:04,547 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:44:04,547 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:44:04,547 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:44:04,548 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:43:57', tmtdew=10.49, humidity=48.69, cloud=0.0, wind=37.86, temperature=12.54, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:43:54.595', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:44:04,549 [DEBUG][       Thread-612494][   transport.py][1871] : EOF in transport thread
2025-07-01 17:44:04,632 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:44:04,641 [DEBUG][       Thread-612497][   transport.py][1871] : starting thread (client mode): 0x8a65e70
2025-07-01 17:44:04,641 [DEBUG][       Thread-612497][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:44:04,662 [DEBUG][       Thread-612497][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:44:04,662 [ INFO][       Thread-612497][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:44:04,671 [DEBUG][       Thread-612497][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:44:04,672 [DEBUG][       Thread-612497][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:44:04,672 [DEBUG][       Thread-612497][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:44:04,672 [DEBUG][       Thread-612497][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:44:04,672 [DEBUG][       Thread-612497][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:44:04,672 [DEBUG][       Thread-612497][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:44:04,672 [DEBUG][       Thread-612497][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:44:04,672 [DEBUG][       Thread-612497][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:44:04,672 [DEBUG][       Thread-612497][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:44:04,672 [DEBUG][       Thread-612497][   transport.py][1871] : client lang: <none>
2025-07-01 17:44:04,672 [DEBUG][       Thread-612497][   transport.py][1871] : server lang: <none>
2025-07-01 17:44:04,672 [DEBUG][       Thread-612497][   transport.py][1871] : kex follows: False
2025-07-01 17:44:04,672 [DEBUG][       Thread-612497][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:44:04,672 [DEBUG][       Thread-612497][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:44:04,672 [DEBUG][       Thread-612497][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:44:04,673 [DEBUG][       Thread-612497][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:44:04,673 [DEBUG][       Thread-612497][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:44:04,673 [DEBUG][       Thread-612497][   transport.py][1871] : Compression: none
2025-07-01 17:44:04,673 [DEBUG][       Thread-612497][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:44:04,733 [DEBUG][       Thread-612497][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:44:04,733 [DEBUG][       Thread-612497][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:44:04,734 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:44:04,735 [DEBUG][       Thread-612497][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:44:04,735 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:44:04,789 [DEBUG][       Thread-612497][   transport.py][1871] : userauth is OK
2025-07-01 17:44:04,789 [DEBUG][       Thread-612497][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:44:04,789 [DEBUG][       Thread-612497][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:44:04,789 [DEBUG][       Thread-612497][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:44:04,789 [DEBUG][       Thread-612497][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:44:04,813 [ INFO][       Thread-612497][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:44:04,813 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:44:04,813 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:44:05,855 [DEBUG][       Thread-612497][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:44:05,856 [DEBUG][       Thread-612497][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:44:05,909 [DEBUG][       Thread-612497][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:44:05,909 [DEBUG][       Thread-612497][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:44:05,918 [DEBUG][       Thread-612497][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:44:05,928 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:44:05,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-07-01 17:44:05,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-07-01 17:44:05,950 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:44:05,950 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:44:05,951 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:44:05,959 [DEBUG][       Thread-612497][   transport.py][1871] : EOF in transport thread
2025-07-01 17:44:09,064 [DEBUG][Thread-612499 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:44:15,956 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:44:15,956 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:44:15,956 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:44:15,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-07-01 17:44:16,461 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 43, 57), 10.49, 48.69, 0.0, 37.86, 12.54, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:44:16,461 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:43:57
2025-07-01 17:44:16,545 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:44:16,551 [DEBUG][       Thread-612500][   transport.py][1871] : starting thread (client mode): 0x81a4ee0
2025-07-01 17:44:16,551 [DEBUG][       Thread-612500][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:44:16,571 [DEBUG][       Thread-612500][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:44:16,572 [ INFO][       Thread-612500][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:44:16,575 [DEBUG][       Thread-612500][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:44:16,575 [DEBUG][       Thread-612500][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:44:16,575 [DEBUG][       Thread-612500][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:44:16,575 [DEBUG][       Thread-612500][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:44:16,575 [DEBUG][       Thread-612500][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:44:16,575 [DEBUG][       Thread-612500][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:44:16,575 [DEBUG][       Thread-612500][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:44:16,575 [DEBUG][       Thread-612500][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:44:16,575 [DEBUG][       Thread-612500][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:44:16,575 [DEBUG][       Thread-612500][   transport.py][1871] : client lang: <none>
2025-07-01 17:44:16,575 [DEBUG][       Thread-612500][   transport.py][1871] : server lang: <none>
2025-07-01 17:44:16,575 [DEBUG][       Thread-612500][   transport.py][1871] : kex follows: False
2025-07-01 17:44:16,575 [DEBUG][       Thread-612500][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:44:16,575 [DEBUG][       Thread-612500][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:44:16,575 [DEBUG][       Thread-612500][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:44:16,575 [DEBUG][       Thread-612500][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:44:16,575 [DEBUG][       Thread-612500][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:44:16,575 [DEBUG][       Thread-612500][   transport.py][1871] : Compression: none
2025-07-01 17:44:16,575 [DEBUG][       Thread-612500][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:44:16,593 [DEBUG][       Thread-612500][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:44:16,594 [DEBUG][       Thread-612500][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:44:16,594 [DEBUG][       Thread-612500][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:44:16,595 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:44:16,595 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:44:16,596 [DEBUG][       Thread-612500][   transport.py][1871] : userauth is OK
2025-07-01 17:44:16,609 [ INFO][       Thread-612500][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:44:16,609 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:44:17,418 [DEBUG][       Thread-612500][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:44:17,419 [DEBUG][       Thread-612500][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:44:17,461 [DEBUG][       Thread-612500][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:44:17,461 [DEBUG][       Thread-612500][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:44:17,465 [DEBUG][       Thread-612500][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:44:17,479 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:44:17,480 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:44:17,482 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:44:17,483 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:44:17,489 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:44:17,490 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:44:17,491 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:44:17,491 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:44:17,492 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.655493 -999.00  +12.40  30.50     53   +3.20 1 2 2 1 1   870    0 8.87 -18.50 ----- 33.8 30.5 17.2 38.2 13.0 -19.5 12.8 -20.1 12.6 -19.1 13.0 -18.0
2025-07-01 17:44:17,492 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:44:17,492 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:44:17,492 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.655493
2025-07-01 17:44:17,492 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:44:17,493 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:44:17,493 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:44:17,493 [DEBUG][       Thread-612500][   transport.py][1871] : EOF in transport thread
2025-07-01 17:44:17,493 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:44:17,494 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:44:17,494 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:43:57', tmtdew=10.49, humidity=48.69, cloud=0.0, wind=37.86, temperature=12.54, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:43:54.595', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:44:17,577 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:44:17,588 [DEBUG][       Thread-612503][   transport.py][1871] : starting thread (client mode): 0x82b1b10
2025-07-01 17:44:17,588 [DEBUG][       Thread-612503][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:44:17,603 [DEBUG][       Thread-612503][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:44:17,603 [ INFO][       Thread-612503][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:44:17,611 [DEBUG][       Thread-612503][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:44:17,611 [DEBUG][       Thread-612503][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:44:17,611 [DEBUG][       Thread-612503][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:44:17,611 [DEBUG][       Thread-612503][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:44:17,611 [DEBUG][       Thread-612503][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:44:17,611 [DEBUG][       Thread-612503][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:44:17,611 [DEBUG][       Thread-612503][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:44:17,611 [DEBUG][       Thread-612503][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:44:17,611 [DEBUG][       Thread-612503][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:44:17,611 [DEBUG][       Thread-612503][   transport.py][1871] : client lang: <none>
2025-07-01 17:44:17,611 [DEBUG][       Thread-612503][   transport.py][1871] : server lang: <none>
2025-07-01 17:44:17,611 [DEBUG][       Thread-612503][   transport.py][1871] : kex follows: False
2025-07-01 17:44:17,611 [DEBUG][       Thread-612503][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:44:17,611 [DEBUG][       Thread-612503][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:44:17,612 [DEBUG][       Thread-612503][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:44:17,612 [DEBUG][       Thread-612503][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:44:17,612 [DEBUG][       Thread-612503][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:44:17,612 [DEBUG][       Thread-612503][   transport.py][1871] : Compression: none
2025-07-01 17:44:17,612 [DEBUG][       Thread-612503][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:44:17,668 [DEBUG][       Thread-612503][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:44:17,669 [DEBUG][       Thread-612503][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:44:17,669 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:44:17,670 [DEBUG][       Thread-612503][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:44:17,670 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:44:17,724 [DEBUG][       Thread-612503][   transport.py][1871] : userauth is OK
2025-07-01 17:44:17,725 [DEBUG][       Thread-612503][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:44:17,725 [DEBUG][       Thread-612503][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:44:17,725 [DEBUG][       Thread-612503][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:44:17,725 [DEBUG][       Thread-612503][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:44:17,743 [ INFO][       Thread-612503][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:44:17,743 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:44:17,744 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:44:18,094 [DEBUG][Thread-612505 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:44:18,778 [DEBUG][       Thread-612503][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:44:18,778 [DEBUG][       Thread-612503][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:44:18,829 [DEBUG][       Thread-612503][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:44:18,829 [DEBUG][       Thread-612503][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:44:18,841 [DEBUG][       Thread-612503][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:44:18,849 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:44:18,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-07-01 17:44:18,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-07-01 17:44:18,865 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:44:18,865 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:44:18,865 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:44:18,873 [DEBUG][       Thread-612503][   transport.py][1871] : EOF in transport thread
2025-07-01 17:44:27,118 [DEBUG][Thread-612506 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:44:28,875 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:44:28,876 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:44:28,876 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:44:28,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-07-01 17:44:29,369 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 43, 57), 10.49, 48.69, 0.0, 37.86, 12.54, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:44:29,369 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:43:57
2025-07-01 17:44:29,454 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:44:29,459 [DEBUG][       Thread-612507][   transport.py][1871] : starting thread (client mode): 0x81caa40
2025-07-01 17:44:29,459 [DEBUG][       Thread-612507][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:44:29,478 [DEBUG][       Thread-612507][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:44:29,479 [ INFO][       Thread-612507][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:44:29,480 [DEBUG][       Thread-612507][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:44:29,480 [DEBUG][       Thread-612507][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:44:29,480 [DEBUG][       Thread-612507][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:44:29,480 [DEBUG][       Thread-612507][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:44:29,480 [DEBUG][       Thread-612507][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:44:29,480 [DEBUG][       Thread-612507][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:44:29,480 [DEBUG][       Thread-612507][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:44:29,480 [DEBUG][       Thread-612507][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:44:29,480 [DEBUG][       Thread-612507][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:44:29,480 [DEBUG][       Thread-612507][   transport.py][1871] : client lang: <none>
2025-07-01 17:44:29,480 [DEBUG][       Thread-612507][   transport.py][1871] : server lang: <none>
2025-07-01 17:44:29,480 [DEBUG][       Thread-612507][   transport.py][1871] : kex follows: False
2025-07-01 17:44:29,480 [DEBUG][       Thread-612507][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:44:29,480 [DEBUG][       Thread-612507][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:44:29,480 [DEBUG][       Thread-612507][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:44:29,480 [DEBUG][       Thread-612507][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:44:29,480 [DEBUG][       Thread-612507][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:44:29,480 [DEBUG][       Thread-612507][   transport.py][1871] : Compression: none
2025-07-01 17:44:29,480 [DEBUG][       Thread-612507][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:44:29,490 [DEBUG][       Thread-612507][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:44:29,491 [DEBUG][       Thread-612507][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:44:29,491 [DEBUG][       Thread-612507][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:44:29,491 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:44:29,491 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:44:29,491 [DEBUG][       Thread-612507][   transport.py][1871] : userauth is OK
2025-07-01 17:44:29,515 [ INFO][       Thread-612507][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:44:29,515 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:44:30,345 [DEBUG][       Thread-612507][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:44:30,345 [DEBUG][       Thread-612507][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:44:30,388 [DEBUG][       Thread-612507][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:44:30,389 [DEBUG][       Thread-612507][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:44:30,391 [DEBUG][       Thread-612507][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:44:30,403 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:44:30,403 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:44:30,404 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:44:30,405 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:44:30,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:44:30,408 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:44:30,408 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:44:30,408 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:44:30,408 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.655493 -999.00  +12.40  30.50     53   +3.20 1 2 2 1 1   870    0 8.87 -18.50 ----- 33.8 30.5 17.2 38.2 13.0 -19.5 12.8 -20.1 12.6 -19.1 13.0 -18.0
2025-07-01 17:44:30,408 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:44:30,408 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:44:30,408 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.655493
2025-07-01 17:44:30,408 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:44:30,409 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:44:30,409 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:44:30,409 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:44:30,409 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:44:30,409 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:43:57', tmtdew=10.49, humidity=48.69, cloud=0.0, wind=37.86, temperature=12.54, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:43:54.595', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:44:30,409 [DEBUG][       Thread-612507][   transport.py][1871] : EOF in transport thread
2025-07-01 17:44:30,483 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:44:30,495 [DEBUG][       Thread-612510][   transport.py][1871] : starting thread (client mode): 0x8173310
2025-07-01 17:44:30,495 [DEBUG][       Thread-612510][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:44:30,513 [DEBUG][       Thread-612510][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:44:30,513 [ INFO][       Thread-612510][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:44:30,520 [DEBUG][       Thread-612510][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:44:30,520 [DEBUG][       Thread-612510][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:44:30,520 [DEBUG][       Thread-612510][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:44:30,520 [DEBUG][       Thread-612510][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:44:30,520 [DEBUG][       Thread-612510][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:44:30,520 [DEBUG][       Thread-612510][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:44:30,520 [DEBUG][       Thread-612510][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:44:30,520 [DEBUG][       Thread-612510][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:44:30,520 [DEBUG][       Thread-612510][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:44:30,520 [DEBUG][       Thread-612510][   transport.py][1871] : client lang: <none>
2025-07-01 17:44:30,520 [DEBUG][       Thread-612510][   transport.py][1871] : server lang: <none>
2025-07-01 17:44:30,520 [DEBUG][       Thread-612510][   transport.py][1871] : kex follows: False
2025-07-01 17:44:30,521 [DEBUG][       Thread-612510][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:44:30,521 [DEBUG][       Thread-612510][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:44:30,521 [DEBUG][       Thread-612510][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:44:30,521 [DEBUG][       Thread-612510][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:44:30,521 [DEBUG][       Thread-612510][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:44:30,521 [DEBUG][       Thread-612510][   transport.py][1871] : Compression: none
2025-07-01 17:44:30,521 [DEBUG][       Thread-612510][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:44:30,579 [DEBUG][       Thread-612510][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:44:30,579 [DEBUG][       Thread-612510][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:44:30,579 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:44:30,579 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:44:30,579 [DEBUG][       Thread-612510][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:44:30,636 [DEBUG][       Thread-612510][   transport.py][1871] : userauth is OK
2025-07-01 17:44:30,636 [DEBUG][       Thread-612510][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:44:30,636 [DEBUG][       Thread-612510][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:44:30,636 [DEBUG][       Thread-612510][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:44:30,636 [DEBUG][       Thread-612510][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:44:30,650 [ INFO][       Thread-612510][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:44:30,651 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:44:30,651 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:44:31,672 [DEBUG][       Thread-612510][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:44:31,672 [DEBUG][       Thread-612510][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:44:31,720 [DEBUG][       Thread-612510][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:44:31,720 [DEBUG][       Thread-612510][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:44:31,730 [DEBUG][       Thread-612510][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:44:31,739 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:44:31,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-07-01 17:44:31,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-07-01 17:44:31,757 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:44:31,757 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:44:31,758 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:44:31,766 [DEBUG][       Thread-612510][   transport.py][1871] : EOF in transport thread
2025-07-01 17:44:36,142 [DEBUG][Thread-612512 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:44:41,140 [DEBUG][Thread-612513 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:44:41,768 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:44:41,768 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:44:41,768 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:44:41,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-07-01 17:44:42,256 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 44, 28), 10.48, 48.96, 0.0, 36.26, 12.59, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:44:42,256 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:44:28
2025-07-01 17:44:42,340 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:44:42,344 [DEBUG][       Thread-612514][   transport.py][1871] : starting thread (client mode): 0x818f9d0
2025-07-01 17:44:42,344 [DEBUG][       Thread-612514][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:44:42,364 [DEBUG][       Thread-612514][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:44:42,364 [ INFO][       Thread-612514][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:44:42,367 [DEBUG][       Thread-612514][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:44:42,367 [DEBUG][       Thread-612514][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:44:42,367 [DEBUG][       Thread-612514][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:44:42,367 [DEBUG][       Thread-612514][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:44:42,367 [DEBUG][       Thread-612514][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:44:42,367 [DEBUG][       Thread-612514][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:44:42,367 [DEBUG][       Thread-612514][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:44:42,367 [DEBUG][       Thread-612514][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:44:42,367 [DEBUG][       Thread-612514][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:44:42,367 [DEBUG][       Thread-612514][   transport.py][1871] : client lang: <none>
2025-07-01 17:44:42,367 [DEBUG][       Thread-612514][   transport.py][1871] : server lang: <none>
2025-07-01 17:44:42,367 [DEBUG][       Thread-612514][   transport.py][1871] : kex follows: False
2025-07-01 17:44:42,367 [DEBUG][       Thread-612514][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:44:42,367 [DEBUG][       Thread-612514][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:44:42,368 [DEBUG][       Thread-612514][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:44:42,368 [DEBUG][       Thread-612514][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:44:42,368 [DEBUG][       Thread-612514][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:44:42,368 [DEBUG][       Thread-612514][   transport.py][1871] : Compression: none
2025-07-01 17:44:42,368 [DEBUG][       Thread-612514][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:44:42,383 [DEBUG][       Thread-612514][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:44:42,384 [DEBUG][       Thread-612514][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:44:42,384 [DEBUG][       Thread-612514][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:44:42,385 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:44:42,385 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:44:42,386 [DEBUG][       Thread-612514][   transport.py][1871] : userauth is OK
2025-07-01 17:44:42,399 [ INFO][       Thread-612514][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:44:42,399 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:44:43,066 [DEBUG][       Thread-612514][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:44:43,066 [DEBUG][       Thread-612514][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:44:43,109 [DEBUG][       Thread-612514][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:44:43,109 [DEBUG][       Thread-612514][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:44:43,113 [DEBUG][       Thread-612514][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:44:43,125 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:44:43,125 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:44:43,127 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:44:43,129 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:44:43,135 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:44:43,137 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:44:43,138 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:44:43,138 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:44:43,139 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.655840 -999.00  +12.30  19.81     53   +3.20 1 2 1 1 1   868    0 8.94 -20.21 ----- 28.2 19.8 358.6 40.6 13.0 -18.8 12.8 -19.7 12.6 -18.7 12.9 -17.6
2025-07-01 17:44:43,139 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:44:43,139 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:44:43,139 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.655840
2025-07-01 17:44:43,139 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:44:43,140 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:44:43,140 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:44:43,140 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:44:43,140 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:44:43,140 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:44:28', tmtdew=10.48, humidity=48.96, cloud=0.0, wind=36.26, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:44:24.576', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:44:43,141 [DEBUG][       Thread-612514][   transport.py][1871] : EOF in transport thread
2025-07-01 17:44:43,223 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:44:43,233 [DEBUG][       Thread-612517][   transport.py][1871] : starting thread (client mode): 0x81a7070
2025-07-01 17:44:43,233 [DEBUG][       Thread-612517][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:44:43,247 [DEBUG][       Thread-612517][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:44:43,248 [ INFO][       Thread-612517][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:44:43,255 [DEBUG][       Thread-612517][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:44:43,255 [DEBUG][       Thread-612517][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:44:43,255 [DEBUG][       Thread-612517][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:44:43,255 [DEBUG][       Thread-612517][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:44:43,255 [DEBUG][       Thread-612517][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:44:43,255 [DEBUG][       Thread-612517][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:44:43,255 [DEBUG][       Thread-612517][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:44:43,255 [DEBUG][       Thread-612517][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:44:43,255 [DEBUG][       Thread-612517][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:44:43,255 [DEBUG][       Thread-612517][   transport.py][1871] : client lang: <none>
2025-07-01 17:44:43,255 [DEBUG][       Thread-612517][   transport.py][1871] : server lang: <none>
2025-07-01 17:44:43,255 [DEBUG][       Thread-612517][   transport.py][1871] : kex follows: False
2025-07-01 17:44:43,255 [DEBUG][       Thread-612517][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:44:43,255 [DEBUG][       Thread-612517][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:44:43,255 [DEBUG][       Thread-612517][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:44:43,255 [DEBUG][       Thread-612517][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:44:43,255 [DEBUG][       Thread-612517][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:44:43,256 [DEBUG][       Thread-612517][   transport.py][1871] : Compression: none
2025-07-01 17:44:43,256 [DEBUG][       Thread-612517][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:44:43,312 [DEBUG][       Thread-612517][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:44:43,313 [DEBUG][       Thread-612517][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:44:43,313 [DEBUG][       Thread-612517][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:44:43,314 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:44:43,314 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:44:43,369 [DEBUG][       Thread-612517][   transport.py][1871] : userauth is OK
2025-07-01 17:44:43,369 [DEBUG][       Thread-612517][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:44:43,369 [DEBUG][       Thread-612517][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:44:43,369 [DEBUG][       Thread-612517][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:44:43,369 [DEBUG][       Thread-612517][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:44:43,388 [ INFO][       Thread-612517][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:44:43,389 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:44:43,389 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:44:44,391 [DEBUG][       Thread-612517][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:44:44,391 [DEBUG][       Thread-612517][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:44:44,440 [DEBUG][       Thread-612517][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:44:44,440 [DEBUG][       Thread-612517][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:44:44,449 [DEBUG][       Thread-612517][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:44:44,458 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:44:44,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')
2025-07-01 17: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') -> 00000000
2025-07-01 17:44:44,476 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:44:44,476 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:44:44,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:44:44,484 [DEBUG][       Thread-612517][   transport.py][1871] : EOF in transport thread
2025-07-01 17:44:45,164 [DEBUG][Thread-612519 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:44:54,199 [DEBUG][Thread-612520 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:44:54,487 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:44:54,487 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:44:54,488 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:44:54,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-07-01 17:44:54,962 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 44, 28), 10.48, 48.96, 0.0, 36.26, 12.59, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:44:54,962 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:44:28
2025-07-01 17:44:55,045 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:44:55,051 [DEBUG][       Thread-612521][   transport.py][1871] : starting thread (client mode): 0x818da50
2025-07-01 17:44:55,051 [DEBUG][       Thread-612521][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:44:55,071 [DEBUG][       Thread-612521][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:44:55,072 [ INFO][       Thread-612521][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:44:55,073 [DEBUG][       Thread-612521][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:44:55,073 [DEBUG][       Thread-612521][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:44:55,073 [DEBUG][       Thread-612521][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:44:55,073 [DEBUG][       Thread-612521][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:44:55,073 [DEBUG][       Thread-612521][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:44:55,073 [DEBUG][       Thread-612521][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:44:55,073 [DEBUG][       Thread-612521][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:44:55,073 [DEBUG][       Thread-612521][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:44:55,073 [DEBUG][       Thread-612521][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:44:55,073 [DEBUG][       Thread-612521][   transport.py][1871] : client lang: <none>
2025-07-01 17:44:55,073 [DEBUG][       Thread-612521][   transport.py][1871] : server lang: <none>
2025-07-01 17:44:55,073 [DEBUG][       Thread-612521][   transport.py][1871] : kex follows: False
2025-07-01 17:44:55,073 [DEBUG][       Thread-612521][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:44:55,073 [DEBUG][       Thread-612521][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:44:55,073 [DEBUG][       Thread-612521][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:44:55,073 [DEBUG][       Thread-612521][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:44:55,073 [DEBUG][       Thread-612521][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:44:55,073 [DEBUG][       Thread-612521][   transport.py][1871] : Compression: none
2025-07-01 17:44:55,073 [DEBUG][       Thread-612521][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:44:55,082 [DEBUG][       Thread-612521][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:44:55,082 [DEBUG][       Thread-612521][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:44:55,082 [DEBUG][       Thread-612521][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:44:55,083 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:44:55,083 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:44:55,084 [DEBUG][       Thread-612521][   transport.py][1871] : userauth is OK
2025-07-01 17:44:55,108 [ INFO][       Thread-612521][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:44:55,109 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:44:55,722 [DEBUG][       Thread-612521][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:44:55,723 [DEBUG][       Thread-612521][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:44:55,765 [DEBUG][       Thread-612521][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:44:55,765 [DEBUG][       Thread-612521][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:44:55,768 [DEBUG][       Thread-612521][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:44:55,780 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:44:55,780 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:44:55,782 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:44:55,784 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:44:55,790 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:44:55,792 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:44:55,792 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:44:55,792 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:44:55,793 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.655840 -999.00  +12.30  19.81     53   +3.20 1 2 1 1 1   868    0 8.94 -20.21 ----- 28.2 19.8 358.6 40.6 13.0 -18.8 12.8 -19.7 12.6 -18.7 12.9 -17.6
2025-07-01 17:44:55,793 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:44:55,793 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:44:55,793 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.655840
2025-07-01 17:44:55,793 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:44:55,794 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:44:55,794 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:44:55,794 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:44:55,794 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:44:55,794 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:44:28', tmtdew=10.48, humidity=48.96, cloud=0.0, wind=36.26, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:44:24.576', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:44:55,795 [DEBUG][       Thread-612521][   transport.py][1871] : EOF in transport thread
2025-07-01 17:44:55,878 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:44:55,891 [DEBUG][       Thread-612524][   transport.py][1871] : starting thread (client mode): 0x81e6b90
2025-07-01 17:44:55,891 [DEBUG][       Thread-612524][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:44:55,910 [DEBUG][       Thread-612524][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:44:55,910 [ INFO][       Thread-612524][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:44:55,918 [DEBUG][       Thread-612524][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:44:55,918 [DEBUG][       Thread-612524][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:44:55,918 [DEBUG][       Thread-612524][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:44:55,918 [DEBUG][       Thread-612524][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:44:55,918 [DEBUG][       Thread-612524][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:44:55,918 [DEBUG][       Thread-612524][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:44:55,918 [DEBUG][       Thread-612524][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:44:55,918 [DEBUG][       Thread-612524][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:44:55,918 [DEBUG][       Thread-612524][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:44:55,918 [DEBUG][       Thread-612524][   transport.py][1871] : client lang: <none>
2025-07-01 17:44:55,918 [DEBUG][       Thread-612524][   transport.py][1871] : server lang: <none>
2025-07-01 17:44:55,918 [DEBUG][       Thread-612524][   transport.py][1871] : kex follows: False
2025-07-01 17:44:55,918 [DEBUG][       Thread-612524][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:44:55,919 [DEBUG][       Thread-612524][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:44:55,919 [DEBUG][       Thread-612524][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:44:55,919 [DEBUG][       Thread-612524][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:44:55,919 [DEBUG][       Thread-612524][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:44:55,919 [DEBUG][       Thread-612524][   transport.py][1871] : Compression: none
2025-07-01 17:44:55,919 [DEBUG][       Thread-612524][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:44:55,975 [DEBUG][       Thread-612524][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:44:55,975 [DEBUG][       Thread-612524][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:44:55,975 [DEBUG][       Thread-612524][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:44:55,975 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:44:55,975 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:44:56,032 [DEBUG][       Thread-612524][   transport.py][1871] : userauth is OK
2025-07-01 17:44:56,032 [DEBUG][       Thread-612524][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:44:56,032 [DEBUG][       Thread-612524][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:44:56,032 [DEBUG][       Thread-612524][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:44:56,032 [DEBUG][       Thread-612524][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:44:56,051 [ INFO][       Thread-612524][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:44:56,051 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:44:56,051 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:44:57,079 [DEBUG][       Thread-612524][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:44:57,080 [DEBUG][       Thread-612524][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:44:57,128 [DEBUG][       Thread-612524][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:44:57,128 [DEBUG][       Thread-612524][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:44:57,138 [DEBUG][       Thread-612524][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:44:57,147 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:44:57,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-07-01 17:44:57,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-07-01 17:44:57,165 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:44:57,166 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:44:57,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:44:57,174 [DEBUG][       Thread-612524][   transport.py][1871] : EOF in transport thread
2025-07-01 17:45:03,217 [DEBUG][Thread-612526 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:45:07,177 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:45:07,177 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:45:07,177 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:45:07,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-07-01 17:45:07,664 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 45), 10.47, 49.0, 0.0, 35.18, 12.55, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:45:07,664 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:45:00
2025-07-01 17:45:07,746 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:45:07,750 [DEBUG][       Thread-612527][   transport.py][1871] : starting thread (client mode): 0x818d0c0
2025-07-01 17:45:07,750 [DEBUG][       Thread-612527][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:45:07,762 [DEBUG][       Thread-612527][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:45:07,762 [ INFO][       Thread-612527][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:45:07,764 [DEBUG][       Thread-612527][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:45:07,764 [DEBUG][       Thread-612527][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:45:07,764 [DEBUG][       Thread-612527][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:45:07,764 [DEBUG][       Thread-612527][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:45:07,764 [DEBUG][       Thread-612527][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:45:07,764 [DEBUG][       Thread-612527][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:45:07,764 [DEBUG][       Thread-612527][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:45:07,764 [DEBUG][       Thread-612527][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:45:07,764 [DEBUG][       Thread-612527][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:45:07,764 [DEBUG][       Thread-612527][   transport.py][1871] : client lang: <none>
2025-07-01 17:45:07,764 [DEBUG][       Thread-612527][   transport.py][1871] : server lang: <none>
2025-07-01 17:45:07,764 [DEBUG][       Thread-612527][   transport.py][1871] : kex follows: False
2025-07-01 17:45:07,764 [DEBUG][       Thread-612527][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:45:07,764 [DEBUG][       Thread-612527][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:45:07,764 [DEBUG][       Thread-612527][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:45:07,764 [DEBUG][       Thread-612527][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:45:07,764 [DEBUG][       Thread-612527][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:45:07,764 [DEBUG][       Thread-612527][   transport.py][1871] : Compression: none
2025-07-01 17:45:07,764 [DEBUG][       Thread-612527][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:45:07,779 [DEBUG][       Thread-612527][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:45:07,779 [DEBUG][       Thread-612527][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:45:07,779 [DEBUG][       Thread-612527][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:45:07,780 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:45:07,780 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:45:07,781 [DEBUG][       Thread-612527][   transport.py][1871] : userauth is OK
2025-07-01 17:45:07,794 [ INFO][       Thread-612527][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:45:07,794 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:45:08,365 [DEBUG][       Thread-612527][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:45:08,366 [DEBUG][       Thread-612527][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:45:08,408 [DEBUG][       Thread-612527][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:45:08,409 [DEBUG][       Thread-612527][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:45:08,411 [DEBUG][       Thread-612527][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:45:08,421 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:45:08,421 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:45:08,422 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:45:08,422 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:45:08,425 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:45:08,426 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:45:08,426 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:45:08,426 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:45:08,426 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.656187 -999.00  +12.30  35.88     53   +3.20 1 2 2 1 1   867    0 8.66 -21.75 ----- 29.9 35.9 17.7 39.5 13.0 -18.4 12.8 -19.1 12.6 -18.2 12.9 -17.2
2025-07-01 17:45:08,426 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:45:08,426 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:45:08,426 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.656187
2025-07-01 17:45:08,426 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:45:08,426 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:45:08,426 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:45:08,426 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:45:08,426 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:45:08,426 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:45:00', tmtdew=10.47, humidity=49.0, cloud=0.0, wind=35.18, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:44:54.557', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:45:08,427 [DEBUG][       Thread-612527][   transport.py][1871] : EOF in transport thread
2025-07-01 17:45:08,498 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:45:08,508 [DEBUG][       Thread-612530][   transport.py][1871] : starting thread (client mode): 0x82b18a0
2025-07-01 17:45:08,508 [DEBUG][       Thread-612530][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:45:08,525 [DEBUG][       Thread-612530][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:45:08,525 [ INFO][       Thread-612530][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:45:08,532 [DEBUG][       Thread-612530][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:45:08,532 [DEBUG][       Thread-612530][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:45:08,532 [DEBUG][       Thread-612530][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:45:08,532 [DEBUG][       Thread-612530][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:45:08,532 [DEBUG][       Thread-612530][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:45:08,532 [DEBUG][       Thread-612530][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:45:08,532 [DEBUG][       Thread-612530][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:45:08,532 [DEBUG][       Thread-612530][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:45:08,532 [DEBUG][       Thread-612530][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:45:08,532 [DEBUG][       Thread-612530][   transport.py][1871] : client lang: <none>
2025-07-01 17:45:08,532 [DEBUG][       Thread-612530][   transport.py][1871] : server lang: <none>
2025-07-01 17:45:08,532 [DEBUG][       Thread-612530][   transport.py][1871] : kex follows: False
2025-07-01 17:45:08,532 [DEBUG][       Thread-612530][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:45:08,532 [DEBUG][       Thread-612530][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:45:08,533 [DEBUG][       Thread-612530][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:45:08,533 [DEBUG][       Thread-612530][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:45:08,533 [DEBUG][       Thread-612530][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:45:08,533 [DEBUG][       Thread-612530][   transport.py][1871] : Compression: none
2025-07-01 17:45:08,533 [DEBUG][       Thread-612530][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:45:08,589 [DEBUG][       Thread-612530][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:45:08,590 [DEBUG][       Thread-612530][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:45:08,590 [DEBUG][       Thread-612530][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:45:08,590 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:45:08,591 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:45:08,645 [DEBUG][       Thread-612530][   transport.py][1871] : userauth is OK
2025-07-01 17:45:08,645 [DEBUG][       Thread-612530][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:45:08,645 [DEBUG][       Thread-612530][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:45:08,645 [DEBUG][       Thread-612530][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:45:08,645 [DEBUG][       Thread-612530][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:45:08,664 [ INFO][       Thread-612530][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:45:08,664 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:45:08,665 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:45:09,721 [DEBUG][       Thread-612530][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:45:09,722 [DEBUG][       Thread-612530][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:45:09,772 [DEBUG][       Thread-612530][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:45:09,772 [DEBUG][       Thread-612530][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:45:09,781 [DEBUG][       Thread-612530][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:45:09,791 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:45:09,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-07-01 17:45:09,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-07-01 17:45:09,809 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:45:09,809 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:45:09,810 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:45:09,818 [DEBUG][       Thread-612530][   transport.py][1871] : EOF in transport thread
2025-07-01 17:45:12,238 [DEBUG][Thread-612532 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:45:19,820 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:45:19,821 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:45:19,821 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:45:19,824 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:45:20,291 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 45), 10.47, 49.0, 0.0, 35.18, 12.55, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:45:20,291 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:45:00
2025-07-01 17:45:20,374 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:45:20,378 [DEBUG][       Thread-612533][   transport.py][1871] : starting thread (client mode): 0x82b1960
2025-07-01 17:45:20,378 [DEBUG][       Thread-612533][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:45:20,398 [DEBUG][       Thread-612533][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:45:20,398 [ INFO][       Thread-612533][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:45:20,401 [DEBUG][       Thread-612533][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:45:20,401 [DEBUG][       Thread-612533][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:45:20,401 [DEBUG][       Thread-612533][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:45:20,401 [DEBUG][       Thread-612533][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:45:20,401 [DEBUG][       Thread-612533][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:45:20,401 [DEBUG][       Thread-612533][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:45:20,401 [DEBUG][       Thread-612533][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:45:20,401 [DEBUG][       Thread-612533][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:45:20,401 [DEBUG][       Thread-612533][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:45:20,401 [DEBUG][       Thread-612533][   transport.py][1871] : client lang: <none>
2025-07-01 17:45:20,401 [DEBUG][       Thread-612533][   transport.py][1871] : server lang: <none>
2025-07-01 17:45:20,401 [DEBUG][       Thread-612533][   transport.py][1871] : kex follows: False
2025-07-01 17:45:20,401 [DEBUG][       Thread-612533][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:45:20,402 [DEBUG][       Thread-612533][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:45:20,402 [DEBUG][       Thread-612533][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:45:20,402 [DEBUG][       Thread-612533][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:45:20,402 [DEBUG][       Thread-612533][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:45:20,402 [DEBUG][       Thread-612533][   transport.py][1871] : Compression: none
2025-07-01 17:45:20,402 [DEBUG][       Thread-612533][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:45:20,418 [DEBUG][       Thread-612533][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:45:20,419 [DEBUG][       Thread-612533][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:45:20,419 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:45:20,420 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:45:20,420 [DEBUG][       Thread-612533][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:45:20,421 [DEBUG][       Thread-612533][   transport.py][1871] : userauth is OK
2025-07-01 17:45:20,448 [ INFO][       Thread-612533][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:45:20,448 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:45:21,079 [DEBUG][       Thread-612533][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:45:21,079 [DEBUG][       Thread-612533][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:45:21,121 [DEBUG][       Thread-612533][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:45:21,121 [DEBUG][       Thread-612533][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:45:21,124 [DEBUG][       Thread-612533][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:45:21,138 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:45:21,138 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:45:21,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:45:21,142 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:45:21,147 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:45:21,149 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:45:21,149 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:45:21,150 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:45:21,150 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.656187 -999.00  +12.30  35.88     53   +3.20 1 2 2 1 1   867    0 8.66 -21.75 ----- 29.9 35.9 17.7 39.5 13.0 -18.4 12.8 -19.1 12.6 -18.2 12.9 -17.2
2025-07-01 17:45:21,150 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:45:21,150 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:45:21,150 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.656187
2025-07-01 17:45:21,151 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:45:21,151 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:45:21,152 [DEBUG][       Thread-612533][   transport.py][1871] : EOF in transport thread
2025-07-01 17:45:21,152 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:45:21,152 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:45:21,152 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:45:21,153 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:45:00', tmtdew=10.47, humidity=49.0, cloud=0.0, wind=35.18, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:44:54.557', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:45:21,235 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:45:21,248 [DEBUG][       Thread-612536][   transport.py][1871] : starting thread (client mode): 0x4701ec20
2025-07-01 17:45:21,248 [DEBUG][       Thread-612536][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:45:21,263 [DEBUG][       Thread-612536][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:45:21,263 [ INFO][       Thread-612536][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:45:21,271 [DEBUG][       Thread-612536][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:45:21,271 [DEBUG][       Thread-612536][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:45:21,271 [DEBUG][       Thread-612536][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:45:21,271 [DEBUG][       Thread-612536][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:45:21,271 [DEBUG][       Thread-612536][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:45:21,271 [DEBUG][       Thread-612536][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:45:21,271 [DEBUG][       Thread-612536][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:45:21,271 [DEBUG][       Thread-612536][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:45:21,271 [DEBUG][       Thread-612536][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:45:21,272 [DEBUG][       Thread-612536][   transport.py][1871] : client lang: <none>
2025-07-01 17:45:21,272 [DEBUG][       Thread-612536][   transport.py][1871] : server lang: <none>
2025-07-01 17:45:21,272 [DEBUG][       Thread-612536][   transport.py][1871] : kex follows: False
2025-07-01 17:45:21,272 [DEBUG][       Thread-612536][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:45:21,272 [DEBUG][       Thread-612536][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:45:21,272 [DEBUG][       Thread-612536][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:45:21,272 [DEBUG][       Thread-612536][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:45:21,272 [DEBUG][       Thread-612536][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:45:21,272 [DEBUG][       Thread-612536][   transport.py][1871] : Compression: none
2025-07-01 17:45:21,272 [DEBUG][       Thread-612536][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:45:21,281 [DEBUG][Thread-612538 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:45:21,329 [DEBUG][       Thread-612536][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:45:21,329 [DEBUG][       Thread-612536][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:45:21,330 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:45:21,330 [DEBUG][       Thread-612536][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:45:21,331 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:45:21,385 [DEBUG][       Thread-612536][   transport.py][1871] : userauth is OK
2025-07-01 17:45:21,385 [DEBUG][       Thread-612536][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:45:21,385 [DEBUG][       Thread-612536][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:45:21,385 [DEBUG][       Thread-612536][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:45:21,386 [DEBUG][       Thread-612536][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:45:21,404 [ INFO][       Thread-612536][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:45:21,405 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:45:21,405 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:45:22,422 [DEBUG][       Thread-612536][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:45:22,422 [DEBUG][       Thread-612536][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:45:22,472 [DEBUG][       Thread-612536][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:45:22,472 [DEBUG][       Thread-612536][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:45:22,481 [DEBUG][       Thread-612536][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:45:22,490 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:45:22,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-07-01 17:45:22,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-07-01 17:45:22,508 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:45:22,509 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:45:22,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:45:22,517 [DEBUG][       Thread-612536][   transport.py][1871] : EOF in transport thread
2025-07-01 17:45:30,305 [DEBUG][Thread-612539 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:45:32,520 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:45:32,520 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:45:32,520 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:45:32,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-07-01 17:45:32,999 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 45), 10.47, 49.0, 0.0, 35.18, 12.55, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:45:32,999 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:45:00
2025-07-01 17:45:33,083 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:45:33,089 [DEBUG][       Thread-612540][   transport.py][1871] : starting thread (client mode): 0x81da3b0
2025-07-01 17:45:33,089 [DEBUG][       Thread-612540][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:45:33,111 [DEBUG][       Thread-612540][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:45:33,111 [ INFO][       Thread-612540][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:45:33,113 [DEBUG][       Thread-612540][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:45:33,113 [DEBUG][       Thread-612540][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:45:33,113 [DEBUG][       Thread-612540][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:45:33,113 [DEBUG][       Thread-612540][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:45:33,113 [DEBUG][       Thread-612540][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:45:33,113 [DEBUG][       Thread-612540][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:45:33,113 [DEBUG][       Thread-612540][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:45:33,113 [DEBUG][       Thread-612540][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:45:33,113 [DEBUG][       Thread-612540][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:45:33,113 [DEBUG][       Thread-612540][   transport.py][1871] : client lang: <none>
2025-07-01 17:45:33,113 [DEBUG][       Thread-612540][   transport.py][1871] : server lang: <none>
2025-07-01 17:45:33,113 [DEBUG][       Thread-612540][   transport.py][1871] : kex follows: False
2025-07-01 17:45:33,113 [DEBUG][       Thread-612540][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:45:33,113 [DEBUG][       Thread-612540][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:45:33,113 [DEBUG][       Thread-612540][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:45:33,113 [DEBUG][       Thread-612540][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:45:33,113 [DEBUG][       Thread-612540][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:45:33,114 [DEBUG][       Thread-612540][   transport.py][1871] : Compression: none
2025-07-01 17:45:33,114 [DEBUG][       Thread-612540][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:45:33,124 [DEBUG][       Thread-612540][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:45:33,124 [DEBUG][       Thread-612540][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:45:33,124 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:45:33,125 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:45:33,125 [DEBUG][       Thread-612540][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:45:33,125 [DEBUG][       Thread-612540][   transport.py][1871] : userauth is OK
2025-07-01 17:45:33,149 [ INFO][       Thread-612540][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:45:33,149 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:45:33,799 [DEBUG][       Thread-612540][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:45:33,800 [DEBUG][       Thread-612540][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:45:33,840 [DEBUG][       Thread-612540][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:45:33,841 [DEBUG][       Thread-612540][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:45:33,843 [DEBUG][       Thread-612540][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:45:33,857 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:45:33,857 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:45:33,858 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:45:33,859 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:45:33,863 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:45:33,864 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:45:33,864 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:45:33,864 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:45:33,864 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.656187 -999.00  +12.30  35.88     53   +3.20 1 2 2 1 1   867    0 8.66 -21.75 ----- 29.9 35.9 17.7 39.5 13.0 -18.4 12.8 -19.1 12.6 -18.2 12.9 -17.2
2025-07-01 17:45:33,864 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:45:33,864 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:45:33,864 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.656187
2025-07-01 17:45:33,864 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:45:33,864 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:45:33,864 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:45:33,864 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:45:33,864 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:45:33,864 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:45:00', tmtdew=10.47, humidity=49.0, cloud=0.0, wind=35.18, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:44:54.557', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:45:33,865 [DEBUG][       Thread-612540][   transport.py][1871] : EOF in transport thread
2025-07-01 17:45:33,939 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:45:33,950 [DEBUG][       Thread-612543][   transport.py][1871] : starting thread (client mode): 0x8a65e70
2025-07-01 17:45:33,950 [DEBUG][       Thread-612543][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:45:33,967 [DEBUG][       Thread-612543][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:45:33,967 [ INFO][       Thread-612543][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:45:33,974 [DEBUG][       Thread-612543][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:45:33,974 [DEBUG][       Thread-612543][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:45:33,974 [DEBUG][       Thread-612543][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:45:33,974 [DEBUG][       Thread-612543][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:45:33,974 [DEBUG][       Thread-612543][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:45:33,974 [DEBUG][       Thread-612543][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:45:33,974 [DEBUG][       Thread-612543][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:45:33,974 [DEBUG][       Thread-612543][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:45:33,974 [DEBUG][       Thread-612543][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:45:33,974 [DEBUG][       Thread-612543][   transport.py][1871] : client lang: <none>
2025-07-01 17:45:33,974 [DEBUG][       Thread-612543][   transport.py][1871] : server lang: <none>
2025-07-01 17:45:33,974 [DEBUG][       Thread-612543][   transport.py][1871] : kex follows: False
2025-07-01 17:45:33,974 [DEBUG][       Thread-612543][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:45:33,974 [DEBUG][       Thread-612543][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:45:33,974 [DEBUG][       Thread-612543][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:45:33,974 [DEBUG][       Thread-612543][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:45:33,974 [DEBUG][       Thread-612543][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:45:33,974 [DEBUG][       Thread-612543][   transport.py][1871] : Compression: none
2025-07-01 17:45:33,974 [DEBUG][       Thread-612543][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:45:34,031 [DEBUG][       Thread-612543][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:45:34,031 [DEBUG][       Thread-612543][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:45:34,031 [DEBUG][       Thread-612543][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:45:34,031 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:45:34,032 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:45:34,089 [DEBUG][       Thread-612543][   transport.py][1871] : userauth is OK
2025-07-01 17:45:34,089 [DEBUG][       Thread-612543][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:45:34,089 [DEBUG][       Thread-612543][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:45:34,089 [DEBUG][       Thread-612543][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:45:34,089 [DEBUG][       Thread-612543][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:45:34,102 [ INFO][       Thread-612543][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:45:34,103 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:45:34,103 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:45:35,147 [DEBUG][       Thread-612543][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:45:35,148 [DEBUG][       Thread-612543][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:45:35,195 [DEBUG][       Thread-612543][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:45:35,195 [DEBUG][       Thread-612543][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:45:35,204 [DEBUG][       Thread-612543][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:45:35,213 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:45:35,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-07-01 17:45:35,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-07-01 17:45:35,239 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:45:35,239 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:45:35,239 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:45:35,247 [DEBUG][       Thread-612543][   transport.py][1871] : EOF in transport thread
2025-07-01 17:45:39,323 [DEBUG][Thread-612545 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:45:41,194 [DEBUG][Thread-612546 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:45:45,249 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:45:45,250 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:45:45,250 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:45: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-07-01 17:45:45,713 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 45, 32), 10.31, 49.4, 0.0, 39.79, 12.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:45:45,713 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:45:32
2025-07-01 17:45:45,799 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:45:45,803 [DEBUG][       Thread-612547][   transport.py][1871] : starting thread (client mode): 0x82b3a00
2025-07-01 17:45:45,803 [DEBUG][       Thread-612547][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:45:45,824 [DEBUG][       Thread-612547][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:45:45,824 [ INFO][       Thread-612547][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:45:45,828 [DEBUG][       Thread-612547][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:45:45,828 [DEBUG][       Thread-612547][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:45:45,828 [DEBUG][       Thread-612547][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:45:45,828 [DEBUG][       Thread-612547][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:45:45,828 [DEBUG][       Thread-612547][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:45:45,828 [DEBUG][       Thread-612547][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:45:45,828 [DEBUG][       Thread-612547][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:45:45,828 [DEBUG][       Thread-612547][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:45:45,828 [DEBUG][       Thread-612547][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:45:45,828 [DEBUG][       Thread-612547][   transport.py][1871] : client lang: <none>
2025-07-01 17:45:45,828 [DEBUG][       Thread-612547][   transport.py][1871] : server lang: <none>
2025-07-01 17:45:45,828 [DEBUG][       Thread-612547][   transport.py][1871] : kex follows: False
2025-07-01 17:45:45,828 [DEBUG][       Thread-612547][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:45:45,828 [DEBUG][       Thread-612547][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:45:45,828 [DEBUG][       Thread-612547][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:45:45,828 [DEBUG][       Thread-612547][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:45:45,828 [DEBUG][       Thread-612547][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:45:45,828 [DEBUG][       Thread-612547][   transport.py][1871] : Compression: none
2025-07-01 17:45:45,828 [DEBUG][       Thread-612547][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:45:45,842 [DEBUG][       Thread-612547][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:45:45,842 [DEBUG][       Thread-612547][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:45:45,842 [DEBUG][       Thread-612547][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:45:45,842 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:45:45,842 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:45:45,843 [DEBUG][       Thread-612547][   transport.py][1871] : userauth is OK
2025-07-01 17:45:45,856 [ INFO][       Thread-612547][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:45:45,856 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:45:46,539 [DEBUG][       Thread-612547][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:45:46,540 [DEBUG][       Thread-612547][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:45:46,581 [DEBUG][       Thread-612547][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:45:46,581 [DEBUG][       Thread-612547][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:45:46,585 [DEBUG][       Thread-612547][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:45:46,597 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:45:46,598 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:45:46,599 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:45:46,601 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:45:46,606 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:45:46,608 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:45:46,609 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:45:46,609 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:45:46,609 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.656534 -999.00  +12.30  34.72     53   +3.20 1 2 2 1 1   865    0 8.60 -22.14 ----- 20.3 34.7 16.3 46.6 13.0 -18.3 12.8 -18.8 12.6 -17.6 12.9 -17.1
2025-07-01 17:45:46,610 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:45:46,610 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:45:46,610 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.656534
2025-07-01 17:45:46,610 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:45:46,611 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:45:46,611 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:45:46,611 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:45:46,611 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:45:46,611 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:45:32', tmtdew=10.31, humidity=49.4, cloud=0.0, wind=39.79, temperature=12.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:45:24.538', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:45:46,611 [DEBUG][       Thread-612547][   transport.py][1871] : EOF in transport thread
2025-07-01 17:45:46,698 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:45:46,707 [DEBUG][       Thread-612550][   transport.py][1871] : starting thread (client mode): 0x81712d0
2025-07-01 17:45:46,707 [DEBUG][       Thread-612550][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:45:46,721 [DEBUG][       Thread-612550][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:45:46,721 [ INFO][       Thread-612550][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:45:46,729 [DEBUG][       Thread-612550][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:45:46,729 [DEBUG][       Thread-612550][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:45:46,729 [DEBUG][       Thread-612550][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:45:46,729 [DEBUG][       Thread-612550][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:45:46,729 [DEBUG][       Thread-612550][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:45:46,729 [DEBUG][       Thread-612550][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:45:46,730 [DEBUG][       Thread-612550][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:45:46,730 [DEBUG][       Thread-612550][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:45:46,730 [DEBUG][       Thread-612550][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:45:46,730 [DEBUG][       Thread-612550][   transport.py][1871] : client lang: <none>
2025-07-01 17:45:46,730 [DEBUG][       Thread-612550][   transport.py][1871] : server lang: <none>
2025-07-01 17:45:46,730 [DEBUG][       Thread-612550][   transport.py][1871] : kex follows: False
2025-07-01 17:45:46,730 [DEBUG][       Thread-612550][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:45:46,730 [DEBUG][       Thread-612550][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:45:46,730 [DEBUG][       Thread-612550][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:45:46,730 [DEBUG][       Thread-612550][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:45:46,730 [DEBUG][       Thread-612550][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:45:46,730 [DEBUG][       Thread-612550][   transport.py][1871] : Compression: none
2025-07-01 17:45:46,730 [DEBUG][       Thread-612550][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:45:46,786 [DEBUG][       Thread-612550][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:45:46,786 [DEBUG][       Thread-612550][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:45:46,787 [DEBUG][       Thread-612550][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:45:46,787 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:45:46,788 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:45:46,843 [DEBUG][       Thread-612550][   transport.py][1871] : userauth is OK
2025-07-01 17:45:46,843 [DEBUG][       Thread-612550][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:45:46,843 [DEBUG][       Thread-612550][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:45:46,844 [DEBUG][       Thread-612550][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:45:46,844 [DEBUG][       Thread-612550][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:45:46,862 [ INFO][       Thread-612550][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:45:46,862 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:45:46,863 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:45:47,868 [DEBUG][       Thread-612550][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:45:47,869 [DEBUG][       Thread-612550][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:45:47,920 [DEBUG][       Thread-612550][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:45:47,920 [DEBUG][       Thread-612550][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:45:47,930 [DEBUG][       Thread-612550][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:45:47,939 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:45:47,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-07-01 17:45:47,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-07-01 17:45:47,957 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:45:47,957 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:45:47,958 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:45:47,966 [DEBUG][       Thread-612550][   transport.py][1871] : EOF in transport thread
2025-07-01 17:45:48,344 [DEBUG][Thread-612552 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:45:57,374 [DEBUG][Thread-612553 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:45:57,968 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:45:57,968 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:45:57,969 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:45:57,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-07-01 17:45:58,451 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 45, 32), 10.31, 49.4, 0.0, 39.79, 12.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:45:58,451 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:45:32
2025-07-01 17:45:58,536 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:45:58,543 [DEBUG][       Thread-612554][   transport.py][1871] : starting thread (client mode): 0x82b3a30
2025-07-01 17:45:58,543 [DEBUG][       Thread-612554][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:45:58,564 [DEBUG][       Thread-612554][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:45:58,564 [ INFO][       Thread-612554][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:45:58,568 [DEBUG][       Thread-612554][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:45:58,569 [DEBUG][       Thread-612554][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:45:58,569 [DEBUG][       Thread-612554][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:45:58,569 [DEBUG][       Thread-612554][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:45:58,569 [DEBUG][       Thread-612554][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:45:58,569 [DEBUG][       Thread-612554][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:45:58,569 [DEBUG][       Thread-612554][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:45:58,569 [DEBUG][       Thread-612554][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:45:58,569 [DEBUG][       Thread-612554][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:45:58,569 [DEBUG][       Thread-612554][   transport.py][1871] : client lang: <none>
2025-07-01 17:45:58,569 [DEBUG][       Thread-612554][   transport.py][1871] : server lang: <none>
2025-07-01 17:45:58,569 [DEBUG][       Thread-612554][   transport.py][1871] : kex follows: False
2025-07-01 17:45:58,569 [DEBUG][       Thread-612554][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:45:58,569 [DEBUG][       Thread-612554][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:45:58,569 [DEBUG][       Thread-612554][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:45:58,569 [DEBUG][       Thread-612554][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:45:58,569 [DEBUG][       Thread-612554][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:45:58,569 [DEBUG][       Thread-612554][   transport.py][1871] : Compression: none
2025-07-01 17:45:58,569 [DEBUG][       Thread-612554][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:45:58,587 [DEBUG][       Thread-612554][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:45:58,588 [DEBUG][       Thread-612554][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:45:58,588 [DEBUG][       Thread-612554][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:45:58,589 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:45:58,589 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:45:58,590 [DEBUG][       Thread-612554][   transport.py][1871] : userauth is OK
2025-07-01 17:45:58,615 [ INFO][       Thread-612554][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:45:58,615 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:45:59,265 [DEBUG][       Thread-612554][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:45:59,265 [DEBUG][       Thread-612554][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:45:59,309 [DEBUG][       Thread-612554][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:45:59,309 [DEBUG][       Thread-612554][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:45:59,312 [DEBUG][       Thread-612554][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:45:59,324 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:45:59,325 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:45:59,326 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:45:59,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:45:59,334 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:45:59,336 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:45:59,336 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:45:59,337 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:45:59,337 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.656534 -999.00  +12.30  34.72     53   +3.20 1 2 2 1 1   865    0 8.60 -22.14 ----- 20.3 34.7 16.3 46.6 13.0 -18.3 12.8 -18.8 12.6 -17.6 12.9 -17.1
2025-07-01 17:45:59,337 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:45:59,337 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:45:59,337 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.656534
2025-07-01 17:45:59,338 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:45:59,338 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:45:59,339 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:45:59,339 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:45:59,339 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:45:59,339 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:45:32', tmtdew=10.31, humidity=49.4, cloud=0.0, wind=39.79, temperature=12.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:45:24.538', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:45:59,340 [DEBUG][       Thread-612554][   transport.py][1871] : EOF in transport thread
2025-07-01 17:45:59,423 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:45:59,434 [DEBUG][       Thread-612557][   transport.py][1871] : starting thread (client mode): 0x81736d0
2025-07-01 17:45:59,434 [DEBUG][       Thread-612557][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:45:59,449 [DEBUG][       Thread-612557][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:45:59,449 [ INFO][       Thread-612557][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:45:59,457 [DEBUG][       Thread-612557][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:45:59,457 [DEBUG][       Thread-612557][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:45:59,457 [DEBUG][       Thread-612557][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:45:59,457 [DEBUG][       Thread-612557][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:45:59,457 [DEBUG][       Thread-612557][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:45:59,458 [DEBUG][       Thread-612557][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:45:59,458 [DEBUG][       Thread-612557][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:45:59,458 [DEBUG][       Thread-612557][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:45:59,458 [DEBUG][       Thread-612557][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:45:59,458 [DEBUG][       Thread-612557][   transport.py][1871] : client lang: <none>
2025-07-01 17:45:59,458 [DEBUG][       Thread-612557][   transport.py][1871] : server lang: <none>
2025-07-01 17:45:59,458 [DEBUG][       Thread-612557][   transport.py][1871] : kex follows: False
2025-07-01 17:45:59,458 [DEBUG][       Thread-612557][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:45:59,458 [DEBUG][       Thread-612557][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:45:59,458 [DEBUG][       Thread-612557][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:45:59,458 [DEBUG][       Thread-612557][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:45:59,458 [DEBUG][       Thread-612557][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:45:59,458 [DEBUG][       Thread-612557][   transport.py][1871] : Compression: none
2025-07-01 17:45:59,458 [DEBUG][       Thread-612557][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:45:59,518 [DEBUG][       Thread-612557][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:45:59,519 [DEBUG][       Thread-612557][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:45:59,519 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:45:59,520 [DEBUG][       Thread-612557][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:45:59,520 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:45:59,573 [DEBUG][       Thread-612557][   transport.py][1871] : userauth is OK
2025-07-01 17:45:59,574 [DEBUG][       Thread-612557][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:45:59,574 [DEBUG][       Thread-612557][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:45:59,574 [DEBUG][       Thread-612557][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:45:59,574 [DEBUG][       Thread-612557][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:45:59,592 [ INFO][       Thread-612557][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:45:59,593 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:45:59,593 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:46:00,631 [DEBUG][       Thread-612557][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:46:00,631 [DEBUG][       Thread-612557][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:46:00,680 [DEBUG][       Thread-612557][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:46:00,680 [DEBUG][       Thread-612557][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:46:00,690 [DEBUG][       Thread-612557][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:46:00,699 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:46:00,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-07-01 17:46:00,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') -> 00000000
2025-07-01 17:46:00,717 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:46:00,717 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:46:00,717 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:46:00,725 [DEBUG][       Thread-612557][   transport.py][1871] : EOF in transport thread
2025-07-01 17:46:06,393 [DEBUG][Thread-612559 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:46:10,728 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:46:10,728 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:46:10,728 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:46:10,729 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:46:11,193 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 46, 4), 10.32, 49.38, 0.0, 37.32, 12.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:46:11,193 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:46:04
2025-07-01 17:46:11,278 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:46:11,282 [DEBUG][       Thread-612560][   transport.py][1871] : starting thread (client mode): 0x81d82b0
2025-07-01 17:46:11,282 [DEBUG][       Thread-612560][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:46:11,304 [DEBUG][       Thread-612560][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:46:11,304 [ INFO][       Thread-612560][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:46:11,307 [DEBUG][       Thread-612560][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:46:11,308 [DEBUG][       Thread-612560][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:46:11,308 [DEBUG][       Thread-612560][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:46:11,308 [DEBUG][       Thread-612560][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:46:11,308 [DEBUG][       Thread-612560][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:46:11,308 [DEBUG][       Thread-612560][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:46:11,308 [DEBUG][       Thread-612560][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:46:11,308 [DEBUG][       Thread-612560][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:46:11,308 [DEBUG][       Thread-612560][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:46:11,308 [DEBUG][       Thread-612560][   transport.py][1871] : client lang: <none>
2025-07-01 17:46:11,308 [DEBUG][       Thread-612560][   transport.py][1871] : server lang: <none>
2025-07-01 17:46:11,308 [DEBUG][       Thread-612560][   transport.py][1871] : kex follows: False
2025-07-01 17:46:11,308 [DEBUG][       Thread-612560][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:46:11,308 [DEBUG][       Thread-612560][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:46:11,308 [DEBUG][       Thread-612560][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:46:11,308 [DEBUG][       Thread-612560][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:46:11,308 [DEBUG][       Thread-612560][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:46:11,308 [DEBUG][       Thread-612560][   transport.py][1871] : Compression: none
2025-07-01 17:46:11,308 [DEBUG][       Thread-612560][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:46:11,324 [DEBUG][       Thread-612560][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:46:11,325 [DEBUG][       Thread-612560][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:46:11,325 [DEBUG][       Thread-612560][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:46:11,325 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:46:11,326 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:46:11,327 [DEBUG][       Thread-612560][   transport.py][1871] : userauth is OK
2025-07-01 17:46:11,352 [ INFO][       Thread-612560][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:46:11,352 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:46:12,014 [DEBUG][       Thread-612560][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:46:12,014 [DEBUG][       Thread-612560][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:46:12,057 [DEBUG][       Thread-612560][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:46:12,057 [DEBUG][       Thread-612560][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:46:12,060 [DEBUG][       Thread-612560][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:46:12,074 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:46:12,074 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:46:12,076 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:46:12,078 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:46:12,084 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:46:12,085 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:46:12,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:46:12,086 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:46:12,086 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.656534 -999.00  +12.30  34.72     53   +3.20 1 2 2 1 1   865    0 8.60 -22.14 ----- 20.3 34.7 16.3 46.6 13.0 -18.3 12.8 -18.8 12.6 -17.6 12.9 -17.1
2025-07-01 17:46:12,086 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:46:12,087 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:46:12,087 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.656534
2025-07-01 17:46:12,087 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:46:12,088 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:46:12,088 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:46:12,088 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:46:12,088 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:46:12,088 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:46:04', tmtdew=10.32, humidity=49.38, cloud=0.0, wind=37.32, temperature=12.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:45:24.538', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:46:12,088 [DEBUG][       Thread-612560][   transport.py][1871] : EOF in transport thread
2025-07-01 17:46:12,171 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:46:12,181 [DEBUG][       Thread-612563][   transport.py][1871] : starting thread (client mode): 0x81a7f10
2025-07-01 17:46:12,181 [DEBUG][       Thread-612563][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:46:12,196 [DEBUG][       Thread-612563][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:46:12,196 [ INFO][       Thread-612563][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:46:12,204 [DEBUG][       Thread-612563][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:46:12,204 [DEBUG][       Thread-612563][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:46:12,204 [DEBUG][       Thread-612563][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:46:12,204 [DEBUG][       Thread-612563][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:46:12,204 [DEBUG][       Thread-612563][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:46:12,204 [DEBUG][       Thread-612563][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:46:12,204 [DEBUG][       Thread-612563][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:46:12,204 [DEBUG][       Thread-612563][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:46:12,204 [DEBUG][       Thread-612563][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:46:12,204 [DEBUG][       Thread-612563][   transport.py][1871] : client lang: <none>
2025-07-01 17:46:12,204 [DEBUG][       Thread-612563][   transport.py][1871] : server lang: <none>
2025-07-01 17:46:12,204 [DEBUG][       Thread-612563][   transport.py][1871] : kex follows: False
2025-07-01 17:46:12,204 [DEBUG][       Thread-612563][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:46:12,205 [DEBUG][       Thread-612563][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:46:12,205 [DEBUG][       Thread-612563][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:46:12,205 [DEBUG][       Thread-612563][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:46:12,205 [DEBUG][       Thread-612563][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:46:12,205 [DEBUG][       Thread-612563][   transport.py][1871] : Compression: none
2025-07-01 17:46:12,205 [DEBUG][       Thread-612563][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:46:12,262 [DEBUG][       Thread-612563][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:46:12,263 [DEBUG][       Thread-612563][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:46:12,263 [DEBUG][       Thread-612563][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:46:12,263 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:46:12,264 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:46:12,318 [DEBUG][       Thread-612563][   transport.py][1871] : userauth is OK
2025-07-01 17:46:12,318 [DEBUG][       Thread-612563][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:46:12,318 [DEBUG][       Thread-612563][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:46:12,318 [DEBUG][       Thread-612563][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:46:12,318 [DEBUG][       Thread-612563][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:46:12,337 [ INFO][       Thread-612563][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:46:12,337 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:46:12,337 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:46:13,366 [DEBUG][       Thread-612563][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:46:13,366 [DEBUG][       Thread-612563][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:46:13,416 [DEBUG][       Thread-612563][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:46:13,416 [DEBUG][       Thread-612563][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:46:13,426 [DEBUG][       Thread-612563][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:46:13,435 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:46:13,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-07-01 17:46:13,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-07-01 17:46:13,453 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:46:13,454 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:46:13,454 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:46:13,462 [DEBUG][       Thread-612563][   transport.py][1871] : EOF in transport thread
2025-07-01 17:46:15,411 [DEBUG][Thread-612565 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:46:23,465 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:46:23,465 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:46:23,465 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:46:23,468 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:46:23,929 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 46, 4), 10.32, 49.38, 0.0, 37.32, 12.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:46:23,929 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:46:04
2025-07-01 17:46:24,014 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:46:24,019 [DEBUG][       Thread-612566][   transport.py][1871] : starting thread (client mode): 0x818e650
2025-07-01 17:46:24,019 [DEBUG][       Thread-612566][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:46:24,040 [DEBUG][       Thread-612566][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:46:24,040 [ INFO][       Thread-612566][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:46:24,043 [DEBUG][       Thread-612566][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:46:24,043 [DEBUG][       Thread-612566][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:46:24,043 [DEBUG][       Thread-612566][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:46:24,043 [DEBUG][       Thread-612566][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:46:24,043 [DEBUG][       Thread-612566][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:46:24,043 [DEBUG][       Thread-612566][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:46:24,043 [DEBUG][       Thread-612566][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:46:24,043 [DEBUG][       Thread-612566][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:46:24,043 [DEBUG][       Thread-612566][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:46:24,043 [DEBUG][       Thread-612566][   transport.py][1871] : client lang: <none>
2025-07-01 17:46:24,043 [DEBUG][       Thread-612566][   transport.py][1871] : server lang: <none>
2025-07-01 17:46:24,043 [DEBUG][       Thread-612566][   transport.py][1871] : kex follows: False
2025-07-01 17:46:24,043 [DEBUG][       Thread-612566][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:46:24,043 [DEBUG][       Thread-612566][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:46:24,043 [DEBUG][       Thread-612566][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:46:24,043 [DEBUG][       Thread-612566][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:46:24,043 [DEBUG][       Thread-612566][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:46:24,043 [DEBUG][       Thread-612566][   transport.py][1871] : Compression: none
2025-07-01 17:46:24,043 [DEBUG][       Thread-612566][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:46:24,060 [DEBUG][       Thread-612566][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:46:24,060 [DEBUG][       Thread-612566][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:46:24,061 [DEBUG][       Thread-612566][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:46:24,061 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:46:24,061 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:46:24,062 [DEBUG][       Thread-612566][   transport.py][1871] : userauth is OK
2025-07-01 17:46:24,087 [ INFO][       Thread-612566][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:46:24,088 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:46:24,439 [DEBUG][Thread-612568 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:46:24,719 [DEBUG][       Thread-612566][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:46:24,719 [DEBUG][       Thread-612566][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:46:24,761 [DEBUG][       Thread-612566][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:46:24,761 [DEBUG][       Thread-612566][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:46:24,764 [DEBUG][       Thread-612566][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:46:24,776 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:46:24,777 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:46:24,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:46:24,780 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:46:24,785 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:46:24,787 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:46:24,787 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:46:24,788 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:46:24,788 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.656881 -999.00  +12.30  30.29     54   +3.20 1 2 2 1 1   862    0 8.65 -24.27 ----- 23.7 30.3 20.2 40.0 12.9 -18.0 12.8 -18.2 12.6 -17.4 12.9 -17.0
2025-07-01 17:46:24,788 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:46:24,788 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:46:24,788 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.656881
2025-07-01 17:46:24,789 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:46:24,789 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:46:24,789 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:46:24,789 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:46:24,789 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:46:24,790 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:46:04', tmtdew=10.32, humidity=49.38, cloud=0.0, wind=37.32, temperature=12.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:45:54.518', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:46:24,791 [DEBUG][       Thread-612566][   transport.py][1871] : EOF in transport thread
2025-07-01 17:46:24,873 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:46:24,891 [DEBUG][       Thread-612570][   transport.py][1871] : starting thread (client mode): 0x8171480
2025-07-01 17:46:24,891 [DEBUG][       Thread-612570][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:46:24,908 [DEBUG][       Thread-612570][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:46:24,908 [ INFO][       Thread-612570][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:46:24,915 [DEBUG][       Thread-612570][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:46:24,915 [DEBUG][       Thread-612570][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:46:24,916 [DEBUG][       Thread-612570][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:46:24,916 [DEBUG][       Thread-612570][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:46:24,916 [DEBUG][       Thread-612570][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:46:24,916 [DEBUG][       Thread-612570][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:46:24,916 [DEBUG][       Thread-612570][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:46:24,916 [DEBUG][       Thread-612570][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:46:24,916 [DEBUG][       Thread-612570][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:46:24,916 [DEBUG][       Thread-612570][   transport.py][1871] : client lang: <none>
2025-07-01 17:46:24,916 [DEBUG][       Thread-612570][   transport.py][1871] : server lang: <none>
2025-07-01 17:46:24,916 [DEBUG][       Thread-612570][   transport.py][1871] : kex follows: False
2025-07-01 17:46:24,916 [DEBUG][       Thread-612570][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:46:24,916 [DEBUG][       Thread-612570][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:46:24,916 [DEBUG][       Thread-612570][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:46:24,916 [DEBUG][       Thread-612570][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:46:24,916 [DEBUG][       Thread-612570][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:46:24,917 [DEBUG][       Thread-612570][   transport.py][1871] : Compression: none
2025-07-01 17:46:24,917 [DEBUG][       Thread-612570][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:46:24,979 [DEBUG][       Thread-612570][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:46:24,979 [DEBUG][       Thread-612570][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:46:24,980 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:46:24,980 [DEBUG][       Thread-612570][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:46:24,981 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:46:25,038 [DEBUG][       Thread-612570][   transport.py][1871] : userauth is OK
2025-07-01 17:46:25,038 [DEBUG][       Thread-612570][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:46:25,038 [DEBUG][       Thread-612570][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:46:25,038 [DEBUG][       Thread-612570][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:46:25,038 [DEBUG][       Thread-612570][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:46:25,058 [ INFO][       Thread-612570][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:46:25,058 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:46:25,059 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:46:26,110 [DEBUG][       Thread-612570][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:46:26,110 [DEBUG][       Thread-612570][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:46:26,160 [DEBUG][       Thread-612570][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:46:26,160 [DEBUG][       Thread-612570][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:46:26,170 [DEBUG][       Thread-612570][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:46:26,179 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:46:26,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-07-01 17:46:26,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') -> 00000000
2025-07-01 17:46:26,197 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:46:26,198 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:46:26,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:46:26,208 [DEBUG][       Thread-612570][   transport.py][1871] : EOF in transport thread
2025-07-01 17:46:33,461 [DEBUG][Thread-612572 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:46:36,209 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:46:36,209 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:46:36,209 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:46:36,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-07-01 17:46:36,696 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 46, 4), 10.32, 49.38, 0.0, 37.32, 12.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:46:36,696 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:46:04
2025-07-01 17:46:36,784 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:46:36,788 [DEBUG][       Thread-612573][   transport.py][1871] : starting thread (client mode): 0x81c9570
2025-07-01 17:46:36,788 [DEBUG][       Thread-612573][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:46:36,808 [DEBUG][       Thread-612573][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:46:36,808 [ INFO][       Thread-612573][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:46:36,810 [DEBUG][       Thread-612573][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:46:36,810 [DEBUG][       Thread-612573][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:46:36,810 [DEBUG][       Thread-612573][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:46:36,810 [DEBUG][       Thread-612573][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:46:36,810 [DEBUG][       Thread-612573][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:46:36,810 [DEBUG][       Thread-612573][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:46:36,810 [DEBUG][       Thread-612573][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:46:36,810 [DEBUG][       Thread-612573][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:46:36,810 [DEBUG][       Thread-612573][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:46:36,810 [DEBUG][       Thread-612573][   transport.py][1871] : client lang: <none>
2025-07-01 17:46:36,810 [DEBUG][       Thread-612573][   transport.py][1871] : server lang: <none>
2025-07-01 17:46:36,810 [DEBUG][       Thread-612573][   transport.py][1871] : kex follows: False
2025-07-01 17:46:36,810 [DEBUG][       Thread-612573][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:46:36,810 [DEBUG][       Thread-612573][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:46:36,810 [DEBUG][       Thread-612573][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:46:36,810 [DEBUG][       Thread-612573][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:46:36,810 [DEBUG][       Thread-612573][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:46:36,810 [DEBUG][       Thread-612573][   transport.py][1871] : Compression: none
2025-07-01 17:46:36,810 [DEBUG][       Thread-612573][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:46:36,816 [DEBUG][       Thread-612573][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:46:36,817 [DEBUG][       Thread-612573][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:46:36,817 [DEBUG][       Thread-612573][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:46:36,817 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:46:36,817 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:46:36,817 [DEBUG][       Thread-612573][   transport.py][1871] : userauth is OK
2025-07-01 17:46:36,841 [ INFO][       Thread-612573][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:46:36,842 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:46:37,448 [DEBUG][       Thread-612573][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:46:37,448 [DEBUG][       Thread-612573][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:46:37,492 [DEBUG][       Thread-612573][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:46:37,492 [DEBUG][       Thread-612573][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:46:37,495 [DEBUG][       Thread-612573][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:46:37,507 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:46:37,507 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:46:37,508 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:46:37,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:46:37,512 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:46:37,513 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:46:37,513 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:46:37,513 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:46:37,513 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.656881 -999.00  +12.30  30.29     54   +3.20 1 2 2 1 1   862    0 8.65 -24.27 ----- 23.7 30.3 20.2 40.0 12.9 -18.0 12.8 -18.2 12.6 -17.4 12.9 -17.0
2025-07-01 17:46:37,513 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:46:37,513 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:46:37,513 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.656881
2025-07-01 17:46:37,513 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:46:37,513 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:46:37,513 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:46:37,513 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:46:37,513 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:46:37,513 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:46:04', tmtdew=10.32, humidity=49.38, cloud=0.0, wind=37.32, temperature=12.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:45:54.518', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:46:37,514 [DEBUG][       Thread-612573][   transport.py][1871] : EOF in transport thread
2025-07-01 17:46:37,587 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:46:37,596 [DEBUG][       Thread-612576][   transport.py][1871] : starting thread (client mode): 0x81e56f0
2025-07-01 17:46:37,596 [DEBUG][       Thread-612576][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:46:37,614 [DEBUG][       Thread-612576][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:46:37,614 [ INFO][       Thread-612576][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:46:37,624 [DEBUG][       Thread-612576][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:46:37,624 [DEBUG][       Thread-612576][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:46:37,624 [DEBUG][       Thread-612576][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:46:37,624 [DEBUG][       Thread-612576][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:46:37,624 [DEBUG][       Thread-612576][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:46:37,624 [DEBUG][       Thread-612576][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:46:37,624 [DEBUG][       Thread-612576][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:46:37,624 [DEBUG][       Thread-612576][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:46:37,624 [DEBUG][       Thread-612576][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:46:37,624 [DEBUG][       Thread-612576][   transport.py][1871] : client lang: <none>
2025-07-01 17:46:37,624 [DEBUG][       Thread-612576][   transport.py][1871] : server lang: <none>
2025-07-01 17:46:37,624 [DEBUG][       Thread-612576][   transport.py][1871] : kex follows: False
2025-07-01 17:46:37,624 [DEBUG][       Thread-612576][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:46:37,624 [DEBUG][       Thread-612576][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:46:37,624 [DEBUG][       Thread-612576][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:46:37,624 [DEBUG][       Thread-612576][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:46:37,624 [DEBUG][       Thread-612576][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:46:37,624 [DEBUG][       Thread-612576][   transport.py][1871] : Compression: none
2025-07-01 17:46:37,624 [DEBUG][       Thread-612576][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:46:37,676 [DEBUG][       Thread-612576][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:46:37,676 [DEBUG][       Thread-612576][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:46:37,677 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:46:37,677 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:46:37,677 [DEBUG][       Thread-612576][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:46:37,733 [DEBUG][       Thread-612576][   transport.py][1871] : userauth is OK
2025-07-01 17:46:37,734 [DEBUG][       Thread-612576][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:46:37,734 [DEBUG][       Thread-612576][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:46:37,734 [DEBUG][       Thread-612576][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:46:37,734 [DEBUG][       Thread-612576][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:46:37,748 [ INFO][       Thread-612576][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:46:37,748 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:46:37,748 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:46:38,790 [DEBUG][       Thread-612576][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:46:38,790 [DEBUG][       Thread-612576][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:46:38,840 [DEBUG][       Thread-612576][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:46:38,840 [DEBUG][       Thread-612576][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:46:38,849 [DEBUG][       Thread-612576][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:46:38,858 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:46:38,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-07-01 17:46:38,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-07-01 17:46:38,876 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:46:38,876 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:46:38,876 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:46:38,884 [DEBUG][       Thread-612576][   transport.py][1871] : EOF in transport thread
2025-07-01 17:46:41,246 [DEBUG][Thread-612578 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:46:42,482 [DEBUG][Thread-612579 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:46:48,887 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:46:48,887 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:46:48,887 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:46:48,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-07-01 17:46:49,363 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 46, 36), 10.3, 49.34, 0.0, 40.99, 12.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:46:49,363 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:46:36
2025-07-01 17:46:49,448 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:46:49,452 [DEBUG][       Thread-612580][   transport.py][1871] : starting thread (client mode): 0x81e7fa0
2025-07-01 17:46:49,452 [DEBUG][       Thread-612580][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:46:49,472 [DEBUG][       Thread-612580][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:46:49,472 [ INFO][       Thread-612580][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:46:49,476 [DEBUG][       Thread-612580][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:46:49,476 [DEBUG][       Thread-612580][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:46:49,476 [DEBUG][       Thread-612580][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:46:49,476 [DEBUG][       Thread-612580][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:46:49,476 [DEBUG][       Thread-612580][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:46:49,476 [DEBUG][       Thread-612580][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:46:49,476 [DEBUG][       Thread-612580][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:46:49,476 [DEBUG][       Thread-612580][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:46:49,476 [DEBUG][       Thread-612580][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:46:49,476 [DEBUG][       Thread-612580][   transport.py][1871] : client lang: <none>
2025-07-01 17:46:49,476 [DEBUG][       Thread-612580][   transport.py][1871] : server lang: <none>
2025-07-01 17:46:49,476 [DEBUG][       Thread-612580][   transport.py][1871] : kex follows: False
2025-07-01 17:46:49,476 [DEBUG][       Thread-612580][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:46:49,476 [DEBUG][       Thread-612580][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:46:49,476 [DEBUG][       Thread-612580][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:46:49,476 [DEBUG][       Thread-612580][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:46:49,476 [DEBUG][       Thread-612580][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:46:49,476 [DEBUG][       Thread-612580][   transport.py][1871] : Compression: none
2025-07-01 17:46:49,476 [DEBUG][       Thread-612580][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:46:49,493 [DEBUG][       Thread-612580][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:46:49,494 [DEBUG][       Thread-612580][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:46:49,494 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:46:49,494 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:46:49,495 [DEBUG][       Thread-612580][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:46:49,496 [DEBUG][       Thread-612580][   transport.py][1871] : userauth is OK
2025-07-01 17:46:49,520 [ INFO][       Thread-612580][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:46:49,520 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:46:50,149 [DEBUG][       Thread-612580][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:46:50,149 [DEBUG][       Thread-612580][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:46:50,193 [DEBUG][       Thread-612580][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:46:50,193 [DEBUG][       Thread-612580][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:46:50,196 [DEBUG][       Thread-612580][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:46:50,209 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:46:50,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:46:50,211 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:46:50,213 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:46:50,219 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:46:50,221 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:46:50,221 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:46:50,222 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:46:50,222 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.657229 -999.00  +12.30  29.56     54   +3.30 1 2 1 1 1   860    0 8.53 -25.04 ----- 30.8 29.6 18.2 36.3 13.0 -17.7 12.8 -18.0 12.6 -17.2 12.9 -16.7
2025-07-01 17:46:50,222 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:46:50,222 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:46:50,222 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.657229
2025-07-01 17:46:50,223 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:46:50,223 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:46:50,223 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:46:50,223 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:46:50,223 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:46:50,224 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:46:36', tmtdew=10.3, humidity=49.34, cloud=0.0, wind=40.99, temperature=12.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:46:24.586', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:46:50,225 [DEBUG][       Thread-612580][   transport.py][1871] : EOF in transport thread
2025-07-01 17:46:50,307 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:46:50,318 [DEBUG][       Thread-612583][   transport.py][1871] : starting thread (client mode): 0x81a64a0
2025-07-01 17:46:50,318 [DEBUG][       Thread-612583][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:46:50,334 [DEBUG][       Thread-612583][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:46:50,334 [ INFO][       Thread-612583][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:46:50,341 [DEBUG][       Thread-612583][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:46:50,341 [DEBUG][       Thread-612583][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:46:50,341 [DEBUG][       Thread-612583][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:46:50,341 [DEBUG][       Thread-612583][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:46:50,341 [DEBUG][       Thread-612583][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:46:50,342 [DEBUG][       Thread-612583][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:46:50,342 [DEBUG][       Thread-612583][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:46:50,342 [DEBUG][       Thread-612583][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:46:50,342 [DEBUG][       Thread-612583][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:46:50,342 [DEBUG][       Thread-612583][   transport.py][1871] : client lang: <none>
2025-07-01 17:46:50,342 [DEBUG][       Thread-612583][   transport.py][1871] : server lang: <none>
2025-07-01 17:46:50,342 [DEBUG][       Thread-612583][   transport.py][1871] : kex follows: False
2025-07-01 17:46:50,342 [DEBUG][       Thread-612583][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:46:50,342 [DEBUG][       Thread-612583][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:46:50,342 [DEBUG][       Thread-612583][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:46:50,342 [DEBUG][       Thread-612583][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:46:50,342 [DEBUG][       Thread-612583][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:46:50,342 [DEBUG][       Thread-612583][   transport.py][1871] : Compression: none
2025-07-01 17:46:50,342 [DEBUG][       Thread-612583][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:46:50,397 [DEBUG][       Thread-612583][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:46:50,398 [DEBUG][       Thread-612583][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:46:50,398 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:46:50,399 [DEBUG][       Thread-612583][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:46:50,400 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:46:50,454 [DEBUG][       Thread-612583][   transport.py][1871] : userauth is OK
2025-07-01 17:46:50,454 [DEBUG][       Thread-612583][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:46:50,454 [DEBUG][       Thread-612583][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:46:50,454 [DEBUG][       Thread-612583][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:46:50,454 [DEBUG][       Thread-612583][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:46:50,473 [ INFO][       Thread-612583][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:46:50,473 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:46:50,474 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:46:51,503 [DEBUG][Thread-612585 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:46:51,525 [DEBUG][       Thread-612583][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:46:51,525 [DEBUG][       Thread-612583][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:46:51,575 [DEBUG][       Thread-612583][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:46:51,575 [DEBUG][       Thread-612583][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:46:51,584 [DEBUG][       Thread-612583][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:46:51,592 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:46:51,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-07-01 17:46:51,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-07-01 17:46:51,608 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:46:51,608 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:46:51,609 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:46:51,620 [DEBUG][       Thread-612583][   transport.py][1871] : EOF in transport thread
2025-07-01 17:47:00,533 [DEBUG][Thread-612586 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:47:01,619 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:47:01,619 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:47:01,619 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:47:01,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-07-01 17:47:02,090 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 46, 36), 10.3, 49.34, 0.0, 40.99, 12.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:47:02,090 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:46:36
2025-07-01 17:47:02,175 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:47:02,180 [DEBUG][       Thread-612587][   transport.py][1871] : starting thread (client mode): 0x81e5960
2025-07-01 17:47:02,180 [DEBUG][       Thread-612587][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:47:02,200 [DEBUG][       Thread-612587][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:47:02,200 [ INFO][       Thread-612587][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:47:02,203 [DEBUG][       Thread-612587][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:47:02,203 [DEBUG][       Thread-612587][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:47:02,203 [DEBUG][       Thread-612587][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:47:02,203 [DEBUG][       Thread-612587][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:47:02,203 [DEBUG][       Thread-612587][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:47:02,203 [DEBUG][       Thread-612587][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:47:02,203 [DEBUG][       Thread-612587][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:47:02,203 [DEBUG][       Thread-612587][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:47:02,203 [DEBUG][       Thread-612587][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:47:02,203 [DEBUG][       Thread-612587][   transport.py][1871] : client lang: <none>
2025-07-01 17:47:02,204 [DEBUG][       Thread-612587][   transport.py][1871] : server lang: <none>
2025-07-01 17:47:02,204 [DEBUG][       Thread-612587][   transport.py][1871] : kex follows: False
2025-07-01 17:47:02,204 [DEBUG][       Thread-612587][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:47:02,204 [DEBUG][       Thread-612587][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:47:02,204 [DEBUG][       Thread-612587][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:47:02,204 [DEBUG][       Thread-612587][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:47:02,204 [DEBUG][       Thread-612587][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:47:02,204 [DEBUG][       Thread-612587][   transport.py][1871] : Compression: none
2025-07-01 17:47:02,204 [DEBUG][       Thread-612587][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:47:02,220 [DEBUG][       Thread-612587][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:47:02,220 [DEBUG][       Thread-612587][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:47:02,221 [DEBUG][       Thread-612587][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:47:02,221 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:47:02,221 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:47:02,222 [DEBUG][       Thread-612587][   transport.py][1871] : userauth is OK
2025-07-01 17:47:02,236 [ INFO][       Thread-612587][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:47:02,236 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:47:02,877 [DEBUG][       Thread-612587][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:47:02,877 [DEBUG][       Thread-612587][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:47:02,921 [DEBUG][       Thread-612587][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:47:02,921 [DEBUG][       Thread-612587][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:47:02,924 [DEBUG][       Thread-612587][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:47:02,937 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:47:02,937 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:47:02,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:47:02,941 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:47:02,947 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:47:02,949 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:47:02,949 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:47:02,950 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:47:02,950 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.657229 -999.00  +12.30  29.56     54   +3.30 1 2 1 1 1   860    0 8.53 -25.04 ----- 30.8 29.6 18.2 36.3 13.0 -17.7 12.8 -18.0 12.6 -17.2 12.9 -16.7
2025-07-01 17:47:02,950 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:47:02,950 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:47:02,950 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.657229
2025-07-01 17:47:02,951 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:47:02,951 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:47:02,951 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:47:02,952 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:47:02,952 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:47:02,952 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:46:36', tmtdew=10.3, humidity=49.34, cloud=0.0, wind=40.99, temperature=12.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:46:24.586', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:47:02,953 [DEBUG][       Thread-612587][   transport.py][1871] : EOF in transport thread
2025-07-01 17:47:03,035 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:47:03,052 [DEBUG][       Thread-612590][   transport.py][1871] : starting thread (client mode): 0x75ab160
2025-07-01 17:47:03,052 [DEBUG][       Thread-612590][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:47:03,069 [DEBUG][       Thread-612590][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:47:03,069 [ INFO][       Thread-612590][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:47:03,080 [DEBUG][       Thread-612590][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:47:03,080 [DEBUG][       Thread-612590][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:47:03,080 [DEBUG][       Thread-612590][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:47:03,080 [DEBUG][       Thread-612590][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:47:03,080 [DEBUG][       Thread-612590][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:47:03,080 [DEBUG][       Thread-612590][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:47:03,080 [DEBUG][       Thread-612590][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:47:03,080 [DEBUG][       Thread-612590][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:47:03,081 [DEBUG][       Thread-612590][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:47:03,081 [DEBUG][       Thread-612590][   transport.py][1871] : client lang: <none>
2025-07-01 17:47:03,081 [DEBUG][       Thread-612590][   transport.py][1871] : server lang: <none>
2025-07-01 17:47:03,081 [DEBUG][       Thread-612590][   transport.py][1871] : kex follows: False
2025-07-01 17:47:03,081 [DEBUG][       Thread-612590][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:47:03,081 [DEBUG][       Thread-612590][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:47:03,081 [DEBUG][       Thread-612590][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:47:03,081 [DEBUG][       Thread-612590][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:47:03,081 [DEBUG][       Thread-612590][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:47:03,081 [DEBUG][       Thread-612590][   transport.py][1871] : Compression: none
2025-07-01 17:47:03,081 [DEBUG][       Thread-612590][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:47:03,139 [DEBUG][       Thread-612590][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:47:03,139 [DEBUG][       Thread-612590][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:47:03,140 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:47:03,141 [DEBUG][       Thread-612590][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:47:03,141 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:47:03,209 [DEBUG][       Thread-612590][   transport.py][1871] : userauth is OK
2025-07-01 17:47:03,209 [DEBUG][       Thread-612590][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:47:03,209 [DEBUG][       Thread-612590][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:47:03,209 [DEBUG][       Thread-612590][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:47:03,210 [DEBUG][       Thread-612590][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:47:03,234 [ INFO][       Thread-612590][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:47:03,235 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:47:03,235 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:47:04,315 [DEBUG][       Thread-612590][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:47:04,315 [DEBUG][       Thread-612590][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:47:04,370 [DEBUG][       Thread-612590][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:47:04,370 [DEBUG][       Thread-612590][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:47:04,382 [DEBUG][       Thread-612590][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:47:04,394 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:47:04,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-07-01 17:47:04,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-07-01 17:47:04,415 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:47:04,416 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:47:04,416 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:47:04,424 [DEBUG][       Thread-612590][   transport.py][1871] : EOF in transport thread
2025-07-01 17:47:09,550 [DEBUG][Thread-612592 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:47:14,420 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:47:14,420 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:47:14,420 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:47:14,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-07-01 17:47:14,894 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 47, 8), 10.31, 49.3, 0.0, 40.02, 12.4, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:47:14,894 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:47:08
2025-07-01 17:47:14,980 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:47:14,984 [DEBUG][       Thread-612593][   transport.py][1871] : starting thread (client mode): 0x81e6020
2025-07-01 17:47:14,984 [DEBUG][       Thread-612593][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:47:15,005 [DEBUG][       Thread-612593][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:47:15,005 [ INFO][       Thread-612593][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:47:15,008 [DEBUG][       Thread-612593][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:47:15,008 [DEBUG][       Thread-612593][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:47:15,008 [DEBUG][       Thread-612593][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:47:15,008 [DEBUG][       Thread-612593][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:47:15,008 [DEBUG][       Thread-612593][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:47:15,008 [DEBUG][       Thread-612593][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:47:15,008 [DEBUG][       Thread-612593][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:47:15,008 [DEBUG][       Thread-612593][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:47:15,008 [DEBUG][       Thread-612593][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:47:15,008 [DEBUG][       Thread-612593][   transport.py][1871] : client lang: <none>
2025-07-01 17:47:15,008 [DEBUG][       Thread-612593][   transport.py][1871] : server lang: <none>
2025-07-01 17:47:15,008 [DEBUG][       Thread-612593][   transport.py][1871] : kex follows: False
2025-07-01 17:47:15,009 [DEBUG][       Thread-612593][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:47:15,009 [DEBUG][       Thread-612593][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:47:15,009 [DEBUG][       Thread-612593][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:47:15,009 [DEBUG][       Thread-612593][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:47:15,009 [DEBUG][       Thread-612593][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:47:15,009 [DEBUG][       Thread-612593][   transport.py][1871] : Compression: none
2025-07-01 17:47:15,009 [DEBUG][       Thread-612593][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:47:15,027 [DEBUG][       Thread-612593][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:47:15,027 [DEBUG][       Thread-612593][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:47:15,028 [DEBUG][       Thread-612593][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:47:15,028 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:47:15,028 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:47:15,029 [DEBUG][       Thread-612593][   transport.py][1871] : userauth is OK
2025-07-01 17:47:15,043 [ INFO][       Thread-612593][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:47:15,043 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:47:15,662 [DEBUG][       Thread-612593][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:47:15,662 [DEBUG][       Thread-612593][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:47:15,705 [DEBUG][       Thread-612593][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:47:15,705 [DEBUG][       Thread-612593][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:47:15,708 [DEBUG][       Thread-612593][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:47:15,722 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:47:15,723 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:47:15,725 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:47:15,726 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:47:15,732 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:47:15,734 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:47:15,735 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:47:15,735 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:47:15,735 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.657229 -999.00  +12.30  29.56     54   +3.30 1 2 1 1 1   860    0 8.53 -25.04 ----- 30.8 29.6 18.2 36.3 13.0 -17.7 12.8 -18.0 12.6 -17.2 12.9 -16.7
2025-07-01 17:47:15,735 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:47:15,735 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:47:15,735 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.657229
2025-07-01 17:47:15,736 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:47:15,736 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:47:15,737 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:47:15,737 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:47:15,737 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:47:15,737 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:47:08', tmtdew=10.31, humidity=49.3, cloud=0.0, wind=40.02, temperature=12.4, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:46:24.586', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:47:15,737 [DEBUG][       Thread-612593][   transport.py][1871] : EOF in transport thread
2025-07-01 17:47:15,820 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:47:15,832 [DEBUG][       Thread-612596][   transport.py][1871] : starting thread (client mode): 0x81e6680
2025-07-01 17:47:15,832 [DEBUG][       Thread-612596][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:47:15,847 [DEBUG][       Thread-612596][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:47:15,847 [ INFO][       Thread-612596][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:47:15,855 [DEBUG][       Thread-612596][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:47:15,855 [DEBUG][       Thread-612596][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:47:15,855 [DEBUG][       Thread-612596][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:47:15,855 [DEBUG][       Thread-612596][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:47:15,855 [DEBUG][       Thread-612596][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:47:15,855 [DEBUG][       Thread-612596][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:47:15,855 [DEBUG][       Thread-612596][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:47:15,855 [DEBUG][       Thread-612596][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:47:15,855 [DEBUG][       Thread-612596][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:47:15,855 [DEBUG][       Thread-612596][   transport.py][1871] : client lang: <none>
2025-07-01 17:47:15,855 [DEBUG][       Thread-612596][   transport.py][1871] : server lang: <none>
2025-07-01 17:47:15,855 [DEBUG][       Thread-612596][   transport.py][1871] : kex follows: False
2025-07-01 17:47:15,856 [DEBUG][       Thread-612596][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:47:15,856 [DEBUG][       Thread-612596][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:47:15,856 [DEBUG][       Thread-612596][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:47:15,856 [DEBUG][       Thread-612596][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:47:15,856 [DEBUG][       Thread-612596][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:47:15,856 [DEBUG][       Thread-612596][   transport.py][1871] : Compression: none
2025-07-01 17:47:15,856 [DEBUG][       Thread-612596][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:47:15,918 [DEBUG][       Thread-612596][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:47:15,919 [DEBUG][       Thread-612596][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:47:15,919 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:47:15,920 [DEBUG][       Thread-612596][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:47:15,920 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:47:15,975 [DEBUG][       Thread-612596][   transport.py][1871] : userauth is OK
2025-07-01 17:47:15,975 [DEBUG][       Thread-612596][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:47:15,975 [DEBUG][       Thread-612596][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:47:15,975 [DEBUG][       Thread-612596][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:47:15,975 [DEBUG][       Thread-612596][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:47:15,994 [ INFO][       Thread-612596][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:47:15,994 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:47:15,995 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:47:17,033 [DEBUG][       Thread-612596][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:47:17,033 [DEBUG][       Thread-612596][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:47:17,084 [DEBUG][       Thread-612596][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:47:17,084 [DEBUG][       Thread-612596][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:47:17,094 [DEBUG][       Thread-612596][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:47:17,103 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:47:17,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-07-01 17:47:17,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-07-01 17:47:17,122 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:47:17,122 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:47:17,122 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:47:17,130 [DEBUG][       Thread-612596][   transport.py][1871] : EOF in transport thread
2025-07-01 17:47:18,570 [DEBUG][Thread-612598 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:47:27,126 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:47:27,126 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:47:27,127 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:47:27,129 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:47:27,611 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 47, 8), 10.31, 49.3, 0.0, 40.02, 12.4, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:47:27,618 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:47:08
2025-07-01 17:47:27,613 [DEBUG][Thread-612599 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:47:27,704 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:47:27,711 [DEBUG][       Thread-612600][   transport.py][1871] : starting thread (client mode): 0x81e4e50
2025-07-01 17:47:27,711 [DEBUG][       Thread-612600][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:47:27,732 [DEBUG][       Thread-612600][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:47:27,732 [ INFO][       Thread-612600][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:47:27,735 [DEBUG][       Thread-612600][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:47:27,736 [DEBUG][       Thread-612600][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:47:27,736 [DEBUG][       Thread-612600][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:47:27,736 [DEBUG][       Thread-612600][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:47:27,736 [DEBUG][       Thread-612600][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:47:27,736 [DEBUG][       Thread-612600][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:47:27,736 [DEBUG][       Thread-612600][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:47:27,736 [DEBUG][       Thread-612600][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:47:27,736 [DEBUG][       Thread-612600][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:47:27,736 [DEBUG][       Thread-612600][   transport.py][1871] : client lang: <none>
2025-07-01 17:47:27,736 [DEBUG][       Thread-612600][   transport.py][1871] : server lang: <none>
2025-07-01 17:47:27,736 [DEBUG][       Thread-612600][   transport.py][1871] : kex follows: False
2025-07-01 17:47:27,736 [DEBUG][       Thread-612600][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:47:27,736 [DEBUG][       Thread-612600][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:47:27,736 [DEBUG][       Thread-612600][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:47:27,736 [DEBUG][       Thread-612600][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:47:27,736 [DEBUG][       Thread-612600][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:47:27,736 [DEBUG][       Thread-612600][   transport.py][1871] : Compression: none
2025-07-01 17:47:27,736 [DEBUG][       Thread-612600][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:47:27,753 [DEBUG][       Thread-612600][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:47:27,754 [DEBUG][       Thread-612600][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:47:27,754 [DEBUG][       Thread-612600][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:47:27,754 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:47:27,755 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:47:27,756 [DEBUG][       Thread-612600][   transport.py][1871] : userauth is OK
2025-07-01 17:47:27,769 [ INFO][       Thread-612600][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:47:27,770 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:47:28,420 [DEBUG][       Thread-612600][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:47:28,420 [DEBUG][       Thread-612600][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:47:28,460 [DEBUG][       Thread-612600][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:47:28,460 [DEBUG][       Thread-612600][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:47:28,463 [DEBUG][       Thread-612600][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:47:28,476 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:47:28,476 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:47:28,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:47:28,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:47:28,480 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:47:28,480 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:47:28,480 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:47:28,481 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:47:28,481 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.657576 -999.00  +12.30  26.75     54   +3.30 1 2 1 1 1   857    0 8.58 -24.61 ----- 23.1 26.8 348.3 34.8 13.0 -17.4 12.8 -17.6 12.6 -17.1 12.9 -16.3
2025-07-01 17:47:28,481 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:47:28,481 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:47:28,481 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.657576
2025-07-01 17:47:28,481 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:47:28,481 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:47:28,481 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:47:28,481 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:47:28,481 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:47:28,481 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:47:08', tmtdew=10.31, humidity=49.3, cloud=0.0, wind=40.02, temperature=12.4, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:46:54.566', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:47:28,481 [DEBUG][       Thread-612600][   transport.py][1871] : EOF in transport thread
2025-07-01 17:47:28,553 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:47:28,564 [DEBUG][       Thread-612603][   transport.py][1871] : starting thread (client mode): 0x81ca980
2025-07-01 17:47:28,564 [DEBUG][       Thread-612603][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:47:28,580 [DEBUG][       Thread-612603][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:47:28,580 [ INFO][       Thread-612603][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:47:28,587 [DEBUG][       Thread-612603][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:47:28,587 [DEBUG][       Thread-612603][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:47:28,588 [DEBUG][       Thread-612603][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:47:28,588 [DEBUG][       Thread-612603][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:47:28,588 [DEBUG][       Thread-612603][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:47:28,588 [DEBUG][       Thread-612603][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:47:28,588 [DEBUG][       Thread-612603][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:47:28,588 [DEBUG][       Thread-612603][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:47:28,588 [DEBUG][       Thread-612603][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:47:28,588 [DEBUG][       Thread-612603][   transport.py][1871] : client lang: <none>
2025-07-01 17:47:28,588 [DEBUG][       Thread-612603][   transport.py][1871] : server lang: <none>
2025-07-01 17:47:28,588 [DEBUG][       Thread-612603][   transport.py][1871] : kex follows: False
2025-07-01 17:47:28,588 [DEBUG][       Thread-612603][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:47:28,588 [DEBUG][       Thread-612603][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:47:28,588 [DEBUG][       Thread-612603][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:47:28,588 [DEBUG][       Thread-612603][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:47:28,588 [DEBUG][       Thread-612603][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:47:28,588 [DEBUG][       Thread-612603][   transport.py][1871] : Compression: none
2025-07-01 17:47:28,588 [DEBUG][       Thread-612603][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:47:28,646 [DEBUG][       Thread-612603][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:47:28,647 [DEBUG][       Thread-612603][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:47:28,647 [DEBUG][       Thread-612603][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:47:28,647 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:47:28,648 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:47:28,704 [DEBUG][       Thread-612603][   transport.py][1871] : userauth is OK
2025-07-01 17:47:28,705 [DEBUG][       Thread-612603][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:47:28,705 [DEBUG][       Thread-612603][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:47:28,705 [DEBUG][       Thread-612603][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:47:28,705 [DEBUG][       Thread-612603][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:47:28,725 [ INFO][       Thread-612603][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:47:28,725 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:47:28,726 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:47:29,795 [DEBUG][       Thread-612603][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:47:29,796 [DEBUG][       Thread-612603][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:47:29,844 [DEBUG][       Thread-612603][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:47:29,844 [DEBUG][       Thread-612603][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:47:29,853 [DEBUG][       Thread-612603][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:47:29,862 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:47: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-07-01 17:47:29,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-07-01 17:47:29,885 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:47:29,885 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:47:29,885 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:47:29,896 [DEBUG][       Thread-612603][   transport.py][1871] : EOF in transport thread
2025-07-01 17:47:36,637 [DEBUG][Thread-612605 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:47:39,896 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:47:39,896 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:47:39,896 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:47:39,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-07-01 17:47:40,376 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 47, 8), 10.31, 49.3, 0.0, 40.02, 12.4, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:47:40,376 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:47:08
2025-07-01 17:47:40,460 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:47:40,464 [DEBUG][       Thread-612606][   transport.py][1871] : starting thread (client mode): 0x81c80d0
2025-07-01 17:47:40,464 [DEBUG][       Thread-612606][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:47:40,485 [DEBUG][       Thread-612606][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:47:40,485 [ INFO][       Thread-612606][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:47:40,488 [DEBUG][       Thread-612606][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:47:40,488 [DEBUG][       Thread-612606][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:47:40,488 [DEBUG][       Thread-612606][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:47:40,488 [DEBUG][       Thread-612606][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:47:40,488 [DEBUG][       Thread-612606][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:47:40,488 [DEBUG][       Thread-612606][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:47:40,488 [DEBUG][       Thread-612606][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:47:40,488 [DEBUG][       Thread-612606][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:47:40,488 [DEBUG][       Thread-612606][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:47:40,488 [DEBUG][       Thread-612606][   transport.py][1871] : client lang: <none>
2025-07-01 17:47:40,488 [DEBUG][       Thread-612606][   transport.py][1871] : server lang: <none>
2025-07-01 17:47:40,488 [DEBUG][       Thread-612606][   transport.py][1871] : kex follows: False
2025-07-01 17:47:40,488 [DEBUG][       Thread-612606][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:47:40,488 [DEBUG][       Thread-612606][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:47:40,488 [DEBUG][       Thread-612606][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:47:40,488 [DEBUG][       Thread-612606][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:47:40,489 [DEBUG][       Thread-612606][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:47:40,489 [DEBUG][       Thread-612606][   transport.py][1871] : Compression: none
2025-07-01 17:47:40,489 [DEBUG][       Thread-612606][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:47:40,507 [DEBUG][       Thread-612606][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:47:40,508 [DEBUG][       Thread-612606][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:47:40,509 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:47:40,509 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:47:40,509 [DEBUG][       Thread-612606][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:47:40,510 [DEBUG][       Thread-612606][   transport.py][1871] : userauth is OK
2025-07-01 17:47:40,535 [ INFO][       Thread-612606][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:47:40,536 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:47:41,168 [DEBUG][       Thread-612606][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:47:41,169 [DEBUG][       Thread-612606][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:47:41,213 [DEBUG][       Thread-612606][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:47:41,213 [DEBUG][       Thread-612606][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:47:41,215 [DEBUG][       Thread-612606][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:47:41,229 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:47:41,229 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:47:41,230 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:47:41,231 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:47:41,234 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:47:41,235 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:47:41,235 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:47:41,235 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:47:41,235 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.657576 -999.00  +12.30  26.75     54   +3.30 1 2 1 1 1   857    0 8.58 -24.61 ----- 23.1 26.8 348.3 34.8 13.0 -17.4 12.8 -17.6 12.6 -17.1 12.9 -16.3
2025-07-01 17:47:41,235 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:47:41,235 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:47:41,235 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.657576
2025-07-01 17:47:41,235 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:47:41,236 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:47:41,236 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:47:41,236 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:47:41,236 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:47:41,236 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:47:08', tmtdew=10.31, humidity=49.3, cloud=0.0, wind=40.02, temperature=12.4, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:46:54.566', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:47:41,236 [DEBUG][       Thread-612606][   transport.py][1871] : EOF in transport thread
2025-07-01 17:47:41,298 [DEBUG][Thread-612609 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:47:41,313 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:47:41,322 [DEBUG][       Thread-612610][   transport.py][1871] : starting thread (client mode): 0x83c84c0
2025-07-01 17:47:41,322 [DEBUG][       Thread-612610][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:47:41,337 [DEBUG][       Thread-612610][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:47:41,337 [ INFO][       Thread-612610][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:47:41,345 [DEBUG][       Thread-612610][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:47:41,345 [DEBUG][       Thread-612610][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:47:41,345 [DEBUG][       Thread-612610][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:47:41,345 [DEBUG][       Thread-612610][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:47:41,345 [DEBUG][       Thread-612610][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:47:41,345 [DEBUG][       Thread-612610][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:47:41,345 [DEBUG][       Thread-612610][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:47:41,345 [DEBUG][       Thread-612610][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:47:41,345 [DEBUG][       Thread-612610][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:47:41,345 [DEBUG][       Thread-612610][   transport.py][1871] : client lang: <none>
2025-07-01 17:47:41,345 [DEBUG][       Thread-612610][   transport.py][1871] : server lang: <none>
2025-07-01 17:47:41,345 [DEBUG][       Thread-612610][   transport.py][1871] : kex follows: False
2025-07-01 17:47:41,345 [DEBUG][       Thread-612610][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:47:41,345 [DEBUG][       Thread-612610][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:47:41,345 [DEBUG][       Thread-612610][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:47:41,345 [DEBUG][       Thread-612610][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:47:41,345 [DEBUG][       Thread-612610][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:47:41,345 [DEBUG][       Thread-612610][   transport.py][1871] : Compression: none
2025-07-01 17:47:41,345 [DEBUG][       Thread-612610][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:47:41,401 [DEBUG][       Thread-612610][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:47:41,401 [DEBUG][       Thread-612610][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:47:41,401 [DEBUG][       Thread-612610][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:47:41,401 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:47:41,401 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:47:41,458 [DEBUG][       Thread-612610][   transport.py][1871] : userauth is OK
2025-07-01 17:47:41,458 [DEBUG][       Thread-612610][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:47:41,458 [DEBUG][       Thread-612610][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:47:41,458 [DEBUG][       Thread-612610][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:47:41,458 [DEBUG][       Thread-612610][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:47:41,473 [ INFO][       Thread-612610][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:47:41,473 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:47:41,473 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:47:42,530 [DEBUG][       Thread-612610][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:47:42,530 [DEBUG][       Thread-612610][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:47:42,579 [DEBUG][       Thread-612610][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:47:42,580 [DEBUG][       Thread-612610][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:47:42,588 [DEBUG][       Thread-612610][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:47:42,598 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:47:42,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')
2025-07-01 17:47:42,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-07-01 17:47:42,630 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:47:42,630 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:47:42,631 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:47:42,641 [DEBUG][       Thread-612610][   transport.py][1871] : EOF in transport thread
2025-07-01 17:47:45,658 [DEBUG][Thread-612612 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:47:52,636 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:47:52,636 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:47:52,636 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:47:52,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-07-01 17:47:53,123 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 47, 40), 10.31, 49.3, 0.0, 38.25, 12.4, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:47:53,123 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:47:40
2025-07-01 17:47:53,208 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:47:53,213 [DEBUG][       Thread-612613][   transport.py][1871] : starting thread (client mode): 0x75a85b0
2025-07-01 17:47:53,214 [DEBUG][       Thread-612613][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:47:53,233 [DEBUG][       Thread-612613][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:47:53,233 [ INFO][       Thread-612613][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:47:53,237 [DEBUG][       Thread-612613][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:47:53,237 [DEBUG][       Thread-612613][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:47:53,237 [DEBUG][       Thread-612613][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:47:53,237 [DEBUG][       Thread-612613][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:47:53,237 [DEBUG][       Thread-612613][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:47:53,237 [DEBUG][       Thread-612613][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:47:53,237 [DEBUG][       Thread-612613][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:47:53,237 [DEBUG][       Thread-612613][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:47:53,237 [DEBUG][       Thread-612613][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:47:53,237 [DEBUG][       Thread-612613][   transport.py][1871] : client lang: <none>
2025-07-01 17:47:53,237 [DEBUG][       Thread-612613][   transport.py][1871] : server lang: <none>
2025-07-01 17:47:53,237 [DEBUG][       Thread-612613][   transport.py][1871] : kex follows: False
2025-07-01 17:47:53,237 [DEBUG][       Thread-612613][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:47:53,237 [DEBUG][       Thread-612613][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:47:53,237 [DEBUG][       Thread-612613][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:47:53,237 [DEBUG][       Thread-612613][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:47:53,237 [DEBUG][       Thread-612613][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:47:53,237 [DEBUG][       Thread-612613][   transport.py][1871] : Compression: none
2025-07-01 17:47:53,237 [DEBUG][       Thread-612613][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:47:53,251 [DEBUG][       Thread-612613][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:47:53,251 [DEBUG][       Thread-612613][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:47:53,252 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:47:53,252 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:47:53,253 [DEBUG][       Thread-612613][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:47:53,253 [DEBUG][       Thread-612613][   transport.py][1871] : userauth is OK
2025-07-01 17:47:53,277 [ INFO][       Thread-612613][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:47:53,278 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:47:53,891 [DEBUG][       Thread-612613][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:47:53,891 [DEBUG][       Thread-612613][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:47:53,933 [DEBUG][       Thread-612613][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:47:53,933 [DEBUG][       Thread-612613][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:47:53,937 [DEBUG][       Thread-612613][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:47:53,949 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:47:53,950 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:47:53,952 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:47:53,954 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:47:53,960 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:47:53,961 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:47:53,962 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:47:53,962 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:47:53,962 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.657923 -999.00  +12.30  32.24     54   +3.30 1 2 2 1 1   854    0 8.47 -24.18 ----- 36.5 32.2 19.6 46.7 13.0 -17.1 12.8 -17.3 12.6 -16.9 12.9 -16.3
2025-07-01 17:47:53,963 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:47:53,963 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:47:53,963 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.657923
2025-07-01 17:47:53,963 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:47:53,964 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:47:53,964 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:47:53,964 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:47:53,964 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:47:53,964 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:47:40', tmtdew=10.31, humidity=49.3, cloud=0.0, wind=38.25, temperature=12.4, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:47:24.547', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:47:53,965 [DEBUG][       Thread-612613][   transport.py][1871] : EOF in transport thread
2025-07-01 17:47:54,061 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:47:54,072 [DEBUG][       Thread-612616][   transport.py][1871] : starting thread (client mode): 0x82b1ab0
2025-07-01 17:47:54,072 [DEBUG][       Thread-612616][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:47:54,087 [DEBUG][       Thread-612616][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:47:54,087 [ INFO][       Thread-612616][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:47:54,095 [DEBUG][       Thread-612616][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:47:54,095 [DEBUG][       Thread-612616][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:47:54,095 [DEBUG][       Thread-612616][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:47:54,095 [DEBUG][       Thread-612616][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:47:54,095 [DEBUG][       Thread-612616][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:47:54,095 [DEBUG][       Thread-612616][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:47:54,095 [DEBUG][       Thread-612616][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:47:54,095 [DEBUG][       Thread-612616][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:47:54,095 [DEBUG][       Thread-612616][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:47:54,095 [DEBUG][       Thread-612616][   transport.py][1871] : client lang: <none>
2025-07-01 17:47:54,095 [DEBUG][       Thread-612616][   transport.py][1871] : server lang: <none>
2025-07-01 17:47:54,095 [DEBUG][       Thread-612616][   transport.py][1871] : kex follows: False
2025-07-01 17:47:54,095 [DEBUG][       Thread-612616][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:47:54,095 [DEBUG][       Thread-612616][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:47:54,095 [DEBUG][       Thread-612616][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:47:54,096 [DEBUG][       Thread-612616][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:47:54,096 [DEBUG][       Thread-612616][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:47:54,096 [DEBUG][       Thread-612616][   transport.py][1871] : Compression: none
2025-07-01 17:47:54,096 [DEBUG][       Thread-612616][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:47:54,154 [DEBUG][       Thread-612616][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:47:54,155 [DEBUG][       Thread-612616][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:47:54,156 [DEBUG][       Thread-612616][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:47:54,156 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:47:54,157 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:47:54,211 [DEBUG][       Thread-612616][   transport.py][1871] : userauth is OK
2025-07-01 17:47:54,211 [DEBUG][       Thread-612616][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:47:54,211 [DEBUG][       Thread-612616][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:47:54,211 [DEBUG][       Thread-612616][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:47:54,211 [DEBUG][       Thread-612616][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:47:54,230 [ INFO][       Thread-612616][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:47:54,230 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:47:54,231 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:47:54,683 [DEBUG][Thread-612618 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:47:55,273 [DEBUG][       Thread-612616][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:47:55,274 [DEBUG][       Thread-612616][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:47:55,324 [DEBUG][       Thread-612616][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:47:55,324 [DEBUG][       Thread-612616][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:47:55,333 [DEBUG][       Thread-612616][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:47:55,342 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:47:55,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-07-01 17:47:55,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-07-01 17:47:55,360 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:47:55,360 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:47:55,360 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:47:55,368 [DEBUG][       Thread-612616][   transport.py][1871] : EOF in transport thread
2025-07-01 17:48:03,720 [DEBUG][Thread-612619 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:48:05,371 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:48:05,371 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:48:05,371 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:48:05,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-07-01 17:48:05,839 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 47, 40), 10.31, 49.3, 0.0, 38.25, 12.4, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:48:05,839 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:47:40
2025-07-01 17:48:05,925 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:48:05,929 [DEBUG][       Thread-612620][   transport.py][1871] : starting thread (client mode): 0x82b25f0
2025-07-01 17:48:05,929 [DEBUG][       Thread-612620][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:48:05,949 [DEBUG][       Thread-612620][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:48:05,949 [ INFO][       Thread-612620][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:48:05,952 [DEBUG][       Thread-612620][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:48:05,952 [DEBUG][       Thread-612620][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:48:05,952 [DEBUG][       Thread-612620][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:48:05,953 [DEBUG][       Thread-612620][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:48:05,953 [DEBUG][       Thread-612620][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:48:05,953 [DEBUG][       Thread-612620][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:48:05,953 [DEBUG][       Thread-612620][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:48:05,953 [DEBUG][       Thread-612620][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:48:05,953 [DEBUG][       Thread-612620][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:48:05,953 [DEBUG][       Thread-612620][   transport.py][1871] : client lang: <none>
2025-07-01 17:48:05,953 [DEBUG][       Thread-612620][   transport.py][1871] : server lang: <none>
2025-07-01 17:48:05,953 [DEBUG][       Thread-612620][   transport.py][1871] : kex follows: False
2025-07-01 17:48:05,953 [DEBUG][       Thread-612620][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:48:05,953 [DEBUG][       Thread-612620][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:48:05,953 [DEBUG][       Thread-612620][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:48:05,953 [DEBUG][       Thread-612620][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:48:05,953 [DEBUG][       Thread-612620][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:48:05,953 [DEBUG][       Thread-612620][   transport.py][1871] : Compression: none
2025-07-01 17:48:05,953 [DEBUG][       Thread-612620][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:48:05,969 [DEBUG][       Thread-612620][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:48:05,969 [DEBUG][       Thread-612620][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:48:05,970 [DEBUG][       Thread-612620][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:48:05,970 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:48:05,970 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:48:05,971 [DEBUG][       Thread-612620][   transport.py][1871] : userauth is OK
2025-07-01 17:48:05,996 [ INFO][       Thread-612620][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:48:05,997 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:48:06,643 [DEBUG][       Thread-612620][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:48:06,643 [DEBUG][       Thread-612620][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:48:06,685 [DEBUG][       Thread-612620][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:48:06,685 [DEBUG][       Thread-612620][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:48:06,688 [DEBUG][       Thread-612620][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:48:06,700 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:48:06,700 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:48:06,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:48:06,704 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:48:06,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:48:06,711 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:48:06,711 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:48:06,712 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:48:06,712 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.657923 -999.00  +12.30  32.24     54   +3.30 1 2 2 1 1   854    0 8.47 -24.18 ----- 36.5 32.2 19.6 46.7 13.0 -17.1 12.8 -17.3 12.6 -16.9 12.9 -16.3
2025-07-01 17:48:06,712 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:48:06,712 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:48:06,712 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.657923
2025-07-01 17:48:06,713 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:48:06,713 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:48:06,713 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:48:06,713 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:48:06,713 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:48:06,714 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:47:40', tmtdew=10.31, humidity=49.3, cloud=0.0, wind=38.25, temperature=12.4, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:47:24.547', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:48:06,714 [DEBUG][       Thread-612620][   transport.py][1871] : EOF in transport thread
2025-07-01 17:48:06,809 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:48:06,822 [DEBUG][       Thread-612623][   transport.py][1871] : starting thread (client mode): 0x4701ec20
2025-07-01 17:48:06,822 [DEBUG][       Thread-612623][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:48:06,839 [DEBUG][       Thread-612623][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:48:06,840 [ INFO][       Thread-612623][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:48:06,852 [DEBUG][       Thread-612623][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:48:06,852 [DEBUG][       Thread-612623][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:48:06,852 [DEBUG][       Thread-612623][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:48:06,852 [DEBUG][       Thread-612623][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:48:06,852 [DEBUG][       Thread-612623][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:48:06,852 [DEBUG][       Thread-612623][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:48:06,852 [DEBUG][       Thread-612623][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:48:06,852 [DEBUG][       Thread-612623][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:48:06,852 [DEBUG][       Thread-612623][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:48:06,852 [DEBUG][       Thread-612623][   transport.py][1871] : client lang: <none>
2025-07-01 17:48:06,852 [DEBUG][       Thread-612623][   transport.py][1871] : server lang: <none>
2025-07-01 17:48:06,852 [DEBUG][       Thread-612623][   transport.py][1871] : kex follows: False
2025-07-01 17:48:06,853 [DEBUG][       Thread-612623][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:48:06,853 [DEBUG][       Thread-612623][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:48:06,853 [DEBUG][       Thread-612623][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:48:06,853 [DEBUG][       Thread-612623][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:48:06,853 [DEBUG][       Thread-612623][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:48:06,853 [DEBUG][       Thread-612623][   transport.py][1871] : Compression: none
2025-07-01 17:48:06,853 [DEBUG][       Thread-612623][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:48:06,907 [DEBUG][       Thread-612623][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:48:06,908 [DEBUG][       Thread-612623][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:48:06,909 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:48:06,909 [DEBUG][       Thread-612623][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:48:06,910 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:48:06,963 [DEBUG][       Thread-612623][   transport.py][1871] : userauth is OK
2025-07-01 17:48:06,963 [DEBUG][       Thread-612623][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:48:06,964 [DEBUG][       Thread-612623][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:48:06,964 [DEBUG][       Thread-612623][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:48:06,964 [DEBUG][       Thread-612623][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:48:06,983 [ INFO][       Thread-612623][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:48:06,983 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:48:06,984 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:48:08,000 [DEBUG][       Thread-612623][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:48:08,001 [DEBUG][       Thread-612623][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:48:08,052 [DEBUG][       Thread-612623][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:48:08,052 [DEBUG][       Thread-612623][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:48:08,061 [DEBUG][       Thread-612623][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:48:08,070 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:48:08,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-07-01 17:48:08,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-07-01 17:48:08,088 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:48:08,089 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:48:08,089 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:48:08,097 [DEBUG][       Thread-612623][   transport.py][1871] : EOF in transport thread
2025-07-01 17:48:12,738 [DEBUG][Thread-612625 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:48:18,100 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:48:18,100 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:48:18,100 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:48:18,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-07-01 17:48:18,574 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 48, 12), 10.34, 49.33, 0.0, 37.16, 12.39, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:48:18,574 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:48:12
2025-07-01 17:48:18,659 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:48:18,663 [DEBUG][       Thread-612626][   transport.py][1871] : starting thread (client mode): 0x82b38b0
2025-07-01 17:48:18,663 [DEBUG][       Thread-612626][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:48:18,682 [DEBUG][       Thread-612626][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:48:18,682 [ INFO][       Thread-612626][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:48:18,685 [DEBUG][       Thread-612626][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:48:18,685 [DEBUG][       Thread-612626][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:48:18,685 [DEBUG][       Thread-612626][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:48:18,685 [DEBUG][       Thread-612626][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:48:18,686 [DEBUG][       Thread-612626][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:48:18,686 [DEBUG][       Thread-612626][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:48:18,686 [DEBUG][       Thread-612626][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:48:18,686 [DEBUG][       Thread-612626][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:48:18,686 [DEBUG][       Thread-612626][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:48:18,686 [DEBUG][       Thread-612626][   transport.py][1871] : client lang: <none>
2025-07-01 17:48:18,686 [DEBUG][       Thread-612626][   transport.py][1871] : server lang: <none>
2025-07-01 17:48:18,686 [DEBUG][       Thread-612626][   transport.py][1871] : kex follows: False
2025-07-01 17:48:18,686 [DEBUG][       Thread-612626][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:48:18,686 [DEBUG][       Thread-612626][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:48:18,686 [DEBUG][       Thread-612626][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:48:18,686 [DEBUG][       Thread-612626][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:48:18,686 [DEBUG][       Thread-612626][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:48:18,686 [DEBUG][       Thread-612626][   transport.py][1871] : Compression: none
2025-07-01 17:48:18,686 [DEBUG][       Thread-612626][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:48:18,701 [DEBUG][       Thread-612626][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:48:18,701 [DEBUG][       Thread-612626][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:48:18,702 [DEBUG][       Thread-612626][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:48:18,702 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:48:18,702 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:48:18,703 [DEBUG][       Thread-612626][   transport.py][1871] : userauth is OK
2025-07-01 17:48:18,728 [ INFO][       Thread-612626][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:48:18,729 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:48:19,392 [DEBUG][       Thread-612626][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:48:19,392 [DEBUG][       Thread-612626][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:48:19,433 [DEBUG][       Thread-612626][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:48:19,433 [DEBUG][       Thread-612626][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:48:19,436 [DEBUG][       Thread-612626][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:48:19,448 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:48:19,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:48:19,451 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:48:19,453 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:48:19,458 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:48:19,460 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:48:19,460 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:48:19,461 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:48:19,461 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.657923 -999.00  +12.30  32.24     54   +3.30 1 2 2 1 1   854    0 8.47 -24.18 ----- 36.5 32.2 19.6 46.7 13.0 -17.1 12.8 -17.3 12.6 -16.9 12.9 -16.3
2025-07-01 17:48:19,461 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:48:19,461 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:48:19,461 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.657923
2025-07-01 17:48:19,462 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:48:19,463 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:48:19,463 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:48:19,463 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:48:19,463 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:48:19,463 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:48:12', tmtdew=10.34, humidity=49.33, cloud=0.0, wind=37.16, temperature=12.39, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:47:24.547', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:48:19,463 [DEBUG][       Thread-612626][   transport.py][1871] : EOF in transport thread
2025-07-01 17:48:19,547 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:48:19,558 [DEBUG][       Thread-612629][   transport.py][1871] : starting thread (client mode): 0x8172530
2025-07-01 17:48:19,558 [DEBUG][       Thread-612629][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:48:19,576 [DEBUG][       Thread-612629][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:48:19,576 [ INFO][       Thread-612629][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:48:19,584 [DEBUG][       Thread-612629][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:48:19,585 [DEBUG][       Thread-612629][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:48:19,585 [DEBUG][       Thread-612629][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:48:19,585 [DEBUG][       Thread-612629][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:48:19,585 [DEBUG][       Thread-612629][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:48:19,585 [DEBUG][       Thread-612629][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:48:19,585 [DEBUG][       Thread-612629][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:48:19,585 [DEBUG][       Thread-612629][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:48:19,585 [DEBUG][       Thread-612629][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:48:19,585 [DEBUG][       Thread-612629][   transport.py][1871] : client lang: <none>
2025-07-01 17:48:19,585 [DEBUG][       Thread-612629][   transport.py][1871] : server lang: <none>
2025-07-01 17:48:19,585 [DEBUG][       Thread-612629][   transport.py][1871] : kex follows: False
2025-07-01 17:48:19,585 [DEBUG][       Thread-612629][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:48:19,585 [DEBUG][       Thread-612629][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:48:19,585 [DEBUG][       Thread-612629][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:48:19,585 [DEBUG][       Thread-612629][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:48:19,585 [DEBUG][       Thread-612629][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:48:19,585 [DEBUG][       Thread-612629][   transport.py][1871] : Compression: none
2025-07-01 17:48:19,585 [DEBUG][       Thread-612629][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:48:19,642 [DEBUG][       Thread-612629][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:48:19,643 [DEBUG][       Thread-612629][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:48:19,643 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:48:19,644 [DEBUG][       Thread-612629][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:48:19,645 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:48:19,699 [DEBUG][       Thread-612629][   transport.py][1871] : userauth is OK
2025-07-01 17:48:19,699 [DEBUG][       Thread-612629][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:48:19,699 [DEBUG][       Thread-612629][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:48:19,699 [DEBUG][       Thread-612629][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:48:19,699 [DEBUG][       Thread-612629][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:48:19,718 [ INFO][       Thread-612629][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:48:19,719 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:48:19,719 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:48:20,757 [DEBUG][       Thread-612629][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:48:20,757 [DEBUG][       Thread-612629][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:48:20,808 [DEBUG][       Thread-612629][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:48:20,808 [DEBUG][       Thread-612629][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:48:20,818 [DEBUG][       Thread-612629][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:48:20,827 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:48:20,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-07-01 17:48:20,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-07-01 17:48:20,845 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:48:20,846 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:48:20,846 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:48:20,858 [DEBUG][       Thread-612629][   transport.py][1871] : EOF in transport thread
2025-07-01 17:48:21,761 [DEBUG][Thread-612631 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:48:30,800 [DEBUG][Thread-612632 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:48:30,857 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:48:30,857 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:48:30,857 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:48:30,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-07-01 17:48:31,339 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 48, 12), 10.34, 49.33, 0.0, 37.16, 12.39, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:48:31,339 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:48:12
2025-07-01 17:48:31,424 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:48:31,429 [DEBUG][       Thread-612633][   transport.py][1871] : starting thread (client mode): 0x82b2050
2025-07-01 17:48:31,429 [DEBUG][       Thread-612633][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:48:31,450 [DEBUG][       Thread-612633][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:48:31,450 [ INFO][       Thread-612633][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:48:31,452 [DEBUG][       Thread-612633][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:48:31,452 [DEBUG][       Thread-612633][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:48:31,452 [DEBUG][       Thread-612633][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:48:31,452 [DEBUG][       Thread-612633][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:48:31,452 [DEBUG][       Thread-612633][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:48:31,452 [DEBUG][       Thread-612633][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:48:31,452 [DEBUG][       Thread-612633][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:48:31,452 [DEBUG][       Thread-612633][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:48:31,452 [DEBUG][       Thread-612633][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:48:31,452 [DEBUG][       Thread-612633][   transport.py][1871] : client lang: <none>
2025-07-01 17:48:31,452 [DEBUG][       Thread-612633][   transport.py][1871] : server lang: <none>
2025-07-01 17:48:31,452 [DEBUG][       Thread-612633][   transport.py][1871] : kex follows: False
2025-07-01 17:48:31,452 [DEBUG][       Thread-612633][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:48:31,452 [DEBUG][       Thread-612633][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:48:31,452 [DEBUG][       Thread-612633][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:48:31,452 [DEBUG][       Thread-612633][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:48:31,452 [DEBUG][       Thread-612633][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:48:31,452 [DEBUG][       Thread-612633][   transport.py][1871] : Compression: none
2025-07-01 17:48:31,452 [DEBUG][       Thread-612633][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:48:31,465 [DEBUG][       Thread-612633][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:48:31,465 [DEBUG][       Thread-612633][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:48:31,466 [DEBUG][       Thread-612633][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:48:31,466 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:48:31,466 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:48:31,467 [DEBUG][       Thread-612633][   transport.py][1871] : userauth is OK
2025-07-01 17:48:31,492 [ INFO][       Thread-612633][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:48:31,493 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:48:32,098 [DEBUG][       Thread-612633][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:48:32,098 [DEBUG][       Thread-612633][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:48:32,141 [DEBUG][       Thread-612633][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:48:32,141 [DEBUG][       Thread-612633][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:48:32,144 [DEBUG][       Thread-612633][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:48:32,157 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:48:32,157 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:48:32,159 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:48:32,161 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:48:32,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:48:32,168 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:48:32,168 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:48:32,169 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:48:32,169 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.658270 -999.00  +12.30  29.08     53   +3.20 1 2 1 1 1   851    0 8.52 -24.75 ----- 30.4 29.1 11.5 42.5 13.0 -17.1 12.8 -17.4 12.6 -16.8 12.9 -16.3
2025-07-01 17:48:32,169 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:48:32,169 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:48:32,169 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.658270
2025-07-01 17:48:32,170 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:48:32,170 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:48:32,170 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:48:32,171 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:48:32,171 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:48:32,171 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:48:12', tmtdew=10.34, humidity=49.33, cloud=0.0, wind=37.16, temperature=12.39, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:47:54.528', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:48:32,171 [DEBUG][       Thread-612633][   transport.py][1871] : EOF in transport thread
2025-07-01 17:48:32,255 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:48:32,267 [DEBUG][       Thread-612636][   transport.py][1871] : starting thread (client mode): 0x81712d0
2025-07-01 17:48:32,267 [DEBUG][       Thread-612636][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:48:32,283 [DEBUG][       Thread-612636][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:48:32,283 [ INFO][       Thread-612636][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:48:32,291 [DEBUG][       Thread-612636][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:48:32,291 [DEBUG][       Thread-612636][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:48:32,291 [DEBUG][       Thread-612636][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:48:32,291 [DEBUG][       Thread-612636][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:48:32,291 [DEBUG][       Thread-612636][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:48:32,291 [DEBUG][       Thread-612636][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:48:32,291 [DEBUG][       Thread-612636][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:48:32,291 [DEBUG][       Thread-612636][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:48:32,292 [DEBUG][       Thread-612636][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:48:32,292 [DEBUG][       Thread-612636][   transport.py][1871] : client lang: <none>
2025-07-01 17:48:32,292 [DEBUG][       Thread-612636][   transport.py][1871] : server lang: <none>
2025-07-01 17:48:32,292 [DEBUG][       Thread-612636][   transport.py][1871] : kex follows: False
2025-07-01 17:48:32,292 [DEBUG][       Thread-612636][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:48:32,292 [DEBUG][       Thread-612636][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:48:32,292 [DEBUG][       Thread-612636][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:48:32,292 [DEBUG][       Thread-612636][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:48:32,292 [DEBUG][       Thread-612636][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:48:32,292 [DEBUG][       Thread-612636][   transport.py][1871] : Compression: none
2025-07-01 17:48:32,292 [DEBUG][       Thread-612636][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:48:32,348 [DEBUG][       Thread-612636][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:48:32,348 [DEBUG][       Thread-612636][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:48:32,349 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:48:32,350 [DEBUG][       Thread-612636][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:48:32,350 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:48:32,406 [DEBUG][       Thread-612636][   transport.py][1871] : userauth is OK
2025-07-01 17:48:32,406 [DEBUG][       Thread-612636][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:48:32,406 [DEBUG][       Thread-612636][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:48:32,406 [DEBUG][       Thread-612636][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:48:32,407 [DEBUG][       Thread-612636][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:48:32,425 [ INFO][       Thread-612636][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:48:32,426 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:48:32,426 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:48:33,463 [DEBUG][       Thread-612636][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:48:33,463 [DEBUG][       Thread-612636][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:48:33,516 [DEBUG][       Thread-612636][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:48:33,517 [DEBUG][       Thread-612636][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:48:33,528 [DEBUG][       Thread-612636][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:48:33,537 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:48:33,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-07-01 17:48:33,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-07-01 17:48:33,555 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:48:33,555 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:48:33,555 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:48:33,563 [DEBUG][       Thread-612636][   transport.py][1871] : EOF in transport thread
2025-07-01 17:48:39,825 [DEBUG][Thread-612638 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:48:41,352 [DEBUG][Thread-612639 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:48:43,565 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:48:43,565 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:48:43,565 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:48:43,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-07-01 17:48:44,054 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 48, 12), 10.34, 49.33, 0.0, 37.16, 12.39, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:48:44,054 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:48:12
2025-07-01 17:48:44,139 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:48:44,143 [DEBUG][       Thread-612640][   transport.py][1871] : starting thread (client mode): 0x818f3a0
2025-07-01 17:48:44,143 [DEBUG][       Thread-612640][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:48:44,163 [DEBUG][       Thread-612640][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:48:44,163 [ INFO][       Thread-612640][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:48:44,167 [DEBUG][       Thread-612640][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:48:44,167 [DEBUG][       Thread-612640][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:48:44,167 [DEBUG][       Thread-612640][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:48:44,167 [DEBUG][       Thread-612640][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:48:44,167 [DEBUG][       Thread-612640][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:48:44,167 [DEBUG][       Thread-612640][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:48:44,167 [DEBUG][       Thread-612640][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:48:44,167 [DEBUG][       Thread-612640][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:48:44,167 [DEBUG][       Thread-612640][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:48:44,167 [DEBUG][       Thread-612640][   transport.py][1871] : client lang: <none>
2025-07-01 17:48:44,167 [DEBUG][       Thread-612640][   transport.py][1871] : server lang: <none>
2025-07-01 17:48:44,167 [DEBUG][       Thread-612640][   transport.py][1871] : kex follows: False
2025-07-01 17:48:44,167 [DEBUG][       Thread-612640][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:48:44,167 [DEBUG][       Thread-612640][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:48:44,167 [DEBUG][       Thread-612640][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:48:44,167 [DEBUG][       Thread-612640][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:48:44,167 [DEBUG][       Thread-612640][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:48:44,167 [DEBUG][       Thread-612640][   transport.py][1871] : Compression: none
2025-07-01 17:48:44,167 [DEBUG][       Thread-612640][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:48:44,183 [DEBUG][       Thread-612640][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:48:44,183 [DEBUG][       Thread-612640][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:48:44,184 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:48:44,184 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:48:44,185 [DEBUG][       Thread-612640][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:48:44,185 [DEBUG][       Thread-612640][   transport.py][1871] : userauth is OK
2025-07-01 17:48:44,209 [ INFO][       Thread-612640][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:48:44,210 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:48:44,859 [DEBUG][       Thread-612640][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:48:44,859 [DEBUG][       Thread-612640][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:48:44,900 [DEBUG][       Thread-612640][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:48:44,900 [DEBUG][       Thread-612640][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:48:44,903 [DEBUG][       Thread-612640][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:48:44,914 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:48:44,914 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:48:44,915 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:48:44,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:48:44,919 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:48:44,920 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:48:44,920 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:48:44,921 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:48:44,921 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.658270 -999.00  +12.30  29.08     53   +3.20 1 2 1 1 1   851    0 8.52 -24.75 ----- 30.4 29.1 11.5 42.5 13.0 -17.1 12.8 -17.4 12.6 -16.8 12.9 -16.3
2025-07-01 17:48:44,921 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:48:44,921 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:48:44,921 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.658270
2025-07-01 17:48:44,921 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:48:44,921 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:48:44,921 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:48:44,921 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:48:44,921 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:48:44,921 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:48:12', tmtdew=10.34, humidity=49.33, cloud=0.0, wind=37.16, temperature=12.39, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:47:54.528', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:48:44,922 [DEBUG][       Thread-612640][   transport.py][1871] : EOF in transport thread
2025-07-01 17:48:44,996 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:48:45,005 [DEBUG][       Thread-612643][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 17:48:45,005 [DEBUG][       Thread-612643][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:48:45,021 [DEBUG][       Thread-612643][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:48:45,021 [ INFO][       Thread-612643][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:48:45,028 [DEBUG][       Thread-612643][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:48:45,028 [DEBUG][       Thread-612643][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:48:45,028 [DEBUG][       Thread-612643][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:48:45,029 [DEBUG][       Thread-612643][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:48:45,029 [DEBUG][       Thread-612643][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:48:45,029 [DEBUG][       Thread-612643][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:48:45,029 [DEBUG][       Thread-612643][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:48:45,029 [DEBUG][       Thread-612643][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:48:45,029 [DEBUG][       Thread-612643][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:48:45,029 [DEBUG][       Thread-612643][   transport.py][1871] : client lang: <none>
2025-07-01 17:48:45,029 [DEBUG][       Thread-612643][   transport.py][1871] : server lang: <none>
2025-07-01 17:48:45,029 [DEBUG][       Thread-612643][   transport.py][1871] : kex follows: False
2025-07-01 17:48:45,029 [DEBUG][       Thread-612643][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:48:45,029 [DEBUG][       Thread-612643][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:48:45,029 [DEBUG][       Thread-612643][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:48:45,029 [DEBUG][       Thread-612643][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:48:45,029 [DEBUG][       Thread-612643][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:48:45,029 [DEBUG][       Thread-612643][   transport.py][1871] : Compression: none
2025-07-01 17:48:45,029 [DEBUG][       Thread-612643][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:48:45,090 [DEBUG][       Thread-612643][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:48:45,090 [DEBUG][       Thread-612643][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:48:45,090 [DEBUG][       Thread-612643][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:48:45,091 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:48:45,091 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:48:45,147 [DEBUG][       Thread-612643][   transport.py][1871] : userauth is OK
2025-07-01 17:48:45,147 [DEBUG][       Thread-612643][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:48:45,147 [DEBUG][       Thread-612643][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:48:45,147 [DEBUG][       Thread-612643][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:48:45,147 [DEBUG][       Thread-612643][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:48:45,161 [ INFO][       Thread-612643][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:48:45,162 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:48:45,162 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:48:46,188 [DEBUG][       Thread-612643][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:48:46,188 [DEBUG][       Thread-612643][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:48:46,239 [DEBUG][       Thread-612643][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:48:46,239 [DEBUG][       Thread-612643][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:48:46,248 [DEBUG][       Thread-612643][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:48:46,256 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:48:46,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-07-01 17:48:46,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-07-01 17:48:46,272 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:48:46,272 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:48:46,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:48:46,280 [DEBUG][       Thread-612643][   transport.py][1871] : EOF in transport thread
2025-07-01 17:48:48,843 [DEBUG][Thread-612645 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:48:56,272 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:48:56,273 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:48:56,273 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:48:56,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-07-01 17:48:56,746 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 48, 44), 10.31, 49.45, 0.0, 39.49, 12.43, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:48:56,746 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:48:44
2025-07-01 17:48:56,832 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:48:56,838 [DEBUG][       Thread-612646][   transport.py][1871] : starting thread (client mode): 0x81a4250
2025-07-01 17:48:56,838 [DEBUG][       Thread-612646][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:48:56,858 [DEBUG][       Thread-612646][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:48:56,858 [ INFO][       Thread-612646][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:48:56,861 [DEBUG][       Thread-612646][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:48:56,861 [DEBUG][       Thread-612646][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:48:56,861 [DEBUG][       Thread-612646][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:48:56,861 [DEBUG][       Thread-612646][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:48:56,861 [DEBUG][       Thread-612646][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:48:56,861 [DEBUG][       Thread-612646][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:48:56,861 [DEBUG][       Thread-612646][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:48:56,861 [DEBUG][       Thread-612646][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:48:56,862 [DEBUG][       Thread-612646][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:48:56,862 [DEBUG][       Thread-612646][   transport.py][1871] : client lang: <none>
2025-07-01 17:48:56,862 [DEBUG][       Thread-612646][   transport.py][1871] : server lang: <none>
2025-07-01 17:48:56,862 [DEBUG][       Thread-612646][   transport.py][1871] : kex follows: False
2025-07-01 17:48:56,862 [DEBUG][       Thread-612646][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:48:56,862 [DEBUG][       Thread-612646][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:48:56,862 [DEBUG][       Thread-612646][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:48:56,862 [DEBUG][       Thread-612646][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:48:56,862 [DEBUG][       Thread-612646][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:48:56,862 [DEBUG][       Thread-612646][   transport.py][1871] : Compression: none
2025-07-01 17:48:56,862 [DEBUG][       Thread-612646][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:48:56,879 [DEBUG][       Thread-612646][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:48:56,879 [DEBUG][       Thread-612646][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:48:56,880 [DEBUG][       Thread-612646][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:48:56,880 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:48:56,880 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:48:56,882 [DEBUG][       Thread-612646][   transport.py][1871] : userauth is OK
2025-07-01 17:48:56,906 [ INFO][       Thread-612646][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:48:56,907 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:48:57,530 [DEBUG][       Thread-612646][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:48:57,531 [DEBUG][       Thread-612646][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:48:57,573 [DEBUG][       Thread-612646][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:48:57,573 [DEBUG][       Thread-612646][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:48:57,576 [DEBUG][       Thread-612646][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:48:57,587 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:48:57,587 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:48:57,589 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:48:57,591 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:48:57,596 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:48:57,598 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:48:57,598 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:48:57,598 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:48:57,598 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.658270 -999.00  +12.30  29.08     53   +3.20 1 2 1 1 1   851    0 8.52 -24.75 ----- 30.4 29.1 11.5 42.5 13.0 -17.1 12.8 -17.4 12.6 -16.8 12.9 -16.3
2025-07-01 17:48:57,599 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:48:57,599 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:48:57,599 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.658270
2025-07-01 17:48:57,599 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:48:57,600 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:48:57,600 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:48:57,600 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:48:57,600 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:48:57,600 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:48:44', tmtdew=10.31, humidity=49.45, cloud=0.0, wind=39.49, temperature=12.43, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:47:54.528', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:48:57,601 [DEBUG][       Thread-612646][   transport.py][1871] : EOF in transport thread
2025-07-01 17:48:57,685 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:48:57,697 [DEBUG][       Thread-612649][   transport.py][1871] : starting thread (client mode): 0x81e5d50
2025-07-01 17:48:57,697 [DEBUG][       Thread-612649][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:48:57,712 [DEBUG][       Thread-612649][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:48:57,712 [ INFO][       Thread-612649][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:48:57,720 [DEBUG][       Thread-612649][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:48:57,720 [DEBUG][       Thread-612649][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:48:57,720 [DEBUG][       Thread-612649][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:48:57,720 [DEBUG][       Thread-612649][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:48:57,720 [DEBUG][       Thread-612649][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:48:57,720 [DEBUG][       Thread-612649][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:48:57,720 [DEBUG][       Thread-612649][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:48:57,720 [DEBUG][       Thread-612649][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:48:57,720 [DEBUG][       Thread-612649][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:48:57,720 [DEBUG][       Thread-612649][   transport.py][1871] : client lang: <none>
2025-07-01 17:48:57,720 [DEBUG][       Thread-612649][   transport.py][1871] : server lang: <none>
2025-07-01 17:48:57,720 [DEBUG][       Thread-612649][   transport.py][1871] : kex follows: False
2025-07-01 17:48:57,720 [DEBUG][       Thread-612649][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:48:57,720 [DEBUG][       Thread-612649][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:48:57,721 [DEBUG][       Thread-612649][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:48:57,721 [DEBUG][       Thread-612649][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:48:57,721 [DEBUG][       Thread-612649][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:48:57,721 [DEBUG][       Thread-612649][   transport.py][1871] : Compression: none
2025-07-01 17:48:57,721 [DEBUG][       Thread-612649][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:48:57,779 [DEBUG][       Thread-612649][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:48:57,780 [DEBUG][       Thread-612649][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:48:57,781 [DEBUG][       Thread-612649][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:48:57,781 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:48:57,782 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:48:57,836 [DEBUG][       Thread-612649][   transport.py][1871] : userauth is OK
2025-07-01 17:48:57,836 [DEBUG][       Thread-612649][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:48:57,836 [DEBUG][       Thread-612649][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:48:57,836 [DEBUG][       Thread-612649][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:48:57,836 [DEBUG][       Thread-612649][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:48:57,855 [ INFO][       Thread-612649][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:48:57,855 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:48:57,856 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:48:57,864 [DEBUG][Thread-612651 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:48:58,874 [DEBUG][       Thread-612649][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:48:58,874 [DEBUG][       Thread-612649][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:48:58,924 [DEBUG][       Thread-612649][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:48:58,924 [DEBUG][       Thread-612649][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:48:58,933 [DEBUG][       Thread-612649][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:48:58,942 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:48:58,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-07-01 17:48:58,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-07-01 17:48:58,961 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:48:58,961 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:48:58,961 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:48:58,970 [DEBUG][       Thread-612649][   transport.py][1871] : EOF in transport thread
2025-07-01 17:49:06,897 [DEBUG][Thread-612652 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:49:08,972 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:49:08,972 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:49:08,972 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:49:08,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-07-01 17:49:09,446 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 48, 44), 10.31, 49.45, 0.0, 39.49, 12.43, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:49:09,446 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:48:44
2025-07-01 17:49:09,531 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:49:09,535 [DEBUG][       Thread-612653][   transport.py][1871] : starting thread (client mode): 0x82b14e0
2025-07-01 17:49:09,535 [DEBUG][       Thread-612653][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:49:09,556 [DEBUG][       Thread-612653][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:49:09,556 [ INFO][       Thread-612653][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:49:09,560 [DEBUG][       Thread-612653][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:49:09,560 [DEBUG][       Thread-612653][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:49:09,560 [DEBUG][       Thread-612653][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:49:09,560 [DEBUG][       Thread-612653][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:49:09,560 [DEBUG][       Thread-612653][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:49:09,560 [DEBUG][       Thread-612653][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:49:09,560 [DEBUG][       Thread-612653][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:49:09,560 [DEBUG][       Thread-612653][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:49:09,560 [DEBUG][       Thread-612653][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:49:09,560 [DEBUG][       Thread-612653][   transport.py][1871] : client lang: <none>
2025-07-01 17:49:09,560 [DEBUG][       Thread-612653][   transport.py][1871] : server lang: <none>
2025-07-01 17:49:09,560 [DEBUG][       Thread-612653][   transport.py][1871] : kex follows: False
2025-07-01 17:49:09,560 [DEBUG][       Thread-612653][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:49:09,560 [DEBUG][       Thread-612653][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:49:09,560 [DEBUG][       Thread-612653][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:49:09,560 [DEBUG][       Thread-612653][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:49:09,560 [DEBUG][       Thread-612653][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:49:09,560 [DEBUG][       Thread-612653][   transport.py][1871] : Compression: none
2025-07-01 17:49:09,560 [DEBUG][       Thread-612653][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:49:09,577 [DEBUG][       Thread-612653][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:49:09,577 [DEBUG][       Thread-612653][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:49:09,578 [DEBUG][       Thread-612653][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:49:09,578 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:49:09,578 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:49:09,579 [DEBUG][       Thread-612653][   transport.py][1871] : userauth is OK
2025-07-01 17:49:09,605 [ INFO][       Thread-612653][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:49:09,605 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:49:10,267 [DEBUG][       Thread-612653][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:49:10,267 [DEBUG][       Thread-612653][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:49:10,309 [DEBUG][       Thread-612653][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:49:10,309 [DEBUG][       Thread-612653][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:49:10,312 [DEBUG][       Thread-612653][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:49:10,325 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:49:10,325 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:49:10,327 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:49:10,329 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:49:10,334 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:49:10,336 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:49:10,336 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:49:10,337 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:49:10,337 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.658964 -999.00  +12.30  23.50     54   +3.30 1 2 1 1 1   844    0 8.34 -25.66 ----- 28.5 23.5 345.5 35.8 13.0 -16.9 12.8 -17.2 12.6 -16.6 12.9 -16.1
2025-07-01 17:49:10,337 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:49:10,337 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:49:10,337 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.658964
2025-07-01 17:49:10,337 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:49:10,338 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:49:10,338 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:49:10,338 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:49:10,338 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:49:10,338 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:48:44', tmtdew=10.31, humidity=49.45, cloud=0.0, wind=39.49, temperature=12.43, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:48:54.490', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:49:10,339 [DEBUG][       Thread-612653][   transport.py][1871] : EOF in transport thread
2025-07-01 17:49:10,412 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:49:10,427 [DEBUG][       Thread-612656][   transport.py][1871] : starting thread (client mode): 0x81e4be0
2025-07-01 17:49:10,427 [DEBUG][       Thread-612656][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:49:10,442 [DEBUG][       Thread-612656][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:49:10,442 [ INFO][       Thread-612656][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:49:10,452 [DEBUG][       Thread-612656][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:49:10,453 [DEBUG][       Thread-612656][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:49:10,453 [DEBUG][       Thread-612656][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:49:10,453 [DEBUG][       Thread-612656][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:49:10,453 [DEBUG][       Thread-612656][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:49:10,453 [DEBUG][       Thread-612656][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:49:10,453 [DEBUG][       Thread-612656][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:49:10,453 [DEBUG][       Thread-612656][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:49:10,453 [DEBUG][       Thread-612656][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:49:10,453 [DEBUG][       Thread-612656][   transport.py][1871] : client lang: <none>
2025-07-01 17:49:10,453 [DEBUG][       Thread-612656][   transport.py][1871] : server lang: <none>
2025-07-01 17:49:10,453 [DEBUG][       Thread-612656][   transport.py][1871] : kex follows: False
2025-07-01 17:49:10,453 [DEBUG][       Thread-612656][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:49:10,453 [DEBUG][       Thread-612656][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:49:10,453 [DEBUG][       Thread-612656][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:49:10,453 [DEBUG][       Thread-612656][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:49:10,454 [DEBUG][       Thread-612656][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:49:10,454 [DEBUG][       Thread-612656][   transport.py][1871] : Compression: none
2025-07-01 17:49:10,454 [DEBUG][       Thread-612656][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:49:10,515 [DEBUG][       Thread-612656][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:49:10,516 [DEBUG][       Thread-612656][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:49:10,516 [DEBUG][       Thread-612656][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:49:10,517 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:49:10,517 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:49:10,574 [DEBUG][       Thread-612656][   transport.py][1871] : userauth is OK
2025-07-01 17:49:10,574 [DEBUG][       Thread-612656][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:49:10,574 [DEBUG][       Thread-612656][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:49:10,574 [DEBUG][       Thread-612656][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:49:10,574 [DEBUG][       Thread-612656][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:49:10,593 [ INFO][       Thread-612656][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:49:10,594 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:49:10,594 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:49:11,620 [DEBUG][       Thread-612656][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:49:11,621 [DEBUG][       Thread-612656][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:49:11,672 [DEBUG][       Thread-612656][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:49:11,672 [DEBUG][       Thread-612656][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:49:11,681 [DEBUG][       Thread-612656][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:49:11,690 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:49:11,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-07-01 17:49:11,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-07-01 17:49:11,708 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:49:11,708 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:49:11,708 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:49:11,716 [DEBUG][       Thread-612656][   transport.py][1871] : EOF in transport thread
2025-07-01 17:49:15,921 [DEBUG][Thread-612658 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:49:21,715 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:49:21,715 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:49:21,715 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:49:21,718 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:49:22,199 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 49, 16), 10.28, 49.41, 0.0, 40.1, 12.4, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:49:22,199 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:49:16
2025-07-01 17:49:22,283 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:49:22,287 [DEBUG][       Thread-612659][   transport.py][1871] : starting thread (client mode): 0x81d97e0
2025-07-01 17:49:22,287 [DEBUG][       Thread-612659][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:49:22,307 [DEBUG][       Thread-612659][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:49:22,307 [ INFO][       Thread-612659][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:49:22,311 [DEBUG][       Thread-612659][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:49:22,311 [DEBUG][       Thread-612659][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:49:22,311 [DEBUG][       Thread-612659][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:49:22,311 [DEBUG][       Thread-612659][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:49:22,311 [DEBUG][       Thread-612659][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:49:22,311 [DEBUG][       Thread-612659][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:49:22,311 [DEBUG][       Thread-612659][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:49:22,311 [DEBUG][       Thread-612659][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:49:22,311 [DEBUG][       Thread-612659][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:49:22,311 [DEBUG][       Thread-612659][   transport.py][1871] : client lang: <none>
2025-07-01 17:49:22,311 [DEBUG][       Thread-612659][   transport.py][1871] : server lang: <none>
2025-07-01 17:49:22,311 [DEBUG][       Thread-612659][   transport.py][1871] : kex follows: False
2025-07-01 17:49:22,311 [DEBUG][       Thread-612659][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:49:22,311 [DEBUG][       Thread-612659][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:49:22,311 [DEBUG][       Thread-612659][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:49:22,311 [DEBUG][       Thread-612659][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:49:22,311 [DEBUG][       Thread-612659][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:49:22,311 [DEBUG][       Thread-612659][   transport.py][1871] : Compression: none
2025-07-01 17:49:22,311 [DEBUG][       Thread-612659][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:49:22,327 [DEBUG][       Thread-612659][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:49:22,327 [DEBUG][       Thread-612659][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:49:22,328 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:49:22,328 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:49:22,329 [DEBUG][       Thread-612659][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:49:22,329 [DEBUG][       Thread-612659][   transport.py][1871] : userauth is OK
2025-07-01 17:49:22,354 [ INFO][       Thread-612659][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:49:22,354 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:49:23,016 [DEBUG][       Thread-612659][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:49:23,017 [DEBUG][       Thread-612659][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:49:23,061 [DEBUG][       Thread-612659][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:49:23,061 [DEBUG][       Thread-612659][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:49:23,064 [DEBUG][       Thread-612659][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:49:23,076 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:49:23,077 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:49:23,079 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:49:23,080 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:49:23,086 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:49:23,088 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:49:23,088 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:49:23,089 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:49:23,089 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.658964 -999.00  +12.30  23.50     54   +3.30 1 2 1 1 1   844    0 8.34 -25.66 ----- 28.5 23.5 345.5 35.8 13.0 -16.9 12.8 -17.2 12.6 -16.6 12.9 -16.1
2025-07-01 17:49:23,089 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:49:23,089 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:49:23,089 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.658964
2025-07-01 17:49:23,089 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:49:23,090 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:49:23,090 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:49:23,090 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:49:23,090 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:49:23,090 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:49:16', tmtdew=10.28, humidity=49.41, cloud=0.0, wind=40.1, temperature=12.4, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:48:54.490', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:49:23,091 [DEBUG][       Thread-612659][   transport.py][1871] : EOF in transport thread
2025-07-01 17:49:23,174 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:49:23,186 [DEBUG][       Thread-612662][   transport.py][1871] : starting thread (client mode): 0x82b1ff0
2025-07-01 17:49:23,186 [DEBUG][       Thread-612662][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:49:23,201 [DEBUG][       Thread-612662][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:49:23,201 [ INFO][       Thread-612662][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:49:23,209 [DEBUG][       Thread-612662][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:49:23,209 [DEBUG][       Thread-612662][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:49:23,209 [DEBUG][       Thread-612662][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:49:23,209 [DEBUG][       Thread-612662][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:49:23,209 [DEBUG][       Thread-612662][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:49:23,209 [DEBUG][       Thread-612662][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:49:23,210 [DEBUG][       Thread-612662][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:49:23,210 [DEBUG][       Thread-612662][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:49:23,210 [DEBUG][       Thread-612662][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:49:23,210 [DEBUG][       Thread-612662][   transport.py][1871] : client lang: <none>
2025-07-01 17:49:23,210 [DEBUG][       Thread-612662][   transport.py][1871] : server lang: <none>
2025-07-01 17:49:23,210 [DEBUG][       Thread-612662][   transport.py][1871] : kex follows: False
2025-07-01 17:49:23,210 [DEBUG][       Thread-612662][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:49:23,210 [DEBUG][       Thread-612662][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:49:23,210 [DEBUG][       Thread-612662][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:49:23,210 [DEBUG][       Thread-612662][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:49:23,210 [DEBUG][       Thread-612662][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:49:23,210 [DEBUG][       Thread-612662][   transport.py][1871] : Compression: none
2025-07-01 17:49:23,210 [DEBUG][       Thread-612662][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:49:23,266 [DEBUG][       Thread-612662][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:49:23,267 [DEBUG][       Thread-612662][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:49:23,267 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:49:23,268 [DEBUG][       Thread-612662][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:49:23,268 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:49:23,324 [DEBUG][       Thread-612662][   transport.py][1871] : userauth is OK
2025-07-01 17:49:23,324 [DEBUG][       Thread-612662][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:49:23,324 [DEBUG][       Thread-612662][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:49:23,324 [DEBUG][       Thread-612662][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:49:23,324 [DEBUG][       Thread-612662][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:49:23,349 [ INFO][       Thread-612662][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:49:23,350 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:49:23,350 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:49:24,411 [DEBUG][       Thread-612662][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:49:24,411 [DEBUG][       Thread-612662][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:49:24,460 [DEBUG][       Thread-612662][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:49:24,460 [DEBUG][       Thread-612662][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:49:24,470 [DEBUG][       Thread-612662][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:49:24,482 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:49:24,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-07-01 17:49:24,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') -> 00000000
2025-07-01 17:49:24,507 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:49:24,508 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:49:24,508 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:49:24,516 [DEBUG][       Thread-612662][   transport.py][1871] : EOF in transport thread
2025-07-01 17:49:24,946 [DEBUG][Thread-612664 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:49:33,982 [DEBUG][Thread-612665 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:49:34,518 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:49:34,519 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:49:34,519 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:49:34,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-07-01 17:49:34,987 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 49, 16), 10.28, 49.41, 0.0, 40.1, 12.4, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:49:34,987 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:49:16
2025-07-01 17:49:35,071 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:49:35,076 [DEBUG][       Thread-612666][   transport.py][1871] : starting thread (client mode): 0x82b3040
2025-07-01 17:49:35,076 [DEBUG][       Thread-612666][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:49:35,097 [DEBUG][       Thread-612666][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:49:35,097 [ INFO][       Thread-612666][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:49:35,100 [DEBUG][       Thread-612666][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:49:35,100 [DEBUG][       Thread-612666][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:49:35,100 [DEBUG][       Thread-612666][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:49:35,101 [DEBUG][       Thread-612666][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:49:35,101 [DEBUG][       Thread-612666][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:49:35,101 [DEBUG][       Thread-612666][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:49:35,101 [DEBUG][       Thread-612666][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:49:35,101 [DEBUG][       Thread-612666][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:49:35,101 [DEBUG][       Thread-612666][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:49:35,101 [DEBUG][       Thread-612666][   transport.py][1871] : client lang: <none>
2025-07-01 17:49:35,101 [DEBUG][       Thread-612666][   transport.py][1871] : server lang: <none>
2025-07-01 17:49:35,101 [DEBUG][       Thread-612666][   transport.py][1871] : kex follows: False
2025-07-01 17:49:35,101 [DEBUG][       Thread-612666][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:49:35,101 [DEBUG][       Thread-612666][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:49:35,101 [DEBUG][       Thread-612666][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:49:35,101 [DEBUG][       Thread-612666][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:49:35,101 [DEBUG][       Thread-612666][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:49:35,101 [DEBUG][       Thread-612666][   transport.py][1871] : Compression: none
2025-07-01 17:49:35,101 [DEBUG][       Thread-612666][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:49:35,115 [DEBUG][       Thread-612666][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:49:35,116 [DEBUG][       Thread-612666][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:49:35,116 [DEBUG][       Thread-612666][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:49:35,116 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:49:35,116 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:49:35,117 [DEBUG][       Thread-612666][   transport.py][1871] : userauth is OK
2025-07-01 17:49:35,143 [ INFO][       Thread-612666][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:49:35,143 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:49:35,765 [DEBUG][       Thread-612666][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:49:35,765 [DEBUG][       Thread-612666][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:49:35,809 [DEBUG][       Thread-612666][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:49:35,809 [DEBUG][       Thread-612666][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:49:35,813 [DEBUG][       Thread-612666][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:49:35,826 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:49:35,826 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:49:35,828 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:49:35,830 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:49:35,837 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:49:35,839 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:49:35,839 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:49:35,840 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:49:35,840 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.659312 -999.00  +12.30  18.01     54   +3.30 1 2 1 1 1   840    0 8.61 -23.43 ----- 29.8 18.0 350.5 30.2 12.9 -16.7 12.8 -16.9 12.5 -16.4 12.9 -16.0
2025-07-01 17:49:35,840 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:49:35,840 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:49:35,840 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.659312
2025-07-01 17:49:35,841 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:49:35,841 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:49:35,841 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:49:35,841 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:49:35,842 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:49:35,842 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:49:16', tmtdew=10.28, humidity=49.41, cloud=0.0, wind=40.1, temperature=12.4, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:49:24.557', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:49:35,843 [DEBUG][       Thread-612666][   transport.py][1871] : EOF in transport thread
2025-07-01 17:49:35,925 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:49:35,937 [DEBUG][       Thread-612669][   transport.py][1871] : starting thread (client mode): 0x8107580
2025-07-01 17:49:35,937 [DEBUG][       Thread-612669][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:49:35,952 [DEBUG][       Thread-612669][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:49:35,953 [ INFO][       Thread-612669][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:49:35,960 [DEBUG][       Thread-612669][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:49:35,960 [DEBUG][       Thread-612669][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:49:35,960 [DEBUG][       Thread-612669][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:49:35,960 [DEBUG][       Thread-612669][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:49:35,960 [DEBUG][       Thread-612669][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:49:35,960 [DEBUG][       Thread-612669][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:49:35,960 [DEBUG][       Thread-612669][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:49:35,960 [DEBUG][       Thread-612669][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:49:35,960 [DEBUG][       Thread-612669][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:49:35,960 [DEBUG][       Thread-612669][   transport.py][1871] : client lang: <none>
2025-07-01 17:49:35,961 [DEBUG][       Thread-612669][   transport.py][1871] : server lang: <none>
2025-07-01 17:49:35,961 [DEBUG][       Thread-612669][   transport.py][1871] : kex follows: False
2025-07-01 17:49:35,961 [DEBUG][       Thread-612669][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:49:35,961 [DEBUG][       Thread-612669][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:49:35,961 [DEBUG][       Thread-612669][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:49:35,961 [DEBUG][       Thread-612669][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:49:35,961 [DEBUG][       Thread-612669][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:49:35,961 [DEBUG][       Thread-612669][   transport.py][1871] : Compression: none
2025-07-01 17:49:35,961 [DEBUG][       Thread-612669][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:49:36,018 [DEBUG][       Thread-612669][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:49:36,019 [DEBUG][       Thread-612669][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:49:36,019 [DEBUG][       Thread-612669][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:49:36,019 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:49:36,019 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:49:36,080 [DEBUG][       Thread-612669][   transport.py][1871] : userauth is OK
2025-07-01 17:49:36,080 [DEBUG][       Thread-612669][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:49:36,080 [DEBUG][       Thread-612669][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:49:36,080 [DEBUG][       Thread-612669][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:49:36,080 [DEBUG][       Thread-612669][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:49:36,094 [ INFO][       Thread-612669][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:49:36,095 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:49:36,095 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:49:37,101 [DEBUG][       Thread-612669][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:49:37,102 [DEBUG][       Thread-612669][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:49:37,152 [DEBUG][       Thread-612669][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:49:37,152 [DEBUG][       Thread-612669][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:49:37,161 [DEBUG][       Thread-612669][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:49:37,169 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:49:37,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-07-01 17:49: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') -> 00000000
2025-07-01 17:49:37,187 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:49:37,187 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:49:37,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:49:37,195 [DEBUG][       Thread-612669][   transport.py][1871] : EOF in transport thread
2025-07-01 17:49:41,405 [DEBUG][Thread-612671 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:49:43,005 [DEBUG][Thread-612672 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:49:47,196 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:49:47,196 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:49:47,196 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:49:47,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-07-01 17:49:47,675 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 49, 16), 10.28, 49.41, 0.0, 40.1, 12.4, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:49:47,677 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:49:16
2025-07-01 17:49:47,761 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:49:47,765 [DEBUG][       Thread-612673][   transport.py][1871] : starting thread (client mode): 0x82b26e0
2025-07-01 17:49:47,765 [DEBUG][       Thread-612673][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:49:47,786 [DEBUG][       Thread-612673][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:49:47,786 [ INFO][       Thread-612673][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:49:47,790 [DEBUG][       Thread-612673][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:49:47,790 [DEBUG][       Thread-612673][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:49:47,790 [DEBUG][       Thread-612673][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:49:47,790 [DEBUG][       Thread-612673][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:49:47,790 [DEBUG][       Thread-612673][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:49:47,790 [DEBUG][       Thread-612673][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:49:47,790 [DEBUG][       Thread-612673][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:49:47,790 [DEBUG][       Thread-612673][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:49:47,790 [DEBUG][       Thread-612673][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:49:47,790 [DEBUG][       Thread-612673][   transport.py][1871] : client lang: <none>
2025-07-01 17:49:47,790 [DEBUG][       Thread-612673][   transport.py][1871] : server lang: <none>
2025-07-01 17:49:47,790 [DEBUG][       Thread-612673][   transport.py][1871] : kex follows: False
2025-07-01 17:49:47,790 [DEBUG][       Thread-612673][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:49:47,790 [DEBUG][       Thread-612673][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:49:47,790 [DEBUG][       Thread-612673][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:49:47,790 [DEBUG][       Thread-612673][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:49:47,790 [DEBUG][       Thread-612673][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:49:47,790 [DEBUG][       Thread-612673][   transport.py][1871] : Compression: none
2025-07-01 17:49:47,790 [DEBUG][       Thread-612673][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:49:47,806 [DEBUG][       Thread-612673][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:49:47,806 [DEBUG][       Thread-612673][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:49:47,807 [DEBUG][       Thread-612673][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:49:47,807 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:49:47,807 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:49:47,808 [DEBUG][       Thread-612673][   transport.py][1871] : userauth is OK
2025-07-01 17:49:47,833 [ INFO][       Thread-612673][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:49:47,833 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:49:48,478 [DEBUG][       Thread-612673][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:49:48,478 [DEBUG][       Thread-612673][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:49:48,524 [DEBUG][       Thread-612673][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:49:48,525 [DEBUG][       Thread-612673][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:49:48,527 [DEBUG][       Thread-612673][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:49:48,541 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:49:48,541 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:49:48,542 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:49:48,543 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:49:48,545 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:49:48,546 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:49:48,546 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:49:48,546 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:49:48,546 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.659312 -999.00  +12.30  18.01     54   +3.30 1 2 1 1 1   840    0 8.61 -23.43 ----- 29.8 18.0 350.5 30.2 12.9 -16.7 12.8 -16.9 12.5 -16.4 12.9 -16.0
2025-07-01 17:49:48,546 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:49:48,546 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:49:48,546 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.659312
2025-07-01 17:49:48,546 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:49:48,547 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:49:48,547 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:49:48,547 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:49:48,547 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:49:48,547 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:49:16', tmtdew=10.28, humidity=49.41, cloud=0.0, wind=40.1, temperature=12.4, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:49:24.557', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:49:48,547 [DEBUG][       Thread-612673][   transport.py][1871] : EOF in transport thread
2025-07-01 17:49:48,621 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:49:48,634 [DEBUG][       Thread-612676][   transport.py][1871] : starting thread (client mode): 0x81736d0
2025-07-01 17:49:48,634 [DEBUG][       Thread-612676][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:49:48,650 [DEBUG][       Thread-612676][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:49:48,650 [ INFO][       Thread-612676][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:49:48,657 [DEBUG][       Thread-612676][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:49:48,657 [DEBUG][       Thread-612676][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:49:48,657 [DEBUG][       Thread-612676][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:49:48,658 [DEBUG][       Thread-612676][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:49:48,658 [DEBUG][       Thread-612676][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:49:48,658 [DEBUG][       Thread-612676][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:49:48,658 [DEBUG][       Thread-612676][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:49:48,658 [DEBUG][       Thread-612676][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:49:48,658 [DEBUG][       Thread-612676][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:49:48,658 [DEBUG][       Thread-612676][   transport.py][1871] : client lang: <none>
2025-07-01 17:49:48,658 [DEBUG][       Thread-612676][   transport.py][1871] : server lang: <none>
2025-07-01 17:49:48,658 [DEBUG][       Thread-612676][   transport.py][1871] : kex follows: False
2025-07-01 17:49:48,658 [DEBUG][       Thread-612676][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:49:48,658 [DEBUG][       Thread-612676][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:49:48,658 [DEBUG][       Thread-612676][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:49:48,658 [DEBUG][       Thread-612676][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:49:48,658 [DEBUG][       Thread-612676][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:49:48,658 [DEBUG][       Thread-612676][   transport.py][1871] : Compression: none
2025-07-01 17:49:48,658 [DEBUG][       Thread-612676][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:49:48,714 [DEBUG][       Thread-612676][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:49:48,714 [DEBUG][       Thread-612676][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:49:48,714 [DEBUG][       Thread-612676][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:49:48,715 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:49:48,715 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:49:48,772 [DEBUG][       Thread-612676][   transport.py][1871] : userauth is OK
2025-07-01 17:49:48,772 [DEBUG][       Thread-612676][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:49:48,772 [DEBUG][       Thread-612676][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:49:48,772 [DEBUG][       Thread-612676][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:49:48,772 [DEBUG][       Thread-612676][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:49:48,788 [ INFO][       Thread-612676][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:49:48,788 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:49:48,789 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:49:49,845 [DEBUG][       Thread-612676][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:49:49,845 [DEBUG][       Thread-612676][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:49:49,896 [DEBUG][       Thread-612676][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:49:49,896 [DEBUG][       Thread-612676][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:49:49,905 [DEBUG][       Thread-612676][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:49:49,914 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:49:49,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-07-01 17:49:49,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-07-01 17:49:49,932 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:49:49,933 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:49:49,933 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:49:49,941 [DEBUG][       Thread-612676][   transport.py][1871] : EOF in transport thread
2025-07-01 17:49:52,030 [DEBUG][Thread-612678 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:49:59,944 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:49:59,944 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:49:59,944 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:49:59,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-07-01 17:50:00,427 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 49, 47), 10.27, 49.44, 0.0, 38.08, 12.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:50:00,427 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:49:47
2025-07-01 17:50:00,512 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:50:00,517 [DEBUG][       Thread-612679][   transport.py][1871] : starting thread (client mode): 0x81a64a0
2025-07-01 17:50:00,517 [DEBUG][       Thread-612679][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:50:00,539 [DEBUG][       Thread-612679][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:50:00,540 [ INFO][       Thread-612679][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:50:00,543 [DEBUG][       Thread-612679][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:50:00,543 [DEBUG][       Thread-612679][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:50:00,543 [DEBUG][       Thread-612679][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:50:00,543 [DEBUG][       Thread-612679][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:50:00,543 [DEBUG][       Thread-612679][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:50:00,543 [DEBUG][       Thread-612679][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:50:00,543 [DEBUG][       Thread-612679][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:50:00,544 [DEBUG][       Thread-612679][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:50:00,544 [DEBUG][       Thread-612679][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:50:00,544 [DEBUG][       Thread-612679][   transport.py][1871] : client lang: <none>
2025-07-01 17:50:00,544 [DEBUG][       Thread-612679][   transport.py][1871] : server lang: <none>
2025-07-01 17:50:00,544 [DEBUG][       Thread-612679][   transport.py][1871] : kex follows: False
2025-07-01 17:50:00,544 [DEBUG][       Thread-612679][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:50:00,544 [DEBUG][       Thread-612679][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:50:00,544 [DEBUG][       Thread-612679][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:50:00,544 [DEBUG][       Thread-612679][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:50:00,544 [DEBUG][       Thread-612679][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:50:00,544 [DEBUG][       Thread-612679][   transport.py][1871] : Compression: none
2025-07-01 17:50:00,544 [DEBUG][       Thread-612679][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:50:00,561 [DEBUG][       Thread-612679][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:50:00,562 [DEBUG][       Thread-612679][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:50:00,562 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:50:00,562 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:50:00,563 [DEBUG][       Thread-612679][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:50:00,563 [DEBUG][       Thread-612679][   transport.py][1871] : userauth is OK
2025-07-01 17:50:00,588 [ INFO][       Thread-612679][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:50:00,588 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:50:01,054 [DEBUG][Thread-612681 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:50:01,221 [DEBUG][       Thread-612679][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:50:01,221 [DEBUG][       Thread-612679][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:50:01,265 [DEBUG][       Thread-612679][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:50:01,265 [DEBUG][       Thread-612679][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:50:01,267 [DEBUG][       Thread-612679][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:50:01,272 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:50:01,273 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:50:01,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:50:01,275 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:50:01,280 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:50:01,281 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:50:01,281 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:50:01,282 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:50:01,282 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.659312 -999.00  +12.30  18.01     54   +3.30 1 2 1 1 1   840    0 8.61 -23.43 ----- 29.8 18.0 350.5 30.2 12.9 -16.7 12.8 -16.9 12.5 -16.4 12.9 -16.0
2025-07-01 17:50:01,282 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:50:01,282 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:50:01,282 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.659312
2025-07-01 17:50:01,283 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:50:01,283 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:50:01,283 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:50:01,284 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:50:01,284 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:50:01,284 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:49:47', tmtdew=10.27, humidity=49.44, cloud=0.0, wind=38.08, temperature=12.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:49:24.557', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:50:01,284 [DEBUG][       Thread-612679][   transport.py][1871] : EOF in transport thread
2025-07-01 17:50:01,368 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:50:01,380 [DEBUG][       Thread-612683][   transport.py][1871] : starting thread (client mode): 0x81da140
2025-07-01 17:50:01,380 [DEBUG][       Thread-612683][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:50:01,395 [DEBUG][       Thread-612683][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:50:01,395 [ INFO][       Thread-612683][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:50:01,402 [DEBUG][       Thread-612683][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:50:01,403 [DEBUG][       Thread-612683][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:50:01,403 [DEBUG][       Thread-612683][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:50:01,403 [DEBUG][       Thread-612683][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:50:01,403 [DEBUG][       Thread-612683][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:50:01,403 [DEBUG][       Thread-612683][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:50:01,403 [DEBUG][       Thread-612683][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:50:01,403 [DEBUG][       Thread-612683][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:50:01,403 [DEBUG][       Thread-612683][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:50:01,403 [DEBUG][       Thread-612683][   transport.py][1871] : client lang: <none>
2025-07-01 17:50:01,403 [DEBUG][       Thread-612683][   transport.py][1871] : server lang: <none>
2025-07-01 17:50:01,403 [DEBUG][       Thread-612683][   transport.py][1871] : kex follows: False
2025-07-01 17:50:01,403 [DEBUG][       Thread-612683][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:50:01,403 [DEBUG][       Thread-612683][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:50:01,403 [DEBUG][       Thread-612683][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:50:01,403 [DEBUG][       Thread-612683][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:50:01,403 [DEBUG][       Thread-612683][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:50:01,403 [DEBUG][       Thread-612683][   transport.py][1871] : Compression: none
2025-07-01 17:50:01,403 [DEBUG][       Thread-612683][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:50:01,458 [DEBUG][       Thread-612683][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:50:01,459 [DEBUG][       Thread-612683][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:50:01,459 [DEBUG][       Thread-612683][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:50:01,459 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:50:01,459 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:50:01,516 [DEBUG][       Thread-612683][   transport.py][1871] : userauth is OK
2025-07-01 17:50:01,516 [DEBUG][       Thread-612683][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:50:01,516 [DEBUG][       Thread-612683][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:50:01,516 [DEBUG][       Thread-612683][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:50:01,516 [DEBUG][       Thread-612683][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:50:01,537 [ INFO][       Thread-612683][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:50:01,537 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:50:01,537 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:50:02,588 [DEBUG][       Thread-612683][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:50:02,588 [DEBUG][       Thread-612683][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:50:02,640 [DEBUG][       Thread-612683][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:50:02,640 [DEBUG][       Thread-612683][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:50:02,649 [DEBUG][       Thread-612683][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:50:02,658 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:50: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')
2025-07-01 17:50:02,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-07-01 17:50:02,676 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:50:02,677 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:50:02,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:50:02,685 [DEBUG][       Thread-612683][   transport.py][1871] : EOF in transport thread
2025-07-01 17:50:10,076 [DEBUG][Thread-612685 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:50:12,688 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:50:12,688 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:50:12,688 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:50:12,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-07-01 17:50:13,152 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 49, 47), 10.27, 49.44, 0.0, 38.08, 12.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:50:13,152 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:49:47
2025-07-01 17:50:13,236 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:50:13,240 [DEBUG][       Thread-612686][   transport.py][1871] : starting thread (client mode): 0x818e1a0
2025-07-01 17:50:13,240 [DEBUG][       Thread-612686][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:50:13,260 [DEBUG][       Thread-612686][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:50:13,260 [ INFO][       Thread-612686][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:50:13,263 [DEBUG][       Thread-612686][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:50:13,263 [DEBUG][       Thread-612686][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:50:13,263 [DEBUG][       Thread-612686][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:50:13,263 [DEBUG][       Thread-612686][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:50:13,263 [DEBUG][       Thread-612686][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:50:13,263 [DEBUG][       Thread-612686][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:50:13,263 [DEBUG][       Thread-612686][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:50:13,263 [DEBUG][       Thread-612686][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:50:13,263 [DEBUG][       Thread-612686][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:50:13,263 [DEBUG][       Thread-612686][   transport.py][1871] : client lang: <none>
2025-07-01 17:50:13,263 [DEBUG][       Thread-612686][   transport.py][1871] : server lang: <none>
2025-07-01 17:50:13,263 [DEBUG][       Thread-612686][   transport.py][1871] : kex follows: False
2025-07-01 17:50:13,263 [DEBUG][       Thread-612686][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:50:13,263 [DEBUG][       Thread-612686][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:50:13,263 [DEBUG][       Thread-612686][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:50:13,263 [DEBUG][       Thread-612686][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:50:13,263 [DEBUG][       Thread-612686][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:50:13,263 [DEBUG][       Thread-612686][   transport.py][1871] : Compression: none
2025-07-01 17:50:13,263 [DEBUG][       Thread-612686][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:50:13,278 [DEBUG][       Thread-612686][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:50:13,279 [DEBUG][       Thread-612686][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:50:13,279 [DEBUG][       Thread-612686][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:50:13,280 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:50:13,280 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:50:13,281 [DEBUG][       Thread-612686][   transport.py][1871] : userauth is OK
2025-07-01 17:50:13,294 [ INFO][       Thread-612686][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:50:13,294 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:50:13,935 [DEBUG][       Thread-612686][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:50:13,935 [DEBUG][       Thread-612686][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:50:13,981 [DEBUG][       Thread-612686][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:50:13,981 [DEBUG][       Thread-612686][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:50:13,985 [DEBUG][       Thread-612686][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:50:13,997 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:50:13,997 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:50:13,999 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:50:14,001 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:50:14,008 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:50:14,010 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:50:14,010 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:50:14,011 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:50:14,011 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.659659 -999.00  +12.30  35.37     54   +3.30 1 2 2 1 1   836    0 8.74 -23.49 ----- 26.1 35.4 15.0 43.1 13.0 -16.7 12.7 -16.8 12.6 -16.3 12.9 -15.8
2025-07-01 17:50:14,011 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:50:14,011 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:50:14,011 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.659659
2025-07-01 17:50:14,012 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:50:14,012 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:50:14,012 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:50:14,012 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:50:14,012 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:50:14,013 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:49:47', tmtdew=10.27, humidity=49.44, cloud=0.0, wind=38.08, temperature=12.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:49:54.538', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:50:14,014 [DEBUG][       Thread-612686][   transport.py][1871] : EOF in transport thread
2025-07-01 17:50:14,097 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:50:14,107 [DEBUG][       Thread-612689][   transport.py][1871] : starting thread (client mode): 0x81ca2c0
2025-07-01 17:50:14,107 [DEBUG][       Thread-612689][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:50:14,123 [DEBUG][       Thread-612689][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:50:14,123 [ INFO][       Thread-612689][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:50:14,130 [DEBUG][       Thread-612689][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:50:14,131 [DEBUG][       Thread-612689][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:50:14,131 [DEBUG][       Thread-612689][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:50:14,131 [DEBUG][       Thread-612689][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:50:14,131 [DEBUG][       Thread-612689][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:50:14,131 [DEBUG][       Thread-612689][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:50:14,131 [DEBUG][       Thread-612689][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:50:14,131 [DEBUG][       Thread-612689][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:50:14,131 [DEBUG][       Thread-612689][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:50:14,131 [DEBUG][       Thread-612689][   transport.py][1871] : client lang: <none>
2025-07-01 17:50:14,131 [DEBUG][       Thread-612689][   transport.py][1871] : server lang: <none>
2025-07-01 17:50:14,131 [DEBUG][       Thread-612689][   transport.py][1871] : kex follows: False
2025-07-01 17:50:14,131 [DEBUG][       Thread-612689][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:50:14,131 [DEBUG][       Thread-612689][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:50:14,131 [DEBUG][       Thread-612689][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:50:14,131 [DEBUG][       Thread-612689][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:50:14,131 [DEBUG][       Thread-612689][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:50:14,131 [DEBUG][       Thread-612689][   transport.py][1871] : Compression: none
2025-07-01 17:50:14,132 [DEBUG][       Thread-612689][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:50:14,189 [DEBUG][       Thread-612689][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:50:14,189 [DEBUG][       Thread-612689][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:50:14,190 [DEBUG][       Thread-612689][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:50:14,190 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:50:14,191 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:50:14,244 [DEBUG][       Thread-612689][   transport.py][1871] : userauth is OK
2025-07-01 17:50:14,245 [DEBUG][       Thread-612689][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:50:14,245 [DEBUG][       Thread-612689][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:50:14,245 [DEBUG][       Thread-612689][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:50:14,245 [DEBUG][       Thread-612689][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:50:14,267 [ INFO][       Thread-612689][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:50:14,267 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:50:14,268 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:50:15,315 [DEBUG][       Thread-612689][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:50:15,315 [DEBUG][       Thread-612689][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:50:15,365 [DEBUG][       Thread-612689][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:50:15,366 [DEBUG][       Thread-612689][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:50:15,375 [DEBUG][       Thread-612689][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:50:15,384 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:50:15,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-07-01 17:50:15,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-07-01 17:50:15,404 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:50:15,404 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:50:15,404 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:50:15,412 [DEBUG][       Thread-612689][   transport.py][1871] : EOF in transport thread
2025-07-01 17:50:19,121 [DEBUG][Thread-612691 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:50:25,415 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:50:25,415 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:50:25,415 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:50:25,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-07-01 17:50:25,905 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 50, 19), 10.34, 49.43, 0.0, 39.88, 12.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:50:25,906 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:50:19
2025-07-01 17:50:25,990 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:50:25,997 [DEBUG][       Thread-612692][   transport.py][1871] : starting thread (client mode): 0x81e5b10
2025-07-01 17:50:25,997 [DEBUG][       Thread-612692][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:50:26,019 [DEBUG][       Thread-612692][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:50:26,019 [ INFO][       Thread-612692][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:50:26,023 [DEBUG][       Thread-612692][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:50:26,023 [DEBUG][       Thread-612692][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:50:26,023 [DEBUG][       Thread-612692][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:50:26,023 [DEBUG][       Thread-612692][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:50:26,023 [DEBUG][       Thread-612692][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:50:26,023 [DEBUG][       Thread-612692][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:50:26,023 [DEBUG][       Thread-612692][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:50:26,023 [DEBUG][       Thread-612692][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:50:26,023 [DEBUG][       Thread-612692][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:50:26,023 [DEBUG][       Thread-612692][   transport.py][1871] : client lang: <none>
2025-07-01 17:50:26,023 [DEBUG][       Thread-612692][   transport.py][1871] : server lang: <none>
2025-07-01 17:50:26,023 [DEBUG][       Thread-612692][   transport.py][1871] : kex follows: False
2025-07-01 17:50:26,023 [DEBUG][       Thread-612692][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:50:26,023 [DEBUG][       Thread-612692][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:50:26,023 [DEBUG][       Thread-612692][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:50:26,023 [DEBUG][       Thread-612692][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:50:26,023 [DEBUG][       Thread-612692][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:50:26,023 [DEBUG][       Thread-612692][   transport.py][1871] : Compression: none
2025-07-01 17:50:26,023 [DEBUG][       Thread-612692][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:50:26,039 [DEBUG][       Thread-612692][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:50:26,039 [DEBUG][       Thread-612692][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:50:26,040 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:50:26,040 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:50:26,041 [DEBUG][       Thread-612692][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:50:26,041 [DEBUG][       Thread-612692][   transport.py][1871] : userauth is OK
2025-07-01 17:50:26,055 [ INFO][       Thread-612692][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:50:26,055 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:50:26,718 [DEBUG][       Thread-612692][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:50:26,719 [DEBUG][       Thread-612692][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:50:26,761 [DEBUG][       Thread-612692][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:50:26,761 [DEBUG][       Thread-612692][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:50:26,764 [DEBUG][       Thread-612692][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:50:26,777 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:50:26,777 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:50:26,779 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:50:26,781 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:50:26,785 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:50:26,787 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:50:26,787 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:50:26,788 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:50:26,788 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.659659 -999.00  +12.30  35.37     54   +3.30 1 2 2 1 1   836    0 8.74 -23.49 ----- 26.1 35.4 15.0 43.1 13.0 -16.7 12.7 -16.8 12.6 -16.3 12.9 -15.8
2025-07-01 17:50:26,788 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:50:26,788 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:50:26,788 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.659659
2025-07-01 17:50:26,789 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:50:26,789 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:50:26,789 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:50:26,789 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:50:26,790 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:50:26,790 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:50:19', tmtdew=10.34, humidity=49.43, cloud=0.0, wind=39.88, temperature=12.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:49:54.538', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:50:26,791 [DEBUG][       Thread-612692][   transport.py][1871] : EOF in transport thread
2025-07-01 17:50:26,873 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:50:26,887 [DEBUG][       Thread-612695][   transport.py][1871] : starting thread (client mode): 0x8173bb0
2025-07-01 17:50:26,887 [DEBUG][       Thread-612695][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:50:26,903 [DEBUG][       Thread-612695][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:50:26,903 [ INFO][       Thread-612695][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:50:26,911 [DEBUG][       Thread-612695][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:50:26,911 [DEBUG][       Thread-612695][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:50:26,911 [DEBUG][       Thread-612695][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:50:26,911 [DEBUG][       Thread-612695][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:50:26,911 [DEBUG][       Thread-612695][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:50:26,911 [DEBUG][       Thread-612695][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:50:26,911 [DEBUG][       Thread-612695][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:50:26,911 [DEBUG][       Thread-612695][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:50:26,911 [DEBUG][       Thread-612695][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:50:26,911 [DEBUG][       Thread-612695][   transport.py][1871] : client lang: <none>
2025-07-01 17:50:26,911 [DEBUG][       Thread-612695][   transport.py][1871] : server lang: <none>
2025-07-01 17:50:26,911 [DEBUG][       Thread-612695][   transport.py][1871] : kex follows: False
2025-07-01 17:50:26,911 [DEBUG][       Thread-612695][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:50:26,911 [DEBUG][       Thread-612695][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:50:26,911 [DEBUG][       Thread-612695][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:50:26,912 [DEBUG][       Thread-612695][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:50:26,912 [DEBUG][       Thread-612695][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:50:26,912 [DEBUG][       Thread-612695][   transport.py][1871] : Compression: none
2025-07-01 17:50:26,912 [DEBUG][       Thread-612695][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:50:26,968 [DEBUG][       Thread-612695][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:50:26,969 [DEBUG][       Thread-612695][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:50:26,969 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:50:26,970 [DEBUG][       Thread-612695][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:50:26,970 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:50:27,032 [DEBUG][       Thread-612695][   transport.py][1871] : userauth is OK
2025-07-01 17:50:27,033 [DEBUG][       Thread-612695][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:50:27,033 [DEBUG][       Thread-612695][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:50:27,033 [DEBUG][       Thread-612695][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:50:27,033 [DEBUG][       Thread-612695][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:50:27,052 [ INFO][       Thread-612695][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:50:27,053 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:50:27,053 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:50:28,113 [DEBUG][       Thread-612695][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:50:28,114 [DEBUG][       Thread-612695][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:50:28,150 [DEBUG][Thread-612697 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:50:28,163 [DEBUG][       Thread-612695][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:50:28,164 [DEBUG][       Thread-612695][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:50:28,173 [DEBUG][       Thread-612695][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:50:28,182 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:50: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-07-01 17:50:28,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-07-01 17:50:28,201 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:50:28,201 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:50:28,201 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:50:28,211 [DEBUG][       Thread-612695][   transport.py][1871] : EOF in transport thread
2025-07-01 17:50:37,193 [DEBUG][Thread-612698 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:50:38,210 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:50:38,211 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:50:38,211 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:50: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-07-01 17:50:38,683 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 50, 19), 10.34, 49.43, 0.0, 39.88, 12.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:50:38,683 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:50:19
2025-07-01 17:50:38,768 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:50:38,771 [DEBUG][       Thread-612699][   transport.py][1871] : starting thread (client mode): 0x81040d0
2025-07-01 17:50:38,771 [DEBUG][       Thread-612699][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:50:38,782 [DEBUG][       Thread-612699][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:50:38,782 [ INFO][       Thread-612699][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:50:38,785 [DEBUG][       Thread-612699][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:50:38,785 [DEBUG][       Thread-612699][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:50:38,785 [DEBUG][       Thread-612699][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:50:38,785 [DEBUG][       Thread-612699][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:50:38,785 [DEBUG][       Thread-612699][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:50:38,785 [DEBUG][       Thread-612699][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:50:38,785 [DEBUG][       Thread-612699][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:50:38,785 [DEBUG][       Thread-612699][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:50:38,785 [DEBUG][       Thread-612699][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:50:38,785 [DEBUG][       Thread-612699][   transport.py][1871] : client lang: <none>
2025-07-01 17:50:38,785 [DEBUG][       Thread-612699][   transport.py][1871] : server lang: <none>
2025-07-01 17:50:38,785 [DEBUG][       Thread-612699][   transport.py][1871] : kex follows: False
2025-07-01 17:50:38,785 [DEBUG][       Thread-612699][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:50:38,785 [DEBUG][       Thread-612699][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:50:38,785 [DEBUG][       Thread-612699][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:50:38,785 [DEBUG][       Thread-612699][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:50:38,785 [DEBUG][       Thread-612699][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:50:38,785 [DEBUG][       Thread-612699][   transport.py][1871] : Compression: none
2025-07-01 17:50:38,785 [DEBUG][       Thread-612699][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:50:38,792 [DEBUG][       Thread-612699][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:50:38,792 [DEBUG][       Thread-612699][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:50:38,793 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:50:38,793 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:50:38,793 [DEBUG][       Thread-612699][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:50:38,793 [DEBUG][       Thread-612699][   transport.py][1871] : userauth is OK
2025-07-01 17:50:38,806 [ INFO][       Thread-612699][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:50:38,806 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:50:39,430 [DEBUG][       Thread-612699][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:50:39,431 [DEBUG][       Thread-612699][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:50:39,473 [DEBUG][       Thread-612699][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:50:39,473 [DEBUG][       Thread-612699][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:50:39,476 [DEBUG][       Thread-612699][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:50:39,490 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:50:39,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:50:39,492 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:50:39,493 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:50:39,496 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:50:39,498 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:50:39,498 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:50:39,499 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:50:39,499 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.660006 -999.00  +12.30  27.03     54   +3.30 1 2 1 1 1   831    0 8.52 -21.96 ----- 20.0 27.0 16.6 31.2 12.9 -16.6 12.7 -16.7 12.5 -16.4 12.9 -15.9
2025-07-01 17:50:39,499 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:50:39,499 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:50:39,499 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.660006
2025-07-01 17:50:39,500 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:50:39,500 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:50:39,500 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:50:39,500 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:50:39,500 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:50:39,501 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:50:19', tmtdew=10.34, humidity=49.43, cloud=0.0, wind=39.88, temperature=12.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:50:24.518', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:50:39,501 [DEBUG][       Thread-612699][   transport.py][1871] : EOF in transport thread
2025-07-01 17:50:39,588 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:50:39,598 [DEBUG][       Thread-612702][   transport.py][1871] : starting thread (client mode): 0x827db40
2025-07-01 17:50:39,598 [DEBUG][       Thread-612702][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:50:39,613 [DEBUG][       Thread-612702][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:50:39,613 [ INFO][       Thread-612702][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:50:39,621 [DEBUG][       Thread-612702][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:50:39,621 [DEBUG][       Thread-612702][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:50:39,621 [DEBUG][       Thread-612702][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:50:39,621 [DEBUG][       Thread-612702][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:50:39,621 [DEBUG][       Thread-612702][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:50:39,621 [DEBUG][       Thread-612702][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:50:39,622 [DEBUG][       Thread-612702][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:50:39,622 [DEBUG][       Thread-612702][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:50:39,622 [DEBUG][       Thread-612702][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:50:39,622 [DEBUG][       Thread-612702][   transport.py][1871] : client lang: <none>
2025-07-01 17:50:39,622 [DEBUG][       Thread-612702][   transport.py][1871] : server lang: <none>
2025-07-01 17:50:39,622 [DEBUG][       Thread-612702][   transport.py][1871] : kex follows: False
2025-07-01 17:50:39,622 [DEBUG][       Thread-612702][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:50:39,622 [DEBUG][       Thread-612702][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:50:39,622 [DEBUG][       Thread-612702][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:50:39,622 [DEBUG][       Thread-612702][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:50:39,622 [DEBUG][       Thread-612702][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:50:39,622 [DEBUG][       Thread-612702][   transport.py][1871] : Compression: none
2025-07-01 17:50:39,622 [DEBUG][       Thread-612702][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:50:39,682 [DEBUG][       Thread-612702][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:50:39,683 [DEBUG][       Thread-612702][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:50:39,684 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:50:39,684 [DEBUG][       Thread-612702][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:50:39,685 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:50:39,745 [DEBUG][       Thread-612702][   transport.py][1871] : userauth is OK
2025-07-01 17:50:39,745 [DEBUG][       Thread-612702][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:50:39,745 [DEBUG][       Thread-612702][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:50:39,745 [DEBUG][       Thread-612702][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:50:39,745 [DEBUG][       Thread-612702][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:50:39,763 [ INFO][       Thread-612702][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:50:39,763 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:50:39,764 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:50:40,776 [DEBUG][       Thread-612702][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:50:40,776 [DEBUG][       Thread-612702][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:50:40,824 [DEBUG][       Thread-612702][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:50:40,824 [DEBUG][       Thread-612702][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:50:40,833 [DEBUG][       Thread-612702][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:50:40,842 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:50:40,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-07-01 17:50:40,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-07-01 17:50:40,861 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:50:40,861 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:50:40,861 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:50:40,869 [DEBUG][       Thread-612702][   transport.py][1871] : EOF in transport thread
2025-07-01 17:50:41,454 [DEBUG][Thread-612704 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:50:46,212 [DEBUG][Thread-612705 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:50:50,867 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:50:50,867 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:50:50,867 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:50:50,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-07-01 17:50:51,351 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 50, 19), 10.34, 49.43, 0.0, 39.88, 12.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:50:51,351 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:50:19
2025-07-01 17:50:51,436 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:50:51,441 [DEBUG][       Thread-612706][   transport.py][1871] : starting thread (client mode): 0x8105c90
2025-07-01 17:50:51,441 [DEBUG][       Thread-612706][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:50:51,462 [DEBUG][       Thread-612706][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:50:51,462 [ INFO][       Thread-612706][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:50:51,465 [DEBUG][       Thread-612706][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:50:51,465 [DEBUG][       Thread-612706][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:50:51,465 [DEBUG][       Thread-612706][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:50:51,465 [DEBUG][       Thread-612706][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:50:51,465 [DEBUG][       Thread-612706][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:50:51,465 [DEBUG][       Thread-612706][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:50:51,465 [DEBUG][       Thread-612706][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:50:51,465 [DEBUG][       Thread-612706][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:50:51,465 [DEBUG][       Thread-612706][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:50:51,465 [DEBUG][       Thread-612706][   transport.py][1871] : client lang: <none>
2025-07-01 17:50:51,465 [DEBUG][       Thread-612706][   transport.py][1871] : server lang: <none>
2025-07-01 17:50:51,466 [DEBUG][       Thread-612706][   transport.py][1871] : kex follows: False
2025-07-01 17:50:51,466 [DEBUG][       Thread-612706][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:50:51,466 [DEBUG][       Thread-612706][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:50:51,466 [DEBUG][       Thread-612706][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:50:51,466 [DEBUG][       Thread-612706][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:50:51,466 [DEBUG][       Thread-612706][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:50:51,466 [DEBUG][       Thread-612706][   transport.py][1871] : Compression: none
2025-07-01 17:50:51,466 [DEBUG][       Thread-612706][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:50:51,477 [DEBUG][       Thread-612706][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:50:51,477 [DEBUG][       Thread-612706][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:50:51,477 [DEBUG][       Thread-612706][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:50:51,477 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:50:51,477 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:50:51,478 [DEBUG][       Thread-612706][   transport.py][1871] : userauth is OK
2025-07-01 17:50:51,501 [ INFO][       Thread-612706][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:50:51,502 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:50:52,178 [DEBUG][       Thread-612706][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:50:52,178 [DEBUG][       Thread-612706][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:50:52,220 [DEBUG][       Thread-612706][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:50:52,220 [DEBUG][       Thread-612706][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:50:52,223 [DEBUG][       Thread-612706][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:50:52,236 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:50:52,237 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:50:52,237 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:50:52,238 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:50:52,240 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:50:52,241 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:50:52,241 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:50:52,241 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:50:52,241 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.660006 -999.00  +12.30  27.03     54   +3.30 1 2 1 1 1   831    0 8.52 -21.96 ----- 20.0 27.0 16.6 31.2 12.9 -16.6 12.7 -16.7 12.5 -16.4 12.9 -15.9
2025-07-01 17:50:52,241 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:50:52,241 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:50:52,241 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.660006
2025-07-01 17:50:52,241 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:50:52,242 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:50:52,242 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:50:52,242 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:50:52,242 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:50:52,242 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:50:19', tmtdew=10.34, humidity=49.43, cloud=0.0, wind=39.88, temperature=12.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:50:24.518', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:50:52,242 [DEBUG][       Thread-612706][   transport.py][1871] : EOF in transport thread
2025-07-01 17:50:52,316 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:50:52,327 [DEBUG][       Thread-612709][   transport.py][1871] : starting thread (client mode): 0x827d540
2025-07-01 17:50:52,328 [DEBUG][       Thread-612709][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:50:52,342 [DEBUG][       Thread-612709][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:50:52,342 [ INFO][       Thread-612709][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:50:52,350 [DEBUG][       Thread-612709][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:50:52,350 [DEBUG][       Thread-612709][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:50:52,350 [DEBUG][       Thread-612709][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:50:52,350 [DEBUG][       Thread-612709][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:50:52,350 [DEBUG][       Thread-612709][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:50:52,350 [DEBUG][       Thread-612709][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:50:52,350 [DEBUG][       Thread-612709][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:50:52,350 [DEBUG][       Thread-612709][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:50:52,350 [DEBUG][       Thread-612709][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:50:52,350 [DEBUG][       Thread-612709][   transport.py][1871] : client lang: <none>
2025-07-01 17:50:52,350 [DEBUG][       Thread-612709][   transport.py][1871] : server lang: <none>
2025-07-01 17:50:52,350 [DEBUG][       Thread-612709][   transport.py][1871] : kex follows: False
2025-07-01 17:50:52,350 [DEBUG][       Thread-612709][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:50:52,350 [DEBUG][       Thread-612709][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:50:52,350 [DEBUG][       Thread-612709][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:50:52,350 [DEBUG][       Thread-612709][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:50:52,350 [DEBUG][       Thread-612709][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:50:52,350 [DEBUG][       Thread-612709][   transport.py][1871] : Compression: none
2025-07-01 17:50:52,350 [DEBUG][       Thread-612709][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:50:52,407 [DEBUG][       Thread-612709][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:50:52,407 [DEBUG][       Thread-612709][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:50:52,407 [DEBUG][       Thread-612709][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:50:52,407 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:50:52,407 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:50:52,464 [DEBUG][       Thread-612709][   transport.py][1871] : userauth is OK
2025-07-01 17:50:52,464 [DEBUG][       Thread-612709][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:50:52,464 [DEBUG][       Thread-612709][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:50:52,464 [DEBUG][       Thread-612709][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:50:52,464 [DEBUG][       Thread-612709][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:50:52,478 [ INFO][       Thread-612709][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:50:52,478 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:50:52,479 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:50:53,502 [DEBUG][       Thread-612709][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:50:53,503 [DEBUG][       Thread-612709][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:50:53,555 [DEBUG][       Thread-612709][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:50:53,556 [DEBUG][       Thread-612709][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:50:53,565 [DEBUG][       Thread-612709][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:50:53,573 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:50:53,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-07-01 17:50:53,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-07-01 17:50:53,591 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:50:53,591 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:50:53,591 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:50:53,602 [DEBUG][       Thread-612709][   transport.py][1871] : EOF in transport thread
2025-07-01 17:50:55,235 [DEBUG][Thread-612711 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:51:03,602 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:51:03,602 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:51:03,602 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:51:03,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-07-01 17:51:04,090 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 50, 51), 10.34, 49.44, 0.0, 34.76, 12.41, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:51:04,090 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:50:51
2025-07-01 17:51:04,174 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:51:04,179 [DEBUG][       Thread-612712][   transport.py][1871] : starting thread (client mode): 0x81075e0
2025-07-01 17:51:04,179 [DEBUG][       Thread-612712][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:51:04,200 [DEBUG][       Thread-612712][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:51:04,200 [ INFO][       Thread-612712][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:51:04,203 [DEBUG][       Thread-612712][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:51:04,203 [DEBUG][       Thread-612712][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:51:04,203 [DEBUG][       Thread-612712][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:51:04,203 [DEBUG][       Thread-612712][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:51:04,203 [DEBUG][       Thread-612712][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:51:04,203 [DEBUG][       Thread-612712][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:51:04,203 [DEBUG][       Thread-612712][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:51:04,203 [DEBUG][       Thread-612712][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:51:04,203 [DEBUG][       Thread-612712][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:51:04,203 [DEBUG][       Thread-612712][   transport.py][1871] : client lang: <none>
2025-07-01 17:51:04,203 [DEBUG][       Thread-612712][   transport.py][1871] : server lang: <none>
2025-07-01 17:51:04,203 [DEBUG][       Thread-612712][   transport.py][1871] : kex follows: False
2025-07-01 17:51:04,203 [DEBUG][       Thread-612712][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:51:04,204 [DEBUG][       Thread-612712][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:51:04,204 [DEBUG][       Thread-612712][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:51:04,204 [DEBUG][       Thread-612712][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:51:04,204 [DEBUG][       Thread-612712][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:51:04,204 [DEBUG][       Thread-612712][   transport.py][1871] : Compression: none
2025-07-01 17:51:04,204 [DEBUG][       Thread-612712][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:51:04,221 [DEBUG][       Thread-612712][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:51:04,221 [DEBUG][       Thread-612712][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:51:04,221 [DEBUG][       Thread-612712][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:51:04,222 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:51:04,222 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:51:04,223 [DEBUG][       Thread-612712][   transport.py][1871] : userauth is OK
2025-07-01 17:51:04,248 [ INFO][       Thread-612712][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:51:04,248 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:51:04,259 [DEBUG][Thread-612714 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:51:04,912 [DEBUG][       Thread-612712][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:51:04,913 [DEBUG][       Thread-612712][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:51:04,957 [DEBUG][       Thread-612712][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:51:04,957 [DEBUG][       Thread-612712][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:51:04,961 [DEBUG][       Thread-612712][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:51:04,973 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:51:04,973 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:51:04,975 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:51:04,977 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:51:04,983 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:51:04,985 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:51:04,986 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:51:04,986 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:51:04,987 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.660006 -999.00  +12.30  27.03     54   +3.30 1 2 1 1 1   831    0 8.52 -21.96 ----- 20.0 27.0 16.6 31.2 12.9 -16.6 12.7 -16.7 12.5 -16.4 12.9 -15.9
2025-07-01 17:51:04,987 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:51:04,987 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:51:04,987 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.660006
2025-07-01 17:51:04,987 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:51:04,988 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:51:04,988 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:51:04,988 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:51:04,988 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:51:04,988 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:50:51', tmtdew=10.34, humidity=49.44, cloud=0.0, wind=34.76, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:50:24.518', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:51:04,989 [DEBUG][       Thread-612712][   transport.py][1871] : EOF in transport thread
2025-07-01 17:51:05,072 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:51:05,081 [DEBUG][       Thread-612716][   transport.py][1871] : starting thread (client mode): 0x81caa40
2025-07-01 17:51:05,081 [DEBUG][       Thread-612716][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:51:05,096 [DEBUG][       Thread-612716][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:51:05,096 [ INFO][       Thread-612716][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:51:05,104 [DEBUG][       Thread-612716][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:51:05,104 [DEBUG][       Thread-612716][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:51:05,104 [DEBUG][       Thread-612716][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:51:05,104 [DEBUG][       Thread-612716][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:51:05,104 [DEBUG][       Thread-612716][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:51:05,104 [DEBUG][       Thread-612716][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:51:05,104 [DEBUG][       Thread-612716][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:51:05,104 [DEBUG][       Thread-612716][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:51:05,104 [DEBUG][       Thread-612716][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:51:05,104 [DEBUG][       Thread-612716][   transport.py][1871] : client lang: <none>
2025-07-01 17:51:05,104 [DEBUG][       Thread-612716][   transport.py][1871] : server lang: <none>
2025-07-01 17:51:05,104 [DEBUG][       Thread-612716][   transport.py][1871] : kex follows: False
2025-07-01 17:51:05,105 [DEBUG][       Thread-612716][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:51:05,105 [DEBUG][       Thread-612716][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:51:05,105 [DEBUG][       Thread-612716][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:51:05,105 [DEBUG][       Thread-612716][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:51:05,105 [DEBUG][       Thread-612716][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:51:05,105 [DEBUG][       Thread-612716][   transport.py][1871] : Compression: none
2025-07-01 17:51:05,105 [DEBUG][       Thread-612716][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:51:05,162 [DEBUG][       Thread-612716][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:51:05,163 [DEBUG][       Thread-612716][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:51:05,163 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:51:05,164 [DEBUG][       Thread-612716][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:51:05,165 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:51:05,226 [DEBUG][       Thread-612716][   transport.py][1871] : userauth is OK
2025-07-01 17:51:05,226 [DEBUG][       Thread-612716][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:51:05,226 [DEBUG][       Thread-612716][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:51:05,226 [DEBUG][       Thread-612716][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:51:05,226 [DEBUG][       Thread-612716][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:51:05,248 [ INFO][       Thread-612716][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:51:05,249 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:51:05,249 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:51:06,339 [DEBUG][       Thread-612716][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:51:06,339 [DEBUG][       Thread-612716][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:51:06,388 [DEBUG][       Thread-612716][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:51:06,388 [DEBUG][       Thread-612716][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:51:06,397 [DEBUG][       Thread-612716][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:51:06,406 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:51:06,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-07-01 17:51:06,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-07-01 17:51:06,424 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:51:06,424 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:51:06,424 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:51:06,433 [DEBUG][       Thread-612716][   transport.py][1871] : EOF in transport thread
2025-07-01 17:51:13,281 [DEBUG][Thread-612718 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:51:16,435 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:51:16,435 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:51:16,435 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:51:16,438 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:51:16,909 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 50, 51), 10.34, 49.44, 0.0, 34.76, 12.41, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:51:16,909 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:50:51
2025-07-01 17:51:16,993 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:51:16,999 [DEBUG][       Thread-612719][   transport.py][1871] : starting thread (client mode): 0x82b2fe0
2025-07-01 17:51:16,999 [DEBUG][       Thread-612719][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:51:17,020 [DEBUG][       Thread-612719][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:51:17,020 [ INFO][       Thread-612719][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:51:17,022 [DEBUG][       Thread-612719][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:51:17,022 [DEBUG][       Thread-612719][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:51:17,022 [DEBUG][       Thread-612719][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:51:17,022 [DEBUG][       Thread-612719][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:51:17,022 [DEBUG][       Thread-612719][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:51:17,022 [DEBUG][       Thread-612719][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:51:17,022 [DEBUG][       Thread-612719][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:51:17,022 [DEBUG][       Thread-612719][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:51:17,022 [DEBUG][       Thread-612719][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:51:17,022 [DEBUG][       Thread-612719][   transport.py][1871] : client lang: <none>
2025-07-01 17:51:17,022 [DEBUG][       Thread-612719][   transport.py][1871] : server lang: <none>
2025-07-01 17:51:17,022 [DEBUG][       Thread-612719][   transport.py][1871] : kex follows: False
2025-07-01 17:51:17,022 [DEBUG][       Thread-612719][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:51:17,022 [DEBUG][       Thread-612719][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:51:17,022 [DEBUG][       Thread-612719][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:51:17,022 [DEBUG][       Thread-612719][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:51:17,022 [DEBUG][       Thread-612719][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:51:17,022 [DEBUG][       Thread-612719][   transport.py][1871] : Compression: none
2025-07-01 17:51:17,022 [DEBUG][       Thread-612719][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:51:17,038 [DEBUG][       Thread-612719][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:51:17,038 [DEBUG][       Thread-612719][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:51:17,038 [DEBUG][       Thread-612719][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:51:17,038 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:51:17,038 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:51:17,039 [DEBUG][       Thread-612719][   transport.py][1871] : userauth is OK
2025-07-01 17:51:17,063 [ INFO][       Thread-612719][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:51:17,063 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:51:17,624 [DEBUG][       Thread-612719][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:51:17,624 [DEBUG][       Thread-612719][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:51:17,665 [DEBUG][       Thread-612719][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:51:17,665 [DEBUG][       Thread-612719][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:51:17,669 [DEBUG][       Thread-612719][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:51:17,681 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:51:17,682 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:51:17,684 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:51:17,686 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:51:17,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:51:17,695 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:51:17,695 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:51:17,696 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:51:17,696 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.660354 -999.00  +12.30  21.00     54   +3.30 1 2 1 1 1   825    0 8.60 -22.11 ----- 29.2 21.0 342.1 36.8 12.9 -16.6 12.8 -16.7 12.6 -16.3 12.9 -15.8
2025-07-01 17:51:17,696 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:51:17,696 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:51:17,696 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.660354
2025-07-01 17:51:17,696 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:51:17,697 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:51:17,697 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:51:17,697 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:51:17,697 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:51:17,697 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:50:51', tmtdew=10.34, humidity=49.44, cloud=0.0, wind=34.76, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:50:54.586', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:51:17,698 [DEBUG][       Thread-612719][   transport.py][1871] : EOF in transport thread
2025-07-01 17:51:17,781 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:51:17,790 [DEBUG][       Thread-612722][   transport.py][1871] : starting thread (client mode): 0x81e4be0
2025-07-01 17:51:17,790 [DEBUG][       Thread-612722][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:51:17,807 [DEBUG][       Thread-612722][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:51:17,807 [ INFO][       Thread-612722][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:51:17,814 [DEBUG][       Thread-612722][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:51:17,814 [DEBUG][       Thread-612722][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:51:17,815 [DEBUG][       Thread-612722][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:51:17,815 [DEBUG][       Thread-612722][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:51:17,815 [DEBUG][       Thread-612722][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:51:17,815 [DEBUG][       Thread-612722][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:51:17,815 [DEBUG][       Thread-612722][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:51:17,815 [DEBUG][       Thread-612722][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:51:17,815 [DEBUG][       Thread-612722][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:51:17,815 [DEBUG][       Thread-612722][   transport.py][1871] : client lang: <none>
2025-07-01 17:51:17,815 [DEBUG][       Thread-612722][   transport.py][1871] : server lang: <none>
2025-07-01 17:51:17,815 [DEBUG][       Thread-612722][   transport.py][1871] : kex follows: False
2025-07-01 17:51:17,815 [DEBUG][       Thread-612722][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:51:17,815 [DEBUG][       Thread-612722][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:51:17,815 [DEBUG][       Thread-612722][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:51:17,815 [DEBUG][       Thread-612722][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:51:17,815 [DEBUG][       Thread-612722][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:51:17,815 [DEBUG][       Thread-612722][   transport.py][1871] : Compression: none
2025-07-01 17:51:17,815 [DEBUG][       Thread-612722][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:51:17,873 [DEBUG][       Thread-612722][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:51:17,874 [DEBUG][       Thread-612722][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:51:17,874 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:51:17,875 [DEBUG][       Thread-612722][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:51:17,876 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:51:17,929 [DEBUG][       Thread-612722][   transport.py][1871] : userauth is OK
2025-07-01 17:51:17,929 [DEBUG][       Thread-612722][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:51:17,929 [DEBUG][       Thread-612722][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:51:17,929 [DEBUG][       Thread-612722][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:51:17,929 [DEBUG][       Thread-612722][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:51:17,948 [ INFO][       Thread-612722][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:51:17,949 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:51:17,949 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:51:18,977 [DEBUG][       Thread-612722][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:51:18,977 [DEBUG][       Thread-612722][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:51:19,028 [DEBUG][       Thread-612722][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:51:19,028 [DEBUG][       Thread-612722][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:51:19,037 [DEBUG][       Thread-612722][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:51:19,046 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:51:19,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-07-01 17:51:19,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-07-01 17:51:19,064 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:51:19,065 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:51:19,065 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:51:19,075 [DEBUG][       Thread-612722][   transport.py][1871] : EOF in transport thread
2025-07-01 17:51:22,313 [DEBUG][Thread-612724 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:51:29,076 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:51:29,076 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:51:29,076 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:51:29,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-07-01 17:51:29,558 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 51, 22), 10.29, 49.49, 0.0, 40.12, 12.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:51:29,558 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:51:22
2025-07-01 17:51:29,642 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:51:29,647 [DEBUG][       Thread-612725][   transport.py][1871] : starting thread (client mode): 0x81a7d90
2025-07-01 17:51:29,647 [DEBUG][       Thread-612725][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:51:29,667 [DEBUG][       Thread-612725][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:51:29,667 [ INFO][       Thread-612725][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:51:29,669 [DEBUG][       Thread-612725][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:51:29,669 [DEBUG][       Thread-612725][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:51:29,669 [DEBUG][       Thread-612725][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:51:29,669 [DEBUG][       Thread-612725][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:51:29,669 [DEBUG][       Thread-612725][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:51:29,669 [DEBUG][       Thread-612725][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:51:29,669 [DEBUG][       Thread-612725][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:51:29,669 [DEBUG][       Thread-612725][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:51:29,669 [DEBUG][       Thread-612725][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:51:29,669 [DEBUG][       Thread-612725][   transport.py][1871] : client lang: <none>
2025-07-01 17:51:29,669 [DEBUG][       Thread-612725][   transport.py][1871] : server lang: <none>
2025-07-01 17:51:29,669 [DEBUG][       Thread-612725][   transport.py][1871] : kex follows: False
2025-07-01 17:51:29,669 [DEBUG][       Thread-612725][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:51:29,669 [DEBUG][       Thread-612725][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:51:29,669 [DEBUG][       Thread-612725][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:51:29,669 [DEBUG][       Thread-612725][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:51:29,670 [DEBUG][       Thread-612725][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:51:29,670 [DEBUG][       Thread-612725][   transport.py][1871] : Compression: none
2025-07-01 17:51:29,670 [DEBUG][       Thread-612725][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:51:29,687 [DEBUG][       Thread-612725][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:51:29,687 [DEBUG][       Thread-612725][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:51:29,688 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:51:29,688 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:51:29,688 [DEBUG][       Thread-612725][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:51:29,689 [DEBUG][       Thread-612725][   transport.py][1871] : userauth is OK
2025-07-01 17:51:29,701 [ INFO][       Thread-612725][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:51:29,702 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:51:30,327 [DEBUG][       Thread-612725][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:51:30,328 [DEBUG][       Thread-612725][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:51:30,369 [DEBUG][       Thread-612725][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:51:30,369 [DEBUG][       Thread-612725][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:51:30,372 [DEBUG][       Thread-612725][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:51:30,386 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:51:30,386 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:51:30,388 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:51:30,390 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:51:30,395 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:51:30,397 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:51:30,398 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:51:30,398 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:51:30,398 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.660354 -999.00  +12.30  21.00     54   +3.30 1 2 1 1 1   825    0 8.60 -22.11 ----- 29.2 21.0 342.1 36.8 12.9 -16.6 12.8 -16.7 12.6 -16.3 12.9 -15.8
2025-07-01 17:51:30,399 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:51:30,399 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:51:30,399 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.660354
2025-07-01 17:51:30,399 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:51:30,400 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:51:30,400 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:51:30,400 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:51:30,400 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:51:30,400 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:51:22', tmtdew=10.29, humidity=49.49, cloud=0.0, wind=40.12, temperature=12.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:50:54.586', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:51:30,401 [DEBUG][       Thread-612725][   transport.py][1871] : EOF in transport thread
2025-07-01 17:51:30,483 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:51:30,508 [DEBUG][       Thread-612728][   transport.py][1871] : starting thread (client mode): 0x827d540
2025-07-01 17:51:30,508 [DEBUG][       Thread-612728][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:51:30,525 [DEBUG][       Thread-612728][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:51:30,526 [ INFO][       Thread-612728][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:51:30,533 [DEBUG][       Thread-612728][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:51:30,533 [DEBUG][       Thread-612728][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:51:30,533 [DEBUG][       Thread-612728][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:51:30,533 [DEBUG][       Thread-612728][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:51:30,534 [DEBUG][       Thread-612728][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:51:30,534 [DEBUG][       Thread-612728][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:51:30,534 [DEBUG][       Thread-612728][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:51:30,534 [DEBUG][       Thread-612728][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:51:30,534 [DEBUG][       Thread-612728][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:51:30,534 [DEBUG][       Thread-612728][   transport.py][1871] : client lang: <none>
2025-07-01 17:51:30,534 [DEBUG][       Thread-612728][   transport.py][1871] : server lang: <none>
2025-07-01 17:51:30,534 [DEBUG][       Thread-612728][   transport.py][1871] : kex follows: False
2025-07-01 17:51:30,534 [DEBUG][       Thread-612728][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:51:30,534 [DEBUG][       Thread-612728][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:51:30,534 [DEBUG][       Thread-612728][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:51:30,534 [DEBUG][       Thread-612728][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:51:30,534 [DEBUG][       Thread-612728][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:51:30,534 [DEBUG][       Thread-612728][   transport.py][1871] : Compression: none
2025-07-01 17:51:30,534 [DEBUG][       Thread-612728][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:51:30,596 [DEBUG][       Thread-612728][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:51:30,597 [DEBUG][       Thread-612728][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:51:30,598 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:51:30,598 [DEBUG][       Thread-612728][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:51:30,599 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:51:30,660 [DEBUG][       Thread-612728][   transport.py][1871] : userauth is OK
2025-07-01 17:51:30,660 [DEBUG][       Thread-612728][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:51:30,660 [DEBUG][       Thread-612728][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:51:30,660 [DEBUG][       Thread-612728][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:51:30,661 [DEBUG][       Thread-612728][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:51:30,681 [ INFO][       Thread-612728][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:51:30,682 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:51:30,682 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:51:31,335 [DEBUG][Thread-612730 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:51:31,728 [DEBUG][       Thread-612728][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:51:31,728 [DEBUG][       Thread-612728][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:51:31,776 [DEBUG][       Thread-612728][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:51:31,776 [DEBUG][       Thread-612728][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:51:31,785 [DEBUG][       Thread-612728][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:51:31,795 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:51:31,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-07-01 17:51:31,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-07-01 17:51:31,813 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:51:31,814 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:51:31,814 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:51:31,822 [DEBUG][       Thread-612728][   transport.py][1871] : EOF in transport thread
2025-07-01 17:51:40,369 [DEBUG][Thread-612731 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:51:41,506 [DEBUG][Thread-612732 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:51:41,820 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:51:41,820 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:51:41,820 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:51:41,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-07-01 17:51:42,288 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 51, 22), 10.29, 49.49, 0.0, 40.12, 12.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:51:42,288 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:51:22
2025-07-01 17:51:42,372 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:51:42,377 [DEBUG][       Thread-612733][   transport.py][1871] : starting thread (client mode): 0x818d0c0
2025-07-01 17:51:42,377 [DEBUG][       Thread-612733][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:51:42,399 [DEBUG][       Thread-612733][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:51:42,399 [ INFO][       Thread-612733][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:51:42,402 [DEBUG][       Thread-612733][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:51:42,402 [DEBUG][       Thread-612733][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:51:42,402 [DEBUG][       Thread-612733][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:51:42,402 [DEBUG][       Thread-612733][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:51:42,402 [DEBUG][       Thread-612733][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:51:42,402 [DEBUG][       Thread-612733][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:51:42,402 [DEBUG][       Thread-612733][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:51:42,402 [DEBUG][       Thread-612733][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:51:42,402 [DEBUG][       Thread-612733][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:51:42,402 [DEBUG][       Thread-612733][   transport.py][1871] : client lang: <none>
2025-07-01 17:51:42,402 [DEBUG][       Thread-612733][   transport.py][1871] : server lang: <none>
2025-07-01 17:51:42,402 [DEBUG][       Thread-612733][   transport.py][1871] : kex follows: False
2025-07-01 17:51:42,402 [DEBUG][       Thread-612733][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:51:42,402 [DEBUG][       Thread-612733][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:51:42,402 [DEBUG][       Thread-612733][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:51:42,402 [DEBUG][       Thread-612733][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:51:42,402 [DEBUG][       Thread-612733][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:51:42,402 [DEBUG][       Thread-612733][   transport.py][1871] : Compression: none
2025-07-01 17:51:42,402 [DEBUG][       Thread-612733][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:51:42,419 [DEBUG][       Thread-612733][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:51:42,420 [DEBUG][       Thread-612733][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:51:42,420 [DEBUG][       Thread-612733][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:51:42,421 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:51:42,421 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:51:42,422 [DEBUG][       Thread-612733][   transport.py][1871] : userauth is OK
2025-07-01 17:51:42,447 [ INFO][       Thread-612733][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:51:42,448 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:51:43,094 [DEBUG][       Thread-612733][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:51:43,094 [DEBUG][       Thread-612733][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:51:43,137 [DEBUG][       Thread-612733][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:51:43,137 [DEBUG][       Thread-612733][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:51:43,139 [DEBUG][       Thread-612733][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:51:43,150 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:51:43,151 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:51:43,152 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:51:43,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:51:43,159 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:51:43,160 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:51:43,161 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:51:43,161 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:51:43,161 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.660354 -999.00  +12.30  21.00     54   +3.30 1 2 1 1 1   825    0 8.60 -22.11 ----- 29.2 21.0 342.1 36.8 12.9 -16.6 12.8 -16.7 12.6 -16.3 12.9 -15.8
2025-07-01 17:51:43,161 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:51:43,161 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:51:43,161 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.660354
2025-07-01 17:51:43,162 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:51:43,162 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:51:43,162 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:51:43,162 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:51:43,163 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:51:43,163 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:51:22', tmtdew=10.29, humidity=49.49, cloud=0.0, wind=40.12, temperature=12.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:50:54.586', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:51:43,163 [DEBUG][       Thread-612733][   transport.py][1871] : EOF in transport thread
2025-07-01 17:51:43,246 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:51:43,255 [DEBUG][       Thread-612736][   transport.py][1871] : starting thread (client mode): 0x827db40
2025-07-01 17:51:43,255 [DEBUG][       Thread-612736][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:51:43,270 [DEBUG][       Thread-612736][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:51:43,270 [ INFO][       Thread-612736][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:51:43,277 [DEBUG][       Thread-612736][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:51:43,277 [DEBUG][       Thread-612736][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:51:43,277 [DEBUG][       Thread-612736][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:51:43,277 [DEBUG][       Thread-612736][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:51:43,277 [DEBUG][       Thread-612736][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:51:43,277 [DEBUG][       Thread-612736][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:51:43,277 [DEBUG][       Thread-612736][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:51:43,277 [DEBUG][       Thread-612736][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:51:43,277 [DEBUG][       Thread-612736][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:51:43,277 [DEBUG][       Thread-612736][   transport.py][1871] : client lang: <none>
2025-07-01 17:51:43,277 [DEBUG][       Thread-612736][   transport.py][1871] : server lang: <none>
2025-07-01 17:51:43,277 [DEBUG][       Thread-612736][   transport.py][1871] : kex follows: False
2025-07-01 17:51:43,278 [DEBUG][       Thread-612736][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:51:43,278 [DEBUG][       Thread-612736][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:51:43,278 [DEBUG][       Thread-612736][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:51:43,278 [DEBUG][       Thread-612736][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:51:43,278 [DEBUG][       Thread-612736][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:51:43,278 [DEBUG][       Thread-612736][   transport.py][1871] : Compression: none
2025-07-01 17:51:43,278 [DEBUG][       Thread-612736][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:51:43,337 [DEBUG][       Thread-612736][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:51:43,337 [DEBUG][       Thread-612736][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:51:43,338 [DEBUG][       Thread-612736][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:51:43,338 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:51:43,338 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:51:43,395 [DEBUG][       Thread-612736][   transport.py][1871] : userauth is OK
2025-07-01 17:51:43,396 [DEBUG][       Thread-612736][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:51:43,396 [DEBUG][       Thread-612736][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:51:43,396 [DEBUG][       Thread-612736][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:51:43,396 [DEBUG][       Thread-612736][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:51:43,417 [ INFO][       Thread-612736][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:51:43,417 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:51:43,418 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:51:44,419 [DEBUG][       Thread-612736][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:51:44,419 [DEBUG][       Thread-612736][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:51:44,467 [DEBUG][       Thread-612736][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:51:44,468 [DEBUG][       Thread-612736][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:51:44,476 [DEBUG][       Thread-612736][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:51:44,485 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:51:44,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-07-01 17:51:44,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-07-01 17:51:44,502 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:51:44,502 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:51:44,503 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:51:44,510 [DEBUG][       Thread-612736][   transport.py][1871] : EOF in transport thread
2025-07-01 17:51:49,390 [DEBUG][Thread-612738 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:51:54,513 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:51:54,513 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:51:54,513 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:51:54,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-07-01 17:51:54,992 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 51, 22), 10.29, 49.49, 0.0, 40.12, 12.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:51:54,992 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:51:22
2025-07-01 17:51:55,077 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:51:55,081 [DEBUG][       Thread-612739][   transport.py][1871] : starting thread (client mode): 0x81da1d0
2025-07-01 17:51:55,081 [DEBUG][       Thread-612739][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:51:55,102 [DEBUG][       Thread-612739][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:51:55,102 [ INFO][       Thread-612739][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:51:55,105 [DEBUG][       Thread-612739][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:51:55,105 [DEBUG][       Thread-612739][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:51:55,105 [DEBUG][       Thread-612739][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:51:55,105 [DEBUG][       Thread-612739][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:51:55,105 [DEBUG][       Thread-612739][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:51:55,105 [DEBUG][       Thread-612739][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:51:55,105 [DEBUG][       Thread-612739][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:51:55,105 [DEBUG][       Thread-612739][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:51:55,105 [DEBUG][       Thread-612739][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:51:55,105 [DEBUG][       Thread-612739][   transport.py][1871] : client lang: <none>
2025-07-01 17:51:55,105 [DEBUG][       Thread-612739][   transport.py][1871] : server lang: <none>
2025-07-01 17:51:55,105 [DEBUG][       Thread-612739][   transport.py][1871] : kex follows: False
2025-07-01 17:51:55,105 [DEBUG][       Thread-612739][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:51:55,105 [DEBUG][       Thread-612739][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:51:55,105 [DEBUG][       Thread-612739][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:51:55,105 [DEBUG][       Thread-612739][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:51:55,105 [DEBUG][       Thread-612739][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:51:55,106 [DEBUG][       Thread-612739][   transport.py][1871] : Compression: none
2025-07-01 17:51:55,106 [DEBUG][       Thread-612739][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:51:55,120 [DEBUG][       Thread-612739][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:51:55,121 [DEBUG][       Thread-612739][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:51:55,121 [DEBUG][       Thread-612739][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:51:55,121 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:51:55,121 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:51:55,121 [DEBUG][       Thread-612739][   transport.py][1871] : userauth is OK
2025-07-01 17:51:55,133 [ INFO][       Thread-612739][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:51:55,134 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:51:55,781 [DEBUG][       Thread-612739][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:51:55,781 [DEBUG][       Thread-612739][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:51:55,824 [DEBUG][       Thread-612739][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:51:55,825 [DEBUG][       Thread-612739][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:51:55,827 [DEBUG][       Thread-612739][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:51:55,840 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:51:55,840 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:51:55,842 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:51:55,842 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:51:55,846 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:51:55,847 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:51:55,847 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:51:55,847 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:51:55,847 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.660701 -999.00  +12.30  31.63     54   +3.30 1 2 2 1 1   820    0 8.52 -23.45 ----- 27.6 31.6 5.9 41.2 12.9 -16.5 12.8 -16.8 12.6 -16.1 12.9 -15.7
2025-07-01 17:51:55,847 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:51:55,847 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:51:55,847 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.660701
2025-07-01 17:51:55,847 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:51:55,847 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:51:55,847 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:51:55,847 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:51:55,847 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:51:55,847 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:51:22', tmtdew=10.29, humidity=49.49, cloud=0.0, wind=40.12, temperature=12.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:51:24.566', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:51:55,848 [DEBUG][       Thread-612739][   transport.py][1871] : EOF in transport thread
2025-07-01 17:51:55,921 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:51:55,933 [DEBUG][       Thread-612742][   transport.py][1871] : starting thread (client mode): 0x8172530
2025-07-01 17:51:55,933 [DEBUG][       Thread-612742][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:51:55,947 [DEBUG][       Thread-612742][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:51:55,947 [ INFO][       Thread-612742][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:51:55,955 [DEBUG][       Thread-612742][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:51:55,955 [DEBUG][       Thread-612742][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:51:55,955 [DEBUG][       Thread-612742][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:51:55,955 [DEBUG][       Thread-612742][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:51:55,955 [DEBUG][       Thread-612742][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:51:55,955 [DEBUG][       Thread-612742][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:51:55,955 [DEBUG][       Thread-612742][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:51:55,955 [DEBUG][       Thread-612742][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:51:55,955 [DEBUG][       Thread-612742][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:51:55,955 [DEBUG][       Thread-612742][   transport.py][1871] : client lang: <none>
2025-07-01 17:51:55,955 [DEBUG][       Thread-612742][   transport.py][1871] : server lang: <none>
2025-07-01 17:51:55,955 [DEBUG][       Thread-612742][   transport.py][1871] : kex follows: False
2025-07-01 17:51:55,955 [DEBUG][       Thread-612742][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:51:55,955 [DEBUG][       Thread-612742][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:51:55,955 [DEBUG][       Thread-612742][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:51:55,955 [DEBUG][       Thread-612742][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:51:55,955 [DEBUG][       Thread-612742][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:51:55,955 [DEBUG][       Thread-612742][   transport.py][1871] : Compression: none
2025-07-01 17:51:55,955 [DEBUG][       Thread-612742][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:51:56,012 [DEBUG][       Thread-612742][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:51:56,012 [DEBUG][       Thread-612742][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:51:56,012 [DEBUG][       Thread-612742][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:51:56,012 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:51:56,012 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:51:56,070 [DEBUG][       Thread-612742][   transport.py][1871] : userauth is OK
2025-07-01 17:51:56,070 [DEBUG][       Thread-612742][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:51:56,070 [DEBUG][       Thread-612742][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:51:56,070 [DEBUG][       Thread-612742][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:51:56,070 [DEBUG][       Thread-612742][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:51:56,084 [ INFO][       Thread-612742][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:51:56,084 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:51:56,085 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:51:57,098 [DEBUG][       Thread-612742][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:51:57,098 [DEBUG][       Thread-612742][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:51:57,148 [DEBUG][       Thread-612742][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:51:57,148 [DEBUG][       Thread-612742][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:51:57,157 [DEBUG][       Thread-612742][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:51:57,166 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:51:57,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-07-01 17:51:57,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-07-01 17:51:57,185 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:51:57,185 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:51:57,186 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:51:57,193 [DEBUG][       Thread-612742][   transport.py][1871] : EOF in transport thread
2025-07-01 17:51:58,415 [DEBUG][Thread-612744 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:52:07,196 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:52:07,197 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:52:07,197 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:52:07,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-07-01 17:52:07,433 [DEBUG][Thread-612745 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:52:07,671 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 51, 55), 10.31, 49.45, 0.0, 39.36, 12.43, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:52:07,671 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:51:55
2025-07-01 17:52:07,756 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:52:07,760 [DEBUG][       Thread-612746][   transport.py][1871] : starting thread (client mode): 0x81db3a0
2025-07-01 17:52:07,760 [DEBUG][       Thread-612746][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:52:07,780 [DEBUG][       Thread-612746][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:52:07,780 [ INFO][       Thread-612746][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:52:07,783 [DEBUG][       Thread-612746][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:52:07,784 [DEBUG][       Thread-612746][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:52:07,784 [DEBUG][       Thread-612746][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:52:07,784 [DEBUG][       Thread-612746][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:52:07,784 [DEBUG][       Thread-612746][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:52:07,784 [DEBUG][       Thread-612746][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:52:07,784 [DEBUG][       Thread-612746][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:52:07,784 [DEBUG][       Thread-612746][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:52:07,784 [DEBUG][       Thread-612746][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:52:07,784 [DEBUG][       Thread-612746][   transport.py][1871] : client lang: <none>
2025-07-01 17:52:07,784 [DEBUG][       Thread-612746][   transport.py][1871] : server lang: <none>
2025-07-01 17:52:07,784 [DEBUG][       Thread-612746][   transport.py][1871] : kex follows: False
2025-07-01 17:52:07,784 [DEBUG][       Thread-612746][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:52:07,784 [DEBUG][       Thread-612746][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:52:07,784 [DEBUG][       Thread-612746][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:52:07,784 [DEBUG][       Thread-612746][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:52:07,784 [DEBUG][       Thread-612746][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:52:07,784 [DEBUG][       Thread-612746][   transport.py][1871] : Compression: none
2025-07-01 17:52:07,784 [DEBUG][       Thread-612746][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:52:07,801 [DEBUG][       Thread-612746][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:52:07,802 [DEBUG][       Thread-612746][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:52:07,802 [DEBUG][       Thread-612746][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:52:07,802 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:52:07,803 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:52:07,804 [DEBUG][       Thread-612746][   transport.py][1871] : userauth is OK
2025-07-01 17:52:07,829 [ INFO][       Thread-612746][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:52:07,829 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:52:08,470 [DEBUG][       Thread-612746][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:52:08,470 [DEBUG][       Thread-612746][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:52:08,512 [DEBUG][       Thread-612746][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:52:08,513 [DEBUG][       Thread-612746][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:52:08,515 [DEBUG][       Thread-612746][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:52:08,527 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:52:08,527 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:52:08,528 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:52:08,529 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:52:08,533 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:52:08,534 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:52:08,534 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:52:08,534 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:52:08,534 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.660701 -999.00  +12.30  31.63     54   +3.30 1 2 2 1 1   820    0 8.52 -23.45 ----- 27.6 31.6 5.9 41.2 12.9 -16.5 12.8 -16.8 12.6 -16.1 12.9 -15.7
2025-07-01 17:52:08,534 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:52:08,534 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:52:08,534 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.660701
2025-07-01 17:52:08,535 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:52:08,535 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:52:08,535 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:52:08,535 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:52:08,535 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:52:08,535 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:51:55', tmtdew=10.31, humidity=49.45, cloud=0.0, wind=39.36, temperature=12.43, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:51:24.566', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:52:08,535 [DEBUG][       Thread-612746][   transport.py][1871] : EOF in transport thread
2025-07-01 17:52:08,609 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:52:08,619 [DEBUG][       Thread-612749][   transport.py][1871] : starting thread (client mode): 0x81e56f0
2025-07-01 17:52:08,619 [DEBUG][       Thread-612749][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:52:08,634 [DEBUG][       Thread-612749][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:52:08,635 [ INFO][       Thread-612749][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:52:08,642 [DEBUG][       Thread-612749][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:52:08,642 [DEBUG][       Thread-612749][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:52:08,642 [DEBUG][       Thread-612749][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:52:08,642 [DEBUG][       Thread-612749][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:52:08,642 [DEBUG][       Thread-612749][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:52:08,642 [DEBUG][       Thread-612749][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:52:08,642 [DEBUG][       Thread-612749][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:52:08,642 [DEBUG][       Thread-612749][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:52:08,642 [DEBUG][       Thread-612749][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:52:08,642 [DEBUG][       Thread-612749][   transport.py][1871] : client lang: <none>
2025-07-01 17:52:08,643 [DEBUG][       Thread-612749][   transport.py][1871] : server lang: <none>
2025-07-01 17:52:08,643 [DEBUG][       Thread-612749][   transport.py][1871] : kex follows: False
2025-07-01 17:52:08,643 [DEBUG][       Thread-612749][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:52:08,643 [DEBUG][       Thread-612749][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:52:08,643 [DEBUG][       Thread-612749][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:52:08,643 [DEBUG][       Thread-612749][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:52:08,643 [DEBUG][       Thread-612749][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:52:08,643 [DEBUG][       Thread-612749][   transport.py][1871] : Compression: none
2025-07-01 17:52:08,643 [DEBUG][       Thread-612749][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:52:08,703 [DEBUG][       Thread-612749][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:52:08,704 [DEBUG][       Thread-612749][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:52:08,704 [DEBUG][       Thread-612749][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:52:08,705 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:52:08,705 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:52:08,761 [DEBUG][       Thread-612749][   transport.py][1871] : userauth is OK
2025-07-01 17:52:08,761 [DEBUG][       Thread-612749][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:52:08,761 [DEBUG][       Thread-612749][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:52:08,761 [DEBUG][       Thread-612749][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:52:08,761 [DEBUG][       Thread-612749][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:52:08,775 [ INFO][       Thread-612749][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:52:08,776 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:52:08,776 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:52:09,808 [DEBUG][       Thread-612749][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:52:09,808 [DEBUG][       Thread-612749][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:52:09,856 [DEBUG][       Thread-612749][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:52:09,856 [DEBUG][       Thread-612749][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:52:09,866 [DEBUG][       Thread-612749][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:52:09,874 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:52:09,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-07-01 17:52:09,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-07-01 17:52:09,892 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:52:09,893 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:52:09,893 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:52:09,901 [DEBUG][       Thread-612749][   transport.py][1871] : EOF in transport thread
2025-07-01 17:52:16,454 [DEBUG][Thread-612751 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:52:19,903 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:52:19,904 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:52:19,904 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:52:19,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-07-01 17:52:20,384 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 51, 55), 10.31, 49.45, 0.0, 39.36, 12.43, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:52:20,384 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:51:55
2025-07-01 17:52:20,468 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:52:20,473 [DEBUG][       Thread-612752][   transport.py][1871] : starting thread (client mode): 0x81db8b0
2025-07-01 17:52:20,473 [DEBUG][       Thread-612752][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:52:20,493 [DEBUG][       Thread-612752][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:52:20,493 [ INFO][       Thread-612752][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:52:20,497 [DEBUG][       Thread-612752][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:52:20,497 [DEBUG][       Thread-612752][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:52:20,497 [DEBUG][       Thread-612752][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:52:20,497 [DEBUG][       Thread-612752][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:52:20,497 [DEBUG][       Thread-612752][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:52:20,497 [DEBUG][       Thread-612752][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:52:20,497 [DEBUG][       Thread-612752][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:52:20,497 [DEBUG][       Thread-612752][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:52:20,497 [DEBUG][       Thread-612752][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:52:20,497 [DEBUG][       Thread-612752][   transport.py][1871] : client lang: <none>
2025-07-01 17:52:20,497 [DEBUG][       Thread-612752][   transport.py][1871] : server lang: <none>
2025-07-01 17:52:20,497 [DEBUG][       Thread-612752][   transport.py][1871] : kex follows: False
2025-07-01 17:52:20,497 [DEBUG][       Thread-612752][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:52:20,497 [DEBUG][       Thread-612752][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:52:20,497 [DEBUG][       Thread-612752][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:52:20,497 [DEBUG][       Thread-612752][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:52:20,497 [DEBUG][       Thread-612752][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:52:20,497 [DEBUG][       Thread-612752][   transport.py][1871] : Compression: none
2025-07-01 17:52:20,497 [DEBUG][       Thread-612752][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:52:20,513 [DEBUG][       Thread-612752][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:52:20,514 [DEBUG][       Thread-612752][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:52:20,514 [DEBUG][       Thread-612752][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:52:20,514 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:52:20,515 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:52:20,516 [DEBUG][       Thread-612752][   transport.py][1871] : userauth is OK
2025-07-01 17:52:20,540 [ INFO][       Thread-612752][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:52:20,541 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:52:21,213 [DEBUG][       Thread-612752][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:52:21,213 [DEBUG][       Thread-612752][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:52:21,257 [DEBUG][       Thread-612752][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:52:21,257 [DEBUG][       Thread-612752][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:52:21,261 [DEBUG][       Thread-612752][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:52:21,272 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:52:21,273 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:52:21,275 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:52:21,277 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:52:21,283 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:52:21,285 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:52:21,285 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:52:21,286 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:52:21,286 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.661048 -999.00  +12.20  23.06     54   +3.30 1 2 1 1 1   814    0 8.44 -23.67 ----- 17.7 23.1 10.0 36.8 12.9 -16.5 12.8 -16.7 12.6 -16.1 12.9 -15.7
2025-07-01 17:52:21,286 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:52:21,286 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:52:21,286 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.661048
2025-07-01 17:52:21,286 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:52:21,287 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:52:21,287 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:52:21,287 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:52:21,287 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:52:21,287 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:51:55', tmtdew=10.31, humidity=49.45, cloud=0.0, wind=39.36, temperature=12.43, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:51:54.547', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:52:21,288 [DEBUG][       Thread-612752][   transport.py][1871] : EOF in transport thread
2025-07-01 17:52:21,363 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:52:21,374 [DEBUG][       Thread-612755][   transport.py][1871] : starting thread (client mode): 0x81047c0
2025-07-01 17:52:21,374 [DEBUG][       Thread-612755][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:52:21,389 [DEBUG][       Thread-612755][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:52:21,389 [ INFO][       Thread-612755][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:52:21,397 [DEBUG][       Thread-612755][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:52:21,397 [DEBUG][       Thread-612755][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:52:21,397 [DEBUG][       Thread-612755][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:52:21,397 [DEBUG][       Thread-612755][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:52:21,397 [DEBUG][       Thread-612755][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:52:21,397 [DEBUG][       Thread-612755][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:52:21,397 [DEBUG][       Thread-612755][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:52:21,397 [DEBUG][       Thread-612755][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:52:21,397 [DEBUG][       Thread-612755][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:52:21,397 [DEBUG][       Thread-612755][   transport.py][1871] : client lang: <none>
2025-07-01 17:52:21,397 [DEBUG][       Thread-612755][   transport.py][1871] : server lang: <none>
2025-07-01 17:52:21,397 [DEBUG][       Thread-612755][   transport.py][1871] : kex follows: False
2025-07-01 17:52:21,397 [DEBUG][       Thread-612755][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:52:21,397 [DEBUG][       Thread-612755][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:52:21,397 [DEBUG][       Thread-612755][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:52:21,398 [DEBUG][       Thread-612755][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:52:21,398 [DEBUG][       Thread-612755][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:52:21,398 [DEBUG][       Thread-612755][   transport.py][1871] : Compression: none
2025-07-01 17:52:21,398 [DEBUG][       Thread-612755][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:52:21,454 [DEBUG][       Thread-612755][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:52:21,454 [DEBUG][       Thread-612755][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:52:21,455 [DEBUG][       Thread-612755][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:52:21,455 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:52:21,456 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:52:21,510 [DEBUG][       Thread-612755][   transport.py][1871] : userauth is OK
2025-07-01 17:52:21,510 [DEBUG][       Thread-612755][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:52:21,510 [DEBUG][       Thread-612755][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:52:21,510 [DEBUG][       Thread-612755][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:52:21,510 [DEBUG][       Thread-612755][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:52:21,529 [ INFO][       Thread-612755][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:52:21,530 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:52:21,530 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:52:22,612 [DEBUG][       Thread-612755][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:52:22,612 [DEBUG][       Thread-612755][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:52:22,660 [DEBUG][       Thread-612755][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:52:22,660 [DEBUG][       Thread-612755][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:52:22,670 [DEBUG][       Thread-612755][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:52:22,679 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:52:22,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-07-01 17:52:22,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') -> 00000000
2025-07-01 17:52:22,700 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:52:22,701 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:52:22,701 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:52:22,712 [DEBUG][       Thread-612755][   transport.py][1871] : EOF in transport thread
2025-07-01 17:52:25,501 [DEBUG][Thread-612757 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:52:32,708 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:52:32,708 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:52:32,708 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:52:32,711 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:52:33,190 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 52, 26), 10.34, 49.33, 0.0, 35.57, 12.44, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:52:33,190 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:52:26
2025-07-01 17:52:33,275 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:52:33,278 [DEBUG][       Thread-612758][   transport.py][1871] : starting thread (client mode): 0x81066b0
2025-07-01 17:52:33,279 [DEBUG][       Thread-612758][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:52:33,299 [DEBUG][       Thread-612758][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:52:33,299 [ INFO][       Thread-612758][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:52:33,301 [DEBUG][       Thread-612758][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:52:33,301 [DEBUG][       Thread-612758][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:52:33,301 [DEBUG][       Thread-612758][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:52:33,301 [DEBUG][       Thread-612758][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:52:33,301 [DEBUG][       Thread-612758][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:52:33,301 [DEBUG][       Thread-612758][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:52:33,301 [DEBUG][       Thread-612758][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:52:33,301 [DEBUG][       Thread-612758][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:52:33,301 [DEBUG][       Thread-612758][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:52:33,301 [DEBUG][       Thread-612758][   transport.py][1871] : client lang: <none>
2025-07-01 17:52:33,301 [DEBUG][       Thread-612758][   transport.py][1871] : server lang: <none>
2025-07-01 17:52:33,301 [DEBUG][       Thread-612758][   transport.py][1871] : kex follows: False
2025-07-01 17:52:33,301 [DEBUG][       Thread-612758][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:52:33,301 [DEBUG][       Thread-612758][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:52:33,301 [DEBUG][       Thread-612758][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:52:33,301 [DEBUG][       Thread-612758][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:52:33,302 [DEBUG][       Thread-612758][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:52:33,302 [DEBUG][       Thread-612758][   transport.py][1871] : Compression: none
2025-07-01 17:52:33,302 [DEBUG][       Thread-612758][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:52:33,311 [DEBUG][       Thread-612758][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:52:33,312 [DEBUG][       Thread-612758][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:52:33,312 [DEBUG][       Thread-612758][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:52:33,312 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:52:33,313 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:52:33,314 [DEBUG][       Thread-612758][   transport.py][1871] : userauth is OK
2025-07-01 17:52:33,326 [ INFO][       Thread-612758][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:52:33,327 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:52:33,932 [DEBUG][       Thread-612758][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:52:33,933 [DEBUG][       Thread-612758][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:52:33,977 [DEBUG][       Thread-612758][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:52:33,977 [DEBUG][       Thread-612758][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:52:33,981 [DEBUG][       Thread-612758][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:52:33,995 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:52:33,996 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:52:33,997 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:52:33,999 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:52:34,004 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:52:34,006 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:52:34,006 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:52:34,007 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:52:34,007 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.661048 -999.00  +12.20  23.06     54   +3.30 1 2 1 1 1   814    0 8.44 -23.67 ----- 17.7 23.1 10.0 36.8 12.9 -16.5 12.8 -16.7 12.6 -16.1 12.9 -15.7
2025-07-01 17:52:34,007 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:52:34,007 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:52:34,007 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.661048
2025-07-01 17:52:34,008 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:52:34,008 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:52:34,008 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:52:34,008 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:52:34,008 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:52:34,009 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:52:26', tmtdew=10.34, humidity=49.33, cloud=0.0, wind=35.57, temperature=12.44, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:51:54.547', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:52:34,009 [DEBUG][       Thread-612758][   transport.py][1871] : EOF in transport thread
2025-07-01 17:52:34,092 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:52:34,104 [DEBUG][       Thread-612761][   transport.py][1871] : starting thread (client mode): 0x82b15d0
2025-07-01 17:52:34,104 [DEBUG][       Thread-612761][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:52:34,120 [DEBUG][       Thread-612761][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:52:34,120 [ INFO][       Thread-612761][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:52:34,128 [DEBUG][       Thread-612761][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:52:34,128 [DEBUG][       Thread-612761][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:52:34,128 [DEBUG][       Thread-612761][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:52:34,128 [DEBUG][       Thread-612761][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:52:34,128 [DEBUG][       Thread-612761][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:52:34,128 [DEBUG][       Thread-612761][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:52:34,128 [DEBUG][       Thread-612761][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:52:34,128 [DEBUG][       Thread-612761][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:52:34,128 [DEBUG][       Thread-612761][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:52:34,128 [DEBUG][       Thread-612761][   transport.py][1871] : client lang: <none>
2025-07-01 17:52:34,128 [DEBUG][       Thread-612761][   transport.py][1871] : server lang: <none>
2025-07-01 17:52:34,128 [DEBUG][       Thread-612761][   transport.py][1871] : kex follows: False
2025-07-01 17:52:34,129 [DEBUG][       Thread-612761][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:52:34,129 [DEBUG][       Thread-612761][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:52:34,129 [DEBUG][       Thread-612761][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:52:34,129 [DEBUG][       Thread-612761][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:52:34,129 [DEBUG][       Thread-612761][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:52:34,129 [DEBUG][       Thread-612761][   transport.py][1871] : Compression: none
2025-07-01 17:52:34,129 [DEBUG][       Thread-612761][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:52:34,186 [DEBUG][       Thread-612761][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:52:34,187 [DEBUG][       Thread-612761][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:52:34,187 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:52:34,188 [DEBUG][       Thread-612761][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:52:34,189 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:52:34,242 [DEBUG][       Thread-612761][   transport.py][1871] : userauth is OK
2025-07-01 17:52:34,242 [DEBUG][       Thread-612761][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:52:34,242 [DEBUG][       Thread-612761][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:52:34,242 [DEBUG][       Thread-612761][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:52:34,242 [DEBUG][       Thread-612761][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:52:34,262 [ INFO][       Thread-612761][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:52:34,262 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:52:34,262 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:52:34,522 [DEBUG][Thread-612763 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:52:35,296 [DEBUG][       Thread-612761][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:52:35,296 [DEBUG][       Thread-612761][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:52:35,348 [DEBUG][       Thread-612761][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:52:35,348 [DEBUG][       Thread-612761][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:52:35,357 [DEBUG][       Thread-612761][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:52:35,366 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:52:35,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-07-01 17:52:35,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-07-01 17:52:35,385 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:52:35,385 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:52:35,385 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:52:35,393 [DEBUG][       Thread-612761][   transport.py][1871] : EOF in transport thread
2025-07-01 17:52:41,557 [DEBUG][Thread-612764 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:52:43,560 [DEBUG][Thread-612765 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:52:45,393 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:52:45,393 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:52:45,393 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:52:45,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-07-01 17:52:45,844 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 52, 26), 10.34, 49.33, 0.0, 35.57, 12.44, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:52:45,844 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:52:26
2025-07-01 17:52:45,930 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:52:45,937 [DEBUG][       Thread-612766][   transport.py][1871] : starting thread (client mode): 0x81a6890
2025-07-01 17:52:45,937 [DEBUG][       Thread-612766][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:52:45,957 [DEBUG][       Thread-612766][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:52:45,957 [ INFO][       Thread-612766][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:52:45,960 [DEBUG][       Thread-612766][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:52:45,960 [DEBUG][       Thread-612766][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:52:45,960 [DEBUG][       Thread-612766][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:52:45,960 [DEBUG][       Thread-612766][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:52:45,960 [DEBUG][       Thread-612766][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:52:45,960 [DEBUG][       Thread-612766][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:52:45,960 [DEBUG][       Thread-612766][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:52:45,960 [DEBUG][       Thread-612766][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:52:45,960 [DEBUG][       Thread-612766][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:52:45,960 [DEBUG][       Thread-612766][   transport.py][1871] : client lang: <none>
2025-07-01 17:52:45,960 [DEBUG][       Thread-612766][   transport.py][1871] : server lang: <none>
2025-07-01 17:52:45,960 [DEBUG][       Thread-612766][   transport.py][1871] : kex follows: False
2025-07-01 17:52:45,960 [DEBUG][       Thread-612766][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:52:45,960 [DEBUG][       Thread-612766][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:52:45,961 [DEBUG][       Thread-612766][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:52:45,961 [DEBUG][       Thread-612766][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:52:45,961 [DEBUG][       Thread-612766][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:52:45,961 [DEBUG][       Thread-612766][   transport.py][1871] : Compression: none
2025-07-01 17:52:45,961 [DEBUG][       Thread-612766][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:52:45,973 [DEBUG][       Thread-612766][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:52:45,974 [DEBUG][       Thread-612766][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:52:45,974 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:52:45,974 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:52:45,975 [DEBUG][       Thread-612766][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:52:45,975 [DEBUG][       Thread-612766][   transport.py][1871] : userauth is OK
2025-07-01 17:52:45,988 [ INFO][       Thread-612766][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:52:45,988 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:52:46,611 [DEBUG][       Thread-612766][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:52:46,611 [DEBUG][       Thread-612766][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:52:46,653 [DEBUG][       Thread-612766][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:52:46,653 [DEBUG][       Thread-612766][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:52:46,656 [DEBUG][       Thread-612766][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:52:46,670 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:52:46,671 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:52:46,673 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:52:46,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:52:46,680 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:52:46,682 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:52:46,682 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:52:46,683 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:52:46,683 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.661048 -999.00  +12.20  23.06     54   +3.30 1 2 1 1 1   814    0 8.44 -23.67 ----- 17.7 23.1 10.0 36.8 12.9 -16.5 12.8 -16.7 12.6 -16.1 12.9 -15.7
2025-07-01 17:52:46,683 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:52:46,683 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:52:46,683 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.661048
2025-07-01 17:52:46,684 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:52:46,684 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:52:46,684 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:52:46,684 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:52:46,684 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:52:46,684 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:52:26', tmtdew=10.34, humidity=49.33, cloud=0.0, wind=35.57, temperature=12.44, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:51:54.547', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:52:46,685 [DEBUG][       Thread-612766][   transport.py][1871] : EOF in transport thread
2025-07-01 17:52:46,768 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:52:46,777 [DEBUG][       Thread-612769][   transport.py][1871] : starting thread (client mode): 0x75a9030
2025-07-01 17:52:46,778 [DEBUG][       Thread-612769][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:52:46,792 [DEBUG][       Thread-612769][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:52:46,792 [ INFO][       Thread-612769][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:52:46,800 [DEBUG][       Thread-612769][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:52:46,800 [DEBUG][       Thread-612769][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:52:46,800 [DEBUG][       Thread-612769][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:52:46,800 [DEBUG][       Thread-612769][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:52:46,800 [DEBUG][       Thread-612769][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:52:46,800 [DEBUG][       Thread-612769][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:52:46,800 [DEBUG][       Thread-612769][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:52:46,800 [DEBUG][       Thread-612769][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:52:46,800 [DEBUG][       Thread-612769][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:52:46,800 [DEBUG][       Thread-612769][   transport.py][1871] : client lang: <none>
2025-07-01 17:52:46,800 [DEBUG][       Thread-612769][   transport.py][1871] : server lang: <none>
2025-07-01 17:52:46,800 [DEBUG][       Thread-612769][   transport.py][1871] : kex follows: False
2025-07-01 17:52:46,800 [DEBUG][       Thread-612769][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:52:46,801 [DEBUG][       Thread-612769][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:52:46,801 [DEBUG][       Thread-612769][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:52:46,801 [DEBUG][       Thread-612769][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:52:46,801 [DEBUG][       Thread-612769][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:52:46,801 [DEBUG][       Thread-612769][   transport.py][1871] : Compression: none
2025-07-01 17:52:46,801 [DEBUG][       Thread-612769][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:52:46,858 [DEBUG][       Thread-612769][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:52:46,858 [DEBUG][       Thread-612769][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:52:46,859 [DEBUG][       Thread-612769][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:52:46,859 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:52:46,860 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:52:46,917 [DEBUG][       Thread-612769][   transport.py][1871] : userauth is OK
2025-07-01 17:52:46,918 [DEBUG][       Thread-612769][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:52:46,918 [DEBUG][       Thread-612769][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:52:46,918 [DEBUG][       Thread-612769][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:52:46,918 [DEBUG][       Thread-612769][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:52:46,937 [ INFO][       Thread-612769][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:52:46,938 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:52:46,938 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:52:47,974 [DEBUG][       Thread-612769][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:52:47,974 [DEBUG][       Thread-612769][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:52:48,028 [DEBUG][       Thread-612769][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:52:48,028 [DEBUG][       Thread-612769][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:52:48,038 [DEBUG][       Thread-612769][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:52:48,048 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:52:48,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-07-01 17:52:48,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') -> 00000000
2025-07-01 17:52:48,066 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:52:48,067 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:52:48,067 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:52:48,075 [DEBUG][       Thread-612769][   transport.py][1871] : EOF in transport thread
2025-07-01 17:52:52,584 [DEBUG][Thread-612771 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:52:58,078 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:52:58,078 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:52:58,078 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:52:58,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-07-01 17:52:58,550 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 52, 26), 10.34, 49.33, 0.0, 35.57, 12.44, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:52:58,550 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:52:26
2025-07-01 17:52:58,634 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:52:58,641 [DEBUG][       Thread-612772][   transport.py][1871] : starting thread (client mode): 0x818c8b0
2025-07-01 17:52:58,641 [DEBUG][       Thread-612772][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:52:58,663 [DEBUG][       Thread-612772][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:52:58,663 [ INFO][       Thread-612772][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:52:58,666 [DEBUG][       Thread-612772][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:52:58,667 [DEBUG][       Thread-612772][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:52:58,667 [DEBUG][       Thread-612772][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:52:58,667 [DEBUG][       Thread-612772][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:52:58,667 [DEBUG][       Thread-612772][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:52:58,667 [DEBUG][       Thread-612772][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:52:58,667 [DEBUG][       Thread-612772][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:52:58,667 [DEBUG][       Thread-612772][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:52:58,667 [DEBUG][       Thread-612772][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:52:58,667 [DEBUG][       Thread-612772][   transport.py][1871] : client lang: <none>
2025-07-01 17:52:58,667 [DEBUG][       Thread-612772][   transport.py][1871] : server lang: <none>
2025-07-01 17:52:58,667 [DEBUG][       Thread-612772][   transport.py][1871] : kex follows: False
2025-07-01 17:52:58,667 [DEBUG][       Thread-612772][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:52:58,667 [DEBUG][       Thread-612772][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:52:58,667 [DEBUG][       Thread-612772][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:52:58,667 [DEBUG][       Thread-612772][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:52:58,667 [DEBUG][       Thread-612772][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:52:58,667 [DEBUG][       Thread-612772][   transport.py][1871] : Compression: none
2025-07-01 17:52:58,667 [DEBUG][       Thread-612772][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:52:58,684 [DEBUG][       Thread-612772][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:52:58,684 [DEBUG][       Thread-612772][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:52:58,685 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:52:58,685 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:52:58,685 [DEBUG][       Thread-612772][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:52:58,686 [DEBUG][       Thread-612772][   transport.py][1871] : userauth is OK
2025-07-01 17:52:58,699 [ INFO][       Thread-612772][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:52:58,699 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:52:59,291 [DEBUG][       Thread-612772][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:52:59,291 [DEBUG][       Thread-612772][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:52:59,332 [DEBUG][       Thread-612772][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:52:59,332 [DEBUG][       Thread-612772][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:52:59,335 [DEBUG][       Thread-612772][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:52:59,346 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:52:59,346 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:52:59,346 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:52:59,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:52:59,350 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:52:59,350 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:52:59,350 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:52:59,351 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:52:59,351 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.661395 -999.00  +12.20  26.83     54   +3.30 1 2 1 1 1   807    0 8.46 -24.83 ----- 29.1 26.8 15.2 35.1 12.9 -16.5 12.8 -16.5 12.5 -15.9 12.9 -15.5
2025-07-01 17:52:59,351 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:52:59,351 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:52:59,351 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.661395
2025-07-01 17:52:59,351 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:52:59,351 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:52:59,351 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:52:59,351 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:52:59,351 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:52:59,351 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:52:26', tmtdew=10.34, humidity=49.33, cloud=0.0, wind=35.57, temperature=12.44, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:52:24.528', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:52:59,352 [DEBUG][       Thread-612772][   transport.py][1871] : EOF in transport thread
2025-07-01 17:52:59,426 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:52:59,436 [DEBUG][       Thread-612775][   transport.py][1871] : starting thread (client mode): 0x8171480
2025-07-01 17:52:59,436 [DEBUG][       Thread-612775][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:52:59,457 [DEBUG][       Thread-612775][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:52:59,457 [ INFO][       Thread-612775][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:52:59,465 [DEBUG][       Thread-612775][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:52:59,465 [DEBUG][       Thread-612775][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:52:59,465 [DEBUG][       Thread-612775][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:52:59,465 [DEBUG][       Thread-612775][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:52:59,465 [DEBUG][       Thread-612775][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:52:59,465 [DEBUG][       Thread-612775][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:52:59,465 [DEBUG][       Thread-612775][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:52:59,465 [DEBUG][       Thread-612775][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:52:59,465 [DEBUG][       Thread-612775][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:52:59,465 [DEBUG][       Thread-612775][   transport.py][1871] : client lang: <none>
2025-07-01 17:52:59,465 [DEBUG][       Thread-612775][   transport.py][1871] : server lang: <none>
2025-07-01 17:52:59,465 [DEBUG][       Thread-612775][   transport.py][1871] : kex follows: False
2025-07-01 17:52:59,465 [DEBUG][       Thread-612775][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:52:59,465 [DEBUG][       Thread-612775][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:52:59,465 [DEBUG][       Thread-612775][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:52:59,465 [DEBUG][       Thread-612775][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:52:59,465 [DEBUG][       Thread-612775][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:52:59,465 [DEBUG][       Thread-612775][   transport.py][1871] : Compression: none
2025-07-01 17:52:59,465 [DEBUG][       Thread-612775][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:52:59,520 [DEBUG][       Thread-612775][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:52:59,520 [DEBUG][       Thread-612775][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:52:59,521 [DEBUG][       Thread-612775][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:52:59,521 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:52:59,521 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:52:59,582 [DEBUG][       Thread-612775][   transport.py][1871] : userauth is OK
2025-07-01 17:52:59,582 [DEBUG][       Thread-612775][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:52:59,582 [DEBUG][       Thread-612775][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:52:59,582 [DEBUG][       Thread-612775][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:52:59,582 [DEBUG][       Thread-612775][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:52:59,596 [ INFO][       Thread-612775][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:52:59,596 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:52:59,596 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:53:00,654 [DEBUG][       Thread-612775][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:53:00,654 [DEBUG][       Thread-612775][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:53:00,706 [DEBUG][       Thread-612775][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:53:00,706 [DEBUG][       Thread-612775][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:53:00,715 [DEBUG][       Thread-612775][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:53:00,724 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:53:00,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-07-01 17:53:00,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-07-01 17:53:00,743 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:53:00,743 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:53:00,743 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:53:00,752 [DEBUG][       Thread-612775][   transport.py][1871] : EOF in transport thread
2025-07-01 17:53:01,602 [DEBUG][Thread-612777 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:53:10,623 [DEBUG][Thread-612778 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:53:10,754 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:53:10,754 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:53:10,754 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:53:10,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-07-01 17:53:11,228 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 52, 58), 10.33, 49.37, 0.0, 35.62, 12.45, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:53:11,228 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:52:58
2025-07-01 17:53:11,313 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:53:11,317 [DEBUG][       Thread-612779][   transport.py][1871] : starting thread (client mode): 0x82b1960
2025-07-01 17:53:11,317 [DEBUG][       Thread-612779][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:53:11,336 [DEBUG][       Thread-612779][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:53:11,336 [ INFO][       Thread-612779][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:53:11,339 [DEBUG][       Thread-612779][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:53:11,339 [DEBUG][       Thread-612779][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:53:11,339 [DEBUG][       Thread-612779][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:53:11,339 [DEBUG][       Thread-612779][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:53:11,339 [DEBUG][       Thread-612779][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:53:11,339 [DEBUG][       Thread-612779][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:53:11,339 [DEBUG][       Thread-612779][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:53:11,339 [DEBUG][       Thread-612779][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:53:11,339 [DEBUG][       Thread-612779][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:53:11,339 [DEBUG][       Thread-612779][   transport.py][1871] : client lang: <none>
2025-07-01 17:53:11,339 [DEBUG][       Thread-612779][   transport.py][1871] : server lang: <none>
2025-07-01 17:53:11,339 [DEBUG][       Thread-612779][   transport.py][1871] : kex follows: False
2025-07-01 17:53:11,339 [DEBUG][       Thread-612779][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:53:11,339 [DEBUG][       Thread-612779][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:53:11,339 [DEBUG][       Thread-612779][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:53:11,339 [DEBUG][       Thread-612779][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:53:11,339 [DEBUG][       Thread-612779][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:53:11,339 [DEBUG][       Thread-612779][   transport.py][1871] : Compression: none
2025-07-01 17:53:11,339 [DEBUG][       Thread-612779][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:53:11,354 [DEBUG][       Thread-612779][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:53:11,355 [DEBUG][       Thread-612779][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:53:11,355 [DEBUG][       Thread-612779][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:53:11,356 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:53:11,356 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:53:11,357 [DEBUG][       Thread-612779][   transport.py][1871] : userauth is OK
2025-07-01 17:53:11,381 [ INFO][       Thread-612779][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:53:11,381 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:53:12,148 [DEBUG][       Thread-612779][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:53:12,148 [DEBUG][       Thread-612779][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:53:12,193 [DEBUG][       Thread-612779][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:53:12,193 [DEBUG][       Thread-612779][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:53:12,197 [DEBUG][       Thread-612779][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:53:12,208 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:53:12,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:53:12,210 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:53:12,212 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:53:12,218 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:53:12,219 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:53:12,220 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:53:12,220 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:53:12,221 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.661395 -999.00  +12.20  26.83     54   +3.30 1 2 1 1 1   807    0 8.46 -24.83 ----- 29.1 26.8 15.2 35.1 12.9 -16.5 12.8 -16.5 12.5 -15.9 12.9 -15.5
2025-07-01 17:53:12,221 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:53:12,221 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:53:12,221 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.661395
2025-07-01 17:53:12,221 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:53:12,222 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:53:12,222 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:53:12,222 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:53:12,222 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:53:12,222 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:52:58', tmtdew=10.33, humidity=49.37, cloud=0.0, wind=35.62, temperature=12.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:52:24.528', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:53:12,222 [DEBUG][       Thread-612779][   transport.py][1871] : EOF in transport thread
2025-07-01 17:53:12,306 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:53:12,315 [DEBUG][       Thread-612782][   transport.py][1871] : starting thread (client mode): 0x818e800
2025-07-01 17:53:12,315 [DEBUG][       Thread-612782][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:53:12,331 [DEBUG][       Thread-612782][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:53:12,331 [ INFO][       Thread-612782][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:53:12,339 [DEBUG][       Thread-612782][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:53:12,339 [DEBUG][       Thread-612782][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:53:12,339 [DEBUG][       Thread-612782][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:53:12,339 [DEBUG][       Thread-612782][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:53:12,339 [DEBUG][       Thread-612782][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:53:12,339 [DEBUG][       Thread-612782][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:53:12,339 [DEBUG][       Thread-612782][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:53:12,339 [DEBUG][       Thread-612782][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:53:12,339 [DEBUG][       Thread-612782][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:53:12,339 [DEBUG][       Thread-612782][   transport.py][1871] : client lang: <none>
2025-07-01 17:53:12,339 [DEBUG][       Thread-612782][   transport.py][1871] : server lang: <none>
2025-07-01 17:53:12,339 [DEBUG][       Thread-612782][   transport.py][1871] : kex follows: False
2025-07-01 17:53:12,339 [DEBUG][       Thread-612782][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:53:12,339 [DEBUG][       Thread-612782][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:53:12,340 [DEBUG][       Thread-612782][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:53:12,340 [DEBUG][       Thread-612782][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:53:12,340 [DEBUG][       Thread-612782][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:53:12,340 [DEBUG][       Thread-612782][   transport.py][1871] : Compression: none
2025-07-01 17:53:12,340 [DEBUG][       Thread-612782][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:53:12,399 [DEBUG][       Thread-612782][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:53:12,399 [DEBUG][       Thread-612782][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:53:12,400 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:53:12,401 [DEBUG][       Thread-612782][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:53:12,401 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:53:12,458 [DEBUG][       Thread-612782][   transport.py][1871] : userauth is OK
2025-07-01 17:53:12,458 [DEBUG][       Thread-612782][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:53:12,458 [DEBUG][       Thread-612782][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:53:12,458 [DEBUG][       Thread-612782][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:53:12,458 [DEBUG][       Thread-612782][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:53:12,479 [ INFO][       Thread-612782][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:53:12,480 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:53:12,480 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:53:13,534 [DEBUG][       Thread-612782][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:53:13,534 [DEBUG][       Thread-612782][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:53:13,584 [DEBUG][       Thread-612782][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:53:13,584 [DEBUG][       Thread-612782][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:53:13,593 [DEBUG][       Thread-612782][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:53:13,602 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:53:13,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')
2025-07-01 17:53:13,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-07-01 17:53:13,620 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:53:13,620 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:53:13,620 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:53:13,628 [DEBUG][       Thread-612782][   transport.py][1871] : EOF in transport thread
2025-07-01 17:53:19,644 [DEBUG][Thread-612784 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:53:23,631 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:53:23,631 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:53:23,631 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:53:23,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-07-01 17:53:24,111 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 52, 58), 10.33, 49.37, 0.0, 35.62, 12.45, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:53:24,111 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:52:58
2025-07-01 17:53:24,195 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:53:24,206 [DEBUG][       Thread-612785][   transport.py][1871] : starting thread (client mode): 0x81e5840
2025-07-01 17:53:24,206 [DEBUG][       Thread-612785][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:53:24,226 [DEBUG][       Thread-612785][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:53:24,226 [ INFO][       Thread-612785][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:53:24,229 [DEBUG][       Thread-612785][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:53:24,230 [DEBUG][       Thread-612785][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:53:24,230 [DEBUG][       Thread-612785][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:53:24,230 [DEBUG][       Thread-612785][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:53:24,230 [DEBUG][       Thread-612785][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:53:24,230 [DEBUG][       Thread-612785][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:53:24,230 [DEBUG][       Thread-612785][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:53:24,230 [DEBUG][       Thread-612785][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:53:24,230 [DEBUG][       Thread-612785][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:53:24,230 [DEBUG][       Thread-612785][   transport.py][1871] : client lang: <none>
2025-07-01 17:53:24,230 [DEBUG][       Thread-612785][   transport.py][1871] : server lang: <none>
2025-07-01 17:53:24,230 [DEBUG][       Thread-612785][   transport.py][1871] : kex follows: False
2025-07-01 17:53:24,230 [DEBUG][       Thread-612785][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:53:24,230 [DEBUG][       Thread-612785][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:53:24,230 [DEBUG][       Thread-612785][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:53:24,230 [DEBUG][       Thread-612785][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:53:24,230 [DEBUG][       Thread-612785][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:53:24,230 [DEBUG][       Thread-612785][   transport.py][1871] : Compression: none
2025-07-01 17:53:24,230 [DEBUG][       Thread-612785][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:53:24,247 [DEBUG][       Thread-612785][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:53:24,247 [DEBUG][       Thread-612785][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:53:24,248 [DEBUG][       Thread-612785][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:53:24,248 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:53:24,248 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:53:24,249 [DEBUG][       Thread-612785][   transport.py][1871] : userauth is OK
2025-07-01 17:53:24,263 [ INFO][       Thread-612785][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:53:24,264 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:53:24,887 [DEBUG][       Thread-612785][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:53:24,888 [DEBUG][       Thread-612785][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:53:24,929 [DEBUG][       Thread-612785][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:53:24,929 [DEBUG][       Thread-612785][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:53:24,932 [DEBUG][       Thread-612785][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:53:24,943 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:53:24,943 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:53:24,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:53:24,946 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:53:24,952 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:53:24,954 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:53:24,954 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:53:24,955 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:53:24,955 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.661742 -999.00  +12.20  32.01     54   +3.30 1 2 2 1 1   800    0 8.47 -24.29 ----- 30.4 32.0 7.7 35.2 12.9 -16.4 12.7 -16.3 12.6 -15.8 12.9 -15.3
2025-07-01 17:53:24,955 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:53:24,955 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:53:24,955 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.661742
2025-07-01 17:53:24,955 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:53:24,956 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:53:24,956 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:53:24,956 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:53:24,956 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:53:24,956 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:52:58', tmtdew=10.33, humidity=49.37, cloud=0.0, wind=35.62, temperature=12.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:52:54.509', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:53:24,957 [DEBUG][       Thread-612785][   transport.py][1871] : EOF in transport thread
2025-07-01 17:53:25,040 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:53:25,051 [DEBUG][       Thread-612788][   transport.py][1871] : starting thread (client mode): 0x81c8640
2025-07-01 17:53:25,051 [DEBUG][       Thread-612788][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:53:25,066 [DEBUG][       Thread-612788][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:53:25,066 [ INFO][       Thread-612788][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:53:25,074 [DEBUG][       Thread-612788][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:53:25,074 [DEBUG][       Thread-612788][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:53:25,074 [DEBUG][       Thread-612788][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:53:25,074 [DEBUG][       Thread-612788][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:53:25,074 [DEBUG][       Thread-612788][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:53:25,074 [DEBUG][       Thread-612788][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:53:25,074 [DEBUG][       Thread-612788][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:53:25,075 [DEBUG][       Thread-612788][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:53:25,075 [DEBUG][       Thread-612788][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:53:25,075 [DEBUG][       Thread-612788][   transport.py][1871] : client lang: <none>
2025-07-01 17:53:25,075 [DEBUG][       Thread-612788][   transport.py][1871] : server lang: <none>
2025-07-01 17:53:25,075 [DEBUG][       Thread-612788][   transport.py][1871] : kex follows: False
2025-07-01 17:53:25,075 [DEBUG][       Thread-612788][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:53:25,075 [DEBUG][       Thread-612788][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:53:25,075 [DEBUG][       Thread-612788][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:53:25,075 [DEBUG][       Thread-612788][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:53:25,075 [DEBUG][       Thread-612788][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:53:25,075 [DEBUG][       Thread-612788][   transport.py][1871] : Compression: none
2025-07-01 17:53:25,075 [DEBUG][       Thread-612788][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:53:25,134 [DEBUG][       Thread-612788][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:53:25,134 [DEBUG][       Thread-612788][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:53:25,135 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:53:25,135 [DEBUG][       Thread-612788][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:53:25,136 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:53:25,190 [DEBUG][       Thread-612788][   transport.py][1871] : userauth is OK
2025-07-01 17:53:25,190 [DEBUG][       Thread-612788][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:53:25,190 [DEBUG][       Thread-612788][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:53:25,190 [DEBUG][       Thread-612788][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:53:25,190 [DEBUG][       Thread-612788][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:53:25,210 [ INFO][       Thread-612788][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:53:25,210 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:53:25,211 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:53:26,233 [DEBUG][       Thread-612788][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:53:26,233 [DEBUG][       Thread-612788][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:53:26,284 [DEBUG][       Thread-612788][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:53:26,284 [DEBUG][       Thread-612788][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:53:26,292 [DEBUG][       Thread-612788][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:53:26,300 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:53:26,300 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-07-01 17:53:26,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-07-01 17:53:26,316 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:53:26,316 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:53:26,316 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:53:26,324 [DEBUG][       Thread-612788][   transport.py][1871] : EOF in transport thread
2025-07-01 17:53:28,670 [DEBUG][Thread-612790 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:53:36,326 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:53:36,327 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:53:36,327 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:53:36,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-07-01 17:53:36,820 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 53, 30), 10.28, 49.41, 0.0, 38.52, 12.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:53:36,820 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:53:30
2025-07-01 17:53:36,905 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:53:36,911 [DEBUG][       Thread-612791][   transport.py][1871] : starting thread (client mode): 0x81e78b0
2025-07-01 17:53:36,911 [DEBUG][       Thread-612791][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:53:36,932 [DEBUG][       Thread-612791][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:53:36,933 [ INFO][       Thread-612791][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:53:36,936 [DEBUG][       Thread-612791][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:53:36,936 [DEBUG][       Thread-612791][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:53:36,936 [DEBUG][       Thread-612791][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:53:36,936 [DEBUG][       Thread-612791][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:53:36,936 [DEBUG][       Thread-612791][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:53:36,937 [DEBUG][       Thread-612791][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:53:36,937 [DEBUG][       Thread-612791][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:53:36,937 [DEBUG][       Thread-612791][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:53:36,937 [DEBUG][       Thread-612791][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:53:36,937 [DEBUG][       Thread-612791][   transport.py][1871] : client lang: <none>
2025-07-01 17:53:36,937 [DEBUG][       Thread-612791][   transport.py][1871] : server lang: <none>
2025-07-01 17:53:36,937 [DEBUG][       Thread-612791][   transport.py][1871] : kex follows: False
2025-07-01 17:53:36,937 [DEBUG][       Thread-612791][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:53:36,937 [DEBUG][       Thread-612791][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:53:36,937 [DEBUG][       Thread-612791][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:53:36,937 [DEBUG][       Thread-612791][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:53:36,937 [DEBUG][       Thread-612791][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:53:36,937 [DEBUG][       Thread-612791][   transport.py][1871] : Compression: none
2025-07-01 17:53:36,937 [DEBUG][       Thread-612791][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:53:36,954 [DEBUG][       Thread-612791][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:53:36,954 [DEBUG][       Thread-612791][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:53:36,955 [DEBUG][       Thread-612791][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:53:36,955 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:53:36,955 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:53:36,956 [DEBUG][       Thread-612791][   transport.py][1871] : userauth is OK
2025-07-01 17:53:36,969 [ INFO][       Thread-612791][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:53:36,969 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:53:37,690 [DEBUG][Thread-612793 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:53:37,783 [DEBUG][       Thread-612791][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:53:37,783 [DEBUG][       Thread-612791][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:53:37,825 [DEBUG][       Thread-612791][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:53:37,825 [DEBUG][       Thread-612791][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:53:37,828 [DEBUG][       Thread-612791][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:53:37,839 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:53:37,839 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:53:37,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:53:37,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:53:37,849 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:53:37,851 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:53:37,851 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:53:37,852 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:53:37,852 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.661742 -999.00  +12.20  32.01     54   +3.30 1 2 2 1 1   800    0 8.47 -24.29 ----- 30.4 32.0 7.7 35.2 12.9 -16.4 12.7 -16.3 12.6 -15.8 12.9 -15.3
2025-07-01 17:53:37,852 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:53:37,852 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:53:37,853 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.661742
2025-07-01 17:53:37,853 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:53:37,854 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:53:37,854 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:53:37,854 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:53:37,854 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:53:37,854 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:53:30', tmtdew=10.28, humidity=49.41, cloud=0.0, wind=38.52, temperature=12.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:52:54.509', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:53:37,854 [DEBUG][       Thread-612791][   transport.py][1871] : EOF in transport thread
2025-07-01 17:53:37,937 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:53:37,947 [DEBUG][       Thread-612795][   transport.py][1871] : starting thread (client mode): 0x81d88e0
2025-07-01 17:53:37,947 [DEBUG][       Thread-612795][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:53:37,963 [DEBUG][       Thread-612795][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:53:37,963 [ INFO][       Thread-612795][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:53:37,970 [DEBUG][       Thread-612795][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:53:37,971 [DEBUG][       Thread-612795][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:53:37,971 [DEBUG][       Thread-612795][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:53:37,971 [DEBUG][       Thread-612795][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:53:37,971 [DEBUG][       Thread-612795][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:53:37,971 [DEBUG][       Thread-612795][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:53:37,971 [DEBUG][       Thread-612795][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:53:37,971 [DEBUG][       Thread-612795][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:53:37,971 [DEBUG][       Thread-612795][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:53:37,971 [DEBUG][       Thread-612795][   transport.py][1871] : client lang: <none>
2025-07-01 17:53:37,971 [DEBUG][       Thread-612795][   transport.py][1871] : server lang: <none>
2025-07-01 17:53:37,971 [DEBUG][       Thread-612795][   transport.py][1871] : kex follows: False
2025-07-01 17:53:37,971 [DEBUG][       Thread-612795][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:53:37,971 [DEBUG][       Thread-612795][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:53:37,971 [DEBUG][       Thread-612795][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:53:37,971 [DEBUG][       Thread-612795][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:53:37,971 [DEBUG][       Thread-612795][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:53:37,971 [DEBUG][       Thread-612795][   transport.py][1871] : Compression: none
2025-07-01 17:53:37,971 [DEBUG][       Thread-612795][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:53:38,033 [DEBUG][       Thread-612795][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:53:38,033 [DEBUG][       Thread-612795][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:53:38,034 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:53:38,035 [DEBUG][       Thread-612795][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:53:38,035 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:53:38,089 [DEBUG][       Thread-612795][   transport.py][1871] : userauth is OK
2025-07-01 17:53:38,090 [DEBUG][       Thread-612795][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:53:38,090 [DEBUG][       Thread-612795][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:53:38,090 [DEBUG][       Thread-612795][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:53:38,090 [DEBUG][       Thread-612795][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:53:38,108 [ INFO][       Thread-612795][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:53:38,109 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:53:38,109 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:53:39,146 [DEBUG][       Thread-612795][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:53:39,146 [DEBUG][       Thread-612795][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:53:39,201 [DEBUG][       Thread-612795][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:53:39,202 [DEBUG][       Thread-612795][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:53:39,214 [DEBUG][       Thread-612795][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:53:39,223 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:53:39,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-07-01 17:53:39,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-07-01 17:53:39,241 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:53:39,241 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:53:39,242 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:53:39,255 [DEBUG][       Thread-612795][   transport.py][1871] : EOF in transport thread
2025-07-01 17:53:41,611 [DEBUG][Thread-612797 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:53:46,710 [DEBUG][Thread-612798 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:53:49,252 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:53:49,252 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:53:49,252 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:53:49,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-07-01 17:53:49,723 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 53, 30), 10.28, 49.41, 0.0, 38.52, 12.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:53:49,723 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:53:30
2025-07-01 17:53:49,808 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:53:49,812 [DEBUG][       Thread-612799][   transport.py][1871] : starting thread (client mode): 0x81e66e0
2025-07-01 17:53:49,812 [DEBUG][       Thread-612799][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:53:49,833 [DEBUG][       Thread-612799][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:53:49,833 [ INFO][       Thread-612799][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:53:49,836 [DEBUG][       Thread-612799][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:53:49,837 [DEBUG][       Thread-612799][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:53:49,837 [DEBUG][       Thread-612799][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:53:49,837 [DEBUG][       Thread-612799][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:53:49,837 [DEBUG][       Thread-612799][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:53:49,837 [DEBUG][       Thread-612799][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:53:49,837 [DEBUG][       Thread-612799][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:53:49,837 [DEBUG][       Thread-612799][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:53:49,837 [DEBUG][       Thread-612799][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:53:49,837 [DEBUG][       Thread-612799][   transport.py][1871] : client lang: <none>
2025-07-01 17:53:49,837 [DEBUG][       Thread-612799][   transport.py][1871] : server lang: <none>
2025-07-01 17:53:49,837 [DEBUG][       Thread-612799][   transport.py][1871] : kex follows: False
2025-07-01 17:53:49,837 [DEBUG][       Thread-612799][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:53:49,837 [DEBUG][       Thread-612799][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:53:49,837 [DEBUG][       Thread-612799][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:53:49,837 [DEBUG][       Thread-612799][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:53:49,837 [DEBUG][       Thread-612799][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:53:49,837 [DEBUG][       Thread-612799][   transport.py][1871] : Compression: none
2025-07-01 17:53:49,837 [DEBUG][       Thread-612799][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:53:49,852 [DEBUG][       Thread-612799][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:53:49,852 [DEBUG][       Thread-612799][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:53:49,853 [DEBUG][       Thread-612799][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:53:49,853 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:53:49,853 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:53:49,854 [DEBUG][       Thread-612799][   transport.py][1871] : userauth is OK
2025-07-01 17:53:49,878 [ INFO][       Thread-612799][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:53:49,879 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:53:50,699 [DEBUG][       Thread-612799][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:53:50,700 [DEBUG][       Thread-612799][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:53:50,741 [DEBUG][       Thread-612799][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:53:50,741 [DEBUG][       Thread-612799][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:53:50,744 [DEBUG][       Thread-612799][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:53:50,755 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:53:50,755 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:53:50,757 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:53:50,758 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:53:50,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:53:50,765 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:53:50,765 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:53:50,766 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:53:50,766 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.661742 -999.00  +12.20  32.01     54   +3.30 1 2 2 1 1   800    0 8.47 -24.29 ----- 30.4 32.0 7.7 35.2 12.9 -16.4 12.7 -16.3 12.6 -15.8 12.9 -15.3
2025-07-01 17:53:50,766 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:53:50,766 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:53:50,766 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.661742
2025-07-01 17:53:50,767 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:53:50,767 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:53:50,767 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:53:50,767 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:53:50,767 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:53:50,767 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:53:30', tmtdew=10.28, humidity=49.41, cloud=0.0, wind=38.52, temperature=12.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:52:54.509', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:53:50,768 [DEBUG][       Thread-612799][   transport.py][1871] : EOF in transport thread
2025-07-01 17:53:50,851 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:53:50,862 [DEBUG][       Thread-612802][   transport.py][1871] : starting thread (client mode): 0x81c9120
2025-07-01 17:53:50,862 [DEBUG][       Thread-612802][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:53:50,877 [DEBUG][       Thread-612802][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:53:50,877 [ INFO][       Thread-612802][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:53:50,884 [DEBUG][       Thread-612802][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:53:50,884 [DEBUG][       Thread-612802][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:53:50,884 [DEBUG][       Thread-612802][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:53:50,884 [DEBUG][       Thread-612802][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:53:50,884 [DEBUG][       Thread-612802][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:53:50,884 [DEBUG][       Thread-612802][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:53:50,884 [DEBUG][       Thread-612802][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:53:50,885 [DEBUG][       Thread-612802][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:53:50,885 [DEBUG][       Thread-612802][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:53:50,885 [DEBUG][       Thread-612802][   transport.py][1871] : client lang: <none>
2025-07-01 17:53:50,885 [DEBUG][       Thread-612802][   transport.py][1871] : server lang: <none>
2025-07-01 17:53:50,885 [DEBUG][       Thread-612802][   transport.py][1871] : kex follows: False
2025-07-01 17:53:50,885 [DEBUG][       Thread-612802][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:53:50,885 [DEBUG][       Thread-612802][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:53:50,885 [DEBUG][       Thread-612802][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:53:50,885 [DEBUG][       Thread-612802][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:53:50,885 [DEBUG][       Thread-612802][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:53:50,885 [DEBUG][       Thread-612802][   transport.py][1871] : Compression: none
2025-07-01 17:53:50,885 [DEBUG][       Thread-612802][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:53:50,941 [DEBUG][       Thread-612802][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:53:50,941 [DEBUG][       Thread-612802][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:53:50,942 [DEBUG][       Thread-612802][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:53:50,942 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:53:50,943 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:53:50,997 [DEBUG][       Thread-612802][   transport.py][1871] : userauth is OK
2025-07-01 17:53:50,997 [DEBUG][       Thread-612802][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:53:50,997 [DEBUG][       Thread-612802][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:53:50,998 [DEBUG][       Thread-612802][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:53:50,998 [DEBUG][       Thread-612802][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:53:51,019 [ INFO][       Thread-612802][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:53:51,020 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:53:51,020 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:53:52,106 [DEBUG][       Thread-612802][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:53:52,106 [DEBUG][       Thread-612802][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:53:52,156 [DEBUG][       Thread-612802][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:53:52,156 [DEBUG][       Thread-612802][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:53:52,165 [DEBUG][       Thread-612802][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:53:52,174 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:53: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-07-01 17:53: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-07-01 17:53:52,193 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:53:52,193 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:53:52,193 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:53:52,201 [DEBUG][       Thread-612802][   transport.py][1871] : EOF in transport thread
2025-07-01 17:53:55,749 [DEBUG][Thread-612804 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:54:02,204 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:54:02,204 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:54:02,204 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:54: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-07-01 17:54:02,712 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 53, 30), 10.28, 49.41, 0.0, 38.52, 12.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:54:02,712 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:53:30
2025-07-01 17:54:02,803 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:54:02,817 [DEBUG][       Thread-612805][   transport.py][1871] : starting thread (client mode): 0x81e4fd0
2025-07-01 17:54:02,817 [DEBUG][       Thread-612805][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:54:02,837 [DEBUG][       Thread-612805][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:54:02,837 [ INFO][       Thread-612805][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:54:02,840 [DEBUG][       Thread-612805][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:54:02,840 [DEBUG][       Thread-612805][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:54:02,840 [DEBUG][       Thread-612805][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:54:02,840 [DEBUG][       Thread-612805][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:54:02,840 [DEBUG][       Thread-612805][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:54:02,840 [DEBUG][       Thread-612805][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:54:02,840 [DEBUG][       Thread-612805][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:54:02,840 [DEBUG][       Thread-612805][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:54:02,840 [DEBUG][       Thread-612805][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:54:02,840 [DEBUG][       Thread-612805][   transport.py][1871] : client lang: <none>
2025-07-01 17:54:02,840 [DEBUG][       Thread-612805][   transport.py][1871] : server lang: <none>
2025-07-01 17:54:02,840 [DEBUG][       Thread-612805][   transport.py][1871] : kex follows: False
2025-07-01 17:54:02,840 [DEBUG][       Thread-612805][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:54:02,840 [DEBUG][       Thread-612805][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:54:02,840 [DEBUG][       Thread-612805][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:54:02,840 [DEBUG][       Thread-612805][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:54:02,840 [DEBUG][       Thread-612805][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:54:02,840 [DEBUG][       Thread-612805][   transport.py][1871] : Compression: none
2025-07-01 17:54:02,840 [DEBUG][       Thread-612805][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:54:02,854 [DEBUG][       Thread-612805][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:54:02,855 [DEBUG][       Thread-612805][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:54:02,855 [DEBUG][       Thread-612805][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:54:02,855 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:54:02,855 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:54:02,855 [DEBUG][       Thread-612805][   transport.py][1871] : userauth is OK
2025-07-01 17:54:02,879 [ INFO][       Thread-612805][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:54:02,879 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:54:03,505 [DEBUG][       Thread-612805][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:54:03,505 [DEBUG][       Thread-612805][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:54:03,548 [DEBUG][       Thread-612805][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:54:03,549 [DEBUG][       Thread-612805][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:54:03,551 [DEBUG][       Thread-612805][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:54:03,564 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:54:03,564 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:54:03,565 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:54:03,566 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:54:03,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:54:03,571 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:54:03,571 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:54:03,571 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:54:03,571 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.662089 -999.00  +12.20  18.10     54   +3.30 1 2 1 1 1   792    0 8.53 -23.91 ----- 27.7 18.1 343.8 32.6 12.9 -16.2 12.7 -16.2 12.5 -15.6 12.9 -15.3
2025-07-01 17:54:03,571 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:54:03,571 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:54:03,571 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.662089
2025-07-01 17:54:03,572 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:54:03,572 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:54:03,572 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:54:03,572 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:54:03,572 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:54:03,572 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:53:30', tmtdew=10.28, humidity=49.41, cloud=0.0, wind=38.52, temperature=12.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:53:24.490', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:54:03,572 [DEBUG][       Thread-612805][   transport.py][1871] : EOF in transport thread
2025-07-01 17:54:03,646 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:54:03,656 [DEBUG][       Thread-612808][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 17:54:03,656 [DEBUG][       Thread-612808][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:54:03,671 [DEBUG][       Thread-612808][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:54:03,671 [ INFO][       Thread-612808][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:54:03,678 [DEBUG][       Thread-612808][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:54:03,678 [DEBUG][       Thread-612808][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:54:03,678 [DEBUG][       Thread-612808][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:54:03,678 [DEBUG][       Thread-612808][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:54:03,678 [DEBUG][       Thread-612808][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:54:03,678 [DEBUG][       Thread-612808][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:54:03,678 [DEBUG][       Thread-612808][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:54:03,678 [DEBUG][       Thread-612808][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:54:03,678 [DEBUG][       Thread-612808][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:54:03,678 [DEBUG][       Thread-612808][   transport.py][1871] : client lang: <none>
2025-07-01 17:54:03,678 [DEBUG][       Thread-612808][   transport.py][1871] : server lang: <none>
2025-07-01 17:54:03,678 [DEBUG][       Thread-612808][   transport.py][1871] : kex follows: False
2025-07-01 17:54:03,678 [DEBUG][       Thread-612808][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:54:03,678 [DEBUG][       Thread-612808][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:54:03,678 [DEBUG][       Thread-612808][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:54:03,678 [DEBUG][       Thread-612808][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:54:03,678 [DEBUG][       Thread-612808][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:54:03,678 [DEBUG][       Thread-612808][   transport.py][1871] : Compression: none
2025-07-01 17:54:03,678 [DEBUG][       Thread-612808][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:54:03,735 [DEBUG][       Thread-612808][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:54:03,735 [DEBUG][       Thread-612808][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:54:03,735 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:54:03,735 [DEBUG][       Thread-612808][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:54:03,735 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:54:03,792 [DEBUG][       Thread-612808][   transport.py][1871] : userauth is OK
2025-07-01 17:54:03,792 [DEBUG][       Thread-612808][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:54:03,792 [DEBUG][       Thread-612808][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:54:03,792 [DEBUG][       Thread-612808][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:54:03,792 [DEBUG][       Thread-612808][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:54:03,808 [ INFO][       Thread-612808][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:54:03,808 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:54:03,808 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:54:04,770 [DEBUG][Thread-612810 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:54:04,857 [DEBUG][       Thread-612808][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:54:04,858 [DEBUG][       Thread-612808][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:54:04,908 [DEBUG][       Thread-612808][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:54:04,908 [DEBUG][       Thread-612808][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:54:04,918 [DEBUG][       Thread-612808][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:54:04,927 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:54:04,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-07-01 17:54:04,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') -> 00000000
2025-07-01 17:54:04,946 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:54:04,947 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:54:04,947 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:54:04,956 [DEBUG][       Thread-612808][   transport.py][1871] : EOF in transport thread
2025-07-01 17:54:13,793 [DEBUG][Thread-612811 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:54:14,958 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:54:14,958 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:54:14,958 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:54:14,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-07-01 17:54:15,440 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 54, 2), 10.29, 49.38, 0.0, 33.4, 12.44, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:54:15,440 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:54:02
2025-07-01 17:54:15,525 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:54:15,530 [DEBUG][       Thread-612812][   transport.py][1871] : starting thread (client mode): 0x8156fe0
2025-07-01 17:54:15,530 [DEBUG][       Thread-612812][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:54:15,550 [DEBUG][       Thread-612812][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:54:15,550 [ INFO][       Thread-612812][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:54:15,553 [DEBUG][       Thread-612812][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:54:15,553 [DEBUG][       Thread-612812][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:54:15,553 [DEBUG][       Thread-612812][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:54:15,553 [DEBUG][       Thread-612812][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:54:15,553 [DEBUG][       Thread-612812][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:54:15,553 [DEBUG][       Thread-612812][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:54:15,553 [DEBUG][       Thread-612812][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:54:15,553 [DEBUG][       Thread-612812][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:54:15,553 [DEBUG][       Thread-612812][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:54:15,553 [DEBUG][       Thread-612812][   transport.py][1871] : client lang: <none>
2025-07-01 17:54:15,553 [DEBUG][       Thread-612812][   transport.py][1871] : server lang: <none>
2025-07-01 17:54:15,553 [DEBUG][       Thread-612812][   transport.py][1871] : kex follows: False
2025-07-01 17:54:15,553 [DEBUG][       Thread-612812][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:54:15,553 [DEBUG][       Thread-612812][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:54:15,553 [DEBUG][       Thread-612812][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:54:15,554 [DEBUG][       Thread-612812][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:54:15,554 [DEBUG][       Thread-612812][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:54:15,554 [DEBUG][       Thread-612812][   transport.py][1871] : Compression: none
2025-07-01 17:54:15,554 [DEBUG][       Thread-612812][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:54:15,570 [DEBUG][       Thread-612812][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:54:15,571 [DEBUG][       Thread-612812][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:54:15,571 [DEBUG][       Thread-612812][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:54:15,572 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:54:15,572 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:54:15,573 [DEBUG][       Thread-612812][   transport.py][1871] : userauth is OK
2025-07-01 17:54:15,586 [ INFO][       Thread-612812][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:54:15,587 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:54:16,372 [DEBUG][       Thread-612812][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:54:16,372 [DEBUG][       Thread-612812][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:54:16,417 [DEBUG][       Thread-612812][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:54:16,417 [DEBUG][       Thread-612812][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:54:16,421 [DEBUG][       Thread-612812][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:54:16,432 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:54:16,432 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:54:16,434 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:54:16,436 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:54:16,442 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:54:16,445 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:54:16,445 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:54:16,445 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:54:16,445 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.662089 -999.00  +12.20  18.10     54   +3.30 1 2 1 1 1   792    0 8.53 -23.91 ----- 27.7 18.1 343.8 32.6 12.9 -16.2 12.7 -16.2 12.5 -15.6 12.9 -15.3
2025-07-01 17:54:16,446 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:54:16,446 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:54:16,446 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.662089
2025-07-01 17:54:16,446 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:54:16,447 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:54:16,447 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:54:16,447 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:54:16,447 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:54:16,447 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:54:02', tmtdew=10.29, humidity=49.38, cloud=0.0, wind=33.4, temperature=12.44, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:53:24.490', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:54:16,447 [DEBUG][       Thread-612812][   transport.py][1871] : EOF in transport thread
2025-07-01 17:54:16,530 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:54:16,542 [DEBUG][       Thread-612815][   transport.py][1871] : starting thread (client mode): 0x81e4430
2025-07-01 17:54:16,542 [DEBUG][       Thread-612815][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:54:16,557 [DEBUG][       Thread-612815][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:54:16,557 [ INFO][       Thread-612815][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:54:16,565 [DEBUG][       Thread-612815][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:54:16,565 [DEBUG][       Thread-612815][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:54:16,565 [DEBUG][       Thread-612815][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:54:16,565 [DEBUG][       Thread-612815][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:54:16,565 [DEBUG][       Thread-612815][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:54:16,565 [DEBUG][       Thread-612815][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:54:16,565 [DEBUG][       Thread-612815][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:54:16,565 [DEBUG][       Thread-612815][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:54:16,565 [DEBUG][       Thread-612815][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:54:16,565 [DEBUG][       Thread-612815][   transport.py][1871] : client lang: <none>
2025-07-01 17:54:16,565 [DEBUG][       Thread-612815][   transport.py][1871] : server lang: <none>
2025-07-01 17:54:16,565 [DEBUG][       Thread-612815][   transport.py][1871] : kex follows: False
2025-07-01 17:54:16,565 [DEBUG][       Thread-612815][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:54:16,565 [DEBUG][       Thread-612815][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:54:16,565 [DEBUG][       Thread-612815][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:54:16,565 [DEBUG][       Thread-612815][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:54:16,565 [DEBUG][       Thread-612815][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:54:16,565 [DEBUG][       Thread-612815][   transport.py][1871] : Compression: none
2025-07-01 17:54:16,566 [DEBUG][       Thread-612815][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:54:16,624 [DEBUG][       Thread-612815][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:54:16,625 [DEBUG][       Thread-612815][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:54:16,625 [DEBUG][       Thread-612815][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:54:16,625 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:54:16,626 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:54:16,680 [DEBUG][       Thread-612815][   transport.py][1871] : userauth is OK
2025-07-01 17:54:16,680 [DEBUG][       Thread-612815][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:54:16,681 [DEBUG][       Thread-612815][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:54:16,681 [DEBUG][       Thread-612815][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:54:16,681 [DEBUG][       Thread-612815][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:54:16,702 [ INFO][       Thread-612815][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:54:16,702 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:54:16,703 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:54:17,785 [DEBUG][       Thread-612815][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:54:17,785 [DEBUG][       Thread-612815][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:54:17,836 [DEBUG][       Thread-612815][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:54:17,836 [DEBUG][       Thread-612815][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:54:17,846 [DEBUG][       Thread-612815][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:54:17,855 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:54:17,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-07-01 17:54:17,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-07-01 17:54:17,873 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:54:17,873 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:54:17,874 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:54:17,882 [DEBUG][       Thread-612815][   transport.py][1871] : EOF in transport thread
2025-07-01 17:54:22,817 [DEBUG][Thread-612817 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:54:27,885 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:54:27,885 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:54:27,894 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:54:27,897 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:54:28,365 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 54, 2), 10.29, 49.38, 0.0, 33.4, 12.44, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:54:28,365 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:54:02
2025-07-01 17:54:28,448 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:54:28,455 [DEBUG][       Thread-612818][   transport.py][1871] : starting thread (client mode): 0x81e5930
2025-07-01 17:54:28,455 [DEBUG][       Thread-612818][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:54:28,478 [DEBUG][       Thread-612818][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:54:28,478 [ INFO][       Thread-612818][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:54:28,481 [DEBUG][       Thread-612818][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:54:28,481 [DEBUG][       Thread-612818][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:54:28,481 [DEBUG][       Thread-612818][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:54:28,481 [DEBUG][       Thread-612818][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:54:28,481 [DEBUG][       Thread-612818][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:54:28,481 [DEBUG][       Thread-612818][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:54:28,481 [DEBUG][       Thread-612818][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:54:28,481 [DEBUG][       Thread-612818][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:54:28,481 [DEBUG][       Thread-612818][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:54:28,481 [DEBUG][       Thread-612818][   transport.py][1871] : client lang: <none>
2025-07-01 17:54:28,481 [DEBUG][       Thread-612818][   transport.py][1871] : server lang: <none>
2025-07-01 17:54:28,482 [DEBUG][       Thread-612818][   transport.py][1871] : kex follows: False
2025-07-01 17:54:28,482 [DEBUG][       Thread-612818][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:54:28,482 [DEBUG][       Thread-612818][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:54:28,482 [DEBUG][       Thread-612818][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:54:28,482 [DEBUG][       Thread-612818][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:54:28,482 [DEBUG][       Thread-612818][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:54:28,482 [DEBUG][       Thread-612818][   transport.py][1871] : Compression: none
2025-07-01 17:54:28,482 [DEBUG][       Thread-612818][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:54:28,497 [DEBUG][       Thread-612818][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:54:28,497 [DEBUG][       Thread-612818][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:54:28,497 [DEBUG][       Thread-612818][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:54:28,497 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:54:28,498 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:54:28,498 [DEBUG][       Thread-612818][   transport.py][1871] : userauth is OK
2025-07-01 17:54:28,511 [ INFO][       Thread-612818][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:54:28,511 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:54:29,275 [DEBUG][       Thread-612818][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:54:29,275 [DEBUG][       Thread-612818][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:54:29,317 [DEBUG][       Thread-612818][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:54:29,317 [DEBUG][       Thread-612818][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:54:29,320 [DEBUG][       Thread-612818][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:54:29,327 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:54:29,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:54:29,330 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:54:29,332 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:54:29,337 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:54:29,339 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:54:29,339 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:54:29,340 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:54:29,340 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.662089 -999.00  +12.20  18.10     54   +3.30 1 2 1 1 1   792    0 8.53 -23.91 ----- 27.7 18.1 343.8 32.6 12.9 -16.2 12.7 -16.2 12.5 -15.6 12.9 -15.3
2025-07-01 17:54:29,340 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:54:29,340 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:54:29,340 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.662089
2025-07-01 17:54:29,341 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:54:29,341 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:54:29,341 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:54:29,341 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:54:29,341 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:54:29,342 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:54:02', tmtdew=10.29, humidity=49.38, cloud=0.0, wind=33.4, temperature=12.44, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:53:24.490', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:54:29,342 [DEBUG][       Thread-612818][   transport.py][1871] : EOF in transport thread
2025-07-01 17:54:29,415 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:54:29,428 [DEBUG][       Thread-612821][   transport.py][1871] : starting thread (client mode): 0x8393f40
2025-07-01 17:54:29,428 [DEBUG][       Thread-612821][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:54:29,446 [DEBUG][       Thread-612821][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:54:29,446 [ INFO][       Thread-612821][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:54:29,454 [DEBUG][       Thread-612821][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:54:29,454 [DEBUG][       Thread-612821][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:54:29,454 [DEBUG][       Thread-612821][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:54:29,454 [DEBUG][       Thread-612821][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:54:29,454 [DEBUG][       Thread-612821][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:54:29,454 [DEBUG][       Thread-612821][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:54:29,454 [DEBUG][       Thread-612821][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:54:29,454 [DEBUG][       Thread-612821][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:54:29,454 [DEBUG][       Thread-612821][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:54:29,454 [DEBUG][       Thread-612821][   transport.py][1871] : client lang: <none>
2025-07-01 17:54:29,454 [DEBUG][       Thread-612821][   transport.py][1871] : server lang: <none>
2025-07-01 17:54:29,454 [DEBUG][       Thread-612821][   transport.py][1871] : kex follows: False
2025-07-01 17:54:29,454 [DEBUG][       Thread-612821][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:54:29,455 [DEBUG][       Thread-612821][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:54:29,455 [DEBUG][       Thread-612821][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:54:29,455 [DEBUG][       Thread-612821][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:54:29,455 [DEBUG][       Thread-612821][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:54:29,455 [DEBUG][       Thread-612821][   transport.py][1871] : Compression: none
2025-07-01 17:54:29,455 [DEBUG][       Thread-612821][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:54:29,516 [DEBUG][       Thread-612821][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:54:29,517 [DEBUG][       Thread-612821][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:54:29,517 [DEBUG][       Thread-612821][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:54:29,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:54:29,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:54:29,574 [DEBUG][       Thread-612821][   transport.py][1871] : userauth is OK
2025-07-01 17:54:29,574 [DEBUG][       Thread-612821][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:54:29,575 [DEBUG][       Thread-612821][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:54:29,575 [DEBUG][       Thread-612821][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:54:29,575 [DEBUG][       Thread-612821][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:54:29,594 [ INFO][       Thread-612821][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:54:29,594 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:54:29,595 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:54:30,629 [DEBUG][       Thread-612821][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:54:30,629 [DEBUG][       Thread-612821][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:54:30,680 [DEBUG][       Thread-612821][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:54:30,680 [DEBUG][       Thread-612821][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:54:30,690 [DEBUG][       Thread-612821][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:54:30,700 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:54:30,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-07-01 17:54:30,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-07-01 17:54:30,721 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:54:30,722 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:54:30,722 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:54:30,730 [DEBUG][       Thread-612821][   transport.py][1871] : EOF in transport thread
2025-07-01 17:54:31,858 [DEBUG][Thread-612823 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:54:40,732 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:54:40,733 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:54:40,733 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:54:40,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-07-01 17:54:40,876 [DEBUG][Thread-612824 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:54:41,238 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 54, 34), 10.31, 49.44, 0.0, 34.16, 12.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:54:41,238 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:54:34
2025-07-01 17:54:41,325 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:54:41,328 [DEBUG][       Thread-612825][   transport.py][1871] : starting thread (client mode): 0x81e5930
2025-07-01 17:54:41,328 [DEBUG][       Thread-612825][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:54:41,348 [DEBUG][       Thread-612825][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:54:41,348 [ INFO][       Thread-612825][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:54:41,351 [DEBUG][       Thread-612825][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:54:41,351 [DEBUG][       Thread-612825][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:54:41,351 [DEBUG][       Thread-612825][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:54:41,351 [DEBUG][       Thread-612825][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:54:41,351 [DEBUG][       Thread-612825][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:54:41,351 [DEBUG][       Thread-612825][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:54:41,351 [DEBUG][       Thread-612825][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:54:41,351 [DEBUG][       Thread-612825][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:54:41,351 [DEBUG][       Thread-612825][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:54:41,351 [DEBUG][       Thread-612825][   transport.py][1871] : client lang: <none>
2025-07-01 17:54:41,351 [DEBUG][       Thread-612825][   transport.py][1871] : server lang: <none>
2025-07-01 17:54:41,351 [DEBUG][       Thread-612825][   transport.py][1871] : kex follows: False
2025-07-01 17:54:41,351 [DEBUG][       Thread-612825][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:54:41,351 [DEBUG][       Thread-612825][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:54:41,351 [DEBUG][       Thread-612825][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:54:41,351 [DEBUG][       Thread-612825][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:54:41,351 [DEBUG][       Thread-612825][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:54:41,351 [DEBUG][       Thread-612825][   transport.py][1871] : Compression: none
2025-07-01 17:54:41,351 [DEBUG][       Thread-612825][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:54:41,366 [DEBUG][       Thread-612825][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:54:41,366 [DEBUG][       Thread-612825][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:54:41,366 [DEBUG][       Thread-612825][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:54:41,366 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:54:41,366 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:54:41,367 [DEBUG][       Thread-612825][   transport.py][1871] : userauth is OK
2025-07-01 17:54:41,379 [ INFO][       Thread-612825][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:54:41,379 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:54:41,662 [DEBUG][Thread-612827 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:54:42,049 [DEBUG][       Thread-612825][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:54:42,050 [DEBUG][       Thread-612825][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:54:42,092 [DEBUG][       Thread-612825][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:54:42,092 [DEBUG][       Thread-612825][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:54:42,095 [DEBUG][       Thread-612825][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:54:42,108 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:54:42,109 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:54:42,110 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:54:42,111 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:54:42,113 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:54:42,114 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:54:42,114 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:54:42,114 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:54:42,114 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.662784 -999.00  +12.20  28.04     54   +3.30 1 2 1 1 1   774    0 8.45 -27.10 ----- 32.2 28.0 6.6 40.8 12.9 -16.0 12.7 -16.0 12.5 -15.3 12.9 -15.1
2025-07-01 17:54:42,115 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:54:42,115 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:54:42,115 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.662784
2025-07-01 17:54:42,115 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:54:42,115 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:54:42,115 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:54:42,115 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:54:42,115 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:54:42,115 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:54:34', tmtdew=10.31, humidity=49.44, cloud=0.0, wind=34.16, temperature=12.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:54:24.538', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:54:42,116 [DEBUG][       Thread-612825][   transport.py][1871] : EOF in transport thread
2025-07-01 17:54:42,188 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:54:42,197 [DEBUG][       Thread-612829][   transport.py][1871] : starting thread (client mode): 0x8393790
2025-07-01 17:54:42,197 [DEBUG][       Thread-612829][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:54:42,212 [DEBUG][       Thread-612829][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:54:42,212 [ INFO][       Thread-612829][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:54:42,220 [DEBUG][       Thread-612829][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:54:42,220 [DEBUG][       Thread-612829][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:54:42,220 [DEBUG][       Thread-612829][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:54:42,220 [DEBUG][       Thread-612829][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:54:42,220 [DEBUG][       Thread-612829][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:54:42,220 [DEBUG][       Thread-612829][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:54:42,220 [DEBUG][       Thread-612829][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:54:42,220 [DEBUG][       Thread-612829][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:54:42,220 [DEBUG][       Thread-612829][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:54:42,220 [DEBUG][       Thread-612829][   transport.py][1871] : client lang: <none>
2025-07-01 17:54:42,220 [DEBUG][       Thread-612829][   transport.py][1871] : server lang: <none>
2025-07-01 17:54:42,220 [DEBUG][       Thread-612829][   transport.py][1871] : kex follows: False
2025-07-01 17:54:42,220 [DEBUG][       Thread-612829][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:54:42,220 [DEBUG][       Thread-612829][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:54:42,220 [DEBUG][       Thread-612829][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:54:42,220 [DEBUG][       Thread-612829][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:54:42,220 [DEBUG][       Thread-612829][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:54:42,220 [DEBUG][       Thread-612829][   transport.py][1871] : Compression: none
2025-07-01 17:54:42,220 [DEBUG][       Thread-612829][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:54:42,278 [DEBUG][       Thread-612829][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:54:42,278 [DEBUG][       Thread-612829][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:54:42,278 [DEBUG][       Thread-612829][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:54:42,278 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:54:42,278 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:54:42,335 [DEBUG][       Thread-612829][   transport.py][1871] : userauth is OK
2025-07-01 17:54:42,335 [DEBUG][       Thread-612829][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:54:42,335 [DEBUG][       Thread-612829][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:54:42,335 [DEBUG][       Thread-612829][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:54:42,335 [DEBUG][       Thread-612829][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:54:42,349 [ INFO][       Thread-612829][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:54:42,349 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:54:42,349 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:54:43,372 [DEBUG][       Thread-612829][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:54:43,372 [DEBUG][       Thread-612829][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:54:43,423 [DEBUG][       Thread-612829][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:54:43,423 [DEBUG][       Thread-612829][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:54:43,432 [DEBUG][       Thread-612829][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:54:43,440 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:54:43,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-07-01 17:54:43,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-07-01 17:54:43,456 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:54:43,456 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:54:43,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:54:43,464 [DEBUG][       Thread-612829][   transport.py][1871] : EOF in transport thread
2025-07-01 17:54:49,896 [DEBUG][Thread-612831 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:54:53,457 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:54:53,458 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:54:53,458 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:54:53,459 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:54:53,933 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 54, 34), 10.31, 49.44, 0.0, 34.16, 12.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:54:53,933 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:54:34
2025-07-01 17:54:54,017 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:54:54,023 [DEBUG][       Thread-612832][   transport.py][1871] : starting thread (client mode): 0x81e4b20
2025-07-01 17:54:54,023 [DEBUG][       Thread-612832][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:54:54,043 [DEBUG][       Thread-612832][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:54:54,043 [ INFO][       Thread-612832][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:54:54,046 [DEBUG][       Thread-612832][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:54:54,047 [DEBUG][       Thread-612832][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:54:54,047 [DEBUG][       Thread-612832][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:54:54,047 [DEBUG][       Thread-612832][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:54:54,047 [DEBUG][       Thread-612832][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:54:54,047 [DEBUG][       Thread-612832][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:54:54,047 [DEBUG][       Thread-612832][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:54:54,047 [DEBUG][       Thread-612832][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:54:54,047 [DEBUG][       Thread-612832][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:54:54,047 [DEBUG][       Thread-612832][   transport.py][1871] : client lang: <none>
2025-07-01 17:54:54,047 [DEBUG][       Thread-612832][   transport.py][1871] : server lang: <none>
2025-07-01 17:54:54,047 [DEBUG][       Thread-612832][   transport.py][1871] : kex follows: False
2025-07-01 17:54:54,047 [DEBUG][       Thread-612832][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:54:54,047 [DEBUG][       Thread-612832][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:54:54,047 [DEBUG][       Thread-612832][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:54:54,047 [DEBUG][       Thread-612832][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:54:54,047 [DEBUG][       Thread-612832][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:54:54,047 [DEBUG][       Thread-612832][   transport.py][1871] : Compression: none
2025-07-01 17:54:54,047 [DEBUG][       Thread-612832][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:54:54,064 [DEBUG][       Thread-612832][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:54:54,065 [DEBUG][       Thread-612832][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:54:54,065 [DEBUG][       Thread-612832][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:54:54,065 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:54:54,066 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:54:54,067 [DEBUG][       Thread-612832][   transport.py][1871] : userauth is OK
2025-07-01 17:54:54,091 [ INFO][       Thread-612832][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:54:54,092 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:54:54,899 [DEBUG][       Thread-612832][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:54:54,900 [DEBUG][       Thread-612832][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:54:54,941 [DEBUG][       Thread-612832][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:54:54,941 [DEBUG][       Thread-612832][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:54:54,944 [DEBUG][       Thread-612832][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:54:54,957 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:54:54,957 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:54:54,959 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:54:54,961 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:54:54,966 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:54:54,968 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:54:54,968 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:54:54,969 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:54:54,969 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.662784 -999.00  +12.20  28.04     54   +3.30 1 2 1 1 1   774    0 8.45 -27.10 ----- 32.2 28.0 6.6 40.8 12.9 -16.0 12.7 -16.0 12.5 -15.3 12.9 -15.1
2025-07-01 17:54:54,969 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:54:54,969 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:54:54,969 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.662784
2025-07-01 17:54:54,970 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:54:54,970 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:54:54,970 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:54:54,970 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:54:54,970 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:54:54,971 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:54:34', tmtdew=10.31, humidity=49.44, cloud=0.0, wind=34.16, temperature=12.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:54:24.538', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:54:54,971 [DEBUG][       Thread-612832][   transport.py][1871] : EOF in transport thread
2025-07-01 17:54:55,055 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:54:55,066 [DEBUG][       Thread-612835][   transport.py][1871] : starting thread (client mode): 0x8393a60
2025-07-01 17:54:55,066 [DEBUG][       Thread-612835][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:54:55,080 [DEBUG][       Thread-612835][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:54:55,080 [ INFO][       Thread-612835][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:54:55,090 [DEBUG][       Thread-612835][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:54:55,091 [DEBUG][       Thread-612835][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:54:55,091 [DEBUG][       Thread-612835][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:54:55,091 [DEBUG][       Thread-612835][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:54:55,091 [DEBUG][       Thread-612835][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:54:55,091 [DEBUG][       Thread-612835][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:54:55,091 [DEBUG][       Thread-612835][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:54:55,091 [DEBUG][       Thread-612835][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:54:55,091 [DEBUG][       Thread-612835][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:54:55,091 [DEBUG][       Thread-612835][   transport.py][1871] : client lang: <none>
2025-07-01 17:54:55,091 [DEBUG][       Thread-612835][   transport.py][1871] : server lang: <none>
2025-07-01 17:54:55,091 [DEBUG][       Thread-612835][   transport.py][1871] : kex follows: False
2025-07-01 17:54:55,091 [DEBUG][       Thread-612835][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:54:55,091 [DEBUG][       Thread-612835][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:54:55,091 [DEBUG][       Thread-612835][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:54:55,091 [DEBUG][       Thread-612835][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:54:55,091 [DEBUG][       Thread-612835][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:54:55,091 [DEBUG][       Thread-612835][   transport.py][1871] : Compression: none
2025-07-01 17:54:55,091 [DEBUG][       Thread-612835][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:54:55,152 [DEBUG][       Thread-612835][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:54:55,153 [DEBUG][       Thread-612835][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:54:55,153 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:54:55,154 [DEBUG][       Thread-612835][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:54:55,154 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:54:55,211 [DEBUG][       Thread-612835][   transport.py][1871] : userauth is OK
2025-07-01 17:54:55,211 [DEBUG][       Thread-612835][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:54:55,211 [DEBUG][       Thread-612835][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:54:55,211 [DEBUG][       Thread-612835][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:54:55,212 [DEBUG][       Thread-612835][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:54:55,230 [ INFO][       Thread-612835][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:54:55,230 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:54:55,230 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:54:56,238 [DEBUG][       Thread-612835][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:54:56,239 [DEBUG][       Thread-612835][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:54:56,290 [DEBUG][       Thread-612835][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:54:56,291 [DEBUG][       Thread-612835][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:54:56,300 [DEBUG][       Thread-612835][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:54:56,314 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:54:56,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-07-01 17:54:56,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-07-01 17:54:56,342 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:54:56,342 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:54:56,343 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:54:56,350 [DEBUG][       Thread-612835][   transport.py][1871] : EOF in transport thread
2025-07-01 17:54:58,932 [DEBUG][Thread-612837 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:55:06,352 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:55:06,352 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:55:06,352 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:55:06,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-07-01 17:55:06,859 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 54, 34), 10.31, 49.44, 0.0, 34.16, 12.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:55:06,859 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:54:34
2025-07-01 17:55:06,950 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:55:06,954 [DEBUG][       Thread-612838][   transport.py][1871] : starting thread (client mode): 0x8156170
2025-07-01 17:55:06,954 [DEBUG][       Thread-612838][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:55:06,967 [DEBUG][       Thread-612838][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:55:06,967 [ INFO][       Thread-612838][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:55:06,970 [DEBUG][       Thread-612838][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:55:06,970 [DEBUG][       Thread-612838][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:55:06,970 [DEBUG][       Thread-612838][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:55:06,970 [DEBUG][       Thread-612838][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:55:06,970 [DEBUG][       Thread-612838][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:55:06,970 [DEBUG][       Thread-612838][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:55:06,970 [DEBUG][       Thread-612838][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:55:06,970 [DEBUG][       Thread-612838][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:55:06,970 [DEBUG][       Thread-612838][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:55:06,970 [DEBUG][       Thread-612838][   transport.py][1871] : client lang: <none>
2025-07-01 17:55:06,970 [DEBUG][       Thread-612838][   transport.py][1871] : server lang: <none>
2025-07-01 17:55:06,970 [DEBUG][       Thread-612838][   transport.py][1871] : kex follows: False
2025-07-01 17:55:06,970 [DEBUG][       Thread-612838][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:55:06,970 [DEBUG][       Thread-612838][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:55:06,970 [DEBUG][       Thread-612838][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:55:06,970 [DEBUG][       Thread-612838][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:55:06,970 [DEBUG][       Thread-612838][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:55:06,970 [DEBUG][       Thread-612838][   transport.py][1871] : Compression: none
2025-07-01 17:55:06,970 [DEBUG][       Thread-612838][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:55:06,982 [DEBUG][       Thread-612838][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:55:06,982 [DEBUG][       Thread-612838][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:55:06,982 [DEBUG][       Thread-612838][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:55:06,983 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:55:06,983 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:55:06,983 [DEBUG][       Thread-612838][   transport.py][1871] : userauth is OK
2025-07-01 17:55:07,007 [ INFO][       Thread-612838][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:55:07,007 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:55:07,616 [DEBUG][       Thread-612838][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:55:07,616 [DEBUG][       Thread-612838][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:55:07,660 [DEBUG][       Thread-612838][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:55:07,660 [DEBUG][       Thread-612838][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:55:07,663 [DEBUG][       Thread-612838][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:55:07,675 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:55:07,676 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:55:07,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:55:07,678 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:55:07,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:55:07,703 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:55:07,703 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:55:07,703 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:55:07,703 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.663131 -999.00  +12.30  30.50     54   +3.30 1 2 2 1 1   765    0 8.28 -26.04 ----- 29.1 30.5 18.9 38.0 12.9 -15.9 12.7 -15.9 12.6 -15.3 12.8 -15.0
2025-07-01 17:55:07,703 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:55:07,703 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:55:07,703 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.663131
2025-07-01 17:55:07,703 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:55:07,703 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:55:07,703 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:55:07,703 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:55:07,703 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:55:07,703 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:54:34', tmtdew=10.31, humidity=49.44, cloud=0.0, wind=34.16, temperature=12.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:54:54.518', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:55:07,704 [DEBUG][       Thread-612838][   transport.py][1871] : EOF in transport thread
2025-07-01 17:55:07,775 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:55:07,785 [DEBUG][       Thread-612841][   transport.py][1871] : starting thread (client mode): 0x8393a60
2025-07-01 17:55:07,785 [DEBUG][       Thread-612841][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:55:07,800 [DEBUG][       Thread-612841][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:55:07,800 [ INFO][       Thread-612841][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:55:07,808 [DEBUG][       Thread-612841][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:55:07,808 [DEBUG][       Thread-612841][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:55:07,808 [DEBUG][       Thread-612841][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:55:07,808 [DEBUG][       Thread-612841][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:55:07,808 [DEBUG][       Thread-612841][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:55:07,808 [DEBUG][       Thread-612841][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:55:07,808 [DEBUG][       Thread-612841][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:55:07,808 [DEBUG][       Thread-612841][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:55:07,808 [DEBUG][       Thread-612841][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:55:07,808 [DEBUG][       Thread-612841][   transport.py][1871] : client lang: <none>
2025-07-01 17:55:07,808 [DEBUG][       Thread-612841][   transport.py][1871] : server lang: <none>
2025-07-01 17:55:07,808 [DEBUG][       Thread-612841][   transport.py][1871] : kex follows: False
2025-07-01 17:55:07,808 [DEBUG][       Thread-612841][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:55:07,808 [DEBUG][       Thread-612841][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:55:07,808 [DEBUG][       Thread-612841][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:55:07,808 [DEBUG][       Thread-612841][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:55:07,808 [DEBUG][       Thread-612841][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:55:07,809 [DEBUG][       Thread-612841][   transport.py][1871] : Compression: none
2025-07-01 17:55:07,809 [DEBUG][       Thread-612841][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:55:07,868 [DEBUG][       Thread-612841][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:55:07,868 [DEBUG][       Thread-612841][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:55:07,869 [DEBUG][       Thread-612841][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:55:07,869 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:55:07,870 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:55:07,927 [DEBUG][       Thread-612841][   transport.py][1871] : userauth is OK
2025-07-01 17:55:07,927 [DEBUG][       Thread-612841][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:55:07,927 [DEBUG][       Thread-612841][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:55:07,927 [DEBUG][       Thread-612841][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:55:07,927 [DEBUG][       Thread-612841][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:55:07,947 [ INFO][       Thread-612841][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:55:07,947 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:55:07,948 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:55:07,952 [DEBUG][Thread-612843 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:55:08,979 [DEBUG][       Thread-612841][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:55:08,979 [DEBUG][       Thread-612841][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:55:09,027 [DEBUG][       Thread-612841][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:55:09,027 [DEBUG][       Thread-612841][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:55:09,036 [DEBUG][       Thread-612841][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:55:09,044 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:55:09,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-07-01 17:55:09,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-07-01 17:55:09,060 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:55:09,060 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:55:09,060 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:55:09,068 [DEBUG][       Thread-612841][   transport.py][1871] : EOF in transport thread
2025-07-01 17:55:16,974 [DEBUG][Thread-612844 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:55:19,070 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:55:19,071 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:55:19,071 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:55:19,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-07-01 17:55:19,558 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 55, 5), 10.24, 49.67, 0.0, 33.35, 12.39, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:55:19,558 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:55:05
2025-07-01 17:55:19,642 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:55:19,648 [DEBUG][       Thread-612845][   transport.py][1871] : starting thread (client mode): 0x8154190
2025-07-01 17:55:19,648 [DEBUG][       Thread-612845][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:55:19,663 [DEBUG][       Thread-612845][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:55:19,663 [ INFO][       Thread-612845][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:55:19,664 [DEBUG][       Thread-612845][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:55:19,664 [DEBUG][       Thread-612845][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:55:19,665 [DEBUG][       Thread-612845][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:55:19,665 [DEBUG][       Thread-612845][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:55:19,665 [DEBUG][       Thread-612845][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:55:19,665 [DEBUG][       Thread-612845][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:55:19,665 [DEBUG][       Thread-612845][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:55:19,665 [DEBUG][       Thread-612845][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:55:19,665 [DEBUG][       Thread-612845][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:55:19,665 [DEBUG][       Thread-612845][   transport.py][1871] : client lang: <none>
2025-07-01 17:55:19,665 [DEBUG][       Thread-612845][   transport.py][1871] : server lang: <none>
2025-07-01 17:55:19,665 [DEBUG][       Thread-612845][   transport.py][1871] : kex follows: False
2025-07-01 17:55:19,665 [DEBUG][       Thread-612845][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:55:19,665 [DEBUG][       Thread-612845][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:55:19,665 [DEBUG][       Thread-612845][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:55:19,665 [DEBUG][       Thread-612845][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:55:19,665 [DEBUG][       Thread-612845][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:55:19,665 [DEBUG][       Thread-612845][   transport.py][1871] : Compression: none
2025-07-01 17:55:19,665 [DEBUG][       Thread-612845][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:55:19,674 [DEBUG][       Thread-612845][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:55:19,674 [DEBUG][       Thread-612845][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:55:19,675 [DEBUG][       Thread-612845][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:55:19,675 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:55:19,675 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:55:19,676 [DEBUG][       Thread-612845][   transport.py][1871] : userauth is OK
2025-07-01 17:55:19,688 [ INFO][       Thread-612845][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:55:19,689 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:55:20,739 [DEBUG][       Thread-612845][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:55:20,739 [DEBUG][       Thread-612845][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:55:20,781 [DEBUG][       Thread-612845][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:55:20,781 [DEBUG][       Thread-612845][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:55:20,785 [DEBUG][       Thread-612845][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:55:20,796 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:55:20,797 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:55:20,799 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:55:20,801 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:55:20,807 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:55:20,809 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:55:20,809 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:55:20,810 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:55:20,810 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.663131 -999.00  +12.30  30.50     54   +3.30 1 2 2 1 1   765    0 8.28 -26.04 ----- 29.1 30.5 18.9 38.0 12.9 -15.9 12.7 -15.9 12.6 -15.3 12.8 -15.0
2025-07-01 17:55:20,810 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:55:20,810 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:55:20,810 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.663131
2025-07-01 17:55:20,810 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:55:20,811 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:55:20,811 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:55:20,811 [DEBUG][       Thread-612845][   transport.py][1871] : EOF in transport thread
2025-07-01 17:55:20,811 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:55:20,812 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:55:20,812 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:55:05', tmtdew=10.24, humidity=49.67, cloud=0.0, wind=33.35, temperature=12.39, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:54:54.518', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:55:20,895 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:55:20,906 [DEBUG][       Thread-612848][   transport.py][1871] : starting thread (client mode): 0x81e7400
2025-07-01 17:55:20,906 [DEBUG][       Thread-612848][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:55:20,922 [DEBUG][       Thread-612848][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:55:20,922 [ INFO][       Thread-612848][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:55:20,929 [DEBUG][       Thread-612848][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:55:20,929 [DEBUG][       Thread-612848][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:55:20,929 [DEBUG][       Thread-612848][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:55:20,929 [DEBUG][       Thread-612848][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:55:20,930 [DEBUG][       Thread-612848][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:55:20,930 [DEBUG][       Thread-612848][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:55:20,930 [DEBUG][       Thread-612848][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:55:20,930 [DEBUG][       Thread-612848][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:55:20,930 [DEBUG][       Thread-612848][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:55:20,930 [DEBUG][       Thread-612848][   transport.py][1871] : client lang: <none>
2025-07-01 17:55:20,930 [DEBUG][       Thread-612848][   transport.py][1871] : server lang: <none>
2025-07-01 17:55:20,930 [DEBUG][       Thread-612848][   transport.py][1871] : kex follows: False
2025-07-01 17:55:20,930 [DEBUG][       Thread-612848][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:55:20,930 [DEBUG][       Thread-612848][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:55:20,930 [DEBUG][       Thread-612848][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:55:20,930 [DEBUG][       Thread-612848][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:55:20,930 [DEBUG][       Thread-612848][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:55:20,930 [DEBUG][       Thread-612848][   transport.py][1871] : Compression: none
2025-07-01 17:55:20,930 [DEBUG][       Thread-612848][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:55:20,986 [DEBUG][       Thread-612848][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:55:20,987 [DEBUG][       Thread-612848][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:55:20,987 [DEBUG][       Thread-612848][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:55:20,988 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:55:20,988 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:55:21,044 [DEBUG][       Thread-612848][   transport.py][1871] : userauth is OK
2025-07-01 17:55:21,044 [DEBUG][       Thread-612848][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:55:21,044 [DEBUG][       Thread-612848][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:55:21,044 [DEBUG][       Thread-612848][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:55:21,045 [DEBUG][       Thread-612848][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:55:21,064 [ INFO][       Thread-612848][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:55:21,064 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:55:21,065 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:55:22,117 [DEBUG][       Thread-612848][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:55:22,117 [DEBUG][       Thread-612848][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:55:22,168 [DEBUG][       Thread-612848][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:55:22,168 [DEBUG][       Thread-612848][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:55:22,178 [DEBUG][       Thread-612848][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:55:22,187 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:55:22,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')
2025-07-01 17:55:22,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-07-01 17:55:22,205 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:55:22,205 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:55:22,206 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:55:22,214 [DEBUG][       Thread-612848][   transport.py][1871] : EOF in transport thread
2025-07-01 17:55:25,995 [DEBUG][Thread-612850 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:55:32,216 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:55:32,217 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:55:32,217 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:55:32,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-07-01 17:55:32,687 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 55, 5), 10.24, 49.67, 0.0, 33.35, 12.39, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:55:32,687 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:55:05
2025-07-01 17:55:32,771 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:55:32,777 [DEBUG][       Thread-612851][   transport.py][1871] : starting thread (client mode): 0x81e4ee0
2025-07-01 17:55:32,777 [DEBUG][       Thread-612851][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:55:32,797 [DEBUG][       Thread-612851][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:55:32,797 [ INFO][       Thread-612851][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:55:32,801 [DEBUG][       Thread-612851][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:55:32,801 [DEBUG][       Thread-612851][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:55:32,801 [DEBUG][       Thread-612851][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:55:32,801 [DEBUG][       Thread-612851][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:55:32,801 [DEBUG][       Thread-612851][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:55:32,801 [DEBUG][       Thread-612851][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:55:32,801 [DEBUG][       Thread-612851][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:55:32,801 [DEBUG][       Thread-612851][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:55:32,801 [DEBUG][       Thread-612851][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:55:32,801 [DEBUG][       Thread-612851][   transport.py][1871] : client lang: <none>
2025-07-01 17:55:32,801 [DEBUG][       Thread-612851][   transport.py][1871] : server lang: <none>
2025-07-01 17:55:32,801 [DEBUG][       Thread-612851][   transport.py][1871] : kex follows: False
2025-07-01 17:55:32,801 [DEBUG][       Thread-612851][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:55:32,801 [DEBUG][       Thread-612851][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:55:32,801 [DEBUG][       Thread-612851][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:55:32,801 [DEBUG][       Thread-612851][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:55:32,801 [DEBUG][       Thread-612851][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:55:32,801 [DEBUG][       Thread-612851][   transport.py][1871] : Compression: none
2025-07-01 17:55:32,801 [DEBUG][       Thread-612851][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:55:32,818 [DEBUG][       Thread-612851][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:55:32,818 [DEBUG][       Thread-612851][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:55:32,819 [DEBUG][       Thread-612851][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:55:32,819 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:55:32,819 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:55:32,820 [DEBUG][       Thread-612851][   transport.py][1871] : userauth is OK
2025-07-01 17:55:32,833 [ INFO][       Thread-612851][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:55:32,834 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:55:33,512 [DEBUG][       Thread-612851][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:55:33,512 [DEBUG][       Thread-612851][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:55:33,552 [DEBUG][       Thread-612851][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:55:33,553 [DEBUG][       Thread-612851][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:55:33,555 [DEBUG][       Thread-612851][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:55:33,569 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:55:33,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:55:33,571 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:55:33,573 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:55:33,577 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:55:33,578 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:55:33,578 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:55:33,579 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:55:33,579 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.663131 -999.00  +12.30  30.50     54   +3.30 1 2 2 1 1   765    0 8.28 -26.04 ----- 29.1 30.5 18.9 38.0 12.9 -15.9 12.7 -15.9 12.6 -15.3 12.8 -15.0
2025-07-01 17:55:33,579 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:55:33,579 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:55:33,579 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.663131
2025-07-01 17:55:33,580 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:55:33,580 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:55:33,580 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:55:33,581 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:55:33,581 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:55:33,581 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:55:05', tmtdew=10.24, humidity=49.67, cloud=0.0, wind=33.35, temperature=12.39, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:54:54.518', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:55:33,581 [DEBUG][       Thread-612851][   transport.py][1871] : EOF in transport thread
2025-07-01 17:55:33,664 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:55:33,676 [DEBUG][       Thread-612854][   transport.py][1871] : starting thread (client mode): 0x81565c0
2025-07-01 17:55:33,676 [DEBUG][       Thread-612854][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:55:33,693 [DEBUG][       Thread-612854][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:55:33,693 [ INFO][       Thread-612854][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:55:33,701 [DEBUG][       Thread-612854][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:55:33,701 [DEBUG][       Thread-612854][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:55:33,701 [DEBUG][       Thread-612854][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:55:33,701 [DEBUG][       Thread-612854][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:55:33,701 [DEBUG][       Thread-612854][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:55:33,701 [DEBUG][       Thread-612854][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:55:33,701 [DEBUG][       Thread-612854][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:55:33,701 [DEBUG][       Thread-612854][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:55:33,701 [DEBUG][       Thread-612854][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:55:33,701 [DEBUG][       Thread-612854][   transport.py][1871] : client lang: <none>
2025-07-01 17:55:33,701 [DEBUG][       Thread-612854][   transport.py][1871] : server lang: <none>
2025-07-01 17:55:33,701 [DEBUG][       Thread-612854][   transport.py][1871] : kex follows: False
2025-07-01 17:55:33,701 [DEBUG][       Thread-612854][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:55:33,701 [DEBUG][       Thread-612854][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:55:33,701 [DEBUG][       Thread-612854][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:55:33,702 [DEBUG][       Thread-612854][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:55:33,702 [DEBUG][       Thread-612854][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:55:33,702 [DEBUG][       Thread-612854][   transport.py][1871] : Compression: none
2025-07-01 17:55:33,702 [DEBUG][       Thread-612854][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:55:33,759 [DEBUG][       Thread-612854][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:55:33,760 [DEBUG][       Thread-612854][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:55:33,761 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:55:33,761 [DEBUG][       Thread-612854][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:55:33,762 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:55:33,822 [DEBUG][       Thread-612854][   transport.py][1871] : userauth is OK
2025-07-01 17:55:33,823 [DEBUG][       Thread-612854][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:55:33,823 [DEBUG][       Thread-612854][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:55:33,823 [DEBUG][       Thread-612854][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:55:33,823 [DEBUG][       Thread-612854][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:55:33,844 [ INFO][       Thread-612854][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:55:33,844 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:55:33,844 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:55:34,952 [DEBUG][       Thread-612854][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:55:34,952 [DEBUG][       Thread-612854][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:55:35,000 [DEBUG][       Thread-612854][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:55:35,000 [DEBUG][       Thread-612854][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:55:35,009 [DEBUG][       Thread-612854][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:55:35,018 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:55:35,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-07-01 17:55:35,020 [DEBUG][Thread-612856 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:55:35,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-07-01 17:55:35,036 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:55:35,036 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:55:35,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:55:35,045 [DEBUG][       Thread-612854][   transport.py][1871] : EOF in transport thread
2025-07-01 17:55:41,715 [DEBUG][Thread-612857 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:55:44,041 [DEBUG][Thread-612858 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:55:45,047 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:55:45,047 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:55:45,047 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:55:45,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-07-01 17:55:45,529 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 55, 37), 10.23, 49.69, 0.0, 37.16, 12.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:55:45,529 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:55:37
2025-07-01 17:55:45,613 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:55:45,617 [DEBUG][       Thread-612859][   transport.py][1871] : starting thread (client mode): 0x8155990
2025-07-01 17:55:45,617 [DEBUG][       Thread-612859][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:55:45,637 [DEBUG][       Thread-612859][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:55:45,637 [ INFO][       Thread-612859][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:55:45,640 [DEBUG][       Thread-612859][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:55:45,640 [DEBUG][       Thread-612859][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:55:45,640 [DEBUG][       Thread-612859][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:55:45,640 [DEBUG][       Thread-612859][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:55:45,640 [DEBUG][       Thread-612859][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:55:45,641 [DEBUG][       Thread-612859][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:55:45,641 [DEBUG][       Thread-612859][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:55:45,641 [DEBUG][       Thread-612859][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:55:45,641 [DEBUG][       Thread-612859][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:55:45,641 [DEBUG][       Thread-612859][   transport.py][1871] : client lang: <none>
2025-07-01 17:55:45,641 [DEBUG][       Thread-612859][   transport.py][1871] : server lang: <none>
2025-07-01 17:55:45,641 [DEBUG][       Thread-612859][   transport.py][1871] : kex follows: False
2025-07-01 17:55:45,641 [DEBUG][       Thread-612859][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:55:45,641 [DEBUG][       Thread-612859][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:55:45,641 [DEBUG][       Thread-612859][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:55:45,641 [DEBUG][       Thread-612859][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:55:45,641 [DEBUG][       Thread-612859][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:55:45,641 [DEBUG][       Thread-612859][   transport.py][1871] : Compression: none
2025-07-01 17:55:45,641 [DEBUG][       Thread-612859][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:55:45,658 [DEBUG][       Thread-612859][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:55:45,658 [DEBUG][       Thread-612859][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:55:45,659 [DEBUG][       Thread-612859][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:55:45,659 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:55:45,659 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:55:45,660 [DEBUG][       Thread-612859][   transport.py][1871] : userauth is OK
2025-07-01 17:55:45,685 [ INFO][       Thread-612859][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:55:45,686 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:55:46,313 [DEBUG][       Thread-612859][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:55:46,313 [DEBUG][       Thread-612859][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:55:46,356 [DEBUG][       Thread-612859][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:55:46,356 [DEBUG][       Thread-612859][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:55:46,359 [DEBUG][       Thread-612859][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:55:46,371 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:55:46,371 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:55:46,372 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:55:46,373 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:55:46,375 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:55:46,376 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:55:46,376 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:55:46,376 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:55:46,376 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.663478 -999.00  +12.30  23.53     54   +3.30 1 2 1 1 1   754    0 8.26 -27.84 ----- 22.2 23.5 14.8 34.3 12.9 -15.8 12.7 -15.9 12.6 -15.2 12.9 -15.2
2025-07-01 17:55:46,376 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:55:46,376 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:55:46,376 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.663478
2025-07-01 17:55:46,376 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:55:46,376 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:55:46,376 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:55:46,376 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:55:46,376 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:55:46,376 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:55:37', tmtdew=10.23, humidity=49.69, cloud=0.0, wind=37.16, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:55:24.499', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:55:46,377 [DEBUG][       Thread-612859][   transport.py][1871] : EOF in transport thread
2025-07-01 17:55:46,447 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:55:46,457 [DEBUG][       Thread-612862][   transport.py][1871] : starting thread (client mode): 0x81e4910
2025-07-01 17:55:46,457 [DEBUG][       Thread-612862][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:55:46,474 [DEBUG][       Thread-612862][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:55:46,474 [ INFO][       Thread-612862][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:55:46,485 [DEBUG][       Thread-612862][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:55:46,485 [DEBUG][       Thread-612862][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:55:46,485 [DEBUG][       Thread-612862][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:55:46,485 [DEBUG][       Thread-612862][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:55:46,485 [DEBUG][       Thread-612862][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:55:46,485 [DEBUG][       Thread-612862][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:55:46,485 [DEBUG][       Thread-612862][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:55:46,485 [DEBUG][       Thread-612862][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:55:46,485 [DEBUG][       Thread-612862][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:55:46,485 [DEBUG][       Thread-612862][   transport.py][1871] : client lang: <none>
2025-07-01 17:55:46,485 [DEBUG][       Thread-612862][   transport.py][1871] : server lang: <none>
2025-07-01 17:55:46,485 [DEBUG][       Thread-612862][   transport.py][1871] : kex follows: False
2025-07-01 17:55:46,485 [DEBUG][       Thread-612862][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:55:46,485 [DEBUG][       Thread-612862][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:55:46,486 [DEBUG][       Thread-612862][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:55:46,486 [DEBUG][       Thread-612862][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:55:46,486 [DEBUG][       Thread-612862][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:55:46,486 [DEBUG][       Thread-612862][   transport.py][1871] : Compression: none
2025-07-01 17:55:46,486 [DEBUG][       Thread-612862][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:55:46,538 [DEBUG][       Thread-612862][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:55:46,539 [DEBUG][       Thread-612862][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:55:46,540 [DEBUG][       Thread-612862][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:55:46,540 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:55:46,541 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:55:46,594 [DEBUG][       Thread-612862][   transport.py][1871] : userauth is OK
2025-07-01 17:55:46,594 [DEBUG][       Thread-612862][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:55:46,594 [DEBUG][       Thread-612862][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:55:46,595 [DEBUG][       Thread-612862][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:55:46,595 [DEBUG][       Thread-612862][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:55:46,613 [ INFO][       Thread-612862][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:55:46,613 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:55:46,614 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:55:47,685 [DEBUG][       Thread-612862][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:55:47,685 [DEBUG][       Thread-612862][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:55:47,736 [DEBUG][       Thread-612862][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:55:47,736 [DEBUG][       Thread-612862][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:55:47,745 [DEBUG][       Thread-612862][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:55:47,754 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:55:47,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-07-01 17:55:47,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-07-01 17:55:47,772 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:55:47,772 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:55:47,773 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:55:47,781 [DEBUG][       Thread-612862][   transport.py][1871] : EOF in transport thread
2025-07-01 17:55:53,065 [DEBUG][Thread-612864 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:55:57,783 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:55:57,784 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:55:57,793 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:55:57,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-07-01 17:55:58,263 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 55, 37), 10.23, 49.69, 0.0, 37.16, 12.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:55:58,264 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:55:37
2025-07-01 17:55:58,348 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:55:58,353 [DEBUG][       Thread-612865][   transport.py][1871] : starting thread (client mode): 0x81e4f70
2025-07-01 17:55:58,354 [DEBUG][       Thread-612865][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:55:58,372 [DEBUG][       Thread-612865][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:55:58,373 [ INFO][       Thread-612865][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:55:58,376 [DEBUG][       Thread-612865][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:55:58,376 [DEBUG][       Thread-612865][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:55:58,376 [DEBUG][       Thread-612865][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:55:58,376 [DEBUG][       Thread-612865][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:55:58,376 [DEBUG][       Thread-612865][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:55:58,376 [DEBUG][       Thread-612865][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:55:58,376 [DEBUG][       Thread-612865][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:55:58,376 [DEBUG][       Thread-612865][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:55:58,376 [DEBUG][       Thread-612865][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:55:58,376 [DEBUG][       Thread-612865][   transport.py][1871] : client lang: <none>
2025-07-01 17:55:58,376 [DEBUG][       Thread-612865][   transport.py][1871] : server lang: <none>
2025-07-01 17:55:58,376 [DEBUG][       Thread-612865][   transport.py][1871] : kex follows: False
2025-07-01 17:55:58,376 [DEBUG][       Thread-612865][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:55:58,376 [DEBUG][       Thread-612865][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:55:58,376 [DEBUG][       Thread-612865][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:55:58,376 [DEBUG][       Thread-612865][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:55:58,376 [DEBUG][       Thread-612865][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:55:58,376 [DEBUG][       Thread-612865][   transport.py][1871] : Compression: none
2025-07-01 17:55:58,376 [DEBUG][       Thread-612865][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:55:58,393 [DEBUG][       Thread-612865][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:55:58,393 [DEBUG][       Thread-612865][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:55:58,394 [DEBUG][       Thread-612865][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:55:58,394 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:55:58,394 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:55:58,395 [DEBUG][       Thread-612865][   transport.py][1871] : userauth is OK
2025-07-01 17:55:58,420 [ INFO][       Thread-612865][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:55:58,421 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:55:59,098 [DEBUG][       Thread-612865][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:55:59,098 [DEBUG][       Thread-612865][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:55:59,141 [DEBUG][       Thread-612865][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:55:59,141 [DEBUG][       Thread-612865][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:55:59,144 [DEBUG][       Thread-612865][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:55:59,159 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:55:59,159 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:55:59,161 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:55:59,163 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:55:59,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:55:59,171 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:55:59,171 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:55:59,172 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:55:59,172 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.663478 -999.00  +12.30  23.53     54   +3.30 1 2 1 1 1   754    0 8.26 -27.84 ----- 22.2 23.5 14.8 34.3 12.9 -15.8 12.7 -15.9 12.6 -15.2 12.9 -15.2
2025-07-01 17:55:59,172 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:55:59,172 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:55:59,173 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.663478
2025-07-01 17:55:59,173 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:55:59,174 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:55:59,174 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:55:59,174 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:55:59,174 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:55:59,174 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:55:37', tmtdew=10.23, humidity=49.69, cloud=0.0, wind=37.16, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:55:24.499', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:55:59,175 [DEBUG][       Thread-612865][   transport.py][1871] : EOF in transport thread
2025-07-01 17:55:59,257 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:55:59,268 [DEBUG][       Thread-612868][   transport.py][1871] : starting thread (client mode): 0x8393790
2025-07-01 17:55:59,268 [DEBUG][       Thread-612868][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:55:59,283 [DEBUG][       Thread-612868][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:55:59,283 [ INFO][       Thread-612868][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:55:59,290 [DEBUG][       Thread-612868][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:55:59,290 [DEBUG][       Thread-612868][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:55:59,290 [DEBUG][       Thread-612868][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:55:59,290 [DEBUG][       Thread-612868][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:55:59,290 [DEBUG][       Thread-612868][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:55:59,290 [DEBUG][       Thread-612868][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:55:59,291 [DEBUG][       Thread-612868][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:55:59,291 [DEBUG][       Thread-612868][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:55:59,291 [DEBUG][       Thread-612868][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:55:59,291 [DEBUG][       Thread-612868][   transport.py][1871] : client lang: <none>
2025-07-01 17:55:59,291 [DEBUG][       Thread-612868][   transport.py][1871] : server lang: <none>
2025-07-01 17:55:59,291 [DEBUG][       Thread-612868][   transport.py][1871] : kex follows: False
2025-07-01 17:55:59,291 [DEBUG][       Thread-612868][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:55:59,291 [DEBUG][       Thread-612868][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:55:59,291 [DEBUG][       Thread-612868][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:55:59,291 [DEBUG][       Thread-612868][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:55:59,291 [DEBUG][       Thread-612868][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:55:59,291 [DEBUG][       Thread-612868][   transport.py][1871] : Compression: none
2025-07-01 17:55:59,291 [DEBUG][       Thread-612868][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:55:59,350 [DEBUG][       Thread-612868][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:55:59,351 [DEBUG][       Thread-612868][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:55:59,352 [DEBUG][       Thread-612868][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:55:59,352 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:55:59,353 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:55:59,406 [DEBUG][       Thread-612868][   transport.py][1871] : userauth is OK
2025-07-01 17:55:59,406 [DEBUG][       Thread-612868][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:55:59,406 [DEBUG][       Thread-612868][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:55:59,406 [DEBUG][       Thread-612868][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:55:59,406 [DEBUG][       Thread-612868][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:55:59,429 [ INFO][       Thread-612868][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:55:59,430 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:55:59,430 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:56:00,449 [DEBUG][       Thread-612868][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:56:00,449 [DEBUG][       Thread-612868][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:56:00,502 [DEBUG][       Thread-612868][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:56:00,502 [DEBUG][       Thread-612868][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:56:00,511 [DEBUG][       Thread-612868][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:56:00,520 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:56:00,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-07-01 17:56:00,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') -> 00000000
2025-07-01 17:56:00,539 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:56:00,539 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:56:00,540 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:56:00,548 [DEBUG][       Thread-612868][   transport.py][1871] : EOF in transport thread
2025-07-01 17:56:02,099 [DEBUG][Thread-612870 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:56:10,550 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:56:10,550 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:56:10,550 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:56:10,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-07-01 17:56:11,055 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 55, 37), 10.23, 49.69, 0.0, 37.16, 12.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:56:11,055 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:55:37
2025-07-01 17:56:11,117 [DEBUG][Thread-612871 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:56:11,146 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:56:11,150 [DEBUG][       Thread-612872][   transport.py][1871] : starting thread (client mode): 0x8154b20
2025-07-01 17:56:11,150 [DEBUG][       Thread-612872][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:56:11,171 [DEBUG][       Thread-612872][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:56:11,171 [ INFO][       Thread-612872][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:56:11,173 [DEBUG][       Thread-612872][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:56:11,173 [DEBUG][       Thread-612872][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:56:11,173 [DEBUG][       Thread-612872][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:56:11,173 [DEBUG][       Thread-612872][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:56:11,173 [DEBUG][       Thread-612872][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:56:11,173 [DEBUG][       Thread-612872][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:56:11,173 [DEBUG][       Thread-612872][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:56:11,173 [DEBUG][       Thread-612872][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:56:11,173 [DEBUG][       Thread-612872][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:56:11,173 [DEBUG][       Thread-612872][   transport.py][1871] : client lang: <none>
2025-07-01 17:56:11,173 [DEBUG][       Thread-612872][   transport.py][1871] : server lang: <none>
2025-07-01 17:56:11,173 [DEBUG][       Thread-612872][   transport.py][1871] : kex follows: False
2025-07-01 17:56:11,173 [DEBUG][       Thread-612872][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:56:11,173 [DEBUG][       Thread-612872][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:56:11,173 [DEBUG][       Thread-612872][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:56:11,173 [DEBUG][       Thread-612872][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:56:11,173 [DEBUG][       Thread-612872][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:56:11,173 [DEBUG][       Thread-612872][   transport.py][1871] : Compression: none
2025-07-01 17:56:11,173 [DEBUG][       Thread-612872][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:56:11,183 [DEBUG][       Thread-612872][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:56:11,183 [DEBUG][       Thread-612872][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:56:11,183 [DEBUG][       Thread-612872][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:56:11,183 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:56:11,183 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:56:11,184 [DEBUG][       Thread-612872][   transport.py][1871] : userauth is OK
2025-07-01 17:56:11,207 [ INFO][       Thread-612872][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:56:11,207 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:56:11,846 [DEBUG][       Thread-612872][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:56:11,846 [DEBUG][       Thread-612872][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:56:11,889 [DEBUG][       Thread-612872][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:56:11,889 [DEBUG][       Thread-612872][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:56:11,892 [DEBUG][       Thread-612872][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:56:11,906 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:56:11,906 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:56:11,908 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:56:11,910 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:56:11,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:56:11,918 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:56:11,918 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:56:11,919 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:56:11,919 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.663826 -999.00  +12.20  20.99     54   +3.30 1 2 1 1 1   743    0 8.43 -26.84 ----- 29.0 21.0 3.8 35.6 12.9 -15.9 12.7 -15.7 12.5 -15.2 12.9 -15.0
2025-07-01 17:56:11,919 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:56:11,919 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:56:11,920 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.663826
2025-07-01 17:56:11,920 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:56:11,921 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:56:11,921 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:56:11,921 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:56:11,921 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:56:11,921 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:55:37', tmtdew=10.23, humidity=49.69, cloud=0.0, wind=37.16, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:55:54.566', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:56:11,922 [DEBUG][       Thread-612872][   transport.py][1871] : EOF in transport thread
2025-07-01 17:56:12,005 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:56:12,015 [DEBUG][       Thread-612875][   transport.py][1871] : starting thread (client mode): 0x83938e0
2025-07-01 17:56:12,015 [DEBUG][       Thread-612875][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:56:12,030 [DEBUG][       Thread-612875][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:56:12,031 [ INFO][       Thread-612875][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:56:12,038 [DEBUG][       Thread-612875][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:56:12,038 [DEBUG][       Thread-612875][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:56:12,038 [DEBUG][       Thread-612875][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:56:12,038 [DEBUG][       Thread-612875][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:56:12,038 [DEBUG][       Thread-612875][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:56:12,038 [DEBUG][       Thread-612875][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:56:12,038 [DEBUG][       Thread-612875][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:56:12,038 [DEBUG][       Thread-612875][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:56:12,039 [DEBUG][       Thread-612875][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:56:12,039 [DEBUG][       Thread-612875][   transport.py][1871] : client lang: <none>
2025-07-01 17:56:12,039 [DEBUG][       Thread-612875][   transport.py][1871] : server lang: <none>
2025-07-01 17:56:12,039 [DEBUG][       Thread-612875][   transport.py][1871] : kex follows: False
2025-07-01 17:56:12,039 [DEBUG][       Thread-612875][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:56:12,039 [DEBUG][       Thread-612875][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:56:12,039 [DEBUG][       Thread-612875][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:56:12,039 [DEBUG][       Thread-612875][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:56:12,039 [DEBUG][       Thread-612875][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:56:12,039 [DEBUG][       Thread-612875][   transport.py][1871] : Compression: none
2025-07-01 17:56:12,039 [DEBUG][       Thread-612875][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:56:12,101 [DEBUG][       Thread-612875][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:56:12,102 [DEBUG][       Thread-612875][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:56:12,102 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:56:12,103 [DEBUG][       Thread-612875][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:56:12,103 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:56:12,157 [DEBUG][       Thread-612875][   transport.py][1871] : userauth is OK
2025-07-01 17:56:12,158 [DEBUG][       Thread-612875][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:56:12,158 [DEBUG][       Thread-612875][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:56:12,158 [DEBUG][       Thread-612875][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:56:12,158 [DEBUG][       Thread-612875][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:56:12,187 [ INFO][       Thread-612875][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:56:12,187 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:56:12,188 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:56:13,246 [DEBUG][       Thread-612875][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:56:13,246 [DEBUG][       Thread-612875][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:56:13,296 [DEBUG][       Thread-612875][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:56:13,296 [DEBUG][       Thread-612875][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:56:13,305 [DEBUG][       Thread-612875][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:56:13,314 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:56:13,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-07-01 17:56:13,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-07-01 17:56:13,332 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:56:13,332 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:56:13,332 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:56:13,340 [DEBUG][       Thread-612875][   transport.py][1871] : EOF in transport thread
2025-07-01 17:56:20,143 [DEBUG][Thread-612877 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:56:23,343 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:56:23,343 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:56:23,343 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:56:23,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-07-01 17:56:23,817 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 56, 9), 10.23, 49.69, 0.0, 38.71, 12.39, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:56:23,817 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:56:09
2025-07-01 17:56:23,903 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:56:23,909 [DEBUG][       Thread-612878][   transport.py][1871] : starting thread (client mode): 0x81545b0
2025-07-01 17:56:23,909 [DEBUG][       Thread-612878][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:56:23,935 [DEBUG][       Thread-612878][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:56:23,935 [ INFO][       Thread-612878][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:56:23,940 [DEBUG][       Thread-612878][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:56:23,940 [DEBUG][       Thread-612878][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:56:23,940 [DEBUG][       Thread-612878][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:56:23,940 [DEBUG][       Thread-612878][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:56:23,940 [DEBUG][       Thread-612878][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:56:23,940 [DEBUG][       Thread-612878][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:56:23,940 [DEBUG][       Thread-612878][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:56:23,940 [DEBUG][       Thread-612878][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:56:23,940 [DEBUG][       Thread-612878][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:56:23,940 [DEBUG][       Thread-612878][   transport.py][1871] : client lang: <none>
2025-07-01 17:56:23,940 [DEBUG][       Thread-612878][   transport.py][1871] : server lang: <none>
2025-07-01 17:56:23,940 [DEBUG][       Thread-612878][   transport.py][1871] : kex follows: False
2025-07-01 17:56:23,940 [DEBUG][       Thread-612878][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:56:23,940 [DEBUG][       Thread-612878][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:56:23,940 [DEBUG][       Thread-612878][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:56:23,940 [DEBUG][       Thread-612878][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:56:23,941 [DEBUG][       Thread-612878][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:56:23,941 [DEBUG][       Thread-612878][   transport.py][1871] : Compression: none
2025-07-01 17:56:23,941 [DEBUG][       Thread-612878][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:56:23,952 [DEBUG][       Thread-612878][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:56:23,953 [DEBUG][       Thread-612878][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:56:23,953 [DEBUG][       Thread-612878][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:56:23,953 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:56:23,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:56:23,955 [DEBUG][       Thread-612878][   transport.py][1871] : userauth is OK
2025-07-01 17:56:23,980 [ INFO][       Thread-612878][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:56:23,981 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:56:24,627 [DEBUG][       Thread-612878][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:56:24,627 [DEBUG][       Thread-612878][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:56:24,669 [DEBUG][       Thread-612878][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:56:24,669 [DEBUG][       Thread-612878][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:56:24,673 [DEBUG][       Thread-612878][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:56:24,687 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:56:24,687 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:56:24,689 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:56:24,691 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:56:24,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:56:24,698 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:56:24,698 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:56:24,699 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:56:24,699 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.663826 -999.00  +12.20  20.99     54   +3.30 1 2 1 1 1   743    0 8.43 -26.84 ----- 29.0 21.0 3.8 35.6 12.9 -15.9 12.7 -15.7 12.5 -15.2 12.9 -15.0
2025-07-01 17:56:24,699 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:56:24,699 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:56:24,699 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.663826
2025-07-01 17:56:24,700 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:56:24,700 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:56:24,701 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:56:24,701 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:56:24,701 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:56:24,701 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:56:09', tmtdew=10.23, humidity=49.69, cloud=0.0, wind=38.71, temperature=12.39, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:55:54.566', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:56:24,701 [DEBUG][       Thread-612878][   transport.py][1871] : EOF in transport thread
2025-07-01 17:56:24,784 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:56:24,796 [DEBUG][       Thread-612881][   transport.py][1871] : starting thread (client mode): 0x8393c40
2025-07-01 17:56:24,796 [DEBUG][       Thread-612881][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:56:24,812 [DEBUG][       Thread-612881][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:56:24,812 [ INFO][       Thread-612881][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:56:24,820 [DEBUG][       Thread-612881][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:56:24,820 [DEBUG][       Thread-612881][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:56:24,820 [DEBUG][       Thread-612881][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:56:24,820 [DEBUG][       Thread-612881][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:56:24,820 [DEBUG][       Thread-612881][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:56:24,820 [DEBUG][       Thread-612881][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:56:24,820 [DEBUG][       Thread-612881][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:56:24,820 [DEBUG][       Thread-612881][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:56:24,820 [DEBUG][       Thread-612881][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:56:24,820 [DEBUG][       Thread-612881][   transport.py][1871] : client lang: <none>
2025-07-01 17:56:24,820 [DEBUG][       Thread-612881][   transport.py][1871] : server lang: <none>
2025-07-01 17:56:24,820 [DEBUG][       Thread-612881][   transport.py][1871] : kex follows: False
2025-07-01 17:56:24,820 [DEBUG][       Thread-612881][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:56:24,820 [DEBUG][       Thread-612881][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:56:24,820 [DEBUG][       Thread-612881][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:56:24,820 [DEBUG][       Thread-612881][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:56:24,820 [DEBUG][       Thread-612881][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:56:24,820 [DEBUG][       Thread-612881][   transport.py][1871] : Compression: none
2025-07-01 17:56:24,820 [DEBUG][       Thread-612881][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:56:24,884 [DEBUG][       Thread-612881][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:56:24,885 [DEBUG][       Thread-612881][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:56:24,886 [DEBUG][       Thread-612881][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:56:24,886 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:56:24,887 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:56:24,941 [DEBUG][       Thread-612881][   transport.py][1871] : userauth is OK
2025-07-01 17:56:24,942 [DEBUG][       Thread-612881][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:56:24,942 [DEBUG][       Thread-612881][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:56:24,942 [DEBUG][       Thread-612881][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:56:24,942 [DEBUG][       Thread-612881][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:56:24,961 [ INFO][       Thread-612881][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:56:24,961 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:56:24,961 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:56:26,023 [DEBUG][       Thread-612881][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:56:26,024 [DEBUG][       Thread-612881][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:56:26,072 [DEBUG][       Thread-612881][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:56:26,072 [DEBUG][       Thread-612881][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:56:26,083 [DEBUG][       Thread-612881][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:56:26,096 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:56:26,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')
2025-07-01 17:56:26,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-07-01 17:56:26,115 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:56:26,115 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:56:26,115 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:56:26,123 [DEBUG][       Thread-612881][   transport.py][1871] : EOF in transport thread
2025-07-01 17:56:29,168 [DEBUG][Thread-612883 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:56:36,124 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:56:36,124 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:56:36,124 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:56:36,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-07-01 17:56:36,589 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 56, 9), 10.23, 49.69, 0.0, 38.71, 12.39, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:56:36,589 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:56:09
2025-07-01 17:56:36,674 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:56:36,678 [DEBUG][       Thread-612884][   transport.py][1871] : starting thread (client mode): 0x81e68c0
2025-07-01 17:56:36,678 [DEBUG][       Thread-612884][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:56:36,699 [DEBUG][       Thread-612884][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:56:36,699 [ INFO][       Thread-612884][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:56:36,702 [DEBUG][       Thread-612884][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:56:36,702 [DEBUG][       Thread-612884][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:56:36,702 [DEBUG][       Thread-612884][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:56:36,703 [DEBUG][       Thread-612884][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:56:36,703 [DEBUG][       Thread-612884][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:56:36,703 [DEBUG][       Thread-612884][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:56:36,703 [DEBUG][       Thread-612884][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:56:36,703 [DEBUG][       Thread-612884][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:56:36,703 [DEBUG][       Thread-612884][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:56:36,703 [DEBUG][       Thread-612884][   transport.py][1871] : client lang: <none>
2025-07-01 17:56:36,703 [DEBUG][       Thread-612884][   transport.py][1871] : server lang: <none>
2025-07-01 17:56:36,703 [DEBUG][       Thread-612884][   transport.py][1871] : kex follows: False
2025-07-01 17:56:36,703 [DEBUG][       Thread-612884][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:56:36,703 [DEBUG][       Thread-612884][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:56:36,703 [DEBUG][       Thread-612884][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:56:36,703 [DEBUG][       Thread-612884][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:56:36,703 [DEBUG][       Thread-612884][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:56:36,703 [DEBUG][       Thread-612884][   transport.py][1871] : Compression: none
2025-07-01 17:56:36,703 [DEBUG][       Thread-612884][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:56:36,719 [DEBUG][       Thread-612884][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:56:36,719 [DEBUG][       Thread-612884][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:56:36,720 [DEBUG][       Thread-612884][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:56:36,720 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:56:36,720 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:56:36,721 [DEBUG][       Thread-612884][   transport.py][1871] : userauth is OK
2025-07-01 17:56:36,746 [ INFO][       Thread-612884][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:56:36,747 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:56:37,404 [DEBUG][       Thread-612884][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:56:37,404 [DEBUG][       Thread-612884][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:56:37,445 [DEBUG][       Thread-612884][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:56:37,445 [DEBUG][       Thread-612884][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:56:37,449 [DEBUG][       Thread-612884][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:56:37,461 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:56:37,462 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:56:37,464 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:56:37,466 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:56:37,471 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:56:37,473 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:56:37,474 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:56:37,474 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:56:37,474 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.663826 -999.00  +12.20  20.99     54   +3.30 1 2 1 1 1   743    0 8.43 -26.84 ----- 29.0 21.0 3.8 35.6 12.9 -15.9 12.7 -15.7 12.5 -15.2 12.9 -15.0
2025-07-01 17:56:37,474 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:56:37,474 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:56:37,474 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.663826
2025-07-01 17:56:37,475 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:56:37,475 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:56:37,476 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:56:37,476 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:56:37,476 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:56:37,476 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:56:09', tmtdew=10.23, humidity=49.69, cloud=0.0, wind=38.71, temperature=12.39, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:55:54.566', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:56:37,477 [DEBUG][       Thread-612884][   transport.py][1871] : EOF in transport thread
2025-07-01 17:56:37,563 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:56:37,575 [DEBUG][       Thread-612887][   transport.py][1871] : starting thread (client mode): 0x8393c40
2025-07-01 17:56:37,575 [DEBUG][       Thread-612887][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:56:37,591 [DEBUG][       Thread-612887][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:56:37,591 [ INFO][       Thread-612887][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:56:37,600 [DEBUG][       Thread-612887][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:56:37,600 [DEBUG][       Thread-612887][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:56:37,600 [DEBUG][       Thread-612887][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:56:37,600 [DEBUG][       Thread-612887][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:56:37,600 [DEBUG][       Thread-612887][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:56:37,600 [DEBUG][       Thread-612887][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:56:37,600 [DEBUG][       Thread-612887][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:56:37,600 [DEBUG][       Thread-612887][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:56:37,600 [DEBUG][       Thread-612887][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:56:37,600 [DEBUG][       Thread-612887][   transport.py][1871] : client lang: <none>
2025-07-01 17:56:37,601 [DEBUG][       Thread-612887][   transport.py][1871] : server lang: <none>
2025-07-01 17:56:37,601 [DEBUG][       Thread-612887][   transport.py][1871] : kex follows: False
2025-07-01 17:56:37,601 [DEBUG][       Thread-612887][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:56:37,601 [DEBUG][       Thread-612887][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:56:37,601 [DEBUG][       Thread-612887][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:56:37,601 [DEBUG][       Thread-612887][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:56:37,601 [DEBUG][       Thread-612887][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:56:37,601 [DEBUG][       Thread-612887][   transport.py][1871] : Compression: none
2025-07-01 17:56:37,601 [DEBUG][       Thread-612887][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:56:37,661 [DEBUG][       Thread-612887][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:56:37,662 [DEBUG][       Thread-612887][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:56:37,663 [DEBUG][       Thread-612887][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:56:37,663 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:56:37,663 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:56:37,717 [DEBUG][       Thread-612887][   transport.py][1871] : userauth is OK
2025-07-01 17:56:37,718 [DEBUG][       Thread-612887][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:56:37,718 [DEBUG][       Thread-612887][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:56:37,718 [DEBUG][       Thread-612887][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:56:37,718 [DEBUG][       Thread-612887][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:56:37,737 [ INFO][       Thread-612887][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:56:37,737 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:56:37,738 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:56:38,201 [DEBUG][Thread-612889 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:56:38,782 [DEBUG][       Thread-612887][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:56:38,782 [DEBUG][       Thread-612887][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:56:38,833 [DEBUG][       Thread-612887][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:56:38,833 [DEBUG][       Thread-612887][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:56:38,842 [DEBUG][       Thread-612887][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:56:38,852 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:56:38,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')
2025-07-01 17:56:38,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-07-01 17:56:38,878 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:56:38,878 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:56:38,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:56:38,887 [DEBUG][       Thread-612887][   transport.py][1871] : EOF in transport thread
2025-07-01 17:56:41,766 [DEBUG][Thread-612890 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:56:47,227 [DEBUG][Thread-612891 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:56:48,889 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:56:48,890 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:56:48,890 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:56:48,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-07-01 17:56:49,364 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 56, 40), 10.24, 49.66, 0.0, 38.29, 12.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:56:49,364 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:56:40
2025-07-01 17:56:49,450 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:56:49,454 [DEBUG][       Thread-612892][   transport.py][1871] : starting thread (client mode): 0x81559f0
2025-07-01 17:56:49,454 [DEBUG][       Thread-612892][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:56:49,473 [DEBUG][       Thread-612892][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:56:49,473 [ INFO][       Thread-612892][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:56:49,477 [DEBUG][       Thread-612892][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:56:49,477 [DEBUG][       Thread-612892][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:56:49,477 [DEBUG][       Thread-612892][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:56:49,477 [DEBUG][       Thread-612892][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:56:49,477 [DEBUG][       Thread-612892][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:56:49,477 [DEBUG][       Thread-612892][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:56:49,477 [DEBUG][       Thread-612892][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:56:49,477 [DEBUG][       Thread-612892][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:56:49,477 [DEBUG][       Thread-612892][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:56:49,477 [DEBUG][       Thread-612892][   transport.py][1871] : client lang: <none>
2025-07-01 17:56:49,477 [DEBUG][       Thread-612892][   transport.py][1871] : server lang: <none>
2025-07-01 17:56:49,477 [DEBUG][       Thread-612892][   transport.py][1871] : kex follows: False
2025-07-01 17:56:49,477 [DEBUG][       Thread-612892][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:56:49,477 [DEBUG][       Thread-612892][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:56:49,477 [DEBUG][       Thread-612892][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:56:49,477 [DEBUG][       Thread-612892][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:56:49,477 [DEBUG][       Thread-612892][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:56:49,477 [DEBUG][       Thread-612892][   transport.py][1871] : Compression: none
2025-07-01 17:56:49,477 [DEBUG][       Thread-612892][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:56:49,495 [DEBUG][       Thread-612892][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:56:49,495 [DEBUG][       Thread-612892][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:56:49,496 [DEBUG][       Thread-612892][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:56:49,496 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:56:49,496 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:56:49,497 [DEBUG][       Thread-612892][   transport.py][1871] : userauth is OK
2025-07-01 17:56:49,522 [ INFO][       Thread-612892][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:56:49,522 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:56:50,170 [DEBUG][       Thread-612892][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:56:50,171 [DEBUG][       Thread-612892][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:56:50,213 [DEBUG][       Thread-612892][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:56:50,213 [DEBUG][       Thread-612892][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:56:50,216 [DEBUG][       Thread-612892][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:56:50,229 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:56:50,229 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:56:50,231 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:56:50,233 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:56:50,238 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:56:50,240 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:56:50,240 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:56:50,241 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:56:50,241 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.664173 -999.00  +12.20  16.22     54   +3.30 1 2 1 1 1   731    0 8.35 -24.77 ----- 26.7 16.2 9.9 32.0 12.9 -15.8 12.7 -15.8 12.5 -15.0 12.9 -15.1
2025-07-01 17:56:50,241 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:56:50,241 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:56:50,242 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.664173
2025-07-01 17:56:50,242 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:56:50,243 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:56:50,243 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:56:50,243 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:56:50,243 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:56:50,243 [DEBUG][       Thread-612892][   transport.py][1871] : EOF in transport thread
2025-07-01 17:56:50,243 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:56:40', tmtdew=10.24, humidity=49.66, cloud=0.0, wind=38.29, temperature=12.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:56:24.547', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:56:50,327 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:56:50,338 [DEBUG][       Thread-612895][   transport.py][1871] : starting thread (client mode): 0x81e5870
2025-07-01 17:56:50,338 [DEBUG][       Thread-612895][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:56:50,357 [DEBUG][       Thread-612895][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:56:50,357 [ INFO][       Thread-612895][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:56:50,367 [DEBUG][       Thread-612895][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:56:50,367 [DEBUG][       Thread-612895][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:56:50,367 [DEBUG][       Thread-612895][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:56:50,367 [DEBUG][       Thread-612895][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:56:50,367 [DEBUG][       Thread-612895][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:56:50,367 [DEBUG][       Thread-612895][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:56:50,367 [DEBUG][       Thread-612895][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:56:50,367 [DEBUG][       Thread-612895][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:56:50,367 [DEBUG][       Thread-612895][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:56:50,367 [DEBUG][       Thread-612895][   transport.py][1871] : client lang: <none>
2025-07-01 17:56:50,367 [DEBUG][       Thread-612895][   transport.py][1871] : server lang: <none>
2025-07-01 17:56:50,368 [DEBUG][       Thread-612895][   transport.py][1871] : kex follows: False
2025-07-01 17:56:50,368 [DEBUG][       Thread-612895][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:56:50,368 [DEBUG][       Thread-612895][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:56:50,368 [DEBUG][       Thread-612895][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:56:50,368 [DEBUG][       Thread-612895][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:56:50,368 [DEBUG][       Thread-612895][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:56:50,368 [DEBUG][       Thread-612895][   transport.py][1871] : Compression: none
2025-07-01 17:56:50,368 [DEBUG][       Thread-612895][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:56:50,429 [DEBUG][       Thread-612895][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:56:50,430 [DEBUG][       Thread-612895][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:56:50,430 [DEBUG][       Thread-612895][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:56:50,431 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:56:50,431 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:56:50,490 [DEBUG][       Thread-612895][   transport.py][1871] : userauth is OK
2025-07-01 17:56:50,490 [DEBUG][       Thread-612895][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:56:50,490 [DEBUG][       Thread-612895][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:56:50,490 [DEBUG][       Thread-612895][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:56:50,490 [DEBUG][       Thread-612895][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:56:50,513 [ INFO][       Thread-612895][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:56:50,513 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:56:50,514 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:56:51,522 [DEBUG][       Thread-612895][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:56:51,522 [DEBUG][       Thread-612895][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:56:51,572 [DEBUG][       Thread-612895][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:56:51,572 [DEBUG][       Thread-612895][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:56:51,582 [DEBUG][       Thread-612895][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:56:51,590 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:56:51,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-07-01 17:56:51,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-07-01 17:56:51,608 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:56:51,608 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:56:51,609 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:56:51,617 [DEBUG][       Thread-612895][   transport.py][1871] : EOF in transport thread
2025-07-01 17:56:56,251 [DEBUG][Thread-612897 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:57:01,619 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:57:01,620 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:57:01,620 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:57:01,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-07-01 17:57:02,102 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 56, 40), 10.24, 49.66, 0.0, 38.29, 12.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:57:02,102 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:56:40
2025-07-01 17:57:02,187 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:57:02,191 [DEBUG][       Thread-612898][   transport.py][1871] : starting thread (client mode): 0x81e60e0
2025-07-01 17:57:02,191 [DEBUG][       Thread-612898][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:57:02,212 [DEBUG][       Thread-612898][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:57:02,212 [ INFO][       Thread-612898][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:57:02,215 [DEBUG][       Thread-612898][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:57:02,215 [DEBUG][       Thread-612898][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:57:02,215 [DEBUG][       Thread-612898][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:57:02,215 [DEBUG][       Thread-612898][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:57:02,215 [DEBUG][       Thread-612898][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:57:02,215 [DEBUG][       Thread-612898][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:57:02,215 [DEBUG][       Thread-612898][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:57:02,215 [DEBUG][       Thread-612898][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:57:02,215 [DEBUG][       Thread-612898][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:57:02,215 [DEBUG][       Thread-612898][   transport.py][1871] : client lang: <none>
2025-07-01 17:57:02,215 [DEBUG][       Thread-612898][   transport.py][1871] : server lang: <none>
2025-07-01 17:57:02,215 [DEBUG][       Thread-612898][   transport.py][1871] : kex follows: False
2025-07-01 17:57:02,215 [DEBUG][       Thread-612898][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:57:02,215 [DEBUG][       Thread-612898][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:57:02,215 [DEBUG][       Thread-612898][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:57:02,215 [DEBUG][       Thread-612898][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:57:02,216 [DEBUG][       Thread-612898][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:57:02,216 [DEBUG][       Thread-612898][   transport.py][1871] : Compression: none
2025-07-01 17:57:02,216 [DEBUG][       Thread-612898][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:57:02,236 [DEBUG][       Thread-612898][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:57:02,236 [DEBUG][       Thread-612898][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:57:02,237 [DEBUG][       Thread-612898][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:57:02,237 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:57:02,237 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:57:02,238 [DEBUG][       Thread-612898][   transport.py][1871] : userauth is OK
2025-07-01 17:57:02,263 [ INFO][       Thread-612898][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:57:02,264 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:57:02,904 [DEBUG][       Thread-612898][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:57:02,904 [DEBUG][       Thread-612898][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:57:02,945 [DEBUG][       Thread-612898][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:57:02,945 [DEBUG][       Thread-612898][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:57:02,948 [DEBUG][       Thread-612898][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:57:02,961 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:57:02,961 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:57:02,963 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:57:02,965 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:57:02,970 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:57:02,972 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:57:02,972 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:57:02,973 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:57:02,973 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.664173 -999.00  +12.20  16.22     54   +3.30 1 2 1 1 1   731    0 8.35 -24.77 ----- 26.7 16.2 9.9 32.0 12.9 -15.8 12.7 -15.8 12.5 -15.0 12.9 -15.1
2025-07-01 17:57:02,973 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:57:02,973 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:57:02,973 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.664173
2025-07-01 17:57:02,974 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:57:02,974 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:57:02,975 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:57:02,975 [DEBUG][       Thread-612898][   transport.py][1871] : EOF in transport thread
2025-07-01 17:57:02,975 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:57:02,975 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:57:02,976 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:56:40', tmtdew=10.24, humidity=49.66, cloud=0.0, wind=38.29, temperature=12.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:56:24.547', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:57:03,059 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:57:03,073 [DEBUG][       Thread-612901][   transport.py][1871] : starting thread (client mode): 0x8393790
2025-07-01 17:57:03,073 [DEBUG][       Thread-612901][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:57:03,094 [DEBUG][       Thread-612901][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:57:03,094 [ INFO][       Thread-612901][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:57:03,103 [DEBUG][       Thread-612901][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:57:03,104 [DEBUG][       Thread-612901][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:57:03,104 [DEBUG][       Thread-612901][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:57:03,104 [DEBUG][       Thread-612901][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:57:03,104 [DEBUG][       Thread-612901][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:57:03,104 [DEBUG][       Thread-612901][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:57:03,104 [DEBUG][       Thread-612901][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:57:03,104 [DEBUG][       Thread-612901][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:57:03,104 [DEBUG][       Thread-612901][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:57:03,104 [DEBUG][       Thread-612901][   transport.py][1871] : client lang: <none>
2025-07-01 17:57:03,104 [DEBUG][       Thread-612901][   transport.py][1871] : server lang: <none>
2025-07-01 17:57:03,104 [DEBUG][       Thread-612901][   transport.py][1871] : kex follows: False
2025-07-01 17:57:03,104 [DEBUG][       Thread-612901][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:57:03,104 [DEBUG][       Thread-612901][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:57:03,104 [DEBUG][       Thread-612901][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:57:03,104 [DEBUG][       Thread-612901][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:57:03,105 [DEBUG][       Thread-612901][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:57:03,105 [DEBUG][       Thread-612901][   transport.py][1871] : Compression: none
2025-07-01 17:57:03,105 [DEBUG][       Thread-612901][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:57:03,161 [DEBUG][       Thread-612901][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:57:03,161 [DEBUG][       Thread-612901][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:57:03,162 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:57:03,162 [DEBUG][       Thread-612901][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:57:03,163 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:57:03,220 [DEBUG][       Thread-612901][   transport.py][1871] : userauth is OK
2025-07-01 17:57:03,220 [DEBUG][       Thread-612901][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:57:03,220 [DEBUG][       Thread-612901][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:57:03,220 [DEBUG][       Thread-612901][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:57:03,220 [DEBUG][       Thread-612901][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:57:03,239 [ INFO][       Thread-612901][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:57:03,240 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:57:03,240 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:57:04,278 [DEBUG][       Thread-612901][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:57:04,278 [DEBUG][       Thread-612901][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:57:04,333 [DEBUG][       Thread-612901][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:57:04,334 [DEBUG][       Thread-612901][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:57:04,346 [DEBUG][       Thread-612901][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:57:04,357 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:57:04,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-07-01 17:57:04,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') -> 00000000
2025-07-01 17:57:04,375 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:57:04,375 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:57:04,376 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:57:04,384 [DEBUG][       Thread-612901][   transport.py][1871] : EOF in transport thread
2025-07-01 17:57:05,285 [DEBUG][Thread-612903 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:57:14,305 [DEBUG][Thread-612904 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:57:14,384 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:57:14,384 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:57:14,384 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:57:14,384 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 17:57:14,893 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 56, 40), 10.24, 49.66, 0.0, 38.29, 12.42, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:57:14,893 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:56:40
2025-07-01 17:57:14,985 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:57:14,989 [DEBUG][       Thread-612905][   transport.py][1871] : starting thread (client mode): 0x81e4430
2025-07-01 17:57:14,989 [DEBUG][       Thread-612905][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:57:15,010 [DEBUG][       Thread-612905][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:57:15,010 [ INFO][       Thread-612905][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:57:15,011 [DEBUG][       Thread-612905][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:57:15,012 [DEBUG][       Thread-612905][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:57:15,012 [DEBUG][       Thread-612905][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:57:15,012 [DEBUG][       Thread-612905][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:57:15,012 [DEBUG][       Thread-612905][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:57:15,012 [DEBUG][       Thread-612905][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:57:15,012 [DEBUG][       Thread-612905][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:57:15,012 [DEBUG][       Thread-612905][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:57:15,012 [DEBUG][       Thread-612905][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:57:15,012 [DEBUG][       Thread-612905][   transport.py][1871] : client lang: <none>
2025-07-01 17:57:15,012 [DEBUG][       Thread-612905][   transport.py][1871] : server lang: <none>
2025-07-01 17:57:15,012 [DEBUG][       Thread-612905][   transport.py][1871] : kex follows: False
2025-07-01 17:57:15,012 [DEBUG][       Thread-612905][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:57:15,012 [DEBUG][       Thread-612905][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:57:15,012 [DEBUG][       Thread-612905][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:57:15,012 [DEBUG][       Thread-612905][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:57:15,012 [DEBUG][       Thread-612905][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:57:15,012 [DEBUG][       Thread-612905][   transport.py][1871] : Compression: none
2025-07-01 17:57:15,012 [DEBUG][       Thread-612905][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:57:15,019 [DEBUG][       Thread-612905][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:57:15,019 [DEBUG][       Thread-612905][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:57:15,019 [DEBUG][       Thread-612905][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:57:15,019 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:57:15,019 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:57:15,019 [DEBUG][       Thread-612905][   transport.py][1871] : userauth is OK
2025-07-01 17:57:15,033 [ INFO][       Thread-612905][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:57:15,034 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:57:15,685 [DEBUG][       Thread-612905][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:57:15,685 [DEBUG][       Thread-612905][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:57:15,729 [DEBUG][       Thread-612905][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:57:15,729 [DEBUG][       Thread-612905][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:57:15,732 [DEBUG][       Thread-612905][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:57:15,744 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:57:15,745 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:57:15,747 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:57:15,749 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:57:15,755 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:57:15,757 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:57:15,758 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:57:15,758 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:57:15,759 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.664173 -999.00  +12.20  16.22     54   +3.30 1 2 1 1 1   731    0 8.35 -24.77 ----- 26.7 16.2 9.9 32.0 12.9 -15.8 12.7 -15.8 12.5 -15.0 12.9 -15.1
2025-07-01 17:57:15,759 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:57:15,759 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:57:15,759 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.664173
2025-07-01 17:57:15,759 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:57:15,760 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:57:15,760 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:57:15,760 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:57:15,760 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:57:15,760 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:56:40', tmtdew=10.24, humidity=49.66, cloud=0.0, wind=38.29, temperature=12.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:56:24.547', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:57:15,761 [DEBUG][       Thread-612905][   transport.py][1871] : EOF in transport thread
2025-07-01 17:57:15,846 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:57:15,859 [DEBUG][       Thread-612908][   transport.py][1871] : starting thread (client mode): 0x8154ee0
2025-07-01 17:57:15,859 [DEBUG][       Thread-612908][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:57:15,876 [DEBUG][       Thread-612908][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:57:15,876 [ INFO][       Thread-612908][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:57:15,884 [DEBUG][       Thread-612908][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:57:15,884 [DEBUG][       Thread-612908][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:57:15,884 [DEBUG][       Thread-612908][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:57:15,884 [DEBUG][       Thread-612908][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:57:15,884 [DEBUG][       Thread-612908][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:57:15,884 [DEBUG][       Thread-612908][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:57:15,884 [DEBUG][       Thread-612908][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:57:15,884 [DEBUG][       Thread-612908][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:57:15,884 [DEBUG][       Thread-612908][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:57:15,884 [DEBUG][       Thread-612908][   transport.py][1871] : client lang: <none>
2025-07-01 17:57:15,884 [DEBUG][       Thread-612908][   transport.py][1871] : server lang: <none>
2025-07-01 17:57:15,884 [DEBUG][       Thread-612908][   transport.py][1871] : kex follows: False
2025-07-01 17:57:15,885 [DEBUG][       Thread-612908][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:57:15,885 [DEBUG][       Thread-612908][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:57:15,885 [DEBUG][       Thread-612908][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:57:15,885 [DEBUG][       Thread-612908][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:57:15,885 [DEBUG][       Thread-612908][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:57:15,885 [DEBUG][       Thread-612908][   transport.py][1871] : Compression: none
2025-07-01 17:57:15,885 [DEBUG][       Thread-612908][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:57:15,944 [DEBUG][       Thread-612908][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:57:15,945 [DEBUG][       Thread-612908][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:57:15,946 [DEBUG][       Thread-612908][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:57:15,946 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:57:15,947 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:57:16,002 [DEBUG][       Thread-612908][   transport.py][1871] : userauth is OK
2025-07-01 17:57:16,002 [DEBUG][       Thread-612908][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:57:16,002 [DEBUG][       Thread-612908][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:57:16,002 [DEBUG][       Thread-612908][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:57:16,002 [DEBUG][       Thread-612908][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:57:16,020 [ INFO][       Thread-612908][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:57:16,021 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:57:16,021 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:57:17,069 [DEBUG][       Thread-612908][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:57:17,070 [DEBUG][       Thread-612908][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:57:17,120 [DEBUG][       Thread-612908][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:57:17,121 [DEBUG][       Thread-612908][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:57:17,130 [DEBUG][       Thread-612908][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:57:17,140 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:57:17,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-07-01 17:57:17,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-07-01 17:57:17,159 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:57:17,159 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:57:17,159 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:57:17,168 [DEBUG][       Thread-612908][   transport.py][1871] : EOF in transport thread
2025-07-01 17:57:23,324 [DEBUG][Thread-612910 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:57:27,170 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:57:27,170 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:57:27,170 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:57:27,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-07-01 17:57:27,645 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 57, 12), 10.26, 49.6, 0.0, 38.45, 12.4, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:57:27,645 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:57:12
2025-07-01 17:57:27,731 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:57:27,738 [DEBUG][       Thread-612911][   transport.py][1871] : starting thread (client mode): 0x81e44c0
2025-07-01 17:57:27,738 [DEBUG][       Thread-612911][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:57:27,758 [DEBUG][       Thread-612911][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:57:27,758 [ INFO][       Thread-612911][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:57:27,762 [DEBUG][       Thread-612911][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:57:27,762 [DEBUG][       Thread-612911][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:57:27,762 [DEBUG][       Thread-612911][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:57:27,762 [DEBUG][       Thread-612911][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:57:27,762 [DEBUG][       Thread-612911][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:57:27,762 [DEBUG][       Thread-612911][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:57:27,762 [DEBUG][       Thread-612911][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:57:27,762 [DEBUG][       Thread-612911][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:57:27,762 [DEBUG][       Thread-612911][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:57:27,762 [DEBUG][       Thread-612911][   transport.py][1871] : client lang: <none>
2025-07-01 17:57:27,762 [DEBUG][       Thread-612911][   transport.py][1871] : server lang: <none>
2025-07-01 17:57:27,762 [DEBUG][       Thread-612911][   transport.py][1871] : kex follows: False
2025-07-01 17:57:27,762 [DEBUG][       Thread-612911][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:57:27,762 [DEBUG][       Thread-612911][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:57:27,762 [DEBUG][       Thread-612911][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:57:27,762 [DEBUG][       Thread-612911][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:57:27,762 [DEBUG][       Thread-612911][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:57:27,762 [DEBUG][       Thread-612911][   transport.py][1871] : Compression: none
2025-07-01 17:57:27,762 [DEBUG][       Thread-612911][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:57:27,779 [DEBUG][       Thread-612911][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:57:27,780 [DEBUG][       Thread-612911][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:57:27,780 [DEBUG][       Thread-612911][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:57:27,780 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:57:27,781 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:57:27,782 [DEBUG][       Thread-612911][   transport.py][1871] : userauth is OK
2025-07-01 17:57:27,807 [ INFO][       Thread-612911][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:57:27,808 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:57:28,425 [DEBUG][       Thread-612911][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:57:28,425 [DEBUG][       Thread-612911][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:57:28,469 [DEBUG][       Thread-612911][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:57:28,469 [DEBUG][       Thread-612911][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:57:28,472 [DEBUG][       Thread-612911][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:57:28,483 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:57:28,484 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:57:28,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:57:28,487 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:57:28,491 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:57:28,492 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:57:28,493 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:57:28,493 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:57:28,493 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.664520 -999.00  +12.20  30.30     54   +3.30 1 2 2 1 1   718    0 8.38 -24.11 ----- 30.5 30.3 9.5 38.5 12.9 -15.9 12.7 -15.7 12.5 -15.2 12.9 -15.2
2025-07-01 17:57:28,494 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:57:28,494 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:57:28,494 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.664520
2025-07-01 17:57:28,494 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:57:28,495 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:57:28,495 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:57:28,495 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:57:28,495 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:57:28,495 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:57:12', tmtdew=10.26, humidity=49.6, cloud=0.0, wind=38.45, temperature=12.4, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:56:54.528', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:57:28,495 [DEBUG][       Thread-612911][   transport.py][1871] : EOF in transport thread
2025-07-01 17:57:28,578 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:57:28,590 [DEBUG][       Thread-612914][   transport.py][1871] : starting thread (client mode): 0x8393f40
2025-07-01 17:57:28,590 [DEBUG][       Thread-612914][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:57:28,607 [DEBUG][       Thread-612914][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 17:57:28,607 [ INFO][       Thread-612914][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 17:57:28,614 [DEBUG][       Thread-612914][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:57:28,614 [DEBUG][       Thread-612914][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 17:57:28,614 [DEBUG][       Thread-612914][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:57:28,615 [DEBUG][       Thread-612914][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:57:28,615 [DEBUG][       Thread-612914][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:57:28,615 [DEBUG][       Thread-612914][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:57:28,615 [DEBUG][       Thread-612914][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:57:28,615 [DEBUG][       Thread-612914][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:57:28,615 [DEBUG][       Thread-612914][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:57:28,615 [DEBUG][       Thread-612914][   transport.py][1871] : client lang: <none>
2025-07-01 17:57:28,615 [DEBUG][       Thread-612914][   transport.py][1871] : server lang: <none>
2025-07-01 17:57:28,615 [DEBUG][       Thread-612914][   transport.py][1871] : kex follows: False
2025-07-01 17:57:28,615 [DEBUG][       Thread-612914][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:57:28,615 [DEBUG][       Thread-612914][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:57:28,615 [DEBUG][       Thread-612914][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:57:28,615 [DEBUG][       Thread-612914][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:57:28,615 [DEBUG][       Thread-612914][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:57:28,615 [DEBUG][       Thread-612914][   transport.py][1871] : Compression: none
2025-07-01 17:57:28,615 [DEBUG][       Thread-612914][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:57:28,672 [DEBUG][       Thread-612914][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:57:28,673 [DEBUG][       Thread-612914][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:57:28,674 [DEBUG][       Thread-612914][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 17:57:28,674 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 17:57:28,675 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 17:57:28,732 [DEBUG][       Thread-612914][   transport.py][1871] : userauth is OK
2025-07-01 17:57:28,732 [DEBUG][       Thread-612914][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 17:57:28,732 [DEBUG][       Thread-612914][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 17:57:28,733 [DEBUG][       Thread-612914][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 17:57:28,733 [DEBUG][       Thread-612914][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 17:57:28,752 [ INFO][       Thread-612914][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 17:57:28,752 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 17:57:28,753 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:57:29,804 [DEBUG][       Thread-612914][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:57:29,805 [DEBUG][       Thread-612914][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:57:29,856 [DEBUG][       Thread-612914][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:57:29,856 [DEBUG][       Thread-612914][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:57:29,865 [DEBUG][       Thread-612914][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:57:29,874 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:57:29,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')
2025-07-01 17:57:29,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-07-01 17:57:29,892 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:57:29,893 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:57:29,893 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:57:29,901 [DEBUG][       Thread-612914][   transport.py][1871] : EOF in transport thread
2025-07-01 17:57:32,347 [DEBUG][Thread-612916 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:57:39,897 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 17:57:39,898 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 17:57:39,898 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 17:57:39,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-07-01 17:57:40,366 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 57, 12), 10.26, 49.6, 0.0, 38.45, 12.4, 0, 0, 0, 2, 0, 0),)
2025-07-01 17:57:40,366 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:57:12
2025-07-01 17:57:40,451 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 17:57:40,455 [DEBUG][       Thread-612917][   transport.py][1871] : starting thread (client mode): 0x81e77c0
2025-07-01 17:57:40,455 [DEBUG][       Thread-612917][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 17:57:40,476 [DEBUG][       Thread-612917][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 17:57:40,476 [ INFO][       Thread-612917][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 17:57:40,479 [DEBUG][       Thread-612917][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 17:57:40,479 [DEBUG][       Thread-612917][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 17:57:40,480 [DEBUG][       Thread-612917][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 17:57:40,480 [DEBUG][       Thread-612917][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:57:40,480 [DEBUG][       Thread-612917][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 17:57:40,480 [DEBUG][       Thread-612917][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:57:40,480 [DEBUG][       Thread-612917][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 17:57:40,480 [DEBUG][       Thread-612917][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 17:57:40,480 [DEBUG][       Thread-612917][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 17:57:40,480 [DEBUG][       Thread-612917][   transport.py][1871] : client lang: <none>
2025-07-01 17:57:40,480 [DEBUG][       Thread-612917][   transport.py][1871] : server lang: <none>
2025-07-01 17:57:40,480 [DEBUG][       Thread-612917][   transport.py][1871] : kex follows: False
2025-07-01 17:57:40,480 [DEBUG][       Thread-612917][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 17:57:40,480 [DEBUG][       Thread-612917][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 17:57:40,480 [DEBUG][       Thread-612917][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 17:57:40,480 [DEBUG][       Thread-612917][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 17:57:40,480 [DEBUG][       Thread-612917][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 17:57:40,480 [DEBUG][       Thread-612917][   transport.py][1871] : Compression: none
2025-07-01 17:57:40,480 [DEBUG][       Thread-612917][   transport.py][1871] : === End of kex handshake ===
2025-07-01 17:57:40,495 [DEBUG][       Thread-612917][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 17:57:40,495 [DEBUG][       Thread-612917][   transport.py][1871] : Switch to new keys ...
2025-07-01 17:57:40,496 [DEBUG][       Thread-612917][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 17:57:40,496 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 17:57:40,496 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 17:57:40,497 [DEBUG][       Thread-612917][   transport.py][1871] : userauth is OK
2025-07-01 17:57:40,522 [ INFO][       Thread-612917][   transport.py][1871] : Authentication (password) successful!
2025-07-01 17:57:40,523 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 17:57:41,201 [DEBUG][       Thread-612917][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 17:57:41,201 [DEBUG][       Thread-612917][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 17:57:41,245 [DEBUG][       Thread-612917][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 17:57:41,245 [DEBUG][       Thread-612917][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 17:57:41,248 [DEBUG][       Thread-612917][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 17:57:41,262 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 17:57:41,263 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 17:57:41,264 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 17:57:41,266 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 17:57:41,271 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 17:57:41,272 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 17:57:41,272 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 17:57:41,272 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 17:57:41,272 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.664520 -999.00  +12.20  30.30     54   +3.30 1 2 2 1 1   718    0 8.38 -24.11 ----- 30.5 30.3 9.5 38.5 12.9 -15.9 12.7 -15.7 12.5 -15.2 12.9 -15.2
2025-07-01 17:57:41,272 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 17:57:41,272 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 17:57:41,272 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.664520
2025-07-01 17:57:41,273 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 17:57:41,273 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 17:57:41,273 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 17:57:41,273 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 17:57:41,273 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 17:57:41,273 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:57:12', tmtdew=10.26, humidity=49.6, cloud=0.0, wind=38.45, temperature=12.4, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:56:54.528', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 17:57:41,273 [DEBUG][       Thread-612917][   transport.py][1871] : EOF in transport thread
2025-07-01 17:57:41,343 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 17:57:41,390 [DEBUG][Thread-612920 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:57:41,819 [DEBUG][Thread-612921 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:57:50,411 [DEBUG][Thread-612922 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:57:59,433 [DEBUG][Thread-612923 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:58:08,452 [DEBUG][Thread-612924 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:58:17,474 [DEBUG][Thread-612925 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:58:26,493 [DEBUG][Thread-612926 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:58:35,515 [DEBUG][Thread-612927 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:58:41,868 [DEBUG][Thread-612928 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:58:44,535 [DEBUG][Thread-612929 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:58:53,556 [DEBUG][Thread-612930 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:59:02,578 [DEBUG][Thread-612931 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:59:11,601 [DEBUG][Thread-612932 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:59:20,622 [DEBUG][Thread-612933 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:59:29,645 [DEBUG][Thread-612934 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:59:38,669 [DEBUG][Thread-612935 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:59:41,922 [DEBUG][Thread-612936 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:59:47,692 [DEBUG][Thread-612937 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 17:59:50,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-07-01 17:59:56,715 [DEBUG][Thread-612938 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:00:00,046 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:00:00,047 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:00:00,047 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:00: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-07-01 18:00:00,559 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 59, 52), 10.19, 49.71, 0.0, 33.63, 12.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:00:00,559 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:59:52
2025-07-01 18:00:00,646 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:00:00,650 [DEBUG][       Thread-612939][   transport.py][1871] : starting thread (client mode): 0x81e4ee0
2025-07-01 18:00:00,650 [DEBUG][       Thread-612939][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:00:00,681 [DEBUG][       Thread-612939][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:00:00,681 [ INFO][       Thread-612939][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:00:00,685 [DEBUG][       Thread-612939][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:00:00,685 [DEBUG][       Thread-612939][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:00:00,685 [DEBUG][       Thread-612939][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:00:00,685 [DEBUG][       Thread-612939][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:00:00,685 [DEBUG][       Thread-612939][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:00:00,685 [DEBUG][       Thread-612939][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:00:00,685 [DEBUG][       Thread-612939][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:00:00,685 [DEBUG][       Thread-612939][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:00:00,685 [DEBUG][       Thread-612939][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:00:00,685 [DEBUG][       Thread-612939][   transport.py][1871] : client lang: <none>
2025-07-01 18:00:00,685 [DEBUG][       Thread-612939][   transport.py][1871] : server lang: <none>
2025-07-01 18:00:00,685 [DEBUG][       Thread-612939][   transport.py][1871] : kex follows: False
2025-07-01 18:00:00,685 [DEBUG][       Thread-612939][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:00:00,685 [DEBUG][       Thread-612939][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:00:00,685 [DEBUG][       Thread-612939][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:00:00,685 [DEBUG][       Thread-612939][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:00:00,685 [DEBUG][       Thread-612939][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:00:00,685 [DEBUG][       Thread-612939][   transport.py][1871] : Compression: none
2025-07-01 18:00:00,685 [DEBUG][       Thread-612939][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:00:00,700 [DEBUG][       Thread-612939][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:00:00,700 [DEBUG][       Thread-612939][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:00:00,700 [DEBUG][       Thread-612939][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:00:00,700 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:00:00,700 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:00:00,701 [DEBUG][       Thread-612939][   transport.py][1871] : userauth is OK
2025-07-01 18:00:00,725 [ INFO][       Thread-612939][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:00:00,725 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:00:01,340 [DEBUG][       Thread-612939][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:00:01,340 [DEBUG][       Thread-612939][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:00:01,384 [DEBUG][       Thread-612939][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:00:01,384 [DEBUG][       Thread-612939][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:00:01,387 [DEBUG][       Thread-612939][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:00:01,400 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:00:01,400 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:00:01,401 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:00:01,402 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:00:01,405 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:00:01,406 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:00:01,406 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:00:01,406 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:00:01,406 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.666256 -999.00  +12.30  33.83     54   +3.40 1 2 2 1 1   643    0 8.38 -21.18 ----- 34.9 33.8 0.9 41.6 12.9 -16.3 12.7 -16.3 12.5 -16.0 12.9 -16.3
2025-07-01 18:00:01,406 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:00:01,406 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:00:01,406 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.666256
2025-07-01 18:00:01,406 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:00:01,406 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:00:01,406 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:00:01,406 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:00:01,406 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:00:01,406 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:59:52', tmtdew=10.19, humidity=49.71, cloud=0.0, wind=33.63, temperature=12.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:59:24.518', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:00:01,407 [DEBUG][       Thread-612939][   transport.py][1871] : EOF in transport thread
2025-07-01 18:00:01,480 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:00:01,491 [DEBUG][       Thread-612942][   transport.py][1871] : starting thread (client mode): 0x8157400
2025-07-01 18:00:01,492 [DEBUG][       Thread-612942][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:00:01,507 [DEBUG][       Thread-612942][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:00:01,507 [ INFO][       Thread-612942][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:00:01,515 [DEBUG][       Thread-612942][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:00:01,515 [DEBUG][       Thread-612942][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:00:01,515 [DEBUG][       Thread-612942][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:00:01,515 [DEBUG][       Thread-612942][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:00:01,515 [DEBUG][       Thread-612942][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:00:01,515 [DEBUG][       Thread-612942][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:00:01,515 [DEBUG][       Thread-612942][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:00:01,515 [DEBUG][       Thread-612942][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:00:01,515 [DEBUG][       Thread-612942][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:00:01,515 [DEBUG][       Thread-612942][   transport.py][1871] : client lang: <none>
2025-07-01 18:00:01,515 [DEBUG][       Thread-612942][   transport.py][1871] : server lang: <none>
2025-07-01 18:00:01,515 [DEBUG][       Thread-612942][   transport.py][1871] : kex follows: False
2025-07-01 18:00:01,515 [DEBUG][       Thread-612942][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:00:01,515 [DEBUG][       Thread-612942][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:00:01,515 [DEBUG][       Thread-612942][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:00:01,515 [DEBUG][       Thread-612942][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:00:01,515 [DEBUG][       Thread-612942][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:00:01,515 [DEBUG][       Thread-612942][   transport.py][1871] : Compression: none
2025-07-01 18:00:01,515 [DEBUG][       Thread-612942][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:00:01,578 [DEBUG][       Thread-612942][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:00:01,578 [DEBUG][       Thread-612942][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:00:01,578 [DEBUG][       Thread-612942][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:00:01,578 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:00:01,578 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:00:01,634 [DEBUG][       Thread-612942][   transport.py][1871] : userauth is OK
2025-07-01 18:00:01,634 [DEBUG][       Thread-612942][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:00:01,634 [DEBUG][       Thread-612942][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:00:01,634 [DEBUG][       Thread-612942][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:00:01,634 [DEBUG][       Thread-612942][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:00:01,648 [ INFO][       Thread-612942][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:00:01,648 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:00:01,648 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:00:02,711 [DEBUG][       Thread-612942][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:00:02,711 [DEBUG][       Thread-612942][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:00:02,759 [DEBUG][       Thread-612942][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:00:02,759 [DEBUG][       Thread-612942][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:00:02,767 [DEBUG][       Thread-612942][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:00:02,775 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:00:02,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-07-01 18:00:02,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-07-01 18:00:02,791 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:00:02,791 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:00:02,791 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:00:02,798 [DEBUG][       Thread-612942][   transport.py][1871] : EOF in transport thread
2025-07-01 18:00:05,734 [DEBUG][Thread-612944 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:00:12,798 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:00:12,799 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:00:12,799 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:00:12,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-07-01 18:00:13,294 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 59, 52), 10.19, 49.71, 0.0, 33.63, 12.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:00:13,294 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:59:52
2025-07-01 18:00:13,379 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:00:13,384 [DEBUG][       Thread-612945][   transport.py][1871] : starting thread (client mode): 0x81e7370
2025-07-01 18:00:13,384 [DEBUG][       Thread-612945][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:00:13,404 [DEBUG][       Thread-612945][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:00:13,404 [ INFO][       Thread-612945][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:00:13,408 [DEBUG][       Thread-612945][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:00:13,408 [DEBUG][       Thread-612945][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:00:13,408 [DEBUG][       Thread-612945][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:00:13,408 [DEBUG][       Thread-612945][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:00:13,408 [DEBUG][       Thread-612945][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:00:13,408 [DEBUG][       Thread-612945][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:00:13,408 [DEBUG][       Thread-612945][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:00:13,408 [DEBUG][       Thread-612945][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:00:13,408 [DEBUG][       Thread-612945][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:00:13,408 [DEBUG][       Thread-612945][   transport.py][1871] : client lang: <none>
2025-07-01 18:00:13,408 [DEBUG][       Thread-612945][   transport.py][1871] : server lang: <none>
2025-07-01 18:00:13,408 [DEBUG][       Thread-612945][   transport.py][1871] : kex follows: False
2025-07-01 18:00:13,408 [DEBUG][       Thread-612945][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:00:13,408 [DEBUG][       Thread-612945][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:00:13,408 [DEBUG][       Thread-612945][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:00:13,408 [DEBUG][       Thread-612945][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:00:13,408 [DEBUG][       Thread-612945][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:00:13,408 [DEBUG][       Thread-612945][   transport.py][1871] : Compression: none
2025-07-01 18:00:13,408 [DEBUG][       Thread-612945][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:00:13,425 [DEBUG][       Thread-612945][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:00:13,425 [DEBUG][       Thread-612945][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:00:13,426 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:00:13,426 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:00:13,426 [DEBUG][       Thread-612945][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:00:13,427 [DEBUG][       Thread-612945][   transport.py][1871] : userauth is OK
2025-07-01 18:00:13,452 [ INFO][       Thread-612945][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:00:13,453 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:00:14,099 [DEBUG][       Thread-612945][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:00:14,100 [DEBUG][       Thread-612945][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:00:14,141 [DEBUG][       Thread-612945][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:00:14,141 [DEBUG][       Thread-612945][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:00:14,145 [DEBUG][       Thread-612945][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:00:14,156 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:00:14,157 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:00:14,159 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:00:14,160 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:00:14,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:00:14,168 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:00:14,168 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:00:14,169 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:00:14,169 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.666603 -999.00  +12.30  27.27     54   +3.30 1 2 1 1 1   626    0 8.55 -20.75 ----- 26.4 27.3 8.1 38.6 12.9 -16.6 12.7 -16.5 12.5 -16.3 12.9 -16.5
2025-07-01 18:00:14,169 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:00:14,169 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:00:14,169 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.666603
2025-07-01 18:00:14,169 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:00:14,170 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:00:14,170 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:00:14,170 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:00:14,170 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:00:14,170 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:59:52', tmtdew=10.19, humidity=49.71, cloud=0.0, wind=33.63, temperature=12.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:59:54.499', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:00:14,171 [DEBUG][       Thread-612945][   transport.py][1871] : EOF in transport thread
2025-07-01 18:00:14,254 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:00:14,263 [DEBUG][       Thread-612948][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 18:00:14,263 [DEBUG][       Thread-612948][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:00:14,281 [DEBUG][       Thread-612948][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:00:14,281 [ INFO][       Thread-612948][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:00:14,289 [DEBUG][       Thread-612948][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:00:14,289 [DEBUG][       Thread-612948][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:00:14,289 [DEBUG][       Thread-612948][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:00:14,289 [DEBUG][       Thread-612948][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:00:14,289 [DEBUG][       Thread-612948][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:00:14,289 [DEBUG][       Thread-612948][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:00:14,289 [DEBUG][       Thread-612948][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:00:14,289 [DEBUG][       Thread-612948][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:00:14,289 [DEBUG][       Thread-612948][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:00:14,289 [DEBUG][       Thread-612948][   transport.py][1871] : client lang: <none>
2025-07-01 18:00:14,289 [DEBUG][       Thread-612948][   transport.py][1871] : server lang: <none>
2025-07-01 18:00:14,290 [DEBUG][       Thread-612948][   transport.py][1871] : kex follows: False
2025-07-01 18:00:14,290 [DEBUG][       Thread-612948][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:00:14,290 [DEBUG][       Thread-612948][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:00:14,290 [DEBUG][       Thread-612948][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:00:14,290 [DEBUG][       Thread-612948][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:00:14,290 [DEBUG][       Thread-612948][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:00:14,290 [DEBUG][       Thread-612948][   transport.py][1871] : Compression: none
2025-07-01 18:00:14,290 [DEBUG][       Thread-612948][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:00:14,348 [DEBUG][       Thread-612948][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:00:14,348 [DEBUG][       Thread-612948][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:00:14,349 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:00:14,350 [DEBUG][       Thread-612948][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:00:14,350 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:00:14,407 [DEBUG][       Thread-612948][   transport.py][1871] : userauth is OK
2025-07-01 18:00:14,407 [DEBUG][       Thread-612948][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:00:14,408 [DEBUG][       Thread-612948][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:00:14,408 [DEBUG][       Thread-612948][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:00:14,408 [DEBUG][       Thread-612948][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:00:14,430 [ INFO][       Thread-612948][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:00:14,430 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:00:14,430 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:00:14,777 [DEBUG][Thread-612950 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:00:15,464 [DEBUG][       Thread-612948][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:00:15,465 [DEBUG][       Thread-612948][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:00:15,516 [DEBUG][       Thread-612948][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:00:15,516 [DEBUG][       Thread-612948][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:00:15,525 [DEBUG][       Thread-612948][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:00:15,534 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:00:15,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-07-01 18:00:15,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-07-01 18:00:15,553 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:00:15,553 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:00:15,553 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:00:15,562 [DEBUG][       Thread-612948][   transport.py][1871] : EOF in transport thread
2025-07-01 18:00:23,801 [DEBUG][Thread-612951 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:00:25,556 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:00:25,556 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:00:25,556 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:00:25,556 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 18:00:26,081 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 17, 59, 52), 10.19, 49.71, 0.0, 33.63, 12.38, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:00:26,081 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 17:59:52
2025-07-01 18:00:26,172 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:00:26,179 [DEBUG][       Thread-612952][   transport.py][1871] : starting thread (client mode): 0x81e7f40
2025-07-01 18:00:26,179 [DEBUG][       Thread-612952][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:00:26,198 [DEBUG][       Thread-612952][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:00:26,198 [ INFO][       Thread-612952][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:00:26,201 [DEBUG][       Thread-612952][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:00:26,201 [DEBUG][       Thread-612952][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:00:26,201 [DEBUG][       Thread-612952][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:00:26,201 [DEBUG][       Thread-612952][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:00:26,201 [DEBUG][       Thread-612952][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:00:26,201 [DEBUG][       Thread-612952][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:00:26,201 [DEBUG][       Thread-612952][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:00:26,201 [DEBUG][       Thread-612952][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:00:26,201 [DEBUG][       Thread-612952][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:00:26,201 [DEBUG][       Thread-612952][   transport.py][1871] : client lang: <none>
2025-07-01 18:00:26,201 [DEBUG][       Thread-612952][   transport.py][1871] : server lang: <none>
2025-07-01 18:00:26,201 [DEBUG][       Thread-612952][   transport.py][1871] : kex follows: False
2025-07-01 18:00:26,201 [DEBUG][       Thread-612952][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:00:26,201 [DEBUG][       Thread-612952][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:00:26,201 [DEBUG][       Thread-612952][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:00:26,201 [DEBUG][       Thread-612952][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:00:26,201 [DEBUG][       Thread-612952][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:00:26,201 [DEBUG][       Thread-612952][   transport.py][1871] : Compression: none
2025-07-01 18:00:26,201 [DEBUG][       Thread-612952][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:00:26,216 [DEBUG][       Thread-612952][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:00:26,216 [DEBUG][       Thread-612952][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:00:26,217 [DEBUG][       Thread-612952][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:00:26,217 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:00:26,217 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:00:26,217 [DEBUG][       Thread-612952][   transport.py][1871] : userauth is OK
2025-07-01 18:00:26,230 [ INFO][       Thread-612952][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:00:26,230 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:00:26,870 [DEBUG][       Thread-612952][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:00:26,870 [DEBUG][       Thread-612952][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:00:26,913 [DEBUG][       Thread-612952][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:00:26,913 [DEBUG][       Thread-612952][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:00:26,916 [DEBUG][       Thread-612952][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:00:26,928 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:00:26,928 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:00:26,930 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:00:26,933 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:00:26,938 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:00:26,941 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:00:26,941 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:00:26,942 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:00:26,942 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.666603 -999.00  +12.30  27.27     54   +3.30 1 2 1 1 1   626    0 8.55 -20.75 ----- 26.4 27.3 8.1 38.6 12.9 -16.6 12.7 -16.5 12.5 -16.3 12.9 -16.5
2025-07-01 18:00:26,942 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:00:26,942 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:00:26,942 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.666603
2025-07-01 18:00:26,943 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:00:26,944 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:00:26,944 [DEBUG][       Thread-612952][   transport.py][1871] : EOF in transport thread
2025-07-01 18:00:26,944 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:00:26,945 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:00:26,945 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:00:26,945 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T17:59:52', tmtdew=10.19, humidity=49.71, cloud=0.0, wind=33.63, temperature=12.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T15:59:54.499', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:00:27,021 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:00:27,033 [DEBUG][       Thread-612955][   transport.py][1871] : starting thread (client mode): 0x8155b10
2025-07-01 18:00:27,033 [DEBUG][       Thread-612955][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:00:27,048 [DEBUG][       Thread-612955][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:00:27,048 [ INFO][       Thread-612955][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:00:27,056 [DEBUG][       Thread-612955][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:00:27,056 [DEBUG][       Thread-612955][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:00:27,056 [DEBUG][       Thread-612955][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:00:27,056 [DEBUG][       Thread-612955][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:00:27,056 [DEBUG][       Thread-612955][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:00:27,056 [DEBUG][       Thread-612955][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:00:27,056 [DEBUG][       Thread-612955][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:00:27,056 [DEBUG][       Thread-612955][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:00:27,056 [DEBUG][       Thread-612955][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:00:27,056 [DEBUG][       Thread-612955][   transport.py][1871] : client lang: <none>
2025-07-01 18:00:27,056 [DEBUG][       Thread-612955][   transport.py][1871] : server lang: <none>
2025-07-01 18:00:27,056 [DEBUG][       Thread-612955][   transport.py][1871] : kex follows: False
2025-07-01 18:00:27,056 [DEBUG][       Thread-612955][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:00:27,057 [DEBUG][       Thread-612955][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:00:27,057 [DEBUG][       Thread-612955][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:00:27,057 [DEBUG][       Thread-612955][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:00:27,057 [DEBUG][       Thread-612955][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:00:27,057 [DEBUG][       Thread-612955][   transport.py][1871] : Compression: none
2025-07-01 18:00:27,057 [DEBUG][       Thread-612955][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:00:27,114 [DEBUG][       Thread-612955][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:00:27,114 [DEBUG][       Thread-612955][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:00:27,115 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:00:27,116 [DEBUG][       Thread-612955][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:00:27,116 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:00:27,172 [DEBUG][       Thread-612955][   transport.py][1871] : userauth is OK
2025-07-01 18:00:27,172 [DEBUG][       Thread-612955][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:00:27,172 [DEBUG][       Thread-612955][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:00:27,172 [DEBUG][       Thread-612955][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:00:27,173 [DEBUG][       Thread-612955][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:00:27,194 [ INFO][       Thread-612955][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:00:27,194 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:00:27,195 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:00:28,262 [DEBUG][       Thread-612955][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:00:28,262 [DEBUG][       Thread-612955][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:00:28,312 [DEBUG][       Thread-612955][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:00:28,312 [DEBUG][       Thread-612955][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:00:28,322 [DEBUG][       Thread-612955][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:00:28,333 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:00:28,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-07-01 18:00:28,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-07-01 18:00:28,351 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:00:28,352 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:00:28,352 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:00:28,360 [DEBUG][       Thread-612955][   transport.py][1871] : EOF in transport thread
2025-07-01 18:00:32,824 [DEBUG][Thread-612957 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:00:38,363 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:00:38,363 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:00:38,363 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:00:38,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-07-01 18:00:38,886 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 0, 24), 10.17, 49.78, 0.0, 32.96, 12.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:00:38,886 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:00:24
2025-07-01 18:00:38,977 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:00:38,981 [DEBUG][       Thread-612958][   transport.py][1871] : starting thread (client mode): 0x81e6350
2025-07-01 18:00:38,981 [DEBUG][       Thread-612958][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:00:39,001 [DEBUG][       Thread-612958][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:00:39,001 [ INFO][       Thread-612958][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:00:39,004 [DEBUG][       Thread-612958][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:00:39,004 [DEBUG][       Thread-612958][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:00:39,004 [DEBUG][       Thread-612958][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:00:39,004 [DEBUG][       Thread-612958][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:00:39,004 [DEBUG][       Thread-612958][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:00:39,004 [DEBUG][       Thread-612958][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:00:39,004 [DEBUG][       Thread-612958][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:00:39,004 [DEBUG][       Thread-612958][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:00:39,004 [DEBUG][       Thread-612958][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:00:39,004 [DEBUG][       Thread-612958][   transport.py][1871] : client lang: <none>
2025-07-01 18:00:39,004 [DEBUG][       Thread-612958][   transport.py][1871] : server lang: <none>
2025-07-01 18:00:39,004 [DEBUG][       Thread-612958][   transport.py][1871] : kex follows: False
2025-07-01 18:00:39,004 [DEBUG][       Thread-612958][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:00:39,004 [DEBUG][       Thread-612958][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:00:39,004 [DEBUG][       Thread-612958][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:00:39,004 [DEBUG][       Thread-612958][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:00:39,004 [DEBUG][       Thread-612958][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:00:39,004 [DEBUG][       Thread-612958][   transport.py][1871] : Compression: none
2025-07-01 18:00:39,004 [DEBUG][       Thread-612958][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:00:39,020 [DEBUG][       Thread-612958][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:00:39,021 [DEBUG][       Thread-612958][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:00:39,021 [DEBUG][       Thread-612958][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:00:39,021 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:00:39,021 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:00:39,022 [DEBUG][       Thread-612958][   transport.py][1871] : userauth is OK
2025-07-01 18:00:39,047 [ INFO][       Thread-612958][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:00:39,048 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:00:39,686 [DEBUG][       Thread-612958][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:00:39,686 [DEBUG][       Thread-612958][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:00:39,728 [DEBUG][       Thread-612958][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:00:39,728 [DEBUG][       Thread-612958][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:00:39,731 [DEBUG][       Thread-612958][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:00:39,743 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:00:39,743 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:00:39,744 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:00:39,745 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:00:39,748 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:00:39,749 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:00:39,749 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:00:39,749 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:00:39,749 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.666951 -999.00  +12.20  25.81     54   +3.30 1 2 1 1 1   608    0 8.49 -21.28 ----- 32.3 25.8 21.6 35.5 12.9 -16.7 12.7 -16.7 12.5 -16.6 12.9 -16.9
2025-07-01 18:00:39,749 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:00:39,749 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:00:39,749 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.666951
2025-07-01 18:00:39,749 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:00:39,750 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:00:39,750 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:00:39,750 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:00:39,750 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:00:39,750 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:00:24', tmtdew=10.17, humidity=49.78, cloud=0.0, wind=32.96, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:00:24.566', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:00:39,751 [DEBUG][       Thread-612958][   transport.py][1871] : EOF in transport thread
2025-07-01 18:00:39,825 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:00:39,834 [DEBUG][       Thread-612961][   transport.py][1871] : starting thread (client mode): 0x83938e0
2025-07-01 18:00:39,834 [DEBUG][       Thread-612961][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:00:39,849 [DEBUG][       Thread-612961][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:00:39,849 [ INFO][       Thread-612961][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:00:39,857 [DEBUG][       Thread-612961][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:00:39,857 [DEBUG][       Thread-612961][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:00:39,857 [DEBUG][       Thread-612961][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:00:39,857 [DEBUG][       Thread-612961][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:00:39,857 [DEBUG][       Thread-612961][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:00:39,857 [DEBUG][       Thread-612961][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:00:39,857 [DEBUG][       Thread-612961][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:00:39,857 [DEBUG][       Thread-612961][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:00:39,857 [DEBUG][       Thread-612961][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:00:39,857 [DEBUG][       Thread-612961][   transport.py][1871] : client lang: <none>
2025-07-01 18:00:39,857 [DEBUG][       Thread-612961][   transport.py][1871] : server lang: <none>
2025-07-01 18:00:39,857 [DEBUG][       Thread-612961][   transport.py][1871] : kex follows: False
2025-07-01 18:00:39,857 [DEBUG][       Thread-612961][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:00:39,857 [DEBUG][       Thread-612961][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:00:39,857 [DEBUG][       Thread-612961][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:00:39,857 [DEBUG][       Thread-612961][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:00:39,857 [DEBUG][       Thread-612961][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:00:39,857 [DEBUG][       Thread-612961][   transport.py][1871] : Compression: none
2025-07-01 18:00:39,857 [DEBUG][       Thread-612961][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:00:39,912 [DEBUG][       Thread-612961][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:00:39,912 [DEBUG][       Thread-612961][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:00:39,912 [DEBUG][       Thread-612961][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:00:39,913 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:00:39,913 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:00:39,970 [DEBUG][       Thread-612961][   transport.py][1871] : userauth is OK
2025-07-01 18:00:39,970 [DEBUG][       Thread-612961][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:00:39,970 [DEBUG][       Thread-612961][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:00:39,970 [DEBUG][       Thread-612961][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:00:39,970 [DEBUG][       Thread-612961][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:00:39,984 [ INFO][       Thread-612961][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:00:39,984 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:00:39,984 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:00:41,010 [DEBUG][       Thread-612961][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:00:41,010 [DEBUG][       Thread-612961][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:00:41,059 [DEBUG][       Thread-612961][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:00:41,060 [DEBUG][       Thread-612961][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:00:41,069 [DEBUG][       Thread-612961][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:00:41,077 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:00:41,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-07-01 18:00:41,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-07-01 18:00:41,095 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:00:41,095 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:00:41,095 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:00:41,103 [DEBUG][       Thread-612961][   transport.py][1871] : EOF in transport thread
2025-07-01 18:00:41,843 [DEBUG][Thread-612963 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:00:41,972 [DEBUG][Thread-612964 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:00:50,878 [DEBUG][Thread-612965 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:00:51,106 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:00:51,106 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:00:51,106 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:00:51,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-07-01 18:00:51,619 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 0, 24), 10.17, 49.78, 0.0, 32.96, 12.33, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:00:51,619 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:00:24
2025-07-01 18:00:51,705 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:00:51,710 [DEBUG][       Thread-612966][   transport.py][1871] : starting thread (client mode): 0x8154040
2025-07-01 18:00:51,710 [DEBUG][       Thread-612966][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:00:51,731 [DEBUG][       Thread-612966][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:00:51,731 [ INFO][       Thread-612966][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:00:51,734 [DEBUG][       Thread-612966][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:00:51,734 [DEBUG][       Thread-612966][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:00:51,734 [DEBUG][       Thread-612966][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:00:51,734 [DEBUG][       Thread-612966][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:00:51,734 [DEBUG][       Thread-612966][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:00:51,734 [DEBUG][       Thread-612966][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:00:51,734 [DEBUG][       Thread-612966][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:00:51,734 [DEBUG][       Thread-612966][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:00:51,734 [DEBUG][       Thread-612966][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:00:51,735 [DEBUG][       Thread-612966][   transport.py][1871] : client lang: <none>
2025-07-01 18:00:51,735 [DEBUG][       Thread-612966][   transport.py][1871] : server lang: <none>
2025-07-01 18:00:51,735 [DEBUG][       Thread-612966][   transport.py][1871] : kex follows: False
2025-07-01 18:00:51,735 [DEBUG][       Thread-612966][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:00:51,735 [DEBUG][       Thread-612966][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:00:51,735 [DEBUG][       Thread-612966][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:00:51,735 [DEBUG][       Thread-612966][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:00:51,735 [DEBUG][       Thread-612966][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:00:51,735 [DEBUG][       Thread-612966][   transport.py][1871] : Compression: none
2025-07-01 18:00:51,735 [DEBUG][       Thread-612966][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:00:51,743 [DEBUG][       Thread-612966][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:00:51,744 [DEBUG][       Thread-612966][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:00:51,744 [DEBUG][       Thread-612966][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:00:51,744 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:00:51,745 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:00:51,746 [DEBUG][       Thread-612966][   transport.py][1871] : userauth is OK
2025-07-01 18:00:51,759 [ INFO][       Thread-612966][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:00:51,760 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:00:52,416 [DEBUG][       Thread-612966][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:00:52,416 [DEBUG][       Thread-612966][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:00:52,457 [DEBUG][       Thread-612966][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:00:52,457 [DEBUG][       Thread-612966][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:00:52,460 [DEBUG][       Thread-612966][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:00:52,472 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:00:52,472 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:00:52,474 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:00:52,476 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:00:52,482 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:00:52,484 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:00:52,484 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:00:52,485 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:00:52,485 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.666951 -999.00  +12.20  25.81     54   +3.30 1 2 1 1 1   608    0 8.49 -21.28 ----- 32.3 25.8 21.6 35.5 12.9 -16.7 12.7 -16.7 12.5 -16.6 12.9 -16.9
2025-07-01 18:00:52,485 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:00:52,485 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:00:52,485 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.666951
2025-07-01 18:00:52,486 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:00:52,486 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:00:52,486 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:00:52,486 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:00:52,486 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:00:52,487 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:00:24', tmtdew=10.17, humidity=49.78, cloud=0.0, wind=32.96, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:00:24.566', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:00:52,488 [DEBUG][       Thread-612966][   transport.py][1871] : EOF in transport thread
2025-07-01 18:00:52,571 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:00:52,583 [DEBUG][       Thread-612969][   transport.py][1871] : starting thread (client mode): 0x81e7c10
2025-07-01 18:00:52,583 [DEBUG][       Thread-612969][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:00:52,598 [DEBUG][       Thread-612969][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:00:52,598 [ INFO][       Thread-612969][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:00:52,605 [DEBUG][       Thread-612969][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:00:52,606 [DEBUG][       Thread-612969][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:00:52,606 [DEBUG][       Thread-612969][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:00:52,606 [DEBUG][       Thread-612969][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:00:52,606 [DEBUG][       Thread-612969][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:00:52,606 [DEBUG][       Thread-612969][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:00:52,606 [DEBUG][       Thread-612969][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:00:52,606 [DEBUG][       Thread-612969][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:00:52,606 [DEBUG][       Thread-612969][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:00:52,606 [DEBUG][       Thread-612969][   transport.py][1871] : client lang: <none>
2025-07-01 18:00:52,606 [DEBUG][       Thread-612969][   transport.py][1871] : server lang: <none>
2025-07-01 18:00:52,606 [DEBUG][       Thread-612969][   transport.py][1871] : kex follows: False
2025-07-01 18:00:52,606 [DEBUG][       Thread-612969][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:00:52,606 [DEBUG][       Thread-612969][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:00:52,606 [DEBUG][       Thread-612969][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:00:52,606 [DEBUG][       Thread-612969][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:00:52,606 [DEBUG][       Thread-612969][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:00:52,606 [DEBUG][       Thread-612969][   transport.py][1871] : Compression: none
2025-07-01 18:00:52,606 [DEBUG][       Thread-612969][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:00:52,662 [DEBUG][       Thread-612969][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:00:52,663 [DEBUG][       Thread-612969][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:00:52,663 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:00:52,664 [DEBUG][       Thread-612969][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:00:52,665 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:00:52,718 [DEBUG][       Thread-612969][   transport.py][1871] : userauth is OK
2025-07-01 18:00:52,718 [DEBUG][       Thread-612969][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:00:52,718 [DEBUG][       Thread-612969][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:00:52,718 [DEBUG][       Thread-612969][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:00:52,718 [DEBUG][       Thread-612969][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:00:52,736 [ INFO][       Thread-612969][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:00:52,737 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:00:52,737 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:00:53,744 [DEBUG][       Thread-612969][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:00:53,745 [DEBUG][       Thread-612969][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:00:53,796 [DEBUG][       Thread-612969][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:00:53,796 [DEBUG][       Thread-612969][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:00:53,805 [DEBUG][       Thread-612969][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:00:53,814 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:00:53,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-07-01 18:00:53,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-07-01 18:00:53,832 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:00:53,833 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:00:53,833 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:00:53,841 [DEBUG][       Thread-612969][   transport.py][1871] : EOF in transport thread
2025-07-01 18:00:59,899 [DEBUG][Thread-612971 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:01:03,843 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:01:03,844 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:01:03,844 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:01:03,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-07-01 18:01:04,355 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 0, 56), 10.16, 49.81, 0.0, 32.08, 12.36, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:01:04,355 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:00:56
2025-07-01 18:01:04,438 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:01:04,442 [DEBUG][       Thread-612972][   transport.py][1871] : starting thread (client mode): 0x81e4bb0
2025-07-01 18:01:04,442 [DEBUG][       Thread-612972][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:01:04,463 [DEBUG][       Thread-612972][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:01:04,463 [ INFO][       Thread-612972][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:01:04,467 [DEBUG][       Thread-612972][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:01:04,467 [DEBUG][       Thread-612972][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:01:04,467 [DEBUG][       Thread-612972][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:01:04,467 [DEBUG][       Thread-612972][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:01:04,467 [DEBUG][       Thread-612972][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:01:04,467 [DEBUG][       Thread-612972][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:01:04,467 [DEBUG][       Thread-612972][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:01:04,467 [DEBUG][       Thread-612972][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:01:04,467 [DEBUG][       Thread-612972][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:01:04,467 [DEBUG][       Thread-612972][   transport.py][1871] : client lang: <none>
2025-07-01 18:01:04,467 [DEBUG][       Thread-612972][   transport.py][1871] : server lang: <none>
2025-07-01 18:01:04,467 [DEBUG][       Thread-612972][   transport.py][1871] : kex follows: False
2025-07-01 18:01:04,467 [DEBUG][       Thread-612972][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:01:04,467 [DEBUG][       Thread-612972][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:01:04,467 [DEBUG][       Thread-612972][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:01:04,467 [DEBUG][       Thread-612972][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:01:04,467 [DEBUG][       Thread-612972][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:01:04,467 [DEBUG][       Thread-612972][   transport.py][1871] : Compression: none
2025-07-01 18:01:04,467 [DEBUG][       Thread-612972][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:01:04,483 [DEBUG][       Thread-612972][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:01:04,483 [DEBUG][       Thread-612972][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:01:04,484 [DEBUG][       Thread-612972][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:01:04,484 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:01:04,484 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:01:04,486 [DEBUG][       Thread-612972][   transport.py][1871] : userauth is OK
2025-07-01 18:01:04,510 [ INFO][       Thread-612972][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:01:04,510 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:01:05,141 [DEBUG][       Thread-612972][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:01:05,141 [DEBUG][       Thread-612972][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:01:05,185 [DEBUG][       Thread-612972][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:01:05,185 [DEBUG][       Thread-612972][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:01:05,189 [DEBUG][       Thread-612972][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:01:05,201 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:01:05,202 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:01:05,204 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:01:05,206 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:01:05,212 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:01:05,214 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:01:05,214 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:01:05,215 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:01:05,215 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.666951 -999.00  +12.20  25.81     54   +3.30 1 2 1 1 1   608    0 8.49 -21.28 ----- 32.3 25.8 21.6 35.5 12.9 -16.7 12.7 -16.7 12.5 -16.6 12.9 -16.9
2025-07-01 18:01:05,215 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:01:05,215 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:01:05,216 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.666951
2025-07-01 18:01:05,216 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:01:05,217 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:01:05,217 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:01:05,217 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:01:05,217 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:01:05,217 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:00:56', tmtdew=10.16, humidity=49.81, cloud=0.0, wind=32.08, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:00:24.566', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:01:05,218 [DEBUG][       Thread-612972][   transport.py][1871] : EOF in transport thread
2025-07-01 18:01:05,312 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:01:05,322 [DEBUG][       Thread-612975][   transport.py][1871] : starting thread (client mode): 0x8393f10
2025-07-01 18:01:05,322 [DEBUG][       Thread-612975][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:01:05,336 [DEBUG][       Thread-612975][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:01:05,336 [ INFO][       Thread-612975][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:01:05,344 [DEBUG][       Thread-612975][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:01:05,344 [DEBUG][       Thread-612975][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:01:05,344 [DEBUG][       Thread-612975][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:01:05,344 [DEBUG][       Thread-612975][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:01:05,344 [DEBUG][       Thread-612975][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:01:05,344 [DEBUG][       Thread-612975][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:01:05,344 [DEBUG][       Thread-612975][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:01:05,344 [DEBUG][       Thread-612975][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:01:05,344 [DEBUG][       Thread-612975][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:01:05,344 [DEBUG][       Thread-612975][   transport.py][1871] : client lang: <none>
2025-07-01 18:01:05,344 [DEBUG][       Thread-612975][   transport.py][1871] : server lang: <none>
2025-07-01 18:01:05,344 [DEBUG][       Thread-612975][   transport.py][1871] : kex follows: False
2025-07-01 18:01:05,344 [DEBUG][       Thread-612975][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:01:05,344 [DEBUG][       Thread-612975][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:01:05,344 [DEBUG][       Thread-612975][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:01:05,344 [DEBUG][       Thread-612975][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:01:05,345 [DEBUG][       Thread-612975][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:01:05,345 [DEBUG][       Thread-612975][   transport.py][1871] : Compression: none
2025-07-01 18:01:05,345 [DEBUG][       Thread-612975][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:01:05,402 [DEBUG][       Thread-612975][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:01:05,402 [DEBUG][       Thread-612975][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:01:05,403 [DEBUG][       Thread-612975][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:01:05,403 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:01:05,404 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:01:05,462 [DEBUG][       Thread-612975][   transport.py][1871] : userauth is OK
2025-07-01 18:01:05,462 [DEBUG][       Thread-612975][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:01:05,462 [DEBUG][       Thread-612975][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:01:05,462 [DEBUG][       Thread-612975][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:01:05,462 [DEBUG][       Thread-612975][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:01:05,481 [ INFO][       Thread-612975][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:01:05,482 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:01:05,482 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:01:06,508 [DEBUG][       Thread-612975][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:01:06,508 [DEBUG][       Thread-612975][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:01:06,556 [DEBUG][       Thread-612975][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:01:06,556 [DEBUG][       Thread-612975][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:01:06,565 [DEBUG][       Thread-612975][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:01:06,574 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:01:06,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-07-01 18:01:06,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') -> 00000000
2025-07-01 18:01:06,593 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:01:06,593 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:01:06,594 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:01:06,602 [DEBUG][       Thread-612975][   transport.py][1871] : EOF in transport thread
2025-07-01 18:01:08,921 [DEBUG][Thread-612977 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:01:16,604 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:01:16,604 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:01:16,604 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:01:16,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-07-01 18:01:17,126 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 0, 56), 10.16, 49.81, 0.0, 32.08, 12.36, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:01:17,126 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:00:56
2025-07-01 18:01:17,214 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:01:17,219 [DEBUG][       Thread-612978][   transport.py][1871] : starting thread (client mode): 0x8156530
2025-07-01 18:01:17,219 [DEBUG][       Thread-612978][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:01:17,240 [DEBUG][       Thread-612978][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:01:17,240 [ INFO][       Thread-612978][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:01:17,243 [DEBUG][       Thread-612978][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:01:17,243 [DEBUG][       Thread-612978][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:01:17,243 [DEBUG][       Thread-612978][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:01:17,243 [DEBUG][       Thread-612978][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:01:17,243 [DEBUG][       Thread-612978][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:01:17,243 [DEBUG][       Thread-612978][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:01:17,243 [DEBUG][       Thread-612978][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:01:17,243 [DEBUG][       Thread-612978][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:01:17,243 [DEBUG][       Thread-612978][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:01:17,243 [DEBUG][       Thread-612978][   transport.py][1871] : client lang: <none>
2025-07-01 18:01:17,243 [DEBUG][       Thread-612978][   transport.py][1871] : server lang: <none>
2025-07-01 18:01:17,243 [DEBUG][       Thread-612978][   transport.py][1871] : kex follows: False
2025-07-01 18:01:17,243 [DEBUG][       Thread-612978][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:01:17,243 [DEBUG][       Thread-612978][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:01:17,243 [DEBUG][       Thread-612978][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:01:17,243 [DEBUG][       Thread-612978][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:01:17,243 [DEBUG][       Thread-612978][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:01:17,243 [DEBUG][       Thread-612978][   transport.py][1871] : Compression: none
2025-07-01 18:01:17,243 [DEBUG][       Thread-612978][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:01:17,260 [DEBUG][       Thread-612978][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:01:17,260 [DEBUG][       Thread-612978][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:01:17,260 [DEBUG][       Thread-612978][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:01:17,260 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:01:17,260 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:01:17,261 [DEBUG][       Thread-612978][   transport.py][1871] : userauth is OK
2025-07-01 18:01:17,284 [ INFO][       Thread-612978][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:01:17,285 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:01:17,960 [DEBUG][Thread-612980 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:01:17,976 [DEBUG][       Thread-612978][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:01:17,976 [DEBUG][       Thread-612978][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:01:18,020 [DEBUG][       Thread-612978][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:01:18,020 [DEBUG][       Thread-612978][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:01:18,023 [DEBUG][       Thread-612978][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:01:18,036 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:01:18,036 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:01:18,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:01:18,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:01:18,041 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:01:18,042 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:01:18,042 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:01:18,042 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:01:18,042 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.667298 -999.00  +12.20  26.51     54   +3.30 1 2 1 1 1   589    0 8.36 -21.18 ----- 24.8 26.5 10.5 38.2 12.9 -17.2 12.7 -17.0 12.5 -16.9 12.8 -17.2
2025-07-01 18:01:18,042 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:01:18,042 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:01:18,042 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.667298
2025-07-01 18:01:18,042 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:01:18,042 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:01:18,042 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:01:18,042 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:01:18,042 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:01:18,042 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:00:56', tmtdew=10.16, humidity=49.81, cloud=0.0, wind=32.08, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:00:54.547', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:01:18,043 [DEBUG][       Thread-612978][   transport.py][1871] : EOF in transport thread
2025-07-01 18:01:18,114 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:01:18,125 [DEBUG][       Thread-612982][   transport.py][1871] : starting thread (client mode): 0x81e5d20
2025-07-01 18:01:18,125 [DEBUG][       Thread-612982][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:01:18,140 [DEBUG][       Thread-612982][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:01:18,140 [ INFO][       Thread-612982][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:01:18,147 [DEBUG][       Thread-612982][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:01:18,147 [DEBUG][       Thread-612982][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:01:18,147 [DEBUG][       Thread-612982][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:01:18,147 [DEBUG][       Thread-612982][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:01:18,147 [DEBUG][       Thread-612982][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:01:18,147 [DEBUG][       Thread-612982][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:01:18,147 [DEBUG][       Thread-612982][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:01:18,147 [DEBUG][       Thread-612982][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:01:18,147 [DEBUG][       Thread-612982][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:01:18,147 [DEBUG][       Thread-612982][   transport.py][1871] : client lang: <none>
2025-07-01 18:01:18,147 [DEBUG][       Thread-612982][   transport.py][1871] : server lang: <none>
2025-07-01 18:01:18,147 [DEBUG][       Thread-612982][   transport.py][1871] : kex follows: False
2025-07-01 18:01:18,147 [DEBUG][       Thread-612982][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:01:18,147 [DEBUG][       Thread-612982][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:01:18,147 [DEBUG][       Thread-612982][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:01:18,147 [DEBUG][       Thread-612982][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:01:18,147 [DEBUG][       Thread-612982][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:01:18,147 [DEBUG][       Thread-612982][   transport.py][1871] : Compression: none
2025-07-01 18:01:18,147 [DEBUG][       Thread-612982][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:01:18,204 [DEBUG][       Thread-612982][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:01:18,204 [DEBUG][       Thread-612982][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:01:18,204 [DEBUG][       Thread-612982][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:01:18,204 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:01:18,204 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:01:18,261 [DEBUG][       Thread-612982][   transport.py][1871] : userauth is OK
2025-07-01 18:01:18,261 [DEBUG][       Thread-612982][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:01:18,261 [DEBUG][       Thread-612982][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:01:18,261 [DEBUG][       Thread-612982][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:01:18,261 [DEBUG][       Thread-612982][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:01:18,275 [ INFO][       Thread-612982][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:01:18,275 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:01:18,275 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:01:19,313 [DEBUG][       Thread-612982][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:01:19,313 [DEBUG][       Thread-612982][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:01:19,363 [DEBUG][       Thread-612982][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:01:19,363 [DEBUG][       Thread-612982][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:01:19,372 [DEBUG][       Thread-612982][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:01:19,380 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:01:19,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-07-01 18:01:19,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-07-01 18:01:19,396 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:01:19,396 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:01:19,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:01:19,403 [DEBUG][       Thread-612982][   transport.py][1871] : EOF in transport thread
2025-07-01 18:01:26,978 [DEBUG][Thread-612984 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:01:29,406 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:01:29,406 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:01:29,406 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:01:29,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-07-01 18:01:29,932 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 0, 56), 10.16, 49.81, 0.0, 32.08, 12.36, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:01:29,932 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:00:56
2025-07-01 18:01:30,022 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:01:30,026 [DEBUG][       Thread-612985][   transport.py][1871] : starting thread (client mode): 0x81e6260
2025-07-01 18:01:30,026 [DEBUG][       Thread-612985][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:01:30,046 [DEBUG][       Thread-612985][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:01:30,046 [ INFO][       Thread-612985][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:01:30,050 [DEBUG][       Thread-612985][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:01:30,050 [DEBUG][       Thread-612985][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:01:30,050 [DEBUG][       Thread-612985][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:01:30,050 [DEBUG][       Thread-612985][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:01:30,050 [DEBUG][       Thread-612985][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:01:30,050 [DEBUG][       Thread-612985][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:01:30,050 [DEBUG][       Thread-612985][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:01:30,050 [DEBUG][       Thread-612985][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:01:30,050 [DEBUG][       Thread-612985][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:01:30,050 [DEBUG][       Thread-612985][   transport.py][1871] : client lang: <none>
2025-07-01 18:01:30,050 [DEBUG][       Thread-612985][   transport.py][1871] : server lang: <none>
2025-07-01 18:01:30,050 [DEBUG][       Thread-612985][   transport.py][1871] : kex follows: False
2025-07-01 18:01:30,050 [DEBUG][       Thread-612985][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:01:30,050 [DEBUG][       Thread-612985][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:01:30,050 [DEBUG][       Thread-612985][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:01:30,050 [DEBUG][       Thread-612985][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:01:30,050 [DEBUG][       Thread-612985][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:01:30,050 [DEBUG][       Thread-612985][   transport.py][1871] : Compression: none
2025-07-01 18:01:30,050 [DEBUG][       Thread-612985][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:01:30,064 [DEBUG][       Thread-612985][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:01:30,064 [DEBUG][       Thread-612985][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:01:30,064 [DEBUG][       Thread-612985][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:01:30,064 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:01:30,064 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:01:30,065 [DEBUG][       Thread-612985][   transport.py][1871] : userauth is OK
2025-07-01 18:01:30,078 [ INFO][       Thread-612985][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:01:30,078 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:01:30,739 [DEBUG][       Thread-612985][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:01:30,739 [DEBUG][       Thread-612985][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:01:30,781 [DEBUG][       Thread-612985][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:01:30,781 [DEBUG][       Thread-612985][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:01:30,784 [DEBUG][       Thread-612985][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:01:30,795 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:01:30,796 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:01:30,798 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:01:30,799 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:01:30,805 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:01:30,807 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:01:30,807 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:01:30,808 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:01:30,808 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.667298 -999.00  +12.20  26.51     54   +3.30 1 2 1 1 1   589    0 8.36 -21.18 ----- 24.8 26.5 10.5 38.2 12.9 -17.2 12.7 -17.0 12.5 -16.9 12.8 -17.2
2025-07-01 18:01:30,808 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:01:30,808 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:01:30,808 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.667298
2025-07-01 18:01:30,808 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:01:30,809 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:01:30,809 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:01:30,809 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:01:30,809 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:01:30,809 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:00:56', tmtdew=10.16, humidity=49.81, cloud=0.0, wind=32.08, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:00:54.547', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:01:30,810 [DEBUG][       Thread-612985][   transport.py][1871] : EOF in transport thread
2025-07-01 18:01:30,894 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:01:30,906 [DEBUG][       Thread-612988][   transport.py][1871] : starting thread (client mode): 0x83939d0
2025-07-01 18:01:30,906 [DEBUG][       Thread-612988][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:01:30,922 [DEBUG][       Thread-612988][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:01:30,922 [ INFO][       Thread-612988][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:01:30,929 [DEBUG][       Thread-612988][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:01:30,929 [DEBUG][       Thread-612988][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:01:30,929 [DEBUG][       Thread-612988][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:01:30,929 [DEBUG][       Thread-612988][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:01:30,929 [DEBUG][       Thread-612988][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:01:30,929 [DEBUG][       Thread-612988][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:01:30,929 [DEBUG][       Thread-612988][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:01:30,929 [DEBUG][       Thread-612988][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:01:30,929 [DEBUG][       Thread-612988][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:01:30,929 [DEBUG][       Thread-612988][   transport.py][1871] : client lang: <none>
2025-07-01 18:01:30,929 [DEBUG][       Thread-612988][   transport.py][1871] : server lang: <none>
2025-07-01 18:01:30,929 [DEBUG][       Thread-612988][   transport.py][1871] : kex follows: False
2025-07-01 18:01:30,929 [DEBUG][       Thread-612988][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:01:30,929 [DEBUG][       Thread-612988][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:01:30,929 [DEBUG][       Thread-612988][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:01:30,929 [DEBUG][       Thread-612988][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:01:30,929 [DEBUG][       Thread-612988][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:01:30,929 [DEBUG][       Thread-612988][   transport.py][1871] : Compression: none
2025-07-01 18:01:30,929 [DEBUG][       Thread-612988][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:01:30,991 [DEBUG][       Thread-612988][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:01:30,991 [DEBUG][       Thread-612988][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:01:30,992 [DEBUG][       Thread-612988][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:01:30,992 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:01:30,993 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:01:31,050 [DEBUG][       Thread-612988][   transport.py][1871] : userauth is OK
2025-07-01 18:01:31,050 [DEBUG][       Thread-612988][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:01:31,050 [DEBUG][       Thread-612988][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:01:31,050 [DEBUG][       Thread-612988][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:01:31,050 [DEBUG][       Thread-612988][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:01:31,069 [ INFO][       Thread-612988][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:01:31,070 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:01:31,070 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:01:32,101 [DEBUG][       Thread-612988][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:01:32,101 [DEBUG][       Thread-612988][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:01:32,152 [DEBUG][       Thread-612988][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:01:32,152 [DEBUG][       Thread-612988][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:01:32,161 [DEBUG][       Thread-612988][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:01:32,170 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:01:32,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-07-01 18:01:32,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-07-01 18:01:32,188 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:01:32,189 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:01:32,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:01:32,197 [DEBUG][       Thread-612988][   transport.py][1871] : EOF in transport thread
2025-07-01 18:01:35,999 [DEBUG][Thread-612990 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:01:42,026 [DEBUG][Thread-612991 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:01:42,200 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:01:42,200 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:01:42,200 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:01:42,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-07-01 18:01:42,708 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 1, 28), 10.13, 49.81, 0.0, 34.21, 12.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:01:42,708 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:01:28
2025-07-01 18:01:42,792 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:01:42,796 [DEBUG][       Thread-612992][   transport.py][1871] : starting thread (client mode): 0x8171ff0
2025-07-01 18:01:42,796 [DEBUG][       Thread-612992][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:01:42,815 [DEBUG][       Thread-612992][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:01:42,815 [ INFO][       Thread-612992][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:01:42,818 [DEBUG][       Thread-612992][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:01:42,819 [DEBUG][       Thread-612992][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:01:42,819 [DEBUG][       Thread-612992][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:01:42,819 [DEBUG][       Thread-612992][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:01:42,819 [DEBUG][       Thread-612992][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:01:42,819 [DEBUG][       Thread-612992][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:01:42,819 [DEBUG][       Thread-612992][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:01:42,819 [DEBUG][       Thread-612992][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:01:42,819 [DEBUG][       Thread-612992][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:01:42,819 [DEBUG][       Thread-612992][   transport.py][1871] : client lang: <none>
2025-07-01 18:01:42,819 [DEBUG][       Thread-612992][   transport.py][1871] : server lang: <none>
2025-07-01 18:01:42,819 [DEBUG][       Thread-612992][   transport.py][1871] : kex follows: False
2025-07-01 18:01:42,819 [DEBUG][       Thread-612992][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:01:42,819 [DEBUG][       Thread-612992][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:01:42,819 [DEBUG][       Thread-612992][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:01:42,819 [DEBUG][       Thread-612992][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:01:42,819 [DEBUG][       Thread-612992][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:01:42,819 [DEBUG][       Thread-612992][   transport.py][1871] : Compression: none
2025-07-01 18:01:42,819 [DEBUG][       Thread-612992][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:01:42,831 [DEBUG][       Thread-612992][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:01:42,831 [DEBUG][       Thread-612992][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:01:42,832 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:01:42,832 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:01:42,832 [DEBUG][       Thread-612992][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:01:42,833 [DEBUG][       Thread-612992][   transport.py][1871] : userauth is OK
2025-07-01 18:01:42,846 [ INFO][       Thread-612992][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:01:42,846 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:01:43,444 [DEBUG][       Thread-612992][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:01:43,453 [DEBUG][       Thread-612992][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:01:43,489 [DEBUG][       Thread-612992][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:01:43,489 [DEBUG][       Thread-612992][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:01:43,492 [DEBUG][       Thread-612992][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:01:43,501 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:01:43,502 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:01:43,504 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:01:43,505 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:01:43,510 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:01:43,512 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:01:43,512 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:01:43,513 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:01:43,513 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.667645 -999.00  +12.20  28.40     54   +3.30 1 2 1 1 1   570    0 8.36 -23.62 ----- 21.0 28.4 26.4 39.9 12.9 -17.4 12.7 -17.2 12.5 -17.4 12.9 -17.6
2025-07-01 18:01:43,513 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:01:43,513 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:01:43,514 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.667645
2025-07-01 18:01:43,514 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:01:43,514 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:01:43,515 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:01:43,515 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:01:43,515 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:01:43,515 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:01:28', tmtdew=10.13, humidity=49.81, cloud=0.0, wind=34.21, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:01:24.528', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:01:43,515 [DEBUG][       Thread-612992][   transport.py][1871] : EOF in transport thread
2025-07-01 18:01:43,598 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:01:43,608 [DEBUG][       Thread-612995][   transport.py][1871] : starting thread (client mode): 0x8393a60
2025-07-01 18:01:43,608 [DEBUG][       Thread-612995][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:01:43,631 [DEBUG][       Thread-612995][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:01:43,631 [ INFO][       Thread-612995][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:01:43,639 [DEBUG][       Thread-612995][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:01:43,639 [DEBUG][       Thread-612995][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:01:43,639 [DEBUG][       Thread-612995][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:01:43,639 [DEBUG][       Thread-612995][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:01:43,639 [DEBUG][       Thread-612995][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:01:43,639 [DEBUG][       Thread-612995][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:01:43,639 [DEBUG][       Thread-612995][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:01:43,640 [DEBUG][       Thread-612995][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:01:43,640 [DEBUG][       Thread-612995][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:01:43,640 [DEBUG][       Thread-612995][   transport.py][1871] : client lang: <none>
2025-07-01 18:01:43,640 [DEBUG][       Thread-612995][   transport.py][1871] : server lang: <none>
2025-07-01 18:01:43,640 [DEBUG][       Thread-612995][   transport.py][1871] : kex follows: False
2025-07-01 18:01:43,640 [DEBUG][       Thread-612995][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:01:43,640 [DEBUG][       Thread-612995][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:01:43,640 [DEBUG][       Thread-612995][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:01:43,640 [DEBUG][       Thread-612995][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:01:43,640 [DEBUG][       Thread-612995][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:01:43,640 [DEBUG][       Thread-612995][   transport.py][1871] : Compression: none
2025-07-01 18:01:43,640 [DEBUG][       Thread-612995][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:01:43,697 [DEBUG][       Thread-612995][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:01:43,698 [DEBUG][       Thread-612995][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:01:43,698 [DEBUG][       Thread-612995][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:01:43,699 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:01:43,699 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:01:43,754 [DEBUG][       Thread-612995][   transport.py][1871] : userauth is OK
2025-07-01 18:01:43,754 [DEBUG][       Thread-612995][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:01:43,754 [DEBUG][       Thread-612995][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:01:43,754 [DEBUG][       Thread-612995][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:01:43,755 [DEBUG][       Thread-612995][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:01:43,773 [ INFO][       Thread-612995][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:01:43,773 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:01:43,774 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:01:44,823 [DEBUG][       Thread-612995][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:01:44,824 [DEBUG][       Thread-612995][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:01:44,876 [DEBUG][       Thread-612995][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:01:44,876 [DEBUG][       Thread-612995][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:01:44,885 [DEBUG][       Thread-612995][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:01:44,895 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:01:44,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-07-01 18:01:44,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-07-01 18:01:44,922 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:01:44,923 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:01:44,923 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:01:44,933 [DEBUG][       Thread-612995][   transport.py][1871] : EOF in transport thread
2025-07-01 18:01:45,023 [DEBUG][Thread-612997 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:01:54,067 [DEBUG][Thread-612998 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:01:54,934 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:01:54,934 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:01:54,934 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:01:54,937 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 18:01:55,429 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 1, 28), 10.13, 49.81, 0.0, 34.21, 12.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:01:55,429 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:01:28
2025-07-01 18:01:55,512 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:01:55,516 [DEBUG][       Thread-612999][   transport.py][1871] : starting thread (client mode): 0x81738b0
2025-07-01 18:01:55,516 [DEBUG][       Thread-612999][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:01:55,539 [DEBUG][       Thread-612999][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:01:55,539 [ INFO][       Thread-612999][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:01:55,543 [DEBUG][       Thread-612999][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:01:55,543 [DEBUG][       Thread-612999][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:01:55,543 [DEBUG][       Thread-612999][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:01:55,543 [DEBUG][       Thread-612999][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:01:55,543 [DEBUG][       Thread-612999][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:01:55,543 [DEBUG][       Thread-612999][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:01:55,543 [DEBUG][       Thread-612999][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:01:55,544 [DEBUG][       Thread-612999][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:01:55,544 [DEBUG][       Thread-612999][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:01:55,544 [DEBUG][       Thread-612999][   transport.py][1871] : client lang: <none>
2025-07-01 18:01:55,544 [DEBUG][       Thread-612999][   transport.py][1871] : server lang: <none>
2025-07-01 18:01:55,544 [DEBUG][       Thread-612999][   transport.py][1871] : kex follows: False
2025-07-01 18:01:55,544 [DEBUG][       Thread-612999][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:01:55,544 [DEBUG][       Thread-612999][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:01:55,544 [DEBUG][       Thread-612999][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:01:55,544 [DEBUG][       Thread-612999][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:01:55,544 [DEBUG][       Thread-612999][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:01:55,544 [DEBUG][       Thread-612999][   transport.py][1871] : Compression: none
2025-07-01 18:01:55,544 [DEBUG][       Thread-612999][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:01:55,561 [DEBUG][       Thread-612999][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:01:55,561 [DEBUG][       Thread-612999][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:01:55,562 [DEBUG][       Thread-612999][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:01:55,562 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:01:55,562 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:01:55,563 [DEBUG][       Thread-612999][   transport.py][1871] : userauth is OK
2025-07-01 18:01:55,588 [ INFO][       Thread-612999][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:01:55,589 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:01:56,239 [DEBUG][       Thread-612999][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:01:56,240 [DEBUG][       Thread-612999][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:01:56,281 [DEBUG][       Thread-612999][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:01:56,281 [DEBUG][       Thread-612999][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:01:56,284 [DEBUG][       Thread-612999][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:01:56,298 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:01:56,299 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:01:56,300 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:01:56,302 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:01:56,308 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:01:56,309 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:01:56,309 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:01:56,310 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:01:56,310 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.667645 -999.00  +12.20  28.40     54   +3.30 1 2 1 1 1   570    0 8.36 -23.62 ----- 21.0 28.4 26.4 39.9 12.9 -17.4 12.7 -17.2 12.5 -17.4 12.9 -17.6
2025-07-01 18:01:56,310 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:01:56,310 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:01:56,310 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.667645
2025-07-01 18:01:56,311 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:01:56,311 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:01:56,311 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:01:56,312 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:01:56,312 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:01:56,312 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:01:28', tmtdew=10.13, humidity=49.81, cloud=0.0, wind=34.21, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:01:24.528', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:01:56,312 [DEBUG][       Thread-612999][   transport.py][1871] : EOF in transport thread
2025-07-01 18:01:56,396 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:01:56,407 [DEBUG][       Thread-613002][   transport.py][1871] : starting thread (client mode): 0x83938e0
2025-07-01 18:01:56,407 [DEBUG][       Thread-613002][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:01:56,422 [DEBUG][       Thread-613002][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:01:56,422 [ INFO][       Thread-613002][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:01:56,430 [DEBUG][       Thread-613002][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:01:56,430 [DEBUG][       Thread-613002][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:01:56,430 [DEBUG][       Thread-613002][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:01:56,430 [DEBUG][       Thread-613002][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:01:56,430 [DEBUG][       Thread-613002][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:01:56,430 [DEBUG][       Thread-613002][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:01:56,430 [DEBUG][       Thread-613002][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:01:56,430 [DEBUG][       Thread-613002][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:01:56,430 [DEBUG][       Thread-613002][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:01:56,430 [DEBUG][       Thread-613002][   transport.py][1871] : client lang: <none>
2025-07-01 18:01:56,430 [DEBUG][       Thread-613002][   transport.py][1871] : server lang: <none>
2025-07-01 18:01:56,430 [DEBUG][       Thread-613002][   transport.py][1871] : kex follows: False
2025-07-01 18:01:56,430 [DEBUG][       Thread-613002][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:01:56,430 [DEBUG][       Thread-613002][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:01:56,430 [DEBUG][       Thread-613002][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:01:56,430 [DEBUG][       Thread-613002][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:01:56,430 [DEBUG][       Thread-613002][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:01:56,430 [DEBUG][       Thread-613002][   transport.py][1871] : Compression: none
2025-07-01 18:01:56,430 [DEBUG][       Thread-613002][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:01:56,489 [DEBUG][       Thread-613002][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:01:56,490 [DEBUG][       Thread-613002][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:01:56,490 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:01:56,491 [DEBUG][       Thread-613002][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:01:56,492 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:01:56,545 [DEBUG][       Thread-613002][   transport.py][1871] : userauth is OK
2025-07-01 18:01:56,545 [DEBUG][       Thread-613002][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:01:56,546 [DEBUG][       Thread-613002][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:01:56,546 [DEBUG][       Thread-613002][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:01:56,546 [DEBUG][       Thread-613002][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:01:56,564 [ INFO][       Thread-613002][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:01:56,564 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:01:56,564 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:01:57,576 [DEBUG][       Thread-613002][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:01:57,576 [DEBUG][       Thread-613002][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:01:57,623 [DEBUG][       Thread-613002][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:01:57,623 [DEBUG][       Thread-613002][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:01:57,631 [DEBUG][       Thread-613002][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:01:57,639 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:01:57,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-07-01 18:01:57,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-07-01 18:01:57,655 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:01:57,655 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:01:57,655 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:01:57,664 [DEBUG][       Thread-613002][   transport.py][1871] : EOF in transport thread
2025-07-01 18:02:03,086 [DEBUG][Thread-613004 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:02:07,659 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:02:07,660 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:02:07,660 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:02:07,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-07-01 18:02:08,160 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 1, 28), 10.13, 49.81, 0.0, 34.21, 12.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:02:08,160 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:01:28
2025-07-01 18:02:08,242 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:02:08,246 [DEBUG][       Thread-613005][   transport.py][1871] : starting thread (client mode): 0x81576a0
2025-07-01 18:02:08,246 [DEBUG][       Thread-613005][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:02:08,268 [DEBUG][       Thread-613005][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:02:08,268 [ INFO][       Thread-613005][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:02:08,271 [DEBUG][       Thread-613005][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:02:08,271 [DEBUG][       Thread-613005][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:02:08,271 [DEBUG][       Thread-613005][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:02:08,271 [DEBUG][       Thread-613005][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:02:08,271 [DEBUG][       Thread-613005][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:02:08,271 [DEBUG][       Thread-613005][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:02:08,272 [DEBUG][       Thread-613005][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:02:08,272 [DEBUG][       Thread-613005][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:02:08,272 [DEBUG][       Thread-613005][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:02:08,272 [DEBUG][       Thread-613005][   transport.py][1871] : client lang: <none>
2025-07-01 18:02:08,272 [DEBUG][       Thread-613005][   transport.py][1871] : server lang: <none>
2025-07-01 18:02:08,272 [DEBUG][       Thread-613005][   transport.py][1871] : kex follows: False
2025-07-01 18:02:08,272 [DEBUG][       Thread-613005][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:02:08,272 [DEBUG][       Thread-613005][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:02:08,272 [DEBUG][       Thread-613005][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:02:08,272 [DEBUG][       Thread-613005][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:02:08,272 [DEBUG][       Thread-613005][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:02:08,272 [DEBUG][       Thread-613005][   transport.py][1871] : Compression: none
2025-07-01 18:02:08,272 [DEBUG][       Thread-613005][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:02:08,289 [DEBUG][       Thread-613005][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:02:08,290 [DEBUG][       Thread-613005][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:02:08,290 [DEBUG][       Thread-613005][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:02:08,291 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:02:08,291 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:02:08,292 [DEBUG][       Thread-613005][   transport.py][1871] : userauth is OK
2025-07-01 18:02:08,305 [ INFO][       Thread-613005][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:02:08,305 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:02:09,002 [DEBUG][       Thread-613005][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:02:09,002 [DEBUG][       Thread-613005][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:02:09,044 [DEBUG][       Thread-613005][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:02:09,044 [DEBUG][       Thread-613005][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:02:09,047 [DEBUG][       Thread-613005][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:02:09,061 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:02:09,061 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:02:09,062 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:02:09,063 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:02:09,067 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:02:09,069 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:02:09,069 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:02:09,069 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:02:09,069 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.667645 -999.00  +12.20  28.40     54   +3.30 1 2 1 1 1   570    0 8.36 -23.62 ----- 21.0 28.4 26.4 39.9 12.9 -17.4 12.7 -17.2 12.5 -17.4 12.9 -17.6
2025-07-01 18:02:09,069 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:02:09,069 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:02:09,070 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.667645
2025-07-01 18:02:09,070 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:02:09,070 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:02:09,070 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:02:09,070 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:02:09,070 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:02:09,070 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:01:28', tmtdew=10.13, humidity=49.81, cloud=0.0, wind=34.21, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:01:24.528', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:02:09,071 [DEBUG][       Thread-613005][   transport.py][1871] : EOF in transport thread
2025-07-01 18:02:09,143 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:02:09,152 [DEBUG][       Thread-613008][   transport.py][1871] : starting thread (client mode): 0x81e68c0
2025-07-01 18:02:09,152 [DEBUG][       Thread-613008][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:02:09,167 [DEBUG][       Thread-613008][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:02:09,167 [ INFO][       Thread-613008][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:02:09,174 [DEBUG][       Thread-613008][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:02:09,175 [DEBUG][       Thread-613008][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:02:09,175 [DEBUG][       Thread-613008][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:02:09,175 [DEBUG][       Thread-613008][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:02:09,175 [DEBUG][       Thread-613008][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:02:09,175 [DEBUG][       Thread-613008][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:02:09,175 [DEBUG][       Thread-613008][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:02:09,175 [DEBUG][       Thread-613008][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:02:09,175 [DEBUG][       Thread-613008][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:02:09,175 [DEBUG][       Thread-613008][   transport.py][1871] : client lang: <none>
2025-07-01 18:02:09,175 [DEBUG][       Thread-613008][   transport.py][1871] : server lang: <none>
2025-07-01 18:02:09,175 [DEBUG][       Thread-613008][   transport.py][1871] : kex follows: False
2025-07-01 18:02:09,175 [DEBUG][       Thread-613008][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:02:09,175 [DEBUG][       Thread-613008][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:02:09,175 [DEBUG][       Thread-613008][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:02:09,175 [DEBUG][       Thread-613008][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:02:09,175 [DEBUG][       Thread-613008][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:02:09,175 [DEBUG][       Thread-613008][   transport.py][1871] : Compression: none
2025-07-01 18:02:09,175 [DEBUG][       Thread-613008][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:02:09,233 [DEBUG][       Thread-613008][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:02:09,233 [DEBUG][       Thread-613008][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:02:09,234 [DEBUG][       Thread-613008][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:02:09,234 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:02:09,234 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:02:09,289 [DEBUG][       Thread-613008][   transport.py][1871] : userauth is OK
2025-07-01 18:02:09,289 [DEBUG][       Thread-613008][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:02:09,289 [DEBUG][       Thread-613008][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:02:09,289 [DEBUG][       Thread-613008][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:02:09,290 [DEBUG][       Thread-613008][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:02:09,309 [ INFO][       Thread-613008][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:02:09,309 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:02:09,310 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:02:10,324 [DEBUG][       Thread-613008][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:02:10,324 [DEBUG][       Thread-613008][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:02:10,372 [DEBUG][       Thread-613008][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:02:10,372 [DEBUG][       Thread-613008][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:02:10,381 [DEBUG][       Thread-613008][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:02:10,390 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:02:10,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')
2025-07-01 18:02:10,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') -> 00000000
2025-07-01 18:02:10,414 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:02:10,414 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:02:10,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:02:10,423 [DEBUG][       Thread-613008][   transport.py][1871] : EOF in transport thread
2025-07-01 18:02:12,109 [DEBUG][Thread-613010 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:02:20,425 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:02:20,425 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:02:20,434 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:02:20,437 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 18:02:20,933 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 1, 28), 10.13, 49.81, 0.0, 34.21, 12.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:02:20,933 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:01:28
2025-07-01 18:02:21,016 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:02:21,019 [DEBUG][       Thread-613011][   transport.py][1871] : starting thread (client mode): 0x81e79a0
2025-07-01 18:02:21,019 [DEBUG][       Thread-613011][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:02:21,040 [DEBUG][       Thread-613011][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:02:21,040 [ INFO][       Thread-613011][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:02:21,042 [DEBUG][       Thread-613011][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:02:21,042 [DEBUG][       Thread-613011][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:02:21,042 [DEBUG][       Thread-613011][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:02:21,042 [DEBUG][       Thread-613011][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:02:21,042 [DEBUG][       Thread-613011][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:02:21,042 [DEBUG][       Thread-613011][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:02:21,042 [DEBUG][       Thread-613011][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:02:21,042 [DEBUG][       Thread-613011][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:02:21,042 [DEBUG][       Thread-613011][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:02:21,042 [DEBUG][       Thread-613011][   transport.py][1871] : client lang: <none>
2025-07-01 18:02:21,042 [DEBUG][       Thread-613011][   transport.py][1871] : server lang: <none>
2025-07-01 18:02:21,042 [DEBUG][       Thread-613011][   transport.py][1871] : kex follows: False
2025-07-01 18:02:21,042 [DEBUG][       Thread-613011][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:02:21,042 [DEBUG][       Thread-613011][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:02:21,042 [DEBUG][       Thread-613011][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:02:21,042 [DEBUG][       Thread-613011][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:02:21,042 [DEBUG][       Thread-613011][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:02:21,042 [DEBUG][       Thread-613011][   transport.py][1871] : Compression: none
2025-07-01 18:02:21,042 [DEBUG][       Thread-613011][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:02:21,055 [DEBUG][       Thread-613011][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:02:21,056 [DEBUG][       Thread-613011][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:02:21,056 [DEBUG][       Thread-613011][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:02:21,057 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:02:21,057 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:02:21,058 [DEBUG][       Thread-613011][   transport.py][1871] : userauth is OK
2025-07-01 18:02:21,082 [ INFO][       Thread-613011][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:02:21,083 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:02:21,130 [DEBUG][Thread-613013 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:02:21,743 [DEBUG][       Thread-613011][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:02:21,743 [DEBUG][       Thread-613011][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:02:21,785 [DEBUG][       Thread-613011][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:02:21,785 [DEBUG][       Thread-613011][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:02:21,788 [DEBUG][       Thread-613011][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:02:21,799 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:02:21,799 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:02:21,801 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:02:21,803 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:02:21,808 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:02:21,810 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:02:21,811 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:02:21,811 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:02:21,811 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.667992 -999.00  +12.10  26.52     55   +3.30 1 2 1 1 1   550    0 8.27 -23.51 ----- 21.2 26.5 5.6 32.4 12.9 -17.6 12.7 -17.3 12.5 -17.7 12.8 -17.2
2025-07-01 18:02:21,811 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:02:21,812 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:02:21,812 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.667992
2025-07-01 18:02:21,812 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:02:21,813 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:02:21,813 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:02:21,813 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:02:21,813 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:02:21,813 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:01:28', tmtdew=10.13, humidity=49.81, cloud=0.0, wind=34.21, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:01:54.509', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:02:21,814 [DEBUG][       Thread-613011][   transport.py][1871] : EOF in transport thread
2025-07-01 18:02:21,898 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:02:21,907 [DEBUG][       Thread-613015][   transport.py][1871] : starting thread (client mode): 0x8393790
2025-07-01 18:02:21,907 [DEBUG][       Thread-613015][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:02:21,922 [DEBUG][       Thread-613015][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:02:21,922 [ INFO][       Thread-613015][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:02:21,929 [DEBUG][       Thread-613015][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:02:21,930 [DEBUG][       Thread-613015][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:02:21,930 [DEBUG][       Thread-613015][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:02:21,930 [DEBUG][       Thread-613015][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:02:21,930 [DEBUG][       Thread-613015][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:02:21,930 [DEBUG][       Thread-613015][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:02:21,930 [DEBUG][       Thread-613015][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:02:21,930 [DEBUG][       Thread-613015][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:02:21,930 [DEBUG][       Thread-613015][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:02:21,930 [DEBUG][       Thread-613015][   transport.py][1871] : client lang: <none>
2025-07-01 18:02:21,930 [DEBUG][       Thread-613015][   transport.py][1871] : server lang: <none>
2025-07-01 18:02:21,930 [DEBUG][       Thread-613015][   transport.py][1871] : kex follows: False
2025-07-01 18:02:21,930 [DEBUG][       Thread-613015][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:02:21,930 [DEBUG][       Thread-613015][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:02:21,930 [DEBUG][       Thread-613015][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:02:21,930 [DEBUG][       Thread-613015][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:02:21,930 [DEBUG][       Thread-613015][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:02:21,930 [DEBUG][       Thread-613015][   transport.py][1871] : Compression: none
2025-07-01 18:02:21,930 [DEBUG][       Thread-613015][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:02:21,988 [DEBUG][       Thread-613015][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:02:21,989 [DEBUG][       Thread-613015][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:02:21,990 [DEBUG][       Thread-613015][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:02:21,990 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:02:21,990 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:02:22,045 [DEBUG][       Thread-613015][   transport.py][1871] : userauth is OK
2025-07-01 18:02:22,045 [DEBUG][       Thread-613015][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:02:22,045 [DEBUG][       Thread-613015][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:02:22,045 [DEBUG][       Thread-613015][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:02:22,046 [DEBUG][       Thread-613015][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:02:22,064 [ INFO][       Thread-613015][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:02:22,064 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:02:22,065 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:02:23,119 [DEBUG][       Thread-613015][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:02:23,119 [DEBUG][       Thread-613015][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:02:23,168 [DEBUG][       Thread-613015][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:02:23,168 [DEBUG][       Thread-613015][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:02:23,179 [DEBUG][       Thread-613015][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:02:23,190 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:02:23,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')
2025-07-01 18:02: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') -> 00000000
2025-07-01 18:02:23,210 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:02:23,210 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:02:23,210 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:02:23,221 [DEBUG][       Thread-613015][   transport.py][1871] : EOF in transport thread
2025-07-01 18:02:30,152 [DEBUG][Thread-613017 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:02:33,220 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:02:33,220 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:02:33,220 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:02:33,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-07-01 18:02:33,733 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 1, 28), 10.13, 49.81, 0.0, 34.21, 12.32, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:02:33,733 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:01:28
2025-07-01 18:02:33,815 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:02:33,820 [DEBUG][       Thread-613018][   transport.py][1871] : starting thread (client mode): 0x8155840
2025-07-01 18:02:33,820 [DEBUG][       Thread-613018][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:02:33,840 [DEBUG][       Thread-613018][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:02:33,840 [ INFO][       Thread-613018][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:02:33,843 [DEBUG][       Thread-613018][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:02:33,843 [DEBUG][       Thread-613018][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:02:33,843 [DEBUG][       Thread-613018][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:02:33,843 [DEBUG][       Thread-613018][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:02:33,843 [DEBUG][       Thread-613018][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:02:33,843 [DEBUG][       Thread-613018][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:02:33,843 [DEBUG][       Thread-613018][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:02:33,843 [DEBUG][       Thread-613018][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:02:33,843 [DEBUG][       Thread-613018][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:02:33,843 [DEBUG][       Thread-613018][   transport.py][1871] : client lang: <none>
2025-07-01 18:02:33,843 [DEBUG][       Thread-613018][   transport.py][1871] : server lang: <none>
2025-07-01 18:02:33,843 [DEBUG][       Thread-613018][   transport.py][1871] : kex follows: False
2025-07-01 18:02:33,843 [DEBUG][       Thread-613018][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:02:33,843 [DEBUG][       Thread-613018][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:02:33,843 [DEBUG][       Thread-613018][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:02:33,844 [DEBUG][       Thread-613018][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:02:33,844 [DEBUG][       Thread-613018][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:02:33,844 [DEBUG][       Thread-613018][   transport.py][1871] : Compression: none
2025-07-01 18:02:33,844 [DEBUG][       Thread-613018][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:02:33,861 [DEBUG][       Thread-613018][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:02:33,862 [DEBUG][       Thread-613018][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:02:33,862 [DEBUG][       Thread-613018][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:02:33,862 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:02:33,862 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:02:33,864 [DEBUG][       Thread-613018][   transport.py][1871] : userauth is OK
2025-07-01 18:02:33,890 [ INFO][       Thread-613018][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:02:33,890 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:02:34,518 [DEBUG][       Thread-613018][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:02:34,519 [DEBUG][       Thread-613018][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:02:34,561 [DEBUG][       Thread-613018][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:02:34,561 [DEBUG][       Thread-613018][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:02:34,565 [DEBUG][       Thread-613018][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:02:34,578 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:02:34,578 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:02:34,580 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:02:34,582 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:02:34,588 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:02:34,590 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:02:34,590 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:02:34,590 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:02:34,591 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.667992 -999.00  +12.10  26.52     55   +3.30 1 2 1 1 1   550    0 8.27 -23.51 ----- 21.2 26.5 5.6 32.4 12.9 -17.6 12.7 -17.3 12.5 -17.7 12.8 -17.2
2025-07-01 18:02:34,591 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:02:34,591 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:02:34,591 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.667992
2025-07-01 18:02:34,591 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:02:34,592 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:02:34,592 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:02:34,592 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:02:34,592 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:02:34,592 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:01:28', tmtdew=10.13, humidity=49.81, cloud=0.0, wind=34.21, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:01:54.509', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:02:34,593 [DEBUG][       Thread-613018][   transport.py][1871] : EOF in transport thread
2025-07-01 18:02:34,677 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:02:34,689 [DEBUG][       Thread-613021][   transport.py][1871] : starting thread (client mode): 0x81e74f0
2025-07-01 18:02:34,689 [DEBUG][       Thread-613021][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:02:34,704 [DEBUG][       Thread-613021][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:02:34,704 [ INFO][       Thread-613021][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:02:34,712 [DEBUG][       Thread-613021][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:02:34,712 [DEBUG][       Thread-613021][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:02:34,712 [DEBUG][       Thread-613021][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:02:34,712 [DEBUG][       Thread-613021][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:02:34,712 [DEBUG][       Thread-613021][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:02:34,712 [DEBUG][       Thread-613021][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:02:34,712 [DEBUG][       Thread-613021][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:02:34,712 [DEBUG][       Thread-613021][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:02:34,712 [DEBUG][       Thread-613021][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:02:34,712 [DEBUG][       Thread-613021][   transport.py][1871] : client lang: <none>
2025-07-01 18:02:34,712 [DEBUG][       Thread-613021][   transport.py][1871] : server lang: <none>
2025-07-01 18:02:34,713 [DEBUG][       Thread-613021][   transport.py][1871] : kex follows: False
2025-07-01 18:02:34,713 [DEBUG][       Thread-613021][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:02:34,713 [DEBUG][       Thread-613021][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:02:34,713 [DEBUG][       Thread-613021][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:02:34,713 [DEBUG][       Thread-613021][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:02:34,713 [DEBUG][       Thread-613021][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:02:34,713 [DEBUG][       Thread-613021][   transport.py][1871] : Compression: none
2025-07-01 18:02:34,713 [DEBUG][       Thread-613021][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:02:34,769 [DEBUG][       Thread-613021][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:02:34,769 [DEBUG][       Thread-613021][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:02:34,770 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:02:34,771 [DEBUG][       Thread-613021][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:02:34,771 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:02:34,831 [DEBUG][       Thread-613021][   transport.py][1871] : userauth is OK
2025-07-01 18:02:34,831 [DEBUG][       Thread-613021][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:02:34,831 [DEBUG][       Thread-613021][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:02:34,831 [DEBUG][       Thread-613021][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:02:34,831 [DEBUG][       Thread-613021][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:02:34,851 [ INFO][       Thread-613021][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:02:34,851 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:02:34,852 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:02:35,877 [DEBUG][       Thread-613021][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:02:35,878 [DEBUG][       Thread-613021][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:02:35,932 [DEBUG][       Thread-613021][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:02:35,932 [DEBUG][       Thread-613021][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:02:35,942 [DEBUG][       Thread-613021][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:02:35,951 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:02:35,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-07-01 18:02:35,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-07-01 18:02:35,969 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:02:35,969 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:02:35,970 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:02:35,978 [DEBUG][       Thread-613021][   transport.py][1871] : EOF in transport thread
2025-07-01 18:02:39,171 [DEBUG][Thread-613023 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:02:42,079 [DEBUG][Thread-613024 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:02:45,972 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:02:45,972 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:02:45,972 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:02:45,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-07-01 18:02:46,463 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 2, 31), 10.13, 49.94, 0.0, 37.27, 12.34, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:02:46,463 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:02:31
2025-07-01 18:02:46,546 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:02:46,550 [DEBUG][       Thread-613025][   transport.py][1871] : starting thread (client mode): 0x81e4a60
2025-07-01 18:02:46,550 [DEBUG][       Thread-613025][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:02:46,572 [DEBUG][       Thread-613025][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:02:46,572 [ INFO][       Thread-613025][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:02:46,576 [DEBUG][       Thread-613025][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:02:46,576 [DEBUG][       Thread-613025][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:02:46,576 [DEBUG][       Thread-613025][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:02:46,576 [DEBUG][       Thread-613025][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:02:46,576 [DEBUG][       Thread-613025][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:02:46,576 [DEBUG][       Thread-613025][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:02:46,577 [DEBUG][       Thread-613025][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:02:46,577 [DEBUG][       Thread-613025][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:02:46,577 [DEBUG][       Thread-613025][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:02:46,577 [DEBUG][       Thread-613025][   transport.py][1871] : client lang: <none>
2025-07-01 18:02:46,577 [DEBUG][       Thread-613025][   transport.py][1871] : server lang: <none>
2025-07-01 18:02:46,577 [DEBUG][       Thread-613025][   transport.py][1871] : kex follows: False
2025-07-01 18:02:46,577 [DEBUG][       Thread-613025][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:02:46,577 [DEBUG][       Thread-613025][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:02:46,577 [DEBUG][       Thread-613025][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:02:46,577 [DEBUG][       Thread-613025][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:02:46,577 [DEBUG][       Thread-613025][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:02:46,578 [DEBUG][       Thread-613025][   transport.py][1871] : Compression: none
2025-07-01 18:02:46,578 [DEBUG][       Thread-613025][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:02:46,596 [DEBUG][       Thread-613025][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:02:46,597 [DEBUG][       Thread-613025][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:02:46,597 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:02:46,598 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:02:46,598 [DEBUG][       Thread-613025][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:02:46,600 [DEBUG][       Thread-613025][   transport.py][1871] : userauth is OK
2025-07-01 18:02:46,613 [ INFO][       Thread-613025][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:02:46,614 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:02:47,271 [DEBUG][       Thread-613025][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:02:47,271 [DEBUG][       Thread-613025][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:02:47,313 [DEBUG][       Thread-613025][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:02:47,313 [DEBUG][       Thread-613025][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:02:47,317 [DEBUG][       Thread-613025][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:02:47,330 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:02:47,331 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:02:47,333 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:02:47,335 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:02:47,342 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:02:47,344 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:02:47,344 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:02:47,345 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:02:47,345 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.667992 -999.00  +12.10  26.52     55   +3.30 1 2 1 1 1   550    0 8.27 -23.51 ----- 21.2 26.5 5.6 32.4 12.9 -17.6 12.7 -17.3 12.5 -17.7 12.8 -17.2
2025-07-01 18:02:47,345 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:02:47,345 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:02:47,345 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.667992
2025-07-01 18:02:47,346 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:02:47,346 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:02:47,346 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:02:47,346 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:02:47,346 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:02:47,347 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:02:31', tmtdew=10.13, humidity=49.94, cloud=0.0, wind=37.27, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:01:54.509', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:02:47,347 [DEBUG][       Thread-613025][   transport.py][1871] : EOF in transport thread
2025-07-01 18:02:47,430 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:02:47,440 [DEBUG][       Thread-613028][   transport.py][1871] : starting thread (client mode): 0x8156740
2025-07-01 18:02:47,440 [DEBUG][       Thread-613028][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:02:47,455 [DEBUG][       Thread-613028][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:02:47,455 [ INFO][       Thread-613028][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:02:47,462 [DEBUG][       Thread-613028][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:02:47,463 [DEBUG][       Thread-613028][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:02:47,463 [DEBUG][       Thread-613028][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:02:47,463 [DEBUG][       Thread-613028][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:02:47,463 [DEBUG][       Thread-613028][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:02:47,463 [DEBUG][       Thread-613028][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:02:47,463 [DEBUG][       Thread-613028][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:02:47,463 [DEBUG][       Thread-613028][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:02:47,463 [DEBUG][       Thread-613028][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:02:47,463 [DEBUG][       Thread-613028][   transport.py][1871] : client lang: <none>
2025-07-01 18:02:47,463 [DEBUG][       Thread-613028][   transport.py][1871] : server lang: <none>
2025-07-01 18:02:47,463 [DEBUG][       Thread-613028][   transport.py][1871] : kex follows: False
2025-07-01 18:02:47,463 [DEBUG][       Thread-613028][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:02:47,463 [DEBUG][       Thread-613028][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:02:47,463 [DEBUG][       Thread-613028][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:02:47,463 [DEBUG][       Thread-613028][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:02:47,463 [DEBUG][       Thread-613028][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:02:47,463 [DEBUG][       Thread-613028][   transport.py][1871] : Compression: none
2025-07-01 18:02:47,463 [DEBUG][       Thread-613028][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:02:47,520 [DEBUG][       Thread-613028][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:02:47,521 [DEBUG][       Thread-613028][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:02:47,521 [DEBUG][       Thread-613028][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:02:47,522 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:02:47,522 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:02:47,579 [DEBUG][       Thread-613028][   transport.py][1871] : userauth is OK
2025-07-01 18:02:47,579 [DEBUG][       Thread-613028][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:02:47,580 [DEBUG][       Thread-613028][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:02:47,580 [DEBUG][       Thread-613028][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:02:47,580 [DEBUG][       Thread-613028][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:02:47,599 [ INFO][       Thread-613028][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:02:47,600 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:02:47,600 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:02:48,191 [DEBUG][Thread-613030 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:02:48,646 [DEBUG][       Thread-613028][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:02:48,646 [DEBUG][       Thread-613028][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:02:48,696 [DEBUG][       Thread-613028][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:02:48,696 [DEBUG][       Thread-613028][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:02:48,705 [DEBUG][       Thread-613028][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:02:48,715 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:02:48,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-07-01 18:02:48,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') -> 00000000
2025-07-01 18:02:48,739 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:02:48,739 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:02:48,739 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:02:48,748 [DEBUG][       Thread-613028][   transport.py][1871] : EOF in transport thread
2025-07-01 18:02:57,234 [DEBUG][Thread-613031 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:02:58,750 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:02:58,750 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:02:58,750 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:02:58,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-07-01 18:02:59,240 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 2, 31), 10.13, 49.94, 0.0, 37.27, 12.34, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:02:59,240 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:02:31
2025-07-01 18:02:59,322 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:02:59,327 [DEBUG][       Thread-613032][   transport.py][1871] : starting thread (client mode): 0x81e57b0
2025-07-01 18:02:59,327 [DEBUG][       Thread-613032][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:02:59,347 [DEBUG][       Thread-613032][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:02:59,347 [ INFO][       Thread-613032][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:02:59,351 [DEBUG][       Thread-613032][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:02:59,351 [DEBUG][       Thread-613032][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:02:59,351 [DEBUG][       Thread-613032][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:02:59,351 [DEBUG][       Thread-613032][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:02:59,351 [DEBUG][       Thread-613032][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:02:59,351 [DEBUG][       Thread-613032][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:02:59,351 [DEBUG][       Thread-613032][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:02:59,351 [DEBUG][       Thread-613032][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:02:59,351 [DEBUG][       Thread-613032][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:02:59,351 [DEBUG][       Thread-613032][   transport.py][1871] : client lang: <none>
2025-07-01 18:02:59,351 [DEBUG][       Thread-613032][   transport.py][1871] : server lang: <none>
2025-07-01 18:02:59,351 [DEBUG][       Thread-613032][   transport.py][1871] : kex follows: False
2025-07-01 18:02:59,351 [DEBUG][       Thread-613032][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:02:59,351 [DEBUG][       Thread-613032][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:02:59,351 [DEBUG][       Thread-613032][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:02:59,351 [DEBUG][       Thread-613032][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:02:59,351 [DEBUG][       Thread-613032][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:02:59,351 [DEBUG][       Thread-613032][   transport.py][1871] : Compression: none
2025-07-01 18:02:59,351 [DEBUG][       Thread-613032][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:02:59,368 [DEBUG][       Thread-613032][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:02:59,368 [DEBUG][       Thread-613032][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:02:59,369 [DEBUG][       Thread-613032][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:02:59,369 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:02:59,369 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:02:59,370 [DEBUG][       Thread-613032][   transport.py][1871] : userauth is OK
2025-07-01 18:02:59,395 [ INFO][       Thread-613032][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:02:59,396 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:03:00,084 [DEBUG][       Thread-613032][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:03:00,085 [DEBUG][       Thread-613032][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:03:00,129 [DEBUG][       Thread-613032][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:03:00,129 [DEBUG][       Thread-613032][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:03:00,133 [DEBUG][       Thread-613032][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:03:00,144 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:03:00,145 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:03:00,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:03:00,148 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:03:00,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:03:00,155 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:03:00,156 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:03:00,156 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:03:00,157 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.668339 -999.00  +12.20  34.19     54   +3.30 1 2 2 1 1   530    0 8.59 -22.19 ----- 28.2 34.2 20.6 39.1 12.9 -17.6 12.7 -17.6 12.5 -17.9 12.9 -17.6
2025-07-01 18:03:00,157 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:03:00,157 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:03:00,157 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.668339
2025-07-01 18:03:00,157 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:03:00,158 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:03:00,158 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:03:00,158 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:03:00,158 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:03:00,158 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:02:31', tmtdew=10.13, humidity=49.94, cloud=0.0, wind=37.27, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:02:24.490', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:03:00,159 [DEBUG][       Thread-613032][   transport.py][1871] : EOF in transport thread
2025-07-01 18:03:00,241 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:03:06,255 [DEBUG][Thread-613035 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:03:15,277 [DEBUG][Thread-613036 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:03:24,298 [DEBUG][Thread-613037 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:03:33,321 [DEBUG][Thread-613038 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:03:42,131 [DEBUG][Thread-613039 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:03:42,342 [DEBUG][Thread-613040 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:03:51,365 [DEBUG][Thread-613041 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:04:00,384 [DEBUG][Thread-613042 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:04:09,403 [DEBUG][Thread-613043 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:04:18,425 [DEBUG][Thread-613044 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:04:27,448 [DEBUG][Thread-613045 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:04:36,472 [DEBUG][Thread-613046 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:04:42,181 [DEBUG][Thread-613047 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:04:45,495 [DEBUG][Thread-613048 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:04:54,519 [DEBUG][Thread-613049 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:05:03,541 [DEBUG][Thread-613050 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:05:09,524 [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-07-01 18:05:12,559 [DEBUG][Thread-613051 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:05:19,534 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:05:19,534 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:05:19,534 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:05:19,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-07-01 18:05:20,075 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 5, 10), 10.05, 50.41, 0.0, 27.59, 12.27, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:05:20,075 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:05:10
2025-07-01 18:05:20,167 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:05:20,173 [DEBUG][       Thread-613052][   transport.py][1871] : starting thread (client mode): 0x81e7cd0
2025-07-01 18:05:20,173 [DEBUG][       Thread-613052][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:05:20,184 [DEBUG][       Thread-613052][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:05:20,184 [ INFO][       Thread-613052][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:05:20,186 [DEBUG][       Thread-613052][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:05:20,186 [DEBUG][       Thread-613052][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:05:20,186 [DEBUG][       Thread-613052][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:05:20,186 [DEBUG][       Thread-613052][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:05:20,186 [DEBUG][       Thread-613052][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:05:20,186 [DEBUG][       Thread-613052][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:05:20,186 [DEBUG][       Thread-613052][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:05:20,186 [DEBUG][       Thread-613052][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:05:20,186 [DEBUG][       Thread-613052][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:05:20,186 [DEBUG][       Thread-613052][   transport.py][1871] : client lang: <none>
2025-07-01 18:05:20,186 [DEBUG][       Thread-613052][   transport.py][1871] : server lang: <none>
2025-07-01 18:05:20,186 [DEBUG][       Thread-613052][   transport.py][1871] : kex follows: False
2025-07-01 18:05:20,186 [DEBUG][       Thread-613052][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:05:20,186 [DEBUG][       Thread-613052][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:05:20,186 [DEBUG][       Thread-613052][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:05:20,186 [DEBUG][       Thread-613052][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:05:20,186 [DEBUG][       Thread-613052][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:05:20,186 [DEBUG][       Thread-613052][   transport.py][1871] : Compression: none
2025-07-01 18:05:20,186 [DEBUG][       Thread-613052][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:05:20,196 [DEBUG][       Thread-613052][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:05:20,196 [DEBUG][       Thread-613052][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:05:20,196 [DEBUG][       Thread-613052][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:05:20,196 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:05:20,196 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:05:20,197 [DEBUG][       Thread-613052][   transport.py][1871] : userauth is OK
2025-07-01 18:05:20,209 [ INFO][       Thread-613052][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:05:20,209 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:05:21,005 [DEBUG][       Thread-613052][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:05:21,005 [DEBUG][       Thread-613052][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:05:21,048 [DEBUG][       Thread-613052][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:05:21,048 [DEBUG][       Thread-613052][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:05:21,051 [DEBUG][       Thread-613052][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:05:21,064 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:05:21,064 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:05:21,065 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:05:21,066 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:05:21,070 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:05:21,071 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:05:21,071 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:05:21,071 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:05:21,071 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.670075 -999.00  +12.10  30.87     55   +3.30 1 2 2 1 1   424    0 8.25 -23.54 ----- 25.2 30.9 16.6 39.1 12.8 -18.2 12.7 -18.2 12.4 -18.2 12.8 -17.8
2025-07-01 18:05:21,071 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:05:21,071 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:05:21,071 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.670075
2025-07-01 18:05:21,071 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:05:21,072 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:05:21,072 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:05:21,072 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:05:21,072 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:05:21,072 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:05:10', tmtdew=10.05, humidity=50.41, cloud=0.0, wind=27.59, temperature=12.27, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:04:54.480', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:05:21,072 [DEBUG][       Thread-613052][   transport.py][1871] : EOF in transport thread
2025-07-01 18:05:21,146 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:05:21,158 [DEBUG][       Thread-613055][   transport.py][1871] : starting thread (client mode): 0x8155540
2025-07-01 18:05:21,158 [DEBUG][       Thread-613055][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:05:21,173 [DEBUG][       Thread-613055][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:05:21,173 [ INFO][       Thread-613055][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:05:21,180 [DEBUG][       Thread-613055][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:05:21,180 [DEBUG][       Thread-613055][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:05:21,180 [DEBUG][       Thread-613055][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:05:21,180 [DEBUG][       Thread-613055][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:05:21,180 [DEBUG][       Thread-613055][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:05:21,180 [DEBUG][       Thread-613055][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:05:21,180 [DEBUG][       Thread-613055][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:05:21,181 [DEBUG][       Thread-613055][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:05:21,181 [DEBUG][       Thread-613055][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:05:21,181 [DEBUG][       Thread-613055][   transport.py][1871] : client lang: <none>
2025-07-01 18:05:21,181 [DEBUG][       Thread-613055][   transport.py][1871] : server lang: <none>
2025-07-01 18:05:21,181 [DEBUG][       Thread-613055][   transport.py][1871] : kex follows: False
2025-07-01 18:05:21,181 [DEBUG][       Thread-613055][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:05:21,181 [DEBUG][       Thread-613055][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:05:21,181 [DEBUG][       Thread-613055][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:05:21,181 [DEBUG][       Thread-613055][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:05:21,181 [DEBUG][       Thread-613055][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:05:21,181 [DEBUG][       Thread-613055][   transport.py][1871] : Compression: none
2025-07-01 18:05:21,181 [DEBUG][       Thread-613055][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:05:21,238 [DEBUG][       Thread-613055][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:05:21,239 [DEBUG][       Thread-613055][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:05:21,239 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:05:21,239 [DEBUG][       Thread-613055][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:05:21,239 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:05:21,296 [DEBUG][       Thread-613055][   transport.py][1871] : userauth is OK
2025-07-01 18:05:21,296 [DEBUG][       Thread-613055][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:05:21,296 [DEBUG][       Thread-613055][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:05:21,296 [DEBUG][       Thread-613055][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:05:21,296 [DEBUG][       Thread-613055][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:05:21,313 [ INFO][       Thread-613055][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:05:21,313 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:05:21,313 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:05:21,576 [DEBUG][Thread-613057 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:05:22,390 [DEBUG][       Thread-613055][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:05:22,390 [DEBUG][       Thread-613055][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:05:22,439 [DEBUG][       Thread-613055][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:05:22,439 [DEBUG][       Thread-613055][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:05:22,448 [DEBUG][       Thread-613055][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:05:22,457 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:05:22,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-07-01 18:05:22,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-07-01 18:05:22,477 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:05:22,477 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:05:22,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:05:22,485 [DEBUG][       Thread-613055][   transport.py][1871] : EOF in transport thread
2025-07-01 18:05:30,600 [DEBUG][Thread-613058 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:05:32,479 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:05:32,479 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:05:32,479 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:05:32,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-07-01 18:05:32,985 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 5, 10), 10.05, 50.41, 0.0, 27.59, 12.27, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:05:32,985 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:05:10
2025-07-01 18:05:33,070 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:05:33,076 [DEBUG][       Thread-613059][   transport.py][1871] : starting thread (client mode): 0x81e4f40
2025-07-01 18:05:33,076 [DEBUG][       Thread-613059][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:05:33,100 [DEBUG][       Thread-613059][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:05:33,100 [ INFO][       Thread-613059][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:05:33,104 [DEBUG][       Thread-613059][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:05:33,104 [DEBUG][       Thread-613059][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:05:33,104 [DEBUG][       Thread-613059][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:05:33,104 [DEBUG][       Thread-613059][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:05:33,104 [DEBUG][       Thread-613059][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:05:33,104 [DEBUG][       Thread-613059][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:05:33,104 [DEBUG][       Thread-613059][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:05:33,104 [DEBUG][       Thread-613059][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:05:33,104 [DEBUG][       Thread-613059][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:05:33,104 [DEBUG][       Thread-613059][   transport.py][1871] : client lang: <none>
2025-07-01 18:05:33,104 [DEBUG][       Thread-613059][   transport.py][1871] : server lang: <none>
2025-07-01 18:05:33,104 [DEBUG][       Thread-613059][   transport.py][1871] : kex follows: False
2025-07-01 18:05:33,104 [DEBUG][       Thread-613059][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:05:33,104 [DEBUG][       Thread-613059][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:05:33,105 [DEBUG][       Thread-613059][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:05:33,105 [DEBUG][       Thread-613059][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:05:33,105 [DEBUG][       Thread-613059][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:05:33,105 [DEBUG][       Thread-613059][   transport.py][1871] : Compression: none
2025-07-01 18:05:33,105 [DEBUG][       Thread-613059][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:05:33,123 [DEBUG][       Thread-613059][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:05:33,124 [DEBUG][       Thread-613059][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:05:33,124 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:05:33,125 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:05:33,125 [DEBUG][       Thread-613059][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:05:33,126 [DEBUG][       Thread-613059][   transport.py][1871] : userauth is OK
2025-07-01 18:05:33,151 [ INFO][       Thread-613059][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:05:33,152 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:05:33,781 [DEBUG][       Thread-613059][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:05:33,782 [DEBUG][       Thread-613059][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:05:33,829 [DEBUG][       Thread-613059][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:05:33,829 [DEBUG][       Thread-613059][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:05:33,832 [DEBUG][       Thread-613059][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:05:33,843 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:05:33,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:05:33,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:05:33,846 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:05:33,851 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:05:33,853 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:05:33,853 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:05:33,853 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:05:33,854 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.670075 -999.00  +12.10  30.87     55   +3.30 1 2 2 1 1   424    0 8.25 -23.54 ----- 25.2 30.9 16.6 39.1 12.8 -18.2 12.7 -18.2 12.4 -18.2 12.8 -17.8
2025-07-01 18:05:33,854 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:05:33,854 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:05:33,854 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.670075
2025-07-01 18:05:33,854 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:05:33,855 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:05:33,855 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:05:33,855 [DEBUG][       Thread-613059][   transport.py][1871] : EOF in transport thread
2025-07-01 18:05:33,855 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:05:33,855 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:05:33,856 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:05:10', tmtdew=10.05, humidity=50.41, cloud=0.0, wind=27.59, temperature=12.27, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:04:54.480', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:05:33,940 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:05:33,952 [DEBUG][       Thread-613062][   transport.py][1871] : starting thread (client mode): 0x8157eb0
2025-07-01 18:05:33,952 [DEBUG][       Thread-613062][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:05:33,967 [DEBUG][       Thread-613062][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:05:33,967 [ INFO][       Thread-613062][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:05:33,975 [DEBUG][       Thread-613062][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:05:33,975 [DEBUG][       Thread-613062][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:05:33,975 [DEBUG][       Thread-613062][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:05:33,975 [DEBUG][       Thread-613062][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:05:33,975 [DEBUG][       Thread-613062][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:05:33,975 [DEBUG][       Thread-613062][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:05:33,975 [DEBUG][       Thread-613062][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:05:33,975 [DEBUG][       Thread-613062][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:05:33,975 [DEBUG][       Thread-613062][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:05:33,975 [DEBUG][       Thread-613062][   transport.py][1871] : client lang: <none>
2025-07-01 18:05:33,976 [DEBUG][       Thread-613062][   transport.py][1871] : server lang: <none>
2025-07-01 18:05:33,976 [DEBUG][       Thread-613062][   transport.py][1871] : kex follows: False
2025-07-01 18:05:33,976 [DEBUG][       Thread-613062][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:05:33,976 [DEBUG][       Thread-613062][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:05:33,976 [DEBUG][       Thread-613062][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:05:33,976 [DEBUG][       Thread-613062][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:05:33,976 [DEBUG][       Thread-613062][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:05:33,976 [DEBUG][       Thread-613062][   transport.py][1871] : Compression: none
2025-07-01 18:05:33,976 [DEBUG][       Thread-613062][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:05:34,032 [DEBUG][       Thread-613062][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:05:34,033 [DEBUG][       Thread-613062][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:05:34,034 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:05:34,034 [DEBUG][       Thread-613062][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:05:34,035 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:05:34,088 [DEBUG][       Thread-613062][   transport.py][1871] : userauth is OK
2025-07-01 18:05:34,088 [DEBUG][       Thread-613062][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:05:34,088 [DEBUG][       Thread-613062][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:05:34,089 [DEBUG][       Thread-613062][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:05:34,089 [DEBUG][       Thread-613062][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:05:34,107 [ INFO][       Thread-613062][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:05:34,108 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:05:34,108 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:05:35,155 [DEBUG][       Thread-613062][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:05:35,155 [DEBUG][       Thread-613062][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:05:35,204 [DEBUG][       Thread-613062][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:05:35,204 [DEBUG][       Thread-613062][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:05:35,214 [DEBUG][       Thread-613062][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:05:35,226 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:05: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-07-01 18:05:35,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-07-01 18:05:35,256 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:05:35,256 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:05:35,257 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:05:35,270 [DEBUG][       Thread-613062][   transport.py][1871] : EOF in transport thread
2025-07-01 18:05:39,623 [DEBUG][Thread-613064 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:05:42,234 [DEBUG][Thread-613065 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:05:45,258 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:05:45,258 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:05:45,258 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:05:45,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-07-01 18:05:45,767 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 5, 42), 10.02, 50.5, 0.0, 24.7, 12.27, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:05:45,767 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:05:42
2025-07-01 18:05:45,851 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:05:45,855 [DEBUG][       Thread-613066][   transport.py][1871] : starting thread (client mode): 0x81e50f0
2025-07-01 18:05:45,855 [DEBUG][       Thread-613066][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:05:45,875 [DEBUG][       Thread-613066][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:05:45,875 [ INFO][       Thread-613066][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:05:45,879 [DEBUG][       Thread-613066][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:05:45,879 [DEBUG][       Thread-613066][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:05:45,879 [DEBUG][       Thread-613066][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:05:45,879 [DEBUG][       Thread-613066][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:05:45,879 [DEBUG][       Thread-613066][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:05:45,879 [DEBUG][       Thread-613066][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:05:45,879 [DEBUG][       Thread-613066][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:05:45,879 [DEBUG][       Thread-613066][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:05:45,879 [DEBUG][       Thread-613066][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:05:45,879 [DEBUG][       Thread-613066][   transport.py][1871] : client lang: <none>
2025-07-01 18:05:45,879 [DEBUG][       Thread-613066][   transport.py][1871] : server lang: <none>
2025-07-01 18:05:45,879 [DEBUG][       Thread-613066][   transport.py][1871] : kex follows: False
2025-07-01 18:05:45,879 [DEBUG][       Thread-613066][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:05:45,879 [DEBUG][       Thread-613066][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:05:45,879 [DEBUG][       Thread-613066][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:05:45,879 [DEBUG][       Thread-613066][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:05:45,879 [DEBUG][       Thread-613066][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:05:45,879 [DEBUG][       Thread-613066][   transport.py][1871] : Compression: none
2025-07-01 18:05:45,879 [DEBUG][       Thread-613066][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:05:45,897 [DEBUG][       Thread-613066][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:05:45,897 [DEBUG][       Thread-613066][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:05:45,898 [DEBUG][       Thread-613066][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:05:45,898 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:05:45,898 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:05:45,941 [DEBUG][       Thread-613066][   transport.py][1871] : userauth is OK
2025-07-01 18:05:45,965 [ INFO][       Thread-613066][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:05:45,966 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:05:46,640 [DEBUG][       Thread-613066][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:05:46,640 [DEBUG][       Thread-613066][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:05:46,681 [DEBUG][       Thread-613066][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:05:46,681 [DEBUG][       Thread-613066][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:05:46,684 [DEBUG][       Thread-613066][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:05:46,698 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:05:46,698 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:05:46,700 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:05:46,701 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:05:46,706 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:05:46,707 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:05:46,707 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:05:46,708 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:05:46,708 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.670423 -999.00  +12.00  30.92     55   +3.30 1 2 2 1 1   403    0 8.25 -25.44 ----- 22.5 30.9 26.0 31.5 12.8 -18.3 12.6 -18.3 12.4 -18.2 12.7 -17.7
2025-07-01 18:05:46,708 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:05:46,708 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:05:46,709 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.670423
2025-07-01 18:05:46,709 [DEBUG][       Thread-613066][   transport.py][1871] : EOF in transport thread
2025-07-01 18:05:46,709 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:05:46,710 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:05:46,710 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:05:46,711 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:05:46,711 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:05:46,711 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:05:42', tmtdew=10.02, humidity=50.5, cloud=0.0, wind=24.7, temperature=12.27, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:05:24.547', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:05:46,795 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:05:46,804 [DEBUG][       Thread-613069][   transport.py][1871] : starting thread (client mode): 0x81542b0
2025-07-01 18:05:46,804 [DEBUG][       Thread-613069][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:05:46,819 [DEBUG][       Thread-613069][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:05:46,819 [ INFO][       Thread-613069][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:05:46,827 [DEBUG][       Thread-613069][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:05:46,827 [DEBUG][       Thread-613069][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:05:46,827 [DEBUG][       Thread-613069][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:05:46,827 [DEBUG][       Thread-613069][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:05:46,827 [DEBUG][       Thread-613069][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:05:46,827 [DEBUG][       Thread-613069][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:05:46,827 [DEBUG][       Thread-613069][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:05:46,827 [DEBUG][       Thread-613069][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:05:46,827 [DEBUG][       Thread-613069][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:05:46,827 [DEBUG][       Thread-613069][   transport.py][1871] : client lang: <none>
2025-07-01 18:05:46,827 [DEBUG][       Thread-613069][   transport.py][1871] : server lang: <none>
2025-07-01 18:05:46,827 [DEBUG][       Thread-613069][   transport.py][1871] : kex follows: False
2025-07-01 18:05:46,827 [DEBUG][       Thread-613069][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:05:46,827 [DEBUG][       Thread-613069][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:05:46,827 [DEBUG][       Thread-613069][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:05:46,827 [DEBUG][       Thread-613069][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:05:46,827 [DEBUG][       Thread-613069][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:05:46,827 [DEBUG][       Thread-613069][   transport.py][1871] : Compression: none
2025-07-01 18:05:46,827 [DEBUG][       Thread-613069][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:05:46,882 [DEBUG][       Thread-613069][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:05:46,882 [DEBUG][       Thread-613069][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:05:46,882 [DEBUG][       Thread-613069][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:05:46,882 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:05:46,882 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:05:46,940 [DEBUG][       Thread-613069][   transport.py][1871] : userauth is OK
2025-07-01 18:05:46,940 [DEBUG][       Thread-613069][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:05:46,941 [DEBUG][       Thread-613069][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:05:46,941 [DEBUG][       Thread-613069][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:05:46,941 [DEBUG][       Thread-613069][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:05:46,960 [ INFO][       Thread-613069][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:05:46,960 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:05:46,960 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:05:48,001 [DEBUG][       Thread-613069][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:05:48,001 [DEBUG][       Thread-613069][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:05:48,052 [DEBUG][       Thread-613069][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:05:48,052 [DEBUG][       Thread-613069][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:05:48,061 [DEBUG][       Thread-613069][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:05:48,070 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:05:48,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-07-01 18:05:48,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-07-01 18:05:48,088 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:05:48,089 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:05:48,089 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:05:48,099 [DEBUG][       Thread-613069][   transport.py][1871] : EOF in transport thread
2025-07-01 18:05:48,645 [DEBUG][Thread-613071 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:05:57,686 [DEBUG][Thread-613072 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:05:58,099 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:05:58,099 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:05:58,099 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:05:58,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-07-01 18:05:58,646 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 5, 42), 10.02, 50.5, 0.0, 24.7, 12.27, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:05:58,646 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:05:42
2025-07-01 18:05:58,735 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:05:58,741 [DEBUG][       Thread-613073][   transport.py][1871] : starting thread (client mode): 0x81e6c80
2025-07-01 18:05:58,741 [DEBUG][       Thread-613073][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:05:58,761 [DEBUG][       Thread-613073][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:05:58,761 [ INFO][       Thread-613073][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:05:58,764 [DEBUG][       Thread-613073][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:05:58,764 [DEBUG][       Thread-613073][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:05:58,764 [DEBUG][       Thread-613073][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:05:58,764 [DEBUG][       Thread-613073][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:05:58,764 [DEBUG][       Thread-613073][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:05:58,764 [DEBUG][       Thread-613073][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:05:58,764 [DEBUG][       Thread-613073][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:05:58,764 [DEBUG][       Thread-613073][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:05:58,764 [DEBUG][       Thread-613073][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:05:58,764 [DEBUG][       Thread-613073][   transport.py][1871] : client lang: <none>
2025-07-01 18:05:58,764 [DEBUG][       Thread-613073][   transport.py][1871] : server lang: <none>
2025-07-01 18:05:58,764 [DEBUG][       Thread-613073][   transport.py][1871] : kex follows: False
2025-07-01 18:05:58,764 [DEBUG][       Thread-613073][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:05:58,764 [DEBUG][       Thread-613073][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:05:58,764 [DEBUG][       Thread-613073][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:05:58,764 [DEBUG][       Thread-613073][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:05:58,764 [DEBUG][       Thread-613073][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:05:58,764 [DEBUG][       Thread-613073][   transport.py][1871] : Compression: none
2025-07-01 18:05:58,764 [DEBUG][       Thread-613073][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:05:58,779 [DEBUG][       Thread-613073][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:05:58,779 [DEBUG][       Thread-613073][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:05:58,779 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:05:58,780 [DEBUG][       Thread-613073][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:05:58,780 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:05:58,780 [DEBUG][       Thread-613073][   transport.py][1871] : userauth is OK
2025-07-01 18:05:58,793 [ INFO][       Thread-613073][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:05:58,793 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:05:59,445 [DEBUG][       Thread-613073][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:05:59,445 [DEBUG][       Thread-613073][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:05:59,488 [DEBUG][       Thread-613073][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:05:59,488 [DEBUG][       Thread-613073][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:05:59,491 [DEBUG][       Thread-613073][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:05:59,502 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:05:59,502 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:05:59,503 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:05:59,504 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:05:59,507 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:05:59,508 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:05:59,508 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:05:59,508 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:05:59,508 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.670423 -999.00  +12.00  30.92     55   +3.30 1 2 2 1 1   403    0 8.25 -25.44 ----- 22.5 30.9 26.0 31.5 12.8 -18.3 12.6 -18.3 12.4 -18.2 12.7 -17.7
2025-07-01 18:05:59,508 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:05:59,508 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:05:59,508 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.670423
2025-07-01 18:05:59,508 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:05:59,508 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:05:59,508 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:05:59,508 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:05:59,508 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:05:59,508 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:05:42', tmtdew=10.02, humidity=50.5, cloud=0.0, wind=24.7, temperature=12.27, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:05:24.547', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:05:59,509 [DEBUG][       Thread-613073][   transport.py][1871] : EOF in transport thread
2025-07-01 18:05:59,580 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:05:59,591 [DEBUG][       Thread-613076][   transport.py][1871] : starting thread (client mode): 0x81e58a0
2025-07-01 18:05:59,591 [DEBUG][       Thread-613076][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:05:59,606 [DEBUG][       Thread-613076][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:05:59,606 [ INFO][       Thread-613076][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:05:59,614 [DEBUG][       Thread-613076][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:05:59,614 [DEBUG][       Thread-613076][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:05:59,614 [DEBUG][       Thread-613076][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:05:59,614 [DEBUG][       Thread-613076][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:05:59,614 [DEBUG][       Thread-613076][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:05:59,614 [DEBUG][       Thread-613076][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:05:59,614 [DEBUG][       Thread-613076][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:05:59,614 [DEBUG][       Thread-613076][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:05:59,614 [DEBUG][       Thread-613076][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:05:59,614 [DEBUG][       Thread-613076][   transport.py][1871] : client lang: <none>
2025-07-01 18:05:59,614 [DEBUG][       Thread-613076][   transport.py][1871] : server lang: <none>
2025-07-01 18:05:59,614 [DEBUG][       Thread-613076][   transport.py][1871] : kex follows: False
2025-07-01 18:05:59,614 [DEBUG][       Thread-613076][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:05:59,614 [DEBUG][       Thread-613076][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:05:59,614 [DEBUG][       Thread-613076][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:05:59,614 [DEBUG][       Thread-613076][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:05:59,614 [DEBUG][       Thread-613076][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:05:59,614 [DEBUG][       Thread-613076][   transport.py][1871] : Compression: none
2025-07-01 18:05:59,614 [DEBUG][       Thread-613076][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:05:59,670 [DEBUG][       Thread-613076][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:05:59,670 [DEBUG][       Thread-613076][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:05:59,670 [DEBUG][       Thread-613076][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:05:59,670 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:05:59,670 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:05:59,727 [DEBUG][       Thread-613076][   transport.py][1871] : userauth is OK
2025-07-01 18:05:59,727 [DEBUG][       Thread-613076][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:05:59,727 [DEBUG][       Thread-613076][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:05:59,727 [DEBUG][       Thread-613076][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:05:59,727 [DEBUG][       Thread-613076][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:05:59,741 [ INFO][       Thread-613076][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:05:59,742 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:05:59,742 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:06:00,769 [DEBUG][       Thread-613076][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:06:00,769 [DEBUG][       Thread-613076][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:06:00,819 [DEBUG][       Thread-613076][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:06:00,819 [DEBUG][       Thread-613076][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:06:00,828 [DEBUG][       Thread-613076][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:06:00,836 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:06:00,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-07-01 18:06:00,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-07-01 18:06:00,852 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:06:00,852 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:06:00,852 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:06:00,860 [DEBUG][       Thread-613076][   transport.py][1871] : EOF in transport thread
2025-07-01 18:06:06,705 [DEBUG][Thread-613078 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:06:10,863 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:06:10,863 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:06:10,863 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:06:10,866 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 18:06:11,378 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 5, 42), 10.02, 50.5, 0.0, 24.7, 12.27, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:06:11,379 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:05:42
2025-07-01 18:06:11,462 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:06:11,466 [DEBUG][       Thread-613079][   transport.py][1871] : starting thread (client mode): 0x81e7250
2025-07-01 18:06:11,466 [DEBUG][       Thread-613079][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:06:11,486 [DEBUG][       Thread-613079][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:06:11,486 [ INFO][       Thread-613079][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:06:11,489 [DEBUG][       Thread-613079][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:06:11,489 [DEBUG][       Thread-613079][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:06:11,489 [DEBUG][       Thread-613079][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:06:11,489 [DEBUG][       Thread-613079][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:06:11,490 [DEBUG][       Thread-613079][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:06:11,490 [DEBUG][       Thread-613079][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:06:11,490 [DEBUG][       Thread-613079][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:06:11,490 [DEBUG][       Thread-613079][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:06:11,490 [DEBUG][       Thread-613079][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:06:11,490 [DEBUG][       Thread-613079][   transport.py][1871] : client lang: <none>
2025-07-01 18:06:11,490 [DEBUG][       Thread-613079][   transport.py][1871] : server lang: <none>
2025-07-01 18:06:11,490 [DEBUG][       Thread-613079][   transport.py][1871] : kex follows: False
2025-07-01 18:06:11,490 [DEBUG][       Thread-613079][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:06:11,490 [DEBUG][       Thread-613079][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:06:11,490 [DEBUG][       Thread-613079][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:06:11,490 [DEBUG][       Thread-613079][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:06:11,490 [DEBUG][       Thread-613079][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:06:11,490 [DEBUG][       Thread-613079][   transport.py][1871] : Compression: none
2025-07-01 18:06:11,490 [DEBUG][       Thread-613079][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:06:11,506 [DEBUG][       Thread-613079][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:06:11,506 [DEBUG][       Thread-613079][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:06:11,507 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:06:11,507 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:06:11,508 [DEBUG][       Thread-613079][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:06:11,508 [DEBUG][       Thread-613079][   transport.py][1871] : userauth is OK
2025-07-01 18:06:11,532 [ INFO][       Thread-613079][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:06:11,533 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:06:12,182 [DEBUG][       Thread-613079][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:06:12,182 [DEBUG][       Thread-613079][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:06:12,225 [DEBUG][       Thread-613079][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:06:12,225 [DEBUG][       Thread-613079][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:06:12,228 [DEBUG][       Thread-613079][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:06:12,241 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:06:12,242 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:06:12,243 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:06:12,245 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:06:12,250 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:06:12,252 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:06:12,252 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:06:12,253 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:06:12,253 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.670770 -999.00  +12.10  33.62     55   +3.30 1 2 2 1 1   382    0 8.17 -25.08 ----- 30.1 33.6 19.0 40.8 12.8 -18.2 12.6 -18.4 12.4 -18.2 12.8 -17.6
2025-07-01 18:06:12,253 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:06:12,253 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:06:12,253 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.670770
2025-07-01 18:06:12,254 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:06:12,254 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:06:12,254 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:06:12,255 [DEBUG][       Thread-613079][   transport.py][1871] : EOF in transport thread
2025-07-01 18:06:12,255 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:06:12,255 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:06:12,256 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:05:42', tmtdew=10.02, humidity=50.5, cloud=0.0, wind=24.7, temperature=12.27, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:05:54.528', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:06:12,339 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:06:12,348 [DEBUG][       Thread-613082][   transport.py][1871] : starting thread (client mode): 0x827d540
2025-07-01 18:06:12,348 [DEBUG][       Thread-613082][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:06:12,363 [DEBUG][       Thread-613082][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:06:12,363 [ INFO][       Thread-613082][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:06:12,370 [DEBUG][       Thread-613082][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:06:12,370 [DEBUG][       Thread-613082][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:06:12,370 [DEBUG][       Thread-613082][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:06:12,370 [DEBUG][       Thread-613082][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:06:12,371 [DEBUG][       Thread-613082][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:06:12,371 [DEBUG][       Thread-613082][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:06:12,371 [DEBUG][       Thread-613082][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:06:12,371 [DEBUG][       Thread-613082][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:06:12,371 [DEBUG][       Thread-613082][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:06:12,371 [DEBUG][       Thread-613082][   transport.py][1871] : client lang: <none>
2025-07-01 18:06:12,371 [DEBUG][       Thread-613082][   transport.py][1871] : server lang: <none>
2025-07-01 18:06:12,371 [DEBUG][       Thread-613082][   transport.py][1871] : kex follows: False
2025-07-01 18:06:12,371 [DEBUG][       Thread-613082][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:06:12,371 [DEBUG][       Thread-613082][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:06:12,371 [DEBUG][       Thread-613082][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:06:12,371 [DEBUG][       Thread-613082][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:06:12,371 [DEBUG][       Thread-613082][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:06:12,371 [DEBUG][       Thread-613082][   transport.py][1871] : Compression: none
2025-07-01 18:06:12,371 [DEBUG][       Thread-613082][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:06:12,437 [DEBUG][       Thread-613082][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:06:12,437 [DEBUG][       Thread-613082][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:06:12,438 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:06:12,438 [DEBUG][       Thread-613082][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:06:12,439 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:06:12,496 [DEBUG][       Thread-613082][   transport.py][1871] : userauth is OK
2025-07-01 18:06:12,496 [DEBUG][       Thread-613082][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:06:12,497 [DEBUG][       Thread-613082][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:06:12,497 [DEBUG][       Thread-613082][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:06:12,497 [DEBUG][       Thread-613082][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:06:12,515 [ INFO][       Thread-613082][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:06:12,516 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:06:12,516 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:06:13,526 [DEBUG][       Thread-613082][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:06:13,526 [DEBUG][       Thread-613082][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:06:13,576 [DEBUG][       Thread-613082][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:06:13,576 [DEBUG][       Thread-613082][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:06:13,585 [DEBUG][       Thread-613082][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:06:13,594 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:06:13,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-07-01 18:06:13,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-07-01 18:06:13,612 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:06:13,612 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:06:13,613 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:06:13,621 [DEBUG][       Thread-613082][   transport.py][1871] : EOF in transport thread
2025-07-01 18:06:15,724 [DEBUG][Thread-613084 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:06:23,623 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:06:23,624 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:06:23,624 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:06:23,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-07-01 18:06:24,126 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 6, 14), 9.96, 50.61, 0.0, 27.86, 12.22, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:06:24,126 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:06:14
2025-07-01 18:06:24,210 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:06:24,216 [DEBUG][       Thread-613085][   transport.py][1871] : starting thread (client mode): 0x8155ab0
2025-07-01 18:06:24,216 [DEBUG][       Thread-613085][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:06:24,235 [DEBUG][       Thread-613085][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:06:24,235 [ INFO][       Thread-613085][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:06:24,238 [DEBUG][       Thread-613085][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:06:24,238 [DEBUG][       Thread-613085][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:06:24,238 [DEBUG][       Thread-613085][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:06:24,238 [DEBUG][       Thread-613085][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:06:24,238 [DEBUG][       Thread-613085][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:06:24,238 [DEBUG][       Thread-613085][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:06:24,238 [DEBUG][       Thread-613085][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:06:24,238 [DEBUG][       Thread-613085][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:06:24,238 [DEBUG][       Thread-613085][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:06:24,238 [DEBUG][       Thread-613085][   transport.py][1871] : client lang: <none>
2025-07-01 18:06:24,238 [DEBUG][       Thread-613085][   transport.py][1871] : server lang: <none>
2025-07-01 18:06:24,238 [DEBUG][       Thread-613085][   transport.py][1871] : kex follows: False
2025-07-01 18:06:24,238 [DEBUG][       Thread-613085][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:06:24,238 [DEBUG][       Thread-613085][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:06:24,238 [DEBUG][       Thread-613085][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:06:24,238 [DEBUG][       Thread-613085][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:06:24,238 [DEBUG][       Thread-613085][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:06:24,238 [DEBUG][       Thread-613085][   transport.py][1871] : Compression: none
2025-07-01 18:06:24,238 [DEBUG][       Thread-613085][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:06:24,256 [DEBUG][       Thread-613085][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:06:24,256 [DEBUG][       Thread-613085][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:06:24,256 [DEBUG][       Thread-613085][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:06:24,256 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:06:24,256 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:06:24,257 [DEBUG][       Thread-613085][   transport.py][1871] : userauth is OK
2025-07-01 18:06:24,282 [ INFO][       Thread-613085][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:06:24,282 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:06:24,748 [DEBUG][Thread-613087 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:06:24,915 [DEBUG][       Thread-613085][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:06:24,915 [DEBUG][       Thread-613085][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:06:24,957 [DEBUG][       Thread-613085][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:06:24,957 [DEBUG][       Thread-613085][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:06:24,961 [DEBUG][       Thread-613085][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:06:24,973 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:06:24,974 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:06:24,976 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:06:24,978 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:06:24,983 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:06:24,985 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:06:24,985 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:06:24,986 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:06:24,986 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.670770 -999.00  +12.10  33.62     55   +3.30 1 2 2 1 1   382    0 8.17 -25.08 ----- 30.1 33.6 19.0 40.8 12.8 -18.2 12.6 -18.4 12.4 -18.2 12.8 -17.6
2025-07-01 18:06:24,986 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:06:24,986 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:06:24,986 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.670770
2025-07-01 18:06:24,987 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:06:24,987 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:06:24,987 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:06:24,987 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:06:24,987 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:06:24,988 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:06:14', tmtdew=9.96, humidity=50.61, cloud=0.0, wind=27.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:05:54.528', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:06:24,989 [DEBUG][       Thread-613085][   transport.py][1871] : EOF in transport thread
2025-07-01 18:06:25,071 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:06:25,083 [DEBUG][       Thread-613089][   transport.py][1871] : starting thread (client mode): 0x81e4e20
2025-07-01 18:06:25,083 [DEBUG][       Thread-613089][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:06:25,098 [DEBUG][       Thread-613089][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:06:25,098 [ INFO][       Thread-613089][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:06:25,106 [DEBUG][       Thread-613089][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:06:25,106 [DEBUG][       Thread-613089][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:06:25,106 [DEBUG][       Thread-613089][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:06:25,106 [DEBUG][       Thread-613089][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:06:25,106 [DEBUG][       Thread-613089][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:06:25,106 [DEBUG][       Thread-613089][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:06:25,106 [DEBUG][       Thread-613089][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:06:25,106 [DEBUG][       Thread-613089][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:06:25,106 [DEBUG][       Thread-613089][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:06:25,106 [DEBUG][       Thread-613089][   transport.py][1871] : client lang: <none>
2025-07-01 18:06:25,106 [DEBUG][       Thread-613089][   transport.py][1871] : server lang: <none>
2025-07-01 18:06:25,106 [DEBUG][       Thread-613089][   transport.py][1871] : kex follows: False
2025-07-01 18:06:25,106 [DEBUG][       Thread-613089][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:06:25,106 [DEBUG][       Thread-613089][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:06:25,107 [DEBUG][       Thread-613089][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:06:25,107 [DEBUG][       Thread-613089][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:06:25,107 [DEBUG][       Thread-613089][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:06:25,107 [DEBUG][       Thread-613089][   transport.py][1871] : Compression: none
2025-07-01 18:06:25,107 [DEBUG][       Thread-613089][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:06:25,164 [DEBUG][       Thread-613089][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:06:25,164 [DEBUG][       Thread-613089][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:06:25,165 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:06:25,165 [DEBUG][       Thread-613089][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:06:25,166 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:06:25,220 [DEBUG][       Thread-613089][   transport.py][1871] : userauth is OK
2025-07-01 18:06:25,220 [DEBUG][       Thread-613089][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:06:25,220 [DEBUG][       Thread-613089][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:06:25,221 [DEBUG][       Thread-613089][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:06:25,221 [DEBUG][       Thread-613089][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:06:25,240 [ INFO][       Thread-613089][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:06:25,240 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:06:25,241 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:06:26,282 [DEBUG][       Thread-613089][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:06:26,282 [DEBUG][       Thread-613089][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:06:26,332 [DEBUG][       Thread-613089][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:06:26,332 [DEBUG][       Thread-613089][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:06:26,342 [DEBUG][       Thread-613089][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:06:26,351 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:06: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')
2025-07-01 18:06:26,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-07-01 18:06:26,369 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:06:26,369 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:06:26,370 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:06:26,378 [DEBUG][       Thread-613089][   transport.py][1871] : EOF in transport thread
2025-07-01 18:06:33,773 [DEBUG][Thread-613091 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:06:36,380 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:06:36,380 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:06:36,380 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:06:36,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-07-01 18:06:36,894 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 6, 14), 9.96, 50.61, 0.0, 27.86, 12.22, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:06:36,894 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:06:14
2025-07-01 18:06:36,978 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:06:36,982 [DEBUG][       Thread-613092][   transport.py][1871] : starting thread (client mode): 0x81e74f0
2025-07-01 18:06:36,982 [DEBUG][       Thread-613092][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:06:37,002 [DEBUG][       Thread-613092][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:06:37,002 [ INFO][       Thread-613092][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:06:37,006 [DEBUG][       Thread-613092][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:06:37,006 [DEBUG][       Thread-613092][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:06:37,006 [DEBUG][       Thread-613092][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:06:37,006 [DEBUG][       Thread-613092][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:06:37,006 [DEBUG][       Thread-613092][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:06:37,006 [DEBUG][       Thread-613092][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:06:37,006 [DEBUG][       Thread-613092][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:06:37,006 [DEBUG][       Thread-613092][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:06:37,006 [DEBUG][       Thread-613092][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:06:37,006 [DEBUG][       Thread-613092][   transport.py][1871] : client lang: <none>
2025-07-01 18:06:37,006 [DEBUG][       Thread-613092][   transport.py][1871] : server lang: <none>
2025-07-01 18:06:37,006 [DEBUG][       Thread-613092][   transport.py][1871] : kex follows: False
2025-07-01 18:06:37,006 [DEBUG][       Thread-613092][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:06:37,006 [DEBUG][       Thread-613092][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:06:37,006 [DEBUG][       Thread-613092][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:06:37,006 [DEBUG][       Thread-613092][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:06:37,006 [DEBUG][       Thread-613092][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:06:37,006 [DEBUG][       Thread-613092][   transport.py][1871] : Compression: none
2025-07-01 18:06:37,006 [DEBUG][       Thread-613092][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:06:37,021 [DEBUG][       Thread-613092][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:06:37,021 [DEBUG][       Thread-613092][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:06:37,022 [DEBUG][       Thread-613092][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:06:37,022 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:06:37,022 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:06:37,023 [DEBUG][       Thread-613092][   transport.py][1871] : userauth is OK
2025-07-01 18:06:37,047 [ INFO][       Thread-613092][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:06:37,048 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:06:37,684 [DEBUG][       Thread-613092][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:06:37,684 [DEBUG][       Thread-613092][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:06:37,725 [DEBUG][       Thread-613092][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:06:37,725 [DEBUG][       Thread-613092][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:06:37,727 [DEBUG][       Thread-613092][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:06:37,739 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:06:37,739 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:06:37,740 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:06:37,742 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:06:37,745 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:06:37,746 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:06:37,746 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:06:37,746 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:06:37,746 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.670770 -999.00  +12.10  33.62     55   +3.30 1 2 2 1 1   382    0 8.17 -25.08 ----- 30.1 33.6 19.0 40.8 12.8 -18.2 12.6 -18.4 12.4 -18.2 12.8 -17.6
2025-07-01 18:06:37,746 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:06:37,746 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:06:37,746 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.670770
2025-07-01 18:06:37,746 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:06:37,746 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:06:37,746 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:06:37,746 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:06:37,746 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:06:37,746 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:06:14', tmtdew=9.96, humidity=50.61, cloud=0.0, wind=27.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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:05:54.528', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:06:37,747 [DEBUG][       Thread-613092][   transport.py][1871] : EOF in transport thread
2025-07-01 18:06:37,820 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:06:37,830 [DEBUG][       Thread-613095][   transport.py][1871] : starting thread (client mode): 0x827db10
2025-07-01 18:06:37,830 [DEBUG][       Thread-613095][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:06:37,846 [DEBUG][       Thread-613095][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:06:37,846 [ INFO][       Thread-613095][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:06:37,854 [DEBUG][       Thread-613095][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:06:37,854 [DEBUG][       Thread-613095][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:06:37,854 [DEBUG][       Thread-613095][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:06:37,854 [DEBUG][       Thread-613095][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:06:37,854 [DEBUG][       Thread-613095][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:06:37,854 [DEBUG][       Thread-613095][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:06:37,854 [DEBUG][       Thread-613095][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:06:37,854 [DEBUG][       Thread-613095][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:06:37,854 [DEBUG][       Thread-613095][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:06:37,854 [DEBUG][       Thread-613095][   transport.py][1871] : client lang: <none>
2025-07-01 18:06:37,854 [DEBUG][       Thread-613095][   transport.py][1871] : server lang: <none>
2025-07-01 18:06:37,854 [DEBUG][       Thread-613095][   transport.py][1871] : kex follows: False
2025-07-01 18:06:37,854 [DEBUG][       Thread-613095][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:06:37,854 [DEBUG][       Thread-613095][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:06:37,854 [DEBUG][       Thread-613095][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:06:37,854 [DEBUG][       Thread-613095][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:06:37,854 [DEBUG][       Thread-613095][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:06:37,854 [DEBUG][       Thread-613095][   transport.py][1871] : Compression: none
2025-07-01 18:06:37,854 [DEBUG][       Thread-613095][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:06:37,910 [DEBUG][       Thread-613095][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:06:37,910 [DEBUG][       Thread-613095][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:06:37,910 [DEBUG][       Thread-613095][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:06:37,910 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:06:37,910 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:06:37,967 [DEBUG][       Thread-613095][   transport.py][1871] : userauth is OK
2025-07-01 18:06:37,968 [DEBUG][       Thread-613095][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:06:37,968 [DEBUG][       Thread-613095][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:06:37,968 [DEBUG][       Thread-613095][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:06:37,968 [DEBUG][       Thread-613095][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:06:37,982 [ INFO][       Thread-613095][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:06:37,982 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:06:37,982 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:06:39,002 [DEBUG][       Thread-613095][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:06:39,002 [DEBUG][       Thread-613095][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:06:39,051 [DEBUG][       Thread-613095][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:06:39,051 [DEBUG][       Thread-613095][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:06:39,060 [DEBUG][       Thread-613095][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:06:39,068 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:06:39,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-07-01 18:06:39,083 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 18:06:39,091 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:06:39,091 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:06:39,091 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:06:39,099 [DEBUG][       Thread-613095][   transport.py][1871] : EOF in transport thread
2025-07-01 18:06:42,288 [DEBUG][Thread-613097 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:06:42,804 [DEBUG][Thread-613098 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:06:49,100 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:06:49,100 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:06:49,100 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:06:49,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-07-01 18:06:49,595 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 6, 46), 9.94, 50.67, 0.0, 29.48, 12.19, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:06:49,595 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:06:46
2025-07-01 18:06:49,681 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:06:49,687 [DEBUG][       Thread-613099][   transport.py][1871] : starting thread (client mode): 0x8172440
2025-07-01 18:06:49,687 [DEBUG][       Thread-613099][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:06:49,708 [DEBUG][       Thread-613099][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:06:49,708 [ INFO][       Thread-613099][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:06:49,712 [DEBUG][       Thread-613099][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:06:49,712 [DEBUG][       Thread-613099][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:06:49,712 [DEBUG][       Thread-613099][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:06:49,712 [DEBUG][       Thread-613099][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:06:49,712 [DEBUG][       Thread-613099][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:06:49,712 [DEBUG][       Thread-613099][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:06:49,712 [DEBUG][       Thread-613099][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:06:49,712 [DEBUG][       Thread-613099][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:06:49,712 [DEBUG][       Thread-613099][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:06:49,712 [DEBUG][       Thread-613099][   transport.py][1871] : client lang: <none>
2025-07-01 18:06:49,712 [DEBUG][       Thread-613099][   transport.py][1871] : server lang: <none>
2025-07-01 18:06:49,712 [DEBUG][       Thread-613099][   transport.py][1871] : kex follows: False
2025-07-01 18:06:49,712 [DEBUG][       Thread-613099][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:06:49,712 [DEBUG][       Thread-613099][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:06:49,712 [DEBUG][       Thread-613099][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:06:49,712 [DEBUG][       Thread-613099][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:06:49,713 [DEBUG][       Thread-613099][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:06:49,713 [DEBUG][       Thread-613099][   transport.py][1871] : Compression: none
2025-07-01 18:06:49,713 [DEBUG][       Thread-613099][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:06:49,729 [DEBUG][       Thread-613099][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:06:49,730 [DEBUG][       Thread-613099][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:06:49,730 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:06:49,730 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:06:49,731 [DEBUG][       Thread-613099][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:06:49,732 [DEBUG][       Thread-613099][   transport.py][1871] : userauth is OK
2025-07-01 18:06:49,746 [ INFO][       Thread-613099][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:06:49,746 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:06:50,405 [DEBUG][       Thread-613099][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:06:50,405 [DEBUG][       Thread-613099][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:06:50,449 [DEBUG][       Thread-613099][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:06:50,449 [DEBUG][       Thread-613099][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:06:50,452 [DEBUG][       Thread-613099][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:06:50,466 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:06:50,466 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:06:50,468 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:06:50,470 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:06:50,476 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:06:50,478 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:06:50,478 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:06:50,479 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:06:50,479 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.671117 -999.00  +12.10  29.59     55   +3.30 1 2 1 1 1   361    0 8.27 -25.29 ----- 30.0 29.6 19.8 40.4 12.8 -18.1 12.7 -18.5 12.3 -18.2 12.7 -17.6
2025-07-01 18:06:50,479 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:06:50,479 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:06:50,479 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.671117
2025-07-01 18:06:50,480 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:06:50,480 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:06:50,480 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:06:50,480 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:06:50,480 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:06:50,480 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:06:46', tmtdew=9.94, humidity=50.67, cloud=0.0, wind=29.48, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:06:24.509', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:06:50,482 [DEBUG][       Thread-613099][   transport.py][1871] : EOF in transport thread
2025-07-01 18:06:50,565 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:06:50,576 [DEBUG][       Thread-613102][   transport.py][1871] : starting thread (client mode): 0x81e6500
2025-07-01 18:06:50,576 [DEBUG][       Thread-613102][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:06:50,596 [DEBUG][       Thread-613102][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:06:50,596 [ INFO][       Thread-613102][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:06:50,604 [DEBUG][       Thread-613102][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:06:50,604 [DEBUG][       Thread-613102][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:06:50,605 [DEBUG][       Thread-613102][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:06:50,605 [DEBUG][       Thread-613102][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:06:50,605 [DEBUG][       Thread-613102][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:06:50,605 [DEBUG][       Thread-613102][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:06:50,605 [DEBUG][       Thread-613102][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:06:50,605 [DEBUG][       Thread-613102][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:06:50,605 [DEBUG][       Thread-613102][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:06:50,605 [DEBUG][       Thread-613102][   transport.py][1871] : client lang: <none>
2025-07-01 18:06:50,605 [DEBUG][       Thread-613102][   transport.py][1871] : server lang: <none>
2025-07-01 18:06:50,605 [DEBUG][       Thread-613102][   transport.py][1871] : kex follows: False
2025-07-01 18:06:50,605 [DEBUG][       Thread-613102][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:06:50,605 [DEBUG][       Thread-613102][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:06:50,605 [DEBUG][       Thread-613102][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:06:50,605 [DEBUG][       Thread-613102][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:06:50,605 [DEBUG][       Thread-613102][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:06:50,605 [DEBUG][       Thread-613102][   transport.py][1871] : Compression: none
2025-07-01 18:06:50,606 [DEBUG][       Thread-613102][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:06:50,664 [DEBUG][       Thread-613102][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:06:50,664 [DEBUG][       Thread-613102][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:06:50,665 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:06:50,666 [DEBUG][       Thread-613102][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:06:50,666 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:06:50,720 [DEBUG][       Thread-613102][   transport.py][1871] : userauth is OK
2025-07-01 18:06:50,720 [DEBUG][       Thread-613102][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:06:50,720 [DEBUG][       Thread-613102][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:06:50,720 [DEBUG][       Thread-613102][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:06:50,720 [DEBUG][       Thread-613102][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:06:50,739 [ INFO][       Thread-613102][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:06:50,739 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:06:50,740 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:06:51,827 [DEBUG][Thread-613104 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:06:51,845 [DEBUG][       Thread-613102][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:06:51,845 [DEBUG][       Thread-613102][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:06:51,896 [DEBUG][       Thread-613102][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:06:51,896 [DEBUG][       Thread-613102][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:06:51,905 [DEBUG][       Thread-613102][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:06:51,913 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:06:51,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-07-01 18:06:51,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') -> 00000000
2025-07-01 18:06:51,932 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:06:51,932 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:06:51,933 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:06:51,940 [DEBUG][       Thread-613102][   transport.py][1871] : EOF in transport thread
2025-07-01 18:07:00,867 [DEBUG][Thread-613105 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:07:01,943 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:07:01,943 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:07:01,943 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:07:01,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-07-01 18:07:02,452 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 6, 46), 9.94, 50.67, 0.0, 29.48, 12.19, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:07:02,452 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:06:46
2025-07-01 18:07:02,537 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:07:02,541 [DEBUG][       Thread-613106][   transport.py][1871] : starting thread (client mode): 0x8170f70
2025-07-01 18:07:02,541 [DEBUG][       Thread-613106][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:07:02,562 [DEBUG][       Thread-613106][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:07:02,562 [ INFO][       Thread-613106][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:07:02,565 [DEBUG][       Thread-613106][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:07:02,565 [DEBUG][       Thread-613106][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:07:02,565 [DEBUG][       Thread-613106][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:07:02,565 [DEBUG][       Thread-613106][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:07:02,565 [DEBUG][       Thread-613106][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:07:02,565 [DEBUG][       Thread-613106][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:07:02,565 [DEBUG][       Thread-613106][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:07:02,565 [DEBUG][       Thread-613106][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:07:02,566 [DEBUG][       Thread-613106][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:07:02,566 [DEBUG][       Thread-613106][   transport.py][1871] : client lang: <none>
2025-07-01 18:07:02,566 [DEBUG][       Thread-613106][   transport.py][1871] : server lang: <none>
2025-07-01 18:07:02,566 [DEBUG][       Thread-613106][   transport.py][1871] : kex follows: False
2025-07-01 18:07:02,566 [DEBUG][       Thread-613106][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:07:02,566 [DEBUG][       Thread-613106][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:07:02,566 [DEBUG][       Thread-613106][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:07:02,566 [DEBUG][       Thread-613106][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:07:02,566 [DEBUG][       Thread-613106][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:07:02,566 [DEBUG][       Thread-613106][   transport.py][1871] : Compression: none
2025-07-01 18:07:02,566 [DEBUG][       Thread-613106][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:07:02,582 [DEBUG][       Thread-613106][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:07:02,582 [DEBUG][       Thread-613106][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:07:02,583 [DEBUG][       Thread-613106][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:07:02,583 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:07:02,583 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:07:02,584 [DEBUG][       Thread-613106][   transport.py][1871] : userauth is OK
2025-07-01 18:07:02,609 [ INFO][       Thread-613106][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:07:02,609 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:07:03,232 [DEBUG][       Thread-613106][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:07:03,232 [DEBUG][       Thread-613106][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:07:03,273 [DEBUG][       Thread-613106][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:07:03,273 [DEBUG][       Thread-613106][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:07:03,277 [DEBUG][       Thread-613106][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:07:03,290 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:07:03,291 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:07:03,293 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:07:03,295 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:07:03,301 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:07:03,303 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:07:03,303 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:07:03,304 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:07:03,304 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.671117 -999.00  +12.10  29.59     55   +3.30 1 2 1 1 1   361    0 8.27 -25.29 ----- 30.0 29.6 19.8 40.4 12.8 -18.1 12.7 -18.5 12.3 -18.2 12.7 -17.6
2025-07-01 18:07:03,304 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:07:03,304 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:07:03,304 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.671117
2025-07-01 18:07:03,304 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:07:03,305 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:07:03,305 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:07:03,305 [DEBUG][       Thread-613106][   transport.py][1871] : EOF in transport thread
2025-07-01 18:07:03,305 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:07:03,306 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:07:03,306 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:06:46', tmtdew=9.94, humidity=50.67, cloud=0.0, wind=29.48, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:06:24.509', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:07:03,389 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:07:03,399 [DEBUG][       Thread-613109][   transport.py][1871] : starting thread (client mode): 0x81e6080
2025-07-01 18:07:03,399 [DEBUG][       Thread-613109][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:07:03,415 [DEBUG][       Thread-613109][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:07:03,415 [ INFO][       Thread-613109][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:07:03,427 [DEBUG][       Thread-613109][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:07:03,427 [DEBUG][       Thread-613109][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:07:03,427 [DEBUG][       Thread-613109][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:07:03,427 [DEBUG][       Thread-613109][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:07:03,427 [DEBUG][       Thread-613109][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:07:03,427 [DEBUG][       Thread-613109][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:07:03,427 [DEBUG][       Thread-613109][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:07:03,427 [DEBUG][       Thread-613109][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:07:03,427 [DEBUG][       Thread-613109][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:07:03,427 [DEBUG][       Thread-613109][   transport.py][1871] : client lang: <none>
2025-07-01 18:07:03,427 [DEBUG][       Thread-613109][   transport.py][1871] : server lang: <none>
2025-07-01 18:07:03,427 [DEBUG][       Thread-613109][   transport.py][1871] : kex follows: False
2025-07-01 18:07:03,427 [DEBUG][       Thread-613109][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:07:03,428 [DEBUG][       Thread-613109][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:07:03,428 [DEBUG][       Thread-613109][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:07:03,428 [DEBUG][       Thread-613109][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:07:03,428 [DEBUG][       Thread-613109][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:07:03,428 [DEBUG][       Thread-613109][   transport.py][1871] : Compression: none
2025-07-01 18:07:03,428 [DEBUG][       Thread-613109][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:07:03,484 [DEBUG][       Thread-613109][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:07:03,485 [DEBUG][       Thread-613109][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:07:03,485 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:07:03,486 [DEBUG][       Thread-613109][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:07:03,487 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:07:03,540 [DEBUG][       Thread-613109][   transport.py][1871] : userauth is OK
2025-07-01 18:07:03,540 [DEBUG][       Thread-613109][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:07:03,540 [DEBUG][       Thread-613109][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:07:03,540 [DEBUG][       Thread-613109][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:07:03,541 [DEBUG][       Thread-613109][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:07:03,559 [ INFO][       Thread-613109][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:07:03,559 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:07:03,560 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:07:04,583 [DEBUG][       Thread-613109][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:07:04,583 [DEBUG][       Thread-613109][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:07:04,633 [DEBUG][       Thread-613109][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:07:04,633 [DEBUG][       Thread-613109][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:07:04,641 [DEBUG][       Thread-613109][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:07:04,649 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:07:04,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-07-01 18:07:04,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-07-01 18:07:04,665 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:07:04,665 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:07:04,665 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:07:04,677 [DEBUG][       Thread-613109][   transport.py][1871] : EOF in transport thread
2025-07-01 18:07:09,889 [DEBUG][Thread-613111 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:07:14,672 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:07:14,672 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:07:14,672 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:07:14,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-07-01 18:07:15,175 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 6, 46), 9.94, 50.67, 0.0, 29.48, 12.19, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:07:15,175 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:06:46
2025-07-01 18:07:15,260 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:07:15,265 [DEBUG][       Thread-613112][   transport.py][1871] : starting thread (client mode): 0x8157b50
2025-07-01 18:07:15,265 [DEBUG][       Thread-613112][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:07:15,285 [DEBUG][       Thread-613112][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:07:15,285 [ INFO][       Thread-613112][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:07:15,288 [DEBUG][       Thread-613112][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:07:15,288 [DEBUG][       Thread-613112][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:07:15,288 [DEBUG][       Thread-613112][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:07:15,288 [DEBUG][       Thread-613112][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:07:15,288 [DEBUG][       Thread-613112][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:07:15,288 [DEBUG][       Thread-613112][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:07:15,288 [DEBUG][       Thread-613112][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:07:15,288 [DEBUG][       Thread-613112][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:07:15,288 [DEBUG][       Thread-613112][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:07:15,288 [DEBUG][       Thread-613112][   transport.py][1871] : client lang: <none>
2025-07-01 18:07:15,288 [DEBUG][       Thread-613112][   transport.py][1871] : server lang: <none>
2025-07-01 18:07:15,288 [DEBUG][       Thread-613112][   transport.py][1871] : kex follows: False
2025-07-01 18:07:15,288 [DEBUG][       Thread-613112][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:07:15,288 [DEBUG][       Thread-613112][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:07:15,288 [DEBUG][       Thread-613112][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:07:15,288 [DEBUG][       Thread-613112][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:07:15,288 [DEBUG][       Thread-613112][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:07:15,288 [DEBUG][       Thread-613112][   transport.py][1871] : Compression: none
2025-07-01 18:07:15,288 [DEBUG][       Thread-613112][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:07:15,304 [DEBUG][       Thread-613112][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:07:15,304 [DEBUG][       Thread-613112][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:07:15,305 [DEBUG][       Thread-613112][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:07:15,305 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:07:15,305 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:07:15,306 [DEBUG][       Thread-613112][   transport.py][1871] : userauth is OK
2025-07-01 18:07:15,331 [ INFO][       Thread-613112][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:07:15,332 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:07:15,896 [DEBUG][       Thread-613112][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:07:15,896 [DEBUG][       Thread-613112][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:07:15,937 [DEBUG][       Thread-613112][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:07:15,937 [DEBUG][       Thread-613112][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:07:15,940 [DEBUG][       Thread-613112][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:07:15,953 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:07:15,953 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:07:15,955 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:07:15,957 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:07:15,963 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:07:15,965 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:07:15,965 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:07:15,966 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:07:15,966 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.671464 -999.00  +12.00  20.87     55   +3.30 1 2 1 1 1   340    0 8.22 -25.30 ----- 24.4 20.9 7.5 36.3 12.7 -18.1 12.6 -18.5 12.4 -18.2 12.7 -17.6
2025-07-01 18:07:15,966 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:07:15,966 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:07:15,966 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.671464
2025-07-01 18:07:15,967 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:07:15,967 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:07:15,967 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:07:15,967 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:07:15,967 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:07:15,968 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:06:46', tmtdew=9.94, humidity=50.67, cloud=0.0, wind=29.48, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:06:54.490', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:07:15,969 [DEBUG][       Thread-613112][   transport.py][1871] : EOF in transport thread
2025-07-01 18:07:16,051 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:07:16,063 [DEBUG][       Thread-613115][   transport.py][1871] : starting thread (client mode): 0x83c82e0
2025-07-01 18:07:16,063 [DEBUG][       Thread-613115][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:07:16,078 [DEBUG][       Thread-613115][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:07:16,078 [ INFO][       Thread-613115][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:07:16,086 [DEBUG][       Thread-613115][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:07:16,086 [DEBUG][       Thread-613115][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:07:16,086 [DEBUG][       Thread-613115][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:07:16,086 [DEBUG][       Thread-613115][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:07:16,086 [DEBUG][       Thread-613115][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:07:16,086 [DEBUG][       Thread-613115][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:07:16,086 [DEBUG][       Thread-613115][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:07:16,086 [DEBUG][       Thread-613115][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:07:16,087 [DEBUG][       Thread-613115][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:07:16,087 [DEBUG][       Thread-613115][   transport.py][1871] : client lang: <none>
2025-07-01 18:07:16,087 [DEBUG][       Thread-613115][   transport.py][1871] : server lang: <none>
2025-07-01 18:07:16,087 [DEBUG][       Thread-613115][   transport.py][1871] : kex follows: False
2025-07-01 18:07:16,087 [DEBUG][       Thread-613115][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:07:16,087 [DEBUG][       Thread-613115][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:07:16,087 [DEBUG][       Thread-613115][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:07:16,087 [DEBUG][       Thread-613115][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:07:16,087 [DEBUG][       Thread-613115][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:07:16,087 [DEBUG][       Thread-613115][   transport.py][1871] : Compression: none
2025-07-01 18:07:16,087 [DEBUG][       Thread-613115][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:07:16,147 [DEBUG][       Thread-613115][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:07:16,147 [DEBUG][       Thread-613115][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:07:16,157 [DEBUG][       Thread-613115][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:07:16,157 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:07:16,157 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:07:16,204 [DEBUG][       Thread-613115][   transport.py][1871] : userauth is OK
2025-07-01 18:07:16,204 [DEBUG][       Thread-613115][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:07:16,204 [DEBUG][       Thread-613115][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:07:16,204 [DEBUG][       Thread-613115][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:07:16,204 [DEBUG][       Thread-613115][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:07:16,222 [ INFO][       Thread-613115][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:07:16,223 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:07:16,223 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:07:17,252 [DEBUG][       Thread-613115][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:07:17,253 [DEBUG][       Thread-613115][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:07:17,304 [DEBUG][       Thread-613115][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:07:17,304 [DEBUG][       Thread-613115][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:07:17,313 [DEBUG][       Thread-613115][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:07:17,322 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:07:17,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-07-01 18:07:17,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-07-01 18:07:17,340 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:07:17,340 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:07:17,341 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:07:17,349 [DEBUG][       Thread-613115][   transport.py][1871] : EOF in transport thread
2025-07-01 18:07:18,908 [DEBUG][Thread-613117 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:07:27,351 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:07:27,352 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:07:27,352 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:07:27,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-07-01 18:07:27,868 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 7, 18), 9.86, 50.71, 0.0, 28.09, 12.14, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:07:27,868 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:07:18
2025-07-01 18:07:27,925 [DEBUG][Thread-613118 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:07:27,954 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:07:27,960 [DEBUG][       Thread-613119][   transport.py][1871] : starting thread (client mode): 0x81e40a0
2025-07-01 18:07:27,960 [DEBUG][       Thread-613119][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:07:27,980 [DEBUG][       Thread-613119][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:07:27,980 [ INFO][       Thread-613119][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:07:27,983 [DEBUG][       Thread-613119][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:07:27,984 [DEBUG][       Thread-613119][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:07:27,984 [DEBUG][       Thread-613119][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:07:27,984 [DEBUG][       Thread-613119][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:07:27,984 [DEBUG][       Thread-613119][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:07:27,984 [DEBUG][       Thread-613119][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:07:27,984 [DEBUG][       Thread-613119][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:07:27,984 [DEBUG][       Thread-613119][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:07:27,984 [DEBUG][       Thread-613119][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:07:27,984 [DEBUG][       Thread-613119][   transport.py][1871] : client lang: <none>
2025-07-01 18:07:27,984 [DEBUG][       Thread-613119][   transport.py][1871] : server lang: <none>
2025-07-01 18:07:27,984 [DEBUG][       Thread-613119][   transport.py][1871] : kex follows: False
2025-07-01 18:07:27,984 [DEBUG][       Thread-613119][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:07:27,984 [DEBUG][       Thread-613119][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:07:27,984 [DEBUG][       Thread-613119][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:07:27,984 [DEBUG][       Thread-613119][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:07:27,984 [DEBUG][       Thread-613119][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:07:27,984 [DEBUG][       Thread-613119][   transport.py][1871] : Compression: none
2025-07-01 18:07:27,984 [DEBUG][       Thread-613119][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:07:28,001 [DEBUG][       Thread-613119][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:07:28,002 [DEBUG][       Thread-613119][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:07:28,002 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:07:28,002 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:07:28,003 [DEBUG][       Thread-613119][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:07:28,003 [DEBUG][       Thread-613119][   transport.py][1871] : userauth is OK
2025-07-01 18:07:28,028 [ INFO][       Thread-613119][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:07:28,029 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:07:28,636 [DEBUG][       Thread-613119][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:07:28,637 [DEBUG][       Thread-613119][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:07:28,681 [DEBUG][       Thread-613119][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:07:28,681 [DEBUG][       Thread-613119][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:07:28,684 [DEBUG][       Thread-613119][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:07:28,695 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:07:28,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:07:28,698 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:07:28,700 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:07:28,706 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:07:28,708 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:07:28,708 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:07:28,709 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:07:28,709 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.671464 -999.00  +12.00  20.87     55   +3.30 1 2 1 1 1   340    0 8.22 -25.30 ----- 24.4 20.9 7.5 36.3 12.7 -18.1 12.6 -18.5 12.4 -18.2 12.7 -17.6
2025-07-01 18:07:28,709 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:07:28,709 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:07:28,709 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.671464
2025-07-01 18:07:28,710 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:07:28,710 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:07:28,710 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:07:28,711 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:07:28,711 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:07:28,711 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:07:18', tmtdew=9.86, humidity=50.71, cloud=0.0, wind=28.09, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:06:54.490', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:07:28,712 [DEBUG][       Thread-613119][   transport.py][1871] : EOF in transport thread
2025-07-01 18:07:28,794 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:07:28,806 [DEBUG][       Thread-613122][   transport.py][1871] : starting thread (client mode): 0x8173be0
2025-07-01 18:07:28,806 [DEBUG][       Thread-613122][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:07:28,822 [DEBUG][       Thread-613122][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:07:28,822 [ INFO][       Thread-613122][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:07:28,829 [DEBUG][       Thread-613122][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:07:28,829 [DEBUG][       Thread-613122][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:07:28,829 [DEBUG][       Thread-613122][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:07:28,829 [DEBUG][       Thread-613122][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:07:28,830 [DEBUG][       Thread-613122][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:07:28,830 [DEBUG][       Thread-613122][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:07:28,830 [DEBUG][       Thread-613122][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:07:28,830 [DEBUG][       Thread-613122][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:07:28,830 [DEBUG][       Thread-613122][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:07:28,830 [DEBUG][       Thread-613122][   transport.py][1871] : client lang: <none>
2025-07-01 18:07:28,830 [DEBUG][       Thread-613122][   transport.py][1871] : server lang: <none>
2025-07-01 18:07:28,830 [DEBUG][       Thread-613122][   transport.py][1871] : kex follows: False
2025-07-01 18:07:28,830 [DEBUG][       Thread-613122][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:07:28,830 [DEBUG][       Thread-613122][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:07:28,830 [DEBUG][       Thread-613122][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:07:28,830 [DEBUG][       Thread-613122][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:07:28,830 [DEBUG][       Thread-613122][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:07:28,830 [DEBUG][       Thread-613122][   transport.py][1871] : Compression: none
2025-07-01 18:07:28,830 [DEBUG][       Thread-613122][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:07:28,887 [DEBUG][       Thread-613122][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:07:28,888 [DEBUG][       Thread-613122][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:07:28,888 [DEBUG][       Thread-613122][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:07:28,889 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:07:28,889 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:07:28,948 [DEBUG][       Thread-613122][   transport.py][1871] : userauth is OK
2025-07-01 18:07:28,948 [DEBUG][       Thread-613122][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:07:28,948 [DEBUG][       Thread-613122][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:07:28,948 [DEBUG][       Thread-613122][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:07:28,948 [DEBUG][       Thread-613122][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:07:28,967 [ INFO][       Thread-613122][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:07:28,968 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:07:28,968 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:07:29,983 [DEBUG][       Thread-613122][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:07:29,983 [DEBUG][       Thread-613122][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:07:30,032 [DEBUG][       Thread-613122][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:07:30,032 [DEBUG][       Thread-613122][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:07:30,041 [DEBUG][       Thread-613122][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:07:30,050 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:07:30,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-07-01 18:07:30,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-07-01 18:07:30,068 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:07:30,069 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:07:30,069 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:07:30,077 [DEBUG][       Thread-613122][   transport.py][1871] : EOF in transport thread
2025-07-01 18:07:36,946 [DEBUG][Thread-613124 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:07:40,079 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:07:40,080 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:07:40,080 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:07:40,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-07-01 18:07:40,578 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 7, 18), 9.86, 50.71, 0.0, 28.09, 12.14, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:07:40,578 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:07:18
2025-07-01 18:07:40,663 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:07:40,667 [DEBUG][       Thread-613125][   transport.py][1871] : starting thread (client mode): 0x8154a30
2025-07-01 18:07:40,667 [DEBUG][       Thread-613125][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:07:40,687 [DEBUG][       Thread-613125][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:07:40,687 [ INFO][       Thread-613125][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:07:40,691 [DEBUG][       Thread-613125][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:07:40,691 [DEBUG][       Thread-613125][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:07:40,691 [DEBUG][       Thread-613125][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:07:40,691 [DEBUG][       Thread-613125][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:07:40,691 [DEBUG][       Thread-613125][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:07:40,691 [DEBUG][       Thread-613125][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:07:40,691 [DEBUG][       Thread-613125][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:07:40,691 [DEBUG][       Thread-613125][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:07:40,691 [DEBUG][       Thread-613125][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:07:40,691 [DEBUG][       Thread-613125][   transport.py][1871] : client lang: <none>
2025-07-01 18:07:40,691 [DEBUG][       Thread-613125][   transport.py][1871] : server lang: <none>
2025-07-01 18:07:40,691 [DEBUG][       Thread-613125][   transport.py][1871] : kex follows: False
2025-07-01 18:07:40,691 [DEBUG][       Thread-613125][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:07:40,691 [DEBUG][       Thread-613125][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:07:40,691 [DEBUG][       Thread-613125][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:07:40,691 [DEBUG][       Thread-613125][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:07:40,691 [DEBUG][       Thread-613125][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:07:40,691 [DEBUG][       Thread-613125][   transport.py][1871] : Compression: none
2025-07-01 18:07:40,691 [DEBUG][       Thread-613125][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:07:40,708 [DEBUG][       Thread-613125][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:07:40,709 [DEBUG][       Thread-613125][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:07:40,709 [DEBUG][       Thread-613125][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:07:40,709 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:07:40,710 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:07:40,752 [DEBUG][       Thread-613125][   transport.py][1871] : userauth is OK
2025-07-01 18:07:40,777 [ INFO][       Thread-613125][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:07:40,778 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:07:41,398 [DEBUG][       Thread-613125][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:07:41,398 [DEBUG][       Thread-613125][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:07:41,441 [DEBUG][       Thread-613125][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:07:41,441 [DEBUG][       Thread-613125][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:07:41,444 [DEBUG][       Thread-613125][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:07:41,456 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:07:41,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:07:41,458 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:07:41,460 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:07:41,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:07:41,467 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:07:41,467 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:07:41,468 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:07:41,468 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.671464 -999.00  +12.00  20.87     55   +3.30 1 2 1 1 1   340    0 8.22 -25.30 ----- 24.4 20.9 7.5 36.3 12.7 -18.1 12.6 -18.5 12.4 -18.2 12.7 -17.6
2025-07-01 18:07:41,468 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:07:41,468 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:07:41,468 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.671464
2025-07-01 18:07:41,468 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:07:41,469 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:07:41,469 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:07:41,469 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:07:41,469 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:07:41,469 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:07:18', tmtdew=9.86, humidity=50.71, cloud=0.0, wind=28.09, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:06:54.490', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:07:41,470 [DEBUG][       Thread-613125][   transport.py][1871] : EOF in transport thread
2025-07-01 18:07:41,553 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:07:41,562 [DEBUG][       Thread-613128][   transport.py][1871] : starting thread (client mode): 0x83c84f0
2025-07-01 18:07:41,562 [DEBUG][       Thread-613128][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:07:41,577 [DEBUG][       Thread-613128][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:07:41,577 [ INFO][       Thread-613128][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:07:41,584 [DEBUG][       Thread-613128][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:07:41,584 [DEBUG][       Thread-613128][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:07:41,584 [DEBUG][       Thread-613128][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:07:41,585 [DEBUG][       Thread-613128][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:07:41,585 [DEBUG][       Thread-613128][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:07:41,585 [DEBUG][       Thread-613128][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:07:41,585 [DEBUG][       Thread-613128][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:07:41,585 [DEBUG][       Thread-613128][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:07:41,585 [DEBUG][       Thread-613128][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:07:41,585 [DEBUG][       Thread-613128][   transport.py][1871] : client lang: <none>
2025-07-01 18:07:41,585 [DEBUG][       Thread-613128][   transport.py][1871] : server lang: <none>
2025-07-01 18:07:41,585 [DEBUG][       Thread-613128][   transport.py][1871] : kex follows: False
2025-07-01 18:07:41,585 [DEBUG][       Thread-613128][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:07:41,585 [DEBUG][       Thread-613128][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:07:41,585 [DEBUG][       Thread-613128][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:07:41,585 [DEBUG][       Thread-613128][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:07:41,585 [DEBUG][       Thread-613128][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:07:41,585 [DEBUG][       Thread-613128][   transport.py][1871] : Compression: none
2025-07-01 18:07:41,585 [DEBUG][       Thread-613128][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:07:41,643 [DEBUG][       Thread-613128][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:07:41,643 [DEBUG][       Thread-613128][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:07:41,644 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:07:41,644 [DEBUG][       Thread-613128][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:07:41,645 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:07:41,699 [DEBUG][       Thread-613128][   transport.py][1871] : userauth is OK
2025-07-01 18:07:41,700 [DEBUG][       Thread-613128][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:07:41,700 [DEBUG][       Thread-613128][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:07:41,700 [DEBUG][       Thread-613128][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:07:41,700 [DEBUG][       Thread-613128][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:07:41,719 [ INFO][       Thread-613128][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:07:41,719 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:07:41,719 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:07:42,341 [DEBUG][Thread-613130 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:07:42,797 [DEBUG][       Thread-613128][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:07:42,798 [DEBUG][       Thread-613128][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:07:42,848 [DEBUG][       Thread-613128][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:07:42,848 [DEBUG][       Thread-613128][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:07:42,858 [DEBUG][       Thread-613128][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:07:42,867 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:07:42,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-07-01 18:07:42,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-07-01 18:07:42,886 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:07:42,886 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:07:42,886 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:07:42,894 [DEBUG][       Thread-613128][   transport.py][1871] : EOF in transport thread
2025-07-01 18:07:45,982 [DEBUG][Thread-613131 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:07:52,897 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:07:52,897 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:07:52,897 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:07:52,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-07-01 18:07:53,409 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 7, 50), 9.82, 50.83, 0.0, 28.92, 12.11, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:07:53,409 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:07:50
2025-07-01 18:07:53,495 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:07:53,500 [DEBUG][       Thread-613132][   transport.py][1871] : starting thread (client mode): 0x83938e0
2025-07-01 18:07:53,500 [DEBUG][       Thread-613132][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:07:53,520 [DEBUG][       Thread-613132][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:07:53,520 [ INFO][       Thread-613132][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:07:53,524 [DEBUG][       Thread-613132][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:07:53,524 [DEBUG][       Thread-613132][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:07:53,524 [DEBUG][       Thread-613132][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:07:53,524 [DEBUG][       Thread-613132][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:07:53,524 [DEBUG][       Thread-613132][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:07:53,524 [DEBUG][       Thread-613132][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:07:53,524 [DEBUG][       Thread-613132][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:07:53,524 [DEBUG][       Thread-613132][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:07:53,524 [DEBUG][       Thread-613132][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:07:53,524 [DEBUG][       Thread-613132][   transport.py][1871] : client lang: <none>
2025-07-01 18:07:53,524 [DEBUG][       Thread-613132][   transport.py][1871] : server lang: <none>
2025-07-01 18:07:53,524 [DEBUG][       Thread-613132][   transport.py][1871] : kex follows: False
2025-07-01 18:07:53,524 [DEBUG][       Thread-613132][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:07:53,524 [DEBUG][       Thread-613132][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:07:53,524 [DEBUG][       Thread-613132][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:07:53,524 [DEBUG][       Thread-613132][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:07:53,524 [DEBUG][       Thread-613132][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:07:53,524 [DEBUG][       Thread-613132][   transport.py][1871] : Compression: none
2025-07-01 18:07:53,524 [DEBUG][       Thread-613132][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:07:53,542 [DEBUG][       Thread-613132][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:07:53,542 [DEBUG][       Thread-613132][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:07:53,543 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:07:53,543 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:07:53,543 [DEBUG][       Thread-613132][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:07:53,544 [DEBUG][       Thread-613132][   transport.py][1871] : userauth is OK
2025-07-01 18:07:53,557 [ INFO][       Thread-613132][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:07:53,557 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:07:54,189 [DEBUG][       Thread-613132][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:07:54,190 [DEBUG][       Thread-613132][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:07:54,233 [DEBUG][       Thread-613132][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:07:54,233 [DEBUG][       Thread-613132][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:07:54,236 [DEBUG][       Thread-613132][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:07:54,249 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:07:54,249 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:07:54,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:07:54,253 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:07:54,267 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:07:54,269 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:07:54,269 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:07:54,270 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:07:54,270 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.671811 -999.00  +11.90  28.27     55   +3.40 1 2 1 1 1   320    0 8.26 -28.42 ----- 22.7 28.3 21.0 34.6 12.8 -18.3 12.6 -18.6 12.4 -18.5 12.7 -17.7
2025-07-01 18:07:54,270 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:07:54,270 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:07:54,270 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.671811
2025-07-01 18:07:54,271 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:07:54,271 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:07:54,271 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:07:54,271 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:07:54,271 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:07:54,272 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:07:50', tmtdew=9.82, humidity=50.83, cloud=0.0, wind=28.92, temperature=12.11, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:07:24.470', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:07:54,272 [DEBUG][       Thread-613132][   transport.py][1871] : EOF in transport thread
2025-07-01 18:07:54,356 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:07:54,367 [DEBUG][       Thread-613135][   transport.py][1871] : starting thread (client mode): 0x8155060
2025-07-01 18:07:54,367 [DEBUG][       Thread-613135][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:07:54,383 [DEBUG][       Thread-613135][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:07:54,383 [ INFO][       Thread-613135][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:07:54,391 [DEBUG][       Thread-613135][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:07:54,391 [DEBUG][       Thread-613135][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:07:54,391 [DEBUG][       Thread-613135][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:07:54,391 [DEBUG][       Thread-613135][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:07:54,391 [DEBUG][       Thread-613135][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:07:54,391 [DEBUG][       Thread-613135][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:07:54,392 [DEBUG][       Thread-613135][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:07:54,392 [DEBUG][       Thread-613135][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:07:54,392 [DEBUG][       Thread-613135][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:07:54,392 [DEBUG][       Thread-613135][   transport.py][1871] : client lang: <none>
2025-07-01 18:07:54,392 [DEBUG][       Thread-613135][   transport.py][1871] : server lang: <none>
2025-07-01 18:07:54,392 [DEBUG][       Thread-613135][   transport.py][1871] : kex follows: False
2025-07-01 18:07:54,392 [DEBUG][       Thread-613135][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:07:54,392 [DEBUG][       Thread-613135][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:07:54,392 [DEBUG][       Thread-613135][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:07:54,392 [DEBUG][       Thread-613135][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:07:54,392 [DEBUG][       Thread-613135][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:07:54,392 [DEBUG][       Thread-613135][   transport.py][1871] : Compression: none
2025-07-01 18:07:54,392 [DEBUG][       Thread-613135][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:07:54,446 [DEBUG][       Thread-613135][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:07:54,446 [DEBUG][       Thread-613135][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:07:54,446 [DEBUG][       Thread-613135][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:07:54,446 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:07:54,446 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:07:54,503 [DEBUG][       Thread-613135][   transport.py][1871] : userauth is OK
2025-07-01 18:07:54,503 [DEBUG][       Thread-613135][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:07:54,503 [DEBUG][       Thread-613135][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:07:54,503 [DEBUG][       Thread-613135][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:07:54,503 [DEBUG][       Thread-613135][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:07:54,517 [ INFO][       Thread-613135][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:07:54,518 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:07:54,518 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:07:55,003 [DEBUG][Thread-613137 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:07:55,546 [DEBUG][       Thread-613135][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:07:55,546 [DEBUG][       Thread-613135][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:07:55,596 [DEBUG][       Thread-613135][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:07:55,596 [DEBUG][       Thread-613135][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:07:55,605 [DEBUG][       Thread-613135][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:07:55,614 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:07:55,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-07-01 18:07:55,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-07-01 18:07:55,633 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:07:55,633 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:07:55,634 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:07:55,642 [DEBUG][       Thread-613135][   transport.py][1871] : EOF in transport thread
2025-07-01 18:08:04,037 [DEBUG][Thread-613138 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:08:05,644 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:08:05,645 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:08:05,645 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:08:05,647 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 18:08:06,137 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 7, 50), 9.82, 50.83, 0.0, 28.92, 12.11, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:08:06,137 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:07:50
2025-07-01 18:08:06,223 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:08:06,226 [DEBUG][       Thread-613139][   transport.py][1871] : starting thread (client mode): 0x81e4b80
2025-07-01 18:08:06,226 [DEBUG][       Thread-613139][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:08:06,246 [DEBUG][       Thread-613139][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:08:06,246 [ INFO][       Thread-613139][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:08:06,249 [DEBUG][       Thread-613139][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:08:06,249 [DEBUG][       Thread-613139][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:08:06,249 [DEBUG][       Thread-613139][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:08:06,249 [DEBUG][       Thread-613139][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:08:06,249 [DEBUG][       Thread-613139][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:08:06,249 [DEBUG][       Thread-613139][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:08:06,249 [DEBUG][       Thread-613139][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:08:06,249 [DEBUG][       Thread-613139][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:08:06,249 [DEBUG][       Thread-613139][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:08:06,249 [DEBUG][       Thread-613139][   transport.py][1871] : client lang: <none>
2025-07-01 18:08:06,249 [DEBUG][       Thread-613139][   transport.py][1871] : server lang: <none>
2025-07-01 18:08:06,249 [DEBUG][       Thread-613139][   transport.py][1871] : kex follows: False
2025-07-01 18:08:06,249 [DEBUG][       Thread-613139][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:08:06,249 [DEBUG][       Thread-613139][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:08:06,249 [DEBUG][       Thread-613139][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:08:06,249 [DEBUG][       Thread-613139][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:08:06,249 [DEBUG][       Thread-613139][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:08:06,249 [DEBUG][       Thread-613139][   transport.py][1871] : Compression: none
2025-07-01 18:08:06,249 [DEBUG][       Thread-613139][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:08:06,261 [DEBUG][       Thread-613139][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:08:06,262 [DEBUG][       Thread-613139][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:08:06,262 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:08:06,262 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:08:06,263 [DEBUG][       Thread-613139][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:08:06,263 [DEBUG][       Thread-613139][   transport.py][1871] : userauth is OK
2025-07-01 18:08:06,288 [ INFO][       Thread-613139][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:08:06,288 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:08:06,975 [DEBUG][       Thread-613139][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:08:06,975 [DEBUG][       Thread-613139][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:08:07,017 [DEBUG][       Thread-613139][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:08:07,018 [DEBUG][       Thread-613139][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:08:07,022 [DEBUG][       Thread-613139][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:08:07,034 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:08:07,034 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:08:07,036 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:08:07,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:08:07,044 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:08:07,045 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:08:07,046 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:08:07,046 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:08:07,046 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.671811 -999.00  +11.90  28.27     55   +3.40 1 2 1 1 1   320    0 8.26 -28.42 ----- 22.7 28.3 21.0 34.6 12.8 -18.3 12.6 -18.6 12.4 -18.5 12.7 -17.7
2025-07-01 18:08:07,046 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:08:07,047 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:08:07,047 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.671811
2025-07-01 18:08:07,047 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:08:07,048 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:08:07,048 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:08:07,048 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:08:07,048 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:08:07,048 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:07:50', tmtdew=9.82, humidity=50.83, cloud=0.0, wind=28.92, temperature=12.11, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:07:24.470', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:08:07,049 [DEBUG][       Thread-613139][   transport.py][1871] : EOF in transport thread
2025-07-01 18:08:07,132 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:08:07,142 [DEBUG][       Thread-613142][   transport.py][1871] : starting thread (client mode): 0x8170d30
2025-07-01 18:08:07,142 [DEBUG][       Thread-613142][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:08:07,159 [DEBUG][       Thread-613142][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:08:07,159 [ INFO][       Thread-613142][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:08:07,167 [DEBUG][       Thread-613142][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:08:07,168 [DEBUG][       Thread-613142][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:08:07,168 [DEBUG][       Thread-613142][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:08:07,168 [DEBUG][       Thread-613142][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:08:07,168 [DEBUG][       Thread-613142][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:08:07,168 [DEBUG][       Thread-613142][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:08:07,168 [DEBUG][       Thread-613142][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:08:07,168 [DEBUG][       Thread-613142][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:08:07,168 [DEBUG][       Thread-613142][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:08:07,168 [DEBUG][       Thread-613142][   transport.py][1871] : client lang: <none>
2025-07-01 18:08:07,168 [DEBUG][       Thread-613142][   transport.py][1871] : server lang: <none>
2025-07-01 18:08:07,168 [DEBUG][       Thread-613142][   transport.py][1871] : kex follows: False
2025-07-01 18:08:07,168 [DEBUG][       Thread-613142][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:08:07,168 [DEBUG][       Thread-613142][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:08:07,168 [DEBUG][       Thread-613142][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:08:07,168 [DEBUG][       Thread-613142][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:08:07,169 [DEBUG][       Thread-613142][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:08:07,169 [DEBUG][       Thread-613142][   transport.py][1871] : Compression: none
2025-07-01 18:08:07,169 [DEBUG][       Thread-613142][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:08:07,234 [DEBUG][       Thread-613142][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:08:07,234 [DEBUG][       Thread-613142][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:08:07,235 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:08:07,235 [DEBUG][       Thread-613142][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:08:07,236 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:08:07,294 [DEBUG][       Thread-613142][   transport.py][1871] : userauth is OK
2025-07-01 18:08:07,295 [DEBUG][       Thread-613142][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:08:07,295 [DEBUG][       Thread-613142][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:08:07,295 [DEBUG][       Thread-613142][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:08:07,295 [DEBUG][       Thread-613142][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:08:07,317 [ INFO][       Thread-613142][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:08:07,318 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:08:07,318 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:08:08,412 [DEBUG][       Thread-613142][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:08:08,412 [DEBUG][       Thread-613142][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:08:08,459 [DEBUG][       Thread-613142][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:08:08,460 [DEBUG][       Thread-613142][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:08:08,468 [DEBUG][       Thread-613142][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:08:08,477 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:08: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-07-01 18:08:08,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-07-01 18:08:08,495 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:08:08,495 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:08:08,495 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:08:08,503 [DEBUG][       Thread-613142][   transport.py][1871] : EOF in transport thread
2025-07-01 18:08:13,057 [DEBUG][Thread-613144 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:08:18,506 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:08:18,506 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:08:18,506 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:08:18,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-07-01 18:08:18,994 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 7, 50), 9.82, 50.83, 0.0, 28.92, 12.11, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:08:18,994 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:07:50
2025-07-01 18:08:19,078 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:08:19,083 [DEBUG][       Thread-613145][   transport.py][1871] : starting thread (client mode): 0x81e7580
2025-07-01 18:08:19,084 [DEBUG][       Thread-613145][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:08:19,105 [DEBUG][       Thread-613145][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:08:19,105 [ INFO][       Thread-613145][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:08:19,108 [DEBUG][       Thread-613145][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:08:19,108 [DEBUG][       Thread-613145][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:08:19,108 [DEBUG][       Thread-613145][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:08:19,108 [DEBUG][       Thread-613145][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:08:19,108 [DEBUG][       Thread-613145][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:08:19,108 [DEBUG][       Thread-613145][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:08:19,108 [DEBUG][       Thread-613145][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:08:19,108 [DEBUG][       Thread-613145][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:08:19,108 [DEBUG][       Thread-613145][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:08:19,108 [DEBUG][       Thread-613145][   transport.py][1871] : client lang: <none>
2025-07-01 18:08:19,108 [DEBUG][       Thread-613145][   transport.py][1871] : server lang: <none>
2025-07-01 18:08:19,108 [DEBUG][       Thread-613145][   transport.py][1871] : kex follows: False
2025-07-01 18:08:19,108 [DEBUG][       Thread-613145][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:08:19,108 [DEBUG][       Thread-613145][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:08:19,108 [DEBUG][       Thread-613145][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:08:19,108 [DEBUG][       Thread-613145][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:08:19,108 [DEBUG][       Thread-613145][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:08:19,108 [DEBUG][       Thread-613145][   transport.py][1871] : Compression: none
2025-07-01 18:08:19,108 [DEBUG][       Thread-613145][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:08:19,125 [DEBUG][       Thread-613145][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:08:19,125 [DEBUG][       Thread-613145][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:08:19,126 [DEBUG][       Thread-613145][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:08:19,126 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:08:19,126 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:08:19,127 [DEBUG][       Thread-613145][   transport.py][1871] : userauth is OK
2025-07-01 18:08:19,152 [ INFO][       Thread-613145][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:08:19,153 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:08:19,783 [DEBUG][       Thread-613145][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:08:19,784 [DEBUG][       Thread-613145][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:08:19,825 [DEBUG][       Thread-613145][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:08:19,825 [DEBUG][       Thread-613145][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:08:19,828 [DEBUG][       Thread-613145][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:08:19,840 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:08:19,840 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:08:19,842 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:08:19,844 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:08:19,849 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:08:19,850 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:08:19,851 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:08:19,851 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:08:19,851 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.672159 -999.00  +11.80  22.96     56   +3.40 1 2 1 1 1   301    0 8.11 -29.46 ----- 19.9 23.0 19.2 35.5 12.7 -18.2 12.5 -18.5 12.3 -18.1 12.7 -17.6
2025-07-01 18:08:19,852 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:08:19,852 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:08:19,852 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.672159
2025-07-01 18:08:19,852 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:08:19,853 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:08:19,853 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:08:19,853 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:08:19,853 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:08:19,853 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:07:50', tmtdew=9.82, humidity=50.83, cloud=0.0, wind=28.92, temperature=12.11, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:07:54.538', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:08:19,854 [DEBUG][       Thread-613145][   transport.py][1871] : EOF in transport thread
2025-07-01 18:08:19,937 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:08:19,949 [DEBUG][       Thread-613148][   transport.py][1871] : starting thread (client mode): 0x83c8220
2025-07-01 18:08:19,949 [DEBUG][       Thread-613148][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:08:19,964 [DEBUG][       Thread-613148][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:08:19,964 [ INFO][       Thread-613148][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:08:19,972 [DEBUG][       Thread-613148][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:08:19,972 [DEBUG][       Thread-613148][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:08:19,972 [DEBUG][       Thread-613148][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:08:19,972 [DEBUG][       Thread-613148][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:08:19,972 [DEBUG][       Thread-613148][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:08:19,972 [DEBUG][       Thread-613148][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:08:19,972 [DEBUG][       Thread-613148][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:08:19,972 [DEBUG][       Thread-613148][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:08:19,972 [DEBUG][       Thread-613148][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:08:19,972 [DEBUG][       Thread-613148][   transport.py][1871] : client lang: <none>
2025-07-01 18:08:19,972 [DEBUG][       Thread-613148][   transport.py][1871] : server lang: <none>
2025-07-01 18:08:19,972 [DEBUG][       Thread-613148][   transport.py][1871] : kex follows: False
2025-07-01 18:08:19,972 [DEBUG][       Thread-613148][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:08:19,972 [DEBUG][       Thread-613148][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:08:19,972 [DEBUG][       Thread-613148][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:08:19,972 [DEBUG][       Thread-613148][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:08:19,972 [DEBUG][       Thread-613148][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:08:19,972 [DEBUG][       Thread-613148][   transport.py][1871] : Compression: none
2025-07-01 18:08:19,972 [DEBUG][       Thread-613148][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:08:20,031 [DEBUG][       Thread-613148][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:08:20,032 [DEBUG][       Thread-613148][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:08:20,032 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:08:20,033 [DEBUG][       Thread-613148][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:08:20,034 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:08:20,088 [DEBUG][       Thread-613148][   transport.py][1871] : userauth is OK
2025-07-01 18:08:20,088 [DEBUG][       Thread-613148][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:08:20,088 [DEBUG][       Thread-613148][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:08:20,088 [DEBUG][       Thread-613148][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:08:20,089 [DEBUG][       Thread-613148][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:08:20,107 [ INFO][       Thread-613148][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:08:20,107 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:08:20,108 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:08:21,139 [DEBUG][       Thread-613148][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:08:21,139 [DEBUG][       Thread-613148][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:08:21,188 [DEBUG][       Thread-613148][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:08:21,188 [DEBUG][       Thread-613148][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:08:21,197 [DEBUG][       Thread-613148][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:08:21,207 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:08:21,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-07-01 18:08:21,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-07-01 18:08:21,225 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:08:21,226 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:08:21,226 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:08:21,234 [DEBUG][       Thread-613148][   transport.py][1871] : EOF in transport thread
2025-07-01 18:08:22,078 [DEBUG][Thread-613150 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:08:31,100 [DEBUG][Thread-613151 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:08:31,237 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:08:31,237 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:08:31,237 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:08:31,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-07-01 18:08:31,727 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 8, 22), 9.84, 51.12, 0.0, 28.97, 12.14, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:08:31,727 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:08:22
2025-07-01 18:08:31,812 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:08:31,819 [DEBUG][       Thread-613152][   transport.py][1871] : starting thread (client mode): 0x81e4a60
2025-07-01 18:08:31,819 [DEBUG][       Thread-613152][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:08:31,839 [DEBUG][       Thread-613152][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:08:31,839 [ INFO][       Thread-613152][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:08:31,842 [DEBUG][       Thread-613152][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:08:31,842 [DEBUG][       Thread-613152][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:08:31,842 [DEBUG][       Thread-613152][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:08:31,842 [DEBUG][       Thread-613152][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:08:31,842 [DEBUG][       Thread-613152][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:08:31,842 [DEBUG][       Thread-613152][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:08:31,842 [DEBUG][       Thread-613152][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:08:31,843 [DEBUG][       Thread-613152][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:08:31,843 [DEBUG][       Thread-613152][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:08:31,843 [DEBUG][       Thread-613152][   transport.py][1871] : client lang: <none>
2025-07-01 18:08:31,843 [DEBUG][       Thread-613152][   transport.py][1871] : server lang: <none>
2025-07-01 18:08:31,843 [DEBUG][       Thread-613152][   transport.py][1871] : kex follows: False
2025-07-01 18:08:31,843 [DEBUG][       Thread-613152][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:08:31,843 [DEBUG][       Thread-613152][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:08:31,843 [DEBUG][       Thread-613152][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:08:31,843 [DEBUG][       Thread-613152][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:08:31,843 [DEBUG][       Thread-613152][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:08:31,843 [DEBUG][       Thread-613152][   transport.py][1871] : Compression: none
2025-07-01 18:08:31,843 [DEBUG][       Thread-613152][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:08:31,857 [DEBUG][       Thread-613152][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:08:31,857 [DEBUG][       Thread-613152][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:08:31,857 [DEBUG][       Thread-613152][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:08:31,857 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:08:31,857 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:08:31,858 [DEBUG][       Thread-613152][   transport.py][1871] : userauth is OK
2025-07-01 18:08:31,882 [ INFO][       Thread-613152][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:08:31,883 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:08:32,531 [DEBUG][       Thread-613152][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:08:32,531 [DEBUG][       Thread-613152][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:08:32,573 [DEBUG][       Thread-613152][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:08:32,573 [DEBUG][       Thread-613152][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:08:32,576 [DEBUG][       Thread-613152][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:08:32,588 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:08:32,588 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:08:32,590 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:08:32,592 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:08:32,598 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:08:32,600 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:08:32,600 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:08:32,601 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:08:32,601 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.672159 -999.00  +11.80  22.96     56   +3.40 1 2 1 1 1   301    0 8.11 -29.46 ----- 19.9 23.0 19.2 35.5 12.7 -18.2 12.5 -18.5 12.3 -18.1 12.7 -17.6
2025-07-01 18:08:32,601 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:08:32,601 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:08:32,601 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.672159
2025-07-01 18:08:32,601 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:08:32,602 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:08:32,602 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:08:32,602 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:08:32,602 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:08:32,602 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:08:22', tmtdew=9.84, humidity=51.12, cloud=0.0, wind=28.97, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:07:54.538', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:08:32,603 [DEBUG][       Thread-613152][   transport.py][1871] : EOF in transport thread
2025-07-01 18:08:32,686 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:08:32,698 [DEBUG][       Thread-613155][   transport.py][1871] : starting thread (client mode): 0x8171d20
2025-07-01 18:08:32,698 [DEBUG][       Thread-613155][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:08:32,714 [DEBUG][       Thread-613155][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:08:32,714 [ INFO][       Thread-613155][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:08:32,721 [DEBUG][       Thread-613155][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:08:32,722 [DEBUG][       Thread-613155][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:08:32,722 [DEBUG][       Thread-613155][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:08:32,722 [DEBUG][       Thread-613155][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:08:32,722 [DEBUG][       Thread-613155][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:08:32,722 [DEBUG][       Thread-613155][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:08:32,722 [DEBUG][       Thread-613155][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:08:32,722 [DEBUG][       Thread-613155][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:08:32,722 [DEBUG][       Thread-613155][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:08:32,722 [DEBUG][       Thread-613155][   transport.py][1871] : client lang: <none>
2025-07-01 18:08:32,722 [DEBUG][       Thread-613155][   transport.py][1871] : server lang: <none>
2025-07-01 18:08:32,722 [DEBUG][       Thread-613155][   transport.py][1871] : kex follows: False
2025-07-01 18:08:32,722 [DEBUG][       Thread-613155][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:08:32,722 [DEBUG][       Thread-613155][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:08:32,722 [DEBUG][       Thread-613155][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:08:32,722 [DEBUG][       Thread-613155][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:08:32,722 [DEBUG][       Thread-613155][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:08:32,722 [DEBUG][       Thread-613155][   transport.py][1871] : Compression: none
2025-07-01 18:08:32,722 [DEBUG][       Thread-613155][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:08:32,780 [DEBUG][       Thread-613155][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:08:32,781 [DEBUG][       Thread-613155][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:08:32,781 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:08:32,782 [DEBUG][       Thread-613155][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:08:32,782 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:08:32,835 [DEBUG][       Thread-613155][   transport.py][1871] : userauth is OK
2025-07-01 18:08:32,836 [DEBUG][       Thread-613155][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:08:32,836 [DEBUG][       Thread-613155][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:08:32,836 [DEBUG][       Thread-613155][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:08:32,836 [DEBUG][       Thread-613155][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:08:32,854 [ INFO][       Thread-613155][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:08:32,855 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:08:32,855 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:08:33,867 [DEBUG][       Thread-613155][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:08:33,867 [DEBUG][       Thread-613155][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:08:33,923 [DEBUG][       Thread-613155][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:08:33,923 [DEBUG][       Thread-613155][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:08:33,932 [DEBUG][       Thread-613155][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:08:33,941 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:08:33,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')
2025-07-01 18:08:33,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-07-01 18:08:33,960 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:08:33,960 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:08:33,961 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:08:33,970 [DEBUG][       Thread-613155][   transport.py][1871] : EOF in transport thread
2025-07-01 18:08:40,120 [DEBUG][Thread-613157 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:08:42,391 [DEBUG][Thread-613158 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:08:43,971 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:08:43,971 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:08:43,971 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:08:43,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-07-01 18:08:44,459 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 8, 22), 9.84, 51.12, 0.0, 28.97, 12.14, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:08:44,459 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:08:22
2025-07-01 18:08:44,543 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:08:44,547 [DEBUG][       Thread-613159][   transport.py][1871] : starting thread (client mode): 0x8155750
2025-07-01 18:08:44,547 [DEBUG][       Thread-613159][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:08:44,569 [DEBUG][       Thread-613159][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:08:44,569 [ INFO][       Thread-613159][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:08:44,572 [DEBUG][       Thread-613159][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:08:44,572 [DEBUG][       Thread-613159][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:08:44,572 [DEBUG][       Thread-613159][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:08:44,572 [DEBUG][       Thread-613159][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:08:44,572 [DEBUG][       Thread-613159][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:08:44,572 [DEBUG][       Thread-613159][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:08:44,572 [DEBUG][       Thread-613159][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:08:44,572 [DEBUG][       Thread-613159][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:08:44,572 [DEBUG][       Thread-613159][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:08:44,572 [DEBUG][       Thread-613159][   transport.py][1871] : client lang: <none>
2025-07-01 18:08:44,572 [DEBUG][       Thread-613159][   transport.py][1871] : server lang: <none>
2025-07-01 18:08:44,572 [DEBUG][       Thread-613159][   transport.py][1871] : kex follows: False
2025-07-01 18:08:44,572 [DEBUG][       Thread-613159][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:08:44,572 [DEBUG][       Thread-613159][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:08:44,572 [DEBUG][       Thread-613159][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:08:44,572 [DEBUG][       Thread-613159][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:08:44,572 [DEBUG][       Thread-613159][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:08:44,573 [DEBUG][       Thread-613159][   transport.py][1871] : Compression: none
2025-07-01 18:08:44,573 [DEBUG][       Thread-613159][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:08:44,589 [DEBUG][       Thread-613159][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:08:44,590 [DEBUG][       Thread-613159][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:08:44,590 [DEBUG][       Thread-613159][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:08:44,591 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:08:44,591 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:08:44,592 [DEBUG][       Thread-613159][   transport.py][1871] : userauth is OK
2025-07-01 18:08:44,617 [ INFO][       Thread-613159][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:08:44,617 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:08:45,241 [DEBUG][       Thread-613159][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:08:45,242 [DEBUG][       Thread-613159][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:08:45,285 [DEBUG][       Thread-613159][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:08:45,285 [DEBUG][       Thread-613159][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:08:45,299 [DEBUG][       Thread-613159][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:08:45,306 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:08:45,307 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:08:45,309 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:08:45,310 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:08:45,315 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:08:45,317 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:08:45,317 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:08:45,318 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:08:45,318 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.672159 -999.00  +11.80  22.96     56   +3.40 1 2 1 1 1   301    0 8.11 -29.46 ----- 19.9 23.0 19.2 35.5 12.7 -18.2 12.5 -18.5 12.3 -18.1 12.7 -17.6
2025-07-01 18:08:45,318 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:08:45,318 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:08:45,318 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.672159
2025-07-01 18:08:45,319 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:08:45,320 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:08:45,320 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:08:45,320 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:08:45,320 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:08:45,320 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:08:22', tmtdew=9.84, humidity=51.12, cloud=0.0, wind=28.97, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:07:54.538', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:08:45,320 [DEBUG][       Thread-613159][   transport.py][1871] : EOF in transport thread
2025-07-01 18:08:45,403 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:08:45,413 [DEBUG][       Thread-613162][   transport.py][1871] : starting thread (client mode): 0x81e7f70
2025-07-01 18:08:45,413 [DEBUG][       Thread-613162][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:08:45,428 [DEBUG][       Thread-613162][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:08:45,428 [ INFO][       Thread-613162][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:08:45,439 [DEBUG][       Thread-613162][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:08:45,439 [DEBUG][       Thread-613162][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:08:45,440 [DEBUG][       Thread-613162][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:08:45,440 [DEBUG][       Thread-613162][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:08:45,440 [DEBUG][       Thread-613162][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:08:45,440 [DEBUG][       Thread-613162][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:08:45,440 [DEBUG][       Thread-613162][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:08:45,440 [DEBUG][       Thread-613162][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:08:45,440 [DEBUG][       Thread-613162][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:08:45,440 [DEBUG][       Thread-613162][   transport.py][1871] : client lang: <none>
2025-07-01 18:08:45,440 [DEBUG][       Thread-613162][   transport.py][1871] : server lang: <none>
2025-07-01 18:08:45,440 [DEBUG][       Thread-613162][   transport.py][1871] : kex follows: False
2025-07-01 18:08:45,440 [DEBUG][       Thread-613162][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:08:45,440 [DEBUG][       Thread-613162][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:08:45,440 [DEBUG][       Thread-613162][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:08:45,440 [DEBUG][       Thread-613162][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:08:45,440 [DEBUG][       Thread-613162][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:08:45,440 [DEBUG][       Thread-613162][   transport.py][1871] : Compression: none
2025-07-01 18:08:45,440 [DEBUG][       Thread-613162][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:08:45,499 [DEBUG][       Thread-613162][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:08:45,500 [DEBUG][       Thread-613162][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:08:45,500 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:08:45,501 [DEBUG][       Thread-613162][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:08:45,501 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:08:45,556 [DEBUG][       Thread-613162][   transport.py][1871] : userauth is OK
2025-07-01 18:08:45,556 [DEBUG][       Thread-613162][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:08:45,556 [DEBUG][       Thread-613162][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:08:45,556 [DEBUG][       Thread-613162][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:08:45,556 [DEBUG][       Thread-613162][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:08:45,575 [ INFO][       Thread-613162][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:08:45,575 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:08:45,575 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:08:46,587 [DEBUG][       Thread-613162][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:08:46,587 [DEBUG][       Thread-613162][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:08:46,636 [DEBUG][       Thread-613162][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:08:46,636 [DEBUG][       Thread-613162][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:08:46,645 [DEBUG][       Thread-613162][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:08:46,654 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:08:46,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-07-01 18:08:46,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') -> 00000000
2025-07-01 18:08:46,673 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:08:46,673 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:08:46,673 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:08:46,681 [DEBUG][       Thread-613162][   transport.py][1871] : EOF in transport thread
2025-07-01 18:08:49,144 [DEBUG][Thread-613164 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:08:56,680 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:08:56,680 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:08:56,680 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:08:56,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-07-01 18:08:57,155 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 8, 53), 9.85, 51.1, 0.0, 32.34, 12.17, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:08:57,155 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:08:53
2025-07-01 18:08:57,239 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:08:57,244 [DEBUG][       Thread-613165][   transport.py][1871] : starting thread (client mode): 0x81e4e50
2025-07-01 18:08:57,244 [DEBUG][       Thread-613165][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:08:57,265 [DEBUG][       Thread-613165][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:08:57,265 [ INFO][       Thread-613165][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:08:57,269 [DEBUG][       Thread-613165][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:08:57,269 [DEBUG][       Thread-613165][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:08:57,269 [DEBUG][       Thread-613165][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:08:57,269 [DEBUG][       Thread-613165][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:08:57,269 [DEBUG][       Thread-613165][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:08:57,269 [DEBUG][       Thread-613165][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:08:57,269 [DEBUG][       Thread-613165][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:08:57,269 [DEBUG][       Thread-613165][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:08:57,269 [DEBUG][       Thread-613165][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:08:57,269 [DEBUG][       Thread-613165][   transport.py][1871] : client lang: <none>
2025-07-01 18:08:57,269 [DEBUG][       Thread-613165][   transport.py][1871] : server lang: <none>
2025-07-01 18:08:57,269 [DEBUG][       Thread-613165][   transport.py][1871] : kex follows: False
2025-07-01 18:08:57,269 [DEBUG][       Thread-613165][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:08:57,269 [DEBUG][       Thread-613165][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:08:57,269 [DEBUG][       Thread-613165][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:08:57,269 [DEBUG][       Thread-613165][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:08:57,269 [DEBUG][       Thread-613165][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:08:57,269 [DEBUG][       Thread-613165][   transport.py][1871] : Compression: none
2025-07-01 18:08:57,269 [DEBUG][       Thread-613165][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:08:57,288 [DEBUG][       Thread-613165][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:08:57,289 [DEBUG][       Thread-613165][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:08:57,289 [DEBUG][       Thread-613165][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:08:57,289 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:08:57,290 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:08:57,291 [DEBUG][       Thread-613165][   transport.py][1871] : userauth is OK
2025-07-01 18:08:57,304 [ INFO][       Thread-613165][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:08:57,304 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:08:57,893 [DEBUG][       Thread-613165][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:08:57,893 [DEBUG][       Thread-613165][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:08:57,937 [DEBUG][       Thread-613165][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:08:57,937 [DEBUG][       Thread-613165][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:08:57,941 [DEBUG][       Thread-613165][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:08:57,952 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:08:57,953 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:08:57,954 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:08:57,956 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:08:57,962 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:08:57,964 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:08:57,965 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:08:57,965 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:08:57,965 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.672506 -999.00  +11.80  27.22     56   +3.40 1 2 1 1 1   282    0 7.71 -31.58 ----- 21.7 27.2 27.0 33.1 12.7 -18.2 12.5 -18.7 12.3 -18.0 12.6 -17.5
2025-07-01 18:08:57,966 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:08:57,966 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:08:57,966 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.672506
2025-07-01 18:08:57,966 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:08:57,967 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:08:57,967 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:08:57,967 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:08:57,967 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:08:57,967 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:08:53', tmtdew=9.85, humidity=51.1, cloud=0.0, wind=32.34, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:08:24.518', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:08:57,968 [DEBUG][       Thread-613165][   transport.py][1871] : EOF in transport thread
2025-07-01 18:08:58,044 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:08:58,055 [DEBUG][       Thread-613168][   transport.py][1871] : starting thread (client mode): 0x81721d0
2025-07-01 18:08:58,055 [DEBUG][       Thread-613168][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:08:58,070 [DEBUG][       Thread-613168][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:08:58,070 [ INFO][       Thread-613168][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:08:58,078 [DEBUG][       Thread-613168][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:08:58,079 [DEBUG][       Thread-613168][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:08:58,079 [DEBUG][       Thread-613168][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:08:58,079 [DEBUG][       Thread-613168][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:08:58,079 [DEBUG][       Thread-613168][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:08:58,079 [DEBUG][       Thread-613168][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:08:58,079 [DEBUG][       Thread-613168][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:08:58,079 [DEBUG][       Thread-613168][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:08:58,079 [DEBUG][       Thread-613168][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:08:58,079 [DEBUG][       Thread-613168][   transport.py][1871] : client lang: <none>
2025-07-01 18:08:58,079 [DEBUG][       Thread-613168][   transport.py][1871] : server lang: <none>
2025-07-01 18:08:58,079 [DEBUG][       Thread-613168][   transport.py][1871] : kex follows: False
2025-07-01 18:08:58,079 [DEBUG][       Thread-613168][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:08:58,079 [DEBUG][       Thread-613168][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:08:58,079 [DEBUG][       Thread-613168][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:08:58,079 [DEBUG][       Thread-613168][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:08:58,079 [DEBUG][       Thread-613168][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:08:58,079 [DEBUG][       Thread-613168][   transport.py][1871] : Compression: none
2025-07-01 18:08:58,079 [DEBUG][       Thread-613168][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:08:58,136 [DEBUG][       Thread-613168][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:08:58,137 [DEBUG][       Thread-613168][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:08:58,137 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:08:58,138 [DEBUG][       Thread-613168][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:08:58,139 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:08:58,166 [DEBUG][Thread-613170 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:08:58,192 [DEBUG][       Thread-613168][   transport.py][1871] : userauth is OK
2025-07-01 18:08:58,192 [DEBUG][       Thread-613168][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:08:58,192 [DEBUG][       Thread-613168][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:08:58,192 [DEBUG][       Thread-613168][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:08:58,192 [DEBUG][       Thread-613168][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:08:58,216 [ INFO][       Thread-613168][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:08:58,216 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:08:58,216 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:08:59,222 [DEBUG][       Thread-613168][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:08:59,222 [DEBUG][       Thread-613168][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:08:59,272 [DEBUG][       Thread-613168][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:08:59,272 [DEBUG][       Thread-613168][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:08:59,282 [DEBUG][       Thread-613168][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:08:59,291 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:08:59,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-07-01 18:08:59,300 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 18:08:59,310 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:08:59,310 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:08:59,310 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:08:59,318 [DEBUG][       Thread-613168][   transport.py][1871] : EOF in transport thread
2025-07-01 18:09:07,209 [DEBUG][Thread-613171 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:09:09,311 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:09:09,311 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:09:09,311 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:09:09,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-07-01 18:09:09,803 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 8, 53), 9.85, 51.1, 0.0, 32.34, 12.17, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:09:09,803 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:08:53
2025-07-01 18:09:09,887 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:09:09,891 [DEBUG][       Thread-613172][   transport.py][1871] : starting thread (client mode): 0x81733a0
2025-07-01 18:09:09,891 [DEBUG][       Thread-613172][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:09:09,912 [DEBUG][       Thread-613172][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:09:09,912 [ INFO][       Thread-613172][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:09:09,915 [DEBUG][       Thread-613172][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:09:09,915 [DEBUG][       Thread-613172][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:09:09,915 [DEBUG][       Thread-613172][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:09:09,915 [DEBUG][       Thread-613172][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:09:09,915 [DEBUG][       Thread-613172][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:09:09,915 [DEBUG][       Thread-613172][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:09:09,915 [DEBUG][       Thread-613172][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:09:09,915 [DEBUG][       Thread-613172][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:09:09,915 [DEBUG][       Thread-613172][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:09:09,915 [DEBUG][       Thread-613172][   transport.py][1871] : client lang: <none>
2025-07-01 18:09:09,915 [DEBUG][       Thread-613172][   transport.py][1871] : server lang: <none>
2025-07-01 18:09:09,915 [DEBUG][       Thread-613172][   transport.py][1871] : kex follows: False
2025-07-01 18:09:09,915 [DEBUG][       Thread-613172][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:09:09,915 [DEBUG][       Thread-613172][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:09:09,915 [DEBUG][       Thread-613172][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:09:09,915 [DEBUG][       Thread-613172][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:09:09,915 [DEBUG][       Thread-613172][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:09:09,915 [DEBUG][       Thread-613172][   transport.py][1871] : Compression: none
2025-07-01 18:09:09,916 [DEBUG][       Thread-613172][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:09:09,932 [DEBUG][       Thread-613172][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:09:09,933 [DEBUG][       Thread-613172][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:09:09,933 [DEBUG][       Thread-613172][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:09:09,933 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:09:09,934 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:09:09,935 [DEBUG][       Thread-613172][   transport.py][1871] : userauth is OK
2025-07-01 18:09:09,960 [ INFO][       Thread-613172][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:09:09,960 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:09:10,628 [DEBUG][       Thread-613172][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:09:10,628 [DEBUG][       Thread-613172][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:09:10,669 [DEBUG][       Thread-613172][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:09:10,669 [DEBUG][       Thread-613172][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:09:10,673 [DEBUG][       Thread-613172][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:09:10,684 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:09:10,685 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:09:10,687 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:09:10,689 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:09:10,695 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:09:10,697 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:09:10,697 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:09:10,697 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:09:10,698 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.672506 -999.00  +11.80  27.22     56   +3.40 1 2 1 1 1   282    0 7.71 -31.58 ----- 21.7 27.2 27.0 33.1 12.7 -18.2 12.5 -18.7 12.3 -18.0 12.6 -17.5
2025-07-01 18:09:10,698 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:09:10,698 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:09:10,698 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.672506
2025-07-01 18:09:10,698 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:09:10,699 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:09:10,699 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:09:10,699 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:09:10,699 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:09:10,699 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:08:53', tmtdew=9.85, humidity=51.1, cloud=0.0, wind=32.34, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:08:24.518', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:09:10,699 [DEBUG][       Thread-613172][   transport.py][1871] : EOF in transport thread
2025-07-01 18:09:10,783 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:09:10,794 [DEBUG][       Thread-613175][   transport.py][1871] : starting thread (client mode): 0x83c8220
2025-07-01 18:09:10,794 [DEBUG][       Thread-613175][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:09:10,810 [DEBUG][       Thread-613175][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:09:10,810 [ INFO][       Thread-613175][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:09:10,818 [DEBUG][       Thread-613175][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:09:10,818 [DEBUG][       Thread-613175][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:09:10,818 [DEBUG][       Thread-613175][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:09:10,818 [DEBUG][       Thread-613175][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:09:10,818 [DEBUG][       Thread-613175][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:09:10,818 [DEBUG][       Thread-613175][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:09:10,818 [DEBUG][       Thread-613175][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:09:10,818 [DEBUG][       Thread-613175][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:09:10,818 [DEBUG][       Thread-613175][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:09:10,818 [DEBUG][       Thread-613175][   transport.py][1871] : client lang: <none>
2025-07-01 18:09:10,818 [DEBUG][       Thread-613175][   transport.py][1871] : server lang: <none>
2025-07-01 18:09:10,818 [DEBUG][       Thread-613175][   transport.py][1871] : kex follows: False
2025-07-01 18:09:10,818 [DEBUG][       Thread-613175][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:09:10,818 [DEBUG][       Thread-613175][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:09:10,818 [DEBUG][       Thread-613175][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:09:10,818 [DEBUG][       Thread-613175][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:09:10,819 [DEBUG][       Thread-613175][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:09:10,819 [DEBUG][       Thread-613175][   transport.py][1871] : Compression: none
2025-07-01 18:09:10,819 [DEBUG][       Thread-613175][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:09:10,876 [DEBUG][       Thread-613175][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:09:10,876 [DEBUG][       Thread-613175][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:09:10,877 [DEBUG][       Thread-613175][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:09:10,877 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:09:10,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:09:10,932 [DEBUG][       Thread-613175][   transport.py][1871] : userauth is OK
2025-07-01 18:09:10,932 [DEBUG][       Thread-613175][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:09:10,932 [DEBUG][       Thread-613175][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:09:10,932 [DEBUG][       Thread-613175][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:09:10,932 [DEBUG][       Thread-613175][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:09:10,951 [ INFO][       Thread-613175][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:09:10,951 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:09:10,951 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:09:12,023 [DEBUG][       Thread-613175][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:09:12,024 [DEBUG][       Thread-613175][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:09:12,072 [DEBUG][       Thread-613175][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:09:12,072 [DEBUG][       Thread-613175][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:09:12,081 [DEBUG][       Thread-613175][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:09:12,090 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:09:12,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-07-01 18:09:12,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-07-01 18:09:12,108 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:09:12,109 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:09:12,109 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:09:12,117 [DEBUG][       Thread-613175][   transport.py][1871] : EOF in transport thread
2025-07-01 18:09:16,231 [DEBUG][Thread-613177 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:09:22,116 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:09:22,116 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:09:22,116 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:09:22,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-07-01 18:09:22,615 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 8, 53), 9.85, 51.1, 0.0, 32.34, 12.17, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:09:22,615 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:08:53
2025-07-01 18:09:22,702 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:09:22,707 [DEBUG][       Thread-613178][   transport.py][1871] : starting thread (client mode): 0x8172710
2025-07-01 18:09:22,707 [DEBUG][       Thread-613178][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:09:22,727 [DEBUG][       Thread-613178][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:09:22,727 [ INFO][       Thread-613178][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:09:22,730 [DEBUG][       Thread-613178][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:09:22,730 [DEBUG][       Thread-613178][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:09:22,731 [DEBUG][       Thread-613178][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:09:22,731 [DEBUG][       Thread-613178][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:09:22,731 [DEBUG][       Thread-613178][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:09:22,731 [DEBUG][       Thread-613178][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:09:22,731 [DEBUG][       Thread-613178][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:09:22,731 [DEBUG][       Thread-613178][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:09:22,731 [DEBUG][       Thread-613178][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:09:22,731 [DEBUG][       Thread-613178][   transport.py][1871] : client lang: <none>
2025-07-01 18:09:22,731 [DEBUG][       Thread-613178][   transport.py][1871] : server lang: <none>
2025-07-01 18:09:22,731 [DEBUG][       Thread-613178][   transport.py][1871] : kex follows: False
2025-07-01 18:09:22,731 [DEBUG][       Thread-613178][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:09:22,731 [DEBUG][       Thread-613178][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:09:22,731 [DEBUG][       Thread-613178][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:09:22,731 [DEBUG][       Thread-613178][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:09:22,731 [DEBUG][       Thread-613178][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:09:22,731 [DEBUG][       Thread-613178][   transport.py][1871] : Compression: none
2025-07-01 18:09:22,731 [DEBUG][       Thread-613178][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:09:22,745 [DEBUG][       Thread-613178][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:09:22,745 [DEBUG][       Thread-613178][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:09:22,745 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:09:22,745 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:09:22,745 [DEBUG][       Thread-613178][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:09:22,788 [DEBUG][       Thread-613178][   transport.py][1871] : userauth is OK
2025-07-01 18:09:22,812 [ INFO][       Thread-613178][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:09:22,812 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:09:23,433 [DEBUG][       Thread-613178][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:09:23,433 [DEBUG][       Thread-613178][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:09:23,477 [DEBUG][       Thread-613178][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:09:23,477 [DEBUG][       Thread-613178][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:09:23,479 [DEBUG][       Thread-613178][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:09:23,492 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:09:23,492 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:09:23,493 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:09:23,494 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:09:23,497 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:09:23,498 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:09:23,498 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:09:23,498 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:09:23,498 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.672506 -999.00  +11.80  27.22     56   +3.40 1 2 1 1 1   282    0 7.71 -31.58 ----- 21.7 27.2 27.0 33.1 12.7 -18.2 12.5 -18.7 12.3 -18.0 12.6 -17.5
2025-07-01 18:09:23,498 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:09:23,498 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:09:23,498 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.672506
2025-07-01 18:09:23,498 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:09:23,498 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:09:23,499 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:09:23,499 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:09:23,499 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:09:23,499 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:08:53', tmtdew=9.85, humidity=51.1, cloud=0.0, wind=32.34, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:08:24.518', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:09:23,499 [DEBUG][       Thread-613178][   transport.py][1871] : EOF in transport thread
2025-07-01 18:09:23,572 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:09:23,583 [DEBUG][       Thread-613181][   transport.py][1871] : starting thread (client mode): 0x8154820
2025-07-01 18:09:23,583 [DEBUG][       Thread-613181][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:09:23,600 [DEBUG][       Thread-613181][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:09:23,600 [ INFO][       Thread-613181][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:09:23,607 [DEBUG][       Thread-613181][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:09:23,607 [DEBUG][       Thread-613181][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:09:23,607 [DEBUG][       Thread-613181][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:09:23,607 [DEBUG][       Thread-613181][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:09:23,607 [DEBUG][       Thread-613181][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:09:23,607 [DEBUG][       Thread-613181][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:09:23,607 [DEBUG][       Thread-613181][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:09:23,607 [DEBUG][       Thread-613181][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:09:23,607 [DEBUG][       Thread-613181][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:09:23,607 [DEBUG][       Thread-613181][   transport.py][1871] : client lang: <none>
2025-07-01 18:09:23,607 [DEBUG][       Thread-613181][   transport.py][1871] : server lang: <none>
2025-07-01 18:09:23,608 [DEBUG][       Thread-613181][   transport.py][1871] : kex follows: False
2025-07-01 18:09:23,608 [DEBUG][       Thread-613181][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:09:23,608 [DEBUG][       Thread-613181][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:09:23,608 [DEBUG][       Thread-613181][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:09:23,608 [DEBUG][       Thread-613181][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:09:23,608 [DEBUG][       Thread-613181][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:09:23,608 [DEBUG][       Thread-613181][   transport.py][1871] : Compression: none
2025-07-01 18:09:23,608 [DEBUG][       Thread-613181][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:09:23,676 [DEBUG][       Thread-613181][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:09:23,676 [DEBUG][       Thread-613181][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:09:23,676 [DEBUG][       Thread-613181][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:09:23,676 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:09:23,676 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:09:23,731 [DEBUG][       Thread-613181][   transport.py][1871] : userauth is OK
2025-07-01 18:09:23,731 [DEBUG][       Thread-613181][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:09:23,731 [DEBUG][       Thread-613181][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:09:23,731 [DEBUG][       Thread-613181][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:09:23,731 [DEBUG][       Thread-613181][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:09:23,745 [ INFO][       Thread-613181][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:09:23,745 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:09:23,745 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:09:24,784 [DEBUG][       Thread-613181][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:09:24,784 [DEBUG][       Thread-613181][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:09:24,832 [DEBUG][       Thread-613181][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:09:24,832 [DEBUG][       Thread-613181][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:09:24,841 [DEBUG][       Thread-613181][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:09:24,850 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:09:24,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-07-01 18:09:24,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-07-01 18:09:24,869 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:09:24,869 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:09:24,870 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:09:24,878 [DEBUG][       Thread-613181][   transport.py][1871] : EOF in transport thread
2025-07-01 18:09:25,254 [DEBUG][Thread-613183 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:09:34,278 [DEBUG][Thread-613184 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:09:34,880 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:09:34,881 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:09:34,881 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:09:34,884 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 18:09:35,361 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 9, 25), 9.8, 51.13, 0.0, 28.65, 12.1, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:09:35,361 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:09:25
2025-07-01 18:09:35,445 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:09:35,450 [DEBUG][       Thread-613185][   transport.py][1871] : starting thread (client mode): 0x81732b0
2025-07-01 18:09:35,454 [DEBUG][       Thread-613185][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:09:35,471 [DEBUG][       Thread-613185][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:09:35,471 [ INFO][       Thread-613185][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:09:35,474 [DEBUG][       Thread-613185][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:09:35,474 [DEBUG][       Thread-613185][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:09:35,474 [DEBUG][       Thread-613185][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:09:35,474 [DEBUG][       Thread-613185][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:09:35,475 [DEBUG][       Thread-613185][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:09:35,475 [DEBUG][       Thread-613185][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:09:35,475 [DEBUG][       Thread-613185][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:09:35,475 [DEBUG][       Thread-613185][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:09:35,475 [DEBUG][       Thread-613185][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:09:35,475 [DEBUG][       Thread-613185][   transport.py][1871] : client lang: <none>
2025-07-01 18:09:35,475 [DEBUG][       Thread-613185][   transport.py][1871] : server lang: <none>
2025-07-01 18:09:35,475 [DEBUG][       Thread-613185][   transport.py][1871] : kex follows: False
2025-07-01 18:09:35,475 [DEBUG][       Thread-613185][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:09:35,475 [DEBUG][       Thread-613185][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:09:35,475 [DEBUG][       Thread-613185][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:09:35,475 [DEBUG][       Thread-613185][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:09:35,475 [DEBUG][       Thread-613185][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:09:35,475 [DEBUG][       Thread-613185][   transport.py][1871] : Compression: none
2025-07-01 18:09:35,475 [DEBUG][       Thread-613185][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:09:35,491 [DEBUG][       Thread-613185][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:09:35,492 [DEBUG][       Thread-613185][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:09:35,492 [DEBUG][       Thread-613185][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:09:35,492 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:09:35,493 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:09:35,536 [DEBUG][       Thread-613185][   transport.py][1871] : userauth is OK
2025-07-01 18:09:35,584 [ INFO][       Thread-613185][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:09:35,585 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:09:36,263 [DEBUG][       Thread-613185][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:09:36,263 [DEBUG][       Thread-613185][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:09:36,305 [DEBUG][       Thread-613185][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:09:36,305 [DEBUG][       Thread-613185][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:09:36,308 [DEBUG][       Thread-613185][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:09:36,320 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:09:36,320 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:09:36,322 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:09:36,323 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:09:36,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:09:36,330 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:09:36,330 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:09:36,331 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:09:36,331 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.672853 -999.00  +11.80  23.72     56   +3.40 1 2 1 1 1   264    0 7.87 -35.13 ----- 22.8 23.7 18.6 33.0 12.7 -18.2 12.5 -18.4 12.3 -18.0 12.6 -17.2
2025-07-01 18:09:36,331 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:09:36,331 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:09:36,331 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.672853
2025-07-01 18:09:36,331 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:09:36,332 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:09:36,332 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:09:36,332 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:09:36,332 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:09:36,332 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:09:25', tmtdew=9.8, humidity=51.13, cloud=0.0, wind=28.65, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:08:54.499', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:09:36,333 [DEBUG][       Thread-613185][   transport.py][1871] : EOF in transport thread
2025-07-01 18:09:36,417 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:09:36,428 [DEBUG][       Thread-613188][   transport.py][1871] : starting thread (client mode): 0x81571c0
2025-07-01 18:09:36,428 [DEBUG][       Thread-613188][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:09:36,443 [DEBUG][       Thread-613188][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:09:36,443 [ INFO][       Thread-613188][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:09:36,450 [DEBUG][       Thread-613188][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:09:36,451 [DEBUG][       Thread-613188][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:09:36,451 [DEBUG][       Thread-613188][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:09:36,451 [DEBUG][       Thread-613188][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:09:36,451 [DEBUG][       Thread-613188][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:09:36,451 [DEBUG][       Thread-613188][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:09:36,451 [DEBUG][       Thread-613188][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:09:36,451 [DEBUG][       Thread-613188][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:09:36,451 [DEBUG][       Thread-613188][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:09:36,452 [DEBUG][       Thread-613188][   transport.py][1871] : client lang: <none>
2025-07-01 18:09:36,452 [DEBUG][       Thread-613188][   transport.py][1871] : server lang: <none>
2025-07-01 18:09:36,452 [DEBUG][       Thread-613188][   transport.py][1871] : kex follows: False
2025-07-01 18:09:36,452 [DEBUG][       Thread-613188][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:09:36,452 [DEBUG][       Thread-613188][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:09:36,452 [DEBUG][       Thread-613188][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:09:36,452 [DEBUG][       Thread-613188][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:09:36,452 [DEBUG][       Thread-613188][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:09:36,453 [DEBUG][       Thread-613188][   transport.py][1871] : Compression: none
2025-07-01 18:09:36,453 [DEBUG][       Thread-613188][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:09:36,508 [DEBUG][       Thread-613188][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:09:36,509 [DEBUG][       Thread-613188][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:09:36,510 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:09:36,510 [DEBUG][       Thread-613188][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:09:36,511 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:09:36,569 [DEBUG][       Thread-613188][   transport.py][1871] : userauth is OK
2025-07-01 18:09:36,569 [DEBUG][       Thread-613188][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:09:36,569 [DEBUG][       Thread-613188][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:09:36,569 [DEBUG][       Thread-613188][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:09:36,570 [DEBUG][       Thread-613188][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:09:36,588 [ INFO][       Thread-613188][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:09:36,589 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:09:36,589 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:09:37,646 [DEBUG][       Thread-613188][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:09:37,646 [DEBUG][       Thread-613188][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:09:37,698 [DEBUG][       Thread-613188][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:09:37,698 [DEBUG][       Thread-613188][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:09:37,708 [DEBUG][       Thread-613188][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:09:37,717 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:09:37,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-07-01 18:09:37,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-07-01 18:09:37,735 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:09:37,735 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:09:37,736 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:09:37,743 [DEBUG][       Thread-613188][   transport.py][1871] : EOF in transport thread
2025-07-01 18:09:42,457 [DEBUG][Thread-613190 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:09:43,300 [DEBUG][Thread-613191 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:09:47,746 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:09:47,747 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:09:47,747 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:09:47,750 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 18:09:48,222 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 9, 25), 9.8, 51.13, 0.0, 28.65, 12.1, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:09:48,222 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:09:25
2025-07-01 18:09:48,306 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:09:48,310 [DEBUG][       Thread-613192][   transport.py][1871] : starting thread (client mode): 0x8172470
2025-07-01 18:09:48,310 [DEBUG][       Thread-613192][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:09:48,330 [DEBUG][       Thread-613192][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:09:48,330 [ INFO][       Thread-613192][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:09:48,334 [DEBUG][       Thread-613192][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:09:48,334 [DEBUG][       Thread-613192][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:09:48,334 [DEBUG][       Thread-613192][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:09:48,334 [DEBUG][       Thread-613192][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:09:48,334 [DEBUG][       Thread-613192][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:09:48,334 [DEBUG][       Thread-613192][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:09:48,334 [DEBUG][       Thread-613192][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:09:48,334 [DEBUG][       Thread-613192][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:09:48,334 [DEBUG][       Thread-613192][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:09:48,334 [DEBUG][       Thread-613192][   transport.py][1871] : client lang: <none>
2025-07-01 18:09:48,334 [DEBUG][       Thread-613192][   transport.py][1871] : server lang: <none>
2025-07-01 18:09:48,334 [DEBUG][       Thread-613192][   transport.py][1871] : kex follows: False
2025-07-01 18:09:48,334 [DEBUG][       Thread-613192][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:09:48,334 [DEBUG][       Thread-613192][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:09:48,334 [DEBUG][       Thread-613192][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:09:48,334 [DEBUG][       Thread-613192][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:09:48,334 [DEBUG][       Thread-613192][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:09:48,334 [DEBUG][       Thread-613192][   transport.py][1871] : Compression: none
2025-07-01 18:09:48,334 [DEBUG][       Thread-613192][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:09:48,350 [DEBUG][       Thread-613192][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:09:48,351 [DEBUG][       Thread-613192][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:09:48,351 [DEBUG][       Thread-613192][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:09:48,351 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:09:48,352 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:09:48,353 [DEBUG][       Thread-613192][   transport.py][1871] : userauth is OK
2025-07-01 18:09:48,379 [ INFO][       Thread-613192][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:09:48,380 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:09:49,029 [DEBUG][       Thread-613192][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:09:49,029 [DEBUG][       Thread-613192][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:09:49,073 [DEBUG][       Thread-613192][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:09:49,073 [DEBUG][       Thread-613192][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:09:49,076 [DEBUG][       Thread-613192][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:09:49,089 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:09:49,089 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:09:49,091 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:09:49,093 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:09:49,099 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:09:49,101 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:09:49,101 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:09:49,102 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:09:49,102 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.672853 -999.00  +11.80  23.72     56   +3.40 1 2 1 1 1   264    0 7.87 -35.13 ----- 22.8 23.7 18.6 33.0 12.7 -18.2 12.5 -18.4 12.3 -18.0 12.6 -17.2
2025-07-01 18:09:49,102 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:09:49,102 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:09:49,102 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.672853
2025-07-01 18:09:49,103 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:09:49,103 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:09:49,103 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:09:49,103 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:09:49,103 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:09:49,103 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:09:25', tmtdew=9.8, humidity=51.13, cloud=0.0, wind=28.65, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:08:54.499', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:09:49,104 [DEBUG][       Thread-613192][   transport.py][1871] : EOF in transport thread
2025-07-01 18:09:49,188 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:09:49,198 [DEBUG][       Thread-613195][   transport.py][1871] : starting thread (client mode): 0x83c8880
2025-07-01 18:09:49,198 [DEBUG][       Thread-613195][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:09:49,214 [DEBUG][       Thread-613195][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:09:49,214 [ INFO][       Thread-613195][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:09:49,221 [DEBUG][       Thread-613195][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:09:49,221 [DEBUG][       Thread-613195][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:09:49,221 [DEBUG][       Thread-613195][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:09:49,222 [DEBUG][       Thread-613195][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:09:49,222 [DEBUG][       Thread-613195][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:09:49,222 [DEBUG][       Thread-613195][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:09:49,222 [DEBUG][       Thread-613195][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:09:49,222 [DEBUG][       Thread-613195][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:09:49,222 [DEBUG][       Thread-613195][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:09:49,222 [DEBUG][       Thread-613195][   transport.py][1871] : client lang: <none>
2025-07-01 18:09:49,222 [DEBUG][       Thread-613195][   transport.py][1871] : server lang: <none>
2025-07-01 18:09:49,222 [DEBUG][       Thread-613195][   transport.py][1871] : kex follows: False
2025-07-01 18:09:49,222 [DEBUG][       Thread-613195][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:09:49,222 [DEBUG][       Thread-613195][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:09:49,222 [DEBUG][       Thread-613195][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:09:49,222 [DEBUG][       Thread-613195][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:09:49,222 [DEBUG][       Thread-613195][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:09:49,222 [DEBUG][       Thread-613195][   transport.py][1871] : Compression: none
2025-07-01 18:09:49,222 [DEBUG][       Thread-613195][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:09:49,281 [DEBUG][       Thread-613195][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:09:49,281 [DEBUG][       Thread-613195][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:09:49,282 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:09:49,282 [DEBUG][       Thread-613195][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:09:49,283 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:09:49,340 [DEBUG][       Thread-613195][   transport.py][1871] : userauth is OK
2025-07-01 18:09:49,340 [DEBUG][       Thread-613195][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:09:49,340 [DEBUG][       Thread-613195][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:09:49,341 [DEBUG][       Thread-613195][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:09:49,341 [DEBUG][       Thread-613195][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:09:49,360 [ INFO][       Thread-613195][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:09:49,360 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:09:49,361 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:09:50,372 [DEBUG][       Thread-613195][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:09:50,373 [DEBUG][       Thread-613195][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:09:50,424 [DEBUG][       Thread-613195][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:09:50,424 [DEBUG][       Thread-613195][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:09:50,433 [DEBUG][       Thread-613195][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:09:50,442 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:09:50,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-07-01 18:09:50,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-07-01 18:09:50,464 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:09:50,464 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:09:50,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:09:50,474 [DEBUG][       Thread-613195][   transport.py][1871] : EOF in transport thread
2025-07-01 18:09:52,333 [DEBUG][Thread-613197 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:10:00,469 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:10:00,470 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:10:00,470 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:10:00,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-07-01 18:10:00,965 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 9, 57), 9.78, 51.21, 0.0, 28.94, 12.09, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:10:00,966 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:09:57
2025-07-01 18:10:01,052 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:10:01,056 [DEBUG][       Thread-613198][   transport.py][1871] : starting thread (client mode): 0x81e5d50
2025-07-01 18:10:01,056 [DEBUG][       Thread-613198][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:10:01,076 [DEBUG][       Thread-613198][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:10:01,076 [ INFO][       Thread-613198][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:10:01,079 [DEBUG][       Thread-613198][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:10:01,079 [DEBUG][       Thread-613198][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:10:01,079 [DEBUG][       Thread-613198][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:10:01,079 [DEBUG][       Thread-613198][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:10:01,079 [DEBUG][       Thread-613198][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:10:01,079 [DEBUG][       Thread-613198][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:10:01,079 [DEBUG][       Thread-613198][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:10:01,079 [DEBUG][       Thread-613198][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:10:01,079 [DEBUG][       Thread-613198][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:10:01,079 [DEBUG][       Thread-613198][   transport.py][1871] : client lang: <none>
2025-07-01 18:10:01,079 [DEBUG][       Thread-613198][   transport.py][1871] : server lang: <none>
2025-07-01 18:10:01,079 [DEBUG][       Thread-613198][   transport.py][1871] : kex follows: False
2025-07-01 18:10:01,079 [DEBUG][       Thread-613198][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:10:01,079 [DEBUG][       Thread-613198][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:10:01,079 [DEBUG][       Thread-613198][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:10:01,079 [DEBUG][       Thread-613198][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:10:01,079 [DEBUG][       Thread-613198][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:10:01,079 [DEBUG][       Thread-613198][   transport.py][1871] : Compression: none
2025-07-01 18:10:01,079 [DEBUG][       Thread-613198][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:10:01,086 [DEBUG][       Thread-613198][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:10:01,086 [DEBUG][       Thread-613198][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:10:01,086 [DEBUG][       Thread-613198][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:10:01,086 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:10:01,086 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:10:01,086 [DEBUG][       Thread-613198][   transport.py][1871] : userauth is OK
2025-07-01 18:10:01,111 [ INFO][       Thread-613198][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:10:01,111 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:10:01,351 [DEBUG][Thread-613200 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:10:01,728 [DEBUG][       Thread-613198][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:10:01,728 [DEBUG][       Thread-613198][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:10:01,772 [DEBUG][       Thread-613198][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:10:01,772 [DEBUG][       Thread-613198][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:10:01,775 [DEBUG][       Thread-613198][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:10:01,789 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:10:01,789 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:10:01,790 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:10:01,791 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:10:01,793 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:10:01,794 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:10:01,794 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:10:01,794 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:10:01,794 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.673548 -999.00  +11.80  20.82     56   +3.40 1 2 1 1 1   229    0 7.63 -41.29 ----- 24.8 20.8 351.0 33.9 12.6 -17.9 12.5 -18.4 12.2 -17.8 12.6 -17.1
2025-07-01 18:10:01,794 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:10:01,794 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:10:01,794 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.673548
2025-07-01 18:10:01,794 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:10:01,794 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:10:01,794 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:10:01,794 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:10:01,794 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:10:01,794 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:09:57', tmtdew=9.78, humidity=51.21, cloud=0.0, wind=28.94, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:09:54.547', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:10:01,794 [DEBUG][       Thread-613198][   transport.py][1871] : EOF in transport thread
2025-07-01 18:10:01,867 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:10:10,370 [DEBUG][Thread-613202 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:10:19,396 [DEBUG][Thread-613203 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:10:28,418 [DEBUG][Thread-613204 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:10:37,440 [DEBUG][Thread-613205 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:10:42,511 [DEBUG][Thread-613206 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:10:46,461 [DEBUG][Thread-613207 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:10:55,484 [DEBUG][Thread-613208 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:11:04,506 [DEBUG][Thread-613209 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:11:13,528 [DEBUG][Thread-613210 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:11:22,546 [DEBUG][Thread-613211 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:11:31,567 [DEBUG][Thread-613212 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:11:40,590 [DEBUG][Thread-613213 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:11:42,565 [DEBUG][Thread-613214 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:11:49,612 [DEBUG][Thread-613215 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:11:58,634 [DEBUG][Thread-613216 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:12:07,653 [DEBUG][Thread-613217 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:12:11,412 [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-07-01 18:12:16,675 [DEBUG][Thread-613218 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:12:21,422 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:12:21,423 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:12:21,423 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:12:21,426 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 18:12:21,942 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 12, 4), 9.71, 51.31, 0.0, 26.2, 11.99, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:12:21,942 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:12:04
2025-07-01 18:12:22,029 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:12:22,033 [DEBUG][       Thread-613219][   transport.py][1871] : starting thread (client mode): 0x83c8190
2025-07-01 18:12:22,033 [DEBUG][       Thread-613219][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:12:22,054 [DEBUG][       Thread-613219][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:12:22,054 [ INFO][       Thread-613219][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:12:22,057 [DEBUG][       Thread-613219][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:12:22,057 [DEBUG][       Thread-613219][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:12:22,057 [DEBUG][       Thread-613219][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:12:22,057 [DEBUG][       Thread-613219][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:12:22,057 [DEBUG][       Thread-613219][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:12:22,057 [DEBUG][       Thread-613219][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:12:22,057 [DEBUG][       Thread-613219][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:12:22,057 [DEBUG][       Thread-613219][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:12:22,057 [DEBUG][       Thread-613219][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:12:22,057 [DEBUG][       Thread-613219][   transport.py][1871] : client lang: <none>
2025-07-01 18:12:22,057 [DEBUG][       Thread-613219][   transport.py][1871] : server lang: <none>
2025-07-01 18:12:22,057 [DEBUG][       Thread-613219][   transport.py][1871] : kex follows: False
2025-07-01 18:12:22,057 [DEBUG][       Thread-613219][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:12:22,057 [DEBUG][       Thread-613219][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:12:22,057 [DEBUG][       Thread-613219][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:12:22,057 [DEBUG][       Thread-613219][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:12:22,057 [DEBUG][       Thread-613219][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:12:22,057 [DEBUG][       Thread-613219][   transport.py][1871] : Compression: none
2025-07-01 18:12:22,057 [DEBUG][       Thread-613219][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:12:22,072 [DEBUG][       Thread-613219][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:12:22,073 [DEBUG][       Thread-613219][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:12:22,073 [DEBUG][       Thread-613219][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:12:22,073 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:12:22,073 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:12:22,073 [DEBUG][       Thread-613219][   transport.py][1871] : userauth is OK
2025-07-01 18:12:22,097 [ INFO][       Thread-613219][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:12:22,097 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:12:22,744 [DEBUG][       Thread-613219][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:12:22,744 [DEBUG][       Thread-613219][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:12:22,785 [DEBUG][       Thread-613219][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:12:22,785 [DEBUG][       Thread-613219][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:12:22,788 [DEBUG][       Thread-613219][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:12:22,802 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:12:22,802 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:12:22,804 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:12:22,806 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:12:22,811 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:12:22,813 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:12:22,813 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:12:22,814 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:12:22,814 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.674936 -999.00  +11.80  22.55     56   +3.40 1 2 1 1 1   169    0 7.55 -38.93 ----- 20.8 22.6 6.5 38.5 12.6 -17.6 12.4 -17.8 12.2 -17.2 12.5 -16.7
2025-07-01 18:12:22,814 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:12:22,814 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:12:22,814 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.674936
2025-07-01 18:12:22,815 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:12:22,815 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:12:22,815 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:12:22,815 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:12:22,815 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:12:22,816 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:12:04', tmtdew=9.71, humidity=51.31, cloud=0.0, wind=26.2, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:11:54.470', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:12:22,817 [DEBUG][       Thread-613219][   transport.py][1871] : EOF in transport thread
2025-07-01 18:12:22,899 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:12:22,912 [DEBUG][       Thread-613222][   transport.py][1871] : starting thread (client mode): 0x81721a0
2025-07-01 18:12:22,912 [DEBUG][       Thread-613222][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:12:22,927 [DEBUG][       Thread-613222][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:12:22,927 [ INFO][       Thread-613222][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:12:22,935 [DEBUG][       Thread-613222][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:12:22,935 [DEBUG][       Thread-613222][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:12:22,935 [DEBUG][       Thread-613222][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:12:22,935 [DEBUG][       Thread-613222][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:12:22,935 [DEBUG][       Thread-613222][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:12:22,936 [DEBUG][       Thread-613222][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:12:22,936 [DEBUG][       Thread-613222][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:12:22,936 [DEBUG][       Thread-613222][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:12:22,936 [DEBUG][       Thread-613222][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:12:22,936 [DEBUG][       Thread-613222][   transport.py][1871] : client lang: <none>
2025-07-01 18:12:22,936 [DEBUG][       Thread-613222][   transport.py][1871] : server lang: <none>
2025-07-01 18:12:22,936 [DEBUG][       Thread-613222][   transport.py][1871] : kex follows: False
2025-07-01 18:12:22,936 [DEBUG][       Thread-613222][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:12:22,936 [DEBUG][       Thread-613222][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:12:22,936 [DEBUG][       Thread-613222][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:12:22,936 [DEBUG][       Thread-613222][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:12:22,936 [DEBUG][       Thread-613222][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:12:22,936 [DEBUG][       Thread-613222][   transport.py][1871] : Compression: none
2025-07-01 18:12:22,936 [DEBUG][       Thread-613222][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:12:22,992 [DEBUG][       Thread-613222][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:12:22,992 [DEBUG][       Thread-613222][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:12:22,993 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:12:22,994 [DEBUG][       Thread-613222][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:12:22,994 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:12:23,052 [DEBUG][       Thread-613222][   transport.py][1871] : userauth is OK
2025-07-01 18:12:23,052 [DEBUG][       Thread-613222][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:12:23,053 [DEBUG][       Thread-613222][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:12:23,053 [DEBUG][       Thread-613222][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:12:23,053 [DEBUG][       Thread-613222][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:12:23,073 [ INFO][       Thread-613222][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:12:23,074 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:12:23,074 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:12:24,104 [DEBUG][       Thread-613222][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:12:24,104 [DEBUG][       Thread-613222][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:12:24,152 [DEBUG][       Thread-613222][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:12:24,153 [DEBUG][       Thread-613222][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:12:24,162 [DEBUG][       Thread-613222][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:12:24,171 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:12:24,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-07-01 18:12:24,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-07-01 18:12:24,190 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:12:24,190 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:12:24,191 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:12:24,204 [DEBUG][       Thread-613222][   transport.py][1871] : EOF in transport thread
2025-07-01 18:12:25,699 [DEBUG][Thread-613224 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:12:34,201 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:12:34,201 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:12:34,201 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:12:34,204 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 18:12:34,719 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 12, 4), 9.71, 51.31, 0.0, 26.2, 11.99, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:12:34,719 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:12:04
2025-07-01 18:12:34,732 [DEBUG][Thread-613225 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:12:34,805 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:12:34,809 [DEBUG][       Thread-613226][   transport.py][1871] : starting thread (client mode): 0x8155ae0
2025-07-01 18:12:34,810 [DEBUG][       Thread-613226][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:12:34,829 [DEBUG][       Thread-613226][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:12:34,829 [ INFO][       Thread-613226][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:12:34,832 [DEBUG][       Thread-613226][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:12:34,832 [DEBUG][       Thread-613226][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:12:34,832 [DEBUG][       Thread-613226][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:12:34,832 [DEBUG][       Thread-613226][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:12:34,832 [DEBUG][       Thread-613226][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:12:34,832 [DEBUG][       Thread-613226][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:12:34,832 [DEBUG][       Thread-613226][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:12:34,833 [DEBUG][       Thread-613226][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:12:34,833 [DEBUG][       Thread-613226][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:12:34,833 [DEBUG][       Thread-613226][   transport.py][1871] : client lang: <none>
2025-07-01 18:12:34,833 [DEBUG][       Thread-613226][   transport.py][1871] : server lang: <none>
2025-07-01 18:12:34,833 [DEBUG][       Thread-613226][   transport.py][1871] : kex follows: False
2025-07-01 18:12:34,833 [DEBUG][       Thread-613226][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:12:34,833 [DEBUG][       Thread-613226][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:12:34,833 [DEBUG][       Thread-613226][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:12:34,833 [DEBUG][       Thread-613226][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:12:34,833 [DEBUG][       Thread-613226][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:12:34,833 [DEBUG][       Thread-613226][   transport.py][1871] : Compression: none
2025-07-01 18:12:34,833 [DEBUG][       Thread-613226][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:12:34,848 [DEBUG][       Thread-613226][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:12:34,849 [DEBUG][       Thread-613226][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:12:34,849 [DEBUG][       Thread-613226][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:12:34,850 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:12:34,850 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:12:34,851 [DEBUG][       Thread-613226][   transport.py][1871] : userauth is OK
2025-07-01 18:12:34,876 [ INFO][       Thread-613226][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:12:34,877 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:12:35,497 [DEBUG][       Thread-613226][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:12:35,498 [DEBUG][       Thread-613226][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:12:35,541 [DEBUG][       Thread-613226][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:12:35,541 [DEBUG][       Thread-613226][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:12:35,545 [DEBUG][       Thread-613226][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:12:35,557 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:12:35,558 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:12:35,559 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:12:35,561 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:12:35,567 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:12:35,569 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:12:35,569 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:12:35,570 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:12:35,570 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.674936 -999.00  +11.80  22.55     56   +3.40 1 2 1 1 1   169    0 7.55 -38.93 ----- 20.8 22.6 6.5 38.5 12.6 -17.6 12.4 -17.8 12.2 -17.2 12.5 -16.7
2025-07-01 18:12:35,570 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:12:35,570 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:12:35,570 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.674936
2025-07-01 18:12:35,571 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:12:35,571 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:12:35,571 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:12:35,571 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:12:35,572 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:12:35,572 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:12:04', tmtdew=9.71, humidity=51.31, cloud=0.0, wind=26.2, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:11:54.470', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:12:35,573 [DEBUG][       Thread-613226][   transport.py][1871] : EOF in transport thread
2025-07-01 18:12:35,655 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:12:35,668 [DEBUG][       Thread-613229][   transport.py][1871] : starting thread (client mode): 0x827d9f0
2025-07-01 18:12:35,668 [DEBUG][       Thread-613229][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:12:35,684 [DEBUG][       Thread-613229][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:12:35,684 [ INFO][       Thread-613229][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:12:35,692 [DEBUG][       Thread-613229][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:12:35,692 [DEBUG][       Thread-613229][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:12:35,692 [DEBUG][       Thread-613229][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:12:35,692 [DEBUG][       Thread-613229][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:12:35,692 [DEBUG][       Thread-613229][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:12:35,692 [DEBUG][       Thread-613229][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:12:35,692 [DEBUG][       Thread-613229][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:12:35,692 [DEBUG][       Thread-613229][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:12:35,692 [DEBUG][       Thread-613229][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:12:35,692 [DEBUG][       Thread-613229][   transport.py][1871] : client lang: <none>
2025-07-01 18:12:35,692 [DEBUG][       Thread-613229][   transport.py][1871] : server lang: <none>
2025-07-01 18:12:35,692 [DEBUG][       Thread-613229][   transport.py][1871] : kex follows: False
2025-07-01 18:12:35,692 [DEBUG][       Thread-613229][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:12:35,692 [DEBUG][       Thread-613229][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:12:35,692 [DEBUG][       Thread-613229][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:12:35,692 [DEBUG][       Thread-613229][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:12:35,692 [DEBUG][       Thread-613229][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:12:35,692 [DEBUG][       Thread-613229][   transport.py][1871] : Compression: none
2025-07-01 18:12:35,692 [DEBUG][       Thread-613229][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:12:35,751 [DEBUG][       Thread-613229][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:12:35,752 [DEBUG][       Thread-613229][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:12:35,753 [DEBUG][       Thread-613229][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:12:35,753 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:12:35,754 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:12:35,807 [DEBUG][       Thread-613229][   transport.py][1871] : userauth is OK
2025-07-01 18:12:35,808 [DEBUG][       Thread-613229][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:12:35,808 [DEBUG][       Thread-613229][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:12:35,808 [DEBUG][       Thread-613229][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:12:35,808 [DEBUG][       Thread-613229][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:12:35,826 [ INFO][       Thread-613229][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:12:35,827 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:12:35,827 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:12:36,868 [DEBUG][       Thread-613229][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:12:36,868 [DEBUG][       Thread-613229][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:12:36,919 [DEBUG][       Thread-613229][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:12:36,919 [DEBUG][       Thread-613229][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:12:36,928 [DEBUG][       Thread-613229][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:12:36,936 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:12:36,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')
2025-07-01 18:12:36,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-07-01 18:12:36,952 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:12:36,952 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:12:36,952 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:12:36,960 [DEBUG][       Thread-613229][   transport.py][1871] : EOF in transport thread
2025-07-01 18:12:42,615 [DEBUG][Thread-613231 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:12:43,748 [DEBUG][Thread-613232 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:12:46,960 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:12:46,960 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:12:46,960 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:12:46,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-07-01 18:12:47,463 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 12, 36), 9.67, 51.68, 0.0, 26.36, 12.01, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:12:47,463 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:12:36
2025-07-01 18:12:47,551 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:12:47,555 [DEBUG][       Thread-613233][   transport.py][1871] : starting thread (client mode): 0x81e64d0
2025-07-01 18:12:47,555 [DEBUG][       Thread-613233][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:12:47,576 [DEBUG][       Thread-613233][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:12:47,576 [ INFO][       Thread-613233][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:12:47,580 [DEBUG][       Thread-613233][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:12:47,580 [DEBUG][       Thread-613233][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:12:47,580 [DEBUG][       Thread-613233][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:12:47,580 [DEBUG][       Thread-613233][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:12:47,580 [DEBUG][       Thread-613233][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:12:47,580 [DEBUG][       Thread-613233][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:12:47,580 [DEBUG][       Thread-613233][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:12:47,580 [DEBUG][       Thread-613233][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:12:47,580 [DEBUG][       Thread-613233][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:12:47,580 [DEBUG][       Thread-613233][   transport.py][1871] : client lang: <none>
2025-07-01 18:12:47,580 [DEBUG][       Thread-613233][   transport.py][1871] : server lang: <none>
2025-07-01 18:12:47,580 [DEBUG][       Thread-613233][   transport.py][1871] : kex follows: False
2025-07-01 18:12:47,580 [DEBUG][       Thread-613233][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:12:47,580 [DEBUG][       Thread-613233][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:12:47,580 [DEBUG][       Thread-613233][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:12:47,580 [DEBUG][       Thread-613233][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:12:47,581 [DEBUG][       Thread-613233][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:12:47,581 [DEBUG][       Thread-613233][   transport.py][1871] : Compression: none
2025-07-01 18:12:47,581 [DEBUG][       Thread-613233][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:12:47,597 [DEBUG][       Thread-613233][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:12:47,598 [DEBUG][       Thread-613233][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:12:47,598 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:12:47,598 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:12:47,599 [DEBUG][       Thread-613233][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:12:47,599 [DEBUG][       Thread-613233][   transport.py][1871] : userauth is OK
2025-07-01 18:12:47,613 [ INFO][       Thread-613233][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:12:47,613 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:12:48,261 [DEBUG][       Thread-613233][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:12:48,261 [DEBUG][       Thread-613233][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:12:48,305 [DEBUG][       Thread-613233][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:12:48,305 [DEBUG][       Thread-613233][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:12:48,308 [DEBUG][       Thread-613233][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:12:48,321 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:12:48,321 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:12:48,323 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:12:48,325 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:12:48,330 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:12:48,332 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:12:48,332 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:12:48,333 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:12:48,333 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.675284 -999.00  +11.70  23.46     56   +3.40 1 2 1 1 1   157    0 7.60 -39.55 ----- 21.0 23.5 28.0 31.8 12.6 -17.6 12.4 -17.9 12.2 -17.0 12.4 -16.6
2025-07-01 18:12:48,333 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:12:48,333 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:12:48,333 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.675284
2025-07-01 18:12:48,334 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:12:48,334 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:12:48,334 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:12:48,335 [DEBUG][       Thread-613233][   transport.py][1871] : EOF in transport thread
2025-07-01 18:12:48,335 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:12:48,335 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:12:48,336 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:12:36', tmtdew=9.67, humidity=51.68, cloud=0.0, wind=26.36, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:12:24.538', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:12:48,421 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:12:48,431 [DEBUG][       Thread-613236][   transport.py][1871] : starting thread (client mode): 0x83c8700
2025-07-01 18:12:48,431 [DEBUG][       Thread-613236][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:12:48,446 [DEBUG][       Thread-613236][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:12:48,446 [ INFO][       Thread-613236][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:12:48,454 [DEBUG][       Thread-613236][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:12:48,454 [DEBUG][       Thread-613236][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:12:48,454 [DEBUG][       Thread-613236][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:12:48,454 [DEBUG][       Thread-613236][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:12:48,454 [DEBUG][       Thread-613236][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:12:48,454 [DEBUG][       Thread-613236][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:12:48,454 [DEBUG][       Thread-613236][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:12:48,454 [DEBUG][       Thread-613236][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:12:48,454 [DEBUG][       Thread-613236][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:12:48,454 [DEBUG][       Thread-613236][   transport.py][1871] : client lang: <none>
2025-07-01 18:12:48,454 [DEBUG][       Thread-613236][   transport.py][1871] : server lang: <none>
2025-07-01 18:12:48,454 [DEBUG][       Thread-613236][   transport.py][1871] : kex follows: False
2025-07-01 18:12:48,454 [DEBUG][       Thread-613236][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:12:48,454 [DEBUG][       Thread-613236][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:12:48,454 [DEBUG][       Thread-613236][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:12:48,454 [DEBUG][       Thread-613236][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:12:48,455 [DEBUG][       Thread-613236][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:12:48,455 [DEBUG][       Thread-613236][   transport.py][1871] : Compression: none
2025-07-01 18:12:48,455 [DEBUG][       Thread-613236][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:12:48,512 [DEBUG][       Thread-613236][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:12:48,513 [DEBUG][       Thread-613236][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:12:48,513 [DEBUG][       Thread-613236][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:12:48,513 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:12:48,514 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:12:48,569 [DEBUG][       Thread-613236][   transport.py][1871] : userauth is OK
2025-07-01 18:12:48,570 [DEBUG][       Thread-613236][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:12:48,570 [DEBUG][       Thread-613236][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:12:48,570 [DEBUG][       Thread-613236][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:12:48,570 [DEBUG][       Thread-613236][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:12:48,589 [ INFO][       Thread-613236][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:12:48,589 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:12:48,590 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:12:49,628 [DEBUG][       Thread-613236][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:12:49,628 [DEBUG][       Thread-613236][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:12:49,677 [DEBUG][       Thread-613236][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:12:49,677 [DEBUG][       Thread-613236][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:12:49,686 [DEBUG][       Thread-613236][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:12:49,695 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:12:49,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-07-01 18:12:49,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-07-01 18:12:49,716 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:12:49,717 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:12:49,718 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:12:49,726 [DEBUG][       Thread-613236][   transport.py][1871] : EOF in transport thread
2025-07-01 18:12:52,767 [DEBUG][Thread-613238 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:12:59,728 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:12:59,728 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:12:59,728 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:12:59,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-07-01 18:13:00,235 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 12, 36), 9.67, 51.68, 0.0, 26.36, 12.01, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:13:00,235 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:12:36
2025-07-01 18:13:00,320 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:13:00,324 [DEBUG][       Thread-613239][   transport.py][1871] : starting thread (client mode): 0x8154280
2025-07-01 18:13:00,324 [DEBUG][       Thread-613239][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:13:00,339 [DEBUG][       Thread-613239][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:13:00,339 [ INFO][       Thread-613239][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:13:00,342 [DEBUG][       Thread-613239][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:13:00,342 [DEBUG][       Thread-613239][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:13:00,342 [DEBUG][       Thread-613239][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:13:00,342 [DEBUG][       Thread-613239][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:13:00,343 [DEBUG][       Thread-613239][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:13:00,343 [DEBUG][       Thread-613239][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:13:00,343 [DEBUG][       Thread-613239][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:13:00,343 [DEBUG][       Thread-613239][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:13:00,343 [DEBUG][       Thread-613239][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:13:00,343 [DEBUG][       Thread-613239][   transport.py][1871] : client lang: <none>
2025-07-01 18:13:00,343 [DEBUG][       Thread-613239][   transport.py][1871] : server lang: <none>
2025-07-01 18:13:00,343 [DEBUG][       Thread-613239][   transport.py][1871] : kex follows: False
2025-07-01 18:13:00,343 [DEBUG][       Thread-613239][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:13:00,343 [DEBUG][       Thread-613239][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:13:00,343 [DEBUG][       Thread-613239][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:13:00,343 [DEBUG][       Thread-613239][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:13:00,343 [DEBUG][       Thread-613239][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:13:00,343 [DEBUG][       Thread-613239][   transport.py][1871] : Compression: none
2025-07-01 18:13:00,343 [DEBUG][       Thread-613239][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:13:00,359 [DEBUG][       Thread-613239][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:13:00,360 [DEBUG][       Thread-613239][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:13:00,361 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:13:00,361 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:13:00,361 [DEBUG][       Thread-613239][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:13:00,362 [DEBUG][       Thread-613239][   transport.py][1871] : userauth is OK
2025-07-01 18:13:00,375 [ INFO][       Thread-613239][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:13:00,376 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:13:00,982 [DEBUG][       Thread-613239][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:13:00,982 [DEBUG][       Thread-613239][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:13:01,025 [DEBUG][       Thread-613239][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:13:01,025 [DEBUG][       Thread-613239][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:13:01,028 [DEBUG][       Thread-613239][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:13:01,043 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:13:01,043 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:13:01,045 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:13:01,047 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:13:01,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:13:01,054 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:13:01,054 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:13:01,055 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:13:01,055 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.675284 -999.00  +11.70  23.46     56   +3.40 1 2 1 1 1   157    0 7.60 -39.55 ----- 21.0 23.5 28.0 31.8 12.6 -17.6 12.4 -17.9 12.2 -17.0 12.4 -16.6
2025-07-01 18:13:01,055 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:13:01,055 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:13:01,055 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.675284
2025-07-01 18:13:01,055 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:13:01,056 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:13:01,056 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:13:01,056 [DEBUG][       Thread-613239][   transport.py][1871] : EOF in transport thread
2025-07-01 18:13:01,057 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:13:01,057 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:13:01,057 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:12:36', tmtdew=9.67, humidity=51.68, cloud=0.0, wind=26.36, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:12:24.538', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:13:01,140 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:13:01,151 [DEBUG][       Thread-613242][   transport.py][1871] : starting thread (client mode): 0x8393b80
2025-07-01 18:13:01,151 [DEBUG][       Thread-613242][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:13:01,166 [DEBUG][       Thread-613242][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:13:01,166 [ INFO][       Thread-613242][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:13:01,174 [DEBUG][       Thread-613242][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:13:01,174 [DEBUG][       Thread-613242][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:13:01,174 [DEBUG][       Thread-613242][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:13:01,174 [DEBUG][       Thread-613242][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:13:01,174 [DEBUG][       Thread-613242][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:13:01,174 [DEBUG][       Thread-613242][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:13:01,174 [DEBUG][       Thread-613242][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:13:01,174 [DEBUG][       Thread-613242][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:13:01,174 [DEBUG][       Thread-613242][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:13:01,174 [DEBUG][       Thread-613242][   transport.py][1871] : client lang: <none>
2025-07-01 18:13:01,174 [DEBUG][       Thread-613242][   transport.py][1871] : server lang: <none>
2025-07-01 18:13:01,175 [DEBUG][       Thread-613242][   transport.py][1871] : kex follows: False
2025-07-01 18:13:01,175 [DEBUG][       Thread-613242][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:13:01,175 [DEBUG][       Thread-613242][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:13:01,175 [DEBUG][       Thread-613242][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:13:01,175 [DEBUG][       Thread-613242][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:13:01,175 [DEBUG][       Thread-613242][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:13:01,175 [DEBUG][       Thread-613242][   transport.py][1871] : Compression: none
2025-07-01 18:13:01,175 [DEBUG][       Thread-613242][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:13:01,231 [DEBUG][       Thread-613242][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:13:01,232 [DEBUG][       Thread-613242][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:13:01,233 [DEBUG][       Thread-613242][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:13:01,233 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:13:01,234 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:13:01,288 [DEBUG][       Thread-613242][   transport.py][1871] : userauth is OK
2025-07-01 18:13:01,288 [DEBUG][       Thread-613242][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:13:01,288 [DEBUG][       Thread-613242][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:13:01,288 [DEBUG][       Thread-613242][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:13:01,288 [DEBUG][       Thread-613242][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:13:01,307 [ INFO][       Thread-613242][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:13:01,308 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:13:01,308 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:13:01,798 [DEBUG][Thread-613244 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:13:02,366 [DEBUG][       Thread-613242][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:13:02,366 [DEBUG][       Thread-613242][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:13:02,416 [DEBUG][       Thread-613242][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:13:02,416 [DEBUG][       Thread-613242][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:13:02,430 [DEBUG][       Thread-613242][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:13:02,440 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:13:02,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-07-01 18:13:02,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-07-01 18:13:02,461 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:13:02,461 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:13:02,461 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:13:02,473 [DEBUG][       Thread-613242][   transport.py][1871] : EOF in transport thread
2025-07-01 18:13:10,819 [DEBUG][Thread-613245 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:13:12,467 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:13:12,467 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:13:12,467 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:13:12,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-07-01 18:13:12,978 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 13, 8), 9.66, 51.72, 0.0, 27.88, 12.02, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:13:12,978 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:13:08
2025-07-01 18:13:13,064 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:13:13,068 [DEBUG][       Thread-613246][   transport.py][1871] : starting thread (client mode): 0x81e72b0
2025-07-01 18:13:13,068 [DEBUG][       Thread-613246][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:13:13,089 [DEBUG][       Thread-613246][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:13:13,089 [ INFO][       Thread-613246][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:13:13,092 [DEBUG][       Thread-613246][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:13:13,092 [DEBUG][       Thread-613246][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:13:13,092 [DEBUG][       Thread-613246][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:13:13,092 [DEBUG][       Thread-613246][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:13:13,092 [DEBUG][       Thread-613246][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:13:13,092 [DEBUG][       Thread-613246][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:13:13,092 [DEBUG][       Thread-613246][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:13:13,092 [DEBUG][       Thread-613246][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:13:13,092 [DEBUG][       Thread-613246][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:13:13,092 [DEBUG][       Thread-613246][   transport.py][1871] : client lang: <none>
2025-07-01 18:13:13,092 [DEBUG][       Thread-613246][   transport.py][1871] : server lang: <none>
2025-07-01 18:13:13,092 [DEBUG][       Thread-613246][   transport.py][1871] : kex follows: False
2025-07-01 18:13:13,092 [DEBUG][       Thread-613246][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:13:13,093 [DEBUG][       Thread-613246][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:13:13,093 [DEBUG][       Thread-613246][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:13:13,093 [DEBUG][       Thread-613246][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:13:13,093 [DEBUG][       Thread-613246][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:13:13,093 [DEBUG][       Thread-613246][   transport.py][1871] : Compression: none
2025-07-01 18:13:13,093 [DEBUG][       Thread-613246][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:13:13,110 [DEBUG][       Thread-613246][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:13:13,111 [DEBUG][       Thread-613246][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:13:13,111 [DEBUG][       Thread-613246][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:13:13,111 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:13:13,112 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:13:13,113 [DEBUG][       Thread-613246][   transport.py][1871] : userauth is OK
2025-07-01 18:13:13,126 [ INFO][       Thread-613246][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:13:13,126 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:13:13,758 [DEBUG][       Thread-613246][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:13:13,759 [DEBUG][       Thread-613246][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:13:13,801 [DEBUG][       Thread-613246][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:13:13,801 [DEBUG][       Thread-613246][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:13:13,804 [DEBUG][       Thread-613246][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:13:13,818 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:13:13,818 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:13:13,820 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:13:13,823 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:13:13,829 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:13:13,831 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:13:13,831 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:13:13,832 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:13:13,832 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.675284 -999.00  +11.70  23.46     56   +3.40 1 2 1 1 1   157    0 7.60 -39.55 ----- 21.0 23.5 28.0 31.8 12.6 -17.6 12.4 -17.9 12.2 -17.0 12.4 -16.6
2025-07-01 18:13:13,832 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:13:13,833 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:13:13,833 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.675284
2025-07-01 18:13:13,833 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:13:13,834 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:13:13,834 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:13:13,834 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:13:13,834 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:13:13,835 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:13:08', tmtdew=9.66, humidity=51.72, cloud=0.0, wind=27.88, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:12:24.538', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:13:13,835 [DEBUG][       Thread-613246][   transport.py][1871] : EOF in transport thread
2025-07-01 18:13:13,922 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:13:13,931 [DEBUG][       Thread-613249][   transport.py][1871] : starting thread (client mode): 0x8170ca0
2025-07-01 18:13:13,931 [DEBUG][       Thread-613249][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:13:13,946 [DEBUG][       Thread-613249][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:13:13,946 [ INFO][       Thread-613249][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:13:13,954 [DEBUG][       Thread-613249][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:13:13,954 [DEBUG][       Thread-613249][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:13:13,954 [DEBUG][       Thread-613249][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:13:13,954 [DEBUG][       Thread-613249][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:13:13,954 [DEBUG][       Thread-613249][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:13:13,954 [DEBUG][       Thread-613249][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:13:13,954 [DEBUG][       Thread-613249][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:13:13,955 [DEBUG][       Thread-613249][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:13:13,955 [DEBUG][       Thread-613249][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:13:13,955 [DEBUG][       Thread-613249][   transport.py][1871] : client lang: <none>
2025-07-01 18:13:13,955 [DEBUG][       Thread-613249][   transport.py][1871] : server lang: <none>
2025-07-01 18:13:13,955 [DEBUG][       Thread-613249][   transport.py][1871] : kex follows: False
2025-07-01 18:13:13,955 [DEBUG][       Thread-613249][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:13:13,955 [DEBUG][       Thread-613249][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:13:13,955 [DEBUG][       Thread-613249][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:13:13,955 [DEBUG][       Thread-613249][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:13:13,955 [DEBUG][       Thread-613249][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:13:13,955 [DEBUG][       Thread-613249][   transport.py][1871] : Compression: none
2025-07-01 18:13:13,955 [DEBUG][       Thread-613249][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:13:14,011 [DEBUG][       Thread-613249][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:13:14,012 [DEBUG][       Thread-613249][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:13:14,012 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:13:14,013 [DEBUG][       Thread-613249][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:13:14,014 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:13:14,071 [DEBUG][       Thread-613249][   transport.py][1871] : userauth is OK
2025-07-01 18:13:14,071 [DEBUG][       Thread-613249][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:13:14,072 [DEBUG][       Thread-613249][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:13:14,072 [DEBUG][       Thread-613249][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:13:14,072 [DEBUG][       Thread-613249][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:13:14,091 [ INFO][       Thread-613249][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:13:14,092 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:13:14,092 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:13:15,115 [DEBUG][       Thread-613249][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:13:15,115 [DEBUG][       Thread-613249][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:13:15,164 [DEBUG][       Thread-613249][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:13:15,164 [DEBUG][       Thread-613249][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:13:15,173 [DEBUG][       Thread-613249][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:13:15,182 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:13:15,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-07-01 18:13:15,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-07-01 18:13:15,201 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:13:15,201 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:13:15,202 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:13:15,210 [DEBUG][       Thread-613249][   transport.py][1871] : EOF in transport thread
2025-07-01 18:13:19,843 [DEBUG][Thread-613251 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:13:25,212 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:13:25,212 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:13:25,212 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:13:25,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-07-01 18:13:25,723 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 13, 8), 9.66, 51.72, 0.0, 27.88, 12.02, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:13:25,723 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:13:08
2025-07-01 18:13:25,814 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:13:25,818 [DEBUG][       Thread-613252][   transport.py][1871] : starting thread (client mode): 0x81cbf10
2025-07-01 18:13:25,818 [DEBUG][       Thread-613252][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:13:25,839 [DEBUG][       Thread-613252][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:13:25,839 [ INFO][       Thread-613252][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:13:25,842 [DEBUG][       Thread-613252][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:13:25,842 [DEBUG][       Thread-613252][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:13:25,842 [DEBUG][       Thread-613252][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:13:25,842 [DEBUG][       Thread-613252][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:13:25,842 [DEBUG][       Thread-613252][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:13:25,842 [DEBUG][       Thread-613252][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:13:25,842 [DEBUG][       Thread-613252][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:13:25,842 [DEBUG][       Thread-613252][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:13:25,842 [DEBUG][       Thread-613252][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:13:25,842 [DEBUG][       Thread-613252][   transport.py][1871] : client lang: <none>
2025-07-01 18:13:25,842 [DEBUG][       Thread-613252][   transport.py][1871] : server lang: <none>
2025-07-01 18:13:25,842 [DEBUG][       Thread-613252][   transport.py][1871] : kex follows: False
2025-07-01 18:13:25,842 [DEBUG][       Thread-613252][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:13:25,842 [DEBUG][       Thread-613252][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:13:25,842 [DEBUG][       Thread-613252][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:13:25,842 [DEBUG][       Thread-613252][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:13:25,842 [DEBUG][       Thread-613252][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:13:25,842 [DEBUG][       Thread-613252][   transport.py][1871] : Compression: none
2025-07-01 18:13:25,842 [DEBUG][       Thread-613252][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:13:25,861 [DEBUG][       Thread-613252][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:13:25,861 [DEBUG][       Thread-613252][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:13:25,862 [DEBUG][       Thread-613252][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:13:25,862 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:13:25,862 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:13:25,862 [DEBUG][       Thread-613252][   transport.py][1871] : userauth is OK
2025-07-01 18:13:25,886 [ INFO][       Thread-613252][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:13:25,887 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:13:26,531 [DEBUG][       Thread-613252][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:13:26,531 [DEBUG][       Thread-613252][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:13:26,572 [DEBUG][       Thread-613252][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:13:26,572 [DEBUG][       Thread-613252][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:13:26,575 [DEBUG][       Thread-613252][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:13:26,588 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:13:26,588 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:13:26,589 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:13:26,590 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:13:26,592 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:13:26,593 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:13:26,593 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:13:26,593 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:13:26,593 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.675631 -999.00  +11.80  23.34     56   +3.40 1 2 1 1 1   144    0 7.66 -38.13 ----- 16.3 23.3 17.5 39.9 12.6 -17.3 12.4 -17.6 12.2 -16.9 12.5 -16.3
2025-07-01 18:13:26,593 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:13:26,593 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:13:26,593 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.675631
2025-07-01 18:13:26,594 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:13:26,594 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:13:26,594 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:13:26,594 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:13:26,594 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:13:26,594 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:13:08', tmtdew=9.66, humidity=51.72, cloud=0.0, wind=27.88, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:12:54.518', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:13:26,594 [DEBUG][       Thread-613252][   transport.py][1871] : EOF in transport thread
2025-07-01 18:13:26,668 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:13:26,680 [DEBUG][       Thread-613255][   transport.py][1871] : starting thread (client mode): 0x83c8730
2025-07-01 18:13:26,680 [DEBUG][       Thread-613255][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:13:26,699 [DEBUG][       Thread-613255][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:13:26,699 [ INFO][       Thread-613255][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:13:26,706 [DEBUG][       Thread-613255][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:13:26,706 [DEBUG][       Thread-613255][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:13:26,706 [DEBUG][       Thread-613255][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:13:26,706 [DEBUG][       Thread-613255][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:13:26,706 [DEBUG][       Thread-613255][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:13:26,706 [DEBUG][       Thread-613255][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:13:26,706 [DEBUG][       Thread-613255][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:13:26,706 [DEBUG][       Thread-613255][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:13:26,706 [DEBUG][       Thread-613255][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:13:26,706 [DEBUG][       Thread-613255][   transport.py][1871] : client lang: <none>
2025-07-01 18:13:26,706 [DEBUG][       Thread-613255][   transport.py][1871] : server lang: <none>
2025-07-01 18:13:26,706 [DEBUG][       Thread-613255][   transport.py][1871] : kex follows: False
2025-07-01 18:13:26,706 [DEBUG][       Thread-613255][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:13:26,706 [DEBUG][       Thread-613255][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:13:26,706 [DEBUG][       Thread-613255][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:13:26,706 [DEBUG][       Thread-613255][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:13:26,706 [DEBUG][       Thread-613255][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:13:26,706 [DEBUG][       Thread-613255][   transport.py][1871] : Compression: none
2025-07-01 18:13:26,706 [DEBUG][       Thread-613255][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:13:26,762 [DEBUG][       Thread-613255][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:13:26,762 [DEBUG][       Thread-613255][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:13:26,762 [DEBUG][       Thread-613255][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:13:26,762 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:13:26,763 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:13:26,823 [DEBUG][       Thread-613255][   transport.py][1871] : userauth is OK
2025-07-01 18:13:26,823 [DEBUG][       Thread-613255][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:13:26,823 [DEBUG][       Thread-613255][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:13:26,823 [DEBUG][       Thread-613255][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:13:26,823 [DEBUG][       Thread-613255][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:13:26,840 [ INFO][       Thread-613255][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:13:26,840 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:13:26,840 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:13:27,904 [DEBUG][       Thread-613255][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:13:27,904 [DEBUG][       Thread-613255][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:13:27,952 [DEBUG][       Thread-613255][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:13:27,952 [DEBUG][       Thread-613255][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:13:27,962 [DEBUG][       Thread-613255][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:13:27,971 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:13:27,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-07-01 18:13:27,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-07-01 18:13:27,990 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:13:27,990 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:13:27,991 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:13:27,999 [DEBUG][       Thread-613255][   transport.py][1871] : EOF in transport thread
2025-07-01 18:13:28,886 [DEBUG][Thread-613257 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:13:37,910 [DEBUG][Thread-613258 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:13:38,001 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:13:38,001 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:13:38,001 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:13:38,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-07-01 18:13:38,521 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 13, 8), 9.66, 51.72, 0.0, 27.88, 12.02, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:13:38,521 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:13:08
2025-07-01 18:13:38,607 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:13:38,611 [DEBUG][       Thread-613259][   transport.py][1871] : starting thread (client mode): 0x81cb7c0
2025-07-01 18:13:38,611 [DEBUG][       Thread-613259][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:13:38,627 [DEBUG][       Thread-613259][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:13:38,627 [ INFO][       Thread-613259][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:13:38,630 [DEBUG][       Thread-613259][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:13:38,631 [DEBUG][       Thread-613259][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:13:38,631 [DEBUG][       Thread-613259][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:13:38,631 [DEBUG][       Thread-613259][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:13:38,631 [DEBUG][       Thread-613259][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:13:38,631 [DEBUG][       Thread-613259][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:13:38,631 [DEBUG][       Thread-613259][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:13:38,631 [DEBUG][       Thread-613259][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:13:38,631 [DEBUG][       Thread-613259][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:13:38,631 [DEBUG][       Thread-613259][   transport.py][1871] : client lang: <none>
2025-07-01 18:13:38,631 [DEBUG][       Thread-613259][   transport.py][1871] : server lang: <none>
2025-07-01 18:13:38,631 [DEBUG][       Thread-613259][   transport.py][1871] : kex follows: False
2025-07-01 18:13:38,631 [DEBUG][       Thread-613259][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:13:38,631 [DEBUG][       Thread-613259][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:13:38,631 [DEBUG][       Thread-613259][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:13:38,631 [DEBUG][       Thread-613259][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:13:38,631 [DEBUG][       Thread-613259][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:13:38,631 [DEBUG][       Thread-613259][   transport.py][1871] : Compression: none
2025-07-01 18:13:38,631 [DEBUG][       Thread-613259][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:13:38,639 [DEBUG][       Thread-613259][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:13:38,639 [DEBUG][       Thread-613259][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:13:38,639 [DEBUG][       Thread-613259][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:13:38,639 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:13:38,639 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:13:38,682 [DEBUG][       Thread-613259][   transport.py][1871] : userauth is OK
2025-07-01 18:13:38,707 [ INFO][       Thread-613259][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:13:38,709 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:13:39,357 [DEBUG][       Thread-613259][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:13:39,357 [DEBUG][       Thread-613259][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:13:39,401 [DEBUG][       Thread-613259][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:13:39,401 [DEBUG][       Thread-613259][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:13:39,405 [DEBUG][       Thread-613259][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:13:39,416 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:13:39,416 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:13:39,418 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:13:39,420 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:13:39,425 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:13:39,427 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:13:39,427 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:13:39,428 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:13:39,428 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.675631 -999.00  +11.80  23.34     56   +3.40 1 2 1 1 1   144    0 7.66 -38.13 ----- 16.3 23.3 17.5 39.9 12.6 -17.3 12.4 -17.6 12.2 -16.9 12.5 -16.3
2025-07-01 18:13:39,428 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:13:39,428 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:13:39,428 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.675631
2025-07-01 18:13:39,429 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:13:39,429 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:13:39,429 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:13:39,429 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:13:39,429 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:13:39,430 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:13:08', tmtdew=9.66, humidity=51.72, cloud=0.0, wind=27.88, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:12:54.518', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:13:39,431 [DEBUG][       Thread-613259][   transport.py][1871] : EOF in transport thread
2025-07-01 18:13:39,513 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:13:39,523 [DEBUG][       Thread-613262][   transport.py][1871] : starting thread (client mode): 0x83c8400
2025-07-01 18:13:39,523 [DEBUG][       Thread-613262][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:13:39,540 [DEBUG][       Thread-613262][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:13:39,540 [ INFO][       Thread-613262][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:13:39,548 [DEBUG][       Thread-613262][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:13:39,548 [DEBUG][       Thread-613262][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:13:39,548 [DEBUG][       Thread-613262][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:13:39,548 [DEBUG][       Thread-613262][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:13:39,548 [DEBUG][       Thread-613262][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:13:39,548 [DEBUG][       Thread-613262][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:13:39,548 [DEBUG][       Thread-613262][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:13:39,548 [DEBUG][       Thread-613262][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:13:39,548 [DEBUG][       Thread-613262][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:13:39,548 [DEBUG][       Thread-613262][   transport.py][1871] : client lang: <none>
2025-07-01 18:13:39,548 [DEBUG][       Thread-613262][   transport.py][1871] : server lang: <none>
2025-07-01 18:13:39,548 [DEBUG][       Thread-613262][   transport.py][1871] : kex follows: False
2025-07-01 18:13:39,548 [DEBUG][       Thread-613262][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:13:39,548 [DEBUG][       Thread-613262][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:13:39,548 [DEBUG][       Thread-613262][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:13:39,548 [DEBUG][       Thread-613262][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:13:39,548 [DEBUG][       Thread-613262][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:13:39,548 [DEBUG][       Thread-613262][   transport.py][1871] : Compression: none
2025-07-01 18:13:39,548 [DEBUG][       Thread-613262][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:13:39,607 [DEBUG][       Thread-613262][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:13:39,607 [DEBUG][       Thread-613262][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:13:39,608 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:13:39,608 [DEBUG][       Thread-613262][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:13:39,609 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:13:39,664 [DEBUG][       Thread-613262][   transport.py][1871] : userauth is OK
2025-07-01 18:13:39,664 [DEBUG][       Thread-613262][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:13:39,664 [DEBUG][       Thread-613262][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:13:39,664 [DEBUG][       Thread-613262][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:13:39,664 [DEBUG][       Thread-613262][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:13:39,684 [ INFO][       Thread-613262][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:13:39,684 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:13:39,685 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:13:40,738 [DEBUG][       Thread-613262][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:13:40,738 [DEBUG][       Thread-613262][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:13:40,787 [DEBUG][       Thread-613262][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:13:40,787 [DEBUG][       Thread-613262][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:13:40,796 [DEBUG][       Thread-613262][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:13:40,803 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:13:40,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-07-01 18:13: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') -> 00000000
2025-07-01 18:13:40,819 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:13:40,819 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:13:40,820 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:13:40,827 [DEBUG][       Thread-613262][   transport.py][1871] : EOF in transport thread
2025-07-01 18:13:42,669 [DEBUG][Thread-613264 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:13:46,931 [DEBUG][Thread-613265 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:13:50,830 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:13:50,830 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:13:50,830 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:13:50,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-07-01 18:13:51,344 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 13, 39), 9.63, 51.71, 0.0, 27.98, 11.97, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:13:51,344 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:13:39
2025-07-01 18:13:51,431 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:13:51,435 [DEBUG][       Thread-613266][   transport.py][1871] : starting thread (client mode): 0x8154850
2025-07-01 18:13:51,435 [DEBUG][       Thread-613266][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:13:51,449 [DEBUG][       Thread-613266][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:13:51,449 [ INFO][       Thread-613266][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:13:51,450 [DEBUG][       Thread-613266][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:13:51,450 [DEBUG][       Thread-613266][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:13:51,450 [DEBUG][       Thread-613266][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:13:51,450 [DEBUG][       Thread-613266][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:13:51,450 [DEBUG][       Thread-613266][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:13:51,450 [DEBUG][       Thread-613266][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:13:51,450 [DEBUG][       Thread-613266][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:13:51,450 [DEBUG][       Thread-613266][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:13:51,450 [DEBUG][       Thread-613266][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:13:51,450 [DEBUG][       Thread-613266][   transport.py][1871] : client lang: <none>
2025-07-01 18:13:51,450 [DEBUG][       Thread-613266][   transport.py][1871] : server lang: <none>
2025-07-01 18:13:51,450 [DEBUG][       Thread-613266][   transport.py][1871] : kex follows: False
2025-07-01 18:13:51,450 [DEBUG][       Thread-613266][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:13:51,450 [DEBUG][       Thread-613266][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:13:51,450 [DEBUG][       Thread-613266][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:13:51,450 [DEBUG][       Thread-613266][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:13:51,450 [DEBUG][       Thread-613266][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:13:51,450 [DEBUG][       Thread-613266][   transport.py][1871] : Compression: none
2025-07-01 18:13:51,450 [DEBUG][       Thread-613266][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:13:51,458 [DEBUG][       Thread-613266][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:13:51,458 [DEBUG][       Thread-613266][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:13:51,458 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:13:51,458 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:13:51,458 [DEBUG][       Thread-613266][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:13:51,459 [DEBUG][       Thread-613266][   transport.py][1871] : userauth is OK
2025-07-01 18:13:51,482 [ INFO][       Thread-613266][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:13:51,483 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:13:52,063 [DEBUG][       Thread-613266][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:13:52,064 [DEBUG][       Thread-613266][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:13:52,105 [DEBUG][       Thread-613266][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:13:52,105 [DEBUG][       Thread-613266][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:13:52,108 [DEBUG][       Thread-613266][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:13:52,119 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:13:52,119 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:13:52,121 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:13:52,122 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:13:52,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:13:52,129 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:13:52,129 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:13:52,130 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:13:52,130 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.675978 -999.00  +11.70  19.35     56   +3.40 1 2 1 1 1   133    0 7.59 -38.57 ----- 27.8 19.4 337.0 34.4 12.5 -17.4 12.3 -17.5 12.1 -16.6 12.5 -16.2
2025-07-01 18:13:52,130 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:13:52,130 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:13:52,130 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.675978
2025-07-01 18:13:52,131 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:13:52,131 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:13:52,132 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:13:52,132 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:13:52,132 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:13:52,132 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:13:39', tmtdew=9.63, humidity=51.71, cloud=0.0, wind=27.98, temperature=11.97, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:13:24.499', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:13:52,133 [DEBUG][       Thread-613266][   transport.py][1871] : EOF in transport thread
2025-07-01 18:13:52,215 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:13:52,227 [DEBUG][       Thread-613269][   transport.py][1871] : starting thread (client mode): 0x8170b50
2025-07-01 18:13:52,227 [DEBUG][       Thread-613269][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:13:52,241 [DEBUG][       Thread-613269][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:13:52,241 [ INFO][       Thread-613269][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:13:52,249 [DEBUG][       Thread-613269][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:13:52,249 [DEBUG][       Thread-613269][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:13:52,249 [DEBUG][       Thread-613269][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:13:52,249 [DEBUG][       Thread-613269][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:13:52,249 [DEBUG][       Thread-613269][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:13:52,249 [DEBUG][       Thread-613269][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:13:52,249 [DEBUG][       Thread-613269][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:13:52,249 [DEBUG][       Thread-613269][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:13:52,249 [DEBUG][       Thread-613269][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:13:52,249 [DEBUG][       Thread-613269][   transport.py][1871] : client lang: <none>
2025-07-01 18:13:52,249 [DEBUG][       Thread-613269][   transport.py][1871] : server lang: <none>
2025-07-01 18:13:52,249 [DEBUG][       Thread-613269][   transport.py][1871] : kex follows: False
2025-07-01 18:13:52,249 [DEBUG][       Thread-613269][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:13:52,249 [DEBUG][       Thread-613269][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:13:52,249 [DEBUG][       Thread-613269][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:13:52,249 [DEBUG][       Thread-613269][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:13:52,249 [DEBUG][       Thread-613269][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:13:52,249 [DEBUG][       Thread-613269][   transport.py][1871] : Compression: none
2025-07-01 18:13:52,249 [DEBUG][       Thread-613269][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:13:52,310 [DEBUG][       Thread-613269][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:13:52,310 [DEBUG][       Thread-613269][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:13:52,310 [DEBUG][       Thread-613269][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:13:52,310 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:13:52,310 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:13:52,367 [DEBUG][       Thread-613269][   transport.py][1871] : userauth is OK
2025-07-01 18:13:52,368 [DEBUG][       Thread-613269][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:13:52,368 [DEBUG][       Thread-613269][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:13:52,368 [DEBUG][       Thread-613269][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:13:52,368 [DEBUG][       Thread-613269][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:13:52,386 [ INFO][       Thread-613269][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:13:52,387 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:13:52,387 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:13:53,391 [DEBUG][       Thread-613269][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:13:53,391 [DEBUG][       Thread-613269][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:13:53,445 [DEBUG][       Thread-613269][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:13:53,445 [DEBUG][       Thread-613269][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:13:53,454 [DEBUG][       Thread-613269][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:13:53,462 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:13:53,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-07-01 18:13:53,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') -> 00000000
2025-07-01 18:13:53,482 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:13:53,482 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:13:53,483 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:13:53,490 [DEBUG][       Thread-613269][   transport.py][1871] : EOF in transport thread
2025-07-01 18:13:55,954 [DEBUG][Thread-613271 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:14:03,493 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:14:03,494 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:14:03,494 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:14:03,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-07-01 18:14:03,993 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 13, 39), 9.63, 51.71, 0.0, 27.98, 11.97, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:14:03,994 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:13:39
2025-07-01 18:14:04,080 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:14:04,084 [DEBUG][       Thread-613272][   transport.py][1871] : starting thread (client mode): 0x8173af0
2025-07-01 18:14:04,084 [DEBUG][       Thread-613272][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:14:04,105 [DEBUG][       Thread-613272][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:14:04,105 [ INFO][       Thread-613272][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:14:04,108 [DEBUG][       Thread-613272][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:14:04,108 [DEBUG][       Thread-613272][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:14:04,108 [DEBUG][       Thread-613272][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:14:04,108 [DEBUG][       Thread-613272][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:14:04,108 [DEBUG][       Thread-613272][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:14:04,108 [DEBUG][       Thread-613272][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:14:04,108 [DEBUG][       Thread-613272][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:14:04,108 [DEBUG][       Thread-613272][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:14:04,108 [DEBUG][       Thread-613272][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:14:04,108 [DEBUG][       Thread-613272][   transport.py][1871] : client lang: <none>
2025-07-01 18:14:04,108 [DEBUG][       Thread-613272][   transport.py][1871] : server lang: <none>
2025-07-01 18:14:04,108 [DEBUG][       Thread-613272][   transport.py][1871] : kex follows: False
2025-07-01 18:14:04,108 [DEBUG][       Thread-613272][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:14:04,108 [DEBUG][       Thread-613272][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:14:04,108 [DEBUG][       Thread-613272][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:14:04,108 [DEBUG][       Thread-613272][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:14:04,108 [DEBUG][       Thread-613272][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:14:04,108 [DEBUG][       Thread-613272][   transport.py][1871] : Compression: none
2025-07-01 18:14:04,108 [DEBUG][       Thread-613272][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:14:04,121 [DEBUG][       Thread-613272][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:14:04,121 [DEBUG][       Thread-613272][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:14:04,121 [DEBUG][       Thread-613272][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:14:04,121 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:14:04,121 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:14:04,122 [DEBUG][       Thread-613272][   transport.py][1871] : userauth is OK
2025-07-01 18:14:04,146 [ INFO][       Thread-613272][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:14:04,146 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:14:04,800 [DEBUG][       Thread-613272][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:14:04,800 [DEBUG][       Thread-613272][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:14:04,840 [DEBUG][       Thread-613272][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:14:04,840 [DEBUG][       Thread-613272][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:14:04,843 [DEBUG][       Thread-613272][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:14:04,855 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:14:04,855 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:14:04,856 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:14:04,857 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:14:04,860 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:14:04,861 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:14:04,861 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:14:04,861 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:14:04,861 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.675978 -999.00  +11.70  19.35     56   +3.40 1 2 1 1 1   133    0 7.59 -38.57 ----- 27.8 19.4 337.0 34.4 12.5 -17.4 12.3 -17.5 12.1 -16.6 12.5 -16.2
2025-07-01 18:14:04,861 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:14:04,861 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:14:04,861 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.675978
2025-07-01 18:14:04,861 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:14:04,862 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:14:04,862 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:14:04,862 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:14:04,862 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:14:04,862 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:13:39', tmtdew=9.63, humidity=51.71, cloud=0.0, wind=27.98, temperature=11.97, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:13:24.499', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:14:04,862 [DEBUG][       Thread-613272][   transport.py][1871] : EOF in transport thread
2025-07-01 18:14:04,938 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:14:04,948 [DEBUG][       Thread-613275][   transport.py][1871] : starting thread (client mode): 0x81e6590
2025-07-01 18:14:04,948 [DEBUG][       Thread-613275][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:14:04,963 [DEBUG][       Thread-613275][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:14:04,963 [ INFO][       Thread-613275][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:14:04,970 [DEBUG][       Thread-613275][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:14:04,970 [DEBUG][       Thread-613275][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:14:04,970 [DEBUG][       Thread-613275][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:14:04,970 [DEBUG][       Thread-613275][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:14:04,970 [DEBUG][       Thread-613275][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:14:04,970 [DEBUG][       Thread-613275][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:14:04,970 [DEBUG][       Thread-613275][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:14:04,970 [DEBUG][       Thread-613275][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:14:04,970 [DEBUG][       Thread-613275][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:14:04,970 [DEBUG][       Thread-613275][   transport.py][1871] : client lang: <none>
2025-07-01 18:14:04,970 [DEBUG][       Thread-613275][   transport.py][1871] : server lang: <none>
2025-07-01 18:14:04,970 [DEBUG][       Thread-613275][   transport.py][1871] : kex follows: False
2025-07-01 18:14:04,970 [DEBUG][       Thread-613275][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:14:04,970 [DEBUG][       Thread-613275][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:14:04,970 [DEBUG][       Thread-613275][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:14:04,970 [DEBUG][       Thread-613275][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:14:04,970 [DEBUG][       Thread-613275][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:14:04,970 [DEBUG][       Thread-613275][   transport.py][1871] : Compression: none
2025-07-01 18:14:04,970 [DEBUG][       Thread-613275][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:14:04,985 [DEBUG][Thread-613277 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:14:05,030 [DEBUG][       Thread-613275][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:14:05,031 [DEBUG][       Thread-613275][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:14:05,031 [DEBUG][       Thread-613275][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:14:05,031 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:14:05,031 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:14:05,091 [DEBUG][       Thread-613275][   transport.py][1871] : userauth is OK
2025-07-01 18:14:05,091 [DEBUG][       Thread-613275][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:14:05,091 [DEBUG][       Thread-613275][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:14:05,091 [DEBUG][       Thread-613275][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:14:05,091 [DEBUG][       Thread-613275][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:14:05,106 [ INFO][       Thread-613275][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:14:05,106 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:14:05,106 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:14:06,143 [DEBUG][       Thread-613275][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:14:06,143 [DEBUG][       Thread-613275][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:14:06,191 [DEBUG][       Thread-613275][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:14:06,191 [DEBUG][       Thread-613275][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:14:06,200 [DEBUG][       Thread-613275][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:14:06,209 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:14: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')
2025-07-01 18:14:06,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-07-01 18:14:06,230 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:14:06,230 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:14:06,230 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:14:06,244 [DEBUG][       Thread-613275][   transport.py][1871] : EOF in transport thread
2025-07-01 18:14:14,003 [DEBUG][Thread-613278 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:14:16,240 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:14:16,240 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:14:16,240 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:14:16,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-07-01 18:14:16,753 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 14, 11), 9.65, 51.65, 0.0, 30.14, 12.01, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:14:16,753 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:14:11
2025-07-01 18:14:16,840 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:14:16,844 [DEBUG][       Thread-613279][   transport.py][1871] : starting thread (client mode): 0x81e4e20
2025-07-01 18:14:16,844 [DEBUG][       Thread-613279][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:14:16,864 [DEBUG][       Thread-613279][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:14:16,864 [ INFO][       Thread-613279][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:14:16,867 [DEBUG][       Thread-613279][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:14:16,867 [DEBUG][       Thread-613279][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:14:16,867 [DEBUG][       Thread-613279][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:14:16,867 [DEBUG][       Thread-613279][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:14:16,867 [DEBUG][       Thread-613279][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:14:16,867 [DEBUG][       Thread-613279][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:14:16,867 [DEBUG][       Thread-613279][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:14:16,867 [DEBUG][       Thread-613279][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:14:16,867 [DEBUG][       Thread-613279][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:14:16,867 [DEBUG][       Thread-613279][   transport.py][1871] : client lang: <none>
2025-07-01 18:14:16,867 [DEBUG][       Thread-613279][   transport.py][1871] : server lang: <none>
2025-07-01 18:14:16,867 [DEBUG][       Thread-613279][   transport.py][1871] : kex follows: False
2025-07-01 18:14:16,867 [DEBUG][       Thread-613279][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:14:16,867 [DEBUG][       Thread-613279][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:14:16,867 [DEBUG][       Thread-613279][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:14:16,867 [DEBUG][       Thread-613279][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:14:16,868 [DEBUG][       Thread-613279][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:14:16,868 [DEBUG][       Thread-613279][   transport.py][1871] : Compression: none
2025-07-01 18:14:16,868 [DEBUG][       Thread-613279][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:14:16,876 [DEBUG][       Thread-613279][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:14:16,876 [DEBUG][       Thread-613279][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:14:16,877 [DEBUG][       Thread-613279][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:14:16,877 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:14:16,877 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:14:16,878 [DEBUG][       Thread-613279][   transport.py][1871] : userauth is OK
2025-07-01 18:14:16,902 [ INFO][       Thread-613279][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:14:16,902 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:14:17,471 [DEBUG][       Thread-613279][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:14:17,471 [DEBUG][       Thread-613279][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:14:17,512 [DEBUG][       Thread-613279][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:14:17,513 [DEBUG][       Thread-613279][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:14:17,515 [DEBUG][       Thread-613279][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:14:17,526 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:14:17,526 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:14:17,528 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:14:17,529 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:14:17,534 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:14:17,535 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:14:17,536 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:14:17,536 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:14:17,536 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.675978 -999.00  +11.70  19.35     56   +3.40 1 2 1 1 1   133    0 7.59 -38.57 ----- 27.8 19.4 337.0 34.4 12.5 -17.4 12.3 -17.5 12.1 -16.6 12.5 -16.2
2025-07-01 18:14:17,536 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:14:17,537 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:14:17,537 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.675978
2025-07-01 18:14:17,537 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:14:17,537 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:14:17,538 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:14:17,538 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:14:17,538 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:14:17,538 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:14:11', tmtdew=9.65, humidity=51.65, cloud=0.0, wind=30.14, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:13:24.499', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:14:17,539 [DEBUG][       Thread-613279][   transport.py][1871] : EOF in transport thread
2025-07-01 18:14:17,618 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:14:17,630 [DEBUG][       Thread-613282][   transport.py][1871] : starting thread (client mode): 0x83938e0
2025-07-01 18:14:17,630 [DEBUG][       Thread-613282][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:14:17,649 [DEBUG][       Thread-613282][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:14:17,649 [ INFO][       Thread-613282][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:14:17,659 [DEBUG][       Thread-613282][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:14:17,659 [DEBUG][       Thread-613282][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:14:17,659 [DEBUG][       Thread-613282][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:14:17,659 [DEBUG][       Thread-613282][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:14:17,659 [DEBUG][       Thread-613282][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:14:17,659 [DEBUG][       Thread-613282][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:14:17,659 [DEBUG][       Thread-613282][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:14:17,659 [DEBUG][       Thread-613282][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:14:17,659 [DEBUG][       Thread-613282][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:14:17,659 [DEBUG][       Thread-613282][   transport.py][1871] : client lang: <none>
2025-07-01 18:14:17,659 [DEBUG][       Thread-613282][   transport.py][1871] : server lang: <none>
2025-07-01 18:14:17,659 [DEBUG][       Thread-613282][   transport.py][1871] : kex follows: False
2025-07-01 18:14:17,659 [DEBUG][       Thread-613282][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:14:17,660 [DEBUG][       Thread-613282][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:14:17,660 [DEBUG][       Thread-613282][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:14:17,660 [DEBUG][       Thread-613282][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:14:17,660 [DEBUG][       Thread-613282][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:14:17,660 [DEBUG][       Thread-613282][   transport.py][1871] : Compression: none
2025-07-01 18:14:17,660 [DEBUG][       Thread-613282][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:14:17,715 [DEBUG][       Thread-613282][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:14:17,716 [DEBUG][       Thread-613282][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:14:17,716 [DEBUG][       Thread-613282][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:14:17,716 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:14:17,717 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:14:17,771 [DEBUG][       Thread-613282][   transport.py][1871] : userauth is OK
2025-07-01 18:14:17,772 [DEBUG][       Thread-613282][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:14:17,772 [DEBUG][       Thread-613282][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:14:17,772 [DEBUG][       Thread-613282][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:14:17,772 [DEBUG][       Thread-613282][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:14:17,794 [ INFO][       Thread-613282][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:14:17,794 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:14:17,795 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:14:18,794 [DEBUG][       Thread-613282][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:14:18,794 [DEBUG][       Thread-613282][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:14:18,843 [DEBUG][       Thread-613282][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:14:18,843 [DEBUG][       Thread-613282][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:14:18,852 [DEBUG][       Thread-613282][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:14:18,861 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:14:18,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-07-01 18:14:18,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-07-01 18:14:18,878 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:14:18,878 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:14:18,878 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:14:18,886 [DEBUG][       Thread-613282][   transport.py][1871] : EOF in transport thread
2025-07-01 18:14:23,023 [DEBUG][Thread-613284 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:14:28,889 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:14:28,889 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:14:28,889 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:14:28,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-07-01 18:14:29,403 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 14, 11), 9.65, 51.65, 0.0, 30.14, 12.01, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:14:29,403 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:14:11
2025-07-01 18:14:29,490 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:14:29,497 [DEBUG][       Thread-613285][   transport.py][1871] : starting thread (client mode): 0x81c9690
2025-07-01 18:14:29,497 [DEBUG][       Thread-613285][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:14:29,517 [DEBUG][       Thread-613285][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:14:29,517 [ INFO][       Thread-613285][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:14:29,520 [DEBUG][       Thread-613285][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:14:29,520 [DEBUG][       Thread-613285][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:14:29,521 [DEBUG][       Thread-613285][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:14:29,521 [DEBUG][       Thread-613285][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:14:29,521 [DEBUG][       Thread-613285][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:14:29,521 [DEBUG][       Thread-613285][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:14:29,521 [DEBUG][       Thread-613285][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:14:29,521 [DEBUG][       Thread-613285][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:14:29,521 [DEBUG][       Thread-613285][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:14:29,521 [DEBUG][       Thread-613285][   transport.py][1871] : client lang: <none>
2025-07-01 18:14:29,521 [DEBUG][       Thread-613285][   transport.py][1871] : server lang: <none>
2025-07-01 18:14:29,521 [DEBUG][       Thread-613285][   transport.py][1871] : kex follows: False
2025-07-01 18:14:29,521 [DEBUG][       Thread-613285][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:14:29,521 [DEBUG][       Thread-613285][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:14:29,521 [DEBUG][       Thread-613285][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:14:29,521 [DEBUG][       Thread-613285][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:14:29,521 [DEBUG][       Thread-613285][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:14:29,521 [DEBUG][       Thread-613285][   transport.py][1871] : Compression: none
2025-07-01 18:14:29,521 [DEBUG][       Thread-613285][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:14:29,539 [DEBUG][       Thread-613285][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:14:29,539 [DEBUG][       Thread-613285][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:14:29,540 [DEBUG][       Thread-613285][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:14:29,540 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:14:29,540 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:14:29,541 [DEBUG][       Thread-613285][   transport.py][1871] : userauth is OK
2025-07-01 18:14:29,554 [ INFO][       Thread-613285][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:14:29,555 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:14:30,161 [DEBUG][       Thread-613285][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:14:30,162 [DEBUG][       Thread-613285][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:14:30,205 [DEBUG][       Thread-613285][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:14:30,205 [DEBUG][       Thread-613285][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:14:30,209 [DEBUG][       Thread-613285][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:14:30,225 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:14:30,225 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:14:30,227 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:14:30,228 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:14:30,234 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:14:30,236 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:14:30,236 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:14:30,237 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:14:30,237 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.676325 -999.00  +11.80  23.18     56   +3.40 1 2 1 1 1   122    0 7.57 -37.45 ----- 20.0 23.2 341.3 39.2 12.5 -17.3 12.4 -17.5 12.2 -16.5 12.5 -16.2
2025-07-01 18:14:30,237 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:14:30,237 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:14:30,237 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.676325
2025-07-01 18:14:30,237 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:14:30,238 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:14:30,238 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:14:30,238 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:14:30,238 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:14:30,238 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:14:11', tmtdew=9.65, humidity=51.65, cloud=0.0, wind=30.14, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:13:54.480', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:14:30,239 [DEBUG][       Thread-613285][   transport.py][1871] : EOF in transport thread
2025-07-01 18:14:30,322 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:14:30,334 [DEBUG][       Thread-613288][   transport.py][1871] : starting thread (client mode): 0x8a66980
2025-07-01 18:14:30,334 [DEBUG][       Thread-613288][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:14:30,350 [DEBUG][       Thread-613288][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:14:30,350 [ INFO][       Thread-613288][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:14:30,363 [DEBUG][       Thread-613288][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:14:30,363 [DEBUG][       Thread-613288][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:14:30,363 [DEBUG][       Thread-613288][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:14:30,363 [DEBUG][       Thread-613288][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:14:30,363 [DEBUG][       Thread-613288][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:14:30,363 [DEBUG][       Thread-613288][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:14:30,364 [DEBUG][       Thread-613288][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:14:30,364 [DEBUG][       Thread-613288][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:14:30,364 [DEBUG][       Thread-613288][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:14:30,364 [DEBUG][       Thread-613288][   transport.py][1871] : client lang: <none>
2025-07-01 18:14:30,364 [DEBUG][       Thread-613288][   transport.py][1871] : server lang: <none>
2025-07-01 18:14:30,364 [DEBUG][       Thread-613288][   transport.py][1871] : kex follows: False
2025-07-01 18:14:30,364 [DEBUG][       Thread-613288][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:14:30,364 [DEBUG][       Thread-613288][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:14:30,364 [DEBUG][       Thread-613288][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:14:30,364 [DEBUG][       Thread-613288][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:14:30,364 [DEBUG][       Thread-613288][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:14:30,364 [DEBUG][       Thread-613288][   transport.py][1871] : Compression: none
2025-07-01 18:14:30,364 [DEBUG][       Thread-613288][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:14:30,416 [DEBUG][       Thread-613288][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:14:30,417 [DEBUG][       Thread-613288][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:14:30,417 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:14:30,418 [DEBUG][       Thread-613288][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:14:30,419 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:14:30,472 [DEBUG][       Thread-613288][   transport.py][1871] : userauth is OK
2025-07-01 18:14:30,472 [DEBUG][       Thread-613288][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:14:30,472 [DEBUG][       Thread-613288][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:14:30,472 [DEBUG][       Thread-613288][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:14:30,472 [DEBUG][       Thread-613288][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:14:30,492 [ INFO][       Thread-613288][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:14:30,492 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:14:30,493 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:14:31,530 [DEBUG][       Thread-613288][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:14:31,531 [DEBUG][       Thread-613288][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:14:31,580 [DEBUG][       Thread-613288][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:14:31,580 [DEBUG][       Thread-613288][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:14:31,589 [DEBUG][       Thread-613288][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:14:31,598 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:14:31,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')
2025-07-01 18:14:31,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-07-01 18:14:31,615 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:14:31,615 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:14:31,616 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:14:31,628 [DEBUG][       Thread-613288][   transport.py][1871] : EOF in transport thread
2025-07-01 18:14:32,064 [DEBUG][Thread-613290 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:14:41,085 [DEBUG][Thread-613291 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:14:41,626 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:14:41,626 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:14:41,627 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:14:41,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-07-01 18:14:42,126 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 14, 11), 9.65, 51.65, 0.0, 30.14, 12.01, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:14:42,126 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:14:11
2025-07-01 18:14:42,211 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:14:42,215 [DEBUG][       Thread-613292][   transport.py][1871] : starting thread (client mode): 0x81cb4c0
2025-07-01 18:14:42,215 [DEBUG][       Thread-613292][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:14:42,241 [DEBUG][       Thread-613292][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:14:42,241 [ INFO][       Thread-613292][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:14:42,245 [DEBUG][       Thread-613292][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:14:42,245 [DEBUG][       Thread-613292][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:14:42,245 [DEBUG][       Thread-613292][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:14:42,246 [DEBUG][       Thread-613292][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:14:42,246 [DEBUG][       Thread-613292][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:14:42,246 [DEBUG][       Thread-613292][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:14:42,246 [DEBUG][       Thread-613292][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:14:42,246 [DEBUG][       Thread-613292][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:14:42,246 [DEBUG][       Thread-613292][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:14:42,246 [DEBUG][       Thread-613292][   transport.py][1871] : client lang: <none>
2025-07-01 18:14:42,246 [DEBUG][       Thread-613292][   transport.py][1871] : server lang: <none>
2025-07-01 18:14:42,246 [DEBUG][       Thread-613292][   transport.py][1871] : kex follows: False
2025-07-01 18:14:42,246 [DEBUG][       Thread-613292][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:14:42,246 [DEBUG][       Thread-613292][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:14:42,246 [DEBUG][       Thread-613292][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:14:42,246 [DEBUG][       Thread-613292][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:14:42,246 [DEBUG][       Thread-613292][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:14:42,246 [DEBUG][       Thread-613292][   transport.py][1871] : Compression: none
2025-07-01 18:14:42,246 [DEBUG][       Thread-613292][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:14:42,265 [DEBUG][       Thread-613292][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:14:42,265 [DEBUG][       Thread-613292][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:14:42,266 [DEBUG][       Thread-613292][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:14:42,266 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:14:42,266 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:14:42,267 [DEBUG][       Thread-613292][   transport.py][1871] : userauth is OK
2025-07-01 18:14:42,292 [ INFO][       Thread-613292][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:14:42,293 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:14:42,721 [DEBUG][Thread-613294 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:14:43,050 [DEBUG][       Thread-613292][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:14:43,050 [DEBUG][       Thread-613292][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:14:43,093 [DEBUG][       Thread-613292][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:14:43,093 [DEBUG][       Thread-613292][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:14:43,097 [DEBUG][       Thread-613292][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:14:43,101 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:14:43,102 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:14:43,103 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:14:43,105 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:14:43,109 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:14:43,111 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:14:43,111 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:14:43,112 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:14:43,112 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.676325 -999.00  +11.80  23.18     56   +3.40 1 2 1 1 1   122    0 7.57 -37.45 ----- 20.0 23.2 341.3 39.2 12.5 -17.3 12.4 -17.5 12.2 -16.5 12.5 -16.2
2025-07-01 18:14:43,112 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:14:43,112 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:14:43,112 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.676325
2025-07-01 18:14:43,113 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:14:43,113 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:14:43,113 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:14:43,113 [DEBUG][       Thread-613292][   transport.py][1871] : EOF in transport thread
2025-07-01 18:14:43,114 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:14:43,114 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:14:43,114 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:14:11', tmtdew=9.65, humidity=51.65, cloud=0.0, wind=30.14, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:13:54.480', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:14:43,198 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:14:43,207 [DEBUG][       Thread-613296][   transport.py][1871] : starting thread (client mode): 0x8156d70
2025-07-01 18:14:43,207 [DEBUG][       Thread-613296][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:14:43,222 [DEBUG][       Thread-613296][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:14:43,223 [ INFO][       Thread-613296][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:14:43,230 [DEBUG][       Thread-613296][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:14:43,230 [DEBUG][       Thread-613296][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:14:43,230 [DEBUG][       Thread-613296][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:14:43,230 [DEBUG][       Thread-613296][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:14:43,230 [DEBUG][       Thread-613296][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:14:43,230 [DEBUG][       Thread-613296][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:14:43,230 [DEBUG][       Thread-613296][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:14:43,231 [DEBUG][       Thread-613296][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:14:43,231 [DEBUG][       Thread-613296][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:14:43,231 [DEBUG][       Thread-613296][   transport.py][1871] : client lang: <none>
2025-07-01 18:14:43,231 [DEBUG][       Thread-613296][   transport.py][1871] : server lang: <none>
2025-07-01 18:14:43,231 [DEBUG][       Thread-613296][   transport.py][1871] : kex follows: False
2025-07-01 18:14:43,231 [DEBUG][       Thread-613296][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:14:43,231 [DEBUG][       Thread-613296][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:14:43,231 [DEBUG][       Thread-613296][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:14:43,231 [DEBUG][       Thread-613296][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:14:43,231 [DEBUG][       Thread-613296][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:14:43,231 [DEBUG][       Thread-613296][   transport.py][1871] : Compression: none
2025-07-01 18:14:43,231 [DEBUG][       Thread-613296][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:14:43,288 [DEBUG][       Thread-613296][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:14:43,288 [DEBUG][       Thread-613296][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:14:43,289 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:14:43,289 [DEBUG][       Thread-613296][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:14:43,290 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:14:43,344 [DEBUG][       Thread-613296][   transport.py][1871] : userauth is OK
2025-07-01 18:14:43,344 [DEBUG][       Thread-613296][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:14:43,344 [DEBUG][       Thread-613296][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:14:43,344 [DEBUG][       Thread-613296][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:14:43,344 [DEBUG][       Thread-613296][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:14:43,364 [ INFO][       Thread-613296][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:14:43,364 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:14:43,364 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:14:44,371 [DEBUG][       Thread-613296][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:14:44,371 [DEBUG][       Thread-613296][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:14:44,422 [DEBUG][       Thread-613296][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:14:44,422 [DEBUG][       Thread-613296][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:14:44,438 [DEBUG][       Thread-613296][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:14:44,450 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:14:44,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-07-01 18:14: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-07-01 18:14:44,468 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:14:44,468 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:14:44,468 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:14:44,476 [DEBUG][       Thread-613296][   transport.py][1871] : EOF in transport thread
2025-07-01 18:14:50,105 [DEBUG][Thread-613298 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:14:54,476 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:14:54,476 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:14:54,476 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:14:54,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-07-01 18:14:54,959 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 14, 43), 9.67, 51.55, 0.0, 26.06, 12.01, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:14:54,959 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:14:43
2025-07-01 18:14:55,045 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:14:55,051 [DEBUG][       Thread-613299][   transport.py][1871] : starting thread (client mode): 0x81cb340
2025-07-01 18:14:55,051 [DEBUG][       Thread-613299][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:14:55,071 [DEBUG][       Thread-613299][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:14:55,071 [ INFO][       Thread-613299][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:14:55,074 [DEBUG][       Thread-613299][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:14:55,075 [DEBUG][       Thread-613299][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:14:55,075 [DEBUG][       Thread-613299][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:14:55,075 [DEBUG][       Thread-613299][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:14:55,075 [DEBUG][       Thread-613299][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:14:55,075 [DEBUG][       Thread-613299][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:14:55,075 [DEBUG][       Thread-613299][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:14:55,075 [DEBUG][       Thread-613299][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:14:55,075 [DEBUG][       Thread-613299][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:14:55,075 [DEBUG][       Thread-613299][   transport.py][1871] : client lang: <none>
2025-07-01 18:14:55,075 [DEBUG][       Thread-613299][   transport.py][1871] : server lang: <none>
2025-07-01 18:14:55,075 [DEBUG][       Thread-613299][   transport.py][1871] : kex follows: False
2025-07-01 18:14:55,075 [DEBUG][       Thread-613299][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:14:55,075 [DEBUG][       Thread-613299][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:14:55,075 [DEBUG][       Thread-613299][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:14:55,075 [DEBUG][       Thread-613299][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:14:55,075 [DEBUG][       Thread-613299][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:14:55,075 [DEBUG][       Thread-613299][   transport.py][1871] : Compression: none
2025-07-01 18:14:55,075 [DEBUG][       Thread-613299][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:14:55,084 [DEBUG][       Thread-613299][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:14:55,084 [DEBUG][       Thread-613299][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:14:55,084 [DEBUG][       Thread-613299][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:14:55,085 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:14:55,085 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:14:55,086 [DEBUG][       Thread-613299][   transport.py][1871] : userauth is OK
2025-07-01 18:14:55,099 [ INFO][       Thread-613299][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:14:55,100 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:14:55,907 [DEBUG][       Thread-613299][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:14:55,907 [DEBUG][       Thread-613299][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:14:55,949 [DEBUG][       Thread-613299][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:14:55,949 [DEBUG][       Thread-613299][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:14:55,951 [DEBUG][       Thread-613299][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:14:55,963 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:14:55,964 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:14:55,966 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:14:55,968 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:14:55,973 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:14:55,975 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:14:55,975 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:14:55,975 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:14:55,976 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.676325 -999.00  +11.80  23.18     56   +3.40 1 2 1 1 1   122    0 7.57 -37.45 ----- 20.0 23.2 341.3 39.2 12.5 -17.3 12.4 -17.5 12.2 -16.5 12.5 -16.2
2025-07-01 18:14:55,976 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:14:55,976 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:14:55,976 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.676325
2025-07-01 18:14:55,976 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:14:55,977 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:14:55,977 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:14:55,977 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:14:55,977 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:14:55,977 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:14:43', tmtdew=9.67, humidity=51.55, cloud=0.0, wind=26.06, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:13:54.480', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:14:55,978 [DEBUG][       Thread-613299][   transport.py][1871] : EOF in transport thread
2025-07-01 18:14:56,061 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:14:56,072 [DEBUG][       Thread-613302][   transport.py][1871] : starting thread (client mode): 0x8173e80
2025-07-01 18:14:56,072 [DEBUG][       Thread-613302][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:14:56,087 [DEBUG][       Thread-613302][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:14:56,088 [ INFO][       Thread-613302][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:14:56,095 [DEBUG][       Thread-613302][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:14:56,095 [DEBUG][       Thread-613302][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:14:56,095 [DEBUG][       Thread-613302][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:14:56,095 [DEBUG][       Thread-613302][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:14:56,095 [DEBUG][       Thread-613302][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:14:56,095 [DEBUG][       Thread-613302][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:14:56,095 [DEBUG][       Thread-613302][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:14:56,095 [DEBUG][       Thread-613302][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:14:56,095 [DEBUG][       Thread-613302][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:14:56,095 [DEBUG][       Thread-613302][   transport.py][1871] : client lang: <none>
2025-07-01 18:14:56,095 [DEBUG][       Thread-613302][   transport.py][1871] : server lang: <none>
2025-07-01 18:14:56,096 [DEBUG][       Thread-613302][   transport.py][1871] : kex follows: False
2025-07-01 18:14:56,096 [DEBUG][       Thread-613302][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:14:56,096 [DEBUG][       Thread-613302][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:14:56,096 [DEBUG][       Thread-613302][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:14:56,096 [DEBUG][       Thread-613302][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:14:56,096 [DEBUG][       Thread-613302][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:14:56,096 [DEBUG][       Thread-613302][   transport.py][1871] : Compression: none
2025-07-01 18:14:56,096 [DEBUG][       Thread-613302][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:14:56,152 [DEBUG][       Thread-613302][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:14:56,152 [DEBUG][       Thread-613302][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:14:56,153 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:14:56,153 [DEBUG][       Thread-613302][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:14:56,154 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:14:56,208 [DEBUG][       Thread-613302][   transport.py][1871] : userauth is OK
2025-07-01 18:14:56,208 [DEBUG][       Thread-613302][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:14:56,209 [DEBUG][       Thread-613302][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:14:56,209 [DEBUG][       Thread-613302][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:14:56,209 [DEBUG][       Thread-613302][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:14:56,228 [ INFO][       Thread-613302][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:14:56,228 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:14:56,229 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:14:57,233 [DEBUG][       Thread-613302][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:14:57,234 [DEBUG][       Thread-613302][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:14:57,284 [DEBUG][       Thread-613302][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:14:57,284 [DEBUG][       Thread-613302][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:14:57,293 [DEBUG][       Thread-613302][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:14:57,302 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:14:57,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-07-01 18:14: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-07-01 18:14:57,321 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:14:57,321 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:14:57,322 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:14:57,329 [DEBUG][       Thread-613302][   transport.py][1871] : EOF in transport thread
2025-07-01 18:14:59,129 [DEBUG][Thread-613304 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:15:07,332 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:15:07,332 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:15:07,333 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:15: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-07-01 18:15:07,820 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 14, 43), 9.67, 51.55, 0.0, 26.06, 12.01, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:15:07,820 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:14:43
2025-07-01 18:15:07,907 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:15:07,911 [DEBUG][       Thread-613305][   transport.py][1871] : starting thread (client mode): 0x8172560
2025-07-01 18:15:07,911 [DEBUG][       Thread-613305][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:15:07,931 [DEBUG][       Thread-613305][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:15:07,931 [ INFO][       Thread-613305][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:15:07,935 [DEBUG][       Thread-613305][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:15:07,935 [DEBUG][       Thread-613305][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:15:07,935 [DEBUG][       Thread-613305][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:15:07,935 [DEBUG][       Thread-613305][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:15:07,935 [DEBUG][       Thread-613305][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:15:07,935 [DEBUG][       Thread-613305][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:15:07,935 [DEBUG][       Thread-613305][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:15:07,935 [DEBUG][       Thread-613305][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:15:07,935 [DEBUG][       Thread-613305][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:15:07,935 [DEBUG][       Thread-613305][   transport.py][1871] : client lang: <none>
2025-07-01 18:15:07,935 [DEBUG][       Thread-613305][   transport.py][1871] : server lang: <none>
2025-07-01 18:15:07,935 [DEBUG][       Thread-613305][   transport.py][1871] : kex follows: False
2025-07-01 18:15:07,935 [DEBUG][       Thread-613305][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:15:07,935 [DEBUG][       Thread-613305][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:15:07,935 [DEBUG][       Thread-613305][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:15:07,935 [DEBUG][       Thread-613305][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:15:07,935 [DEBUG][       Thread-613305][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:15:07,935 [DEBUG][       Thread-613305][   transport.py][1871] : Compression: none
2025-07-01 18:15:07,935 [DEBUG][       Thread-613305][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:15:07,952 [DEBUG][       Thread-613305][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:15:07,952 [DEBUG][       Thread-613305][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:15:07,953 [DEBUG][       Thread-613305][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:15:07,953 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:15:07,953 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:15:07,954 [DEBUG][       Thread-613305][   transport.py][1871] : userauth is OK
2025-07-01 18:15:07,967 [ INFO][       Thread-613305][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:15:07,968 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:15:08,172 [DEBUG][Thread-613307 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:15:10,068 [DEBUG][       Thread-613305][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:15:10,068 [DEBUG][       Thread-613305][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:15:10,112 [DEBUG][       Thread-613305][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:15:10,112 [DEBUG][       Thread-613305][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:15:10,115 [DEBUG][       Thread-613305][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:15:10,129 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:15:10,129 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:15:10,130 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:15:10,131 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:15:10,151 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:15:10,152 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:15:10,152 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:15:10,152 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:15:10,152 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.676672 -999.00  +11.80  28.33     56   +3.40 1 2 1 1 1   112    0 7.61 -34.48 ----- 30.6 28.3 0.8 36.4 12.5 -17.2 12.3 -17.4 12.1 -16.1 12.5 -15.9
2025-07-01 18:15:10,152 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:15:10,152 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:15:10,152 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.676672
2025-07-01 18:15:10,152 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:15:10,153 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:15:10,153 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:15:10,153 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:15:10,153 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:15:10,153 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:14:43', tmtdew=9.67, humidity=51.55, cloud=0.0, wind=26.06, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:14:24.461', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:15:10,154 [DEBUG][       Thread-613305][   transport.py][1871] : EOF in transport thread
2025-07-01 18:15:10,230 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:15:10,240 [DEBUG][       Thread-613309][   transport.py][1871] : starting thread (client mode): 0x83939d0
2025-07-01 18:15:10,240 [DEBUG][       Thread-613309][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:15:10,256 [DEBUG][       Thread-613309][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:15:10,256 [ INFO][       Thread-613309][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:15:10,263 [DEBUG][       Thread-613309][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:15:10,263 [DEBUG][       Thread-613309][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:15:10,264 [DEBUG][       Thread-613309][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:15:10,264 [DEBUG][       Thread-613309][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:15:10,264 [DEBUG][       Thread-613309][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:15:10,264 [DEBUG][       Thread-613309][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:15:10,264 [DEBUG][       Thread-613309][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:15:10,264 [DEBUG][       Thread-613309][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:15:10,264 [DEBUG][       Thread-613309][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:15:10,264 [DEBUG][       Thread-613309][   transport.py][1871] : client lang: <none>
2025-07-01 18:15:10,264 [DEBUG][       Thread-613309][   transport.py][1871] : server lang: <none>
2025-07-01 18:15:10,264 [DEBUG][       Thread-613309][   transport.py][1871] : kex follows: False
2025-07-01 18:15:10,264 [DEBUG][       Thread-613309][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:15:10,264 [DEBUG][       Thread-613309][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:15:10,264 [DEBUG][       Thread-613309][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:15:10,264 [DEBUG][       Thread-613309][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:15:10,264 [DEBUG][       Thread-613309][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:15:10,264 [DEBUG][       Thread-613309][   transport.py][1871] : Compression: none
2025-07-01 18:15:10,264 [DEBUG][       Thread-613309][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:15:10,324 [DEBUG][       Thread-613309][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:15:10,324 [DEBUG][       Thread-613309][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:15:10,325 [DEBUG][       Thread-613309][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:15:10,325 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:15:10,326 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:15:10,384 [DEBUG][       Thread-613309][   transport.py][1871] : userauth is OK
2025-07-01 18:15:10,385 [DEBUG][       Thread-613309][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:15:10,385 [DEBUG][       Thread-613309][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:15:10,385 [DEBUG][       Thread-613309][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:15:10,385 [DEBUG][       Thread-613309][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:15:10,404 [ INFO][       Thread-613309][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:15:10,404 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:15:10,405 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:15:11,455 [DEBUG][       Thread-613309][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:15:11,455 [DEBUG][       Thread-613309][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:15:11,504 [DEBUG][       Thread-613309][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:15:11,504 [DEBUG][       Thread-613309][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:15:11,514 [DEBUG][       Thread-613309][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:15:11,523 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:15:11,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-07-01 18:15:11,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-07-01 18:15:11,541 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:15:11,541 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:15:11,542 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:15:11,550 [DEBUG][       Thread-613309][   transport.py][1871] : EOF in transport thread
2025-07-01 18:15:17,193 [DEBUG][Thread-613311 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:15:21,552 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:15:21,552 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:15:21,552 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:15:21,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-07-01 18:15:22,046 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 15, 15), 9.53, 52.09, 0.0, 31.49, 11.91, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:15:22,046 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:15:15
2025-07-01 18:15:22,132 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:15:22,136 [DEBUG][       Thread-613312][   transport.py][1871] : starting thread (client mode): 0x81e5f00
2025-07-01 18:15:22,136 [DEBUG][       Thread-613312][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:15:22,157 [DEBUG][       Thread-613312][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:15:22,157 [ INFO][       Thread-613312][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:15:22,161 [DEBUG][       Thread-613312][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:15:22,161 [DEBUG][       Thread-613312][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:15:22,161 [DEBUG][       Thread-613312][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:15:22,161 [DEBUG][       Thread-613312][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:15:22,161 [DEBUG][       Thread-613312][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:15:22,161 [DEBUG][       Thread-613312][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:15:22,161 [DEBUG][       Thread-613312][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:15:22,161 [DEBUG][       Thread-613312][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:15:22,161 [DEBUG][       Thread-613312][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:15:22,161 [DEBUG][       Thread-613312][   transport.py][1871] : client lang: <none>
2025-07-01 18:15:22,161 [DEBUG][       Thread-613312][   transport.py][1871] : server lang: <none>
2025-07-01 18:15:22,161 [DEBUG][       Thread-613312][   transport.py][1871] : kex follows: False
2025-07-01 18:15:22,161 [DEBUG][       Thread-613312][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:15:22,161 [DEBUG][       Thread-613312][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:15:22,161 [DEBUG][       Thread-613312][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:15:22,161 [DEBUG][       Thread-613312][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:15:22,161 [DEBUG][       Thread-613312][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:15:22,161 [DEBUG][       Thread-613312][   transport.py][1871] : Compression: none
2025-07-01 18:15:22,161 [DEBUG][       Thread-613312][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:15:22,181 [DEBUG][       Thread-613312][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:15:22,182 [DEBUG][       Thread-613312][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:15:22,182 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:15:22,182 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:15:22,183 [DEBUG][       Thread-613312][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:15:22,183 [DEBUG][       Thread-613312][   transport.py][1871] : userauth is OK
2025-07-01 18:15:22,207 [ INFO][       Thread-613312][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:15:22,208 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:15:23,213 [DEBUG][       Thread-613312][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:15:23,213 [DEBUG][       Thread-613312][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:15:23,257 [DEBUG][       Thread-613312][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:15:23,257 [DEBUG][       Thread-613312][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:15:23,260 [DEBUG][       Thread-613312][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:15:23,274 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:15:23,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:15:23,276 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:15:23,278 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:15:23,284 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:15:23,286 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:15:23,286 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:15:23,287 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:15:23,287 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.676672 -999.00  +11.80  28.33     56   +3.40 1 2 1 1 1   112    0 7.61 -34.48 ----- 30.6 28.3 0.8 36.4 12.5 -17.2 12.3 -17.4 12.1 -16.1 12.5 -15.9
2025-07-01 18:15:23,287 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:15:23,287 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:15:23,287 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.676672
2025-07-01 18:15:23,288 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:15:23,288 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:15:23,288 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:15:23,288 [DEBUG][       Thread-613312][   transport.py][1871] : EOF in transport thread
2025-07-01 18:15:23,289 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:15:23,289 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:15:23,289 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:15:15', tmtdew=9.53, humidity=52.09, cloud=0.0, wind=31.49, temperature=11.91, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:14:24.461', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:15:23,372 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:15:23,385 [DEBUG][       Thread-613315][   transport.py][1871] : starting thread (client mode): 0x83939d0
2025-07-01 18:15:23,385 [DEBUG][       Thread-613315][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:15:23,403 [DEBUG][       Thread-613315][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:15:23,403 [ INFO][       Thread-613315][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:15:23,412 [DEBUG][       Thread-613315][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:15:23,412 [DEBUG][       Thread-613315][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:15:23,413 [DEBUG][       Thread-613315][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:15:23,413 [DEBUG][       Thread-613315][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:15:23,413 [DEBUG][       Thread-613315][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:15:23,413 [DEBUG][       Thread-613315][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:15:23,413 [DEBUG][       Thread-613315][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:15:23,413 [DEBUG][       Thread-613315][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:15:23,413 [DEBUG][       Thread-613315][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:15:23,413 [DEBUG][       Thread-613315][   transport.py][1871] : client lang: <none>
2025-07-01 18:15:23,413 [DEBUG][       Thread-613315][   transport.py][1871] : server lang: <none>
2025-07-01 18:15:23,413 [DEBUG][       Thread-613315][   transport.py][1871] : kex follows: False
2025-07-01 18:15:23,413 [DEBUG][       Thread-613315][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:15:23,413 [DEBUG][       Thread-613315][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:15:23,413 [DEBUG][       Thread-613315][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:15:23,413 [DEBUG][       Thread-613315][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:15:23,413 [DEBUG][       Thread-613315][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:15:23,413 [DEBUG][       Thread-613315][   transport.py][1871] : Compression: none
2025-07-01 18:15:23,414 [DEBUG][       Thread-613315][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:15:23,472 [DEBUG][       Thread-613315][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:15:23,472 [DEBUG][       Thread-613315][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:15:23,473 [DEBUG][       Thread-613315][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:15:23,473 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:15:23,474 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:15:23,528 [DEBUG][       Thread-613315][   transport.py][1871] : userauth is OK
2025-07-01 18:15:23,528 [DEBUG][       Thread-613315][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:15:23,528 [DEBUG][       Thread-613315][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:15:23,529 [DEBUG][       Thread-613315][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:15:23,529 [DEBUG][       Thread-613315][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:15:23,547 [ INFO][       Thread-613315][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:15:23,548 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:15:23,548 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:15:24,555 [DEBUG][       Thread-613315][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:15:24,555 [DEBUG][       Thread-613315][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:15:24,604 [DEBUG][       Thread-613315][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:15:24,604 [DEBUG][       Thread-613315][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:15:24,614 [DEBUG][       Thread-613315][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:15:24,624 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:15: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')
2025-07-01 18:15:24,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-07-01 18:15:24,644 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:15:24,644 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:15:24,644 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:15:24,652 [DEBUG][       Thread-613315][   transport.py][1871] : EOF in transport thread
2025-07-01 18:15:26,216 [DEBUG][Thread-613317 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:15:34,655 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:15:34,655 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:15:34,655 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:15:34,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-07-01 18:15:35,141 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 15, 15), 9.53, 52.09, 0.0, 31.49, 11.91, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:15:35,141 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:15:15
2025-07-01 18:15:35,227 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:15:35,234 [DEBUG][       Thread-613318][   transport.py][1871] : starting thread (client mode): 0x8170c10
2025-07-01 18:15:35,234 [DEBUG][       Thread-613318][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:15:35,247 [DEBUG][Thread-613319 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:15:35,255 [DEBUG][       Thread-613318][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:15:35,255 [ INFO][       Thread-613318][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:15:35,259 [DEBUG][       Thread-613318][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:15:35,259 [DEBUG][       Thread-613318][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:15:35,259 [DEBUG][       Thread-613318][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:15:35,259 [DEBUG][       Thread-613318][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:15:35,259 [DEBUG][       Thread-613318][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:15:35,259 [DEBUG][       Thread-613318][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:15:35,259 [DEBUG][       Thread-613318][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:15:35,259 [DEBUG][       Thread-613318][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:15:35,259 [DEBUG][       Thread-613318][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:15:35,259 [DEBUG][       Thread-613318][   transport.py][1871] : client lang: <none>
2025-07-01 18:15:35,259 [DEBUG][       Thread-613318][   transport.py][1871] : server lang: <none>
2025-07-01 18:15:35,259 [DEBUG][       Thread-613318][   transport.py][1871] : kex follows: False
2025-07-01 18:15:35,259 [DEBUG][       Thread-613318][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:15:35,259 [DEBUG][       Thread-613318][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:15:35,260 [DEBUG][       Thread-613318][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:15:35,260 [DEBUG][       Thread-613318][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:15:35,260 [DEBUG][       Thread-613318][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:15:35,260 [DEBUG][       Thread-613318][   transport.py][1871] : Compression: none
2025-07-01 18:15:35,260 [DEBUG][       Thread-613318][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:15:35,277 [DEBUG][       Thread-613318][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:15:35,277 [DEBUG][       Thread-613318][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:15:35,278 [DEBUG][       Thread-613318][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:15:35,278 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:15:35,278 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:15:35,279 [DEBUG][       Thread-613318][   transport.py][1871] : userauth is OK
2025-07-01 18:15:35,292 [ INFO][       Thread-613318][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:15:35,292 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:15:35,861 [DEBUG][       Thread-613318][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:15:35,861 [DEBUG][       Thread-613318][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:15:35,905 [DEBUG][       Thread-613318][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:15:35,905 [DEBUG][       Thread-613318][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:15:35,908 [DEBUG][       Thread-613318][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:15:35,913 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:15:35,913 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:15:35,915 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:15:35,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:15:35,921 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:15:35,923 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:15:35,923 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:15:35,924 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:15:35,924 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.677366 -999.00  +11.80  31.23     56   +3.40 1 2 2 1 1    95    0 7.49 -33.52 ----- 34.1 31.2 15.7 39.2 12.5 -17.1 12.4 -17.2 12.1 -16.0 12.5 -15.9
2025-07-01 18:15:35,924 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:15:35,924 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:15:35,924 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.677366
2025-07-01 18:15:35,925 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:15:35,925 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:15:35,925 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:15:35,925 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:15:35,925 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:15:35,925 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:15:15', tmtdew=9.53, humidity=52.09, cloud=0.0, wind=31.49, temperature=11.91, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:15:24.422', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:15:35,926 [DEBUG][       Thread-613318][   transport.py][1871] : EOF in transport thread
2025-07-01 18:15:36,008 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:15:36,018 [DEBUG][       Thread-613322][   transport.py][1871] : starting thread (client mode): 0x81ca890
2025-07-01 18:15:36,018 [DEBUG][       Thread-613322][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:15:36,034 [DEBUG][       Thread-613322][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:15:36,034 [ INFO][       Thread-613322][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:15:36,041 [DEBUG][       Thread-613322][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:15:36,041 [DEBUG][       Thread-613322][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:15:36,041 [DEBUG][       Thread-613322][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:15:36,042 [DEBUG][       Thread-613322][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:15:36,042 [DEBUG][       Thread-613322][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:15:36,042 [DEBUG][       Thread-613322][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:15:36,042 [DEBUG][       Thread-613322][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:15:36,042 [DEBUG][       Thread-613322][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:15:36,042 [DEBUG][       Thread-613322][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:15:36,042 [DEBUG][       Thread-613322][   transport.py][1871] : client lang: <none>
2025-07-01 18:15:36,042 [DEBUG][       Thread-613322][   transport.py][1871] : server lang: <none>
2025-07-01 18:15:36,042 [DEBUG][       Thread-613322][   transport.py][1871] : kex follows: False
2025-07-01 18:15:36,042 [DEBUG][       Thread-613322][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:15:36,042 [DEBUG][       Thread-613322][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:15:36,042 [DEBUG][       Thread-613322][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:15:36,042 [DEBUG][       Thread-613322][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:15:36,042 [DEBUG][       Thread-613322][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:15:36,042 [DEBUG][       Thread-613322][   transport.py][1871] : Compression: none
2025-07-01 18:15:36,042 [DEBUG][       Thread-613322][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:15:36,100 [DEBUG][       Thread-613322][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:15:36,101 [DEBUG][       Thread-613322][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:15:36,101 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:15:36,102 [DEBUG][       Thread-613322][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:15:36,103 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:15:36,156 [DEBUG][       Thread-613322][   transport.py][1871] : userauth is OK
2025-07-01 18:15:36,156 [DEBUG][       Thread-613322][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:15:36,157 [DEBUG][       Thread-613322][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:15:36,157 [DEBUG][       Thread-613322][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:15:36,157 [DEBUG][       Thread-613322][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:15:36,175 [ INFO][       Thread-613322][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:15:36,176 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:15:36,176 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:15:37,249 [DEBUG][       Thread-613322][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:15:37,249 [DEBUG][       Thread-613322][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:15:37,301 [DEBUG][       Thread-613322][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:15:37,301 [DEBUG][       Thread-613322][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:15:37,310 [DEBUG][       Thread-613322][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:15:37,319 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:15:37,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-07-01 18:15:37,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-07-01 18:15:37,339 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:15:37,339 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:15:37,339 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:15:37,347 [DEBUG][       Thread-613322][   transport.py][1871] : EOF in transport thread
2025-07-01 18:15:42,775 [DEBUG][Thread-613324 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:15:44,267 [DEBUG][Thread-613325 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:15:47,348 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:15:47,348 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:15:47,348 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:15:47,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-07-01 18:15:47,860 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 15, 15), 9.53, 52.09, 0.0, 31.49, 11.91, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:15:47,860 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:15:15
2025-07-01 18:15:47,951 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:15:47,955 [DEBUG][       Thread-613326][   transport.py][1871] : starting thread (client mode): 0x81cb040
2025-07-01 18:15:47,955 [DEBUG][       Thread-613326][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:15:47,975 [DEBUG][       Thread-613326][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:15:47,975 [ INFO][       Thread-613326][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:15:47,979 [DEBUG][       Thread-613326][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:15:47,979 [DEBUG][       Thread-613326][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:15:47,979 [DEBUG][       Thread-613326][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:15:47,979 [DEBUG][       Thread-613326][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:15:47,979 [DEBUG][       Thread-613326][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:15:47,979 [DEBUG][       Thread-613326][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:15:47,979 [DEBUG][       Thread-613326][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:15:47,979 [DEBUG][       Thread-613326][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:15:47,979 [DEBUG][       Thread-613326][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:15:47,979 [DEBUG][       Thread-613326][   transport.py][1871] : client lang: <none>
2025-07-01 18:15:47,979 [DEBUG][       Thread-613326][   transport.py][1871] : server lang: <none>
2025-07-01 18:15:47,979 [DEBUG][       Thread-613326][   transport.py][1871] : kex follows: False
2025-07-01 18:15:47,979 [DEBUG][       Thread-613326][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:15:47,979 [DEBUG][       Thread-613326][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:15:47,979 [DEBUG][       Thread-613326][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:15:47,979 [DEBUG][       Thread-613326][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:15:47,979 [DEBUG][       Thread-613326][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:15:47,979 [DEBUG][       Thread-613326][   transport.py][1871] : Compression: none
2025-07-01 18:15:47,979 [DEBUG][       Thread-613326][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:15:47,985 [DEBUG][       Thread-613326][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:15:47,986 [DEBUG][       Thread-613326][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:15:47,986 [DEBUG][       Thread-613326][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:15:47,986 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:15:47,986 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:15:47,986 [DEBUG][       Thread-613326][   transport.py][1871] : userauth is OK
2025-07-01 18:15:47,999 [ INFO][       Thread-613326][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:15:47,999 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:15:48,747 [DEBUG][       Thread-613326][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:15:48,747 [DEBUG][       Thread-613326][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:15:48,788 [DEBUG][       Thread-613326][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:15:48,788 [DEBUG][       Thread-613326][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:15:48,791 [DEBUG][       Thread-613326][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:15:48,805 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:15:48,805 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:15:48,806 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:15:48,807 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:15:48,810 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:15:48,811 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:15:48,811 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:15:48,811 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:15:48,811 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.677366 -999.00  +11.80  31.23     56   +3.40 1 2 2 1 1    95    0 7.49 -33.52 ----- 34.1 31.2 15.7 39.2 12.5 -17.1 12.4 -17.2 12.1 -16.0 12.5 -15.9
2025-07-01 18:15:48,811 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:15:48,811 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:15:48,811 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.677366
2025-07-01 18:15:48,811 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:15:48,812 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:15:48,812 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:15:48,812 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:15:48,812 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:15:48,812 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:15:15', tmtdew=9.53, humidity=52.09, cloud=0.0, wind=31.49, temperature=11.91, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:15:24.422', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:15:48,812 [DEBUG][       Thread-613326][   transport.py][1871] : EOF in transport thread
2025-07-01 18:15:48,886 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:15:48,900 [DEBUG][       Thread-613329][   transport.py][1871] : starting thread (client mode): 0x8393a60
2025-07-01 18:15:48,900 [DEBUG][       Thread-613329][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:15:48,915 [DEBUG][       Thread-613329][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:15:48,915 [ INFO][       Thread-613329][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:15:48,928 [DEBUG][       Thread-613329][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:15:48,929 [DEBUG][       Thread-613329][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:15:48,929 [DEBUG][       Thread-613329][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:15:48,929 [DEBUG][       Thread-613329][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:15:48,929 [DEBUG][       Thread-613329][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:15:48,929 [DEBUG][       Thread-613329][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:15:48,929 [DEBUG][       Thread-613329][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:15:48,929 [DEBUG][       Thread-613329][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:15:48,929 [DEBUG][       Thread-613329][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:15:48,929 [DEBUG][       Thread-613329][   transport.py][1871] : client lang: <none>
2025-07-01 18:15:48,929 [DEBUG][       Thread-613329][   transport.py][1871] : server lang: <none>
2025-07-01 18:15:48,929 [DEBUG][       Thread-613329][   transport.py][1871] : kex follows: False
2025-07-01 18:15:48,929 [DEBUG][       Thread-613329][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:15:48,929 [DEBUG][       Thread-613329][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:15:48,929 [DEBUG][       Thread-613329][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:15:48,929 [DEBUG][       Thread-613329][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:15:48,930 [DEBUG][       Thread-613329][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:15:48,930 [DEBUG][       Thread-613329][   transport.py][1871] : Compression: none
2025-07-01 18:15:48,930 [DEBUG][       Thread-613329][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:15:48,994 [DEBUG][       Thread-613329][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:15:48,995 [DEBUG][       Thread-613329][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:15:48,995 [DEBUG][       Thread-613329][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:15:48,996 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:15:48,997 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:15:49,052 [DEBUG][       Thread-613329][   transport.py][1871] : userauth is OK
2025-07-01 18:15:49,053 [DEBUG][       Thread-613329][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:15:49,053 [DEBUG][       Thread-613329][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:15:49,053 [DEBUG][       Thread-613329][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:15:49,053 [DEBUG][       Thread-613329][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:15:49,085 [ INFO][       Thread-613329][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:15:49,086 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:15:49,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:15:50,133 [DEBUG][       Thread-613329][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:15:50,134 [DEBUG][       Thread-613329][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:15:50,184 [DEBUG][       Thread-613329][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:15:50,184 [DEBUG][       Thread-613329][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:15:50,194 [DEBUG][       Thread-613329][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:15:50,203 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:15:50,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-07-01 18:15:50,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-07-01 18:15:50,222 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:15:50,222 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:15:50,223 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:15:50,231 [DEBUG][       Thread-613329][   transport.py][1871] : EOF in transport thread
2025-07-01 18:15:53,288 [DEBUG][Thread-613331 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:16:00,233 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:16:00,234 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:16:00,234 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:16:00,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-07-01 18:16:00,725 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 15, 47), 9.52, 52.11, 0.0, 33.05, 11.88, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:16:00,726 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:15:47
2025-07-01 18:16:00,812 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:16:00,818 [DEBUG][       Thread-613332][   transport.py][1871] : starting thread (client mode): 0x81c8a30
2025-07-01 18:16:00,818 [DEBUG][       Thread-613332][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:16:00,835 [DEBUG][       Thread-613332][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:16:00,835 [ INFO][       Thread-613332][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:16:00,838 [DEBUG][       Thread-613332][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:16:00,838 [DEBUG][       Thread-613332][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:16:00,838 [DEBUG][       Thread-613332][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:16:00,838 [DEBUG][       Thread-613332][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:16:00,838 [DEBUG][       Thread-613332][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:16:00,838 [DEBUG][       Thread-613332][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:16:00,838 [DEBUG][       Thread-613332][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:16:00,838 [DEBUG][       Thread-613332][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:16:00,838 [DEBUG][       Thread-613332][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:16:00,839 [DEBUG][       Thread-613332][   transport.py][1871] : client lang: <none>
2025-07-01 18:16:00,839 [DEBUG][       Thread-613332][   transport.py][1871] : server lang: <none>
2025-07-01 18:16:00,839 [DEBUG][       Thread-613332][   transport.py][1871] : kex follows: False
2025-07-01 18:16:00,839 [DEBUG][       Thread-613332][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:16:00,839 [DEBUG][       Thread-613332][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:16:00,839 [DEBUG][       Thread-613332][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:16:00,839 [DEBUG][       Thread-613332][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:16:00,839 [DEBUG][       Thread-613332][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:16:00,839 [DEBUG][       Thread-613332][   transport.py][1871] : Compression: none
2025-07-01 18:16:00,839 [DEBUG][       Thread-613332][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:16:00,855 [DEBUG][       Thread-613332][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:16:00,855 [DEBUG][       Thread-613332][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:16:00,856 [DEBUG][       Thread-613332][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:16:00,856 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:16:00,856 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:16:00,857 [DEBUG][       Thread-613332][   transport.py][1871] : userauth is OK
2025-07-01 18:16:00,870 [ INFO][       Thread-613332][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:16:00,870 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:16:01,600 [DEBUG][       Thread-613332][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:16:01,600 [DEBUG][       Thread-613332][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:16:01,649 [DEBUG][       Thread-613332][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:16:01,649 [DEBUG][       Thread-613332][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:16:01,652 [DEBUG][       Thread-613332][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:16:01,663 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:16:01,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:16:01,665 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:16:01,667 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:16:01,671 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:16:01,673 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:16:01,673 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:16:01,674 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:16:01,674 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.677366 -999.00  +11.80  31.23     56   +3.40 1 2 2 1 1    95    0 7.49 -33.52 ----- 34.1 31.2 15.7 39.2 12.5 -17.1 12.4 -17.2 12.1 -16.0 12.5 -15.9
2025-07-01 18:16:01,674 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:16:01,674 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:16:01,674 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.677366
2025-07-01 18:16:01,675 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:16:01,675 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:16:01,675 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:16:01,675 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:16:01,675 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:16:01,676 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:15:47', tmtdew=9.52, humidity=52.11, cloud=0.0, wind=33.05, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:15:24.422', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:16:01,676 [DEBUG][       Thread-613332][   transport.py][1871] : EOF in transport thread
2025-07-01 18:16:01,768 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:16:01,782 [DEBUG][       Thread-613335][   transport.py][1871] : starting thread (client mode): 0x83c8880
2025-07-01 18:16:01,782 [DEBUG][       Thread-613335][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:16:01,798 [DEBUG][       Thread-613335][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:16:01,798 [ INFO][       Thread-613335][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:16:01,811 [DEBUG][       Thread-613335][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:16:01,812 [DEBUG][       Thread-613335][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:16:01,812 [DEBUG][       Thread-613335][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:16:01,812 [DEBUG][       Thread-613335][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:16:01,812 [DEBUG][       Thread-613335][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:16:01,812 [DEBUG][       Thread-613335][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:16:01,812 [DEBUG][       Thread-613335][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:16:01,812 [DEBUG][       Thread-613335][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:16:01,812 [DEBUG][       Thread-613335][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:16:01,812 [DEBUG][       Thread-613335][   transport.py][1871] : client lang: <none>
2025-07-01 18:16:01,812 [DEBUG][       Thread-613335][   transport.py][1871] : server lang: <none>
2025-07-01 18:16:01,812 [DEBUG][       Thread-613335][   transport.py][1871] : kex follows: False
2025-07-01 18:16:01,812 [DEBUG][       Thread-613335][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:16:01,812 [DEBUG][       Thread-613335][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:16:01,812 [DEBUG][       Thread-613335][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:16:01,812 [DEBUG][       Thread-613335][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:16:01,813 [DEBUG][       Thread-613335][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:16:01,813 [DEBUG][       Thread-613335][   transport.py][1871] : Compression: none
2025-07-01 18:16:01,813 [DEBUG][       Thread-613335][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:16:01,870 [DEBUG][       Thread-613335][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:16:01,870 [DEBUG][       Thread-613335][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:16:01,870 [DEBUG][       Thread-613335][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:16:01,870 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:16:01,871 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:16:01,932 [DEBUG][       Thread-613335][   transport.py][1871] : userauth is OK
2025-07-01 18:16:01,932 [DEBUG][       Thread-613335][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:16:01,932 [DEBUG][       Thread-613335][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:16:01,932 [DEBUG][       Thread-613335][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:16:01,932 [DEBUG][       Thread-613335][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:16:01,951 [ INFO][       Thread-613335][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:16:01,951 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:16:01,951 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:16:02,311 [DEBUG][Thread-613337 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:16:03,006 [DEBUG][       Thread-613335][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:16:03,006 [DEBUG][       Thread-613335][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:16:03,057 [DEBUG][       Thread-613335][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:16:03,057 [DEBUG][       Thread-613335][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:16:03,067 [DEBUG][       Thread-613335][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:16:03,075 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:16:03,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')
2025-07-01 18:16:03,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-07-01 18:16:03,097 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:16:03,097 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:16:03,097 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:16:03,106 [DEBUG][       Thread-613335][   transport.py][1871] : EOF in transport thread
2025-07-01 18:16:11,345 [DEBUG][Thread-613338 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:16:13,108 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:16:13,108 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:16:13,108 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:16:13,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-07-01 18:16:13,597 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 15, 47), 9.52, 52.11, 0.0, 33.05, 11.88, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:16:13,597 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:15:47
2025-07-01 18:16:13,682 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:16:13,686 [DEBUG][       Thread-613339][   transport.py][1871] : starting thread (client mode): 0x81cbe80
2025-07-01 18:16:13,687 [DEBUG][       Thread-613339][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:16:13,707 [DEBUG][       Thread-613339][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:16:13,707 [ INFO][       Thread-613339][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:16:13,711 [DEBUG][       Thread-613339][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:16:13,711 [DEBUG][       Thread-613339][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:16:13,711 [DEBUG][       Thread-613339][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:16:13,711 [DEBUG][       Thread-613339][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:16:13,711 [DEBUG][       Thread-613339][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:16:13,711 [DEBUG][       Thread-613339][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:16:13,711 [DEBUG][       Thread-613339][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:16:13,711 [DEBUG][       Thread-613339][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:16:13,711 [DEBUG][       Thread-613339][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:16:13,711 [DEBUG][       Thread-613339][   transport.py][1871] : client lang: <none>
2025-07-01 18:16:13,711 [DEBUG][       Thread-613339][   transport.py][1871] : server lang: <none>
2025-07-01 18:16:13,711 [DEBUG][       Thread-613339][   transport.py][1871] : kex follows: False
2025-07-01 18:16:13,711 [DEBUG][       Thread-613339][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:16:13,711 [DEBUG][       Thread-613339][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:16:13,711 [DEBUG][       Thread-613339][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:16:13,711 [DEBUG][       Thread-613339][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:16:13,711 [DEBUG][       Thread-613339][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:16:13,711 [DEBUG][       Thread-613339][   transport.py][1871] : Compression: none
2025-07-01 18:16:13,711 [DEBUG][       Thread-613339][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:16:13,731 [DEBUG][       Thread-613339][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:16:13,731 [DEBUG][       Thread-613339][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:16:13,732 [DEBUG][       Thread-613339][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:16:13,732 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:16:13,732 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:16:13,733 [DEBUG][       Thread-613339][   transport.py][1871] : userauth is OK
2025-07-01 18:16:13,746 [ INFO][       Thread-613339][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:16:13,747 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:16:14,411 [DEBUG][       Thread-613339][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:16:14,411 [DEBUG][       Thread-613339][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:16:14,453 [DEBUG][       Thread-613339][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:16:14,453 [DEBUG][       Thread-613339][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:16:14,457 [DEBUG][       Thread-613339][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:16:14,469 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:16:14,469 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:16:14,471 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:16:14,473 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:16:14,479 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:16:14,481 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:16:14,481 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:16:14,481 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:16:14,482 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.677714 -999.00  +11.90  26.32     56   +3.40 1 2 1 1 1    87    0 7.67 -33.40 ----- 29.9 26.3 25.2 37.7 12.5 -16.9 12.3 -16.9 12.2 -16.0 12.5 -15.9
2025-07-01 18:16:14,482 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:16:14,482 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:16:14,482 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.677714
2025-07-01 18:16:14,482 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:16:14,483 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:16:14,483 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:16:14,483 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:16:14,483 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:16:14,483 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:15:47', tmtdew=9.52, humidity=52.11, cloud=0.0, wind=33.05, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:15:54.490', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:16:14,483 [DEBUG][       Thread-613339][   transport.py][1871] : EOF in transport thread
2025-07-01 18:16:14,567 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:16:14,578 [DEBUG][       Thread-613342][   transport.py][1871] : starting thread (client mode): 0x83c8430
2025-07-01 18:16:14,578 [DEBUG][       Thread-613342][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:16:14,594 [DEBUG][       Thread-613342][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:16:14,594 [ INFO][       Thread-613342][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:16:14,601 [DEBUG][       Thread-613342][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:16:14,601 [DEBUG][       Thread-613342][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:16:14,601 [DEBUG][       Thread-613342][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:16:14,601 [DEBUG][       Thread-613342][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:16:14,601 [DEBUG][       Thread-613342][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:16:14,601 [DEBUG][       Thread-613342][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:16:14,601 [DEBUG][       Thread-613342][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:16:14,602 [DEBUG][       Thread-613342][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:16:14,602 [DEBUG][       Thread-613342][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:16:14,602 [DEBUG][       Thread-613342][   transport.py][1871] : client lang: <none>
2025-07-01 18:16:14,602 [DEBUG][       Thread-613342][   transport.py][1871] : server lang: <none>
2025-07-01 18:16:14,602 [DEBUG][       Thread-613342][   transport.py][1871] : kex follows: False
2025-07-01 18:16:14,602 [DEBUG][       Thread-613342][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:16:14,602 [DEBUG][       Thread-613342][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:16:14,602 [DEBUG][       Thread-613342][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:16:14,602 [DEBUG][       Thread-613342][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:16:14,602 [DEBUG][       Thread-613342][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:16:14,602 [DEBUG][       Thread-613342][   transport.py][1871] : Compression: none
2025-07-01 18:16:14,602 [DEBUG][       Thread-613342][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:16:14,660 [DEBUG][       Thread-613342][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:16:14,660 [DEBUG][       Thread-613342][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:16:14,661 [DEBUG][       Thread-613342][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:16:14,661 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:16:14,662 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:16:14,716 [DEBUG][       Thread-613342][   transport.py][1871] : userauth is OK
2025-07-01 18:16:14,716 [DEBUG][       Thread-613342][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:16:14,716 [DEBUG][       Thread-613342][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:16:14,717 [DEBUG][       Thread-613342][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:16:14,717 [DEBUG][       Thread-613342][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:16:14,735 [ INFO][       Thread-613342][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:16:14,735 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:16:14,736 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:16:15,793 [DEBUG][       Thread-613342][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:16:15,793 [DEBUG][       Thread-613342][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:16:15,847 [DEBUG][       Thread-613342][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:16:15,847 [DEBUG][       Thread-613342][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:16:15,858 [DEBUG][       Thread-613342][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:16:15,869 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:16:15,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-07-01 18:16:15,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-07-01 18:16:15,891 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:16:15,891 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:16:15,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:16:15,899 [DEBUG][       Thread-613342][   transport.py][1871] : EOF in transport thread
2025-07-01 18:16:20,365 [DEBUG][Thread-613344 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:16:25,902 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:16:25,902 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:16:25,902 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:16:25,905 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 18:16:26,393 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 16, 18), 9.55, 52.12, 0.0, 31.05, 11.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:16:26,393 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:16:18
2025-07-01 18:16:26,480 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:16:26,487 [DEBUG][       Thread-613345][   transport.py][1871] : starting thread (client mode): 0x81cabf0
2025-07-01 18:16:26,487 [DEBUG][       Thread-613345][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:16:26,507 [DEBUG][       Thread-613345][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:16:26,507 [ INFO][       Thread-613345][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:16:26,510 [DEBUG][       Thread-613345][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:16:26,510 [DEBUG][       Thread-613345][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:16:26,510 [DEBUG][       Thread-613345][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:16:26,510 [DEBUG][       Thread-613345][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:16:26,510 [DEBUG][       Thread-613345][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:16:26,510 [DEBUG][       Thread-613345][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:16:26,510 [DEBUG][       Thread-613345][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:16:26,510 [DEBUG][       Thread-613345][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:16:26,510 [DEBUG][       Thread-613345][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:16:26,510 [DEBUG][       Thread-613345][   transport.py][1871] : client lang: <none>
2025-07-01 18:16:26,510 [DEBUG][       Thread-613345][   transport.py][1871] : server lang: <none>
2025-07-01 18:16:26,511 [DEBUG][       Thread-613345][   transport.py][1871] : kex follows: False
2025-07-01 18:16:26,511 [DEBUG][       Thread-613345][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:16:26,511 [DEBUG][       Thread-613345][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:16:26,511 [DEBUG][       Thread-613345][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:16:26,511 [DEBUG][       Thread-613345][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:16:26,511 [DEBUG][       Thread-613345][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:16:26,511 [DEBUG][       Thread-613345][   transport.py][1871] : Compression: none
2025-07-01 18:16:26,511 [DEBUG][       Thread-613345][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:16:26,532 [DEBUG][       Thread-613345][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:16:26,532 [DEBUG][       Thread-613345][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:16:26,533 [DEBUG][       Thread-613345][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:16:26,533 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:16:26,534 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:16:26,535 [DEBUG][       Thread-613345][   transport.py][1871] : userauth is OK
2025-07-01 18:16:26,559 [ INFO][       Thread-613345][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:16:26,560 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:16:27,385 [DEBUG][       Thread-613345][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:16:27,385 [DEBUG][       Thread-613345][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:16:27,429 [DEBUG][       Thread-613345][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:16:27,429 [DEBUG][       Thread-613345][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:16:27,432 [DEBUG][       Thread-613345][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:16:27,444 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:16:27,444 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:16:27,446 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:16:27,448 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:16:27,454 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:16:27,456 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:16:27,456 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:16:27,457 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:16:27,457 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.677714 -999.00  +11.90  26.32     56   +3.40 1 2 1 1 1    87    0 7.67 -33.40 ----- 29.9 26.3 25.2 37.7 12.5 -16.9 12.3 -16.9 12.2 -16.0 12.5 -15.9
2025-07-01 18:16:27,457 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:16:27,457 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:16:27,457 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.677714
2025-07-01 18:16:27,458 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:16:27,458 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:16:27,459 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:16:27,459 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:16:27,459 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:16:27,459 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:16:18', tmtdew=9.55, humidity=52.12, cloud=0.0, wind=31.05, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:15:54.490', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:16:27,459 [DEBUG][       Thread-613345][   transport.py][1871] : EOF in transport thread
2025-07-01 18:16:27,542 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:16:27,554 [DEBUG][       Thread-613348][   transport.py][1871] : starting thread (client mode): 0x83938e0
2025-07-01 18:16:27,554 [DEBUG][       Thread-613348][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:16:27,569 [DEBUG][       Thread-613348][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:16:27,569 [ INFO][       Thread-613348][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:16:27,576 [DEBUG][       Thread-613348][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:16:27,577 [DEBUG][       Thread-613348][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:16:27,577 [DEBUG][       Thread-613348][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:16:27,577 [DEBUG][       Thread-613348][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:16:27,577 [DEBUG][       Thread-613348][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:16:27,577 [DEBUG][       Thread-613348][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:16:27,577 [DEBUG][       Thread-613348][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:16:27,577 [DEBUG][       Thread-613348][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:16:27,577 [DEBUG][       Thread-613348][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:16:27,577 [DEBUG][       Thread-613348][   transport.py][1871] : client lang: <none>
2025-07-01 18:16:27,577 [DEBUG][       Thread-613348][   transport.py][1871] : server lang: <none>
2025-07-01 18:16:27,577 [DEBUG][       Thread-613348][   transport.py][1871] : kex follows: False
2025-07-01 18:16:27,577 [DEBUG][       Thread-613348][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:16:27,577 [DEBUG][       Thread-613348][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:16:27,577 [DEBUG][       Thread-613348][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:16:27,577 [DEBUG][       Thread-613348][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:16:27,577 [DEBUG][       Thread-613348][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:16:27,577 [DEBUG][       Thread-613348][   transport.py][1871] : Compression: none
2025-07-01 18:16:27,577 [DEBUG][       Thread-613348][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:16:27,636 [DEBUG][       Thread-613348][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:16:27,637 [DEBUG][       Thread-613348][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:16:27,637 [DEBUG][       Thread-613348][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:16:27,638 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:16:27,638 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:16:27,694 [DEBUG][       Thread-613348][   transport.py][1871] : userauth is OK
2025-07-01 18:16:27,695 [DEBUG][       Thread-613348][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:16:27,695 [DEBUG][       Thread-613348][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:16:27,695 [DEBUG][       Thread-613348][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:16:27,695 [DEBUG][       Thread-613348][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:16:27,716 [ INFO][       Thread-613348][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:16:27,717 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:16:27,717 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:16:28,739 [DEBUG][       Thread-613348][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:16:28,740 [DEBUG][       Thread-613348][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:16:28,788 [DEBUG][       Thread-613348][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:16:28,788 [DEBUG][       Thread-613348][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:16:28,797 [DEBUG][       Thread-613348][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:16:28,806 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:16:28,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')
2025-07-01 18:16:28,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-07-01 18:16:28,824 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:16:28,824 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:16:28,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:16:28,832 [DEBUG][       Thread-613348][   transport.py][1871] : EOF in transport thread
2025-07-01 18:16:29,385 [DEBUG][Thread-613350 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:16:38,430 [DEBUG][Thread-613351 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:16:38,835 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:16:38,835 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:16:38,836 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:16:38,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-07-01 18:16:39,323 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 16, 18), 9.55, 52.12, 0.0, 31.05, 11.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:16:39,323 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:16:18
2025-07-01 18:16:39,409 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:16:39,413 [DEBUG][       Thread-613352][   transport.py][1871] : starting thread (client mode): 0x81e52d0
2025-07-01 18:16:39,413 [DEBUG][       Thread-613352][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:16:39,433 [DEBUG][       Thread-613352][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:16:39,433 [ INFO][       Thread-613352][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:16:39,437 [DEBUG][       Thread-613352][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:16:39,437 [DEBUG][       Thread-613352][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:16:39,437 [DEBUG][       Thread-613352][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:16:39,437 [DEBUG][       Thread-613352][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:16:39,437 [DEBUG][       Thread-613352][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:16:39,437 [DEBUG][       Thread-613352][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:16:39,437 [DEBUG][       Thread-613352][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:16:39,437 [DEBUG][       Thread-613352][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:16:39,437 [DEBUG][       Thread-613352][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:16:39,437 [DEBUG][       Thread-613352][   transport.py][1871] : client lang: <none>
2025-07-01 18:16:39,437 [DEBUG][       Thread-613352][   transport.py][1871] : server lang: <none>
2025-07-01 18:16:39,437 [DEBUG][       Thread-613352][   transport.py][1871] : kex follows: False
2025-07-01 18:16:39,437 [DEBUG][       Thread-613352][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:16:39,437 [DEBUG][       Thread-613352][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:16:39,437 [DEBUG][       Thread-613352][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:16:39,437 [DEBUG][       Thread-613352][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:16:39,437 [DEBUG][       Thread-613352][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:16:39,437 [DEBUG][       Thread-613352][   transport.py][1871] : Compression: none
2025-07-01 18:16:39,438 [DEBUG][       Thread-613352][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:16:39,453 [DEBUG][       Thread-613352][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:16:39,453 [DEBUG][       Thread-613352][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:16:39,454 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:16:39,454 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:16:39,455 [DEBUG][       Thread-613352][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:16:39,455 [DEBUG][       Thread-613352][   transport.py][1871] : userauth is OK
2025-07-01 18:16:39,480 [ INFO][       Thread-613352][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:16:39,481 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:16:40,110 [DEBUG][       Thread-613352][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:16:40,110 [DEBUG][       Thread-613352][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:16:40,153 [DEBUG][       Thread-613352][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:16:40,153 [DEBUG][       Thread-613352][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:16:40,155 [DEBUG][       Thread-613352][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:16:40,168 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:16:40,168 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:16:40,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:16:40,172 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:16:40,177 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:16:40,179 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:16:40,179 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:16:40,180 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:16:40,180 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.678061 -999.00  +11.80  26.75     56   +3.40 1 2 1 1 1    79    0 7.86 -29.73 ----- 25.8 26.8 19.0 42.3 12.6 -17.0 12.4 -16.9 12.2 -16.0 12.5 -15.7
2025-07-01 18:16:40,180 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:16:40,180 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:16:40,180 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.678061
2025-07-01 18:16:40,180 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:16:40,181 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:16:40,181 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:16:40,181 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:16:40,181 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:16:40,181 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:16:18', tmtdew=9.55, humidity=52.12, cloud=0.0, wind=31.05, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:16:24.470', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:16:40,182 [DEBUG][       Thread-613352][   transport.py][1871] : EOF in transport thread
2025-07-01 18:16:40,269 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:16:40,279 [DEBUG][       Thread-613355][   transport.py][1871] : starting thread (client mode): 0x8170c70
2025-07-01 18:16:40,279 [DEBUG][       Thread-613355][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:16:40,294 [DEBUG][       Thread-613355][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:16:40,294 [ INFO][       Thread-613355][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:16:40,301 [DEBUG][       Thread-613355][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:16:40,301 [DEBUG][       Thread-613355][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:16:40,301 [DEBUG][       Thread-613355][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:16:40,301 [DEBUG][       Thread-613355][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:16:40,301 [DEBUG][       Thread-613355][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:16:40,301 [DEBUG][       Thread-613355][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:16:40,301 [DEBUG][       Thread-613355][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:16:40,301 [DEBUG][       Thread-613355][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:16:40,301 [DEBUG][       Thread-613355][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:16:40,301 [DEBUG][       Thread-613355][   transport.py][1871] : client lang: <none>
2025-07-01 18:16:40,301 [DEBUG][       Thread-613355][   transport.py][1871] : server lang: <none>
2025-07-01 18:16:40,301 [DEBUG][       Thread-613355][   transport.py][1871] : kex follows: False
2025-07-01 18:16:40,301 [DEBUG][       Thread-613355][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:16:40,301 [DEBUG][       Thread-613355][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:16:40,301 [DEBUG][       Thread-613355][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:16:40,301 [DEBUG][       Thread-613355][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:16:40,301 [DEBUG][       Thread-613355][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:16:40,301 [DEBUG][       Thread-613355][   transport.py][1871] : Compression: none
2025-07-01 18:16:40,301 [DEBUG][       Thread-613355][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:16:40,358 [DEBUG][       Thread-613355][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:16:40,358 [DEBUG][       Thread-613355][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:16:40,358 [DEBUG][       Thread-613355][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:16:40,359 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:16:40,359 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:16:40,416 [DEBUG][       Thread-613355][   transport.py][1871] : userauth is OK
2025-07-01 18:16:40,416 [DEBUG][       Thread-613355][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:16:40,416 [DEBUG][       Thread-613355][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:16:40,416 [DEBUG][       Thread-613355][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:16:40,416 [DEBUG][       Thread-613355][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:16:40,435 [ INFO][       Thread-613355][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:16:40,435 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:16:40,436 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:16:41,466 [DEBUG][       Thread-613355][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:16:41,466 [DEBUG][       Thread-613355][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:16:41,517 [DEBUG][       Thread-613355][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:16:41,517 [DEBUG][       Thread-613355][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:16:41,526 [DEBUG][       Thread-613355][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:16:41,534 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:16:41,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-07-01 18:16:41,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-07-01 18:16:41,551 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:16:41,552 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:16:41,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:16:41,560 [DEBUG][       Thread-613355][   transport.py][1871] : EOF in transport thread
2025-07-01 18:16:42,829 [DEBUG][Thread-613357 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:16:47,451 [DEBUG][Thread-613358 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:16:51,560 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:16:51,560 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:16:51,560 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:16:51,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-07-01 18:16:52,069 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 16, 18), 9.55, 52.12, 0.0, 31.05, 11.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:16:52,069 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:16:18
2025-07-01 18:16:52,161 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:16:52,168 [DEBUG][       Thread-613359][   transport.py][1871] : starting thread (client mode): 0x8170d00
2025-07-01 18:16:52,168 [DEBUG][       Thread-613359][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:16:52,189 [DEBUG][       Thread-613359][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:16:52,189 [ INFO][       Thread-613359][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:16:52,192 [DEBUG][       Thread-613359][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:16:52,192 [DEBUG][       Thread-613359][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:16:52,192 [DEBUG][       Thread-613359][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:16:52,192 [DEBUG][       Thread-613359][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:16:52,192 [DEBUG][       Thread-613359][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:16:52,192 [DEBUG][       Thread-613359][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:16:52,192 [DEBUG][       Thread-613359][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:16:52,192 [DEBUG][       Thread-613359][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:16:52,192 [DEBUG][       Thread-613359][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:16:52,192 [DEBUG][       Thread-613359][   transport.py][1871] : client lang: <none>
2025-07-01 18:16:52,192 [DEBUG][       Thread-613359][   transport.py][1871] : server lang: <none>
2025-07-01 18:16:52,192 [DEBUG][       Thread-613359][   transport.py][1871] : kex follows: False
2025-07-01 18:16:52,193 [DEBUG][       Thread-613359][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:16:52,193 [DEBUG][       Thread-613359][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:16:52,193 [DEBUG][       Thread-613359][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:16:52,193 [DEBUG][       Thread-613359][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:16:52,193 [DEBUG][       Thread-613359][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:16:52,193 [DEBUG][       Thread-613359][   transport.py][1871] : Compression: none
2025-07-01 18:16:52,193 [DEBUG][       Thread-613359][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:16:52,211 [DEBUG][       Thread-613359][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:16:52,211 [DEBUG][       Thread-613359][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:16:52,211 [DEBUG][       Thread-613359][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:16:52,211 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:16:52,211 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:16:52,212 [DEBUG][       Thread-613359][   transport.py][1871] : userauth is OK
2025-07-01 18:16:52,236 [ INFO][       Thread-613359][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:16:52,236 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:16:53,085 [DEBUG][       Thread-613359][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:16:53,085 [DEBUG][       Thread-613359][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:16:53,129 [DEBUG][       Thread-613359][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:16:53,129 [DEBUG][       Thread-613359][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:16:53,133 [DEBUG][       Thread-613359][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:16:53,145 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:16:53,145 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:16:53,147 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:16:53,149 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:16:53,155 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:16:53,157 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:16:53,158 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:16:53,158 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:16:53,158 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.678061 -999.00  +11.80  26.75     56   +3.40 1 2 1 1 1    79    0 7.86 -29.73 ----- 25.8 26.8 19.0 42.3 12.6 -17.0 12.4 -16.9 12.2 -16.0 12.5 -15.7
2025-07-01 18:16:53,158 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:16:53,159 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:16:53,159 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.678061
2025-07-01 18:16:53,159 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:16:53,160 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:16:53,160 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:16:53,160 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:16:53,160 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:16:53,160 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:16:18', tmtdew=9.55, humidity=52.12, cloud=0.0, wind=31.05, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:16:24.470', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:16:53,161 [DEBUG][       Thread-613359][   transport.py][1871] : EOF in transport thread
2025-07-01 18:16:53,243 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:16:53,254 [DEBUG][       Thread-613362][   transport.py][1871] : starting thread (client mode): 0x81e7820
2025-07-01 18:16:53,254 [DEBUG][       Thread-613362][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:16:53,270 [DEBUG][       Thread-613362][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:16:53,271 [ INFO][       Thread-613362][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:16:53,287 [DEBUG][       Thread-613362][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:16:53,287 [DEBUG][       Thread-613362][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:16:53,287 [DEBUG][       Thread-613362][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:16:53,287 [DEBUG][       Thread-613362][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:16:53,287 [DEBUG][       Thread-613362][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:16:53,287 [DEBUG][       Thread-613362][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:16:53,287 [DEBUG][       Thread-613362][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:16:53,287 [DEBUG][       Thread-613362][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:16:53,287 [DEBUG][       Thread-613362][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:16:53,287 [DEBUG][       Thread-613362][   transport.py][1871] : client lang: <none>
2025-07-01 18:16:53,287 [DEBUG][       Thread-613362][   transport.py][1871] : server lang: <none>
2025-07-01 18:16:53,288 [DEBUG][       Thread-613362][   transport.py][1871] : kex follows: False
2025-07-01 18:16:53,288 [DEBUG][       Thread-613362][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:16:53,288 [DEBUG][       Thread-613362][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:16:53,288 [DEBUG][       Thread-613362][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:16:53,288 [DEBUG][       Thread-613362][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:16:53,288 [DEBUG][       Thread-613362][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:16:53,288 [DEBUG][       Thread-613362][   transport.py][1871] : Compression: none
2025-07-01 18:16:53,288 [DEBUG][       Thread-613362][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:16:53,344 [DEBUG][       Thread-613362][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:16:53,344 [DEBUG][       Thread-613362][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:16:53,345 [DEBUG][       Thread-613362][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:16:53,345 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:16:53,346 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:16:53,400 [DEBUG][       Thread-613362][   transport.py][1871] : userauth is OK
2025-07-01 18:16:53,400 [DEBUG][       Thread-613362][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:16:53,401 [DEBUG][       Thread-613362][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:16:53,401 [DEBUG][       Thread-613362][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:16:53,401 [DEBUG][       Thread-613362][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:16:53,419 [ INFO][       Thread-613362][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:16:53,419 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:16:53,420 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:16:54,455 [DEBUG][       Thread-613362][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:16:54,455 [DEBUG][       Thread-613362][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:16:54,504 [DEBUG][       Thread-613362][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:16:54,504 [DEBUG][       Thread-613362][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:16:54,513 [DEBUG][       Thread-613362][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:16:54,522 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:16: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')
2025-07-01 18:16:54,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-07-01 18:16:54,541 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:16:54,541 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:16:54,541 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:16:54,549 [DEBUG][       Thread-613362][   transport.py][1871] : EOF in transport thread
2025-07-01 18:16:56,470 [DEBUG][Thread-613364 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:17:04,552 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:17:04,552 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:17:04,552 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:17:04,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-07-01 18:17:05,025 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 16, 50), 9.57, 52.04, 0.0, 29.62, 11.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:17:05,025 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:16:50
2025-07-01 18:17:05,109 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:17:05,112 [DEBUG][       Thread-613365][   transport.py][1871] : starting thread (client mode): 0x8106200
2025-07-01 18:17:05,113 [DEBUG][       Thread-613365][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:17:05,134 [DEBUG][       Thread-613365][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:17:05,134 [ INFO][       Thread-613365][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:17:05,136 [DEBUG][       Thread-613365][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:17:05,136 [DEBUG][       Thread-613365][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:17:05,136 [DEBUG][       Thread-613365][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:17:05,136 [DEBUG][       Thread-613365][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:17:05,136 [DEBUG][       Thread-613365][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:17:05,136 [DEBUG][       Thread-613365][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:17:05,137 [DEBUG][       Thread-613365][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:17:05,137 [DEBUG][       Thread-613365][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:17:05,137 [DEBUG][       Thread-613365][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:17:05,137 [DEBUG][       Thread-613365][   transport.py][1871] : client lang: <none>
2025-07-01 18:17:05,137 [DEBUG][       Thread-613365][   transport.py][1871] : server lang: <none>
2025-07-01 18:17:05,137 [DEBUG][       Thread-613365][   transport.py][1871] : kex follows: False
2025-07-01 18:17:05,137 [DEBUG][       Thread-613365][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:17:05,137 [DEBUG][       Thread-613365][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:17:05,137 [DEBUG][       Thread-613365][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:17:05,137 [DEBUG][       Thread-613365][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:17:05,137 [DEBUG][       Thread-613365][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:17:05,137 [DEBUG][       Thread-613365][   transport.py][1871] : Compression: none
2025-07-01 18:17:05,137 [DEBUG][       Thread-613365][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:17:05,149 [DEBUG][       Thread-613365][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:17:05,150 [DEBUG][       Thread-613365][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:17:05,150 [DEBUG][       Thread-613365][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:17:05,151 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:17:05,151 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:17:05,152 [DEBUG][       Thread-613365][   transport.py][1871] : userauth is OK
2025-07-01 18:17:05,176 [ INFO][       Thread-613365][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:17:05,176 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:17:05,493 [DEBUG][Thread-613367 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:17:05,969 [DEBUG][       Thread-613365][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:17:05,969 [DEBUG][       Thread-613365][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:17:06,013 [DEBUG][       Thread-613365][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:17:06,013 [DEBUG][       Thread-613365][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:17:06,016 [DEBUG][       Thread-613365][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:17:06,029 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:17:06,029 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:17:06,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:17:06,033 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:17:06,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:17:06,040 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:17:06,040 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:17:06,041 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:17:06,041 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.678061 -999.00  +11.80  26.75     56   +3.40 1 2 1 1 1    79    0 7.86 -29.73 ----- 25.8 26.8 19.0 42.3 12.6 -17.0 12.4 -16.9 12.2 -16.0 12.5 -15.7
2025-07-01 18:17:06,041 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:17:06,041 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:17:06,041 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.678061
2025-07-01 18:17:06,042 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:17:06,042 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:17:06,042 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:17:06,042 [DEBUG][       Thread-613365][   transport.py][1871] : EOF in transport thread
2025-07-01 18:17:06,042 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:17:06,043 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:17:06,043 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:16:50', tmtdew=9.57, humidity=52.04, cloud=0.0, wind=29.62, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:16:24.470', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:17:06,126 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:17:06,136 [DEBUG][       Thread-613369][   transport.py][1871] : starting thread (client mode): 0x8173430
2025-07-01 18:17:06,136 [DEBUG][       Thread-613369][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:17:06,153 [DEBUG][       Thread-613369][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:17:06,153 [ INFO][       Thread-613369][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:17:06,161 [DEBUG][       Thread-613369][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:17:06,161 [DEBUG][       Thread-613369][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:17:06,161 [DEBUG][       Thread-613369][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:17:06,161 [DEBUG][       Thread-613369][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:17:06,161 [DEBUG][       Thread-613369][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:17:06,161 [DEBUG][       Thread-613369][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:17:06,161 [DEBUG][       Thread-613369][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:17:06,161 [DEBUG][       Thread-613369][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:17:06,161 [DEBUG][       Thread-613369][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:17:06,161 [DEBUG][       Thread-613369][   transport.py][1871] : client lang: <none>
2025-07-01 18:17:06,161 [DEBUG][       Thread-613369][   transport.py][1871] : server lang: <none>
2025-07-01 18:17:06,161 [DEBUG][       Thread-613369][   transport.py][1871] : kex follows: False
2025-07-01 18:17:06,161 [DEBUG][       Thread-613369][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:17:06,161 [DEBUG][       Thread-613369][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:17:06,161 [DEBUG][       Thread-613369][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:17:06,162 [DEBUG][       Thread-613369][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:17:06,162 [DEBUG][       Thread-613369][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:17:06,162 [DEBUG][       Thread-613369][   transport.py][1871] : Compression: none
2025-07-01 18:17:06,162 [DEBUG][       Thread-613369][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:17:06,224 [DEBUG][       Thread-613369][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:17:06,225 [DEBUG][       Thread-613369][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:17:06,225 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:17:06,226 [DEBUG][       Thread-613369][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:17:06,227 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:17:06,280 [DEBUG][       Thread-613369][   transport.py][1871] : userauth is OK
2025-07-01 18:17:06,280 [DEBUG][       Thread-613369][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:17:06,281 [DEBUG][       Thread-613369][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:17:06,281 [DEBUG][       Thread-613369][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:17:06,281 [DEBUG][       Thread-613369][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:17:06,300 [ INFO][       Thread-613369][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:17:06,300 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:17:06,301 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:17:07,364 [DEBUG][       Thread-613369][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:17:07,364 [DEBUG][       Thread-613369][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:17:07,412 [DEBUG][       Thread-613369][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:17:07,412 [DEBUG][       Thread-613369][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:17:07,421 [DEBUG][       Thread-613369][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:17:07,430 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:17:07,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-07-01 18:17:07,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-07-01 18:17:07,448 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:17:07,448 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:17:07,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:17:07,457 [DEBUG][       Thread-613369][   transport.py][1871] : EOF in transport thread
2025-07-01 18:17:14,513 [DEBUG][Thread-613371 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:17:17,459 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:17:17,460 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:17:17,460 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:17:17,462 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 18:17:17,934 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 16, 50), 9.57, 52.04, 0.0, 29.62, 11.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:17:17,934 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:16:50
2025-07-01 18:17:18,019 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:17:18,023 [DEBUG][       Thread-613372][   transport.py][1871] : starting thread (client mode): 0x8105f00
2025-07-01 18:17:18,023 [DEBUG][       Thread-613372][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:17:18,043 [DEBUG][       Thread-613372][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:17:18,043 [ INFO][       Thread-613372][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:17:18,047 [DEBUG][       Thread-613372][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:17:18,047 [DEBUG][       Thread-613372][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:17:18,047 [DEBUG][       Thread-613372][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:17:18,047 [DEBUG][       Thread-613372][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:17:18,047 [DEBUG][       Thread-613372][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:17:18,047 [DEBUG][       Thread-613372][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:17:18,047 [DEBUG][       Thread-613372][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:17:18,047 [DEBUG][       Thread-613372][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:17:18,047 [DEBUG][       Thread-613372][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:17:18,047 [DEBUG][       Thread-613372][   transport.py][1871] : client lang: <none>
2025-07-01 18:17:18,047 [DEBUG][       Thread-613372][   transport.py][1871] : server lang: <none>
2025-07-01 18:17:18,047 [DEBUG][       Thread-613372][   transport.py][1871] : kex follows: False
2025-07-01 18:17:18,047 [DEBUG][       Thread-613372][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:17:18,047 [DEBUG][       Thread-613372][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:17:18,047 [DEBUG][       Thread-613372][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:17:18,047 [DEBUG][       Thread-613372][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:17:18,047 [DEBUG][       Thread-613372][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:17:18,047 [DEBUG][       Thread-613372][   transport.py][1871] : Compression: none
2025-07-01 18:17:18,047 [DEBUG][       Thread-613372][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:17:18,066 [DEBUG][       Thread-613372][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:17:18,066 [DEBUG][       Thread-613372][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:17:18,067 [DEBUG][       Thread-613372][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:17:18,067 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:17:18,067 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:17:18,068 [DEBUG][       Thread-613372][   transport.py][1871] : userauth is OK
2025-07-01 18:17:18,082 [ INFO][       Thread-613372][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:17:18,082 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:17:18,686 [DEBUG][       Thread-613372][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:17:18,687 [DEBUG][       Thread-613372][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:17:18,728 [DEBUG][       Thread-613372][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:17:18,729 [DEBUG][       Thread-613372][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:17:18,731 [DEBUG][       Thread-613372][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:17:18,743 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:17:18,744 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:17:18,745 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:17:18,747 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:17:18,751 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:17:18,752 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:17:18,752 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:17:18,753 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:17:18,753 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.678408 -999.00  +11.70  23.94     56   +3.40 1 2 1 1 1    72    0 8.06 -28.17 ----- 23.2 23.9 15.4 35.8 12.5 -16.9 12.3 -16.8 12.2 -15.9 12.4 -15.7
2025-07-01 18:17:18,753 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:17:18,753 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:17:18,753 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.678408
2025-07-01 18:17:18,754 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:17:18,754 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:17:18,754 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:17:18,754 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:17:18,755 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:17:18,755 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:16:50', tmtdew=9.57, humidity=52.04, cloud=0.0, wind=29.62, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:16:54.451', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:17:18,756 [DEBUG][       Thread-613372][   transport.py][1871] : EOF in transport thread
2025-07-01 18:17:18,838 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:17:18,849 [DEBUG][       Thread-613375][   transport.py][1871] : starting thread (client mode): 0x81566e0
2025-07-01 18:17:18,849 [DEBUG][       Thread-613375][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:17:18,864 [DEBUG][       Thread-613375][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:17:18,864 [ INFO][       Thread-613375][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:17:18,872 [DEBUG][       Thread-613375][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:17:18,872 [DEBUG][       Thread-613375][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:17:18,872 [DEBUG][       Thread-613375][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:17:18,872 [DEBUG][       Thread-613375][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:17:18,872 [DEBUG][       Thread-613375][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:17:18,872 [DEBUG][       Thread-613375][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:17:18,872 [DEBUG][       Thread-613375][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:17:18,872 [DEBUG][       Thread-613375][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:17:18,872 [DEBUG][       Thread-613375][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:17:18,872 [DEBUG][       Thread-613375][   transport.py][1871] : client lang: <none>
2025-07-01 18:17:18,872 [DEBUG][       Thread-613375][   transport.py][1871] : server lang: <none>
2025-07-01 18:17:18,872 [DEBUG][       Thread-613375][   transport.py][1871] : kex follows: False
2025-07-01 18:17:18,872 [DEBUG][       Thread-613375][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:17:18,872 [DEBUG][       Thread-613375][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:17:18,872 [DEBUG][       Thread-613375][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:17:18,873 [DEBUG][       Thread-613375][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:17:18,873 [DEBUG][       Thread-613375][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:17:18,873 [DEBUG][       Thread-613375][   transport.py][1871] : Compression: none
2025-07-01 18:17:18,873 [DEBUG][       Thread-613375][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:17:18,935 [DEBUG][       Thread-613375][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:17:18,935 [DEBUG][       Thread-613375][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:17:18,936 [DEBUG][       Thread-613375][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:17:18,936 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:17:18,937 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:17:18,996 [DEBUG][       Thread-613375][   transport.py][1871] : userauth is OK
2025-07-01 18:17:18,997 [DEBUG][       Thread-613375][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:17:18,997 [DEBUG][       Thread-613375][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:17:18,997 [DEBUG][       Thread-613375][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:17:18,997 [DEBUG][       Thread-613375][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:17:19,015 [ INFO][       Thread-613375][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:17:19,016 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:17:19,016 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:17:20,062 [DEBUG][       Thread-613375][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:17:20,062 [DEBUG][       Thread-613375][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:17:20,113 [DEBUG][       Thread-613375][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:17:20,113 [DEBUG][       Thread-613375][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:17:20,122 [DEBUG][       Thread-613375][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:17:20,133 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:17:20,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-07-01 18:17:20,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-07-01 18:17:20,154 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:17:20,154 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:17:20,155 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:17:20,163 [DEBUG][       Thread-613375][   transport.py][1871] : EOF in transport thread
2025-07-01 18:17:23,539 [DEBUG][Thread-613377 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:17:30,164 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:17:30,164 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:17:30,164 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:17:30,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-07-01 18:17:30,648 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 17, 22), 9.5, 52.18, 0.0, 30.52, 11.87, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:17:30,648 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:17:22
2025-07-01 18:17:30,736 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:17:30,742 [DEBUG][       Thread-613378][   transport.py][1871] : starting thread (client mode): 0x8105540
2025-07-01 18:17:30,742 [DEBUG][       Thread-613378][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:17:30,763 [DEBUG][       Thread-613378][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:17:30,763 [ INFO][       Thread-613378][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:17:30,766 [DEBUG][       Thread-613378][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:17:30,766 [DEBUG][       Thread-613378][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:17:30,766 [DEBUG][       Thread-613378][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:17:30,766 [DEBUG][       Thread-613378][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:17:30,766 [DEBUG][       Thread-613378][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:17:30,766 [DEBUG][       Thread-613378][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:17:30,766 [DEBUG][       Thread-613378][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:17:30,766 [DEBUG][       Thread-613378][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:17:30,766 [DEBUG][       Thread-613378][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:17:30,766 [DEBUG][       Thread-613378][   transport.py][1871] : client lang: <none>
2025-07-01 18:17:30,766 [DEBUG][       Thread-613378][   transport.py][1871] : server lang: <none>
2025-07-01 18:17:30,766 [DEBUG][       Thread-613378][   transport.py][1871] : kex follows: False
2025-07-01 18:17:30,766 [DEBUG][       Thread-613378][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:17:30,766 [DEBUG][       Thread-613378][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:17:30,766 [DEBUG][       Thread-613378][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:17:30,766 [DEBUG][       Thread-613378][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:17:30,766 [DEBUG][       Thread-613378][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:17:30,766 [DEBUG][       Thread-613378][   transport.py][1871] : Compression: none
2025-07-01 18:17:30,766 [DEBUG][       Thread-613378][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:17:30,785 [DEBUG][       Thread-613378][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:17:30,785 [DEBUG][       Thread-613378][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:17:30,785 [DEBUG][       Thread-613378][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:17:30,785 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:17:30,785 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:17:30,786 [DEBUG][       Thread-613378][   transport.py][1871] : userauth is OK
2025-07-01 18:17:30,810 [ INFO][       Thread-613378][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:17:30,810 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:17:31,663 [DEBUG][       Thread-613378][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:17:31,663 [DEBUG][       Thread-613378][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:17:31,705 [DEBUG][       Thread-613378][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:17:31,705 [DEBUG][       Thread-613378][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:17:31,707 [DEBUG][       Thread-613378][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:17:31,719 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:17:31,719 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:17:31,720 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:17:31,721 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:17:31,724 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:17:31,725 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:17:31,725 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:17:31,725 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:17:31,725 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.678408 -999.00  +11.70  23.94     56   +3.40 1 2 1 1 1    72    0 8.06 -28.17 ----- 23.2 23.9 15.4 35.8 12.5 -16.9 12.3 -16.8 12.2 -15.9 12.4 -15.7
2025-07-01 18:17:31,725 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:17:31,725 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:17:31,725 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.678408
2025-07-01 18:17:31,725 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:17:31,725 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:17:31,725 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:17:31,725 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:17:31,725 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:17:31,725 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:17:22', tmtdew=9.5, humidity=52.18, cloud=0.0, wind=30.52, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:16:54.451', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:17:31,726 [DEBUG][       Thread-613378][   transport.py][1871] : EOF in transport thread
2025-07-01 18:17:31,800 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:17:32,557 [DEBUG][Thread-613381 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:17:41,589 [DEBUG][Thread-613382 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:17:42,883 [DEBUG][Thread-613383 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:17:50,612 [DEBUG][Thread-613384 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:17:59,634 [DEBUG][Thread-613385 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:18:08,654 [DEBUG][Thread-613386 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:18:17,672 [DEBUG][Thread-613387 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:18:26,693 [DEBUG][Thread-613388 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:18:35,715 [DEBUG][Thread-613389 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:18:42,946 [DEBUG][Thread-613390 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:18:44,735 [DEBUG][Thread-613391 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:18:53,755 [DEBUG][Thread-613392 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:19:02,775 [DEBUG][Thread-613393 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:19:11,798 [DEBUG][Thread-613394 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:19:20,820 [DEBUG][Thread-613395 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:19:29,840 [DEBUG][Thread-613396 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:19:38,860 [DEBUG][Thread-613397 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:19:41,972 [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-07-01 18:19:42,999 [DEBUG][Thread-613398 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:19:47,883 [DEBUG][Thread-613399 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:19:51,982 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:19:51,983 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:19:51,983 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:19:51,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-07-01 18:19:52,495 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 19, 29), 9.54, 52.03, 0.0, 32.18, 11.91, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:19:52,495 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:19:29
2025-07-01 18:19:52,579 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:19:52,585 [DEBUG][       Thread-613400][   transport.py][1871] : starting thread (client mode): 0x81047f0
2025-07-01 18:19:52,585 [DEBUG][       Thread-613400][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:19:52,605 [DEBUG][       Thread-613400][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:19:52,605 [ INFO][       Thread-613400][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:19:52,608 [DEBUG][       Thread-613400][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:19:52,608 [DEBUG][       Thread-613400][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:19:52,608 [DEBUG][       Thread-613400][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:19:52,608 [DEBUG][       Thread-613400][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:19:52,608 [DEBUG][       Thread-613400][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:19:52,608 [DEBUG][       Thread-613400][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:19:52,608 [DEBUG][       Thread-613400][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:19:52,608 [DEBUG][       Thread-613400][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:19:52,608 [DEBUG][       Thread-613400][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:19:52,608 [DEBUG][       Thread-613400][   transport.py][1871] : client lang: <none>
2025-07-01 18:19:52,608 [DEBUG][       Thread-613400][   transport.py][1871] : server lang: <none>
2025-07-01 18:19:52,608 [DEBUG][       Thread-613400][   transport.py][1871] : kex follows: False
2025-07-01 18:19:52,608 [DEBUG][       Thread-613400][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:19:52,608 [DEBUG][       Thread-613400][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:19:52,609 [DEBUG][       Thread-613400][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:19:52,609 [DEBUG][       Thread-613400][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:19:52,609 [DEBUG][       Thread-613400][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:19:52,609 [DEBUG][       Thread-613400][   transport.py][1871] : Compression: none
2025-07-01 18:19:52,609 [DEBUG][       Thread-613400][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:19:52,627 [DEBUG][       Thread-613400][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:19:52,628 [DEBUG][       Thread-613400][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:19:52,628 [DEBUG][       Thread-613400][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:19:52,628 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:19:52,629 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:19:52,630 [DEBUG][       Thread-613400][   transport.py][1871] : userauth is OK
2025-07-01 18:19:52,655 [ INFO][       Thread-613400][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:19:52,655 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:19:53,258 [DEBUG][       Thread-613400][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:19:53,258 [DEBUG][       Thread-613400][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:19:53,304 [DEBUG][       Thread-613400][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:19:53,304 [DEBUG][       Thread-613400][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:19:53,307 [DEBUG][       Thread-613400][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:19:53,319 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:19:53,320 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:19:53,321 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:19:53,323 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:19:53,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:19:53,330 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:19:53,330 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:19:53,331 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:19:53,331 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.679797 -999.00  +11.70  17.75     56   +3.40 1 2 1 1 1    50    0 7.65 -33.07 ----- 25.8 17.8 344.3 33.8 12.4 -16.4 12.3 -16.2 12.1 -15.4 12.4 -15.3
2025-07-01 18:19:53,331 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:19:53,331 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:19:53,331 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.679797
2025-07-01 18:19:53,331 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:19:53,332 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:19:53,332 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:19:53,332 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:19:53,332 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:19:53,332 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:19:29', tmtdew=9.54, humidity=52.03, cloud=0.0, wind=32.18, temperature=11.91, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:18:54.461', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:19:53,333 [DEBUG][       Thread-613400][   transport.py][1871] : EOF in transport thread
2025-07-01 18:19:53,416 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:19:53,431 [DEBUG][       Thread-613403][   transport.py][1871] : starting thread (client mode): 0x83c8790
2025-07-01 18:19:53,431 [DEBUG][       Thread-613403][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:19:53,446 [DEBUG][       Thread-613403][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:19:53,446 [ INFO][       Thread-613403][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:19:53,454 [DEBUG][       Thread-613403][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:19:53,454 [DEBUG][       Thread-613403][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:19:53,454 [DEBUG][       Thread-613403][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:19:53,454 [DEBUG][       Thread-613403][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:19:53,454 [DEBUG][       Thread-613403][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:19:53,454 [DEBUG][       Thread-613403][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:19:53,454 [DEBUG][       Thread-613403][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:19:53,454 [DEBUG][       Thread-613403][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:19:53,454 [DEBUG][       Thread-613403][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:19:53,454 [DEBUG][       Thread-613403][   transport.py][1871] : client lang: <none>
2025-07-01 18:19:53,455 [DEBUG][       Thread-613403][   transport.py][1871] : server lang: <none>
2025-07-01 18:19:53,455 [DEBUG][       Thread-613403][   transport.py][1871] : kex follows: False
2025-07-01 18:19:53,455 [DEBUG][       Thread-613403][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:19:53,455 [DEBUG][       Thread-613403][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:19:53,455 [DEBUG][       Thread-613403][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:19:53,455 [DEBUG][       Thread-613403][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:19:53,455 [DEBUG][       Thread-613403][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:19:53,455 [DEBUG][       Thread-613403][   transport.py][1871] : Compression: none
2025-07-01 18:19:53,455 [DEBUG][       Thread-613403][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:19:53,513 [DEBUG][       Thread-613403][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:19:53,514 [DEBUG][       Thread-613403][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:19:53,514 [DEBUG][       Thread-613403][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:19:53,515 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:19:53,515 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:19:53,570 [DEBUG][       Thread-613403][   transport.py][1871] : userauth is OK
2025-07-01 18:19:53,570 [DEBUG][       Thread-613403][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:19:53,570 [DEBUG][       Thread-613403][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:19:53,570 [DEBUG][       Thread-613403][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:19:53,570 [DEBUG][       Thread-613403][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:19:53,588 [ INFO][       Thread-613403][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:19:53,588 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:19:53,588 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:19:54,608 [DEBUG][       Thread-613403][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:19:54,608 [DEBUG][       Thread-613403][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:19:54,656 [DEBUG][       Thread-613403][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:19:54,656 [DEBUG][       Thread-613403][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:19:54,665 [DEBUG][       Thread-613403][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:19:54,674 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:19:54,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-07-01 18:19:54,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-07-01 18:19:54,693 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:19:54,693 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:19:54,693 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:19:54,701 [DEBUG][       Thread-613403][   transport.py][1871] : EOF in transport thread
2025-07-01 18:19:56,905 [DEBUG][Thread-613405 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:20:04,704 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:20:04,704 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:20:04,704 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:20:04,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-07-01 18:20:05,206 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 20), 9.55, 52.0, 0.0, 30.31, 11.92, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:20:05,206 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:20:00
2025-07-01 18:20:05,290 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:20:05,294 [DEBUG][       Thread-613406][   transport.py][1871] : starting thread (client mode): 0x81c8df0
2025-07-01 18:20:05,294 [DEBUG][       Thread-613406][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:20:05,316 [DEBUG][       Thread-613406][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:20:05,316 [ INFO][       Thread-613406][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:20:05,319 [DEBUG][       Thread-613406][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:20:05,320 [DEBUG][       Thread-613406][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:20:05,320 [DEBUG][       Thread-613406][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:20:05,320 [DEBUG][       Thread-613406][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:20:05,320 [DEBUG][       Thread-613406][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:20:05,320 [DEBUG][       Thread-613406][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:20:05,320 [DEBUG][       Thread-613406][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:20:05,320 [DEBUG][       Thread-613406][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:20:05,320 [DEBUG][       Thread-613406][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:20:05,320 [DEBUG][       Thread-613406][   transport.py][1871] : client lang: <none>
2025-07-01 18:20:05,320 [DEBUG][       Thread-613406][   transport.py][1871] : server lang: <none>
2025-07-01 18:20:05,320 [DEBUG][       Thread-613406][   transport.py][1871] : kex follows: False
2025-07-01 18:20:05,320 [DEBUG][       Thread-613406][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:20:05,320 [DEBUG][       Thread-613406][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:20:05,320 [DEBUG][       Thread-613406][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:20:05,320 [DEBUG][       Thread-613406][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:20:05,320 [DEBUG][       Thread-613406][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:20:05,320 [DEBUG][       Thread-613406][   transport.py][1871] : Compression: none
2025-07-01 18:20:05,320 [DEBUG][       Thread-613406][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:20:05,337 [DEBUG][       Thread-613406][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:20:05,337 [DEBUG][       Thread-613406][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:20:05,338 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:20:05,338 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:20:05,338 [DEBUG][       Thread-613406][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:20:05,340 [DEBUG][       Thread-613406][   transport.py][1871] : userauth is OK
2025-07-01 18:20:05,364 [ INFO][       Thread-613406][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:20:05,365 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:20:05,947 [DEBUG][Thread-613408 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:20:06,014 [DEBUG][       Thread-613406][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:20:06,014 [DEBUG][       Thread-613406][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:20:06,057 [DEBUG][       Thread-613406][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:20:06,057 [DEBUG][       Thread-613406][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:20:06,060 [DEBUG][       Thread-613406][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:20:06,073 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:20:06,073 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:20:06,075 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:20:06,077 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:20:06,081 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:20:06,083 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:20:06,083 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:20:06,084 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:20:06,084 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.680144 -999.00  +11.70  23.45     56   +3.40 1 2 1 1 1    46    0 7.65 -36.54 ----- 21.8 23.4 21.2 38.8 12.5 -16.2 12.3 -16.3 12.1 -15.1 12.4 -15.2
2025-07-01 18:20:06,084 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:20:06,084 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:20:06,084 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.680144
2025-07-01 18:20:06,084 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:20:06,085 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:20:06,085 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:20:06,085 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:20:06,085 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:20:06,085 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:20:00', tmtdew=9.55, humidity=52.0, cloud=0.0, wind=30.31, temperature=11.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:19:24.442', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:20:06,086 [DEBUG][       Thread-613406][   transport.py][1871] : EOF in transport thread
2025-07-01 18:20:06,170 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:20:06,179 [DEBUG][       Thread-613410][   transport.py][1871] : starting thread (client mode): 0x8156740
2025-07-01 18:20:06,179 [DEBUG][       Thread-613410][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:20:06,195 [DEBUG][       Thread-613410][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:20:06,195 [ INFO][       Thread-613410][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:20:06,203 [DEBUG][       Thread-613410][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:20:06,203 [DEBUG][       Thread-613410][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:20:06,203 [DEBUG][       Thread-613410][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:20:06,203 [DEBUG][       Thread-613410][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:20:06,203 [DEBUG][       Thread-613410][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:20:06,203 [DEBUG][       Thread-613410][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:20:06,203 [DEBUG][       Thread-613410][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:20:06,203 [DEBUG][       Thread-613410][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:20:06,203 [DEBUG][       Thread-613410][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:20:06,203 [DEBUG][       Thread-613410][   transport.py][1871] : client lang: <none>
2025-07-01 18:20:06,203 [DEBUG][       Thread-613410][   transport.py][1871] : server lang: <none>
2025-07-01 18:20:06,203 [DEBUG][       Thread-613410][   transport.py][1871] : kex follows: False
2025-07-01 18:20:06,203 [DEBUG][       Thread-613410][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:20:06,203 [DEBUG][       Thread-613410][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:20:06,203 [DEBUG][       Thread-613410][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:20:06,203 [DEBUG][       Thread-613410][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:20:06,203 [DEBUG][       Thread-613410][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:20:06,203 [DEBUG][       Thread-613410][   transport.py][1871] : Compression: none
2025-07-01 18:20:06,204 [DEBUG][       Thread-613410][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:20:06,262 [DEBUG][       Thread-613410][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:20:06,263 [DEBUG][       Thread-613410][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:20:06,263 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:20:06,264 [DEBUG][       Thread-613410][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:20:06,265 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:20:06,326 [DEBUG][       Thread-613410][   transport.py][1871] : userauth is OK
2025-07-01 18:20:06,326 [DEBUG][       Thread-613410][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:20:06,326 [DEBUG][       Thread-613410][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:20:06,326 [DEBUG][       Thread-613410][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:20:06,326 [DEBUG][       Thread-613410][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:20:06,345 [ INFO][       Thread-613410][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:20:06,345 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:20:06,346 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:20:07,352 [DEBUG][       Thread-613410][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:20:07,352 [DEBUG][       Thread-613410][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:20:07,400 [DEBUG][       Thread-613410][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:20:07,400 [DEBUG][       Thread-613410][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:20:07,409 [DEBUG][       Thread-613410][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:20:07,418 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:20:07,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-07-01 18:20:07,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-07-01 18:20:07,436 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:20:07,437 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:20:07,437 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:20:07,445 [DEBUG][       Thread-613410][   transport.py][1871] : EOF in transport thread
2025-07-01 18:20:14,966 [DEBUG][Thread-613412 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:20:17,448 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:20:17,448 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:20:17,448 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:20:17,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-07-01 18:20:17,951 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 20), 9.55, 52.0, 0.0, 30.31, 11.92, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:20:17,951 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:20:00
2025-07-01 18:20:18,035 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:20:18,040 [DEBUG][       Thread-613413][   transport.py][1871] : starting thread (client mode): 0x81cb040
2025-07-01 18:20:18,040 [DEBUG][       Thread-613413][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:20:18,060 [DEBUG][       Thread-613413][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:20:18,060 [ INFO][       Thread-613413][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:20:18,063 [DEBUG][       Thread-613413][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:20:18,063 [DEBUG][       Thread-613413][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:20:18,063 [DEBUG][       Thread-613413][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:20:18,063 [DEBUG][       Thread-613413][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:20:18,063 [DEBUG][       Thread-613413][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:20:18,063 [DEBUG][       Thread-613413][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:20:18,063 [DEBUG][       Thread-613413][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:20:18,063 [DEBUG][       Thread-613413][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:20:18,063 [DEBUG][       Thread-613413][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:20:18,063 [DEBUG][       Thread-613413][   transport.py][1871] : client lang: <none>
2025-07-01 18:20:18,063 [DEBUG][       Thread-613413][   transport.py][1871] : server lang: <none>
2025-07-01 18:20:18,063 [DEBUG][       Thread-613413][   transport.py][1871] : kex follows: False
2025-07-01 18:20:18,063 [DEBUG][       Thread-613413][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:20:18,063 [DEBUG][       Thread-613413][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:20:18,063 [DEBUG][       Thread-613413][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:20:18,064 [DEBUG][       Thread-613413][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:20:18,064 [DEBUG][       Thread-613413][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:20:18,064 [DEBUG][       Thread-613413][   transport.py][1871] : Compression: none
2025-07-01 18:20:18,064 [DEBUG][       Thread-613413][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:20:18,079 [DEBUG][       Thread-613413][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:20:18,079 [DEBUG][       Thread-613413][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:20:18,079 [DEBUG][       Thread-613413][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:20:18,079 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:20:18,079 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:20:18,080 [DEBUG][       Thread-613413][   transport.py][1871] : userauth is OK
2025-07-01 18:20:18,104 [ INFO][       Thread-613413][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:20:18,104 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:20:18,767 [DEBUG][       Thread-613413][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:20:18,768 [DEBUG][       Thread-613413][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:20:18,809 [DEBUG][       Thread-613413][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:20:18,809 [DEBUG][       Thread-613413][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:20:18,812 [DEBUG][       Thread-613413][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:20:18,836 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:20:18,837 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:20:18,839 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:20:18,840 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:20:18,846 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:20:18,848 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:20:18,848 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:20:18,849 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:20:18,849 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.680144 -999.00  +11.70  23.45     56   +3.40 1 2 1 1 1    46    0 7.65 -36.54 ----- 21.8 23.4 21.2 38.8 12.5 -16.2 12.3 -16.3 12.1 -15.1 12.4 -15.2
2025-07-01 18:20:18,849 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:20:18,849 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:20:18,849 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.680144
2025-07-01 18:20:18,849 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:20:18,850 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:20:18,850 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:20:18,850 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:20:18,850 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:20:18,850 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:20:00', tmtdew=9.55, humidity=52.0, cloud=0.0, wind=30.31, temperature=11.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:19:24.442', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:20:18,851 [DEBUG][       Thread-613413][   transport.py][1871] : EOF in transport thread
2025-07-01 18:20:18,934 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:20:18,945 [DEBUG][       Thread-613416][   transport.py][1871] : starting thread (client mode): 0x8155ff0
2025-07-01 18:20:18,945 [DEBUG][       Thread-613416][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:20:18,960 [DEBUG][       Thread-613416][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:20:18,960 [ INFO][       Thread-613416][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:20:18,968 [DEBUG][       Thread-613416][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:20:18,968 [DEBUG][       Thread-613416][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:20:18,968 [DEBUG][       Thread-613416][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:20:18,968 [DEBUG][       Thread-613416][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:20:18,968 [DEBUG][       Thread-613416][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:20:18,968 [DEBUG][       Thread-613416][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:20:18,968 [DEBUG][       Thread-613416][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:20:18,968 [DEBUG][       Thread-613416][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:20:18,968 [DEBUG][       Thread-613416][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:20:18,968 [DEBUG][       Thread-613416][   transport.py][1871] : client lang: <none>
2025-07-01 18:20:18,968 [DEBUG][       Thread-613416][   transport.py][1871] : server lang: <none>
2025-07-01 18:20:18,968 [DEBUG][       Thread-613416][   transport.py][1871] : kex follows: False
2025-07-01 18:20:18,968 [DEBUG][       Thread-613416][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:20:18,968 [DEBUG][       Thread-613416][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:20:18,968 [DEBUG][       Thread-613416][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:20:18,968 [DEBUG][       Thread-613416][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:20:18,968 [DEBUG][       Thread-613416][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:20:18,969 [DEBUG][       Thread-613416][   transport.py][1871] : Compression: none
2025-07-01 18:20:18,969 [DEBUG][       Thread-613416][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:20:19,024 [DEBUG][       Thread-613416][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:20:19,025 [DEBUG][       Thread-613416][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:20:19,025 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:20:19,026 [DEBUG][       Thread-613416][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:20:19,026 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:20:19,081 [DEBUG][       Thread-613416][   transport.py][1871] : userauth is OK
2025-07-01 18:20:19,081 [DEBUG][       Thread-613416][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:20:19,081 [DEBUG][       Thread-613416][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:20:19,081 [DEBUG][       Thread-613416][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:20:19,081 [DEBUG][       Thread-613416][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:20:19,100 [ INFO][       Thread-613416][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:20:19,101 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:20:19,101 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:20:20,133 [DEBUG][       Thread-613416][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:20:20,134 [DEBUG][       Thread-613416][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:20:20,184 [DEBUG][       Thread-613416][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:20:20,184 [DEBUG][       Thread-613416][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:20:20,193 [DEBUG][       Thread-613416][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:20:20,201 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:20:20,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-07-01 18:20:20,210 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-07-01 18:20:20,220 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:20:20,220 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:20:20,221 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:20:20,228 [DEBUG][       Thread-613416][   transport.py][1871] : EOF in transport thread
2025-07-01 18:20:24,004 [DEBUG][Thread-613418 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:20:30,231 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:20:30,231 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:20:30,231 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:20:30,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-07-01 18:20:30,716 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 20), 9.55, 52.0, 0.0, 30.31, 11.92, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:20:30,716 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:20:00
2025-07-01 18:20:30,799 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:20:30,805 [DEBUG][       Thread-613419][   transport.py][1871] : starting thread (client mode): 0x8173430
2025-07-01 18:20:30,805 [DEBUG][       Thread-613419][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:20:30,823 [DEBUG][       Thread-613419][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:20:30,823 [ INFO][       Thread-613419][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:20:30,826 [DEBUG][       Thread-613419][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:20:30,826 [DEBUG][       Thread-613419][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:20:30,826 [DEBUG][       Thread-613419][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:20:30,826 [DEBUG][       Thread-613419][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:20:30,826 [DEBUG][       Thread-613419][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:20:30,826 [DEBUG][       Thread-613419][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:20:30,826 [DEBUG][       Thread-613419][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:20:30,826 [DEBUG][       Thread-613419][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:20:30,826 [DEBUG][       Thread-613419][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:20:30,826 [DEBUG][       Thread-613419][   transport.py][1871] : client lang: <none>
2025-07-01 18:20:30,826 [DEBUG][       Thread-613419][   transport.py][1871] : server lang: <none>
2025-07-01 18:20:30,826 [DEBUG][       Thread-613419][   transport.py][1871] : kex follows: False
2025-07-01 18:20:30,826 [DEBUG][       Thread-613419][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:20:30,826 [DEBUG][       Thread-613419][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:20:30,826 [DEBUG][       Thread-613419][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:20:30,826 [DEBUG][       Thread-613419][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:20:30,826 [DEBUG][       Thread-613419][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:20:30,826 [DEBUG][       Thread-613419][   transport.py][1871] : Compression: none
2025-07-01 18:20:30,826 [DEBUG][       Thread-613419][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:20:30,842 [DEBUG][       Thread-613419][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:20:30,842 [DEBUG][       Thread-613419][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:20:30,843 [DEBUG][       Thread-613419][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:20:30,843 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:20:30,843 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:20:30,844 [DEBUG][       Thread-613419][   transport.py][1871] : userauth is OK
2025-07-01 18:20:30,869 [ INFO][       Thread-613419][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:20:30,869 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:20:31,482 [DEBUG][       Thread-613419][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:20:31,483 [DEBUG][       Thread-613419][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:20:31,525 [DEBUG][       Thread-613419][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:20:31,525 [DEBUG][       Thread-613419][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:20:31,528 [DEBUG][       Thread-613419][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:20:31,539 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:20:31,540 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:20:31,541 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:20:31,543 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:20:31,548 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:20:31,550 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:20:31,550 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:20:31,551 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:20:31,551 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.680839 -999.00  +11.70  23.29     56   +3.40 1 2 1 1 1    38    0 7.43 -35.96 ----- 22.4 23.3 28.8 29.4 12.5 -15.9 12.3 -15.8 12.1 -15.0 12.4 -14.8
2025-07-01 18:20:31,551 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:20:31,551 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:20:31,551 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.680839
2025-07-01 18:20:31,552 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:20:31,552 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:20:31,552 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:20:31,552 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:20:31,552 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:20:31,553 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:20:00', tmtdew=9.55, humidity=52.0, cloud=0.0, wind=30.31, temperature=11.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:20:24.490', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:20:31,553 [DEBUG][       Thread-613419][   transport.py][1871] : EOF in transport thread
2025-07-01 18:20:31,634 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:20:31,647 [DEBUG][       Thread-613422][   transport.py][1871] : starting thread (client mode): 0x81c9360
2025-07-01 18:20:31,647 [DEBUG][       Thread-613422][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:20:31,666 [DEBUG][       Thread-613422][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:20:31,666 [ INFO][       Thread-613422][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:20:31,675 [DEBUG][       Thread-613422][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:20:31,675 [DEBUG][       Thread-613422][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:20:31,675 [DEBUG][       Thread-613422][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:20:31,675 [DEBUG][       Thread-613422][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:20:31,675 [DEBUG][       Thread-613422][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:20:31,675 [DEBUG][       Thread-613422][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:20:31,675 [DEBUG][       Thread-613422][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:20:31,676 [DEBUG][       Thread-613422][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:20:31,676 [DEBUG][       Thread-613422][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:20:31,676 [DEBUG][       Thread-613422][   transport.py][1871] : client lang: <none>
2025-07-01 18:20:31,676 [DEBUG][       Thread-613422][   transport.py][1871] : server lang: <none>
2025-07-01 18:20:31,676 [DEBUG][       Thread-613422][   transport.py][1871] : kex follows: False
2025-07-01 18:20:31,676 [DEBUG][       Thread-613422][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:20:31,676 [DEBUG][       Thread-613422][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:20:31,676 [DEBUG][       Thread-613422][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:20:31,676 [DEBUG][       Thread-613422][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:20:31,676 [DEBUG][       Thread-613422][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:20:31,676 [DEBUG][       Thread-613422][   transport.py][1871] : Compression: none
2025-07-01 18:20:31,676 [DEBUG][       Thread-613422][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:20:31,737 [DEBUG][       Thread-613422][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:20:31,738 [DEBUG][       Thread-613422][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:20:31,739 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:20:31,739 [DEBUG][       Thread-613422][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:20:31,740 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:20:31,792 [DEBUG][       Thread-613422][   transport.py][1871] : userauth is OK
2025-07-01 18:20:31,793 [DEBUG][       Thread-613422][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:20:31,793 [DEBUG][       Thread-613422][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:20:31,793 [DEBUG][       Thread-613422][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:20:31,793 [DEBUG][       Thread-613422][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:20:31,812 [ INFO][       Thread-613422][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:20:31,812 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:20:31,813 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:20:32,852 [DEBUG][       Thread-613422][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:20:32,852 [DEBUG][       Thread-613422][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:20:32,900 [DEBUG][       Thread-613422][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:20:32,900 [DEBUG][       Thread-613422][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:20:32,909 [DEBUG][       Thread-613422][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:20:32,918 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:20:32,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-07-01 18:20:32,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') -> 00000000
2025-07-01 18:20:32,937 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:20:32,937 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:20:32,937 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:20:32,946 [DEBUG][       Thread-613422][   transport.py][1871] : EOF in transport thread
2025-07-01 18:20:33,024 [DEBUG][Thread-613424 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:20:42,045 [DEBUG][Thread-613425 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:20:42,948 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:20:42,948 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:20:42,948 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:20:42,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-07-01 18:20:43,050 [DEBUG][Thread-613426 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:20:43,440 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 20, 32), 9.57, 52.04, 0.0, 28.11, 11.91, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:20:43,440 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:20:32
2025-07-01 18:20:43,523 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:20:43,527 [DEBUG][       Thread-613427][   transport.py][1871] : starting thread (client mode): 0x81ca140
2025-07-01 18:20:43,527 [DEBUG][       Thread-613427][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:20:43,548 [DEBUG][       Thread-613427][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:20:43,548 [ INFO][       Thread-613427][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:20:43,551 [DEBUG][       Thread-613427][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:20:43,551 [DEBUG][       Thread-613427][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:20:43,551 [DEBUG][       Thread-613427][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:20:43,551 [DEBUG][       Thread-613427][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:20:43,551 [DEBUG][       Thread-613427][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:20:43,551 [DEBUG][       Thread-613427][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:20:43,551 [DEBUG][       Thread-613427][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:20:43,551 [DEBUG][       Thread-613427][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:20:43,551 [DEBUG][       Thread-613427][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:20:43,551 [DEBUG][       Thread-613427][   transport.py][1871] : client lang: <none>
2025-07-01 18:20:43,551 [DEBUG][       Thread-613427][   transport.py][1871] : server lang: <none>
2025-07-01 18:20:43,551 [DEBUG][       Thread-613427][   transport.py][1871] : kex follows: False
2025-07-01 18:20:43,552 [DEBUG][       Thread-613427][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:20:43,552 [DEBUG][       Thread-613427][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:20:43,552 [DEBUG][       Thread-613427][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:20:43,552 [DEBUG][       Thread-613427][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:20:43,552 [DEBUG][       Thread-613427][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:20:43,552 [DEBUG][       Thread-613427][   transport.py][1871] : Compression: none
2025-07-01 18:20:43,552 [DEBUG][       Thread-613427][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:20:43,568 [DEBUG][       Thread-613427][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:20:43,569 [DEBUG][       Thread-613427][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:20:43,569 [DEBUG][       Thread-613427][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:20:43,569 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:20:43,569 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:20:43,571 [DEBUG][       Thread-613427][   transport.py][1871] : userauth is OK
2025-07-01 18:20:43,584 [ INFO][       Thread-613427][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:20:43,585 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:20:44,182 [DEBUG][       Thread-613427][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:20:44,182 [DEBUG][       Thread-613427][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:20:44,225 [DEBUG][       Thread-613427][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:20:44,225 [DEBUG][       Thread-613427][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:20:44,228 [DEBUG][       Thread-613427][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:20:44,241 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:20:44,241 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:20:44,243 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:20:44,245 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:20:44,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:20:44,253 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:20:44,253 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:20:44,254 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:20:44,254 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.680839 -999.00  +11.70  23.29     56   +3.40 1 2 1 1 1    38    0 7.43 -35.96 ----- 22.4 23.3 28.8 29.4 12.5 -15.9 12.3 -15.8 12.1 -15.0 12.4 -14.8
2025-07-01 18:20:44,254 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:20:44,254 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:20:44,255 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.680839
2025-07-01 18:20:44,255 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:20:44,255 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:20:44,256 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:20:44,256 [DEBUG][       Thread-613427][   transport.py][1871] : EOF in transport thread
2025-07-01 18:20:44,256 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:20:44,257 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:20:44,257 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:20:32', tmtdew=9.57, humidity=52.04, cloud=0.0, wind=28.11, temperature=11.91, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:20:24.490', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:20:44,340 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:20:44,349 [DEBUG][       Thread-613430][   transport.py][1871] : starting thread (client mode): 0x8155690
2025-07-01 18:20:44,349 [DEBUG][       Thread-613430][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:20:44,368 [DEBUG][       Thread-613430][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:20:44,368 [ INFO][       Thread-613430][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:20:44,375 [DEBUG][       Thread-613430][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:20:44,375 [DEBUG][       Thread-613430][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:20:44,376 [DEBUG][       Thread-613430][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:20:44,376 [DEBUG][       Thread-613430][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:20:44,376 [DEBUG][       Thread-613430][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:20:44,376 [DEBUG][       Thread-613430][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:20:44,376 [DEBUG][       Thread-613430][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:20:44,376 [DEBUG][       Thread-613430][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:20:44,376 [DEBUG][       Thread-613430][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:20:44,376 [DEBUG][       Thread-613430][   transport.py][1871] : client lang: <none>
2025-07-01 18:20:44,376 [DEBUG][       Thread-613430][   transport.py][1871] : server lang: <none>
2025-07-01 18:20:44,376 [DEBUG][       Thread-613430][   transport.py][1871] : kex follows: False
2025-07-01 18:20:44,376 [DEBUG][       Thread-613430][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:20:44,376 [DEBUG][       Thread-613430][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:20:44,376 [DEBUG][       Thread-613430][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:20:44,376 [DEBUG][       Thread-613430][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:20:44,376 [DEBUG][       Thread-613430][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:20:44,376 [DEBUG][       Thread-613430][   transport.py][1871] : Compression: none
2025-07-01 18:20:44,376 [DEBUG][       Thread-613430][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:20:44,432 [DEBUG][       Thread-613430][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:20:44,433 [DEBUG][       Thread-613430][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:20:44,433 [DEBUG][       Thread-613430][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:20:44,434 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:20:44,434 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:20:44,494 [DEBUG][       Thread-613430][   transport.py][1871] : userauth is OK
2025-07-01 18:20:44,494 [DEBUG][       Thread-613430][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:20:44,494 [DEBUG][       Thread-613430][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:20:44,494 [DEBUG][       Thread-613430][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:20:44,494 [DEBUG][       Thread-613430][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:20:44,513 [ INFO][       Thread-613430][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:20:44,513 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:20:44,514 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:20:45,496 [DEBUG][       Thread-613430][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:20:45,496 [DEBUG][       Thread-613430][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:20:45,545 [DEBUG][       Thread-613430][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:20:45,545 [DEBUG][       Thread-613430][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:20:45,556 [DEBUG][       Thread-613430][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:20:45,568 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:20:45,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-07-01 18:20:45,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-07-01 18:20:45,586 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:20:45,586 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:20:45,587 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:20:45,595 [DEBUG][       Thread-613430][   transport.py][1871] : EOF in transport thread
2025-07-01 18:20:51,067 [DEBUG][Thread-613432 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:20:55,596 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:20:55,596 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:20:55,596 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:20:55,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-07-01 18:20:56,074 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 20, 32), 9.57, 52.04, 0.0, 28.11, 11.91, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:20:56,074 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:20:32
2025-07-01 18:20:56,158 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:20:56,166 [DEBUG][       Thread-613433][   transport.py][1871] : starting thread (client mode): 0x8105ab0
2025-07-01 18:20:56,166 [DEBUG][       Thread-613433][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:20:56,185 [DEBUG][       Thread-613433][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:20:56,185 [ INFO][       Thread-613433][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:20:56,189 [DEBUG][       Thread-613433][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:20:56,189 [DEBUG][       Thread-613433][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:20:56,189 [DEBUG][       Thread-613433][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:20:56,189 [DEBUG][       Thread-613433][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:20:56,189 [DEBUG][       Thread-613433][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:20:56,189 [DEBUG][       Thread-613433][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:20:56,189 [DEBUG][       Thread-613433][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:20:56,189 [DEBUG][       Thread-613433][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:20:56,189 [DEBUG][       Thread-613433][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:20:56,189 [DEBUG][       Thread-613433][   transport.py][1871] : client lang: <none>
2025-07-01 18:20:56,189 [DEBUG][       Thread-613433][   transport.py][1871] : server lang: <none>
2025-07-01 18:20:56,190 [DEBUG][       Thread-613433][   transport.py][1871] : kex follows: False
2025-07-01 18:20:56,190 [DEBUG][       Thread-613433][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:20:56,190 [DEBUG][       Thread-613433][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:20:56,190 [DEBUG][       Thread-613433][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:20:56,190 [DEBUG][       Thread-613433][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:20:56,190 [DEBUG][       Thread-613433][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:20:56,190 [DEBUG][       Thread-613433][   transport.py][1871] : Compression: none
2025-07-01 18:20:56,190 [DEBUG][       Thread-613433][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:20:56,207 [DEBUG][       Thread-613433][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:20:56,207 [DEBUG][       Thread-613433][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:20:56,208 [DEBUG][       Thread-613433][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:20:56,208 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:20:56,208 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:20:56,209 [DEBUG][       Thread-613433][   transport.py][1871] : userauth is OK
2025-07-01 18:20:56,257 [ INFO][       Thread-613433][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:20:56,258 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:20:56,908 [DEBUG][       Thread-613433][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:20:56,908 [DEBUG][       Thread-613433][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:20:56,949 [DEBUG][       Thread-613433][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:20:56,949 [DEBUG][       Thread-613433][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:20:56,953 [DEBUG][       Thread-613433][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:20:56,965 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:20:56,965 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:20:56,967 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:20:56,969 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:20:56,975 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:20:56,977 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:20:56,977 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:20:56,978 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:20:56,978 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.680839 -999.00  +11.70  23.29     56   +3.40 1 2 1 1 1    38    0 7.43 -35.96 ----- 22.4 23.3 28.8 29.4 12.5 -15.9 12.3 -15.8 12.1 -15.0 12.4 -14.8
2025-07-01 18:20:56,978 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:20:56,978 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:20:56,978 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.680839
2025-07-01 18:20:56,979 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:20:56,979 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:20:56,979 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:20:56,979 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:20:56,979 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:20:56,979 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:20:32', tmtdew=9.57, humidity=52.04, cloud=0.0, wind=28.11, temperature=11.91, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:20:24.490', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:20:56,980 [DEBUG][       Thread-613433][   transport.py][1871] : EOF in transport thread
2025-07-01 18:20:57,063 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:20:57,073 [DEBUG][       Thread-613436][   transport.py][1871] : starting thread (client mode): 0x83c8070
2025-07-01 18:20:57,073 [DEBUG][       Thread-613436][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:20:57,088 [DEBUG][       Thread-613436][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:20:57,088 [ INFO][       Thread-613436][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:20:57,096 [DEBUG][       Thread-613436][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:20:57,096 [DEBUG][       Thread-613436][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:20:57,096 [DEBUG][       Thread-613436][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:20:57,096 [DEBUG][       Thread-613436][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:20:57,096 [DEBUG][       Thread-613436][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:20:57,096 [DEBUG][       Thread-613436][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:20:57,096 [DEBUG][       Thread-613436][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:20:57,096 [DEBUG][       Thread-613436][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:20:57,096 [DEBUG][       Thread-613436][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:20:57,096 [DEBUG][       Thread-613436][   transport.py][1871] : client lang: <none>
2025-07-01 18:20:57,096 [DEBUG][       Thread-613436][   transport.py][1871] : server lang: <none>
2025-07-01 18:20:57,096 [DEBUG][       Thread-613436][   transport.py][1871] : kex follows: False
2025-07-01 18:20:57,096 [DEBUG][       Thread-613436][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:20:57,096 [DEBUG][       Thread-613436][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:20:57,096 [DEBUG][       Thread-613436][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:20:57,096 [DEBUG][       Thread-613436][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:20:57,096 [DEBUG][       Thread-613436][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:20:57,096 [DEBUG][       Thread-613436][   transport.py][1871] : Compression: none
2025-07-01 18:20:57,096 [DEBUG][       Thread-613436][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:20:57,153 [DEBUG][       Thread-613436][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:20:57,153 [DEBUG][       Thread-613436][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:20:57,154 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:20:57,154 [DEBUG][       Thread-613436][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:20:57,155 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:20:57,209 [DEBUG][       Thread-613436][   transport.py][1871] : userauth is OK
2025-07-01 18:20:57,209 [DEBUG][       Thread-613436][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:20:57,209 [DEBUG][       Thread-613436][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:20:57,209 [DEBUG][       Thread-613436][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:20:57,209 [DEBUG][       Thread-613436][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:20:57,227 [ INFO][       Thread-613436][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:20:57,228 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:20:57,228 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:20:58,218 [DEBUG][       Thread-613436][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:20:58,218 [DEBUG][       Thread-613436][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:20:58,268 [DEBUG][       Thread-613436][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:20:58,268 [DEBUG][       Thread-613436][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:20:58,280 [DEBUG][       Thread-613436][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:20:58,291 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:20:58,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-07-01 18:20:58,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-07-01 18:20:58,314 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:20:58,314 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:20:58,315 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:20:58,325 [DEBUG][       Thread-613436][   transport.py][1871] : EOF in transport thread
2025-07-01 18:21:00,100 [DEBUG][Thread-613438 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:21:08,325 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:21:08,326 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:21:08,326 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:21:08,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-07-01 18:21:08,820 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 21, 4), 9.56, 52.08, 0.0, 26.11, 11.92, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:21:08,820 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:21:04
2025-07-01 18:21:08,904 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:21:08,907 [DEBUG][       Thread-613439][   transport.py][1871] : starting thread (client mode): 0x8105420
2025-07-01 18:21:08,908 [DEBUG][       Thread-613439][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:21:08,922 [DEBUG][       Thread-613439][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:21:08,922 [ INFO][       Thread-613439][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:21:08,925 [DEBUG][       Thread-613439][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:21:08,925 [DEBUG][       Thread-613439][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:21:08,925 [DEBUG][       Thread-613439][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:21:08,925 [DEBUG][       Thread-613439][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:21:08,925 [DEBUG][       Thread-613439][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:21:08,925 [DEBUG][       Thread-613439][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:21:08,925 [DEBUG][       Thread-613439][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:21:08,925 [DEBUG][       Thread-613439][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:21:08,925 [DEBUG][       Thread-613439][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:21:08,925 [DEBUG][       Thread-613439][   transport.py][1871] : client lang: <none>
2025-07-01 18:21:08,925 [DEBUG][       Thread-613439][   transport.py][1871] : server lang: <none>
2025-07-01 18:21:08,926 [DEBUG][       Thread-613439][   transport.py][1871] : kex follows: False
2025-07-01 18:21:08,926 [DEBUG][       Thread-613439][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:21:08,926 [DEBUG][       Thread-613439][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:21:08,926 [DEBUG][       Thread-613439][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:21:08,926 [DEBUG][       Thread-613439][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:21:08,926 [DEBUG][       Thread-613439][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:21:08,926 [DEBUG][       Thread-613439][   transport.py][1871] : Compression: none
2025-07-01 18:21:08,926 [DEBUG][       Thread-613439][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:21:08,942 [DEBUG][       Thread-613439][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:21:08,943 [DEBUG][       Thread-613439][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:21:08,943 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:21:08,943 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:21:08,944 [DEBUG][       Thread-613439][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:21:08,945 [DEBUG][       Thread-613439][   transport.py][1871] : userauth is OK
2025-07-01 18:21:08,970 [ INFO][       Thread-613439][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:21:08,971 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:21:09,120 [DEBUG][Thread-613441 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:21:09,593 [DEBUG][       Thread-613439][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:21:09,593 [DEBUG][       Thread-613439][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:21:09,637 [DEBUG][       Thread-613439][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:21:09,637 [DEBUG][       Thread-613439][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:21:09,640 [DEBUG][       Thread-613439][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:21:09,655 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:21:09,655 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:21:09,657 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:21:09,658 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:21:09,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:21:09,666 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:21:09,666 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:21:09,666 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:21:09,667 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.681186 -999.00  +11.70  27.76     56   +3.40 1 2 1 1 1    35    0 7.54 -38.19 ----- 32.5 27.8 9.3 39.1 12.4 -15.7 12.3 -15.8 12.1 -14.6 12.4 -14.7
2025-07-01 18:21:09,667 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:21:09,667 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:21:09,667 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.681186
2025-07-01 18:21:09,667 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:21:09,668 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:21:09,668 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:21:09,668 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:21:09,668 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:21:09,668 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:21:04', tmtdew=9.56, humidity=52.08, cloud=0.0, wind=26.11, temperature=11.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:20:54.470', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:21:09,669 [DEBUG][       Thread-613439][   transport.py][1871] : EOF in transport thread
2025-07-01 18:21:09,751 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:21:09,761 [DEBUG][       Thread-613443][   transport.py][1871] : starting thread (client mode): 0x8154580
2025-07-01 18:21:09,761 [DEBUG][       Thread-613443][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:21:09,776 [DEBUG][       Thread-613443][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:21:09,776 [ INFO][       Thread-613443][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:21:09,784 [DEBUG][       Thread-613443][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:21:09,784 [DEBUG][       Thread-613443][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:21:09,784 [DEBUG][       Thread-613443][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:21:09,784 [DEBUG][       Thread-613443][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:21:09,784 [DEBUG][       Thread-613443][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:21:09,784 [DEBUG][       Thread-613443][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:21:09,784 [DEBUG][       Thread-613443][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:21:09,784 [DEBUG][       Thread-613443][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:21:09,784 [DEBUG][       Thread-613443][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:21:09,784 [DEBUG][       Thread-613443][   transport.py][1871] : client lang: <none>
2025-07-01 18:21:09,784 [DEBUG][       Thread-613443][   transport.py][1871] : server lang: <none>
2025-07-01 18:21:09,784 [DEBUG][       Thread-613443][   transport.py][1871] : kex follows: False
2025-07-01 18:21:09,784 [DEBUG][       Thread-613443][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:21:09,784 [DEBUG][       Thread-613443][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:21:09,784 [DEBUG][       Thread-613443][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:21:09,784 [DEBUG][       Thread-613443][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:21:09,784 [DEBUG][       Thread-613443][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:21:09,784 [DEBUG][       Thread-613443][   transport.py][1871] : Compression: none
2025-07-01 18:21:09,785 [DEBUG][       Thread-613443][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:21:09,841 [DEBUG][       Thread-613443][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:21:09,841 [DEBUG][       Thread-613443][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:21:09,842 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:21:09,843 [DEBUG][       Thread-613443][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:21:09,843 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:21:09,897 [DEBUG][       Thread-613443][   transport.py][1871] : userauth is OK
2025-07-01 18:21:09,897 [DEBUG][       Thread-613443][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:21:09,897 [DEBUG][       Thread-613443][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:21:09,897 [DEBUG][       Thread-613443][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:21:09,897 [DEBUG][       Thread-613443][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:21:09,916 [ INFO][       Thread-613443][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:21:09,917 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:21:09,917 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:21:10,926 [DEBUG][       Thread-613443][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:21:10,927 [DEBUG][       Thread-613443][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:21:10,975 [DEBUG][       Thread-613443][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:21:10,975 [DEBUG][       Thread-613443][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:21:10,984 [DEBUG][       Thread-613443][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:21:10,991 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:21:10,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-07-01 18:21:10,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-07-01 18:21:11,008 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:21:11,008 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:21:11,009 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:21:11,016 [DEBUG][       Thread-613443][   transport.py][1871] : EOF in transport thread
2025-07-01 18:21:18,143 [DEBUG][Thread-613445 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:21:21,019 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:21:21,019 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:21:21,019 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:21:21,022 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 18:21:21,501 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 21, 4), 9.56, 52.08, 0.0, 26.11, 11.92, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:21:21,501 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:21:04
2025-07-01 18:21:21,585 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:21:21,588 [DEBUG][       Thread-613446][   transport.py][1871] : starting thread (client mode): 0x81565c0
2025-07-01 18:21:21,588 [DEBUG][       Thread-613446][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:21:21,608 [DEBUG][       Thread-613446][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:21:21,608 [ INFO][       Thread-613446][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:21:21,611 [DEBUG][       Thread-613446][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:21:21,612 [DEBUG][       Thread-613446][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:21:21,612 [DEBUG][       Thread-613446][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:21:21,612 [DEBUG][       Thread-613446][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:21:21,612 [DEBUG][       Thread-613446][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:21:21,612 [DEBUG][       Thread-613446][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:21:21,612 [DEBUG][       Thread-613446][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:21:21,612 [DEBUG][       Thread-613446][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:21:21,612 [DEBUG][       Thread-613446][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:21:21,612 [DEBUG][       Thread-613446][   transport.py][1871] : client lang: <none>
2025-07-01 18:21:21,612 [DEBUG][       Thread-613446][   transport.py][1871] : server lang: <none>
2025-07-01 18:21:21,612 [DEBUG][       Thread-613446][   transport.py][1871] : kex follows: False
2025-07-01 18:21:21,612 [DEBUG][       Thread-613446][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:21:21,612 [DEBUG][       Thread-613446][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:21:21,612 [DEBUG][       Thread-613446][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:21:21,612 [DEBUG][       Thread-613446][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:21:21,612 [DEBUG][       Thread-613446][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:21:21,612 [DEBUG][       Thread-613446][   transport.py][1871] : Compression: none
2025-07-01 18:21:21,612 [DEBUG][       Thread-613446][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:21:21,628 [DEBUG][       Thread-613446][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:21:21,628 [DEBUG][       Thread-613446][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:21:21,629 [DEBUG][       Thread-613446][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:21:21,629 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:21:21,629 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:21:21,630 [DEBUG][       Thread-613446][   transport.py][1871] : userauth is OK
2025-07-01 18:21:21,655 [ INFO][       Thread-613446][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:21:21,655 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:21:22,334 [DEBUG][       Thread-613446][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:21:22,335 [DEBUG][       Thread-613446][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:21:22,377 [DEBUG][       Thread-613446][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:21:22,377 [DEBUG][       Thread-613446][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:21:22,381 [DEBUG][       Thread-613446][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:21:22,393 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:21:22,393 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:21:22,395 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:21:22,398 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:21:22,403 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:21:22,405 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:21:22,406 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:21:22,406 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:21:22,406 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.681186 -999.00  +11.70  27.76     56   +3.40 1 2 1 1 1    35    0 7.54 -38.19 ----- 32.5 27.8 9.3 39.1 12.4 -15.7 12.3 -15.8 12.1 -14.6 12.4 -14.7
2025-07-01 18:21:22,407 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:21:22,407 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:21:22,407 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.681186
2025-07-01 18:21:22,407 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:21:22,408 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:21:22,408 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:21:22,408 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:21:22,408 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:21:22,408 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:21:04', tmtdew=9.56, humidity=52.08, cloud=0.0, wind=26.11, temperature=11.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:20:54.470', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:21:22,409 [DEBUG][       Thread-613446][   transport.py][1871] : EOF in transport thread
2025-07-01 18:21:22,493 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:21:22,504 [DEBUG][       Thread-613449][   transport.py][1871] : starting thread (client mode): 0x81e4910
2025-07-01 18:21:22,504 [DEBUG][       Thread-613449][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:21:22,518 [DEBUG][       Thread-613449][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:21:22,518 [ INFO][       Thread-613449][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:21:22,530 [DEBUG][       Thread-613449][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:21:22,530 [DEBUG][       Thread-613449][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:21:22,530 [DEBUG][       Thread-613449][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:21:22,531 [DEBUG][       Thread-613449][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:21:22,531 [DEBUG][       Thread-613449][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:21:22,531 [DEBUG][       Thread-613449][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:21:22,531 [DEBUG][       Thread-613449][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:21:22,531 [DEBUG][       Thread-613449][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:21:22,531 [DEBUG][       Thread-613449][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:21:22,531 [DEBUG][       Thread-613449][   transport.py][1871] : client lang: <none>
2025-07-01 18:21:22,531 [DEBUG][       Thread-613449][   transport.py][1871] : server lang: <none>
2025-07-01 18:21:22,531 [DEBUG][       Thread-613449][   transport.py][1871] : kex follows: False
2025-07-01 18:21:22,531 [DEBUG][       Thread-613449][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:21:22,531 [DEBUG][       Thread-613449][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:21:22,531 [DEBUG][       Thread-613449][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:21:22,531 [DEBUG][       Thread-613449][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:21:22,531 [DEBUG][       Thread-613449][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:21:22,531 [DEBUG][       Thread-613449][   transport.py][1871] : Compression: none
2025-07-01 18:21:22,531 [DEBUG][       Thread-613449][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:21:22,588 [DEBUG][       Thread-613449][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:21:22,589 [DEBUG][       Thread-613449][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:21:22,590 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:21:22,590 [DEBUG][       Thread-613449][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:21:22,591 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:21:22,645 [DEBUG][       Thread-613449][   transport.py][1871] : userauth is OK
2025-07-01 18:21:22,645 [DEBUG][       Thread-613449][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:21:22,645 [DEBUG][       Thread-613449][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:21:22,646 [DEBUG][       Thread-613449][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:21:22,646 [DEBUG][       Thread-613449][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:21:22,664 [ INFO][       Thread-613449][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:21:22,665 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:21:22,665 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:21:23,672 [DEBUG][       Thread-613449][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:21:23,673 [DEBUG][       Thread-613449][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:21:23,724 [DEBUG][       Thread-613449][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:21:23,724 [DEBUG][       Thread-613449][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:21:23,734 [DEBUG][       Thread-613449][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:21:23,743 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:21:23,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-07-01 18:21:23,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-07-01 18:21:23,761 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:21:23,761 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:21:23,762 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:21:23,772 [DEBUG][       Thread-613449][   transport.py][1871] : EOF in transport thread
2025-07-01 18:21:27,179 [DEBUG][Thread-613451 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:21:33,772 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:21:33,772 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:21:33,772 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:21:33,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-07-01 18:21:34,260 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 21, 4), 9.56, 52.08, 0.0, 26.11, 11.92, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:21:34,260 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:21:04
2025-07-01 18:21:34,349 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:21:34,353 [DEBUG][       Thread-613452][   transport.py][1871] : starting thread (client mode): 0x81e5ff0
2025-07-01 18:21:34,353 [DEBUG][       Thread-613452][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:21:34,374 [DEBUG][       Thread-613452][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:21:34,374 [ INFO][       Thread-613452][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:21:34,377 [DEBUG][       Thread-613452][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:21:34,377 [DEBUG][       Thread-613452][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:21:34,377 [DEBUG][       Thread-613452][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:21:34,377 [DEBUG][       Thread-613452][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:21:34,377 [DEBUG][       Thread-613452][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:21:34,377 [DEBUG][       Thread-613452][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:21:34,377 [DEBUG][       Thread-613452][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:21:34,377 [DEBUG][       Thread-613452][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:21:34,377 [DEBUG][       Thread-613452][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:21:34,377 [DEBUG][       Thread-613452][   transport.py][1871] : client lang: <none>
2025-07-01 18:21:34,377 [DEBUG][       Thread-613452][   transport.py][1871] : server lang: <none>
2025-07-01 18:21:34,377 [DEBUG][       Thread-613452][   transport.py][1871] : kex follows: False
2025-07-01 18:21:34,377 [DEBUG][       Thread-613452][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:21:34,377 [DEBUG][       Thread-613452][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:21:34,377 [DEBUG][       Thread-613452][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:21:34,377 [DEBUG][       Thread-613452][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:21:34,377 [DEBUG][       Thread-613452][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:21:34,377 [DEBUG][       Thread-613452][   transport.py][1871] : Compression: none
2025-07-01 18:21:34,377 [DEBUG][       Thread-613452][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:21:34,391 [DEBUG][       Thread-613452][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:21:34,391 [DEBUG][       Thread-613452][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:21:34,391 [DEBUG][       Thread-613452][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:21:34,391 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:21:34,391 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:21:34,392 [DEBUG][       Thread-613452][   transport.py][1871] : userauth is OK
2025-07-01 18:21:34,404 [ INFO][       Thread-613452][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:21:34,404 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:21:35,002 [DEBUG][       Thread-613452][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:21:35,002 [DEBUG][       Thread-613452][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:21:35,044 [DEBUG][       Thread-613452][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:21:35,044 [DEBUG][       Thread-613452][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:21:35,047 [DEBUG][       Thread-613452][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:21:35,054 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:21:35,054 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:21:35,056 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:21:35,056 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:21:35,059 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:21:35,060 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:21:35,060 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:21:35,060 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:21:35,060 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.681186 -999.00  +11.70  27.76     56   +3.40 1 2 1 1 1    35    0 7.54 -38.19 ----- 32.5 27.8 9.3 39.1 12.4 -15.7 12.3 -15.8 12.1 -14.6 12.4 -14.7
2025-07-01 18:21:35,060 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:21:35,060 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:21:35,060 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.681186
2025-07-01 18:21:35,060 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:21:35,060 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:21:35,060 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:21:35,060 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:21:35,060 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:21:35,060 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:21:04', tmtdew=9.56, humidity=52.08, cloud=0.0, wind=26.11, temperature=11.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:20:54.470', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:21:35,061 [DEBUG][       Thread-613452][   transport.py][1871] : EOF in transport thread
2025-07-01 18:21:35,134 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:21:36,196 [DEBUG][Thread-613455 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:21:43,106 [DEBUG][Thread-613456 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:21:45,214 [DEBUG][Thread-613457 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:21:54,236 [DEBUG][Thread-613458 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:22:03,259 [DEBUG][Thread-613459 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:22:12,276 [DEBUG][Thread-613460 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:22:21,296 [DEBUG][Thread-613461 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:22:30,318 [DEBUG][Thread-613462 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:22:39,340 [DEBUG][Thread-613463 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:22:43,159 [DEBUG][Thread-613464 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:22:48,363 [DEBUG][Thread-613465 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:22:57,384 [DEBUG][Thread-613466 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:23:06,405 [DEBUG][Thread-613467 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:23:15,427 [DEBUG][Thread-613468 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:23:24,453 [DEBUG][Thread-613469 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:23:33,474 [DEBUG][Thread-613470 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:23:42,495 [DEBUG][Thread-613471 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:23:43,212 [DEBUG][Thread-613472 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:23:43,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-07-01 18:23:51,518 [DEBUG][Thread-613473 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:23:53,647 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:23:53,647 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:23:53,647 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:23:53,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-07-01 18:23:54,163 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 23, 43), 9.59, 51.76, 0.0, 33.22, 11.89, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:23:54,163 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:23:43
2025-07-01 18:23:54,248 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:23:54,254 [DEBUG][       Thread-613474][   transport.py][1871] : starting thread (client mode): 0x81e7ac0
2025-07-01 18:23:54,254 [DEBUG][       Thread-613474][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:23:54,279 [DEBUG][       Thread-613474][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:23:54,279 [ INFO][       Thread-613474][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:23:54,283 [DEBUG][       Thread-613474][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:23:54,283 [DEBUG][       Thread-613474][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:23:54,283 [DEBUG][       Thread-613474][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:23:54,283 [DEBUG][       Thread-613474][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:23:54,283 [DEBUG][       Thread-613474][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:23:54,283 [DEBUG][       Thread-613474][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:23:54,283 [DEBUG][       Thread-613474][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:23:54,283 [DEBUG][       Thread-613474][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:23:54,283 [DEBUG][       Thread-613474][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:23:54,283 [DEBUG][       Thread-613474][   transport.py][1871] : client lang: <none>
2025-07-01 18:23:54,283 [DEBUG][       Thread-613474][   transport.py][1871] : server lang: <none>
2025-07-01 18:23:54,284 [DEBUG][       Thread-613474][   transport.py][1871] : kex follows: False
2025-07-01 18:23:54,284 [DEBUG][       Thread-613474][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:23:54,284 [DEBUG][       Thread-613474][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:23:54,284 [DEBUG][       Thread-613474][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:23:54,284 [DEBUG][       Thread-613474][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:23:54,284 [DEBUG][       Thread-613474][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:23:54,284 [DEBUG][       Thread-613474][   transport.py][1871] : Compression: none
2025-07-01 18:23:54,284 [DEBUG][       Thread-613474][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:23:54,293 [DEBUG][       Thread-613474][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:23:54,294 [DEBUG][       Thread-613474][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:23:54,294 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:23:54,294 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:23:54,295 [DEBUG][       Thread-613474][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:23:54,296 [DEBUG][       Thread-613474][   transport.py][1871] : userauth is OK
2025-07-01 18:23:54,309 [ INFO][       Thread-613474][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:23:54,309 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:23:54,964 [DEBUG][       Thread-613474][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:23:54,965 [DEBUG][       Thread-613474][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:23:55,009 [DEBUG][       Thread-613474][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:23:55,009 [DEBUG][       Thread-613474][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:23:55,012 [DEBUG][       Thread-613474][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:23:55,026 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:23:55,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:23:55,029 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:23:55,030 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:23:55,036 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:23:55,037 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:23:55,038 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:23:55,038 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:23:55,038 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.682922 -999.00  +11.80  24.65     56   +3.40 1 2 1 1 1    21    0 7.25 -43.24 ----- 26.6 24.6 357.2 39.1 12.5 -14.9 12.4 -14.8 12.1 -14.1 12.4 -14.0
2025-07-01 18:23:55,038 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:23:55,039 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:23:55,039 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.682922
2025-07-01 18:23:55,039 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:23:55,040 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:23:55,040 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:23:55,040 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:23:55,040 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:23:55,040 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:23:43', tmtdew=9.59, humidity=51.76, cloud=0.0, wind=33.22, temperature=11.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:23:24.461', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:23:55,040 [DEBUG][       Thread-613474][   transport.py][1871] : EOF in transport thread
2025-07-01 18:23:55,124 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:23:55,133 [DEBUG][       Thread-613477][   transport.py][1871] : starting thread (client mode): 0x8155810
2025-07-01 18:23:55,133 [DEBUG][       Thread-613477][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:23:55,148 [DEBUG][       Thread-613477][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:23:55,148 [ INFO][       Thread-613477][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:23:55,156 [DEBUG][       Thread-613477][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:23:55,156 [DEBUG][       Thread-613477][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:23:55,156 [DEBUG][       Thread-613477][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:23:55,156 [DEBUG][       Thread-613477][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:23:55,156 [DEBUG][       Thread-613477][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:23:55,156 [DEBUG][       Thread-613477][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:23:55,156 [DEBUG][       Thread-613477][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:23:55,156 [DEBUG][       Thread-613477][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:23:55,156 [DEBUG][       Thread-613477][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:23:55,156 [DEBUG][       Thread-613477][   transport.py][1871] : client lang: <none>
2025-07-01 18:23:55,156 [DEBUG][       Thread-613477][   transport.py][1871] : server lang: <none>
2025-07-01 18:23:55,156 [DEBUG][       Thread-613477][   transport.py][1871] : kex follows: False
2025-07-01 18:23:55,156 [DEBUG][       Thread-613477][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:23:55,156 [DEBUG][       Thread-613477][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:23:55,156 [DEBUG][       Thread-613477][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:23:55,156 [DEBUG][       Thread-613477][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:23:55,156 [DEBUG][       Thread-613477][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:23:55,156 [DEBUG][       Thread-613477][   transport.py][1871] : Compression: none
2025-07-01 18:23:55,157 [DEBUG][       Thread-613477][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:23:55,213 [DEBUG][       Thread-613477][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:23:55,214 [DEBUG][       Thread-613477][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:23:55,215 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:23:55,215 [DEBUG][       Thread-613477][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:23:55,216 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:23:55,269 [DEBUG][       Thread-613477][   transport.py][1871] : userauth is OK
2025-07-01 18:23:55,269 [DEBUG][       Thread-613477][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:23:55,270 [DEBUG][       Thread-613477][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:23:55,270 [DEBUG][       Thread-613477][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:23:55,270 [DEBUG][       Thread-613477][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:23:55,289 [ INFO][       Thread-613477][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:23:55,289 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:23:55,289 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:23:56,312 [DEBUG][       Thread-613477][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:23:56,313 [DEBUG][       Thread-613477][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:23:56,364 [DEBUG][       Thread-613477][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:23:56,364 [DEBUG][       Thread-613477][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:23:56,373 [DEBUG][       Thread-613477][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:23:56,382 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:23:56,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-07-01 18:23:56,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') -> 00000000
2025-07-01 18:23:56,400 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:23:56,401 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:23:56,401 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:23:56,409 [DEBUG][       Thread-613477][   transport.py][1871] : EOF in transport thread
2025-07-01 18:24:00,542 [DEBUG][Thread-613479 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:24:06,408 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:24:06,408 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:24:06,408 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:24:06,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-07-01 18:24:06,904 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 23, 43), 9.59, 51.76, 0.0, 33.22, 11.89, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:24:06,904 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:23:43
2025-07-01 18:24:06,990 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:24:06,994 [DEBUG][       Thread-613480][   transport.py][1871] : starting thread (client mode): 0x8170be0
2025-07-01 18:24:06,994 [DEBUG][       Thread-613480][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:24:07,016 [DEBUG][       Thread-613480][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:24:07,016 [ INFO][       Thread-613480][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:24:07,019 [DEBUG][       Thread-613480][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:24:07,019 [DEBUG][       Thread-613480][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:24:07,019 [DEBUG][       Thread-613480][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:24:07,020 [DEBUG][       Thread-613480][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:24:07,020 [DEBUG][       Thread-613480][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:24:07,020 [DEBUG][       Thread-613480][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:24:07,020 [DEBUG][       Thread-613480][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:24:07,020 [DEBUG][       Thread-613480][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:24:07,020 [DEBUG][       Thread-613480][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:24:07,020 [DEBUG][       Thread-613480][   transport.py][1871] : client lang: <none>
2025-07-01 18:24:07,020 [DEBUG][       Thread-613480][   transport.py][1871] : server lang: <none>
2025-07-01 18:24:07,020 [DEBUG][       Thread-613480][   transport.py][1871] : kex follows: False
2025-07-01 18:24:07,020 [DEBUG][       Thread-613480][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:24:07,020 [DEBUG][       Thread-613480][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:24:07,020 [DEBUG][       Thread-613480][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:24:07,020 [DEBUG][       Thread-613480][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:24:07,020 [DEBUG][       Thread-613480][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:24:07,020 [DEBUG][       Thread-613480][   transport.py][1871] : Compression: none
2025-07-01 18:24:07,020 [DEBUG][       Thread-613480][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:24:07,038 [DEBUG][       Thread-613480][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:24:07,038 [DEBUG][       Thread-613480][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:24:07,039 [DEBUG][       Thread-613480][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:24:07,039 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:24:07,039 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:24:07,040 [DEBUG][       Thread-613480][   transport.py][1871] : userauth is OK
2025-07-01 18:24:07,053 [ INFO][       Thread-613480][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:24:07,054 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:24:07,662 [DEBUG][       Thread-613480][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:24:07,662 [DEBUG][       Thread-613480][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:24:07,705 [DEBUG][       Thread-613480][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:24:07,705 [DEBUG][       Thread-613480][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:24:07,708 [DEBUG][       Thread-613480][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:24:07,720 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:24:07,721 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:24:07,723 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:24:07,725 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:24:07,731 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:24:07,733 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:24:07,733 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:24:07,734 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:24:07,734 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.682922 -999.00  +11.80  24.65     56   +3.40 1 2 1 1 1    21    0 7.25 -43.24 ----- 26.6 24.6 357.2 39.1 12.5 -14.9 12.4 -14.8 12.1 -14.1 12.4 -14.0
2025-07-01 18:24:07,734 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:24:07,734 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:24:07,734 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.682922
2025-07-01 18:24:07,735 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:24:07,735 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:24:07,736 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:24:07,736 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:24:07,736 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:24:07,736 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:23:43', tmtdew=9.59, humidity=51.76, cloud=0.0, wind=33.22, temperature=11.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:23:24.461', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:24:07,737 [DEBUG][       Thread-613480][   transport.py][1871] : EOF in transport thread
2025-07-01 18:24:07,820 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:24:07,830 [DEBUG][       Thread-613483][   transport.py][1871] : starting thread (client mode): 0x827db40
2025-07-01 18:24:07,830 [DEBUG][       Thread-613483][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:24:07,846 [DEBUG][       Thread-613483][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:24:07,846 [ INFO][       Thread-613483][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:24:07,854 [DEBUG][       Thread-613483][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:24:07,854 [DEBUG][       Thread-613483][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:24:07,854 [DEBUG][       Thread-613483][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:24:07,854 [DEBUG][       Thread-613483][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:24:07,854 [DEBUG][       Thread-613483][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:24:07,854 [DEBUG][       Thread-613483][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:24:07,854 [DEBUG][       Thread-613483][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:24:07,854 [DEBUG][       Thread-613483][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:24:07,854 [DEBUG][       Thread-613483][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:24:07,854 [DEBUG][       Thread-613483][   transport.py][1871] : client lang: <none>
2025-07-01 18:24:07,854 [DEBUG][       Thread-613483][   transport.py][1871] : server lang: <none>
2025-07-01 18:24:07,855 [DEBUG][       Thread-613483][   transport.py][1871] : kex follows: False
2025-07-01 18:24:07,855 [DEBUG][       Thread-613483][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:24:07,855 [DEBUG][       Thread-613483][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:24:07,855 [DEBUG][       Thread-613483][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:24:07,855 [DEBUG][       Thread-613483][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:24:07,855 [DEBUG][       Thread-613483][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:24:07,855 [DEBUG][       Thread-613483][   transport.py][1871] : Compression: none
2025-07-01 18:24:07,855 [DEBUG][       Thread-613483][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:24:07,918 [DEBUG][       Thread-613483][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:24:07,919 [DEBUG][       Thread-613483][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:24:07,920 [DEBUG][       Thread-613483][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:24:07,920 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:24:07,921 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:24:07,979 [DEBUG][       Thread-613483][   transport.py][1871] : userauth is OK
2025-07-01 18:24:07,979 [DEBUG][       Thread-613483][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:24:07,979 [DEBUG][       Thread-613483][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:24:07,980 [DEBUG][       Thread-613483][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:24:07,980 [DEBUG][       Thread-613483][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:24:08,013 [ INFO][       Thread-613483][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:24:08,013 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:24:08,013 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:24:09,031 [DEBUG][       Thread-613483][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:24:09,031 [DEBUG][       Thread-613483][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:24:09,080 [DEBUG][       Thread-613483][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:24:09,080 [DEBUG][       Thread-613483][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:24:09,089 [DEBUG][       Thread-613483][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:24:09,098 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:24:09,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-07-01 18:24:09,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-07-01 18:24:09,124 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:24:09,124 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:24:09,124 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:24:09,132 [DEBUG][       Thread-613483][   transport.py][1871] : EOF in transport thread
2025-07-01 18:24:09,585 [DEBUG][Thread-613485 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:24:18,606 [DEBUG][Thread-613486 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:24:19,135 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:24:19,135 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:24:19,135 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:24:19,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-07-01 18:24:19,633 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 24, 15), 9.61, 51.8, 0.0, 32.08, 11.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:24:19,634 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:24:15
2025-07-01 18:24:19,718 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:24:19,722 [DEBUG][       Thread-613487][   transport.py][1871] : starting thread (client mode): 0x81c8610
2025-07-01 18:24:19,722 [DEBUG][       Thread-613487][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:24:19,742 [DEBUG][       Thread-613487][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:24:19,743 [ INFO][       Thread-613487][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:24:19,746 [DEBUG][       Thread-613487][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:24:19,746 [DEBUG][       Thread-613487][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:24:19,746 [DEBUG][       Thread-613487][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:24:19,746 [DEBUG][       Thread-613487][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:24:19,746 [DEBUG][       Thread-613487][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:24:19,746 [DEBUG][       Thread-613487][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:24:19,746 [DEBUG][       Thread-613487][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:24:19,746 [DEBUG][       Thread-613487][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:24:19,746 [DEBUG][       Thread-613487][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:24:19,746 [DEBUG][       Thread-613487][   transport.py][1871] : client lang: <none>
2025-07-01 18:24:19,746 [DEBUG][       Thread-613487][   transport.py][1871] : server lang: <none>
2025-07-01 18:24:19,746 [DEBUG][       Thread-613487][   transport.py][1871] : kex follows: False
2025-07-01 18:24:19,746 [DEBUG][       Thread-613487][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:24:19,746 [DEBUG][       Thread-613487][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:24:19,746 [DEBUG][       Thread-613487][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:24:19,746 [DEBUG][       Thread-613487][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:24:19,746 [DEBUG][       Thread-613487][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:24:19,746 [DEBUG][       Thread-613487][   transport.py][1871] : Compression: none
2025-07-01 18:24:19,746 [DEBUG][       Thread-613487][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:24:19,762 [DEBUG][       Thread-613487][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:24:19,762 [DEBUG][       Thread-613487][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:24:19,762 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:24:19,763 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:24:19,763 [DEBUG][       Thread-613487][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:24:19,764 [DEBUG][       Thread-613487][   transport.py][1871] : userauth is OK
2025-07-01 18:24:19,788 [ INFO][       Thread-613487][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:24:19,789 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:24:20,435 [DEBUG][       Thread-613487][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:24:20,436 [DEBUG][       Thread-613487][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:24:20,477 [DEBUG][       Thread-613487][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:24:20,477 [DEBUG][       Thread-613487][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:24:20,480 [DEBUG][       Thread-613487][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:24:20,496 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:24:20,497 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:24:20,499 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:24:20,500 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:24:20,506 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:24:20,508 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:24:20,509 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:24:20,509 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:24:20,509 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.682922 -999.00  +11.80  24.65     56   +3.40 1 2 1 1 1    21    0 7.25 -43.24 ----- 26.6 24.6 357.2 39.1 12.5 -14.9 12.4 -14.8 12.1 -14.1 12.4 -14.0
2025-07-01 18:24:20,509 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:24:20,510 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:24:20,510 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.682922
2025-07-01 18:24:20,510 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:24:20,511 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:24:20,511 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:24:20,511 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:24:20,511 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:24:20,511 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:24:15', tmtdew=9.61, humidity=51.8, cloud=0.0, wind=32.08, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:23:24.461', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:24:20,511 [DEBUG][       Thread-613487][   transport.py][1871] : EOF in transport thread
2025-07-01 18:24:20,607 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:24:20,618 [DEBUG][       Thread-613490][   transport.py][1871] : starting thread (client mode): 0x8105cc0
2025-07-01 18:24:20,618 [DEBUG][       Thread-613490][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:24:20,633 [DEBUG][       Thread-613490][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:24:20,633 [ INFO][       Thread-613490][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:24:20,640 [DEBUG][       Thread-613490][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:24:20,640 [DEBUG][       Thread-613490][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:24:20,640 [DEBUG][       Thread-613490][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:24:20,640 [DEBUG][       Thread-613490][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:24:20,641 [DEBUG][       Thread-613490][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:24:20,641 [DEBUG][       Thread-613490][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:24:20,641 [DEBUG][       Thread-613490][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:24:20,641 [DEBUG][       Thread-613490][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:24:20,641 [DEBUG][       Thread-613490][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:24:20,641 [DEBUG][       Thread-613490][   transport.py][1871] : client lang: <none>
2025-07-01 18:24:20,641 [DEBUG][       Thread-613490][   transport.py][1871] : server lang: <none>
2025-07-01 18:24:20,641 [DEBUG][       Thread-613490][   transport.py][1871] : kex follows: False
2025-07-01 18:24:20,641 [DEBUG][       Thread-613490][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:24:20,641 [DEBUG][       Thread-613490][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:24:20,641 [DEBUG][       Thread-613490][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:24:20,641 [DEBUG][       Thread-613490][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:24:20,641 [DEBUG][       Thread-613490][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:24:20,641 [DEBUG][       Thread-613490][   transport.py][1871] : Compression: none
2025-07-01 18:24:20,641 [DEBUG][       Thread-613490][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:24:20,697 [DEBUG][       Thread-613490][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:24:20,698 [DEBUG][       Thread-613490][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:24:20,698 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:24:20,699 [DEBUG][       Thread-613490][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:24:20,700 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:24:20,754 [DEBUG][       Thread-613490][   transport.py][1871] : userauth is OK
2025-07-01 18:24:20,754 [DEBUG][       Thread-613490][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:24:20,754 [DEBUG][       Thread-613490][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:24:20,754 [DEBUG][       Thread-613490][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:24:20,754 [DEBUG][       Thread-613490][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:24:20,773 [ INFO][       Thread-613490][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:24:20,773 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:24:20,774 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:24:21,799 [DEBUG][       Thread-613490][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:24:21,800 [DEBUG][       Thread-613490][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:24:21,852 [DEBUG][       Thread-613490][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:24:21,852 [DEBUG][       Thread-613490][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:24:21,864 [DEBUG][       Thread-613490][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:24:21,873 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:24:21,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')
2025-07-01 18:24:21,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') -> 00000000
2025-07-01 18:24:21,892 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:24:21,892 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:24:21,893 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:24:21,900 [DEBUG][       Thread-613490][   transport.py][1871] : EOF in transport thread
2025-07-01 18:24:27,632 [DEBUG][Thread-613492 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:24:31,903 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:24:31,903 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:24:31,904 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:24:31,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-07-01 18:24:32,415 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 24, 15), 9.61, 51.8, 0.0, 32.08, 11.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:24:32,415 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:24:15
2025-07-01 18:24:32,500 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:24:32,504 [DEBUG][       Thread-613493][   transport.py][1871] : starting thread (client mode): 0x81053c0
2025-07-01 18:24:32,504 [DEBUG][       Thread-613493][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:24:32,524 [DEBUG][       Thread-613493][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:24:32,524 [ INFO][       Thread-613493][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:24:32,528 [DEBUG][       Thread-613493][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:24:32,528 [DEBUG][       Thread-613493][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:24:32,528 [DEBUG][       Thread-613493][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:24:32,528 [DEBUG][       Thread-613493][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:24:32,528 [DEBUG][       Thread-613493][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:24:32,528 [DEBUG][       Thread-613493][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:24:32,528 [DEBUG][       Thread-613493][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:24:32,528 [DEBUG][       Thread-613493][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:24:32,528 [DEBUG][       Thread-613493][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:24:32,528 [DEBUG][       Thread-613493][   transport.py][1871] : client lang: <none>
2025-07-01 18:24:32,528 [DEBUG][       Thread-613493][   transport.py][1871] : server lang: <none>
2025-07-01 18:24:32,528 [DEBUG][       Thread-613493][   transport.py][1871] : kex follows: False
2025-07-01 18:24:32,528 [DEBUG][       Thread-613493][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:24:32,528 [DEBUG][       Thread-613493][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:24:32,528 [DEBUG][       Thread-613493][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:24:32,528 [DEBUG][       Thread-613493][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:24:32,528 [DEBUG][       Thread-613493][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:24:32,528 [DEBUG][       Thread-613493][   transport.py][1871] : Compression: none
2025-07-01 18:24:32,528 [DEBUG][       Thread-613493][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:24:32,543 [DEBUG][       Thread-613493][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:24:32,544 [DEBUG][       Thread-613493][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:24:32,544 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:24:32,544 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:24:32,545 [DEBUG][       Thread-613493][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:24:32,545 [DEBUG][       Thread-613493][   transport.py][1871] : userauth is OK
2025-07-01 18:24:32,570 [ INFO][       Thread-613493][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:24:32,570 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:24:33,259 [DEBUG][       Thread-613493][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:24:33,259 [DEBUG][       Thread-613493][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:24:33,304 [DEBUG][       Thread-613493][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:24:33,304 [DEBUG][       Thread-613493][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:24:33,307 [DEBUG][       Thread-613493][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:24:33,320 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:24:33,320 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:24:33,321 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:24:33,323 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:24:33,326 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:24:33,327 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:24:33,327 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:24:33,327 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:24:33,327 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.683269 -999.00  +11.90  28.12     55   +3.30 1 2 1 1 1    19    0 7.30 -41.93 ----- 21.0 28.1 11.6 39.6 12.5 -14.9 12.3 -14.7 12.1 -14.0 12.4 -13.7
2025-07-01 18:24:33,327 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:24:33,327 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:24:33,327 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.683269
2025-07-01 18:24:33,327 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:24:33,327 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:24:33,327 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:24:33,327 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:24:33,327 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:24:33,327 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:24:15', tmtdew=9.61, humidity=51.8, cloud=0.0, wind=32.08, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:23:54.442', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:24:33,328 [DEBUG][       Thread-613493][   transport.py][1871] : EOF in transport thread
2025-07-01 18:24:33,398 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:24:33,409 [DEBUG][       Thread-613496][   transport.py][1871] : starting thread (client mode): 0x81cb1c0
2025-07-01 18:24:33,409 [DEBUG][       Thread-613496][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:24:33,424 [DEBUG][       Thread-613496][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:24:33,424 [ INFO][       Thread-613496][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:24:33,431 [DEBUG][       Thread-613496][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:24:33,431 [DEBUG][       Thread-613496][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:24:33,431 [DEBUG][       Thread-613496][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:24:33,432 [DEBUG][       Thread-613496][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:24:33,432 [DEBUG][       Thread-613496][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:24:33,432 [DEBUG][       Thread-613496][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:24:33,432 [DEBUG][       Thread-613496][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:24:33,432 [DEBUG][       Thread-613496][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:24:33,432 [DEBUG][       Thread-613496][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:24:33,432 [DEBUG][       Thread-613496][   transport.py][1871] : client lang: <none>
2025-07-01 18:24:33,432 [DEBUG][       Thread-613496][   transport.py][1871] : server lang: <none>
2025-07-01 18:24:33,432 [DEBUG][       Thread-613496][   transport.py][1871] : kex follows: False
2025-07-01 18:24:33,432 [DEBUG][       Thread-613496][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:24:33,432 [DEBUG][       Thread-613496][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:24:33,432 [DEBUG][       Thread-613496][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:24:33,432 [DEBUG][       Thread-613496][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:24:33,432 [DEBUG][       Thread-613496][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:24:33,432 [DEBUG][       Thread-613496][   transport.py][1871] : Compression: none
2025-07-01 18:24:33,432 [DEBUG][       Thread-613496][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:24:33,488 [DEBUG][       Thread-613496][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:24:33,489 [DEBUG][       Thread-613496][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:24:33,489 [DEBUG][       Thread-613496][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:24:33,490 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:24:33,490 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:24:33,545 [DEBUG][       Thread-613496][   transport.py][1871] : userauth is OK
2025-07-01 18:24:33,545 [DEBUG][       Thread-613496][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:24:33,545 [DEBUG][       Thread-613496][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:24:33,545 [DEBUG][       Thread-613496][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:24:33,545 [DEBUG][       Thread-613496][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:24:33,562 [ INFO][       Thread-613496][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:24:33,563 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:24:33,563 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:24:34,547 [DEBUG][       Thread-613496][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:24:34,547 [DEBUG][       Thread-613496][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:24:34,595 [DEBUG][       Thread-613496][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:24:34,595 [DEBUG][       Thread-613496][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:24:34,604 [DEBUG][       Thread-613496][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:24:34,612 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:24:34,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-07-01 18:24:34,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-07-01 18:24:34,629 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:24:34,630 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:24:34,630 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:24:34,637 [DEBUG][       Thread-613496][   transport.py][1871] : EOF in transport thread
2025-07-01 18:24:36,674 [DEBUG][Thread-613498 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:24:43,265 [DEBUG][Thread-613499 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:24:44,634 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:24:44,634 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:24:44,634 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:24: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-07-01 18:24:45,141 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 24, 15), 9.61, 51.8, 0.0, 32.08, 11.93, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:24:45,141 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:24:15
2025-07-01 18:24:45,226 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:24:45,231 [DEBUG][       Thread-613500][   transport.py][1871] : starting thread (client mode): 0x8107850
2025-07-01 18:24:45,231 [DEBUG][       Thread-613500][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:24:45,251 [DEBUG][       Thread-613500][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:24:45,251 [ INFO][       Thread-613500][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:24:45,255 [DEBUG][       Thread-613500][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:24:45,255 [DEBUG][       Thread-613500][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:24:45,255 [DEBUG][       Thread-613500][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:24:45,255 [DEBUG][       Thread-613500][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:24:45,255 [DEBUG][       Thread-613500][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:24:45,255 [DEBUG][       Thread-613500][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:24:45,255 [DEBUG][       Thread-613500][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:24:45,255 [DEBUG][       Thread-613500][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:24:45,255 [DEBUG][       Thread-613500][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:24:45,255 [DEBUG][       Thread-613500][   transport.py][1871] : client lang: <none>
2025-07-01 18:24:45,255 [DEBUG][       Thread-613500][   transport.py][1871] : server lang: <none>
2025-07-01 18:24:45,255 [DEBUG][       Thread-613500][   transport.py][1871] : kex follows: False
2025-07-01 18:24:45,255 [DEBUG][       Thread-613500][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:24:45,255 [DEBUG][       Thread-613500][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:24:45,255 [DEBUG][       Thread-613500][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:24:45,255 [DEBUG][       Thread-613500][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:24:45,255 [DEBUG][       Thread-613500][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:24:45,255 [DEBUG][       Thread-613500][   transport.py][1871] : Compression: none
2025-07-01 18:24:45,255 [DEBUG][       Thread-613500][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:24:45,272 [DEBUG][       Thread-613500][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:24:45,272 [DEBUG][       Thread-613500][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:24:45,273 [DEBUG][       Thread-613500][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:24:45,273 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:24:45,273 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:24:45,274 [DEBUG][       Thread-613500][   transport.py][1871] : userauth is OK
2025-07-01 18:24:45,298 [ INFO][       Thread-613500][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:24:45,299 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:24:45,696 [DEBUG][Thread-613502 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:24:45,932 [DEBUG][       Thread-613500][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:24:45,933 [DEBUG][       Thread-613500][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:24:45,977 [DEBUG][       Thread-613500][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:24:45,977 [DEBUG][       Thread-613500][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:24:45,981 [DEBUG][       Thread-613500][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:24:45,995 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:24:45,995 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:24:45,997 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:24:45,998 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:24:46,004 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:24:46,006 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:24:46,006 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:24:46,007 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:24:46,007 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.683269 -999.00  +11.90  28.12     55   +3.30 1 2 1 1 1    19    0 7.30 -41.93 ----- 21.0 28.1 11.6 39.6 12.5 -14.9 12.3 -14.7 12.1 -14.0 12.4 -13.7
2025-07-01 18:24:46,007 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:24:46,007 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:24:46,007 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.683269
2025-07-01 18:24:46,008 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:24:46,008 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:24:46,008 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:24:46,009 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:24:46,009 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:24:46,009 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:24:15', tmtdew=9.61, humidity=51.8, cloud=0.0, wind=32.08, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:23:54.442', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:24:46,010 [DEBUG][       Thread-613500][   transport.py][1871] : EOF in transport thread
2025-07-01 18:24:46,092 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:24:46,102 [DEBUG][       Thread-613504][   transport.py][1871] : starting thread (client mode): 0x81732e0
2025-07-01 18:24:46,102 [DEBUG][       Thread-613504][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:24:46,116 [DEBUG][       Thread-613504][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:24:46,116 [ INFO][       Thread-613504][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:24:46,124 [DEBUG][       Thread-613504][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:24:46,124 [DEBUG][       Thread-613504][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:24:46,124 [DEBUG][       Thread-613504][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:24:46,124 [DEBUG][       Thread-613504][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:24:46,124 [DEBUG][       Thread-613504][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:24:46,124 [DEBUG][       Thread-613504][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:24:46,124 [DEBUG][       Thread-613504][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:24:46,124 [DEBUG][       Thread-613504][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:24:46,124 [DEBUG][       Thread-613504][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:24:46,125 [DEBUG][       Thread-613504][   transport.py][1871] : client lang: <none>
2025-07-01 18:24:46,125 [DEBUG][       Thread-613504][   transport.py][1871] : server lang: <none>
2025-07-01 18:24:46,125 [DEBUG][       Thread-613504][   transport.py][1871] : kex follows: False
2025-07-01 18:24:46,125 [DEBUG][       Thread-613504][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:24:46,125 [DEBUG][       Thread-613504][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:24:46,125 [DEBUG][       Thread-613504][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:24:46,125 [DEBUG][       Thread-613504][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:24:46,125 [DEBUG][       Thread-613504][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:24:46,125 [DEBUG][       Thread-613504][   transport.py][1871] : Compression: none
2025-07-01 18:24:46,125 [DEBUG][       Thread-613504][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:24:46,182 [DEBUG][       Thread-613504][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:24:46,183 [DEBUG][       Thread-613504][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:24:46,183 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:24:46,184 [DEBUG][       Thread-613504][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:24:46,185 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:24:46,242 [DEBUG][       Thread-613504][   transport.py][1871] : userauth is OK
2025-07-01 18:24:46,242 [DEBUG][       Thread-613504][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:24:46,242 [DEBUG][       Thread-613504][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:24:46,242 [DEBUG][       Thread-613504][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:24:46,242 [DEBUG][       Thread-613504][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:24:46,261 [ INFO][       Thread-613504][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:24:46,261 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:24:46,262 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:24:47,542 [DEBUG][       Thread-613504][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:24:47,543 [DEBUG][       Thread-613504][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:24:47,591 [DEBUG][       Thread-613504][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:24:47,592 [DEBUG][       Thread-613504][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:24:47,600 [DEBUG][       Thread-613504][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:24:47,609 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:24:47,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-07-01 18:24:47,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') -> 00000000
2025-07-01 18:24:47,625 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:24:47,625 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:24:47,625 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:24:47,632 [DEBUG][       Thread-613504][   transport.py][1871] : EOF in transport thread
2025-07-01 18:24:54,714 [DEBUG][Thread-613506 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:24:57,635 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:24:57,635 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:24:57,635 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:24:57,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-07-01 18:24:58,140 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 24, 46), 9.64, 51.7, 0.0, 28.83, 11.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:24:58,140 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:24:46
2025-07-01 18:24:58,226 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:24:58,230 [DEBUG][       Thread-613507][   transport.py][1871] : starting thread (client mode): 0x8104df0
2025-07-01 18:24:58,230 [DEBUG][       Thread-613507][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:24:58,251 [DEBUG][       Thread-613507][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:24:58,251 [ INFO][       Thread-613507][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:24:58,253 [DEBUG][       Thread-613507][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:24:58,253 [DEBUG][       Thread-613507][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:24:58,253 [DEBUG][       Thread-613507][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:24:58,253 [DEBUG][       Thread-613507][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:24:58,253 [DEBUG][       Thread-613507][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:24:58,253 [DEBUG][       Thread-613507][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:24:58,253 [DEBUG][       Thread-613507][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:24:58,253 [DEBUG][       Thread-613507][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:24:58,253 [DEBUG][       Thread-613507][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:24:58,253 [DEBUG][       Thread-613507][   transport.py][1871] : client lang: <none>
2025-07-01 18:24:58,253 [DEBUG][       Thread-613507][   transport.py][1871] : server lang: <none>
2025-07-01 18:24:58,253 [DEBUG][       Thread-613507][   transport.py][1871] : kex follows: False
2025-07-01 18:24:58,253 [DEBUG][       Thread-613507][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:24:58,253 [DEBUG][       Thread-613507][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:24:58,253 [DEBUG][       Thread-613507][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:24:58,253 [DEBUG][       Thread-613507][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:24:58,253 [DEBUG][       Thread-613507][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:24:58,253 [DEBUG][       Thread-613507][   transport.py][1871] : Compression: none
2025-07-01 18:24:58,253 [DEBUG][       Thread-613507][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:24:58,263 [DEBUG][       Thread-613507][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:24:58,264 [DEBUG][       Thread-613507][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:24:58,264 [DEBUG][       Thread-613507][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:24:58,264 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:24:58,264 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:24:58,265 [DEBUG][       Thread-613507][   transport.py][1871] : userauth is OK
2025-07-01 18:24:58,288 [ INFO][       Thread-613507][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:24:58,289 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:24:58,944 [DEBUG][       Thread-613507][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:24:58,944 [DEBUG][       Thread-613507][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:24:58,985 [DEBUG][       Thread-613507][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:24:58,985 [DEBUG][       Thread-613507][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:24:58,988 [DEBUG][       Thread-613507][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:24:59,001 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:24:59,001 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:24:59,003 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:24:59,006 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:24:59,011 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:24:59,013 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:24:59,014 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:24:59,014 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:24:59,014 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.683617 -999.00  +11.90  27.63     55   +3.30 1 2 1 1 1    18    0 7.21 -41.42 ----- 18.1 27.6 13.3 45.0 12.5 -14.9 12.3 -14.6 12.1 -13.9 12.5 -14.0
2025-07-01 18:24:59,014 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:24:59,014 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:24:59,014 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.683617
2025-07-01 18:24:59,015 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:24:59,015 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:24:59,016 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:24:59,016 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:24:59,016 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:24:59,016 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:24:46', tmtdew=9.64, humidity=51.7, cloud=0.0, wind=28.83, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:24:24.509', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:24:59,017 [DEBUG][       Thread-613507][   transport.py][1871] : EOF in transport thread
2025-07-01 18:24:59,100 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:24:59,111 [DEBUG][       Thread-613510][   transport.py][1871] : starting thread (client mode): 0x81e4160
2025-07-01 18:24:59,111 [DEBUG][       Thread-613510][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:24:59,127 [DEBUG][       Thread-613510][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:24:59,127 [ INFO][       Thread-613510][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:24:59,134 [DEBUG][       Thread-613510][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:24:59,135 [DEBUG][       Thread-613510][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:24:59,135 [DEBUG][       Thread-613510][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:24:59,135 [DEBUG][       Thread-613510][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:24:59,135 [DEBUG][       Thread-613510][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:24:59,135 [DEBUG][       Thread-613510][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:24:59,135 [DEBUG][       Thread-613510][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:24:59,135 [DEBUG][       Thread-613510][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:24:59,135 [DEBUG][       Thread-613510][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:24:59,135 [DEBUG][       Thread-613510][   transport.py][1871] : client lang: <none>
2025-07-01 18:24:59,135 [DEBUG][       Thread-613510][   transport.py][1871] : server lang: <none>
2025-07-01 18:24:59,135 [DEBUG][       Thread-613510][   transport.py][1871] : kex follows: False
2025-07-01 18:24:59,135 [DEBUG][       Thread-613510][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:24:59,135 [DEBUG][       Thread-613510][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:24:59,135 [DEBUG][       Thread-613510][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:24:59,135 [DEBUG][       Thread-613510][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:24:59,135 [DEBUG][       Thread-613510][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:24:59,135 [DEBUG][       Thread-613510][   transport.py][1871] : Compression: none
2025-07-01 18:24:59,135 [DEBUG][       Thread-613510][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:24:59,195 [DEBUG][       Thread-613510][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:24:59,196 [DEBUG][       Thread-613510][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:24:59,197 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:24:59,197 [DEBUG][       Thread-613510][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:24:59,198 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:24:59,253 [DEBUG][       Thread-613510][   transport.py][1871] : userauth is OK
2025-07-01 18:24:59,254 [DEBUG][       Thread-613510][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:24:59,254 [DEBUG][       Thread-613510][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:24:59,254 [DEBUG][       Thread-613510][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:24:59,254 [DEBUG][       Thread-613510][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:24:59,274 [ INFO][       Thread-613510][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:24:59,274 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:24:59,274 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:25:00,297 [DEBUG][       Thread-613510][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:25:00,297 [DEBUG][       Thread-613510][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:25:00,349 [DEBUG][       Thread-613510][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:25:00,349 [DEBUG][       Thread-613510][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:25:00,358 [DEBUG][       Thread-613510][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:25:00,367 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:25:00,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-07-01 18:25:00,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-07-01 18:25:00,386 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:25:00,386 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:25:00,386 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:25:00,394 [DEBUG][       Thread-613510][   transport.py][1871] : EOF in transport thread
2025-07-01 18:25:03,733 [DEBUG][Thread-613512 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:25:10,397 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:25:10,397 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:25:10,397 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:25:10,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-07-01 18:25:10,905 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 24, 46), 9.64, 51.7, 0.0, 28.83, 11.95, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:25:10,905 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:24:46
2025-07-01 18:25:10,991 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:25:10,995 [DEBUG][       Thread-613513][   transport.py][1871] : starting thread (client mode): 0x81079d0
2025-07-01 18:25:10,995 [DEBUG][       Thread-613513][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:25:11,014 [DEBUG][       Thread-613513][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:25:11,015 [ INFO][       Thread-613513][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:25:11,018 [DEBUG][       Thread-613513][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:25:11,018 [DEBUG][       Thread-613513][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:25:11,018 [DEBUG][       Thread-613513][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:25:11,018 [DEBUG][       Thread-613513][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:25:11,018 [DEBUG][       Thread-613513][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:25:11,018 [DEBUG][       Thread-613513][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:25:11,018 [DEBUG][       Thread-613513][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:25:11,018 [DEBUG][       Thread-613513][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:25:11,018 [DEBUG][       Thread-613513][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:25:11,018 [DEBUG][       Thread-613513][   transport.py][1871] : client lang: <none>
2025-07-01 18:25:11,018 [DEBUG][       Thread-613513][   transport.py][1871] : server lang: <none>
2025-07-01 18:25:11,018 [DEBUG][       Thread-613513][   transport.py][1871] : kex follows: False
2025-07-01 18:25:11,018 [DEBUG][       Thread-613513][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:25:11,018 [DEBUG][       Thread-613513][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:25:11,018 [DEBUG][       Thread-613513][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:25:11,018 [DEBUG][       Thread-613513][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:25:11,018 [DEBUG][       Thread-613513][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:25:11,018 [DEBUG][       Thread-613513][   transport.py][1871] : Compression: none
2025-07-01 18:25:11,018 [DEBUG][       Thread-613513][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:25:11,036 [DEBUG][       Thread-613513][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:25:11,036 [DEBUG][       Thread-613513][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:25:11,037 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:25:11,037 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:25:11,037 [DEBUG][       Thread-613513][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:25:11,038 [DEBUG][       Thread-613513][   transport.py][1871] : userauth is OK
2025-07-01 18:25:11,063 [ INFO][       Thread-613513][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:25:11,064 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:25:11,729 [DEBUG][       Thread-613513][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:25:11,730 [DEBUG][       Thread-613513][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:25:11,773 [DEBUG][       Thread-613513][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:25:11,773 [DEBUG][       Thread-613513][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:25:11,776 [DEBUG][       Thread-613513][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:25:11,791 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:25:11,791 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:25:11,793 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:25:11,795 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:25:11,801 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:25:11,803 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:25:11,803 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:25:11,804 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:25:11,804 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.683617 -999.00  +11.90  27.63     55   +3.30 1 2 1 1 1    18    0 7.21 -41.42 ----- 18.1 27.6 13.3 45.0 12.5 -14.9 12.3 -14.6 12.1 -13.9 12.5 -14.0
2025-07-01 18:25:11,804 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:25:11,804 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:25:11,804 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.683617
2025-07-01 18:25:11,804 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:25:11,805 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:25:11,805 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:25:11,805 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:25:11,805 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:25:11,805 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:24:46', tmtdew=9.64, humidity=51.7, cloud=0.0, wind=28.83, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:24:24.509', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:25:11,806 [DEBUG][       Thread-613513][   transport.py][1871] : EOF in transport thread
2025-07-01 18:25:11,889 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:25:11,905 [DEBUG][       Thread-613516][   transport.py][1871] : starting thread (client mode): 0x8172d40
2025-07-01 18:25:11,905 [DEBUG][       Thread-613516][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:25:11,921 [DEBUG][       Thread-613516][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:25:11,921 [ INFO][       Thread-613516][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:25:11,929 [DEBUG][       Thread-613516][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:25:11,929 [DEBUG][       Thread-613516][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:25:11,929 [DEBUG][       Thread-613516][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:25:11,929 [DEBUG][       Thread-613516][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:25:11,929 [DEBUG][       Thread-613516][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:25:11,929 [DEBUG][       Thread-613516][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:25:11,930 [DEBUG][       Thread-613516][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:25:11,930 [DEBUG][       Thread-613516][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:25:11,930 [DEBUG][       Thread-613516][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:25:11,930 [DEBUG][       Thread-613516][   transport.py][1871] : client lang: <none>
2025-07-01 18:25:11,930 [DEBUG][       Thread-613516][   transport.py][1871] : server lang: <none>
2025-07-01 18:25:11,930 [DEBUG][       Thread-613516][   transport.py][1871] : kex follows: False
2025-07-01 18:25:11,930 [DEBUG][       Thread-613516][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:25:11,930 [DEBUG][       Thread-613516][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:25:11,930 [DEBUG][       Thread-613516][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:25:11,930 [DEBUG][       Thread-613516][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:25:11,930 [DEBUG][       Thread-613516][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:25:11,930 [DEBUG][       Thread-613516][   transport.py][1871] : Compression: none
2025-07-01 18:25:11,930 [DEBUG][       Thread-613516][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:25:11,987 [DEBUG][       Thread-613516][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:25:11,987 [DEBUG][       Thread-613516][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:25:11,988 [DEBUG][       Thread-613516][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:25:11,988 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:25:11,989 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:25:12,047 [DEBUG][       Thread-613516][   transport.py][1871] : userauth is OK
2025-07-01 18:25:12,047 [DEBUG][       Thread-613516][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:25:12,048 [DEBUG][       Thread-613516][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:25:12,048 [DEBUG][       Thread-613516][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:25:12,048 [DEBUG][       Thread-613516][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:25:12,072 [ INFO][       Thread-613516][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:25:12,072 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:25:12,073 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:25:12,776 [DEBUG][Thread-613518 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:25:13,100 [DEBUG][       Thread-613516][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:25:13,100 [DEBUG][       Thread-613516][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:25:13,148 [DEBUG][       Thread-613516][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:25:13,148 [DEBUG][       Thread-613516][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:25:13,157 [DEBUG][       Thread-613516][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:25:13,166 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:25:13,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-07-01 18:25:13,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-07-01 18:25:13,185 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:25:13,185 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:25:13,185 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:25:13,193 [DEBUG][       Thread-613516][   transport.py][1871] : EOF in transport thread
2025-07-01 18:25:21,797 [DEBUG][Thread-613519 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:25:23,195 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:25:23,196 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:25:23,196 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:25:23,198 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 18:25:23,707 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 25, 19), 9.56, 51.99, 0.0, 31.37, 11.89, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:25:23,707 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:25:19
2025-07-01 18:25:23,793 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:25:23,797 [DEBUG][       Thread-613520][   transport.py][1871] : starting thread (client mode): 0x8154a30
2025-07-01 18:25:23,797 [DEBUG][       Thread-613520][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:25:23,817 [DEBUG][       Thread-613520][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:25:23,817 [ INFO][       Thread-613520][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:25:23,820 [DEBUG][       Thread-613520][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:25:23,820 [DEBUG][       Thread-613520][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:25:23,820 [DEBUG][       Thread-613520][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:25:23,820 [DEBUG][       Thread-613520][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:25:23,820 [DEBUG][       Thread-613520][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:25:23,820 [DEBUG][       Thread-613520][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:25:23,820 [DEBUG][       Thread-613520][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:25:23,820 [DEBUG][       Thread-613520][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:25:23,820 [DEBUG][       Thread-613520][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:25:23,820 [DEBUG][       Thread-613520][   transport.py][1871] : client lang: <none>
2025-07-01 18:25:23,820 [DEBUG][       Thread-613520][   transport.py][1871] : server lang: <none>
2025-07-01 18:25:23,820 [DEBUG][       Thread-613520][   transport.py][1871] : kex follows: False
2025-07-01 18:25:23,820 [DEBUG][       Thread-613520][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:25:23,820 [DEBUG][       Thread-613520][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:25:23,820 [DEBUG][       Thread-613520][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:25:23,820 [DEBUG][       Thread-613520][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:25:23,820 [DEBUG][       Thread-613520][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:25:23,820 [DEBUG][       Thread-613520][   transport.py][1871] : Compression: none
2025-07-01 18:25:23,821 [DEBUG][       Thread-613520][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:25:23,836 [DEBUG][       Thread-613520][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:25:23,837 [DEBUG][       Thread-613520][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:25:23,837 [DEBUG][       Thread-613520][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:25:23,837 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:25:23,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:25:23,839 [DEBUG][       Thread-613520][   transport.py][1871] : userauth is OK
2025-07-01 18:25:23,863 [ INFO][       Thread-613520][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:25:23,864 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:25:24,510 [DEBUG][       Thread-613520][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:25:24,510 [DEBUG][       Thread-613520][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:25:24,553 [DEBUG][       Thread-613520][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:25:24,553 [DEBUG][       Thread-613520][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:25:24,556 [DEBUG][       Thread-613520][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:25:24,561 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:25:24,562 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:25:24,563 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:25:24,565 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:25:24,569 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:25:24,570 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:25:24,570 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:25:24,570 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:25:24,570 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.683617 -999.00  +11.90  27.63     55   +3.30 1 2 1 1 1    18    0 7.21 -41.42 ----- 18.1 27.6 13.3 45.0 12.5 -14.9 12.3 -14.6 12.1 -13.9 12.5 -14.0
2025-07-01 18:25:24,570 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:25:24,570 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:25:24,570 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.683617
2025-07-01 18:25:24,570 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:25:24,570 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:25:24,570 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:25:24,570 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:25:24,570 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:25:24,570 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:25:19', tmtdew=9.56, humidity=51.99, cloud=0.0, wind=31.37, temperature=11.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:24:24.509', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:25:24,571 [DEBUG][       Thread-613520][   transport.py][1871] : EOF in transport thread
2025-07-01 18:25:24,643 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:25:24,653 [DEBUG][       Thread-613523][   transport.py][1871] : starting thread (client mode): 0x8107e50
2025-07-01 18:25:24,653 [DEBUG][       Thread-613523][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:25:24,668 [DEBUG][       Thread-613523][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:25:24,668 [ INFO][       Thread-613523][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:25:24,675 [DEBUG][       Thread-613523][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:25:24,675 [DEBUG][       Thread-613523][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:25:24,675 [DEBUG][       Thread-613523][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:25:24,675 [DEBUG][       Thread-613523][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:25:24,675 [DEBUG][       Thread-613523][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:25:24,675 [DEBUG][       Thread-613523][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:25:24,676 [DEBUG][       Thread-613523][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:25:24,676 [DEBUG][       Thread-613523][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:25:24,676 [DEBUG][       Thread-613523][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:25:24,676 [DEBUG][       Thread-613523][   transport.py][1871] : client lang: <none>
2025-07-01 18:25:24,676 [DEBUG][       Thread-613523][   transport.py][1871] : server lang: <none>
2025-07-01 18:25:24,676 [DEBUG][       Thread-613523][   transport.py][1871] : kex follows: False
2025-07-01 18:25:24,676 [DEBUG][       Thread-613523][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:25:24,676 [DEBUG][       Thread-613523][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:25:24,676 [DEBUG][       Thread-613523][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:25:24,676 [DEBUG][       Thread-613523][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:25:24,676 [DEBUG][       Thread-613523][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:25:24,676 [DEBUG][       Thread-613523][   transport.py][1871] : Compression: none
2025-07-01 18:25:24,676 [DEBUG][       Thread-613523][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:25:24,734 [DEBUG][       Thread-613523][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:25:24,734 [DEBUG][       Thread-613523][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:25:24,735 [DEBUG][       Thread-613523][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:25:24,735 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:25:24,736 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:25:24,793 [DEBUG][       Thread-613523][   transport.py][1871] : userauth is OK
2025-07-01 18:25:24,794 [DEBUG][       Thread-613523][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:25:24,794 [DEBUG][       Thread-613523][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:25:24,794 [DEBUG][       Thread-613523][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:25:24,794 [DEBUG][       Thread-613523][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:25:24,813 [ INFO][       Thread-613523][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:25:24,814 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:25:24,814 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:25:25,856 [DEBUG][       Thread-613523][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:25:25,856 [DEBUG][       Thread-613523][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:25:25,904 [DEBUG][       Thread-613523][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:25:25,904 [DEBUG][       Thread-613523][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:25:25,913 [DEBUG][       Thread-613523][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:25:25,922 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:25:25,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-07-01 18:25:25,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-07-01 18:25:25,941 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:25:25,941 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:25:25,942 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:25:25,949 [DEBUG][       Thread-613523][   transport.py][1871] : EOF in transport thread
2025-07-01 18:25:30,820 [DEBUG][Thread-613525 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:25:35,952 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:25:35,952 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:25:35,952 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:25:35,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-07-01 18:25:36,472 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 25, 19), 9.56, 51.99, 0.0, 31.37, 11.89, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:25:36,472 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:25:19
2025-07-01 18:25:36,561 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:25:36,565 [DEBUG][       Thread-613526][   transport.py][1871] : starting thread (client mode): 0x81e71c0
2025-07-01 18:25:36,565 [DEBUG][       Thread-613526][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:25:36,585 [DEBUG][       Thread-613526][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:25:36,585 [ INFO][       Thread-613526][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:25:36,588 [DEBUG][       Thread-613526][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:25:36,588 [DEBUG][       Thread-613526][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:25:36,588 [DEBUG][       Thread-613526][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:25:36,588 [DEBUG][       Thread-613526][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:25:36,588 [DEBUG][       Thread-613526][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:25:36,588 [DEBUG][       Thread-613526][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:25:36,588 [DEBUG][       Thread-613526][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:25:36,588 [DEBUG][       Thread-613526][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:25:36,588 [DEBUG][       Thread-613526][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:25:36,588 [DEBUG][       Thread-613526][   transport.py][1871] : client lang: <none>
2025-07-01 18:25:36,588 [DEBUG][       Thread-613526][   transport.py][1871] : server lang: <none>
2025-07-01 18:25:36,588 [DEBUG][       Thread-613526][   transport.py][1871] : kex follows: False
2025-07-01 18:25:36,588 [DEBUG][       Thread-613526][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:25:36,588 [DEBUG][       Thread-613526][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:25:36,588 [DEBUG][       Thread-613526][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:25:36,588 [DEBUG][       Thread-613526][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:25:36,588 [DEBUG][       Thread-613526][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:25:36,588 [DEBUG][       Thread-613526][   transport.py][1871] : Compression: none
2025-07-01 18:25:36,588 [DEBUG][       Thread-613526][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:25:36,598 [DEBUG][       Thread-613526][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:25:36,598 [DEBUG][       Thread-613526][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:25:36,598 [DEBUG][       Thread-613526][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:25:36,598 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:25:36,598 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:25:36,599 [DEBUG][       Thread-613526][   transport.py][1871] : userauth is OK
2025-07-01 18:25:36,611 [ INFO][       Thread-613526][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:25:36,611 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:25:37,245 [DEBUG][       Thread-613526][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:25:37,246 [DEBUG][       Thread-613526][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:25:37,288 [DEBUG][       Thread-613526][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:25:37,288 [DEBUG][       Thread-613526][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:25:37,291 [DEBUG][       Thread-613526][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:25:37,296 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:25:37,296 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:25:37,297 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:25:37,298 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:25:37,301 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:25:37,302 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:25:37,302 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:25:37,302 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:25:37,302 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.683964 -999.00  +11.90  28.33     56   +3.40 1 2 1 1 1    16    0 7.21 -38.33 ----- 27.4 28.3 18.9 32.1 12.5 -14.9 12.4 -14.6 12.2 -14.0 12.5 -14.0
2025-07-01 18:25:37,302 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:25:37,302 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:25:37,302 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.683964
2025-07-01 18:25:37,302 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:25:37,302 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:25:37,302 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:25:37,302 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:25:37,302 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:25:37,302 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:25:19', tmtdew=9.56, humidity=51.99, cloud=0.0, wind=31.37, temperature=11.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:24:54.490', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:25:37,303 [DEBUG][       Thread-613526][   transport.py][1871] : EOF in transport thread
2025-07-01 18:25:37,376 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:25:37,385 [DEBUG][       Thread-613529][   transport.py][1871] : starting thread (client mode): 0x83c8460
2025-07-01 18:25:37,386 [DEBUG][       Thread-613529][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:25:37,400 [DEBUG][       Thread-613529][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:25:37,400 [ INFO][       Thread-613529][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:25:37,407 [DEBUG][       Thread-613529][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:25:37,407 [DEBUG][       Thread-613529][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:25:37,407 [DEBUG][       Thread-613529][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:25:37,407 [DEBUG][       Thread-613529][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:25:37,407 [DEBUG][       Thread-613529][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:25:37,407 [DEBUG][       Thread-613529][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:25:37,407 [DEBUG][       Thread-613529][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:25:37,408 [DEBUG][       Thread-613529][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:25:37,408 [DEBUG][       Thread-613529][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:25:37,408 [DEBUG][       Thread-613529][   transport.py][1871] : client lang: <none>
2025-07-01 18:25:37,408 [DEBUG][       Thread-613529][   transport.py][1871] : server lang: <none>
2025-07-01 18:25:37,408 [DEBUG][       Thread-613529][   transport.py][1871] : kex follows: False
2025-07-01 18:25:37,408 [DEBUG][       Thread-613529][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:25:37,408 [DEBUG][       Thread-613529][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:25:37,408 [DEBUG][       Thread-613529][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:25:37,408 [DEBUG][       Thread-613529][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:25:37,408 [DEBUG][       Thread-613529][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:25:37,408 [DEBUG][       Thread-613529][   transport.py][1871] : Compression: none
2025-07-01 18:25:37,408 [DEBUG][       Thread-613529][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:25:37,464 [DEBUG][       Thread-613529][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:25:37,464 [DEBUG][       Thread-613529][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:25:37,464 [DEBUG][       Thread-613529][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:25:37,464 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:25:37,464 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:25:37,521 [DEBUG][       Thread-613529][   transport.py][1871] : userauth is OK
2025-07-01 18:25:37,521 [DEBUG][       Thread-613529][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:25:37,521 [DEBUG][       Thread-613529][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:25:37,521 [DEBUG][       Thread-613529][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:25:37,521 [DEBUG][       Thread-613529][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:25:37,535 [ INFO][       Thread-613529][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:25:37,535 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:25:37,535 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:25:38,534 [DEBUG][       Thread-613529][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:25:38,535 [DEBUG][       Thread-613529][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:25:38,584 [DEBUG][       Thread-613529][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:25:38,584 [DEBUG][       Thread-613529][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:25:38,592 [DEBUG][       Thread-613529][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:25:38,601 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:25:38,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-07-01 18:25:38,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-07-01 18:25:38,617 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:25:38,617 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:25:38,617 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:25:38,625 [DEBUG][       Thread-613529][   transport.py][1871] : EOF in transport thread
2025-07-01 18:25:39,852 [DEBUG][Thread-613531 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:25:43,316 [DEBUG][Thread-613532 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:25:48,624 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:25:48,624 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:25:48,624 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:25:48,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-07-01 18:25:48,875 [DEBUG][Thread-613533 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:25:49,133 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 25, 19), 9.56, 51.99, 0.0, 31.37, 11.89, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:25:49,133 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:25:19
2025-07-01 18:25:49,218 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:25:49,222 [DEBUG][       Thread-613534][   transport.py][1871] : starting thread (client mode): 0x81729e0
2025-07-01 18:25:49,222 [DEBUG][       Thread-613534][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:25:49,241 [DEBUG][       Thread-613534][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:25:49,241 [ INFO][       Thread-613534][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:25:49,243 [DEBUG][       Thread-613534][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:25:49,243 [DEBUG][       Thread-613534][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:25:49,243 [DEBUG][       Thread-613534][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:25:49,243 [DEBUG][       Thread-613534][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:25:49,243 [DEBUG][       Thread-613534][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:25:49,243 [DEBUG][       Thread-613534][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:25:49,243 [DEBUG][       Thread-613534][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:25:49,243 [DEBUG][       Thread-613534][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:25:49,243 [DEBUG][       Thread-613534][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:25:49,243 [DEBUG][       Thread-613534][   transport.py][1871] : client lang: <none>
2025-07-01 18:25:49,243 [DEBUG][       Thread-613534][   transport.py][1871] : server lang: <none>
2025-07-01 18:25:49,243 [DEBUG][       Thread-613534][   transport.py][1871] : kex follows: False
2025-07-01 18:25:49,243 [DEBUG][       Thread-613534][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:25:49,243 [DEBUG][       Thread-613534][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:25:49,243 [DEBUG][       Thread-613534][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:25:49,243 [DEBUG][       Thread-613534][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:25:49,243 [DEBUG][       Thread-613534][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:25:49,243 [DEBUG][       Thread-613534][   transport.py][1871] : Compression: none
2025-07-01 18:25:49,243 [DEBUG][       Thread-613534][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:25:49,256 [DEBUG][       Thread-613534][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:25:49,257 [DEBUG][       Thread-613534][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:25:49,257 [DEBUG][       Thread-613534][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:25:49,257 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:25:49,258 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:25:49,258 [DEBUG][       Thread-613534][   transport.py][1871] : userauth is OK
2025-07-01 18:25:49,284 [ INFO][       Thread-613534][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:25:49,285 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:25:49,988 [DEBUG][       Thread-613534][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:25:49,989 [DEBUG][       Thread-613534][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:25:50,033 [DEBUG][       Thread-613534][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:25:50,033 [DEBUG][       Thread-613534][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:25:50,036 [DEBUG][       Thread-613534][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:25:50,041 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:25:50,042 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:25:50,044 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:25:50,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:25:50,053 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:25:50,055 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:25:50,056 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:25:50,057 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:25:50,057 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.683964 -999.00  +11.90  28.33     56   +3.40 1 2 1 1 1    16    0 7.21 -38.33 ----- 27.4 28.3 18.9 32.1 12.5 -14.9 12.4 -14.6 12.2 -14.0 12.5 -14.0
2025-07-01 18:25:50,057 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:25:50,057 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:25:50,057 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.683964
2025-07-01 18:25:50,058 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:25:50,058 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:25:50,059 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:25:50,059 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:25:50,059 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:25:50,059 [DEBUG][       Thread-613534][   transport.py][1871] : EOF in transport thread
2025-07-01 18:25:50,059 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:25:19', tmtdew=9.56, humidity=51.99, cloud=0.0, wind=31.37, temperature=11.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:24:54.490', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:25:50,150 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:25:50,160 [DEBUG][       Thread-613537][   transport.py][1871] : starting thread (client mode): 0x83c81f0
2025-07-01 18:25:50,160 [DEBUG][       Thread-613537][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:25:50,175 [DEBUG][       Thread-613537][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:25:50,175 [ INFO][       Thread-613537][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:25:50,182 [DEBUG][       Thread-613537][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:25:50,182 [DEBUG][       Thread-613537][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:25:50,182 [DEBUG][       Thread-613537][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:25:50,182 [DEBUG][       Thread-613537][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:25:50,182 [DEBUG][       Thread-613537][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:25:50,183 [DEBUG][       Thread-613537][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:25:50,183 [DEBUG][       Thread-613537][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:25:50,183 [DEBUG][       Thread-613537][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:25:50,183 [DEBUG][       Thread-613537][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:25:50,183 [DEBUG][       Thread-613537][   transport.py][1871] : client lang: <none>
2025-07-01 18:25:50,183 [DEBUG][       Thread-613537][   transport.py][1871] : server lang: <none>
2025-07-01 18:25:50,183 [DEBUG][       Thread-613537][   transport.py][1871] : kex follows: False
2025-07-01 18:25:50,183 [DEBUG][       Thread-613537][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:25:50,183 [DEBUG][       Thread-613537][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:25:50,183 [DEBUG][       Thread-613537][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:25:50,183 [DEBUG][       Thread-613537][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:25:50,183 [DEBUG][       Thread-613537][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:25:50,183 [DEBUG][       Thread-613537][   transport.py][1871] : Compression: none
2025-07-01 18:25:50,183 [DEBUG][       Thread-613537][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:25:50,241 [DEBUG][       Thread-613537][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:25:50,242 [DEBUG][       Thread-613537][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:25:50,242 [DEBUG][       Thread-613537][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:25:50,242 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:25:50,243 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:25:50,298 [DEBUG][       Thread-613537][   transport.py][1871] : userauth is OK
2025-07-01 18:25:50,299 [DEBUG][       Thread-613537][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:25:50,299 [DEBUG][       Thread-613537][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:25:50,299 [DEBUG][       Thread-613537][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:25:50,299 [DEBUG][       Thread-613537][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:25:50,317 [ INFO][       Thread-613537][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:25:50,317 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:25:50,318 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:25:51,318 [DEBUG][       Thread-613537][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:25:51,319 [DEBUG][       Thread-613537][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:25:51,367 [DEBUG][       Thread-613537][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:25:51,367 [DEBUG][       Thread-613537][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:25:51,379 [DEBUG][       Thread-613537][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:25:51,390 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:25:51,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')
2025-07-01 18:25:51,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-07-01 18:25:51,406 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:25:51,406 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:25:51,406 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:25:51,414 [DEBUG][       Thread-613537][   transport.py][1871] : EOF in transport thread
2025-07-01 18:25:57,897 [DEBUG][Thread-613539 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:26:01,417 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:26:01,417 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:26:01,417 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:26:01,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-07-01 18:26:01,928 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 25, 50), 9.54, 52.06, 0.0, 29.43, 11.87, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:26:01,928 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:25:50
2025-07-01 18:26:02,015 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:26:02,020 [DEBUG][       Thread-613540][   transport.py][1871] : starting thread (client mode): 0x81a6f50
2025-07-01 18:26:02,020 [DEBUG][       Thread-613540][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:26:02,042 [DEBUG][       Thread-613540][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:26:02,042 [ INFO][       Thread-613540][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:26:02,045 [DEBUG][       Thread-613540][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:26:02,045 [DEBUG][       Thread-613540][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:26:02,045 [DEBUG][       Thread-613540][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:26:02,045 [DEBUG][       Thread-613540][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:26:02,045 [DEBUG][       Thread-613540][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:26:02,045 [DEBUG][       Thread-613540][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:26:02,045 [DEBUG][       Thread-613540][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:26:02,045 [DEBUG][       Thread-613540][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:26:02,045 [DEBUG][       Thread-613540][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:26:02,045 [DEBUG][       Thread-613540][   transport.py][1871] : client lang: <none>
2025-07-01 18:26:02,045 [DEBUG][       Thread-613540][   transport.py][1871] : server lang: <none>
2025-07-01 18:26:02,045 [DEBUG][       Thread-613540][   transport.py][1871] : kex follows: False
2025-07-01 18:26:02,045 [DEBUG][       Thread-613540][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:26:02,045 [DEBUG][       Thread-613540][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:26:02,045 [DEBUG][       Thread-613540][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:26:02,045 [DEBUG][       Thread-613540][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:26:02,045 [DEBUG][       Thread-613540][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:26:02,045 [DEBUG][       Thread-613540][   transport.py][1871] : Compression: none
2025-07-01 18:26:02,045 [DEBUG][       Thread-613540][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:26:02,063 [DEBUG][       Thread-613540][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:26:02,063 [DEBUG][       Thread-613540][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:26:02,064 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:26:02,064 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:26:02,065 [DEBUG][       Thread-613540][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:26:02,065 [DEBUG][       Thread-613540][   transport.py][1871] : userauth is OK
2025-07-01 18:26:02,078 [ INFO][       Thread-613540][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:26:02,079 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:26:02,643 [DEBUG][       Thread-613540][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:26:02,643 [DEBUG][       Thread-613540][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:26:02,685 [DEBUG][       Thread-613540][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:26:02,685 [DEBUG][       Thread-613540][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:26:02,688 [DEBUG][       Thread-613540][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:26:02,702 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:26:02,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:26:02,703 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:26:02,705 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:26:02,711 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:26:02,713 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:26:02,713 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:26:02,714 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:26:02,714 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.684658 -999.00  +11.90  19.99     55   +3.40 1 2 1 1 1    13    0 7.35 -38.01 NA 18.0 20.0 6.5 32.5 12.6 -14.8 12.4 -14.6 12.2 -13.9 12.5 -13.8
2025-07-01 18:26:02,714 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:26:02,714 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:26:02,714 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.684658
2025-07-01 18:26:02,715 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:26:02,715 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:26:02,715 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:26:02,715 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:26:02,716 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:26:02,716 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:25:50', tmtdew=9.54, humidity=52.06, cloud=0.0, wind=29.43, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:25:54.451', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:26:02,716 [DEBUG][       Thread-613540][   transport.py][1871] : EOF in transport thread
2025-07-01 18:26:02,799 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:26:02,809 [DEBUG][       Thread-613543][   transport.py][1871] : starting thread (client mode): 0x8172d40
2025-07-01 18:26:02,809 [DEBUG][       Thread-613543][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:26:02,824 [DEBUG][       Thread-613543][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:26:02,824 [ INFO][       Thread-613543][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:26:02,831 [DEBUG][       Thread-613543][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:26:02,831 [DEBUG][       Thread-613543][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:26:02,831 [DEBUG][       Thread-613543][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:26:02,831 [DEBUG][       Thread-613543][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:26:02,831 [DEBUG][       Thread-613543][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:26:02,832 [DEBUG][       Thread-613543][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:26:02,832 [DEBUG][       Thread-613543][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:26:02,832 [DEBUG][       Thread-613543][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:26:02,832 [DEBUG][       Thread-613543][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:26:02,832 [DEBUG][       Thread-613543][   transport.py][1871] : client lang: <none>
2025-07-01 18:26:02,832 [DEBUG][       Thread-613543][   transport.py][1871] : server lang: <none>
2025-07-01 18:26:02,832 [DEBUG][       Thread-613543][   transport.py][1871] : kex follows: False
2025-07-01 18:26:02,832 [DEBUG][       Thread-613543][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:26:02,832 [DEBUG][       Thread-613543][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:26:02,832 [DEBUG][       Thread-613543][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:26:02,832 [DEBUG][       Thread-613543][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:26:02,832 [DEBUG][       Thread-613543][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:26:02,832 [DEBUG][       Thread-613543][   transport.py][1871] : Compression: none
2025-07-01 18:26:02,832 [DEBUG][       Thread-613543][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:26:02,899 [DEBUG][       Thread-613543][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:26:02,900 [DEBUG][       Thread-613543][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:26:02,900 [DEBUG][       Thread-613543][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:26:02,901 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:26:02,901 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:26:02,962 [DEBUG][       Thread-613543][   transport.py][1871] : userauth is OK
2025-07-01 18:26:02,962 [DEBUG][       Thread-613543][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:26:02,962 [DEBUG][       Thread-613543][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:26:02,962 [DEBUG][       Thread-613543][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:26:02,962 [DEBUG][       Thread-613543][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:26:02,981 [ INFO][       Thread-613543][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:26:02,981 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:26:02,982 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:26:04,024 [DEBUG][       Thread-613543][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:26:04,025 [DEBUG][       Thread-613543][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:26:04,076 [DEBUG][       Thread-613543][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:26:04,076 [DEBUG][       Thread-613543][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:26:04,085 [DEBUG][       Thread-613543][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:26:04,095 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:26:04,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-07-01 18:26:04,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') -> 00000000
2025-07-01 18:26:04,115 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:26:04,115 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:26:04,116 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:26:04,125 [DEBUG][       Thread-613543][   transport.py][1871] : EOF in transport thread
2025-07-01 18:26:06,922 [DEBUG][Thread-613545 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:26:14,126 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:26:14,127 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:26:14,127 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:26:14,130 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-07-01 18:26:14,645 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 25, 50), 9.54, 52.06, 0.0, 29.43, 11.87, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:26:14,646 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:25:50
2025-07-01 18:26:14,737 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:26:14,740 [DEBUG][       Thread-613546][   transport.py][1871] : starting thread (client mode): 0x81a4cd0
2025-07-01 18:26:14,740 [DEBUG][       Thread-613546][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:26:14,759 [DEBUG][       Thread-613546][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:26:14,759 [ INFO][       Thread-613546][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:26:14,762 [DEBUG][       Thread-613546][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:26:14,762 [DEBUG][       Thread-613546][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:26:14,762 [DEBUG][       Thread-613546][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:26:14,762 [DEBUG][       Thread-613546][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:26:14,762 [DEBUG][       Thread-613546][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:26:14,762 [DEBUG][       Thread-613546][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:26:14,762 [DEBUG][       Thread-613546][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:26:14,762 [DEBUG][       Thread-613546][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:26:14,762 [DEBUG][       Thread-613546][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:26:14,763 [DEBUG][       Thread-613546][   transport.py][1871] : client lang: <none>
2025-07-01 18:26:14,763 [DEBUG][       Thread-613546][   transport.py][1871] : server lang: <none>
2025-07-01 18:26:14,763 [DEBUG][       Thread-613546][   transport.py][1871] : kex follows: False
2025-07-01 18:26:14,763 [DEBUG][       Thread-613546][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:26:14,763 [DEBUG][       Thread-613546][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:26:14,763 [DEBUG][       Thread-613546][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:26:14,763 [DEBUG][       Thread-613546][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:26:14,763 [DEBUG][       Thread-613546][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:26:14,763 [DEBUG][       Thread-613546][   transport.py][1871] : Compression: none
2025-07-01 18:26:14,763 [DEBUG][       Thread-613546][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:26:14,774 [DEBUG][       Thread-613546][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:26:14,774 [DEBUG][       Thread-613546][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:26:14,774 [DEBUG][       Thread-613546][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:26:14,774 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:26:14,774 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:26:14,774 [DEBUG][       Thread-613546][   transport.py][1871] : userauth is OK
2025-07-01 18:26:14,798 [ INFO][       Thread-613546][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:26:14,798 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:26:15,608 [DEBUG][       Thread-613546][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:26:15,608 [DEBUG][       Thread-613546][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:26:15,648 [DEBUG][       Thread-613546][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:26:15,648 [DEBUG][       Thread-613546][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:26:15,651 [DEBUG][       Thread-613546][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:26:15,663 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:26:15,663 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:26:15,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:26:15,665 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:26:15,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:26:15,668 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:26:15,669 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:26:15,669 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:26:15,669 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.684658 -999.00  +11.90  19.99     55   +3.40 1 2 1 1 1    13    0 7.35 -38.01 NA 18.0 20.0 6.5 32.5 12.6 -14.8 12.4 -14.6 12.2 -13.9 12.5 -13.8
2025-07-01 18:26:15,669 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:26:15,669 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:26:15,669 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.684658
2025-07-01 18:26:15,669 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:26:15,669 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:26:15,669 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:26:15,669 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:26:15,669 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:26:15,669 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:25:50', tmtdew=9.54, humidity=52.06, cloud=0.0, wind=29.43, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:25:54.451', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:26:15,670 [DEBUG][       Thread-613546][   transport.py][1871] : EOF in transport thread
2025-07-01 18:26:15,742 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:26:15,753 [DEBUG][       Thread-613549][   transport.py][1871] : starting thread (client mode): 0x8156d70
2025-07-01 18:26:15,753 [DEBUG][       Thread-613549][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:26:15,768 [DEBUG][       Thread-613549][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:26:15,768 [ INFO][       Thread-613549][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:26:15,776 [DEBUG][       Thread-613549][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:26:15,776 [DEBUG][       Thread-613549][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:26:15,776 [DEBUG][       Thread-613549][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:26:15,776 [DEBUG][       Thread-613549][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:26:15,776 [DEBUG][       Thread-613549][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:26:15,776 [DEBUG][       Thread-613549][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:26:15,776 [DEBUG][       Thread-613549][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:26:15,776 [DEBUG][       Thread-613549][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:26:15,776 [DEBUG][       Thread-613549][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:26:15,776 [DEBUG][       Thread-613549][   transport.py][1871] : client lang: <none>
2025-07-01 18:26:15,776 [DEBUG][       Thread-613549][   transport.py][1871] : server lang: <none>
2025-07-01 18:26:15,776 [DEBUG][       Thread-613549][   transport.py][1871] : kex follows: False
2025-07-01 18:26:15,776 [DEBUG][       Thread-613549][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:26:15,776 [DEBUG][       Thread-613549][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:26:15,776 [DEBUG][       Thread-613549][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:26:15,776 [DEBUG][       Thread-613549][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:26:15,776 [DEBUG][       Thread-613549][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:26:15,776 [DEBUG][       Thread-613549][   transport.py][1871] : Compression: none
2025-07-01 18:26:15,776 [DEBUG][       Thread-613549][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:26:15,833 [DEBUG][       Thread-613549][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:26:15,833 [DEBUG][       Thread-613549][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:26:15,833 [DEBUG][       Thread-613549][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:26:15,833 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:26:15,833 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:26:15,891 [DEBUG][       Thread-613549][   transport.py][1871] : userauth is OK
2025-07-01 18:26:15,891 [DEBUG][       Thread-613549][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:26:15,891 [DEBUG][       Thread-613549][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:26:15,891 [DEBUG][       Thread-613549][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:26:15,891 [DEBUG][       Thread-613549][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:26:15,905 [ INFO][       Thread-613549][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:26:15,906 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:26:15,906 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:26:15,953 [DEBUG][Thread-613551 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:26:16,901 [DEBUG][       Thread-613549][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:26:16,901 [DEBUG][       Thread-613549][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:26:16,951 [DEBUG][       Thread-613549][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:26:16,951 [DEBUG][       Thread-613549][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:26:16,959 [DEBUG][       Thread-613549][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:26:16,968 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:26:16,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-07-01 18:26:16,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-07-01 18:26:16,983 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:26:16,984 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:26:16,984 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:26:16,992 [DEBUG][       Thread-613549][   transport.py][1871] : EOF in transport thread
2025-07-01 18:26:24,977 [DEBUG][Thread-613552 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:26:26,994 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:26:26,994 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:26:26,994 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:26:26,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-07-01 18:26:27,491 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 26, 22), 9.53, 52.11, 0.0, 29.98, 11.87, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:26:27,491 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:26:22
2025-07-01 18:26:27,577 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:26:27,583 [DEBUG][       Thread-613553][   transport.py][1871] : starting thread (client mode): 0x81a7280
2025-07-01 18:26:27,583 [DEBUG][       Thread-613553][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:26:27,603 [DEBUG][       Thread-613553][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:26:27,603 [ INFO][       Thread-613553][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:26:27,607 [DEBUG][       Thread-613553][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:26:27,607 [DEBUG][       Thread-613553][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:26:27,607 [DEBUG][       Thread-613553][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:26:27,607 [DEBUG][       Thread-613553][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:26:27,607 [DEBUG][       Thread-613553][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:26:27,607 [DEBUG][       Thread-613553][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:26:27,607 [DEBUG][       Thread-613553][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:26:27,607 [DEBUG][       Thread-613553][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:26:27,607 [DEBUG][       Thread-613553][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:26:27,607 [DEBUG][       Thread-613553][   transport.py][1871] : client lang: <none>
2025-07-01 18:26:27,607 [DEBUG][       Thread-613553][   transport.py][1871] : server lang: <none>
2025-07-01 18:26:27,607 [DEBUG][       Thread-613553][   transport.py][1871] : kex follows: False
2025-07-01 18:26:27,607 [DEBUG][       Thread-613553][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:26:27,607 [DEBUG][       Thread-613553][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:26:27,607 [DEBUG][       Thread-613553][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:26:27,607 [DEBUG][       Thread-613553][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:26:27,607 [DEBUG][       Thread-613553][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:26:27,607 [DEBUG][       Thread-613553][   transport.py][1871] : Compression: none
2025-07-01 18:26:27,607 [DEBUG][       Thread-613553][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:26:27,624 [DEBUG][       Thread-613553][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:26:27,625 [DEBUG][       Thread-613553][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:26:27,625 [DEBUG][       Thread-613553][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:26:27,625 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:26:27,625 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:26:27,626 [DEBUG][       Thread-613553][   transport.py][1871] : userauth is OK
2025-07-01 18:26:27,639 [ INFO][       Thread-613553][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:26:27,640 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:26:28,464 [DEBUG][       Thread-613553][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:26:28,464 [DEBUG][       Thread-613553][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:26:28,509 [DEBUG][       Thread-613553][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:26:28,509 [DEBUG][       Thread-613553][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:26:28,512 [DEBUG][       Thread-613553][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:26:28,526 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:26:28,527 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:26:28,528 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:26:28,530 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:26:28,536 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:26:28,538 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:26:28,538 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:26:28,539 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:26:28,539 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.684658 -999.00  +11.90  19.99     55   +3.40 1 2 1 1 1    13    0 7.35 -38.01 NA 18.0 20.0 6.5 32.5 12.6 -14.8 12.4 -14.6 12.2 -13.9 12.5 -13.8
2025-07-01 18:26:28,539 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:26:28,539 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:26:28,539 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.684658
2025-07-01 18:26:28,539 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:26:28,540 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:26:28,540 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:26:28,540 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:26:28,540 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:26:28,540 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:26:22', tmtdew=9.53, humidity=52.11, cloud=0.0, wind=29.98, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:25:54.451', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:26:28,541 [DEBUG][       Thread-613553][   transport.py][1871] : EOF in transport thread
2025-07-01 18:26:28,623 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:26:28,633 [DEBUG][       Thread-613556][   transport.py][1871] : starting thread (client mode): 0x81cb760
2025-07-01 18:26:28,633 [DEBUG][       Thread-613556][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:26:28,650 [DEBUG][       Thread-613556][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:26:28,650 [ INFO][       Thread-613556][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:26:28,659 [DEBUG][       Thread-613556][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:26:28,659 [DEBUG][       Thread-613556][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:26:28,659 [DEBUG][       Thread-613556][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:26:28,659 [DEBUG][       Thread-613556][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:26:28,659 [DEBUG][       Thread-613556][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:26:28,659 [DEBUG][       Thread-613556][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:26:28,659 [DEBUG][       Thread-613556][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:26:28,659 [DEBUG][       Thread-613556][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:26:28,659 [DEBUG][       Thread-613556][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:26:28,659 [DEBUG][       Thread-613556][   transport.py][1871] : client lang: <none>
2025-07-01 18:26:28,659 [DEBUG][       Thread-613556][   transport.py][1871] : server lang: <none>
2025-07-01 18:26:28,660 [DEBUG][       Thread-613556][   transport.py][1871] : kex follows: False
2025-07-01 18:26:28,660 [DEBUG][       Thread-613556][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:26:28,660 [DEBUG][       Thread-613556][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:26:28,660 [DEBUG][       Thread-613556][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:26:28,660 [DEBUG][       Thread-613556][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:26:28,660 [DEBUG][       Thread-613556][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:26:28,660 [DEBUG][       Thread-613556][   transport.py][1871] : Compression: none
2025-07-01 18:26:28,660 [DEBUG][       Thread-613556][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:26:28,731 [DEBUG][       Thread-613556][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:26:28,731 [DEBUG][       Thread-613556][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:26:28,732 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:26:28,733 [DEBUG][       Thread-613556][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:26:28,733 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:26:28,792 [DEBUG][       Thread-613556][   transport.py][1871] : userauth is OK
2025-07-01 18:26:28,793 [DEBUG][       Thread-613556][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:26:28,793 [DEBUG][       Thread-613556][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:26:28,793 [DEBUG][       Thread-613556][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:26:28,793 [DEBUG][       Thread-613556][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:26:28,818 [ INFO][       Thread-613556][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:26:28,818 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:26:28,819 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:26:29,887 [DEBUG][       Thread-613556][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:26:29,887 [DEBUG][       Thread-613556][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:26:29,936 [DEBUG][       Thread-613556][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:26:29,936 [DEBUG][       Thread-613556][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:26:29,946 [DEBUG][       Thread-613556][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:26:29,957 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:26:29,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-07-01 18:26:29,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-07-01 18:26:29,974 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:26:29,975 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:26:29,975 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:26:29,983 [DEBUG][       Thread-613556][   transport.py][1871] : EOF in transport thread
2025-07-01 18:26:34,001 [DEBUG][Thread-613558 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:26:39,986 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:26:39,986 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:26:39,986 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:26:39,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-07-01 18:26:40,494 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 26, 22), 9.53, 52.11, 0.0, 29.98, 11.87, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:26:40,494 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:26:22
2025-07-01 18:26:40,579 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:26:40,583 [DEBUG][       Thread-613559][   transport.py][1871] : starting thread (client mode): 0x81cb760
2025-07-01 18:26:40,583 [DEBUG][       Thread-613559][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:26:40,604 [DEBUG][       Thread-613559][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:26:40,604 [ INFO][       Thread-613559][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:26:40,608 [DEBUG][       Thread-613559][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:26:40,608 [DEBUG][       Thread-613559][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:26:40,608 [DEBUG][       Thread-613559][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:26:40,608 [DEBUG][       Thread-613559][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:26:40,608 [DEBUG][       Thread-613559][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:26:40,608 [DEBUG][       Thread-613559][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:26:40,608 [DEBUG][       Thread-613559][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:26:40,608 [DEBUG][       Thread-613559][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:26:40,608 [DEBUG][       Thread-613559][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:26:40,608 [DEBUG][       Thread-613559][   transport.py][1871] : client lang: <none>
2025-07-01 18:26:40,608 [DEBUG][       Thread-613559][   transport.py][1871] : server lang: <none>
2025-07-01 18:26:40,608 [DEBUG][       Thread-613559][   transport.py][1871] : kex follows: False
2025-07-01 18:26:40,608 [DEBUG][       Thread-613559][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:26:40,608 [DEBUG][       Thread-613559][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:26:40,608 [DEBUG][       Thread-613559][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:26:40,608 [DEBUG][       Thread-613559][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:26:40,608 [DEBUG][       Thread-613559][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:26:40,608 [DEBUG][       Thread-613559][   transport.py][1871] : Compression: none
2025-07-01 18:26:40,608 [DEBUG][       Thread-613559][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:26:40,625 [DEBUG][       Thread-613559][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:26:40,625 [DEBUG][       Thread-613559][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:26:40,626 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:26:40,626 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:26:40,626 [DEBUG][       Thread-613559][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:26:40,627 [DEBUG][       Thread-613559][   transport.py][1871] : userauth is OK
2025-07-01 18:26:40,651 [ INFO][       Thread-613559][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:26:40,652 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:26:41,268 [DEBUG][       Thread-613559][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:26:41,269 [DEBUG][       Thread-613559][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:26:41,312 [DEBUG][       Thread-613559][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:26:41,313 [DEBUG][       Thread-613559][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:26:41,314 [DEBUG][       Thread-613559][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:26:41,322 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:26:41,322 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:26:41,324 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:26:41,325 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:26:41,330 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:26:41,331 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:26:41,332 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:26:41,332 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:26:41,332 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.685005 -999.00  +11.80  20.93     56   +3.40 1 2 1 1 1    12    0 7.50 -33.84 ...s. 17.1 20.9 10.8 24.2 12.6 -14.7 12.4 -14.8 12.2 -13.9 12.5 -14.1
2025-07-01 18:26:41,332 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:26:41,333 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:26:41,333 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.685005
2025-07-01 18:26:41,333 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:26:41,334 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:26:41,334 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:26:41,334 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:26:41,334 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:26:41,334 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:26:22', tmtdew=9.53, humidity=52.11, cloud=0.0, wind=29.98, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:26:24.432', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:26:41,335 [DEBUG][       Thread-613559][   transport.py][1871] : EOF in transport thread
2025-07-01 18:26:41,417 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:26:41,426 [DEBUG][       Thread-613562][   transport.py][1871] : starting thread (client mode): 0x83939d0
2025-07-01 18:26:41,427 [DEBUG][       Thread-613562][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:26:41,442 [DEBUG][       Thread-613562][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:26:41,442 [ INFO][       Thread-613562][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:26:41,450 [DEBUG][       Thread-613562][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:26:41,450 [DEBUG][       Thread-613562][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:26:41,450 [DEBUG][       Thread-613562][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:26:41,450 [DEBUG][       Thread-613562][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:26:41,450 [DEBUG][       Thread-613562][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:26:41,450 [DEBUG][       Thread-613562][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:26:41,450 [DEBUG][       Thread-613562][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:26:41,450 [DEBUG][       Thread-613562][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:26:41,450 [DEBUG][       Thread-613562][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:26:41,450 [DEBUG][       Thread-613562][   transport.py][1871] : client lang: <none>
2025-07-01 18:26:41,450 [DEBUG][       Thread-613562][   transport.py][1871] : server lang: <none>
2025-07-01 18:26:41,450 [DEBUG][       Thread-613562][   transport.py][1871] : kex follows: False
2025-07-01 18:26:41,450 [DEBUG][       Thread-613562][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:26:41,450 [DEBUG][       Thread-613562][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:26:41,450 [DEBUG][       Thread-613562][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:26:41,450 [DEBUG][       Thread-613562][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:26:41,450 [DEBUG][       Thread-613562][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:26:41,450 [DEBUG][       Thread-613562][   transport.py][1871] : Compression: none
2025-07-01 18:26:41,450 [DEBUG][       Thread-613562][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:26:41,509 [DEBUG][       Thread-613562][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:26:41,510 [DEBUG][       Thread-613562][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:26:41,510 [DEBUG][       Thread-613562][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:26:41,510 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:26:41,511 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:26:41,566 [DEBUG][       Thread-613562][   transport.py][1871] : userauth is OK
2025-07-01 18:26:41,566 [DEBUG][       Thread-613562][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:26:41,566 [DEBUG][       Thread-613562][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:26:41,566 [DEBUG][       Thread-613562][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:26:41,566 [DEBUG][       Thread-613562][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:26:41,585 [ INFO][       Thread-613562][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:26:41,585 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:26:41,585 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:26:42,626 [DEBUG][       Thread-613562][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:26:42,626 [DEBUG][       Thread-613562][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:26:42,676 [DEBUG][       Thread-613562][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:26:42,676 [DEBUG][       Thread-613562][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:26:42,685 [DEBUG][       Thread-613562][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:26:42,694 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:26:42,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-07-01 18:26:42,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-07-01 18:26:42,712 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:26:42,712 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:26:42,713 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:26:42,720 [DEBUG][       Thread-613562][   transport.py][1871] : EOF in transport thread
2025-07-01 18:26:43,035 [DEBUG][Thread-613564 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:26:43,370 [DEBUG][Thread-613565 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:26:52,057 [DEBUG][Thread-613566 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:26:52,723 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:26:52,723 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:26:52,723 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:26:52,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-07-01 18:26:53,229 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 26, 22), 9.53, 52.11, 0.0, 29.98, 11.87, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:26:53,229 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:26:22
2025-07-01 18:26:53,316 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:26:53,322 [DEBUG][       Thread-613567][   transport.py][1871] : starting thread (client mode): 0x81e7190
2025-07-01 18:26:53,322 [DEBUG][       Thread-613567][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:26:53,342 [DEBUG][       Thread-613567][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:26:53,342 [ INFO][       Thread-613567][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:26:53,345 [DEBUG][       Thread-613567][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:26:53,345 [DEBUG][       Thread-613567][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:26:53,345 [DEBUG][       Thread-613567][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:26:53,345 [DEBUG][       Thread-613567][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:26:53,345 [DEBUG][       Thread-613567][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:26:53,346 [DEBUG][       Thread-613567][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:26:53,346 [DEBUG][       Thread-613567][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:26:53,346 [DEBUG][       Thread-613567][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:26:53,346 [DEBUG][       Thread-613567][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:26:53,346 [DEBUG][       Thread-613567][   transport.py][1871] : client lang: <none>
2025-07-01 18:26:53,346 [DEBUG][       Thread-613567][   transport.py][1871] : server lang: <none>
2025-07-01 18:26:53,346 [DEBUG][       Thread-613567][   transport.py][1871] : kex follows: False
2025-07-01 18:26:53,346 [DEBUG][       Thread-613567][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:26:53,346 [DEBUG][       Thread-613567][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:26:53,346 [DEBUG][       Thread-613567][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:26:53,346 [DEBUG][       Thread-613567][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:26:53,346 [DEBUG][       Thread-613567][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:26:53,346 [DEBUG][       Thread-613567][   transport.py][1871] : Compression: none
2025-07-01 18:26:53,346 [DEBUG][       Thread-613567][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:26:53,359 [DEBUG][       Thread-613567][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:26:53,359 [DEBUG][       Thread-613567][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:26:53,359 [DEBUG][       Thread-613567][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:26:53,359 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:26:53,359 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:26:53,360 [DEBUG][       Thread-613567][   transport.py][1871] : userauth is OK
2025-07-01 18:26:53,384 [ INFO][       Thread-613567][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:26:53,384 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:26:54,230 [DEBUG][       Thread-613567][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:26:54,231 [DEBUG][       Thread-613567][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:26:54,273 [DEBUG][       Thread-613567][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:26:54,273 [DEBUG][       Thread-613567][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:26:54,276 [DEBUG][       Thread-613567][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:26:54,289 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:26:54,289 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:26:54,291 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:26:54,292 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:26:54,297 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:26:54,299 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:26:54,299 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:26:54,299 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:26:54,300 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.685005 -999.00  +11.80  20.93     56   +3.40 1 2 1 1 1    12    0 7.50 -33.84 ...s. 17.1 20.9 10.8 24.2 12.6 -14.7 12.4 -14.8 12.2 -13.9 12.5 -14.1
2025-07-01 18:26:54,300 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:26:54,300 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:26:54,300 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.685005
2025-07-01 18:26:54,300 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:26:54,301 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:26:54,301 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:26:54,301 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:26:54,301 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:26:54,301 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:26:22', tmtdew=9.53, humidity=52.11, cloud=0.0, wind=29.98, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:26:24.432', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:26:54,301 [DEBUG][       Thread-613567][   transport.py][1871] : EOF in transport thread
2025-07-01 18:26:54,379 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:26:54,389 [DEBUG][       Thread-613570][   transport.py][1871] : starting thread (client mode): 0x81569e0
2025-07-01 18:26:54,389 [DEBUG][       Thread-613570][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:26:54,404 [DEBUG][       Thread-613570][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:26:54,404 [ INFO][       Thread-613570][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:26:54,412 [DEBUG][       Thread-613570][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:26:54,412 [DEBUG][       Thread-613570][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:26:54,412 [DEBUG][       Thread-613570][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:26:54,412 [DEBUG][       Thread-613570][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:26:54,412 [DEBUG][       Thread-613570][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:26:54,412 [DEBUG][       Thread-613570][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:26:54,412 [DEBUG][       Thread-613570][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:26:54,412 [DEBUG][       Thread-613570][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:26:54,412 [DEBUG][       Thread-613570][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:26:54,412 [DEBUG][       Thread-613570][   transport.py][1871] : client lang: <none>
2025-07-01 18:26:54,412 [DEBUG][       Thread-613570][   transport.py][1871] : server lang: <none>
2025-07-01 18:26:54,412 [DEBUG][       Thread-613570][   transport.py][1871] : kex follows: False
2025-07-01 18:26:54,412 [DEBUG][       Thread-613570][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:26:54,412 [DEBUG][       Thread-613570][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:26:54,412 [DEBUG][       Thread-613570][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:26:54,412 [DEBUG][       Thread-613570][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:26:54,412 [DEBUG][       Thread-613570][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:26:54,412 [DEBUG][       Thread-613570][   transport.py][1871] : Compression: none
2025-07-01 18:26:54,412 [DEBUG][       Thread-613570][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:26:54,474 [DEBUG][       Thread-613570][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:26:54,474 [DEBUG][       Thread-613570][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:26:54,475 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:26:54,475 [DEBUG][       Thread-613570][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:26:54,476 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:26:54,537 [DEBUG][       Thread-613570][   transport.py][1871] : userauth is OK
2025-07-01 18:26:54,538 [DEBUG][       Thread-613570][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:26:54,538 [DEBUG][       Thread-613570][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:26:54,538 [DEBUG][       Thread-613570][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:26:54,538 [DEBUG][       Thread-613570][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:26:54,563 [ INFO][       Thread-613570][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:26:54,563 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:26:54,563 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:26:55,580 [DEBUG][       Thread-613570][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:26:55,580 [DEBUG][       Thread-613570][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:26:55,631 [DEBUG][       Thread-613570][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:26:55,631 [DEBUG][       Thread-613570][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:26:55,640 [DEBUG][       Thread-613570][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:26:55,648 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:26:55,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-07-01 18:26:55,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-07-01 18:26:55,664 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:26:55,664 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:26:55,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:26:55,672 [DEBUG][       Thread-613570][   transport.py][1871] : EOF in transport thread
2025-07-01 18:27:01,077 [DEBUG][Thread-613572 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:27:05,674 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:27:05,675 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:27:05,675 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:27:05,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-07-01 18:27:06,167 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 26, 54), 9.52, 52.12, 0.0, 29.15, 11.87, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:27:06,167 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:26:54
2025-07-01 18:27:06,252 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:27:06,256 [DEBUG][       Thread-613573][   transport.py][1871] : starting thread (client mode): 0x8155ff0
2025-07-01 18:27:06,256 [DEBUG][       Thread-613573][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:27:06,277 [DEBUG][       Thread-613573][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:27:06,277 [ INFO][       Thread-613573][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:27:06,281 [DEBUG][       Thread-613573][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:27:06,281 [DEBUG][       Thread-613573][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:27:06,281 [DEBUG][       Thread-613573][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:27:06,281 [DEBUG][       Thread-613573][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:27:06,281 [DEBUG][       Thread-613573][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:27:06,281 [DEBUG][       Thread-613573][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:27:06,281 [DEBUG][       Thread-613573][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:27:06,281 [DEBUG][       Thread-613573][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:27:06,281 [DEBUG][       Thread-613573][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:27:06,281 [DEBUG][       Thread-613573][   transport.py][1871] : client lang: <none>
2025-07-01 18:27:06,282 [DEBUG][       Thread-613573][   transport.py][1871] : server lang: <none>
2025-07-01 18:27:06,282 [DEBUG][       Thread-613573][   transport.py][1871] : kex follows: False
2025-07-01 18:27:06,282 [DEBUG][       Thread-613573][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:27:06,282 [DEBUG][       Thread-613573][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:27:06,282 [DEBUG][       Thread-613573][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:27:06,282 [DEBUG][       Thread-613573][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:27:06,282 [DEBUG][       Thread-613573][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:27:06,282 [DEBUG][       Thread-613573][   transport.py][1871] : Compression: none
2025-07-01 18:27:06,282 [DEBUG][       Thread-613573][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:27:06,304 [DEBUG][       Thread-613573][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:27:06,305 [DEBUG][       Thread-613573][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:27:06,305 [DEBUG][       Thread-613573][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:27:06,305 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:27:06,305 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:27:06,307 [DEBUG][       Thread-613573][   transport.py][1871] : userauth is OK
2025-07-01 18:27:06,332 [ INFO][       Thread-613573][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:27:06,332 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:27:07,071 [DEBUG][       Thread-613573][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:27:07,072 [DEBUG][       Thread-613573][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:27:07,113 [DEBUG][       Thread-613573][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:27:07,113 [DEBUG][       Thread-613573][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:27:07,115 [DEBUG][       Thread-613573][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:27:07,129 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:27:07,129 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:27:07,131 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:27:07,133 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:27:07,138 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:27:07,140 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:27:07,140 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:27:07,141 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:27:07,141 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.685005 -999.00  +11.80  20.93     56   +3.40 1 2 1 1 1    12    0 7.50 -33.84 ...s. 17.1 20.9 10.8 24.2 12.6 -14.7 12.4 -14.8 12.2 -13.9 12.5 -14.1
2025-07-01 18:27:07,141 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:27:07,141 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:27:07,141 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.685005
2025-07-01 18:27:07,142 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:27:07,142 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:27:07,142 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:27:07,142 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:27:07,143 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:27:07,143 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:26:54', tmtdew=9.52, humidity=52.12, cloud=0.0, wind=29.15, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:26:24.432', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:27:07,144 [DEBUG][       Thread-613573][   transport.py][1871] : EOF in transport thread
2025-07-01 18:27:07,226 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:27:07,236 [DEBUG][       Thread-613576][   transport.py][1871] : starting thread (client mode): 0x8106ec0
2025-07-01 18:27:07,236 [DEBUG][       Thread-613576][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:27:07,251 [DEBUG][       Thread-613576][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:27:07,251 [ INFO][       Thread-613576][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:27:07,258 [DEBUG][       Thread-613576][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:27:07,259 [DEBUG][       Thread-613576][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:27:07,259 [DEBUG][       Thread-613576][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:27:07,259 [DEBUG][       Thread-613576][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:27:07,259 [DEBUG][       Thread-613576][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:27:07,259 [DEBUG][       Thread-613576][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:27:07,259 [DEBUG][       Thread-613576][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:27:07,259 [DEBUG][       Thread-613576][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:27:07,259 [DEBUG][       Thread-613576][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:27:07,259 [DEBUG][       Thread-613576][   transport.py][1871] : client lang: <none>
2025-07-01 18:27:07,259 [DEBUG][       Thread-613576][   transport.py][1871] : server lang: <none>
2025-07-01 18:27:07,259 [DEBUG][       Thread-613576][   transport.py][1871] : kex follows: False
2025-07-01 18:27:07,259 [DEBUG][       Thread-613576][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:27:07,259 [DEBUG][       Thread-613576][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:27:07,259 [DEBUG][       Thread-613576][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:27:07,259 [DEBUG][       Thread-613576][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:27:07,259 [DEBUG][       Thread-613576][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:27:07,259 [DEBUG][       Thread-613576][   transport.py][1871] : Compression: none
2025-07-01 18:27:07,259 [DEBUG][       Thread-613576][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:27:07,319 [DEBUG][       Thread-613576][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:27:07,319 [DEBUG][       Thread-613576][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:27:07,320 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:27:07,320 [DEBUG][       Thread-613576][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:27:07,321 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:27:07,374 [DEBUG][       Thread-613576][   transport.py][1871] : userauth is OK
2025-07-01 18:27:07,374 [DEBUG][       Thread-613576][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:27:07,375 [DEBUG][       Thread-613576][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:27:07,375 [DEBUG][       Thread-613576][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:27:07,375 [DEBUG][       Thread-613576][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:27:07,394 [ INFO][       Thread-613576][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:27:07,394 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:27:07,395 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:27:08,451 [DEBUG][       Thread-613576][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:27:08,451 [DEBUG][       Thread-613576][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:27:08,500 [DEBUG][       Thread-613576][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:27:08,500 [DEBUG][       Thread-613576][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:27:08,509 [DEBUG][       Thread-613576][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:27:08,519 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:27: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-07-01 18:27: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-07-01 18:27:08,538 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:27:08,538 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:27:08,538 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:27:08,547 [DEBUG][       Thread-613576][   transport.py][1871] : EOF in transport thread
2025-07-01 18:27:10,100 [DEBUG][Thread-613578 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:27:18,549 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:27:18,549 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:27:18,549 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:27:18,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-07-01 18:27:19,047 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 26, 54), 9.52, 52.12, 0.0, 29.15, 11.87, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:27:19,047 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:26:54
2025-07-01 18:27:19,132 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:27:19,138 [DEBUG][       Thread-613579][   transport.py][1871] : starting thread (client mode): 0x8104970
2025-07-01 18:27:19,138 [DEBUG][       Thread-613579][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:27:19,142 [DEBUG][Thread-613580 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:27:19,160 [DEBUG][       Thread-613579][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:27:19,160 [ INFO][       Thread-613579][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:27:19,163 [DEBUG][       Thread-613579][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:27:19,163 [DEBUG][       Thread-613579][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:27:19,163 [DEBUG][       Thread-613579][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:27:19,163 [DEBUG][       Thread-613579][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:27:19,163 [DEBUG][       Thread-613579][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:27:19,163 [DEBUG][       Thread-613579][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:27:19,163 [DEBUG][       Thread-613579][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:27:19,163 [DEBUG][       Thread-613579][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:27:19,163 [DEBUG][       Thread-613579][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:27:19,164 [DEBUG][       Thread-613579][   transport.py][1871] : client lang: <none>
2025-07-01 18:27:19,164 [DEBUG][       Thread-613579][   transport.py][1871] : server lang: <none>
2025-07-01 18:27:19,164 [DEBUG][       Thread-613579][   transport.py][1871] : kex follows: False
2025-07-01 18:27:19,164 [DEBUG][       Thread-613579][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:27:19,164 [DEBUG][       Thread-613579][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:27:19,164 [DEBUG][       Thread-613579][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:27:19,164 [DEBUG][       Thread-613579][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:27:19,164 [DEBUG][       Thread-613579][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:27:19,164 [DEBUG][       Thread-613579][   transport.py][1871] : Compression: none
2025-07-01 18:27:19,164 [DEBUG][       Thread-613579][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:27:19,179 [DEBUG][       Thread-613579][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:27:19,179 [DEBUG][       Thread-613579][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:27:19,179 [DEBUG][       Thread-613579][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:27:19,180 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:27:19,180 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:27:19,181 [DEBUG][       Thread-613579][   transport.py][1871] : userauth is OK
2025-07-01 18:27:19,205 [ INFO][       Thread-613579][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:27:19,206 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:27:19,887 [DEBUG][       Thread-613579][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:27:19,887 [DEBUG][       Thread-613579][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:27:19,929 [DEBUG][       Thread-613579][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:27:19,929 [DEBUG][       Thread-613579][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:27:19,932 [DEBUG][       Thread-613579][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:27:19,946 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:27:19,946 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:27:19,948 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:27:19,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:27:19,954 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:27:19,955 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:27:19,955 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:27:19,956 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:27:19,956 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.685353 -999.00  +11.80  21.48     56   +3.40 1 2 1 1 1    11    0 7.58 -30.34 ...s. 28.9 21.5 332.7 29.7 12.5 -14.7 12.4 -14.6 12.2 -13.8 12.5 -14.0
2025-07-01 18:27:19,956 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:27:19,956 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:27:19,956 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.685353
2025-07-01 18:27:19,957 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:27:19,958 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:27:19,958 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:27:19,958 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:27:19,958 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:27:19,958 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:26:54', tmtdew=9.52, humidity=52.12, cloud=0.0, wind=29.15, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:26:54.499', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:27:19,959 [DEBUG][       Thread-613579][   transport.py][1871] : EOF in transport thread
2025-07-01 18:27:20,041 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:27:20,052 [DEBUG][       Thread-613583][   transport.py][1871] : starting thread (client mode): 0x8172500
2025-07-01 18:27:20,052 [DEBUG][       Thread-613583][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:27:20,068 [DEBUG][       Thread-613583][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:27:20,068 [ INFO][       Thread-613583][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:27:20,075 [DEBUG][       Thread-613583][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:27:20,075 [DEBUG][       Thread-613583][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:27:20,075 [DEBUG][       Thread-613583][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:27:20,075 [DEBUG][       Thread-613583][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:27:20,075 [DEBUG][       Thread-613583][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:27:20,075 [DEBUG][       Thread-613583][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:27:20,075 [DEBUG][       Thread-613583][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:27:20,075 [DEBUG][       Thread-613583][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:27:20,075 [DEBUG][       Thread-613583][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:27:20,075 [DEBUG][       Thread-613583][   transport.py][1871] : client lang: <none>
2025-07-01 18:27:20,076 [DEBUG][       Thread-613583][   transport.py][1871] : server lang: <none>
2025-07-01 18:27:20,076 [DEBUG][       Thread-613583][   transport.py][1871] : kex follows: False
2025-07-01 18:27:20,076 [DEBUG][       Thread-613583][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:27:20,076 [DEBUG][       Thread-613583][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:27:20,076 [DEBUG][       Thread-613583][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:27:20,076 [DEBUG][       Thread-613583][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:27:20,076 [DEBUG][       Thread-613583][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:27:20,076 [DEBUG][       Thread-613583][   transport.py][1871] : Compression: none
2025-07-01 18:27:20,076 [DEBUG][       Thread-613583][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:27:20,133 [DEBUG][       Thread-613583][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:27:20,134 [DEBUG][       Thread-613583][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:27:20,143 [DEBUG][       Thread-613583][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:27:20,144 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:27:20,144 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:27:20,190 [DEBUG][       Thread-613583][   transport.py][1871] : userauth is OK
2025-07-01 18:27:20,190 [DEBUG][       Thread-613583][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:27:20,190 [DEBUG][       Thread-613583][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:27:20,190 [DEBUG][       Thread-613583][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:27:20,190 [DEBUG][       Thread-613583][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:27:20,209 [ INFO][       Thread-613583][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:27:20,210 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:27:20,210 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:27:21,247 [DEBUG][       Thread-613583][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:27:21,247 [DEBUG][       Thread-613583][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:27:21,296 [DEBUG][       Thread-613583][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:27:21,296 [DEBUG][       Thread-613583][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:27:21,304 [DEBUG][       Thread-613583][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:27:21,312 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:27: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')
2025-07-01 18:27:21,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-07-01 18:27:21,328 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:27:21,328 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:27:21,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:27:21,336 [DEBUG][       Thread-613583][   transport.py][1871] : EOF in transport thread
2025-07-01 18:27:28,164 [DEBUG][Thread-613585 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:27:31,337 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:27:31,337 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:27:31,337 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:27:31,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-07-01 18:27:31,826 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 27, 26), 9.54, 52.17, 0.0, 32.17, 11.88, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:27:31,826 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:27:26
2025-07-01 18:27:31,911 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:27:31,918 [DEBUG][       Thread-613586][   transport.py][1871] : starting thread (client mode): 0x8105120
2025-07-01 18:27:31,918 [DEBUG][       Thread-613586][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:27:31,939 [DEBUG][       Thread-613586][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:27:31,939 [ INFO][       Thread-613586][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:27:31,942 [DEBUG][       Thread-613586][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:27:31,942 [DEBUG][       Thread-613586][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:27:31,942 [DEBUG][       Thread-613586][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:27:31,942 [DEBUG][       Thread-613586][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:27:31,942 [DEBUG][       Thread-613586][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:27:31,942 [DEBUG][       Thread-613586][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:27:31,942 [DEBUG][       Thread-613586][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:27:31,942 [DEBUG][       Thread-613586][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:27:31,942 [DEBUG][       Thread-613586][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:27:31,942 [DEBUG][       Thread-613586][   transport.py][1871] : client lang: <none>
2025-07-01 18:27:31,942 [DEBUG][       Thread-613586][   transport.py][1871] : server lang: <none>
2025-07-01 18:27:31,942 [DEBUG][       Thread-613586][   transport.py][1871] : kex follows: False
2025-07-01 18:27:31,942 [DEBUG][       Thread-613586][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:27:31,942 [DEBUG][       Thread-613586][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:27:31,942 [DEBUG][       Thread-613586][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:27:31,943 [DEBUG][       Thread-613586][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:27:31,943 [DEBUG][       Thread-613586][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:27:31,943 [DEBUG][       Thread-613586][   transport.py][1871] : Compression: none
2025-07-01 18:27:31,943 [DEBUG][       Thread-613586][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:27:31,960 [DEBUG][       Thread-613586][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:27:31,960 [DEBUG][       Thread-613586][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:27:31,961 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:27:31,961 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:27:31,961 [DEBUG][       Thread-613586][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:27:31,962 [DEBUG][       Thread-613586][   transport.py][1871] : userauth is OK
2025-07-01 18:27:31,986 [ INFO][       Thread-613586][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:27:31,987 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:27:32,791 [DEBUG][       Thread-613586][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:27:32,791 [DEBUG][       Thread-613586][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:27:32,833 [DEBUG][       Thread-613586][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:27:32,833 [DEBUG][       Thread-613586][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:27:32,836 [DEBUG][       Thread-613586][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:27:32,849 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:27:32,850 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:27:32,851 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:27:32,853 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:27:32,859 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:27:32,861 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:27:32,861 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:27:32,862 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:27:32,862 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.685353 -999.00  +11.80  21.48     56   +3.40 1 2 1 1 1    11    0 7.58 -30.34 ...s. 28.9 21.5 332.7 29.7 12.5 -14.7 12.4 -14.6 12.2 -13.8 12.5 -14.0
2025-07-01 18:27:32,862 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:27:32,862 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:27:32,862 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.685353
2025-07-01 18:27:32,863 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:27:32,863 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:27:32,864 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:27:32,864 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:27:32,864 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:27:32,864 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:27:26', tmtdew=9.54, humidity=52.17, cloud=0.0, wind=32.17, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:26:54.499', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:27:32,865 [DEBUG][       Thread-613586][   transport.py][1871] : EOF in transport thread
2025-07-01 18:27:32,947 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:27:32,957 [DEBUG][       Thread-613589][   transport.py][1871] : starting thread (client mode): 0x474e8130
2025-07-01 18:27:32,957 [DEBUG][       Thread-613589][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:27:32,972 [DEBUG][       Thread-613589][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:27:32,972 [ INFO][       Thread-613589][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:27:32,979 [DEBUG][       Thread-613589][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:27:32,980 [DEBUG][       Thread-613589][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:27:32,980 [DEBUG][       Thread-613589][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:27:32,980 [DEBUG][       Thread-613589][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:27:32,980 [DEBUG][       Thread-613589][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:27:32,980 [DEBUG][       Thread-613589][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:27:32,980 [DEBUG][       Thread-613589][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:27:32,980 [DEBUG][       Thread-613589][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:27:32,980 [DEBUG][       Thread-613589][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:27:32,980 [DEBUG][       Thread-613589][   transport.py][1871] : client lang: <none>
2025-07-01 18:27:32,980 [DEBUG][       Thread-613589][   transport.py][1871] : server lang: <none>
2025-07-01 18:27:32,980 [DEBUG][       Thread-613589][   transport.py][1871] : kex follows: False
2025-07-01 18:27:32,980 [DEBUG][       Thread-613589][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:27:32,980 [DEBUG][       Thread-613589][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:27:32,980 [DEBUG][       Thread-613589][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:27:32,980 [DEBUG][       Thread-613589][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:27:32,980 [DEBUG][       Thread-613589][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:27:32,980 [DEBUG][       Thread-613589][   transport.py][1871] : Compression: none
2025-07-01 18:27:32,980 [DEBUG][       Thread-613589][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:27:33,036 [DEBUG][       Thread-613589][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:27:33,037 [DEBUG][       Thread-613589][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:27:33,037 [DEBUG][       Thread-613589][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:27:33,037 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:27:33,038 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:27:33,093 [DEBUG][       Thread-613589][   transport.py][1871] : userauth is OK
2025-07-01 18:27:33,093 [DEBUG][       Thread-613589][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:27:33,093 [DEBUG][       Thread-613589][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:27:33,093 [DEBUG][       Thread-613589][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:27:33,093 [DEBUG][       Thread-613589][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:27:33,111 [ INFO][       Thread-613589][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:27:33,112 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:27:33,112 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:27:34,103 [DEBUG][       Thread-613589][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:27:34,104 [DEBUG][       Thread-613589][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:27:34,152 [DEBUG][       Thread-613589][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:27:34,152 [DEBUG][       Thread-613589][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:27:34,161 [DEBUG][       Thread-613589][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:27:34,170 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:27:34,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-07-01 18:27: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-07-01 18:27:34,187 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:27:34,187 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:27:34,188 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:27:34,198 [DEBUG][       Thread-613589][   transport.py][1871] : EOF in transport thread
2025-07-01 18:27:37,182 [DEBUG][Thread-613591 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:27:43,423 [DEBUG][Thread-613592 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:27:44,198 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-07-01 18:27:44,199 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-07-01 18:27:44,199 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-07-01 18:27:44,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-07-01 18:27:44,683 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 7, 1, 18, 27, 26), 9.54, 52.17, 0.0, 32.17, 11.88, 0, 0, 0, 2, 0, 0),)
2025-07-01 18:27:44,683 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-07-01 18:27:26
2025-07-01 18:27:44,768 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-07-01 18:27:44,772 [DEBUG][       Thread-613593][   transport.py][1871] : starting thread (client mode): 0x8105540
2025-07-01 18:27:44,772 [DEBUG][       Thread-613593][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:27:44,792 [DEBUG][       Thread-613593][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-07-01 18:27:44,792 [ INFO][       Thread-613593][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-07-01 18:27:44,795 [DEBUG][       Thread-613593][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:27:44,795 [DEBUG][       Thread-613593][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-07-01 18:27:44,795 [DEBUG][       Thread-613593][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:27:44,795 [DEBUG][       Thread-613593][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:27:44,795 [DEBUG][       Thread-613593][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:27:44,796 [DEBUG][       Thread-613593][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:27:44,796 [DEBUG][       Thread-613593][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:27:44,796 [DEBUG][       Thread-613593][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:27:44,796 [DEBUG][       Thread-613593][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:27:44,796 [DEBUG][       Thread-613593][   transport.py][1871] : client lang: <none>
2025-07-01 18:27:44,796 [DEBUG][       Thread-613593][   transport.py][1871] : server lang: <none>
2025-07-01 18:27:44,796 [DEBUG][       Thread-613593][   transport.py][1871] : kex follows: False
2025-07-01 18:27:44,796 [DEBUG][       Thread-613593][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:27:44,796 [DEBUG][       Thread-613593][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:27:44,796 [DEBUG][       Thread-613593][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:27:44,796 [DEBUG][       Thread-613593][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:27:44,796 [DEBUG][       Thread-613593][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:27:44,796 [DEBUG][       Thread-613593][   transport.py][1871] : Compression: none
2025-07-01 18:27:44,796 [DEBUG][       Thread-613593][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:27:44,811 [DEBUG][       Thread-613593][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:27:44,812 [DEBUG][       Thread-613593][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:27:44,812 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-07-01 18:27:44,813 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-07-01 18:27:44,813 [DEBUG][       Thread-613593][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-07-01 18:27:44,814 [DEBUG][       Thread-613593][   transport.py][1871] : userauth is OK
2025-07-01 18:27:44,827 [ INFO][       Thread-613593][   transport.py][1871] : Authentication (password) successful!
2025-07-01 18:27:44,827 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:27:45,523 [DEBUG][       Thread-613593][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-07-01 18:27:45,523 [DEBUG][       Thread-613593][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-07-01 18:27:45,565 [DEBUG][       Thread-613593][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-07-01 18:27:45,565 [DEBUG][       Thread-613593][   transport.py][1871] : Secsh channel 0 opened.
2025-07-01 18:27:45,569 [DEBUG][       Thread-613593][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-07-01 18:27:45,581 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-07-01 18:27:45,582 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-07-01 18:27:45,584 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-07-01 18:27:45,586 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-07-01 18:27:45,592 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-07-01 18:27:45,594 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-07-01 18:27:45,594 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-07-01 18:27:45,595 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-07-01 18:27:45,595 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60857.685700 -999.00  +11.90  22.72     55   +3.30 1 2 1 1 1    10    0 7.70 -28.58 ..... 22.6 22.7 359.3 32.5 12.6 -14.6 12.4 -14.3 12.2 -13.6 12.5 -13.7
2025-07-01 18:27:45,595 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-07-01 18:27:45,595 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-07-01 18:27:45,595 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60857.685700
2025-07-01 18:27:45,595 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-07-01 18:27:45,596 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-07-01 18:27:45,596 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-07-01 18:27:45,596 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-07-01 18:27:45,596 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 2
2025-07-01 18:27:45,596 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-07-01T18:27:26', tmtdew=9.54, humidity=52.17, cloud=0.0, wind=32.17, 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-30T20:02:17', seeing=1.55, atlas_timestamp='2025-07-01T16:27:24.480', atlas_cloud=2, atlas_rain=1, zp_data=[0.2107499999999991, 0.1802500000000009, 0.14825000000000088, 0.1504999999999992, 0.17050000000000054, 0.09175000000000111, 0.2969999999999988, 0.31125000000000114, nan, 0.10500000000000043, 0.17225000000000001, 0.013999999999999346, 0.049999999999998934, 0.19824999999999982, 0.3359999999999985, 0.16000000000000014, 0.04224999999999923, 0.15799999999999947, 0.2414999999999985, 0.012249999999998096, 0.20649999999999835, 0.32874999999999943, 0.23925000000000018, -0.047250000000000014, 0.12099999999999866, -0.08549999999999969, -0.03524999999999956, 0.08150000000000013, -0.011499999999999844, 0.136000000000001, 0.1595000000000013, -0.059499999999999886, -0.1427499999999995], zp_timestamp='2025-07-01T04:50:00')
2025-07-01 18:27:45,597 [DEBUG][       Thread-613593][   transport.py][1871] : EOF in transport thread
2025-07-01 18:27:45,680 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-07-01 18:27:45,692 [DEBUG][       Thread-613596][   transport.py][1871] : starting thread (client mode): 0x83c8790
2025-07-01 18:27:45,692 [DEBUG][       Thread-613596][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-07-01 18:27:45,711 [DEBUG][       Thread-613596][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-07-01 18:27:45,712 [ INFO][       Thread-613596][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-07-01 18:27:45,726 [DEBUG][       Thread-613596][   transport.py][1871] : === Key exchange possibilities ===
2025-07-01 18:27:45,727 [DEBUG][       Thread-613596][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-07-01 18:27:45,727 [DEBUG][       Thread-613596][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-07-01 18:27:45,727 [DEBUG][       Thread-613596][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:27:45,727 [DEBUG][       Thread-613596][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-07-01 18:27:45,727 [DEBUG][       Thread-613596][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:27:45,727 [DEBUG][       Thread-613596][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-07-01 18:27:45,727 [DEBUG][       Thread-613596][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-07-01 18:27:45,727 [DEBUG][       Thread-613596][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-07-01 18:27:45,727 [DEBUG][       Thread-613596][   transport.py][1871] : client lang: <none>
2025-07-01 18:27:45,727 [DEBUG][       Thread-613596][   transport.py][1871] : server lang: <none>
2025-07-01 18:27:45,727 [DEBUG][       Thread-613596][   transport.py][1871] : kex follows: False
2025-07-01 18:27:45,727 [DEBUG][       Thread-613596][   transport.py][1871] : === Key exchange agreements ===
2025-07-01 18:27:45,727 [DEBUG][       Thread-613596][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-07-01 18:27:45,727 [DEBUG][       Thread-613596][   transport.py][1871] : HostKey: ssh-ed25519
2025-07-01 18:27:45,728 [DEBUG][       Thread-613596][   transport.py][1871] : Cipher: aes128-ctr
2025-07-01 18:27:45,728 [DEBUG][       Thread-613596][   transport.py][1871] : MAC: hmac-sha2-256
2025-07-01 18:27:45,728 [DEBUG][       Thread-613596][   transport.py][1871] : Compression: none
2025-07-01 18:27:45,728 [DEBUG][       Thread-613596][   transport.py][1871] : === End of kex handshake ===
2025-07-01 18:27:45,783 [DEBUG][       Thread-613596][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-07-01 18:27:45,784 [DEBUG][       Thread-613596][   transport.py][1871] : Switch to new keys ...
2025-07-01 18:27:45,784 [DEBUG][       Thread-613596][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-07-01 18:27:45,785 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-07-01 18:27:45,785 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-07-01 18:27:45,839 [DEBUG][       Thread-613596][   transport.py][1871] : userauth is OK
2025-07-01 18:27:45,840 [DEBUG][       Thread-613596][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-07-01 18:27:45,840 [DEBUG][       Thread-613596][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-07-01 18:27:45,840 [DEBUG][       Thread-613596][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-07-01 18:27:45,840 [DEBUG][       Thread-613596][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-07-01 18:27:45,859 [ INFO][       Thread-613596][   transport.py][1871] : Authentication (publickey) successful!
2025-07-01 18:27:45,859 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-07-01 18:27:45,859 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-07-01 18:27:46,214 [DEBUG][Thread-613598 (handle)][      driver.py][ 110] : Getting weather_state
2025-07-01 18:27:46,887 [DEBUG][       Thread-613596][   transport.py][1871] : Received global request "host
[file cut: first 33554432 bytes kept]
[document cut: first 32646964 of 33554432 characters kept]
